UNPKG

@alauda-fe/common

Version:

Alauda frontend team common codes.

148 lines 17.1 kB
import { handlePixel, isTemplateRef, ThemePickerPipe } from '@alauda/ui'; import { NgClass, NgIf, NgStyle, NgTemplateOutlet } from '@angular/common'; import { ChangeDetectionStrategy, Component, HostBinding, Input, } from '@angular/core'; import { PurePipe } from '../../core/pipes/pure.pipe'; import { EffectDirectiveModule } from '../../effect-directive/module'; import { TRANSLATE_MODULE } from '../../translate/translate.module'; import { LoadingMaskComponent } from '../loading-mask/loading-mask.component'; import * as i0 from "@angular/core"; import * as i1 from "../../translate/translate.pipe"; const _c0 = a0 => ({ minHeight: a0 }); const _c1 = a0 => ({ name: a0 }); function ZeroStateComponent_div_0_Conditional_2_ng_template_1_Template(rf, ctx) { if (rf & 1) { i0.ɵɵtext(0); } if (rf & 2) { const ctx_r0 = i0.ɵɵnextContext(3); i0.ɵɵtextInterpolate(ctx_r0.customPlaceholder); } } function ZeroStateComponent_div_0_Conditional_2_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementContainer(0, 5); i0.ɵɵtemplate(1, ZeroStateComponent_div_0_Conditional_2_ng_template_1_Template, 1, 1, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor); } if (rf & 2) { const literal_r2 = i0.ɵɵreference(2); const ctx_r0 = i0.ɵɵnextContext(2); i0.ɵɵproperty("ngTemplateOutlet", ctx_r0.isTemplateRef(ctx_r0.customPlaceholder) ? ctx_r0.customPlaceholder : literal_r2); } } function ZeroStateComponent_div_0_Conditional_3_img_1_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelement(0, "img", 7); i0.ɵɵpipe(1, "auiThemePicker"); } if (rf & 2) { const ctx_r0 = i0.ɵɵnextContext(3); i0.ɵɵproperty("src", i0.ɵɵpipeBind1(1, 1, ctx_r0.image), i0.ɵɵsanitizeUrl); } } function ZeroStateComponent_div_0_Conditional_3_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "div"); i0.ɵɵtemplate(1, ZeroStateComponent_div_0_Conditional_3_img_1_Template, 2, 3, "img", 6); i0.ɵɵtext(2); i0.ɵɵpipe(3, "translate"); i0.ɵɵelementEnd(); } if (rf & 2) { const ctx_r0 = i0.ɵɵnextContext(2); i0.ɵɵclassProp("no-data-placeholder", ctx_r0.showEmptyIcon); i0.ɵɵadvance(); i0.ɵɵproperty("ngIf", ctx_r0.showEmptyIcon); i0.ɵɵadvance(); i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 4, "no_data"), " "); } } function ZeroStateComponent_div_0_Conditional_4_img_1_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelement(0, "img", 7); i0.ɵɵpipe(1, "auiThemePicker"); } if (rf & 2) { const ctx_r0 = i0.ɵɵnextContext(3); i0.ɵɵproperty("src", i0.ɵɵpipeBind1(1, 1, ctx_r0.image), i0.ɵɵsanitizeUrl); } } function ZeroStateComponent_div_0_Conditional_4_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "div"); i0.ɵɵtemplate(1, ZeroStateComponent_div_0_Conditional_4_img_1_Template, 2, 3, "img", 6); i0.ɵɵtext(2); i0.ɵɵpipe(3, "translate"); i0.ɵɵpipe(4, "translate"); i0.ɵɵelementEnd(); } if (rf & 2) { const ctx_r0 = i0.ɵɵnextContext(2); i0.ɵɵclassProp("no-data-placeholder", ctx_r0.showEmptyIcon); i0.ɵɵadvance(); i0.ɵɵproperty("ngIf", ctx_r0.showEmptyIcon); i0.ɵɵadvance(); i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(4, 6, "no_named_data_hint", i0.ɵɵpureFunction1(9, _c1, ctx_r0.resourceNameTranslated || i0.ɵɵpipeBind1(3, 4, ctx_r0.resourceName))), " "); } } function ZeroStateComponent_div_0_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "div", 3); i0.ɵɵpipe(1, "pure"); i0.ɵɵtemplate(2, ZeroStateComponent_div_0_Conditional_2_Template, 3, 1)(3, ZeroStateComponent_div_0_Conditional_3_Template, 4, 6, "div", 4)(4, ZeroStateComponent_div_0_Conditional_4_Template, 5, 11, "div", 4); i0.ɵɵelementEnd(); } if (rf & 2) { const ctx_r0 = i0.ɵɵnextContext(); i0.ɵɵproperty("ngClass", ctx_r0.context)("ngStyle", i0.ɵɵpureFunction1(6, _c0, i0.ɵɵpipeBind2(1, 3, ctx_r0.minHeight, ctx_r0.handlePixel))); i0.ɵɵadvance(2); i0.ɵɵconditional(ctx_r0.customPlaceholder ? 2 : !(ctx_r0.resourceName || ctx_r0.resourceNameTranslated) ? 3 : 4); } } export class ZeroStateComponent { constructor() { this.zeroState = true; this.fetching = false; this.showEmptyIcon = true; this.context = 'form'; this.image = [ 'images/light/no-data-for-list-or-card.svg', 'images/dark/no-data-for-list-or-card.svg', ]; this.handlePixel = handlePixel; this.isTemplateRef = isTemplateRef; } get hiddenState() { return !this.zeroState && !this.fetching; } static { this.ɵfac = function ZeroStateComponent_Factory(t) { return new (t || ZeroStateComponent)(); }; } static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ZeroStateComponent, selectors: [["acl-zero-state"]], hostVars: 1, hostBindings: function ZeroStateComponent_HostBindings(rf, ctx) { if (rf & 2) { i0.ɵɵhostProperty("hidden", ctx.hiddenState); } }, inputs: { resourceName: "resourceName", resourceNameTranslated: "resourceNameTranslated", customPlaceholder: "customPlaceholder", zeroState: "zeroState", fetching: "fetching", showEmptyIcon: "showEmptyIcon", context: "context", minHeight: "minHeight" }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 2, vars: 2, consts: [["literal", ""], ["class", "zero-placeholder", 3, "ngClass", "ngStyle", 4, "ngIf"], [1, "zero-placeholder", 3, "loading"], [1, "zero-placeholder", 3, "ngClass", "ngStyle"], [3, "no-data-placeholder"], [3, "ngTemplateOutlet"], ["width", "70", 3, "src", 4, "ngIf"], ["width", "70", 3, "src"]], template: function ZeroStateComponent_Template(rf, ctx) { if (rf & 1) { i0.ɵɵtemplate(0, ZeroStateComponent_div_0_Template, 5, 8, "div", 1); i0.ɵɵelement(1, "acl-loading-mask", 2); } if (rf & 2) { i0.ɵɵproperty("ngIf", ctx.zeroState && !ctx.fetching); i0.ɵɵadvance(); i0.ɵɵproperty("loading", ctx.fetching); } }, dependencies: [NgClass, NgStyle, PurePipe, i1.TranslatePipe, LoadingMaskComponent, EffectDirectiveModule, NgTemplateOutlet, NgIf, ThemePickerPipe], styles: ["[_nghost-%COMP%] .zero-placeholder{box-sizing:border-box;display:flex;justify-content:center;align-items:center;padding:15px 10px;min-height:60px;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal);color:rgb(var(--aui-color-placeholder-text));background-color:rgb(var(--aui-color-n-10));border:solid 1px rgb(var(--aui-color-n-8));border-radius:var(--aui-border-radius-l);position:sticky;left:0}[_nghost-%COMP%] .zero-placeholder>aui-icon:first-child{margin-right:var(--aui-spacing-m)}[_nghost-%COMP%] .aui-table .aui-table__row+.zero-placeholder{border-top-left-radius:0;border-top-right-radius:0}.zero-placeholder.form[_ngcontent-%COMP%]{border:none;padding:14px 0}.no-data-placeholder[_ngcontent-%COMP%]{margin-top:35px;margin-bottom:35px;display:flex;flex-direction:column;align-items:center}"], changeDetection: 0 }); } } (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ZeroStateComponent, [{ type: Component, args: [{ selector: 'acl-zero-state', changeDetection: ChangeDetectionStrategy.OnPush, imports: [ NgClass, NgStyle, PurePipe, TRANSLATE_MODULE, LoadingMaskComponent, EffectDirectiveModule, NgTemplateOutlet, NgIf, ThemePickerPipe, ], standalone: true, template: "<div\n *ngIf=\"zeroState && !fetching\"\n class=\"zero-placeholder\"\n [ngClass]=\"context\"\n [ngStyle]=\"{\n minHeight: (minHeight | pure: handlePixel),\n }\"\n>\n @if (customPlaceholder) {\n <ng-container\n [ngTemplateOutlet]=\"\n isTemplateRef(customPlaceholder) ? customPlaceholder : literal\n \"\n ></ng-container>\n <ng-template #literal>{{ customPlaceholder }}</ng-template>\n } @else if (!(resourceName || resourceNameTranslated)) {\n <div [class.no-data-placeholder]=\"showEmptyIcon\">\n <img\n *ngIf=\"showEmptyIcon\"\n width=\"70\"\n [src]=\"image | auiThemePicker\"\n />\n {{ 'no_data' | translate }}\n </div>\n } @else {\n <div [class.no-data-placeholder]=\"showEmptyIcon\">\n <img\n *ngIf=\"showEmptyIcon\"\n width=\"70\"\n [src]=\"image | auiThemePicker\"\n />\n {{\n 'no_named_data_hint'\n | translate\n : {\n name: resourceNameTranslated || (resourceName | translate),\n }\n }}\n </div>\n }\n</div>\n<acl-loading-mask\n class=\"zero-placeholder\"\n [loading]=\"fetching\"\n></acl-loading-mask>\n", styles: [":host::ng-deep .zero-placeholder{box-sizing:border-box;display:flex;justify-content:center;align-items:center;padding:15px 10px;min-height:60px;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal);color:rgb(var(--aui-color-placeholder-text));background-color:rgb(var(--aui-color-n-10));border:solid 1px rgb(var(--aui-color-n-8));border-radius:var(--aui-border-radius-l);position:sticky;left:0}:host::ng-deep .zero-placeholder>aui-icon:first-child{margin-right:var(--aui-spacing-m)}:host::ng-deep .aui-table .aui-table__row+.zero-placeholder{border-top-left-radius:0;border-top-right-radius:0}.zero-placeholder.form{border:none;padding:14px 0}.no-data-placeholder{margin-top:35px;margin-bottom:35px;display:flex;flex-direction:column;align-items:center}\n"] }] }], null, { resourceName: [{ type: Input }], resourceNameTranslated: [{ type: Input }], customPlaceholder: [{ type: Input }], zeroState: [{ type: Input }], fetching: [{ type: Input }], showEmptyIcon: [{ type: Input }], context: [{ type: Input }], minHeight: [{ type: Input }], hiddenState: [{ type: HostBinding, args: ['hidden'] }] }); })(); (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ZeroStateComponent, { className: "ZeroStateComponent" }); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemVyby1zdGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvd2lkZ2V0L3plcm8tc3RhdGUvemVyby1zdGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvd2lkZ2V0L3plcm8tc3RhdGUvemVyby1zdGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDekUsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0UsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsV0FBVyxFQUNYLEtBQUssR0FFTixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDcEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7Ozs7OztJQ0NwRCxZQUF1Qjs7O0lBQXZCLDhDQUF1Qjs7O0lBTDdDLDJCQUlnQjtJQUNoQix3SUFBc0I7Ozs7SUFKcEIseUhBRUM7OztJQUtELHlCQUlFOzs7O0lBREEsMEVBQThCOzs7SUFKbEMsMkJBQWlEO0lBQy9DLHVGQUlFO0lBQ0YsWUFDRjs7SUFBQSxpQkFBTTs7O0lBUEQsMkRBQTJDO0lBRTNDLGNBQW1CO0lBQW5CLDJDQUFtQjtJQUl0QixjQUNGO0lBREUsZ0VBQ0Y7OztJQUdFLHlCQUlFOzs7O0lBREEsMEVBQThCOzs7SUFKbEMsMkJBQWlEO0lBQy9DLHVGQUlFO0lBQ0YsWUFPRjs7O0lBQUEsaUJBQU07OztJQWJELDJEQUEyQztJQUUzQyxjQUFtQjtJQUFuQiwyQ0FBbUI7SUFJdEIsY0FPRjtJQVBFLG1MQU9GOzs7SUF0Q0osOEJBT0M7O0lBaUJHLEFBVEEsQUFQRix1RUFBeUIsb0VBTytCLHFFQVMvQztJQWdCWCxpQkFBTTs7O0lBcENKLEFBREEsd0NBQW1CLG1HQUdqQjtJQUVGLGVBK0JDO0lBL0JELGdIQStCQzs7QUROSCxNQUFNLE9BQU8sa0JBQWtCO0lBbEIvQjtRQTRCRSxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBR2pCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFHakIsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFHckIsWUFBTyxHQUFxQixNQUFNLENBQUM7UUFLbkMsVUFBSyxHQUFHO1lBQ04sMkNBQTJDO1lBQzNDLDBDQUEwQztTQUMzQyxDQUFDO1FBT0YsZ0JBQVcsR0FBRyxXQUFXLENBQUM7UUFFMUIsa0JBQWEsR0FBRyxhQUFhLENBQUM7S0FDL0I7SUFSQyxJQUNJLFdBQVc7UUFDYixPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDM0MsQ0FBQzttRkFoQ1Usa0JBQWtCO29FQUFsQixrQkFBa0I7WUFBbEIsNENBQWtCOztZQ2pDL0IsbUVBT0M7WUFrQ0Qsc0NBR29COztZQTNDakIscURBQTRCO1lBMEM3QixjQUFvQjtZQUFwQixzQ0FBb0I7NEJEdEJsQixPQUFPO1lBQ1AsT0FBTztZQUNQLFFBQVEsb0JBRVIsb0JBQW9CO1lBQ3BCLHFCQUFxQjtZQUNyQixnQkFBZ0I7WUFDaEIsSUFBSTtZQUNKLGVBQWU7O2lGQUlOLGtCQUFrQjtjQWxCOUIsU0FBUzsyQkFDRSxnQkFBZ0IsbUJBR1QsdUJBQXVCLENBQUMsTUFBTSxXQUN0QztvQkFDUCxPQUFPO29CQUNQLE9BQU87b0JBQ1AsUUFBUTtvQkFDUixnQkFBZ0I7b0JBQ2hCLG9CQUFvQjtvQkFDcEIscUJBQXFCO29CQUNyQixnQkFBZ0I7b0JBQ2hCLElBQUk7b0JBQ0osZUFBZTtpQkFDaEIsY0FDVyxJQUFJO2dCQUloQixZQUFZO2tCQURYLEtBQUs7WUFJTixzQkFBc0I7a0JBRHJCLEtBQUs7WUFHRyxpQkFBaUI7a0JBQXpCLEtBQUs7WUFHTixTQUFTO2tCQURSLEtBQUs7WUFJTixRQUFRO2tCQURQLEtBQUs7WUFJTixhQUFhO2tCQURaLEtBQUs7WUFJTixPQUFPO2tCQUROLEtBQUs7WUFJTixTQUFTO2tCQURSLEtBQUs7WUFTRixXQUFXO2tCQURkLFdBQVc7bUJBQUMsUUFBUTs7a0ZBN0JWLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGhhbmRsZVBpeGVsLCBpc1RlbXBsYXRlUmVmLCBUaGVtZVBpY2tlclBpcGUgfSBmcm9tICdAYWxhdWRhL3VpJztcbmltcG9ydCB7IE5nQ2xhc3MsIE5nSWYsIE5nU3R5bGUsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBUZW1wbGF0ZVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFB1cmVQaXBlIH0gZnJvbSAnLi4vLi4vY29yZS9waXBlcy9wdXJlLnBpcGUnO1xuaW1wb3J0IHsgRWZmZWN0RGlyZWN0aXZlTW9kdWxlIH0gZnJvbSAnLi4vLi4vZWZmZWN0LWRpcmVjdGl2ZS9tb2R1bGUnO1xuaW1wb3J0IHsgVFJBTlNMQVRFX01PRFVMRSB9IGZyb20gJy4uLy4uL3RyYW5zbGF0ZS90cmFuc2xhdGUubW9kdWxlJztcbmltcG9ydCB7IExvYWRpbmdNYXNrQ29tcG9uZW50IH0gZnJvbSAnLi4vbG9hZGluZy1tYXNrL2xvYWRpbmctbWFzay5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2wtemVyby1zdGF0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi96ZXJvLXN0YXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vemVyby1zdGF0ZS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIE5nQ2xhc3MsXG4gICAgTmdTdHlsZSxcbiAgICBQdXJlUGlwZSxcbiAgICBUUkFOU0xBVEVfTU9EVUxFLFxuICAgIExvYWRpbmdNYXNrQ29tcG9uZW50LFxuICAgIEVmZmVjdERpcmVjdGl2ZU1vZHVsZSxcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIE5nSWYsXG4gICAgVGhlbWVQaWNrZXJQaXBlLFxuICBdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBaZXJvU3RhdGVDb21wb25lbnQge1xuICBASW5wdXQoKVxuICByZXNvdXJjZU5hbWU6IHN0cmluZztcblxuICBASW5wdXQoKVxuICByZXNvdXJjZU5hbWVUcmFuc2xhdGVkOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgY3VzdG9tUGxhY2Vob2xkZXI6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHplcm9TdGF0ZSA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgZmV0Y2hpbmcgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBzaG93RW1wdHlJY29uID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBjb250ZXh0OiAnZm9ybScgfCAndGFibGUnID0gJ2Zvcm0nO1xuXG4gIEBJbnB1dCgpXG4gIG1pbkhlaWdodDogc3RyaW5nIHwgbnVtYmVyO1xuXG4gIGltYWdlID0gW1xuICAgICdpbWFnZXMvbGlnaHQvbm8tZGF0YS1mb3ItbGlzdC1vci1jYXJkLnN2ZycsXG4gICAgJ2ltYWdlcy9kYXJrL25vLWRhdGEtZm9yLWxpc3Qtb3ItY2FyZC5zdmcnLFxuICBdO1xuXG4gIEBIb3N0QmluZGluZygnaGlkZGVuJylcbiAgZ2V0IGhpZGRlblN0YXRlKCkge1xuICAgIHJldHVybiAhdGhpcy56ZXJvU3RhdGUgJiYgIXRoaXMuZmV0Y2hpbmc7XG4gIH1cblxuICBoYW5kbGVQaXhlbCA9IGhhbmRsZVBpeGVsO1xuXG4gIGlzVGVtcGxhdGVSZWYgPSBpc1RlbXBsYXRlUmVmO1xufVxuIiwiPGRpdlxuICAqbmdJZj1cInplcm9TdGF0ZSAmJiAhZmV0Y2hpbmdcIlxuICBjbGFzcz1cInplcm8tcGxhY2Vob2xkZXJcIlxuICBbbmdDbGFzc109XCJjb250ZXh0XCJcbiAgW25nU3R5bGVdPVwie1xuICAgIG1pbkhlaWdodDogKG1pbkhlaWdodCB8IHB1cmU6IGhhbmRsZVBpeGVsKSxcbiAgfVwiXG4+XG4gIEBpZiAoY3VzdG9tUGxhY2Vob2xkZXIpIHtcbiAgICA8bmctY29udGFpbmVyXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJcbiAgICAgICAgaXNUZW1wbGF0ZVJlZihjdXN0b21QbGFjZWhvbGRlcikgPyBjdXN0b21QbGFjZWhvbGRlciA6IGxpdGVyYWxcbiAgICAgIFwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjbGl0ZXJhbD57eyBjdXN0b21QbGFjZWhvbGRlciB9fTwvbmctdGVtcGxhdGU+XG4gIH0gQGVsc2UgaWYgKCEocmVzb3VyY2VOYW1lIHx8IHJlc291cmNlTmFtZVRyYW5zbGF0ZWQpKSB7XG4gICAgPGRpdiBbY2xhc3Mubm8tZGF0YS1wbGFjZWhvbGRlcl09XCJzaG93RW1wdHlJY29uXCI+XG4gICAgICA8aW1nXG4gICAgICAgICpuZ0lmPVwic2hvd0VtcHR5SWNvblwiXG4gICAgICAgIHdpZHRoPVwiNzBcIlxuICAgICAgICBbc3JjXT1cImltYWdlIHwgYXVpVGhlbWVQaWNrZXJcIlxuICAgICAgLz5cbiAgICAgIHt7ICdub19kYXRhJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvZGl2PlxuICB9IEBlbHNlIHtcbiAgICA8ZGl2IFtjbGFzcy5uby1kYXRhLXBsYWNlaG9sZGVyXT1cInNob3dFbXB0eUljb25cIj5cbiAgICAgIDxpbWdcbiAgICAgICAgKm5nSWY9XCJzaG93RW1wdHlJY29uXCJcbiAgICAgICAgd2lkdGg9XCI3MFwiXG4gICAgICAgIFtzcmNdPVwiaW1hZ2UgfCBhdWlUaGVtZVBpY2tlclwiXG4gICAgICAvPlxuICAgICAge3tcbiAgICAgICAgJ25vX25hbWVkX2RhdGFfaGludCdcbiAgICAgICAgICB8IHRyYW5zbGF0ZVxuICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgbmFtZTogcmVzb3VyY2VOYW1lVHJhbnNsYXRlZCB8fCAocmVzb3VyY2VOYW1lIHwgdHJhbnNsYXRlKSxcbiAgICAgICAgICAgICAgfVxuICAgICAgfX1cbiAgICA8L2Rpdj5cbiAgfVxuPC9kaXY+XG48YWNsLWxvYWRpbmctbWFza1xuICBjbGFzcz1cInplcm8tcGxhY2Vob2xkZXJcIlxuICBbbG9hZGluZ109XCJmZXRjaGluZ1wiXG4+PC9hY2wtbG9hZGluZy1tYXNrPlxuIl19