@wizco/fenixds-ngx 17.4.2 → 17.4.5

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.
@@ -94,6 +94,18 @@ export class SmartSelectComponent {
94
94
  this.isFocused = focus;
95
95
  this.showList = focus;
96
96
  this.positionBox();
97
+ this.focusSearchElementor();
98
+ }
99
+ focusSearchElementor() {
100
+ if (this.showSearch) {
101
+ // Caso ele tenha a busca habilitada
102
+ setTimeout(() => {
103
+ const searchElement = this.el.nativeElement.querySelector('.wco-smartSelect--search');
104
+ if (searchElement) {
105
+ searchElement.focus();
106
+ }
107
+ }, 400);
108
+ }
97
109
  }
98
110
  /// here function to position box element top or bottom
99
111
  positionBox() {
@@ -163,7 +175,7 @@ export class SmartSelectComponent {
163
175
  get selectedLabel() {
164
176
  const selectedOption = this.options?.find((option) => this.normalizeText(String(option.value)) ===
165
177
  this.normalizeText(String(this.formValue)));
166
- return selectedOption?.label || ' ';
178
+ return selectedOption?.label || '';
167
179
  }
168
180
  // show label multi select
169
181
  get selectedLabelMulti() {
@@ -331,7 +343,7 @@ export class SmartSelectComponent {
331
343
  useExisting: SmartSelectComponent,
332
344
  multi: true,
333
345
  },
334
- ], 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\" [ngClass]=\"{'form--error': hasError}\">\n <input\n *ngIf=\"!multiSelect\"\n class=\"form-field__input\"\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 [required]=\"required\"\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]=\"{'form-field--error': hasError, 'form-field--disabled': autocompleteControl.disabled }\"\n [class.required]=\"required\"\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 wco-smart-select--arrow\">{{ 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]=\"placeholderSearch\"\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: [":host{width:100%}.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-smart-select--arrow{pointer-events:none;color:var(--wco-color-primary-600)}.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 });
346
+ ], 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\" [ngClass]=\"{'form--error': hasError}\">\n <input\n *ngIf=\"!multiSelect\"\n class=\"form-field__input\"\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 [required]=\"required\"\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]=\"{'form-field--error': hasError, 'form-field--disabled': autocompleteControl.disabled }\"\n [class.required]=\"required\"\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 wco-smart-select--arrow\">{{ 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]=\"placeholderSearch\"\n (keyup)=\"onFilter($event)\"\n aria-label=\"Pesquisar\"\n [attr.autofocus]=\"true\"\n [attr.tabindex]=\"0\"\n class=\"wco-smartSelect--search\"\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: [":host{width:100%}.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:has(.wco-smartSelect--search:focus) .form-field input::placeholder{opacity:1}.wco-smartSelect:has(.wco-smartSelect--search:focus) .form-field input+label{color:var(--wco-input-color-label);top:0;transform:translateY(-50%) translate(-10px) scale(.9)!important}.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-smart-select--arrow{pointer-events:none;color:var(--wco-color-primary-600)}.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:has(input) li:first-child{position:sticky;top:0;background-color:var(--wco-smart-select-box-default-color-bg);z-index:1}.wco-smartSelect .wco-smartSelect--box ul::-webkit-scrollbar{width:4px}.wco-smartSelect .wco-smartSelect--box ul::-webkit-scrollbar-track{background-color:#ffffff75}.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;border-radius:var(--wco-smart-select-box-radius) 0 0 0;border-bottom:1px solid #ccc;box-shadow:4px 0 1px var(--wco-smart-select-box-default-color-bg);overflow:hidden}.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}.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 });
335
347
  }
336
348
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SmartSelectComponent, decorators: [{
337
349
  type: Component,
@@ -346,7 +358,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
346
358
  useExisting: SmartSelectComponent,
347
359
  multi: true,
348
360
  },
349
- ], 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\" [ngClass]=\"{'form--error': hasError}\">\n <input\n *ngIf=\"!multiSelect\"\n class=\"form-field__input\"\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 [required]=\"required\"\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]=\"{'form-field--error': hasError, 'form-field--disabled': autocompleteControl.disabled }\"\n [class.required]=\"required\"\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 wco-smart-select--arrow\">{{ 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]=\"placeholderSearch\"\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: [":host{width:100%}.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-smart-select--arrow{pointer-events:none;color:var(--wco-color-primary-600)}.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"] }]
361
+ ], 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\" [ngClass]=\"{'form--error': hasError}\">\n <input\n *ngIf=\"!multiSelect\"\n class=\"form-field__input\"\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 [required]=\"required\"\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]=\"{'form-field--error': hasError, 'form-field--disabled': autocompleteControl.disabled }\"\n [class.required]=\"required\"\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 wco-smart-select--arrow\">{{ 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]=\"placeholderSearch\"\n (keyup)=\"onFilter($event)\"\n aria-label=\"Pesquisar\"\n [attr.autofocus]=\"true\"\n [attr.tabindex]=\"0\"\n class=\"wco-smartSelect--search\"\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: [":host{width:100%}.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:has(.wco-smartSelect--search:focus) .form-field input::placeholder{opacity:1}.wco-smartSelect:has(.wco-smartSelect--search:focus) .form-field input+label{color:var(--wco-input-color-label);top:0;transform:translateY(-50%) translate(-10px) scale(.9)!important}.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-smart-select--arrow{pointer-events:none;color:var(--wco-color-primary-600)}.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:has(input) li:first-child{position:sticky;top:0;background-color:var(--wco-smart-select-box-default-color-bg);z-index:1}.wco-smartSelect .wco-smartSelect--box ul::-webkit-scrollbar{width:4px}.wco-smartSelect .wco-smartSelect--box ul::-webkit-scrollbar-track{background-color:#ffffff75}.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;border-radius:var(--wco-smart-select-box-radius) 0 0 0;border-bottom:1px solid #ccc;box-shadow:4px 0 1px var(--wco-smart-select-box-default-color-bg);overflow:hidden}.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}.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"] }]
350
362
  }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { options: [{
351
363
  type: ContentChildren,
352
364
  args: [SmartSelectOptionComponent]
@@ -381,4 +393,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
381
393
  }], formControlName: [{
382
394
  type: Input
383
395
  }] } });
384
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21wb25lbnRzL3NyYy9saWIvc21hcnQtc2VsZWN0L3NtYXJ0LXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tcG9uZW50cy9zcmMvbGliL3NtYXJ0LXNlbGVjdC9zbWFydC1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxlQUFlLEVBRWYsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4saUJBQWlCLEVBQ2pCLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUVMLFdBQVcsRUFDWCxXQUFXLEVBQ1gsYUFBYSxFQUNiLGlCQUFpQixFQUNqQixtQkFBbUIsR0FHcEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7O0FBc0I5RSxNQUFNLE9BQU8sb0JBQW9CO0lBaUVYO0lBaEV5QixPQUFPLENBRXRDO0lBRUosUUFBUSxHQUFHLElBQUksWUFBWSxFQUFnQyxDQUFDO0lBRXRFLG9CQUFvQjtJQUVwQixPQUFPLEdBQUcsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRTlELDJCQUEyQjtJQUNsQixTQUFTLENBQVU7SUFFbkIsWUFBWSxHQUFHLGlCQUFpQixDQUFDO0lBRTFDLDJCQUEyQjtJQUUzQixXQUFXLEdBQUcscUJBQXFCLENBQUM7SUFFcEMscUJBQXFCO0lBQ1osS0FBSyxHQUFHLEdBQUcsQ0FBQztJQUVyQixn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bGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGZvcndhcmRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBGb3JtQ29udHJvbCxcbiAgRm9ybXNNb2R1bGUsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3IsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNtYXJ0U2VsZWN0T3B0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9zbWFydC1zZWxlY3Qtb3B0aW9ucy5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3Y28tc21hcnQtc2VsZWN0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgRm9ybXNNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vc21hcnQtc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc21hcnQtc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU21hcnRTZWxlY3RDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgdXNlRXhpc3Rpbmc6IFNtYXJ0U2VsZWN0Q29tcG9uZW50LFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU21hcnRTZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yIHtcbiAgQENvbnRlbnRDaGlsZHJlbihTbWFydFNlbGVjdE9wdGlvbkNvbXBvbmVudCkgb3B0aW9uczpcbiAgICB8IFF1ZXJ5TGlzdDxTbWFydFNlbGVjdE9wdGlvbkNvbXBvbmVudD5cbiAgICB8IHVuZGVmaW5lZDtcblxuICBAT3V0cHV0KCkgb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHsgdHlwZTogc3RyaW5nOyB2YWx1ZTogYW55IH0+KCk7XG5cbiAgLyogSWQgZG8gZWxlbWVudG8gKi9cbiAgQElucHV0KClcbiAgaW5wdXRJZCA9ICdzZWxlY3RfJyArIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyKTtcblxuICAvKiBBdHRyIG5hbWUgZG8gZWxlbWVudG8gKi9cbiAgQElucHV0KCkgaW5wdXROYW1lPzogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIEljb25NYXRlcmlhbCA9ICdhcnJvd19kcm9wX2Rvd24nO1xuXG4gIC8qIFBsYWNlaG9sZGVyIGRvIHNlbGVjdCAqL1xuICBASW5wdXQoKVxuICBwbGFjZWhvbGRlciA9ICdTZWxlY2lvbmUgdW1hIG9ww6fDo28nO1xuXG4gIC8qIExhYmVsIGRvIHNlbGVjdCAqL1xuICBASW5wdXQoKSBsYWJlbCA9ICcgJztcblxuICAvKiBGb3LDp2EgdmlzdWFsaXphw6fDo28gZG8gZXJybyAqL1xuICBASW5wdXQoKSBzaG93RXJyb3IgPSBmYWxzZTtcblxuICAvKiBNb3N0cmFyIGNhbXBvcyBkZSBidXNjYSAqL1xuICBASW5wdXQoKVxuICBzaG93U2VhcmNoID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcGxhY2Vob2xkZXJTZWFyY2g6IHN0cmluZyA9ICdCdXNjYXInO1xuXG4gIC8qIFRleHRvIGV4aWJpZG8gcXVhbmRvIG7Do28gaMOhIHJlc3VsdGFkb3MgKi9cbiAgQElucHV0KClcbiAgdGV4dEVtcHR5ID0gJ07Do28gaMOhIHJlc3VsdGFkb3MgcGFyYSBhIGJ1c2NhJztcblxuICAvKiBoYWJpbGl0YXIgb3DDp8OjbyBkZSBtdWx0aXBsYXMgc2VsZcOnw7VlcyAqL1xuICBASW5wdXQoKVxuICBtdWx0aVNlbGVjdCA9IGZhbHNlO1xuXG4gIC8qIExpbWl0YXIgdmlzdWFsaXphw6fDo28gZGUgaXRlbnMgc2VsZWNpb25hZG9zICovXG4gIEBJbnB1dCgpXG4gIHNob3dNYXhTZWxlY3RlZExhYmVsID0gMDtcblxuICAvKiBUaXBvcyBwcsOpIGRlZmluaWRvcyBkZSBjaGVja2JveCwgcmFkaW8gb3UgbnVsbCAqL1xuICBASW5wdXQoKVxuICB0eXBlUHJlZml4OiAnY2hlY2tib3gnIHwgJ3JhZGlvJyB8IG51bGwgPSBudWxsO1xuXG4gIC8qIENvbmZpcm1hw6fDo28gZGUgbyBjYW1wbyDDqSBvYnJpZ2F0w7NyaW8gKi9cbiAgQElucHV0KClcbiAgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKSBmb3JtQ29udHJvbE5hbWU6IGFueSB8IHVuZGVmaW5lZDtcblxuICBpc01vYmlsZSA9IHdpbmRvdy5pbm5lcldpZHRoIDw9IDc2ODtcblxuICBmb3JtVmFsdWU6IGFueTtcbiAgaXNGb2N1c2VkID0gZmFsc2U7XG4gIHByZXZlbnRFc2NhcGVGb2N1cyA9IGZhbHNlO1xuICBhdXRvY29tcGxldGVDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XG4gIGZpbHRlcmVkT3B0aW9uczogYW55W10gPSBbXTtcblxuICBzaG93TGlzdCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHt9XG5cbiAgb25Ub3VjaGVkID0gKCkgPT4ge1xuICAgIHRoaXMuaXNGb2N1c2VkID0gdHJ1ZTtcbiAgfTtcblxuICAvLy8gZXN0YWRvcyBkbyBjb250cm9sXG5cbiAgbmdPbkluaXQoKSB7fVxuXG5cbiAgLy8gQ2FycmVnYSBvcyB2YWxvcmVzIGRvIGZvcm1Db250cm9sIHBhcmEgbyBjb21wb25lbnRlIGUgcmVuZGVyaXphIGFzIG9ww6fDtWVzXG4gIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hdXRvY29tcGxldGVDb250cm9sLnZhbHVlID09PSB0aGlzLmZvcm1WYWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmZvcm1WYWx1ZSA9IG9iajtcbiAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbnRyb2wuc2V0VmFsdWUob2JqKTtcbiAgICB0aGlzLnJlbmRlckJveE9wdGlvbnMoKTtcbiAgfVxuXG4gIHZhbGlkYXRlKF9jb250cm9sOiBGb3JtQ29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbnRyb2wgPSBfY29udHJvbCB8fCBuZXcgRm9ybUNvbnRyb2woKTtcbiAgICByZXR1cm4gX2NvbnRyb2wudmFsaWRhdG9yO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ3VwZGF0ZVZhbHVlJykge1xuICAgICAgICBmbihldmVudC52YWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIGdldCBoYXNFcnJvcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zaG93RXJyb3JcbiAgICAgID8gdGhpcy5zaG93RXJyb3JcbiAgICAgIDogdGhpcy5hdXRvY29tcGxldGVDb250cm9sLmludmFsaWQgJiZcbiAgICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbnRyb2wudG91Y2hlZCAmJlxuICAgICAgICAgICF0aGlzLnNob3dMaXN0O1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmIChpc0Rpc2FibGVkKSB7XG4gICAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbnRyb2wuZGlzYWJsZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbnRyb2wuZW5hYmxlKCk7XG4gICAgfVxuICB9XG5cbiAgLy8vIEFiZXJ0dXJhIGUgZmVjaGFtZW50byBkYSBsaXN0YVxuICBvbkZvY3VzSW4oZm9jdXMgPSBmYWxzZSkge1xuICAgIHRoaXMucmVuZGVyQm94T3B0aW9ucygpO1xuICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICB0aGlzLmlzRm9jdXNlZCA9IGZvY3VzO1xuICAgIHRoaXMuc2hvd0xpc3QgPSBmb2N1cztcbiAgICB0aGlzLnBvc2l0aW9uQm94KCk7XG4gIH1cblxuICAvLy8gaGVyZSBmdW5jdGlvbiB0byBwb3NpdGlvbiBib3ggZWxlbWVudCB0b3Agb3IgYm90dG9tXG4gIHBvc2l0aW9uQm94KCkge1xuICAgIGlmICh0aGlzLmlzTW9iaWxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY29tcG9uZW50Qm94ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuICAgIGlmICghY29tcG9uZW50Qm94KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGNvbXBvbmVudEJveFBvc2l0aW9uID0gY29tcG9uZW50Qm94LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IGlucHV0SWQgPSBjb21wb25lbnRCb3gucXVlcnlTZWxlY3RvcignLmZvcm0tZmllbGQnKTtcbiAgICBjb25zdCBib3ggPSBjb21wb25lbnRCb3gucXVlcnlTZWxlY3RvcignLndjby1zbWFydFNlbGVjdC0tYm94Jyk7XG4gICAgY29uc3QgaW5wdXRJZFBvc2l0aW9uID0gaW5wdXRJZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7XG4gICAgY29uc3QgcGFnZUhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcbiAgICBpZiAoYm94ICYmIGNvbXBvbmVudEJveFBvc2l0aW9uLnkgKyAzMjAgPj0gcGFnZUhlaWdodCkge1xuICAgICAgYm94LnN0eWxlLmJvdHRvbSA9IGlucHV0SWRQb3NpdGlvbiArICdweCc7XG4gICAgICBib3guc3R5bGUuaGVpZ2h0ID0gYHZhcigtLXdjby1zbWFydC1zZWxlY3QtYm94LW1heC1oZWlnaHQpYDtcbiAgICAgIGJveC5zdHlsZS50b3AgPSAnaW5pdGlhbCc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJveC5zdHlsZS50b3AgPSBpbnB1dElkUG9zaXRpb24gKyAncHgnO1xuICAgICAgYm94LnN0eWxlLmJvdHRvbSA9ICdpbml0aWFsJztcbiAgICAgIGJveC5zdHlsZS5oZWlnaHQgPSBgYXV0b2A7XG4gICAgfVxuICB9XG5cbiAgb25TZWxlY3Qob3B0aW9uPzogYW55KSB7XG4gICAgaWYgKG9wdGlvbi5kaXNhYmxlZCB8fCBvcHRpb24udmlld09ubHkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBvbGRWYWx1ZSA9IHRoaXMuZm9ybVZhbHVlO1xuXG4gICAgaWYgKHRoaXMubXVsdGlTZWxlY3QpIHtcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9uLnZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgICBjb25zdCBsaXN0ID0gdGhpcy5jb21wYXJlTXVsdGlWYWx1ZXNBcnJheShvcHRpb24pO1xuICAgICAgICBjb25zdCBoYXNWYWx1ZU9wdGlvbiA9IGxpc3Quc29tZSgoaXRlbTogYW55KSA9PiBpdGVtLnNlbGVjdGVkKTtcbiAgICAgICAgaWYgKGhhc1ZhbHVlT3B0aW9uKSB7XG4gICAgICAgICAgdGhpcy5mb3JtVmFsdWUgPSBsaXN0XG4gICAgICAgICAgICAuZmlsdGVyKChpdGVtOiBhbnkpID0+ICFpdGVtLnNlbGVjdGVkKVxuICAgICAgICAgICAgLm1hcCgoaXRlbTogYW55KSA9PiBpdGVtLml0ZW0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZm9ybVZhbHVlID0gWy4uLih0aGlzLmZvcm1WYWx1ZSB8fCBbXSksIG9wdGlvbi52YWx1ZV07XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5mb3JtVmFsdWU/LmluZGV4T2Yob3B0aW9uLnZhbHVlKTtcbiAgICAgICAgaWYgKGluZGV4ICE9PSB1bmRlZmluZWQgJiYgaW5kZXggPiAtMSkge1xuICAgICAgICAgIHRoaXMuZm9ybVZhbHVlPy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZm9ybVZhbHVlID0gWy4uLih0aGlzLmZvcm1WYWx1ZSB8fCBbXSksIG9wdGlvbi52YWx1ZV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29udHJvbC5zZXRWYWx1ZSh0aGlzLmZvcm1WYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9ybVZhbHVlID0gb3B0aW9uLnZhbHVlO1xuICAgICAgdGhpcy5hdXRvY29tcGxldGVDb250cm9sLnNldFZhbHVlKG9wdGlvbi52YWx1ZSk7XG4gICAgICB0aGlzLnNob3dMaXN0ID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKG9sZFZhbHVlICE9PSB0aGlzLmZvcm1WYWx1ZSkge1xuICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHsgdHlwZTogJ3VwZGF0ZVZhbHVlJywgdmFsdWU6IHRoaXMuZm9ybVZhbHVlIH0pO1xuICAgIH1cblxuICAgIHRoaXMucmVuZGVyQm94T3B0aW9ucygpO1xuICB9XG5cbiAgLy8gU2hvdyBsYWJlbCBzcGFuXG4gIGdldCBzZWxlY3RlZExhYmVsKCkge1xuICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9uID0gdGhpcy5vcHRpb25zPy5maW5kKFxuICAgICAgKG9wdGlvbikgPT5cbiAgICAgICAgdGhpcy5ub3JtYWxpemVUZXh0KFN0cmluZyhvcHRpb24udmFsdWUpKSA9PT1cbiAgICAgICAgdGhpcy5ub3JtYWxpemVUZXh0KFN0cmluZyh0aGlzLmZvcm1WYWx1ZSkpXG4gICAgKTtcbiAgICByZXR1cm4gc2VsZWN0ZWRPcHRpb24/LmxhYmVsIHx8ICcgJztcbiAgfVxuXG4gIC8vIHNob3cgbGFiZWwgbXVsdGkgc2VsZWN0XG4gIGdldCBzZWxlY3RlZExhYmVsTXVsdGkoKTogeyB2YWx1ZTogc3RyaW5nOyBsYWJlbDogc3RyaW5nIH1bXSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRPcHRpb25zID0gdGhpcy5vcHRpb25zPy5maWx0ZXIoKG9wdGlvbikgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBvcHRpb24udmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmVWYWx1ZUFycmF5KG9wdGlvbik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtVmFsdWU/LmluY2x1ZGVzKG9wdGlvbi52YWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoIXNlbGVjdGVkT3B0aW9ucz8ubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnNob3dNYXhTZWxlY3RlZExhYmVsKSB7XG4gICAgICByZXR1cm4gc2VsZWN0ZWRPcHRpb25zO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHRoaXMuc2hvd01heFNlbGVjdGVkTGFiZWwgJiZcbiAgICAgIHNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPiB0aGlzLnNob3dNYXhTZWxlY3RlZExhYmVsXG4gICAgKSB7XG4gICAgICByZXR1cm4gc2VsZWN0ZWRPcHRpb25zLnNsaWNlKDAsIHRoaXMuc2hvd01heFNlbGVjdGVkTGFiZWwpO1xuICAgIH1cblxuICAgIHJldHVybiBzZWxlY3RlZE9wdGlvbnM7XG4gIH1cblxuICBwcml2YXRlIHZhbHVlVG9BcnJheShvcHRpb25zOiBhbnkpIHtcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMob3B0aW9ucyk7XG4gICAgY29uc3QgdmFsdWU6IGFueVtdID0gW107XG4gICAga2V5cy5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgb3B0aW9uc1trZXldICYmXG4gICAgICAgIG9wdGlvbnNba2V5XSAhPT0gJycgJiZcbiAgICAgICAgdHlwZW9mIG9wdGlvbnNba2V5XSAhPT0gJ29iamVjdCcgJiZcbiAgICAgICAgdHlwZW9mIG9wdGlvbnNba2V5XSAhPT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgICB0eXBlb2Ygb3B0aW9uc1trZXldICE9PSAnYm9vbGVhbidcbiAgICAgICkge1xuICAgICAgICB2YWx1ZS5wdXNoKG9wdGlvbnNba2V5XSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBjb21wYXJlVmFsdWVBcnJheShvcHRpb246IGFueSwgdmFsdWUgPSB0aGlzLmZvcm1WYWx1ZSk6IGFueVtdIHtcbiAgICBpZiAob3B0aW9uICYmIG9wdGlvbi52YWx1ZSkge1xuICAgICAgY29uc3QgdmFsdWVzSXRlbXMgPSB0aGlzLnZhbHVlVG9BcnJheShvcHRpb24udmFsdWUpO1xuICAgICAgcmV0dXJuIHZhbHVlLnNvbWUoKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBpdGVtQXJyYXkgPSB0aGlzLnZhbHVlVG9BcnJheShpdGVtKTtcbiAgICAgICAgcmV0dXJuIGl0ZW1BcnJheS5ldmVyeSgoaXRlbVZhbHVlOiBhbnkpID0+XG4gICAgICAgICAgdmFsdWVzSXRlbXMuaW5jbHVkZXMoaXRlbVZhbHVlKVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIHByaXZhdGUgY29tcGFyZU11bHRpVmFsdWVzQXJyYXkob3B0aW9uOiBhbnksIHZhbHVlID0gdGhpcy5mb3JtVmFsdWUpOiBhbnlbXSB7XG4gICAgaWYgKG9wdGlvbiAmJiBvcHRpb24udmFsdWUpIHtcbiAgICAgIGNvbnN0IHZhbHVlc0l0ZW1zID0gdGhpcy52YWx1ZVRvQXJyYXkob3B0aW9uLnZhbHVlKTtcbiAgICAgIGNvbnN0IGZvcm1WYWx1ZUFycmF5ID0gdmFsdWUubWFwKChpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgY29uc3QgaXRlbUFycmF5ID0gdGhpcy52YWx1ZVRvQXJyYXkoaXRlbSk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaW5kZXgsXG4gICAgICAgICAgaXRlbSxcbiAgICAgICAgICBzZWxlY3RlZDogaXRlbUFycmF5LnNvbWUoKGl0ZW1WYWx1ZTogYW55KSA9PlxuICAgICAgICAgICAgdmFsdWVzSXRlbXMuaW5jbHVkZXMoaXRlbVZhbHVlKVxuICAgICAgICAgICksXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICAgIC8vIFJlbW92ZSBkdXBsaWNhdGUgaXRlbXNcbiAgICAgIGNvbnN0IHVuaXF1ZUZvcm1WYWx1ZUFycmF5ID0gQXJyYXkuZnJvbShcbiAgICAgICAgbmV3IFNldChmb3JtVmFsdWVBcnJheS5tYXAoKGl0ZW06IGFueSkgPT4gSlNPTi5zdHJpbmdpZnkoaXRlbSkpKVxuICAgICAgKS5tYXAoKGl0ZW06IGFueSkgPT4gSlNPTi5wYXJzZShpdGVtKSk7XG5cbiAgICAgIHJldHVybiB1bmlxdWVGb3JtVmFsdWVBcnJheTtcbiAgICB9XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgZ2V0IHNlbGVjdGVkTGFiZWxNdWx0aUNvdW50KCk6IG51bWJlciB7XG4gICAgY29uc3Qgc2hvdyA9IHRoaXMuc2hvd01heFNlbGVjdGVkTGFiZWwgfHwgMDtcbiAgICBjb25zdCBzZWxlY3RlZE9wdGlvbnMgPSB0aGlzLm9wdGlvbnM/LmZpbHRlcigob3B0aW9uKSA9PlxuICAgICAgdGhpcy5mb3JtVmFsdWU/LmluY2x1ZGVzKG9wdGlvbi52YWx1ZSlcbiAgICApO1xuICAgIGlmICghc2VsZWN0ZWRPcHRpb25zPy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIGlmIChzaG93ID4gMCAmJiBzZWxlY3RlZE9wdGlvbnMubGVuZ3RoID4gc2hvdykge1xuICAgICAgcmV0dXJuIHNlbGVjdGVkT3B0aW9ucy5sZW5ndGggLSBzaG93O1xuICAgIH1cblxuICAgIHJldHVybiAwO1xuICB9XG5cbiAgcmVtb3ZlSXRlbShvcHRpb246IGFueSkge1xuICAgIHRoaXMub25TZWxlY3Qob3B0aW9uKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuc2hvd0xpc3QgPSBmYWxzZTtcbiAgICB9LCAxMDApO1xuICB9XG5cbiAgb25LZXlQcmVzcyhldmVudDogYW55KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLnJlbmRlckJveE9wdGlvbnMoKTtcbiAgfVxuXG4gIG9uRmlsdGVyKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCB2YWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICB0aGlzLnJlbmRlckJveE9wdGlvbnMoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5maWx0ZXJlZE9wdGlvbnMubGVuZ3RoKSB7XG4gICAgICB0aGlzLnJlbmRlckJveE9wdGlvbnModmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIG9uUmVzaXplKCkge1xuICAgIHRoaXMucmVuZGVyQm94T3B0aW9ucygpO1xuICAgIHRoaXMucG9zaXRpb25Cb3goKTtcbiAgfVxuXG4gIG9uRm9jdXNPdXQoKSB7XG4gICAgaWYgKCF0aGlzLnByZXZlbnRFc2NhcGVGb2N1cyAmJiAhdGhpcy5pc01vYmlsZSkge1xuICAgICAgdGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuc2hvd0xpc3QgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBjbG9zZUxpc3QoKSB7XG4gICAgdGhpcy5wcmV2ZW50RXNjYXBlRm9jdXMgPSB0cnVlO1xuICAgIHRoaXMuaXNGb2N1c2VkID0gZmFsc2U7XG4gICAgdGhpcy5zaG93TGlzdCA9IGZhbHNlO1xuICB9XG5cbiAgc2VsZWN0ZWRWYWx1ZShvcHRpb246IHsgdmFsdWU6IGFueTsgbGFiZWw6IHN0cmluZzsgc2FmZUh0bWxDb250ZW50OiBhbnkgfSkge1xuICAgIGlmICh0aGlzLm11bHRpU2VsZWN0KSB7XG4gICAgICBpZiAodHlwZW9mIG9wdGlvbi52YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgaWYgKG9wdGlvbiAmJiBvcHRpb24udmFsdWUpIHtcbiAgICAgICAgICBjb25zdCB2YWx1ZXNJdGVtcyA9IHRoaXMudmFsdWVUb0FycmF5KG9wdGlvbi52YWx1ZSk7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZm9ybVZhbHVlLnNvbWUoKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXRlbUFycmF5ID0gdGhpcy52YWx1ZVRvQXJyYXkoaXRlbSk7XG4gICAgICAgICAgICByZXR1cm4gaXRlbUFycmF5LmV2ZXJ5KChpdGVtVmFsdWU6IGFueSkgPT5cbiAgICAgICAgICAgICAgdmFsdWVzSXRlbXMuaW5jbHVkZXMoaXRlbVZhbHVlKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybVZhbHVlPy5pbmNsdWRlcyhvcHRpb24udmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBvcHRpb24udmFsdWUgPT09IHRoaXMuZm9ybVZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJCb3hPcHRpb25zKGZpbHRlclZhbHVlOiBzdHJpbmcgfCBudWxsID0gbnVsbCkge1xuICAgIGlmICghdGhpcy5vcHRpb25zIHx8ICF0aGlzLm9wdGlvbnMubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gdGhpcy5vcHRpb25zXG4gICAgICA/Lm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdmFsdWU6IG9wdGlvbi52YWx1ZSxcbiAgICAgICAgICBpY29uUHJlZml4OiBvcHRpb24uaWNvblByZWZpeCxcbiAgICAgICAgICBodG1sTGFiZWw6IG9wdGlvbi5zYWZlSHRtbENvbnRlbnQgfHwgb3B0aW9uLmxhYmVsLFxuICAgICAgICAgIGRpc2FibGVkOiBvcHRpb24uZGlzYWJsZWQsXG4gICAgICAgICAgdmlld09ubHk6IG9wdGlvbi52aWV3T25seSxcbiAgICAgICAgfTtcbiAgICAgIH0pXG4gICAgICAuZmlsdGVyKChvcHRpb24pID0+IHtcbiAgICAgICAgaWYgKCFmaWx0ZXJWYWx1ZSkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRGaWx0ZXIgPSB0aGlzLm5vcm1hbGl6ZVRleHQoZmlsdGVyVmFsdWUpO1xuICAgICAgICBjb25zdCBub3JtYWxpemVkTGFiZWwgPSB0aGlzLm5vcm1hbGl6ZVRleHQoXG4gICAgICAgICAgb3B0aW9uLmh0bWxMYWJlbD8udG9TdHJpbmcoKSB8fCAnJ1xuICAgICAgICApO1xuICAgICAgICByZXR1cm4gbm9ybWFsaXplZExhYmVsLmluY2x1ZGVzKG5vcm1hbGl6ZWRGaWx0ZXIpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG5vcm1hbGl6ZVRleHQodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGV4dFxuICAgICAgLnJlcGxhY2UoL1tcXFdfXSsvZywgJycpIC8vIFJlbW92ZSBjYXJhY3RlcmVzIGVzcGVjaWFpcyBlIHN1YmxpbmhhZG9zXG4gICAgICAudG9Mb3dlckNhc2UoKTtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cIndjby1zbWFydFNlbGVjdFwiXG4gIFtuZ0NsYXNzXT1cIntcbiAgICAnd2NvLXNtYXJ0U2VsZWN0LS1vcGVuJzogc2hvd0xpc3QsXG4gICAgJ3djby1zbWFydFNlbGVjdC0taXNNb2JpbGUnOiBpc01vYmlsZSxcbn1cIlxuICAocmVzaXplKT1cIm9uUmVzaXplKClcIlxuICAobW91c2VsZWF2ZSk9XCJvbkZvY3VzT3V0KClcIlxuPlxuICA8ZGl2IGNsYXNzPVwiZm9ybS1maWVsZFwiIFtuZ0NsYXNzXT1cInsnZm9ybS0tZXJyb3InOiBoYXNFcnJvcn1cIj5cbiAgICA8aW5wdXRcbiAgICAgICpuZ0lmPVwiIW11bHRpU2VsZWN0XCJcbiAgICAgIGNsYXNzPVwiZm9ybS1maWVsZF9faW5wdXRcIlxuICAgICAgW2Rpc2FibGVkXT1cImF1dG9jb21wbGV0ZUNvbnRyb2wuZGlzYWJsZWRcIlxuICAgICAgaWQ9XCJ7eyBpbnB1dElkID8gaW5wdXRJZCA6ICcnIH19XCJcbiAgICAgIG5hbWU9XCJ7eyBpbnB1dE5hbWUgPyBpbnB1dE5hbWUgOiAnJyB9fVwiXG4gICAgICAoY2xpY2spPVwib25Gb2N1c0luKHRydWUpXCJcbiAgICAgIChmb2N1c2luKT1cIm9uRm9jdXNJbigpXCJcbiAgICAgIChrZXl1cC5lc2NhcGUpPVwib25Gb2N1c091dCgpXCJcbiAgICAgIChrZXlwcmVzcyk9XCJvbktleVByZXNzKCRldmVudClcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICBbdmFsdWVdPVwic2VsZWN0ZWRMYWJlbFwiXG4gICAgICBhcmlhLWxhYmVsPVwiU2VsZWNpb25lIHVtYSBvcMOnw6NvXCJcbiAgICAvPlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwibXVsdGlTZWxlY3RcIlxuICAgICAgY2xhc3M9XCJmb3JtLWZpZWxkX19pbnB1dCByZWFkb25seSBtdWx0aVNlbGVjdFwiXG4gICAgICBbbmdDbGFzc109XCJ7J2Zvcm0tZmllbGQtLWVycm9yJzogaGFzRXJyb3IsICdmb3JtLWZpZWxkLS1kaXNhYmxlZCc6IGF1dG9jb21wbGV0ZUNvbnRyb2wuZGlzYWJsZWQgfVwiXG4gICAgICBbY2xhc3MucmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgKGNsaWNrKT1cIm9uRm9jdXNJbih0cnVlKVwiXG4gICAgICAoZm9jdXNpbik9XCJvbkZvY3VzSW4oKVwiXG4gICAgICAoa2V5dXAuZXNjYXBlKT1cIm9uRm9jdXNPdXQoKVwiXG4gICAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhc2VsZWN0ZWRMYWJlbE11bHRpLmxlbmd0aFwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ3Y28tc21hcnQtc2VsZWN0LXBsYWNlaG9sZGVyXCI+e3sgcGxhY2Vob2xkZXIgfHwgJ1NlbGVjaW9uZSB1bWEgb3DDp8OjbycgfX08L3NwYW4+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkTGFiZWxNdWx0aS5sZW5ndGhcIj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCBvcHRpb25TZWxlY3RlZCBvZiBzZWxlY3RlZExhYmVsTXVsdGlcIiBjbGFzcz1cIndjby1zbWFydC1zZWxlY3QtaXRlbVwiPlxuICAgICAgICAgICAgICB7e29wdGlvblNlbGVjdGVkLmxhYmVsfX0gXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwid2NvLXNtYXJ0LXNlbGVjdC1yZW1vdmVcIiAoY2xpY2spPVwicmVtb3ZlSXRlbShvcHRpb25TZWxlY3RlZClcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCI+Y2xvc2U8L3NwYW4+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3Y28tc21hcnQtc2VsZWN0LWl0ZW1cIiAgKm5nSWY9XCJzZWxlY3RlZExhYmVsTXVsdGlDb3VudCA+PSAxXCI+XG4gICAgICAgICAgICAgICAgK3t7c2VsZWN0ZWRMYWJlbE11bHRpQ291bnR9fSBcbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICAgIDxsYWJlbD57eyBsYWJlbCB9fTwvbGFiZWw+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMgd2NvLXNtYXJ0LXNlbGVjdC0tYXJyb3dcIj57eyBJY29uTWF0ZXJpYWwgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ3Y28tc21hcnRTZWxlY3QtLWJveFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAnd2NvLXNtYXJ0U2VsZWN0LS1ib3gtLW9wZW4nOiBzaG93TGlzdCAmJiAhYXV0b2NvbXBsZXRlQ29udHJvbC5kaXNhYmxlZFxuICAgICAgICB9XCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cIndjby1zbWFydFNlbGVjdC0taXNNb2JpbGUtY2xvc2VcIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xvc2VMaXN0KClcIlxuICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1wcmltYXJ5IGJ0bi1vdXRsaW5lIG1iLW5hbm9cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIGZlY2hhclxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHVsPlxuICAgICAgICAgIDxsaVxuICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgIGNsYXNzPVwid2NvLXNtYXJ0LXNlbGVjdGVkLWZpbHRlclwiXG4gICAgICAgICAgICAqbmdJZj1cInNob3dMaXN0ICYmIHNob3dTZWFyY2hcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJTZWFyY2hcIlxuICAgICAgICAgICAgICAoa2V5dXApPVwib25GaWx0ZXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJTZWFyY2ggdGhyb3VnaCBzaXRlIGNvbnRlbnRcIlxuICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgPGxpXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGZpbHRlcmVkT3B0aW9uczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICBbdGFiaW5kZXhdPVwiaSArIDFcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICd3Y28tc21hcnQtc2VsZWN0ZWQnOiBzZWxlY3RlZFZhbHVlKG9wdGlvbiksXG4gICAgICAgICAgICAgICAgJ3djLXNtYXJ0LXNlbGVjdC1kaXNhYmxlZC1vcHRpb24nOiBvcHRpb24uZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgJ3djLXNtYXJ0LXNlbGVjdC12aWV3LW9ubHktb3B0aW9uJzogb3B0aW9uLnZpZXdPbmx5LFxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3Qob3B0aW9uKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3Y28tc21hcnQtc2VsZWN0LWxhYmVsLXByZWZpeFwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidHlwZVByZWZpeCA9PT0gJ2NoZWNrYm94J1wiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWRcIj5cbiAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkVmFsdWUob3B0aW9uKSA/IFwiY2hlY2tfYm94XCIgOiBcImNoZWNrX2JveF9vdXRsaW5lX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInR5cGVQcmVmaXggPT09ICdyYWRpbydcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zLW91dGxpbmVkXCI+XG4gICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFZhbHVlKG9wdGlvbilcbiAgICAgICAgICAgICAgICAgICAgICA/IFwicmFkaW9fYnV0dG9uX2NoZWNrZWRcIlxuICAgICAgICAgICAgICAgICAgICAgIDogXCJyYWRpb19idXR0b25fdW5jaGVja2VkXCJcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAhIW9wdGlvbi5pY29uUHJlZml4ICYmXG4gICAgICAgICAgICAgICAgICB0eXBlUHJlZml4ICE9PSAncmFkaW8nICYmXG4gICAgICAgICAgICAgICAgICB0eXBlUHJlZml4ICE9PSAnY2hlY2tib3gnXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWRcIj5cbiAgICAgICAgICAgICAgICAgIHt7IG9wdGlvbi5pY29uUHJlZml4IH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGNsYXNzPVwid2NvLXNtYXJ0LXNlbGVjdC1sYWJlbFwiXG4gICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwib3B0aW9uLmh0bWxMYWJlbFwiXG4gICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgPGxpICpuZ0lmPVwiIWZpbHRlcmVkT3B0aW9ucy5sZW5ndGhcIj5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwiZGlzcGxheS1ib2R5XCI+e3sgdGV4dEVtcHR5IH19PC9wPlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgIDwvdWw+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICAiXX0=
396
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21wb25lbnRzL3NyYy9saWIvc21hcnQtc2VsZWN0L3NtYXJ0LXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tcG9uZW50cy9zcmMvbGliL3NtYXJ0LXNlbGVjdC9zbWFydC1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxlQUFlLEVBRWYsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBRU4saUJBQWlCLEVBQ2pCLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUVMLFdBQVcsRUFDWCxXQUFXLEVBQ1gsYUFBYSxFQUNiLGlCQUFpQixFQUNqQixtQkFBbUIsR0FHcEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7O0FBc0I5RSxNQUFNLE9BQU8sb0JBQW9CO0lBaUVYO0lBaEV5QixPQUFPLENBRXRDO0lBRUosUUFBUSxHQUFHLElBQUksWUFBWSxFQUFnQyxDQUFDO0lBRXRFLG9CQUFvQjtJQUVwQixPQUFPLEdBQUcsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRTlELDJCQUEyQjtJQUNsQixTQUFTLENBQVU7SUFFbkIsWUFBWSxHQUFHLGlCQUFpQixDQUFDO0lBRTFDLDJCQUEyQjtJQUUzQixXQUFXLEdBQUcscUJBQXFCLENBQUM7SUFFcEMscUJBQXFCO0lBQ1osS0FBSyxHQUFHLEdBQUcsQ0FBQztJQUVyQixn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WTtzQkFBcEIsS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBSUcsS0FBSztzQkFBYixLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLGlCQUFpQjtzQkFEaEIsS0FBSztnQkFLTixTQUFTO3NCQURSLEtBQUs7Z0JBS04sV0FBVztzQkFEVixLQUFLO2dCQUtOLG9CQUFvQjtzQkFEbkIsS0FBSztnQkFLTixVQUFVO3NCQURULEtBQUs7Z0JBS04sUUFBUTtzQkFEUCxLQUFLO2dCQUdHLGVBQWU7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgRm9ybUNvbnRyb2wsXG4gIEZvcm1zTW9kdWxlLFxuICBOR19WQUxJREFUT1JTLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9yLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTbWFydFNlbGVjdE9wdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vc21hcnQtc2VsZWN0LW9wdGlvbnMuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd2NvLXNtYXJ0LXNlbGVjdCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIEZvcm1zTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3NtYXJ0LXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NtYXJ0LXNlbGVjdC5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNtYXJ0U2VsZWN0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBTbWFydFNlbGVjdENvbXBvbmVudCxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNtYXJ0U2VsZWN0Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciB7XG4gIEBDb250ZW50Q2hpbGRyZW4oU21hcnRTZWxlY3RPcHRpb25Db21wb25lbnQpIG9wdGlvbnM6XG4gICAgfCBRdWVyeUxpc3Q8U21hcnRTZWxlY3RPcHRpb25Db21wb25lbnQ+XG4gICAgfCB1bmRlZmluZWQ7XG5cbiAgQE91dHB1dCgpIG9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx7IHR5cGU6IHN0cmluZzsgdmFsdWU6IGFueSB9PigpO1xuXG4gIC8qIElkIGRvIGVsZW1lbnRvICovXG4gIEBJbnB1dCgpXG4gIGlucHV0SWQgPSAnc2VsZWN0XycgKyBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMik7XG5cbiAgLyogQXR0ciBuYW1lIGRvIGVsZW1lbnRvICovXG4gIEBJbnB1dCgpIGlucHV0TmFtZT86IHN0cmluZztcblxuICBASW5wdXQoKSBJY29uTWF0ZXJpYWwgPSAnYXJyb3dfZHJvcF9kb3duJztcblxuICAvKiBQbGFjZWhvbGRlciBkbyBzZWxlY3QgKi9cbiAgQElucHV0KClcbiAgcGxhY2Vob2xkZXIgPSAnU2VsZWNpb25lIHVtYSBvcMOnw6NvJztcblxuICAvKiBMYWJlbCBkbyBzZWxlY3QgKi9cbiAgQElucHV0KCkgbGFiZWwgPSAnICc7XG5cbiAgLyogRm9yw6dhIHZpc3VhbGl6YcOnw6NvIGRvIGVycm8gKi9cbiAgQElucHV0KCkgc2hvd0Vycm9yID0gZmFsc2U7XG5cbiAgLyogTW9zdHJhciBjYW1wb3MgZGUgYnVzY2EgKi9cbiAgQElucHV0KClcbiAgc2hvd1NlYXJjaCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHBsYWNlaG9sZGVyU2VhcmNoOiBzdHJpbmcgPSAnQnVzY2FyJztcblxuICAvKiBUZXh0byBleGliaWRvIHF1YW5kbyBuw6NvIGjDoSByZXN1bHRhZG9zICovXG4gIEBJbnB1dCgpXG4gIHRleHRFbXB0eSA9ICdOw6NvIGjDoSByZXN1bHRhZG9zIHBhcmEgYSBidXNjYSc7XG5cbiAgLyogaGFiaWxpdGFyIG9ww6fDo28gZGUgbXVsdGlwbGFzIHNlbGXDp8O1ZXMgKi9cbiAgQElucHV0KClcbiAgbXVsdGlTZWxlY3QgPSBmYWxzZTtcblxuICAvKiBMaW1pdGFyIHZpc3VhbGl6YcOnw6NvIGRlIGl0ZW5zIHNlbGVjaW9uYWRvcyAqL1xuICBASW5wdXQoKVxuICBzaG93TWF4U2VsZWN0ZWRMYWJlbCA9IDA7XG5cbiAgLyogVGlwb3MgcHLDqSBkZWZpbmlkb3MgZGUgY2hlY2tib3gsIHJhZGlvIG91IG51bGwgKi9cbiAgQElucHV0KClcbiAgdHlwZVByZWZpeDogJ2NoZWNrYm94JyB8ICdyYWRpbycgfCBudWxsID0gbnVsbDtcblxuICAvKiBDb25maXJtYcOnw6NvIGRlIG8gY2FtcG8gw6kgb2JyaWdhdMOzcmlvICovXG4gIEBJbnB1dCgpXG4gIHJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KCkgZm9ybUNvbnRyb2xOYW1lOiBhbnkgfCB1bmRlZmluZWQ7XG5cbiAgaXNNb2JpbGUgPSB3aW5kb3cuaW5uZXJXaWR0aCA8PSA3Njg7XG5cbiAgZm9ybVZhbHVlOiBhbnk7XG4gIGlzRm9jdXNlZCA9IGZhbHNlO1xuICBwcmV2ZW50RXNjYXBlRm9jdXMgPSBmYWxzZTtcbiAgYXV0b2NvbXBsZXRlQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xuICBmaWx0ZXJlZE9wdGlvbnM6IGFueVtdID0gW107XG5cbiAgc2hvd0xpc3QgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmKSB7fVxuXG4gIG9uVG91Y2hlZCA9ICgpID0+IHtcbiAgICB0aGlzLmlzRm9jdXNlZCA9IHRydWU7XG4gIH07XG5cbiAgLy8vIGVzdGFkb3MgZG8gY29udHJvbFxuXG4gIG5nT25Jbml0KCkge31cblxuICAvLyBDYXJyZWdhIG9zIHZhbG9yZXMgZG8gZm9ybUNvbnRyb2wgcGFyYSBvIGNvbXBvbmVudGUgZSByZW5kZXJpemEgYXMgb3DDp8O1ZXNcbiAgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmF1dG9jb21wbGV0ZUNvbnRyb2wudmFsdWUgPT09IHRoaXMuZm9ybVZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZm9ybVZhbHVlID0gb2JqO1xuICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29udHJvbC5zZXRWYWx1ZShvYmopO1xuICAgIHRoaXMucmVuZGVyQm94T3B0aW9ucygpO1xuICB9XG5cbiAgdmFsaWRhdGUoX2NvbnRyb2w6IEZvcm1Db250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29udHJvbCA9IF9jb250cm9sIHx8IG5ldyBGb3JtQ29udHJvbCgpO1xuICAgIHJldHVybiBfY29udHJvbC52YWxpZGF0b3I7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgIGlmIChldmVudC50eXBlID09PSAndXBkYXRlVmFsdWUnKSB7XG4gICAgICAgIGZuKGV2ZW50LnZhbHVlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgZ2V0IGhhc0Vycm9yKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNob3dFcnJvclxuICAgICAgPyB0aGlzLnNob3dFcnJvclxuICAgICAgOiB0aGlzLmF1dG9jb21wbGV0ZUNvbnRyb2wuaW52YWxpZCAmJlxuICAgICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29udHJvbC50b3VjaGVkICYmXG4gICAgICAgICAgIXRoaXMuc2hvd0xpc3Q7XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKGlzRGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29udHJvbC5kaXNhYmxlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29udHJvbC5lbmFibGUoKTtcbiAgICB9XG4gIH1cblxuICAvLy8gQWJlcnR1cmEgZSBmZWNoYW1lbnRvIGRhIGxpc3RhXG4gIG9uRm9jdXNJbihmb2N1cyA9IGZhbHNlKSB7XG4gICAgdGhpcy5yZW5kZXJCb3hPcHRpb25zKCk7XG4gICAgdGhpcy5hdXRvY29tcGxldGVDb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIHRoaXMuaXNGb2N1c2VkID0gZm9jdXM7XG4gICAgdGhpcy5zaG93TGlzdCA9IGZvY3VzO1xuICAgIHRoaXMucG9zaXRpb25Cb3goKTtcbiAgICB0aGlzLmZvY3VzU2VhcmNoRWxlbWVudG9yKCk7XG4gIH1cblxuICBwcml2YXRlIGZvY3VzU2VhcmNoRWxlbWVudG9yKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNob3dTZWFyY2gpIHtcbiAgICAgIC8vIENhc28gZWxlIHRlbmhhIGEgYnVzY2EgaGFiaWxpdGFkYVxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHNlYXJjaEVsZW1lbnQgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAnLndjby1zbWFydFNlbGVjdC0tc2VhcmNoJ1xuICAgICAgICApO1xuICAgICAgICBpZiAoc2VhcmNoRWxlbWVudCkge1xuICAgICAgICAgIHNlYXJjaEVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgfSwgNDAwKTtcbiAgICB9XG4gIH1cbiAgXG4gIC8vLyBoZXJlIGZ1bmN0aW9uIHRvIHBvc2l0aW9uIGJveCBlbGVtZW50IHRvcCBvciBib3R0b21cbiAgcG9zaXRpb25Cb3goKSB7XG4gICAgaWYgKHRoaXMuaXNNb2JpbGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjb21wb25lbnRCb3ggPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKCFjb21wb25lbnRCb3gpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgY29tcG9uZW50Qm94UG9zaXRpb24gPSBjb21wb25lbnRCb3guZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgaW5wdXRJZCA9IGNvbXBvbmVudEJveC5xdWVyeVNlbGVjdG9yKCcuZm9ybS1maWVsZCcpO1xuICAgIGNvbnN0IGJveCA9IGNvbXBvbmVudEJveC5xdWVyeVNlbGVjdG9yKCcud2NvLXNtYXJ0U2VsZWN0LS1ib3gnKTtcbiAgICBjb25zdCBpbnB1dElkUG9zaXRpb24gPSBpbnB1dElkLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtcbiAgICBjb25zdCBwYWdlSGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0O1xuICAgIGlmIChib3ggJiYgY29tcG9uZW50Qm94UG9zaXRpb24ueSArIDMyMCA+PSBwYWdlSGVpZ2h0KSB7XG4gICAgICBib3guc3R5bGUuYm90dG9tID0gaW5wdXRJZFBvc2l0aW9uICsgJ3B4JztcbiAgICAgIGJveC5zdHlsZS5oZWlnaHQgPSBgdmFyKC0td2NvLXNtYXJ0LXNlbGVjdC1ib3gtbWF4LWhlaWdodClgO1xuICAgICAgYm94LnN0eWxlLnRvcCA9ICdpbml0aWFsJztcbiAgICB9IGVsc2Uge1xuICAgICAgYm94LnN0eWxlLnRvcCA9IGlucHV0SWRQb3NpdGlvbiArICdweCc7XG4gICAgICBib3guc3R5bGUuYm90dG9tID0gJ2luaXRpYWwnO1xuICAgICAgYm94LnN0eWxlLmhlaWdodCA9IGBhdXRvYDtcbiAgICB9XG4gIH1cblxuICBvblNlbGVjdChvcHRpb24/OiBhbnkpIHtcbiAgICBpZiAob3B0aW9uLmRpc2FibGVkIHx8IG9wdGlvbi52aWV3T25seSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy5mb3JtVmFsdWU7XG5cbiAgICBpZiAodGhpcy5tdWx0aVNlbGVjdCkge1xuICAgICAgaWYgKHR5cGVvZiBvcHRpb24udmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIGNvbnN0IGxpc3QgPSB0aGlzLmNvbXBhcmVNdWx0aVZhbHVlc0FycmF5KG9wdGlvbik7XG4gICAgICAgIGNvbnN0IGhhc1ZhbHVlT3B0aW9uID0gbGlzdC5zb21lKChpdGVtOiBhbnkpID0+IGl0ZW0uc2VsZWN0ZWQpO1xuICAgICAgICBpZiAoaGFzVmFsdWVPcHRpb24pIHtcbiAgICAgICAgICB0aGlzLmZvcm1WYWx1ZSA9IGxpc3RcbiAgICAgICAgICAgIC5maWx0ZXIoKGl0ZW06IGFueSkgPT4gIWl0ZW0uc2VsZWN0ZWQpXG4gICAgICAgICAgICAubWFwKChpdGVtOiBhbnkpID0+IGl0ZW0uaXRlbSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5mb3JtVmFsdWUgPSBbLi4uKHRoaXMuZm9ybVZhbHVlIHx8IFtdKSwgb3B0aW9uLnZhbHVlXTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmZvcm1WYWx1ZT8uaW5kZXhPZihvcHRpb24udmFsdWUpO1xuICAgICAgICBpZiAoaW5kZXggIT09IHVuZGVmaW5lZCAmJiBpbmRleCA+IC0xKSB7XG4gICAgICAgICAgdGhpcy5mb3JtVmFsdWU/LnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5mb3JtVmFsdWUgPSBbLi4uKHRoaXMuZm9ybVZhbHVlIHx8IFtdKSwgb3B0aW9uLnZhbHVlXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5hdXRvY29tcGxldGVDb250cm9sLnNldFZhbHVlKHRoaXMuZm9ybVZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb3JtVmFsdWUgPSBvcHRpb24udmFsdWU7XG4gICAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbnRyb2wuc2V0VmFsdWUob3B0aW9uLnZhbHVlKTtcbiAgICAgIHRoaXMuc2hvd0xpc3QgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAob2xkVmFsdWUgIT09IHRoaXMuZm9ybVZhbHVlKSB7XG4gICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoeyB0eXBlOiAndXBkYXRlVmFsdWUnLCB2YWx1ZTogdGhpcy5mb3JtVmFsdWUgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5yZW5kZXJCb3hPcHRpb25zKCk7XG4gIH1cblxuICAvLyBTaG93IGxhYmVsIHNwYW5cbiAgZ2V0IHNlbGVjdGVkTGFiZWwoKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRPcHRpb24gPSB0aGlzLm9wdGlvbnM/LmZpbmQoXG4gICAgICAob3B0aW9uKSA9PlxuICAgICAgICB0aGlzLm5vcm1hbGl6ZVRleHQoU3RyaW5nKG9wdGlvbi52YWx1ZSkpID09PVxuICAgICAgICB0aGlzLm5vcm1hbGl6ZVRleHQoU3RyaW5nKHRoaXMuZm9ybVZhbHVlKSlcbiAgICApO1xuICAgIHJldHVybiBzZWxlY3RlZE9wdGlvbj8ubGFiZWwgfHwgJyc7XG4gIH1cblxuICAvLyBzaG93IGxhYmVsIG11bHRpIHNlbGVjdFxuICBnZXQgc2VsZWN0ZWRMYWJlbE11bHRpKCk6IHsgdmFsdWU6IHN0cmluZzsgbGFiZWw6IHN0cmluZyB9W10ge1xuICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9ucyA9IHRoaXMub3B0aW9ucz8uZmlsdGVyKChvcHRpb24pID0+IHtcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9uLnZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wYXJlVmFsdWVBcnJheShvcHRpb24pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybVZhbHVlPy5pbmNsdWRlcyhvcHRpb24udmFsdWUpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKCFzZWxlY3RlZE9wdGlvbnM/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5zaG93TWF4U2VsZWN0ZWRMYWJlbCkge1xuICAgICAgcmV0dXJuIHNlbGVjdGVkT3B0aW9ucztcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICB0aGlzLnNob3dNYXhTZWxlY3RlZExhYmVsICYmXG4gICAgICBzZWxlY3RlZE9wdGlvbnMubGVuZ3RoID4gdGhpcy5zaG93TWF4U2VsZWN0ZWRMYWJlbFxuICAgICkge1xuICAgICAgcmV0dXJuIHNlbGVjdGVkT3B0aW9ucy5zbGljZSgwLCB0aGlzLnNob3dNYXhTZWxlY3RlZExhYmVsKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc2VsZWN0ZWRPcHRpb25zO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWx1ZVRvQXJyYXkob3B0aW9uczogYW55KSB7XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKG9wdGlvbnMpO1xuICAgIGNvbnN0IHZhbHVlOiBhbnlbXSA9IFtdO1xuICAgIGtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIG9wdGlvbnNba2V5XSAmJlxuICAgICAgICBvcHRpb25zW2tleV0gIT09ICcnICYmXG4gICAgICAgIHR5cGVvZiBvcHRpb25zW2tleV0gIT09ICdvYmplY3QnICYmXG4gICAgICAgIHR5cGVvZiBvcHRpb25zW2tleV0gIT09ICdmdW5jdGlvbicgJiZcbiAgICAgICAgdHlwZW9mIG9wdGlvbnNba2V5XSAhPT0gJ2Jvb2xlYW4nXG4gICAgICApIHtcbiAgICAgICAgdmFsdWUucHVzaChvcHRpb25zW2tleV0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgY29tcGFyZVZhbHVlQXJyYXkob3B0aW9uOiBhbnksIHZhbHVlID0gdGhpcy5mb3JtVmFsdWUpOiBhbnlbXSB7XG4gICAgaWYgKG9wdGlvbiAmJiBvcHRpb24udmFsdWUpIHtcbiAgICAgIGNvbnN0IHZhbHVlc0l0ZW1zID0gdGhpcy52YWx1ZVRvQXJyYXkob3B0aW9uLnZhbHVlKTtcbiAgICAgIHJldHVybiB2YWx1ZS5zb21lKChpdGVtOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgaXRlbUFycmF5ID0gdGhpcy52YWx1ZVRvQXJyYXkoaXRlbSk7XG4gICAgICAgIHJldHVybiBpdGVtQXJyYXkuZXZlcnkoKGl0ZW1WYWx1ZTogYW55KSA9PlxuICAgICAgICAgIHZhbHVlc0l0ZW1zLmluY2x1ZGVzKGl0ZW1WYWx1ZSlcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH1cblxuICBwcml2YXRlIGNvbXBhcmVNdWx0aVZhbHVlc0FycmF5KG9wdGlvbjogYW55LCB2YWx1ZSA9IHRoaXMuZm9ybVZhbHVlKTogYW55W10ge1xuICAgIGlmIChvcHRpb24gJiYgb3B0aW9uLnZhbHVlKSB7XG4gICAgICBjb25zdCB2YWx1ZXNJdGVtcyA9IHRoaXMudmFsdWVUb0FycmF5KG9wdGlvbi52YWx1ZSk7XG4gICAgICBjb25zdCBmb3JtVmFsdWVBcnJheSA9IHZhbHVlLm1hcCgoaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IGl0ZW1BcnJheSA9IHRoaXMudmFsdWVUb0FycmF5KGl0ZW0pO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGluZGV4LFxuICAgICAgICAgIGl0ZW0sXG4gICAgICAgICAgc2VsZWN0ZWQ6IGl0ZW1BcnJheS5zb21lKChpdGVtVmFsdWU6IGFueSkgPT5cbiAgICAgICAgICAgIHZhbHVlc0l0ZW1zLmluY2x1ZGVzKGl0ZW1WYWx1ZSlcbiAgICAgICAgICApLFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgICAvLyBSZW1vdmUgZHVwbGljYXRlIGl0ZW1zXG4gICAgICBjb25zdCB1bmlxdWVGb3JtVmFsdWVBcnJheSA9IEFycmF5LmZyb20oXG4gICAgICAgIG5ldyBTZXQoZm9ybVZhbHVlQXJyYXkubWFwKChpdGVtOiBhbnkpID0+IEpTT04uc3RyaW5naWZ5KGl0ZW0pKSlcbiAgICAgICkubWFwKChpdGVtOiBhbnkpID0+IEpTT04ucGFyc2UoaXRlbSkpO1xuXG4gICAgICByZXR1cm4gdW5pcXVlRm9ybVZhbHVlQXJyYXk7XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGdldCBzZWxlY3RlZExhYmVsTXVsdGlDb3VudCgpOiBudW1iZXIge1xuICAgIGNvbnN0IHNob3cgPSB0aGlzLnNob3dNYXhTZWxlY3RlZExhYmVsIHx8IDA7XG4gICAgY29uc3Qgc2VsZWN0ZWRPcHRpb25zID0gdGhpcy5vcHRpb25zPy5maWx0ZXIoKG9wdGlvbikgPT5cbiAgICAgIHRoaXMuZm9ybVZhbHVlPy5pbmNsdWRlcyhvcHRpb24udmFsdWUpXG4gICAgKTtcbiAgICBpZiAoIXNlbGVjdGVkT3B0aW9ucz8ubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICBpZiAoc2hvdyA+IDAgJiYgc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA+IHNob3cpIHtcbiAgICAgIHJldHVybiBzZWxlY3RlZE9wdGlvbnMubGVuZ3RoIC0gc2hvdztcbiAgICB9XG5cbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHJlbW92ZUl0ZW0ob3B0aW9uOiBhbnkpIHtcbiAgICB0aGlzLm9uU2VsZWN0KG9wdGlvbik7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnNob3dMaXN0ID0gZmFsc2U7XG4gICAgfSwgMTAwKTtcbiAgfVxuXG4gIG9uS2V5UHJlc3MoZXZlbnQ6IGFueSkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5yZW5kZXJCb3hPcHRpb25zKCk7XG4gIH1cblxuICBvbkZpbHRlcihldmVudDogYW55KSB7XG4gICAgY29uc3QgdmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgdGhpcy5yZW5kZXJCb3hPcHRpb25zKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZmlsdGVyZWRPcHRpb25zLmxlbmd0aCkge1xuICAgICAgdGhpcy5yZW5kZXJCb3hPcHRpb25zKHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBvblJlc2l6ZSgpIHtcbiAgICB0aGlzLnJlbmRlckJveE9wdGlvbnMoKTtcbiAgICB0aGlzLnBvc2l0aW9uQm94KCk7XG4gIH1cblxuICBvbkZvY3VzT3V0KCkge1xuICAgIGlmICghdGhpcy5wcmV2ZW50RXNjYXBlRm9jdXMgJiYgIXRoaXMuaXNNb2JpbGUpIHtcbiAgICAgIHRoaXMuaXNGb2N1c2VkID0gZmFsc2U7XG4gICAgICB0aGlzLnNob3dMaXN0ID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgY2xvc2VMaXN0KCkge1xuICAgIHRoaXMucHJldmVudEVzY2FwZUZvY3VzID0gdHJ1ZTtcbiAgICB0aGlzLmlzRm9jdXNlZCA9IGZhbHNlO1xuICAgIHRoaXMuc2hvd0xpc3QgPSBmYWxzZTtcbiAgfVxuXG4gIHNlbGVjdGVkVmFsdWUob3B0aW9uOiB7IHZhbHVlOiBhbnk7IGxhYmVsOiBzdHJpbmc7IHNhZmVIdG1sQ29udGVudDogYW55IH0pIHtcbiAgICBpZiAodGhpcy5tdWx0aVNlbGVjdCkge1xuICAgICAgaWYgKHR5cGVvZiBvcHRpb24udmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIGlmIChvcHRpb24gJiYgb3B0aW9uLnZhbHVlKSB7XG4gICAgICAgICAgY29uc3QgdmFsdWVzSXRlbXMgPSB0aGlzLnZhbHVlVG9BcnJheShvcHRpb24udmFsdWUpO1xuICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1WYWx1ZS5zb21lKChpdGVtOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW1BcnJheSA9IHRoaXMudmFsdWVUb0FycmF5KGl0ZW0pO1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW1BcnJheS5ldmVyeSgoaXRlbVZhbHVlOiBhbnkpID0+XG4gICAgICAgICAgICAgIHZhbHVlc0l0ZW1zLmluY2x1ZGVzKGl0ZW1WYWx1ZSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1WYWx1ZT8uaW5jbHVkZXMob3B0aW9uLnZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gb3B0aW9uLnZhbHVlID09PSB0aGlzLmZvcm1WYWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyQm94T3B0aW9ucyhmaWx0ZXJWYWx1ZTogc3RyaW5nIHwgbnVsbCA9IG51bGwpIHtcbiAgICBpZiAoIXRoaXMub3B0aW9ucyB8fCAhdGhpcy5vcHRpb25zLmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IHRoaXMub3B0aW9uc1xuICAgICAgPy5tYXAoKG9wdGlvbikgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHZhbHVlOiBvcHRpb24udmFsdWUsXG4gICAgICAgICAgaWNvblByZWZpeDogb3B0aW9uLmljb25QcmVmaXgsXG4gICAgICAgICAgaHRtbExhYmVsOiBvcHRpb24uc2FmZUh0bWxDb250ZW50IHx8IG9wdGlvbi5sYWJlbCxcbiAgICAgICAgICBkaXNhYmxlZDogb3B0aW9uLmRpc2FibGVkLFxuICAgICAgICAgIHZpZXdPbmx5OiBvcHRpb24udmlld09ubHksXG4gICAgICAgIH07XG4gICAgICB9KVxuICAgICAgLmZpbHRlcigob3B0aW9uKSA9PiB7XG4gICAgICAgIGlmICghZmlsdGVyVmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBub3JtYWxpemVkRmlsdGVyID0gdGhpcy5ub3JtYWxpemVUZXh0KGZpbHRlclZhbHVlKTtcbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZExhYmVsID0gdGhpcy5ub3JtYWxpemVUZXh0KFxuICAgICAgICAgIG9wdGlvbi5odG1sTGFiZWw/LnRvU3RyaW5nKCkgfHwgJydcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZWRMYWJlbC5pbmNsdWRlcyhub3JtYWxpemVkRmlsdGVyKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBub3JtYWxpemVUZXh0KHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRleHRcbiAgICAgIC5yZXBsYWNlKC9bXFxXX10rL2csICcnKSAvLyBSZW1vdmUgY2FyYWN0ZXJlcyBlc3BlY2lhaXMgZSBzdWJsaW5oYWRvc1xuICAgICAgLnRvTG93ZXJDYXNlKCk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJ3Y28tc21hcnRTZWxlY3RcIlxuICBbbmdDbGFzc109XCJ7XG4gICAgJ3djby1zbWFydFNlbGVjdC0tb3Blbic6IHNob3dMaXN0LFxuICAgICd3Y28tc21hcnRTZWxlY3QtLWlzTW9iaWxlJzogaXNNb2JpbGUsXG59XCJcbiAgKHJlc2l6ZSk9XCJvblJlc2l6ZSgpXCJcbiAgKG1vdXNlbGVhdmUpPVwib25Gb2N1c091dCgpXCJcbj5cbiAgPGRpdiBjbGFzcz1cImZvcm0tZmllbGRcIiBbbmdDbGFzc109XCJ7J2Zvcm0tLWVycm9yJzogaGFzRXJyb3J9XCI+XG4gICAgPGlucHV0XG4gICAgICAqbmdJZj1cIiFtdWx0aVNlbGVjdFwiXG4gICAgICBjbGFzcz1cImZvcm0tZmllbGRfX2lucHV0XCJcbiAgICAgIFtkaXNhYmxlZF09XCJhdXRvY29tcGxldGVDb250cm9sLmRpc2FibGVkXCJcbiAgICAgIGlkPVwie3sgaW5wdXRJZCA/IGlucHV0SWQgOiAnJyB9fVwiXG4gICAgICBuYW1lPVwie3sgaW5wdXROYW1lID8gaW5wdXROYW1lIDogJycgfX1cIlxuICAgICAgKGNsaWNrKT1cIm9uRm9jdXNJbih0cnVlKVwiXG4gICAgICAoZm9jdXNpbik9XCJvbkZvY3VzSW4oKVwiXG4gICAgICAoa2V5dXAuZXNjYXBlKT1cIm9uRm9jdXNPdXQoKVwiXG4gICAgICAoa2V5cHJlc3MpPVwib25LZXlQcmVzcygkZXZlbnQpXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgW3ZhbHVlXT1cInNlbGVjdGVkTGFiZWxcIlxuICAgICAgYXJpYS1sYWJlbD1cIlNlbGVjaW9uZSB1bWEgb3DDp8Ojb1wiXG4gICAgLz5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cIm11bHRpU2VsZWN0XCJcbiAgICAgIGNsYXNzPVwiZm9ybS1maWVsZF9faW5wdXQgcmVhZG9ubHkgbXVsdGlTZWxlY3RcIlxuICAgICAgW25nQ2xhc3NdPVwieydmb3JtLWZpZWxkLS1lcnJvcic6IGhhc0Vycm9yLCAnZm9ybS1maWVsZC0tZGlzYWJsZWQnOiBhdXRvY29tcGxldGVDb250cm9sLmRpc2FibGVkIH1cIlxuICAgICAgW2NsYXNzLnJlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgIChjbGljayk9XCJvbkZvY3VzSW4odHJ1ZSlcIlxuICAgICAgKGZvY3VzaW4pPVwib25Gb2N1c0luKClcIlxuICAgICAgKGtleXVwLmVzY2FwZSk9XCJvbkZvY3VzT3V0KClcIlxuICAgID5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXNlbGVjdGVkTGFiZWxNdWx0aS5sZW5ndGhcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwid2NvLXNtYXJ0LXNlbGVjdC1wbGFjZWhvbGRlclwiPnt7IHBsYWNlaG9sZGVyIHx8ICdTZWxlY2lvbmUgdW1hIG9ww6fDo28nIH19PC9zcGFuPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZExhYmVsTXVsdGkubGVuZ3RoXCI+XG4gICAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgb3B0aW9uU2VsZWN0ZWQgb2Ygc2VsZWN0ZWRMYWJlbE11bHRpXCIgY2xhc3M9XCJ3Y28tc21hcnQtc2VsZWN0LWl0ZW1cIj5cbiAgICAgICAgICAgICAge3tvcHRpb25TZWxlY3RlZC5sYWJlbH19IFxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIndjby1zbWFydC1zZWxlY3QtcmVtb3ZlXCIgKGNsaWNrKT1cInJlbW92ZUl0ZW0ob3B0aW9uU2VsZWN0ZWQpXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiPmNsb3NlPC9zcGFuPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwid2NvLXNtYXJ0LXNlbGVjdC1pdGVtXCIgICpuZ0lmPVwic2VsZWN0ZWRMYWJlbE11bHRpQ291bnQgPj0gMVwiPlxuICAgICAgICAgICAgICAgICt7e3NlbGVjdGVkTGFiZWxNdWx0aUNvdW50fX0gXG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgICA8bGFiZWw+e3sgbGFiZWwgfX08L2xhYmVsPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zIHdjby1zbWFydC1zZWxlY3QtLWFycm93XCI+e3sgSWNvbk1hdGVyaWFsIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwid2NvLXNtYXJ0U2VsZWN0LS1ib3hcIlxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgJ3djby1zbWFydFNlbGVjdC0tYm94LS1vcGVuJzogc2hvd0xpc3QgJiYgIWF1dG9jb21wbGV0ZUNvbnRyb2wuZGlzYWJsZWRcbiAgICAgICAgfVwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3Y28tc21hcnRTZWxlY3QtLWlzTW9iaWxlLWNsb3NlXCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlTGlzdCgpXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tcHJpbWFyeSBidG4tb3V0bGluZSBtYi1uYW5vXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBmZWNoYXJcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDx1bD5cbiAgICAgICAgICA8bGlcbiAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICBjbGFzcz1cIndjby1zbWFydC1zZWxlY3RlZC1maWx0ZXJcIlxuICAgICAgICAgICAgKm5nSWY9XCJzaG93TGlzdCAmJiBzaG93U2VhcmNoXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyU2VhcmNoXCJcbiAgICAgICAgICAgICAgKGtleXVwKT1cIm9uRmlsdGVyKCRldmVudClcIlxuICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiUGVzcXVpc2FyXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXV0b2ZvY3VzXT1cInRydWVcIlxuICAgICAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCIwXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJ3Y28tc21hcnRTZWxlY3QtLXNlYXJjaFwiXG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgICA8bGlcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZmlsdGVyZWRPcHRpb25zOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICAgIFt0YWJpbmRleF09XCJpICsgMVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgJ3djby1zbWFydC1zZWxlY3RlZCc6IHNlbGVjdGVkVmFsdWUob3B0aW9uKSxcbiAgICAgICAgICAgICAgICAnd2Mtc21hcnQtc2VsZWN0LWRpc2FibGVkLW9wdGlvbic6IG9wdGlvbi5kaXNhYmxlZCxcbiAgICAgICAgICAgICAgICAnd2Mtc21hcnQtc2VsZWN0LXZpZXctb25seS1vcHRpb24nOiBvcHRpb24udmlld09ubHksXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdChvcHRpb24pXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIndjby1zbWFydC1zZWxlY3QtbGFiZWwtcHJlZml4XCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0eXBlUHJlZml4ID09PSAnY2hlY2tib3gnXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29ucy1vdXRsaW5lZFwiPlxuICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRWYWx1ZShvcHRpb24pID8gXCJjaGVja19ib3hcIiA6IFwiY2hlY2tfYm94X291dGxpbmVfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidHlwZVByZWZpeCA9PT0gJ3JhZGlvJ1wiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWRcIj5cbiAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkVmFsdWUob3B0aW9uKVxuICAgICAgICAgICAgICAgICAgICAgID8gXCJyYWRpb19idXR0b25fY2hlY2tlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgOiBcInJhZGlvX2J1dHRvbl91bmNoZWNrZWRcIlxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICEhb3B0aW9uLmljb25QcmVmaXggJiZcbiAgICAgICAgICAgICAgICAgIHR5cGVQcmVmaXggIT09ICdyYWRpbycgJiZcbiAgICAgICAgICAgICAgICAgIHR5cGVQcmVmaXggIT09ICdjaGVja2JveCdcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29ucy1vdXRsaW5lZFwiPlxuICAgICAgICAgICAgICAgICAge3sgb3B0aW9uLmljb25QcmVmaXggfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY2xhc3M9XCJ3Y28tc21hcnQtc2VsZWN0LWxhYmVsXCJcbiAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJvcHRpb24uaHRtbExhYmVsXCJcbiAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgICA8bGkgKm5nSWY9XCIhZmlsdGVyZWRPcHRpb25zLmxlbmd0aFwiPlxuICAgICAgICAgICAgPHAgY2xhc3M9XCJkaXNwbGF5LWJvZHlcIj57eyB0ZXh0RW1wdHkgfX08L3A+XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgPC91bD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgICJdfQ==
@@ -12,11 +12,11 @@ export class TableComponent {
12
12
  return this.templates[templateName];
13
13
  }
14
14
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: TableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: TableComponent, isStandalone: true, selector: "wco-table", inputs: { data: "data", headers: "headers", loading: "loading", templates: "templates" }, ngImport: i0, template: "<div class=\"wco-table-area\">\n <table class=\"wco-table\" role=\"table\">\n <thead *ngIf=\"data && data.length > 0\">\n <tr>\n <th *ngFor=\"let header of headers\" scope=\"col\">{{ header.label }}</th>\n </tr>\n </thead>\n <ng-container *ngIf=\"!loading\">\n <tbody>\n <tr\n *ngFor=\"let row of data; let i = index\"\n [id]=\"row['id'] ? 'row-' + row['id'] : i\"\n >\n <td\n *ngFor=\"let header of headers\"\n role=\"cell\"\n [attr.data-label]=\"header.label\"\n >\n <ng-container *ngIf=\"header.template\">\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate(header.template);\n context: { $implicit: row[header.key], row: row, index: i }\n \"\n />\n </ng-container>\n <ng-container *ngIf=\"!header.template\">{{\n row[header.key]\n }}</ng-container>\n </td>\n </tr>\n </tbody>\n </ng-container>\n <ng-container *ngIf=\"loading\">\n <tbody>\n <tr *ngFor=\"let row of [1, 2, 3, 4, 5]\">\n <td *ngFor=\"let header of headers\" role=\"cell\">\n <div class=\"wco-skeleton mt-0\" style=\"width: 100%\">\n <span class=\"block p-xxs\"></span>\n </div>\n </td>\n </tr>\n </tbody>\n </ng-container>\n\n <ng-container *ngIf=\"!loading && !data.length\">\n <tbody>\n <tr class=\"wco-table__row--empty\">\n <td\n [attr.colspan]=\"headers.length\"\n class=\"wco-table__cell--empty\"\n role=\"cell\"\n >\n <ng-content select=\".empty\"></ng-content>\n </td>\n </tr>\n </tbody>\n </ng-container>\n </table>\n</div>\n", styles: [".wco-table-area{--wco-table-margin: var(--wco-spacing-xxs);--wco-table-padding: var(--wco-spacing-xxs);--wco-table-color-header-label: var(--wco-color-neutral-900);--wco-table-color-header-cell: var(--wco-color-neutral-700);--wco-table-color-header-line: var(--wco-color-neutral-500);--wco-table-color-bg-cell: var(--wco-color-neutral-50);--wco-table-font-size-header: var(--wco-font-size-xs);--wco-table-font-size-cell: var(--wco-font-size-xs);display:block;width:100%;max-width:var(--wco-table-max-size, 100%);overflow-x:auto;-webkit-overflow-scrolling:touch}.wco-table-area table.wco-table{width:100%;border-spacing:0}@media (min-width: 800px) and (max-width: 1400px){.wco-table-area table.wco-table{min-width:900px}}@media (min-width: 800px){.wco-table-area table.wco-table ::ng-deep tr:not(.wco-table__row--empty):hover{--wco-table-color-header-line: var(--wco-color-primary-500);--wco-table-color-header-cell: var(--wco-color-neutral-700);--wco-table-color-bg-cell: var(--wco-color-neutral-100)}}.wco-table-area table.wco-table ::ng-deep td{text-align:left;padding:var(--wco-table-padding);font-size:var(--wco-table-font-size-cell);line-height:var(--wco-font-lineheight-500);color:var(--wco-table-color-header-cell);border-bottom:1px solid var(--wco-table-color-header-line);background-color:var(--wco-table-color-bg-cell)}.wco-table-area table.wco-table ::ng-deep td.wco-table__cell--empty{--wco-table-color-header-line: transparent}.wco-table-area table.wco-table ::ng-deep thead tr{margin-bottom:var(--wco-table-margin)}.wco-table-area table.wco-table ::ng-deep thead tr th{text-align:left;font-size:var(--wco-table-font-size-header, 16px);color:var(--wco-table-color-header-label, var(--wco-color-neutral-900));padding:var(--wco-table-padding);font-weight:600}@media (max-width: 800px){.wco-table-area{--wco-table-padding: var(--wco-spacing-xxxs)}.wco-table-area table{background-color:transparent}.wco-table-area table th{display:none}.wco-table-area table tr{display:block;margin-bottom:12px;height:fit-content;border:1px solid var(--wco-color-bg)}.wco-table-area table tr>td{display:block;width:100%;border:1px solid var(--wco-color-neutral-100)}.wco-table-area table tr>td:first-child{background-color:var(--wco-color-bg)}.wco-table-area table tr>td:last-child{border:none}.wco-table-area table tr>td:not([data-label=\"\"]):before{content:attr(data-label) \": \";font-weight:700;margin-right:.5em;color:var(--wco-color-neutral-700)}.wco-table-area table tr>td:not([data-label]):before{content:\"\"}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
15
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: TableComponent, isStandalone: true, selector: "wco-table", inputs: { data: "data", headers: "headers", loading: "loading", templates: "templates" }, ngImport: i0, template: "<div class=\"wco-table-area\">\n <table class=\"wco-table\" role=\"table\">\n <thead *ngIf=\"data && data.length > 0\">\n <tr>\n <th *ngFor=\"let header of headers\" scope=\"col\">{{ header.label }}</th>\n </tr>\n </thead>\n <ng-container *ngIf=\"!loading\">\n <tbody>\n <tr\n *ngFor=\"let row of data; let i = index\"\n [id]=\"row['id'] ? 'row-' + row['id'] : i\"\n >\n <td\n *ngFor=\"let header of headers\"\n role=\"cell\"\n [attr.data-label]=\"header.label\"\n >\n <ng-container *ngIf=\"header.template\">\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate(header.template);\n context: { $implicit: row[header.key], row: row, index: i }\n \"\n />\n </ng-container>\n <ng-container *ngIf=\"!header.template\">{{\n row[header.key]\n }}</ng-container>\n </td>\n </tr>\n </tbody>\n </ng-container>\n <ng-container *ngIf=\"loading\">\n <tbody>\n <tr *ngFor=\"let row of [1, 2, 3, 4, 5]\">\n <td *ngFor=\"let header of headers\" role=\"cell\">\n <div class=\"wco-skeleton mt-0\" style=\"width: 100%\">\n <span class=\"block p-xxs\"></span>\n </div>\n </td>\n </tr>\n </tbody>\n </ng-container>\n\n <ng-container *ngIf=\"!loading && !data.length\">\n <tbody>\n <tr class=\"wco-table__row--empty\">\n <td\n [attr.colspan]=\"headers.length\"\n class=\"wco-table__cell--empty\"\n role=\"cell\"\n >\n <ng-content select=\".empty\"></ng-content>\n </td>\n </tr>\n </tbody>\n </ng-container>\n </table>\n</div>\n", styles: [".wco-table-area{--wco-table-margin: var(--wco-spacing-xxs);--wco-table-padding: var(--wco-spacing-xxxs);--wco-table-color-header-label: var(--wco-color-neutral-900);--wco-table-color-header-cell: var(--wco-color-neutral-700);--wco-table-color-header-line: var(--wco-color-neutral-500);--wco-table-color-bg-cell: var(--wco-color-neutral-50);--wco-table-font-size-header: var(--wco-font-size-xs);--wco-table-font-size-cell: var(--wco-font-size-xxs);display:block;width:100%;max-width:var(--wco-table-max-size, 100%);overflow-x:auto;-webkit-overflow-scrolling:touch}.wco-table-area table.wco-table{width:100%;border-spacing:0}@media (min-width: 800px) and (max-width: 1400px){.wco-table-area table.wco-table{min-width:900px}}@media (min-width: 800px){.wco-table-area table.wco-table ::ng-deep tr:not(.wco-table__row--empty):hover{--wco-table-color-header-line: var(--wco-color-primary-500);--wco-table-color-header-cell: var(--wco-color-neutral-700);--wco-table-color-bg-cell: var(--wco-color-neutral-100)}}.wco-table-area table.wco-table ::ng-deep td{text-align:left;padding:var(--wco-table-padding);font-size:var(--wco-table-font-size-cell);line-height:var(--wco-font-lineheight-500);color:var(--wco-table-color-header-cell);border-bottom:1px solid var(--wco-table-color-header-line);background-color:var(--wco-table-color-bg-cell)}.wco-table-area table.wco-table ::ng-deep td.wco-table__cell--empty{--wco-table-color-header-line: transparent}.wco-table-area table.wco-table ::ng-deep thead tr{margin-bottom:var(--wco-table-margin)}.wco-table-area table.wco-table ::ng-deep thead tr th{text-align:left;font-size:var(--wco-table-font-size-header, 16px);color:var(--wco-table-color-header-label, var(--wco-color-neutral-900));padding:var(--wco-table-padding);font-weight:600}@media (max-width: 800px){.wco-table-area{--wco-table-padding: var(--wco-spacing-xxxs)}.wco-table-area table{background-color:transparent}.wco-table-area table th{display:none}.wco-table-area table tr{display:block;margin-bottom:12px;height:fit-content;border:1px solid var(--wco-color-bg)}.wco-table-area table tr>td{display:block;width:100%;border:1px solid var(--wco-color-neutral-100)}.wco-table-area table tr>td:first-child{background-color:var(--wco-color-bg)}.wco-table-area table tr>td:last-child{border:none}.wco-table-area table tr>td:not([data-label=\"\"]):before{content:attr(data-label) \": \";font-weight:700;margin-right:.5em;color:var(--wco-color-neutral-700)}.wco-table-area table tr>td:not([data-label]):before{content:\"\"}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
16
16
  }
17
17
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: TableComponent, decorators: [{
18
18
  type: Component,
19
- args: [{ selector: 'wco-table', standalone: true, imports: [CommonModule], template: "<div class=\"wco-table-area\">\n <table class=\"wco-table\" role=\"table\">\n <thead *ngIf=\"data && data.length > 0\">\n <tr>\n <th *ngFor=\"let header of headers\" scope=\"col\">{{ header.label }}</th>\n </tr>\n </thead>\n <ng-container *ngIf=\"!loading\">\n <tbody>\n <tr\n *ngFor=\"let row of data; let i = index\"\n [id]=\"row['id'] ? 'row-' + row['id'] : i\"\n >\n <td\n *ngFor=\"let header of headers\"\n role=\"cell\"\n [attr.data-label]=\"header.label\"\n >\n <ng-container *ngIf=\"header.template\">\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate(header.template);\n context: { $implicit: row[header.key], row: row, index: i }\n \"\n />\n </ng-container>\n <ng-container *ngIf=\"!header.template\">{{\n row[header.key]\n }}</ng-container>\n </td>\n </tr>\n </tbody>\n </ng-container>\n <ng-container *ngIf=\"loading\">\n <tbody>\n <tr *ngFor=\"let row of [1, 2, 3, 4, 5]\">\n <td *ngFor=\"let header of headers\" role=\"cell\">\n <div class=\"wco-skeleton mt-0\" style=\"width: 100%\">\n <span class=\"block p-xxs\"></span>\n </div>\n </td>\n </tr>\n </tbody>\n </ng-container>\n\n <ng-container *ngIf=\"!loading && !data.length\">\n <tbody>\n <tr class=\"wco-table__row--empty\">\n <td\n [attr.colspan]=\"headers.length\"\n class=\"wco-table__cell--empty\"\n role=\"cell\"\n >\n <ng-content select=\".empty\"></ng-content>\n </td>\n </tr>\n </tbody>\n </ng-container>\n </table>\n</div>\n", styles: [".wco-table-area{--wco-table-margin: var(--wco-spacing-xxs);--wco-table-padding: var(--wco-spacing-xxs);--wco-table-color-header-label: var(--wco-color-neutral-900);--wco-table-color-header-cell: var(--wco-color-neutral-700);--wco-table-color-header-line: var(--wco-color-neutral-500);--wco-table-color-bg-cell: var(--wco-color-neutral-50);--wco-table-font-size-header: var(--wco-font-size-xs);--wco-table-font-size-cell: var(--wco-font-size-xs);display:block;width:100%;max-width:var(--wco-table-max-size, 100%);overflow-x:auto;-webkit-overflow-scrolling:touch}.wco-table-area table.wco-table{width:100%;border-spacing:0}@media (min-width: 800px) and (max-width: 1400px){.wco-table-area table.wco-table{min-width:900px}}@media (min-width: 800px){.wco-table-area table.wco-table ::ng-deep tr:not(.wco-table__row--empty):hover{--wco-table-color-header-line: var(--wco-color-primary-500);--wco-table-color-header-cell: var(--wco-color-neutral-700);--wco-table-color-bg-cell: var(--wco-color-neutral-100)}}.wco-table-area table.wco-table ::ng-deep td{text-align:left;padding:var(--wco-table-padding);font-size:var(--wco-table-font-size-cell);line-height:var(--wco-font-lineheight-500);color:var(--wco-table-color-header-cell);border-bottom:1px solid var(--wco-table-color-header-line);background-color:var(--wco-table-color-bg-cell)}.wco-table-area table.wco-table ::ng-deep td.wco-table__cell--empty{--wco-table-color-header-line: transparent}.wco-table-area table.wco-table ::ng-deep thead tr{margin-bottom:var(--wco-table-margin)}.wco-table-area table.wco-table ::ng-deep thead tr th{text-align:left;font-size:var(--wco-table-font-size-header, 16px);color:var(--wco-table-color-header-label, var(--wco-color-neutral-900));padding:var(--wco-table-padding);font-weight:600}@media (max-width: 800px){.wco-table-area{--wco-table-padding: var(--wco-spacing-xxxs)}.wco-table-area table{background-color:transparent}.wco-table-area table th{display:none}.wco-table-area table tr{display:block;margin-bottom:12px;height:fit-content;border:1px solid var(--wco-color-bg)}.wco-table-area table tr>td{display:block;width:100%;border:1px solid var(--wco-color-neutral-100)}.wco-table-area table tr>td:first-child{background-color:var(--wco-color-bg)}.wco-table-area table tr>td:last-child{border:none}.wco-table-area table tr>td:not([data-label=\"\"]):before{content:attr(data-label) \": \";font-weight:700;margin-right:.5em;color:var(--wco-color-neutral-700)}.wco-table-area table tr>td:not([data-label]):before{content:\"\"}}\n"] }]
19
+ args: [{ selector: 'wco-table', standalone: true, imports: [CommonModule], template: "<div class=\"wco-table-area\">\n <table class=\"wco-table\" role=\"table\">\n <thead *ngIf=\"data && data.length > 0\">\n <tr>\n <th *ngFor=\"let header of headers\" scope=\"col\">{{ header.label }}</th>\n </tr>\n </thead>\n <ng-container *ngIf=\"!loading\">\n <tbody>\n <tr\n *ngFor=\"let row of data; let i = index\"\n [id]=\"row['id'] ? 'row-' + row['id'] : i\"\n >\n <td\n *ngFor=\"let header of headers\"\n role=\"cell\"\n [attr.data-label]=\"header.label\"\n >\n <ng-container *ngIf=\"header.template\">\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate(header.template);\n context: { $implicit: row[header.key], row: row, index: i }\n \"\n />\n </ng-container>\n <ng-container *ngIf=\"!header.template\">{{\n row[header.key]\n }}</ng-container>\n </td>\n </tr>\n </tbody>\n </ng-container>\n <ng-container *ngIf=\"loading\">\n <tbody>\n <tr *ngFor=\"let row of [1, 2, 3, 4, 5]\">\n <td *ngFor=\"let header of headers\" role=\"cell\">\n <div class=\"wco-skeleton mt-0\" style=\"width: 100%\">\n <span class=\"block p-xxs\"></span>\n </div>\n </td>\n </tr>\n </tbody>\n </ng-container>\n\n <ng-container *ngIf=\"!loading && !data.length\">\n <tbody>\n <tr class=\"wco-table__row--empty\">\n <td\n [attr.colspan]=\"headers.length\"\n class=\"wco-table__cell--empty\"\n role=\"cell\"\n >\n <ng-content select=\".empty\"></ng-content>\n </td>\n </tr>\n </tbody>\n </ng-container>\n </table>\n</div>\n", styles: [".wco-table-area{--wco-table-margin: var(--wco-spacing-xxs);--wco-table-padding: var(--wco-spacing-xxxs);--wco-table-color-header-label: var(--wco-color-neutral-900);--wco-table-color-header-cell: var(--wco-color-neutral-700);--wco-table-color-header-line: var(--wco-color-neutral-500);--wco-table-color-bg-cell: var(--wco-color-neutral-50);--wco-table-font-size-header: var(--wco-font-size-xs);--wco-table-font-size-cell: var(--wco-font-size-xxs);display:block;width:100%;max-width:var(--wco-table-max-size, 100%);overflow-x:auto;-webkit-overflow-scrolling:touch}.wco-table-area table.wco-table{width:100%;border-spacing:0}@media (min-width: 800px) and (max-width: 1400px){.wco-table-area table.wco-table{min-width:900px}}@media (min-width: 800px){.wco-table-area table.wco-table ::ng-deep tr:not(.wco-table__row--empty):hover{--wco-table-color-header-line: var(--wco-color-primary-500);--wco-table-color-header-cell: var(--wco-color-neutral-700);--wco-table-color-bg-cell: var(--wco-color-neutral-100)}}.wco-table-area table.wco-table ::ng-deep td{text-align:left;padding:var(--wco-table-padding);font-size:var(--wco-table-font-size-cell);line-height:var(--wco-font-lineheight-500);color:var(--wco-table-color-header-cell);border-bottom:1px solid var(--wco-table-color-header-line);background-color:var(--wco-table-color-bg-cell)}.wco-table-area table.wco-table ::ng-deep td.wco-table__cell--empty{--wco-table-color-header-line: transparent}.wco-table-area table.wco-table ::ng-deep thead tr{margin-bottom:var(--wco-table-margin)}.wco-table-area table.wco-table ::ng-deep thead tr th{text-align:left;font-size:var(--wco-table-font-size-header, 16px);color:var(--wco-table-color-header-label, var(--wco-color-neutral-900));padding:var(--wco-table-padding);font-weight:600}@media (max-width: 800px){.wco-table-area{--wco-table-padding: var(--wco-spacing-xxxs)}.wco-table-area table{background-color:transparent}.wco-table-area table th{display:none}.wco-table-area table tr{display:block;margin-bottom:12px;height:fit-content;border:1px solid var(--wco-color-bg)}.wco-table-area table tr>td{display:block;width:100%;border:1px solid var(--wco-color-neutral-100)}.wco-table-area table tr>td:first-child{background-color:var(--wco-color-bg)}.wco-table-area table tr>td:last-child{border:none}.wco-table-area table tr>td:not([data-label=\"\"]):before{content:attr(data-label) \": \";font-weight:700;margin-right:.5em;color:var(--wco-color-neutral-700)}.wco-table-area table tr>td:not([data-label]):before{content:\"\"}}\n"] }]
20
20
  }], ctorParameters: () => [], propDecorators: { data: [{
21
21
  type: Input
22
22
  }], headers: [{
@@ -26,4 +26,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
26
26
  }], templates: [{
27
27
  type: Input
28
28
  }] } });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvbmVudHMvc3JjL2xpYi90YWJsZS90YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tcG9uZW50cy9zcmMvbGliL3RhYmxlL3RhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBRTlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBUy9DLE1BQU0sT0FBTyxjQUFjO0lBQ2hCLElBQUksR0FBVSxFQUFFLENBQUM7SUFDakIsT0FBTyxHQUFrQixFQUFFLENBQUM7SUFDNUIsT0FBTyxHQUFhLEtBQUssQ0FBQztJQUMxQixTQUFTLEdBQXdDLEVBQUUsQ0FBQztJQUU3RCxnQkFBZSxDQUFDO0lBRWhCLFdBQVcsQ0FBQyxZQUFvQjtRQUM5QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdEMsQ0FBQzt1R0FWVSxjQUFjOzJGQUFkLGNBQWMsK0pDWDNCLHMxREE0REEsNGdGRG5EWSxZQUFZOzsyRkFFWCxjQUFjO2tCQVAxQixTQUFTOytCQUNFLFdBQVcsY0FHVCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUM7d0RBR2QsSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUYWJsZUhlYWRlciB9IGZyb20gJy4vdGFibGUudHlwZXMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd2NvLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQ29tcG9uZW50IHtcbiAgQElucHV0KCkgZGF0YTogYW55W10gPSBbXTtcbiAgQElucHV0KCkgaGVhZGVyczogVGFibGVIZWFkZXJbXSA9IFtdO1xuICBASW5wdXQoKSBsb2FkaW5nPzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSB0ZW1wbGF0ZXM6IHsgW2tleTogc3RyaW5nXTogVGVtcGxhdGVSZWY8YW55PiB9ID0ge307XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIGdldFRlbXBsYXRlKHRlbXBsYXRlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMudGVtcGxhdGVzW3RlbXBsYXRlTmFtZV07XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ3Y28tdGFibGUtYXJlYVwiPlxuICA8dGFibGUgY2xhc3M9XCJ3Y28tdGFibGVcIiByb2xlPVwidGFibGVcIj5cbiAgICA8dGhlYWQgKm5nSWY9XCJkYXRhICYmIGRhdGEubGVuZ3RoID4gMFwiPlxuICAgICAgPHRyPlxuICAgICAgICA8dGggKm5nRm9yPVwibGV0IGhlYWRlciBvZiBoZWFkZXJzXCIgc2NvcGU9XCJjb2xcIj57eyBoZWFkZXIubGFiZWwgfX08L3RoPlxuICAgICAgPC90cj5cbiAgICA8L3RoZWFkPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9hZGluZ1wiPlxuICAgICAgPHRib2R5PlxuICAgICAgICA8dHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgcm93IG9mIGRhdGE7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgIFtpZF09XCJyb3dbJ2lkJ10gPyAncm93LScgKyByb3dbJ2lkJ10gOiBpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDx0ZFxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGhlYWRlciBvZiBoZWFkZXJzXCJcbiAgICAgICAgICAgIHJvbGU9XCJjZWxsXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtbGFiZWxdPVwiaGVhZGVyLmxhYmVsXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGVyLnRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgZ2V0VGVtcGxhdGUoaGVhZGVyLnRlbXBsYXRlKTtcbiAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiByb3dbaGVhZGVyLmtleV0sIHJvdzogcm93LCBpbmRleDogaSB9XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFoZWFkZXIudGVtcGxhdGVcIj57e1xuICAgICAgICAgICAgICByb3dbaGVhZGVyLmtleV1cbiAgICAgICAgICAgIH19PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgIDwvdGJvZHk+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvYWRpbmdcIj5cbiAgICAgIDx0Ym9keT5cbiAgICAgICAgPHRyICpuZ0Zvcj1cImxldCByb3cgb2YgWzEsIDIsIDMsIDQsIDVdXCI+XG4gICAgICAgICAgPHRkICpuZ0Zvcj1cImxldCBoZWFkZXIgb2YgaGVhZGVyc1wiIHJvbGU9XCJjZWxsXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2NvLXNrZWxldG9uIG10LTBcIiBzdHlsZT1cIndpZHRoOiAxMDAlXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmxvY2sgcC14eHNcIj48L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgPC90Ym9keT5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9hZGluZyAmJiAhZGF0YS5sZW5ndGhcIj5cbiAgICAgIDx0Ym9keT5cbiAgICAgICAgPHRyIGNsYXNzPVwid2NvLXRhYmxlX19yb3ctLWVtcHR5XCI+XG4gICAgICAgICAgPHRkXG4gICAgICAgICAgICBbYXR0ci5jb2xzcGFuXT1cImhlYWRlcnMubGVuZ3RoXCJcbiAgICAgICAgICAgIGNsYXNzPVwid2NvLXRhYmxlX19jZWxsLS1lbXB0eVwiXG4gICAgICAgICAgICByb2xlPVwiY2VsbFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiLmVtcHR5XCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L3Rib2R5PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L3RhYmxlPlxuPC9kaXY+XG4iXX0=
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvbmVudHMvc3JjL2xpYi90YWJsZS90YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tcG9uZW50cy9zcmMvbGliL3RhYmxlL3RhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBRTlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBUy9DLE1BQU0sT0FBTyxjQUFjO0lBQ2hCLElBQUksR0FBVSxFQUFFLENBQUM7SUFDakIsT0FBTyxHQUFrQixFQUFFLENBQUM7SUFDNUIsT0FBTyxHQUFhLEtBQUssQ0FBQztJQUMxQixTQUFTLEdBQXdDLEVBQUUsQ0FBQztJQUU3RCxnQkFBZSxDQUFDO0lBRWhCLFdBQVcsQ0FBQyxZQUFvQjtRQUM5QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdEMsQ0FBQzt1R0FWVSxjQUFjOzJGQUFkLGNBQWMsK0pDWDNCLHMxREE0REEsOGdGRG5EWSxZQUFZOzsyRkFFWCxjQUFjO2tCQVAxQixTQUFTOytCQUNFLFdBQVcsY0FHVCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUM7d0RBR2QsSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUYWJsZUhlYWRlciB9IGZyb20gJy4vdGFibGUudHlwZXMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd2NvLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQ29tcG9uZW50IHtcbiAgQElucHV0KCkgZGF0YTogYW55W10gPSBbXTtcbiAgQElucHV0KCkgaGVhZGVyczogVGFibGVIZWFkZXJbXSA9IFtdO1xuICBASW5wdXQoKSBsb2FkaW5nPzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSB0ZW1wbGF0ZXM6IHsgW2tleTogc3RyaW5nXTogVGVtcGxhdGVSZWY8YW55PiB9ID0ge307XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIGdldFRlbXBsYXRlKHRlbXBsYXRlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMudGVtcGxhdGVzW3RlbXBsYXRlTmFtZV07XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ3Y28tdGFibGUtYXJlYVwiPlxuICA8dGFibGUgY2xhc3M9XCJ3Y28tdGFibGVcIiByb2xlPVwidGFibGVcIj5cbiAgICA8dGhlYWQgKm5nSWY9XCJkYXRhICYmIGRhdGEubGVuZ3RoID4gMFwiPlxuICAgICAgPHRyPlxuICAgICAgICA8dGggKm5nRm9yPVwibGV0IGhlYWRlciBvZiBoZWFkZXJzXCIgc2NvcGU9XCJjb2xcIj57eyBoZWFkZXIubGFiZWwgfX08L3RoPlxuICAgICAgPC90cj5cbiAgICA8L3RoZWFkPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9hZGluZ1wiPlxuICAgICAgPHRib2R5PlxuICAgICAgICA8dHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgcm93IG9mIGRhdGE7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgIFtpZF09XCJyb3dbJ2lkJ10gPyAncm93LScgKyByb3dbJ2lkJ10gOiBpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDx0ZFxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGhlYWRlciBvZiBoZWFkZXJzXCJcbiAgICAgICAgICAgIHJvbGU9XCJjZWxsXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtbGFiZWxdPVwiaGVhZGVyLmxhYmVsXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGVyLnRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgZ2V0VGVtcGxhdGUoaGVhZGVyLnRlbXBsYXRlKTtcbiAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiByb3dbaGVhZGVyLmtleV0sIHJvdzogcm93LCBpbmRleDogaSB9XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFoZWFkZXIudGVtcGxhdGVcIj57e1xuICAgICAgICAgICAgICByb3dbaGVhZGVyLmtleV1cbiAgICAgICAgICAgIH19PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgIDwvdGJvZHk+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvYWRpbmdcIj5cbiAgICAgIDx0Ym9keT5cbiAgICAgICAgPHRyICpuZ0Zvcj1cImxldCByb3cgb2YgWzEsIDIsIDMsIDQsIDVdXCI+XG4gICAgICAgICAgPHRkICpuZ0Zvcj1cImxldCBoZWFkZXIgb2YgaGVhZGVyc1wiIHJvbGU9XCJjZWxsXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2NvLXNrZWxldG9uIG10LTBcIiBzdHlsZT1cIndpZHRoOiAxMDAlXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmxvY2sgcC14eHNcIj48L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgPC90Ym9keT5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9hZGluZyAmJiAhZGF0YS5sZW5ndGhcIj5cbiAgICAgIDx0Ym9keT5cbiAgICAgICAgPHRyIGNsYXNzPVwid2NvLXRhYmxlX19yb3ctLWVtcHR5XCI+XG4gICAgICAgICAgPHRkXG4gICAgICAgICAgICBbYXR0ci5jb2xzcGFuXT1cImhlYWRlcnMubGVuZ3RoXCJcbiAgICAgICAgICAgIGNsYXNzPVwid2NvLXRhYmxlX19jZWxsLS1lbXB0eVwiXG4gICAgICAgICAgICByb2xlPVwiY2VsbFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiLmVtcHR5XCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L3Rib2R5PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L3RhYmxlPlxuPC9kaXY+XG4iXX0=