UNPKG

@duoduo-oba/ng-devui

Version:

DevUI components based on Angular

255 lines 23.1 kB
/** * @fileoverview added by tsickle * Generated from: search.component.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { fromEvent } from 'rxjs'; import { ChangeDetectionStrategy, Component, Input, Output, forwardRef, EventEmitter, ViewChild, ElementRef, Renderer2, ChangeDetectorRef } from '@angular/core'; import { NG_VALUE_ACCESSOR } from '@angular/forms'; import { map, filter, debounceTime } from 'rxjs/operators'; import { I18nService } from '@duoduo-oba/ng-devui/i18n'; export class SearchComponent { /** * @param {?} renderer * @param {?} i18n * @param {?} cdr */ constructor(renderer, i18n, cdr) { this.renderer = renderer; this.i18n = i18n; this.cdr = cdr; this.maxLength = Number.MAX_SAFE_INTEGER; this.isKeyupSearch = false; this.delay = 300; this.searchFn = new EventEmitter(); this.onChange = (/** * @param {?} _ * @return {?} */ (_) => null); this.onTouch = (/** * @return {?} */ () => null); } /** * @return {?} */ ngOnInit() { this.setI18nText(); } /** * @param {?} fn * @return {?} */ registerOnChange(fn) { this.onChange = fn; } /** * @param {?} fn * @return {?} */ registerOnTouched(fn) { this.onTouch = fn; } /** * @param {?=} value * @return {?} */ writeValue(value = '') { this.renderer.setProperty(this.filterInputElement.nativeElement, 'value', value); this.renderClearIcon(); } /** * @return {?} */ setI18nText() { this.i18nCommonText = this.i18n.getI18nText().common; this.i18nSubscription = this.i18n.langChange().subscribe((/** * @param {?} data * @return {?} */ (data) => { this.i18nCommonText = data.common; this.cdr.markForCheck(); })); } /** * @return {?} */ clearText() { this.renderer.setProperty(this.filterInputElement.nativeElement, 'value', ''); if (this.onChange) { this.onChange(''); } this.searchFn.emit(''); this.filterInputElement.nativeElement.focus(); this.renderClearIcon(); } /** * @param {?} value * @param {?=} event * @return {?} */ inputChange(value, event) { this.renderClearIcon(); // 此函数不能删除,需要给filterInput.value赋值,从而控制clear的显隐。因为registerFilterChange对clear的显隐控制不起作用。 } /** * @param {?} term * @return {?} */ keyupEnter(term) { this.searchFn.emit(term); } /** * @return {?} */ registerFilterChange() { this.subscription = fromEvent(this.filterInputElement.nativeElement, 'input') .pipe(map((/** * @param {?} e * @return {?} */ (e) => e.target.value)), filter((/** * @param {?} term * @return {?} */ term => true)), debounceTime(this.delay)).subscribe((/** * @param {?} value * @return {?} */ value => { this.onChange(value); if (this.isKeyupSearch) { this.searchFn.emit(value); } })); } /** * @return {?} */ ngAfterViewInit() { this.registerFilterChange(); this.renderClearIcon(); } /** * @return {?} */ renderClearIcon() { if (this.filterInputElement.nativeElement.value && this.lineElement && this.clearIconElement) { this.renderer.setStyle(this.lineElement.nativeElement, 'display', 'block'); this.renderer.setStyle(this.clearIconElement.nativeElement, 'display', 'block'); } else if (this.lineElement && this.clearIconElement) { this.renderer.setStyle(this.lineElement.nativeElement, 'display', 'none'); this.renderer.setStyle(this.clearIconElement.nativeElement, 'display', 'none'); } } /** * @return {?} */ ngOnDestroy() { if (this.subscription) { this.subscription.unsubscribe(); } if (this.i18nSubscription) { this.i18nSubscription.unsubscribe(); } } } SearchComponent.decorators = [ { type: Component, args: [{ selector: 'd-search', template: "<div class=\"devui-search\">\r\n <input\r\n #filterInput\r\n (keyup.enter)=\"keyupEnter(filterInput.value)\"\r\n [placeholder]=\"placeholder || i18nCommonText?.searchPlaceholder\"\r\n [ngClass]=\"size ? 'devui-input-' + size : ''\"\r\n (change)=\"inputChange(filterInput.value, $event)\"\r\n (keyup)=\"inputChange(filterInput.value, $event)\"\r\n [attr.maxlength]=\"maxLength\"\r\n type=\"text\"\r\n class=\"devui-input\"\r\n [ngClass]=\"size ? 'devui-input-' + size : ''\"\r\n />\r\n <span class=\"devui-search-icon\" [ngClass]=\"size ? 'devui-search-icon-' + size : ''\" (click)=\"keyupEnter(filterInput.value)\">\r\n <svg\r\n class=\"svg-icon-search\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n width=\"14px\"\r\n height=\"14px\"\r\n viewBox=\"0 0 16 16\"\r\n version=\"1.1\"\r\n >\r\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\r\n <path\r\n d=\"M12.902261,10.765041 L15.5632031,13.425983 C16.1489895,14.0117695 16.1489895,14.961517 15.5632031,15.5473034 C14.9774166,16.1330898 14.0276691,16.1330898 13.4418827,15.5473034 L10.7844126,12.8898333 C9.69325562,13.5923888 8.39422915,14 7,14 C3.13400675,14 0,10.8659932 0,7 C0,3.13400675 3.13400675,0 7,0 C10.8659932,0 14,3.13400675 14,7 C14,8.38598771 13.5971935,9.67789492 12.902261,10.765041 L12.902261,10.765041 Z M7,12 C9.76142375,12 12,9.76142375 12,7 C12,4.23857625 9.76142375,2 7,2 C4.23857625,2 2,4.23857625 2,7 C2,9.76142375 4.23857625,12 7,12 Z\"\r\n id=\"Combined-Shape-Copy-97\"\r\n fill-rule=\"nonzero\"\r\n />\r\n </g>\r\n </svg>\r\n </span>\r\n <span #line class=\"devui-serach-line\" [ngClass]=\"size ? 'devui-serach-line-' + size : ''\"> </span>\r\n <span #clearIcon class=\"devui-search-clear\" [ngClass]=\"size ? 'devui-search-clear-' + size : ''\" (click)=\"clearText()\">\r\n <svg\r\n class=\"svg-icon-clear\"\r\n width=\"10px\"\r\n height=\"10px\"\r\n viewBox=\"0 0 10 10\"\r\n version=\"1.1\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n >\r\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\r\n <g transform=\"translate(-1546.000000, -432.000000)\">\r\n <polygon\r\n id=\"Combined-Shape-Copy-60\"\r\n points=\"1552.36396 436.949747 1555.89949 433.414214 1554.48528 432 1550.94975 435.535534 1547.41421 432 1546 433.414214 1549.53553 436.949747 1546 440.485281 1547.41421 441.899495 1550.94975 438.363961 1554.48528 441.899495 1555.89949 440.485281\"\r\n ></polygon>\r\n </g>\r\n </g>\r\n </svg>\r\n </span>\r\n</div>\r\n", exportAs: 'search', changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef((/** * @return {?} */ () => SearchComponent)), multi: true }], styles: ["svg.svg-icon-clear>g>g,svg.svg-icon-search>g>path{fill:#252b3a}:host{display:inline-block}.devui-search{position:relative}.devui-search .devui-input{height:32px;padding:5px 60px 5px 12px;font-size:14px;line-height:1.42857143;text-overflow:ellipsis}.devui-search .devui-input-sm{height:30px;padding:5px 49px 5px 10px;font-size:12px;line-height:1.5}.devui-search .devui-input-lg{height:46px;padding:10px 71px 10px 16px;font-size:18px;line-height:1.3333333}.devui-search .icon{cursor:pointer}.devui-search .devui-search-icon{position:absolute;width:auto;pointer-events:all;cursor:pointer;height:100%;line-height:32px;padding:3px 10px;top:0;right:0;z-index:2;display:block;text-align:center}.devui-search .devui-search-icon>svg{height:14px;width:14px}.devui-search .devui-search-icon-sm{width:30px;height:30px;line-height:30px;padding:1px 10px}.devui-search .devui-search-icon-sm>svg{height:12px;width:12px}.devui-search .devui-search-icon-lg{width:46px;height:46px;line-height:46px}.devui-search .devui-search-icon-lg>svg{height:18px;width:18px}.devui-search .devui-search-clear{position:absolute;width:auto;top:0;right:32px;padding:1px 10px;pointer-events:all;cursor:pointer;height:100%;line-height:32px;font-size:14px;z-index:2}.devui-search .devui-search-clear-sm{right:30px;line-height:30px;padding:0 8px}.devui-search .devui-search-clear-lg{right:46px;line-height:46px;padding:0 10px}.devui-search .devui-serach-line{border-color:#adb0b8;position:absolute;right:32px;height:70%;top:15%;width:1px;border-left-width:1px;border-left-style:solid;line-height:32px}.devui-search .devui-serach-line-sm{line-height:30px;right:30px}.devui-search .devui-serach-line-lg{line-height:46px;right:46px}"] }] } ]; /** @nocollapse */ SearchComponent.ctorParameters = () => [ { type: Renderer2 }, { type: I18nService }, { type: ChangeDetectorRef } ]; SearchComponent.propDecorators = { size: [{ type: Input }], placeholder: [{ type: Input }], maxLength: [{ type: Input }], isKeyupSearch: [{ type: Input }], delay: [{ type: Input }], searchFn: [{ type: Output }], filterInputElement: [{ type: ViewChild, args: ['filterInput', { static: true },] }], lineElement: [{ type: ViewChild, args: ['line', { static: true },] }], clearIconElement: [{ type: ViewChild, args: ['clearIcon', { static: true },] }] }; if (false) { /** * 【可选】下拉选框尺寸 * @type {?} */ SearchComponent.prototype.size; /** * 【可选】下拉默认显示文字 * @type {?} */ SearchComponent.prototype.placeholder; /** @type {?} */ SearchComponent.prototype.maxLength; /** @type {?} */ SearchComponent.prototype.isKeyupSearch; /** @type {?} */ SearchComponent.prototype.delay; /** @type {?} */ SearchComponent.prototype.searchFn; /** @type {?} */ SearchComponent.prototype.filterInputElement; /** @type {?} */ SearchComponent.prototype.lineElement; /** @type {?} */ SearchComponent.prototype.clearIconElement; /** @type {?} */ SearchComponent.prototype.i18nCommonText; /** @type {?} */ SearchComponent.prototype.i18nSubscription; /** * @type {?} * @private */ SearchComponent.prototype.subscription; /** * @type {?} * @private */ SearchComponent.prototype.onChange; /** * @type {?} * @private */ SearchComponent.prototype.onTouch; /** * @type {?} * @private */ SearchComponent.prototype.renderer; /** * @type {?} * @private */ SearchComponent.prototype.i18n; /** * @type {?} * @private */ SearchComponent.prototype.cdr; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLWRldnVpL3NlYXJjaC8iLCJzb3VyY2VzIjpbInNlYXJjaC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFpQixNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFxQixLQUFLLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFDdEYsWUFBWSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsR0FBRyxFQUFHLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsV0FBVyxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQWMzRCxNQUFNLE9BQU8sZUFBZTs7Ozs7O0lBc0IxQixZQUFvQixRQUFtQixFQUFVLElBQWlCLEVBQVUsR0FBc0I7UUFBOUUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUFVLFNBQUksR0FBSixJQUFJLENBQWE7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQWJ6RixjQUFTLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDO1FBQ3BDLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLFVBQUssR0FBRyxHQUFHLENBQUM7UUFDWCxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQU94QyxhQUFROzs7O1FBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBQztRQUM1QixZQUFPOzs7UUFBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUM7SUFHN0IsQ0FBQzs7OztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FB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QUFLO3dCQUNMLEtBQUs7NEJBQ0wsS0FBSztvQkFDTCxLQUFLO3VCQUNMLE1BQU07aUNBQ04sU0FBUyxTQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7MEJBQ3pDLFNBQVMsU0FBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFOytCQUNsQyxTQUFTLFNBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTs7Ozs7OztJQVh4QywrQkFBZ0M7Ozs7O0lBSWhDLHNDQUE2Qjs7SUFDN0Isb0NBQTZDOztJQUM3Qyx3Q0FBK0I7O0lBQy9CLGdDQUFxQjs7SUFDckIsbUNBQWdEOztJQUNoRCw2Q0FBMkU7O0lBQzNFLHNDQUE2RDs7SUFDN0QsMkNBQXVFOztJQUN2RSx5Q0FBd0M7O0lBQ3hDLDJDQUErQjs7Ozs7SUFDL0IsdUNBQW1DOzs7OztJQUNuQyxtQ0FBb0M7Ozs7O0lBQ3BDLGtDQUE2Qjs7Ozs7SUFFakIsbUNBQTJCOzs7OztJQUFFLCtCQUF5Qjs7Ozs7SUFBRSw4QkFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmcm9tRXZlbnQsIFN1YnNjcmlwdGlvbiAgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3ksIElucHV0LCBPdXRwdXQsIGZvcndhcmRSZWYsIEFmdGVyVmlld0luaXQsXHJcbiAgIEV2ZW50RW1pdHRlciwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBSZW5kZXJlcjIsIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgbWFwICwgZmlsdGVyLCBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEkxOG5TZXJ2aWNlLCBJMThuSW50ZXJmYWNlIH0gZnJvbSAnbmctZGV2dWkvaTE4bic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2Qtc2VhcmNoJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zZWFyY2guY29tcG9uZW50LnNjc3MnXSxcclxuICBleHBvcnRBczogJ3NlYXJjaCcsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbe1xyXG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTZWFyY2hDb21wb25lbnQpLFxyXG4gICAgbXVsdGk6IHRydWVcclxuICB9XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VhcmNoQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcclxuICAvKipcclxuICAgKiDjgJDlj6/pgInjgJHkuIvmi4npgInmoYblsLrlr7hcclxuICAgKi9cclxuICBASW5wdXQoKSBzaXplOiAnJyB8ICdzbScgfCAnbGcnO1xyXG4gIC8qKlxyXG4gICAqIOOAkOWPr+mAieOAkeS4i+aLiem7mOiupOaYvuekuuaWh+Wtl1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgbWF4TGVuZ3RoID0gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVI7XHJcbiAgQElucHV0KCkgaXNLZXl1cFNlYXJjaCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGRlbGF5ID0gMzAwO1xyXG4gIEBPdXRwdXQoKSBzZWFyY2hGbiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBWaWV3Q2hpbGQoJ2ZpbHRlcklucHV0JywgeyBzdGF0aWM6IHRydWUgfSkgZmlsdGVySW5wdXRFbGVtZW50OiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2xpbmUnLCB7IHN0YXRpYzogdHJ1ZSB9KSBsaW5lRWxlbWVudDogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdjbGVhckljb24nLCB7IHN0YXRpYzogdHJ1ZSB9KSBjbGVhckljb25FbGVtZW50OiBFbGVtZW50UmVmO1xyXG4gIGkxOG5Db21tb25UZXh0OiBJMThuSW50ZXJmYWNlWydjb21tb24nXTtcclxuICBpMThuU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIG9uQ2hhbmdlID0gKF86IGFueSkgPT4gbnVsbDtcclxuICBwcml2YXRlIG9uVG91Y2ggPSAoKSA9PiBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgaTE4bjogSTE4blNlcnZpY2UsIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnNldEkxOG5UZXh0KCk7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55ID0gJycpOiB2b2lkIHtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5maWx0ZXJJbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3ZhbHVlJywgdmFsdWUpO1xyXG4gICAgdGhpcy5yZW5kZXJDbGVhckljb24oKTtcclxuICB9XHJcblxyXG4gIHNldEkxOG5UZXh0KCkge1xyXG4gICAgdGhpcy5pMThuQ29tbW9uVGV4dCA9IHRoaXMuaTE4bi5nZXRJMThuVGV4dCgpLmNvbW1vbjtcclxuICAgIHRoaXMuaTE4blN1YnNjcmlwdGlvbiA9IHRoaXMuaTE4bi5sYW5nQ2hhbmdlKCkuc3Vic2NyaWJlKChkYXRhKSA9PiB7XHJcbiAgICAgIHRoaXMuaTE4bkNvbW1vblRleHQgPSBkYXRhLmNvbW1vbjtcclxuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNsZWFyVGV4dCgpIHtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5maWx0ZXJJbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3ZhbHVlJywgJycpO1xyXG4gICAgaWYgKCB0aGlzLm9uQ2hhbmdlKSB7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSgnJyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlYXJjaEZuLmVtaXQoJycpO1xyXG4gICAgdGhpcy5maWx0ZXJJbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgdGhpcy5yZW5kZXJDbGVhckljb24oKTtcclxuICB9XHJcblxyXG4gIGlucHV0Q2hhbmdlKHZhbHVlLCBldmVudD8pIHtcclxuICAgIHRoaXMucmVuZGVyQ2xlYXJJY29uKCk7XHJcbiAgICAvLyDmraTlh73mlbDkuI3og73liKDpmaTvvIzpnIDopoHnu5lmaWx0ZXJJbnB1dC52YWx1Zei1i+WAvO+8jOS7juiAjOaOp+WItmNsZWFy55qE5pi+6ZqQ44CC5Zug5Li6cmVnaXN0ZXJGaWx0ZXJDaGFuZ2Xlr7ljbGVhcueahOaYvumakOaOp+WItuS4jei1t+S9nOeUqOOAglxyXG4gIH1cclxuXHJcbiAga2V5dXBFbnRlcih0ZXJtKSB7XHJcbiAgICB0aGlzLnNlYXJjaEZuLmVtaXQodGVybSk7XHJcbiAgfVxyXG5cclxuICByZWdpc3RlckZpbHRlckNoYW5nZSgpIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gZnJvbUV2ZW50KHRoaXMuZmlsdGVySW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdpbnB1dCcpXHJcbiAgICAgLnBpcGUoXHJcbiAgICAgIG1hcCgoZTogYW55KSA9PiBlLnRhcmdldC52YWx1ZSksXHJcbiAgICAgIGZpbHRlcih0ZXJtID0+IHRydWUpLFxyXG4gICAgICBkZWJvdW5jZVRpbWUodGhpcy5kZWxheSlcclxuICAgICApLnN1YnNjcmliZSh2YWx1ZSA9PiB7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNLZXl1cFNlYXJjaCkge1xyXG4gICAgICAgICAgdGhpcy5zZWFyY2hGbi5lbWl0KHZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5yZWdpc3RlckZpbHRlckNoYW5nZSgpO1xyXG4gICAgdGhpcy5yZW5kZXJDbGVhckljb24oKTtcclxuICB9XHJcblxyXG4gIHJlbmRlckNsZWFySWNvbigpIHtcclxuICAgIGlmICh0aGlzLmZpbHRlcklucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlICYmIHRoaXMubGluZUVsZW1lbnQgJiYgdGhpcy5jbGVhckljb25FbGVtZW50KSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5saW5lRWxlbWVudC5uYXRpdmVFbGVtZW50LCAnZGlzcGxheScsICdibG9jaycpO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuY2xlYXJJY29uRWxlbWVudC5uYXRpdmVFbGVtZW50LCAnZGlzcGxheScsICdibG9jaycpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmxpbmVFbGVtZW50ICYmIHRoaXMuY2xlYXJJY29uRWxlbWVudCkge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMubGluZUVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2Rpc3BsYXknLCAnbm9uZScpO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuY2xlYXJJY29uRWxlbWVudC5uYXRpdmVFbGVtZW50LCAnZGlzcGxheScsICdub25lJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbikge1xyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaTE4blN1YnNjcmlwdGlvbikge1xyXG4gICAgICB0aGlzLmkxOG5TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiJdfQ==