qms-angular 1.1.20 → 1.1.22

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 (64) hide show
  1. package/bundles/qms-angular.umd.js +900 -528
  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/components/select-process-document/models/pop-up-data.model.js +2 -1
  22. package/esm2015/lib/components/select-process-document/select-process-document.component.js +46 -38
  23. package/esm2015/lib/directives/content-changes.directive.js +32 -0
  24. package/esm2015/lib/directives/tooltip/tooltip-elipsify.directive.js +51 -0
  25. package/esm2015/lib/directives/tooltip/tooltip-renderer.directive.js +1 -1
  26. package/esm2015/lib/model/en.js +5 -4
  27. package/esm2015/lib/model/no.js +3 -2
  28. package/esm2015/lib/qms-angular.module.js +9 -3
  29. package/esm2015/lib/qms-ckeditor-components/common/models/qms-ckeditor-data.model.js +1 -1
  30. package/esm2015/lib/qms-ckeditor-components/qms-ckeditor.component.js +62 -50
  31. package/esm2015/public-api.js +3 -1
  32. package/fesm2015/qms-angular.js +866 -539
  33. package/fesm2015/qms-angular.js.map +1 -1
  34. package/lib/common/models/qms-flat-node.model.d.ts +2 -0
  35. package/lib/common/models/qms-tree-node.model.d.ts +5 -0
  36. package/lib/components/select-access-dialog/model/access-paging.model.d.ts +9 -0
  37. package/lib/components/select-access-dialog/model/filter-person.model.d.ts +6 -0
  38. package/lib/components/select-access-dialog/model/select-access-config.model.d.ts +1 -0
  39. package/lib/components/select-access-dialog/model/select-access-data.d.ts +4 -2
  40. package/lib/components/select-access-dialog/public-api.d.ts +3 -0
  41. package/lib/components/select-access-dialog/select-access-dialog.component.d.ts +41 -18
  42. package/lib/components/select-department/select-department.component.d.ts +7 -6
  43. package/lib/components/select-department-tree/model/department-paging.model.d.ts +5 -0
  44. package/lib/components/select-department-tree/model/selection-change.model.d.ts +4 -0
  45. package/lib/components/select-department-tree/public-api.d.ts +2 -0
  46. package/lib/components/select-department-tree/select-department-tree.component.d.ts +24 -15
  47. package/lib/components/select-process-document/models/pop-up-data.model.d.ts +1 -0
  48. package/lib/components/select-process-document/select-process-document.component.d.ts +1 -0
  49. package/lib/directives/content-changes.directive.d.ts +9 -0
  50. package/lib/directives/tooltip/tooltip-elipsify.directive.d.ts +13 -0
  51. package/lib/directives/tooltip/tooltip-renderer.directive.d.ts +2 -2
  52. package/lib/model/en.d.ts +2 -1
  53. package/lib/model/no.d.ts +2 -1
  54. package/lib/qms-ckeditor-components/common/models/qms-ckeditor-data.model.d.ts +1 -1
  55. package/lib/qms-ckeditor-components/qms-ckeditor.component.d.ts +6 -0
  56. package/package.json +1 -1
  57. package/public-api.d.ts +2 -0
  58. package/qms-angular.metadata.json +1 -1
  59. package/src/assets/qms-ckeditor-plugin/build/ckeditor.js +1 -1
  60. package/src/assets/qms-ckeditor-plugin/build/ckeditor.js.map +1 -1
  61. package/src/assets/qms-ckeditor-plugin/src/plugins/template/loadtemplatedialogcommand.js +5 -1
  62. package/src/lib/components/select-access-dialog/select-access-dialog.component.scss +103 -41
  63. package/src/lib/components/select-department/select-department.component.scss +12 -0
  64. 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
  },
@@ -158,8 +159,8 @@ const en = {
158
159
  "CONTENT": "Content",
159
160
  "TEMPLATE": "Template",
160
161
  "CONTENT_TEMPLATE": "Content Template",
161
- "CREATE_NEW_TEMPLATE": "Create new tempplate",
162
- "UPDATE_TEMPLATE": "Update tempplate",
162
+ "CREATE_NEW_TEMPLATE": "Create new template",
163
+ "UPDATE_TEMPLATE": "Update template",
163
164
  "TITLE": "Title",
164
165
  "DESCRIPTION": "Description",
165
166
  "SAVE": "Save",
@@ -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
  };
@@ -27228,6 +27323,7 @@ class SelectProcessDocumentPopupData {
27228
27323
  this.moduleName = '';
27229
27324
  this.treeData1 = [];
27230
27325
  this.treeData2 = [];
27326
+ this.checkedNodeList = [];
27231
27327
  this.selectedNode = [];
27232
27328
  this.disabledList = [];
27233
27329
  this.disabledList2 = [];
@@ -27322,6 +27418,7 @@ class SelectProcessDocumentPopupComponent {
27322
27418
  this.singleSelectedNode = data.treeConfig1.singleSelectedNode;
27323
27419
  this.disabledList = data.disabledList || [];
27324
27420
  this.disabledList2 = data.disabledList2 || [];
27421
+ this.checkedNodeList = data.checkedNodeList || [];
27325
27422
  this.splitView = data.splitView;
27326
27423
  this.isSelectOne = data.isSelectOne;
27327
27424
  this.canOnlySelectItem = data.canOnlySelectItem;
@@ -27349,6 +27446,7 @@ class SelectProcessDocumentPopupComponent {
27349
27446
  this.LANG = this.translate.getObjectLang(res);
27350
27447
  }
27351
27448
  });
27449
+ this.setSelectedData();
27352
27450
  this.globalService.searchRelated.pipe(takeUntil(this.ngUnsubscribe)).subscribe((res) => {
27353
27451
  if (res && res.length) {
27354
27452
  this.filteredOptions = this.toRelatedOptions(res);
@@ -27375,43 +27473,7 @@ class SelectProcessDocumentPopupComponent {
27375
27473
  listNodeDocs.push(newNodeDocs);
27376
27474
  }
27377
27475
  });
27378
- if (this.checkedNodeList.length) {
27379
- this.selectedData = [];
27380
- this.selectedData2 = [];
27381
- let selectProcess = [];
27382
- let selectDocument = [];
27383
- this.checkedNodeList.forEach(x => {
27384
- const newNode = {
27385
- disabled: false,
27386
- expandable: (x.itemType == DataType$1.area || x.itemType == DataType$1.folder) ? true : false,
27387
- hasChild: (x.itemType == DataType$1.area || x.itemType == DataType$1.folder) ? true : false,
27388
- id: x.id,
27389
- level: 0,
27390
- levelType: undefined,
27391
- name: x.itemName,
27392
- parentId: x.parentId
27393
- };
27394
- if (x.itemType === DataType$1.area || x.itemType === DataType$1.process) {
27395
- this.treeData1.forEach(item => {
27396
- if (item.id && x.id === item.id) {
27397
- selectProcess.push(newNode);
27398
- }
27399
- });
27400
- }
27401
- else {
27402
- this.treeData2.forEach(item => {
27403
- if (item.id && x.id === item.id) {
27404
- selectDocument.push(newNode);
27405
- }
27406
- });
27407
- }
27408
- });
27409
- this.selectedData = [...this.selectedData, ...selectProcess];
27410
- this.selectedData2 = [...this.selectedData2, ...selectDocument];
27411
- if (this.splitView && this.isSelectOne) {
27412
- this.idCheckIconSplitView = this.idToCheckSelectOne(this.checkedNodeList[0].id, this.checkedNodeList[0].parentId);
27413
- }
27414
- }
27476
+ this.setSelectedData();
27415
27477
  }
27416
27478
  });
27417
27479
  this.myControl.valueChanges.pipe(debounceTime(1000)).subscribe((val) => {
@@ -27428,6 +27490,7 @@ class SelectProcessDocumentPopupComponent {
27428
27490
  }
27429
27491
  });
27430
27492
  this.treeData1 = [...this.treeData1, ...notShownChildren];
27493
+ this.setSelectedData();
27431
27494
  }
27432
27495
  });
27433
27496
  this.globalService.getFolderChildren.pipe(takeUntil(this.ngUnsubscribe)).subscribe((res) => {
@@ -27440,11 +27503,52 @@ class SelectProcessDocumentPopupComponent {
27440
27503
  }
27441
27504
  });
27442
27505
  this.treeData2 = [...this.treeData2, ...notShownChildren];
27506
+ this.setSelectedData();
27443
27507
  }
27444
27508
  });
27445
27509
  this.itemType = this.dataType.process;
27446
27510
  this.searchOrder = this.getSearchOrder();
27447
27511
  }
27512
+ setSelectedData() {
27513
+ if (this.checkedNodeList.length) {
27514
+ this.selectedData = [];
27515
+ this.selectedData2 = [];
27516
+ let selectProcess = [];
27517
+ let selectDocument = [];
27518
+ this.checkedNodeList.forEach(x => {
27519
+ const newNode = {
27520
+ disabled: false,
27521
+ expandable: (x.itemType == DataType$1.area || x.itemType == DataType$1.folder) ? true : false,
27522
+ hasChild: (x.itemType == DataType$1.area || x.itemType == DataType$1.folder) ? true : false,
27523
+ id: x.id,
27524
+ level: 0,
27525
+ levelType: undefined,
27526
+ name: x.itemName,
27527
+ parentId: x.parentId
27528
+ };
27529
+ if (x.itemType === DataType$1.area || x.itemType === DataType$1.process) {
27530
+ this.treeData1.forEach(item => {
27531
+ if (item.id && x.id === item.id) {
27532
+ selectProcess.push(newNode);
27533
+ }
27534
+ });
27535
+ }
27536
+ else {
27537
+ this.treeData2.forEach(item => {
27538
+ if (item.id && x.id === item.id) {
27539
+ selectDocument.push(newNode);
27540
+ }
27541
+ });
27542
+ }
27543
+ });
27544
+ this.selectedData = [...this.selectedData, ...selectProcess];
27545
+ this.selectedData2 = [...this.selectedData2, ...selectDocument];
27546
+ this.documentCheckedList = [...this.selectedData, ...this.selectedData2];
27547
+ if (this.splitView && this.isSelectOne) {
27548
+ this.idCheckIconSplitView = this.idToCheckSelectOne(this.checkedNodeList[0].id, this.checkedNodeList[0].parentId);
27549
+ }
27550
+ }
27551
+ }
27448
27552
  ngAfterViewChecked() {
27449
27553
  this.cdRef.detectChanges();
27450
27554
  if (this.filteredOptions && this.filteredOptions.length) {
@@ -28973,7 +29077,7 @@ const AnimationTreeDepartment = [
28973
29077
  transition('* => *', [
28974
29078
  query(':enter', [
28975
29079
  style({ opacity: 0, transform: 'translateY(-100%)' }),
28976
- stagger(25, [
29080
+ stagger(30, [
28977
29081
  animate('0.4s cubic-bezier(0.23, 1, 0.320, 1)', style({ opacity: 1, transform: 'none' }))
28978
29082
  ])
28979
29083
  ], { optional: true })
@@ -28981,34 +29085,44 @@ const AnimationTreeDepartment = [
28981
29085
  ])
28982
29086
  ];
28983
29087
 
29088
+ class QMSDepartmentPagingModel extends PageEvent {
29089
+ constructor() {
29090
+ super();
29091
+ this.data = [];
29092
+ this.data = [];
29093
+ }
29094
+ }
29095
+
28984
29096
  class SelectDepartmentTreeComponent {
28985
- constructor(cdRef, domSanitizer, appIconService, iconRegistry, eleRef, trans) {
29097
+ constructor(cdRef, domSanitizer, appIconService, iconRegistry, eleRef, trans, treeDepartmentGlobalService) {
28986
29098
  this.cdRef = cdRef;
28987
29099
  this.domSanitizer = domSanitizer;
28988
29100
  this.appIconService = appIconService;
28989
29101
  this.iconRegistry = iconRegistry;
28990
29102
  this.eleRef = eleRef;
28991
29103
  this.trans = trans;
29104
+ this.treeDepartmentGlobalService = treeDepartmentGlobalService;
28992
29105
  this.enableIncludeChild = false;
28993
29106
  this.enableTreeSearch = false;
28994
29107
  this.isSelectOne = false;
28995
29108
  this.activeViewSearch = false;
29109
+ this.customClass = '';
29110
+ this.arrSkeleton = new Array(6).fill(0);
28996
29111
  this.treeDataSourceConfig = new QMSSelectDepartmentTreeConfig();
29112
+ this.isIncludeChildren = false;
28997
29113
  this.checkSearchMappingTree = true;
28998
29114
  this.enablePagingSearch = true;
28999
29115
  this.onSearchEvent = new EventEmitter();
29000
29116
  this.onPagingSearchEvent = new EventEmitter();
29001
29117
  this.ngUnsubscribe = new Subject();
29002
29118
  this.isLoaded = false;
29003
- this.resultGroupSelected = [];
29004
- this.resultSingleSelected = [];
29005
29119
  this.resultSearchSelected = [];
29006
29120
  this.resultSelected = [];
29007
29121
  this.getDataTree$ = new BehaviorSubject([]);
29008
29122
  this.onValueChangeEvent = new EventEmitter();
29009
- this.searchDepartment$ = new Subject();
29123
+ this.selectionNodeChangeEvent = new EventEmitter();
29124
+ this.searchDepartment$ = new BehaviorSubject(new QMSDepartmentPagingModel());
29010
29125
  this.resultSearch = [];
29011
- this.pagingResultSearch = [];
29012
29126
  this.isSelectAllResultSearch = false;
29013
29127
  this.indeterminateSearchResult = false;
29014
29128
  this.currentPaginationConfig = {
@@ -29043,6 +29157,8 @@ class SelectDepartmentTreeComponent {
29043
29157
  flatNode.itemIconSvg = node.itemIconSvg;
29044
29158
  flatNode.isFile = node.isFile;
29045
29159
  flatNode.disabled = node.disabled;
29160
+ flatNode.isGroup = node.isGroup;
29161
+ flatNode.groupId = node.groupId;
29046
29162
  this.flatTreeNodeMap.set(flatNode, node);
29047
29163
  this.nestedTreeNodeMap.set(node, flatNode);
29048
29164
  return flatNode;
@@ -29051,13 +29167,12 @@ class SelectDepartmentTreeComponent {
29051
29167
  this._getChild = (node) => node.children;
29052
29168
  this.isExpandable = (node) => node.expandable;
29053
29169
  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
29170
  // Init tree data
29058
29171
  this.getDataTree$
29059
29172
  .pipe(takeUntil(this.ngUnsubscribe))
29060
29173
  .subscribe(data => {
29174
+ if (!this.dataSource)
29175
+ return;
29061
29176
  this.dataSource.data = data;
29062
29177
  });
29063
29178
  // Register icon
@@ -29073,58 +29188,23 @@ class SelectDepartmentTreeComponent {
29073
29188
  this.LANG = this.trans.getObjectLang(res);
29074
29189
  }
29075
29190
  });
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
- });
29191
+ this._handleSearchEvent();
29192
+ this._handleActiveNodeEvent();
29193
+ this._handleItemSelectionChanged();
29119
29194
  this.getLoading$.pipe(takeUntil(this.ngUnsubscribe))
29120
29195
  .subscribe(res => {
29121
29196
  res ? this.formSearchControl.disable() : this.formSearchControl.enable();
29122
29197
  });
29123
29198
  }
29199
+ set rowsSkeleton(value) {
29200
+ this.arrSkeleton = new Array(value).fill(0);
29201
+ }
29124
29202
  set treeData(value) {
29203
+ this.updateDataTree([]);
29125
29204
  this.treeDataSourceConfig.treeData = value || [];
29126
- this.updateDataTree(this.treeDataSourceConfig.treeData);
29205
+ this._initTreeData();
29127
29206
  }
29207
+ ;
29128
29208
  set selectedList(value) {
29129
29209
  this.treeDataSourceConfig.selectedList = value || [];
29130
29210
  }
@@ -29132,10 +29212,15 @@ class SelectDepartmentTreeComponent {
29132
29212
  this.treeDataSourceConfig.selectIncludeLabel = label;
29133
29213
  }
29134
29214
  get currentTreeData() {
29135
- return this.getDataTree$.value;
29215
+ return this.getDataTree$.getValue();
29216
+ }
29217
+ ngAfterContentInit() {
29218
+ this.cdRef.detectChanges();
29219
+ }
29220
+ ngAfterViewInit() {
29221
+ this.cdRef.detectChanges();
29136
29222
  }
29137
29223
  ngOnInit() {
29138
- this._initTreeData();
29139
29224
  this._initCheckListSelected();
29140
29225
  }
29141
29226
  ngOnDestroy() {
@@ -29143,114 +29228,274 @@ class SelectDepartmentTreeComponent {
29143
29228
  this.ngUnsubscribe.complete();
29144
29229
  }
29145
29230
  _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;
29231
+ this.treeControl = new FlatTreeControl(this.getLevel, this.isExpandable);
29232
+ this.treeFlattener = new MatTreeFlattener(this._transformer, this.getLevel, this.isExpandable, this._getChild);
29233
+ this.dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);
29234
+ const _treeDataInput = _.cloneDeep(this.treeDataSourceConfig.treeData);
29235
+ if (!_treeDataInput.length)
29236
+ return;
29237
+ const rootNode = _treeDataInput.filter(item => !item.parentId)
29238
+ .map((item, _index) => {
29239
+ const node = {
29240
+ id: item.id,
29241
+ name: item.name,
29242
+ markedGetChildren: item.markedGetChildren,
29243
+ children: [],
29244
+ isFile: false,
29245
+ itemIcon: item.itemIcon,
29246
+ itemMatIcon: item.itemMatIcon,
29247
+ itemIconSvg: item.itemIconSvg,
29248
+ parentId: item.parentId,
29249
+ isGroup: false
29176
29250
  };
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
- }
29251
+ return node;
29252
+ });
29253
+ if (!rootNode.length)
29254
+ throw ('Data invalid.');
29255
+ const invalidItems = _treeDataInput.filter(item => item.id == item.parentId) || [];
29256
+ if (invalidItems.length) {
29257
+ throw (`data ${JSON.stringify(invalidItems)} invalid`);
29258
+ }
29259
+ this.updateDataTree(rootNode);
29260
+ const groupResult = _treeDataInput.filter(x => x.parentId).reduce((result, currentValue) => {
29261
+ (result[currentValue['parentId']] = result[currentValue['parentId']] || []).push(currentValue);
29262
+ return result;
29263
+ }, {});
29264
+ const checkValidGroup = (id) => {
29265
+ const parents = [];
29266
+ let parent = _treeDataInput.find(x => x.id == id);
29267
+ while (parent === null || parent === void 0 ? void 0 : parent.id) {
29268
+ parents.push(parent);
29269
+ parent = _treeDataInput.find(x => x.id == (parent === null || parent === void 0 ? void 0 : parent.parentId));
29270
+ }
29271
+ return parents.some(x => !x.parentId);
29272
+ };
29273
+ if (!(rootNode && !!rootNode.length))
29274
+ return;
29275
+ let groupResultKey = Object.keys(groupResult).filter(checkValidGroup);
29276
+ while (groupResultKey.length) {
29277
+ groupResultKey = groupResultKey.filter((key) => {
29278
+ const parentFlatNode = this.treeControl.dataNodes.find(node => node.id === key);
29279
+ if (parentFlatNode) {
29280
+ const parentNestedNode = this.convertToNestedNode(parentFlatNode);
29281
+ parentNestedNode.markedGetChildren = true;
29282
+ parentNestedNode.children = _.cloneDeep(groupResult[key]);
29283
+ parentNestedNode.childCount = parentNestedNode.children.length;
29284
+ parentNestedNode.isGroup = false;
29285
+ this.updateDataTree(this.currentTreeData);
29286
+ groupResult[key] = [];
29287
+ return false;
29288
+ }
29289
+ return true;
29290
+ });
29195
29291
  }
29292
+ this.getLoading$.next(false);
29293
+ this._initCheckListSelected();
29196
29294
  }
29197
29295
  _initCheckListSelected() {
29198
29296
  if (!this.treeDataSourceConfig.selectedList.length)
29199
29297
  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 => {
29298
+ const selectedList = this.treeDataSourceConfig.selectedList;
29299
+ selectedList.forEach(item => {
29203
29300
  var _a;
29204
- const flatNode = this.treeControl.dataNodes.find(node => node.id === item.id);
29205
- if (flatNode) {
29206
- this.checkListSelection.select(flatNode);
29301
+ const node = this.treeControl.dataNodes.find(x => x.id === item.id);
29302
+ if (node) {
29303
+ const nestedNode = this.convertToNestedNode(node);
29304
+ nestedNode.isGroup = item.isGroup;
29305
+ nestedNode.groupId = item.groupId;
29306
+ this.checkListSelection.select(node);
29307
+ this._handleCheckNode(node);
29207
29308
  ((_a = item.children) === null || _a === void 0 ? void 0 : _a.length) && item.children.forEach(child => {
29208
29309
  const node = this.treeControl.dataNodes.find(_x => _x.id === child.id);
29209
29310
  if (node) {
29210
- this.checkListSelection.select(node);
29211
29311
  this.onExpandAllParent(node);
29212
29312
  }
29213
29313
  });
29214
- this.onExpandAllParent(flatNode);
29314
+ this.onExpandAllParent(node);
29215
29315
  }
29216
- this.resultSelected = [...this.resultSingleSelected, ...this.resultGroupSelected];
29217
- this.onValueChangeEvent.emit(this.resultSelected);
29218
29316
  });
29317
+ this.cdRef.detectChanges();
29219
29318
  }
29220
- updateDataTree(data) {
29221
- this.getDataTree$.next(data);
29222
- }
29223
- setResultSearch(data) {
29224
- this.searchDepartment$.next(data);
29225
- }
29226
- onExpandNode(node) {
29227
- }
29228
- onOptionSearchSelected(value) {
29229
- const flatNode = this.treeControl.dataNodes.find(node => node.id === value.id);
29230
- if (!flatNode)
29231
- return;
29232
- this.checkListSelection.select(flatNode);
29233
- this._handleCheckNode(flatNode);
29234
- this.onScrollIntoNode(flatNode.id);
29235
- }
29236
- onSlideToggleChange() {
29237
- }
29238
- displayWhenSelectDepartmentOption($event) {
29239
- return '';
29319
+ //Handle item selection changed
29320
+ _handleItemSelectionChanged() {
29321
+ this.checkListSelection.changed
29322
+ .pipe(takeUntil(this.ngUnsubscribe))
29323
+ .subscribe(({ added, removed }) => {
29324
+ const checkExistInResult = (node) => this.resultSelected.findIndex(x => x.id === node.id) > -1;
29325
+ if (added.length) {
29326
+ added.forEach(node => {
29327
+ const nestedNode = this.convertToNestedNode(node);
29328
+ nestedNode.children = [];
29329
+ nestedNode.childCount = this.getListChildrenOfNode(node).length;
29330
+ const existGroup = this._getAllParentNode(node).map(item => this.convertToNestedNode(item)).find(x => x.isGroup);
29331
+ if (!!existGroup) {
29332
+ nestedNode.groupId = existGroup.id;
29333
+ if (!existGroup.children.some(x => x.id === nestedNode.id)) {
29334
+ existGroup.children.push(nestedNode);
29335
+ this._onSelectionNodeChangeEvent('updated', [existGroup]);
29336
+ }
29337
+ if (!checkExistInResult(existGroup)) {
29338
+ this.resultSelected.push(existGroup);
29339
+ this._onSelectionNodeChangeEvent('added', [existGroup]);
29340
+ }
29341
+ this.resultSelected.forEach((item, index) => {
29342
+ if (item.groupId === existGroup.id) {
29343
+ this.resultSelected.splice(index, 1);
29344
+ this._onSelectionNodeChangeEvent('removed', [item]);
29345
+ }
29346
+ });
29347
+ return;
29348
+ }
29349
+ if (checkExistInResult(node))
29350
+ return;
29351
+ this.resultSelected.push(nestedNode);
29352
+ this._onSelectionNodeChangeEvent('added', [nestedNode]);
29353
+ });
29354
+ }
29355
+ if (removed.length) {
29356
+ removed.forEach(node => {
29357
+ const nestedNode = this.convertToNestedNode(node);
29358
+ const children = this.getListChildrenOfNode(node);
29359
+ if (nestedNode.isGroup) {
29360
+ const _item = this.resultSelected.find(x => x.id === node.id);
29361
+ if (!_item)
29362
+ return;
29363
+ children.forEach(item => {
29364
+ item.groupId = null;
29365
+ });
29366
+ this.resultSelected.splice(this.resultSelected.indexOf(_item), 1);
29367
+ this._onSelectionNodeChangeEvent('removed', [_item]);
29368
+ return;
29369
+ }
29370
+ const group = this.resultSelected.find(x => x.id === nestedNode.groupId);
29371
+ if (!group) {
29372
+ const _item = this.resultSelected.find(x => x.id === node.id);
29373
+ if (!_item)
29374
+ return;
29375
+ this.resultSelected.splice(this.resultSelected.indexOf(_item), 1);
29376
+ this._onSelectionNodeChangeEvent('removed', [_item]);
29377
+ return;
29378
+ }
29379
+ const arrCheck = this.getListChildrenOfNode(node).concat(node);
29380
+ arrCheck.forEach(item => {
29381
+ const _node = this.treeControl.dataNodes.find(x => x.id === item.id);
29382
+ if (group.children.some(x => x.id === _node.id && !this.checkListSelection.isSelected(_node))) {
29383
+ const _item = group.children.find(x => x.id === item.id);
29384
+ if (!_item)
29385
+ return;
29386
+ group.children.splice(group.children.indexOf(_item), 1);
29387
+ this._onSelectionNodeChangeEvent('updated', [group]);
29388
+ }
29389
+ });
29390
+ });
29391
+ }
29392
+ this.onValueChangeEvent.emit(this.resultSelected);
29393
+ });
29240
29394
  }
29241
- onCheckNode(node) {
29242
- this.checkListSelection.toggle(node);
29243
- if (this.isSelectOne) {
29244
- this._handleSelectOne(node);
29245
- }
29246
- else {
29247
- this._handleCheckNode(node);
29395
+ _onSelectionNodeChangeEvent(state, data) {
29396
+ switch (state) {
29397
+ case 'removed':
29398
+ this.selectionNodeChangeEvent.emit({
29399
+ removed: data,
29400
+ added: [],
29401
+ updated: [],
29402
+ source: new SelectionModel(true, this.resultSelected)
29403
+ });
29404
+ break;
29405
+ case 'updated':
29406
+ this.selectionNodeChangeEvent.emit({
29407
+ removed: [],
29408
+ added: [],
29409
+ updated: data,
29410
+ source: new SelectionModel(true, this.resultSelected)
29411
+ });
29412
+ break;
29413
+ case 'added':
29414
+ this.selectionNodeChangeEvent.emit({
29415
+ removed: [],
29416
+ added: data,
29417
+ updated: [],
29418
+ source: new SelectionModel(true, this.resultSelected)
29419
+ });
29420
+ break;
29421
+ default:
29422
+ return;
29248
29423
  }
29249
- this.onValueChangeEvent.emit(this.resultSelected);
29250
- this._mapToResultSearch();
29251
- this._checkStateCheckboxAllSearch();
29252
29424
  }
29253
- _handleSelectOne(node) {
29425
+ _handleSearchEvent() {
29426
+ this.searchDepartment$
29427
+ .pipe(takeUntil(this.ngUnsubscribe))
29428
+ .subscribe(result => {
29429
+ this.resultSearch = [];
29430
+ if (result && result.length) {
29431
+ result.data.forEach(item => {
29432
+ const node = this.treeControl.dataNodes.find(node => node.id === item.id);
29433
+ const parents = node ? this._getAllParentNode(node) : [];
29434
+ this.resultSearch.push(Object.assign(Object.assign({}, item), { disabled: this.checkSearchMappingTree && !node, path: [
29435
+ ...(parents.map((x, index) => ({
29436
+ id: x.id,
29437
+ name: x.name,
29438
+ })).reverse() || []),
29439
+ {
29440
+ id: item.id,
29441
+ name: item.name,
29442
+ }
29443
+ ] }));
29444
+ });
29445
+ this.getLoading$.next(false);
29446
+ this.textResultSearch = this.formSearchControl.value;
29447
+ this._mapToResultSearch();
29448
+ this._checkStateCheckboxAllSearch();
29449
+ this.setIndexView(1);
29450
+ }
29451
+ });
29452
+ }
29453
+ _handleActiveNodeEvent() {
29454
+ this.scrollToNodeEvent$.pipe(takeUntil(this.ngUnsubscribe), switchMap((val) => {
29455
+ const delayTiming = this.indexView === 1 ? 700 : 0;
29456
+ this.setIndexView(0);
29457
+ return of(val).pipe(delay(delayTiming));
29458
+ })).subscribe(res => {
29459
+ this.onScrollIntoNode(res);
29460
+ });
29461
+ this.getActiveNodeEvent$.pipe(takeUntil(this.ngUnsubscribe), switchMap(val => {
29462
+ this.activeNode = val;
29463
+ return timer(1500);
29464
+ })).subscribe(_ => {
29465
+ this.activeNode = '';
29466
+ });
29467
+ }
29468
+ updateDataTree(data) {
29469
+ this.getDataTree$.next(data);
29470
+ }
29471
+ setResultSearch(data) {
29472
+ this.getLoading$.next(false);
29473
+ this.searchDepartment$.next(data);
29474
+ }
29475
+ onExpandNode(node) {
29476
+ }
29477
+ onOptionSearchSelected(value) {
29478
+ const flatNode = this.treeControl.dataNodes.find(node => node.id === value.id);
29479
+ if (!flatNode)
29480
+ return;
29481
+ this.checkListSelection.select(flatNode);
29482
+ this._handleCheckNode(flatNode);
29483
+ this.onScrollIntoNode(flatNode.id);
29484
+ }
29485
+ displayWhenSelectDepartmentOption($event) {
29486
+ return '';
29487
+ }
29488
+ onCheckNode(node) {
29489
+ this.checkListSelection.toggle(node);
29490
+ if (this.isSelectOne) {
29491
+ this._handleSelectOne(node);
29492
+ }
29493
+ else {
29494
+ this._handleCheckNode(node);
29495
+ }
29496
+ this._checkStateCheckboxAllSearch();
29497
+ }
29498
+ _handleSelectOne(node) {
29254
29499
  const selected = this.checkListSelection.selected.filter(x => x.id !== node.id);
29255
29500
  this.checkListSelection.deselect(...selected);
29256
29501
  if (this.checkListSelection.isSelected(node)) {
@@ -29274,7 +29519,6 @@ class SelectDepartmentTreeComponent {
29274
29519
  this.checkListSelection.deselect(flatNode);
29275
29520
  flatNode && this._handleCheckNode(flatNode);
29276
29521
  this._checkStateCheckboxAllSearch();
29277
- this.onValueChangeEvent.emit(this.resultSelected);
29278
29522
  }
29279
29523
  isIndeterminate(node) {
29280
29524
  const childSelected = this.getListChildrenOfNode(node).filter(item => this.checkListSelection.isSelected(item));
@@ -29285,73 +29529,37 @@ class SelectDepartmentTreeComponent {
29285
29529
  return listCheck.every(item => this.checkListSelection.isSelected(item));
29286
29530
  }
29287
29531
  _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) {
29532
+ const isSelected = this.checkListSelection.isSelected(node);
29533
+ const childSelected = this.getChildrenSelected(node);
29306
29534
  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 }));
29535
+ if (isSelected) {
29536
+ // Check existed group
29537
+ const existedGroup = this._getAllParentNode(node).find(x => this.convertToNestedNode(x).isGroup);
29538
+ if (!this.isIncludeChildren) {
29539
+ // nestedNode.isGroup = false;
29540
+ nestedNode.groupId = existedGroup === null || existedGroup === void 0 ? void 0 : existedGroup.id;
29541
+ return;
29542
+ }
29543
+ const children = this.getListChildrenOfNode(node);
29544
+ nestedNode.isGroup = !existedGroup && !!children.length;
29545
+ if (!children.length)
29546
+ return;
29547
+ children.forEach(x => {
29548
+ const _node = this.convertToNestedNode(x);
29549
+ _node.groupId = existedGroup ? existedGroup.id : node.id;
29550
+ _node.isGroup = false;
29551
+ });
29552
+ this.checkListSelection.deselect(...childSelected.map(this.resetNode));
29553
+ this.checkListSelection.select(...children.map(this.resetNode));
29554
+ return;
29315
29555
  }
29316
- this._checkGroupSelected(childrenSelected);
29317
- }
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
- });
29556
+ const deselectNodes = (this.isIncludeChildren || nestedNode.isGroup) ? childSelected : [node];
29557
+ this.checkListSelection.deselect(...deselectNodes);
29558
+ nestedNode.isGroup = false;
29334
29559
  }
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;
29560
+ resetNode(node) {
29561
+ node.isGroup = false;
29562
+ return node;
29355
29563
  }
29356
29564
  getChildrenSelected(node) {
29357
29565
  return this.getListChildrenOfNode(node).filter(x => this.checkListSelection.isSelected(x));
@@ -29363,23 +29571,11 @@ class SelectDepartmentTreeComponent {
29363
29571
  return flatNodeList.map(item => this.convertToNestedNode(item));
29364
29572
  }
29365
29573
  convertToNestedNode(node) {
29366
- return this.flatTreeNodeMap.get(node);
29574
+ return this.flatTreeNodeMap.get(node) || {};
29367
29575
  }
29368
29576
  convertToFlatNode(node) {
29369
29577
  return this.nestedTreeNodeMap.get(node);
29370
29578
  }
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
29579
  _getAllParentNode(node) {
29384
29580
  const listParent = [];
29385
29581
  let parent = this._getParentNode(node);
@@ -29425,12 +29621,13 @@ class SelectDepartmentTreeComponent {
29425
29621
  this.getActiveNodeEvent$.next(nodeId);
29426
29622
  }
29427
29623
  onSearch() {
29428
- if (this.formSearchControl.value) {
29429
- this.getLoading$.next(true);
29430
- this.setIndexView(1);
29431
- this.onSearchEvent.emit(this.formSearchControl.value);
29624
+ this.getLoading$.next(true);
29625
+ this.setIndexView(1);
29626
+ this.onSearchEvent.emit(this.formSearchControl.value);
29627
+ if (!this.paginatorSearch)
29432
29628
  return;
29433
- }
29629
+ this.paginatorSearch.changePage(0);
29630
+ this.paginatorSearch.renderDisplayNumberOfpages();
29434
29631
  }
29435
29632
  onClickResultItem(item) {
29436
29633
  const node = this.treeControl.dataNodes.find(x => item.id === x.id);
@@ -29454,7 +29651,6 @@ class SelectDepartmentTreeComponent {
29454
29651
  }
29455
29652
  this._handleCheckResutlSearch(item);
29456
29653
  this._checkStateCheckboxAllSearch();
29457
- this.onValueChangeEvent.emit(this.resultSelected);
29458
29654
  }
29459
29655
  _mapToResultSearch() {
29460
29656
  if (!!this.resultSearch.length)
@@ -29472,43 +29668,27 @@ class SelectDepartmentTreeComponent {
29472
29668
  }
29473
29669
  onSelectAllSearchResult(checked) {
29474
29670
  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
- }
29671
+ this.resultSearch.length && this.resultSearch.forEach(item => {
29672
+ if (this.isSelectAllResultSearch) {
29673
+ !this.checkListSelectionSearch.isSelected(item) && this.checkListSelectionSearch.select(item);
29674
+ }
29675
+ else {
29676
+ this.checkListSelectionSearch.deselect(item);
29677
+ }
29678
+ this._handleCheckResutlSearch(item);
29679
+ });
29499
29680
  this._checkStateCheckboxAllSearch();
29500
29681
  this.onValueChangeEvent.emit(this.resultSelected);
29501
29682
  }
29502
29683
  _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));
29684
+ this.isSelectAllResultSearch = !!this.resultSearch.length && this.resultSearch.every(x => this.checkListSelectionSearch.isSelected(x));
29685
+ this.indeterminateSearchResult = !this.isSelectAllResultSearch && !!this.resultSearch.length && this.resultSearch.some(x => this.checkListSelectionSearch.isSelected(x));
29505
29686
  }
29506
29687
  isDisableChecboxAllSearch() {
29507
- return this.pagingResultSearch.length && this.pagingResultSearch.every(x => x.disabled);
29688
+ return this.resultSearch && this.resultSearch.every(x => x.disabled);
29508
29689
  }
29509
29690
  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;
29691
+ this.getLoading$.next(true);
29512
29692
  this._checkStateCheckboxAllSearch();
29513
29693
  this.onPagingSearchEvent.emit(val);
29514
29694
  }
@@ -29517,7 +29697,7 @@ class SelectDepartmentTreeComponent {
29517
29697
  }
29518
29698
  setIndexView(index) {
29519
29699
  if (index === 1) {
29520
- this.treeDataSourceConfig.includeChildren = false;
29700
+ this.isIncludeChildren = false;
29521
29701
  }
29522
29702
  this.indexView = index;
29523
29703
  }
@@ -29525,17 +29705,17 @@ class SelectDepartmentTreeComponent {
29525
29705
  return JSON.parse(localStorage.getItem('selectedNode'));
29526
29706
  }
29527
29707
  setSelectedNodeStorage(node) {
29528
- this.treeDataSourceConfig.includeChildren && localStorage.setItem('selectedNode', JSON.stringify(node));
29708
+ this.isIncludeChildren && localStorage.setItem('selectedNode', JSON.stringify(node));
29529
29709
  }
29530
29710
  }
29531
29711
  SelectDepartmentTreeComponent.decorators = [
29532
29712
  { type: Component, args: [{
29533
29713
  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",
29714
+ 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
29715
  animations: [
29536
29716
  AnimationTreeDepartment
29537
29717
  ],
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%)}}"]
29718
+ 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
29719
  },] }
29540
29720
  ];
29541
29721
  SelectDepartmentTreeComponent.ctorParameters = () => [
@@ -29544,13 +29724,17 @@ SelectDepartmentTreeComponent.ctorParameters = () => [
29544
29724
  { type: QMSIconRegistryService },
29545
29725
  { type: MatIconRegistry },
29546
29726
  { type: ElementRef },
29547
- { type: TranslateLibraryService }
29727
+ { type: TranslateLibraryService },
29728
+ { type: QMSSelectDepartmentTreeGlobalService }
29548
29729
  ];
29549
29730
  SelectDepartmentTreeComponent.propDecorators = {
29550
29731
  enableIncludeChild: [{ type: Input }],
29551
29732
  enableTreeSearch: [{ type: Input }],
29552
29733
  isSelectOne: [{ type: Input }],
29553
29734
  activeViewSearch: [{ type: Input }],
29735
+ height: [{ type: Input }],
29736
+ customClass: [{ type: Input }],
29737
+ rowsSkeleton: [{ type: Input }],
29554
29738
  treeData: [{ type: Input }],
29555
29739
  selectedList: [{ type: Input }],
29556
29740
  selectIncludeLabel: [{ type: Input }],
@@ -29558,7 +29742,9 @@ SelectDepartmentTreeComponent.propDecorators = {
29558
29742
  enablePagingSearch: [{ type: Input }],
29559
29743
  onSearchEvent: [{ type: Output }],
29560
29744
  onPagingSearchEvent: [{ type: Output }],
29561
- onValueChangeEvent: [{ type: Output }]
29745
+ onValueChangeEvent: [{ type: Output }],
29746
+ selectionNodeChangeEvent: [{ type: Output }],
29747
+ paginatorSearch: [{ type: ViewChild, args: ['paginatorSearch',] }]
29562
29748
  };
29563
29749
 
29564
29750
  class QMSSelectDepartmentTreeModule {
@@ -29625,6 +29811,16 @@ const SelectDepartmentAnimationTrigger = [
29625
29811
  animate('0.3s ease-out', style({ opacity: 1 }))
29626
29812
  ]),
29627
29813
  ]),
29814
+ trigger('inOutAnimation_2', [
29815
+ transition(':enter', [
29816
+ style({ opacity: 0, transform: 'translateX(-10px)' }),
29817
+ animate('0.3s ease-out', style({ opacity: 1, transform: 'none' }))
29818
+ ]),
29819
+ transition(':leave', [
29820
+ style({ opacity: 1, filter: 'blur(5px)' }),
29821
+ animate('0.3s ease-out', style({ opacity: 0 }))
29822
+ ]),
29823
+ ]),
29628
29824
  trigger('rotateAnimation', [
29629
29825
  transition(':enter', [
29630
29826
  style({ transform: 'scale(0) rotate(-180deg)' }),
@@ -29644,42 +29840,36 @@ const SelectDepartmentAnimationTrigger = [
29644
29840
  style({ maxHeight: '175px', minHeight: '40px', opacity: 1 }),
29645
29841
  animate('0.1s ease-out', style({ minHeight: 0, maxHeight: 0, opacity: 0 }))
29646
29842
  ])
29843
+ ]),
29844
+ trigger('updateItemAnimation', [
29845
+ transition('void => *', [animate('0.3s', keyframes([
29846
+ style({
29847
+ boxShadow: 'rgba(0, 0, 0, 0.15) 1.95px 1.95px 2.6px',
29848
+ background: '#c8d6ea',
29849
+ offset: 0
29850
+ }),
29851
+ style({
29852
+ boxShadow: `*`,
29853
+ background: '*',
29854
+ offset: 1
29855
+ })
29856
+ ]))]),
29647
29857
  ])
29648
29858
  ];
29649
29859
 
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
29860
  const ɵ0$1 = {
29670
29861
  clickAction: 'noop'
29671
29862
  };
29672
29863
  class SelectDepartmentComponent {
29673
- constructor(selectDepartmentService, cdRef, dialogRef, data, trans) {
29674
- this.selectDepartmentService = selectDepartmentService;
29864
+ constructor(cdRef, dialogRef, data, trans) {
29675
29865
  this.cdRef = cdRef;
29676
29866
  this.dialogRef = dialogRef;
29677
29867
  this.data = data;
29678
29868
  this.trans = trans;
29679
29869
  this.ngUnsubscribe = new Subject();
29870
+ this.onPagingEvent = new EventEmitter();
29680
29871
  this.popupData = new SelectDepartmentPopupData();
29681
29872
  this.groupIncludeChild = [];
29682
- this.singleItem = [];
29683
29873
  this.resultSelected = [];
29684
29874
  this.onSearchEvent = new EventEmitter();
29685
29875
  this.resultSearch = [];
@@ -29690,12 +29880,7 @@ class SelectDepartmentComponent {
29690
29880
  }
29691
29881
  });
29692
29882
  // 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
- });
29883
+ this.popupData = _.cloneDeep(this.data);
29699
29884
  }
29700
29885
  ngAfterViewInit() {
29701
29886
  this.cdRef.detectChanges();
@@ -29724,9 +29909,17 @@ class SelectDepartmentComponent {
29724
29909
  onResultDepartmentChange(data) {
29725
29910
  this.resultSelected = data.map(item => {
29726
29911
  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 });
29912
+ 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
29913
  });
29729
29914
  }
29915
+ generateTootip(node) {
29916
+ return node.isGroup ? this.formatString(this.LANG.TOOLTIP_INCLUDE_SUB_DEPARTMENT, node.name, node.children.length.toString()) : node.name;
29917
+ }
29918
+ updateResultSearch(data) {
29919
+ if (!this.treeDepartment)
29920
+ return;
29921
+ this.treeDepartment.setResultSearch(data);
29922
+ }
29730
29923
  formatString(...replacements) {
29731
29924
  let result = arguments[0];
29732
29925
  for (let i = 0; i < arguments.length - 1; i++) {
@@ -29739,26 +29932,26 @@ class SelectDepartmentComponent {
29739
29932
  SelectDepartmentComponent.decorators = [
29740
29933
  { type: Component, args: [{
29741
29934
  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",
29935
+ 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
29936
  providers: [
29744
29937
  {
29745
29938
  provide: MAT_CHECKBOX_DEFAULT_OPTIONS,
29746
29939
  useValue: ɵ0$1
29747
29940
  }
29748
29941
  ],
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}"]
29942
+ animations: [SelectDepartmentAnimationTrigger],
29943
+ 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
29944
  },] }
29752
29945
  ];
29753
29946
  SelectDepartmentComponent.ctorParameters = () => [
29754
- { type: QMSSelectDepartmentGlobalService },
29755
29947
  { type: ChangeDetectorRef },
29756
29948
  { type: MatDialogRef },
29757
29949
  { type: SelectDepartmentPopupData, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] },
29758
29950
  { type: TranslateLibraryService }
29759
29951
  ];
29760
29952
  SelectDepartmentComponent.propDecorators = {
29761
- treeDepartment: [{ type: ViewChild, args: ['treeDepartment',] }]
29953
+ treeDepartment: [{ type: ViewChild, args: ['treeDepartment',] }],
29954
+ onPagingEvent: [{ type: Output }]
29762
29955
  };
29763
29956
 
29764
29957
  class QMSSelectDepartmentModule {
@@ -29766,7 +29959,7 @@ class QMSSelectDepartmentModule {
29766
29959
  QMSSelectDepartmentModule.decorators = [
29767
29960
  { type: NgModule, args: [{
29768
29961
  declarations: [
29769
- SelectDepartmentComponent
29962
+ SelectDepartmentComponent,
29770
29963
  ],
29771
29964
  imports: [
29772
29965
  CommonModule,
@@ -29801,6 +29994,25 @@ QMSSelectDepartmentModule.decorators = [
29801
29994
  },] }
29802
29995
  ];
29803
29996
 
29997
+ class QMSSelectDepartmentGlobalService {
29998
+ constructor() {
29999
+ this.getDataTree$ = new BehaviorSubject([]);
30000
+ this.searchDepartment$ = new Subject();
30001
+ }
30002
+ updateDataTree(data) {
30003
+ this.getDataTree$.next(data);
30004
+ }
30005
+ setResultSearch(data) {
30006
+ this.searchDepartment$.next(data);
30007
+ }
30008
+ }
30009
+ QMSSelectDepartmentGlobalService.ɵprov = i0.ɵɵdefineInjectable({ factory: function QMSSelectDepartmentGlobalService_Factory() { return new QMSSelectDepartmentGlobalService(); }, token: QMSSelectDepartmentGlobalService, providedIn: "root" });
30010
+ QMSSelectDepartmentGlobalService.decorators = [
30011
+ { type: Injectable, args: [{
30012
+ providedIn: 'root'
30013
+ },] }
30014
+ ];
30015
+
29804
30016
  var OptionSelectAccessEnum;
29805
30017
  (function (OptionSelectAccessEnum) {
29806
30018
  OptionSelectAccessEnum[OptionSelectAccessEnum["PERSON"] = 0] = "PERSON";
@@ -29808,6 +30020,60 @@ var OptionSelectAccessEnum;
29808
30020
  OptionSelectAccessEnum[OptionSelectAccessEnum["DEPARTMENT"] = 2] = "DEPARTMENT";
29809
30021
  })(OptionSelectAccessEnum || (OptionSelectAccessEnum = {}));
29810
30022
 
30023
+ const SelectAccessAnimationTrigger = [
30024
+ trigger('inOutAnimation', [
30025
+ transition(':enter', [
30026
+ style({ opacity: 0 }),
30027
+ animate('0.3s ease-out', style({ opacity: 1 }))
30028
+ ])
30029
+ ]),
30030
+ trigger('inOutAnimation_2', [
30031
+ transition(':enter', [
30032
+ style({ opacity: 0, transform: 'translateY(-5px)' }),
30033
+ animate('0.2s 0.15s ease-in', style({ opacity: 1, transform: 'none' }))
30034
+ ]),
30035
+ transition(':leave', [
30036
+ style({ opacity: 1, filter: 'blur(5px)', transform: 'none' }),
30037
+ animate('0.15s ease-out', style({ opacity: 0, transform: 'translateX(-10px)' }))
30038
+ ]),
30039
+ ]),
30040
+ trigger('listAnimation', [
30041
+ transition('* => *', [
30042
+ query(':enter', [
30043
+ style({ opacity: 0, transform: 'translateY(-100%)' }),
30044
+ stagger(30, [
30045
+ animate('0.4s cubic-bezier(0.23, 1, 0.320, 1)', style({ opacity: 1, transform: 'none' }))
30046
+ ])
30047
+ ], { optional: true })
30048
+ ])
30049
+ ]),
30050
+ trigger('updateItemAnimation', [
30051
+ transition('void => *', [animate('0.3s', keyframes([
30052
+ style({
30053
+ boxShadow: 'rgba(0, 0, 0, 0.15) 1.95px 1.95px 2.6px',
30054
+ background: '#c8d6ea',
30055
+ offset: 0
30056
+ }),
30057
+ style({
30058
+ boxShadow: `*`,
30059
+ background: '*',
30060
+ offset: 1
30061
+ })
30062
+ ]))]),
30063
+ ])
30064
+ ];
30065
+
30066
+ class QMSAccessPagingChangeModel extends PageEvent {
30067
+ }
30068
+ class QMSAccessPagingModel extends PageEvent {
30069
+ constructor() {
30070
+ super();
30071
+ this.data = [];
30072
+ this.pageSize = 10;
30073
+ this.pageIndex = 0;
30074
+ }
30075
+ }
30076
+
29811
30077
  class QMSSelectAccessResult {
29812
30078
  constructor() {
29813
30079
  this.userGroups = [];
@@ -29817,11 +30083,11 @@ class QMSSelectAccessResult {
29817
30083
  }
29818
30084
  class QMSSelectAccessData {
29819
30085
  constructor() {
29820
- this.accessUserGroups = [];
29821
30086
  this.accessDepartments = [];
29822
- this.accessPersons = [];
29823
30087
  this.selectedData = new QMSSelectAccessResult();
29824
30088
  this.selectIncludeChildTreeLabel = '';
30089
+ this.accessPersons = new QMSAccessPagingModel();
30090
+ this.accessUserGroups = new QMSAccessPagingModel();
29825
30091
  }
29826
30092
  }
29827
30093
 
@@ -29843,25 +30109,6 @@ QMSSelectAccessGlobalService.decorators = [
29843
30109
  },] }
29844
30110
  ];
29845
30111
 
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
30112
  class QMSSelectAccessDialog {
29866
30113
  constructor() {
29867
30114
  this.enableSelectPerson = true;
@@ -29878,6 +30125,7 @@ class QMSSelectAccessDialog {
29878
30125
  };
29879
30126
  this.titleDialog = '';
29880
30127
  this.titleResult = '';
30128
+ this.sizeUpdateDefault = '1024px';
29881
30129
  }
29882
30130
  }
29883
30131
 
@@ -29895,57 +30143,75 @@ class QMSSelectAccessDialogComponent {
29895
30143
  this.optionSelect = new FormControl();
29896
30144
  this.OPTION_ENUM = OptionSelectAccessEnum;
29897
30145
  this.options = [];
30146
+ this._departmentSelected = [];
29898
30147
  this.userGroupForm = new FormControl('');
29899
30148
  this.getLoading$ = new BehaviorSubject(false);
29900
30149
  this.onSearchPersonEvent = new EventEmitter();
29901
30150
  this.onSearchPersonFreeTextEvent = new EventEmitter();
29902
30151
  this.onSearchUserGroupEvent = new EventEmitter();
29903
30152
  this.onSearchDepartmentEvent = new EventEmitter();
30153
+ this.onPagingEvent = new EventEmitter();
30154
+ this.onSelectOptionChange$ = new Subject();
30155
+ this.departmentResultClone = [];
29904
30156
  /** list filtered by search keyword */
30157
+ this.optionFilterPersonDataGlobal = {
30158
+ departments: [],
30159
+ userGroups: []
30160
+ };
29905
30161
  this.filteredSearchTextBox = {
29906
- department: new ReplaySubject(1),
29907
- role: new ReplaySubject(1),
30162
+ department: new BehaviorSubject([]),
30163
+ userGroup: new BehaviorSubject([]),
29908
30164
  };
29909
- this.getPerson$ = new BehaviorSubject([]);
29910
- this.getUserGroup$ = new BehaviorSubject([]);
30165
+ this.getPerson$ = new BehaviorSubject(new QMSAccessPagingModel());
30166
+ this.getUserGroup$ = new BehaviorSubject(new QMSAccessPagingModel());
29911
30167
  this.PAGINATION_SIZE = PaginationSize;
30168
+ this.PAGE_SIZE_OPTION = [5, 10, 15, 20, 25, 100];
29912
30169
  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();
30170
+ this.arrSkeleton = new Array(8).fill(0);
30171
+ this.resultAccess = _.cloneDeep(Object.assign(Object.assign({}, this.dialogData.data.selectedData), { departments: [] }));
30172
+ this._departmentSelected = _.cloneDeep(this.dialogData.data.selectedData.departments);
30173
+ }
30174
+ get selectedDepartments() {
30175
+ const departmentSelected = [];
30176
+ this._departmentSelected.forEach(x => {
30177
+ var _a;
30178
+ departmentSelected.push({
30179
+ id: x.id,
30180
+ groupId: x.groupId,
30181
+ isGroup: x.isGroup
30182
+ });
30183
+ if (!((_a = x.children) === null || _a === void 0 ? void 0 : _a.length))
30184
+ return;
30185
+ departmentSelected.push(...(x.children.map(item => ({
30186
+ id: item.id,
30187
+ groupId: item.groupId,
30188
+ isGroup: item.isGroup
30189
+ }))));
29923
30190
  });
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);
30191
+ return departmentSelected || [];
29929
30192
  }
29930
30193
  set tree(data) {
29931
- if (data) {
29932
- this.treeDepartment = data;
29933
- }
30194
+ this.treeDepartment = data;
29934
30195
  }
29935
30196
  get personFiltered() {
30197
+ var _a;
29936
30198
  const persons = this.getPerson$.value;
29937
30199
  const ids = this.resultAccess.persons.map(x => x.id);
29938
- persons.forEach(x => x.selected = ids.includes(x.id));
29939
- return persons;
30200
+ (_a = persons.data) === null || _a === void 0 ? void 0 : _a.forEach(x => x.selected = ids.includes(x.id));
30201
+ return persons.data || [];
29940
30202
  }
29941
30203
  get userGroupFiltered() {
30204
+ var _a;
29942
30205
  const userGroups = this.getUserGroup$.value;
29943
30206
  const ids = this.resultAccess.userGroups.map(x => x.id);
29944
- userGroups.forEach(x => x.selected = ids.includes(x.id));
29945
- return userGroups;
30207
+ (_a = userGroups.data) === null || _a === void 0 ? void 0 : _a.forEach(x => x.selected = ids.includes(x.id));
30208
+ return userGroups.data || [];
29946
30209
  }
29947
- ngAfterViewInit() {
30210
+ ;
30211
+ ngAfterContentInit() {
29948
30212
  this.cdRef.detectChanges();
30213
+ }
30214
+ ngAfterViewInit() {
29949
30215
  this.cdRef.detectChanges();
29950
30216
  }
29951
30217
  ngOnInit() {
@@ -29955,46 +30221,15 @@ class QMSSelectAccessDialogComponent {
29955
30221
  }
29956
30222
  });
29957
30223
  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
30224
  this.getLoading$.pipe(takeUntil(this.ngUnsubcribe))
29989
30225
  .subscribe(response => {
29990
30226
  if (response) {
29991
- this.personForm.disable();
29992
- this.userGroupForm.disable();
29993
- }
29994
- else {
29995
- this.personForm.enable();
29996
- this.userGroupForm.enable();
30227
+ this.personForm && this.personForm.disable();
30228
+ this.userGroupForm && this.userGroupForm.disable();
30229
+ return;
29997
30230
  }
30231
+ this.personForm && this.personForm.enable();
30232
+ this.userGroupForm && this.userGroupForm.enable();
29998
30233
  });
29999
30234
  }
30000
30235
  ngOnDestroy() {
@@ -30022,10 +30257,41 @@ class QMSSelectAccessDialogComponent {
30022
30257
  }
30023
30258
  }
30024
30259
  if (this.options.length === 1) {
30025
- this.dialogRef.updateSize('732px');
30260
+ this.dialogRef.updateSize(this.dialogData.sizeUpdateDefault);
30026
30261
  this.optionSelect.setValue(this.options[0].type);
30027
30262
  }
30028
30263
  }
30264
+ _filterOptionPersonChange() {
30265
+ // Filter person by roles
30266
+ this.personForm.get('userGroupFilter').valueChanges
30267
+ .pipe(takeUntil(this.ngUnsubcribe), debounceTime(500))
30268
+ .subscribe(keyword => {
30269
+ if (!this.optionFilterPersonDataGlobal.userGroups.length) {
30270
+ return;
30271
+ }
30272
+ if (!keyword) {
30273
+ this.filteredSearchTextBox.userGroup.next(this.optionFilterPersonDataGlobal.userGroups);
30274
+ return;
30275
+ }
30276
+ const resultFilter = this.optionFilterPersonDataGlobal.userGroups.filter(userGroup => userGroup.name.toLocaleLowerCase().includes(keyword.toLocaleLowerCase()));
30277
+ this.filteredSearchTextBox.userGroup.next(resultFilter);
30278
+ });
30279
+ // Filter person by departments
30280
+ this.personForm.get('departmentFilter').valueChanges
30281
+ .pipe(takeUntil(this.ngUnsubcribe))
30282
+ .subscribe(() => {
30283
+ if (!this.optionFilterPersonDataGlobal.departments) {
30284
+ return;
30285
+ }
30286
+ let search = this.personForm.get('departmentFilter').value;
30287
+ if (!search) {
30288
+ this.filteredSearchTextBox.department.next(this.optionFilterPersonDataGlobal.departments.slice());
30289
+ return;
30290
+ }
30291
+ search = search.toLowerCase();
30292
+ this.filteredSearchTextBox.department.next(this.optionFilterPersonDataGlobal.departments.filter(x => x.name.toLowerCase().indexOf(search) > -1));
30293
+ });
30294
+ }
30029
30295
  getResultTabActive() {
30030
30296
  const resultObj = {
30031
30297
  0: this.resultAccess.persons,
@@ -30039,34 +30305,44 @@ class QMSSelectAccessDialogComponent {
30039
30305
  }
30040
30306
  buildPersonForm() {
30041
30307
  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
30308
+ userGroup: [],
30309
+ department: [],
30310
+ departmentFilter: [''],
30311
+ recursive: [{
30312
+ value: false, disabled: true
30313
+ }],
30314
+ keyword: [''],
30315
+ userGroupFilter: [''],
30316
+ excludedQuitDepartmentId: [true]
30049
30317
  });
30050
30318
  }
30051
- resetPagingConfig() {
30052
- this.currentPaginationConfig = {
30053
- pageIndex: 0,
30054
- pageSize: 10,
30055
- length: 0
30056
- };
30057
- }
30058
30319
  onFilterPerson() {
30320
+ var _a, _b;
30059
30321
  this.getLoading$.next(true);
30060
- this.onSearchPersonEvent.emit(this.personForm.value);
30061
- this.getLoading$.next(true);
30322
+ const formValue = this.personForm.getRawValue();
30323
+ const filterData = {
30324
+ departmentId: (_a = formValue.department) === null || _a === void 0 ? void 0 : _a.id,
30325
+ userGroupId: (_b = formValue.userGroup) === null || _b === void 0 ? void 0 : _b.id,
30326
+ keyword: formValue.keyword,
30327
+ recursive: formValue.recursive
30328
+ };
30329
+ this.onSearchPersonEvent.emit(filterData);
30330
+ this._resetPagingator(this.pagingPerson);
30331
+ }
30332
+ _resetPagingator(paginator) {
30333
+ if (!paginator)
30334
+ return;
30335
+ paginator.changePage(0);
30336
+ paginator.renderDisplayNumberOfpages();
30062
30337
  }
30063
30338
  onSearchPersonFreeText() {
30064
- this.getLoading$.next(true);
30065
30339
  this.getLoading$.next(true);
30066
30340
  this.onSearchPersonFreeTextEvent.emit(this.personForm.get('keyword').value);
30341
+ this._resetPagingator(this.pagingPerson);
30067
30342
  }
30068
30343
  onFilterUserGroup() {
30069
30344
  this.getLoading$.next(true);
30345
+ this._resetPagingator(this.pagingUserGroup);
30070
30346
  this.onSearchUserGroupEvent.emit(this.userGroupForm.value);
30071
30347
  }
30072
30348
  onSelectItem(type, item) {
@@ -30130,13 +30406,26 @@ class QMSSelectAccessDialogComponent {
30130
30406
  break;
30131
30407
  case this.OPTION_ENUM.DEPARTMENT:
30132
30408
  this.resultAccess.departments.splice(index, 1);
30409
+ this.departmentResultClone.splice(index, 1);
30410
+ if (!this.treeDepartment)
30411
+ return;
30133
30412
  this.treeDepartment.onRemoveNode(item.id);
30413
+ break;
30134
30414
  default:
30135
30415
  return;
30136
30416
  }
30137
30417
  }
30138
30418
  onSelectionTypeChange(event) {
30139
- this.dialogRef.updateSize('732px');
30419
+ switch (event.value) {
30420
+ case OptionSelectAccessEnum.PERSON:
30421
+ this.buildPersonForm();
30422
+ this._filterOptionPersonChange();
30423
+ break;
30424
+ }
30425
+ this.getLoading$.next(true);
30426
+ this.dialogRef.updateSize(this.dialogData.sizeUpdateDefault);
30427
+ this.onSelectOptionChange$.next(event);
30428
+ this.cdRef.detectChanges();
30140
30429
  }
30141
30430
  setFormControlValue(formControlNames, values) {
30142
30431
  formControlNames.forEach((controlName, _index) => {
@@ -30147,9 +30436,9 @@ class QMSSelectAccessDialogComponent {
30147
30436
  isCheckAll(type) {
30148
30437
  switch (type) {
30149
30438
  case this.OPTION_ENUM.PERSON:
30150
- return !this.dialogData.modeSelectOnePerson && this.personFiltered.length && this.getPaging(this.personFiltered).every(x => x.selected);
30439
+ return !this.dialogData.modeSelectOnePerson && this.personFiltered.length && this.personFiltered.every(x => x.selected);
30151
30440
  case this.OPTION_ENUM.USER_GROUP:
30152
- return !this.dialogData.modeSelectOneUserGroup && this.userGroupFiltered.length && this.getPaging(this.userGroupFiltered).every(x => x.selected);
30441
+ return !this.dialogData.modeSelectOneUserGroup && this.userGroupFiltered.length && this.userGroupFiltered.every(x => x.selected);
30153
30442
  default:
30154
30443
  return false;
30155
30444
  }
@@ -30158,9 +30447,9 @@ class QMSSelectAccessDialogComponent {
30158
30447
  var _a, _b;
30159
30448
  switch (type) {
30160
30449
  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));
30450
+ return !this.dialogData.modeSelectOnePerson && !this.isCheckAll(type) && ((_a = this.personFiltered) === null || _a === void 0 ? void 0 : _a.some(x => x.selected));
30162
30451
  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));
30452
+ return !this.dialogData.modeSelectOneUserGroup && !this.isCheckAll(type) && ((_b = this.userGroupFiltered) === null || _b === void 0 ? void 0 : _b.some(x => x.selected));
30164
30453
  default:
30165
30454
  return false;
30166
30455
  }
@@ -30173,18 +30462,16 @@ class QMSSelectAccessDialogComponent {
30173
30462
  $event.checked = false;
30174
30463
  return;
30175
30464
  }
30176
- const userPaging = this.getPaging(this.personFiltered) || [];
30177
- if (!userPaging.length)
30465
+ if (!this.personFiltered.length)
30178
30466
  return;
30179
- userPaging.forEach(x => x.selected = $event.checked);
30180
- const idFiltered = userPaging.map(x => x.id);
30467
+ this.personFiltered.forEach(x => x.selected = $event.checked);
30468
+ const idFiltered = this.personFiltered.map(x => x.id);
30181
30469
  if ($event.checked) {
30182
30470
  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));
30471
+ this.resultAccess.persons = [...this.resultAccess.persons, ...this.personFiltered.filter(x => !idPersonSelected.includes(x.id))];
30472
+ return;
30187
30473
  }
30474
+ this.resultAccess.persons = this.resultAccess.persons.filter(x => !idFiltered.includes(x.id));
30188
30475
  break;
30189
30476
  }
30190
30477
  case this.OPTION_ENUM.USER_GROUP: {
@@ -30192,59 +30479,79 @@ class QMSSelectAccessDialogComponent {
30192
30479
  $event.checked = false;
30193
30480
  return;
30194
30481
  }
30195
- const userGroupPaging = this.getPaging(this.userGroupFiltered);
30482
+ const userGroupPaging = this.userGroupFiltered;
30196
30483
  userGroupPaging.forEach(x => x.selected = $event.checked);
30197
30484
  const idFiltered = userGroupPaging.map(x => x.id);
30198
30485
  if ($event.checked) {
30199
30486
  const idSelected = this.resultAccess.userGroups.map(x => x.id);
30200
30487
  this.resultAccess.userGroups = [...this.resultAccess.userGroups, ...userGroupPaging.filter(x => !idSelected.includes(x.id))];
30488
+ return;
30201
30489
  }
30202
- else {
30203
- this.resultAccess.userGroups = this.resultAccess.userGroups.filter(x => !idFiltered.includes(x.id));
30204
- }
30490
+ this.resultAccess.userGroups = this.resultAccess.userGroups.filter(x => !idFiltered.includes(x.id));
30205
30491
  break;
30206
30492
  }
30207
30493
  default:
30208
30494
  return;
30209
30495
  }
30210
30496
  }
30497
+ onSelectionNodeDepartmentChange({ added, removed, updated }) {
30498
+ if (added.length) {
30499
+ added.forEach(item => {
30500
+ if (this.resultAccess.departments.some(x => x.id === item.id))
30501
+ return;
30502
+ this.resultAccess.departments.push(item);
30503
+ });
30504
+ }
30505
+ if (removed.length) {
30506
+ removed.forEach(x => {
30507
+ const index = this.resultAccess.departments.findIndex(item => item.id === x.id);
30508
+ if (index < 0)
30509
+ return;
30510
+ this.resultAccess.departments.splice(index, 1);
30511
+ });
30512
+ }
30513
+ if (updated.length) {
30514
+ updated.forEach(x => {
30515
+ const index = this.resultAccess.departments.findIndex(item => item.id == x.id);
30516
+ if (index < 0)
30517
+ return;
30518
+ const deparment = this.resultAccess.departments.find(item => item.id == x.id);
30519
+ if (!!deparment)
30520
+ deparment.children = x.children;
30521
+ });
30522
+ }
30523
+ this._departmentSelected = _.cloneDeep(this.resultAccess.departments);
30524
+ }
30211
30525
  onScollToNodeTreeDepartment(node) {
30212
30526
  this.optionSelect.value === this.OPTION_ENUM.DEPARTMENT && this.treeDepartment.scrollToNode(node.id);
30213
30527
  }
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
30528
  trackByFn(index, item) {
30221
30529
  return index;
30222
30530
  }
30223
30531
  updatePersonFilter(data) {
30224
- this.resetPagingConfig();
30225
30532
  this.getPerson$.next(data);
30226
30533
  this.getLoading$.next(false);
30227
- this.getLoading$.next(false);
30228
30534
  }
30229
30535
  updateUserGroupFilter(data) {
30230
- this.resetPagingConfig();
30231
30536
  this.getUserGroup$.next(data);
30232
30537
  this.getLoading$.next(false);
30233
- this.getLoading$.next(false);
30234
30538
  }
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);
30539
+ onPaginatorEvent(val, type) {
30540
+ this.getLoading$.next(this.optionSelect.value !== this.OPTION_ENUM.DEPARTMENT);
30541
+ this.onPagingEvent.emit(Object.assign(Object.assign({}, val), { type: type }));
30242
30542
  }
30243
30543
  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
- });
30544
+ // this.resultAccess.departments = event;
30545
+ }
30546
+ updateResultSearchDepartment(data = new QMSAccessPagingModel()) {
30547
+ if (!this.treeDepartment)
30548
+ return;
30549
+ data = data;
30550
+ this.treeDepartment.setResultSearch(data);
30551
+ }
30552
+ generateTootip(node) {
30553
+ var _a;
30554
+ 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
30555
  }
30249
30556
  formatString(...replacements) {
30250
30557
  let result = arguments[0];
@@ -30257,11 +30564,25 @@ class QMSSelectAccessDialogComponent {
30257
30564
  hasItemSelected() {
30258
30565
  return Object.keys(this.resultAccess).some(key => { var _a; return !!((_a = this.resultAccess[key]) === null || _a === void 0 ? void 0 : _a.length); });
30259
30566
  }
30567
+ updateDepartment(data = []) {
30568
+ this.getLoading$.next(false);
30569
+ this.dialogData.data.accessDepartments = [];
30570
+ this.dialogData.data.accessDepartments = _.cloneDeep(data);
30571
+ }
30572
+ updateOptionPersonFilter(departmentFilter = [], userGroupFilter = []) {
30573
+ this.optionFilterPersonDataGlobal.departments = departmentFilter;
30574
+ this.optionFilterPersonDataGlobal.userGroups = userGroupFilter;
30575
+ this.filteredSearchTextBox.department.next(departmentFilter);
30576
+ this.filteredSearchTextBox.userGroup.next(userGroupFilter);
30577
+ }
30578
+ setDefaultPageSizeOption(data) {
30579
+ this.PAGE_SIZE_OPTION = data;
30580
+ }
30260
30581
  }
30261
30582
  QMSSelectAccessDialogComponent.decorators = [
30262
30583
  { type: Component, args: [{
30263
30584
  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",
30585
+ 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
30586
  animations: [SelectAccessAnimationTrigger],
30266
30587
  providers: [
30267
30588
  {
@@ -30270,7 +30591,7 @@ QMSSelectAccessDialogComponent.decorators = [
30270
30591
  }
30271
30592
  ],
30272
30593
  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%)}}"]
30594
+ 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
30595
  },] }
30275
30596
  ];
30276
30597
  QMSSelectAccessDialogComponent.ctorParameters = () => [
@@ -30281,9 +30602,11 @@ QMSSelectAccessDialogComponent.ctorParameters = () => [
30281
30602
  { type: ChangeDetectorRef }
30282
30603
  ];
30283
30604
  QMSSelectAccessDialogComponent.propDecorators = {
30284
- tree: [{ type: ViewChild, args: ['treeDepartment', {
30605
+ tree: [{ type: ViewChild, args: ['tree', {
30285
30606
  read: SelectDepartmentTreeComponent
30286
- },] }]
30607
+ },] }],
30608
+ pagingPerson: [{ type: ViewChild, args: ['pagingPerson',] }],
30609
+ pagingUserGroup: [{ type: ViewChild, args: ['pagingUserGroup',] }]
30287
30610
  };
30288
30611
 
30289
30612
  class QMSSelectAccessDialogModule {
@@ -30315,7 +30638,8 @@ QMSSelectAccessDialogModule.decorators = [
30315
30638
  MatSlideToggleModule,
30316
30639
  QMSListModule,
30317
30640
  QmsPaginatorModule,
30318
- MatPaginatorModule
30641
+ MatPaginatorModule,
30642
+ MatCardModule
30319
30643
  ],
30320
30644
  exports: [
30321
30645
  QMSSelectAccessDialogComponent
@@ -30323,6 +30647,9 @@ QMSSelectAccessDialogModule.decorators = [
30323
30647
  },] }
30324
30648
  ];
30325
30649
 
30650
+ class FilterPersonModel {
30651
+ }
30652
+
30326
30653
  /*
30327
30654
  * Public API Surface of qms-angular
30328
30655
  */
@@ -30331,5 +30658,5 @@ QMSSelectAccessDialogModule.decorators = [
30331
30658
  * Generated bundle index. Do not edit.
30332
30659
  */
30333
30660
 
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 };
30661
+ 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
30662
  //# sourceMappingURL=qms-angular.js.map