UNPKG

io.parrots

Version:

Parrots.io App

313 lines (311 loc) 25.7 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ import * as tslib_1 from "tslib"; import { Component, Input, Inject, EventEmitter, Output } from '@angular/core'; import { AbstractParrotsDataEditor } from './AbstractParrotsDataEditor'; import { Option, PhloxAppInfoService, DialogService, BackgroundProcessManager, I18N } from 'com.phloxui'; import { ParrotsDataServiceFactory } from '../../service/ParrotsDataServiceFactory.service'; import { ParrotsDataEditorActionProvider } from '../../service/ParrotsDataEditorActionProvider.service'; import { ParrotsDataEditorViewProvider } from '../../service/ParrotsDataEditorViewProvider.service'; import { ParrotsEditorSettingServiceFactory } from '../../service/ParrotsEditorSettingServiceFactory.service'; import { VersionHistoryModelFactory } from './IVersionHistoryModelFactory'; import { InstanceConnectionManager } from '../../service/InstanceConnectionManager.service'; const /** @type {?} */ TYPE_NAME = "parrots-data-editor"; export class ParrotsDataEditor extends AbstractParrotsDataEditor { /** * @param {?} actionProvider * @param {?} viewProvider * @param {?} dataFactory * @param {?} settingServiceFactory * @param {?} phloxAppService * @param {?} dialogService * @param {?} bgProcessMgr * @param {?} vhModelFactory * @param {?} instConnectionMgr */ constructor(actionProvider, viewProvider, dataFactory, settingServiceFactory, phloxAppService, dialogService, bgProcessMgr, vhModelFactory, instConnectionMgr) { super(actionProvider, viewProvider, dataFactory, settingServiceFactory, phloxAppService, dialogService, bgProcessMgr, null, null, vhModelFactory, instConnectionMgr); } /** * @return {?} */ ngOnInit() { super.ngOnInit(); // set value from @Input this.setDataClassName(this.dataClassName); this.setConfigName(this.configName); } /** * @param {?} model * @return {?} */ _isViewModelActive(model) { if (model === null || typeof model === 'undefined') { return false; } for (let /** @type {?} */ v of this.views) { if (v.getModel() === model) { return v.isActive(); } } return false; } /** * @param {?} $event * @param {?} view * @return {?} */ onViewBtnClicked($event, view) { this.showView(view); } /** * @return {?} */ getMenuModelFactory() { return this.menuModelFactory; } /** * @return {?} */ getDataComparator() { return this.dataComparator; } /** * @return {?} */ isPageLoaded() { return true; } /** * @return {?} */ newDataObject() { // new dataObj from schema let /** @type {?} */ result = {}; if (this.dataSchema !== null && this.dataSchema !== undefined) { let /** @type {?} */ dataField = this.dataSchema.dataFields; if (dataField !== null && dataField !== undefined) { for (let /** @type {?} */ field of dataField) { let /** @type {?} */ fName = field.name; let /** @type {?} */ fType = field.type; if (fType === 'string') { result[fName] = ""; } if (fType === 'number') { result[fName] = 0; } if (fType === 'date') { result[fName] = (new Date()).getTime(); } else { result[fName] = null; } } } } return result; } /** * @param {?} settings * @return {?} */ onEditorSettingLoaded(settings) { // do sthing when reload editor setting } /** * @return {?} */ getHeaderTitle() { return this.headerTitle; } /** * @param {?} headerTitle * @return {?} */ setHeaderTitle(headerTitle) { this.headerTitle = headerTitle; } } ParrotsDataEditor.TYPE_NAME = TYPE_NAME; ParrotsDataEditor.decorators = [ { type: Component, args: [{ moduleId: module.id, selector: TYPE_NAME, template: `<div class="parrots-data-editor"> <div class="background"> </div> <div class="wrapper"> <div class="content"> <div class="parrots-editor-header"> <div class="page-info-wrapper"> <div class="page-info" style="float: left;"> {{getHeaderTitle()}} </div> <div class="page-search" style="float: left;"> <!-- # this will open in the next version --> <phx-search-btn [editor]="this"></phx-search-btn> </div> </div> <div class="page-action-wrapper"> <ul class="page-action"> <li> <ul class="action-button-group"> <li> <phx-action-menu-bar #actionMenuBar [models]="getActionModels()"></phx-action-menu-bar> </li> </ul> </li> <li> <div class="page-separate"></div> </li> <li> <ul class="view-button-group"> <li *ngFor="let view of getViewModels(); let i = index;"> <phx-view-btn [model]="view" [active]="_isViewModelActive(view)" (click)="onViewBtnClicked($event,view)"></phx-view-btn> </li> </ul> </li> </ul> </div> </div> <div class="wrapper"> <div class="parrots-editor-body"> <phx-view-wrapper *ngFor="let view of getViewModels()" [editor]="this" [model]="view" [showEventHandler]="getViewShowHandler()" [hideEventHandler]="getViewHideHandler()"></phx-view-wrapper> </div> </div> </div> </div> </div> ` },] }, ]; /** @nocollapse */ ParrotsDataEditor.ctorParameters = () => [ { type: ParrotsDataEditorActionProvider, }, { type: ParrotsDataEditorViewProvider, }, { type: ParrotsDataServiceFactory, }, { type: ParrotsEditorSettingServiceFactory, }, { type: PhloxAppInfoService, }, { type: DialogService, }, { type: BackgroundProcessManager, }, { type: undefined, decorators: [{ type: Inject, args: [VersionHistoryModelFactory,] },] }, { type: InstanceConnectionManager, }, ]; ParrotsDataEditor.propDecorators = { "dataCreateEvent": [{ type: Output, args: ['parrotsDataCreate',] },], "dataUpdateEvent": [{ type: Output, args: ['parrotsDataUpdate',] },], "dataDeleteEvent": [{ type: Output, args: ['parrotsDataDelete',] },], "dataDestroyEvent": [{ type: Output, args: ['parrotsDataDestroy',] },], "dataRevertEvent": [{ type: Output, args: ['parrotsDataRevert',] },], "dataQueryEvent": [{ type: Output, args: ['parrotsDataQuery',] },], "dataPromoteEvent": [{ type: Output, args: ['parrotsDataPromote',] },], "dataReloadEvent": [{ type: Output, args: ['parrotsDataReload',] },], "dataSchemaReloadEvent": [{ type: Output, args: ['parrotsDataSchemaReload',] },], "viewShowEvent": [{ type: Output, args: ['parrotsViewShow',] },], "viewHideEvent": [{ type: Output, args: ['parrotsViewHide',] },], "dataClassName": [{ type: Input },], "configName": [{ type: Input },], "headerTitle": [{ type: Input },], }; tslib_1.__decorate([ Option('dataCreate'), tslib_1.__metadata("design:type", EventEmitter) ], ParrotsDataEditor.prototype, "dataCreateEvent", void 0); tslib_1.__decorate([ Option('dataUpdate'), tslib_1.__metadata("design:type", EventEmitter) ], ParrotsDataEditor.prototype, "dataUpdateEvent", void 0); tslib_1.__decorate([ Option('dataDelete'), tslib_1.__metadata("design:type", EventEmitter) ], ParrotsDataEditor.prototype, "dataDeleteEvent", void 0); tslib_1.__decorate([ Option('dataDestroy'), tslib_1.__metadata("design:type", EventEmitter) ], ParrotsDataEditor.prototype, "dataDestroyEvent", void 0); tslib_1.__decorate([ Option('dataRevert'), tslib_1.__metadata("design:type", EventEmitter) ], ParrotsDataEditor.prototype, "dataRevertEvent", void 0); tslib_1.__decorate([ Option('dataQuery'), tslib_1.__metadata("design:type", EventEmitter) ], ParrotsDataEditor.prototype, "dataQueryEvent", void 0); tslib_1.__decorate([ Option('dataPromote'), tslib_1.__metadata("design:type", EventEmitter) ], ParrotsDataEditor.prototype, "dataPromoteEvent", void 0); tslib_1.__decorate([ Option('dataReload'), tslib_1.__metadata("design:type", EventEmitter) ], ParrotsDataEditor.prototype, "dataReloadEvent", void 0); tslib_1.__decorate([ Option('dataSchemaReload'), tslib_1.__metadata("design:type", EventEmitter) ], ParrotsDataEditor.prototype, "dataSchemaReloadEvent", void 0); tslib_1.__decorate([ Option('viewShow'), tslib_1.__metadata("design:type", EventEmitter) ], ParrotsDataEditor.prototype, "viewShowEvent", void 0); tslib_1.__decorate([ Option('viewHide'), tslib_1.__metadata("design:type", EventEmitter) ], ParrotsDataEditor.prototype, "viewHideEvent", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", String) ], ParrotsDataEditor.prototype, "dataClassName", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", String) ], ParrotsDataEditor.prototype, "configName", void 0); tslib_1.__decorate([ Option(), I18N("header.title"), tslib_1.__metadata("design:type", String) ], ParrotsDataEditor.prototype, "headerTitle", void 0); function ParrotsDataEditor_tsickle_Closure_declarations() { /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */ ParrotsDataEditor.decorators; /** * @nocollapse * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>} */ ParrotsDataEditor.ctorParameters; /** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */ ParrotsDataEditor.propDecorators; /** @type {?} */ ParrotsDataEditor.TYPE_NAME; /** @type {?} */ ParrotsDataEditor.prototype.dataCreateEvent; /** @type {?} */ ParrotsDataEditor.prototype.dataUpdateEvent; /** @type {?} */ ParrotsDataEditor.prototype.dataDeleteEvent; /** @type {?} */ ParrotsDataEditor.prototype.dataDestroyEvent; /** @type {?} */ ParrotsDataEditor.prototype.dataRevertEvent; /** @type {?} */ ParrotsDataEditor.prototype.dataQueryEvent; /** @type {?} */ ParrotsDataEditor.prototype.dataPromoteEvent; /** @type {?} */ ParrotsDataEditor.prototype.dataReloadEvent; /** @type {?} */ ParrotsDataEditor.prototype.dataSchemaReloadEvent; /** @type {?} */ ParrotsDataEditor.prototype.viewShowEvent; /** @type {?} */ ParrotsDataEditor.prototype.viewHideEvent; /** @type {?} */ ParrotsDataEditor.prototype.dataClassName; /** @type {?} */ ParrotsDataEditor.prototype.configName; /** @type {?} */ ParrotsDataEditor.prototype.headerTitle; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFycm90c0RhdGFFZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vaW8ucGFycm90cy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnQvZWRpdG9yL1BhcnJvdHNEYXRhRWRpdG9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWdCLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN4RSxPQUFPLEVBQ0wsTUFBTSxFQUN3QixtQkFBbUIsRUFBRSxhQUFhLEVBQUUsd0JBQXdCLEVBQ3BCLElBQUksRUFDM0UsTUFBTSxhQUFhLENBQUM7QUFHckIsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDNUYsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDeEcsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDcEcsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDOUcsT0FBTyxFQUErQiwwQkFBMEIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3hHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBRTVGLHVCQUFNLFNBQVMsR0FBVyxxQkFBcUIsQ0FBQztBQXNEaEQsTUFBTSx3QkFBeUIsU0FBUSx5QkFBeUI7Ozs7Ozs7Ozs7OztJQWdEOUQsWUFBWSxjQUErQyxFQUFFLFlBQTJDLEVBQUUsV0FBc0MsRUFDOUkscUJBQXlELEVBQUUsZUFBb0MsRUFBRSxhQUE0QixFQUM3SCxZQUFzQyxFQUFzQyxnQkFBNkMsaUJBQTRDO1FBQ3JLLEtBQUssQ0FBQyxjQUFjLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxxQkFBcUIs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Q00sWUFBWTs7O0lBRXRDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQztzQ0FDTSxZQUFZOzs7SUFFNUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztzQ0FDTSxZQUFZOzs7SUFFcEMsTUFBTSxDQUFDLFVBQVUsQ0FBQztzQ0FDTSxZQUFZOzs7SUFFcEMsTUFBTSxFQUFFOzs7O0lBR1IsTUFBTSxFQUFFOzs7O0lBR1IsTUFBTSxFQUFFO0lBQ1IsSUFBSSxDQUFDLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbnB1dCwgSW5qZWN0LCBFdmVudEVtaXR0ZXIsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RQYXJyb3RzRGF0YUVkaXRvciB9IGZyb20gJy4vQWJzdHJhY3RQYXJyb3RzRGF0YUVkaXRvcic7XG5pbXBvcnQge1xuICBPcHRpb24sIEFic3RyYWN0RGF0YUVkaXRvciwgSURhdGFFZGl0b3JBY3Rpb25Qcm92aWRlciwgSURhdGFTZXJ2aWNlRmFjdG9yeSxcbiAgSUVkaXRvclNldHRpbmdTZXJ2aWNlRmFjdG9yeSwgUGhsb3hBcHBJbmZvU2VydmljZSwgRGlhbG9nU2VydmljZSwgQmFja2dyb3VuZFByb2Nlc3NNYW5hZ2VyLFxuICBFdmVudFV0aWxzLCBWaWV3TW9kZWwsIElNZW51TW9kZWxGYWN0b3J5LCBJRGF0YUNvbXBhcmF0b3IsIERhdGFGaWVsZCwgSTE4TlxufSBmcm9tICdjb20ucGhsb3h1aSc7XG5pbXBvcnQgeyBEQVRBX0RFU1RST1lfRVZFTlQsIERBVEFfUFJPTU9URV9FVkVOVCwgREFUQV9RVUVSWV9FVkVOVCB9IGZyb20gJ2NvbS5waGxveHVpJztcbmltcG9ydCB7IFBhcnJvdHNEYXRhU2VydmljZSB9IGZyb20gJy4vUGFycm90c0RhdGFTZXJ2aWNlJztcbmltcG9ydCB7IFBhcnJvdHNEYXRhU2VydmljZUZhY3RvcnkgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL1BhcnJvdHNEYXRhU2VydmljZUZhY3Rvcnkuc2VydmljZSc7XG5pbXBvcnQgeyBQYXJyb3RzRGF0YUVkaXRvckFjdGlvblByb3ZpZGVyIH0gZnJvbSAnLi4vLi4vc2VydmljZS9QYXJyb3RzRGF0YUVkaXRvckFjdGlvblByb3ZpZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGFycm90c0RhdGFFZGl0b3JWaWV3UHJvdmlkZXIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL1BhcnJvdHNEYXRhRWRpdG9yVmlld1Byb3ZpZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGFycm90c0VkaXRvclNldHRpbmdTZXJ2aWNlRmFjdG9yeSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvUGFycm90c0VkaXRvclNldHRpbmdTZXJ2aWNlRmFjdG9yeS5zZXJ2aWNlJztcbmltcG9ydCB7IElWZXJzaW9uSGlzdG9yeU1vZGVsRmFjdG9yeSwgVmVyc2lvbkhpc3RvcnlNb2RlbEZhY3RvcnkgfSBmcm9tICcuL0lWZXJzaW9uSGlzdG9yeU1vZGVsRmFjdG9yeSc7XG5pbXBvcnQgeyBJbnN0YW5jZUNvbm5lY3Rpb25NYW5hZ2VyIH0gZnJvbSAnLi4vLi4vc2VydmljZS9JbnN0YW5jZUNvbm5lY3Rpb25NYW5hZ2VyLnNlcnZpY2UnO1xuXG5jb25zdCBUWVBFX05BTUU6IHN0cmluZyA9IFwicGFycm90cy1kYXRhLWVkaXRvclwiO1xuXG5AQ29tcG9uZW50KHtcbiAgbW9kdWxlSWQ6IG1vZHVsZS5pZCxcbiAgc2VsZWN0b3I6IFRZUEVfTkFNRSxcbiAgdGVtcGxhdGU6IGA8ZGl2IGNsYXNzPVwicGFycm90cy1kYXRhLWVkaXRvclwiPlxuXHQ8ZGl2IGNsYXNzPVwiYmFja2dyb3VuZFwiPlxuXHQ8L2Rpdj5cblx0PGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cblx0XHQ8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuXHRcdFx0PGRpdiBjbGFzcz1cInBhcnJvdHMtZWRpdG9yLWhlYWRlclwiPlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwicGFnZS1pbmZvLXdyYXBwZXJcIj5cblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicGFnZS1pbmZvXCIgc3R5bGU9XCJmbG9hdDogbGVmdDtcIj5cblx0XHRcdFx0XHRcdHt7Z2V0SGVhZGVyVGl0bGUoKX19XG5cdFx0XHRcdFx0PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBhZ2Utc2VhcmNoXCIgc3R5bGU9XCJmbG9hdDogbGVmdDtcIj5cblx0XHRcdFx0XHRcdDwhLS0gIyB0aGlzIHdpbGwgb3BlbiBpbiB0aGUgbmV4dCB2ZXJzaW9uICAtLT5cblx0XHRcdFx0XHRcdDxwaHgtc2VhcmNoLWJ0biBbZWRpdG9yXT1cInRoaXNcIj48L3BoeC1zZWFyY2gtYnRuPlxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0PGRpdiBjbGFzcz1cInBhZ2UtYWN0aW9uLXdyYXBwZXJcIj5cblx0XHRcdFx0XHQ8dWwgY2xhc3M9XCJwYWdlLWFjdGlvblwiPlxuXHRcdFx0XHRcdFx0PGxpPlxuXHRcdFx0XHRcdFx0XHQ8dWwgY2xhc3M9XCJhY3Rpb24tYnV0dG9uLWdyb3VwXCI+XG5cdFx0XHRcdFx0XHRcdFx0PGxpPlxuXHRcdFx0XHRcdFx0XHRcdFx0PHBoeC1hY3Rpb24tbWVudS1iYXIgI2FjdGlvbk1lbnVCYXIgW21vZGVsc109XCJnZXRBY3Rpb25Nb2RlbHMoKVwiPjwvcGh4LWFjdGlvbi1tZW51LWJhcj5cblx0XHRcdFx0XHRcdFx0XHQ8L2xpPlxuXHRcdFx0XHRcdFx0XHQ8L3VsPlxuXHRcdFx0XHRcdFx0PC9saT5cblx0XHRcdFx0XHRcdDxsaT5cblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInBhZ2Utc2VwYXJhdGVcIj48L2Rpdj5cblx0XHRcdFx0XHRcdDwvbGk+XG5cdFx0XHRcdFx0XHQ8bGk+XG5cdFx0XHRcdFx0XHRcdDx1bCBjbGFzcz1cInZpZXctYnV0dG9uLWdyb3VwXCI+XG5cdFx0XHRcdFx0XHRcdFx0PGxpICpuZ0Zvcj1cImxldCB2aWV3IG9mIGdldFZpZXdNb2RlbHMoKTsgbGV0IGkgPSBpbmRleDtcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDxwaHgtdmlldy1idG4gIFttb2RlbF09XCJ2aWV3XCIgW2FjdGl2ZV09XCJfaXNWaWV3TW9kZWxBY3RpdmUodmlldylcIiAoY2xpY2spPVwib25WaWV3QnRuQ2xpY2tlZCgkZXZlbnQsdmlldylcIj48L3BoeC12aWV3LWJ0bj5cblx0XHRcdFx0XHRcdFx0XHQ8L2xpPlxuXHRcdFx0ICAgICAgICA8L3VsPlxuXHRcdFx0XHRcdFx0PC9saT5cblx0XHRcdFx0XHQ8L3VsPlxuXHRcdFx0XHQ8L2Rpdj5cblxuXHRcdFx0PC9kaXY+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwicGFycm90cy1lZGl0b3ItYm9keVwiPlxuXHRcdFx0XHRcdDxwaHgtdmlldy13cmFwcGVyICpuZ0Zvcj1cImxldCB2aWV3IG9mIGdldFZpZXdNb2RlbHMoKVwiIFtlZGl0b3JdPVwidGhpc1wiIFttb2RlbF09XCJ2aWV3XCJcblx0XHRcdFx0XHRcdFtzaG93RXZlbnRIYW5kbGVyXT1cImdldFZpZXdTaG93SGFuZGxlcigpXCIgW2hpZGVFdmVudEhhbmRsZXJdPVwiZ2V0Vmlld0hpZGVIYW5kbGVyKClcIj48L3BoeC12aWV3LXdyYXBwZXI+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdDwvZGl2PlxuPC9kaXY+XG5gXG59KVxuZXhwb3J0IGNsYXNzIFBhcnJvdHNEYXRhRWRpdG9yIGV4dGVuZHMgQWJzdHJhY3RQYXJyb3RzRGF0YUVkaXRvciB7XG5cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBUWVBFX05BTUU6IHN0cmluZyA9IFRZUEVfTkFNRTtcblxuICBAT3V0cHV0KCdwYXJyb3RzRGF0YUNyZWF0ZScpXG4gIEBPcHRpb24oJ2RhdGFDcmVhdGUnKVxuICBwcm90ZWN0ZWQgZGF0YUNyZWF0ZUV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgQE91dHB1dCgncGFycm90c0RhdGFVcGRhdGUnKVxuICBAT3B0aW9uKCdkYXRhVXBkYXRlJylcbiAgcHJvdGVjdGVkIGRhdGFVcGRhdGVFdmVudDogRXZlbnRFbWl0dGVyPGFueT47XG4gIEBPdXRwdXQoJ3BhcnJvdHNEYXRhRGVsZXRlJylcbiAgQE9wdGlvbignZGF0YURlbGV0ZScpXG4gIHByb3RlY3RlZCBkYXRhRGVsZXRlRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xuICBAT3V0cHV0KCdwYXJyb3RzRGF0YURlc3Ryb3knKVxuICBAT3B0aW9uKCdkYXRhRGVzdHJveScpXG4gIHByb3RlY3RlZCBkYXRhRGVzdHJveUV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgQE91dHB1dCgncGFycm90c0RhdGFSZXZlcnQnKVxuICBAT3B0aW9uKCdkYXRhUmV2ZXJ0JylcbiAgcHJvdGVjdGVkIGRhdGFSZXZlcnRFdmVudDogRXZlbnRFbWl0dGVyPGFueT47XG4gIEBPdXRwdXQoJ3BhcnJvdHNEYXRhUXVlcnknKVxuICBAT3B0aW9uKCdkYXRhUXVlcnknKVxuICBwcm90ZWN0ZWQgZGF0YVF1ZXJ5RXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xuICBAT3V0cHV0KCdwYXJyb3RzRGF0YVByb21vdGUnKVxuICBAT3B0aW9uKCdkYXRhUHJvbW90ZScpXG4gIHByb3RlY3RlZCBkYXRhUHJvbW90ZUV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgQE91dHB1dCgncGFycm90c0RhdGFSZWxvYWQnKVxuICBAT3B0aW9uKCdkYXRhUmVsb2FkJylcbiAgcHJvdGVjdGVkIGRhdGFSZWxvYWRFdmVudDogRXZlbnRFbWl0dGVyPGFueT47XG4gIEBPdXRwdXQoJ3BhcnJvdHNEYXRhU2NoZW1hUmVsb2FkJylcbiAgQE9wdGlvbignZGF0YVNjaGVtYVJlbG9hZCcpXG4gIHByb3RlY3RlZCBkYXRhU2NoZW1hUmVsb2FkRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xuICBAT3V0cHV0KCdwYXJyb3RzVmlld1Nob3cnKVxuICBAT3B0aW9uKCd2aWV3U2hvdycpXG4gIHByb3RlY3RlZCB2aWV3U2hvd0V2ZW50OiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgQE91dHB1dCgncGFycm90c1ZpZXdIaWRlJylcbiAgQE9wdGlvbigndmlld0hpZGUnKVxuICBwcm90ZWN0ZWQgdmlld0hpZGVFdmVudDogRXZlbnRFbWl0dGVyPGFueT47XG4gIEBJbnB1dCgpXG4gIEBPcHRpb24oKVxuICBwcm90ZWN0ZWQgZGF0YUNsYXNzTmFtZTogc3RyaW5nO1xuICBASW5wdXQoKVxuICBAT3B0aW9uKClcbiAgcHJvdGVjdGVkIGNvbmZpZ05hbWU6IHN0cmluZztcbiAgQElucHV0KClcbiAgQE9wdGlvbigpXG4gIEBJMThOKFwiaGVhZGVyLnRpdGxlXCIpXG4gIHByaXZhdGUgaGVhZGVyVGl0bGU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihhY3Rpb25Qcm92aWRlcjogUGFycm90c0RhdGFFZGl0b3JBY3Rpb25Qcm92aWRlciwgdmlld1Byb3ZpZGVyOiBQYXJyb3RzRGF0YUVkaXRvclZpZXdQcm92aWRlciwgZGF0YUZhY3Rvcnk6IFBhcnJvdHNEYXRhU2VydmljZUZhY3RvcnksXG4gICAgc2V0dGluZ1NlcnZpY2VGYWN0b3J5OiBQYXJyb3RzRWRpdG9yU2V0dGluZ1NlcnZpY2VGYWN0b3J5LCBwaGxveEFwcFNlcnZpY2U6IFBobG94QXBwSW5mb1NlcnZpY2UsIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXG4gICAgYmdQcm9jZXNzTWdyOiBCYWNrZ3JvdW5kUHJvY2Vzc01hbmFnZXIsIEBJbmplY3QoVmVyc2lvbkhpc3RvcnlNb2RlbEZhY3RvcnkpIHZoTW9kZWxGYWN0b3J5OiBJVmVyc2lvbkhpc3RvcnlNb2RlbEZhY3RvcnksIGluc3RDb25uZWN0aW9uTWdyOiBJbnN0YW5jZUNvbm5lY3Rpb25NYW5hZ2VyKSB7XG4gICAgc3VwZXIoYWN0aW9uUHJvdmlkZXIsIHZpZXdQcm92aWRlciwgZGF0YUZhY3RvcnksIHNldHRpbmdTZXJ2aWNlRmFjdG9yeSwgcGhsb3hBcHBTZXJ2aWNlLCBkaWFsb2dTZXJ2aWNlLCBiZ1Byb2Nlc3NNZ3IsIG51bGwsIG51bGwsIHZoTW9kZWxGYWN0b3J5LCBpbnN0Q29ubmVjdGlvbk1ncik7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgIC8vIHNldCB2YWx1ZSBmcm9tIEBJbnB1dFxuICAgIHRoaXMuc2V0RGF0YUNsYXNzTmFtZSh0aGlzLmRhdGFDbGFzc05hbWUpO1xuICAgIHRoaXMuc2V0Q29uZmlnTmFtZSh0aGlzLmNvbmZpZ05hbWUpO1xuICB9XG5cbiAgcHVibGljIF9pc1ZpZXdNb2RlbEFjdGl2ZShtb2RlbDogVmlld01vZGVsKTogYm9vbGVhbiB7XG4gICAgaWYgKG1vZGVsID09PSBudWxsIHx8IHR5cGVvZiBtb2RlbCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBmb3IgKGxldCB2IG9mIHRoaXMudmlld3MpIHtcbiAgICAgIGlmICh2LmdldE1vZGVsKCkgPT09IG1vZGVsKSB7XG4gICAgICAgIHJldHVybiB2LmlzQWN0aXZlKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIG9uVmlld0J0bkNsaWNrZWQoJGV2ZW50OiBNb3VzZUV2ZW50LCB2aWV3OiBWaWV3TW9kZWwpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dWaWV3KHZpZXcpO1xuICB9XG5cbiAgcHVibGljIGdldE1lbnVNb2RlbEZhY3RvcnkoKTogSU1lbnVNb2RlbEZhY3Rvcnkge1xuICAgIHJldHVybiB0aGlzLm1lbnVNb2RlbEZhY3Rvcnk7XG4gIH1cblxuICBwdWJsaWMgZ2V0RGF0YUNvbXBhcmF0b3IoKTogSURhdGFDb21wYXJhdG9yPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmRhdGFDb21wYXJhdG9yO1xuICB9XG5cbiAgcHVibGljIGlzUGFnZUxvYWRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBuZXdEYXRhT2JqZWN0KCk6IGFueSB7XG4gICAgLy8gbmV3IGRhdGFPYmogZnJvbSBzY2hlbWFcbiAgICBsZXQgcmVzdWx0OiBhbnkgPSB7fTtcblxuICAgIGlmICh0aGlzLmRhdGFTY2hlbWEgIT09IG51bGwgJiYgdGhpcy5kYXRhU2NoZW1hICE9PSB1bmRlZmluZWQpIHtcblxuICAgICAgbGV0IGRhdGFGaWVsZDogRGF0YUZpZWxkW10gPSB0aGlzLmRhdGFTY2hlbWEuZGF0YUZpZWxkcztcblxuICAgICAgaWYgKGRhdGFGaWVsZCAhPT0gbnVsbCAmJiBkYXRhRmllbGQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBmb3IgKGxldCBmaWVsZCBvZiBkYXRhRmllbGQpIHtcbiAgICAgICAgICBsZXQgZk5hbWUgPSBmaWVsZC5uYW1lO1xuICAgICAgICAgIGxldCBmVHlwZSA9IGZpZWxkLnR5cGU7XG5cbiAgICAgICAgICBpZiAoZlR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXN1bHRbZk5hbWVdID0gXCJcIjtcbiAgICAgICAgICB9IGlmIChmVHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIHJlc3VsdFtmTmFtZV0gPSAwO1xuICAgICAgICAgIH0gaWYgKGZUeXBlID09PSAnZGF0ZScpIHtcbiAgICAgICAgICAgIHJlc3VsdFtmTmFtZV0gPSAobmV3IERhdGUoKSkuZ2V0VGltZSgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXN1bHRbZk5hbWVdID0gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25FZGl0b3JTZXR0aW5nTG9hZGVkKHNldHRpbmdzOiBhbnkpOiB2b2lkIHtcbiAgICAvLyBkbyBzdGhpbmcgd2hlbiByZWxvYWQgZWRpdG9yIHNldHRpbmdcbiAgfVxuXG4gIHB1YmxpYyBnZXRIZWFkZXJUaXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmhlYWRlclRpdGxlO1xuICB9XG5cbiAgcHVibGljIHNldEhlYWRlclRpdGxlKGhlYWRlclRpdGxlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmhlYWRlclRpdGxlID0gaGVhZGVyVGl0bGU7XG4gIH1cbn1cbiJdfQ==