barsa-sap-ui 2.0.92 → 2.0.94
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/barsa-card-row-payam/barsa-card-row-payam.component.mjs +3 -3
- package/esm2022/lib/barsa-form-side-content/barsa-form-side-content.component.mjs +3 -3
- package/esm2022/lib/barsa-pishnamayesh-payam/barsa-pishnamayesh-payam.component.mjs +3 -3
- package/esm2022/lib/barsa-ulv-main/barsa-ulv-main.component.mjs +10 -6
- package/esm2022/lib/card-item/card-item.component.mjs +3 -4
- package/esm2022/lib/card-view-content/card-view-content.component.mjs +2 -2
- package/esm2022/lib/report-view-renderer.directive.mjs +6 -4
- package/esm2022/lib/sap-ui-report-base.component.mjs +2 -2
- package/esm2022/lib/ui-card-view/ui-card-view.component.mjs +5 -7
- package/esm2022/lib/ui-report-container/ui-report-container.component.mjs +3 -3
- package/esm2022/lib/ui-table-view/ui-table-view.component.mjs +6 -2
- package/esm2022/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.mjs +10 -3
- package/esm2022/lib/ulv-context-menu/ulv-context-menu.component.mjs +3 -3
- package/fesm2022/barsa-sap-ui.mjs +82 -66
- package/fesm2022/barsa-sap-ui.mjs.map +1 -1
- package/lib/barsa-pishnamayesh-payam/barsa-pishnamayesh-payam.component.d.ts +1 -0
- package/lib/barsa-sap-ui.module.d.ts +1 -1
- package/lib/barsa-ulv-main/barsa-ulv-main.component.d.ts +4 -2
- package/lib/index.d.ts +1 -1
- package/lib/report-view-renderer.directive.d.ts +3 -2
- package/lib/ui-table-view/ui-table-view.component.d.ts +1 -0
- package/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.d.ts +3 -0
- package/package.json +1 -1
|
@@ -21,10 +21,10 @@ export class BarsaCardRowPayamComponent extends BaseViewItemPropsComponent {
|
|
|
21
21
|
this.content = this._domSanitizer.bypassSecurityTrustHtml(`<div style="color:black;font-size:12pt;font-family:Calibri,Helvetica,sans-serif;">okkkk</div>`);
|
|
22
22
|
}
|
|
23
23
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaCardRowPayamComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
24
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: BarsaCardRowPayamComponent, selector: "bsu-barsa-card-row-payam", usesInheritance: true, ngImport: i0, template: "<fd-card cardType=\"object\" class=\"docs-flex-item-margin\">\n <fd-card-header (click)=\"hideContent = !hideContent\" bodyClick style=\"border-bottom: none\">\n <fd-card-main-header>\n <fd-avatar\n image=\"http://picsum.photos/id/1018/400\"\n [circle]=\"true\"\n size=\"s\"\n ariaLabel=\"avatar image\"\n title=\"avatar image\"\n ></fd-avatar>\n <h2 fd-card-title>\n <div style=\"display: flex; column-gap: 1.275rem\">\n <span>\
|
|
24
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: BarsaCardRowPayamComponent, selector: "bsu-barsa-card-row-payam", usesInheritance: true, ngImport: i0, template: "<fd-card cardType=\"object\" class=\"docs-flex-item-margin\">\n <fd-card-header (click)=\"hideContent = !hideContent\" bodyClick style=\"border-bottom: none\">\n <fd-card-main-header>\n <fd-avatar\n image=\"http://picsum.photos/id/1018/400\"\n [circle]=\"true\"\n size=\"s\"\n ariaLabel=\"avatar image\"\n title=\"avatar image\"\n ></fd-avatar>\n <h2 fd-card-title>\n <div style=\"display: flex; column-gap: 1.275rem\">\n <span>\u0631\u0627\u0647\u0628\u0631 \u0633\u06CC\u0633\u062A\u0645</span>\n <fd-object-attribute style=\"direction: ltr\">\u062E\u0648\u0627\u0646\u062F\u0647 \u062F\u0631: 1402/12/28 14:20 </fd-object-attribute>\n <span fd-object-status status=\"negative\" label=\"\u062E\u06CC\u0644\u06CC \u0645\u0647\u0645\" aria-label=\"\u062E\u06CC\u0644\u06CC \u0645\u0647\u0645\"></span>\n </div>\n <div style=\"position: absolute; left: 1.2rem; top: 50%\"><fd-icon [glyph]=\"'attachment'\"></fd-icon></div>\n </h2>\n\n <h3 fd-card-subtitle>\n @if (hideContent) {\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n } @if (!hideContent) {\n <ng-container *ngTemplateOutlet=\"toTpl\"></ng-container>\n }\n </h3>\n @if (hideContent) {\n <span fd-card-counter><div style=\"direction: ltr\">1402/12/28 14:20</div> </span>\n } @if (!hideContent) {\n <span\n fd-card-counter\n ulvContextMenu\n [menuItems]=\"contextMenuItems\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n ></span>\n }\n </fd-card-main-header>\n </fd-card-header>\n @if (!hideContent) {\n <fd-card-content>\n <ng-container *ngTemplateOutlet=\"attachmentsTpl\"></ng-container>\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n </fd-card-content>\n }\n</fd-card>\n\n<ng-template #contentTpl>\n <div style=\"padding-top: 0.5rem; margin-top: 1rem; border-top: 1px solid #ccc\" [innerHtml]=\"content\"></div>\n</ng-template>\n\n<ng-template #toTpl>\n <div>To: \u0645\u0646</div>\n <div>Cc: \u0645\u0646</div>\n</ng-template>\n<ng-template #attachmentsTpl>\n <div class=\"file-viewer-attachments\">\n @for (file of mo.F5.Files; track file) { @if (!file.IsDeleted) {\n <bsu-file-viewer-popover\n [file]=\"file\"\n [files]=\"mo.F5.Files\"\n [deviceSize]=\"deviceSize\"\n [canDownload]=\"true\"\n [disableRemove]=\"true\"\n [fdType]=\"'transparent'\"\n ></bsu-file-viewer-popover>\n } }\n </div>\n @if (mo.F5.Files.length > 1) {\n <button\n fd-button\n [fdType]=\"'transparent'\"\n [label]=\"'Download' | bbbTranslate: 'All'\"\n [glyph]=\"'download'\"\n downloadFiles\n [files]=\"mo.F5.Files\"\n ></button>\n }\n</ng-template>\n", styles: [":host{display:block;width:100%;height:100%;padding-bottom:.5rem}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.BodyClickDirective, selector: "[bodyClick]", inputs: ["disableBodyClick"] }, { kind: "component", type: i3.AvatarComponent, selector: "fd-avatar", inputs: ["class", "id", "ariaLabel", "ariaLabelledby", "label", "size", "font", "glyph", "zoomGlyph", "circle", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "random", "clickable", "valueState", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i5.CardComponent, selector: "fd-card", inputs: ["badge", "badgeIcon", "badgeColor", "badgeColorSecondary", "badgeStatus", "badgeAriaLabel", "secondBadge", "secondBadgeIcon", "secondBadgeColor", "secondBadgeColorSecondary", "secondBadgeStatus", "secondBadgeAriaLabel", "isLoading", "cardType", "id", "ariaRoledescription", "ariaDescription", "ariaLabel", "role", "interactive", "selected", "ariaPosinset", "ariaSetsize"], outputs: ["ariaPosinsetChange", "ariaSetsizeChange"] }, { kind: "component", type: i5.CardHeaderComponent, selector: "fd-card-header", inputs: ["ariaRoleDescription"] }, { kind: "component", type: i5.CardMainHeaderComponent, selector: "fd-card-main-header", inputs: ["interactive", "title"] }, { kind: "component", type: i5.CardContentComponent, selector: "fd-card-content" }, { kind: "directive", type: i5.CardTitleDirective, selector: "[fd-card-title]", inputs: ["id"] }, { kind: "directive", type: i5.CardSubtitleDirective, selector: "[fd-card-subtitle]" }, { kind: "directive", type: i5.CardCounterDirective, selector: "[fd-card-counter]", inputs: ["status"] }, { kind: "component", type: i6.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "component", type: i7.ObjectStatusComponent, selector: "[fd-object-status]", inputs: ["class", "status", "glyph", "glyphFont", "label", "glyphAriaLabel", "indicationColor", "clickable", "inverted", "large", "secondaryIndication", "textTemplate"] }, { kind: "component", type: i8.UlvContextMenuComponent, selector: "bsu-ulv-context-menu,[ulvContextMenu]", inputs: ["onlyOverflow", "deviceName", "menuItems", "allColumns", "index", "mo", "styleIndex", "conditionalFormats", "disableOverflowContextMenu", "footerMode"], outputs: ["commandClick"] }, { kind: "component", type: i9.FileViewerPopoverComponent, selector: "bsu-file-viewer-popover", inputs: ["files", "file", "deviceSize", "canDownload", "disableRemove", "fdType"], outputs: ["remove"] }, { kind: "directive", type: i10.DownloadFilesDirective, selector: "[downloadFiles]", inputs: ["files"] }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
25
25
|
}
|
|
26
26
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaCardRowPayamComponent, decorators: [{
|
|
27
27
|
type: Component,
|
|
28
|
-
args: [{ selector: 'bsu-barsa-card-row-payam', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-card cardType=\"object\" class=\"docs-flex-item-margin\">\n <fd-card-header (click)=\"hideContent = !hideContent\" bodyClick style=\"border-bottom: none\">\n <fd-card-main-header>\n <fd-avatar\n image=\"http://picsum.photos/id/1018/400\"\n [circle]=\"true\"\n size=\"s\"\n ariaLabel=\"avatar image\"\n title=\"avatar image\"\n ></fd-avatar>\n <h2 fd-card-title>\n <div style=\"display: flex; column-gap: 1.275rem\">\n <span>\
|
|
28
|
+
args: [{ selector: 'bsu-barsa-card-row-payam', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-card cardType=\"object\" class=\"docs-flex-item-margin\">\n <fd-card-header (click)=\"hideContent = !hideContent\" bodyClick style=\"border-bottom: none\">\n <fd-card-main-header>\n <fd-avatar\n image=\"http://picsum.photos/id/1018/400\"\n [circle]=\"true\"\n size=\"s\"\n ariaLabel=\"avatar image\"\n title=\"avatar image\"\n ></fd-avatar>\n <h2 fd-card-title>\n <div style=\"display: flex; column-gap: 1.275rem\">\n <span>\u0631\u0627\u0647\u0628\u0631 \u0633\u06CC\u0633\u062A\u0645</span>\n <fd-object-attribute style=\"direction: ltr\">\u062E\u0648\u0627\u0646\u062F\u0647 \u062F\u0631: 1402/12/28 14:20 </fd-object-attribute>\n <span fd-object-status status=\"negative\" label=\"\u062E\u06CC\u0644\u06CC \u0645\u0647\u0645\" aria-label=\"\u062E\u06CC\u0644\u06CC \u0645\u0647\u0645\"></span>\n </div>\n <div style=\"position: absolute; left: 1.2rem; top: 50%\"><fd-icon [glyph]=\"'attachment'\"></fd-icon></div>\n </h2>\n\n <h3 fd-card-subtitle>\n @if (hideContent) {\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n } @if (!hideContent) {\n <ng-container *ngTemplateOutlet=\"toTpl\"></ng-container>\n }\n </h3>\n @if (hideContent) {\n <span fd-card-counter><div style=\"direction: ltr\">1402/12/28 14:20</div> </span>\n } @if (!hideContent) {\n <span\n fd-card-counter\n ulvContextMenu\n [menuItems]=\"contextMenuItems\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n ></span>\n }\n </fd-card-main-header>\n </fd-card-header>\n @if (!hideContent) {\n <fd-card-content>\n <ng-container *ngTemplateOutlet=\"attachmentsTpl\"></ng-container>\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n </fd-card-content>\n }\n</fd-card>\n\n<ng-template #contentTpl>\n <div style=\"padding-top: 0.5rem; margin-top: 1rem; border-top: 1px solid #ccc\" [innerHtml]=\"content\"></div>\n</ng-template>\n\n<ng-template #toTpl>\n <div>To: \u0645\u0646</div>\n <div>Cc: \u0645\u0646</div>\n</ng-template>\n<ng-template #attachmentsTpl>\n <div class=\"file-viewer-attachments\">\n @for (file of mo.F5.Files; track file) { @if (!file.IsDeleted) {\n <bsu-file-viewer-popover\n [file]=\"file\"\n [files]=\"mo.F5.Files\"\n [deviceSize]=\"deviceSize\"\n [canDownload]=\"true\"\n [disableRemove]=\"true\"\n [fdType]=\"'transparent'\"\n ></bsu-file-viewer-popover>\n } }\n </div>\n @if (mo.F5.Files.length > 1) {\n <button\n fd-button\n [fdType]=\"'transparent'\"\n [label]=\"'Download' | bbbTranslate: 'All'\"\n [glyph]=\"'download'\"\n downloadFiles\n [files]=\"mo.F5.Files\"\n ></button>\n }\n</ng-template>\n", styles: [":host{display:block;width:100%;height:100%;padding-bottom:.5rem}\n"] }]
|
|
29
29
|
}] });
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtY2FyZC1yb3ctcGF5YW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtY2FyZC1yb3ctcGF5YW0vYmFyc2EtY2FyZC1yb3ctcGF5YW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtY2FyZC1yb3ctcGF5YW0vYmFyc2EtY2FyZC1yb3ctcGF5YW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUczRSxPQUFPLEVBQUUsMEJBQTBCLEVBQXVCLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7OztBQU92RixNQUFNLE9BQU8sMEJBQTJCLFNBQVEsMEJBQTBCO0lBTjFFOztRQU9JLGdCQUFXLEdBQUcsS0FBSyxDQUFDO0tBU3ZCO0lBTkcsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsdUJBQXVCLENBQ3JELCtGQUErRixDQUNsRyxDQUFDO0lBQ04sQ0FBQzs4R0FUUSwwQkFBMEI7a0dBQTFCLDBCQUEwQix1RkNWdkMsK25HQThFQTs7MkZEcEVhLDBCQUEwQjtrQkFOdEMsU0FBUzsrQkFDSSwwQkFBMEIsbUJBR25CLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuXHJcbmltcG9ydCB7IEJhc2VWaWV3SXRlbVByb3BzQ29tcG9uZW50LCBNZXRhb2JqZWN0RGF0YU1vZGVsIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYnN1LWJhcnNhLWNhcmQtcm93LXBheWFtJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXJzYS1jYXJkLXJvdy1wYXlhbS5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9iYXJzYS1jYXJkLXJvdy1wYXlhbS5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIEJhcnNhQ2FyZFJvd1BheWFtQ29tcG9uZW50IGV4dGVuZHMgQmFzZVZpZXdJdGVtUHJvcHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgaGlkZUNvbnRlbnQgPSBmYWxzZTtcclxuICAgIGNvbnRlbnQ6IFNhZmVIdG1sO1xyXG4gICAgcGFyYW1ldGVyczogQmFyc2FDYXJkUm93UGF5YW07XHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgICAgIHRoaXMuY29udGVudCA9IHRoaXMuX2RvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChcclxuICAgICAgICAgICAgYDxkaXYgc3R5bGU9XCJjb2xvcjpibGFjaztmb250LXNpemU6MTJwdDtmb250LWZhbWlseTpDYWxpYnJpLEhlbHZldGljYSxzYW5zLXNlcmlmO1wiPm9ra2trPC9kaXY+YFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbn1cclxuaW50ZXJmYWNlIEJhcnNhQ2FyZFJvd1BheWFtIGV4dGVuZHMgTWV0YW9iamVjdERhdGFNb2RlbCB7XHJcbiAgICBGaWVsZFRpdGxlOiBzdHJpbmc7XHJcbiAgICBGaWVsZERhdGVUaW1lTGVmdDogc3RyaW5nO1xyXG4gICAgRmllbGREYXRlVGltZVJpZ2h0OiBzdHJpbmc7XHJcbiAgICBTaG93QXR0YWNobWVudHM6IGJvb2xlYW47XHJcbiAgICBGaWVsZEF0dGFjaG1lbnRzOiBzdHJpbmc7XHJcbn1cclxuIiwiPGZkLWNhcmQgY2FyZFR5cGU9XCJvYmplY3RcIiBjbGFzcz1cImRvY3MtZmxleC1pdGVtLW1hcmdpblwiPlxuICAgIDxmZC1jYXJkLWhlYWRlciAoY2xpY2spPVwiaGlkZUNvbnRlbnQgPSAhaGlkZUNvbnRlbnRcIiBib2R5Q2xpY2sgc3R5bGU9XCJib3JkZXItYm90dG9tOiBub25lXCI+XG4gICAgICAgIDxmZC1jYXJkLW1haW4taGVhZGVyPlxuICAgICAgICAgICAgPGZkLWF2YXRhclxuICAgICAgICAgICAgICAgIGltYWdlPVwiaHR0cDovL3BpY3N1bS5waG90b3MvaWQvMTAxOC80MDBcIlxuICAgICAgICAgICAgICAgIFtjaXJjbGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICAgICAgICAgIGFyaWFMYWJlbD1cImF2YXRhciBpbWFnZVwiXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJhdmF0YXIgaW1hZ2VcIlxuICAgICAgICAgICAgPjwvZmQtYXZhdGFyPlxuICAgICAgICAgICAgPGgyIGZkLWNhcmQtdGl0bGU+XG4gICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGNvbHVtbi1nYXA6IDEuMjc1cmVtXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPtix2KfZh9io2LEg2LPbjNiz2KrZhTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPGZkLW9iamVjdC1hdHRyaWJ1dGUgc3R5bGU9XCJkaXJlY3Rpb246IGx0clwiPtiu2YjYp9mG2K/ZhyDYr9ixOiAxNDAyLzEyLzI4IDE0OjIwIDwvZmQtb2JqZWN0LWF0dHJpYnV0ZT5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtb2JqZWN0LXN0YXR1cyBzdGF0dXM9XCJuZWdhdGl2ZVwiIGxhYmVsPVwi2K7bjNmE24wg2YXZh9mFXCIgYXJpYS1sYWJlbD1cItiu24zZhNuMINmF2YfZhVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAxLjJyZW07IHRvcDogNTAlXCI+PGZkLWljb24gW2dseXBoXT1cIidhdHRhY2htZW50J1wiPjwvZmQtaWNvbj48L2Rpdj5cbiAgICAgICAgICAgIDwvaDI+XG5cbiAgICAgICAgICAgIDxoMyBmZC1jYXJkLXN1YnRpdGxlPlxuICAgICAgICAgICAgICAgIEBpZiAoaGlkZUNvbnRlbnQpIHtcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFRwbFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIH0gQGlmICghaGlkZUNvbnRlbnQpIHtcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidG9UcGxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2gzPlxuICAgICAgICAgICAgQGlmIChoaWRlQ29udGVudCkge1xuICAgICAgICAgICAgPHNwYW4gZmQtY2FyZC1jb3VudGVyPjxkaXYgc3R5bGU9XCJkaXJlY3Rpb246IGx0clwiPjE0MDIvMTIvMjggMTQ6MjA8L2Rpdj4gPC9zcGFuPlxuICAgICAgICAgICAgfSBAaWYgKCFoaWRlQ29udGVudCkge1xuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBmZC1jYXJkLWNvdW50ZXJcbiAgICAgICAgICAgICAgICB1bHZDb250ZXh0TWVudVxuICAgICAgICAgICAgICAgIFttZW51SXRlbXNdPVwiY29udGV4dE1lbnVJdGVtc1wiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XT1cImRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XCJcbiAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZmQtY2FyZC1tYWluLWhlYWRlcj5cbiAgICA8L2ZkLWNhcmQtaGVhZGVyPlxuICAgIEBpZiAoIWhpZGVDb250ZW50KSB7XG4gICAgPGZkLWNhcmQtY29udGVudD5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImF0dGFjaG1lbnRzVHBsXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50VHBsXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9mZC1jYXJkLWNvbnRlbnQ+XG4gICAgfVxuPC9mZC1jYXJkPlxuXG48bmctdGVtcGxhdGUgI2NvbnRlbnRUcGw+XG4gICAgPGRpdiBzdHlsZT1cInBhZGRpbmctdG9wOiAwLjVyZW07IG1hcmdpbi10b3A6IDFyZW07IGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjXCIgW2lubmVySHRtbF09XCJjb250ZW50XCI+PC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3RvVHBsPlxuICAgIDxkaXY+VG86INmF2YY8L2Rpdj5cbiAgICA8ZGl2PkNjOiDZhdmGPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNhdHRhY2htZW50c1RwbD5cbiAgICA8ZGl2IGNsYXNzPVwiZmlsZS12aWV3ZXItYXR0YWNobWVudHNcIj5cbiAgICAgICAgQGZvciAoZmlsZSBvZiBtby5GNS5GaWxlczsgdHJhY2sgZmlsZSkgeyBAaWYgKCFmaWxlLklzRGVsZXRlZCkge1xuICAgICAgICA8YnN1LWZpbGUtdmlld2VyLXBvcG92ZXJcbiAgICAgICAgICAgIFtmaWxlXT1cImZpbGVcIlxuICAgICAgICAgICAgW2ZpbGVzXT1cIm1vLkY1LkZpbGVzXCJcbiAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgICAgICAgICAgW2NhbkRvd25sb2FkXT1cInRydWVcIlxuICAgICAgICAgICAgW2Rpc2FibGVSZW1vdmVdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbZmRUeXBlXT1cIid0cmFuc3BhcmVudCdcIlxuICAgICAgICA+PC9ic3UtZmlsZS12aWV3ZXItcG9wb3Zlcj5cbiAgICAgICAgfSB9XG4gICAgPC9kaXY+XG4gICAgQGlmIChtby5GNS5GaWxlcy5sZW5ndGggPiAxKSB7XG4gICAgPGJ1dHRvblxuICAgICAgICBmZC1idXR0b25cbiAgICAgICAgW2ZkVHlwZV09XCIndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgW2xhYmVsXT1cIidEb3dubG9hZCcgfCBiYmJUcmFuc2xhdGU6ICdBbGwnXCJcbiAgICAgICAgW2dseXBoXT1cIidkb3dubG9hZCdcIlxuICAgICAgICBkb3dubG9hZEZpbGVzXG4gICAgICAgIFtmaWxlc109XCJtby5GNS5GaWxlc1wiXG4gICAgPjwvYnV0dG9uPlxuICAgIH1cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -32,11 +32,11 @@ export class BarsaFormSideContentComponent extends FormPropsBaseComponent {
|
|
|
32
32
|
return isSmallDevice;
|
|
33
33
|
}
|
|
34
34
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaFormSideContentComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
35
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: BarsaFormSideContentComponent, selector: "bsu-barsa-form-side-content", host: { properties: { "class.smallDevice": "this._isSmallDevice", "style.background": "this._background" } }, providers: [LayoutService], usesInheritance: true, ngImport: i0, template: "@if(isMobile) {\n<button\n fd-shellbar-side-nav\n fd-button\n fdType=\"transparent\"\n glyph=\"menu2\"\n style=\"width: 2.75rem\"\n (click)=\"$event.stopPropagation(); isOpenQuickAccess = true\"\n></button>\n\n<div\n class=\"sidemenu-h tw-fixed tw-bg-white tw-transition-all tw-z-[
|
|
35
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: BarsaFormSideContentComponent, selector: "bsu-barsa-form-side-content", host: { properties: { "class.smallDevice": "this._isSmallDevice", "style.background": "this._background" } }, providers: [LayoutService], usesInheritance: true, ngImport: i0, template: "@if(isMobile) {\n<button\n fd-shellbar-side-nav\n fd-button\n fdType=\"transparent\"\n glyph=\"menu2\"\n style=\"width: 2.75rem\"\n (click)=\"$event.stopPropagation(); isOpenQuickAccess = true\"\n></button>\n\n<div\n class=\"sidemenu-h tw-fixed tw-bg-white tw-transition-all tw-z-[1001] tw-shadow-2xl tw-overflow-auto\"\n [class.tw-w-screen]=\"isMobile\"\n [class.-tw-right-full]=\"isMobile\"\n [class.tw-w-96]=\"!isMobile\"\n [class.-tw-right-96]=\"!isMobile\"\n fillEmptySpace\n [class.!tw-right-0]=\"isOpenQuickAccess\"\n (click)=\"$event.stopPropagation()\"\n>\n <button\n fd-shellbar-side-nav\n fd-button\n fdType=\"transparent\"\n glyph=\"decline\"\n (click)=\"$event.stopPropagation(); isOpenQuickAccess = false\"\n routeFormChange\n [bodyClick]=\"true\"\n (stateChanged)=\"afterViewInit && (isOpenQuickAccess = false)\"\n ></button>\n @if (sideContentLayout ) {\n <bsu-ly-layout-panel\n style=\"width: 100%\"\n [config]=\"sideContentLayout\"\n [hideTitle]=\"parameters?.HideSideContentTitle === true\"\n ></bsu-ly-layout-panel\n >}\n</div>\n} @if (sideContentLayout && mainContentLayout) {\n\n<fd-dynamic-side-content\n [class.rtl]=\"rtl\"\n fillEmptySpace\n [decrement]=\"'40px'\"\n [disable]=\"autoHeight\"\n [setMinHeight]=\"true\"\n [size]=\"isMobile ? 'sm' : smallDevice ? 'md' : 'xl'\"\n>\n <fd-dynamic-side-content-side>\n <bsu-ly-layout-panel [config]=\"sideContentLayout\" [hideTitle]=\"parameters?.HideSideContentTitle === true\">\n </bsu-ly-layout-panel>\n </fd-dynamic-side-content-side>\n <fd-dynamic-side-content-main [style.width]=\"isMobile ? null : parameters?.MainContentWidth\">\n <bsu-ly-layout-panel [config]=\"mainContentLayout\" [hideTitle]=\"parameters?.HideMainContentTitle === true\">\n </bsu-ly-layout-panel>\n </fd-dynamic-side-content-main>\n</fd-dynamic-side-content>\n} @else {\n<fd-message-strip type=\"error\" [dismissible]=\"false\"\n >side content and main content does not defined correctly.</fd-message-strip\n>\n}\n<ng-template #error>\n <fd-message-strip type=\"error\" [dismissible]=\"false\"\n >side content and main content does not defined correctly.</fd-message-strip\n >\n</ng-template>\n", styles: [":host{width:100%;height:100%;display:flex;position:relative;flex-direction:column}fd-dynamic-side-content-main{border:.0625rem solid var(--sapTile_SeparatorColor, #ccc)!important;background-color:var(--sapBaseColor)}fd-dynamic-side-content-side{border:.0625rem solid var(--sapTile_SeparatorColor, #ccc)!important;border-left:none;background-color:var(--sapBaseColor)}fd-dynamic-side-content.rtl fd-dynamic-side-content-side{border-left:none!important}:host ::ng-deep bnrc-field-ui{padding:0!important}:host ::ng-deep bsu-ly-vertical-layout bsu-ly-layout-panel:last-of-type .fd-panel__content{border-bottom:none!important}\n"], dependencies: [{ kind: "directive", type: i1.FillEmptySpaceDirective, selector: "[fillEmptySpace]", inputs: ["containerDom", "decrement", "disable", "height", "dontUseTopBound", "setMinHeight"], exportAs: ["fillEmptySpace"] }, { kind: "directive", type: i1.BodyClickDirective, selector: "[bodyClick]", inputs: ["disableBodyClick"] }, { kind: "directive", type: i1.RouteFormChangeDirective, selector: "[routeFormChange]", inputs: ["handleBodyClick"], outputs: ["stateChanged"] }, { kind: "component", type: i2.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i3.DynamicSideContentComponent, selector: "fd-dynamic-side-content", inputs: ["position", "size", "id"] }, { kind: "component", type: i3.DynamicSideContentSideComponent, selector: "fd-dynamic-side-content-side", inputs: ["id"] }, { kind: "component", type: i3.DynamicSideContentMainComponent, selector: "fd-dynamic-side-content-main", inputs: ["id"] }, { kind: "component", type: i4.MessageStripComponent, selector: "fd-message-strip", inputs: ["class", "dismissible", "noIcon", "type", "id", "ariaLabelledBy", "ariaLabel", "width", "minWidth", "marginBottom", "indicationColor"], outputs: ["onDismiss"] }, { kind: "directive", type: i5.ShellbarSidenavDirective, selector: "[fdShellbarSidenav], [fd-shellbar-side-nav]" }, { kind: "component", type: i6.LyLayoutPanelComponent, selector: "bsu-ly-layout-panel", inputs: ["renderItems", "isRoot", "hideTitle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36
36
|
}
|
|
37
37
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaFormSideContentComponent, decorators: [{
|
|
38
38
|
type: Component,
|
|
39
|
-
args: [{ selector: 'bsu-barsa-form-side-content', changeDetection: ChangeDetectionStrategy.OnPush, providers: [LayoutService], template: "@if(isMobile) {\n<button\n fd-shellbar-side-nav\n fd-button\n fdType=\"transparent\"\n glyph=\"menu2\"\n style=\"width: 2.75rem\"\n (click)=\"$event.stopPropagation(); isOpenQuickAccess = true\"\n></button>\n\n<div\n class=\"sidemenu-h tw-fixed tw-bg-white tw-transition-all tw-z-[
|
|
39
|
+
args: [{ selector: 'bsu-barsa-form-side-content', changeDetection: ChangeDetectionStrategy.OnPush, providers: [LayoutService], template: "@if(isMobile) {\n<button\n fd-shellbar-side-nav\n fd-button\n fdType=\"transparent\"\n glyph=\"menu2\"\n style=\"width: 2.75rem\"\n (click)=\"$event.stopPropagation(); isOpenQuickAccess = true\"\n></button>\n\n<div\n class=\"sidemenu-h tw-fixed tw-bg-white tw-transition-all tw-z-[1001] tw-shadow-2xl tw-overflow-auto\"\n [class.tw-w-screen]=\"isMobile\"\n [class.-tw-right-full]=\"isMobile\"\n [class.tw-w-96]=\"!isMobile\"\n [class.-tw-right-96]=\"!isMobile\"\n fillEmptySpace\n [class.!tw-right-0]=\"isOpenQuickAccess\"\n (click)=\"$event.stopPropagation()\"\n>\n <button\n fd-shellbar-side-nav\n fd-button\n fdType=\"transparent\"\n glyph=\"decline\"\n (click)=\"$event.stopPropagation(); isOpenQuickAccess = false\"\n routeFormChange\n [bodyClick]=\"true\"\n (stateChanged)=\"afterViewInit && (isOpenQuickAccess = false)\"\n ></button>\n @if (sideContentLayout ) {\n <bsu-ly-layout-panel\n style=\"width: 100%\"\n [config]=\"sideContentLayout\"\n [hideTitle]=\"parameters?.HideSideContentTitle === true\"\n ></bsu-ly-layout-panel\n >}\n</div>\n} @if (sideContentLayout && mainContentLayout) {\n\n<fd-dynamic-side-content\n [class.rtl]=\"rtl\"\n fillEmptySpace\n [decrement]=\"'40px'\"\n [disable]=\"autoHeight\"\n [setMinHeight]=\"true\"\n [size]=\"isMobile ? 'sm' : smallDevice ? 'md' : 'xl'\"\n>\n <fd-dynamic-side-content-side>\n <bsu-ly-layout-panel [config]=\"sideContentLayout\" [hideTitle]=\"parameters?.HideSideContentTitle === true\">\n </bsu-ly-layout-panel>\n </fd-dynamic-side-content-side>\n <fd-dynamic-side-content-main [style.width]=\"isMobile ? null : parameters?.MainContentWidth\">\n <bsu-ly-layout-panel [config]=\"mainContentLayout\" [hideTitle]=\"parameters?.HideMainContentTitle === true\">\n </bsu-ly-layout-panel>\n </fd-dynamic-side-content-main>\n</fd-dynamic-side-content>\n} @else {\n<fd-message-strip type=\"error\" [dismissible]=\"false\"\n >side content and main content does not defined correctly.</fd-message-strip\n>\n}\n<ng-template #error>\n <fd-message-strip type=\"error\" [dismissible]=\"false\"\n >side content and main content does not defined correctly.</fd-message-strip\n >\n</ng-template>\n", styles: [":host{width:100%;height:100%;display:flex;position:relative;flex-direction:column}fd-dynamic-side-content-main{border:.0625rem solid var(--sapTile_SeparatorColor, #ccc)!important;background-color:var(--sapBaseColor)}fd-dynamic-side-content-side{border:.0625rem solid var(--sapTile_SeparatorColor, #ccc)!important;border-left:none;background-color:var(--sapBaseColor)}fd-dynamic-side-content.rtl fd-dynamic-side-content-side{border-left:none!important}:host ::ng-deep bnrc-field-ui{padding:0!important}:host ::ng-deep bsu-ly-vertical-layout bsu-ly-layout-panel:last-of-type .fd-panel__content{border-bottom:none!important}\n"] }]
|
|
40
40
|
}], propDecorators: { _isSmallDevice: [{
|
|
41
41
|
type: HostBinding,
|
|
42
42
|
args: ['class.smallDevice']
|
|
@@ -44,4 +44,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
|
44
44
|
type: HostBinding,
|
|
45
45
|
args: ['style.background']
|
|
46
46
|
}] } });
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtZm9ybS1zaWRlLWNvbnRlbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtZm9ybS1zaWRlLWNvbnRlbnQvYmFyc2EtZm9ybS1zaWRlLWNvbnRlbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtZm9ybS1zaWRlLWNvbnRlbnQvYmFyc2EtZm9ybS1zaWRlLWNvbnRlbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDeEYsT0FBTyxFQUlILDZCQUE2QixFQUM3QixzQkFBc0IsRUFDdEIsYUFBYSxFQUNoQixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7OztBQVM5QixNQUFNLE9BQU8sNkJBQThCLFNBQVEsc0JBQXNCO0lBUHpFOztRQVFzQyxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQU16RCxzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFFMUIsa0JBQWEsR0FBRyxLQUFLLENBQUM7S0FrQnpCO0lBakJHLFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLDZCQUE2QixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuRyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsNkJBQTZCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25HLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLElBQUkscUJBQXFCLENBQUM7UUFDcEUsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQztRQUM3QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFDRCxlQUFlO1FBQ1gsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFDUyxrQkFBa0IsQ0FBQyxVQUFpQztRQUMxRCxNQUFNLGFBQWEsR0FBRyxVQUFVLEtBQUssR0FBRyxJQUFJLFVBQVUsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQzlFLE9BQU8sYUFBYSxDQUFDO0lBQ3pCLENBQUM7OEdBMUJRLDZCQUE2QjtrR0FBN0IsNkJBQTZCLG9LQUYzQixDQUFDLGFBQWEsQ0FBQyxpRENmOUIsa3pFQW1FQTs7MkZEbERhLDZCQUE2QjtrQkFQekMsU0FBUzsrQkFDSSw2QkFBNkIsbUJBR3RCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxhQUFhLENBQUM7OEJBR1EsY0FBYztzQkFBL0MsV0FBVzt1QkFBQyxtQkFBbUI7Z0JBQ0MsV0FBVztzQkFBM0MsV0FBVzt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFiYnJldmF0aW9uRGV2aWNlU2l6ZSxcbiAgICBNZXRhb2JqZWN0RGF0YU1vZGVsLFxuICAgIExheW91dFNldHRpbmcsXG4gICAgRmluZExheW91dFNldHRpbmdGcm9tTGF5b3V0OTQsXG4gICAgRm9ybVByb3BzQmFzZUNvbXBvbmVudCxcbiAgICBMYXlvdXRTZXJ2aWNlXG59IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtYmFyc2EtZm9ybS1zaWRlLWNvbnRlbnQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXJzYS1mb3JtLXNpZGUtY29udGVudC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYmFyc2EtZm9ybS1zaWRlLWNvbnRlbnQuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtMYXlvdXRTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBCYXJzYUZvcm1TaWRlQ29udGVudENvbXBvbmVudCBleHRlbmRzIEZvcm1Qcm9wc0Jhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3Muc21hbGxEZXZpY2UnKSBfaXNTbWFsbERldmljZSA9IGZhbHNlO1xuICAgIEBIb3N0QmluZGluZygnc3R5bGUuYmFja2dyb3VuZCcpIF9iYWNrZ3JvdW5kOiBzdHJpbmc7XG4gICAgcGFyYW1ldGVyczogQmFyc2FGb3JtU2lkZUNvbnRlbnRTZXR0aW5nO1xuICAgIHNpZGVDb250ZW50TGF5b3V0OiBMYXlvdXRTZXR0aW5nIHwgbnVsbDtcbiAgICBtYWluQ29udGVudExheW91dDogTGF5b3V0U2V0dGluZyB8IG51bGw7XG4gICAgYXV0b0hlaWdodDogYm9vbGVhbjtcbiAgICBpc09wZW5RdWlja0FjY2VzcyA9IGZhbHNlO1xuICAgIHNtYWxsRGV2aWNlOiBib29sZWFuO1xuICAgIGFmdGVyVmlld0luaXQgPSBmYWxzZTtcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5zaWRlQ29udGVudExheW91dCA9IEZpbmRMYXlvdXRTZXR0aW5nRnJvbUxheW91dDk0KHRoaXMubGF5b3V0OTQsIHRoaXMucGFyYW1ldGVycy5TaWRlQ29udGVudCk7XG4gICAgICAgIHRoaXMubWFpbkNvbnRlbnRMYXlvdXQgPSBGaW5kTGF5b3V0U2V0dGluZ0Zyb21MYXlvdXQ5NCh0aGlzLmxheW91dDk0LCB0aGlzLnBhcmFtZXRlcnMuTWFpbkNvbnRlbnQpO1xuICAgICAgICB0aGlzLl9iYWNrZ3JvdW5kID0gdGhpcy5wYXJhbWV0ZXJzLkJnQ29sb3IgfHwgJ3ZhcigtLXNhcEJhc2VDb2xvciknO1xuICAgICAgICB0aGlzLmF1dG9IZWlnaHQgPSB0aGlzLnBhcmFtZXRlcnMuQXV0b0hlaWdodDtcbiAgICAgICAgdGhpcy5zbWFsbERldmljZSA9IHRoaXMuX2lzU21hbGxEZXZpY2VTaXplKHRoaXMuZGV2aWNlU2l6ZSk7XG4gICAgICAgIHRoaXMuaXNPcGVuUXVpY2tBY2Nlc3MgPSBOdW1iZXIodGhpcy5wYXJhbWV0ZXJzLkZpcnN0RGVmYXVsdE1lbnVTdGF0ZSkgPT09IDE7XG4gICAgfVxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgICAgIHRoaXMuYWZ0ZXJWaWV3SW5pdCA9IHRydWU7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfaXNTbWFsbERldmljZVNpemUoZGV2aWNlU2l6ZTogQWJicmV2YXRpb25EZXZpY2VTaXplKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGlzU21hbGxEZXZpY2UgPSBkZXZpY2VTaXplID09PSAncycgfHwgZGV2aWNlU2l6ZSA9PT0gJ20nID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgICByZXR1cm4gaXNTbWFsbERldmljZTtcbiAgICB9XG59XG5pbnRlcmZhY2UgQmFyc2FGb3JtU2lkZUNvbnRlbnRTZXR0aW5nIGV4dGVuZHMgTWV0YW9iamVjdERhdGFNb2RlbCB7XG4gICAgU2lkZUNvbnRlbnQ6IHN0cmluZztcbiAgICBNYWluQ29udGVudDogc3RyaW5nO1xuICAgIEhpZGVTaWRlQ29udGVudFRpdGxlOiBib29sZWFuO1xuICAgIEhpZGVNYWluQ29udGVudFRpdGxlOiBib29sZWFuO1xuICAgIEJnQ29sb3I6IHN0cmluZztcbiAgICBNYWluQ29udGVudFdpZHRoOiBzdHJpbmc7XG4gICAgQXV0b0hlaWdodDogYm9vbGVhbjtcbiAgICBGaXJzdERlZmF1bHRNZW51U3RhdGU6IG51bWJlcjtcbn1cbiIsIkBpZihpc01vYmlsZSkge1xuPGJ1dHRvblxuICAgIGZkLXNoZWxsYmFyLXNpZGUtbmF2XG4gICAgZmQtYnV0dG9uXG4gICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgIGdseXBoPVwibWVudTJcIlxuICAgIHN0eWxlPVwid2lkdGg6IDIuNzVyZW1cIlxuICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IGlzT3BlblF1aWNrQWNjZXNzID0gdHJ1ZVwiXG4+PC9idXR0b24+XG5cbjxkaXZcbiAgICBjbGFzcz1cInNpZGVtZW51LWggdHctZml4ZWQgdHctYmctd2hpdGUgdHctdHJhbnNpdGlvbi1hbGwgdHctei1bMTAwMV0gdHctc2hhZG93LTJ4bCB0dy1vdmVyZmxvdy1hdXRvXCJcbiAgICBbY2xhc3MudHctdy1zY3JlZW5dPVwiaXNNb2JpbGVcIlxuICAgIFtjbGFzcy4tdHctcmlnaHQtZnVsbF09XCJpc01vYmlsZVwiXG4gICAgW2NsYXNzLnR3LXctOTZdPVwiIWlzTW9iaWxlXCJcbiAgICBbY2xhc3MuLXR3LXJpZ2h0LTk2XT1cIiFpc01vYmlsZVwiXG4gICAgZmlsbEVtcHR5U3BhY2VcbiAgICBbY2xhc3MuIXR3LXJpZ2h0LTBdPVwiaXNPcGVuUXVpY2tBY2Nlc3NcIlxuICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuPlxuICAgIDxidXR0b25cbiAgICAgICAgZmQtc2hlbGxiYXItc2lkZS1uYXZcbiAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgZ2x5cGg9XCJkZWNsaW5lXCJcbiAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgaXNPcGVuUXVpY2tBY2Nlc3MgPSBmYWxzZVwiXG4gICAgICAgIHJvdXRlRm9ybUNoYW5nZVxuICAgICAgICBbYm9keUNsaWNrXT1cInRydWVcIlxuICAgICAgICAoc3RhdGVDaGFuZ2VkKT1cImFmdGVyVmlld0luaXQgJiYgKGlzT3BlblF1aWNrQWNjZXNzID0gZmFsc2UpXCJcbiAgICA+PC9idXR0b24+XG4gICAgQGlmIChzaWRlQ29udGVudExheW91dCApIHtcbiAgICA8YnN1LWx5LWxheW91dC1wYW5lbFxuICAgICAgICBzdHlsZT1cIndpZHRoOiAxMDAlXCJcbiAgICAgICAgW2NvbmZpZ109XCJzaWRlQ29udGVudExheW91dFwiXG4gICAgICAgIFtoaWRlVGl0bGVdPVwicGFyYW1ldGVycz8uSGlkZVNpZGVDb250ZW50VGl0bGUgPT09IHRydWVcIlxuICAgID48L2JzdS1seS1sYXlvdXQtcGFuZWxcbiAgICA+fVxuPC9kaXY+XG59IEBpZiAoc2lkZUNvbnRlbnRMYXlvdXQgJiYgbWFpbkNvbnRlbnRMYXlvdXQpIHtcblxuPGZkLWR5bmFtaWMtc2lkZS1jb250ZW50XG4gICAgW2NsYXNzLnJ0bF09XCJydGxcIlxuICAgIGZpbGxFbXB0eVNwYWNlXG4gICAgW2RlY3JlbWVudF09XCInNDBweCdcIlxuICAgIFtkaXNhYmxlXT1cImF1dG9IZWlnaHRcIlxuICAgIFtzZXRNaW5IZWlnaHRdPVwidHJ1ZVwiXG4gICAgW3NpemVdPVwiaXNNb2JpbGUgPyAnc20nIDogc21hbGxEZXZpY2UgPyAnbWQnIDogJ3hsJ1wiXG4+XG4gICAgPGZkLWR5bmFtaWMtc2lkZS1jb250ZW50LXNpZGU+XG4gICAgICAgIDxic3UtbHktbGF5b3V0LXBhbmVsIFtjb25maWddPVwic2lkZUNvbnRlbnRMYXlvdXRcIiBbaGlkZVRpdGxlXT1cInBhcmFtZXRlcnM/LkhpZGVTaWRlQ29udGVudFRpdGxlID09PSB0cnVlXCI+XG4gICAgICAgIDwvYnN1LWx5LWxheW91dC1wYW5lbD5cbiAgICA8L2ZkLWR5bmFtaWMtc2lkZS1jb250ZW50LXNpZGU+XG4gICAgPGZkLWR5bmFtaWMtc2lkZS1jb250ZW50LW1haW4gW3N0eWxlLndpZHRoXT1cImlzTW9iaWxlID8gbnVsbCA6IHBhcmFtZXRlcnM/Lk1haW5Db250ZW50V2lkdGhcIj5cbiAgICAgICAgPGJzdS1seS1sYXlvdXQtcGFuZWwgW2NvbmZpZ109XCJtYWluQ29udGVudExheW91dFwiIFtoaWRlVGl0bGVdPVwicGFyYW1ldGVycz8uSGlkZU1haW5Db250ZW50VGl0bGUgPT09IHRydWVcIj5cbiAgICAgICAgPC9ic3UtbHktbGF5b3V0LXBhbmVsPlxuICAgIDwvZmQtZHluYW1pYy1zaWRlLWNvbnRlbnQtbWFpbj5cbjwvZmQtZHluYW1pYy1zaWRlLWNvbnRlbnQ+XG59IEBlbHNlIHtcbjxmZC1tZXNzYWdlLXN0cmlwIHR5cGU9XCJlcnJvclwiIFtkaXNtaXNzaWJsZV09XCJmYWxzZVwiXG4gICAgPnNpZGUgY29udGVudCBhbmQgbWFpbiBjb250ZW50IGRvZXMgbm90IGRlZmluZWQgY29ycmVjdGx5LjwvZmQtbWVzc2FnZS1zdHJpcFxuPlxufVxuPG5nLXRlbXBsYXRlICNlcnJvcj5cbiAgICA8ZmQtbWVzc2FnZS1zdHJpcCB0eXBlPVwiZXJyb3JcIiBbZGlzbWlzc2libGVdPVwiZmFsc2VcIlxuICAgICAgICA+c2lkZSBjb250ZW50IGFuZCBtYWluIGNvbnRlbnQgZG9lcyBub3QgZGVmaW5lZCBjb3JyZWN0bHkuPC9mZC1tZXNzYWdlLXN0cmlwXG4gICAgPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -43,7 +43,7 @@ export class BarsaPishnamayeshPayamComponent extends FieldBaseComponent {
|
|
|
43
43
|
useFactory: getDateService,
|
|
44
44
|
deps: [LogService]
|
|
45
45
|
}
|
|
46
|
-
], usesInheritance: true, ngImport: i0, template: "@if (data) {\n<ng-container\n *ngTemplateOutlet=\"\n showPayamClass;\n context: {\n $implicit: data,\n primary: !data?.$details?.length,\n isFirst: true\n }\n \"\n>\n</ng-container>\n}\n<ng-template #showPayamClass let-data let-primary=\"primary\" let-isFirst=\"isFirst\">\n <ng-container\n *ngTemplateOutlet=\"\n namayeshPayam;\n context: {\n $implicit: data.payam.Subject,\n fromText: data.payam.FromText,\n toText: data.$toText,\n importance: data.$importance,\n readDate: data.$readDate,\n sendDate: data.$sendDate,\n ccText: data.$ccText,\n bccText: data.$bccText,\n accessLevel: data.$accessLevel,\n content: data.$content,\n fromPhoto: data.$fromPhoto,\n details: data.$details,\n attachments: data.$attachments,\n todo: data.$todo,\n customText: data.payam.CustomText,\n primary: primary,\n isFirst: isFirst\n }\n \"\n >\n </ng-container>\n</ng-template>\n\n<ng-template\n #namayeshPayam\n let-subject\n let-content=\"content\"\n let-fromText=\"fromText\"\n let-toText=\"toText\"\n let-importance=\"importance\"\n let-readDate=\"readDate\"\n let-sendDate=\"sendDate\"\n let-ccText=\"ccText\"\n let-bccText=\"bccText\"\n let-fromPhoto=\"fromPhoto\"\n let-details=\"details\"\n let-accessLevel=\"accessLevel\"\n let-primary=\"primary\"\n let-isFirst=\"isFirst\"\n let-attachments=\"attachments\"\n let-todo=\"todo\"\n let-customText=\"customText\"\n>\n <fd-card cardType=\"object\">\n <fd-card-header>\n <fd-card-main-header>\n <fd-avatar\n [image]=\"fromPhoto\"\n [circle]=\"true\"\n size=\"s\"\n [ariaLabel]=\"fromText\"\n [label]=\"fromText\"\n [title]=\"fromText\"\n ></fd-avatar>\n <div fd-card-title class=\"header-fields\">\n <h5 fd-title>\n <a fd-link [emphasized]=\"true\" aria-label=\"Sender\"> {{ fromText }}</a>\n </h5>\n <fd-object-identifier [description]=\"'(' + sendDate + ')'\"> </fd-object-identifier>\n </div>\n <div fd-card-subtitle>\n <h5 fd-title>{{ subject }}</h5>\n <fd-popover>\n <fd-popover-control>\n <button fd-button fdType=\"transparent\" [fdMenu]=\"true\">\n {{ 'Recievers' | bbbTranslate }}\n </button>\n </fd-popover-control>\n <fd-popover-body>\n <ul fd-list>\n @for (rec of toText; track rec) {\n <li fd-list-item>\n <a fd-list-link>{{ rec }}</a>\n </li>\n }\n </ul>\n </fd-popover-body>\n </fd-popover>\n </div>\n </fd-card-main-header>\n </fd-card-header>\n <fd-card-content>\n <fd-panel [expanded]=\"isFirst\">\n <div fd-panel-title id=\"panel-expandable-title-1\">\n <h5 fd-title>{{ '\u0645\u062D\u062A\u0648\u0627\u06CC \u067E\u06CC\u0627\u0645' | bbbTranslate }}</h5>\n <div class=\"payamIcons\">\n @if (importance.icon) {\n <fd-popover>\n <fd-popover-control>\n <img [src]=\"'/Customization/Mail/' + importance.icon\" />\n </fd-popover-control>\n <fd-popover-body>\n <ul fd-list>\n <li fd-list-item>{{ importance.text }}</li>\n </ul>\n </fd-popover-body>\n </fd-popover>\n } @if (accessLevel.icon) {\n <fd-popover>\n <fd-popover-control>\n <img [src]=\"'/Customization/Mail/' + accessLevel.icon\" />\n </fd-popover-control>\n <fd-popover-body>\n <ul fd-list>\n <li fd-list-item>{{ accessLevel.text }}</li>\n </ul>\n </fd-popover-body>\n </fd-popover>\n } @if (todo) {\n <fd-info-label [label]=\"todo.text\" [color]=\"todo.color\" [title]=\"todo.text\"></fd-info-label>\n }\n </div>\n </div>\n <div fd-panel-content>\n @if (customText) {\n <div>\n <fd-message-strip type=\"information\" [noIcon]=\"true\" [dismissible]=\"false\">\n {{ customText }}\n </fd-message-strip>\n </div>\n }\n <div [innerHtml]=\"content\" [disable]=\"!primary || attachments?.length\"></div>\n\n @if (attachments?.length) {\n <div class=\"file-viewer-attachments\">\n @for (file of attachments; track file) { @if (!file.IsDeleted) {\n <bsu-file-viewer-popover\n [file]=\"file\"\n [files]=\"attachments\"\n [deviceSize]=\"(deviceSize$ | async)!!\"\n [canDownload]=\"true\"\n [disableRemove]=\"true\"\n ></bsu-file-viewer-popover>\n } } @if (attachments.length > 1) {\n <button\n fd-button\n [title]=\"'Download' | bbbTranslate\"\n [glyph]=\"'download'\"\n downloadFiles\n [files]=\"attachments\"\n ></button>\n }\n </div>\n }\n <div class=\"readAt\">\n @if (readDate) {\n <fd-object-identifier [description]=\"('ReadAt' | bbbTranslate) + ': (' + readDate + ')'\">\n </fd-object-identifier>\n }\n </div>\n </div>\n </fd-panel>\n </fd-card-content>\n <!-- <fd-card-footer>\n <button *fdCardFooterActionItem fd-button fdCompact>Assign to Project</button>\n </fd-card-footer> -->\n </fd-card>\n @for (detail of details; track detail) {\n <ng-contianer>\n <ng-container\n *ngTemplateOutlet=\"\n showPayamClass;\n context: {\n $implicit: detail\n }\n \"\n >\n </ng-container>\n </ng-contianer>\n }\n</ng-template>\n", styles: [":host{display:block;position:relative;width:100%;height:100%}:host ::ng-deep .fd-panel__content{border-bottom:none;padding-bottom:5px}:host ::ng-deep .fd-card__subtitle{display:flex;align-items:center;column-gap:5px;justify-content:start;height:auto;max-height:initial}:host ::ng-deep .fd-card__subtitle h5{white-space:initial!important}:host ::ng-deep .fd-object-identifier__text{margin-top:0}:host ::ng-deep .fd-panel__header{border-bottom:none}fd-card-header{cursor:default;border-bottom:none!important}fd-card-header:before{position:relative!important;display:none!important}fd-card-header:hover{background:var(--fdCard_Background_Color)!important}.readAt{padding-top:2rem}.readAt ::ng-deep p{color:var(--sapButton_BorderColor)!important}.payamIcons{display:flex;column-gap:5px}.payamIcons img{width:16px}@media (max-width: 410px){h5{max-width:210px}}@media (max-width: 1040px){.h5{max-width:600px}}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.AvatarComponent, selector: "fd-avatar", inputs: ["class", "id", "ariaLabel", "ariaLabelledby", "label", "size", "font", "glyph", "zoomGlyph", "circle", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "random", "clickable", "valueState", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "component", type: i3.LinkComponent, selector: "[fdLink], [fd-link]", inputs: ["class", "emphasized", "disabled", "inverted", "subtle", "undecorated"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i5.CardComponent, selector: "fd-card", inputs: ["badge", "badgeIcon", "badgeColor", "badgeColorSecondary", "badgeStatus", "badgeAriaLabel", "secondBadge", "secondBadgeIcon", "secondBadgeColor", "secondBadgeColorSecondary", "secondBadgeStatus", "secondBadgeAriaLabel", "isLoading", "cardType", "id", "ariaRoledescription", "ariaDescription", "ariaLabel", "role", "interactive", "selected", "ariaPosinset", "ariaSetsize"], outputs: ["ariaPosinsetChange", "ariaSetsizeChange"] }, { kind: "component", type: i5.CardHeaderComponent, selector: "fd-card-header", inputs: ["ariaRoleDescription"] }, { kind: "component", type: i5.CardMainHeaderComponent, selector: "fd-card-main-header", inputs: ["interactive", "title"] }, { kind: "component", type: i5.CardContentComponent, selector: "fd-card-content" }, { kind: "directive", type: i5.CardTitleDirective, selector: "[fd-card-title]", inputs: ["id"] }, { kind: "directive", type: i5.CardSubtitleDirective, selector: "[fd-card-subtitle]" }, { kind: "component", type: i6.InfoLabelComponent, selector: "fd-info-label", inputs: ["class", "type", "glyph", "font", "color", "label", "title", "ariaLabel", "ariaLabelledBy"] }, { kind: "component", type: i7.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i7.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole", "id"], outputs: ["keyDown"] }, { kind: "directive", type: i7.ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "component", type: i8.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i9.MessageStripComponent, selector: "fd-message-strip", inputs: ["class", "dismissible", "noIcon", "type", "id", "ariaLabelledBy", "ariaLabel", "width", "minWidth", "marginBottom", "indicationColor"], outputs: ["onDismiss"] }, { kind: "component", type: i10.ObjectIdentifierComponent, selector: "fd-object-identifier", inputs: ["description", "bold", "medium"] }, { kind: "component", type: i11.PanelComponent, selector: "fd-panel", inputs: ["class", "fixed", "id", "expandId", "expandAriaLabel", "expandAriaLabelledBy", "expanded"], outputs: ["expandedChange"] }, { kind: "directive", type: i11.PanelContentDirective, selector: "[fd-panel-content]", inputs: ["height", "minHeight", "maxHeight", "ariaLabel", "ariaLabelledBy", "role", "id"] }, { kind: "directive", type: i11.PanelTitleDirective, selector: "[fd-panel-title]", inputs: ["id"] }, { kind: "component", type: i12.PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: i12.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "component", type: i12.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "component", type: i13.FileViewerPopoverComponent, selector: "bsu-file-viewer-popover", inputs: ["files", "file", "deviceSize", "canDownload", "disableRemove", "fdType"], outputs: ["remove"] }, { kind: "directive", type: i14.DownloadFilesDirective, selector: "[downloadFiles]", inputs: ["files"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i15.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
46
|
+
], usesInheritance: true, ngImport: i0, template: "@if (data) {\n<ng-container\n *ngTemplateOutlet=\"\n showPayamClass;\n context: {\n $implicit: data,\n primary: !data?.$details?.length,\n isFirst: true\n }\n \"\n>\n</ng-container>\n}\n<ng-template #showPayamClass let-data let-primary=\"primary\" let-isFirst=\"isFirst\">\n <ng-container\n *ngTemplateOutlet=\"\n namayeshPayam;\n context: {\n $implicit: data.payam.Subject,\n mailNoText: data.payam.MailNoText,\n fromText: data.payam.FromText,\n toText: data.$toText,\n importance: data.$importance,\n readDate: data.$readDate,\n sendDate: data.$sendDate,\n ccText: data.$ccText,\n bccText: data.$bccText,\n accessLevel: data.$accessLevel,\n content: data.$content,\n fromPhoto: data.$fromPhoto,\n details: data.$details,\n attachments: data.$attachments,\n todo: data.$todo,\n customText: data.payam.CustomText,\n primary: primary,\n isFirst: isFirst\n }\n \"\n >\n </ng-container>\n</ng-template>\n\n<ng-template\n #namayeshPayam\n let-subject\n let-mailNoText=\"mailNoText\"\n let-content=\"content\"\n let-fromText=\"fromText\"\n let-toText=\"toText\"\n let-importance=\"importance\"\n let-readDate=\"readDate\"\n let-sendDate=\"sendDate\"\n let-ccText=\"ccText\"\n let-bccText=\"bccText\"\n let-fromPhoto=\"fromPhoto\"\n let-details=\"details\"\n let-accessLevel=\"accessLevel\"\n let-primary=\"primary\"\n let-isFirst=\"isFirst\"\n let-attachments=\"attachments\"\n let-todo=\"todo\"\n let-customText=\"customText\"\n>\n <fd-card cardType=\"object\">\n <fd-card-header>\n <fd-card-main-header>\n <fd-avatar\n [image]=\"fromPhoto\"\n [circle]=\"true\"\n size=\"s\"\n [ariaLabel]=\"fromText\"\n [label]=\"fromText\"\n [title]=\"fromText\"\n ></fd-avatar>\n <div fd-card-title class=\"header-fields\">\n <h5 fd-title>\n <a fd-link [emphasized]=\"true\" aria-label=\"Sender\"> {{ fromText }}</a>\n </h5>\n <fd-object-identifier [description]=\"'(' + sendDate + ')'\"> </fd-object-identifier>\n </div>\n <div fd-card-subtitle>\n <h5 fd-title>\n {{ subject }} @if(mailNoText){ <span>({{ mailNoText }})</span>}\n </h5>\n <fd-popover>\n <fd-popover-control>\n <button fd-button fdType=\"transparent\" [fdMenu]=\"true\">\n {{ 'Recievers' | bbbTranslate }}\n </button>\n </fd-popover-control>\n <fd-popover-body>\n <ul fd-list>\n @for (rec of toText; track rec) {\n <li fd-list-item>\n <a fd-list-link>{{ rec }}</a>\n </li>\n }\n </ul>\n </fd-popover-body>\n </fd-popover>\n </div>\n </fd-card-main-header>\n </fd-card-header>\n <fd-card-content>\n <fd-panel [expanded]=\"isFirst\">\n <div fd-panel-title id=\"panel-expandable-title-1\">\n <h5 fd-title>{{ '\u0645\u062D\u062A\u0648\u0627\u06CC \u067E\u06CC\u0627\u0645' | bbbTranslate }}</h5>\n <div class=\"payamIcons\">\n @if (importance.icon) {\n <fd-popover>\n <fd-popover-control>\n <img [src]=\"'/Customization/Mail/' + importance.icon\" />\n </fd-popover-control>\n <fd-popover-body>\n <ul fd-list>\n <li fd-list-item>{{ importance.text }}</li>\n </ul>\n </fd-popover-body>\n </fd-popover>\n } @if (accessLevel.icon) {\n <fd-popover>\n <fd-popover-control>\n <img [src]=\"'/Customization/Mail/' + accessLevel.icon\" />\n </fd-popover-control>\n <fd-popover-body>\n <ul fd-list>\n <li fd-list-item>{{ accessLevel.text }}</li>\n </ul>\n </fd-popover-body>\n </fd-popover>\n } @if (todo) {\n <fd-info-label [label]=\"todo.text\" [color]=\"todo.color\" [title]=\"todo.text\"></fd-info-label>\n }\n </div>\n </div>\n <div fd-panel-content>\n @if (customText) {\n <div>\n <fd-message-strip type=\"information\" [noIcon]=\"true\" [dismissible]=\"false\">\n {{ customText }}\n </fd-message-strip>\n </div>\n }\n <div [innerHtml]=\"content\" [disable]=\"!primary || attachments?.length\"></div>\n\n @if (attachments?.length) {\n <div class=\"file-viewer-attachments\">\n @for (file of attachments; track file) { @if (!file.IsDeleted) {\n <bsu-file-viewer-popover\n [file]=\"file\"\n [files]=\"attachments\"\n [deviceSize]=\"(deviceSize$ | async)!!\"\n [canDownload]=\"true\"\n [disableRemove]=\"true\"\n ></bsu-file-viewer-popover>\n } } @if (attachments.length > 1) {\n <button\n fd-button\n [title]=\"'Download' | bbbTranslate\"\n [glyph]=\"'download'\"\n downloadFiles\n [files]=\"attachments\"\n ></button>\n }\n </div>\n }\n <div class=\"readAt\">\n @if (readDate) {\n <fd-object-identifier [description]=\"('ReadAt' | bbbTranslate) + ': (' + readDate + ')'\">\n </fd-object-identifier>\n }\n </div>\n </div>\n </fd-panel>\n </fd-card-content>\n <!-- <fd-card-footer>\n <button *fdCardFooterActionItem fd-button fdCompact>Assign to Project</button>\n </fd-card-footer> -->\n </fd-card>\n @for (detail of details; track detail) {\n <ng-contianer>\n <ng-container\n *ngTemplateOutlet=\"\n showPayamClass;\n context: {\n $implicit: detail\n }\n \"\n >\n </ng-container>\n </ng-contianer>\n }\n</ng-template>\n", styles: [":host{display:block;position:relative;width:100%;height:100%}:host ::ng-deep .fd-panel__content{border-bottom:none;padding-bottom:5px}:host ::ng-deep .fd-card__subtitle{display:flex;align-items:center;column-gap:5px;justify-content:start;height:auto;max-height:initial}:host ::ng-deep .fd-card__subtitle h5{white-space:initial!important}:host ::ng-deep .fd-object-identifier__text{margin-top:0}:host ::ng-deep .fd-panel__header{border-bottom:none}fd-card-header{cursor:default;border-bottom:none!important}fd-card-header:before{position:relative!important;display:none!important}fd-card-header:hover{background:var(--fdCard_Background_Color)!important}.readAt{padding-top:2rem}.readAt ::ng-deep p{color:var(--sapButton_BorderColor)!important}.payamIcons{display:flex;column-gap:5px}.payamIcons img{width:16px}@media (max-width: 410px){h5{max-width:210px}}@media (max-width: 1040px){.h5{max-width:600px}}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.AvatarComponent, selector: "fd-avatar", inputs: ["class", "id", "ariaLabel", "ariaLabelledby", "label", "size", "font", "glyph", "zoomGlyph", "circle", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "random", "clickable", "valueState", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "component", type: i3.LinkComponent, selector: "[fdLink], [fd-link]", inputs: ["class", "emphasized", "disabled", "inverted", "subtle", "undecorated"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i5.CardComponent, selector: "fd-card", inputs: ["badge", "badgeIcon", "badgeColor", "badgeColorSecondary", "badgeStatus", "badgeAriaLabel", "secondBadge", "secondBadgeIcon", "secondBadgeColor", "secondBadgeColorSecondary", "secondBadgeStatus", "secondBadgeAriaLabel", "isLoading", "cardType", "id", "ariaRoledescription", "ariaDescription", "ariaLabel", "role", "interactive", "selected", "ariaPosinset", "ariaSetsize"], outputs: ["ariaPosinsetChange", "ariaSetsizeChange"] }, { kind: "component", type: i5.CardHeaderComponent, selector: "fd-card-header", inputs: ["ariaRoleDescription"] }, { kind: "component", type: i5.CardMainHeaderComponent, selector: "fd-card-main-header", inputs: ["interactive", "title"] }, { kind: "component", type: i5.CardContentComponent, selector: "fd-card-content" }, { kind: "directive", type: i5.CardTitleDirective, selector: "[fd-card-title]", inputs: ["id"] }, { kind: "directive", type: i5.CardSubtitleDirective, selector: "[fd-card-subtitle]" }, { kind: "component", type: i6.InfoLabelComponent, selector: "fd-info-label", inputs: ["class", "type", "glyph", "font", "color", "label", "title", "ariaLabel", "ariaLabelledBy"] }, { kind: "component", type: i7.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i7.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole", "id"], outputs: ["keyDown"] }, { kind: "directive", type: i7.ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "component", type: i8.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i9.MessageStripComponent, selector: "fd-message-strip", inputs: ["class", "dismissible", "noIcon", "type", "id", "ariaLabelledBy", "ariaLabel", "width", "minWidth", "marginBottom", "indicationColor"], outputs: ["onDismiss"] }, { kind: "component", type: i10.ObjectIdentifierComponent, selector: "fd-object-identifier", inputs: ["description", "bold", "medium"] }, { kind: "component", type: i11.PanelComponent, selector: "fd-panel", inputs: ["class", "fixed", "id", "expandId", "expandAriaLabel", "expandAriaLabelledBy", "expanded"], outputs: ["expandedChange"] }, { kind: "directive", type: i11.PanelContentDirective, selector: "[fd-panel-content]", inputs: ["height", "minHeight", "maxHeight", "ariaLabel", "ariaLabelledBy", "role", "id"] }, { kind: "directive", type: i11.PanelTitleDirective, selector: "[fd-panel-title]", inputs: ["id"] }, { kind: "component", type: i12.PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: i12.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "component", type: i12.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "component", type: i13.FileViewerPopoverComponent, selector: "bsu-file-viewer-popover", inputs: ["files", "file", "deviceSize", "canDownload", "disableRemove", "fdType"], outputs: ["remove"] }, { kind: "directive", type: i14.DownloadFilesDirective, selector: "[downloadFiles]", inputs: ["files"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i15.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
47
47
|
}
|
|
48
48
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaPishnamayeshPayamComponent, decorators: [{
|
|
49
49
|
type: Component,
|
|
@@ -53,7 +53,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
|
53
53
|
useFactory: getDateService,
|
|
54
54
|
deps: [LogService]
|
|
55
55
|
}
|
|
56
|
-
], template: "@if (data) {\n<ng-container\n *ngTemplateOutlet=\"\n showPayamClass;\n context: {\n $implicit: data,\n primary: !data?.$details?.length,\n isFirst: true\n }\n \"\n>\n</ng-container>\n}\n<ng-template #showPayamClass let-data let-primary=\"primary\" let-isFirst=\"isFirst\">\n <ng-container\n *ngTemplateOutlet=\"\n namayeshPayam;\n context: {\n $implicit: data.payam.Subject,\n fromText: data.payam.FromText,\n toText: data.$toText,\n importance: data.$importance,\n readDate: data.$readDate,\n sendDate: data.$sendDate,\n ccText: data.$ccText,\n bccText: data.$bccText,\n accessLevel: data.$accessLevel,\n content: data.$content,\n fromPhoto: data.$fromPhoto,\n details: data.$details,\n attachments: data.$attachments,\n todo: data.$todo,\n customText: data.payam.CustomText,\n primary: primary,\n isFirst: isFirst\n }\n \"\n >\n </ng-container>\n</ng-template>\n\n<ng-template\n #namayeshPayam\n let-subject\n let-content=\"content\"\n let-fromText=\"fromText\"\n let-toText=\"toText\"\n let-importance=\"importance\"\n let-readDate=\"readDate\"\n let-sendDate=\"sendDate\"\n let-ccText=\"ccText\"\n let-bccText=\"bccText\"\n let-fromPhoto=\"fromPhoto\"\n let-details=\"details\"\n let-accessLevel=\"accessLevel\"\n let-primary=\"primary\"\n let-isFirst=\"isFirst\"\n let-attachments=\"attachments\"\n let-todo=\"todo\"\n let-customText=\"customText\"\n>\n <fd-card cardType=\"object\">\n <fd-card-header>\n <fd-card-main-header>\n <fd-avatar\n [image]=\"fromPhoto\"\n [circle]=\"true\"\n size=\"s\"\n [ariaLabel]=\"fromText\"\n [label]=\"fromText\"\n [title]=\"fromText\"\n ></fd-avatar>\n <div fd-card-title class=\"header-fields\">\n <h5 fd-title>\n <a fd-link [emphasized]=\"true\" aria-label=\"Sender\"> {{ fromText }}</a>\n </h5>\n <fd-object-identifier [description]=\"'(' + sendDate + ')'\"> </fd-object-identifier>\n </div>\n <div fd-card-subtitle>\n <h5 fd-title
|
|
56
|
+
], template: "@if (data) {\n<ng-container\n *ngTemplateOutlet=\"\n showPayamClass;\n context: {\n $implicit: data,\n primary: !data?.$details?.length,\n isFirst: true\n }\n \"\n>\n</ng-container>\n}\n<ng-template #showPayamClass let-data let-primary=\"primary\" let-isFirst=\"isFirst\">\n <ng-container\n *ngTemplateOutlet=\"\n namayeshPayam;\n context: {\n $implicit: data.payam.Subject,\n mailNoText: data.payam.MailNoText,\n fromText: data.payam.FromText,\n toText: data.$toText,\n importance: data.$importance,\n readDate: data.$readDate,\n sendDate: data.$sendDate,\n ccText: data.$ccText,\n bccText: data.$bccText,\n accessLevel: data.$accessLevel,\n content: data.$content,\n fromPhoto: data.$fromPhoto,\n details: data.$details,\n attachments: data.$attachments,\n todo: data.$todo,\n customText: data.payam.CustomText,\n primary: primary,\n isFirst: isFirst\n }\n \"\n >\n </ng-container>\n</ng-template>\n\n<ng-template\n #namayeshPayam\n let-subject\n let-mailNoText=\"mailNoText\"\n let-content=\"content\"\n let-fromText=\"fromText\"\n let-toText=\"toText\"\n let-importance=\"importance\"\n let-readDate=\"readDate\"\n let-sendDate=\"sendDate\"\n let-ccText=\"ccText\"\n let-bccText=\"bccText\"\n let-fromPhoto=\"fromPhoto\"\n let-details=\"details\"\n let-accessLevel=\"accessLevel\"\n let-primary=\"primary\"\n let-isFirst=\"isFirst\"\n let-attachments=\"attachments\"\n let-todo=\"todo\"\n let-customText=\"customText\"\n>\n <fd-card cardType=\"object\">\n <fd-card-header>\n <fd-card-main-header>\n <fd-avatar\n [image]=\"fromPhoto\"\n [circle]=\"true\"\n size=\"s\"\n [ariaLabel]=\"fromText\"\n [label]=\"fromText\"\n [title]=\"fromText\"\n ></fd-avatar>\n <div fd-card-title class=\"header-fields\">\n <h5 fd-title>\n <a fd-link [emphasized]=\"true\" aria-label=\"Sender\"> {{ fromText }}</a>\n </h5>\n <fd-object-identifier [description]=\"'(' + sendDate + ')'\"> </fd-object-identifier>\n </div>\n <div fd-card-subtitle>\n <h5 fd-title>\n {{ subject }} @if(mailNoText){ <span>({{ mailNoText }})</span>}\n </h5>\n <fd-popover>\n <fd-popover-control>\n <button fd-button fdType=\"transparent\" [fdMenu]=\"true\">\n {{ 'Recievers' | bbbTranslate }}\n </button>\n </fd-popover-control>\n <fd-popover-body>\n <ul fd-list>\n @for (rec of toText; track rec) {\n <li fd-list-item>\n <a fd-list-link>{{ rec }}</a>\n </li>\n }\n </ul>\n </fd-popover-body>\n </fd-popover>\n </div>\n </fd-card-main-header>\n </fd-card-header>\n <fd-card-content>\n <fd-panel [expanded]=\"isFirst\">\n <div fd-panel-title id=\"panel-expandable-title-1\">\n <h5 fd-title>{{ '\u0645\u062D\u062A\u0648\u0627\u06CC \u067E\u06CC\u0627\u0645' | bbbTranslate }}</h5>\n <div class=\"payamIcons\">\n @if (importance.icon) {\n <fd-popover>\n <fd-popover-control>\n <img [src]=\"'/Customization/Mail/' + importance.icon\" />\n </fd-popover-control>\n <fd-popover-body>\n <ul fd-list>\n <li fd-list-item>{{ importance.text }}</li>\n </ul>\n </fd-popover-body>\n </fd-popover>\n } @if (accessLevel.icon) {\n <fd-popover>\n <fd-popover-control>\n <img [src]=\"'/Customization/Mail/' + accessLevel.icon\" />\n </fd-popover-control>\n <fd-popover-body>\n <ul fd-list>\n <li fd-list-item>{{ accessLevel.text }}</li>\n </ul>\n </fd-popover-body>\n </fd-popover>\n } @if (todo) {\n <fd-info-label [label]=\"todo.text\" [color]=\"todo.color\" [title]=\"todo.text\"></fd-info-label>\n }\n </div>\n </div>\n <div fd-panel-content>\n @if (customText) {\n <div>\n <fd-message-strip type=\"information\" [noIcon]=\"true\" [dismissible]=\"false\">\n {{ customText }}\n </fd-message-strip>\n </div>\n }\n <div [innerHtml]=\"content\" [disable]=\"!primary || attachments?.length\"></div>\n\n @if (attachments?.length) {\n <div class=\"file-viewer-attachments\">\n @for (file of attachments; track file) { @if (!file.IsDeleted) {\n <bsu-file-viewer-popover\n [file]=\"file\"\n [files]=\"attachments\"\n [deviceSize]=\"(deviceSize$ | async)!!\"\n [canDownload]=\"true\"\n [disableRemove]=\"true\"\n ></bsu-file-viewer-popover>\n } } @if (attachments.length > 1) {\n <button\n fd-button\n [title]=\"'Download' | bbbTranslate\"\n [glyph]=\"'download'\"\n downloadFiles\n [files]=\"attachments\"\n ></button>\n }\n </div>\n }\n <div class=\"readAt\">\n @if (readDate) {\n <fd-object-identifier [description]=\"('ReadAt' | bbbTranslate) + ': (' + readDate + ')'\">\n </fd-object-identifier>\n }\n </div>\n </div>\n </fd-panel>\n </fd-card-content>\n <!-- <fd-card-footer>\n <button *fdCardFooterActionItem fd-button fdCompact>Assign to Project</button>\n </fd-card-footer> -->\n </fd-card>\n @for (detail of details; track detail) {\n <ng-contianer>\n <ng-container\n *ngTemplateOutlet=\"\n showPayamClass;\n context: {\n $implicit: detail\n }\n \"\n >\n </ng-container>\n </ng-contianer>\n }\n</ng-template>\n", styles: [":host{display:block;position:relative;width:100%;height:100%}:host ::ng-deep .fd-panel__content{border-bottom:none;padding-bottom:5px}:host ::ng-deep .fd-card__subtitle{display:flex;align-items:center;column-gap:5px;justify-content:start;height:auto;max-height:initial}:host ::ng-deep .fd-card__subtitle h5{white-space:initial!important}:host ::ng-deep .fd-object-identifier__text{margin-top:0}:host ::ng-deep .fd-panel__header{border-bottom:none}fd-card-header{cursor:default;border-bottom:none!important}fd-card-header:before{position:relative!important;display:none!important}fd-card-header:hover{background:var(--fdCard_Background_Color)!important}.readAt{padding-top:2rem}.readAt ::ng-deep p{color:var(--sapButton_BorderColor)!important}.payamIcons{display:flex;column-gap:5px}.payamIcons img{width:16px}@media (max-width: 410px){h5{max-width:210px}}@media (max-width: 1040px){.h5{max-width:600px}}\n"] }]
|
|
57
57
|
}] });
|
|
58
58
|
class PayamClassType {
|
|
59
59
|
constructor(payam, _domSanitizer, _dateService) {
|
|
@@ -156,4 +156,4 @@ class PayamClassType {
|
|
|
156
156
|
return `${dateInfo.dayName} ${dateInfo.day} ${dateInfo.monthName} ${dateInfo.year} ${dateInfo.hour}:${dateInfo.minutes}`;
|
|
157
157
|
}
|
|
158
158
|
}
|
|
159
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtcGlzaG5hbWF5ZXNoLXBheWFtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2JhcnNhLXBpc2huYW1heWVzaC1wYXlhbS9iYXJzYS1waXNobmFtYXllc2gtcGF5YW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtcGlzaG5hbWF5ZXNoLXBheWFtL2JhcnNhLXBpc2huYW1heWVzaC1wYXlhbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRzNFLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsV0FBVyxFQUNYLGNBQWMsRUFDZCxVQUFVLEVBRVYsUUFBUSxFQUVYLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBYzlCLE1BQU0sT0FBTywrQkFBZ0MsU0FBUSxrQkFBa0I7SUFidkU7O1FBZUksYUFBUSxHQUFHLElBQUksQ0FBQztLQWlCbkI7SUFoQkcsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxFQUFFLENBQUM7UUFDekMsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUNMLElBQUksV0FBVyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBRS9DLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUM7WUFDMUMsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDYixXQUFXLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1lBQ3pELENBQUM7WUFDRCxJQUFJLENB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LENBQUMsRUFBRSxDQUFDO1lBQ0osT0FBTyxPQUFPLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxHQUFHLE1BQU0sQ0FBQztRQUMzQyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUNPLFFBQVEsQ0FBQyxJQUFZO1FBQ3pCLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN0QyxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDckMsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFDTyxrQkFBa0IsQ0FBQyxTQUFTO1FBQ2hDLElBQUksUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDNUMsT0FBTywrQkFBK0IsR0FBRyxHQUFHLEdBQUcsU0FBUyxHQUFHLE1BQU0sQ0FBQztRQUN0RSxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUNPLGNBQWMsQ0FBQyxJQUFZO1FBQy9CLG1DQUFtQztRQUNuQyxNQUFNLFFBQVEsR0FBYSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNyRSxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQU8sSUFBSSxRQUFRLENBQUMsR0FBRyxJQUFJLFFBQVEsQ0FBQyxTQUFTLElBQUksUUFBUSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM3SCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcblxuaW1wb3J0IHtcbiAgICBGaWVsZEJhc2VDb21wb25lbnQsXG4gICAgRGF0ZVNlcnZpY2UsXG4gICAgZ2V0RGF0ZVNlcnZpY2UsXG4gICAgTG9nU2VydmljZSxcbiAgICBEYXRlSW5mbyxcbiAgICBCYXJzYUFwaSxcbiAgICBGaWxlQXR0YWNobWVudEluZm9cbn0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtYmFyc2EtcGlzaG5hbWF5ZXNoLXBheWFtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYmFyc2EtcGlzaG5hbWF5ZXNoLXBheWFtLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9iYXJzYS1waXNobmFtYXllc2gtcGF5YW0uY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiBnZXREYXRlU2VydmljZSxcbiAgICAgICAgICAgIGRlcHM6IFtMb2dTZXJ2aWNlXVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBCYXJzYVBpc2huYW1heWVzaFBheWFtQ29tcG9uZW50IGV4dGVuZHMgRmllbGRCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBkYXRhOiBQYXlhbUNsYXNzVHlwZTtcbiAgICBleHBhbmRlZCA9IHRydWU7XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIGNvbnN0IG1vID0gdGhpcy5jb250ZXh0Py5Gb3JtUGFuZWxVaT8uTW87XG4gICAgICAgIGlmIChtbykge1xuICAgICAgICAgICAgbGV0IG1haWxDb250ZW50ID0gbW9bdGhpcy5TZXR0aW5nLkNvbnRyb2xOYW1lXTtcblxuICAgICAgICAgICAgY29uc3QgJEZpZWxkRGljdCA9IG1haWxDb250ZW50LiRGaWVsZERpY3Q7XG4gICAgICAgICAgICBpZiAoJEZpZWxkRGljdCkge1xuICAgICAgICAgICAgICAgIG1haWxDb250ZW50ID0gbWFpbENvbnRlbnRbJEZpZWxkRGljdFsn2YXYrdiq2YjYp9uMINm+24zYp9mFJ11dO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5kYXRhID0gbmV3IFBheWFtQ2xhc3NUeXBlKG1haWxDb250ZW50LCB0aGlzLl9kb21TYW5pdGl6ZXIsIHRoaXMuX2RhdGVTZXJ2aWNlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3NldFZhbHVlKHZhbDogYW55KTogdm9pZCB7XG4gICAgICAgIHN1cGVyLl9zZXRWYWx1ZSh2YWwpO1xuICAgIH1cbn1cblxudHlwZSBQYXlhbVR5cGUgPSB7XG4gICAgQWNjZXNzTGV2ZWw6IG51bWJlcjtcbiAgICBBdHRhY2htZW50cz86IFBheWFtQXR0YWNobWVudFtdOyAvLyBudWxsXG4gICAgQmNjVGV4dDogc3RyaW5nO1xuICAgIFN1YmplY3Q6IHN0cmluZztcbiAgICBDYXRlZ29yeVN0cmluZzogc3RyaW5nO1xuICAgIENjVGV4dDogc3RyaW5nO1xuICAgIENvbnRlbnRIdG1sOiBzdHJpbmc7XG4gICAgQ3VzdG9tVGV4dDogc3RyaW5nO1xuICAgIEZyb21UZXh0OiBzdHJpbmc7XG4gICAgRnJvbVBob3RvOiBzdHJpbmc7XG4gICAgT3JkZXI6IG51bWJlcjsgLy8gMVxuICAgIEltcG9ydGFuY2U6IG51bWJlcjtcbiAgICBSZWFkRGF0ZTogc3RyaW5nOyAvLyBcIm5ldyBEYXRlKDIwMjMsNiwyMCwxMSwyMSwxOSlcIlxuICAgIFNlbmREYXRlOiBzdHJpbmc7IC8vIFwibmV3IERhdGUoMjAyMyw2LDIwLDExLDIwLDU1KVwiXG4gICAgVG9UZXh0OiBzdHJpbmc7XG4gICAgVG9kbzogUGF5YW1Ub2RvOyAvLyBudWxsXG4gICAgRGV0YWlscz86IFBheWFtVHlwZVtdO1xufTtcbmNsYXNzIFBheWFtQ2xhc3NUeXBlIHtcbiAgICAkY29udGVudD86IFNhZmVIdG1sO1xuICAgICRzZW5kRGF0ZT86IHN0cmluZztcbiAgICAkcmVhZERhdGU/OiBzdHJpbmc7XG4gICAgJGZyb21QaG90bz86IHN0cmluZztcbiAgICAkdG9UZXh0Pzogc3RyaW5nW107XG4gICAgJGNjVGV4dD86IHN0cmluZ1tdO1xuICAgICRiY2NUZXh0Pzogc3RyaW5nW107XG4gICAgJGRldGFpbHM/OiBQYXlhbUNsYXNzVHlwZVtdO1xuICAgICRhdHRhY2htZW50cz86IEZpbGVBdHRhY2htZW50SW5mb1tdO1xuICAgICRpbXBvcnRhbmNlOiB7IGljb246IHN0cmluZyB8IG51bGw7IHRleHQ6IHN0cmluZyB8IG51bGwgfTtcbiAgICAkYWNjZXNzTGV2ZWw6IHsgaWNvbjogc3RyaW5nIHwgbnVsbDsgdGV4dDogc3RyaW5nIHwgbnVsbCB9O1xuICAgICR0b2RvOiB7IHRleHQ6IHN0cmluZzsgY29sb3I6IHN0cmluZyB9O1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIHBheWFtOiBQYXlhbVR5cGUsIHByaXZhdGUgX2RvbVNhbml0aXplcjogRG9tU2FuaXRpemVyLCBwcml2YXRlIF9kYXRlU2VydmljZTogRGF0ZVNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy4kY29udGVudCA9IHRoaXMuX2RvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChwYXlhbS5Db250ZW50SHRtbCk7XG4gICAgICAgIHRoaXMuJHNlbmREYXRlID0gdGhpcy5fZ2V0RGF0ZVN0cmluZyhwYXlhbS5TZW5kRGF0ZSk7XG4gICAgICAgIHRoaXMuJHJlYWREYXRlID0gIXBheWFtLlJlYWREYXRlID8gJycgOiB0aGlzLl9nZXREYXRlU3RyaW5nKHBheWFtLlJlYWREYXRlKTtcblxuICAgICAgICB0aGlzLiR0b1RleHQgPSBwYXlhbS5Ub1RleHQuc3BsaXQoJzsnKTtcbiAgICAgICAgdGhpcy4kY2NUZXh0ID0gcGF5YW0uQ2NUZXh0Py5zcGxpdCgnOycpO1xuICAgICAgICB0aGlzLiRiY2NUZXh0ID0gcGF5YW0uQmNjVGV4dD8uc3BsaXQoJzsnKTtcbiAgICAgICAgdGhpcy4kZnJvbVBob3RvID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuR2V0SWNvblVybChwYXlhbS5Gcm9tUGhvdG8sIG51bGwsIG51bGwsIDY0KTtcbiAgICAgICAgdGhpcy4kZGV0YWlscyA9IHBheWFtLkRldGFpbHM/Lm1hcCgoYykgPT4gbmV3IFBheWFtQ2xhc3NUeXBlKGMsIF9kb21TYW5pdGl6ZXIsIF9kYXRlU2VydmljZSkpO1xuICAgICAgICB0aGlzLiRhdHRhY2htZW50cyA9IHBheWFtLkF0dGFjaG1lbnRzPy5tYXAoKGMpID0+ICh7XG4gICAgICAgICAgICBJZDogYy5JZCxcbiAgICAgICAgICAgIElzTmV3OiBmYWxzZSxcbiAgICAgICAgICAgIElzRGVsZXRlZDogZmFsc2UsXG4gICAgICAgICAgICBUeXBlOiBjLkV4dGVuc2lvbixcbiAgICAgICAgICAgIEZpbGVOYW1lOiBgJHtjLk5hbWV9LiR7Yy5FeHRlbnNpb259YFxuICAgICAgICB9KSk7XG4gICAgICAgIHRoaXMuJGltcG9ydGFuY2UgPSB7XG4gICAgICAgICAgICBpY29uOiB0aGlzLl9pY29uSW1wb3J0YW5jZShwYXlhbS5JbXBvcnRhbmNlKSxcbiAgICAgICAgICAgIHRleHQ6IHRoaXMuX3RleHRJbXBvcnRhbmNlKHBheWFtLkltcG9ydGFuY2UpXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuJGFjY2Vzc0xldmVsID0ge1xuICAgICAgICAgICAgaWNvbjogdGhpcy5faWNvbkFjY2Vzc0xldmVsKHBheWFtLkFjY2Vzc0xldmVsKSxcbiAgICAgICAgICAgIHRleHQ6IHRoaXMuX3RleHRBY2Nlc3NMZXZlbChwYXlhbS5BY2Nlc3NMZXZlbClcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAocGF5YW0uVG9kbz8uRHVlRGF0ZSkge1xuICAgICAgICAgICAgdGhpcy4kdG9kbyA9IHRoaXMuX3RleHRUb2RvKHBheWFtLlRvZG8pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHByaXZhdGUgX3RleHRUb2RvKHRvZG86IFBheWFtVG9kbyk6IHsgdGV4dDogc3RyaW5nOyBjb2xvcjogc3RyaW5nIH0ge1xuICAgICAgICBpZiAoIXRvZG8gfHwgIXRvZG8uRHVlRGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHsgdGV4dDogJycsIGNvbG9yOiAnMTAnIH07XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGR1ZURhdGVTdHIgPSAnJztcbiAgICAgICAgbGV0IGRvbmVEYXRlU3RyID0gJyc7XG4gICAgICAgIGlmIChCYXJzYUFwaS5FeHQuaXNTdHJpbmcodG9kby5EdWVEYXRlKSkge1xuICAgICAgICAgICAgZHVlRGF0ZVN0ciA9IHRoaXMuX2dldERhdGVTdHJpbmcodG9kby5EdWVEYXRlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodG9kby5Eb25lRGF0ZSkge1xuICAgICAgICAgICAgZG9uZURhdGVTdHIgPSB0aGlzLl9nZXREYXRlU3RyaW5nKHRvZG8uRG9uZURhdGUpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1ldmFsXG4gICAgICAgIGNvbnN0IGR1ZURhdGUgPSBldmFsKHRvZG8uRHVlRGF0ZSk7XG4gICAgICAgIGlmICh0b2RvLlN0YXRlID09PSAyKSB7XG4gICAgICAgICAgICByZXR1cm4geyB0ZXh0OiBCYXJzYUFwaS5CQkIuTWFpbF9Ub2RvQ29tcGxldGVkICsgJzogJyArIGRvbmVEYXRlU3RyLCBjb2xvcjogJzgnIH07XG4gICAgICAgIH0gZWxzZSBpZiAobmV3IERhdGUoKS5nZXRUaW1lKCkgPCBkdWVEYXRlLmdldFRpbWUoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHsgdGV4dDogQmFyc2FBcGkuQkJCLk1haWxfVG9kb0R1ZURhdGUgKyAnOiAnICsgZHVlRGF0ZVN0ciwgY29sb3I6ICcxJyB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB0ZXh0OiBCYXJzYUFwaS5CQkIuTWFpbF9Ub2RvT3ZlcmR1ZSArICc6ICcgKyAoZG9uZURhdGVTdHIgPyBkb25lRGF0ZVN0ciA6IGR1ZURhdGVTdHIpLFxuICAgICAgICAgICAgICAgIGNvbG9yOiAnMidcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHJpdmF0ZSBfdGV4dEltcG9ydGFuY2UoaSk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICBpZiAoaSkge1xuICAgICAgICAgICAgcmV0dXJuIEJhcnNhQXBpLkJCQlsnTWFpbF9JbXBvcnRhbmNlJyArIGldO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBwcml2YXRlIF90ZXh0QWNjZXNzTGV2ZWwoaSk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICBpZiAoaSkge1xuICAgICAgICAgICAgcmV0dXJuIEJhcnNhQXBpLkJCQlsnTWFpbF9TZW5zaXRpdml0eScgKyBpXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaWNvbkltcG9ydGFuY2UoaSk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICBpZiAoaSkge1xuICAgICAgICAgICAgcmV0dXJuICdwcmlvcml0eV8nICsgaS50b1N0cmluZygpICsgJy5wbmcnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBwcml2YXRlIF9pY29uQWNjZXNzTGV2ZWwoaSk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICBpZiAoaSkge1xuICAgICAgICAgICAgcmV0dXJuICdsb2NrXycgKyBpLnRvU3RyaW5nKCkgKyAnLnBuZyc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHByaXZhdGUgX2dldFNpemUoc2l6ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgc2l6ZSA9IHNpemUucmVwbGFjZSgnS0InLCAn2qnbjNmE2YjYqNin24zYqicpO1xuICAgICAgICBzaXplID0gc2l6ZS5yZXBsYWNlKCdNQicsICfZhdqv2KfYqNin24zYqicpO1xuICAgICAgICBzaXplID0gc2l6ZS5yZXBsYWNlKCdCJywgJ9io2KfbjNiqJyk7XG4gICAgICAgIHJldHVybiBzaXplO1xuICAgIH1cbiAgICBwcml2YXRlIF9nZXRBdHRhY2htZW50SWNvbihleHRlbnNpb24pOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgaWYgKEJhcnNhQXBpLkV4dC5pc0VtcHR5KGV4dGVuc2lvbikgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICByZXR1cm4gJy9hc3NldHMvSW1hZ2VzL0ZpbGVUeXBlSWNvbnMvJyArICdfJyArIGV4dGVuc2lvbiArICcuUE5HJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcHJpdmF0ZSBfZ2V0RGF0ZVN0cmluZyhkYXRlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZXZhbFxuICAgICAgICBjb25zdCBkYXRlSW5mbzogRGF0ZUluZm8gPSB0aGlzLl9kYXRlU2VydmljZS5nZXREYXRlSW5mbyhldmFsKGRhdGUpKTtcbiAgICAgICAgcmV0dXJuIGAke2RhdGVJbmZvLmRheU5hbWV9ICR7ZGF0ZUluZm8uZGF5fSAke2RhdGVJbmZvLm1vbnRoTmFtZX0gJHtkYXRlSW5mby55ZWFyfSAke2RhdGVJbmZvLmhvdXJ9OiR7ZGF0ZUluZm8ubWludXRlc31gO1xuICAgIH1cbn1cblxudHlwZSBQYXlhbUF0dGFjaG1lbnQgPSB7XG4gICAgQXR0YWNodHlwZTogc3RyaW5nOyAvLyBcImF0dGFjaENvbnRlbnRcIlxuICAgIEV4dGVuc2lvbjogc3RyaW5nOyAvLyBcImRvY3hcIlxuICAgIElkOiBzdHJpbmc7IC8vIFwiX09RMlhfU04wb2cyWTRTLVhfQUN4QnRKTWY1b2lnMVwiXG4gICAgTmFtZTogc3RyaW5nOyAvLyBcIkRvY3VtZW50IDEwXCJcbiAgICBTaXplOiBzdHJpbmc7IC8vIFwiMTQuOSBLQlwiXG59O1xudHlwZSBQYXlhbVRvZG8gPSB7IER1ZURhdGU6IHN0cmluZzsgU3RhdGU6IG51bWJlcjsgRG9uZURhdGU/OiBzdHJpbmcgfTtcbiIsIkBpZiAoZGF0YSkge1xuPG5nLWNvbnRhaW5lclxuICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgIHNob3dQYXlhbUNsYXNzO1xuICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAkaW1wbGljaXQ6IGRhdGEsXG4gICAgICAgICAgICBwcmltYXJ5OiAhZGF0YT8uJGRldGFpbHM/Lmxlbmd0aCxcbiAgICAgICAgICAgIGlzRmlyc3Q6IHRydWVcbiAgICAgICAgfVxuICAgIFwiXG4+XG48L25nLWNvbnRhaW5lcj5cbn1cbjxuZy10ZW1wbGF0ZSAjc2hvd1BheWFtQ2xhc3MgbGV0LWRhdGEgbGV0LXByaW1hcnk9XCJwcmltYXJ5XCIgbGV0LWlzRmlyc3Q9XCJpc0ZpcnN0XCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgbmFtYXllc2hQYXlhbTtcbiAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IGRhdGEucGF5YW0uU3ViamVjdCxcbiAgICAgICAgICAgICAgICBmcm9tVGV4dDogZGF0YS5wYXlhbS5Gcm9tVGV4dCxcbiAgICAgICAgICAgICAgICB0b1RleHQ6IGRhdGEuJHRvVGV4dCxcbiAgICAgICAgICAgICAgICBpbXBvcnRhbmNlOiBkYXRhLiRpbXBvcnRhbmNlLFxuICAgICAgICAgICAgICAgIHJlYWREYXRlOiBkYXRhLiRyZWFkRGF0ZSxcbiAgICAgICAgICAgICAgICBzZW5kRGF0ZTogZGF0YS4kc2VuZERhdGUsXG4gICAgICAgICAgICAgICAgY2NUZXh0OiBkYXRhLiRjY1RleHQsXG4gICAgICAgICAgICAgICAgYmNjVGV4dDogZGF0YS4kYmNjVGV4dCxcbiAgICAgICAgICAgICAgICBhY2Nlc3NMZXZlbDogZGF0YS4kYWNjZXNzTGV2ZWwsXG4gICAgICAgICAgICAgICAgY29udGVudDogZGF0YS4kY29udGVudCxcbiAgICAgICAgICAgICAgICBmcm9tUGhvdG86IGRhdGEuJGZyb21QaG90byxcbiAgICAgICAgICAgICAgICBkZXRhaWxzOiBkYXRhLiRkZXRhaWxzLFxuICAgICAgICAgICAgICAgIGF0dGFjaG1lbnRzOiBkYXRhLiRhdHRhY2htZW50cyxcbiAgICAgICAgICAgICAgICB0b2RvOiBkYXRhLiR0b2RvLFxuICAgICAgICAgICAgICAgIGN1c3RvbVRleHQ6IGRhdGEucGF5YW0uQ3VzdG9tVGV4dCxcbiAgICAgICAgICAgICAgICBwcmltYXJ5OiBwcmltYXJ5LFxuICAgICAgICAgICAgICAgIGlzRmlyc3Q6IGlzRmlyc3RcbiAgICAgICAgICAgIH1cbiAgICAgICAgXCJcbiAgICA+XG4gICAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGVcbiAgICAjbmFtYXllc2hQYXlhbVxuICAgIGxldC1zdWJqZWN0XG4gICAgbGV0LWNvbnRlbnQ9XCJjb250ZW50XCJcbiAgICBsZXQtZnJvbVRleHQ9XCJmcm9tVGV4dFwiXG4gICAgbGV0LXRvVGV4dD1cInRvVGV4dFwiXG4gICAgbGV0LWltcG9ydGFuY2U9XCJpbXBvcnRhbmNlXCJcbiAgICBsZXQtcmVhZERhdGU9XCJyZWFkRGF0ZVwiXG4gICAgbGV0LXNlbmREYXRlPVwic2VuZERhdGVcIlxuICAgIGxldC1jY1RleHQ9XCJjY1RleHRcIlxuICAgIGxldC1iY2NUZXh0PVwiYmNjVGV4dFwiXG4gICAgbGV0LWZyb21QaG90bz1cImZyb21QaG90b1wiXG4gICAgbGV0LWRldGFpbHM9XCJkZXRhaWxzXCJcbiAgICBsZXQtYWNjZXNzTGV2ZWw9XCJhY2Nlc3NMZXZlbFwiXG4gICAgbGV0LXByaW1hcnk9XCJwcmltYXJ5XCJcbiAgICBsZXQtaXNGaXJzdD1cImlzRmlyc3RcIlxuICAgIGxldC1hdHRhY2htZW50cz1cImF0dGFjaG1lbnRzXCJcbiAgICBsZXQtdG9kbz1cInRvZG9cIlxuICAgIGxldC1jdXN0b21UZXh0PVwiY3VzdG9tVGV4dFwiXG4+XG4gICAgPGZkLWNhcmQgY2FyZFR5cGU9XCJvYmplY3RcIj5cbiAgICAgICAgPGZkLWNhcmQtaGVhZGVyPlxuICAgICAgICAgICAgPGZkLWNhcmQtbWFpbi1oZWFkZXI+XG4gICAgICAgICAgICAgICAgPGZkLWF2YXRhclxuICAgICAgICAgICAgICAgICAgICBbaW1hZ2VdPVwiZnJvbVBob3RvXCJcbiAgICAgICAgICAgICAgICAgICAgW2NpcmNsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUxhYmVsXT1cImZyb21UZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImZyb21UZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cImZyb21UZXh0XCJcbiAgICAgICAgICAgICAgICA+PC9mZC1hdmF0YXI+XG4gICAgICAgICAgICAgICAgPGRpdiBmZC1jYXJkLXRpdGxlIGNsYXNzPVwiaGVhZGVyLWZpZWxkc1wiPlxuICAgICAgICAgICAgICAgICAgICA8aDUgZmQtdGl0bGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBmZC1saW5rIFtlbXBoYXNpemVkXT1cInRydWVcIiBhcmlhLWxhYmVsPVwiU2VuZGVyXCI+IHt7IGZyb21UZXh0IH19PC9hPlxuICAgICAgICAgICAgICAgICAgICA8L2g1PlxuICAgICAgICAgICAgICAgICAgICA8ZmQtb2JqZWN0LWlkZW50aWZpZXIgW2Rlc2NyaXB0aW9uXT1cIicoJyArIHNlbmREYXRlICsgJyknXCI+IDwvZmQtb2JqZWN0LWlkZW50aWZpZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBmZC1jYXJkLXN1YnRpdGxlPlxuICAgICAgICAgICAgICAgICAgICA8aDUgZmQtdGl0bGU+e3sgc3ViamVjdCB9fTwvaDU+XG4gICAgICAgICAgICAgICAgICAgIDxmZC1wb3BvdmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLXBvcG92ZXItY29udHJvbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGZkLWJ1dHRvbiBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiIFtmZE1lbnVdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnUmVjaWV2ZXJzJyB8IGJiYlRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1wb3BvdmVyLWNvbnRyb2w+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmQtcG9wb3Zlci1ib2R5PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBmZC1saXN0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChyZWMgb2YgdG9UZXh0OyB0cmFjayByZWMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGZkLWxpc3QtaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGZkLWxpc3QtbGluaz57eyByZWMgfX08L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1wb3BvdmVyLWJvZHk+XG4gICAgICAgICAgICAgICAgICAgIDwvZmQtcG9wb3Zlcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZmQtY2FyZC1tYWluLWhlYWRlcj5cbiAgICAgICAgPC9mZC1jYXJkLWhlYWRlcj5cbiAgICAgICAgPGZkLWNhcmQtY29udGVudD5cbiAgICAgICAgICAgIDxmZC1wYW5lbCBbZXhwYW5kZWRdPVwiaXNGaXJzdFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgZmQtcGFuZWwtdGl0bGUgaWQ9XCJwYW5lbC1leHBhbmRhYmxlLXRpdGxlLTFcIj5cbiAgICAgICAgICAgICAgICAgICAgPGg1IGZkLXRpdGxlPnt7ICfZhdit2KrZiNin24wg2b7bjNin2YUnIHwgYmJiVHJhbnNsYXRlIH19PC9oNT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBheWFtSWNvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaW1wb3J0YW5jZS5pY29uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmQtcG9wb3Zlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtcG9wb3Zlci1jb250cm9sPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiJy9DdXN0b21pemF0aW9uL01haWwvJyArIGltcG9ydGFuY2UuaWNvblwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1wb3BvdmVyLWNvbnRyb2w+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLXBvcG92ZXItYm9keT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGZkLWxpc3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgZmQtbGlzdC1pdGVtPnt7IGltcG9ydGFuY2UudGV4dCB9fTwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1wb3BvdmVyLWJvZHk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLXBvcG92ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICB9IEBpZiAoYWNjZXNzTGV2ZWwuaWNvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLXBvcG92ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLXBvcG92ZXItY29udHJvbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cIicvQ3VzdG9taXphdGlvbi9NYWlsLycgKyBhY2Nlc3NMZXZlbC5pY29uXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLXBvcG92ZXItY29udHJvbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtcG9wb3Zlci1ib2R5PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgZmQtbGlzdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBmZC1saXN0LWl0ZW0+e3sgYWNjZXNzTGV2ZWwudGV4dCB9fTwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1wb3BvdmVyLWJvZHk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLXBvcG92ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICB9IEBpZiAodG9kbykge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWluZm8tbGFiZWwgW2xhYmVsXT1cInRvZG8udGV4dFwiIFtjb2xvcl09XCJ0b2RvLmNvbG9yXCIgW3RpdGxlXT1cInRvZG8udGV4dFwiPjwvZmQtaW5mby1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBmZC1wYW5lbC1jb250ZW50PlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGN1c3RvbVRleHQpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1tZXNzYWdlLXN0cmlwIHR5cGU9XCJpbmZvcm1hdGlvblwiIFtub0ljb25dPVwidHJ1ZVwiIFtkaXNtaXNzaWJsZV09XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGN1c3RvbVRleHQgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtbWVzc2FnZS1zdHJpcD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBbaW5uZXJIdG1sXT1cImNvbnRlbnRcIiBbZGlzYWJsZV09XCIhcHJpbWFyeSB8fCBhdHRhY2htZW50cz8ubGVuZ3RoXCI+PC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChhdHRhY2htZW50cz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLXZpZXdlci1hdHRhY2htZW50c1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoZmlsZSBvZiBhdHRhY2htZW50czsgdHJhY2sgZmlsZSkgeyBAaWYgKCFmaWxlLklzRGVsZXRlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGJzdS1maWxlLXZpZXdlci1wb3BvdmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbGVdPVwiZmlsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbGVzXT1cImF0dGFjaG1lbnRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGV2aWNlU2l6ZV09XCIoZGV2aWNlU2l6ZSQgfCBhc3luYykhIVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NhbkRvd25sb2FkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlUmVtb3ZlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvYnN1LWZpbGUtdmlld2VyLXBvcG92ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICB9IH0gQGlmIChhdHRhY2htZW50cy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidEb3dubG9hZCcgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtnbHlwaF09XCInZG93bmxvYWQnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3dubG9hZEZpbGVzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbGVzXT1cImF0dGFjaG1lbnRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlYWRBdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChyZWFkRGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLW9iamVjdC1pZGVudGlmaWVyIFtkZXNjcmlwdGlvbl09XCIoJ1JlYWRBdCcgfCBiYmJUcmFuc2xhdGUpICsgJzogKCcgKyByZWFkRGF0ZSArICcpJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1vYmplY3QtaWRlbnRpZmllcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2ZkLXBhbmVsPlxuICAgICAgICA8L2ZkLWNhcmQtY29udGVudD5cbiAgICAgICAgPCEtLSA8ZmQtY2FyZC1mb290ZXI+XG4gICAgPGJ1dHRvbiAqZmRDYXJkRm9vdGVyQWN0aW9uSXRlbSBmZC1idXR0b24gZmRDb21wYWN0PkFzc2lnbiB0byBQcm9qZWN0PC9idXR0b24+XG4gIDwvZmQtY2FyZC1mb290ZXI+IC0tPlxuICAgIDwvZmQtY2FyZD5cbiAgICBAZm9yIChkZXRhaWwgb2YgZGV0YWlsczsgdHJhY2sgZGV0YWlsKSB7XG4gICAgPG5nLWNvbnRpYW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICBzaG93UGF5YW1DbGFzcztcbiAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogZGV0YWlsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRpYW5lcj5cbiAgICB9XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
159
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtcGlzaG5hbWF5ZXNoLXBheWFtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2JhcnNhLXBpc2huYW1heWVzaC1wYXlhbS9iYXJzYS1waXNobmFtYXllc2gtcGF5YW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtcGlzaG5hbWF5ZXNoLXBheWFtL2JhcnNhLXBpc2huYW1heWVzaC1wYXlhbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRzNFLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsV0FBVyxFQUNYLGNBQWMsRUFDZCxVQUFVLEVBRVYsUUFBUSxFQUVYLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBYzlCLE1BQU0sT0FBTywrQkFBZ0MsU0FBUSxrQkFBa0I7SUFidkU7O1FBZUksYUFBUSxHQUFHLElBQUksQ0FBQztLQWlCbkI7SUFoQkcsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxFQUFFLENBQUM7UUFDekMsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUNMLElBQUksV0FBVyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBRS9DLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUM7WUFDMUMsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDYixXQUFXLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1lBQ3pELENBQUM7WUFDRCxJQUFJLENB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LENBQUMsRUFBRSxDQUFDO1lBQ0osT0FBTyxPQUFPLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxHQUFHLE1BQU0sQ0FBQztRQUMzQyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUNPLFFBQVEsQ0FBQyxJQUFZO1FBQ3pCLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN0QyxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDckMsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFDTyxrQkFBa0IsQ0FBQyxTQUFTO1FBQ2hDLElBQUksUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDNUMsT0FBTywrQkFBK0IsR0FBRyxHQUFHLEdBQUcsU0FBUyxHQUFHLE1BQU0sQ0FBQztRQUN0RSxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUNPLGNBQWMsQ0FBQyxJQUFZO1FBQy9CLG1DQUFtQztRQUNuQyxNQUFNLFFBQVEsR0FBYSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNyRSxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQU8sSUFBSSxRQUFRLENBQUMsR0FBRyxJQUFJLFFBQVEsQ0FBQyxTQUFTLElBQUksUUFBUSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM3SCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcblxuaW1wb3J0IHtcbiAgICBGaWVsZEJhc2VDb21wb25lbnQsXG4gICAgRGF0ZVNlcnZpY2UsXG4gICAgZ2V0RGF0ZVNlcnZpY2UsXG4gICAgTG9nU2VydmljZSxcbiAgICBEYXRlSW5mbyxcbiAgICBCYXJzYUFwaSxcbiAgICBGaWxlQXR0YWNobWVudEluZm9cbn0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtYmFyc2EtcGlzaG5hbWF5ZXNoLXBheWFtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYmFyc2EtcGlzaG5hbWF5ZXNoLXBheWFtLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9iYXJzYS1waXNobmFtYXllc2gtcGF5YW0uY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiBnZXREYXRlU2VydmljZSxcbiAgICAgICAgICAgIGRlcHM6IFtMb2dTZXJ2aWNlXVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBCYXJzYVBpc2huYW1heWVzaFBheWFtQ29tcG9uZW50IGV4dGVuZHMgRmllbGRCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBkYXRhOiBQYXlhbUNsYXNzVHlwZTtcbiAgICBleHBhbmRlZCA9IHRydWU7XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIGNvbnN0IG1vID0gdGhpcy5jb250ZXh0Py5Gb3JtUGFuZWxVaT8uTW87XG4gICAgICAgIGlmIChtbykge1xuICAgICAgICAgICAgbGV0IG1haWxDb250ZW50ID0gbW9bdGhpcy5TZXR0aW5nLkNvbnRyb2xOYW1lXTtcblxuICAgICAgICAgICAgY29uc3QgJEZpZWxkRGljdCA9IG1haWxDb250ZW50LiRGaWVsZERpY3Q7XG4gICAgICAgICAgICBpZiAoJEZpZWxkRGljdCkge1xuICAgICAgICAgICAgICAgIG1haWxDb250ZW50ID0gbWFpbENvbnRlbnRbJEZpZWxkRGljdFsn2YXYrdiq2YjYp9uMINm+24zYp9mFJ11dO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5kYXRhID0gbmV3IFBheWFtQ2xhc3NUeXBlKG1haWxDb250ZW50LCB0aGlzLl9kb21TYW5pdGl6ZXIsIHRoaXMuX2RhdGVTZXJ2aWNlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3NldFZhbHVlKHZhbDogYW55KTogdm9pZCB7XG4gICAgICAgIHN1cGVyLl9zZXRWYWx1ZSh2YWwpO1xuICAgIH1cbn1cblxudHlwZSBQYXlhbVR5cGUgPSB7XG4gICAgQWNjZXNzTGV2ZWw6IG51bWJlcjtcbiAgICBBdHRhY2htZW50cz86IFBheWFtQXR0YWNobWVudFtdOyAvLyBudWxsXG4gICAgQmNjVGV4dDogc3RyaW5nO1xuICAgIFN1YmplY3Q6IHN0cmluZztcbiAgICBNYWluTm9UZXh0OiBzdHJpbmc7XG4gICAgQ2F0ZWdvcnlTdHJpbmc6IHN0cmluZztcbiAgICBDY1RleHQ6IHN0cmluZztcbiAgICBDb250ZW50SHRtbDogc3RyaW5nO1xuICAgIEN1c3RvbVRleHQ6IHN0cmluZztcbiAgICBGcm9tVGV4dDogc3RyaW5nO1xuICAgIEZyb21QaG90bzogc3RyaW5nO1xuICAgIE9yZGVyOiBudW1iZXI7IC8vIDFcbiAgICBJbXBvcnRhbmNlOiBudW1iZXI7XG4gICAgUmVhZERhdGU6IHN0cmluZzsgLy8gXCJuZXcgRGF0ZSgyMDIzLDYsMjAsMTEsMjEsMTkpXCJcbiAgICBTZW5kRGF0ZTogc3RyaW5nOyAvLyBcIm5ldyBEYXRlKDIwMjMsNiwyMCwxMSwyMCw1NSlcIlxuICAgIFRvVGV4dDogc3RyaW5nO1xuICAgIFRvZG86IFBheWFtVG9kbzsgLy8gbnVsbFxuICAgIERldGFpbHM/OiBQYXlhbVR5cGVbXTtcbn07XG5jbGFzcyBQYXlhbUNsYXNzVHlwZSB7XG4gICAgJGNvbnRlbnQ/OiBTYWZlSHRtbDtcbiAgICAkc2VuZERhdGU/OiBzdHJpbmc7XG4gICAgJHJlYWREYXRlPzogc3RyaW5nO1xuICAgICRmcm9tUGhvdG8/OiBzdHJpbmc7XG4gICAgJHRvVGV4dD86IHN0cmluZ1tdO1xuICAgICRjY1RleHQ/OiBzdHJpbmdbXTtcbiAgICAkYmNjVGV4dD86IHN0cmluZ1tdO1xuICAgICRkZXRhaWxzPzogUGF5YW1DbGFzc1R5cGVbXTtcbiAgICAkYXR0YWNobWVudHM/OiBGaWxlQXR0YWNobWVudEluZm9bXTtcbiAgICAkaW1wb3J0YW5jZTogeyBpY29uOiBzdHJpbmcgfCBudWxsOyB0ZXh0OiBzdHJpbmcgfCBudWxsIH07XG4gICAgJGFjY2Vzc0xldmVsOiB7IGljb246IHN0cmluZyB8IG51bGw7IHRleHQ6IHN0cmluZyB8IG51bGwgfTtcbiAgICAkdG9kbzogeyB0ZXh0OiBzdHJpbmc7IGNvbG9yOiBzdHJpbmcgfTtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXlhbTogUGF5YW1UeXBlLCBwcml2YXRlIF9kb21TYW5pdGl6ZXI6IERvbVNhbml0aXplciwgcHJpdmF0ZSBfZGF0ZVNlcnZpY2U6IERhdGVTZXJ2aWNlKSB7XG4gICAgICAgIHRoaXMuJGNvbnRlbnQgPSB0aGlzLl9kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwocGF5YW0uQ29udGVudEh0bWwpO1xuICAgICAgICB0aGlzLiRzZW5kRGF0ZSA9IHRoaXMuX2dldERhdGVTdHJpbmcocGF5YW0uU2VuZERhdGUpO1xuICAgICAgICB0aGlzLiRyZWFkRGF0ZSA9ICFwYXlhbS5SZWFkRGF0ZSA/ICcnIDogdGhpcy5fZ2V0RGF0ZVN0cmluZyhwYXlhbS5SZWFkRGF0ZSk7XG5cbiAgICAgICAgdGhpcy4kdG9UZXh0ID0gcGF5YW0uVG9UZXh0LnNwbGl0KCc7Jyk7XG4gICAgICAgIHRoaXMuJGNjVGV4dCA9IHBheWFtLkNjVGV4dD8uc3BsaXQoJzsnKTtcbiAgICAgICAgdGhpcy4kYmNjVGV4dCA9IHBheWFtLkJjY1RleHQ/LnNwbGl0KCc7Jyk7XG4gICAgICAgIHRoaXMuJGZyb21QaG90byA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLkdldEljb25VcmwocGF5YW0uRnJvbVBob3RvLCBudWxsLCBudWxsLCA2NCk7XG4gICAgICAgIHRoaXMuJGRldGFpbHMgPSBwYXlhbS5EZXRhaWxzPy5tYXAoKGMpID0+IG5ldyBQYXlhbUNsYXNzVHlwZShjLCBfZG9tU2FuaXRpemVyLCBfZGF0ZVNlcnZpY2UpKTtcbiAgICAgICAgdGhpcy4kYXR0YWNobWVudHMgPSBwYXlhbS5BdHRhY2htZW50cz8ubWFwKChjKSA9PiAoe1xuICAgICAgICAgICAgSWQ6IGMuSWQsXG4gICAgICAgICAgICBJc05ldzogZmFsc2UsXG4gICAgICAgICAgICBJc0RlbGV0ZWQ6IGZhbHNlLFxuICAgICAgICAgICAgVHlwZTogYy5FeHRlbnNpb24sXG4gICAgICAgICAgICBGaWxlTmFtZTogYCR7Yy5OYW1lfS4ke2MuRXh0ZW5zaW9ufWBcbiAgICAgICAgfSkpO1xuICAgICAgICB0aGlzLiRpbXBvcnRhbmNlID0ge1xuICAgICAgICAgICAgaWNvbjogdGhpcy5faWNvbkltcG9ydGFuY2UocGF5YW0uSW1wb3J0YW5jZSksXG4gICAgICAgICAgICB0ZXh0OiB0aGlzLl90ZXh0SW1wb3J0YW5jZShwYXlhbS5JbXBvcnRhbmNlKVxuICAgICAgICB9O1xuICAgICAgICB0aGlzLiRhY2Nlc3NMZXZlbCA9IHtcbiAgICAgICAgICAgIGljb246IHRoaXMuX2ljb25BY2Nlc3NMZXZlbChwYXlhbS5BY2Nlc3NMZXZlbCksXG4gICAgICAgICAgICB0ZXh0OiB0aGlzLl90ZXh0QWNjZXNzTGV2ZWwocGF5YW0uQWNjZXNzTGV2ZWwpXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKHBheWFtLlRvZG8/LkR1ZURhdGUpIHtcbiAgICAgICAgICAgIHRoaXMuJHRvZG8gPSB0aGlzLl90ZXh0VG9kbyhwYXlhbS5Ub2RvKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwcml2YXRlIF90ZXh0VG9kbyh0b2RvOiBQYXlhbVRvZG8pOiB7IHRleHQ6IHN0cmluZzsgY29sb3I6IHN0cmluZyB9IHtcbiAgICAgICAgaWYgKCF0b2RvIHx8ICF0b2RvLkR1ZURhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiB7IHRleHQ6ICcnLCBjb2xvcjogJzEwJyB9O1xuICAgICAgICB9XG4gICAgICAgIGxldCBkdWVEYXRlU3RyID0gJyc7XG4gICAgICAgIGxldCBkb25lRGF0ZVN0ciA9ICcnO1xuICAgICAgICBpZiAoQmFyc2FBcGkuRXh0LmlzU3RyaW5nKHRvZG8uRHVlRGF0ZSkpIHtcbiAgICAgICAgICAgIGR1ZURhdGVTdHIgPSB0aGlzLl9nZXREYXRlU3RyaW5nKHRvZG8uRHVlRGF0ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRvZG8uRG9uZURhdGUpIHtcbiAgICAgICAgICAgIGRvbmVEYXRlU3RyID0gdGhpcy5fZ2V0RGF0ZVN0cmluZyh0b2RvLkRvbmVEYXRlKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZXZhbFxuICAgICAgICBjb25zdCBkdWVEYXRlID0gZXZhbCh0b2RvLkR1ZURhdGUpO1xuICAgICAgICBpZiAodG9kby5TdGF0ZSA9PT0gMikge1xuICAgICAgICAgICAgcmV0dXJuIHsgdGV4dDogQmFyc2FBcGkuQkJCLk1haWxfVG9kb0NvbXBsZXRlZCArICc6ICcgKyBkb25lRGF0ZVN0ciwgY29sb3I6ICc4JyB9O1xuICAgICAgICB9IGVsc2UgaWYgKG5ldyBEYXRlKCkuZ2V0VGltZSgpIDwgZHVlRGF0ZS5nZXRUaW1lKCkpIHtcbiAgICAgICAgICAgIHJldHVybiB7IHRleHQ6IEJhcnNhQXBpLkJCQi5NYWlsX1RvZG9EdWVEYXRlICsgJzogJyArIGR1ZURhdGVTdHIsIGNvbG9yOiAnMScgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdGV4dDogQmFyc2FBcGkuQkJCLk1haWxfVG9kb092ZXJkdWUgKyAnOiAnICsgKGRvbmVEYXRlU3RyID8gZG9uZURhdGVTdHIgOiBkdWVEYXRlU3RyKSxcbiAgICAgICAgICAgICAgICBjb2xvcjogJzInXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuICAgIHByaXZhdGUgX3RleHRJbXBvcnRhbmNlKGkpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgaWYgKGkpIHtcbiAgICAgICAgICAgIHJldHVybiBCYXJzYUFwaS5CQkJbJ01haWxfSW1wb3J0YW5jZScgKyBpXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcHJpdmF0ZSBfdGV4dEFjY2Vzc0xldmVsKGkpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgaWYgKGkpIHtcbiAgICAgICAgICAgIHJldHVybiBCYXJzYUFwaS5CQkJbJ01haWxfU2Vuc2l0aXZpdHknICsgaV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHByaXZhdGUgX2ljb25JbXBvcnRhbmNlKGkpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgaWYgKGkpIHtcbiAgICAgICAgICAgIHJldHVybiAncHJpb3JpdHlfJyArIGkudG9TdHJpbmcoKSArICcucG5nJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaWNvbkFjY2Vzc0xldmVsKGkpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgaWYgKGkpIHtcbiAgICAgICAgICAgIHJldHVybiAnbG9ja18nICsgaS50b1N0cmluZygpICsgJy5wbmcnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBwcml2YXRlIF9nZXRTaXplKHNpemU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHNpemUgPSBzaXplLnJlcGxhY2UoJ0tCJywgJ9qp24zZhNmI2KjYp9uM2KonKTtcbiAgICAgICAgc2l6ZSA9IHNpemUucmVwbGFjZSgnTUInLCAn2YXar9in2KjYp9uM2KonKTtcbiAgICAgICAgc2l6ZSA9IHNpemUucmVwbGFjZSgnQicsICfYqNin24zYqicpO1xuICAgICAgICByZXR1cm4gc2l6ZTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfZ2V0QXR0YWNobWVudEljb24oZXh0ZW5zaW9uKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIGlmIChCYXJzYUFwaS5FeHQuaXNFbXB0eShleHRlbnNpb24pID09PSBmYWxzZSkge1xuICAgICAgICAgICAgcmV0dXJuICcvYXNzZXRzL0ltYWdlcy9GaWxlVHlwZUljb25zLycgKyAnXycgKyBleHRlbnNpb24gKyAnLlBORyc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHByaXZhdGUgX2dldERhdGVTdHJpbmcoZGF0ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWV2YWxcbiAgICAgICAgY29uc3QgZGF0ZUluZm86IERhdGVJbmZvID0gdGhpcy5fZGF0ZVNlcnZpY2UuZ2V0RGF0ZUluZm8oZXZhbChkYXRlKSk7XG4gICAgICAgIHJldHVybiBgJHtkYXRlSW5mby5kYXlOYW1lfSAke2RhdGVJbmZvLmRheX0gJHtkYXRlSW5mby5tb250aE5hbWV9ICR7ZGF0ZUluZm8ueWVhcn0gJHtkYXRlSW5mby5ob3VyfToke2RhdGVJbmZvLm1pbnV0ZXN9YDtcbiAgICB9XG59XG5cbnR5cGUgUGF5YW1BdHRhY2htZW50ID0ge1xuICAgIEF0dGFjaHR5cGU6IHN0cmluZzsgLy8gXCJhdHRhY2hDb250ZW50XCJcbiAgICBFeHRlbnNpb246IHN0cmluZzsgLy8gXCJkb2N4XCJcbiAgICBJZDogc3RyaW5nOyAvLyBcIl9PUTJYX1NOMG9nMlk0Uy1YX0FDeEJ0Sk1mNW9pZzFcIlxuICAgIE5hbWU6IHN0cmluZzsgLy8gXCJEb2N1bWVudCAxMFwiXG4gICAgU2l6ZTogc3RyaW5nOyAvLyBcIjE0LjkgS0JcIlxufTtcbnR5cGUgUGF5YW1Ub2RvID0geyBEdWVEYXRlOiBzdHJpbmc7IFN0YXRlOiBudW1iZXI7IERvbmVEYXRlPzogc3RyaW5nIH07XG4iLCJAaWYgKGRhdGEpIHtcbjxuZy1jb250YWluZXJcbiAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICBzaG93UGF5YW1DbGFzcztcbiAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgJGltcGxpY2l0OiBkYXRhLFxuICAgICAgICAgICAgcHJpbWFyeTogIWRhdGE/LiRkZXRhaWxzPy5sZW5ndGgsXG4gICAgICAgICAgICBpc0ZpcnN0OiB0cnVlXG4gICAgICAgIH1cbiAgICBcIlxuPlxuPC9uZy1jb250YWluZXI+XG59XG48bmctdGVtcGxhdGUgI3Nob3dQYXlhbUNsYXNzIGxldC1kYXRhIGxldC1wcmltYXJ5PVwicHJpbWFyeVwiIGxldC1pc0ZpcnN0PVwiaXNGaXJzdFwiPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgIG5hbWF5ZXNoUGF5YW07XG4gICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgJGltcGxpY2l0OiBkYXRhLnBheWFtLlN1YmplY3QsXG4gICAgICAgICAgICAgICAgbWFpbE5vVGV4dDogZGF0YS5wYXlhbS5NYWlsTm9UZXh0LFxuICAgICAgICAgICAgICAgIGZyb21UZXh0OiBkYXRhLnBheWFtLkZyb21UZXh0LFxuICAgICAgICAgICAgICAgIHRvVGV4dDogZGF0YS4kdG9UZXh0LFxuICAgICAgICAgICAgICAgIGltcG9ydGFuY2U6IGRhdGEuJGltcG9ydGFuY2UsXG4gICAgICAgICAgICAgICAgcmVhZERhdGU6IGRhdGEuJHJlYWREYXRlLFxuICAgICAgICAgICAgICAgIHNlbmREYXRlOiBkYXRhLiRzZW5kRGF0ZSxcbiAgICAgICAgICAgICAgICBjY1RleHQ6IGRhdGEuJGNjVGV4dCxcbiAgICAgICAgICAgICAgICBiY2NUZXh0OiBkYXRhLiRiY2NUZXh0LFxuICAgICAgICAgICAgICAgIGFjY2Vzc0xldmVsOiBkYXRhLiRhY2Nlc3NMZXZlbCxcbiAgICAgICAgICAgICAgICBjb250ZW50OiBkYXRhLiRjb250ZW50LFxuICAgICAgICAgICAgICAgIGZyb21QaG90bzogZGF0YS4kZnJvbVBob3RvLFxuICAgICAgICAgICAgICAgIGRldGFpbHM6IGRhdGEuJGRldGFpbHMsXG4gICAgICAgICAgICAgICAgYXR0YWNobWVudHM6IGRhdGEuJGF0dGFjaG1lbnRzLFxuICAgICAgICAgICAgICAgIHRvZG86IGRhdGEuJHRvZG8sXG4gICAgICAgICAgICAgICAgY3VzdG9tVGV4dDogZGF0YS5wYXlhbS5DdXN0b21UZXh0LFxuICAgICAgICAgICAgICAgIHByaW1hcnk6IHByaW1hcnksXG4gICAgICAgICAgICAgICAgaXNGaXJzdDogaXNGaXJzdFxuICAgICAgICAgICAgfVxuICAgICAgICBcIlxuICAgID5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZVxuICAgICNuYW1heWVzaFBheWFtXG4gICAgbGV0LXN1YmplY3RcbiAgICBsZXQtbWFpbE5vVGV4dD1cIm1haWxOb1RleHRcIlxuICAgIGxldC1jb250ZW50PVwiY29udGVudFwiXG4gICAgbGV0LWZyb21UZXh0PVwiZnJvbVRleHRcIlxuICAgIGxldC10b1RleHQ9XCJ0b1RleHRcIlxuICAgIGxldC1pbXBvcnRhbmNlPVwiaW1wb3J0YW5jZVwiXG4gICAgbGV0LXJlYWREYXRlPVwicmVhZERhdGVcIlxuICAgIGxldC1zZW5kRGF0ZT1cInNlbmREYXRlXCJcbiAgICBsZXQtY2NUZXh0PVwiY2NUZXh0XCJcbiAgICBsZXQtYmNjVGV4dD1cImJjY1RleHRcIlxuICAgIGxldC1mcm9tUGhvdG89XCJmcm9tUGhvdG9cIlxuICAgIGxldC1kZXRhaWxzPVwiZGV0YWlsc1wiXG4gICAgbGV0LWFjY2Vzc0xldmVsPVwiYWNjZXNzTGV2ZWxcIlxuICAgIGxldC1wcmltYXJ5PVwicHJpbWFyeVwiXG4gICAgbGV0LWlzRmlyc3Q9XCJpc0ZpcnN0XCJcbiAgICBsZXQtYXR0YWNobWVudHM9XCJhdHRhY2htZW50c1wiXG4gICAgbGV0LXRvZG89XCJ0b2RvXCJcbiAgICBsZXQtY3VzdG9tVGV4dD1cImN1c3RvbVRleHRcIlxuPlxuICAgIDxmZC1jYXJkIGNhcmRUeXBlPVwib2JqZWN0XCI+XG4gICAgICAgIDxmZC1jYXJkLWhlYWRlcj5cbiAgICAgICAgICAgIDxmZC1jYXJkLW1haW4taGVhZGVyPlxuICAgICAgICAgICAgICAgIDxmZC1hdmF0YXJcbiAgICAgICAgICAgICAgICAgICAgW2ltYWdlXT1cImZyb21QaG90b1wiXG4gICAgICAgICAgICAgICAgICAgIFtjaXJjbGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJmcm9tVGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJmcm9tVGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJmcm9tVGV4dFwiXG4gICAgICAgICAgICAgICAgPjwvZmQtYXZhdGFyPlxuICAgICAgICAgICAgICAgIDxkaXYgZmQtY2FyZC10aXRsZSBjbGFzcz1cImhlYWRlci1maWVsZHNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGg1IGZkLXRpdGxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgZmQtbGluayBbZW1waGFzaXplZF09XCJ0cnVlXCIgYXJpYS1sYWJlbD1cIlNlbmRlclwiPiB7eyBmcm9tVGV4dCB9fTwvYT5cbiAgICAgICAgICAgICAgICAgICAgPC9oNT5cbiAgICAgICAgICAgICAgICAgICAgPGZkLW9iamVjdC1pZGVudGlmaWVyIFtkZXNjcmlwdGlvbl09XCInKCcgKyBzZW5kRGF0ZSArICcpJ1wiPiA8L2ZkLW9iamVjdC1pZGVudGlmaWVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgZmQtY2FyZC1zdWJ0aXRsZT5cbiAgICAgICAgICAgICAgICAgICAgPGg1IGZkLXRpdGxlPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgc3ViamVjdCB9fSBAaWYobWFpbE5vVGV4dCl7IDxzcGFuPih7eyBtYWlsTm9UZXh0IH19KTwvc3Bhbj59XG4gICAgICAgICAgICAgICAgICAgIDwvaDU+XG4gICAgICAgICAgICAgICAgICAgIDxmZC1wb3BvdmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLXBvcG92ZXItY29udHJvbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGZkLWJ1dHRvbiBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiIFtmZE1lbnVdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnUmVjaWV2ZXJzJyB8IGJiYlRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1wb3BvdmVyLWNvbnRyb2w+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmQtcG9wb3Zlci1ib2R5PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBmZC1saXN0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChyZWMgb2YgdG9UZXh0OyB0cmFjayByZWMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGZkLWxpc3QtaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGZkLWxpc3QtbGluaz57eyByZWMgfX08L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1wb3BvdmVyLWJvZHk+XG4gICAgICAgICAgICAgICAgICAgIDwvZmQtcG9wb3Zlcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZmQtY2FyZC1tYWluLWhlYWRlcj5cbiAgICAgICAgPC9mZC1jYXJkLWhlYWRlcj5cbiAgICAgICAgPGZkLWNhcmQtY29udGVudD5cbiAgICAgICAgICAgIDxmZC1wYW5lbCBbZXhwYW5kZWRdPVwiaXNGaXJzdFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgZmQtcGFuZWwtdGl0bGUgaWQ9XCJwYW5lbC1leHBhbmRhYmxlLXRpdGxlLTFcIj5cbiAgICAgICAgICAgICAgICAgICAgPGg1IGZkLXRpdGxlPnt7ICfZhdit2KrZiNin24wg2b7bjNin2YUnIHwgYmJiVHJhbnNsYXRlIH19PC9oNT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBheWFtSWNvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaW1wb3J0YW5jZS5pY29uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmQtcG9wb3Zlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtcG9wb3Zlci1jb250cm9sPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiJy9DdXN0b21pemF0aW9uL01haWwvJyArIGltcG9ydGFuY2UuaWNvblwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1wb3BvdmVyLWNvbnRyb2w+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLXBvcG92ZXItYm9keT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGZkLWxpc3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgZmQtbGlzdC1pdGVtPnt7IGltcG9ydGFuY2UudGV4dCB9fTwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1wb3BvdmVyLWJvZHk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLXBvcG92ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICB9IEBpZiAoYWNjZXNzTGV2ZWwuaWNvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLXBvcG92ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLXBvcG92ZXItY29udHJvbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cIicvQ3VzdG9taXphdGlvbi9NYWlsLycgKyBhY2Nlc3NMZXZlbC5pY29uXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLXBvcG92ZXItY29udHJvbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtcG9wb3Zlci1ib2R5PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgZmQtbGlzdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBmZC1saXN0LWl0ZW0+e3sgYWNjZXNzTGV2ZWwudGV4dCB9fTwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1wb3BvdmVyLWJvZHk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLXBvcG92ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICB9IEBpZiAodG9kbykge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWluZm8tbGFiZWwgW2xhYmVsXT1cInRvZG8udGV4dFwiIFtjb2xvcl09XCJ0b2RvLmNvbG9yXCIgW3RpdGxlXT1cInRvZG8udGV4dFwiPjwvZmQtaW5mby1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBmZC1wYW5lbC1jb250ZW50PlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGN1c3RvbVRleHQpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1tZXNzYWdlLXN0cmlwIHR5cGU9XCJpbmZvcm1hdGlvblwiIFtub0ljb25dPVwidHJ1ZVwiIFtkaXNtaXNzaWJsZV09XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGN1c3RvbVRleHQgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtbWVzc2FnZS1zdHJpcD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBbaW5uZXJIdG1sXT1cImNvbnRlbnRcIiBbZGlzYWJsZV09XCIhcHJpbWFyeSB8fCBhdHRhY2htZW50cz8ubGVuZ3RoXCI+PC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChhdHRhY2htZW50cz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLXZpZXdlci1hdHRhY2htZW50c1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoZmlsZSBvZiBhdHRhY2htZW50czsgdHJhY2sgZmlsZSkgeyBAaWYgKCFmaWxlLklzRGVsZXRlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGJzdS1maWxlLXZpZXdlci1wb3BvdmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbGVdPVwiZmlsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbGVzXT1cImF0dGFjaG1lbnRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGV2aWNlU2l6ZV09XCIoZGV2aWNlU2l6ZSQgfCBhc3luYykhIVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NhbkRvd25sb2FkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlUmVtb3ZlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvYnN1LWZpbGUtdmlld2VyLXBvcG92ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICB9IH0gQGlmIChhdHRhY2htZW50cy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidEb3dubG9hZCcgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtnbHlwaF09XCInZG93bmxvYWQnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3dubG9hZEZpbGVzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbGVzXT1cImF0dGFjaG1lbnRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlYWRBdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChyZWFkRGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLW9iamVjdC1pZGVudGlmaWVyIFtkZXNjcmlwdGlvbl09XCIoJ1JlYWRBdCcgfCBiYmJUcmFuc2xhdGUpICsgJzogKCcgKyByZWFkRGF0ZSArICcpJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1vYmplY3QtaWRlbnRpZmllcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2ZkLXBhbmVsPlxuICAgICAgICA8L2ZkLWNhcmQtY29udGVudD5cbiAgICAgICAgPCEtLSA8ZmQtY2FyZC1mb290ZXI+XG4gICAgPGJ1dHRvbiAqZmRDYXJkRm9vdGVyQWN0aW9uSXRlbSBmZC1idXR0b24gZmRDb21wYWN0PkFzc2lnbiB0byBQcm9qZWN0PC9idXR0b24+XG4gIDwvZmQtY2FyZC1mb290ZXI+IC0tPlxuICAgIDwvZmQtY2FyZD5cbiAgICBAZm9yIChkZXRhaWwgb2YgZGV0YWlsczsgdHJhY2sgZGV0YWlsKSB7XG4gICAgPG5nLWNvbnRpYW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICBzaG93UGF5YW1DbGFzcztcbiAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogZGV0YWlsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRpYW5lcj5cbiAgICB9XG48L25nLXRlbXBsYXRlPlxuIl19
|