@wizco/fenixds-ngx 17.0.17 → 17.0.19

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.
@@ -113,30 +113,38 @@ export class SmartSelectComponent {
113
113
  }
114
114
  const oldValue = this.formValue;
115
115
  if (this.multiSelect) {
116
- if (this.formValue?.includes(option.value)) {
117
- this.formValue = this.formValue.filter((item) => item !== option.value);
118
- this.autocompleteControl.setValue(this.formValue);
119
- this.renderBoxOptions();
120
- return;
116
+ if (typeof option.value === 'object') {
117
+ const list = this.compareMultiValuesArray(option);
118
+ const hasValueOption = list.some((item) => item.selected);
119
+ if (hasValueOption) {
120
+ this.formValue = list
121
+ .filter((item) => !item.selected)
122
+ .map((item) => item.item);
123
+ }
124
+ else {
125
+ this.formValue = [...(this.formValue || []), option.value];
126
+ }
121
127
  }
122
- // is Array []
123
- if (!!this.formValue === false) {
124
- this.formValue = [];
125
- this.autocompleteControl.setValue(this.formValue);
128
+ else {
129
+ const index = this.formValue?.indexOf(option.value);
130
+ if (index !== undefined && index > -1) {
131
+ this.formValue?.splice(index, 1);
132
+ }
133
+ else {
134
+ this.formValue = [...(this.formValue || []), option.value];
135
+ }
126
136
  }
127
- this.formValue = [...this.formValue, option.value];
128
137
  this.autocompleteControl.setValue(this.formValue);
129
138
  }
130
139
  else {
131
140
  this.formValue = option.value;
132
141
  this.autocompleteControl.setValue(option.value);
133
- }
134
- if (!this.multiSelect) {
135
142
  this.showList = false;
136
143
  }
137
144
  if (oldValue !== this.formValue) {
138
145
  this.onChange.emit({ type: 'updateValue', value: this.formValue });
139
146
  }
147
+ this.renderBoxOptions();
140
148
  }
141
149
  // Show label span
142
150
  get selectedLabel() {
@@ -146,23 +154,70 @@ export class SmartSelectComponent {
146
154
  }
147
155
  // show label multi select
148
156
  get selectedLabelMulti() {
149
- const selectedOptions = this.options?.filter((option) => this.formValue?.includes(option.value));
157
+ const selectedOptions = this.options?.filter((option) => {
158
+ if (typeof option.value === 'object') {
159
+ return this.compareValueArray(option);
160
+ }
161
+ else {
162
+ return this.formValue?.includes(option.value);
163
+ }
164
+ });
150
165
  if (!selectedOptions?.length) {
151
166
  return [];
152
167
  }
153
168
  if (!this.showMaxSelectedLabel) {
154
169
  return selectedOptions;
155
170
  }
156
- if (this.showMaxSelectedLabel && selectedOptions.length > this.showMaxSelectedLabel) {
171
+ if (this.showMaxSelectedLabel &&
172
+ selectedOptions.length > this.showMaxSelectedLabel) {
157
173
  return selectedOptions.slice(0, this.showMaxSelectedLabel);
158
174
  }
159
175
  return selectedOptions;
160
176
  }
177
+ valueToArray(options) {
178
+ const keys = Object.keys(options);
179
+ const value = [];
180
+ keys.forEach((key) => {
181
+ if (options[key] &&
182
+ options[key] !== '' &&
183
+ typeof options[key] !== 'object' &&
184
+ typeof options[key] !== 'function' &&
185
+ typeof options[key] !== 'boolean') {
186
+ value.push(options[key]);
187
+ }
188
+ });
189
+ return value;
190
+ }
191
+ compareValueArray(option, value = this.formValue) {
192
+ if (option && option.value) {
193
+ const valuesItems = this.valueToArray(option.value);
194
+ return value.some((item) => {
195
+ const itemArray = this.valueToArray(item);
196
+ return itemArray.every((itemValue) => valuesItems.includes(itemValue));
197
+ });
198
+ }
199
+ return [];
200
+ }
201
+ compareMultiValuesArray(option, value = this.formValue) {
202
+ if (option && option.value) {
203
+ const valuesItems = this.valueToArray(option.value);
204
+ const formValueArray = value.map((item, index) => {
205
+ const itemArray = this.valueToArray(item);
206
+ return {
207
+ index,
208
+ item,
209
+ selected: itemArray.some((itemValue) => valuesItems.includes(itemValue)),
210
+ };
211
+ });
212
+ // Remove duplicate items
213
+ const uniqueFormValueArray = Array.from(new Set(formValueArray.map((item) => JSON.stringify(item)))).map((item) => JSON.parse(item));
214
+ return uniqueFormValueArray;
215
+ }
216
+ return [];
217
+ }
161
218
  get selectedLabelMultiCount() {
162
219
  const show = this.showMaxSelectedLabel || 0;
163
220
  const selectedOptions = this.options?.filter((option) => this.formValue?.includes(option.value));
164
- console.log('selectedOptions', selectedOptions);
165
- console.log('show', show);
166
221
  if (!selectedOptions?.length) {
167
222
  return 0;
168
223
  }
@@ -208,7 +263,18 @@ export class SmartSelectComponent {
208
263
  }
209
264
  selectedValue(option) {
210
265
  if (this.multiSelect) {
211
- return this.formValue?.includes(option.value);
266
+ if (typeof option.value === 'object') {
267
+ if (option && option.value) {
268
+ const valuesItems = this.valueToArray(option.value);
269
+ return this.formValue.some((item) => {
270
+ const itemArray = this.valueToArray(item);
271
+ return itemArray.every((itemValue) => valuesItems.includes(itemValue));
272
+ });
273
+ }
274
+ }
275
+ else {
276
+ return this.formValue?.includes(option.value);
277
+ }
212
278
  }
213
279
  return option.value === this.formValue;
214
280
  }
@@ -252,7 +318,7 @@ export class SmartSelectComponent {
252
318
  useExisting: SmartSelectComponent,
253
319
  multi: true,
254
320
  },
255
- ], queries: [{ propertyName: "options", predicate: SmartSelectOptionComponent }], ngImport: i0, template: "<div\n class=\"wco-smartSelect\"\n [ngClass]=\"{\n 'wco-smartSelect--open': showList,\n 'wco-smartSelect--isMobile': isMobile,\n}\"\n (resize)=\"onResize()\"\n (mouseleave)=\"onFocusOut()\"\n>\n <div class=\"form-field\">\n <input\n *ngIf=\"!multiSelect\"\n class=\"form-field__input\"\n [ngClass]=\"{\n 'form-field--error':\n autocompleteControl.invalid && autocompleteControl.touched\n }\"\n [disabled]=\"autocompleteControl.disabled\"\n id=\"{{ inputId ? inputId : '' }}\"\n name=\"{{ inputName ? inputName : '' }}\"\n (click)=\"onFocusIn(true)\"\n (focusin)=\"onFocusIn()\"\n (keyup.escape)=\"onFocusOut()\"\n (keypress)=\"onKeyPress($event)\"\n [placeholder]=\"placeholder\"\n type=\"text\"\n [value]=\"selectedLabel\"\n aria-label=\"Selecione uma op\u00E7\u00E3o\"\n />\n <div\n *ngIf=\"multiSelect\"\n class=\"form-field__input readonly multiSelect\"\n [ngClass]=\"{\n 'form-field--error': autocompleteControl.invalid && autocompleteControl.touched,\n 'form-field--disabled': autocompleteControl.disabled,\n }\"\n (click)=\"onFocusIn(true)\"\n (focusin)=\"onFocusIn()\"\n (keyup.escape)=\"onFocusOut()\"\n >\n <ng-container *ngIf=\"!selectedLabelMulti.length\">\n <span class=\"wco-smart-select-placeholder\">{{ placeholder || 'Selecione uma op\u00E7\u00E3o' }}</span>\n </ng-container>\n <ng-container *ngIf=\"selectedLabelMulti.length\">\n <span *ngFor=\"let optionSelected of selectedLabelMulti\" class=\"wco-smart-select-item\">\n {{optionSelected.label}} \n <span class=\"wco-smart-select-remove\" (click)=\"removeItem(optionSelected)\">\n <span class=\"material-icons\">close</span>\n </span>\n </span>\n <span class=\"wco-smart-select-item\" *ngIf=\"selectedLabelMultiCount >= 1\">\n +{{selectedLabelMultiCount}} \n </span>\n </ng-container>\n </div>\n <label>{{ label }}</label>\n <span class=\"material-icons\">{{ IconMaterial }}</span>\n </div>\n <div\n class=\"wco-smartSelect--box\"\n [ngClass]=\"{\n 'wco-smartSelect--box--open': showList && !autocompleteControl.disabled\n }\"\n >\n <div class=\"wco-smartSelect--isMobile-close\">\n <button\n (click)=\"closeList()\"\n class=\"btn btn-sm btn-primary btn-outline mb-nano\"\n >\n fechar\n </button>\n </div>\n <ul>\n <li\n tabindex=\"0\"\n class=\"wco-smart-selected-filter\"\n *ngIf=\"showList && showSearch\"\n >\n <input\n placeholder=\"buscar\"\n (keyup)=\"onFilter($event)\"\n aria-label=\"Search through site content\"\n type=\"text\"\n />\n </li>\n <li\n *ngFor=\"let option of filteredOptions; let i = index\"\n [tabindex]=\"i + 1\"\n [ngClass]=\"{\n 'wco-smart-selected': selectedValue(option),\n 'wc-smart-select-disabled-option': option.disabled,\n 'wc-smart-select-view-only-option': option.viewOnly,\n }\"\n (click)=\"onSelect(option)\"\n >\n <span class=\"wco-smart-select-label-prefix\">\n <ng-container *ngIf=\"typePrefix === 'checkbox'\">\n <span class=\"material-icons-outlined\">\n {{\n selectedValue(option) ? \"check_box\" : \"check_box_outline_blank\"\n }}\n </span>\n </ng-container>\n <ng-container *ngIf=\"typePrefix === 'radio'\">\n <span class=\"material-icons-outlined\">\n {{\n selectedValue(option)\n ? \"radio_button_checked\"\n : \"radio_button_unchecked\"\n }}\n </span>\n </ng-container>\n <ng-container\n *ngIf=\"\n !!option.iconPrefix &&\n typePrefix !== 'radio' &&\n typePrefix !== 'checkbox'\n \"\n >\n <span class=\"material-icons-outlined\">\n {{ option.iconPrefix }}\n </span>\n </ng-container>\n </span>\n <span\n class=\"wco-smart-select-label\"\n [innerHTML]=\"option.htmlLabel\"\n ></span>\n </li>\n <li *ngIf=\"!filteredOptions.length\">\n <p class=\"display-body\">{{ textEmpty }}</p>\n </li>\n </ul>\n </div>\n</div>\n", styles: [".wco-smartSelect{width:100%;position:relative;display:inline-block;--wco-smart-select-box-height: 0px;--wco-smart-select-box-max-height: 300px;--wco-smart-select-box-radius: 8px;--wco-smart-select-box-shadow: var(--wco-shadow-level-1, 0 2px 4px rgba(0, 0, 0, .2));--wco-smart-select-box-default-color-label: var(--wco-color-neutral-900, #000);--wco-smart-select-box-default-color-bg: var(--wco-color-neutral-100, #e0e0e0);--wco-smart-select-box-default-padding: var(--wco-spacing-nano) var(--wco-spacing-xxxs);--wco-smart-select-box-hover-color-label: var(--wco-color-neutral-900, #000);--wco-smart-select-box-hover-color-bg: var(--wco-color-neutral-300, #bdbdbd);--wco-smart-select-box-selected-color-label: var(--wco-color-neutral-900, #000);--wco-smart-select-box-selected-color-bg: var(--wco-color-primary-100, #819ed3);--wco-smart-select-option-disabled-bg: var(--wco-color-neutral-100, #e0e0e0);--wco-smart-select-option-disabled-color: var(--wco-color-neutral-500, #9e9e9e);--wco-smart-select-box-option-height: 48px}.wco-smartSelect--open{--wco-smart-select-box-height: auto }.wco-smartSelect.wco-smartSelect--isMobile .wco-smartSelect--isMobile-close{display:flex;padding:var(--wco-spacing-nano);align-items:center;justify-content:flex-end}.wco-smartSelect.wco-smartSelect--isMobile .wco-smartSelect--box{position:fixed;bottom:0;left:0;width:100%}.wco-smartSelect.wco-smartSelect--isMobile .wco-smartSelect--box.wco-smartSelect--box--open{padding:0}.wco-smartSelect.wco-smartSelect--isMobile .wco-smartSelect--box.wco-smartSelect--box--open ul,.wco-smartSelect.wco-smartSelect--isMobile .wco-smartSelect--box.wco-smartSelect--box--open input{border-radius:0}.wco-smartSelect .wco-smartSelect--isMobile-close{display:none}.wco-smartSelect input{cursor:pointer}.wco-smartSelect .form-field__input.multiSelect{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:var(--wco-spacing-nano);padding-right:var(--wco-spacing-sm)}.wco-smartSelect .form-field__input.multiSelect .wco-smart-select-placeholder{opacity:.5}.wco-smartSelect .form-field__input.multiSelect .wco-smart-select-item{display:inline-flex;align-items:center;justify-content:center;padding:var(--wco-spacing-quark) var(--wco-spacing-xxs);border-radius:var(--wco-smart-select-box-radius);background-color:var(--wco-smart-select-box-default-color-bg);position:relative}.wco-smartSelect .form-field__input.multiSelect .wco-smart-select-item:hover>span{width:calc(var(--wco-spacing-xxs) - 2px)}.wco-smartSelect .form-field__input.multiSelect .wco-smart-select-item>span{position:absolute;right:0;top:50%;transform:translateY(-50%);border-radius:0 var(--wco-smart-select-box-radius) var(--wco-smart-select-box-radius) 0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;height:100%;width:0px;transition:width .1s linear,margin .1s linear;overflow:hidden;z-index:1}.wco-smartSelect .form-field__input.multiSelect .wco-smart-select-item>span>span{font-size:var(--wco-font-size-xxxs);font-weight:400;line-height:var(--wco-font-lineheight-500);letter-spacing:.4px;color:var(--wco-smart-select-box-default-color-label)}.wco-smartSelect .form-field__input.multiSelect .wco-smart-select-item>span:hover{color:var(--wco-smart-select-box-hover-color-label);background-color:var(--wco-smart-select-box-hover-color-bg)}.wco-smartSelect .wco-smartSelect--box{position:absolute;left:-12px;width:calc(100% + 24px);z-index:999;display:grid;grid-template-columns:1fr;grid-template-rows:var(--wco-smart-select-box-height, 0px);max-height:var(--wco-smart-select-box-max-height);transition:all .4s ease-in-out,padding 0ms linear;padding:0;opacity:0;visibility:hidden;pointer-events:none}.wco-smartSelect .wco-smartSelect--box.wco-smartSelect--box--open{pointer-events:all;padding:var(--wco-spacing-nano) var(--wco-spacing-xxxs) var(--wco-spacing-xxxs) var(--wco-spacing-xxxs);animation:introSmartSelectBox .4s ease-in-out .1s forwards}@keyframes introSmartSelectBox{0%{opacity:0;visibility:hidden;transform:translateY(-10px)}to{opacity:1;visibility:visible;transform:translateY(0)}}.wco-smartSelect .wco-smartSelect--box ul{border-top:none;border-radius:var(--wco-smart-select-box-radius);box-shadow:var(--wco-smart-select-box-shadow);background-color:var(--wco-smart-select-box-default-color-bg);overflow-y:auto;overflow-x:hidden;max-height:var(--wco-smart-select-box-max-height)}.wco-smartSelect .wco-smartSelect--box ul::-webkit-scrollbar{width:8px}.wco-smartSelect .wco-smartSelect--box ul::-webkit-scrollbar-track{background-color:transparent}.wco-smartSelect .wco-smartSelect--box ul::-webkit-scrollbar-thumb{border-radius:99px;background-color:var(--wco-color-neutral-500, #9e9e9e)}.wco-smartSelect .wco-smartSelect--box ul li{color:var(--wco-smart-select-box-default-color-label);padding:var(--wco-smart-select-box-default-padding);display:grid;width:100%;align-items:center;justify-content:flex-start;grid-template-columns:auto 1fr auto;gap:var(--wco-spacing-xxxs);font-family:var(--wco-font-family);font-size:var(--wco-font-size-xs);font-weight:400;line-height:var(--wco-font-lineheight-500);letter-spacing:.4px;min-height:var(--wco-smart-select-box-option-height)}.wco-smartSelect .wco-smartSelect--box ul li .wco-smart-select-label-prefix{display:inline-flex;align-items:center}.wco-smartSelect .wco-smartSelect--box ul li.wco-smart-selected-filter{padding:0;align-items:stretch;display:flex}.wco-smartSelect .wco-smartSelect--box ul li.wco-smart-selected-filter input{width:100%;height:auto;padding:var(--wco-smart-select-box-default-padding);border:none;border-bottom:1px solid #ccc;border-radius:var(--wco-smart-select-box-radius) var(--wco-smart-select-box-radius) 0 0}.wco-smartSelect .wco-smartSelect--box ul li.wco-smart-selected-filter input:focus{outline:none}.wco-smartSelect .wco-smartSelect--box ul li:not(.wc-smart-select-view-only-option):not(.wc-smart-select-disabled-option):not(.wco-smart-selected-filter){cursor:pointer}.wco-smartSelect .wco-smartSelect--box ul li:not(.wc-smart-select-view-only-option):not(.wc-smart-select-disabled-option):not(.wco-smart-selected-filter):hover{background-color:var(--wco-smart-select-box-hover-color-bg);color:var(--wco-smart-select-box-hover-color-label);cursor:pointer}.wco-smartSelect .wco-smartSelect--box ul li:not(.wc-smart-select-view-only-option):not(.wc-smart-select-disabled-option):not(.wco-smart-selected-filter):focus,.wco-smartSelect .wco-smartSelect--box ul li:not(.wc-smart-select-view-only-option):not(.wc-smart-select-disabled-option):not(.wco-smart-selected-filter):active{background-color:var(--wco-smart-select-box-selected-color-bg);color:var(--wco-smart-select-box-selected-color-label)}.wco-smartSelect .wco-smartSelect--box ul li:not(.wc-smart-select-view-only-option):not(.wc-smart-select-disabled-option):not(.wco-smart-selected-filter).wco-smart-selected{background-color:var(--wco-smart-select-box-selected-color-bg);color:var(--wco-smart-select-box-selected-color-label);font-weight:600}.wco-smartSelect .wco-smartSelect--box ul li.wc-smart-select-disabled-option{background-color:var(--wco-smart-select-option-disabled-bg);color:var(--wco-smart-select-option-disabled-color);cursor:not-allowed}.wco-smartSelect .wco-smartSelect--box ul li.wc-smart-select-disabled-option .wco-smart-select-remove{display:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: FormsModule }], encapsulation: i0.ViewEncapsulation.None });
321
+ ], queries: [{ propertyName: "options", predicate: SmartSelectOptionComponent }], ngImport: i0, template: "<div\n class=\"wco-smartSelect\"\n [ngClass]=\"{\n 'wco-smartSelect--open': showList,\n 'wco-smartSelect--isMobile': isMobile,\n}\"\n (resize)=\"onResize()\"\n (mouseleave)=\"onFocusOut()\"\n>\n <div class=\"form-field\">\n <input\n *ngIf=\"!multiSelect\"\n class=\"form-field__input\"\n [ngClass]=\"{\n 'form-field--error':\n autocompleteControl.invalid && autocompleteControl.touched\n }\"\n [disabled]=\"autocompleteControl.disabled\"\n id=\"{{ inputId ? inputId : '' }}\"\n name=\"{{ inputName ? inputName : '' }}\"\n (click)=\"onFocusIn(true)\"\n (focusin)=\"onFocusIn()\"\n (keyup.escape)=\"onFocusOut()\"\n (keypress)=\"onKeyPress($event)\"\n [placeholder]=\"placeholder\"\n type=\"text\"\n [value]=\"selectedLabel\"\n aria-label=\"Selecione uma op\u00E7\u00E3o\"\n />\n <div\n *ngIf=\"multiSelect\"\n class=\"form-field__input readonly multiSelect\"\n [ngClass]=\"{\n 'form-field--error': autocompleteControl.invalid && autocompleteControl.touched,\n 'form-field--disabled': autocompleteControl.disabled,\n }\"\n (click)=\"onFocusIn(true)\"\n (focusin)=\"onFocusIn()\"\n (keyup.escape)=\"onFocusOut()\"\n >\n <ng-container *ngIf=\"!selectedLabelMulti.length\">\n <span class=\"wco-smart-select-placeholder\">{{ placeholder || 'Selecione uma op\u00E7\u00E3o' }}</span>\n </ng-container>\n <ng-container *ngIf=\"selectedLabelMulti.length\">\n <span *ngFor=\"let optionSelected of selectedLabelMulti\" class=\"wco-smart-select-item\">\n {{optionSelected.label}} \n <span class=\"wco-smart-select-remove\" (click)=\"removeItem(optionSelected)\">\n <span class=\"material-icons\">close</span>\n </span>\n </span>\n <span class=\"wco-smart-select-item\" *ngIf=\"selectedLabelMultiCount >= 1\">\n +{{selectedLabelMultiCount}} \n </span>\n </ng-container>\n </div>\n <label>{{ label }}</label>\n <span class=\"material-icons\">{{ IconMaterial }}</span>\n </div>\n <div\n class=\"wco-smartSelect--box\"\n [ngClass]=\"{\n 'wco-smartSelect--box--open': showList && !autocompleteControl.disabled\n }\"\n >\n <div class=\"wco-smartSelect--isMobile-close\">\n <button\n (click)=\"closeList()\"\n class=\"btn btn-sm btn-primary btn-outline mb-nano\"\n >\n fechar\n </button>\n </div>\n <ul>\n <li\n tabindex=\"0\"\n class=\"wco-smart-selected-filter\"\n *ngIf=\"showList && showSearch\"\n >\n <input\n placeholder=\"buscar\"\n (keyup)=\"onFilter($event)\"\n aria-label=\"Search through site content\"\n type=\"text\"\n />\n </li>\n <li\n *ngFor=\"let option of filteredOptions; let i = index\"\n [tabindex]=\"i + 1\"\n [ngClass]=\"{\n 'wco-smart-selected': selectedValue(option),\n 'wc-smart-select-disabled-option': option.disabled,\n 'wc-smart-select-view-only-option': option.viewOnly,\n }\"\n (click)=\"onSelect(option)\"\n >\n <span class=\"wco-smart-select-label-prefix\">\n <ng-container *ngIf=\"typePrefix === 'checkbox'\">\n <span class=\"material-icons-outlined\">\n {{\n selectedValue(option) ? \"check_box\" : \"check_box_outline_blank\"\n }}\n </span>\n </ng-container>\n <ng-container *ngIf=\"typePrefix === 'radio'\">\n <span class=\"material-icons-outlined\">\n {{\n selectedValue(option)\n ? \"radio_button_checked\"\n : \"radio_button_unchecked\"\n }}\n </span>\n </ng-container>\n <ng-container\n *ngIf=\"\n !!option.iconPrefix &&\n typePrefix !== 'radio' &&\n typePrefix !== 'checkbox'\n \"\n >\n <span class=\"material-icons-outlined\">\n {{ option.iconPrefix }}\n </span>\n </ng-container>\n </span>\n <span\n class=\"wco-smart-select-label\"\n [innerHTML]=\"option.htmlLabel\"\n ></span>\n </li>\n <li *ngIf=\"!filteredOptions.length\">\n <p class=\"display-body\">{{ textEmpty }}</p>\n </li>\n </ul>\n </div>\n</div>\n", styles: [".wco-smartSelect{width:100%;position:relative;display:inline-block;--wco-smart-select-box-height: 0px;--wco-smart-select-box-max-height: 300px;--wco-smart-select-box-radius: 8px;--wco-smart-select-box-shadow: var(--wco-shadow-level-1, 0 2px 4px rgba(0, 0, 0, .2));--wco-smart-select-box-default-color-label: var(--wco-color-neutral-900, #000);--wco-smart-select-box-default-color-bg: var(--wco-color-neutral-100, #e0e0e0);--wco-smart-select-box-default-padding: var(--wco-spacing-nano) var(--wco-spacing-xxxs);--wco-smart-select-box-hover-color-label: var(--wco-color-neutral-900, #000);--wco-smart-select-box-hover-color-bg: var(--wco-color-neutral-300, #bdbdbd);--wco-smart-select-box-selected-color-label: var(--wco-color-neutral-900, #000);--wco-smart-select-box-selected-color-bg: var(--wco-color-primary-100, #819ed3);--wco-smart-select-option-disabled-bg: var(--wco-color-neutral-100, #e0e0e0);--wco-smart-select-option-disabled-color: var(--wco-color-neutral-500, #9e9e9e);--wco-smart-select-box-option-height: 48px}.wco-smartSelect--open{--wco-smart-select-box-height: auto }.wco-smartSelect.wco-smartSelect--isMobile .wco-smartSelect--isMobile-close{display:flex;padding:var(--wco-spacing-nano);align-items:center;justify-content:flex-end}.wco-smartSelect.wco-smartSelect--isMobile .wco-smartSelect--box{position:fixed;bottom:0;left:0;width:100%}.wco-smartSelect.wco-smartSelect--isMobile .wco-smartSelect--box.wco-smartSelect--box--open{padding:0}.wco-smartSelect.wco-smartSelect--isMobile .wco-smartSelect--box.wco-smartSelect--box--open ul,.wco-smartSelect.wco-smartSelect--isMobile .wco-smartSelect--box.wco-smartSelect--box--open input{border-radius:0}.wco-smartSelect .wco-smartSelect--isMobile-close{display:none}.wco-smartSelect input{cursor:pointer}.wco-smartSelect .form-field__input.multiSelect{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:var(--wco-spacing-nano);padding-right:var(--wco-spacing-sm)}.wco-smartSelect .form-field__input.multiSelect .wco-smart-select-placeholder{opacity:.5}.wco-smartSelect .form-field__input.multiSelect .wco-smart-select-item{display:inline-flex;align-items:center;justify-content:center;padding:var(--wco-spacing-quark) var(--wco-spacing-xxs);border-radius:var(--wco-smart-select-box-radius);background-color:var(--wco-smart-select-box-default-color-bg);position:relative}.wco-smartSelect .form-field__input.multiSelect .wco-smart-select-item:hover>span{width:calc(var(--wco-spacing-xxs) - 2px)}.wco-smartSelect .form-field__input.multiSelect .wco-smart-select-item>span{position:absolute;right:0;top:50%;transform:translateY(-50%);border-radius:0 var(--wco-smart-select-box-radius) var(--wco-smart-select-box-radius) 0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;height:100%;width:0px;transition:width .1s linear,margin .1s linear;overflow:hidden;z-index:1}.wco-smartSelect .form-field__input.multiSelect .wco-smart-select-item>span>span{font-size:var(--wco-font-size-xxxs);font-weight:400;line-height:var(--wco-font-lineheight-500);letter-spacing:.4px;color:var(--wco-smart-select-box-default-color-label)}.wco-smartSelect .form-field__input.multiSelect .wco-smart-select-item>span:hover{color:var(--wco-smart-select-box-hover-color-label);background-color:var(--wco-smart-select-box-hover-color-bg)}.wco-smartSelect .wco-smartSelect--box{position:absolute;left:-12px;width:calc(100% + 24px);z-index:999;display:grid;grid-template-columns:1fr;grid-template-rows:var(--wco-smart-select-box-height, 0px);max-height:var(--wco-smart-select-box-max-height);transition:all .4s ease-in-out,padding 0ms linear;padding:0;opacity:0;visibility:hidden;pointer-events:none}.wco-smartSelect .wco-smartSelect--box.wco-smartSelect--box--open{pointer-events:all;padding:var(--wco-spacing-nano) var(--wco-spacing-xxxs) var(--wco-spacing-xxxs) var(--wco-spacing-xxxs);animation:introSmartSelectBox .4s ease-in-out .1s forwards}@keyframes introSmartSelectBox{0%{opacity:0;visibility:hidden;transform:translateY(-10px)}to{opacity:1;visibility:visible;transform:translateY(0)}}.wco-smartSelect .wco-smartSelect--box ul{border-top:none;border-radius:var(--wco-smart-select-box-radius);box-shadow:var(--wco-smart-select-box-shadow);background-color:var(--wco-smart-select-box-default-color-bg);overflow-y:auto;overflow-x:hidden;max-height:var(--wco-smart-select-box-max-height)}.wco-smartSelect .wco-smartSelect--box ul::-webkit-scrollbar{width:8px}.wco-smartSelect .wco-smartSelect--box ul::-webkit-scrollbar-track{background-color:transparent}.wco-smartSelect .wco-smartSelect--box ul::-webkit-scrollbar-thumb{border-radius:99px;background-color:var(--wco-color-neutral-500, #9e9e9e)}.wco-smartSelect .wco-smartSelect--box ul li{color:var(--wco-smart-select-box-default-color-label);padding:var(--wco-smart-select-box-default-padding);display:grid;width:100%;align-items:center;justify-content:flex-start;grid-template-columns:auto 1fr auto;gap:var(--wco-spacing-xxxs);font-family:var(--wco-font-family);font-size:var(--wco-font-size-xs);font-weight:400;line-height:var(--wco-font-lineheight-500);letter-spacing:.4px;min-height:var(--wco-smart-select-box-option-height)}.wco-smartSelect .wco-smartSelect--box ul li .wco-smart-select-label-prefix{display:inline-flex;align-items:center}.wco-smartSelect .wco-smartSelect--box ul li.wco-smart-selected-filter{padding:0;align-items:stretch;display:flex}.wco-smartSelect .wco-smartSelect--box ul li.wco-smart-selected-filter input{width:100%;height:auto;padding:var(--wco-smart-select-box-default-padding);border:none;border-bottom:1px solid #ccc;border-radius:var(--wco-smart-select-box-radius) var(--wco-smart-select-box-radius) 0 0}.wco-smartSelect .wco-smartSelect--box ul li.wco-smart-selected-filter input:focus{outline:none}.wco-smartSelect .wco-smartSelect--box ul li:not(.wc-smart-select-view-only-option):not(.wc-smart-select-disabled-option):not(.wco-smart-selected-filter){cursor:pointer}.wco-smartSelect .wco-smartSelect--box ul li:not(.wc-smart-select-view-only-option):not(.wc-smart-select-disabled-option):not(.wco-smart-selected-filter):hover{background-color:var(--wco-smart-select-box-hover-color-bg);color:var(--wco-smart-select-box-hover-color-label);cursor:pointer}.wco-smartSelect .wco-smartSelect--box ul li:not(.wc-smart-select-view-only-option):not(.wc-smart-select-disabled-option):not(.wco-smart-selected-filter):focus,.wco-smartSelect .wco-smartSelect--box ul li:not(.wc-smart-select-view-only-option):not(.wc-smart-select-disabled-option):not(.wco-smart-selected-filter):active{background-color:var(--wco-smart-select-box-selected-color-bg);color:var(--wco-smart-select-box-selected-color-label)}.wco-smartSelect .wco-smartSelect--box ul li:not(.wc-smart-select-view-only-option):not(.wc-smart-select-disabled-option):not(.wco-smart-selected-filter).wco-smart-selected{background-color:var(--wco-smart-select-box-selected-color-bg);color:var(--wco-smart-select-box-selected-color-label);font-weight:600}.wco-smartSelect .wco-smartSelect--box ul li.wc-smart-select-disabled-option{background-color:var(--wco-smart-select-option-disabled-bg);color:var(--wco-smart-select-option-disabled-color);cursor:not-allowed}.wco-smartSelect .wco-smartSelect--box ul li.wc-smart-select-disabled-option .wco-smart-select-remove{display:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: FormsModule }], encapsulation: i0.ViewEncapsulation.None });
256
322
  }
257
323
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SmartSelectComponent, decorators: [{
258
324
  type: Component,
@@ -267,7 +333,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
267
333
  useExisting: SmartSelectComponent,
268
334
  multi: true,
269
335
  },
270
- ], template: "<div\n class=\"wco-smartSelect\"\n [ngClass]=\"{\n 'wco-smartSelect--open': showList,\n 'wco-smartSelect--isMobile': isMobile,\n}\"\n (resize)=\"onResize()\"\n (mouseleave)=\"onFocusOut()\"\n>\n <div class=\"form-field\">\n <input\n *ngIf=\"!multiSelect\"\n class=\"form-field__input\"\n [ngClass]=\"{\n 'form-field--error':\n autocompleteControl.invalid && autocompleteControl.touched\n }\"\n [disabled]=\"autocompleteControl.disabled\"\n id=\"{{ inputId ? inputId : '' }}\"\n name=\"{{ inputName ? inputName : '' }}\"\n (click)=\"onFocusIn(true)\"\n (focusin)=\"onFocusIn()\"\n (keyup.escape)=\"onFocusOut()\"\n (keypress)=\"onKeyPress($event)\"\n [placeholder]=\"placeholder\"\n type=\"text\"\n [value]=\"selectedLabel\"\n aria-label=\"Selecione uma op\u00E7\u00E3o\"\n />\n <div\n *ngIf=\"multiSelect\"\n class=\"form-field__input readonly multiSelect\"\n [ngClass]=\"{\n 'form-field--error': autocompleteControl.invalid && autocompleteControl.touched,\n 'form-field--disabled': autocompleteControl.disabled,\n }\"\n (click)=\"onFocusIn(true)\"\n (focusin)=\"onFocusIn()\"\n (keyup.escape)=\"onFocusOut()\"\n >\n <ng-container *ngIf=\"!selectedLabelMulti.length\">\n <span class=\"wco-smart-select-placeholder\">{{ placeholder || 'Selecione uma op\u00E7\u00E3o' }}</span>\n </ng-container>\n <ng-container *ngIf=\"selectedLabelMulti.length\">\n <span *ngFor=\"let optionSelected of selectedLabelMulti\" class=\"wco-smart-select-item\">\n {{optionSelected.label}} \n <span class=\"wco-smart-select-remove\" (click)=\"removeItem(optionSelected)\">\n <span class=\"material-icons\">close</span>\n </span>\n </span>\n <span class=\"wco-smart-select-item\" *ngIf=\"selectedLabelMultiCount >= 1\">\n +{{selectedLabelMultiCount}} \n </span>\n </ng-container>\n </div>\n <label>{{ label }}</label>\n <span class=\"material-icons\">{{ IconMaterial }}</span>\n </div>\n <div\n class=\"wco-smartSelect--box\"\n [ngClass]=\"{\n 'wco-smartSelect--box--open': showList && !autocompleteControl.disabled\n }\"\n >\n <div class=\"wco-smartSelect--isMobile-close\">\n <button\n (click)=\"closeList()\"\n class=\"btn btn-sm btn-primary btn-outline mb-nano\"\n >\n fechar\n </button>\n </div>\n <ul>\n <li\n tabindex=\"0\"\n class=\"wco-smart-selected-filter\"\n *ngIf=\"showList && showSearch\"\n >\n <input\n placeholder=\"buscar\"\n (keyup)=\"onFilter($event)\"\n aria-label=\"Search through site content\"\n type=\"text\"\n />\n </li>\n <li\n *ngFor=\"let option of filteredOptions; let i = index\"\n [tabindex]=\"i + 1\"\n [ngClass]=\"{\n 'wco-smart-selected': selectedValue(option),\n 'wc-smart-select-disabled-option': option.disabled,\n 'wc-smart-select-view-only-option': option.viewOnly,\n }\"\n (click)=\"onSelect(option)\"\n >\n <span class=\"wco-smart-select-label-prefix\">\n <ng-container *ngIf=\"typePrefix === 'checkbox'\">\n <span class=\"material-icons-outlined\">\n {{\n selectedValue(option) ? \"check_box\" : \"check_box_outline_blank\"\n }}\n </span>\n </ng-container>\n <ng-container *ngIf=\"typePrefix === 'radio'\">\n <span class=\"material-icons-outlined\">\n {{\n selectedValue(option)\n ? \"radio_button_checked\"\n : \"radio_button_unchecked\"\n }}\n </span>\n </ng-container>\n <ng-container\n *ngIf=\"\n !!option.iconPrefix &&\n typePrefix !== 'radio' &&\n typePrefix !== 'checkbox'\n \"\n >\n <span class=\"material-icons-outlined\">\n {{ option.iconPrefix }}\n </span>\n </ng-container>\n </span>\n <span\n class=\"wco-smart-select-label\"\n [innerHTML]=\"option.htmlLabel\"\n ></span>\n </li>\n <li *ngIf=\"!filteredOptions.length\">\n <p class=\"display-body\">{{ textEmpty }}</p>\n </li>\n </ul>\n </div>\n</div>\n", styles: [".wco-smartSelect{width:100%;position:relative;display:inline-block;--wco-smart-select-box-height: 0px;--wco-smart-select-box-max-height: 300px;--wco-smart-select-box-radius: 8px;--wco-smart-select-box-shadow: var(--wco-shadow-level-1, 0 2px 4px rgba(0, 0, 0, .2));--wco-smart-select-box-default-color-label: var(--wco-color-neutral-900, #000);--wco-smart-select-box-default-color-bg: var(--wco-color-neutral-100, #e0e0e0);--wco-smart-select-box-default-padding: var(--wco-spacing-nano) var(--wco-spacing-xxxs);--wco-smart-select-box-hover-color-label: var(--wco-color-neutral-900, #000);--wco-smart-select-box-hover-color-bg: var(--wco-color-neutral-300, #bdbdbd);--wco-smart-select-box-selected-color-label: var(--wco-color-neutral-900, #000);--wco-smart-select-box-selected-color-bg: var(--wco-color-primary-100, #819ed3);--wco-smart-select-option-disabled-bg: var(--wco-color-neutral-100, #e0e0e0);--wco-smart-select-option-disabled-color: var(--wco-color-neutral-500, #9e9e9e);--wco-smart-select-box-option-height: 48px}.wco-smartSelect--open{--wco-smart-select-box-height: auto }.wco-smartSelect.wco-smartSelect--isMobile .wco-smartSelect--isMobile-close{display:flex;padding:var(--wco-spacing-nano);align-items:center;justify-content:flex-end}.wco-smartSelect.wco-smartSelect--isMobile .wco-smartSelect--box{position:fixed;bottom:0;left:0;width:100%}.wco-smartSelect.wco-smartSelect--isMobile .wco-smartSelect--box.wco-smartSelect--box--open{padding:0}.wco-smartSelect.wco-smartSelect--isMobile .wco-smartSelect--box.wco-smartSelect--box--open ul,.wco-smartSelect.wco-smartSelect--isMobile .wco-smartSelect--box.wco-smartSelect--box--open input{border-radius:0}.wco-smartSelect .wco-smartSelect--isMobile-close{display:none}.wco-smartSelect input{cursor:pointer}.wco-smartSelect .form-field__input.multiSelect{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:var(--wco-spacing-nano);padding-right:var(--wco-spacing-sm)}.wco-smartSelect .form-field__input.multiSelect .wco-smart-select-placeholder{opacity:.5}.wco-smartSelect .form-field__input.multiSelect .wco-smart-select-item{display:inline-flex;align-items:center;justify-content:center;padding:var(--wco-spacing-quark) var(--wco-spacing-xxs);border-radius:var(--wco-smart-select-box-radius);background-color:var(--wco-smart-select-box-default-color-bg);position:relative}.wco-smartSelect .form-field__input.multiSelect .wco-smart-select-item:hover>span{width:calc(var(--wco-spacing-xxs) - 2px)}.wco-smartSelect .form-field__input.multiSelect .wco-smart-select-item>span{position:absolute;right:0;top:50%;transform:translateY(-50%);border-radius:0 var(--wco-smart-select-box-radius) var(--wco-smart-select-box-radius) 0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;height:100%;width:0px;transition:width .1s linear,margin .1s linear;overflow:hidden;z-index:1}.wco-smartSelect .form-field__input.multiSelect .wco-smart-select-item>span>span{font-size:var(--wco-font-size-xxxs);font-weight:400;line-height:var(--wco-font-lineheight-500);letter-spacing:.4px;color:var(--wco-smart-select-box-default-color-label)}.wco-smartSelect .form-field__input.multiSelect .wco-smart-select-item>span:hover{color:var(--wco-smart-select-box-hover-color-label);background-color:var(--wco-smart-select-box-hover-color-bg)}.wco-smartSelect .wco-smartSelect--box{position:absolute;left:-12px;width:calc(100% + 24px);z-index:999;display:grid;grid-template-columns:1fr;grid-template-rows:var(--wco-smart-select-box-height, 0px);max-height:var(--wco-smart-select-box-max-height);transition:all .4s ease-in-out,padding 0ms linear;padding:0;opacity:0;visibility:hidden;pointer-events:none}.wco-smartSelect .wco-smartSelect--box.wco-smartSelect--box--open{pointer-events:all;padding:var(--wco-spacing-nano) var(--wco-spacing-xxxs) var(--wco-spacing-xxxs) var(--wco-spacing-xxxs);animation:introSmartSelectBox .4s ease-in-out .1s forwards}@keyframes introSmartSelectBox{0%{opacity:0;visibility:hidden;transform:translateY(-10px)}to{opacity:1;visibility:visible;transform:translateY(0)}}.wco-smartSelect .wco-smartSelect--box ul{border-top:none;border-radius:var(--wco-smart-select-box-radius);box-shadow:var(--wco-smart-select-box-shadow);background-color:var(--wco-smart-select-box-default-color-bg);overflow-y:auto;overflow-x:hidden;max-height:var(--wco-smart-select-box-max-height)}.wco-smartSelect .wco-smartSelect--box ul::-webkit-scrollbar{width:8px}.wco-smartSelect .wco-smartSelect--box ul::-webkit-scrollbar-track{background-color:transparent}.wco-smartSelect .wco-smartSelect--box ul::-webkit-scrollbar-thumb{border-radius:99px;background-color:var(--wco-color-neutral-500, #9e9e9e)}.wco-smartSelect .wco-smartSelect--box ul li{color:var(--wco-smart-select-box-default-color-label);padding:var(--wco-smart-select-box-default-padding);display:grid;width:100%;align-items:center;justify-content:flex-start;grid-template-columns:auto 1fr auto;gap:var(--wco-spacing-xxxs);font-family:var(--wco-font-family);font-size:var(--wco-font-size-xs);font-weight:400;line-height:var(--wco-font-lineheight-500);letter-spacing:.4px;min-height:var(--wco-smart-select-box-option-height)}.wco-smartSelect .wco-smartSelect--box ul li .wco-smart-select-label-prefix{display:inline-flex;align-items:center}.wco-smartSelect .wco-smartSelect--box ul li.wco-smart-selected-filter{padding:0;align-items:stretch;display:flex}.wco-smartSelect .wco-smartSelect--box ul li.wco-smart-selected-filter input{width:100%;height:auto;padding:var(--wco-smart-select-box-default-padding);border:none;border-bottom:1px solid #ccc;border-radius:var(--wco-smart-select-box-radius) var(--wco-smart-select-box-radius) 0 0}.wco-smartSelect .wco-smartSelect--box ul li.wco-smart-selected-filter input:focus{outline:none}.wco-smartSelect .wco-smartSelect--box ul li:not(.wc-smart-select-view-only-option):not(.wc-smart-select-disabled-option):not(.wco-smart-selected-filter){cursor:pointer}.wco-smartSelect .wco-smartSelect--box ul li:not(.wc-smart-select-view-only-option):not(.wc-smart-select-disabled-option):not(.wco-smart-selected-filter):hover{background-color:var(--wco-smart-select-box-hover-color-bg);color:var(--wco-smart-select-box-hover-color-label);cursor:pointer}.wco-smartSelect .wco-smartSelect--box ul li:not(.wc-smart-select-view-only-option):not(.wc-smart-select-disabled-option):not(.wco-smart-selected-filter):focus,.wco-smartSelect .wco-smartSelect--box ul li:not(.wc-smart-select-view-only-option):not(.wc-smart-select-disabled-option):not(.wco-smart-selected-filter):active{background-color:var(--wco-smart-select-box-selected-color-bg);color:var(--wco-smart-select-box-selected-color-label)}.wco-smartSelect .wco-smartSelect--box ul li:not(.wc-smart-select-view-only-option):not(.wc-smart-select-disabled-option):not(.wco-smart-selected-filter).wco-smart-selected{background-color:var(--wco-smart-select-box-selected-color-bg);color:var(--wco-smart-select-box-selected-color-label);font-weight:600}.wco-smartSelect .wco-smartSelect--box ul li.wc-smart-select-disabled-option{background-color:var(--wco-smart-select-option-disabled-bg);color:var(--wco-smart-select-option-disabled-color);cursor:not-allowed}.wco-smartSelect .wco-smartSelect--box ul li.wc-smart-select-disabled-option .wco-smart-select-remove{display:none}\n"] }]
336
+ ], template: "<div\n class=\"wco-smartSelect\"\n [ngClass]=\"{\n 'wco-smartSelect--open': showList,\n 'wco-smartSelect--isMobile': isMobile,\n}\"\n (resize)=\"onResize()\"\n (mouseleave)=\"onFocusOut()\"\n>\n <div class=\"form-field\">\n <input\n *ngIf=\"!multiSelect\"\n class=\"form-field__input\"\n [ngClass]=\"{\n 'form-field--error':\n autocompleteControl.invalid && autocompleteControl.touched\n }\"\n [disabled]=\"autocompleteControl.disabled\"\n id=\"{{ inputId ? inputId : '' }}\"\n name=\"{{ inputName ? inputName : '' }}\"\n (click)=\"onFocusIn(true)\"\n (focusin)=\"onFocusIn()\"\n (keyup.escape)=\"onFocusOut()\"\n (keypress)=\"onKeyPress($event)\"\n [placeholder]=\"placeholder\"\n type=\"text\"\n [value]=\"selectedLabel\"\n aria-label=\"Selecione uma op\u00E7\u00E3o\"\n />\n <div\n *ngIf=\"multiSelect\"\n class=\"form-field__input readonly multiSelect\"\n [ngClass]=\"{\n 'form-field--error': autocompleteControl.invalid && autocompleteControl.touched,\n 'form-field--disabled': autocompleteControl.disabled,\n }\"\n (click)=\"onFocusIn(true)\"\n (focusin)=\"onFocusIn()\"\n (keyup.escape)=\"onFocusOut()\"\n >\n <ng-container *ngIf=\"!selectedLabelMulti.length\">\n <span class=\"wco-smart-select-placeholder\">{{ placeholder || 'Selecione uma op\u00E7\u00E3o' }}</span>\n </ng-container>\n <ng-container *ngIf=\"selectedLabelMulti.length\">\n <span *ngFor=\"let optionSelected of selectedLabelMulti\" class=\"wco-smart-select-item\">\n {{optionSelected.label}} \n <span class=\"wco-smart-select-remove\" (click)=\"removeItem(optionSelected)\">\n <span class=\"material-icons\">close</span>\n </span>\n </span>\n <span class=\"wco-smart-select-item\" *ngIf=\"selectedLabelMultiCount >= 1\">\n +{{selectedLabelMultiCount}} \n </span>\n </ng-container>\n </div>\n <label>{{ label }}</label>\n <span class=\"material-icons\">{{ IconMaterial }}</span>\n </div>\n <div\n class=\"wco-smartSelect--box\"\n [ngClass]=\"{\n 'wco-smartSelect--box--open': showList && !autocompleteControl.disabled\n }\"\n >\n <div class=\"wco-smartSelect--isMobile-close\">\n <button\n (click)=\"closeList()\"\n class=\"btn btn-sm btn-primary btn-outline mb-nano\"\n >\n fechar\n </button>\n </div>\n <ul>\n <li\n tabindex=\"0\"\n class=\"wco-smart-selected-filter\"\n *ngIf=\"showList && showSearch\"\n >\n <input\n placeholder=\"buscar\"\n (keyup)=\"onFilter($event)\"\n aria-label=\"Search through site content\"\n type=\"text\"\n />\n </li>\n <li\n *ngFor=\"let option of filteredOptions; let i = index\"\n [tabindex]=\"i + 1\"\n [ngClass]=\"{\n 'wco-smart-selected': selectedValue(option),\n 'wc-smart-select-disabled-option': option.disabled,\n 'wc-smart-select-view-only-option': option.viewOnly,\n }\"\n (click)=\"onSelect(option)\"\n >\n <span class=\"wco-smart-select-label-prefix\">\n <ng-container *ngIf=\"typePrefix === 'checkbox'\">\n <span class=\"material-icons-outlined\">\n {{\n selectedValue(option) ? \"check_box\" : \"check_box_outline_blank\"\n }}\n </span>\n </ng-container>\n <ng-container *ngIf=\"typePrefix === 'radio'\">\n <span class=\"material-icons-outlined\">\n {{\n selectedValue(option)\n ? \"radio_button_checked\"\n : \"radio_button_unchecked\"\n }}\n </span>\n </ng-container>\n <ng-container\n *ngIf=\"\n !!option.iconPrefix &&\n typePrefix !== 'radio' &&\n typePrefix !== 'checkbox'\n \"\n >\n <span class=\"material-icons-outlined\">\n {{ option.iconPrefix }}\n </span>\n </ng-container>\n </span>\n <span\n class=\"wco-smart-select-label\"\n [innerHTML]=\"option.htmlLabel\"\n ></span>\n </li>\n <li *ngIf=\"!filteredOptions.length\">\n <p class=\"display-body\">{{ textEmpty }}</p>\n </li>\n </ul>\n </div>\n</div>\n", styles: [".wco-smartSelect{width:100%;position:relative;display:inline-block;--wco-smart-select-box-height: 0px;--wco-smart-select-box-max-height: 300px;--wco-smart-select-box-radius: 8px;--wco-smart-select-box-shadow: var(--wco-shadow-level-1, 0 2px 4px rgba(0, 0, 0, .2));--wco-smart-select-box-default-color-label: var(--wco-color-neutral-900, #000);--wco-smart-select-box-default-color-bg: var(--wco-color-neutral-100, #e0e0e0);--wco-smart-select-box-default-padding: var(--wco-spacing-nano) var(--wco-spacing-xxxs);--wco-smart-select-box-hover-color-label: var(--wco-color-neutral-900, #000);--wco-smart-select-box-hover-color-bg: var(--wco-color-neutral-300, #bdbdbd);--wco-smart-select-box-selected-color-label: var(--wco-color-neutral-900, #000);--wco-smart-select-box-selected-color-bg: var(--wco-color-primary-100, #819ed3);--wco-smart-select-option-disabled-bg: var(--wco-color-neutral-100, #e0e0e0);--wco-smart-select-option-disabled-color: var(--wco-color-neutral-500, #9e9e9e);--wco-smart-select-box-option-height: 48px}.wco-smartSelect--open{--wco-smart-select-box-height: auto }.wco-smartSelect.wco-smartSelect--isMobile .wco-smartSelect--isMobile-close{display:flex;padding:var(--wco-spacing-nano);align-items:center;justify-content:flex-end}.wco-smartSelect.wco-smartSelect--isMobile .wco-smartSelect--box{position:fixed;bottom:0;left:0;width:100%}.wco-smartSelect.wco-smartSelect--isMobile .wco-smartSelect--box.wco-smartSelect--box--open{padding:0}.wco-smartSelect.wco-smartSelect--isMobile .wco-smartSelect--box.wco-smartSelect--box--open ul,.wco-smartSelect.wco-smartSelect--isMobile .wco-smartSelect--box.wco-smartSelect--box--open input{border-radius:0}.wco-smartSelect .wco-smartSelect--isMobile-close{display:none}.wco-smartSelect input{cursor:pointer}.wco-smartSelect .form-field__input.multiSelect{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:var(--wco-spacing-nano);padding-right:var(--wco-spacing-sm)}.wco-smartSelect .form-field__input.multiSelect .wco-smart-select-placeholder{opacity:.5}.wco-smartSelect .form-field__input.multiSelect .wco-smart-select-item{display:inline-flex;align-items:center;justify-content:center;padding:var(--wco-spacing-quark) var(--wco-spacing-xxs);border-radius:var(--wco-smart-select-box-radius);background-color:var(--wco-smart-select-box-default-color-bg);position:relative}.wco-smartSelect .form-field__input.multiSelect .wco-smart-select-item:hover>span{width:calc(var(--wco-spacing-xxs) - 2px)}.wco-smartSelect .form-field__input.multiSelect .wco-smart-select-item>span{position:absolute;right:0;top:50%;transform:translateY(-50%);border-radius:0 var(--wco-smart-select-box-radius) var(--wco-smart-select-box-radius) 0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;height:100%;width:0px;transition:width .1s linear,margin .1s linear;overflow:hidden;z-index:1}.wco-smartSelect .form-field__input.multiSelect .wco-smart-select-item>span>span{font-size:var(--wco-font-size-xxxs);font-weight:400;line-height:var(--wco-font-lineheight-500);letter-spacing:.4px;color:var(--wco-smart-select-box-default-color-label)}.wco-smartSelect .form-field__input.multiSelect .wco-smart-select-item>span:hover{color:var(--wco-smart-select-box-hover-color-label);background-color:var(--wco-smart-select-box-hover-color-bg)}.wco-smartSelect .wco-smartSelect--box{position:absolute;left:-12px;width:calc(100% + 24px);z-index:999;display:grid;grid-template-columns:1fr;grid-template-rows:var(--wco-smart-select-box-height, 0px);max-height:var(--wco-smart-select-box-max-height);transition:all .4s ease-in-out,padding 0ms linear;padding:0;opacity:0;visibility:hidden;pointer-events:none}.wco-smartSelect .wco-smartSelect--box.wco-smartSelect--box--open{pointer-events:all;padding:var(--wco-spacing-nano) var(--wco-spacing-xxxs) var(--wco-spacing-xxxs) var(--wco-spacing-xxxs);animation:introSmartSelectBox .4s ease-in-out .1s forwards}@keyframes introSmartSelectBox{0%{opacity:0;visibility:hidden;transform:translateY(-10px)}to{opacity:1;visibility:visible;transform:translateY(0)}}.wco-smartSelect .wco-smartSelect--box ul{border-top:none;border-radius:var(--wco-smart-select-box-radius);box-shadow:var(--wco-smart-select-box-shadow);background-color:var(--wco-smart-select-box-default-color-bg);overflow-y:auto;overflow-x:hidden;max-height:var(--wco-smart-select-box-max-height)}.wco-smartSelect .wco-smartSelect--box ul::-webkit-scrollbar{width:8px}.wco-smartSelect .wco-smartSelect--box ul::-webkit-scrollbar-track{background-color:transparent}.wco-smartSelect .wco-smartSelect--box ul::-webkit-scrollbar-thumb{border-radius:99px;background-color:var(--wco-color-neutral-500, #9e9e9e)}.wco-smartSelect .wco-smartSelect--box ul li{color:var(--wco-smart-select-box-default-color-label);padding:var(--wco-smart-select-box-default-padding);display:grid;width:100%;align-items:center;justify-content:flex-start;grid-template-columns:auto 1fr auto;gap:var(--wco-spacing-xxxs);font-family:var(--wco-font-family);font-size:var(--wco-font-size-xs);font-weight:400;line-height:var(--wco-font-lineheight-500);letter-spacing:.4px;min-height:var(--wco-smart-select-box-option-height)}.wco-smartSelect .wco-smartSelect--box ul li .wco-smart-select-label-prefix{display:inline-flex;align-items:center}.wco-smartSelect .wco-smartSelect--box ul li.wco-smart-selected-filter{padding:0;align-items:stretch;display:flex}.wco-smartSelect .wco-smartSelect--box ul li.wco-smart-selected-filter input{width:100%;height:auto;padding:var(--wco-smart-select-box-default-padding);border:none;border-bottom:1px solid #ccc;border-radius:var(--wco-smart-select-box-radius) var(--wco-smart-select-box-radius) 0 0}.wco-smartSelect .wco-smartSelect--box ul li.wco-smart-selected-filter input:focus{outline:none}.wco-smartSelect .wco-smartSelect--box ul li:not(.wc-smart-select-view-only-option):not(.wc-smart-select-disabled-option):not(.wco-smart-selected-filter){cursor:pointer}.wco-smartSelect .wco-smartSelect--box ul li:not(.wc-smart-select-view-only-option):not(.wc-smart-select-disabled-option):not(.wco-smart-selected-filter):hover{background-color:var(--wco-smart-select-box-hover-color-bg);color:var(--wco-smart-select-box-hover-color-label);cursor:pointer}.wco-smartSelect .wco-smartSelect--box ul li:not(.wc-smart-select-view-only-option):not(.wc-smart-select-disabled-option):not(.wco-smart-selected-filter):focus,.wco-smartSelect .wco-smartSelect--box ul li:not(.wc-smart-select-view-only-option):not(.wc-smart-select-disabled-option):not(.wco-smart-selected-filter):active{background-color:var(--wco-smart-select-box-selected-color-bg);color:var(--wco-smart-select-box-selected-color-label)}.wco-smartSelect .wco-smartSelect--box ul li:not(.wc-smart-select-view-only-option):not(.wc-smart-select-disabled-option):not(.wco-smart-selected-filter).wco-smart-selected{background-color:var(--wco-smart-select-box-selected-color-bg);color:var(--wco-smart-select-box-selected-color-label);font-weight:600}.wco-smartSelect .wco-smartSelect--box ul li.wc-smart-select-disabled-option{background-color:var(--wco-smart-select-option-disabled-bg);color:var(--wco-smart-select-option-disabled-color);cursor:not-allowed}.wco-smartSelect .wco-smartSelect--box ul li.wc-smart-select-disabled-option .wco-smart-select-remove{display:none}\n"] }]
271
337
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { options: [{
272
338
  type: ContentChildren,
273
339
  args: [SmartSelectOptionComponent]
@@ -294,4 +360,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
294
360
  }], typePrefix: [{
295
361
  type: Input
296
362
  }] } });
297
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21wb25lbnRzL3NyYy9saWIvc21hcnQtc2VsZWN0L3NtYXJ0LXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tcG9uZW50cy9zcmMvbGliL3NtYXJ0LXNlbGVjdC9zbWFydC1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxlQUFlLEVBRWYsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBRU4saUJBQWlCLEVBQ2pCLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUVMLFdBQVcsRUFDWCxXQUFXLEVBQ1gsYUFBYSxFQUNiLGlCQUFpQixFQUNqQixtQkFBbUIsR0FFcEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7O0FBc0I5RSxNQUFNLE9BQU8sb0JBQW9CO0lBb0RYO0lBbkR5QixPQUFPLENBRXRDO0lBRUosUUFBUSxHQUFHLElBQUksWUFBWSxFQUFnQyxDQUFDO0lBRXRFLG9CQUFvQjtJQUVwQixPQUFPLEdBQUcsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRTlELDJCQUEyQjtJQUNsQixTQUFTLENBQVU7SUFFbkIsWUFBWSxHQUFHLGlCQUFpQixDQUFDO0lBRTFDLDJCQUEyQjtJQUUzQixXQUFXLEdBQUcscUJBQXFCLENBQUM7SUFFcEMscUJBQXFCO0lBQ1osS0FBSyxHQUFHLEdBQUcsQ0FBQztJQUdyQixV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O3lCQUNaO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixXQUFXLHNCQUFzQjs0QkFDakMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7aUdBRzRDLE9BQU87c0JBQW5ELGVBQWU7dUJBQUMsMEJBQTBCO2dCQUlqQyxRQUFRO3NCQUFqQixNQUFNO2dCQUlQLE9BQU87c0JBRE4sS0FBSztnQkFJRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBSU4sV0FBVztzQkFEVixLQUFLO2dCQUlHLEtBQUs7c0JBQWIsS0FBSztnQkFHTixVQUFVO3NCQURULEtBQUs7Z0JBS04sU0FBUztzQkFEUixLQUFLO2dCQUtOLFdBQVc7c0JBRFYsS0FBSztnQkFLTixvQkFBb0I7c0JBRG5CLEtBQUs7Z0JBS04sVUFBVTtzQkFEVCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgZm9yd2FyZFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIEZvcm1Db250cm9sLFxuICBGb3Jtc01vZHVsZSxcbiAgTkdfVkFMSURBVE9SUyxcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIFZhbGlkYXRvcixcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU21hcnRTZWxlY3RPcHRpb25Db21wb25lbnQgfSBmcm9tICcuL3NtYXJ0LXNlbGVjdC1vcHRpb25zLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3djby1zbWFydC1zZWxlY3QnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3Jtc01vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9zbWFydC1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zbWFydC1zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTbWFydFNlbGVjdENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogU21hcnRTZWxlY3RDb21wb25lbnQsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTbWFydFNlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3Ige1xuICBAQ29udGVudENoaWxkcmVuKFNtYXJ0U2VsZWN0T3B0aW9uQ29tcG9uZW50KSBvcHRpb25zOlxuICAgIHwgUXVlcnlMaXN0PFNtYXJ0U2VsZWN0T3B0aW9uQ29tcG9uZW50PlxuICAgIHwgdW5kZWZpbmVkO1xuXG4gIEBPdXRwdXQoKSBvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyB0eXBlOiBzdHJpbmc7IHZhbHVlOiBhbnkgfT4oKTtcblxuICAvKiBJZCBkbyBlbGVtZW50byAqL1xuICBASW5wdXQoKVxuICBpbnB1dElkID0gJ3NlbGVjdF8nICsgTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIpO1xuXG4gIC8qIEF0dHIgbmFtZSBkbyBlbGVtZW50byAqL1xuICBASW5wdXQoKSBpbnB1dE5hbWU/OiBzdHJpbmc7XG5cbiAgQElucHV0KCkgSWNvbk1hdGVyaWFsID0gJ2Fycm93X2Ryb3BfZG93bic7XG5cbiAgLyogUGxhY2Vob2xkZXIgZG8gc2VsZWN0ICovXG4gIEBJbnB1dCgpXG4gIHBsYWNlaG9sZGVyID0gJ1NlbGVjaW9uZSB1bWEgb3DDp8Ojbyc7XG5cbiAgLyogTGFiZWwgZG8gc2VsZWN0ICovXG4gIEBJbnB1dCgpIGxhYmVsID0gJyAnO1xuXG4gIEBJbnB1dCgpXG4gIHNob3dTZWFyY2ggPSBmYWxzZTtcblxuICAvKiBUZXh0byBleGliaWRvIHF1YW5kbyBuw6NvIGjDoSByZXN1bHRhZG9zICovXG4gIEBJbnB1dCgpXG4gIHRleHRFbXB0eSA9ICdOw6NvIGjDoSByZXN1bHRhZG9zIHBhcmEgYSBidXNjYSc7XG5cbiAgLyogaGFiaWxpdGFyIG9ww6fDo28gZGUgbXVsdGlwbGFzIHNlbGXDp8O1ZXMgKi9cbiAgQElucHV0KClcbiAgbXVsdGlTZWxlY3QgPSBmYWxzZTtcblxuICAvKiBMaW1pdGFyIHZpc3VhbGl6YcOnw6NvIGRlIGl0ZW5zIHNlbGVjaW9uYWRvcyAqL1xuICBASW5wdXQoKSBcbiAgc2hvd01heFNlbGVjdGVkTGFiZWwgPSAwO1xuXG4gIC8qIFRpcG9zIHByw6kgZGVmaW5pZG9zIGRlIGNoZWNrYm94LCByYWRpbyBvdSBudWxsICovXG4gIEBJbnB1dCgpXG4gIHR5cGVQcmVmaXg6ICdjaGVja2JveCcgfCAncmFkaW8nIHwgbnVsbCA9IG51bGw7XG5cbiAgaXNNb2JpbGUgPSB3aW5kb3cuaW5uZXJXaWR0aCA8PSA3Njg7XG5cbiAgZm9ybVZhbHVlOiBhbnk7XG4gIGlzRm9jdXNlZCA9IGZhbHNlO1xuICBwcmV2ZW50RXNjYXBlRm9jdXMgPSBmYWxzZTtcbiAgYXV0b2NvbXBsZXRlQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xuICBmaWx0ZXJlZE9wdGlvbnM6IGFueVtdID0gW107XG5cbiAgc2hvd0xpc3QgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmKSB7fVxuXG4gIG9uVG91Y2hlZCA9ICgpID0+IHtcbiAgICB0aGlzLmlzRm9jdXNlZCA9IHRydWU7XG4gIH07XG5cbiAgLy8vIGVzdGFkb3MgZG8gY29udHJvbFxuXG4gIG5nT25Jbml0KCk6IHZvaWQge31cblxuICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XG4gICAgdGhpcy5mb3JtVmFsdWUgPSBvYmo7XG4gICAgdGhpcy5hdXRvY29tcGxldGVDb250cm9sLnNldFZhbHVlKG9iaik7XG4gIH1cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5hdXRvY29tcGxldGVDb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICBmbih2YWx1ZSk7XG4gICAgfSk7XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHZhbGlkYXRlKF9jb250cm9sOiBGb3JtQ29udHJvbCkge1xuICAgIGlmICh0aGlzLm11bHRpU2VsZWN0KSB7XG4gICAgICBpZiAodGhpcy5mb3JtVmFsdWU/Lmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7IHJlcXVpcmVkOiB0cnVlIH07XG4gICAgfVxuICAgIGlmICh0aGlzLmZvcm1WYWx1ZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiB7IHJlcXVpcmVkOiB0cnVlIH07XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKGlzRGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29udHJvbC5kaXNhYmxlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29udHJvbC5lbmFibGUoKTtcbiAgICB9XG4gIH1cblxuICAvLy8gQWJlcnR1cmEgZSBmZWNoYW1lbnRvIGRhIGxpc3RhXG4gIG9uRm9jdXNJbihmb2N1cyA9IGZhbHNlKSB7XG4gICAgdGhpcy5yZW5kZXJCb3hPcHRpb25zKCk7XG4gICAgdGhpcy5hdXRvY29tcGxldGVDb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIHRoaXMuaXNGb2N1c2VkID0gZm9jdXM7XG4gICAgdGhpcy5zaG93TGlzdCA9IGZvY3VzO1xuICAgIHRoaXMucG9zaXRpb25Cb3goKTtcbiAgfVxuXG4gIC8vLyBoZXJlIGZ1bmN0aW9uIHRvIHBvc2l0aW9uIGJveCBlbGVtZW50IHRvcCBvciBib3R0b21cbiAgcG9zaXRpb25Cb3goKSB7XG4gICAgaWYgKHRoaXMuaXNNb2JpbGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjb21wb25lbnRCb3ggPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKCFjb21wb25lbnRCb3gpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgY29tcG9uZW50Qm94UG9zaXRpb24gPSBjb21wb25lbnRCb3guZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgaW5wdXRJZCA9IGNvbXBvbmVudEJveC5xdWVyeVNlbGVjdG9yKCcuZm9ybS1maWVsZCcpO1xuICAgIGNvbnN0IGJveCA9IGNvbXBvbmVudEJveC5xdWVyeVNlbGVjdG9yKCcud2NvLXNtYXJ0U2VsZWN0LS1ib3gnKTtcbiAgICBjb25zdCBpbnB1dElkUG9zaXRpb24gPSBpbnB1dElkLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtcbiAgICBjb25zdCBwYWdlSGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0O1xuICAgIGlmIChib3ggJiYgY29tcG9uZW50Qm94UG9zaXRpb24ueSArIDMyMCA+PSBwYWdlSGVpZ2h0KSB7XG4gICAgICBib3guc3R5bGUuYm90dG9tID0gaW5wdXRJZFBvc2l0aW9uICsgJ3B4JztcbiAgICAgIGJveC5zdHlsZS5oZWlnaHQgPSBgdmFyKC0td2NvLXNtYXJ0LXNlbGVjdC1ib3gtbWF4LWhlaWdodClgO1xuICAgICAgYm94LnN0eWxlLnRvcCA9ICdpbml0aWFsJztcbiAgICB9IGVsc2Uge1xuICAgICAgYm94LnN0eWxlLnRvcCA9IGlucHV0SWRQb3NpdGlvbiArICdweCc7XG4gICAgICBib3guc3R5bGUuYm90dG9tID0gJ2luaXRpYWwnO1xuICAgICAgYm94LnN0eWxlLmhlaWdodCA9IGBhdXRvYDtcbiAgICB9XG4gIH1cblxuICBvblNlbGVjdChvcHRpb246IGFueSkge1xuICAgIGlmIChvcHRpb24uZGlzYWJsZWQgfHwgb3B0aW9uLnZpZXdPbmx5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgb2xkVmFsdWUgPSB0aGlzLmZvcm1WYWx1ZTtcblxuICAgIGlmICh0aGlzLm11bHRpU2VsZWN0KSB7XG4gICAgICBpZiAodGhpcy5mb3JtVmFsdWU/LmluY2x1ZGVzKG9wdGlvbi52YWx1ZSkpIHtcbiAgICAgICAgdGhpcy5mb3JtVmFsdWUgPSB0aGlzLmZvcm1WYWx1ZS5maWx0ZXIoXG4gICAgICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbSAhPT0gb3B0aW9uLnZhbHVlXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29udHJvbC5zZXRWYWx1ZSh0aGlzLmZvcm1WYWx1ZSk7XG4gICAgICAgIHRoaXMucmVuZGVyQm94T3B0aW9ucygpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICAvLyBpcyBBcnJheSBbXVxuICAgICAgaWYgKCEhdGhpcy5mb3JtVmFsdWUgPT09IGZhbHNlKSB7XG4gICAgICAgIHRoaXMuZm9ybVZhbHVlID0gW107XG4gICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29udHJvbC5zZXRWYWx1ZSh0aGlzLmZvcm1WYWx1ZSk7XG4gICAgICB9XG4gICAgICB0aGlzLmZvcm1WYWx1ZSA9IFsuLi50aGlzLmZvcm1WYWx1ZSwgb3B0aW9uLnZhbHVlXTtcbiAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29udHJvbC5zZXRWYWx1ZSh0aGlzLmZvcm1WYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9ybVZhbHVlID0gb3B0aW9uLnZhbHVlO1xuICAgICAgdGhpcy5hdXRvY29tcGxldGVDb250cm9sLnNldFZhbHVlKG9wdGlvbi52YWx1ZSk7XG4gICAgfVxuICAgIGlmICghdGhpcy5tdWx0aVNlbGVjdCkge1xuICAgICAgdGhpcy5zaG93TGlzdCA9IGZhbHNlO1xuICAgIH1cbiAgICBpZiAob2xkVmFsdWUgIT09IHRoaXMuZm9ybVZhbHVlKSB7XG4gICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoeyB0eXBlOiAndXBkYXRlVmFsdWUnLCB2YWx1ZTogdGhpcy5mb3JtVmFsdWUgfSk7XG4gICAgfVxuICB9XG5cbiAgLy8gU2hvdyBsYWJlbCBzcGFuXG4gIGdldCBzZWxlY3RlZExhYmVsKCkge1xuICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9uID0gdGhpcy5vcHRpb25zPy5maW5kKFxuICAgICAgKG9wdGlvbikgPT5cbiAgICAgICAgdGhpcy5ub3JtYWxpemVUZXh0KFN0cmluZyhvcHRpb24udmFsdWUpKSA9PT1cbiAgICAgICAgdGhpcy5ub3JtYWxpemVUZXh0KFN0cmluZyh0aGlzLmZvcm1WYWx1ZSkpXG4gICAgKTtcbiAgICByZXR1cm4gc2VsZWN0ZWRPcHRpb24/LmxhYmVsIHx8ICcgJztcbiAgfVxuXG4gIC8vIHNob3cgbGFiZWwgbXVsdGkgc2VsZWN0XG4gIGdldCBzZWxlY3RlZExhYmVsTXVsdGkoKTogeyB2YWx1ZTogc3RyaW5nOyBsYWJlbDogc3RyaW5nIH1bXSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRPcHRpb25zID0gdGhpcy5vcHRpb25zPy5maWx0ZXIoKG9wdGlvbikgPT5cbiAgICAgIHRoaXMuZm9ybVZhbHVlPy5pbmNsdWRlcyhvcHRpb24udmFsdWUpXG4gICAgKTtcblxuICAgIGlmICghc2VsZWN0ZWRPcHRpb25zPy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBpZighdGhpcy5zaG93TWF4U2VsZWN0ZWRMYWJlbCkge1xuICAgICAgcmV0dXJuIHNlbGVjdGVkT3B0aW9ucztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zaG93TWF4U2VsZWN0ZWRMYWJlbCAmJiBzZWxlY3RlZE9wdGlvbnMubGVuZ3RoID4gdGhpcy5zaG93TWF4U2VsZWN0ZWRMYWJlbCkge1xuICAgICAgcmV0dXJuIHNlbGVjdGVkT3B0aW9ucy5zbGljZSgwLCB0aGlzLnNob3dNYXhTZWxlY3RlZExhYmVsKTtcbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIHNlbGVjdGVkT3B0aW9ucztcbiAgfVxuXG4gIGdldCBzZWxlY3RlZExhYmVsTXVsdGlDb3VudCgpOiBudW1iZXIge1xuICAgIGNvbnN0IHNob3cgPSB0aGlzLnNob3dNYXhTZWxlY3RlZExhYmVsIHx8IDA7XG4gICAgY29uc3Qgc2VsZWN0ZWRPcHRpb25zID0gdGhpcy5vcHRpb25zPy5maWx0ZXIoKG9wdGlvbikgPT5cbiAgICAgIHRoaXMuZm9ybVZhbHVlPy5pbmNsdWRlcyhvcHRpb24udmFsdWUpXG4gICAgKTtcblxuICAgIGNvbnNvbGUubG9nKCdzZWxlY3RlZE9wdGlvbnMnLCBzZWxlY3RlZE9wdGlvbnMpO1xuICAgIGNvbnNvbGUubG9nKCdzaG93Jywgc2hvdyk7XG4gICAgaWYgKCFzZWxlY3RlZE9wdGlvbnM/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgaWYgKHNob3cgPiAwICYmIHNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPiBzaG93KSB7XG4gICAgICByZXR1cm4gc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCAtIHNob3c7XG4gICAgfVxuXG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICByZW1vdmVJdGVtKG9wdGlvbjogYW55KSB7XG4gICAgdGhpcy5vblNlbGVjdChvcHRpb24pO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5zaG93TGlzdCA9IGZhbHNlOyAgICBcbiAgICB9LCAxMDApO1xuICB9XG5cbiAgb25LZXlQcmVzcyhldmVudDogYW55KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLnJlbmRlckJveE9wdGlvbnMoKTtcbiAgfVxuXG4gIG9uRmlsdGVyKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCB2YWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICB0aGlzLnJlbmRlckJveE9wdGlvbnMoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5maWx0ZXJlZE9wdGlvbnMubGVuZ3RoKSB7XG4gICAgICB0aGlzLnJlbmRlckJveE9wdGlvbnModmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIG9uUmVzaXplKCkge1xuICAgIHRoaXMucmVuZGVyQm94T3B0aW9ucygpO1xuICAgIHRoaXMucG9zaXRpb25Cb3goKTtcbiAgfVxuXG4gIG9uRm9jdXNPdXQoKSB7XG4gICAgaWYgKCF0aGlzLnByZXZlbnRFc2NhcGVGb2N1cyAmJiAhdGhpcy5pc01vYmlsZSkge1xuICAgICAgdGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuc2hvd0xpc3QgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBjbG9zZUxpc3QoKSB7XG4gICAgdGhpcy5wcmV2ZW50RXNjYXBlRm9jdXMgPSB0cnVlO1xuICAgIHRoaXMuaXNGb2N1c2VkID0gZmFsc2U7XG4gICAgdGhpcy5zaG93TGlzdCA9IGZhbHNlO1xuICB9XG5cbiAgc2VsZWN0ZWRWYWx1ZShvcHRpb246IHsgdmFsdWU6IGFueTsgbGFiZWw6IHN0cmluZzsgc2FmZUh0bWxDb250ZW50OiBhbnkgfSkge1xuICAgIGlmICh0aGlzLm11bHRpU2VsZWN0KSB7XG4gICAgICByZXR1cm4gdGhpcy5mb3JtVmFsdWU/LmluY2x1ZGVzKG9wdGlvbi52YWx1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9wdGlvbi52YWx1ZSA9PT0gdGhpcy5mb3JtVmFsdWU7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlckJveE9wdGlvbnMoZmlsdGVyVmFsdWU6IHN0cmluZyB8IG51bGwgPSBudWxsKSB7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnMgfHwgIXRoaXMub3B0aW9ucy5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSB0aGlzLm9wdGlvbnNcbiAgICAgID8ubWFwKChvcHRpb24pID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB2YWx1ZTogb3B0aW9uLnZhbHVlLFxuICAgICAgICAgIGljb25QcmVmaXg6IG9wdGlvbi5pY29uUHJlZml4LFxuICAgICAgICAgIGh0bWxMYWJlbDogb3B0aW9uLnNhZmVIdG1sQ29udGVudCB8fCBvcHRpb24ubGFiZWwsXG4gICAgICAgICAgZGlzYWJsZWQ6IG9wdGlvbi5kaXNhYmxlZCxcbiAgICAgICAgICB2aWV3T25seTogb3B0aW9uLnZpZXdPbmx5LFxuICAgICAgICB9O1xuICAgICAgfSlcbiAgICAgIC5maWx0ZXIoKG9wdGlvbikgPT4ge1xuICAgICAgICBpZiAoIWZpbHRlclZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZEZpbHRlciA9IHRoaXMubm9ybWFsaXplVGV4dChmaWx0ZXJWYWx1ZSk7XG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRMYWJlbCA9IHRoaXMubm9ybWFsaXplVGV4dChcbiAgICAgICAgICBvcHRpb24uaHRtbExhYmVsPy50b1N0cmluZygpIHx8ICcnXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBub3JtYWxpemVkTGFiZWwuaW5jbHVkZXMobm9ybWFsaXplZEZpbHRlcik7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgbm9ybWFsaXplVGV4dCh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0ZXh0XG4gICAgICAucmVwbGFjZSgvW1xcV19dKy9nLCAnJykgLy8gUmVtb3ZlIGNhcmFjdGVyZXMgZXNwZWNpYWlzIGUgc3VibGluaGFkb3NcbiAgICAgIC50b0xvd2VyQ2FzZSgpO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwid2NvLXNtYXJ0U2VsZWN0XCJcbiAgW25nQ2xhc3NdPVwie1xuICAgICd3Y28tc21hcnRTZWxlY3QtLW9wZW4nOiBzaG93TGlzdCxcbiAgICAnd2NvLXNtYXJ0U2VsZWN0LS1pc01vYmlsZSc6IGlzTW9iaWxlLFxufVwiXG4gIChyZXNpemUpPVwib25SZXNpemUoKVwiXG4gIChtb3VzZWxlYXZlKT1cIm9uRm9jdXNPdXQoKVwiXG4+XG4gIDxkaXYgY2xhc3M9XCJmb3JtLWZpZWxkXCI+XG4gICAgPGlucHV0XG4gICAgICAqbmdJZj1cIiFtdWx0aVNlbGVjdFwiXG4gICAgICBjbGFzcz1cImZvcm0tZmllbGRfX2lucHV0XCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ2Zvcm0tZmllbGQtLWVycm9yJzpcbiAgICAgICAgICBhdXRvY29tcGxldGVDb250cm9sLmludmFsaWQgJiYgYXV0b2NvbXBsZXRlQ29udHJvbC50b3VjaGVkXG4gICAgICB9XCJcbiAgICAgIFtkaXNhYmxlZF09XCJhdXRvY29tcGxldGVDb250cm9sLmRpc2FibGVkXCJcbiAgICAgIGlkPVwie3sgaW5wdXRJZCA/IGlucHV0SWQgOiAnJyB9fVwiXG4gICAgICBuYW1lPVwie3sgaW5wdXROYW1lID8gaW5wdXROYW1lIDogJycgfX1cIlxuICAgICAgKGNsaWNrKT1cIm9uRm9jdXNJbih0cnVlKVwiXG4gICAgICAoZm9jdXNpbik9XCJvbkZvY3VzSW4oKVwiXG4gICAgICAoa2V5dXAuZXNjYXBlKT1cIm9uRm9jdXNPdXQoKVwiXG4gICAgICAoa2V5cHJlc3MpPVwib25LZXlQcmVzcygkZXZlbnQpXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICBbdmFsdWVdPVwic2VsZWN0ZWRMYWJlbFwiXG4gICAgICBhcmlhLWxhYmVsPVwiU2VsZWNpb25lIHVtYSBvcMOnw6NvXCJcbiAgICAvPlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwibXVsdGlTZWxlY3RcIlxuICAgICAgY2xhc3M9XCJmb3JtLWZpZWxkX19pbnB1dCByZWFkb25seSBtdWx0aVNlbGVjdFwiXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgJ2Zvcm0tZmllbGQtLWVycm9yJzogYXV0b2NvbXBsZXRlQ29udHJvbC5pbnZhbGlkICYmIGF1dG9jb21wbGV0ZUNvbnRyb2wudG91Y2hlZCxcbiAgICAgICAgICAgICAgICAnZm9ybS1maWVsZC0tZGlzYWJsZWQnOiBhdXRvY29tcGxldGVDb250cm9sLmRpc2FibGVkLFxuICAgICAgICAgICAgfVwiXG4gICAgICAoY2xpY2spPVwib25Gb2N1c0luKHRydWUpXCJcbiAgICAgIChmb2N1c2luKT1cIm9uRm9jdXNJbigpXCJcbiAgICAgIChrZXl1cC5lc2NhcGUpPVwib25Gb2N1c091dCgpXCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXNlbGVjdGVkTGFiZWxNdWx0aS5sZW5ndGhcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ3Y28tc21hcnQtc2VsZWN0LXBsYWNlaG9sZGVyXCI+e3sgcGxhY2Vob2xkZXIgfHwgJ1NlbGVjaW9uZSB1bWEgb3DDp8OjbycgfX08L3NwYW4+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZExhYmVsTXVsdGkubGVuZ3RoXCI+XG4gICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCBvcHRpb25TZWxlY3RlZCBvZiBzZWxlY3RlZExhYmVsTXVsdGlcIiBjbGFzcz1cIndjby1zbWFydC1zZWxlY3QtaXRlbVwiPlxuICAgICAgICAgIHt7b3B0aW9uU2VsZWN0ZWQubGFiZWx9fSBcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIndjby1zbWFydC1zZWxlY3QtcmVtb3ZlXCIgKGNsaWNrKT1cInJlbW92ZUl0ZW0ob3B0aW9uU2VsZWN0ZWQpXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCI+Y2xvc2U8L3NwYW4+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3Y28tc21hcnQtc2VsZWN0LWl0ZW1cIiAgKm5nSWY9XCJzZWxlY3RlZExhYmVsTXVsdGlDb3VudCA+PSAxXCI+XG4gICAgICAgICAgICAre3tzZWxlY3RlZExhYmVsTXVsdGlDb3VudH19IFxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbiAgICA8bGFiZWw+e3sgbGFiZWwgfX08L2xhYmVsPlxuICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIj57eyBJY29uTWF0ZXJpYWwgfX08L3NwYW4+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgY2xhc3M9XCJ3Y28tc21hcnRTZWxlY3QtLWJveFwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ3djby1zbWFydFNlbGVjdC0tYm94LS1vcGVuJzogc2hvd0xpc3QgJiYgIWF1dG9jb21wbGV0ZUNvbnRyb2wuZGlzYWJsZWRcbiAgICB9XCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJ3Y28tc21hcnRTZWxlY3QtLWlzTW9iaWxlLWNsb3NlXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIChjbGljayk9XCJjbG9zZUxpc3QoKVwiXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tcHJpbWFyeSBidG4tb3V0bGluZSBtYi1uYW5vXCJcbiAgICAgID5cbiAgICAgICAgZmVjaGFyXG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8dWw+XG4gICAgICA8bGlcbiAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgY2xhc3M9XCJ3Y28tc21hcnQtc2VsZWN0ZWQtZmlsdGVyXCJcbiAgICAgICAgKm5nSWY9XCJzaG93TGlzdCAmJiBzaG93U2VhcmNoXCJcbiAgICAgID5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJidXNjYXJcIlxuICAgICAgICAgIChrZXl1cCk9XCJvbkZpbHRlcigkZXZlbnQpXCJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiU2VhcmNoIHRocm91Z2ggc2l0ZSBjb250ZW50XCJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIC8+XG4gICAgICA8L2xpPlxuICAgICAgPGxpXG4gICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZmlsdGVyZWRPcHRpb25zOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgW3RhYmluZGV4XT1cImkgKyAxXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgJ3djby1zbWFydC1zZWxlY3RlZCc6IHNlbGVjdGVkVmFsdWUob3B0aW9uKSxcbiAgICAgICAgICAgICd3Yy1zbWFydC1zZWxlY3QtZGlzYWJsZWQtb3B0aW9uJzogb3B0aW9uLmRpc2FibGVkLFxuICAgICAgICAgICAgJ3djLXNtYXJ0LXNlbGVjdC12aWV3LW9ubHktb3B0aW9uJzogb3B0aW9uLnZpZXdPbmx5LFxuICAgICAgICB9XCJcbiAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0KG9wdGlvbilcIlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIndjby1zbWFydC1zZWxlY3QtbGFiZWwtcHJlZml4XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInR5cGVQcmVmaXggPT09ICdjaGVja2JveCdcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWRcIj5cbiAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICBzZWxlY3RlZFZhbHVlKG9wdGlvbikgPyBcImNoZWNrX2JveFwiIDogXCJjaGVja19ib3hfb3V0bGluZV9ibGFua1wiXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInR5cGVQcmVmaXggPT09ICdyYWRpbydcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWRcIj5cbiAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICBzZWxlY3RlZFZhbHVlKG9wdGlvbilcbiAgICAgICAgICAgICAgICAgID8gXCJyYWRpb19idXR0b25fY2hlY2tlZFwiXG4gICAgICAgICAgICAgICAgICA6IFwicmFkaW9fYnV0dG9uX3VuY2hlY2tlZFwiXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgISFvcHRpb24uaWNvblByZWZpeCAmJlxuICAgICAgICAgICAgICB0eXBlUHJlZml4ICE9PSAncmFkaW8nICYmXG4gICAgICAgICAgICAgIHR5cGVQcmVmaXggIT09ICdjaGVja2JveCdcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29ucy1vdXRsaW5lZFwiPlxuICAgICAgICAgICAgICB7eyBvcHRpb24uaWNvblByZWZpeCB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3M9XCJ3Y28tc21hcnQtc2VsZWN0LWxhYmVsXCJcbiAgICAgICAgICBbaW5uZXJIVE1MXT1cIm9wdGlvbi5odG1sTGFiZWxcIlxuICAgICAgICA+PC9zcGFuPlxuICAgICAgPC9saT5cbiAgICAgIDxsaSAqbmdJZj1cIiFmaWx0ZXJlZE9wdGlvbnMubGVuZ3RoXCI+XG4gICAgICAgIDxwIGNsYXNzPVwiZGlzcGxheS1ib2R5XCI+e3sgdGV4dEVtcHR5IH19PC9wPlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
363
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21wb25lbnRzL3NyYy9saWIvc21hcnQtc2VsZWN0L3NtYXJ0LXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tcG9uZW50cy9zcmMvbGliL3NtYXJ0LXNlbGVjdC9zbWFydC1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxlQUFlLEVBRWYsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBRU4saUJBQWlCLEVBQ2pCLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUVMLFdBQVcsRUFDWCxXQUFXLEVBQ1gsYUFBYSxFQUNiLGlCQUFpQixFQUNqQixtQkFBbUIsR0FFcEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7O0FBc0I5RSxNQUFNLE9BQU8sb0JBQW9CO0lBb0RYO0lBbkR5QixPQUFPLENBRXRDO0lBRUosUUFBUSxHQUFHLElBQUksWUFBWSxFQUFnQyxDQUFDO0lBRXRFLG9CQUFvQjtJQUVwQixPQUFPLEdBQUcsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRTlELDJCQUEyQjtJQUNsQixTQUFTLENBQVU7SUFFbkIsWUFBWSxHQUFHLGlCQUFpQixDQUFDO0lBRTFDLDJCQUEyQjtJQUUzQixXQUFXLEdBQUcscUJBQXFCLENBQUM7SUFFcEMscUJBQXFCO0lBQ1osS0FBSyxHQUFHLEdBQUcsQ0FBQztJQUdyQixVQUFVLEdBQUcsS0FBSyxDQUFDO0lBRW5CLDRDQUE0QztJQUU1QyxTQUFTLEdBQUcsZ0NBQWdDLENBQUM7SUFFN0MsMkNBQTJDO0lBRTNDLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFFcEIsZ0RBQWdEO0lBRWhELG9CQUFvQixHQUFHLENBQUMsQ0FBQztJQUV6QixvREFBb0Q7SUFFcEQsVUFBVSxHQUFnQyxJQUFJLENBQUM7SUFFL0MsUUFBUSxHQUFHLE1BQU0sQ0FBQyxVQUFVLElBQUksR0FBRyxDQUFDO0lBRXBDLFNBQVMsQ0FBTTtJQUNmLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDbEIsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO0lBQzNCLG1CQUFtQixHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7SUFDeEMsZUFBZSxHQUFVLEVBQUUsQ0FBQztJQUU1QixRQUFRLEdBQUcsS0FBSyxDQUFDO0lBRWpCLFlBQW9CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO0lBRWxDLENBQUM7SUFFRCxTQUFTLEdBQUcsR0FBRyxFQUFFO1FBQ2YsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFDeEIsQ0FBQyxDQUFDO0lBRUYsc0JBQXNCO0lBRXRCLFFBQVEsS0FBVSxDQUFDO0lBRW5CLFVBQVUsQ0FBQyxHQUFRO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUNELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN4RCxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDWixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxRQUFRLENBQUMsUUFBcUI7UUFDNUIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUU7Z0JBQzFCLE9BQU8sSUFBSSxDQUFDO2FBQ2I7WUFDRCxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1NBQzNCO1FBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBRSxVQUFtQjtRQUNuQyxJQUFJLFVBQVUsRUFBRTtZQUNkLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUNwQzthQUFNO1lBQ0wsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ25DO0lBQ0gsQ0FBQztJQUVELGtDQUFrQztJQUNsQyxTQUFTLENBQUMsS0FBSyxHQUFHLEtBQUs7UUFDckIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELHVEQUF1RDtJQUN2RCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLE9BQU87U0FDUjtRQUVELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDO1FBQzNDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDakIsT0FBTztTQUNSO1FBQ0QsTUFBTSxvQkFBb0IsR0FBRyxZQUFZLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyxZQUFZLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzFELE1BQU0sR0FBRyxHQUFHLFlBQVksQ0FBQyxhQUFhLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUNoRSxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxNQUFNLENBQUM7UUFDL0QsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUN0QyxJQUFJLEdBQUcsSUFBSSxvQkFBb0IsQ0FBQyxDQUFDLEdBQUcsR0FBRyxJQUFJLFVBQVUsRUFBRTtZQUNyRCxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxlQUFlLEdBQUcsSUFBSSxDQUFDO1lBQzFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLHdDQUF3QyxDQUFDO1lBQzVELEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLFNBQVMsQ0FBQztTQUMzQjthQUFNO1lBQ0wsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsZUFBZSxHQUFHLElBQUksQ0FBQztZQUN2QyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7WUFDN0IsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1NBQzNCO0lBQ0gsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFZO1FBQ25CLElBQUksTUFBTSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFO1lBQ3RDLE9BQU87U0FDUjtRQUVELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFFaEMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLElBQUksT0FBTyxNQUFNLENBQUMsS0FBSyxLQUFLLFFBQVEsRUFBRTtnQkFDcEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNsRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQy9ELElBQUksY0FBYyxFQUFFO29CQUNsQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUk7eUJBQ2xCLE1BQU0sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO3lCQUNyQyxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDbEM7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDNUQ7YUFDRjtpQkFBTTtnQkFDTCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3BELElBQUksS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUU7b0JBQ3JDLElBQUksQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztpQkFDbEM7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDNUQ7YUFDRjtZQUNELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ25EO2FBQU07WUFDTCxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDOUIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7U0FDdkI7UUFFRCxJQUFJLFFBQVEsS0FBSyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQy9CLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7U0FDcEU7UUFFRCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLElBQUksYUFBYTtRQUNmLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUN2QyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUM3QyxDQUFDO1FBQ0YsT0FBTyxjQUFjLEVBQUUsS0FBSyxJQUFJLEdBQUcsQ0FBQztJQUN0QyxDQUFDO0lBRUQsMEJBQTBCO0lBQzFCLElBQUksa0JBQWtCO1FBQ3BCLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDdEQsSUFBSSxPQUFPLE1BQU0sQ0FBQyxLQUFLLEtBQUssUUFBUSxFQUFFO2dCQUNwQyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUN2QztpQkFBTTtnQkFDTCxPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUMvQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGVBQWUsRUFBRSxNQUFNLEVBQUU7WUFDNUIsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDOUIsT0FBTyxlQUFlLENBQUM7U0FDeEI7UUFFRCxJQUNFLElBQUksQ0FBQyxvQkFBb0I7WUFDekIsZUFBZSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsb0JBQW9CLEVBQ2xEO1lBQ0EsT0FBTyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztTQUM1RDtRQUVELE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUM7SUFFTyxZQUFZLENBQUMsT0FBWTtRQUMvQixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sS0FBSyxHQUFVLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDbkIsSUFDRSxPQUFPLENBQUMsR0FBRyxDQUFDO2dCQUNaLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFO2dCQUNuQixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRO2dCQUNoQyxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxVQUFVO2dCQUNsQyxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTLEVBQ2pDO2dCQUNBLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDMUI7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVPLGlCQUFpQixDQUFDLE1BQVcsRUFBRSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVM7UUFDM0QsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRTtZQUMxQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtnQkFDOUIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDMUMsT0FBTyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBYyxFQUFFLEVBQUUsQ0FDeEMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FDaEMsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxNQUFXLEVBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTO1FBQ2pFLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUU7WUFDMUIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEQsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVMsRUFBRSxLQUFhLEVBQUUsRUFBRTtnQkFDNUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDMUMsT0FBTztvQkFDTCxLQUFLO29CQUNMLElBQUk7b0JBQ0osUUFBUSxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFjLEVBQUUsRUFBRSxDQUMxQyxXQUFXLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUNoQztpQkFDRixDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7WUFDSCx5QkFBeUI7WUFDekIsTUFBTSxvQkFBb0IsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUNyQyxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FDakUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUV2QyxPQUFPLG9CQUFvQixDQUFDO1NBQzdCO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsSUFBSSx1QkFBdUI7UUFDekIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixJQUFJLENBQUMsQ0FBQztRQUM1QyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ3RELElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FDdkMsQ0FBQztRQUNGLElBQUksQ0FBQyxlQUFlLEVBQUUsTUFBTSxFQUFFO1lBQzVCLE9BQU8sQ0FBQyxDQUFDO1NBQ1Y7UUFFRCxJQUFJLElBQUksR0FBRyxDQUFDLElBQUksZUFBZSxDQUFDLE1BQU0sR0FBRyxJQUFJLEVBQUU7WUFDN0MsT0FBTyxlQUFlLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztTQUN0QztRQUVELE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUFXO1FBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNWLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBVTtRQUNuQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFVO1FBQ2pCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN4QixPQUFPO1NBQ1I7UUFFRCxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFO1lBQy9CLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM5QjtJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDOUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDL0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVELGFBQWEsQ0FBQyxNQUEyRDtRQUN2RSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsSUFBSSxPQUFPLE1BQU0sQ0FBQyxLQUFLLEtBQUssUUFBUSxFQUFFO2dCQUNwQyxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFO29CQUMxQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDcEQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO3dCQUN2QyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUMxQyxPQUFPLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFjLEVBQUUsRUFBRSxDQUN4QyxXQUFXLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUNoQyxDQUFDO29CQUNKLENBQUMsQ0FBQyxDQUFDO2lCQUNKO2FBQ0Y7aUJBQU07Z0JBQ0wsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDL0M7U0FDRjtRQUVELE9BQU8sTUFBTSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3pDLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxjQUE2QixJQUFJO1FBQ3hELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUU7WUFDekMsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsT0FBTztZQUNqQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ2YsT0FBTztnQkFDTCxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7Z0JBQ25CLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVTtnQkFDN0IsU0FBUyxFQUFFLE1BQU0sQ0FBQyxlQUFlLElBQUksTUFBTSxDQUFDLEtBQUs7Z0JBQ2pELFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUTtnQkFDekIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO2FBQzFCLENBQUM7UUFDSixDQUFDLENBQUM7YUFDRCxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNqQixJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUNoQixPQUFPLElBQUksQ0FBQzthQUNiO1lBQ0QsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3pELE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQ3hDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUNuQyxDQUFDO1lBQ0YsT0FBTyxlQUFlLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDcEQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sYUFBYSxDQUFDLElBQVk7UUFDaEMsT0FBTyxJQUFJO2FBQ1IsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyw0Q0FBNEM7YUFDbkUsV0FBVyxFQUFFLENBQUM7SUFDbkIsQ0FBQzt3R0F0WFUsb0JBQW9COzRGQUFwQixvQkFBb0IsMFhBYnBCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztnQkFDbkQsS0FBSyxFQUFFLElBQUk7YUFDWjtZQUNEO2dCQUNFLE9BQU8sRUFBRSxhQUFhO2dCQUN0QixXQUFXLEVBQUUsb0JBQW9CO2dCQUNqQyxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0Ysa0RBR2dCLDBCQUEwQiw2QkM1QzdDLHk4SUF1SUEsa3NPRDdHWSxZQUFZLDZWQUFFLG1CQUFtQiw4QkFBRSxXQUFXOzs0RkFpQjdDLG9CQUFvQjtrQkFwQmhDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBQ2hCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxXQUFXLENBQUMsaUJBRzFDLGlCQUFpQixDQUFDLElBQUksYUFDMUI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7NEJBQ25ELEtBQUssRUFBRSxJQUFJO3lCQUNaO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixXQUFXLHNCQUFzQjs0QkFDakMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7aUdBRzRDLE9BQU87c0JBQW5ELGVBQWU7dUJBQUMsMEJBQTBCO2dCQUlqQyxRQUFRO3NCQUFqQixNQUFNO2dCQUlQLE9BQU87c0JBRE4sS0FBSztnQkFJRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBSU4sV0FBVztzQkFEVixLQUFLO2dCQUlHLEtBQUs7c0JBQWIsS0FBSztnQkFHTixVQUFVO3NCQURULEtBQUs7Z0JBS04sU0FBUztzQkFEUixLQUFLO2dCQUtOLFdBQVc7c0JBRFYsS0FBSztnQkFLTixvQkFBb0I7c0JBRG5CLEtBQUs7Z0JBS04sVUFBVTtzQkFEVCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgZm9yd2FyZFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIEZvcm1Db250cm9sLFxuICBGb3Jtc01vZHVsZSxcbiAgTkdfVkFMSURBVE9SUyxcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIFZhbGlkYXRvcixcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU21hcnRTZWxlY3RPcHRpb25Db21wb25lbnQgfSBmcm9tICcuL3NtYXJ0LXNlbGVjdC1vcHRpb25zLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3djby1zbWFydC1zZWxlY3QnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3Jtc01vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9zbWFydC1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zbWFydC1zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTbWFydFNlbGVjdENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogU21hcnRTZWxlY3RDb21wb25lbnQsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTbWFydFNlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3Ige1xuICBAQ29udGVudENoaWxkcmVuKFNtYXJ0U2VsZWN0T3B0aW9uQ29tcG9uZW50KSBvcHRpb25zOlxuICAgIHwgUXVlcnlMaXN0PFNtYXJ0U2VsZWN0T3B0aW9uQ29tcG9uZW50PlxuICAgIHwgdW5kZWZpbmVkO1xuXG4gIEBPdXRwdXQoKSBvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyB0eXBlOiBzdHJpbmc7IHZhbHVlOiBhbnkgfT4oKTtcblxuICAvKiBJZCBkbyBlbGVtZW50byAqL1xuICBASW5wdXQoKVxuICBpbnB1dElkID0gJ3NlbGVjdF8nICsgTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIpO1xuXG4gIC8qIEF0dHIgbmFtZSBkbyBlbGVtZW50byAqL1xuICBASW5wdXQoKSBpbnB1dE5hbWU/OiBzdHJpbmc7XG5cbiAgQElucHV0KCkgSWNvbk1hdGVyaWFsID0gJ2Fycm93X2Ryb3BfZG93bic7XG5cbiAgLyogUGxhY2Vob2xkZXIgZG8gc2VsZWN0ICovXG4gIEBJbnB1dCgpXG4gIHBsYWNlaG9sZGVyID0gJ1NlbGVjaW9uZSB1bWEgb3DDp8Ojbyc7XG5cbiAgLyogTGFiZWwgZG8gc2VsZWN0ICovXG4gIEBJbnB1dCgpIGxhYmVsID0gJyAnO1xuXG4gIEBJbnB1dCgpXG4gIHNob3dTZWFyY2ggPSBmYWxzZTtcblxuICAvKiBUZXh0byBleGliaWRvIHF1YW5kbyBuw6NvIGjDoSByZXN1bHRhZG9zICovXG4gIEBJbnB1dCgpXG4gIHRleHRFbXB0eSA9ICdOw6NvIGjDoSByZXN1bHRhZG9zIHBhcmEgYSBidXNjYSc7XG5cbiAgLyogaGFiaWxpdGFyIG9ww6fDo28gZGUgbXVsdGlwbGFzIHNlbGXDp8O1ZXMgKi9cbiAgQElucHV0KClcbiAgbXVsdGlTZWxlY3QgPSBmYWxzZTtcblxuICAvKiBMaW1pdGFyIHZpc3VhbGl6YcOnw6NvIGRlIGl0ZW5zIHNlbGVjaW9uYWRvcyAqL1xuICBASW5wdXQoKVxuICBzaG93TWF4U2VsZWN0ZWRMYWJlbCA9IDA7XG5cbiAgLyogVGlwb3MgcHLDqSBkZWZpbmlkb3MgZGUgY2hlY2tib3gsIHJhZGlvIG91IG51bGwgKi9cbiAgQElucHV0KClcbiAgdHlwZVByZWZpeDogJ2NoZWNrYm94JyB8ICdyYWRpbycgfCBudWxsID0gbnVsbDtcblxuICBpc01vYmlsZSA9IHdpbmRvdy5pbm5lcldpZHRoIDw9IDc2ODtcblxuICBmb3JtVmFsdWU6IGFueTtcbiAgaXNGb2N1c2VkID0gZmFsc2U7XG4gIHByZXZlbnRFc2NhcGVGb2N1cyA9IGZhbHNlO1xuICBhdXRvY29tcGxldGVDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XG4gIGZpbHRlcmVkT3B0aW9uczogYW55W10gPSBbXTtcblxuICBzaG93TGlzdCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHtcbiAgICBcbiAgfVxuXG4gIG9uVG91Y2hlZCA9ICgpID0+IHtcbiAgICB0aGlzLmlzRm9jdXNlZCA9IHRydWU7XG4gIH07XG5cbiAgLy8vIGVzdGFkb3MgZG8gY29udHJvbFxuXG4gIG5nT25Jbml0KCk6IHZvaWQge31cblxuICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XG4gICAgdGhpcy5mb3JtVmFsdWUgPSBvYmo7XG4gICAgdGhpcy5hdXRvY29tcGxldGVDb250cm9sLnNldFZhbHVlKG9iaik7XG4gIH1cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5hdXRvY29tcGxldGVDb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICBmbih2YWx1ZSk7XG4gICAgfSk7XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHZhbGlkYXRlKF9jb250cm9sOiBGb3JtQ29udHJvbCkge1xuICAgIGlmICh0aGlzLm11bHRpU2VsZWN0KSB7XG4gICAgICBpZiAodGhpcy5mb3JtVmFsdWU/Lmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7IHJlcXVpcmVkOiB0cnVlIH07XG4gICAgfVxuICAgIGlmICh0aGlzLmZvcm1WYWx1ZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiB7IHJlcXVpcmVkOiB0cnVlIH07XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKGlzRGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29udHJvbC5kaXNhYmxlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29udHJvbC5lbmFibGUoKTtcbiAgICB9XG4gIH1cblxuICAvLy8gQWJlcnR1cmEgZSBmZWNoYW1lbnRvIGRhIGxpc3RhXG4gIG9uRm9jdXNJbihmb2N1cyA9IGZhbHNlKSB7XG4gICAgdGhpcy5yZW5kZXJCb3hPcHRpb25zKCk7XG4gICAgdGhpcy5hdXRvY29tcGxldGVDb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIHRoaXMuaXNGb2N1c2VkID0gZm9jdXM7XG4gICAgdGhpcy5zaG93TGlzdCA9IGZvY3VzO1xuICAgIHRoaXMucG9zaXRpb25Cb3goKTtcbiAgfVxuXG4gIC8vLyBoZXJlIGZ1bmN0aW9uIHRvIHBvc2l0aW9uIGJveCBlbGVtZW50IHRvcCBvciBib3R0b21cbiAgcG9zaXRpb25Cb3goKSB7XG4gICAgaWYgKHRoaXMuaXNNb2JpbGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjb21wb25lbnRCb3ggPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKCFjb21wb25lbnRCb3gpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgY29tcG9uZW50Qm94UG9zaXRpb24gPSBjb21wb25lbnRCb3guZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgaW5wdXRJZCA9IGNvbXBvbmVudEJveC5xdWVyeVNlbGVjdG9yKCcuZm9ybS1maWVsZCcpO1xuICAgIGNvbnN0IGJveCA9IGNvbXBvbmVudEJveC5xdWVyeVNlbGVjdG9yKCcud2NvLXNtYXJ0U2VsZWN0LS1ib3gnKTtcbiAgICBjb25zdCBpbnB1dElkUG9zaXRpb24gPSBpbnB1dElkLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtcbiAgICBjb25zdCBwYWdlSGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0O1xuICAgIGlmIChib3ggJiYgY29tcG9uZW50Qm94UG9zaXRpb24ueSArIDMyMCA+PSBwYWdlSGVpZ2h0KSB7XG4gICAgICBib3guc3R5bGUuYm90dG9tID0gaW5wdXRJZFBvc2l0aW9uICsgJ3B4JztcbiAgICAgIGJveC5zdHlsZS5oZWlnaHQgPSBgdmFyKC0td2NvLXNtYXJ0LXNlbGVjdC1ib3gtbWF4LWhlaWdodClgO1xuICAgICAgYm94LnN0eWxlLnRvcCA9ICdpbml0aWFsJztcbiAgICB9IGVsc2Uge1xuICAgICAgYm94LnN0eWxlLnRvcCA9IGlucHV0SWRQb3NpdGlvbiArICdweCc7XG4gICAgICBib3guc3R5bGUuYm90dG9tID0gJ2luaXRpYWwnO1xuICAgICAgYm94LnN0eWxlLmhlaWdodCA9IGBhdXRvYDtcbiAgICB9XG4gIH1cblxuICBvblNlbGVjdChvcHRpb24/OiBhbnkpIHtcbiAgICBpZiAob3B0aW9uLmRpc2FibGVkIHx8IG9wdGlvbi52aWV3T25seSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy5mb3JtVmFsdWU7XG5cbiAgICBpZiAodGhpcy5tdWx0aVNlbGVjdCkge1xuICAgICAgaWYgKHR5cGVvZiBvcHRpb24udmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIGNvbnN0IGxpc3QgPSB0aGlzLmNvbXBhcmVNdWx0aVZhbHVlc0FycmF5KG9wdGlvbik7XG4gICAgICAgIGNvbnN0IGhhc1ZhbHVlT3B0aW9uID0gbGlzdC5zb21lKChpdGVtOiBhbnkpID0+IGl0ZW0uc2VsZWN0ZWQpO1xuICAgICAgICBpZiAoaGFzVmFsdWVPcHRpb24pIHtcbiAgICAgICAgICB0aGlzLmZvcm1WYWx1ZSA9IGxpc3RcbiAgICAgICAgICAgIC5maWx0ZXIoKGl0ZW06IGFueSkgPT4gIWl0ZW0uc2VsZWN0ZWQpXG4gICAgICAgICAgICAubWFwKChpdGVtOiBhbnkpID0+IGl0ZW0uaXRlbSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5mb3JtVmFsdWUgPSBbLi4uKHRoaXMuZm9ybVZhbHVlIHx8IFtdKSwgb3B0aW9uLnZhbHVlXTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmZvcm1WYWx1ZT8uaW5kZXhPZihvcHRpb24udmFsdWUpO1xuICAgICAgICBpZiAoaW5kZXggIT09IHVuZGVmaW5lZCAmJiBpbmRleCA+IC0xKSB7XG4gICAgICAgICAgdGhpcy5mb3JtVmFsdWU/LnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5mb3JtVmFsdWUgPSBbLi4uKHRoaXMuZm9ybVZhbHVlIHx8IFtdKSwgb3B0aW9uLnZhbHVlXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5hdXRvY29tcGxldGVDb250cm9sLnNldFZhbHVlKHRoaXMuZm9ybVZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb3JtVmFsdWUgPSBvcHRpb24udmFsdWU7XG4gICAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbnRyb2wuc2V0VmFsdWUob3B0aW9uLnZhbHVlKTtcbiAgICAgIHRoaXMuc2hvd0xpc3QgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAob2xkVmFsdWUgIT09IHRoaXMuZm9ybVZhbHVlKSB7XG4gICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoeyB0eXBlOiAndXBkYXRlVmFsdWUnLCB2YWx1ZTogdGhpcy5mb3JtVmFsdWUgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5yZW5kZXJCb3hPcHRpb25zKCk7XG4gIH1cblxuICAvLyBTaG93IGxhYmVsIHNwYW5cbiAgZ2V0IHNlbGVjdGVkTGFiZWwoKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRPcHRpb24gPSB0aGlzLm9wdGlvbnM/LmZpbmQoXG4gICAgICAob3B0aW9uKSA9PlxuICAgICAgICB0aGlzLm5vcm1hbGl6ZVRleHQoU3RyaW5nKG9wdGlvbi52YWx1ZSkpID09PVxuICAgICAgICB0aGlzLm5vcm1hbGl6ZVRleHQoU3RyaW5nKHRoaXMuZm9ybVZhbHVlKSlcbiAgICApO1xuICAgIHJldHVybiBzZWxlY3RlZE9wdGlvbj8ubGFiZWwgfHwgJyAnO1xuICB9XG5cbiAgLy8gc2hvdyBsYWJlbCBtdWx0aSBzZWxlY3RcbiAgZ2V0IHNlbGVjdGVkTGFiZWxNdWx0aSgpOiB7IHZhbHVlOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmcgfVtdIHtcbiAgICBjb25zdCBzZWxlY3RlZE9wdGlvbnMgPSB0aGlzLm9wdGlvbnM/LmZpbHRlcigob3B0aW9uKSA9PiB7XG4gICAgICBpZiAodHlwZW9mIG9wdGlvbi52YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZVZhbHVlQXJyYXkob3B0aW9uKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1WYWx1ZT8uaW5jbHVkZXMob3B0aW9uLnZhbHVlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICghc2VsZWN0ZWRPcHRpb25zPy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuc2hvd01heFNlbGVjdGVkTGFiZWwpIHtcbiAgICAgIHJldHVybiBzZWxlY3RlZE9wdGlvbnM7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgdGhpcy5zaG93TWF4U2VsZWN0ZWRMYWJlbCAmJlxuICAgICAgc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA+IHRoaXMuc2hvd01heFNlbGVjdGVkTGFiZWxcbiAgICApIHtcbiAgICAgIHJldHVybiBzZWxlY3RlZE9wdGlvbnMuc2xpY2UoMCwgdGhpcy5zaG93TWF4U2VsZWN0ZWRMYWJlbCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNlbGVjdGVkT3B0aW9ucztcbiAgfVxuXG4gIHByaXZhdGUgdmFsdWVUb0FycmF5KG9wdGlvbnM6IGFueSkge1xuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhvcHRpb25zKTtcbiAgICBjb25zdCB2YWx1ZTogYW55W10gPSBbXTtcbiAgICBrZXlzLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICBvcHRpb25zW2tleV0gJiYgXG4gICAgICAgIG9wdGlvbnNba2V5XSAhPT0gJycgJiZcbiAgICAgICAgdHlwZW9mIG9wdGlvbnNba2V5XSAhPT0gJ29iamVjdCcgJiYgXG4gICAgICAgIHR5cGVvZiBvcHRpb25zW2tleV0gIT09ICdmdW5jdGlvbicmJiBcbiAgICAgICAgdHlwZW9mIG9wdGlvbnNba2V5XSAhPT0gJ2Jvb2xlYW4nXG4gICAgICApIHtcbiAgICAgICAgdmFsdWUucHVzaChvcHRpb25zW2tleV0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgY29tcGFyZVZhbHVlQXJyYXkob3B0aW9uOiBhbnksIHZhbHVlID0gdGhpcy5mb3JtVmFsdWUpOiBhbnlbXSB7XG4gICAgaWYgKG9wdGlvbiAmJiBvcHRpb24udmFsdWUpIHtcbiAgICAgIGNvbnN0IHZhbHVlc0l0ZW1zID0gdGhpcy52YWx1ZVRvQXJyYXkob3B0aW9uLnZhbHVlKTtcbiAgICAgIHJldHVybiB2YWx1ZS5zb21lKChpdGVtOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgaXRlbUFycmF5ID0gdGhpcy52YWx1ZVRvQXJyYXkoaXRlbSk7XG4gICAgICAgIHJldHVybiBpdGVtQXJyYXkuZXZlcnkoKGl0ZW1WYWx1ZTogYW55KSA9PlxuICAgICAgICAgIHZhbHVlc0l0ZW1zLmluY2x1ZGVzKGl0ZW1WYWx1ZSlcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH1cblxuICBwcml2YXRlIGNvbXBhcmVNdWx0aVZhbHVlc0FycmF5KG9wdGlvbjogYW55LCB2YWx1ZSA9IHRoaXMuZm9ybVZhbHVlKTogYW55W10ge1xuICAgIGlmIChvcHRpb24gJiYgb3B0aW9uLnZhbHVlKSB7XG4gICAgICBjb25zdCB2YWx1ZXNJdGVtcyA9IHRoaXMudmFsdWVUb0FycmF5KG9wdGlvbi52YWx1ZSk7XG4gICAgICBjb25zdCBmb3JtVmFsdWVBcnJheSA9IHZhbHVlLm1hcCgoaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IGl0ZW1BcnJheSA9IHRoaXMudmFsdWVUb0FycmF5KGl0ZW0pO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGluZGV4LFxuICAgICAgICAgIGl0ZW0sXG4gICAgICAgICAgc2VsZWN0ZWQ6IGl0ZW1BcnJheS5zb21lKChpdGVtVmFsdWU6IGFueSkgPT5cbiAgICAgICAgICAgIHZhbHVlc0l0ZW1zLmluY2x1ZGVzKGl0ZW1WYWx1ZSlcbiAgICAgICAgICApLFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgICAvLyBSZW1vdmUgZHVwbGljYXRlIGl0ZW1zXG4gICAgICBjb25zdCB1bmlxdWVGb3JtVmFsdWVBcnJheSA9IEFycmF5LmZyb20oXG4gICAgICAgIG5ldyBTZXQoZm9ybVZhbHVlQXJyYXkubWFwKChpdGVtOiBhbnkpID0+IEpTT04uc3RyaW5naWZ5KGl0ZW0pKSlcbiAgICAgICkubWFwKChpdGVtOiBhbnkpID0+IEpTT04ucGFyc2UoaXRlbSkpO1xuXG4gICAgICByZXR1cm4gdW5pcXVlRm9ybVZhbHVlQXJyYXk7XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGdldCBzZWxlY3RlZExhYmVsTXVsdGlDb3VudCgpOiBudW1iZXIge1xuICAgIGNvbnN0IHNob3cgPSB0aGlzLnNob3dNYXhTZWxlY3RlZExhYmVsIHx8IDA7XG4gICAgY29uc3Qgc2VsZWN0ZWRPcHRpb25zID0gdGhpcy5vcHRpb25zPy5maWx0ZXIoKG9wdGlvbikgPT5cbiAgICAgIHRoaXMuZm9ybVZhbHVlPy5pbmNsdWRlcyhvcHRpb24udmFsdWUpXG4gICAgKTtcbiAgICBpZiAoIXNlbGVjdGVkT3B0aW9ucz8ubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICBpZiAoc2hvdyA+IDAgJiYgc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA+IHNob3cpIHtcbiAgICAgIHJldHVybiBzZWxlY3RlZE9wdGlvbnMubGVuZ3RoIC0gc2hvdztcbiAgICB9XG5cbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHJlbW92ZUl0ZW0ob3B0aW9uOiBhbnkpIHtcbiAgICB0aGlzLm9uU2VsZWN0KG9wdGlvbik7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnNob3dMaXN0ID0gZmFsc2U7XG4gICAgfSwgMTAwKTtcbiAgfVxuXG4gIG9uS2V5UHJlc3MoZXZlbnQ6IGFueSkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5yZW5kZXJCb3hPcHRpb25zKCk7XG4gIH1cblxuICBvbkZpbHRlcihldmVudDogYW55KSB7XG4gICAgY29uc3QgdmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgdGhpcy5yZW5kZXJCb3hPcHRpb25zKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZmlsdGVyZWRPcHRpb25zLmxlbmd0aCkge1xuICAgICAgdGhpcy5yZW5kZXJCb3hPcHRpb25zKHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBvblJlc2l6ZSgpIHtcbiAgICB0aGlzLnJlbmRlckJveE9wdGlvbnMoKTtcbiAgICB0aGlzLnBvc2l0aW9uQm94KCk7XG4gIH1cblxuICBvbkZvY3VzT3V0KCkge1xuICAgIGlmICghdGhpcy5wcmV2ZW50RXNjYXBlRm9jdXMgJiYgIXRoaXMuaXNNb2JpbGUpIHtcbiAgICAgIHRoaXMuaXNGb2N1c2VkID0gZmFsc2U7XG4gICAgICB0aGlzLnNob3dMaXN0ID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgY2xvc2VMaXN0KCkge1xuICAgIHRoaXMucHJldmVudEVzY2FwZUZvY3VzID0gdHJ1ZTtcbiAgICB0aGlzLmlzRm9jdXNlZCA9IGZhbHNlO1xuICAgIHRoaXMuc2hvd0xpc3QgPSBmYWxzZTtcbiAgfVxuXG4gIHNlbGVjdGVkVmFsdWUob3B0aW9uOiB7IHZhbHVlOiBhbnk7IGxhYmVsOiBzdHJpbmc7IHNhZmVIdG1sQ29udGVudDogYW55IH0pIHtcbiAgICBpZiAodGhpcy5tdWx0aVNlbGVjdCkge1xuICAgICAgaWYgKHR5cGVvZiBvcHRpb24udmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIGlmIChvcHRpb24gJiYgb3B0aW9uLnZhbHVlKSB7XG4gICAgICAgICAgY29uc3QgdmFsdWVzSXRlbXMgPSB0aGlzLnZhbHVlVG9BcnJheShvcHRpb24udmFsdWUpO1xuICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1WYWx1ZS5zb21lKChpdGVtOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW1BcnJheSA9IHRoaXMudmFsdWVUb0FycmF5KGl0ZW0pO1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW1BcnJheS5ldmVyeSgoaXRlbVZhbHVlOiBhbnkpID0+XG4gICAgICAgICAgICAgIHZhbHVlc0l0ZW1zLmluY2x1ZGVzKGl0ZW1WYWx1ZSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1WYWx1ZT8uaW5jbHVkZXMob3B0aW9uLnZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gb3B0aW9uLnZhbHVlID09PSB0aGlzLmZvcm1WYWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyQm94T3B0aW9ucyhmaWx0ZXJWYWx1ZTogc3RyaW5nIHwgbnVsbCA9IG51bGwpIHtcbiAgICBpZiAoIXRoaXMub3B0aW9ucyB8fCAhdGhpcy5vcHRpb25zLmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IHRoaXMub3B0aW9uc1xuICAgICAgPy5tYXAoKG9wdGlvbikgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHZhbHVlOiBvcHRpb24udmFsdWUsXG4gICAgICAgICAgaWNvblByZWZpeDogb3B0aW9uLmljb25QcmVmaXgsXG4gICAgICAgICAgaHRtbExhYmVsOiBvcHRpb24uc2FmZUh0bWxDb250ZW50IHx8IG9wdGlvbi5sYWJlbCxcbiAgICAgICAgICBkaXNhYmxlZDogb3B0aW9uLmRpc2FibGVkLFxuICAgICAgICAgIHZpZXdPbmx5OiBvcHRpb24udmlld09ubHksXG4gICAgICAgIH07XG4gICAgICB9KVxuICAgICAgLmZpbHRlcigob3B0aW9uKSA9PiB7XG4gICAgICAgIGlmICghZmlsdGVyVmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBub3JtYWxpemVkRmlsdGVyID0gdGhpcy5ub3JtYWxpemVUZXh0KGZpbHRlclZhbHVlKTtcbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZExhYmVsID0gdGhpcy5ub3JtYWxpemVUZXh0KFxuICAgICAgICAgIG9wdGlvbi5odG1sTGFiZWw/LnRvU3RyaW5nKCkgfHwgJydcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZWRMYWJlbC5pbmNsdWRlcyhub3JtYWxpemVkRmlsdGVyKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBub3JtYWxpemVUZXh0KHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRleHRcbiAgICAgIC5yZXBsYWNlKC9bXFxXX10rL2csICcnKSAvLyBSZW1vdmUgY2FyYWN0ZXJlcyBlc3BlY2lhaXMgZSBzdWJsaW5oYWRvc1xuICAgICAgLnRvTG93ZXJDYXNlKCk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJ3Y28tc21hcnRTZWxlY3RcIlxuICBbbmdDbGFzc109XCJ7XG4gICAgJ3djby1zbWFydFNlbGVjdC0tb3Blbic6IHNob3dMaXN0LFxuICAgICd3Y28tc21hcnRTZWxlY3QtLWlzTW9iaWxlJzogaXNNb2JpbGUsXG59XCJcbiAgKHJlc2l6ZSk9XCJvblJlc2l6ZSgpXCJcbiAgKG1vdXNlbGVhdmUpPVwib25Gb2N1c091dCgpXCJcbj5cbiAgPGRpdiBjbGFzcz1cImZvcm0tZmllbGRcIj5cbiAgICA8aW5wdXRcbiAgICAgICpuZ0lmPVwiIW11bHRpU2VsZWN0XCJcbiAgICAgIGNsYXNzPVwiZm9ybS1maWVsZF9faW5wdXRcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnZm9ybS1maWVsZC0tZXJyb3InOlxuICAgICAgICAgIGF1dG9jb21wbGV0ZUNvbnRyb2wuaW52YWxpZCAmJiBhdXRvY29tcGxldGVDb250cm9sLnRvdWNoZWRcbiAgICAgIH1cIlxuICAgICAgW2Rpc2FibGVkXT1cImF1dG9jb21wbGV0ZUNvbnRyb2wuZGlzYWJsZWRcIlxuICAgICAgaWQ9XCJ7eyBpbnB1dElkID8gaW5wdXRJZCA6ICcnIH19XCJcbiAgICAgIG5hbWU9XCJ7eyBpbnB1dE5hbWUgPyBpbnB1dE5hbWUgOiAnJyB9fVwiXG4gICAgICAoY2xpY2spPVwib25Gb2N1c0luKHRydWUpXCJcbiAgICAgIChmb2N1c2luKT1cIm9uRm9jdXNJbigpXCJcbiAgICAgIChrZXl1cC5lc2NhcGUpPVwib25Gb2N1c091dCgpXCJcbiAgICAgIChrZXlwcmVzcyk9XCJvbktleVByZXNzKCRldmVudClcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgIFt2YWx1ZV09XCJzZWxlY3RlZExhYmVsXCJcbiAgICAgIGFyaWEtbGFiZWw9XCJTZWxlY2lvbmUgdW1hIG9ww6fDo29cIlxuICAgIC8+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJtdWx0aVNlbGVjdFwiXG4gICAgICBjbGFzcz1cImZvcm0tZmllbGRfX2lucHV0IHJlYWRvbmx5IG11bHRpU2VsZWN0XCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAnZm9ybS1maWVsZC0tZXJyb3InOiBhdXRvY29tcGxldGVDb250cm9sLmludmFsaWQgJiYgYXV0b2NvbXBsZXRlQ29udHJvbC50b3VjaGVkLFxuICAgICAgICAgICAgICAgICdmb3JtLWZpZWxkLS1kaXNhYmxlZCc6IGF1dG9jb21wbGV0ZUNvbnRyb2wuZGlzYWJsZWQsXG4gICAgICAgICAgICB9XCJcbiAgICAgIChjbGljayk9XCJvbkZvY3VzSW4odHJ1ZSlcIlxuICAgICAgKGZvY3VzaW4pPVwib25Gb2N1c0luKClcIlxuICAgICAgKGtleXVwLmVzY2FwZSk9XCJvbkZvY3VzT3V0KClcIlxuICAgID5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXNlbGVjdGVkTGFiZWxNdWx0aS5sZW5ndGhcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ3Y28tc21hcnQtc2VsZWN0LXBsYWNlaG9sZGVyXCI+e3sgcGxhY2Vob2xkZXIgfHwgJ1NlbGVjaW9uZSB1bWEgb3DDp8OjbycgfX08L3NwYW4+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZExhYmVsTXVsdGkubGVuZ3RoXCI+XG4gICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCBvcHRpb25TZWxlY3RlZCBvZiBzZWxlY3RlZExhYmVsTXVsdGlcIiBjbGFzcz1cIndjby1zbWFydC1zZWxlY3QtaXRlbVwiPlxuICAgICAgICAgIHt7b3B0aW9uU2VsZWN0ZWQubGFiZWx9fSBcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIndjby1zbWFydC1zZWxlY3QtcmVtb3ZlXCIgKGNsaWNrKT1cInJlbW92ZUl0ZW0ob3B0aW9uU2VsZWN0ZWQpXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCI+Y2xvc2U8L3NwYW4+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3Y28tc21hcnQtc2VsZWN0LWl0ZW1cIiAgKm5nSWY9XCJzZWxlY3RlZExhYmVsTXVsdGlDb3VudCA+PSAxXCI+XG4gICAgICAgICAgICAre3tzZWxlY3RlZExhYmVsTXVsdGlDb3VudH19IFxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbiAgICA8bGFiZWw+e3sgbGFiZWwgfX08L2xhYmVsPlxuICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIj57eyBJY29uTWF0ZXJpYWwgfX08L3NwYW4+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgY2xhc3M9XCJ3Y28tc21hcnRTZWxlY3QtLWJveFwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ3djby1zbWFydFNlbGVjdC0tYm94LS1vcGVuJzogc2hvd0xpc3QgJiYgIWF1dG9jb21wbGV0ZUNvbnRyb2wuZGlzYWJsZWRcbiAgICB9XCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJ3Y28tc21hcnRTZWxlY3QtLWlzTW9iaWxlLWNsb3NlXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIChjbGljayk9XCJjbG9zZUxpc3QoKVwiXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tcHJpbWFyeSBidG4tb3V0bGluZSBtYi1uYW5vXCJcbiAgICAgID5cbiAgICAgICAgZmVjaGFyXG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8dWw+XG4gICAgICA8bGlcbiAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgY2xhc3M9XCJ3Y28tc21hcnQtc2VsZWN0ZWQtZmlsdGVyXCJcbiAgICAgICAgKm5nSWY9XCJzaG93TGlzdCAmJiBzaG93U2VhcmNoXCJcbiAgICAgID5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJidXNjYXJcIlxuICAgICAgICAgIChrZXl1cCk9XCJvbkZpbHRlcigkZXZlbnQpXCJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiU2VhcmNoIHRocm91Z2ggc2l0ZSBjb250ZW50XCJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIC8+XG4gICAgICA8L2xpPlxuICAgICAgPGxpXG4gICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZmlsdGVyZWRPcHRpb25zOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgW3RhYmluZGV4XT1cImkgKyAxXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgJ3djby1zbWFydC1zZWxlY3RlZCc6IHNlbGVjdGVkVmFsdWUob3B0aW9uKSxcbiAgICAgICAgICAgICd3Yy1zbWFydC1zZWxlY3QtZGlzYWJsZWQtb3B0aW9uJzogb3B0aW9uLmRpc2FibGVkLFxuICAgICAgICAgICAgJ3djLXNtYXJ0LXNlbGVjdC12aWV3LW9ubHktb3B0aW9uJzogb3B0aW9uLnZpZXdPbmx5LFxuICAgICAgICB9XCJcbiAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0KG9wdGlvbilcIlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIndjby1zbWFydC1zZWxlY3QtbGFiZWwtcHJlZml4XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInR5cGVQcmVmaXggPT09ICdjaGVja2JveCdcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWRcIj5cbiAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICBzZWxlY3RlZFZhbHVlKG9wdGlvbikgPyBcImNoZWNrX2JveFwiIDogXCJjaGVja19ib3hfb3V0bGluZV9ibGFua1wiXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInR5cGVQcmVmaXggPT09ICdyYWRpbydcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWRcIj5cbiAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICBzZWxlY3RlZFZhbHVlKG9wdGlvbilcbiAgICAgICAgICAgICAgICAgID8gXCJyYWRpb19idXR0b25fY2hlY2tlZFwiXG4gICAgICAgICAgICAgICAgICA6IFwicmFkaW9fYnV0dG9uX3VuY2hlY2tlZFwiXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgISFvcHRpb24uaWNvblByZWZpeCAmJlxuICAgICAgICAgICAgICB0eXBlUHJlZml4ICE9PSAncmFkaW8nICYmXG4gICAgICAgICAgICAgIHR5cGVQcmVmaXggIT09ICdjaGVja2JveCdcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29ucy1vdXRsaW5lZFwiPlxuICAgICAgICAgICAgICB7eyBvcHRpb24uaWNvblByZWZpeCB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3M9XCJ3Y28tc21hcnQtc2VsZWN0LWxhYmVsXCJcbiAgICAgICAgICBbaW5uZXJIVE1MXT1cIm9wdGlvbi5odG1sTGFiZWxcIlxuICAgICAgICA+PC9zcGFuPlxuICAgICAgPC9saT5cbiAgICAgIDxsaSAqbmdJZj1cIiFmaWx0ZXJlZE9wdGlvbnMubGVuZ3RoXCI+XG4gICAgICAgIDxwIGNsYXNzPVwiZGlzcGxheS1ib2R5XCI+e3sgdGV4dEVtcHR5IH19PC9wPlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,59 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, Input, ViewEncapsulation } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ export class UserAvatarComponent {
6
+ /** Nome do usuário */
7
+ userName = "";
8
+ /** Url da imagem opcional */
9
+ userAvatar = "";
10
+ /** Tamanho do componente */
11
+ size = 'md';
12
+ /** Theme mudança de cores do componente */
13
+ theme = 'secondary';
14
+ /** solid tipo com bg predominant */
15
+ solid = false;
16
+ /**
17
+ * @ignore
18
+ */
19
+ userNameLetters = "";
20
+ constructor() { }
21
+ /** Mudança de parâmetros dinâmicos */
22
+ ngOnChanges() {
23
+ this._prepareNameLetters();
24
+ }
25
+ /** Retorne o nome abreviado */
26
+ _prepareNameLetters() {
27
+ let capitalizeLetters = "";
28
+ if (this.userName) {
29
+ capitalizeLetters = this.userName.charAt(0);
30
+ let _arrUserName = this.userName.split(' ');
31
+ if (_arrUserName.length > 1) {
32
+ capitalizeLetters += _arrUserName[_arrUserName.length - 1].charAt(0);
33
+ }
34
+ }
35
+ this.userNameLetters = capitalizeLetters.toUpperCase();
36
+ }
37
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserAvatarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
38
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: UserAvatarComponent, isStandalone: true, selector: "wco-avatar", inputs: { userName: ["name", "userName"], userAvatar: ["image", "userAvatar"], size: "size", theme: "theme", solid: "solid" }, usesOnChanges: true, ngImport: i0, template: "<div\r\n [class]=\"\r\n 'wco-user-avatar wco-user-avatar__size--' + size + ' wco-user-avatar__theme--' + theme + ' ' + (solid ? 'wco-user-solid' : '') \"\r\n [title]=\"userName\" >\r\n <span>{{userNameLetters}}</span>\r\n <img *ngIf=\"userAvatar\" [src]=\"userAvatar\" [alt]=\"userName\" />\r\n</div>\r\n", styles: [".wco-user-avatar{--wco-user-avatar-bg: var(--wco-color-secondary-50);--wco-user-avatar-color: var(--wco-color-secondary-500);overflow:hidden;position:relative;border-radius:50%;background:var(--wco-user-avatar-bg);display:flex;align-items:center;justify-content:center;border:1px solid var(--wco-user-avatar-color, #576ff7);width:var(--wco-size-xy-user-photo, 48px);height:var(--wco-size-xy-user-photo, 48px)}.wco-user-avatar.wco-user-avatar__size--xs{--wco-size-xy-user-photo: 24px;--wco-size-user-photo: 11px}.wco-user-avatar.wco-user-avatar__size--sm{--wco-size-xy-user-photo: 32px;--wco-size-user-photo: 14px}.wco-user-avatar.wco-user-avatar__size--md{--wco-size-xy-user-photo: 48px;--wco-size-user-photo: 16px}.wco-user-avatar.wco-user-avatar__size--lg{--wco-size-xy-user-photo: 56px;--wco-size-user-photo: 18px}.wco-user-avatar.wco-user-avatar__size--xl{--wco-size-xy-user-photo: 90px;--wco-size-user-photo: 20px}.wco-user-avatar .wco-user-avatar__theme--primary{--wco-user-avatar-color: var(--wco-color-primary-500);--wco-user-avatar-bg: var(--wco-color-primary-50)}.wco-user-avatar .wco-user-avatar__theme--secondary{--wco-user-avatar-color: var(--wco-color-secondary-500);--wco-user-avatar-bg: var(--wco-color-secondary-50)}.wco-user-avatar .wco-user-avatar__theme--light{--wco-user-avatar-color: var(--wco-color-neutral-100);--wco-user-avatar-bg: var(--wco-color-neutral-900)}.wco-user-avatar .wco-user-avatar__theme--dark{--wco-user-avatar-color: var(--wco-color-neutral-700);--wco-user-avatar-bg: var(--wco-color-neutral-50)}.wco-user-avatar.wco-user-solid.wco-user-avatar__theme--primary{--wco-user-avatar-bg: var(--wco-color-primary-500);--wco-user-avatar-color: var(--wco-color-primary-50)}.wco-user-avatar.wco-user-solid.wco-user-avatar__theme--secondary{--wco-user-avatar-bg: var(--wco-color-secondary-500);--wco-user-avatar-color: var(--wco-color-secondary-50)}.wco-user-avatar.wco-user-solid.wco-user-avatar__theme--light{--wco-user-avatar-bg: var(--wco-color-neutral-100);--wco-user-avatar-color: var(--wco-color-neutral-900)}.wco-user-avatar.wco-user-solid.wco-user-avatar__theme--dark{--wco-user-avatar-bg: var(--wco-color-neutral-700);--wco-user-avatar-color: var(--wco-color-neutral-50)}.wco-user-avatar span,.wco-user-avatar img{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);padding:0;margin:0;display:block}.wco-user-avatar img{width:var(--wco-size-xy-user-photo);height:var(--wco-size-xy-user-photo);object-fit:cover}.wco-user-avatar span{font-family:var(--wco-font-family, \"Roboto\", sans-serif);width:var(--wco-size-xy-user-photo);text-align:center;font-weight:700;font-size:var(--wco-size-user-photo, 18px);color:var(--wco-user-avatar-color, #ffffff);letter-spacing:.4px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
39
+ }
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserAvatarComponent, decorators: [{
41
+ type: Component,
42
+ args: [{ selector: 'wco-avatar', standalone: true, encapsulation: ViewEncapsulation.None, imports: [CommonModule], template: "<div\r\n [class]=\"\r\n 'wco-user-avatar wco-user-avatar__size--' + size + ' wco-user-avatar__theme--' + theme + ' ' + (solid ? 'wco-user-solid' : '') \"\r\n [title]=\"userName\" >\r\n <span>{{userNameLetters}}</span>\r\n <img *ngIf=\"userAvatar\" [src]=\"userAvatar\" [alt]=\"userName\" />\r\n</div>\r\n", styles: [".wco-user-avatar{--wco-user-avatar-bg: var(--wco-color-secondary-50);--wco-user-avatar-color: var(--wco-color-secondary-500);overflow:hidden;position:relative;border-radius:50%;background:var(--wco-user-avatar-bg);display:flex;align-items:center;justify-content:center;border:1px solid var(--wco-user-avatar-color, #576ff7);width:var(--wco-size-xy-user-photo, 48px);height:var(--wco-size-xy-user-photo, 48px)}.wco-user-avatar.wco-user-avatar__size--xs{--wco-size-xy-user-photo: 24px;--wco-size-user-photo: 11px}.wco-user-avatar.wco-user-avatar__size--sm{--wco-size-xy-user-photo: 32px;--wco-size-user-photo: 14px}.wco-user-avatar.wco-user-avatar__size--md{--wco-size-xy-user-photo: 48px;--wco-size-user-photo: 16px}.wco-user-avatar.wco-user-avatar__size--lg{--wco-size-xy-user-photo: 56px;--wco-size-user-photo: 18px}.wco-user-avatar.wco-user-avatar__size--xl{--wco-size-xy-user-photo: 90px;--wco-size-user-photo: 20px}.wco-user-avatar .wco-user-avatar__theme--primary{--wco-user-avatar-color: var(--wco-color-primary-500);--wco-user-avatar-bg: var(--wco-color-primary-50)}.wco-user-avatar .wco-user-avatar__theme--secondary{--wco-user-avatar-color: var(--wco-color-secondary-500);--wco-user-avatar-bg: var(--wco-color-secondary-50)}.wco-user-avatar .wco-user-avatar__theme--light{--wco-user-avatar-color: var(--wco-color-neutral-100);--wco-user-avatar-bg: var(--wco-color-neutral-900)}.wco-user-avatar .wco-user-avatar__theme--dark{--wco-user-avatar-color: var(--wco-color-neutral-700);--wco-user-avatar-bg: var(--wco-color-neutral-50)}.wco-user-avatar.wco-user-solid.wco-user-avatar__theme--primary{--wco-user-avatar-bg: var(--wco-color-primary-500);--wco-user-avatar-color: var(--wco-color-primary-50)}.wco-user-avatar.wco-user-solid.wco-user-avatar__theme--secondary{--wco-user-avatar-bg: var(--wco-color-secondary-500);--wco-user-avatar-color: var(--wco-color-secondary-50)}.wco-user-avatar.wco-user-solid.wco-user-avatar__theme--light{--wco-user-avatar-bg: var(--wco-color-neutral-100);--wco-user-avatar-color: var(--wco-color-neutral-900)}.wco-user-avatar.wco-user-solid.wco-user-avatar__theme--dark{--wco-user-avatar-bg: var(--wco-color-neutral-700);--wco-user-avatar-color: var(--wco-color-neutral-50)}.wco-user-avatar span,.wco-user-avatar img{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);padding:0;margin:0;display:block}.wco-user-avatar img{width:var(--wco-size-xy-user-photo);height:var(--wco-size-xy-user-photo);object-fit:cover}.wco-user-avatar span{font-family:var(--wco-font-family, \"Roboto\", sans-serif);width:var(--wco-size-xy-user-photo);text-align:center;font-weight:700;font-size:var(--wco-size-user-photo, 18px);color:var(--wco-user-avatar-color, #ffffff);letter-spacing:.4px}\n"] }]
43
+ }], ctorParameters: function () { return []; }, propDecorators: { userName: [{
44
+ type: Input,
45
+ args: ['name']
46
+ }], userAvatar: [{
47
+ type: Input,
48
+ args: ['image']
49
+ }], size: [{
50
+ type: Input,
51
+ args: ['size']
52
+ }], theme: [{
53
+ type: Input,
54
+ args: ['theme']
55
+ }], solid: [{
56
+ type: Input,
57
+ args: ['solid']
58
+ }] } });
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hdmF0YXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvbmVudHMvc3JjL2xpYi91c2VyLWF2YXRhci91c2VyLWF2YXRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tcG9uZW50cy9zcmMvbGliL3VzZXItYXZhdGFyL3VzZXItYXZhdGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBVS9FLE1BQU0sT0FBTyxtQkFBbUI7SUFFOUIsc0JBQXNCO0lBQ1AsUUFBUSxHQUFXLEVBQUUsQ0FBQztJQUNyQyw2QkFBNkI7SUFDYixVQUFVLEdBQVcsRUFBRSxDQUFDO0lBQ3hDLDZCQUE2QjtJQUNkLElBQUksR0FBcUMsSUFBSSxDQUFDO0lBQzdELDRDQUE0QztJQUM1QixLQUFLLEdBQStDLFdBQVcsQ0FBQztJQUVoRixxQ0FBcUM7SUFDckIsS0FBSyxHQUFZLEtBQUssQ0FBQztJQUV2Qzs7TUFFRTtJQUNLLGVBQWUsR0FBVyxFQUFFLENBQUM7SUFFcEMsZ0JBQWdCLENBQUM7SUFHakIsc0NBQXNDO0lBQ3RDLFdBQVc7UUFDVCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsK0JBQStCO0lBQ3ZCLG1CQUFtQjtRQUN6QixJQUFJLGlCQUFpQixHQUFXLEVBQUUsQ0FBQztRQUNuQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUc7WUFDbEIsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUMsSUFBSSxZQUFZLEdBQWEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEQsSUFBSSxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDM0IsaUJBQWlCLElBQUksWUFBWSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3JFO1NBQ0Y7UUFDRCxJQUFJLENBQUMsZUFBZSxHQUFHLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3pELENBQUM7d0dBdENVLG1CQUFtQjs0RkFBbkIsbUJBQW1CLDBOQ1hoQyx5VEFPQSw2dEZEQ1ksWUFBWTs7NEZBR1gsbUJBQW1CO2tCQVIvQixTQUFTOytCQUNFLFlBQVksY0FDVixJQUFJLGlCQUVELGlCQUFpQixDQUFDLElBQUksV0FDNUIsQ0FBQyxZQUFZLENBQUM7MEVBTVIsUUFBUTtzQkFBdEIsS0FBSzt1QkFBQyxNQUFNO2dCQUVHLFVBQVU7c0JBQXpCLEtBQUs7dUJBQUMsT0FBTztnQkFFQyxJQUFJO3NCQUFsQixLQUFLO3VCQUFDLE1BQU07Z0JBRUcsS0FBSztzQkFBcEIsS0FBSzt1QkFBQyxPQUFPO2dCQUdFLEtBQUs7c0JBQXBCLEtBQUs7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnd2NvLWF2YXRhcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICB0ZW1wbGF0ZVVybDogJy4vdXNlci1hdmF0YXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXHJcbiAgc3R5bGVVcmxzOiBbJy4vdXNlci1hdmF0YXIuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVXNlckF2YXRhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcblxyXG4gIC8qKiBOb21lIGRvIHVzdcOhcmlvICovXHJcbiAgQElucHV0KCduYW1lJykgdXNlck5hbWU6IHN0cmluZyA9IFwiXCI7XHJcbiAgLyoqIFVybCBkYSBpbWFnZW0gb3BjaW9uYWwgKi9cclxuICBASW5wdXQoJ2ltYWdlJykgdXNlckF2YXRhcjogc3RyaW5nID0gXCJcIjtcclxuICAvKiogVGFtYW5obyBkbyBjb21wb25lbnRlICAqL1xyXG4gIEBJbnB1dCgnc2l6ZScpIHNpemU6ICd4cycgfCAnc20nIHwgJ21kJyB8ICdsZycgfCAneGwnID0gJ21kJztcclxuICAvKiogVGhlbWUgbXVkYW7Dp2EgZGUgY29yZXMgZG8gY29tcG9uZW50ZSAgKi9cclxuICBASW5wdXQoJ3RoZW1lJykgdGhlbWU6ICdwcmltYXJ5JyB8ICdzZWNvbmRhcnknIHwgJ2xpZ2h0JyB8ICdkYXJrJyA9ICdzZWNvbmRhcnknO1xyXG5cclxuICAvKiogc29saWQgdGlwbyBjb20gYmcgcHJlZG9taW5hbnQgICovXHJcbiAgQElucHV0KCdzb2xpZCcpIHNvbGlkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICogQGlnbm9yZVxyXG4gICovXHJcbiAgcHVibGljIHVzZXJOYW1lTGV0dGVyczogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcblxyXG4gIC8qKiBNdWRhbsOnYSBkZSBwYXLDom1ldHJvcyBkaW7Dom1pY29zICovXHJcbiAgbmdPbkNoYW5nZXMoKSB7XHJcbiAgICB0aGlzLl9wcmVwYXJlTmFtZUxldHRlcnMoKTtcclxuICB9XHJcblxyXG4gIC8qKiBSZXRvcm5lIG8gbm9tZSBhYnJldmlhZG8gKi9cclxuICBwcml2YXRlIF9wcmVwYXJlTmFtZUxldHRlcnMoKTogdm9pZCB7XHJcbiAgICBsZXQgY2FwaXRhbGl6ZUxldHRlcnM6IHN0cmluZyA9IFwiXCI7XHJcbiAgICBpZiggdGhpcy51c2VyTmFtZSApIHtcclxuICAgICAgY2FwaXRhbGl6ZUxldHRlcnMgPSB0aGlzLnVzZXJOYW1lLmNoYXJBdCgwKTtcclxuICAgICAgbGV0IF9hcnJVc2VyTmFtZTogc3RyaW5nW10gPSB0aGlzLnVzZXJOYW1lLnNwbGl0KCcgJyk7XHJcbiAgICAgIGlmIChfYXJyVXNlck5hbWUubGVuZ3RoID4gMSkge1xyXG4gICAgICAgIGNhcGl0YWxpemVMZXR0ZXJzICs9IF9hcnJVc2VyTmFtZVtfYXJyVXNlck5hbWUubGVuZ3RoIC0xXS5jaGFyQXQoMCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMudXNlck5hbWVMZXR0ZXJzID0gY2FwaXRhbGl6ZUxldHRlcnMudG9VcHBlckNhc2UoKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXZcclxuICBbY2xhc3NdPVwiXHJcbiAgICAnd2NvLXVzZXItYXZhdGFyIHdjby11c2VyLWF2YXRhcl9fc2l6ZS0tJyArIHNpemUgKyAnIHdjby11c2VyLWF2YXRhcl9fdGhlbWUtLScgKyB0aGVtZSArICcgJyArIChzb2xpZCA/ICd3Y28tdXNlci1zb2xpZCcgOiAnJykgXCJcclxuICBbdGl0bGVdPVwidXNlck5hbWVcIiA+XHJcbiAgPHNwYW4+e3t1c2VyTmFtZUxldHRlcnN9fTwvc3Bhbj5cclxuICA8aW1nICpuZ0lmPVwidXNlckF2YXRhclwiIFtzcmNdPVwidXNlckF2YXRhclwiIFthbHRdPVwidXNlck5hbWVcIiAvPlxyXG48L2Rpdj5cclxuIl19
@@ -13,7 +13,9 @@ export * from './lib/tabs/tabs.component';
13
13
  export * from './lib/tabs/tabs.types';
14
14
  //Pagination
15
15
  export * from './lib/pagination/pagination.component';
16
+ // Avatar
17
+ export * from './lib/user-avatar/user-avatar.component';
16
18
  // Smart Select
17
19
  export * from './lib/smart-select/smart-select.component';
18
20
  export * from './lib/smart-select/smart-select-options.component';
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC1jb21wb25lbnRzL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywyQkFBMkIsQ0FBQztBQUcxQyxtQkFBbUI7QUFDbkIsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLDhDQUE4QyxDQUFDO0FBSTdELGFBQWE7QUFDYixjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsdUJBQXVCLENBQUM7QUFHdEMsYUFBYTtBQUNiLGNBQWMsdUNBQXVDLENBQUM7QUFHdEQsZUFBZTtBQUNmLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxtREFBbUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygbmd4LWZlbml4ZHNcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zdGVwL3N0ZXAuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0ZXBwZXIvc3RlcHBlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXBsb2FkL3VwbG9hZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXBsb2FkL3VwbG9hZC50eXBlcyc7XG5cblxuLy8gbXNnIGJveCBmZWVkYmFja1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbXNnLWJveC1mZWVkYmFjay9tc2ctYm94LWZlZWRiYWNrLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tc2ctYm94LWZlZWRiYWNrL21zZy1ib3gtZmVlYmFjay50eXBlcyc7XG5cblxuXG4vL21zZyBuYXZ0YWJzXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWJzL3RhYnMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYnMvdGFicy50eXBlcyc7XG5cblxuLy9QYWdpbmF0aW9uIFxuZXhwb3J0ICogZnJvbSAnLi9saWIvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudCc7XG5cblxuLy8gU21hcnQgU2VsZWN0XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zbWFydC1zZWxlY3Qvc21hcnQtc2VsZWN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zbWFydC1zZWxlY3Qvc21hcnQtc2VsZWN0LW9wdGlvbnMuY29tcG9uZW50JzsiXX0=
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC1jb21wb25lbnRzL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywyQkFBMkIsQ0FBQztBQUcxQyxtQkFBbUI7QUFDbkIsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLDhDQUE4QyxDQUFDO0FBSTdELGFBQWE7QUFDYixjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsdUJBQXVCLENBQUM7QUFHdEMsYUFBYTtBQUNiLGNBQWMsdUNBQXVDLENBQUM7QUFFdEQsU0FBUztBQUNULGNBQWMseUNBQXlDLENBQUE7QUFHdkQsZUFBZTtBQUNmLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxtREFBbUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygbmd4LWZlbml4ZHNcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zdGVwL3N0ZXAuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0ZXBwZXIvc3RlcHBlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXBsb2FkL3VwbG9hZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXBsb2FkL3VwbG9hZC50eXBlcyc7XG5cblxuLy8gbXNnIGJveCBmZWVkYmFja1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbXNnLWJveC1mZWVkYmFjay9tc2ctYm94LWZlZWRiYWNrLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tc2ctYm94LWZlZWRiYWNrL21zZy1ib3gtZmVlYmFjay50eXBlcyc7XG5cblxuXG4vL21zZyBuYXZ0YWJzXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWJzL3RhYnMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYnMvdGFicy50eXBlcyc7XG5cblxuLy9QYWdpbmF0aW9uIFxuZXhwb3J0ICogZnJvbSAnLi9saWIvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudCc7XG5cbi8vIEF2YXRhclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdXNlci1hdmF0YXIvdXNlci1hdmF0YXIuY29tcG9uZW50J1xuXG5cbi8vIFNtYXJ0IFNlbGVjdFxuZXhwb3J0ICogZnJvbSAnLi9saWIvc21hcnQtc2VsZWN0L3NtYXJ0LXNlbGVjdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc21hcnQtc2VsZWN0L3NtYXJ0LXNlbGVjdC1vcHRpb25zLmNvbXBvbmVudCc7Il19