ng-zorro-antd
Version:
An enterprise-class UI components based on Ant Design and Angular
201 lines • 15 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: select-search.component.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @license
* Copyright Alibaba.com All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
*/
import { FocusMonitor } from '@angular/cdk/a11y';
import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, Output, Renderer2, ViewChild, ViewEncapsulation } from '@angular/core';
var NzSelectSearchComponent = /** @class */ (function () {
function NzSelectSearchComponent(elementRef, renderer, focusMonitor) {
this.elementRef = elementRef;
this.renderer = renderer;
this.focusMonitor = focusMonitor;
this.disabled = false;
this.mirrorSync = false;
this.showInput = true;
this.focusTrigger = false;
this.value = '';
this.autofocus = false;
this.valueChange = new EventEmitter();
this.isComposingChange = new EventEmitter();
}
/**
* @param {?} isComposing
* @return {?}
*/
NzSelectSearchComponent.prototype.setCompositionState = /**
* @param {?} isComposing
* @return {?}
*/
function (isComposing) {
this.isComposingChange.next(isComposing);
};
/**
* @param {?} value
* @return {?}
*/
NzSelectSearchComponent.prototype.onValueChange = /**
* @param {?} value
* @return {?}
*/
function (value) {
/** @type {?} */
var inputDOM = this.inputElement.nativeElement;
inputDOM.value = value;
this.value = value;
this.valueChange.next(value);
if (this.mirrorSync) {
this.syncMirrorWidth();
}
};
/**
* @return {?}
*/
NzSelectSearchComponent.prototype.clearInputValue = /**
* @return {?}
*/
function () {
this.onValueChange('');
};
/**
* @return {?}
*/
NzSelectSearchComponent.prototype.syncMirrorWidth = /**
* @return {?}
*/
function () {
/** @type {?} */
var mirrorDOM = this.mirrorElement.nativeElement;
/** @type {?} */
var hostDOM = this.elementRef.nativeElement;
/** @type {?} */
var inputDOM = this.inputElement.nativeElement;
this.renderer.removeStyle(hostDOM, 'width');
mirrorDOM.innerHTML = inputDOM.value + " ";
this.renderer.setStyle(hostDOM, 'width', mirrorDOM.scrollWidth + "px");
};
/**
* @return {?}
*/
NzSelectSearchComponent.prototype.focus = /**
* @return {?}
*/
function () {
this.focusMonitor.focusVia(this.inputElement, 'keyboard');
};
/**
* @return {?}
*/
NzSelectSearchComponent.prototype.blur = /**
* @return {?}
*/
function () {
this.inputElement.nativeElement.blur();
};
/**
* @param {?} changes
* @return {?}
*/
NzSelectSearchComponent.prototype.ngOnChanges = /**
* @param {?} changes
* @return {?}
*/
function (changes) {
/** @type {?} */
var inputDOM = this.inputElement.nativeElement;
var focusTrigger = changes.focusTrigger;
if (focusTrigger && focusTrigger.currentValue === true && focusTrigger.previousValue === false) {
inputDOM.focus();
}
};
/**
* @return {?}
*/
NzSelectSearchComponent.prototype.ngAfterViewInit = /**
* @return {?}
*/
function () {
if (this.mirrorSync) {
this.syncMirrorWidth();
}
if (this.autofocus) {
this.focus();
}
};
NzSelectSearchComponent.decorators = [
{ type: Component, args: [{
selector: 'nz-select-search',
encapsulation: ViewEncapsulation.None,
changeDetection: ChangeDetectionStrategy.OnPush,
template: "\n <input\n #inputElement\n autocomplete=\"off\"\n class=\"ant-select-selection-search-input\"\n [ngModel]=\"value\"\n [attr.autofocus]=\"autofocus ? 'autofocus' : null\"\n [disabled]=\"disabled\"\n [style.opacity]=\"showInput ? null : 0\"\n [readOnly]=\"!showInput\"\n (ngModelChange)=\"onValueChange($event)\"\n (compositionstart)=\"setCompositionState(true)\"\n (compositionend)=\"setCompositionState(false)\"\n />\n <span #mirrorElement *ngIf=\"mirrorSync\" class=\"ant-select-selection-search-mirror\"></span>\n ",
host: {
'[class.ant-select-selection-search]': 'true'
}
}] }
];
/** @nocollapse */
NzSelectSearchComponent.ctorParameters = function () { return [
{ type: ElementRef },
{ type: Renderer2 },
{ type: FocusMonitor }
]; };
NzSelectSearchComponent.propDecorators = {
disabled: [{ type: Input }],
mirrorSync: [{ type: Input }],
showInput: [{ type: Input }],
focusTrigger: [{ type: Input }],
value: [{ type: Input }],
autofocus: [{ type: Input }],
valueChange: [{ type: Output }],
isComposingChange: [{ type: Output }],
inputElement: [{ type: ViewChild, args: ['inputElement', { static: true },] }],
mirrorElement: [{ type: ViewChild, args: ['mirrorElement', { static: false },] }]
};
return NzSelectSearchComponent;
}());
export { NzSelectSearchComponent };
if (false) {
/** @type {?} */
NzSelectSearchComponent.prototype.disabled;
/** @type {?} */
NzSelectSearchComponent.prototype.mirrorSync;
/** @type {?} */
NzSelectSearchComponent.prototype.showInput;
/** @type {?} */
NzSelectSearchComponent.prototype.focusTrigger;
/** @type {?} */
NzSelectSearchComponent.prototype.value;
/** @type {?} */
NzSelectSearchComponent.prototype.autofocus;
/** @type {?} */
NzSelectSearchComponent.prototype.valueChange;
/** @type {?} */
NzSelectSearchComponent.prototype.isComposingChange;
/** @type {?} */
NzSelectSearchComponent.prototype.inputElement;
/** @type {?} */
NzSelectSearchComponent.prototype.mirrorElement;
/**
* @type {?}
* @private
*/
NzSelectSearchComponent.prototype.elementRef;
/**
* @type {?}
* @private
*/
NzSelectSearchComponent.prototype.renderer;
/**
* @type {?}
* @private
*/
NzSelectSearchComponent.prototype.focusMonitor;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXNlYXJjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy16b3Jyby1hbnRkL3NlbGVjdC8iLCJzb3VyY2VzIjpbInNlbGVjdC1zZWFyY2guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQVFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUVULFNBQVMsRUFDVCxpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFFdkI7SUF1RUUsaUNBQW9CLFVBQXNCLEVBQVUsUUFBbUIsRUFBVSxZQUEwQjtRQUF2RixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBOUNsRyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsY0FBUyxHQUFHLElBQUksQ0FBQztRQUNqQixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNSLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUN6QyxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0lBdUMyQyxDQUFDOzs7OztJQW5DL0cscURBQW1COzs7O0lBQW5CLFVBQW9CLFdBQW9CO1FBQ3RDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDM0MsQ0FBQzs7Ozs7SUFFRCwrQ0FBYTs7OztJQUFiLFVBQWMsS0FBYTs7WUFDbkIsUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYTtRQUNoRCxRQUFRLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQzs7OztJQUVELGlEQUFlOzs7SUFBZjtRQUNFLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDekIsQ0FBQzs7OztJQUVELGlEQUFlOzs7SUFBZjs7WUFDUSxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhOztZQUM1QyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhOztZQUN2QyxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhO1FBQ2hELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM1QyxTQUFTLENBQUMsU0FBUyxHQUFNLFFBQVEsQ0FBQyxLQUFLLFdBQVEsQ0FBQztRQUNoRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFLLFNBQVMsQ0FBQyxXQUFXLE9BQUksQ0FBQyxDQUFDO0lBQ3pFLENBQUM7Ozs7SUFFRCx1Q0FBSzs7O0lBQUw7UUFDRSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzVELENBQUM7Ozs7SUFFRCxzQ0FBSTs7O0lBQUo7UUFDRSxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QyxDQUFDOzs7OztJQUlELDZDQUFXOzs7O0lBQVgsVUFBWSxPQUFzQjs7WUFDMUIsUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYTtRQUN4QyxJQUFBLG1DQUFZO1FBQ3BCLElBQUksWUFBWSxJQUFJLFlBQVksQ0FBQyxZQUFZLEtBQUssSUFBSSxJQUFJLFlBQVksQ0FBQyxhQUFhLEtBQUssS0FBSyxFQUFFO1lBQzlGLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNsQjtJQUNILENBQUM7Ozs7SUFFRCxpREFBZTs7O0lBQWY7UUFDRSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQ3hCO1FBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNkO0lBQ0gsQ0FBQzs7Z0JBeEZGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSx3a0JBZVQ7b0JBQ0QsSUFBSSxFQUFFO3dCQUNKLHFDQUFxQyxFQUFFLE1BQU07cUJBQzlDO2lCQUNGOzs7O2dCQWxDQyxVQUFVO2dCQUtWLFNBQVM7Z0JBVkYsWUFBWTs7OzJCQXlDbEIsS0FBSzs2QkFDTCxLQUFLOzRCQUNMLEtBQUs7K0JBQ0wsS0FBSzt3QkFDTCxLQUFLOzRCQUNMLEtBQUs7OEJBQ0wsTUFBTTtvQ0FDTixNQUFNOytCQUNOLFNBQVMsU0FBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dDQUMxQyxTQUFTLFNBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTs7SUF1RC9DLDhCQUFDO0NBQUEsQUF6RkQsSUF5RkM7U0FqRVksdUJBQXVCOzs7SUFDbEMsMkNBQTBCOztJQUMxQiw2Q0FBNEI7O0lBQzVCLDRDQUEwQjs7SUFDMUIsK0NBQThCOztJQUM5Qix3Q0FBb0I7O0lBQ3BCLDRDQUEyQjs7SUFDM0IsOENBQTREOztJQUM1RCxvREFBbUU7O0lBQ25FLCtDQUFzRTs7SUFDdEUsZ0RBQXlFOzs7OztJQXFDN0QsNkNBQThCOzs7OztJQUFFLDJDQUEyQjs7Ozs7SUFBRSwrQ0FBa0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IHsgRm9jdXNNb25pdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnotc2VsZWN0LXNlYXJjaCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxpbnB1dFxuICAgICAgI2lucHV0RWxlbWVudFxuICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgIGNsYXNzPVwiYW50LXNlbGVjdC1zZWxlY3Rpb24tc2VhcmNoLWlucHV0XCJcbiAgICAgIFtuZ01vZGVsXT1cInZhbHVlXCJcbiAgICAgIFthdHRyLmF1dG9mb2N1c109XCJhdXRvZm9jdXMgPyAnYXV0b2ZvY3VzJyA6IG51bGxcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFtzdHlsZS5vcGFjaXR5XT1cInNob3dJbnB1dCA/IG51bGwgOiAwXCJcbiAgICAgIFtyZWFkT25seV09XCIhc2hvd0lucHV0XCJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAoY29tcG9zaXRpb25zdGFydCk9XCJzZXRDb21wb3NpdGlvblN0YXRlKHRydWUpXCJcbiAgICAgIChjb21wb3NpdGlvbmVuZCk9XCJzZXRDb21wb3NpdGlvblN0YXRlKGZhbHNlKVwiXG4gICAgLz5cbiAgICA8c3BhbiAjbWlycm9yRWxlbWVudCAqbmdJZj1cIm1pcnJvclN5bmNcIiBjbGFzcz1cImFudC1zZWxlY3Qtc2VsZWN0aW9uLXNlYXJjaC1taXJyb3JcIj48L3NwYW4+XG4gIGAsXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLmFudC1zZWxlY3Qtc2VsZWN0aW9uLXNlYXJjaF0nOiAndHJ1ZSdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBOelNlbGVjdFNlYXJjaENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1pcnJvclN5bmMgPSBmYWxzZTtcbiAgQElucHV0KCkgc2hvd0lucHV0ID0gdHJ1ZTtcbiAgQElucHV0KCkgZm9jdXNUcmlnZ2VyID0gZmFsc2U7XG4gIEBJbnB1dCgpIHZhbHVlID0gJyc7XG4gIEBJbnB1dCgpIGF1dG9mb2N1cyA9IGZhbHNlO1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGlzQ29tcG9zaW5nQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAVmlld0NoaWxkKCdpbnB1dEVsZW1lbnQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBpbnB1dEVsZW1lbnQ6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ21pcnJvckVsZW1lbnQnLCB7IHN0YXRpYzogZmFsc2UgfSkgbWlycm9yRWxlbWVudDogRWxlbWVudFJlZjtcblxuICBzZXRDb21wb3NpdGlvblN0YXRlKGlzQ29tcG9zaW5nOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5pc0NvbXBvc2luZ0NoYW5nZS5uZXh0KGlzQ29tcG9zaW5nKTtcbiAgfVxuXG4gIG9uVmFsdWVDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0RE9NID0gdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICBpbnB1dERPTS52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLm5leHQodmFsdWUpO1xuICAgIGlmICh0aGlzLm1pcnJvclN5bmMpIHtcbiAgICAgIHRoaXMuc3luY01pcnJvcldpZHRoKCk7XG4gICAgfVxuICB9XG5cbiAgY2xlYXJJbnB1dFZhbHVlKCk6IHZvaWQge1xuICAgIHRoaXMub25WYWx1ZUNoYW5nZSgnJyk7XG4gIH1cblxuICBzeW5jTWlycm9yV2lkdGgoKTogdm9pZCB7XG4gICAgY29uc3QgbWlycm9yRE9NID0gdGhpcy5taXJyb3JFbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3QgaG9zdERPTSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IGlucHV0RE9NID0gdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZVN0eWxlKGhvc3RET00sICd3aWR0aCcpO1xuICAgIG1pcnJvckRPTS5pbm5lckhUTUwgPSBgJHtpbnB1dERPTS52YWx1ZX0mbmJzcDtgO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoaG9zdERPTSwgJ3dpZHRoJywgYCR7bWlycm9yRE9NLnNjcm9sbFdpZHRofXB4YCk7XG4gIH1cblxuICBmb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLmZvY3VzTW9uaXRvci5mb2N1c1ZpYSh0aGlzLmlucHV0RWxlbWVudCwgJ2tleWJvYXJkJyk7XG4gIH1cblxuICBibHVyKCk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3IpIHt9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0RE9NID0gdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCB7IGZvY3VzVHJpZ2dlciB9ID0gY2hhbmdlcztcbiAgICBpZiAoZm9jdXNUcmlnZ2VyICYmIGZvY3VzVHJpZ2dlci5jdXJyZW50VmFsdWUgPT09IHRydWUgJiYgZm9jdXNUcmlnZ2VyLnByZXZpb3VzVmFsdWUgPT09IGZhbHNlKSB7XG4gICAgICBpbnB1dERPTS5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5taXJyb3JTeW5jKSB7XG4gICAgICB0aGlzLnN5bmNNaXJyb3JXaWR0aCgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5hdXRvZm9jdXMpIHtcbiAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==