UNPKG

@netgrif/components-core

Version:

Netgrif Application engine frontend core Angular library

135 lines 22.7 kB
import { AbstractPanelWithHeaderBindingComponent } from './panel-with-header-binding'; import { toMoment } from '../../resources/types/nae-date-type'; import { DATE_FORMAT_STRING, DATE_TIME_FORMAT_STRING } from '../../moment/time-formats'; import { Component, Optional } from '@angular/core'; import * as i0 from "@angular/core"; import * as i1 from "@ngx-translate/core"; import * as i2 from "@angular/common"; import * as i3 from "../../header/services/overflow.service"; export class AbstractPanelWithImmediateDataComponent extends AbstractPanelWithHeaderBindingComponent { _translate; _currencyPipe; _overflowService; constructor(_translate, _currencyPipe, _overflowService) { super(_overflowService); this._translate = _translate; this._currencyPipe = _currencyPipe; this._overflowService = _overflowService; } ngOnDestroy() { super.ngOnDestroy(); } parseImmediateValue(immediate) { if (immediate && immediate.value !== undefined || immediate && immediate.type === 'button') { switch (immediate.type) { case 'date': return { value: toMoment(immediate.value).format(DATE_FORMAT_STRING), icon: 'event', type: immediate.type }; case 'dateTime': return { value: toMoment(immediate.value).format(DATE_TIME_FORMAT_STRING), icon: 'event', type: immediate.type }; case 'enumeration': return { value: this.getTranslation(immediate.value), icon: undefined, type: immediate.type }; case 'multichoice': return { value: immediate.value.map(it => this.getTranslation(it)).join(', '), icon: undefined, type: immediate.type }; case 'enumeration_map': return { value: this.getTranslation(immediate.options[immediate.value]), icon: undefined, type: immediate.type }; case 'multichoice_map': return { value: immediate.value.map(it => this.getTranslation(immediate.options[it])).join(', '), icon: undefined, type: immediate.type }; case 'file': return { value: immediate.value?.name, icon: 'insert_drive_file', type: immediate.type }; case 'fileList': return { value: immediate.value?.namesPaths.map(obj => obj.name).join(', '), icon: 'file_copy', type: immediate.type }; case 'userList': return { value: immediate.value?.userValues.map(obj => obj.fullName).join(', '), icon: 'account_circle', type: immediate.type }; case 'user': return { value: immediate.value.fullName, icon: 'account_circle', type: immediate.type }; case 'boolean': return { value: this._translate.instant('dataField.values.boolean.' + immediate.value), icon: undefined, type: immediate.type }; case 'button': let buttonValue; if (immediate.placeholder?.defaultValue !== undefined) { buttonValue = this.getTranslation(immediate.placeholder); } else if (immediate.name?.defaultValue !== undefined) { buttonValue = this.getTranslation(immediate.name); } else { buttonValue = this._translate.instant('dialog.submit'); } return { value: buttonValue, icon: undefined, type: immediate.type }; case 'filter': return { value: undefined, icon: undefined, type: immediate.type, filterMetadata: { filterMetadata: immediate.filterMetadata, allowedNets: immediate.allowedNets } }; case 'number': if (immediate.format !== undefined) { return this.formatCurrencyPipe(immediate.value, immediate.format.code, immediate.format.fractionSize, immediate.format.locale, immediate.type); } else if (immediate.component?.name === 'currency') { return this.formatCurrencyPipe(immediate.value, immediate.component.properties['code'], immediate.component.properties['fractionSize'], immediate.component.properties['locale'], immediate.type); } return { value: immediate.value, icon: undefined, type: immediate.type }; default: return { value: immediate.value, icon: undefined, type: immediate.type }; } } else { return { value: '', icon: '', type: '' }; } } getTranslation(i18n) { const locale = this._translate.currentLang; return (i18n && i18n.translations && locale in i18n.translations) ? i18n.translations[locale] : (i18n?.defaultValue ?? ''); } formatCurrencyPipe(value, code, fraction, locale, type) { return { value: this._currencyPipe.transform(parseFloat(value), code, 'symbol', '1.' + fraction + '-' + fraction, locale), icon: undefined, type }; } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AbstractPanelWithImmediateDataComponent, deps: [{ token: i1.TranslateService }, { token: i2.CurrencyPipe }, { token: i3.OverflowService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AbstractPanelWithImmediateDataComponent, selector: "ncc-abstract-panel-with-immediate", usesInheritance: true, ngImport: i0, template: '', isInline: true }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AbstractPanelWithImmediateDataComponent, decorators: [{ type: Component, args: [{ selector: 'ncc-abstract-panel-with-immediate', template: '' }] }], ctorParameters: () => [{ type: i1.TranslateService }, { type: i2.CurrencyPipe }, { type: i3.OverflowService, decorators: [{ type: Optional }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZWwtd2l0aC1pbW1lZGlhdGUtZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvcGFuZWwvYWJzdHJhY3QvcGFuZWwtd2l0aC1pbW1lZGlhdGUtZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUNBQXVDLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNwRixPQUFPLEVBQVUsUUFBUSxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFDLGtCQUFrQixFQUFFLHVCQUF1QixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFFdEYsT0FBTyxFQUFDLFNBQVMsRUFBYSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7Ozs7O0FBVzdELE1BQU0sT0FBZ0IsdUNBQXdDLFNBQVEsdUNBQXVDO0lBQ3pFO0lBQ0E7SUFDWTtJQUY1QyxZQUFnQyxVQUE0QixFQUM1QixhQUEyQixFQUNmLGdCQUFpQztRQUN6RSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUhJLGVBQVUsR0FBVixVQUFVLENBQWtCO1FBQzVCLGtCQUFhLEdBQWIsYUFBYSxDQUFjO1FBQ2YscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtJQUU3RSxDQUFDO0lBRUQsV0FBVztRQUNQLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRVMsbUJBQW1CLENBQUMsU0FBd0I7UUFDbEQsSUFBSSxTQUFTLElBQUksU0FBUyxDQUFDLEtBQUssS0FBSyxTQUFTLElBQUksU0FBUyxJQUFJLFNBQVMsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFO1lBQ3hGLFFBQVEsU0FBUyxDQUFDLElBQUksRUFBRTtnQkFDcEIsS0FBSyxNQUFNO29CQUNQLE9BQU87d0JBQ0gsS0FBSyxFQUFFLFFBQVEsQ0FBQyxTQUFTLENBQUMsS0FBZ0IsQ0FBQyxD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LEVBQUUsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFUyxrQkFBa0IsQ0FBQyxLQUFVLEVBQUUsSUFBWSxFQUFFLFFBQWdCLEVBQUUsTUFBYyxFQUFFLElBQVk7UUFDakcsT0FBTztZQUNILEtBQUssRUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FDeEIsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUNqQixJQUFJLEVBQ0osUUFBUSxFQUNSLElBQUksR0FBRyxRQUFRLEdBQUcsR0FBRyxHQUFHLFFBQVEsRUFDaEMsTUFBTSxDQUFDO1lBQ2YsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJO1NBQ3hCLENBQUM7SUFDTixDQUFDO3dHQXRIaUIsdUNBQXVDOzRGQUF2Qyx1Q0FBdUMsZ0dBRi9DLEVBQUU7OzRGQUVNLHVDQUF1QztrQkFKNUQsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsbUNBQW1DO29CQUM3QyxRQUFRLEVBQUUsRUFBRTtpQkFDZjs7MEJBSTBCLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Fic3RyYWN0UGFuZWxXaXRoSGVhZGVyQmluZGluZ0NvbXBvbmVudH0gZnJvbSAnLi9wYW5lbC13aXRoLWhlYWRlci1iaW5kaW5nJztcbmltcG9ydCB7TmFlRGF0ZSwgdG9Nb21lbnR9IGZyb20gJy4uLy4uL3Jlc291cmNlcy90eXBlcy9uYWUtZGF0ZS10eXBlJztcbmltcG9ydCB7REFURV9GT1JNQVRfU1RSSU5HLCBEQVRFX1RJTUVfRk9STUFUX1NUUklOR30gZnJvbSAnLi4vLi4vbW9tZW50L3RpbWUtZm9ybWF0cyc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtDb21wb25lbnQsIE9uRGVzdHJveSwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGZWF0dXJlZFZhbHVlfSBmcm9tICcuL2ZlYXR1cmVkLXZhbHVlJztcbmltcG9ydCB7Q3VycmVuY3lQaXBlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtJbW1lZGlhdGVEYXRhfSBmcm9tICcuLi8uLi9yZXNvdXJjZXMvaW50ZXJmYWNlL2ltbWVkaWF0ZS1kYXRhJztcbmltcG9ydCB7T3ZlcmZsb3dTZXJ2aWNlfSBmcm9tICcuLi8uLi9oZWFkZXIvc2VydmljZXMvb3ZlcmZsb3cuc2VydmljZSc7XG5pbXBvcnQge0kxOG5GaWVsZFZhbHVlfSBmcm9tIFwiLi4vLi4vZGF0YS1maWVsZHMvaTE4bi1maWVsZC9tb2RlbHMvaTE4bi1maWVsZC12YWx1ZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25jYy1hYnN0cmFjdC1wYW5lbC13aXRoLWltbWVkaWF0ZScsXG4gICAgdGVtcGxhdGU6ICcnXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0UGFuZWxXaXRoSW1tZWRpYXRlRGF0YUNvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0UGFuZWxXaXRoSGVhZGVyQmluZGluZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2N1cnJlbmN5UGlwZTogQ3VycmVuY3lQaXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBwcm90ZWN0ZWQgX292ZXJmbG93U2VydmljZTogT3ZlcmZsb3dTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKF9vdmVyZmxvd1NlcnZpY2UpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBwYXJzZUltbWVkaWF0ZVZhbHVlKGltbWVkaWF0ZTogSW1tZWRpYXRlRGF0YSk6IEZlYXR1cmVkVmFsdWUge1xuICAgICAgICBpZiAoaW1tZWRpYXRlICYmIGltbWVkaWF0ZS52YWx1ZSAhPT0gdW5kZWZpbmVkIHx8IGltbWVkaWF0ZSAmJiBpbW1lZGlhdGUudHlwZSA9PT0gJ2J1dHRvbicpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoaW1tZWRpYXRlLnR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0b01vbWVudChpbW1lZGlhdGUudmFsdWUgYXMgTmFlRGF0ZSkuZm9ybWF0KERBVEVfRk9STUFUX1NUUklORyksXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnZXZlbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogaW1tZWRpYXRlLnR5cGVcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjYXNlICdkYXRlVGltZSc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdG9Nb21lbnQoaW1tZWRpYXRlLnZhbHVlIGFzIE5hZURhdGUpLmZvcm1hdChEQVRFX1RJTUVfRk9STUFUX1NUUklORyksXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnZXZlbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogaW1tZWRpYXRlLnR5cGVcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjYXNlICdlbnVtZXJhdGlvbic6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7dmFsdWU6IHRoaXMuZ2V0VHJhbnNsYXRpb24oaW1tZWRpYXRlLnZhbHVlKSwgaWNvbjogdW5kZWZpbmVkLCB0eXBlOiBpbW1lZGlhdGUudHlwZX07XG4gICAgICAgICAgICAgICAgY2FzZSAnbXVsdGljaG9pY2UnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGltbWVkaWF0ZS52YWx1ZS5tYXAoaXQgPT4gdGhpcy5nZXRUcmFuc2xhdGlvbihpdCkpLmpvaW4oJywgJyksXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBpbW1lZGlhdGUudHlwZVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNhc2UgJ2VudW1lcmF0aW9uX21hcCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy5nZXRUcmFuc2xhdGlvbihpbW1lZGlhdGUub3B0aW9uc1tpbW1lZGlhdGUudmFsdWVdKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IGltbWVkaWF0ZS50eXBlXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY2FzZSAnbXVsdGljaG9pY2VfbWFwJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBpbW1lZGlhdGUudmFsdWUubWFwKGl0ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRUcmFuc2xhdGlvbihpbW1lZGlhdGUub3B0aW9uc1tpdF0pKS5qb2luKCcsICcpLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogaW1tZWRpYXRlLnR5cGVcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjYXNlICdmaWxlJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt2YWx1ZTogaW1tZWRpYXRlLnZhbHVlPy5uYW1lLCBpY29uOiAnaW5zZXJ0X2RyaXZlX2ZpbGUnLCB0eXBlOiBpbW1lZGlhdGUudHlwZX07XG4gICAgICAgICAgICAgICAgY2FzZSAnZmlsZUxpc3QnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGltbWVkaWF0ZS52YWx1ZT8ubmFtZXNQYXRocy5tYXAob2JqID0+IG9iai5uYW1lKS5qb2luKCcsICcpLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJ2ZpbGVfY29weScsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBpbW1lZGlhdGUudHlwZVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNhc2UgJ3VzZXJMaXN0JzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt2YWx1ZTogaW1tZWRpYXRlLnZhbHVlPy51c2VyVmFsdWVzLm1hcChvYmogPT4gb2JqLmZ1bGxOYW1lKS5qb2luKCcsICcpLCBpY29uOiAnYWNjb3VudF9jaXJjbGUnLCB0eXBlOiBpbW1lZGlhdGUudHlwZX07XG4gICAgICAgICAgICAgICAgY2FzZSAndXNlcic6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7dmFsdWU6IGltbWVkaWF0ZS52YWx1ZS5mdWxsTmFtZSwgaWNvbjogJ2FjY291bnRfY2lyY2xlJywgdHlwZTogaW1tZWRpYXRlLnR5cGV9O1xuICAgICAgICAgICAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMuX3RyYW5zbGF0ZS5pbnN0YW50KCdkYXRhRmllbGQudmFsdWVzLmJvb2xlYW4uJyArIGltbWVkaWF0ZS52YWx1ZSksXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiB1bmRlZmluZWQsIHR5cGU6IGltbWVkaWF0ZS50eXBlXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY2FzZSAnYnV0dG9uJzpcbiAgICAgICAgICAgICAgICAgICAgbGV0IGJ1dHRvblZhbHVlOiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgIGlmICgoaW1tZWRpYXRlIGFzIGFueSkucGxhY2Vob2xkZXI/LmRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBidXR0b25WYWx1ZSA9IHRoaXMuZ2V0VHJhbnNsYXRpb24oKGltbWVkaWF0ZSBhcyBhbnkpLnBsYWNlaG9sZGVyKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpbW1lZGlhdGUubmFtZT8uZGVmYXVsdFZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvblZhbHVlID0gdGhpcy5nZXRUcmFuc2xhdGlvbihpbW1lZGlhdGUubmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBidXR0b25WYWx1ZSA9IHRoaXMuX3RyYW5zbGF0ZS5pbnN0YW50KCdkaWFsb2cuc3VibWl0Jyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBidXR0b25WYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IGltbWVkaWF0ZS50eXBlXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY2FzZSAnZmlsdGVyJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB1bmRlZmluZWQsIGljb246IHVuZGVmaW5lZCwgdHlwZTogaW1tZWRpYXRlLnR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJNZXRhZGF0YToge2ZpbHRlck1ldGFkYXRhOiBpbW1lZGlhdGUuZmlsdGVyTWV0YWRhdGEsIGFsbG93ZWROZXRzOiBpbW1lZGlhdGUuYWxsb3dlZE5ldHN9XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgICAgICAgICAgICAgaWYgKGltbWVkaWF0ZS5mb3JtYXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0Q3VycmVuY3lQaXBlKGltbWVkaWF0ZS52YWx1ZSwgaW1tZWRpYXRlLmZvcm1hdC5jb2RlLCBpbW1lZGlhdGUuZm9ybWF0LmZyYWN0aW9uU2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbW1lZGlhdGUuZm9ybWF0LmxvY2FsZSwgaW1tZWRpYXRlLnR5cGUpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGltbWVkaWF0ZS5jb21wb25lbnQ/Lm5hbWUgPT09ICdjdXJyZW5jeScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1hdEN1cnJlbmN5UGlwZShpbW1lZGlhdGUudmFsdWUsIGltbWVkaWF0ZS5jb21wb25lbnQucHJvcGVydGllc1snY29kZSddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltbWVkaWF0ZS5jb21wb25lbnQucHJvcGVydGllc1snZnJhY3Rpb25TaXplJ10sIGltbWVkaWF0ZS5jb21wb25lbnQucHJvcGVydGllc1snbG9jYWxlJ10sIGltbWVkaWF0ZS50eXBlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3ZhbHVlOiBpbW1lZGlhdGUudmFsdWUsIGljb246IHVuZGVmaW5lZCwgdHlwZTogaW1tZWRpYXRlLnR5cGV9O1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7dmFsdWU6IGltbWVkaWF0ZS52YWx1ZSwgaWNvbjogdW5kZWZpbmVkLCB0eXBlOiBpbW1lZGlhdGUudHlwZX07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4ge3ZhbHVlOiAnJywgaWNvbjogJycsIHR5cGU6ICcnfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRUcmFuc2xhdGlvbihpMThuOiBJMThuRmllbGRWYWx1ZSB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGxvY2FsZSA9IHRoaXMuX3RyYW5zbGF0ZS5jdXJyZW50TGFuZztcbiAgICAgICAgcmV0dXJuIChpMThuICYmIGkxOG4udHJhbnNsYXRpb25zICYmIGxvY2FsZSBpbiBpMThuLnRyYW5zbGF0aW9ucylcbiAgICAgICAgICAgID8gaTE4bi50cmFuc2xhdGlvbnNbbG9jYWxlXVxuICAgICAgICAgICAgOiAoaTE4bj8uZGVmYXVsdFZhbHVlID8/ICcnKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZm9ybWF0Q3VycmVuY3lQaXBlKHZhbHVlOiBhbnksIGNvZGU6IHN0cmluZywgZnJhY3Rpb246IG51bWJlciwgbG9jYWxlOiBzdHJpbmcsIHR5cGU6IHN0cmluZykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdmFsdWU6XG4gICAgICAgICAgICAgICAgdGhpcy5fY3VycmVuY3lQaXBlLnRyYW5zZm9ybShcbiAgICAgICAgICAgICAgICAgICAgcGFyc2VGbG9hdCh2YWx1ZSksXG4gICAgICAgICAgICAgICAgICAgIGNvZGUsXG4gICAgICAgICAgICAgICAgICAgICdzeW1ib2wnLFxuICAgICAgICAgICAgICAgICAgICAnMS4nICsgZnJhY3Rpb24gKyAnLScgKyBmcmFjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgbG9jYWxlKSxcbiAgICAgICAgICAgIGljb246IHVuZGVmaW5lZCwgdHlwZVxuICAgICAgICB9O1xuICAgIH1cbn1cbiJdfQ==