UNPKG

@grapecity/inputman.angular

Version:

このパッケージには、Angular用の[InputManJS](https://developer.mescius.jp/inputmanjs)コンポーネントが含まれます。

158 lines 18.3 kB
import { __decorate, __metadata } from "tslib"; import { Component, ElementRef, Input, Output, EventEmitter, forwardRef } from '@angular/core'; import { NG_VALUE_ACCESSOR } from '@angular/forms'; import { GC } from '../inputman'; import { Property } from '../common'; import { provideParent } from './GcComponents'; import { GcInputManBaseComponent } from './GcInputManBase'; import * as i0 from "@angular/core"; export class GcMultilineTextBoxComponent extends GcInputManBaseComponent { constructor(ref) { super(ref); this.onChange = () => { }; this.onTouched = () => { }; this.onEditStatusChanged = new EventEmitter(); this.onInvalidInput = new EventEmitter(); this.onKeyExit = new EventEmitter(); this.onTextChanged = new EventEmitter(); this.onIMEReadingStringOutput = new EventEmitter(); this.textChange = new EventEmitter(); // For V2.1 Compatibility, we have to keep this property or event this.imeReadingStringChange = new EventEmitter(); } writeValue(value) { this.text = value; if (this._imCtrl) { this._imCtrl.text = this.text; } } registerOnChange(onChange) { this.onChange = onChange; } registerOnTouched(onTouched) { this.onTouched = onTouched; } setDisabledState(isDisabled) { this.enabled = !isDisabled; if (this._imCtrl) { this._imCtrl.enabled = this.enabled; } } initGcComponent() { var element = document.createElement('textarea'); this.createTemplate(element); this["IMEReadingStringAppend"] = this.imeReadingStringAppend; this["IMEReadingStringKanaMode"] = this.imeReadingStringKanaMode; this["IMEReadingStringEnableAlphabetReadingMapping"] = this.imeReadingStringEnableAlphabetReadingMapping; this._imCtrl = new GC.InputMan.GcMultiLineTextBox(element, this); } bindEvent() { if (!this._imCtrl) { return; } super.bindEvent(); this._imCtrl.onTextChanged((s) => { this.onChange(s.getText()); this.onTouched(); }); this._imCtrl.onIMEReadingStringOutput((eventArgs) => { this.onIMEReadingStringOutput.emit(eventArgs); this.imeReadingStringChange.emit(this._imCtrl.getIMEReadingString()); }); } } GcMultilineTextBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GcMultilineTextBoxComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); GcMultilineTextBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GcMultilineTextBoxComponent, selector: "gc-multiline-textbox", inputs: { countWrappedLine: "countWrappedLine", lengthAsByte: "lengthAsByte", maxLength: "maxLength", maxLineCount: "maxLineCount", imeReadingStringKanaMode: "imeReadingStringKanaMode", scrollBarMode: "scrollBarMode", scrollBars: "scrollBars", wordWrap: "wordWrap", acceptsReturn: "acceptsReturn", acceptsTab: "acceptsTab", imeReadingStringAppend: "imeReadingStringAppend", imeReadingStringEnableAlphabetReadingMapping: "imeReadingStringEnableAlphabetReadingMapping", exitOnLastChar: "exitOnLastChar", highlightText: "highlightText", format: "format", autoConvert: "autoConvert", text: "text", lines: "lines", imeReadingString: "imeReadingString", cursorPosition: "cursorPosition", resize: "resize", hiddenResizeIcon: "hiddenResizeIcon" }, outputs: { onEditStatusChanged: "onEditStatusChanged", onInvalidInput: "onInvalidInput", onKeyExit: "onKeyExit", onTextChanged: "onTextChanged", onIMEReadingStringOutput: "onIMEReadingStringOutput", textChange: "textChange", imeReadingStringChange: "imeReadingStringChange" }, providers: [ provideParent(GcMultilineTextBoxComponent), { provide: NG_VALUE_ACCESSOR, multi: true, useExisting: forwardRef(() => GcMultilineTextBoxComponent), } ], usesInheritance: true, ngImport: i0, template: ``, isInline: true }); __decorate([ Property("setIMEReadingStringKanaMode"), __metadata("design:type", String) ], GcMultilineTextBoxComponent.prototype, "imeReadingStringKanaMode", void 0); __decorate([ Property("setIMEReadingStringAppend"), __metadata("design:type", Boolean) ], GcMultilineTextBoxComponent.prototype, "imeReadingStringAppend", void 0); __decorate([ Property("setIMEReadingStringEnableAlphabetReadingMapping"), __metadata("design:type", Boolean) ], GcMultilineTextBoxComponent.prototype, "imeReadingStringEnableAlphabetReadingMapping", void 0); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GcMultilineTextBoxComponent, decorators: [{ type: Component, args: [{ selector: 'gc-multiline-textbox', template: ``, providers: [ provideParent(GcMultilineTextBoxComponent), { provide: NG_VALUE_ACCESSOR, multi: true, useExisting: forwardRef(() => GcMultilineTextBoxComponent), } ] }] }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { countWrappedLine: [{ type: Input }], lengthAsByte: [{ type: Input }], maxLength: [{ type: Input }], maxLineCount: [{ type: Input }], imeReadingStringKanaMode: [{ type: Input }], scrollBarMode: [{ type: Input }], scrollBars: [{ type: Input }], wordWrap: [{ type: Input }], acceptsReturn: [{ type: Input }], acceptsTab: [{ type: Input }], imeReadingStringAppend: [{ type: Input }], imeReadingStringEnableAlphabetReadingMapping: [{ type: Input }], exitOnLastChar: [{ type: Input }], highlightText: [{ type: Input }], format: [{ type: Input }], autoConvert: [{ type: Input }], text: [{ type: Input }], lines: [{ type: Input }], imeReadingString: [{ type: Input }], cursorPosition: [{ type: Input }], resize: [{ type: Input }], hiddenResizeIcon: [{ type: Input }], onEditStatusChanged: [{ type: Output }], onInvalidInput: [{ type: Output }], onKeyExit: [{ type: Output }], onTextChanged: [{ type: Output }], onIMEReadingStringOutput: [{ type: Output }], textChange: [{ type: Output }], imeReadingStringChange: [{ type: Output }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2NNdXRpTGluZVRleHRCb3guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9jb21wb25lbnRzL0djTXV0aUxpbmVUZXh0Qm94LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0YsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDakMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBZTNELE1BQU0sT0FBTywyQkFBNEIsU0FBUSx1QkFBdUQ7SUFFcEcsWUFBWSxHQUFlO1FBQ3ZCLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUdQLGFBQVEsR0FBYSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDL0IsY0FBUyxHQUFhLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQXNFakMsd0JBQW1CLEdBQWlELElBQUksWUFBWSxFQUFFLENBQUM7UUFFdkYsbUJBQWMsR0FBaUQsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVsRixjQUFTLEdBQWlELElBQUksWUFBWSxFQUFFLENBQUM7UUFFN0Usa0JBQWEsR0FBaUQsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVqRiw2QkFBd0IsR0FBaUQsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUU1RixlQUFVLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDN0QsaUVBQWlFO1FBRTFELDJCQUFzQixHQUF5QixJQUFJLFlBQVksRUFBRSxDQUFDO0lBdEZ6RSxDQUFD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VSxDQUFDLEdBQUcsRUFBRSw0QkFBNEIsQ0FBQzt5QkFDN0Q7cUJBQ0o7aUJBQ0o7aUdBOEJVLGdCQUFnQjtzQkFEdEIsS0FBSztnQkFHQyxZQUFZO3NCQURsQixLQUFLO2dCQUdDLFNBQVM7c0JBRGYsS0FBSztnQkFHQyxZQUFZO3NCQURsQixLQUFLO2dCQUlDLHdCQUF3QjtzQkFGOUIsS0FBSztnQkFJQyxhQUFhO3NCQURuQixLQUFLO2dCQUdDLFVBQVU7c0JBRGhCLEtBQUs7Z0JBR0MsUUFBUTtzQkFEZCxLQUFLO2dCQUdDLGFBQWE7c0JBRG5CLEtBQUs7Z0JBR0MsVUFBVTtzQkFEaEIsS0FBSztnQkFJQyxzQkFBc0I7c0JBRjVCLEtBQUs7Z0JBS0MsNENBQTRDO3NCQUZsRCxLQUFLO2dCQUlDLGNBQWM7c0JBRHBCLEtBQUs7Z0JBR0MsYUFBYTtzQkFEbkIsS0FBSztnQkFHQyxNQUFNO3NCQURaLEtBQUs7Z0JBR0MsV0FBVztzQkFEakIsS0FBSztnQkFHQyxJQUFJO3NCQURWLEtBQUs7Z0JBR0MsS0FBSztzQkFEWCxLQUFLO2dCQUlDLGdCQUFnQjtzQkFEdEIsS0FBSztnQkFHQyxjQUFjO3NCQURwQixLQUFLO2dCQUdDLE1BQU07c0JBRFosS0FBSztnQkFHQyxnQkFBZ0I7c0JBRHRCLEtBQUs7Z0JBR0MsbUJBQW1CO3NCQUR6QixNQUFNO2dCQUdBLGNBQWM7c0JBRHBCLE1BQU07Z0JBR0EsU0FBUztzQkFEZixNQUFNO2dCQUdBLGFBQWE7c0JBRG5CLE1BQU07Z0JBR0Esd0JBQXdCO3NCQUQ5QixNQUFNO2dCQUdBLFVBQVU7c0JBRGhCLE1BQU07Z0JBSUEsc0JBQXNCO3NCQUQ1QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEdDIH0gZnJvbSAnLi4vaW5wdXRtYW4nO1xuaW1wb3J0IHsgUHJvcGVydHkgfSBmcm9tICcuLi9jb21tb24nO1xuaW1wb3J0IHsgcHJvdmlkZVBhcmVudCB9IGZyb20gJy4vR2NDb21wb25lbnRzJztcbmltcG9ydCB7IEdjSW5wdXRNYW5CYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9HY0lucHV0TWFuQmFzZSc7XG5pbXBvcnQgeyBHY051bWJlckNvbXBvbmVudCB9IGZyb20gJy4vR2NOdW1iZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2djLW11bHRpbGluZS10ZXh0Ym94JyxcbiAgICB0ZW1wbGF0ZTogYGAsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHByb3ZpZGVQYXJlbnQoR2NNdWx0aWxpbmVUZXh0Qm94Q29tcG9uZW50KSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEdjTXVsdGlsaW5lVGV4dEJveENvbXBvbmVudCksXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEdjTXVsdGlsaW5lVGV4dEJveENvbXBvbmVudCBleHRlbmRzIEdjSW5wdXRNYW5CYXNlQ29tcG9uZW50PEdDLklucHV0TWFuLkdjTXVsdGlMaW5lVGV4dEJveD4gaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG5cbiAgICBjb25zdHJ1Y3RvcihyZWY6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgc3VwZXIocmVmKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uQ2hhbmdlOiBGdW5jdGlvbiA9ICgpID0+IHsgfTtcbiAgICBwcml2YXRlIG9uVG91Y2hlZDogRnVuY3Rpb24gPSAoKSA9PiB7IH07XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50ZXh0ID0gdmFsdWU7XG4gICAgICAgIGlmICh0aGlzLl9pbUN0cmwpIHtcbiAgICAgICAgICAgIHRoaXMuX2ltQ3RybC50ZXh0ID0gdGhpcy50ZXh0O1xuICAgICAgICB9XG4gICAgfVxuICAgIHJlZ2lzdGVyT25DaGFuZ2Uob25DaGFuZ2U6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gb25DaGFuZ2U7XG4gICAgfVxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKG9uVG91Y2hlZDogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gb25Ub3VjaGVkO1xuICAgIH1cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lbmFibGVkID0gIWlzRGlzYWJsZWQ7XG4gICAgICAgIGlmICh0aGlzLl9pbUN0cmwpIHtcbiAgICAgICAgICAgIHRoaXMuX2ltQ3RybC5lbmFibGVkID0gdGhpcy5lbmFibGVkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY291bnRXcmFwcGVkTGluZTogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsZW5ndGhBc0J5dGU6IGJvb2xlYW47XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWF4TGVuZ3RoOiBudW1iZXI7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWF4TGluZUNvdW50OiBudW1iZXI7XG4gICAgQElucHV0KClcbiAgICBAUHJvcGVydHkoXCJzZXRJTUVSZWFkaW5nU3RyaW5nS2FuYU1vZGVcIilcbiAgICBwdWJsaWMgaW1lUmVhZGluZ1N0cmluZ0thbmFNb2RlOiBHQy5JbnB1dE1hbi5LYW5hTW9kZTtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzY3JvbGxCYXJNb2RlOiBHQy5JbnB1dE1hbi5TY3JvbGxCYXJNb2RlO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNjcm9sbEJhcnM6IEdDLklucHV0TWFuLlNjcm9sbEJhcnM7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgd29yZFdyYXA6IGJvb2xlYW47XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYWNjZXB0c1JldHVybjogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhY2NlcHRzVGFiOiBib29sZWFuO1xuICAgIEBJbnB1dCgpXG4gICAgQFByb3BlcnR5KFwic2V0SU1FUmVhZGluZ1N0cmluZ0FwcGVuZFwiKVxuICAgIHB1YmxpYyBpbWVSZWFkaW5nU3RyaW5nQXBwZW5kOiBib29sZWFuO1xuICAgIEBJbnB1dCgpXG4gICAgQFByb3BlcnR5KFwic2V0SU1FUmVhZGluZ1N0cmluZ0VuYWJsZUFscGhhYmV0UmVhZGluZ01hcHBpbmdcIilcbiAgICBwdWJsaWMgaW1lUmVhZGluZ1N0cmluZ0VuYWJsZUFscGhhYmV0UmVhZGluZ01hcHBpbmc6IGJvb2xlYW47XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZXhpdE9uTGFzdENoYXI6IGJvb2xlYW47XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaGlnaGxpZ2h0VGV4dDogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmb3JtYXQ6IHN0cmluZztcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhdXRvQ29udmVydDogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0ZXh0OiBzdHJpbmc7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbGluZXM6IEFycmF5PHN0cmluZz47XG4gICAgLy8gRm9yIFYyLjEgQ29tcGF0aWJpbGl0eSwgd2UgaGF2ZSB0byBrZWVwIHRoaXMgcHJvcGVydHkgb3IgZXZlbnRcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpbWVSZWFkaW5nU3RyaW5nOiBzdHJpbmc7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY3Vyc29yUG9zaXRpb246IEdDLklucHV0TWFuLk11bHRpTGluZUN1cnNvclBvc2l0aW9uO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHJlc2l6ZTogR0MuSW5wdXRNYW4uUmVzaXplTW9kZTtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBoaWRkZW5SZXNpemVJY29uOiBib29sZWFuO1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBvbkVkaXRTdGF0dXNDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8R0MuSW5wdXRNYW4uR2NNdWx0aUxpbmVUZXh0Qm94PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb25JbnZhbGlkSW5wdXQ6IEV2ZW50RW1pdHRlcjxHQy5JbnB1dE1hbi5HY011bHRpTGluZVRleHRCb3g+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBvbktleUV4aXQ6IEV2ZW50RW1pdHRlcjxHQy5JbnB1dE1hbi5HY011bHRpTGluZVRleHRCb3g+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBvblRleHRDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8R0MuSW5wdXRNYW4uR2NNdWx0aUxpbmVUZXh0Qm94PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb25JTUVSZWFkaW5nU3RyaW5nT3V0cHV0OiBFdmVudEVtaXR0ZXI8R0MuSW5wdXRNYW4uR2NNdWx0aUxpbmVUZXh0Qm94PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgdGV4dENoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgLy8gRm9yIFYyLjEgQ29tcGF0aWJpbGl0eSwgd2UgaGF2ZSB0byBrZWVwIHRoaXMgcHJvcGVydHkgb3IgZXZlbnRcbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgaW1lUmVhZGluZ1N0cmluZ0NoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwcm90ZWN0ZWQgaW5pdEdjQ29tcG9uZW50KCk6IHZvaWQge1xuICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RleHRhcmVhJyk7XG4gICAgICAgIHRoaXMuY3JlYXRlVGVtcGxhdGUoZWxlbWVudCk7XG4gICAgICAgIHRoaXNbXCJJTUVSZWFkaW5nU3RyaW5nQXBwZW5kXCJdID0gdGhpcy5pbWVSZWFkaW5nU3RyaW5nQXBwZW5kO1xuICAgICAgICB0aGlzW1wiSU1FUmVhZGluZ1N0cmluZ0thbmFNb2RlXCJdID0gdGhpcy5pbWVSZWFkaW5nU3RyaW5nS2FuYU1vZGU7XG4gICAgICAgIHRoaXNbXCJJTUVSZWFkaW5nU3RyaW5nRW5hYmxlQWxwaGFiZXRSZWFkaW5nTWFwcGluZ1wiXSA9IHRoaXMuaW1lUmVhZGluZ1N0cmluZ0VuYWJsZUFscGhhYmV0UmVhZGluZ01hcHBpbmc7XG5cbiAgICAgICAgdGhpcy5faW1DdHJsID0gbmV3IEdDLklucHV0TWFuLkdjTXVsdGlMaW5lVGV4dEJveChlbGVtZW50LCB0aGlzIGFzIGFueSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGJpbmRFdmVudCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9pbUN0cmwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHN1cGVyLmJpbmRFdmVudCgpO1xuXG4gICAgICAgIHRoaXMuX2ltQ3RybC5vblRleHRDaGFuZ2VkKChzKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHMuZ2V0VGV4dCgpKTtcbiAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX2ltQ3RybC5vbklNRVJlYWRpbmdTdHJpbmdPdXRwdXQoKGV2ZW50QXJncykgPT4ge1xuICAgICAgICAgICAgdGhpcy5vbklNRVJlYWRpbmdTdHJpbmdPdXRwdXQuZW1pdChldmVudEFyZ3MpO1xuICAgICAgICAgICAgdGhpcy5pbWVSZWFkaW5nU3RyaW5nQ2hhbmdlLmVtaXQodGhpcy5faW1DdHJsLmdldElNRVJlYWRpbmdTdHJpbmcoKSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxufSJdfQ==