qms-angular 1.1.19 → 1.1.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/bundles/qms-angular.umd.js +883 -590
  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-one/select-one.component.js +7 -16
  22. package/esm2015/lib/components/tree/model/tree-flat-node.model.js +1 -1
  23. package/esm2015/lib/components/tree/model/tree-node.model.js +1 -1
  24. package/esm2015/lib/components/tree/tree.component.js +18 -79
  25. package/esm2015/lib/components/tree/tree.function.js +2 -1
  26. package/esm2015/lib/directives/content-changes.directive.js +32 -0
  27. package/esm2015/lib/directives/tooltip/tooltip-elipsify.directive.js +51 -0
  28. package/esm2015/lib/directives/tooltip/tooltip-renderer.directive.js +1 -1
  29. package/esm2015/lib/model/en.js +3 -2
  30. package/esm2015/lib/model/no.js +3 -2
  31. package/esm2015/lib/qms-angular.module.js +9 -3
  32. package/esm2015/lib/qms-ckeditor-components/common/models/qms-ckeditor-data.model.js +1 -1
  33. package/esm2015/lib/qms-ckeditor-components/qms-ckeditor.component.js +62 -50
  34. package/esm2015/public-api.js +3 -1
  35. package/fesm2015/qms-angular.js +828 -578
  36. package/fesm2015/qms-angular.js.map +1 -1
  37. package/lib/common/models/qms-flat-node.model.d.ts +2 -0
  38. package/lib/common/models/qms-tree-node.model.d.ts +5 -0
  39. package/lib/components/select-access-dialog/model/access-paging.model.d.ts +9 -0
  40. package/lib/components/select-access-dialog/model/filter-person.model.d.ts +6 -0
  41. package/lib/components/select-access-dialog/model/select-access-config.model.d.ts +1 -0
  42. package/lib/components/select-access-dialog/model/select-access-data.d.ts +4 -2
  43. package/lib/components/select-access-dialog/public-api.d.ts +3 -0
  44. package/lib/components/select-access-dialog/select-access-dialog.component.d.ts +41 -18
  45. package/lib/components/select-department/select-department.component.d.ts +7 -6
  46. package/lib/components/select-department-tree/model/department-paging.model.d.ts +5 -0
  47. package/lib/components/select-department-tree/model/selection-change.model.d.ts +4 -0
  48. package/lib/components/select-department-tree/public-api.d.ts +2 -0
  49. package/lib/components/select-department-tree/select-department-tree.component.d.ts +24 -15
  50. package/lib/components/select-one/select-one.component.d.ts +0 -1
  51. package/lib/components/tree/model/tree-flat-node.model.d.ts +1 -0
  52. package/lib/components/tree/model/tree-node.model.d.ts +1 -0
  53. package/lib/components/tree/tree.component.d.ts +4 -1
  54. package/lib/directives/content-changes.directive.d.ts +9 -0
  55. package/lib/directives/tooltip/tooltip-elipsify.directive.d.ts +13 -0
  56. package/lib/directives/tooltip/tooltip-renderer.directive.d.ts +2 -2
  57. package/lib/model/en.d.ts +2 -1
  58. package/lib/model/no.d.ts +2 -1
  59. package/lib/qms-ckeditor-components/common/models/qms-ckeditor-data.model.d.ts +1 -1
  60. package/lib/qms-ckeditor-components/qms-ckeditor.component.d.ts +6 -0
  61. package/package.json +1 -1
  62. package/public-api.d.ts +2 -0
  63. package/qms-angular.metadata.json +1 -1
  64. package/src/assets/qms-ckeditor-plugin/build/ckeditor.js +1 -1
  65. package/src/assets/qms-ckeditor-plugin/build/ckeditor.js.map +1 -1
  66. package/src/assets/qms-ckeditor-plugin/src/plugins/template/loadtemplatedialogcommand.js +5 -1
  67. package/src/lib/components/select-access-dialog/select-access-dialog.component.scss +103 -41
  68. package/src/lib/components/select-department/select-department.component.scss +12 -0
  69. package/src/lib/components/select-department-tree/select-department-tree.component.scss +1 -1
  70. package/src/lib/components/select-one/select-one.component.scss +77 -80
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, Component, EventEmitter, ChangeDetectionStrategy, Input, Output, ViewEncapsulation, Inject, ElementRef, ViewChild, HostListener, Directive, ContentChild, Optional, Renderer2, InjectionToken, forwardRef, ChangeDetectorRef, ContentChildren, Attribute, NgModule, CUSTOM_ELEMENTS_SCHEMA, Pipe, ViewContainerRef, HostBinding, NO_ERRORS_SCHEMA, ViewChildren, Injector } from '@angular/core';
2
+ import { Injectable, Component, EventEmitter, ChangeDetectionStrategy, Input, Output, ViewEncapsulation, Inject, ElementRef, ViewChild, HostListener, Directive, ContentChild, Optional, Renderer2, InjectionToken, forwardRef, ChangeDetectorRef, ContentChildren, Attribute, NgModule, CUSTOM_ELEMENTS_SCHEMA, Pipe, ViewContainerRef, HostBinding, TemplateRef, NO_ERRORS_SCHEMA, ViewChildren, Injector } from '@angular/core';
3
3
  import { BehaviorSubject, ReplaySubject, Subject, forkJoin, of, timer } from 'rxjs';
4
4
  import * as i1 from '@angular/common';
5
5
  import { CommonModule, DOCUMENT } from '@angular/common';
@@ -53,9 +53,9 @@ import { STEPPER_GLOBAL_OPTIONS } from '@angular/cdk/stepper';
53
53
  import { MatStepperModule } from '@angular/material/stepper';
54
54
  import { MatSlideToggleModule } from '@angular/material/slide-toggle';
55
55
  import { DragDropModule } from '@angular/cdk/drag-drop';
56
- import { query, style, group, animate, trigger, transition, state, stagger } from '@angular/animations';
56
+ import { query, style, group, animate, trigger, transition, state, stagger, keyframes } from '@angular/animations';
57
+ import { PageEvent, MatPaginatorModule } from '@angular/material/paginator';
57
58
  import { MatDividerModule } from '@angular/material/divider';
58
- import { MatPaginatorModule } from '@angular/material/paginator';
59
59
  import { NgxMatSelectSearchModule } from 'ngx-mat-select-search';
60
60
 
61
61
  class QmsAngularService {
@@ -138,7 +138,8 @@ const en = {
138
138
  "TYPE": "Type",
139
139
  "SEARCH_WITH_NAME": "Search first and last name",
140
140
  "RESULT_SEARCH_FOR": "Results search for ",
141
- "TOOLTIP_INCLUDE_CHILD": "{0} - includes {1} children",
141
+ "TOOLTIP_INCLUDE_SUB_DEPARTMENT": "{0} - include {1} sub-departments",
142
+ "NO_RESULT": "No Result",
142
143
  "ERROR": {
143
144
  "SELECT_DANGER": "You must select one or more events"
144
145
  },
@@ -523,7 +524,8 @@ const no = {
523
524
  "TYPE": "Type",
524
525
  "SEARCH_WITH_NAME": "Søk for- og etternavn",
525
526
  "RESULT_SEARCH_FOR": "Resultater søk etter ",
526
- "TOOLTIP_INCLUDE_CHILD": "{0} – inkluderer {1} barn",
527
+ "TOOLTIP_INCLUDE_SUB_DEPARTMENT": "{0} – inkluderer {1} barn",
528
+ "NO_RESULT": "Inget resultat",
527
529
  "ERROR": {
528
530
  "SELECT_DANGER": "Du må velge en eller flere hendelser"
529
531
  },
@@ -3351,6 +3353,83 @@ QMSMultiIconDirective.propDecorators = {
3351
3353
  qmsTransformIcon: [{ type: Input }]
3352
3354
  };
3353
3355
 
3356
+ class EllipsifyDirective extends QMSToolTipRendererDirective {
3357
+ constructor(renderer, elementRef, overlay, overlayPositionBuilder) {
3358
+ super(overlay, overlayPositionBuilder, elementRef);
3359
+ this.renderer = renderer;
3360
+ this.elementRef = elementRef;
3361
+ this.overlay = overlay;
3362
+ this.overlayPositionBuilder = overlayPositionBuilder;
3363
+ this.domElement = this.elementRef.nativeElement;
3364
+ const elipsify = {
3365
+ 'text-overflow': 'ellipsis',
3366
+ 'overflow': 'hidden',
3367
+ 'white-space': 'nowrap',
3368
+ };
3369
+ Object.keys(elipsify).forEach(newStyle => {
3370
+ this.renderer.setStyle(this.domElement, `${newStyle}`, elipsify[newStyle]);
3371
+ });
3372
+ }
3373
+ ngAfterViewInit() {
3374
+ this.renderer.setProperty(this.domElement, 'scrollTop', 1);
3375
+ this.isTitleAttribute();
3376
+ }
3377
+ isTitleAttribute() {
3378
+ if (this._overlayRef.hasAttached())
3379
+ return;
3380
+ if (this.domElement.offsetWidth < this.domElement.scrollWidth) {
3381
+ const tooltipRef = this._overlayRef.attach(new ComponentPortal(QMSToolTipComponent));
3382
+ tooltipRef.instance.text = this.domElement.textContent;
3383
+ tooltipRef.instance.mode = this.mode;
3384
+ }
3385
+ }
3386
+ }
3387
+ EllipsifyDirective.decorators = [
3388
+ { type: Directive, args: [{
3389
+ selector: '[qms-elipsify]'
3390
+ },] }
3391
+ ];
3392
+ EllipsifyDirective.ctorParameters = () => [
3393
+ { type: Renderer2 },
3394
+ { type: ElementRef },
3395
+ { type: Overlay },
3396
+ { type: OverlayPositionBuilder }
3397
+ ];
3398
+ EllipsifyDirective.propDecorators = {
3399
+ isTitleAttribute: [{ type: HostListener, args: ['focus',] }, { type: HostListener, args: ['mouseenter',] }]
3400
+ };
3401
+
3402
+ class QMSContentChangesDirective {
3403
+ constructor(viewContainer, templateRef) {
3404
+ this.viewContainer = viewContainer;
3405
+ this.templateRef = templateRef;
3406
+ this.existView = false;
3407
+ }
3408
+ set qmsContentChanges(val) {
3409
+ if (!this.existView) {
3410
+ this.viewContainer.createEmbeddedView(this.templateRef);
3411
+ this.existView = true;
3412
+ }
3413
+ else if (val !== this.currentValue) {
3414
+ this.viewContainer.clear();
3415
+ this.viewContainer.createEmbeddedView(this.templateRef);
3416
+ this.currentValue = val;
3417
+ }
3418
+ }
3419
+ }
3420
+ QMSContentChangesDirective.decorators = [
3421
+ { type: Directive, args: [{
3422
+ selector: '[qmsContentChanges]'
3423
+ },] }
3424
+ ];
3425
+ QMSContentChangesDirective.ctorParameters = () => [
3426
+ { type: ViewContainerRef },
3427
+ { type: TemplateRef }
3428
+ ];
3429
+ QMSContentChangesDirective.propDecorators = {
3430
+ qmsContentChanges: [{ type: Input }]
3431
+ };
3432
+
3354
3433
  const ɵ0$6 = { appearance: 'fill' }, ɵ1$1 = { color: 'none' };
3355
3434
  class QmsAngularModule {
3356
3435
  }
@@ -3409,7 +3488,9 @@ QmsAngularModule.decorators = [
3409
3488
  QMSDialogHeader,
3410
3489
  QMSDialogContent,
3411
3490
  QMSDialogFooter,
3412
- QMSMultiIconDirective
3491
+ QMSMultiIconDirective,
3492
+ EllipsifyDirective,
3493
+ QMSContentChangesDirective
3413
3494
  ],
3414
3495
  imports: [
3415
3496
  CommonModule,
@@ -3470,7 +3551,9 @@ QmsAngularModule.decorators = [
3470
3551
  QMSDialogHeader,
3471
3552
  QMSDialogContent,
3472
3553
  QMSDialogFooter,
3473
- QMSMultiIconDirective
3554
+ QMSMultiIconDirective,
3555
+ EllipsifyDirective,
3556
+ QMSContentChangesDirective
3474
3557
  ],
3475
3558
  providers: [
3476
3559
  { provide: MAT_FORM_FIELD_DEFAULT_OPTIONS, useValue: ɵ0$6 },
@@ -4907,6 +4990,7 @@ function buildArrayTree$2(obj, level) {
4907
4990
  node.name = keyObj["name"];
4908
4991
  node.parentId = keyObj["parentId"];
4909
4992
  node.levelType = keyObj["levelType"];
4993
+ node.markedGetChildren = keyObj["markedGetChildren"];
4910
4994
  if (value != null) {
4911
4995
  if (typeof value === 'object') {
4912
4996
  node.children = this.buildArrayTree(value, level + 1);
@@ -5039,7 +5123,7 @@ class TreeComponent {
5039
5123
  this.idCheckIcon = '';
5040
5124
  this.listChildNode = [];
5041
5125
  this.dataType = DataType$2;
5042
- this.transformer = (node, level) => {
5126
+ this._transformer = (node, level) => {
5043
5127
  var _a;
5044
5128
  let checkHasChild = true;
5045
5129
  if (!node.children) {
@@ -5067,10 +5151,11 @@ class TreeComponent {
5067
5151
  hasChild: checkHasChild,
5068
5152
  parentId: node.parentId,
5069
5153
  disabled: false,
5070
- levelType: node.levelType
5154
+ levelType: node.levelType,
5155
+ markedGetChildren: node.markedGetChildren || false
5071
5156
  };
5072
5157
  };
5073
- this.treeFlattener = new MatTreeFlattener(this.transformer, (node) => {
5158
+ this.treeFlattener = new MatTreeFlattener(this._transformer, (node) => {
5074
5159
  return node.level;
5075
5160
  }, (node) => {
5076
5161
  return node.expandable;
@@ -5269,7 +5354,7 @@ class TreeComponent {
5269
5354
  this.disabledList.forEach(el => {
5270
5355
  var _a;
5271
5356
  if (((_a = this.treeControl.dataNodes[i].id) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === (el === null || el === void 0 ? void 0 : el.toLowerCase())) {
5272
- this.treeControl.expand(this.treeControl.dataNodes[i]);
5357
+ // this.treeControl.expand(this.treeControl.dataNodes[i]);
5273
5358
  }
5274
5359
  });
5275
5360
  // remove all children nodes when user dont need to show them
@@ -5516,84 +5601,22 @@ class TreeComponent {
5516
5601
  this.selectFolderEvent.emit(node);
5517
5602
  }
5518
5603
  onExpandNode(node, isExpandNode) {
5519
- if (this.treeConfig.selectOne) {
5520
- if (isExpandNode && !this.expandOnTitleClick) {
5521
- this.nodeExpandEvent.emit(node);
5522
- }
5523
- else {
5524
- this.idCheckIcon = this.idToCheckSelectOne(node.id, node.parentId);
5525
- node.itemType = this.checkDataTypeSelectNode(node);
5526
- this.selectNodeEvent.emit(node);
5527
- }
5528
- return;
5529
- }
5530
- if (window[RelatedConst$1.IS_DISPLAY_SEARCH_RESULT]) {
5531
- window.postMessage(RelatedConst$1.HIDE_SEARCH_RESULT, '*');
5532
- }
5533
- // set useExpandFeature = true to improve performance of tree loading
5534
- if (!isExpandNode || !this.useExpandFeature) {
5535
- for (let i = 0; i < this.arrIndex.length; i++) {
5536
- if (this.arrIndex[i] === node.id) {
5537
- this.arrIndex.splice(i, 1);
5538
- }
5539
- }
5540
- if (isExpandNode && !this.expandOnTitleClick) {
5604
+ if (isExpandNode && !this.expandOnTitleClick) {
5605
+ if (!node.markedGetChildren && !this.treeControl.isExpanded(node)) {
5606
+ this.treeControl.dataNodes.forEach(x => {
5607
+ if (x.parentId === node.parentId && x.id === node.id) {
5608
+ x.markedGetChildren = true;
5609
+ }
5610
+ });
5541
5611
  this.nodeExpandEvent.emit(node);
5542
5612
  }
5543
- return;
5544
- }
5545
- // get array index to expand node after refresh datasource
5546
- let index = 0;
5547
- let isChange = false;
5548
- let isRemove = false;
5549
- this.arrIndex.push(node.id);
5550
- const childArray = this.treeData.filter((x) => {
5551
- return x.parentId === node.id;
5552
- });
5553
- let rootId = '0';
5554
- let parentElement;
5555
- let childrenList;
5556
- if (childArray.length === 0) {
5557
- return;
5558
- }
5559
- childArray.forEach((item) => {
5560
- if (item.rootId === rootId) {
5561
- return;
5562
- }
5563
- // get child node from original datasource
5564
- const child = this.getChildNode(item.rootId, childArray);
5565
- rootId = item.rootId;
5566
- index = this.getNodeIndex(child.id, undefined, this.dataSource['_treeControl'].dataNodes);
5567
- if (index > -1) {
5568
- return;
5569
- }
5570
- // add child node to expand node
5571
- parentElement = this.findChildNode(node.id, this.dataSource.data);
5572
- if (parentElement) {
5573
- // temporary remove all node without children => purpose to add node folder first
5574
- if (!isRemove) {
5575
- childrenList = [...parentElement.children];
5576
- this.removeChildren(parentElement);
5577
- isRemove = true;
5578
- }
5579
- // add node folder first
5580
- parentElement.children.push(child);
5581
- isChange = true;
5582
- }
5583
- });
5584
- // add node without children again
5585
- if (isRemove) {
5586
- this.addChildren(parentElement, childrenList);
5587
5613
  }
5588
- // refresh data and expand tree node from root node
5589
- if (isChange) {
5590
- this.refreshTreeData();
5591
- this.arrIndex.forEach((item) => {
5592
- index = this.getNodeIndex(item, undefined, this.dataSource['_treeControl'].dataNodes);
5593
- this.treeControl.expand(this.treeControl.dataNodes[index]);
5594
- });
5595
- isChange = false;
5614
+ else {
5615
+ this.idCheckIcon = this.idToCheckSelectOne(node.id, node.parentId);
5616
+ node.itemType = this.checkDataTypeSelectNode(node);
5617
+ this.selectNodeEvent.emit(node);
5596
5618
  }
5619
+ return;
5597
5620
  }
5598
5621
  removeChildren(parentElement) {
5599
5622
  if (parentElement.children) {
@@ -23263,8 +23286,10 @@ class QMSCKEditorComponent extends QMSCKEditorBaseComponent {
23263
23286
  this.renderer = renderer;
23264
23287
  this.elRef = elRef;
23265
23288
  this.required = false;
23289
+ this.editorId = 'qmsckeditor';
23266
23290
  this.qmsckContentOutput = new EventEmitter();
23267
23291
  this.ckEditorEventConst = CKEditorEventConst;
23292
+ this.isToolbarItemsIdSet = false;
23268
23293
  this.ckTagname = 'div';
23269
23294
  }
23270
23295
  onMessage(event) {
@@ -23304,6 +23329,7 @@ class QMSCKEditorComponent extends QMSCKEditorBaseComponent {
23304
23329
  }
23305
23330
  }
23306
23331
  ngOnInit() {
23332
+ this.toolbarItemPrefixId = `${this.editorId}_toolbar_item_`;
23307
23333
  this.name = 'CKEditor custom build';
23308
23334
  this.ckEditor = this.qmsckPlugin.pluginObject;
23309
23335
  this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubcribe)).subscribe((res) => {
@@ -23311,7 +23337,11 @@ class QMSCKEditorComponent extends QMSCKEditorBaseComponent {
23311
23337
  this.LANG = this.translate.getObjectLang(res);
23312
23338
  }
23313
23339
  });
23314
- 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);
23315
23345
  this.globalService.setApiUrl(this.qmsckData.apiUrl);
23316
23346
  if (this.isEnabledMathtypeConfig()) {
23317
23347
  this.addMathTypeConfig();
@@ -23319,9 +23349,6 @@ class QMSCKEditorComponent extends QMSCKEditorBaseComponent {
23319
23349
  if (this.isEnabledTimestampConfig()) {
23320
23350
  this.addTimestampConfig();
23321
23351
  }
23322
- if (this.isEnabledToggleToolbar()) {
23323
- this.addToggleToolbarConfig();
23324
- }
23325
23352
  if (this.isEnabledWProofreader()) {
23326
23353
  this.addWProofreaderConfig();
23327
23354
  }
@@ -23336,6 +23363,7 @@ class QMSCKEditorComponent extends QMSCKEditorBaseComponent {
23336
23363
  if (this.editorInstance) {
23337
23364
  this.editorInstance.destroy();
23338
23365
  }
23366
+ $(document).off();
23339
23367
  }
23340
23368
  registerOnChange(fn) {
23341
23369
  this.onChange = fn;
@@ -23367,12 +23395,12 @@ class QMSCKEditorComponent extends QMSCKEditorBaseComponent {
23367
23395
  }
23368
23396
  isEnabledToggleToolbar() {
23369
23397
  const pattern = /(toggleToolbar)/gmi;
23370
- return !!this.qmsckData.toggleToolbar
23398
+ return !!this.qmsckData.toggledToolbarItems
23371
23399
  && !!this.qmsckPlugin.itemToolbar
23372
23400
  && this.qmsckPlugin.itemToolbar.search(pattern) > -1;
23373
23401
  }
23374
23402
  addToggleToolbarConfig() {
23375
- const items = this.qmsckData.toggleToolbar.split(',');
23403
+ const items = this.qmsckData.toggledToolbarItems.split(',');
23376
23404
  const toggleToolbarConfig = {
23377
23405
  toggleToolbarConfig: {
23378
23406
  toolbar: items
@@ -23487,6 +23515,7 @@ class QMSCKEditorComponent extends QMSCKEditorBaseComponent {
23487
23515
  wordsBox.textContent = `${this.LANG.QMSCKEDITOR.WORDS}: ${stats.words} / ${this.LANG.QMSCKEDITOR.CHARACTERS}: ${stats.characters}`;
23488
23516
  }
23489
23517
  });
23518
+ this._setEditorInstanceObserver(this.editorId);
23490
23519
  }
23491
23520
  /**
23492
23521
  * Add template - Load template
@@ -23674,62 +23703,48 @@ class QMSCKEditorComponent extends QMSCKEditorBaseComponent {
23674
23703
  }
23675
23704
  /*
23676
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
23677
23715
  */
23678
23716
  toggleToolbarEventHandling() {
23679
- const qmsckeditor = window.document.getElementById('qmsckeditor');
23717
+ const qmsckeditor = window.document.getElementById(this.editorId);
23680
23718
  const toggleAttribute = 'isToggleToolbar';
23681
23719
  const ckeditorTag = 'ckeditor';
23682
23720
  if (qmsckeditor) {
23683
23721
  const isToggleToolbar = qmsckeditor.getAttribute(toggleAttribute) == 'true';
23684
23722
  if (isToggleToolbar) {
23685
- this.ckeditorConfig = CKEditorCommonFunctions.getCKEditorConfiguration(this.qmsckPlugin.itemToolbar);
23723
+ this._setToolbarViewMode(true);
23686
23724
  qmsckeditor.setAttribute(toggleAttribute, 'false');
23687
23725
  }
23688
23726
  else {
23689
- this.ckeditorConfig = CKEditorCommonFunctions.getCKEditorConfiguration(this.qmsckData.toggleToolbar);
23727
+ this._setToolbarViewMode(false);
23690
23728
  qmsckeditor.setAttribute(toggleAttribute, 'true');
23691
23729
  }
23692
- const onChanged = this.onChanged.bind(this);
23693
- const onBlur = this.onBlur.bind(this);
23694
- if (this.editorInstance) {
23695
- try {
23696
- this.editorInstance.destroy();
23697
- }
23698
- catch (err) {
23699
- console.log(err);
23700
- }
23701
- }
23702
- //This is a temporary workaround.
23703
- //Tracking status and progress of the issue https://github.com/ckeditor/ckeditor5/issues/7383
23704
- const root = window.document.querySelector(ckeditorTag);
23705
- if (!!root) {
23706
- let editorElement = null;
23707
- if (root.childElementCount > 0) {
23708
- editorElement = Array.from(root.children).find(i => i.nodeName.toLowerCase() == this.ckTagname.toLowerCase());
23709
- }
23710
- else {
23711
- editorElement = window.document.createElement(this.ckTagname);
23712
- editorElement.style = 'display: none;';
23713
- root.appendChild(editorElement);
23714
- }
23715
- this.ckEditor.create(editorElement, this.ckeditorConfig).then(editor => {
23716
- this.initEditor(editor);
23717
- this.editorInstance = editor;
23718
- //Delete cache content
23719
- editorElement.innerHTML = '';
23720
- //setup editor events
23721
- const modelDocument = editor.model.document;
23722
- const viewDocument = editor.editing.view.document;
23723
- modelDocument.on('change:data', () => {
23724
- onChanged({ editor });
23725
- });
23726
- viewDocument.on('blur', () => {
23727
- onBlur({ editor });
23728
- });
23729
- });
23730
- }
23731
23730
  }
23732
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
+ }
23733
23748
  /**
23734
23749
  * Flowchart
23735
23750
  */
@@ -23829,11 +23844,30 @@ class QMSCKEditorComponent extends QMSCKEditorBaseComponent {
23829
23844
  });
23830
23845
  });
23831
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
+ }
23832
23866
  }
23833
23867
  QMSCKEditorComponent.decorators = [
23834
23868
  { type: Component, args: [{
23835
23869
  selector: 'qms-ckeditor',
23836
- 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>",
23837
23871
  providers: [
23838
23872
  QMSCKEditorFullscreenComponent,
23839
23873
  {
@@ -23867,6 +23901,7 @@ QMSCKEditorComponent.propDecorators = {
23867
23901
  qmsckContentInput: [{ type: Input }],
23868
23902
  isDisabled: [{ type: Input, args: ['disabled',] }],
23869
23903
  required: [{ type: Input, args: ['required',] }],
23904
+ editorId: [{ type: Input }],
23870
23905
  qmsckContentOutput: [{ type: Output }],
23871
23906
  onMessage: [{ type: HostListener, args: ['window:message', ['$event'],] }]
23872
23907
  };
@@ -25956,13 +25991,6 @@ class SelectOneDialog {
25956
25991
  }
25957
25992
  ngAfterViewChecked() {
25958
25993
  this.cdRef.detectChanges();
25959
- if (this.filteredOptions && this.filteredOptions.length) {
25960
- this.autoComplete.openPanel();
25961
- this.setResultHeight();
25962
- }
25963
- else if (this.autoComplete) {
25964
- this.autoComplete.closePanel();
25965
- }
25966
25994
  }
25967
25995
  getDataTypeId(moduleId) {
25968
25996
  let itemType;
@@ -26029,9 +26057,6 @@ class SelectOneDialog {
26029
26057
  }
26030
26058
  return this.filteredOptions;
26031
26059
  }
26032
- showSearchResult() {
26033
- this.autoComplete.openPanel();
26034
- }
26035
26060
  displayRelated(related) {
26036
26061
  return related ? related.itemName : undefined;
26037
26062
  }
@@ -26237,6 +26262,9 @@ class SelectOneDialog {
26237
26262
  }
26238
26263
  selectNodeTreeEvent(node) {
26239
26264
  var _a, _b;
26265
+ if (node.disabled) {
26266
+ return;
26267
+ }
26240
26268
  let position = -1;
26241
26269
  let parentName = '';
26242
26270
  let itemNumberId = '';
@@ -26282,9 +26310,9 @@ class SelectOneDialog {
26282
26310
  SelectOneDialog.decorators = [
26283
26311
  { type: Component, args: [{
26284
26312
  selector: 'qms-select-one',
26285
- template: "<div id=\"qmslib_related_popup\" class=\"qmslib__related__popup__container\">\r\n <div id=\"qmslib_related_popup_header\">\r\n <span mat-icon-button class=\"button__close\" (click)=\"onCloseClick()\">\r\n <mat-icon mat-icon>close</mat-icon>\r\n </span>\r\n <div id=\"qmslib_related_popup_header_001\" mat-dialog-content>\r\n <span>{{ moduleName }}</span>\r\n </div>\r\n </div>\r\n\r\n <div\r\n id=\"qmslib_related_popup_search\"\r\n class=\"input__field\"\r\n (click)=\"showSearchResult()\"\r\n >\r\n <input\r\n #name\r\n type=\"text\"\r\n placeholder=\"{{ LANG.SEARCH }}\"\r\n matInput\r\n [formControl]=\"myControl\"\r\n [matAutocomplete]=\"auto\"\r\n #autoCompleteInputSearch\r\n />\r\n <mat-icon>search</mat-icon>\r\n </div>\r\n\r\n <div class=\"line__divider\"></div>\r\n\r\n <mat-autocomplete\r\n #auto=\"matAutocomplete\"\r\n [displayWith]=\"displayRelated\"\r\n class=\"mat-autocomplete_related-viewport\"\r\n >\r\n <cdk-virtual-scroll-viewport\r\n qms-scrollbar\r\n itemSize=\"10\"\r\n class=\"related-viewport\"\r\n *ngIf=\"filteredOptions.length\"\r\n >\r\n <div class=\"search__module-result\" *ngIf=\"filteredOptions.length\">\r\n <mat-option\r\n class=\"search__option\"\r\n *ngFor=\"let option of getModuleFilteredOptions()\"\r\n [value]=\"option\"\r\n (click)=\"selectItemSearched(option)\"\r\n >\r\n <qms-list-item type=\"image-square\">\r\n <mat-icon\r\n leading-icon\r\n type=\"image-square\"\r\n [svgIcon]=\"getNodeIcon(option)\"\r\n ></mat-icon>\r\n <div qms-list-header>\r\n <div\r\n qms-line\r\n type=\"caption\"\r\n qms-tool-tip=\"{{\r\n isEllipsisActive(searchItemResult) ? option.parentName : ''\r\n }}\"\r\n mode=\"dark\"\r\n *ngIf=\"getParentName(option)\"\r\n >\r\n <span #searchItemResult class=\"search__result__parent-name\">\r\n {{ option.parentName }}\r\n </span>\r\n </div>\r\n <div qms-line type=\"subtitle\" class=\"search__option-name\">\r\n {{ option.itemName }}\r\n </div>\r\n <div\r\n class=\"caption\"\r\n *ngIf=\"option.breadcumbs && option.breadcumbs.length\"\r\n >\r\n <qms-breadcrumb\r\n class=\"breadcrumb-container\"\r\n type=\"table\"\r\n numDisplayItem=\"1\"\r\n [nodes]=\"option.breadcumbs\"\r\n >\r\n </qms-breadcrumb>\r\n </div>\r\n </div>\r\n <div qms-line color=\"default-subtitle\" *ngIf=\"getItemId(option)\">\r\n <span>\r\n <mat-icon\r\n class=\"material-icons-outlined search__description-icon\"\r\n >\r\n local_offer\r\n </mat-icon>\r\n </span>\r\n {{ getItemId(option) }}\r\n </div>\r\n </qms-list-item>\r\n </mat-option>\r\n </div>\r\n </cdk-virtual-scroll-viewport>\r\n </mat-autocomplete>\r\n\r\n <div class=\"row\">\r\n <div\r\n class=\"qms-scrollbar col-12 qmslib_related_popup_content panel__content_item\"\r\n >\r\n <mat-expansion-panel\r\n hideToggle\r\n id=\"qmslib_related_popup_common_001\"\r\n [expanded]=\"isCommonExpanded\"\r\n (opened)=\"isCommonExpanded = true\"\r\n (closed)=\"isCommonExpanded = false\"\r\n class=\"panel-tree\"\r\n >\r\n <div id=\"qmslib_related_popup_common_002\">\r\n <qms-tree\r\n [treeData]=\"treeData\"\r\n [treeConfig]=\"treeConfig\"\r\n [selectedData]=\"selectedData\"\r\n [selectedRiskData]=\"selectedRiskData\"\r\n [disabledList]=\"disabledList\"\r\n (selectNodeEvent)=\"selectNodeTreeEvent($event)\"\r\n (nodeExpandEvent)=\"nodeExpandEvent($event)\"\r\n [expandOnTitleClick]=\"false\"\r\n [expandToChildNode]=\"expandToChildNode\"\r\n ></qms-tree>\r\n </div>\r\n </mat-expansion-panel>\r\n </div>\r\n </div>\r\n\r\n <!-- <div *ngIf=\"checkedNodeList.length\" class=\"line__divider\"></div>\r\n\r\n <div *ngIf=\"checkedNodeList.length\" class=\"panel__item qms-scrollbar\">\r\n <div class=\"related__item__inline\" *ngFor=\"let item of checkedNodeList\">\r\n <button\r\n *ngIf=\"item.itemName\"\r\n mat-button\r\n class=\"related__item__content\"\r\n qms-tool-tip=\"{{\r\n isEllipsisActive(itemName) ? getItemChipName(item) : ''\r\n }}\"\r\n mode=\"dark\"\r\n >\r\n <span class=\"related__item__content_name\" #itemName>{{\r\n getItemChipName(item)\r\n }}</span>\r\n <mat-icon (click)=\"removeCheckedNodeList()\">cancel</mat-icon>\r\n </button>\r\n </div>\r\n </div> -->\r\n\r\n <div class=\"line__divider\"></div>\r\n\r\n <div class=\"confirm__button__groups\">\r\n <button\r\n *ngIf=\"!checkedNodeList.length\"\r\n qms-btn\r\n style=\"margin-top: 7px\"\r\n (click)=\"onAddClick()\"\r\n >\r\n {{ LANG.ADD }}\r\n </button>\r\n <button\r\n *ngIf=\"checkedNodeList.length\"\r\n qms-btn\r\n style=\"margin-top: 0px\"\r\n (click)=\"onAddClick()\"\r\n >\r\n {{ LANG.ADD }} ({{ checkedNodeList.length }})\r\n </button>\r\n <button\r\n qms-btn-text\r\n [ngStyle]=\"{ 'margin-top': checkedNodeList.length ? '0px' : '7px' }\"\r\n (click)=\"onCloseClick()\"\r\n >\r\n {{ LANG.CANCEL }}\r\n </button>\r\n </div>\r\n</div>\r\n",
26313
+ template: "<div class=\"qmslib__related__popup__container\">\r\n <div>\r\n <span mat-icon-button class=\"button__close\" (click)=\"onCloseClick()\">\r\n <mat-icon mat-icon>close</mat-icon>\r\n </span>\r\n <div class=\"module-name\" mat-dialog-content>\r\n <span>{{ moduleName }}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"input__field\">\r\n <input type=\"text\" placeholder=\"{{ LANG.SEARCH }}\" matInput [formControl]=\"myControl\" [matAutocomplete]=\"auto\" />\r\n <mat-icon>search</mat-icon>\r\n </div>\r\n\r\n <div class=\"line__divider\"></div>\r\n\r\n <mat-autocomplete mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\">\r\n\r\n <div class=\"search__module-result\" *ngIf=\"filteredOptions.length\">\r\n <mat-option class=\"search__option\" *ngFor=\"let option of getModuleFilteredOptions()\" [value]=\"option\"\r\n (click)=\"selectItemSearched(option)\">\r\n <qms-list-item class=\"item-suggestion\" type=\"image-square\">\r\n <mat-icon leading-icon type=\"image-square\" [svgIcon]=\"getNodeIcon(option)\"></mat-icon>\r\n <div qms-list-header>\r\n <div qms-line type=\"caption\" qms-tool-tip=\"{{\r\n isEllipsisActive(searchItemResult) ? option.parentName : ''\r\n }}\" mode=\"dark\" *ngIf=\"getParentName(option)\">\r\n <span #searchItemResult class=\"search__result__parent-name\">\r\n {{ option.parentName }}\r\n </span>\r\n </div>\r\n <div qms-line type=\"subtitle\" class=\"search__option-name\">\r\n {{ option.itemName }}\r\n </div>\r\n <div class=\"caption\" *ngIf=\"option.breadcumbs && option.breadcumbs.length\">\r\n <qms-breadcrumb class=\"breadcrumb-container\" type=\"table\" numDisplayItem=\"1\" [nodes]=\"option.breadcumbs\">\r\n </qms-breadcrumb>\r\n </div>\r\n </div>\r\n <div qms-line color=\"default-subtitle\" *ngIf=\"getItemId(option)\">\r\n <span>\r\n <mat-icon class=\"material-icons-outlined search__description-icon\">\r\n local_offer\r\n </mat-icon>\r\n </span>\r\n {{ getItemId(option) }}\r\n </div>\r\n </qms-list-item>\r\n </mat-option>\r\n </div>\r\n </mat-autocomplete>\r\n\r\n <div class=\"row\">\r\n <div class=\"qms-scrollbar col-12 qmslib_related_popup_content panel__content_item\">\r\n <mat-expansion-panel hideToggle id=\"qmslib_related_popup_common_001\" [expanded]=\"isCommonExpanded\"\r\n (opened)=\"isCommonExpanded = true\" (closed)=\"isCommonExpanded = false\" class=\"panel-tree\">\r\n <div id=\"qmslib_related_popup_common_002\">\r\n <qms-tree [treeData]=\"treeData\" [treeConfig]=\"treeConfig\" [selectedData]=\"selectedData\"\r\n [selectedRiskData]=\"selectedRiskData\" [disabledList]=\"disabledList\"\r\n (selectNodeEvent)=\"selectNodeTreeEvent($event)\" (nodeExpandEvent)=\"nodeExpandEvent($event)\"\r\n [expandOnTitleClick]=\"false\" [expandToChildNode]=\"expandToChildNode\"></qms-tree>\r\n </div>\r\n </mat-expansion-panel>\r\n </div>\r\n </div>\r\n\r\n <!-- <div *ngIf=\"checkedNodeList.length\" class=\"line__divider\"></div>\r\n\r\n <div *ngIf=\"checkedNodeList.length\" class=\"panel__item qms-scrollbar\">\r\n <div class=\"related__item__inline\" *ngFor=\"let item of checkedNodeList\">\r\n <button\r\n *ngIf=\"item.itemName\"\r\n mat-button\r\n class=\"related__item__content\"\r\n qms-tool-tip=\"{{\r\n isEllipsisActive(itemName) ? getItemChipName(item) : ''\r\n }}\"\r\n mode=\"dark\"\r\n >\r\n <span class=\"related__item__content_name\" #itemName>{{\r\n getItemChipName(item)\r\n }}</span>\r\n <mat-icon (click)=\"removeCheckedNodeList()\">cancel</mat-icon>\r\n </button>\r\n </div>\r\n </div> -->\r\n\r\n <div class=\"line__divider\"></div>\r\n\r\n <div class=\"confirm__button__groups\">\r\n <button *ngIf=\"!checkedNodeList.length\" qms-btn style=\"margin-top: 7px\" (click)=\"onAddClick()\">\r\n {{ LANG.ADD }}\r\n </button>\r\n <button *ngIf=\"checkedNodeList.length\" qms-btn style=\"margin-top: 0px\" (click)=\"onAddClick()\">\r\n {{ LANG.ADD }} ({{ checkedNodeList.length }})\r\n </button>\r\n <button qms-btn-text [ngStyle]=\"{ 'margin-top': checkedNodeList.length ? '0px' : '7px' }\" (click)=\"onCloseClick()\">\r\n {{ LANG.CANCEL }}\r\n </button>\r\n </div>\r\n</div>",
26286
26314
  encapsulation: ViewEncapsulation.None,
26287
- styles: ["::-webkit-scrollbar{width:12px}::-webkit-scrollbar-track{background:rgba(0,0,0,.12);background-clip:content-box}::-webkit-scrollbar-thumb{background:rgba(0,0,0,.38);border-radius:20px;width:4px;border:4px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.5);background-clip:content-box;border:4px solid transparent}.qms__popup .button__close{float:right;top:-24px;right:-24px;cursor:pointer}.qms__danger button{border:none;color:var(--text-white);padding:0;text-align:center;text-decoration:none;display:inline-block;cursor:pointer;height:20px;width:20px;font-family:Open Sans;font-size:12px;font-weight:600;font-style:normal;line-height:16px}.qms__danger .red{background-color:var(--button-red-background);margin-left:10px}.qms__danger .yellow{background-color:var(--button-yellow-background);margin-left:10px;color:var(--popup-title-color)}.qms__danger .green{background-color:var(--button-green-background);margin-left:10px}.confirm__button__groups{margin-top:11px}.confirm__button__groups button{min-height:36px;width:auto;font-family:Open Sans;font-weight:500;font-size:14px;letter-spacing:1px;line-height:16px;padding-left:15px;padding-right:15px;margin-right:5px;float:right}.confirm__button__groups .confirm{background:var(--button-background)}.confirm__button__groups .confirm:hover{background:var(--primary-button-background-color);color:var(--primary-button-text-color)}.confirm__button__groups .confirm:disabled{cursor:not-allowed}.confirm__button__groups .cancel{background:var(--button-background)}.confirm__button__groups .cancel:hover{background:var(--primary-button-background-color);color:var(--primary-button-text-color)}.qmslib__related__popup__container .input__field{display:flex;align-items:center}.qmslib__related__popup__container .input__field input{width:100%;padding:10px;outline:none;border:none;background:var(--background-input-text)}.qmslib__related__popup__container .input__field .mat-icon{margin-left:-30px;cursor:pointer;vertical-align:middle}.qmslib__related__popup__container .line__divider{border-bottom:1px solid #ccc;height:1px;margin-top:10px;min-width:300px;max-width:100%}.qmslib__related__popup__container .button__close{float:right;top:-24px;right:-24px;cursor:pointer}.qmslib__related__popup__container .panel__content{height:450px;overflow:auto;margin-top:12px}.qmslib__related__popup__container .panel__content_item{height:350px;overflow:auto;margin-top:12px}.qmslib__related__popup__container .panel-tree .mat-expansion-panel-body{padding:0 12px 12px}.qmslib__related__popup__container .mat-expansion-panel-header{height:30px;font-size:12px;letter-spacing:1px;font-family:Raleway;font-weight:600;padding:0}.qmslib__related__popup__container .mat-expansion-panel-header .mat-expansion-panel-header-title{align-items:center;margin-left:12px}.qmslib__related__popup__container .mat-expansion-panel-header .related_popup_toggle-btn{width:1.5rem;height:1.5rem;line-height:1.5rem}.qmslib__related__popup__container .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:none}.qmslib__related__popup__container .panel__item{height:100px;margin-top:12px;overflow-x:hidden;overflow-y:auto;padding-right:5px;width:100%;max-width:100%;display:flex;flex-wrap:wrap;align-content:flex-start}.qmslib__related__popup__container .panel__item .related__item__inline{max-width:100%}.qmslib__related__popup__container .panel__item .related__item__content{height:32px;line-height:32px;background-color:var(--related-item-background);max-width:100%;margin-bottom:5px;margin-left:2.5px;margin-right:2.5px}.qmslib__related__popup__container .panel__item .related__item__content .mat-icon{color:var(--related-mat-icon-color);font-size:24px}.qmslib__related__popup__container .panel__item .related__item__content span.related__item__content_name{display:inline-block;min-width:calc(100% - 13px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:320px}cdk-virtual-scroll-viewport{overflow-x:hidden}cdk-virtual-scroll-viewport .search__module-result{margin:1.5rem;padding:0 0 .5rem}cdk-virtual-scroll-viewport .search__module-result .search__module-title{font-size:14px;font-weight:600}cdk-virtual-scroll-viewport .search__module-result .search__option{height:auto;line-height:normal;padding:8px 0;border-bottom:1px solid #e0e0e0}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item.mat-2-line.image-item{height:auto}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content{margin:0;border-bottom:none}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .wrap-image.image-square{width:2.5rem;height:100%;background:transparent;align-self:center;margin-right:0}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .wrap-image.image-square img{width:24px;height:24px}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .material-icons-outlined.leading-icon,cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content mat-icon.leading-icon{padding:4px 0 4px 4px}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .subtitle{font-weight:400}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .caption{overflow:hidden;line-height:normal;white-space:normal;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;padding:0;margin:0}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .caption span.search__result__parent-name{display:inline-block;width:auto;width:calc(100% - 13px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .default-subtitle{color:rgba(0,0,0,.38)}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .search__description-icon{margin-right:0;width:12px;height:12px;font-size:12px}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .qms-list-text{border-bottom:none;height:auto}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .breadcrumb-container .qms-breadcrumb-item .mat-icon{font-size:16px!important;padding-bottom:1px}cdk-virtual-scroll-viewport .search__module-result .search__option .mat-option:focus:not(.mat-option-disabled),cdk-virtual-scroll-viewport .search__module-result .search__option.mat-option:hover:not(.mat-option-disabled){background:transparent!important}cdk-virtual-scroll-viewport .search__module-result svg{display:block}#qmslib_related_popup_header_001{margin-bottom:20px;padding:0;font-weight:600;font-family:Raleway}.padding-5{padding:5px}.mat-autocomplete_related-viewport{height:100%;max-height:100%!important}.mat-autocomplete_related-viewport .cdk-virtual-scroll-content-wrapper{width:100%}.mat-autocomplete_related-viewport .related-viewport{min-height:10.25rem}"]
26315
+ styles: ["::-webkit-scrollbar{width:12px}::-webkit-scrollbar-track{background:rgba(0,0,0,.12);background-clip:content-box}::-webkit-scrollbar-thumb{background:rgba(0,0,0,.38);border-radius:20px;width:4px;border:4px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.5);background-clip:content-box;border:4px solid transparent}.qms__popup .button__close{float:right;top:-24px;right:-24px;cursor:pointer}.qms__danger button{border:none;color:var(--text-white);padding:0;text-align:center;text-decoration:none;display:inline-block;cursor:pointer;height:20px;width:20px;font-family:Open Sans;font-size:12px;font-weight:600;font-style:normal;line-height:16px}.qms__danger .red{background-color:var(--button-red-background);margin-left:10px}.qms__danger .yellow{background-color:var(--button-yellow-background);margin-left:10px;color:var(--popup-title-color)}.qms__danger .green{background-color:var(--button-green-background);margin-left:10px}.confirm__button__groups{margin-top:11px}.confirm__button__groups button{min-height:36px;width:auto;font-family:Open Sans;font-weight:500;font-size:14px;letter-spacing:1px;line-height:16px;padding-left:15px;padding-right:15px;margin-right:5px;float:right}.confirm__button__groups .confirm{background:var(--button-background)}.confirm__button__groups .confirm:hover{background:var(--primary-button-background-color);color:var(--primary-button-text-color)}.confirm__button__groups .confirm:disabled{cursor:not-allowed}.confirm__button__groups .cancel{background:var(--button-background)}.confirm__button__groups .cancel:hover{background:var(--primary-button-background-color);color:var(--primary-button-text-color)}.qms-list-item.item-suggestion .image-square.wrap-image{width:2.5rem!important;height:100%!important;background:transparent;align-self:center;margin-right:0}.mat-option:focus:not(.mat-option-disabled),::ng-deep .mat-option:hover:not(.mat-option-disabled){background:transparent!important}.qmslib__related__popup__container .input__field{display:flex;align-items:center}.qmslib__related__popup__container .input__field input{width:100%;padding:10px;outline:none;border:none;background:var(--background-input-text)}.qmslib__related__popup__container .input__field .mat-icon{margin-left:-30px;cursor:pointer;vertical-align:middle}.qmslib__related__popup__container .line__divider{border-bottom:1px solid #ccc;height:1px;margin-top:10px;min-width:300px;max-width:100%}.qmslib__related__popup__container .button__close{float:right;top:-24px;right:-24px;cursor:pointer}.qmslib__related__popup__container .panel__content{height:450px;overflow:auto;margin-top:12px}.qmslib__related__popup__container .panel__content_item{height:350px;overflow:auto;margin-top:12px}.qmslib__related__popup__container .panel-tree .mat-expansion-panel-body{padding:0 12px 12px}.qmslib__related__popup__container .mat-expansion-panel-header{height:30px;font-size:12px;letter-spacing:1px;font-family:Raleway;font-weight:600;padding:0}.qmslib__related__popup__container .mat-expansion-panel-header .mat-expansion-panel-header-title{align-items:center;margin-left:12px}.qmslib__related__popup__container .mat-expansion-panel-header .related_popup_toggle-btn{width:1.5rem;height:1.5rem;line-height:1.5rem}.qmslib__related__popup__container .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:none}.qmslib__related__popup__container .panel__item{height:100px;margin-top:12px;overflow-x:hidden;overflow-y:auto;padding-right:5px;width:100%;max-width:100%;display:flex;flex-wrap:wrap;align-content:flex-start}.qmslib__related__popup__container .panel__item .related__item__inline{max-width:100%}.qmslib__related__popup__container .panel__item .related__item__content{height:32px;line-height:32px;background-color:var(--related-item-background);max-width:100%;margin-bottom:5px;margin-left:2.5px;margin-right:2.5px}.qmslib__related__popup__container .panel__item .related__item__content .mat-icon{color:var(--related-mat-icon-color);font-size:24px}.qmslib__related__popup__container .panel__item .related__item__content span.related__item__content_name{display:inline-block;min-width:calc(100% - 13px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:320px}.search__module-result{margin:1.5rem;padding:0 0 .5rem}.search__module-result .search__module-title{font-size:14px;font-weight:600}.search__module-result .search__option{height:auto;line-height:normal;padding:0;border-bottom:1px solid #e0e0e0}.search__module-result .search__option .qms-list-item.mat-2-line.image-item{height:auto}.search__module-result .search__option .qms-list-item-content{margin:0;border-bottom:none}.search__module-result .search__option .qms-list-item-content .material-icons-outlined.leading-icon,.search__module-result .search__option .qms-list-item-content mat-icon.leading-icon{padding:4px 0 4px 4px}.search__module-result .search__option .qms-list-item-content .caption{overflow:hidden;line-height:normal;white-space:normal;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;padding:0;margin:0}.search__module-result .search__option .qms-list-item-content .caption span.search__result__parent-name{display:inline-block;width:auto;width:calc(100% - 13px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search__module-result .search__option .qms-list-item-content .default-subtitle{color:rgba(0,0,0,.38)}.search__module-result .search__option .qms-list-item-content .search__description-icon{margin-right:0;width:12px;height:12px;font-size:12px}.search__module-result .search__option .qms-list-item-content .qms-list-text{border-bottom:none;height:auto}.search__module-result .search__option .qms-list-item-content .breadcrumb-container .qms-breadcrumb-item .mat-icon{font-size:16px!important;padding-bottom:1px}.search__module-result .search__option .mat-option:focus:not(.mat-option-disabled),.search__module-result .search__option.mat-option:hover:not(.mat-option-disabled){background:transparent!important}.search__module-result svg{display:block}.module-name{margin-bottom:20px;padding:0;font-weight:600;font-family:Raleway}.padding-5{padding:5px}.mat-autocomplete_related-viewport{height:100%;max-height:100%!important}.mat-autocomplete_related-viewport .cdk-virtual-scroll-content-wrapper{width:100%}.mat-autocomplete_related-viewport .related-viewport{min-height:10.25rem}"]
26288
26316
  },] }
26289
26317
  ];
26290
26318
  SelectOneDialog.ctorParameters = () => [
@@ -26299,7 +26327,6 @@ SelectOneDialog.ctorParameters = () => [
26299
26327
  ];
26300
26328
  SelectOneDialog.propDecorators = {
26301
26329
  dataTrees: [{ type: ViewChildren, args: [TreeComponent, {},] }],
26302
- autoComplete: [{ type: ViewChild, args: ['autoCompleteInputSearch', { read: MatAutocompleteTrigger, static: true },] }],
26303
26330
  onMessage: [{ type: HostListener, args: ['window:message', ['$event'],] }]
26304
26331
  };
26305
26332
 
@@ -29041,7 +29068,7 @@ const AnimationTreeDepartment = [
29041
29068
  transition('* => *', [
29042
29069
  query(':enter', [
29043
29070
  style({ opacity: 0, transform: 'translateY(-100%)' }),
29044
- stagger(25, [
29071
+ stagger(30, [
29045
29072
  animate('0.4s cubic-bezier(0.23, 1, 0.320, 1)', style({ opacity: 1, transform: 'none' }))
29046
29073
  ])
29047
29074
  ], { optional: true })
@@ -29049,34 +29076,44 @@ const AnimationTreeDepartment = [
29049
29076
  ])
29050
29077
  ];
29051
29078
 
29079
+ class QMSDepartmentPagingModel extends PageEvent {
29080
+ constructor() {
29081
+ super();
29082
+ this.data = [];
29083
+ this.data = [];
29084
+ }
29085
+ }
29086
+
29052
29087
  class SelectDepartmentTreeComponent {
29053
- constructor(cdRef, domSanitizer, appIconService, iconRegistry, eleRef, trans) {
29088
+ constructor(cdRef, domSanitizer, appIconService, iconRegistry, eleRef, trans, treeDepartmentGlobalService) {
29054
29089
  this.cdRef = cdRef;
29055
29090
  this.domSanitizer = domSanitizer;
29056
29091
  this.appIconService = appIconService;
29057
29092
  this.iconRegistry = iconRegistry;
29058
29093
  this.eleRef = eleRef;
29059
29094
  this.trans = trans;
29095
+ this.treeDepartmentGlobalService = treeDepartmentGlobalService;
29060
29096
  this.enableIncludeChild = false;
29061
29097
  this.enableTreeSearch = false;
29062
29098
  this.isSelectOne = false;
29063
29099
  this.activeViewSearch = false;
29100
+ this.customClass = '';
29101
+ this.arrSkeleton = new Array(6).fill(0);
29064
29102
  this.treeDataSourceConfig = new QMSSelectDepartmentTreeConfig();
29103
+ this.isIncludeChildren = false;
29065
29104
  this.checkSearchMappingTree = true;
29066
29105
  this.enablePagingSearch = true;
29067
29106
  this.onSearchEvent = new EventEmitter();
29068
29107
  this.onPagingSearchEvent = new EventEmitter();
29069
29108
  this.ngUnsubscribe = new Subject();
29070
29109
  this.isLoaded = false;
29071
- this.resultGroupSelected = [];
29072
- this.resultSingleSelected = [];
29073
29110
  this.resultSearchSelected = [];
29074
29111
  this.resultSelected = [];
29075
29112
  this.getDataTree$ = new BehaviorSubject([]);
29076
29113
  this.onValueChangeEvent = new EventEmitter();
29077
- this.searchDepartment$ = new Subject();
29114
+ this.selectionNodeChangeEvent = new EventEmitter();
29115
+ this.searchDepartment$ = new BehaviorSubject(new QMSDepartmentPagingModel());
29078
29116
  this.resultSearch = [];
29079
- this.pagingResultSearch = [];
29080
29117
  this.isSelectAllResultSearch = false;
29081
29118
  this.indeterminateSearchResult = false;
29082
29119
  this.currentPaginationConfig = {
@@ -29111,6 +29148,8 @@ class SelectDepartmentTreeComponent {
29111
29148
  flatNode.itemIconSvg = node.itemIconSvg;
29112
29149
  flatNode.isFile = node.isFile;
29113
29150
  flatNode.disabled = node.disabled;
29151
+ flatNode.isGroup = node.isGroup;
29152
+ flatNode.groupId = node.groupId;
29114
29153
  this.flatTreeNodeMap.set(flatNode, node);
29115
29154
  this.nestedTreeNodeMap.set(node, flatNode);
29116
29155
  return flatNode;
@@ -29119,13 +29158,12 @@ class SelectDepartmentTreeComponent {
29119
29158
  this._getChild = (node) => node.children;
29120
29159
  this.isExpandable = (node) => node.expandable;
29121
29160
  this.hasChild = (_, node) => node.expandable;
29122
- this.treeControl = new FlatTreeControl(this.getLevel, this.isExpandable);
29123
- this.treeFlattener = new MatTreeFlattener(this._transformer, this.getLevel, this.isExpandable, this._getChild);
29124
- this.dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);
29125
29161
  // Init tree data
29126
29162
  this.getDataTree$
29127
29163
  .pipe(takeUntil(this.ngUnsubscribe))
29128
29164
  .subscribe(data => {
29165
+ if (!this.dataSource)
29166
+ return;
29129
29167
  this.dataSource.data = data;
29130
29168
  });
29131
29169
  // Register icon
@@ -29141,58 +29179,23 @@ class SelectDepartmentTreeComponent {
29141
29179
  this.LANG = this.trans.getObjectLang(res);
29142
29180
  }
29143
29181
  });
29144
- this.searchDepartment$
29145
- .pipe(takeUntil(this.ngUnsubscribe))
29146
- .subscribe(result => {
29147
- this.resultSearch = [];
29148
- if (result && result.length) {
29149
- result.forEach(item => {
29150
- const node = this.treeControl.dataNodes.find(node => node.id === item.id);
29151
- const parents = node ? this._getAllParentNode(node) : [];
29152
- this.resultSearch.push(Object.assign(Object.assign({}, item), { disabled: this.checkSearchMappingTree && !node, path: [
29153
- ...(parents.map((x, index) => ({
29154
- id: x.id,
29155
- name: x.name,
29156
- })).reverse() || []),
29157
- {
29158
- id: item.id,
29159
- name: item.name,
29160
- }
29161
- ] }));
29162
- });
29163
- }
29164
- this.currentPaginationConfig.pageIndex = 0;
29165
- this.currentPaginationConfig.pageSize = 10;
29166
- this.getLoading$.next(false);
29167
- this.textResultSearch = this.formSearchControl.value;
29168
- this.onPagingSearchResult(this.currentPaginationConfig);
29169
- this._mapToResultSearch();
29170
- this._checkStateCheckboxAllSearch();
29171
- this.setIndexView(1);
29172
- this.cdRef.detectChanges();
29173
- });
29174
- this.scrollToNodeEvent$.pipe(takeUntil(this.ngUnsubscribe), switchMap((val) => {
29175
- const delayTiming = this.indexView === 1 ? 700 : 0;
29176
- this.setIndexView(0);
29177
- return of(val).pipe(delay(delayTiming));
29178
- })).subscribe(res => {
29179
- this.onScrollIntoNode(res);
29180
- });
29181
- this.getActiveNodeEvent$.pipe(takeUntil(this.ngUnsubscribe), switchMap(val => {
29182
- this.activeNode = val;
29183
- return timer(1500);
29184
- })).subscribe(_ => {
29185
- this.activeNode = '';
29186
- });
29182
+ this._handleSearchEvent();
29183
+ this._handleActiveNodeEvent();
29184
+ this._handleItemSelectionChanged();
29187
29185
  this.getLoading$.pipe(takeUntil(this.ngUnsubscribe))
29188
29186
  .subscribe(res => {
29189
29187
  res ? this.formSearchControl.disable() : this.formSearchControl.enable();
29190
29188
  });
29191
29189
  }
29190
+ set rowsSkeleton(value) {
29191
+ this.arrSkeleton = new Array(value).fill(0);
29192
+ }
29192
29193
  set treeData(value) {
29194
+ this.updateDataTree([]);
29193
29195
  this.treeDataSourceConfig.treeData = value || [];
29194
- this.updateDataTree(this.treeDataSourceConfig.treeData);
29196
+ this._initTreeData();
29195
29197
  }
29198
+ ;
29196
29199
  set selectedList(value) {
29197
29200
  this.treeDataSourceConfig.selectedList = value || [];
29198
29201
  }
@@ -29200,10 +29203,15 @@ class SelectDepartmentTreeComponent {
29200
29203
  this.treeDataSourceConfig.selectIncludeLabel = label;
29201
29204
  }
29202
29205
  get currentTreeData() {
29203
- return this.getDataTree$.value;
29206
+ return this.getDataTree$.getValue();
29207
+ }
29208
+ ngAfterContentInit() {
29209
+ this.cdRef.detectChanges();
29210
+ }
29211
+ ngAfterViewInit() {
29212
+ this.cdRef.detectChanges();
29204
29213
  }
29205
29214
  ngOnInit() {
29206
- this._initTreeData();
29207
29215
  this._initCheckListSelected();
29208
29216
  }
29209
29217
  ngOnDestroy() {
@@ -29211,97 +29219,259 @@ class SelectDepartmentTreeComponent {
29211
29219
  this.ngUnsubscribe.complete();
29212
29220
  }
29213
29221
  _initTreeData() {
29214
- if (this.treeDataSourceConfig.treeData.length) {
29215
- const rootNode = this.treeDataSourceConfig.treeData.filter(item => !item.parentId)
29216
- .map((item, _index) => {
29217
- const node = {
29218
- id: item.id,
29219
- name: item.name,
29220
- markedGetChildren: item.markedGetChildren,
29221
- children: [],
29222
- disabled: this.treeDataSourceConfig.disabledList.includes(item.id),
29223
- itemIcon: item.itemIcon,
29224
- itemMatIcon: item.itemMatIcon,
29225
- itemIconSvg: item.itemIconSvg
29226
- };
29227
- return node;
29228
- });
29229
- if (!rootNode.length)
29230
- throw ('Data invalid.');
29231
- this.updateDataTree(rootNode);
29232
- const groupResult = this.treeDataSourceConfig.treeData.filter(x => x.parentId).reduce((result, currentValue) => {
29233
- (result[currentValue['parentId']] = result[currentValue['parentId']] || []).push(currentValue);
29234
- return result;
29235
- }, {});
29236
- const getAllParent = (parentId) => {
29237
- const parents = [];
29238
- let parent = this.treeDataSourceConfig.treeData.find(x => x.id == parentId);
29239
- while (parent) {
29240
- parents.push(parent);
29241
- parent = this.treeDataSourceConfig.treeData.find(x => x.id == parent.parentId);
29242
- }
29243
- return parents;
29222
+ this.treeControl = new FlatTreeControl(this.getLevel, this.isExpandable);
29223
+ this.treeFlattener = new MatTreeFlattener(this._transformer, this.getLevel, this.isExpandable, this._getChild);
29224
+ this.dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);
29225
+ const _treeDataInput = _.cloneDeep(this.treeDataSourceConfig.treeData);
29226
+ if (!_treeDataInput.length)
29227
+ return;
29228
+ const rootNode = _treeDataInput.filter(item => !item.parentId)
29229
+ .map((item, _index) => {
29230
+ const node = {
29231
+ id: item.id,
29232
+ name: item.name,
29233
+ markedGetChildren: item.markedGetChildren,
29234
+ children: [],
29235
+ isFile: false,
29236
+ itemIcon: item.itemIcon,
29237
+ itemMatIcon: item.itemMatIcon,
29238
+ itemIconSvg: item.itemIconSvg,
29239
+ parentId: item.parentId,
29240
+ isGroup: false
29244
29241
  };
29245
- if (!(rootNode && !!rootNode.length))
29246
- return;
29247
- let groupResultKey = Object.keys(groupResult).filter(x => getAllParent(x).length);
29248
- while (groupResultKey.length) {
29249
- groupResultKey = groupResultKey.filter((key) => {
29250
- const parentFlatNode = this.treeControl.dataNodes.find(node => node.id === key);
29251
- if (parentFlatNode) {
29252
- const parentNestedNode = this.convertToNestedNode(parentFlatNode);
29253
- parentNestedNode.markedGetChildren = true;
29254
- parentNestedNode.children = _.cloneDeep(groupResult[key]);
29255
- parentNestedNode.childCount = parentNestedNode.children.length;
29256
- this.updateDataTree(this.currentTreeData);
29257
- groupResult[key] = [];
29258
- return false;
29259
- }
29260
- return true;
29261
- });
29262
- }
29242
+ return node;
29243
+ });
29244
+ if (!rootNode.length)
29245
+ throw ('Data invalid.');
29246
+ const invalidItems = _treeDataInput.filter(item => item.id == item.parentId) || [];
29247
+ if (invalidItems.length) {
29248
+ throw (`data ${JSON.stringify(invalidItems)} invalid`);
29249
+ }
29250
+ this.updateDataTree(rootNode);
29251
+ const groupResult = _treeDataInput.filter(x => x.parentId).reduce((result, currentValue) => {
29252
+ (result[currentValue['parentId']] = result[currentValue['parentId']] || []).push(currentValue);
29253
+ return result;
29254
+ }, {});
29255
+ const checkValidGroup = (id) => {
29256
+ const parents = [];
29257
+ let parent = _treeDataInput.find(x => x.id == id);
29258
+ while (parent === null || parent === void 0 ? void 0 : parent.id) {
29259
+ parents.push(parent);
29260
+ parent = _treeDataInput.find(x => x.id == (parent === null || parent === void 0 ? void 0 : parent.parentId));
29261
+ }
29262
+ return parents.some(x => !x.parentId);
29263
+ };
29264
+ if (!(rootNode && !!rootNode.length))
29265
+ return;
29266
+ let groupResultKey = Object.keys(groupResult).filter(checkValidGroup);
29267
+ while (groupResultKey.length) {
29268
+ groupResultKey = groupResultKey.filter((key) => {
29269
+ const parentFlatNode = this.treeControl.dataNodes.find(node => node.id === key);
29270
+ if (parentFlatNode) {
29271
+ const parentNestedNode = this.convertToNestedNode(parentFlatNode);
29272
+ parentNestedNode.markedGetChildren = true;
29273
+ parentNestedNode.children = _.cloneDeep(groupResult[key]);
29274
+ parentNestedNode.childCount = parentNestedNode.children.length;
29275
+ parentNestedNode.isGroup = false;
29276
+ this.updateDataTree(this.currentTreeData);
29277
+ groupResult[key] = [];
29278
+ return false;
29279
+ }
29280
+ return true;
29281
+ });
29263
29282
  }
29283
+ this.getLoading$.next(false);
29284
+ this._initCheckListSelected();
29264
29285
  }
29265
29286
  _initCheckListSelected() {
29266
29287
  if (!this.treeDataSourceConfig.selectedList.length)
29267
29288
  return;
29268
- this.resultGroupSelected = this.treeDataSourceConfig.selectedList.filter(item => item.children);
29269
- this.resultSingleSelected = this.treeDataSourceConfig.selectedList.filter(item => item.children === null);
29270
- this.treeDataSourceConfig.selectedList.forEach(item => {
29289
+ const selectedList = this.treeDataSourceConfig.selectedList;
29290
+ selectedList.forEach(item => {
29271
29291
  var _a;
29272
- const flatNode = this.treeControl.dataNodes.find(node => node.id === item.id);
29273
- if (flatNode) {
29274
- this.checkListSelection.select(flatNode);
29292
+ const node = this.treeControl.dataNodes.find(x => x.id === item.id);
29293
+ if (node) {
29294
+ const nestedNode = this.convertToNestedNode(node);
29295
+ nestedNode.isGroup = item.isGroup;
29296
+ nestedNode.groupId = item.groupId;
29297
+ this.checkListSelection.select(node);
29298
+ this._handleCheckNode(node);
29275
29299
  ((_a = item.children) === null || _a === void 0 ? void 0 : _a.length) && item.children.forEach(child => {
29276
29300
  const node = this.treeControl.dataNodes.find(_x => _x.id === child.id);
29277
29301
  if (node) {
29278
- this.checkListSelection.select(node);
29279
29302
  this.onExpandAllParent(node);
29280
29303
  }
29281
29304
  });
29282
- this.onExpandAllParent(flatNode);
29305
+ this.onExpandAllParent(node);
29283
29306
  }
29284
- this.resultSelected = [...this.resultSingleSelected, ...this.resultGroupSelected];
29285
- this.onValueChangeEvent.emit(this.resultSelected);
29286
29307
  });
29308
+ this.cdRef.detectChanges();
29287
29309
  }
29288
- updateDataTree(data) {
29289
- this.getDataTree$.next(data);
29290
- }
29291
- setResultSearch(data) {
29292
- this.searchDepartment$.next(data);
29293
- }
29294
- onExpandNode(node) {
29295
- }
29296
- onOptionSearchSelected(value) {
29297
- const flatNode = this.treeControl.dataNodes.find(node => node.id === value.id);
29298
- if (!flatNode)
29299
- return;
29300
- this.checkListSelection.select(flatNode);
29301
- this._handleCheckNode(flatNode);
29302
- this.onScrollIntoNode(flatNode.id);
29310
+ //Handle item selection changed
29311
+ _handleItemSelectionChanged() {
29312
+ this.checkListSelection.changed
29313
+ .pipe(takeUntil(this.ngUnsubscribe))
29314
+ .subscribe(({ added, removed }) => {
29315
+ const checkExistInResult = (node) => this.resultSelected.findIndex(x => x.id === node.id) > -1;
29316
+ if (added.length) {
29317
+ added.forEach(node => {
29318
+ const nestedNode = this.convertToNestedNode(node);
29319
+ nestedNode.children = [];
29320
+ nestedNode.childCount = this.getListChildrenOfNode(node).length;
29321
+ const existGroup = this._getAllParentNode(node).map(item => this.convertToNestedNode(item)).find(x => x.isGroup);
29322
+ if (!!existGroup) {
29323
+ nestedNode.groupId = existGroup.id;
29324
+ if (!existGroup.children.some(x => x.id === nestedNode.id)) {
29325
+ existGroup.children.push(nestedNode);
29326
+ this._onSelectionNodeChangeEvent('updated', [existGroup]);
29327
+ }
29328
+ if (!checkExistInResult(existGroup)) {
29329
+ this.resultSelected.push(existGroup);
29330
+ this._onSelectionNodeChangeEvent('added', [existGroup]);
29331
+ }
29332
+ this.resultSelected.forEach((item, index) => {
29333
+ if (item.groupId === existGroup.id) {
29334
+ this.resultSelected.splice(index, 1);
29335
+ this._onSelectionNodeChangeEvent('removed', [item]);
29336
+ }
29337
+ });
29338
+ return;
29339
+ }
29340
+ if (checkExistInResult(node))
29341
+ return;
29342
+ this.resultSelected.push(nestedNode);
29343
+ this._onSelectionNodeChangeEvent('added', [nestedNode]);
29344
+ });
29345
+ }
29346
+ if (removed.length) {
29347
+ removed.forEach(node => {
29348
+ const nestedNode = this.convertToNestedNode(node);
29349
+ const children = this.getListChildrenOfNode(node);
29350
+ if (nestedNode.isGroup) {
29351
+ const _item = this.resultSelected.find(x => x.id === node.id);
29352
+ if (!_item)
29353
+ return;
29354
+ children.forEach(item => {
29355
+ item.groupId = null;
29356
+ });
29357
+ this.resultSelected.splice(this.resultSelected.indexOf(_item), 1);
29358
+ this._onSelectionNodeChangeEvent('removed', [_item]);
29359
+ return;
29360
+ }
29361
+ const group = this.resultSelected.find(x => x.id === nestedNode.groupId);
29362
+ if (!group) {
29363
+ const _item = this.resultSelected.find(x => x.id === node.id);
29364
+ if (!_item)
29365
+ return;
29366
+ this.resultSelected.splice(this.resultSelected.indexOf(_item), 1);
29367
+ this._onSelectionNodeChangeEvent('removed', [_item]);
29368
+ return;
29369
+ }
29370
+ const arrCheck = this.getListChildrenOfNode(node).concat(node);
29371
+ arrCheck.forEach(item => {
29372
+ const _node = this.treeControl.dataNodes.find(x => x.id === item.id);
29373
+ if (group.children.some(x => x.id === _node.id && !this.checkListSelection.isSelected(_node))) {
29374
+ const _item = group.children.find(x => x.id === item.id);
29375
+ if (!_item)
29376
+ return;
29377
+ group.children.splice(group.children.indexOf(_item), 1);
29378
+ this._onSelectionNodeChangeEvent('updated', [group]);
29379
+ }
29380
+ });
29381
+ });
29382
+ }
29383
+ this.onValueChangeEvent.emit(this.resultSelected);
29384
+ });
29385
+ }
29386
+ _onSelectionNodeChangeEvent(state, data) {
29387
+ switch (state) {
29388
+ case 'removed':
29389
+ this.selectionNodeChangeEvent.emit({
29390
+ removed: data,
29391
+ added: [],
29392
+ updated: [],
29393
+ source: new SelectionModel(true, this.resultSelected)
29394
+ });
29395
+ break;
29396
+ case 'updated':
29397
+ this.selectionNodeChangeEvent.emit({
29398
+ removed: [],
29399
+ added: [],
29400
+ updated: data,
29401
+ source: new SelectionModel(true, this.resultSelected)
29402
+ });
29403
+ break;
29404
+ case 'added':
29405
+ this.selectionNodeChangeEvent.emit({
29406
+ removed: [],
29407
+ added: data,
29408
+ updated: [],
29409
+ source: new SelectionModel(true, this.resultSelected)
29410
+ });
29411
+ break;
29412
+ default:
29413
+ return;
29414
+ }
29415
+ }
29416
+ _handleSearchEvent() {
29417
+ this.searchDepartment$
29418
+ .pipe(takeUntil(this.ngUnsubscribe))
29419
+ .subscribe(result => {
29420
+ this.resultSearch = [];
29421
+ if (result && result.length) {
29422
+ result.data.forEach(item => {
29423
+ const node = this.treeControl.dataNodes.find(node => node.id === item.id);
29424
+ const parents = node ? this._getAllParentNode(node) : [];
29425
+ this.resultSearch.push(Object.assign(Object.assign({}, item), { disabled: this.checkSearchMappingTree && !node, path: [
29426
+ ...(parents.map((x, index) => ({
29427
+ id: x.id,
29428
+ name: x.name,
29429
+ })).reverse() || []),
29430
+ {
29431
+ id: item.id,
29432
+ name: item.name,
29433
+ }
29434
+ ] }));
29435
+ });
29436
+ this.getLoading$.next(false);
29437
+ this.textResultSearch = this.formSearchControl.value;
29438
+ this._mapToResultSearch();
29439
+ this._checkStateCheckboxAllSearch();
29440
+ this.setIndexView(1);
29441
+ }
29442
+ });
29443
+ }
29444
+ _handleActiveNodeEvent() {
29445
+ this.scrollToNodeEvent$.pipe(takeUntil(this.ngUnsubscribe), switchMap((val) => {
29446
+ const delayTiming = this.indexView === 1 ? 700 : 0;
29447
+ this.setIndexView(0);
29448
+ return of(val).pipe(delay(delayTiming));
29449
+ })).subscribe(res => {
29450
+ this.onScrollIntoNode(res);
29451
+ });
29452
+ this.getActiveNodeEvent$.pipe(takeUntil(this.ngUnsubscribe), switchMap(val => {
29453
+ this.activeNode = val;
29454
+ return timer(1500);
29455
+ })).subscribe(_ => {
29456
+ this.activeNode = '';
29457
+ });
29303
29458
  }
29304
- onSlideToggleChange() {
29459
+ updateDataTree(data) {
29460
+ this.getDataTree$.next(data);
29461
+ }
29462
+ setResultSearch(data) {
29463
+ this.getLoading$.next(false);
29464
+ this.searchDepartment$.next(data);
29465
+ }
29466
+ onExpandNode(node) {
29467
+ }
29468
+ onOptionSearchSelected(value) {
29469
+ const flatNode = this.treeControl.dataNodes.find(node => node.id === value.id);
29470
+ if (!flatNode)
29471
+ return;
29472
+ this.checkListSelection.select(flatNode);
29473
+ this._handleCheckNode(flatNode);
29474
+ this.onScrollIntoNode(flatNode.id);
29305
29475
  }
29306
29476
  displayWhenSelectDepartmentOption($event) {
29307
29477
  return '';
@@ -29314,8 +29484,6 @@ class SelectDepartmentTreeComponent {
29314
29484
  else {
29315
29485
  this._handleCheckNode(node);
29316
29486
  }
29317
- this.onValueChangeEvent.emit(this.resultSelected);
29318
- this._mapToResultSearch();
29319
29487
  this._checkStateCheckboxAllSearch();
29320
29488
  }
29321
29489
  _handleSelectOne(node) {
@@ -29342,7 +29510,6 @@ class SelectDepartmentTreeComponent {
29342
29510
  this.checkListSelection.deselect(flatNode);
29343
29511
  flatNode && this._handleCheckNode(flatNode);
29344
29512
  this._checkStateCheckboxAllSearch();
29345
- this.onValueChangeEvent.emit(this.resultSelected);
29346
29513
  }
29347
29514
  isIndeterminate(node) {
29348
29515
  const childSelected = this.getListChildrenOfNode(node).filter(item => this.checkListSelection.isSelected(item));
@@ -29353,73 +29520,37 @@ class SelectDepartmentTreeComponent {
29353
29520
  return listCheck.every(item => this.checkListSelection.isSelected(item));
29354
29521
  }
29355
29522
  _handleCheckNode(node) {
29356
- const isSelectedNode = this.checkListSelection.isSelected(node);
29357
- const isOwnerGroup = !!this.resultGroupSelected.find(gr => (gr === null || gr === void 0 ? void 0 : gr.id) === node.id);
29358
- if (isSelectedNode) {
29359
- const children = this.treeDataSourceConfig.includeChildren && this.getListChildrenOfNode(node);
29360
- children && this.checkListSelection.select(...children);
29361
- }
29362
- else {
29363
- const childSelected = this.getChildrenSelected(node);
29364
- // check node is owner group or mode is 'include children' and remove all children
29365
- (isOwnerGroup || this.treeDataSourceConfig.includeChildren) && this.checkListSelection.deselect(...childSelected);
29366
- }
29367
- this._updateGroupResult(node);
29368
- this._updateSingleResult();
29369
- this.resultSelected = [...this.resultSingleSelected, ...this.resultGroupSelected];
29370
- this._mapToResultSearch();
29371
- }
29372
- // Check group root contain node and re-update chilren
29373
- _updateGroupResult(node) {
29523
+ const isSelected = this.checkListSelection.isSelected(node);
29524
+ const childSelected = this.getChildrenSelected(node);
29374
29525
  const nestedNode = this.convertToNestedNode(node);
29375
- const existedGroup = this._getExistedGroup(node);
29376
- const childrenSelected = this._mapToNestedListNode(this.getChildrenSelected(this.convertToFlatNode(existedGroup) || node));
29377
- const item = this.resultGroupSelected.find(gr => gr.id == nestedNode.id || gr.id === (existedGroup === null || existedGroup === void 0 ? void 0 : existedGroup.id));
29378
- if (!!item) {
29379
- item.children = childrenSelected;
29380
- }
29381
- else {
29382
- this.treeDataSourceConfig.includeChildren && this.resultGroupSelected.push(Object.assign(Object.assign({}, nestedNode), { children: childrenSelected }));
29526
+ if (isSelected) {
29527
+ // Check existed group
29528
+ const existedGroup = this._getAllParentNode(node).find(x => this.convertToNestedNode(x).isGroup);
29529
+ if (!this.isIncludeChildren) {
29530
+ // nestedNode.isGroup = false;
29531
+ nestedNode.groupId = existedGroup === null || existedGroup === void 0 ? void 0 : existedGroup.id;
29532
+ return;
29533
+ }
29534
+ const children = this.getListChildrenOfNode(node);
29535
+ nestedNode.isGroup = !existedGroup && !!children.length;
29536
+ if (!children.length)
29537
+ return;
29538
+ children.forEach(x => {
29539
+ const _node = this.convertToNestedNode(x);
29540
+ _node.groupId = existedGroup ? existedGroup.id : node.id;
29541
+ _node.isGroup = false;
29542
+ });
29543
+ this.checkListSelection.deselect(...childSelected.map(this.resetNode));
29544
+ this.checkListSelection.select(...children.map(this.resetNode));
29545
+ return;
29383
29546
  }
29384
- this._checkGroupSelected(childrenSelected);
29385
- }
29386
- // Check single selected result
29387
- _updateSingleResult() {
29388
- let excludeChildOfGroup = [];
29389
- this.resultGroupSelected.forEach(gr => {
29390
- excludeChildOfGroup = [...excludeChildOfGroup, ...gr.children.map(x => x.id)];
29391
- });
29392
- this.resultSingleSelected = this.treeControl.dataNodes.filter(item => {
29393
- const isSelected = this.checkListSelection.isSelected(item);
29394
- const existedGroup = this._getExistedGroup(item);
29395
- const isOwnerGroup = !!this.resultGroupSelected.find(x => (x === null || x === void 0 ? void 0 : x.id) === item.id);
29396
- return isSelected && !existedGroup && !isOwnerGroup && !excludeChildOfGroup.includes(item.id);
29397
- }).map(item => {
29398
- const nestedNode = this.convertToNestedNode(item);
29399
- nestedNode.children = null;
29400
- return nestedNode;
29401
- });
29402
- }
29403
- _checkGroupSelected(childSelected) {
29404
- this.resultGroupSelected = this.resultGroupSelected.filter(gr => {
29405
- const flatNode = this.treeControl.dataNodes.find(node => node.id === gr.id);
29406
- const childSelectedInGroup = gr.children.filter(x => childSelected.includes(x));
29407
- gr.childCount = this.getListChildrenOfNode(flatNode).length;
29408
- // 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
29409
- const arrChild = this.treeDataSourceConfig.includeChildren ? childSelected : childSelectedInGroup;
29410
- return gr.childCount > 0 && this.checkListSelection.isSelected(flatNode) && !arrChild.find(_x => _x.id === gr.id);
29411
- });
29547
+ const deselectNodes = (this.isIncludeChildren || nestedNode.isGroup) ? childSelected : [node];
29548
+ this.checkListSelection.deselect(...deselectNodes);
29549
+ nestedNode.isGroup = false;
29412
29550
  }
29413
- _getExistedGroup(node) {
29414
- const allParent = this._getAllParentNode(node);
29415
- const listGroupIds = this.resultGroupSelected.map(gr => gr.id);
29416
- let existedGroup;
29417
- allParent.forEach(item => {
29418
- if (listGroupIds.includes(item.id)) {
29419
- existedGroup = this.convertToNestedNode(item);
29420
- }
29421
- });
29422
- return existedGroup;
29551
+ resetNode(node) {
29552
+ node.isGroup = false;
29553
+ return node;
29423
29554
  }
29424
29555
  getChildrenSelected(node) {
29425
29556
  return this.getListChildrenOfNode(node).filter(x => this.checkListSelection.isSelected(x));
@@ -29431,23 +29562,11 @@ class SelectDepartmentTreeComponent {
29431
29562
  return flatNodeList.map(item => this.convertToNestedNode(item));
29432
29563
  }
29433
29564
  convertToNestedNode(node) {
29434
- return this.flatTreeNodeMap.get(node);
29565
+ return this.flatTreeNodeMap.get(node) || {};
29435
29566
  }
29436
29567
  convertToFlatNode(node) {
29437
29568
  return this.nestedTreeNodeMap.get(node);
29438
29569
  }
29439
- _getRootSelected(node) {
29440
- const parentList = this._getAllParentNode(node);
29441
- let groupExist;
29442
- if (parentList.length) {
29443
- parentList.forEach(item => {
29444
- if (this.checkListSelection.isSelected(item)) {
29445
- groupExist = item;
29446
- }
29447
- });
29448
- }
29449
- return groupExist;
29450
- }
29451
29570
  _getAllParentNode(node) {
29452
29571
  const listParent = [];
29453
29572
  let parent = this._getParentNode(node);
@@ -29493,12 +29612,13 @@ class SelectDepartmentTreeComponent {
29493
29612
  this.getActiveNodeEvent$.next(nodeId);
29494
29613
  }
29495
29614
  onSearch() {
29496
- if (this.formSearchControl.value) {
29497
- this.getLoading$.next(true);
29498
- this.setIndexView(1);
29499
- this.onSearchEvent.emit(this.formSearchControl.value);
29615
+ this.getLoading$.next(true);
29616
+ this.setIndexView(1);
29617
+ this.onSearchEvent.emit(this.formSearchControl.value);
29618
+ if (!this.paginatorSearch)
29500
29619
  return;
29501
- }
29620
+ this.paginatorSearch.changePage(0);
29621
+ this.paginatorSearch.renderDisplayNumberOfpages();
29502
29622
  }
29503
29623
  onClickResultItem(item) {
29504
29624
  const node = this.treeControl.dataNodes.find(x => item.id === x.id);
@@ -29522,7 +29642,6 @@ class SelectDepartmentTreeComponent {
29522
29642
  }
29523
29643
  this._handleCheckResutlSearch(item);
29524
29644
  this._checkStateCheckboxAllSearch();
29525
- this.onValueChangeEvent.emit(this.resultSelected);
29526
29645
  }
29527
29646
  _mapToResultSearch() {
29528
29647
  if (!!this.resultSearch.length)
@@ -29540,43 +29659,27 @@ class SelectDepartmentTreeComponent {
29540
29659
  }
29541
29660
  onSelectAllSearchResult(checked) {
29542
29661
  this.isSelectAllResultSearch = !checked;
29543
- const handle = (arr) => {
29544
- arr.length && arr.forEach(item => {
29545
- if (this.isSelectAllResultSearch) {
29546
- !this.checkListSelectionSearch.isSelected(item) && this.checkListSelectionSearch.select(item);
29547
- }
29548
- else {
29549
- this.checkListSelectionSearch.deselect(item);
29550
- }
29551
- this._handleCheckResutlSearch(item);
29552
- });
29553
- };
29554
- if (this.treeDataSourceConfig.includeChildren) {
29555
- const mainGroup = this.pagingResultSearch.filter((item) => {
29556
- const mainGroup = this.pagingResultSearch.filter((item) => {
29557
- const node = this.treeControl.dataNodes.find(x => x.id === item.id);
29558
- const existItemGroup = this._getAllParentNode(node).filter(x => this.pagingResultSearch.some(x1 => x1.id === x.id));
29559
- return existItemGroup.length === 0;
29560
- });
29561
- handle(mainGroup);
29562
- });
29563
- }
29564
- else {
29565
- handle(this.pagingResultSearch);
29566
- }
29662
+ this.resultSearch.length && this.resultSearch.forEach(item => {
29663
+ if (this.isSelectAllResultSearch) {
29664
+ !this.checkListSelectionSearch.isSelected(item) && this.checkListSelectionSearch.select(item);
29665
+ }
29666
+ else {
29667
+ this.checkListSelectionSearch.deselect(item);
29668
+ }
29669
+ this._handleCheckResutlSearch(item);
29670
+ });
29567
29671
  this._checkStateCheckboxAllSearch();
29568
29672
  this.onValueChangeEvent.emit(this.resultSelected);
29569
29673
  }
29570
29674
  _checkStateCheckboxAllSearch() {
29571
- this.isSelectAllResultSearch = !!this.pagingResultSearch.length && this.pagingResultSearch.every(x => this.checkListSelectionSearch.isSelected(x));
29572
- this.indeterminateSearchResult = !this.isSelectAllResultSearch && !!this.pagingResultSearch.length && this.pagingResultSearch.some(x => this.checkListSelectionSearch.isSelected(x));
29675
+ this.isSelectAllResultSearch = !!this.resultSearch.length && this.resultSearch.every(x => this.checkListSelectionSearch.isSelected(x));
29676
+ this.indeterminateSearchResult = !this.isSelectAllResultSearch && !!this.resultSearch.length && this.resultSearch.some(x => this.checkListSelectionSearch.isSelected(x));
29573
29677
  }
29574
29678
  isDisableChecboxAllSearch() {
29575
- return this.pagingResultSearch.length && this.pagingResultSearch.every(x => x.disabled);
29679
+ return this.resultSearch && this.resultSearch.every(x => x.disabled);
29576
29680
  }
29577
29681
  onPagingSearchResult(val) {
29578
- this.currentPaginationConfig = val;
29579
- this.pagingResultSearch = this.enablePagingSearch ? this.resultSearch.slice(val.pageIndex * val.pageSize, (val.pageIndex * val.pageSize) + val.pageSize) : this.resultSearch;
29682
+ this.getLoading$.next(true);
29580
29683
  this._checkStateCheckboxAllSearch();
29581
29684
  this.onPagingSearchEvent.emit(val);
29582
29685
  }
@@ -29585,7 +29688,7 @@ class SelectDepartmentTreeComponent {
29585
29688
  }
29586
29689
  setIndexView(index) {
29587
29690
  if (index === 1) {
29588
- this.treeDataSourceConfig.includeChildren = false;
29691
+ this.isIncludeChildren = false;
29589
29692
  }
29590
29693
  this.indexView = index;
29591
29694
  }
@@ -29593,17 +29696,17 @@ class SelectDepartmentTreeComponent {
29593
29696
  return JSON.parse(localStorage.getItem('selectedNode'));
29594
29697
  }
29595
29698
  setSelectedNodeStorage(node) {
29596
- this.treeDataSourceConfig.includeChildren && localStorage.setItem('selectedNode', JSON.stringify(node));
29699
+ this.isIncludeChildren && localStorage.setItem('selectedNode', JSON.stringify(node));
29597
29700
  }
29598
29701
  }
29599
29702
  SelectDepartmentTreeComponent.decorators = [
29600
29703
  { type: Component, args: [{
29601
29704
  selector: 'qms-select-department-tree',
29602
- template: "<div class=\"qms-select-department-tree-container\">\r\n <div class=\"input-select-department\">\r\n <form (ngSubmit)=\"!getLoading$.value && onSearch()\" *ngIf=\"enableTreeSearch\" class=\"input-field\">\r\n <mat-form-field class=\"w100\" qms-form qms-search-field>\r\n <input [formControl]=\"formSearchControl\" type=\"text\" placeholder=\"Search\" matInput />\r\n <button *ngIf=\"!getLoading$.value\" type=\"submit\" qms-btn-icon color=\"light\" matSuffix>\r\n <mat-icon>search</mat-icon>\r\n </button>\r\n <mat-progress-spinner [@inOutAnimation] matSuffix mode=\"indeterminate\" diameter=\"20\"\r\n *ngIf=\"getLoading$.value\"></mat-progress-spinner>\r\n <div *ngIf=\"!!formSearchControl.value && !getLoading$.value\" qms-input-clear matSuffix>\r\n <button qms-btn-icon color=\"light\" [@inOutAnimation] aria-label=\"Clear\" (click)=\"formSearchControl.reset()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </mat-form-field>\r\n </form>\r\n <div [@inOutAnimation] *ngIf=\"indexView === 1 && textResultSearch\" class=\"sub-text ms-1 fw500\">\r\n {{LANG.RESULT_SEARCH_FOR}}<i><b>\"{{textResultSearch}}\"</b></i>\r\n </div>\r\n <div [class.justify-content-between]=\"enableIncludeChild && !isSelectOne\"\r\n class=\"select__toggle-include toggle-include-child mt-1 d-flex justify-content-end align-items-center\">\r\n <mat-slide-toggle *ngIf=\"enableIncludeChild && !isSelectOne\" [disabled]=\"indexView === 1\"\r\n [(ngModel)]=\"treeDataSourceConfig.includeChildren\" (ngModelChange)=\"onSlideToggleChange()\" color=\"default\"\r\n qms-group-options>\r\n <span class=\"text-label\">{{treeDataSourceConfig.selectIncludeLabel || LANG.SELECT_INCLUDE_CHILD}}</span>\r\n </mat-slide-toggle>\r\n <button class=\"btn-arrow\" [@inOutAnimation] *ngIf=\"indexView === 1 && enableTreeSearch\" (click)=\"setIndexView(0)\"\r\n qms-btn-icon color=\"light\" [qms-tool-tip]=\"LANG.BACK_TO_TREE\" mode=\"dark\" position=\"top\">\r\n <mat-icon>arrow_back</mat-icon>\r\n </button>\r\n <button class=\"btn-arrow\" [@inOutAnimation] *ngIf=\"indexView === 0 && enableTreeSearch && textResultSearch\"\r\n (click)=\"setIndexView(1)\" qms-btn-icon color=\"light\" [qms-tool-tip]=\"LANG.GOTO_SEACH_RESULT\" mode=\"dark\"\r\n position=\"top\">\r\n <mat-icon>arrow_forward</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <mat-divider class=\"mx-auto\"></mat-divider>\r\n <div [@animateSlideView]=\"indexView\" class=\"tree-department-wrapper\">\r\n <mat-tree [@listAnimation] *ngIf=\"indexView === 0\" class=\"select-department-tree\" [dataSource]=\"dataSource\"\r\n [treeControl]=\"treeControl\">\r\n <!-- This is the tree node template for leaf nodes -->\r\n <mat-tree-node\r\n [ngClass]=\"{'w-100': isSelectOne, 'selected-theme': this.checkListSelection.isSelected(node) && isSelectOne}\"\r\n [@triggerColor]=\"activeNode == node.id\" *matTreeNodeDef=\"let node\" matTreeNodeToggle matTreeNodePadding\r\n [ngClass]=\"{\r\n 'mat-tree-node-disabled-all': node.disabled\r\n }\">\r\n <button class=\"btn-toggle\" qms-btn-icon color=\"light\" disabled></button>\r\n <ng-container [ngTemplateOutlet]=\"isSelectOne ? nodeWithoutCheckboxTemplate : showCheckboxTemplate\"\r\n [ngTemplateOutletContext]=\"{ node: node }\">\r\n </ng-container>\r\n </mat-tree-node>\r\n <!-- This is the tree node template for expandable nodes -->\r\n <mat-tree-node [@triggerColor]=\"activeNode == node.id\" *matTreeNodeDef=\"let node; when: hasChild\"\r\n [class.selected-theme]=\"this.checkListSelection.isSelected(node) && isSelectOne\" matTreeNodePadding [ngClass]=\"{\r\n 'expand-node': treeControl.isExpanded(node),\r\n 'collapse-node': !treeControl.isExpanded(node),\r\n 'mat-tree-node-disabled': node.disabled\r\n }\">\r\n <div class=\"node-content-wraper\" [ngClass]=\"{'w-100': isSelectOne}\">\r\n <button class=\"btn-toggle\" qms-btn-icon color=\"light\" (click)=\"onExpandNode(node)\" matTreeNodeToggle>\r\n <mat-icon>\r\n {{ treeControl.isExpanded(node) ? \"expand_more\" : \"chevron_right\" }}\r\n </mat-icon>\r\n </button>\r\n <ng-container [ngTemplateOutlet]=\"isSelectOne ? nodeWithoutCheckboxTemplate : showCheckboxTemplate\"\r\n [ngTemplateOutletContext]=\"{ node: node }\"></ng-container>\r\n <mat-progress-bar *ngIf=\"false\" mode=\"indeterminate\" class=\"example-tree-progress-bar\">\r\n </mat-progress-bar>\r\n </div>\r\n </mat-tree-node>\r\n </mat-tree>\r\n <div *ngIf=\"indexView === 1\" class=\"qms-view-search-result\">\r\n <div class=\"\">\r\n <mat-checkbox [@inOutAnimation] *ngIf=\"!!resultSearch.length && !getLoading$.value\"\r\n [disabled]=\"!resultSearch.length || isSelectOne || isDisableChecboxAllSearch()\" #checkAllSearch\r\n [indeterminate]=\"indeterminateSearchResult\" [checked]=\"isSelectAllResultSearch\" qms-group-options\r\n color=\"default\" label=\"none\" class=\"checkbox-all\"\r\n (click)=\"!isSelectOne && onSelectAllSearchResult(checkAllSearch.checked)\">\r\n <span class=\"text-label header-title\">{{LANG.CHOOSE_ALL}}</span>\r\n <span>(<b>{{pagingResultSearch.length}}</b>)</span>\r\n </mat-checkbox>\r\n </div>\r\n <ng-container *ngIf=\"getLoading$.value; then loading\"></ng-container>\r\n <div [@inOutAnimation] *ngIf=\"pagingResultSearch.length && !getLoading$.value\"\r\n [class.active-paging]=\"resultSearch.length > 10 && enablePagingSearch\" class=\"result\">\r\n <div *ngFor=\"let item of pagingResultSearch\" (click)=\"$event.stopPropagation();onClickResultItem(item)\"\r\n [class.active]=\"checkListSelectionSearch.isSelected(item)\" class=\"result-item user-select-none\" matRipple>\r\n <mat-checkbox [disabled]=\"item.disabled\"\r\n (click)=\"$event.stopImmediatePropagation(); !item.disabled && onCheckItemSearchResult(item)\"\r\n [checked]=\"checkListSelectionSearch.isSelected(item)\" qms-group-options color=\"default\" label=\"none\">\r\n </mat-checkbox>\r\n <div class=\"item-result-content-wraper\">\r\n <div class=\"text-gray fw-bold fs-base mb0\">{{item.name}}</div>\r\n <qms-breadcrumb [numDisplayItem]=\"6\" (onItemClick)=\"onBreadCrumbItemClick($event)\"\r\n *ngIf=\"item.path.length > 1\" class=\"breadcrumb-container\" [nodes]=\"item.path\">\r\n </qms-breadcrumb>\r\n\r\n <div *ngIf=\"item.path.length === 1\" class=\"d-flex align-items-center\">\r\n <!-- <mat-icon class=\"me-1\">arrow_right</mat-icon> -->\r\n <span class=\"item-breadcrumb-disable\">{{item.path[0].name}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div [@inOutAnimation] *ngIf=\"!pagingResultSearch.length && !getLoading$.value\" class=\"result no-result\">\r\n <ng-container *ngTemplateOutlet=\"noResult\"></ng-container>\r\n </div>\r\n <mat-divider *ngIf=\"resultSearch.length > 10 && enablePagingSearch\" class=\"mx-auto\"></mat-divider>\r\n <qms-paginator *ngIf=\"resultSearch.length > 10 && enablePagingSearch && !getLoading$.value\"\r\n [length]=\"resultSearch.length\" [numHidden]=\"0\" [pageSize]=\"10\" [pageSizeOptions]=\"[5, 10, 25, 100]\"\r\n (page)='onPagingSearchResult($event)' [size]='PAGINATION_SIZE.medium'>\r\n </qms-paginator>\r\n </div>\r\n </div>\r\n\r\n <!-- Template for Checkbox -->\r\n <ng-template #showCheckboxTemplate let-node=\"node\">\r\n <mat-checkbox [id]=\"'node-'+node.id\" qms-group-options color=\"default\" label=\"none\" class=\"flex-direction-row\"\r\n [checked]=\"checkListSelection.isSelected(node)\" (click)=\"onCheckNode(node)\" [attr.disabled]=\"node.disabled\">\r\n <img *ngIf=\"node.itemIconSvg\" class=\"material-icons type-icon\" [src]=\"node.itemIconSvg\" />\r\n <span *ngIf=\"node.itemIcon\" [class]=\"node.itemIcon\" [qmsTransformIcon]=\"node.itemIcon\"\r\n class=\"material-icons-outlined type-icon\"></span>\r\n <span *ngIf=\"node.itemMatIcon\" class=\"material-icons-outlined type-icon\">{{\r\n node.itemMatIcon }}\r\n </span>\r\n <span class=\"text-name cursor-pointer ml5 123\" [ngClass]=\"{ disabled: node.disabled }\">{{ node.name\r\n }}\r\n </span>\r\n </mat-checkbox>\r\n </ng-template>\r\n\r\n <ng-template #nodeWithoutCheckboxTemplate let-node=\"node\">\r\n <div [id]=\"'node-'+node.id\" (click)=\"onCheckNode(node)\" class=\"node-without-checkbox\">\r\n <div class=\"node-info\">\r\n <span *ngIf=\"node.itemIcon\" [class]=\"node.itemIcon\" [qmsTransformIcon]=\"node.itemIcon\"\r\n class=\"material-icons-outlined type-icon\"></span>\r\n <span *ngIf=\"node.itemMatIcon\" class=\"material-icons-outlined type-icon\">{{\r\n node.itemMatIcon }}\r\n </span>\r\n <span class=\"text-name cursor-pointer ml5 123\" [ngClass]=\"{ disabled: node.disabled }\">{{ node.name\r\n }}\r\n </span>\r\n </div>\r\n <div class=\"node-state\">\r\n <mat-icon *ngIf=\"checkListSelection.isSelected(node)\">check</mat-icon>\r\n </div>\r\n </div>\r\n </ng-template>\r\n</div>\r\n\r\n<ng-template #noResult>\r\n <svg width=\"89\" height=\"88\" viewBox=\"0 0 89 88\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.5\" width=\"88\" height=\"88\" rx=\"44\" fill=\"white\" />\r\n <rect x=\"0.5\" width=\"88\" height=\"88\" rx=\"44\" fill=\"#0163B2\" fill-opacity=\"0.12\" />\r\n <path\r\n d=\"M44.5 56.6936L58.096 64.8996L54.488 49.4336L66.5 39.0276L50.682 37.6856L44.5 23.0996L38.318 37.6856L22.5 39.0276L34.512 49.4336L30.904 64.8996L44.5 56.6936Z\"\r\n fill=\"#0163B3\" />\r\n </svg>\r\n</ng-template>\r\n\r\n<!-- Template loading -->\r\n<ng-template #loading>\r\n <div class=\"loading-container\">\r\n <div class=\"loader\" *ngFor=\"let item of [1,1,1,1,1,1]\">\r\n <div class=\"loader__wrapper\">\r\n <div class=\"row-loader\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-template>\r\n",
29705
+ template: "<div [ngClass]=\"['qms-select-department-tree-container', customClass]\">\r\n <div class=\"input-select-department\">\r\n <form (ngSubmit)=\"!getLoading$.value && onSearch()\" *ngIf=\"enableTreeSearch\" class=\"input-field\">\r\n <mat-form-field class=\"w100\" qms-form qms-search-field>\r\n <input [formControl]=\"formSearchControl\" type=\"text\" placeholder=\"Search\" matInput />\r\n <button *ngIf=\"!getLoading$.value\" type=\"submit\" qms-btn-icon color=\"light\" matSuffix>\r\n <mat-icon>search</mat-icon>\r\n </button>\r\n <mat-progress-spinner [@inOutAnimation] matSuffix mode=\"indeterminate\" diameter=\"20\"\r\n *ngIf=\"getLoading$.value\"></mat-progress-spinner>\r\n <div *ngIf=\"!!formSearchControl.value && !getLoading$.value\" qms-input-clear matSuffix>\r\n <button qms-btn-icon color=\"light\" [@inOutAnimation] aria-label=\"Clear\" (click)=\"formSearchControl.reset()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </mat-form-field>\r\n </form>\r\n <div [@inOutAnimation] *ngIf=\"indexView === 1 && textResultSearch\" class=\"sub-text ms-1 fw500\">\r\n {{LANG.RESULT_SEARCH_FOR}}<i><b>\"{{textResultSearch}}\"</b></i>\r\n </div>\r\n <div [class.justify-content-between]=\"enableIncludeChild && !isSelectOne\"\r\n class=\"select__toggle-include toggle-include-child my-1 d-flex justify-content-end align-items-center\">\r\n <mat-slide-toggle *ngIf=\"enableIncludeChild && !isSelectOne\" [disabled]=\"indexView === 1\"\r\n [(ngModel)]=\"isIncludeChildren\" color=\"default\" qms-group-options>\r\n <span class=\"text-label\">{{treeDataSourceConfig.selectIncludeLabel || LANG.SELECT_INCLUDE_CHILD}}</span>\r\n </mat-slide-toggle>\r\n <button class=\"btn-arrow\" [@inOutAnimation] *ngIf=\"indexView === 1 && enableTreeSearch\" (click)=\"setIndexView(0)\"\r\n qms-btn-icon color=\"light\" [qms-tool-tip]=\"LANG.BACK_TO_TREE\" mode=\"dark\" position=\"top\">\r\n <mat-icon>arrow_back</mat-icon>\r\n </button>\r\n <button class=\"btn-arrow\" [@inOutAnimation] *ngIf=\"indexView === 0 && enableTreeSearch && textResultSearch\"\r\n (click)=\"setIndexView(1)\" qms-btn-icon color=\"light\" [qms-tool-tip]=\"LANG.GOTO_SEACH_RESULT\" mode=\"dark\"\r\n position=\"top\">\r\n <mat-icon>arrow_forward</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <mat-divider class=\"mx-auto\"></mat-divider>\r\n <div [@animateSlideView]=\"indexView\" [ngStyle]=\"{height: height || '50vh'}\" class=\"tree-department-wrapper\">\r\n <mat-tree [@listAnimation] *ngIf=\"indexView === 0 && !!treeControl\" class=\"select-department-tree\"\r\n [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\r\n <!-- This is the tree node template for leaf nodes -->\r\n <mat-tree-node\r\n [ngClass]=\"{'w-100': isSelectOne, 'selected-theme': this.checkListSelection.isSelected(node) && isSelectOne}\"\r\n [@triggerColor]=\"activeNode == node.id\" *matTreeNodeDef=\"let node\" matTreeNodeToggle matTreeNodePadding\r\n [ngClass]=\"{\r\n 'mat-tree-node-disabled-all': node.disabled\r\n }\">\r\n <button class=\"btn-toggle\" qms-btn-icon color=\"light\" disabled></button>\r\n <ng-container [ngTemplateOutlet]=\"isSelectOne ? nodeWithoutCheckboxTemplate : showCheckboxTemplate\"\r\n [ngTemplateOutletContext]=\"{ node: node }\">\r\n </ng-container>\r\n </mat-tree-node>\r\n <!-- This is the tree node template for expandable nodes -->\r\n <mat-tree-node [@triggerColor]=\"activeNode == node.id\" *matTreeNodeDef=\"let node; when: hasChild\"\r\n [class.selected-theme]=\"this.checkListSelection.isSelected(node) && isSelectOne\" matTreeNodePadding [ngClass]=\"{\r\n 'expand-node': treeControl.isExpanded(node),\r\n 'collapse-node': !treeControl.isExpanded(node),\r\n 'mat-tree-node-disabled': node.disabled\r\n }\">\r\n <div class=\"node-content-wraper\" [ngClass]=\"{'w-100': isSelectOne}\">\r\n <button class=\"btn-toggle\" qms-btn-icon color=\"light\" (click)=\"onExpandNode(node)\" matTreeNodeToggle>\r\n <mat-icon>\r\n {{ treeControl.isExpanded(node) ? \"expand_more\" : \"chevron_right\" }}\r\n </mat-icon>\r\n </button>\r\n <ng-container [ngTemplateOutlet]=\"isSelectOne ? nodeWithoutCheckboxTemplate : showCheckboxTemplate\"\r\n [ngTemplateOutletContext]=\"{ node: node }\"></ng-container>\r\n <mat-progress-bar *ngIf=\"false\" mode=\"indeterminate\" class=\"example-tree-progress-bar\">\r\n </mat-progress-bar>\r\n </div>\r\n </mat-tree-node>\r\n </mat-tree>\r\n <div *ngIf=\"indexView === 1\" class=\"qms-view-search-result\">\r\n <div class=\"\">\r\n <mat-checkbox [@inOutAnimation] *ngIf=\"!!resultSearch.length && !getLoading$.value\"\r\n [disabled]=\"!resultSearch.length || isSelectOne || isDisableChecboxAllSearch()\" #checkAllSearch\r\n [indeterminate]=\"indeterminateSearchResult\" [checked]=\"isSelectAllResultSearch\" qms-group-options\r\n color=\"default\" label=\"none\" class=\"checkbox-all\"\r\n (click)=\"!isSelectOne && onSelectAllSearchResult(checkAllSearch.checked)\">\r\n <span class=\"text-label header-title\">{{LANG.CHOOSE_ALL}}</span>\r\n <span>(<b>{{resultSearch.length}}</b>)</span>\r\n </mat-checkbox>\r\n </div>\r\n <ng-container *ngIf=\"getLoading$.value; then loading\"></ng-container>\r\n <div [@inOutAnimation] [@listAnimation] *ngIf=\"resultSearch.length && !getLoading$.value\"\r\n [class.active-paging]=\"resultSearch.length > 10 && enablePagingSearch\" class=\"result\">\r\n <div *ngFor=\"let item of resultSearch\" (click)=\"$event.stopPropagation();onClickResultItem(item)\"\r\n [class.active]=\"checkListSelectionSearch.isSelected(item)\" class=\"result-item user-select-none\" matRipple>\r\n <mat-checkbox [disabled]=\"item.disabled\"\r\n (click)=\"$event.stopImmediatePropagation(); !item.disabled && onCheckItemSearchResult(item)\"\r\n [checked]=\"checkListSelectionSearch.isSelected(item)\" qms-group-options color=\"default\" label=\"none\">\r\n </mat-checkbox>\r\n <div class=\"item-result-content-wraper\">\r\n <div class=\"text-gray fw-bold fs-base mb0\">{{item.name}}</div>\r\n <qms-breadcrumb [numDisplayItem]=\"6\" (onItemClick)=\"onBreadCrumbItemClick($event)\"\r\n *ngIf=\"item.path.length > 1\" class=\"breadcrumb-container\" [nodes]=\"item.path\">\r\n </qms-breadcrumb>\r\n\r\n <div *ngIf=\"item.path.length === 1\" class=\"d-flex align-items-center\">\r\n <!-- <mat-icon class=\"me-1\">arrow_right</mat-icon> -->\r\n <span class=\"item-breadcrumb-disable\">{{item.path[0].name}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div [@inOutAnimation] *ngIf=\"!resultSearch.length && !getLoading$.value\" class=\"result no-result\">\r\n <ng-container *ngTemplateOutlet=\"noResult\"></ng-container>\r\n </div>\r\n <mat-divider *ngIf=\"searchDepartment$.value.length > 10 && enablePagingSearch\" class=\"mx-auto\"></mat-divider>\r\n <qms-paginator #paginatorSearch *ngIf=\"searchDepartment$.value.length > 10 && enablePagingSearch \"\r\n [length]=\"searchDepartment$.value.length\" [numHidden]=\"0\" [pageSize]=\"10\" [pageSizeOptions]=\"[5, 10, 25, 100]\"\r\n (page)='onPagingSearchResult($event)' [size]='PAGINATION_SIZE.medium'>\r\n </qms-paginator>\r\n </div>\r\n </div>\r\n\r\n <!-- Template for Checkbox -->\r\n <ng-template #showCheckboxTemplate let-node=\"node\">\r\n <mat-checkbox [id]=\"'node-'+node.id\" qms-group-options color=\"default\" label=\"none\" class=\"flex-direction-row\"\r\n [checked]=\"checkListSelection.isSelected(node)\" (click)=\"onCheckNode(node)\" [attr.disabled]=\"node.disabled\">\r\n <img *ngIf=\"node.itemIconSvg\" class=\"material-icons type-icon\" [src]=\"node.itemIconSvg\" />\r\n <span *ngIf=\"node.itemIcon\" [class]=\"node.itemIcon\" [qmsTransformIcon]=\"node.itemIcon\"\r\n class=\"material-icons-outlined type-icon\"></span>\r\n <span *ngIf=\"node.itemMatIcon\" class=\"material-icons-outlined type-icon\">{{\r\n node.itemMatIcon }}\r\n </span>\r\n <span class=\"text-name cursor-pointer ml5 123\" [ngClass]=\"{ disabled: node.disabled }\">{{ node.name\r\n }}\r\n </span>\r\n </mat-checkbox>\r\n </ng-template>\r\n\r\n <ng-template #nodeWithoutCheckboxTemplate let-node=\"node\">\r\n <div [id]=\"'node-'+node.id\" (click)=\"onCheckNode(node)\" class=\"node-without-checkbox\">\r\n <div class=\"node-info\">\r\n <span *ngIf=\"node.itemIcon\" [class]=\"node.itemIcon\" [qmsTransformIcon]=\"node.itemIcon\"\r\n class=\"material-icons-outlined type-icon\"></span>\r\n <span *ngIf=\"node.itemMatIcon\" class=\"material-icons-outlined type-icon\">{{\r\n node.itemMatIcon }}\r\n </span>\r\n <span class=\"text-name cursor-pointer ml5 123\" [ngClass]=\"{ disabled: node.disabled }\">{{ node.name\r\n }}\r\n </span>\r\n </div>\r\n <div class=\"node-state\">\r\n <mat-icon *ngIf=\"checkListSelection.isSelected(node)\">check</mat-icon>\r\n </div>\r\n </div>\r\n </ng-template>\r\n</div>\r\n\r\n<ng-template #noResult>\r\n <svg width=\"89\" height=\"130\" viewBox=\"0 0 89 88\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.5\" width=\"88\" height=\"88\" rx=\"44\" fill=\"white\" />\r\n <rect x=\"0.5\" width=\"88\" height=\"88\" rx=\"44\" fill=\"#0163B2\" fill-opacity=\"0.12\" />\r\n <path\r\n d=\"M44.5 56.6936L58.096 64.8996L54.488 49.4336L66.5 39.0276L50.682 37.6856L44.5 23.0996L38.318 37.6856L22.5 39.0276L34.512 49.4336L30.904 64.8996L44.5 56.6936Z\"\r\n fill=\"#0163B3\" />\r\n <text x=\"10\" y=\"105\" fill=\"#0163B2\">{{LANG.NO_RESULT}}</text>\r\n </svg>\r\n</ng-template>\r\n\r\n<!-- Template loading -->\r\n<ng-template #loading>\r\n <div class=\"loading-container\">\r\n <div class=\"loader\" *ngFor=\"let item of arrSkeleton\">\r\n <div class=\"loader__wrapper\">\r\n <div class=\"row-loader\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-template>\r\n",
29603
29706
  animations: [
29604
29707
  AnimationTreeDepartment
29605
29708
  ],
29606
- styles: ["@charset \"UTF-8\";@font-face{font-family:icomoon;src:url(../assets/fonts/icomoon.eot?aghldx);src:url(../assets/fonts/icomoon.eot?aghldx#iefix) format(\"embedded-opentype\"),url(../assets/fonts/icomoon.ttf?aghldx) format(\"truetype\"),url(../assets/fonts/icomoon.woff?aghldx) format(\"woff\"),url(../assets/fonts/icomoon.svg?aghldx#icomoon) format(\"svg\");font-weight:400;font-style:normal;font-display:block}[class*=\" icon-\"],[class^=icon-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-feature-settings:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-acutely-toxic .path1:before{content:\"\uE91B\";color:#e32730}.icon-acutely-toxic .path2:before{content:\"\uE922\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path3:before{content:\"\uE923\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path4:before{content:\"\uE924\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path5:before{content:\"\uE925\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path6:before{content:\"\uE926\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path7:before{content:\"\uE927\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path8:before{content:\"\uE928\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path9:before{content:\"\uE929\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path10:before{content:\"\uE92A\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path11:before{content:\"\uE92B\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path12:before{content:\"\uE92C\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path13:before{content:\"\uE92D\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path14:before{content:\"\uE92E\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path15:before{content:\"\uE92F\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path16:before{content:\"\uE930\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path17:before{content:\"\uE931\";margin-left:-1em;color:#323232}.icon-add-column:before{content:\"\uE932\"}.icon-add-tooltip:before{content:\"\uE933\"}.icon-admin:before{content:\"\uE934\"}.icon-annual-cycle:before{content:\"\uE935\"}.icon-assignment-repete:before{content:\"\uE936\"}.icon-barrier-add:before{content:\"\uE937\"}.icon-barrier-edit:before{content:\"\uE938\"}.icon-barrier-view:before{content:\"\uE939\"}.icon-button-group:before{content:\"\uE93A\"}.icon-chemical-manager:before{content:\"\uE93B\"}.icon-chronic-health-hazard .path1:before{content:\"\uE93C\";color:#e32730}.icon-chronic-health-hazard .path2:before{content:\"\uE93D\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path3:before{content:\"\uE93E\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path4:before{content:\"\uE93F\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path5:before{content:\"\uE940\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path6:before{content:\"\uE941\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path7:before{content:\"\uE942\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path8:before{content:\"\uE943\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path9:before{content:\"\uE944\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path10:before{content:\"\uE945\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path11:before{content:\"\uE946\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path12:before{content:\"\uE947\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path13:before{content:\"\uE948\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path14:before{content:\"\uE949\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path15:before{content:\"\uE94A\";margin-left:-1em;color:#323232}.icon-contingency:before{content:\"\uE94B\"}.icon-corrosive .path1:before{content:\"\uE94C\";color:#323232}.icon-corrosive .path2:before{content:\"\uE94D\";margin-left:-1em;color:#323232}.icon-corrosive .path3:before{content:\"\uE94E\";margin-left:-1em;color:#323232}.icon-corrosive .path4:before{content:\"\uE94F\";margin-left:-1em;color:#323232}.icon-corrosive .path5:before{content:\"\uE950\";margin-left:-1em;color:#323232}.icon-corrosive .path6:before{content:\"\uE951\";margin-left:-1em;color:#323232}.icon-corrosive .path7:before{content:\"\uE952\";margin-left:-1em;color:#323232}.icon-corrosive .path8:before{content:\"\uE953\";margin-left:-1em;color:#323232}.icon-corrosive .path9:before{content:\"\uE954\";margin-left:-1em;color:#323232}.icon-corrosive .path10:before{content:\"\uE955\";margin-left:-1em;color:#323232}.icon-corrosive .path11:before{content:\"\uE956\";margin-left:-1em;color:#323232}.icon-corrosive .path12:before{content:\"\uE957\";margin-left:-1em;color:#323232}.icon-corrosive .path13:before{content:\"\uE958\";margin-left:-1em;color:#323232}.icon-corrosive .path14:before{content:\"\uE959\";margin-left:-1em;color:#323232}.icon-corrosive .path15:before{content:\"\uE95A\";margin-left:-1em;color:#323232}.icon-corrosive .path16:before{content:\"\uE95B\";margin-left:-1em;color:#323232}.icon-corrosive .path17:before{content:\"\uE95C\";margin-left:-1em;color:#323232}.icon-corrosive .path18:before{content:\"\uE95D\";margin-left:-1em;color:#323232}.icon-corrosive .path19:before{content:\"\uE95E\";margin-left:-1em;color:#323232}.icon-corrosive .path20:before{content:\"\uE95F\";margin-left:-1em;color:#323232}.icon-corrosive .path21:before{content:\"\uE960\";margin-left:-1em;color:#e32730}.icon-dashboard:before{content:\"\uE961\"}.icon-database-sds:before{content:\"\uE962\"}.icon-description-add:before{content:\"\uE963\"}.icon-description-edit:before{content:\"\uE964\"}.icon-description-view:before{content:\"\uE965\";color:#666}.icon-document-read .path1:before{content:\"\uE966\";color:#000;opacity:.6}.icon-document-read .path2:before{content:\"\uE967\";margin-left:-1em;color:#fff}.icon-document-read .path3:before{content:\"\uE968\";margin-left:-1em;color:#000;opacity:.6}.icon-draft:before{content:\"\uE969\"}.icon-expired-off:before{content:\"\uE96A\"}.icon-expired-on:before{content:\"\uE96B\"}.icon-explosive .path1:before{content:\"\uE96C\";color:#e32730}.icon-explosive .path2:before{content:\"\uE96D\";margin-left:-1em;color:#323232}.icon-explosive .path3:before{content:\"\uE96E\";margin-left:-1em;color:#323232}.icon-explosive .path4:before{content:\"\uE96F\";margin-left:-1em;color:#323232}.icon-explosive .path5:before{content:\"\uE970\";margin-left:-1em;color:#323232}.icon-explosive .path6:before{content:\"\uE971\";margin-left:-1em;color:#323232}.icon-explosive .path7:before{content:\"\uE972\";margin-left:-1em;color:#323232}.icon-explosive .path8:before{content:\"\uE973\";margin-left:-1em;color:#323232}.icon-explosive .path9:before{content:\"\uE974\";margin-left:-1em;color:#323232}.icon-explosive .path10:before{content:\"\uE975\";margin-left:-1em;color:#323232}.icon-explosive .path11:before{content:\"\uE976\";margin-left:-1em;color:#323232}.icon-explosive .path12:before{content:\"\uE977\";margin-left:-1em;color:#323232}.icon-explosive .path13:before{content:\"\uE978\";margin-left:-1em;color:#323232}.icon-explosive .path14:before{content:\"\uE979\";margin-left:-1em;color:#323232}.icon-explosive .path15:before{content:\"\uE97A\";margin-left:-1em;color:#323232}.icon-explosive .path16:before{content:\"\uE97B\";margin-left:-1em;color:#323232}.icon-explosive .path17:before{content:\"\uE97C\";margin-left:-1em;color:#323232}.icon-explosive .path18:before{content:\"\uE97D\";margin-left:-1em;color:#323232}.icon-explosive .path19:before{content:\"\uE97E\";margin-left:-1em;color:#323232}.icon-explosive .path20:before{content:\"\uE97F\";margin-left:-1em;color:#323232}.icon-explosive .path21:before{content:\"\uE980\";margin-left:-1em;color:#323232}.icon-explosive .path22:before{content:\"\uE981\";margin-left:-1em;color:#323232}.icon-explosive .path23:before{content:\"\uE982\";margin-left:-1em;color:#323232}.icon-explosive .path24:before{content:\"\uE983\";margin-left:-1em;color:#323232}.icon-explosive .path25:before{content:\"\uE984\";margin-left:-1em;color:#323232}.icon-explosive .path26:before{content:\"\uE985\";margin-left:-1em;color:#323232}.icon-explosive .path27:before{content:\"\uE986\";margin-left:-1em;color:#323232}.icon-explosive .path28:before{content:\"\uE987\";margin-left:-1em;color:#323232}.icon-explosive .path29:before{content:\"\uE988\";margin-left:-1em;color:#323232}.icon-explosive .path30:before{content:\"\uE989\";margin-left:-1em;color:#323232}.icon-explosive .path31:before{content:\"\uE98A\";margin-left:-1em;color:#323232}.icon-explosive .path32:before{content:\"\uE98B\";margin-left:-1em;color:#323232}.icon-explosive .path33:before{content:\"\uE98C\";margin-left:-1em;color:#323232}.icon-explosive .path34:before{content:\"\uE98D\";margin-left:-1em;color:#323232}.icon-explosive .path35:before{content:\"\uE98E\";margin-left:-1em;color:#323232}.icon-explosive .path36:before{content:\"\uE98F\";margin-left:-1em;color:#323232}.icon-explosive .path37:before{content:\"\uE990\";margin-left:-1em;color:#323232}.icon-explosive .path38:before{content:\"\uE991\";margin-left:-1em;color:#323232}.icon-explosive .path39:before{content:\"\uE992\";margin-left:-1em;color:#323232}.icon-explosive .path40:before{content:\"\uE993\";margin-left:-1em;color:#323232}.icon-explosive .path41:before{content:\"\uE994\";margin-left:-1em;color:#323232}.icon-explosive .path42:before{content:\"\uE995\";margin-left:-1em;color:#323232}.icon-explosive .path43:before{content:\"\uE996\";margin-left:-1em;color:#323232}.icon-explosive .path44:before{content:\"\uE997\";margin-left:-1em;color:#323232}.icon-explosive .path45:before{content:\"\uE998\";margin-left:-1em;color:#323232}.icon-explosive .path46:before{content:\"\uE999\";margin-left:-1em;color:#323232}.icon-file-excel:before{content:\"\uE99A\"}.icon-file-pdf:before{content:\"\uE99B\"}.icon-file-pdf-verified .path1:before{content:\"\uE99C\";color:#000;opacity:.6}.icon-file-pdf-verified .path2:before{content:\"\uE99D\";margin-left:-1em;color:#fff}.icon-file-pdf-verified .path3:before{content:\"\uE99E\";margin-left:-1em;color:#000;opacity:.6}.icon-file-word:before{content:\"\uE99F\"}.icon-filter-alt:before{content:\"\uE9A0\"}.icon-flammable .path1:before{content:\"\uE9A1\";color:#323232}.icon-flammable .path2:before{content:\"\uE9A2\";margin-left:-1em;color:#323232}.icon-flammable .path3:before{content:\"\uE9A3\";margin-left:-1em;color:#e32730}.icon-gas-under-pressure .path1:before{content:\"\uE9A4\";color:#323232}.icon-gas-under-pressure .path2:before{content:\"\uE9A5\";margin-left:-1em;color:#e32730}.icon-health-hazard .path1:before{content:\"\uE9A6\";color:#323232}.icon-health-hazard .path2:before{content:\"\uE9A7\";margin-left:-1em;color:#e32730}.icon-line-break:before{content:\"\uE9A8\"}.icon-location:before{content:\"\uE9A9\"}.icon-measure-add:before{content:\"\uE9AA\"}.icon-measure-edit:before{content:\"\uE9AB\"}.icon-measure-view:before{content:\"\uE9AC\";color:#666}.icon-messages:before{content:\"\uE9AD\"}.icon-monitoring:before{content:\"\uE9AE\";color:#666}.icon-move:before{content:\"\uE9AF\"}.icon-oxidizing .path1:before{content:\"\uE9B0\";color:#e32730}.icon-oxidizing .path2:before{content:\"\uE9B1\";margin-left:-1em;color:#323232}.icon-oxidizing .path3:before{content:\"\uE9B2\";margin-left:-1em;color:#323232}.icon-oxidizing .path4:before{content:\"\uE9B3\";margin-left:-1em;color:#323232}.icon-process-area-closed:before{content:\"\uE9B4\"}.icon-process-area-open:before{content:\"\uE9B5\"}.icon-process-linked .path1:before{content:\"\uE9B6\";color:#000;opacity:.6}.icon-process-linked .path2:before{content:\"\uE9B7\";margin-left:-1em;color:#666}.icon-risk:before{content:\"\uE9B8\"}.icon-search-in-file:before{content:\"\uE9B9\"}.icon-sort-ascending:before{content:\"\uE9BA\"}.icon-sort-descending:before{content:\"\uE9BB\"}.icon-subscript:before{content:\"\uE9BC\"}.icon-superscript:before{content:\"\uE9BD\"}.icon-syncronice-favorites:before{content:\"\uE9BE\"}.icon-system-settings:before{content:\"\uE9BF\"}.icon-view-three-outlined:before{content:\"\uE9C0\"}.icon-workplace-safety:before{content:\"\uE9C1\"}.icon-checklist:before{content:\"\uE900\"}.icon-department-document .path1:before{content:\"\uE901\";color:#000;opacity:.6}.icon-department-document .path2:before{content:\"\uE902\";margin-left:-1em;color:#00804c}.icon-department-folder-closed .path1:before{content:\"\uE903\";color:#000;opacity:.6}.icon-department-folder-closed .path2:before{content:\"\uE904\";margin-left:-1em;color:#00804c}.icon-department-folder-open .path1:before{content:\"\uE905\";color:#000;opacity:.6}.icon-department-folder-open .path2:before{content:\"\uE906\";margin-left:-1em;color:#00804c}.icon-deviation:before{content:\"\uE907\"}.icon-dropdown-folder .path1:before{content:\"\uE908\";color:#00324e}.icon-dropdown-folder .path2:before{content:\"\uE909\";margin-left:-1em;color:#fff;opacity:.6}.icon-enterprise-document .path1:before{content:\"\uE90A\";color:#000;opacity:.6}.icon-enterprise-document .path2:before{content:\"\uE90B\";margin-left:-1em;color:#cf4714}.icon-enterprise-folder-closed .path1:before{content:\"\uE90C\";color:#000;opacity:.6}.icon-enterprise-folder-closed .path2:before{content:\"\uE90D\";margin-left:-1em;color:#cf4714}.icon-enterprise-folder-open .path1:before{content:\"\uE90E\";color:#000;opacity:.6}.icon-enterprise-folder-open .path2:before{content:\"\uE90F\";margin-left:-1em;color:#cf4714}.icon-folder-closed:before{content:\"\uE910\"}.icon-folder-open:before{content:\"\uE911\"}.icon-keyboard_arrow_down:before{content:\"\uE912\"}.icon-keyboard_arrow_up:before{content:\"\uE913\"}.icon-local-document .path1:before{content:\"\uE914\";color:#000;opacity:.6}.icon-local-document .path2:before{content:\"\uE915\";margin-left:-1em;color:#1954a9}.icon-local-folder-closed .path1:before{content:\"\uE916\";color:#000;opacity:.6}.icon-local-folder-closed .path2:before{content:\"\uE917\";margin-left:-1em;color:#1954a9}.icon-local-folder-open .path1:before{content:\"\uE918\";color:#000;opacity:.6}.icon-local-folder-open .path2:before{content:\"\uE919\";margin-left:-1em;color:#1954a9}.icon-process:before{content:\"\uE91A\"}.icon-regional-document .path1:before{content:\"\uE91C\";color:#000;opacity:.6}.icon-regional-document .path2:before{content:\"\uE91D\";margin-left:-1em;color:#662e0d}.icon-regional-folder-closed .path1:before{content:\"\uE91E\";color:#000;opacity:.6}.icon-regional-folder-closed .path2:before{content:\"\uE91F\";margin-left:-1em;color:#662e0d}.icon-regional-folder-open .path1:before{content:\"\uE920\";color:#000;opacity:.6}.icon-regional-folder-open .path2:before{content:\"\uE921\";margin-left:-1em;color:#662e0d}.qms-select-department-tree-container .mr10{margin-right:10px}.qms-select-department-tree-container .mt5{margin-bottom:5px}.qms-select-department-tree-container .mb5{margin-top:5px}.qms-select-department-tree-container .w100{width:100%}.qms-select-department-tree-container .fw500{font-weight:500!important}.qms-select-department-tree-container .text-right{text-align:right}.qms-select-department-tree-container .mt20{margin-top:20px}.qms-select-department-tree-container .text-selected{color:rgba(0,0,0,.6);font-size:12px;line-height:16px;margin-top:1rem}.qms-select-department-tree-container .input-field{display:flex;align-items:center;position:relative}.qms-select-department-tree-container .input-field ::ng-deep .mat-form-field-wrapper{padding-bottom:8px!important}.qms-select-department-tree-container .input-field ::ng-deep .mat-form-field-underline{bottom:8px!important}.qms-select-department-tree-container .input-field input.input-search{width:100%;padding:10px;outline:none;border:none;background:var(--background-input-text)}.qms-select-department-tree-container .input-field .btn-search{cursor:pointer;vertical-align:middle;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.qms-select-department-tree-container .input-field .line__divider{border-bottom:1px solid #ccc;height:1px;margin-top:10px;min-width:300px;max-width:100%}.qms-select-department-tree-container .tree-department-wrapper{height:375px;padding-right:4px;overflow-y:auto;overflow-x:hidden;position:relative}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node{border-radius:4px}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node:hover{background:rgba(0,0,0,.08)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node:active{background:rgba(0,0,0,.12)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.active{color:var(--primary);background:var(--primary-light-6-opacity)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.active:active{background:var(--primary-light-12-opacity)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.active .mat-icon-rtl-mirror,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.active .text-name,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.active .type-icon,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.active button,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.collapse-node:not(.selected-theme).active .mat-icon-rtl-mirror,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.collapse-node:not(.selected-theme).active .text-name,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.collapse-node:not(.selected-theme).active .type-icon,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.collapse-node:not(.selected-theme).active button{color:var(--primary)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.collapse-node:not(.selected-theme).active:hover{background:var(--primary-light-6-opacity)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.collapse-node:not(.selected-theme).active:active,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.selected-theme{background:var(--primary-light-12-opacity)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.expand-node,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.expand-node .mat-icon-rtl-mirror,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.expand-node .text-name,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.expand-node .type-icon,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.expand-node button{color:var(--primary)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.expand-node:hover{background:var(--primary-light-6-opacity)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.expand-node:active{background:var(--primary-light-12-opacity)}.qms-select-department-tree-container .mat-tree.select-department-tree .type-icon{margin-right:5px;color:var(--ws-action-active)}.qms-select-department-tree-container .mat-tree.select-department-tree .text-name{color:var(--default-color)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-icon-rtl-mirror{color:rgba(0,0,0,.6)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-icon-button.btn-toggle{width:35px;height:35px;line-height:35px}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled-all{cursor:default!important;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled-all .mat-icon-rtl-mirror,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled-all .type-icon,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled-all button.mat-button-disabled{color:rgba(0,0,0,.38)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled-all .text-name.disabled{color:rgba(0,0,0,.38);cursor:default!important;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled-all.active{background-color:transparent}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled .type-icon,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled button.mat-button-disabled{color:rgba(0,0,0,.38)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled .text-name.disabled{color:rgba(0,0,0,.38);cursor:default!important;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled.active,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled.expand-node:active,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled.expand-node:hover,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled:active,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled:hover{background-color:transparent}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node .node-without-checkbox{cursor:pointer;width:100%;display:flex;justify-content:space-between;align-items:center}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node .node-without-checkbox .mat-icon{color:var(--primary);margin-right:4px}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node>.node-content-wraper{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;position:relative;display:flex;justify-content:center;align-items:center}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node>.node-content-wraper>.mat-progress-bar{height:3px;width:100%;position:absolute;bottom:0;left:10px}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node>.node-content-wraper>.mat-progress-bar .mat-progress-bar-fill:after{background:var(--primary)}.qms-select-department-tree-container .text-name{position:relative;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;cursor:pointer;width:100%}.qms-select-department-tree-container .cursor-pointer{cursor:pointer}.qms-select-department-tree-container .ml5{margin-left:10px!important}.qms-select-department-tree-container ::ng-deep .mat-checkbox.qms-group-options.flex-direction-row .mat-checkbox-layout{white-space:normal}.qms-select-department-tree-container ::ng-deep .mat-checkbox.qms-group-options.flex-direction-row .mat-checkbox-label{flex-direction:row;align-items:center;position:relative;padding-bottom:2px}.qms-select-department-tree-container .qms-view-search-result{height:375px;width:100%;overflow:hidden}.qms-select-department-tree-container .qms-view-search-result .result{max-height:calc(100% - 44px);overflow-y:auto;margin-bottom:4px;padding-right:4px}.qms-select-department-tree-container .qms-view-search-result .result.active-paging{max-height:calc(100% - 80px)}.qms-select-department-tree-container .qms-view-search-result .result.no-result{height:100%;display:flex;justify-content:center;align-items:center}.qms-select-department-tree-container .qms-view-search-result .result-item{border-radius:4px;display:grid;grid-template-columns:45px 1fr;align-items:center;cursor:pointer;transition:background .3s ease}.qms-select-department-tree-container .qms-view-search-result .result-item:not(:first-child){margin-top:4px!important}.qms-select-department-tree-container .qms-view-search-result .result-item.active,.qms-select-department-tree-container .qms-view-search-result .result-item:hover{background:linear-gradient(0deg,rgba(1,99,178,.12),rgba(1,99,178,.12)),#fff}.qms-select-department-tree-container .qms-view-search-result .result-item .item-result-content-wraper{padding:5px 15px}.qms-select-department-tree-container .qms-view-search-result ::ng-deep .mat-checkbox.qms-group-options{display:flex;height:100%}.qms-select-department-tree-container ::ng-deep .breadcrumb-container{flex-wrap:wrap}.qms-select-department-tree-container ::ng-deep .mat-button-focus-overlay{background-color:transparent}.qms-select-department-tree-container ::ng-deep .qms-breadcrumb-item{margin:0}.qms-select-department-tree-container ::ng-deep .qms-breadcrumb-item-text{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;transition:color .3s ease}.qms-select-department-tree-container ::ng-deep .qms-breadcrumb-item-text:not(:last-child){max-width:150px!important}.qms-select-department-tree-container ::ng-deep .qms-breadcrumb-item-text:not(:last-child):hover{color:var(--primary)}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-icon{display:flex;align-items:center;justify-content:center}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-form-field-wrapper{padding-bottom:0}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-paginator-container{min-height:40px}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-paginator-container .qms-total-result{margin-bottom:0;margin-right:12px;height:100%;display:flex;justify-content:center;align-items:center}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-paginator-container .qms-total-result span{font-weight:600;font-size:13px;color:rgba(0,0,0,.8)}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions{margin-bottom:0;grid-column-gap:2px;-moz-column-gap:2px;column-gap:2px}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions>.qms-total-result{margin-bottom:0}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions>.qms-btn-icon{width:30px;height:30px;line-height:30px}.qms-select-department-tree-container ::ng-deep .qms-paginator>.qms-btn-icon-wrapper{width:30px;height:30px;display:flex;justify-content:center;align-items:center}.qms-select-department-tree-container ::ng-deep .qms-paginator .qms-paginator-page-size{margin-right:12px;height:100%;display:flex;align-items:center;justify-content:center}.qms-select-department-tree-container ::ng-deep .qms-paginator .qms-paginator-page-size>.qms-form-page-size .mat-form-field-flex{width:60px;height:30px;display:flex;align-items:center;padding:0 4px}.qms-select-department-tree-container ::ng-deep .qms-paginator .qms-paginator-page-size>.qms-form-page-size .mat-form-field-flex .mat-form-field-infix{height:30px}.qms-select-department-tree-container ::ng-deep .qms-paginator .qms-paginator-page-size>.qms-pagesize-label{display:none}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-form-field.qms-form .mat-select-min-line,.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-form-field.qms-form mat-select-trigger{font-size:14px}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-select-value{text-align:center}.qms-select-department-tree-container .text-gray{color:#242424}.qms-select-department-tree-container .mb0{margin-bottom:0!important}.qms-select-department-tree-container .fs-base{font-size:14px!important}.qms-select-department-tree-container .user-select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.qms-select-department-tree-container .item-breadcrumb-disable{cursor:not-allowed;color:rgba(0,0,0,.6);font-weight:400;font-size:14px}.qms-select-department-tree-container ::ng-deep .mat-checkbox.checkbox-all .mat-checkbox-label{flex-direction:row;align-items:center;grid-column-gap:4px;-moz-column-gap:4px;column-gap:4px}.qms-select-department-tree-container ::ng-deep .btn-arrow{width:40px;height:40px;line-height:40px}.qms-select-department-tree-container .loading-container{overflow:hidden;height:100%;display:grid;grid-template-rows:repeat(auto-fill,minmax(60px,60px))}.qms-select-department-tree-container .loading-container .loader{position:relative;width:100%;height:100%;padding:10px 0;overflow:hidden}.qms-select-department-tree-container .loading-container .loader:after{content:\"\";position:absolute;width:100%;height:100%;top:0;left:0;background:linear-gradient(110deg,hsla(0,0%,91%,0),hsla(0,0%,89%,0) 40%,hsla(0,0%,89%,.5) 50%,hsla(0,0%,89%,0) 60%,hsla(0,0%,89%,0));-webkit-animation:animate-loading 1.2s linear infinite;animation:animate-loading 1.2s linear infinite}.qms-select-department-tree-container .loading-container .loader__wrapper{position:relative;width:100%;height:100%}.qms-select-department-tree-container .loading-container .loader__wrapper .row-loader{background-color:#eee;position:absolute;left:0;width:100%;height:40px}@-webkit-keyframes animate-loading{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}@keyframes animate-loading{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}"]
29709
+ styles: ["@charset \"UTF-8\";@font-face{font-family:icomoon;src:url(../assets/fonts/icomoon.eot?aghldx);src:url(../assets/fonts/icomoon.eot?aghldx#iefix) format(\"embedded-opentype\"),url(../assets/fonts/icomoon.ttf?aghldx) format(\"truetype\"),url(../assets/fonts/icomoon.woff?aghldx) format(\"woff\"),url(../assets/fonts/icomoon.svg?aghldx#icomoon) format(\"svg\");font-weight:400;font-style:normal;font-display:block}[class*=\" icon-\"],[class^=icon-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-feature-settings:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-acutely-toxic .path1:before{content:\"\uE91B\";color:#e32730}.icon-acutely-toxic .path2:before{content:\"\uE922\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path3:before{content:\"\uE923\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path4:before{content:\"\uE924\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path5:before{content:\"\uE925\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path6:before{content:\"\uE926\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path7:before{content:\"\uE927\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path8:before{content:\"\uE928\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path9:before{content:\"\uE929\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path10:before{content:\"\uE92A\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path11:before{content:\"\uE92B\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path12:before{content:\"\uE92C\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path13:before{content:\"\uE92D\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path14:before{content:\"\uE92E\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path15:before{content:\"\uE92F\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path16:before{content:\"\uE930\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path17:before{content:\"\uE931\";margin-left:-1em;color:#323232}.icon-add-column:before{content:\"\uE932\"}.icon-add-tooltip:before{content:\"\uE933\"}.icon-admin:before{content:\"\uE934\"}.icon-annual-cycle:before{content:\"\uE935\"}.icon-assignment-repete:before{content:\"\uE936\"}.icon-barrier-add:before{content:\"\uE937\"}.icon-barrier-edit:before{content:\"\uE938\"}.icon-barrier-view:before{content:\"\uE939\"}.icon-button-group:before{content:\"\uE93A\"}.icon-chemical-manager:before{content:\"\uE93B\"}.icon-chronic-health-hazard .path1:before{content:\"\uE93C\";color:#e32730}.icon-chronic-health-hazard .path2:before{content:\"\uE93D\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path3:before{content:\"\uE93E\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path4:before{content:\"\uE93F\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path5:before{content:\"\uE940\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path6:before{content:\"\uE941\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path7:before{content:\"\uE942\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path8:before{content:\"\uE943\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path9:before{content:\"\uE944\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path10:before{content:\"\uE945\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path11:before{content:\"\uE946\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path12:before{content:\"\uE947\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path13:before{content:\"\uE948\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path14:before{content:\"\uE949\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path15:before{content:\"\uE94A\";margin-left:-1em;color:#323232}.icon-contingency:before{content:\"\uE94B\"}.icon-corrosive .path1:before{content:\"\uE94C\";color:#323232}.icon-corrosive .path2:before{content:\"\uE94D\";margin-left:-1em;color:#323232}.icon-corrosive .path3:before{content:\"\uE94E\";margin-left:-1em;color:#323232}.icon-corrosive .path4:before{content:\"\uE94F\";margin-left:-1em;color:#323232}.icon-corrosive .path5:before{content:\"\uE950\";margin-left:-1em;color:#323232}.icon-corrosive .path6:before{content:\"\uE951\";margin-left:-1em;color:#323232}.icon-corrosive .path7:before{content:\"\uE952\";margin-left:-1em;color:#323232}.icon-corrosive .path8:before{content:\"\uE953\";margin-left:-1em;color:#323232}.icon-corrosive .path9:before{content:\"\uE954\";margin-left:-1em;color:#323232}.icon-corrosive .path10:before{content:\"\uE955\";margin-left:-1em;color:#323232}.icon-corrosive .path11:before{content:\"\uE956\";margin-left:-1em;color:#323232}.icon-corrosive .path12:before{content:\"\uE957\";margin-left:-1em;color:#323232}.icon-corrosive .path13:before{content:\"\uE958\";margin-left:-1em;color:#323232}.icon-corrosive .path14:before{content:\"\uE959\";margin-left:-1em;color:#323232}.icon-corrosive .path15:before{content:\"\uE95A\";margin-left:-1em;color:#323232}.icon-corrosive .path16:before{content:\"\uE95B\";margin-left:-1em;color:#323232}.icon-corrosive .path17:before{content:\"\uE95C\";margin-left:-1em;color:#323232}.icon-corrosive .path18:before{content:\"\uE95D\";margin-left:-1em;color:#323232}.icon-corrosive .path19:before{content:\"\uE95E\";margin-left:-1em;color:#323232}.icon-corrosive .path20:before{content:\"\uE95F\";margin-left:-1em;color:#323232}.icon-corrosive .path21:before{content:\"\uE960\";margin-left:-1em;color:#e32730}.icon-dashboard:before{content:\"\uE961\"}.icon-database-sds:before{content:\"\uE962\"}.icon-description-add:before{content:\"\uE963\"}.icon-description-edit:before{content:\"\uE964\"}.icon-description-view:before{content:\"\uE965\";color:#666}.icon-document-read .path1:before{content:\"\uE966\";color:#000;opacity:.6}.icon-document-read .path2:before{content:\"\uE967\";margin-left:-1em;color:#fff}.icon-document-read .path3:before{content:\"\uE968\";margin-left:-1em;color:#000;opacity:.6}.icon-draft:before{content:\"\uE969\"}.icon-expired-off:before{content:\"\uE96A\"}.icon-expired-on:before{content:\"\uE96B\"}.icon-explosive .path1:before{content:\"\uE96C\";color:#e32730}.icon-explosive .path2:before{content:\"\uE96D\";margin-left:-1em;color:#323232}.icon-explosive .path3:before{content:\"\uE96E\";margin-left:-1em;color:#323232}.icon-explosive .path4:before{content:\"\uE96F\";margin-left:-1em;color:#323232}.icon-explosive .path5:before{content:\"\uE970\";margin-left:-1em;color:#323232}.icon-explosive .path6:before{content:\"\uE971\";margin-left:-1em;color:#323232}.icon-explosive .path7:before{content:\"\uE972\";margin-left:-1em;color:#323232}.icon-explosive .path8:before{content:\"\uE973\";margin-left:-1em;color:#323232}.icon-explosive .path9:before{content:\"\uE974\";margin-left:-1em;color:#323232}.icon-explosive .path10:before{content:\"\uE975\";margin-left:-1em;color:#323232}.icon-explosive .path11:before{content:\"\uE976\";margin-left:-1em;color:#323232}.icon-explosive .path12:before{content:\"\uE977\";margin-left:-1em;color:#323232}.icon-explosive .path13:before{content:\"\uE978\";margin-left:-1em;color:#323232}.icon-explosive .path14:before{content:\"\uE979\";margin-left:-1em;color:#323232}.icon-explosive .path15:before{content:\"\uE97A\";margin-left:-1em;color:#323232}.icon-explosive .path16:before{content:\"\uE97B\";margin-left:-1em;color:#323232}.icon-explosive .path17:before{content:\"\uE97C\";margin-left:-1em;color:#323232}.icon-explosive .path18:before{content:\"\uE97D\";margin-left:-1em;color:#323232}.icon-explosive .path19:before{content:\"\uE97E\";margin-left:-1em;color:#323232}.icon-explosive .path20:before{content:\"\uE97F\";margin-left:-1em;color:#323232}.icon-explosive .path21:before{content:\"\uE980\";margin-left:-1em;color:#323232}.icon-explosive .path22:before{content:\"\uE981\";margin-left:-1em;color:#323232}.icon-explosive .path23:before{content:\"\uE982\";margin-left:-1em;color:#323232}.icon-explosive .path24:before{content:\"\uE983\";margin-left:-1em;color:#323232}.icon-explosive .path25:before{content:\"\uE984\";margin-left:-1em;color:#323232}.icon-explosive .path26:before{content:\"\uE985\";margin-left:-1em;color:#323232}.icon-explosive .path27:before{content:\"\uE986\";margin-left:-1em;color:#323232}.icon-explosive .path28:before{content:\"\uE987\";margin-left:-1em;color:#323232}.icon-explosive .path29:before{content:\"\uE988\";margin-left:-1em;color:#323232}.icon-explosive .path30:before{content:\"\uE989\";margin-left:-1em;color:#323232}.icon-explosive .path31:before{content:\"\uE98A\";margin-left:-1em;color:#323232}.icon-explosive .path32:before{content:\"\uE98B\";margin-left:-1em;color:#323232}.icon-explosive .path33:before{content:\"\uE98C\";margin-left:-1em;color:#323232}.icon-explosive .path34:before{content:\"\uE98D\";margin-left:-1em;color:#323232}.icon-explosive .path35:before{content:\"\uE98E\";margin-left:-1em;color:#323232}.icon-explosive .path36:before{content:\"\uE98F\";margin-left:-1em;color:#323232}.icon-explosive .path37:before{content:\"\uE990\";margin-left:-1em;color:#323232}.icon-explosive .path38:before{content:\"\uE991\";margin-left:-1em;color:#323232}.icon-explosive .path39:before{content:\"\uE992\";margin-left:-1em;color:#323232}.icon-explosive .path40:before{content:\"\uE993\";margin-left:-1em;color:#323232}.icon-explosive .path41:before{content:\"\uE994\";margin-left:-1em;color:#323232}.icon-explosive .path42:before{content:\"\uE995\";margin-left:-1em;color:#323232}.icon-explosive .path43:before{content:\"\uE996\";margin-left:-1em;color:#323232}.icon-explosive .path44:before{content:\"\uE997\";margin-left:-1em;color:#323232}.icon-explosive .path45:before{content:\"\uE998\";margin-left:-1em;color:#323232}.icon-explosive .path46:before{content:\"\uE999\";margin-left:-1em;color:#323232}.icon-file-excel:before{content:\"\uE99A\"}.icon-file-pdf:before{content:\"\uE99B\"}.icon-file-pdf-verified .path1:before{content:\"\uE99C\";color:#000;opacity:.6}.icon-file-pdf-verified .path2:before{content:\"\uE99D\";margin-left:-1em;color:#fff}.icon-file-pdf-verified .path3:before{content:\"\uE99E\";margin-left:-1em;color:#000;opacity:.6}.icon-file-word:before{content:\"\uE99F\"}.icon-filter-alt:before{content:\"\uE9A0\"}.icon-flammable .path1:before{content:\"\uE9A1\";color:#323232}.icon-flammable .path2:before{content:\"\uE9A2\";margin-left:-1em;color:#323232}.icon-flammable .path3:before{content:\"\uE9A3\";margin-left:-1em;color:#e32730}.icon-gas-under-pressure .path1:before{content:\"\uE9A4\";color:#323232}.icon-gas-under-pressure .path2:before{content:\"\uE9A5\";margin-left:-1em;color:#e32730}.icon-health-hazard .path1:before{content:\"\uE9A6\";color:#323232}.icon-health-hazard .path2:before{content:\"\uE9A7\";margin-left:-1em;color:#e32730}.icon-line-break:before{content:\"\uE9A8\"}.icon-location:before{content:\"\uE9A9\"}.icon-measure-add:before{content:\"\uE9AA\"}.icon-measure-edit:before{content:\"\uE9AB\"}.icon-measure-view:before{content:\"\uE9AC\";color:#666}.icon-messages:before{content:\"\uE9AD\"}.icon-monitoring:before{content:\"\uE9AE\";color:#666}.icon-move:before{content:\"\uE9AF\"}.icon-oxidizing .path1:before{content:\"\uE9B0\";color:#e32730}.icon-oxidizing .path2:before{content:\"\uE9B1\";margin-left:-1em;color:#323232}.icon-oxidizing .path3:before{content:\"\uE9B2\";margin-left:-1em;color:#323232}.icon-oxidizing .path4:before{content:\"\uE9B3\";margin-left:-1em;color:#323232}.icon-process-area-closed:before{content:\"\uE9B4\"}.icon-process-area-open:before{content:\"\uE9B5\"}.icon-process-linked .path1:before{content:\"\uE9B6\";color:#000;opacity:.6}.icon-process-linked .path2:before{content:\"\uE9B7\";margin-left:-1em;color:#666}.icon-risk:before{content:\"\uE9B8\"}.icon-search-in-file:before{content:\"\uE9B9\"}.icon-sort-ascending:before{content:\"\uE9BA\"}.icon-sort-descending:before{content:\"\uE9BB\"}.icon-subscript:before{content:\"\uE9BC\"}.icon-superscript:before{content:\"\uE9BD\"}.icon-syncronice-favorites:before{content:\"\uE9BE\"}.icon-system-settings:before{content:\"\uE9BF\"}.icon-view-three-outlined:before{content:\"\uE9C0\"}.icon-workplace-safety:before{content:\"\uE9C1\"}.icon-checklist:before{content:\"\uE900\"}.icon-department-document .path1:before{content:\"\uE901\";color:#000;opacity:.6}.icon-department-document .path2:before{content:\"\uE902\";margin-left:-1em;color:#00804c}.icon-department-folder-closed .path1:before{content:\"\uE903\";color:#000;opacity:.6}.icon-department-folder-closed .path2:before{content:\"\uE904\";margin-left:-1em;color:#00804c}.icon-department-folder-open .path1:before{content:\"\uE905\";color:#000;opacity:.6}.icon-department-folder-open .path2:before{content:\"\uE906\";margin-left:-1em;color:#00804c}.icon-deviation:before{content:\"\uE907\"}.icon-dropdown-folder .path1:before{content:\"\uE908\";color:#00324e}.icon-dropdown-folder .path2:before{content:\"\uE909\";margin-left:-1em;color:#fff;opacity:.6}.icon-enterprise-document .path1:before{content:\"\uE90A\";color:#000;opacity:.6}.icon-enterprise-document .path2:before{content:\"\uE90B\";margin-left:-1em;color:#cf4714}.icon-enterprise-folder-closed .path1:before{content:\"\uE90C\";color:#000;opacity:.6}.icon-enterprise-folder-closed .path2:before{content:\"\uE90D\";margin-left:-1em;color:#cf4714}.icon-enterprise-folder-open .path1:before{content:\"\uE90E\";color:#000;opacity:.6}.icon-enterprise-folder-open .path2:before{content:\"\uE90F\";margin-left:-1em;color:#cf4714}.icon-folder-closed:before{content:\"\uE910\"}.icon-folder-open:before{content:\"\uE911\"}.icon-keyboard_arrow_down:before{content:\"\uE912\"}.icon-keyboard_arrow_up:before{content:\"\uE913\"}.icon-local-document .path1:before{content:\"\uE914\";color:#000;opacity:.6}.icon-local-document .path2:before{content:\"\uE915\";margin-left:-1em;color:#1954a9}.icon-local-folder-closed .path1:before{content:\"\uE916\";color:#000;opacity:.6}.icon-local-folder-closed .path2:before{content:\"\uE917\";margin-left:-1em;color:#1954a9}.icon-local-folder-open .path1:before{content:\"\uE918\";color:#000;opacity:.6}.icon-local-folder-open .path2:before{content:\"\uE919\";margin-left:-1em;color:#1954a9}.icon-process:before{content:\"\uE91A\"}.icon-regional-document .path1:before{content:\"\uE91C\";color:#000;opacity:.6}.icon-regional-document .path2:before{content:\"\uE91D\";margin-left:-1em;color:#662e0d}.icon-regional-folder-closed .path1:before{content:\"\uE91E\";color:#000;opacity:.6}.icon-regional-folder-closed .path2:before{content:\"\uE91F\";margin-left:-1em;color:#662e0d}.icon-regional-folder-open .path1:before{content:\"\uE920\";color:#000;opacity:.6}.icon-regional-folder-open .path2:before{content:\"\uE921\";margin-left:-1em;color:#662e0d}.qms-select-department-tree-container .mr10{margin-right:10px}.qms-select-department-tree-container .mt5{margin-bottom:5px}.qms-select-department-tree-container .mb5{margin-top:5px}.qms-select-department-tree-container .w100{width:100%}.qms-select-department-tree-container .fw500{font-weight:500!important}.qms-select-department-tree-container .text-right{text-align:right}.qms-select-department-tree-container .mt20{margin-top:20px}.qms-select-department-tree-container .text-selected{color:rgba(0,0,0,.6);font-size:12px;line-height:16px;margin-top:1rem}.qms-select-department-tree-container .input-field{display:flex;align-items:center;position:relative}.qms-select-department-tree-container .input-field ::ng-deep .mat-form-field-wrapper{padding-bottom:8px!important}.qms-select-department-tree-container .input-field ::ng-deep .mat-form-field-underline{bottom:8px!important}.qms-select-department-tree-container .input-field input.input-search{width:100%;padding:10px;outline:none;border:none;background:var(--background-input-text)}.qms-select-department-tree-container .input-field .btn-search{cursor:pointer;vertical-align:middle;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.qms-select-department-tree-container .input-field .line__divider{border-bottom:1px solid #ccc;height:1px;margin-top:10px;min-width:300px;max-width:100%}.qms-select-department-tree-container .tree-department-wrapper{height:375px;padding-right:4px;overflow-y:auto;overflow-x:hidden;position:relative}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node{border-radius:4px}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node:hover{background:rgba(0,0,0,.08)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node:active{background:rgba(0,0,0,.12)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.active{color:var(--primary);background:var(--primary-light-6-opacity)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.active:active{background:var(--primary-light-12-opacity)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.active .mat-icon-rtl-mirror,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.active .text-name,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.active .type-icon,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.active button,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.collapse-node:not(.selected-theme).active .mat-icon-rtl-mirror,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.collapse-node:not(.selected-theme).active .text-name,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.collapse-node:not(.selected-theme).active .type-icon,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.collapse-node:not(.selected-theme).active button{color:var(--primary)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.collapse-node:not(.selected-theme).active:hover{background:var(--primary-light-6-opacity)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.collapse-node:not(.selected-theme).active:active,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.selected-theme{background:var(--primary-light-12-opacity)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.expand-node,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.expand-node .mat-icon-rtl-mirror,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.expand-node .text-name,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.expand-node .type-icon,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.expand-node button{color:var(--primary)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.expand-node:hover{background:var(--primary-light-6-opacity)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.expand-node:active{background:var(--primary-light-12-opacity)}.qms-select-department-tree-container .mat-tree.select-department-tree .type-icon{margin-right:5px;color:var(--ws-action-active)}.qms-select-department-tree-container .mat-tree.select-department-tree .text-name{color:var(--default-color)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-icon-rtl-mirror{color:rgba(0,0,0,.6)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-icon-button.btn-toggle{width:35px;height:35px;line-height:35px}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled-all{cursor:default!important;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled-all .mat-icon-rtl-mirror,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled-all .type-icon,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled-all button.mat-button-disabled{color:rgba(0,0,0,.38)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled-all .text-name.disabled{color:rgba(0,0,0,.38);cursor:default!important;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled-all.active{background-color:transparent}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled .type-icon,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled button.mat-button-disabled{color:rgba(0,0,0,.38)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled .text-name.disabled{color:rgba(0,0,0,.38);cursor:default!important;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled.active,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled.expand-node:active,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled.expand-node:hover,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled:active,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled:hover{background-color:transparent}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node .node-without-checkbox{cursor:pointer;width:100%;display:flex;justify-content:space-between;align-items:center}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node .node-without-checkbox .mat-icon{color:var(--primary);margin-right:4px}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node>.node-content-wraper{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;position:relative;display:flex;justify-content:center;align-items:center}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node>.node-content-wraper>.mat-progress-bar{height:3px;width:100%;position:absolute;bottom:0;left:10px}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node>.node-content-wraper>.mat-progress-bar .mat-progress-bar-fill:after{background:var(--primary)}.qms-select-department-tree-container .text-name{position:relative;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;cursor:pointer;width:100%}.qms-select-department-tree-container .cursor-pointer{cursor:pointer}.qms-select-department-tree-container .ml5{margin-left:10px!important}.qms-select-department-tree-container ::ng-deep .mat-checkbox.qms-group-options.flex-direction-row .mat-checkbox-layout{white-space:normal}.qms-select-department-tree-container ::ng-deep .mat-checkbox.qms-group-options.flex-direction-row .mat-checkbox-label{flex-direction:row;align-items:center;position:relative;padding-bottom:2px}.qms-select-department-tree-container .qms-view-search-result{height:375px;width:100%;overflow:hidden}.qms-select-department-tree-container .qms-view-search-result .result{max-height:calc(100% - 44px);overflow-y:auto;margin-bottom:4px;padding-right:4px}.qms-select-department-tree-container .qms-view-search-result .result.active-paging{max-height:calc(100% - 80px)}.qms-select-department-tree-container .qms-view-search-result .result.no-result{height:100%;display:flex;justify-content:center;align-items:center}.qms-select-department-tree-container .qms-view-search-result .result-item{border-radius:4px;display:grid;grid-template-columns:45px 1fr;align-items:center;cursor:pointer;transition:background .3s ease}.qms-select-department-tree-container .qms-view-search-result .result-item:not(:first-child){margin-top:4px!important}.qms-select-department-tree-container .qms-view-search-result .result-item.active,.qms-select-department-tree-container .qms-view-search-result .result-item:hover{background:linear-gradient(0deg,rgba(1,99,178,.12),rgba(1,99,178,.12)),#fff}.qms-select-department-tree-container .qms-view-search-result .result-item .item-result-content-wraper{padding:5px 15px}.qms-select-department-tree-container .qms-view-search-result ::ng-deep .mat-checkbox.qms-group-options{display:flex;height:100%}.qms-select-department-tree-container ::ng-deep .breadcrumb-container{flex-wrap:wrap}.qms-select-department-tree-container ::ng-deep .mat-button-focus-overlay{background-color:transparent}.qms-select-department-tree-container ::ng-deep .qms-breadcrumb-item{margin:0}.qms-select-department-tree-container ::ng-deep .qms-breadcrumb-item-text{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;transition:color .3s ease}.qms-select-department-tree-container ::ng-deep .qms-breadcrumb-item-text:not(:last-child){max-width:150px!important}.qms-select-department-tree-container ::ng-deep .qms-breadcrumb-item-text:not(:last-child):hover{color:var(--primary)}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-icon{display:flex;align-items:center;justify-content:center}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-form-field-wrapper{padding-bottom:0}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-paginator-container{min-height:40px}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-paginator-container .qms-total-result{margin-bottom:0;margin-right:12px;height:100%;display:flex;justify-content:center;align-items:center}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-paginator-container .qms-total-result span{font-weight:600;font-size:13px;color:rgba(0,0,0,.8)}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions{margin-bottom:0;grid-column-gap:2px;-moz-column-gap:2px;column-gap:2px}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions>.qms-total-result{margin-bottom:0}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions>.qms-btn-icon{width:30px;height:30px;line-height:30px}.qms-select-department-tree-container ::ng-deep .qms-paginator>.qms-btn-icon-wrapper{width:30px;height:30px;display:flex;justify-content:center;align-items:center}.qms-select-department-tree-container ::ng-deep .qms-paginator .qms-paginator-page-size{margin-right:12px;height:100%;display:flex;align-items:center;justify-content:center}.qms-select-department-tree-container ::ng-deep .qms-paginator .qms-paginator-page-size>.qms-form-page-size .mat-form-field-flex{width:60px;height:30px;display:flex;align-items:center;padding:0 4px}.qms-select-department-tree-container ::ng-deep .qms-paginator .qms-paginator-page-size>.qms-form-page-size .mat-form-field-flex .mat-form-field-infix{height:30px}.qms-select-department-tree-container ::ng-deep .qms-paginator .qms-paginator-page-size>.qms-pagesize-label{display:none}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-form-field.qms-form .mat-select-min-line,.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-form-field.qms-form mat-select-trigger{font-size:14px}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-select-value{text-align:center}.qms-select-department-tree-container .text-gray{color:#242424}.qms-select-department-tree-container .mb0{margin-bottom:0!important}.qms-select-department-tree-container .fs-base{font-size:14px!important}.qms-select-department-tree-container .user-select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.qms-select-department-tree-container .item-breadcrumb-disable{cursor:not-allowed;color:rgba(0,0,0,.6);font-weight:400;font-size:14px}.qms-select-department-tree-container ::ng-deep .mat-checkbox.checkbox-all .mat-checkbox-label{flex-direction:row;align-items:center;grid-column-gap:4px;-moz-column-gap:4px;column-gap:4px}.qms-select-department-tree-container ::ng-deep .btn-arrow{width:40px;height:40px;line-height:40px}.qms-select-department-tree-container .loading-container{overflow:hidden;height:100%;display:grid;grid-template-rows:repeat(auto-fit,minmax(60px,60px))}.qms-select-department-tree-container .loading-container .loader{position:relative;width:100%;height:100%;padding:10px 0;overflow:hidden}.qms-select-department-tree-container .loading-container .loader:after{content:\"\";position:absolute;width:100%;height:100%;top:0;left:0;background:linear-gradient(110deg,hsla(0,0%,91%,0),hsla(0,0%,89%,0) 40%,hsla(0,0%,89%,.5) 50%,hsla(0,0%,89%,0) 60%,hsla(0,0%,89%,0));-webkit-animation:animate-loading 1.2s linear infinite;animation:animate-loading 1.2s linear infinite}.qms-select-department-tree-container .loading-container .loader__wrapper{position:relative;width:100%;height:100%}.qms-select-department-tree-container .loading-container .loader__wrapper .row-loader{background-color:#eee;position:absolute;left:0;width:100%;height:40px}@-webkit-keyframes animate-loading{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}@keyframes animate-loading{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}"]
29607
29710
  },] }
29608
29711
  ];
29609
29712
  SelectDepartmentTreeComponent.ctorParameters = () => [
@@ -29612,13 +29715,17 @@ SelectDepartmentTreeComponent.ctorParameters = () => [
29612
29715
  { type: QMSIconRegistryService },
29613
29716
  { type: MatIconRegistry },
29614
29717
  { type: ElementRef },
29615
- { type: TranslateLibraryService }
29718
+ { type: TranslateLibraryService },
29719
+ { type: QMSSelectDepartmentTreeGlobalService }
29616
29720
  ];
29617
29721
  SelectDepartmentTreeComponent.propDecorators = {
29618
29722
  enableIncludeChild: [{ type: Input }],
29619
29723
  enableTreeSearch: [{ type: Input }],
29620
29724
  isSelectOne: [{ type: Input }],
29621
29725
  activeViewSearch: [{ type: Input }],
29726
+ height: [{ type: Input }],
29727
+ customClass: [{ type: Input }],
29728
+ rowsSkeleton: [{ type: Input }],
29622
29729
  treeData: [{ type: Input }],
29623
29730
  selectedList: [{ type: Input }],
29624
29731
  selectIncludeLabel: [{ type: Input }],
@@ -29626,7 +29733,9 @@ SelectDepartmentTreeComponent.propDecorators = {
29626
29733
  enablePagingSearch: [{ type: Input }],
29627
29734
  onSearchEvent: [{ type: Output }],
29628
29735
  onPagingSearchEvent: [{ type: Output }],
29629
- onValueChangeEvent: [{ type: Output }]
29736
+ onValueChangeEvent: [{ type: Output }],
29737
+ selectionNodeChangeEvent: [{ type: Output }],
29738
+ paginatorSearch: [{ type: ViewChild, args: ['paginatorSearch',] }]
29630
29739
  };
29631
29740
 
29632
29741
  class QMSSelectDepartmentTreeModule {
@@ -29693,6 +29802,16 @@ const SelectDepartmentAnimationTrigger = [
29693
29802
  animate('0.3s ease-out', style({ opacity: 1 }))
29694
29803
  ]),
29695
29804
  ]),
29805
+ trigger('inOutAnimation_2', [
29806
+ transition(':enter', [
29807
+ style({ opacity: 0, transform: 'translateX(-10px)' }),
29808
+ animate('0.3s ease-out', style({ opacity: 1, transform: 'none' }))
29809
+ ]),
29810
+ transition(':leave', [
29811
+ style({ opacity: 1, filter: 'blur(5px)' }),
29812
+ animate('0.3s ease-out', style({ opacity: 0 }))
29813
+ ]),
29814
+ ]),
29696
29815
  trigger('rotateAnimation', [
29697
29816
  transition(':enter', [
29698
29817
  style({ transform: 'scale(0) rotate(-180deg)' }),
@@ -29712,42 +29831,36 @@ const SelectDepartmentAnimationTrigger = [
29712
29831
  style({ maxHeight: '175px', minHeight: '40px', opacity: 1 }),
29713
29832
  animate('0.1s ease-out', style({ minHeight: 0, maxHeight: 0, opacity: 0 }))
29714
29833
  ])
29834
+ ]),
29835
+ trigger('updateItemAnimation', [
29836
+ transition('void => *', [animate('0.3s', keyframes([
29837
+ style({
29838
+ boxShadow: 'rgba(0, 0, 0, 0.15) 1.95px 1.95px 2.6px',
29839
+ background: '#c8d6ea',
29840
+ offset: 0
29841
+ }),
29842
+ style({
29843
+ boxShadow: `*`,
29844
+ background: '*',
29845
+ offset: 1
29846
+ })
29847
+ ]))]),
29715
29848
  ])
29716
29849
  ];
29717
29850
 
29718
- class QMSSelectDepartmentGlobalService {
29719
- constructor() {
29720
- this.getDataTree$ = new BehaviorSubject([]);
29721
- this.searchDepartment$ = new Subject();
29722
- }
29723
- updateDataTree(data) {
29724
- this.getDataTree$.next(data);
29725
- }
29726
- setResultSearch(data) {
29727
- this.searchDepartment$.next(data);
29728
- }
29729
- }
29730
- QMSSelectDepartmentGlobalService.ɵprov = i0.ɵɵdefineInjectable({ factory: function QMSSelectDepartmentGlobalService_Factory() { return new QMSSelectDepartmentGlobalService(); }, token: QMSSelectDepartmentGlobalService, providedIn: "root" });
29731
- QMSSelectDepartmentGlobalService.decorators = [
29732
- { type: Injectable, args: [{
29733
- providedIn: 'root'
29734
- },] }
29735
- ];
29736
-
29737
29851
  const ɵ0$1 = {
29738
29852
  clickAction: 'noop'
29739
29853
  };
29740
29854
  class SelectDepartmentComponent {
29741
- constructor(selectDepartmentService, cdRef, dialogRef, data, trans) {
29742
- this.selectDepartmentService = selectDepartmentService;
29855
+ constructor(cdRef, dialogRef, data, trans) {
29743
29856
  this.cdRef = cdRef;
29744
29857
  this.dialogRef = dialogRef;
29745
29858
  this.data = data;
29746
29859
  this.trans = trans;
29747
29860
  this.ngUnsubscribe = new Subject();
29861
+ this.onPagingEvent = new EventEmitter();
29748
29862
  this.popupData = new SelectDepartmentPopupData();
29749
29863
  this.groupIncludeChild = [];
29750
- this.singleItem = [];
29751
29864
  this.resultSelected = [];
29752
29865
  this.onSearchEvent = new EventEmitter();
29753
29866
  this.resultSearch = [];
@@ -29758,12 +29871,7 @@ class SelectDepartmentComponent {
29758
29871
  }
29759
29872
  });
29760
29873
  // Init popup data
29761
- this.popupData = _.cloneDeep(data);
29762
- this.selectDepartmentService.searchDepartment$
29763
- .pipe(takeUntil(this.ngUnsubscribe))
29764
- .subscribe(result => {
29765
- this.treeDepartment.setResultSearch(result);
29766
- });
29874
+ this.popupData = _.cloneDeep(this.data);
29767
29875
  }
29768
29876
  ngAfterViewInit() {
29769
29877
  this.cdRef.detectChanges();
@@ -29792,9 +29900,17 @@ class SelectDepartmentComponent {
29792
29900
  onResultDepartmentChange(data) {
29793
29901
  this.resultSelected = data.map(item => {
29794
29902
  var _a;
29795
- return Object.assign(Object.assign({}, item), { tooltip: ((_a = item.children) === null || _a === void 0 ? void 0 : _a.length) ? this.formatString(this.LANG.TOOLTIP_INCLUDE_CHILD, item.name, item.children.length.toString()) : item.name });
29903
+ return Object.assign(Object.assign({}, item), { tooltip: ((_a = item.children) === null || _a === void 0 ? void 0 : _a.length) ? this.formatString(this.LANG.TOOLTIP_INCLUDE_SUB_DEPARTMENT, item.name, item.children.length.toString()) : item.name });
29796
29904
  });
29797
29905
  }
29906
+ generateTootip(node) {
29907
+ return node.isGroup ? this.formatString(this.LANG.TOOLTIP_INCLUDE_SUB_DEPARTMENT, node.name, node.children.length.toString()) : node.name;
29908
+ }
29909
+ updateResultSearch(data) {
29910
+ if (!this.treeDepartment)
29911
+ return;
29912
+ this.treeDepartment.setResultSearch(data);
29913
+ }
29798
29914
  formatString(...replacements) {
29799
29915
  let result = arguments[0];
29800
29916
  for (let i = 0; i < arguments.length - 1; i++) {
@@ -29807,26 +29923,26 @@ class SelectDepartmentComponent {
29807
29923
  SelectDepartmentComponent.decorators = [
29808
29924
  { type: Component, args: [{
29809
29925
  selector: 'qms-select-department',
29810
- template: "<div class=\"qms-select-department\">\r\n <div class=\"header-dialog mb-2\">\r\n <span>{{popupData.headerName}}</span>\r\n <button matDialogClose qms-btn-icon>\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n <div>\r\n <div class=\"qms-scrollbar\">\r\n <div>\r\n <qms-select-department-tree #treeDepartment [treeData]=\"popupData.treeData\"\r\n [isSelectOne]=\"popupData.isSelectOne\"\r\n [enableIncludeChild]=\"popupData.includeChildren && !popupData.isSelectOne\"\r\n [selectIncludeLabel]=\"popupData.selectIncludeLabel\" [enableTreeSearch]=\"popupData.enableSearch\"\r\n [enablePagingSearch]=\"popupData.enablePagingSearch\" [activeViewSearch]=\"isActiveViewSearch\"\r\n [selectedList]=\"popupData.selectedList\" [checkSearchMappingTree]=\"true\"\r\n (onSearchEvent)=\"onSearchEvent.emit($event)\" (onValueChangeEvent)=\"onResultDepartmentChange($event)\">\r\n </qms-select-department-tree>\r\n </div>\r\n </div>\r\n <mat-divider class=\"mx-auto\"></mat-divider>\r\n <div *ngIf=\"!!resultSelected.length\" class=\"line__divider\"></div>\r\n <div [@heightAnimation] *ngIf=\"!!resultSelected.length\" class=\" pr-0 pe-0\">\r\n <div class=\"header-title\">{{LANG.RESULTS}}</div>\r\n <div class=\"result-content pr-0 pe-0\">\r\n <mat-chip-list class=\"panel__item qms-scrollbar\">\r\n <mat-chip [qms-tool-tip]=\"item?.tooltip || item.name\" position=\"top\" mode=\"dark\"\r\n *ngFor=\"let item of resultSelected\" qms-chip [removable]=\"true\">\r\n <span (click)=\"onScrollToNode(item)\" qms-chip-body>\r\n <span class=\"related__item__content_name\" #itemName>\r\n {{item.name}}\r\n <span class=\"select__include-children__count\" *ngIf=\"item?.children\">\r\n {{item.children.length}}/{{item.childCount}}\r\n </span>\r\n </span>\r\n </span>\r\n <mat-icon (click)=\"onRemoveNode(item)\">cancel</mat-icon>\r\n </mat-chip>\r\n </mat-chip-list>\r\n </div>\r\n </div>\r\n <mat-divider *ngIf=\"!!resultSelected.length\" class=\"mx-auto\"></mat-divider>\r\n <div class=\"confirm__button__groups\">\r\n <button (click)=\"onCloseDialog()\" class=\"btn-add\" [disabled]=\"!resultSelected.length\"\r\n [class.qms-btn-disabled]=\"!resultSelected.length\" qms-btn>\r\n <span>{{LANG.ADD}}</span>\r\n <span *ngIf=\"!!resultSelected\">\r\n ({{resultSelected.length}})\r\n </span>\r\n </button>\r\n <button qms-btn-text mat-dialog-close>\r\n Cancel\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n",
29926
+ template: "<div class=\"qms-select-department\">\r\n <div class=\"header-dialog mb-2\">\r\n <span>{{popupData.headerName}}</span>\r\n <button matDialogClose qms-btn-icon>\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n <div>\r\n <div class=\"qms-scrollbar\">\r\n <div>\r\n <qms-select-department-tree #treeDepartment [selectedList]=\"popupData.selectedList\"\r\n [treeData]=\"popupData.treeData\" customClass=\"custom-department-tree\" height=\"45vh\"\r\n [isSelectOne]=\"popupData.isSelectOne\"\r\n [enableIncludeChild]=\"popupData.includeChildren && !popupData.isSelectOne\"\r\n [selectIncludeLabel]=\"popupData.selectIncludeLabel\" [enableTreeSearch]=\"popupData.enableSearch\"\r\n [enablePagingSearch]=\"popupData.enablePagingSearch\" [activeViewSearch]=\"isActiveViewSearch\"\r\n [checkSearchMappingTree]=\"true\" (onSearchEvent)=\"onSearchEvent.emit($event)\"\r\n (onValueChangeEvent)=\"onResultDepartmentChange($event)\" (onPagingSearchEvent)=\"onPagingEvent.emit($event)\">\r\n </qms-select-department-tree>\r\n </div>\r\n </div>\r\n <div *ngIf=\"treeDepartment && !!treeDepartment.resultSelected.length\" class=\"line__divider\"></div>\r\n <div [@heightAnimation] *ngIf=\"treeDepartment && !!treeDepartment.resultSelected.length\" class=\" pr-0 pe-0\">\r\n <div class=\"header-title\">{{LANG.RESULTS}}</div>\r\n <div class=\"result-content pr-0 pe-0\">\r\n <mat-chip-list class=\"panel__item qms-scrollbar\">\r\n <div [@inOutAnimation_2] [id]=\"'item-result-'+item.id\" *ngFor=\"let item of treeDepartment.resultSelected\">\r\n <mat-chip [@updateItemAnimation] *qmsContentChanges=\"item.children?.length\"\r\n [qms-tool-tip]=\"generateTootip(item)\" position=\"top\" mode=\"dark\" qms-chip [removable]=\"true\">\r\n <span (click)=\"onScrollToNode(item)\" qms-chip-body>\r\n <span class=\"related__item__content_name\" #itemName>\r\n {{item.name}}\r\n <span class=\"select__include-children__count\" *ngIf=\"!!item?.isGroup\">\r\n {{item.children.length}}/{{item.childCount}}\r\n </span>\r\n </span>\r\n </span>\r\n <mat-icon (click)=\"onRemoveNode(item)\">cancel</mat-icon>\r\n </mat-chip>\r\n </div>\r\n </mat-chip-list>\r\n </div>\r\n </div>\r\n <mat-divider *ngIf=\"treeDepartment && !!treeDepartment.resultSelected.length\" class=\"mx-auto\"></mat-divider>\r\n <div class=\"confirm__button__groups\">\r\n <button (click)=\"onCloseDialog()\" class=\"btn-add\" [disabled]=\"!resultSelected.length\"\r\n [class.qms-btn-disabled]=\"!resultSelected.length\" qms-btn>\r\n <span>{{LANG.ADD}}</span>\r\n <span>\r\n ({{treeDepartment.resultSelected.length}})\r\n </span>\r\n </button>\r\n <button qms-btn-text mat-dialog-close>\r\n Cancel\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n",
29811
29927
  providers: [
29812
29928
  {
29813
29929
  provide: MAT_CHECKBOX_DEFAULT_OPTIONS,
29814
29930
  useValue: ɵ0$1
29815
29931
  }
29816
29932
  ],
29817
- animations: SelectDepartmentAnimationTrigger,
29818
- styles: ["@charset \"UTF-8\";@font-face{font-family:icomoon;src:url(../assets/fonts/icomoon.eot?aghldx);src:url(../assets/fonts/icomoon.eot?aghldx#iefix) format(\"embedded-opentype\"),url(../assets/fonts/icomoon.ttf?aghldx) format(\"truetype\"),url(../assets/fonts/icomoon.woff?aghldx) format(\"woff\"),url(../assets/fonts/icomoon.svg?aghldx#icomoon) format(\"svg\");font-weight:400;font-style:normal;font-display:block}[class*=\" icon-\"],[class^=icon-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-feature-settings:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-acutely-toxic .path1:before{content:\"\uE91B\";color:#e32730}.icon-acutely-toxic .path2:before{content:\"\uE922\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path3:before{content:\"\uE923\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path4:before{content:\"\uE924\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path5:before{content:\"\uE925\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path6:before{content:\"\uE926\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path7:before{content:\"\uE927\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path8:before{content:\"\uE928\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path9:before{content:\"\uE929\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path10:before{content:\"\uE92A\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path11:before{content:\"\uE92B\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path12:before{content:\"\uE92C\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path13:before{content:\"\uE92D\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path14:before{content:\"\uE92E\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path15:before{content:\"\uE92F\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path16:before{content:\"\uE930\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path17:before{content:\"\uE931\";margin-left:-1em;color:#323232}.icon-add-column:before{content:\"\uE932\"}.icon-add-tooltip:before{content:\"\uE933\"}.icon-admin:before{content:\"\uE934\"}.icon-annual-cycle:before{content:\"\uE935\"}.icon-assignment-repete:before{content:\"\uE936\"}.icon-barrier-add:before{content:\"\uE937\"}.icon-barrier-edit:before{content:\"\uE938\"}.icon-barrier-view:before{content:\"\uE939\"}.icon-button-group:before{content:\"\uE93A\"}.icon-chemical-manager:before{content:\"\uE93B\"}.icon-chronic-health-hazard .path1:before{content:\"\uE93C\";color:#e32730}.icon-chronic-health-hazard .path2:before{content:\"\uE93D\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path3:before{content:\"\uE93E\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path4:before{content:\"\uE93F\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path5:before{content:\"\uE940\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path6:before{content:\"\uE941\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path7:before{content:\"\uE942\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path8:before{content:\"\uE943\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path9:before{content:\"\uE944\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path10:before{content:\"\uE945\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path11:before{content:\"\uE946\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path12:before{content:\"\uE947\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path13:before{content:\"\uE948\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path14:before{content:\"\uE949\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path15:before{content:\"\uE94A\";margin-left:-1em;color:#323232}.icon-contingency:before{content:\"\uE94B\"}.icon-corrosive .path1:before{content:\"\uE94C\";color:#323232}.icon-corrosive .path2:before{content:\"\uE94D\";margin-left:-1em;color:#323232}.icon-corrosive .path3:before{content:\"\uE94E\";margin-left:-1em;color:#323232}.icon-corrosive .path4:before{content:\"\uE94F\";margin-left:-1em;color:#323232}.icon-corrosive .path5:before{content:\"\uE950\";margin-left:-1em;color:#323232}.icon-corrosive .path6:before{content:\"\uE951\";margin-left:-1em;color:#323232}.icon-corrosive .path7:before{content:\"\uE952\";margin-left:-1em;color:#323232}.icon-corrosive .path8:before{content:\"\uE953\";margin-left:-1em;color:#323232}.icon-corrosive .path9:before{content:\"\uE954\";margin-left:-1em;color:#323232}.icon-corrosive .path10:before{content:\"\uE955\";margin-left:-1em;color:#323232}.icon-corrosive .path11:before{content:\"\uE956\";margin-left:-1em;color:#323232}.icon-corrosive .path12:before{content:\"\uE957\";margin-left:-1em;color:#323232}.icon-corrosive .path13:before{content:\"\uE958\";margin-left:-1em;color:#323232}.icon-corrosive .path14:before{content:\"\uE959\";margin-left:-1em;color:#323232}.icon-corrosive .path15:before{content:\"\uE95A\";margin-left:-1em;color:#323232}.icon-corrosive .path16:before{content:\"\uE95B\";margin-left:-1em;color:#323232}.icon-corrosive .path17:before{content:\"\uE95C\";margin-left:-1em;color:#323232}.icon-corrosive .path18:before{content:\"\uE95D\";margin-left:-1em;color:#323232}.icon-corrosive .path19:before{content:\"\uE95E\";margin-left:-1em;color:#323232}.icon-corrosive .path20:before{content:\"\uE95F\";margin-left:-1em;color:#323232}.icon-corrosive .path21:before{content:\"\uE960\";margin-left:-1em;color:#e32730}.icon-dashboard:before{content:\"\uE961\"}.icon-database-sds:before{content:\"\uE962\"}.icon-description-add:before{content:\"\uE963\"}.icon-description-edit:before{content:\"\uE964\"}.icon-description-view:before{content:\"\uE965\";color:#666}.icon-document-read .path1:before{content:\"\uE966\";color:#000;opacity:.6}.icon-document-read .path2:before{content:\"\uE967\";margin-left:-1em;color:#fff}.icon-document-read .path3:before{content:\"\uE968\";margin-left:-1em;color:#000;opacity:.6}.icon-draft:before{content:\"\uE969\"}.icon-expired-off:before{content:\"\uE96A\"}.icon-expired-on:before{content:\"\uE96B\"}.icon-explosive .path1:before{content:\"\uE96C\";color:#e32730}.icon-explosive .path2:before{content:\"\uE96D\";margin-left:-1em;color:#323232}.icon-explosive .path3:before{content:\"\uE96E\";margin-left:-1em;color:#323232}.icon-explosive .path4:before{content:\"\uE96F\";margin-left:-1em;color:#323232}.icon-explosive .path5:before{content:\"\uE970\";margin-left:-1em;color:#323232}.icon-explosive .path6:before{content:\"\uE971\";margin-left:-1em;color:#323232}.icon-explosive .path7:before{content:\"\uE972\";margin-left:-1em;color:#323232}.icon-explosive .path8:before{content:\"\uE973\";margin-left:-1em;color:#323232}.icon-explosive .path9:before{content:\"\uE974\";margin-left:-1em;color:#323232}.icon-explosive .path10:before{content:\"\uE975\";margin-left:-1em;color:#323232}.icon-explosive .path11:before{content:\"\uE976\";margin-left:-1em;color:#323232}.icon-explosive .path12:before{content:\"\uE977\";margin-left:-1em;color:#323232}.icon-explosive .path13:before{content:\"\uE978\";margin-left:-1em;color:#323232}.icon-explosive .path14:before{content:\"\uE979\";margin-left:-1em;color:#323232}.icon-explosive .path15:before{content:\"\uE97A\";margin-left:-1em;color:#323232}.icon-explosive .path16:before{content:\"\uE97B\";margin-left:-1em;color:#323232}.icon-explosive .path17:before{content:\"\uE97C\";margin-left:-1em;color:#323232}.icon-explosive .path18:before{content:\"\uE97D\";margin-left:-1em;color:#323232}.icon-explosive .path19:before{content:\"\uE97E\";margin-left:-1em;color:#323232}.icon-explosive .path20:before{content:\"\uE97F\";margin-left:-1em;color:#323232}.icon-explosive .path21:before{content:\"\uE980\";margin-left:-1em;color:#323232}.icon-explosive .path22:before{content:\"\uE981\";margin-left:-1em;color:#323232}.icon-explosive .path23:before{content:\"\uE982\";margin-left:-1em;color:#323232}.icon-explosive .path24:before{content:\"\uE983\";margin-left:-1em;color:#323232}.icon-explosive .path25:before{content:\"\uE984\";margin-left:-1em;color:#323232}.icon-explosive .path26:before{content:\"\uE985\";margin-left:-1em;color:#323232}.icon-explosive .path27:before{content:\"\uE986\";margin-left:-1em;color:#323232}.icon-explosive .path28:before{content:\"\uE987\";margin-left:-1em;color:#323232}.icon-explosive .path29:before{content:\"\uE988\";margin-left:-1em;color:#323232}.icon-explosive .path30:before{content:\"\uE989\";margin-left:-1em;color:#323232}.icon-explosive .path31:before{content:\"\uE98A\";margin-left:-1em;color:#323232}.icon-explosive .path32:before{content:\"\uE98B\";margin-left:-1em;color:#323232}.icon-explosive .path33:before{content:\"\uE98C\";margin-left:-1em;color:#323232}.icon-explosive .path34:before{content:\"\uE98D\";margin-left:-1em;color:#323232}.icon-explosive .path35:before{content:\"\uE98E\";margin-left:-1em;color:#323232}.icon-explosive .path36:before{content:\"\uE98F\";margin-left:-1em;color:#323232}.icon-explosive .path37:before{content:\"\uE990\";margin-left:-1em;color:#323232}.icon-explosive .path38:before{content:\"\uE991\";margin-left:-1em;color:#323232}.icon-explosive .path39:before{content:\"\uE992\";margin-left:-1em;color:#323232}.icon-explosive .path40:before{content:\"\uE993\";margin-left:-1em;color:#323232}.icon-explosive .path41:before{content:\"\uE994\";margin-left:-1em;color:#323232}.icon-explosive .path42:before{content:\"\uE995\";margin-left:-1em;color:#323232}.icon-explosive .path43:before{content:\"\uE996\";margin-left:-1em;color:#323232}.icon-explosive .path44:before{content:\"\uE997\";margin-left:-1em;color:#323232}.icon-explosive .path45:before{content:\"\uE998\";margin-left:-1em;color:#323232}.icon-explosive .path46:before{content:\"\uE999\";margin-left:-1em;color:#323232}.icon-file-excel:before{content:\"\uE99A\"}.icon-file-pdf:before{content:\"\uE99B\"}.icon-file-pdf-verified .path1:before{content:\"\uE99C\";color:#000;opacity:.6}.icon-file-pdf-verified .path2:before{content:\"\uE99D\";margin-left:-1em;color:#fff}.icon-file-pdf-verified .path3:before{content:\"\uE99E\";margin-left:-1em;color:#000;opacity:.6}.icon-file-word:before{content:\"\uE99F\"}.icon-filter-alt:before{content:\"\uE9A0\"}.icon-flammable .path1:before{content:\"\uE9A1\";color:#323232}.icon-flammable .path2:before{content:\"\uE9A2\";margin-left:-1em;color:#323232}.icon-flammable .path3:before{content:\"\uE9A3\";margin-left:-1em;color:#e32730}.icon-gas-under-pressure .path1:before{content:\"\uE9A4\";color:#323232}.icon-gas-under-pressure .path2:before{content:\"\uE9A5\";margin-left:-1em;color:#e32730}.icon-health-hazard .path1:before{content:\"\uE9A6\";color:#323232}.icon-health-hazard .path2:before{content:\"\uE9A7\";margin-left:-1em;color:#e32730}.icon-line-break:before{content:\"\uE9A8\"}.icon-location:before{content:\"\uE9A9\"}.icon-measure-add:before{content:\"\uE9AA\"}.icon-measure-edit:before{content:\"\uE9AB\"}.icon-measure-view:before{content:\"\uE9AC\";color:#666}.icon-messages:before{content:\"\uE9AD\"}.icon-monitoring:before{content:\"\uE9AE\";color:#666}.icon-move:before{content:\"\uE9AF\"}.icon-oxidizing .path1:before{content:\"\uE9B0\";color:#e32730}.icon-oxidizing .path2:before{content:\"\uE9B1\";margin-left:-1em;color:#323232}.icon-oxidizing .path3:before{content:\"\uE9B2\";margin-left:-1em;color:#323232}.icon-oxidizing .path4:before{content:\"\uE9B3\";margin-left:-1em;color:#323232}.icon-process-area-closed:before{content:\"\uE9B4\"}.icon-process-area-open:before{content:\"\uE9B5\"}.icon-process-linked .path1:before{content:\"\uE9B6\";color:#000;opacity:.6}.icon-process-linked .path2:before{content:\"\uE9B7\";margin-left:-1em;color:#666}.icon-risk:before{content:\"\uE9B8\"}.icon-search-in-file:before{content:\"\uE9B9\"}.icon-sort-ascending:before{content:\"\uE9BA\"}.icon-sort-descending:before{content:\"\uE9BB\"}.icon-subscript:before{content:\"\uE9BC\"}.icon-superscript:before{content:\"\uE9BD\"}.icon-syncronice-favorites:before{content:\"\uE9BE\"}.icon-system-settings:before{content:\"\uE9BF\"}.icon-view-three-outlined:before{content:\"\uE9C0\"}.icon-workplace-safety:before{content:\"\uE9C1\"}.icon-checklist:before{content:\"\uE900\"}.icon-department-document .path1:before{content:\"\uE901\";color:#000;opacity:.6}.icon-department-document .path2:before{content:\"\uE902\";margin-left:-1em;color:#00804c}.icon-department-folder-closed .path1:before{content:\"\uE903\";color:#000;opacity:.6}.icon-department-folder-closed .path2:before{content:\"\uE904\";margin-left:-1em;color:#00804c}.icon-department-folder-open .path1:before{content:\"\uE905\";color:#000;opacity:.6}.icon-department-folder-open .path2:before{content:\"\uE906\";margin-left:-1em;color:#00804c}.icon-deviation:before{content:\"\uE907\"}.icon-dropdown-folder .path1:before{content:\"\uE908\";color:#00324e}.icon-dropdown-folder .path2:before{content:\"\uE909\";margin-left:-1em;color:#fff;opacity:.6}.icon-enterprise-document .path1:before{content:\"\uE90A\";color:#000;opacity:.6}.icon-enterprise-document .path2:before{content:\"\uE90B\";margin-left:-1em;color:#cf4714}.icon-enterprise-folder-closed .path1:before{content:\"\uE90C\";color:#000;opacity:.6}.icon-enterprise-folder-closed .path2:before{content:\"\uE90D\";margin-left:-1em;color:#cf4714}.icon-enterprise-folder-open .path1:before{content:\"\uE90E\";color:#000;opacity:.6}.icon-enterprise-folder-open .path2:before{content:\"\uE90F\";margin-left:-1em;color:#cf4714}.icon-folder-closed:before{content:\"\uE910\"}.icon-folder-open:before{content:\"\uE911\"}.icon-keyboard_arrow_down:before{content:\"\uE912\"}.icon-keyboard_arrow_up:before{content:\"\uE913\"}.icon-local-document .path1:before{content:\"\uE914\";color:#000;opacity:.6}.icon-local-document .path2:before{content:\"\uE915\";margin-left:-1em;color:#1954a9}.icon-local-folder-closed .path1:before{content:\"\uE916\";color:#000;opacity:.6}.icon-local-folder-closed .path2:before{content:\"\uE917\";margin-left:-1em;color:#1954a9}.icon-local-folder-open .path1:before{content:\"\uE918\";color:#000;opacity:.6}.icon-local-folder-open .path2:before{content:\"\uE919\";margin-left:-1em;color:#1954a9}.icon-process:before{content:\"\uE91A\"}.icon-regional-document .path1:before{content:\"\uE91C\";color:#000;opacity:.6}.icon-regional-document .path2:before{content:\"\uE91D\";margin-left:-1em;color:#662e0d}.icon-regional-folder-closed .path1:before{content:\"\uE91E\";color:#000;opacity:.6}.icon-regional-folder-closed .path2:before{content:\"\uE91F\";margin-left:-1em;color:#662e0d}.icon-regional-folder-open .path1:before{content:\"\uE920\";color:#000;opacity:.6}.icon-regional-folder-open .path2:before{content:\"\uE921\";margin-left:-1em;color:#662e0d}.qms-select-department .cursor-pointer{cursor:pointer}.qms-select-department .ml-5{margin-left:10px}.qms-select-department .padding-5{padding:5px}.qms-select-department .header-dialog{display:flex;justify-content:space-between;align-items:center;font-weight:600;font-size:16px}.qms-select-department .input__field{display:flex;align-items:center;position:relative}.qms-select-department .input__field input.input-search{width:100%;padding:10px;outline:none;border:none;background:var(--background-input-text)}.qms-select-department .input__field .btn-search{cursor:pointer;vertical-align:middle;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.qms-select-department .line__divider{border-bottom:1px solid #ccc;height:1px;margin-top:10px;min-width:300px;max-width:100%}.qms-select-department .mat-expansion-panel-header{height:30px;font-size:12px;letter-spacing:1px;font-family:Raleway;font-weight:600;padding:0}.qms-select-department .mat-expansion-panel-header .mat-expansion-panel-header-title{align-items:center;margin-left:12px}.qms-select-department .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:none}.qms-select-department .panel__item{max-height:175px;margin-top:12px;overflow-x:hidden;overflow-y:auto;padding-right:5px;width:100%;max-width:100%;display:flex;flex-wrap:wrap;align-content:flex-start}.qms-select-department .panel__item .related__item__inline{max-width:100%}.qms-select-department .panel__item .select__toggle-include{width:100%}.qms-select-department .panel__item .select__toggle-include.toggle-include-child .mat-slide-toggle.qms-group-options .mat-slide-toggle-thumb{background-color:#5a5a5a!important}.qms-select-department .panel__item .related__item__content{height:32px;line-height:32px;background-color:var(--related-item-background);max-width:100%;margin-bottom:5px;margin-left:2.5px;margin-right:2.5px}.qms-select-department .panel__item .related__item__content .mat-icon{color:var(--related-mat-icon-color);font-size:24px}.qms-select-department .header-title{font-weight:600;color:rgba(0,0,0,.87)}.qms-select-department .result-content{padding-right:0!important}.qms-select-department .result-content .mat-chip-list{min-height:40px}.qms-select-department .result-content .mat-chip-list .mat-icon{color:rgba(0,0,0,.3)!important;cursor:pointer}.qms-select-department .result-content .mat-chip-list .mat-icon:hover{color:#000!important}.qms-select-department .result-content span.related__item__content_name{display:inline-block;min-width:calc(100% - 13px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}.qms-select-department .result-content span.related__item__content_name .select__include-children__count{font-size:.75rem;color:rgba(0,0,0,.5);font-weight:600}.qms-select-department .text-name{position:relative;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;cursor:pointer;width:100%}.qms-select-department ::ng-deep .mat-checkbox.qms-group-options.flex-direction-row .mat-checkbox-layout{white-space:normal}.qms-select-department ::ng-deep .mat-checkbox.qms-group-options.flex-direction-row .mat-checkbox-label{flex-direction:row;align-items:center;position:relative;padding-bottom:2px}.qms-select-department .confirm__button__groups .btn-add>.qms-btn-wrapper{display:flex;justify-content:center;align-items:center}"]
29933
+ animations: [SelectDepartmentAnimationTrigger],
29934
+ styles: ["@charset \"UTF-8\";@font-face{font-family:icomoon;src:url(../assets/fonts/icomoon.eot?aghldx);src:url(../assets/fonts/icomoon.eot?aghldx#iefix) format(\"embedded-opentype\"),url(../assets/fonts/icomoon.ttf?aghldx) format(\"truetype\"),url(../assets/fonts/icomoon.woff?aghldx) format(\"woff\"),url(../assets/fonts/icomoon.svg?aghldx#icomoon) format(\"svg\");font-weight:400;font-style:normal;font-display:block}[class*=\" icon-\"],[class^=icon-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-feature-settings:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-acutely-toxic .path1:before{content:\"\uE91B\";color:#e32730}.icon-acutely-toxic .path2:before{content:\"\uE922\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path3:before{content:\"\uE923\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path4:before{content:\"\uE924\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path5:before{content:\"\uE925\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path6:before{content:\"\uE926\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path7:before{content:\"\uE927\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path8:before{content:\"\uE928\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path9:before{content:\"\uE929\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path10:before{content:\"\uE92A\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path11:before{content:\"\uE92B\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path12:before{content:\"\uE92C\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path13:before{content:\"\uE92D\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path14:before{content:\"\uE92E\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path15:before{content:\"\uE92F\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path16:before{content:\"\uE930\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path17:before{content:\"\uE931\";margin-left:-1em;color:#323232}.icon-add-column:before{content:\"\uE932\"}.icon-add-tooltip:before{content:\"\uE933\"}.icon-admin:before{content:\"\uE934\"}.icon-annual-cycle:before{content:\"\uE935\"}.icon-assignment-repete:before{content:\"\uE936\"}.icon-barrier-add:before{content:\"\uE937\"}.icon-barrier-edit:before{content:\"\uE938\"}.icon-barrier-view:before{content:\"\uE939\"}.icon-button-group:before{content:\"\uE93A\"}.icon-chemical-manager:before{content:\"\uE93B\"}.icon-chronic-health-hazard .path1:before{content:\"\uE93C\";color:#e32730}.icon-chronic-health-hazard .path2:before{content:\"\uE93D\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path3:before{content:\"\uE93E\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path4:before{content:\"\uE93F\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path5:before{content:\"\uE940\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path6:before{content:\"\uE941\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path7:before{content:\"\uE942\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path8:before{content:\"\uE943\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path9:before{content:\"\uE944\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path10:before{content:\"\uE945\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path11:before{content:\"\uE946\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path12:before{content:\"\uE947\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path13:before{content:\"\uE948\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path14:before{content:\"\uE949\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path15:before{content:\"\uE94A\";margin-left:-1em;color:#323232}.icon-contingency:before{content:\"\uE94B\"}.icon-corrosive .path1:before{content:\"\uE94C\";color:#323232}.icon-corrosive .path2:before{content:\"\uE94D\";margin-left:-1em;color:#323232}.icon-corrosive .path3:before{content:\"\uE94E\";margin-left:-1em;color:#323232}.icon-corrosive .path4:before{content:\"\uE94F\";margin-left:-1em;color:#323232}.icon-corrosive .path5:before{content:\"\uE950\";margin-left:-1em;color:#323232}.icon-corrosive .path6:before{content:\"\uE951\";margin-left:-1em;color:#323232}.icon-corrosive .path7:before{content:\"\uE952\";margin-left:-1em;color:#323232}.icon-corrosive .path8:before{content:\"\uE953\";margin-left:-1em;color:#323232}.icon-corrosive .path9:before{content:\"\uE954\";margin-left:-1em;color:#323232}.icon-corrosive .path10:before{content:\"\uE955\";margin-left:-1em;color:#323232}.icon-corrosive .path11:before{content:\"\uE956\";margin-left:-1em;color:#323232}.icon-corrosive .path12:before{content:\"\uE957\";margin-left:-1em;color:#323232}.icon-corrosive .path13:before{content:\"\uE958\";margin-left:-1em;color:#323232}.icon-corrosive .path14:before{content:\"\uE959\";margin-left:-1em;color:#323232}.icon-corrosive .path15:before{content:\"\uE95A\";margin-left:-1em;color:#323232}.icon-corrosive .path16:before{content:\"\uE95B\";margin-left:-1em;color:#323232}.icon-corrosive .path17:before{content:\"\uE95C\";margin-left:-1em;color:#323232}.icon-corrosive .path18:before{content:\"\uE95D\";margin-left:-1em;color:#323232}.icon-corrosive .path19:before{content:\"\uE95E\";margin-left:-1em;color:#323232}.icon-corrosive .path20:before{content:\"\uE95F\";margin-left:-1em;color:#323232}.icon-corrosive .path21:before{content:\"\uE960\";margin-left:-1em;color:#e32730}.icon-dashboard:before{content:\"\uE961\"}.icon-database-sds:before{content:\"\uE962\"}.icon-description-add:before{content:\"\uE963\"}.icon-description-edit:before{content:\"\uE964\"}.icon-description-view:before{content:\"\uE965\";color:#666}.icon-document-read .path1:before{content:\"\uE966\";color:#000;opacity:.6}.icon-document-read .path2:before{content:\"\uE967\";margin-left:-1em;color:#fff}.icon-document-read .path3:before{content:\"\uE968\";margin-left:-1em;color:#000;opacity:.6}.icon-draft:before{content:\"\uE969\"}.icon-expired-off:before{content:\"\uE96A\"}.icon-expired-on:before{content:\"\uE96B\"}.icon-explosive .path1:before{content:\"\uE96C\";color:#e32730}.icon-explosive .path2:before{content:\"\uE96D\";margin-left:-1em;color:#323232}.icon-explosive .path3:before{content:\"\uE96E\";margin-left:-1em;color:#323232}.icon-explosive .path4:before{content:\"\uE96F\";margin-left:-1em;color:#323232}.icon-explosive .path5:before{content:\"\uE970\";margin-left:-1em;color:#323232}.icon-explosive .path6:before{content:\"\uE971\";margin-left:-1em;color:#323232}.icon-explosive .path7:before{content:\"\uE972\";margin-left:-1em;color:#323232}.icon-explosive .path8:before{content:\"\uE973\";margin-left:-1em;color:#323232}.icon-explosive .path9:before{content:\"\uE974\";margin-left:-1em;color:#323232}.icon-explosive .path10:before{content:\"\uE975\";margin-left:-1em;color:#323232}.icon-explosive .path11:before{content:\"\uE976\";margin-left:-1em;color:#323232}.icon-explosive .path12:before{content:\"\uE977\";margin-left:-1em;color:#323232}.icon-explosive .path13:before{content:\"\uE978\";margin-left:-1em;color:#323232}.icon-explosive .path14:before{content:\"\uE979\";margin-left:-1em;color:#323232}.icon-explosive .path15:before{content:\"\uE97A\";margin-left:-1em;color:#323232}.icon-explosive .path16:before{content:\"\uE97B\";margin-left:-1em;color:#323232}.icon-explosive .path17:before{content:\"\uE97C\";margin-left:-1em;color:#323232}.icon-explosive .path18:before{content:\"\uE97D\";margin-left:-1em;color:#323232}.icon-explosive .path19:before{content:\"\uE97E\";margin-left:-1em;color:#323232}.icon-explosive .path20:before{content:\"\uE97F\";margin-left:-1em;color:#323232}.icon-explosive .path21:before{content:\"\uE980\";margin-left:-1em;color:#323232}.icon-explosive .path22:before{content:\"\uE981\";margin-left:-1em;color:#323232}.icon-explosive .path23:before{content:\"\uE982\";margin-left:-1em;color:#323232}.icon-explosive .path24:before{content:\"\uE983\";margin-left:-1em;color:#323232}.icon-explosive .path25:before{content:\"\uE984\";margin-left:-1em;color:#323232}.icon-explosive .path26:before{content:\"\uE985\";margin-left:-1em;color:#323232}.icon-explosive .path27:before{content:\"\uE986\";margin-left:-1em;color:#323232}.icon-explosive .path28:before{content:\"\uE987\";margin-left:-1em;color:#323232}.icon-explosive .path29:before{content:\"\uE988\";margin-left:-1em;color:#323232}.icon-explosive .path30:before{content:\"\uE989\";margin-left:-1em;color:#323232}.icon-explosive .path31:before{content:\"\uE98A\";margin-left:-1em;color:#323232}.icon-explosive .path32:before{content:\"\uE98B\";margin-left:-1em;color:#323232}.icon-explosive .path33:before{content:\"\uE98C\";margin-left:-1em;color:#323232}.icon-explosive .path34:before{content:\"\uE98D\";margin-left:-1em;color:#323232}.icon-explosive .path35:before{content:\"\uE98E\";margin-left:-1em;color:#323232}.icon-explosive .path36:before{content:\"\uE98F\";margin-left:-1em;color:#323232}.icon-explosive .path37:before{content:\"\uE990\";margin-left:-1em;color:#323232}.icon-explosive .path38:before{content:\"\uE991\";margin-left:-1em;color:#323232}.icon-explosive .path39:before{content:\"\uE992\";margin-left:-1em;color:#323232}.icon-explosive .path40:before{content:\"\uE993\";margin-left:-1em;color:#323232}.icon-explosive .path41:before{content:\"\uE994\";margin-left:-1em;color:#323232}.icon-explosive .path42:before{content:\"\uE995\";margin-left:-1em;color:#323232}.icon-explosive .path43:before{content:\"\uE996\";margin-left:-1em;color:#323232}.icon-explosive .path44:before{content:\"\uE997\";margin-left:-1em;color:#323232}.icon-explosive .path45:before{content:\"\uE998\";margin-left:-1em;color:#323232}.icon-explosive .path46:before{content:\"\uE999\";margin-left:-1em;color:#323232}.icon-file-excel:before{content:\"\uE99A\"}.icon-file-pdf:before{content:\"\uE99B\"}.icon-file-pdf-verified .path1:before{content:\"\uE99C\";color:#000;opacity:.6}.icon-file-pdf-verified .path2:before{content:\"\uE99D\";margin-left:-1em;color:#fff}.icon-file-pdf-verified .path3:before{content:\"\uE99E\";margin-left:-1em;color:#000;opacity:.6}.icon-file-word:before{content:\"\uE99F\"}.icon-filter-alt:before{content:\"\uE9A0\"}.icon-flammable .path1:before{content:\"\uE9A1\";color:#323232}.icon-flammable .path2:before{content:\"\uE9A2\";margin-left:-1em;color:#323232}.icon-flammable .path3:before{content:\"\uE9A3\";margin-left:-1em;color:#e32730}.icon-gas-under-pressure .path1:before{content:\"\uE9A4\";color:#323232}.icon-gas-under-pressure .path2:before{content:\"\uE9A5\";margin-left:-1em;color:#e32730}.icon-health-hazard .path1:before{content:\"\uE9A6\";color:#323232}.icon-health-hazard .path2:before{content:\"\uE9A7\";margin-left:-1em;color:#e32730}.icon-line-break:before{content:\"\uE9A8\"}.icon-location:before{content:\"\uE9A9\"}.icon-measure-add:before{content:\"\uE9AA\"}.icon-measure-edit:before{content:\"\uE9AB\"}.icon-measure-view:before{content:\"\uE9AC\";color:#666}.icon-messages:before{content:\"\uE9AD\"}.icon-monitoring:before{content:\"\uE9AE\";color:#666}.icon-move:before{content:\"\uE9AF\"}.icon-oxidizing .path1:before{content:\"\uE9B0\";color:#e32730}.icon-oxidizing .path2:before{content:\"\uE9B1\";margin-left:-1em;color:#323232}.icon-oxidizing .path3:before{content:\"\uE9B2\";margin-left:-1em;color:#323232}.icon-oxidizing .path4:before{content:\"\uE9B3\";margin-left:-1em;color:#323232}.icon-process-area-closed:before{content:\"\uE9B4\"}.icon-process-area-open:before{content:\"\uE9B5\"}.icon-process-linked .path1:before{content:\"\uE9B6\";color:#000;opacity:.6}.icon-process-linked .path2:before{content:\"\uE9B7\";margin-left:-1em;color:#666}.icon-risk:before{content:\"\uE9B8\"}.icon-search-in-file:before{content:\"\uE9B9\"}.icon-sort-ascending:before{content:\"\uE9BA\"}.icon-sort-descending:before{content:\"\uE9BB\"}.icon-subscript:before{content:\"\uE9BC\"}.icon-superscript:before{content:\"\uE9BD\"}.icon-syncronice-favorites:before{content:\"\uE9BE\"}.icon-system-settings:before{content:\"\uE9BF\"}.icon-view-three-outlined:before{content:\"\uE9C0\"}.icon-workplace-safety:before{content:\"\uE9C1\"}.icon-checklist:before{content:\"\uE900\"}.icon-department-document .path1:before{content:\"\uE901\";color:#000;opacity:.6}.icon-department-document .path2:before{content:\"\uE902\";margin-left:-1em;color:#00804c}.icon-department-folder-closed .path1:before{content:\"\uE903\";color:#000;opacity:.6}.icon-department-folder-closed .path2:before{content:\"\uE904\";margin-left:-1em;color:#00804c}.icon-department-folder-open .path1:before{content:\"\uE905\";color:#000;opacity:.6}.icon-department-folder-open .path2:before{content:\"\uE906\";margin-left:-1em;color:#00804c}.icon-deviation:before{content:\"\uE907\"}.icon-dropdown-folder .path1:before{content:\"\uE908\";color:#00324e}.icon-dropdown-folder .path2:before{content:\"\uE909\";margin-left:-1em;color:#fff;opacity:.6}.icon-enterprise-document .path1:before{content:\"\uE90A\";color:#000;opacity:.6}.icon-enterprise-document .path2:before{content:\"\uE90B\";margin-left:-1em;color:#cf4714}.icon-enterprise-folder-closed .path1:before{content:\"\uE90C\";color:#000;opacity:.6}.icon-enterprise-folder-closed .path2:before{content:\"\uE90D\";margin-left:-1em;color:#cf4714}.icon-enterprise-folder-open .path1:before{content:\"\uE90E\";color:#000;opacity:.6}.icon-enterprise-folder-open .path2:before{content:\"\uE90F\";margin-left:-1em;color:#cf4714}.icon-folder-closed:before{content:\"\uE910\"}.icon-folder-open:before{content:\"\uE911\"}.icon-keyboard_arrow_down:before{content:\"\uE912\"}.icon-keyboard_arrow_up:before{content:\"\uE913\"}.icon-local-document .path1:before{content:\"\uE914\";color:#000;opacity:.6}.icon-local-document .path2:before{content:\"\uE915\";margin-left:-1em;color:#1954a9}.icon-local-folder-closed .path1:before{content:\"\uE916\";color:#000;opacity:.6}.icon-local-folder-closed .path2:before{content:\"\uE917\";margin-left:-1em;color:#1954a9}.icon-local-folder-open .path1:before{content:\"\uE918\";color:#000;opacity:.6}.icon-local-folder-open .path2:before{content:\"\uE919\";margin-left:-1em;color:#1954a9}.icon-process:before{content:\"\uE91A\"}.icon-regional-document .path1:before{content:\"\uE91C\";color:#000;opacity:.6}.icon-regional-document .path2:before{content:\"\uE91D\";margin-left:-1em;color:#662e0d}.icon-regional-folder-closed .path1:before{content:\"\uE91E\";color:#000;opacity:.6}.icon-regional-folder-closed .path2:before{content:\"\uE91F\";margin-left:-1em;color:#662e0d}.icon-regional-folder-open .path1:before{content:\"\uE920\";color:#000;opacity:.6}.icon-regional-folder-open .path2:before{content:\"\uE921\";margin-left:-1em;color:#662e0d}.qms-select-department .cursor-pointer{cursor:pointer}.qms-select-department .ml-5{margin-left:10px}.qms-select-department .padding-5{padding:5px}.qms-select-department .header-dialog{display:flex;justify-content:space-between;align-items:center;font-weight:600;font-size:16px}.qms-select-department .input__field{display:flex;align-items:center;position:relative}.qms-select-department .input__field input.input-search{width:100%;padding:10px;outline:none;border:none;background:var(--background-input-text)}.qms-select-department .input__field .btn-search{cursor:pointer;vertical-align:middle;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.qms-select-department .line__divider{border-bottom:1px solid #ccc;height:1px;margin-top:10px;min-width:300px;max-width:100%}.qms-select-department .mat-expansion-panel-header{height:30px;font-size:12px;letter-spacing:1px;font-family:Raleway;font-weight:600;padding:0}.qms-select-department .mat-expansion-panel-header .mat-expansion-panel-header-title{align-items:center;margin-left:12px}.qms-select-department .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:none}.qms-select-department .panel__item{max-height:175px;margin-top:12px;overflow-x:hidden;overflow-y:auto;padding-right:5px;width:100%;max-width:100%;display:flex;flex-wrap:wrap;align-content:flex-start}.qms-select-department .panel__item .related__item__inline{max-width:100%}.qms-select-department .panel__item .select__toggle-include{width:100%}.qms-select-department .panel__item .select__toggle-include.toggle-include-child .mat-slide-toggle.qms-group-options .mat-slide-toggle-thumb{background-color:#5a5a5a!important}.qms-select-department .panel__item .related__item__content{height:32px;line-height:32px;background-color:var(--related-item-background);max-width:100%;margin-bottom:5px;margin-left:2.5px;margin-right:2.5px}.qms-select-department .panel__item .related__item__content .mat-icon{color:var(--related-mat-icon-color);font-size:24px}.qms-select-department .header-title{font-weight:600;color:rgba(0,0,0,.87)}.qms-select-department .result-content{padding-right:0!important}.qms-select-department .result-content .mat-chip-list{min-height:40px}.qms-select-department .result-content .mat-chip-list .mat-icon{color:rgba(0,0,0,.3)!important;cursor:pointer}.qms-select-department .result-content .mat-chip-list .mat-icon:hover{color:#000!important}.qms-select-department .result-content span.related__item__content_name{display:inline-block;min-width:calc(100% - 13px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}.qms-select-department .result-content span.related__item__content_name .select__include-children__count{font-size:.75rem;color:rgba(0,0,0,.5);font-weight:600}.qms-select-department .text-name{position:relative;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;cursor:pointer;width:100%}.qms-select-department ::ng-deep .mat-checkbox.qms-group-options.flex-direction-row .mat-checkbox-layout{white-space:normal}.qms-select-department ::ng-deep .mat-checkbox.qms-group-options.flex-direction-row .mat-checkbox-label{flex-direction:row;align-items:center;position:relative;padding-bottom:2px}.qms-select-department .confirm__button__groups .btn-add>.qms-btn-wrapper{display:flex;justify-content:center;align-items:center}.qms-select-department ::ng-deep .custom-department-tree .qms-view-search-result{height:100%!important}.qms-select-department ::ng-deep .custom-department-tree .qms-view-search-result .result{max-height:calc(100% - 80px)!important}.qms-select-department ::ng-deep .custom-department-tree .loading-container{height:calc(100% - 40px)!important}"]
29819
29935
  },] }
29820
29936
  ];
29821
29937
  SelectDepartmentComponent.ctorParameters = () => [
29822
- { type: QMSSelectDepartmentGlobalService },
29823
29938
  { type: ChangeDetectorRef },
29824
29939
  { type: MatDialogRef },
29825
29940
  { type: SelectDepartmentPopupData, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] },
29826
29941
  { type: TranslateLibraryService }
29827
29942
  ];
29828
29943
  SelectDepartmentComponent.propDecorators = {
29829
- treeDepartment: [{ type: ViewChild, args: ['treeDepartment',] }]
29944
+ treeDepartment: [{ type: ViewChild, args: ['treeDepartment',] }],
29945
+ onPagingEvent: [{ type: Output }]
29830
29946
  };
29831
29947
 
29832
29948
  class QMSSelectDepartmentModule {
@@ -29834,7 +29950,7 @@ class QMSSelectDepartmentModule {
29834
29950
  QMSSelectDepartmentModule.decorators = [
29835
29951
  { type: NgModule, args: [{
29836
29952
  declarations: [
29837
- SelectDepartmentComponent
29953
+ SelectDepartmentComponent,
29838
29954
  ],
29839
29955
  imports: [
29840
29956
  CommonModule,
@@ -29869,6 +29985,25 @@ QMSSelectDepartmentModule.decorators = [
29869
29985
  },] }
29870
29986
  ];
29871
29987
 
29988
+ class QMSSelectDepartmentGlobalService {
29989
+ constructor() {
29990
+ this.getDataTree$ = new BehaviorSubject([]);
29991
+ this.searchDepartment$ = new Subject();
29992
+ }
29993
+ updateDataTree(data) {
29994
+ this.getDataTree$.next(data);
29995
+ }
29996
+ setResultSearch(data) {
29997
+ this.searchDepartment$.next(data);
29998
+ }
29999
+ }
30000
+ QMSSelectDepartmentGlobalService.ɵprov = i0.ɵɵdefineInjectable({ factory: function QMSSelectDepartmentGlobalService_Factory() { return new QMSSelectDepartmentGlobalService(); }, token: QMSSelectDepartmentGlobalService, providedIn: "root" });
30001
+ QMSSelectDepartmentGlobalService.decorators = [
30002
+ { type: Injectable, args: [{
30003
+ providedIn: 'root'
30004
+ },] }
30005
+ ];
30006
+
29872
30007
  var OptionSelectAccessEnum;
29873
30008
  (function (OptionSelectAccessEnum) {
29874
30009
  OptionSelectAccessEnum[OptionSelectAccessEnum["PERSON"] = 0] = "PERSON";
@@ -29876,6 +30011,60 @@ var OptionSelectAccessEnum;
29876
30011
  OptionSelectAccessEnum[OptionSelectAccessEnum["DEPARTMENT"] = 2] = "DEPARTMENT";
29877
30012
  })(OptionSelectAccessEnum || (OptionSelectAccessEnum = {}));
29878
30013
 
30014
+ const SelectAccessAnimationTrigger = [
30015
+ trigger('inOutAnimation', [
30016
+ transition(':enter', [
30017
+ style({ opacity: 0 }),
30018
+ animate('0.3s ease-out', style({ opacity: 1 }))
30019
+ ])
30020
+ ]),
30021
+ trigger('inOutAnimation_2', [
30022
+ transition(':enter', [
30023
+ style({ opacity: 0, transform: 'translateY(-5px)' }),
30024
+ animate('0.2s 0.15s ease-in', style({ opacity: 1, transform: 'none' }))
30025
+ ]),
30026
+ transition(':leave', [
30027
+ style({ opacity: 1, filter: 'blur(5px)', transform: 'none' }),
30028
+ animate('0.15s ease-out', style({ opacity: 0, transform: 'translateX(-10px)' }))
30029
+ ]),
30030
+ ]),
30031
+ trigger('listAnimation', [
30032
+ transition('* => *', [
30033
+ query(':enter', [
30034
+ style({ opacity: 0, transform: 'translateY(-100%)' }),
30035
+ stagger(30, [
30036
+ animate('0.4s cubic-bezier(0.23, 1, 0.320, 1)', style({ opacity: 1, transform: 'none' }))
30037
+ ])
30038
+ ], { optional: true })
30039
+ ])
30040
+ ]),
30041
+ trigger('updateItemAnimation', [
30042
+ transition('void => *', [animate('0.3s', keyframes([
30043
+ style({
30044
+ boxShadow: 'rgba(0, 0, 0, 0.15) 1.95px 1.95px 2.6px',
30045
+ background: '#c8d6ea',
30046
+ offset: 0
30047
+ }),
30048
+ style({
30049
+ boxShadow: `*`,
30050
+ background: '*',
30051
+ offset: 1
30052
+ })
30053
+ ]))]),
30054
+ ])
30055
+ ];
30056
+
30057
+ class QMSAccessPagingChangeModel extends PageEvent {
30058
+ }
30059
+ class QMSAccessPagingModel extends PageEvent {
30060
+ constructor() {
30061
+ super();
30062
+ this.data = [];
30063
+ this.pageSize = 10;
30064
+ this.pageIndex = 0;
30065
+ }
30066
+ }
30067
+
29879
30068
  class QMSSelectAccessResult {
29880
30069
  constructor() {
29881
30070
  this.userGroups = [];
@@ -29885,11 +30074,11 @@ class QMSSelectAccessResult {
29885
30074
  }
29886
30075
  class QMSSelectAccessData {
29887
30076
  constructor() {
29888
- this.accessUserGroups = [];
29889
30077
  this.accessDepartments = [];
29890
- this.accessPersons = [];
29891
30078
  this.selectedData = new QMSSelectAccessResult();
29892
30079
  this.selectIncludeChildTreeLabel = '';
30080
+ this.accessPersons = new QMSAccessPagingModel();
30081
+ this.accessUserGroups = new QMSAccessPagingModel();
29893
30082
  }
29894
30083
  }
29895
30084
 
@@ -29911,25 +30100,6 @@ QMSSelectAccessGlobalService.decorators = [
29911
30100
  },] }
29912
30101
  ];
29913
30102
 
29914
- const SelectAccessAnimationTrigger = [
29915
- trigger('inOutAnimation', [
29916
- transition(':enter', [
29917
- style({ opacity: 0 }),
29918
- animate('0.3s ease-out', style({ opacity: 1 }))
29919
- ]),
29920
- ]),
29921
- trigger('listAnimation', [
29922
- transition('* => *', [
29923
- query(':enter', [
29924
- style({ opacity: 0, transform: 'translateY(-100%)' }),
29925
- stagger(25, [
29926
- animate('0.4s cubic-bezier(0.23, 1, 0.320, 1)', style({ opacity: 1, transform: 'none' }))
29927
- ])
29928
- ], { optional: true })
29929
- ])
29930
- ])
29931
- ];
29932
-
29933
30103
  class QMSSelectAccessDialog {
29934
30104
  constructor() {
29935
30105
  this.enableSelectPerson = true;
@@ -29946,6 +30116,7 @@ class QMSSelectAccessDialog {
29946
30116
  };
29947
30117
  this.titleDialog = '';
29948
30118
  this.titleResult = '';
30119
+ this.sizeUpdateDefault = '1024px';
29949
30120
  }
29950
30121
  }
29951
30122
 
@@ -29963,57 +30134,75 @@ class QMSSelectAccessDialogComponent {
29963
30134
  this.optionSelect = new FormControl();
29964
30135
  this.OPTION_ENUM = OptionSelectAccessEnum;
29965
30136
  this.options = [];
30137
+ this._departmentSelected = [];
29966
30138
  this.userGroupForm = new FormControl('');
29967
30139
  this.getLoading$ = new BehaviorSubject(false);
29968
30140
  this.onSearchPersonEvent = new EventEmitter();
29969
30141
  this.onSearchPersonFreeTextEvent = new EventEmitter();
29970
30142
  this.onSearchUserGroupEvent = new EventEmitter();
29971
30143
  this.onSearchDepartmentEvent = new EventEmitter();
30144
+ this.onPagingEvent = new EventEmitter();
30145
+ this.onSelectOptionChange$ = new Subject();
30146
+ this.departmentResultClone = [];
29972
30147
  /** list filtered by search keyword */
30148
+ this.optionFilterPersonDataGlobal = {
30149
+ departments: [],
30150
+ userGroups: []
30151
+ };
29973
30152
  this.filteredSearchTextBox = {
29974
- department: new ReplaySubject(1),
29975
- role: new ReplaySubject(1),
30153
+ department: new BehaviorSubject([]),
30154
+ userGroup: new BehaviorSubject([]),
29976
30155
  };
29977
- this.getPerson$ = new BehaviorSubject([]);
29978
- this.getUserGroup$ = new BehaviorSubject([]);
30156
+ this.getPerson$ = new BehaviorSubject(new QMSAccessPagingModel());
30157
+ this.getUserGroup$ = new BehaviorSubject(new QMSAccessPagingModel());
29979
30158
  this.PAGINATION_SIZE = PaginationSize;
30159
+ this.PAGE_SIZE_OPTION = [5, 10, 15, 20, 25, 100];
29980
30160
  this.resultAccess = new QMSSelectAccessResult();
29981
- this.currentPaginationConfig = {
29982
- pageIndex: 0,
29983
- pageSize: 10,
29984
- length: 0
29985
- };
29986
- this.resultAccess = _.cloneDeep(this.dialogData.data.selectedData);
29987
- this.optionSelect.valueChanges
29988
- .pipe(takeUntil(this.ngUnsubcribe))
29989
- .subscribe(_ => {
29990
- this.resetPagingConfig();
30161
+ this.arrSkeleton = new Array(8).fill(0);
30162
+ this.resultAccess = _.cloneDeep(Object.assign(Object.assign({}, this.dialogData.data.selectedData), { departments: [] }));
30163
+ this._departmentSelected = _.cloneDeep(this.dialogData.data.selectedData.departments);
30164
+ }
30165
+ get selectedDepartments() {
30166
+ const departmentSelected = [];
30167
+ this._departmentSelected.forEach(x => {
30168
+ var _a;
30169
+ departmentSelected.push({
30170
+ id: x.id,
30171
+ groupId: x.groupId,
30172
+ isGroup: x.isGroup
30173
+ });
30174
+ if (!((_a = x.children) === null || _a === void 0 ? void 0 : _a.length))
30175
+ return;
30176
+ departmentSelected.push(...(x.children.map(item => ({
30177
+ id: item.id,
30178
+ groupId: item.groupId,
30179
+ isGroup: item.isGroup
30180
+ }))));
29991
30181
  });
29992
- // Filtered Option select person
29993
- this.filteredSearchTextBox.role.next(this.dialogData.data.accessUserGroups);
29994
- this.filteredSearchTextBox.department.next(this.dialogData.data.accessDepartments);
29995
- this.updatePersonFilter(this.dialogData.data.accessPersons);
29996
- this.updateUserGroupFilter(this.dialogData.data.accessUserGroups);
30182
+ return departmentSelected || [];
29997
30183
  }
29998
30184
  set tree(data) {
29999
- if (data) {
30000
- this.treeDepartment = data;
30001
- }
30185
+ this.treeDepartment = data;
30002
30186
  }
30003
30187
  get personFiltered() {
30188
+ var _a;
30004
30189
  const persons = this.getPerson$.value;
30005
30190
  const ids = this.resultAccess.persons.map(x => x.id);
30006
- persons.forEach(x => x.selected = ids.includes(x.id));
30007
- return persons;
30191
+ (_a = persons.data) === null || _a === void 0 ? void 0 : _a.forEach(x => x.selected = ids.includes(x.id));
30192
+ return persons.data || [];
30008
30193
  }
30009
30194
  get userGroupFiltered() {
30195
+ var _a;
30010
30196
  const userGroups = this.getUserGroup$.value;
30011
30197
  const ids = this.resultAccess.userGroups.map(x => x.id);
30012
- userGroups.forEach(x => x.selected = ids.includes(x.id));
30013
- return userGroups;
30198
+ (_a = userGroups.data) === null || _a === void 0 ? void 0 : _a.forEach(x => x.selected = ids.includes(x.id));
30199
+ return userGroups.data || [];
30014
30200
  }
30015
- ngAfterViewInit() {
30201
+ ;
30202
+ ngAfterContentInit() {
30016
30203
  this.cdRef.detectChanges();
30204
+ }
30205
+ ngAfterViewInit() {
30017
30206
  this.cdRef.detectChanges();
30018
30207
  }
30019
30208
  ngOnInit() {
@@ -30023,46 +30212,15 @@ class QMSSelectAccessDialogComponent {
30023
30212
  }
30024
30213
  });
30025
30214
  this._buildOptionSelect();
30026
- this.buildPersonForm();
30027
- // Filter person by roles
30028
- this.personForm.get('roleFilter').valueChanges
30029
- .pipe(takeUntil(this.ngUnsubcribe), debounceTime(500))
30030
- .subscribe(keyword => {
30031
- if (!this.dialogData.data.accessUserGroups) {
30032
- return;
30033
- }
30034
- if (!keyword) {
30035
- this.filteredSearchTextBox.role.next(this.dialogData.data.accessUserGroups);
30036
- return;
30037
- }
30038
- this.filteredSearchTextBox.role.next(this.dialogData.data.accessUserGroups.filter(role => role.name.toLocaleLowerCase().includes(keyword.toLocaleLowerCase())));
30039
- });
30040
- // Filter person by departments
30041
- this.personForm.get('departmentFilter').valueChanges
30042
- .pipe(takeUntil(this.ngUnsubcribe))
30043
- .subscribe(() => {
30044
- if (!this.dialogData.data.accessDepartments) {
30045
- return;
30046
- }
30047
- let search = this.personForm.get('departmentFilter').value;
30048
- if (!search) {
30049
- this.filteredSearchTextBox.department.next(this.dialogData.data.accessDepartments.slice());
30050
- }
30051
- else {
30052
- search = search.toLowerCase();
30053
- this.filteredSearchTextBox.department.next(this.dialogData.data.accessDepartments.filter(x => x.name.toLowerCase().indexOf(search) > -1));
30054
- }
30055
- });
30056
30215
  this.getLoading$.pipe(takeUntil(this.ngUnsubcribe))
30057
30216
  .subscribe(response => {
30058
30217
  if (response) {
30059
- this.personForm.disable();
30060
- this.userGroupForm.disable();
30061
- }
30062
- else {
30063
- this.personForm.enable();
30064
- this.userGroupForm.enable();
30218
+ this.personForm && this.personForm.disable();
30219
+ this.userGroupForm && this.userGroupForm.disable();
30220
+ return;
30065
30221
  }
30222
+ this.personForm && this.personForm.enable();
30223
+ this.userGroupForm && this.userGroupForm.enable();
30066
30224
  });
30067
30225
  }
30068
30226
  ngOnDestroy() {
@@ -30090,10 +30248,41 @@ class QMSSelectAccessDialogComponent {
30090
30248
  }
30091
30249
  }
30092
30250
  if (this.options.length === 1) {
30093
- this.dialogRef.updateSize('732px');
30251
+ this.dialogRef.updateSize(this.dialogData.sizeUpdateDefault);
30094
30252
  this.optionSelect.setValue(this.options[0].type);
30095
30253
  }
30096
30254
  }
30255
+ _filterOptionPersonChange() {
30256
+ // Filter person by roles
30257
+ this.personForm.get('userGroupFilter').valueChanges
30258
+ .pipe(takeUntil(this.ngUnsubcribe), debounceTime(500))
30259
+ .subscribe(keyword => {
30260
+ if (!this.optionFilterPersonDataGlobal.userGroups.length) {
30261
+ return;
30262
+ }
30263
+ if (!keyword) {
30264
+ this.filteredSearchTextBox.userGroup.next(this.optionFilterPersonDataGlobal.userGroups);
30265
+ return;
30266
+ }
30267
+ const resultFilter = this.optionFilterPersonDataGlobal.userGroups.filter(userGroup => userGroup.name.toLocaleLowerCase().includes(keyword.toLocaleLowerCase()));
30268
+ this.filteredSearchTextBox.userGroup.next(resultFilter);
30269
+ });
30270
+ // Filter person by departments
30271
+ this.personForm.get('departmentFilter').valueChanges
30272
+ .pipe(takeUntil(this.ngUnsubcribe))
30273
+ .subscribe(() => {
30274
+ if (!this.optionFilterPersonDataGlobal.departments) {
30275
+ return;
30276
+ }
30277
+ let search = this.personForm.get('departmentFilter').value;
30278
+ if (!search) {
30279
+ this.filteredSearchTextBox.department.next(this.optionFilterPersonDataGlobal.departments.slice());
30280
+ return;
30281
+ }
30282
+ search = search.toLowerCase();
30283
+ this.filteredSearchTextBox.department.next(this.optionFilterPersonDataGlobal.departments.filter(x => x.name.toLowerCase().indexOf(search) > -1));
30284
+ });
30285
+ }
30097
30286
  getResultTabActive() {
30098
30287
  const resultObj = {
30099
30288
  0: this.resultAccess.persons,
@@ -30107,34 +30296,44 @@ class QMSSelectAccessDialogComponent {
30107
30296
  }
30108
30297
  buildPersonForm() {
30109
30298
  this.personForm = this._fb.group({
30110
- roleId: new FormControl(''),
30111
- departmentId: new FormControl(),
30112
- departmentFilter: new FormControl(''),
30113
- recursive: new FormControl({ value: false, disabled: true }),
30114
- keyword: new FormControl(''),
30115
- roleFilter: new FormControl(''),
30116
- excludedQuitDepartmentId: true
30299
+ userGroup: [],
30300
+ department: [],
30301
+ departmentFilter: [''],
30302
+ recursive: [{
30303
+ value: false, disabled: true
30304
+ }],
30305
+ keyword: [''],
30306
+ userGroupFilter: [''],
30307
+ excludedQuitDepartmentId: [true]
30117
30308
  });
30118
30309
  }
30119
- resetPagingConfig() {
30120
- this.currentPaginationConfig = {
30121
- pageIndex: 0,
30122
- pageSize: 10,
30123
- length: 0
30124
- };
30125
- }
30126
30310
  onFilterPerson() {
30311
+ var _a, _b;
30127
30312
  this.getLoading$.next(true);
30128
- this.onSearchPersonEvent.emit(this.personForm.value);
30129
- this.getLoading$.next(true);
30313
+ const formValue = this.personForm.getRawValue();
30314
+ const filterData = {
30315
+ departmentId: (_a = formValue.department) === null || _a === void 0 ? void 0 : _a.id,
30316
+ userGroupId: (_b = formValue.userGroup) === null || _b === void 0 ? void 0 : _b.id,
30317
+ keyword: formValue.keyword,
30318
+ recursive: formValue.recursive
30319
+ };
30320
+ this.onSearchPersonEvent.emit(filterData);
30321
+ this._resetPagingator(this.pagingPerson);
30322
+ }
30323
+ _resetPagingator(paginator) {
30324
+ if (!paginator)
30325
+ return;
30326
+ paginator.changePage(0);
30327
+ paginator.renderDisplayNumberOfpages();
30130
30328
  }
30131
30329
  onSearchPersonFreeText() {
30132
- this.getLoading$.next(true);
30133
30330
  this.getLoading$.next(true);
30134
30331
  this.onSearchPersonFreeTextEvent.emit(this.personForm.get('keyword').value);
30332
+ this._resetPagingator(this.pagingPerson);
30135
30333
  }
30136
30334
  onFilterUserGroup() {
30137
30335
  this.getLoading$.next(true);
30336
+ this._resetPagingator(this.pagingUserGroup);
30138
30337
  this.onSearchUserGroupEvent.emit(this.userGroupForm.value);
30139
30338
  }
30140
30339
  onSelectItem(type, item) {
@@ -30198,13 +30397,26 @@ class QMSSelectAccessDialogComponent {
30198
30397
  break;
30199
30398
  case this.OPTION_ENUM.DEPARTMENT:
30200
30399
  this.resultAccess.departments.splice(index, 1);
30400
+ this.departmentResultClone.splice(index, 1);
30401
+ if (!this.treeDepartment)
30402
+ return;
30201
30403
  this.treeDepartment.onRemoveNode(item.id);
30404
+ break;
30202
30405
  default:
30203
30406
  return;
30204
30407
  }
30205
30408
  }
30206
30409
  onSelectionTypeChange(event) {
30207
- this.dialogRef.updateSize('732px');
30410
+ switch (event.value) {
30411
+ case OptionSelectAccessEnum.PERSON:
30412
+ this.buildPersonForm();
30413
+ this._filterOptionPersonChange();
30414
+ break;
30415
+ }
30416
+ this.getLoading$.next(true);
30417
+ this.dialogRef.updateSize(this.dialogData.sizeUpdateDefault);
30418
+ this.onSelectOptionChange$.next(event);
30419
+ this.cdRef.detectChanges();
30208
30420
  }
30209
30421
  setFormControlValue(formControlNames, values) {
30210
30422
  formControlNames.forEach((controlName, _index) => {
@@ -30215,9 +30427,9 @@ class QMSSelectAccessDialogComponent {
30215
30427
  isCheckAll(type) {
30216
30428
  switch (type) {
30217
30429
  case this.OPTION_ENUM.PERSON:
30218
- return !this.dialogData.modeSelectOnePerson && this.personFiltered.length && this.getPaging(this.personFiltered).every(x => x.selected);
30430
+ return !this.dialogData.modeSelectOnePerson && this.personFiltered.length && this.personFiltered.every(x => x.selected);
30219
30431
  case this.OPTION_ENUM.USER_GROUP:
30220
- return !this.dialogData.modeSelectOneUserGroup && this.userGroupFiltered.length && this.getPaging(this.userGroupFiltered).every(x => x.selected);
30432
+ return !this.dialogData.modeSelectOneUserGroup && this.userGroupFiltered.length && this.userGroupFiltered.every(x => x.selected);
30221
30433
  default:
30222
30434
  return false;
30223
30435
  }
@@ -30226,9 +30438,9 @@ class QMSSelectAccessDialogComponent {
30226
30438
  var _a, _b;
30227
30439
  switch (type) {
30228
30440
  case this.OPTION_ENUM.PERSON:
30229
- return !this.dialogData.modeSelectOnePerson && !this.isCheckAll(type) && ((_a = this.getPaging(this.personFiltered)) === null || _a === void 0 ? void 0 : _a.some(x => x.selected));
30441
+ return !this.dialogData.modeSelectOnePerson && !this.isCheckAll(type) && ((_a = this.personFiltered) === null || _a === void 0 ? void 0 : _a.some(x => x.selected));
30230
30442
  case this.OPTION_ENUM.USER_GROUP:
30231
- return !this.dialogData.modeSelectOneUserGroup && !this.isCheckAll(type) && ((_b = this.getPaging(this.userGroupFiltered)) === null || _b === void 0 ? void 0 : _b.some(x => x.selected));
30443
+ return !this.dialogData.modeSelectOneUserGroup && !this.isCheckAll(type) && ((_b = this.userGroupFiltered) === null || _b === void 0 ? void 0 : _b.some(x => x.selected));
30232
30444
  default:
30233
30445
  return false;
30234
30446
  }
@@ -30241,18 +30453,16 @@ class QMSSelectAccessDialogComponent {
30241
30453
  $event.checked = false;
30242
30454
  return;
30243
30455
  }
30244
- const userPaging = this.getPaging(this.personFiltered) || [];
30245
- if (!userPaging.length)
30456
+ if (!this.personFiltered.length)
30246
30457
  return;
30247
- userPaging.forEach(x => x.selected = $event.checked);
30248
- const idFiltered = userPaging.map(x => x.id);
30458
+ this.personFiltered.forEach(x => x.selected = $event.checked);
30459
+ const idFiltered = this.personFiltered.map(x => x.id);
30249
30460
  if ($event.checked) {
30250
30461
  const idPersonSelected = this.resultAccess.persons.map(x => x.id);
30251
- this.resultAccess.persons = [...this.resultAccess.persons, ...userPaging.filter(x => !idPersonSelected.includes(x.id))];
30252
- }
30253
- else {
30254
- this.resultAccess.persons = this.resultAccess.persons.filter(x => !idFiltered.includes(x.id));
30462
+ this.resultAccess.persons = [...this.resultAccess.persons, ...this.personFiltered.filter(x => !idPersonSelected.includes(x.id))];
30463
+ return;
30255
30464
  }
30465
+ this.resultAccess.persons = this.resultAccess.persons.filter(x => !idFiltered.includes(x.id));
30256
30466
  break;
30257
30467
  }
30258
30468
  case this.OPTION_ENUM.USER_GROUP: {
@@ -30260,59 +30470,79 @@ class QMSSelectAccessDialogComponent {
30260
30470
  $event.checked = false;
30261
30471
  return;
30262
30472
  }
30263
- const userGroupPaging = this.getPaging(this.userGroupFiltered);
30473
+ const userGroupPaging = this.userGroupFiltered;
30264
30474
  userGroupPaging.forEach(x => x.selected = $event.checked);
30265
30475
  const idFiltered = userGroupPaging.map(x => x.id);
30266
30476
  if ($event.checked) {
30267
30477
  const idSelected = this.resultAccess.userGroups.map(x => x.id);
30268
30478
  this.resultAccess.userGroups = [...this.resultAccess.userGroups, ...userGroupPaging.filter(x => !idSelected.includes(x.id))];
30479
+ return;
30269
30480
  }
30270
- else {
30271
- this.resultAccess.userGroups = this.resultAccess.userGroups.filter(x => !idFiltered.includes(x.id));
30272
- }
30481
+ this.resultAccess.userGroups = this.resultAccess.userGroups.filter(x => !idFiltered.includes(x.id));
30273
30482
  break;
30274
30483
  }
30275
30484
  default:
30276
30485
  return;
30277
30486
  }
30278
30487
  }
30488
+ onSelectionNodeDepartmentChange({ added, removed, updated }) {
30489
+ if (added.length) {
30490
+ added.forEach(item => {
30491
+ if (this.resultAccess.departments.some(x => x.id === item.id))
30492
+ return;
30493
+ this.resultAccess.departments.push(item);
30494
+ });
30495
+ }
30496
+ if (removed.length) {
30497
+ removed.forEach(x => {
30498
+ const index = this.resultAccess.departments.findIndex(item => item.id === x.id);
30499
+ if (index < 0)
30500
+ return;
30501
+ this.resultAccess.departments.splice(index, 1);
30502
+ });
30503
+ }
30504
+ if (updated.length) {
30505
+ updated.forEach(x => {
30506
+ const index = this.resultAccess.departments.findIndex(item => item.id == x.id);
30507
+ if (index < 0)
30508
+ return;
30509
+ const deparment = this.resultAccess.departments.find(item => item.id == x.id);
30510
+ if (!!deparment)
30511
+ deparment.children = x.children;
30512
+ });
30513
+ }
30514
+ this._departmentSelected = _.cloneDeep(this.resultAccess.departments);
30515
+ }
30279
30516
  onScollToNodeTreeDepartment(node) {
30280
30517
  this.optionSelect.value === this.OPTION_ENUM.DEPARTMENT && this.treeDepartment.scrollToNode(node.id);
30281
30518
  }
30282
- onRemoveTreeNodeDepartment(node) {
30283
- if (this.optionSelect.value === this.OPTION_ENUM.DEPARTMENT) {
30284
- this.treeDepartment.onRemoveNode(node.id);
30285
- }
30286
- this.resultAccess.departments = this.resultAccess.departments.filter(item => item.id !== node.id);
30287
- }
30288
30519
  trackByFn(index, item) {
30289
30520
  return index;
30290
30521
  }
30291
30522
  updatePersonFilter(data) {
30292
- this.resetPagingConfig();
30293
30523
  this.getPerson$.next(data);
30294
30524
  this.getLoading$.next(false);
30295
- this.getLoading$.next(false);
30296
30525
  }
30297
30526
  updateUserGroupFilter(data) {
30298
- this.resetPagingConfig();
30299
30527
  this.getUserGroup$.next(data);
30300
30528
  this.getLoading$.next(false);
30301
- this.getLoading$.next(false);
30302
30529
  }
30303
- onPagingEvent(val) {
30304
- this.currentPaginationConfig = val;
30305
- }
30306
- getPaging(source) {
30307
- if (!source.length)
30308
- return [];
30309
- return source.slice(this.currentPaginationConfig.pageIndex * this.currentPaginationConfig.pageSize, (this.currentPaginationConfig.pageIndex * this.currentPaginationConfig.pageSize) + this.currentPaginationConfig.pageSize);
30530
+ onPaginatorEvent(val, type) {
30531
+ this.getLoading$.next(this.optionSelect.value !== this.OPTION_ENUM.DEPARTMENT);
30532
+ this.onPagingEvent.emit(Object.assign(Object.assign({}, val), { type: type }));
30310
30533
  }
30311
30534
  onResultDepartmentChange(event) {
30312
- this.resultAccess.departments = event.map(item => {
30313
- var _a;
30314
- 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 });
30315
- });
30535
+ // this.resultAccess.departments = event;
30536
+ }
30537
+ updateResultSearchDepartment(data = new QMSAccessPagingModel()) {
30538
+ if (!this.treeDepartment)
30539
+ return;
30540
+ data = data;
30541
+ this.treeDepartment.setResultSearch(data);
30542
+ }
30543
+ generateTootip(node) {
30544
+ var _a;
30545
+ return (node === null || node === void 0 ? void 0 : node.isGroup) ? this.formatString(this.LANG.TOOLTIP_INCLUDE_SUB_DEPARTMENT, node.name, (_a = node.children) === null || _a === void 0 ? void 0 : _a.length.toString()) : (`${node.name} ${(node === null || node === void 0 ? void 0 : node.subName) ? `- (${node.subName})` : ''}`);
30316
30546
  }
30317
30547
  formatString(...replacements) {
30318
30548
  let result = arguments[0];
@@ -30325,11 +30555,25 @@ class QMSSelectAccessDialogComponent {
30325
30555
  hasItemSelected() {
30326
30556
  return Object.keys(this.resultAccess).some(key => { var _a; return !!((_a = this.resultAccess[key]) === null || _a === void 0 ? void 0 : _a.length); });
30327
30557
  }
30558
+ updateDepartment(data = []) {
30559
+ this.getLoading$.next(false);
30560
+ this.dialogData.data.accessDepartments = [];
30561
+ this.dialogData.data.accessDepartments = _.cloneDeep(data);
30562
+ }
30563
+ updateOptionPersonFilter(departmentFilter = [], userGroupFilter = []) {
30564
+ this.optionFilterPersonDataGlobal.departments = departmentFilter;
30565
+ this.optionFilterPersonDataGlobal.userGroups = userGroupFilter;
30566
+ this.filteredSearchTextBox.department.next(departmentFilter);
30567
+ this.filteredSearchTextBox.userGroup.next(userGroupFilter);
30568
+ }
30569
+ setDefaultPageSizeOption(data) {
30570
+ this.PAGE_SIZE_OPTION = data;
30571
+ }
30328
30572
  }
30329
30573
  QMSSelectAccessDialogComponent.decorators = [
30330
30574
  { type: Component, args: [{
30331
30575
  selector: 'qms-select-access-dialog',
30332
- template: "<div qms-dialog-container-v2 class=\"select-access-dialog-container\">\r\n <div qms-dialog-header>\r\n <div class=\"access-dialog-header mb-2\">\r\n <span class=\"header-title\">{{dialogData.titleDialog || LANG.SELECT_ACCESS}}</span>\r\n <button matDialogClose qms-btn-icon>\r\n <mat-icon class=\"mat-icons-outlined\">close</mat-icon>\r\n </button>\r\n </div>\r\n <mat-form-field *ngIf=\"options.length > 1\" qms-form qms-select-input class=\"field-select-option w-100\"\r\n appearance=\"fill\">\r\n <mat-label qms-select-input>{{LANG.TYPE}}</mat-label>\r\n <mat-select (selectionChange)=\"onSelectionTypeChange($event)\" [formControl]=\"optionSelect\" placeholder=\"Select\"\r\n disableOptionCentering #singleSelect panelClass=\"qms-select-panel\" qms-select>\r\n\r\n <mat-option *ngFor=\"let item of options\" [value]=\"item.type\">\r\n {{ LANG[item.displayName] }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div qms-dialog-content class=\"access-dialog-wraper\">\r\n <!-- Person Access -->\r\n <div class=\"option-selected-content\">\r\n <ng-container *ngIf=\"optionSelect.value === OPTION_ENUM.PERSON\">\r\n <form [formGroup]=\"personForm\">\r\n <mat-dialog-content>\r\n <div class=\"group-filter-person-option\">\r\n <mat-form-field class=\"w-100 input-option-filter\" qms-form>\r\n <mat-label qms-select-input>{{LANG.ROLE}}</mat-label>\r\n <mat-select panelClass=\"qms-select-panel\" qms-select disableOptionCentering formControlName=\"roleId\">\r\n <mat-option>\r\n <ngx-mat-select-search formControlName=\"roleFilter\" placeholderLabel=\"{{ LANG.ROLE }}\"\r\n noEntriesFoundLabel=\"\">\r\n </ngx-mat-select-search>\r\n </mat-option>\r\n <mat-option *ngFor=\"let item of filteredSearchTextBox.role | async\" [value]=\"item.id\">\r\n {{ item.name }}\r\n </mat-option>\r\n </mat-select>\r\n <!-- <mat-progress-spinner [@inOutAnimation] *ngIf=\"getLoading$.value\" matSuffix mode=\"indeterminate\" diameter=\"20\"></mat-progress-spinner> -->\r\n <span [@inOutAnimation] (click)=\"personForm.get('roleId').setValue('')\" class=\"pointer \" matSuffix\r\n aria-label=\"Clear\" *ngIf=\"personForm.get('roleId').value && !getLoading$.value\">\r\n <mat-icon>close</mat-icon>\r\n </span>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"w-100 input-select-option\" qms-form qms-select-input>\r\n <mat-label>{{LANG.DEPARTMENT_UNIT}}</mat-label>\r\n <mat-select panelClass=\"qms-select-panel\" qms-select disableOptionCentering\r\n formControlName=\"departmentId\">\r\n <mat-option>\r\n <ngx-mat-select-search formControlName=\"departmentFilter\" [placeholderLabel]=\"LANG.DEPARTMENT_UNIT\"\r\n noEntriesFoundLabel=\"\">\r\n </ngx-mat-select-search>\r\n </mat-option>\r\n <mat-option *ngFor=\"let item of filteredSearchTextBox.department | async\" [value]=\"item.id\">\r\n {{item.name}}\r\n </mat-option>\r\n </mat-select>\r\n <span (click)=\"setFormControlValue(['recursive','departmentId'], [false,''])\" [@inOutAnimation]\r\n class=\"pointer\" matSuffix aria-label=\"Clear\"\r\n *ngIf=\"personForm.get('departmentId').value && !getLoading$.value\">\r\n <mat-icon>close</mat-icon>\r\n </span>\r\n </mat-form-field>\r\n </div>\r\n\r\n <mat-slide-toggle class=\"w-100 slide-toggle\" formControlName=\"recursive\"\r\n [disabled]=\"!this.personForm.controls['departmentId'].value\" color=\"default\" qms-group-options>\r\n <span class=\"text-label\">{{LANG.INCLUDE_SUB_DEPARTMENTS}}</span>\r\n </mat-slide-toggle>\r\n\r\n <mat-form-field class=\"w-100\" appearance=\"fill\" qms-form qms-search-field>\r\n <input matInput appearance=\"off\" [placeholder]=\"LANG.SEARCH_WITH_NAME\" formControlName=\"keyword\"\r\n type=\"text\" autocomplete=\"off\" />\r\n <button *ngIf=\"!getLoading$.value\" qms-btn-icon color=\"light\" [@inOutAnimation]\r\n (click)=\"onSearchPersonFreeText()\" class=\"pointer me-1\" matSuffix aria-label=\"Search\">\r\n <mat-icon>search</mat-icon>\r\n </button>\r\n <mat-progress-spinner [@inOutAnimation] *ngIf=\"getLoading$.value\" matSuffix mode=\"indeterminate\"\r\n diameter=\"20\"></mat-progress-spinner>\r\n <span [@inOutAnimation] (click)=\"personForm.get('keyword').setValue('')\"\r\n class=\"pointer btn-icon-clear d-flex justify-content-center align-items-center \" matSuffix\r\n aria-label=\"Clear\" *ngIf=\"personForm.get('keyword').value && !getLoading$.value\">\r\n <button qms-btn-icon color=\"light\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </span>\r\n </mat-form-field>\r\n <button (click)=\"onFilterPerson()\" qms-btn-outlined class=\"w-100 my-1\">\r\n {{LANG.FILTER}}\r\n </button>\r\n </mat-dialog-content>\r\n\r\n <mat-dialog-content class=\"items-list\">\r\n <div qms-scrollbar>\r\n <div class=\"item\">\r\n <mat-checkbox [@inOutAnimation] *ngIf=\"!getLoading$.value\"\r\n [disabled]=\"!personFiltered.length || dialogData.modeSelectOnePerson\" #checkPerson\r\n class=\"w-100 mb-1 checkbox-all\"\r\n (click)=\"personFiltered.length && onCheckAll(OPTION_ENUM.PERSON,checkPerson)\"\r\n [checked]=\"isCheckAll(OPTION_ENUM.PERSON)\" [indeterminate]=\"isIndeterminate(OPTION_ENUM.PERSON)\"\r\n color=\"default\" qms-group-options>\r\n <span class=\"text-label header-title\">{{LANG.CHOOSE_ALL}} </span>\r\n <span>(<b>{{getPaging(personFiltered).length}}</b>)</span>\r\n </mat-checkbox>\r\n </div>\r\n <mat-divider class=\"mx-auto\"></mat-divider>\r\n <ng-container *ngIf=\"getLoading$.value; then loading\">\r\n </ng-container>\r\n <div [@inOutAnimation] *ngIf=\"getPaging(personFiltered).length && !getLoading$.value\" [@listAnimation]\r\n class=\"item-list-wrapper\">\r\n <div class=\"item mt-1\" [@inOutAnimation]\r\n *ngFor=\"let employee of getPaging(personFiltered); trackBy: trackByFn\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"dialogData.modeSelectOnePerson ?itemWithoutCheckboxTemplate : itemCheckboxTemplate\"\r\n [ngTemplateOutletContext]=\"{item: employee, type: OPTION_ENUM.PERSON}\">\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div [@inOutAnimation] *ngIf=\"!getPaging(personFiltered).length && !getLoading$.value\"\r\n class=\"item-list-wrapper no-result\">\r\n <ng-container *ngTemplateOutlet=\"noResult\"></ng-container>\r\n </div>\r\n <mat-divider class=\"mx-auto\"></mat-divider>\r\n <qms-paginator class=\"my-1\" *ngIf=\"personFiltered.length > 10 && !getLoading$.value\"\r\n [length]=\"personFiltered.length\" [numHidden]=\"0\" [pageSize]=\"10\" [pageSizeOptions]=\"[5, 10, 25, 100]\"\r\n (page)='onPagingEvent($event)' [size]='PAGINATION_SIZE.medium'>\r\n </qms-paginator>\r\n </div>\r\n </mat-dialog-content>\r\n </form>\r\n </ng-container>\r\n\r\n <!-- UserGroup Access -->\r\n <ng-container *ngIf=\"optionSelect.value === OPTION_ENUM.USER_GROUP\">\r\n <form>\r\n <mat-dialog-content>\r\n <mat-form-field class=\"w-100\" qms-form qms-search-field>\r\n <input [formControl]=\"userGroupForm\" matInput type=\"text\" autocomplete=\"off\" placeholder=\"User group\" />\r\n <button [@inOutAnimation] *ngIf=\"!getLoading$.value\" (click)=\"onFilterUserGroup()\" qms-btn-icon\r\n color=\"light\" matSuffix>\r\n <mat-icon>search</mat-icon>\r\n </button>\r\n <mat-progress-spinner [@inOutAnimation] *ngIf=\"getLoading$.value\" matSuffix mode=\"indeterminate\"\r\n diameter=\"20\"></mat-progress-spinner>\r\n <div [@inOutAnimation] *ngIf=\"!!userGroupForm.value && !getLoading$.value\" matSuffix qms-input-clear>\r\n <button (click)=\"userGroupForm.setValue('')\" qms-btn-icon color=\"light\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </mat-form-field>\r\n </mat-dialog-content>\r\n <mat-dialog-content class=\"items-list\">\r\n <div qms-scrollbar>\r\n <div class=\"item\">\r\n <mat-checkbox [@inOutAnimation] *ngIf=\"!getLoading$.value\"\r\n [disabled]=\"!userGroupFiltered.length || dialogData.modeSelectOneUserGroup\" #checkUserGroup\r\n class=\"w-100 checkbox-all mb-1\" color=\"default\" [checked]=\"isCheckAll(OPTION_ENUM.USER_GROUP)\"\r\n [indeterminate]=\"isIndeterminate(OPTION_ENUM.USER_GROUP)\"\r\n (click)=\"userGroupFiltered.length && onCheckAll(OPTION_ENUM.USER_GROUP,checkUserGroup)\"\r\n qms-group-options>\r\n <span class=\"text-label header-title\">{{LANG.CHOOSE_ALL}}</span>\r\n <span>(<b>{{getPaging(userGroupFiltered).length}}</b>)</span>\r\n </mat-checkbox>\r\n </div>\r\n <mat-divider class=\"mx-auto\"></mat-divider>\r\n <ng-container *ngIf=\"getLoading$.value;then loading\">\r\n </ng-container>\r\n <div *ngIf=\"getPaging(userGroupFiltered).length && !getLoading$.value\" [@listAnimation]\r\n class=\"item-list-wrapper\">\r\n <div [@inOutAnimation] class=\"item mt-1\" *ngFor=\"let userGroup of getPaging(userGroupFiltered)\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"dialogData.modeSelectOneUserGroup ?itemWithoutCheckboxTemplate : itemCheckboxTemplate\"\r\n [ngTemplateOutletContext]=\"{item: userGroup,type: OPTION_ENUM.USER_GROUP}\">\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div [@inOutAnimation] *ngIf=\"!getPaging(userGroupFiltered).length && !getLoading$.value\"\r\n class=\"item-list-wrapper no-result\">\r\n <ng-container *ngTemplateOutlet=\"noResult\"></ng-container>\r\n </div>\r\n <mat-divider class=\"mx-auto\"></mat-divider>\r\n <qms-paginator class=\"my-1\" *ngIf=\"userGroupFiltered.length > 10 && !getLoading$.value\"\r\n [length]=\"userGroupFiltered.length\" [numHidden]=\"0\" [pageSize]=\"10\" [pageSizeOptions]=\"[5, 10, 25, 100]\"\r\n (page)='onPagingEvent($event)' [size]='PAGINATION_SIZE.medium'>\r\n </qms-paginator>\r\n </div>\r\n </mat-dialog-content>\r\n </form>\r\n </ng-container>\r\n\r\n <!-- Department Access -->\r\n <ng-container *ngIf=\"optionSelect.value === OPTION_ENUM.DEPARTMENT\" class=\"person-access\">\r\n <qms-select-department-tree #treeDepartment [treeData]=\"dialogData.data.accessDepartments\"\r\n [selectIncludeLabel]=\"dialogData.treeDepartmentConfig.selectIncludeChildLabel\"\r\n [enableIncludeChild]=\"dialogData.treeDepartmentConfig.enableIncludeChild\"\r\n [enableTreeSearch]=\"dialogData.treeDepartmentConfig.enableTreeSearch\"\r\n [isSelectOne]=\"dialogData.modeSelectOneDepartment\" [selectedList]=\"resultAccess.departments\"\r\n (onSearchEvent)=\"onSearchDepartmentEvent.emit($event)\"\r\n (onValueChangeEvent)=\"onResultDepartmentChange($event)\">\r\n </qms-select-department-tree>\r\n </ng-container>\r\n </div>\r\n <mat-divider *ngIf=\"optionSelect.value !== null\" class=\"mx-auto\"></mat-divider>\r\n <div [@inOutAnimation]\r\n *ngIf=\"(options.length === 1 && hasItemSelected()) || (options.length > 1 && optionSelect.value !== null)\"\r\n class=\"header-title my-1\">\r\n {{\r\n dialogData.titleResult || LANG.RESULTS}}\r\n <span *ngIf=\"options.length === 1 && hasItemSelected()\">\r\n ({{getResultTabActive().length}})\r\n </span>\r\n </div>\r\n <div *ngIf=\"optionSelect.value !== null\" class=\"result-selected-container\">\r\n <!-- Result Person -->\r\n <ng-container *ngIf=\"checkExistOptionSelect(OPTION_ENUM.PERSON)\"\r\n [ngTemplateOutlet]=\"options.length == 1 ? listChip : viewResultCollapse\"\r\n [ngTemplateOutletContext]=\"{data:resultAccess.persons, type:OPTION_ENUM.PERSON, title:LANG.PERSON}\">\r\n </ng-container>\r\n <!-- Result User group -->\r\n <ng-container *ngIf=\"checkExistOptionSelect(OPTION_ENUM.USER_GROUP)\"\r\n [ngTemplateOutlet]=\"options.length == 1 ? listChip : viewResultCollapse\"\r\n [ngTemplateOutletContext]=\"{data:resultAccess.userGroups, type:OPTION_ENUM.USER_GROUP, title:LANG.USER_GROUP}\">\r\n </ng-container>\r\n <!-- Result Department -->\r\n <ng-container *ngIf=\"checkExistOptionSelect(OPTION_ENUM.DEPARTMENT)\"\r\n [ngTemplateOutlet]=\"options.length == 1 ? listChip : viewResultCollapse\"\r\n [ngTemplateOutletContext]=\"{data:resultAccess.departments, type:OPTION_ENUM.DEPARTMENT, title:LANG.DEPARTMENT}\">\r\n </ng-container>\r\n </div>\r\n <mat-divider class=\"mx-auto\"></mat-divider>\r\n </div>\r\n <div qms-dialog-footer class=\"confirm__button__groups\" [class.none-option]=\"optionSelect.value === null\">\r\n <button *ngIf=\"optionSelect.value !== null\" [disabled]=\"!hasItemSelected()\" class=\"btn-add\"\r\n [class.qms-btn-disabled]=\"!hasItemSelected()\" [mat-dialog-close]=\"resultAccess\" qms-btn>\r\n <span>{{LANG.ADD}}</span>\r\n </button>\r\n <button qms-btn-text mat-dialog-close>\r\n {{LANG.CANCEL}}\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<!-- Template -->\r\n<ng-template #noResult>\r\n <svg width=\"89\" height=\"88\" viewBox=\"0 0 89 88\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.5\" width=\"88\" height=\"88\" rx=\"44\" fill=\"white\" />\r\n <rect x=\"0.5\" width=\"88\" height=\"88\" rx=\"44\" fill=\"#0163B2\" fill-opacity=\"0.12\" />\r\n <path\r\n d=\"M44.5 56.6936L58.096 64.8996L54.488 49.4336L66.5 39.0276L50.682 37.6856L44.5 23.0996L38.318 37.6856L22.5 39.0276L34.512 49.4336L30.904 64.8996L44.5 56.6936Z\"\r\n fill=\"#0163B3\" />\r\n </svg>\r\n</ng-template>\r\n\r\n<!-- Template list chip -->\r\n<ng-template #listChip let-data=\"data\" let-type=\"type\">\r\n <mat-chip-list class=\"panel__item qms-scrollbar\">\r\n <mat-chip class=\"chip-item-result\" [qms-tool-tip]=\"item?.tooltip || item.name\" position=\"top\" mode=\"dark\"\r\n *ngFor=\"let item of data; let i = index\" qms-chip [removable]=\"true\">\r\n <span qms-chip-body>\r\n <span class=\"text-label\">\r\n {{item.name}}\r\n <span *ngIf=\"item.subName\">({{ item.subName }})</span>\r\n </span>\r\n <span class=\"chip-item-children__count ms-1\" *ngIf=\"item?.children\">\r\n {{item.children.length}}/{{item.childCount}}\r\n </span>\r\n </span>\r\n <mat-icon (click)=\"onRemoveChip(type,item, i)\" class=\"remove-chip-icon\">cancel</mat-icon>\r\n </mat-chip>\r\n </mat-chip-list>\r\n</ng-template>\r\n\r\n<!-- Template result with collapse -->\r\n<ng-template #viewResultCollapse let-title=\"title\" let-data=\"data\" let-type=\"type\">\r\n <mat-expansion-panel qms-expansion [expanded]=\"optionSelect.value === type\">\r\n <mat-expansion-panel-header>\r\n <div class=\"title-content\">\r\n <div class=\"qms-list-text\">\r\n <div qms-line color=\"default-subtitle\">{{title}}\r\n <span class=\"fw-600\">\r\n ({{data.length}})\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </mat-expansion-panel-header>\r\n <ng-container [ngTemplateOutlet]=\"listChip\" [ngTemplateOutletContext]=\"{data: data,type: type}\">\r\n </ng-container>\r\n </mat-expansion-panel>\r\n</ng-template>\r\n\r\n<!-- Template row without checkbox -->\r\n<ng-template #itemWithoutCheckboxTemplate let-item=\"item\" let-type=\"type\">\r\n <div (click)=\"onSelectItem(type,item)\" class=\"item-without-checkbox w-100\" [class.active]=\"item.selected\">\r\n <div class=\"item-content\">\r\n <div class=\"text-label\">\r\n <span class=\"text-label label-item fs-14 \">\r\n {{ item.name }}\r\n </span>\r\n <span *ngIf=\"item.subName\" class=\"ms-1 sub-label\">({{item.subName}})</span>\r\n </div>\r\n <small *ngIf=\"item.helpText\" class=\"text-help px-1 fs-12 sub-label\">{{ item.helpText }}</small>\r\n </div>\r\n <div class=\"item-state\">\r\n <mat-icon [@inOutAnimation] *ngIf=\"item.selected\">check</mat-icon>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<!-- Template checkbox -->\r\n<ng-template #itemCheckboxTemplate let-item=\"item\" let-type=\"type\">\r\n <mat-checkbox [checked]=\"item.selected\" (click)=\"onSelectItem(type,item)\" class=\"w-100\" color=\"default\"\r\n qms-group-options>\r\n <div class=\"text-label\">\r\n <span class=\"text-label label-item fs-14 \">\r\n {{ item.name }}\r\n </span>\r\n <span *ngIf=\"item.subName\" class=\"ms-1 sub-label\">({{item.subName}})</span>\r\n </div>\r\n <small *ngIf=\"item.helpText\" class=\"text-help px-1 fs-12 sub-label\">{{ item.helpText }}</small>\r\n </mat-checkbox>\r\n</ng-template>\r\n\r\n<!-- Template loading -->\r\n<ng-template #loading>\r\n <div class=\"loading-container\">\r\n <div class=\"loader\" *ngFor=\"let item of [1,1,1,1]\">\r\n <div class=\"loader__wrapper\">\r\n <div class=\"row-loader\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-template>\r\n",
30576
+ template: "<div qms-dialog-container-v2 class=\"select-access-dialog-container\">\r\n <div qms-dialog-header>\r\n <div class=\"access-dialog-header mb-2\">\r\n <span class=\"header-title\">{{dialogData.titleDialog || LANG.SELECT_ACCESS}}</span>\r\n <button matDialogClose qms-btn-icon>\r\n <mat-icon class=\"mat-icons-outlined\">close</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <div [class.active]=\"optionSelect.value !== null\" qms-dialog-content class=\"qms-dialog-content\">\r\n <div class=\"access-dialog-wraper\">\r\n <mat-form-field *ngIf=\"options.length > 1\" qms-form qms-select-input class=\"field-select-option w-100\"\r\n appearance=\"fill\">\r\n <mat-label qms-select-input>{{LANG.TYPE}}</mat-label>\r\n <mat-select (selectionChange)=\"onSelectionTypeChange($event)\" [formControl]=\"optionSelect\" placeholder=\"Select\"\r\n disableOptionCentering #singleSelect panelClass=\"qms-select-panel\" qms-select>\r\n\r\n <mat-option *ngFor=\"let item of options\" [value]=\"item.type\">\r\n {{ LANG[item.displayName] }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <div class=\"body-dialog-container\">\r\n <!-- Person Access -->\r\n <div class=\"option-selected-content\">\r\n <ng-container *ngIf=\"optionSelect.value === OPTION_ENUM.PERSON\">\r\n <form *ngIf=\"personForm\" [formGroup]=\"personForm\">\r\n <mat-dialog-content>\r\n <div class=\"group-filter-person-option\">\r\n <mat-form-field *ngIf=\"optionFilterPersonDataGlobal.userGroups.length\" qms-form qms-select-input\r\n class=\"w-100\" appearance=\"fill\">\r\n <mat-label qms-select-input>{{LANG.ROLE}}</mat-label>\r\n <mat-select panelClass=\"qms-select-panel\" qms-select formControlName=\"userGroup\"\r\n disableOptionCentering>\r\n <mat-select-trigger>\r\n {{personForm.controls['userGroup'].value?.name || ''}}\r\n </mat-select-trigger>\r\n <mat-option>\r\n <ngx-mat-select-search formControlName=\"userGroupFilter\" placeholderLabel=\"{{ LANG.ROLE }}\"\r\n noEntriesFoundLabel=\"\">\r\n </ngx-mat-select-search>\r\n </mat-option>\r\n <mat-option mode=\"dark\" class=\"opt-check-icon\"\r\n *ngFor=\"let item of filteredSearchTextBox.userGroup.value\" [value]=\"item\">\r\n <span qms-elipsify position=\"top\" mode=\"dark\" class=\"text-option-content\">{{ item.name }}</span>\r\n <mat-icon class=\"check-icon\"\r\n *ngIf=\"personForm.controls['userGroup'].value?.id == item.id\">check</mat-icon>\r\n </mat-option>\r\n </mat-select>\r\n <span [@inOutAnimation] (click)=\"personForm.get('userGroup').setValue('')\" class=\"pointer \"\r\n matSuffix aria-label=\"Clear\" *ngIf=\"personForm.get('userGroup').value && !getLoading$.value\">\r\n <mat-icon>close</mat-icon>\r\n </span>\r\n </mat-form-field>\r\n <!-- input field department filter person -->\r\n <mat-form-field *ngIf=\"optionFilterPersonDataGlobal.departments.length\"\r\n class=\"w-100 input-select-option\" qms-form qms-select-input>\r\n <mat-label>{{LANG.DEPARTMENT_UNIT}}</mat-label>\r\n <mat-select panelClass=\"qms-select-panel\" qms-select disableOptionCentering\r\n formControlName=\"department\">\r\n <mat-select-trigger>\r\n {{personForm.controls['department'].value?.name || ''}}\r\n </mat-select-trigger>\r\n <mat-option>\r\n <ngx-mat-select-search formControlName=\"departmentFilter\"\r\n [placeholderLabel]=\"LANG.DEPARTMENT_UNIT\" noEntriesFoundLabel=\"\">\r\n </ngx-mat-select-search>\r\n </mat-option>\r\n <mat-option class=\"opt-check-icon\" *ngFor=\"let item of filteredSearchTextBox.department.value\"\r\n [value]=\"item\">\r\n <span qms-elipsify mode=\"dark\" position=\"top\" class=\"text-option-content\">{{ item.name }}</span>\r\n <mat-icon class=\"check-icon\"\r\n *ngIf=\"personForm.controls['department'].value?.id == item.id\">check</mat-icon>\r\n </mat-option>\r\n </mat-select>\r\n <span (click)=\"setFormControlValue(['recursive','department'], [false,''])\" [@inOutAnimation]\r\n class=\"pointer\" matSuffix aria-label=\"Clear\"\r\n *ngIf=\"personForm.get('department').value && !getLoading$.value\">\r\n <mat-icon>close</mat-icon>\r\n </span>\r\n </mat-form-field>\r\n </div>\r\n\r\n <mat-slide-toggle [@inOutAnimation] *ngIf=\"personForm.controls['department'].value\"\r\n class=\"w-100 slide-toggle\" formControlName=\"recursive\" color=\"default\" qms-group-options>\r\n <span class=\"text-label\">{{LANG.INCLUDE_SUB_DEPARTMENTS}}</span>\r\n </mat-slide-toggle>\r\n\r\n <mat-form-field class=\"w-100\" appearance=\"fill\" qms-form qms-search-field>\r\n <input matInput appearance=\"off\" [placeholder]=\"LANG.SEARCH_WITH_NAME\" formControlName=\"keyword\"\r\n type=\"text\" autocomplete=\"off\" />\r\n <button *ngIf=\"!getLoading$.value\" qms-btn-icon color=\"light\" [@inOutAnimation]\r\n (click)=\"onSearchPersonFreeText()\" class=\"pointer me-1\" matSuffix aria-label=\"Search\">\r\n <mat-icon>search</mat-icon>\r\n </button>\r\n <mat-progress-spinner [@inOutAnimation] *ngIf=\"getLoading$.value\" matSuffix mode=\"indeterminate\"\r\n diameter=\"20\"></mat-progress-spinner>\r\n <span [@inOutAnimation] (click)=\"personForm.get('keyword').setValue('')\"\r\n class=\"pointer btn-icon-clear d-flex justify-content-center align-items-center \" matSuffix\r\n aria-label=\"Clear\" *ngIf=\"personForm.get('keyword').value && !getLoading$.value\">\r\n <button qms-btn-icon color=\"light\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </span>\r\n </mat-form-field>\r\n <button (click)=\"onFilterPerson()\" qms-btn-outlined class=\"w-100 my-1\">\r\n {{LANG.FILTER}}\r\n </button>\r\n </mat-dialog-content>\r\n\r\n <mat-dialog-content class=\"items-list\">\r\n <div qms-scrollbar>\r\n <div class=\"item\">\r\n <mat-checkbox [@inOutAnimation]\r\n *ngIf=\"!getLoading$.value && personFiltered.length && !dialogData.modeSelectOnePerson\"\r\n #checkPerson class=\"w-100 mb-1 checkbox-all\"\r\n (click)=\"personFiltered.length && onCheckAll(OPTION_ENUM.PERSON,checkPerson)\"\r\n [checked]=\"isCheckAll(OPTION_ENUM.PERSON)\" [indeterminate]=\"isIndeterminate(OPTION_ENUM.PERSON)\"\r\n color=\"default\" qms-group-options>\r\n <span class=\"text-label header-title\">{{LANG.CHOOSE_ALL}} </span>\r\n <span>(<b>{{personFiltered.length}}</b>)</span>\r\n </mat-checkbox>\r\n </div>\r\n <mat-divider class=\"mx-auto\"></mat-divider>\r\n <ng-container *ngIf=\"getLoading$.value; then loading\">\r\n </ng-container>\r\n <div [@inOutAnimation] *ngIf=\"personFiltered.length && !getLoading$.value\" [@listAnimation]\r\n class=\"item-list-wrapper\">\r\n <div class=\"item mt-1\" [@inOutAnimation]\r\n *ngFor=\"let employee of personFiltered; trackBy: trackByFn\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"dialogData.modeSelectOnePerson ?itemWithoutCheckboxTemplate : itemCheckboxTemplate\"\r\n [ngTemplateOutletContext]=\"{item: employee, type: OPTION_ENUM.PERSON}\">\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div [@inOutAnimation] *ngIf=\"!personFiltered.length && !getLoading$.value\"\r\n class=\"item-list-wrapper no-result\">\r\n <ng-container *ngTemplateOutlet=\"noResult\"></ng-container>\r\n </div>\r\n <mat-divider class=\"mx-auto\"></mat-divider>\r\n <qms-paginator #pagingPerson class=\"my-1\" *ngIf=\"getPerson$.value.length > 10\"\r\n [length]=\"getPerson$.value.length\" [numHidden]=\"0\" [pageSize]=\"getPerson$.value.pageSize\"\r\n [pageSizeOptions]=\"PAGE_SIZE_OPTION\" (page)='onPaginatorEvent($event, OPTION_ENUM.PERSON)'\r\n [size]='PAGINATION_SIZE.medium'>\r\n </qms-paginator>\r\n </div>\r\n </mat-dialog-content>\r\n </form>\r\n </ng-container>\r\n\r\n <!-- UserGroup Access -->\r\n <ng-container *ngIf=\"optionSelect.value === OPTION_ENUM.USER_GROUP\">\r\n <form (submit)=\"onFilterUserGroup()\">\r\n <mat-dialog-content>\r\n <mat-form-field class=\"w-100\" qms-form qms-search-field>\r\n <input [formControl]=\"userGroupForm\" matInput type=\"text\" autocomplete=\"off\"\r\n placeholder=\"User group\" />\r\n <button [@inOutAnimation] *ngIf=\"!getLoading$.value\" type=\"submit\" qms-btn-icon color=\"light\"\r\n matSuffix>\r\n <mat-icon>search</mat-icon>\r\n </button>\r\n <mat-progress-spinner [@inOutAnimation] *ngIf=\"getLoading$.value\" matSuffix mode=\"indeterminate\"\r\n diameter=\"20\"></mat-progress-spinner>\r\n <div [@inOutAnimation] *ngIf=\"!!userGroupForm.value && !getLoading$.value\" matSuffix qms-input-clear>\r\n <button (click)=\"userGroupForm.setValue('')\" qms-btn-icon color=\"light\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </mat-form-field>\r\n </mat-dialog-content>\r\n <mat-dialog-content class=\"items-list\">\r\n <div qms-scrollbar>\r\n <div class=\"item\">\r\n <mat-checkbox [@inOutAnimation]\r\n *ngIf=\"!getLoading$.value && (userGroupFiltered.length && !dialogData.modeSelectOneUserGroup)\"\r\n #checkUserGroup class=\"w-100 checkbox-all mb-1\" color=\"default\"\r\n [checked]=\"isCheckAll(OPTION_ENUM.USER_GROUP)\"\r\n [indeterminate]=\"isIndeterminate(OPTION_ENUM.USER_GROUP)\"\r\n (click)=\"userGroupFiltered.length && onCheckAll(OPTION_ENUM.USER_GROUP,checkUserGroup)\"\r\n qms-group-options>\r\n <span class=\"text-label header-title\">{{LANG.CHOOSE_ALL}}</span>\r\n <span>(<b>{{userGroupFiltered.length}}</b>)</span>\r\n </mat-checkbox>\r\n </div>\r\n <mat-divider class=\"mx-auto\"></mat-divider>\r\n <ng-container *ngIf=\"getLoading$.value;then loading\">\r\n </ng-container>\r\n <div *ngIf=\"userGroupFiltered.length && !getLoading$.value\" [@listAnimation]\r\n class=\"item-list-wrapper\">\r\n <div [@inOutAnimation] class=\"item mt-1\" *ngFor=\"let userGroup of userGroupFiltered\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"dialogData.modeSelectOneUserGroup ? itemWithoutCheckboxTemplate : itemCheckboxTemplate\"\r\n [ngTemplateOutletContext]=\"{item: userGroup,type: OPTION_ENUM.USER_GROUP}\">\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div [@inOutAnimation] *ngIf=\"!userGroupFiltered.length && !getLoading$.value\"\r\n class=\"item-list-wrapper no-result\">\r\n <ng-container *ngTemplateOutlet=\"noResult\"></ng-container>\r\n </div>\r\n <mat-divider class=\"mx-auto\"></mat-divider>\r\n <qms-paginator #pagingUserGroup class=\"my-1\" *ngIf=\"getUserGroup$.value.length > 10 \"\r\n [length]=\"getUserGroup$.value.length\" [numHidden]=\"0\" [pageSize]=\"getUserGroup$.value.pageSize\"\r\n [pageSizeOptions]=\"PAGE_SIZE_OPTION\" (page)='onPaginatorEvent($event, OPTION_ENUM.USER_GROUP)'\r\n [size]='PAGINATION_SIZE.medium'>\r\n </qms-paginator>\r\n </div>\r\n </mat-dialog-content>\r\n </form>\r\n </ng-container>\r\n\r\n <!-- Department Access -->\r\n <ng-container\r\n *ngIf=\"optionSelect.value === OPTION_ENUM.DEPARTMENT && getLoading$.value; then loading\"></ng-container>\r\n <ng-container *ngIf=\"optionSelect.value === OPTION_ENUM.DEPARTMENT && !getLoading$.value\"\r\n class=\"person-access\">\r\n <qms-select-department-tree #tree [height]=\"'60vh'\" [treeData]=\"this.dialogData.data.accessDepartments\"\r\n [customClass]=\"'access-department'\" [rowsSkeleton]=\"9\"\r\n [selectIncludeLabel]=\"dialogData.treeDepartmentConfig.selectIncludeChildLabel\"\r\n [enableIncludeChild]=\"dialogData.treeDepartmentConfig.enableIncludeChild\"\r\n [enableTreeSearch]=\"dialogData.treeDepartmentConfig.enableTreeSearch\" [enablePagingSearch]=\"true\"\r\n [isSelectOne]=\"dialogData.modeSelectOneDepartment\" [selectedList]=\"selectedDepartments\"\r\n (onSearchEvent)=\"onSearchDepartmentEvent.emit($event)\"\r\n (onValueChangeEvent)=\"onResultDepartmentChange($event)\"\r\n (selectionNodeChangeEvent)=\"onSelectionNodeDepartmentChange($event)\"\r\n (onPagingSearchEvent)=\"onPaginatorEvent($event, OPTION_ENUM.DEPARTMENT)\">\r\n </qms-select-department-tree>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"optionSelect.value !== null\" class=\"result-wrapper\">\r\n <div class=\"result-selected-container\">\r\n <div [@inOutAnimation] *ngIf=\"(options.length === 1) || (options.length > 1 && optionSelect.value !== null)\"\r\n class=\"header-title result-header\">\r\n <span>\r\n {{\r\n dialogData.titleResult || LANG.RESULTS}}\r\n <span *ngIf=\"options.length === 1 && hasItemSelected()\">\r\n ({{getResultTabActive().length}})\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"result-body\">\r\n <!-- Result Person -->\r\n <ng-container *ngIf=\"checkExistOptionSelect(OPTION_ENUM.PERSON)\"\r\n [ngTemplateOutlet]=\"options?.length == 1 ? listChip : viewResultCollapse\"\r\n [ngTemplateOutletContext]=\"{data:resultAccess.persons, type:OPTION_ENUM.PERSON, title:LANG.PERSON}\">\r\n </ng-container>\r\n <!-- Result User group -->\r\n <ng-container *ngIf=\"checkExistOptionSelect(OPTION_ENUM.USER_GROUP)\"\r\n [ngTemplateOutlet]=\"options?.length == 1 ? listChip : viewResultCollapse\"\r\n [ngTemplateOutletContext]=\"{data:resultAccess.userGroups, type:OPTION_ENUM.USER_GROUP, title:LANG.USER_GROUP}\">\r\n </ng-container>\r\n <!-- Result Department -->\r\n <ng-container *ngIf=\"checkExistOptionSelect(OPTION_ENUM.DEPARTMENT)\"\r\n [ngTemplateOutlet]=\"options?.length == 1 ? listChip : viewResultCollapse\"\r\n [ngTemplateOutletContext]=\"{data: resultAccess.departments, type:OPTION_ENUM.DEPARTMENT, title:LANG.DEPARTMENT}\">\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <mat-divider class=\"mx-auto\"></mat-divider>\r\n <div qms-dialog-footer class=\"confirm__button__groups\" [class.none-option]=\"optionSelect.value === null\">\r\n <button *ngIf=\"optionSelect.value !== null\" [disabled]=\"!hasItemSelected()\" class=\"btn-add\"\r\n [class.qms-btn-disabled]=\"!hasItemSelected()\" [mat-dialog-close]=\"resultAccess\" qms-btn>\r\n <span>{{LANG.ADD}}</span>\r\n </button>\r\n <button qms-btn-text mat-dialog-close>\r\n {{LANG.CANCEL}}\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<!-- Template -->\r\n<ng-template #noResult>\r\n <svg width=\"89\" height=\"130\" viewBox=\"0 0 89 88\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.5\" width=\"88\" height=\"88\" rx=\"44\" fill=\"white\" />\r\n <rect x=\"0.5\" width=\"88\" height=\"88\" rx=\"44\" fill=\"#0163B2\" fill-opacity=\"0.12\" />\r\n <path\r\n d=\"M44.5 56.6936L58.096 64.8996L54.488 49.4336L66.5 39.0276L50.682 37.6856L44.5 23.0996L38.318 37.6856L22.5 39.0276L34.512 49.4336L30.904 64.8996L44.5 56.6936Z\"\r\n fill=\"#0163B3\" />\r\n <text x=\"10\" y=\"105\" fill=\"#0163B2\">{{LANG.NO_RESULT}}</text>\r\n </svg>\r\n</ng-template>\r\n\r\n<!-- Template list chip -->\r\n<ng-template #listChip let-data=\"data\" let-type=\"type\">\r\n <mat-chip-list [@inOutAnimation] *ngIf=\"data?.length\" lass=\"panel__item qms-scrollbar\">\r\n <div [@inOutAnimation_2] *ngFor=\"let item of data; let i = index\">\r\n <mat-chip (click)=\"onScollToNodeTreeDepartment(item)\" [@updateItemAnimation]\r\n *qmsContentChanges=\"item.children?.length\" class=\"chip-item-result\" [qms-tool-tip]=\"generateTootip(item)\"\r\n position=\"top\" mode=\"dark\" qms-chip [removable]=\"true\">\r\n <span qms-chip-body>\r\n <span qms-elipsify mode=\"dark\" position=\"top\" class=\"text-label\">\r\n {{item.name}}\r\n <span *ngIf=\"item.subName\">({{ item.subName }})</span>\r\n </span>\r\n <span class=\"chip-item-children__count ms-1\" *ngIf=\"item?.children && item?.isGroup\">\r\n {{item.children.length}}/{{item.childCount}}\r\n </span>\r\n </span>\r\n <mat-icon (click)=\"onRemoveChip(type,item, i)\" class=\"remove-chip-icon\">cancel</mat-icon>\r\n </mat-chip>\r\n </div>\r\n </mat-chip-list>\r\n</ng-template>\r\n\r\n<!-- Template result with collapse -->\r\n<ng-template #viewResultCollapse let-title=\"title\" let-data=\"data\" let-type=\"type\">\r\n <mat-expansion-panel qms-expansion [expanded]=\"optionSelect.value === type\">\r\n <mat-expansion-panel-header>\r\n <div class=\"title-content\">\r\n <div class=\"qms-list-text\">\r\n <div qms-line color=\"default-subtitle\">{{title}}\r\n <span class=\"fw-600\">\r\n ({{data?.length}})\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </mat-expansion-panel-header>\r\n <ng-container [ngTemplateOutlet]=\"listChip\" [ngTemplateOutletContext]=\"{data: data,type: type}\">\r\n </ng-container>\r\n </mat-expansion-panel>\r\n</ng-template>\r\n\r\n<!-- Template row without checkbox -->\r\n<ng-template #itemWithoutCheckboxTemplate let-item=\"item\" let-type=\"type\">\r\n <div (click)=\"onSelectItem(type,item)\" class=\"item-without-checkbox w-100\" [class.active]=\"item.selected\">\r\n <div class=\"item-content\">\r\n <div class=\"text-label\">\r\n <span class=\"text-label label-item fs-14 \">\r\n {{ item.name }}\r\n </span>\r\n <span *ngIf=\"item.subName\" class=\"ms-1 sub-label\">({{item.subName}})</span>\r\n </div>\r\n <small *ngIf=\"item.helpText\" class=\"text-help px-1 fs-12 sub-label\">{{ item.helpText }}</small>\r\n </div>\r\n <div class=\"item-state\">\r\n <mat-icon [@inOutAnimation] *ngIf=\"item.selected\">check</mat-icon>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<!-- Template checkbox -->\r\n<ng-template #itemCheckboxTemplate let-item=\"item\" let-type=\"type\">\r\n <mat-checkbox [checked]=\"item.selected\" (click)=\"onSelectItem(type,item)\" class=\"w-100\" color=\"default\"\r\n qms-group-options>\r\n <div class=\"text-label\">\r\n <span class=\"text-label label-item fs-14 \">\r\n {{ item.name }}\r\n </span>\r\n <span *ngIf=\"item.subName\" class=\"ms-1 sub-label\">({{item.subName}})</span>\r\n </div>\r\n <small *ngIf=\"item.helpText\" class=\"text-help px-1 fs-12 sub-label\">{{ item.helpText }}</small>\r\n </mat-checkbox>\r\n</ng-template>\r\n\r\n<!-- Template loading -->\r\n<ng-template #loading>\r\n <div class=\"loading-container\">\r\n <div class=\"loader\" *ngFor=\"let item of arrSkeleton\">\r\n <div class=\"loader__wrapper\">\r\n <div class=\"row-loader\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-template>\r\n",
30333
30577
  animations: [SelectAccessAnimationTrigger],
30334
30578
  providers: [
30335
30579
  {
@@ -30338,7 +30582,7 @@ QMSSelectAccessDialogComponent.decorators = [
30338
30582
  }
30339
30583
  ],
30340
30584
  encapsulation: ViewEncapsulation.None,
30341
- styles: ["@charset \"UTF-8\";@font-face{font-family:icomoon;src:url(../assets/fonts/icomoon.eot?aghldx);src:url(../assets/fonts/icomoon.eot?aghldx#iefix) format(\"embedded-opentype\"),url(../assets/fonts/icomoon.ttf?aghldx) format(\"truetype\"),url(../assets/fonts/icomoon.woff?aghldx) format(\"woff\"),url(../assets/fonts/icomoon.svg?aghldx#icomoon) format(\"svg\");font-weight:400;font-style:normal;font-display:block}[class*=\" icon-\"],[class^=icon-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-feature-settings:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-acutely-toxic .path1:before{content:\"\uE91B\";color:#e32730}.icon-acutely-toxic .path2:before{content:\"\uE922\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path3:before{content:\"\uE923\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path4:before{content:\"\uE924\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path5:before{content:\"\uE925\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path6:before{content:\"\uE926\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path7:before{content:\"\uE927\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path8:before{content:\"\uE928\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path9:before{content:\"\uE929\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path10:before{content:\"\uE92A\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path11:before{content:\"\uE92B\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path12:before{content:\"\uE92C\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path13:before{content:\"\uE92D\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path14:before{content:\"\uE92E\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path15:before{content:\"\uE92F\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path16:before{content:\"\uE930\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path17:before{content:\"\uE931\";margin-left:-1em;color:#323232}.icon-add-column:before{content:\"\uE932\"}.icon-add-tooltip:before{content:\"\uE933\"}.icon-admin:before{content:\"\uE934\"}.icon-annual-cycle:before{content:\"\uE935\"}.icon-assignment-repete:before{content:\"\uE936\"}.icon-barrier-add:before{content:\"\uE937\"}.icon-barrier-edit:before{content:\"\uE938\"}.icon-barrier-view:before{content:\"\uE939\"}.icon-button-group:before{content:\"\uE93A\"}.icon-chemical-manager:before{content:\"\uE93B\"}.icon-chronic-health-hazard .path1:before{content:\"\uE93C\";color:#e32730}.icon-chronic-health-hazard .path2:before{content:\"\uE93D\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path3:before{content:\"\uE93E\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path4:before{content:\"\uE93F\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path5:before{content:\"\uE940\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path6:before{content:\"\uE941\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path7:before{content:\"\uE942\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path8:before{content:\"\uE943\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path9:before{content:\"\uE944\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path10:before{content:\"\uE945\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path11:before{content:\"\uE946\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path12:before{content:\"\uE947\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path13:before{content:\"\uE948\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path14:before{content:\"\uE949\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path15:before{content:\"\uE94A\";margin-left:-1em;color:#323232}.icon-contingency:before{content:\"\uE94B\"}.icon-corrosive .path1:before{content:\"\uE94C\";color:#323232}.icon-corrosive .path2:before{content:\"\uE94D\";margin-left:-1em;color:#323232}.icon-corrosive .path3:before{content:\"\uE94E\";margin-left:-1em;color:#323232}.icon-corrosive .path4:before{content:\"\uE94F\";margin-left:-1em;color:#323232}.icon-corrosive .path5:before{content:\"\uE950\";margin-left:-1em;color:#323232}.icon-corrosive .path6:before{content:\"\uE951\";margin-left:-1em;color:#323232}.icon-corrosive .path7:before{content:\"\uE952\";margin-left:-1em;color:#323232}.icon-corrosive .path8:before{content:\"\uE953\";margin-left:-1em;color:#323232}.icon-corrosive .path9:before{content:\"\uE954\";margin-left:-1em;color:#323232}.icon-corrosive .path10:before{content:\"\uE955\";margin-left:-1em;color:#323232}.icon-corrosive .path11:before{content:\"\uE956\";margin-left:-1em;color:#323232}.icon-corrosive .path12:before{content:\"\uE957\";margin-left:-1em;color:#323232}.icon-corrosive .path13:before{content:\"\uE958\";margin-left:-1em;color:#323232}.icon-corrosive .path14:before{content:\"\uE959\";margin-left:-1em;color:#323232}.icon-corrosive .path15:before{content:\"\uE95A\";margin-left:-1em;color:#323232}.icon-corrosive .path16:before{content:\"\uE95B\";margin-left:-1em;color:#323232}.icon-corrosive .path17:before{content:\"\uE95C\";margin-left:-1em;color:#323232}.icon-corrosive .path18:before{content:\"\uE95D\";margin-left:-1em;color:#323232}.icon-corrosive .path19:before{content:\"\uE95E\";margin-left:-1em;color:#323232}.icon-corrosive .path20:before{content:\"\uE95F\";margin-left:-1em;color:#323232}.icon-corrosive .path21:before{content:\"\uE960\";margin-left:-1em;color:#e32730}.icon-dashboard:before{content:\"\uE961\"}.icon-database-sds:before{content:\"\uE962\"}.icon-description-add:before{content:\"\uE963\"}.icon-description-edit:before{content:\"\uE964\"}.icon-description-view:before{content:\"\uE965\";color:#666}.icon-document-read .path1:before{content:\"\uE966\";color:#000;opacity:.6}.icon-document-read .path2:before{content:\"\uE967\";margin-left:-1em;color:#fff}.icon-document-read .path3:before{content:\"\uE968\";margin-left:-1em;color:#000;opacity:.6}.icon-draft:before{content:\"\uE969\"}.icon-expired-off:before{content:\"\uE96A\"}.icon-expired-on:before{content:\"\uE96B\"}.icon-explosive .path1:before{content:\"\uE96C\";color:#e32730}.icon-explosive .path2:before{content:\"\uE96D\";margin-left:-1em;color:#323232}.icon-explosive .path3:before{content:\"\uE96E\";margin-left:-1em;color:#323232}.icon-explosive .path4:before{content:\"\uE96F\";margin-left:-1em;color:#323232}.icon-explosive .path5:before{content:\"\uE970\";margin-left:-1em;color:#323232}.icon-explosive .path6:before{content:\"\uE971\";margin-left:-1em;color:#323232}.icon-explosive .path7:before{content:\"\uE972\";margin-left:-1em;color:#323232}.icon-explosive .path8:before{content:\"\uE973\";margin-left:-1em;color:#323232}.icon-explosive .path9:before{content:\"\uE974\";margin-left:-1em;color:#323232}.icon-explosive .path10:before{content:\"\uE975\";margin-left:-1em;color:#323232}.icon-explosive .path11:before{content:\"\uE976\";margin-left:-1em;color:#323232}.icon-explosive .path12:before{content:\"\uE977\";margin-left:-1em;color:#323232}.icon-explosive .path13:before{content:\"\uE978\";margin-left:-1em;color:#323232}.icon-explosive .path14:before{content:\"\uE979\";margin-left:-1em;color:#323232}.icon-explosive .path15:before{content:\"\uE97A\";margin-left:-1em;color:#323232}.icon-explosive .path16:before{content:\"\uE97B\";margin-left:-1em;color:#323232}.icon-explosive .path17:before{content:\"\uE97C\";margin-left:-1em;color:#323232}.icon-explosive .path18:before{content:\"\uE97D\";margin-left:-1em;color:#323232}.icon-explosive .path19:before{content:\"\uE97E\";margin-left:-1em;color:#323232}.icon-explosive .path20:before{content:\"\uE97F\";margin-left:-1em;color:#323232}.icon-explosive .path21:before{content:\"\uE980\";margin-left:-1em;color:#323232}.icon-explosive .path22:before{content:\"\uE981\";margin-left:-1em;color:#323232}.icon-explosive .path23:before{content:\"\uE982\";margin-left:-1em;color:#323232}.icon-explosive .path24:before{content:\"\uE983\";margin-left:-1em;color:#323232}.icon-explosive .path25:before{content:\"\uE984\";margin-left:-1em;color:#323232}.icon-explosive .path26:before{content:\"\uE985\";margin-left:-1em;color:#323232}.icon-explosive .path27:before{content:\"\uE986\";margin-left:-1em;color:#323232}.icon-explosive .path28:before{content:\"\uE987\";margin-left:-1em;color:#323232}.icon-explosive .path29:before{content:\"\uE988\";margin-left:-1em;color:#323232}.icon-explosive .path30:before{content:\"\uE989\";margin-left:-1em;color:#323232}.icon-explosive .path31:before{content:\"\uE98A\";margin-left:-1em;color:#323232}.icon-explosive .path32:before{content:\"\uE98B\";margin-left:-1em;color:#323232}.icon-explosive .path33:before{content:\"\uE98C\";margin-left:-1em;color:#323232}.icon-explosive .path34:before{content:\"\uE98D\";margin-left:-1em;color:#323232}.icon-explosive .path35:before{content:\"\uE98E\";margin-left:-1em;color:#323232}.icon-explosive .path36:before{content:\"\uE98F\";margin-left:-1em;color:#323232}.icon-explosive .path37:before{content:\"\uE990\";margin-left:-1em;color:#323232}.icon-explosive .path38:before{content:\"\uE991\";margin-left:-1em;color:#323232}.icon-explosive .path39:before{content:\"\uE992\";margin-left:-1em;color:#323232}.icon-explosive .path40:before{content:\"\uE993\";margin-left:-1em;color:#323232}.icon-explosive .path41:before{content:\"\uE994\";margin-left:-1em;color:#323232}.icon-explosive .path42:before{content:\"\uE995\";margin-left:-1em;color:#323232}.icon-explosive .path43:before{content:\"\uE996\";margin-left:-1em;color:#323232}.icon-explosive .path44:before{content:\"\uE997\";margin-left:-1em;color:#323232}.icon-explosive .path45:before{content:\"\uE998\";margin-left:-1em;color:#323232}.icon-explosive .path46:before{content:\"\uE999\";margin-left:-1em;color:#323232}.icon-file-excel:before{content:\"\uE99A\"}.icon-file-pdf:before{content:\"\uE99B\"}.icon-file-pdf-verified .path1:before{content:\"\uE99C\";color:#000;opacity:.6}.icon-file-pdf-verified .path2:before{content:\"\uE99D\";margin-left:-1em;color:#fff}.icon-file-pdf-verified .path3:before{content:\"\uE99E\";margin-left:-1em;color:#000;opacity:.6}.icon-file-word:before{content:\"\uE99F\"}.icon-filter-alt:before{content:\"\uE9A0\"}.icon-flammable .path1:before{content:\"\uE9A1\";color:#323232}.icon-flammable .path2:before{content:\"\uE9A2\";margin-left:-1em;color:#323232}.icon-flammable .path3:before{content:\"\uE9A3\";margin-left:-1em;color:#e32730}.icon-gas-under-pressure .path1:before{content:\"\uE9A4\";color:#323232}.icon-gas-under-pressure .path2:before{content:\"\uE9A5\";margin-left:-1em;color:#e32730}.icon-health-hazard .path1:before{content:\"\uE9A6\";color:#323232}.icon-health-hazard .path2:before{content:\"\uE9A7\";margin-left:-1em;color:#e32730}.icon-line-break:before{content:\"\uE9A8\"}.icon-location:before{content:\"\uE9A9\"}.icon-measure-add:before{content:\"\uE9AA\"}.icon-measure-edit:before{content:\"\uE9AB\"}.icon-measure-view:before{content:\"\uE9AC\";color:#666}.icon-messages:before{content:\"\uE9AD\"}.icon-monitoring:before{content:\"\uE9AE\";color:#666}.icon-move:before{content:\"\uE9AF\"}.icon-oxidizing .path1:before{content:\"\uE9B0\";color:#e32730}.icon-oxidizing .path2:before{content:\"\uE9B1\";margin-left:-1em;color:#323232}.icon-oxidizing .path3:before{content:\"\uE9B2\";margin-left:-1em;color:#323232}.icon-oxidizing .path4:before{content:\"\uE9B3\";margin-left:-1em;color:#323232}.icon-process-area-closed:before{content:\"\uE9B4\"}.icon-process-area-open:before{content:\"\uE9B5\"}.icon-process-linked .path1:before{content:\"\uE9B6\";color:#000;opacity:.6}.icon-process-linked .path2:before{content:\"\uE9B7\";margin-left:-1em;color:#666}.icon-risk:before{content:\"\uE9B8\"}.icon-search-in-file:before{content:\"\uE9B9\"}.icon-sort-ascending:before{content:\"\uE9BA\"}.icon-sort-descending:before{content:\"\uE9BB\"}.icon-subscript:before{content:\"\uE9BC\"}.icon-superscript:before{content:\"\uE9BD\"}.icon-syncronice-favorites:before{content:\"\uE9BE\"}.icon-system-settings:before{content:\"\uE9BF\"}.icon-view-three-outlined:before{content:\"\uE9C0\"}.icon-workplace-safety:before{content:\"\uE9C1\"}.icon-checklist:before{content:\"\uE900\"}.icon-department-document .path1:before{content:\"\uE901\";color:#000;opacity:.6}.icon-department-document .path2:before{content:\"\uE902\";margin-left:-1em;color:#00804c}.icon-department-folder-closed .path1:before{content:\"\uE903\";color:#000;opacity:.6}.icon-department-folder-closed .path2:before{content:\"\uE904\";margin-left:-1em;color:#00804c}.icon-department-folder-open .path1:before{content:\"\uE905\";color:#000;opacity:.6}.icon-department-folder-open .path2:before{content:\"\uE906\";margin-left:-1em;color:#00804c}.icon-deviation:before{content:\"\uE907\"}.icon-dropdown-folder .path1:before{content:\"\uE908\";color:#00324e}.icon-dropdown-folder .path2:before{content:\"\uE909\";margin-left:-1em;color:#fff;opacity:.6}.icon-enterprise-document .path1:before{content:\"\uE90A\";color:#000;opacity:.6}.icon-enterprise-document .path2:before{content:\"\uE90B\";margin-left:-1em;color:#cf4714}.icon-enterprise-folder-closed .path1:before{content:\"\uE90C\";color:#000;opacity:.6}.icon-enterprise-folder-closed .path2:before{content:\"\uE90D\";margin-left:-1em;color:#cf4714}.icon-enterprise-folder-open .path1:before{content:\"\uE90E\";color:#000;opacity:.6}.icon-enterprise-folder-open .path2:before{content:\"\uE90F\";margin-left:-1em;color:#cf4714}.icon-folder-closed:before{content:\"\uE910\"}.icon-folder-open:before{content:\"\uE911\"}.icon-keyboard_arrow_down:before{content:\"\uE912\"}.icon-keyboard_arrow_up:before{content:\"\uE913\"}.icon-local-document .path1:before{content:\"\uE914\";color:#000;opacity:.6}.icon-local-document .path2:before{content:\"\uE915\";margin-left:-1em;color:#1954a9}.icon-local-folder-closed .path1:before{content:\"\uE916\";color:#000;opacity:.6}.icon-local-folder-closed .path2:before{content:\"\uE917\";margin-left:-1em;color:#1954a9}.icon-local-folder-open .path1:before{content:\"\uE918\";color:#000;opacity:.6}.icon-local-folder-open .path2:before{content:\"\uE919\";margin-left:-1em;color:#1954a9}.icon-process:before{content:\"\uE91A\"}.icon-regional-document .path1:before{content:\"\uE91C\";color:#000;opacity:.6}.icon-regional-document .path2:before{content:\"\uE91D\";margin-left:-1em;color:#662e0d}.icon-regional-folder-closed .path1:before{content:\"\uE91E\";color:#000;opacity:.6}.icon-regional-folder-closed .path2:before{content:\"\uE91F\";margin-left:-1em;color:#662e0d}.icon-regional-folder-open .path1:before{content:\"\uE920\";color:#000;opacity:.6}.icon-regional-folder-open .path2:before{content:\"\uE921\";margin-left:-1em;color:#662e0d}.select-access-dialog-container{font-family:Open Sans}.select-access-dialog-container .mat-expansion-panel .mat-expansion-panel-body{padding-top:0!important}.select-access-dialog-container .mat-expansion-panel-header{font-size:12px!important;font-weight:800!important}.select-access-dialog-container .w-100{width:100%}.select-access-dialog-container .h-100{height:100%}.select-access-dialog-container .pointer{cursor:pointer}.select-access-dialog-container .fw-600{font-weight:600}.select-access-dialog-container .label-item{font-weight:600;color:var(--ws-text-primary)}.select-access-dialog-container .sub-label{color:var(--ws-text-secondary)}.select-access-dialog-container .fs-14{font-size:14px}.select-access-dialog-container .fs-12{font-size:12px}.select-access-dialog-container .color-primary{color:var(--primary-light)!important}.select-access-dialog-container .header-title{font-weight:600;color:var(--ws-text-primary);font-size:16px}.select-access-dialog-container .chip-item-result{max-width:250px}.select-access-dialog-container .chip-item-result.item-department .qms-chip-body{display:flex;justify-content:center;align-items:center}.select-access-dialog-container .remove-chip-icon{color:rgba(0,0,0,.3);cursor:pointer}.select-access-dialog-container .remove-chip-icon:hover{color:rgba(0,0,0,.7)}.select-access-dialog-container .mat-form-field-wrapper{padding-bottom:5px!important}.select-access-dialog-container .mat-expansion-panel{border-radius:unset!important}.select-access-dialog-container .mat-expansion-panel-header:not([aria-disabled=true]){background:unset}.select-access-dialog-container .mat-expansion-panel.mat-expanded .mat-expansion-panel-header{background:#e5eefb}.select-access-dialog-container .mat-expansion-panel.mat-expanded .mat-expansion-panel-header .qms-line{color:var(--primary-light)!important}.select-access-dialog-container .access-dialog-header{display:flex;justify-content:space-between;align-items:center}.select-access-dialog-container .access-dialog-wraper{width:100%}.select-access-dialog-container .access-dialog-wraper .field-select-option .mat-form-field-wrapper{padding-bottom:16px!important}.select-access-dialog-container .access-dialog-wraper .field-select-option .mat-form-field-underline{bottom:16px!important}.select-access-dialog-container .mat-chip-list-wrapper{margin:unset!important}.select-access-dialog-container .result-selected-container{max-height:175px;overflow-y:auto;padding-right:4px}.select-access-dialog-container .item-list-wrapper{max-height:28vh;padding:4px 4px 4px 0;overflow-y:auto}.select-access-dialog-container .item-list-wrapper.no-result{height:28vh;display:flex;justify-content:center;align-items:center}.select-access-dialog-container .item-list-wrapper .item{min-height:40px}.select-access-dialog-container .item-list-wrapper .item-without-checkbox{min-height:45px;display:flex;justify-content:space-between;align-items:center;padding:4px 8px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;border-radius:4px;transition:background .3s ease}.select-access-dialog-container .item-list-wrapper .item-without-checkbox.active{background:var(--primary-light-12-opacity)}.select-access-dialog-container .item-list-wrapper .item-without-checkbox:hover{background:var(--primary-light-6-opacity)}.select-access-dialog-container .item-list-wrapper .item-without-checkbox .mat-icon{color:var(--primary-light)!important}.select-access-dialog-container .confirm__button__groups .btn-add>.qms-btn-wrapper{display:flex;justify-content:center;align-items:center}.select-access-dialog-container .option-selected-content .group-filter-person-option{display:flex;flex-direction:row-reverse;justify-content:center;align-items:center;grid-gap:8px;gap:8px}.select-access-dialog-container span.chip-item__content_name{display:inline-block;max-width:175px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.select-access-dialog-container span.chip-item-children__count{font-size:.75rem;color:rgba(0,0,0,.5);font-weight:600}.select-access-dialog-container .mat-slide-toggle.qms-group-options{padding:unset!important}.select-access-dialog-container .input-option-filter .mat-form-field-wrapper{padding-bottom:8px!important}.select-access-dialog-container .input-option-filter .mat-form-field-underline{bottom:8px!important}.select-access-dialog-container .slide-toggle{margin-bottom:8px}.select-access-dialog-container .confirm__button__groups.none-option{margin-top:85px}.select-access-dialog-container .btn-icon-clear{position:relative;padding:0 1rem}.select-access-dialog-container .btn-icon-clear .qms-btn-icon{margin-right:unset!important}.select-access-dialog-container .btn-icon-clear:after{position:absolute;content:\"\";left:0;top:0;height:100%;width:1px;background:rgba(0,0,0,.3)}.select-access-dialog-container .qms-paginator .mat-icon{display:flex;align-items:center;justify-content:center}.select-access-dialog-container .qms-paginator .mat-form-field-wrapper{padding-bottom:0}.select-access-dialog-container .qms-paginator .mat-paginator-container{min-height:40px}.select-access-dialog-container .qms-paginator .mat-paginator-container .qms-total-result{margin-bottom:2px;margin-right:12px;height:30px}.select-access-dialog-container .qms-paginator .mat-paginator-container .qms-total-result span{font-weight:600;font-size:13px;color:rgba(0,0,0,.8)}.select-access-dialog-container .qms-paginator .mat-paginator-container .qms-paginator-range-actions{margin-bottom:0;grid-column-gap:2px;-moz-column-gap:2px;column-gap:2px}.select-access-dialog-container .qms-paginator .mat-paginator-container .qms-paginator-range-actions>.qms-total-result{margin-bottom:0}.select-access-dialog-container .qms-paginator>.qms-btn-icon-wrapper{width:30px;height:30px;display:flex;justify-content:center;align-items:center}.select-access-dialog-container .qms-paginator .qms-paginator-page-size{margin-right:12px}.select-access-dialog-container .qms-paginator .qms-paginator-page-size>.qms-pagesize-label{display:none}.select-access-dialog-container .qms-paginator .qms-paginator-page-size>.qms-form-page-size .mat-form-field-flex{width:60px!important;height:30px;display:flex;align-items:center;padding:0 4px}.select-access-dialog-container .qms-paginator .qms-paginator-page-size>.qms-form-page-size .mat-form-field-flex .mat-form-field-infix{height:30px}.select-access-dialog-container .qms-paginator .mat-form-field.qms-form .mat-select-min-line,.select-access-dialog-container .qms-paginator .mat-form-field.qms-form mat-select-trigger{font-size:14px}.select-access-dialog-container .qms-paginator .mat-select-value{text-align:center}.select-access-dialog-container .mat-checkbox.checkbox-all .mat-checkbox-label{flex-direction:row!important;align-items:center!important;grid-column-gap:4px!important;-moz-column-gap:4px!important;column-gap:4px!important}.select-access-dialog-container .mat-expansion-panel.qms-expansion{margin:0!important}.select-access-dialog-container .qms-btn-icon{width:30px!important;height:30px!important;line-height:30px!important}.select-access-dialog-container .loading-container{height:25vh;display:grid;grid-template-rows:repeat(auto-fill,minmax(60px,60px))}.select-access-dialog-container .loading-container .loader{position:relative;width:100%;height:100%;padding:10px 0;overflow:hidden}.select-access-dialog-container .loading-container .loader:after{content:\"\";position:absolute;width:100%;height:100%;top:0;left:0;background:linear-gradient(110deg,hsla(0,0%,91%,0),hsla(0,0%,89%,0) 40%,hsla(0,0%,89%,.5) 50%,hsla(0,0%,89%,0) 60%,hsla(0,0%,89%,0));-webkit-animation:animate-loading 1.2s linear infinite;animation:animate-loading 1.2s linear infinite}.select-access-dialog-container .loading-container .loader__wrapper{position:relative;width:100%;height:100%}.select-access-dialog-container .loading-container .loader__wrapper .row-loader{background-color:#eee;position:absolute;left:0;width:100%;height:40px;overflow:hidden}@-webkit-keyframes animate-loading{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}@keyframes animate-loading{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}"]
30585
+ styles: ["@charset \"UTF-8\";@font-face{font-family:icomoon;src:url(../assets/fonts/icomoon.eot?aghldx);src:url(../assets/fonts/icomoon.eot?aghldx#iefix) format(\"embedded-opentype\"),url(../assets/fonts/icomoon.ttf?aghldx) format(\"truetype\"),url(../assets/fonts/icomoon.woff?aghldx) format(\"woff\"),url(../assets/fonts/icomoon.svg?aghldx#icomoon) format(\"svg\");font-weight:400;font-style:normal;font-display:block}[class*=\" icon-\"],[class^=icon-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-feature-settings:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-acutely-toxic .path1:before{content:\"\uE91B\";color:#e32730}.icon-acutely-toxic .path2:before{content:\"\uE922\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path3:before{content:\"\uE923\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path4:before{content:\"\uE924\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path5:before{content:\"\uE925\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path6:before{content:\"\uE926\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path7:before{content:\"\uE927\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path8:before{content:\"\uE928\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path9:before{content:\"\uE929\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path10:before{content:\"\uE92A\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path11:before{content:\"\uE92B\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path12:before{content:\"\uE92C\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path13:before{content:\"\uE92D\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path14:before{content:\"\uE92E\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path15:before{content:\"\uE92F\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path16:before{content:\"\uE930\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path17:before{content:\"\uE931\";margin-left:-1em;color:#323232}.icon-add-column:before{content:\"\uE932\"}.icon-add-tooltip:before{content:\"\uE933\"}.icon-admin:before{content:\"\uE934\"}.icon-annual-cycle:before{content:\"\uE935\"}.icon-assignment-repete:before{content:\"\uE936\"}.icon-barrier-add:before{content:\"\uE937\"}.icon-barrier-edit:before{content:\"\uE938\"}.icon-barrier-view:before{content:\"\uE939\"}.icon-button-group:before{content:\"\uE93A\"}.icon-chemical-manager:before{content:\"\uE93B\"}.icon-chronic-health-hazard .path1:before{content:\"\uE93C\";color:#e32730}.icon-chronic-health-hazard .path2:before{content:\"\uE93D\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path3:before{content:\"\uE93E\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path4:before{content:\"\uE93F\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path5:before{content:\"\uE940\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path6:before{content:\"\uE941\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path7:before{content:\"\uE942\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path8:before{content:\"\uE943\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path9:before{content:\"\uE944\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path10:before{content:\"\uE945\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path11:before{content:\"\uE946\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path12:before{content:\"\uE947\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path13:before{content:\"\uE948\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path14:before{content:\"\uE949\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path15:before{content:\"\uE94A\";margin-left:-1em;color:#323232}.icon-contingency:before{content:\"\uE94B\"}.icon-corrosive .path1:before{content:\"\uE94C\";color:#323232}.icon-corrosive .path2:before{content:\"\uE94D\";margin-left:-1em;color:#323232}.icon-corrosive .path3:before{content:\"\uE94E\";margin-left:-1em;color:#323232}.icon-corrosive .path4:before{content:\"\uE94F\";margin-left:-1em;color:#323232}.icon-corrosive .path5:before{content:\"\uE950\";margin-left:-1em;color:#323232}.icon-corrosive .path6:before{content:\"\uE951\";margin-left:-1em;color:#323232}.icon-corrosive .path7:before{content:\"\uE952\";margin-left:-1em;color:#323232}.icon-corrosive .path8:before{content:\"\uE953\";margin-left:-1em;color:#323232}.icon-corrosive .path9:before{content:\"\uE954\";margin-left:-1em;color:#323232}.icon-corrosive .path10:before{content:\"\uE955\";margin-left:-1em;color:#323232}.icon-corrosive .path11:before{content:\"\uE956\";margin-left:-1em;color:#323232}.icon-corrosive .path12:before{content:\"\uE957\";margin-left:-1em;color:#323232}.icon-corrosive .path13:before{content:\"\uE958\";margin-left:-1em;color:#323232}.icon-corrosive .path14:before{content:\"\uE959\";margin-left:-1em;color:#323232}.icon-corrosive .path15:before{content:\"\uE95A\";margin-left:-1em;color:#323232}.icon-corrosive .path16:before{content:\"\uE95B\";margin-left:-1em;color:#323232}.icon-corrosive .path17:before{content:\"\uE95C\";margin-left:-1em;color:#323232}.icon-corrosive .path18:before{content:\"\uE95D\";margin-left:-1em;color:#323232}.icon-corrosive .path19:before{content:\"\uE95E\";margin-left:-1em;color:#323232}.icon-corrosive .path20:before{content:\"\uE95F\";margin-left:-1em;color:#323232}.icon-corrosive .path21:before{content:\"\uE960\";margin-left:-1em;color:#e32730}.icon-dashboard:before{content:\"\uE961\"}.icon-database-sds:before{content:\"\uE962\"}.icon-description-add:before{content:\"\uE963\"}.icon-description-edit:before{content:\"\uE964\"}.icon-description-view:before{content:\"\uE965\";color:#666}.icon-document-read .path1:before{content:\"\uE966\";color:#000;opacity:.6}.icon-document-read .path2:before{content:\"\uE967\";margin-left:-1em;color:#fff}.icon-document-read .path3:before{content:\"\uE968\";margin-left:-1em;color:#000;opacity:.6}.icon-draft:before{content:\"\uE969\"}.icon-expired-off:before{content:\"\uE96A\"}.icon-expired-on:before{content:\"\uE96B\"}.icon-explosive .path1:before{content:\"\uE96C\";color:#e32730}.icon-explosive .path2:before{content:\"\uE96D\";margin-left:-1em;color:#323232}.icon-explosive .path3:before{content:\"\uE96E\";margin-left:-1em;color:#323232}.icon-explosive .path4:before{content:\"\uE96F\";margin-left:-1em;color:#323232}.icon-explosive .path5:before{content:\"\uE970\";margin-left:-1em;color:#323232}.icon-explosive .path6:before{content:\"\uE971\";margin-left:-1em;color:#323232}.icon-explosive .path7:before{content:\"\uE972\";margin-left:-1em;color:#323232}.icon-explosive .path8:before{content:\"\uE973\";margin-left:-1em;color:#323232}.icon-explosive .path9:before{content:\"\uE974\";margin-left:-1em;color:#323232}.icon-explosive .path10:before{content:\"\uE975\";margin-left:-1em;color:#323232}.icon-explosive .path11:before{content:\"\uE976\";margin-left:-1em;color:#323232}.icon-explosive .path12:before{content:\"\uE977\";margin-left:-1em;color:#323232}.icon-explosive .path13:before{content:\"\uE978\";margin-left:-1em;color:#323232}.icon-explosive .path14:before{content:\"\uE979\";margin-left:-1em;color:#323232}.icon-explosive .path15:before{content:\"\uE97A\";margin-left:-1em;color:#323232}.icon-explosive .path16:before{content:\"\uE97B\";margin-left:-1em;color:#323232}.icon-explosive .path17:before{content:\"\uE97C\";margin-left:-1em;color:#323232}.icon-explosive .path18:before{content:\"\uE97D\";margin-left:-1em;color:#323232}.icon-explosive .path19:before{content:\"\uE97E\";margin-left:-1em;color:#323232}.icon-explosive .path20:before{content:\"\uE97F\";margin-left:-1em;color:#323232}.icon-explosive .path21:before{content:\"\uE980\";margin-left:-1em;color:#323232}.icon-explosive .path22:before{content:\"\uE981\";margin-left:-1em;color:#323232}.icon-explosive .path23:before{content:\"\uE982\";margin-left:-1em;color:#323232}.icon-explosive .path24:before{content:\"\uE983\";margin-left:-1em;color:#323232}.icon-explosive .path25:before{content:\"\uE984\";margin-left:-1em;color:#323232}.icon-explosive .path26:before{content:\"\uE985\";margin-left:-1em;color:#323232}.icon-explosive .path27:before{content:\"\uE986\";margin-left:-1em;color:#323232}.icon-explosive .path28:before{content:\"\uE987\";margin-left:-1em;color:#323232}.icon-explosive .path29:before{content:\"\uE988\";margin-left:-1em;color:#323232}.icon-explosive .path30:before{content:\"\uE989\";margin-left:-1em;color:#323232}.icon-explosive .path31:before{content:\"\uE98A\";margin-left:-1em;color:#323232}.icon-explosive .path32:before{content:\"\uE98B\";margin-left:-1em;color:#323232}.icon-explosive .path33:before{content:\"\uE98C\";margin-left:-1em;color:#323232}.icon-explosive .path34:before{content:\"\uE98D\";margin-left:-1em;color:#323232}.icon-explosive .path35:before{content:\"\uE98E\";margin-left:-1em;color:#323232}.icon-explosive .path36:before{content:\"\uE98F\";margin-left:-1em;color:#323232}.icon-explosive .path37:before{content:\"\uE990\";margin-left:-1em;color:#323232}.icon-explosive .path38:before{content:\"\uE991\";margin-left:-1em;color:#323232}.icon-explosive .path39:before{content:\"\uE992\";margin-left:-1em;color:#323232}.icon-explosive .path40:before{content:\"\uE993\";margin-left:-1em;color:#323232}.icon-explosive .path41:before{content:\"\uE994\";margin-left:-1em;color:#323232}.icon-explosive .path42:before{content:\"\uE995\";margin-left:-1em;color:#323232}.icon-explosive .path43:before{content:\"\uE996\";margin-left:-1em;color:#323232}.icon-explosive .path44:before{content:\"\uE997\";margin-left:-1em;color:#323232}.icon-explosive .path45:before{content:\"\uE998\";margin-left:-1em;color:#323232}.icon-explosive .path46:before{content:\"\uE999\";margin-left:-1em;color:#323232}.icon-file-excel:before{content:\"\uE99A\"}.icon-file-pdf:before{content:\"\uE99B\"}.icon-file-pdf-verified .path1:before{content:\"\uE99C\";color:#000;opacity:.6}.icon-file-pdf-verified .path2:before{content:\"\uE99D\";margin-left:-1em;color:#fff}.icon-file-pdf-verified .path3:before{content:\"\uE99E\";margin-left:-1em;color:#000;opacity:.6}.icon-file-word:before{content:\"\uE99F\"}.icon-filter-alt:before{content:\"\uE9A0\"}.icon-flammable .path1:before{content:\"\uE9A1\";color:#323232}.icon-flammable .path2:before{content:\"\uE9A2\";margin-left:-1em;color:#323232}.icon-flammable .path3:before{content:\"\uE9A3\";margin-left:-1em;color:#e32730}.icon-gas-under-pressure .path1:before{content:\"\uE9A4\";color:#323232}.icon-gas-under-pressure .path2:before{content:\"\uE9A5\";margin-left:-1em;color:#e32730}.icon-health-hazard .path1:before{content:\"\uE9A6\";color:#323232}.icon-health-hazard .path2:before{content:\"\uE9A7\";margin-left:-1em;color:#e32730}.icon-line-break:before{content:\"\uE9A8\"}.icon-location:before{content:\"\uE9A9\"}.icon-measure-add:before{content:\"\uE9AA\"}.icon-measure-edit:before{content:\"\uE9AB\"}.icon-measure-view:before{content:\"\uE9AC\";color:#666}.icon-messages:before{content:\"\uE9AD\"}.icon-monitoring:before{content:\"\uE9AE\";color:#666}.icon-move:before{content:\"\uE9AF\"}.icon-oxidizing .path1:before{content:\"\uE9B0\";color:#e32730}.icon-oxidizing .path2:before{content:\"\uE9B1\";margin-left:-1em;color:#323232}.icon-oxidizing .path3:before{content:\"\uE9B2\";margin-left:-1em;color:#323232}.icon-oxidizing .path4:before{content:\"\uE9B3\";margin-left:-1em;color:#323232}.icon-process-area-closed:before{content:\"\uE9B4\"}.icon-process-area-open:before{content:\"\uE9B5\"}.icon-process-linked .path1:before{content:\"\uE9B6\";color:#000;opacity:.6}.icon-process-linked .path2:before{content:\"\uE9B7\";margin-left:-1em;color:#666}.icon-risk:before{content:\"\uE9B8\"}.icon-search-in-file:before{content:\"\uE9B9\"}.icon-sort-ascending:before{content:\"\uE9BA\"}.icon-sort-descending:before{content:\"\uE9BB\"}.icon-subscript:before{content:\"\uE9BC\"}.icon-superscript:before{content:\"\uE9BD\"}.icon-syncronice-favorites:before{content:\"\uE9BE\"}.icon-system-settings:before{content:\"\uE9BF\"}.icon-view-three-outlined:before{content:\"\uE9C0\"}.icon-workplace-safety:before{content:\"\uE9C1\"}.icon-checklist:before{content:\"\uE900\"}.icon-department-document .path1:before{content:\"\uE901\";color:#000;opacity:.6}.icon-department-document .path2:before{content:\"\uE902\";margin-left:-1em;color:#00804c}.icon-department-folder-closed .path1:before{content:\"\uE903\";color:#000;opacity:.6}.icon-department-folder-closed .path2:before{content:\"\uE904\";margin-left:-1em;color:#00804c}.icon-department-folder-open .path1:before{content:\"\uE905\";color:#000;opacity:.6}.icon-department-folder-open .path2:before{content:\"\uE906\";margin-left:-1em;color:#00804c}.icon-deviation:before{content:\"\uE907\"}.icon-dropdown-folder .path1:before{content:\"\uE908\";color:#00324e}.icon-dropdown-folder .path2:before{content:\"\uE909\";margin-left:-1em;color:#fff;opacity:.6}.icon-enterprise-document .path1:before{content:\"\uE90A\";color:#000;opacity:.6}.icon-enterprise-document .path2:before{content:\"\uE90B\";margin-left:-1em;color:#cf4714}.icon-enterprise-folder-closed .path1:before{content:\"\uE90C\";color:#000;opacity:.6}.icon-enterprise-folder-closed .path2:before{content:\"\uE90D\";margin-left:-1em;color:#cf4714}.icon-enterprise-folder-open .path1:before{content:\"\uE90E\";color:#000;opacity:.6}.icon-enterprise-folder-open .path2:before{content:\"\uE90F\";margin-left:-1em;color:#cf4714}.icon-folder-closed:before{content:\"\uE910\"}.icon-folder-open:before{content:\"\uE911\"}.icon-keyboard_arrow_down:before{content:\"\uE912\"}.icon-keyboard_arrow_up:before{content:\"\uE913\"}.icon-local-document .path1:before{content:\"\uE914\";color:#000;opacity:.6}.icon-local-document .path2:before{content:\"\uE915\";margin-left:-1em;color:#1954a9}.icon-local-folder-closed .path1:before{content:\"\uE916\";color:#000;opacity:.6}.icon-local-folder-closed .path2:before{content:\"\uE917\";margin-left:-1em;color:#1954a9}.icon-local-folder-open .path1:before{content:\"\uE918\";color:#000;opacity:.6}.icon-local-folder-open .path2:before{content:\"\uE919\";margin-left:-1em;color:#1954a9}.icon-process:before{content:\"\uE91A\"}.icon-regional-document .path1:before{content:\"\uE91C\";color:#000;opacity:.6}.icon-regional-document .path2:before{content:\"\uE91D\";margin-left:-1em;color:#662e0d}.icon-regional-folder-closed .path1:before{content:\"\uE91E\";color:#000;opacity:.6}.icon-regional-folder-closed .path2:before{content:\"\uE91F\";margin-left:-1em;color:#662e0d}.icon-regional-folder-open .path1:before{content:\"\uE920\";color:#000;opacity:.6}.icon-regional-folder-open .path2:before{content:\"\uE921\";margin-left:-1em;color:#662e0d}.select-access-dialog-container{font-family:Open Sans}.select-access-dialog-container .mat-expansion-panel .mat-expansion-panel-body{padding-top:0!important}.select-access-dialog-container .mat-expansion-panel-header{font-size:12px!important;font-weight:800!important}.select-access-dialog-container .w-100{width:100%}.select-access-dialog-container .h-100{height:100%}.select-access-dialog-container .pointer{cursor:pointer}.select-access-dialog-container .fw-600{font-weight:600}.select-access-dialog-container .label-item{font-weight:600;color:var(--ws-text-primary)}.select-access-dialog-container .sub-label{color:var(--ws-text-secondary)}.select-access-dialog-container .fs-14{font-size:14px}.select-access-dialog-container .fs-12{font-size:12px}.select-access-dialog-container .color-primary{color:var(--primary-light)!important}.select-access-dialog-container .header-title{font-weight:600;color:var(--ws-text-primary);font-size:16px}.select-access-dialog-container .chip-item-result{max-width:250px}.select-access-dialog-container .chip-item-result.item-department .qms-chip-body{display:flex;justify-content:center;align-items:center}.select-access-dialog-container .remove-chip-icon{color:rgba(0,0,0,.3);cursor:pointer}.select-access-dialog-container .remove-chip-icon:hover{color:rgba(0,0,0,.7)}.select-access-dialog-container .mat-form-field-wrapper{padding-bottom:5px!important}.select-access-dialog-container .mat-expansion-panel{border-radius:unset!important}.select-access-dialog-container .mat-expansion-panel-header:not([aria-disabled=true]){background:unset}.select-access-dialog-container .mat-expansion-panel.mat-expanded .mat-expansion-panel-header{background:#e5eefb}.select-access-dialog-container .mat-expansion-panel.mat-expanded .mat-expansion-panel-header .qms-line{color:var(--primary-light)!important}.select-access-dialog-container .access-dialog-header{display:flex;justify-content:space-between;align-items:center}.select-access-dialog-container .mat-chip-list-wrapper{margin:unset!important}.select-access-dialog-container .item-list-wrapper{max-height:45vh;padding:4px 4px 4px 0;overflow-y:auto}.select-access-dialog-container .item-list-wrapper.no-result{height:50vh;display:flex;justify-content:center;align-items:center}.select-access-dialog-container .item-list-wrapper .item{min-height:40px}.select-access-dialog-container .item-list-wrapper .item-without-checkbox{min-height:45px;display:flex;justify-content:space-between;align-items:center;padding:4px 8px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;border-radius:4px;transition:background .3s ease}.select-access-dialog-container .item-list-wrapper .item-without-checkbox.active{background:var(--primary-light-12-opacity)}.select-access-dialog-container .item-list-wrapper .item-without-checkbox:hover{background:var(--primary-light-6-opacity)}.select-access-dialog-container .item-list-wrapper .item-without-checkbox .mat-icon{color:var(--primary-light)!important}.select-access-dialog-container .confirm__button__groups .btn-add>.qms-btn-wrapper{display:flex;justify-content:center;align-items:center}.select-access-dialog-container .qms-dialog-content{display:grid;grid-column-gap:8px;-moz-column-gap:8px;column-gap:8px}.select-access-dialog-container .qms-dialog-content.active{grid-template-columns:2fr 1fr}.select-access-dialog-container .qms-dialog-content .access-dialog-wraper .field-select-option .mat-form-field-wrapper{padding-bottom:16px!important}.select-access-dialog-container .qms-dialog-content .access-dialog-wraper .field-select-option .mat-form-field-underline{bottom:16px!important}.select-access-dialog-container .qms-dialog-content .result-wrapper{position:relative;width:100%;margin-left:8px}.select-access-dialog-container .qms-dialog-content .result-wrapper:after{position:absolute;content:\"\";top:0;left:0;background-color:#0000001f;height:100%;width:1px}.select-access-dialog-container .qms-dialog-content .result-selected-container{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;padding:0 8px}.select-access-dialog-container .qms-dialog-content .result-selected-container .result-header{height:51px;display:flex;align-items:center;position:-webkit-sticky;position:sticky;top:0;z-index:10;padding:0!important;background:#fff;margin-bottom:12px}.select-access-dialog-container .qms-dialog-content .result-selected-container .result-header:after{position:absolute;content:\"\";bottom:0;left:0;width:100%;height:1px;background:rgba(0,0,0,.04)}.select-access-dialog-container .qms-dialog-content .result-selected-container .result-header .mat-card-content{height:51px;width:100%;padding-left:4px;display:flex;align-items:center;background-color:rgba(0,0,0,.04)}.select-access-dialog-container .option-selected-content .group-filter-person-option{display:flex;flex-direction:row-reverse;justify-content:center;align-items:center;grid-gap:8px;gap:8px}.select-access-dialog-container span.chip-item__content_name{display:inline-block;max-width:175px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.select-access-dialog-container span.chip-item-children__count{font-size:.75rem;color:rgba(0,0,0,.5);font-weight:600}.select-access-dialog-container .mat-slide-toggle.qms-group-options{padding:unset!important}.select-access-dialog-container .input-option-filter .mat-form-field-wrapper{padding-bottom:8px!important}.select-access-dialog-container .input-option-filter .mat-form-field-underline{bottom:8px!important}.select-access-dialog-container .slide-toggle{margin-bottom:8px}.select-access-dialog-container .confirm__button__groups.none-option{margin-top:85px}.select-access-dialog-container .btn-icon-clear{position:relative;padding:0 1rem}.select-access-dialog-container .btn-icon-clear .qms-btn-icon{margin-right:unset!important}.select-access-dialog-container .btn-icon-clear:after{position:absolute;content:\"\";left:0;top:0;height:100%;width:1px;background:rgba(0,0,0,.3)}.select-access-dialog-container .qms-paginator .mat-icon{display:flex;align-items:center;justify-content:center}.select-access-dialog-container .qms-paginator .qms-btn-icon{width:30px!important;height:30px!important;line-height:30px!important}.select-access-dialog-container .qms-paginator .mat-form-field-wrapper{padding-bottom:0}.select-access-dialog-container .qms-paginator .mat-paginator-container{min-height:40px}.select-access-dialog-container .qms-paginator .mat-paginator-container .qms-total-result{margin-bottom:2px;margin-right:12px;height:30px}.select-access-dialog-container .qms-paginator .mat-paginator-container .qms-total-result span{font-weight:600;font-size:13px;color:rgba(0,0,0,.8)}.select-access-dialog-container .qms-paginator .mat-paginator-container .qms-paginator-range-actions{margin-bottom:0;grid-column-gap:2px;-moz-column-gap:2px;column-gap:2px}.select-access-dialog-container .qms-paginator .mat-paginator-container .qms-paginator-range-actions>.qms-total-result{margin-bottom:0}.select-access-dialog-container .qms-paginator>.qms-btn-icon-wrapper{width:30px!important;height:30px!important;display:flex;justify-content:center;align-items:center}.select-access-dialog-container .qms-paginator .qms-paginator-page-size{margin-right:12px}.select-access-dialog-container .qms-paginator .qms-paginator-page-size>.qms-pagesize-label{display:none}.select-access-dialog-container .qms-paginator .qms-paginator-page-size>.qms-form-page-size .mat-form-field-flex{width:60px!important;height:30px;display:flex;align-items:center;padding:0 4px}.select-access-dialog-container .qms-paginator .qms-paginator-page-size>.qms-form-page-size .mat-form-field-flex .mat-form-field-infix{height:30px}.select-access-dialog-container .qms-paginator .mat-form-field.qms-form .mat-select-min-line,.select-access-dialog-container .qms-paginator .mat-form-field.qms-form mat-select-trigger{font-size:14px}.select-access-dialog-container .qms-paginator .mat-select-value{text-align:center}.select-access-dialog-container .mat-checkbox.checkbox-all .mat-checkbox-label{flex-direction:row!important;align-items:center!important;grid-column-gap:4px!important;-moz-column-gap:4px!important;column-gap:4px!important}.select-access-dialog-container .mat-expansion-panel.qms-expansion{margin:0!important}.select-access-dialog-container .access-department .qms-view-search-result{height:100%!important}.select-access-dialog-container .access-department .qms-view-search-result .result{max-height:calc(100% - 80px)!important}.select-access-dialog-container .access-department .loading-container{height:calc(100% - 40px)!important}.select-access-dialog-container .loading-container{height:50vh;overflow:hidden;display:grid;grid-template-rows:repeat(auto-fill,minmax(60px,60px))}.select-access-dialog-container .loading-container .loader{position:relative;width:100%;height:100%;padding:10px 0;overflow:hidden}.select-access-dialog-container .loading-container .loader:after{content:\"\";position:absolute;width:100%;height:100%;top:0;left:0;background:linear-gradient(110deg,hsla(0,0%,91%,0),hsla(0,0%,89%,0) 40%,hsla(0,0%,89%,.5) 50%,hsla(0,0%,89%,0) 60%,hsla(0,0%,89%,0));-webkit-animation:animate-loading 1.2s linear infinite;animation:animate-loading 1.2s linear infinite}.select-access-dialog-container .loading-container .loader__wrapper{position:relative;width:100%;height:100%}.select-access-dialog-container .loading-container .loader__wrapper .row-loader{background-color:#eee;position:absolute;left:0;width:100%;height:40px;overflow:hidden}@-webkit-keyframes animate-loading{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}@keyframes animate-loading{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}"]
30342
30586
  },] }
30343
30587
  ];
30344
30588
  QMSSelectAccessDialogComponent.ctorParameters = () => [
@@ -30349,9 +30593,11 @@ QMSSelectAccessDialogComponent.ctorParameters = () => [
30349
30593
  { type: ChangeDetectorRef }
30350
30594
  ];
30351
30595
  QMSSelectAccessDialogComponent.propDecorators = {
30352
- tree: [{ type: ViewChild, args: ['treeDepartment', {
30596
+ tree: [{ type: ViewChild, args: ['tree', {
30353
30597
  read: SelectDepartmentTreeComponent
30354
- },] }]
30598
+ },] }],
30599
+ pagingPerson: [{ type: ViewChild, args: ['pagingPerson',] }],
30600
+ pagingUserGroup: [{ type: ViewChild, args: ['pagingUserGroup',] }]
30355
30601
  };
30356
30602
 
30357
30603
  class QMSSelectAccessDialogModule {
@@ -30383,7 +30629,8 @@ QMSSelectAccessDialogModule.decorators = [
30383
30629
  MatSlideToggleModule,
30384
30630
  QMSListModule,
30385
30631
  QmsPaginatorModule,
30386
- MatPaginatorModule
30632
+ MatPaginatorModule,
30633
+ MatCardModule
30387
30634
  ],
30388
30635
  exports: [
30389
30636
  QMSSelectAccessDialogComponent
@@ -30391,6 +30638,9 @@ QMSSelectAccessDialogModule.decorators = [
30391
30638
  },] }
30392
30639
  ];
30393
30640
 
30641
+ class FilterPersonModel {
30642
+ }
30643
+
30394
30644
  /*
30395
30645
  * Public API Surface of qms-angular
30396
30646
  */
@@ -30399,5 +30649,5 @@ QMSSelectAccessDialogModule.decorators = [
30399
30649
  * Generated bundle index. Do not edit.
30400
30650
  */
30401
30651
 
30402
- export { AnimationTreeDepartment, AutocompleteOffDirective, BREADCRUMB_DROPDOWN_ICON, BUTTON_TOGGLE_DEFAULT_OPTIONS, BUTTON_TOGGLE_GROUP, BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR, BannerType, BpmnService, BreadcrumbNode, BreadcrumbType, ButtonToggleChange, CHECKLIST_ICON, CKEditorEventConst, CKEditorModule, CdkDetailRowDirective, ConfirmDialog, DEPARTMENT_FOLDER_ICON, DEPARTMENT_FOLDER_OUTLINED_ICON, DEVIATION_ICON, DOCUMENT_DEPARTMENT_ICON, DOCUMENT_ENTERPRISE_ICON, DOCUMENT_ICON, DOCUMENT_LOCAL_ICON, DOCUMENT_REGIONAL_ICON, DataType$1 as DataType, DateFormatPipe, DepartmentLocationBreadCrumb, DepartmentSearchResultModel, DocumentNodeType$1 as DocumentNodeType, ENTERPRISE_FOLDER_ICON, ENTERPRISE_FOLDER_OUTLINED_ICON, FileErrorType, FileType, FlatNodeNavDrawer, FlowChartConst, FlowchartViewMode, ISelectOneItem, InformationCoverItem, KEYBOARD_DOWN_ICON, KEYBOARD_UP_ICON, LOCAL_FOLDER_ICON, LOCAL_FOLDER_OUTLINED_ICON, LinkAnchor, LinkType, MarginDirective, MfeUtil, ModuleType$1 as ModuleType, NORMAL_FOLDER_ICON, NORMAL_FOLDER_OUTLINED_ICON, NavigatorElementView, NavigatorLinkView, NewTreeComponent, NewTreeModel, OptionSelectAccessEnum, OptionSelectAccessModel, PROCESS_AREA_ICON, PROCESS_AREA_OUTLINED_ICON, PROCESS_ICON, PaginationSize, PopupData, ProtocolType, ProtocolTypeName, QMSAccessItem, QMSAnchor, QMSAppBar, QMSAppIconModule, QMSAttachmentListDirective, QMSBasicTreeComponent, QMSBreadcrumb, QMSBreadcrumbDirectionIconDirective, QMSBreadcrumbItemDirective, QMSBreadcrumbModule, QMSButton, QMSButtonIcon, QMSButtonModule, QMSButtonToggle, QMSButtonToggleGroup, QMSCKEditorBaseComponent, QMSCKEditorBaseService, QMSCKEditorBpmn, QMSCKEditorBpmnApiService, QMSCKEditorBpmnComponent, QMSCKEditorBpmnTemplate, QMSCKEditorComponent, QMSCKEditorConfirmComponent, QMSCKEditorData, QMSCKEditorDialogData, QMSCKEditorDocumentType, QMSCKEditorFlowchart, QMSCKEditorFlowchartService, QMSCKEditorFullscreenComponent, QMSCKEditorGlobalService, QMSCKEditorInjector, QMSCKEditorLinkAnchorDocument, QMSCKEditorLinkComponent, QMSCKEditorLinkService, QMSCKEditorLoadTemplateComponent, QMSCKEditorModule, QMSCKEditorPlugin, QMSCKEditorRelatedComponent, QMSCKEditorRelation, QMSCKEditorSaveAsTemplate, QMSCKEditorTemplate, QMSCKEditorTemplateService, QMSCKEditorToastService, QMSCKEditorTreeComponent, QMSCKEdtiorInputData, QMSChipBodyDirective, QMSChipInputChipListDirective, QMSChipInputDirective, QMSChipInputSelectDropDownDirective, QMSChipInputSelectFieldDirective, QMSChipInputSelectTriggerDirective, QMSCollapseGroupDirective, QMSComment, QMSConfirmDialog, QMSDialogConfig, QMSDialogContainer, QMSDialogContainerV2, QMSDialogContent, QMSDialogFooter, QMSDialogHeader, QMSDrawerContentDirective, QMSDrawerDirective, QMSDrawerHeaderActionDirective, QMSDrawerHeaderDirective, QMSDropdownMenuItem, QMSEditFileNameDialog, QMSEditFileNameDialogModule, QMSFileAttachment, QMSFileUploadDirective, QMSFileUploadDisplayDirective, QMSFileUploadMultipleDirective, QMSFileUploadMultipleDisplayDirective, QMSFileUploadMultipleSelectorDirective, QMSFileUploadSelectorDirective, QMSFlatNodeTree, QMSFormDialog, QMSFormFieldDatePickerDirective, QMSFormFieldDirective, QMSFormFieldTextareaDirective, QMSGroupOptionDirective, QMSIconRegistryService, QMSInputChipDirective, QMSInputClearDirective, QMSList, QMSListExpansion, QMSListExpansionHeader, QMSListHeader, QMSListItem, QMSListLeadingIcon, QMSListLine, QMSListModule, QMSMultiIconDirective, QMSNavDrawerComponent, QMSNavDrawerModule, QMSNavigationDrawerComponent, QMSNavigationDrawerModule, QMSNewTreeModule, QMSPaginatorComponent, QMSProcessDocumentItem, QMSRangeSliderDirective, QMSRangeSliderLockUpDirective, QMSRangeSliderModule, QMSRelatedGlobalService, QMSRelatedModule, QMSRichText, QMSRichTextModule, QMSRowDetailDirective, QMSScrolableAttachmentListDirective, QMSScrollbarDirective, QMSSearchFieldDirective, QMSSelectAccessData, QMSSelectAccessDialog, QMSSelectAccessDialogComponent, QMSSelectAccessDialogModule, QMSSelectAccessGlobalService, QMSSelectAccessResult, QMSSelectDepartmentGlobalService, QMSSelectDepartmentModule, QMSSelectDepartmentTreeConfig, QMSSelectDepartmentTreeGlobalService, QMSSelectDepartmentTreeModule, QMSSelectIncludeChildrenGlobalService, QMSSelectIncludeChildrenModule, QMSSelectOneGlobalService, QMSSelectOneModule, QMSSelectProcessDocumentGlobalService, QMSSelectProcessDocumentModule, QMSSideSheetModule, QMSSnackbarConfig, QMSSuffixDirective, QMSSuffixFieldDirective, QMSTabGroupAdvancedDirective, QMSTabGroupDirective, QMSTabLabelDirective, QMSTabModule, QMSTableAction, QMSTableActionBlock, QMSTableChildrenDirective, QMSTableDirective, QMSTableModule, QMSTableRowDirective, QMSTextBlockDirective, QMSTextBlockLine, QMSTextTruncateDirective, QMSThemingLibraryService, QMSToolTipComponent, QMSToolTipRendererDirective, QMSTooltipImageDirective, QMSTooltipModule, QMSTreeConfig, QMSTreeGlobalService, QMSTreeModel, QMSTreeModule, QMSUploadFileErrorDialog, QMSUploadFileErrorDialogModule, QMSUploadingFileGuard, QMS_THEMES, QMS_THEME_DEFAULT, QmsAngularComponent, QmsAngularModule, QmsAngularService, QmsAppBarComponent, QmsAppBarModule, QmsBadgesComponent, QmsBadgesModule, QmsBannerButtonType, QmsBannerComponent, QmsBannerConfirmButton, QmsBannerConfirmButtonClick, QmsBannerConfirmComponent, QmsBannerConfirmModule, QmsBannerContent, QmsBannerLoadingComponent, QmsBannerLoadingModule, QmsBannerModule, QmsCkeditorLinkSimpleComponent, QmsPaginatorModule, QmsReportContentPortraitComponent, QmsReportCoverPortraitComponent, QmsReportModule, QmsStatusDropdownComponent, QmsStatusDropdownModule, QmsStatusDropdownOption, QmsStatusDropdownType, QmsStepperComponent, QmsStepperModule, REGIONAL_FOLDER_ICON, REGIONAL_FOLDER_OUTLINED_ICON, RISK_ICON, RelatedConst, RelatedContentComponent, RelatedItemType, RelatedListComponent, RelatedPopupComponent, Result, RiskAnalysis, RiskAnalysisComponent, RiskDanger, RiskListComponent, RiskResult, RiskResultComponent, SaveTemplateComponent, ScrollToSelectedDirective, SelectConst, SelectDepartmentComponent, SelectDepartmentPopupData, SelectDepartmentTreeComponent, SelectDialog, SelectIncludeChildrenPopUpComponent, SelectOneDialog, SelectOneNextData, SelectOneNextDialog, SelectOnePopupData, SelectOption, SelectOptionTypes, SelectPopupData, SelectProcessDocumentPopupComponent, SelectProcessDocumentPopupData, SelectedOption, SelectedProcessDocumentItem, SharedModule, ShowHideSearchResultConst, SideNav, SideNavItem, SidenavComponent, TargetType, TargetTypeName, TranslateLibraryService, TreeComponent, TreeConfig, TreeFlatNode, TreeModel, TreeModelNavDrawer, TreeNode$1 as TreeNode, UploadErrorData, app, basic, en, erd, fsa, mixinColor, no, notExceedSize, org, pn, requiredFileType, standard, uml, ɵ2, SharedMaterialModule as ɵa, TreeComponent as ɵb, QMSTreeModule as ɵc, QMSBasicTreeComponent as ɵd, QMSCKEditorTreeService as ɵe, QMSCKEditorTemplateComponent as ɵf, LinkAttachmentComponent as ɵg, QMSCKEditorTooltipComponent as ɵh, QMSCKEditorTooltip as ɵi, QMSCKEditorImageMapComponent as ɵj, QMSCKEditorImageMap as ɵk, QMSCKEditorUploadService as ɵl, QMSCKEditorBpmnData as ɵm, QMSCKEditorAboutComponent as ɵn, QMSCKEditorFlowchartComponent as ɵo };
30652
+ export { AnimationTreeDepartment, AutocompleteOffDirective, BREADCRUMB_DROPDOWN_ICON, BUTTON_TOGGLE_DEFAULT_OPTIONS, BUTTON_TOGGLE_GROUP, BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR, BannerType, BpmnService, BreadcrumbNode, BreadcrumbType, ButtonToggleChange, CHECKLIST_ICON, CKEditorEventConst, CKEditorModule, CdkDetailRowDirective, ConfirmDialog, DEPARTMENT_FOLDER_ICON, DEPARTMENT_FOLDER_OUTLINED_ICON, DEVIATION_ICON, DOCUMENT_DEPARTMENT_ICON, DOCUMENT_ENTERPRISE_ICON, DOCUMENT_ICON, DOCUMENT_LOCAL_ICON, DOCUMENT_REGIONAL_ICON, DataType$1 as DataType, DateFormatPipe, DepartmentLocationBreadCrumb, DepartmentSearchResultModel, DocumentNodeType$1 as DocumentNodeType, ENTERPRISE_FOLDER_ICON, ENTERPRISE_FOLDER_OUTLINED_ICON, EllipsifyDirective, FileErrorType, FileType, FilterPersonModel, FlatNodeNavDrawer, FlowChartConst, FlowchartViewMode, ISelectOneItem, InformationCoverItem, KEYBOARD_DOWN_ICON, KEYBOARD_UP_ICON, LOCAL_FOLDER_ICON, LOCAL_FOLDER_OUTLINED_ICON, LinkAnchor, LinkType, MarginDirective, MfeUtil, ModuleType$1 as ModuleType, NORMAL_FOLDER_ICON, NORMAL_FOLDER_OUTLINED_ICON, NavigatorElementView, NavigatorLinkView, NewTreeComponent, NewTreeModel, OptionSelectAccessEnum, OptionSelectAccessModel, PROCESS_AREA_ICON, PROCESS_AREA_OUTLINED_ICON, PROCESS_ICON, PaginationSize, PopupData, ProtocolType, ProtocolTypeName, QMSAccessItem, QMSAccessPagingChangeModel, QMSAccessPagingModel, QMSAnchor, QMSAppBar, QMSAppIconModule, QMSAttachmentListDirective, QMSBasicTreeComponent, QMSBreadcrumb, QMSBreadcrumbDirectionIconDirective, QMSBreadcrumbItemDirective, QMSBreadcrumbModule, QMSButton, QMSButtonIcon, QMSButtonModule, QMSButtonToggle, QMSButtonToggleGroup, QMSCKEditorBaseComponent, QMSCKEditorBaseService, QMSCKEditorBpmn, QMSCKEditorBpmnApiService, QMSCKEditorBpmnComponent, QMSCKEditorBpmnTemplate, QMSCKEditorComponent, QMSCKEditorConfirmComponent, QMSCKEditorData, QMSCKEditorDialogData, QMSCKEditorDocumentType, QMSCKEditorFlowchart, QMSCKEditorFlowchartService, QMSCKEditorFullscreenComponent, QMSCKEditorGlobalService, QMSCKEditorInjector, QMSCKEditorLinkAnchorDocument, QMSCKEditorLinkComponent, QMSCKEditorLinkService, QMSCKEditorLoadTemplateComponent, QMSCKEditorModule, QMSCKEditorPlugin, QMSCKEditorRelatedComponent, QMSCKEditorRelation, QMSCKEditorSaveAsTemplate, QMSCKEditorTemplate, QMSCKEditorTemplateService, QMSCKEditorToastService, QMSCKEditorTreeComponent, QMSCKEdtiorInputData, QMSChipBodyDirective, QMSChipInputChipListDirective, QMSChipInputDirective, QMSChipInputSelectDropDownDirective, QMSChipInputSelectFieldDirective, QMSChipInputSelectTriggerDirective, QMSCollapseGroupDirective, QMSComment, QMSConfirmDialog, QMSContentChangesDirective, QMSDepartmentPagingModel, QMSDialogConfig, QMSDialogContainer, QMSDialogContainerV2, QMSDialogContent, QMSDialogFooter, QMSDialogHeader, QMSDrawerContentDirective, QMSDrawerDirective, QMSDrawerHeaderActionDirective, QMSDrawerHeaderDirective, QMSDropdownMenuItem, QMSEditFileNameDialog, QMSEditFileNameDialogModule, QMSFileAttachment, QMSFileUploadDirective, QMSFileUploadDisplayDirective, QMSFileUploadMultipleDirective, QMSFileUploadMultipleDisplayDirective, QMSFileUploadMultipleSelectorDirective, QMSFileUploadSelectorDirective, QMSFlatNodeTree, QMSFormDialog, QMSFormFieldDatePickerDirective, QMSFormFieldDirective, QMSFormFieldTextareaDirective, QMSGroupOptionDirective, QMSIconRegistryService, QMSInputChipDirective, QMSInputClearDirective, QMSList, QMSListExpansion, QMSListExpansionHeader, QMSListHeader, QMSListItem, QMSListLeadingIcon, QMSListLine, QMSListModule, QMSMultiIconDirective, QMSNavDrawerComponent, QMSNavDrawerModule, QMSNavigationDrawerComponent, QMSNavigationDrawerModule, QMSNewTreeModule, QMSPaginatorComponent, QMSProcessDocumentItem, QMSRangeSliderDirective, QMSRangeSliderLockUpDirective, QMSRangeSliderModule, QMSRelatedGlobalService, QMSRelatedModule, QMSRichText, QMSRichTextModule, QMSRowDetailDirective, QMSScrolableAttachmentListDirective, QMSScrollbarDirective, QMSSearchFieldDirective, QMSSelectAccessData, QMSSelectAccessDialog, QMSSelectAccessDialogComponent, QMSSelectAccessDialogModule, QMSSelectAccessGlobalService, QMSSelectAccessResult, QMSSelectDepartmentGlobalService, QMSSelectDepartmentModule, QMSSelectDepartmentTreeConfig, QMSSelectDepartmentTreeGlobalService, QMSSelectDepartmentTreeModule, QMSSelectIncludeChildrenGlobalService, QMSSelectIncludeChildrenModule, QMSSelectOneGlobalService, QMSSelectOneModule, QMSSelectProcessDocumentGlobalService, QMSSelectProcessDocumentModule, QMSSideSheetModule, QMSSnackbarConfig, QMSSuffixDirective, QMSSuffixFieldDirective, QMSTabGroupAdvancedDirective, QMSTabGroupDirective, QMSTabLabelDirective, QMSTabModule, QMSTableAction, QMSTableActionBlock, QMSTableChildrenDirective, QMSTableDirective, QMSTableModule, QMSTableRowDirective, QMSTextBlockDirective, QMSTextBlockLine, QMSTextTruncateDirective, QMSThemingLibraryService, QMSToolTipComponent, QMSToolTipRendererDirective, QMSTooltipImageDirective, QMSTooltipModule, QMSTreeConfig, QMSTreeGlobalService, QMSTreeModel, QMSTreeModule, QMSUploadFileErrorDialog, QMSUploadFileErrorDialogModule, QMSUploadingFileGuard, QMS_THEMES, QMS_THEME_DEFAULT, QmsAngularComponent, QmsAngularModule, QmsAngularService, QmsAppBarComponent, QmsAppBarModule, QmsBadgesComponent, QmsBadgesModule, QmsBannerButtonType, QmsBannerComponent, QmsBannerConfirmButton, QmsBannerConfirmButtonClick, QmsBannerConfirmComponent, QmsBannerConfirmModule, QmsBannerContent, QmsBannerLoadingComponent, QmsBannerLoadingModule, QmsBannerModule, QmsCkeditorLinkSimpleComponent, QmsPaginatorModule, QmsReportContentPortraitComponent, QmsReportCoverPortraitComponent, QmsReportModule, QmsStatusDropdownComponent, QmsStatusDropdownModule, QmsStatusDropdownOption, QmsStatusDropdownType, QmsStepperComponent, QmsStepperModule, REGIONAL_FOLDER_ICON, REGIONAL_FOLDER_OUTLINED_ICON, RISK_ICON, RelatedConst, RelatedContentComponent, RelatedItemType, RelatedListComponent, RelatedPopupComponent, Result, RiskAnalysis, RiskAnalysisComponent, RiskDanger, RiskListComponent, RiskResult, RiskResultComponent, SaveTemplateComponent, ScrollToSelectedDirective, SelectAccessAnimationTrigger, SelectConst, SelectDepartmentComponent, SelectDepartmentPopupData, SelectDepartmentTreeComponent, SelectDialog, SelectIncludeChildrenPopUpComponent, SelectOneDialog, SelectOneNextData, SelectOneNextDialog, SelectOnePopupData, SelectOption, SelectOptionTypes, SelectPopupData, SelectProcessDocumentPopupComponent, SelectProcessDocumentPopupData, SelectedOption, SelectedProcessDocumentItem, SharedModule, ShowHideSearchResultConst, SideNav, SideNavItem, SidenavComponent, TargetType, TargetTypeName, TranslateLibraryService, TreeComponent, TreeConfig, TreeFlatNode, TreeModel, TreeModelNavDrawer, TreeNode$1 as TreeNode, UploadErrorData, app, basic, en, erd, fsa, mixinColor, no, notExceedSize, org, pn, requiredFileType, standard, uml, ɵ2, SharedMaterialModule as ɵa, TreeComponent as ɵb, QMSTreeModule as ɵc, QMSBasicTreeComponent as ɵd, QMSCKEditorTreeService as ɵe, QMSCKEditorTemplateComponent as ɵf, LinkAttachmentComponent as ɵg, QMSCKEditorTooltipComponent as ɵh, QMSCKEditorTooltip as ɵi, QMSCKEditorImageMapComponent as ɵj, QMSCKEditorImageMap as ɵk, QMSCKEditorUploadService as ɵl, QMSCKEditorBpmnData as ɵm, QMSCKEditorAboutComponent as ɵn, QMSCKEditorFlowchartComponent as ɵo };
30403
30653
  //# sourceMappingURL=qms-angular.js.map