truly-ui
Version:
Web Components for Desktop Applications.
94 lines (92 loc) • 15 kB
JavaScript
import { __decorate } from "tslib";
/*
MIT License
Copyright (c) 2019 Temainfo Software
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
import { Component, ViewChild } from '@angular/core';
import { KeyEvent } from '../../core/enums/key-events';
import { Modal } from '../../modal/interfaces/modal-options';
import * as i0 from "@angular/core";
import * as i1 from "../../i18n/i18n.service";
import * as i2 from "../../modal/directives/modal-result.directive";
import * as i3 from "../../button/button";
let TlDialogConfirmation = class TlDialogConfirmation {
get textNo() {
return this.i18n.getLocale().Dialog.textNo;
}
get textYes() {
return this.i18n.getLocale().Dialog.textYes;
}
constructor(i18n) {
this.i18n = i18n;
this.message = '';
}
ngOnInit() {
this.defaultOK === true || this.defaultOK === undefined ? this.buttonDialogOk.buttonElement.nativeElement.focus() :
this.buttonDialogCancel.buttonElement.nativeElement.focus();
}
onkeyup($event) {
switch ($event.code) {
case KeyEvent.ARROWLEFT:
this.setPreviousButton();
break;
case KeyEvent.ARROWRIGHT:
this.setNextButton();
break;
case KeyEvent.TAB:
$event.preventDefault();
document.activeElement === this.buttonDialogOk.buttonElement.nativeElement
? this.setNextButton() : this.setPreviousButton();
break;
}
}
setPreviousButton() {
this.buttonDialogOk.buttonElement.nativeElement.focus();
}
setNextButton() {
this.buttonDialogCancel.buttonElement.nativeElement.focus();
}
};
/** @nocollapse */ TlDialogConfirmation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TlDialogConfirmation, deps: [{ token: i1.I18nService }], target: i0.ɵɵFactoryTarget.Component });
/** @nocollapse */ TlDialogConfirmation.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TlDialogConfirmation, selector: "tl-dialog-confirmation", viewQueries: [{ propertyName: "buttonDialogOk", first: true, predicate: ["buttonDialogOk"], descendants: true, static: true }, { propertyName: "buttonDialogCancel", first: true, predicate: ["buttonDialogCancel"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"content-dialog\" (keydown)=\"onkeyup($event)\">\n <div class=\"form\">\n <p [innerHTML]=\"message\"></p>\n </div>\n <div class=\"header-controls\">\n <tl-button #buttonDialogOk [text]=\"textYes\"\n mdResult=\"MRYES\"\n [color]=\"'success'\"\n [iconAddonBefore]=\"'ion ion-md-checkmark'\">\n </tl-button>\n \n <tl-button #buttonDialogCancel [text]=\"textNo\"\n mdResult=\"MRNO\"\n [color]=\"'basic'\"\n [iconAddonBefore]=\"'ion ion-md-close'\">\n </tl-button>\n </div>\n</div>\n", styles: [".content-dialog{position:relative;margin:0 auto;min-height:140px;min-width:400px;max-width:60vw}.content-dialog>.form{padding:23px;text-align:center}.content-dialog>.form>p{font-family:Segoe UI,Lato,\"sans-serif\",Arial;font-size:1em;font-weight:400;line-height:1.5em;word-wrap:break-word;word-break:break-word}.content-dialog>.header-controls{position:absolute;bottom:0;margin-bottom:20px;float:left;width:100%;display:flex;justify-content:center}\n"], dependencies: [{ kind: "directive", type: i2.ModalResultDirective, selector: "[mdResult]", inputs: ["mdResult", "formResult"] }, { kind: "component", type: i3.TlButton, selector: "tl-button", inputs: ["text", "iconAddonBefore", "iconAddonAfter", "iconBeforeText", "iconAfterText", "height", "width", "disabled", "flatBorder", "colorIconBefore", "colorIconAfter", "template", "outline", "color", "loaderColor", "isLoading", "indexShortcut", "textLoading"], outputs: ["selected"] }] });
TlDialogConfirmation = __decorate([
Modal({
icon: 'fas fa-check',
title: 'Confirmation',
color: 'success',
width: '400px',
height: 'auto',
draggable: true,
maximizable: false,
minimizable: false,
backdrop: true,
closeOnOK: true
})
], TlDialogConfirmation);
export { TlDialogConfirmation };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TlDialogConfirmation, decorators: [{
type: Component,
args: [{ selector: 'tl-dialog-confirmation', template: "<div class=\"content-dialog\" (keydown)=\"onkeyup($event)\">\n <div class=\"form\">\n <p [innerHTML]=\"message\"></p>\n </div>\n <div class=\"header-controls\">\n <tl-button #buttonDialogOk [text]=\"textYes\"\n mdResult=\"MRYES\"\n [color]=\"'success'\"\n [iconAddonBefore]=\"'ion ion-md-checkmark'\">\n </tl-button>\n \n <tl-button #buttonDialogCancel [text]=\"textNo\"\n mdResult=\"MRNO\"\n [color]=\"'basic'\"\n [iconAddonBefore]=\"'ion ion-md-close'\">\n </tl-button>\n </div>\n</div>\n", styles: [".content-dialog{position:relative;margin:0 auto;min-height:140px;min-width:400px;max-width:60vw}.content-dialog>.form{padding:23px;text-align:center}.content-dialog>.form>p{font-family:Segoe UI,Lato,\"sans-serif\",Arial;font-size:1em;font-weight:400;line-height:1.5em;word-wrap:break-word;word-break:break-word}.content-dialog>.header-controls{position:absolute;bottom:0;margin-bottom:20px;float:left;width:100%;display:flex;justify-content:center}\n"] }]
}], ctorParameters: function () { return [{ type: i1.I18nService }]; }, propDecorators: { buttonDialogOk: [{
type: ViewChild,
args: ['buttonDialogOk', { static: true }]
}], buttonDialogCancel: [{
type: ViewChild,
args: ['buttonDialogCancel', { static: true }]
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWNvbmZpcm1hdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydWx5LXVpL3NyYy9jb21wb25lbnRzL2RpYWxvZy9kaWFsb2ctY29uZmlybWF0aW9uL2RpYWxvZy1jb25maXJtYXRpb24udHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnVseS11aS9zcmMvY29tcG9uZW50cy9kaWFsb2cvZGlhbG9nLWNvbmZpcm1hdGlvbi9kaWFsb2ctY29uZmlybWF0aW9uLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRztBQUNILE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7O0FBbUJ0RCxJQUFNLG9CQUFvQixHQUExQixNQUFNLG9CQUFvQjtJQUkvQixJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUM3QyxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDOUMsQ0FBQztJQVFELFlBQXFCLElBQWlCO1FBQWpCLFNBQUksR0FBSixJQUFJLENBQWE7UUFoQnRDLFlBQU8sR0FBRyxFQUFFLENBQUM7SUFpQmIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsU0FBUyxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDakgsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDaEUsQ0FBQztJQUVELE9BQU8sQ0FBRSxNQUFxQjtRQUM1QixRQUFTLE1BQU0sQ0FBQyxJQUFJLEVBQUc7WUFDckIsS0FBSyxRQUFRLENBQUMsU0FBUztnQkFDckIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3pCLE1BQU07WUFDUixLQUFLLFFBQVEsQ0FBQyxVQUFVO2dCQUN0QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3JCLE1BQU07WUFDUixLQUFLLFFBQVEsQ0FBQyxHQUFHO2dCQUNmLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDeEIsUUFBUSxDQUFDLGFBQWEsS0FBSyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxhQUFhO29CQUN4RSxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDcEQsTUFBTTtTQUNUO0lBQ0gsQ0FBQztJQUVPLGlCQUFpQjtRQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDMUQsQ0FBQztJQUVPLGFBQWE7UUFDbkIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDOUQsQ0FBQzs7cUlBaERVLG9CQUFvQjt5SEFBcEIsb0JBQW9CLHVUQzNDakMsZ3FCQWtCQTtBRHlCYSxvQkFBb0I7SUFqQmhDLEtBQUssQ0FBRTtRQUNOLElBQUksRUFBRSxjQUFjO1FBQ3BCLEtBQUssRUFBRSxjQUFjO1FBQ3JCLEtBQUssRUFBRSxTQUFTO1FBQ2hCLEtBQUssRUFBRSxPQUFPO1FBQ2QsTUFBTSxFQUFFLE1BQU07UUFDZCxTQUFTLEVBQUUsSUFBSTtRQUNmLFdBQVcsRUFBRSxLQUFLO1FBQ2xCLFdBQVcsRUFBRSxLQUFLO1FBQ2xCLFFBQVEsRUFBRSxJQUFJO1FBQ2QsU0FBUyxFQUFFLElBQUk7S0FDaEIsQ0FBRTtHQU1VLG9CQUFvQixDQWlEaEM7U0FqRFksb0JBQW9COzRGQUFwQixvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0Usd0JBQXdCO2tHQWdCYyxjQUFjO3NCQUE3RCxTQUFTO3VCQUFFLGdCQUFnQixFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFFUSxrQkFBa0I7c0JBQXJFLFNBQVM7dUJBQUUsb0JBQW9CLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiBNSVQgTGljZW5zZVxuXG4gQ29weXJpZ2h0IChjKSAyMDE5IFRlbWFpbmZvIFNvZnR3YXJlXG5cbiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbiBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuIFNPRlRXQVJFLlxuICovXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBLZXlFdmVudCB9IGZyb20gJy4uLy4uL2NvcmUvZW51bXMva2V5LWV2ZW50cyc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uL2kxOG4vaTE4bi5zZXJ2aWNlJztcbmltcG9ydCB7IE1vZGFsIH0gZnJvbSAnLi4vLi4vbW9kYWwvaW50ZXJmYWNlcy9tb2RhbC1vcHRpb25zJztcblxuQE1vZGFsKCB7XG4gIGljb246ICdmYXMgZmEtY2hlY2snLFxuICB0aXRsZTogJ0NvbmZpcm1hdGlvbicsXG4gIGNvbG9yOiAnc3VjY2VzcycsXG4gIHdpZHRoOiAnNDAwcHgnLFxuICBoZWlnaHQ6ICdhdXRvJyxcbiAgZHJhZ2dhYmxlOiB0cnVlLFxuICBtYXhpbWl6YWJsZTogZmFsc2UsXG4gIG1pbmltaXphYmxlOiBmYWxzZSxcbiAgYmFja2Ryb3A6IHRydWUsXG4gIGNsb3NlT25PSzogdHJ1ZVxufSApXG5AQ29tcG9uZW50KCB7XG4gIHNlbGVjdG9yOiAndGwtZGlhbG9nLWNvbmZpcm1hdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kaWFsb2ctY29uZmlybWF0aW9uLmh0bWwnLFxuICBzdHlsZVVybHM6IFsgJy4uL2RpYWxvZy5zY3NzJyBdXG59IClcbmV4cG9ydCBjbGFzcyBUbERpYWxvZ0NvbmZpcm1hdGlvbiBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgbWVzc2FnZSA9ICcnO1xuXG4gIGdldCB0ZXh0Tm8oKSB7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi5nZXRMb2NhbGUoKS5EaWFsb2cudGV4dE5vO1xuICB9XG5cbiAgZ2V0IHRleHRZZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi5nZXRMb2NhbGUoKS5EaWFsb2cudGV4dFllcztcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoICdidXR0b25EaWFsb2dPaycsIHtzdGF0aWM6IHRydWV9ICApIGJ1dHRvbkRpYWxvZ09rO1xuXG4gIEBWaWV3Q2hpbGQoICdidXR0b25EaWFsb2dDYW5jZWwnLCB7c3RhdGljOiB0cnVlfSAgKSBidXR0b25EaWFsb2dDYW5jZWw7XG5cbiAgcHJpdmF0ZSBkZWZhdWx0T0s7XG5cbiAgY29uc3RydWN0b3IoIHByaXZhdGUgaTE4bjogSTE4blNlcnZpY2UgKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmRlZmF1bHRPSyA9PT0gdHJ1ZSB8fCB0aGlzLmRlZmF1bHRPSyA9PT0gdW5kZWZpbmVkID8gdGhpcy5idXR0b25EaWFsb2dPay5idXR0b25FbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKSA6XG4gICAgICB0aGlzLmJ1dHRvbkRpYWxvZ0NhbmNlbC5idXR0b25FbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIG9ua2V5dXAoICRldmVudDogS2V5Ym9hcmRFdmVudCApIHtcbiAgICBzd2l0Y2ggKCAkZXZlbnQuY29kZSApIHtcbiAgICAgIGNhc2UgS2V5RXZlbnQuQVJST1dMRUZUOlxuICAgICAgICB0aGlzLnNldFByZXZpb3VzQnV0dG9uKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBLZXlFdmVudC5BUlJPV1JJR0hUOlxuICAgICAgICB0aGlzLnNldE5leHRCdXR0b24oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEtleUV2ZW50LlRBQjpcbiAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IHRoaXMuYnV0dG9uRGlhbG9nT2suYnV0dG9uRWxlbWVudC5uYXRpdmVFbGVtZW50XG4gICAgICAgICAgPyB0aGlzLnNldE5leHRCdXR0b24oKSA6IHRoaXMuc2V0UHJldmlvdXNCdXR0b24oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRQcmV2aW91c0J1dHRvbigpIHtcbiAgICB0aGlzLmJ1dHRvbkRpYWxvZ09rLmJ1dHRvbkVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXROZXh0QnV0dG9uKCkge1xuICAgIHRoaXMuYnV0dG9uRGlhbG9nQ2FuY2VsLmJ1dHRvbkVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY29udGVudC1kaWFsb2dcIiAoa2V5ZG93bik9XCJvbmtleXVwKCRldmVudClcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybVwiPlxuICAgICAgICA8cCBbaW5uZXJIVE1MXT1cIm1lc3NhZ2VcIj48L3A+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImhlYWRlci1jb250cm9sc1wiPlxuICAgICAgICA8dGwtYnV0dG9uICNidXR0b25EaWFsb2dPayBbdGV4dF09XCJ0ZXh0WWVzXCJcbiAgICAgICAgICAgICAgICAgICBtZFJlc3VsdD1cIk1SWUVTXCJcbiAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwiJ3N1Y2Nlc3MnXCJcbiAgICAgICAgICAgICAgICAgICBbaWNvbkFkZG9uQmVmb3JlXT1cIidpb24gaW9uLW1kLWNoZWNrbWFyaydcIj5cbiAgICAgICAgPC90bC1idXR0b24+XG4gICAgICAgICZuYnNwOyZuYnNwOyZuYnNwO1xuICAgICAgICA8dGwtYnV0dG9uICNidXR0b25EaWFsb2dDYW5jZWwgW3RleHRdPVwidGV4dE5vXCJcbiAgICAgICAgICAgICAgICAgICBtZFJlc3VsdD1cIk1STk9cIlxuICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCInYmFzaWMnXCJcbiAgICAgICAgICAgICAgICAgICBbaWNvbkFkZG9uQmVmb3JlXT1cIidpb24gaW9uLW1kLWNsb3NlJ1wiPlxuICAgICAgICA8L3RsLWJ1dHRvbj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19