@mescius/inputman.angular
Version:
このパッケージには、Angular用の[InputManJS](https://developer.mescius.jp/inputmanjs)コンポーネントが含まれます。
206 lines • 23.7 kB
JavaScript
import { Component, Input, ElementRef, Output, EventEmitter, forwardRef } from '@angular/core';
import { NG_VALUE_ACCESSOR } from '@angular/forms';
import { GC } from '../inputman';
import { provideParent, GcComponents } from './GcComponents';
import * as i0 from "@angular/core";
export class GcTagBoxComponent extends GcComponents {
constructor(ref) {
super(ref);
this.onChange = () => { };
this.onTouched = () => { };
this.dropDownClosed = new EventEmitter();
this.dropDownOpened = new EventEmitter();
this.focusIn = new EventEmitter();
this.focusOut = new EventEmitter();
this.insertTag = new EventEmitter();
this.removeTag = new EventEmitter();
this.valueChanged = new EventEmitter();
}
writeValue(value) {
return;
}
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('div');
this.createTemplate(element);
this._imCtrl = new GC.InputMan.GcTagBox(element, this);
}
bindEvent() {
if (!this._imCtrl) {
return;
}
this._imCtrl.addEventListener(GC.InputMan.GcTagBoxEvent.DropDownClosed, (eventArgs) => {
this.dropDownClosed.emit(eventArgs);
});
this._imCtrl.addEventListener(GC.InputMan.GcTagBoxEvent.DropDownOpened, (eventArgs) => {
this.dropDownOpened.emit(eventArgs);
});
this._imCtrl.addEventListener(GC.InputMan.GcTagBoxEvent.FocusIn, (eventArgs) => {
this.focusIn.emit(eventArgs);
});
this._imCtrl.addEventListener(GC.InputMan.GcTagBoxEvent.FocusOut, (eventArgs) => {
this.focusOut.emit(eventArgs);
});
this._imCtrl.addEventListener(GC.InputMan.GcTagBoxEvent.InsertTag, (eventArgs) => {
this.insertTag.emit(eventArgs);
});
this._imCtrl.addEventListener(GC.InputMan.GcTagBoxEvent.RemoveTag, (eventArgs) => {
this.removeTag.emit(eventArgs);
});
this._imCtrl.addEventListener(GC.InputMan.GcTagBoxEvent.ValueChanged, (eventArgs) => {
this.valueChanged.emit(eventArgs);
this.onChange(this._imCtrl.value);
this.onTouched();
});
}
}
GcTagBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GcTagBoxComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
GcTagBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GcTagBoxComponent, selector: "gc-tag-box", inputs: { imageAlignment: "imageAlignment", items: "items", autoFilter: "autoFilter", showDropDownIfNoItems: "showDropDownIfNoItems", dropDownAlignmentMode: "dropDownAlignmentMode", dropDownHeight: "dropDownHeight", dropDownWidth: "dropDownWidth", allowDropDownResize: "allowDropDownResize", dropDownDisplayMemberPath: "dropDownDisplayMemberPath", width: "width", height: "height", watermarkNullText: "watermarkNullText", watermarkDisplayNullText: "watermarkDisplayNullText", tagTemplate: "tagTemplate", readOnly: "readOnly", enabled: "enabled", displayMode: "displayMode", allowCopyTag: "allowCopyTag", allowDragTag: "allowDragTag", allowSelectTag: "allowSelectTag", allowCustomTag: "allowCustomTag", applyCustomTagKey: "applyCustomTagKey", separator: "separator", tagImageMemberPath: "tagImageMemberPath", tagTextMemberPath: "tagTextMemberPath", showImage: "showImage", minHeight: "minHeight", minWidth: "minWidth", maxHeight: "maxHeight", maxWidth: "maxWidth", maxTagWidth: "maxTagWidth", dropDownItemHeight: "dropDownItemHeight", dropDownItemTemplate: "dropDownItemTemplate", tagValidator: "tagValidator", allowResize: "allowResize", showDropDown: "showDropDown", uniqueTags: "uniqueTags", maxTagCount: "maxTagCount", autoSelect: "autoSelect", value: "value", appendCustomTagToDropDown: "appendCustomTagToDropDown", floatingLabelDirection: "floatingLabelDirection", floatingLabelType: "floatingLabelType", floatingLabelText: "floatingLabelText", dropDownType: "dropDownType", dropDownTreeConfig: "dropDownTreeConfig", helpContent: "helpContent", showHelpButton: "showHelpButton", showClearButton: "showClearButton", dropDownItemCountInRow: "dropDownItemCountInRow" }, outputs: { dropDownClosed: "dropDownClosed", dropDownOpened: "dropDownOpened", focusIn: "focusIn", focusOut: "focusOut", insertTag: "insertTag", removeTag: "removeTag", valueChanged: "valueChanged" }, providers: [
provideParent(GcTagBoxComponent),
{
provide: NG_VALUE_ACCESSOR,
multi: true,
useExisting: forwardRef(() => GcTagBoxComponent),
}
], usesInheritance: true, ngImport: i0, template: ``, isInline: true });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GcTagBoxComponent, decorators: [{
type: Component,
args: [{
selector: 'gc-tag-box',
template: ``,
providers: [
provideParent(GcTagBoxComponent),
{
provide: NG_VALUE_ACCESSOR,
multi: true,
useExisting: forwardRef(() => GcTagBoxComponent),
}
]
}]
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { imageAlignment: [{
type: Input
}], items: [{
type: Input
}], autoFilter: [{
type: Input
}], showDropDownIfNoItems: [{
type: Input
}], dropDownAlignmentMode: [{
type: Input
}], dropDownHeight: [{
type: Input
}], dropDownWidth: [{
type: Input
}], allowDropDownResize: [{
type: Input
}], dropDownDisplayMemberPath: [{
type: Input
}], width: [{
type: Input
}], height: [{
type: Input
}], watermarkNullText: [{
type: Input
}], watermarkDisplayNullText: [{
type: Input
}], tagTemplate: [{
type: Input
}], readOnly: [{
type: Input
}], enabled: [{
type: Input
}], displayMode: [{
type: Input
}], allowCopyTag: [{
type: Input
}], allowDragTag: [{
type: Input
}], allowSelectTag: [{
type: Input
}], allowCustomTag: [{
type: Input
}], applyCustomTagKey: [{
type: Input
}], separator: [{
type: Input
}], tagImageMemberPath: [{
type: Input
}], tagTextMemberPath: [{
type: Input
}], showImage: [{
type: Input
}], minHeight: [{
type: Input
}], minWidth: [{
type: Input
}], maxHeight: [{
type: Input
}], maxWidth: [{
type: Input
}], maxTagWidth: [{
type: Input
}], dropDownItemHeight: [{
type: Input
}], dropDownItemTemplate: [{
type: Input
}], tagValidator: [{
type: Input
}], allowResize: [{
type: Input
}], showDropDown: [{
type: Input
}], uniqueTags: [{
type: Input
}], maxTagCount: [{
type: Input
}], autoSelect: [{
type: Input
}], value: [{
type: Input
}], appendCustomTagToDropDown: [{
type: Input
}], floatingLabelDirection: [{
type: Input
}], floatingLabelType: [{
type: Input
}], floatingLabelText: [{
type: Input
}], dropDownType: [{
type: Input
}], dropDownTreeConfig: [{
type: Input
}], helpContent: [{
type: Input
}], showHelpButton: [{
type: Input
}], showClearButton: [{
type: Input
}], dropDownItemCountInRow: [{
type: Input
}], dropDownClosed: [{
type: Output
}], dropDownOpened: [{
type: Output
}], focusIn: [{
type: Output
}], focusOut: [{
type: Output
}], insertTag: [{
type: Output
}], removeTag: [{
type: Output
}], valueChanged: [{
type: Output
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2NUYWdCb3guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9jb21wb25lbnRzL0djVGFnQm94LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNqQyxPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQWM3RCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsWUFBa0M7SUFFckUsWUFBWSxHQUFlO1FBQ3ZCLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVQLGFBQVEsR0FBYSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDL0IsY0FBUyxHQUFhLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQXVIakMsbUJBQWMsR0FBdUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV4RSxtQkFBYyxHQUF1QyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXhFLFlBQU8sR0FBdUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVqRSxhQUFRLEdBQXVDLElBQUksWUFBWSxFQUFFLENBQUM7UUFFbEUsY0FBUyxHQUF1QyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRW5FLGNBQVMsR0FBdUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVuRSxpQkFBWSxHQUF1QyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBckk3RSxDQUFDO0lBSUQsVUFBVSxDQUFDLEtBQVU7UUFDakIsT0FBTztJQUNYLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxRQUFhO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzdCLENBQUM7SUFD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dHRlciwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgR0MgfSBmcm9tICcuLi9pbnB1dG1hbic7XG5pbXBvcnQgeyBwcm92aWRlUGFyZW50LCBHY0NvbXBvbmVudHMgfSBmcm9tICcuL0djQ29tcG9uZW50cyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZ2MtdGFnLWJveCcsXG4gICAgdGVtcGxhdGU6IGBgLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlUGFyZW50KEdjVGFnQm94Q29tcG9uZW50KSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEdjVGFnQm94Q29tcG9uZW50KSxcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgR2NUYWdCb3hDb21wb25lbnQgZXh0ZW5kcyBHY0NvbXBvbmVudHM8R0MuSW5wdXRNYW4uR2NUYWdCb3g+IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXG4gICAgY29uc3RydWN0b3IocmVmOiBFbGVtZW50UmVmKSB7XG4gICAgICAgIHN1cGVyKHJlZik7XG4gICAgfVxuICAgIHByaXZhdGUgb25DaGFuZ2U6IEZ1bmN0aW9uID0gKCkgPT4geyB9O1xuICAgIHByaXZhdGUgb25Ub3VjaGVkOiBGdW5jdGlvbiA9ICgpID0+IHsgfTtcblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIHJlZ2lzdGVyT25DaGFuZ2Uob25DaGFuZ2U6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gb25DaGFuZ2U7XG4gICAgfVxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKG9uVG91Y2hlZDogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gb25Ub3VjaGVkO1xuICAgIH1cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lbmFibGVkID0gIWlzRGlzYWJsZWQ7XG4gICAgICAgIGlmICh0aGlzLl9pbUN0cmwpIHtcbiAgICAgICAgICAgIHRoaXMuX2ltQ3RybC5lbmFibGVkID0gdGhpcy5lbmFibGVkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaW1hZ2VBbGlnbm1lbnQ/OiBHQy5JbnB1dE1hbi5HY1RhZ0ltYWdlQWxpZ25tZW50IHwgbnVsbDtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpdGVtcz86IG9iamVjdFtdIHwgc3RyaW5nW10gfCBudWxsO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGF1dG9GaWx0ZXI/OiBHQy5JbnB1dE1hbi5BdXRvRmlsdGVyIHwgbnVsbDtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaG93RHJvcERvd25JZk5vSXRlbXM/OiBib29sZWFuO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRyb3BEb3duQWxpZ25tZW50TW9kZT86IEdDLklucHV0TWFuLkdjVGFnQm94RHJvcERvd25BbGlnbm1lbnRNb2RlO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRyb3BEb3duSGVpZ2h0PzogbnVtYmVyIHwgbnVsbDtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkcm9wRG93bldpZHRoPzogbnVtYmVyIHwgbnVsbDtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhbGxvd0Ryb3BEb3duUmVzaXplPzogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkcm9wRG93bkRpc3BsYXlNZW1iZXJQYXRoPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHdpZHRoPzogbnVtYmVyIHwgc3RyaW5nO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGhlaWdodD86IG51bWJlciB8IHN0cmluZztcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB3YXRlcm1hcmtOdWxsVGV4dD86IHN0cmluZztcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB3YXRlcm1hcmtEaXNwbGF5TnVsbFRleHQ/OiBzdHJpbmc7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdGFnVGVtcGxhdGU/OiBzdHJpbmcgfCAoKGFyZ3M6IGFueSkgPT4gSFRNTEVsZW1lbnQpO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHJlYWRPbmx5PzogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBlbmFibGVkPzogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkaXNwbGF5TW9kZT86IEdDLklucHV0TWFuLlRhZ0JveERpc3BsYXlNb2RlO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFsbG93Q29weVRhZz86IGJvb2xlYW47XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYWxsb3dEcmFnVGFnPzogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhbGxvd1NlbGVjdFRhZz86IGJvb2xlYW47XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYWxsb3dDdXN0b21UYWc/OiBib29sZWFuO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFwcGx5Q3VzdG9tVGFnS2V5PzogR0MuSW5wdXRNYW4uS2V5O1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNlcGFyYXRvcj86IHN0cmluZztcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0YWdJbWFnZU1lbWJlclBhdGg/OiBzdHJpbmc7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdGFnVGV4dE1lbWJlclBhdGg/OiBzdHJpbmc7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2hvd0ltYWdlPzogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtaW5IZWlnaHQ/OiBudW1iZXIgfCBzdHJpbmc7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWluV2lkdGg/OiBudW1iZXIgfCBzdHJpbmc7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWF4SGVpZ2h0PzogbnVtYmVyIHwgc3RyaW5nO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1heFdpZHRoPzogbnVtYmVyIHwgc3RyaW5nO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1heFRhZ1dpZHRoPzogbnVtYmVyO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRyb3BEb3duSXRlbUhlaWdodD86IG51bWJlcjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkcm9wRG93bkl0ZW1UZW1wbGF0ZT86IHN0cmluZyB8IG51bGw7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdGFnVmFsaWRhdG9yPzogKGFyZ3M6IGFueSkgPT4gYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhbGxvd1Jlc2l6ZT86IGJvb2xlYW47XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2hvd0Ryb3BEb3duPzogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB1bmlxdWVUYWdzPzogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtYXhUYWdDb3VudD86IG51bWJlcjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhdXRvU2VsZWN0PzogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB2YWx1ZT86IChzdHJpbmcgfCBvYmplY3QpW107XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYXBwZW5kQ3VzdG9tVGFnVG9Ecm9wRG93bj86IGJvb2xlYW47XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZmxvYXRpbmdMYWJlbERpcmVjdGlvbj86IEdDLklucHV0TWFuLkZsb2F0aW5nTGFiZWxEaXJlY3Rpb247XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZmxvYXRpbmdMYWJlbFR5cGU/OiBHQy5JbnB1dE1hbi5GbG9hdGluZ0xhYmVsVHlwZTtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmbG9hdGluZ0xhYmVsVGV4dD86IHN0cmluZztcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkcm9wRG93blR5cGU/OiBHQy5JbnB1dE1hbi5UYWdCb3hEcm9wRG93blR5cGU7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZHJvcERvd25UcmVlQ29uZmlnPzogR0MuSW5wdXRNYW4uVGFnQm94RHJvcERvd25UcmVlQ29uZmlnO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGhlbHBDb250ZW50Pzogc3RyaW5nO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNob3dIZWxwQnV0dG9uPzogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaG93Q2xlYXJCdXR0b24/OiBib29sZWFuO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRyb3BEb3duSXRlbUNvdW50SW5Sb3c/OiBudW1iZXI7XG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGRyb3BEb3duQ2xvc2VkOiBFdmVudEVtaXR0ZXI8R0MuSW5wdXRNYW4uR2NUYWdCb3g+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBkcm9wRG93bk9wZW5lZDogRXZlbnRFbWl0dGVyPEdDLklucHV0TWFuLkdjVGFnQm94PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgZm9jdXNJbjogRXZlbnRFbWl0dGVyPEdDLklucHV0TWFuLkdjVGFnQm94PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgZm9jdXNPdXQ6IEV2ZW50RW1pdHRlcjxHQy5JbnB1dE1hbi5HY1RhZ0JveD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGluc2VydFRhZzogRXZlbnRFbWl0dGVyPEdDLklucHV0TWFuLkdjVGFnQm94PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgcmVtb3ZlVGFnOiBFdmVudEVtaXR0ZXI8R0MuSW5wdXRNYW4uR2NUYWdCb3g+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyB2YWx1ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxHQy5JbnB1dE1hbi5HY1RhZ0JveD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwcm90ZWN0ZWQgaW5pdEdjQ29tcG9uZW50KCk6IHZvaWQge1xuICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICB0aGlzLmNyZWF0ZVRlbXBsYXRlKGVsZW1lbnQpO1xuICAgICAgICB0aGlzLl9pbUN0cmwgPSBuZXcgR0MuSW5wdXRNYW4uR2NUYWdCb3goZWxlbWVudCwgdGhpcyBhcyBhbnkpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBiaW5kRXZlbnQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5faW1DdHJsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9pbUN0cmwuYWRkRXZlbnRMaXN0ZW5lcihHQy5JbnB1dE1hbi5HY1RhZ0JveEV2ZW50LkRyb3BEb3duQ2xvc2VkLCAoZXZlbnRBcmdzKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRyb3BEb3duQ2xvc2VkLmVtaXQoZXZlbnRBcmdzKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX2ltQ3RybC5hZGRFdmVudExpc3RlbmVyKEdDLklucHV0TWFuLkdjVGFnQm94RXZlbnQuRHJvcERvd25PcGVuZWQsIChldmVudEFyZ3MpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZHJvcERvd25PcGVuZWQuZW1pdChldmVudEFyZ3MpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5faW1DdHJsLmFkZEV2ZW50TGlzdGVuZXIoR0MuSW5wdXRNYW4uR2NUYWdCb3hFdmVudC5Gb2N1c0luLCAoZXZlbnRBcmdzKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzSW4uZW1pdChldmVudEFyZ3MpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5faW1DdHJsLmFkZEV2ZW50TGlzdGVuZXIoR0MuSW5wdXRNYW4uR2NUYWdCb3hFdmVudC5Gb2N1c091dCwgKGV2ZW50QXJncykgPT4ge1xuICAgICAgICAgICAgdGhpcy5mb2N1c091dC5lbWl0KGV2ZW50QXJncyk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9pbUN0cmwuYWRkRXZlbnRMaXN0ZW5lcihHQy5JbnB1dE1hbi5HY1RhZ0JveEV2ZW50Lkluc2VydFRhZywgKGV2ZW50QXJncykgPT4ge1xuICAgICAgICAgICAgdGhpcy5pbnNlcnRUYWcuZW1pdChldmVudEFyZ3MpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5faW1DdHJsLmFkZEV2ZW50TGlzdGVuZXIoR0MuSW5wdXRNYW4uR2NUYWdCb3hFdmVudC5SZW1vdmVUYWcsIChldmVudEFyZ3MpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlVGFnLmVtaXQoZXZlbnRBcmdzKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX2ltQ3RybC5hZGRFdmVudExpc3RlbmVyKEdDLklucHV0TWFuLkdjVGFnQm94RXZlbnQuVmFsdWVDaGFuZ2VkLCAoZXZlbnRBcmdzKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlZC5lbWl0KGV2ZW50QXJncyk7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuX2ltQ3RybC52YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgICB9KTtcbiAgICB9XG59Il19