UNPKG

ng-devui

Version:

DevUI components based on Angular

252 lines 50.1 kB
import { __decorate, __metadata } from "tslib"; import { ChangeDetectorRef, Component, ElementRef, EventEmitter, forwardRef, HostBinding, HostListener, Input, Output, TemplateRef, ViewChild, } from '@angular/core'; import { NG_VALUE_ACCESSOR } from '@angular/forms'; import { AutoCompleteDirective } from 'ng-devui/auto-complete'; import { I18nService } from 'ng-devui/i18n'; import { DevConfigService, WithConfig } from 'ng-devui/utils'; import * as i0 from "@angular/core"; import * as i1 from "ng-devui/i18n"; import * as i2 from "ng-devui/utils"; import * as i3 from "@angular/common"; import * as i4 from "@angular/forms"; import * as i5 from "ng-devui/auto-complete"; export class EditableSelectComponent { get hasGlowStyle() { return this.showGlowStyle; } set dropDownOpen(val) { this._dropDownOpen = val; if (this._dropDownOpen) { this.autoCompleteDirective.openPopup(this.activeIndex); } else { this.autoCompleteDirective.hidePopup(); this.onTouched(); } } get dropDownOpen() { return this._dropDownOpen; } get placeholderContent() { return this.valueParser(this.inputValueCache) || this.placeholder; } onDocumentClick(event) { if (this.blurTimer) { clearTimeout(this.blurTimer); } this.closeDropdownMenu(event); } constructor(cdr, i18n, devConfigService) { this.cdr = cdr; this.i18n = i18n; this.devConfigService = devConfigService; this.appendToBody = false; this.appendToBodyDirections = ['rightDown', 'leftDown', 'rightUp', 'leftUp']; this.disabled = false; this.placeholder = ''; this.source = []; this.allowClear = false; this.enableSelectedValueList = false; this.enableLazyLoad = false; this.customViewDirection = 'bottom'; this.formatter = (item) => (item ? item.label || item.toString() : ''); this.valueParser = (item) => (item ? item.label || item.toString() : ''); this.showAnimation = true; this.styleType = 'default'; this.showGlowStyle = true; this.loadMore = new EventEmitter(); this.toggleChange = new EventEmitter(); this.hoverItem = new EventEmitter(); this.selectItem = new EventEmitter(); this.multiItems = []; this.activeIndex = 0; this.ANIMATION_DELAY = 300; this._dropDownOpen = false; this.onChange = (_) => null; this.onTouched = () => null; } ngOnChanges(changes) { if (changes?.searchFn && typeof this.searchFn === 'function') { if (this.subscription) { this.subscription.unsubscribe(); } this.subscription = this.searchFn('').subscribe((source) => { this.source = source; }); } } ngOnInit() { this.i18nCommonText = this.i18n.getI18nText().common; this.i18nSubscription = this.i18n.langChange().subscribe((data) => { this.i18nCommonText = data.common; }); } ngOnDestroy() { if (this.i18nSubscription) { this.i18nSubscription.unsubscribe(); } } writeValue(value) { this.inputValueCache = this.inputValue = value ?? ''; this.cdr.markForCheck(); } registerOnChange(fn) { this.onChange = fn; } registerOnTouched(fn) { this.onTouched = fn; } selectValue(value) { this._dropDownOpen = false; this.inputValueCache = this.inputValue = value ?? ''; this.selectItem.emit(this.inputValue); this.onChange(this.inputValue); this.onTouched(); } valueClear(event) { event.stopPropagation(); this.inputValueCache = this.inputValue = ''; this.onChange(''); } onTermChange(value) { this.inputValueCache = this.inputValue = value; this.onChange(this.inputValue); } toggle() { const inputString = this.formatter(this.inputValue) ?? ''; this.activeIndex = this.enableSelectedValueList ? this.autoCompleteDirective.popupRef.instance.activeIndex : this.source.map((item) => this.formatter(item).toLowerCase()).indexOf(inputString.toLowerCase()); this.activeIndex = this.activeIndex > -1 ? this.activeIndex : 0; this.dropDownOpen = !this.dropDownOpen; if (this.dropDownOpen && !this.enableSelectedValueList) { this.autoCompleteDirective.searchValue('', false); this.autoCompleteDirective.popupRef.instance.scrollToActive(this.activeIndex); } } loadMoreEvent(event) { this.loadMore.emit(event); } toggleChangeHandler(value) { this._dropDownOpen = value; this.inputValue = !this.enableSelectedValueList && value ? '' : this.inputValueCache; this.toggleChange.emit(value); } onHoverItem(event) { this.hoverItem.emit(event); } closeDropdownMenu(event, isBlur = false) { if (this.dropDownOpen) { const target = isBlur ? event.relatedTarget : event.target; const targetEl = target; if (!this.editableSelectBox.nativeElement.contains(targetEl)) { this.dropDownOpen = false; } } } blurEventHandle(event) { if (this.blurTimer) { clearTimeout(this.blurTimer); } this.blurTimer = setTimeout(() => this.closeDropdownMenu(event, true), this.ANIMATION_DELAY); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EditableSelectComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.I18nService }, { token: i2.DevConfigService }], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: EditableSelectComponent, selector: "d-editable-select", inputs: { appendToBody: "appendToBody", appendToBodyDirections: "appendToBodyDirections", appendToBodyScrollStrategy: "appendToBodyScrollStrategy", disabled: "disabled", placeholder: "placeholder", source: "source", itemTemplate: "itemTemplate", noResultItemTemplate: "noResultItemTemplate", maxHeight: "maxHeight", width: "width", disabledKey: "disabledKey", allowClear: "allowClear", enableSelectedValueList: "enableSelectedValueList", enableLazyLoad: "enableLazyLoad", customViewTemplate: "customViewTemplate", customViewDirection: "customViewDirection", formatter: "formatter", valueParser: "valueParser", searchFn: "searchFn", showAnimation: "showAnimation", styleType: "styleType", showGlowStyle: "showGlowStyle" }, outputs: { loadMore: "loadMore", toggleChange: "toggleChange", hoverItem: "hoverItem", selectItem: "selectItem" }, host: { listeners: { "document:click": "onDocumentClick($event)" }, properties: { "class.devui-glow-style": "this.hasGlowStyle" } }, providers: [ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => EditableSelectComponent), multi: true, }, ], viewQueries: [{ propertyName: "autoCompleteDirective", first: true, predicate: AutoCompleteDirective, descendants: true, static: true }, { propertyName: "editableSelectBox", first: true, predicate: ["editableSelectBox"], descendants: true, static: true }], exportAs: ["editable-select"], usesOnChanges: true, ngImport: i0, template: "<div\n #editableSelectBox\n class=\"devui-form-group devui-has-feedback\"\n [ngClass]=\"{\n 'devui-select-open': dropDownOpen,\n 'allow-clear': (inputValue || inputValue === 0) && allowClear,\n 'devui-gray-style': styleType === 'gray'\n }\"\n>\n <input\n (click)=\"toggle()\"\n class=\"devui-form-control devui-dropdown-origin\"\n type=\"text\"\n name=\"autoCompleteControl\"\n [source]=\"source\"\n (ngModelChange)=\"onTermChange($event)\"\n [ngModel]=\"inputValue\"\n [searchFn]=\"searchFn\"\n [disabled]=\"disabled\"\n [disabledKey]=\"disabledKey\"\n [placeholder]=\"placeholderContent\"\n [itemTemplate]=\"itemTemplate\"\n [noResultItemTemplate]=\"noResultItemTemplate || noResultDefaultTemplate\"\n [appendToBody]=\"appendToBody\"\n [appendToBodyDirections]=\"appendToBodyDirections\"\n [appendToBodyScrollStrategy]=\"appendToBodyScrollStrategy\"\n [maxHeight]=\"maxHeight\"\n [sceneType]=\"enableSelectedValueList ? 'select' : 'select-extend'\"\n [dAutoCompleteWidth]=\"width\"\n dAutoComplete\n [enableLazyLoad]=\"enableLazyLoad\"\n [formatter]=\"formatter\"\n [valueParser]=\"valueParser\"\n [showAnimation]=\"showAnimation\"\n [customViewTemplate]=\"customViewTemplate\"\n [customViewDirection]=\"customViewDirection\"\n (toggleChange)=\"toggleChangeHandler($event)\"\n (loadMore)=\"loadMoreEvent($event)\"\n (selectValue)=\"selectValue($event)\"\n (hoverItem)=\"onHoverItem($event)\"\n (blur)=\"blurEventHandle($event)\"\n />\n <span class=\"devui-form-control-feedback\">\n <span class=\"devui-select-clear-icon\" (click)=\"valueClear($event)\">\n <svg viewBox=\"0 0 16 16\">\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <path\n d=\"M8,1 C11.8659932,1 15,4.13400675 15,8 C15,11.8659932 11.8659932,15 8,15 C4.13400675,15 1,11.8659932 1,8 C1,4.13400675 4.13400675,1 8,1 Z M5.87867966,5.17157288 C5.68341751,4.97631073 5.36683502,4.97631073 5.17157288,5.17157288 C4.99800652,5.34513923 4.97872137,5.61456363 5.11371742,5.80943177 L5.17157288,5.87867966 L7.29218611,7.99929289 L5.17157288,10.1213203 C4.97631073,10.3165825 4.97631073,10.633165 5.17157288,10.8284271 C5.34513923,11.0019935 5.61456363,11.0212786 5.80943177,10.8862826 L5.87867966,10.8284271 L7.99929289,8.70639967 L10.1213203,10.8284271 C10.3165825,11.0236893 10.633165,11.0236893 10.8284271,10.8284271 C11.0019935,10.6548608 11.0212786,10.3854364 10.8862826,10.1905682 L10.8284271,10.1213203 L8.70710678,8 L10.8284271,5.87867966 C11.0236893,5.68341751 11.0236893,5.36683502 10.8284271,5.17157288 C10.6548608,4.99800652 10.3854364,4.97872137 10.1905682,5.11371742 L10.1213203,5.17157288 L8,7.29289322 L5.87867966,5.17157288 Z\"\n fill-rule=\"nonzero\"\n ></path>\n </g>\n </svg>\n </span>\n <span class=\"devui-select-chevron-icon\">\n <svg\n width=\"16px\"\n height=\"16px\"\n viewBox=\"0 0 16 16\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n >\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <path\n d=\"M3.64644661,5.64644661 C3.82001296,5.47288026 4.08943736,5.45359511 4.2843055,5.58859116 L4.35355339,5.64644661 L8,9.293 L11.6464466,5.64644661 C11.820013,5.47288026 12.0894374,5.45359511 12.2843055,5.58859116 L12.3535534,5.64644661 C12.5271197,5.82001296 12.5464049,6.08943736 12.4114088,6.2843055 L12.3535534,6.35355339 L8.35355339,10.3535534 C8.17998704,10.5271197 7.91056264,10.5464049 7.7156945,10.4114088 L7.64644661,10.3535534 L3.64644661,6.35355339 C3.45118446,6.15829124 3.45118446,5.84170876 3.64644661,5.64644661 Z\"\n ></path>\n </g>\n </svg>\n </span>\n </span>\n</div>\n\n<ng-template #noResultDefaultTemplate>\n <span>{{ inputValue || inputValue === 0 ? i18nCommonText?.noRecordsFound : i18nCommonText?.noData }}</span>\n</ng-template>\n", styles: [".devui-font-size-base{font-size:var(--devui-font-size, 12px)}.devui-font-base{font-size:var(--devui-font-size, 12px);font-weight:var(--devui-font-content-weight, normal);line-height:var(--devui-line-height-base, 1.5)}.devui-font-size-modal-title{font-size:var(--devui-font-size-modal-title, 18px)}.devui-font-modal-title{font-size:var(--devui-font-size-modal-title, 18px);font-weight:var(--devui-font-title-weight, bold);line-height:var(--devui-line-height-base, 1.5)}.devui-font-size-page-title{font-size:var(--devui-font-size-page-title, 16px)}.devui-font-page-title{font-size:var(--devui-font-size-page-title, 16px);font-weight:var(--devui-font-title-weight, bold);line-height:var(--devui-line-height-base, 1.5)}.devui-font-size-secondary-title{font-size:var(--devui-font-size-card-title, 14px)}.devui-font-secondary-title{font-size:var(--devui-font-size-card-title, 14px);font-weight:var(--devui-font-title-weight, bold);line-height:var(--devui-line-height-base, 1.5)}.devui-form-group.devui-has-feedback>.devui-form-control-feedback{height:100%;display:inline-flex;align-items:center;justify-content:center;padding:0;font-size:var(--devui-font-size, 12px);z-index:10}.devui-form-group.devui-has-feedback>.devui-form-control-feedback>span{align-items:center}.devui-form-group.devui-has-feedback>.devui-form-control-feedback>span>svg{width:1em;height:1em}.devui-form-group.devui-has-feedback .devui-select-clear-icon{pointer-events:auto;display:none;cursor:pointer}.devui-form-group.devui-has-feedback .devui-select-clear-icon path{fill:var(--devui-shape-icon-fill, #c2c2c2);transition:all var(--devui-animation-ease-in-out-smooth, cubic-bezier(.645, .045, .355, 1)) var(--devui-animation-duration-slow, .3s)}.devui-form-group.devui-has-feedback .devui-select-clear-icon:hover path{fill:var(--devui-shape-icon-fill-hover, #808080)}.devui-form-group.devui-has-feedback .devui-select-chevron-icon{display:flex;transition:transform var(--devui-animation-duration-slow, .3s) var(--devui-animation-ease-in-out-smooth, cubic-bezier(.645, .045, .355, 1))}.devui-form-group.devui-has-feedback .devui-select-chevron-icon svg path{fill:var(--devui-text-weak, #333333)}.devui-form-group.devui-has-feedback.allow-clear:hover .devui-select-chevron-icon{display:none}.devui-form-group.devui-has-feedback.allow-clear:hover .devui-select-clear-icon{display:flex}.devui-select-open .devui-select-chevron-icon{transform:rotate(180deg)}.devui-form-control{outline:none;padding-right:24px}input::-ms-clear{display:none}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.AutoCompleteDirective, selector: "[dAutoComplete]", inputs: ["disabled", "cssClass", "delay", "showGlowStyle", "minLength", "itemTemplate", "noResultItemTemplate", "searchingTemplate", "isSearching", "appendToBody", "appendToBodyDirections", "appendToBodyScrollStrategy", "cdkOverlayOffsetY", "dAutoCompleteWidth", "formatter", "sceneType", "tipsText", "overview", "latestSource", "source", "valueParser", "searchFn", "dropdown", "maxHeight", "disabledKey", "showAnimation", "enableLazyLoad", "retainInputValue", "allowEmptyValueSearch", "customViewTemplate", "customViewDirection"], outputs: ["loadMore", "selectValue", "transInputFocusEmit", "changeDropDownStatus", "toggleChange", "hoverItem"], exportAs: ["autoComplete"] }] }); } } __decorate([ WithConfig(), __metadata("design:type", String) ], EditableSelectComponent.prototype, "appendToBodyScrollStrategy", void 0); __decorate([ WithConfig(), __metadata("design:type", Object) ], EditableSelectComponent.prototype, "showAnimation", void 0); __decorate([ WithConfig(), __metadata("design:type", Object) ], EditableSelectComponent.prototype, "styleType", void 0); __decorate([ WithConfig(), __metadata("design:type", Object) ], EditableSelectComponent.prototype, "showGlowStyle", void 0); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EditableSelectComponent, decorators: [{ type: Component, args: [{ selector: 'd-editable-select', exportAs: 'editable-select', providers: [ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => EditableSelectComponent), multi: true, }, ], preserveWhitespaces: false, template: "<div\n #editableSelectBox\n class=\"devui-form-group devui-has-feedback\"\n [ngClass]=\"{\n 'devui-select-open': dropDownOpen,\n 'allow-clear': (inputValue || inputValue === 0) && allowClear,\n 'devui-gray-style': styleType === 'gray'\n }\"\n>\n <input\n (click)=\"toggle()\"\n class=\"devui-form-control devui-dropdown-origin\"\n type=\"text\"\n name=\"autoCompleteControl\"\n [source]=\"source\"\n (ngModelChange)=\"onTermChange($event)\"\n [ngModel]=\"inputValue\"\n [searchFn]=\"searchFn\"\n [disabled]=\"disabled\"\n [disabledKey]=\"disabledKey\"\n [placeholder]=\"placeholderContent\"\n [itemTemplate]=\"itemTemplate\"\n [noResultItemTemplate]=\"noResultItemTemplate || noResultDefaultTemplate\"\n [appendToBody]=\"appendToBody\"\n [appendToBodyDirections]=\"appendToBodyDirections\"\n [appendToBodyScrollStrategy]=\"appendToBodyScrollStrategy\"\n [maxHeight]=\"maxHeight\"\n [sceneType]=\"enableSelectedValueList ? 'select' : 'select-extend'\"\n [dAutoCompleteWidth]=\"width\"\n dAutoComplete\n [enableLazyLoad]=\"enableLazyLoad\"\n [formatter]=\"formatter\"\n [valueParser]=\"valueParser\"\n [showAnimation]=\"showAnimation\"\n [customViewTemplate]=\"customViewTemplate\"\n [customViewDirection]=\"customViewDirection\"\n (toggleChange)=\"toggleChangeHandler($event)\"\n (loadMore)=\"loadMoreEvent($event)\"\n (selectValue)=\"selectValue($event)\"\n (hoverItem)=\"onHoverItem($event)\"\n (blur)=\"blurEventHandle($event)\"\n />\n <span class=\"devui-form-control-feedback\">\n <span class=\"devui-select-clear-icon\" (click)=\"valueClear($event)\">\n <svg viewBox=\"0 0 16 16\">\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <path\n d=\"M8,1 C11.8659932,1 15,4.13400675 15,8 C15,11.8659932 11.8659932,15 8,15 C4.13400675,15 1,11.8659932 1,8 C1,4.13400675 4.13400675,1 8,1 Z M5.87867966,5.17157288 C5.68341751,4.97631073 5.36683502,4.97631073 5.17157288,5.17157288 C4.99800652,5.34513923 4.97872137,5.61456363 5.11371742,5.80943177 L5.17157288,5.87867966 L7.29218611,7.99929289 L5.17157288,10.1213203 C4.97631073,10.3165825 4.97631073,10.633165 5.17157288,10.8284271 C5.34513923,11.0019935 5.61456363,11.0212786 5.80943177,10.8862826 L5.87867966,10.8284271 L7.99929289,8.70639967 L10.1213203,10.8284271 C10.3165825,11.0236893 10.633165,11.0236893 10.8284271,10.8284271 C11.0019935,10.6548608 11.0212786,10.3854364 10.8862826,10.1905682 L10.8284271,10.1213203 L8.70710678,8 L10.8284271,5.87867966 C11.0236893,5.68341751 11.0236893,5.36683502 10.8284271,5.17157288 C10.6548608,4.99800652 10.3854364,4.97872137 10.1905682,5.11371742 L10.1213203,5.17157288 L8,7.29289322 L5.87867966,5.17157288 Z\"\n fill-rule=\"nonzero\"\n ></path>\n </g>\n </svg>\n </span>\n <span class=\"devui-select-chevron-icon\">\n <svg\n width=\"16px\"\n height=\"16px\"\n viewBox=\"0 0 16 16\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n >\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <path\n d=\"M3.64644661,5.64644661 C3.82001296,5.47288026 4.08943736,5.45359511 4.2843055,5.58859116 L4.35355339,5.64644661 L8,9.293 L11.6464466,5.64644661 C11.820013,5.47288026 12.0894374,5.45359511 12.2843055,5.58859116 L12.3535534,5.64644661 C12.5271197,5.82001296 12.5464049,6.08943736 12.4114088,6.2843055 L12.3535534,6.35355339 L8.35355339,10.3535534 C8.17998704,10.5271197 7.91056264,10.5464049 7.7156945,10.4114088 L7.64644661,10.3535534 L3.64644661,6.35355339 C3.45118446,6.15829124 3.45118446,5.84170876 3.64644661,5.64644661 Z\"\n ></path>\n </g>\n </svg>\n </span>\n </span>\n</div>\n\n<ng-template #noResultDefaultTemplate>\n <span>{{ inputValue || inputValue === 0 ? i18nCommonText?.noRecordsFound : i18nCommonText?.noData }}</span>\n</ng-template>\n", styles: [".devui-font-size-base{font-size:var(--devui-font-size, 12px)}.devui-font-base{font-size:var(--devui-font-size, 12px);font-weight:var(--devui-font-content-weight, normal);line-height:var(--devui-line-height-base, 1.5)}.devui-font-size-modal-title{font-size:var(--devui-font-size-modal-title, 18px)}.devui-font-modal-title{font-size:var(--devui-font-size-modal-title, 18px);font-weight:var(--devui-font-title-weight, bold);line-height:var(--devui-line-height-base, 1.5)}.devui-font-size-page-title{font-size:var(--devui-font-size-page-title, 16px)}.devui-font-page-title{font-size:var(--devui-font-size-page-title, 16px);font-weight:var(--devui-font-title-weight, bold);line-height:var(--devui-line-height-base, 1.5)}.devui-font-size-secondary-title{font-size:var(--devui-font-size-card-title, 14px)}.devui-font-secondary-title{font-size:var(--devui-font-size-card-title, 14px);font-weight:var(--devui-font-title-weight, bold);line-height:var(--devui-line-height-base, 1.5)}.devui-form-group.devui-has-feedback>.devui-form-control-feedback{height:100%;display:inline-flex;align-items:center;justify-content:center;padding:0;font-size:var(--devui-font-size, 12px);z-index:10}.devui-form-group.devui-has-feedback>.devui-form-control-feedback>span{align-items:center}.devui-form-group.devui-has-feedback>.devui-form-control-feedback>span>svg{width:1em;height:1em}.devui-form-group.devui-has-feedback .devui-select-clear-icon{pointer-events:auto;display:none;cursor:pointer}.devui-form-group.devui-has-feedback .devui-select-clear-icon path{fill:var(--devui-shape-icon-fill, #c2c2c2);transition:all var(--devui-animation-ease-in-out-smooth, cubic-bezier(.645, .045, .355, 1)) var(--devui-animation-duration-slow, .3s)}.devui-form-group.devui-has-feedback .devui-select-clear-icon:hover path{fill:var(--devui-shape-icon-fill-hover, #808080)}.devui-form-group.devui-has-feedback .devui-select-chevron-icon{display:flex;transition:transform var(--devui-animation-duration-slow, .3s) var(--devui-animation-ease-in-out-smooth, cubic-bezier(.645, .045, .355, 1))}.devui-form-group.devui-has-feedback .devui-select-chevron-icon svg path{fill:var(--devui-text-weak, #333333)}.devui-form-group.devui-has-feedback.allow-clear:hover .devui-select-chevron-icon{display:none}.devui-form-group.devui-has-feedback.allow-clear:hover .devui-select-clear-icon{display:flex}.devui-select-open .devui-select-chevron-icon{transform:rotate(180deg)}.devui-form-control{outline:none;padding-right:24px}input::-ms-clear{display:none}\n"] }] }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.I18nService }, { type: i2.DevConfigService }], propDecorators: { appendToBody: [{ type: Input }], appendToBodyDirections: [{ type: Input }], appendToBodyScrollStrategy: [{ type: Input }], disabled: [{ type: Input }], placeholder: [{ type: Input }], source: [{ type: Input }], itemTemplate: [{ type: Input }], noResultItemTemplate: [{ type: Input }], maxHeight: [{ type: Input }], width: [{ type: Input }], disabledKey: [{ type: Input }], allowClear: [{ type: Input }], enableSelectedValueList: [{ type: Input }], enableLazyLoad: [{ type: Input }], customViewTemplate: [{ type: Input }], customViewDirection: [{ type: Input }], formatter: [{ type: Input }], valueParser: [{ type: Input }], searchFn: [{ type: Input }], showAnimation: [{ type: Input }], styleType: [{ type: Input }], showGlowStyle: [{ type: Input }], hasGlowStyle: [{ type: HostBinding, args: ['class.devui-glow-style'] }], loadMore: [{ type: Output }], toggleChange: [{ type: Output }], hoverItem: [{ type: Output }], selectItem: [{ type: Output }], autoCompleteDirective: [{ type: ViewChild, args: [AutoCompleteDirective, { static: true }] }], editableSelectBox: [{ type: ViewChild, args: ['editableSelectBox', { static: true }] }], onDocumentClick: [{ type: HostListener, args: ['document:click', ['$event']] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdGFibGUtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2RldnVpL2VkaXRhYmxlLXNlbGVjdC9lZGl0YWJsZS1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZGV2dWkvZWRpdGFibGUtc2VsZWN0L2VkaXRhYmxlLXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxFQUVOLFdBQVcsRUFDWCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9ELE9BQU8sRUFBaUIsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBeUQsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUFpQnJILE1BQU0sT0FBTyx1QkFBdUI7SUF1QmxDLElBQTJDLFlBQVk7UUFDckQsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFnQkQsSUFBSSxZQUFZLENBQUMsR0FBRztRQUNsQixJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQztRQUN6QixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN6RCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN2QyxJQUFJLENBQUMsU0FBUyxFQUFF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QUFwQixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDaUIsYUFBYTtzQkFBbkMsS0FBSztnQkFDaUIsU0FBUztzQkFBL0IsS0FBSztnQkFDaUIsYUFBYTtzQkFBbkMsS0FBSztnQkFDcUMsWUFBWTtzQkFBdEQsV0FBVzt1QkFBQyx3QkFBd0I7Z0JBRzNCLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQzZDLHFCQUFxQjtzQkFBeEUsU0FBUzt1QkFBQyxxQkFBcUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ0EsaUJBQWlCO3NCQUFsRSxTQUFTO3VCQUFDLG1CQUFtQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFtQ2hELGVBQWU7c0JBRGQsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbm5lY3RlZFBvc2l0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xyXG5pbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBmb3J3YXJkUmVmLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBUZW1wbGF0ZVJlZixcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQXV0b0NvbXBsZXRlRGlyZWN0aXZlIH0gZnJvbSAnbmctZGV2dWkvYXV0by1jb21wbGV0ZSc7XHJcbmltcG9ydCB7IEkxOG5JbnRlcmZhY2UsIEkxOG5TZXJ2aWNlIH0gZnJvbSAnbmctZGV2dWkvaTE4bic7XHJcbmltcG9ydCB7IEFwcGVuZFRvQm9keURpcmVjdGlvbiwgQXBwZW5kVG9Cb2R5U2Nyb2xsU3RyYXRlZ3lUeXBlLCBEZXZDb25maWdTZXJ2aWNlLCBXaXRoQ29uZmlnIH0gZnJvbSAnbmctZGV2dWkvdXRpbHMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZC1lZGl0YWJsZS1zZWxlY3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9lZGl0YWJsZS1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2VkaXRhYmxlLXNlbGVjdC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGV4cG9ydEFzOiAnZWRpdGFibGUtc2VsZWN0JyxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEVkaXRhYmxlU2VsZWN0Q29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gIF0sXHJcbiAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFZGl0YWJsZVNlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuICBASW5wdXQoKSBhcHBlbmRUb0JvZHkgPSBmYWxzZTtcclxuICBASW5wdXQoKSBhcHBlbmRUb0JvZHlEaXJlY3Rpb25zOiBBcnJheTxBcHBlbmRUb0JvZHlEaXJlY3Rpb24gfCBDb25uZWN0ZWRQb3NpdGlvbj4gPSBbJ3JpZ2h0RG93bicsICdsZWZ0RG93bicsICdyaWdodFVwJywgJ2xlZnRVcCddO1xyXG4gIEBJbnB1dCgpIEBXaXRoQ29uZmlnKCkgYXBwZW5kVG9Cb2R5U2Nyb2xsU3RyYXRlZ3k6IEFwcGVuZFRvQm9keVNjcm9sbFN0cmF0ZWd5VHlwZTtcclxuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJyc7XHJcbiAgQElucHV0KCkgc291cmNlOiBhbnlbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIGl0ZW1UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICBASW5wdXQoKSBub1Jlc3VsdEl0ZW1UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICBASW5wdXQoKSBtYXhIZWlnaHQ6IG51bWJlcjtcclxuICBASW5wdXQoKSB3aWR0aDogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkS2V5OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgYWxsb3dDbGVhciA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGVuYWJsZVNlbGVjdGVkVmFsdWVMaXN0ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZW5hYmxlTGF6eUxvYWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBjdXN0b21WaWV3VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQElucHV0KCkgY3VzdG9tVmlld0RpcmVjdGlvbjogJ2JvdHRvbScgfCAncmlnaHQnIHwgJ2xlZnQnIHwgJ3RvcCcgPSAnYm90dG9tJztcclxuICBASW5wdXQoKSBmb3JtYXR0ZXIgPSAoaXRlbTogYW55KSA9PiAoaXRlbSA/IGl0ZW0ubGFiZWwgfHwgaXRlbS50b1N0cmluZygpIDogJycpO1xyXG4gIEBJbnB1dCgpIHZhbHVlUGFyc2VyID0gKGl0ZW06IGFueSkgPT4gKGl0ZW0gPyBpdGVtLmxhYmVsIHx8IGl0ZW0udG9TdHJpbmcoKSA6ICcnKTtcclxuICBASW5wdXQoKSBzZWFyY2hGbjogKHRlcm06IHN0cmluZykgPT4gT2JzZXJ2YWJsZTxhbnlbXT47XHJcbiAgQElucHV0KCkgQFdpdGhDb25maWcoKSBzaG93QW5pbWF0aW9uID0gdHJ1ZTtcclxuICBASW5wdXQoKSBAV2l0aENvbmZpZygpIHN0eWxlVHlwZSA9ICdkZWZhdWx0JztcclxuICBASW5wdXQoKSBAV2l0aENvbmZpZygpIHNob3dHbG93U3R5bGUgPSB0cnVlO1xyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZGV2dWktZ2xvdy1zdHlsZScpIGdldCBoYXNHbG93U3R5bGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zaG93R2xvd1N0eWxlO1xyXG4gIH1cclxuICBAT3V0cHV0KCkgbG9hZE1vcmUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgdG9nZ2xlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIGhvdmVySXRlbSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSBzZWxlY3RJdGVtID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQFZpZXdDaGlsZChBdXRvQ29tcGxldGVEaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlIH0pIGF1dG9Db21wbGV0ZURpcmVjdGl2ZTogQXV0b0NvbXBsZXRlRGlyZWN0aXZlO1xyXG4gIEBWaWV3Q2hpbGQoJ2VkaXRhYmxlU2VsZWN0Qm94JywgeyBzdGF0aWM6IHRydWUgfSkgZWRpdGFibGVTZWxlY3RCb3g6IEVsZW1lbnRSZWY7XHJcblxyXG4gIGlucHV0VmFsdWU6IGFueTtcclxuICBpbnB1dFZhbHVlQ2FjaGU6IGFueTtcclxuICBtdWx0aUl0ZW1zOiBhbnlbXSA9IFtdO1xyXG4gIGFjdGl2ZUluZGV4ID0gMDtcclxuICBpMThuQ29tbW9uVGV4dDogSTE4bkludGVyZmFjZVsnY29tbW9uJ107XHJcbiAgaTE4blN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG4gIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBzZXQgZHJvcERvd25PcGVuKHZhbCkge1xyXG4gICAgdGhpcy5fZHJvcERvd25PcGVuID0gdmFsO1xyXG4gICAgaWYgKHRoaXMuX2Ryb3BEb3duT3Blbikge1xyXG4gICAgICB0aGlzLmF1dG9Db21wbGV0ZURpcmVjdGl2ZS5vcGVuUG9wdXAodGhpcy5hY3RpdmVJbmRleCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmF1dG9Db21wbGV0ZURpcmVjdGl2ZS5oaWRlUG9wdXAoKTtcclxuICAgICAgdGhpcy5vblRvdWNoZWQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBkcm9wRG93bk9wZW4oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZHJvcERvd25PcGVuO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHBsYWNlaG9sZGVyQ29udGVudCgpIHtcclxuICAgIHJldHVybiB0aGlzLnZhbHVlUGFyc2VyKHRoaXMuaW5wdXRWYWx1ZUNhY2hlKSB8fCB0aGlzLnBsYWNlaG9sZGVyO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBBTklNQVRJT05fREVMQVkgPSAzMDA7XHJcbiAgcHJpdmF0ZSBibHVyVGltZXI6IGFueTtcclxuICBwcml2YXRlIF9kcm9wRG93bk9wZW4gPSBmYWxzZTtcclxuICBwcml2YXRlIG9uQ2hhbmdlID0gKF86IGFueSkgPT4gbnVsbDtcclxuICBwcml2YXRlIG9uVG91Y2hlZCA9ICgpID0+IG51bGw7XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcclxuICBvbkRvY3VtZW50Q2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmJsdXJUaW1lcikge1xyXG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5ibHVyVGltZXIpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jbG9zZURyb3Bkb3duTWVudShldmVudCk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgaTE4bjogSTE4blNlcnZpY2UsIHByaXZhdGUgZGV2Q29uZmlnU2VydmljZTogRGV2Q29uZmlnU2VydmljZSkge31cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXM/LnNlYXJjaEZuICYmIHR5cGVvZiB0aGlzLnNlYXJjaEZuID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbikge1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLnNlYXJjaEZuKCcnKS5zdWJzY3JpYmUoKHNvdXJjZSkgPT4ge1xyXG4gICAgICAgIHRoaXMuc291cmNlID0gc291cmNlO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pMThuQ29tbW9uVGV4dCA9IHRoaXMuaTE4bi5nZXRJMThuVGV4dCgpLmNvbW1vbjtcclxuICAgIHRoaXMuaTE4blN1YnNjcmlwdGlvbiA9IHRoaXMuaTE4bi5sYW5nQ2hhbmdlKCkuc3Vic2NyaWJlKChkYXRhKSA9PiB7XHJcbiAgICAgIHRoaXMuaTE4bkNvbW1vblRleHQgPSBkYXRhLmNvbW1vbjtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pMThuU3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgIHRoaXMuaTE4blN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLmlucHV0VmFsdWVDYWNoZSA9IHRoaXMuaW5wdXRWYWx1ZSA9IHZhbHVlID8/ICcnO1xyXG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICBzZWxlY3RWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLl9kcm9wRG93bk9wZW4gPSBmYWxzZTtcclxuICAgIHRoaXMuaW5wdXRWYWx1ZUNhY2hlID0gdGhpcy5pbnB1dFZhbHVlID0gdmFsdWUgPz8gJyc7XHJcbiAgICB0aGlzLnNlbGVjdEl0ZW0uZW1pdCh0aGlzLmlucHV0VmFsdWUpO1xyXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLmlucHV0VmFsdWUpO1xyXG4gICAgdGhpcy5vblRvdWNoZWQoKTtcclxuICB9XHJcblxyXG4gIHZhbHVlQ2xlYXIoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuaW5wdXRWYWx1ZUNhY2hlID0gdGhpcy5pbnB1dFZhbHVlID0gJyc7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKCcnKTtcclxuICB9XHJcblxyXG4gIG9uVGVybUNoYW5nZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLmlucHV0VmFsdWVDYWNoZSA9IHRoaXMuaW5wdXRWYWx1ZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLmlucHV0VmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlKCk6IHZvaWQge1xyXG4gICAgY29uc3QgaW5wdXRTdHJpbmcgPSB0aGlzLmZvcm1hdHRlcih0aGlzLmlucHV0VmFsdWUpID8/ICcnO1xyXG4gICAgdGhpcy5hY3RpdmVJbmRleCA9IHRoaXMuZW5hYmxlU2VsZWN0ZWRWYWx1ZUxpc3RcclxuICAgICAgPyB0aGlzLmF1dG9Db21wbGV0ZURpcmVjdGl2ZS5wb3B1cFJlZi5pbnN0YW5jZS5hY3RpdmVJbmRleFxyXG4gICAgICA6IHRoaXMuc291cmNlLm1hcCgoaXRlbSkgPT4gdGhpcy5mb3JtYXR0ZXIoaXRlbSkudG9Mb3dlckNhc2UoKSkuaW5kZXhPZihpbnB1dFN0cmluZy50b0xvd2VyQ2FzZSgpKTtcclxuICAgIHRoaXMuYWN0aXZlSW5kZXggPSB0aGlzLmFjdGl2ZUluZGV4ID4gLTEgPyB0aGlzLmFjdGl2ZUluZGV4IDogMDtcclxuICAgIHRoaXMuZHJvcERvd25PcGVuID0gIXRoaXMuZHJvcERvd25PcGVuO1xyXG4gICAgaWYgKHRoaXMuZHJvcERvd25PcGVuICYmICF0aGlzLmVuYWJsZVNlbGVjdGVkVmFsdWVMaXN0KSB7XHJcbiAgICAgIHRoaXMuYXV0b0NvbXBsZXRlRGlyZWN0aXZlLnNlYXJjaFZhbHVlKCcnLCBmYWxzZSk7XHJcbiAgICAgIHRoaXMuYXV0b0NvbXBsZXRlRGlyZWN0aXZlLnBvcHVwUmVmLmluc3RhbmNlLnNjcm9sbFRvQWN0aXZlKHRoaXMuYWN0aXZlSW5kZXgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbG9hZE1vcmVFdmVudChldmVudDogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLmxvYWRNb3JlLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlQ2hhbmdlSGFuZGxlcih2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5fZHJvcERvd25PcGVuID0gdmFsdWU7XHJcbiAgICB0aGlzLmlucHV0VmFsdWUgPSAhdGhpcy5lbmFibGVTZWxlY3RlZFZhbHVlTGlzdCAmJiB2YWx1ZSA/ICcnIDogdGhpcy5pbnB1dFZhbHVlQ2FjaGU7XHJcbiAgICB0aGlzLnRvZ2dsZUNoYW5nZS5lbWl0KHZhbHVlKTtcclxuICB9XHJcblxyXG4gIG9uSG92ZXJJdGVtKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuaG92ZXJJdGVtLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VEcm9wZG93bk1lbnUoZXZlbnQ6IEZvY3VzRXZlbnQgfCBNb3VzZUV2ZW50LCBpc0JsdXIgPSBmYWxzZSkge1xyXG4gICAgaWYgKHRoaXMuZHJvcERvd25PcGVuKSB7XHJcbiAgICAgIGNvbnN0IHRhcmdldCA9IGlzQmx1ciA/IGV2ZW50LnJlbGF0ZWRUYXJnZXQgOiBldmVudC50YXJnZXQ7XHJcbiAgICAgIGNvbnN0IHRhcmdldEVsID0gdGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICBpZiAoIXRoaXMuZWRpdGFibGVTZWxlY3RCb3gubmF0aXZlRWxlbWVudC5jb250YWlucyh0YXJnZXRFbCkpIHtcclxuICAgICAgICB0aGlzLmRyb3BEb3duT3BlbiA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBibHVyRXZlbnRIYW5kbGUoZXZlbnQ6IEZvY3VzRXZlbnQpIHtcclxuICAgIGlmICh0aGlzLmJsdXJUaW1lcikge1xyXG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5ibHVyVGltZXIpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5ibHVyVGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2xvc2VEcm9wZG93bk1lbnUoZXZlbnQsIHRydWUpLCB0aGlzLkFOSU1BVElPTl9ERUxBWSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcbiAgI2VkaXRhYmxlU2VsZWN0Qm94XG4gIGNsYXNzPVwiZGV2dWktZm9ybS1ncm91cCBkZXZ1aS1oYXMtZmVlZGJhY2tcIlxuICBbbmdDbGFzc109XCJ7XG4gICAgJ2RldnVpLXNlbGVjdC1vcGVuJzogZHJvcERvd25PcGVuLFxuICAgICdhbGxvdy1jbGVhcic6IChpbnB1dFZhbHVlIHx8IGlucHV0VmFsdWUgPT09IDApICYmIGFsbG93Q2xlYXIsXG4gICAgJ2RldnVpLWdyYXktc3R5bGUnOiBzdHlsZVR5cGUgPT09ICdncmF5J1xuICB9XCJcbj5cbiAgPGlucHV0XG4gICAgKGNsaWNrKT1cInRvZ2dsZSgpXCJcbiAgICBjbGFzcz1cImRldnVpLWZvcm0tY29udHJvbCBkZXZ1aS1kcm9wZG93bi1vcmlnaW5cIlxuICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICBuYW1lPVwiYXV0b0NvbXBsZXRlQ29udHJvbFwiXG4gICAgW3NvdXJjZV09XCJzb3VyY2VcIlxuICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uVGVybUNoYW5nZSgkZXZlbnQpXCJcbiAgICBbbmdNb2RlbF09XCJpbnB1dFZhbHVlXCJcbiAgICBbc2VhcmNoRm5dPVwic2VhcmNoRm5cIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2Rpc2FibGVkS2V5XT1cImRpc2FibGVkS2V5XCJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJDb250ZW50XCJcbiAgICBbaXRlbVRlbXBsYXRlXT1cIml0ZW1UZW1wbGF0ZVwiXG4gICAgW25vUmVzdWx0SXRlbVRlbXBsYXRlXT1cIm5vUmVzdWx0SXRlbVRlbXBsYXRlIHx8IG5vUmVzdWx0RGVmYXVsdFRlbXBsYXRlXCJcbiAgICBbYXBwZW5kVG9Cb2R5XT1cImFwcGVuZFRvQm9keVwiXG4gICAgW2FwcGVuZFRvQm9keURpcmVjdGlvbnNdPVwiYXBwZW5kVG9Cb2R5RGlyZWN0aW9uc1wiXG4gICAgW2FwcGVuZFRvQm9keVNjcm9sbFN0cmF0ZWd5XT1cImFwcGVuZFRvQm9keVNjcm9sbFN0cmF0ZWd5XCJcbiAgICBbbWF4SGVpZ2h0XT1cIm1heEhlaWdodFwiXG4gICAgW3NjZW5lVHlwZV09XCJlbmFibGVTZWxlY3RlZFZhbHVlTGlzdCA/ICdzZWxlY3QnIDogJ3NlbGVjdC1leHRlbmQnXCJcbiAgICBbZEF1dG9Db21wbGV0ZVdpZHRoXT1cIndpZHRoXCJcbiAgICBkQXV0b0NvbXBsZXRlXG4gICAgW2VuYWJsZUxhenlMb2FkXT1cImVuYWJsZUxhenlMb2FkXCJcbiAgICBbZm9ybWF0dGVyXT1cImZvcm1hdHRlclwiXG4gICAgW3ZhbHVlUGFyc2VyXT1cInZhbHVlUGFyc2VyXCJcbiAgICBbc2hvd0FuaW1hdGlvbl09XCJzaG93QW5pbWF0aW9uXCJcbiAgICBbY3VzdG9tVmlld1RlbXBsYXRlXT1cImN1c3RvbVZpZXdUZW1wbGF0ZVwiXG4gICAgW2N1c3RvbVZpZXdEaXJlY3Rpb25dPVwiY3VzdG9tVmlld0RpcmVjdGlvblwiXG4gICAgKHRvZ2dsZUNoYW5nZSk9XCJ0b2dnbGVDaGFuZ2VIYW5kbGVyKCRldmVudClcIlxuICAgIChsb2FkTW9yZSk9XCJsb2FkTW9yZUV2ZW50KCRldmVudClcIlxuICAgIChzZWxlY3RWYWx1ZSk9XCJzZWxlY3RWYWx1ZSgkZXZlbnQpXCJcbiAgICAoaG92ZXJJdGVtKT1cIm9uSG92ZXJJdGVtKCRldmVudClcIlxuICAgIChibHVyKT1cImJsdXJFdmVudEhhbmRsZSgkZXZlbnQpXCJcbiAgLz5cbiAgPHNwYW4gY2xhc3M9XCJkZXZ1aS1mb3JtLWNvbnRyb2wtZmVlZGJhY2tcIj5cbiAgICA8c3BhbiBjbGFzcz1cImRldnVpLXNlbGVjdC1jbGVhci1pY29uXCIgKGNsaWNrKT1cInZhbHVlQ2xlYXIoJGV2ZW50KVwiPlxuICAgICAgPHN2ZyB2aWV3Qm94PVwiMCAwIDE2IDE2XCI+XG4gICAgICAgIDxnIHN0cm9rZT1cIm5vbmVcIiBzdHJva2Utd2lkdGg9XCIxXCIgZmlsbD1cIm5vbmVcIiBmaWxsLXJ1bGU9XCJldmVub2RkXCI+XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIGQ9XCJNOCwxIEMxMS44NjU5OTMyLDEgMTUsNC4xMzQwMDY3NSAxNSw4IEMxNSwxMS44NjU5OTMyIDExLjg2NTk5MzIsMTUgOCwxNSBDNC4xMzQwMDY3NSwxNSAxLDExLjg2NTk5MzIgMSw4IEMxLDQuMTM0MDA2NzUgNC4xMzQwMDY3NSwxIDgsMSBaIE01Ljg3ODY3OTY2LDUuMTcxNTcyODggQzUuNjgzNDE3NTEsNC45NzYzMTA3MyA1LjM2NjgzNTAyLDQuOTc2MzEwNzMgNS4xNzE1NzI4OCw1LjE3MTU3Mjg4IEM0Ljk5ODAwNjUyLDUuMzQ1MTM5MjMgNC45Nzg3MjEzNyw1LjYxNDU2MzYzIDUuMTEzNzE3NDIsNS44MDk0MzE3NyBMNS4xNzE1NzI4OCw1Ljg3ODY3OTY2IEw3LjI5MjE4NjExLDcuOTk5MjkyODkgTDUuMTcxNTcyODgsMTAuMTIxMzIwMyBDNC45NzYzMTA3MywxMC4zMTY1ODI1IDQuOTc2MzEwNzMsMTAuNjMzMTY1IDUuMTcxNTcyODgsMTAuODI4NDI3MSBDNS4zNDUxMzkyMywxMS4wMDE5OTM1IDUuNjE0NTYzNjMsMTEuMDIxMjc4NiA1LjgwOTQzMTc3LDEwLjg4NjI4MjYgTDUuODc4Njc5NjYsMTAuODI4NDI3MSBMNy45OTkyOTI4OSw4LjcwNjM5OTY3IEwxMC4xMjEzMjAzLDEwLjgyODQyNzEgQzEwLjMxNjU4MjUsMTEuMDIzNjg5MyAxMC42MzMxNjUsMTEuMDIzNjg5MyAxMC44Mjg0MjcxLDEwLjgyODQyNzEgQzExLjAwMTk5MzUsMTAuNjU0ODYwOCAxMS4wMjEyNzg2LDEwLjM4NTQzNjQgMTAuODg2MjgyNiwxMC4xOTA1NjgyIEwxMC44Mjg0MjcxLDEwLjEyMTMyMDMgTDguNzA3MTA2NzgsOCBMMTAuODI4NDI3MSw1Ljg3ODY3OTY2IEMxMS4wMjM2ODkzLDUuNjgzNDE3NTEgMTEuMDIzNjg5Myw1LjM2NjgzNTAyIDEwLjgyODQyNzEsNS4xNzE1NzI4OCBDMTAuNjU0ODYwOCw0Ljk5ODAwNjUyIDEwLjM4NTQzNjQsNC45Nzg3MjEzNyAxMC4xOTA1NjgyLDUuMTEzNzE3NDIgTDEwLjEyMTMyMDMsNS4xNzE1NzI4OCBMOCw3LjI5Mjg5MzIyIEw1Ljg3ODY3OTY2LDUuMTcxNTcyODggWlwiXG4gICAgICAgICAgICBmaWxsLXJ1bGU9XCJub256ZXJvXCJcbiAgICAgICAgICA+PC9wYXRoPlxuICAgICAgICA8L2c+XG4gICAgICA8L3N2Zz5cbiAgICA8L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJkZXZ1aS1zZWxlY3QtY2hldnJvbi1pY29uXCI+XG4gICAgICA8c3ZnXG4gICAgICAgIHdpZHRoPVwiMTZweFwiXG4gICAgICAgIGhlaWdodD1cIjE2cHhcIlxuICAgICAgICB2aWV3Qm94PVwiMCAwIDE2IDE2XCJcbiAgICAgICAgdmVyc2lvbj1cIjEuMVwiXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIlxuICAgICAgPlxuICAgICAgICA8ZyBzdHJva2U9XCJub25lXCIgc3Ryb2tlLXdpZHRoPVwiMVwiIGZpbGw9XCJub25lXCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBkPVwiTTMuNjQ2NDQ2NjEsNS42NDY0NDY2MSBDMy44MjAwMTI5Niw1LjQ3Mjg4MDI2IDQuMDg5NDM3MzYsNS40NTM1OTUxMSA0LjI4NDMwNTUsNS41ODg1OTExNiBMNC4zNTM1NTMzOSw1LjY0NjQ0NjYxIEw4LDkuMjkzIEwxMS42NDY0NDY2LDUuNjQ2NDQ2NjEgQzExLjgyMDAxMyw1LjQ3Mjg4MDI2IDEyLjA4OTQzNzQsNS40NTM1OTUxMSAxMi4yODQzMDU1LDUuNTg4NTkxMTYgTDEyLjM1MzU1MzQsNS42NDY0NDY2MSBDMTIuNTI3MTE5Nyw1LjgyMDAxMjk2IDEyLjU0NjQwNDksNi4wODk0MzczNiAxMi40MTE0MDg4LDYuMjg0MzA1NSBMMTIuMzUzNTUzNCw2LjM1MzU1MzM5IEw4LjM1MzU1MzM5LDEwLjM1MzU1MzQgQzguMTc5OTg3MDQsMTAuNTI3MTE5NyA3LjkxMDU2MjY0LDEwLjU0NjQwNDkgNy43MTU2OTQ1LDEwLjQxMTQwODggTDcuNjQ2NDQ2NjEsMTAuMzUzNTUzNCBMMy42NDY0NDY2MSw2LjM1MzU1MzM5IEMzLjQ1MTE4NDQ2LDYuMTU4MjkxMjQgMy40NTExODQ0Niw1Ljg0MTcwODc2IDMuNjQ2NDQ2NjEsNS42NDY0NDY2MSBaXCJcbiAgICAgICAgICA+PC9wYXRoPlxuICAgICAgICA8L2c+XG4gICAgICA8L3N2Zz5cbiAgICA8L3NwYW4+XG4gIDwvc3Bhbj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI25vUmVzdWx0RGVmYXVsdFRlbXBsYXRlPlxuICA8c3Bhbj57eyBpbnB1dFZhbHVlIHx8IGluc