@lucca-front/ng 18.3.0 → 18.3.1

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 (43) hide show
  1. package/core/type/style.d.ts +1 -1
  2. package/core-select/user/users.directive.d.ts +2 -1
  3. package/esm2022/callout/callout-disclosure/callout-disclosure.component.mjs +3 -3
  4. package/esm2022/comment/comment/comment.component.mjs +3 -3
  5. package/esm2022/core/portal/portal.directive.mjs +8 -3
  6. package/esm2022/core/type/style.mjs +1 -1
  7. package/esm2022/core-select/user/user-option.component.mjs +3 -3
  8. package/esm2022/core-select/user/users.directive.mjs +16 -23
  9. package/esm2022/department/select/feeder/department-feeder.component.mjs +2 -2
  10. package/esm2022/department/select/input/department-select-input.component.mjs +2 -1
  11. package/esm2022/department/service/department-v4.service.mjs +2 -2
  12. package/esm2022/dialog/dialog/dialog.component.mjs +2 -2
  13. package/esm2022/dialog/dialog-header/dialog-header.component.mjs +3 -3
  14. package/esm2022/form-field/form-field.component.mjs +3 -3
  15. package/esm2022/multi-select/input/select-all/with-select-all.directive.mjs +10 -9
  16. package/esm2022/multi-select/public-api.mjs +2 -1
  17. package/esm2022/multi-select/select.model.mjs +2 -2
  18. package/esm2022/multi-select/select.utils.mjs +32 -0
  19. package/esm2022/tooltip/trigger/ellipsis.ruler.mjs +59 -0
  20. package/esm2022/tooltip/trigger/tooltip-trigger.directive.mjs +8 -52
  21. package/fesm2022/lucca-front-ng-callout.mjs +2 -2
  22. package/fesm2022/lucca-front-ng-callout.mjs.map +1 -1
  23. package/fesm2022/lucca-front-ng-comment.mjs +2 -2
  24. package/fesm2022/lucca-front-ng-comment.mjs.map +1 -1
  25. package/fesm2022/lucca-front-ng-core-select-user.mjs +21 -28
  26. package/fesm2022/lucca-front-ng-core-select-user.mjs.map +1 -1
  27. package/fesm2022/lucca-front-ng-core.mjs +7 -2
  28. package/fesm2022/lucca-front-ng-core.mjs.map +1 -1
  29. package/fesm2022/lucca-front-ng-department.mjs +3 -2
  30. package/fesm2022/lucca-front-ng-department.mjs.map +1 -1
  31. package/fesm2022/lucca-front-ng-dialog.mjs +4 -4
  32. package/fesm2022/lucca-front-ng-dialog.mjs.map +1 -1
  33. package/fesm2022/lucca-front-ng-form-field.mjs +2 -2
  34. package/fesm2022/lucca-front-ng-form-field.mjs.map +1 -1
  35. package/fesm2022/lucca-front-ng-multi-select.mjs +44 -10
  36. package/fesm2022/lucca-front-ng-multi-select.mjs.map +1 -1
  37. package/fesm2022/lucca-front-ng-tooltip.mjs +62 -51
  38. package/fesm2022/lucca-front-ng-tooltip.mjs.map +1 -1
  39. package/multi-select/public-api.d.ts +2 -0
  40. package/multi-select/select.utils.d.ts +14 -0
  41. package/package.json +31 -31
  42. package/tooltip/trigger/ellipsis.ruler.d.ts +20 -0
  43. package/tooltip/trigger/tooltip-trigger.directive.d.ts +0 -13
@@ -1,7 +1,6 @@
1
1
  import { Directive, computed, forwardRef, inject, input, signal } from '@angular/core';
2
- import { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';
2
+ import { toSignal } from '@angular/core/rxjs-interop';
3
3
  import { CORE_SELECT_API_TOTAL_COUNT_PROVIDER } from '@lucca-front/ng/core-select';
4
- import { skip } from 'rxjs';
5
4
  import { ɵIsSelectedStrategy } from '../../select.model';
6
5
  import { LuMultiSelectInputComponent } from '../select-input.component';
7
6
  import { LuMultiSelectAllDisplayerComponent } from './multi-select-all-displayer.component';
@@ -43,9 +42,6 @@ export class LuMultiSelectWithSelectAllDirective extends ɵIsSelectedStrategy {
43
42
  this.#select.panelHeaderTpl.set(LuMultiSelectAllHeaderComponent);
44
43
  this.#select.valuesTpl.set(LuMultiSelectAllDisplayerComponent);
45
44
  this.#select.hasValue = () => this.#hasValue();
46
- toObservable(this.#selectAllValue)
47
- .pipe(skip(1), takeUntilDestroyed())
48
- .subscribe((value) => this.#onChange?.(value));
49
45
  }
50
46
  setSelectAll(selectAll) {
51
47
  this.#selectWriteValue([]);
@@ -53,6 +49,7 @@ export class LuMultiSelectWithSelectAllDirective extends ɵIsSelectedStrategy {
53
49
  this.#values.set([]);
54
50
  }
55
51
  this.#mode.set(selectAll ? 'all' : 'none');
52
+ this.#onChange?.(this.#selectAllValue());
56
53
  }
57
54
  isSelected(option, selectedOptions, optionComparer) {
58
55
  switch (this.#mode()) {
@@ -84,6 +81,7 @@ export class LuMultiSelectWithSelectAllDirective extends ɵIsSelectedStrategy {
84
81
  this.#values.set(values);
85
82
  const oldMode = this.#mode();
86
83
  this.#mode.set(this.#getNextMode(oldMode, values));
84
+ this.#onChange?.(this.#selectAllValue());
87
85
  });
88
86
  }
89
87
  writeValue(value) {
@@ -97,7 +95,7 @@ export class LuMultiSelectWithSelectAllDirective extends ɵIsSelectedStrategy {
97
95
  mode = 'none';
98
96
  }
99
97
  else {
100
- values = value.mode === 'exclude' ? value.values : [];
98
+ values = value.mode === 'exclude' || value.mode === 'include' ? value.values : [];
101
99
  mode = value.mode;
102
100
  }
103
101
  this.#selectWriteValue(values);
@@ -105,11 +103,14 @@ export class LuMultiSelectWithSelectAllDirective extends ɵIsSelectedStrategy {
105
103
  this.#values.set(values);
106
104
  }
107
105
  clearValue($event) {
108
- this.#selectClearValue($event);
109
106
  this.#mode.set('none');
110
- this.#values.set([]);
107
+ this.#selectClearValue($event);
111
108
  }
112
109
  #getNextMode(fromMode, values) {
110
+ // Keep 'none' when no value selected
111
+ if (fromMode === 'none' && values.length === 0) {
112
+ return 'none';
113
+ }
113
114
  const allSelected = values.length === this.totalCount();
114
115
  if (allSelected) {
115
116
  return 'all';
@@ -160,4 +161,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
160
161
  ],
161
162
  }]
162
163
  }], ctorParameters: () => [] });
163
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1zZWxlY3QtYWxsLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nL211bHRpLXNlbGVjdC9pbnB1dC9zZWxlY3QtYWxsL3dpdGgtc2VsZWN0LWFsbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEYsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFbkYsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1QixPQUFPLEVBQTBDLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDakcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDNUYsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEYsT0FBTyxFQUFxQyxvQ0FBb0MsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQWlCOUcsTUFBTSxPQUFPLG1DQUE0QyxTQUFRLG1CQUEyQjtJQUNsRixPQUFPLENBQTRFO0lBSW5GLEtBQUssQ0FBd0M7SUFDN0MsT0FBTyxDQUF3QjtJQU0vQixTQUFTLENBQTBDO0lBRW5ELGVBQWUsQ0FHckI7SUFFSCx1RUFBdUU7SUFDOUQsdUJBQXVCLENBQStHO0lBQ3RJLGlCQUFpQixDQUFtRztJQUNwSCxpQkFBaUIsQ0FBbUc7SUFFN0gsU0FBUyxDQUE4QztJQUV2RDtRQUNDLEtBQUssRUFBRSxDQUFDO1FBMUJBLFlBQU8sR0FBRyxNQUFNLENBQXNDLDJCQUEyQixDQUFDLENBQUM7UUFFbkYsbUJBQWMsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFTLEVBQUUsS0FBSyxFQUFFLDZCQUE2QixFQUFFLENBQUMsQ0FBQztRQUVsRixVQUFLLEdBQUcsTUFBTSxDQUF1QixNQUFNLENBQUMsQ0FBQztRQUM3QyxZQUFPLEdBQUcsTUFBTSxDQUFXLEVBQUUsQ0FBQyxDQUFDO1FBRS9CLFNBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQy9CLFdBQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ25DLGVBQVUsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLG9DQUFvQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFaEYsY0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssTUFBTSxDQUFDLENBQUM7UUFFbkQsb0JBQWUsR0FBRyxRQUFRLENBQTJCLEdBQUcsRUFBRTtZQUNsRSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDMUIsT0FBTyxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUN4RixDQUFDLENBQUMsQ0FBQztRQUVILHVFQUF1RTtRQUM5RCw0QkFBdUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUE0RCxDQUFDO1FBQ3RJLHNCQUFpQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFzRCxDQUFDO1FBQ3BILHNCQUFpQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFzRCxDQUFDO1FBTzVILElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNsRSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU5RCxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsa0NBQWtDLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFFL0MsWUFBWSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7YUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxrQkFBa0IsRUFBRSxDQUFDO2FBQ25DLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELFlBQVksQ0FBQyxTQUFrQjtRQUM5QixJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFM0IsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEIsQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRVEsVUFBVSxDQUFDLE1BQWMsRUFBRSxlQUF5QixFQUFFLGNBQXdDO1FBQ3RHLFFBQVEsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDdEIsS0FBSyxLQUFLO2dCQUNULE9BQU8sSUFBSSxDQUFDO1lBQ2IsS0FBSyxTQUFTO2dCQUNiLE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQy9ELEtBQUssU0FBUztnQkFDYixPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ2hFLEtBQUssTUFBTTtnQkFDVixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7SUFDRixDQUFDO0lBRVEsZUFBZSxDQUFDLFFBQWtCLEVBQUUsa0JBQTRCO1FBQ3hFLFFBQVEsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDdEIsS0FBSyxLQUFLO2dCQUNULE9BQU8sSUFBSSxDQUFDO1lBQ2IsS0FBSyxTQUFTO2dCQUNiLE9BQU8sa0JBQWtCLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztZQUN4QyxLQUFLLFNBQVM7Z0JBQ2IsT0FBTyxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ3RDLEtBQUssTUFBTTtnQkFDVixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7SUFDRixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBd0Q7UUFDeEUsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFFcEIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUMsTUFBZ0IsRUFBRSxFQUFFO1lBQ2pELElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3pCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUEwQztRQUNwRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLGtIQUFrSCxDQUFDLENBQUM7UUFDckksQ0FBQztRQUVELElBQUksSUFBMEIsQ0FBQztRQUMvQixJQUFJLE1BQWdCLENBQUM7UUFFckIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1osTUFBTSxHQUFHLEVBQUUsQ0FBQztZQUNaLElBQUksR0FBRyxNQUFNLENBQUM7UUFDZixDQUFDO2FBQU0sQ0FBQztZQUNQLE1BQU0sR0FBRyxLQUFLLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3RELElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ25CLENBQUM7UUFFRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUFhO1FBQ3ZCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRUQsWUFBWSxDQUFDLFFBQThCLEVBQUUsTUFBZ0I7UUFDNUQsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFeEQsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNqQixPQUFPLEtBQUssQ0FBQztRQUNkLENBQUM7UUFFRCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUV2QyxtRUFBbUU7UUFDbkUsSUFBSSxRQUFRLEtBQUssS0FBSyxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ3hDLE9BQU8sU0FBUyxDQUFDO1FBQ2xCLENBQUM7UUFFRCxvRUFBb0U7UUFDcEUsSUFBSSxRQUFRLEtBQUssTUFBTSxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ3pDLE9BQU8sU0FBUyxDQUFDO1FBQ2xCLENBQUM7UUFFRCxpRUFBaUU7UUFDakUsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3pCLE9BQU8sUUFBUSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDaEQsQ0FBQztRQUVELCtCQUErQjtRQUMvQixPQUFPLFFBQVEsQ0FBQztJQUNqQixDQUFDOzhHQTVJVyxtQ0FBbUM7a0dBQW5DLG1DQUFtQyx3UEFYcEM7WUFDVjtnQkFDQyxPQUFPLEVBQUUsbUJBQW1CO2dCQUM1QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG1DQUFtQyxDQUFDO2FBQ2xFO1lBQ0Q7Z0JBQ0MsT0FBTyxFQUFFLG9DQUFvQztnQkFDN0MsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxtQ0FBbUMsQ0FBQzthQUNsRTtTQUNEOzsyRkFFVyxtQ0FBbUM7a0JBZi9DLFNBQVM7bUJBQUM7b0JBQ1YsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsZ0NBQWdDO29CQUMxQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFO3dCQUNWOzRCQUNDLE9BQU8sRUFBRSxtQkFBbUI7NEJBQzVCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG9DQUFvQyxDQUFDO3lCQUNsRTt3QkFDRDs0QkFDQyxPQUFPLEVBQUUsb0NBQW9DOzRCQUM3QyxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxvQ0FBb0MsQ0FBQzt5QkFDbEU7cUJBQ0Q7aUJBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGNvbXB1dGVkLCBmb3J3YXJkUmVmLCBpbmplY3QsIGlucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCwgdG9PYnNlcnZhYmxlLCB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IENPUkVfU0VMRUNUX0FQSV9UT1RBTF9DT1VOVF9QUk9WSURFUiB9IGZyb20gJ0BsdWNjYS1mcm9udC9uZy9jb3JlLXNlbGVjdCc7XG5pbXBvcnQgeyBMdU9wdGlvbkNvbXBhcmVyIH0gZnJvbSAnQGx1Y2NhLWZyb250L25nL29wdGlvbic7XG5pbXBvcnQgeyBza2lwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMdU11bHRpU2VsZWN0aW9uLCBMdU11bHRpU2VsZWN0aW9uTW9kZSwgybVJc1NlbGVjdGVkU3RyYXRlZ3kgfSBmcm9tICcuLi8uLi9zZWxlY3QubW9kZWwnO1xuaW1wb3J0IHsgTHVNdWx0aVNlbGVjdElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vc2VsZWN0LWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMdU11bHRpU2VsZWN0QWxsRGlzcGxheWVyQ29tcG9uZW50IH0gZnJvbSAnLi9tdWx0aS1zZWxlY3QtYWxsLWRpc3BsYXllci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTHVNdWx0aVNlbGVjdEFsbEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vbXVsdGktc2VsZWN0LWFsbC1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEx1TXVsdGlTZWxlY3RXaXRoU2VsZWN0QWxsQ29udGV4dCwgTVVMVElfU0VMRUNUX1dJVEhfU0VMRUNUX0FMTF9DT05URVhUIH0gZnJvbSAnLi9zZWxlY3QtYWxsLm1vZGVscyc7XG5cbkBEaXJlY3RpdmUoe1xuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuXHRzZWxlY3RvcjogJ2x1LW11bHRpLXNlbGVjdFt3aXRoU2VsZWN0QWxsXScsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHByb3ZpZGVyczogW1xuXHRcdHtcblx0XHRcdHByb3ZpZGU6IMm1SXNTZWxlY3RlZFN0cmF0ZWd5LFxuXHRcdFx0dXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTHVNdWx0aVNlbGVjdFdpdGhTZWxlY3RBbGxEaXJlY3RpdmUpLFxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0cHJvdmlkZTogTVVMVElfU0VMRUNUX1dJVEhfU0VMRUNUX0FMTF9DT05URVhULFxuXHRcdFx0dXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTHVNdWx0aVNlbGVjdFdpdGhTZWxlY3RBbGxEaXJlY3RpdmUpLFxuXHRcdH0sXG5cdF0sXG59KVxuZXhwb3J0IGNsYXNzIEx1TXVsdGlTZWxlY3RXaXRoU2VsZWN0QWxsRGlyZWN0aXZlPFRWYWx1ZT4gZXh0ZW5kcyDJtUlzU2VsZWN0ZWRTdHJhdGVneTxUVmFsdWU+IGltcGxlbWVudHMgTHVNdWx0aVNlbGVjdFdpdGhTZWxlY3RBbGxDb250ZXh0IHtcblx0cmVhZG9ubHkgI3NlbGVjdCA9IGluamVjdDxMdU11bHRpU2VsZWN0SW5wdXRDb21wb25lbnQ8VFZhbHVlPj4oTHVNdWx0aVNlbGVjdElucHV0Q29tcG9uZW50KTtcblxuXHRyZWFkb25seSBkaXNwbGF5ZXJMYWJlbCA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oeyBhbGlhczogJ3dpdGhTZWxlY3RBbGxEaXNwbGF5ZXJMYWJlbCcgfSk7XG5cblx0cmVhZG9ubHkgI21vZGUgPSBzaWduYWw8THVNdWx0aVNlbGVjdGlvbk1vZGU+KCdub25lJyk7XG5cdHJlYWRvbmx5ICN2YWx1ZXMgPSBzaWduYWw8VFZhbHVlW10+KFtdKTtcblxuXHRyZWFkb25seSBtb2RlID0gdGhpcy4jbW9kZS5hc1JlYWRvbmx5KCk7XG5cdHJlYWRvbmx5IHZhbHVlcyA9IHRoaXMuI3ZhbHVlcy5hc1JlYWRvbmx5KCk7XG5cdHJlYWRvbmx5IHRvdGFsQ291bnQgPSB0b1NpZ25hbChpbmplY3QoQ09SRV9TRUxFQ1RfQVBJX1RPVEFMX0NPVU5UX1BST1ZJREVSKS50b3RhbENvdW50JCk7XG5cblx0cmVhZG9ubHkgI2hhc1ZhbHVlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5tb2RlKCkgIT09ICdub25lJyk7XG5cblx0cmVhZG9ubHkgI3NlbGVjdEFsbFZhbHVlID0gY29tcHV0ZWQ8THVNdWx0aVNlbGVjdGlvbjxUVmFsdWU+PigoKSA9PiB7XG5cdFx0Y29uc3QgbW9kZSA9IHRoaXMuI21vZGUoKTtcblx0XHRyZXR1cm4gbW9kZSA9PT0gJ2FsbCcgfHwgbW9kZSA9PT0gJ25vbmUnID8geyBtb2RlIH0gOiB7IG1vZGUsIHZhbHVlczogdGhpcy4jdmFsdWVzKCkgfTtcblx0fSk7XG5cblx0Ly8gS2VlcCB0aGUgb3JpZ2luYWwgcmVnaXN0ZXJPbkNoYW5nZSAvIHdyaXRlVmFsdWUgLyBjbGVhclZhbHllIG1ldGhvZHNcblx0cmVhZG9ubHkgI3NlbGVjdFJlZ2lzdGVyT25DaGFuZ2UgPSB0aGlzLiNzZWxlY3QucmVnaXN0ZXJPbkNoYW5nZS5iaW5kKHRoaXMuI3NlbGVjdCkgYXMgTHVNdWx0aVNlbGVjdElucHV0Q29tcG9uZW50PFRWYWx1ZT5bJ3JlZ2lzdGVyT25DaGFuZ2UnXTtcblx0cmVhZG9ubHkgI3NlbGVjdFdyaXRlVmFsdWUgPSB0aGlzLiNzZWxlY3Qud3JpdGVWYWx1ZS5iaW5kKHRoaXMuI3NlbGVjdCkgYXMgTHVNdWx0aVNlbGVjdElucHV0Q29tcG9uZW50PFRWYWx1ZT5bJ3dyaXRlVmFsdWUnXTtcblx0cmVhZG9ubHkgI3NlbGVjdENsZWFyVmFsdWUgPSB0aGlzLiNzZWxlY3QuY2xlYXJWYWx1ZS5iaW5kKHRoaXMuI3NlbGVjdCkgYXMgTHVNdWx0aVNlbGVjdElucHV0Q29tcG9uZW50PFRWYWx1ZT5bJ2NsZWFyVmFsdWUnXTtcblxuXHQjb25DaGFuZ2U/OiAodmFsdWVzOiBMdU11bHRpU2VsZWN0aW9uPFRWYWx1ZT4pID0+IHZvaWQ7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0c3VwZXIoKTtcblxuXHRcdHRoaXMuI3NlbGVjdC5yZWdpc3Rlck9uQ2hhbmdlID0gKGZuKSA9PiB0aGlzLnJlZ2lzdGVyT25DaGFuZ2UoZm4pO1xuXHRcdHRoaXMuI3NlbGVjdC53cml0ZVZhbHVlID0gKHZhbHVlKSA9PiB0aGlzLndyaXRlVmFsdWUodmFsdWUpO1xuXHRcdHRoaXMuI3NlbGVjdC5jbGVhclZhbHVlID0gKCRldmVudCkgPT4gdGhpcy5jbGVhclZhbHVlKCRldmVudCk7XG5cblx0XHR0aGlzLiNzZWxlY3QucGFuZWxIZWFkZXJUcGwuc2V0KEx1TXVsdGlTZWxlY3RBbGxIZWFkZXJDb21wb25lbnQpO1xuXHRcdHRoaXMuI3NlbGVjdC52YWx1ZXNUcGwuc2V0KEx1TXVsdGlTZWxlY3RBbGxEaXNwbGF5ZXJDb21wb25lbnQpO1xuXHRcdHRoaXMuI3NlbGVjdC5oYXNWYWx1ZSA9ICgpID0+IHRoaXMuI2hhc1ZhbHVlKCk7XG5cblx0XHR0b09ic2VydmFibGUodGhpcy4jc2VsZWN0QWxsVmFsdWUpXG5cdFx0XHQucGlwZShza2lwKDEpLCB0YWtlVW50aWxEZXN0cm95ZWQoKSlcblx0XHRcdC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB0aGlzLiNvbkNoYW5nZT8uKHZhbHVlKSk7XG5cdH1cblxuXHRzZXRTZWxlY3RBbGwoc2VsZWN0QWxsOiBib29sZWFuKTogdm9pZCB7XG5cdFx0dGhpcy4jc2VsZWN0V3JpdGVWYWx1ZShbXSk7XG5cblx0XHRpZiAodGhpcy4jdmFsdWVzKCkubGVuZ3RoKSB7XG5cdFx0XHR0aGlzLiN2YWx1ZXMuc2V0KFtdKTtcblx0XHR9XG5cdFx0dGhpcy4jbW9kZS5zZXQoc2VsZWN0QWxsID8gJ2FsbCcgOiAnbm9uZScpO1xuXHR9XG5cblx0b3ZlcnJpZGUgaXNTZWxlY3RlZChvcHRpb246IFRWYWx1ZSwgc2VsZWN0ZWRPcHRpb25zOiBUVmFsdWVbXSwgb3B0aW9uQ29tcGFyZXI6IEx1T3B0aW9uQ29tcGFyZXI8VFZhbHVlPik6IGJvb2xlYW4ge1xuXHRcdHN3aXRjaCAodGhpcy4jbW9kZSgpKSB7XG5cdFx0XHRjYXNlICdhbGwnOlxuXHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdGNhc2UgJ2luY2x1ZGUnOlxuXHRcdFx0XHRyZXR1cm4gc2VsZWN0ZWRPcHRpb25zLnNvbWUoKG8pID0+IG9wdGlvbkNvbXBhcmVyKG8sIG9wdGlvbikpO1xuXHRcdFx0Y2FzZSAnZXhjbHVkZSc6XG5cdFx0XHRcdHJldHVybiAhc2VsZWN0ZWRPcHRpb25zLnNvbWUoKG8pID0+IG9wdGlvbkNvbXBhcmVyKG8sIG9wdGlvbikpO1xuXHRcdFx0Y2FzZSAnbm9uZSc6XG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cdH1cblxuXHRvdmVycmlkZSBpc0dyb3VwU2VsZWN0ZWQoX29wdGlvbnM6IFRWYWx1ZVtdLCBub3RTZWxlY3RlZE9wdGlvbnM6IFRWYWx1ZVtdKTogYm9vbGVhbiB7XG5cdFx0c3dpdGNoICh0aGlzLiNtb2RlKCkpIHtcblx0XHRcdGNhc2UgJ2FsbCc6XG5cdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0Y2FzZSAnaW5jbHVkZSc6XG5cdFx0XHRcdHJldHVybiBub3RTZWxlY3RlZE9wdGlvbnMubGVuZ3RoID09PSAwO1xuXHRcdFx0Y2FzZSAnZXhjbHVkZSc6XG5cdFx0XHRcdHJldHVybiBub3RTZWxlY3RlZE9wdGlvbnMubGVuZ3RoID4gMDtcblx0XHRcdGNhc2UgJ25vbmUnOlxuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXHR9XG5cblx0cmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBUVmFsdWVbXSB8IEx1TXVsdGlTZWxlY3Rpb248VFZhbHVlPikgPT4gdm9pZCk6IHZvaWQge1xuXHRcdHRoaXMuI29uQ2hhbmdlID0gZm47XG5cblx0XHR0aGlzLiNzZWxlY3RSZWdpc3Rlck9uQ2hhbmdlKCh2YWx1ZXM6IFRWYWx1ZVtdKSA9PiB7XG5cdFx0XHR0aGlzLiN2YWx1ZXMuc2V0KHZhbHVlcyk7XG5cdFx0XHRjb25zdCBvbGRNb2RlID0gdGhpcy4jbW9kZSgpO1xuXHRcdFx0dGhpcy4jbW9kZS5zZXQodGhpcy4jZ2V0TmV4dE1vZGUob2xkTW9kZSwgdmFsdWVzKSk7XG5cdFx0fSk7XG5cdH1cblxuXHR3cml0ZVZhbHVlKHZhbHVlOiBUVmFsdWVbXSB8IEx1TXVsdGlTZWxlY3Rpb248VFZhbHVlPik6IHZvaWQge1xuXHRcdGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKCdNdWx0aVNlbGVjdFdpdGhTZWxlY3RBbGxEaXJlY3RpdmUgZG9lcyBub3Qgc3VwcG9ydCBhcnJheSB2YWx1ZXMuIFBhc3MgYSBMdU11bHRpU2VsZWN0V2l0aFNlbGVjdEFsbFZhbHVlPFRWYWx1ZT4uJyk7XG5cdFx0fVxuXG5cdFx0bGV0IG1vZGU6IEx1TXVsdGlTZWxlY3Rpb25Nb2RlO1xuXHRcdGxldCB2YWx1ZXM6IFRWYWx1ZVtdO1xuXG5cdFx0aWYgKCF2YWx1ZSkge1xuXHRcdFx0dmFsdWVzID0gW107XG5cdFx0XHRtb2RlID0gJ25vbmUnO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR2YWx1ZXMgPSB2YWx1ZS5tb2RlID09PSAnZXhjbHVkZScgPyB2YWx1ZS52YWx1ZXMgOiBbXTtcblx0XHRcdG1vZGUgPSB2YWx1ZS5tb2RlO1xuXHRcdH1cblxuXHRcdHRoaXMuI3NlbGVjdFdyaXRlVmFsdWUodmFsdWVzKTtcblx0XHR0aGlzLiNtb2RlLnNldChtb2RlKTtcblx0XHR0aGlzLiN2YWx1ZXMuc2V0KHZhbHVlcyk7XG5cdH1cblxuXHRjbGVhclZhbHVlKCRldmVudDogRXZlbnQpOiB2b2lkIHtcblx0XHR0aGlzLiNzZWxlY3RDbGVhclZhbHVlKCRldmVudCk7XG5cdFx0dGhpcy4jbW9kZS5zZXQoJ25vbmUnKTtcblx0XHR0aGlzLiN2YWx1ZXMuc2V0KFtdKTtcblx0fVxuXG5cdCNnZXROZXh0TW9kZShmcm9tTW9kZTogTHVNdWx0aVNlbGVjdGlvbk1vZGUsIHZhbHVlczogVFZhbHVlW10pOiBMdU11bHRpU2VsZWN0aW9uTW9kZSB7XG5cdFx0Y29uc3QgYWxsU2VsZWN0ZWQgPSB2YWx1ZXMubGVuZ3RoID09PSB0aGlzLnRvdGFsQ291bnQoKTtcblxuXHRcdGlmIChhbGxTZWxlY3RlZCkge1xuXHRcdFx0cmV0dXJuICdhbGwnO1xuXHRcdH1cblxuXHRcdGNvbnN0IHNvbWVTZWxlY3RlZCA9IHZhbHVlcy5sZW5ndGggPiAwO1xuXG5cdFx0Ly8gVGhlIGZpcnN0IHZhbHVlIHNlbGVjdGVkIHdpbGwgdHJhbnNpdGlvbiBmcm9tIFwiYWxsXCIgdG8gXCJleGNsdWRlXCJcblx0XHRpZiAoZnJvbU1vZGUgPT09ICdhbGwnICYmIHNvbWVTZWxlY3RlZCkge1xuXHRcdFx0cmV0dXJuICdleGNsdWRlJztcblx0XHR9XG5cblx0XHQvLyBUaGUgZmlyc3QgdmFsdWUgc2VsZWN0ZWQgd2lsbCB0cmFuc2l0aW9uIGZyb20gXCJub25lXCIgdG8gXCJpbmNsdWRlXCJcblx0XHRpZiAoZnJvbU1vZGUgPT09ICdub25lJyAmJiBzb21lU2VsZWN0ZWQpIHtcblx0XHRcdHJldHVybiAnaW5jbHVkZSc7XG5cdFx0fVxuXG5cdFx0Ly8gV2hlbiBub25lIHNlbGVjdGVkLCBcImluY2x1ZGVcIiAtPiBcIm5vbmVcIiBhbmQgXCJleGNsdWRlXCIgLT4gXCJhbGxcIlxuXHRcdGlmICh2YWx1ZXMubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRyZXR1cm4gZnJvbU1vZGUgPT09ICdpbmNsdWRlJyA/ICdub25lJyA6ICdhbGwnO1xuXHRcdH1cblxuXHRcdC8vIE5vIG1hdGNoLCBrZWVwIHRoZSBzYW1lIG1vZGVcblx0XHRyZXR1cm4gZnJvbU1vZGU7XG5cdH1cbn1cbiJdfQ==
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1zZWxlY3QtYWxsLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nL211bHRpLXNlbGVjdC9pbnB1dC9zZWxlY3QtYWxsL3dpdGgtc2VsZWN0LWFsbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUVuRixPQUFPLEVBQTBDLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDakcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDNUYsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEYsT0FBTyxFQUFxQyxvQ0FBb0MsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQWlCOUcsTUFBTSxPQUFPLG1DQUE0QyxTQUFRLG1CQUEyQjtJQUNsRixPQUFPLENBQTRFO0lBSW5GLEtBQUssQ0FBd0M7SUFDN0MsT0FBTyxDQUF3QjtJQU0vQixTQUFTLENBQTBDO0lBRW5ELGVBQWUsQ0FHckI7SUFFSCx1RUFBdUU7SUFDOUQsdUJBQXVCLENBQStHO0lBQ3RJLGlCQUFpQixDQUFtRztJQUNwSCxpQkFBaUIsQ0FBbUc7SUFFN0gsU0FBUyxDQUE4QztJQUV2RDtRQUNDLEtBQUssRUFBRSxDQUFDO1FBMUJBLFlBQU8sR0FBRyxNQUFNLENBQXNDLDJCQUEyQixDQUFDLENBQUM7UUFFbkYsbUJBQWMsR0FBRyxLQUFLLENB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QWdDO29CQUMxQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFO3dCQUNWOzRCQUNDLE9BQU8sRUFBRSxtQkFBbUI7NEJBQzVCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG9DQUFvQyxDQUFDO3lCQUNsRTt3QkFDRDs0QkFDQyxPQUFPLEVBQUUsb0NBQW9DOzRCQUM3QyxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxvQ0FBb0MsQ0FBQzt5QkFDbEU7cUJBQ0Q7aUJBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGNvbXB1dGVkLCBmb3J3YXJkUmVmLCBpbmplY3QsIGlucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgQ09SRV9TRUxFQ1RfQVBJX1RPVEFMX0NPVU5UX1BST1ZJREVSIH0gZnJvbSAnQGx1Y2NhLWZyb250L25nL2NvcmUtc2VsZWN0JztcbmltcG9ydCB7IEx1T3B0aW9uQ29tcGFyZXIgfSBmcm9tICdAbHVjY2EtZnJvbnQvbmcvb3B0aW9uJztcbmltcG9ydCB7IEx1TXVsdGlTZWxlY3Rpb24sIEx1TXVsdGlTZWxlY3Rpb25Nb2RlLCDJtUlzU2VsZWN0ZWRTdHJhdGVneSB9IGZyb20gJy4uLy4uL3NlbGVjdC5tb2RlbCc7XG5pbXBvcnQgeyBMdU11bHRpU2VsZWN0SW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9zZWxlY3QtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEx1TXVsdGlTZWxlY3RBbGxEaXNwbGF5ZXJDb21wb25lbnQgfSBmcm9tICcuL211bHRpLXNlbGVjdC1hbGwtZGlzcGxheWVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMdU11bHRpU2VsZWN0QWxsSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9tdWx0aS1zZWxlY3QtYWxsLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTHVNdWx0aVNlbGVjdFdpdGhTZWxlY3RBbGxDb250ZXh0LCBNVUxUSV9TRUxFQ1RfV0lUSF9TRUxFQ1RfQUxMX0NPTlRFWFQgfSBmcm9tICcuL3NlbGVjdC1hbGwubW9kZWxzJztcblxuQERpcmVjdGl2ZSh7XG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG5cdHNlbGVjdG9yOiAnbHUtbXVsdGktc2VsZWN0W3dpdGhTZWxlY3RBbGxdJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0cHJvdmlkZXJzOiBbXG5cdFx0e1xuXHRcdFx0cHJvdmlkZTogybVJc1NlbGVjdGVkU3RyYXRlZ3ksXG5cdFx0XHR1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBMdU11bHRpU2VsZWN0V2l0aFNlbGVjdEFsbERpcmVjdGl2ZSksXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRwcm92aWRlOiBNVUxUSV9TRUxFQ1RfV0lUSF9TRUxFQ1RfQUxMX0NPTlRFWFQsXG5cdFx0XHR1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBMdU11bHRpU2VsZWN0V2l0aFNlbGVjdEFsbERpcmVjdGl2ZSksXG5cdFx0fSxcblx0XSxcbn0pXG5leHBvcnQgY2xhc3MgTHVNdWx0aVNlbGVjdFdpdGhTZWxlY3RBbGxEaXJlY3RpdmU8VFZhbHVlPiBleHRlbmRzIMm1SXNTZWxlY3RlZFN0cmF0ZWd5PFRWYWx1ZT4gaW1wbGVtZW50cyBMdU11bHRpU2VsZWN0V2l0aFNlbGVjdEFsbENvbnRleHQge1xuXHRyZWFkb25seSAjc2VsZWN0ID0gaW5qZWN0PEx1TXVsdGlTZWxlY3RJbnB1dENvbXBvbmVudDxUVmFsdWU+PihMdU11bHRpU2VsZWN0SW5wdXRDb21wb25lbnQpO1xuXG5cdHJlYWRvbmx5IGRpc3BsYXllckxhYmVsID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPih7IGFsaWFzOiAnd2l0aFNlbGVjdEFsbERpc3BsYXllckxhYmVsJyB9KTtcblxuXHRyZWFkb25seSAjbW9kZSA9IHNpZ25hbDxMdU11bHRpU2VsZWN0aW9uTW9kZT4oJ25vbmUnKTtcblx0cmVhZG9ubHkgI3ZhbHVlcyA9IHNpZ25hbDxUVmFsdWVbXT4oW10pO1xuXG5cdHJlYWRvbmx5IG1vZGUgPSB0aGlzLiNtb2RlLmFzUmVhZG9ubHkoKTtcblx0cmVhZG9ubHkgdmFsdWVzID0gdGhpcy4jdmFsdWVzLmFzUmVhZG9ubHkoKTtcblx0cmVhZG9ubHkgdG90YWxDb3VudCA9IHRvU2lnbmFsKGluamVjdChDT1JFX1NFTEVDVF9BUElfVE9UQUxfQ09VTlRfUFJPVklERVIpLnRvdGFsQ291bnQkKTtcblxuXHRyZWFkb25seSAjaGFzVmFsdWUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm1vZGUoKSAhPT0gJ25vbmUnKTtcblxuXHRyZWFkb25seSAjc2VsZWN0QWxsVmFsdWUgPSBjb21wdXRlZDxMdU11bHRpU2VsZWN0aW9uPFRWYWx1ZT4+KCgpID0+IHtcblx0XHRjb25zdCBtb2RlID0gdGhpcy4jbW9kZSgpO1xuXHRcdHJldHVybiBtb2RlID09PSAnYWxsJyB8fCBtb2RlID09PSAnbm9uZScgPyB7IG1vZGUgfSA6IHsgbW9kZSwgdmFsdWVzOiB0aGlzLiN2YWx1ZXMoKSB9O1xuXHR9KTtcblxuXHQvLyBLZWVwIHRoZSBvcmlnaW5hbCByZWdpc3Rlck9uQ2hhbmdlIC8gd3JpdGVWYWx1ZSAvIGNsZWFyVmFseWUgbWV0aG9kc1xuXHRyZWFkb25seSAjc2VsZWN0UmVnaXN0ZXJPbkNoYW5nZSA9IHRoaXMuI3NlbGVjdC5yZWdpc3Rlck9uQ2hhbmdlLmJpbmQodGhpcy4jc2VsZWN0KSBhcyBMdU11bHRpU2VsZWN0SW5wdXRDb21wb25lbnQ8VFZhbHVlPlsncmVnaXN0ZXJPbkNoYW5nZSddO1xuXHRyZWFkb25seSAjc2VsZWN0V3JpdGVWYWx1ZSA9IHRoaXMuI3NlbGVjdC53cml0ZVZhbHVlLmJpbmQodGhpcy4jc2VsZWN0KSBhcyBMdU11bHRpU2VsZWN0SW5wdXRDb21wb25lbnQ8VFZhbHVlPlsnd3JpdGVWYWx1ZSddO1xuXHRyZWFkb25seSAjc2VsZWN0Q2xlYXJWYWx1ZSA9IHRoaXMuI3NlbGVjdC5jbGVhclZhbHVlLmJpbmQodGhpcy4jc2VsZWN0KSBhcyBMdU11bHRpU2VsZWN0SW5wdXRDb21wb25lbnQ8VFZhbHVlPlsnY2xlYXJWYWx1ZSddO1xuXG5cdCNvbkNoYW5nZT86ICh2YWx1ZXM6IEx1TXVsdGlTZWxlY3Rpb248VFZhbHVlPikgPT4gdm9pZDtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRzdXBlcigpO1xuXG5cdFx0dGhpcy4jc2VsZWN0LnJlZ2lzdGVyT25DaGFuZ2UgPSAoZm4pID0+IHRoaXMucmVnaXN0ZXJPbkNoYW5nZShmbik7XG5cdFx0dGhpcy4jc2VsZWN0LndyaXRlVmFsdWUgPSAodmFsdWUpID0+IHRoaXMud3JpdGVWYWx1ZSh2YWx1ZSk7XG5cdFx0dGhpcy4jc2VsZWN0LmNsZWFyVmFsdWUgPSAoJGV2ZW50KSA9PiB0aGlzLmNsZWFyVmFsdWUoJGV2ZW50KTtcblxuXHRcdHRoaXMuI3NlbGVjdC5wYW5lbEhlYWRlclRwbC5zZXQoTHVNdWx0aVNlbGVjdEFsbEhlYWRlckNvbXBvbmVudCk7XG5cdFx0dGhpcy4jc2VsZWN0LnZhbHVlc1RwbC5zZXQoTHVNdWx0aVNlbGVjdEFsbERpc3BsYXllckNvbXBvbmVudCk7XG5cdFx0dGhpcy4jc2VsZWN0Lmhhc1ZhbHVlID0gKCkgPT4gdGhpcy4jaGFzVmFsdWUoKTtcblx0fVxuXG5cdHNldFNlbGVjdEFsbChzZWxlY3RBbGw6IGJvb2xlYW4pOiB2b2lkIHtcblx0XHR0aGlzLiNzZWxlY3RXcml0ZVZhbHVlKFtdKTtcblxuXHRcdGlmICh0aGlzLiN2YWx1ZXMoKS5sZW5ndGgpIHtcblx0XHRcdHRoaXMuI3ZhbHVlcy5zZXQoW10pO1xuXHRcdH1cblx0XHR0aGlzLiNtb2RlLnNldChzZWxlY3RBbGwgPyAnYWxsJyA6ICdub25lJyk7XG5cdFx0dGhpcy4jb25DaGFuZ2U/Lih0aGlzLiNzZWxlY3RBbGxWYWx1ZSgpKTtcblx0fVxuXG5cdG92ZXJyaWRlIGlzU2VsZWN0ZWQob3B0aW9uOiBUVmFsdWUsIHNlbGVjdGVkT3B0aW9uczogVFZhbHVlW10sIG9wdGlvbkNvbXBhcmVyOiBMdU9wdGlvbkNvbXBhcmVyPFRWYWx1ZT4pOiBib29sZWFuIHtcblx0XHRzd2l0Y2ggKHRoaXMuI21vZGUoKSkge1xuXHRcdFx0Y2FzZSAnYWxsJzpcblx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRjYXNlICdpbmNsdWRlJzpcblx0XHRcdFx0cmV0dXJuIHNlbGVjdGVkT3B0aW9ucy5zb21lKChvKSA9PiBvcHRpb25Db21wYXJlcihvLCBvcHRpb24pKTtcblx0XHRcdGNhc2UgJ2V4Y2x1ZGUnOlxuXHRcdFx0XHRyZXR1cm4gIXNlbGVjdGVkT3B0aW9ucy5zb21lKChvKSA9PiBvcHRpb25Db21wYXJlcihvLCBvcHRpb24pKTtcblx0XHRcdGNhc2UgJ25vbmUnOlxuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXHR9XG5cblx0b3ZlcnJpZGUgaXNHcm91cFNlbGVjdGVkKF9vcHRpb25zOiBUVmFsdWVbXSwgbm90U2VsZWN0ZWRPcHRpb25zOiBUVmFsdWVbXSk6IGJvb2xlYW4ge1xuXHRcdHN3aXRjaCAodGhpcy4jbW9kZSgpKSB7XG5cdFx0XHRjYXNlICdhbGwnOlxuXHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdGNhc2UgJ2luY2x1ZGUnOlxuXHRcdFx0XHRyZXR1cm4gbm90U2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA9PT0gMDtcblx0XHRcdGNhc2UgJ2V4Y2x1ZGUnOlxuXHRcdFx0XHRyZXR1cm4gbm90U2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA+IDA7XG5cdFx0XHRjYXNlICdub25lJzpcblx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblx0fVxuXG5cdHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogVFZhbHVlW10gfCBMdU11bHRpU2VsZWN0aW9uPFRWYWx1ZT4pID0+IHZvaWQpOiB2b2lkIHtcblx0XHR0aGlzLiNvbkNoYW5nZSA9IGZuO1xuXG5cdFx0dGhpcy4jc2VsZWN0UmVnaXN0ZXJPbkNoYW5nZSgodmFsdWVzOiBUVmFsdWVbXSkgPT4ge1xuXHRcdFx0dGhpcy4jdmFsdWVzLnNldCh2YWx1ZXMpO1xuXHRcdFx0Y29uc3Qgb2xkTW9kZSA9IHRoaXMuI21vZGUoKTtcblx0XHRcdHRoaXMuI21vZGUuc2V0KHRoaXMuI2dldE5leHRNb2RlKG9sZE1vZGUsIHZhbHVlcykpO1xuXHRcdFx0dGhpcy4jb25DaGFuZ2U/Lih0aGlzLiNzZWxlY3RBbGxWYWx1ZSgpKTtcblx0XHR9KTtcblx0fVxuXG5cdHdyaXRlVmFsdWUodmFsdWU6IFRWYWx1ZVtdIHwgTHVNdWx0aVNlbGVjdGlvbjxUVmFsdWU+KTogdm9pZCB7XG5cdFx0aWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ011bHRpU2VsZWN0V2l0aFNlbGVjdEFsbERpcmVjdGl2ZSBkb2VzIG5vdCBzdXBwb3J0IGFycmF5IHZhbHVlcy4gUGFzcyBhIEx1TXVsdGlTZWxlY3RXaXRoU2VsZWN0QWxsVmFsdWU8VFZhbHVlPi4nKTtcblx0XHR9XG5cblx0XHRsZXQgbW9kZTogTHVNdWx0aVNlbGVjdGlvbk1vZGU7XG5cdFx0bGV0IHZhbHVlczogVFZhbHVlW107XG5cblx0XHRpZiAoIXZhbHVlKSB7XG5cdFx0XHR2YWx1ZXMgPSBbXTtcblx0XHRcdG1vZGUgPSAnbm9uZSc7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHZhbHVlcyA9IHZhbHVlLm1vZGUgPT09ICdleGNsdWRlJyB8fCB2YWx1ZS5tb2RlID09PSAnaW5jbHVkZScgPyB2YWx1ZS52YWx1ZXMgOiBbXTtcblx0XHRcdG1vZGUgPSB2YWx1ZS5tb2RlO1xuXHRcdH1cblxuXHRcdHRoaXMuI3NlbGVjdFdyaXRlVmFsdWUodmFsdWVzKTtcblx0XHR0aGlzLiNtb2RlLnNldChtb2RlKTtcblx0XHR0aGlzLiN2YWx1ZXMuc2V0KHZhbHVlcyk7XG5cdH1cblxuXHRjbGVhclZhbHVlKCRldmVudDogRXZlbnQpOiB2b2lkIHtcblx0XHR0aGlzLiNtb2RlLnNldCgnbm9uZScpO1xuXHRcdHRoaXMuI3NlbGVjdENsZWFyVmFsdWUoJGV2ZW50KTtcblx0fVxuXG5cdCNnZXROZXh0TW9kZShmcm9tTW9kZTogTHVNdWx0aVNlbGVjdGlvbk1vZGUsIHZhbHVlczogVFZhbHVlW10pOiBMdU11bHRpU2VsZWN0aW9uTW9kZSB7XG5cdFx0Ly8gS2VlcCAnbm9uZScgd2hlbiBubyB2YWx1ZSBzZWxlY3RlZFxuXHRcdGlmIChmcm9tTW9kZSA9PT0gJ25vbmUnICYmIHZhbHVlcy5sZW5ndGggPT09IDApIHtcblx0XHRcdHJldHVybiAnbm9uZSc7XG5cdFx0fVxuXG5cdFx0Y29uc3QgYWxsU2VsZWN0ZWQgPSB2YWx1ZXMubGVuZ3RoID09PSB0aGlzLnRvdGFsQ291bnQoKTtcblxuXHRcdGlmIChhbGxTZWxlY3RlZCkge1xuXHRcdFx0cmV0dXJuICdhbGwnO1xuXHRcdH1cblxuXHRcdGNvbnN0IHNvbWVTZWxlY3RlZCA9IHZhbHVlcy5sZW5ndGggPiAwO1xuXG5cdFx0Ly8gVGhlIGZpcnN0IHZhbHVlIHNlbGVjdGVkIHdpbGwgdHJhbnNpdGlvbiBmcm9tIFwiYWxsXCIgdG8gXCJleGNsdWRlXCJcblx0XHRpZiAoZnJvbU1vZGUgPT09ICdhbGwnICYmIHNvbWVTZWxlY3RlZCkge1xuXHRcdFx0cmV0dXJuICdleGNsdWRlJztcblx0XHR9XG5cblx0XHQvLyBUaGUgZmlyc3QgdmFsdWUgc2VsZWN0ZWQgd2lsbCB0cmFuc2l0aW9uIGZyb20gXCJub25lXCIgdG8gXCJpbmNsdWRlXCJcblx0XHRpZiAoZnJvbU1vZGUgPT09ICdub25lJyAmJiBzb21lU2VsZWN0ZWQpIHtcblx0XHRcdHJldHVybiAnaW5jbHVkZSc7XG5cdFx0fVxuXG5cdFx0Ly8gV2hlbiBub25lIHNlbGVjdGVkLCBcImluY2x1ZGVcIiAtPiBcIm5vbmVcIiBhbmQgXCJleGNsdWRlXCIgLT4gXCJhbGxcIlxuXHRcdGlmICh2YWx1ZXMubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRyZXR1cm4gZnJvbU1vZGUgPT09ICdpbmNsdWRlJyA/ICdub25lJyA6ICdhbGwnO1xuXHRcdH1cblxuXHRcdC8vIE5vIG1hdGNoLCBrZWVwIHRoZSBzYW1lIG1vZGVcblx0XHRyZXR1cm4gZnJvbU1vZGU7XG5cdH1cbn1cbiJdfQ==
@@ -1,4 +1,5 @@
1
1
  export * from './displayer/index';
2
2
  export * from './input/index';
3
3
  export * from './select.translate';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL25nL211bHRpLXNlbGVjdC9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZGlzcGxheWVyL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vaW5wdXQvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3QudHJhbnNsYXRlJztcbiJdfQ==
4
+ export * from './select.utils';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL25nL211bHRpLXNlbGVjdC9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxlQUFlLENBQUM7QUFFOUIsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kaXNwbGF5ZXIvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnB1dC9pbmRleCc7XG5leHBvcnQgeyBMdU11bHRpU2VsZWN0aW9uLCBMdU11bHRpU2VsZWN0aW9uTW9kZSB9IGZyb20gJy4vc2VsZWN0Lm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vc2VsZWN0LnRyYW5zbGF0ZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlbGVjdC51dGlscyc7XG4iXX0=
@@ -17,7 +17,7 @@ class DefaultIsSelectedStrategy extends ɵIsSelectedStrategy {
17
17
  return selectedOptions.some((o) => optionComparer(o, option));
18
18
  }
19
19
  isGroupSelected(options, notSelectedOptions) {
20
- return notSelectedOptions.length === options.length;
20
+ return !notSelectedOptions.length && notSelectedOptions.length !== options.length;
21
21
  }
22
22
  }
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbmcvbXVsdGktc2VsZWN0L3NlbGVjdC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFJM0QsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxjQUFjLENBQXVDLGtCQUFrQixDQUFDLENBQUM7QUFVL0csTUFBTSxPQUFnQixtQkFBbUI7OEdBQW5CLG1CQUFtQjtrSEFBbkIsbUJBQW1CLGNBSDVCLE1BQU0sY0FDTixHQUFHLEVBQUUsQ0FBQyxJQUFJLHlCQUF5QixFQUFFOzsyRkFFNUIsbUJBQW1CO2tCQUp4QyxVQUFVO21CQUFDO29CQUNYLFVBQVUsRUFBRSxNQUFNO29CQUNsQixVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSx5QkFBeUIsRUFBRTtpQkFDakQ7O0FBTUQsTUFBTSx5QkFBbUMsU0FBUSxtQkFBNEI7SUFDNUUsVUFBVSxDQUFDLE1BQWUsRUFBRSxlQUEwQixFQUFFLGNBQXlDO1FBQ2hHLE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxlQUFlLENBQUMsT0FBa0IsRUFBRSxrQkFBNkI7UUFDaEUsT0FBTyxrQkFBa0IsQ0FBQyxNQUFNLEtBQUssT0FBTyxDQUFDLE1BQU0sQ0FBQztJQUNyRCxDQUFDO0NBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTHVPcHRpb25Db21wYXJlciB9IGZyb20gJ0BsdWNjYS1mcm9udC9uZy9jb3JlLXNlbGVjdCc7XG5pbXBvcnQgdHlwZSB7IEx1TXVsdGlTZWxlY3RJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQnO1xuXG5leHBvcnQgY29uc3QgTVVMVElfU0VMRUNUX0lOUFVUID0gbmV3IEluamVjdGlvblRva2VuPEx1TXVsdGlTZWxlY3RJbnB1dENvbXBvbmVudDx1bmtub3duPj4oJ011bHRpU2VsZWN0SW5wdXQnKTtcblxuZXhwb3J0IHR5cGUgTHVNdWx0aVNlbGVjdGlvbjxUPiA9IHsgbW9kZTogJ2luY2x1ZGUnOyB2YWx1ZXM6IFRbXSB9IHwgeyBtb2RlOiAnZXhjbHVkZSc7IHZhbHVlczogVFtdIH0gfCB7IG1vZGU6ICdub25lJyB9IHwgeyBtb2RlOiAnYWxsJyB9O1xuXG5leHBvcnQgdHlwZSBMdU11bHRpU2VsZWN0aW9uTW9kZSA9IEx1TXVsdGlTZWxlY3Rpb248dW5rbm93bj5bJ21vZGUnXTtcblxuQEluamVjdGFibGUoe1xuXHRwcm92aWRlZEluOiAncm9vdCcsXG5cdHVzZUZhY3Rvcnk6ICgpID0+IG5ldyBEZWZhdWx0SXNTZWxlY3RlZFN0cmF0ZWd5KCksXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIMm1SXNTZWxlY3RlZFN0cmF0ZWd5PFRPcHRpb24+IHtcblx0YWJzdHJhY3QgaXNTZWxlY3RlZChvcHRpb246IFRPcHRpb24sIHNlbGVjdGVkT3B0aW9uczogVE9wdGlvbltdLCBvcHRpb25Db21wYXJlcjogTHVPcHRpb25Db21wYXJlcjxUT3B0aW9uPik6IGJvb2xlYW47XG5cdGFic3RyYWN0IGlzR3JvdXBTZWxlY3RlZChvcHRpb25zOiBUT3B0aW9uW10sIG5vdFNlbGVjdGVkT3B0aW9uczogVE9wdGlvbltdKTogYm9vbGVhbjtcbn1cblxuY2xhc3MgRGVmYXVsdElzU2VsZWN0ZWRTdHJhdGVneTxUT3B0aW9uPiBleHRlbmRzIMm1SXNTZWxlY3RlZFN0cmF0ZWd5PFRPcHRpb24+IHtcblx0aXNTZWxlY3RlZChvcHRpb246IFRPcHRpb24sIHNlbGVjdGVkT3B0aW9uczogVE9wdGlvbltdLCBvcHRpb25Db21wYXJlcjogTHVPcHRpb25Db21wYXJlcjxUT3B0aW9uPik6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBzZWxlY3RlZE9wdGlvbnMuc29tZSgobykgPT4gb3B0aW9uQ29tcGFyZXIobywgb3B0aW9uKSk7XG5cdH1cblxuXHRpc0dyb3VwU2VsZWN0ZWQob3B0aW9uczogVE9wdGlvbltdLCBub3RTZWxlY3RlZE9wdGlvbnM6IFRPcHRpb25bXSk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBub3RTZWxlY3RlZE9wdGlvbnMubGVuZ3RoID09PSBvcHRpb25zLmxlbmd0aDtcblx0fVxufVxuIl19
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbmcvbXVsdGktc2VsZWN0L3NlbGVjdC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFJM0QsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxjQUFjLENBQXVDLGtCQUFrQixDQUFDLENBQUM7QUFVL0csTUFBTSxPQUFnQixtQkFBbUI7OEdBQW5CLG1CQUFtQjtrSEFBbkIsbUJBQW1CLGNBSDVCLE1BQU0sY0FDTixHQUFHLEVBQUUsQ0FBQyxJQUFJLHlCQUF5QixFQUFFOzsyRkFFNUIsbUJBQW1CO2tCQUp4QyxVQUFVO21CQUFDO29CQUNYLFVBQVUsRUFBRSxNQUFNO29CQUNsQixVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSx5QkFBeUIsRUFBRTtpQkFDakQ7O0FBTUQsTUFBTSx5QkFBbUMsU0FBUSxtQkFBNEI7SUFDNUUsVUFBVSxDQUFDLE1BQWUsRUFBRSxlQUEwQixFQUFFLGNBQXlDO1FBQ2hHLE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxlQUFlLENBQUMsT0FBa0IsRUFBRSxrQkFBNkI7UUFDaEUsT0FBTyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLEtBQUssT0FBTyxDQUFDLE1BQU0sQ0FBQztJQUNuRixDQUFDO0NBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTHVPcHRpb25Db21wYXJlciB9IGZyb20gJ0BsdWNjYS1mcm9udC9uZy9jb3JlLXNlbGVjdCc7XG5pbXBvcnQgdHlwZSB7IEx1TXVsdGlTZWxlY3RJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQnO1xuXG5leHBvcnQgY29uc3QgTVVMVElfU0VMRUNUX0lOUFVUID0gbmV3IEluamVjdGlvblRva2VuPEx1TXVsdGlTZWxlY3RJbnB1dENvbXBvbmVudDx1bmtub3duPj4oJ011bHRpU2VsZWN0SW5wdXQnKTtcblxuZXhwb3J0IHR5cGUgTHVNdWx0aVNlbGVjdGlvbjxUPiA9IHsgbW9kZTogJ2luY2x1ZGUnOyB2YWx1ZXM6IFRbXSB9IHwgeyBtb2RlOiAnZXhjbHVkZSc7IHZhbHVlczogVFtdIH0gfCB7IG1vZGU6ICdub25lJyB9IHwgeyBtb2RlOiAnYWxsJyB9O1xuXG5leHBvcnQgdHlwZSBMdU11bHRpU2VsZWN0aW9uTW9kZSA9IEx1TXVsdGlTZWxlY3Rpb248dW5rbm93bj5bJ21vZGUnXTtcblxuQEluamVjdGFibGUoe1xuXHRwcm92aWRlZEluOiAncm9vdCcsXG5cdHVzZUZhY3Rvcnk6ICgpID0+IG5ldyBEZWZhdWx0SXNTZWxlY3RlZFN0cmF0ZWd5KCksXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIMm1SXNTZWxlY3RlZFN0cmF0ZWd5PFRPcHRpb24+IHtcblx0YWJzdHJhY3QgaXNTZWxlY3RlZChvcHRpb246IFRPcHRpb24sIHNlbGVjdGVkT3B0aW9uczogVE9wdGlvbltdLCBvcHRpb25Db21wYXJlcjogTHVPcHRpb25Db21wYXJlcjxUT3B0aW9uPik6IGJvb2xlYW47XG5cdGFic3RyYWN0IGlzR3JvdXBTZWxlY3RlZChvcHRpb25zOiBUT3B0aW9uW10sIG5vdFNlbGVjdGVkT3B0aW9uczogVE9wdGlvbltdKTogYm9vbGVhbjtcbn1cblxuY2xhc3MgRGVmYXVsdElzU2VsZWN0ZWRTdHJhdGVneTxUT3B0aW9uPiBleHRlbmRzIMm1SXNTZWxlY3RlZFN0cmF0ZWd5PFRPcHRpb24+IHtcblx0aXNTZWxlY3RlZChvcHRpb246IFRPcHRpb24sIHNlbGVjdGVkT3B0aW9uczogVE9wdGlvbltdLCBvcHRpb25Db21wYXJlcjogTHVPcHRpb25Db21wYXJlcjxUT3B0aW9uPik6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBzZWxlY3RlZE9wdGlvbnMuc29tZSgobykgPT4gb3B0aW9uQ29tcGFyZXIobywgb3B0aW9uKSk7XG5cdH1cblxuXHRpc0dyb3VwU2VsZWN0ZWQob3B0aW9uczogVE9wdGlvbltdLCBub3RTZWxlY3RlZE9wdGlvbnM6IFRPcHRpb25bXSk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiAhbm90U2VsZWN0ZWRPcHRpb25zLmxlbmd0aCAmJiBub3RTZWxlY3RlZE9wdGlvbnMubGVuZ3RoICE9PSBvcHRpb25zLmxlbmd0aDtcblx0fVxufVxuIl19
@@ -0,0 +1,32 @@
1
+ export function selectionToQueryParams(key, value, selector) {
2
+ if (value.mode === 'all' || value.mode === 'none') {
3
+ return {};
4
+ }
5
+ return { [value.mode === 'include' ? key : `-${key}`]: value.values.map(selector).join(',') };
6
+ }
7
+ /**
8
+ * Transforms a selection from withSelectAll, the complete list of options and a getKey function to a list of options.
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * const selection = { mode: 'exclude', values: [{ id: 1, name: 'foo' }] };
13
+ * const allOptions = [{ id: 1, name: 'foo' }, { id: 2, name: 'bar' }, { id: 3, name: 'baz' }];
14
+ *
15
+ * const selectedOptions = selectionToOptions(selection, allOptions, (o) => o.id);
16
+ * ```
17
+ */
18
+ export function selectionToOptions(selection, options, getKeyFn) {
19
+ switch (selection.mode) {
20
+ case 'include':
21
+ return selection.values;
22
+ case 'exclude': {
23
+ const excludedKeys = new Set(selection.values.map(getKeyFn));
24
+ return options.filter((o) => !excludedKeys.has(getKeyFn(o)));
25
+ }
26
+ case 'all':
27
+ return options;
28
+ case 'none':
29
+ return [];
30
+ }
31
+ }
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbmcvbXVsdGktc2VsZWN0L3NlbGVjdC51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLFVBQVUsc0JBQXNCLENBQXdCLEdBQVEsRUFBRSxLQUEwQixFQUFFLFFBQStCO0lBQ2xJLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxLQUFLLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FBQztRQUNuRCxPQUFPLEVBQUUsQ0FBQztJQUNYLENBQUM7SUFDRCxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFxQyxDQUFDO0FBQ2xJLENBQUM7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUFJLFNBQThCLEVBQUUsT0FBWSxFQUFFLFFBQStCO0lBQ2xILFFBQVEsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3hCLEtBQUssU0FBUztZQUNiLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUN6QixLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDaEIsTUFBTSxZQUFZLEdBQUcsSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUM3RCxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlELENBQUM7UUFDRCxLQUFLLEtBQUs7WUFDVCxPQUFPLE9BQU8sQ0FBQztRQUNoQixLQUFLLE1BQU07WUFDVixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7QUFDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTHVNdWx0aVNlbGVjdGlvbiB9IGZyb20gJy4vc2VsZWN0Lm1vZGVsJztcblxuZXhwb3J0IGZ1bmN0aW9uIHNlbGVjdGlvblRvUXVlcnlQYXJhbXM8VCwgS2V5IGV4dGVuZHMgc3RyaW5nPihrZXk6IEtleSwgdmFsdWU6IEx1TXVsdGlTZWxlY3Rpb248VD4sIHNlbGVjdG9yOiAodmFsdWU6IFQpID0+IHVua25vd24pOiBQYXJ0aWFsPFJlY29yZDxLZXkgfCBgLSR7S2V5fWAsIHN0cmluZz4+IHtcblx0aWYgKHZhbHVlLm1vZGUgPT09ICdhbGwnIHx8IHZhbHVlLm1vZGUgPT09ICdub25lJykge1xuXHRcdHJldHVybiB7fTtcblx0fVxuXHRyZXR1cm4geyBbdmFsdWUubW9kZSA9PT0gJ2luY2x1ZGUnID8ga2V5IDogYC0ke2tleX1gXTogdmFsdWUudmFsdWVzLm1hcChzZWxlY3Rvcikuam9pbignLCcpIH0gYXMgUmVjb3JkPEtleSB8IGAtJHtLZXl9YCwgc3RyaW5nPjtcbn1cblxuLyoqXG4gKiBUcmFuc2Zvcm1zIGEgc2VsZWN0aW9uIGZyb20gd2l0aFNlbGVjdEFsbCwgdGhlIGNvbXBsZXRlIGxpc3Qgb2Ygb3B0aW9ucyBhbmQgYSBnZXRLZXkgZnVuY3Rpb24gdG8gYSBsaXN0IG9mIG9wdGlvbnMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBjb25zdCBzZWxlY3Rpb24gPSB7IG1vZGU6ICdleGNsdWRlJywgdmFsdWVzOiBbeyBpZDogMSwgbmFtZTogJ2ZvbycgfV0gfTtcbiAqIGNvbnN0IGFsbE9wdGlvbnMgPSBbeyBpZDogMSwgbmFtZTogJ2ZvbycgfSwgeyBpZDogMiwgbmFtZTogJ2JhcicgfSwgeyBpZDogMywgbmFtZTogJ2JheicgfV07XG4gKlxuICogY29uc3Qgc2VsZWN0ZWRPcHRpb25zID0gc2VsZWN0aW9uVG9PcHRpb25zKHNlbGVjdGlvbiwgYWxsT3B0aW9ucywgKG8pID0+IG8uaWQpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZWxlY3Rpb25Ub09wdGlvbnM8VD4oc2VsZWN0aW9uOiBMdU11bHRpU2VsZWN0aW9uPFQ+LCBvcHRpb25zOiBUW10sIGdldEtleUZuOiAodmFsdWU6IFQpID0+IHVua25vd24pOiBUW10ge1xuXHRzd2l0Y2ggKHNlbGVjdGlvbi5tb2RlKSB7XG5cdFx0Y2FzZSAnaW5jbHVkZSc6XG5cdFx0XHRyZXR1cm4gc2VsZWN0aW9uLnZhbHVlcztcblx0XHRjYXNlICdleGNsdWRlJzoge1xuXHRcdFx0Y29uc3QgZXhjbHVkZWRLZXlzID0gbmV3IFNldChzZWxlY3Rpb24udmFsdWVzLm1hcChnZXRLZXlGbikpO1xuXHRcdFx0cmV0dXJuIG9wdGlvbnMuZmlsdGVyKChvKSA9PiAhZXhjbHVkZWRLZXlzLmhhcyhnZXRLZXlGbihvKSkpO1xuXHRcdH1cblx0XHRjYXNlICdhbGwnOlxuXHRcdFx0cmV0dXJuIG9wdGlvbnM7XG5cdFx0Y2FzZSAnbm9uZSc6XG5cdFx0XHRyZXR1cm4gW107XG5cdH1cbn1cbiJdfQ==
@@ -0,0 +1,59 @@
1
+ import { DOCUMENT } from '@angular/common';
2
+ import { Injectable, inject } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ export class EllipsisRuler {
5
+ #document;
6
+ constructor() {
7
+ this.#document = inject(DOCUMENT);
8
+ this.elementCloned = this.#document.createElement('div');
9
+ this.parentMasked = this.#document.createElement('div');
10
+ this.parentMasked.classList.add('u-mask');
11
+ this.parentMasked.setAttribute('aria-hidden', 'true');
12
+ this.elementCloned.style.width = 'fit-content';
13
+ this.elementCloned.style.whiteSpace = 'nowrap';
14
+ this.parentMasked.appendChild(this.elementCloned);
15
+ this.#document.body.appendChild(this.parentMasked);
16
+ }
17
+ /**
18
+ * Hacky af but let's explain everything
19
+ * This method checks for ellipsis by cloning the node and checking its width against original element.
20
+ *
21
+ * We used to do this using scrollWidth but the thing is, it's a rounded value. Sometimes,
22
+ * you'd get true while it should be false and vice-versa, because of rounding.
23
+ *
24
+ * So we duplicate the properties we're interested in on the element to be tested to calculate its ideal size,
25
+ * which we then compare with its current size.
26
+ */
27
+ hasEllipsis(element) {
28
+ const elementStyle = window.getComputedStyle(element);
29
+ if (elementStyle.textOverflow !== 'ellipsis') {
30
+ return false;
31
+ }
32
+ Object.assign(this.elementCloned.style, {
33
+ padding: elementStyle.padding,
34
+ borderWidth: elementStyle.borderWidth,
35
+ borderStyle: elementStyle.borderStyle,
36
+ boxSizing: elementStyle.boxSizing,
37
+ fontFamily: elementStyle.fontFamily,
38
+ fontWeight: elementStyle.fontWeight,
39
+ fontStyle: elementStyle.fontStyle,
40
+ fontSize: (Number(elementStyle.fontSize.replace('px', '')) / Number(window.getComputedStyle(document.body).fontSize.replace('px', ''))).toString() + 'rem',
41
+ });
42
+ this.elementCloned.innerHTML = element.innerHTML;
43
+ try {
44
+ const elementClonedWidth = this.elementCloned.getBoundingClientRect().width;
45
+ const elementWidth = element.getBoundingClientRect().width;
46
+ return elementClonedWidth > elementWidth;
47
+ }
48
+ catch (e) {
49
+ return false;
50
+ }
51
+ }
52
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: EllipsisRuler, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
53
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: EllipsisRuler, providedIn: 'root' }); }
54
+ }
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: EllipsisRuler, decorators: [{
56
+ type: Injectable,
57
+ args: [{ providedIn: 'root' }]
58
+ }], ctorParameters: () => [] });
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxsaXBzaXMucnVsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy90b29sdGlwL3RyaWdnZXIvZWxsaXBzaXMucnVsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUduRCxNQUFNLE9BQU8sYUFBYTtJQUN6QixTQUFTLENBQW9CO0lBSTdCO1FBSkEsY0FBUyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNwQixrQkFBYSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BELGlCQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFHM0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUV0RCxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsYUFBYSxDQUFDO1FBQy9DLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUM7UUFFL0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILFdBQVcsQ0FBQyxPQUFvQjtRQUMvQixNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdEQsSUFBSSxZQUFZLENBQUMsWUFBWSxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQzlDLE9BQU8sS0FBSyxDQUFDO1FBQ2QsQ0FBQztRQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUU7WUFDdkMsT0FBTyxFQUFFLFlBQVksQ0FBQyxPQUFPO1lBQzdCLFdBQVcsRUFBRSxZQUFZLENBQUMsV0FBVztZQUNyQyxXQUFXLEVBQUUsWUFBWSxDQUFDLFdBQVc7WUFDckMsU0FBUyxFQUFFLFlBQVksQ0FBQyxTQUFTO1lBQ2pDLFVBQVUsRUFBRSxZQUFZLENBQUMsVUFBVTtZQUNuQyxVQUFVLEVBQUUsWUFBWSxDQUFDLFVBQVU7WUFDbkMsU0FBUyxFQUFFLFlBQVksQ0FBQyxTQUFTO1lBQ2pDLFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLEdBQUcsS0FBSztTQUMxSixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBRWpELElBQUksQ0FBQztZQUNKLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUM1RSxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFFM0QsT0FBTyxrQkFBa0IsR0FBRyxZQUFZLENBQUM7UUFDMUMsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWixPQUFPLEtBQUssQ0FBQztRQUNkLENBQUM7SUFDRixDQUFDOzhHQXREVyxhQUFhO2tIQUFiLGFBQWEsY0FEQSxNQUFNOzsyRkFDbkIsYUFBYTtrQkFEekIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBFbGxpcHNpc1J1bGVyIHtcblx0I2RvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcblx0cmVhZG9ubHkgZWxlbWVudENsb25lZCA9IHRoaXMuI2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuXHRyZWFkb25seSBwYXJlbnRNYXNrZWQgPSB0aGlzLiNkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHR0aGlzLnBhcmVudE1hc2tlZC5jbGFzc0xpc3QuYWRkKCd1LW1hc2snKTtcblx0XHR0aGlzLnBhcmVudE1hc2tlZC5zZXRBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJywgJ3RydWUnKTtcblxuXHRcdHRoaXMuZWxlbWVudENsb25lZC5zdHlsZS53aWR0aCA9ICdmaXQtY29udGVudCc7XG5cdFx0dGhpcy5lbGVtZW50Q2xvbmVkLnN0eWxlLndoaXRlU3BhY2UgPSAnbm93cmFwJztcblxuXHRcdHRoaXMucGFyZW50TWFza2VkLmFwcGVuZENoaWxkKHRoaXMuZWxlbWVudENsb25lZCk7XG5cdFx0dGhpcy4jZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLnBhcmVudE1hc2tlZCk7XG5cdH1cblxuXHQvKipcblx0ICogSGFja3kgYWYgYnV0IGxldCdzIGV4cGxhaW4gZXZlcnl0aGluZ1xuXHQgKiBUaGlzIG1ldGhvZCBjaGVja3MgZm9yIGVsbGlwc2lzIGJ5IGNsb25pbmcgdGhlIG5vZGUgYW5kIGNoZWNraW5nIGl0cyB3aWR0aCBhZ2FpbnN0IG9yaWdpbmFsIGVsZW1lbnQuXG5cdCAqXG5cdCAqIFdlIHVzZWQgdG8gZG8gdGhpcyB1c2luZyBzY3JvbGxXaWR0aCBidXQgdGhlIHRoaW5nIGlzLCBpdCdzIGEgcm91bmRlZCB2YWx1ZS4gU29tZXRpbWVzLFxuXHQgKiB5b3UnZCBnZXQgdHJ1ZSB3aGlsZSBpdCBzaG91bGQgYmUgZmFsc2UgYW5kIHZpY2UtdmVyc2EsIGJlY2F1c2Ugb2Ygcm91bmRpbmcuXG5cdCAqXG5cdCAqIFNvIHdlIGR1cGxpY2F0ZSB0aGUgcHJvcGVydGllcyB3ZSdyZSBpbnRlcmVzdGVkIGluIG9uIHRoZSBlbGVtZW50IHRvIGJlIHRlc3RlZCB0byBjYWxjdWxhdGUgaXRzIGlkZWFsIHNpemUsXG5cdCAqIHdoaWNoIHdlIHRoZW4gY29tcGFyZSB3aXRoIGl0cyBjdXJyZW50IHNpemUuXG5cdCAqL1xuXHRoYXNFbGxpcHNpcyhlbGVtZW50OiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xuXHRcdGNvbnN0IGVsZW1lbnRTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpO1xuXG5cdFx0aWYgKGVsZW1lbnRTdHlsZS50ZXh0T3ZlcmZsb3cgIT09ICdlbGxpcHNpcycpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHRPYmplY3QuYXNzaWduKHRoaXMuZWxlbWVudENsb25lZC5zdHlsZSwge1xuXHRcdFx0cGFkZGluZzogZWxlbWVudFN0eWxlLnBhZGRpbmcsXG5cdFx0XHRib3JkZXJXaWR0aDogZWxlbWVudFN0eWxlLmJvcmRlcldpZHRoLFxuXHRcdFx0Ym9yZGVyU3R5bGU6IGVsZW1lbnRTdHlsZS5ib3JkZXJTdHlsZSxcblx0XHRcdGJveFNpemluZzogZWxlbWVudFN0eWxlLmJveFNpemluZyxcblx0XHRcdGZvbnRGYW1pbHk6IGVsZW1lbnRTdHlsZS5mb250RmFtaWx5LFxuXHRcdFx0Zm9udFdlaWdodDogZWxlbWVudFN0eWxlLmZvbnRXZWlnaHQsXG5cdFx0XHRmb250U3R5bGU6IGVsZW1lbnRTdHlsZS5mb250U3R5bGUsXG5cdFx0XHRmb250U2l6ZTogKE51bWJlcihlbGVtZW50U3R5bGUuZm9udFNpemUucmVwbGFjZSgncHgnLCAnJykpIC8gTnVtYmVyKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpLmZvbnRTaXplLnJlcGxhY2UoJ3B4JywgJycpKSkudG9TdHJpbmcoKSArICdyZW0nLFxuXHRcdH0pO1xuXG5cdFx0dGhpcy5lbGVtZW50Q2xvbmVkLmlubmVySFRNTCA9IGVsZW1lbnQuaW5uZXJIVE1MO1xuXG5cdFx0dHJ5IHtcblx0XHRcdGNvbnN0IGVsZW1lbnRDbG9uZWRXaWR0aCA9IHRoaXMuZWxlbWVudENsb25lZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcblx0XHRcdGNvbnN0IGVsZW1lbnRXaWR0aCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG5cblx0XHRcdHJldHVybiBlbGVtZW50Q2xvbmVkV2lkdGggPiBlbGVtZW50V2lkdGg7XG5cdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblx0fVxufVxuIl19
@@ -1,16 +1,18 @@
1
1
  import { Overlay } from '@angular/cdk/overlay';
2
2
  import { ComponentPortal } from '@angular/cdk/portal';
3
- import { booleanAttribute, ChangeDetectorRef, DestroyRef, Directive, ElementRef, HostBinding, HostListener, inject, Input, numberAttribute, Renderer2, } from '@angular/core';
3
+ import { ChangeDetectorRef, DestroyRef, Directive, ElementRef, HostBinding, HostListener, Input, Renderer2, booleanAttribute, inject, numberAttribute, } from '@angular/core';
4
4
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
5
- import { BehaviorSubject, combineLatest, merge, Observable, startWith, Subject, switchMap, timer } from 'rxjs';
5
+ import { BehaviorSubject, Observable, Subject, combineLatest, merge, startWith, switchMap, timer } from 'rxjs';
6
6
  import { debounce, debounceTime, filter, map } from 'rxjs/operators';
7
7
  import { LuTooltipPanelComponent } from '../panel';
8
+ import { EllipsisRuler } from './ellipsis.ruler';
8
9
  import * as i0 from "@angular/core";
9
10
  let nextId = 0;
10
11
  export class LuTooltipTriggerDirective {
11
12
  #overlay;
12
13
  #host;
13
14
  #renderer;
15
+ #ruler;
14
16
  #destroyRef;
15
17
  #cdr;
16
18
  #openDelay$;
@@ -53,6 +55,7 @@ export class LuTooltipTriggerDirective {
53
55
  this.#overlay = inject(Overlay);
54
56
  this.#host = inject(ElementRef);
55
57
  this.#renderer = inject(Renderer2);
58
+ this.#ruler = inject(EllipsisRuler);
56
59
  this.#destroyRef = inject(DestroyRef);
57
60
  this.#cdr = inject(ChangeDetectorRef);
58
61
  this.#openDelay$ = new BehaviorSubject(300);
@@ -83,7 +86,7 @@ export class LuTooltipTriggerDirective {
83
86
  }
84
87
  // If not disabled, let's check for ellipsis if needed
85
88
  if (this.luTooltipWhenEllipsis) {
86
- return this.hasEllipsis();
89
+ return this.#ruler.hasEllipsis(this.#host.nativeElement);
87
90
  }
88
91
  // If it's not disabled and is not triggered based on ellipsis, just return true
89
92
  return true;
@@ -145,7 +148,7 @@ export class LuTooltipTriggerDirective {
145
148
  }
146
149
  }
147
150
  setAccessibilityProperties(tabindex) {
148
- if (this.#disabled || (this.luTooltipWhenEllipsis && !this.hasEllipsis())) {
151
+ if (this.#disabled || (this.luTooltipWhenEllipsis && !this.#ruler.hasEllipsis(this.#host.nativeElement))) {
149
152
  this.#renderer.removeAttribute(this.#host.nativeElement, 'tabindex');
150
153
  return;
151
154
  }
@@ -157,53 +160,6 @@ export class LuTooltipTriggerDirective {
157
160
  this.#renderer.setAttribute(this.#host.nativeElement, 'tabindex', tabindex.toString());
158
161
  }
159
162
  }
160
- /**
161
- * Hacky af but let's explain everything
162
- * This method checks for ellipsis by cloning the node and checking its width against original element.
163
- *
164
- * We used to do this using scrollWidth but the thing is, it's a rounded value. Sometimes,
165
- * you'd get true while it should be false and vice-versa, because of rounding.
166
- *
167
- * So we duplicate the properties we're interested in on the element to be tested to calculate its ideal size,
168
- * which we then compare with its current size.
169
- *
170
- * @private
171
- */
172
- hasEllipsis() {
173
- if (window.getComputedStyle(this.#host.nativeElement).textOverflow !== 'ellipsis') {
174
- return false;
175
- }
176
- const element = this.#host.nativeElement;
177
- const elementCloned = this.#renderer.createElement('div');
178
- const parentMasked = this.#renderer.createElement('div');
179
- const elementStyle = window.getComputedStyle(element);
180
- this.#renderer.addClass(parentMasked, 'u-mask');
181
- this.#renderer.setAttribute(parentMasked, 'aria-hidden', 'true');
182
- this.#renderer.setStyle(elementCloned, 'width', 'fit-content');
183
- this.#renderer.setStyle(elementCloned, 'padding', elementStyle.padding);
184
- this.#renderer.setStyle(elementCloned, 'borderWidth', elementStyle.borderWidth);
185
- this.#renderer.setStyle(elementCloned, 'borderStyle', elementStyle.borderStyle);
186
- this.#renderer.setStyle(elementCloned, 'boxSizing', elementStyle.boxSizing);
187
- this.#renderer.setStyle(elementCloned, 'fontFamily', elementStyle.fontFamily);
188
- this.#renderer.setStyle(elementCloned, 'fontWeight', elementStyle.fontWeight);
189
- this.#renderer.setStyle(elementCloned, 'fontStyle', elementStyle.fontStyle);
190
- this.#renderer.setStyle(elementCloned, 'whiteSpace', 'nowrap');
191
- this.#renderer.setStyle(elementCloned, 'fontSize', (Number(elementStyle.fontSize.replace('px', '')) / Number(window.getComputedStyle(document.body).fontSize.replace('px', ''))).toString() + 'rem');
192
- elementCloned.innerHTML = element.innerHTML;
193
- this.#renderer.appendChild(parentMasked, elementCloned);
194
- this.#renderer.appendChild(document.body, parentMasked);
195
- try {
196
- const elementClonedWidth = elementCloned.getBoundingClientRect().width;
197
- const elementWidth = element.getBoundingClientRect().width;
198
- return elementClonedWidth > elementWidth;
199
- }
200
- catch (e) {
201
- return false;
202
- }
203
- finally {
204
- parentMasked.remove();
205
- }
206
- }
207
163
  ngAfterContentInit() {
208
164
  this.setAccessibilityProperties(0);
209
165
  this._id = this.#host.nativeElement.id || this.#generatedId;
@@ -347,4 +303,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
347
303
  type: HostBinding,
348
304
  args: ['attr.aria-describedby']
349
305
  }] } });
350
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC10cmlnZ2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nL3Rvb2x0aXAvdHJpZ2dlci90b29sdGlwLXRyaWdnZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBd0YsT0FBTyxFQUFnRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25NLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBRU4sZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixVQUFVLEVBQ1YsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsZUFBZSxFQUVmLFNBQVMsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUdoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRyxPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sVUFBVSxDQUFDOztBQUVuRCxJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFPZixNQUFNLE9BQU8seUJBQXlCO0lBQ3JDLFFBQVEsQ0FBbUI7SUFFM0IsS0FBSyxDQUErQztJQUVwRCxTQUFTLENBQXFCO0lBRTlCLFdBQVcsQ0FBc0I7SUFFakMsSUFBSSxDQUE2QjtJQUtqQyxXQUFXLENBQW9DO0lBRS9DLElBQ0ksbUJBQW1CLENBQUMsS0FBYTtRQUNwQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FB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YTtvQkFDdkIsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFVBQVUsRUFBRSxJQUFJO2lCQUNoQjt3REFhQSxTQUFTO3NCQURSLEtBQUs7Z0JBTUYsbUJBQW1CO3NCQUR0QixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFRakMsbUJBQW1CO3NCQUR0QixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFRakMsaUJBQWlCO3NCQURwQixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQVN0Qyx1QkFBdUI7c0JBRHRCLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBSXRDLGlCQUFpQjtzQkFEaEIsS0FBSztnQkFJTixxQkFBcUI7c0JBRHBCLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBa0J0QyxZQUFZO3NCQURYLFlBQVk7dUJBQUMsWUFBWTtnQkFNMUIsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLFlBQVk7Z0JBTTFCLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPO2dCQVFyQixNQUFNO3NCQURMLFlBQVk7dUJBQUMsTUFBTTtnQkFRcEIsR0FBRztzQkFERixXQUFXO3VCQUFDLFNBQVM7Z0JBSWxCLGVBQWU7c0JBRGxCLFdBQVc7dUJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5LCBIb3Jpem9udGFsQ29ubmVjdGlvblBvcywgT3JpZ2luQ29ubmVjdGlvblBvc2l0aW9uLCBPdmVybGF5LCBPdmVybGF5Q29ubmVjdGlvblBvc2l0aW9uLCBPdmVybGF5UmVmLCBWZXJ0aWNhbENvbm5lY3Rpb25Qb3MgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7XG5cdEFmdGVyQ29udGVudEluaXQsXG5cdGJvb2xlYW5BdHRyaWJ1dGUsXG5cdENoYW5nZURldGVjdG9yUmVmLFxuXHREZXN0cm95UmVmLFxuXHREaXJlY3RpdmUsXG5cdEVsZW1lbnRSZWYsXG5cdEhvc3RCaW5kaW5nLFxuXHRIb3N0TGlzdGVuZXIsXG5cdGluamVjdCxcblx0SW5wdXQsXG5cdG51bWJlckF0dHJpYnV0ZSxcblx0T25EZXN0cm95LFxuXHRSZW5kZXJlcjIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IEx1UG9wb3ZlclBvc2l0aW9uIH0gZnJvbSAnQGx1Y2NhLWZyb250L25nL3BvcG92ZXInO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtZXJnZSwgT2JzZXJ2YWJsZSwgc3RhcnRXaXRoLCBTdWJqZWN0LCBzd2l0Y2hNYXAsIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZSwgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEx1VG9vbHRpcFBhbmVsQ29tcG9uZW50IH0gZnJvbSAnLi4vcGFuZWwnO1xuXG5sZXQgbmV4dElkID0gMDtcblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnW2x1VG9vbHRpcF0nLFxuXHRleHBvcnRBczogJ2x1VG9vbHRpcCcsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEx1VG9vbHRpcFRyaWdnZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuXHQjb3ZlcmxheSA9IGluamVjdChPdmVybGF5KTtcblxuXHQjaG9zdCA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG5cblx0I3JlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG5cblx0I2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cblx0I2NkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cblx0QElucHV0KClcblx0bHVUb29sdGlwOiBzdHJpbmcgfCBTYWZlSHRtbDtcblxuXHQjb3BlbkRlbGF5JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigzMDApO1xuXG5cdEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG5cdHNldCBsdVRvb2x0aXBFbnRlckRlbGF5KGRlbGF5OiBudW1iZXIpIHtcblx0XHR0aGlzLiNvcGVuRGVsYXkkLm5leHQoZGVsYXkpO1xuXHR9XG5cblx0I2Nsb3NlRGVsYXkkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDEwMCk7XG5cblx0QElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSlcblx0c2V0IGx1VG9vbHRpcExlYXZlRGVsYXkoZGVsYXk6IG51bWJlcikge1xuXHRcdHRoaXMuI2Nsb3NlRGVsYXkkLm5leHQoZGVsYXkpO1xuXHR9XG5cblx0I2Rpc2FibGVkID0gZmFsc2U7XG5cblx0QElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG5cdHNldCBsdVRvb2x0aXBEaXNhYmxlZChkaXNhYmxlZDogYm9vbGVhbikge1xuXHRcdHRoaXMuI2Rpc2FibGVkID0gZGlzYWJsZWQ7XG5cdFx0aWYgKGRpc2FibGVkKSB7XG5cdFx0XHR0aGlzLnNldEFjY2Vzc2liaWxpdHlQcm9wZXJ0aWVzKG51bGwpO1xuXHRcdH1cblx0fVxuXG5cdEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuXHRsdVRvb2x0aXBPbmx5Rm9yRGlzcGxheSA9IGZhbHNlO1xuXG5cdEBJbnB1dCgpXG5cdGx1VG9vbHRpcFBvc2l0aW9uOiBMdVBvcG92ZXJQb3NpdGlvbiA9ICdhYm92ZSc7XG5cblx0QElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG5cdGx1VG9vbHRpcFdoZW5FbGxpcHNpcyA9IGZhbHNlO1xuXG5cdHJlc2l6ZSQgPSBuZXcgT2JzZXJ2YWJsZSgob2JzZXJ2ZXIpID0+IHtcblx0XHRjb25zdCByZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XG5cdFx0XHRvYnNlcnZlci5uZXh0KCk7XG5cdFx0fSk7XG5cdFx0cmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLiNob3N0Lm5hdGl2ZUVsZW1lbnQpO1xuXHRcdHJldHVybiAoKSA9PiB7XG5cdFx0XHRyZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCk7XG5cdFx0fTtcblx0fSk7XG5cblx0b3BlbiQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG5cdGNsb3NlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cblx0QEhvc3RMaXN0ZW5lcignbW91c2VlbnRlcicpXG5cdG9uTW91c2VFbnRlcigpIHtcblx0XHR0aGlzLm9wZW4kLm5leHQoKTtcblx0fVxuXG5cdEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnKVxuXHRvbk1vdXNlTGVhdmUoKSB7XG5cdFx0dGhpcy5jbG9zZSQubmV4dCgpO1xuXHR9XG5cblx0QEhvc3RMaXN0ZW5lcignZm9jdXMnKVxuXHRvbkZvY3VzKCkge1xuXHRcdGlmICh0aGlzLiNob3N0Lm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJykgIT09ICd0cnVlJykge1xuXHRcdFx0dGhpcy5vcGVuJC5uZXh0KCk7XG5cdFx0fVxuXHR9XG5cblx0QEhvc3RMaXN0ZW5lcignYmx1cicpXG5cdG9uQmx1cigpIHtcblx0XHR0aGlzLmNsb3NlJC5uZXh0KCk7XG5cdH1cblxuXHQjZ2VuZXJhdGVkSWQgPSBgJHt0aGlzLiNob3N0Lm5hdGl2ZUVsZW1lbnQudGFnTmFtZS50b0xvd2VyQ2FzZSgpfS10b29sdGlwLSR7bmV4dElkKyt9YDtcblxuXHRASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKVxuXHRfaWQ6IHN0cmluZztcblxuXHRASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1kZXNjcmliZWRieScpXG5cdGdldCBhcmlhRGVzY3JpYmVkQnkoKSB7XG5cdFx0aWYgKHRoaXMuI2Rpc2FibGVkIHx8IHRoaXMubHVUb29sdGlwV2hlbkVsbGlwc2lzIHx8IHRoaXMubHVUb29sdGlwT25seUZvckRpc3BsYXkpIHtcblx0XHRcdHJldHVybiBudWxsO1xuXHRcdH1cblx0XHRyZXR1cm4gYCR7dGhpcy4jZ2VuZXJhdGVkSWR9LXBhbmVsYDtcblx0fVxuXG5cdG92ZXJsYXlSZWY/OiBPdmVybGF5UmVmO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGNvbWJpbmVMYXRlc3QoW3RoaXMuI29wZW5EZWxheSQsIHRoaXMuI2Nsb3NlRGVsYXkkXSlcblx0XHRcdC5waXBlKFxuXHRcdFx0XHRzd2l0Y2hNYXAoKFtvcGVuRGVsYXksIGNsb3NlRGVsYXldKSA9PiB7XG5cdFx0XHRcdFx0Ly8gV2Ugb25seSBmaWx0ZXIgb3BlbiBldmVudHMgYmVjYXVzZSBldmVuIGlmIGl0J3MgZGlzYWJsZWQgd2hpbGUgb3BlbmVkLFxuXHRcdFx0XHRcdC8vIFx0d2Ugd2FudCB0aGUgdG9vbHRpcCB0byBiZSBhYmxlIHRvIGNsb3NlIGl0c2VsZiBubyBtYXR0ZXIgd2hhdFxuXHRcdFx0XHRcdGNvbnN0IG9wZW5FdmVudHMkID0gdGhpcy5vcGVuJC5waXBlKFxuXHRcdFx0XHRcdFx0ZmlsdGVyKCgpID0+IHtcblx0XHRcdFx0XHRcdFx0aWYgKHRoaXMuI2Rpc2FibGVkKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdC8vIElmIG5vdCBkaXNhYmxlZCwgbGV0J3MgY2hlY2sgZm9yIGVsbGlwc2lzIGlmIG5lZWRlZFxuXHRcdFx0XHRcdFx0XHRpZiAodGhpcy5sdVRvb2x0aXBXaGVuRWxsaXBzaXMpIHtcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gdGhpcy5oYXNFbGxpcHNpcygpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdC8vIElmIGl0J3Mgbm90IGRpc2FibGVkIGFuZCBpcyBub3QgdHJpZ2dlcmVkIGJhc2VkIG9uIGVsbGlwc2lzLCBqdXN0IHJldHVybiB0cnVlXG5cdFx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHRcdFx0fSksXG5cdFx0XHRcdFx0XHRtYXAoKCkgPT4gJ29wZW4nKSxcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdHJldHVybiBtZXJnZShvcGVuRXZlbnRzJCwgdGhpcy5jbG9zZSQucGlwZShtYXAoKCkgPT4gJ2Nsb3NlJykpKS5waXBlKFxuXHRcdFx0XHRcdFx0ZGVib3VuY2UoKGV2ZW50KSA9PiB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiB0aW1lcihldmVudCA9PT0gJ29wZW4nID8gb3BlbkRlbGF5IDogY2xvc2VEZWxheSk7XG5cdFx0XHRcdFx0XHR9KSxcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHR9KSxcblx0XHRcdFx0dGFrZVVudGlsRGVzdHJveWVkKHRoaXMuI2Rlc3Ryb3lSZWYpLFxuXHRcdFx0KVxuXHRcdFx0LnN1YnNjcmliZSgoZXZlbnQpID0+IHtcblx0XHRcdFx0aWYgKGV2ZW50ID09PSAnb3BlbicpIHtcblx0XHRcdFx0XHR0aGlzLm9wZW5Ub29sdGlwKCk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0dGhpcy5jbG9zZVRvb2x0aXAoKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cblx0XHR0aGlzLnJlc2l6ZSQucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy4jZGVzdHJveVJlZiksIGRlYm91bmNlVGltZSgxNTApKS5zdWJzY3JpYmUoKCkgPT4ge1xuXHRcdFx0dGhpcy5zZXRBY2Nlc3NpYmlsaXR5UHJvcGVydGllcygwKTtcblx0XHRcdHRoaXMuI2Nkci5tYXJrRm9yQ2hlY2soKTtcblx0XHR9KTtcblx0fVxuXG5cdG5nT25EZXN0cm95KCk6IHZvaWQge1xuXHRcdHRoaXMuY2xvc2VUb29sdGlwKCk7XG5cdH1cblxuXHRwcml2YXRlIG9wZW5Ub29sdGlwKCk6IHZvaWQge1xuXHRcdC8vIElmIHRvb2x0aXAgaXMgYWxyZWFkeSBvcGVuZWQsIGRvbid0IGRvIGFueXRoaW5nXG5cdFx0aWYgKHRoaXMub3ZlcmxheVJlZikge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRjb25zdCBwb3NpdGlvbiA9IHRoaXMubGVnYWN5UG9zaXRpb25CdWlsZGVyKCk7XG5cdFx0dGhpcy5vdmVybGF5UmVmID0gdGhpcy4jb3ZlcmxheS5jcmVhdGUoe1xuXHRcdFx0cG9zaXRpb25TdHJhdGVneTogcG9zaXRpb24sXG5cdFx0XHRzY3JvbGxTdHJhdGVneTogdGhpcy4jb3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLmNsb3NlKCksXG5cdFx0XHRkaXNwb3NlT25OYXZpZ2F0aW9uOiB0cnVlLFxuXHRcdH0pO1xuXHRcdGNvbnN0IHBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwoTHVUb29sdGlwUGFuZWxDb21wb25lbnQpO1xuXHRcdGNvbnN0IHJlZiA9IHRoaXMub3ZlcmxheVJlZi5hdHRhY2gocG9ydGFsKTtcblx0XHRwb3NpdGlvbi5wb3NpdGlvbkNoYW5nZXNcblx0XHRcdC5waXBlKFxuXHRcdFx0XHR0YWtlVW50aWxEZXN0cm95ZWQodGhpcy4jZGVzdHJveVJlZiksXG5cdFx0XHRcdG1hcCgoeyBjb25uZWN0aW9uUGFpciB9KSA9PiBjb25uZWN0aW9uUGFpciksXG5cdFx0XHRcdHN0YXJ0V2l0aChwb3NpdGlvbi5wb3NpdGlvbnNbMF0pLFxuXHRcdFx0KVxuXHRcdFx0LnN1YnNjcmliZSgoeyBvdmVybGF5WCwgb3ZlcmxheVkgfSkgPT4ge1xuXHRcdFx0XHRyZWYuaW5zdGFuY2Uuc2V0UGFuZWxQb3NpdGlvbihvdmVybGF5WCwgb3ZlcmxheVkpO1xuXHRcdFx0fSk7XG5cdFx0aWYgKHRoaXMubHVUb29sdGlwKSB7XG5cdFx0XHRyZWYuaW5zdGFuY2UuY29udGVudCA9IHRoaXMubHVUb29sdGlwO1xuXHRcdH0gZWxzZSBpZiAodGhpcy5sdVRvb2x0aXBXaGVuRWxsaXBzaXMpIHtcblx0XHRcdHJlZi5pbnN0YW5jZS5jb250ZW50ID0gdGhpcy4jaG9zdC5uYXRpdmVFbGVtZW50LmlubmVyVGV4dDtcblx0XHR9XG5cdFx0cmVmLmluc3RhbmNlLmlkID0gdGhpcy5hcmlhRGVzY3JpYmVkQnk7XG5cdFx0Ly8gT24gdG9vbHRpcCBsZWF2ZSA9PiB0cmlnZ2VyIGNsb3NlXG5cdFx0cmVmLmluc3RhbmNlLm1vdXNlTGVhdmUkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHJlZi5pbnN0YW5jZS5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2xvc2UkLm5leHQoKSk7XG5cdFx0Ly8gT24gdG9vbHRpcCBlbnRlciA9PiB0cmlnZ2VyIG9wZW4gdG8ga2VlcCBpdCBvcGVuZWRcblx0XHRyZWYuaW5zdGFuY2UubW91c2VFbnRlciQucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQocmVmLmluc3RhbmNlLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vcGVuJC5uZXh0KCkpO1xuXHR9XG5cblx0cHJpdmF0ZSBjbG9zZVRvb2x0aXAoKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMub3ZlcmxheVJlZikge1xuXHRcdFx0dGhpcy5vdmVybGF5UmVmLmRldGFjaCgpO1xuXHRcdFx0ZGVsZXRlIHRoaXMub3ZlcmxheVJlZjtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIHNldEFjY2Vzc2liaWxpdHlQcm9wZXJ0aWVzKHRhYmluZGV4OiBudW1iZXIgfCBudWxsKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMuI2Rpc2FibGVkIHx8ICh0aGlzLmx1VG9vbHRpcFdoZW5FbGxpcHNpcyAmJiAhdGhpcy5oYXNFbGxpcHNpcygpKSkge1xuXHRcdFx0dGhpcy4jcmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuI2hvc3QubmF0aXZlRWxlbWVudCwgJ3RhYmluZGV4Jyk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Y29uc3QgdGFnID0gdGhpcy4jaG9zdC5uYXRpdmVFbGVtZW50LnRhZ05hbWUudG9Mb3dlckNhc2UoKTtcblx0XHRjb25zdCBuYXRpdmVseUZvY3VzYWJsZVRhZ3MgPSBbJ2EnLCAnYnV0dG9uJywgJ2lucHV0JywgJ3NlbGVjdCcsICd0ZXh0YXJlYSddO1xuXHRcdGNvbnN0IGlzTmF0ZXZlbHlGb2N1c2FibGVUYWcgPSBuYXRpdmVseUZvY3VzYWJsZVRhZ3MuaW5jbHVkZXModGFnKTtcblxuXHRcdGNvbnN0IGhhc0FUYWJJbmRleCA9IHRoaXMuI2hvc3QubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JykgIT09IG51bGw7XG5cblx0XHRpZiAoIWlzTmF0ZXZlbHlGb2N1c2FibGVUYWcgJiYgIWhhc0FUYWJJbmRleCkge1xuXHRcdFx0dGhpcy4jcmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuI2hvc3QubmF0aXZlRWxlbWVudCwgJ3RhYmluZGV4JywgdGFiaW5kZXgudG9TdHJpbmcoKSk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEhhY2t5IGFmIGJ1dCBsZXQncyBleHBsYWluIGV2ZXJ5dGhpbmdcblx0ICogVGhpcyBtZXRob2QgY2hlY2tzIGZvciBlbGxpcHNpcyBieSBjbG9uaW5nIHRoZSBub2RlIGFuZCBjaGVja2luZyBpdHMgd2lkdGggYWdhaW5zdCBvcmlnaW5hbCBlbGVtZW50LlxuXHQgKlxuXHQgKiBXZSB1c2VkIHRvIGRvIHRoaXMgdXNpbmcgc2Nyb2xsV2lkdGggYnV0IHRoZSB0aGluZyBpcywgaXQncyBhIHJvdW5kZWQgdmFsdWUuIFNvbWV0aW1lcyxcblx0ICogeW91J2QgZ2V0IHRydWUgd2hpbGUgaXQgc2hvdWxkIGJlIGZhbHNlIGFuZCB2aWNlLXZlcnNhLCBiZWNhdXNlIG9mIHJvdW5kaW5nLlxuXHQgKlxuXHQgKiBTbyB3ZSBkdXBsaWNhdGUgdGhlIHByb3BlcnRpZXMgd2UncmUgaW50ZXJlc3RlZCBpbiBvbiB0aGUgZWxlbWVudCB0byBiZSB0ZXN0ZWQgdG8gY2FsY3VsYXRlIGl0cyBpZGVhbCBzaXplLFxuXHQgKiB3aGljaCB3ZSB0aGVuIGNvbXBhcmUgd2l0aCBpdHMgY3VycmVudCBzaXplLlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0cHJpdmF0ZSBoYXNFbGxpcHNpcygpOiBib29sZWFuIHtcblx0XHRpZiAod2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy4jaG9zdC5uYXRpdmVFbGVtZW50KS50ZXh0T3ZlcmZsb3cgIT09ICdlbGxpcHNpcycpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHRjb25zdCBlbGVtZW50ID0gdGhpcy4jaG9zdC5uYXRpdmVFbGVtZW50O1xuXHRcdGNvbnN0IGVsZW1lbnRDbG9uZWQgPSB0aGlzLiNyZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKSBhcyBIVE1MRGl2RWxlbWVudDtcblx0XHRjb25zdCBwYXJlbnRNYXNrZWQgPSB0aGlzLiNyZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKSBhcyBIVE1MRGl2RWxlbWVudDtcblx0XHRjb25zdCBlbGVtZW50U3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTtcblxuXHRcdHRoaXMuI3JlbmRlcmVyLmFkZENsYXNzKHBhcmVudE1hc2tlZCwgJ3UtbWFzaycpO1xuXHRcdHRoaXMuI3JlbmRlcmVyLnNldEF0dHJpYnV0ZShwYXJlbnRNYXNrZWQsICdhcmlhLWhpZGRlbicsICd0cnVlJyk7XG5cblx0XHR0aGlzLiNyZW5kZXJlci5zZXRTdHlsZShlbGVtZW50Q2xvbmVkLCAnd2lkdGgnLCAnZml0LWNvbnRlbnQnKTtcblxuXHRcdHRoaXMuI3JlbmRlcmVyLnNldFN0eWxlKGVsZW1lbnRDbG9uZWQsICdwYWRkaW5nJywgZWxlbWVudFN0eWxlLnBhZGRpbmcpO1xuXHRcdHRoaXMuI3JlbmRlcmVyLnNldFN0eWxlKGVsZW1lbnRDbG9uZWQsICdib3JkZXJXaWR0aCcsIGVsZW1lbnRTdHlsZS5ib3JkZXJXaWR0aCk7XG5cdFx0dGhpcy4jcmVuZGVyZXIuc2V0U3R5bGUoZWxlbWVudENsb25lZCwgJ2JvcmRlclN0eWxlJywgZWxlbWVudFN0eWxlLmJvcmRlclN0eWxlKTtcblx0XHR0aGlzLiNyZW5kZXJlci5zZXRTdHlsZShlbGVtZW50Q2xvbmVkLCAnYm94U2l6aW5nJywgZWxlbWVudFN0eWxlLmJveFNpemluZyk7XG5cdFx0dGhpcy4jcmVuZGVyZXIuc2V0U3R5bGUoZWxlbWVudENsb25lZCwgJ2ZvbnRGYW1pbHknLCBlbGVtZW50U3R5bGUuZm9udEZhbWlseSk7XG5cdFx0dGhpcy4jcmVuZGVyZXIuc2V0U3R5bGUoZWxlbWVudENsb25lZCwgJ2ZvbnRXZWlnaHQnLCBlbGVtZW50U3R5bGUuZm9udFdlaWdodCk7XG5cdFx0dGhpcy4jcmVuZGVyZXIuc2V0U3R5bGUoZWxlbWVudENsb25lZCwgJ2ZvbnRTdHlsZScsIGVsZW1lbnRTdHlsZS5mb250U3R5bGUpO1xuXHRcdHRoaXMuI3JlbmRlcmVyLnNldFN0eWxlKGVsZW1lbnRDbG9uZWQsICd3aGl0ZVNwYWNlJywgJ25vd3JhcCcpO1xuXHRcdHRoaXMuI3JlbmRlcmVyLnNldFN0eWxlKFxuXHRcdFx0ZWxlbWVudENsb25lZCxcblx0XHRcdCdmb250U2l6ZScsXG5cdFx0XHQoTnVtYmVyKGVsZW1lbnRTdHlsZS5mb250U2l6ZS5yZXBsYWNlKCdweCcsICcnKSkgLyBOdW1iZXIod2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSkuZm9udFNpemUucmVwbGFjZSgncHgnLCAnJykpKS50b1N0cmluZygpICsgJ3JlbScsXG5cdFx0KTtcblxuXHRcdGVsZW1lbnRDbG9uZWQuaW5uZXJIVE1MID0gZWxlbWVudC5pbm5lckhUTUw7XG5cblx0XHR0aGlzLiNyZW5kZXJlci5hcHBlbmRDaGlsZChwYXJlbnRNYXNrZWQsIGVsZW1lbnRDbG9uZWQpO1xuXHRcdHRoaXMuI3JlbmRlcmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmJvZHksIHBhcmVudE1hc2tlZCk7XG5cblx0XHR0cnkge1xuXHRcdFx0Y29uc3QgZWxlbWVudENsb25lZFdpZHRoID0gZWxlbWVudENsb25lZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcblx0XHRcdGNvbnN0IGVsZW1lbnRXaWR0aCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG5cblx0XHRcdHJldHVybiBlbGVtZW50Q2xvbmVkV2lkdGggPiBlbGVtZW50V2lkdGg7XG5cdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH0gZmluYWxseSB7XG5cdFx0XHRwYXJlbnRNYXNrZWQucmVtb3ZlKCk7XG5cdFx0fVxuXHR9XG5cblx0bmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuXHRcdHRoaXMuc2V0QWNjZXNzaWJpbGl0eVByb3BlcnRpZXMoMCk7XG5cdFx0dGhpcy5faWQgPSB0aGlzLiNob3N0Lm5hdGl2ZUVsZW1lbnQuaWQgfHwgdGhpcy4jZ2VuZXJhdGVkSWQ7XG5cdH1cblxuXHQvKioqKioqKioqKioqKioqKioqKioqKlxuXHQgKlxuXHQgKiBMRUdBQ1kgU1RVRkYgVE8gSEFORExFIEVYSVNUSU5HIFBPU0lUSU9OU1xuXHQgKlxuXHQgKioqKioqKioqKioqKioqKioqKioqKiovXG5cblx0cHJpdmF0ZSBsZWdhY3lQb3NpdGlvbkJ1aWxkZXIoKTogRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5IHtcblx0XHRjb25zdCBjb25uZWN0aW9uUG9zaXRpb246IE9yaWdpbkNvbm5lY3Rpb25Qb3NpdGlvbiA9IHtcblx0XHRcdG9yaWdpblg6ICdzdGFydCcsXG5cdFx0XHRvcmlnaW5ZOiAndG9wJyxcblx0XHR9O1xuXG5cdFx0Ly8gUG9zaXRpb25cblx0XHRjb25zdCBwb3NpdGlvbiA9IHRoaXMubHVUb29sdGlwUG9zaXRpb247XG5cdFx0aWYgKHBvc2l0aW9uID09PSAnYWJvdmUnKSB7XG5cdFx0XHRjb25uZWN0aW9uUG9zaXRpb24ub3JpZ2luWSA9ICd0b3AnO1xuXHRcdH0gZWxzZSBpZiAocG9zaXRpb24gPT09ICdiZWxvdycpIHtcblx0XHRcdGNvbm5lY3Rpb25Qb3NpdGlvbi5vcmlnaW5ZID0gJ2JvdHRvbSc7XG5cdFx0fSBlbHNlIGlmIChwb3NpdGlvbiA9PT0gJ2JlZm9yZScpIHtcblx0XHRcdGNvbm5lY3Rpb25Qb3NpdGlvbi5vcmlnaW5YID0gJ3N0YXJ0Jztcblx0XHR9IGVsc2UgaWYgKHBvc2l0aW9uID09PSAnYWZ0ZXInKSB7XG5cdFx0XHRjb25uZWN0aW9uUG9zaXRpb24ub3JpZ2luWCA9ICdlbmQnO1xuXHRcdH1cblxuXHRcdC8vIEFsaWdubWVudFxuXHRcdGlmIChwb3NpdGlvbiA9PT0gJ2Fib3ZlJyB8fCBwb3NpdGlvbiA9PT0gJ2JlbG93Jykge1xuXHRcdFx0Y29ubmVjdGlvblBvc2l0aW9uLm9yaWdpblggPSAnY2VudGVyJztcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y29ubmVjdGlvblBvc2l0aW9uLm9yaWdpblkgPSAnY2VudGVyJztcblx0XHR9XG5cblx0XHRjb25zdCBvdmVybGF5UG9zaXRpb246IE92ZXJsYXlDb25uZWN0aW9uUG9zaXRpb24gPSB7XG5cdFx0XHRvdmVybGF5WDogJ3N0YXJ0Jyxcblx0XHRcdG92ZXJsYXlZOiAndG9wJyxcblx0XHR9O1xuXG5cdFx0aWYgKHBvc2l0aW9uID09PSAnYWJvdmUnIHx8IHBvc2l0aW9uID09PSAnYmVsb3cnKSB7XG5cdFx0XHRvdmVybGF5UG9zaXRpb24ub3ZlcmxheVggPSBjb25uZWN0aW9uUG9zaXRpb24ub3JpZ2luWDtcblx0XHRcdG92ZXJsYXlQb3NpdGlvbi5vdmVybGF5WSA9IHBvc2l0aW9uID09PSAnYWJvdmUnID8gJ2JvdHRvbScgOiAndG9wJztcblx0XHR9IGVsc2Uge1xuXHRcdFx0b3ZlcmxheVBvc2l0aW9uLm92ZXJsYXlYID0gcG9zaXRpb24gPT09ICdiZWZvcmUnID8gJ2VuZCcgOiAnc3RhcnQnO1xuXHRcdFx0b3ZlcmxheVBvc2l0aW9uLm92ZXJsYXlZID0gY29ubmVjdGlvblBvc2l0aW9uLm9yaWdpblk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMuI292ZXJsYXlcblx0XHRcdC5wb3NpdGlvbigpXG5cdFx0XHQuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLiNob3N0KVxuXHRcdFx0LndpdGhQb3NpdGlvbnMoW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0b3JpZ2luWDogY29ubmVjdGlvblBvc2l0aW9uLm9yaWdpblgsXG5cdFx0XHRcdFx0b3JpZ2luWTogY29ubmVjdGlvblBvc2l0aW9uLm9yaWdpblksXG5cdFx0XHRcdFx0b3ZlcmxheVg6IG92ZXJsYXlQb3NpdGlvbi5vdmVybGF5WCxcblx0XHRcdFx0XHRvdmVybGF5WTogb3ZlcmxheVBvc2l0aW9uLm92ZXJsYXlZLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0b3JpZ2luWDogY29ubmVjdGlvblBvc2l0aW9uLm9yaWdpblgsXG5cdFx0XHRcdFx0b3JpZ2luWTogdGhpcy5pbnZlcnRWZXJ0aWNhbFBvcyhjb25uZWN0aW9uUG9zaXRpb24ub3JpZ2luWSksXG5cdFx0XHRcdFx0b3ZlcmxheVg6IG92ZXJsYXlQb3NpdGlvbi5vdmVybGF5WCxcblx0XHRcdFx0XHRvdmVybGF5WTogdGhpcy5pbnZlcnRWZXJ0aWNhbFBvcyhvdmVybGF5UG9zaXRpb24ub3ZlcmxheVkpLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0b3JpZ2luWDogdGhpcy5pbnZlcnRIb3Jpem9udGFsUG9zKGNvbm5lY3Rpb25Qb3NpdGlvbi5vcmlnaW5YKSxcblx0XHRcdFx0XHRvcmlnaW5ZOiBjb25uZWN0aW9uUG9zaXRpb24ub3JpZ2luWSxcblx0XHRcdFx0XHRvdmVybGF5WDogdGhpcy5pbnZlcnRIb3Jpem9udGFsUG9zKG92ZXJsYXlQb3NpdGlvbi5vdmVybGF5WCksXG5cdFx0XHRcdFx0b3ZlcmxheVk6IG92ZXJsYXlQb3NpdGlvbi5vdmVybGF5WSxcblx0XHRcdFx0fSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdG9yaWdpblg6IHRoaXMuaW52ZXJ0SG9yaXpvbnRhbFBvcyhjb25uZWN0aW9uUG9zaXRpb24ub3JpZ2luWCksXG5cdFx0XHRcdFx0b3JpZ2luWTogdGhpcy5pbnZlcnRWZXJ0aWNhbFBvcyhjb25uZWN0aW9uUG9zaXRpb24ub3JpZ2luWSksXG5cdFx0XHRcdFx0b3ZlcmxheVg6IHRoaXMuaW52ZXJ0SG9yaXpvbnRhbFBvcyhvdmVybGF5UG9zaXRpb24ub3ZlcmxheVgpLFxuXHRcdFx0XHRcdG92ZXJsYXlZOiB0aGlzLmludmVydFZlcnRpY2FsUG9zKG92ZXJsYXlQb3NpdGlvbi5vdmVybGF5WSksXG5cdFx0XHRcdH0sXG5cdFx0XHRdKTtcblx0fVxuXG5cdHByaXZhdGUgaW52ZXJ0VmVydGljYWxQb3MoeTogVmVydGljYWxDb25uZWN0aW9uUG9zKTogVmVydGljYWxDb25uZWN0aW9uUG9zIHtcblx0XHRpZiAoeSA9PT0gJ3RvcCcpIHtcblx0XHRcdHJldHVybiAnYm90dG9tJztcblx0XHR9IGVsc2UgaWYgKHkgPT09ICdib3R0b20nKSB7XG5cdFx0XHRyZXR1cm4gJ3RvcCc7XG5cdFx0fVxuXHRcdHJldHVybiB5O1xuXHR9XG5cblx0cHJpdmF0ZSBpbnZlcnRIb3Jpem9udGFsUG9zKHg6IEhvcml6b250YWxDb25uZWN0aW9uUG9zKTogSG9yaXpvbnRhbENvbm5lY3Rpb25Qb3Mge1xuXHRcdGlmICh4ID09PSAnZW5kJykge1xuXHRcdFx0cmV0dXJuICdzdGFydCc7XG5cdFx0fSBlbHNlIGlmICh4ID09PSAnc3RhcnQnKSB7XG5cdFx0XHRyZXR1cm4gJ2VuZCc7XG5cdFx0fVxuXHRcdHJldHVybiB4O1xuXHR9XG59XG4iXX0=
306
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC10cmlnZ2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nL3Rvb2x0aXAvdHJpZ2dlci90b29sdGlwLXRyaWdnZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBd0YsT0FBTyxFQUFnRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25NLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBRU4saUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUVMLFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsTUFBTSxFQUNOLGVBQWUsR0FDZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUdoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRyxPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFFakQsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBT2YsTUFBTSxPQUFPLHlCQUF5QjtJQUNyQyxRQUFRLENBQW1CO0lBRTNCLEtBQUssQ0FBK0M7SUFFcEQsU0FBUyxDQUFxQjtJQUM5QixNQUFNLENBQXlCO0lBRS9CLFdBQVcsQ0FBc0I7SUFFakMsSUFBSSxDQUE2QjtJQUtqQyxXQUFXLENBQW9DO0lB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b0JBQ3ZCLFFBQVEsRUFBRSxXQUFXO29CQUNyQixVQUFVLEVBQUUsSUFBSTtpQkFDaEI7d0RBY0EsU0FBUztzQkFEUixLQUFLO2dCQU1GLG1CQUFtQjtzQkFEdEIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBUWpDLG1CQUFtQjtzQkFEdEIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBUWpDLGlCQUFpQjtzQkFEcEIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFTdEMsdUJBQXVCO3NCQUR0QixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUl0QyxpQkFBaUI7c0JBRGhCLEtBQUs7Z0JBSU4scUJBQXFCO3NCQURwQixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQWtCdEMsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLFlBQVk7Z0JBTTFCLFlBQVk7c0JBRFgsWUFBWTt1QkFBQyxZQUFZO2dCQU0xQixPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTztnQkFRckIsTUFBTTtzQkFETCxZQUFZO3VCQUFDLE1BQU07Z0JBUXBCLEdBQUc7c0JBREYsV0FBVzt1QkFBQyxTQUFTO2dCQUlsQixlQUFlO3NCQURsQixXQUFXO3VCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSwgSG9yaXpvbnRhbENvbm5lY3Rpb25Qb3MsIE9yaWdpbkNvbm5lY3Rpb25Qb3NpdGlvbiwgT3ZlcmxheSwgT3ZlcmxheUNvbm5lY3Rpb25Qb3NpdGlvbiwgT3ZlcmxheVJlZiwgVmVydGljYWxDb25uZWN0aW9uUG9zIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuXHRBZnRlckNvbnRlbnRJbml0LFxuXHRDaGFuZ2VEZXRlY3RvclJlZixcblx0RGVzdHJveVJlZixcblx0RGlyZWN0aXZlLFxuXHRFbGVtZW50UmVmLFxuXHRIb3N0QmluZGluZyxcblx0SG9zdExpc3RlbmVyLFxuXHRJbnB1dCxcblx0T25EZXN0cm95LFxuXHRSZW5kZXJlcjIsXG5cdGJvb2xlYW5BdHRyaWJ1dGUsXG5cdGluamVjdCxcblx0bnVtYmVyQXR0cmlidXRlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IFNhZmVIdG1sIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBMdVBvcG92ZXJQb3NpdGlvbiB9IGZyb20gJ0BsdWNjYS1mcm9udC9uZy9wb3BvdmVyJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWVyZ2UsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2UsIGRlYm91bmNlVGltZSwgZmlsdGVyLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBMdVRvb2x0aXBQYW5lbENvbXBvbmVudCB9IGZyb20gJy4uL3BhbmVsJztcbmltcG9ydCB7IEVsbGlwc2lzUnVsZXIgfSBmcm9tICcuL2VsbGlwc2lzLnJ1bGVyJztcblxubGV0IG5leHRJZCA9IDA7XG5cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ1tsdVRvb2x0aXBdJyxcblx0ZXhwb3J0QXM6ICdsdVRvb2x0aXAnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBMdVRvb2x0aXBUcmlnZ2VyRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcblx0I292ZXJsYXkgPSBpbmplY3QoT3ZlcmxheSk7XG5cblx0I2hvc3QgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuXG5cdCNyZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuXHQjcnVsZXIgPSBpbmplY3QoRWxsaXBzaXNSdWxlcik7XG5cblx0I2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cblx0I2NkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cblx0QElucHV0KClcblx0bHVUb29sdGlwOiBzdHJpbmcgfCBTYWZlSHRtbDtcblxuXHQjb3BlbkRlbGF5JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigzMDApO1xuXG5cdEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG5cdHNldCBsdVRvb2x0aXBFbnRlckRlbGF5KGRlbGF5OiBudW1iZXIpIHtcblx0XHR0aGlzLiNvcGVuRGVsYXkkLm5leHQoZGVsYXkpO1xuXHR9XG5cblx0I2Nsb3NlRGVsYXkkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDEwMCk7XG5cblx0QElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSlcblx0c2V0IGx1VG9vbHRpcExlYXZlRGVsYXkoZGVsYXk6IG51bWJlcikge1xuXHRcdHRoaXMuI2Nsb3NlRGVsYXkkLm5leHQoZGVsYXkpO1xuXHR9XG5cblx0I2Rpc2FibGVkID0gZmFsc2U7XG5cblx0QElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG5cdHNldCBsdVRvb2x0aXBEaXNhYmxlZChkaXNhYmxlZDogYm9vbGVhbikge1xuXHRcdHRoaXMuI2Rpc2FibGVkID0gZGlzYWJsZWQ7XG5cdFx0aWYgKGRpc2FibGVkKSB7XG5cdFx0XHR0aGlzLnNldEFjY2Vzc2liaWxpdHlQcm9wZXJ0aWVzKG51bGwpO1xuXHRcdH1cblx0fVxuXG5cdEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuXHRsdVRvb2x0aXBPbmx5Rm9yRGlzcGxheSA9IGZhbHNlO1xuXG5cdEBJbnB1dCgpXG5cdGx1VG9vbHRpcFBvc2l0aW9uOiBMdVBvcG92ZXJQb3NpdGlvbiA9ICdhYm92ZSc7XG5cblx0QElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG5cdGx1VG9vbHRpcFdoZW5FbGxpcHNpcyA9IGZhbHNlO1xuXG5cdHJlc2l6ZSQgPSBuZXcgT2JzZXJ2YWJsZSgob2JzZXJ2ZXIpID0+IHtcblx0XHRjb25zdCByZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XG5cdFx0XHRvYnNlcnZlci5uZXh0KCk7XG5cdFx0fSk7XG5cdFx0cmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLiNob3N0Lm5hdGl2ZUVsZW1lbnQpO1xuXHRcdHJldHVybiAoKSA9PiB7XG5cdFx0XHRyZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCk7XG5cdFx0fTtcblx0fSk7XG5cblx0b3BlbiQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG5cdGNsb3NlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cblx0QEhvc3RMaXN0ZW5lcignbW91c2VlbnRlcicpXG5cdG9uTW91c2VFbnRlcigpIHtcblx0XHR0aGlzLm9wZW4kLm5leHQoKTtcblx0fVxuXG5cdEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnKVxuXHRvbk1vdXNlTGVhdmUoKSB7XG5cdFx0dGhpcy5jbG9zZSQubmV4dCgpO1xuXHR9XG5cblx0QEhvc3RMaXN0ZW5lcignZm9jdXMnKVxuXHRvbkZvY3VzKCkge1xuXHRcdGlmICh0aGlzLiNob3N0Lm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJykgIT09ICd0cnVlJykge1xuXHRcdFx0dGhpcy5vcGVuJC5uZXh0KCk7XG5cdFx0fVxuXHR9XG5cblx0QEhvc3RMaXN0ZW5lcignYmx1cicpXG5cdG9uQmx1cigpIHtcblx0XHR0aGlzLmNsb3NlJC5uZXh0KCk7XG5cdH1cblxuXHQjZ2VuZXJhdGVkSWQgPSBgJHt0aGlzLiNob3N0Lm5hdGl2ZUVsZW1lbnQudGFnTmFtZS50b0xvd2VyQ2FzZSgpfS10b29sdGlwLSR7bmV4dElkKyt9YDtcblxuXHRASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKVxuXHRfaWQ6IHN0cmluZztcblxuXHRASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1kZXNjcmliZWRieScpXG5cdGdldCBhcmlhRGVzY3JpYmVkQnkoKSB7XG5cdFx0aWYgKHRoaXMuI2Rpc2FibGVkIHx8IHRoaXMubHVUb29sdGlwV2hlbkVsbGlwc2lzIHx8IHRoaXMubHVUb29sdGlwT25seUZvckRpc3BsYXkpIHtcblx0XHRcdHJldHVybiBudWxsO1xuXHRcdH1cblx0XHRyZXR1cm4gYCR7dGhpcy4jZ2VuZXJhdGVkSWR9LXBhbmVsYDtcblx0fVxuXG5cdG92ZXJsYXlSZWY/OiBPdmVybGF5UmVmO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGNvbWJpbmVMYXRlc3QoW3RoaXMuI29wZW5EZWxheSQsIHRoaXMuI2Nsb3NlRGVsYXkkXSlcblx0XHRcdC5waXBlKFxuXHRcdFx0XHRzd2l0Y2hNYXAoKFtvcGVuRGVsYXksIGNsb3NlRGVsYXldKSA9PiB7XG5cdFx0XHRcdFx0Ly8gV2Ugb25seSBmaWx0ZXIgb3BlbiBldmVudHMgYmVjYXVzZSBldmVuIGlmIGl0J3MgZGlzYWJsZWQgd2hpbGUgb3BlbmVkLFxuXHRcdFx0XHRcdC8vIFx0d2Ugd2FudCB0aGUgdG9vbHRpcCB0byBiZSBhYmxlIHRvIGNsb3NlIGl0c2VsZiBubyBtYXR0ZXIgd2hhdFxuXHRcdFx0XHRcdGNvbnN0IG9wZW5FdmVudHMkID0gdGhpcy5vcGVuJC5waXBlKFxuXHRcdFx0XHRcdFx0ZmlsdGVyKCgpID0+IHtcblx0XHRcdFx0XHRcdFx0aWYgKHRoaXMuI2Rpc2FibGVkKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdC8vIElmIG5vdCBkaXNhYmxlZCwgbGV0J3MgY2hlY2sgZm9yIGVsbGlwc2lzIGlmIG5lZWRlZFxuXHRcdFx0XHRcdFx0XHRpZiAodGhpcy5sdVRvb2x0aXBXaGVuRWxsaXBzaXMpIHtcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gdGhpcy4jcnVsZXIuaGFzRWxsaXBzaXModGhpcy4jaG9zdC5uYXRpdmVFbGVtZW50KTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHQvLyBJZiBpdCdzIG5vdCBkaXNhYmxlZCBhbmQgaXMgbm90IHRyaWdnZXJlZCBiYXNlZCBvbiBlbGxpcHNpcywganVzdCByZXR1cm4gdHJ1ZVxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdFx0XHRcdH0pLFxuXHRcdFx0XHRcdFx0bWFwKCgpID0+ICdvcGVuJyksXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRyZXR1cm4gbWVyZ2Uob3BlbkV2ZW50cyQsIHRoaXMuY2xvc2UkLnBpcGUobWFwKCgpID0+ICdjbG9zZScpKSkucGlwZShcblx0XHRcdFx0XHRcdGRlYm91bmNlKChldmVudCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gdGltZXIoZXZlbnQgPT09ICdvcGVuJyA/IG9wZW5EZWxheSA6IGNsb3NlRGVsYXkpO1xuXHRcdFx0XHRcdFx0fSksXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fSksXG5cdFx0XHRcdHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLiNkZXN0cm95UmVmKSxcblx0XHRcdClcblx0XHRcdC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG5cdFx0XHRcdGlmIChldmVudCA9PT0gJ29wZW4nKSB7XG5cdFx0XHRcdFx0dGhpcy5vcGVuVG9vbHRpcCgpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHRoaXMuY2xvc2VUb29sdGlwKCk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXG5cdFx0dGhpcy5yZXNpemUkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuI2Rlc3Ryb3lSZWYpLCBkZWJvdW5jZVRpbWUoMTUwKSkuc3Vic2NyaWJlKCgpID0+IHtcblx0XHRcdHRoaXMuc2V0QWNjZXNzaWJpbGl0eVByb3BlcnRpZXMoMCk7XG5cdFx0XHR0aGlzLiNjZHIubWFya0ZvckNoZWNrKCk7XG5cdFx0fSk7XG5cdH1cblxuXHRuZ09uRGVzdHJveSgpOiB2b2lkIHtcblx0XHR0aGlzLmNsb3NlVG9vbHRpcCgpO1xuXHR9XG5cblx0cHJpdmF0ZSBvcGVuVG9vbHRpcCgpOiB2b2lkIHtcblx0XHQvLyBJZiB0b29sdGlwIGlzIGFscmVhZHkgb3BlbmVkLCBkb24ndCBkbyBhbnl0aGluZ1xuXHRcdGlmICh0aGlzLm92ZXJsYXlSZWYpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Y29uc3QgcG9zaXRpb24gPSB0aGlzLmxlZ2FjeVBvc2l0aW9uQnVpbGRlcigpO1xuXHRcdHRoaXMub3ZlcmxheVJlZiA9IHRoaXMuI292ZXJsYXkuY3JlYXRlKHtcblx0XHRcdHBvc2l0aW9uU3RyYXRlZ3k6IHBvc2l0aW9uLFxuXHRcdFx0c2Nyb2xsU3RyYXRlZ3k6IHRoaXMuI292ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5jbG9zZSgpLFxuXHRcdFx0ZGlzcG9zZU9uTmF2aWdhdGlvbjogdHJ1ZSxcblx0XHR9KTtcblx0XHRjb25zdCBwb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKEx1VG9vbHRpcFBhbmVsQ29tcG9uZW50KTtcblx0XHRjb25zdCByZWYgPSB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKHBvcnRhbCk7XG5cdFx0cG9zaXRpb24ucG9zaXRpb25DaGFuZ2VzXG5cdFx0XHQucGlwZShcblx0XHRcdFx0dGFrZVVudGlsRGVzdHJveWVkKHRoaXMuI2Rlc3Ryb3lSZWYpLFxuXHRcdFx0XHRtYXAoKHsgY29ubmVjdGlvblBhaXIgfSkgPT4gY29ubmVjdGlvblBhaXIpLFxuXHRcdFx0XHRzdGFydFdpdGgocG9zaXRpb24ucG9zaXRpb25zWzBdKSxcblx0XHRcdClcblx0XHRcdC5zdWJzY3JpYmUoKHsgb3ZlcmxheVgsIG92ZXJsYXlZIH0pID0+IHtcblx0XHRcdFx0cmVmLmluc3RhbmNlLnNldFBhbmVsUG9zaXRpb24ob3ZlcmxheVgsIG92ZXJsYXlZKTtcblx0XHRcdH0pO1xuXHRcdGlmICh0aGlzLmx1VG9vbHRpcCkge1xuXHRcdFx0cmVmLmluc3RhbmNlLmNvbnRlbnQgPSB0aGlzLmx1VG9vbHRpcDtcblx0XHR9IGVsc2UgaWYgKHRoaXMubHVUb29sdGlwV2hlbkVsbGlwc2lzKSB7XG5cdFx0XHRyZWYuaW5zdGFuY2UuY29udGVudCA9IHRoaXMuI2hvc3QubmF0aXZlRWxlbWVudC5pbm5lclRleHQ7XG5cdFx0fVxuXHRcdHJlZi5pbnN0YW5jZS5pZCA9IHRoaXMuYXJpYURlc2NyaWJlZEJ5O1xuXHRcdC8vIE9uIHRvb2x0aXAgbGVhdmUgPT4gdHJpZ2dlciBjbG9zZVxuXHRcdHJlZi5pbnN0YW5jZS5tb3VzZUxlYXZlJC5waXBlKHRha2VVbnRpbERlc3Ryb3llZChyZWYuaW5zdGFuY2UuZGVzdHJveVJlZikpLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNsb3NlJC5uZXh0KCkpO1xuXHRcdC8vIE9uIHRvb2x0aXAgZW50ZXIgPT4gdHJpZ2dlciBvcGVuIHRvIGtlZXAgaXQgb3BlbmVkXG5cdFx0cmVmLmluc3RhbmNlLm1vdXNlRW50ZXIkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHJlZi5pbnN0YW5jZS5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMub3BlbiQubmV4dCgpKTtcblx0fVxuXG5cdHByaXZhdGUgY2xvc2VUb29sdGlwKCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLm92ZXJsYXlSZWYpIHtcblx0XHRcdHRoaXMub3ZlcmxheVJlZi5kZXRhY2goKTtcblx0XHRcdGRlbGV0ZSB0aGlzLm92ZXJsYXlSZWY7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBzZXRBY2Nlc3NpYmlsaXR5UHJvcGVydGllcyh0YWJpbmRleDogbnVtYmVyIHwgbnVsbCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLiNkaXNhYmxlZCB8fCAodGhpcy5sdVRvb2x0aXBXaGVuRWxsaXBzaXMgJiYgIXRoaXMuI3J1bGVyLmhhc0VsbGlwc2lzKHRoaXMuI2hvc3QubmF0aXZlRWxlbWVudCkpKSB7XG5cdFx0XHR0aGlzLiNyZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUodGhpcy4jaG9zdC5uYXRpdmVFbGVtZW50LCAndGFiaW5kZXgnKTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCB0YWcgPSB0aGlzLiNob3N0Lm5hdGl2ZUVsZW1lbnQudGFnTmFtZS50b0xvd2VyQ2FzZSgpO1xuXHRcdGNvbnN0IG5hdGl2ZWx5Rm9jdXNhYmxlVGFncyA9IFsnYScsICdidXR0b24nLCAnaW5wdXQnLCAnc2VsZWN0JywgJ3RleHRhcmVhJ107XG5cdFx0Y29uc3QgaXNOYXRldmVseUZvY3VzYWJsZVRhZyA9IG5hdGl2ZWx5Rm9jdXNhYmxlVGFncy5pbmNsdWRlcyh0YWcpO1xuXG5cdFx0Y29uc3QgaGFzQVRhYkluZGV4ID0gdGhpcy4jaG9zdC5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgndGFiaW5kZXgnKSAhPT0gbnVsbDtcblxuXHRcdGlmICghaXNOYXRldmVseUZvY3VzYWJsZVRhZyAmJiAhaGFzQVRhYkluZGV4KSB7XG5cdFx0XHR0aGlzLiNyZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy4jaG9zdC5uYXRpdmVFbGVtZW50LCAndGFiaW5kZXgnLCB0YWJpbmRleC50b1N0cmluZygpKTtcblx0XHR9XG5cdH1cblxuXHRuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG5cdFx0dGhpcy5zZXRBY2Nlc3NpYmlsaXR5UHJvcGVydGllcygwKTtcblx0XHR0aGlzLl9pZCA9IHRoaXMuI2hvc3QubmF0aXZlRWxlbWVudC5pZCB8fCB0aGlzLiNnZW5lcmF0ZWRJZDtcblx0fVxuXG5cdC8qKioqKioqKioqKioqKioqKioqKioqXG5cdCAqXG5cdCAqIExFR0FDWSBTVFVGRiBUTyBIQU5ETEUgRVhJU1RJTkcgUE9TSVRJT05TXG5cdCAqXG5cdCAqKioqKioqKioqKioqKioqKioqKioqKi9cblxuXHRwcml2YXRlIGxlZ2FjeVBvc2l0aW9uQnVpbGRlcigpOiBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3kge1xuXHRcdGNvbnN0IGNvbm5lY3Rpb25Qb3NpdGlvbjogT3JpZ2luQ29ubmVjdGlvblBvc2l0aW9uID0ge1xuXHRcdFx0b3JpZ2luWDogJ3N0YXJ0Jyxcblx0XHRcdG9yaWdpblk6ICd0b3AnLFxuXHRcdH07XG5cblx0XHQvLyBQb3NpdGlvblxuXHRcdGNvbnN0IHBvc2l0aW9uID0gdGhpcy5sdVRvb2x0aXBQb3NpdGlvbjtcblx0XHRpZiAocG9zaXRpb24gPT09ICdhYm92ZScpIHtcblx0XHRcdGNvbm5lY3Rpb25Qb3NpdGlvbi5vcmlnaW5ZID0gJ3RvcCc7XG5cdFx0fSBlbHNlIGlmIChwb3NpdGlvbiA9PT0gJ2JlbG93Jykge1xuXHRcdFx0Y29ubmVjdGlvblBvc2l0aW9uLm9yaWdpblkgPSAnYm90dG9tJztcblx0XHR9IGVsc2UgaWYgKHBvc2l0aW9uID09PSAnYmVmb3JlJykge1xuXHRcdFx0Y29ubmVjdGlvblBvc2l0aW9uLm9yaWdpblggPSAnc3RhcnQnO1xuXHRcdH0gZWxzZSBpZiAocG9zaXRpb24gPT09ICdhZnRlcicpIHtcblx0XHRcdGNvbm5lY3Rpb25Qb3NpdGlvbi5vcmlnaW5YID0gJ2VuZCc7XG5cdFx0fVxuXG5cdFx0Ly8gQWxpZ25tZW50XG5cdFx0aWYgKHBvc2l0aW9uID09PSAnYWJvdmUnIHx8IHBvc2l0aW9uID09PSAnYmVsb3cnKSB7XG5cdFx0XHRjb25uZWN0aW9uUG9zaXRpb24ub3JpZ2luWCA9ICdjZW50ZXInO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb25uZWN0aW9uUG9zaXRpb24ub3JpZ2luWSA9ICdjZW50ZXInO1xuXHRcdH1cblxuXHRcdGNvbnN0IG92ZXJsYXlQb3NpdGlvbjogT3ZlcmxheUNvbm5lY3Rpb25Qb3NpdGlvbiA9IHtcblx0XHRcdG92ZXJsYXlYOiAnc3RhcnQnLFxuXHRcdFx0b3ZlcmxheVk6ICd0b3AnLFxuXHRcdH07XG5cblx0XHRpZiAocG9zaXRpb24gPT09ICdhYm92ZScgfHwgcG9zaXRpb24gPT09ICdiZWxvdycpIHtcblx0XHRcdG92ZXJsYXlQb3NpdGlvbi5vdmVybGF5WCA9IGNvbm5lY3Rpb25Qb3NpdGlvbi5vcmlnaW5YO1xuXHRcdFx0b3ZlcmxheVBvc2l0aW9uLm92ZXJsYXlZID0gcG9zaXRpb24gPT09ICdhYm92ZScgPyAnYm90dG9tJyA6ICd0b3AnO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRvdmVybGF5UG9zaXRpb24ub3ZlcmxheVggPSBwb3NpdGlvbiA9PT0gJ2JlZm9yZScgPyAnZW5kJyA6ICdzdGFydCc7XG5cdFx0XHRvdmVybGF5UG9zaXRpb24ub3ZlcmxheVkgPSBjb25uZWN0aW9uUG9zaXRpb24ub3JpZ2luWTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpcy4jb3ZlcmxheVxuXHRcdFx0LnBvc2l0aW9uKClcblx0XHRcdC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMuI2hvc3QpXG5cdFx0XHQud2l0aFBvc2l0aW9ucyhbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRvcmlnaW5YOiBjb25uZWN0aW9uUG9zaXRpb24ub3JpZ2luWCxcblx0XHRcdFx0XHRvcmlnaW5ZOiBjb25uZWN0aW9uUG9zaXRpb24ub3JpZ2luWSxcblx0XHRcdFx0XHRvdmVybGF5WDogb3ZlcmxheVBvc2l0aW9uLm92ZXJsYXlYLFxuXHRcdFx0XHRcdG92ZXJsYXlZOiBvdmVybGF5UG9zaXRpb24ub3ZlcmxheVksXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRvcmlnaW5YOiBjb25uZWN0aW9uUG9zaXRpb24ub3JpZ2luWCxcblx0XHRcdFx0XHRvcmlnaW5ZOiB0aGlzLmludmVydFZlcnRpY2FsUG9zKGNvbm5lY3Rpb25Qb3NpdGlvbi5vcmlnaW5ZKSxcblx0XHRcdFx0XHRvdmVybGF5WDogb3ZlcmxheVBvc2l0aW9uLm92ZXJsYXlYLFxuXHRcdFx0XHRcdG92ZXJsYXlZOiB0aGlzLmludmVydFZlcnRpY2FsUG9zKG92ZXJsYXlQb3NpdGlvbi5vdmVybGF5WSksXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRvcmlnaW5YOiB0aGlzLmludmVydEhvcml6b250YWxQb3MoY29ubmVjdGlvblBvc2l0aW9uLm9yaWdpblgpLFxuXHRcdFx0XHRcdG9yaWdpblk6IGNvbm5lY3Rpb25Qb3NpdGlvbi5vcmlnaW5ZLFxuXHRcdFx0XHRcdG92ZXJsYXlYOiB0aGlzLmludmVydEhvcml6b250YWxQb3Mob3ZlcmxheVBvc2l0aW9uLm92ZXJsYXlYKSxcblx0XHRcdFx0XHRvdmVybGF5WTogb3ZlcmxheVBvc2l0aW9uLm92ZXJsYXlZLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0b3JpZ2luWDogdGhpcy5pbnZlcnRIb3Jpem9udGFsUG9zKGNvbm5lY3Rpb25Qb3NpdGlvbi5vcmlnaW5YKSxcblx0XHRcdFx0XHRvcmlnaW5ZOiB0aGlzLmludmVydFZlcnRpY2FsUG9zKGNvbm5lY3Rpb25Qb3NpdGlvbi5vcmlnaW5ZKSxcblx0XHRcdFx0XHRvdmVybGF5WDogdGhpcy5pbnZlcnRIb3Jpem9udGFsUG9zKG92ZXJsYXlQb3NpdGlvbi5vdmVybGF5WCksXG5cdFx0XHRcdFx0b3ZlcmxheVk6IHRoaXMuaW52ZXJ0VmVydGljYWxQb3Mob3ZlcmxheVBvc2l0aW9uLm92ZXJsYXlZKSxcblx0XHRcdFx0fSxcblx0XHRcdF0pO1xuXHR9XG5cblx0cHJpdmF0ZSBpbnZlcnRWZXJ0aWNhbFBvcyh5OiBWZXJ0aWNhbENvbm5lY3Rpb25Qb3MpOiBWZXJ0aWNhbENvbm5lY3Rpb25Qb3Mge1xuXHRcdGlmICh5ID09PSAndG9wJykge1xuXHRcdFx0cmV0dXJuICdib3R0b20nO1xuXHRcdH0gZWxzZSBpZiAoeSA9PT0gJ2JvdHRvbScpIHtcblx0XHRcdHJldHVybiAndG9wJztcblx0XHR9XG5cdFx0cmV0dXJuIHk7XG5cdH1cblxuXHRwcml2YXRlIGludmVydEhvcml6b250YWxQb3MoeDogSG9yaXpvbnRhbENvbm5lY3Rpb25Qb3MpOiBIb3Jpem9udGFsQ29ubmVjdGlvblBvcyB7XG5cdFx0aWYgKHggPT09ICdlbmQnKSB7XG5cdFx0XHRyZXR1cm4gJ3N0YXJ0Jztcblx0XHR9IGVsc2UgaWYgKHggPT09ICdzdGFydCcpIHtcblx0XHRcdHJldHVybiAnZW5kJztcblx0XHR9XG5cdFx0cmV0dXJuIHg7XG5cdH1cbn1cbiJdfQ==
@@ -197,11 +197,11 @@ class CalloutDisclosureComponent {
197
197
  };
198
198
  }
199
199
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CalloutDisclosureComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
200
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: CalloutDisclosureComponent, isStandalone: true, selector: "lu-callout-disclosure", inputs: { icon: "icon", heading: "heading", palette: "palette", size: "size", state: "state", open: ["open", "open", booleanAttribute] }, outputs: { openChange: "openChange" }, ngImport: i0, template: "<details class=\"calloutDisclosure\" [ngClass]=\"calloutClasses\" [class.mod-iconless]=\"!icon\" [open]=\"open\" (toggle)=\"onToggle($event)\">\n\t<summary class=\"calloutDisclosure-summary\">\n\t\t@if (state | luCalloutIcon: icon; as calloutIcon) {\n\t\t<span class=\"calloutDisclosure-summary-icon\">\n\t\t\t<lu-icon [icon]=\"calloutIcon\"></lu-icon>\n\t\t</span>\n\t\t}\n\t\t<span class=\"calloutDisclosure-summary-title\">\n\t\t\t<ng-container *luPortal=\"heading\"></ng-container>\n\t\t</span>\n\t\t<lu-icon class=\"calloutDisclosure-summary-chevron\" icon=\"arrowChevronBottom\"></lu-icon>\n\t</summary>\n\t<div class=\"calloutDisclosure-details\">\n\t\t<ng-content></ng-content>\n\t</div>\n</details>\n", styles: [".calloutDisclosure{--components-calloutDisclosure-paddingHorizontal: var(--pr-t-spacings-150);border-radius:var(--commons-borderRadius-L);background-color:var(--palettes-50, var(--palettes-neutral-50));color:var(--palettes-neutral-800);box-shadow:0 0 0 var(--commons-divider-width) var(--palettes-300, var(--palettes-neutral-300))}.calloutDisclosure a,.calloutDisclosure .link{--commons-text-link-color: var(--palettes-neutral-800);--commons-text-link-hover: var(--palettes-neutral-700)}.calloutDisclosure-summary{display:flex;gap:var(--pr-t-spacings-150);padding:var(--pr-t-spacings-100) var(--components-calloutDisclosure-paddingHorizontal);border-radius:var(--commons-borderRadius-L);transition:background-color var(--commons-animations-durations-fast) ease;cursor:pointer;z-index:1;position:relative}.calloutDisclosure-summary:hover{background-color:var(--palettes-100, var(--palettes-neutral-100))}.calloutDisclosure-summary:focus-visible{outline:2px solid var(--palettes-product-700);outline-offset:3px;border-radius:6px}.calloutDisclosure-summary:focus-visible~.calloutDisclosure-details{box-shadow:none}.calloutDisclosure-summary-icon{color:var(--palettes-700, var(--palettes-neutral-700))}.calloutDisclosure-summary-title{font-weight:600}.calloutDisclosure-summary-chevron{color:var(--palettes-neutral-700);margin-left:auto;transition:transform var(--commons-animations-durations-standard) ease}.calloutDisclosure-details{margin:0 calc(var(--components-calloutDisclosure-paddingHorizontal) + 2.25rem);padding:var(--pr-t-spacings-100) 0 var(--pr-t-spacings-200);box-shadow:0 -1px 0 0 var(--palettes-200, var(--palettes-neutral-200))}.calloutDisclosure[open] .calloutDisclosure-summary-chevron{transform:rotate(-180deg)}.calloutDisclosure.mod-S .calloutDisclosure-summary-title{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight)}.calloutDisclosure.mod-S .calloutDisclosure-summary-icon,.calloutDisclosure.mod-S .calloutDisclosure-summary-chevron{--icon-size: 1.25rem}.calloutDisclosure.mod-S .calloutDisclosure-details{margin-left:calc(var(--components-calloutDisclosure-paddingHorizontal) + 2rem)}.calloutDisclosure.mod-S .calloutFeedbackList{--components-calloutFeedbackList-gap: var(--pr-t-spacings-100);--components-calloutFeedbackList-fontSize: var(--sizes-S-fontSize);--components-calloutFeedbackList-lineHeight: var(--sizes-S-lineHeight)}.calloutDisclosure.mod-S .calloutFeedbackList .button{--icon-size: 1rem;--components-button-font-size: var(--sizes-XS-fontSize);--components-button-line-height: var(--sizes-XS-lineHeight);--components-button-padding: var(--pr-t-spacings-50) var(--pr-t-spacings-100);--components-button-gap: var(--pr-t-spacings-50)}.calloutDisclosure.mod-S .calloutFeedbackList .button .numericBadge{--components-numericBadge-size: 1rem;--components-numericBadge-borderRadius: var(--commons-borderRadius-M);--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}.calloutDisclosure.mod-iconless .calloutDisclosure-summary-icon{display:none}.calloutDisclosure.mod-iconless .calloutDisclosure-details{margin-left:var(--components-calloutDisclosure-paddingHorizontal)}lu-callout-disclosure{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconComponent, selector: "lu-icon", inputs: ["icon", "alt", "size", "color"] }, { kind: "directive", type: PortalDirective, selector: "[luPortal]", inputs: ["luPortal", "luPortalContext"] }, { kind: "pipe", type: CalloutIconPipe, name: "luCalloutIcon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
200
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: CalloutDisclosureComponent, isStandalone: true, selector: "lu-callout-disclosure", inputs: { icon: "icon", heading: "heading", palette: "palette", size: "size", state: "state", open: ["open", "open", booleanAttribute] }, outputs: { openChange: "openChange" }, ngImport: i0, template: "<details class=\"calloutDisclosure\" [ngClass]=\"calloutClasses\" [class.mod-iconless]=\"!icon\" [open]=\"open\" (toggle)=\"onToggle($event)\">\n\t<summary class=\"calloutDisclosure-summary\">\n\t\t@if (state | luCalloutIcon: icon; as calloutIcon) {\n\t\t<span class=\"calloutDisclosure-summary-icon\">\n\t\t\t<lu-icon [icon]=\"calloutIcon\"></lu-icon>\n\t\t</span>\n\t\t}\n\t\t<span class=\"calloutDisclosure-summary-title\">\n\t\t\t<ng-container *luPortal=\"heading\"></ng-container>\n\t\t</span>\n\t\t<lu-icon class=\"calloutDisclosure-summary-chevron\" icon=\"arrowChevronBottom\"></lu-icon>\n\t</summary>\n\t<div class=\"calloutDisclosure-details\">\n\t\t<ng-content></ng-content>\n\t</div>\n</details>\n", styles: [".calloutDisclosure{--components-calloutDisclosure-paddingHorizontal: var(--pr-t-spacings-150);border-radius:var(--commons-borderRadius-L);background-color:var(--palettes-50, var(--palettes-neutral-50));color:var(--palettes-neutral-800);box-shadow:0 0 0 var(--commons-divider-width) var(--palettes-300, var(--palettes-neutral-300))}.calloutDisclosure a,.calloutDisclosure .link{--commons-text-link-color: var(--palettes-neutral-800);--commons-text-link-hover: var(--palettes-neutral-700)}.calloutDisclosure-summary{display:flex;gap:var(--pr-t-spacings-150);padding:var(--pr-t-spacings-100) var(--components-calloutDisclosure-paddingHorizontal);border-radius:var(--commons-borderRadius-L);transition:background-color var(--commons-animations-durations-fast) ease;cursor:pointer;z-index:1;position:relative}.calloutDisclosure-summary:hover{background-color:var(--palettes-100, var(--palettes-neutral-100))}.calloutDisclosure-summary:focus-visible{outline:2px solid var(--palettes-product-700);outline-offset:3px;border-radius:6px}.calloutDisclosure-summary:focus-visible~.calloutDisclosure-details{box-shadow:none}.calloutDisclosure-summary::-webkit-details-marker{display:none}.calloutDisclosure-summary-icon{color:var(--palettes-700, var(--palettes-neutral-700))}.calloutDisclosure-summary-title{font-weight:600}.calloutDisclosure-summary-chevron{align-self:start;color:var(--palettes-neutral-700);margin-left:auto;transition:transform var(--commons-animations-durations-standard) ease}.calloutDisclosure-details{margin:0 calc(var(--components-calloutDisclosure-paddingHorizontal) + 2.25rem);padding:var(--pr-t-spacings-100) 0 var(--pr-t-spacings-200);box-shadow:0 -1px 0 0 var(--palettes-200, var(--palettes-neutral-200))}.calloutDisclosure[open] .calloutDisclosure-summary-chevron{transform:rotate(-180deg)}.calloutDisclosure.mod-S .calloutDisclosure-summary-title{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight)}.calloutDisclosure.mod-S .calloutDisclosure-summary-icon,.calloutDisclosure.mod-S .calloutDisclosure-summary-chevron{--icon-size: 1.25rem}.calloutDisclosure.mod-S .calloutDisclosure-details{margin-left:calc(var(--components-calloutDisclosure-paddingHorizontal) + 2rem)}.calloutDisclosure.mod-S .calloutFeedbackList{--components-calloutFeedbackList-gap: var(--pr-t-spacings-100);--components-calloutFeedbackList-fontSize: var(--sizes-S-fontSize);--components-calloutFeedbackList-lineHeight: var(--sizes-S-lineHeight)}.calloutDisclosure.mod-S .calloutFeedbackList .button{--icon-size: 1rem;--components-button-font-size: var(--sizes-XS-fontSize);--components-button-line-height: var(--sizes-XS-lineHeight);--components-button-padding: var(--pr-t-spacings-50) var(--pr-t-spacings-100);--components-button-gap: var(--pr-t-spacings-50)}.calloutDisclosure.mod-S .calloutFeedbackList .button .numericBadge{--components-numericBadge-size: 1rem;--components-numericBadge-borderRadius: var(--commons-borderRadius-M);--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}.calloutDisclosure.mod-iconless .calloutDisclosure-summary-icon{display:none}.calloutDisclosure.mod-iconless .calloutDisclosure-details{margin-left:var(--components-calloutDisclosure-paddingHorizontal)}lu-callout-disclosure{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconComponent, selector: "lu-icon", inputs: ["icon", "alt", "size", "color"] }, { kind: "directive", type: PortalDirective, selector: "[luPortal]", inputs: ["luPortal", "luPortalContext"] }, { kind: "pipe", type: CalloutIconPipe, name: "luCalloutIcon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
201
201
  }
202
202
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CalloutDisclosureComponent, decorators: [{
203
203
  type: Component,
204
- args: [{ selector: 'lu-callout-disclosure', standalone: true, imports: [CommonModule, IconComponent, NgClass, PortalDirective, CalloutIconPipe], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<details class=\"calloutDisclosure\" [ngClass]=\"calloutClasses\" [class.mod-iconless]=\"!icon\" [open]=\"open\" (toggle)=\"onToggle($event)\">\n\t<summary class=\"calloutDisclosure-summary\">\n\t\t@if (state | luCalloutIcon: icon; as calloutIcon) {\n\t\t<span class=\"calloutDisclosure-summary-icon\">\n\t\t\t<lu-icon [icon]=\"calloutIcon\"></lu-icon>\n\t\t</span>\n\t\t}\n\t\t<span class=\"calloutDisclosure-summary-title\">\n\t\t\t<ng-container *luPortal=\"heading\"></ng-container>\n\t\t</span>\n\t\t<lu-icon class=\"calloutDisclosure-summary-chevron\" icon=\"arrowChevronBottom\"></lu-icon>\n\t</summary>\n\t<div class=\"calloutDisclosure-details\">\n\t\t<ng-content></ng-content>\n\t</div>\n</details>\n", styles: [".calloutDisclosure{--components-calloutDisclosure-paddingHorizontal: var(--pr-t-spacings-150);border-radius:var(--commons-borderRadius-L);background-color:var(--palettes-50, var(--palettes-neutral-50));color:var(--palettes-neutral-800);box-shadow:0 0 0 var(--commons-divider-width) var(--palettes-300, var(--palettes-neutral-300))}.calloutDisclosure a,.calloutDisclosure .link{--commons-text-link-color: var(--palettes-neutral-800);--commons-text-link-hover: var(--palettes-neutral-700)}.calloutDisclosure-summary{display:flex;gap:var(--pr-t-spacings-150);padding:var(--pr-t-spacings-100) var(--components-calloutDisclosure-paddingHorizontal);border-radius:var(--commons-borderRadius-L);transition:background-color var(--commons-animations-durations-fast) ease;cursor:pointer;z-index:1;position:relative}.calloutDisclosure-summary:hover{background-color:var(--palettes-100, var(--palettes-neutral-100))}.calloutDisclosure-summary:focus-visible{outline:2px solid var(--palettes-product-700);outline-offset:3px;border-radius:6px}.calloutDisclosure-summary:focus-visible~.calloutDisclosure-details{box-shadow:none}.calloutDisclosure-summary-icon{color:var(--palettes-700, var(--palettes-neutral-700))}.calloutDisclosure-summary-title{font-weight:600}.calloutDisclosure-summary-chevron{color:var(--palettes-neutral-700);margin-left:auto;transition:transform var(--commons-animations-durations-standard) ease}.calloutDisclosure-details{margin:0 calc(var(--components-calloutDisclosure-paddingHorizontal) + 2.25rem);padding:var(--pr-t-spacings-100) 0 var(--pr-t-spacings-200);box-shadow:0 -1px 0 0 var(--palettes-200, var(--palettes-neutral-200))}.calloutDisclosure[open] .calloutDisclosure-summary-chevron{transform:rotate(-180deg)}.calloutDisclosure.mod-S .calloutDisclosure-summary-title{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight)}.calloutDisclosure.mod-S .calloutDisclosure-summary-icon,.calloutDisclosure.mod-S .calloutDisclosure-summary-chevron{--icon-size: 1.25rem}.calloutDisclosure.mod-S .calloutDisclosure-details{margin-left:calc(var(--components-calloutDisclosure-paddingHorizontal) + 2rem)}.calloutDisclosure.mod-S .calloutFeedbackList{--components-calloutFeedbackList-gap: var(--pr-t-spacings-100);--components-calloutFeedbackList-fontSize: var(--sizes-S-fontSize);--components-calloutFeedbackList-lineHeight: var(--sizes-S-lineHeight)}.calloutDisclosure.mod-S .calloutFeedbackList .button{--icon-size: 1rem;--components-button-font-size: var(--sizes-XS-fontSize);--components-button-line-height: var(--sizes-XS-lineHeight);--components-button-padding: var(--pr-t-spacings-50) var(--pr-t-spacings-100);--components-button-gap: var(--pr-t-spacings-50)}.calloutDisclosure.mod-S .calloutFeedbackList .button .numericBadge{--components-numericBadge-size: 1rem;--components-numericBadge-borderRadius: var(--commons-borderRadius-M);--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}.calloutDisclosure.mod-iconless .calloutDisclosure-summary-icon{display:none}.calloutDisclosure.mod-iconless .calloutDisclosure-details{margin-left:var(--components-calloutDisclosure-paddingHorizontal)}lu-callout-disclosure{display:block}\n"] }]
204
+ args: [{ selector: 'lu-callout-disclosure', standalone: true, imports: [CommonModule, IconComponent, NgClass, PortalDirective, CalloutIconPipe], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<details class=\"calloutDisclosure\" [ngClass]=\"calloutClasses\" [class.mod-iconless]=\"!icon\" [open]=\"open\" (toggle)=\"onToggle($event)\">\n\t<summary class=\"calloutDisclosure-summary\">\n\t\t@if (state | luCalloutIcon: icon; as calloutIcon) {\n\t\t<span class=\"calloutDisclosure-summary-icon\">\n\t\t\t<lu-icon [icon]=\"calloutIcon\"></lu-icon>\n\t\t</span>\n\t\t}\n\t\t<span class=\"calloutDisclosure-summary-title\">\n\t\t\t<ng-container *luPortal=\"heading\"></ng-container>\n\t\t</span>\n\t\t<lu-icon class=\"calloutDisclosure-summary-chevron\" icon=\"arrowChevronBottom\"></lu-icon>\n\t</summary>\n\t<div class=\"calloutDisclosure-details\">\n\t\t<ng-content></ng-content>\n\t</div>\n</details>\n", styles: [".calloutDisclosure{--components-calloutDisclosure-paddingHorizontal: var(--pr-t-spacings-150);border-radius:var(--commons-borderRadius-L);background-color:var(--palettes-50, var(--palettes-neutral-50));color:var(--palettes-neutral-800);box-shadow:0 0 0 var(--commons-divider-width) var(--palettes-300, var(--palettes-neutral-300))}.calloutDisclosure a,.calloutDisclosure .link{--commons-text-link-color: var(--palettes-neutral-800);--commons-text-link-hover: var(--palettes-neutral-700)}.calloutDisclosure-summary{display:flex;gap:var(--pr-t-spacings-150);padding:var(--pr-t-spacings-100) var(--components-calloutDisclosure-paddingHorizontal);border-radius:var(--commons-borderRadius-L);transition:background-color var(--commons-animations-durations-fast) ease;cursor:pointer;z-index:1;position:relative}.calloutDisclosure-summary:hover{background-color:var(--palettes-100, var(--palettes-neutral-100))}.calloutDisclosure-summary:focus-visible{outline:2px solid var(--palettes-product-700);outline-offset:3px;border-radius:6px}.calloutDisclosure-summary:focus-visible~.calloutDisclosure-details{box-shadow:none}.calloutDisclosure-summary::-webkit-details-marker{display:none}.calloutDisclosure-summary-icon{color:var(--palettes-700, var(--palettes-neutral-700))}.calloutDisclosure-summary-title{font-weight:600}.calloutDisclosure-summary-chevron{align-self:start;color:var(--palettes-neutral-700);margin-left:auto;transition:transform var(--commons-animations-durations-standard) ease}.calloutDisclosure-details{margin:0 calc(var(--components-calloutDisclosure-paddingHorizontal) + 2.25rem);padding:var(--pr-t-spacings-100) 0 var(--pr-t-spacings-200);box-shadow:0 -1px 0 0 var(--palettes-200, var(--palettes-neutral-200))}.calloutDisclosure[open] .calloutDisclosure-summary-chevron{transform:rotate(-180deg)}.calloutDisclosure.mod-S .calloutDisclosure-summary-title{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight)}.calloutDisclosure.mod-S .calloutDisclosure-summary-icon,.calloutDisclosure.mod-S .calloutDisclosure-summary-chevron{--icon-size: 1.25rem}.calloutDisclosure.mod-S .calloutDisclosure-details{margin-left:calc(var(--components-calloutDisclosure-paddingHorizontal) + 2rem)}.calloutDisclosure.mod-S .calloutFeedbackList{--components-calloutFeedbackList-gap: var(--pr-t-spacings-100);--components-calloutFeedbackList-fontSize: var(--sizes-S-fontSize);--components-calloutFeedbackList-lineHeight: var(--sizes-S-lineHeight)}.calloutDisclosure.mod-S .calloutFeedbackList .button{--icon-size: 1rem;--components-button-font-size: var(--sizes-XS-fontSize);--components-button-line-height: var(--sizes-XS-lineHeight);--components-button-padding: var(--pr-t-spacings-50) var(--pr-t-spacings-100);--components-button-gap: var(--pr-t-spacings-50)}.calloutDisclosure.mod-S .calloutFeedbackList .button .numericBadge{--components-numericBadge-size: 1rem;--components-numericBadge-borderRadius: var(--commons-borderRadius-M);--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}.calloutDisclosure.mod-iconless .calloutDisclosure-summary-icon{display:none}.calloutDisclosure.mod-iconless .calloutDisclosure-details{margin-left:var(--components-calloutDisclosure-paddingHorizontal)}lu-callout-disclosure{display:block}\n"] }]
205
205
  }], propDecorators: { icon: [{
206
206
  type: Input
207
207
  }], heading: [{