@inspark/inspark-components 14.0.68 → 14.0.69
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/full/esm2020/components/dropdown/dropdown.component.mjs +3 -3
- package/full/fesm2015/inspark-inspark-components.mjs +2 -2
- package/full/fesm2015/inspark-inspark-components.mjs.map +1 -1
- package/full/fesm2020/inspark-inspark-components.mjs +2 -2
- package/full/fesm2020/inspark-inspark-components.mjs.map +1 -1
- package/full/package.json +1 -1
- package/interface/package.json +1 -1
- package/package.json +1 -1
|
@@ -175,14 +175,14 @@ export class DropdownComponent extends Dropdown {
|
|
|
175
175
|
}
|
|
176
176
|
}
|
|
177
177
|
DropdownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DropdownComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
178
|
-
DropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: DropdownComponent, selector: "in-dropdown", inputs: { title: "title", error: "error", scrollHeight: "scrollHeight", filter: "filter", name: "name", options: "options", style: "style", panelStyle: "panelStyle", styleClass: "styleClass", panelStyleClass: "panelStyleClass", readonly: "readonly", required: "required", editable: "editable", appendTo: "appendTo", tabindex: "tabindex", placeholder: "placeholder", filterPlaceholder: "filterPlaceholder", filterLocale: "filterLocale", inputId: "inputId", selectId: "selectId", dataKey: "dataKey", filterBy: "filterBy", autofocus: "autofocus", resetFilterOnHide: "resetFilterOnHide", dropdownIcon: "dropdownIcon", optionLabel: "optionLabel", optionValue: "optionValue", optionDisabled: "optionDisabled", optionGroupLabel: "optionGroupLabel", optionGroupChildren: "optionGroupChildren", autoDisplayFirst: "autoDisplayFirst", group: "group", showClear: "showClear", emptyFilterMessage: "emptyFilterMessage", emptyMessage: "emptyMessage", lazy: "lazy", virtualScroll: "virtualScroll", virtualScrollItemSize: "virtualScrollItemSize", virtualScrollOptions: "virtualScrollOptions", overlayOptions: "overlayOptions", ariaFilterLabel: "ariaFilterLabel", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", filterMatchMode: "filterMatchMode", maxlength: "maxlength", tooltip: "tooltip", tooltipPosition: "tooltipPosition", tooltipPositionStyle: "tooltipPositionStyle", tooltipStyleClass: "tooltipStyleClass", autofocusFilter: "autofocusFilter", overlayDirection: "overlayDirection", itemSize: "itemSize", autoZIndex: "autoZIndex", baseZIndex: "baseZIndex", showTransitionOptions: "showTransitionOptions", hideTransitionOptions: "hideTransitionOptions" }, outputs: { onChange: "onChange", onFilter: "onFilter", onFocus: "onFocus", onBlur: "onBlur", onClick: "onClick", onShow: "onShow", onHide: "onHide", onClear: "onClear", onLazyLoad: "onLazyLoad" }, host: { properties: { "class.p-inputwrapper-filled": "filled", "class.p-inputwrapper-focus": "focused || overlayVisible" }, classAttribute: "p-element p-inputwrapper" }, providers: [DROPDOWN_VALUE_ACCESSOR], usesInheritance: true, ngImport: i0, template: "<label class=\"label type_varchars in-dropdown\">\r\n<span *ngIf=\"title\" class=\"c-label__content\">\r\n {{ title }}\r\n <span *ngIf=\"required\" class=\"c-label__req\">*</span>\r\n<span *ngIf=\"error\" class=\"c-label__sub_is-error\">{{ error }}</span>\r\n </span>\r\n <div\r\n #container\r\n (click)=\"onMouseclick($event)\"\r\n [class]=\"styleClass\"\r\n [ngClass]=\"{ 'p-dropdown p-component': true, 'p-disabled': disabled, 'p-dropdown-open': overlayVisible, 'p-focus': focused, 'p-dropdown-clearable': showClear && !disabled }\"\r\n [ngStyle]=\"style\"\r\n >\r\n <div class=\"p-hidden-accessible\">\r\n <input\r\n #in\r\n (blur)=\"onInputBlur($event)\"\r\n (focus)=\"onInputFocus($event)\"\r\n (keydown)=\"onKeydown($event, true)\"\r\n [attr.aria-activedescendant]=\"overlayVisible ? labelId : null\"\r\n [attr.aria-expanded]=\"false\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy\"\r\n [attr.id]=\"inputId\"\r\n [attr.placeholder]=\"placeholder\"\r\n [attr.tabindex]=\"tabindex\"\r\n [autofocus]=\"autofocus\"\r\n [disabled]=\"disabled\"\r\n aria-haspopup=\"listbox\"\r\n aria-haspopup=\"listbox\"\r\n pAutoFocus\r\n readonly\r\n role=\"combobox\"\r\n type=\"text\"\r\n />\r\n </div>\r\n <span\r\n *ngIf=\"!editable && label != null\"\r\n [attr.id]=\"labelId\"\r\n [ngClass]=\"{ 'p-dropdown-label p-inputtext': true, 'p-dropdown-label-empty': label == null || label.length === 0 }\"\r\n [pTooltip]=\"tooltip\"\r\n [positionStyle]=\"tooltipPositionStyle\"\r\n [tooltipPosition]=\"tooltipPosition\"\r\n [tooltipStyleClass]=\"tooltipStyleClass\">\r\n <ng-container *ngIf=\"!selectedItemTemplate\">{{ label || '' }}</ng-container>\r\n <ng-container\r\n *ngTemplateOutlet=\"selectedItemTemplate; context: { $implicit: selectedOption }\"></ng-container>\r\n </span>\r\n <span\r\n *ngIf=\"!editable && label == null\"\r\n [ngClass]=\"{ 'p-dropdown-label p-inputtext p-placeholder': true, 'p-dropdown-label-empty': placeholder == null || placeholder.length === 0 }\">{{ placeholder || '' }}</span>\r\n <input\r\n #editableInput\r\n (blur)=\"onInputBlur($event)\"\r\n (focus)=\"onEditableInputFocus($event)\"\r\n (input)=\"onEditableInputChange($event)\"\r\n *ngIf=\"editable\"\r\n [attr.aria-expanded]=\"overlayVisible\"\r\n [attr.maxlength]=\"maxlength\"\r\n [attr.placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n aria-haspopup=\"listbox\"\r\n class=\"p-dropdown-label p-inputtext\"\r\n type=\"text\"\r\n />\r\n <i (click)=\"clear($event)\" *ngIf=\"isVisibleClearIcon\" class=\"p-dropdown-clear-icon pi pi-times\"></i>\r\n <div [attr.aria-expanded]=\"overlayVisible\" aria-haspopup=\"listbox\" aria-label=\"dropdown trigger\"\r\n class=\"p-dropdown-trigger\"\r\n role=\"button\">\r\n <span [ngClass]=\"dropdownIcon\" class=\"p-dropdown-trigger-icon\"></span>\r\n </div>\r\n <p-overlay\r\n #overlay\r\n (onAnimationStart)=\"onOverlayAnimationStart($event)\"\r\n (onHide)=\"hide()\"\r\n [(visible)]=\"overlayVisible\"\r\n [appendTo]=\"appendTo\"\r\n [autoZIndex]=\"autoZIndex\"\r\n [baseZIndex]=\"baseZIndex\"\r\n [hideTransitionOptions]=\"hideTransitionOptions\"\r\n [options]=\"overlayOptions\"\r\n [showTransitionOptions]=\"showTransitionOptions\"\r\n [target]=\"'@parent'\"\r\n >\r\n <ng-template pTemplate=\"content\">\r\n <div [class]=\"panelStyleClass\" [ngClass]=\"'p-dropdown-panel p-component'\" [ngStyle]=\"panelStyle\">\r\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\r\n <div (click)=\"$event.stopPropagation()\" *ngIf=\"filter\" class=\"p-dropdown-header\">\r\n <ng-container *ngIf=\"filterTemplate; else builtInFilterElement\">\r\n <ng-container *ngTemplateOutlet=\"filterTemplate; context: { options: filterOptions }\"></ng-container>\r\n </ng-container>\r\n <ng-template #builtInFilterElement>\r\n <div class=\"p-dropdown-filter-container\">\r\n <input\r\n #filter\r\n (input)=\"onFilterInputChange($event)\"\r\n (keydown)=\"onKeydown($event, false)\"\r\n (keydown.enter)=\"$event.preventDefault()\"\r\n [attr.aria-activedescendant]=\"overlayVisible ? 'p-highlighted-option' : labelId\"\r\n [attr.aria-label]=\"ariaFilterLabel\"\r\n [attr.placeholder]=\"filterPlaceholder\"\r\n [value]=\"filterValue || ''\"\r\n autocomplete=\"off\"\r\n class=\"p-dropdown-filter p-inputtext p-component\"\r\n type=\"text\"\r\n />\r\n <span class=\"p-dropdown-filter-icon pi pi-search\"></span>\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div [style.max-height]=\"virtualScroll ? 'auto' : scrollHeight || 'auto'\" class=\"p-dropdown-items-wrapper\">\r\n <p-scroller\r\n #scroller\r\n (onLazyLoad)=\"onLazyLoad.emit($event)\"\r\n *ngIf=\"virtualScroll\"\r\n [autoSize]=\"true\"\r\n [itemSize]=\"virtualScrollItemSize || _itemSize\"\r\n [items]=\"optionsToDisplay\"\r\n [lazy]=\"lazy\"\r\n [options]=\"virtualScrollOptions\"\r\n [style]=\"{ height: scrollHeight }\"\r\n >\r\n <ng-template let-items let-scrollerOptions=\"options\" pTemplate=\"content\">\r\n <ng-container\r\n *ngTemplateOutlet=\"buildInItems; context: { $implicit: items, options: scrollerOptions }\"></ng-container>\r\n </ng-template>\r\n <ng-container *ngIf=\"loaderTemplate\">\r\n <ng-template let-scrollerOptions=\"options\" pTemplate=\"loader\">\r\n <ng-container\r\n *ngTemplateOutlet=\"loaderTemplate; context: { options: scrollerOptions }\"></ng-container>\r\n </ng-template>\r\n </ng-container>\r\n </p-scroller>\r\n <ng-container *ngIf=\"!virtualScroll\">\r\n <ng-container\r\n *ngTemplateOutlet=\"buildInItems; context: { $implicit: optionsToDisplay, options: {} }\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-template #buildInItems let-items let-scrollerOptions=\"options\">\r\n <ul #items [attr.id]=\"listId\" [ngClass]=\"scrollerOptions.contentStyleClass\"\r\n [style]=\"scrollerOptions.contentStyle\"\r\n class=\"p-dropdown-items\" role=\"listbox\">\r\n <ng-container *ngIf=\"group\">\r\n <ng-template [ngForOf]=\"items\" let-optgroup ngFor>\r\n <li [ngStyle]=\"{ height: scrollerOptions.itemSize + 'px' }\" class=\"p-dropdown-item-group\">\r\n <span *ngIf=\"!groupTemplate\">{{ getOptionGroupLabel(optgroup) || '' }}</span>\r\n <ng-container *ngTemplateOutlet=\"groupTemplate; context: { $implicit: optgroup }\"></ng-container>\r\n </li>\r\n <ng-container\r\n *ngTemplateOutlet=\"itemslist; context: { $implicit: getOptionGroupChildren(optgroup), selectedOption: selectedOption }\"></ng-container>\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngIf=\"!group\">\r\n <ng-container\r\n *ngTemplateOutlet=\"itemslist; context: { $implicit: items, selectedOption: selectedOption }\"></ng-container>\r\n </ng-container>\r\n <ng-template #itemslist let-options let-selectedOption=\"selectedOption\">\r\n <ng-template [ngForOf]=\"options\" let-i=\"index\" let-option ngFor>\r\n <p-dropdownItem\r\n (onClick)=\"onItemClick($event)\"\r\n [disabled]=\"isOptionDisabled(option)\"\r\n [label]=\"getOptionLabel(option)\"\r\n [option]=\"option\"\r\n [selected]=\"selectedOption == option\"\r\n [template]=\"itemTemplate\"\r\n ></p-dropdownItem>\r\n </ng-template>\r\n </ng-template>\r\n <li *ngIf=\"filterValue && isEmpty()\" [ngStyle]=\"{ height: scrollerOptions.itemSize + 'px' }\"\r\n class=\"p-dropdown-empty-message\">\r\n <ng-container *ngIf=\"!emptyFilterTemplate && !emptyTemplate\">\r\n {{ emptyFilterMessageLabel }}\r\n </ng-container>\r\n <ng-container #emptyFilter *ngTemplateOutlet=\"emptyFilterTemplate || emptyTemplate\"></ng-container>\r\n </li>\r\n <li *ngIf=\"!filterValue && isEmpty()\" [ngStyle]=\"{ height: scrollerOptions.itemSize + 'px' }\"\r\n class=\"p-dropdown-empty-message\">\r\n <ng-container *ngIf=\"!emptyTemplate\">\r\n {{ emptyMessageLabel }}\r\n </ng-container>\r\n <ng-container #empty *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\r\n </li>\r\n </ul>\r\n </ng-template>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\r\n </div>\r\n </ng-template>\r\n </p-overlay>\r\n </div>\r\n</label>\r\n", styles: [".in-dropdown{width:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3.Overlay, selector: "p-overlay", inputs: ["visible", "mode", "style", "styleClass", "contentStyle", "contentStyleClass", "target", "appendTo", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "listener", "responsive", "options"], outputs: ["visibleChange", "onBeforeShow", "onShow", "onBeforeHide", "onHide", "onAnimationStart", "onAnimationDone"] }, { kind: "directive", type: i4.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "fitContent", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i6.Scroller, selector: "p-scroller", inputs: ["id", "style", "styleClass", "tabindex", "items", "itemSize", "scrollHeight", "scrollWidth", "orientation", "step", "delay", "resizeDelay", "appendOnly", "inline", "lazy", "disabled", "loaderDisabled", "columns", "showSpacer", "showLoader", "numToleratedItems", "loading", "autoSize", "trackBy", "options"], outputs: ["onLazyLoad", "onScroll", "onScrollIndexChange"] }, { kind: "directive", type: i7.AutoFocus, selector: "[pAutoFocus]", inputs: ["autofocus"] }, { kind: "component", type: DropdownItem, selector: "p-dropdownItem", inputs: ["option", "selected", "label", "disabled", "visible", "itemSize", "template"], outputs: ["onClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
178
|
+
DropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: DropdownComponent, selector: "in-dropdown", inputs: { title: "title", error: "error", scrollHeight: "scrollHeight", filter: "filter", name: "name", options: "options", style: "style", panelStyle: "panelStyle", styleClass: "styleClass", panelStyleClass: "panelStyleClass", readonly: "readonly", required: "required", editable: "editable", appendTo: "appendTo", tabindex: "tabindex", placeholder: "placeholder", filterPlaceholder: "filterPlaceholder", filterLocale: "filterLocale", inputId: "inputId", selectId: "selectId", dataKey: "dataKey", filterBy: "filterBy", autofocus: "autofocus", resetFilterOnHide: "resetFilterOnHide", dropdownIcon: "dropdownIcon", optionLabel: "optionLabel", optionValue: "optionValue", optionDisabled: "optionDisabled", optionGroupLabel: "optionGroupLabel", optionGroupChildren: "optionGroupChildren", autoDisplayFirst: "autoDisplayFirst", group: "group", showClear: "showClear", emptyFilterMessage: "emptyFilterMessage", emptyMessage: "emptyMessage", lazy: "lazy", virtualScroll: "virtualScroll", virtualScrollItemSize: "virtualScrollItemSize", virtualScrollOptions: "virtualScrollOptions", overlayOptions: "overlayOptions", ariaFilterLabel: "ariaFilterLabel", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", filterMatchMode: "filterMatchMode", maxlength: "maxlength", tooltip: "tooltip", tooltipPosition: "tooltipPosition", tooltipPositionStyle: "tooltipPositionStyle", tooltipStyleClass: "tooltipStyleClass", autofocusFilter: "autofocusFilter", overlayDirection: "overlayDirection", itemSize: "itemSize", autoZIndex: "autoZIndex", baseZIndex: "baseZIndex", showTransitionOptions: "showTransitionOptions", hideTransitionOptions: "hideTransitionOptions" }, outputs: { onChange: "onChange", onFilter: "onFilter", onFocus: "onFocus", onBlur: "onBlur", onClick: "onClick", onShow: "onShow", onHide: "onHide", onClear: "onClear", onLazyLoad: "onLazyLoad" }, host: { properties: { "class.p-inputwrapper-filled": "filled", "class.p-inputwrapper-focus": "focused || overlayVisible" }, classAttribute: "p-element p-inputwrapper" }, providers: [DROPDOWN_VALUE_ACCESSOR], usesInheritance: true, ngImport: i0, template: "<label class=\"label type_varchars in-dropdown\">\r\n<span *ngIf=\"title\" class=\"c-label__content\">\r\n {{ title }}\r\n <span *ngIf=\"required\" class=\"c-label__req\">*</span>\r\n<span *ngIf=\"error\" class=\"c-label__sub_is-error\">{{ error }}</span>\r\n </span>\r\n <div\r\n #container\r\n (click)=\"onMouseclick($event)\"\r\n [class]=\"styleClass\"\r\n [ngClass]=\"{ 'p-dropdown p-component': true, 'p-disabled': disabled, 'p-dropdown-open': overlayVisible, 'p-focus': focused, 'p-dropdown-clearable': showClear && !disabled }\"\r\n [ngStyle]=\"style\"\r\n >\r\n <div class=\"p-hidden-accessible\">\r\n <input\r\n #in\r\n (blur)=\"onInputBlur($event)\"\r\n (focus)=\"onInputFocus($event)\"\r\n (keydown)=\"onKeydown($event, true)\"\r\n [attr.aria-activedescendant]=\"overlayVisible ? labelId : null\"\r\n [attr.aria-expanded]=\"false\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy\"\r\n [attr.id]=\"inputId\"\r\n [attr.placeholder]=\"placeholder\"\r\n [attr.tabindex]=\"tabindex\"\r\n [autofocus]=\"autofocus\"\r\n [disabled]=\"disabled\"\r\n aria-haspopup=\"listbox\"\r\n aria-haspopup=\"listbox\"\r\n pAutoFocus\r\n readonly\r\n role=\"combobox\"\r\n type=\"text\"\r\n />\r\n </div>\r\n <span\r\n *ngIf=\"!editable && label != null\"\r\n [attr.id]=\"labelId\"\r\n [ngClass]=\"{ 'p-dropdown-label p-inputtext': true, 'p-dropdown-label-empty': label == null || label.length === 0 }\"\r\n [pTooltip]=\"tooltip\"\r\n [positionStyle]=\"tooltipPositionStyle\"\r\n [tooltipPosition]=\"tooltipPosition\"\r\n [tooltipStyleClass]=\"tooltipStyleClass\">\r\n <ng-container *ngIf=\"!selectedItemTemplate\">{{ label || '' }}</ng-container>\r\n <ng-container\r\n *ngTemplateOutlet=\"selectedItemTemplate; context: { $implicit: selectedOption }\"></ng-container>\r\n </span>\r\n <span\r\n *ngIf=\"!editable && label == null\"\r\n [ngClass]=\"{ 'p-dropdown-label p-inputtext p-placeholder': true, 'p-dropdown-label-empty': placeholder == null || placeholder.length === 0 }\">{{ placeholder || '' }}</span>\r\n <input\r\n #editableInput\r\n (blur)=\"onInputBlur($event)\"\r\n (focus)=\"onEditableInputFocus($event)\"\r\n (input)=\"onEditableInputChange($event)\"\r\n *ngIf=\"editable\"\r\n [attr.aria-expanded]=\"overlayVisible\"\r\n [attr.maxlength]=\"maxlength\"\r\n [attr.placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n aria-haspopup=\"listbox\"\r\n class=\"p-dropdown-label p-inputtext\"\r\n type=\"text\"\r\n />\r\n <i (click)=\"clear($event)\" *ngIf=\"isVisibleClearIcon\" class=\"p-dropdown-clear-icon pi pi-times\"></i>\r\n <div [attr.aria-expanded]=\"overlayVisible\" aria-haspopup=\"listbox\" aria-label=\"dropdown trigger\"\r\n class=\"p-dropdown-trigger\"\r\n role=\"button\">\r\n <span [ngClass]=\"dropdownIcon\" class=\"p-dropdown-trigger-icon\"></span>\r\n </div>\r\n <p-overlay\r\n #overlay\r\n (onAnimationStart)=\"onOverlayAnimationStart($event)\"\r\n (onHide)=\"hide()\"\r\n [(visible)]=\"overlayVisible\"\r\n [appendTo]=\"appendTo\"\r\n [autoZIndex]=\"autoZIndex\"\r\n [baseZIndex]=\"baseZIndex\"\r\n [hideTransitionOptions]=\"hideTransitionOptions\"\r\n [options]=\"overlayOptions\"\r\n [showTransitionOptions]=\"showTransitionOptions\"\r\n [target]=\"'@parent'\"\r\n >\r\n <ng-template pTemplate=\"content\">\r\n <div [class]=\"panelStyleClass\" [ngClass]=\"'p-dropdown-panel p-component'\" [ngStyle]=\"panelStyle\">\r\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\r\n <div (click)=\"$event.stopPropagation()\" *ngIf=\"filter\" class=\"p-dropdown-header\">\r\n <ng-container *ngIf=\"filterTemplate; else builtInFilterElement\">\r\n <ng-container *ngTemplateOutlet=\"filterTemplate; context: { options: filterOptions }\"></ng-container>\r\n </ng-container>\r\n <ng-template #builtInFilterElement>\r\n <div class=\"p-dropdown-filter-container\">\r\n <input\r\n #filter\r\n (input)=\"onFilterInputChange($event)\"\r\n (keydown)=\"onKeydown($event, false)\"\r\n (keydown.enter)=\"$event.preventDefault()\"\r\n [attr.aria-activedescendant]=\"overlayVisible ? 'p-highlighted-option' : labelId\"\r\n [attr.aria-label]=\"ariaFilterLabel\"\r\n [attr.placeholder]=\"filterPlaceholder\"\r\n [value]=\"filterValue || ''\"\r\n autocomplete=\"off\"\r\n class=\"p-dropdown-filter p-inputtext p-component\"\r\n type=\"text\"\r\n />\r\n <span class=\"p-dropdown-filter-icon pi pi-search\"></span>\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div [style.max-height]=\"virtualScroll ? 'auto' : scrollHeight || 'auto'\" class=\"p-dropdown-items-wrapper\">\r\n <p-scroller\r\n #scroller\r\n (onLazyLoad)=\"onLazyLoad.emit($event)\"\r\n *ngIf=\"virtualScroll\"\r\n [autoSize]=\"true\"\r\n [itemSize]=\"virtualScrollItemSize || _itemSize\"\r\n [items]=\"optionsToDisplay\"\r\n [lazy]=\"lazy\"\r\n [options]=\"virtualScrollOptions\"\r\n [style]=\"{ height: scrollHeight }\"\r\n >\r\n <ng-template let-items let-scrollerOptions=\"options\" pTemplate=\"content\">\r\n <ng-container\r\n *ngTemplateOutlet=\"buildInItems; context: { $implicit: items, options: scrollerOptions }\"></ng-container>\r\n </ng-template>\r\n <ng-container *ngIf=\"loaderTemplate\">\r\n <ng-template let-scrollerOptions=\"options\" pTemplate=\"loader\">\r\n <ng-container\r\n *ngTemplateOutlet=\"loaderTemplate; context: { options: scrollerOptions }\"></ng-container>\r\n </ng-template>\r\n </ng-container>\r\n </p-scroller>\r\n <ng-container *ngIf=\"!virtualScroll\">\r\n <ng-container\r\n *ngTemplateOutlet=\"buildInItems; context: { $implicit: optionsToDisplay, options: {} }\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-template #buildInItems let-items let-scrollerOptions=\"options\">\r\n <ul #items [attr.id]=\"listId\" [ngClass]=\"scrollerOptions.contentStyleClass\"\r\n [style]=\"scrollerOptions.contentStyle\"\r\n class=\"p-dropdown-items\" role=\"listbox\">\r\n <ng-container *ngIf=\"group\">\r\n <ng-template [ngForOf]=\"items\" let-optgroup ngFor>\r\n <li [ngStyle]=\"{ height: scrollerOptions.itemSize + 'px' }\" class=\"p-dropdown-item-group\">\r\n <span *ngIf=\"!groupTemplate\">{{ getOptionGroupLabel(optgroup) || '' }}</span>\r\n <ng-container *ngTemplateOutlet=\"groupTemplate; context: { $implicit: optgroup }\"></ng-container>\r\n </li>\r\n <ng-container\r\n *ngTemplateOutlet=\"itemslist; context: { $implicit: getOptionGroupChildren(optgroup), selectedOption: selectedOption }\"></ng-container>\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngIf=\"!group\">\r\n <ng-container\r\n *ngTemplateOutlet=\"itemslist; context: { $implicit: items, selectedOption: selectedOption }\"></ng-container>\r\n </ng-container>\r\n <ng-template #itemslist let-options let-selectedOption=\"selectedOption\">\r\n <ng-template [ngForOf]=\"options\" let-i=\"index\" let-option ngFor>\r\n <p-dropdownItem\r\n (onClick)=\"onItemClick($event)\"\r\n [disabled]=\"isOptionDisabled(option)\"\r\n [label]=\"getOptionLabel(option)\"\r\n [option]=\"option\"\r\n [selected]=\"selectedOption == option\"\r\n [template]=\"itemTemplate\"\r\n ></p-dropdownItem>\r\n </ng-template>\r\n </ng-template>\r\n <li *ngIf=\"filterValue && isEmpty()\" [ngStyle]=\"{ height: scrollerOptions.itemSize + 'px' }\"\r\n class=\"p-dropdown-empty-message\">\r\n <ng-container *ngIf=\"!emptyFilterTemplate && !emptyTemplate\">\r\n {{ emptyFilterMessageLabel }}\r\n </ng-container>\r\n <ng-container #emptyFilter *ngTemplateOutlet=\"emptyFilterTemplate || emptyTemplate\"></ng-container>\r\n </li>\r\n <li *ngIf=\"!filterValue && isEmpty()\" [ngStyle]=\"{ height: scrollerOptions.itemSize + 'px' }\"\r\n class=\"p-dropdown-empty-message\">\r\n <ng-container *ngIf=\"!emptyTemplate\">\r\n {{ emptyMessageLabel }}\r\n </ng-container>\r\n <ng-container #empty *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\r\n </li>\r\n </ul>\r\n </ng-template>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\r\n </div>\r\n </ng-template>\r\n </p-overlay>\r\n </div>\r\n</label>\r\n", styles: [".in-dropdown{width:100%;margin-bottom:0}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3.Overlay, selector: "p-overlay", inputs: ["visible", "mode", "style", "styleClass", "contentStyle", "contentStyleClass", "target", "appendTo", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "listener", "responsive", "options"], outputs: ["visibleChange", "onBeforeShow", "onShow", "onBeforeHide", "onHide", "onAnimationStart", "onAnimationDone"] }, { kind: "directive", type: i4.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "fitContent", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i6.Scroller, selector: "p-scroller", inputs: ["id", "style", "styleClass", "tabindex", "items", "itemSize", "scrollHeight", "scrollWidth", "orientation", "step", "delay", "resizeDelay", "appendOnly", "inline", "lazy", "disabled", "loaderDisabled", "columns", "showSpacer", "showLoader", "numToleratedItems", "loading", "autoSize", "trackBy", "options"], outputs: ["onLazyLoad", "onScroll", "onScrollIndexChange"] }, { kind: "directive", type: i7.AutoFocus, selector: "[pAutoFocus]", inputs: ["autofocus"] }, { kind: "component", type: DropdownItem, selector: "p-dropdownItem", inputs: ["option", "selected", "label", "disabled", "visible", "itemSize", "template"], outputs: ["onClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
179
179
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DropdownComponent, decorators: [{
|
|
180
180
|
type: Component,
|
|
181
181
|
args: [{ selector: 'in-dropdown', host: {
|
|
182
182
|
class: 'p-element p-inputwrapper',
|
|
183
183
|
'[class.p-inputwrapper-filled]': 'filled',
|
|
184
184
|
'[class.p-inputwrapper-focus]': 'focused || overlayVisible'
|
|
185
|
-
}, providers: [DROPDOWN_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<label class=\"label type_varchars in-dropdown\">\r\n<span *ngIf=\"title\" class=\"c-label__content\">\r\n {{ title }}\r\n <span *ngIf=\"required\" class=\"c-label__req\">*</span>\r\n<span *ngIf=\"error\" class=\"c-label__sub_is-error\">{{ error }}</span>\r\n </span>\r\n <div\r\n #container\r\n (click)=\"onMouseclick($event)\"\r\n [class]=\"styleClass\"\r\n [ngClass]=\"{ 'p-dropdown p-component': true, 'p-disabled': disabled, 'p-dropdown-open': overlayVisible, 'p-focus': focused, 'p-dropdown-clearable': showClear && !disabled }\"\r\n [ngStyle]=\"style\"\r\n >\r\n <div class=\"p-hidden-accessible\">\r\n <input\r\n #in\r\n (blur)=\"onInputBlur($event)\"\r\n (focus)=\"onInputFocus($event)\"\r\n (keydown)=\"onKeydown($event, true)\"\r\n [attr.aria-activedescendant]=\"overlayVisible ? labelId : null\"\r\n [attr.aria-expanded]=\"false\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy\"\r\n [attr.id]=\"inputId\"\r\n [attr.placeholder]=\"placeholder\"\r\n [attr.tabindex]=\"tabindex\"\r\n [autofocus]=\"autofocus\"\r\n [disabled]=\"disabled\"\r\n aria-haspopup=\"listbox\"\r\n aria-haspopup=\"listbox\"\r\n pAutoFocus\r\n readonly\r\n role=\"combobox\"\r\n type=\"text\"\r\n />\r\n </div>\r\n <span\r\n *ngIf=\"!editable && label != null\"\r\n [attr.id]=\"labelId\"\r\n [ngClass]=\"{ 'p-dropdown-label p-inputtext': true, 'p-dropdown-label-empty': label == null || label.length === 0 }\"\r\n [pTooltip]=\"tooltip\"\r\n [positionStyle]=\"tooltipPositionStyle\"\r\n [tooltipPosition]=\"tooltipPosition\"\r\n [tooltipStyleClass]=\"tooltipStyleClass\">\r\n <ng-container *ngIf=\"!selectedItemTemplate\">{{ label || '' }}</ng-container>\r\n <ng-container\r\n *ngTemplateOutlet=\"selectedItemTemplate; context: { $implicit: selectedOption }\"></ng-container>\r\n </span>\r\n <span\r\n *ngIf=\"!editable && label == null\"\r\n [ngClass]=\"{ 'p-dropdown-label p-inputtext p-placeholder': true, 'p-dropdown-label-empty': placeholder == null || placeholder.length === 0 }\">{{ placeholder || '' }}</span>\r\n <input\r\n #editableInput\r\n (blur)=\"onInputBlur($event)\"\r\n (focus)=\"onEditableInputFocus($event)\"\r\n (input)=\"onEditableInputChange($event)\"\r\n *ngIf=\"editable\"\r\n [attr.aria-expanded]=\"overlayVisible\"\r\n [attr.maxlength]=\"maxlength\"\r\n [attr.placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n aria-haspopup=\"listbox\"\r\n class=\"p-dropdown-label p-inputtext\"\r\n type=\"text\"\r\n />\r\n <i (click)=\"clear($event)\" *ngIf=\"isVisibleClearIcon\" class=\"p-dropdown-clear-icon pi pi-times\"></i>\r\n <div [attr.aria-expanded]=\"overlayVisible\" aria-haspopup=\"listbox\" aria-label=\"dropdown trigger\"\r\n class=\"p-dropdown-trigger\"\r\n role=\"button\">\r\n <span [ngClass]=\"dropdownIcon\" class=\"p-dropdown-trigger-icon\"></span>\r\n </div>\r\n <p-overlay\r\n #overlay\r\n (onAnimationStart)=\"onOverlayAnimationStart($event)\"\r\n (onHide)=\"hide()\"\r\n [(visible)]=\"overlayVisible\"\r\n [appendTo]=\"appendTo\"\r\n [autoZIndex]=\"autoZIndex\"\r\n [baseZIndex]=\"baseZIndex\"\r\n [hideTransitionOptions]=\"hideTransitionOptions\"\r\n [options]=\"overlayOptions\"\r\n [showTransitionOptions]=\"showTransitionOptions\"\r\n [target]=\"'@parent'\"\r\n >\r\n <ng-template pTemplate=\"content\">\r\n <div [class]=\"panelStyleClass\" [ngClass]=\"'p-dropdown-panel p-component'\" [ngStyle]=\"panelStyle\">\r\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\r\n <div (click)=\"$event.stopPropagation()\" *ngIf=\"filter\" class=\"p-dropdown-header\">\r\n <ng-container *ngIf=\"filterTemplate; else builtInFilterElement\">\r\n <ng-container *ngTemplateOutlet=\"filterTemplate; context: { options: filterOptions }\"></ng-container>\r\n </ng-container>\r\n <ng-template #builtInFilterElement>\r\n <div class=\"p-dropdown-filter-container\">\r\n <input\r\n #filter\r\n (input)=\"onFilterInputChange($event)\"\r\n (keydown)=\"onKeydown($event, false)\"\r\n (keydown.enter)=\"$event.preventDefault()\"\r\n [attr.aria-activedescendant]=\"overlayVisible ? 'p-highlighted-option' : labelId\"\r\n [attr.aria-label]=\"ariaFilterLabel\"\r\n [attr.placeholder]=\"filterPlaceholder\"\r\n [value]=\"filterValue || ''\"\r\n autocomplete=\"off\"\r\n class=\"p-dropdown-filter p-inputtext p-component\"\r\n type=\"text\"\r\n />\r\n <span class=\"p-dropdown-filter-icon pi pi-search\"></span>\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div [style.max-height]=\"virtualScroll ? 'auto' : scrollHeight || 'auto'\" class=\"p-dropdown-items-wrapper\">\r\n <p-scroller\r\n #scroller\r\n (onLazyLoad)=\"onLazyLoad.emit($event)\"\r\n *ngIf=\"virtualScroll\"\r\n [autoSize]=\"true\"\r\n [itemSize]=\"virtualScrollItemSize || _itemSize\"\r\n [items]=\"optionsToDisplay\"\r\n [lazy]=\"lazy\"\r\n [options]=\"virtualScrollOptions\"\r\n [style]=\"{ height: scrollHeight }\"\r\n >\r\n <ng-template let-items let-scrollerOptions=\"options\" pTemplate=\"content\">\r\n <ng-container\r\n *ngTemplateOutlet=\"buildInItems; context: { $implicit: items, options: scrollerOptions }\"></ng-container>\r\n </ng-template>\r\n <ng-container *ngIf=\"loaderTemplate\">\r\n <ng-template let-scrollerOptions=\"options\" pTemplate=\"loader\">\r\n <ng-container\r\n *ngTemplateOutlet=\"loaderTemplate; context: { options: scrollerOptions }\"></ng-container>\r\n </ng-template>\r\n </ng-container>\r\n </p-scroller>\r\n <ng-container *ngIf=\"!virtualScroll\">\r\n <ng-container\r\n *ngTemplateOutlet=\"buildInItems; context: { $implicit: optionsToDisplay, options: {} }\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-template #buildInItems let-items let-scrollerOptions=\"options\">\r\n <ul #items [attr.id]=\"listId\" [ngClass]=\"scrollerOptions.contentStyleClass\"\r\n [style]=\"scrollerOptions.contentStyle\"\r\n class=\"p-dropdown-items\" role=\"listbox\">\r\n <ng-container *ngIf=\"group\">\r\n <ng-template [ngForOf]=\"items\" let-optgroup ngFor>\r\n <li [ngStyle]=\"{ height: scrollerOptions.itemSize + 'px' }\" class=\"p-dropdown-item-group\">\r\n <span *ngIf=\"!groupTemplate\">{{ getOptionGroupLabel(optgroup) || '' }}</span>\r\n <ng-container *ngTemplateOutlet=\"groupTemplate; context: { $implicit: optgroup }\"></ng-container>\r\n </li>\r\n <ng-container\r\n *ngTemplateOutlet=\"itemslist; context: { $implicit: getOptionGroupChildren(optgroup), selectedOption: selectedOption }\"></ng-container>\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngIf=\"!group\">\r\n <ng-container\r\n *ngTemplateOutlet=\"itemslist; context: { $implicit: items, selectedOption: selectedOption }\"></ng-container>\r\n </ng-container>\r\n <ng-template #itemslist let-options let-selectedOption=\"selectedOption\">\r\n <ng-template [ngForOf]=\"options\" let-i=\"index\" let-option ngFor>\r\n <p-dropdownItem\r\n (onClick)=\"onItemClick($event)\"\r\n [disabled]=\"isOptionDisabled(option)\"\r\n [label]=\"getOptionLabel(option)\"\r\n [option]=\"option\"\r\n [selected]=\"selectedOption == option\"\r\n [template]=\"itemTemplate\"\r\n ></p-dropdownItem>\r\n </ng-template>\r\n </ng-template>\r\n <li *ngIf=\"filterValue && isEmpty()\" [ngStyle]=\"{ height: scrollerOptions.itemSize + 'px' }\"\r\n class=\"p-dropdown-empty-message\">\r\n <ng-container *ngIf=\"!emptyFilterTemplate && !emptyTemplate\">\r\n {{ emptyFilterMessageLabel }}\r\n </ng-container>\r\n <ng-container #emptyFilter *ngTemplateOutlet=\"emptyFilterTemplate || emptyTemplate\"></ng-container>\r\n </li>\r\n <li *ngIf=\"!filterValue && isEmpty()\" [ngStyle]=\"{ height: scrollerOptions.itemSize + 'px' }\"\r\n class=\"p-dropdown-empty-message\">\r\n <ng-container *ngIf=\"!emptyTemplate\">\r\n {{ emptyMessageLabel }}\r\n </ng-container>\r\n <ng-container #empty *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\r\n </li>\r\n </ul>\r\n </ng-template>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\r\n </div>\r\n </ng-template>\r\n </p-overlay>\r\n </div>\r\n</label>\r\n", styles: [".in-dropdown{width:100%}\n"] }]
|
|
185
|
+
}, providers: [DROPDOWN_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<label class=\"label type_varchars in-dropdown\">\r\n<span *ngIf=\"title\" class=\"c-label__content\">\r\n {{ title }}\r\n <span *ngIf=\"required\" class=\"c-label__req\">*</span>\r\n<span *ngIf=\"error\" class=\"c-label__sub_is-error\">{{ error }}</span>\r\n </span>\r\n <div\r\n #container\r\n (click)=\"onMouseclick($event)\"\r\n [class]=\"styleClass\"\r\n [ngClass]=\"{ 'p-dropdown p-component': true, 'p-disabled': disabled, 'p-dropdown-open': overlayVisible, 'p-focus': focused, 'p-dropdown-clearable': showClear && !disabled }\"\r\n [ngStyle]=\"style\"\r\n >\r\n <div class=\"p-hidden-accessible\">\r\n <input\r\n #in\r\n (blur)=\"onInputBlur($event)\"\r\n (focus)=\"onInputFocus($event)\"\r\n (keydown)=\"onKeydown($event, true)\"\r\n [attr.aria-activedescendant]=\"overlayVisible ? labelId : null\"\r\n [attr.aria-expanded]=\"false\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy\"\r\n [attr.id]=\"inputId\"\r\n [attr.placeholder]=\"placeholder\"\r\n [attr.tabindex]=\"tabindex\"\r\n [autofocus]=\"autofocus\"\r\n [disabled]=\"disabled\"\r\n aria-haspopup=\"listbox\"\r\n aria-haspopup=\"listbox\"\r\n pAutoFocus\r\n readonly\r\n role=\"combobox\"\r\n type=\"text\"\r\n />\r\n </div>\r\n <span\r\n *ngIf=\"!editable && label != null\"\r\n [attr.id]=\"labelId\"\r\n [ngClass]=\"{ 'p-dropdown-label p-inputtext': true, 'p-dropdown-label-empty': label == null || label.length === 0 }\"\r\n [pTooltip]=\"tooltip\"\r\n [positionStyle]=\"tooltipPositionStyle\"\r\n [tooltipPosition]=\"tooltipPosition\"\r\n [tooltipStyleClass]=\"tooltipStyleClass\">\r\n <ng-container *ngIf=\"!selectedItemTemplate\">{{ label || '' }}</ng-container>\r\n <ng-container\r\n *ngTemplateOutlet=\"selectedItemTemplate; context: { $implicit: selectedOption }\"></ng-container>\r\n </span>\r\n <span\r\n *ngIf=\"!editable && label == null\"\r\n [ngClass]=\"{ 'p-dropdown-label p-inputtext p-placeholder': true, 'p-dropdown-label-empty': placeholder == null || placeholder.length === 0 }\">{{ placeholder || '' }}</span>\r\n <input\r\n #editableInput\r\n (blur)=\"onInputBlur($event)\"\r\n (focus)=\"onEditableInputFocus($event)\"\r\n (input)=\"onEditableInputChange($event)\"\r\n *ngIf=\"editable\"\r\n [attr.aria-expanded]=\"overlayVisible\"\r\n [attr.maxlength]=\"maxlength\"\r\n [attr.placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n aria-haspopup=\"listbox\"\r\n class=\"p-dropdown-label p-inputtext\"\r\n type=\"text\"\r\n />\r\n <i (click)=\"clear($event)\" *ngIf=\"isVisibleClearIcon\" class=\"p-dropdown-clear-icon pi pi-times\"></i>\r\n <div [attr.aria-expanded]=\"overlayVisible\" aria-haspopup=\"listbox\" aria-label=\"dropdown trigger\"\r\n class=\"p-dropdown-trigger\"\r\n role=\"button\">\r\n <span [ngClass]=\"dropdownIcon\" class=\"p-dropdown-trigger-icon\"></span>\r\n </div>\r\n <p-overlay\r\n #overlay\r\n (onAnimationStart)=\"onOverlayAnimationStart($event)\"\r\n (onHide)=\"hide()\"\r\n [(visible)]=\"overlayVisible\"\r\n [appendTo]=\"appendTo\"\r\n [autoZIndex]=\"autoZIndex\"\r\n [baseZIndex]=\"baseZIndex\"\r\n [hideTransitionOptions]=\"hideTransitionOptions\"\r\n [options]=\"overlayOptions\"\r\n [showTransitionOptions]=\"showTransitionOptions\"\r\n [target]=\"'@parent'\"\r\n >\r\n <ng-template pTemplate=\"content\">\r\n <div [class]=\"panelStyleClass\" [ngClass]=\"'p-dropdown-panel p-component'\" [ngStyle]=\"panelStyle\">\r\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\r\n <div (click)=\"$event.stopPropagation()\" *ngIf=\"filter\" class=\"p-dropdown-header\">\r\n <ng-container *ngIf=\"filterTemplate; else builtInFilterElement\">\r\n <ng-container *ngTemplateOutlet=\"filterTemplate; context: { options: filterOptions }\"></ng-container>\r\n </ng-container>\r\n <ng-template #builtInFilterElement>\r\n <div class=\"p-dropdown-filter-container\">\r\n <input\r\n #filter\r\n (input)=\"onFilterInputChange($event)\"\r\n (keydown)=\"onKeydown($event, false)\"\r\n (keydown.enter)=\"$event.preventDefault()\"\r\n [attr.aria-activedescendant]=\"overlayVisible ? 'p-highlighted-option' : labelId\"\r\n [attr.aria-label]=\"ariaFilterLabel\"\r\n [attr.placeholder]=\"filterPlaceholder\"\r\n [value]=\"filterValue || ''\"\r\n autocomplete=\"off\"\r\n class=\"p-dropdown-filter p-inputtext p-component\"\r\n type=\"text\"\r\n />\r\n <span class=\"p-dropdown-filter-icon pi pi-search\"></span>\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div [style.max-height]=\"virtualScroll ? 'auto' : scrollHeight || 'auto'\" class=\"p-dropdown-items-wrapper\">\r\n <p-scroller\r\n #scroller\r\n (onLazyLoad)=\"onLazyLoad.emit($event)\"\r\n *ngIf=\"virtualScroll\"\r\n [autoSize]=\"true\"\r\n [itemSize]=\"virtualScrollItemSize || _itemSize\"\r\n [items]=\"optionsToDisplay\"\r\n [lazy]=\"lazy\"\r\n [options]=\"virtualScrollOptions\"\r\n [style]=\"{ height: scrollHeight }\"\r\n >\r\n <ng-template let-items let-scrollerOptions=\"options\" pTemplate=\"content\">\r\n <ng-container\r\n *ngTemplateOutlet=\"buildInItems; context: { $implicit: items, options: scrollerOptions }\"></ng-container>\r\n </ng-template>\r\n <ng-container *ngIf=\"loaderTemplate\">\r\n <ng-template let-scrollerOptions=\"options\" pTemplate=\"loader\">\r\n <ng-container\r\n *ngTemplateOutlet=\"loaderTemplate; context: { options: scrollerOptions }\"></ng-container>\r\n </ng-template>\r\n </ng-container>\r\n </p-scroller>\r\n <ng-container *ngIf=\"!virtualScroll\">\r\n <ng-container\r\n *ngTemplateOutlet=\"buildInItems; context: { $implicit: optionsToDisplay, options: {} }\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-template #buildInItems let-items let-scrollerOptions=\"options\">\r\n <ul #items [attr.id]=\"listId\" [ngClass]=\"scrollerOptions.contentStyleClass\"\r\n [style]=\"scrollerOptions.contentStyle\"\r\n class=\"p-dropdown-items\" role=\"listbox\">\r\n <ng-container *ngIf=\"group\">\r\n <ng-template [ngForOf]=\"items\" let-optgroup ngFor>\r\n <li [ngStyle]=\"{ height: scrollerOptions.itemSize + 'px' }\" class=\"p-dropdown-item-group\">\r\n <span *ngIf=\"!groupTemplate\">{{ getOptionGroupLabel(optgroup) || '' }}</span>\r\n <ng-container *ngTemplateOutlet=\"groupTemplate; context: { $implicit: optgroup }\"></ng-container>\r\n </li>\r\n <ng-container\r\n *ngTemplateOutlet=\"itemslist; context: { $implicit: getOptionGroupChildren(optgroup), selectedOption: selectedOption }\"></ng-container>\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngIf=\"!group\">\r\n <ng-container\r\n *ngTemplateOutlet=\"itemslist; context: { $implicit: items, selectedOption: selectedOption }\"></ng-container>\r\n </ng-container>\r\n <ng-template #itemslist let-options let-selectedOption=\"selectedOption\">\r\n <ng-template [ngForOf]=\"options\" let-i=\"index\" let-option ngFor>\r\n <p-dropdownItem\r\n (onClick)=\"onItemClick($event)\"\r\n [disabled]=\"isOptionDisabled(option)\"\r\n [label]=\"getOptionLabel(option)\"\r\n [option]=\"option\"\r\n [selected]=\"selectedOption == option\"\r\n [template]=\"itemTemplate\"\r\n ></p-dropdownItem>\r\n </ng-template>\r\n </ng-template>\r\n <li *ngIf=\"filterValue && isEmpty()\" [ngStyle]=\"{ height: scrollerOptions.itemSize + 'px' }\"\r\n class=\"p-dropdown-empty-message\">\r\n <ng-container *ngIf=\"!emptyFilterTemplate && !emptyTemplate\">\r\n {{ emptyFilterMessageLabel }}\r\n </ng-container>\r\n <ng-container #emptyFilter *ngTemplateOutlet=\"emptyFilterTemplate || emptyTemplate\"></ng-container>\r\n </li>\r\n <li *ngIf=\"!filterValue && isEmpty()\" [ngStyle]=\"{ height: scrollerOptions.itemSize + 'px' }\"\r\n class=\"p-dropdown-empty-message\">\r\n <ng-container *ngIf=\"!emptyTemplate\">\r\n {{ emptyMessageLabel }}\r\n </ng-container>\r\n <ng-container #empty *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\r\n </li>\r\n </ul>\r\n </ng-template>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\r\n </div>\r\n </ng-template>\r\n </p-overlay>\r\n </div>\r\n</label>\r\n", styles: [".in-dropdown{width:100%;margin-bottom:0}\n"] }]
|
|
186
186
|
}], propDecorators: { title: [{
|
|
187
187
|
type: Input
|
|
188
188
|
}], error: [{
|
|
@@ -335,4 +335,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
335
335
|
]
|
|
336
336
|
}]
|
|
337
337
|
}] });
|
|
338
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW5zcGFyay1jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2luc3BhcmstY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUVOLFdBQVcsRUFDWCxpQkFBaUIsRUFFbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF1QixpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLE9BQU8sRUFBVSxhQUFhLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUE0QyxZQUFZLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDcEYsT0FBTyxFQUFXLGNBQWMsRUFBa0IsTUFBTSxrQkFBa0IsQ0FBQztBQUMzRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7OztBQUUxQyxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBUTtJQUMxQyxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7SUFDaEQsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBb0JGLE1BQU0sT0FBTyxZQUFZO0lBbEJ6QjtRQWlDWSxZQUFPLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7S0FRM0Q7SUFOQyxhQUFhLENBQUMsS0FBWTtRQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztZQUNoQixhQUFhLEVBQUUsS0FBSztZQUNwQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDcEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7eUdBdEJVLFlBQVk7NkZBQVosWUFBWSxpUEFoQmI7Ozs7Ozs7Ozs7Ozs7O0dBY1Q7MkZBRVUsWUFBWTtrQkFsQnhCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7OztHQWNUO2lCQUNGOzhCQUVVLE1BQU07c0JBQWQsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUksT0FBTztzQkFBaEIsTUFBTTs7QUF3QlQsTUFBTSxPQUFPLGlCQUFrQixTQUFRLFFBQVE7SUFiL0M7O1FBc0JXLFVBQUssR0FBRyxJQUFJLENBQUM7UUFNdEI7O1dBRUc7UUFFTSxpQkFBWSxHQUFXLE9BQU8sQ0FBQztRQThEL0Isc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBRW5DLGlCQUFZLEdBQVcsb0JBQW9CLENBQUM7UUFVNUMsd0JBQW1CLEdBQVcsT0FBTyxDQUFDO1FBRXRDLHFCQUFnQixHQUFZLElBQUksQ0FBQztRQU1qQyx1QkFBa0IsR0FBVyxFQUFFLENBQUM7UUFFaEMsaUJBQVksR0FBVyxFQUFFLENBQUM7UUFFMUIsU0FBSSxHQUFZLEtBQUssQ0FBQztRQWdCdEIsb0JBQWUsR0FBVyxVQUFVLENBQUM7UUFJckMsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUVyQixvQkFBZSxHQUFXLE9BQU8sQ0FBQztRQUVsQyx5QkFBb0IsR0FBVyxVQUFVLENBQUM7UUFJMUMsb0JBQWUsR0FBWSxJQUFJLENBQUM7UUFFaEMscUJBQWdCLEdBQVcsS0FBSyxDQUFDO1FBRWhDLGFBQVEsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVqRCxhQUFRLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFakQsWUFBTyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRWhELFdBQU0sR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUUvQyxZQUFPLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFaEQsV0FBTSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRS9DLFdBQU0sR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUUvQyxZQUFPLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFaEQsZUFBVSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0tBNEQ5RDtJQTFNQyxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDL0UsQ0FBQztJQWFELElBQWEsT0FBTztRQUNsQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLEdBQVU7UUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUM7UUFDcEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDdEMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV0QyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsSUFBSSxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDaEYsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDbEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDaEM7UUFFRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUMzQixJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUU7WUFDakQsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3ZCO0lBQ0gsQ0FBQztJQWdIRCxJQUFhLFFBQVE7UUFDbkIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLFFBQVEsQ0FBQyxHQUFXO1FBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDO1FBQ3JCLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0ZBQWtGLENBQUMsQ0FBQztJQUNuRyxDQUFDO0lBSUQsSUFBYSxVQUFVO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxVQUFVLENBQUMsR0FBWTtRQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQztRQUN2QixPQUFPLENBQUMsSUFBSSxDQUFDLDJGQUEyRixDQUFDLENBQUM7SUFDNUcsQ0FBQztJQUlELElBQWEsVUFBVTtRQUNyQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksVUFBVSxDQUFDLEdBQVc7UUFDeEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUM7UUFDdkIsT0FBTyxDQUFDLElBQUksQ0FBQywyRkFBMkYsQ0FBQyxDQUFDO0lBQzVHLENBQUM7SUFJRCxJQUFhLHFCQUFxQjtRQUNoQyxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxxQkFBcUIsQ0FBQyxHQUFXO1FBQ25DLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxHQUFHLENBQUM7UUFDbEMsT0FBTyxDQUFDLElBQUksQ0FBQyxzR0FBc0csQ0FBQyxDQUFDO0lBQ3ZILENBQUM7SUFJRCxJQUFhLHFCQUFxQjtRQUNoQyxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxxQkFBcUIsQ0FBQyxHQUFXO1FBQ25DLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxHQUFHLENBQUM7UUFDbEMsT0FBTyxDQUFDLElBQUksQ0FBQyxzR0FBc0csQ0FBQyxDQUFDO0lBQ3ZILENBQUM7OzhHQWhOVSxpQkFBaUI7a0dBQWpCLGlCQUFpQix5Z0VBTGpCLENBQUMsdUJBQXVCLENBQUMsaURDcEZ0Qyx1clRBK0xBLGkrREQ3SWEsWUFBWTsyRkF1Q1osaUJBQWlCO2tCQWI3QixTQUFTOytCQUNFLGFBQWEsUUFFakI7d0JBQ0osS0FBSyxFQUFFLDBCQUEwQjt3QkFDakMsK0JBQStCLEVBQUUsUUFBUTt3QkFDekMsOEJBQThCLEVBQUUsMkJBQTJCO3FCQUM1RCxhQUNVLENBQUMsdUJBQXVCLENBQUMsbUJBQ25CLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUk7OEJBVTVCLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBVUcsWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUdPLE9BQU87c0JBQW5CLEtBQUs7Z0JBcUJHLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsZUFBZTtzQkFBdkIsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSztnQkFFRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSztnQkFFRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFFRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBRUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFFRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFFRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBRUcsY0FBYztzQkFBdEIsS0FBSztnQkFFRyxlQUFlO3NCQUF2QixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsY0FBYztzQkFBdEIsS0FBSztnQkFFRyxlQUFlO3NCQUF2QixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQUVHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUcsb0JBQW9CO3NCQUE1QixLQUFLO2dCQUVHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFFRyxlQUFlO3NCQUF2QixLQUFLO2dCQUVHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFFSSxRQUFRO3NCQUFqQixNQUFNO2dCQUVHLFFBQVE7c0JBQWpCLE1BQU07Z0JBRUcsT0FBTztzQkFBaEIsTUFBTTtnQkFFRyxNQUFNO3NCQUFmLE1BQU07Z0JBRUcsT0FBTztzQkFBaEIsTUFBTTtnQkFFRyxNQUFNO3NCQUFmLE1BQU07Z0JBRUcsTUFBTTtzQkFBZixNQUFNO2dCQUVHLE9BQU87c0JBQWhCLE1BQU07Z0JBRUcsVUFBVTtzQkFBbkIsTUFBTTtnQkFJTSxRQUFRO3NCQUFwQixLQUFLO2dCQVdPLFVBQVU7c0JBQXRCLEtBQUs7Z0JBV08sVUFBVTtzQkFBdEIsS0FBSztnQkFXTyxxQkFBcUI7c0JBQWpDLEtBQUs7Z0JBV08scUJBQXFCO3NCQUFqQyxLQUFLOztBQTJCUixNQUFNLE9BQU8sdUJBQXVCOztvSEFBdkIsdUJBQXVCO3FIQUF2Qix1QkFBdUIsaUJBcE92QixpQkFBaUIsRUF2Q2pCLFlBQVksYUFtUWIsWUFBWSxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLGVBQWUsYUE1TnZILGlCQUFpQixFQThOUCxhQUFhLEVBQUUsWUFBWSxFQUFFLGNBQWM7cUhBTXJELHVCQUF1QixZQVJ4QixZQUFZLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUU3RyxhQUFhLEVBQUUsWUFBWSxFQUFFLGNBQWM7MkZBTXJELHVCQUF1QjtrQkFibkMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osaUJBQWlCO3dCQUNqQixZQUFZO3FCQUNiO29CQUNELE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxlQUFlLENBQUM7b0JBQ25JLE9BQU8sRUFBRTt3QkFDUCxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLGNBQWM7cUJBQy9EO29CQUNELGVBQWUsRUFBRTt3QkFDZixpQkFBaUI7cUJBQ2xCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgZm9yd2FyZFJlZixcclxuICBJbnB1dCxcclxuICBOZ01vZHVsZSxcclxuICBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIFZpZXdSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtPdmVybGF5LCBPdmVybGF5TW9kdWxlfSBmcm9tICdwcmltZW5nL292ZXJsYXknO1xyXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQge0Ryb3Bkb3dufSBmcm9tICdwcmltZW5nL2Ryb3Bkb3duJztcclxuaW1wb3J0IHtUb29sdGlwTW9kdWxlfSBmcm9tICdwcmltZW5nL3Rvb2x0aXAnO1xyXG5pbXBvcnQge092ZXJsYXlPcHRpb25zLCBQcmltZVRlbXBsYXRlLCBTZWxlY3RJdGVtLCBTaGFyZWRNb2R1bGV9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHtTY3JvbGxlciwgU2Nyb2xsZXJNb2R1bGUsIFNjcm9sbGVyT3B0aW9uc30gZnJvbSAncHJpbWVuZy9zY3JvbGxlcic7XHJcbmltcG9ydCB7UmlwcGxlTW9kdWxlfSBmcm9tICdwcmltZW5nL3JpcHBsZSc7XHJcbmltcG9ydCB7QXV0b0ZvY3VzTW9kdWxlfSBmcm9tICdwcmltZW5nL2F1dG9mb2N1cyc7XHJcbmltcG9ydCB7T2JqZWN0VXRpbHN9IGZyb20gJ3ByaW1lbmcvdXRpbHMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IERST1BET1dOX1ZBTFVFX0FDQ0VTU09SOiBhbnkgPSB7XHJcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRHJvcGRvd25Db21wb25lbnQpLFxyXG4gIG11bHRpOiB0cnVlXHJcbn07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3AtZHJvcGRvd25JdGVtJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGxpXHJcbiAgICAgIChjbGljayk9XCJvbk9wdGlvbkNsaWNrKCRldmVudClcIlxyXG4gICAgICByb2xlPVwib3B0aW9uXCJcclxuICAgICAgcFJpcHBsZVxyXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImxhYmVsXCJcclxuICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJzZWxlY3RlZFwiXHJcbiAgICAgIFtuZ1N0eWxlXT1cInsgaGVpZ2h0OiBpdGVtU2l6ZSArICdweCcgfVwiXHJcbiAgICAgIFtpZF09XCJzZWxlY3RlZCA/ICdwLWhpZ2hsaWdodGVkLW9wdGlvbicgOiAnJ1wiXHJcbiAgICAgIFtuZ0NsYXNzXT1cInsgJ3AtZHJvcGRvd24taXRlbSc6IHRydWUsICdwLWhpZ2hsaWdodCc6IHNlbGVjdGVkLCAncC1kaXNhYmxlZCc6IGRpc2FibGVkIH1cIlxyXG4gICAgPlxyXG4gICAgICA8c3BhbiAqbmdJZj1cIiF0ZW1wbGF0ZVwiPnt7IGxhYmVsIHx8ICcnIH19PC9zcGFuPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBvcHRpb24gfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9saT5cclxuICBgXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEcm9wZG93bkl0ZW0ge1xyXG4gIEBJbnB1dCgpIG9wdGlvbjogU2VsZWN0SXRlbTtcclxuXHJcbiAgQElucHV0KCkgc2VsZWN0ZWQ6IGJvb2xlYW47XHJcblxyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xyXG5cclxuICBASW5wdXQoKSB2aXNpYmxlOiBib29sZWFuO1xyXG5cclxuICBASW5wdXQoKSBpdGVtU2l6ZTogbnVtYmVyO1xyXG5cclxuICBASW5wdXQoKSB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgQE91dHB1dCgpIG9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBvbk9wdGlvbkNsaWNrKGV2ZW50OiBFdmVudCkge1xyXG4gICAgdGhpcy5vbkNsaWNrLmVtaXQoe1xyXG4gICAgICBvcmlnaW5hbEV2ZW50OiBldmVudCxcclxuICAgICAgb3B0aW9uOiB0aGlzLm9wdGlvblxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpbi1kcm9wZG93bicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcclxuICBob3N0OiB7XHJcbiAgICBjbGFzczogJ3AtZWxlbWVudCBwLWlucHV0d3JhcHBlcicsXHJcbiAgICAnW2NsYXNzLnAtaW5wdXR3cmFwcGVyLWZpbGxlZF0nOiAnZmlsbGVkJyxcclxuICAgICdbY2xhc3MucC1pbnB1dHdyYXBwZXItZm9jdXNdJzogJ2ZvY3VzZWQgfHwgb3ZlcmxheVZpc2libGUnXHJcbiAgfSxcclxuICBwcm92aWRlcnM6IFtEUk9QRE9XTl9WQUxVRV9BQ0NFU1NPUl0sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBzdHlsZVVybHM6IFsnLi9kcm9wZG93bi5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIERyb3Bkb3duQ29tcG9uZW50IGV4dGVuZHMgRHJvcGRvd24gaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcblxyXG4gIC8qKlxyXG4gICAqINCd0LDRiCDQutC+0LRcclxuICAgKi9cclxuXHJcblxyXG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIGVycm9yID0gbnVsbDtcclxuXHJcbiAgZ2V0IGxhYmVsKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZE9wdGlvbiA/IHRoaXMuZ2V0T3B0aW9uTGFiZWwodGhpcy5zZWxlY3RlZE9wdGlvbikgOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog0LrQvtC0IFByaW1lTkdcclxuICAgKi9cclxuXHJcbiAgQElucHV0KCkgc2Nyb2xsSGVpZ2h0OiBzdHJpbmcgPSAnMjAwcHgnO1xyXG5cclxuICBASW5wdXQoKSBmaWx0ZXI6IGJvb2xlYW47XHJcblxyXG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZztcclxuXHJcbiAgX29wdGlvbnM6IGFueVtdO1xyXG4gIEBJbnB1dCgpIGdldCBvcHRpb25zKCk6IGFueVtdIHtcclxuICAgIHJldHVybiB0aGlzLl9vcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgc2V0IG9wdGlvbnModmFsOiBhbnlbXSkge1xyXG4gICAgdGhpcy5fb3B0aW9ucyA9IHZhbDtcclxuICAgIHRoaXMub3B0aW9uc1RvRGlzcGxheSA9IHRoaXMuX29wdGlvbnM7XHJcbiAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkT3B0aW9uKHRoaXMudmFsdWUpO1xyXG5cclxuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSB0aGlzLmZpbmRPcHRpb24odGhpcy52YWx1ZSwgdGhpcy5vcHRpb25zVG9EaXNwbGF5KTtcclxuICAgIGlmICghdGhpcy5zZWxlY3RlZE9wdGlvbiAmJiBPYmplY3RVdGlscy5pc05vdEVtcHR5KHRoaXMudmFsdWUpICYmICF0aGlzLmVkaXRhYmxlKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xyXG4gICAgICB0aGlzLm9uTW9kZWxDaGFuZ2UodGhpcy52YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5vcHRpb25zQ2hhbmdlZCA9IHRydWU7XHJcbiAgICBpZiAodGhpcy5fZmlsdGVyVmFsdWUgJiYgdGhpcy5fZmlsdGVyVmFsdWUubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZhdGVGaWx0ZXIoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHN0eWxlOiBhbnk7XHJcblxyXG4gIEBJbnB1dCgpIHBhbmVsU3R5bGU6IGFueTtcclxuXHJcbiAgQElucHV0KCkgc3R5bGVDbGFzczogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKSBwYW5lbFN0eWxlQ2xhc3M6IHN0cmluZztcclxuXHJcbiAgQElucHV0KCkgcmVhZG9ubHk6IGJvb2xlYW47XHJcblxyXG4gIEBJbnB1dCgpIHJlcXVpcmVkOiBib29sZWFuO1xyXG5cclxuICBASW5wdXQoKSBlZGl0YWJsZTogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KCkgYXBwZW5kVG86IGFueTtcclxuXHJcbiAgQElucHV0KCkgdGFiaW5kZXg6IG51bWJlcjtcclxuXHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcclxuXHJcbiAgQElucHV0KCkgZmlsdGVyUGxhY2Vob2xkZXI6IHN0cmluZztcclxuXHJcbiAgQElucHV0KCkgZmlsdGVyTG9jYWxlOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIGlucHV0SWQ6IHN0cmluZztcclxuXHJcbiAgQElucHV0KCkgc2VsZWN0SWQ6IHN0cmluZztcclxuXHJcbiAgQElucHV0KCkgZGF0YUtleTogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKSBmaWx0ZXJCeTogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKSBhdXRvZm9jdXM6IGJvb2xlYW47XHJcblxyXG4gIEBJbnB1dCgpIHJlc2V0RmlsdGVyT25IaWRlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIGRyb3Bkb3duSWNvbjogc3RyaW5nID0gJ3BpIHBpLWNoZXZyb24tZG93bic7XHJcblxyXG4gIEBJbnB1dCgpIG9wdGlvbkxhYmVsOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIG9wdGlvblZhbHVlOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIG9wdGlvbkRpc2FibGVkOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIG9wdGlvbkdyb3VwTGFiZWw6IHN0cmluZztcclxuXHJcbiAgQElucHV0KCkgb3B0aW9uR3JvdXBDaGlsZHJlbjogc3RyaW5nID0gJ2l0ZW1zJztcclxuXHJcbiAgQElucHV0KCkgYXV0b0Rpc3BsYXlGaXJzdDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpIGdyb3VwOiBib29sZWFuO1xyXG5cclxuICBASW5wdXQoKSBzaG93Q2xlYXI6IGJvb2xlYW47XHJcblxyXG4gIEBJbnB1dCgpIGVtcHR5RmlsdGVyTWVzc2FnZTogc3RyaW5nID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpIGVtcHR5TWVzc2FnZTogc3RyaW5nID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpIGxhenk6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgdmlydHVhbFNjcm9sbDogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KCkgdmlydHVhbFNjcm9sbEl0ZW1TaXplOiBudW1iZXI7XHJcblxyXG4gIEBJbnB1dCgpIHZpcnR1YWxTY3JvbGxPcHRpb25zOiBTY3JvbGxlck9wdGlvbnM7XHJcblxyXG4gIEBJbnB1dCgpIG92ZXJsYXlPcHRpb25zOiBPdmVybGF5T3B0aW9ucztcclxuXHJcbiAgQElucHV0KCkgYXJpYUZpbHRlckxhYmVsOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIGFyaWFMYWJlbDogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKSBhcmlhTGFiZWxsZWRCeTogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKSBmaWx0ZXJNYXRjaE1vZGU6IHN0cmluZyA9ICdjb250YWlucyc7XHJcblxyXG4gIEBJbnB1dCgpIG1heGxlbmd0aDogbnVtYmVyO1xyXG5cclxuICBASW5wdXQoKSB0b29sdGlwOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgQElucHV0KCkgdG9vbHRpcFBvc2l0aW9uOiBzdHJpbmcgPSAncmlnaHQnO1xyXG5cclxuICBASW5wdXQoKSB0b29sdGlwUG9zaXRpb25TdHlsZTogc3RyaW5nID0gJ2Fic29sdXRlJztcclxuXHJcbiAgQElucHV0KCkgdG9vbHRpcFN0eWxlQ2xhc3M6IHN0cmluZztcclxuXHJcbiAgQElucHV0KCkgYXV0b2ZvY3VzRmlsdGVyOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KCkgb3ZlcmxheURpcmVjdGlvbjogc3RyaW5nID0gJ2VuZCc7XHJcblxyXG4gIEBPdXRwdXQoKSBvbkNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKSBvbkZpbHRlcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKSBvbkZvY3VzOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQE91dHB1dCgpIG9uQmx1cjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKSBvbkNsaWNrOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQE91dHB1dCgpIG9uU2hvdzogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKSBvbkhpZGU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KCkgb25DbGVhcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKSBvbkxhenlMb2FkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgLyogQGRlcHJlY2F0ZWQgKi9cclxuICBfaXRlbVNpemU6IG51bWJlcjtcclxuICBASW5wdXQoKSBnZXQgaXRlbVNpemUoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9pdGVtU2l6ZTtcclxuICB9XHJcblxyXG4gIHNldCBpdGVtU2l6ZSh2YWw6IG51bWJlcikge1xyXG4gICAgdGhpcy5faXRlbVNpemUgPSB2YWw7XHJcbiAgICBjb25zb2xlLndhcm4oJ1RoZSBpdGVtU2l6ZSBwcm9wZXJ0eSBpcyBkZXByZWNhdGVkLCB1c2UgdmlydHVhbFNjcm9sbEl0ZW1TaXplIHByb3BlcnR5IGluc3RlYWQuJyk7XHJcbiAgfVxyXG5cclxuICAvKiBAZGVwcmVjYXRlZCAqL1xyXG4gIF9hdXRvWkluZGV4OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGdldCBhdXRvWkluZGV4KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2F1dG9aSW5kZXg7XHJcbiAgfVxyXG5cclxuICBzZXQgYXV0b1pJbmRleCh2YWw6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2F1dG9aSW5kZXggPSB2YWw7XHJcbiAgICBjb25zb2xlLndhcm4oJ1RoZSBhdXRvWkluZGV4IHByb3BlcnR5IGlzIGRlcHJlY2F0ZWQgc2luY2UgdjE0LjIuMCwgdXNlIG92ZXJsYXlPcHRpb25zIHByb3BlcnR5IGluc3RlYWQuJyk7XHJcbiAgfVxyXG5cclxuICAvKiBAZGVwcmVjYXRlZCAqL1xyXG4gIF9iYXNlWkluZGV4OiBudW1iZXI7XHJcbiAgQElucHV0KCkgZ2V0IGJhc2VaSW5kZXgoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9iYXNlWkluZGV4O1xyXG4gIH1cclxuXHJcbiAgc2V0IGJhc2VaSW5kZXgodmFsOiBudW1iZXIpIHtcclxuICAgIHRoaXMuX2Jhc2VaSW5kZXggPSB2YWw7XHJcbiAgICBjb25zb2xlLndhcm4oJ1RoZSBiYXNlWkluZGV4IHByb3BlcnR5IGlzIGRlcHJlY2F0ZWQgc2luY2UgdjE0LjIuMCwgdXNlIG92ZXJsYXlPcHRpb25zIHByb3BlcnR5IGluc3RlYWQuJyk7XHJcbiAgfVxyXG5cclxuICAvKiBAZGVwcmVjYXRlZCAqL1xyXG4gIF9zaG93VHJhbnNpdGlvbk9wdGlvbnM6IHN0cmluZztcclxuICBASW5wdXQoKSBnZXQgc2hvd1RyYW5zaXRpb25PcHRpb25zKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2hvd1RyYW5zaXRpb25PcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgc2V0IHNob3dUcmFuc2l0aW9uT3B0aW9ucyh2YWw6IHN0cmluZykge1xyXG4gICAgdGhpcy5fc2hvd1RyYW5zaXRpb25PcHRpb25zID0gdmFsO1xyXG4gICAgY29uc29sZS53YXJuKCdUaGUgc2hvd1RyYW5zaXRpb25PcHRpb25zIHByb3BlcnR5IGlzIGRlcHJlY2F0ZWQgc2luY2UgdjE0LjIuMCwgdXNlIG92ZXJsYXlPcHRpb25zIHByb3BlcnR5IGluc3RlYWQuJyk7XHJcbiAgfVxyXG5cclxuICAvKiBAZGVwcmVjYXRlZCAqL1xyXG4gIF9oaWRlVHJhbnNpdGlvbk9wdGlvbnM6IHN0cmluZztcclxuICBASW5wdXQoKSBnZXQgaGlkZVRyYW5zaXRpb25PcHRpb25zKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5faGlkZVRyYW5zaXRpb25PcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgc2V0IGhpZGVUcmFuc2l0aW9uT3B0aW9ucyh2YWw6IHN0cmluZykge1xyXG4gICAgdGhpcy5faGlkZVRyYW5zaXRpb25PcHRpb25zID0gdmFsO1xyXG4gICAgY29uc29sZS53YXJuKCdUaGUgaGlkZVRyYW5zaXRpb25PcHRpb25zIHByb3BlcnR5IGlzIGRlcHJlY2F0ZWQgc2luY2UgdjE0LjIuMCwgdXNlIG92ZXJsYXlPcHRpb25zIHByb3BlcnR5IGluc3RlYWQuJyk7XHJcbiAgfVxyXG5cclxuICBvdmVybGF5VmlzaWJsZTogYm9vbGVhbjtcclxuXHJcbiAgLy8gZW1wdHlGaWx0ZXIgPSAnJztcclxufVxyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIERyb3Bkb3duQ29tcG9uZW50LFxyXG4gICAgRHJvcGRvd25JdGVtLFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgT3ZlcmxheU1vZHVsZSwgU2hhcmVkTW9kdWxlLCBUb29sdGlwTW9kdWxlLCBSaXBwbGVNb2R1bGUsIFNjcm9sbGVyTW9kdWxlLCBBdXRvRm9jdXNNb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZV0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgRHJvcGRvd25Db21wb25lbnQsIE92ZXJsYXlNb2R1bGUsIFNoYXJlZE1vZHVsZSwgU2Nyb2xsZXJNb2R1bGVcclxuICBdLFxyXG4gIGVudHJ5Q29tcG9uZW50czogW1xyXG4gICAgRHJvcGRvd25Db21wb25lbnQsXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHJvcGRvd25Db21wb25lbnRNb2R1bGUge1xyXG59XHJcbiIsIjxsYWJlbCBjbGFzcz1cImxhYmVsIHR5cGVfdmFyY2hhcnMgaW4tZHJvcGRvd25cIj5cclxuPHNwYW4gKm5nSWY9XCJ0aXRsZVwiIGNsYXNzPVwiYy1sYWJlbF9fY29udGVudFwiPlxyXG4gICAgICAgIHt7IHRpdGxlIH19XHJcbiAgPHNwYW4gKm5nSWY9XCJyZXF1aXJlZFwiIGNsYXNzPVwiYy1sYWJlbF9fcmVxXCI+Kjwvc3Bhbj5cclxuPHNwYW4gKm5nSWY9XCJlcnJvclwiIGNsYXNzPVwiYy1sYWJlbF9fc3ViX2lzLWVycm9yXCI+e3sgZXJyb3IgfX08L3NwYW4+XHJcbiAgICA8L3NwYW4+XHJcbiAgPGRpdlxyXG4gICAgI2NvbnRhaW5lclxyXG4gICAgKGNsaWNrKT1cIm9uTW91c2VjbGljaygkZXZlbnQpXCJcclxuICAgIFtjbGFzc109XCJzdHlsZUNsYXNzXCJcclxuICAgIFtuZ0NsYXNzXT1cInsgJ3AtZHJvcGRvd24gcC1jb21wb25lbnQnOiB0cnVlLCAncC1kaXNhYmxlZCc6IGRpc2FibGVkLCAncC1kcm9wZG93bi1vcGVuJzogb3ZlcmxheVZpc2libGUsICdwLWZvY3VzJzogZm9jdXNlZCwgJ3AtZHJvcGRvd24tY2xlYXJhYmxlJzogc2hvd0NsZWFyICYmICFkaXNhYmxlZCB9XCJcclxuICAgIFtuZ1N0eWxlXT1cInN0eWxlXCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwicC1oaWRkZW4tYWNjZXNzaWJsZVwiPlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICAjaW5cclxuICAgICAgICAoYmx1cik9XCJvbklucHV0Qmx1cigkZXZlbnQpXCJcclxuICAgICAgICAoZm9jdXMpPVwib25JbnB1dEZvY3VzKCRldmVudClcIlxyXG4gICAgICAgIChrZXlkb3duKT1cIm9uS2V5ZG93bigkZXZlbnQsIHRydWUpXCJcclxuICAgICAgICBbYXR0ci5hcmlhLWFjdGl2ZWRlc2NlbmRhbnRdPVwib3ZlcmxheVZpc2libGUgPyBsYWJlbElkIDogbnVsbFwiXHJcbiAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJmYWxzZVwiXHJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxyXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJhcmlhTGFiZWxsZWRCeVwiXHJcbiAgICAgICAgW2F0dHIuaWRdPVwiaW5wdXRJZFwiXHJcbiAgICAgICAgW2F0dHIucGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICAgIFthdHRyLnRhYmluZGV4XT1cInRhYmluZGV4XCJcclxuICAgICAgICBbYXV0b2ZvY3VzXT1cImF1dG9mb2N1c1wiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICBhcmlhLWhhc3BvcHVwPVwibGlzdGJveFwiXHJcbiAgICAgICAgYXJpYS1oYXNwb3B1cD1cImxpc3Rib3hcIlxyXG4gICAgICAgIHBBdXRvRm9jdXNcclxuICAgICAgICByZWFkb25seVxyXG4gICAgICAgIHJvbGU9XCJjb21ib2JveFwiXHJcbiAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAvPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8c3BhblxyXG4gICAgICAqbmdJZj1cIiFlZGl0YWJsZSAmJiBsYWJlbCAhPSBudWxsXCJcclxuICAgICAgW2F0dHIuaWRdPVwibGFiZWxJZFwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cInsgJ3AtZHJvcGRvd24tbGFiZWwgcC1pbnB1dHRleHQnOiB0cnVlLCAncC1kcm9wZG93bi1sYWJlbC1lbXB0eSc6IGxhYmVsID09IG51bGwgfHwgbGFiZWwubGVuZ3RoID09PSAwIH1cIlxyXG4gICAgICBbcFRvb2x0aXBdPVwidG9vbHRpcFwiXHJcbiAgICAgIFtwb3NpdGlvblN0eWxlXT1cInRvb2x0aXBQb3NpdGlvblN0eWxlXCJcclxuICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCJ0b29sdGlwUG9zaXRpb25cIlxyXG4gICAgICBbdG9vbHRpcFN0eWxlQ2xhc3NdPVwidG9vbHRpcFN0eWxlQ2xhc3NcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhc2VsZWN0ZWRJdGVtVGVtcGxhdGVcIj57eyBsYWJlbCB8fCAnJyB9fTwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInNlbGVjdGVkSXRlbVRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogc2VsZWN0ZWRPcHRpb24gfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICA8c3BhblxyXG4gICAgICAqbmdJZj1cIiFlZGl0YWJsZSAmJiBsYWJlbCA9PSBudWxsXCJcclxuICAgICAgW25nQ2xhc3NdPVwieyAncC1kcm9wZG93bi1sYWJlbCBwLWlucHV0dGV4dCBwLXBsYWNlaG9sZGVyJzogdHJ1ZSwgJ3AtZHJvcGRvd24tbGFiZWwtZW1wdHknOiBwbGFjZWhvbGRlciA9PSBudWxsIHx8IHBsYWNlaG9sZGVyLmxlbmd0aCA9PT0gMCB9XCI+e3sgcGxhY2Vob2xkZXIgfHwgJycgfX08L3NwYW4+XHJcbiAgICA8aW5wdXRcclxuICAgICAgI2VkaXRhYmxlSW5wdXRcclxuICAgICAgKGJsdXIpPVwib25JbnB1dEJsdXIoJGV2ZW50KVwiXHJcbiAgICAgIChmb2N1cyk9XCJvbkVkaXRhYmxlSW5wdXRGb2N1cygkZXZlbnQpXCJcclxuICAgICAgKGlucHV0KT1cIm9uRWRpdGFibGVJbnB1dENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgKm5nSWY9XCJlZGl0YWJsZVwiXHJcbiAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwib3ZlcmxheVZpc2libGVcIlxyXG4gICAgICBbYXR0ci5tYXhsZW5ndGhdPVwibWF4bGVuZ3RoXCJcclxuICAgICAgW2F0dHIucGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICBhcmlhLWhhc3BvcHVwPVwibGlzdGJveFwiXHJcbiAgICAgIGNsYXNzPVwicC1kcm9wZG93bi1sYWJlbCBwLWlucHV0dGV4dFwiXHJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgIC8+XHJcbiAgICA8aSAoY2xpY2spPVwiY2xlYXIoJGV2ZW50KVwiICpuZ0lmPVwiaXNWaXNpYmxlQ2xlYXJJY29uXCIgY2xhc3M9XCJwLWRyb3Bkb3duLWNsZWFyLWljb24gcGkgcGktdGltZXNcIj48L2k+XHJcbiAgICA8ZGl2IFthdHRyLmFyaWEtZXhwYW5kZWRdPVwib3ZlcmxheVZpc2libGVcIiBhcmlhLWhhc3BvcHVwPVwibGlzdGJveFwiIGFyaWEtbGFiZWw9XCJkcm9wZG93biB0cmlnZ2VyXCJcclxuICAgICAgICAgY2xhc3M9XCJwLWRyb3Bkb3duLXRyaWdnZXJcIlxyXG4gICAgICAgICByb2xlPVwiYnV0dG9uXCI+XHJcbiAgICAgIDxzcGFuIFtuZ0NsYXNzXT1cImRyb3Bkb3duSWNvblwiIGNsYXNzPVwicC1kcm9wZG93bi10cmlnZ2VyLWljb25cIj48L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxwLW92ZXJsYXlcclxuICAgICAgI292ZXJsYXlcclxuICAgICAgKG9uQW5pbWF0aW9uU3RhcnQpPVwib25PdmVybGF5QW5pbWF0aW9uU3RhcnQoJGV2ZW50KVwiXHJcbiAgICAgIChvbkhpZGUpPVwiaGlkZSgpXCJcclxuICAgICAgWyh2aXNpYmxlKV09XCJvdmVybGF5VmlzaWJsZVwiXHJcbiAgICAgIFthcHBlbmRUb109XCJhcHBlbmRUb1wiXHJcbiAgICAgIFthdXRvWkluZGV4XT1cImF1dG9aSW5kZXhcIlxyXG4gICAgICBbYmFzZVpJbmRleF09XCJiYXNlWkluZGV4XCJcclxuICAgICAgW2hpZGVUcmFuc2l0aW9uT3B0aW9uc109XCJoaWRlVHJhbnNpdGlvbk9wdGlvbnNcIlxyXG4gICAgICBbb3B0aW9uc109XCJvdmVybGF5T3B0aW9uc1wiXHJcbiAgICAgIFtzaG93VHJhbnNpdGlvbk9wdGlvbnNdPVwic2hvd1RyYW5zaXRpb25PcHRpb25zXCJcclxuICAgICAgW3RhcmdldF09XCInQHBhcmVudCdcIlxyXG4gICAgPlxyXG4gICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiY29udGVudFwiPlxyXG4gICAgICAgIDxkaXYgW2NsYXNzXT1cInBhbmVsU3R5bGVDbGFzc1wiIFtuZ0NsYXNzXT1cIidwLWRyb3Bkb3duLXBhbmVsIHAtY29tcG9uZW50J1wiIFtuZ1N0eWxlXT1cInBhbmVsU3R5bGVcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoZWFkZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPGRpdiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCIgKm5nSWY9XCJmaWx0ZXJcIiBjbGFzcz1cInAtZHJvcGRvd24taGVhZGVyXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWx0ZXJUZW1wbGF0ZTsgZWxzZSBidWlsdEluRmlsdGVyRWxlbWVudFwiPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmaWx0ZXJUZW1wbGF0ZTsgY29udGV4dDogeyBvcHRpb25zOiBmaWx0ZXJPcHRpb25zIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjYnVpbHRJbkZpbHRlckVsZW1lbnQ+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtZHJvcGRvd24tZmlsdGVyLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICNmaWx0ZXJcclxuICAgICAgICAgICAgICAgICAgKGlucHV0KT1cIm9uRmlsdGVySW5wdXRDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgIChrZXlkb3duKT1cIm9uS2V5ZG93bigkZXZlbnQsIGZhbHNlKVwiXHJcbiAgICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCJcclxuICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1hY3RpdmVkZXNjZW5kYW50XT1cIm92ZXJsYXlWaXNpYmxlID8gJ3AtaGlnaGxpZ2h0ZWQtb3B0aW9uJyA6IGxhYmVsSWRcIlxyXG4gICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFGaWx0ZXJMYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cImZpbHRlclBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImZpbHRlclZhbHVlIHx8ICcnXCJcclxuICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLWRyb3Bkb3duLWZpbHRlciBwLWlucHV0dGV4dCBwLWNvbXBvbmVudFwiXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtZHJvcGRvd24tZmlsdGVyLWljb24gcGkgcGktc2VhcmNoXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IFtzdHlsZS5tYXgtaGVpZ2h0XT1cInZpcnR1YWxTY3JvbGwgPyAnYXV0bycgOiBzY3JvbGxIZWlnaHQgfHwgJ2F1dG8nXCIgY2xhc3M9XCJwLWRyb3Bkb3duLWl0ZW1zLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgPHAtc2Nyb2xsZXJcclxuICAgICAgICAgICAgICAjc2Nyb2xsZXJcclxuICAgICAgICAgICAgICAob25MYXp5TG9hZCk9XCJvbkxhenlMb2FkLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJ2aXJ0dWFsU2Nyb2xsXCJcclxuICAgICAgICAgICAgICBbYXV0b1NpemVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgW2l0ZW1TaXplXT1cInZpcnR1YWxTY3JvbGxJdGVtU2l6ZSB8fCBfaXRlbVNpemVcIlxyXG4gICAgICAgICAgICAgIFtpdGVtc109XCJvcHRpb25zVG9EaXNwbGF5XCJcclxuICAgICAgICAgICAgICBbbGF6eV09XCJsYXp5XCJcclxuICAgICAgICAgICAgICBbb3B0aW9uc109XCJ2aXJ0dWFsU2Nyb2xsT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgW3N0eWxlXT1cInsgaGVpZ2h0OiBzY3JvbGxIZWlnaHQgfVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWl0ZW1zIGxldC1zY3JvbGxlck9wdGlvbnM9XCJvcHRpb25zXCIgcFRlbXBsYXRlPVwiY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImJ1aWxkSW5JdGVtczsgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW1zLCBvcHRpb25zOiBzY3JvbGxlck9wdGlvbnMgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvYWRlclRlbXBsYXRlXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXNjcm9sbGVyT3B0aW9ucz1cIm9wdGlvbnNcIiBwVGVtcGxhdGU9XCJsb2FkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9hZGVyVGVtcGxhdGU7IGNvbnRleHQ6IHsgb3B0aW9uczogc2Nyb2xsZXJPcHRpb25zIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvcC1zY3JvbGxlcj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiF2aXJ0dWFsU2Nyb2xsXCI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidWlsZEluSXRlbXM7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBvcHRpb25zVG9EaXNwbGF5LCBvcHRpb25zOiB7fSB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNidWlsZEluSXRlbXMgbGV0LWl0ZW1zIGxldC1zY3JvbGxlck9wdGlvbnM9XCJvcHRpb25zXCI+XHJcbiAgICAgICAgICAgICAgPHVsICNpdGVtcyBbYXR0ci5pZF09XCJsaXN0SWRcIiBbbmdDbGFzc109XCJzY3JvbGxlck9wdGlvbnMuY29udGVudFN0eWxlQ2xhc3NcIlxyXG4gICAgICAgICAgICAgICAgICBbc3R5bGVdPVwic2Nyb2xsZXJPcHRpb25zLmNvbnRlbnRTdHlsZVwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC1kcm9wZG93bi1pdGVtc1wiIHJvbGU9XCJsaXN0Ym94XCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0Zvck9mXT1cIml0ZW1zXCIgbGV0LW9wdGdyb3VwIG5nRm9yPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaSBbbmdTdHlsZV09XCJ7IGhlaWdodDogc2Nyb2xsZXJPcHRpb25zLml0ZW1TaXplICsgJ3B4JyB9XCIgY2xhc3M9XCJwLWRyb3Bkb3duLWl0ZW0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWdyb3VwVGVtcGxhdGVcIj57eyBnZXRPcHRpb25Hcm91cExhYmVsKG9wdGdyb3VwKSB8fCAnJyB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJncm91cFRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogb3B0Z3JvdXAgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtc2xpc3Q7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBnZXRPcHRpb25Hcm91cENoaWxkcmVuKG9wdGdyb3VwKSwgc2VsZWN0ZWRPcHRpb246IHNlbGVjdGVkT3B0aW9uIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtc2xpc3Q7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtcywgc2VsZWN0ZWRPcHRpb246IHNlbGVjdGVkT3B0aW9uIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNpdGVtc2xpc3QgbGV0LW9wdGlvbnMgbGV0LXNlbGVjdGVkT3B0aW9uPVwic2VsZWN0ZWRPcHRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0Zvck9mXT1cIm9wdGlvbnNcIiBsZXQtaT1cImluZGV4XCIgbGV0LW9wdGlvbiBuZ0Zvcj5cclxuICAgICAgICAgICAgICAgICAgICA8cC1kcm9wZG93bkl0ZW1cclxuICAgICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cIm9uSXRlbUNsaWNrKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzT3B0aW9uRGlzYWJsZWQob3B0aW9uKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiZ2V0T3B0aW9uTGFiZWwob3B0aW9uKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbb3B0aW9uXT1cIm9wdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwic2VsZWN0ZWRPcHRpb24gPT0gb3B0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFt0ZW1wbGF0ZV09XCJpdGVtVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L3AtZHJvcGRvd25JdGVtPlxyXG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDxsaSAqbmdJZj1cImZpbHRlclZhbHVlICYmIGlzRW1wdHkoKVwiIFtuZ1N0eWxlXT1cInsgaGVpZ2h0OiBzY3JvbGxlck9wdGlvbnMuaXRlbVNpemUgKyAncHgnIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC1kcm9wZG93bi1lbXB0eS1tZXNzYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZW1wdHlGaWx0ZXJUZW1wbGF0ZSAmJiAhZW1wdHlUZW1wbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IGVtcHR5RmlsdGVyTWVzc2FnZUxhYmVsIH19XHJcbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICNlbXB0eUZpbHRlciAqbmdUZW1wbGF0ZU91dGxldD1cImVtcHR5RmlsdGVyVGVtcGxhdGUgfHwgZW1wdHlUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgIDxsaSAqbmdJZj1cIiFmaWx0ZXJWYWx1ZSAmJiBpc0VtcHR5KClcIiBbbmdTdHlsZV09XCJ7IGhlaWdodDogc2Nyb2xsZXJPcHRpb25zLml0ZW1TaXplICsgJ3B4JyB9XCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInAtZHJvcGRvd24tZW1wdHktbWVzc2FnZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWVtcHR5VGVtcGxhdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBlbXB0eU1lc3NhZ2VMYWJlbCB9fVxyXG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAjZW1wdHkgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlbXB0eVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmb290ZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9wLW92ZXJsYXk+XHJcbiAgPC9kaXY+XHJcbjwvbGFiZWw+XHJcbiJdfQ==
|
|
338
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW5zcGFyay1jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2luc3BhcmstY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUVOLFdBQVcsRUFDWCxpQkFBaUIsRUFFbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF1QixpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLE9BQU8sRUFBVSxhQUFhLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUE0QyxZQUFZLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDcEYsT0FBTyxFQUFXLGNBQWMsRUFBa0IsTUFBTSxrQkFBa0IsQ0FBQztBQUMzRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7OztBQUUxQyxN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YyxFQUFFLGVBQWUsRUFBRSxlQUFlLENBQUM7b0JBQ25JLE9BQU8sRUFBRTt3QkFDUCxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLGNBQWM7cUJBQy9EO29CQUNELGVBQWUsRUFBRTt3QkFDZixpQkFBaUI7cUJBQ2xCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgZm9yd2FyZFJlZixcclxuICBJbnB1dCxcclxuICBOZ01vZHVsZSxcclxuICBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIFZpZXdSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtPdmVybGF5LCBPdmVybGF5TW9kdWxlfSBmcm9tICdwcmltZW5nL292ZXJsYXknO1xyXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQge0Ryb3Bkb3dufSBmcm9tICdwcmltZW5nL2Ryb3Bkb3duJztcclxuaW1wb3J0IHtUb29sdGlwTW9kdWxlfSBmcm9tICdwcmltZW5nL3Rvb2x0aXAnO1xyXG5pbXBvcnQge092ZXJsYXlPcHRpb25zLCBQcmltZVRlbXBsYXRlLCBTZWxlY3RJdGVtLCBTaGFyZWRNb2R1bGV9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHtTY3JvbGxlciwgU2Nyb2xsZXJNb2R1bGUsIFNjcm9sbGVyT3B0aW9uc30gZnJvbSAncHJpbWVuZy9zY3JvbGxlcic7XHJcbmltcG9ydCB7UmlwcGxlTW9kdWxlfSBmcm9tICdwcmltZW5nL3JpcHBsZSc7XHJcbmltcG9ydCB7QXV0b0ZvY3VzTW9kdWxlfSBmcm9tICdwcmltZW5nL2F1dG9mb2N1cyc7XHJcbmltcG9ydCB7T2JqZWN0VXRpbHN9IGZyb20gJ3ByaW1lbmcvdXRpbHMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IERST1BET1dOX1ZBTFVFX0FDQ0VTU09SOiBhbnkgPSB7XHJcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRHJvcGRvd25Db21wb25lbnQpLFxyXG4gIG11bHRpOiB0cnVlXHJcbn07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3AtZHJvcGRvd25JdGVtJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGxpXHJcbiAgICAgIChjbGljayk9XCJvbk9wdGlvbkNsaWNrKCRldmVudClcIlxyXG4gICAgICByb2xlPVwib3B0aW9uXCJcclxuICAgICAgcFJpcHBsZVxyXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImxhYmVsXCJcclxuICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJzZWxlY3RlZFwiXHJcbiAgICAgIFtuZ1N0eWxlXT1cInsgaGVpZ2h0OiBpdGVtU2l6ZSArICdweCcgfVwiXHJcbiAgICAgIFtpZF09XCJzZWxlY3RlZCA/ICdwLWhpZ2hsaWdodGVkLW9wdGlvbicgOiAnJ1wiXHJcbiAgICAgIFtuZ0NsYXNzXT1cInsgJ3AtZHJvcGRvd24taXRlbSc6IHRydWUsICdwLWhpZ2hsaWdodCc6IHNlbGVjdGVkLCAncC1kaXNhYmxlZCc6IGRpc2FibGVkIH1cIlxyXG4gICAgPlxyXG4gICAgICA8c3BhbiAqbmdJZj1cIiF0ZW1wbGF0ZVwiPnt7IGxhYmVsIHx8ICcnIH19PC9zcGFuPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBvcHRpb24gfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9saT5cclxuICBgXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEcm9wZG93bkl0ZW0ge1xyXG4gIEBJbnB1dCgpIG9wdGlvbjogU2VsZWN0SXRlbTtcclxuXHJcbiAgQElucHV0KCkgc2VsZWN0ZWQ6IGJvb2xlYW47XHJcblxyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xyXG5cclxuICBASW5wdXQoKSB2aXNpYmxlOiBib29sZWFuO1xyXG5cclxuICBASW5wdXQoKSBpdGVtU2l6ZTogbnVtYmVyO1xyXG5cclxuICBASW5wdXQoKSB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgQE91dHB1dCgpIG9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBvbk9wdGlvbkNsaWNrKGV2ZW50OiBFdmVudCkge1xyXG4gICAgdGhpcy5vbkNsaWNrLmVtaXQoe1xyXG4gICAgICBvcmlnaW5hbEV2ZW50OiBldmVudCxcclxuICAgICAgb3B0aW9uOiB0aGlzLm9wdGlvblxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpbi1kcm9wZG93bicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcclxuICBob3N0OiB7XHJcbiAgICBjbGFzczogJ3AtZWxlbWVudCBwLWlucHV0d3JhcHBlcicsXHJcbiAgICAnW2NsYXNzLnAtaW5wdXR3cmFwcGVyLWZpbGxlZF0nOiAnZmlsbGVkJyxcclxuICAgICdbY2xhc3MucC1pbnB1dHdyYXBwZXItZm9jdXNdJzogJ2ZvY3VzZWQgfHwgb3ZlcmxheVZpc2libGUnXHJcbiAgfSxcclxuICBwcm92aWRlcnM6IFtEUk9QRE9XTl9WQUxVRV9BQ0NFU1NPUl0sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBzdHlsZVVybHM6IFsnLi9kcm9wZG93bi5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIERyb3Bkb3duQ29tcG9uZW50IGV4dGVuZHMgRHJvcGRvd24gaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcblxyXG4gIC8qKlxyXG4gICAqINCd0LDRiCDQutC+0LRcclxuICAgKi9cclxuXHJcblxyXG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIGVycm9yID0gbnVsbDtcclxuXHJcbiAgZ2V0IGxhYmVsKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZE9wdGlvbiA/IHRoaXMuZ2V0T3B0aW9uTGFiZWwodGhpcy5zZWxlY3RlZE9wdGlvbikgOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog0LrQvtC0IFByaW1lTkdcclxuICAgKi9cclxuXHJcbiAgQElucHV0KCkgc2Nyb2xsSGVpZ2h0OiBzdHJpbmcgPSAnMjAwcHgnO1xyXG5cclxuICBASW5wdXQoKSBmaWx0ZXI6IGJvb2xlYW47XHJcblxyXG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZztcclxuXHJcbiAgX29wdGlvbnM6IGFueVtdO1xyXG4gIEBJbnB1dCgpIGdldCBvcHRpb25zKCk6IGFueVtdIHtcclxuICAgIHJldHVybiB0aGlzLl9vcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgc2V0IG9wdGlvbnModmFsOiBhbnlbXSkge1xyXG4gICAgdGhpcy5fb3B0aW9ucyA9IHZhbDtcclxuICAgIHRoaXMub3B0aW9uc1RvRGlzcGxheSA9IHRoaXMuX29wdGlvbnM7XHJcbiAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkT3B0aW9uKHRoaXMudmFsdWUpO1xyXG5cclxuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSB0aGlzLmZpbmRPcHRpb24odGhpcy52YWx1ZSwgdGhpcy5vcHRpb25zVG9EaXNwbGF5KTtcclxuICAgIGlmICghdGhpcy5zZWxlY3RlZE9wdGlvbiAmJiBPYmplY3RVdGlscy5pc05vdEVtcHR5KHRoaXMudmFsdWUpICYmICF0aGlzLmVkaXRhYmxlKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xyXG4gICAgICB0aGlzLm9uTW9kZWxDaGFuZ2UodGhpcy52YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5vcHRpb25zQ2hhbmdlZCA9IHRydWU7XHJcbiAgICBpZiAodGhpcy5fZmlsdGVyVmFsdWUgJiYgdGhpcy5fZmlsdGVyVmFsdWUubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZhdGVGaWx0ZXIoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHN0eWxlOiBhbnk7XHJcblxyXG4gIEBJbnB1dCgpIHBhbmVsU3R5bGU6IGFueTtcclxuXHJcbiAgQElucHV0KCkgc3R5bGVDbGFzczogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKSBwYW5lbFN0eWxlQ2xhc3M6IHN0cmluZztcclxuXHJcbiAgQElucHV0KCkgcmVhZG9ubHk6IGJvb2xlYW47XHJcblxyXG4gIEBJbnB1dCgpIHJlcXVpcmVkOiBib29sZWFuO1xyXG5cclxuICBASW5wdXQoKSBlZGl0YWJsZTogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KCkgYXBwZW5kVG86IGFueTtcclxuXHJcbiAgQElucHV0KCkgdGFiaW5kZXg6IG51bWJlcjtcclxuXHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcclxuXHJcbiAgQElucHV0KCkgZmlsdGVyUGxhY2Vob2xkZXI6IHN0cmluZztcclxuXHJcbiAgQElucHV0KCkgZmlsdGVyTG9jYWxlOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIGlucHV0SWQ6IHN0cmluZztcclxuXHJcbiAgQElucHV0KCkgc2VsZWN0SWQ6IHN0cmluZztcclxuXHJcbiAgQElucHV0KCkgZGF0YUtleTogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKSBmaWx0ZXJCeTogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKSBhdXRvZm9jdXM6IGJvb2xlYW47XHJcblxyXG4gIEBJbnB1dCgpIHJlc2V0RmlsdGVyT25IaWRlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIGRyb3Bkb3duSWNvbjogc3RyaW5nID0gJ3BpIHBpLWNoZXZyb24tZG93bic7XHJcblxyXG4gIEBJbnB1dCgpIG9wdGlvbkxhYmVsOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIG9wdGlvblZhbHVlOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIG9wdGlvbkRpc2FibGVkOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIG9wdGlvbkdyb3VwTGFiZWw6IHN0cmluZztcclxuXHJcbiAgQElucHV0KCkgb3B0aW9uR3JvdXBDaGlsZHJlbjogc3RyaW5nID0gJ2l0ZW1zJztcclxuXHJcbiAgQElucHV0KCkgYXV0b0Rpc3BsYXlGaXJzdDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpIGdyb3VwOiBib29sZWFuO1xyXG5cclxuICBASW5wdXQoKSBzaG93Q2xlYXI6IGJvb2xlYW47XHJcblxyXG4gIEBJbnB1dCgpIGVtcHR5RmlsdGVyTWVzc2FnZTogc3RyaW5nID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpIGVtcHR5TWVzc2FnZTogc3RyaW5nID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpIGxhenk6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgdmlydHVhbFNjcm9sbDogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KCkgdmlydHVhbFNjcm9sbEl0ZW1TaXplOiBudW1iZXI7XHJcblxyXG4gIEBJbnB1dCgpIHZpcnR1YWxTY3JvbGxPcHRpb25zOiBTY3JvbGxlck9wdGlvbnM7XHJcblxyXG4gIEBJbnB1dCgpIG92ZXJsYXlPcHRpb25zOiBPdmVybGF5T3B0aW9ucztcclxuXHJcbiAgQElucHV0KCkgYXJpYUZpbHRlckxhYmVsOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIGFyaWFMYWJlbDogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKSBhcmlhTGFiZWxsZWRCeTogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKSBmaWx0ZXJNYXRjaE1vZGU6IHN0cmluZyA9ICdjb250YWlucyc7XHJcblxyXG4gIEBJbnB1dCgpIG1heGxlbmd0aDogbnVtYmVyO1xyXG5cclxuICBASW5wdXQoKSB0b29sdGlwOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgQElucHV0KCkgdG9vbHRpcFBvc2l0aW9uOiBzdHJpbmcgPSAncmlnaHQnO1xyXG5cclxuICBASW5wdXQoKSB0b29sdGlwUG9zaXRpb25TdHlsZTogc3RyaW5nID0gJ2Fic29sdXRlJztcclxuXHJcbiAgQElucHV0KCkgdG9vbHRpcFN0eWxlQ2xhc3M6IHN0cmluZztcclxuXHJcbiAgQElucHV0KCkgYXV0b2ZvY3VzRmlsdGVyOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KCkgb3ZlcmxheURpcmVjdGlvbjogc3RyaW5nID0gJ2VuZCc7XHJcblxyXG4gIEBPdXRwdXQoKSBvbkNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKSBvbkZpbHRlcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKSBvbkZvY3VzOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQE91dHB1dCgpIG9uQmx1cjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKSBvbkNsaWNrOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQE91dHB1dCgpIG9uU2hvdzogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKSBvbkhpZGU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KCkgb25DbGVhcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKSBvbkxhenlMb2FkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgLyogQGRlcHJlY2F0ZWQgKi9cclxuICBfaXRlbVNpemU6IG51bWJlcjtcclxuICBASW5wdXQoKSBnZXQgaXRlbVNpemUoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9pdGVtU2l6ZTtcclxuICB9XHJcblxyXG4gIHNldCBpdGVtU2l6ZSh2YWw6IG51bWJlcikge1xyXG4gICAgdGhpcy5faXRlbVNpemUgPSB2YWw7XHJcbiAgICBjb25zb2xlLndhcm4oJ1RoZSBpdGVtU2l6ZSBwcm9wZXJ0eSBpcyBkZXByZWNhdGVkLCB1c2UgdmlydHVhbFNjcm9sbEl0ZW1TaXplIHByb3BlcnR5IGluc3RlYWQuJyk7XHJcbiAgfVxyXG5cclxuICAvKiBAZGVwcmVjYXRlZCAqL1xyXG4gIF9hdXRvWkluZGV4OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGdldCBhdXRvWkluZGV4KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2F1dG9aSW5kZXg7XHJcbiAgfVxyXG5cclxuICBzZXQgYXV0b1pJbmRleCh2YWw6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2F1dG9aSW5kZXggPSB2YWw7XHJcbiAgICBjb25zb2xlLndhcm4oJ1RoZSBhdXRvWkluZGV4IHByb3BlcnR5IGlzIGRlcHJlY2F0ZWQgc2luY2UgdjE0LjIuMCwgdXNlIG92ZXJsYXlPcHRpb25zIHByb3BlcnR5IGluc3RlYWQuJyk7XHJcbiAgfVxyXG5cclxuICAvKiBAZGVwcmVjYXRlZCAqL1xyXG4gIF9iYXNlWkluZGV4OiBudW1iZXI7XHJcbiAgQElucHV0KCkgZ2V0IGJhc2VaSW5kZXgoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9iYXNlWkluZGV4O1xyXG4gIH1cclxuXHJcbiAgc2V0IGJhc2VaSW5kZXgodmFsOiBudW1iZXIpIHtcclxuICAgIHRoaXMuX2Jhc2VaSW5kZXggPSB2YWw7XHJcbiAgICBjb25zb2xlLndhcm4oJ1RoZSBiYXNlWkluZGV4IHByb3BlcnR5IGlzIGRlcHJlY2F0ZWQgc2luY2UgdjE0LjIuMCwgdXNlIG92ZXJsYXlPcHRpb25zIHByb3BlcnR5IGluc3RlYWQuJyk7XHJcbiAgfVxyXG5cclxuICAvKiBAZGVwcmVjYXRlZCAqL1xyXG4gIF9zaG93VHJhbnNpdGlvbk9wdGlvbnM6IHN0cmluZztcclxuICBASW5wdXQoKSBnZXQgc2hvd1RyYW5zaXRpb25PcHRpb25zKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2hvd1RyYW5zaXRpb25PcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgc2V0IHNob3dUcmFuc2l0aW9uT3B0aW9ucyh2YWw6IHN0cmluZykge1xyXG4gICAgdGhpcy5fc2hvd1RyYW5zaXRpb25PcHRpb25zID0gdmFsO1xyXG4gICAgY29uc29sZS53YXJuKCdUaGUgc2hvd1RyYW5zaXRpb25PcHRpb25zIHByb3BlcnR5IGlzIGRlcHJlY2F0ZWQgc2luY2UgdjE0LjIuMCwgdXNlIG92ZXJsYXlPcHRpb25zIHByb3BlcnR5IGluc3RlYWQuJyk7XHJcbiAgfVxyXG5cclxuICAvKiBAZGVwcmVjYXRlZCAqL1xyXG4gIF9oaWRlVHJhbnNpdGlvbk9wdGlvbnM6IHN0cmluZztcclxuICBASW5wdXQoKSBnZXQgaGlkZVRyYW5zaXRpb25PcHRpb25zKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5faGlkZVRyYW5zaXRpb25PcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgc2V0IGhpZGVUcmFuc2l0aW9uT3B0aW9ucyh2YWw6IHN0cmluZykge1xyXG4gICAgdGhpcy5faGlkZVRyYW5zaXRpb25PcHRpb25zID0gdmFsO1xyXG4gICAgY29uc29sZS53YXJuKCdUaGUgaGlkZVRyYW5zaXRpb25PcHRpb25zIHByb3BlcnR5IGlzIGRlcHJlY2F0ZWQgc2luY2UgdjE0LjIuMCwgdXNlIG92ZXJsYXlPcHRpb25zIHByb3BlcnR5IGluc3RlYWQuJyk7XHJcbiAgfVxyXG5cclxuICBvdmVybGF5VmlzaWJsZTogYm9vbGVhbjtcclxuXHJcbiAgLy8gZW1wdHlGaWx0ZXIgPSAnJztcclxufVxyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIERyb3Bkb3duQ29tcG9uZW50LFxyXG4gICAgRHJvcGRvd25JdGVtLFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgT3ZlcmxheU1vZHVsZSwgU2hhcmVkTW9kdWxlLCBUb29sdGlwTW9kdWxlLCBSaXBwbGVNb2R1bGUsIFNjcm9sbGVyTW9kdWxlLCBBdXRvRm9jdXNNb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZV0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgRHJvcGRvd25Db21wb25lbnQsIE92ZXJsYXlNb2R1bGUsIFNoYXJlZE1vZHVsZSwgU2Nyb2xsZXJNb2R1bGVcclxuICBdLFxyXG4gIGVudHJ5Q29tcG9uZW50czogW1xyXG4gICAgRHJvcGRvd25Db21wb25lbnQsXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHJvcGRvd25Db21wb25lbnRNb2R1bGUge1xyXG59XHJcbiIsIjxsYWJlbCBjbGFzcz1cImxhYmVsIHR5cGVfdmFyY2hhcnMgaW4tZHJvcGRvd25cIj5cclxuPHNwYW4gKm5nSWY9XCJ0aXRsZVwiIGNsYXNzPVwiYy1sYWJlbF9fY29udGVudFwiPlxyXG4gICAgICAgIHt7IHRpdGxlIH19XHJcbiAgPHNwYW4gKm5nSWY9XCJyZXF1aXJlZFwiIGNsYXNzPVwiYy1sYWJlbF9fcmVxXCI+Kjwvc3Bhbj5cclxuPHNwYW4gKm5nSWY9XCJlcnJvclwiIGNsYXNzPVwiYy1sYWJlbF9fc3ViX2lzLWVycm9yXCI+e3sgZXJyb3IgfX08L3NwYW4+XHJcbiAgICA8L3NwYW4+XHJcbiAgPGRpdlxyXG4gICAgI2NvbnRhaW5lclxyXG4gICAgKGNsaWNrKT1cIm9uTW91c2VjbGljaygkZXZlbnQpXCJcclxuICAgIFtjbGFzc109XCJzdHlsZUNsYXNzXCJcclxuICAgIFtuZ0NsYXNzXT1cInsgJ3AtZHJvcGRvd24gcC1jb21wb25lbnQnOiB0cnVlLCAncC1kaXNhYmxlZCc6IGRpc2FibGVkLCAncC1kcm9wZG93bi1vcGVuJzogb3ZlcmxheVZpc2libGUsICdwLWZvY3VzJzogZm9jdXNlZCwgJ3AtZHJvcGRvd24tY2xlYXJhYmxlJzogc2hvd0NsZWFyICYmICFkaXNhYmxlZCB9XCJcclxuICAgIFtuZ1N0eWxlXT1cInN0eWxlXCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwicC1oaWRkZW4tYWNjZXNzaWJsZVwiPlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICAjaW5cclxuICAgICAgICAoYmx1cik9XCJvbklucHV0Qmx1cigkZXZlbnQpXCJcclxuICAgICAgICAoZm9jdXMpPVwib25JbnB1dEZvY3VzKCRldmVudClcIlxyXG4gICAgICAgIChrZXlkb3duKT1cIm9uS2V5ZG93bigkZXZlbnQsIHRydWUpXCJcclxuICAgICAgICBbYXR0ci5hcmlhLWFjdGl2ZWRlc2NlbmRhbnRdPVwib3ZlcmxheVZpc2libGUgPyBsYWJlbElkIDogbnVsbFwiXHJcbiAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJmYWxzZVwiXHJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxyXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJhcmlhTGFiZWxsZWRCeVwiXHJcbiAgICAgICAgW2F0dHIuaWRdPVwiaW5wdXRJZFwiXHJcbiAgICAgICAgW2F0dHIucGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICAgIFthdHRyLnRhYmluZGV4XT1cInRhYmluZGV4XCJcclxuICAgICAgICBbYXV0b2ZvY3VzXT1cImF1dG9mb2N1c1wiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICBhcmlhLWhhc3BvcHVwPVwibGlzdGJveFwiXHJcbiAgICAgICAgYXJpYS1oYXNwb3B1cD1cImxpc3Rib3hcIlxyXG4gICAgICAgIHBBdXRvRm9jdXNcclxuICAgICAgICByZWFkb25seVxyXG4gICAgICAgIHJvbGU9XCJjb21ib2JveFwiXHJcbiAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAvPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8c3BhblxyXG4gICAgICAqbmdJZj1cIiFlZGl0YWJsZSAmJiBsYWJlbCAhPSBudWxsXCJcclxuICAgICAgW2F0dHIuaWRdPVwibGFiZWxJZFwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cInsgJ3AtZHJvcGRvd24tbGFiZWwgcC1pbnB1dHRleHQnOiB0cnVlLCAncC1kcm9wZG93bi1sYWJlbC1lbXB0eSc6IGxhYmVsID09IG51bGwgfHwgbGFiZWwubGVuZ3RoID09PSAwIH1cIlxyXG4gICAgICBbcFRvb2x0aXBdPVwidG9vbHRpcFwiXHJcbiAgICAgIFtwb3NpdGlvblN0eWxlXT1cInRvb2x0aXBQb3NpdGlvblN0eWxlXCJcclxuICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCJ0b29sdGlwUG9zaXRpb25cIlxyXG4gICAgICBbdG9vbHRpcFN0eWxlQ2xhc3NdPVwidG9vbHRpcFN0eWxlQ2xhc3NcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhc2VsZWN0ZWRJdGVtVGVtcGxhdGVcIj57eyBsYWJlbCB8fCAnJyB9fTwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInNlbGVjdGVkSXRlbVRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogc2VsZWN0ZWRPcHRpb24gfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICA8c3BhblxyXG4gICAgICAqbmdJZj1cIiFlZGl0YWJsZSAmJiBsYWJlbCA9PSBudWxsXCJcclxuICAgICAgW25nQ2xhc3NdPVwieyAncC1kcm9wZG93bi1sYWJlbCBwLWlucHV0dGV4dCBwLXBsYWNlaG9sZGVyJzogdHJ1ZSwgJ3AtZHJvcGRvd24tbGFiZWwtZW1wdHknOiBwbGFjZWhvbGRlciA9PSBudWxsIHx8IHBsYWNlaG9sZGVyLmxlbmd0aCA9PT0gMCB9XCI+e3sgcGxhY2Vob2xkZXIgfHwgJycgfX08L3NwYW4+XHJcbiAgICA8aW5wdXRcclxuICAgICAgI2VkaXRhYmxlSW5wdXRcclxuICAgICAgKGJsdXIpPVwib25JbnB1dEJsdXIoJGV2ZW50KVwiXHJcbiAgICAgIChmb2N1cyk9XCJvbkVkaXRhYmxlSW5wdXRGb2N1cygkZXZlbnQpXCJcclxuICAgICAgKGlucHV0KT1cIm9uRWRpdGFibGVJbnB1dENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgKm5nSWY9XCJlZGl0YWJsZVwiXHJcbiAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwib3ZlcmxheVZpc2libGVcIlxyXG4gICAgICBbYXR0ci5tYXhsZW5ndGhdPVwibWF4bGVuZ3RoXCJcclxuICAgICAgW2F0dHIucGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICBhcmlhLWhhc3BvcHVwPVwibGlzdGJveFwiXHJcbiAgICAgIGNsYXNzPVwicC1kcm9wZG93bi1sYWJlbCBwLWlucHV0dGV4dFwiXHJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgIC8+XHJcbiAgICA8aSAoY2xpY2spPVwiY2xlYXIoJGV2ZW50KVwiICpuZ0lmPVwiaXNWaXNpYmxlQ2xlYXJJY29uXCIgY2xhc3M9XCJwLWRyb3Bkb3duLWNsZWFyLWljb24gcGkgcGktdGltZXNcIj48L2k+XHJcbiAgICA8ZGl2IFthdHRyLmFyaWEtZXhwYW5kZWRdPVwib3ZlcmxheVZpc2libGVcIiBhcmlhLWhhc3BvcHVwPVwibGlzdGJveFwiIGFyaWEtbGFiZWw9XCJkcm9wZG93biB0cmlnZ2VyXCJcclxuICAgICAgICAgY2xhc3M9XCJwLWRyb3Bkb3duLXRyaWdnZXJcIlxyXG4gICAgICAgICByb2xlPVwiYnV0dG9uXCI+XHJcbiAgICAgIDxzcGFuIFtuZ0NsYXNzXT1cImRyb3Bkb3duSWNvblwiIGNsYXNzPVwicC1kcm9wZG93bi10cmlnZ2VyLWljb25cIj48L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxwLW92ZXJsYXlcclxuICAgICAgI292ZXJsYXlcclxuICAgICAgKG9uQW5pbWF0aW9uU3RhcnQpPVwib25PdmVybGF5QW5pbWF0aW9uU3RhcnQoJGV2ZW50KVwiXHJcbiAgICAgIChvbkhpZGUpPVwiaGlkZSgpXCJcclxuICAgICAgWyh2aXNpYmxlKV09XCJvdmVybGF5VmlzaWJsZVwiXHJcbiAgICAgIFthcHBlbmRUb109XCJhcHBlbmRUb1wiXHJcbiAgICAgIFthdXRvWkluZGV4XT1cImF1dG9aSW5kZXhcIlxyXG4gICAgICBbYmFzZVpJbmRleF09XCJiYXNlWkluZGV4XCJcclxuICAgICAgW2hpZGVUcmFuc2l0aW9uT3B0aW9uc109XCJoaWRlVHJhbnNpdGlvbk9wdGlvbnNcIlxyXG4gICAgICBbb3B0aW9uc109XCJvdmVybGF5T3B0aW9uc1wiXHJcbiAgICAgIFtzaG93VHJhbnNpdGlvbk9wdGlvbnNdPVwic2hvd1RyYW5zaXRpb25PcHRpb25zXCJcclxuICAgICAgW3RhcmdldF09XCInQHBhcmVudCdcIlxyXG4gICAgPlxyXG4gICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiY29udGVudFwiPlxyXG4gICAgICAgIDxkaXYgW2NsYXNzXT1cInBhbmVsU3R5bGVDbGFzc1wiIFtuZ0NsYXNzXT1cIidwLWRyb3Bkb3duLXBhbmVsIHAtY29tcG9uZW50J1wiIFtuZ1N0eWxlXT1cInBhbmVsU3R5bGVcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoZWFkZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPGRpdiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCIgKm5nSWY9XCJmaWx0ZXJcIiBjbGFzcz1cInAtZHJvcGRvd24taGVhZGVyXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWx0ZXJUZW1wbGF0ZTsgZWxzZSBidWlsdEluRmlsdGVyRWxlbWVudFwiPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmaWx0ZXJUZW1wbGF0ZTsgY29udGV4dDogeyBvcHRpb25zOiBmaWx0ZXJPcHRpb25zIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjYnVpbHRJbkZpbHRlckVsZW1lbnQ+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtZHJvcGRvd24tZmlsdGVyLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICNmaWx0ZXJcclxuICAgICAgICAgICAgICAgICAgKGlucHV0KT1cIm9uRmlsdGVySW5wdXRDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgIChrZXlkb3duKT1cIm9uS2V5ZG93bigkZXZlbnQsIGZhbHNlKVwiXHJcbiAgICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCJcclxuICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1hY3RpdmVkZXNjZW5kYW50XT1cIm92ZXJsYXlWaXNpYmxlID8gJ3AtaGlnaGxpZ2h0ZWQtb3B0aW9uJyA6IGxhYmVsSWRcIlxyXG4gICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFGaWx0ZXJMYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cImZpbHRlclBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImZpbHRlclZhbHVlIHx8ICcnXCJcclxuICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLWRyb3Bkb3duLWZpbHRlciBwLWlucHV0dGV4dCBwLWNvbXBvbmVudFwiXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtZHJvcGRvd24tZmlsdGVyLWljb24gcGkgcGktc2VhcmNoXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IFtzdHlsZS5tYXgtaGVpZ2h0XT1cInZpcnR1YWxTY3JvbGwgPyAnYXV0bycgOiBzY3JvbGxIZWlnaHQgfHwgJ2F1dG8nXCIgY2xhc3M9XCJwLWRyb3Bkb3duLWl0ZW1zLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgPHAtc2Nyb2xsZXJcclxuICAgICAgICAgICAgICAjc2Nyb2xsZXJcclxuICAgICAgICAgICAgICAob25MYXp5TG9hZCk9XCJvbkxhenlMb2FkLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJ2aXJ0dWFsU2Nyb2xsXCJcclxuICAgICAgICAgICAgICBbYXV0b1NpemVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgW2l0ZW1TaXplXT1cInZpcnR1YWxTY3JvbGxJdGVtU2l6ZSB8fCBfaXRlbVNpemVcIlxyXG4gICAgICAgICAgICAgIFtpdGVtc109XCJvcHRpb25zVG9EaXNwbGF5XCJcclxuICAgICAgICAgICAgICBbbGF6eV09XCJsYXp5XCJcclxuICAgICAgICAgICAgICBbb3B0aW9uc109XCJ2aXJ0dWFsU2Nyb2xsT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgW3N0eWxlXT1cInsgaGVpZ2h0OiBzY3JvbGxIZWlnaHQgfVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWl0ZW1zIGxldC1zY3JvbGxlck9wdGlvbnM9XCJvcHRpb25zXCIgcFRlbXBsYXRlPVwiY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImJ1aWxkSW5JdGVtczsgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW1zLCBvcHRpb25zOiBzY3JvbGxlck9wdGlvbnMgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvYWRlclRlbXBsYXRlXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXNjcm9sbGVyT3B0aW9ucz1cIm9wdGlvbnNcIiBwVGVtcGxhdGU9XCJsb2FkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9hZGVyVGVtcGxhdGU7IGNvbnRleHQ6IHsgb3B0aW9uczogc2Nyb2xsZXJPcHRpb25zIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvcC1zY3JvbGxlcj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiF2aXJ0dWFsU2Nyb2xsXCI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidWlsZEluSXRlbXM7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBvcHRpb25zVG9EaXNwbGF5LCBvcHRpb25zOiB7fSB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNidWlsZEluSXRlbXMgbGV0LWl0ZW1zIGxldC1zY3JvbGxlck9wdGlvbnM9XCJvcHRpb25zXCI+XHJcbiAgICAgICAgICAgICAgPHVsICNpdGVtcyBbYXR0ci5pZF09XCJsaXN0SWRcIiBbbmdDbGFzc109XCJzY3JvbGxlck9wdGlvbnMuY29udGVudFN0eWxlQ2xhc3NcIlxyXG4gICAgICAgICAgICAgICAgICBbc3R5bGVdPVwic2Nyb2xsZXJPcHRpb25zLmNvbnRlbnRTdHlsZVwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC1kcm9wZG93bi1pdGVtc1wiIHJvbGU9XCJsaXN0Ym94XCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0Zvck9mXT1cIml0ZW1zXCIgbGV0LW9wdGdyb3VwIG5nRm9yPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaSBbbmdTdHlsZV09XCJ7IGhlaWdodDogc2Nyb2xsZXJPcHRpb25zLml0ZW1TaXplICsgJ3B4JyB9XCIgY2xhc3M9XCJwLWRyb3Bkb3duLWl0ZW0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWdyb3VwVGVtcGxhdGVcIj57eyBnZXRPcHRpb25Hcm91cExhYmVsKG9wdGdyb3VwKSB8fCAnJyB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJncm91cFRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogb3B0Z3JvdXAgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtc2xpc3Q7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBnZXRPcHRpb25Hcm91cENoaWxkcmVuKG9wdGdyb3VwKSwgc2VsZWN0ZWRPcHRpb246IHNlbGVjdGVkT3B0aW9uIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtc2xpc3Q7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtcywgc2VsZWN0ZWRPcHRpb246IHNlbGVjdGVkT3B0aW9uIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNpdGVtc2xpc3QgbGV0LW9wdGlvbnMgbGV0LXNlbGVjdGVkT3B0aW9uPVwic2VsZWN0ZWRPcHRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0Zvck9mXT1cIm9wdGlvbnNcIiBsZXQtaT1cImluZGV4XCIgbGV0LW9wdGlvbiBuZ0Zvcj5cclxuICAgICAgICAgICAgICAgICAgICA8cC1kcm9wZG93bkl0ZW1cclxuICAgICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cIm9uSXRlbUNsaWNrKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzT3B0aW9uRGlzYWJsZWQob3B0aW9uKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiZ2V0T3B0aW9uTGFiZWwob3B0aW9uKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbb3B0aW9uXT1cIm9wdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwic2VsZWN0ZWRPcHRpb24gPT0gb3B0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFt0ZW1wbGF0ZV09XCJpdGVtVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L3AtZHJvcGRvd25JdGVtPlxyXG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDxsaSAqbmdJZj1cImZpbHRlclZhbHVlICYmIGlzRW1wdHkoKVwiIFtuZ1N0eWxlXT1cInsgaGVpZ2h0OiBzY3JvbGxlck9wdGlvbnMuaXRlbVNpemUgKyAncHgnIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC1kcm9wZG93bi1lbXB0eS1tZXNzYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZW1wdHlGaWx0ZXJUZW1wbGF0ZSAmJiAhZW1wdHlUZW1wbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IGVtcHR5RmlsdGVyTWVzc2FnZUxhYmVsIH19XHJcbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICNlbXB0eUZpbHRlciAqbmdUZW1wbGF0ZU91dGxldD1cImVtcHR5RmlsdGVyVGVtcGxhdGUgfHwgZW1wdHlUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgIDxsaSAqbmdJZj1cIiFmaWx0ZXJWYWx1ZSAmJiBpc0VtcHR5KClcIiBbbmdTdHlsZV09XCJ7IGhlaWdodDogc2Nyb2xsZXJPcHRpb25zLml0ZW1TaXplICsgJ3B4JyB9XCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInAtZHJvcGRvd24tZW1wdHktbWVzc2FnZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWVtcHR5VGVtcGxhdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBlbXB0eU1lc3NhZ2VMYWJlbCB9fVxyXG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAjZW1wdHkgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlbXB0eVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmb290ZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9wLW92ZXJsYXk+XHJcbiAgPC9kaXY+XHJcbjwvbGFiZWw+XHJcbiJdfQ==
|
|
@@ -1191,14 +1191,14 @@ class DropdownComponent extends Dropdown {
|
|
|
1191
1191
|
}
|
|
1192
1192
|
}
|
|
1193
1193
|
DropdownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DropdownComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
1194
|
-
DropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: DropdownComponent, selector: "in-dropdown", inputs: { title: "title", error: "error", scrollHeight: "scrollHeight", filter: "filter", name: "name", options: "options", style: "style", panelStyle: "panelStyle", styleClass: "styleClass", panelStyleClass: "panelStyleClass", readonly: "readonly", required: "required", editable: "editable", appendTo: "appendTo", tabindex: "tabindex", placeholder: "placeholder", filterPlaceholder: "filterPlaceholder", filterLocale: "filterLocale", inputId: "inputId", selectId: "selectId", dataKey: "dataKey", filterBy: "filterBy", autofocus: "autofocus", resetFilterOnHide: "resetFilterOnHide", dropdownIcon: "dropdownIcon", optionLabel: "optionLabel", optionValue: "optionValue", optionDisabled: "optionDisabled", optionGroupLabel: "optionGroupLabel", optionGroupChildren: "optionGroupChildren", autoDisplayFirst: "autoDisplayFirst", group: "group", showClear: "showClear", emptyFilterMessage: "emptyFilterMessage", emptyMessage: "emptyMessage", lazy: "lazy", virtualScroll: "virtualScroll", virtualScrollItemSize: "virtualScrollItemSize", virtualScrollOptions: "virtualScrollOptions", overlayOptions: "overlayOptions", ariaFilterLabel: "ariaFilterLabel", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", filterMatchMode: "filterMatchMode", maxlength: "maxlength", tooltip: "tooltip", tooltipPosition: "tooltipPosition", tooltipPositionStyle: "tooltipPositionStyle", tooltipStyleClass: "tooltipStyleClass", autofocusFilter: "autofocusFilter", overlayDirection: "overlayDirection", itemSize: "itemSize", autoZIndex: "autoZIndex", baseZIndex: "baseZIndex", showTransitionOptions: "showTransitionOptions", hideTransitionOptions: "hideTransitionOptions" }, outputs: { onChange: "onChange", onFilter: "onFilter", onFocus: "onFocus", onBlur: "onBlur", onClick: "onClick", onShow: "onShow", onHide: "onHide", onClear: "onClear", onLazyLoad: "onLazyLoad" }, host: { properties: { "class.p-inputwrapper-filled": "filled", "class.p-inputwrapper-focus": "focused || overlayVisible" }, classAttribute: "p-element p-inputwrapper" }, providers: [DROPDOWN_VALUE_ACCESSOR], usesInheritance: true, ngImport: i0, template: "<label class=\"label type_varchars in-dropdown\">\r\n<span *ngIf=\"title\" class=\"c-label__content\">\r\n {{ title }}\r\n <span *ngIf=\"required\" class=\"c-label__req\">*</span>\r\n<span *ngIf=\"error\" class=\"c-label__sub_is-error\">{{ error }}</span>\r\n </span>\r\n <div\r\n #container\r\n (click)=\"onMouseclick($event)\"\r\n [class]=\"styleClass\"\r\n [ngClass]=\"{ 'p-dropdown p-component': true, 'p-disabled': disabled, 'p-dropdown-open': overlayVisible, 'p-focus': focused, 'p-dropdown-clearable': showClear && !disabled }\"\r\n [ngStyle]=\"style\"\r\n >\r\n <div class=\"p-hidden-accessible\">\r\n <input\r\n #in\r\n (blur)=\"onInputBlur($event)\"\r\n (focus)=\"onInputFocus($event)\"\r\n (keydown)=\"onKeydown($event, true)\"\r\n [attr.aria-activedescendant]=\"overlayVisible ? labelId : null\"\r\n [attr.aria-expanded]=\"false\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy\"\r\n [attr.id]=\"inputId\"\r\n [attr.placeholder]=\"placeholder\"\r\n [attr.tabindex]=\"tabindex\"\r\n [autofocus]=\"autofocus\"\r\n [disabled]=\"disabled\"\r\n aria-haspopup=\"listbox\"\r\n aria-haspopup=\"listbox\"\r\n pAutoFocus\r\n readonly\r\n role=\"combobox\"\r\n type=\"text\"\r\n />\r\n </div>\r\n <span\r\n *ngIf=\"!editable && label != null\"\r\n [attr.id]=\"labelId\"\r\n [ngClass]=\"{ 'p-dropdown-label p-inputtext': true, 'p-dropdown-label-empty': label == null || label.length === 0 }\"\r\n [pTooltip]=\"tooltip\"\r\n [positionStyle]=\"tooltipPositionStyle\"\r\n [tooltipPosition]=\"tooltipPosition\"\r\n [tooltipStyleClass]=\"tooltipStyleClass\">\r\n <ng-container *ngIf=\"!selectedItemTemplate\">{{ label || '' }}</ng-container>\r\n <ng-container\r\n *ngTemplateOutlet=\"selectedItemTemplate; context: { $implicit: selectedOption }\"></ng-container>\r\n </span>\r\n <span\r\n *ngIf=\"!editable && label == null\"\r\n [ngClass]=\"{ 'p-dropdown-label p-inputtext p-placeholder': true, 'p-dropdown-label-empty': placeholder == null || placeholder.length === 0 }\">{{ placeholder || '' }}</span>\r\n <input\r\n #editableInput\r\n (blur)=\"onInputBlur($event)\"\r\n (focus)=\"onEditableInputFocus($event)\"\r\n (input)=\"onEditableInputChange($event)\"\r\n *ngIf=\"editable\"\r\n [attr.aria-expanded]=\"overlayVisible\"\r\n [attr.maxlength]=\"maxlength\"\r\n [attr.placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n aria-haspopup=\"listbox\"\r\n class=\"p-dropdown-label p-inputtext\"\r\n type=\"text\"\r\n />\r\n <i (click)=\"clear($event)\" *ngIf=\"isVisibleClearIcon\" class=\"p-dropdown-clear-icon pi pi-times\"></i>\r\n <div [attr.aria-expanded]=\"overlayVisible\" aria-haspopup=\"listbox\" aria-label=\"dropdown trigger\"\r\n class=\"p-dropdown-trigger\"\r\n role=\"button\">\r\n <span [ngClass]=\"dropdownIcon\" class=\"p-dropdown-trigger-icon\"></span>\r\n </div>\r\n <p-overlay\r\n #overlay\r\n (onAnimationStart)=\"onOverlayAnimationStart($event)\"\r\n (onHide)=\"hide()\"\r\n [(visible)]=\"overlayVisible\"\r\n [appendTo]=\"appendTo\"\r\n [autoZIndex]=\"autoZIndex\"\r\n [baseZIndex]=\"baseZIndex\"\r\n [hideTransitionOptions]=\"hideTransitionOptions\"\r\n [options]=\"overlayOptions\"\r\n [showTransitionOptions]=\"showTransitionOptions\"\r\n [target]=\"'@parent'\"\r\n >\r\n <ng-template pTemplate=\"content\">\r\n <div [class]=\"panelStyleClass\" [ngClass]=\"'p-dropdown-panel p-component'\" [ngStyle]=\"panelStyle\">\r\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\r\n <div (click)=\"$event.stopPropagation()\" *ngIf=\"filter\" class=\"p-dropdown-header\">\r\n <ng-container *ngIf=\"filterTemplate; else builtInFilterElement\">\r\n <ng-container *ngTemplateOutlet=\"filterTemplate; context: { options: filterOptions }\"></ng-container>\r\n </ng-container>\r\n <ng-template #builtInFilterElement>\r\n <div class=\"p-dropdown-filter-container\">\r\n <input\r\n #filter\r\n (input)=\"onFilterInputChange($event)\"\r\n (keydown)=\"onKeydown($event, false)\"\r\n (keydown.enter)=\"$event.preventDefault()\"\r\n [attr.aria-activedescendant]=\"overlayVisible ? 'p-highlighted-option' : labelId\"\r\n [attr.aria-label]=\"ariaFilterLabel\"\r\n [attr.placeholder]=\"filterPlaceholder\"\r\n [value]=\"filterValue || ''\"\r\n autocomplete=\"off\"\r\n class=\"p-dropdown-filter p-inputtext p-component\"\r\n type=\"text\"\r\n />\r\n <span class=\"p-dropdown-filter-icon pi pi-search\"></span>\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div [style.max-height]=\"virtualScroll ? 'auto' : scrollHeight || 'auto'\" class=\"p-dropdown-items-wrapper\">\r\n <p-scroller\r\n #scroller\r\n (onLazyLoad)=\"onLazyLoad.emit($event)\"\r\n *ngIf=\"virtualScroll\"\r\n [autoSize]=\"true\"\r\n [itemSize]=\"virtualScrollItemSize || _itemSize\"\r\n [items]=\"optionsToDisplay\"\r\n [lazy]=\"lazy\"\r\n [options]=\"virtualScrollOptions\"\r\n [style]=\"{ height: scrollHeight }\"\r\n >\r\n <ng-template let-items let-scrollerOptions=\"options\" pTemplate=\"content\">\r\n <ng-container\r\n *ngTemplateOutlet=\"buildInItems; context: { $implicit: items, options: scrollerOptions }\"></ng-container>\r\n </ng-template>\r\n <ng-container *ngIf=\"loaderTemplate\">\r\n <ng-template let-scrollerOptions=\"options\" pTemplate=\"loader\">\r\n <ng-container\r\n *ngTemplateOutlet=\"loaderTemplate; context: { options: scrollerOptions }\"></ng-container>\r\n </ng-template>\r\n </ng-container>\r\n </p-scroller>\r\n <ng-container *ngIf=\"!virtualScroll\">\r\n <ng-container\r\n *ngTemplateOutlet=\"buildInItems; context: { $implicit: optionsToDisplay, options: {} }\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-template #buildInItems let-items let-scrollerOptions=\"options\">\r\n <ul #items [attr.id]=\"listId\" [ngClass]=\"scrollerOptions.contentStyleClass\"\r\n [style]=\"scrollerOptions.contentStyle\"\r\n class=\"p-dropdown-items\" role=\"listbox\">\r\n <ng-container *ngIf=\"group\">\r\n <ng-template [ngForOf]=\"items\" let-optgroup ngFor>\r\n <li [ngStyle]=\"{ height: scrollerOptions.itemSize + 'px' }\" class=\"p-dropdown-item-group\">\r\n <span *ngIf=\"!groupTemplate\">{{ getOptionGroupLabel(optgroup) || '' }}</span>\r\n <ng-container *ngTemplateOutlet=\"groupTemplate; context: { $implicit: optgroup }\"></ng-container>\r\n </li>\r\n <ng-container\r\n *ngTemplateOutlet=\"itemslist; context: { $implicit: getOptionGroupChildren(optgroup), selectedOption: selectedOption }\"></ng-container>\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngIf=\"!group\">\r\n <ng-container\r\n *ngTemplateOutlet=\"itemslist; context: { $implicit: items, selectedOption: selectedOption }\"></ng-container>\r\n </ng-container>\r\n <ng-template #itemslist let-options let-selectedOption=\"selectedOption\">\r\n <ng-template [ngForOf]=\"options\" let-i=\"index\" let-option ngFor>\r\n <p-dropdownItem\r\n (onClick)=\"onItemClick($event)\"\r\n [disabled]=\"isOptionDisabled(option)\"\r\n [label]=\"getOptionLabel(option)\"\r\n [option]=\"option\"\r\n [selected]=\"selectedOption == option\"\r\n [template]=\"itemTemplate\"\r\n ></p-dropdownItem>\r\n </ng-template>\r\n </ng-template>\r\n <li *ngIf=\"filterValue && isEmpty()\" [ngStyle]=\"{ height: scrollerOptions.itemSize + 'px' }\"\r\n class=\"p-dropdown-empty-message\">\r\n <ng-container *ngIf=\"!emptyFilterTemplate && !emptyTemplate\">\r\n {{ emptyFilterMessageLabel }}\r\n </ng-container>\r\n <ng-container #emptyFilter *ngTemplateOutlet=\"emptyFilterTemplate || emptyTemplate\"></ng-container>\r\n </li>\r\n <li *ngIf=\"!filterValue && isEmpty()\" [ngStyle]=\"{ height: scrollerOptions.itemSize + 'px' }\"\r\n class=\"p-dropdown-empty-message\">\r\n <ng-container *ngIf=\"!emptyTemplate\">\r\n {{ emptyMessageLabel }}\r\n </ng-container>\r\n <ng-container #empty *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\r\n </li>\r\n </ul>\r\n </ng-template>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\r\n </div>\r\n </ng-template>\r\n </p-overlay>\r\n </div>\r\n</label>\r\n", styles: [".in-dropdown{width:100%}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3.Overlay, selector: "p-overlay", inputs: ["visible", "mode", "style", "styleClass", "contentStyle", "contentStyleClass", "target", "appendTo", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "listener", "responsive", "options"], outputs: ["visibleChange", "onBeforeShow", "onShow", "onBeforeHide", "onHide", "onAnimationStart", "onAnimationDone"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "fitContent", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i6.Scroller, selector: "p-scroller", inputs: ["id", "style", "styleClass", "tabindex", "items", "itemSize", "scrollHeight", "scrollWidth", "orientation", "step", "delay", "resizeDelay", "appendOnly", "inline", "lazy", "disabled", "loaderDisabled", "columns", "showSpacer", "showLoader", "numToleratedItems", "loading", "autoSize", "trackBy", "options"], outputs: ["onLazyLoad", "onScroll", "onScrollIndexChange"] }, { kind: "directive", type: i7$1.AutoFocus, selector: "[pAutoFocus]", inputs: ["autofocus"] }, { kind: "component", type: DropdownItem, selector: "p-dropdownItem", inputs: ["option", "selected", "label", "disabled", "visible", "itemSize", "template"], outputs: ["onClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
1194
|
+
DropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: DropdownComponent, selector: "in-dropdown", inputs: { title: "title", error: "error", scrollHeight: "scrollHeight", filter: "filter", name: "name", options: "options", style: "style", panelStyle: "panelStyle", styleClass: "styleClass", panelStyleClass: "panelStyleClass", readonly: "readonly", required: "required", editable: "editable", appendTo: "appendTo", tabindex: "tabindex", placeholder: "placeholder", filterPlaceholder: "filterPlaceholder", filterLocale: "filterLocale", inputId: "inputId", selectId: "selectId", dataKey: "dataKey", filterBy: "filterBy", autofocus: "autofocus", resetFilterOnHide: "resetFilterOnHide", dropdownIcon: "dropdownIcon", optionLabel: "optionLabel", optionValue: "optionValue", optionDisabled: "optionDisabled", optionGroupLabel: "optionGroupLabel", optionGroupChildren: "optionGroupChildren", autoDisplayFirst: "autoDisplayFirst", group: "group", showClear: "showClear", emptyFilterMessage: "emptyFilterMessage", emptyMessage: "emptyMessage", lazy: "lazy", virtualScroll: "virtualScroll", virtualScrollItemSize: "virtualScrollItemSize", virtualScrollOptions: "virtualScrollOptions", overlayOptions: "overlayOptions", ariaFilterLabel: "ariaFilterLabel", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", filterMatchMode: "filterMatchMode", maxlength: "maxlength", tooltip: "tooltip", tooltipPosition: "tooltipPosition", tooltipPositionStyle: "tooltipPositionStyle", tooltipStyleClass: "tooltipStyleClass", autofocusFilter: "autofocusFilter", overlayDirection: "overlayDirection", itemSize: "itemSize", autoZIndex: "autoZIndex", baseZIndex: "baseZIndex", showTransitionOptions: "showTransitionOptions", hideTransitionOptions: "hideTransitionOptions" }, outputs: { onChange: "onChange", onFilter: "onFilter", onFocus: "onFocus", onBlur: "onBlur", onClick: "onClick", onShow: "onShow", onHide: "onHide", onClear: "onClear", onLazyLoad: "onLazyLoad" }, host: { properties: { "class.p-inputwrapper-filled": "filled", "class.p-inputwrapper-focus": "focused || overlayVisible" }, classAttribute: "p-element p-inputwrapper" }, providers: [DROPDOWN_VALUE_ACCESSOR], usesInheritance: true, ngImport: i0, template: "<label class=\"label type_varchars in-dropdown\">\r\n<span *ngIf=\"title\" class=\"c-label__content\">\r\n {{ title }}\r\n <span *ngIf=\"required\" class=\"c-label__req\">*</span>\r\n<span *ngIf=\"error\" class=\"c-label__sub_is-error\">{{ error }}</span>\r\n </span>\r\n <div\r\n #container\r\n (click)=\"onMouseclick($event)\"\r\n [class]=\"styleClass\"\r\n [ngClass]=\"{ 'p-dropdown p-component': true, 'p-disabled': disabled, 'p-dropdown-open': overlayVisible, 'p-focus': focused, 'p-dropdown-clearable': showClear && !disabled }\"\r\n [ngStyle]=\"style\"\r\n >\r\n <div class=\"p-hidden-accessible\">\r\n <input\r\n #in\r\n (blur)=\"onInputBlur($event)\"\r\n (focus)=\"onInputFocus($event)\"\r\n (keydown)=\"onKeydown($event, true)\"\r\n [attr.aria-activedescendant]=\"overlayVisible ? labelId : null\"\r\n [attr.aria-expanded]=\"false\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy\"\r\n [attr.id]=\"inputId\"\r\n [attr.placeholder]=\"placeholder\"\r\n [attr.tabindex]=\"tabindex\"\r\n [autofocus]=\"autofocus\"\r\n [disabled]=\"disabled\"\r\n aria-haspopup=\"listbox\"\r\n aria-haspopup=\"listbox\"\r\n pAutoFocus\r\n readonly\r\n role=\"combobox\"\r\n type=\"text\"\r\n />\r\n </div>\r\n <span\r\n *ngIf=\"!editable && label != null\"\r\n [attr.id]=\"labelId\"\r\n [ngClass]=\"{ 'p-dropdown-label p-inputtext': true, 'p-dropdown-label-empty': label == null || label.length === 0 }\"\r\n [pTooltip]=\"tooltip\"\r\n [positionStyle]=\"tooltipPositionStyle\"\r\n [tooltipPosition]=\"tooltipPosition\"\r\n [tooltipStyleClass]=\"tooltipStyleClass\">\r\n <ng-container *ngIf=\"!selectedItemTemplate\">{{ label || '' }}</ng-container>\r\n <ng-container\r\n *ngTemplateOutlet=\"selectedItemTemplate; context: { $implicit: selectedOption }\"></ng-container>\r\n </span>\r\n <span\r\n *ngIf=\"!editable && label == null\"\r\n [ngClass]=\"{ 'p-dropdown-label p-inputtext p-placeholder': true, 'p-dropdown-label-empty': placeholder == null || placeholder.length === 0 }\">{{ placeholder || '' }}</span>\r\n <input\r\n #editableInput\r\n (blur)=\"onInputBlur($event)\"\r\n (focus)=\"onEditableInputFocus($event)\"\r\n (input)=\"onEditableInputChange($event)\"\r\n *ngIf=\"editable\"\r\n [attr.aria-expanded]=\"overlayVisible\"\r\n [attr.maxlength]=\"maxlength\"\r\n [attr.placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n aria-haspopup=\"listbox\"\r\n class=\"p-dropdown-label p-inputtext\"\r\n type=\"text\"\r\n />\r\n <i (click)=\"clear($event)\" *ngIf=\"isVisibleClearIcon\" class=\"p-dropdown-clear-icon pi pi-times\"></i>\r\n <div [attr.aria-expanded]=\"overlayVisible\" aria-haspopup=\"listbox\" aria-label=\"dropdown trigger\"\r\n class=\"p-dropdown-trigger\"\r\n role=\"button\">\r\n <span [ngClass]=\"dropdownIcon\" class=\"p-dropdown-trigger-icon\"></span>\r\n </div>\r\n <p-overlay\r\n #overlay\r\n (onAnimationStart)=\"onOverlayAnimationStart($event)\"\r\n (onHide)=\"hide()\"\r\n [(visible)]=\"overlayVisible\"\r\n [appendTo]=\"appendTo\"\r\n [autoZIndex]=\"autoZIndex\"\r\n [baseZIndex]=\"baseZIndex\"\r\n [hideTransitionOptions]=\"hideTransitionOptions\"\r\n [options]=\"overlayOptions\"\r\n [showTransitionOptions]=\"showTransitionOptions\"\r\n [target]=\"'@parent'\"\r\n >\r\n <ng-template pTemplate=\"content\">\r\n <div [class]=\"panelStyleClass\" [ngClass]=\"'p-dropdown-panel p-component'\" [ngStyle]=\"panelStyle\">\r\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\r\n <div (click)=\"$event.stopPropagation()\" *ngIf=\"filter\" class=\"p-dropdown-header\">\r\n <ng-container *ngIf=\"filterTemplate; else builtInFilterElement\">\r\n <ng-container *ngTemplateOutlet=\"filterTemplate; context: { options: filterOptions }\"></ng-container>\r\n </ng-container>\r\n <ng-template #builtInFilterElement>\r\n <div class=\"p-dropdown-filter-container\">\r\n <input\r\n #filter\r\n (input)=\"onFilterInputChange($event)\"\r\n (keydown)=\"onKeydown($event, false)\"\r\n (keydown.enter)=\"$event.preventDefault()\"\r\n [attr.aria-activedescendant]=\"overlayVisible ? 'p-highlighted-option' : labelId\"\r\n [attr.aria-label]=\"ariaFilterLabel\"\r\n [attr.placeholder]=\"filterPlaceholder\"\r\n [value]=\"filterValue || ''\"\r\n autocomplete=\"off\"\r\n class=\"p-dropdown-filter p-inputtext p-component\"\r\n type=\"text\"\r\n />\r\n <span class=\"p-dropdown-filter-icon pi pi-search\"></span>\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div [style.max-height]=\"virtualScroll ? 'auto' : scrollHeight || 'auto'\" class=\"p-dropdown-items-wrapper\">\r\n <p-scroller\r\n #scroller\r\n (onLazyLoad)=\"onLazyLoad.emit($event)\"\r\n *ngIf=\"virtualScroll\"\r\n [autoSize]=\"true\"\r\n [itemSize]=\"virtualScrollItemSize || _itemSize\"\r\n [items]=\"optionsToDisplay\"\r\n [lazy]=\"lazy\"\r\n [options]=\"virtualScrollOptions\"\r\n [style]=\"{ height: scrollHeight }\"\r\n >\r\n <ng-template let-items let-scrollerOptions=\"options\" pTemplate=\"content\">\r\n <ng-container\r\n *ngTemplateOutlet=\"buildInItems; context: { $implicit: items, options: scrollerOptions }\"></ng-container>\r\n </ng-template>\r\n <ng-container *ngIf=\"loaderTemplate\">\r\n <ng-template let-scrollerOptions=\"options\" pTemplate=\"loader\">\r\n <ng-container\r\n *ngTemplateOutlet=\"loaderTemplate; context: { options: scrollerOptions }\"></ng-container>\r\n </ng-template>\r\n </ng-container>\r\n </p-scroller>\r\n <ng-container *ngIf=\"!virtualScroll\">\r\n <ng-container\r\n *ngTemplateOutlet=\"buildInItems; context: { $implicit: optionsToDisplay, options: {} }\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-template #buildInItems let-items let-scrollerOptions=\"options\">\r\n <ul #items [attr.id]=\"listId\" [ngClass]=\"scrollerOptions.contentStyleClass\"\r\n [style]=\"scrollerOptions.contentStyle\"\r\n class=\"p-dropdown-items\" role=\"listbox\">\r\n <ng-container *ngIf=\"group\">\r\n <ng-template [ngForOf]=\"items\" let-optgroup ngFor>\r\n <li [ngStyle]=\"{ height: scrollerOptions.itemSize + 'px' }\" class=\"p-dropdown-item-group\">\r\n <span *ngIf=\"!groupTemplate\">{{ getOptionGroupLabel(optgroup) || '' }}</span>\r\n <ng-container *ngTemplateOutlet=\"groupTemplate; context: { $implicit: optgroup }\"></ng-container>\r\n </li>\r\n <ng-container\r\n *ngTemplateOutlet=\"itemslist; context: { $implicit: getOptionGroupChildren(optgroup), selectedOption: selectedOption }\"></ng-container>\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngIf=\"!group\">\r\n <ng-container\r\n *ngTemplateOutlet=\"itemslist; context: { $implicit: items, selectedOption: selectedOption }\"></ng-container>\r\n </ng-container>\r\n <ng-template #itemslist let-options let-selectedOption=\"selectedOption\">\r\n <ng-template [ngForOf]=\"options\" let-i=\"index\" let-option ngFor>\r\n <p-dropdownItem\r\n (onClick)=\"onItemClick($event)\"\r\n [disabled]=\"isOptionDisabled(option)\"\r\n [label]=\"getOptionLabel(option)\"\r\n [option]=\"option\"\r\n [selected]=\"selectedOption == option\"\r\n [template]=\"itemTemplate\"\r\n ></p-dropdownItem>\r\n </ng-template>\r\n </ng-template>\r\n <li *ngIf=\"filterValue && isEmpty()\" [ngStyle]=\"{ height: scrollerOptions.itemSize + 'px' }\"\r\n class=\"p-dropdown-empty-message\">\r\n <ng-container *ngIf=\"!emptyFilterTemplate && !emptyTemplate\">\r\n {{ emptyFilterMessageLabel }}\r\n </ng-container>\r\n <ng-container #emptyFilter *ngTemplateOutlet=\"emptyFilterTemplate || emptyTemplate\"></ng-container>\r\n </li>\r\n <li *ngIf=\"!filterValue && isEmpty()\" [ngStyle]=\"{ height: scrollerOptions.itemSize + 'px' }\"\r\n class=\"p-dropdown-empty-message\">\r\n <ng-container *ngIf=\"!emptyTemplate\">\r\n {{ emptyMessageLabel }}\r\n </ng-container>\r\n <ng-container #empty *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\r\n </li>\r\n </ul>\r\n </ng-template>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\r\n </div>\r\n </ng-template>\r\n </p-overlay>\r\n </div>\r\n</label>\r\n", styles: [".in-dropdown{width:100%;margin-bottom:0}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3.Overlay, selector: "p-overlay", inputs: ["visible", "mode", "style", "styleClass", "contentStyle", "contentStyleClass", "target", "appendTo", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "listener", "responsive", "options"], outputs: ["visibleChange", "onBeforeShow", "onShow", "onBeforeHide", "onHide", "onAnimationStart", "onAnimationDone"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "fitContent", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i6.Scroller, selector: "p-scroller", inputs: ["id", "style", "styleClass", "tabindex", "items", "itemSize", "scrollHeight", "scrollWidth", "orientation", "step", "delay", "resizeDelay", "appendOnly", "inline", "lazy", "disabled", "loaderDisabled", "columns", "showSpacer", "showLoader", "numToleratedItems", "loading", "autoSize", "trackBy", "options"], outputs: ["onLazyLoad", "onScroll", "onScrollIndexChange"] }, { kind: "directive", type: i7$1.AutoFocus, selector: "[pAutoFocus]", inputs: ["autofocus"] }, { kind: "component", type: DropdownItem, selector: "p-dropdownItem", inputs: ["option", "selected", "label", "disabled", "visible", "itemSize", "template"], outputs: ["onClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
1195
1195
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DropdownComponent, decorators: [{
|
|
1196
1196
|
type: Component,
|
|
1197
1197
|
args: [{ selector: 'in-dropdown', host: {
|
|
1198
1198
|
class: 'p-element p-inputwrapper',
|
|
1199
1199
|
'[class.p-inputwrapper-filled]': 'filled',
|
|
1200
1200
|
'[class.p-inputwrapper-focus]': 'focused || overlayVisible'
|
|
1201
|
-
}, providers: [DROPDOWN_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<label class=\"label type_varchars in-dropdown\">\r\n<span *ngIf=\"title\" class=\"c-label__content\">\r\n {{ title }}\r\n <span *ngIf=\"required\" class=\"c-label__req\">*</span>\r\n<span *ngIf=\"error\" class=\"c-label__sub_is-error\">{{ error }}</span>\r\n </span>\r\n <div\r\n #container\r\n (click)=\"onMouseclick($event)\"\r\n [class]=\"styleClass\"\r\n [ngClass]=\"{ 'p-dropdown p-component': true, 'p-disabled': disabled, 'p-dropdown-open': overlayVisible, 'p-focus': focused, 'p-dropdown-clearable': showClear && !disabled }\"\r\n [ngStyle]=\"style\"\r\n >\r\n <div class=\"p-hidden-accessible\">\r\n <input\r\n #in\r\n (blur)=\"onInputBlur($event)\"\r\n (focus)=\"onInputFocus($event)\"\r\n (keydown)=\"onKeydown($event, true)\"\r\n [attr.aria-activedescendant]=\"overlayVisible ? labelId : null\"\r\n [attr.aria-expanded]=\"false\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy\"\r\n [attr.id]=\"inputId\"\r\n [attr.placeholder]=\"placeholder\"\r\n [attr.tabindex]=\"tabindex\"\r\n [autofocus]=\"autofocus\"\r\n [disabled]=\"disabled\"\r\n aria-haspopup=\"listbox\"\r\n aria-haspopup=\"listbox\"\r\n pAutoFocus\r\n readonly\r\n role=\"combobox\"\r\n type=\"text\"\r\n />\r\n </div>\r\n <span\r\n *ngIf=\"!editable && label != null\"\r\n [attr.id]=\"labelId\"\r\n [ngClass]=\"{ 'p-dropdown-label p-inputtext': true, 'p-dropdown-label-empty': label == null || label.length === 0 }\"\r\n [pTooltip]=\"tooltip\"\r\n [positionStyle]=\"tooltipPositionStyle\"\r\n [tooltipPosition]=\"tooltipPosition\"\r\n [tooltipStyleClass]=\"tooltipStyleClass\">\r\n <ng-container *ngIf=\"!selectedItemTemplate\">{{ label || '' }}</ng-container>\r\n <ng-container\r\n *ngTemplateOutlet=\"selectedItemTemplate; context: { $implicit: selectedOption }\"></ng-container>\r\n </span>\r\n <span\r\n *ngIf=\"!editable && label == null\"\r\n [ngClass]=\"{ 'p-dropdown-label p-inputtext p-placeholder': true, 'p-dropdown-label-empty': placeholder == null || placeholder.length === 0 }\">{{ placeholder || '' }}</span>\r\n <input\r\n #editableInput\r\n (blur)=\"onInputBlur($event)\"\r\n (focus)=\"onEditableInputFocus($event)\"\r\n (input)=\"onEditableInputChange($event)\"\r\n *ngIf=\"editable\"\r\n [attr.aria-expanded]=\"overlayVisible\"\r\n [attr.maxlength]=\"maxlength\"\r\n [attr.placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n aria-haspopup=\"listbox\"\r\n class=\"p-dropdown-label p-inputtext\"\r\n type=\"text\"\r\n />\r\n <i (click)=\"clear($event)\" *ngIf=\"isVisibleClearIcon\" class=\"p-dropdown-clear-icon pi pi-times\"></i>\r\n <div [attr.aria-expanded]=\"overlayVisible\" aria-haspopup=\"listbox\" aria-label=\"dropdown trigger\"\r\n class=\"p-dropdown-trigger\"\r\n role=\"button\">\r\n <span [ngClass]=\"dropdownIcon\" class=\"p-dropdown-trigger-icon\"></span>\r\n </div>\r\n <p-overlay\r\n #overlay\r\n (onAnimationStart)=\"onOverlayAnimationStart($event)\"\r\n (onHide)=\"hide()\"\r\n [(visible)]=\"overlayVisible\"\r\n [appendTo]=\"appendTo\"\r\n [autoZIndex]=\"autoZIndex\"\r\n [baseZIndex]=\"baseZIndex\"\r\n [hideTransitionOptions]=\"hideTransitionOptions\"\r\n [options]=\"overlayOptions\"\r\n [showTransitionOptions]=\"showTransitionOptions\"\r\n [target]=\"'@parent'\"\r\n >\r\n <ng-template pTemplate=\"content\">\r\n <div [class]=\"panelStyleClass\" [ngClass]=\"'p-dropdown-panel p-component'\" [ngStyle]=\"panelStyle\">\r\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\r\n <div (click)=\"$event.stopPropagation()\" *ngIf=\"filter\" class=\"p-dropdown-header\">\r\n <ng-container *ngIf=\"filterTemplate; else builtInFilterElement\">\r\n <ng-container *ngTemplateOutlet=\"filterTemplate; context: { options: filterOptions }\"></ng-container>\r\n </ng-container>\r\n <ng-template #builtInFilterElement>\r\n <div class=\"p-dropdown-filter-container\">\r\n <input\r\n #filter\r\n (input)=\"onFilterInputChange($event)\"\r\n (keydown)=\"onKeydown($event, false)\"\r\n (keydown.enter)=\"$event.preventDefault()\"\r\n [attr.aria-activedescendant]=\"overlayVisible ? 'p-highlighted-option' : labelId\"\r\n [attr.aria-label]=\"ariaFilterLabel\"\r\n [attr.placeholder]=\"filterPlaceholder\"\r\n [value]=\"filterValue || ''\"\r\n autocomplete=\"off\"\r\n class=\"p-dropdown-filter p-inputtext p-component\"\r\n type=\"text\"\r\n />\r\n <span class=\"p-dropdown-filter-icon pi pi-search\"></span>\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div [style.max-height]=\"virtualScroll ? 'auto' : scrollHeight || 'auto'\" class=\"p-dropdown-items-wrapper\">\r\n <p-scroller\r\n #scroller\r\n (onLazyLoad)=\"onLazyLoad.emit($event)\"\r\n *ngIf=\"virtualScroll\"\r\n [autoSize]=\"true\"\r\n [itemSize]=\"virtualScrollItemSize || _itemSize\"\r\n [items]=\"optionsToDisplay\"\r\n [lazy]=\"lazy\"\r\n [options]=\"virtualScrollOptions\"\r\n [style]=\"{ height: scrollHeight }\"\r\n >\r\n <ng-template let-items let-scrollerOptions=\"options\" pTemplate=\"content\">\r\n <ng-container\r\n *ngTemplateOutlet=\"buildInItems; context: { $implicit: items, options: scrollerOptions }\"></ng-container>\r\n </ng-template>\r\n <ng-container *ngIf=\"loaderTemplate\">\r\n <ng-template let-scrollerOptions=\"options\" pTemplate=\"loader\">\r\n <ng-container\r\n *ngTemplateOutlet=\"loaderTemplate; context: { options: scrollerOptions }\"></ng-container>\r\n </ng-template>\r\n </ng-container>\r\n </p-scroller>\r\n <ng-container *ngIf=\"!virtualScroll\">\r\n <ng-container\r\n *ngTemplateOutlet=\"buildInItems; context: { $implicit: optionsToDisplay, options: {} }\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-template #buildInItems let-items let-scrollerOptions=\"options\">\r\n <ul #items [attr.id]=\"listId\" [ngClass]=\"scrollerOptions.contentStyleClass\"\r\n [style]=\"scrollerOptions.contentStyle\"\r\n class=\"p-dropdown-items\" role=\"listbox\">\r\n <ng-container *ngIf=\"group\">\r\n <ng-template [ngForOf]=\"items\" let-optgroup ngFor>\r\n <li [ngStyle]=\"{ height: scrollerOptions.itemSize + 'px' }\" class=\"p-dropdown-item-group\">\r\n <span *ngIf=\"!groupTemplate\">{{ getOptionGroupLabel(optgroup) || '' }}</span>\r\n <ng-container *ngTemplateOutlet=\"groupTemplate; context: { $implicit: optgroup }\"></ng-container>\r\n </li>\r\n <ng-container\r\n *ngTemplateOutlet=\"itemslist; context: { $implicit: getOptionGroupChildren(optgroup), selectedOption: selectedOption }\"></ng-container>\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngIf=\"!group\">\r\n <ng-container\r\n *ngTemplateOutlet=\"itemslist; context: { $implicit: items, selectedOption: selectedOption }\"></ng-container>\r\n </ng-container>\r\n <ng-template #itemslist let-options let-selectedOption=\"selectedOption\">\r\n <ng-template [ngForOf]=\"options\" let-i=\"index\" let-option ngFor>\r\n <p-dropdownItem\r\n (onClick)=\"onItemClick($event)\"\r\n [disabled]=\"isOptionDisabled(option)\"\r\n [label]=\"getOptionLabel(option)\"\r\n [option]=\"option\"\r\n [selected]=\"selectedOption == option\"\r\n [template]=\"itemTemplate\"\r\n ></p-dropdownItem>\r\n </ng-template>\r\n </ng-template>\r\n <li *ngIf=\"filterValue && isEmpty()\" [ngStyle]=\"{ height: scrollerOptions.itemSize + 'px' }\"\r\n class=\"p-dropdown-empty-message\">\r\n <ng-container *ngIf=\"!emptyFilterTemplate && !emptyTemplate\">\r\n {{ emptyFilterMessageLabel }}\r\n </ng-container>\r\n <ng-container #emptyFilter *ngTemplateOutlet=\"emptyFilterTemplate || emptyTemplate\"></ng-container>\r\n </li>\r\n <li *ngIf=\"!filterValue && isEmpty()\" [ngStyle]=\"{ height: scrollerOptions.itemSize + 'px' }\"\r\n class=\"p-dropdown-empty-message\">\r\n <ng-container *ngIf=\"!emptyTemplate\">\r\n {{ emptyMessageLabel }}\r\n </ng-container>\r\n <ng-container #empty *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\r\n </li>\r\n </ul>\r\n </ng-template>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\r\n </div>\r\n </ng-template>\r\n </p-overlay>\r\n </div>\r\n</label>\r\n", styles: [".in-dropdown{width:100%}\n"] }]
|
|
1201
|
+
}, providers: [DROPDOWN_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<label class=\"label type_varchars in-dropdown\">\r\n<span *ngIf=\"title\" class=\"c-label__content\">\r\n {{ title }}\r\n <span *ngIf=\"required\" class=\"c-label__req\">*</span>\r\n<span *ngIf=\"error\" class=\"c-label__sub_is-error\">{{ error }}</span>\r\n </span>\r\n <div\r\n #container\r\n (click)=\"onMouseclick($event)\"\r\n [class]=\"styleClass\"\r\n [ngClass]=\"{ 'p-dropdown p-component': true, 'p-disabled': disabled, 'p-dropdown-open': overlayVisible, 'p-focus': focused, 'p-dropdown-clearable': showClear && !disabled }\"\r\n [ngStyle]=\"style\"\r\n >\r\n <div class=\"p-hidden-accessible\">\r\n <input\r\n #in\r\n (blur)=\"onInputBlur($event)\"\r\n (focus)=\"onInputFocus($event)\"\r\n (keydown)=\"onKeydown($event, true)\"\r\n [attr.aria-activedescendant]=\"overlayVisible ? labelId : null\"\r\n [attr.aria-expanded]=\"false\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy\"\r\n [attr.id]=\"inputId\"\r\n [attr.placeholder]=\"placeholder\"\r\n [attr.tabindex]=\"tabindex\"\r\n [autofocus]=\"autofocus\"\r\n [disabled]=\"disabled\"\r\n aria-haspopup=\"listbox\"\r\n aria-haspopup=\"listbox\"\r\n pAutoFocus\r\n readonly\r\n role=\"combobox\"\r\n type=\"text\"\r\n />\r\n </div>\r\n <span\r\n *ngIf=\"!editable && label != null\"\r\n [attr.id]=\"labelId\"\r\n [ngClass]=\"{ 'p-dropdown-label p-inputtext': true, 'p-dropdown-label-empty': label == null || label.length === 0 }\"\r\n [pTooltip]=\"tooltip\"\r\n [positionStyle]=\"tooltipPositionStyle\"\r\n [tooltipPosition]=\"tooltipPosition\"\r\n [tooltipStyleClass]=\"tooltipStyleClass\">\r\n <ng-container *ngIf=\"!selectedItemTemplate\">{{ label || '' }}</ng-container>\r\n <ng-container\r\n *ngTemplateOutlet=\"selectedItemTemplate; context: { $implicit: selectedOption }\"></ng-container>\r\n </span>\r\n <span\r\n *ngIf=\"!editable && label == null\"\r\n [ngClass]=\"{ 'p-dropdown-label p-inputtext p-placeholder': true, 'p-dropdown-label-empty': placeholder == null || placeholder.length === 0 }\">{{ placeholder || '' }}</span>\r\n <input\r\n #editableInput\r\n (blur)=\"onInputBlur($event)\"\r\n (focus)=\"onEditableInputFocus($event)\"\r\n (input)=\"onEditableInputChange($event)\"\r\n *ngIf=\"editable\"\r\n [attr.aria-expanded]=\"overlayVisible\"\r\n [attr.maxlength]=\"maxlength\"\r\n [attr.placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n aria-haspopup=\"listbox\"\r\n class=\"p-dropdown-label p-inputtext\"\r\n type=\"text\"\r\n />\r\n <i (click)=\"clear($event)\" *ngIf=\"isVisibleClearIcon\" class=\"p-dropdown-clear-icon pi pi-times\"></i>\r\n <div [attr.aria-expanded]=\"overlayVisible\" aria-haspopup=\"listbox\" aria-label=\"dropdown trigger\"\r\n class=\"p-dropdown-trigger\"\r\n role=\"button\">\r\n <span [ngClass]=\"dropdownIcon\" class=\"p-dropdown-trigger-icon\"></span>\r\n </div>\r\n <p-overlay\r\n #overlay\r\n (onAnimationStart)=\"onOverlayAnimationStart($event)\"\r\n (onHide)=\"hide()\"\r\n [(visible)]=\"overlayVisible\"\r\n [appendTo]=\"appendTo\"\r\n [autoZIndex]=\"autoZIndex\"\r\n [baseZIndex]=\"baseZIndex\"\r\n [hideTransitionOptions]=\"hideTransitionOptions\"\r\n [options]=\"overlayOptions\"\r\n [showTransitionOptions]=\"showTransitionOptions\"\r\n [target]=\"'@parent'\"\r\n >\r\n <ng-template pTemplate=\"content\">\r\n <div [class]=\"panelStyleClass\" [ngClass]=\"'p-dropdown-panel p-component'\" [ngStyle]=\"panelStyle\">\r\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\r\n <div (click)=\"$event.stopPropagation()\" *ngIf=\"filter\" class=\"p-dropdown-header\">\r\n <ng-container *ngIf=\"filterTemplate; else builtInFilterElement\">\r\n <ng-container *ngTemplateOutlet=\"filterTemplate; context: { options: filterOptions }\"></ng-container>\r\n </ng-container>\r\n <ng-template #builtInFilterElement>\r\n <div class=\"p-dropdown-filter-container\">\r\n <input\r\n #filter\r\n (input)=\"onFilterInputChange($event)\"\r\n (keydown)=\"onKeydown($event, false)\"\r\n (keydown.enter)=\"$event.preventDefault()\"\r\n [attr.aria-activedescendant]=\"overlayVisible ? 'p-highlighted-option' : labelId\"\r\n [attr.aria-label]=\"ariaFilterLabel\"\r\n [attr.placeholder]=\"filterPlaceholder\"\r\n [value]=\"filterValue || ''\"\r\n autocomplete=\"off\"\r\n class=\"p-dropdown-filter p-inputtext p-component\"\r\n type=\"text\"\r\n />\r\n <span class=\"p-dropdown-filter-icon pi pi-search\"></span>\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div [style.max-height]=\"virtualScroll ? 'auto' : scrollHeight || 'auto'\" class=\"p-dropdown-items-wrapper\">\r\n <p-scroller\r\n #scroller\r\n (onLazyLoad)=\"onLazyLoad.emit($event)\"\r\n *ngIf=\"virtualScroll\"\r\n [autoSize]=\"true\"\r\n [itemSize]=\"virtualScrollItemSize || _itemSize\"\r\n [items]=\"optionsToDisplay\"\r\n [lazy]=\"lazy\"\r\n [options]=\"virtualScrollOptions\"\r\n [style]=\"{ height: scrollHeight }\"\r\n >\r\n <ng-template let-items let-scrollerOptions=\"options\" pTemplate=\"content\">\r\n <ng-container\r\n *ngTemplateOutlet=\"buildInItems; context: { $implicit: items, options: scrollerOptions }\"></ng-container>\r\n </ng-template>\r\n <ng-container *ngIf=\"loaderTemplate\">\r\n <ng-template let-scrollerOptions=\"options\" pTemplate=\"loader\">\r\n <ng-container\r\n *ngTemplateOutlet=\"loaderTemplate; context: { options: scrollerOptions }\"></ng-container>\r\n </ng-template>\r\n </ng-container>\r\n </p-scroller>\r\n <ng-container *ngIf=\"!virtualScroll\">\r\n <ng-container\r\n *ngTemplateOutlet=\"buildInItems; context: { $implicit: optionsToDisplay, options: {} }\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-template #buildInItems let-items let-scrollerOptions=\"options\">\r\n <ul #items [attr.id]=\"listId\" [ngClass]=\"scrollerOptions.contentStyleClass\"\r\n [style]=\"scrollerOptions.contentStyle\"\r\n class=\"p-dropdown-items\" role=\"listbox\">\r\n <ng-container *ngIf=\"group\">\r\n <ng-template [ngForOf]=\"items\" let-optgroup ngFor>\r\n <li [ngStyle]=\"{ height: scrollerOptions.itemSize + 'px' }\" class=\"p-dropdown-item-group\">\r\n <span *ngIf=\"!groupTemplate\">{{ getOptionGroupLabel(optgroup) || '' }}</span>\r\n <ng-container *ngTemplateOutlet=\"groupTemplate; context: { $implicit: optgroup }\"></ng-container>\r\n </li>\r\n <ng-container\r\n *ngTemplateOutlet=\"itemslist; context: { $implicit: getOptionGroupChildren(optgroup), selectedOption: selectedOption }\"></ng-container>\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngIf=\"!group\">\r\n <ng-container\r\n *ngTemplateOutlet=\"itemslist; context: { $implicit: items, selectedOption: selectedOption }\"></ng-container>\r\n </ng-container>\r\n <ng-template #itemslist let-options let-selectedOption=\"selectedOption\">\r\n <ng-template [ngForOf]=\"options\" let-i=\"index\" let-option ngFor>\r\n <p-dropdownItem\r\n (onClick)=\"onItemClick($event)\"\r\n [disabled]=\"isOptionDisabled(option)\"\r\n [label]=\"getOptionLabel(option)\"\r\n [option]=\"option\"\r\n [selected]=\"selectedOption == option\"\r\n [template]=\"itemTemplate\"\r\n ></p-dropdownItem>\r\n </ng-template>\r\n </ng-template>\r\n <li *ngIf=\"filterValue && isEmpty()\" [ngStyle]=\"{ height: scrollerOptions.itemSize + 'px' }\"\r\n class=\"p-dropdown-empty-message\">\r\n <ng-container *ngIf=\"!emptyFilterTemplate && !emptyTemplate\">\r\n {{ emptyFilterMessageLabel }}\r\n </ng-container>\r\n <ng-container #emptyFilter *ngTemplateOutlet=\"emptyFilterTemplate || emptyTemplate\"></ng-container>\r\n </li>\r\n <li *ngIf=\"!filterValue && isEmpty()\" [ngStyle]=\"{ height: scrollerOptions.itemSize + 'px' }\"\r\n class=\"p-dropdown-empty-message\">\r\n <ng-container *ngIf=\"!emptyTemplate\">\r\n {{ emptyMessageLabel }}\r\n </ng-container>\r\n <ng-container #empty *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\r\n </li>\r\n </ul>\r\n </ng-template>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\r\n </div>\r\n </ng-template>\r\n </p-overlay>\r\n </div>\r\n</label>\r\n", styles: [".in-dropdown{width:100%;margin-bottom:0}\n"] }]
|
|
1202
1202
|
}], propDecorators: { title: [{
|
|
1203
1203
|
type: Input
|
|
1204
1204
|
}], error: [{
|