@mozaic-ds/angular 0.24.0-beta.6 → 0.24.0-beta.8

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 (78) hide show
  1. package/adeo/components/autocomplete/autocomplete.component.d.ts +11 -12
  2. package/adeo/components/dropdown/dropdown.component.d.ts +8 -15
  3. package/adeo/components/header/header.component.d.ts +7 -3
  4. package/adeo/components/listbox/listbox.component.d.ts +45 -9
  5. package/adeo/components/listbox/model/listbox-item.d.ts +3 -1
  6. package/adeo/components/public-api.d.ts +1 -0
  7. package/adeo/components/segmented-control/index.d.ts +4 -0
  8. package/adeo/components/segmented-control/public-api.d.ts +1 -0
  9. package/adeo/components/segmented-control/segmented-control-button/segmented-control-button.component.d.ts +7 -0
  10. package/adeo/components/segmented-control/segmented-control-size.d.ts +2 -0
  11. package/adeo/components/segmented-control/segmented-control.component.d.ts +9 -0
  12. package/adeo/components/segmented-control/segmented-control.module.d.ts +9 -0
  13. package/adeo/components/sidebar/model/models.d.ts +1 -1
  14. package/adeo/components/sidebar/moz-sidebar.component.d.ts +4 -3
  15. package/adeo/esm2020/components/autocomplete/autocomplete.component.mjs +49 -78
  16. package/adeo/esm2020/components/datatable/components/selection/moz-datatable-selection.component.mjs +2 -2
  17. package/adeo/esm2020/components/datatable/directives/moz-datatable-sort.directive.mjs +12 -10
  18. package/adeo/esm2020/components/datatable/moz-datatable.component.mjs +3 -3
  19. package/adeo/esm2020/components/dropdown/dropdown.component.mjs +45 -82
  20. package/adeo/esm2020/components/file-uploader/file-uploader.component.mjs +26 -9
  21. package/adeo/esm2020/components/header/header.component.mjs +17 -4
  22. package/adeo/esm2020/components/listbox/listbox.component.mjs +233 -17
  23. package/adeo/esm2020/components/listbox/model/listbox-item.mjs +1 -1
  24. package/adeo/esm2020/components/phone-number/phone-number.component.mjs +1 -1
  25. package/adeo/esm2020/components/public-api.mjs +2 -1
  26. package/adeo/esm2020/components/segmented-control/index.mjs +5 -0
  27. package/adeo/esm2020/components/segmented-control/public-api.mjs +2 -0
  28. package/adeo/esm2020/components/segmented-control/segmented-control-button/segmented-control-button.component.mjs +21 -0
  29. package/adeo/esm2020/components/segmented-control/segmented-control-size.mjs +2 -0
  30. package/adeo/esm2020/components/segmented-control/segmented-control.component.mjs +23 -0
  31. package/adeo/esm2020/components/segmented-control/segmented-control.module.mjs +19 -0
  32. package/adeo/esm2020/components/sidebar/components/user/moz-sidebar-user.component.mjs +1 -1
  33. package/adeo/esm2020/components/sidebar/model/models.mjs +1 -1
  34. package/adeo/esm2020/components/sidebar/moz-sidebar.component.mjs +11 -8
  35. package/adeo/fesm2015/mozaic-ds-angular.mjs +443 -202
  36. package/adeo/fesm2015/mozaic-ds-angular.mjs.map +1 -1
  37. package/adeo/fesm2020/mozaic-ds-angular.mjs +440 -197
  38. package/adeo/fesm2020/mozaic-ds-angular.mjs.map +1 -1
  39. package/adeo/package.json +1 -1
  40. package/components/autocomplete/autocomplete.component.d.ts +11 -12
  41. package/components/dropdown/dropdown.component.d.ts +8 -15
  42. package/components/header/header.component.d.ts +7 -3
  43. package/components/listbox/listbox.component.d.ts +45 -9
  44. package/components/listbox/model/listbox-item.d.ts +3 -1
  45. package/components/public-api.d.ts +1 -0
  46. package/components/segmented-control/index.d.ts +4 -0
  47. package/components/segmented-control/public-api.d.ts +1 -0
  48. package/components/segmented-control/segmented-control-button/segmented-control-button.component.d.ts +7 -0
  49. package/components/segmented-control/segmented-control-size.d.ts +2 -0
  50. package/components/segmented-control/segmented-control.component.d.ts +9 -0
  51. package/components/segmented-control/segmented-control.module.d.ts +9 -0
  52. package/components/sidebar/model/models.d.ts +1 -1
  53. package/components/sidebar/moz-sidebar.component.d.ts +4 -3
  54. package/esm2020/components/autocomplete/autocomplete.component.mjs +49 -78
  55. package/esm2020/components/datatable/components/selection/moz-datatable-selection.component.mjs +2 -2
  56. package/esm2020/components/datatable/directives/moz-datatable-sort.directive.mjs +12 -10
  57. package/esm2020/components/datatable/moz-datatable.component.mjs +3 -3
  58. package/esm2020/components/dropdown/dropdown.component.mjs +45 -82
  59. package/esm2020/components/file-uploader/file-uploader.component.mjs +26 -9
  60. package/esm2020/components/header/header.component.mjs +17 -4
  61. package/esm2020/components/listbox/listbox.component.mjs +233 -17
  62. package/esm2020/components/listbox/model/listbox-item.mjs +1 -1
  63. package/esm2020/components/phone-number/phone-number.component.mjs +1 -1
  64. package/esm2020/components/public-api.mjs +2 -1
  65. package/esm2020/components/segmented-control/index.mjs +5 -0
  66. package/esm2020/components/segmented-control/public-api.mjs +2 -0
  67. package/esm2020/components/segmented-control/segmented-control-button/segmented-control-button.component.mjs +21 -0
  68. package/esm2020/components/segmented-control/segmented-control-size.mjs +2 -0
  69. package/esm2020/components/segmented-control/segmented-control.component.mjs +23 -0
  70. package/esm2020/components/segmented-control/segmented-control.module.mjs +19 -0
  71. package/esm2020/components/sidebar/components/user/moz-sidebar-user.component.mjs +1 -1
  72. package/esm2020/components/sidebar/model/models.mjs +1 -1
  73. package/esm2020/components/sidebar/moz-sidebar.component.mjs +11 -8
  74. package/fesm2015/mozaic-ds-angular.mjs +443 -202
  75. package/fesm2015/mozaic-ds-angular.mjs.map +1 -1
  76. package/fesm2020/mozaic-ds-angular.mjs +440 -197
  77. package/fesm2020/mozaic-ds-angular.mjs.map +1 -1
  78. package/package.json +1 -1
@@ -1,6 +1,5 @@
1
- import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, HostListener, Inject, Injector, Input, Output, ViewChild, forwardRef, } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Inject, Injector, Input, Output, ViewChild, forwardRef, } from '@angular/core';
2
2
  import { FormControlName, FormGroupDirective, NG_VALUE_ACCESSOR, NgControl, } from '@angular/forms';
3
- import { Subject, fromEvent, takeUntil } from 'rxjs';
4
3
  import * as i0 from "@angular/core";
5
4
  import * as i1 from "@angular/common";
6
5
  import * as i2 from "../tag/tag.component";
@@ -11,9 +10,8 @@ import * as i6 from "../icon/icon.component";
11
10
  import * as i7 from "../loader/loader.component";
12
11
  import * as i8 from "../text-input/text-input.component";
13
12
  export class AutocompleteComponent {
14
- constructor(injector, eRef, cd) {
13
+ constructor(injector, cd) {
15
14
  this.injector = injector;
16
- this.eRef = eRef;
17
15
  this.cd = cd;
18
16
  this.listboxItems = [];
19
17
  this.multiple = false;
@@ -32,15 +30,18 @@ export class AutocompleteComponent {
32
30
  this.withSearchFilter = true;
33
31
  this.openState = false;
34
32
  this.searchUpdated = new EventEmitter();
35
- this.destroyed = new Subject();
33
+ this.inputClicked = new EventEmitter();
34
+ this.scrollEnd = new EventEmitter();
36
35
  this.search = '';
37
36
  this.initialListboxItems = [];
38
37
  this.onAutocompleteChange = () => { };
39
- this.onTouch = () => { };
38
+ this.onAutocompleteTouch = () => { };
40
39
  this.noResults = false;
41
40
  }
42
- ngOnInit() {
41
+ ngOnChanges() {
43
42
  this.initialListboxItems = this.listboxItems.map((x) => ({ ...x }));
43
+ }
44
+ ngOnInit() {
44
45
  const ngControl = this.injector.get(NgControl);
45
46
  if (ngControl instanceof FormControlName) {
46
47
  this.control = this.injector.get(FormGroupDirective).getControl(ngControl);
@@ -58,64 +59,15 @@ export class AutocompleteComponent {
58
59
  this.onAutocompleteChange = fn;
59
60
  }
60
61
  registerOnTouched(fn) {
61
- this.onTouch = fn;
62
- }
63
- ngOnDestroy() {
64
- if (this.listboxElementRef) {
65
- const mozListbox = this.listboxElementRef.nativeElement;
66
- if (mozListbox && mozListbox.parentNode) {
67
- mozListbox.parentNode.removeChild(mozListbox);
68
- }
69
- }
70
- this.destroyed.next(null);
71
- this.destroyed.complete();
72
- }
73
- ngAfterViewInit() {
74
- fromEvent(window, 'resize')
75
- .pipe(takeUntil(this.destroyed))
76
- .subscribe(() => {
77
- this.closeListbox();
78
- this.cd.detectChanges();
79
- });
80
- fromEvent(window, 'scroll')
81
- .pipe(takeUntil(this.destroyed))
82
- .subscribe(() => {
83
- this.closeListbox();
84
- this.cd.detectChanges();
85
- });
86
- }
87
- clickout(event) {
88
- const listboxHtmlElementContainsClickTarget = this.listboxElementRef && this.listboxElementRef.nativeElement.contains(event.target);
89
- const autocompleteInputContainsClickTarget = this.eRef.nativeElement.contains(event.target);
90
- if ((!listboxHtmlElementContainsClickTarget && !autocompleteInputContainsClickTarget) ||
91
- this.disabled) {
92
- this.closeListbox();
93
- }
62
+ this.onAutocompleteTouch = fn;
94
63
  }
95
64
  openListbox() {
96
- if (this.listboxItems.length > 0) {
97
- this.openState = true;
98
- setTimeout(() => {
99
- const mozListbox = this.listboxElementRef.nativeElement;
100
- const inputElement = this.eRef.nativeElement.firstChild;
101
- const inputRect = inputElement.getBoundingClientRect();
102
- mozListbox.style.position = 'absolute';
103
- mozListbox.style.top = inputRect.bottom + window.scrollY + 'px';
104
- mozListbox.style.left = inputRect.left + window.scrollX + 'px';
105
- mozListbox.style.width = inputRect.width + 'px';
106
- this.originalListboxParent = mozListbox.parentElement;
107
- document.body.appendChild(mozListbox);
108
- }, 10);
109
- }
65
+ this.openState = true;
66
+ this.inputClicked.emit(true);
110
67
  }
111
68
  closeListbox() {
112
69
  this.openState = false;
113
- if (this.originalListboxParent && this.listboxElementRef) {
114
- this.originalListboxParent.appendChild(this.listboxElementRef.nativeElement);
115
- this.originalListboxParent = null;
116
- }
117
70
  this.listboxItems = this.initialListboxItems;
118
- this.control?.markAsTouched();
119
71
  }
120
72
  itemsSelectedListboxEvent(listboxItemSelected) {
121
73
  if (!this.multiple) {
@@ -123,9 +75,14 @@ export class AutocompleteComponent {
123
75
  this.closeListbox();
124
76
  }
125
77
  this.invalid = false;
126
- this.writeValue(listboxItemSelected);
127
- this.control?.setValue(this.selectedItems);
128
- this.control?.markAsDirty();
78
+ if (this.control) {
79
+ this.control?.setValue(this.selectedItems);
80
+ this.control?.markAsDirty();
81
+ this.control?.markAsTouched();
82
+ }
83
+ else {
84
+ this.writeValue(listboxItemSelected);
85
+ }
129
86
  }
130
87
  clearFieldEvent() {
131
88
  if (!this.disabled) {
@@ -175,14 +132,19 @@ export class AutocompleteComponent {
175
132
  return this.selectedItems.map((selectedItem) => ({ id: selectedItem.value, label: selectedItem.label }));
176
133
  }
177
134
  removeTagEvent($event) {
178
- this.writeValue(this.selectedItems.filter((selectedItem) => selectedItem.value !== $event.id));
135
+ const selectedItems = this.selectedItems.filter((selectedItem) => selectedItem.value !== $event.id);
136
+ if (this.control) {
137
+ this.control?.setValue(selectedItems);
138
+ this.control?.markAsDirty();
139
+ this.control?.markAsTouched();
140
+ }
141
+ else {
142
+ this.writeValue(selectedItems);
143
+ }
179
144
  this.taglistComponent.updateTaglistLayerConfig(this.getTagItemsFromSelectedItems());
180
145
  if (this.getTagItemsFromSelectedItems().length === 0) {
181
146
  this.taglistComponent.closeTaglistLayer();
182
147
  }
183
- this.control?.setValue(this.selectedItems);
184
- this.control?.markAsDirty();
185
- this.control?.markAsTouched();
186
148
  this.cd.detectChanges();
187
149
  }
188
150
  searchEvent() {
@@ -210,15 +172,26 @@ export class AutocompleteComponent {
210
172
  this.searchUpdated.emit(this.search);
211
173
  this.cd.detectChanges();
212
174
  }
175
+ focusinEvent() {
176
+ this.openListbox();
177
+ }
178
+ focusoutEvent($event) {
179
+ if ($event.relatedTarget && !$event.relatedTarget.classList.contains('mc-listbox__list')) {
180
+ this.closeListbox();
181
+ }
182
+ }
183
+ scrollEndEvent($event) {
184
+ this.scrollEnd.emit($event);
185
+ }
213
186
  }
214
- AutocompleteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AutocompleteComponent, deps: [{ token: Injector }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
215
- AutocompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: AutocompleteComponent, selector: "moz-autocomplete", inputs: { listboxItems: "listboxItems", multiple: "multiple", placeholder: "placeholder", disabled: "disabled", loading: "loading", clearfield: "clearfield", valid: "valid", invalid: "invalid", size: "size", showSelectedTags: "showSelectedTags", maxShowingSelectedTags: "maxShowingSelectedTags", layerTagsTitle: "layerTagsTitle", layerTagsIcon: "layerTagsIcon", errorContentText: "errorContentText", withSearchFilter: "withSearchFilter", openState: "openState" }, outputs: { searchUpdated: "searchUpdated" }, host: { listeners: { "document:click": "clickout($event)" } }, providers: [
187
+ AutocompleteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AutocompleteComponent, deps: [{ token: Injector }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
188
+ AutocompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: AutocompleteComponent, selector: "moz-autocomplete", inputs: { listboxItems: "listboxItems", multiple: "multiple", placeholder: "placeholder", disabled: "disabled", loading: "loading", clearfield: "clearfield", valid: "valid", invalid: "invalid", size: "size", showSelectedTags: "showSelectedTags", maxShowingSelectedTags: "maxShowingSelectedTags", layerTagsTitle: "layerTagsTitle", layerTagsIcon: "layerTagsIcon", errorContentText: "errorContentText", withSearchFilter: "withSearchFilter", openState: "openState" }, outputs: { searchUpdated: "searchUpdated", inputClicked: "inputClicked", scrollEnd: "scrollEnd" }, providers: [
216
189
  {
217
190
  provide: NG_VALUE_ACCESSOR,
218
191
  useExisting: forwardRef(() => AutocompleteComponent),
219
192
  multi: true,
220
193
  },
221
- ], viewQueries: [{ propertyName: "taglistComponent", first: true, predicate: ["taglist"], descendants: true }, { propertyName: "listboxElementRef", first: true, predicate: ["listbox"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div\n id=\"js-autocomplete\"\n class=\"mc-autocomplete mc-autocomplete--clearable\"\n [ngClass]=\"{ 'mc-autocomplete--multi': multiple }\"\n [ngStyle]=\"{\n '--autocomplete-tag-width':\n !showSelectedTags && multiple && getSelectedListboxItems().length > 0 ? '3.5rem' : '',\n '--autocomplete-width': '100%'\n }\"\n>\n <div class=\"mc-autocomplete__main\">\n <moz-tag\n *ngIf=\"!showSelectedTags && multiple && getSelectedListboxItems().length > 0\"\n type=\"removable\"\n class=\"mc-autocomplete__tag mc-tag-removable mc-tag-removable--s\"\n [size]=\"'s'\"\n (clickOnRemove)=\"clearFieldEvent()\"\n >\n {{ getSelectedListboxItems().length }}</moz-tag\n >\n\n <div class=\"mc-left-icon-input\">\n <moz-icon\n class=\"mc-left-icon-input__icon\"\n [iconName]=\"'Navigation_Display_Search_24px'\"\n ></moz-icon>\n <input\n moz-input\n [type]=\"'text'\"\n [invalid]=\"invalid\"\n class=\"mc-left-icon-input__input mc-text-input mc-autocomplete__trigger\"\n [valid]=\"valid\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [size]=\"size\"\n [(ngModel)]=\"search\"\n (ngModelChange)=\"searchEvent()\"\n (click)=\"openListbox()\"\n />\n </div>\n\n <div class=\"mc-autocomplete__tools\">\n <div class=\"mc-autocomplete__loader mc-loader mc-loader--s\" *ngIf=\"loading\">\n <span class=\"mc-loader__spinner\">\n <moz-loader class=\"mc-loader__icon\" size=\"s\"></moz-loader>\n </span>\n </div>\n <button\n class=\"mc-autocomplete__clear\"\n type=\"button\"\n *ngIf=\"canClearField()\"\n (click)=\"clearFieldEvent()\"\n >\n <moz-icon\n class=\"mc-autocomplete__clear-icon\"\n [iconName]=\"'Navigation_Control_Tag--Cross_24px'\"\n ></moz-icon\n ><span class=\"mc-autocomplete__clear-text\">Clear</span>\n </button>\n </div>\n </div>\n <moz-listbox\n *ngIf=\"openState\"\n #listbox\n [listboxItems]=\"listboxItems\"\n [isOpen]=\"openState\"\n [multiple]=\"multiple\"\n [selectedItems]=\"selectedItems\"\n (itemsSelected)=\"itemsSelectedListboxEvent($event)\"\n ></moz-listbox>\n</div>\n<div class=\"mc-autocomplete__error\" *ngIf=\"invalid\">\n {{ errorContentText }}\n</div>\n<div class=\"mc-autocomplete__taglist\" *ngIf=\"showSelectedTags && multiple\">\n <moz-taglist\n #taglist\n (removeTag)=\"removeTagEvent($event)\"\n [tagItems]=\"getTagItemsFromSelectedItems()\"\n [max]=\"maxShowingSelectedTags\"\n [layerTagsTitle]=\"layerTagsTitle\"\n [layerTagsIcon]=\"layerTagsIcon\"\n ></moz-taglist>\n</div>\n", styles: [".mc-left-icon-input{position:relative}.mc-left-icon-input__icon{position:absolute;z-index:1;top:50%;transform:translateY(-50%);fill:#666;pointer-events:none}.mc-left-icon-input .mc-left-icon-input__icon{left:.75rem;top:50%;width:1.5rem;height:1.5rem}.mc-left-icon-input .mc-left-icon-input__input{padding-left:2.9375rem}.mc-left-icon-input--s .mc-left-icon-input__icon{left:.5rem;top:50%;width:1.5rem;height:1.5rem}.mc-left-icon-input--s .mc-left-icon-input__input{padding-left:2.4375rem}.mc-text-input{font-family:Roboto,sans-serif;font-weight:400;box-sizing:border-box;outline:none;appearance:none;padding:0;margin:0;box-shadow:none;border:none;font-size:1rem;line-height:1.375;min-height:3rem;padding:.75rem .6875rem;transition:box-shadow .2s ease;display:block;width:100%;position:relative;border:1px solid #666666;color:#191919;background-color:#fff;border-radius:4px}.mc-text-input[type=number]::-webkit-inner-spin-button,.mc-text-input[type=number]::-webkit-outer-spin-button{appearance:none;margin:0}.mc-text-input[type=number]{-moz-appearance:textfield}.mc-text-input[type=search]::-webkit-search-decoration:hover,.mc-text-input[type=search]::-webkit-search-cancel-button:hover{cursor:pointer}.mc-text-input::placeholder{font-size:1rem;line-height:1.375}.mc-text-input::placeholder{margin:0;color:#666;opacity:1}.mc-text-input.is-valid,.mc-text-input.is-invalid{background-repeat:no-repeat;background-size:1.5rem 1.5rem;background-position:right .4375rem center;padding-right:2.5rem}.mc-text-input.is-valid{border-color:#46a610;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='1.5rem' width='1.5rem' fill='%2346a610' viewBox='0 0 24 24'%3E%3Cpath d='M12 4a8 8 0 11-8 8 8 8 0 018-8m0-2a10 10 0 1010 10A10 10 0 0012 2z'/%3E%3Cpath d='M10.73 15.75a1 1 0 01-.68-.26l-3-2.74a1 1 0 011.36-1.47l2.25 2.08 4.36-4.42a1 1 0 111.42 1.41l-5 5.1a1 1 0 01-.71.3z'/%3E%3C/svg%3E\")}.mc-text-input.is-valid:hover,.mc-text-input.is-valid.is-hover{border-color:#035010}.mc-text-input.is-invalid{border-color:#c61112;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='1.5rem' width='1.5rem' viewBox='0 0 24 24' fill='%23c61112'%3E%3Cpath d='M12 2a10 10 0 1010 10A10 10 0 0012 2zm0 18a8 8 0 118-8 8 8 0 01-8 8z'/%3E%3Cpath d='M12 7a1 1 0 00-1 1v4.38a1 1 0 002 0V8a1 1 0 00-1-1z'/%3E%3Ccircle cx='12' cy='16' r='1'/%3E%3C/svg%3E\")}.mc-text-input.is-invalid:hover,.mc-text-input.is-invalid.is-hover{border-color:#530000}.mc-text-input:hover{border-color:#191919}.mc-text-input:focus{box-shadow:0 0 0 .125rem #fff,0 0 0 .25rem #758992}.mc-text-input:disabled{background:#e6e6e6;border-color:#e6e6e6;color:#666;cursor:not-allowed}.mc-text-input--s{font-size:.875rem;line-height:1.2857142857;min-height:2rem;padding:.375rem .4375rem}.mc-text-input--s::placeholder{font-size:.875rem;line-height:1.2857142857}@media screen and (min-width: 680px){.mc-text-input--s\\@from-m{font-size:.875rem;line-height:1.2857142857;min-height:2rem;padding:.375rem .4375rem}.mc-text-input--s\\@from-m::placeholder{font-size:.875rem;line-height:1.2857142857}}@media screen and (min-width: 1024px){.mc-text-input--s\\@from-l{font-size:.875rem;line-height:1.2857142857;min-height:2rem;padding:.375rem .4375rem}.mc-text-input--s\\@from-l::placeholder{font-size:.875rem;line-height:1.2857142857}}@media screen and (min-width: 1280px){.mc-text-input--s\\@from-xl{font-size:.875rem;line-height:1.2857142857;min-height:2rem;padding:.375rem .4375rem}.mc-text-input--s\\@from-xl::placeholder{font-size:.875rem;line-height:1.2857142857}}@media screen and (min-width: 1920px){.mc-text-input--s\\@from-xxl{font-size:.875rem;line-height:1.2857142857;min-height:2rem;padding:.375rem .4375rem}.mc-text-input--s\\@from-xxl::placeholder{font-size:.875rem;line-height:1.2857142857}}.mc-text-input--m{font-size:1rem;line-height:1.375;min-height:3rem;padding:.75rem .6875rem}.mc-text-input--m::placeholder{font-size:1rem;line-height:1.375}@media screen and (min-width: 680px){.mc-text-input--m\\@from-m{font-size:1rem;line-height:1.375;min-height:3rem;padding:.75rem .6875rem}.mc-text-input--m\\@from-m::placeholder{font-size:1rem;line-height:1.375}}@media screen and (min-width: 1024px){.mc-text-input--m\\@from-l{font-size:1rem;line-height:1.375;min-height:3rem;padding:.75rem .6875rem}.mc-text-input--m\\@from-l::placeholder{font-size:1rem;line-height:1.375}}@media screen and (min-width: 1280px){.mc-text-input--m\\@from-xl{font-size:1rem;line-height:1.375;min-height:3rem;padding:.75rem .6875rem}.mc-text-input--m\\@from-xl::placeholder{font-size:1rem;line-height:1.375}}@media screen and (min-width: 1920px){.mc-text-input--m\\@from-xxl{font-size:1rem;line-height:1.375;min-height:3rem;padding:.75rem .6875rem}.mc-text-input--m\\@from-xxl::placeholder{font-size:1rem;line-height:1.375}}.mc-listbox{list-style:none;margin-left:0;padding-left:0;background-color:#fff;border:1px solid #666666;border-radius:3px;position:absolute;overflow-y:auto;margin-top:.25rem;margin-bottom:0;max-height:13.8125rem;min-width:auto;opacity:0;visibility:hidden;max-width:var(--listbox-width, auto);width:100%}.mc-listbox.is-open{opacity:1;visibility:visible;z-index:10}.mc-listbox::-webkit-scrollbar{background-color:#e6e6e6;width:.25rem}.mc-listbox::-webkit-scrollbar-thumb{background:#666666}.mc-listbox__item,.mc-listbox__tile{align-items:center;display:flex;gap:.5rem;min-height:3rem;padding-left:.75rem;padding-right:.75rem;position:relative;justify-content:space-between}.mc-listbox__item:not(:last-child),.mc-listbox__tile:not(:last-child){border-bottom:1px solid #b3b3b3}.mc-listbox__item:hover,.mc-listbox__tile:hover{background-color:#e6e6e6;box-shadow:inset 9px 0 0 -7px #191919}.mc-listbox__flag,.mc-listbox__icon{width:2rem;height:2rem}.mc-listbox__flag{font-size:1.4375rem;line-height:1.3913043478;text-align:center}.mc-listbox__empty{font-size:.875rem;line-height:1.2857142857;color:#c61112;display:inline-block;margin-top:.25rem}.mc-listbox__label{cursor:pointer;margin-right:auto}.mc-listbox__label:after{content:\"\";position:absolute;inset:0;z-index:2}.mc-listbox__input{order:1}.mc-listbox .is-checked,.mc-listbox .is-selected{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10 18.68a1 1 0 01-.7-.29l-5-5A1 1 0 015.73 12L10 16.27 18.31 8a1 1 0 011.42 1.42l-9 9a1 1 0 01-.73.26z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right .75rem center;background-size:1.5rem}.mc-listbox .is-focus{background-color:#e6e6e6;box-shadow:inset 9px 0 0 -7px #191919}.mc-listbox .is-disabled{cursor:not-allowed;box-shadow:none;background-color:#ccc;color:#666;pointer-events:none}.mc-listbox:not(.mc-listbox--multi) .mc-listbox__input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mc-listbox:not(.mc-listbox--multi) .mc-listbox__input:checked+.mc-listbox__label:before{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10 18.68a1 1 0 01-.7-.29l-5-5A1 1 0 015.73 12L10 16.27 18.31 8a1 1 0 011.42 1.42l-9 9a1 1 0 01-.73.26z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:center;content:\"\";height:1.5rem;position:absolute;right:.75rem;top:0;transform:translateY(50%);width:1.5rem}.mc-listbox--left{right:0}.mc-loader{color:#007f8c;align-items:center;display:inline-flex;flex-direction:column}.mc-loader .mc-loader__spinner{height:2rem;width:2rem}.mc-loader .mc-loader__path{stroke-width:4}.mc-loader .mc-loader__path{stroke:currentColor}.mc-loader__spinner:not(:only-child){margin-bottom:1rem}.mc-loader__icon{animation:rotate-loader 2s linear infinite;transform-origin:center}.mc-loader__path{fill:none;stroke-dasharray:1,200;stroke-dashoffset:0;stroke-linecap:round;animation:animate-dash-loader 2s ease-in-out infinite}.mc-loader__text{font-size:1rem;line-height:1.375;color:currentColor}.mc-loader--s .mc-loader__spinner{height:1.5rem;width:1.5rem}.mc-loader--s .mc-loader__path{stroke-width:4}.mc-loader--l .mc-loader__spinner{height:4rem;width:4rem}.mc-loader--l .mc-loader__path{stroke-width:8}.mc-loader--dark{color:#191919}.mc-loader--dark .mc-loader__path{stroke:currentColor}.mc-loader--light{color:#fff}.mc-loader--light .mc-loader__path{stroke:currentColor}@keyframes rotate-loader{0%{transform:rotate(0)}to{transform:rotate(270deg)}}@keyframes animate-dash-loader{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}.mc-autocomplete{align-self:start;position:relative;min-width:18rem;max-width:var(--autocomplete-width, auto);width:100%}.mc-autocomplete__main{position:relative}.mc-autocomplete__tag,.mc-autocomplete__tools{position:absolute;top:50%;transform:translateY(-50%);z-index:2}.mc-autocomplete__tag{left:2.75rem}.mc-autocomplete__trigger{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mc-autocomplete__tools{align-items:center;background-color:#fff;display:flex;gap:.5rem;justify-content:flex-end;right:.75rem}.is-valid+.mc-autocomplete__tools,.is-invalid+.mc-autocomplete__tools{right:2.5rem}.mc-autocomplete__clear{margin:0;box-shadow:none;text-decoration:none;outline:none;border:none;cursor:pointer;padding:0;box-shadow:0 0 0 0 transparent;transition:box-shadow .15s ease;background:none;border-radius:50%}.mc-autocomplete__clear:focus{box-shadow:0 0 0 2px #758992}.mc-autocomplete__clear,.mc-autocomplete__clear-icon{height:1.5rem;width:1.5rem}.mc-autocomplete__clear-icon{fill:#666}.mc-autocomplete__clear-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mc-autocomplete__error{font-size:.875rem;line-height:1.2857142857;color:#c61112;display:inline-block;margin-top:.25rem}.mc-autocomplete--multi .mc-autocomplete__trigger{padding-left:calc(2.9375rem + var(--autocomplete-tag-width, 0px))}.mc-autocomplete__taglist{margin-top:1rem}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.TagComponent, selector: "moz-tag, a[moz-tag]", inputs: ["type", "size", "select"], outputs: ["selectChange", "clickOnRemove"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.TaglistComponent, selector: "moz-taglist", inputs: ["tagItems", "tagSize", "showAllTitle", "showAll", "layerTagsTitle", "layerTagsIcon", "max"], outputs: ["removeTag"] }, { kind: "component", type: i5.ListboxComponent, selector: "moz-listbox", inputs: ["listboxItems", "multiple", "isOpen", "selectedItems", "customMaxWidth"], outputs: ["itemsSelected"] }, { kind: "component", type: i6.IconComponent, selector: "moz-icon", inputs: ["iconName"] }, { kind: "component", type: i7.LoaderComponent, selector: "moz-loader", inputs: ["size", "theme", "isOverlay", "text", "hideOverlay"] }, { kind: "component", type: i8.TextInputComponent, selector: "input[moz-input]", inputs: ["size", "invalid", "valid"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
194
+ ], viewQueries: [{ propertyName: "taglistComponent", first: true, predicate: ["taglist"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n id=\"js-autocomplete\"\n class=\"mc-autocomplete mc-autocomplete--clearable\"\n [ngClass]=\"{ 'mc-autocomplete--multi': multiple }\"\n [ngStyle]=\"{\n '--autocomplete-tag-width':\n !showSelectedTags && multiple && getSelectedListboxItems().length > 0 ? '3.5rem' : '',\n '--autocomplete-width': '100%'\n }\"\n>\n <moz-listbox\n #listbox\n [listboxItems]=\"listboxItems\"\n [(isOpen)]=\"openState\"\n [multiple]=\"multiple\"\n [selectedItems]=\"selectedItems\"\n (itemsSelected)=\"itemsSelectedListboxEvent($event)\"\n (scrollEnd)=\"scrollEndEvent($event)\"\n >\n <div class=\"mc-autocomplete__main\" reference>\n <moz-tag\n *ngIf=\"!showSelectedTags && multiple && getSelectedListboxItems().length > 0\"\n type=\"removable\"\n class=\"mc-autocomplete__tag mc-tag-removable mc-tag-removable--s\"\n [size]=\"'s'\"\n (clickOnRemove)=\"clearFieldEvent()\"\n >\n {{ getSelectedListboxItems().length }}</moz-tag\n >\n\n <div class=\"mc-left-icon-input\">\n <moz-icon\n class=\"mc-left-icon-input__icon\"\n [iconName]=\"'Navigation_Display_Search_24px'\"\n ></moz-icon>\n <input\n moz-input\n [type]=\"'text'\"\n [invalid]=\"invalid\"\n class=\"mc-left-icon-input__input mc-text-input mc-autocomplete__trigger\"\n [valid]=\"valid\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [size]=\"size\"\n [(ngModel)]=\"search\"\n (ngModelChange)=\"searchEvent()\"\n (focusin)=\"focusinEvent()\"\n (focusout)=\"focusoutEvent($event)\"\n (click)=\"openListbox()\"\n />\n </div>\n\n <div class=\"mc-autocomplete__tools\">\n <div class=\"mc-autocomplete__loader mc-loader mc-loader--s\" *ngIf=\"loading\">\n <span class=\"mc-loader__spinner\">\n <moz-loader class=\"mc-loader__icon\" size=\"s\"></moz-loader>\n </span>\n </div>\n <button\n class=\"mc-autocomplete__clear\"\n type=\"button\"\n *ngIf=\"canClearField()\"\n (click)=\"clearFieldEvent()\"\n >\n <moz-icon\n class=\"mc-autocomplete__clear-icon\"\n [iconName]=\"'Navigation_Control_Tag--Cross_24px'\"\n ></moz-icon\n ><span class=\"mc-autocomplete__clear-text\">Clear</span>\n </button>\n </div>\n </div>\n </moz-listbox>\n</div>\n<div class=\"mc-autocomplete__error\" *ngIf=\"invalid\">\n {{ errorContentText }}\n</div>\n<div class=\"mc-autocomplete__taglist\" *ngIf=\"showSelectedTags && multiple && !openState\">\n <moz-taglist\n #taglist\n (removeTag)=\"removeTagEvent($event)\"\n [tagItems]=\"getTagItemsFromSelectedItems()\"\n [max]=\"maxShowingSelectedTags\"\n [layerTagsTitle]=\"layerTagsTitle\"\n [layerTagsIcon]=\"layerTagsIcon\"\n ></moz-taglist>\n</div>\n", styles: [".mc-left-icon-input{position:relative}.mc-left-icon-input__icon{position:absolute;z-index:1;top:50%;transform:translateY(-50%);fill:#666;pointer-events:none}.mc-left-icon-input .mc-left-icon-input__icon{left:.75rem;top:50%;width:1.5rem;height:1.5rem}.mc-left-icon-input .mc-left-icon-input__input{padding-left:2.9375rem}.mc-left-icon-input--s .mc-left-icon-input__icon{left:.5rem;top:50%;width:1.5rem;height:1.5rem}.mc-left-icon-input--s .mc-left-icon-input__input{padding-left:2.4375rem}.mc-text-input{font-family:Roboto,sans-serif;font-weight:400;box-sizing:border-box;outline:none;appearance:none;padding:0;margin:0;box-shadow:none;border:none;font-size:1rem;line-height:1.375;min-height:3rem;padding:.75rem .6875rem;transition:box-shadow .2s ease;display:block;width:100%;position:relative;border:1px solid #666666;color:#191919;background-color:#fff;border-radius:4px}.mc-text-input[type=number]::-webkit-inner-spin-button,.mc-text-input[type=number]::-webkit-outer-spin-button{appearance:none;margin:0}.mc-text-input[type=number]{-moz-appearance:textfield}.mc-text-input[type=search]::-webkit-search-decoration:hover,.mc-text-input[type=search]::-webkit-search-cancel-button:hover{cursor:pointer}.mc-text-input::placeholder{font-size:1rem;line-height:1.375}.mc-text-input::placeholder{margin:0;color:#666;opacity:1}.mc-text-input.is-valid,.mc-text-input.is-invalid{background-repeat:no-repeat;background-size:1.5rem 1.5rem;background-position:right .4375rem center;padding-right:2.5rem}.mc-text-input.is-valid{border-color:#46a610;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='1.5rem' width='1.5rem' fill='%2346a610' viewBox='0 0 24 24'%3E%3Cpath d='M12 4a8 8 0 11-8 8 8 8 0 018-8m0-2a10 10 0 1010 10A10 10 0 0012 2z'/%3E%3Cpath d='M10.73 15.75a1 1 0 01-.68-.26l-3-2.74a1 1 0 011.36-1.47l2.25 2.08 4.36-4.42a1 1 0 111.42 1.41l-5 5.1a1 1 0 01-.71.3z'/%3E%3C/svg%3E\")}.mc-text-input.is-valid:hover,.mc-text-input.is-valid.is-hover{border-color:#035010}.mc-text-input.is-invalid{border-color:#c61112;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='1.5rem' width='1.5rem' viewBox='0 0 24 24' fill='%23c61112'%3E%3Cpath d='M12 2a10 10 0 1010 10A10 10 0 0012 2zm0 18a8 8 0 118-8 8 8 0 01-8 8z'/%3E%3Cpath d='M12 7a1 1 0 00-1 1v4.38a1 1 0 002 0V8a1 1 0 00-1-1z'/%3E%3Ccircle cx='12' cy='16' r='1'/%3E%3C/svg%3E\")}.mc-text-input.is-invalid:hover,.mc-text-input.is-invalid.is-hover{border-color:#530000}.mc-text-input:hover{border-color:#191919}.mc-text-input:focus{box-shadow:0 0 0 .125rem #fff,0 0 0 .25rem #758992}.mc-text-input:disabled{background:#e6e6e6;border-color:#e6e6e6;color:#666;cursor:not-allowed}.mc-text-input--s{font-size:.875rem;line-height:1.2857142857;min-height:2rem;padding:.375rem .4375rem}.mc-text-input--s::placeholder{font-size:.875rem;line-height:1.2857142857}@media screen and (min-width: 680px){.mc-text-input--s\\@from-m{font-size:.875rem;line-height:1.2857142857;min-height:2rem;padding:.375rem .4375rem}.mc-text-input--s\\@from-m::placeholder{font-size:.875rem;line-height:1.2857142857}}@media screen and (min-width: 1024px){.mc-text-input--s\\@from-l{font-size:.875rem;line-height:1.2857142857;min-height:2rem;padding:.375rem .4375rem}.mc-text-input--s\\@from-l::placeholder{font-size:.875rem;line-height:1.2857142857}}@media screen and (min-width: 1280px){.mc-text-input--s\\@from-xl{font-size:.875rem;line-height:1.2857142857;min-height:2rem;padding:.375rem .4375rem}.mc-text-input--s\\@from-xl::placeholder{font-size:.875rem;line-height:1.2857142857}}@media screen and (min-width: 1920px){.mc-text-input--s\\@from-xxl{font-size:.875rem;line-height:1.2857142857;min-height:2rem;padding:.375rem .4375rem}.mc-text-input--s\\@from-xxl::placeholder{font-size:.875rem;line-height:1.2857142857}}.mc-text-input--m{font-size:1rem;line-height:1.375;min-height:3rem;padding:.75rem .6875rem}.mc-text-input--m::placeholder{font-size:1rem;line-height:1.375}@media screen and (min-width: 680px){.mc-text-input--m\\@from-m{font-size:1rem;line-height:1.375;min-height:3rem;padding:.75rem .6875rem}.mc-text-input--m\\@from-m::placeholder{font-size:1rem;line-height:1.375}}@media screen and (min-width: 1024px){.mc-text-input--m\\@from-l{font-size:1rem;line-height:1.375;min-height:3rem;padding:.75rem .6875rem}.mc-text-input--m\\@from-l::placeholder{font-size:1rem;line-height:1.375}}@media screen and (min-width: 1280px){.mc-text-input--m\\@from-xl{font-size:1rem;line-height:1.375;min-height:3rem;padding:.75rem .6875rem}.mc-text-input--m\\@from-xl::placeholder{font-size:1rem;line-height:1.375}}@media screen and (min-width: 1920px){.mc-text-input--m\\@from-xxl{font-size:1rem;line-height:1.375;min-height:3rem;padding:.75rem .6875rem}.mc-text-input--m\\@from-xxl::placeholder{font-size:1rem;line-height:1.375}}.mc-listbox{list-style:none;margin-left:0;padding-left:0;background-color:#fff;border:1px solid #666666;border-radius:3px;position:absolute;overflow-y:auto;margin-top:.25rem;margin-bottom:0;max-height:13.8125rem;min-width:auto;opacity:0;visibility:hidden;max-width:var(--listbox-width, auto);width:100%}.mc-listbox.is-open{opacity:1;visibility:visible;z-index:10}.mc-listbox::-webkit-scrollbar{background-color:#e6e6e6;width:.25rem}.mc-listbox::-webkit-scrollbar-thumb{background:#666666}.mc-listbox__item,.mc-listbox__tile{align-items:center;display:flex;gap:.5rem;min-height:3rem;padding-left:.75rem;padding-right:.75rem;position:relative;justify-content:space-between}.mc-listbox__item:not(:last-child),.mc-listbox__tile:not(:last-child){border-bottom:1px solid #b3b3b3}.mc-listbox__item:hover,.mc-listbox__tile:hover{background-color:#e6e6e6;box-shadow:inset 9px 0 0 -7px #191919}.mc-listbox__flag,.mc-listbox__icon{width:2rem;height:2rem}.mc-listbox__flag{font-size:1.4375rem;line-height:1.3913043478;text-align:center}.mc-listbox__empty{font-size:.875rem;line-height:1.2857142857;color:#c61112;display:inline-block;margin-top:.25rem}.mc-listbox__label{cursor:pointer;margin-right:auto}.mc-listbox__label:after{content:\"\";position:absolute;inset:0;z-index:2}.mc-listbox__input{order:1}.mc-listbox .is-checked,.mc-listbox .is-selected{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10 18.68a1 1 0 01-.7-.29l-5-5A1 1 0 015.73 12L10 16.27 18.31 8a1 1 0 011.42 1.42l-9 9a1 1 0 01-.73.26z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right .75rem center;background-size:1.5rem}.mc-listbox .is-focus{background-color:#e6e6e6;box-shadow:inset 9px 0 0 -7px #191919}.mc-listbox .is-disabled{cursor:not-allowed;box-shadow:none;background-color:#ccc;color:#666;pointer-events:none}.mc-listbox:not(.mc-listbox--multi) .mc-listbox__input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mc-listbox:not(.mc-listbox--multi) .mc-listbox__input:checked+.mc-listbox__label:before{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10 18.68a1 1 0 01-.7-.29l-5-5A1 1 0 015.73 12L10 16.27 18.31 8a1 1 0 011.42 1.42l-9 9a1 1 0 01-.73.26z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:center;content:\"\";height:1.5rem;position:absolute;right:.75rem;top:0;transform:translateY(50%);width:1.5rem}.mc-listbox--left{right:0}.mc-loader{color:#007f8c;align-items:center;display:inline-flex;flex-direction:column}.mc-loader .mc-loader__spinner{height:2rem;width:2rem}.mc-loader .mc-loader__path{stroke-width:4}.mc-loader .mc-loader__path{stroke:currentColor}.mc-loader__spinner:not(:only-child){margin-bottom:1rem}.mc-loader__icon{animation:rotate-loader 2s linear infinite;transform-origin:center}.mc-loader__path{fill:none;stroke-dasharray:1,200;stroke-dashoffset:0;stroke-linecap:round;animation:animate-dash-loader 2s ease-in-out infinite}.mc-loader__text{font-size:1rem;line-height:1.375;color:currentColor}.mc-loader--s .mc-loader__spinner{height:1.5rem;width:1.5rem}.mc-loader--s .mc-loader__path{stroke-width:4}.mc-loader--l .mc-loader__spinner{height:4rem;width:4rem}.mc-loader--l .mc-loader__path{stroke-width:8}.mc-loader--dark{color:#191919}.mc-loader--dark .mc-loader__path{stroke:currentColor}.mc-loader--light{color:#fff}.mc-loader--light .mc-loader__path{stroke:currentColor}@keyframes rotate-loader{0%{transform:rotate(0)}to{transform:rotate(270deg)}}@keyframes animate-dash-loader{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}.mc-autocomplete{align-self:start;position:relative;min-width:18rem;max-width:var(--autocomplete-width, auto);width:100%}.mc-autocomplete__main{position:relative}.mc-autocomplete__tag,.mc-autocomplete__tools{position:absolute;top:50%;transform:translateY(-50%);z-index:2}.mc-autocomplete__tag{left:2.75rem}.mc-autocomplete__trigger{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mc-autocomplete__tools{align-items:center;background-color:#fff;display:flex;gap:.5rem;justify-content:flex-end;right:.75rem}.is-valid+.mc-autocomplete__tools,.is-invalid+.mc-autocomplete__tools{right:2.5rem}.mc-autocomplete__clear{margin:0;box-shadow:none;text-decoration:none;outline:none;border:none;cursor:pointer;padding:0;box-shadow:0 0 0 0 transparent;transition:box-shadow .15s ease;background:none;border-radius:50%}.mc-autocomplete__clear:focus{box-shadow:0 0 0 2px #758992}.mc-autocomplete__clear,.mc-autocomplete__clear-icon{height:1.5rem;width:1.5rem}.mc-autocomplete__clear-icon{fill:#666}.mc-autocomplete__clear-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mc-autocomplete__error{font-size:.875rem;line-height:1.2857142857;color:#c61112;display:inline-block;margin-top:.25rem}.mc-autocomplete--multi .mc-autocomplete__trigger{padding-left:calc(2.9375rem + var(--autocomplete-tag-width, 0px))}.mc-autocomplete__taglist{margin-top:1rem}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.TagComponent, selector: "moz-tag, a[moz-tag]", inputs: ["type", "size", "select"], outputs: ["selectChange", "clickOnRemove"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.TaglistComponent, selector: "moz-taglist", inputs: ["tagItems", "tagSize", "showAllTitle", "showAll", "layerTagsTitle", "layerTagsIcon", "max"], outputs: ["removeTag"] }, { kind: "component", type: i5.ListboxComponent, selector: "moz-listbox", inputs: ["listboxItems", "multiple", "selectedItems", "type", "overlay", "maxWidth", "maxHeight", "width", "disabled", "withoutOverflow", "isOpen"], outputs: ["itemsSelected", "scrollEnd", "isOpenChange"] }, { kind: "component", type: i6.IconComponent, selector: "moz-icon", inputs: ["iconName"] }, { kind: "component", type: i7.LoaderComponent, selector: "moz-loader", inputs: ["size", "theme", "isOverlay", "text", "hideOverlay"] }, { kind: "component", type: i8.TextInputComponent, selector: "input[moz-input]", inputs: ["size", "invalid", "valid"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
222
195
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AutocompleteComponent, decorators: [{
223
196
  type: Component,
224
197
  args: [{ selector: 'moz-autocomplete', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
@@ -227,11 +200,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
227
200
  useExisting: forwardRef(() => AutocompleteComponent),
228
201
  multi: true,
229
202
  },
230
- ], template: "<div\n id=\"js-autocomplete\"\n class=\"mc-autocomplete mc-autocomplete--clearable\"\n [ngClass]=\"{ 'mc-autocomplete--multi': multiple }\"\n [ngStyle]=\"{\n '--autocomplete-tag-width':\n !showSelectedTags && multiple && getSelectedListboxItems().length > 0 ? '3.5rem' : '',\n '--autocomplete-width': '100%'\n }\"\n>\n <div class=\"mc-autocomplete__main\">\n <moz-tag\n *ngIf=\"!showSelectedTags && multiple && getSelectedListboxItems().length > 0\"\n type=\"removable\"\n class=\"mc-autocomplete__tag mc-tag-removable mc-tag-removable--s\"\n [size]=\"'s'\"\n (clickOnRemove)=\"clearFieldEvent()\"\n >\n {{ getSelectedListboxItems().length }}</moz-tag\n >\n\n <div class=\"mc-left-icon-input\">\n <moz-icon\n class=\"mc-left-icon-input__icon\"\n [iconName]=\"'Navigation_Display_Search_24px'\"\n ></moz-icon>\n <input\n moz-input\n [type]=\"'text'\"\n [invalid]=\"invalid\"\n class=\"mc-left-icon-input__input mc-text-input mc-autocomplete__trigger\"\n [valid]=\"valid\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [size]=\"size\"\n [(ngModel)]=\"search\"\n (ngModelChange)=\"searchEvent()\"\n (click)=\"openListbox()\"\n />\n </div>\n\n <div class=\"mc-autocomplete__tools\">\n <div class=\"mc-autocomplete__loader mc-loader mc-loader--s\" *ngIf=\"loading\">\n <span class=\"mc-loader__spinner\">\n <moz-loader class=\"mc-loader__icon\" size=\"s\"></moz-loader>\n </span>\n </div>\n <button\n class=\"mc-autocomplete__clear\"\n type=\"button\"\n *ngIf=\"canClearField()\"\n (click)=\"clearFieldEvent()\"\n >\n <moz-icon\n class=\"mc-autocomplete__clear-icon\"\n [iconName]=\"'Navigation_Control_Tag--Cross_24px'\"\n ></moz-icon\n ><span class=\"mc-autocomplete__clear-text\">Clear</span>\n </button>\n </div>\n </div>\n <moz-listbox\n *ngIf=\"openState\"\n #listbox\n [listboxItems]=\"listboxItems\"\n [isOpen]=\"openState\"\n [multiple]=\"multiple\"\n [selectedItems]=\"selectedItems\"\n (itemsSelected)=\"itemsSelectedListboxEvent($event)\"\n ></moz-listbox>\n</div>\n<div class=\"mc-autocomplete__error\" *ngIf=\"invalid\">\n {{ errorContentText }}\n</div>\n<div class=\"mc-autocomplete__taglist\" *ngIf=\"showSelectedTags && multiple\">\n <moz-taglist\n #taglist\n (removeTag)=\"removeTagEvent($event)\"\n [tagItems]=\"getTagItemsFromSelectedItems()\"\n [max]=\"maxShowingSelectedTags\"\n [layerTagsTitle]=\"layerTagsTitle\"\n [layerTagsIcon]=\"layerTagsIcon\"\n ></moz-taglist>\n</div>\n", styles: [".mc-left-icon-input{position:relative}.mc-left-icon-input__icon{position:absolute;z-index:1;top:50%;transform:translateY(-50%);fill:#666;pointer-events:none}.mc-left-icon-input .mc-left-icon-input__icon{left:.75rem;top:50%;width:1.5rem;height:1.5rem}.mc-left-icon-input .mc-left-icon-input__input{padding-left:2.9375rem}.mc-left-icon-input--s .mc-left-icon-input__icon{left:.5rem;top:50%;width:1.5rem;height:1.5rem}.mc-left-icon-input--s .mc-left-icon-input__input{padding-left:2.4375rem}.mc-text-input{font-family:Roboto,sans-serif;font-weight:400;box-sizing:border-box;outline:none;appearance:none;padding:0;margin:0;box-shadow:none;border:none;font-size:1rem;line-height:1.375;min-height:3rem;padding:.75rem .6875rem;transition:box-shadow .2s ease;display:block;width:100%;position:relative;border:1px solid #666666;color:#191919;background-color:#fff;border-radius:4px}.mc-text-input[type=number]::-webkit-inner-spin-button,.mc-text-input[type=number]::-webkit-outer-spin-button{appearance:none;margin:0}.mc-text-input[type=number]{-moz-appearance:textfield}.mc-text-input[type=search]::-webkit-search-decoration:hover,.mc-text-input[type=search]::-webkit-search-cancel-button:hover{cursor:pointer}.mc-text-input::placeholder{font-size:1rem;line-height:1.375}.mc-text-input::placeholder{margin:0;color:#666;opacity:1}.mc-text-input.is-valid,.mc-text-input.is-invalid{background-repeat:no-repeat;background-size:1.5rem 1.5rem;background-position:right .4375rem center;padding-right:2.5rem}.mc-text-input.is-valid{border-color:#46a610;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='1.5rem' width='1.5rem' fill='%2346a610' viewBox='0 0 24 24'%3E%3Cpath d='M12 4a8 8 0 11-8 8 8 8 0 018-8m0-2a10 10 0 1010 10A10 10 0 0012 2z'/%3E%3Cpath d='M10.73 15.75a1 1 0 01-.68-.26l-3-2.74a1 1 0 011.36-1.47l2.25 2.08 4.36-4.42a1 1 0 111.42 1.41l-5 5.1a1 1 0 01-.71.3z'/%3E%3C/svg%3E\")}.mc-text-input.is-valid:hover,.mc-text-input.is-valid.is-hover{border-color:#035010}.mc-text-input.is-invalid{border-color:#c61112;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='1.5rem' width='1.5rem' viewBox='0 0 24 24' fill='%23c61112'%3E%3Cpath d='M12 2a10 10 0 1010 10A10 10 0 0012 2zm0 18a8 8 0 118-8 8 8 0 01-8 8z'/%3E%3Cpath d='M12 7a1 1 0 00-1 1v4.38a1 1 0 002 0V8a1 1 0 00-1-1z'/%3E%3Ccircle cx='12' cy='16' r='1'/%3E%3C/svg%3E\")}.mc-text-input.is-invalid:hover,.mc-text-input.is-invalid.is-hover{border-color:#530000}.mc-text-input:hover{border-color:#191919}.mc-text-input:focus{box-shadow:0 0 0 .125rem #fff,0 0 0 .25rem #758992}.mc-text-input:disabled{background:#e6e6e6;border-color:#e6e6e6;color:#666;cursor:not-allowed}.mc-text-input--s{font-size:.875rem;line-height:1.2857142857;min-height:2rem;padding:.375rem .4375rem}.mc-text-input--s::placeholder{font-size:.875rem;line-height:1.2857142857}@media screen and (min-width: 680px){.mc-text-input--s\\@from-m{font-size:.875rem;line-height:1.2857142857;min-height:2rem;padding:.375rem .4375rem}.mc-text-input--s\\@from-m::placeholder{font-size:.875rem;line-height:1.2857142857}}@media screen and (min-width: 1024px){.mc-text-input--s\\@from-l{font-size:.875rem;line-height:1.2857142857;min-height:2rem;padding:.375rem .4375rem}.mc-text-input--s\\@from-l::placeholder{font-size:.875rem;line-height:1.2857142857}}@media screen and (min-width: 1280px){.mc-text-input--s\\@from-xl{font-size:.875rem;line-height:1.2857142857;min-height:2rem;padding:.375rem .4375rem}.mc-text-input--s\\@from-xl::placeholder{font-size:.875rem;line-height:1.2857142857}}@media screen and (min-width: 1920px){.mc-text-input--s\\@from-xxl{font-size:.875rem;line-height:1.2857142857;min-height:2rem;padding:.375rem .4375rem}.mc-text-input--s\\@from-xxl::placeholder{font-size:.875rem;line-height:1.2857142857}}.mc-text-input--m{font-size:1rem;line-height:1.375;min-height:3rem;padding:.75rem .6875rem}.mc-text-input--m::placeholder{font-size:1rem;line-height:1.375}@media screen and (min-width: 680px){.mc-text-input--m\\@from-m{font-size:1rem;line-height:1.375;min-height:3rem;padding:.75rem .6875rem}.mc-text-input--m\\@from-m::placeholder{font-size:1rem;line-height:1.375}}@media screen and (min-width: 1024px){.mc-text-input--m\\@from-l{font-size:1rem;line-height:1.375;min-height:3rem;padding:.75rem .6875rem}.mc-text-input--m\\@from-l::placeholder{font-size:1rem;line-height:1.375}}@media screen and (min-width: 1280px){.mc-text-input--m\\@from-xl{font-size:1rem;line-height:1.375;min-height:3rem;padding:.75rem .6875rem}.mc-text-input--m\\@from-xl::placeholder{font-size:1rem;line-height:1.375}}@media screen and (min-width: 1920px){.mc-text-input--m\\@from-xxl{font-size:1rem;line-height:1.375;min-height:3rem;padding:.75rem .6875rem}.mc-text-input--m\\@from-xxl::placeholder{font-size:1rem;line-height:1.375}}.mc-listbox{list-style:none;margin-left:0;padding-left:0;background-color:#fff;border:1px solid #666666;border-radius:3px;position:absolute;overflow-y:auto;margin-top:.25rem;margin-bottom:0;max-height:13.8125rem;min-width:auto;opacity:0;visibility:hidden;max-width:var(--listbox-width, auto);width:100%}.mc-listbox.is-open{opacity:1;visibility:visible;z-index:10}.mc-listbox::-webkit-scrollbar{background-color:#e6e6e6;width:.25rem}.mc-listbox::-webkit-scrollbar-thumb{background:#666666}.mc-listbox__item,.mc-listbox__tile{align-items:center;display:flex;gap:.5rem;min-height:3rem;padding-left:.75rem;padding-right:.75rem;position:relative;justify-content:space-between}.mc-listbox__item:not(:last-child),.mc-listbox__tile:not(:last-child){border-bottom:1px solid #b3b3b3}.mc-listbox__item:hover,.mc-listbox__tile:hover{background-color:#e6e6e6;box-shadow:inset 9px 0 0 -7px #191919}.mc-listbox__flag,.mc-listbox__icon{width:2rem;height:2rem}.mc-listbox__flag{font-size:1.4375rem;line-height:1.3913043478;text-align:center}.mc-listbox__empty{font-size:.875rem;line-height:1.2857142857;color:#c61112;display:inline-block;margin-top:.25rem}.mc-listbox__label{cursor:pointer;margin-right:auto}.mc-listbox__label:after{content:\"\";position:absolute;inset:0;z-index:2}.mc-listbox__input{order:1}.mc-listbox .is-checked,.mc-listbox .is-selected{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10 18.68a1 1 0 01-.7-.29l-5-5A1 1 0 015.73 12L10 16.27 18.31 8a1 1 0 011.42 1.42l-9 9a1 1 0 01-.73.26z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right .75rem center;background-size:1.5rem}.mc-listbox .is-focus{background-color:#e6e6e6;box-shadow:inset 9px 0 0 -7px #191919}.mc-listbox .is-disabled{cursor:not-allowed;box-shadow:none;background-color:#ccc;color:#666;pointer-events:none}.mc-listbox:not(.mc-listbox--multi) .mc-listbox__input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mc-listbox:not(.mc-listbox--multi) .mc-listbox__input:checked+.mc-listbox__label:before{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10 18.68a1 1 0 01-.7-.29l-5-5A1 1 0 015.73 12L10 16.27 18.31 8a1 1 0 011.42 1.42l-9 9a1 1 0 01-.73.26z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:center;content:\"\";height:1.5rem;position:absolute;right:.75rem;top:0;transform:translateY(50%);width:1.5rem}.mc-listbox--left{right:0}.mc-loader{color:#007f8c;align-items:center;display:inline-flex;flex-direction:column}.mc-loader .mc-loader__spinner{height:2rem;width:2rem}.mc-loader .mc-loader__path{stroke-width:4}.mc-loader .mc-loader__path{stroke:currentColor}.mc-loader__spinner:not(:only-child){margin-bottom:1rem}.mc-loader__icon{animation:rotate-loader 2s linear infinite;transform-origin:center}.mc-loader__path{fill:none;stroke-dasharray:1,200;stroke-dashoffset:0;stroke-linecap:round;animation:animate-dash-loader 2s ease-in-out infinite}.mc-loader__text{font-size:1rem;line-height:1.375;color:currentColor}.mc-loader--s .mc-loader__spinner{height:1.5rem;width:1.5rem}.mc-loader--s .mc-loader__path{stroke-width:4}.mc-loader--l .mc-loader__spinner{height:4rem;width:4rem}.mc-loader--l .mc-loader__path{stroke-width:8}.mc-loader--dark{color:#191919}.mc-loader--dark .mc-loader__path{stroke:currentColor}.mc-loader--light{color:#fff}.mc-loader--light .mc-loader__path{stroke:currentColor}@keyframes rotate-loader{0%{transform:rotate(0)}to{transform:rotate(270deg)}}@keyframes animate-dash-loader{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}.mc-autocomplete{align-self:start;position:relative;min-width:18rem;max-width:var(--autocomplete-width, auto);width:100%}.mc-autocomplete__main{position:relative}.mc-autocomplete__tag,.mc-autocomplete__tools{position:absolute;top:50%;transform:translateY(-50%);z-index:2}.mc-autocomplete__tag{left:2.75rem}.mc-autocomplete__trigger{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mc-autocomplete__tools{align-items:center;background-color:#fff;display:flex;gap:.5rem;justify-content:flex-end;right:.75rem}.is-valid+.mc-autocomplete__tools,.is-invalid+.mc-autocomplete__tools{right:2.5rem}.mc-autocomplete__clear{margin:0;box-shadow:none;text-decoration:none;outline:none;border:none;cursor:pointer;padding:0;box-shadow:0 0 0 0 transparent;transition:box-shadow .15s ease;background:none;border-radius:50%}.mc-autocomplete__clear:focus{box-shadow:0 0 0 2px #758992}.mc-autocomplete__clear,.mc-autocomplete__clear-icon{height:1.5rem;width:1.5rem}.mc-autocomplete__clear-icon{fill:#666}.mc-autocomplete__clear-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mc-autocomplete__error{font-size:.875rem;line-height:1.2857142857;color:#c61112;display:inline-block;margin-top:.25rem}.mc-autocomplete--multi .mc-autocomplete__trigger{padding-left:calc(2.9375rem + var(--autocomplete-tag-width, 0px))}.mc-autocomplete__taglist{margin-top:1rem}\n"] }]
203
+ ], template: "<div\n id=\"js-autocomplete\"\n class=\"mc-autocomplete mc-autocomplete--clearable\"\n [ngClass]=\"{ 'mc-autocomplete--multi': multiple }\"\n [ngStyle]=\"{\n '--autocomplete-tag-width':\n !showSelectedTags && multiple && getSelectedListboxItems().length > 0 ? '3.5rem' : '',\n '--autocomplete-width': '100%'\n }\"\n>\n <moz-listbox\n #listbox\n [listboxItems]=\"listboxItems\"\n [(isOpen)]=\"openState\"\n [multiple]=\"multiple\"\n [selectedItems]=\"selectedItems\"\n (itemsSelected)=\"itemsSelectedListboxEvent($event)\"\n (scrollEnd)=\"scrollEndEvent($event)\"\n >\n <div class=\"mc-autocomplete__main\" reference>\n <moz-tag\n *ngIf=\"!showSelectedTags && multiple && getSelectedListboxItems().length > 0\"\n type=\"removable\"\n class=\"mc-autocomplete__tag mc-tag-removable mc-tag-removable--s\"\n [size]=\"'s'\"\n (clickOnRemove)=\"clearFieldEvent()\"\n >\n {{ getSelectedListboxItems().length }}</moz-tag\n >\n\n <div class=\"mc-left-icon-input\">\n <moz-icon\n class=\"mc-left-icon-input__icon\"\n [iconName]=\"'Navigation_Display_Search_24px'\"\n ></moz-icon>\n <input\n moz-input\n [type]=\"'text'\"\n [invalid]=\"invalid\"\n class=\"mc-left-icon-input__input mc-text-input mc-autocomplete__trigger\"\n [valid]=\"valid\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [size]=\"size\"\n [(ngModel)]=\"search\"\n (ngModelChange)=\"searchEvent()\"\n (focusin)=\"focusinEvent()\"\n (focusout)=\"focusoutEvent($event)\"\n (click)=\"openListbox()\"\n />\n </div>\n\n <div class=\"mc-autocomplete__tools\">\n <div class=\"mc-autocomplete__loader mc-loader mc-loader--s\" *ngIf=\"loading\">\n <span class=\"mc-loader__spinner\">\n <moz-loader class=\"mc-loader__icon\" size=\"s\"></moz-loader>\n </span>\n </div>\n <button\n class=\"mc-autocomplete__clear\"\n type=\"button\"\n *ngIf=\"canClearField()\"\n (click)=\"clearFieldEvent()\"\n >\n <moz-icon\n class=\"mc-autocomplete__clear-icon\"\n [iconName]=\"'Navigation_Control_Tag--Cross_24px'\"\n ></moz-icon\n ><span class=\"mc-autocomplete__clear-text\">Clear</span>\n </button>\n </div>\n </div>\n </moz-listbox>\n</div>\n<div class=\"mc-autocomplete__error\" *ngIf=\"invalid\">\n {{ errorContentText }}\n</div>\n<div class=\"mc-autocomplete__taglist\" *ngIf=\"showSelectedTags && multiple && !openState\">\n <moz-taglist\n #taglist\n (removeTag)=\"removeTagEvent($event)\"\n [tagItems]=\"getTagItemsFromSelectedItems()\"\n [max]=\"maxShowingSelectedTags\"\n [layerTagsTitle]=\"layerTagsTitle\"\n [layerTagsIcon]=\"layerTagsIcon\"\n ></moz-taglist>\n</div>\n", styles: [".mc-left-icon-input{position:relative}.mc-left-icon-input__icon{position:absolute;z-index:1;top:50%;transform:translateY(-50%);fill:#666;pointer-events:none}.mc-left-icon-input .mc-left-icon-input__icon{left:.75rem;top:50%;width:1.5rem;height:1.5rem}.mc-left-icon-input .mc-left-icon-input__input{padding-left:2.9375rem}.mc-left-icon-input--s .mc-left-icon-input__icon{left:.5rem;top:50%;width:1.5rem;height:1.5rem}.mc-left-icon-input--s .mc-left-icon-input__input{padding-left:2.4375rem}.mc-text-input{font-family:Roboto,sans-serif;font-weight:400;box-sizing:border-box;outline:none;appearance:none;padding:0;margin:0;box-shadow:none;border:none;font-size:1rem;line-height:1.375;min-height:3rem;padding:.75rem .6875rem;transition:box-shadow .2s ease;display:block;width:100%;position:relative;border:1px solid #666666;color:#191919;background-color:#fff;border-radius:4px}.mc-text-input[type=number]::-webkit-inner-spin-button,.mc-text-input[type=number]::-webkit-outer-spin-button{appearance:none;margin:0}.mc-text-input[type=number]{-moz-appearance:textfield}.mc-text-input[type=search]::-webkit-search-decoration:hover,.mc-text-input[type=search]::-webkit-search-cancel-button:hover{cursor:pointer}.mc-text-input::placeholder{font-size:1rem;line-height:1.375}.mc-text-input::placeholder{margin:0;color:#666;opacity:1}.mc-text-input.is-valid,.mc-text-input.is-invalid{background-repeat:no-repeat;background-size:1.5rem 1.5rem;background-position:right .4375rem center;padding-right:2.5rem}.mc-text-input.is-valid{border-color:#46a610;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='1.5rem' width='1.5rem' fill='%2346a610' viewBox='0 0 24 24'%3E%3Cpath d='M12 4a8 8 0 11-8 8 8 8 0 018-8m0-2a10 10 0 1010 10A10 10 0 0012 2z'/%3E%3Cpath d='M10.73 15.75a1 1 0 01-.68-.26l-3-2.74a1 1 0 011.36-1.47l2.25 2.08 4.36-4.42a1 1 0 111.42 1.41l-5 5.1a1 1 0 01-.71.3z'/%3E%3C/svg%3E\")}.mc-text-input.is-valid:hover,.mc-text-input.is-valid.is-hover{border-color:#035010}.mc-text-input.is-invalid{border-color:#c61112;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='1.5rem' width='1.5rem' viewBox='0 0 24 24' fill='%23c61112'%3E%3Cpath d='M12 2a10 10 0 1010 10A10 10 0 0012 2zm0 18a8 8 0 118-8 8 8 0 01-8 8z'/%3E%3Cpath d='M12 7a1 1 0 00-1 1v4.38a1 1 0 002 0V8a1 1 0 00-1-1z'/%3E%3Ccircle cx='12' cy='16' r='1'/%3E%3C/svg%3E\")}.mc-text-input.is-invalid:hover,.mc-text-input.is-invalid.is-hover{border-color:#530000}.mc-text-input:hover{border-color:#191919}.mc-text-input:focus{box-shadow:0 0 0 .125rem #fff,0 0 0 .25rem #758992}.mc-text-input:disabled{background:#e6e6e6;border-color:#e6e6e6;color:#666;cursor:not-allowed}.mc-text-input--s{font-size:.875rem;line-height:1.2857142857;min-height:2rem;padding:.375rem .4375rem}.mc-text-input--s::placeholder{font-size:.875rem;line-height:1.2857142857}@media screen and (min-width: 680px){.mc-text-input--s\\@from-m{font-size:.875rem;line-height:1.2857142857;min-height:2rem;padding:.375rem .4375rem}.mc-text-input--s\\@from-m::placeholder{font-size:.875rem;line-height:1.2857142857}}@media screen and (min-width: 1024px){.mc-text-input--s\\@from-l{font-size:.875rem;line-height:1.2857142857;min-height:2rem;padding:.375rem .4375rem}.mc-text-input--s\\@from-l::placeholder{font-size:.875rem;line-height:1.2857142857}}@media screen and (min-width: 1280px){.mc-text-input--s\\@from-xl{font-size:.875rem;line-height:1.2857142857;min-height:2rem;padding:.375rem .4375rem}.mc-text-input--s\\@from-xl::placeholder{font-size:.875rem;line-height:1.2857142857}}@media screen and (min-width: 1920px){.mc-text-input--s\\@from-xxl{font-size:.875rem;line-height:1.2857142857;min-height:2rem;padding:.375rem .4375rem}.mc-text-input--s\\@from-xxl::placeholder{font-size:.875rem;line-height:1.2857142857}}.mc-text-input--m{font-size:1rem;line-height:1.375;min-height:3rem;padding:.75rem .6875rem}.mc-text-input--m::placeholder{font-size:1rem;line-height:1.375}@media screen and (min-width: 680px){.mc-text-input--m\\@from-m{font-size:1rem;line-height:1.375;min-height:3rem;padding:.75rem .6875rem}.mc-text-input--m\\@from-m::placeholder{font-size:1rem;line-height:1.375}}@media screen and (min-width: 1024px){.mc-text-input--m\\@from-l{font-size:1rem;line-height:1.375;min-height:3rem;padding:.75rem .6875rem}.mc-text-input--m\\@from-l::placeholder{font-size:1rem;line-height:1.375}}@media screen and (min-width: 1280px){.mc-text-input--m\\@from-xl{font-size:1rem;line-height:1.375;min-height:3rem;padding:.75rem .6875rem}.mc-text-input--m\\@from-xl::placeholder{font-size:1rem;line-height:1.375}}@media screen and (min-width: 1920px){.mc-text-input--m\\@from-xxl{font-size:1rem;line-height:1.375;min-height:3rem;padding:.75rem .6875rem}.mc-text-input--m\\@from-xxl::placeholder{font-size:1rem;line-height:1.375}}.mc-listbox{list-style:none;margin-left:0;padding-left:0;background-color:#fff;border:1px solid #666666;border-radius:3px;position:absolute;overflow-y:auto;margin-top:.25rem;margin-bottom:0;max-height:13.8125rem;min-width:auto;opacity:0;visibility:hidden;max-width:var(--listbox-width, auto);width:100%}.mc-listbox.is-open{opacity:1;visibility:visible;z-index:10}.mc-listbox::-webkit-scrollbar{background-color:#e6e6e6;width:.25rem}.mc-listbox::-webkit-scrollbar-thumb{background:#666666}.mc-listbox__item,.mc-listbox__tile{align-items:center;display:flex;gap:.5rem;min-height:3rem;padding-left:.75rem;padding-right:.75rem;position:relative;justify-content:space-between}.mc-listbox__item:not(:last-child),.mc-listbox__tile:not(:last-child){border-bottom:1px solid #b3b3b3}.mc-listbox__item:hover,.mc-listbox__tile:hover{background-color:#e6e6e6;box-shadow:inset 9px 0 0 -7px #191919}.mc-listbox__flag,.mc-listbox__icon{width:2rem;height:2rem}.mc-listbox__flag{font-size:1.4375rem;line-height:1.3913043478;text-align:center}.mc-listbox__empty{font-size:.875rem;line-height:1.2857142857;color:#c61112;display:inline-block;margin-top:.25rem}.mc-listbox__label{cursor:pointer;margin-right:auto}.mc-listbox__label:after{content:\"\";position:absolute;inset:0;z-index:2}.mc-listbox__input{order:1}.mc-listbox .is-checked,.mc-listbox .is-selected{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10 18.68a1 1 0 01-.7-.29l-5-5A1 1 0 015.73 12L10 16.27 18.31 8a1 1 0 011.42 1.42l-9 9a1 1 0 01-.73.26z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right .75rem center;background-size:1.5rem}.mc-listbox .is-focus{background-color:#e6e6e6;box-shadow:inset 9px 0 0 -7px #191919}.mc-listbox .is-disabled{cursor:not-allowed;box-shadow:none;background-color:#ccc;color:#666;pointer-events:none}.mc-listbox:not(.mc-listbox--multi) .mc-listbox__input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mc-listbox:not(.mc-listbox--multi) .mc-listbox__input:checked+.mc-listbox__label:before{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10 18.68a1 1 0 01-.7-.29l-5-5A1 1 0 015.73 12L10 16.27 18.31 8a1 1 0 011.42 1.42l-9 9a1 1 0 01-.73.26z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:center;content:\"\";height:1.5rem;position:absolute;right:.75rem;top:0;transform:translateY(50%);width:1.5rem}.mc-listbox--left{right:0}.mc-loader{color:#007f8c;align-items:center;display:inline-flex;flex-direction:column}.mc-loader .mc-loader__spinner{height:2rem;width:2rem}.mc-loader .mc-loader__path{stroke-width:4}.mc-loader .mc-loader__path{stroke:currentColor}.mc-loader__spinner:not(:only-child){margin-bottom:1rem}.mc-loader__icon{animation:rotate-loader 2s linear infinite;transform-origin:center}.mc-loader__path{fill:none;stroke-dasharray:1,200;stroke-dashoffset:0;stroke-linecap:round;animation:animate-dash-loader 2s ease-in-out infinite}.mc-loader__text{font-size:1rem;line-height:1.375;color:currentColor}.mc-loader--s .mc-loader__spinner{height:1.5rem;width:1.5rem}.mc-loader--s .mc-loader__path{stroke-width:4}.mc-loader--l .mc-loader__spinner{height:4rem;width:4rem}.mc-loader--l .mc-loader__path{stroke-width:8}.mc-loader--dark{color:#191919}.mc-loader--dark .mc-loader__path{stroke:currentColor}.mc-loader--light{color:#fff}.mc-loader--light .mc-loader__path{stroke:currentColor}@keyframes rotate-loader{0%{transform:rotate(0)}to{transform:rotate(270deg)}}@keyframes animate-dash-loader{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}.mc-autocomplete{align-self:start;position:relative;min-width:18rem;max-width:var(--autocomplete-width, auto);width:100%}.mc-autocomplete__main{position:relative}.mc-autocomplete__tag,.mc-autocomplete__tools{position:absolute;top:50%;transform:translateY(-50%);z-index:2}.mc-autocomplete__tag{left:2.75rem}.mc-autocomplete__trigger{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mc-autocomplete__tools{align-items:center;background-color:#fff;display:flex;gap:.5rem;justify-content:flex-end;right:.75rem}.is-valid+.mc-autocomplete__tools,.is-invalid+.mc-autocomplete__tools{right:2.5rem}.mc-autocomplete__clear{margin:0;box-shadow:none;text-decoration:none;outline:none;border:none;cursor:pointer;padding:0;box-shadow:0 0 0 0 transparent;transition:box-shadow .15s ease;background:none;border-radius:50%}.mc-autocomplete__clear:focus{box-shadow:0 0 0 2px #758992}.mc-autocomplete__clear,.mc-autocomplete__clear-icon{height:1.5rem;width:1.5rem}.mc-autocomplete__clear-icon{fill:#666}.mc-autocomplete__clear-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mc-autocomplete__error{font-size:.875rem;line-height:1.2857142857;color:#c61112;display:inline-block;margin-top:.25rem}.mc-autocomplete--multi .mc-autocomplete__trigger{padding-left:calc(2.9375rem + var(--autocomplete-tag-width, 0px))}.mc-autocomplete__taglist{margin-top:1rem}\n"] }]
231
204
  }], ctorParameters: function () { return [{ type: i0.Injector, decorators: [{
232
205
  type: Inject,
233
206
  args: [Injector]
234
- }] }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { listboxItems: [{
207
+ }] }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { listboxItems: [{
235
208
  type: Input
236
209
  }], multiple: [{
237
210
  type: Input
@@ -265,14 +238,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
265
238
  type: Input
266
239
  }], searchUpdated: [{
267
240
  type: Output
241
+ }], inputClicked: [{
242
+ type: Output
243
+ }], scrollEnd: [{
244
+ type: Output
268
245
  }], taglistComponent: [{
269
246
  type: ViewChild,
270
247
  args: ['taglist', { static: false }]
271
- }], listboxElementRef: [{
272
- type: ViewChild,
273
- args: ['listbox', { read: ElementRef }]
274
- }], clickout: [{
275
- type: HostListener,
276
- args: ['document:click', ['$event']]
277
248
  }] } });
278
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFlBQVksRUFDWixNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNULFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsZUFBZSxFQUNmLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsU0FBUyxHQUNWLE1BQU0sZ0JBQWdCLENBQUM7QUFHeEIsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7O0FBaUJyRCxNQUFNLE9BQU8scUJBQXFCO0lBa0NoQyxZQUM0QixRQUFrQixFQUNwQyxJQUFnQixFQUNoQixFQUFxQjtRQUZILGFBQVEsR0FBUixRQUFRLENBQVU7UUFDcEMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQWxDZixpQkFBWSxHQUFrQixFQUFFLENBQUM7UUFDakMsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixnQkFBVyxHQUFXLGFBQWEsQ0FBQztRQUNwQyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFDekIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUM1QixVQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLFlBQU8s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RUFBRTtnQkFDSyxpQkFBaUI7c0JBQTVELFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFzRTFDLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0LFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbiAgZm9yd2FyZFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgRm9ybUNvbnRyb2wsXG4gIEZvcm1Db250cm9sTmFtZSxcbiAgRm9ybUdyb3VwRGlyZWN0aXZlLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgTmdDb250cm9sLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBMaXN0Ym94SXRlbSB9IGZyb20gJy4uL2xpc3Rib3gvbW9kZWwvbGlzdGJveC1pdGVtJztcbmltcG9ydCB7IFRhZ2xpc3RDb21wb25lbnQgfSBmcm9tICcuLi90YWdsaXN0L3RhZ2xpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IFN1YmplY3QsIGZyb21FdmVudCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUYWdJdGVtIH0gZnJvbSAnLi4vdGFnL3RhZy10eXBlJztcbmltcG9ydCB7IFRleHRJbnB1dFNpemUgfSBmcm9tICcuLi90ZXh0LWlucHV0L3RleHQtaW5wdXQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtb3otYXV0b2NvbXBsZXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBdXRvY29tcGxldGVDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQXV0b2NvbXBsZXRlQ29tcG9uZW50XG4gIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yXG57XG4gIEBJbnB1dCgpIHB1YmxpYyBsaXN0Ym94SXRlbXM6IExpc3Rib3hJdGVtW10gPSBbXTtcbiAgQElucHV0KCkgcHVibGljIG11bHRpcGxlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBwbGFjZWhvbGRlcjogc3RyaW5nID0gJ1BsYWNlaG9sZGVyJztcbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBsb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBjbGVhcmZpZWxkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyB2YWxpZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgaW52YWxpZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgc2l6ZTogVGV4dElucHV0U2l6ZSA9ICdzJztcbiAgQElucHV0KCkgcHVibGljIHNob3dTZWxlY3RlZFRhZ3M6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIG1heFNob3dpbmdTZWxlY3RlZFRhZ3M6IG51bWJlciA9IDU7XG4gIEBJbnB1dCgpIHB1YmxpYyBsYXllclRhZ3NUaXRsZTogc3RyaW5nID0gJ0F1dG9jb21wbGV0ZSB0YWdzJztcbiAgQElucHV0KCkgcHVibGljIGxheWVyVGFnc0ljb246IHN0cmluZyA9ICdOYXZpZ2F0aW9uX0Rpc3BsYXlfU2V0dGluZ18yNHB4JztcbiAgQElucHV0KCkgcHVibGljIGVycm9yQ29udGVudFRleHQ6IHN0cmluZyA9ICdObyByZXN1bHRzIGZvdW5kJztcbiAgQElucHV0KCkgcHVibGljIHdpdGhTZWFyY2hGaWx0ZXI6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBwdWJsaWMgb3BlblN0YXRlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIHB1YmxpYyBzZWFyY2hVcGRhdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBWaWV3Q2hpbGQoJ3RhZ2xpc3QnLCB7IHN0YXRpYzogZmFsc2UgfSkgdGFnbGlzdENvbXBvbmVudCE6IFRhZ2xpc3RDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ2xpc3Rib3gnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgbGlzdGJveEVsZW1lbnRSZWYhOiBFbGVtZW50UmVmO1xuXG4gIHB1YmxpYyBzZWxlY3RlZEl0ZW1zOiBMaXN0Ym94SXRlbVtdIHwgTGlzdGJveEl0ZW0gfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBvcmlnaW5hbExpc3Rib3hQYXJlbnQ/OiBIVE1MRWxlbWVudCB8IG51bGw7XG4gIHB1YmxpYyBkZXN0cm95ZWQgPSBuZXcgU3ViamVjdCgpO1xuICBwdWJsaWMgc2VhcmNoOiBzdHJpbmcgPSAnJztcbiAgcHVibGljIGluaXRpYWxMaXN0Ym94SXRlbXM6IExpc3Rib3hJdGVtW10gPSBbXTtcbiAgcHVibGljIG9uQXV0b2NvbXBsZXRlQ2hhbmdlOiBhbnkgPSAoKSA9PiB7fTtcbiAgcHVibGljIG9uVG91Y2g6IGFueSA9ICgpID0+IHt9O1xuICBwdWJsaWMgbm9SZXN1bHRzOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBjb250cm9sITogRm9ybUNvbnRyb2w7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChJbmplY3RvcikgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBlUmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRpYWxMaXN0Ym94SXRlbXMgPSB0aGlzLmxpc3Rib3hJdGVtcy5tYXAoKHgpID0+ICh7IC4uLnggfSkpO1xuICAgIGNvbnN0IG5nQ29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KE5nQ29udHJvbCk7XG4gICAgaWYgKG5nQ29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sTmFtZSkge1xuICAgICAgdGhpcy5jb250cm9sID0gdGhpcy5pbmplY3Rvci5nZXQoRm9ybUdyb3VwRGlyZWN0aXZlKS5nZXRDb250cm9sKG5nQ29udHJvbCk7XG4gICAgfVxuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogTGlzdGJveEl0ZW1bXSB8IExpc3Rib3hJdGVtIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm11bHRpcGxlICYmIHZhbHVlKSB7XG4gICAgICB0aGlzLnNlYXJjaCA9ICh2YWx1ZSBhcyBMaXN0Ym94SXRlbSkubGFiZWwgfHwgJyc7XG4gICAgfVxuICAgIHRoaXMubm9SZXN1bHRzID0gZmFsc2U7XG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gdmFsdWU7XG4gICAgdGhpcy5vbkF1dG9jb21wbGV0ZUNoYW5nZSh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG4gICAgdGhpcy5vbkF1dG9jb21wbGV0ZUNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcbiAgICB0aGlzLm9uVG91Y2ggPSBmbjtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxpc3Rib3hFbGVtZW50UmVmKSB7XG4gICAgICBjb25zdCBtb3pMaXN0Ym94ID0gdGhpcy5saXN0Ym94RWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgaWYgKG1vekxpc3Rib3ggJiYgbW96TGlzdGJveC5wYXJlbnROb2RlKSB7XG4gICAgICAgIG1vekxpc3Rib3gucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChtb3pMaXN0Ym94KTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5kZXN0cm95ZWQubmV4dChudWxsKTtcbiAgICB0aGlzLmRlc3Ryb3llZC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGZyb21FdmVudCh3aW5kb3csICdyZXNpemUnKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmNsb3NlTGlzdGJveCgpO1xuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICAgIGZyb21FdmVudCh3aW5kb3csICdzY3JvbGwnKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmNsb3NlTGlzdGJveCgpO1xuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxuICBjbGlja291dChldmVudDogRXZlbnQpIHtcbiAgICBjb25zdCBsaXN0Ym94SHRtbEVsZW1lbnRDb250YWluc0NsaWNrVGFyZ2V0ID1cbiAgICAgIHRoaXMubGlzdGJveEVsZW1lbnRSZWYgJiYgdGhpcy5saXN0Ym94RWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCk7XG4gICAgY29uc3QgYXV0b2NvbXBsZXRlSW5wdXRDb250YWluc0NsaWNrVGFyZ2V0ID0gdGhpcy5lUmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KTtcbiAgICBpZiAoXG4gICAgICAoIWxpc3Rib3hIdG1sRWxlbWVudENvbnRhaW5zQ2xpY2tUYXJnZXQgJiYgIWF1dG9jb21wbGV0ZUlucHV0Q29udGFpbnNDbGlja1RhcmdldCkgfHxcbiAgICAgIHRoaXMuZGlzYWJsZWRcbiAgICApIHtcbiAgICAgIHRoaXMuY2xvc2VMaXN0Ym94KCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9wZW5MaXN0Ym94KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxpc3Rib3hJdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLm9wZW5TdGF0ZSA9IHRydWU7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29uc3QgbW96TGlzdGJveCA9IHRoaXMubGlzdGJveEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3QgaW5wdXRFbGVtZW50ID0gdGhpcy5lUmVmLm5hdGl2ZUVsZW1lbnQuZmlyc3RDaGlsZDtcbiAgICAgICAgY29uc3QgaW5wdXRSZWN0ID0gaW5wdXRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBtb3pMaXN0Ym94LnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcbiAgICAgICAgbW96TGlzdGJveC5zdHlsZS50b3AgPSBpbnB1dFJlY3QuYm90dG9tICsgd2luZG93LnNjcm9sbFkgKyAncHgnO1xuICAgICAgICBtb3pMaXN0Ym94LnN0eWxlLmxlZnQgPSBpbnB1dFJlY3QubGVmdCArIHdpbmRvdy5zY3JvbGxYICsgJ3B4JztcbiAgICAgICAgbW96TGlzdGJveC5zdHlsZS53aWR0aCA9IGlucHV0UmVjdC53aWR0aCArICdweCc7XG4gICAgICAgIHRoaXMub3JpZ2luYWxMaXN0Ym94UGFyZW50ID0gbW96TGlzdGJveC5wYXJlbnRFbGVtZW50O1xuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG1vekxpc3Rib3gpO1xuICAgICAgfSwgMTApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjbG9zZUxpc3Rib3goKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuU3RhdGUgPSBmYWxzZTtcbiAgICBpZiAodGhpcy5vcmlnaW5hbExpc3Rib3hQYXJlbnQgJiYgdGhpcy5saXN0Ym94RWxlbWVudFJlZikge1xuICAgICAgdGhpcy5vcmlnaW5hbExpc3Rib3hQYXJlbnQuYXBwZW5kQ2hpbGQodGhpcy5saXN0Ym94RWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICAgIHRoaXMub3JpZ2luYWxMaXN0Ym94UGFyZW50ID0gbnVsbDtcbiAgICB9XG4gICAgdGhpcy5saXN0Ym94SXRlbXMgPSB0aGlzLmluaXRpYWxMaXN0Ym94SXRlbXM7XG4gICAgdGhpcy5jb250cm9sPy5tYXJrQXNUb3VjaGVkKCk7XG4gIH1cblxuICBwdWJsaWMgaXRlbXNTZWxlY3RlZExpc3Rib3hFdmVudChsaXN0Ym94SXRlbVNlbGVjdGVkOiBMaXN0Ym94SXRlbVtdIHwgTGlzdGJveEl0ZW0pOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgIHRoaXMuc2VhcmNoID0gKGxpc3Rib3hJdGVtU2VsZWN0ZWQgYXMgTGlzdGJveEl0ZW0pLmxhYmVsO1xuICAgICAgdGhpcy5jbG9zZUxpc3Rib3goKTtcbiAgICB9XG4gICAgdGhpcy5pbnZhbGlkID0gZmFsc2U7XG4gICAgdGhpcy53cml0ZVZhbHVlKGxpc3Rib3hJdGVtU2VsZWN0ZWQpO1xuICAgIHRoaXMuY29udHJvbD8uc2V0VmFsdWUodGhpcy5zZWxlY3RlZEl0ZW1zKTtcbiAgICB0aGlzLmNvbnRyb2w/Lm1hcmtBc0RpcnR5KCk7XG4gIH1cblxuICBwdWJsaWMgY2xlYXJGaWVsZEV2ZW50KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5vcGVuU3RhdGUgPSBmYWxzZTtcbiAgICAgIGlmICghdGhpcy5tdWx0aXBsZSkge1xuICAgICAgICB0aGlzLnNlYXJjaCA9ICcnO1xuICAgICAgfVxuICAgICAgdGhpcy53cml0ZVZhbHVlKHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG4gICAgICB0aGlzLmNvbnRyb2w/LnNldFZhbHVlKHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG4gICAgICB0aGlzLmNvbnRyb2w/Lm1hcmtBc0RpcnR5KCk7XG4gICAgICB0aGlzLmNvbnRyb2w/Lm1hcmtBc1RvdWNoZWQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0TXVsdGlTZWxlY3RlZExhYmVsKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcbiAgICAgIHJldHVybiAodGhpcy5zZWxlY3RlZEl0ZW1zIGFzIExpc3Rib3hJdGVtW10pXG4gICAgICAgIC5tYXAoKHNlbGVjdGVkSXRlbSkgPT4gc2VsZWN0ZWRJdGVtLmxhYmVsKVxuICAgICAgICAuam9pbignLCAnKTtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgcHVibGljIGdldFNlbGVjdGVkTGlzdGJveEl0ZW1zKCk6IExpc3Rib3hJdGVtW10ge1xuICAgIGlmICh0aGlzLm11bHRpcGxlICYmIHRoaXMuc2VsZWN0ZWRJdGVtcykge1xuICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRJdGVtcyBhcyBMaXN0Ym94SXRlbVtdO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH1cblxuICBwdWJsaWMgZ2V0U2VsZWN0ZWRMaXN0Ym94SXRlbSgpOiBMaXN0Ym94SXRlbSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF0aGlzLm11bHRpcGxlICYmIHRoaXMuc2VsZWN0ZWRJdGVtcykge1xuICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRJdGVtcyBhcyBMaXN0Ym94SXRlbTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBjYW5DbGVhckZpZWxkKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICByZXR1cm4gIXRoaXMuZGlzYWJsZWQgJiYgdGhpcy5jbGVhcmZpZWxkICYmIHRoaXMuZ2V0U2VsZWN0ZWRMaXN0Ym94SXRlbXMoKS5sZW5ndGggPiAwO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gIXRoaXMuZGlzYWJsZWQgJiYgdGhpcy5jbGVhcmZpZWxkICYmIHRoaXMuZ2V0U2VsZWN0ZWRMaXN0Ym94SXRlbSgpICE9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldFRhZ0l0ZW1zRnJvbVNlbGVjdGVkSXRlbXMoKTogVGFnSXRlbVtdIHtcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRJdGVtcykge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICByZXR1cm4gKHRoaXMuc2VsZWN0ZWRJdGVtcyBhcyBMaXN0Ym94SXRlbVtdKS5tYXAoXG4gICAgICAoc2VsZWN0ZWRJdGVtKSA9PiAoeyBpZDogc2VsZWN0ZWRJdGVtLnZhbHVlLCBsYWJlbDogc2VsZWN0ZWRJdGVtLmxhYmVsIH0gYXMgVGFnSXRlbSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZVRhZ0V2ZW50KCRldmVudDogVGFnSXRlbSk6IHZvaWQge1xuICAgIHRoaXMud3JpdGVWYWx1ZShcbiAgICAgICh0aGlzLnNlbGVjdGVkSXRlbXMgYXMgTGlzdGJveEl0ZW1bXSkuZmlsdGVyKFxuICAgICAgICAoc2VsZWN0ZWRJdGVtKSA9PiBzZWxlY3RlZEl0ZW0udmFsdWUgIT09ICRldmVudC5pZFxuICAgICAgKVxuICAgICk7XG4gICAgdGhpcy50YWdsaXN0Q29tcG9uZW50LnVwZGF0ZVRhZ2xpc3RMYXllckNvbmZpZyh0aGlzLmdldFRhZ0l0ZW1zRnJvbVNlbGVjdGVkSXRlbXMoKSk7XG4gICAgaWYgKHRoaXMuZ2V0VGFnSXRlbXNGcm9tU2VsZWN0ZWRJdGVtcygpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy50YWdsaXN0Q29tcG9uZW50LmNsb3NlVGFnbGlzdExheWVyKCk7XG4gICAgfVxuICAgIHRoaXMuY29udHJvbD8uc2V0VmFsdWUodGhpcy5zZWxlY3RlZEl0ZW1zKTtcbiAgICB0aGlzLmNvbnRyb2w/Lm1hcmtBc0RpcnR5KCk7XG4gICAgdGhpcy5jb250cm9sPy5tYXJrQXNUb3VjaGVkKCk7XG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwdWJsaWMgc2VhcmNoRXZlbnQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMud2l0aFNlYXJjaEZpbHRlcikge1xuICAgICAgdGhpcy5ub1Jlc3VsdHMgPSBmYWxzZTtcbiAgICAgIHRoaXMuaW52YWxpZCA9IGZhbHNlO1xuICAgICAgaWYgKHRoaXMuc2VhcmNoLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5saXN0Ym94SXRlbXMgPSBbXG4gICAgICAgICAgLi4udGhpcy5pbml0aWFsTGlzdGJveEl0ZW1zLmZpbHRlcigobGlzdGJveEl0ZW0pID0+XG4gICAgICAgICAgICBsaXN0Ym94SXRlbS5sYWJlbC5pbmNsdWRlcyh0aGlzLnNlYXJjaClcbiAgICAgICAgICApLFxuICAgICAgICBdO1xuICAgICAgICBpZiAodGhpcy5saXN0Ym94SXRlbXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgdGhpcy5vcGVuU3RhdGUgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLm5vUmVzdWx0cyA9IHRydWU7XG4gICAgICAgICAgdGhpcy5pbnZhbGlkID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLm9wZW5TdGF0ZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubGlzdGJveEl0ZW1zID0gdGhpcy5pbml0aWFsTGlzdGJveEl0ZW1zO1xuICAgICAgICB0aGlzLm9wZW5TdGF0ZSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc2VhcmNoVXBkYXRlZC5lbWl0KHRoaXMuc2VhcmNoKTtcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgfVxufVxuIiwiPGRpdlxuICBpZD1cImpzLWF1dG9jb21wbGV0ZVwiXG4gIGNsYXNzPVwibWMtYXV0b2NvbXBsZXRlIG1jLWF1dG9jb21wbGV0ZS0tY2xlYXJhYmxlXCJcbiAgW25nQ2xhc3NdPVwieyAnbWMtYXV0b2NvbXBsZXRlLS1tdWx0aSc6IG11bHRpcGxlIH1cIlxuICBbbmdTdHlsZV09XCJ7XG4gICAgJy0tYXV0b2NvbXBsZXRlLXRhZy13aWR0aCc6XG4gICAgICAhc2hvd1NlbGVjdGVkVGFncyAmJiBtdWx0aXBsZSAmJiBnZXRTZWxlY3RlZExpc3Rib3hJdGVtcygpLmxlbmd0aCA+IDAgPyAnMy41cmVtJyA6ICcnLFxuICAgICctLWF1dG9jb21wbGV0ZS13aWR0aCc6ICcxMDAlJ1xuICB9XCJcbj5cbiAgPGRpdiBjbGFzcz1cIm1jLWF1dG9jb21wbGV0ZV9fbWFpblwiPlxuICAgIDxtb3otdGFnXG4gICAgICAqbmdJZj1cIiFzaG93U2VsZWN0ZWRUYWdzICYmIG11bHRpcGxlICYmIGdldFNlbGVjdGVkTGlzdGJveEl0ZW1zKCkubGVuZ3RoID4gMFwiXG4gICAgICB0eXBlPVwicmVtb3ZhYmxlXCJcbiAgICAgIGNsYXNzPVwibWMtYXV0b2NvbXBsZXRlX190YWcgbWMtdGFnLXJlbW92YWJsZSBtYy10YWctcmVtb3ZhYmxlLS1zXCJcbiAgICAgIFtzaXplXT1cIidzJ1wiXG4gICAgICAoY2xpY2tPblJlbW92ZSk9XCJjbGVhckZpZWxkRXZlbnQoKVwiXG4gICAgPlxuICAgICAge3sgZ2V0U2VsZWN0ZWRMaXN0Ym94SXRlbXMoKS5sZW5ndGggfX08L21vei10YWdcbiAgICA+XG5cbiAgICA8ZGl2IGNsYXNzPVwibWMtbGVmdC1pY29uLWlucHV0XCI+XG4gICAgICA8bW96LWljb25cbiAgICAgICAgY2xhc3M9XCJtYy1sZWZ0LWljb24taW5wdXRfX2ljb25cIlxuICAgICAgICBbaWNvbk5hbWVdPVwiJ05hdmlnYXRpb25fRGlzcGxheV9TZWFyY2hfMjRweCdcIlxuICAgICAgPjwvbW96LWljb24+XG4gICAgICA8aW5wdXRcbiAgICAgICAgbW96LWlucHV0XG4gICAgICAgIFt0eXBlXT1cIid0ZXh0J1wiXG4gICAgICAgIFtpbnZhbGlkXT1cImludmFsaWRcIlxuICAgICAgICBjbGFzcz1cIm1jLWxlZnQtaWNvbi1pbnB1dF9faW5wdXQgbWMtdGV4dC1pbnB1dCBtYy1hdXRvY29tcGxldGVfX3RyaWdnZXJcIlxuICAgICAgICBbdmFsaWRdPVwidmFsaWRcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbc2l6ZV09XCJzaXplXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZWFyY2hFdmVudCgpXCJcbiAgICAgICAgKGNsaWNrKT1cIm9wZW5MaXN0Ym94KClcIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJtYy1hdXRvY29tcGxldGVfX3Rvb2xzXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWMtYXV0b2NvbXBsZXRlX19sb2FkZXIgbWMtbG9hZGVyIG1jLWxvYWRlci0tc1wiICpuZ0lmPVwibG9hZGluZ1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1jLWxvYWRlcl9fc3Bpbm5lclwiPlxuICAgICAgICAgIDxtb3otbG9hZGVyIGNsYXNzPVwibWMtbG9hZGVyX19pY29uXCIgc2l6ZT1cInNcIj48L21vei1sb2FkZXI+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cIm1jLWF1dG9jb21wbGV0ZV9fY2xlYXJcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgKm5nSWY9XCJjYW5DbGVhckZpZWxkKClcIlxuICAgICAgICAoY2xpY2spPVwiY2xlYXJGaWVsZEV2ZW50KClcIlxuICAgICAgPlxuICAgICAgICA8bW96LWljb25cbiAgICAgICAgICBjbGFzcz1cIm1jLWF1dG9jb21wbGV0ZV9fY2xlYXItaWNvblwiXG4gICAgICAgICAgW2ljb25OYW1lXT1cIidOYXZpZ2F0aW9uX0NvbnRyb2xfVGFnLS1Dcm9zc18yNHB4J1wiXG4gICAgICAgID48L21vei1pY29uXG4gICAgICAgID48c3BhbiBjbGFzcz1cIm1jLWF1dG9jb21wbGV0ZV9fY2xlYXItdGV4dFwiPkNsZWFyPC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8bW96LWxpc3Rib3hcbiAgICAqbmdJZj1cIm9wZW5TdGF0ZVwiXG4gICAgI2xpc3Rib3hcbiAgICBbbGlzdGJveEl0ZW1zXT1cImxpc3Rib3hJdGVtc1wiXG4gICAgW2lzT3Blbl09XCJvcGVuU3RhdGVcIlxuICAgIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiXG4gICAgW3NlbGVjdGVkSXRlbXNdPVwic2VsZWN0ZWRJdGVtc1wiXG4gICAgKGl0ZW1zU2VsZWN0ZWQpPVwiaXRlbXNTZWxlY3RlZExpc3Rib3hFdmVudCgkZXZlbnQpXCJcbiAgPjwvbW96LWxpc3Rib3g+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJtYy1hdXRvY29tcGxldGVfX2Vycm9yXCIgKm5nSWY9XCJpbnZhbGlkXCI+XG4gIHt7IGVycm9yQ29udGVudFRleHQgfX1cbjwvZGl2PlxuPGRpdiBjbGFzcz1cIm1jLWF1dG9jb21wbGV0ZV9fdGFnbGlzdFwiICpuZ0lmPVwic2hvd1NlbGVjdGVkVGFncyAmJiBtdWx0aXBsZVwiPlxuICA8bW96LXRhZ2xpc3RcbiAgICAjdGFnbGlzdFxuICAgIChyZW1vdmVUYWcpPVwicmVtb3ZlVGFnRXZlbnQoJGV2ZW50KVwiXG4gICAgW3RhZ0l0ZW1zXT1cImdldFRhZ0l0ZW1zRnJvbVNlbGVjdGVkSXRlbXMoKVwiXG4gICAgW21heF09XCJtYXhTaG93aW5nU2VsZWN0ZWRUYWdzXCJcbiAgICBbbGF5ZXJUYWdzVGl0bGVdPVwibGF5ZXJUYWdzVGl0bGVcIlxuICAgIFtsYXllclRhZ3NJY29uXT1cImxheWVyVGFnc0ljb25cIlxuICA+PC9tb3otdGFnbGlzdD5cbjwvZGl2PlxuIl19
249
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUdMLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2pCLFNBQVMsR0FDVixNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7O0FBbUJ4QixNQUFNLE9BQU8scUJBQXFCO0lBaUNoQyxZQUFzQyxRQUFrQixFQUFVLEVBQXFCO1FBQWpELGFBQVEsR0FBUixRQUFRLENBQVU7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQWhDdkUsaUJBQVksR0FBa0IsRUFBRSxDQUFDO1FBQ2pDLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsZ0JBQVcsR0FBVyxhQUFhLENBQUM7UUFDcEMsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixZQUFPLEdBQVksS0FBSyxDQUFDO1FBQ3pCLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDNUIsVUFBSyxHQUFZLEtBQUssQ0FBQztRQUN2QixZQUFPLEdBQVksS0FBSyxDQUFDO1FBQ3pCLFNBQUksR0FBa0IsR0FBRyxDQUFDO1FBQzFCLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUNsQywyQkFBc0IsR0FBVyxDQUFDLENBQUM7UUFDbkMsbUJBQWMsR0FBVyxtQkFB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Z0JBQ1UsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxnQkFBZ0I7c0JBQS9CLEtBQUs7Z0JBQ1Usc0JBQXNCO3NCQUFyQyxLQUFLO2dCQUNVLGNBQWM7c0JBQTdCLEtBQUs7Z0JBQ1UsYUFBYTtzQkFBNUIsS0FBSztnQkFDVSxnQkFBZ0I7c0JBQS9CLEtBQUs7Z0JBQ1UsZ0JBQWdCO3NCQUEvQixLQUFLO2dCQUNVLFNBQVM7c0JBQXhCLEtBQUs7Z0JBRVcsYUFBYTtzQkFBN0IsTUFBTTtnQkFDVSxZQUFZO3NCQUE1QixNQUFNO2dCQUNVLFNBQVM7c0JBQXpCLE1BQU07Z0JBRWtDLGdCQUFnQjtzQkFBeEQsU0FBUzt1QkFBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0LFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIGZvcndhcmRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIEZvcm1Db250cm9sLFxuICBGb3JtQ29udHJvbE5hbWUsXG4gIEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIE5nQ29udHJvbCxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTGlzdGJveEl0ZW0gfSBmcm9tICcuLi9saXN0Ym94L21vZGVsL2xpc3Rib3gtaXRlbSc7XG5pbXBvcnQgeyBUYWdsaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vdGFnbGlzdC90YWdsaXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWdJdGVtIH0gZnJvbSAnLi4vdGFnL3RhZy10eXBlJztcbmltcG9ydCB7IFRleHRJbnB1dFNpemUgfSBmcm9tICcuLi90ZXh0LWlucHV0L3RleHQtaW5wdXQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtb3otYXV0b2NvbXBsZXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBdXRvY29tcGxldGVDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQXV0b2NvbXBsZXRlQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHB1YmxpYyBsaXN0Ym94SXRlbXM6IExpc3Rib3hJdGVtW10gPSBbXTtcbiAgQElucHV0KCkgcHVibGljIG11bHRpcGxlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBwbGFjZWhvbGRlcjogc3RyaW5nID0gJ1BsYWNlaG9sZGVyJztcbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBsb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBjbGVhcmZpZWxkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyB2YWxpZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgaW52YWxpZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgc2l6ZTogVGV4dElucHV0U2l6ZSA9ICdzJztcbiAgQElucHV0KCkgcHVibGljIHNob3dTZWxlY3RlZFRhZ3M6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIG1heFNob3dpbmdTZWxlY3RlZFRhZ3M6IG51bWJlciA9IDU7XG4gIEBJbnB1dCgpIHB1YmxpYyBsYXllclRhZ3NUaXRsZTogc3RyaW5nID0gJ0F1dG9jb21wbGV0ZSB0YWdzJztcbiAgQElucHV0KCkgcHVibGljIGxheWVyVGFnc0ljb246IHN0cmluZyA9ICdOYXZpZ2F0aW9uX0Rpc3BsYXlfU2V0dGluZ18yNHB4JztcbiAgQElucHV0KCkgcHVibGljIGVycm9yQ29udGVudFRleHQ6IHN0cmluZyA9ICdObyByZXN1bHRzIGZvdW5kJztcbiAgQElucHV0KCkgcHVibGljIHdpdGhTZWFyY2hGaWx0ZXI6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBwdWJsaWMgb3BlblN0YXRlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIHB1YmxpYyBzZWFyY2hVcGRhdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgaW5wdXRDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCkgcHVibGljIHNjcm9sbEVuZCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBAVmlld0NoaWxkKCd0YWdsaXN0JywgeyBzdGF0aWM6IGZhbHNlIH0pIHRhZ2xpc3RDb21wb25lbnQhOiBUYWdsaXN0Q29tcG9uZW50O1xuXG4gIHB1YmxpYyBzZWxlY3RlZEl0ZW1zOiBMaXN0Ym94SXRlbVtdIHwgTGlzdGJveEl0ZW0gfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBvcmlnaW5hbExpc3Rib3hQYXJlbnQ/OiBIVE1MRWxlbWVudCB8IG51bGw7XG4gIHB1YmxpYyBzZWFyY2g6IHN0cmluZyA9ICcnO1xuICBwdWJsaWMgaW5pdGlhbExpc3Rib3hJdGVtczogTGlzdGJveEl0ZW1bXSA9IFtdO1xuICBwdWJsaWMgb25BdXRvY29tcGxldGVDaGFuZ2U6IGFueSA9ICgpID0+IHt9O1xuICBwdWJsaWMgb25BdXRvY29tcGxldGVUb3VjaDogYW55ID0gKCkgPT4ge307XG4gIHB1YmxpYyBub1Jlc3VsdHM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIGNvbnRyb2whOiBGb3JtQ29udHJvbDtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KEluamVjdG9yKSBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvciwgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0aWFsTGlzdGJveEl0ZW1zID0gdGhpcy5saXN0Ym94SXRlbXMubWFwKCh4KSA9PiAoeyAuLi54IH0pKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IG5nQ29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KE5nQ29udHJvbCk7XG4gICAgaWYgKG5nQ29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sTmFtZSkge1xuICAgICAgdGhpcy5jb250cm9sID0gdGhpcy5pbmplY3Rvci5nZXQoRm9ybUdyb3VwRGlyZWN0aXZlKS5nZXRDb250cm9sKG5nQ29udHJvbCk7XG4gICAgfVxuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogTGlzdGJveEl0ZW1bXSB8IExpc3Rib3hJdGVtIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm11bHRpcGxlICYmIHZhbHVlKSB7XG4gICAgICB0aGlzLnNlYXJjaCA9ICh2YWx1ZSBhcyBMaXN0Ym94SXRlbSkubGFiZWwgfHwgJyc7XG4gICAgfVxuICAgIHRoaXMubm9SZXN1bHRzID0gZmFsc2U7XG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gdmFsdWU7XG5cbiAgICB0aGlzLm9uQXV0b2NvbXBsZXRlQ2hhbmdlKHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcbiAgICB0aGlzLm9uQXV0b2NvbXBsZXRlQ2hhbmdlID0gZm47XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuICAgIHRoaXMub25BdXRvY29tcGxldGVUb3VjaCA9IGZuO1xuICB9XG5cbiAgcHVibGljIG9wZW5MaXN0Ym94KCk6IHZvaWQge1xuICAgIHRoaXMub3BlblN0YXRlID0gdHJ1ZTtcbiAgICB0aGlzLmlucHV0Q2xpY2tlZC5lbWl0KHRydWUpO1xuICB9XG5cbiAgcHVibGljIGNsb3NlTGlzdGJveCgpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW5TdGF0ZSA9IGZhbHNlO1xuICAgIHRoaXMubGlzdGJveEl0ZW1zID0gdGhpcy5pbml0aWFsTGlzdGJveEl0ZW1zO1xuICB9XG5cbiAgcHVibGljIGl0ZW1zU2VsZWN0ZWRMaXN0Ym94RXZlbnQobGlzdGJveEl0ZW1TZWxlY3RlZDogTGlzdGJveEl0ZW1bXSB8IExpc3Rib3hJdGVtKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm11bHRpcGxlKSB7XG4gICAgICB0aGlzLnNlYXJjaCA9IChsaXN0Ym94SXRlbVNlbGVjdGVkIGFzIExpc3Rib3hJdGVtKS5sYWJlbDtcbiAgICAgIHRoaXMuY2xvc2VMaXN0Ym94KCk7XG4gICAgfVxuICAgIHRoaXMuaW52YWxpZCA9IGZhbHNlO1xuICAgIGlmICh0aGlzLmNvbnRyb2wpIHtcbiAgICAgIHRoaXMuY29udHJvbD8uc2V0VmFsdWUodGhpcy5zZWxlY3RlZEl0ZW1zKTtcbiAgICAgIHRoaXMuY29udHJvbD8ubWFya0FzRGlydHkoKTtcbiAgICAgIHRoaXMuY29udHJvbD8ubWFya0FzVG91Y2hlZCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLndyaXRlVmFsdWUobGlzdGJveEl0ZW1TZWxlY3RlZCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNsZWFyRmllbGRFdmVudCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMub3BlblN0YXRlID0gZmFsc2U7XG4gICAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgICAgdGhpcy5zZWFyY2ggPSAnJztcbiAgICAgIH1cbiAgICAgIHRoaXMud3JpdGVWYWx1ZSh0aGlzLnNlbGVjdGVkSXRlbXMpO1xuICAgICAgdGhpcy5jb250cm9sPy5zZXRWYWx1ZSh0aGlzLnNlbGVjdGVkSXRlbXMpO1xuICAgICAgdGhpcy5jb250cm9sPy5tYXJrQXNEaXJ0eSgpO1xuICAgICAgdGhpcy5jb250cm9sPy5tYXJrQXNUb3VjaGVkKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldE11bHRpU2VsZWN0ZWRMYWJlbCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICByZXR1cm4gKHRoaXMuc2VsZWN0ZWRJdGVtcyBhcyBMaXN0Ym94SXRlbVtdKVxuICAgICAgICAubWFwKChzZWxlY3RlZEl0ZW0pID0+IHNlbGVjdGVkSXRlbS5sYWJlbClcbiAgICAgICAgLmpvaW4oJywgJyk7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHB1YmxpYyBnZXRTZWxlY3RlZExpc3Rib3hJdGVtcygpOiBMaXN0Ym94SXRlbVtdIHtcbiAgICBpZiAodGhpcy5tdWx0aXBsZSAmJiB0aGlzLnNlbGVjdGVkSXRlbXMpIHtcbiAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSXRlbXMgYXMgTGlzdGJveEl0ZW1bXTtcbiAgICB9XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgcHVibGljIGdldFNlbGVjdGVkTGlzdGJveEl0ZW0oKTogTGlzdGJveEl0ZW0gfCB1bmRlZmluZWQge1xuICAgIGlmICghdGhpcy5tdWx0aXBsZSAmJiB0aGlzLnNlbGVjdGVkSXRlbXMpIHtcbiAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSXRlbXMgYXMgTGlzdGJveEl0ZW07XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgY2FuQ2xlYXJGaWVsZCgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xuICAgICAgcmV0dXJuICF0aGlzLmRpc2FibGVkICYmIHRoaXMuY2xlYXJmaWVsZCAmJiB0aGlzLmdldFNlbGVjdGVkTGlzdGJveEl0ZW1zKCkubGVuZ3RoID4gMDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICF0aGlzLmRpc2FibGVkICYmIHRoaXMuY2xlYXJmaWVsZCAmJiB0aGlzLmdldFNlbGVjdGVkTGlzdGJveEl0ZW0oKSAhPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRUYWdJdGVtc0Zyb21TZWxlY3RlZEl0ZW1zKCk6IFRhZ0l0ZW1bXSB7XG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkSXRlbXMpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgcmV0dXJuICh0aGlzLnNlbGVjdGVkSXRlbXMgYXMgTGlzdGJveEl0ZW1bXSkubWFwKFxuICAgICAgKHNlbGVjdGVkSXRlbSkgPT4gKHsgaWQ6IHNlbGVjdGVkSXRlbS52YWx1ZSwgbGFiZWw6IHNlbGVjdGVkSXRlbS5sYWJlbCB9IGFzIFRhZ0l0ZW0pXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVUYWdFdmVudCgkZXZlbnQ6IFRhZ0l0ZW0pOiB2b2lkIHtcbiAgICBjb25zdCBzZWxlY3RlZEl0ZW1zID0gKHRoaXMuc2VsZWN0ZWRJdGVtcyBhcyBMaXN0Ym94SXRlbVtdKS5maWx0ZXIoXG4gICAgICAoc2VsZWN0ZWRJdGVtKSA9PiBzZWxlY3RlZEl0ZW0udmFsdWUgIT09ICRldmVudC5pZFxuICAgICk7XG4gICAgaWYgKHRoaXMuY29udHJvbCkge1xuICAgICAgdGhpcy5jb250cm9sPy5zZXRWYWx1ZShzZWxlY3RlZEl0ZW1zKTtcbiAgICAgIHRoaXMuY29udHJvbD8ubWFya0FzRGlydHkoKTtcbiAgICAgIHRoaXMuY29udHJvbD8ubWFya0FzVG91Y2hlZCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLndyaXRlVmFsdWUoc2VsZWN0ZWRJdGVtcyk7XG4gICAgfVxuICAgIHRoaXMudGFnbGlzdENvbXBvbmVudC51cGRhdGVUYWdsaXN0TGF5ZXJDb25maWcodGhpcy5nZXRUYWdJdGVtc0Zyb21TZWxlY3RlZEl0ZW1zKCkpO1xuICAgIGlmICh0aGlzLmdldFRhZ0l0ZW1zRnJvbVNlbGVjdGVkSXRlbXMoKS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMudGFnbGlzdENvbXBvbmVudC5jbG9zZVRhZ2xpc3RMYXllcigpO1xuICAgIH1cbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWFyY2hFdmVudCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy53aXRoU2VhcmNoRmlsdGVyKSB7XG4gICAgICB0aGlzLm5vUmVzdWx0cyA9IGZhbHNlO1xuICAgICAgdGhpcy5pbnZhbGlkID0gZmFsc2U7XG4gICAgICBpZiAodGhpcy5zZWFyY2gubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLmxpc3Rib3hJdGVtcyA9IFtcbiAgICAgICAgICAuLi50aGlzLmluaXRpYWxMaXN0Ym94SXRlbXMuZmlsdGVyKChsaXN0Ym94SXRlbSkgPT5cbiAgICAgICAgICAgIGxpc3Rib3hJdGVtLmxhYmVsLmluY2x1ZGVzKHRoaXMuc2VhcmNoKVxuICAgICAgICAgICksXG4gICAgICAgIF07XG4gICAgICAgIGlmICh0aGlzLmxpc3Rib3hJdGVtcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICB0aGlzLm9wZW5TdGF0ZSA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMubm9SZXN1bHRzID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmludmFsaWQgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMub3BlblN0YXRlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5saXN0Ym94SXRlbXMgPSB0aGlzLmluaXRpYWxMaXN0Ym94SXRlbXM7XG4gICAgICAgIHRoaXMub3BlblN0YXRlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5zZWFyY2hVcGRhdGVkLmVtaXQodGhpcy5zZWFyY2gpO1xuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHVibGljIGZvY3VzaW5FdmVudCgpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW5MaXN0Ym94KCk7XG4gIH1cblxuICBwdWJsaWMgZm9jdXNvdXRFdmVudCgkZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmICgkZXZlbnQucmVsYXRlZFRhcmdldCAmJiAhJGV2ZW50LnJlbGF0ZWRUYXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKCdtYy1saXN0Ym94X19saXN0JykpIHtcbiAgICAgIHRoaXMuY2xvc2VMaXN0Ym94KCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNjcm9sbEVuZEV2ZW50KCRldmVudDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuc2Nyb2xsRW5kLmVtaXQoJGV2ZW50KTtcbiAgfVxufVxuIiwiPGRpdlxuICBpZD1cImpzLWF1dG9jb21wbGV0ZVwiXG4gIGNsYXNzPVwibWMtYXV0b2NvbXBsZXRlIG1jLWF1dG9jb21wbGV0ZS0tY2xlYXJhYmxlXCJcbiAgW25nQ2xhc3NdPVwieyAnbWMtYXV0b2NvbXBsZXRlLS1tdWx0aSc6IG11bHRpcGxlIH1cIlxuICBbbmdTdHlsZV09XCJ7XG4gICAgJy0tYXV0b2NvbXBsZXRlLXRhZy13aWR0aCc6XG4gICAgICAhc2hvd1NlbGVjdGVkVGFncyAmJiBtdWx0aXBsZSAmJiBnZXRTZWxlY3RlZExpc3Rib3hJdGVtcygpLmxlbmd0aCA+IDAgPyAnMy41cmVtJyA6ICcnLFxuICAgICctLWF1dG9jb21wbGV0ZS13aWR0aCc6ICcxMDAlJ1xuICB9XCJcbj5cbiAgPG1vei1saXN0Ym94XG4gICAgI2xpc3Rib3hcbiAgICBbbGlzdGJveEl0ZW1zXT1cImxpc3Rib3hJdGVtc1wiXG4gICAgWyhpc09wZW4pXT1cIm9wZW5TdGF0ZVwiXG4gICAgW211bHRpcGxlXT1cIm11bHRpcGxlXCJcbiAgICBbc2VsZWN0ZWRJdGVtc109XCJzZWxlY3RlZEl0ZW1zXCJcbiAgICAoaXRlbXNTZWxlY3RlZCk9XCJpdGVtc1NlbGVjdGVkTGlzdGJveEV2ZW50KCRldmVudClcIlxuICAgIChzY3JvbGxFbmQpPVwic2Nyb2xsRW5kRXZlbnQoJGV2ZW50KVwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwibWMtYXV0b2NvbXBsZXRlX19tYWluXCIgcmVmZXJlbmNlPlxuICAgICAgPG1vei10YWdcbiAgICAgICAgKm5nSWY9XCIhc2hvd1NlbGVjdGVkVGFncyAmJiBtdWx0aXBsZSAmJiBnZXRTZWxlY3RlZExpc3Rib3hJdGVtcygpLmxlbmd0aCA+IDBcIlxuICAgICAgICB0eXBlPVwicmVtb3ZhYmxlXCJcbiAgICAgICAgY2xhc3M9XCJtYy1hdXRvY29tcGxldGVfX3RhZyBtYy10YWctcmVtb3ZhYmxlIG1jLXRhZy1yZW1vdmFibGUtLXNcIlxuICAgICAgICBbc2l6ZV09XCIncydcIlxuICAgICAgICAoY2xpY2tPblJlbW92ZSk9XCJjbGVhckZpZWxkRXZlbnQoKVwiXG4gICAgICA+XG4gICAgICAgIHt7IGdldFNlbGVjdGVkTGlzdGJveEl0ZW1zKCkubGVuZ3RoIH19PC9tb3otdGFnXG4gICAgICA+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJtYy1sZWZ0LWljb24taW5wdXRcIj5cbiAgICAgICAgPG1vei1pY29uXG4gICAgICAgICAgY2xhc3M9XCJtYy1sZWZ0LWljb24taW5wdXRfX2ljb25cIlxuICAgICAgICAgIFtpY29uTmFtZV09XCInTmF2aWdhdGlvbl9EaXNwbGF5X1NlYXJjaF8yNHB4J1wiXG4gICAgICAgID48L21vei1pY29uPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBtb3otaW5wdXRcbiAgICAgICAgICBbdHlwZV09XCIndGV4dCdcIlxuICAgICAgICAgIFtpbnZhbGlkXT1cImludmFsaWRcIlxuICAgICAgICAgIGNsYXNzPVwibWMtbGVmdC1pY29uLWlucHV0X19pbnB1dCBtYy10ZXh0LWlucHV0IG1jLWF1dG9jb21wbGV0ZV9fdHJpZ2dlclwiXG4gICAgICAgICAgW3ZhbGlkXT1cInZhbGlkXCJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgW3NpemVdPVwic2l6ZVwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hcIlxuICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNlYXJjaEV2ZW50KClcIlxuICAgICAgICAgIChmb2N1c2luKT1cImZvY3VzaW5FdmVudCgpXCJcbiAgICAgICAgICAoZm9jdXNvdXQpPVwiZm9jdXNvdXRFdmVudCgkZXZlbnQpXCJcbiAgICAgICAgICAoY2xpY2spPVwib3Blbkxpc3Rib3goKVwiXG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cIm1jLWF1dG9jb21wbGV0ZV9fdG9vbHNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1jLWF1dG9jb21wbGV0ZV9fbG9hZGVyIG1jLWxvYWRlciBtYy1sb2FkZXItLXNcIiAqbmdJZj1cImxvYWRpbmdcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1jLWxvYWRlcl9fc3Bpbm5lclwiPlxuICAgICAgICAgICAgPG1vei1sb2FkZXIgY2xhc3M9XCJtYy1sb2FkZXJfX2ljb25cIiBzaXplPVwic1wiPjwvbW96LWxvYWRlcj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJtYy1hdXRvY29tcGxldGVfX2NsZWFyXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAqbmdJZj1cImNhbkNsZWFyRmllbGQoKVwiXG4gICAgICAgICAgKGNsaWNrKT1cImNsZWFyRmllbGRFdmVudCgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxtb3otaWNvblxuICAgICAgICAgICAgY2xhc3M9XCJtYy1hdXRvY29tcGxldGVfX2NsZWFyLWljb25cIlxuICAgICAgICAgICAgW2ljb25OYW1lXT1cIidOYXZpZ2F0aW9uX0NvbnRyb2xfVGFnLS1Dcm9zc18yNHB4J1wiXG4gICAgICAgICAgPjwvbW96LWljb25cbiAgICAgICAgICA+PHNwYW4gY2xhc3M9XCJtYy1hdXRvY29tcGxldGVfX2NsZWFyLXRleHRcIj5DbGVhcjwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9tb3otbGlzdGJveD5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cIm1jLWF1dG9jb21wbGV0ZV9fZXJyb3JcIiAqbmdJZj1cImludmFsaWRcIj5cbiAge3sgZXJyb3JDb250ZW50VGV4dCB9fVxuPC9kaXY+XG48ZGl2IGNsYXNzPVwibWMtYXV0b2NvbXBsZXRlX190YWdsaXN0XCIgKm5nSWY9XCJzaG93U2VsZWN0ZWRUYWdzICYmIG11bHRpcGxlICYmICFvcGVuU3RhdGVcIj5cbiAgPG1vei10YWdsaXN0XG4gICAgI3RhZ2xpc3RcbiAgICAocmVtb3ZlVGFnKT1cInJlbW92ZVRhZ0V2ZW50KCRldmVudClcIlxuICAgIFt0YWdJdGVtc109XCJnZXRUYWdJdGVtc0Zyb21TZWxlY3RlZEl0ZW1zKClcIlxuICAgIFttYXhdPVwibWF4U2hvd2luZ1NlbGVjdGVkVGFnc1wiXG4gICAgW2xheWVyVGFnc1RpdGxlXT1cImxheWVyVGFnc1RpdGxlXCJcbiAgICBbbGF5ZXJUYWdzSWNvbl09XCJsYXllclRhZ3NJY29uXCJcbiAgPjwvbW96LXRhZ2xpc3Q+XG48L2Rpdj5cbiJdfQ==
@@ -273,10 +273,10 @@ export class MozDatatableSelectionComponent {
273
273
  }
274
274
  }
275
275
  MozDatatableSelectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MozDatatableSelectionComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
276
- MozDatatableSelectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MozDatatableSelectionComponent, selector: "moz-datatable-selection", inputs: { selectionSettings: "selectionSettings", paginationEnabled: "paginationEnabled", rowData: "rowData" }, outputs: { updateSelectionAllEmitter: "updateSelectionAllEmitter" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"mc-datatable__selection\">\n <ng-container *ngIf=\"selectionSettings && selectionSettings.labels && paginationEnabled\">\n <div class=\"mc-datatable__topbar-selection\">\n <ng-container *ngIf=\"selectionSettings.selectedIds.length || selectionSettings.allSelected\">\n <div class=\"center-selection-label\">\n <div *ngIf=\"selectionSettings.allSelected; else notAllSelected\">\n <ng-container *ngIf=\"selectionSettings.excludedIds.length > 0; else exludedIdsEmpty\">\n <span>\n <b\n >{{\n selectionSettings.totalSelectableItems - selectionSettings.excludedIds.length\n }}\n {{ selectionSettings.labels.selectedLabel || 'selected' }}</b\n >\n <ng-container\n *ngIf=\"\n selectionSettings.totalSelectableItems -\n selectionSettings.excludedIds.length ===\n 1;\n else plurialAllSelected\n \"\n >\n {{ selectionSettings.labels.rowOnPageLabel || 'row on the page. ' }}-\n </ng-container>\n <ng-template #plurialAllSelected>\n {{ selectionSettings.labels.rowsOnPageLabel || 'rows on the page. ' }}-\n </ng-template>\n\n {{ selectionSettings.labels.rowsOnPageLabel || 'rows on the page. ' }}-\n <a href=\"/\" (click)=\"selectAll(); $event.preventDefault()\">\n {{ selectionSettings.labels.selectAllLabel || 'Select all' }}\n {{ selectionSettings.totalSelectableItems }}\n {{ selectionSettings.labels.rowsOfTableLabel || 'rows of the table' }}\n </a>\n </span>\n </ng-container>\n <ng-template #exludedIdsEmpty>\n <span>\n {{\n selectionSettings.labels.rowsSelectedLabel ||\n 'All rows are selected in the table.'\n }}\n -\n <a href=\"/\" (click)=\"clearAll(); $event.preventDefault()\">\n {{ selectionSettings.labels.clearSelectionLabel || 'Clear selection' }}\n </a>\n </span>\n </ng-template>\n </div>\n <ng-template #notAllSelected>\n <span>\n <b\n >{{ selectionSettings.selectedIds.length }}\n {{ selectionSettings.labels.selectedLabel || 'selected' }}</b\n >\n <ng-container\n *ngIf=\"selectionSettings.selectedIds && selectionSettings.selectedIds.length > 0\"\n >\n <ng-container\n *ngIf=\"\n selectionSettings.selectedIds && selectionSettings.selectedIds.length === 1;\n else plurialNotAllSelected\n \"\n >\n {{ selectionSettings.labels.rowOnPageLabel || 'row on the page. ' }}-\n </ng-container>\n <ng-template #plurialNotAllSelected>\n {{ selectionSettings.labels.rowsOnPageLabel || 'rows on the page. ' }}-\n </ng-template>\n <a href=\"/\" (click)=\"selectAll(); $event.preventDefault()\">\n {{ selectionSettings.labels.selectAllLabel || 'Select all' }}\n {{ selectionSettings.totalSelectableItems }}\n {{ selectionSettings.labels.rowsOfTableLabel || 'rows of the table' }}\n </a>\n </ng-container>\n </span>\n </ng-template>\n </div>\n </ng-container>\n </div>\n </ng-container>\n</div>\n", styles: [".center-selection-label{text-align:center;margin-bottom:.5rem}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
276
+ MozDatatableSelectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MozDatatableSelectionComponent, selector: "moz-datatable-selection", inputs: { selectionSettings: "selectionSettings", paginationEnabled: "paginationEnabled", rowData: "rowData" }, outputs: { updateSelectionAllEmitter: "updateSelectionAllEmitter" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"mc-datatable__selection\">\n <ng-container *ngIf=\"selectionSettings && selectionSettings.labels && paginationEnabled\">\n <div class=\"mc-datatable__topbar-selection\">\n <ng-container *ngIf=\"selectionSettings.selectedIds.length || selectionSettings.allSelected\">\n <div class=\"center-selection-label\">\n <div *ngIf=\"selectionSettings.allSelected; else notAllSelected\">\n <ng-container *ngIf=\"selectionSettings.excludedIds.length > 0; else exludedIdsEmpty\">\n <span>\n <b\n >{{\n selectionSettings.totalSelectableItems - selectionSettings.excludedIds.length\n }}\n {{ selectionSettings.labels.selectedLabel || 'selected' }}</b\n >\n <ng-container\n *ngIf=\"\n selectionSettings.totalSelectableItems -\n selectionSettings.excludedIds.length ===\n 1;\n else plurialAllSelected\n \"\n >\n {{ selectionSettings.labels.rowOnPageLabel || 'row on the page. ' }}-\n </ng-container>\n <ng-template #plurialAllSelected>\n {{ selectionSettings.labels.rowsOnPageLabel || 'rows on the page. ' }}-\n </ng-template>\n\n {{ selectionSettings.labels.rowsOnPageLabel || 'rows on the page. ' }}-\n <a href=\"/\" (click)=\"selectAll(); $event.preventDefault()\">\n {{ selectionSettings.labels.selectAllLabel || 'Select all' }}\n {{ selectionSettings.totalSelectableItems }}\n {{ selectionSettings.labels.rowsOfTableLabel || 'rows of the table' }}\n </a>\n </span>\n </ng-container>\n <ng-template #exludedIdsEmpty>\n <span>\n {{\n selectionSettings.labels.rowsSelectedLabel ||\n 'All rows are selected in the table.'\n }}\n -\n <a href=\"/\" (click)=\"clearAll(); $event.preventDefault()\">\n {{ selectionSettings.labels.clearSelectionLabel || 'Clear selection' }}\n </a>\n </span>\n </ng-template>\n </div>\n <ng-template #notAllSelected>\n <span>\n <b\n >{{ selectionSettings.selectedIds.length }}\n {{ selectionSettings.labels.selectedLabel || 'selected' }}</b\n >\n <ng-container\n *ngIf=\"selectionSettings.selectedIds && selectionSettings.selectedIds.length > 0\"\n >\n <ng-container\n *ngIf=\"\n selectionSettings.selectedIds && selectionSettings.selectedIds.length === 1;\n else plurialNotAllSelected\n \"\n >\n {{ selectionSettings.labels.rowOnPageLabel || 'row on the page. ' }}-\n </ng-container>\n <ng-template #plurialNotAllSelected>\n {{ selectionSettings.labels.rowsOnPageLabel || 'rows on the page. ' }}-\n </ng-template>\n <a href=\"/\" (click)=\"selectAll(); $event.preventDefault()\">\n {{ selectionSettings.labels.selectAllLabel || 'Select all' }}\n {{ selectionSettings.totalSelectableItems }}\n {{ selectionSettings.labels.rowsOfTableLabel || 'rows of the table' }}\n </a>\n </ng-container>\n </span>\n </ng-template>\n </div>\n </ng-container>\n </div>\n </ng-container>\n</div>\n", styles: [".center-selection-label{margin-bottom:1rem;background-color:#fff;height:34px;text-align:center;align-items:center;display:flex;justify-content:center;border-radius:.25rem}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
277
277
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MozDatatableSelectionComponent, decorators: [{
278
278
  type: Component,
279
- args: [{ selector: 'moz-datatable-selection', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"mc-datatable__selection\">\n <ng-container *ngIf=\"selectionSettings && selectionSettings.labels && paginationEnabled\">\n <div class=\"mc-datatable__topbar-selection\">\n <ng-container *ngIf=\"selectionSettings.selectedIds.length || selectionSettings.allSelected\">\n <div class=\"center-selection-label\">\n <div *ngIf=\"selectionSettings.allSelected; else notAllSelected\">\n <ng-container *ngIf=\"selectionSettings.excludedIds.length > 0; else exludedIdsEmpty\">\n <span>\n <b\n >{{\n selectionSettings.totalSelectableItems - selectionSettings.excludedIds.length\n }}\n {{ selectionSettings.labels.selectedLabel || 'selected' }}</b\n >\n <ng-container\n *ngIf=\"\n selectionSettings.totalSelectableItems -\n selectionSettings.excludedIds.length ===\n 1;\n else plurialAllSelected\n \"\n >\n {{ selectionSettings.labels.rowOnPageLabel || 'row on the page. ' }}-\n </ng-container>\n <ng-template #plurialAllSelected>\n {{ selectionSettings.labels.rowsOnPageLabel || 'rows on the page. ' }}-\n </ng-template>\n\n {{ selectionSettings.labels.rowsOnPageLabel || 'rows on the page. ' }}-\n <a href=\"/\" (click)=\"selectAll(); $event.preventDefault()\">\n {{ selectionSettings.labels.selectAllLabel || 'Select all' }}\n {{ selectionSettings.totalSelectableItems }}\n {{ selectionSettings.labels.rowsOfTableLabel || 'rows of the table' }}\n </a>\n </span>\n </ng-container>\n <ng-template #exludedIdsEmpty>\n <span>\n {{\n selectionSettings.labels.rowsSelectedLabel ||\n 'All rows are selected in the table.'\n }}\n -\n <a href=\"/\" (click)=\"clearAll(); $event.preventDefault()\">\n {{ selectionSettings.labels.clearSelectionLabel || 'Clear selection' }}\n </a>\n </span>\n </ng-template>\n </div>\n <ng-template #notAllSelected>\n <span>\n <b\n >{{ selectionSettings.selectedIds.length }}\n {{ selectionSettings.labels.selectedLabel || 'selected' }}</b\n >\n <ng-container\n *ngIf=\"selectionSettings.selectedIds && selectionSettings.selectedIds.length > 0\"\n >\n <ng-container\n *ngIf=\"\n selectionSettings.selectedIds && selectionSettings.selectedIds.length === 1;\n else plurialNotAllSelected\n \"\n >\n {{ selectionSettings.labels.rowOnPageLabel || 'row on the page. ' }}-\n </ng-container>\n <ng-template #plurialNotAllSelected>\n {{ selectionSettings.labels.rowsOnPageLabel || 'rows on the page. ' }}-\n </ng-template>\n <a href=\"/\" (click)=\"selectAll(); $event.preventDefault()\">\n {{ selectionSettings.labels.selectAllLabel || 'Select all' }}\n {{ selectionSettings.totalSelectableItems }}\n {{ selectionSettings.labels.rowsOfTableLabel || 'rows of the table' }}\n </a>\n </ng-container>\n </span>\n </ng-template>\n </div>\n </ng-container>\n </div>\n </ng-container>\n</div>\n", styles: [".center-selection-label{text-align:center;margin-bottom:.5rem}\n"] }]
279
+ args: [{ selector: 'moz-datatable-selection', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"mc-datatable__selection\">\n <ng-container *ngIf=\"selectionSettings && selectionSettings.labels && paginationEnabled\">\n <div class=\"mc-datatable__topbar-selection\">\n <ng-container *ngIf=\"selectionSettings.selectedIds.length || selectionSettings.allSelected\">\n <div class=\"center-selection-label\">\n <div *ngIf=\"selectionSettings.allSelected; else notAllSelected\">\n <ng-container *ngIf=\"selectionSettings.excludedIds.length > 0; else exludedIdsEmpty\">\n <span>\n <b\n >{{\n selectionSettings.totalSelectableItems - selectionSettings.excludedIds.length\n }}\n {{ selectionSettings.labels.selectedLabel || 'selected' }}</b\n >\n <ng-container\n *ngIf=\"\n selectionSettings.totalSelectableItems -\n selectionSettings.excludedIds.length ===\n 1;\n else plurialAllSelected\n \"\n >\n {{ selectionSettings.labels.rowOnPageLabel || 'row on the page. ' }}-\n </ng-container>\n <ng-template #plurialAllSelected>\n {{ selectionSettings.labels.rowsOnPageLabel || 'rows on the page. ' }}-\n </ng-template>\n\n {{ selectionSettings.labels.rowsOnPageLabel || 'rows on the page. ' }}-\n <a href=\"/\" (click)=\"selectAll(); $event.preventDefault()\">\n {{ selectionSettings.labels.selectAllLabel || 'Select all' }}\n {{ selectionSettings.totalSelectableItems }}\n {{ selectionSettings.labels.rowsOfTableLabel || 'rows of the table' }}\n </a>\n </span>\n </ng-container>\n <ng-template #exludedIdsEmpty>\n <span>\n {{\n selectionSettings.labels.rowsSelectedLabel ||\n 'All rows are selected in the table.'\n }}\n -\n <a href=\"/\" (click)=\"clearAll(); $event.preventDefault()\">\n {{ selectionSettings.labels.clearSelectionLabel || 'Clear selection' }}\n </a>\n </span>\n </ng-template>\n </div>\n <ng-template #notAllSelected>\n <span>\n <b\n >{{ selectionSettings.selectedIds.length }}\n {{ selectionSettings.labels.selectedLabel || 'selected' }}</b\n >\n <ng-container\n *ngIf=\"selectionSettings.selectedIds && selectionSettings.selectedIds.length > 0\"\n >\n <ng-container\n *ngIf=\"\n selectionSettings.selectedIds && selectionSettings.selectedIds.length === 1;\n else plurialNotAllSelected\n \"\n >\n {{ selectionSettings.labels.rowOnPageLabel || 'row on the page. ' }}-\n </ng-container>\n <ng-template #plurialNotAllSelected>\n {{ selectionSettings.labels.rowsOnPageLabel || 'rows on the page. ' }}-\n </ng-template>\n <a href=\"/\" (click)=\"selectAll(); $event.preventDefault()\">\n {{ selectionSettings.labels.selectAllLabel || 'Select all' }}\n {{ selectionSettings.totalSelectableItems }}\n {{ selectionSettings.labels.rowsOfTableLabel || 'rows of the table' }}\n </a>\n </ng-container>\n </span>\n </ng-template>\n </div>\n </ng-container>\n </div>\n </ng-container>\n</div>\n", styles: [".center-selection-label{margin-bottom:1rem;background-color:#fff;height:34px;text-align:center;align-items:center;display:flex;justify-content:center;border-radius:.25rem}\n"] }]
280
280
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { selectionSettings: [{
281
281
  type: Input
282
282
  }], paginationEnabled: [{
@@ -10,22 +10,24 @@ export class MozDatatableSortDirective {
10
10
  if (this.columnDef?.sort) {
11
11
  const sortIcon = this.renderer.createElement('span');
12
12
  this.renderer.addClass(sortIcon, 'mc-datatable__sort-arrow');
13
- this.updateSortDirection(sortIcon);
13
+ this.updateSortDirection(sortIcon, true);
14
14
  this.renderer.appendChild(this.elementRef.nativeElement, sortIcon);
15
15
  }
16
16
  }
17
17
  onSortClick($event) {
18
- this.updateSortDirection($event.target);
18
+ this.updateSortDirection($event.target, false);
19
19
  }
20
- updateSortDirection(htmlSpanElement) {
20
+ updateSortDirection(htmlSpanElement, init) {
21
21
  if (this.columnDef?.sort) {
22
22
  if (htmlSpanElement.classList.contains('mc-datatable__sort-arrow')) {
23
- this.columnDef.sort.direction =
24
- this.columnDef.sort.direction == undefined
25
- ? 'ASC'
26
- : this.columnDef.sort.direction === 'ASC'
27
- ? 'DESC'
28
- : undefined;
23
+ if (!init) {
24
+ this.columnDef.sort.direction =
25
+ this.columnDef.sort.direction == undefined
26
+ ? 'ASC'
27
+ : this.columnDef.sort.direction === 'ASC'
28
+ ? 'DESC'
29
+ : undefined;
30
+ }
29
31
  if (this.columnDef.sort.direction === 'ASC') {
30
32
  this.renderer.addClass(htmlSpanElement, 'is-sorted-asc');
31
33
  this.renderer.removeClass(htmlSpanElement, 'is-sorted-desc');
@@ -62,4 +64,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
62
64
  type: HostListener,
63
65
  args: ['click', ['$event']]
64
66
  }] } });
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW96LWRhdGF0YWJsZS1zb3J0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL2RhdGF0YWJsZS9kaXJlY3RpdmVzL21vei1kYXRhdGFibGUtc29ydC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7O0FBTXZCLE1BQU0sT0FBTyx5QkFBeUI7SUFJcEMsWUFBb0IsVUFBc0IsRUFBVSxRQUFtQjtRQUFuRCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUY3RCxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7SUFFc0IsQ0FBQztJQUUzRSxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRTtZQUN4QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNyRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsMEJBQTBCLENBQUMsQ0FBQztZQUM3RCxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLENBQUM7U0FDcEU7SUFDSCxDQUFDO0lBR0QsV0FBVyxDQUFDLE1BQVc7UUFDckIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU8sbUJBQW1CLENBQUMsZUFBZ0M7UUFDMUQsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRTtZQUN4QixJQUFJLGVBQWUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLDBCQUEwQixDQUFDLEVBQUU7Z0JBQ2xFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVM7b0JBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxTQUFTO3dCQUN4QyxDQUFDLENBQUMsS0FBSzt3QkFDUCxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxLQUFLLEtBQUs7NEJBQ3pDLENBQUMsQ0FBQyxNQUFNOzRCQUNSLENBQUMsQ0FBQyxTQUFTLENBQUM7Z0JBQ2hCLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxLQUFLLEtBQUssRUFBRTtvQkFDM0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLGVBQWUsQ0FBQyxDQUFDO29CQUN6RCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztpQkFDOUQ7cUJBQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLEtBQUssTUFBTSxFQUFFO29CQUNuRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztvQkFDMUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFLGVBQWUsQ0FBQyxDQUFDO2lCQUM3RDtxQkFBTTtvQkFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztvQkFDN0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFLGVBQWUsQ0FBQyxDQUFDO2lCQUM3RDtnQkFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztvQkFDcEIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVM7b0JBQ3hDLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUs7aUJBQzVCLENBQUMsQ0FBQzthQUNKO1NBQ0Y7SUFDSCxDQUFDOzt1SEE3Q1UseUJBQXlCOzJHQUF6Qix5QkFBeUI7NEZBQXpCLHlCQUF5QjtrQkFIckMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO2lCQUMvQjt5SEFFNEIsU0FBUztzQkFBbkMsS0FBSzt1QkFBQyxrQkFBa0I7Z0JBQ2YsV0FBVztzQkFBcEIsTUFBTTtnQkFjUCxXQUFXO3NCQURWLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBSZW5kZXJlcjIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29sdW1uRGVmIH0gZnJvbSAnLi4vbW9kZWwvY29sdW1uLWRlZic7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1ttb3pEYXRhdGFibGVTb3J0XScsXG59KVxuZXhwb3J0IGNsYXNzIE1vekRhdGF0YWJsZVNvcnREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoJ21vekRhdGF0YWJsZVNvcnQnKSBjb2x1bW5EZWY/OiBDb2x1bW5EZWY7XG4gIEBPdXRwdXQoKSBzb3J0RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8dW5rbm93bj4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5jb2x1bW5EZWY/LnNvcnQpIHtcbiAgICAgIGNvbnN0IHNvcnRJY29uID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHNvcnRJY29uLCAnbWMtZGF0YXRhYmxlX19zb3J0LWFycm93Jyk7XG4gICAgICB0aGlzLnVwZGF0ZVNvcnREaXJlY3Rpb24oc29ydEljb24pO1xuICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgc29ydEljb24pO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgb25Tb3J0Q2xpY2soJGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnVwZGF0ZVNvcnREaXJlY3Rpb24oJGV2ZW50LnRhcmdldCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVNvcnREaXJlY3Rpb24oaHRtbFNwYW5FbGVtZW50OiBIVE1MU3BhbkVsZW1lbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb2x1bW5EZWY/LnNvcnQpIHtcbiAgICAgIGlmIChodG1sU3BhbkVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdtYy1kYXRhdGFibGVfX3NvcnQtYXJyb3cnKSkge1xuICAgICAgICB0aGlzLmNvbHVtbkRlZi5zb3J0LmRpcmVjdGlvbiA9XG4gICAgICAgICAgdGhpcy5jb2x1bW5EZWYuc29ydC5kaXJlY3Rpb24gPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICA/ICdBU0MnXG4gICAgICAgICAgICA6IHRoaXMuY29sdW1uRGVmLnNvcnQuZGlyZWN0aW9uID09PSAnQVNDJ1xuICAgICAgICAgICAgPyAnREVTQydcbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgICBpZiAodGhpcy5jb2x1bW5EZWYuc29ydC5kaXJlY3Rpb24gPT09ICdBU0MnKSB7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhodG1sU3BhbkVsZW1lbnQsICdpcy1zb3J0ZWQtYXNjJyk7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhodG1sU3BhbkVsZW1lbnQsICdpcy1zb3J0ZWQtZGVzYycpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY29sdW1uRGVmLnNvcnQuZGlyZWN0aW9uID09PSAnREVTQycpIHtcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGh0bWxTcGFuRWxlbWVudCwgJ2lzLXNvcnRlZC1kZXNjJyk7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhodG1sU3BhbkVsZW1lbnQsICdpcy1zb3J0ZWQtYXNjJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhodG1sU3BhbkVsZW1lbnQsICdpcy1zb3J0ZWQtZGVzYycpO1xuICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoaHRtbFNwYW5FbGVtZW50LCAnaXMtc29ydGVkLWFzYycpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc29ydEVtaXR0ZXIuZW1pdCh7XG4gICAgICAgICAgZGlyZWN0aW9uOiB0aGlzLmNvbHVtbkRlZi5zb3J0LmRpcmVjdGlvbixcbiAgICAgICAgICBmaWVsZDogdGhpcy5jb2x1bW5EZWYuZmllbGQsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW96LWRhdGF0YWJsZS1zb3J0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL2RhdGF0YWJsZS9kaXJlY3RpdmVzL21vei1kYXRhdGFibGUtc29ydC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7O0FBTXZCLE1BQU0sT0FBTyx5QkFBeUI7SUFJcEMsWUFBb0IsVUFBc0IsRUFBVSxRQUFtQjtRQUFuRCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUY3RCxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7SUFFc0IsQ0FBQztJQUUzRSxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRTtZQUN4QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNyRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsMEJBQTBCLENBQUMsQ0FBQztZQUM3RCxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3pDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQ3BFO0lBQ0gsQ0FBQztJQUdELFdBQVcsQ0FBQyxNQUFXO1FBQ3JCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxlQUFnQyxFQUFFLElBQWE7UUFDekUsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRTtZQUN4QixJQUFJLGVBQWUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLDBCQUEwQixDQUFDLEVBQUU7Z0JBQ2xFLElBQUksQ0FBQyxJQUFJLEVBQUU7b0JBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUzt3QkFDM0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLFNBQVM7NEJBQ3hDLENBQUMsQ0FBQyxLQUFLOzRCQUNQLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLEtBQUssS0FBSztnQ0FDekMsQ0FBQyxDQUFDLE1BQU07Z0NBQ1IsQ0FBQyxDQUFDLFNBQVMsQ0FBQztpQkFDakI7Z0JBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLEtBQUssS0FBSyxFQUFFO29CQUMzQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsZUFBZSxDQUFDLENBQUM7b0JBQ3pELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO2lCQUM5RDtxQkFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsS0FBSyxNQUFNLEVBQUU7b0JBQ25ELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO29CQUMxRCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUUsZUFBZSxDQUFDLENBQUM7aUJBQzdEO3FCQUFNO29CQUNMLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO29CQUM3RCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUUsZUFBZSxDQUFDLENBQUM7aUJBQzdEO2dCQUNELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO29CQUNwQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUztvQkFDeEMsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSztpQkFDNUIsQ0FBQyxDQUFDO2FBQ0o7U0FDRjtJQUNILENBQUM7O3VIQS9DVSx5QkFBeUI7MkdBQXpCLHlCQUF5Qjs0RkFBekIseUJBQXlCO2tCQUhyQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7aUJBQy9CO3lIQUU0QixTQUFTO3NCQUFuQyxLQUFLO3VCQUFDLGtCQUFrQjtnQkFDZixXQUFXO3NCQUFwQixNQUFNO2dCQWNQLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb2x1bW5EZWYgfSBmcm9tICcuLi9tb2RlbC9jb2x1bW4tZGVmJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW21vekRhdGF0YWJsZVNvcnRdJyxcbn0pXG5leHBvcnQgY2xhc3MgTW96RGF0YXRhYmxlU29ydERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgnbW96RGF0YXRhYmxlU29ydCcpIGNvbHVtbkRlZj86IENvbHVtbkRlZjtcbiAgQE91dHB1dCgpIHNvcnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjx1bmtub3duPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLmNvbHVtbkRlZj8uc29ydCkge1xuICAgICAgY29uc3Qgc29ydEljb24gPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3Moc29ydEljb24sICdtYy1kYXRhdGFibGVfX3NvcnQtYXJyb3cnKTtcbiAgICAgIHRoaXMudXBkYXRlU29ydERpcmVjdGlvbihzb3J0SWNvbiwgdHJ1ZSk7XG4gICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBzb3J0SWNvbik7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICBvblNvcnRDbGljaygkZXZlbnQ6IGFueSkge1xuICAgIHRoaXMudXBkYXRlU29ydERpcmVjdGlvbigkZXZlbnQudGFyZ2V0LCBmYWxzZSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVNvcnREaXJlY3Rpb24oaHRtbFNwYW5FbGVtZW50OiBIVE1MU3BhbkVsZW1lbnQsIGluaXQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb2x1bW5EZWY/LnNvcnQpIHtcbiAgICAgIGlmIChodG1sU3BhbkVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdtYy1kYXRhdGFibGVfX3NvcnQtYXJyb3cnKSkge1xuICAgICAgICBpZiAoIWluaXQpIHtcbiAgICAgICAgICB0aGlzLmNvbHVtbkRlZi5zb3J0LmRpcmVjdGlvbiA9XG4gICAgICAgICAgICB0aGlzLmNvbHVtbkRlZi5zb3J0LmRpcmVjdGlvbiA9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgPyAnQVNDJ1xuICAgICAgICAgICAgICA6IHRoaXMuY29sdW1uRGVmLnNvcnQuZGlyZWN0aW9uID09PSAnQVNDJ1xuICAgICAgICAgICAgICA/ICdERVNDJ1xuICAgICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5jb2x1bW5EZWYuc29ydC5kaXJlY3Rpb24gPT09ICdBU0MnKSB7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhodG1sU3BhbkVsZW1lbnQsICdpcy1zb3J0ZWQtYXNjJyk7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhodG1sU3BhbkVsZW1lbnQsICdpcy1zb3J0ZWQtZGVzYycpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY29sdW1uRGVmLnNvcnQuZGlyZWN0aW9uID09PSAnREVTQycpIHtcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGh0bWxTcGFuRWxlbWVudCwgJ2lzLXNvcnRlZC1kZXNjJyk7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhodG1sU3BhbkVsZW1lbnQsICdpcy1zb3J0ZWQtYXNjJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhodG1sU3BhbkVsZW1lbnQsICdpcy1zb3J0ZWQtZGVzYycpO1xuICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoaHRtbFNwYW5FbGVtZW50LCAnaXMtc29ydGVkLWFzYycpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc29ydEVtaXR0ZXIuZW1pdCh7XG4gICAgICAgICAgZGlyZWN0aW9uOiB0aGlzLmNvbHVtbkRlZi5zb3J0LmRpcmVjdGlvbixcbiAgICAgICAgICBmaWVsZDogdGhpcy5jb2x1bW5EZWYuZmllbGQsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19