qms-angular 1.1.20 → 1.1.21

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 (60) hide show
  1. package/bundles/qms-angular.umd.js +847 -485
  2. package/bundles/qms-angular.umd.js.map +1 -1
  3. package/esm2015/lib/common/models/qms-flat-node.model.js +1 -1
  4. package/esm2015/lib/common/models/qms-tree-node.model.js +1 -1
  5. package/esm2015/lib/components/select-access-dialog/common/animation.js +27 -3
  6. package/esm2015/lib/components/select-access-dialog/model/access-paging.model.js +12 -0
  7. package/esm2015/lib/components/select-access-dialog/model/filter-person.model.js +3 -0
  8. package/esm2015/lib/components/select-access-dialog/model/select-access-config.model.js +2 -1
  9. package/esm2015/lib/components/select-access-dialog/model/select-access-data.js +4 -3
  10. package/esm2015/lib/components/select-access-dialog/public-api.js +4 -1
  11. package/esm2015/lib/components/select-access-dialog/select-access-dialog.component.js +201 -125
  12. package/esm2015/lib/components/select-access-dialog/select-access-dialog.module.js +4 -2
  13. package/esm2015/lib/components/select-department/common/animation.js +26 -2
  14. package/esm2015/lib/components/select-department/select-department.component.js +21 -21
  15. package/esm2015/lib/components/select-department/select-department.module.js +2 -2
  16. package/esm2015/lib/components/select-department-tree/animation/animation.js +2 -2
  17. package/esm2015/lib/components/select-department-tree/model/department-paging.model.js +9 -0
  18. package/esm2015/lib/components/select-department-tree/model/selection-change.model.js +2 -0
  19. package/esm2015/lib/components/select-department-tree/public-api.js +3 -1
  20. package/esm2015/lib/components/select-department-tree/select-department-tree.component.js +312 -236
  21. package/esm2015/lib/directives/content-changes.directive.js +32 -0
  22. package/esm2015/lib/directives/tooltip/tooltip-elipsify.directive.js +51 -0
  23. package/esm2015/lib/directives/tooltip/tooltip-renderer.directive.js +1 -1
  24. package/esm2015/lib/model/en.js +3 -2
  25. package/esm2015/lib/model/no.js +3 -2
  26. package/esm2015/lib/qms-angular.module.js +9 -3
  27. package/esm2015/lib/qms-ckeditor-components/common/models/qms-ckeditor-data.model.js +1 -1
  28. package/esm2015/lib/qms-ckeditor-components/qms-ckeditor.component.js +62 -50
  29. package/esm2015/public-api.js +3 -1
  30. package/fesm2015/qms-angular.js +790 -472
  31. package/fesm2015/qms-angular.js.map +1 -1
  32. package/lib/common/models/qms-flat-node.model.d.ts +2 -0
  33. package/lib/common/models/qms-tree-node.model.d.ts +5 -0
  34. package/lib/components/select-access-dialog/model/access-paging.model.d.ts +9 -0
  35. package/lib/components/select-access-dialog/model/filter-person.model.d.ts +6 -0
  36. package/lib/components/select-access-dialog/model/select-access-config.model.d.ts +1 -0
  37. package/lib/components/select-access-dialog/model/select-access-data.d.ts +4 -2
  38. package/lib/components/select-access-dialog/public-api.d.ts +3 -0
  39. package/lib/components/select-access-dialog/select-access-dialog.component.d.ts +41 -18
  40. package/lib/components/select-department/select-department.component.d.ts +7 -6
  41. package/lib/components/select-department-tree/model/department-paging.model.d.ts +5 -0
  42. package/lib/components/select-department-tree/model/selection-change.model.d.ts +4 -0
  43. package/lib/components/select-department-tree/public-api.d.ts +2 -0
  44. package/lib/components/select-department-tree/select-department-tree.component.d.ts +24 -15
  45. package/lib/directives/content-changes.directive.d.ts +9 -0
  46. package/lib/directives/tooltip/tooltip-elipsify.directive.d.ts +13 -0
  47. package/lib/directives/tooltip/tooltip-renderer.directive.d.ts +2 -2
  48. package/lib/model/en.d.ts +2 -1
  49. package/lib/model/no.d.ts +2 -1
  50. package/lib/qms-ckeditor-components/common/models/qms-ckeditor-data.model.d.ts +1 -1
  51. package/lib/qms-ckeditor-components/qms-ckeditor.component.d.ts +6 -0
  52. package/package.json +1 -1
  53. package/public-api.d.ts +2 -0
  54. package/qms-angular.metadata.json +1 -1
  55. package/src/assets/qms-ckeditor-plugin/build/ckeditor.js +1 -1
  56. package/src/assets/qms-ckeditor-plugin/build/ckeditor.js.map +1 -1
  57. package/src/assets/qms-ckeditor-plugin/src/plugins/template/loadtemplatedialogcommand.js +5 -1
  58. package/src/lib/components/select-access-dialog/select-access-dialog.component.scss +103 -41
  59. package/src/lib/components/select-department/select-department.component.scss +12 -0
  60. package/src/lib/components/select-department-tree/select-department-tree.component.scss +1 -1
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, Component, EventEmitter, ChangeDetectionStrategy, Input, Output, ViewEncapsulation, Inject, ElementRef, ViewChild, HostListener, Directive, ContentChild, Optional, Renderer2, InjectionToken, forwardRef, ChangeDetectorRef, ContentChildren, Attribute, NgModule, CUSTOM_ELEMENTS_SCHEMA, Pipe, ViewContainerRef, HostBinding, NO_ERRORS_SCHEMA, ViewChildren, Injector } from '@angular/core';
2
+ import { Injectable, Component, EventEmitter, ChangeDetectionStrategy, Input, Output, ViewEncapsulation, Inject, ElementRef, ViewChild, HostListener, Directive, ContentChild, Optional, Renderer2, InjectionToken, forwardRef, ChangeDetectorRef, ContentChildren, Attribute, NgModule, CUSTOM_ELEMENTS_SCHEMA, Pipe, ViewContainerRef, HostBinding, TemplateRef, NO_ERRORS_SCHEMA, ViewChildren, Injector } from '@angular/core';
3
3
  import { BehaviorSubject, ReplaySubject, Subject, forkJoin, of, timer } from 'rxjs';
4
4
  import * as i1 from '@angular/common';
5
5
  import { CommonModule, DOCUMENT } from '@angular/common';
@@ -53,9 +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 { query, style, group, animate, trigger, transition, state, stagger } from '@angular/animations';
56
+ import { query, style, group, animate, trigger, transition, state, stagger, keyframes } from '@angular/animations';
57
+ import { PageEvent, MatPaginatorModule } from '@angular/material/paginator';
57
58
  import { MatDividerModule } from '@angular/material/divider';
58
- import { MatPaginatorModule } from '@angular/material/paginator';
59
59
  import { NgxMatSelectSearchModule } from 'ngx-mat-select-search';
60
60
 
61
61
  class QmsAngularService {
@@ -138,7 +138,8 @@ const en = {
138
138
  "TYPE": "Type",
139
139
  "SEARCH_WITH_NAME": "Search first and last name",
140
140
  "RESULT_SEARCH_FOR": "Results search for ",
141
- "TOOLTIP_INCLUDE_CHILD": "{0} - includes {1} children",
141
+ "TOOLTIP_INCLUDE_SUB_DEPARTMENT": "{0} - include {1} sub-departments",
142
+ "NO_RESULT": "No Result",
142
143
  "ERROR": {
143
144
  "SELECT_DANGER": "You must select one or more events"
144
145
  },
@@ -523,7 +524,8 @@ const no = {
523
524
  "TYPE": "Type",
524
525
  "SEARCH_WITH_NAME": "Søk for- og etternavn",
525
526
  "RESULT_SEARCH_FOR": "Resultater søk etter ",
526
- "TOOLTIP_INCLUDE_CHILD": "{0} – inkluderer {1} barn",
527
+ "TOOLTIP_INCLUDE_SUB_DEPARTMENT": "{0} – inkluderer {1} barn",
528
+ "NO_RESULT": "Inget resultat",
527
529
  "ERROR": {
528
530
  "SELECT_DANGER": "Du må velge en eller flere hendelser"
529
531
  },
@@ -3351,6 +3353,83 @@ QMSMultiIconDirective.propDecorators = {
3351
3353
  qmsTransformIcon: [{ type: Input }]
3352
3354
  };
3353
3355
 
3356
+ class EllipsifyDirective extends QMSToolTipRendererDirective {
3357
+ constructor(renderer, elementRef, overlay, overlayPositionBuilder) {
3358
+ super(overlay, overlayPositionBuilder, elementRef);
3359
+ this.renderer = renderer;
3360
+ this.elementRef = elementRef;
3361
+ this.overlay = overlay;
3362
+ this.overlayPositionBuilder = overlayPositionBuilder;
3363
+ this.domElement = this.elementRef.nativeElement;
3364
+ const elipsify = {
3365
+ 'text-overflow': 'ellipsis',
3366
+ 'overflow': 'hidden',
3367
+ 'white-space': 'nowrap',
3368
+ };
3369
+ Object.keys(elipsify).forEach(newStyle => {
3370
+ this.renderer.setStyle(this.domElement, `${newStyle}`, elipsify[newStyle]);
3371
+ });
3372
+ }
3373
+ ngAfterViewInit() {
3374
+ this.renderer.setProperty(this.domElement, 'scrollTop', 1);
3375
+ this.isTitleAttribute();
3376
+ }
3377
+ isTitleAttribute() {
3378
+ if (this._overlayRef.hasAttached())
3379
+ return;
3380
+ if (this.domElement.offsetWidth < this.domElement.scrollWidth) {
3381
+ const tooltipRef = this._overlayRef.attach(new ComponentPortal(QMSToolTipComponent));
3382
+ tooltipRef.instance.text = this.domElement.textContent;
3383
+ tooltipRef.instance.mode = this.mode;
3384
+ }
3385
+ }
3386
+ }
3387
+ EllipsifyDirective.decorators = [
3388
+ { type: Directive, args: [{
3389
+ selector: '[qms-elipsify]'
3390
+ },] }
3391
+ ];
3392
+ EllipsifyDirective.ctorParameters = () => [
3393
+ { type: Renderer2 },
3394
+ { type: ElementRef },
3395
+ { type: Overlay },
3396
+ { type: OverlayPositionBuilder }
3397
+ ];
3398
+ EllipsifyDirective.propDecorators = {
3399
+ isTitleAttribute: [{ type: HostListener, args: ['focus',] }, { type: HostListener, args: ['mouseenter',] }]
3400
+ };
3401
+
3402
+ class QMSContentChangesDirective {
3403
+ constructor(viewContainer, templateRef) {
3404
+ this.viewContainer = viewContainer;
3405
+ this.templateRef = templateRef;
3406
+ this.existView = false;
3407
+ }
3408
+ set qmsContentChanges(val) {
3409
+ if (!this.existView) {
3410
+ this.viewContainer.createEmbeddedView(this.templateRef);
3411
+ this.existView = true;
3412
+ }
3413
+ else if (val !== this.currentValue) {
3414
+ this.viewContainer.clear();
3415
+ this.viewContainer.createEmbeddedView(this.templateRef);
3416
+ this.currentValue = val;
3417
+ }
3418
+ }
3419
+ }
3420
+ QMSContentChangesDirective.decorators = [
3421
+ { type: Directive, args: [{
3422
+ selector: '[qmsContentChanges]'
3423
+ },] }
3424
+ ];
3425
+ QMSContentChangesDirective.ctorParameters = () => [
3426
+ { type: ViewContainerRef },
3427
+ { type: TemplateRef }
3428
+ ];
3429
+ QMSContentChangesDirective.propDecorators = {
3430
+ qmsContentChanges: [{ type: Input }]
3431
+ };
3432
+
3354
3433
  const ɵ0$6 = { appearance: 'fill' }, ɵ1$1 = { color: 'none' };
3355
3434
  class QmsAngularModule {
3356
3435
  }
@@ -3409,7 +3488,9 @@ QmsAngularModule.decorators = [
3409
3488
  QMSDialogHeader,
3410
3489
  QMSDialogContent,
3411
3490
  QMSDialogFooter,
3412
- QMSMultiIconDirective
3491
+ QMSMultiIconDirective,
3492
+ EllipsifyDirective,
3493
+ QMSContentChangesDirective
3413
3494
  ],
3414
3495
  imports: [
3415
3496
  CommonModule,
@@ -3470,7 +3551,9 @@ QmsAngularModule.decorators = [
3470
3551
  QMSDialogHeader,
3471
3552
  QMSDialogContent,
3472
3553
  QMSDialogFooter,
3473
- QMSMultiIconDirective
3554
+ QMSMultiIconDirective,
3555
+ EllipsifyDirective,
3556
+ QMSContentChangesDirective
3474
3557
  ],
3475
3558
  providers: [
3476
3559
  { provide: MAT_FORM_FIELD_DEFAULT_OPTIONS, useValue: ɵ0$6 },
@@ -23203,8 +23286,10 @@ class QMSCKEditorComponent extends QMSCKEditorBaseComponent {
23203
23286
  this.renderer = renderer;
23204
23287
  this.elRef = elRef;
23205
23288
  this.required = false;
23289
+ this.editorId = 'qmsckeditor';
23206
23290
  this.qmsckContentOutput = new EventEmitter();
23207
23291
  this.ckEditorEventConst = CKEditorEventConst;
23292
+ this.isToolbarItemsIdSet = false;
23208
23293
  this.ckTagname = 'div';
23209
23294
  }
23210
23295
  onMessage(event) {
@@ -23244,6 +23329,7 @@ class QMSCKEditorComponent extends QMSCKEditorBaseComponent {
23244
23329
  }
23245
23330
  }
23246
23331
  ngOnInit() {
23332
+ this.toolbarItemPrefixId = `${this.editorId}_toolbar_item_`;
23247
23333
  this.name = 'CKEditor custom build';
23248
23334
  this.ckEditor = this.qmsckPlugin.pluginObject;
23249
23335
  this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubcribe)).subscribe((res) => {
@@ -23251,7 +23337,11 @@ class QMSCKEditorComponent extends QMSCKEditorBaseComponent {
23251
23337
  this.LANG = this.translate.getObjectLang(res);
23252
23338
  }
23253
23339
  });
23254
- this.ckeditorConfig = CKEditorCommonFunctions.getCKEditorConfiguration(this.qmsckPlugin.itemToolbar);
23340
+ let toolbarItems = this.qmsckPlugin.itemToolbar;
23341
+ if (this.isEnabledToggleToolbar() && this.qmsckData.toggledToolbarItems) {
23342
+ toolbarItems += ',' + this.qmsckData.toggledToolbarItems;
23343
+ }
23344
+ this.ckeditorConfig = CKEditorCommonFunctions.getCKEditorConfiguration(toolbarItems);
23255
23345
  this.globalService.setApiUrl(this.qmsckData.apiUrl);
23256
23346
  if (this.isEnabledMathtypeConfig()) {
23257
23347
  this.addMathTypeConfig();
@@ -23259,9 +23349,6 @@ class QMSCKEditorComponent extends QMSCKEditorBaseComponent {
23259
23349
  if (this.isEnabledTimestampConfig()) {
23260
23350
  this.addTimestampConfig();
23261
23351
  }
23262
- if (this.isEnabledToggleToolbar()) {
23263
- this.addToggleToolbarConfig();
23264
- }
23265
23352
  if (this.isEnabledWProofreader()) {
23266
23353
  this.addWProofreaderConfig();
23267
23354
  }
@@ -23276,6 +23363,7 @@ class QMSCKEditorComponent extends QMSCKEditorBaseComponent {
23276
23363
  if (this.editorInstance) {
23277
23364
  this.editorInstance.destroy();
23278
23365
  }
23366
+ $(document).off();
23279
23367
  }
23280
23368
  registerOnChange(fn) {
23281
23369
  this.onChange = fn;
@@ -23307,12 +23395,12 @@ class QMSCKEditorComponent extends QMSCKEditorBaseComponent {
23307
23395
  }
23308
23396
  isEnabledToggleToolbar() {
23309
23397
  const pattern = /(toggleToolbar)/gmi;
23310
- return !!this.qmsckData.toggleToolbar
23398
+ return !!this.qmsckData.toggledToolbarItems
23311
23399
  && !!this.qmsckPlugin.itemToolbar
23312
23400
  && this.qmsckPlugin.itemToolbar.search(pattern) > -1;
23313
23401
  }
23314
23402
  addToggleToolbarConfig() {
23315
- const items = this.qmsckData.toggleToolbar.split(',');
23403
+ const items = this.qmsckData.toggledToolbarItems.split(',');
23316
23404
  const toggleToolbarConfig = {
23317
23405
  toggleToolbarConfig: {
23318
23406
  toolbar: items
@@ -23427,6 +23515,7 @@ class QMSCKEditorComponent extends QMSCKEditorBaseComponent {
23427
23515
  wordsBox.textContent = `${this.LANG.QMSCKEDITOR.WORDS}: ${stats.words} / ${this.LANG.QMSCKEDITOR.CHARACTERS}: ${stats.characters}`;
23428
23516
  }
23429
23517
  });
23518
+ this._setEditorInstanceObserver(this.editorId);
23430
23519
  }
23431
23520
  /**
23432
23521
  * Add template - Load template
@@ -23614,62 +23703,48 @@ class QMSCKEditorComponent extends QMSCKEditorBaseComponent {
23614
23703
  }
23615
23704
  /*
23616
23705
  Toolbar toggle
23706
+
23707
+ This is a temporary workaround.
23708
+ Tracking status and progress of the issue https://github.com/ckeditor/ckeditor5/issues/7383
23709
+
23710
+ - Render both default toolbar and toggle toolbar at init time
23711
+ - Set ID for toolbar items using index:
23712
+ + From index 0 to toolbarLength - 1 is the default toolbar
23713
+ + From index toolbarLength on is the toggle toolbar
23714
+ - Show/hide default and toggle toolbar by set display none to corresponding toolbar items based on ID
23617
23715
  */
23618
23716
  toggleToolbarEventHandling() {
23619
- const qmsckeditor = window.document.getElementById('qmsckeditor');
23717
+ const qmsckeditor = window.document.getElementById(this.editorId);
23620
23718
  const toggleAttribute = 'isToggleToolbar';
23621
23719
  const ckeditorTag = 'ckeditor';
23622
23720
  if (qmsckeditor) {
23623
23721
  const isToggleToolbar = qmsckeditor.getAttribute(toggleAttribute) == 'true';
23624
23722
  if (isToggleToolbar) {
23625
- this.ckeditorConfig = CKEditorCommonFunctions.getCKEditorConfiguration(this.qmsckPlugin.itemToolbar);
23723
+ this._setToolbarViewMode(true);
23626
23724
  qmsckeditor.setAttribute(toggleAttribute, 'false');
23627
23725
  }
23628
23726
  else {
23629
- this.ckeditorConfig = CKEditorCommonFunctions.getCKEditorConfiguration(this.qmsckData.toggleToolbar);
23727
+ this._setToolbarViewMode(false);
23630
23728
  qmsckeditor.setAttribute(toggleAttribute, 'true');
23631
23729
  }
23632
- const onChanged = this.onChanged.bind(this);
23633
- const onBlur = this.onBlur.bind(this);
23634
- if (this.editorInstance) {
23635
- try {
23636
- this.editorInstance.destroy();
23637
- }
23638
- catch (err) {
23639
- console.log(err);
23640
- }
23641
- }
23642
- //This is a temporary workaround.
23643
- //Tracking status and progress of the issue https://github.com/ckeditor/ckeditor5/issues/7383
23644
- const root = window.document.querySelector(ckeditorTag);
23645
- if (!!root) {
23646
- let editorElement = null;
23647
- if (root.childElementCount > 0) {
23648
- editorElement = Array.from(root.children).find(i => i.nodeName.toLowerCase() == this.ckTagname.toLowerCase());
23649
- }
23650
- else {
23651
- editorElement = window.document.createElement(this.ckTagname);
23652
- editorElement.style = 'display: none;';
23653
- root.appendChild(editorElement);
23654
- }
23655
- this.ckEditor.create(editorElement, this.ckeditorConfig).then(editor => {
23656
- this.initEditor(editor);
23657
- this.editorInstance = editor;
23658
- //Delete cache content
23659
- editorElement.innerHTML = '';
23660
- //setup editor events
23661
- const modelDocument = editor.model.document;
23662
- const viewDocument = editor.editing.view.document;
23663
- modelDocument.on('change:data', () => {
23664
- onChanged({ editor });
23665
- });
23666
- viewDocument.on('blur', () => {
23667
- onBlur({ editor });
23668
- });
23669
- });
23670
- }
23671
23730
  }
23672
23731
  }
23732
+ _setToolbarViewMode(showToggleToolbar) {
23733
+ var _a, _b, _c, _d;
23734
+ const toolbarLength = ((_a = this.qmsckPlugin.itemToolbar) === null || _a === void 0 ? void 0 : _a.split(',').length) || 0;
23735
+ /*
23736
+ Items in toolbar are indexed:
23737
+ - From index 0 to toolbarLength - 1 is the default toolbar
23738
+ - From index toolbarLength on is the toggle toolbar
23739
+ */
23740
+ (_b = $(`#${this.toolbarItemPrefixId}${toolbarLength - 1}`)) === null || _b === void 0 ? void 0 : _b.prevAll().each((index, element) => {
23741
+ element.style.display = showToggleToolbar ? 'none' : '';
23742
+ });
23743
+ (_c = $(`#${this.toolbarItemPrefixId}${toolbarLength - 1}`)) === null || _c === void 0 ? void 0 : _c.css('display', showToggleToolbar ? 'none' : '');
23744
+ (_d = $(`#${this.toolbarItemPrefixId}${toolbarLength - 1}`)) === null || _d === void 0 ? void 0 : _d.nextAll().each((index, element) => {
23745
+ element.style.display = showToggleToolbar ? '' : 'none';
23746
+ });
23747
+ }
23673
23748
  /**
23674
23749
  * Flowchart
23675
23750
  */
@@ -23769,11 +23844,30 @@ class QMSCKEditorComponent extends QMSCKEditorBaseComponent {
23769
23844
  });
23770
23845
  });
23771
23846
  }
23847
+ _setEditorInstanceObserver(editorId) {
23848
+ $(document).off('DOMNodeInserted').on('DOMNodeInserted', (e) => {
23849
+ if (!this.isToolbarItemsIdSet && $(e.target).has('#' + editorId)) {
23850
+ this._setIdForToolbarItems();
23851
+ }
23852
+ });
23853
+ }
23854
+ _setIdForToolbarItems() {
23855
+ var _a;
23856
+ const toolbarItems = ((_a = document.querySelector(`${this.editorId ? '#' + this.editorId : ''} .ck-toolbar__items`)) === null || _a === void 0 ? void 0 : _a.children) || [];
23857
+ if (!toolbarItems.length) {
23858
+ return;
23859
+ }
23860
+ this.isToolbarItemsIdSet = true;
23861
+ Array.from(toolbarItems).forEach((item, index) => {
23862
+ item.id = `${this.toolbarItemPrefixId}${index}`;
23863
+ });
23864
+ this.toggleToolbarEventHandling();
23865
+ }
23772
23866
  }
23773
23867
  QMSCKEditorComponent.decorators = [
23774
23868
  { type: Component, args: [{
23775
23869
  selector: 'qms-ckeditor',
23776
- template: "<div id=\"qmsckeditor\" class=\"qmsckeditor_container\">\r\n <ckeditor class=\"qms-ckeditor\" [tagName]=\"ckTagname\" [(editor)]=\"ckEditor\" [config]=\"ckeditorConfig\"\r\n (ready)=\"onReady($event)\" [(ngModel)]=\"qmsckContentInput\" (change)=\"onChanged($event)\" (blur)=\"onBlur($event)\"\r\n [disabled]=\"isDisabled\">\r\n </ckeditor>\r\n <div class=\"sub-container\">\r\n <div class=\"\">\r\n <span>{{LANG.QMSCKEDITOR.ASSISTIVE_TEXT}}</span>\r\n </div>\r\n <div class=\"wordcount-content\"></div>\r\n </div>\r\n</div>\r\n",
23870
+ template: "<div class=\"qmsckeditor_container\" [id]=\"editorId\">\r\n <ckeditor class=\"qms-ckeditor\" [tagName]=\"ckTagname\" [(editor)]=\"ckEditor\" [config]=\"ckeditorConfig\"\r\n (ready)=\"onReady($event)\" [(ngModel)]=\"qmsckContentInput\" (change)=\"onChanged($event)\" (blur)=\"onBlur($event)\"\r\n [disabled]=\"isDisabled\">\r\n </ckeditor>\r\n <div class=\"sub-container\">\r\n <div class=\"\">\r\n <span>{{LANG.QMSCKEDITOR.ASSISTIVE_TEXT}}</span>\r\n </div>\r\n <div class=\"wordcount-content\"></div>\r\n </div>\r\n</div>",
23777
23871
  providers: [
23778
23872
  QMSCKEditorFullscreenComponent,
23779
23873
  {
@@ -23807,6 +23901,7 @@ QMSCKEditorComponent.propDecorators = {
23807
23901
  qmsckContentInput: [{ type: Input }],
23808
23902
  isDisabled: [{ type: Input, args: ['disabled',] }],
23809
23903
  required: [{ type: Input, args: ['required',] }],
23904
+ editorId: [{ type: Input }],
23810
23905
  qmsckContentOutput: [{ type: Output }],
23811
23906
  onMessage: [{ type: HostListener, args: ['window:message', ['$event'],] }]
23812
23907
  };
@@ -28973,7 +29068,7 @@ const AnimationTreeDepartment = [
28973
29068
  transition('* => *', [
28974
29069
  query(':enter', [
28975
29070
  style({ opacity: 0, transform: 'translateY(-100%)' }),
28976
- stagger(25, [
29071
+ stagger(30, [
28977
29072
  animate('0.4s cubic-bezier(0.23, 1, 0.320, 1)', style({ opacity: 1, transform: 'none' }))
28978
29073
  ])
28979
29074
  ], { optional: true })
@@ -28981,34 +29076,44 @@ const AnimationTreeDepartment = [
28981
29076
  ])
28982
29077
  ];
28983
29078
 
29079
+ class QMSDepartmentPagingModel extends PageEvent {
29080
+ constructor() {
29081
+ super();
29082
+ this.data = [];
29083
+ this.data = [];
29084
+ }
29085
+ }
29086
+
28984
29087
  class SelectDepartmentTreeComponent {
28985
- constructor(cdRef, domSanitizer, appIconService, iconRegistry, eleRef, trans) {
29088
+ constructor(cdRef, domSanitizer, appIconService, iconRegistry, eleRef, trans, treeDepartmentGlobalService) {
28986
29089
  this.cdRef = cdRef;
28987
29090
  this.domSanitizer = domSanitizer;
28988
29091
  this.appIconService = appIconService;
28989
29092
  this.iconRegistry = iconRegistry;
28990
29093
  this.eleRef = eleRef;
28991
29094
  this.trans = trans;
29095
+ this.treeDepartmentGlobalService = treeDepartmentGlobalService;
28992
29096
  this.enableIncludeChild = false;
28993
29097
  this.enableTreeSearch = false;
28994
29098
  this.isSelectOne = false;
28995
29099
  this.activeViewSearch = false;
29100
+ this.customClass = '';
29101
+ this.arrSkeleton = new Array(6).fill(0);
28996
29102
  this.treeDataSourceConfig = new QMSSelectDepartmentTreeConfig();
29103
+ this.isIncludeChildren = false;
28997
29104
  this.checkSearchMappingTree = true;
28998
29105
  this.enablePagingSearch = true;
28999
29106
  this.onSearchEvent = new EventEmitter();
29000
29107
  this.onPagingSearchEvent = new EventEmitter();
29001
29108
  this.ngUnsubscribe = new Subject();
29002
29109
  this.isLoaded = false;
29003
- this.resultGroupSelected = [];
29004
- this.resultSingleSelected = [];
29005
29110
  this.resultSearchSelected = [];
29006
29111
  this.resultSelected = [];
29007
29112
  this.getDataTree$ = new BehaviorSubject([]);
29008
29113
  this.onValueChangeEvent = new EventEmitter();
29009
- this.searchDepartment$ = new Subject();
29114
+ this.selectionNodeChangeEvent = new EventEmitter();
29115
+ this.searchDepartment$ = new BehaviorSubject(new QMSDepartmentPagingModel());
29010
29116
  this.resultSearch = [];
29011
- this.pagingResultSearch = [];
29012
29117
  this.isSelectAllResultSearch = false;
29013
29118
  this.indeterminateSearchResult = false;
29014
29119
  this.currentPaginationConfig = {
@@ -29043,6 +29148,8 @@ class SelectDepartmentTreeComponent {
29043
29148
  flatNode.itemIconSvg = node.itemIconSvg;
29044
29149
  flatNode.isFile = node.isFile;
29045
29150
  flatNode.disabled = node.disabled;
29151
+ flatNode.isGroup = node.isGroup;
29152
+ flatNode.groupId = node.groupId;
29046
29153
  this.flatTreeNodeMap.set(flatNode, node);
29047
29154
  this.nestedTreeNodeMap.set(node, flatNode);
29048
29155
  return flatNode;
@@ -29051,13 +29158,12 @@ class SelectDepartmentTreeComponent {
29051
29158
  this._getChild = (node) => node.children;
29052
29159
  this.isExpandable = (node) => node.expandable;
29053
29160
  this.hasChild = (_, node) => node.expandable;
29054
- this.treeControl = new FlatTreeControl(this.getLevel, this.isExpandable);
29055
- this.treeFlattener = new MatTreeFlattener(this._transformer, this.getLevel, this.isExpandable, this._getChild);
29056
- this.dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);
29057
29161
  // Init tree data
29058
29162
  this.getDataTree$
29059
29163
  .pipe(takeUntil(this.ngUnsubscribe))
29060
29164
  .subscribe(data => {
29165
+ if (!this.dataSource)
29166
+ return;
29061
29167
  this.dataSource.data = data;
29062
29168
  });
29063
29169
  // Register icon
@@ -29073,58 +29179,23 @@ class SelectDepartmentTreeComponent {
29073
29179
  this.LANG = this.trans.getObjectLang(res);
29074
29180
  }
29075
29181
  });
29076
- this.searchDepartment$
29077
- .pipe(takeUntil(this.ngUnsubscribe))
29078
- .subscribe(result => {
29079
- this.resultSearch = [];
29080
- if (result && result.length) {
29081
- result.forEach(item => {
29082
- const node = this.treeControl.dataNodes.find(node => node.id === item.id);
29083
- const parents = node ? this._getAllParentNode(node) : [];
29084
- this.resultSearch.push(Object.assign(Object.assign({}, item), { disabled: this.checkSearchMappingTree && !node, path: [
29085
- ...(parents.map((x, index) => ({
29086
- id: x.id,
29087
- name: x.name,
29088
- })).reverse() || []),
29089
- {
29090
- id: item.id,
29091
- name: item.name,
29092
- }
29093
- ] }));
29094
- });
29095
- }
29096
- this.currentPaginationConfig.pageIndex = 0;
29097
- this.currentPaginationConfig.pageSize = 10;
29098
- this.getLoading$.next(false);
29099
- this.textResultSearch = this.formSearchControl.value;
29100
- this.onPagingSearchResult(this.currentPaginationConfig);
29101
- this._mapToResultSearch();
29102
- this._checkStateCheckboxAllSearch();
29103
- this.setIndexView(1);
29104
- this.cdRef.detectChanges();
29105
- });
29106
- this.scrollToNodeEvent$.pipe(takeUntil(this.ngUnsubscribe), switchMap((val) => {
29107
- const delayTiming = this.indexView === 1 ? 700 : 0;
29108
- this.setIndexView(0);
29109
- return of(val).pipe(delay(delayTiming));
29110
- })).subscribe(res => {
29111
- this.onScrollIntoNode(res);
29112
- });
29113
- this.getActiveNodeEvent$.pipe(takeUntil(this.ngUnsubscribe), switchMap(val => {
29114
- this.activeNode = val;
29115
- return timer(1500);
29116
- })).subscribe(_ => {
29117
- this.activeNode = '';
29118
- });
29182
+ this._handleSearchEvent();
29183
+ this._handleActiveNodeEvent();
29184
+ this._handleItemSelectionChanged();
29119
29185
  this.getLoading$.pipe(takeUntil(this.ngUnsubscribe))
29120
29186
  .subscribe(res => {
29121
29187
  res ? this.formSearchControl.disable() : this.formSearchControl.enable();
29122
29188
  });
29123
29189
  }
29190
+ set rowsSkeleton(value) {
29191
+ this.arrSkeleton = new Array(value).fill(0);
29192
+ }
29124
29193
  set treeData(value) {
29194
+ this.updateDataTree([]);
29125
29195
  this.treeDataSourceConfig.treeData = value || [];
29126
- this.updateDataTree(this.treeDataSourceConfig.treeData);
29196
+ this._initTreeData();
29127
29197
  }
29198
+ ;
29128
29199
  set selectedList(value) {
29129
29200
  this.treeDataSourceConfig.selectedList = value || [];
29130
29201
  }
@@ -29132,10 +29203,15 @@ class SelectDepartmentTreeComponent {
29132
29203
  this.treeDataSourceConfig.selectIncludeLabel = label;
29133
29204
  }
29134
29205
  get currentTreeData() {
29135
- return this.getDataTree$.value;
29206
+ return this.getDataTree$.getValue();
29207
+ }
29208
+ ngAfterContentInit() {
29209
+ this.cdRef.detectChanges();
29210
+ }
29211
+ ngAfterViewInit() {
29212
+ this.cdRef.detectChanges();
29136
29213
  }
29137
29214
  ngOnInit() {
29138
- this._initTreeData();
29139
29215
  this._initCheckListSelected();
29140
29216
  }
29141
29217
  ngOnDestroy() {
@@ -29143,84 +29219,248 @@ class SelectDepartmentTreeComponent {
29143
29219
  this.ngUnsubscribe.complete();
29144
29220
  }
29145
29221
  _initTreeData() {
29146
- if (this.treeDataSourceConfig.treeData.length) {
29147
- const rootNode = this.treeDataSourceConfig.treeData.filter(item => !item.parentId)
29148
- .map((item, _index) => {
29149
- const node = {
29150
- id: item.id,
29151
- name: item.name,
29152
- markedGetChildren: item.markedGetChildren,
29153
- children: [],
29154
- disabled: this.treeDataSourceConfig.disabledList.includes(item.id),
29155
- itemIcon: item.itemIcon,
29156
- itemMatIcon: item.itemMatIcon,
29157
- itemIconSvg: item.itemIconSvg
29158
- };
29159
- return node;
29160
- });
29161
- if (!rootNode.length)
29162
- throw ('Data invalid.');
29163
- this.updateDataTree(rootNode);
29164
- const groupResult = this.treeDataSourceConfig.treeData.filter(x => x.parentId).reduce((result, currentValue) => {
29165
- (result[currentValue['parentId']] = result[currentValue['parentId']] || []).push(currentValue);
29166
- return result;
29167
- }, {});
29168
- const getAllParent = (parentId) => {
29169
- const parents = [];
29170
- let parent = this.treeDataSourceConfig.treeData.find(x => x.id == parentId);
29171
- while (parent) {
29172
- parents.push(parent);
29173
- parent = this.treeDataSourceConfig.treeData.find(x => x.id == parent.parentId);
29174
- }
29175
- return parents;
29222
+ this.treeControl = new FlatTreeControl(this.getLevel, this.isExpandable);
29223
+ this.treeFlattener = new MatTreeFlattener(this._transformer, this.getLevel, this.isExpandable, this._getChild);
29224
+ this.dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);
29225
+ const _treeDataInput = _.cloneDeep(this.treeDataSourceConfig.treeData);
29226
+ if (!_treeDataInput.length)
29227
+ return;
29228
+ const rootNode = _treeDataInput.filter(item => !item.parentId)
29229
+ .map((item, _index) => {
29230
+ const node = {
29231
+ id: item.id,
29232
+ name: item.name,
29233
+ markedGetChildren: item.markedGetChildren,
29234
+ children: [],
29235
+ isFile: false,
29236
+ itemIcon: item.itemIcon,
29237
+ itemMatIcon: item.itemMatIcon,
29238
+ itemIconSvg: item.itemIconSvg,
29239
+ parentId: item.parentId,
29240
+ isGroup: false
29176
29241
  };
29177
- if (!(rootNode && !!rootNode.length))
29178
- return;
29179
- let groupResultKey = Object.keys(groupResult).filter(x => getAllParent(x).length);
29180
- while (groupResultKey.length) {
29181
- groupResultKey = groupResultKey.filter((key) => {
29182
- const parentFlatNode = this.treeControl.dataNodes.find(node => node.id === key);
29183
- if (parentFlatNode) {
29184
- const parentNestedNode = this.convertToNestedNode(parentFlatNode);
29185
- parentNestedNode.markedGetChildren = true;
29186
- parentNestedNode.children = _.cloneDeep(groupResult[key]);
29187
- parentNestedNode.childCount = parentNestedNode.children.length;
29188
- this.updateDataTree(this.currentTreeData);
29189
- groupResult[key] = [];
29190
- return false;
29191
- }
29192
- return true;
29193
- });
29194
- }
29242
+ return node;
29243
+ });
29244
+ if (!rootNode.length)
29245
+ throw ('Data invalid.');
29246
+ const invalidItems = _treeDataInput.filter(item => item.id == item.parentId) || [];
29247
+ if (invalidItems.length) {
29248
+ throw (`data ${JSON.stringify(invalidItems)} invalid`);
29249
+ }
29250
+ this.updateDataTree(rootNode);
29251
+ const groupResult = _treeDataInput.filter(x => x.parentId).reduce((result, currentValue) => {
29252
+ (result[currentValue['parentId']] = result[currentValue['parentId']] || []).push(currentValue);
29253
+ return result;
29254
+ }, {});
29255
+ const checkValidGroup = (id) => {
29256
+ const parents = [];
29257
+ let parent = _treeDataInput.find(x => x.id == id);
29258
+ while (parent === null || parent === void 0 ? void 0 : parent.id) {
29259
+ parents.push(parent);
29260
+ parent = _treeDataInput.find(x => x.id == (parent === null || parent === void 0 ? void 0 : parent.parentId));
29261
+ }
29262
+ return parents.some(x => !x.parentId);
29263
+ };
29264
+ if (!(rootNode && !!rootNode.length))
29265
+ return;
29266
+ let groupResultKey = Object.keys(groupResult).filter(checkValidGroup);
29267
+ while (groupResultKey.length) {
29268
+ groupResultKey = groupResultKey.filter((key) => {
29269
+ const parentFlatNode = this.treeControl.dataNodes.find(node => node.id === key);
29270
+ if (parentFlatNode) {
29271
+ const parentNestedNode = this.convertToNestedNode(parentFlatNode);
29272
+ parentNestedNode.markedGetChildren = true;
29273
+ parentNestedNode.children = _.cloneDeep(groupResult[key]);
29274
+ parentNestedNode.childCount = parentNestedNode.children.length;
29275
+ parentNestedNode.isGroup = false;
29276
+ this.updateDataTree(this.currentTreeData);
29277
+ groupResult[key] = [];
29278
+ return false;
29279
+ }
29280
+ return true;
29281
+ });
29195
29282
  }
29283
+ this.getLoading$.next(false);
29284
+ this._initCheckListSelected();
29196
29285
  }
29197
29286
  _initCheckListSelected() {
29198
29287
  if (!this.treeDataSourceConfig.selectedList.length)
29199
29288
  return;
29200
- this.resultGroupSelected = this.treeDataSourceConfig.selectedList.filter(item => item.children);
29201
- this.resultSingleSelected = this.treeDataSourceConfig.selectedList.filter(item => item.children === null);
29202
- this.treeDataSourceConfig.selectedList.forEach(item => {
29289
+ const selectedList = this.treeDataSourceConfig.selectedList;
29290
+ selectedList.forEach(item => {
29203
29291
  var _a;
29204
- const flatNode = this.treeControl.dataNodes.find(node => node.id === item.id);
29205
- if (flatNode) {
29206
- this.checkListSelection.select(flatNode);
29292
+ const node = this.treeControl.dataNodes.find(x => x.id === item.id);
29293
+ if (node) {
29294
+ const nestedNode = this.convertToNestedNode(node);
29295
+ nestedNode.isGroup = item.isGroup;
29296
+ nestedNode.groupId = item.groupId;
29297
+ this.checkListSelection.select(node);
29298
+ this._handleCheckNode(node);
29207
29299
  ((_a = item.children) === null || _a === void 0 ? void 0 : _a.length) && item.children.forEach(child => {
29208
29300
  const node = this.treeControl.dataNodes.find(_x => _x.id === child.id);
29209
29301
  if (node) {
29210
- this.checkListSelection.select(node);
29211
29302
  this.onExpandAllParent(node);
29212
29303
  }
29213
29304
  });
29214
- this.onExpandAllParent(flatNode);
29305
+ this.onExpandAllParent(node);
29306
+ }
29307
+ });
29308
+ this.cdRef.detectChanges();
29309
+ }
29310
+ //Handle item selection changed
29311
+ _handleItemSelectionChanged() {
29312
+ this.checkListSelection.changed
29313
+ .pipe(takeUntil(this.ngUnsubscribe))
29314
+ .subscribe(({ added, removed }) => {
29315
+ const checkExistInResult = (node) => this.resultSelected.findIndex(x => x.id === node.id) > -1;
29316
+ if (added.length) {
29317
+ added.forEach(node => {
29318
+ const nestedNode = this.convertToNestedNode(node);
29319
+ nestedNode.children = [];
29320
+ nestedNode.childCount = this.getListChildrenOfNode(node).length;
29321
+ const existGroup = this._getAllParentNode(node).map(item => this.convertToNestedNode(item)).find(x => x.isGroup);
29322
+ if (!!existGroup) {
29323
+ nestedNode.groupId = existGroup.id;
29324
+ if (!existGroup.children.some(x => x.id === nestedNode.id)) {
29325
+ existGroup.children.push(nestedNode);
29326
+ this._onSelectionNodeChangeEvent('updated', [existGroup]);
29327
+ }
29328
+ if (!checkExistInResult(existGroup)) {
29329
+ this.resultSelected.push(existGroup);
29330
+ this._onSelectionNodeChangeEvent('added', [existGroup]);
29331
+ }
29332
+ this.resultSelected.forEach((item, index) => {
29333
+ if (item.groupId === existGroup.id) {
29334
+ this.resultSelected.splice(index, 1);
29335
+ this._onSelectionNodeChangeEvent('removed', [item]);
29336
+ }
29337
+ });
29338
+ return;
29339
+ }
29340
+ if (checkExistInResult(node))
29341
+ return;
29342
+ this.resultSelected.push(nestedNode);
29343
+ this._onSelectionNodeChangeEvent('added', [nestedNode]);
29344
+ });
29345
+ }
29346
+ if (removed.length) {
29347
+ removed.forEach(node => {
29348
+ const nestedNode = this.convertToNestedNode(node);
29349
+ const children = this.getListChildrenOfNode(node);
29350
+ if (nestedNode.isGroup) {
29351
+ const _item = this.resultSelected.find(x => x.id === node.id);
29352
+ if (!_item)
29353
+ return;
29354
+ children.forEach(item => {
29355
+ item.groupId = null;
29356
+ });
29357
+ this.resultSelected.splice(this.resultSelected.indexOf(_item), 1);
29358
+ this._onSelectionNodeChangeEvent('removed', [_item]);
29359
+ return;
29360
+ }
29361
+ const group = this.resultSelected.find(x => x.id === nestedNode.groupId);
29362
+ if (!group) {
29363
+ const _item = this.resultSelected.find(x => x.id === node.id);
29364
+ if (!_item)
29365
+ return;
29366
+ this.resultSelected.splice(this.resultSelected.indexOf(_item), 1);
29367
+ this._onSelectionNodeChangeEvent('removed', [_item]);
29368
+ return;
29369
+ }
29370
+ const arrCheck = this.getListChildrenOfNode(node).concat(node);
29371
+ arrCheck.forEach(item => {
29372
+ const _node = this.treeControl.dataNodes.find(x => x.id === item.id);
29373
+ if (group.children.some(x => x.id === _node.id && !this.checkListSelection.isSelected(_node))) {
29374
+ const _item = group.children.find(x => x.id === item.id);
29375
+ if (!_item)
29376
+ return;
29377
+ group.children.splice(group.children.indexOf(_item), 1);
29378
+ this._onSelectionNodeChangeEvent('updated', [group]);
29379
+ }
29380
+ });
29381
+ });
29215
29382
  }
29216
- this.resultSelected = [...this.resultSingleSelected, ...this.resultGroupSelected];
29217
29383
  this.onValueChangeEvent.emit(this.resultSelected);
29218
29384
  });
29219
29385
  }
29386
+ _onSelectionNodeChangeEvent(state, data) {
29387
+ switch (state) {
29388
+ case 'removed':
29389
+ this.selectionNodeChangeEvent.emit({
29390
+ removed: data,
29391
+ added: [],
29392
+ updated: [],
29393
+ source: new SelectionModel(true, this.resultSelected)
29394
+ });
29395
+ break;
29396
+ case 'updated':
29397
+ this.selectionNodeChangeEvent.emit({
29398
+ removed: [],
29399
+ added: [],
29400
+ updated: data,
29401
+ source: new SelectionModel(true, this.resultSelected)
29402
+ });
29403
+ break;
29404
+ case 'added':
29405
+ this.selectionNodeChangeEvent.emit({
29406
+ removed: [],
29407
+ added: data,
29408
+ updated: [],
29409
+ source: new SelectionModel(true, this.resultSelected)
29410
+ });
29411
+ break;
29412
+ default:
29413
+ return;
29414
+ }
29415
+ }
29416
+ _handleSearchEvent() {
29417
+ this.searchDepartment$
29418
+ .pipe(takeUntil(this.ngUnsubscribe))
29419
+ .subscribe(result => {
29420
+ this.resultSearch = [];
29421
+ if (result && result.length) {
29422
+ result.data.forEach(item => {
29423
+ const node = this.treeControl.dataNodes.find(node => node.id === item.id);
29424
+ const parents = node ? this._getAllParentNode(node) : [];
29425
+ this.resultSearch.push(Object.assign(Object.assign({}, item), { disabled: this.checkSearchMappingTree && !node, path: [
29426
+ ...(parents.map((x, index) => ({
29427
+ id: x.id,
29428
+ name: x.name,
29429
+ })).reverse() || []),
29430
+ {
29431
+ id: item.id,
29432
+ name: item.name,
29433
+ }
29434
+ ] }));
29435
+ });
29436
+ this.getLoading$.next(false);
29437
+ this.textResultSearch = this.formSearchControl.value;
29438
+ this._mapToResultSearch();
29439
+ this._checkStateCheckboxAllSearch();
29440
+ this.setIndexView(1);
29441
+ }
29442
+ });
29443
+ }
29444
+ _handleActiveNodeEvent() {
29445
+ this.scrollToNodeEvent$.pipe(takeUntil(this.ngUnsubscribe), switchMap((val) => {
29446
+ const delayTiming = this.indexView === 1 ? 700 : 0;
29447
+ this.setIndexView(0);
29448
+ return of(val).pipe(delay(delayTiming));
29449
+ })).subscribe(res => {
29450
+ this.onScrollIntoNode(res);
29451
+ });
29452
+ this.getActiveNodeEvent$.pipe(takeUntil(this.ngUnsubscribe), switchMap(val => {
29453
+ this.activeNode = val;
29454
+ return timer(1500);
29455
+ })).subscribe(_ => {
29456
+ this.activeNode = '';
29457
+ });
29458
+ }
29220
29459
  updateDataTree(data) {
29221
29460
  this.getDataTree$.next(data);
29222
29461
  }
29223
29462
  setResultSearch(data) {
29463
+ this.getLoading$.next(false);
29224
29464
  this.searchDepartment$.next(data);
29225
29465
  }
29226
29466
  onExpandNode(node) {
@@ -29233,8 +29473,6 @@ class SelectDepartmentTreeComponent {
29233
29473
  this._handleCheckNode(flatNode);
29234
29474
  this.onScrollIntoNode(flatNode.id);
29235
29475
  }
29236
- onSlideToggleChange() {
29237
- }
29238
29476
  displayWhenSelectDepartmentOption($event) {
29239
29477
  return '';
29240
29478
  }
@@ -29246,8 +29484,6 @@ class SelectDepartmentTreeComponent {
29246
29484
  else {
29247
29485
  this._handleCheckNode(node);
29248
29486
  }
29249
- this.onValueChangeEvent.emit(this.resultSelected);
29250
- this._mapToResultSearch();
29251
29487
  this._checkStateCheckboxAllSearch();
29252
29488
  }
29253
29489
  _handleSelectOne(node) {
@@ -29274,7 +29510,6 @@ class SelectDepartmentTreeComponent {
29274
29510
  this.checkListSelection.deselect(flatNode);
29275
29511
  flatNode && this._handleCheckNode(flatNode);
29276
29512
  this._checkStateCheckboxAllSearch();
29277
- this.onValueChangeEvent.emit(this.resultSelected);
29278
29513
  }
29279
29514
  isIndeterminate(node) {
29280
29515
  const childSelected = this.getListChildrenOfNode(node).filter(item => this.checkListSelection.isSelected(item));
@@ -29285,73 +29520,37 @@ class SelectDepartmentTreeComponent {
29285
29520
  return listCheck.every(item => this.checkListSelection.isSelected(item));
29286
29521
  }
29287
29522
  _handleCheckNode(node) {
29288
- const isSelectedNode = this.checkListSelection.isSelected(node);
29289
- const isOwnerGroup = !!this.resultGroupSelected.find(gr => (gr === null || gr === void 0 ? void 0 : gr.id) === node.id);
29290
- if (isSelectedNode) {
29291
- const children = this.treeDataSourceConfig.includeChildren && this.getListChildrenOfNode(node);
29292
- children && this.checkListSelection.select(...children);
29293
- }
29294
- else {
29295
- const childSelected = this.getChildrenSelected(node);
29296
- // check node is owner group or mode is 'include children' and remove all children
29297
- (isOwnerGroup || this.treeDataSourceConfig.includeChildren) && this.checkListSelection.deselect(...childSelected);
29298
- }
29299
- this._updateGroupResult(node);
29300
- this._updateSingleResult();
29301
- this.resultSelected = [...this.resultSingleSelected, ...this.resultGroupSelected];
29302
- this._mapToResultSearch();
29303
- }
29304
- // Check group root contain node and re-update chilren
29305
- _updateGroupResult(node) {
29523
+ const isSelected = this.checkListSelection.isSelected(node);
29524
+ const childSelected = this.getChildrenSelected(node);
29306
29525
  const nestedNode = this.convertToNestedNode(node);
29307
- const existedGroup = this._getExistedGroup(node);
29308
- const childrenSelected = this._mapToNestedListNode(this.getChildrenSelected(this.convertToFlatNode(existedGroup) || node));
29309
- const item = this.resultGroupSelected.find(gr => gr.id == nestedNode.id || gr.id === (existedGroup === null || existedGroup === void 0 ? void 0 : existedGroup.id));
29310
- if (!!item) {
29311
- item.children = childrenSelected;
29312
- }
29313
- else {
29314
- this.treeDataSourceConfig.includeChildren && this.resultGroupSelected.push(Object.assign(Object.assign({}, nestedNode), { children: childrenSelected }));
29526
+ if (isSelected) {
29527
+ // Check existed group
29528
+ const existedGroup = this._getAllParentNode(node).find(x => this.convertToNestedNode(x).isGroup);
29529
+ if (!this.isIncludeChildren) {
29530
+ // nestedNode.isGroup = false;
29531
+ nestedNode.groupId = existedGroup === null || existedGroup === void 0 ? void 0 : existedGroup.id;
29532
+ return;
29533
+ }
29534
+ const children = this.getListChildrenOfNode(node);
29535
+ nestedNode.isGroup = !existedGroup && !!children.length;
29536
+ if (!children.length)
29537
+ return;
29538
+ children.forEach(x => {
29539
+ const _node = this.convertToNestedNode(x);
29540
+ _node.groupId = existedGroup ? existedGroup.id : node.id;
29541
+ _node.isGroup = false;
29542
+ });
29543
+ this.checkListSelection.deselect(...childSelected.map(this.resetNode));
29544
+ this.checkListSelection.select(...children.map(this.resetNode));
29545
+ return;
29315
29546
  }
29316
- this._checkGroupSelected(childrenSelected);
29547
+ const deselectNodes = (this.isIncludeChildren || nestedNode.isGroup) ? childSelected : [node];
29548
+ this.checkListSelection.deselect(...deselectNodes);
29549
+ nestedNode.isGroup = false;
29317
29550
  }
29318
- // Check single selected result
29319
- _updateSingleResult() {
29320
- let excludeChildOfGroup = [];
29321
- this.resultGroupSelected.forEach(gr => {
29322
- excludeChildOfGroup = [...excludeChildOfGroup, ...gr.children.map(x => x.id)];
29323
- });
29324
- this.resultSingleSelected = this.treeControl.dataNodes.filter(item => {
29325
- const isSelected = this.checkListSelection.isSelected(item);
29326
- const existedGroup = this._getExistedGroup(item);
29327
- const isOwnerGroup = !!this.resultGroupSelected.find(x => (x === null || x === void 0 ? void 0 : x.id) === item.id);
29328
- return isSelected && !existedGroup && !isOwnerGroup && !excludeChildOfGroup.includes(item.id);
29329
- }).map(item => {
29330
- const nestedNode = this.convertToNestedNode(item);
29331
- nestedNode.children = null;
29332
- return nestedNode;
29333
- });
29334
- }
29335
- _checkGroupSelected(childSelected) {
29336
- this.resultGroupSelected = this.resultGroupSelected.filter(gr => {
29337
- const flatNode = this.treeControl.dataNodes.find(node => node.id === gr.id);
29338
- const childSelectedInGroup = gr.children.filter(x => childSelected.includes(x));
29339
- gr.childCount = this.getListChildrenOfNode(flatNode).length;
29340
- // 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
29341
- const arrChild = this.treeDataSourceConfig.includeChildren ? childSelected : childSelectedInGroup;
29342
- return gr.childCount > 0 && this.checkListSelection.isSelected(flatNode) && !arrChild.find(_x => _x.id === gr.id);
29343
- });
29344
- }
29345
- _getExistedGroup(node) {
29346
- const allParent = this._getAllParentNode(node);
29347
- const listGroupIds = this.resultGroupSelected.map(gr => gr.id);
29348
- let existedGroup;
29349
- allParent.forEach(item => {
29350
- if (listGroupIds.includes(item.id)) {
29351
- existedGroup = this.convertToNestedNode(item);
29352
- }
29353
- });
29354
- return existedGroup;
29551
+ resetNode(node) {
29552
+ node.isGroup = false;
29553
+ return node;
29355
29554
  }
29356
29555
  getChildrenSelected(node) {
29357
29556
  return this.getListChildrenOfNode(node).filter(x => this.checkListSelection.isSelected(x));
@@ -29363,23 +29562,11 @@ class SelectDepartmentTreeComponent {
29363
29562
  return flatNodeList.map(item => this.convertToNestedNode(item));
29364
29563
  }
29365
29564
  convertToNestedNode(node) {
29366
- return this.flatTreeNodeMap.get(node);
29565
+ return this.flatTreeNodeMap.get(node) || {};
29367
29566
  }
29368
29567
  convertToFlatNode(node) {
29369
29568
  return this.nestedTreeNodeMap.get(node);
29370
29569
  }
29371
- _getRootSelected(node) {
29372
- const parentList = this._getAllParentNode(node);
29373
- let groupExist;
29374
- if (parentList.length) {
29375
- parentList.forEach(item => {
29376
- if (this.checkListSelection.isSelected(item)) {
29377
- groupExist = item;
29378
- }
29379
- });
29380
- }
29381
- return groupExist;
29382
- }
29383
29570
  _getAllParentNode(node) {
29384
29571
  const listParent = [];
29385
29572
  let parent = this._getParentNode(node);
@@ -29425,12 +29612,13 @@ class SelectDepartmentTreeComponent {
29425
29612
  this.getActiveNodeEvent$.next(nodeId);
29426
29613
  }
29427
29614
  onSearch() {
29428
- if (this.formSearchControl.value) {
29429
- this.getLoading$.next(true);
29430
- this.setIndexView(1);
29431
- this.onSearchEvent.emit(this.formSearchControl.value);
29615
+ this.getLoading$.next(true);
29616
+ this.setIndexView(1);
29617
+ this.onSearchEvent.emit(this.formSearchControl.value);
29618
+ if (!this.paginatorSearch)
29432
29619
  return;
29433
- }
29620
+ this.paginatorSearch.changePage(0);
29621
+ this.paginatorSearch.renderDisplayNumberOfpages();
29434
29622
  }
29435
29623
  onClickResultItem(item) {
29436
29624
  const node = this.treeControl.dataNodes.find(x => item.id === x.id);
@@ -29454,7 +29642,6 @@ class SelectDepartmentTreeComponent {
29454
29642
  }
29455
29643
  this._handleCheckResutlSearch(item);
29456
29644
  this._checkStateCheckboxAllSearch();
29457
- this.onValueChangeEvent.emit(this.resultSelected);
29458
29645
  }
29459
29646
  _mapToResultSearch() {
29460
29647
  if (!!this.resultSearch.length)
@@ -29472,43 +29659,27 @@ class SelectDepartmentTreeComponent {
29472
29659
  }
29473
29660
  onSelectAllSearchResult(checked) {
29474
29661
  this.isSelectAllResultSearch = !checked;
29475
- const handle = (arr) => {
29476
- arr.length && arr.forEach(item => {
29477
- if (this.isSelectAllResultSearch) {
29478
- !this.checkListSelectionSearch.isSelected(item) && this.checkListSelectionSearch.select(item);
29479
- }
29480
- else {
29481
- this.checkListSelectionSearch.deselect(item);
29482
- }
29483
- this._handleCheckResutlSearch(item);
29484
- });
29485
- };
29486
- if (this.treeDataSourceConfig.includeChildren) {
29487
- const mainGroup = this.pagingResultSearch.filter((item) => {
29488
- const mainGroup = this.pagingResultSearch.filter((item) => {
29489
- const node = this.treeControl.dataNodes.find(x => x.id === item.id);
29490
- const existItemGroup = this._getAllParentNode(node).filter(x => this.pagingResultSearch.some(x1 => x1.id === x.id));
29491
- return existItemGroup.length === 0;
29492
- });
29493
- handle(mainGroup);
29494
- });
29495
- }
29496
- else {
29497
- handle(this.pagingResultSearch);
29498
- }
29662
+ this.resultSearch.length && this.resultSearch.forEach(item => {
29663
+ if (this.isSelectAllResultSearch) {
29664
+ !this.checkListSelectionSearch.isSelected(item) && this.checkListSelectionSearch.select(item);
29665
+ }
29666
+ else {
29667
+ this.checkListSelectionSearch.deselect(item);
29668
+ }
29669
+ this._handleCheckResutlSearch(item);
29670
+ });
29499
29671
  this._checkStateCheckboxAllSearch();
29500
29672
  this.onValueChangeEvent.emit(this.resultSelected);
29501
29673
  }
29502
29674
  _checkStateCheckboxAllSearch() {
29503
- this.isSelectAllResultSearch = !!this.pagingResultSearch.length && this.pagingResultSearch.every(x => this.checkListSelectionSearch.isSelected(x));
29504
- this.indeterminateSearchResult = !this.isSelectAllResultSearch && !!this.pagingResultSearch.length && this.pagingResultSearch.some(x => this.checkListSelectionSearch.isSelected(x));
29675
+ this.isSelectAllResultSearch = !!this.resultSearch.length && this.resultSearch.every(x => this.checkListSelectionSearch.isSelected(x));
29676
+ this.indeterminateSearchResult = !this.isSelectAllResultSearch && !!this.resultSearch.length && this.resultSearch.some(x => this.checkListSelectionSearch.isSelected(x));
29505
29677
  }
29506
29678
  isDisableChecboxAllSearch() {
29507
- return this.pagingResultSearch.length && this.pagingResultSearch.every(x => x.disabled);
29679
+ return this.resultSearch && this.resultSearch.every(x => x.disabled);
29508
29680
  }
29509
29681
  onPagingSearchResult(val) {
29510
- this.currentPaginationConfig = val;
29511
- this.pagingResultSearch = this.enablePagingSearch ? this.resultSearch.slice(val.pageIndex * val.pageSize, (val.pageIndex * val.pageSize) + val.pageSize) : this.resultSearch;
29682
+ this.getLoading$.next(true);
29512
29683
  this._checkStateCheckboxAllSearch();
29513
29684
  this.onPagingSearchEvent.emit(val);
29514
29685
  }
@@ -29517,7 +29688,7 @@ class SelectDepartmentTreeComponent {
29517
29688
  }
29518
29689
  setIndexView(index) {
29519
29690
  if (index === 1) {
29520
- this.treeDataSourceConfig.includeChildren = false;
29691
+ this.isIncludeChildren = false;
29521
29692
  }
29522
29693
  this.indexView = index;
29523
29694
  }
@@ -29525,17 +29696,17 @@ class SelectDepartmentTreeComponent {
29525
29696
  return JSON.parse(localStorage.getItem('selectedNode'));
29526
29697
  }
29527
29698
  setSelectedNodeStorage(node) {
29528
- this.treeDataSourceConfig.includeChildren && localStorage.setItem('selectedNode', JSON.stringify(node));
29699
+ this.isIncludeChildren && localStorage.setItem('selectedNode', JSON.stringify(node));
29529
29700
  }
29530
29701
  }
29531
29702
  SelectDepartmentTreeComponent.decorators = [
29532
29703
  { type: Component, args: [{
29533
29704
  selector: 'qms-select-department-tree',
29534
- template: "<div class=\"qms-select-department-tree-container\">\r\n <div class=\"input-select-department\">\r\n <form (ngSubmit)=\"!getLoading$.value && onSearch()\" *ngIf=\"enableTreeSearch\" class=\"input-field\">\r\n <mat-form-field class=\"w100\" qms-form qms-search-field>\r\n <input [formControl]=\"formSearchControl\" type=\"text\" placeholder=\"Search\" matInput />\r\n <button *ngIf=\"!getLoading$.value\" type=\"submit\" qms-btn-icon color=\"light\" matSuffix>\r\n <mat-icon>search</mat-icon>\r\n </button>\r\n <mat-progress-spinner [@inOutAnimation] matSuffix mode=\"indeterminate\" diameter=\"20\"\r\n *ngIf=\"getLoading$.value\"></mat-progress-spinner>\r\n <div *ngIf=\"!!formSearchControl.value && !getLoading$.value\" qms-input-clear matSuffix>\r\n <button qms-btn-icon color=\"light\" [@inOutAnimation] aria-label=\"Clear\" (click)=\"formSearchControl.reset()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </mat-form-field>\r\n </form>\r\n <div [@inOutAnimation] *ngIf=\"indexView === 1 && textResultSearch\" class=\"sub-text ms-1 fw500\">\r\n {{LANG.RESULT_SEARCH_FOR}}<i><b>\"{{textResultSearch}}\"</b></i>\r\n </div>\r\n <div [class.justify-content-between]=\"enableIncludeChild && !isSelectOne\"\r\n class=\"select__toggle-include toggle-include-child mt-1 d-flex justify-content-end align-items-center\">\r\n <mat-slide-toggle *ngIf=\"enableIncludeChild && !isSelectOne\" [disabled]=\"indexView === 1\"\r\n [(ngModel)]=\"treeDataSourceConfig.includeChildren\" (ngModelChange)=\"onSlideToggleChange()\" color=\"default\"\r\n qms-group-options>\r\n <span class=\"text-label\">{{treeDataSourceConfig.selectIncludeLabel || LANG.SELECT_INCLUDE_CHILD}}</span>\r\n </mat-slide-toggle>\r\n <button class=\"btn-arrow\" [@inOutAnimation] *ngIf=\"indexView === 1 && enableTreeSearch\" (click)=\"setIndexView(0)\"\r\n qms-btn-icon color=\"light\" [qms-tool-tip]=\"LANG.BACK_TO_TREE\" mode=\"dark\" position=\"top\">\r\n <mat-icon>arrow_back</mat-icon>\r\n </button>\r\n <button class=\"btn-arrow\" [@inOutAnimation] *ngIf=\"indexView === 0 && enableTreeSearch && textResultSearch\"\r\n (click)=\"setIndexView(1)\" qms-btn-icon color=\"light\" [qms-tool-tip]=\"LANG.GOTO_SEACH_RESULT\" mode=\"dark\"\r\n position=\"top\">\r\n <mat-icon>arrow_forward</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <mat-divider class=\"mx-auto\"></mat-divider>\r\n <div [@animateSlideView]=\"indexView\" class=\"tree-department-wrapper\">\r\n <mat-tree [@listAnimation] *ngIf=\"indexView === 0\" class=\"select-department-tree\" [dataSource]=\"dataSource\"\r\n [treeControl]=\"treeControl\">\r\n <!-- This is the tree node template for leaf nodes -->\r\n <mat-tree-node\r\n [ngClass]=\"{'w-100': isSelectOne, 'selected-theme': this.checkListSelection.isSelected(node) && isSelectOne}\"\r\n [@triggerColor]=\"activeNode == node.id\" *matTreeNodeDef=\"let node\" matTreeNodeToggle matTreeNodePadding\r\n [ngClass]=\"{\r\n 'mat-tree-node-disabled-all': node.disabled\r\n }\">\r\n <button class=\"btn-toggle\" qms-btn-icon color=\"light\" disabled></button>\r\n <ng-container [ngTemplateOutlet]=\"isSelectOne ? nodeWithoutCheckboxTemplate : showCheckboxTemplate\"\r\n [ngTemplateOutletContext]=\"{ node: node }\">\r\n </ng-container>\r\n </mat-tree-node>\r\n <!-- This is the tree node template for expandable nodes -->\r\n <mat-tree-node [@triggerColor]=\"activeNode == node.id\" *matTreeNodeDef=\"let node; when: hasChild\"\r\n [class.selected-theme]=\"this.checkListSelection.isSelected(node) && isSelectOne\" matTreeNodePadding [ngClass]=\"{\r\n 'expand-node': treeControl.isExpanded(node),\r\n 'collapse-node': !treeControl.isExpanded(node),\r\n 'mat-tree-node-disabled': node.disabled\r\n }\">\r\n <div class=\"node-content-wraper\" [ngClass]=\"{'w-100': isSelectOne}\">\r\n <button class=\"btn-toggle\" qms-btn-icon color=\"light\" (click)=\"onExpandNode(node)\" matTreeNodeToggle>\r\n <mat-icon>\r\n {{ treeControl.isExpanded(node) ? \"expand_more\" : \"chevron_right\" }}\r\n </mat-icon>\r\n </button>\r\n <ng-container [ngTemplateOutlet]=\"isSelectOne ? nodeWithoutCheckboxTemplate : 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 *ngIf=\"indexView === 1\" class=\"qms-view-search-result\">\r\n <div class=\"\">\r\n <mat-checkbox [@inOutAnimation] *ngIf=\"!!resultSearch.length && !getLoading$.value\"\r\n [disabled]=\"!resultSearch.length || isSelectOne || isDisableChecboxAllSearch()\" #checkAllSearch\r\n [indeterminate]=\"indeterminateSearchResult\" [checked]=\"isSelectAllResultSearch\" qms-group-options\r\n color=\"default\" label=\"none\" class=\"checkbox-all\"\r\n (click)=\"!isSelectOne && onSelectAllSearchResult(checkAllSearch.checked)\">\r\n <span class=\"text-label header-title\">{{LANG.CHOOSE_ALL}}</span>\r\n <span>(<b>{{pagingResultSearch.length}}</b>)</span>\r\n </mat-checkbox>\r\n </div>\r\n <ng-container *ngIf=\"getLoading$.value; then loading\"></ng-container>\r\n <div [@inOutAnimation] *ngIf=\"pagingResultSearch.length && !getLoading$.value\"\r\n [class.active-paging]=\"resultSearch.length > 10 && enablePagingSearch\" class=\"result\">\r\n <div *ngFor=\"let item of pagingResultSearch\" (click)=\"$event.stopPropagation();onClickResultItem(item)\"\r\n [class.active]=\"checkListSelectionSearch.isSelected(item)\" class=\"result-item user-select-none\" matRipple>\r\n <mat-checkbox [disabled]=\"item.disabled\"\r\n (click)=\"$event.stopImmediatePropagation(); !item.disabled && onCheckItemSearchResult(item)\"\r\n [checked]=\"checkListSelectionSearch.isSelected(item)\" qms-group-options color=\"default\" label=\"none\">\r\n </mat-checkbox>\r\n <div class=\"item-result-content-wraper\">\r\n <div class=\"text-gray fw-bold fs-base mb0\">{{item.name}}</div>\r\n <qms-breadcrumb [numDisplayItem]=\"6\" (onItemClick)=\"onBreadCrumbItemClick($event)\"\r\n *ngIf=\"item.path.length > 1\" class=\"breadcrumb-container\" [nodes]=\"item.path\">\r\n </qms-breadcrumb>\r\n\r\n <div *ngIf=\"item.path.length === 1\" class=\"d-flex align-items-center\">\r\n <!-- <mat-icon class=\"me-1\">arrow_right</mat-icon> -->\r\n <span class=\"item-breadcrumb-disable\">{{item.path[0].name}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div [@inOutAnimation] *ngIf=\"!pagingResultSearch.length && !getLoading$.value\" class=\"result no-result\">\r\n <ng-container *ngTemplateOutlet=\"noResult\"></ng-container>\r\n </div>\r\n <mat-divider *ngIf=\"resultSearch.length > 10 && enablePagingSearch\" class=\"mx-auto\"></mat-divider>\r\n <qms-paginator *ngIf=\"resultSearch.length > 10 && enablePagingSearch && !getLoading$.value\"\r\n [length]=\"resultSearch.length\" [numHidden]=\"0\" [pageSize]=\"10\" [pageSizeOptions]=\"[5, 10, 25, 100]\"\r\n (page)='onPagingSearchResult($event)' [size]='PAGINATION_SIZE.medium'>\r\n </qms-paginator>\r\n </div>\r\n </div>\r\n\r\n <!-- Template for Checkbox -->\r\n <ng-template #showCheckboxTemplate let-node=\"node\">\r\n <mat-checkbox [id]=\"'node-'+node.id\" qms-group-options color=\"default\" label=\"none\" class=\"flex-direction-row\"\r\n [checked]=\"checkListSelection.isSelected(node)\" (click)=\"onCheckNode(node)\" [attr.disabled]=\"node.disabled\">\r\n <img *ngIf=\"node.itemIconSvg\" class=\"material-icons type-icon\" [src]=\"node.itemIconSvg\" />\r\n <span *ngIf=\"node.itemIcon\" [class]=\"node.itemIcon\" [qmsTransformIcon]=\"node.itemIcon\"\r\n class=\"material-icons-outlined type-icon\"></span>\r\n <span *ngIf=\"node.itemMatIcon\" class=\"material-icons-outlined type-icon\">{{\r\n node.itemMatIcon }}\r\n </span>\r\n <span class=\"text-name cursor-pointer ml5 123\" [ngClass]=\"{ disabled: node.disabled }\">{{ node.name\r\n }}\r\n </span>\r\n </mat-checkbox>\r\n </ng-template>\r\n\r\n <ng-template #nodeWithoutCheckboxTemplate let-node=\"node\">\r\n <div [id]=\"'node-'+node.id\" (click)=\"onCheckNode(node)\" class=\"node-without-checkbox\">\r\n <div class=\"node-info\">\r\n <span *ngIf=\"node.itemIcon\" [class]=\"node.itemIcon\" [qmsTransformIcon]=\"node.itemIcon\"\r\n class=\"material-icons-outlined type-icon\"></span>\r\n <span *ngIf=\"node.itemMatIcon\" class=\"material-icons-outlined type-icon\">{{\r\n node.itemMatIcon }}\r\n </span>\r\n <span class=\"text-name cursor-pointer ml5 123\" [ngClass]=\"{ disabled: node.disabled }\">{{ node.name\r\n }}\r\n </span>\r\n </div>\r\n <div class=\"node-state\">\r\n <mat-icon *ngIf=\"checkListSelection.isSelected(node)\">check</mat-icon>\r\n </div>\r\n </div>\r\n </ng-template>\r\n</div>\r\n\r\n<ng-template #noResult>\r\n <svg width=\"89\" height=\"88\" viewBox=\"0 0 89 88\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.5\" width=\"88\" height=\"88\" rx=\"44\" fill=\"white\" />\r\n <rect x=\"0.5\" width=\"88\" height=\"88\" rx=\"44\" fill=\"#0163B2\" fill-opacity=\"0.12\" />\r\n <path\r\n d=\"M44.5 56.6936L58.096 64.8996L54.488 49.4336L66.5 39.0276L50.682 37.6856L44.5 23.0996L38.318 37.6856L22.5 39.0276L34.512 49.4336L30.904 64.8996L44.5 56.6936Z\"\r\n fill=\"#0163B3\" />\r\n </svg>\r\n</ng-template>\r\n\r\n<!-- Template loading -->\r\n<ng-template #loading>\r\n <div class=\"loading-container\">\r\n <div class=\"loader\" *ngFor=\"let item of [1,1,1,1,1,1]\">\r\n <div class=\"loader__wrapper\">\r\n <div class=\"row-loader\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-template>\r\n",
29705
+ template: "<div [ngClass]=\"['qms-select-department-tree-container', customClass]\">\r\n <div class=\"input-select-department\">\r\n <form (ngSubmit)=\"!getLoading$.value && onSearch()\" *ngIf=\"enableTreeSearch\" class=\"input-field\">\r\n <mat-form-field class=\"w100\" qms-form qms-search-field>\r\n <input [formControl]=\"formSearchControl\" type=\"text\" placeholder=\"Search\" matInput />\r\n <button *ngIf=\"!getLoading$.value\" type=\"submit\" qms-btn-icon color=\"light\" matSuffix>\r\n <mat-icon>search</mat-icon>\r\n </button>\r\n <mat-progress-spinner [@inOutAnimation] matSuffix mode=\"indeterminate\" diameter=\"20\"\r\n *ngIf=\"getLoading$.value\"></mat-progress-spinner>\r\n <div *ngIf=\"!!formSearchControl.value && !getLoading$.value\" qms-input-clear matSuffix>\r\n <button qms-btn-icon color=\"light\" [@inOutAnimation] aria-label=\"Clear\" (click)=\"formSearchControl.reset()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </mat-form-field>\r\n </form>\r\n <div [@inOutAnimation] *ngIf=\"indexView === 1 && textResultSearch\" class=\"sub-text ms-1 fw500\">\r\n {{LANG.RESULT_SEARCH_FOR}}<i><b>\"{{textResultSearch}}\"</b></i>\r\n </div>\r\n <div [class.justify-content-between]=\"enableIncludeChild && !isSelectOne\"\r\n class=\"select__toggle-include toggle-include-child my-1 d-flex justify-content-end align-items-center\">\r\n <mat-slide-toggle *ngIf=\"enableIncludeChild && !isSelectOne\" [disabled]=\"indexView === 1\"\r\n [(ngModel)]=\"isIncludeChildren\" color=\"default\" qms-group-options>\r\n <span class=\"text-label\">{{treeDataSourceConfig.selectIncludeLabel || LANG.SELECT_INCLUDE_CHILD}}</span>\r\n </mat-slide-toggle>\r\n <button class=\"btn-arrow\" [@inOutAnimation] *ngIf=\"indexView === 1 && enableTreeSearch\" (click)=\"setIndexView(0)\"\r\n qms-btn-icon color=\"light\" [qms-tool-tip]=\"LANG.BACK_TO_TREE\" mode=\"dark\" position=\"top\">\r\n <mat-icon>arrow_back</mat-icon>\r\n </button>\r\n <button class=\"btn-arrow\" [@inOutAnimation] *ngIf=\"indexView === 0 && enableTreeSearch && textResultSearch\"\r\n (click)=\"setIndexView(1)\" qms-btn-icon color=\"light\" [qms-tool-tip]=\"LANG.GOTO_SEACH_RESULT\" mode=\"dark\"\r\n position=\"top\">\r\n <mat-icon>arrow_forward</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <mat-divider class=\"mx-auto\"></mat-divider>\r\n <div [@animateSlideView]=\"indexView\" [ngStyle]=\"{height: height || '50vh'}\" class=\"tree-department-wrapper\">\r\n <mat-tree [@listAnimation] *ngIf=\"indexView === 0 && !!treeControl\" class=\"select-department-tree\"\r\n [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\r\n <!-- This is the tree node template for leaf nodes -->\r\n <mat-tree-node\r\n [ngClass]=\"{'w-100': isSelectOne, 'selected-theme': this.checkListSelection.isSelected(node) && isSelectOne}\"\r\n [@triggerColor]=\"activeNode == node.id\" *matTreeNodeDef=\"let node\" matTreeNodeToggle matTreeNodePadding\r\n [ngClass]=\"{\r\n 'mat-tree-node-disabled-all': node.disabled\r\n }\">\r\n <button class=\"btn-toggle\" qms-btn-icon color=\"light\" disabled></button>\r\n <ng-container [ngTemplateOutlet]=\"isSelectOne ? nodeWithoutCheckboxTemplate : showCheckboxTemplate\"\r\n [ngTemplateOutletContext]=\"{ node: node }\">\r\n </ng-container>\r\n </mat-tree-node>\r\n <!-- This is the tree node template for expandable nodes -->\r\n <mat-tree-node [@triggerColor]=\"activeNode == node.id\" *matTreeNodeDef=\"let node; when: hasChild\"\r\n [class.selected-theme]=\"this.checkListSelection.isSelected(node) && isSelectOne\" matTreeNodePadding [ngClass]=\"{\r\n 'expand-node': treeControl.isExpanded(node),\r\n 'collapse-node': !treeControl.isExpanded(node),\r\n 'mat-tree-node-disabled': node.disabled\r\n }\">\r\n <div class=\"node-content-wraper\" [ngClass]=\"{'w-100': isSelectOne}\">\r\n <button class=\"btn-toggle\" qms-btn-icon color=\"light\" (click)=\"onExpandNode(node)\" matTreeNodeToggle>\r\n <mat-icon>\r\n {{ treeControl.isExpanded(node) ? \"expand_more\" : \"chevron_right\" }}\r\n </mat-icon>\r\n </button>\r\n <ng-container [ngTemplateOutlet]=\"isSelectOne ? nodeWithoutCheckboxTemplate : 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 *ngIf=\"indexView === 1\" class=\"qms-view-search-result\">\r\n <div class=\"\">\r\n <mat-checkbox [@inOutAnimation] *ngIf=\"!!resultSearch.length && !getLoading$.value\"\r\n [disabled]=\"!resultSearch.length || isSelectOne || isDisableChecboxAllSearch()\" #checkAllSearch\r\n [indeterminate]=\"indeterminateSearchResult\" [checked]=\"isSelectAllResultSearch\" qms-group-options\r\n color=\"default\" label=\"none\" class=\"checkbox-all\"\r\n (click)=\"!isSelectOne && onSelectAllSearchResult(checkAllSearch.checked)\">\r\n <span class=\"text-label header-title\">{{LANG.CHOOSE_ALL}}</span>\r\n <span>(<b>{{resultSearch.length}}</b>)</span>\r\n </mat-checkbox>\r\n </div>\r\n <ng-container *ngIf=\"getLoading$.value; then loading\"></ng-container>\r\n <div [@inOutAnimation] [@listAnimation] *ngIf=\"resultSearch.length && !getLoading$.value\"\r\n [class.active-paging]=\"resultSearch.length > 10 && enablePagingSearch\" class=\"result\">\r\n <div *ngFor=\"let item of resultSearch\" (click)=\"$event.stopPropagation();onClickResultItem(item)\"\r\n [class.active]=\"checkListSelectionSearch.isSelected(item)\" class=\"result-item user-select-none\" matRipple>\r\n <mat-checkbox [disabled]=\"item.disabled\"\r\n (click)=\"$event.stopImmediatePropagation(); !item.disabled && onCheckItemSearchResult(item)\"\r\n [checked]=\"checkListSelectionSearch.isSelected(item)\" qms-group-options color=\"default\" label=\"none\">\r\n </mat-checkbox>\r\n <div class=\"item-result-content-wraper\">\r\n <div class=\"text-gray fw-bold fs-base mb0\">{{item.name}}</div>\r\n <qms-breadcrumb [numDisplayItem]=\"6\" (onItemClick)=\"onBreadCrumbItemClick($event)\"\r\n *ngIf=\"item.path.length > 1\" class=\"breadcrumb-container\" [nodes]=\"item.path\">\r\n </qms-breadcrumb>\r\n\r\n <div *ngIf=\"item.path.length === 1\" class=\"d-flex align-items-center\">\r\n <!-- <mat-icon class=\"me-1\">arrow_right</mat-icon> -->\r\n <span class=\"item-breadcrumb-disable\">{{item.path[0].name}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div [@inOutAnimation] *ngIf=\"!resultSearch.length && !getLoading$.value\" class=\"result no-result\">\r\n <ng-container *ngTemplateOutlet=\"noResult\"></ng-container>\r\n </div>\r\n <mat-divider *ngIf=\"searchDepartment$.value.length > 10 && enablePagingSearch\" class=\"mx-auto\"></mat-divider>\r\n <qms-paginator #paginatorSearch *ngIf=\"searchDepartment$.value.length > 10 && enablePagingSearch \"\r\n [length]=\"searchDepartment$.value.length\" [numHidden]=\"0\" [pageSize]=\"10\" [pageSizeOptions]=\"[5, 10, 25, 100]\"\r\n (page)='onPagingSearchResult($event)' [size]='PAGINATION_SIZE.medium'>\r\n </qms-paginator>\r\n </div>\r\n </div>\r\n\r\n <!-- Template for Checkbox -->\r\n <ng-template #showCheckboxTemplate let-node=\"node\">\r\n <mat-checkbox [id]=\"'node-'+node.id\" qms-group-options color=\"default\" label=\"none\" class=\"flex-direction-row\"\r\n [checked]=\"checkListSelection.isSelected(node)\" (click)=\"onCheckNode(node)\" [attr.disabled]=\"node.disabled\">\r\n <img *ngIf=\"node.itemIconSvg\" class=\"material-icons type-icon\" [src]=\"node.itemIconSvg\" />\r\n <span *ngIf=\"node.itemIcon\" [class]=\"node.itemIcon\" [qmsTransformIcon]=\"node.itemIcon\"\r\n class=\"material-icons-outlined type-icon\"></span>\r\n <span *ngIf=\"node.itemMatIcon\" class=\"material-icons-outlined type-icon\">{{\r\n node.itemMatIcon }}\r\n </span>\r\n <span class=\"text-name cursor-pointer ml5 123\" [ngClass]=\"{ disabled: node.disabled }\">{{ node.name\r\n }}\r\n </span>\r\n </mat-checkbox>\r\n </ng-template>\r\n\r\n <ng-template #nodeWithoutCheckboxTemplate let-node=\"node\">\r\n <div [id]=\"'node-'+node.id\" (click)=\"onCheckNode(node)\" class=\"node-without-checkbox\">\r\n <div class=\"node-info\">\r\n <span *ngIf=\"node.itemIcon\" [class]=\"node.itemIcon\" [qmsTransformIcon]=\"node.itemIcon\"\r\n class=\"material-icons-outlined type-icon\"></span>\r\n <span *ngIf=\"node.itemMatIcon\" class=\"material-icons-outlined type-icon\">{{\r\n node.itemMatIcon }}\r\n </span>\r\n <span class=\"text-name cursor-pointer ml5 123\" [ngClass]=\"{ disabled: node.disabled }\">{{ node.name\r\n }}\r\n </span>\r\n </div>\r\n <div class=\"node-state\">\r\n <mat-icon *ngIf=\"checkListSelection.isSelected(node)\">check</mat-icon>\r\n </div>\r\n </div>\r\n </ng-template>\r\n</div>\r\n\r\n<ng-template #noResult>\r\n <svg width=\"89\" height=\"130\" viewBox=\"0 0 89 88\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.5\" width=\"88\" height=\"88\" rx=\"44\" fill=\"white\" />\r\n <rect x=\"0.5\" width=\"88\" height=\"88\" rx=\"44\" fill=\"#0163B2\" fill-opacity=\"0.12\" />\r\n <path\r\n d=\"M44.5 56.6936L58.096 64.8996L54.488 49.4336L66.5 39.0276L50.682 37.6856L44.5 23.0996L38.318 37.6856L22.5 39.0276L34.512 49.4336L30.904 64.8996L44.5 56.6936Z\"\r\n fill=\"#0163B3\" />\r\n <text x=\"10\" y=\"105\" fill=\"#0163B2\">{{LANG.NO_RESULT}}</text>\r\n </svg>\r\n</ng-template>\r\n\r\n<!-- Template loading -->\r\n<ng-template #loading>\r\n <div class=\"loading-container\">\r\n <div class=\"loader\" *ngFor=\"let item of arrSkeleton\">\r\n <div class=\"loader__wrapper\">\r\n <div class=\"row-loader\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-template>\r\n",
29535
29706
  animations: [
29536
29707
  AnimationTreeDepartment
29537
29708
  ],
29538
- 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 .fw500{font-weight:500!important}.qms-select-department-tree-container .text-right{text-align:right}.qms-select-department-tree-container .mt20{margin-top:20px}.qms-select-department-tree-container .text-selected{color:rgba(0,0,0,.6);font-size:12px;line-height:16px;margin-top:1rem}.qms-select-department-tree-container .input-field{display:flex;align-items:center;position:relative}.qms-select-department-tree-container .input-field ::ng-deep .mat-form-field-wrapper{padding-bottom:8px!important}.qms-select-department-tree-container .input-field ::ng-deep .mat-form-field-underline{bottom:8px!important}.qms-select-department-tree-container .input-field input.input-search{width:100%;padding:10px;outline:none;border:none;background:var(--background-input-text)}.qms-select-department-tree-container .input-field .btn-search{cursor:pointer;vertical-align:middle;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.qms-select-department-tree-container .input-field .line__divider{border-bottom:1px solid #ccc;height:1px;margin-top:10px;min-width:300px;max-width:100%}.qms-select-department-tree-container .tree-department-wrapper{height:375px;padding-right:4px;overflow-y:auto;overflow-x:hidden;position:relative}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node{border-radius:4px}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node:hover{background:rgba(0,0,0,.08)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node:active{background:rgba(0,0,0,.12)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.active{color:var(--primary);background:var(--primary-light-6-opacity)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.active:active{background:var(--primary-light-12-opacity)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.active .mat-icon-rtl-mirror,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.active .text-name,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.active .type-icon,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.active button,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.collapse-node:not(.selected-theme).active .mat-icon-rtl-mirror,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.collapse-node:not(.selected-theme).active .text-name,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.collapse-node:not(.selected-theme).active .type-icon,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.collapse-node:not(.selected-theme).active button{color:var(--primary)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.collapse-node:not(.selected-theme).active:hover{background:var(--primary-light-6-opacity)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.collapse-node:not(.selected-theme).active:active,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.selected-theme{background:var(--primary-light-12-opacity)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.expand-node,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.expand-node .mat-icon-rtl-mirror,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.expand-node .text-name,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.expand-node .type-icon,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.expand-node button{color:var(--primary)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.expand-node:hover{background:var(--primary-light-6-opacity)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.expand-node:active{background:var(--primary-light-12-opacity)}.qms-select-department-tree-container .mat-tree.select-department-tree .type-icon{margin-right:5px;color:var(--ws-action-active)}.qms-select-department-tree-container .mat-tree.select-department-tree .text-name{color:var(--default-color)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-icon-rtl-mirror{color:rgba(0,0,0,.6)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-icon-button.btn-toggle{width:35px;height:35px;line-height:35px}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled-all{cursor:default!important;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled-all .mat-icon-rtl-mirror,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled-all .type-icon,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled-all button.mat-button-disabled{color:rgba(0,0,0,.38)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled-all .text-name.disabled{color:rgba(0,0,0,.38);cursor:default!important;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled-all.active{background-color:transparent}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled .type-icon,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled button.mat-button-disabled{color:rgba(0,0,0,.38)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled .text-name.disabled{color:rgba(0,0,0,.38);cursor:default!important;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled.active,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled.expand-node:active,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled.expand-node:hover,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled:active,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled:hover{background-color:transparent}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node .node-without-checkbox{cursor:pointer;width:100%;display:flex;justify-content:space-between;align-items:center}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node .node-without-checkbox .mat-icon{color:var(--primary);margin-right:4px}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node>.node-content-wraper{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;position:relative;display:flex;justify-content:center;align-items:center}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node>.node-content-wraper>.mat-progress-bar{height:3px;width:100%;position:absolute;bottom:0;left:10px}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node>.node-content-wraper>.mat-progress-bar .mat-progress-bar-fill:after{background:var(--primary)}.qms-select-department-tree-container .text-name{position:relative;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;cursor:pointer;width:100%}.qms-select-department-tree-container .cursor-pointer{cursor:pointer}.qms-select-department-tree-container .ml5{margin-left:10px!important}.qms-select-department-tree-container ::ng-deep .mat-checkbox.qms-group-options.flex-direction-row .mat-checkbox-layout{white-space:normal}.qms-select-department-tree-container ::ng-deep .mat-checkbox.qms-group-options.flex-direction-row .mat-checkbox-label{flex-direction:row;align-items:center;position:relative;padding-bottom:2px}.qms-select-department-tree-container .qms-view-search-result{height:375px;width:100%;overflow:hidden}.qms-select-department-tree-container .qms-view-search-result .result{max-height:calc(100% - 44px);overflow-y:auto;margin-bottom:4px;padding-right:4px}.qms-select-department-tree-container .qms-view-search-result .result.active-paging{max-height:calc(100% - 80px)}.qms-select-department-tree-container .qms-view-search-result .result.no-result{height:100%;display:flex;justify-content:center;align-items:center}.qms-select-department-tree-container .qms-view-search-result .result-item{border-radius:4px;display:grid;grid-template-columns:45px 1fr;align-items:center;cursor:pointer;transition:background .3s ease}.qms-select-department-tree-container .qms-view-search-result .result-item:not(:first-child){margin-top:4px!important}.qms-select-department-tree-container .qms-view-search-result .result-item.active,.qms-select-department-tree-container .qms-view-search-result .result-item:hover{background:linear-gradient(0deg,rgba(1,99,178,.12),rgba(1,99,178,.12)),#fff}.qms-select-department-tree-container .qms-view-search-result .result-item .item-result-content-wraper{padding:5px 15px}.qms-select-department-tree-container .qms-view-search-result ::ng-deep .mat-checkbox.qms-group-options{display:flex;height:100%}.qms-select-department-tree-container ::ng-deep .breadcrumb-container{flex-wrap:wrap}.qms-select-department-tree-container ::ng-deep .mat-button-focus-overlay{background-color:transparent}.qms-select-department-tree-container ::ng-deep .qms-breadcrumb-item{margin:0}.qms-select-department-tree-container ::ng-deep .qms-breadcrumb-item-text{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;transition:color .3s ease}.qms-select-department-tree-container ::ng-deep .qms-breadcrumb-item-text:not(:last-child){max-width:150px!important}.qms-select-department-tree-container ::ng-deep .qms-breadcrumb-item-text:not(:last-child):hover{color:var(--primary)}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-icon{display:flex;align-items:center;justify-content:center}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-form-field-wrapper{padding-bottom:0}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-paginator-container{min-height:40px}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-paginator-container .qms-total-result{margin-bottom:0;margin-right:12px;height:100%;display:flex;justify-content:center;align-items:center}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-paginator-container .qms-total-result span{font-weight:600;font-size:13px;color:rgba(0,0,0,.8)}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions{margin-bottom:0;grid-column-gap:2px;-moz-column-gap:2px;column-gap:2px}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions>.qms-total-result{margin-bottom:0}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions>.qms-btn-icon{width:30px;height:30px;line-height:30px}.qms-select-department-tree-container ::ng-deep .qms-paginator>.qms-btn-icon-wrapper{width:30px;height:30px;display:flex;justify-content:center;align-items:center}.qms-select-department-tree-container ::ng-deep .qms-paginator .qms-paginator-page-size{margin-right:12px;height:100%;display:flex;align-items:center;justify-content:center}.qms-select-department-tree-container ::ng-deep .qms-paginator .qms-paginator-page-size>.qms-form-page-size .mat-form-field-flex{width:60px;height:30px;display:flex;align-items:center;padding:0 4px}.qms-select-department-tree-container ::ng-deep .qms-paginator .qms-paginator-page-size>.qms-form-page-size .mat-form-field-flex .mat-form-field-infix{height:30px}.qms-select-department-tree-container ::ng-deep .qms-paginator .qms-paginator-page-size>.qms-pagesize-label{display:none}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-form-field.qms-form .mat-select-min-line,.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-form-field.qms-form mat-select-trigger{font-size:14px}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-select-value{text-align:center}.qms-select-department-tree-container .text-gray{color:#242424}.qms-select-department-tree-container .mb0{margin-bottom:0!important}.qms-select-department-tree-container .fs-base{font-size:14px!important}.qms-select-department-tree-container .user-select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.qms-select-department-tree-container .item-breadcrumb-disable{cursor:not-allowed;color:rgba(0,0,0,.6);font-weight:400;font-size:14px}.qms-select-department-tree-container ::ng-deep .mat-checkbox.checkbox-all .mat-checkbox-label{flex-direction:row;align-items:center;grid-column-gap:4px;-moz-column-gap:4px;column-gap:4px}.qms-select-department-tree-container ::ng-deep .btn-arrow{width:40px;height:40px;line-height:40px}.qms-select-department-tree-container .loading-container{overflow:hidden;height:100%;display:grid;grid-template-rows:repeat(auto-fill,minmax(60px,60px))}.qms-select-department-tree-container .loading-container .loader{position:relative;width:100%;height:100%;padding:10px 0;overflow:hidden}.qms-select-department-tree-container .loading-container .loader:after{content:\"\";position:absolute;width:100%;height:100%;top:0;left:0;background:linear-gradient(110deg,hsla(0,0%,91%,0),hsla(0,0%,89%,0) 40%,hsla(0,0%,89%,.5) 50%,hsla(0,0%,89%,0) 60%,hsla(0,0%,89%,0));-webkit-animation:animate-loading 1.2s linear infinite;animation:animate-loading 1.2s linear infinite}.qms-select-department-tree-container .loading-container .loader__wrapper{position:relative;width:100%;height:100%}.qms-select-department-tree-container .loading-container .loader__wrapper .row-loader{background-color:#eee;position:absolute;left:0;width:100%;height:40px}@-webkit-keyframes animate-loading{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}@keyframes animate-loading{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}"]
29709
+ 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 .fw500{font-weight:500!important}.qms-select-department-tree-container .text-right{text-align:right}.qms-select-department-tree-container .mt20{margin-top:20px}.qms-select-department-tree-container .text-selected{color:rgba(0,0,0,.6);font-size:12px;line-height:16px;margin-top:1rem}.qms-select-department-tree-container .input-field{display:flex;align-items:center;position:relative}.qms-select-department-tree-container .input-field ::ng-deep .mat-form-field-wrapper{padding-bottom:8px!important}.qms-select-department-tree-container .input-field ::ng-deep .mat-form-field-underline{bottom:8px!important}.qms-select-department-tree-container .input-field input.input-search{width:100%;padding:10px;outline:none;border:none;background:var(--background-input-text)}.qms-select-department-tree-container .input-field .btn-search{cursor:pointer;vertical-align:middle;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.qms-select-department-tree-container .input-field .line__divider{border-bottom:1px solid #ccc;height:1px;margin-top:10px;min-width:300px;max-width:100%}.qms-select-department-tree-container .tree-department-wrapper{height:375px;padding-right:4px;overflow-y:auto;overflow-x:hidden;position:relative}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node{border-radius:4px}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node:hover{background:rgba(0,0,0,.08)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node:active{background:rgba(0,0,0,.12)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.active{color:var(--primary);background:var(--primary-light-6-opacity)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.active:active{background:var(--primary-light-12-opacity)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.active .mat-icon-rtl-mirror,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.active .text-name,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.active .type-icon,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.active button,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.collapse-node:not(.selected-theme).active .mat-icon-rtl-mirror,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.collapse-node:not(.selected-theme).active .text-name,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.collapse-node:not(.selected-theme).active .type-icon,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.collapse-node:not(.selected-theme).active button{color:var(--primary)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.collapse-node:not(.selected-theme).active:hover{background:var(--primary-light-6-opacity)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.collapse-node:not(.selected-theme).active:active,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.selected-theme{background:var(--primary-light-12-opacity)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.expand-node,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.expand-node .mat-icon-rtl-mirror,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.expand-node .text-name,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.expand-node .type-icon,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.expand-node button{color:var(--primary)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.expand-node:hover{background:var(--primary-light-6-opacity)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.expand-node:active{background:var(--primary-light-12-opacity)}.qms-select-department-tree-container .mat-tree.select-department-tree .type-icon{margin-right:5px;color:var(--ws-action-active)}.qms-select-department-tree-container .mat-tree.select-department-tree .text-name{color:var(--default-color)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-icon-rtl-mirror{color:rgba(0,0,0,.6)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-icon-button.btn-toggle{width:35px;height:35px;line-height:35px}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled-all{cursor:default!important;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled-all .mat-icon-rtl-mirror,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled-all .type-icon,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled-all button.mat-button-disabled{color:rgba(0,0,0,.38)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled-all .text-name.disabled{color:rgba(0,0,0,.38);cursor:default!important;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled-all.active{background-color:transparent}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled .type-icon,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled button.mat-button-disabled{color:rgba(0,0,0,.38)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled .text-name.disabled{color:rgba(0,0,0,.38);cursor:default!important;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled.active,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled.expand-node:active,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled.expand-node:hover,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled:active,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled:hover{background-color:transparent}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node .node-without-checkbox{cursor:pointer;width:100%;display:flex;justify-content:space-between;align-items:center}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node .node-without-checkbox .mat-icon{color:var(--primary);margin-right:4px}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node>.node-content-wraper{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;position:relative;display:flex;justify-content:center;align-items:center}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node>.node-content-wraper>.mat-progress-bar{height:3px;width:100%;position:absolute;bottom:0;left:10px}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node>.node-content-wraper>.mat-progress-bar .mat-progress-bar-fill:after{background:var(--primary)}.qms-select-department-tree-container .text-name{position:relative;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;cursor:pointer;width:100%}.qms-select-department-tree-container .cursor-pointer{cursor:pointer}.qms-select-department-tree-container .ml5{margin-left:10px!important}.qms-select-department-tree-container ::ng-deep .mat-checkbox.qms-group-options.flex-direction-row .mat-checkbox-layout{white-space:normal}.qms-select-department-tree-container ::ng-deep .mat-checkbox.qms-group-options.flex-direction-row .mat-checkbox-label{flex-direction:row;align-items:center;position:relative;padding-bottom:2px}.qms-select-department-tree-container .qms-view-search-result{height:375px;width:100%;overflow:hidden}.qms-select-department-tree-container .qms-view-search-result .result{max-height:calc(100% - 44px);overflow-y:auto;margin-bottom:4px;padding-right:4px}.qms-select-department-tree-container .qms-view-search-result .result.active-paging{max-height:calc(100% - 80px)}.qms-select-department-tree-container .qms-view-search-result .result.no-result{height:100%;display:flex;justify-content:center;align-items:center}.qms-select-department-tree-container .qms-view-search-result .result-item{border-radius:4px;display:grid;grid-template-columns:45px 1fr;align-items:center;cursor:pointer;transition:background .3s ease}.qms-select-department-tree-container .qms-view-search-result .result-item:not(:first-child){margin-top:4px!important}.qms-select-department-tree-container .qms-view-search-result .result-item.active,.qms-select-department-tree-container .qms-view-search-result .result-item:hover{background:linear-gradient(0deg,rgba(1,99,178,.12),rgba(1,99,178,.12)),#fff}.qms-select-department-tree-container .qms-view-search-result .result-item .item-result-content-wraper{padding:5px 15px}.qms-select-department-tree-container .qms-view-search-result ::ng-deep .mat-checkbox.qms-group-options{display:flex;height:100%}.qms-select-department-tree-container ::ng-deep .breadcrumb-container{flex-wrap:wrap}.qms-select-department-tree-container ::ng-deep .mat-button-focus-overlay{background-color:transparent}.qms-select-department-tree-container ::ng-deep .qms-breadcrumb-item{margin:0}.qms-select-department-tree-container ::ng-deep .qms-breadcrumb-item-text{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;transition:color .3s ease}.qms-select-department-tree-container ::ng-deep .qms-breadcrumb-item-text:not(:last-child){max-width:150px!important}.qms-select-department-tree-container ::ng-deep .qms-breadcrumb-item-text:not(:last-child):hover{color:var(--primary)}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-icon{display:flex;align-items:center;justify-content:center}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-form-field-wrapper{padding-bottom:0}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-paginator-container{min-height:40px}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-paginator-container .qms-total-result{margin-bottom:0;margin-right:12px;height:100%;display:flex;justify-content:center;align-items:center}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-paginator-container .qms-total-result span{font-weight:600;font-size:13px;color:rgba(0,0,0,.8)}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions{margin-bottom:0;grid-column-gap:2px;-moz-column-gap:2px;column-gap:2px}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions>.qms-total-result{margin-bottom:0}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions>.qms-btn-icon{width:30px;height:30px;line-height:30px}.qms-select-department-tree-container ::ng-deep .qms-paginator>.qms-btn-icon-wrapper{width:30px;height:30px;display:flex;justify-content:center;align-items:center}.qms-select-department-tree-container ::ng-deep .qms-paginator .qms-paginator-page-size{margin-right:12px;height:100%;display:flex;align-items:center;justify-content:center}.qms-select-department-tree-container ::ng-deep .qms-paginator .qms-paginator-page-size>.qms-form-page-size .mat-form-field-flex{width:60px;height:30px;display:flex;align-items:center;padding:0 4px}.qms-select-department-tree-container ::ng-deep .qms-paginator .qms-paginator-page-size>.qms-form-page-size .mat-form-field-flex .mat-form-field-infix{height:30px}.qms-select-department-tree-container ::ng-deep .qms-paginator .qms-paginator-page-size>.qms-pagesize-label{display:none}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-form-field.qms-form .mat-select-min-line,.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-form-field.qms-form mat-select-trigger{font-size:14px}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-select-value{text-align:center}.qms-select-department-tree-container .text-gray{color:#242424}.qms-select-department-tree-container .mb0{margin-bottom:0!important}.qms-select-department-tree-container .fs-base{font-size:14px!important}.qms-select-department-tree-container .user-select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.qms-select-department-tree-container .item-breadcrumb-disable{cursor:not-allowed;color:rgba(0,0,0,.6);font-weight:400;font-size:14px}.qms-select-department-tree-container ::ng-deep .mat-checkbox.checkbox-all .mat-checkbox-label{flex-direction:row;align-items:center;grid-column-gap:4px;-moz-column-gap:4px;column-gap:4px}.qms-select-department-tree-container ::ng-deep .btn-arrow{width:40px;height:40px;line-height:40px}.qms-select-department-tree-container .loading-container{overflow:hidden;height:100%;display:grid;grid-template-rows:repeat(auto-fit,minmax(60px,60px))}.qms-select-department-tree-container .loading-container .loader{position:relative;width:100%;height:100%;padding:10px 0;overflow:hidden}.qms-select-department-tree-container .loading-container .loader:after{content:\"\";position:absolute;width:100%;height:100%;top:0;left:0;background:linear-gradient(110deg,hsla(0,0%,91%,0),hsla(0,0%,89%,0) 40%,hsla(0,0%,89%,.5) 50%,hsla(0,0%,89%,0) 60%,hsla(0,0%,89%,0));-webkit-animation:animate-loading 1.2s linear infinite;animation:animate-loading 1.2s linear infinite}.qms-select-department-tree-container .loading-container .loader__wrapper{position:relative;width:100%;height:100%}.qms-select-department-tree-container .loading-container .loader__wrapper .row-loader{background-color:#eee;position:absolute;left:0;width:100%;height:40px}@-webkit-keyframes animate-loading{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}@keyframes animate-loading{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}"]
29539
29710
  },] }
29540
29711
  ];
29541
29712
  SelectDepartmentTreeComponent.ctorParameters = () => [
@@ -29544,13 +29715,17 @@ SelectDepartmentTreeComponent.ctorParameters = () => [
29544
29715
  { type: QMSIconRegistryService },
29545
29716
  { type: MatIconRegistry },
29546
29717
  { type: ElementRef },
29547
- { type: TranslateLibraryService }
29718
+ { type: TranslateLibraryService },
29719
+ { type: QMSSelectDepartmentTreeGlobalService }
29548
29720
  ];
29549
29721
  SelectDepartmentTreeComponent.propDecorators = {
29550
29722
  enableIncludeChild: [{ type: Input }],
29551
29723
  enableTreeSearch: [{ type: Input }],
29552
29724
  isSelectOne: [{ type: Input }],
29553
29725
  activeViewSearch: [{ type: Input }],
29726
+ height: [{ type: Input }],
29727
+ customClass: [{ type: Input }],
29728
+ rowsSkeleton: [{ type: Input }],
29554
29729
  treeData: [{ type: Input }],
29555
29730
  selectedList: [{ type: Input }],
29556
29731
  selectIncludeLabel: [{ type: Input }],
@@ -29558,7 +29733,9 @@ SelectDepartmentTreeComponent.propDecorators = {
29558
29733
  enablePagingSearch: [{ type: Input }],
29559
29734
  onSearchEvent: [{ type: Output }],
29560
29735
  onPagingSearchEvent: [{ type: Output }],
29561
- onValueChangeEvent: [{ type: Output }]
29736
+ onValueChangeEvent: [{ type: Output }],
29737
+ selectionNodeChangeEvent: [{ type: Output }],
29738
+ paginatorSearch: [{ type: ViewChild, args: ['paginatorSearch',] }]
29562
29739
  };
29563
29740
 
29564
29741
  class QMSSelectDepartmentTreeModule {
@@ -29625,6 +29802,16 @@ const SelectDepartmentAnimationTrigger = [
29625
29802
  animate('0.3s ease-out', style({ opacity: 1 }))
29626
29803
  ]),
29627
29804
  ]),
29805
+ trigger('inOutAnimation_2', [
29806
+ transition(':enter', [
29807
+ style({ opacity: 0, transform: 'translateX(-10px)' }),
29808
+ animate('0.3s ease-out', style({ opacity: 1, transform: 'none' }))
29809
+ ]),
29810
+ transition(':leave', [
29811
+ style({ opacity: 1, filter: 'blur(5px)' }),
29812
+ animate('0.3s ease-out', style({ opacity: 0 }))
29813
+ ]),
29814
+ ]),
29628
29815
  trigger('rotateAnimation', [
29629
29816
  transition(':enter', [
29630
29817
  style({ transform: 'scale(0) rotate(-180deg)' }),
@@ -29644,42 +29831,36 @@ const SelectDepartmentAnimationTrigger = [
29644
29831
  style({ maxHeight: '175px', minHeight: '40px', opacity: 1 }),
29645
29832
  animate('0.1s ease-out', style({ minHeight: 0, maxHeight: 0, opacity: 0 }))
29646
29833
  ])
29834
+ ]),
29835
+ trigger('updateItemAnimation', [
29836
+ transition('void => *', [animate('0.3s', keyframes([
29837
+ style({
29838
+ boxShadow: 'rgba(0, 0, 0, 0.15) 1.95px 1.95px 2.6px',
29839
+ background: '#c8d6ea',
29840
+ offset: 0
29841
+ }),
29842
+ style({
29843
+ boxShadow: `*`,
29844
+ background: '*',
29845
+ offset: 1
29846
+ })
29847
+ ]))]),
29647
29848
  ])
29648
29849
  ];
29649
29850
 
29650
- class QMSSelectDepartmentGlobalService {
29651
- constructor() {
29652
- this.getDataTree$ = new BehaviorSubject([]);
29653
- this.searchDepartment$ = new Subject();
29654
- }
29655
- updateDataTree(data) {
29656
- this.getDataTree$.next(data);
29657
- }
29658
- setResultSearch(data) {
29659
- this.searchDepartment$.next(data);
29660
- }
29661
- }
29662
- QMSSelectDepartmentGlobalService.ɵprov = i0.ɵɵdefineInjectable({ factory: function QMSSelectDepartmentGlobalService_Factory() { return new QMSSelectDepartmentGlobalService(); }, token: QMSSelectDepartmentGlobalService, providedIn: "root" });
29663
- QMSSelectDepartmentGlobalService.decorators = [
29664
- { type: Injectable, args: [{
29665
- providedIn: 'root'
29666
- },] }
29667
- ];
29668
-
29669
29851
  const ɵ0$1 = {
29670
29852
  clickAction: 'noop'
29671
29853
  };
29672
29854
  class SelectDepartmentComponent {
29673
- constructor(selectDepartmentService, cdRef, dialogRef, data, trans) {
29674
- this.selectDepartmentService = selectDepartmentService;
29855
+ constructor(cdRef, dialogRef, data, trans) {
29675
29856
  this.cdRef = cdRef;
29676
29857
  this.dialogRef = dialogRef;
29677
29858
  this.data = data;
29678
29859
  this.trans = trans;
29679
29860
  this.ngUnsubscribe = new Subject();
29861
+ this.onPagingEvent = new EventEmitter();
29680
29862
  this.popupData = new SelectDepartmentPopupData();
29681
29863
  this.groupIncludeChild = [];
29682
- this.singleItem = [];
29683
29864
  this.resultSelected = [];
29684
29865
  this.onSearchEvent = new EventEmitter();
29685
29866
  this.resultSearch = [];
@@ -29690,12 +29871,7 @@ class SelectDepartmentComponent {
29690
29871
  }
29691
29872
  });
29692
29873
  // Init popup data
29693
- this.popupData = _.cloneDeep(data);
29694
- this.selectDepartmentService.searchDepartment$
29695
- .pipe(takeUntil(this.ngUnsubscribe))
29696
- .subscribe(result => {
29697
- this.treeDepartment.setResultSearch(result);
29698
- });
29874
+ this.popupData = _.cloneDeep(this.data);
29699
29875
  }
29700
29876
  ngAfterViewInit() {
29701
29877
  this.cdRef.detectChanges();
@@ -29724,9 +29900,17 @@ class SelectDepartmentComponent {
29724
29900
  onResultDepartmentChange(data) {
29725
29901
  this.resultSelected = data.map(item => {
29726
29902
  var _a;
29727
- return Object.assign(Object.assign({}, item), { tooltip: ((_a = item.children) === null || _a === void 0 ? void 0 : _a.length) ? this.formatString(this.LANG.TOOLTIP_INCLUDE_CHILD, item.name, item.children.length.toString()) : item.name });
29903
+ return Object.assign(Object.assign({}, item), { tooltip: ((_a = item.children) === null || _a === void 0 ? void 0 : _a.length) ? this.formatString(this.LANG.TOOLTIP_INCLUDE_SUB_DEPARTMENT, item.name, item.children.length.toString()) : item.name });
29728
29904
  });
29729
29905
  }
29906
+ generateTootip(node) {
29907
+ return node.isGroup ? this.formatString(this.LANG.TOOLTIP_INCLUDE_SUB_DEPARTMENT, node.name, node.children.length.toString()) : node.name;
29908
+ }
29909
+ updateResultSearch(data) {
29910
+ if (!this.treeDepartment)
29911
+ return;
29912
+ this.treeDepartment.setResultSearch(data);
29913
+ }
29730
29914
  formatString(...replacements) {
29731
29915
  let result = arguments[0];
29732
29916
  for (let i = 0; i < arguments.length - 1; i++) {
@@ -29739,26 +29923,26 @@ class SelectDepartmentComponent {
29739
29923
  SelectDepartmentComponent.decorators = [
29740
29924
  { type: Component, args: [{
29741
29925
  selector: 'qms-select-department',
29742
- template: "<div class=\"qms-select-department\">\r\n <div class=\"header-dialog mb-2\">\r\n <span>{{popupData.headerName}}</span>\r\n <button matDialogClose qms-btn-icon>\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n <div>\r\n <div class=\"qms-scrollbar\">\r\n <div>\r\n <qms-select-department-tree #treeDepartment [treeData]=\"popupData.treeData\"\r\n [isSelectOne]=\"popupData.isSelectOne\"\r\n [enableIncludeChild]=\"popupData.includeChildren && !popupData.isSelectOne\"\r\n [selectIncludeLabel]=\"popupData.selectIncludeLabel\" [enableTreeSearch]=\"popupData.enableSearch\"\r\n [enablePagingSearch]=\"popupData.enablePagingSearch\" [activeViewSearch]=\"isActiveViewSearch\"\r\n [selectedList]=\"popupData.selectedList\" [checkSearchMappingTree]=\"true\"\r\n (onSearchEvent)=\"onSearchEvent.emit($event)\" (onValueChangeEvent)=\"onResultDepartmentChange($event)\">\r\n </qms-select-department-tree>\r\n </div>\r\n </div>\r\n <mat-divider class=\"mx-auto\"></mat-divider>\r\n <div *ngIf=\"!!resultSelected.length\" class=\"line__divider\"></div>\r\n <div [@heightAnimation] *ngIf=\"!!resultSelected.length\" class=\" pr-0 pe-0\">\r\n <div class=\"header-title\">{{LANG.RESULTS}}</div>\r\n <div class=\"result-content pr-0 pe-0\">\r\n <mat-chip-list class=\"panel__item qms-scrollbar\">\r\n <mat-chip [qms-tool-tip]=\"item?.tooltip || item.name\" position=\"top\" mode=\"dark\"\r\n *ngFor=\"let item of 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 <mat-divider *ngIf=\"!!resultSelected.length\" class=\"mx-auto\"></mat-divider>\r\n <div class=\"confirm__button__groups\">\r\n <button (click)=\"onCloseDialog()\" class=\"btn-add\" [disabled]=\"!resultSelected.length\"\r\n [class.qms-btn-disabled]=\"!resultSelected.length\" qms-btn>\r\n <span>{{LANG.ADD}}</span>\r\n <span *ngIf=\"!!resultSelected\">\r\n ({{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",
29926
+ template: "<div class=\"qms-select-department\">\r\n <div class=\"header-dialog mb-2\">\r\n <span>{{popupData.headerName}}</span>\r\n <button matDialogClose qms-btn-icon>\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n <div>\r\n <div class=\"qms-scrollbar\">\r\n <div>\r\n <qms-select-department-tree #treeDepartment [selectedList]=\"popupData.selectedList\"\r\n [treeData]=\"popupData.treeData\" customClass=\"custom-department-tree\" height=\"45vh\"\r\n [isSelectOne]=\"popupData.isSelectOne\"\r\n [enableIncludeChild]=\"popupData.includeChildren && !popupData.isSelectOne\"\r\n [selectIncludeLabel]=\"popupData.selectIncludeLabel\" [enableTreeSearch]=\"popupData.enableSearch\"\r\n [enablePagingSearch]=\"popupData.enablePagingSearch\" [activeViewSearch]=\"isActiveViewSearch\"\r\n [checkSearchMappingTree]=\"true\" (onSearchEvent)=\"onSearchEvent.emit($event)\"\r\n (onValueChangeEvent)=\"onResultDepartmentChange($event)\" (onPagingSearchEvent)=\"onPagingEvent.emit($event)\">\r\n </qms-select-department-tree>\r\n </div>\r\n </div>\r\n <div *ngIf=\"treeDepartment && !!treeDepartment.resultSelected.length\" class=\"line__divider\"></div>\r\n <div [@heightAnimation] *ngIf=\"treeDepartment && !!treeDepartment.resultSelected.length\" class=\" pr-0 pe-0\">\r\n <div class=\"header-title\">{{LANG.RESULTS}}</div>\r\n <div class=\"result-content pr-0 pe-0\">\r\n <mat-chip-list class=\"panel__item qms-scrollbar\">\r\n <div [@inOutAnimation_2] [id]=\"'item-result-'+item.id\" *ngFor=\"let item of treeDepartment.resultSelected\">\r\n <mat-chip [@updateItemAnimation] *qmsContentChanges=\"item.children?.length\"\r\n [qms-tool-tip]=\"generateTootip(item)\" position=\"top\" mode=\"dark\" qms-chip [removable]=\"true\">\r\n <span (click)=\"onScrollToNode(item)\" qms-chip-body>\r\n <span class=\"related__item__content_name\" #itemName>\r\n {{item.name}}\r\n <span class=\"select__include-children__count\" *ngIf=\"!!item?.isGroup\">\r\n {{item.children.length}}/{{item.childCount}}\r\n </span>\r\n </span>\r\n </span>\r\n <mat-icon (click)=\"onRemoveNode(item)\">cancel</mat-icon>\r\n </mat-chip>\r\n </div>\r\n </mat-chip-list>\r\n </div>\r\n </div>\r\n <mat-divider *ngIf=\"treeDepartment && !!treeDepartment.resultSelected.length\" class=\"mx-auto\"></mat-divider>\r\n <div class=\"confirm__button__groups\">\r\n <button (click)=\"onCloseDialog()\" class=\"btn-add\" [disabled]=\"!resultSelected.length\"\r\n [class.qms-btn-disabled]=\"!resultSelected.length\" qms-btn>\r\n <span>{{LANG.ADD}}</span>\r\n <span>\r\n ({{treeDepartment.resultSelected.length}})\r\n </span>\r\n </button>\r\n <button qms-btn-text mat-dialog-close>\r\n Cancel\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n",
29743
29927
  providers: [
29744
29928
  {
29745
29929
  provide: MAT_CHECKBOX_DEFAULT_OPTIONS,
29746
29930
  useValue: ɵ0$1
29747
29931
  }
29748
29932
  ],
29749
- animations: SelectDepartmentAnimationTrigger,
29750
- 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:220px}.qms-select-department .result-content span.related__item__content_name .select__include-children__count{font-size:.75rem;color:rgba(0,0,0,.5);font-weight:600}.qms-select-department .text-name{position:relative;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;cursor:pointer;width:100%}.qms-select-department ::ng-deep .mat-checkbox.qms-group-options.flex-direction-row .mat-checkbox-layout{white-space:normal}.qms-select-department ::ng-deep .mat-checkbox.qms-group-options.flex-direction-row .mat-checkbox-label{flex-direction:row;align-items:center;position:relative;padding-bottom:2px}.qms-select-department .confirm__button__groups .btn-add>.qms-btn-wrapper{display:flex;justify-content:center;align-items:center}"]
29933
+ animations: [SelectDepartmentAnimationTrigger],
29934
+ 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:220px}.qms-select-department .result-content span.related__item__content_name .select__include-children__count{font-size:.75rem;color:rgba(0,0,0,.5);font-weight:600}.qms-select-department .text-name{position:relative;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;cursor:pointer;width:100%}.qms-select-department ::ng-deep .mat-checkbox.qms-group-options.flex-direction-row .mat-checkbox-layout{white-space:normal}.qms-select-department ::ng-deep .mat-checkbox.qms-group-options.flex-direction-row .mat-checkbox-label{flex-direction:row;align-items:center;position:relative;padding-bottom:2px}.qms-select-department .confirm__button__groups .btn-add>.qms-btn-wrapper{display:flex;justify-content:center;align-items:center}.qms-select-department ::ng-deep .custom-department-tree .qms-view-search-result{height:100%!important}.qms-select-department ::ng-deep .custom-department-tree .qms-view-search-result .result{max-height:calc(100% - 80px)!important}.qms-select-department ::ng-deep .custom-department-tree .loading-container{height:calc(100% - 40px)!important}"]
29751
29935
  },] }
29752
29936
  ];
29753
29937
  SelectDepartmentComponent.ctorParameters = () => [
29754
- { type: QMSSelectDepartmentGlobalService },
29755
29938
  { type: ChangeDetectorRef },
29756
29939
  { type: MatDialogRef },
29757
29940
  { type: SelectDepartmentPopupData, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] },
29758
29941
  { type: TranslateLibraryService }
29759
29942
  ];
29760
29943
  SelectDepartmentComponent.propDecorators = {
29761
- treeDepartment: [{ type: ViewChild, args: ['treeDepartment',] }]
29944
+ treeDepartment: [{ type: ViewChild, args: ['treeDepartment',] }],
29945
+ onPagingEvent: [{ type: Output }]
29762
29946
  };
29763
29947
 
29764
29948
  class QMSSelectDepartmentModule {
@@ -29766,7 +29950,7 @@ class QMSSelectDepartmentModule {
29766
29950
  QMSSelectDepartmentModule.decorators = [
29767
29951
  { type: NgModule, args: [{
29768
29952
  declarations: [
29769
- SelectDepartmentComponent
29953
+ SelectDepartmentComponent,
29770
29954
  ],
29771
29955
  imports: [
29772
29956
  CommonModule,
@@ -29801,6 +29985,25 @@ QMSSelectDepartmentModule.decorators = [
29801
29985
  },] }
29802
29986
  ];
29803
29987
 
29988
+ class QMSSelectDepartmentGlobalService {
29989
+ constructor() {
29990
+ this.getDataTree$ = new BehaviorSubject([]);
29991
+ this.searchDepartment$ = new Subject();
29992
+ }
29993
+ updateDataTree(data) {
29994
+ this.getDataTree$.next(data);
29995
+ }
29996
+ setResultSearch(data) {
29997
+ this.searchDepartment$.next(data);
29998
+ }
29999
+ }
30000
+ QMSSelectDepartmentGlobalService.ɵprov = i0.ɵɵdefineInjectable({ factory: function QMSSelectDepartmentGlobalService_Factory() { return new QMSSelectDepartmentGlobalService(); }, token: QMSSelectDepartmentGlobalService, providedIn: "root" });
30001
+ QMSSelectDepartmentGlobalService.decorators = [
30002
+ { type: Injectable, args: [{
30003
+ providedIn: 'root'
30004
+ },] }
30005
+ ];
30006
+
29804
30007
  var OptionSelectAccessEnum;
29805
30008
  (function (OptionSelectAccessEnum) {
29806
30009
  OptionSelectAccessEnum[OptionSelectAccessEnum["PERSON"] = 0] = "PERSON";
@@ -29808,6 +30011,60 @@ var OptionSelectAccessEnum;
29808
30011
  OptionSelectAccessEnum[OptionSelectAccessEnum["DEPARTMENT"] = 2] = "DEPARTMENT";
29809
30012
  })(OptionSelectAccessEnum || (OptionSelectAccessEnum = {}));
29810
30013
 
30014
+ const SelectAccessAnimationTrigger = [
30015
+ trigger('inOutAnimation', [
30016
+ transition(':enter', [
30017
+ style({ opacity: 0 }),
30018
+ animate('0.3s ease-out', style({ opacity: 1 }))
30019
+ ])
30020
+ ]),
30021
+ trigger('inOutAnimation_2', [
30022
+ transition(':enter', [
30023
+ style({ opacity: 0, transform: 'translateY(-5px)' }),
30024
+ animate('0.2s 0.15s ease-in', style({ opacity: 1, transform: 'none' }))
30025
+ ]),
30026
+ transition(':leave', [
30027
+ style({ opacity: 1, filter: 'blur(5px)', transform: 'none' }),
30028
+ animate('0.15s ease-out', style({ opacity: 0, transform: 'translateX(-10px)' }))
30029
+ ]),
30030
+ ]),
30031
+ trigger('listAnimation', [
30032
+ transition('* => *', [
30033
+ query(':enter', [
30034
+ style({ opacity: 0, transform: 'translateY(-100%)' }),
30035
+ stagger(30, [
30036
+ animate('0.4s cubic-bezier(0.23, 1, 0.320, 1)', style({ opacity: 1, transform: 'none' }))
30037
+ ])
30038
+ ], { optional: true })
30039
+ ])
30040
+ ]),
30041
+ trigger('updateItemAnimation', [
30042
+ transition('void => *', [animate('0.3s', keyframes([
30043
+ style({
30044
+ boxShadow: 'rgba(0, 0, 0, 0.15) 1.95px 1.95px 2.6px',
30045
+ background: '#c8d6ea',
30046
+ offset: 0
30047
+ }),
30048
+ style({
30049
+ boxShadow: `*`,
30050
+ background: '*',
30051
+ offset: 1
30052
+ })
30053
+ ]))]),
30054
+ ])
30055
+ ];
30056
+
30057
+ class QMSAccessPagingChangeModel extends PageEvent {
30058
+ }
30059
+ class QMSAccessPagingModel extends PageEvent {
30060
+ constructor() {
30061
+ super();
30062
+ this.data = [];
30063
+ this.pageSize = 10;
30064
+ this.pageIndex = 0;
30065
+ }
30066
+ }
30067
+
29811
30068
  class QMSSelectAccessResult {
29812
30069
  constructor() {
29813
30070
  this.userGroups = [];
@@ -29817,11 +30074,11 @@ class QMSSelectAccessResult {
29817
30074
  }
29818
30075
  class QMSSelectAccessData {
29819
30076
  constructor() {
29820
- this.accessUserGroups = [];
29821
30077
  this.accessDepartments = [];
29822
- this.accessPersons = [];
29823
30078
  this.selectedData = new QMSSelectAccessResult();
29824
30079
  this.selectIncludeChildTreeLabel = '';
30080
+ this.accessPersons = new QMSAccessPagingModel();
30081
+ this.accessUserGroups = new QMSAccessPagingModel();
29825
30082
  }
29826
30083
  }
29827
30084
 
@@ -29843,25 +30100,6 @@ QMSSelectAccessGlobalService.decorators = [
29843
30100
  },] }
29844
30101
  ];
29845
30102
 
29846
- const SelectAccessAnimationTrigger = [
29847
- trigger('inOutAnimation', [
29848
- transition(':enter', [
29849
- style({ opacity: 0 }),
29850
- animate('0.3s ease-out', style({ opacity: 1 }))
29851
- ]),
29852
- ]),
29853
- trigger('listAnimation', [
29854
- transition('* => *', [
29855
- query(':enter', [
29856
- style({ opacity: 0, transform: 'translateY(-100%)' }),
29857
- stagger(25, [
29858
- animate('0.4s cubic-bezier(0.23, 1, 0.320, 1)', style({ opacity: 1, transform: 'none' }))
29859
- ])
29860
- ], { optional: true })
29861
- ])
29862
- ])
29863
- ];
29864
-
29865
30103
  class QMSSelectAccessDialog {
29866
30104
  constructor() {
29867
30105
  this.enableSelectPerson = true;
@@ -29878,6 +30116,7 @@ class QMSSelectAccessDialog {
29878
30116
  };
29879
30117
  this.titleDialog = '';
29880
30118
  this.titleResult = '';
30119
+ this.sizeUpdateDefault = '1024px';
29881
30120
  }
29882
30121
  }
29883
30122
 
@@ -29895,57 +30134,75 @@ class QMSSelectAccessDialogComponent {
29895
30134
  this.optionSelect = new FormControl();
29896
30135
  this.OPTION_ENUM = OptionSelectAccessEnum;
29897
30136
  this.options = [];
30137
+ this._departmentSelected = [];
29898
30138
  this.userGroupForm = new FormControl('');
29899
30139
  this.getLoading$ = new BehaviorSubject(false);
29900
30140
  this.onSearchPersonEvent = new EventEmitter();
29901
30141
  this.onSearchPersonFreeTextEvent = new EventEmitter();
29902
30142
  this.onSearchUserGroupEvent = new EventEmitter();
29903
30143
  this.onSearchDepartmentEvent = new EventEmitter();
30144
+ this.onPagingEvent = new EventEmitter();
30145
+ this.onSelectOptionChange$ = new Subject();
30146
+ this.departmentResultClone = [];
29904
30147
  /** list filtered by search keyword */
30148
+ this.optionFilterPersonDataGlobal = {
30149
+ departments: [],
30150
+ userGroups: []
30151
+ };
29905
30152
  this.filteredSearchTextBox = {
29906
- department: new ReplaySubject(1),
29907
- role: new ReplaySubject(1),
30153
+ department: new BehaviorSubject([]),
30154
+ userGroup: new BehaviorSubject([]),
29908
30155
  };
29909
- this.getPerson$ = new BehaviorSubject([]);
29910
- this.getUserGroup$ = new BehaviorSubject([]);
30156
+ this.getPerson$ = new BehaviorSubject(new QMSAccessPagingModel());
30157
+ this.getUserGroup$ = new BehaviorSubject(new QMSAccessPagingModel());
29911
30158
  this.PAGINATION_SIZE = PaginationSize;
30159
+ this.PAGE_SIZE_OPTION = [5, 10, 15, 20, 25, 100];
29912
30160
  this.resultAccess = new QMSSelectAccessResult();
29913
- this.currentPaginationConfig = {
29914
- pageIndex: 0,
29915
- pageSize: 10,
29916
- length: 0
29917
- };
29918
- this.resultAccess = _.cloneDeep(this.dialogData.data.selectedData);
29919
- this.optionSelect.valueChanges
29920
- .pipe(takeUntil(this.ngUnsubcribe))
29921
- .subscribe(_ => {
29922
- this.resetPagingConfig();
30161
+ this.arrSkeleton = new Array(8).fill(0);
30162
+ this.resultAccess = _.cloneDeep(Object.assign(Object.assign({}, this.dialogData.data.selectedData), { departments: [] }));
30163
+ this._departmentSelected = _.cloneDeep(this.dialogData.data.selectedData.departments);
30164
+ }
30165
+ get selectedDepartments() {
30166
+ const departmentSelected = [];
30167
+ this._departmentSelected.forEach(x => {
30168
+ var _a;
30169
+ departmentSelected.push({
30170
+ id: x.id,
30171
+ groupId: x.groupId,
30172
+ isGroup: x.isGroup
30173
+ });
30174
+ if (!((_a = x.children) === null || _a === void 0 ? void 0 : _a.length))
30175
+ return;
30176
+ departmentSelected.push(...(x.children.map(item => ({
30177
+ id: item.id,
30178
+ groupId: item.groupId,
30179
+ isGroup: item.isGroup
30180
+ }))));
29923
30181
  });
29924
- // Filtered Option select person
29925
- this.filteredSearchTextBox.role.next(this.dialogData.data.accessUserGroups);
29926
- this.filteredSearchTextBox.department.next(this.dialogData.data.accessDepartments);
29927
- this.updatePersonFilter(this.dialogData.data.accessPersons);
29928
- this.updateUserGroupFilter(this.dialogData.data.accessUserGroups);
30182
+ return departmentSelected || [];
29929
30183
  }
29930
30184
  set tree(data) {
29931
- if (data) {
29932
- this.treeDepartment = data;
29933
- }
30185
+ this.treeDepartment = data;
29934
30186
  }
29935
30187
  get personFiltered() {
30188
+ var _a;
29936
30189
  const persons = this.getPerson$.value;
29937
30190
  const ids = this.resultAccess.persons.map(x => x.id);
29938
- persons.forEach(x => x.selected = ids.includes(x.id));
29939
- return persons;
30191
+ (_a = persons.data) === null || _a === void 0 ? void 0 : _a.forEach(x => x.selected = ids.includes(x.id));
30192
+ return persons.data || [];
29940
30193
  }
29941
30194
  get userGroupFiltered() {
30195
+ var _a;
29942
30196
  const userGroups = this.getUserGroup$.value;
29943
30197
  const ids = this.resultAccess.userGroups.map(x => x.id);
29944
- userGroups.forEach(x => x.selected = ids.includes(x.id));
29945
- return userGroups;
30198
+ (_a = userGroups.data) === null || _a === void 0 ? void 0 : _a.forEach(x => x.selected = ids.includes(x.id));
30199
+ return userGroups.data || [];
29946
30200
  }
29947
- ngAfterViewInit() {
30201
+ ;
30202
+ ngAfterContentInit() {
29948
30203
  this.cdRef.detectChanges();
30204
+ }
30205
+ ngAfterViewInit() {
29949
30206
  this.cdRef.detectChanges();
29950
30207
  }
29951
30208
  ngOnInit() {
@@ -29955,46 +30212,15 @@ class QMSSelectAccessDialogComponent {
29955
30212
  }
29956
30213
  });
29957
30214
  this._buildOptionSelect();
29958
- this.buildPersonForm();
29959
- // Filter person by roles
29960
- this.personForm.get('roleFilter').valueChanges
29961
- .pipe(takeUntil(this.ngUnsubcribe), debounceTime(500))
29962
- .subscribe(keyword => {
29963
- if (!this.dialogData.data.accessUserGroups) {
29964
- return;
29965
- }
29966
- if (!keyword) {
29967
- this.filteredSearchTextBox.role.next(this.dialogData.data.accessUserGroups);
29968
- return;
29969
- }
29970
- this.filteredSearchTextBox.role.next(this.dialogData.data.accessUserGroups.filter(role => role.name.toLocaleLowerCase().includes(keyword.toLocaleLowerCase())));
29971
- });
29972
- // Filter person by departments
29973
- this.personForm.get('departmentFilter').valueChanges
29974
- .pipe(takeUntil(this.ngUnsubcribe))
29975
- .subscribe(() => {
29976
- if (!this.dialogData.data.accessDepartments) {
29977
- return;
29978
- }
29979
- let search = this.personForm.get('departmentFilter').value;
29980
- if (!search) {
29981
- this.filteredSearchTextBox.department.next(this.dialogData.data.accessDepartments.slice());
29982
- }
29983
- else {
29984
- search = search.toLowerCase();
29985
- this.filteredSearchTextBox.department.next(this.dialogData.data.accessDepartments.filter(x => x.name.toLowerCase().indexOf(search) > -1));
29986
- }
29987
- });
29988
30215
  this.getLoading$.pipe(takeUntil(this.ngUnsubcribe))
29989
30216
  .subscribe(response => {
29990
30217
  if (response) {
29991
- this.personForm.disable();
29992
- this.userGroupForm.disable();
29993
- }
29994
- else {
29995
- this.personForm.enable();
29996
- this.userGroupForm.enable();
30218
+ this.personForm && this.personForm.disable();
30219
+ this.userGroupForm && this.userGroupForm.disable();
30220
+ return;
29997
30221
  }
30222
+ this.personForm && this.personForm.enable();
30223
+ this.userGroupForm && this.userGroupForm.enable();
29998
30224
  });
29999
30225
  }
30000
30226
  ngOnDestroy() {
@@ -30022,10 +30248,41 @@ class QMSSelectAccessDialogComponent {
30022
30248
  }
30023
30249
  }
30024
30250
  if (this.options.length === 1) {
30025
- this.dialogRef.updateSize('732px');
30251
+ this.dialogRef.updateSize(this.dialogData.sizeUpdateDefault);
30026
30252
  this.optionSelect.setValue(this.options[0].type);
30027
30253
  }
30028
30254
  }
30255
+ _filterOptionPersonChange() {
30256
+ // Filter person by roles
30257
+ this.personForm.get('userGroupFilter').valueChanges
30258
+ .pipe(takeUntil(this.ngUnsubcribe), debounceTime(500))
30259
+ .subscribe(keyword => {
30260
+ if (!this.optionFilterPersonDataGlobal.userGroups.length) {
30261
+ return;
30262
+ }
30263
+ if (!keyword) {
30264
+ this.filteredSearchTextBox.userGroup.next(this.optionFilterPersonDataGlobal.userGroups);
30265
+ return;
30266
+ }
30267
+ const resultFilter = this.optionFilterPersonDataGlobal.userGroups.filter(userGroup => userGroup.name.toLocaleLowerCase().includes(keyword.toLocaleLowerCase()));
30268
+ this.filteredSearchTextBox.userGroup.next(resultFilter);
30269
+ });
30270
+ // Filter person by departments
30271
+ this.personForm.get('departmentFilter').valueChanges
30272
+ .pipe(takeUntil(this.ngUnsubcribe))
30273
+ .subscribe(() => {
30274
+ if (!this.optionFilterPersonDataGlobal.departments) {
30275
+ return;
30276
+ }
30277
+ let search = this.personForm.get('departmentFilter').value;
30278
+ if (!search) {
30279
+ this.filteredSearchTextBox.department.next(this.optionFilterPersonDataGlobal.departments.slice());
30280
+ return;
30281
+ }
30282
+ search = search.toLowerCase();
30283
+ this.filteredSearchTextBox.department.next(this.optionFilterPersonDataGlobal.departments.filter(x => x.name.toLowerCase().indexOf(search) > -1));
30284
+ });
30285
+ }
30029
30286
  getResultTabActive() {
30030
30287
  const resultObj = {
30031
30288
  0: this.resultAccess.persons,
@@ -30039,34 +30296,44 @@ class QMSSelectAccessDialogComponent {
30039
30296
  }
30040
30297
  buildPersonForm() {
30041
30298
  this.personForm = this._fb.group({
30042
- roleId: new FormControl(''),
30043
- departmentId: new FormControl(),
30044
- departmentFilter: new FormControl(''),
30045
- recursive: new FormControl({ value: false, disabled: true }),
30046
- keyword: new FormControl(''),
30047
- roleFilter: new FormControl(''),
30048
- excludedQuitDepartmentId: true
30299
+ userGroup: [],
30300
+ department: [],
30301
+ departmentFilter: [''],
30302
+ recursive: [{
30303
+ value: false, disabled: true
30304
+ }],
30305
+ keyword: [''],
30306
+ userGroupFilter: [''],
30307
+ excludedQuitDepartmentId: [true]
30049
30308
  });
30050
30309
  }
30051
- resetPagingConfig() {
30052
- this.currentPaginationConfig = {
30053
- pageIndex: 0,
30054
- pageSize: 10,
30055
- length: 0
30056
- };
30057
- }
30058
30310
  onFilterPerson() {
30311
+ var _a, _b;
30059
30312
  this.getLoading$.next(true);
30060
- this.onSearchPersonEvent.emit(this.personForm.value);
30061
- this.getLoading$.next(true);
30313
+ const formValue = this.personForm.getRawValue();
30314
+ const filterData = {
30315
+ departmentId: (_a = formValue.department) === null || _a === void 0 ? void 0 : _a.id,
30316
+ userGroupId: (_b = formValue.userGroup) === null || _b === void 0 ? void 0 : _b.id,
30317
+ keyword: formValue.keyword,
30318
+ recursive: formValue.recursive
30319
+ };
30320
+ this.onSearchPersonEvent.emit(filterData);
30321
+ this._resetPagingator(this.pagingPerson);
30322
+ }
30323
+ _resetPagingator(paginator) {
30324
+ if (!paginator)
30325
+ return;
30326
+ paginator.changePage(0);
30327
+ paginator.renderDisplayNumberOfpages();
30062
30328
  }
30063
30329
  onSearchPersonFreeText() {
30064
- this.getLoading$.next(true);
30065
30330
  this.getLoading$.next(true);
30066
30331
  this.onSearchPersonFreeTextEvent.emit(this.personForm.get('keyword').value);
30332
+ this._resetPagingator(this.pagingPerson);
30067
30333
  }
30068
30334
  onFilterUserGroup() {
30069
30335
  this.getLoading$.next(true);
30336
+ this._resetPagingator(this.pagingUserGroup);
30070
30337
  this.onSearchUserGroupEvent.emit(this.userGroupForm.value);
30071
30338
  }
30072
30339
  onSelectItem(type, item) {
@@ -30130,13 +30397,26 @@ class QMSSelectAccessDialogComponent {
30130
30397
  break;
30131
30398
  case this.OPTION_ENUM.DEPARTMENT:
30132
30399
  this.resultAccess.departments.splice(index, 1);
30400
+ this.departmentResultClone.splice(index, 1);
30401
+ if (!this.treeDepartment)
30402
+ return;
30133
30403
  this.treeDepartment.onRemoveNode(item.id);
30404
+ break;
30134
30405
  default:
30135
30406
  return;
30136
30407
  }
30137
30408
  }
30138
30409
  onSelectionTypeChange(event) {
30139
- this.dialogRef.updateSize('732px');
30410
+ switch (event.value) {
30411
+ case OptionSelectAccessEnum.PERSON:
30412
+ this.buildPersonForm();
30413
+ this._filterOptionPersonChange();
30414
+ break;
30415
+ }
30416
+ this.getLoading$.next(true);
30417
+ this.dialogRef.updateSize(this.dialogData.sizeUpdateDefault);
30418
+ this.onSelectOptionChange$.next(event);
30419
+ this.cdRef.detectChanges();
30140
30420
  }
30141
30421
  setFormControlValue(formControlNames, values) {
30142
30422
  formControlNames.forEach((controlName, _index) => {
@@ -30147,9 +30427,9 @@ class QMSSelectAccessDialogComponent {
30147
30427
  isCheckAll(type) {
30148
30428
  switch (type) {
30149
30429
  case this.OPTION_ENUM.PERSON:
30150
- return !this.dialogData.modeSelectOnePerson && this.personFiltered.length && this.getPaging(this.personFiltered).every(x => x.selected);
30430
+ return !this.dialogData.modeSelectOnePerson && this.personFiltered.length && this.personFiltered.every(x => x.selected);
30151
30431
  case this.OPTION_ENUM.USER_GROUP:
30152
- return !this.dialogData.modeSelectOneUserGroup && this.userGroupFiltered.length && this.getPaging(this.userGroupFiltered).every(x => x.selected);
30432
+ return !this.dialogData.modeSelectOneUserGroup && this.userGroupFiltered.length && this.userGroupFiltered.every(x => x.selected);
30153
30433
  default:
30154
30434
  return false;
30155
30435
  }
@@ -30158,9 +30438,9 @@ class QMSSelectAccessDialogComponent {
30158
30438
  var _a, _b;
30159
30439
  switch (type) {
30160
30440
  case this.OPTION_ENUM.PERSON:
30161
- return !this.dialogData.modeSelectOnePerson && !this.isCheckAll(type) && ((_a = this.getPaging(this.personFiltered)) === null || _a === void 0 ? void 0 : _a.some(x => x.selected));
30441
+ return !this.dialogData.modeSelectOnePerson && !this.isCheckAll(type) && ((_a = this.personFiltered) === null || _a === void 0 ? void 0 : _a.some(x => x.selected));
30162
30442
  case this.OPTION_ENUM.USER_GROUP:
30163
- return !this.dialogData.modeSelectOneUserGroup && !this.isCheckAll(type) && ((_b = this.getPaging(this.userGroupFiltered)) === null || _b === void 0 ? void 0 : _b.some(x => x.selected));
30443
+ return !this.dialogData.modeSelectOneUserGroup && !this.isCheckAll(type) && ((_b = this.userGroupFiltered) === null || _b === void 0 ? void 0 : _b.some(x => x.selected));
30164
30444
  default:
30165
30445
  return false;
30166
30446
  }
@@ -30173,18 +30453,16 @@ class QMSSelectAccessDialogComponent {
30173
30453
  $event.checked = false;
30174
30454
  return;
30175
30455
  }
30176
- const userPaging = this.getPaging(this.personFiltered) || [];
30177
- if (!userPaging.length)
30456
+ if (!this.personFiltered.length)
30178
30457
  return;
30179
- userPaging.forEach(x => x.selected = $event.checked);
30180
- const idFiltered = userPaging.map(x => x.id);
30458
+ this.personFiltered.forEach(x => x.selected = $event.checked);
30459
+ const idFiltered = this.personFiltered.map(x => x.id);
30181
30460
  if ($event.checked) {
30182
30461
  const idPersonSelected = this.resultAccess.persons.map(x => x.id);
30183
- this.resultAccess.persons = [...this.resultAccess.persons, ...userPaging.filter(x => !idPersonSelected.includes(x.id))];
30184
- }
30185
- else {
30186
- this.resultAccess.persons = this.resultAccess.persons.filter(x => !idFiltered.includes(x.id));
30462
+ this.resultAccess.persons = [...this.resultAccess.persons, ...this.personFiltered.filter(x => !idPersonSelected.includes(x.id))];
30463
+ return;
30187
30464
  }
30465
+ this.resultAccess.persons = this.resultAccess.persons.filter(x => !idFiltered.includes(x.id));
30188
30466
  break;
30189
30467
  }
30190
30468
  case this.OPTION_ENUM.USER_GROUP: {
@@ -30192,59 +30470,79 @@ class QMSSelectAccessDialogComponent {
30192
30470
  $event.checked = false;
30193
30471
  return;
30194
30472
  }
30195
- const userGroupPaging = this.getPaging(this.userGroupFiltered);
30473
+ const userGroupPaging = this.userGroupFiltered;
30196
30474
  userGroupPaging.forEach(x => x.selected = $event.checked);
30197
30475
  const idFiltered = userGroupPaging.map(x => x.id);
30198
30476
  if ($event.checked) {
30199
30477
  const idSelected = this.resultAccess.userGroups.map(x => x.id);
30200
30478
  this.resultAccess.userGroups = [...this.resultAccess.userGroups, ...userGroupPaging.filter(x => !idSelected.includes(x.id))];
30479
+ return;
30201
30480
  }
30202
- else {
30203
- this.resultAccess.userGroups = this.resultAccess.userGroups.filter(x => !idFiltered.includes(x.id));
30204
- }
30481
+ this.resultAccess.userGroups = this.resultAccess.userGroups.filter(x => !idFiltered.includes(x.id));
30205
30482
  break;
30206
30483
  }
30207
30484
  default:
30208
30485
  return;
30209
30486
  }
30210
30487
  }
30488
+ onSelectionNodeDepartmentChange({ added, removed, updated }) {
30489
+ if (added.length) {
30490
+ added.forEach(item => {
30491
+ if (this.resultAccess.departments.some(x => x.id === item.id))
30492
+ return;
30493
+ this.resultAccess.departments.push(item);
30494
+ });
30495
+ }
30496
+ if (removed.length) {
30497
+ removed.forEach(x => {
30498
+ const index = this.resultAccess.departments.findIndex(item => item.id === x.id);
30499
+ if (index < 0)
30500
+ return;
30501
+ this.resultAccess.departments.splice(index, 1);
30502
+ });
30503
+ }
30504
+ if (updated.length) {
30505
+ updated.forEach(x => {
30506
+ const index = this.resultAccess.departments.findIndex(item => item.id == x.id);
30507
+ if (index < 0)
30508
+ return;
30509
+ const deparment = this.resultAccess.departments.find(item => item.id == x.id);
30510
+ if (!!deparment)
30511
+ deparment.children = x.children;
30512
+ });
30513
+ }
30514
+ this._departmentSelected = _.cloneDeep(this.resultAccess.departments);
30515
+ }
30211
30516
  onScollToNodeTreeDepartment(node) {
30212
30517
  this.optionSelect.value === this.OPTION_ENUM.DEPARTMENT && this.treeDepartment.scrollToNode(node.id);
30213
30518
  }
30214
- onRemoveTreeNodeDepartment(node) {
30215
- if (this.optionSelect.value === this.OPTION_ENUM.DEPARTMENT) {
30216
- this.treeDepartment.onRemoveNode(node.id);
30217
- }
30218
- this.resultAccess.departments = this.resultAccess.departments.filter(item => item.id !== node.id);
30219
- }
30220
30519
  trackByFn(index, item) {
30221
30520
  return index;
30222
30521
  }
30223
30522
  updatePersonFilter(data) {
30224
- this.resetPagingConfig();
30225
30523
  this.getPerson$.next(data);
30226
30524
  this.getLoading$.next(false);
30227
- this.getLoading$.next(false);
30228
30525
  }
30229
30526
  updateUserGroupFilter(data) {
30230
- this.resetPagingConfig();
30231
30527
  this.getUserGroup$.next(data);
30232
30528
  this.getLoading$.next(false);
30233
- this.getLoading$.next(false);
30234
30529
  }
30235
- onPagingEvent(val) {
30236
- this.currentPaginationConfig = val;
30237
- }
30238
- getPaging(source) {
30239
- if (!source.length)
30240
- return [];
30241
- return source.slice(this.currentPaginationConfig.pageIndex * this.currentPaginationConfig.pageSize, (this.currentPaginationConfig.pageIndex * this.currentPaginationConfig.pageSize) + this.currentPaginationConfig.pageSize);
30530
+ onPaginatorEvent(val, type) {
30531
+ this.getLoading$.next(this.optionSelect.value !== this.OPTION_ENUM.DEPARTMENT);
30532
+ this.onPagingEvent.emit(Object.assign(Object.assign({}, val), { type: type }));
30242
30533
  }
30243
30534
  onResultDepartmentChange(event) {
30244
- this.resultAccess.departments = event.map(item => {
30245
- var _a;
30246
- return Object.assign(Object.assign({}, item), { tooltip: ((_a = item.children) === null || _a === void 0 ? void 0 : _a.length) ? this.formatString(this.LANG.TOOLTIP_INCLUDE_CHILD, item.name, item.children.length.toString()) : item.name });
30247
- });
30535
+ // this.resultAccess.departments = event;
30536
+ }
30537
+ updateResultSearchDepartment(data = new QMSAccessPagingModel()) {
30538
+ if (!this.treeDepartment)
30539
+ return;
30540
+ data = data;
30541
+ this.treeDepartment.setResultSearch(data);
30542
+ }
30543
+ generateTootip(node) {
30544
+ var _a;
30545
+ return (node === null || node === void 0 ? void 0 : node.isGroup) ? this.formatString(this.LANG.TOOLTIP_INCLUDE_SUB_DEPARTMENT, node.name, (_a = node.children) === null || _a === void 0 ? void 0 : _a.length.toString()) : (`${node.name} ${(node === null || node === void 0 ? void 0 : node.subName) ? `- (${node.subName})` : ''}`);
30248
30546
  }
30249
30547
  formatString(...replacements) {
30250
30548
  let result = arguments[0];
@@ -30257,11 +30555,25 @@ class QMSSelectAccessDialogComponent {
30257
30555
  hasItemSelected() {
30258
30556
  return Object.keys(this.resultAccess).some(key => { var _a; return !!((_a = this.resultAccess[key]) === null || _a === void 0 ? void 0 : _a.length); });
30259
30557
  }
30558
+ updateDepartment(data = []) {
30559
+ this.getLoading$.next(false);
30560
+ this.dialogData.data.accessDepartments = [];
30561
+ this.dialogData.data.accessDepartments = _.cloneDeep(data);
30562
+ }
30563
+ updateOptionPersonFilter(departmentFilter = [], userGroupFilter = []) {
30564
+ this.optionFilterPersonDataGlobal.departments = departmentFilter;
30565
+ this.optionFilterPersonDataGlobal.userGroups = userGroupFilter;
30566
+ this.filteredSearchTextBox.department.next(departmentFilter);
30567
+ this.filteredSearchTextBox.userGroup.next(userGroupFilter);
30568
+ }
30569
+ setDefaultPageSizeOption(data) {
30570
+ this.PAGE_SIZE_OPTION = data;
30571
+ }
30260
30572
  }
30261
30573
  QMSSelectAccessDialogComponent.decorators = [
30262
30574
  { type: Component, args: [{
30263
30575
  selector: 'qms-select-access-dialog',
30264
- template: "<div qms-dialog-container-v2 class=\"select-access-dialog-container\">\r\n <div qms-dialog-header>\r\n <div class=\"access-dialog-header mb-2\">\r\n <span class=\"header-title\">{{dialogData.titleDialog || LANG.SELECT_ACCESS}}</span>\r\n <button matDialogClose qms-btn-icon>\r\n <mat-icon class=\"mat-icons-outlined\">close</mat-icon>\r\n </button>\r\n </div>\r\n <mat-form-field *ngIf=\"options.length > 1\" qms-form qms-select-input class=\"field-select-option w-100\"\r\n 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 </div>\r\n <div qms-dialog-content class=\"access-dialog-wraper\">\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 <!-- <mat-progress-spinner [@inOutAnimation] *ngIf=\"getLoading$.value\" matSuffix mode=\"indeterminate\" diameter=\"20\"></mat-progress-spinner> -->\r\n <span [@inOutAnimation] (click)=\"personForm.get('roleId').setValue('')\" class=\"pointer \" matSuffix\r\n aria-label=\"Clear\" *ngIf=\"personForm.get('roleId').value && !getLoading$.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 <span (click)=\"setFormControlValue(['recursive','departmentId'], [false,''])\" [@inOutAnimation]\r\n class=\"pointer\" matSuffix aria-label=\"Clear\"\r\n *ngIf=\"personForm.get('departmentId').value && !getLoading$.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]=\"!this.personForm.controls['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 <input matInput appearance=\"off\" [placeholder]=\"LANG.SEARCH_WITH_NAME\" formControlName=\"keyword\"\r\n type=\"text\" autocomplete=\"off\" />\r\n <button *ngIf=\"!getLoading$.value\" qms-btn-icon color=\"light\" [@inOutAnimation]\r\n (click)=\"onSearchPersonFreeText()\" class=\"pointer me-1\" matSuffix aria-label=\"Search\">\r\n <mat-icon>search</mat-icon>\r\n </button>\r\n <mat-progress-spinner [@inOutAnimation] *ngIf=\"getLoading$.value\" matSuffix mode=\"indeterminate\"\r\n diameter=\"20\"></mat-progress-spinner>\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 && !getLoading$.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 my-1\">\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 [@inOutAnimation] *ngIf=\"!getLoading$.value\"\r\n [disabled]=\"!personFiltered.length || dialogData.modeSelectOnePerson\" #checkPerson\r\n class=\"w-100 mb-1 checkbox-all\"\r\n (click)=\"personFiltered.length && 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}} </span>\r\n <span>(<b>{{getPaging(personFiltered).length}}</b>)</span>\r\n </mat-checkbox>\r\n </div>\r\n <mat-divider class=\"mx-auto\"></mat-divider>\r\n <ng-container *ngIf=\"getLoading$.value; then loading\">\r\n </ng-container>\r\n <div [@inOutAnimation] *ngIf=\"getPaging(personFiltered).length && !getLoading$.value\" [@listAnimation]\r\n class=\"item-list-wrapper\">\r\n <div class=\"item mt-1\" [@inOutAnimation]\r\n *ngFor=\"let employee of getPaging(personFiltered); trackBy: trackByFn\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"dialogData.modeSelectOnePerson ?itemWithoutCheckboxTemplate : itemCheckboxTemplate\"\r\n [ngTemplateOutletContext]=\"{item: employee, type: OPTION_ENUM.PERSON}\">\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div [@inOutAnimation] *ngIf=\"!getPaging(personFiltered).length && !getLoading$.value\"\r\n class=\"item-list-wrapper no-result\">\r\n <ng-container *ngTemplateOutlet=\"noResult\"></ng-container>\r\n </div>\r\n <mat-divider class=\"mx-auto\"></mat-divider>\r\n <qms-paginator class=\"my-1\" *ngIf=\"personFiltered.length > 10 && !getLoading$.value\"\r\n [length]=\"personFiltered.length\" [numHidden]=\"0\" [pageSize]=\"10\" [pageSizeOptions]=\"[5, 10, 25, 100]\"\r\n (page)='onPagingEvent($event)' [size]='PAGINATION_SIZE.medium'>\r\n </qms-paginator>\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 [@inOutAnimation] *ngIf=\"!getLoading$.value\" (click)=\"onFilterUserGroup()\" qms-btn-icon\r\n color=\"light\" matSuffix>\r\n <mat-icon>search</mat-icon>\r\n </button>\r\n <mat-progress-spinner [@inOutAnimation] *ngIf=\"getLoading$.value\" matSuffix mode=\"indeterminate\"\r\n diameter=\"20\"></mat-progress-spinner>\r\n <div [@inOutAnimation] *ngIf=\"!!userGroupForm.value && !getLoading$.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 [@inOutAnimation] *ngIf=\"!getLoading$.value\"\r\n [disabled]=\"!userGroupFiltered.length || dialogData.modeSelectOneUserGroup\" #checkUserGroup\r\n class=\"w-100 checkbox-all mb-1\" color=\"default\" [checked]=\"isCheckAll(OPTION_ENUM.USER_GROUP)\"\r\n [indeterminate]=\"isIndeterminate(OPTION_ENUM.USER_GROUP)\"\r\n (click)=\"userGroupFiltered.length && onCheckAll(OPTION_ENUM.USER_GROUP,checkUserGroup)\"\r\n qms-group-options>\r\n <span class=\"text-label header-title\">{{LANG.CHOOSE_ALL}}</span>\r\n <span>(<b>{{getPaging(userGroupFiltered).length}}</b>)</span>\r\n </mat-checkbox>\r\n </div>\r\n <mat-divider class=\"mx-auto\"></mat-divider>\r\n <ng-container *ngIf=\"getLoading$.value;then loading\">\r\n </ng-container>\r\n <div *ngIf=\"getPaging(userGroupFiltered).length && !getLoading$.value\" [@listAnimation]\r\n class=\"item-list-wrapper\">\r\n <div [@inOutAnimation] class=\"item mt-1\" *ngFor=\"let userGroup of getPaging(userGroupFiltered)\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"dialogData.modeSelectOneUserGroup ?itemWithoutCheckboxTemplate : itemCheckboxTemplate\"\r\n [ngTemplateOutletContext]=\"{item: userGroup,type: OPTION_ENUM.USER_GROUP}\">\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div [@inOutAnimation] *ngIf=\"!getPaging(userGroupFiltered).length && !getLoading$.value\"\r\n class=\"item-list-wrapper no-result\">\r\n <ng-container *ngTemplateOutlet=\"noResult\"></ng-container>\r\n </div>\r\n <mat-divider class=\"mx-auto\"></mat-divider>\r\n <qms-paginator class=\"my-1\" *ngIf=\"userGroupFiltered.length > 10 && !getLoading$.value\"\r\n [length]=\"userGroupFiltered.length\" [numHidden]=\"0\" [pageSize]=\"10\" [pageSizeOptions]=\"[5, 10, 25, 100]\"\r\n (page)='onPagingEvent($event)' [size]='PAGINATION_SIZE.medium'>\r\n </qms-paginator>\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]=\"dialogData.data.accessDepartments\"\r\n [selectIncludeLabel]=\"dialogData.treeDepartmentConfig.selectIncludeChildLabel\"\r\n [enableIncludeChild]=\"dialogData.treeDepartmentConfig.enableIncludeChild\"\r\n [enableTreeSearch]=\"dialogData.treeDepartmentConfig.enableTreeSearch\"\r\n [isSelectOne]=\"dialogData.modeSelectOneDepartment\" [selectedList]=\"resultAccess.departments\"\r\n (onSearchEvent)=\"onSearchDepartmentEvent.emit($event)\"\r\n (onValueChangeEvent)=\"onResultDepartmentChange($event)\">\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 [@inOutAnimation]\r\n *ngIf=\"(options.length === 1 && hasItemSelected()) || (options.length > 1 && optionSelect.value !== null)\"\r\n class=\"header-title my-1\">\r\n {{\r\n dialogData.titleResult || LANG.RESULTS}}\r\n <span *ngIf=\"options.length === 1 && hasItemSelected()\">\r\n ({{getResultTabActive().length}})\r\n </span>\r\n </div>\r\n <div *ngIf=\"optionSelect.value !== null\" class=\"result-selected-container\">\r\n <!-- Result Person -->\r\n <ng-container *ngIf=\"checkExistOptionSelect(OPTION_ENUM.PERSON)\"\r\n [ngTemplateOutlet]=\"options.length == 1 ? listChip : viewResultCollapse\"\r\n [ngTemplateOutletContext]=\"{data:resultAccess.persons, type:OPTION_ENUM.PERSON, title:LANG.PERSON}\">\r\n </ng-container>\r\n <!-- Result User group -->\r\n <ng-container *ngIf=\"checkExistOptionSelect(OPTION_ENUM.USER_GROUP)\"\r\n [ngTemplateOutlet]=\"options.length == 1 ? listChip : viewResultCollapse\"\r\n [ngTemplateOutletContext]=\"{data:resultAccess.userGroups, type:OPTION_ENUM.USER_GROUP, title:LANG.USER_GROUP}\">\r\n </ng-container>\r\n <!-- Result Department -->\r\n <ng-container *ngIf=\"checkExistOptionSelect(OPTION_ENUM.DEPARTMENT)\"\r\n [ngTemplateOutlet]=\"options.length == 1 ? listChip : viewResultCollapse\"\r\n [ngTemplateOutletContext]=\"{data:resultAccess.departments, type:OPTION_ENUM.DEPARTMENT, title:LANG.DEPARTMENT}\">\r\n </ng-container>\r\n </div>\r\n <mat-divider class=\"mx-auto\"></mat-divider>\r\n </div>\r\n <div qms-dialog-footer class=\"confirm__button__groups\" [class.none-option]=\"optionSelect.value === null\">\r\n <button *ngIf=\"optionSelect.value !== null\" [disabled]=\"!hasItemSelected()\" class=\"btn-add\"\r\n [class.qms-btn-disabled]=\"!hasItemSelected()\" [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\r\n<!-- Template -->\r\n<ng-template #noResult>\r\n <svg width=\"89\" height=\"88\" viewBox=\"0 0 89 88\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.5\" width=\"88\" height=\"88\" rx=\"44\" fill=\"white\" />\r\n <rect x=\"0.5\" width=\"88\" height=\"88\" rx=\"44\" fill=\"#0163B2\" fill-opacity=\"0.12\" />\r\n <path\r\n d=\"M44.5 56.6936L58.096 64.8996L54.488 49.4336L66.5 39.0276L50.682 37.6856L44.5 23.0996L38.318 37.6856L22.5 39.0276L34.512 49.4336L30.904 64.8996L44.5 56.6936Z\"\r\n fill=\"#0163B3\" />\r\n </svg>\r\n</ng-template>\r\n\r\n<!-- Template list chip -->\r\n<ng-template #listChip let-data=\"data\" let-type=\"type\">\r\n <mat-chip-list class=\"panel__item qms-scrollbar\">\r\n <mat-chip class=\"chip-item-result\" [qms-tool-tip]=\"item?.tooltip || item.name\" position=\"top\" mode=\"dark\"\r\n *ngFor=\"let item of data; 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 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 (click)=\"onRemoveChip(type,item, i)\" class=\"remove-chip-icon\">cancel</mat-icon>\r\n </mat-chip>\r\n </mat-chip-list>\r\n</ng-template>\r\n\r\n<!-- Template result with collapse -->\r\n<ng-template #viewResultCollapse let-title=\"title\" let-data=\"data\" let-type=\"type\">\r\n <mat-expansion-panel qms-expansion [expanded]=\"optionSelect.value === type\">\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\">{{title}}\r\n <span class=\"fw-600\">\r\n ({{data.length}})\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </mat-expansion-panel-header>\r\n <ng-container [ngTemplateOutlet]=\"listChip\" [ngTemplateOutletContext]=\"{data: data,type: type}\">\r\n </ng-container>\r\n </mat-expansion-panel>\r\n</ng-template>\r\n\r\n<!-- Template row without checkbox -->\r\n<ng-template #itemWithoutCheckboxTemplate let-item=\"item\" let-type=\"type\">\r\n <div (click)=\"onSelectItem(type,item)\" class=\"item-without-checkbox w-100\" [class.active]=\"item.selected\">\r\n <div class=\"item-content\">\r\n <div class=\"text-label\">\r\n <span class=\"text-label label-item fs-14 \">\r\n {{ item.name }}\r\n </span>\r\n <span *ngIf=\"item.subName\" class=\"ms-1 sub-label\">({{item.subName}})</span>\r\n </div>\r\n <small *ngIf=\"item.helpText\" class=\"text-help px-1 fs-12 sub-label\">{{ item.helpText }}</small>\r\n </div>\r\n <div class=\"item-state\">\r\n <mat-icon [@inOutAnimation] *ngIf=\"item.selected\">check</mat-icon>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<!-- Template checkbox -->\r\n<ng-template #itemCheckboxTemplate let-item=\"item\" let-type=\"type\">\r\n <mat-checkbox [checked]=\"item.selected\" (click)=\"onSelectItem(type,item)\" class=\"w-100\" color=\"default\"\r\n qms-group-options>\r\n <div class=\"text-label\">\r\n <span class=\"text-label label-item fs-14 \">\r\n {{ item.name }}\r\n </span>\r\n <span *ngIf=\"item.subName\" class=\"ms-1 sub-label\">({{item.subName}})</span>\r\n </div>\r\n <small *ngIf=\"item.helpText\" class=\"text-help px-1 fs-12 sub-label\">{{ item.helpText }}</small>\r\n </mat-checkbox>\r\n</ng-template>\r\n\r\n<!-- Template loading -->\r\n<ng-template #loading>\r\n <div class=\"loading-container\">\r\n <div class=\"loader\" *ngFor=\"let item of [1,1,1,1]\">\r\n <div class=\"loader__wrapper\">\r\n <div class=\"row-loader\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-template>\r\n",
30576
+ template: "<div qms-dialog-container-v2 class=\"select-access-dialog-container\">\r\n <div qms-dialog-header>\r\n <div class=\"access-dialog-header mb-2\">\r\n <span class=\"header-title\">{{dialogData.titleDialog || LANG.SELECT_ACCESS}}</span>\r\n <button matDialogClose qms-btn-icon>\r\n <mat-icon class=\"mat-icons-outlined\">close</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <div [class.active]=\"optionSelect.value !== null\" qms-dialog-content class=\"qms-dialog-content\">\r\n <div class=\"access-dialog-wraper\">\r\n <mat-form-field *ngIf=\"options.length > 1\" qms-form qms-select-input class=\"field-select-option w-100\"\r\n 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 <div class=\"body-dialog-container\">\r\n <!-- Person Access -->\r\n <div class=\"option-selected-content\">\r\n <ng-container *ngIf=\"optionSelect.value === OPTION_ENUM.PERSON\">\r\n <form *ngIf=\"personForm\" [formGroup]=\"personForm\">\r\n <mat-dialog-content>\r\n <div class=\"group-filter-person-option\">\r\n <mat-form-field *ngIf=\"optionFilterPersonDataGlobal.userGroups.length\" qms-form qms-select-input\r\n class=\"w-100\" appearance=\"fill\">\r\n <mat-label qms-select-input>{{LANG.ROLE}}</mat-label>\r\n <mat-select panelClass=\"qms-select-panel\" qms-select formControlName=\"userGroup\"\r\n disableOptionCentering>\r\n <mat-select-trigger>\r\n {{personForm.controls['userGroup'].value?.name || ''}}\r\n </mat-select-trigger>\r\n <mat-option>\r\n <ngx-mat-select-search formControlName=\"userGroupFilter\" placeholderLabel=\"{{ LANG.ROLE }}\"\r\n noEntriesFoundLabel=\"\">\r\n </ngx-mat-select-search>\r\n </mat-option>\r\n <mat-option mode=\"dark\" class=\"opt-check-icon\"\r\n *ngFor=\"let item of filteredSearchTextBox.userGroup.value\" [value]=\"item\">\r\n <span qms-elipsify position=\"top\" mode=\"dark\" class=\"text-option-content\">{{ item.name }}</span>\r\n <mat-icon class=\"check-icon\"\r\n *ngIf=\"personForm.controls['userGroup'].value?.id == item.id\">check</mat-icon>\r\n </mat-option>\r\n </mat-select>\r\n <span [@inOutAnimation] (click)=\"personForm.get('userGroup').setValue('')\" class=\"pointer \"\r\n matSuffix aria-label=\"Clear\" *ngIf=\"personForm.get('userGroup').value && !getLoading$.value\">\r\n <mat-icon>close</mat-icon>\r\n </span>\r\n </mat-form-field>\r\n <!-- input field department filter person -->\r\n <mat-form-field *ngIf=\"optionFilterPersonDataGlobal.departments.length\"\r\n 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=\"department\">\r\n <mat-select-trigger>\r\n {{personForm.controls['department'].value?.name || ''}}\r\n </mat-select-trigger>\r\n <mat-option>\r\n <ngx-mat-select-search formControlName=\"departmentFilter\"\r\n [placeholderLabel]=\"LANG.DEPARTMENT_UNIT\" noEntriesFoundLabel=\"\">\r\n </ngx-mat-select-search>\r\n </mat-option>\r\n <mat-option class=\"opt-check-icon\" *ngFor=\"let item of filteredSearchTextBox.department.value\"\r\n [value]=\"item\">\r\n <span qms-elipsify mode=\"dark\" position=\"top\" class=\"text-option-content\">{{ item.name }}</span>\r\n <mat-icon class=\"check-icon\"\r\n *ngIf=\"personForm.controls['department'].value?.id == item.id\">check</mat-icon>\r\n </mat-option>\r\n </mat-select>\r\n <span (click)=\"setFormControlValue(['recursive','department'], [false,''])\" [@inOutAnimation]\r\n class=\"pointer\" matSuffix aria-label=\"Clear\"\r\n *ngIf=\"personForm.get('department').value && !getLoading$.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 [@inOutAnimation] *ngIf=\"personForm.controls['department'].value\"\r\n class=\"w-100 slide-toggle\" formControlName=\"recursive\" 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 <input matInput appearance=\"off\" [placeholder]=\"LANG.SEARCH_WITH_NAME\" formControlName=\"keyword\"\r\n type=\"text\" autocomplete=\"off\" />\r\n <button *ngIf=\"!getLoading$.value\" qms-btn-icon color=\"light\" [@inOutAnimation]\r\n (click)=\"onSearchPersonFreeText()\" class=\"pointer me-1\" matSuffix aria-label=\"Search\">\r\n <mat-icon>search</mat-icon>\r\n </button>\r\n <mat-progress-spinner [@inOutAnimation] *ngIf=\"getLoading$.value\" matSuffix mode=\"indeterminate\"\r\n diameter=\"20\"></mat-progress-spinner>\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 && !getLoading$.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 my-1\">\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 [@inOutAnimation]\r\n *ngIf=\"!getLoading$.value && personFiltered.length && !dialogData.modeSelectOnePerson\"\r\n #checkPerson class=\"w-100 mb-1 checkbox-all\"\r\n (click)=\"personFiltered.length && 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}} </span>\r\n <span>(<b>{{personFiltered.length}}</b>)</span>\r\n </mat-checkbox>\r\n </div>\r\n <mat-divider class=\"mx-auto\"></mat-divider>\r\n <ng-container *ngIf=\"getLoading$.value; then loading\">\r\n </ng-container>\r\n <div [@inOutAnimation] *ngIf=\"personFiltered.length && !getLoading$.value\" [@listAnimation]\r\n class=\"item-list-wrapper\">\r\n <div class=\"item mt-1\" [@inOutAnimation]\r\n *ngFor=\"let employee of personFiltered; trackBy: trackByFn\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"dialogData.modeSelectOnePerson ?itemWithoutCheckboxTemplate : itemCheckboxTemplate\"\r\n [ngTemplateOutletContext]=\"{item: employee, type: OPTION_ENUM.PERSON}\">\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div [@inOutAnimation] *ngIf=\"!personFiltered.length && !getLoading$.value\"\r\n class=\"item-list-wrapper no-result\">\r\n <ng-container *ngTemplateOutlet=\"noResult\"></ng-container>\r\n </div>\r\n <mat-divider class=\"mx-auto\"></mat-divider>\r\n <qms-paginator #pagingPerson class=\"my-1\" *ngIf=\"getPerson$.value.length > 10\"\r\n [length]=\"getPerson$.value.length\" [numHidden]=\"0\" [pageSize]=\"getPerson$.value.pageSize\"\r\n [pageSizeOptions]=\"PAGE_SIZE_OPTION\" (page)='onPaginatorEvent($event, OPTION_ENUM.PERSON)'\r\n [size]='PAGINATION_SIZE.medium'>\r\n </qms-paginator>\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 (submit)=\"onFilterUserGroup()\">\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\"\r\n placeholder=\"User group\" />\r\n <button [@inOutAnimation] *ngIf=\"!getLoading$.value\" type=\"submit\" qms-btn-icon color=\"light\"\r\n matSuffix>\r\n <mat-icon>search</mat-icon>\r\n </button>\r\n <mat-progress-spinner [@inOutAnimation] *ngIf=\"getLoading$.value\" matSuffix mode=\"indeterminate\"\r\n diameter=\"20\"></mat-progress-spinner>\r\n <div [@inOutAnimation] *ngIf=\"!!userGroupForm.value && !getLoading$.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 [@inOutAnimation]\r\n *ngIf=\"!getLoading$.value && (userGroupFiltered.length && !dialogData.modeSelectOneUserGroup)\"\r\n #checkUserGroup class=\"w-100 checkbox-all mb-1\" color=\"default\"\r\n [checked]=\"isCheckAll(OPTION_ENUM.USER_GROUP)\"\r\n [indeterminate]=\"isIndeterminate(OPTION_ENUM.USER_GROUP)\"\r\n (click)=\"userGroupFiltered.length && onCheckAll(OPTION_ENUM.USER_GROUP,checkUserGroup)\"\r\n qms-group-options>\r\n <span class=\"text-label header-title\">{{LANG.CHOOSE_ALL}}</span>\r\n <span>(<b>{{userGroupFiltered.length}}</b>)</span>\r\n </mat-checkbox>\r\n </div>\r\n <mat-divider class=\"mx-auto\"></mat-divider>\r\n <ng-container *ngIf=\"getLoading$.value;then loading\">\r\n </ng-container>\r\n <div *ngIf=\"userGroupFiltered.length && !getLoading$.value\" [@listAnimation]\r\n class=\"item-list-wrapper\">\r\n <div [@inOutAnimation] class=\"item mt-1\" *ngFor=\"let userGroup of userGroupFiltered\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"dialogData.modeSelectOneUserGroup ? itemWithoutCheckboxTemplate : itemCheckboxTemplate\"\r\n [ngTemplateOutletContext]=\"{item: userGroup,type: OPTION_ENUM.USER_GROUP}\">\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div [@inOutAnimation] *ngIf=\"!userGroupFiltered.length && !getLoading$.value\"\r\n class=\"item-list-wrapper no-result\">\r\n <ng-container *ngTemplateOutlet=\"noResult\"></ng-container>\r\n </div>\r\n <mat-divider class=\"mx-auto\"></mat-divider>\r\n <qms-paginator #pagingUserGroup class=\"my-1\" *ngIf=\"getUserGroup$.value.length > 10 \"\r\n [length]=\"getUserGroup$.value.length\" [numHidden]=\"0\" [pageSize]=\"getUserGroup$.value.pageSize\"\r\n [pageSizeOptions]=\"PAGE_SIZE_OPTION\" (page)='onPaginatorEvent($event, OPTION_ENUM.USER_GROUP)'\r\n [size]='PAGINATION_SIZE.medium'>\r\n </qms-paginator>\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\r\n *ngIf=\"optionSelect.value === OPTION_ENUM.DEPARTMENT && getLoading$.value; then loading\"></ng-container>\r\n <ng-container *ngIf=\"optionSelect.value === OPTION_ENUM.DEPARTMENT && !getLoading$.value\"\r\n class=\"person-access\">\r\n <qms-select-department-tree #tree [height]=\"'60vh'\" [treeData]=\"this.dialogData.data.accessDepartments\"\r\n [customClass]=\"'access-department'\" [rowsSkeleton]=\"9\"\r\n [selectIncludeLabel]=\"dialogData.treeDepartmentConfig.selectIncludeChildLabel\"\r\n [enableIncludeChild]=\"dialogData.treeDepartmentConfig.enableIncludeChild\"\r\n [enableTreeSearch]=\"dialogData.treeDepartmentConfig.enableTreeSearch\" [enablePagingSearch]=\"true\"\r\n [isSelectOne]=\"dialogData.modeSelectOneDepartment\" [selectedList]=\"selectedDepartments\"\r\n (onSearchEvent)=\"onSearchDepartmentEvent.emit($event)\"\r\n (onValueChangeEvent)=\"onResultDepartmentChange($event)\"\r\n (selectionNodeChangeEvent)=\"onSelectionNodeDepartmentChange($event)\"\r\n (onPagingSearchEvent)=\"onPaginatorEvent($event, OPTION_ENUM.DEPARTMENT)\">\r\n </qms-select-department-tree>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"optionSelect.value !== null\" class=\"result-wrapper\">\r\n <div class=\"result-selected-container\">\r\n <div [@inOutAnimation] *ngIf=\"(options.length === 1) || (options.length > 1 && optionSelect.value !== null)\"\r\n class=\"header-title result-header\">\r\n <span>\r\n {{\r\n dialogData.titleResult || LANG.RESULTS}}\r\n <span *ngIf=\"options.length === 1 && hasItemSelected()\">\r\n ({{getResultTabActive().length}})\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"result-body\">\r\n <!-- Result Person -->\r\n <ng-container *ngIf=\"checkExistOptionSelect(OPTION_ENUM.PERSON)\"\r\n [ngTemplateOutlet]=\"options?.length == 1 ? listChip : viewResultCollapse\"\r\n [ngTemplateOutletContext]=\"{data:resultAccess.persons, type:OPTION_ENUM.PERSON, title:LANG.PERSON}\">\r\n </ng-container>\r\n <!-- Result User group -->\r\n <ng-container *ngIf=\"checkExistOptionSelect(OPTION_ENUM.USER_GROUP)\"\r\n [ngTemplateOutlet]=\"options?.length == 1 ? listChip : viewResultCollapse\"\r\n [ngTemplateOutletContext]=\"{data:resultAccess.userGroups, type:OPTION_ENUM.USER_GROUP, title:LANG.USER_GROUP}\">\r\n </ng-container>\r\n <!-- Result Department -->\r\n <ng-container *ngIf=\"checkExistOptionSelect(OPTION_ENUM.DEPARTMENT)\"\r\n [ngTemplateOutlet]=\"options?.length == 1 ? listChip : viewResultCollapse\"\r\n [ngTemplateOutletContext]=\"{data: resultAccess.departments, type:OPTION_ENUM.DEPARTMENT, title:LANG.DEPARTMENT}\">\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <mat-divider class=\"mx-auto\"></mat-divider>\r\n <div qms-dialog-footer class=\"confirm__button__groups\" [class.none-option]=\"optionSelect.value === null\">\r\n <button *ngIf=\"optionSelect.value !== null\" [disabled]=\"!hasItemSelected()\" class=\"btn-add\"\r\n [class.qms-btn-disabled]=\"!hasItemSelected()\" [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\r\n<!-- Template -->\r\n<ng-template #noResult>\r\n <svg width=\"89\" height=\"130\" viewBox=\"0 0 89 88\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.5\" width=\"88\" height=\"88\" rx=\"44\" fill=\"white\" />\r\n <rect x=\"0.5\" width=\"88\" height=\"88\" rx=\"44\" fill=\"#0163B2\" fill-opacity=\"0.12\" />\r\n <path\r\n d=\"M44.5 56.6936L58.096 64.8996L54.488 49.4336L66.5 39.0276L50.682 37.6856L44.5 23.0996L38.318 37.6856L22.5 39.0276L34.512 49.4336L30.904 64.8996L44.5 56.6936Z\"\r\n fill=\"#0163B3\" />\r\n <text x=\"10\" y=\"105\" fill=\"#0163B2\">{{LANG.NO_RESULT}}</text>\r\n </svg>\r\n</ng-template>\r\n\r\n<!-- Template list chip -->\r\n<ng-template #listChip let-data=\"data\" let-type=\"type\">\r\n <mat-chip-list [@inOutAnimation] *ngIf=\"data?.length\" lass=\"panel__item qms-scrollbar\">\r\n <div [@inOutAnimation_2] *ngFor=\"let item of data; let i = index\">\r\n <mat-chip (click)=\"onScollToNodeTreeDepartment(item)\" [@updateItemAnimation]\r\n *qmsContentChanges=\"item.children?.length\" class=\"chip-item-result\" [qms-tool-tip]=\"generateTootip(item)\"\r\n position=\"top\" mode=\"dark\" qms-chip [removable]=\"true\">\r\n <span qms-chip-body>\r\n <span qms-elipsify mode=\"dark\" position=\"top\" class=\"text-label\">\r\n {{item.name}}\r\n <span *ngIf=\"item.subName\">({{ item.subName }})</span>\r\n </span>\r\n <span class=\"chip-item-children__count ms-1\" *ngIf=\"item?.children && item?.isGroup\">\r\n {{item.children.length}}/{{item.childCount}}\r\n </span>\r\n </span>\r\n <mat-icon (click)=\"onRemoveChip(type,item, i)\" class=\"remove-chip-icon\">cancel</mat-icon>\r\n </mat-chip>\r\n </div>\r\n </mat-chip-list>\r\n</ng-template>\r\n\r\n<!-- Template result with collapse -->\r\n<ng-template #viewResultCollapse let-title=\"title\" let-data=\"data\" let-type=\"type\">\r\n <mat-expansion-panel qms-expansion [expanded]=\"optionSelect.value === type\">\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\">{{title}}\r\n <span class=\"fw-600\">\r\n ({{data?.length}})\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </mat-expansion-panel-header>\r\n <ng-container [ngTemplateOutlet]=\"listChip\" [ngTemplateOutletContext]=\"{data: data,type: type}\">\r\n </ng-container>\r\n </mat-expansion-panel>\r\n</ng-template>\r\n\r\n<!-- Template row without checkbox -->\r\n<ng-template #itemWithoutCheckboxTemplate let-item=\"item\" let-type=\"type\">\r\n <div (click)=\"onSelectItem(type,item)\" class=\"item-without-checkbox w-100\" [class.active]=\"item.selected\">\r\n <div class=\"item-content\">\r\n <div class=\"text-label\">\r\n <span class=\"text-label label-item fs-14 \">\r\n {{ item.name }}\r\n </span>\r\n <span *ngIf=\"item.subName\" class=\"ms-1 sub-label\">({{item.subName}})</span>\r\n </div>\r\n <small *ngIf=\"item.helpText\" class=\"text-help px-1 fs-12 sub-label\">{{ item.helpText }}</small>\r\n </div>\r\n <div class=\"item-state\">\r\n <mat-icon [@inOutAnimation] *ngIf=\"item.selected\">check</mat-icon>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<!-- Template checkbox -->\r\n<ng-template #itemCheckboxTemplate let-item=\"item\" let-type=\"type\">\r\n <mat-checkbox [checked]=\"item.selected\" (click)=\"onSelectItem(type,item)\" class=\"w-100\" color=\"default\"\r\n qms-group-options>\r\n <div class=\"text-label\">\r\n <span class=\"text-label label-item fs-14 \">\r\n {{ item.name }}\r\n </span>\r\n <span *ngIf=\"item.subName\" class=\"ms-1 sub-label\">({{item.subName}})</span>\r\n </div>\r\n <small *ngIf=\"item.helpText\" class=\"text-help px-1 fs-12 sub-label\">{{ item.helpText }}</small>\r\n </mat-checkbox>\r\n</ng-template>\r\n\r\n<!-- Template loading -->\r\n<ng-template #loading>\r\n <div class=\"loading-container\">\r\n <div class=\"loader\" *ngFor=\"let item of arrSkeleton\">\r\n <div class=\"loader__wrapper\">\r\n <div class=\"row-loader\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-template>\r\n",
30265
30577
  animations: [SelectAccessAnimationTrigger],
30266
30578
  providers: [
30267
30579
  {
@@ -30270,7 +30582,7 @@ QMSSelectAccessDialogComponent.decorators = [
30270
30582
  }
30271
30583
  ],
30272
30584
  encapsulation: ViewEncapsulation.None,
30273
- 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 .color-primary{color:var(--primary-light)!important}.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:175px;overflow-y:auto;padding-right:4px}.select-access-dialog-container .item-list-wrapper{max-height:28vh;padding:4px 4px 4px 0;overflow-y:auto}.select-access-dialog-container .item-list-wrapper.no-result{height:28vh;display:flex;justify-content:center;align-items:center}.select-access-dialog-container .item-list-wrapper .item{min-height:40px}.select-access-dialog-container .item-list-wrapper .item-without-checkbox{min-height:45px;display:flex;justify-content:space-between;align-items:center;padding:4px 8px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;border-radius:4px;transition:background .3s ease}.select-access-dialog-container .item-list-wrapper .item-without-checkbox.active{background:var(--primary-light-12-opacity)}.select-access-dialog-container .item-list-wrapper .item-without-checkbox:hover{background:var(--primary-light-6-opacity)}.select-access-dialog-container .item-list-wrapper .item-without-checkbox .mat-icon{color:var(--primary-light)!important}.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)}.select-access-dialog-container .qms-paginator .mat-icon{display:flex;align-items:center;justify-content:center}.select-access-dialog-container .qms-paginator .mat-form-field-wrapper{padding-bottom:0}.select-access-dialog-container .qms-paginator .mat-paginator-container{min-height:40px}.select-access-dialog-container .qms-paginator .mat-paginator-container .qms-total-result{margin-bottom:2px;margin-right:12px;height:30px}.select-access-dialog-container .qms-paginator .mat-paginator-container .qms-total-result span{font-weight:600;font-size:13px;color:rgba(0,0,0,.8)}.select-access-dialog-container .qms-paginator .mat-paginator-container .qms-paginator-range-actions{margin-bottom:0;grid-column-gap:2px;-moz-column-gap:2px;column-gap:2px}.select-access-dialog-container .qms-paginator .mat-paginator-container .qms-paginator-range-actions>.qms-total-result{margin-bottom:0}.select-access-dialog-container .qms-paginator>.qms-btn-icon-wrapper{width:30px;height:30px;display:flex;justify-content:center;align-items:center}.select-access-dialog-container .qms-paginator .qms-paginator-page-size{margin-right:12px}.select-access-dialog-container .qms-paginator .qms-paginator-page-size>.qms-pagesize-label{display:none}.select-access-dialog-container .qms-paginator .qms-paginator-page-size>.qms-form-page-size .mat-form-field-flex{width:60px!important;height:30px;display:flex;align-items:center;padding:0 4px}.select-access-dialog-container .qms-paginator .qms-paginator-page-size>.qms-form-page-size .mat-form-field-flex .mat-form-field-infix{height:30px}.select-access-dialog-container .qms-paginator .mat-form-field.qms-form .mat-select-min-line,.select-access-dialog-container .qms-paginator .mat-form-field.qms-form mat-select-trigger{font-size:14px}.select-access-dialog-container .qms-paginator .mat-select-value{text-align:center}.select-access-dialog-container .mat-checkbox.checkbox-all .mat-checkbox-label{flex-direction:row!important;align-items:center!important;grid-column-gap:4px!important;-moz-column-gap:4px!important;column-gap:4px!important}.select-access-dialog-container .mat-expansion-panel.qms-expansion{margin:0!important}.select-access-dialog-container .qms-btn-icon{width:30px!important;height:30px!important;line-height:30px!important}.select-access-dialog-container .loading-container{height:25vh;display:grid;grid-template-rows:repeat(auto-fill,minmax(60px,60px))}.select-access-dialog-container .loading-container .loader{position:relative;width:100%;height:100%;padding:10px 0;overflow:hidden}.select-access-dialog-container .loading-container .loader:after{content:\"\";position:absolute;width:100%;height:100%;top:0;left:0;background:linear-gradient(110deg,hsla(0,0%,91%,0),hsla(0,0%,89%,0) 40%,hsla(0,0%,89%,.5) 50%,hsla(0,0%,89%,0) 60%,hsla(0,0%,89%,0));-webkit-animation:animate-loading 1.2s linear infinite;animation:animate-loading 1.2s linear infinite}.select-access-dialog-container .loading-container .loader__wrapper{position:relative;width:100%;height:100%}.select-access-dialog-container .loading-container .loader__wrapper .row-loader{background-color:#eee;position:absolute;left:0;width:100%;height:40px;overflow:hidden}@-webkit-keyframes animate-loading{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}@keyframes animate-loading{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}"]
30585
+ 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 .color-primary{color:var(--primary-light)!important}.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 .mat-chip-list-wrapper{margin:unset!important}.select-access-dialog-container .item-list-wrapper{max-height:45vh;padding:4px 4px 4px 0;overflow-y:auto}.select-access-dialog-container .item-list-wrapper.no-result{height:50vh;display:flex;justify-content:center;align-items:center}.select-access-dialog-container .item-list-wrapper .item{min-height:40px}.select-access-dialog-container .item-list-wrapper .item-without-checkbox{min-height:45px;display:flex;justify-content:space-between;align-items:center;padding:4px 8px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;border-radius:4px;transition:background .3s ease}.select-access-dialog-container .item-list-wrapper .item-without-checkbox.active{background:var(--primary-light-12-opacity)}.select-access-dialog-container .item-list-wrapper .item-without-checkbox:hover{background:var(--primary-light-6-opacity)}.select-access-dialog-container .item-list-wrapper .item-without-checkbox .mat-icon{color:var(--primary-light)!important}.select-access-dialog-container .confirm__button__groups .btn-add>.qms-btn-wrapper{display:flex;justify-content:center;align-items:center}.select-access-dialog-container .qms-dialog-content{display:grid;grid-column-gap:8px;-moz-column-gap:8px;column-gap:8px}.select-access-dialog-container .qms-dialog-content.active{grid-template-columns:2fr 1fr}.select-access-dialog-container .qms-dialog-content .access-dialog-wraper .field-select-option .mat-form-field-wrapper{padding-bottom:16px!important}.select-access-dialog-container .qms-dialog-content .access-dialog-wraper .field-select-option .mat-form-field-underline{bottom:16px!important}.select-access-dialog-container .qms-dialog-content .result-wrapper{position:relative;width:100%;margin-left:8px}.select-access-dialog-container .qms-dialog-content .result-wrapper:after{position:absolute;content:\"\";top:0;left:0;background-color:#0000001f;height:100%;width:1px}.select-access-dialog-container .qms-dialog-content .result-selected-container{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;padding:0 8px}.select-access-dialog-container .qms-dialog-content .result-selected-container .result-header{height:51px;display:flex;align-items:center;position:-webkit-sticky;position:sticky;top:0;z-index:10;padding:0!important;background:#fff;margin-bottom:12px}.select-access-dialog-container .qms-dialog-content .result-selected-container .result-header:after{position:absolute;content:\"\";bottom:0;left:0;width:100%;height:1px;background:rgba(0,0,0,.04)}.select-access-dialog-container .qms-dialog-content .result-selected-container .result-header .mat-card-content{height:51px;width:100%;padding-left:4px;display:flex;align-items:center;background-color:rgba(0,0,0,.04)}.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)}.select-access-dialog-container .qms-paginator .mat-icon{display:flex;align-items:center;justify-content:center}.select-access-dialog-container .qms-paginator .qms-btn-icon{width:30px!important;height:30px!important;line-height:30px!important}.select-access-dialog-container .qms-paginator .mat-form-field-wrapper{padding-bottom:0}.select-access-dialog-container .qms-paginator .mat-paginator-container{min-height:40px}.select-access-dialog-container .qms-paginator .mat-paginator-container .qms-total-result{margin-bottom:2px;margin-right:12px;height:30px}.select-access-dialog-container .qms-paginator .mat-paginator-container .qms-total-result span{font-weight:600;font-size:13px;color:rgba(0,0,0,.8)}.select-access-dialog-container .qms-paginator .mat-paginator-container .qms-paginator-range-actions{margin-bottom:0;grid-column-gap:2px;-moz-column-gap:2px;column-gap:2px}.select-access-dialog-container .qms-paginator .mat-paginator-container .qms-paginator-range-actions>.qms-total-result{margin-bottom:0}.select-access-dialog-container .qms-paginator>.qms-btn-icon-wrapper{width:30px!important;height:30px!important;display:flex;justify-content:center;align-items:center}.select-access-dialog-container .qms-paginator .qms-paginator-page-size{margin-right:12px}.select-access-dialog-container .qms-paginator .qms-paginator-page-size>.qms-pagesize-label{display:none}.select-access-dialog-container .qms-paginator .qms-paginator-page-size>.qms-form-page-size .mat-form-field-flex{width:60px!important;height:30px;display:flex;align-items:center;padding:0 4px}.select-access-dialog-container .qms-paginator .qms-paginator-page-size>.qms-form-page-size .mat-form-field-flex .mat-form-field-infix{height:30px}.select-access-dialog-container .qms-paginator .mat-form-field.qms-form .mat-select-min-line,.select-access-dialog-container .qms-paginator .mat-form-field.qms-form mat-select-trigger{font-size:14px}.select-access-dialog-container .qms-paginator .mat-select-value{text-align:center}.select-access-dialog-container .mat-checkbox.checkbox-all .mat-checkbox-label{flex-direction:row!important;align-items:center!important;grid-column-gap:4px!important;-moz-column-gap:4px!important;column-gap:4px!important}.select-access-dialog-container .mat-expansion-panel.qms-expansion{margin:0!important}.select-access-dialog-container .access-department .qms-view-search-result{height:100%!important}.select-access-dialog-container .access-department .qms-view-search-result .result{max-height:calc(100% - 80px)!important}.select-access-dialog-container .access-department .loading-container{height:calc(100% - 40px)!important}.select-access-dialog-container .loading-container{height:50vh;overflow:hidden;display:grid;grid-template-rows:repeat(auto-fill,minmax(60px,60px))}.select-access-dialog-container .loading-container .loader{position:relative;width:100%;height:100%;padding:10px 0;overflow:hidden}.select-access-dialog-container .loading-container .loader:after{content:\"\";position:absolute;width:100%;height:100%;top:0;left:0;background:linear-gradient(110deg,hsla(0,0%,91%,0),hsla(0,0%,89%,0) 40%,hsla(0,0%,89%,.5) 50%,hsla(0,0%,89%,0) 60%,hsla(0,0%,89%,0));-webkit-animation:animate-loading 1.2s linear infinite;animation:animate-loading 1.2s linear infinite}.select-access-dialog-container .loading-container .loader__wrapper{position:relative;width:100%;height:100%}.select-access-dialog-container .loading-container .loader__wrapper .row-loader{background-color:#eee;position:absolute;left:0;width:100%;height:40px;overflow:hidden}@-webkit-keyframes animate-loading{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}@keyframes animate-loading{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}"]
30274
30586
  },] }
30275
30587
  ];
30276
30588
  QMSSelectAccessDialogComponent.ctorParameters = () => [
@@ -30281,9 +30593,11 @@ QMSSelectAccessDialogComponent.ctorParameters = () => [
30281
30593
  { type: ChangeDetectorRef }
30282
30594
  ];
30283
30595
  QMSSelectAccessDialogComponent.propDecorators = {
30284
- tree: [{ type: ViewChild, args: ['treeDepartment', {
30596
+ tree: [{ type: ViewChild, args: ['tree', {
30285
30597
  read: SelectDepartmentTreeComponent
30286
- },] }]
30598
+ },] }],
30599
+ pagingPerson: [{ type: ViewChild, args: ['pagingPerson',] }],
30600
+ pagingUserGroup: [{ type: ViewChild, args: ['pagingUserGroup',] }]
30287
30601
  };
30288
30602
 
30289
30603
  class QMSSelectAccessDialogModule {
@@ -30315,7 +30629,8 @@ QMSSelectAccessDialogModule.decorators = [
30315
30629
  MatSlideToggleModule,
30316
30630
  QMSListModule,
30317
30631
  QmsPaginatorModule,
30318
- MatPaginatorModule
30632
+ MatPaginatorModule,
30633
+ MatCardModule
30319
30634
  ],
30320
30635
  exports: [
30321
30636
  QMSSelectAccessDialogComponent
@@ -30323,6 +30638,9 @@ QMSSelectAccessDialogModule.decorators = [
30323
30638
  },] }
30324
30639
  ];
30325
30640
 
30641
+ class FilterPersonModel {
30642
+ }
30643
+
30326
30644
  /*
30327
30645
  * Public API Surface of qms-angular
30328
30646
  */
@@ -30331,5 +30649,5 @@ QMSSelectAccessDialogModule.decorators = [
30331
30649
  * Generated bundle index. Do not edit.
30332
30650
  */
30333
30651
 
30334
- export { AnimationTreeDepartment, AutocompleteOffDirective, BREADCRUMB_DROPDOWN_ICON, BUTTON_TOGGLE_DEFAULT_OPTIONS, BUTTON_TOGGLE_GROUP, BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR, BannerType, BpmnService, BreadcrumbNode, BreadcrumbType, ButtonToggleChange, CHECKLIST_ICON, CKEditorEventConst, CKEditorModule, CdkDetailRowDirective, ConfirmDialog, DEPARTMENT_FOLDER_ICON, DEPARTMENT_FOLDER_OUTLINED_ICON, DEVIATION_ICON, DOCUMENT_DEPARTMENT_ICON, DOCUMENT_ENTERPRISE_ICON, DOCUMENT_ICON, DOCUMENT_LOCAL_ICON, DOCUMENT_REGIONAL_ICON, DataType$1 as DataType, DateFormatPipe, DepartmentLocationBreadCrumb, DepartmentSearchResultModel, DocumentNodeType$1 as DocumentNodeType, ENTERPRISE_FOLDER_ICON, ENTERPRISE_FOLDER_OUTLINED_ICON, 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, QMSSelectAccessDialog, QMSSelectAccessDialogComponent, QMSSelectAccessDialogModule, QMSSelectAccessGlobalService, QMSSelectAccessResult, QMSSelectDepartmentGlobalService, QMSSelectDepartmentModule, QMSSelectDepartmentTreeConfig, QMSSelectDepartmentTreeGlobalService, QMSSelectDepartmentTreeModule, QMSSelectIncludeChildrenGlobalService, QMSSelectIncludeChildrenModule, QMSSelectOneGlobalService, QMSSelectOneModule, QMSSelectProcessDocumentGlobalService, QMSSelectProcessDocumentModule, QMSSideSheetModule, QMSSnackbarConfig, QMSSuffixDirective, QMSSuffixFieldDirective, QMSTabGroupAdvancedDirective, QMSTabGroupDirective, QMSTabLabelDirective, QMSTabModule, QMSTableAction, QMSTableActionBlock, QMSTableChildrenDirective, QMSTableDirective, QMSTableModule, QMSTableRowDirective, QMSTextBlockDirective, QMSTextBlockLine, QMSTextTruncateDirective, QMSThemingLibraryService, QMSToolTipComponent, QMSToolTipRendererDirective, QMSTooltipImageDirective, QMSTooltipModule, QMSTreeConfig, QMSTreeGlobalService, QMSTreeModel, QMSTreeModule, QMSUploadFileErrorDialog, QMSUploadFileErrorDialogModule, QMSUploadingFileGuard, QMS_THEMES, QMS_THEME_DEFAULT, QmsAngularComponent, QmsAngularModule, QmsAngularService, QmsAppBarComponent, QmsAppBarModule, QmsBadgesComponent, QmsBadgesModule, QmsBannerButtonType, QmsBannerComponent, QmsBannerConfirmButton, QmsBannerConfirmButtonClick, QmsBannerConfirmComponent, QmsBannerConfirmModule, QmsBannerContent, QmsBannerLoadingComponent, QmsBannerLoadingModule, QmsBannerModule, QmsCkeditorLinkSimpleComponent, QmsPaginatorModule, QmsReportContentPortraitComponent, QmsReportCoverPortraitComponent, QmsReportModule, QmsStatusDropdownComponent, QmsStatusDropdownModule, QmsStatusDropdownOption, QmsStatusDropdownType, QmsStepperComponent, QmsStepperModule, REGIONAL_FOLDER_ICON, REGIONAL_FOLDER_OUTLINED_ICON, RISK_ICON, RelatedConst, RelatedContentComponent, RelatedItemType, RelatedListComponent, RelatedPopupComponent, Result, RiskAnalysis, RiskAnalysisComponent, RiskDanger, RiskListComponent, RiskResult, RiskResultComponent, SaveTemplateComponent, ScrollToSelectedDirective, 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 };
30652
+ export { AnimationTreeDepartment, AutocompleteOffDirective, BREADCRUMB_DROPDOWN_ICON, BUTTON_TOGGLE_DEFAULT_OPTIONS, BUTTON_TOGGLE_GROUP, BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR, BannerType, BpmnService, BreadcrumbNode, BreadcrumbType, ButtonToggleChange, CHECKLIST_ICON, CKEditorEventConst, CKEditorModule, CdkDetailRowDirective, ConfirmDialog, DEPARTMENT_FOLDER_ICON, DEPARTMENT_FOLDER_OUTLINED_ICON, DEVIATION_ICON, DOCUMENT_DEPARTMENT_ICON, DOCUMENT_ENTERPRISE_ICON, DOCUMENT_ICON, DOCUMENT_LOCAL_ICON, DOCUMENT_REGIONAL_ICON, DataType$1 as DataType, DateFormatPipe, DepartmentLocationBreadCrumb, DepartmentSearchResultModel, DocumentNodeType$1 as DocumentNodeType, ENTERPRISE_FOLDER_ICON, ENTERPRISE_FOLDER_OUTLINED_ICON, EllipsifyDirective, FileErrorType, FileType, FilterPersonModel, FlatNodeNavDrawer, FlowChartConst, FlowchartViewMode, ISelectOneItem, InformationCoverItem, KEYBOARD_DOWN_ICON, KEYBOARD_UP_ICON, LOCAL_FOLDER_ICON, LOCAL_FOLDER_OUTLINED_ICON, LinkAnchor, LinkType, MarginDirective, MfeUtil, ModuleType$1 as ModuleType, NORMAL_FOLDER_ICON, NORMAL_FOLDER_OUTLINED_ICON, NavigatorElementView, NavigatorLinkView, NewTreeComponent, NewTreeModel, OptionSelectAccessEnum, OptionSelectAccessModel, PROCESS_AREA_ICON, PROCESS_AREA_OUTLINED_ICON, PROCESS_ICON, PaginationSize, PopupData, ProtocolType, ProtocolTypeName, QMSAccessItem, QMSAccessPagingChangeModel, QMSAccessPagingModel, QMSAnchor, QMSAppBar, QMSAppIconModule, QMSAttachmentListDirective, QMSBasicTreeComponent, QMSBreadcrumb, QMSBreadcrumbDirectionIconDirective, QMSBreadcrumbItemDirective, QMSBreadcrumbModule, QMSButton, QMSButtonIcon, QMSButtonModule, QMSButtonToggle, QMSButtonToggleGroup, QMSCKEditorBaseComponent, QMSCKEditorBaseService, QMSCKEditorBpmn, QMSCKEditorBpmnApiService, QMSCKEditorBpmnComponent, QMSCKEditorBpmnTemplate, QMSCKEditorComponent, QMSCKEditorConfirmComponent, QMSCKEditorData, QMSCKEditorDialogData, QMSCKEditorDocumentType, QMSCKEditorFlowchart, QMSCKEditorFlowchartService, QMSCKEditorFullscreenComponent, QMSCKEditorGlobalService, QMSCKEditorInjector, QMSCKEditorLinkAnchorDocument, QMSCKEditorLinkComponent, QMSCKEditorLinkService, QMSCKEditorLoadTemplateComponent, QMSCKEditorModule, QMSCKEditorPlugin, QMSCKEditorRelatedComponent, QMSCKEditorRelation, QMSCKEditorSaveAsTemplate, QMSCKEditorTemplate, QMSCKEditorTemplateService, QMSCKEditorToastService, QMSCKEditorTreeComponent, QMSCKEdtiorInputData, QMSChipBodyDirective, QMSChipInputChipListDirective, QMSChipInputDirective, QMSChipInputSelectDropDownDirective, QMSChipInputSelectFieldDirective, QMSChipInputSelectTriggerDirective, QMSCollapseGroupDirective, QMSComment, QMSConfirmDialog, QMSContentChangesDirective, QMSDepartmentPagingModel, QMSDialogConfig, QMSDialogContainer, QMSDialogContainerV2, QMSDialogContent, QMSDialogFooter, QMSDialogHeader, QMSDrawerContentDirective, QMSDrawerDirective, QMSDrawerHeaderActionDirective, QMSDrawerHeaderDirective, QMSDropdownMenuItem, QMSEditFileNameDialog, QMSEditFileNameDialogModule, QMSFileAttachment, QMSFileUploadDirective, QMSFileUploadDisplayDirective, QMSFileUploadMultipleDirective, QMSFileUploadMultipleDisplayDirective, QMSFileUploadMultipleSelectorDirective, QMSFileUploadSelectorDirective, QMSFlatNodeTree, QMSFormDialog, QMSFormFieldDatePickerDirective, QMSFormFieldDirective, QMSFormFieldTextareaDirective, QMSGroupOptionDirective, QMSIconRegistryService, QMSInputChipDirective, QMSInputClearDirective, QMSList, QMSListExpansion, QMSListExpansionHeader, QMSListHeader, QMSListItem, QMSListLeadingIcon, QMSListLine, QMSListModule, QMSMultiIconDirective, QMSNavDrawerComponent, QMSNavDrawerModule, QMSNavigationDrawerComponent, QMSNavigationDrawerModule, QMSNewTreeModule, QMSPaginatorComponent, QMSProcessDocumentItem, QMSRangeSliderDirective, QMSRangeSliderLockUpDirective, QMSRangeSliderModule, QMSRelatedGlobalService, QMSRelatedModule, QMSRichText, QMSRichTextModule, QMSRowDetailDirective, QMSScrolableAttachmentListDirective, QMSScrollbarDirective, QMSSearchFieldDirective, QMSSelectAccessData, QMSSelectAccessDialog, QMSSelectAccessDialogComponent, QMSSelectAccessDialogModule, QMSSelectAccessGlobalService, QMSSelectAccessResult, QMSSelectDepartmentGlobalService, QMSSelectDepartmentModule, QMSSelectDepartmentTreeConfig, QMSSelectDepartmentTreeGlobalService, QMSSelectDepartmentTreeModule, QMSSelectIncludeChildrenGlobalService, QMSSelectIncludeChildrenModule, QMSSelectOneGlobalService, QMSSelectOneModule, QMSSelectProcessDocumentGlobalService, QMSSelectProcessDocumentModule, QMSSideSheetModule, QMSSnackbarConfig, QMSSuffixDirective, QMSSuffixFieldDirective, QMSTabGroupAdvancedDirective, QMSTabGroupDirective, QMSTabLabelDirective, QMSTabModule, QMSTableAction, QMSTableActionBlock, QMSTableChildrenDirective, QMSTableDirective, QMSTableModule, QMSTableRowDirective, QMSTextBlockDirective, QMSTextBlockLine, QMSTextTruncateDirective, QMSThemingLibraryService, QMSToolTipComponent, QMSToolTipRendererDirective, QMSTooltipImageDirective, QMSTooltipModule, QMSTreeConfig, QMSTreeGlobalService, QMSTreeModel, QMSTreeModule, QMSUploadFileErrorDialog, QMSUploadFileErrorDialogModule, QMSUploadingFileGuard, QMS_THEMES, QMS_THEME_DEFAULT, QmsAngularComponent, QmsAngularModule, QmsAngularService, QmsAppBarComponent, QmsAppBarModule, QmsBadgesComponent, QmsBadgesModule, QmsBannerButtonType, QmsBannerComponent, QmsBannerConfirmButton, QmsBannerConfirmButtonClick, QmsBannerConfirmComponent, QmsBannerConfirmModule, QmsBannerContent, QmsBannerLoadingComponent, QmsBannerLoadingModule, QmsBannerModule, QmsCkeditorLinkSimpleComponent, QmsPaginatorModule, QmsReportContentPortraitComponent, QmsReportCoverPortraitComponent, QmsReportModule, QmsStatusDropdownComponent, QmsStatusDropdownModule, QmsStatusDropdownOption, QmsStatusDropdownType, QmsStepperComponent, QmsStepperModule, REGIONAL_FOLDER_ICON, REGIONAL_FOLDER_OUTLINED_ICON, RISK_ICON, RelatedConst, RelatedContentComponent, RelatedItemType, RelatedListComponent, RelatedPopupComponent, Result, RiskAnalysis, RiskAnalysisComponent, RiskDanger, RiskListComponent, RiskResult, RiskResultComponent, SaveTemplateComponent, ScrollToSelectedDirective, SelectAccessAnimationTrigger, SelectConst, SelectDepartmentComponent, SelectDepartmentPopupData, SelectDepartmentTreeComponent, SelectDialog, SelectIncludeChildrenPopUpComponent, SelectOneDialog, SelectOneNextData, SelectOneNextDialog, SelectOnePopupData, SelectOption, SelectOptionTypes, SelectPopupData, SelectProcessDocumentPopupComponent, SelectProcessDocumentPopupData, SelectedOption, SelectedProcessDocumentItem, SharedModule, ShowHideSearchResultConst, SideNav, SideNavItem, SidenavComponent, TargetType, TargetTypeName, TranslateLibraryService, TreeComponent, TreeConfig, TreeFlatNode, TreeModel, TreeModelNavDrawer, TreeNode$1 as TreeNode, UploadErrorData, app, basic, en, erd, fsa, mixinColor, no, notExceedSize, org, pn, requiredFileType, standard, uml, ɵ2, SharedMaterialModule as ɵa, TreeComponent as ɵb, QMSTreeModule as ɵc, QMSBasicTreeComponent as ɵd, QMSCKEditorTreeService as ɵe, QMSCKEditorTemplateComponent as ɵf, LinkAttachmentComponent as ɵg, QMSCKEditorTooltipComponent as ɵh, QMSCKEditorTooltip as ɵi, QMSCKEditorImageMapComponent as ɵj, QMSCKEditorImageMap as ɵk, QMSCKEditorUploadService as ɵl, QMSCKEditorBpmnData as ɵm, QMSCKEditorAboutComponent as ɵn, QMSCKEditorFlowchartComponent as ɵo };
30335
30653
  //# sourceMappingURL=qms-angular.js.map