@spartacus/order
Version:
Order feature library for Spartacus
78 lines • 14.4 kB
JavaScript
import { ChangeDetectionStrategy, Component, HostListener, } from '@angular/core';
import { GlobalMessageType } from '@spartacus/core';
import { combineLatest, Subscription } from 'rxjs';
import { startWith } from 'rxjs/operators';
import * as i0 from "@angular/core";
import * as i1 from "@spartacus/order/root";
import * as i2 from "@spartacus/core";
import * as i3 from "@spartacus/storefront";
export class ReplenishmentOrderCancellationDialogComponent {
constructor(userReplenishmentOrderService, globalMessageService, launchDialogService, el) {
this.userReplenishmentOrderService = userReplenishmentOrderService;
this.globalMessageService = globalMessageService;
this.launchDialogService = launchDialogService;
this.el = el;
this.subscription = new Subscription();
this.focusConfig = {
trap: true,
block: true,
autofocus: 'button',
focusOnEscape: true,
};
}
handleClick(event) {
// Close on click outside the dialog window
if (event.target.tagName === this.el.nativeElement.tagName) {
this.close('Cross click');
}
}
ngOnInit() {
this.subscription.add(combineLatest([
this.userReplenishmentOrderService
.getReplenishmentOrderDetails()
.pipe(startWith(null)),
this.launchDialogService.data$,
]).subscribe(([replenishmentOrder, code]) => {
this.replenishmentOrderCode =
code || (replenishmentOrder === null || replenishmentOrder === void 0 ? void 0 : replenishmentOrder.replenishmentOrderCode);
}));
this.subscription.add(this.userReplenishmentOrderService
.getCancelReplenishmentOrderSuccess()
.subscribe((value) => this.onSuccess(value)));
}
onSuccess(value) {
if (value) {
this.launchDialogService.closeDialog('Successffully cancelled replenishment');
this.globalMessageService.add({
key: 'orderDetails.cancelReplenishment.cancelSuccess',
params: {
replenishmentOrderCode: this.replenishmentOrderCode,
},
}, GlobalMessageType.MSG_TYPE_CONFIRMATION);
}
this.userReplenishmentOrderService.clearCancelReplenishmentOrderProcessState();
}
close(reason) {
this.launchDialogService.closeDialog(reason);
}
cancelReplenishment() {
this.userReplenishmentOrderService.cancelReplenishmentOrder(this.replenishmentOrderCode);
}
ngOnDestroy() {
this.subscription.unsubscribe();
}
}
ReplenishmentOrderCancellationDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: ReplenishmentOrderCancellationDialogComponent, deps: [{ token: i1.ReplenishmentOrderFacade }, { token: i2.GlobalMessageService }, { token: i3.LaunchDialogService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
ReplenishmentOrderCancellationDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: ReplenishmentOrderCancellationDialogComponent, selector: "cx-replenishment-order-cancellation-dialog", host: { listeners: { "click": "handleClick($event)" } }, ngImport: i0, template: "<div\n [cxFocus]=\"focusConfig\"\n (esc)=\"close('Escape clicked')\"\n class=\"cx-cancel-replenishment-dialog-foreground\"\n>\n <div class=\"cx-cancel-replenishment-dialog-content\">\n <div class=\"cx-cancel-replenishment-dialog-header\">\n <h3>\n {{ 'orderDetails.cancelReplenishment.title' | cxTranslate }}\n </h3>\n </div>\n <div class=\"cx-cancel-replenishment-dialog-description\">\n {{ 'orderDetails.cancelReplenishment.description' | cxTranslate }}\n </div>\n\n <div class=\"cx-cancel-replenishment-dialog-body\">\n <div class=\"cx-cancel-replenishment-btns row\">\n <div class=\"col-md-6\">\n <button\n class=\"btn btn-block btn-action\"\n (click)=\"close('Close Replenishment Dialog')\"\n >\n {{ 'orderDetails.cancelReplenishment.reject' | cxTranslate }}\n </button>\n </div>\n <div class=\"col-md-6\">\n <button\n class=\"btn btn-block btn-primary\"\n (click)=\"cancelReplenishment()\"\n >\n {{ 'orderDetails.cancelReplenishment.accept' | cxTranslate }}\n </button>\n </div>\n </div>\n </div>\n </div>\n</div>\n", directives: [{ type: i3.FocusDirective, selector: "[cxFocus]", inputs: ["cxFocus"] }], pipes: { "cxTranslate": i2.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: ReplenishmentOrderCancellationDialogComponent, decorators: [{
type: Component,
args: [{
selector: 'cx-replenishment-order-cancellation-dialog',
templateUrl: './replenishment-order-cancellation-dialog.component.html',
changeDetection: ChangeDetectionStrategy.OnPush,
}]
}], ctorParameters: function () { return [{ type: i1.ReplenishmentOrderFacade }, { type: i2.GlobalMessageService }, { type: i3.LaunchDialogService }, { type: i0.ElementRef }]; }, propDecorators: { handleClick: [{
type: HostListener,
args: ['click', ['$event']]
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwbGVuaXNobWVudC1vcmRlci1jYW5jZWxsYXRpb24tZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2ZlYXR1cmUtbGlicy9vcmRlci9jb21wb25lbnRzL3JlcGxlbmlzaG1lbnQtb3JkZXItY2FuY2VsbGF0aW9uLWRpYWxvZy9yZXBsZW5pc2htZW50LW9yZGVyLWNhbmNlbGxhdGlvbi1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vZmVhdHVyZS1saWJzL29yZGVyL2NvbXBvbmVudHMvcmVwbGVuaXNobWVudC1vcmRlci1jYW5jZWxsYXRpb24tZGlhbG9nL3JlcGxlbmlzaG1lbnQtb3JkZXItY2FuY2VsbGF0aW9uLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEdBR2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRzFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFPM0MsTUFBTSxPQUFPLDZDQUE2QztJQXNCeEQsWUFDWSw2QkFBdUQsRUFDdkQsb0JBQTBDLEVBQzFDLG1CQUF3QyxFQUN4QyxFQUFjO1FBSGQsa0NBQTZCLEdBQTdCLDZCQUE2QixDQUEwQjtRQUN2RCx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQXZCbEIsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBSTFDLGdCQUFXLEdBQWdCO1lBQ3pCLElBQUksRUFBRSxJQUFJO1lBQ1YsS0FBSyxFQUFFLElBQUk7WUFDWCxTQUFTLEVBQUUsUUFBUTtZQUNuQixhQUFhLEVBQUUsSUFBSTtTQUNwQixDQUFDO0lBZUMsQ0FBQztJQVpKLFdBQVcsQ0FBQyxLQUFjO1FBQ3hCLDJDQUEyQztRQUMzQyxJQUFLLEtBQUssQ0FBQyxNQUFjLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRTtZQUNuRSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQzNCO0lBQ0gsQ0FBQztJQVNELFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FDbkIsYUFBYSxDQUFDO1lBQ1osSUFBSSxDQUFDLDZCQUE2QjtpQkFDL0IsNEJBQTRCLEVBQUU7aUJBQzlCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUs7U0FDL0IsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUMxQyxJQUFJLENBQUMsc0JBQXNCO2dCQUN6QixJQUFJLEtBQUksa0JBQWtCLGFBQWxCLGtCQUFrQix1QkFBbEIsa0JBQWtCLENBQUUsc0JBQXNCLENBQUEsQ0FBQztRQUN2RCxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBRUYsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQ25CLElBQUksQ0FBQyw2QkFBNkI7YUFDL0Isa0NBQWtDLEVBQUU7YUFDcEMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQy9DLENBQUM7SUFDSixDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQWM7UUFDdEIsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUNsQyx1Q0FBdUMsQ0FDeEMsQ0FBQztZQUVGLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQzNCO2dCQUNFLEdBQUcsRUFBRSxnREFBZ0Q7Z0JBQ3JELE1BQU0sRUFBRTtvQkFDTixzQkFBc0IsRUFBRSxJQUFJLENBQUMsc0JBQXNCO2lCQUNwRDthQUNGLEVBQ0QsaUJBQWlCLENBQUMscUJBQXFCLENBQ3hDLENBQUM7U0FDSDtRQUNELElBQUksQ0FBQyw2QkFBNkIsQ0FBQyx5Q0FBeUMsRUFBRSxDQUFDO0lBQ2pGLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBYztRQUNsQixJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsSUFBSSxDQUFDLDZCQUE2QixDQUFDLHdCQUF3QixDQUN6RCxJQUFJLENBQUMsc0JBQXNCLENBQzVCLENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbEMsQ0FBQzs7MElBaEZVLDZDQUE2Qzs4SEFBN0MsNkNBQTZDLDJJQ25CMUQsMHNDQXFDQTsyRkRsQmEsNkNBQTZDO2tCQUx6RCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw0Q0FBNEM7b0JBQ3RELFdBQVcsRUFBRSwwREFBMEQ7b0JBQ3ZFLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDs2TUFnQkMsV0FBVztzQkFEVixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgR2xvYmFsTWVzc2FnZVNlcnZpY2UsIEdsb2JhbE1lc3NhZ2VUeXBlIH0gZnJvbSAnQHNwYXJ0YWN1cy9jb3JlJztcbmltcG9ydCB7IFJlcGxlbmlzaG1lbnRPcmRlckZhY2FkZSB9IGZyb20gJ0BzcGFydGFjdXMvb3JkZXIvcm9vdCc7XG5pbXBvcnQgeyBGb2N1c0NvbmZpZywgTGF1bmNoRGlhbG9nU2VydmljZSB9IGZyb20gJ0BzcGFydGFjdXMvc3RvcmVmcm9udCc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3gtcmVwbGVuaXNobWVudC1vcmRlci1jYW5jZWxsYXRpb24tZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlcGxlbmlzaG1lbnQtb3JkZXItY2FuY2VsbGF0aW9uLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBSZXBsZW5pc2htZW50T3JkZXJDYW5jZWxsYXRpb25EaWFsb2dDb21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveVxue1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICByZXBsZW5pc2htZW50T3JkZXJDb2RlOiBzdHJpbmc7XG5cbiAgZm9jdXNDb25maWc6IEZvY3VzQ29uZmlnID0ge1xuICAgIHRyYXA6IHRydWUsXG4gICAgYmxvY2s6IHRydWUsXG4gICAgYXV0b2ZvY3VzOiAnYnV0dG9uJyxcbiAgICBmb2N1c09uRXNjYXBlOiB0cnVlLFxuICB9O1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgaGFuZGxlQ2xpY2soZXZlbnQ6IFVJRXZlbnQpOiB2b2lkIHtcbiAgICAvLyBDbG9zZSBvbiBjbGljayBvdXRzaWRlIHRoZSBkaWFsb2cgd2luZG93XG4gICAgaWYgKChldmVudC50YXJnZXQgYXMgYW55KS50YWdOYW1lID09PSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudGFnTmFtZSkge1xuICAgICAgdGhpcy5jbG9zZSgnQ3Jvc3MgY2xpY2snKTtcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgdXNlclJlcGxlbmlzaG1lbnRPcmRlclNlcnZpY2U6IFJlcGxlbmlzaG1lbnRPcmRlckZhY2FkZSxcbiAgICBwcm90ZWN0ZWQgZ2xvYmFsTWVzc2FnZVNlcnZpY2U6IEdsb2JhbE1lc3NhZ2VTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBsYXVuY2hEaWFsb2dTZXJ2aWNlOiBMYXVuY2hEaWFsb2dTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBlbDogRWxlbWVudFJlZlxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgY29tYmluZUxhdGVzdChbXG4gICAgICAgIHRoaXMudXNlclJlcGxlbmlzaG1lbnRPcmRlclNlcnZpY2VcbiAgICAgICAgICAuZ2V0UmVwbGVuaXNobWVudE9yZGVyRGV0YWlscygpXG4gICAgICAgICAgLnBpcGUoc3RhcnRXaXRoKG51bGwpKSxcbiAgICAgICAgdGhpcy5sYXVuY2hEaWFsb2dTZXJ2aWNlLmRhdGEkLFxuICAgICAgXSkuc3Vic2NyaWJlKChbcmVwbGVuaXNobWVudE9yZGVyLCBjb2RlXSkgPT4ge1xuICAgICAgICB0aGlzLnJlcGxlbmlzaG1lbnRPcmRlckNvZGUgPVxuICAgICAgICAgIGNvZGUgfHwgcmVwbGVuaXNobWVudE9yZGVyPy5yZXBsZW5pc2htZW50T3JkZXJDb2RlO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgdGhpcy51c2VyUmVwbGVuaXNobWVudE9yZGVyU2VydmljZVxuICAgICAgICAuZ2V0Q2FuY2VsUmVwbGVuaXNobWVudE9yZGVyU3VjY2VzcygpXG4gICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB0aGlzLm9uU3VjY2Vzcyh2YWx1ZSkpXG4gICAgKTtcbiAgfVxuXG4gIG9uU3VjY2Vzcyh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5sYXVuY2hEaWFsb2dTZXJ2aWNlLmNsb3NlRGlhbG9nKFxuICAgICAgICAnU3VjY2Vzc2ZmdWxseSBjYW5jZWxsZWQgcmVwbGVuaXNobWVudCdcbiAgICAgICk7XG5cbiAgICAgIHRoaXMuZ2xvYmFsTWVzc2FnZVNlcnZpY2UuYWRkKFxuICAgICAgICB7XG4gICAgICAgICAga2V5OiAnb3JkZXJEZXRhaWxzLmNhbmNlbFJlcGxlbmlzaG1lbnQuY2FuY2VsU3VjY2VzcycsXG4gICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICByZXBsZW5pc2htZW50T3JkZXJDb2RlOiB0aGlzLnJlcGxlbmlzaG1lbnRPcmRlckNvZGUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgR2xvYmFsTWVzc2FnZVR5cGUuTVNHX1RZUEVfQ09ORklSTUFUSU9OXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLnVzZXJSZXBsZW5pc2htZW50T3JkZXJTZXJ2aWNlLmNsZWFyQ2FuY2VsUmVwbGVuaXNobWVudE9yZGVyUHJvY2Vzc1N0YXRlKCk7XG4gIH1cblxuICBjbG9zZShyZWFzb246IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMubGF1bmNoRGlhbG9nU2VydmljZS5jbG9zZURpYWxvZyhyZWFzb24pO1xuICB9XG5cbiAgY2FuY2VsUmVwbGVuaXNobWVudCgpOiB2b2lkIHtcbiAgICB0aGlzLnVzZXJSZXBsZW5pc2htZW50T3JkZXJTZXJ2aWNlLmNhbmNlbFJlcGxlbmlzaG1lbnRPcmRlcihcbiAgICAgIHRoaXMucmVwbGVuaXNobWVudE9yZGVyQ29kZVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iLCI8ZGl2XG4gIFtjeEZvY3VzXT1cImZvY3VzQ29uZmlnXCJcbiAgKGVzYyk9XCJjbG9zZSgnRXNjYXBlIGNsaWNrZWQnKVwiXG4gIGNsYXNzPVwiY3gtY2FuY2VsLXJlcGxlbmlzaG1lbnQtZGlhbG9nLWZvcmVncm91bmRcIlxuPlxuICA8ZGl2IGNsYXNzPVwiY3gtY2FuY2VsLXJlcGxlbmlzaG1lbnQtZGlhbG9nLWNvbnRlbnRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY3gtY2FuY2VsLXJlcGxlbmlzaG1lbnQtZGlhbG9nLWhlYWRlclwiPlxuICAgICAgPGgzPlxuICAgICAgICB7eyAnb3JkZXJEZXRhaWxzLmNhbmNlbFJlcGxlbmlzaG1lbnQudGl0bGUnIHwgY3hUcmFuc2xhdGUgfX1cbiAgICAgIDwvaDM+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImN4LWNhbmNlbC1yZXBsZW5pc2htZW50LWRpYWxvZy1kZXNjcmlwdGlvblwiPlxuICAgICAge3sgJ29yZGVyRGV0YWlscy5jYW5jZWxSZXBsZW5pc2htZW50LmRlc2NyaXB0aW9uJyB8IGN4VHJhbnNsYXRlIH19XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY3gtY2FuY2VsLXJlcGxlbmlzaG1lbnQtZGlhbG9nLWJvZHlcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjeC1jYW5jZWwtcmVwbGVuaXNobWVudC1idG5zIHJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tYmxvY2sgYnRuLWFjdGlvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xvc2UoJ0Nsb3NlIFJlcGxlbmlzaG1lbnQgRGlhbG9nJylcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7ICdvcmRlckRldGFpbHMuY2FuY2VsUmVwbGVuaXNobWVudC5yZWplY3QnIHwgY3hUcmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1ibG9jayBidG4tcHJpbWFyeVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2FuY2VsUmVwbGVuaXNobWVudCgpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyAnb3JkZXJEZXRhaWxzLmNhbmNlbFJlcGxlbmlzaG1lbnQuYWNjZXB0JyB8IGN4VHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=