UNPKG

@grapecity/inputman.angular

Version:

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

203 lines 23 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 { GcComponents } from './GcComponents'; import * as i0 from "@angular/core"; export class GcCalendarComponent extends GcComponents { constructor(ref) { super(ref); this.onChange = () => { }; this.onTouched = () => { }; this.onClickDate = new EventEmitter(); this.onScrolled = new EventEmitter(); this.onFocusDateChanged = new EventEmitter(); this.onSelectedDateChanged = new EventEmitter(); // For V2.1 Compatibility, we have to keep this property or event this.focusDateChange = new EventEmitter(); this.selectedDateChange = new EventEmitter(); } writeValue(value) { if (this.selectionMode == undefined || this.selectionMode == GC.InputMan.CalendarSelectionMode.One) { this.selectedDate = value; if (this._imCtrl) { this._imCtrl.selectedDate = this.selectedDate; } } else { if (this._imCtrl) { if (value instanceof Array) { this._imCtrl.setSelections(value); } else { this._imCtrl.setSelections([value]); } } } } 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); if (Array.isArray(this.calendarDimensions)) { this.calendarDimensions = { width: this.calendarDimensions[0], height: this.calendarDimensions[1] }; } this._imCtrl = new GC.InputMan.GcCalendar(element, this); } bindEvent() { if (!this._imCtrl) { return; } this._imCtrl.onClickDate((s) => { this.onClickDate.emit(s); }); this._imCtrl.onScrolled((s) => { this.onScrolled.emit(s); }); this._imCtrl.onFocusDateChanged((s) => { this.onFocusDateChanged.emit(s); this.focusDateChange.emit(s.getFocusDate()); }); this._imCtrl.onSelectedDateChanged((s) => { this.onSelectedDateChanged.emit(s); if (this._imCtrl.selectionMode == GC.InputMan.CalendarSelectionMode.One) { this.onChange(s.getSelectedDate()); } else { this.onChange(s.getSelections()); } this.onTouched(); this.selectedDateChange.emit(s.getSelectedDate()); }); } } GcCalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GcCalendarComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); GcCalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GcCalendarComponent, selector: "gc-calendar", inputs: { visible: "visible", calendarZoomRange: "calendarZoomRange", maxSelectionCount: "maxSelectionCount", selectionMode: "selectionMode", selectedDate: "selectedDate", enabled: "enabled", weekTitleSelect: "weekTitleSelect", weekNumberSelect: "weekNumberSelect", focusDate: "focusDate", maxDate: "maxDate", minDate: "minDate", allowSelection: "allowSelection", emptyRows: "emptyRows", firstDayOfWeek: "firstDayOfWeek", firstFiscalMonth: "firstFiscalMonth", firstMonthInView: "firstMonthInView", yearMonthFormat: "yearMonthFormat", headerFormat: "headerFormat", showZoomButton: "showZoomButton", showRokuyou: "showRokuyou", showHeader: "showHeader", showToday: "showToday", showWeekNumber: "showWeekNumber", showTrailing: "showTrailing", calendarYear: "calendarYear", showNavigator: "showNavigator", navigatorOrientation: "navigatorOrientation", overrideTipText: "overrideTipText", calendarType: "calendarType", calendarDimensions: "calendarDimensions", scrollRate: "scrollRate", autoSwitch: "autoSwitch", showAnimation: "showAnimation", width: "width", height: "height", minWidth: "minWidth", minHeight: "minHeight", maxWidth: "maxWidth", maxHeight: "maxHeight", allowResize: "allowResize" }, outputs: { onClickDate: "onClickDate", onScrolled: "onScrolled", onFocusDateChanged: "onFocusDateChanged", onSelectedDateChanged: "onSelectedDateChanged", focusDateChange: "focusDateChange", selectedDateChange: "selectedDateChange" }, providers: [ { provide: NG_VALUE_ACCESSOR, multi: true, useExisting: forwardRef(() => GcCalendarComponent), } ], usesInheritance: true, ngImport: i0, template: ``, isInline: true }); __decorate([ Property("setCalendarDimensions", "", true), __metadata("design:type", Array) ], GcCalendarComponent.prototype, "calendarDimensions", void 0); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GcCalendarComponent, decorators: [{ type: Component, args: [{ selector: 'gc-calendar', template: ``, providers: [ { provide: NG_VALUE_ACCESSOR, multi: true, useExisting: forwardRef(() => GcCalendarComponent), } ] }] }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { visible: [{ type: Input }], calendarZoomRange: [{ type: Input }], maxSelectionCount: [{ type: Input }], selectionMode: [{ type: Input }], selectedDate: [{ type: Input }], enabled: [{ type: Input }], weekTitleSelect: [{ type: Input }], weekNumberSelect: [{ type: Input }], focusDate: [{ type: Input }], maxDate: [{ type: Input }], minDate: [{ type: Input }], allowSelection: [{ type: Input }], emptyRows: [{ type: Input }], firstDayOfWeek: [{ type: Input }], firstFiscalMonth: [{ type: Input }], firstMonthInView: [{ type: Input }], yearMonthFormat: [{ type: Input }], headerFormat: [{ type: Input }], showZoomButton: [{ type: Input }], showRokuyou: [{ type: Input }], showHeader: [{ type: Input }], showToday: [{ type: Input }], showWeekNumber: [{ type: Input }], showTrailing: [{ type: Input }], calendarYear: [{ type: Input }], showNavigator: [{ type: Input }], navigatorOrientation: [{ type: Input }], overrideTipText: [{ type: Input }], calendarType: [{ type: Input }], calendarDimensions: [{ type: Input }], scrollRate: [{ type: Input }], autoSwitch: [{ type: Input }], showAnimation: [{ type: Input }], width: [{ type: Input }], height: [{ type: Input }], minWidth: [{ type: Input }], minHeight: [{ type: Input }], maxWidth: [{ type: Input }], maxHeight: [{ type: Input }], allowResize: [{ type: Input }], onClickDate: [{ type: Output }], onScrolled: [{ type: Output }], onFocusDateChanged: [{ type: Output }], onSelectedDateChanged: [{ type: Output }], focusDateChange: [{ type: Output }], selectedDateChange: [{ type: Output }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2NDYWxlbmRhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2NvbXBvbmVudHMvR2NDYWxlbmRhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9GLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQW1COUMsTUFBTSxPQUFPLG1CQUFvQixTQUFRLFlBQW9DO0lBQ3pFLFlBQVksR0FBZTtRQUN2QixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFHUCxhQUFRLEdBQWEsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLGNBQVMsR0FBYSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUE2SGpDLGdCQUFXLEdBQXlDLElBQUksWUFBWSxFQUFFLENBQUM7UUFFdkUsZUFBVSxHQUF5QyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXRFLHVCQUFrQixHQUF5QyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTlFLDBCQUFxQixHQUF5QyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3hGLGlFQUFpRTtRQUUxRCxvQkFBZSxHQUF1QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXpELHVCQUFrQixHQUF1QixJQUFJLFlBQVksRUFBRSxDQUFDO0lBM0luRSxDQUFDO0lBS0QsVUFBVSxDQUFDLEtBQVU7UUFDakIsSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLFNBQVMsSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQyxRQUFR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bWVudFJlZiwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBHQyB9IGZyb20gJy4uL2lucHV0bWFuJztcbmltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSAnLi4vY29tbW9uJztcbmltcG9ydCB7IEdjQ29tcG9uZW50cyB9IGZyb20gJy4vR2NDb21wb25lbnRzJztcbmltcG9ydCB7IEdjTnVtYmVyQ29tcG9uZW50IH0gZnJvbSAnLi9HY051bWJlcic7XG5cbmludGVyZmFjZSBEaW1lbnNpb25zIHtcbiAgICB3aWR0aDogbnVtYmVyO1xuICAgIGhlaWdodDogbnVtYmVyO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2djLWNhbGVuZGFyJyxcbiAgICB0ZW1wbGF0ZTogYGAsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBHY0NhbGVuZGFyQ29tcG9uZW50KSxcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgR2NDYWxlbmRhckNvbXBvbmVudCBleHRlbmRzIEdjQ29tcG9uZW50czxHQy5JbnB1dE1hbi5HY0NhbGVuZGFyPiBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgICBjb25zdHJ1Y3RvcihyZWY6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgc3VwZXIocmVmKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uQ2hhbmdlOiBGdW5jdGlvbiA9ICgpID0+IHsgfTtcbiAgICBwcml2YXRlIG9uVG91Y2hlZDogRnVuY3Rpb24gPSAoKSA9PiB7IH07XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uTW9kZSA9PSB1bmRlZmluZWQgfHwgdGhpcy5zZWxlY3Rpb25Nb2RlID09IEdDLklucHV0TWFuLkNhbGVuZGFyU2VsZWN0aW9uTW9kZS5PbmUpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gdmFsdWU7XG4gICAgICAgICAgICBpZiAodGhpcy5faW1DdHJsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5faW1DdHJsLnNlbGVjdGVkRGF0ZSA9IHRoaXMuc2VsZWN0ZWREYXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2ltQ3RybCkge1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2ltQ3RybC5zZXRTZWxlY3Rpb25zKHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9pbUN0cmwuc2V0U2VsZWN0aW9ucyhbdmFsdWVdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmVnaXN0ZXJPbkNoYW5nZShvbkNoYW5nZTogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBvbkNoYW5nZTtcbiAgICB9XG4gICAgcmVnaXN0ZXJPblRvdWNoZWQob25Ub3VjaGVkOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBvblRvdWNoZWQ7XG4gICAgfVxuICAgIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmVuYWJsZWQgPSAhaXNEaXNhYmxlZDtcbiAgICAgICAgaWYgKHRoaXMuX2ltQ3RybCkge1xuICAgICAgICAgICAgdGhpcy5faW1DdHJsLmVuYWJsZWQgPSB0aGlzLmVuYWJsZWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaW5pdEdjQ29tcG9uZW50KCkge1xuICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICB0aGlzLmNyZWF0ZVRlbXBsYXRlKGVsZW1lbnQpO1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSgodGhpcyBhcyBhbnkpLmNhbGVuZGFyRGltZW5zaW9ucykpIHtcbiAgICAgICAgICAgICh0aGlzIGFzIGFueSkuY2FsZW5kYXJEaW1lbnNpb25zID0gPERpbWVuc2lvbnM+e1xuICAgICAgICAgICAgICAgIHdpZHRoOiAodGhpcyBhcyBhbnkpLmNhbGVuZGFyRGltZW5zaW9uc1swXSxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICh0aGlzIGFzIGFueSkuY2FsZW5kYXJEaW1lbnNpb25zWzFdXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5faW1DdHJsID0gbmV3IEdDLklucHV0TWFuLkdjQ2FsZW5kYXIoZWxlbWVudCwgdGhpcyBhcyBhbnkpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHZpc2libGU6IGJvb2xlYW47XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY2FsZW5kYXJab29tUmFuZ2U6IEdDLklucHV0TWFuLkNhbGVuZGFyWm9vbVJhbmdlIHwgR0MuSW5wdXRNYW4uQ2FsZW5kYXJUeXBlW107XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWF4U2VsZWN0aW9uQ291bnQ6IG51bWJlcjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZWxlY3Rpb25Nb2RlOiBHQy5JbnB1dE1hbi5DYWxlbmRhclNlbGVjdGlvbk1vZGU7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2VsZWN0ZWREYXRlOiBEYXRlIHwgbnVsbDtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBlbmFibGVkOiBib29sZWFuO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHdlZWtUaXRsZVNlbGVjdDogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB3ZWVrTnVtYmVyU2VsZWN0OiBib29sZWFuO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZvY3VzRGF0ZTogRGF0ZSB8IG51bGw7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWF4RGF0ZTogRGF0ZSB8IG51bGw7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWluRGF0ZTogRGF0ZSB8IG51bGw7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYWxsb3dTZWxlY3Rpb246IEdDLklucHV0TWFuLkFsbG93U2VsZWN0aW9uO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGVtcHR5Um93czogR0MuSW5wdXRNYW4uRW1wdHlSb3dzO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZpcnN0RGF5T2ZXZWVrOiBHQy5JbnB1dE1hbi5EYXlPZldlZWs7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZmlyc3RGaXNjYWxNb250aDogR0MuSW5wdXRNYW4uTW9udGhzO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZpcnN0TW9udGhJblZpZXc6IEdDLklucHV0TWFuLk1vbnRocztcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB5ZWFyTW9udGhGb3JtYXQ6IHN0cmluZztcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBoZWFkZXJGb3JtYXQ6IHN0cmluZztcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaG93Wm9vbUJ1dHRvbjogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaG93Um9rdXlvdTogR0MuSW5wdXRNYW4uUm9rdXlvdTtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaG93SGVhZGVyOiBib29sZWFuO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNob3dUb2RheTogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaG93V2Vla051bWJlcjogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaG93VHJhaWxpbmc6IGJvb2xlYW47XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY2FsZW5kYXJZZWFyOiBHQy5JbnB1dE1hbi5DYWxlbmRhclllYXI7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2hvd05hdmlnYXRvcjogR0MuSW5wdXRNYW4uQ2FsZW5kYXJOYXZpZ2F0b3JzO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG5hdmlnYXRvck9yaWVudGF0aW9uOiBudW1iZXIgfCBHQy5JbnB1dE1hbi5OYXZpZ2F0b3JPcmllbnRhdGlvbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBvdmVycmlkZVRpcFRleHQ6IHN0cmluZztcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjYWxlbmRhclR5cGU6IEdDLklucHV0TWFuLkNhbGVuZGFyVHlwZTtcbiAgICBAUHJvcGVydHkoXCJzZXRDYWxlbmRhckRpbWVuc2lvbnNcIiwgXCJcIiwgdHJ1ZSlcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjYWxlbmRhckRpbWVuc2lvbnM6IEFycmF5PG51bWJlcj47XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2Nyb2xsUmF0ZTogbnVtYmVyO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGF1dG9Td2l0Y2g6IGJvb2xlYW47XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2hvd0FuaW1hdGlvbjogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB3aWR0aDogbnVtYmVyIHwgc3RyaW5nO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGhlaWdodDogbnVtYmVyIHwgc3RyaW5nO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1pbldpZHRoOiBudW1iZXIgfCBzdHJpbmc7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWluSGVpZ2h0OiBudW1iZXIgfCBzdHJpbmc7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWF4V2lkdGg6IG51bWJlciB8IHN0cmluZztcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtYXhIZWlnaHQ6IG51bWJlciB8IHN0cmluZztcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhbGxvd1Jlc2l6ZTogYm9vbGVhbjtcbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb25DbGlja0RhdGU6IEV2ZW50RW1pdHRlcjxHQy5JbnB1dE1hbi5HY0NhbGVuZGFyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb25TY3JvbGxlZDogRXZlbnRFbWl0dGVyPEdDLklucHV0TWFuLkdjQ2FsZW5kYXI+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBvbkZvY3VzRGF0ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxHQy5JbnB1dE1hbi5HY0NhbGVuZGFyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb25TZWxlY3RlZERhdGVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8R0MuSW5wdXRNYW4uR2NDYWxlbmRhcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgLy8gRm9yIFYyLjEgQ29tcGF0aWJpbGl0eSwgd2UgaGF2ZSB0byBrZWVwIHRoaXMgcHJvcGVydHkgb3IgZXZlbnRcbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgZm9jdXNEYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHNlbGVjdGVkRGF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPERhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG5cbiAgICBwcm90ZWN0ZWQgYmluZEV2ZW50KCkge1xuICAgICAgICBpZiAoIXRoaXMuX2ltQ3RybCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5faW1DdHJsLm9uQ2xpY2tEYXRlKChzKSA9PiB7IHRoaXMub25DbGlja0RhdGUuZW1pdChzKSB9KTtcbiAgICAgICAgdGhpcy5faW1DdHJsLm9uU2Nyb2xsZWQoKHMpID0+IHsgdGhpcy5vblNjcm9sbGVkLmVtaXQocykgfSk7XG4gICAgICAgIHRoaXMuX2ltQ3RybC5vbkZvY3VzRGF0ZUNoYW5nZWQoKHMpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25Gb2N1c0RhdGVDaGFuZ2VkLmVtaXQocyk7XG4gICAgICAgICAgICB0aGlzLmZvY3VzRGF0ZUNoYW5nZS5lbWl0KHMuZ2V0Rm9jdXNEYXRlKCkpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5faW1DdHJsLm9uU2VsZWN0ZWREYXRlQ2hhbmdlZCgocykgPT4ge1xuICAgICAgICAgICAgdGhpcy5vblNlbGVjdGVkRGF0ZUNoYW5nZWQuZW1pdChzKTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9pbUN0cmwuc2VsZWN0aW9uTW9kZSA9PSBHQy5JbnB1dE1hbi5DYWxlbmRhclNlbGVjdGlvbk1vZGUuT25lKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkNoYW5nZShzLmdldFNlbGVjdGVkRGF0ZSgpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkNoYW5nZShzLmdldFNlbGVjdGlvbnMoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVDaGFuZ2UuZW1pdChzLmdldFNlbGVjdGVkRGF0ZSgpKTtcbiAgICAgICAgfSk7XG4gICAgfVxufSJdfQ==