ngx-sumax-erp-components 1.0.35 → 1.0.37
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.
- package/esm2022/lib/ng-select-simple/ng-select-simple.component.mjs +7 -4
- package/esm2022/lib/sc-ag-grid/cell-editors/container-shared/container-shared.component.mjs +1 -1
- package/esm2022/lib/sc-ag-grid/cell-render/sc-cell-render-select/sc-cell-render-select.component.mjs +1 -1
- package/esm2022/lib/sc-wizard/sc-wizard.component.mjs +2 -2
- package/fesm2022/ngx-sumax-erp-components.mjs +10 -7
- package/fesm2022/ngx-sumax-erp-components.mjs.map +1 -1
- package/lib/ng-select-simple/ng-select-simple.component.d.ts +2 -1
- package/package.json +1 -1
|
@@ -62,6 +62,7 @@ export class NgSelectSimpleComponent {
|
|
|
62
62
|
this.virtualScroll = true;
|
|
63
63
|
this.openOnEnter = false;
|
|
64
64
|
this.refresh = false;
|
|
65
|
+
this.isRefreshDisabled = false;
|
|
65
66
|
this.search = false;
|
|
66
67
|
this.redirect = false;
|
|
67
68
|
this.searchParams = new SearchParams();
|
|
@@ -323,7 +324,7 @@ export class NgSelectSimpleComponent {
|
|
|
323
324
|
this.onSearch();
|
|
324
325
|
}
|
|
325
326
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: NgSelectSimpleComponent, deps: [{ token: i1.MessageUtilService }, { token: i2.MatDialog }, { token: i3.NgSelectSimpleService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
326
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: NgSelectSimpleComponent, selector: "ng-select-simple", inputs: { showLabel: "showLabel", label: "label", autocomplete: "autocomplete", next: "next", nextIsDisable: "nextIsDisable", back: "back", backIsDisable: "backIsDisable", required: "required", disabled: "disabled", readonly: "readonly", validatorMessage: "validatorMessage", tooltipMessage: "tooltipMessage", openWhenFocus: "openWhenFocus", searchBy: "searchBy", markFirstItem: "markFirstItem", markWhenHaveOneItem: "markWhenHaveOneItem", submitted: "submitted", setNgClass: "setNgClass", searchable: "searchable", validatorAlert: "validatorAlert", upperCase: "upperCase", templateLabel: "templateLabel", appendTo: "appendTo", items: "items", loading: "loading", loadingText: "loadingText", clearAllText: "clearAllText", notFoundText: "notFoundText", markFirst: "markFirst", clearable: "clearable", clearOnBackspace: "clearOnBackspace", virtualScroll: "virtualScroll", openOnEnter: "openOnEnter", refresh: "refresh", search: "search", redirect: "redirect", searchParams: "searchParams", labelInfo: "labelInfo", textLabelInfo: "textLabelInfo", urlRedirect: "urlRedirect", titleRedirect: "titleRedirect", isRedirectDisabled: "isRedirectDisabled" }, outputs: { onNext: "onNext", onBack: "onBack", change: "change", blur: "blur", onfocus: "onfocus", onrefresh: "onrefresh", onsearch: "onsearch" }, providers: [
|
|
327
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: NgSelectSimpleComponent, selector: "ng-select-simple", inputs: { showLabel: "showLabel", label: "label", autocomplete: "autocomplete", next: "next", nextIsDisable: "nextIsDisable", back: "back", backIsDisable: "backIsDisable", required: "required", disabled: "disabled", readonly: "readonly", validatorMessage: "validatorMessage", tooltipMessage: "tooltipMessage", openWhenFocus: "openWhenFocus", searchBy: "searchBy", markFirstItem: "markFirstItem", markWhenHaveOneItem: "markWhenHaveOneItem", submitted: "submitted", setNgClass: "setNgClass", searchable: "searchable", validatorAlert: "validatorAlert", upperCase: "upperCase", templateLabel: "templateLabel", appendTo: "appendTo", items: "items", loading: "loading", loadingText: "loadingText", clearAllText: "clearAllText", notFoundText: "notFoundText", markFirst: "markFirst", clearable: "clearable", clearOnBackspace: "clearOnBackspace", virtualScroll: "virtualScroll", openOnEnter: "openOnEnter", refresh: "refresh", isRefreshDisabled: "isRefreshDisabled", search: "search", redirect: "redirect", searchParams: "searchParams", labelInfo: "labelInfo", textLabelInfo: "textLabelInfo", urlRedirect: "urlRedirect", titleRedirect: "titleRedirect", isRedirectDisabled: "isRedirectDisabled" }, outputs: { onNext: "onNext", onBack: "onBack", change: "change", blur: "blur", onfocus: "onfocus", onrefresh: "onrefresh", onsearch: "onsearch" }, providers: [
|
|
327
328
|
{
|
|
328
329
|
provide: NG_VALUE_ACCESSOR,
|
|
329
330
|
useExisting: forwardRef(() => NgSelectSimpleComponent),
|
|
@@ -334,7 +335,7 @@ export class NgSelectSimpleComponent {
|
|
|
334
335
|
useExisting: forwardRef(() => NgSelectSimpleComponent),
|
|
335
336
|
multi: true,
|
|
336
337
|
},
|
|
337
|
-
], viewQueries: [{ propertyName: "ngSelectSimple", first: true, predicate: ["ngSelectSimple"], descendants: true }, { propertyName: "btnSearch", first: true, predicate: ["btnSearch"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<label *ngIf=\"label != null && label != '' && showLabel\" class=\"d-flex sumax-label mb-0 p-0\">\r\n <span *ngIf=\"!templateLabel; else templateLabel\" [title]=\"label\" style=\"white-space: nowrap; overflow: hidden; text-overflow: ellipsis\">\r\n {{ label }}\r\n </span>\r\n <span *ngIf=\"required\" [class.text-danger]=\"controls?.errors != null\"> *</span>\r\n <span *ngIf=\"labelInfo\">\r\n <i class=\"fa fa-exclamation-circle text-info ml-2\" [matTooltip]=\"textLabelInfo\" matTooltipClass=\"bg-info\"></i>\r\n </span>\r\n</label>\r\n\r\n<div\r\n [class.input-icon]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [class.right]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [class.refresh]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted && refresh\"\r\n [class.search]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted && search\">\r\n <div class=\"d-flex\">\r\n <div\r\n class=\"position-relative\"\r\n [class.ng-select-container-fullbuttons]=\"search && refresh && redirect\"\r\n [class.app-ng-selec-container]=\"search || refresh\"\r\n [class.w-100]=\"!search && !refresh\">\r\n <ng-select\r\n #ngSelectSimple\r\n [class]=\"search || refresh ? 'app-ng-select' : 'w-100'\"\r\n [class.action]=\"search && refresh\"\r\n [items]=\"items | async\"\r\n [(ngModel)]=\"_value\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n (change)=\"eventChange($event)\"\r\n (blur)=\"eventBlur($event)\"\r\n (focus)=\"eventFocus($event)\"\r\n (search)=\"eventSearch($event)\"\r\n [markFirst]=\"markFirst\"\r\n [clearable]=\"!required && clearable\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [inputAttrs]=\"{ autocomplete: autocomplete }\"\r\n [clearOnBackspace]=\"clearOnBackspace\"\r\n [openOnEnter]=\"openOnEnter\"\r\n (keydown.delete)=\"!required && clearable ? clear() : ''\"\r\n (clear)=\"clear()\"\r\n (keyup.F1)=\"f1KeyUp()\"\r\n [notFoundText]=\"notFoundText\"\r\n placeholder=\"Seleccionar\"\r\n (keyup.enter)=\"enterKeyUp()\"\r\n [clearAllText]=\"clearAllText\"\r\n [searchable]=\"searchable\"\r\n (keyup.ArrowLeft)=\"leftKeyUp()\"\r\n [appendTo]=\"appendTo\"\r\n [loading]=\"loading\"\r\n [loadingText]=\"loadingText\"\r\n [class.ng-select-invalid]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [class.ng-select-touched]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [class.upperCase]=\"upperCase\"\r\n [ngClass]=\"setNgClass\">\r\n <!-- OPCIONES DE LISTADO -->\r\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\">\r\n <span data-toggle=\"tooltip\" title=\"{{ item.label }}\">{{ item.label }}</span>\r\n </ng-template>\r\n </ng-select>\r\n\r\n <!-- tooltip-message es el icono de error -->\r\n <tooltip-message\r\n [label]=\"label\"\r\n [controls]=\"controls\"\r\n [validatorMessage]=\"validatorMessage\"\r\n [submitted]=\"submitted\"\r\n [tooltipMessage]=\"tooltipMessage\"></tooltip-message>\r\n </div>\r\n <ng-container *ngIf=\"search && refresh && redirect; else templateAction\">\r\n <div class=\"app-ng-select-action bd-highligh\">\r\n <button\r\n #btnSearch\r\n type=\"button\"\r\n [disabled]=\"disabled || readonly\"\r\n class=\"btn btn-success p-0 rounded-0 h-100\"\r\n (keyup.ArrowLeft)=\"ngSelectSimple.focus()\"\r\n style=\"background-color: orange; border-color: orange\"\r\n (click)=\"onSearch()\">\r\n <i class=\"fa fa-search text-white px-1\" [matTooltip]=\"'Buscar'\" matTooltipClass=\"custom-tooltip\"></i>\r\n </button>\r\n <button\r\n *ngIf=\"refresh\"\r\n type=\"button\"\r\n [disabled]=\"disabled || readonly\"\r\n class=\"btn btn-info p-0 rounded-0 h-100\"\r\n (click)=\"onRefresh()\">\r\n <i class=\"fa fa-refresh text-white px-1\" [matTooltip]=\"'Refrescar'\" matTooltipClass=\"bg-info\"></i>\r\n </button>\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-success p-0 rounded-0 h-100\"\r\n (click)=\"openEnlace()\"\r\n [disabled]=\"disabled || readonly || isRedirectDisabled\">\r\n <em class=\"fa-regular fa-rectangle-list text-white px-1\" [matTooltip]=\"titleRedirect!\" matTooltipClass=\"bg-success\"> </em>\r\n </button>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-template #templateAction>\r\n <div class=\"app-ng-select-button bd-highlight\" *ngIf=\"search\">\r\n <button\r\n #btnSearch\r\n type=\"button\"\r\n [disabled]=\"disabled || readonly\"\r\n class=\"btn btn-success p-0 rounded-0 h-100\"\r\n (keyup.ArrowLeft)=\"ngSelectSimple.focus()\"\r\n (click)=\"onSearch()\">\r\n <i class=\"fa fa-search text-white px-1\" [matTooltip]=\"'Buscar'\" matTooltipClass=\"bg-success\"></i>\r\n </button>\r\n </div>\r\n <div class=\"app-ng-select-button bd-highlight\" *ngIf=\"refresh\">\r\n <button\r\n *ngIf=\"refresh\"\r\n type=\"button\"\r\n [disabled]=\"disabled || readonly\"\r\n class=\"btn btn-info p-0 rounded-0 h-100\"\r\n (click)=\"onRefresh()\">\r\n <i class=\"fa fa-refresh text-white px-1\" [matTooltip]=\"'Refrescar'\" matTooltipClass=\"bg-info\"></i>\r\n </button>\r\n </div>\r\n <div class=\"app-ng-select-button bd-highlight\" *ngIf=\"redirect\">\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-success p-0 rounded-0 h-100\"\r\n style=\"padding-top: 3px; padding-bottom: 7px; border-radius: 0px\"\r\n (click)=\"openEnlace()\"\r\n [disabled]=\"disabled || readonly || isRedirectDisabled\">\r\n <em class=\"fa-regular fa-rectangle-list text-white px-1\" [matTooltip]=\"titleRedirect!\" matTooltipClass=\"bg-success\"> </em>\r\n </button>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-content select=\"[more-buttons]\"></ng-content>\r\n </div>\r\n</div>\r\n\r\n<!-- error-message es el mansaje que aparece abajo del componente -->\r\n<error-message\r\n [label]=\"label\"\r\n [controls]=\"controls\"\r\n [validatorMessage]=\"validatorMessage\"\r\n [submitted]=\"submitted\"\r\n [tooltipMessage]=\"tooltipMessage\"></error-message>\r\n", styles: ["ng-select-simple{display:block}.sumax-label{color:#646c9a!important}.input-icon tooltip-message{color:#ccc;position:absolute;z-index:3;font-size:16px;text-align:center;right:9px;top:50%;transform:translateY(-50%)}.input-icon.right>.form-control{padding-right:33px;padding-left:12px}.upperCase .ng-select-container .ng-value-container .ng-input>input{text-transform:uppercase}.app-ng-select-button{width:34px}.app-ng-select-button button{width:100%}.app-ng-selec-container{width:calc(100% - 34px)}.ng-select-container-fullbuttons{width:calc(100% - 102px)}.app-ng-select-action{width:8rem}.app-ng-select-action button{min-width:2rem;width:33%}.overflow-box{padding:5px;height:100px;border:1px solid #999;overflow:hidden}.ng-dropdown-panel{width:auto!important;max-width:550px;min-width:100%}.custom-tooltip{--mdc-plain-tooltip-container-color: orange}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.errorMessageComponent, selector: "error-message", inputs: ["tooltipMessage", "validatorMessage", "controls", "label", "submitted"] }, { kind: "component", type: i7.tooltipMessageComponent, selector: "tooltip-message", inputs: ["tooltipMessage", "validatorMessage", "controls", "label", "submitted"] }, { kind: "directive", type: i8.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i9.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i9.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
338
|
+
], viewQueries: [{ propertyName: "ngSelectSimple", first: true, predicate: ["ngSelectSimple"], descendants: true }, { propertyName: "btnSearch", first: true, predicate: ["btnSearch"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<label *ngIf=\"label != null && label != '' && showLabel\" class=\"d-flex sumax-label mb-0 p-0\">\r\n <span *ngIf=\"!templateLabel; else templateLabel\" [title]=\"label\" style=\"white-space: nowrap; overflow: hidden; text-overflow: ellipsis\">\r\n {{ label }}\r\n </span>\r\n <span *ngIf=\"required\" [class.text-danger]=\"controls?.errors != null\"> *</span>\r\n <span *ngIf=\"labelInfo\">\r\n <i class=\"fa fa-exclamation-circle text-info ml-2\" [matTooltip]=\"textLabelInfo\" matTooltipClass=\"bg-info\"></i>\r\n </span>\r\n</label>\r\n\r\n<div\r\n [class.input-icon]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [class.right]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [class.refresh]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted && refresh\"\r\n [class.search]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted && search\">\r\n <div class=\"d-flex\">\r\n <div\r\n class=\"position-relative\"\r\n [class.ng-select-container-fullbuttons]=\"search && refresh && redirect\"\r\n [class.app-ng-selec-container]=\"search || refresh\"\r\n [class.w-100]=\"!search && !refresh\">\r\n <ng-select\r\n #ngSelectSimple\r\n [class]=\"search || refresh ? 'app-ng-select' : 'w-100'\"\r\n [class.action]=\"search && refresh\"\r\n [items]=\"items | async\"\r\n [(ngModel)]=\"_value\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n (change)=\"eventChange($event)\"\r\n (blur)=\"eventBlur($event)\"\r\n (focus)=\"eventFocus($event)\"\r\n (search)=\"eventSearch($event)\"\r\n [markFirst]=\"markFirst\"\r\n [clearable]=\"!required && clearable\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [inputAttrs]=\"{ autocomplete: autocomplete }\"\r\n [clearOnBackspace]=\"clearOnBackspace\"\r\n [openOnEnter]=\"openOnEnter\"\r\n (keydown.delete)=\"!required && clearable ? clear() : ''\"\r\n (clear)=\"clear()\"\r\n (keyup.F1)=\"f1KeyUp()\"\r\n [notFoundText]=\"notFoundText\"\r\n placeholder=\"Seleccionar\"\r\n (keyup.enter)=\"enterKeyUp()\"\r\n [clearAllText]=\"clearAllText\"\r\n [searchable]=\"searchable\"\r\n (keyup.ArrowLeft)=\"leftKeyUp()\"\r\n [appendTo]=\"appendTo\"\r\n [loading]=\"loading\"\r\n [loadingText]=\"loadingText\"\r\n [class.ng-select-invalid]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [class.ng-select-touched]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [class.upperCase]=\"upperCase\"\r\n [ngClass]=\"setNgClass\">\r\n <!-- OPCIONES DE LISTADO -->\r\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\">\r\n <span data-toggle=\"tooltip\" title=\"{{ item.label }}\">{{ item.label }}</span>\r\n </ng-template>\r\n </ng-select>\r\n\r\n <!-- tooltip-message es el icono de error -->\r\n <tooltip-message\r\n [label]=\"label\"\r\n [controls]=\"controls\"\r\n [validatorMessage]=\"validatorMessage\"\r\n [submitted]=\"submitted\"\r\n [tooltipMessage]=\"tooltipMessage\"></tooltip-message>\r\n </div>\r\n <ng-container *ngIf=\"search && refresh && redirect; else templateAction\">\r\n <div class=\"app-ng-select-action bd-highligh\">\r\n <button\r\n #btnSearch\r\n type=\"button\"\r\n [disabled]=\"disabled || readonly\"\r\n class=\"btn btn-success p-0 rounded-0 h-100\"\r\n (keyup.ArrowLeft)=\"ngSelectSimple.focus()\"\r\n style=\"background-color: orange; border-color: orange\"\r\n (click)=\"onSearch()\">\r\n <i class=\"fa fa-search text-white px-1\" [matTooltip]=\"'Buscar'\" matTooltipClass=\"custom-tooltip\"></i>\r\n </button>\r\n <button\r\n *ngIf=\"refresh\"\r\n type=\"button\"\r\n [disabled]=\"disabled || readonly || isRefreshDisabled\"\r\n class=\"btn btn-info p-0 rounded-0 h-100\"\r\n (click)=\"onRefresh()\">\r\n <i class=\"fa fa-refresh text-white px-1\" [matTooltip]=\"'Refrescar'\" matTooltipClass=\"bg-info\"></i>\r\n </button>\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-success p-0 rounded-0 h-100\"\r\n (click)=\"openEnlace()\"\r\n [disabled]=\"disabled || readonly || isRedirectDisabled\">\r\n <em class=\"fa-regular fa-rectangle-list text-white px-1\" [matTooltip]=\"titleRedirect!\" matTooltipClass=\"bg-success\"> </em>\r\n </button>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-template #templateAction>\r\n <div class=\"app-ng-select-button bd-highlight\" *ngIf=\"search\">\r\n <button\r\n #btnSearch\r\n type=\"button\"\r\n [disabled]=\"disabled || readonly\"\r\n class=\"btn btn-success p-0 rounded-0 h-100\"\r\n (keyup.ArrowLeft)=\"ngSelectSimple.focus()\"\r\n (click)=\"onSearch()\">\r\n <i class=\"fa fa-search text-white px-1\" [matTooltip]=\"'Buscar'\" matTooltipClass=\"bg-success\"></i>\r\n </button>\r\n </div>\r\n <div class=\"app-ng-select-button bd-highlight\" *ngIf=\"refresh\">\r\n <button\r\n *ngIf=\"refresh\"\r\n type=\"button\"\r\n [disabled]=\"disabled || readonly || isRefreshDisabled\"\r\n class=\"btn btn-info p-0 rounded-0 h-100\"\r\n (click)=\"onRefresh()\">\r\n <i class=\"fa fa-refresh text-white px-1\" [matTooltip]=\"'Refrescar'\" matTooltipClass=\"bg-info\"></i>\r\n </button>\r\n </div>\r\n <div class=\"app-ng-select-button bd-highlight\" *ngIf=\"redirect\">\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-success p-0 rounded-0 h-100\"\r\n style=\"padding-top: 3px; padding-bottom: 7px; border-radius: 0px\"\r\n (click)=\"openEnlace()\"\r\n [disabled]=\"disabled || readonly || isRedirectDisabled\">\r\n <em class=\"fa-regular fa-rectangle-list text-white px-1\" [matTooltip]=\"titleRedirect!\" matTooltipClass=\"bg-success\"> </em>\r\n </button>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-content select=\"[more-buttons]\"></ng-content>\r\n </div>\r\n</div>\r\n\r\n<!-- error-message es el mansaje que aparece abajo del componente -->\r\n<error-message\r\n [label]=\"label\"\r\n [controls]=\"controls\"\r\n [validatorMessage]=\"validatorMessage\"\r\n [submitted]=\"submitted\"\r\n [tooltipMessage]=\"tooltipMessage\"></error-message>\r\n", styles: ["ng-select-simple{display:block}.sumax-label{color:#646c9a!important}.input-icon tooltip-message{color:#ccc;position:absolute;z-index:3;font-size:16px;text-align:center;right:9px;top:50%;transform:translateY(-50%)}.input-icon.right>.form-control{padding-right:33px;padding-left:12px}.upperCase .ng-select-container .ng-value-container .ng-input>input{text-transform:uppercase}.app-ng-select-button{width:34px}.app-ng-select-button button{width:100%}.app-ng-selec-container{width:calc(100% - 34px)}.ng-select-container-fullbuttons{width:calc(100% - 102px)}.app-ng-select-action{width:8rem}.app-ng-select-action button{min-width:2rem;width:33%}.overflow-box{padding:5px;height:100px;border:1px solid #999;overflow:hidden}.ng-dropdown-panel{width:auto!important;max-width:550px;min-width:100%}.custom-tooltip{--mdc-plain-tooltip-container-color: orange}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.errorMessageComponent, selector: "error-message", inputs: ["tooltipMessage", "validatorMessage", "controls", "label", "submitted"] }, { kind: "component", type: i7.tooltipMessageComponent, selector: "tooltip-message", inputs: ["tooltipMessage", "validatorMessage", "controls", "label", "submitted"] }, { kind: "directive", type: i8.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i9.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i9.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
338
339
|
}
|
|
339
340
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: NgSelectSimpleComponent, decorators: [{
|
|
340
341
|
type: Component,
|
|
@@ -349,7 +350,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
349
350
|
useExisting: forwardRef(() => NgSelectSimpleComponent),
|
|
350
351
|
multi: true,
|
|
351
352
|
},
|
|
352
|
-
], encapsulation: ViewEncapsulation.None, template: "<label *ngIf=\"label != null && label != '' && showLabel\" class=\"d-flex sumax-label mb-0 p-0\">\r\n <span *ngIf=\"!templateLabel; else templateLabel\" [title]=\"label\" style=\"white-space: nowrap; overflow: hidden; text-overflow: ellipsis\">\r\n {{ label }}\r\n </span>\r\n <span *ngIf=\"required\" [class.text-danger]=\"controls?.errors != null\"> *</span>\r\n <span *ngIf=\"labelInfo\">\r\n <i class=\"fa fa-exclamation-circle text-info ml-2\" [matTooltip]=\"textLabelInfo\" matTooltipClass=\"bg-info\"></i>\r\n </span>\r\n</label>\r\n\r\n<div\r\n [class.input-icon]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [class.right]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [class.refresh]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted && refresh\"\r\n [class.search]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted && search\">\r\n <div class=\"d-flex\">\r\n <div\r\n class=\"position-relative\"\r\n [class.ng-select-container-fullbuttons]=\"search && refresh && redirect\"\r\n [class.app-ng-selec-container]=\"search || refresh\"\r\n [class.w-100]=\"!search && !refresh\">\r\n <ng-select\r\n #ngSelectSimple\r\n [class]=\"search || refresh ? 'app-ng-select' : 'w-100'\"\r\n [class.action]=\"search && refresh\"\r\n [items]=\"items | async\"\r\n [(ngModel)]=\"_value\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n (change)=\"eventChange($event)\"\r\n (blur)=\"eventBlur($event)\"\r\n (focus)=\"eventFocus($event)\"\r\n (search)=\"eventSearch($event)\"\r\n [markFirst]=\"markFirst\"\r\n [clearable]=\"!required && clearable\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [inputAttrs]=\"{ autocomplete: autocomplete }\"\r\n [clearOnBackspace]=\"clearOnBackspace\"\r\n [openOnEnter]=\"openOnEnter\"\r\n (keydown.delete)=\"!required && clearable ? clear() : ''\"\r\n (clear)=\"clear()\"\r\n (keyup.F1)=\"f1KeyUp()\"\r\n [notFoundText]=\"notFoundText\"\r\n placeholder=\"Seleccionar\"\r\n (keyup.enter)=\"enterKeyUp()\"\r\n [clearAllText]=\"clearAllText\"\r\n [searchable]=\"searchable\"\r\n (keyup.ArrowLeft)=\"leftKeyUp()\"\r\n [appendTo]=\"appendTo\"\r\n [loading]=\"loading\"\r\n [loadingText]=\"loadingText\"\r\n [class.ng-select-invalid]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [class.ng-select-touched]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [class.upperCase]=\"upperCase\"\r\n [ngClass]=\"setNgClass\">\r\n <!-- OPCIONES DE LISTADO -->\r\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\">\r\n <span data-toggle=\"tooltip\" title=\"{{ item.label }}\">{{ item.label }}</span>\r\n </ng-template>\r\n </ng-select>\r\n\r\n <!-- tooltip-message es el icono de error -->\r\n <tooltip-message\r\n [label]=\"label\"\r\n [controls]=\"controls\"\r\n [validatorMessage]=\"validatorMessage\"\r\n [submitted]=\"submitted\"\r\n [tooltipMessage]=\"tooltipMessage\"></tooltip-message>\r\n </div>\r\n <ng-container *ngIf=\"search && refresh && redirect; else templateAction\">\r\n <div class=\"app-ng-select-action bd-highligh\">\r\n <button\r\n #btnSearch\r\n type=\"button\"\r\n [disabled]=\"disabled || readonly\"\r\n class=\"btn btn-success p-0 rounded-0 h-100\"\r\n (keyup.ArrowLeft)=\"ngSelectSimple.focus()\"\r\n style=\"background-color: orange; border-color: orange\"\r\n (click)=\"onSearch()\">\r\n <i class=\"fa fa-search text-white px-1\" [matTooltip]=\"'Buscar'\" matTooltipClass=\"custom-tooltip\"></i>\r\n </button>\r\n <button\r\n *ngIf=\"refresh\"\r\n type=\"button\"\r\n [disabled]=\"disabled || readonly\"\r\n class=\"btn btn-info p-0 rounded-0 h-100\"\r\n (click)=\"onRefresh()\">\r\n <i class=\"fa fa-refresh text-white px-1\" [matTooltip]=\"'Refrescar'\" matTooltipClass=\"bg-info\"></i>\r\n </button>\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-success p-0 rounded-0 h-100\"\r\n (click)=\"openEnlace()\"\r\n [disabled]=\"disabled || readonly || isRedirectDisabled\">\r\n <em class=\"fa-regular fa-rectangle-list text-white px-1\" [matTooltip]=\"titleRedirect!\" matTooltipClass=\"bg-success\"> </em>\r\n </button>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-template #templateAction>\r\n <div class=\"app-ng-select-button bd-highlight\" *ngIf=\"search\">\r\n <button\r\n #btnSearch\r\n type=\"button\"\r\n [disabled]=\"disabled || readonly\"\r\n class=\"btn btn-success p-0 rounded-0 h-100\"\r\n (keyup.ArrowLeft)=\"ngSelectSimple.focus()\"\r\n (click)=\"onSearch()\">\r\n <i class=\"fa fa-search text-white px-1\" [matTooltip]=\"'Buscar'\" matTooltipClass=\"bg-success\"></i>\r\n </button>\r\n </div>\r\n <div class=\"app-ng-select-button bd-highlight\" *ngIf=\"refresh\">\r\n <button\r\n *ngIf=\"refresh\"\r\n type=\"button\"\r\n [disabled]=\"disabled || readonly\"\r\n class=\"btn btn-info p-0 rounded-0 h-100\"\r\n (click)=\"onRefresh()\">\r\n <i class=\"fa fa-refresh text-white px-1\" [matTooltip]=\"'Refrescar'\" matTooltipClass=\"bg-info\"></i>\r\n </button>\r\n </div>\r\n <div class=\"app-ng-select-button bd-highlight\" *ngIf=\"redirect\">\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-success p-0 rounded-0 h-100\"\r\n style=\"padding-top: 3px; padding-bottom: 7px; border-radius: 0px\"\r\n (click)=\"openEnlace()\"\r\n [disabled]=\"disabled || readonly || isRedirectDisabled\">\r\n <em class=\"fa-regular fa-rectangle-list text-white px-1\" [matTooltip]=\"titleRedirect!\" matTooltipClass=\"bg-success\"> </em>\r\n </button>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-content select=\"[more-buttons]\"></ng-content>\r\n </div>\r\n</div>\r\n\r\n<!-- error-message es el mansaje que aparece abajo del componente -->\r\n<error-message\r\n [label]=\"label\"\r\n [controls]=\"controls\"\r\n [validatorMessage]=\"validatorMessage\"\r\n [submitted]=\"submitted\"\r\n [tooltipMessage]=\"tooltipMessage\"></error-message>\r\n", styles: ["ng-select-simple{display:block}.sumax-label{color:#646c9a!important}.input-icon tooltip-message{color:#ccc;position:absolute;z-index:3;font-size:16px;text-align:center;right:9px;top:50%;transform:translateY(-50%)}.input-icon.right>.form-control{padding-right:33px;padding-left:12px}.upperCase .ng-select-container .ng-value-container .ng-input>input{text-transform:uppercase}.app-ng-select-button{width:34px}.app-ng-select-button button{width:100%}.app-ng-selec-container{width:calc(100% - 34px)}.ng-select-container-fullbuttons{width:calc(100% - 102px)}.app-ng-select-action{width:8rem}.app-ng-select-action button{min-width:2rem;width:33%}.overflow-box{padding:5px;height:100px;border:1px solid #999;overflow:hidden}.ng-dropdown-panel{width:auto!important;max-width:550px;min-width:100%}.custom-tooltip{--mdc-plain-tooltip-container-color: orange}\n"] }]
|
|
353
|
+
], encapsulation: ViewEncapsulation.None, template: "<label *ngIf=\"label != null && label != '' && showLabel\" class=\"d-flex sumax-label mb-0 p-0\">\r\n <span *ngIf=\"!templateLabel; else templateLabel\" [title]=\"label\" style=\"white-space: nowrap; overflow: hidden; text-overflow: ellipsis\">\r\n {{ label }}\r\n </span>\r\n <span *ngIf=\"required\" [class.text-danger]=\"controls?.errors != null\"> *</span>\r\n <span *ngIf=\"labelInfo\">\r\n <i class=\"fa fa-exclamation-circle text-info ml-2\" [matTooltip]=\"textLabelInfo\" matTooltipClass=\"bg-info\"></i>\r\n </span>\r\n</label>\r\n\r\n<div\r\n [class.input-icon]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [class.right]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [class.refresh]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted && refresh\"\r\n [class.search]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted && search\">\r\n <div class=\"d-flex\">\r\n <div\r\n class=\"position-relative\"\r\n [class.ng-select-container-fullbuttons]=\"search && refresh && redirect\"\r\n [class.app-ng-selec-container]=\"search || refresh\"\r\n [class.w-100]=\"!search && !refresh\">\r\n <ng-select\r\n #ngSelectSimple\r\n [class]=\"search || refresh ? 'app-ng-select' : 'w-100'\"\r\n [class.action]=\"search && refresh\"\r\n [items]=\"items | async\"\r\n [(ngModel)]=\"_value\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n (change)=\"eventChange($event)\"\r\n (blur)=\"eventBlur($event)\"\r\n (focus)=\"eventFocus($event)\"\r\n (search)=\"eventSearch($event)\"\r\n [markFirst]=\"markFirst\"\r\n [clearable]=\"!required && clearable\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [inputAttrs]=\"{ autocomplete: autocomplete }\"\r\n [clearOnBackspace]=\"clearOnBackspace\"\r\n [openOnEnter]=\"openOnEnter\"\r\n (keydown.delete)=\"!required && clearable ? clear() : ''\"\r\n (clear)=\"clear()\"\r\n (keyup.F1)=\"f1KeyUp()\"\r\n [notFoundText]=\"notFoundText\"\r\n placeholder=\"Seleccionar\"\r\n (keyup.enter)=\"enterKeyUp()\"\r\n [clearAllText]=\"clearAllText\"\r\n [searchable]=\"searchable\"\r\n (keyup.ArrowLeft)=\"leftKeyUp()\"\r\n [appendTo]=\"appendTo\"\r\n [loading]=\"loading\"\r\n [loadingText]=\"loadingText\"\r\n [class.ng-select-invalid]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [class.ng-select-touched]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [class.upperCase]=\"upperCase\"\r\n [ngClass]=\"setNgClass\">\r\n <!-- OPCIONES DE LISTADO -->\r\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\">\r\n <span data-toggle=\"tooltip\" title=\"{{ item.label }}\">{{ item.label }}</span>\r\n </ng-template>\r\n </ng-select>\r\n\r\n <!-- tooltip-message es el icono de error -->\r\n <tooltip-message\r\n [label]=\"label\"\r\n [controls]=\"controls\"\r\n [validatorMessage]=\"validatorMessage\"\r\n [submitted]=\"submitted\"\r\n [tooltipMessage]=\"tooltipMessage\"></tooltip-message>\r\n </div>\r\n <ng-container *ngIf=\"search && refresh && redirect; else templateAction\">\r\n <div class=\"app-ng-select-action bd-highligh\">\r\n <button\r\n #btnSearch\r\n type=\"button\"\r\n [disabled]=\"disabled || readonly\"\r\n class=\"btn btn-success p-0 rounded-0 h-100\"\r\n (keyup.ArrowLeft)=\"ngSelectSimple.focus()\"\r\n style=\"background-color: orange; border-color: orange\"\r\n (click)=\"onSearch()\">\r\n <i class=\"fa fa-search text-white px-1\" [matTooltip]=\"'Buscar'\" matTooltipClass=\"custom-tooltip\"></i>\r\n </button>\r\n <button\r\n *ngIf=\"refresh\"\r\n type=\"button\"\r\n [disabled]=\"disabled || readonly || isRefreshDisabled\"\r\n class=\"btn btn-info p-0 rounded-0 h-100\"\r\n (click)=\"onRefresh()\">\r\n <i class=\"fa fa-refresh text-white px-1\" [matTooltip]=\"'Refrescar'\" matTooltipClass=\"bg-info\"></i>\r\n </button>\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-success p-0 rounded-0 h-100\"\r\n (click)=\"openEnlace()\"\r\n [disabled]=\"disabled || readonly || isRedirectDisabled\">\r\n <em class=\"fa-regular fa-rectangle-list text-white px-1\" [matTooltip]=\"titleRedirect!\" matTooltipClass=\"bg-success\"> </em>\r\n </button>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-template #templateAction>\r\n <div class=\"app-ng-select-button bd-highlight\" *ngIf=\"search\">\r\n <button\r\n #btnSearch\r\n type=\"button\"\r\n [disabled]=\"disabled || readonly\"\r\n class=\"btn btn-success p-0 rounded-0 h-100\"\r\n (keyup.ArrowLeft)=\"ngSelectSimple.focus()\"\r\n (click)=\"onSearch()\">\r\n <i class=\"fa fa-search text-white px-1\" [matTooltip]=\"'Buscar'\" matTooltipClass=\"bg-success\"></i>\r\n </button>\r\n </div>\r\n <div class=\"app-ng-select-button bd-highlight\" *ngIf=\"refresh\">\r\n <button\r\n *ngIf=\"refresh\"\r\n type=\"button\"\r\n [disabled]=\"disabled || readonly || isRefreshDisabled\"\r\n class=\"btn btn-info p-0 rounded-0 h-100\"\r\n (click)=\"onRefresh()\">\r\n <i class=\"fa fa-refresh text-white px-1\" [matTooltip]=\"'Refrescar'\" matTooltipClass=\"bg-info\"></i>\r\n </button>\r\n </div>\r\n <div class=\"app-ng-select-button bd-highlight\" *ngIf=\"redirect\">\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-success p-0 rounded-0 h-100\"\r\n style=\"padding-top: 3px; padding-bottom: 7px; border-radius: 0px\"\r\n (click)=\"openEnlace()\"\r\n [disabled]=\"disabled || readonly || isRedirectDisabled\">\r\n <em class=\"fa-regular fa-rectangle-list text-white px-1\" [matTooltip]=\"titleRedirect!\" matTooltipClass=\"bg-success\"> </em>\r\n </button>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-content select=\"[more-buttons]\"></ng-content>\r\n </div>\r\n</div>\r\n\r\n<!-- error-message es el mansaje que aparece abajo del componente -->\r\n<error-message\r\n [label]=\"label\"\r\n [controls]=\"controls\"\r\n [validatorMessage]=\"validatorMessage\"\r\n [submitted]=\"submitted\"\r\n [tooltipMessage]=\"tooltipMessage\"></error-message>\r\n", styles: ["ng-select-simple{display:block}.sumax-label{color:#646c9a!important}.input-icon tooltip-message{color:#ccc;position:absolute;z-index:3;font-size:16px;text-align:center;right:9px;top:50%;transform:translateY(-50%)}.input-icon.right>.form-control{padding-right:33px;padding-left:12px}.upperCase .ng-select-container .ng-value-container .ng-input>input{text-transform:uppercase}.app-ng-select-button{width:34px}.app-ng-select-button button{width:100%}.app-ng-selec-container{width:calc(100% - 34px)}.ng-select-container-fullbuttons{width:calc(100% - 102px)}.app-ng-select-action{width:8rem}.app-ng-select-action button{min-width:2rem;width:33%}.overflow-box{padding:5px;height:100px;border:1px solid #999;overflow:hidden}.ng-dropdown-panel{width:auto!important;max-width:550px;min-width:100%}.custom-tooltip{--mdc-plain-tooltip-container-color: orange}\n"] }]
|
|
353
354
|
}], ctorParameters: () => [{ type: i1.MessageUtilService }, { type: i2.MatDialog }, { type: i3.NgSelectSimpleService }], propDecorators: { ngSelectSimple: [{
|
|
354
355
|
type: ViewChild,
|
|
355
356
|
args: ["ngSelectSimple"]
|
|
@@ -424,6 +425,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
424
425
|
type: Input
|
|
425
426
|
}], refresh: [{
|
|
426
427
|
type: Input
|
|
428
|
+
}], isRefreshDisabled: [{
|
|
429
|
+
type: Input
|
|
427
430
|
}], search: [{
|
|
428
431
|
type: Input
|
|
429
432
|
}], redirect: [{
|
|
@@ -455,4 +458,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
455
458
|
}], onsearch: [{
|
|
456
459
|
type: Output
|
|
457
460
|
}] } });
|
|
458
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctc2VsZWN0LXNpbXBsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3VtYXgtZXJwLWNvbXBvbmVudC9zcmMvbGliL25nLXNlbGVjdC1zaW1wbGUvbmctc2VsZWN0LXNpbXBsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3VtYXgtZXJwLWNvbXBvbmVudC9zcmMvbGliL25nLXNlbGVjdC1zaW1wbGUvbmctc2VsZWN0LXNpbXBsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUlMLE1BQU0sRUFHTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBbUIsYUFBYSxFQUFFLGlCQUFpQixFQUFvQixNQUFNLGdCQUFnQixDQUFDO0FBR3JHLE9BQU8sRUFBYyxFQUFFLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUV2RyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7Ozs7O0FBSXJELE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLFlBQ1MsYUFBMkIsRUFBRSxFQUM3QixRQUFnQixFQUFFLEVBQ2xCLFFBQWdCLE9BQU8sRUFDdkIsVUFBNkIsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUhuQyxlQUFVLEdBQVYsVUFBVSxDQUFtQjtRQUM3QixVQUFLLEdBQUwsS0FBSyxDQUFhO1FBQ2xCLFVBQUssR0FBTCxLQUFLLENBQWtCO1FBQ3ZCLFlB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O2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUVJLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQUNHLElBQUk7c0JBQWIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xyXG5pbXBvcnQgeyBOZ1NlbGVjdENvbXBvbmVudCB9IGZyb20gXCJAbmctc2VsZWN0L25nLXNlbGVjdFwiO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgc2hhcmVSZXBsYXkgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgRGlhbG9nQWdHcmlkU2VhcmNoQ29tcG9uZW50IH0gZnJvbSAnLi4vZGlhbG9nLWFnLWdyaWQtc2VhcmNoL2RpYWxvZy1hZy1ncmlkLXNlYXJjaC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNZXNzYWdlVXRpbFNlcnZpY2UgfSBmcm9tIFwiLi4vdXRpbHMvbWVzc2FnZS11dGlsLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgU2hhcmVkQ29tcG9uZW50c1V0aWwgfSBmcm9tIFwiLi4vdXRpbHMvU2hhcmVkQ29tcG9uZW50c1V0aWxcIjtcclxuaW1wb3J0IHsgVmFsaWRhdGVVdGlsIH0gZnJvbSBcIi4uL3V0aWxzL1ZhbGlkYXRlVXRpbFwiO1xyXG5pbXBvcnQgeyBOZ1NlbGVjdFNpbXBsZVNlcnZpY2UgfSBmcm9tIFwiLi9uZy1zZWxlY3Qtc2ltcGxlLnNlcnZpY2VcIjtcclxuXHJcblxyXG5leHBvcnQgY2xhc3MgU2VhcmNoUGFyYW1zIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBjb2x1bW5EZWZzOiBDb2x1bW5EZWZzW10gPSBbXSxcclxuICAgIHB1YmxpYyB0aXRsZTogc3RyaW5nID0gXCJcIixcclxuICAgIHB1YmxpYyB3aWR0aDogc3RyaW5nID0gXCI5OTBweFwiLFxyXG4gICAgcHVibGljIHJvd0RhdGE6IE9ic2VydmFibGU8YW55W10+ID0gb2YoW10pXHJcbiAgKSB7IH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENvbHVtbkRlZnMge1xyXG4gIGhlYWRlck5hbWU/OiBzdHJpbmc7XHJcbiAgZmllbGQ/OiBzdHJpbmc7XHJcbiAgd2lkdGg/OiBzdHJpbmc7XHJcbiAgY2VsbFJlbmRlcmVyPzogYW55O1xyXG4gIHZhbHVlR2V0dGVyPzogKGZpZWxkOiBhbnkpID0+IHN0cmluZyB8IHN0cmluZztcclxuICBzb3J0YWJsZT86IGJvb2xlYW47XHJcbiAgcmVzaXphYmxlPzogYm9vbGVhbjtcclxuICBjZWxsQ2xhc3M/OiBzdHJpbmdbXTtcclxuICBjZWxsU3R5bGU/OiB7fTtcclxuICB2YWx1ZUZvcm1hdHRlcj86IGFueTtcclxuICBwaW5uZWQ/OiBzdHJpbmc7XHJcbiAgc29ydD86IHN0cmluZztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICduZy1zZWxlY3Qtc2ltcGxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbmctc2VsZWN0LXNpbXBsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbmctc2VsZWN0LXNpbXBsZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTmdTZWxlY3RTaW1wbGVDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE5nU2VsZWN0U2ltcGxlQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gIF0sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5nU2VsZWN0U2ltcGxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgQFZpZXdDaGlsZChcIm5nU2VsZWN0U2ltcGxlXCIpIG5nU2VsZWN0U2ltcGxlITogTmdTZWxlY3RDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZChcImJ0blNlYXJjaFwiKSBidG5TZWFyY2ghOiBFbGVtZW50UmVmO1xyXG5cclxuICBASW5wdXQoKSBzaG93TGFiZWw6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGxhYmVsOiBhbnkgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGF1dG9jb21wbGV0ZTogc3RyaW5nID0gXCJjYy1jc2NcIjtcclxuICBASW5wdXQoKSBuZXh0OiBhbnk7XHJcbiAgQElucHV0KCkgbmV4dElzRGlzYWJsZTogYW55O1xyXG4gIEBJbnB1dCgpIGJhY2s6IGFueTtcclxuICBASW5wdXQoKSBiYWNrSXNEaXNhYmxlOiBhbnk7XHJcbiAgQElucHV0KCkgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdmFsaWRhdG9yTWVzc2FnZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHRvb2x0aXBNZXNzYWdlOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBvcGVuV2hlbkZvY3VzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2VhcmNoQnk6IHN0cmluZyA9IFwidmFsdWVcIjtcclxuICBASW5wdXQoKSBtYXJrRmlyc3RJdGVtOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgbWFya1doZW5IYXZlT25lSXRlbTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHN1Ym1pdHRlZDogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgc2V0TmdDbGFzczogc3RyaW5nID0gXCJcIjtcclxuICBASW5wdXQoKSBzZWFyY2hhYmxlOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSB2YWxpZGF0b3JBbGVydDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHVwcGVyQ2FzZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHRlbXBsYXRlTGFiZWw6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoKSBhcHBlbmRUbzogc3RyaW5nID0gXCJib2R5XCI7XHJcbiAgQElucHV0KCkgaXRlbXMhOiBPYnNlcnZhYmxlPGFueVtdPjtcclxuXHJcbiAgQElucHV0KCkgbG9hZGluZzogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgbG9hZGluZ1RleHQ6IHN0cmluZyA9IFwiQ2FyZ2FuZG8uLi5cIjtcclxuICBASW5wdXQoKSBjbGVhckFsbFRleHQ6IHN0cmluZyA9IFwiTGltcGlhclwiO1xyXG4gIEBJbnB1dCgpIG5vdEZvdW5kVGV4dDogc3RyaW5nID0gXCJObyBzZSBlbmNvbnRyYXJvbiByZXN1bHRhZG9zXCI7XHJcblxyXG4gIEBJbnB1dCgpIG1hcmtGaXJzdDogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgY2xlYXJhYmxlOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBjbGVhck9uQmFja3NwYWNlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdmlydHVhbFNjcm9sbDogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgb3Blbk9uRW50ZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSByZWZyZXNoOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2VhcmNoOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcmVkaXJlY3Q6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgc2VhcmNoUGFyYW1zOiBTZWFyY2hQYXJhbXMgPSBuZXcgU2VhcmNoUGFyYW1zKCk7XHJcbiAgQElucHV0KCkgbGFiZWxJbmZvOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdGV4dExhYmVsSW5mbzogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgQElucHV0KCkgdXJsUmVkaXJlY3Q6IHN0cmluZyA9IFwiXCI7XHJcbiAgQElucHV0KCkgdGl0bGVSZWRpcmVjdDogc3RyaW5nID0gXCJcIjtcclxuICBASW5wdXQoKSBpc1JlZGlyZWN0RGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpIG9uTmV4dDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uQmFjazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGJsdXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvbmZvY3VzOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25yZWZyZXNoOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25zZWFyY2g6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIHZhbGlkYXRlVXRpbCA9IG5ldyBWYWxpZGF0ZVV0aWwoKTtcclxuICBzaGFyZWRDb21wb25lbnRzVXRpbCA9IG5ldyBTaGFyZWRDb21wb25lbnRzVXRpbCgpO1xyXG5cclxuICBhbGxJdGVtcyA9IFtdO1xyXG4gIF92YWx1ZTogYW55O1xyXG4gIGNvbnRyb2xzOiBhbnk7XHJcblxyXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7IH07XHJcblxyXG4gIG9uVmFsaWRhdGlvbkNoYW5nZSA9ICgpID0+IHsgfTtcclxuXHJcbiAgb25Ub3VjaGVkID0gKCkgPT4geyB9O1xyXG5cclxuICBmb2N1cyA9ICgpID0+IHtcclxuICAgIHRoaXMubmdTZWxlY3RTaW1wbGUuZm9jdXMoKTtcclxuICAgIGlmICh0aGlzLm9wZW5XaGVuRm9jdXMpIHtcclxuICAgICAgdGhpcy5uZ1NlbGVjdFNpbXBsZS5vcGVuKCk7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgY2xvc2UgPSAoKSA9PiB7XHJcbiAgICB0aGlzLm5nU2VsZWN0U2ltcGxlLmNsb3NlKCk7XHJcbiAgfTtcclxuXHJcbiAgb3BlbkVubGFjZSAoKTogdm9pZCB7XHJcbiAgICB3aW5kb3cub3Blbih0aGlzLnVybFJlZGlyZWN0KTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBtZXNzYWdlVXRpbFNlcnZpY2U6IE1lc3NhZ2VVdGlsU2VydmljZSxcclxuICAgIHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHByaXZhdGUgbmdTZWxlY3RTaW1wbGVTZXJ2aWNlOiBOZ1NlbGVjdFNpbXBsZVNlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMudmFsaWRhdG9yTWVzc2FnZSA9IHRoaXMubmdTZWxlY3RTaW1wbGVTZXJ2aWNlLmdldFZhbGlkYXRvck1lc3NhZ2UoKTtcclxuICAgIHRoaXMudG9vbHRpcE1lc3NhZ2UgPSB0aGlzLm5nU2VsZWN0U2ltcGxlU2VydmljZS5nZXRUb29sdGlwTWVzc2FnZSgpO1xyXG4gICAgdGhpcy5vcGVuV2hlbkZvY3VzID0gdGhpcy5uZ1NlbGVjdFNpbXBsZVNlcnZpY2UuZ2V0T3BlbldoZW5Gb2N1cygpO1xyXG4gICAgdGhpcy5zZWFyY2hCeSA9IHRoaXMubmdTZWxlY3RTaW1wbGVTZXJ2aWNlLmdldFNlYXJjaEJ5KCk7XHJcbiAgICB0aGlzLm1hcmtGaXJzdEl0ZW0gPSB0aGlzLm5nU2VsZWN0U2ltcGxlU2VydmljZS5nZXRNYXJrRmlyc3RJdGVtKCk7XHJcbiAgICB0aGlzLnN1Ym1pdHRlZCA9IHRoaXMubmdTZWxlY3RTaW1wbGVTZXJ2aWNlLmdldFN1Ym1pdHRlZCgpO1xyXG4gICAgdGhpcy5zZWFyY2hhYmxlID0gdGhpcy5uZ1NlbGVjdFNpbXBsZVNlcnZpY2UuZ2V0U2VhcmNoYWJsZSgpO1xyXG4gICAgdGhpcy52YWxpZGF0b3JBbGVydCA9IHRoaXMubmdTZWxlY3RTaW1wbGVTZXJ2aWNlLmdldFZhbGlkYXRvckFsZXJ0KCk7XHJcbiAgICB0aGlzLnVwcGVyQ2FzZSA9IHRoaXMubmdTZWxlY3RTaW1wbGVTZXJ2aWNlLmdldFVwcGVyQ2FzZSgpO1xyXG4gICAgdGhpcy5hcHBlbmRUbyA9IHRoaXMubmdTZWxlY3RTaW1wbGVTZXJ2aWNlLmdldEFwcGVuZFRvKCk7XHJcbiAgICB0aGlzLmxvYWRpbmdUZXh0ID0gdGhpcy5uZ1NlbGVjdFNpbXBsZVNlcnZpY2UuZ2V0TG9hZGluZ1RleHQoKTtcclxuICAgIHRoaXMuY2xlYXJBbGxUZXh0ID0gdGhpcy5uZ1NlbGVjdFNpbXBsZVNlcnZpY2UuZ2V0Q2xlYXJBbGxUZXh0KCk7XHJcbiAgICB0aGlzLm1hcmtGaXJzdCA9IHRoaXMubmdTZWxlY3RTaW1wbGVTZXJ2aWNlLmdldE1hcmtGaXJzdCgpO1xyXG4gICAgdGhpcy5jbGVhcmFibGUgPSB0aGlzLm5nU2VsZWN0U2ltcGxlU2VydmljZS5nZXRDbGVhcmFibGUoKTtcclxuICAgIHRoaXMuY2xlYXJPbkJhY2tzcGFjZSA9IHRoaXMubmdTZWxlY3RTaW1wbGVTZXJ2aWNlLmdldENsZWFyT25CYWNrc3BhY2UoKTtcclxuICAgIHRoaXMudmlydHVhbFNjcm9sbCA9IHRoaXMubmdTZWxlY3RTaW1wbGVTZXJ2aWNlLmdldFZpcnR1YWxTY3JvbGwoKTtcclxuICAgIHRoaXMub3Blbk9uRW50ZXIgPSB0aGlzLm5nU2VsZWN0U2ltcGxlU2VydmljZS5nZXRPcGVuT25FbnRlcigpO1xyXG4gICAgdGhpcy5ub3RGb3VuZFRleHQgPSB0aGlzLm5nU2VsZWN0U2ltcGxlU2VydmljZS5nZXROb3RGb3VuZFRleHQoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95ICgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKVxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMgKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzW1wiaXRlbXNcIl0pIHtcclxuICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgdGhpcy5jYXJnYSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbXCJzdWJtaXR0ZWRcIl0pIHtcclxuICAgICAgaWYgKHRoaXMuY29udHJvbHMgIT09IHVuZGVmaW5lZCAmJiBjaGFuZ2VzW1wic3VibWl0dGVkXCJdLmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICAgIHRoaXMuY29udHJvbHMubWFya0FzRGlydHkoKTtcclxuICAgICAgICB0aGlzLmNvbnRyb2xzLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgY2FyZ2EgKCkge1xyXG4gICAgdGhpcy5hbGxJdGVtcyA9IGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgdGhpcy5pdGVtcyA9IHRoaXMuaXRlbXMucGlwZShzaGFyZVJlcGxheSh7IHJlZkNvdW50OiB0cnVlIH0pKTtcclxuICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gdGhpcy5pdGVtcy5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgcmVzb2x2ZShyZXMpO1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goc3Vic2NyaXB0aW9uKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy5fdmFsdWUgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLmFsbEl0ZW1zLmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAhdGhpcy52YWxpZGF0ZVV0aWwuaXNVbmRlZmluZWRPck51bGwodGhpcy5nZXRPYmplY3QoZWxlbWVudCwgdGhpcy5zZWFyY2hCeSkpICYmXHJcbiAgICAgICAgICB0aGlzLmdldE9iamVjdChlbGVtZW50LCB0aGlzLnNlYXJjaEJ5KSA9PT0gdGhpcy5fdmFsdWVcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMuX3ZhbHVlID0gZWxlbWVudDtcclxuICAgICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5fdmFsdWUpO1xyXG4gICAgICAgICAgdGhpcy5vblZhbGlkYXRpb25DaGFuZ2UoKTtcclxuICAgICAgICAgIHRoaXMuY2hhbmdlLmVtaXQodGhpcy5fdmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5tYXJrRmlyc3RJdGVtICYmIHRoaXMuYWxsSXRlbXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5hbGxJdGVtc1swXTtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuX3ZhbHVlKTtcclxuICAgICAgICB0aGlzLm9uVmFsaWRhdGlvbkNoYW5nZSgpO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlLmVtaXQodGhpcy5fdmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLm1hcmtXaGVuSGF2ZU9uZUl0ZW0gJiYgdGhpcy5hbGxJdGVtcy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuYWxsSXRlbXNbMF07XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLl92YWx1ZSk7XHJcbiAgICAgICAgdGhpcy5vblZhbGlkYXRpb25DaGFuZ2UoKTtcclxuICAgICAgICB0aGlzLmNoYW5nZS5lbWl0KHRoaXMuX3ZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQgKCkgeyB9XHJcblxyXG4gIGdldE9iamVjdCAob2JqOiBhbnksIGtleTogYW55KSB7XHJcbiAgICByZXR1cm4ga2V5LnNwbGl0KFwiLlwiKS5yZWR1Y2UoZnVuY3Rpb24gKG86IGFueSwgeDogYW55KSB7XHJcbiAgICAgIHJldHVybiB0eXBlb2YgbyA9PSBcInVuZGVmaW5lZFwiIHx8IG8gPT09IG51bGwgPyBvIDogb1t4XTtcclxuICAgIH0sIG9iaik7XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlICh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xyXG4gICAgICBpZiAodGhpcy5sb2FkaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuYWxsSXRlbXMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAhdGhpcy52YWxpZGF0ZVV0aWwuaXNVbmRlZmluZWRPck51bGwodGhpcy5nZXRPYmplY3QoZWxlbWVudCwgdGhpcy5zZWFyY2hCeSkpICYmXHJcbiAgICAgICAgICAgIHRoaXMuZ2V0T2JqZWN0KGVsZW1lbnQsIHRoaXMuc2VhcmNoQnkpID09PSB0aGlzLl92YWx1ZVxyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gZWxlbWVudDtcclxuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLl92YWx1ZSk7XHJcbiAgICAgICAgICAgIHRoaXMub25WYWxpZGF0aW9uQ2hhbmdlKCk7XHJcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlLmVtaXQodGhpcy5fdmFsdWUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvL3RoaXMuc2VhcmNoRWxlbWVudCh2YWx1ZSk7XHJcbiAgICAgIHRoaXMub25WYWxpZGF0aW9uQ2hhbmdlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl92YWx1ZSA9IG51bGw7XHJcbiAgICAgIHRoaXMub25WYWxpZGF0aW9uQ2hhbmdlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UgKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQgKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG4gIHNldERpc2FibGVkU3RhdGUgKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGUgKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBhbnkge1xyXG4gICAgdGhpcy5jb250cm9scyA9IGNvbnRyb2w7XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2U/KGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVmFsaWRhdGlvbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgZXZlbnRDaGFuZ2UgKGU6IGFueSkge1xyXG4gICAgdGhpcy5vbkNoYW5nZShlKTtcclxuICAgIHRoaXMub25WYWxpZGF0aW9uQ2hhbmdlKCk7XHJcbiAgICB0aGlzLmNoYW5nZS5lbWl0KGUpO1xyXG4gIH1cclxuXHJcbiAgZXZlbnRCbHVyIChlOiBhbnkpIHtcclxuICAgIHRoaXMub25Ub3VjaGVkKCk7XHJcbiAgICB0aGlzLm9uVmFsaWRhdGlvbkNoYW5nZSgpO1xyXG4gICAgdGhpcy5ibHVyLmVtaXQoZSk7XHJcbiAgfVxyXG5cclxuICBldmVudEZvY3VzIChlOiBhbnkpIHtcclxuICAgIC8vIHRoaXMubmdTZWxlY3RTaW1wbGUuZm9jdXMoKTtcclxuICAgIGlmICh0aGlzLm9wZW5XaGVuRm9jdXMpIHtcclxuICAgICAgdGhpcy5uZ1NlbGVjdFNpbXBsZS5vcGVuKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLm9uZm9jdXMuZW1pdChlKTtcclxuICB9XHJcblxyXG4gIGV2ZW50U2VhcmNoIChlOiBhbnkpIHtcclxuICAgIHRoaXMub25zZWFyY2guZW1pdChlKTtcclxuICB9XHJcblxyXG4gIGVudGVyS2V5VXAgKCkge1xyXG4gICAgdGhpcy5uZ1NlbGVjdFNpbXBsZS5jbG9zZSgpO1xyXG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIGxldCB2YWxpZGF0b3IgPSB0aGlzLnNoYXJlZENvbXBvbmVudHNVdGlsLnN0b3BCeVZhbGlkYXRvcih0aGlzLmNvbnRyb2xzLCB0aGlzLnZhbGlkYXRvckFsZXJ0LCB0aGlzLmxhYmVsKTtcclxuICAgICAgaWYgKHZhbGlkYXRvci5lcnJvcikge1xyXG4gICAgICAgIHRoaXMubWVzc2FnZVV0aWxTZXJ2aWNlLmdldE1lc3NhZ2VFcnJvcihcIjAwMDA0NlwiLCBcIkVycm9yXCIsIHZhbGlkYXRvci5tZXNzYWdlKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLm5leHQgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGlmICh0aGlzLm5leHQuZGlzYWJsZWQgfHwgdGhpcy5uZXh0LnJlYWRvbmx5KSB7XHJcbiAgICAgICAgaWYgKHRoaXMubmV4dElzRGlzYWJsZSAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIHRoaXMubmV4dElzRGlzYWJsZS5mb2N1cygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLm5leHQuZm9jdXMoKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMubmV4dElzRGlzYWJsZSAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLm5leHRJc0Rpc2FibGUuZm9jdXMoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLm9uTmV4dC5lbWl0KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGxlZnRLZXlVcCAoKSB7XHJcbiAgICB0aGlzLm5nU2VsZWN0U2ltcGxlLmNsb3NlKCk7XHJcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgbGV0IHZhbGlkYXRvciA9IHRoaXMuc2hhcmVkQ29tcG9uZW50c1V0aWwuc3RvcEJ5VmFsaWRhdG9yKHRoaXMuY29udHJvbHMsIHRoaXMudmFsaWRhdG9yQWxlcnQsIHRoaXMubGFiZWwpO1xyXG4gICAgICBpZiAodmFsaWRhdG9yLmVycm9yKSB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlVXRpbFNlcnZpY2UuZ2V0TWVzc2FnZUVycm9yKFwiMDAwMDQ2XCIsIFwiRXJyb3JcIiwgdmFsaWRhdG9yLm1lc3NhZ2UpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuYmFjayAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgaWYgKHRoaXMuYmFjay5kaXNhYmxlZCB8fCB0aGlzLmJhY2sucmVhZG9ubHkpIHtcclxuICAgICAgICBpZiAodGhpcy5iYWNrSXNEaXNhYmxlICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgdGhpcy5iYWNrSXNEaXNhYmxlLmZvY3VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuYmFjay5mb2N1cygpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5iYWNrSXNEaXNhYmxlICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMuYmFja0lzRGlzYWJsZS5mb2N1cygpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMub25CYWNrLmVtaXQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xlYXIgKCkge1xyXG4gICAgdGhpcy5fdmFsdWUgPSBudWxsO1xyXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLl92YWx1ZSk7XHJcbiAgICB0aGlzLm9uVmFsaWRhdGlvbkNoYW5nZSgpO1xyXG4gICAgdGhpcy5jaGFuZ2UuZW1pdCh0aGlzLl92YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBvblJlZnJlc2ggKCkge1xyXG4gICAgdGhpcy5vbnJlZnJlc2guZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgb25TZWFyY2ggKCkge1xyXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihEaWFsb2dBZ0dyaWRTZWFyY2hDb21wb25lbnQsIHtcclxuICAgICAgd2lkdGg6IHRoaXMuc2VhcmNoUGFyYW1zLndpZHRoLFxyXG4gICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXHJcbiAgICB9KTtcclxuICAgIGxldCByb3dkYXRhID0gYXdhaXQgdGhpcy5zZWFyY2hQYXJhbXMucm93RGF0YS50b1Byb21pc2UoKTtcclxuICAgIGxldCBpbnN0YW5jZSA9IGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZTtcclxuICAgIGluc3RhbmNlLnRpdHRsZSA9IHRoaXMuc2VhcmNoUGFyYW1zLnRpdGxlID09PSBcIlwiID8gdGhpcy5sYWJlbCA6IHRoaXMuc2VhcmNoUGFyYW1zLnRpdGxlO1xyXG4gICAgaW5zdGFuY2Uucm93RGF0YSA9IHJvd2RhdGEgJiYgcm93ZGF0YS5sZW5ndGggPCAxID8gdGhpcy5pdGVtcyA6IHRoaXMuc2VhcmNoUGFyYW1zLnJvd0RhdGE7XHJcbiAgICBpbnN0YW5jZS5jb2x1bW5EZWZzID0gdGhpcy5zZWFyY2hQYXJhbXMuY29sdW1uRGVmcztcclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzcDogYW55W10pID0+IHtcclxuICAgICAgdGhpcy5mb2N1cygpO1xyXG4gICAgICBpZiAocmVzcC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgdGhpcy5fdmFsdWUgPSByZXNwWzBdO1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5fdmFsdWUpO1xyXG4gICAgICAgIHRoaXMub25WYWxpZGF0aW9uQ2hhbmdlKCk7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2UuZW1pdCh0aGlzLl92YWx1ZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZjFLZXlVcCAoKSB7XHJcbiAgICBpZiAoIXRoaXMuYnRuU2VhcmNoKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMubmdTZWxlY3RTaW1wbGUuY2xvc2UoKTtcclxuICAgIC8vdGhpcy5idG5TZWFyY2gubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgdGhpcy5vblNlYXJjaCgpO1xyXG4gIH1cclxufVxyXG4iLCI8bGFiZWwgKm5nSWY9XCJsYWJlbCAhPSBudWxsICYmIGxhYmVsICE9ICcnICYmIHNob3dMYWJlbFwiIGNsYXNzPVwiZC1mbGV4IHN1bWF4LWxhYmVsIG1iLTAgcC0wXCI+XHJcbiAgPHNwYW4gKm5nSWY9XCIhdGVtcGxhdGVMYWJlbDsgZWxzZSB0ZW1wbGF0ZUxhYmVsXCIgW3RpdGxlXT1cImxhYmVsXCIgc3R5bGU9XCJ3aGl0ZS1zcGFjZTogbm93cmFwOyBvdmVyZmxvdzogaGlkZGVuOyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpc1wiPlxyXG4gICAge3sgbGFiZWwgfX1cclxuICA8L3NwYW4+XHJcbiAgPHNwYW4gKm5nSWY9XCJyZXF1aXJlZFwiIFtjbGFzcy50ZXh0LWRhbmdlcl09XCJjb250cm9scz8uZXJyb3JzICE9IG51bGxcIj4gKjwvc3Bhbj5cclxuICA8c3BhbiAqbmdJZj1cImxhYmVsSW5mb1wiPlxyXG4gICAgPGkgY2xhc3M9XCJmYSBmYS1leGNsYW1hdGlvbi1jaXJjbGUgdGV4dC1pbmZvIG1sLTJcIiBbbWF0VG9vbHRpcF09XCJ0ZXh0TGFiZWxJbmZvXCIgbWF0VG9vbHRpcENsYXNzPVwiYmctaW5mb1wiPjwvaT5cclxuICA8L3NwYW4+XHJcbjwvbGFiZWw+XHJcblxyXG48ZGl2XHJcbiAgW2NsYXNzLmlucHV0LWljb25dPVwiY29udHJvbHM/LmVycm9ycyAhPSBudWxsICYmIChjb250cm9scz8uZGlydHkgfHwgY29udHJvbHM/LnRvdWNoZWQpICYmIHN1Ym1pdHRlZFwiXHJcbiAgW2NsYXNzLnJpZ2h0XT1cImNvbnRyb2xzPy5lcnJvcnMgIT0gbnVsbCAmJiAoY29udHJvbHM/LmRpcnR5IHx8IGNvbnRyb2xzPy50b3VjaGVkKSAmJiBzdWJtaXR0ZWRcIlxyXG4gIFtjbGFzcy5yZWZyZXNoXT1cImNvbnRyb2xzPy5lcnJvcnMgIT0gbnVsbCAmJiAoY29udHJvbHM/LmRpcnR5IHx8IGNvbnRyb2xzPy50b3VjaGVkKSAmJiBzdWJtaXR0ZWQgJiYgcmVmcmVzaFwiXHJcbiAgW2NsYXNzLnNlYXJjaF09XCJjb250cm9scz8uZXJyb3JzICE9IG51bGwgJiYgKGNvbnRyb2xzPy5kaXJ0eSB8fCBjb250cm9scz8udG91Y2hlZCkgJiYgc3VibWl0dGVkICYmIHNlYXJjaFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZVwiXHJcbiAgICAgIFtjbGFzcy5uZy1zZWxlY3QtY29udGFpbmVyLWZ1bGxidXR0b25zXT1cInNlYXJjaCAmJiByZWZyZXNoICYmIHJlZGlyZWN0XCJcclxuICAgICAgW2NsYXNzLmFwcC1uZy1zZWxlYy1jb250YWluZXJdPVwic2VhcmNoIHx8IHJlZnJlc2hcIlxyXG4gICAgICBbY2xhc3Mudy0xMDBdPVwiIXNlYXJjaCAmJiAhcmVmcmVzaFwiPlxyXG4gICAgICA8bmctc2VsZWN0XHJcbiAgICAgICAgI25nU2VsZWN0U2ltcGxlXHJcbiAgICAgICAgW2NsYXNzXT1cInNlYXJjaCB8fCByZWZyZXNoID8gJ2FwcC1uZy1zZWxlY3QnIDogJ3ctMTAwJ1wiXHJcbiAgICAgICAgW2NsYXNzLmFjdGlvbl09XCJzZWFyY2ggJiYgcmVmcmVzaFwiXHJcbiAgICAgICAgW2l0ZW1zXT1cIml0ZW1zIHwgYXN5bmNcIlxyXG4gICAgICAgIFsobmdNb2RlbCldPVwiX3ZhbHVlXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgKGNoYW5nZSk9XCJldmVudENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAoYmx1cik9XCJldmVudEJsdXIoJGV2ZW50KVwiXHJcbiAgICAgICAgKGZvY3VzKT1cImV2ZW50Rm9jdXMoJGV2ZW50KVwiXHJcbiAgICAgICAgKHNlYXJjaCk9XCJldmVudFNlYXJjaCgkZXZlbnQpXCJcclxuICAgICAgICBbbWFya0ZpcnN0XT1cIm1hcmtGaXJzdFwiXHJcbiAgICAgICAgW2NsZWFyYWJsZV09XCIhcmVxdWlyZWQgJiYgY2xlYXJhYmxlXCJcclxuICAgICAgICBbdmlydHVhbFNjcm9sbF09XCJ2aXJ0dWFsU2Nyb2xsXCJcclxuICAgICAgICBbaW5wdXRBdHRyc109XCJ7IGF1dG9jb21wbGV0ZTogYXV0b2NvbXBsZXRlIH1cIlxyXG4gICAgICAgIFtjbGVhck9uQmFja3NwYWNlXT1cImNsZWFyT25CYWNrc3BhY2VcIlxyXG4gICAgICAgIFtvcGVuT25FbnRlcl09XCJvcGVuT25FbnRlclwiXHJcbiAgICAgICAgKGtleWRvd24uZGVsZXRlKT1cIiFyZXF1aXJlZCAmJiBjbGVhcmFibGUgPyBjbGVhcigpIDogJydcIlxyXG4gICAgICAgIChjbGVhcik9XCJjbGVhcigpXCJcclxuICAgICAgICAoa2V5dXAuRjEpPVwiZjFLZXlVcCgpXCJcclxuICAgICAgICBbbm90Rm91bmRUZXh0XT1cIm5vdEZvdW5kVGV4dFwiXHJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY2Npb25hclwiXHJcbiAgICAgICAgKGtleXVwLmVudGVyKT1cImVudGVyS2V5VXAoKVwiXHJcbiAgICAgICAgW2NsZWFyQWxsVGV4dF09XCJjbGVhckFsbFRleHRcIlxyXG4gICAgICAgIFtzZWFyY2hhYmxlXT1cInNlYXJjaGFibGVcIlxyXG4gICAgICAgIChrZXl1cC5BcnJvd0xlZnQpPVwibGVmdEtleVVwKClcIlxyXG4gICAgICAgIFthcHBlbmRUb109XCJhcHBlbmRUb1wiXHJcbiAgICAgICAgW2xvYWRpbmddPVwibG9hZGluZ1wiXHJcbiAgICAgICAgW2xvYWRpbmdUZXh0XT1cImxvYWRpbmdUZXh0XCJcclxuICAgICAgICBbY2xhc3Mubmctc2VsZWN0LWludmFsaWRdPVwiY29udHJvbHM/LmVycm9ycyAhPSBudWxsICYmIChjb250cm9scz8uZGlydHkgfHwgY29udHJvbHM/LnRvdWNoZWQpICYmIHN1Ym1pdHRlZFwiXHJcbiAgICAgICAgW2NsYXNzLm5nLXNlbGVjdC10b3VjaGVkXT1cImNvbnRyb2xzPy5lcnJvcnMgIT0gbnVsbCAmJiAoY29udHJvbHM/LmRpcnR5IHx8IGNvbnRyb2xzPy50b3VjaGVkKSAmJiBzdWJtaXR0ZWRcIlxyXG4gICAgICAgIFtjbGFzcy51cHBlckNhc2VdPVwidXBwZXJDYXNlXCJcclxuICAgICAgICBbbmdDbGFzc109XCJzZXROZ0NsYXNzXCI+XHJcbiAgICAgICAgPCEtLSBPUENJT05FUyBERSBMSVNUQURPIC0tPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBuZy1vcHRpb24tdG1wIGxldC1pdGVtPVwiaXRlbVwiIGxldC1pbmRleD1cImluZGV4XCI+XHJcbiAgICAgICAgICA8c3BhbiBkYXRhLXRvZ2dsZT1cInRvb2x0aXBcIiB0aXRsZT1cInt7IGl0ZW0ubGFiZWwgfX1cIj57eyBpdGVtLmxhYmVsIH19PC9zcGFuPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvbmctc2VsZWN0PlxyXG5cclxuICAgICAgPCEtLSB0b29sdGlwLW1lc3NhZ2UgZXMgZWwgaWNvbm8gZGUgZXJyb3IgLS0+XHJcbiAgICAgIDx0b29sdGlwLW1lc3NhZ2VcclxuICAgICAgICBbbGFiZWxdPVwibGFiZWxcIlxyXG4gICAgICAgIFtjb250cm9sc109XCJjb250cm9sc1wiXHJcbiAgICAgICAgW3ZhbGlkYXRvck1lc3NhZ2VdPVwidmFsaWRhdG9yTWVzc2FnZVwiXHJcbiAgICAgICAgW3N1Ym1pdHRlZF09XCJzdWJtaXR0ZWRcIlxyXG4gICAgICAgIFt0b29sdGlwTWVzc2FnZV09XCJ0b29sdGlwTWVzc2FnZVwiPjwvdG9vbHRpcC1tZXNzYWdlPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VhcmNoICYmIHJlZnJlc2ggJiYgcmVkaXJlY3Q7IGVsc2UgdGVtcGxhdGVBY3Rpb25cIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImFwcC1uZy1zZWxlY3QtYWN0aW9uIGJkLWhpZ2hsaWdoXCI+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgI2J0blNlYXJjaFxyXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcmVhZG9ubHlcIlxyXG4gICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXN1Y2Nlc3MgcC0wIHJvdW5kZWQtMCBoLTEwMFwiXHJcbiAgICAgICAgICAoa2V5dXAuQXJyb3dMZWZ0KT1cIm5nU2VsZWN0U2ltcGxlLmZvY3VzKClcIlxyXG4gICAgICAgICAgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2U7IGJvcmRlci1jb2xvcjogb3JhbmdlXCJcclxuICAgICAgICAgIChjbGljayk9XCJvblNlYXJjaCgpXCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXNlYXJjaCB0ZXh0LXdoaXRlIHB4LTFcIiBbbWF0VG9vbHRpcF09XCInQnVzY2FyJ1wiIG1hdFRvb2x0aXBDbGFzcz1cImN1c3RvbS10b29sdGlwXCI+PC9pPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgICpuZ0lmPVwicmVmcmVzaFwiXHJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCByZWFkb25seVwiXHJcbiAgICAgICAgICBjbGFzcz1cImJ0biBidG4taW5mbyBwLTAgcm91bmRlZC0wIGgtMTAwXCJcclxuICAgICAgICAgIChjbGljayk9XCJvblJlZnJlc2goKVwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1yZWZyZXNoIHRleHQtd2hpdGUgcHgtMVwiIFttYXRUb29sdGlwXT1cIidSZWZyZXNjYXInXCIgbWF0VG9vbHRpcENsYXNzPVwiYmctaW5mb1wiPjwvaT5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zdWNjZXNzIHAtMCByb3VuZGVkLTAgaC0xMDBcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm9wZW5FbmxhY2UoKVwiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcmVhZG9ubHkgfHwgaXNSZWRpcmVjdERpc2FibGVkXCI+XHJcbiAgICAgICAgICA8ZW0gY2xhc3M9XCJmYS1yZWd1bGFyIGZhLXJlY3RhbmdsZS1saXN0IHRleHQtd2hpdGUgcHgtMVwiIFttYXRUb29sdGlwXT1cInRpdGxlUmVkaXJlY3QhXCIgbWF0VG9vbHRpcENsYXNzPVwiYmctc3VjY2Vzc1wiPiA8L2VtPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjdGVtcGxhdGVBY3Rpb24+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhcHAtbmctc2VsZWN0LWJ1dHRvbiBiZC1oaWdobGlnaHRcIiAqbmdJZj1cInNlYXJjaFwiPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgICNidG5TZWFyY2hcclxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IHJlYWRvbmx5XCJcclxuICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zdWNjZXNzIHAtMCByb3VuZGVkLTAgaC0xMDBcIlxyXG4gICAgICAgICAgKGtleXVwLkFycm93TGVmdCk9XCJuZ1NlbGVjdFNpbXBsZS5mb2N1cygpXCJcclxuICAgICAgICAgIChjbGljayk9XCJvblNlYXJjaCgpXCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXNlYXJjaCB0ZXh0LXdoaXRlIHB4LTFcIiBbbWF0VG9vbHRpcF09XCInQnVzY2FyJ1wiIG1hdFRvb2x0aXBDbGFzcz1cImJnLXN1Y2Nlc3NcIj48L2k+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYXBwLW5nLXNlbGVjdC1idXR0b24gYmQtaGlnaGxpZ2h0XCIgKm5nSWY9XCJyZWZyZXNoXCI+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgKm5nSWY9XCJyZWZyZXNoXCJcclxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IHJlYWRvbmx5XCJcclxuICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1pbmZvIHAtMCByb3VuZGVkLTAgaC0xMDBcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm9uUmVmcmVzaCgpXCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXJlZnJlc2ggdGV4dC13aGl0ZSBweC0xXCIgW21hdFRvb2x0aXBdPVwiJ1JlZnJlc2NhcidcIiBtYXRUb29sdGlwQ2xhc3M9XCJiZy1pbmZvXCI+PC9pPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImFwcC1uZy1zZWxlY3QtYnV0dG9uIGJkLWhpZ2hsaWdodFwiICpuZ0lmPVwicmVkaXJlY3RcIj5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zdWNjZXNzIHAtMCByb3VuZGVkLTAgaC0xMDBcIlxyXG4gICAgICAgICAgc3R5bGU9XCJwYWRkaW5nLXRvcDogM3B4OyBwYWRkaW5nLWJvdHRvbTogN3B4OyBib3JkZXItcmFkaXVzOiAwcHhcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm9wZW5FbmxhY2UoKVwiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcmVhZG9ubHkgfHwgaXNSZWRpcmVjdERpc2FibGVkXCI+XHJcbiAgICAgICAgICA8ZW0gY2xhc3M9XCJmYS1yZWd1bGFyIGZhLXJlY3RhbmdsZS1saXN0IHRleHQtd2hpdGUgcHgtMVwiIFttYXRUb29sdGlwXT1cInRpdGxlUmVkaXJlY3QhXCIgbWF0VG9vbHRpcENsYXNzPVwiYmctc3VjY2Vzc1wiPiA8L2VtPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW21vcmUtYnV0dG9uc11cIj48L25nLWNvbnRlbnQ+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPCEtLSBlcnJvci1tZXNzYWdlIGVzIGVsIG1hbnNhamUgcXVlIGFwYXJlY2UgYWJham8gZGVsIGNvbXBvbmVudGUgLS0+XHJcbjxlcnJvci1tZXNzYWdlXHJcbiAgW2xhYmVsXT1cImxhYmVsXCJcclxuICBbY29udHJvbHNdPVwiY29udHJvbHNcIlxyXG4gIFt2YWxpZGF0b3JNZXNzYWdlXT1cInZhbGlkYXRvck1lc3NhZ2VcIlxyXG4gIFtzdWJtaXR0ZWRdPVwic3VibWl0dGVkXCJcclxuICBbdG9vbHRpcE1lc3NhZ2VdPVwidG9vbHRpcE1lc3NhZ2VcIj48L2Vycm9yLW1lc3NhZ2U+XHJcbiJdfQ==
|
|
461
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctc2VsZWN0LXNpbXBsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3VtYXgtZXJwLWNvbXBvbmVudC9zcmMvbGliL25nLXNlbGVjdC1zaW1wbGUvbmctc2VsZWN0LXNpbXBsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3VtYXgtZXJwLWNvbXBvbmVudC9zcmMvbGliL25nLXNlbGVjdC1zaW1wbGUvbmctc2VsZWN0LXNpbXBsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUlMLE1BQU0sRUFHTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBbUIsYUFBYSxFQUFFLGlCQUFpQixFQUFvQixNQUFNLGdCQUFnQixDQUFDO0FBR3JHLE9BQU8sRUFBYyxFQUFFLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUV2RyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7Ozs7O0FBSXJELE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLFlBQ1MsYUFBMkIsRUFBRSxFQUM3QixRQUFnQixFQUFFLEVBQ2xCLFFBQWdCLE9BQU8sRUFDdkIsVUFBNkIsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUhuQyxlQUFVLEdBQVYsVUFBVSxDQUFtQjtRQUM3QixVQUFLLEdBQUwsS0FBSyxDQUFhO1FBQ2xCLFVBQUssR0FBTCxLQUFLLENBQWtCO1FBQ3ZCLFlB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LEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBRUksTUFBTTtzQkFBZixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csSUFBSTtzQkFBYixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgZm9yd2FyZFJlZixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBUZW1wbGF0ZVJlZixcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XHJcbmltcG9ydCB7IE5nU2VsZWN0Q29tcG9uZW50IH0gZnJvbSBcIkBuZy1zZWxlY3Qvbmctc2VsZWN0XCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBzaGFyZVJlcGxheSB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBEaWFsb2dBZ0dyaWRTZWFyY2hDb21wb25lbnQgfSBmcm9tICcuLi9kaWFsb2ctYWctZ3JpZC1zZWFyY2gvZGlhbG9nLWFnLWdyaWQtc2VhcmNoLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1lc3NhZ2VVdGlsU2VydmljZSB9IGZyb20gXCIuLi91dGlscy9tZXNzYWdlLXV0aWwuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBTaGFyZWRDb21wb25lbnRzVXRpbCB9IGZyb20gXCIuLi91dGlscy9TaGFyZWRDb21wb25lbnRzVXRpbFwiO1xyXG5pbXBvcnQgeyBWYWxpZGF0ZVV0aWwgfSBmcm9tIFwiLi4vdXRpbHMvVmFsaWRhdGVVdGlsXCI7XHJcbmltcG9ydCB7IE5nU2VsZWN0U2ltcGxlU2VydmljZSB9IGZyb20gXCIuL25nLXNlbGVjdC1zaW1wbGUuc2VydmljZVwiO1xyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBTZWFyY2hQYXJhbXMge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGNvbHVtbkRlZnM6IENvbHVtbkRlZnNbXSA9IFtdLFxyXG4gICAgcHVibGljIHRpdGxlOiBzdHJpbmcgPSBcIlwiLFxyXG4gICAgcHVibGljIHdpZHRoOiBzdHJpbmcgPSBcIjk5MHB4XCIsXHJcbiAgICBwdWJsaWMgcm93RGF0YTogT2JzZXJ2YWJsZTxhbnlbXT4gPSBvZihbXSlcclxuICApIHsgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29sdW1uRGVmcyB7XHJcbiAgaGVhZGVyTmFtZT86IHN0cmluZztcclxuICBmaWVsZD86IHN0cmluZztcclxuICB3aWR0aD86IHN0cmluZztcclxuICBjZWxsUmVuZGVyZXI/OiBhbnk7XHJcbiAgdmFsdWVHZXR0ZXI/OiAoZmllbGQ6IGFueSkgPT4gc3RyaW5nIHwgc3RyaW5nO1xyXG4gIHNvcnRhYmxlPzogYm9vbGVhbjtcclxuICByZXNpemFibGU/OiBib29sZWFuO1xyXG4gIGNlbGxDbGFzcz86IHN0cmluZ1tdO1xyXG4gIGNlbGxTdHlsZT86IHt9O1xyXG4gIHZhbHVlRm9ybWF0dGVyPzogYW55O1xyXG4gIHBpbm5lZD86IHN0cmluZztcclxuICBzb3J0Pzogc3RyaW5nO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ25nLXNlbGVjdC1zaW1wbGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9uZy1zZWxlY3Qtc2ltcGxlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9uZy1zZWxlY3Qtc2ltcGxlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBOZ1NlbGVjdFNpbXBsZUNvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTmdTZWxlY3RTaW1wbGVDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmdTZWxlY3RTaW1wbGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuICBAVmlld0NoaWxkKFwibmdTZWxlY3RTaW1wbGVcIikgbmdTZWxlY3RTaW1wbGUhOiBOZ1NlbGVjdENvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKFwiYnRuU2VhcmNoXCIpIGJ0blNlYXJjaCE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIEBJbnB1dCgpIHNob3dMYWJlbDogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgbGFiZWw6IGFueSA9IG51bGw7XHJcbiAgQElucHV0KCkgYXV0b2NvbXBsZXRlOiBzdHJpbmcgPSBcImNjLWNzY1wiO1xyXG4gIEBJbnB1dCgpIG5leHQ6IGFueTtcclxuICBASW5wdXQoKSBuZXh0SXNEaXNhYmxlOiBhbnk7XHJcbiAgQElucHV0KCkgYmFjazogYW55O1xyXG4gIEBJbnB1dCgpIGJhY2tJc0Rpc2FibGU6IGFueTtcclxuICBASW5wdXQoKSByZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSB2YWxpZGF0b3JNZXNzYWdlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdG9vbHRpcE1lc3NhZ2U6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIG9wZW5XaGVuRm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzZWFyY2hCeTogc3RyaW5nID0gXCJ2YWx1ZVwiO1xyXG4gIEBJbnB1dCgpIG1hcmtGaXJzdEl0ZW06IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBtYXJrV2hlbkhhdmVPbmVJdGVtOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc3VibWl0dGVkOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzZXROZ0NsYXNzOiBzdHJpbmcgPSBcIlwiO1xyXG4gIEBJbnB1dCgpIHNlYXJjaGFibGU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHZhbGlkYXRvckFsZXJ0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdXBwZXJDYXNlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdGVtcGxhdGVMYWJlbDogVGVtcGxhdGVSZWY8YW55PiB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGFwcGVuZFRvOiBzdHJpbmcgPSBcImJvZHlcIjtcclxuICBASW5wdXQoKSBpdGVtcyE6IE9ic2VydmFibGU8YW55W10+O1xyXG5cclxuICBASW5wdXQoKSBsb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBsb2FkaW5nVGV4dDogc3RyaW5nID0gXCJDYXJnYW5kby4uLlwiO1xyXG4gIEBJbnB1dCgpIGNsZWFyQWxsVGV4dDogc3RyaW5nID0gXCJMaW1waWFyXCI7XHJcbiAgQElucHV0KCkgbm90Rm91bmRUZXh0OiBzdHJpbmcgPSBcIk5vIHNlIGVuY29udHJhcm9uIHJlc3VsdGFkb3NcIjtcclxuXHJcbiAgQElucHV0KCkgbWFya0ZpcnN0OiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBjbGVhcmFibGU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGNsZWFyT25CYWNrc3BhY2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSB2aXJ0dWFsU2Nyb2xsOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBvcGVuT25FbnRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHJlZnJlc2g6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBpc1JlZnJlc2hEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNlYXJjaDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHJlZGlyZWN0OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIHNlYXJjaFBhcmFtczogU2VhcmNoUGFyYW1zID0gbmV3IFNlYXJjaFBhcmFtcygpO1xyXG4gIEBJbnB1dCgpIGxhYmVsSW5mbzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHRleHRMYWJlbEluZm86IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gIEBJbnB1dCgpIHVybFJlZGlyZWN0OiBzdHJpbmcgPSBcIlwiO1xyXG4gIEBJbnB1dCgpIHRpdGxlUmVkaXJlY3Q6IHN0cmluZyA9IFwiXCI7XHJcbiAgQElucHV0KCkgaXNSZWRpcmVjdERpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBPdXRwdXQoKSBvbk5leHQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvbkJhY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBibHVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25mb2N1czogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9ucmVmcmVzaDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uc2VhcmNoOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICB2YWxpZGF0ZVV0aWwgPSBuZXcgVmFsaWRhdGVVdGlsKCk7XHJcbiAgc2hhcmVkQ29tcG9uZW50c1V0aWwgPSBuZXcgU2hhcmVkQ29tcG9uZW50c1V0aWwoKTtcclxuXHJcbiAgYWxsSXRlbXMgPSBbXTtcclxuICBfdmFsdWU6IGFueTtcclxuICBjb250cm9sczogYW55O1xyXG5cclxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIG9uQ2hhbmdlID0gKF86IGFueSkgPT4geyB9O1xyXG5cclxuICBvblZhbGlkYXRpb25DaGFuZ2UgPSAoKSA9PiB7IH07XHJcblxyXG4gIG9uVG91Y2hlZCA9ICgpID0+IHsgfTtcclxuXHJcbiAgZm9jdXMgPSAoKSA9PiB7XHJcbiAgICB0aGlzLm5nU2VsZWN0U2ltcGxlLmZvY3VzKCk7XHJcbiAgICBpZiAodGhpcy5vcGVuV2hlbkZvY3VzKSB7XHJcbiAgICAgIHRoaXMubmdTZWxlY3RTaW1wbGUub3BlbigpO1xyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIGNsb3NlID0gKCkgPT4ge1xyXG4gICAgdGhpcy5uZ1NlbGVjdFNpbXBsZS5jbG9zZSgpO1xyXG4gIH07XHJcblxyXG4gIG9wZW5FbmxhY2UgKCk6IHZvaWQge1xyXG4gICAgd2luZG93Lm9wZW4odGhpcy51cmxSZWRpcmVjdCk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgbWVzc2FnZVV0aWxTZXJ2aWNlOiBNZXNzYWdlVXRpbFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIG5nU2VsZWN0U2ltcGxlU2VydmljZTogTmdTZWxlY3RTaW1wbGVTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLnZhbGlkYXRvck1lc3NhZ2UgPSB0aGlzLm5nU2VsZWN0U2ltcGxlU2VydmljZS5nZXRWYWxpZGF0b3JNZXNzYWdlKCk7XHJcbiAgICB0aGlzLnRvb2x0aXBNZXNzYWdlID0gdGhpcy5uZ1NlbGVjdFNpbXBsZVNlcnZpY2UuZ2V0VG9vbHRpcE1lc3NhZ2UoKTtcclxuICAgIHRoaXMub3BlbldoZW5Gb2N1cyA9IHRoaXMubmdTZWxlY3RTaW1wbGVTZXJ2aWNlLmdldE9wZW5XaGVuRm9jdXMoKTtcclxuICAgIHRoaXMuc2VhcmNoQnkgPSB0aGlzLm5nU2VsZWN0U2ltcGxlU2VydmljZS5nZXRTZWFyY2hCeSgpO1xyXG4gICAgdGhpcy5tYXJrRmlyc3RJdGVtID0gdGhpcy5uZ1NlbGVjdFNpbXBsZVNlcnZpY2UuZ2V0TWFya0ZpcnN0SXRlbSgpO1xyXG4gICAgdGhpcy5zdWJtaXR0ZWQgPSB0aGlzLm5nU2VsZWN0U2ltcGxlU2VydmljZS5nZXRTdWJtaXR0ZWQoKTtcclxuICAgIHRoaXMuc2VhcmNoYWJsZSA9IHRoaXMubmdTZWxlY3RTaW1wbGVTZXJ2aWNlLmdldFNlYXJjaGFibGUoKTtcclxuICAgIHRoaXMudmFsaWRhdG9yQWxlcnQgPSB0aGlzLm5nU2VsZWN0U2ltcGxlU2VydmljZS5nZXRWYWxpZGF0b3JBbGVydCgpO1xyXG4gICAgdGhpcy51cHBlckNhc2UgPSB0aGlzLm5nU2VsZWN0U2ltcGxlU2VydmljZS5nZXRVcHBlckNhc2UoKTtcclxuICAgIHRoaXMuYXBwZW5kVG8gPSB0aGlzLm5nU2VsZWN0U2ltcGxlU2VydmljZS5nZXRBcHBlbmRUbygpO1xyXG4gICAgdGhpcy5sb2FkaW5nVGV4dCA9IHRoaXMubmdTZWxlY3RTaW1wbGVTZXJ2aWNlLmdldExvYWRpbmdUZXh0KCk7XHJcbiAgICB0aGlzLmNsZWFyQWxsVGV4dCA9IHRoaXMubmdTZWxlY3RTaW1wbGVTZXJ2aWNlLmdldENsZWFyQWxsVGV4dCgpO1xyXG4gICAgdGhpcy5tYXJrRmlyc3QgPSB0aGlzLm5nU2VsZWN0U2ltcGxlU2VydmljZS5nZXRNYXJrRmlyc3QoKTtcclxuICAgIHRoaXMuY2xlYXJhYmxlID0gdGhpcy5uZ1NlbGVjdFNpbXBsZVNlcnZpY2UuZ2V0Q2xlYXJhYmxlKCk7XHJcbiAgICB0aGlzLmNsZWFyT25CYWNrc3BhY2UgPSB0aGlzLm5nU2VsZWN0U2ltcGxlU2VydmljZS5nZXRDbGVhck9uQmFja3NwYWNlKCk7XHJcbiAgICB0aGlzLnZpcnR1YWxTY3JvbGwgPSB0aGlzLm5nU2VsZWN0U2ltcGxlU2VydmljZS5nZXRWaXJ0dWFsU2Nyb2xsKCk7XHJcbiAgICB0aGlzLm9wZW5PbkVudGVyID0gdGhpcy5uZ1NlbGVjdFNpbXBsZVNlcnZpY2UuZ2V0T3Blbk9uRW50ZXIoKTtcclxuICAgIHRoaXMubm90Rm91bmRUZXh0ID0gdGhpcy5uZ1NlbGVjdFNpbXBsZVNlcnZpY2UuZ2V0Tm90Rm91bmRUZXh0KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSAoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSlcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzIChjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1tcIml0ZW1zXCJdKSB7XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICAgIHRoaXMuY2FyZ2EoKTtcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzW1wic3VibWl0dGVkXCJdKSB7XHJcbiAgICAgIGlmICh0aGlzLmNvbnRyb2xzICE9PSB1bmRlZmluZWQgJiYgY2hhbmdlc1tcInN1Ym1pdHRlZFwiXS5jdXJyZW50VmFsdWUpIHtcclxuICAgICAgICB0aGlzLmNvbnRyb2xzLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgICAgdGhpcy5jb250cm9scy5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFzeW5jIGNhcmdhICgpIHtcclxuICAgIHRoaXMuYWxsSXRlbXMgPSBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLml0ZW1zLnBpcGUoc2hhcmVSZXBsYXkoeyByZWZDb3VudDogdHJ1ZSB9KSk7XHJcbiAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHRoaXMuaXRlbXMuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHJlc29sdmUocmVzKTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHN1YnNjcmlwdGlvbik7XHJcbiAgICB9KTtcclxuICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMuX3ZhbHVlICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5hbGxJdGVtcy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgIXRoaXMudmFsaWRhdGVVdGlsLmlzVW5kZWZpbmVkT3JOdWxsKHRoaXMuZ2V0T2JqZWN0KGVsZW1lbnQsIHRoaXMuc2VhcmNoQnkpKSAmJlxyXG4gICAgICAgICAgdGhpcy5nZXRPYmplY3QoZWxlbWVudCwgdGhpcy5zZWFyY2hCeSkgPT09IHRoaXMuX3ZhbHVlXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB0aGlzLl92YWx1ZSA9IGVsZW1lbnQ7XHJcbiAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuX3ZhbHVlKTtcclxuICAgICAgICAgIHRoaXMub25WYWxpZGF0aW9uQ2hhbmdlKCk7XHJcbiAgICAgICAgICB0aGlzLmNoYW5nZS5lbWl0KHRoaXMuX3ZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMubWFya0ZpcnN0SXRlbSAmJiB0aGlzLmFsbEl0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuYWxsSXRlbXNbMF07XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLl92YWx1ZSk7XHJcbiAgICAgICAgdGhpcy5vblZhbGlkYXRpb25DaGFuZ2UoKTtcclxuICAgICAgICB0aGlzLmNoYW5nZS5lbWl0KHRoaXMuX3ZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5tYXJrV2hlbkhhdmVPbmVJdGVtICYmIHRoaXMuYWxsSXRlbXMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLmFsbEl0ZW1zWzBdO1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5fdmFsdWUpO1xyXG4gICAgICAgIHRoaXMub25WYWxpZGF0aW9uQ2hhbmdlKCk7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2UuZW1pdCh0aGlzLl92YWx1ZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0ICgpIHsgfVxyXG5cclxuICBnZXRPYmplY3QgKG9iajogYW55LCBrZXk6IGFueSkge1xyXG4gICAgcmV0dXJuIGtleS5zcGxpdChcIi5cIikucmVkdWNlKGZ1bmN0aW9uIChvOiBhbnksIHg6IGFueSkge1xyXG4gICAgICByZXR1cm4gdHlwZW9mIG8gPT0gXCJ1bmRlZmluZWRcIiB8fCBvID09PSBudWxsID8gbyA6IG9beF07XHJcbiAgICB9LCBvYmopO1xyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZSAodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKHZhbHVlICE9IG51bGwpIHtcclxuICAgICAgaWYgKHRoaXMubG9hZGluZykge1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmFsbEl0ZW1zLmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgIXRoaXMudmFsaWRhdGVVdGlsLmlzVW5kZWZpbmVkT3JOdWxsKHRoaXMuZ2V0T2JqZWN0KGVsZW1lbnQsIHRoaXMuc2VhcmNoQnkpKSAmJlxyXG4gICAgICAgICAgICB0aGlzLmdldE9iamVjdChlbGVtZW50LCB0aGlzLnNlYXJjaEJ5KSA9PT0gdGhpcy5fdmFsdWVcclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICB0aGlzLl92YWx1ZSA9IGVsZW1lbnQ7XHJcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5fdmFsdWUpO1xyXG4gICAgICAgICAgICB0aGlzLm9uVmFsaWRhdGlvbkNoYW5nZSgpO1xyXG4gICAgICAgICAgICB0aGlzLmNoYW5nZS5lbWl0KHRoaXMuX3ZhbHVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy90aGlzLnNlYXJjaEVsZW1lbnQodmFsdWUpO1xyXG4gICAgICB0aGlzLm9uVmFsaWRhdGlvbkNoYW5nZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fdmFsdWUgPSBudWxsO1xyXG4gICAgICB0aGlzLm9uVmFsaWRhdGlvbkNoYW5nZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuICByZWdpc3Rlck9uQ2hhbmdlIChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkIChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuICBzZXREaXNhYmxlZFN0YXRlIChpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgYW55IHtcclxuICAgIHRoaXMuY29udHJvbHMgPSBjb250cm9sO1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlPyhmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgdGhpcy5vblZhbGlkYXRpb25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIGV2ZW50Q2hhbmdlIChlOiBhbnkpIHtcclxuICAgIHRoaXMub25DaGFuZ2UoZSk7XHJcbiAgICB0aGlzLm9uVmFsaWRhdGlvbkNoYW5nZSgpO1xyXG4gICAgdGhpcy5jaGFuZ2UuZW1pdChlKTtcclxuICB9XHJcblxyXG4gIGV2ZW50Qmx1ciAoZTogYW55KSB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xyXG4gICAgdGhpcy5vblZhbGlkYXRpb25DaGFuZ2UoKTtcclxuICAgIHRoaXMuYmx1ci5lbWl0KGUpO1xyXG4gIH1cclxuXHJcbiAgZXZlbnRGb2N1cyAoZTogYW55KSB7XHJcbiAgICAvLyB0aGlzLm5nU2VsZWN0U2ltcGxlLmZvY3VzKCk7XHJcbiAgICBpZiAodGhpcy5vcGVuV2hlbkZvY3VzKSB7XHJcbiAgICAgIHRoaXMubmdTZWxlY3RTaW1wbGUub3BlbigpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5vbmZvY3VzLmVtaXQoZSk7XHJcbiAgfVxyXG5cclxuICBldmVudFNlYXJjaCAoZTogYW55KSB7XHJcbiAgICB0aGlzLm9uc2VhcmNoLmVtaXQoZSk7XHJcbiAgfVxyXG5cclxuICBlbnRlcktleVVwICgpIHtcclxuICAgIHRoaXMubmdTZWxlY3RTaW1wbGUuY2xvc2UoKTtcclxuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xyXG4gICAgICBsZXQgdmFsaWRhdG9yID0gdGhpcy5zaGFyZWRDb21wb25lbnRzVXRpbC5zdG9wQnlWYWxpZGF0b3IodGhpcy5jb250cm9scywgdGhpcy52YWxpZGF0b3JBbGVydCwgdGhpcy5sYWJlbCk7XHJcbiAgICAgIGlmICh2YWxpZGF0b3IuZXJyb3IpIHtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VVdGlsU2VydmljZS5nZXRNZXNzYWdlRXJyb3IoXCIwMDAwNDZcIiwgXCJFcnJvclwiLCB2YWxpZGF0b3IubWVzc2FnZSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5uZXh0ICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICBpZiAodGhpcy5uZXh0LmRpc2FibGVkIHx8IHRoaXMubmV4dC5yZWFkb25seSkge1xyXG4gICAgICAgIGlmICh0aGlzLm5leHRJc0Rpc2FibGUgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICB0aGlzLm5leHRJc0Rpc2FibGUuZm9jdXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5uZXh0LmZvY3VzKCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLm5leHRJc0Rpc2FibGUgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdGhpcy5uZXh0SXNEaXNhYmxlLmZvY3VzKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5vbk5leHQuZW1pdCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsZWZ0S2V5VXAgKCkge1xyXG4gICAgdGhpcy5uZ1NlbGVjdFNpbXBsZS5jbG9zZSgpO1xyXG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIGxldCB2YWxpZGF0b3IgPSB0aGlzLnNoYXJlZENvbXBvbmVudHNVdGlsLnN0b3BCeVZhbGlkYXRvcih0aGlzLmNvbnRyb2xzLCB0aGlzLnZhbGlkYXRvckFsZXJ0LCB0aGlzLmxhYmVsKTtcclxuICAgICAgaWYgKHZhbGlkYXRvci5lcnJvcikge1xyXG4gICAgICAgIHRoaXMubWVzc2FnZVV0aWxTZXJ2aWNlLmdldE1lc3NhZ2VFcnJvcihcIjAwMDA0NlwiLCBcIkVycm9yXCIsIHZhbGlkYXRvci5tZXNzYWdlKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLmJhY2sgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGlmICh0aGlzLmJhY2suZGlzYWJsZWQgfHwgdGhpcy5iYWNrLnJlYWRvbmx5KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuYmFja0lzRGlzYWJsZSAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIHRoaXMuYmFja0lzRGlzYWJsZS5mb2N1cygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmJhY2suZm9jdXMoKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuYmFja0lzRGlzYWJsZSAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLmJhY2tJc0Rpc2FibGUuZm9jdXMoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLm9uQmFjay5lbWl0KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsZWFyICgpIHtcclxuICAgIHRoaXMuX3ZhbHVlID0gbnVsbDtcclxuICAgIHRoaXMub25DaGFuZ2UodGhpcy5fdmFsdWUpO1xyXG4gICAgdGhpcy5vblZhbGlkYXRpb25DaGFuZ2UoKTtcclxuICAgIHRoaXMuY2hhbmdlLmVtaXQodGhpcy5fdmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgb25SZWZyZXNoICgpIHtcclxuICAgIHRoaXMub25yZWZyZXNoLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIG9uU2VhcmNoICgpIHtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oRGlhbG9nQWdHcmlkU2VhcmNoQ29tcG9uZW50LCB7XHJcbiAgICAgIHdpZHRoOiB0aGlzLnNlYXJjaFBhcmFtcy53aWR0aCxcclxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgICBsZXQgcm93ZGF0YSA9IGF3YWl0IHRoaXMuc2VhcmNoUGFyYW1zLnJvd0RhdGEudG9Qcm9taXNlKCk7XHJcbiAgICBsZXQgaW5zdGFuY2UgPSBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2U7XHJcbiAgICBpbnN0YW5jZS50aXR0bGUgPSB0aGlzLnNlYXJjaFBhcmFtcy50aXRsZSA9PT0gXCJcIiA/IHRoaXMubGFiZWwgOiB0aGlzLnNlYXJjaFBhcmFtcy50aXRsZTtcclxuICAgIGluc3RhbmNlLnJvd0RhdGEgPSByb3dkYXRhICYmIHJvd2RhdGEubGVuZ3RoIDwgMSA/IHRoaXMuaXRlbXMgOiB0aGlzLnNlYXJjaFBhcmFtcy5yb3dEYXRhO1xyXG4gICAgaW5zdGFuY2UuY29sdW1uRGVmcyA9IHRoaXMuc2VhcmNoUGFyYW1zLmNvbHVtbkRlZnM7XHJcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3A6IGFueVtdKSA9PiB7XHJcbiAgICAgIHRoaXMuZm9jdXMoKTtcclxuICAgICAgaWYgKHJlc3AubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlID0gcmVzcFswXTtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuX3ZhbHVlKTtcclxuICAgICAgICB0aGlzLm9uVmFsaWRhdGlvbkNoYW5nZSgpO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlLmVtaXQodGhpcy5fdmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGYxS2V5VXAgKCkge1xyXG4gICAgaWYgKCF0aGlzLmJ0blNlYXJjaCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLm5nU2VsZWN0U2ltcGxlLmNsb3NlKCk7XHJcbiAgICAvL3RoaXMuYnRuU2VhcmNoLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgIHRoaXMub25TZWFyY2goKTtcclxuICB9XHJcbn1cclxuIiwiPGxhYmVsICpuZ0lmPVwibGFiZWwgIT0gbnVsbCAmJiBsYWJlbCAhPSAnJyAmJiBzaG93TGFiZWxcIiBjbGFzcz1cImQtZmxleCBzdW1heC1sYWJlbCBtYi0wIHAtMFwiPlxyXG4gIDxzcGFuICpuZ0lmPVwiIXRlbXBsYXRlTGFiZWw7IGVsc2UgdGVtcGxhdGVMYWJlbFwiIFt0aXRsZV09XCJsYWJlbFwiIHN0eWxlPVwid2hpdGUtc3BhY2U6IG5vd3JhcDsgb3ZlcmZsb3c6IGhpZGRlbjsgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXNcIj5cclxuICAgIHt7IGxhYmVsIH19XHJcbiAgPC9zcGFuPlxyXG4gIDxzcGFuICpuZ0lmPVwicmVxdWlyZWRcIiBbY2xhc3MudGV4dC1kYW5nZXJdPVwiY29udHJvbHM/LmVycm9ycyAhPSBudWxsXCI+ICo8L3NwYW4+XHJcbiAgPHNwYW4gKm5nSWY9XCJsYWJlbEluZm9cIj5cclxuICAgIDxpIGNsYXNzPVwiZmEgZmEtZXhjbGFtYXRpb24tY2lyY2xlIHRleHQtaW5mbyBtbC0yXCIgW21hdFRvb2x0aXBdPVwidGV4dExhYmVsSW5mb1wiIG1hdFRvb2x0aXBDbGFzcz1cImJnLWluZm9cIj48L2k+XHJcbiAgPC9zcGFuPlxyXG48L2xhYmVsPlxyXG5cclxuPGRpdlxyXG4gIFtjbGFzcy5pbnB1dC1pY29uXT1cImNvbnRyb2xzPy5lcnJvcnMgIT0gbnVsbCAmJiAoY29udHJvbHM/LmRpcnR5IHx8IGNvbnRyb2xzPy50b3VjaGVkKSAmJiBzdWJtaXR0ZWRcIlxyXG4gIFtjbGFzcy5yaWdodF09XCJjb250cm9scz8uZXJyb3JzICE9IG51bGwgJiYgKGNvbnRyb2xzPy5kaXJ0eSB8fCBjb250cm9scz8udG91Y2hlZCkgJiYgc3VibWl0dGVkXCJcclxuICBbY2xhc3MucmVmcmVzaF09XCJjb250cm9scz8uZXJyb3JzICE9IG51bGwgJiYgKGNvbnRyb2xzPy5kaXJ0eSB8fCBjb250cm9scz8udG91Y2hlZCkgJiYgc3VibWl0dGVkICYmIHJlZnJlc2hcIlxyXG4gIFtjbGFzcy5zZWFyY2hdPVwiY29udHJvbHM/LmVycm9ycyAhPSBudWxsICYmIChjb250cm9scz8uZGlydHkgfHwgY29udHJvbHM/LnRvdWNoZWQpICYmIHN1Ym1pdHRlZCAmJiBzZWFyY2hcIj5cclxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmVcIlxyXG4gICAgICBbY2xhc3Mubmctc2VsZWN0LWNvbnRhaW5lci1mdWxsYnV0dG9uc109XCJzZWFyY2ggJiYgcmVmcmVzaCAmJiByZWRpcmVjdFwiXHJcbiAgICAgIFtjbGFzcy5hcHAtbmctc2VsZWMtY29udGFpbmVyXT1cInNlYXJjaCB8fCByZWZyZXNoXCJcclxuICAgICAgW2NsYXNzLnctMTAwXT1cIiFzZWFyY2ggJiYgIXJlZnJlc2hcIj5cclxuICAgICAgPG5nLXNlbGVjdFxyXG4gICAgICAgICNuZ1NlbGVjdFNpbXBsZVxyXG4gICAgICAgIFtjbGFzc109XCJzZWFyY2ggfHwgcmVmcmVzaCA/ICdhcHAtbmctc2VsZWN0JyA6ICd3LTEwMCdcIlxyXG4gICAgICAgIFtjbGFzcy5hY3Rpb25dPVwic2VhcmNoICYmIHJlZnJlc2hcIlxyXG4gICAgICAgIFtpdGVtc109XCJpdGVtcyB8IGFzeW5jXCJcclxuICAgICAgICBbKG5nTW9kZWwpXT1cIl92YWx1ZVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICAgIChjaGFuZ2UpPVwiZXZlbnRDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgKGJsdXIpPVwiZXZlbnRCbHVyKCRldmVudClcIlxyXG4gICAgICAgIChmb2N1cyk9XCJldmVudEZvY3VzKCRldmVudClcIlxyXG4gICAgICAgIChzZWFyY2gpPVwiZXZlbnRTZWFyY2goJGV2ZW50KVwiXHJcbiAgICAgICAgW21hcmtGaXJzdF09XCJtYXJrRmlyc3RcIlxyXG4gICAgICAgIFtjbGVhcmFibGVdPVwiIXJlcXVpcmVkICYmIGNsZWFyYWJsZVwiXHJcbiAgICAgICAgW3ZpcnR1YWxTY3JvbGxdPVwidmlydHVhbFNjcm9sbFwiXHJcbiAgICAgICAgW2lucHV0QXR0cnNdPVwieyBhdXRvY29tcGxldGU6IGF1dG9jb21wbGV0ZSB9XCJcclxuICAgICAgICBbY2xlYXJPbkJhY2tzcGFjZV09XCJjbGVhck9uQmFja3NwYWNlXCJcclxuICAgICAgICBbb3Blbk9uRW50ZXJdPVwib3Blbk9uRW50ZXJcIlxyXG4gICAgICAgIChrZXlkb3duLmRlbGV0ZSk9XCIhcmVxdWlyZWQgJiYgY2xlYXJhYmxlID8gY2xlYXIoKSA6ICcnXCJcclxuICAgICAgICAoY2xlYXIpPVwiY2xlYXIoKVwiXHJcbiAgICAgICAgKGtleXVwLkYxKT1cImYxS2V5VXAoKVwiXHJcbiAgICAgICAgW25vdEZvdW5kVGV4dF09XCJub3RGb3VuZFRleHRcIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWNjaW9uYXJcIlxyXG4gICAgICAgIChrZXl1cC5lbnRlcik9XCJlbnRlcktleVVwKClcIlxyXG4gICAgICAgIFtjbGVhckFsbFRleHRdPVwiY2xlYXJBbGxUZXh0XCJcclxuICAgICAgICBbc2VhcmNoYWJsZV09XCJzZWFyY2hhYmxlXCJcclxuICAgICAgICAoa2V5dXAuQXJyb3dMZWZ0KT1cImxlZnRLZXlVcCgpXCJcclxuICAgICAgICBbYXBwZW5kVG9dPVwiYXBwZW5kVG9cIlxyXG4gICAgICAgIFtsb2FkaW5nXT1cImxvYWRpbmdcIlxyXG4gICAgICAgIFtsb2FkaW5nVGV4dF09XCJsb2FkaW5nVGV4dFwiXHJcbiAgICAgICAgW2NsYXNzLm5nLXNlbGVjdC1pbnZhbGlkXT1cImNvbnRyb2xzPy5lcnJvcnMgIT0gbnVsbCAmJiAoY29udHJvbHM/LmRpcnR5IHx8IGNvbnRyb2xzPy50b3VjaGVkKSAmJiBzdWJtaXR0ZWRcIlxyXG4gICAgICAgIFtjbGFzcy5uZy1zZWxlY3QtdG91Y2hlZF09XCJjb250cm9scz8uZXJyb3JzICE9IG51bGwgJiYgKGNvbnRyb2xzPy5kaXJ0eSB8fCBjb250cm9scz8udG91Y2hlZCkgJiYgc3VibWl0dGVkXCJcclxuICAgICAgICBbY2xhc3MudXBwZXJDYXNlXT1cInVwcGVyQ2FzZVwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwic2V0TmdDbGFzc1wiPlxyXG4gICAgICAgIDwhLS0gT1BDSU9ORVMgREUgTElTVEFETyAtLT5cclxuICAgICAgICA8bmctdGVtcGxhdGUgbmctb3B0aW9uLXRtcCBsZXQtaXRlbT1cIml0ZW1cIiBsZXQtaW5kZXg9XCJpbmRleFwiPlxyXG4gICAgICAgICAgPHNwYW4gZGF0YS10b2dnbGU9XCJ0b29sdGlwXCIgdGl0bGU9XCJ7eyBpdGVtLmxhYmVsIH19XCI+e3sgaXRlbS5sYWJlbCB9fTwvc3Bhbj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L25nLXNlbGVjdD5cclxuXHJcbiAgICAgIDwhLS0gdG9vbHRpcC1tZXNzYWdlIGVzIGVsIGljb25vIGRlIGVycm9yIC0tPlxyXG4gICAgICA8dG9vbHRpcC1tZXNzYWdlXHJcbiAgICAgICAgW2xhYmVsXT1cImxhYmVsXCJcclxuICAgICAgICBbY29udHJvbHNdPVwiY29udHJvbHNcIlxyXG4gICAgICAgIFt2YWxpZGF0b3JNZXNzYWdlXT1cInZhbGlkYXRvck1lc3NhZ2VcIlxyXG4gICAgICAgIFtzdWJtaXR0ZWRdPVwic3VibWl0dGVkXCJcclxuICAgICAgICBbdG9vbHRpcE1lc3NhZ2VdPVwidG9vbHRpcE1lc3NhZ2VcIj48L3Rvb2x0aXAtbWVzc2FnZT5cclxuICAgIDwvZGl2PlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlYXJjaCAmJiByZWZyZXNoICYmIHJlZGlyZWN0OyBlbHNlIHRlbXBsYXRlQWN0aW9uXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhcHAtbmctc2VsZWN0LWFjdGlvbiBiZC1oaWdobGlnaFwiPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgICNidG5TZWFyY2hcclxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IHJlYWRvbmx5XCJcclxuICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zdWNjZXNzIHAtMCByb3VuZGVkLTAgaC0xMDBcIlxyXG4gICAgICAgICAgKGtleXVwLkFycm93TGVmdCk9XCJuZ1NlbGVjdFNpbXBsZS5mb2N1cygpXCJcclxuICAgICAgICAgIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogb3JhbmdlOyBib3JkZXItY29sb3I6IG9yYW5nZVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwib25TZWFyY2goKVwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1zZWFyY2ggdGV4dC13aGl0ZSBweC0xXCIgW21hdFRvb2x0aXBdPVwiJ0J1c2NhcidcIiBtYXRUb29sdGlwQ2xhc3M9XCJjdXN0b20tdG9vbHRpcFwiPjwvaT5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAqbmdJZj1cInJlZnJlc2hcIlxyXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcmVhZG9ubHkgfHwgaXNSZWZyZXNoRGlzYWJsZWRcIlxyXG4gICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWluZm8gcC0wIHJvdW5kZWQtMCBoLTEwMFwiXHJcbiAgICAgICAgICAoY2xpY2spPVwib25SZWZyZXNoKClcIj5cclxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtcmVmcmVzaCB0ZXh0LXdoaXRlIHB4LTFcIiBbbWF0VG9vbHRpcF09XCInUmVmcmVzY2FyJ1wiIG1hdFRvb2x0aXBDbGFzcz1cImJnLWluZm9cIj48L2k+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICBjbGFzcz1cImJ0biBidG4tc3VjY2VzcyBwLTAgcm91bmRlZC0wIGgtMTAwXCJcclxuICAgICAgICAgIChjbGljayk9XCJvcGVuRW5sYWNlKClcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IHJlYWRvbmx5IHx8IGlzUmVkaXJlY3REaXNhYmxlZFwiPlxyXG4gICAgICAgICAgPGVtIGNsYXNzPVwiZmEtcmVndWxhciBmYS1yZWN0YW5nbGUtbGlzdCB0ZXh0LXdoaXRlIHB4LTFcIiBbbWF0VG9vbHRpcF09XCJ0aXRsZVJlZGlyZWN0IVwiIG1hdFRvb2x0aXBDbGFzcz1cImJnLXN1Y2Nlc3NcIj4gPC9lbT5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgI3RlbXBsYXRlQWN0aW9uPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYXBwLW5nLXNlbGVjdC1idXR0b24gYmQtaGlnaGxpZ2h0XCIgKm5nSWY9XCJzZWFyY2hcIj5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAjYnRuU2VhcmNoXHJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCByZWFkb25seVwiXHJcbiAgICAgICAgICBjbGFzcz1cImJ0biBidG4tc3VjY2VzcyBwLTAgcm91bmRlZC0wIGgtMTAwXCJcclxuICAgICAgICAgIChrZXl1cC5BcnJvd0xlZnQpPVwibmdTZWxlY3RTaW1wbGUuZm9jdXMoKVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwib25TZWFyY2goKVwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1zZWFyY2ggdGV4dC13aGl0ZSBweC0xXCIgW21hdFRvb2x0aXBdPVwiJ0J1c2NhcidcIiBtYXRUb29sdGlwQ2xhc3M9XCJiZy1zdWNjZXNzXCI+PC9pPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImFwcC1uZy1zZWxlY3QtYnV0dG9uIGJkLWhpZ2hsaWdodFwiICpuZ0lmPVwicmVmcmVzaFwiPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgICpuZ0lmPVwicmVmcmVzaFwiXHJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCByZWFkb25seSB8fCBpc1JlZnJlc2hEaXNhYmxlZFwiXHJcbiAgICAgICAgICBjbGFzcz1cImJ0biBidG4taW5mbyBwLTAgcm91bmRlZC0wIGgtMTAwXCJcclxuICAgICAgICAgIChjbGljayk9XCJvblJlZnJlc2goKVwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1yZWZyZXNoIHRleHQtd2hpdGUgcHgtMVwiIFttYXRUb29sdGlwXT1cIidSZWZyZXNjYXInXCIgbWF0VG9vbHRpcENsYXNzPVwiYmctaW5mb1wiPjwvaT5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhcHAtbmctc2VsZWN0LWJ1dHRvbiBiZC1oaWdobGlnaHRcIiAqbmdJZj1cInJlZGlyZWN0XCI+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICBjbGFzcz1cImJ0biBidG4tc3VjY2VzcyBwLTAgcm91bmRlZC0wIGgtMTAwXCJcclxuICAgICAgICAgIHN0eWxlPVwicGFkZGluZy10b3A6IDNweDsgcGFkZGluZy1ib3R0b206IDdweDsgYm9yZGVyLXJhZGl1czogMHB4XCJcclxuICAgICAgICAgIChjbGljayk9XCJvcGVuRW5sYWNlKClcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IHJlYWRvbmx5IHx8IGlzUmVkaXJlY3REaXNhYmxlZFwiPlxyXG4gICAgICAgICAgPGVtIGNsYXNzPVwiZmEtcmVndWxhciBmYS1yZWN0YW5nbGUtbGlzdCB0ZXh0LXdoaXRlIHB4LTFcIiBbbWF0VG9vbHRpcF09XCJ0aXRsZVJlZGlyZWN0IVwiIG1hdFRvb2x0aXBDbGFzcz1cImJnLXN1Y2Nlc3NcIj4gPC9lbT5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlttb3JlLWJ1dHRvbnNdXCI+PC9uZy1jb250ZW50PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjwhLS0gZXJyb3ItbWVzc2FnZSBlcyBlbCBtYW5zYWplIHF1ZSBhcGFyZWNlIGFiYWpvIGRlbCBjb21wb25lbnRlIC0tPlxyXG48ZXJyb3ItbWVzc2FnZVxyXG4gIFtsYWJlbF09XCJsYWJlbFwiXHJcbiAgW2NvbnRyb2xzXT1cImNvbnRyb2xzXCJcclxuICBbdmFsaWRhdG9yTWVzc2FnZV09XCJ2YWxpZGF0b3JNZXNzYWdlXCJcclxuICBbc3VibWl0dGVkXT1cInN1Ym1pdHRlZFwiXHJcbiAgW3Rvb2x0aXBNZXNzYWdlXT1cInRvb2x0aXBNZXNzYWdlXCI+PC9lcnJvci1tZXNzYWdlPlxyXG4iXX0=
|
|
@@ -132,7 +132,7 @@ export class ContainerSharedComponent {
|
|
|
132
132
|
this.params.api?.stopEditing();
|
|
133
133
|
}
|
|
134
134
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ContainerSharedComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
135
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: ContainerSharedComponent, selector: "container-shared-component", viewQueries: [{ propertyName: "control", first: true, predicate: ["control"], descendants: true }], ngImport: i0, template: "<div [ngStyle]=\"{'width': width}\" class=\"position-relative row\">\r\n\t<div *ngIf=\"typeControl==='ng-select-simple'\" class=\"col-12\">\r\n\t\t<ng-select-simple\r\n\t\t\t[showLabel]=\"false\"\r\n\t\t\t[label]=\"label\"\r\n\t\t\t[required]=\"required\"\r\n\t\t\t[clearable]=\"clearable\"\r\n\t\t\t[formControl]=\"formControl\"\r\n\t\t\t[tooltipMessage]=\"true\"\r\n\t\t\t[validatorMessage]=\"false\"\r\n\t\t\t#control\r\n\t\t\t[items]=\"items\">\r\n\t\t</ng-select-simple>\r\n\t</div>\r\n\t<div *ngIf=\"typeControl==='input-text'\" class=\"col-12\">\r\n\t\t<input-text\r\n\t\t\t(blur)=\"onFocusOut()\"\r\n\t\t\t[showLabel]=\"false\"\r\n\t\t\t[label]=\"label\"\r\n\t\t\t[required]=\"required\"\r\n\t\t\t[formControl]=\"formControl\"\r\n\t\t\t[inputMask]=\"inputMask\"\r\n\t\t\t[textRight]=\"textRight\"\r\n\t\t\t[tooltipMessage]=\"true\"\r\n\t\t\t[validatorMessage]=\"false\"\r\n\t\t\t(keypress)=\"detec($event)\"\r\n\t\t\t#control>\r\n\t\t</input-text>\r\n\t</div>\r\n\t<div *ngIf=\"typeControl==='input-number'\" class=\"col-12\">\r\n\t\t<input-number\r\n\t\t\t(blur)=\"onFocusOut()\"\r\n\t\t\t[formatCero]=\"formatCero\"\r\n\t\t\t[maxLength]=\"maxLength\"\r\n\t\t\t[showLabel]=\"false\"\r\n\t\t\t[decimals]=\"decimals\"\r\n\t\t\t[label]=\"label\"\r\n\t\t\t[tooltipMessage]=\"true\"\r\n\t\t\t[validatorMessage]=\"false\"\r\n\t\t\t[required]=\"required\"\r\n\t\t\t[formControl]=\"formControl\"\r\n\t\t\t#control>\r\n\t\t</input-number>\r\n\t</div>\r\n\t<div *ngIf=\"typeControl==='date-picker'\" class=\"col-12\">\r\n\t\t<date-picker\r\n\t\t\t[showLabel]=\"false\"\r\n\t\t\t[label]=\"label\"\r\n\t\t\t[required]=\"required\"\r\n\t\t\t[formControl]=\"formControl\"\r\n\t\t\t[tooltipMessage]=\"true\"\r\n\t\t\t[validatorMessage]=\"false\"\r\n\t\t\t#control>\r\n\t\t</date-picker>\r\n\t</div>\r\n\t<div *ngIf=\"typeControl==='date-time-picker-editable'\" class=\"col-12\">\r\n\t\t<date-time-picker-editable\r\n\t\t\t[showLabel]=\"false\"\r\n\t\t\t[label]=\"label\"\r\n\t\t\t[required]=\"required\"\r\n\t\t\t[formControl]=\"formControl\"\r\n\t\t\t[tooltipMessage]=\"true\"\r\n\t\t\t[validatorMessage]=\"false\"\r\n\t\t\t#control>\r\n\t\t\t></date-time-picker-editable\r\n\t\t>\r\n\t</div>\r\n</div>\r\n", styles: [".ag-theme-balham .ag-cell.ag-cell-inline-editing{height:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.NgSelectSimpleComponent, selector: "ng-select-simple", inputs: ["showLabel", "label", "autocomplete", "next", "nextIsDisable", "back", "backIsDisable", "required", "disabled", "readonly", "validatorMessage", "tooltipMessage", "openWhenFocus", "searchBy", "markFirstItem", "markWhenHaveOneItem", "submitted", "setNgClass", "searchable", "validatorAlert", "upperCase", "templateLabel", "appendTo", "items", "loading", "loadingText", "clearAllText", "notFoundText", "markFirst", "clearable", "clearOnBackspace", "virtualScroll", "openOnEnter", "refresh", "search", "redirect", "searchParams", "labelInfo", "textLabelInfo", "urlRedirect", "titleRedirect", "isRedirectDisabled"], outputs: ["onNext", "onBack", "change", "blur", "onfocus", "onrefresh", "onsearch"] }, { kind: "component", type: i4.InputTextComponent, selector: "input-text", inputs: ["format", "type", "showLabel", "label", "btnEnable", "autocomplete", "bold", "inputMask", "showMaskTyped", "next", "nextIsDisable", "back", "backIsDisable", "required", "textRight", "disabled", "readonly", "validatorMessage", "tooltipMessage", "maxLength", "submitted", "validatorAlert", "setNgClass", "patterns", "placeholder", "labelInfo", "textLabelInfo", "controlCharClearReplace", "replaceRegex", "clearRegex"], outputs: ["onNext", "onBack", "change", "blur", "onfocus", "onchange", "onfocusout"] }, { kind: "component", type: i5.InputNumberComponent, selector: "input-number", inputs: ["showLabel", "label", "btnEnable", "autocomplete", "bold", "decimals", "formatCero", "maxLength", "next", "nextIsDisable", "back", "backIsDisable", "required", "disabled", "readonly", "validatorMessage", "tooltipMessage", "submitted", "labelInfo", "textLabelInfo", "validatorAlert", "setNgClass", "placeholder", "allowNegativeNumbers"], outputs: ["onNext", "onBack", "change", "onchange", "blur", "onfocus", "onfocusout"] }, { kind: "component", type: i6.DatePickerComponent, selector: "date-picker", inputs: ["showLabel", "label", "autocomplete", "next", "nextIsDisable", "back", "backIsDisable", "required", "noAutoCompleteNull", "readonly", "validatorMessage", "tooltipMessage", "validatorAlert", "submitted", "labelInfo", "textLabelInfo", "minDate", "maxDate", "invalid", "focusInitial", "disabled"], outputs: ["onNext", "onBack", "input", "onchange", "blur"] }, { kind: "component", type: i7.DateTimePickerEditableComponent, selector: "date-time-picker-editable", inputs: ["label", "showLabel", "readonly", "required", "validatorMessage", "tooltipMessage", "submitted", "format", "next", "nextIsDisable", "labelInfo", "textLabelInfo", "back", "backIsDisable", "openWhenFocus", "goNextWhenSelect", "clearable", "autoCompleteHours", "disabled"], outputs: ["onNext", "onBack"] }] }); }
|
|
135
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: ContainerSharedComponent, selector: "container-shared-component", viewQueries: [{ propertyName: "control", first: true, predicate: ["control"], descendants: true }], ngImport: i0, template: "<div [ngStyle]=\"{'width': width}\" class=\"position-relative row\">\r\n\t<div *ngIf=\"typeControl==='ng-select-simple'\" class=\"col-12\">\r\n\t\t<ng-select-simple\r\n\t\t\t[showLabel]=\"false\"\r\n\t\t\t[label]=\"label\"\r\n\t\t\t[required]=\"required\"\r\n\t\t\t[clearable]=\"clearable\"\r\n\t\t\t[formControl]=\"formControl\"\r\n\t\t\t[tooltipMessage]=\"true\"\r\n\t\t\t[validatorMessage]=\"false\"\r\n\t\t\t#control\r\n\t\t\t[items]=\"items\">\r\n\t\t</ng-select-simple>\r\n\t</div>\r\n\t<div *ngIf=\"typeControl==='input-text'\" class=\"col-12\">\r\n\t\t<input-text\r\n\t\t\t(blur)=\"onFocusOut()\"\r\n\t\t\t[showLabel]=\"false\"\r\n\t\t\t[label]=\"label\"\r\n\t\t\t[required]=\"required\"\r\n\t\t\t[formControl]=\"formControl\"\r\n\t\t\t[inputMask]=\"inputMask\"\r\n\t\t\t[textRight]=\"textRight\"\r\n\t\t\t[tooltipMessage]=\"true\"\r\n\t\t\t[validatorMessage]=\"false\"\r\n\t\t\t(keypress)=\"detec($event)\"\r\n\t\t\t#control>\r\n\t\t</input-text>\r\n\t</div>\r\n\t<div *ngIf=\"typeControl==='input-number'\" class=\"col-12\">\r\n\t\t<input-number\r\n\t\t\t(blur)=\"onFocusOut()\"\r\n\t\t\t[formatCero]=\"formatCero\"\r\n\t\t\t[maxLength]=\"maxLength\"\r\n\t\t\t[showLabel]=\"false\"\r\n\t\t\t[decimals]=\"decimals\"\r\n\t\t\t[label]=\"label\"\r\n\t\t\t[tooltipMessage]=\"true\"\r\n\t\t\t[validatorMessage]=\"false\"\r\n\t\t\t[required]=\"required\"\r\n\t\t\t[formControl]=\"formControl\"\r\n\t\t\t#control>\r\n\t\t</input-number>\r\n\t</div>\r\n\t<div *ngIf=\"typeControl==='date-picker'\" class=\"col-12\">\r\n\t\t<date-picker\r\n\t\t\t[showLabel]=\"false\"\r\n\t\t\t[label]=\"label\"\r\n\t\t\t[required]=\"required\"\r\n\t\t\t[formControl]=\"formControl\"\r\n\t\t\t[tooltipMessage]=\"true\"\r\n\t\t\t[validatorMessage]=\"false\"\r\n\t\t\t#control>\r\n\t\t</date-picker>\r\n\t</div>\r\n\t<div *ngIf=\"typeControl==='date-time-picker-editable'\" class=\"col-12\">\r\n\t\t<date-time-picker-editable\r\n\t\t\t[showLabel]=\"false\"\r\n\t\t\t[label]=\"label\"\r\n\t\t\t[required]=\"required\"\r\n\t\t\t[formControl]=\"formControl\"\r\n\t\t\t[tooltipMessage]=\"true\"\r\n\t\t\t[validatorMessage]=\"false\"\r\n\t\t\t#control>\r\n\t\t\t></date-time-picker-editable\r\n\t\t>\r\n\t</div>\r\n</div>\r\n", styles: [".ag-theme-balham .ag-cell.ag-cell-inline-editing{height:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.NgSelectSimpleComponent, selector: "ng-select-simple", inputs: ["showLabel", "label", "autocomplete", "next", "nextIsDisable", "back", "backIsDisable", "required", "disabled", "readonly", "validatorMessage", "tooltipMessage", "openWhenFocus", "searchBy", "markFirstItem", "markWhenHaveOneItem", "submitted", "setNgClass", "searchable", "validatorAlert", "upperCase", "templateLabel", "appendTo", "items", "loading", "loadingText", "clearAllText", "notFoundText", "markFirst", "clearable", "clearOnBackspace", "virtualScroll", "openOnEnter", "refresh", "isRefreshDisabled", "search", "redirect", "searchParams", "labelInfo", "textLabelInfo", "urlRedirect", "titleRedirect", "isRedirectDisabled"], outputs: ["onNext", "onBack", "change", "blur", "onfocus", "onrefresh", "onsearch"] }, { kind: "component", type: i4.InputTextComponent, selector: "input-text", inputs: ["format", "type", "showLabel", "label", "btnEnable", "autocomplete", "bold", "inputMask", "showMaskTyped", "next", "nextIsDisable", "back", "backIsDisable", "required", "textRight", "disabled", "readonly", "validatorMessage", "tooltipMessage", "maxLength", "submitted", "validatorAlert", "setNgClass", "patterns", "placeholder", "labelInfo", "textLabelInfo", "controlCharClearReplace", "replaceRegex", "clearRegex"], outputs: ["onNext", "onBack", "change", "blur", "onfocus", "onchange", "onfocusout"] }, { kind: "component", type: i5.InputNumberComponent, selector: "input-number", inputs: ["showLabel", "label", "btnEnable", "autocomplete", "bold", "decimals", "formatCero", "maxLength", "next", "nextIsDisable", "back", "backIsDisable", "required", "disabled", "readonly", "validatorMessage", "tooltipMessage", "submitted", "labelInfo", "textLabelInfo", "validatorAlert", "setNgClass", "placeholder", "allowNegativeNumbers"], outputs: ["onNext", "onBack", "change", "onchange", "blur", "onfocus", "onfocusout"] }, { kind: "component", type: i6.DatePickerComponent, selector: "date-picker", inputs: ["showLabel", "label", "autocomplete", "next", "nextIsDisable", "back", "backIsDisable", "required", "noAutoCompleteNull", "readonly", "validatorMessage", "tooltipMessage", "validatorAlert", "submitted", "labelInfo", "textLabelInfo", "minDate", "maxDate", "invalid", "focusInitial", "disabled"], outputs: ["onNext", "onBack", "input", "onchange", "blur"] }, { kind: "component", type: i7.DateTimePickerEditableComponent, selector: "date-time-picker-editable", inputs: ["label", "showLabel", "readonly", "required", "validatorMessage", "tooltipMessage", "submitted", "format", "next", "nextIsDisable", "labelInfo", "textLabelInfo", "back", "backIsDisable", "openWhenFocus", "goNextWhenSelect", "clearable", "autoCompleteHours", "disabled"], outputs: ["onNext", "onBack"] }] }); }
|
|
136
136
|
}
|
|
137
137
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ContainerSharedComponent, decorators: [{
|
|
138
138
|
type: Component,
|
package/esm2022/lib/sc-ag-grid/cell-render/sc-cell-render-select/sc-cell-render-select.component.mjs
CHANGED
|
@@ -49,7 +49,7 @@ export class ScCellRenderSelectComponent {
|
|
|
49
49
|
[clearable]="false"
|
|
50
50
|
>
|
|
51
51
|
</ng-select-simple>
|
|
52
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i2.NgSelectSimpleComponent, selector: "ng-select-simple", inputs: ["showLabel", "label", "autocomplete", "next", "nextIsDisable", "back", "backIsDisable", "required", "disabled", "readonly", "validatorMessage", "tooltipMessage", "openWhenFocus", "searchBy", "markFirstItem", "markWhenHaveOneItem", "submitted", "setNgClass", "searchable", "validatorAlert", "upperCase", "templateLabel", "appendTo", "items", "loading", "loadingText", "clearAllText", "notFoundText", "markFirst", "clearable", "clearOnBackspace", "virtualScroll", "openOnEnter", "refresh", "search", "redirect", "searchParams", "labelInfo", "textLabelInfo", "urlRedirect", "titleRedirect", "isRedirectDisabled"], outputs: ["onNext", "onBack", "change", "blur", "onfocus", "onrefresh", "onsearch"] }] }); }
|
|
52
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i2.NgSelectSimpleComponent, selector: "ng-select-simple", inputs: ["showLabel", "label", "autocomplete", "next", "nextIsDisable", "back", "backIsDisable", "required", "disabled", "readonly", "validatorMessage", "tooltipMessage", "openWhenFocus", "searchBy", "markFirstItem", "markWhenHaveOneItem", "submitted", "setNgClass", "searchable", "validatorAlert", "upperCase", "templateLabel", "appendTo", "items", "loading", "loadingText", "clearAllText", "notFoundText", "markFirst", "clearable", "clearOnBackspace", "virtualScroll", "openOnEnter", "refresh", "isRefreshDisabled", "search", "redirect", "searchParams", "labelInfo", "textLabelInfo", "urlRedirect", "titleRedirect", "isRedirectDisabled"], outputs: ["onNext", "onBack", "change", "blur", "onfocus", "onrefresh", "onsearch"] }] }); }
|
|
53
53
|
}
|
|
54
54
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ScCellRenderSelectComponent, decorators: [{
|
|
55
55
|
type: Component,
|
|
@@ -45,11 +45,11 @@ export class ScWizardComponent extends CdkStepper {
|
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ScWizardComponent, deps: [{ token: i1.Directionality, optional: true }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
48
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: ScWizardComponent, selector: "sc-wizard", inputs: { hasAutoFillSteps: "hasAutoFillSteps", hasSkeleton: "hasSkeleton", showArrows: "showArrows", subWizard: "subWizard", baseSubWizard: "baseSubWizard", showExpanded: "showExpanded", stepNavigationHandler: "stepNavigationHandler" }, outputs: { clickStepEmit: "clickStepEmit" }, providers: [{ provide: CdkStepper, useExisting: ScWizardComponent }], viewQueries: [{ propertyName: "_scWizardContainer", first: true, predicate: ["scWizardContainer"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div \r\n [class.sc-wizard-horizontal]=\"this.orientation === 'horizontal'\"\r\n [class.sc-wizard-vertical]=\"this.orientation === 'vertical'\" \r\n [class.sc-wizard-vertical-nav]=\"this.orientation === 'vertical' && isExpanded\">\r\n <div \r\n [class]=\"'sc-wizard-' + orientation + (isExpanded ? '-nav' : '') + '-steps-container'\"\r\n [ngStyle]=\"{ display: 'grid', 'margin-right': '0px' }\">\r\n <!--PREVIOUS STEP BUTTON-->\r\n <button\r\n *ngIf=\"showArrows\"\r\n [disabled]=\"this.selectedIndex === 0\"\r\n [class.sc-wizard-skeleton]=\"hasSkeleton\"\r\n [class]=\"'sc-wizard-' + orientation + '-button prev'\"\r\n type=\"button\"\r\n mat-icon-button\r\n cdkStepperPrevious>\r\n <mat-icon>{{ orientation === \"horizontal\" ? \"chevron_left\" : \"expand_less\" }}</mat-icon>\r\n </button>\r\n\r\n <ng-container *ngIf=\"this.orientation === 'horizontal'\">\r\n <ng-container *ngIf=\"hasAutoFillSteps\">\r\n <div class=\"sc-wizard-horizontal-steps sc-wizard-horizontal-steps-fill\">\r\n <ng-container [ngTemplateOutlet]=\"templateSteps\"></ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!hasAutoFillSteps\">\r\n <div class=\"sc-wizard-horizontal-steps\">\r\n <div class=\"sc-wizard-horizontal-steps-wrapper\" [style.width]=\"24 * steps.length + 'rem'\">\r\n <ng-container [ngTemplateOutlet]=\"templateSteps\"></ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"this.orientation === 'vertical'\">\r\n <div style=\"display: flex; justify-content: space-between;\">\r\n <div class=\"sc-wizard-steps sc-wizard-vertical-steps\">\r\n <ng-container [ngTemplateOutlet]=\"templateSteps\"></ng-container>\r\n </div>\r\n <div class=\"sc-wizard-expand-icon-container\">\r\n <ng-container *ngIf=\"showExpanded\">\r\n <em class=\"z-3 fa\" [ngClass]=\"{ 'fa-chevron-right': isExpanded, 'fa-chevron-left': !isExpanded }\" style=\"cursor: pointer; font-size: 18px\" (click)=\"this.isExpanded = !this.isExpanded\"> </em>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!--NEXT STEP BUTTON-->\r\n <button\r\n *ngIf=\"showArrows\"\r\n [disabled]=\"this.steps.length - 1 === this.selectedIndex\"\r\n [class.sc-wizard-skeleton]=\"hasSkeleton\"\r\n [class]=\"'sc-wizard-' + orientation + '-button next'\"\r\n type=\"button\"\r\n mat-icon-button\r\n cdkStepperNext>\r\n <mat-icon>{{ orientation === \"horizontal\" ? \"navigate_next\" : \"expand_more\" }}</mat-icon>\r\n </button>\r\n </div>\r\n\r\n <div #scWizardContainer [class.sc-wizard-skeleton]=\"hasSkeleton\" [class]=\"'sc-wizard-' + orientation + '-content'\">\r\n <ng-container [ngTemplateOutlet]=\"selected ? selected.content : null\"></ng-container>\r\n </div>\r\n</div>\r\n\r\n<ng-template #templateSteps>\r\n\t<div\r\n\t\t*ngFor=\"let step of steps; let i = index\"\r\n\t\t[class.invisible]=\"step.content.elementRef.nativeElement.parentNode.className === 'invisible'\"\r\n\t\t[tabIndex]=\"selectedIndex === i ? 1 : -1\"\r\n\t\t[attr.data-position]=\"i\"\r\n\t\t[class.sc-wizard-steps-item-active]=\"selectedIndex === i && !step.hasError\"\r\n\t\t[class.sc-wizard-steps-item-error]=\"selectedIndex === i && step.hasError\"\r\n\t\t[class.sc-wizard-steps-item-disable]=\"!step.editable || convertLabelToType(step.label)!.disabled\"\r\n\t\tclass=\"sc-wizard-steps-item\"\r\n\t\t[class.sc-wizard-skeleton]=\"hasSkeleton\"\r\n\t\t(click)=\"goTo(i); clickStepEmit.emit(i)\">\r\n\t\t<span\r\n [matTooltipClass]=\"showExpanded && isExpanded && step.hasError ? 'custom-mat-tooltip-error' : 'custom-mat-tooltip-active'\"\r\n [matTooltip]=\"isExpanded ? convertLabelToType(step.label)!.title : ''\"\r\n\t\t\tclass=\"sc-wizard-steps-item-number d-flex justify-content-center align-items-center\"\r\n\t\t\t[class.sc-wizard-steps-item-number-active]=\"selectedIndex === i\"\r\n\t\t\t[class.sc-wizard-steps-item-number-error]=\"step.hasError\">\r\n <ng-container *ngIf=\"!step.hasError && convertLabelToType(step.label).icon\">\r\n\t\t\t\t<em [class]=\"convertLabelToType(step.label).icon\"></em>\r\n\t\t\t</ng-container>\r\n <ng-container *ngIf=\"!step.hasError && !convertLabelToType(step.label).icon\">\r\n\t\t\t\t{{ subWizard ? baseSubWizard + '.' + (i + 1) : i + 1 }}\r\n\t\t\t</ng-container>\r\n\t\t\t<ng-container *ngIf=\"step.hasError\">\r\n\t\t\t\t<em class=\"fa fa-exclamation-triangle\"></em>\r\n\t\t\t</ng-container>\r\n\t\t</span>\r\n\r\n\t\t<div\r\n *ngIf=\"!isExpanded\"\r\n\t\t\tclass=\"sc-wizard-steps-item-label\"\r\n\t\t\t[class.sc-wizard-steps-item-label-error]=\"step.hasError\">\r\n\t\t\t<p\r\n\t\t\t\tclass=\"sc-wizard-steps-item-label-title\"\r\n\t\t\t\t[class.sc-wizard-steps-item-label-title-active]=\"selectedIndex === i\"\r\n\t\t\t\t[class.sc-wizard-steps-item-label-title-error]=\"step.hasError\">\r\n\t\t\t\t{{ convertLabelToType(step.label).title }}\r\n\t\t\t</p>\r\n\t\t\t<span\r\n\t\t\t\tclass=\"sc-wizard-steps-item-label-subtitle\"\r\n\t\t\t\t[ngStyle]=\"selectedIndex === i ? convertLabelToType(step.label).subtitleStyleActive! : null\"\r\n\t\t\t\t[ngClass]=\"selectedIndex === i ? convertLabelToType(step.label).subtitleClassActive! : []\"\r\n\t\t\t\t[class.sc-wizard-steps-item-label-subtitle-error]=\"step.hasError\">\r\n\t\t\t\t<ng-container *ngIf=\"!step.hasError && convertLabelToType(step.label)?.subtitle\">\r\n\t\t\t\t\t{{ convertLabelToType(step.label).subtitle }}\r\n\t\t\t\t</ng-container>\r\n\t\t\t\t<ng-container *ngIf=\"step.hasError\">\r\n\t\t\t\t\t{{ step.errorMessage }}\r\n\t\t\t\t</ng-container>\r\n\t\t\t</span>\r\n\t\t</div>\r\n\t</div>\r\n</ng-template>", styles: [":host{font-family:Soho Gothic Pro,Arial,Helvetica,sans-serif;background-color:#fff;overflow:hidden;height:100%;width:100%;display:block}.sc-wizard-horizontal{display:grid;height:100%;grid-template-rows:auto 1fr}.sc-wizard-horizontal-steps{width:100%;overflow:auto hidden}.sc-wizard-horizontal-steps-fill,.sc-wizard-horizontal-steps-wrapper{display:flex;gap:.5rem}.sc-wizard-horizontal-steps-fill{overflow:hidden}.sc-wizard-horizontal-steps-fill .sc-wizard-steps-item{flex:1}.sc-wizard-horizontal-steps .sc-wizard-steps-item{width:24rem;margin-bottom:0}.sc-wizard-vertical{height:100%;display:flex}.sc-wizard-vertical-steps{overflow:hidden auto;margin-right:1rem;width:100%}.sc-wizard-vertical-steps-container{min-width:280px;width:20%}.sc-wizard-vertical-nav{height:100%;display:flex}.sc-wizard-vertical-nav-steps{overflow:hidden auto;margin-right:1rem}.sc-wizard-vertical-nav-steps-container{min-width:125px;width:6%;transition:.1s all;align-content:start}::ng-deep .custom-mat-tooltip-error{--mdc-plain-tooltip-container-color: #fd397a}::ng-deep .custom-mat-tooltip-active{--mdc-plain-tooltip-container-color: #646c9a}.sc-wizard-expand-icon-container{display:flex;align-items:center;height:100%;justify-content:flex-end;padding-right:1rem}.sc-wizard-steps,.sc-wizard-horizontal-content,.sc-wizard-vertical-content{height:100%;scroll-behavior:smooth}.sc-wizard-horizontal-steps-container,.sc-wizard-vertical-steps-container{height:100%;display:grid;border-radius:.8rem}.sc-wizard-horizontal-steps-container{grid-template-columns:auto 1fr auto}.sc-wizard-vertical-steps-container{grid-template-rows:auto 1fr auto}.sc-wizard-steps-item{display:flex;align-items:center;cursor:pointer;padding:.8rem 1rem;border-radius:.8rem;margin-bottom:.4em;transition:.3s all}.sc-wizard-steps-item:last-child{margin-bottom:0}.sc-wizard-steps-item-disable{pointer-events:none;opacity:.5}.sc-wizard-steps-item-active{position:relative;background-color:#646c9a21}.sc-wizard-steps-item-error{background-color:#fd397a21}.sc-wizard-steps-item-number{border-radius:8px;background-color:#f3f3f7;color:#646c9a;font-size:1.3rem;font-weight:700;margin-right:1rem;height:3.2rem;width:3rem;text-align:center;position:relative}.sc-wizard-steps-item-number em,.sc-wizard-steps-item-number span{position:absolute;z-index:1;left:50%;top:50%;transform:translate(-50%,-50%)}.sc-wizard-steps-item-number-active{color:#fff;background-color:#646c9a}.sc-wizard-steps-item-number-error{color:#fff;background-color:#fd397a}.sc-wizard-steps-item-label-title{margin:0;font-weight:100;color:#646c9a;font-size:16px}.sc-wizard-steps-item-label-title-active{font-weight:700}.sc-wizard-steps-item-label-title-error{color:#fd397a}.sc-wizard-steps-item-label-subtitle{color:gray;font-size:11px}.sc-wizard-steps-item-label-subtitle-error{color:#fd397a}.sc-wizard-horizontal-content,.sc-wizard-vertical-content{background-color:#fff;overflow:hidden auto}.sc-wizard-horizontal-content{padding:1rem 0;width:100%;margin-top:.4rem}.sc-wizard-vertical-content{overflow:hidden auto;padding:1rem;width:80%}.sc-wizard-content{padding:1rem}@media screen and (min-height: 750px){.sc-wizard-content{height:calc(100vh - 333px)}}.sc-wizard-horizontal-button,.sc-wizard-vertical-button{margin:auto;transition:all .3s;height:3rem;width:3.1rem}.sc-wizard-vertical-button.prev{margin-bottom:1rem}.sc-wizard-vertical-button.next{margin-top:1rem}.sc-wizard-horizontal-button.prev{margin-right:1rem}.sc-wizard-horizontal-button.next{margin-left:1rem}.sc-wizard-skeleton{overflow:hidden;position:relative}.sc-wizard-skeleton:after{content:\"\";width:100%;height:100%;background:#dedfe1;background:#e6e6e6;background-image:linear-gradient(to right,#e6e6e6,#f2f3f5 20%,#e6e6e6 40% 100%);background-repeat:no-repeat;position:absolute;left:0;top:0;z-index:5;border-radius:.8rem;animation:loading 1.1s infinite linear}@keyframes loading{0%{background-position:-100px}to{background-position:200px}}.visible{visibility:visible}.invisible{visibility:hidden}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3.CdkStepperNext, selector: "button[cdkStepperNext]", inputs: ["type"] }, { kind: "directive", type: i3.CdkStepperPrevious, selector: "button[cdkStepperPrevious]", inputs: ["type"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
48
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: ScWizardComponent, selector: "sc-wizard", inputs: { hasAutoFillSteps: "hasAutoFillSteps", hasSkeleton: "hasSkeleton", showArrows: "showArrows", subWizard: "subWizard", baseSubWizard: "baseSubWizard", showExpanded: "showExpanded", stepNavigationHandler: "stepNavigationHandler" }, outputs: { clickStepEmit: "clickStepEmit" }, providers: [{ provide: CdkStepper, useExisting: ScWizardComponent }], viewQueries: [{ propertyName: "_scWizardContainer", first: true, predicate: ["scWizardContainer"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div \r\n [class.sc-wizard-horizontal]=\"this.orientation === 'horizontal'\"\r\n [class.sc-wizard-vertical]=\"this.orientation === 'vertical'\" \r\n [class.sc-wizard-vertical-nav]=\"this.orientation === 'vertical' && isExpanded\">\r\n <div \r\n [class]=\"'sc-wizard-' + orientation + (isExpanded ? '-nav' : '') + '-steps-container'\"\r\n [ngStyle]=\"{ display: 'grid', 'margin-right': '0px' }\">\r\n <!--PREVIOUS STEP BUTTON-->\r\n <button\r\n *ngIf=\"showArrows\"\r\n [disabled]=\"this.selectedIndex === 0\"\r\n [class.sc-wizard-skeleton]=\"hasSkeleton\"\r\n [class]=\"'sc-wizard-' + orientation + '-button prev'\"\r\n type=\"button\"\r\n mat-icon-button\r\n cdkStepperPrevious>\r\n <mat-icon>{{ orientation === \"horizontal\" ? \"chevron_left\" : \"expand_less\" }}</mat-icon>\r\n </button>\r\n\r\n <ng-container *ngIf=\"this.orientation === 'horizontal'\">\r\n <ng-container *ngIf=\"hasAutoFillSteps\">\r\n <div class=\"sc-wizard-horizontal-steps sc-wizard-horizontal-steps-fill\">\r\n <ng-container [ngTemplateOutlet]=\"templateSteps\"></ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!hasAutoFillSteps\">\r\n <div class=\"sc-wizard-horizontal-steps\">\r\n <div class=\"sc-wizard-horizontal-steps-wrapper\" [style.width]=\"24 * steps.length + 'rem'\">\r\n <ng-container [ngTemplateOutlet]=\"templateSteps\"></ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"this.orientation === 'vertical'\">\r\n <div style=\"display: flex; justify-content: space-between;\">\r\n <div class=\"sc-wizard-steps sc-wizard-vertical-steps\">\r\n <ng-container [ngTemplateOutlet]=\"templateSteps\"></ng-container>\r\n </div>\r\n <div class=\"sc-wizard-expand-icon-container\">\r\n <ng-container *ngIf=\"showExpanded\">\r\n <em class=\"z-3 fa\" [ngClass]=\"{ 'fa-chevron-right': isExpanded, 'fa-chevron-left': !isExpanded }\" style=\"cursor: pointer; font-size: 18px\" (click)=\"this.isExpanded = !this.isExpanded\"> </em>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!--NEXT STEP BUTTON-->\r\n <button\r\n *ngIf=\"showArrows\"\r\n [disabled]=\"this.steps.length - 1 === this.selectedIndex\"\r\n [class.sc-wizard-skeleton]=\"hasSkeleton\"\r\n [class]=\"'sc-wizard-' + orientation + '-button next'\"\r\n type=\"button\"\r\n mat-icon-button\r\n cdkStepperNext>\r\n <mat-icon>{{ orientation === \"horizontal\" ? \"navigate_next\" : \"expand_more\" }}</mat-icon>\r\n </button>\r\n </div>\r\n\r\n <div #scWizardContainer [class.sc-wizard-skeleton]=\"hasSkeleton\" [class]=\"'sc-wizard-' + orientation + '-content'\">\r\n <ng-container [ngTemplateOutlet]=\"selected ? selected.content : null\"></ng-container>\r\n </div>\r\n</div>\r\n\r\n<ng-template #templateSteps>\r\n\t<div\r\n\t\t*ngFor=\"let step of steps; let i = index\"\r\n\t\t[class.invisible]=\"step.content.elementRef.nativeElement.parentNode.className === 'invisible'\"\r\n\t\t[tabIndex]=\"selectedIndex === i ? 1 : -1\"\r\n\t\t[attr.data-position]=\"i\"\r\n\t\t[class.sc-wizard-steps-item-active]=\"selectedIndex === i && !step.hasError\"\r\n\t\t[class.sc-wizard-steps-item-error]=\"selectedIndex === i && step.hasError\"\r\n\t\t[class.sc-wizard-steps-item-disable]=\"!step.editable || convertLabelToType(step.label)!.disabled\"\r\n\t\tclass=\"sc-wizard-steps-item\"\r\n\t\t[class.sc-wizard-skeleton]=\"hasSkeleton\"\r\n\t\t(click)=\"goTo(i); clickStepEmit.emit(i)\">\r\n\t\t<span\r\n [matTooltipClass]=\"showExpanded && isExpanded && step.hasError ? 'custom-mat-tooltip-error' : 'custom-mat-tooltip-active'\"\r\n [matTooltip]=\"isExpanded ? convertLabelToType(step.label)!.title : ''\"\r\n\t\t\tclass=\"sc-wizard-steps-item-number d-flex justify-content-center align-items-center\"\r\n\t\t\t[class.sc-wizard-steps-item-number-active]=\"selectedIndex === i\"\r\n\t\t\t[class.sc-wizard-steps-item-number-error]=\"step.hasError\">\r\n <ng-container *ngIf=\"!step.hasError && convertLabelToType(step.label).icon\">\r\n\t\t\t\t<em [class]=\"convertLabelToType(step.label).icon\"></em>\r\n\t\t\t</ng-container>\r\n <ng-container *ngIf=\"!step.hasError && !convertLabelToType(step.label).icon\">\r\n\t\t\t\t{{ subWizard ? baseSubWizard + '.' + (i + 1) : i + 1 }}\r\n\t\t\t</ng-container>\r\n\t\t\t<ng-container *ngIf=\"step.hasError\">\r\n\t\t\t\t<em class=\"fa fa-exclamation-triangle\"></em>\r\n\t\t\t</ng-container>\r\n\t\t</span>\r\n\r\n\t\t<div\r\n *ngIf=\"!isExpanded\"\r\n\t\t\tclass=\"sc-wizard-steps-item-label\"\r\n\t\t\t[class.sc-wizard-steps-item-label-error]=\"step.hasError\">\r\n\t\t\t<p\r\n\t\t\t\tclass=\"sc-wizard-steps-item-label-title\"\r\n\t\t\t\t[class.sc-wizard-steps-item-label-title-active]=\"selectedIndex === i\"\r\n\t\t\t\t[class.sc-wizard-steps-item-label-title-error]=\"step.hasError\">\r\n\t\t\t\t{{ convertLabelToType(step.label).title }}\r\n\t\t\t</p>\r\n\t\t\t<span\r\n\t\t\t\tclass=\"sc-wizard-steps-item-label-subtitle\"\r\n\t\t\t\t[ngStyle]=\"selectedIndex === i ? convertLabelToType(step.label).subtitleStyleActive! : null\"\r\n\t\t\t\t[ngClass]=\"selectedIndex === i ? convertLabelToType(step.label).subtitleClassActive! : []\"\r\n\t\t\t\t[class.sc-wizard-steps-item-label-subtitle-error]=\"step.hasError\">\r\n\t\t\t\t<ng-container *ngIf=\"!step.hasError && convertLabelToType(step.label)?.subtitle\">\r\n\t\t\t\t\t{{ convertLabelToType(step.label).subtitle }}\r\n\t\t\t\t</ng-container>\r\n\t\t\t\t<ng-container *ngIf=\"step.hasError\">\r\n\t\t\t\t\t{{ step.errorMessage }}\r\n\t\t\t\t</ng-container>\r\n\t\t\t</span>\r\n\t\t</div>\r\n\t</div>\r\n</ng-template>", styles: [":host{font-family:Soho Gothic Pro,Arial,Helvetica,sans-serif;background-color:#fff;overflow:hidden;height:100%;width:100%;display:block}.sc-wizard-horizontal{display:grid;height:100%;grid-template-rows:auto 1fr}.sc-wizard-horizontal-steps{width:100%;overflow:auto hidden}.sc-wizard-horizontal-steps-fill,.sc-wizard-horizontal-steps-wrapper{display:flex;gap:.5rem}.sc-wizard-horizontal-steps-fill{overflow:hidden}.sc-wizard-horizontal-steps-fill .sc-wizard-steps-item{flex:1}.sc-wizard-horizontal-steps .sc-wizard-steps-item{width:24rem;margin-bottom:0}.sc-wizard-vertical{height:100%;display:flex}.sc-wizard-vertical-steps{overflow:hidden auto;margin-right:1rem;width:100%}.sc-wizard-vertical-steps-container{min-width:280px;width:20%}.sc-wizard-vertical-nav{height:100%;display:flex}.sc-wizard-vertical-nav-steps{overflow:hidden auto;margin-right:1rem}.sc-wizard-vertical-nav-steps-container{min-width:125px;width:6%;transition:.1s all;align-content:start}::ng-deep .custom-mat-tooltip-error{--mdc-plain-tooltip-container-color: #fd397a}::ng-deep .custom-mat-tooltip-active{--mdc-plain-tooltip-container-color: #646c9a}.sc-wizard-expand-icon-container{display:flex;align-items:center;height:100%;justify-content:flex-end;padding-right:1rem}.sc-wizard-steps,.sc-wizard-horizontal-content,.sc-wizard-vertical-content{height:100%;scroll-behavior:smooth}.sc-wizard-horizontal-steps-container,.sc-wizard-vertical-steps-container{height:100%;display:grid;border-radius:.8rem}.sc-wizard-horizontal-steps-container{grid-template-columns:auto 1fr auto}.sc-wizard-vertical-steps-container{grid-template-rows:auto 1fr auto}.sc-wizard-steps-item{display:flex;align-items:center;cursor:pointer;padding:.8rem 1rem;border-radius:.8rem;margin-bottom:.4em;transition:.3s all}.sc-wizard-steps-item:last-child{margin-bottom:0}.sc-wizard-steps-item-disable{pointer-events:none;opacity:.5}.sc-wizard-steps-item-active{position:relative;background-color:#646c9a21}.sc-wizard-steps-item-error{background-color:#fd397a21}.sc-wizard-steps-item-number{border-radius:8px;background-color:#f3f3f7;color:#646c9a;font-size:1.3rem;font-weight:700;margin-right:1rem;height:3.2rem;width:3rem;text-align:center;position:relative}.sc-wizard-steps-item-number em,.sc-wizard-steps-item-number span{position:absolute;z-index:1;left:50%;top:50%;transform:translate(-50%,-50%)}.sc-wizard-steps-item-number-active{color:#fff;background-color:#646c9a}.sc-wizard-steps-item-number-error{color:#fff;background-color:#fd397a}.sc-wizard-steps-item-label-title{margin:0;font-weight:100;color:#646c9a;font-size:16px}.sc-wizard-steps-item-label-title-active{font-weight:700}.sc-wizard-steps-item-label-title-error{color:#fd397a}.sc-wizard-steps-item-label-subtitle{color:gray;font-size:11px}.sc-wizard-steps-item-label-subtitle-error{color:#fd397a}.sc-wizard-horizontal-content,.sc-wizard-vertical-content{background-color:#fff;overflow:hidden auto}.sc-wizard-horizontal-content{padding:1rem 0;width:100%;margin-top:.4rem}.sc-wizard-vertical-content{overflow:hidden auto;padding:1rem;width:100%}.sc-wizard-content{padding:1rem}@media screen and (min-height: 750px){.sc-wizard-content{height:calc(100vh - 333px)}}.sc-wizard-horizontal-button,.sc-wizard-vertical-button{margin:auto;transition:all .3s;height:3rem;width:3.1rem}.sc-wizard-vertical-button.prev{margin-bottom:1rem}.sc-wizard-vertical-button.next{margin-top:1rem}.sc-wizard-horizontal-button.prev{margin-right:1rem}.sc-wizard-horizontal-button.next{margin-left:1rem}.sc-wizard-skeleton{overflow:hidden;position:relative}.sc-wizard-skeleton:after{content:\"\";width:100%;height:100%;background:#dedfe1;background:#e6e6e6;background-image:linear-gradient(to right,#e6e6e6,#f2f3f5 20%,#e6e6e6 40% 100%);background-repeat:no-repeat;position:absolute;left:0;top:0;z-index:5;border-radius:.8rem;animation:loading 1.1s infinite linear}@keyframes loading{0%{background-position:-100px}to{background-position:200px}}.visible{visibility:visible}.invisible{visibility:hidden}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3.CdkStepperNext, selector: "button[cdkStepperNext]", inputs: ["type"] }, { kind: "directive", type: i3.CdkStepperPrevious, selector: "button[cdkStepperPrevious]", inputs: ["type"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
49
49
|
}
|
|
50
50
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ScWizardComponent, decorators: [{
|
|
51
51
|
type: Component,
|
|
52
|
-
args: [{ selector: "sc-wizard", providers: [{ provide: CdkStepper, useExisting: ScWizardComponent }], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div \r\n [class.sc-wizard-horizontal]=\"this.orientation === 'horizontal'\"\r\n [class.sc-wizard-vertical]=\"this.orientation === 'vertical'\" \r\n [class.sc-wizard-vertical-nav]=\"this.orientation === 'vertical' && isExpanded\">\r\n <div \r\n [class]=\"'sc-wizard-' + orientation + (isExpanded ? '-nav' : '') + '-steps-container'\"\r\n [ngStyle]=\"{ display: 'grid', 'margin-right': '0px' }\">\r\n <!--PREVIOUS STEP BUTTON-->\r\n <button\r\n *ngIf=\"showArrows\"\r\n [disabled]=\"this.selectedIndex === 0\"\r\n [class.sc-wizard-skeleton]=\"hasSkeleton\"\r\n [class]=\"'sc-wizard-' + orientation + '-button prev'\"\r\n type=\"button\"\r\n mat-icon-button\r\n cdkStepperPrevious>\r\n <mat-icon>{{ orientation === \"horizontal\" ? \"chevron_left\" : \"expand_less\" }}</mat-icon>\r\n </button>\r\n\r\n <ng-container *ngIf=\"this.orientation === 'horizontal'\">\r\n <ng-container *ngIf=\"hasAutoFillSteps\">\r\n <div class=\"sc-wizard-horizontal-steps sc-wizard-horizontal-steps-fill\">\r\n <ng-container [ngTemplateOutlet]=\"templateSteps\"></ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!hasAutoFillSteps\">\r\n <div class=\"sc-wizard-horizontal-steps\">\r\n <div class=\"sc-wizard-horizontal-steps-wrapper\" [style.width]=\"24 * steps.length + 'rem'\">\r\n <ng-container [ngTemplateOutlet]=\"templateSteps\"></ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"this.orientation === 'vertical'\">\r\n <div style=\"display: flex; justify-content: space-between;\">\r\n <div class=\"sc-wizard-steps sc-wizard-vertical-steps\">\r\n <ng-container [ngTemplateOutlet]=\"templateSteps\"></ng-container>\r\n </div>\r\n <div class=\"sc-wizard-expand-icon-container\">\r\n <ng-container *ngIf=\"showExpanded\">\r\n <em class=\"z-3 fa\" [ngClass]=\"{ 'fa-chevron-right': isExpanded, 'fa-chevron-left': !isExpanded }\" style=\"cursor: pointer; font-size: 18px\" (click)=\"this.isExpanded = !this.isExpanded\"> </em>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!--NEXT STEP BUTTON-->\r\n <button\r\n *ngIf=\"showArrows\"\r\n [disabled]=\"this.steps.length - 1 === this.selectedIndex\"\r\n [class.sc-wizard-skeleton]=\"hasSkeleton\"\r\n [class]=\"'sc-wizard-' + orientation + '-button next'\"\r\n type=\"button\"\r\n mat-icon-button\r\n cdkStepperNext>\r\n <mat-icon>{{ orientation === \"horizontal\" ? \"navigate_next\" : \"expand_more\" }}</mat-icon>\r\n </button>\r\n </div>\r\n\r\n <div #scWizardContainer [class.sc-wizard-skeleton]=\"hasSkeleton\" [class]=\"'sc-wizard-' + orientation + '-content'\">\r\n <ng-container [ngTemplateOutlet]=\"selected ? selected.content : null\"></ng-container>\r\n </div>\r\n</div>\r\n\r\n<ng-template #templateSteps>\r\n\t<div\r\n\t\t*ngFor=\"let step of steps; let i = index\"\r\n\t\t[class.invisible]=\"step.content.elementRef.nativeElement.parentNode.className === 'invisible'\"\r\n\t\t[tabIndex]=\"selectedIndex === i ? 1 : -1\"\r\n\t\t[attr.data-position]=\"i\"\r\n\t\t[class.sc-wizard-steps-item-active]=\"selectedIndex === i && !step.hasError\"\r\n\t\t[class.sc-wizard-steps-item-error]=\"selectedIndex === i && step.hasError\"\r\n\t\t[class.sc-wizard-steps-item-disable]=\"!step.editable || convertLabelToType(step.label)!.disabled\"\r\n\t\tclass=\"sc-wizard-steps-item\"\r\n\t\t[class.sc-wizard-skeleton]=\"hasSkeleton\"\r\n\t\t(click)=\"goTo(i); clickStepEmit.emit(i)\">\r\n\t\t<span\r\n [matTooltipClass]=\"showExpanded && isExpanded && step.hasError ? 'custom-mat-tooltip-error' : 'custom-mat-tooltip-active'\"\r\n [matTooltip]=\"isExpanded ? convertLabelToType(step.label)!.title : ''\"\r\n\t\t\tclass=\"sc-wizard-steps-item-number d-flex justify-content-center align-items-center\"\r\n\t\t\t[class.sc-wizard-steps-item-number-active]=\"selectedIndex === i\"\r\n\t\t\t[class.sc-wizard-steps-item-number-error]=\"step.hasError\">\r\n <ng-container *ngIf=\"!step.hasError && convertLabelToType(step.label).icon\">\r\n\t\t\t\t<em [class]=\"convertLabelToType(step.label).icon\"></em>\r\n\t\t\t</ng-container>\r\n <ng-container *ngIf=\"!step.hasError && !convertLabelToType(step.label).icon\">\r\n\t\t\t\t{{ subWizard ? baseSubWizard + '.' + (i + 1) : i + 1 }}\r\n\t\t\t</ng-container>\r\n\t\t\t<ng-container *ngIf=\"step.hasError\">\r\n\t\t\t\t<em class=\"fa fa-exclamation-triangle\"></em>\r\n\t\t\t</ng-container>\r\n\t\t</span>\r\n\r\n\t\t<div\r\n *ngIf=\"!isExpanded\"\r\n\t\t\tclass=\"sc-wizard-steps-item-label\"\r\n\t\t\t[class.sc-wizard-steps-item-label-error]=\"step.hasError\">\r\n\t\t\t<p\r\n\t\t\t\tclass=\"sc-wizard-steps-item-label-title\"\r\n\t\t\t\t[class.sc-wizard-steps-item-label-title-active]=\"selectedIndex === i\"\r\n\t\t\t\t[class.sc-wizard-steps-item-label-title-error]=\"step.hasError\">\r\n\t\t\t\t{{ convertLabelToType(step.label).title }}\r\n\t\t\t</p>\r\n\t\t\t<span\r\n\t\t\t\tclass=\"sc-wizard-steps-item-label-subtitle\"\r\n\t\t\t\t[ngStyle]=\"selectedIndex === i ? convertLabelToType(step.label).subtitleStyleActive! : null\"\r\n\t\t\t\t[ngClass]=\"selectedIndex === i ? convertLabelToType(step.label).subtitleClassActive! : []\"\r\n\t\t\t\t[class.sc-wizard-steps-item-label-subtitle-error]=\"step.hasError\">\r\n\t\t\t\t<ng-container *ngIf=\"!step.hasError && convertLabelToType(step.label)?.subtitle\">\r\n\t\t\t\t\t{{ convertLabelToType(step.label).subtitle }}\r\n\t\t\t\t</ng-container>\r\n\t\t\t\t<ng-container *ngIf=\"step.hasError\">\r\n\t\t\t\t\t{{ step.errorMessage }}\r\n\t\t\t\t</ng-container>\r\n\t\t\t</span>\r\n\t\t</div>\r\n\t</div>\r\n</ng-template>", styles: [":host{font-family:Soho Gothic Pro,Arial,Helvetica,sans-serif;background-color:#fff;overflow:hidden;height:100%;width:100%;display:block}.sc-wizard-horizontal{display:grid;height:100%;grid-template-rows:auto 1fr}.sc-wizard-horizontal-steps{width:100%;overflow:auto hidden}.sc-wizard-horizontal-steps-fill,.sc-wizard-horizontal-steps-wrapper{display:flex;gap:.5rem}.sc-wizard-horizontal-steps-fill{overflow:hidden}.sc-wizard-horizontal-steps-fill .sc-wizard-steps-item{flex:1}.sc-wizard-horizontal-steps .sc-wizard-steps-item{width:24rem;margin-bottom:0}.sc-wizard-vertical{height:100%;display:flex}.sc-wizard-vertical-steps{overflow:hidden auto;margin-right:1rem;width:100%}.sc-wizard-vertical-steps-container{min-width:280px;width:20%}.sc-wizard-vertical-nav{height:100%;display:flex}.sc-wizard-vertical-nav-steps{overflow:hidden auto;margin-right:1rem}.sc-wizard-vertical-nav-steps-container{min-width:125px;width:6%;transition:.1s all;align-content:start}::ng-deep .custom-mat-tooltip-error{--mdc-plain-tooltip-container-color: #fd397a}::ng-deep .custom-mat-tooltip-active{--mdc-plain-tooltip-container-color: #646c9a}.sc-wizard-expand-icon-container{display:flex;align-items:center;height:100%;justify-content:flex-end;padding-right:1rem}.sc-wizard-steps,.sc-wizard-horizontal-content,.sc-wizard-vertical-content{height:100%;scroll-behavior:smooth}.sc-wizard-horizontal-steps-container,.sc-wizard-vertical-steps-container{height:100%;display:grid;border-radius:.8rem}.sc-wizard-horizontal-steps-container{grid-template-columns:auto 1fr auto}.sc-wizard-vertical-steps-container{grid-template-rows:auto 1fr auto}.sc-wizard-steps-item{display:flex;align-items:center;cursor:pointer;padding:.8rem 1rem;border-radius:.8rem;margin-bottom:.4em;transition:.3s all}.sc-wizard-steps-item:last-child{margin-bottom:0}.sc-wizard-steps-item-disable{pointer-events:none;opacity:.5}.sc-wizard-steps-item-active{position:relative;background-color:#646c9a21}.sc-wizard-steps-item-error{background-color:#fd397a21}.sc-wizard-steps-item-number{border-radius:8px;background-color:#f3f3f7;color:#646c9a;font-size:1.3rem;font-weight:700;margin-right:1rem;height:3.2rem;width:3rem;text-align:center;position:relative}.sc-wizard-steps-item-number em,.sc-wizard-steps-item-number span{position:absolute;z-index:1;left:50%;top:50%;transform:translate(-50%,-50%)}.sc-wizard-steps-item-number-active{color:#fff;background-color:#646c9a}.sc-wizard-steps-item-number-error{color:#fff;background-color:#fd397a}.sc-wizard-steps-item-label-title{margin:0;font-weight:100;color:#646c9a;font-size:16px}.sc-wizard-steps-item-label-title-active{font-weight:700}.sc-wizard-steps-item-label-title-error{color:#fd397a}.sc-wizard-steps-item-label-subtitle{color:gray;font-size:11px}.sc-wizard-steps-item-label-subtitle-error{color:#fd397a}.sc-wizard-horizontal-content,.sc-wizard-vertical-content{background-color:#fff;overflow:hidden auto}.sc-wizard-horizontal-content{padding:1rem 0;width:100%;margin-top:.4rem}.sc-wizard-vertical-content{overflow:hidden auto;padding:1rem;width:80%}.sc-wizard-content{padding:1rem}@media screen and (min-height: 750px){.sc-wizard-content{height:calc(100vh - 333px)}}.sc-wizard-horizontal-button,.sc-wizard-vertical-button{margin:auto;transition:all .3s;height:3rem;width:3.1rem}.sc-wizard-vertical-button.prev{margin-bottom:1rem}.sc-wizard-vertical-button.next{margin-top:1rem}.sc-wizard-horizontal-button.prev{margin-right:1rem}.sc-wizard-horizontal-button.next{margin-left:1rem}.sc-wizard-skeleton{overflow:hidden;position:relative}.sc-wizard-skeleton:after{content:\"\";width:100%;height:100%;background:#dedfe1;background:#e6e6e6;background-image:linear-gradient(to right,#e6e6e6,#f2f3f5 20%,#e6e6e6 40% 100%);background-repeat:no-repeat;position:absolute;left:0;top:0;z-index:5;border-radius:.8rem;animation:loading 1.1s infinite linear}@keyframes loading{0%{background-position:-100px}to{background-position:200px}}.visible{visibility:visible}.invisible{visibility:hidden}\n"] }]
|
|
52
|
+
args: [{ selector: "sc-wizard", providers: [{ provide: CdkStepper, useExisting: ScWizardComponent }], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div \r\n [class.sc-wizard-horizontal]=\"this.orientation === 'horizontal'\"\r\n [class.sc-wizard-vertical]=\"this.orientation === 'vertical'\" \r\n [class.sc-wizard-vertical-nav]=\"this.orientation === 'vertical' && isExpanded\">\r\n <div \r\n [class]=\"'sc-wizard-' + orientation + (isExpanded ? '-nav' : '') + '-steps-container'\"\r\n [ngStyle]=\"{ display: 'grid', 'margin-right': '0px' }\">\r\n <!--PREVIOUS STEP BUTTON-->\r\n <button\r\n *ngIf=\"showArrows\"\r\n [disabled]=\"this.selectedIndex === 0\"\r\n [class.sc-wizard-skeleton]=\"hasSkeleton\"\r\n [class]=\"'sc-wizard-' + orientation + '-button prev'\"\r\n type=\"button\"\r\n mat-icon-button\r\n cdkStepperPrevious>\r\n <mat-icon>{{ orientation === \"horizontal\" ? \"chevron_left\" : \"expand_less\" }}</mat-icon>\r\n </button>\r\n\r\n <ng-container *ngIf=\"this.orientation === 'horizontal'\">\r\n <ng-container *ngIf=\"hasAutoFillSteps\">\r\n <div class=\"sc-wizard-horizontal-steps sc-wizard-horizontal-steps-fill\">\r\n <ng-container [ngTemplateOutlet]=\"templateSteps\"></ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!hasAutoFillSteps\">\r\n <div class=\"sc-wizard-horizontal-steps\">\r\n <div class=\"sc-wizard-horizontal-steps-wrapper\" [style.width]=\"24 * steps.length + 'rem'\">\r\n <ng-container [ngTemplateOutlet]=\"templateSteps\"></ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"this.orientation === 'vertical'\">\r\n <div style=\"display: flex; justify-content: space-between;\">\r\n <div class=\"sc-wizard-steps sc-wizard-vertical-steps\">\r\n <ng-container [ngTemplateOutlet]=\"templateSteps\"></ng-container>\r\n </div>\r\n <div class=\"sc-wizard-expand-icon-container\">\r\n <ng-container *ngIf=\"showExpanded\">\r\n <em class=\"z-3 fa\" [ngClass]=\"{ 'fa-chevron-right': isExpanded, 'fa-chevron-left': !isExpanded }\" style=\"cursor: pointer; font-size: 18px\" (click)=\"this.isExpanded = !this.isExpanded\"> </em>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!--NEXT STEP BUTTON-->\r\n <button\r\n *ngIf=\"showArrows\"\r\n [disabled]=\"this.steps.length - 1 === this.selectedIndex\"\r\n [class.sc-wizard-skeleton]=\"hasSkeleton\"\r\n [class]=\"'sc-wizard-' + orientation + '-button next'\"\r\n type=\"button\"\r\n mat-icon-button\r\n cdkStepperNext>\r\n <mat-icon>{{ orientation === \"horizontal\" ? \"navigate_next\" : \"expand_more\" }}</mat-icon>\r\n </button>\r\n </div>\r\n\r\n <div #scWizardContainer [class.sc-wizard-skeleton]=\"hasSkeleton\" [class]=\"'sc-wizard-' + orientation + '-content'\">\r\n <ng-container [ngTemplateOutlet]=\"selected ? selected.content : null\"></ng-container>\r\n </div>\r\n</div>\r\n\r\n<ng-template #templateSteps>\r\n\t<div\r\n\t\t*ngFor=\"let step of steps; let i = index\"\r\n\t\t[class.invisible]=\"step.content.elementRef.nativeElement.parentNode.className === 'invisible'\"\r\n\t\t[tabIndex]=\"selectedIndex === i ? 1 : -1\"\r\n\t\t[attr.data-position]=\"i\"\r\n\t\t[class.sc-wizard-steps-item-active]=\"selectedIndex === i && !step.hasError\"\r\n\t\t[class.sc-wizard-steps-item-error]=\"selectedIndex === i && step.hasError\"\r\n\t\t[class.sc-wizard-steps-item-disable]=\"!step.editable || convertLabelToType(step.label)!.disabled\"\r\n\t\tclass=\"sc-wizard-steps-item\"\r\n\t\t[class.sc-wizard-skeleton]=\"hasSkeleton\"\r\n\t\t(click)=\"goTo(i); clickStepEmit.emit(i)\">\r\n\t\t<span\r\n [matTooltipClass]=\"showExpanded && isExpanded && step.hasError ? 'custom-mat-tooltip-error' : 'custom-mat-tooltip-active'\"\r\n [matTooltip]=\"isExpanded ? convertLabelToType(step.label)!.title : ''\"\r\n\t\t\tclass=\"sc-wizard-steps-item-number d-flex justify-content-center align-items-center\"\r\n\t\t\t[class.sc-wizard-steps-item-number-active]=\"selectedIndex === i\"\r\n\t\t\t[class.sc-wizard-steps-item-number-error]=\"step.hasError\">\r\n <ng-container *ngIf=\"!step.hasError && convertLabelToType(step.label).icon\">\r\n\t\t\t\t<em [class]=\"convertLabelToType(step.label).icon\"></em>\r\n\t\t\t</ng-container>\r\n <ng-container *ngIf=\"!step.hasError && !convertLabelToType(step.label).icon\">\r\n\t\t\t\t{{ subWizard ? baseSubWizard + '.' + (i + 1) : i + 1 }}\r\n\t\t\t</ng-container>\r\n\t\t\t<ng-container *ngIf=\"step.hasError\">\r\n\t\t\t\t<em class=\"fa fa-exclamation-triangle\"></em>\r\n\t\t\t</ng-container>\r\n\t\t</span>\r\n\r\n\t\t<div\r\n *ngIf=\"!isExpanded\"\r\n\t\t\tclass=\"sc-wizard-steps-item-label\"\r\n\t\t\t[class.sc-wizard-steps-item-label-error]=\"step.hasError\">\r\n\t\t\t<p\r\n\t\t\t\tclass=\"sc-wizard-steps-item-label-title\"\r\n\t\t\t\t[class.sc-wizard-steps-item-label-title-active]=\"selectedIndex === i\"\r\n\t\t\t\t[class.sc-wizard-steps-item-label-title-error]=\"step.hasError\">\r\n\t\t\t\t{{ convertLabelToType(step.label).title }}\r\n\t\t\t</p>\r\n\t\t\t<span\r\n\t\t\t\tclass=\"sc-wizard-steps-item-label-subtitle\"\r\n\t\t\t\t[ngStyle]=\"selectedIndex === i ? convertLabelToType(step.label).subtitleStyleActive! : null\"\r\n\t\t\t\t[ngClass]=\"selectedIndex === i ? convertLabelToType(step.label).subtitleClassActive! : []\"\r\n\t\t\t\t[class.sc-wizard-steps-item-label-subtitle-error]=\"step.hasError\">\r\n\t\t\t\t<ng-container *ngIf=\"!step.hasError && convertLabelToType(step.label)?.subtitle\">\r\n\t\t\t\t\t{{ convertLabelToType(step.label).subtitle }}\r\n\t\t\t\t</ng-container>\r\n\t\t\t\t<ng-container *ngIf=\"step.hasError\">\r\n\t\t\t\t\t{{ step.errorMessage }}\r\n\t\t\t\t</ng-container>\r\n\t\t\t</span>\r\n\t\t</div>\r\n\t</div>\r\n</ng-template>", styles: [":host{font-family:Soho Gothic Pro,Arial,Helvetica,sans-serif;background-color:#fff;overflow:hidden;height:100%;width:100%;display:block}.sc-wizard-horizontal{display:grid;height:100%;grid-template-rows:auto 1fr}.sc-wizard-horizontal-steps{width:100%;overflow:auto hidden}.sc-wizard-horizontal-steps-fill,.sc-wizard-horizontal-steps-wrapper{display:flex;gap:.5rem}.sc-wizard-horizontal-steps-fill{overflow:hidden}.sc-wizard-horizontal-steps-fill .sc-wizard-steps-item{flex:1}.sc-wizard-horizontal-steps .sc-wizard-steps-item{width:24rem;margin-bottom:0}.sc-wizard-vertical{height:100%;display:flex}.sc-wizard-vertical-steps{overflow:hidden auto;margin-right:1rem;width:100%}.sc-wizard-vertical-steps-container{min-width:280px;width:20%}.sc-wizard-vertical-nav{height:100%;display:flex}.sc-wizard-vertical-nav-steps{overflow:hidden auto;margin-right:1rem}.sc-wizard-vertical-nav-steps-container{min-width:125px;width:6%;transition:.1s all;align-content:start}::ng-deep .custom-mat-tooltip-error{--mdc-plain-tooltip-container-color: #fd397a}::ng-deep .custom-mat-tooltip-active{--mdc-plain-tooltip-container-color: #646c9a}.sc-wizard-expand-icon-container{display:flex;align-items:center;height:100%;justify-content:flex-end;padding-right:1rem}.sc-wizard-steps,.sc-wizard-horizontal-content,.sc-wizard-vertical-content{height:100%;scroll-behavior:smooth}.sc-wizard-horizontal-steps-container,.sc-wizard-vertical-steps-container{height:100%;display:grid;border-radius:.8rem}.sc-wizard-horizontal-steps-container{grid-template-columns:auto 1fr auto}.sc-wizard-vertical-steps-container{grid-template-rows:auto 1fr auto}.sc-wizard-steps-item{display:flex;align-items:center;cursor:pointer;padding:.8rem 1rem;border-radius:.8rem;margin-bottom:.4em;transition:.3s all}.sc-wizard-steps-item:last-child{margin-bottom:0}.sc-wizard-steps-item-disable{pointer-events:none;opacity:.5}.sc-wizard-steps-item-active{position:relative;background-color:#646c9a21}.sc-wizard-steps-item-error{background-color:#fd397a21}.sc-wizard-steps-item-number{border-radius:8px;background-color:#f3f3f7;color:#646c9a;font-size:1.3rem;font-weight:700;margin-right:1rem;height:3.2rem;width:3rem;text-align:center;position:relative}.sc-wizard-steps-item-number em,.sc-wizard-steps-item-number span{position:absolute;z-index:1;left:50%;top:50%;transform:translate(-50%,-50%)}.sc-wizard-steps-item-number-active{color:#fff;background-color:#646c9a}.sc-wizard-steps-item-number-error{color:#fff;background-color:#fd397a}.sc-wizard-steps-item-label-title{margin:0;font-weight:100;color:#646c9a;font-size:16px}.sc-wizard-steps-item-label-title-active{font-weight:700}.sc-wizard-steps-item-label-title-error{color:#fd397a}.sc-wizard-steps-item-label-subtitle{color:gray;font-size:11px}.sc-wizard-steps-item-label-subtitle-error{color:#fd397a}.sc-wizard-horizontal-content,.sc-wizard-vertical-content{background-color:#fff;overflow:hidden auto}.sc-wizard-horizontal-content{padding:1rem 0;width:100%;margin-top:.4rem}.sc-wizard-vertical-content{overflow:hidden auto;padding:1rem;width:100%}.sc-wizard-content{padding:1rem}@media screen and (min-height: 750px){.sc-wizard-content{height:calc(100vh - 333px)}}.sc-wizard-horizontal-button,.sc-wizard-vertical-button{margin:auto;transition:all .3s;height:3rem;width:3.1rem}.sc-wizard-vertical-button.prev{margin-bottom:1rem}.sc-wizard-vertical-button.next{margin-top:1rem}.sc-wizard-horizontal-button.prev{margin-right:1rem}.sc-wizard-horizontal-button.next{margin-left:1rem}.sc-wizard-skeleton{overflow:hidden;position:relative}.sc-wizard-skeleton:after{content:\"\";width:100%;height:100%;background:#dedfe1;background:#e6e6e6;background-image:linear-gradient(to right,#e6e6e6,#f2f3f5 20%,#e6e6e6 40% 100%);background-repeat:no-repeat;position:absolute;left:0;top:0;z-index:5;border-radius:.8rem;animation:loading 1.1s infinite linear}@keyframes loading{0%{background-position:-100px}to{background-position:200px}}.visible{visibility:visible}.invisible{visibility:hidden}\n"] }]
|
|
53
53
|
}], ctorParameters: () => [{ type: i1.Directionality, decorators: [{
|
|
54
54
|
type: Optional
|
|
55
55
|
}] }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }], propDecorators: { _scWizardContainer: [{
|