/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; import { NgModule, Component, Input, Output, EventEmitter, forwardRef } from '@angular/core'; import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms'; import { CommonModule } from '@angular/common'; import { SharedModule } from 'primeng/primeng'; import { DxDateBoxModule } from 'devextreme-angular/ui/date-box'; import { Common } from '../_services/common.service'; import { formatDate } from "devextreme/localization"; import moment from 'moment-es6'; import { locale } from 'devextreme/localization'; import 'devextreme-intl'; import { baseZIndex } from 'devextreme/ui/overlay'; // # Calendar TH locale('th'); // # Calendar TH baseZIndex(9999); export class SocDateBoxComponent { /** * @param {?} common */ constructor(common) { this.common = common; this.id = ''; this.width = '100%'; this.type = 'date'; this.max = undefined; this.min = undefined; this.acceptCustomValue = true; this.maxZoomLevel = 'month'; this.minZoomLevel = 'century'; this.valueChange = new EventEmitter(); this.openOnFieldClick = true; this.disabled = false; this.interval = 30; this.showAnalogClock = false; this.format = { formatter: (date) => { if (this.type === 'datetime') { return formatDate(date, 'shortDateShortTime'); } else if (this.type === 'time') { return formatDate(date, 'shortTime'); } else { return formatDate(date, 'shortDate'); } }, parser: (date) => { /** @type {?} */ let format = 'D/M/YYYY'; if (this.type === 'datetime') { format = 'D/M/YYYY HH:mm'; } else if (this.type === 'time') { format = 'HH:mm'; } /** @type {?} */ const dateFormated = moment(date, format, true).subtract(543, 'year').toDate(); return dateFormated; } }; /** * START Bind Value */ this.onModelChange = () => { }; this.onModelTouched = () => { }; } /** * @return {?} */ ngOnInit() { return tslib_1.__awaiter(this, void 0, void 0, function* () { }); } /** * @return {?} */ ngAfterViewInit() { } /** * @return {?} */ onOpened() { this.common.fnChangeCalendarYear(); // # Calendar TH if (this.maxZoomLevel === 'year' || this.maxZoomLevel === 'decade') { this.common.fnChangeCalendarYearOnce(); // # Calendar TH } /** * * SECTION แก้ปัญหา ปฏิทินไม่แสดงใน modal ที่ prod @type {?} */ const element = document.querySelector('.dx-overlay-wrapper.dx-dropdowneditor-overlay.dx-popup-wrapper.dx-datebox-wrapper.dx-datebox-wrapper-date.dx-datebox-wrapper-calendar'); /** @type {?} */ const subElement = document.querySelector('.dx-overlay-wrapper.dx-dropdowneditor-overlay.dx-popup-wrapper.dx-datebox-wrapper.dx-datebox-wrapper-date.dx-datebox-wrapper-calendar > .dx-overlay-content.dx-popup-normal'); if (element) { /** @type {?} */ const style = element.getAttribute('style'); /** @type {?} */ const newStyle = style.replace('z-index: 1501;', 'z-index: 2050;'); console.log('LOG: SocDateBoxComponent -> onOpened -> newStyle element', newStyle); element.setAttribute('style', newStyle); } if (subElement) { /** @type {?} */ const style = subElement.getAttribute('style'); /** @type {?} */ const newStyle = style.replace('z-index: 1501;', 'z-index: 2050;'); console.log('LOG: SocDateBoxComponent -> onOpened -> newStyle subElement', newStyle); subElement.setAttribute('style', newStyle); } /** !SECTION */ } /** * @param {?} e * @return {?} */ onValueChanged(e) { console.log("​SocDateBoxComponent -> onValueChanged -> e", e); this.valueChange.emit(e.value); } /** * @param {?} value * @return {?} */ writeValue(value) { } /** * @param {?} fn * @return {?} */ registerOnChange(fn) { } /** * @param {?} fn * @return {?} */ registerOnTouched(fn) { } } SocDateBoxComponent.decorators = [ { type: Component, args: [{ selector: 'soc-date-box', providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SocDateBoxComponent), multi: true }], template: ` ` }] } ]; /** @nocollapse */ SocDateBoxComponent.ctorParameters = () => [ { type: Common } ]; SocDateBoxComponent.propDecorators = { id: [{ type: Input }], width: [{ type: Input }], type: [{ type: Input }], value: [{ type: Input }], max: [{ type: Input }], min: [{ type: Input }], acceptCustomValue: [{ type: Input }], maxZoomLevel: [{ type: Input }], minZoomLevel: [{ type: Input }], valueChange: [{ type: Output }], openOnFieldClick: [{ type: Input }], disabled: [{ type: Input }], interval: [{ type: Input }], showAnalogClock: [{ type: Input }] }; if (false) { /** @type {?} */ SocDateBoxComponent.prototype.id; /** @type {?} */ SocDateBoxComponent.prototype.width; /** @type {?} */ SocDateBoxComponent.prototype.type; /** @type {?} */ SocDateBoxComponent.prototype.value; /** @type {?} */ SocDateBoxComponent.prototype.max; /** @type {?} */ SocDateBoxComponent.prototype.min; /** @type {?} */ SocDateBoxComponent.prototype.acceptCustomValue; /** @type {?} */ SocDateBoxComponent.prototype.maxZoomLevel; /** @type {?} */ SocDateBoxComponent.prototype.minZoomLevel; /** @type {?} */ SocDateBoxComponent.prototype.valueChange; /** @type {?} */ SocDateBoxComponent.prototype.openOnFieldClick; /** @type {?} */ SocDateBoxComponent.prototype.disabled; /** @type {?} */ SocDateBoxComponent.prototype.interval; /** @type {?} */ SocDateBoxComponent.prototype.showAnalogClock; /** @type {?} */ SocDateBoxComponent.prototype.format; /** * START Bind Value * @type {?} */ SocDateBoxComponent.prototype.onModelChange; /** @type {?} */ SocDateBoxComponent.prototype.onModelTouched; /** @type {?} */ SocDateBoxComponent.prototype.common; } export class SharedDateBoxModule { } SharedDateBoxModule.decorators = [ { type: NgModule, args: [{ imports: [CommonModule, FormsModule, SharedModule, DxDateBoxModule], exports: [SocDateBoxComponent, SharedModule], declarations: [SocDateBoxComponent], },] } ]; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29jLWRhdGUtYm94LmpzIiwic291cmNlUm9vdCI6Im5nOi8vc29jLWFwcC1saWJyYXJ5LyIsInNvdXJjZXMiOlsibGliL190ZW1wbGF0ZS9zb2MtZGF0ZS1ib3gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQ0gsUUFBUSxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQ3ZFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQXdCLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUcvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRCxPQUFPLE1BQU0sTUFBTSxZQUFZLENBQUM7QUFDaEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pELE9BQU8saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHVCQUF1QixDQUFDOztBQUVqRCxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDYixVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7QUFjakIsTUFBTTs7OztJQW9DRixZQUFvQixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtrQkFuQ3BCLEVBQUU7cUJBQ0MsTUFBTTtvQkFDUCxNQUFNO21CQUVQLFNBQVM7bUJBQ1QsU0FBUztpQ0FDSyxJQUFJOzRCQUNULE9BQU87NEJBQ1AsU0FBUzsyQkFDYSxJQUFJLFlBQVksRUFBVTtnQ0FDNUMsSUFBSTt3QkFDWixLQUFL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QUFXOzs7OztJQUN4QyxpQkFBaUIsQ0FBQyxFQUFZLEtBQVc7OztZQTdGNUMsU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxjQUFjO2dCQUN4QixTQUFTLEVBQUUsQ0FBQzt3QkFDUixPQUFPLEVBQUUsaUJBQWlCO3dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDO3dCQUNsRCxLQUFLLEVBQUUsSUFBSTtxQkFDZCxDQUFDO2dCQUNGLFFBQVEsRUFBRTs7OztDQUliO2FBQ0E7Ozs7WUFyQlEsTUFBTTs7O2lCQXVCVixLQUFLO29CQUNMLEtBQUs7bUJBQ0wsS0FBSztvQkFDTCxLQUFLO2tCQUNMLEtBQUs7a0JBQ0wsS0FBSztnQ0FDTCxLQUFLOzJCQUNMLEtBQUs7MkJBQ0wsS0FBSzswQkFDTCxNQUFNOytCQUNOLEtBQUs7dUJBQ0wsS0FBSzt1QkFDTCxLQUFLOzhCQUNMLEtBQUs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE0RVYsTUFBTTs7O1lBTEwsUUFBUSxTQUFDO2dCQUNOLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLGVBQWUsQ0FBQztnQkFDbkUsT0FBTyxFQUFFLENBQUMsbUJBQW1CLEVBQUUsWUFBWSxDQUFDO2dCQUM1QyxZQUFZLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQzthQUN0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgTmdNb2R1bGUsIENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIEFmdGVyVmlld0luaXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1IsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFNoYXJlZE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvcHJpbWVuZyc7XG4vLyBpbXBvcnQgeyBSZXF1ZXN0IH0gZnJvbSAnLi4vX3NlcnZpY2VzL3JlcXVlc3Quc2VydmljZSc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBEeERhdGVCb3hNb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvZGF0ZS1ib3gnO1xuaW1wb3J0IHsgQ29tbW9uIH0gZnJvbSAnLi4vX3NlcnZpY2VzL2NvbW1vbi5zZXJ2aWNlJztcbmltcG9ydCB7IGZvcm1hdERhdGUgfSBmcm9tIFwiZGV2ZXh0cmVtZS9sb2NhbGl6YXRpb25cIjtcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50LWVzNic7XG5pbXBvcnQgeyBsb2NhbGUgfSBmcm9tICdkZXZleHRyZW1lL2xvY2FsaXphdGlvbic7IC8vICMgQ2FsZW5kYXIgVEhcbmltcG9ydCAnZGV2ZXh0cmVtZS1pbnRsJztcbmltcG9ydCB7YmFzZVpJbmRleH0gZnJvbSAnZGV2ZXh0cmVtZS91aS9vdmVybGF5Jztcbi8vICMgQ2FsZW5kYXIgVEhcbmxvY2FsZSgndGgnKTsvLyAjIENhbGVuZGFyIFRIXG5iYXNlWkluZGV4KDk5OTkpO1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzb2MtZGF0ZS1ib3gnLFxuICAgIHByb3ZpZGVyczogW3tcbiAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNvY0RhdGVCb3hDb21wb25lbnQpLFxuICAgICAgICBtdWx0aTogdHJ1ZVxuICAgIH1dLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgPGR4LWRhdGUtYm94IFtzaG93QW5hbG9nQ2xvY2tdPVwic2hvd0FuYWxvZ0Nsb2NrXCIgW2lkXT1cImlkXCIgWyh2YWx1ZSldPVwidmFsdWVcIiBbdHlwZV09XCJ0eXBlXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW3dpZHRoXT1cIndpZHRoXCIgW2ludGVydmFsXT1cImludGVydmFsXCIgW2FjY2VwdEN1c3RvbVZhbHVlXT1cInRydWVcIiBbZGlzcGxheUZvcm1hdF09XCJmb3JtYXRcIiBpbnZhbGlkRGF0ZU1lc3NhZ2U9XCLguKfguLHguJnguJfguLXguYjguYTguKHguYjguJbguLnguIHguJXguYnguK3guIcg4LiB4Lij4Li44LiT4Liy4LiB4Lij4Lit4LiB4LmA4Lib4LmH4LiZIOC4p+C4seC4mS/guYDguJTguLfguK3guJkv4Lib4Li1XCJcbiAgICBbb3Blbk9uRmllbGRDbGlja109XCJvcGVuT25GaWVsZENsaWNrXCIgKG9uT3BlbmVkKT1cIm9uT3BlbmVkKClcIiAob25WYWx1ZUNoYW5nZWQpPVwib25WYWx1ZUNoYW5nZWQoJGV2ZW50KVwiIFttYXhdPVwibWF4XCIgW21pbl09XCJtaW5cIiBbbWF4Wm9vbUxldmVsXT1cIm1heFpvb21MZXZlbFwiIFttaW5ab29tTGV2ZWxdPVwibWluWm9vbUxldmVsXCI+PC9keC1kYXRlLWJveD5cblxuYFxufSlcbmV4cG9ydCBjbGFzcyBTb2NEYXRlQm94Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQElucHV0KCkgaWQgPSAnJztcbiAgICBASW5wdXQoKSB3aWR0aCA9ICcxMDAlJztcbiAgICBASW5wdXQoKSB0eXBlID0gJ2RhdGUnO1xuICAgIEBJbnB1dCgpIHZhbHVlOiBhbnk7XG4gICAgQElucHV0KCkgbWF4ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIG1pbiA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBhY2NlcHRDdXN0b21WYWx1ZSA9IHRydWU7XG4gICAgQElucHV0KCkgbWF4Wm9vbUxldmVsID0gJ21vbnRoJztcbiAgICBASW5wdXQoKSBtaW5ab29tTGV2ZWwgPSAnY2VudHVyeSc7XG4gICAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICAgIEBJbnB1dCgpIG9wZW5PbkZpZWxkQ2xpY2sgPSB0cnVlO1xuICAgIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gICAgQElucHV0KCkgaW50ZXJ2YWw6IG51bWJlciA9IDMwO1xuICAgIEBJbnB1dCgpIHNob3dBbmFsb2dDbG9jazogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGZvcm1hdCA9IHtcbiAgICAgICAgZm9ybWF0dGVyOiAoZGF0ZSkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0gJ2RhdGV0aW1lJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBmb3JtYXREYXRlKGRhdGUsICdzaG9ydERhdGVTaG9ydFRpbWUnKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAndGltZScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZm9ybWF0RGF0ZShkYXRlLCAnc2hvcnRUaW1lJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBmb3JtYXREYXRlKGRhdGUsICdzaG9ydERhdGUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcGFyc2VyOiAoZGF0ZSkgPT4ge1xuICAgICAgICAgICAgbGV0IGZvcm1hdCA9ICdEL00vWVlZWSc7XG4gICAgICAgICAgICBpZiAodGhpcy50eXBlID09PSAnZGF0ZXRpbWUnKSB7XG4gICAgICAgICAgICAgICAgZm9ybWF0ID0gJ0QvTS9ZWVlZIEhIOm1tJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAndGltZScpIHtcbiAgICAgICAgICAgICAgICBmb3JtYXQgPSAnSEg6bW0nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgZGF0ZUZvcm1hdGVkID0gbW9tZW50KGRhdGUsIGZvcm1hdCwgdHJ1ZSkuc3VidHJhY3QoNTQzLCAneWVhcicpLnRvRGF0ZSgpO1xuICAgICAgICAgICAgcmV0dXJuIGRhdGVGb3JtYXRlZDtcbiAgICAgICAgfVxuICAgIH07XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjb21tb246IENvbW1vbiwpIHsgfVxuICAgIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIH1cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgfVxuICAgIG9uT3BlbmVkKCkge1xuICAgICAgICB0aGlzLmNvbW1vbi5mbkNoYW5nZUNhbGVuZGFyWWVhcigpOyAvLyAjIENhbGVuZGFyIFRIXG4gICAgICAgIGlmICh0aGlzLm1heFpvb21MZXZlbCA9PT0gJ3llYXInIHx8IHRoaXMubWF4Wm9vbUxldmVsID09PSAnZGVjYWRlJykge1xuICAgICAgICAgICAgdGhpcy5jb21tb24uZm5DaGFuZ2VDYWxlbmRhclllYXJPbmNlKCk7IC8vICMgQ2FsZW5kYXIgVEhcbiAgICAgICAgfVxuICAgICAgICAvKiogU0VDVElPTiDguYHguIHguYnguJvguLHguI3guKvguLIg4Lib4LiP4Li04LiX4Li04LiZ4LmE4Lih4LmI4LmB4Liq4LiU4LiH4LmD4LiZIG1vZGFsIOC4l+C4teC5iCBwcm9kICovXG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuZHgtb3ZlcmxheS13cmFwcGVyLmR4LWRyb3Bkb3duZWRpdG9yLW92ZXJsYXkuZHgtcG9wdXAtd3JhcHBlci5keC1kYXRlYm94LXdyYXBwZXIuZHgtZGF0ZWJveC13cmFwcGVyLWRhdGUuZHgtZGF0ZWJveC13cmFwcGVyLWNhbGVuZGFyJyk7XG4gICAgICAgIGNvbnN0IHN1YkVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuZHgtb3ZlcmxheS13cmFwcGVyLmR4LWRyb3Bkb3duZWRpdG9yLW92ZXJsYXkuZHgtcG9wdXAtd3JhcHBlci5keC1kYXRlYm94LXdyYXBwZXIuZHgtZGF0ZWJveC13cmFwcGVyLWRhdGUuZHgtZGF0ZWJveC13cmFwcGVyLWNhbGVuZGFyID4gLmR4LW92ZXJsYXktY29udGVudC5keC1wb3B1cC1ub3JtYWwnKTtcbiAgICAgICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IHN0eWxlID0gZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3N0eWxlJyk7XG4gICAgICAgICAgICBjb25zdCBuZXdTdHlsZSA9IHN0eWxlLnJlcGxhY2UoJ3otaW5kZXg6IDE1MDE7JywgJ3otaW5kZXg6IDIwNTA7Jyk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnTE9HOiBTb2NEYXRlQm94Q29tcG9uZW50IC0+IG9uT3BlbmVkIC0+IG5ld1N0eWxlIGVsZW1lbnQnLCBuZXdTdHlsZSk7XG4gICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCBuZXdTdHlsZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN1YkVsZW1lbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IHN0eWxlID0gc3ViRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3N0eWxlJyk7XG4gICAgICAgICAgICBjb25zdCBuZXdTdHlsZSA9IHN0eWxlLnJlcGxhY2UoJ3otaW5kZXg6IDE1MDE7JywgJ3otaW5kZXg6IDIwNTA7Jyk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnTE9HOiBTb2NEYXRlQm94Q29tcG9uZW50IC0+IG9uT3BlbmVkIC0+IG5ld1N0eWxlIHN1YkVsZW1lbnQnLCBuZXdTdHlsZSk7XG4gICAgICAgICAgICBzdWJFbGVtZW50LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCBuZXdTdHlsZSk7XG4gICAgICAgIH1cbiAgICAgICAgLyoqICFTRUNUSU9OICovXG4gICAgfVxuICAgIG9uVmFsdWVDaGFuZ2VkKGU6YW55KSB7XG5cdFx0Y29uc29sZS5sb2coXCLigItTb2NEYXRlQm94Q29tcG9uZW50IC0+IG9uVmFsdWVDaGFuZ2VkIC0+IGVcIiwgZSlcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KGUudmFsdWUpO1xuICAgIH1cbiAgICAvLyBkaXNwbGF5Rm9ybWF0ICh2YWx1ZSkge1xuICAgIC8vICAgICBjb25zb2xlLmxvZyhcIuKAi1NvY0RhdGVCb3hDb21wb25lbnQgLT4gZGlzcGxheUZvcm1hdCAtPiB2YWx1ZVwiLCB2YWx1ZSlcbiAgICAvLyAgICAgY29uc3QgeWVhciA9IG1vbWVudCh2YWx1ZSkuZ2V0KCd5ZWFyJyk7XG5cdC8vIFx0Y29uc29sZS5sb2coXCLigItTb2NEYXRlQm94Q29tcG9uZW50IC0+IGRpc3BsYXlGb3JtYXQgLT4geWVhclwiLCB5ZWFyKVxuICAgIC8vICAgICAvLyBsZXQgZGF0ZVN0cmluZyA9IGZvcm1hdERhdGUodmFsdWUsIFwibG9uZ0RhdGVcIik7XG4gICAgLy8gICAgIGxldCBkYXRlU3RyaW5nID0gIG1vbWVudCh2YWx1ZSkuYWRkKDU0MywneWVhcicpLmZvcm1hdCgnREQvTU0vWVlZWScpXG4gICAgLy8gICAgIHJldHVybiBkYXRlU3RyaW5nO1xuICAgIC8vIH1cbiAgICAvKiogU1RBUlQgQmluZCBWYWx1ZSAqL1xuICAgIG9uTW9kZWxDaGFuZ2U6IEZ1bmN0aW9uID0gKCkgPT4geyB9O1xuICAgIG9uTW9kZWxUb3VjaGVkOiBGdW5jdGlvbiA9ICgpID0+IHsgfTtcbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHsgfVxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IEZ1bmN0aW9uKTogdm9pZCB7IH1cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogRnVuY3Rpb24pOiB2b2lkIHsgfVxuICAgIC8qKiBFTkQgQmluZCBWYWx1ZSAqL1xuXG59XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIFNoYXJlZE1vZHVsZSwgRHhEYXRlQm94TW9kdWxlXSxcbiAgICBleHBvcnRzOiBbU29jRGF0ZUJveENvbXBvbmVudCwgU2hhcmVkTW9kdWxlXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtTb2NEYXRlQm94Q29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgU2hhcmVkRGF0ZUJveE1vZHVsZSB7IH1cbiJdfQ==