barsa-sap-ui 2.0.46 → 2.0.48
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-bar-panel/barsa-bar-panel.component.mjs +1 -1
- package/esm2022/lib/barsa-card-layout-panel/barsa-card-layout-panel.component.mjs +1 -1
- package/esm2022/lib/barsa-card-row-payam/barsa-card-row-payam.component.mjs +1 -1
- package/esm2022/lib/barsa-chat/barsa-chat.component.mjs +2 -2
- package/esm2022/lib/barsa-chat-message/barsa-chat-message.component.mjs +2 -2
- package/esm2022/lib/barsa-chat-thread/barsa-chat-thread.component.mjs +1 -1
- package/esm2022/lib/barsa-chat-threads-list-toolbar/barsa-chat-threads-list-toolbar.component.mjs +1 -1
- package/esm2022/lib/barsa-custom-inline-edit/barsa-custom-inline-edit.component.mjs +1 -1
- package/esm2022/lib/barsa-dynamic-field/barsa-dynamic-field.component.mjs +1 -2
- package/esm2022/lib/barsa-enum-menu-button/barsa-enum-menu-button.component.mjs +1 -1
- package/esm2022/lib/barsa-form-side-content/barsa-form-side-content.component.mjs +1 -1
- package/esm2022/lib/barsa-grid-layout-panel/barsa-grid-layout-panel.component.mjs +1 -1
- package/esm2022/lib/barsa-group-cartable/barsa-cartable-group.component.mjs +1 -1
- package/esm2022/lib/barsa-list-file-linear/barsa-list-file-linear.component.mjs +1 -1
- package/esm2022/lib/barsa-list-file-linear-gmail/barsa-list-file-linear-gmail.component.mjs +1 -1
- package/esm2022/lib/barsa-modal/barsa-modal.component.mjs +43 -0
- package/esm2022/lib/barsa-pishnamayesh-payam/barsa-pishnamayesh-payam.component.mjs +1 -1
- package/esm2022/lib/barsa-question-answer-form-add-comment/barsa-question-answer-form-add-comment.component.mjs +1 -1
- package/esm2022/lib/barsa-question-answer-vote-section/barsa-question-answer-vote-section.component.mjs +1 -1
- package/esm2022/lib/barsa-report-one-of-list/barsa-report-one-of-list.component.mjs +1 -1
- package/esm2022/lib/barsa-sap-ui.module.mjs +23 -21
- package/esm2022/lib/barsa-tab-route-manager/barsa-tab-route-manager.component.mjs +18 -0
- package/esm2022/lib/barsa-table-header/barsa-table-header.component.mjs +1 -1
- package/esm2022/lib/barsa-table-row/barsa-table-row.component.mjs +1 -1
- package/esm2022/lib/barsa-text-ellipsis/barsa-text-ellipsis.component.mjs +1 -1
- package/esm2022/lib/barsa-toolbaritem-search/barsa-toolbaritem-search.component.mjs +1 -1
- package/esm2022/lib/barsa-tree-item/barsa-tree-item.component.mjs +2 -2
- package/esm2022/lib/barsa-ulv-main/barsa-ulv-main.component.mjs +1 -1
- package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +7 -4
- package/esm2022/lib/captcha-field/captcha-field.component.mjs +1 -1
- package/esm2022/lib/card-item/card-item.component.mjs +1 -1
- package/esm2022/lib/column-renderer/column-renderer.component.mjs +1 -1
- package/esm2022/lib/file-viewer-content/file-viewer-content.component.mjs +1 -1
- package/esm2022/lib/file-viewer-popover/file-viewer-popover.component.mjs +1 -1
- package/esm2022/lib/form-dialog-less/form-dialog-less.component.mjs +12 -6
- package/esm2022/lib/form-toolbar/form-toolbar.component.mjs +1 -1
- package/esm2022/lib/form-toolbar-button/form-toolbar-button.component.mjs +1 -1
- package/esm2022/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.mjs +1 -1
- package/esm2022/lib/global-search/global-search.component.mjs +1 -1
- package/esm2022/lib/htree-create-new/htree-create-new.component.mjs +1 -1
- package/esm2022/lib/index.mjs +6 -2
- package/esm2022/lib/inline-save-and-cancel/inline-save-and-cancel.component.mjs +1 -1
- package/esm2022/lib/layout-actions/layout-actions.component.mjs +1 -1
- package/esm2022/lib/list-item/list-item.component.mjs +1 -1
- package/esm2022/lib/no-data/no-data.component.mjs +1 -1
- package/esm2022/lib/notification-item/notification-item.component.mjs +1 -1
- package/esm2022/lib/report-new-top-form/report-new-top-form.component.mjs +1 -1
- package/esm2022/lib/report-search-fields-hidden-settings/report-search-fields-hidden-settings.component.mjs +1 -1
- package/esm2022/lib/report-search-fields-manage/report-search-fields-manage.component.mjs +1 -1
- package/esm2022/lib/report-search-panel-save/report-search-panel-save.component.mjs +1 -1
- package/esm2022/lib/responsive-toolbar/responsive-toolbar.component.mjs +1 -1
- package/esm2022/lib/ui-button/ui-button.component.mjs +1 -1
- package/esm2022/lib/ui-card-view/ui-card-view.component.mjs +1 -1
- package/esm2022/lib/ui-card-view-horizontal-group/ui-card-view-horizontal-group.component.mjs +1 -1
- package/esm2022/lib/ui-check-box/ui-check-box.component.mjs +1 -1
- package/esm2022/lib/ui-color-ui/ui-color-ui.component.mjs +1 -1
- package/esm2022/lib/ui-container-with-button/ui-container-with-button.component.mjs +1 -1
- package/esm2022/lib/ui-date-range-ex/ui-date-range-ex.component.mjs +1 -1
- package/esm2022/lib/ui-editable-grid/ui-editable-grid.component.mjs +1 -1
- package/esm2022/lib/ui-exception-form/ui-exception-form.component.mjs +1 -1
- package/esm2022/lib/ui-file-linear-list-box/ui-file-linear-list-box.component.mjs +1 -1
- package/esm2022/lib/ui-grid-columns/ui-grid-columns.component.mjs +1 -1
- package/esm2022/lib/ui-grid-filter-item/ui-grid-filter-item.component.mjs +1 -1
- package/esm2022/lib/ui-grid-filter-settings/ui-grid-filter-settings.component.mjs +1 -1
- package/esm2022/lib/ui-grid-sort-item/ui-grid-sort-item.component.mjs +1 -1
- package/esm2022/lib/ui-linear-list-container-with-button/ui-linear-list-container-with-button.component.mjs +1 -1
- package/esm2022/lib/ui-list-view/ui-list-view.component.mjs +1 -1
- package/esm2022/lib/ui-matrix-view/ui-matrix-view.component.mjs +1 -1
- package/esm2022/lib/ui-mo-info-combo-viewer/ui-mo-info-combo-viewer.component.mjs +1 -1
- package/esm2022/lib/ui-mo-info-ulv-combo/ui-mo-info-ulv-combo.component.mjs +1 -1
- package/esm2022/lib/ui-multi-select-card/ui-multi-select-card.component.mjs +1 -1
- package/esm2022/lib/ui-multi-select-checkbox/ui-multi-select-checkbox.component.mjs +1 -1
- package/esm2022/lib/ui-pdf-viewer/ui-pdf-viewer.component.mjs +1 -1
- package/esm2022/lib/ui-picture-file/ui-picture-file.component.mjs +1 -1
- package/esm2022/lib/ui-pictures-info/ui-pictures-info.component.mjs +6 -6
- package/esm2022/lib/ui-read-only-field/ui-read-only-field.component.mjs +1 -1
- package/esm2022/lib/ui-search-command-info-ui/ui-search-command-info-ui.component.mjs +1 -1
- package/esm2022/lib/ui-simple-combo/ui-simple-combo.component.mjs +1 -1
- package/esm2022/lib/ui-tree/ui-tree.component.mjs +1 -1
- package/esm2022/lib/ui-ulv-form-multi-select-ui/ui-ulv-form-multi-select-ui.component.mjs +1 -1
- package/esm2022/lib/ui-workflow-panel-ui/ui-workflow-panel-ui.component.mjs +1 -1
- package/esm2022/lib/ul-msg-box-adapter/ul-msg-box-adapter.component.mjs +1 -1
- package/esm2022/lib/ulv-column-settings/ulv-column-settings.component.mjs +1 -1
- package/esm2022/lib/ulv-context-menu/ulv-context-menu.component.mjs +1 -1
- package/esm2022/lib/ulv-filter-settings/ulv-filter-settings.component.mjs +1 -1
- package/esm2022/lib/ulv-form-multi-select/ulv-form-multi-select.component.mjs +1 -1
- package/esm2022/lib/ulv-groupby-settings/ulv-groupby-settings.component.mjs +1 -1
- package/esm2022/lib/ulv-selection/ulv-selection.component.mjs +1 -1
- package/esm2022/lib/ulv-settings/ulv-settings.component.mjs +1 -1
- package/esm2022/lib/ulv-sort-settings/ulv-sort-settings.component.mjs +1 -1
- package/esm2022/lib/ulv-toolbar/ulv-toolbar.component.mjs +1 -1
- package/esm2022/public-api.mjs +3 -1
- package/fesm2022/barsa-sap-ui.mjs +167 -110
- package/fesm2022/barsa-sap-ui.mjs.map +1 -1
- package/lib/barsa-modal/barsa-modal.component.d.ts +21 -0
- package/lib/barsa-sap-ui.module.d.ts +34 -32
- package/lib/barsa-tab-route-manager/barsa-tab-route-manager.component.d.ts +7 -0
- package/lib/form-dialog-less/form-dialog-less.component.d.ts +3 -2
- package/lib/ui-pictures-info/ui-pictures-info.component.d.ts +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
|
@@ -14,7 +14,7 @@ export class BarsaBarPanelComponent extends LayoutPanelBaseComponent {
|
|
|
14
14
|
FillAllLayoutControls(this.config, this.layoutControls);
|
|
15
15
|
}
|
|
16
16
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaBarPanelComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
17
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: BarsaBarPanelComponent, selector: "bsu-barsa-bar-panel", providers: [LayoutService], usesInheritance: true, ngImport: i0, template: "<fd-card>\n <fd-card-content>\n <bsu-barsa-base-layout-panel\n [layoutControls]=\"layoutControls\"\n [maxLabelWidth]=\"(maxLabelWidth$ | async)!!\"\n [isSearchPanel]=\"isSearchPanel\"\n [config]=\"config\"\n ></bsu-barsa-base-layout-panel>\n </fd-card-content>\n</fd-card>\n", styles: [":host div:first-child{height:auto}\n"], dependencies: [{ kind: "component", type: i1.CardComponent, selector: "fd-card", inputs: ["badge", "isLoading", "cardType", "id", "role"] }, { kind: "component", type: i1.CardContentComponent, selector: "fd-card-content" }, { kind: "component", type: i2.BarsaBaseLayoutPanelComponent, selector: "bsu-barsa-base-layout-panel", inputs: ["layoutControls", "config", "maxLabelWidth", "isSearchPanel"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
17
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: BarsaBarPanelComponent, selector: "bsu-barsa-bar-panel", providers: [LayoutService], usesInheritance: true, ngImport: i0, template: "<fd-card>\n <fd-card-content>\n <bsu-barsa-base-layout-panel\n [layoutControls]=\"layoutControls\"\n [maxLabelWidth]=\"(maxLabelWidth$ | async)!!\"\n [isSearchPanel]=\"isSearchPanel\"\n [config]=\"config\"\n ></bsu-barsa-base-layout-panel>\n </fd-card-content>\n</fd-card>\n", styles: [":host div:first-child{height:auto}\n"], dependencies: [{ kind: "component", type: i1.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: i1.CardContentComponent, selector: "fd-card-content" }, { kind: "component", type: i2.BarsaBaseLayoutPanelComponent, selector: "bsu-barsa-base-layout-panel", inputs: ["layoutControls", "config", "maxLabelWidth", "isSearchPanel"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
18
18
|
}
|
|
19
19
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaBarPanelComponent, decorators: [{
|
|
20
20
|
type: Component,
|
|
@@ -15,7 +15,7 @@ export class BarsaCardLayoutPanelComponent extends LayoutPanelBaseComponent {
|
|
|
15
15
|
FillAllLayoutControls(this.config, this.layoutControls);
|
|
16
16
|
}
|
|
17
17
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaCardLayoutPanelComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
18
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: BarsaCardLayoutPanelComponent, selector: "bsu-barsa-card-layout-panel", providers: [LayoutService], usesInheritance: true, ngImport: i0, template: "<fd-card [style.margin]=\"parameters?.Margin\">\n @if (parameters?.HideTitle !== true) {\n <fd-card-header [class.hideBorder]=\"parameters?.HideHeaderBorder\">\n <h3 fd-title fd-card-title>\n {{ (config.TextVisible ? config.Title ?? '' : '') | bbbTranslate }}\n </h3>\n </fd-card-header>\n }\n <fd-card-content>\n <bsu-ly-layout-panel [config]=\"config\" [hideTitle]=\"true\"> </bsu-ly-layout-panel>\n </fd-card-content>\n <fd-card-footer style=\"display: none\"> </fd-card-footer>\n</fd-card>\n", styles: [":host fd-card-header{cursor:default}:host fd-card-header:hover{background:var(--fdCard_Background_Color)}:host fd-card-header.hideBorder{border:none}\n"], dependencies: [{ kind: "component", type: i1.CardComponent, selector: "fd-card", inputs: ["badge", "isLoading", "cardType", "id", "role"] }, { kind: "component", type: i1.CardHeaderComponent, selector: "fd-card-header", inputs: ["
|
|
18
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: BarsaCardLayoutPanelComponent, selector: "bsu-barsa-card-layout-panel", providers: [LayoutService], usesInheritance: true, ngImport: i0, template: "<fd-card [style.margin]=\"parameters?.Margin\">\n @if (parameters?.HideTitle !== true) {\n <fd-card-header [class.hideBorder]=\"parameters?.HideHeaderBorder\">\n <h3 fd-title fd-card-title>\n {{ (config.TextVisible ? config.Title ?? '' : '') | bbbTranslate }}\n </h3>\n </fd-card-header>\n }\n <fd-card-content>\n <bsu-ly-layout-panel [config]=\"config\" [hideTitle]=\"true\"> </bsu-ly-layout-panel>\n </fd-card-content>\n <fd-card-footer style=\"display: none\"> </fd-card-footer>\n</fd-card>\n", styles: [":host fd-card-header{cursor:default}:host fd-card-header:hover{background:var(--fdCard_Background_Color)}:host fd-card-header.hideBorder{border:none}\n"], dependencies: [{ kind: "component", type: i1.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: i1.CardHeaderComponent, selector: "fd-card-header", inputs: ["ariaRoleDescription"] }, { kind: "component", type: i1.CardContentComponent, selector: "fd-card-content" }, { kind: "directive", type: i1.CardTitleDirective, selector: "[fd-card-title]", inputs: ["id"] }, { kind: "component", type: i1.CardFooterComponent, selector: "fd-card-footer" }, { kind: "component", type: i2.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i3.LyLayoutPanelComponent, selector: "bsu-ly-layout-panel", inputs: ["renderItems", "isRoot", "hideTitle"] }, { kind: "pipe", type: i4.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
19
19
|
}
|
|
20
20
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaCardLayoutPanelComponent, decorators: [{
|
|
21
21
|
type: Component,
|
|
@@ -21,7 +21,7 @@ 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-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>\u0645\u062D\u0645\u062F\u0631\u0636\u0627\u0645\u062D\u0645\u062F\u06CC</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-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]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i5.CardComponent, selector: "fd-card", inputs: ["badge", "isLoading", "cardType", "id", "role"] }, { kind: "component", type: i5.CardHeaderComponent, selector: "fd-card-header", inputs: ["
|
|
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-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>\u0645\u062D\u0645\u062F\u0631\u0636\u0627\u0645\u062D\u0645\u062F\u06CC</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-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.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,
|
|
@@ -189,7 +189,7 @@ export class BarsaChatComponent extends FormBaseComponent {
|
|
|
189
189
|
return array;
|
|
190
190
|
}
|
|
191
191
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaChatComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
192
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: BarsaChatComponent, selector: "bsu-barsa-chat", inputs: { simple: "simple" }, providers: [FormPanelService], usesInheritance: true, ngImport: i0, template: "<div\n class=\"tw-flex tw-w-full tw-bg-gradient-to-r tw-from-[#5d6e7f] tw-to-[#354a5f] dark:tw-from-[#253443] dark:tw-to-[#10161c]\"\n fillEmptySpace\n [class.tw-h-screen]=\"!simple\"\n [class.tw-justify-center]=\"simple\"\n>\n @if (!simple) {\n <div class=\"tw-bg-black/[.3] 2xl:tw-grow tw-shrink tw-h-full\"></div>\n }\n <div\n class=\"tw-h-full tw-flex 2xl:tw-container max-w-[80rem] tw-shrink-0 tw-relative\"\n [ngClass]=\"{\n 'tw-grow 2xl:tw-grow-0': !simple,\n 'tw-w-full': simple\n }\"\n >\n @if (!simple) {\n <div class=\"tw-grow-0 tw-shrink-0 tw-w-full md:tw-w-96 tw-p-0 md:tw-p-6\">\n <div\n class=\"tw-flex tw-flex-col tw-w-full tw-h-full tw-overflow-hidden tw-border-l tw-border-l-gray-300 md:tw-rounded-2xl md:tw-border md:tw-border-l-gray-300 md:tw-border-gray-300 dark:tw-border-l-gray-600 md:dark:tw-border-l-gray-600 md:dark:tw-border-gray-600\"\n >\n <bsu-barsa-chat-threads-list-toolbar></bsu-barsa-chat-threads-list-toolbar>\n <bsu-barsa-chat-threads-list>\n @for (thread of threads; track thread.id) {\n <bsu-barsa-chat-thread [thread]=\"thread\" (click)=\"selectThread(thread)\"></bsu-barsa-chat-thread>\n }\n </bsu-barsa-chat-threads-list>\n </div>\n </div>\n } @else {\n <div\n class=\"tw-absolute tw-top-0 tw-left-0 tw-w-full tw-h-full tw-bg-[url('assets/chat-bg.png')] tw-bg-fixed tw-opacity-25\"\n ></div>\n }\n <div\n class=\"tw-grow tw-shrink tw-relative\"\n [ngClass]=\"{\n 'md:tw-py-6 md:tw-pl-6 tw-hidden md:tw-flex': !simple,\n 'tw-flex': simple\n }\"\n >\n @if (selectedThread()) {\n <div\n @inContentAnimation\n class=\"tw-h-full tw-w-full tw-flex tw-flex-col tw-relative md:tw-border-gray-300 md:dark:tw-border-gray-600 tw-overflow-hidden\"\n [ngClass]=\"{\n 'md:tw-border md:tw-rounded-2xl': !simple\n }\"\n >\n <bsu-barsa-chat-content-toolbar\n [title]=\"selectedThread().title\"\n [subtitle]=\"'\u0645\u062D\u0645\u062F \u0645\u062D\u0645\u062F\u06CC'\"\n [avatar]=\"selectedThread().avatar\"\n [status]=\"selectedThread().status\"\n ></bsu-barsa-chat-content-toolbar>\n <bsu-barsa-chat-content id=\"chat-container\">\n @if(layout94$ | async;as layout94){ @if ('\u0644\u06CC\u0633\u062A \u06AF\u0641\u062A\u06AF\u0648' | controlUi: layout94; as configUi) {\n <bsu-layout-control [config]=\"configUi\"></bsu-layout-control>\n } }\n </bsu-barsa-chat-content>\n <div\n class=\"tw-w-full\"\n [ngClass]=\"{\n 'tw-relative': !simple,\n '2xl:tw-rounded-t-xl tw-grow-0 tw-shrink-0': simple\n }\"\n >\n @if (replyingMessage()) {\n <div\n @inOutReplyingMessage\n class=\"tw-w-full tw-px-2 tw-py-1 tw-border-r-4 tw-border-r-bubble-mine tw-flex tw-gap-2 te-items-center tw-absolute tw-z-0 tw-bg-default tw-right-0 -tw-top-14\"\n >\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"decline\"\n class=\"tw-grow-0 tw-shrink-0\"\n (click)=\"replyingMessage.set(null)\"\n ></button>\n <div class=\"tw-flex tw-flex-col tw-grow tw-shrink tw-overflow-hidden\">\n <span class=\"tw-font-bold\">{{ replyingMessage().owner.name }}</span>\n <span class=\"tw-truncate\">{{\n replyingMessage().text ?? replyingMessage().file?.name ?? replyingMessage().image?.name\n }}</span>\n </div>\n <div class=\"tw-w-8 tw-shrink-0 tw-grow-0\"></div>\n </div>\n }\n <div\n class=\"tw-w-full tw-p-2 tw-flex tw-gap-2 tw-border-t tw-border-t-gray-300 dark:tw-border-t-gray-600 tw-bg-default tw-items-end tw-z-10\"\n >\n <fd-popover placement=\"top-start\" title=\"top-start\">\n <fd-popover-control>\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"attachment\"\n class=\"!tw-rounded-full tw-shrink-0 tw-grow-0 !tw-size-10 !tw-min-h-10 !tw-max-h-10 !tw-min-w-10 !tw-max-w-10\"\n (click)=\"addAttachment()\"\n ></button>\n </fd-popover-control>\n <fd-popover-body minWidth=\"10rem\">\n <div class=\"tw-flex tw-flex-col tw-bg-default tw-w-full\" bodyClick>\n <label\n class=\"tw-px-4 tw-py-2 tw-flex tw-gap-2 tw-w-full hover:tw-bg-base/[.1] tw-transition-all tw-cursor-pointer\"\n >\n <fd-icon class=\"!tw-text-base !tw-text-3xl\" glyph=\"camera\"></fd-icon>\n <span class=\"!tw-text-base\">\u0627\u0631\u0633\u0627\u0644 \u0639\u06A9\u0633</span>\n <input class=\"tw-hidden\" type=\"file\" id=\"img\" name=\"img\" accept=\"image/*\" />\n </label>\n <label\n class=\"tw-px-4 tw-py-2 tw-flex tw-gap-2 tw-w-full hover:tw-bg-base/[.1] tw-transition-all tw-cursor-pointer\"\n >\n <fd-icon class=\"!tw-text-base !tw-text-3xl\" glyph=\"add-document\"></fd-icon>\n <span class=\"!tw-text-base\">\u0627\u0631\u0633\u0627\u0644 \u0641\u0627\u06CC\u0644</span>\n <input class=\"tw-hidden\" type=\"file\" id=\"file\" name=\"file\" accept=\"file/*\" />\n </label>\n </div>\n </fd-popover-body>\n </fd-popover>\n <div class=\"tw-inline-flex tw-relative tw-grow tw-shrink\">\n <fd-feed-input [attr.aria-label]=\"'\u0645\u062A\u0646 \u067E\u06CC\u0627\u0645'\" class=\"tw-flex-1\">\n <fd-avatar\n fdFeedInputAvatar\n size=\"s\"\n [label]=\"'\u0631\u0627\u0647\u0628\u0631'\"\n [image]=\"''\"\n [placeholder]=\"true\"\n ></fd-avatar>\n <textarea\n id=\"chat-textarea\"\n fd-form-control\n fdFeedInputTextarea\n placeholder=\"\u0645\u062A\u0646 \u067E\u06CC\u0627\u0645\"\n [fdFeedInputTextareaMaxRows]=\"2\"\n (input)=\"onTextChange($event)\"\n ></textarea>\n <button\n fdFeedInputButton\n [attr.aria-label]=\"'Send' | bbbTranslate\"\n [title]=\"'Send' | bbbTranslate\"\n (click)=\"sendMessage()\"\n ></button>\n </fd-feed-input>\n </div>\n </div>\n </div>\n </div>\n } @else {\n <div\n class=\"tw-absolute tw-top-1/2 -tw-translate-y-1/2 tw-left-1/2 -tw-translate-x-1/2 tw-flex tw-flex-col tw-gap-8 tw-items-center\"\n >\n <img src=\"assets/not-selected-chat.png\" class=\"tw-w-64 tw-opacity-25\" />\n <!-- <span class=\"tw-text-xl tw-font-bold tw-text-gray-400 dark:tw-text-gray-500\">-->\n <!-- \u0628\u0631\u0627\u06CC \u0634\u0631\u0648\u0639 \u06CC\u06A9 \u0686\u062A \u0631\u0627 \u0627\u0646\u062A\u062E\u0627\u0628 \u06A9\u0646\u06CC\u062F-->\n <!-- </span>-->\n </div>\n }\n </div>\n </div>\n @if (!simple) {\n <div class=\"tw-bg-black/[.3] 2xl:tw-grow tw-shrink tw-h-full\"></div>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.FillEmptySpaceDirective, selector: "[fillEmptySpace]", inputs: ["containerDom", "decrement", "disable", "height", "dontUseTopBound", "setMinHeight"], exportAs: ["fillEmptySpace"] }, { 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]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i5.FeedInputComponent, selector: "fd-feed-input", inputs: ["disabled"] }, { kind: "directive", type: i5.FeedInputTextareaDirective, selector: "[fdFeedInputTextarea]", inputs: ["fdFeedInputTextareaMaxRows"], outputs: ["valueChange"] }, { kind: "directive", type: i5.FeedInputButtonDirective, selector: "[fdFeedInputButton]" }, { kind: "directive", type: i5.FeedInputAvatarDirective, selector: "[fdFeedInputAvatar]", inputs: ["class", "placeholder"] }, { kind: "component", type: i6.FormControlComponent, selector: "input[fd-form-control], textarea[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "component", type: i7.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "component", type: i8.PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: i8.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "component", type: i8.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "component", type: i9.LayoutControlComponent, selector: "bsu-layout-control", inputs: ["inlineEdit", "caption", "focusControl", "showLabel", "maxLabelWidth", "hasHorizontalText", "contentDensity", "flex", "RefreshLabel", "SetVisible"], outputs: ["events"] }, { kind: "component", type: i10.BarsaChatContentComponent, selector: "bsu-barsa-chat-content" }, { kind: "component", type: i11.BarsaChatThreadComponent, selector: "bsu-barsa-chat-thread", inputs: ["thread"] }, { kind: "component", type: i12.BarsaChatThreadsListComponent, selector: "bsu-barsa-chat-threads-list" }, { kind: "component", type: i13.BarsaChatThreadsListToolbarComponent, selector: "bsu-barsa-chat-threads-list-toolbar" }, { kind: "component", type: i14.BarsaChatContentToolbarComponent, selector: "bsu-barsa-chat-content-toolbar", inputs: ["avatar", "title", "subtitle", "status"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i2.ControlUiPipe, name: "controlUi" }], animations: [
|
|
192
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: BarsaChatComponent, selector: "bsu-barsa-chat", inputs: { simple: "simple" }, providers: [FormPanelService], usesInheritance: true, ngImport: i0, template: "<div\n class=\"tw-flex tw-w-full tw-bg-gradient-to-r tw-from-[#5d6e7f] tw-to-[#354a5f] dark:tw-from-[#253443] dark:tw-to-[#10161c]\"\n fillEmptySpace\n [class.tw-h-screen]=\"!simple\"\n [class.tw-justify-center]=\"simple\"\n>\n @if (!simple) {\n <div class=\"tw-bg-black/[.3] 2xl:tw-grow tw-shrink tw-h-full\"></div>\n }\n <div\n class=\"tw-h-full tw-flex 2xl:tw-container max-w-[80rem] tw-shrink-0 tw-relative\"\n [ngClass]=\"{\n 'tw-grow 2xl:tw-grow-0': !simple,\n 'tw-w-full': simple\n }\"\n >\n @if (!simple) {\n <div class=\"tw-grow-0 tw-shrink-0 tw-w-full md:tw-w-96 tw-p-0 md:tw-p-6\">\n <div\n class=\"tw-flex tw-flex-col tw-w-full tw-h-full tw-overflow-hidden tw-border-l tw-border-l-gray-300 md:tw-rounded-2xl md:tw-border md:tw-border-l-gray-300 md:tw-border-gray-300 dark:tw-border-l-gray-600 md:dark:tw-border-l-gray-600 md:dark:tw-border-gray-600\"\n >\n <bsu-barsa-chat-threads-list-toolbar></bsu-barsa-chat-threads-list-toolbar>\n <bsu-barsa-chat-threads-list>\n @for (thread of threads; track thread.id) {\n <bsu-barsa-chat-thread [thread]=\"thread\" (click)=\"selectThread(thread)\"></bsu-barsa-chat-thread>\n }\n </bsu-barsa-chat-threads-list>\n </div>\n </div>\n } @else {\n <div\n class=\"tw-absolute tw-top-0 tw-left-0 tw-w-full tw-h-full tw-bg-[url('assets/chat-bg.png')] tw-bg-fixed tw-opacity-25\"\n ></div>\n }\n <div\n class=\"tw-grow tw-shrink tw-relative\"\n [ngClass]=\"{\n 'md:tw-py-6 md:tw-pl-6 tw-hidden md:tw-flex': !simple,\n 'tw-flex': simple\n }\"\n >\n @if (selectedThread()) {\n <div\n @inContentAnimation\n class=\"tw-h-full tw-w-full tw-flex tw-flex-col tw-relative md:tw-border-gray-300 md:dark:tw-border-gray-600 tw-overflow-hidden\"\n [ngClass]=\"{\n 'md:tw-border md:tw-rounded-2xl': !simple\n }\"\n >\n <bsu-barsa-chat-content-toolbar\n [title]=\"selectedThread().title\"\n [subtitle]=\"'\u0645\u062D\u0645\u062F \u0645\u062D\u0645\u062F\u06CC'\"\n [avatar]=\"selectedThread().avatar\"\n [status]=\"selectedThread().status\"\n ></bsu-barsa-chat-content-toolbar>\n <bsu-barsa-chat-content id=\"chat-container\">\n @if(layout94$ | async;as layout94){ @if ('\u0644\u06CC\u0633\u062A \u06AF\u0641\u062A\u06AF\u0648' | controlUi: layout94; as configUi) {\n <bsu-layout-control [config]=\"configUi\"></bsu-layout-control>\n } }\n </bsu-barsa-chat-content>\n <div\n class=\"tw-w-full\"\n [ngClass]=\"{\n 'tw-relative': !simple,\n '2xl:tw-rounded-t-xl tw-grow-0 tw-shrink-0': simple\n }\"\n >\n @if (replyingMessage()) {\n <div\n @inOutReplyingMessage\n class=\"tw-w-full tw-px-2 tw-py-1 tw-border-r-4 tw-border-r-bubble-mine tw-flex tw-gap-2 te-items-center tw-absolute tw-z-0 tw-bg-default tw-right-0 -tw-top-14\"\n >\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"decline\"\n class=\"tw-grow-0 tw-shrink-0\"\n (click)=\"replyingMessage.set(null)\"\n ></button>\n <div class=\"tw-flex tw-flex-col tw-grow tw-shrink tw-overflow-hidden\">\n <span class=\"tw-font-bold\">{{ replyingMessage().owner.name }}</span>\n <span class=\"tw-truncate\">{{\n replyingMessage().text ?? replyingMessage().file?.name ?? replyingMessage().image?.name\n }}</span>\n </div>\n <div class=\"tw-w-8 tw-shrink-0 tw-grow-0\"></div>\n </div>\n }\n <div\n class=\"tw-w-full tw-p-2 tw-flex tw-gap-2 tw-border-t tw-border-t-gray-300 dark:tw-border-t-gray-600 tw-bg-default tw-items-end tw-z-10\"\n >\n <fd-popover placement=\"top-start\" title=\"top-start\">\n <fd-popover-control>\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"attachment\"\n class=\"!tw-rounded-full tw-shrink-0 tw-grow-0 !tw-size-10 !tw-min-h-10 !tw-max-h-10 !tw-min-w-10 !tw-max-w-10\"\n (click)=\"addAttachment()\"\n ></button>\n </fd-popover-control>\n <fd-popover-body minWidth=\"10rem\">\n <div class=\"tw-flex tw-flex-col tw-bg-default tw-w-full\" bodyClick>\n <label\n class=\"tw-px-4 tw-py-2 tw-flex tw-gap-2 tw-w-full hover:tw-bg-base/[.1] tw-transition-all tw-cursor-pointer\"\n >\n <fd-icon class=\"!tw-text-base !tw-text-3xl\" glyph=\"camera\"></fd-icon>\n <span class=\"!tw-text-base\">\u0627\u0631\u0633\u0627\u0644 \u0639\u06A9\u0633</span>\n <input class=\"tw-hidden\" type=\"file\" id=\"img\" name=\"img\" accept=\"image/*\" />\n </label>\n <label\n class=\"tw-px-4 tw-py-2 tw-flex tw-gap-2 tw-w-full hover:tw-bg-base/[.1] tw-transition-all tw-cursor-pointer\"\n >\n <fd-icon class=\"!tw-text-base !tw-text-3xl\" glyph=\"add-document\"></fd-icon>\n <span class=\"!tw-text-base\">\u0627\u0631\u0633\u0627\u0644 \u0641\u0627\u06CC\u0644</span>\n <input class=\"tw-hidden\" type=\"file\" id=\"file\" name=\"file\" accept=\"file/*\" />\n </label>\n </div>\n </fd-popover-body>\n </fd-popover>\n <div class=\"tw-inline-flex tw-relative tw-grow tw-shrink\">\n <fd-feed-input [attr.aria-label]=\"'\u0645\u062A\u0646 \u067E\u06CC\u0627\u0645'\" class=\"tw-flex-1\">\n <fd-avatar\n fdFeedInputAvatar\n size=\"s\"\n [label]=\"'\u0631\u0627\u0647\u0628\u0631'\"\n [image]=\"''\"\n [placeholder]=\"true\"\n ></fd-avatar>\n <textarea\n id=\"chat-textarea\"\n fd-form-control\n fdFeedInputTextarea\n placeholder=\"\u0645\u062A\u0646 \u067E\u06CC\u0627\u0645\"\n [fdFeedInputTextareaMaxRows]=\"2\"\n (input)=\"onTextChange($event)\"\n ></textarea>\n <button\n fdFeedInputButton\n [attr.aria-label]=\"'Send' | bbbTranslate\"\n [title]=\"'Send' | bbbTranslate\"\n (click)=\"sendMessage()\"\n ></button>\n </fd-feed-input>\n </div>\n </div>\n </div>\n </div>\n } @else {\n <div\n class=\"tw-absolute tw-top-1/2 -tw-translate-y-1/2 tw-left-1/2 -tw-translate-x-1/2 tw-flex tw-flex-col tw-gap-8 tw-items-center\"\n >\n <img src=\"assets/not-selected-chat.png\" class=\"tw-w-64 tw-opacity-25\" />\n <!-- <span class=\"tw-text-xl tw-font-bold tw-text-gray-400 dark:tw-text-gray-500\">-->\n <!-- \u0628\u0631\u0627\u06CC \u0634\u0631\u0648\u0639 \u06CC\u06A9 \u0686\u062A \u0631\u0627 \u0627\u0646\u062A\u062E\u0627\u0628 \u06A9\u0646\u06CC\u062F-->\n <!-- </span>-->\n </div>\n }\n </div>\n </div>\n @if (!simple) {\n <div class=\"tw-bg-black/[.3] 2xl:tw-grow tw-shrink tw-h-full\"></div>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.FillEmptySpaceDirective, selector: "[fillEmptySpace]", inputs: ["containerDom", "decrement", "disable", "height", "dontUseTopBound", "setMinHeight"], exportAs: ["fillEmptySpace"] }, { 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.FeedInputComponent, selector: "fd-feed-input", inputs: ["disabled"] }, { kind: "directive", type: i5.FeedInputTextareaDirective, selector: "[fdFeedInputTextarea]", inputs: ["fdFeedInputTextareaMaxRows"], outputs: ["valueChange"] }, { kind: "directive", type: i5.FeedInputButtonDirective, selector: "[fdFeedInputButton]" }, { kind: "directive", type: i5.FeedInputAvatarDirective, selector: "[fdFeedInputAvatar]", inputs: ["class", "placeholder"] }, { kind: "component", type: i6.FormControlComponent, selector: "input[fd-form-control], textarea[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "component", type: i7.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "component", type: i8.PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: i8.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "component", type: i8.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "component", type: i9.LayoutControlComponent, selector: "bsu-layout-control", inputs: ["inlineEdit", "caption", "focusControl", "showLabel", "maxLabelWidth", "hasHorizontalText", "contentDensity", "flex", "RefreshLabel", "SetVisible"], outputs: ["events"] }, { kind: "component", type: i10.BarsaChatContentComponent, selector: "bsu-barsa-chat-content" }, { kind: "component", type: i11.BarsaChatThreadComponent, selector: "bsu-barsa-chat-thread", inputs: ["thread"] }, { kind: "component", type: i12.BarsaChatThreadsListComponent, selector: "bsu-barsa-chat-threads-list" }, { kind: "component", type: i13.BarsaChatThreadsListToolbarComponent, selector: "bsu-barsa-chat-threads-list-toolbar" }, { kind: "component", type: i14.BarsaChatContentToolbarComponent, selector: "bsu-barsa-chat-content-toolbar", inputs: ["avatar", "title", "subtitle", "status"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i2.ControlUiPipe, name: "controlUi" }], animations: [
|
|
193
193
|
trigger('inContentAnimation', [
|
|
194
194
|
transition(':enter', [
|
|
195
195
|
style({ opacity: 0, transform: 'scale(50%, 50%)' }),
|
|
@@ -239,4 +239,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
|
239
239
|
}], propDecorators: { simple: [{
|
|
240
240
|
type: Input
|
|
241
241
|
}] } });
|
|
242
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtY2hhdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi9iYXJzYS1jaGF0L2JhcnNhLWNoYXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtY2hhdC9iYXJzYS1jaGF0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWtCLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sT0FBTyxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUE4QnJGLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxpQkFBaUI7SUE1QnpEOztRQTZCYSxXQUFNLEdBQUcsSUFBSSxDQUFDO1FBRXZCLGtCQUFhLEdBQUcsK0RBQStELENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNGLG9CQUFlLEdBQUcsOERBQThELENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVGLGtCQUFhLEdBQUcsQ0FDWixtRkFBbUY7WUFDbkYsK0ZBQStGO1lBQy9GLDRGQUE0RjtZQUM1RiwyRkFBMkY7WUFDM0YsMkZBQTJGO1lBQzNGLHlGQUF5RjtZQUN6RiwwRkFBMEY7WUFDMUYsOEVBQThFLENBQ2pGLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7YUFDZCxJQUFJLENBQUMsSUFB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QUM7NkJBQ25GLENBQUM7NEJBQ0YsVUFBVSxDQUFDLFFBQVEsRUFBRTtnQ0FDakIsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQztnQ0FDckQsT0FBTyxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLENBQUM7NkJBQ2hGLENBQUM7eUJBQ0wsQ0FBQzt3QkFDRixPQUFPLENBQUMsc0JBQXNCLEVBQUU7NEJBQzVCLFVBQVUsQ0FBQyxRQUFRLEVBQUU7Z0NBQ2pCLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLENBQUM7Z0NBQ25ELE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDOzZCQUMvRSxDQUFDOzRCQUNGLFVBQVUsQ0FBQyxRQUFRLEVBQUU7Z0NBQ2pCLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDO2dDQUNqRCxPQUFPLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQzs2QkFDaEYsQ0FBQzt5QkFDTCxDQUFDO3FCQUNMOzhCQUdRLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBzaWduYWwsIFdyaXRhYmxlU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgam1vbWVudCBmcm9tICdtb21lbnQtamFsYWFsaSc7XG5pbXBvcnQgeyBhbmltYXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgRm9ybUJhc2VDb21wb25lbnQsIEZvcm1QYW5lbFNlcnZpY2UsIEJhcnNhQXBpIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS1iYXJzYS1jaGF0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYmFyc2EtY2hhdC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2JhcnNhLWNoYXQuY29tcG9uZW50LmNzcycsXG4gICAgcHJvdmlkZXJzOiBbRm9ybVBhbmVsU2VydmljZV0sXG4gICAgYW5pbWF0aW9uczogW1xuICAgICAgICB0cmlnZ2VyKCdpbkNvbnRlbnRBbmltYXRpb24nLCBbXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXG4gICAgICAgICAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAwLCB0cmFuc2Zvcm06ICdzY2FsZSg1MCUsIDUwJSknIH0pLFxuICAgICAgICAgICAgICAgIGFuaW1hdGUoJzMwMG1zIGVhc2Utb3V0Jywgc3R5bGUoeyBvcGFjaXR5OiAxLCB0cmFuc2Zvcm06ICdzY2FsZSgxMDAlLCAxMDAlKScgfSkpXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtcbiAgICAgICAgICAgICAgICBzdHlsZSh7IG9wYWNpdHk6IDEsIHRyYW5zZm9ybTogJ3NjYWxlKDEwMCUsIDEwMCUpJyB9KSxcbiAgICAgICAgICAgICAgICBhbmltYXRlKCczMDBtcyBlYXNlLWluJywgc3R5bGUoeyBvcGFjaXR5OiAwLCB0cmFuc2Zvcm06ICdzY2FsZSg1MCUsIDUwJSknIH0pKVxuICAgICAgICAgICAgXSlcbiAgICAgICAgXSksXG4gICAgICAgIHRyaWdnZXIoJ2luT3V0UmVwbHlpbmdNZXNzYWdlJywgW1xuICAgICAgICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xuICAgICAgICAgICAgICAgIHN0eWxlKHsgb3BhY2l0eTogMCwgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSg1MCUpJyB9KSxcbiAgICAgICAgICAgICAgICBhbmltYXRlKCczMDBtcyBlYXNlLW91dCcsIHN0eWxlKHsgb3BhY2l0eTogMSwgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgwKScgfSkpXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtcbiAgICAgICAgICAgICAgICBzdHlsZSh7IG9wYWNpdHk6IDEsIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoMCknIH0pLFxuICAgICAgICAgICAgICAgIGFuaW1hdGUoJzMwMG1zIGVhc2UtaW4nLCBzdHlsZSh7IG9wYWNpdHk6IDAsIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoNTAlKScgfSkpXG4gICAgICAgICAgICBdKVxuICAgICAgICBdKVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgQmFyc2FDaGF0Q29tcG9uZW50IGV4dGVuZHMgRm9ybUJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KCkgc2ltcGxlID0gdHJ1ZTtcblxuICAgIHJhbmRvbU5hbWVBcnIgPSAn2LnZhNuMINit2LPZhiDYrdiz24zZhiDYqtmC24wg2YbZgtuMINmF2K3ZhdivINmF2YfYr9uMINis2KfZiNuM2K8g2YXYrdmF2K/Ysdi22Kcg2qnYsduM2YUg2YfZiNi02YbaryDZvtuM2YXYp9mGJy5zcGxpdCgnICcpO1xuICAgIHJhbmRvbUZhbWlseUFyciA9ICfaqdix24zZhduMINit2LPbjNmG24wg2LLYp9ix2LnbjCDYqtmC2YjbjCDaqdin2LjZhduMINmC2YbYqNix24wg2YbYqNmI24zYp9mGINin2YHYtNin2LEg2LHYp9iv2YXZhtivINmF2K3Zhdiv24wnLnNwbGl0KCcgJyk7XG4gICAgcmFuZG9tVGV4dEFyciA9IChcbiAgICAgICAgJ9mE2YjYsdmFINin24zZvtiz2YjZhSDZhdiq2YYg2LPYp9iu2Krar9uMINio2Kcg2KrZiNmE24zYryDYs9in2K/ar9uMINmG2KfZhdmB2YfZiNmFINin2LIg2LXZhti52Kog2obYp9m+2Iwg2Ygg2KjYpyDYp9iz2KrZgdin2K/ZhyDYp9iyINi32LHYp9it2KfZhicgK1xuICAgICAgICAnINqv2LHYp9mB24zaqSDYp9iz2KrYjCDahtin2b7ar9ix2YfYpyDZiCDZhdiq2YjZhiDYqNmE2qnZhyDYsdmI2LLZhtin2YXZhyDZiCDZhdis2YTZhyDYr9ixINiz2KrZiNmGINmIINiz2LfYsdii2YbahtmG2KfZhiDaqdmHINmE2KfYstmFINin2LPYqtiMINmIINio2LHYp9uMINi02LHYp9uM2LcnICtcbiAgICAgICAgJyDZgdi52YTbjCDYqtqp2YbZiNmE2YjamNuMINmF2YjYsdivINmG24zYp9iy2Iwg2Ygg2qnYp9ix2KjYsdiv2YfYp9uMINmF2KrZhtmI2Lkg2KjYpyDZh9iv2YEg2KjZh9io2YjYryDYp9io2LLYp9ix2YfYp9uMINqp2KfYsdio2LHYr9uMINmF24wg2KjYp9i02K/YjCDaqdiq2KfYqNmH2KfbjCcgK1xuICAgICAgICAnINiy24zYp9iv24wg2K/YsSDYtNi12Kog2Ygg2LPZhyDYr9ix2LXYryDar9iw2LTYqtmHINit2KfZhCDZiCDYotuM2YbYr9mH2Iwg2LTZhtin2K7YqiDZgdix2KfZiNin2YYg2KzYp9mF2LnZhyDZiCDZhdiq2K7Ytdi12KfZhiDYsdinINmF24wg2LfZhNio2K/YjCDYqtinINio2KcnICtcbiAgICAgICAgJyDZhtix2YUg2KfZgdiy2KfYsdmH2Kcg2LTZhtin2K7YqiDYqNuM2LTYqtix24wg2LHYpyDYqNix2KfbjCDYt9ix2KfYrdin2YYg2LHYp9uM2KfZhtmHINin24wg2LnZhNuMINin2YTYrti12YjYtSDYt9ix2KfYrdin2YYg2K7ZhNin2YLbjNiMINmIINmB2LHZh9mG2q8g2b7bjNi02LHZiCcgK1xuICAgICAgICAnINiv2LEg2LLYqNin2YYg2YHYp9ix2LPbjCDYp9uM2KzYp9ivINqp2LHYr9iMINiv2LEg2KfbjNmGINi12YjYsdiqINmF24wg2KrZiNin2YYg2KfZhduM2K8g2K/Yp9i02Kog2qnZhyDYqtmF2KfZhSDZiCDYr9i02YjYp9ix24wg2YXZiNis2YjYryDYr9ixINin2LHYp9im2YcnICtcbiAgICAgICAgJyDYsdin2Yfaqdin2LHZh9in2Iwg2Ygg2LTYsdin24zYtyDYs9iu2Kog2KrYp9uM2b4g2KjZhyDZvtin24zYp9mGINix2LPYryDZiCDYstmF2KfZhiDZhdmI2LHYryDZhtuM2KfYsiDYtNin2YXZhCDYrdix2YjZgdqG24zZhtuMINiv2LPYqtin2YjYsdiv2YfYp9uMINin2LXZhNuM2IwnICtcbiAgICAgICAgJyDZiCDYrNmI2KfYqNqv2YjbjCDYs9mI2KfZhNin2Kog2b7bjNmI2LPYqtmHINin2YfZhCDYr9mG24zYp9uMINmF2YjYrNmI2K8g2LfYsdin2K3bjCDYp9iz2KfYs9inINmF2YjYsdivINin2LPYqtmB2KfYr9mHINmC2LHYp9ixINqv24zYsdivLidcbiAgICApLnNwbGl0KCcgJyk7XG4gICAgdGhyZWFkcyA9IEFycmF5KDIwKVxuICAgICAgICAuZmlsbChudWxsKVxuICAgICAgICAubWFwKCh0KSA9PiAoe1xuICAgICAgICAgICAgaWQ6IE1hdGgucmFuZG9tKCkgKiAxMDAwLFxuICAgICAgICAgICAgdGl0bGU6XG4gICAgICAgICAgICAgICAgdGhpcy5yYW5kb21OYW1lQXJyW01hdGguZmxvb3IodGhpcy5yYW5kb21OYW1lQXJyLmxlbmd0aCAqIE1hdGgucmFuZG9tKCkpXSArXG4gICAgICAgICAgICAgICAgJyAnICtcbiAgICAgICAgICAgICAgICB0aGlzLnJhbmRvbUZhbWlseUFycltNYXRoLmZsb29yKHRoaXMucmFuZG9tRmFtaWx5QXJyLmxlbmd0aCAqIE1hdGgucmFuZG9tKCkpXSxcbiAgICAgICAgICAgIGF2YXRhcjogJ2h0dHBzOi8vcGljc3VtLnBob3Rvcy8xMDA/d29ya0Fyb3VuZD0nICsgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwKSxcbiAgICAgICAgICAgIHN0YXR1czogTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogNCksXG4gICAgICAgICAgICBsYXN0QWN0aXZpdHk6IHRoaXMucmFuZG9tRGF0ZShuZXcgRGF0ZSgnMjAyNC0wMy0wMycpLCBuZXcgRGF0ZSgpKSxcbiAgICAgICAgICAgIHVucmVhZENvdW50OiBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkpID8gMSArIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDIwKSA6IDAsXG4gICAgICAgICAgICBwaW5uZWQ6ICEhTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpKSxcbiAgICAgICAgICAgIG11dGVkOiAhIU1hdGgucm91bmQoTWF0aC5yYW5kb20oKSksXG4gICAgICAgICAgICBsYXN0TWVzc2FnZToge1xuICAgICAgICAgICAgICAgIGlkOiBNYXRoLnJhbmRvbSgpICogMTAwMCxcbiAgICAgICAgICAgICAgICBvd25lcjoge1xuICAgICAgICAgICAgICAgICAgICBpZDogMTIzNCxcbiAgICAgICAgICAgICAgICAgICAgYXZhdGFyOiAnaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzEwMD93b3JrQXJvdW5kPScgKyBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDApLFxuICAgICAgICAgICAgICAgICAgICBuYW1lOiAn2YXZh9iv24wg2LLYp9ix2LnbjCdcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHRleHQ6IHRoaXMuc2h1ZmZsZShcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yYW5kb21UZXh0QXJyLnNsaWNlKDAsIDEgKyBNYXRoLmZsb29yKHRoaXMucmFuZG9tVGV4dEFyci5sZW5ndGggKiBNYXRoLnJhbmRvbSgpKSlcbiAgICAgICAgICAgICAgICApLmpvaW4oJyAnKSxcbiAgICAgICAgICAgICAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKClcbiAgICAgICAgICAgICAgICAgICAgLnRvVGltZVN0cmluZygpXG4gICAgICAgICAgICAgICAgICAgIC5zcGxpdCgnICcpWzBdXG4gICAgICAgICAgICAgICAgICAgIC5zcGxpdCgnOicpXG4gICAgICAgICAgICAgICAgICAgIC5zbGljZSgwLCAyKVxuICAgICAgICAgICAgICAgICAgICAubWFwKChzKSA9PiBzLnBhZFN0YXJ0KDIsICcwJykpXG4gICAgICAgICAgICAgICAgICAgIC5qb2luKCc6JyksXG4gICAgICAgICAgICAgICAgZGVsaXZlcmVkQXQ6IG5ldyBEYXRlKClcbiAgICAgICAgICAgICAgICAgICAgLnRvVGltZVN0cmluZygpXG4gICAgICAgICAgICAgICAgICAgIC5zcGxpdCgnICcpWzBdXG4gICAgICAgICAgICAgICAgICAgIC5zcGxpdCgnOicpXG4gICAgICAgICAgICAgICAgICAgIC5zbGljZSgwLCAyKVxuICAgICAgICAgICAgICAgICAgICAubWFwKChzKSA9PiBzLnBhZFN0YXJ0KDIsICcwJykpXG4gICAgICAgICAgICAgICAgICAgIC5qb2luKCc6JyksXG4gICAgICAgICAgICAgICAgcmVhZEF0OiBuZXcgRGF0ZSgpXG4gICAgICAgICAgICAgICAgICAgIC50b1RpbWVTdHJpbmcoKVxuICAgICAgICAgICAgICAgICAgICAuc3BsaXQoJyAnKVswXVxuICAgICAgICAgICAgICAgICAgICAuc3BsaXQoJzonKVxuICAgICAgICAgICAgICAgICAgICAuc2xpY2UoMCwgMilcbiAgICAgICAgICAgICAgICAgICAgLm1hcCgocykgPT4gcy5wYWRTdGFydCgyLCAnMCcpKVxuICAgICAgICAgICAgICAgICAgICAuam9pbignOicpXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pKTtcbiAgICBtb21lbnQgPSBqbW9tZW50O1xuICAgIHNlbGVjdGVkVGhyZWFkOiBXcml0YWJsZVNpZ25hbDxhbnkgfCBudWxsPiA9IHNpZ25hbChudWxsKTtcbiAgICBtZXNzYWdlczogV3JpdGFibGVTaWduYWw8YW55W10gfCBudWxsPiA9IHNpZ25hbChudWxsKTtcbiAgICByZXBseWluZ01lc3NhZ2U6IFdyaXRhYmxlU2lnbmFsPGFueSB8IG51bGw+ID0gc2lnbmFsKG51bGwpO1xuICAgIF9uZXdNZXNzYWdlVGV4dCA9ICcnO1xuICAgIG9uVGV4dENoYW5nZSgkZXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbmV3TWVzc2FnZVRleHQgPSAkZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgIH1cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCdjaGF0LW1vZGUnKTtcbiAgICAgICAgdGhpcy5zZWxlY3RUaHJlYWQodGhpcy50aHJlYWRzWzBdKTtcbiAgICB9XG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgnY2hhdC1tb2RlJyk7XG4gICAgfVxuICAgIHNjcm9sbFRvQm90dG9tKGZvcmNlID0gZmFsc2UsIGluc3RhbnQgPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSAodGhpcy5fZWw/Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLnF1ZXJ5U2VsZWN0b3IoJyNjaGF0Q29udGVudEVsZW1lbnQnKSBhcyBhbnk7XG4gICAgICAgIGlmIChmb3JjZSB8fCAoY29udGFpbmVyICYmIGNvbnRhaW5lci5zY3JvbGxUb3BNYXggLSBjb250YWluZXIuc2Nyb2xsVG9wIDwgMzAwKSkge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PlxuICAgICAgICAgICAgICAgIGNvbnRhaW5lcj8uc2Nyb2xsVG8oe1xuICAgICAgICAgICAgICAgICAgICB0b3A6IGNvbnRhaW5lci5zY3JvbGxIZWlnaHQsXG4gICAgICAgICAgICAgICAgICAgIGJlaGF2aW9yOiBpbnN0YW50ID8gJ2luc3RhbnQnIDogJ3Ntb290aCdcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzZW5kTWVzc2FnZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX25ld01lc3NhZ2VUZXh0Py50cmltKCkubGVuZ3RoKSB7XG4gICAgICAgICAgICBCYXJzYUFwaS5Cdy5SdW5CbE1ldGhvZEFzeW5jKHt9KTtcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZXM/LnNldChbXG4gICAgICAgICAgICAgICAgLi4uKHRoaXMubWVzc2FnZXMoKSBhcyBhbnlbXSksXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBpZDogTWF0aC5yYW5kb20oKSAqIDEwMDAsXG4gICAgICAgICAgICAgICAgICAgIG93bmVyOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogMTIzNCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGF2YXRhcjogJ2h0dHBzOi8vcGljc3VtLnBob3Rvcy8xMDA/d29ya0Fyb3VuZD0nICsgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICfZhdmH2K/bjCDYstin2LHYuduMJ1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiB0aGlzLl9uZXdNZXNzYWdlVGV4dCxcbiAgICAgICAgICAgICAgICAgICAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLFxuICAgICAgICAgICAgICAgICAgICBkZWxpdmVyZWRBdDogbmV3IERhdGUoKSxcbiAgICAgICAgICAgICAgICAgICAgcmVhZEF0OiBuZXcgRGF0ZSgpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICB0aGlzLl9uZXdNZXNzYWdlVGV4dCA9ICcnO1xuICAgICAgICAgICAgY29uc3QgaW5wdXRNZXNzYWdlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NoYXQtdGV4dGFyZWEnKTtcbiAgICAgICAgICAgIGlmIChpbnB1dE1lc3NhZ2UpIHtcbiAgICAgICAgICAgICAgICBpbnB1dE1lc3NhZ2UuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICBpbnB1dE1lc3NhZ2UuaW5uZXJUZXh0ID0gJyc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNjcm9sbFRvQm90dG9tKHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGFkZEF0dGFjaG1lbnQoKTogdm9pZCB7fVxuICAgIHNlbGVjdFRocmVhZCh0aHJlYWQ6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGVkVGhyZWFkLnNldCh0aHJlYWQpO1xuICAgICAgICB0aGlzLm1lc3NhZ2VzLnNldChcbiAgICAgICAgICAgIEFycmF5KDQwKVxuICAgICAgICAgICAgICAgIC5maWxsKG51bGwpXG4gICAgICAgICAgICAgICAgLm1hcCgodCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBvd25lclVzZXIgPSBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtZXNzYWdlVHlwZSA9IE1hdGgucmFuZG9tKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGhhc1RleHQgPSBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbWdPcmlnaW5hbFdpZHRoID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMjAwKSArIDIwMDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaW1nT3JpZ2luYWxIZWlnaHQgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAyMDApICsgMjAwO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IE1hdGgucmFuZG9tKCkgKiAxMDAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgb3duZXI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogb3duZXJVc2VyID8gMTIzNCA6IDQzMjEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXZhdGFyOiAnaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzEwMD93b3JrQXJvdW5kPScgKyBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDApLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IG93bmVyVXNlciA/ICfZhdmH2K/bjCDYstin2LHYuduMJyA6IHRocmVhZC50aXRsZVxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1lc3NhZ2VUeXBlID4gMC41ICYmIGhhc1RleHQpIHx8IG1lc3NhZ2VUeXBlIDw9IDAuNVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuc2h1ZmZsZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yYW5kb21UZXh0QXJyLnNsaWNlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hdGguZmxvb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtZXNzYWdlVHlwZSA+IDAuNSA/IDMwIDogdGhpcy5yYW5kb21UZXh0QXJyLmxlbmd0aCkgKiBNYXRoLnJhbmRvbSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKS5qb2luKCcgJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VUeXBlID4gMC44NVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ9uM2qkg2LnYr9ivINmB2KfbjNmEJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0OiBbJ3BuZycsICdqcGcnLCAncGRmJywgJ2RvY3MnLCAnY3N2J11bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogNSldLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpICogMTAwKSArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyfYqNin24zYqicsICfaqduM2YTZiNio2KfbjNiqJywgJ9mF2q/Yp9io2KfbjNiqJ11bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMyldXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VUeXBlIDw9IDAuODUgJiYgbWVzc2FnZVR5cGUgPiAwLjVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICfbjNqpINi52K/YryDYudqp2LMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGBodHRwczovL3BpY3N1bS5waG90b3MvJHtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAyMDAwKX0vJHtNYXRoLmZsb29yKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF0aC5yYW5kb20oKSAqIDIwMDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX0/d29ya0Fyb3VuZD0ke01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMCl9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxXaWR0aDogaW1nT3JpZ2luYWxXaWR0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxIZWlnaHQ6IGltZ09yaWdpbmFsSGVpZ2h0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWRBdDogdGhpcy5yYW5kb21EYXRlKG5ldyBEYXRlKCcyMDI0LTAzLTAzJyksIG5ldyBEYXRlKCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVsaXZlcmVkQXQ6IG5ldyBEYXRlKCksXG4gICAgICAgICAgICAgICAgICAgICAgICByZWFkQXQ6IG5ldyBEYXRlKClcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiBhLmNyZWF0ZWRBdC5nZXRUaW1lKCkgLSBiLmNyZWF0ZWRBdC5nZXRUaW1lKCkpXG4gICAgICAgICk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5zY3JvbGxUb0JvdHRvbSh0cnVlLCB0cnVlKSk7XG4gICAgfVxuICAgIHJhbmRvbURhdGUoc3RhcnQ6IERhdGUsIGVuZDogRGF0ZSk6IERhdGUge1xuICAgICAgICByZXR1cm4gbmV3IERhdGUoc3RhcnQuZ2V0VGltZSgpICsgTWF0aC5yYW5kb20oKSAqIChlbmQuZ2V0VGltZSgpIC0gc3RhcnQuZ2V0VGltZSgpKSk7XG4gICAgfVxuICAgIHNodWZmbGUoYXJyYXk6IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICAgICAgICBsZXQgY3VycmVudEluZGV4ID0gYXJyYXkubGVuZ3RoO1xuICAgICAgICBsZXQgcmFuZG9tSW5kZXggPSAxO1xuICAgICAgICB3aGlsZSAoY3VycmVudEluZGV4ID4gMCkge1xuICAgICAgICAgICAgcmFuZG9tSW5kZXggPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBjdXJyZW50SW5kZXgpO1xuICAgICAgICAgICAgY3VycmVudEluZGV4LS07XG4gICAgICAgICAgICBbYXJyYXlbY3VycmVudEluZGV4XSwgYXJyYXlbcmFuZG9tSW5kZXhdXSA9IFthcnJheVtyYW5kb21JbmRleF0sIGFycmF5W2N1cnJlbnRJbmRleF1dO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhcnJheTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJ0dy1mbGV4IHR3LXctZnVsbCB0dy1iZy1ncmFkaWVudC10by1yIHR3LWZyb20tWyM1ZDZlN2ZdIHR3LXRvLVsjMzU0YTVmXSBkYXJrOnR3LWZyb20tWyMyNTM0NDNdIGRhcms6dHctdG8tWyMxMDE2MWNdXCJcbiAgICBmaWxsRW1wdHlTcGFjZVxuICAgIFtjbGFzcy50dy1oLXNjcmVlbl09XCIhc2ltcGxlXCJcbiAgICBbY2xhc3MudHctanVzdGlmeS1jZW50ZXJdPVwic2ltcGxlXCJcbj5cbiAgICBAaWYgKCFzaW1wbGUpIHtcbiAgICA8ZGl2IGNsYXNzPVwidHctYmctYmxhY2svWy4zXSAyeGw6dHctZ3JvdyB0dy1zaHJpbmsgdHctaC1mdWxsXCI+PC9kaXY+XG4gICAgfVxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ0dy1oLWZ1bGwgdHctZmxleCAyeGw6dHctY29udGFpbmVyIG1heC13LVs4MHJlbV0gdHctc2hyaW5rLTAgdHctcmVsYXRpdmVcIlxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAndHctZ3JvdyAyeGw6dHctZ3Jvdy0wJzogIXNpbXBsZSxcbiAgICAgICAgICAgICd0dy13LWZ1bGwnOiBzaW1wbGVcbiAgICAgICAgfVwiXG4gICAgPlxuICAgICAgICBAaWYgKCFzaW1wbGUpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInR3LWdyb3ctMCB0dy1zaHJpbmstMCB0dy13LWZ1bGwgbWQ6dHctdy05NiB0dy1wLTAgbWQ6dHctcC02XCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0dy1mbGV4IHR3LWZsZXgtY29sIHR3LXctZnVsbCB0dy1oLWZ1bGwgdHctb3ZlcmZsb3ctaGlkZGVuIHR3LWJvcmRlci1sIHR3LWJvcmRlci1sLWdyYXktMzAwIG1kOnR3LXJvdW5kZWQtMnhsIG1kOnR3LWJvcmRlciBtZDp0dy1ib3JkZXItbC1ncmF5LTMwMCBtZDp0dy1ib3JkZXItZ3JheS0zMDAgZGFyazp0dy1ib3JkZXItbC1ncmF5LTYwMCBtZDpkYXJrOnR3LWJvcmRlci1sLWdyYXktNjAwIG1kOmRhcms6dHctYm9yZGVyLWdyYXktNjAwXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8YnN1LWJhcnNhLWNoYXQtdGhyZWFkcy1saXN0LXRvb2xiYXI+PC9ic3UtYmFyc2EtY2hhdC10aHJlYWRzLWxpc3QtdG9vbGJhcj5cbiAgICAgICAgICAgICAgICA8YnN1LWJhcnNhLWNoYXQtdGhyZWFkcy1saXN0PlxuICAgICAgICAgICAgICAgICAgICBAZm9yICh0aHJlYWQgb2YgdGhyZWFkczsgdHJhY2sgdGhyZWFkLmlkKSB7XG4gICAgICAgICAgICAgICAgICAgIDxic3UtYmFyc2EtY2hhdC10aHJlYWQgW3RocmVhZF09XCJ0aHJlYWRcIiAoY2xpY2spPVwic2VsZWN0VGhyZWFkKHRocmVhZClcIj48L2JzdS1iYXJzYS1jaGF0LXRocmVhZD5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvYnN1LWJhcnNhLWNoYXQtdGhyZWFkcy1saXN0PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJ0dy1hYnNvbHV0ZSB0dy10b3AtMCB0dy1sZWZ0LTAgdHctdy1mdWxsIHR3LWgtZnVsbCB0dy1iZy1bdXJsKCdhc3NldHMvY2hhdC1iZy5wbmcnKV0gdHctYmctZml4ZWQgdHctb3BhY2l0eS0yNVwiXG4gICAgICAgID48L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInR3LWdyb3cgdHctc2hyaW5rIHR3LXJlbGF0aXZlXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAnbWQ6dHctcHktNiBtZDp0dy1wbC02IHR3LWhpZGRlbiBtZDp0dy1mbGV4JzogIXNpbXBsZSxcbiAgICAgICAgICAgICAgICAndHctZmxleCc6IHNpbXBsZVxuICAgICAgICAgICAgfVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIEBpZiAoc2VsZWN0ZWRUaHJlYWQoKSkge1xuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIEBpbkNvbnRlbnRBbmltYXRpb25cbiAgICAgICAgICAgICAgICBjbGFzcz1cInR3LWgtZnVsbCB0dy13LWZ1bGwgdHctZmxleCB0dy1mbGV4LWNvbCB0dy1yZWxhdGl2ZSBtZDp0dy1ib3JkZXItZ3JheS0zMDAgbWQ6ZGFyazp0dy1ib3JkZXItZ3JheS02MDAgdHctb3ZlcmZsb3ctaGlkZGVuXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICdtZDp0dy1ib3JkZXIgbWQ6dHctcm91bmRlZC0yeGwnOiAhc2ltcGxlXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGJzdS1iYXJzYS1jaGF0LWNvbnRlbnQtdG9vbGJhclxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwic2VsZWN0ZWRUaHJlYWQoKS50aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgIFtzdWJ0aXRsZV09XCIn2YXYrdmF2K8g2YXYrdmF2K/bjCdcIlxuICAgICAgICAgICAgICAgICAgICBbYXZhdGFyXT1cInNlbGVjdGVkVGhyZWFkKCkuYXZhdGFyXCJcbiAgICAgICAgICAgICAgICAgICAgW3N0YXR1c109XCJzZWxlY3RlZFRocmVhZCgpLnN0YXR1c1wiXG4gICAgICAgICAgICAgICAgPjwvYnN1LWJhcnNhLWNoYXQtY29udGVudC10b29sYmFyPlxuICAgICAgICAgICAgICAgIDxic3UtYmFyc2EtY2hhdC1jb250ZW50IGlkPVwiY2hhdC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgQGlmKGxheW91dDk0JCB8IGFzeW5jO2FzIGxheW91dDk0KXsgQGlmICgn2YTbjNiz2Kog2q/Zgdiq2q/ZiCcgfCBjb250cm9sVWk6IGxheW91dDk0OyBhcyBjb25maWdVaSkge1xuICAgICAgICAgICAgICAgICAgICA8YnN1LWxheW91dC1jb250cm9sIFtjb25maWddPVwiY29uZmlnVWlcIj48L2JzdS1sYXlvdXQtY29udHJvbD5cbiAgICAgICAgICAgICAgICAgICAgfSB9XG4gICAgICAgICAgICAgICAgPC9ic3UtYmFyc2EtY2hhdC1jb250ZW50PlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0dy13LWZ1bGxcIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAndHctcmVsYXRpdmUnOiAhc2ltcGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgJzJ4bDp0dy1yb3VuZGVkLXQteGwgdHctZ3Jvdy0wIHR3LXNocmluay0wJzogc2ltcGxlXG4gICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChyZXBseWluZ01lc3NhZ2UoKSkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5PdXRSZXBseWluZ01lc3NhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHctdy1mdWxsIHR3LXB4LTIgdHctcHktMSB0dy1ib3JkZXItci00IHR3LWJvcmRlci1yLWJ1YmJsZS1taW5lIHR3LWZsZXggdHctZ2FwLTIgdGUtaXRlbXMtY2VudGVyIHR3LWFic29sdXRlIHR3LXotMCB0dy1iZy1kZWZhdWx0IHR3LXJpZ2h0LTAgLXR3LXRvcC0xNFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2x5cGg9XCJkZWNsaW5lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInR3LWdyb3ctMCB0dy1zaHJpbmstMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlcGx5aW5nTWVzc2FnZS5zZXQobnVsbClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR3LWZsZXggdHctZmxleC1jb2wgdHctZ3JvdyB0dy1zaHJpbmsgdHctb3ZlcmZsb3ctaGlkZGVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0dy1mb250LWJvbGRcIj57eyByZXBseWluZ01lc3NhZ2UoKS5vd25lci5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHctdHJ1bmNhdGVcIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBseWluZ01lc3NhZ2UoKS50ZXh0ID8/IHJlcGx5aW5nTWVzc2FnZSgpLmZpbGU/Lm5hbWUgPz8gcmVwbHlpbmdNZXNzYWdlKCkuaW1hZ2U/Lm5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR3LXctOCB0dy1zaHJpbmstMCB0dy1ncm93LTBcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0dy13LWZ1bGwgdHctcC0yIHR3LWZsZXggdHctZ2FwLTIgdHctYm9yZGVyLXQgdHctYm9yZGVyLXQtZ3JheS0zMDAgZGFyazp0dy1ib3JkZXItdC1ncmF5LTYwMCB0dy1iZy1kZWZhdWx0IHR3LWl0ZW1zLWVuZCB0dy16LTEwXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLXBvcG92ZXIgcGxhY2VtZW50PVwidG9wLXN0YXJ0XCIgdGl0bGU9XCJ0b3Atc3RhcnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtcG9wb3Zlci1jb250cm9sPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdseXBoPVwiYXR0YWNobWVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIiF0dy1yb3VuZGVkLWZ1bGwgdHctc2hyaW5rLTAgdHctZ3Jvdy0wICF0dy1zaXplLTEwICF0dy1taW4taC0xMCAhdHctbWF4LWgtMTAgIXR3LW1pbi13LTEwICF0dy1tYXgtdy0xMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkQXR0YWNobWVudCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtcG9wb3Zlci1jb250cm9sPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1wb3BvdmVyLWJvZHkgbWluV2lkdGg9XCIxMHJlbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHctZmxleCB0dy1mbGV4LWNvbCB0dy1iZy1kZWZhdWx0IHR3LXctZnVsbFwiIGJvZHlDbGljaz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHctcHgtNCB0dy1weS0yIHR3LWZsZXggdHctZ2FwLTIgdHctdy1mdWxsIGhvdmVyOnR3LWJnLWJhc2UvWy4xXSB0dy10cmFuc2l0aW9uLWFsbCB0dy1jdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWljb24gY2xhc3M9XCIhdHctdGV4dC1iYXNlICF0dy10ZXh0LTN4bFwiIGdseXBoPVwiY2FtZXJhXCI+PC9mZC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiIXR3LXRleHQtYmFzZVwiPtin2LHYs9in2YQg2LnaqdizPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cInR3LWhpZGRlblwiIHR5cGU9XCJmaWxlXCIgaWQ9XCJpbWdcIiBuYW1lPVwiaW1nXCIgYWNjZXB0PVwiaW1hZ2UvKlwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0dy1weC00IHR3LXB5LTIgdHctZmxleCB0dy1nYXAtMiB0dy13LWZ1bGwgaG92ZXI6dHctYmctYmFzZS9bLjFdIHR3LXRyYW5zaXRpb24tYWxsIHR3LWN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtaWNvbiBjbGFzcz1cIiF0dy10ZXh0LWJhc2UgIXR3LXRleHQtM3hsXCIgZ2x5cGg9XCJhZGQtZG9jdW1lbnRcIj48L2ZkLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCIhdHctdGV4dC1iYXNlXCI+2KfYsdiz2KfZhCDZgdin24zZhDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJ0dy1oaWRkZW5cIiB0eXBlPVwiZmlsZVwiIGlkPVwiZmlsZVwiIG5hbWU9XCJmaWxlXCIgYWNjZXB0PVwiZmlsZS8qXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtcG9wb3Zlci1ib2R5PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1wb3BvdmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR3LWlubGluZS1mbGV4IHR3LXJlbGF0aXZlIHR3LWdyb3cgdHctc2hyaW5rXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWZlZWQtaW5wdXQgW2F0dHIuYXJpYS1sYWJlbF09XCIn2YXYqtmGINm+24zYp9mFJ1wiIGNsYXNzPVwidHctZmxleC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1hdmF0YXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkRmVlZElucHV0QXZhdGFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ9ix2KfZh9io2LEnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbWFnZV09XCInJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2ZkLWF2YXRhcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNoYXQtdGV4dGFyZWFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtZm9ybS1jb250cm9sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZEZlZWRJbnB1dFRleHRhcmVhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cItmF2KrZhiDZvtuM2KfZhVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmRGZWVkSW5wdXRUZXh0YXJlYU1heFJvd3NdPVwiMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW5wdXQpPVwib25UZXh0Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC90ZXh0YXJlYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRGZWVkSW5wdXRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1NlbmQnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCInU2VuZCcgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbmRNZXNzYWdlKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1mZWVkLWlucHV0PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cInR3LWFic29sdXRlIHR3LXRvcC0xLzIgLXR3LXRyYW5zbGF0ZS15LTEvMiB0dy1sZWZ0LTEvMiAtdHctdHJhbnNsYXRlLXgtMS8yIHR3LWZsZXggdHctZmxleC1jb2wgdHctZ2FwLTggdHctaXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImFzc2V0cy9ub3Qtc2VsZWN0ZWQtY2hhdC5wbmdcIiBjbGFzcz1cInR3LXctNjQgdHctb3BhY2l0eS0yNVwiIC8+XG4gICAgICAgICAgICAgICAgPCEtLSAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHctdGV4dC14bCB0dy1mb250LWJvbGQgdHctdGV4dC1ncmF5LTQwMCBkYXJrOnR3LXRleHQtZ3JheS01MDBcIj4tLT5cbiAgICAgICAgICAgICAgICA8IS0tICAgICAgICAgICAgICAgINio2LHYp9uMINi02LHZiNi5INuM2qkg2obYqiDYsdinINin2YbYqtiu2KfYqCDaqdmG24zYry0tPlxuICAgICAgICAgICAgICAgIDwhLS0gICAgICAgICAgICA8L3NwYW4+LS0+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgQGlmICghc2ltcGxlKSB7XG4gICAgPGRpdiBjbGFzcz1cInR3LWJnLWJsYWNrL1suM10gMnhsOnR3LWdyb3cgdHctc2hyaW5rIHR3LWgtZnVsbFwiPjwvZGl2PlxuICAgIH1cbjwvZGl2PlxuIl19
|
|
242
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtY2hhdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi9iYXJzYS1jaGF0L2JhcnNhLWNoYXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtY2hhdC9iYXJzYS1jaGF0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWtCLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sT0FBTyxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUE4QnJGLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxpQkFBaUI7SUE1QnpEOztRQTZCYSxXQUFNLEdBQUcsSUFBSSxDQUFDO1FBRXZCLGtCQUFhLEdBQUcsK0RBQStELENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNGLG9CQUFlLEdBQUcsOERBQThELENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVGLGtCQUFhLEdBQUcsQ0FDWixtRkFBbUY7WUFDbkYsK0ZBQStGO1lBQy9GLDRGQUE0RjtZQUM1RiwyRkFBMkY7WUFDM0YsMkZBQTJGO1lBQzNGLHlGQUF5RjtZQUN6RiwwRkFBMEY7WUFDMUYsOEVBQThFLENBQ2pGLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7YUFDZCxJQUFJLENBQUMsSUFB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QUM7NkJBQ25GLENBQUM7NEJBQ0YsVUFBVSxDQUFDLFFBQVEsRUFBRTtnQ0FDakIsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQztnQ0FDckQsT0FBTyxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLENBQUM7NkJBQ2hGLENBQUM7eUJBQ0wsQ0FBQzt3QkFDRixPQUFPLENBQUMsc0JBQXNCLEVBQUU7NEJBQzVCLFVBQVUsQ0FBQyxRQUFRLEVBQUU7Z0NBQ2pCLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLENBQUM7Z0NBQ25ELE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDOzZCQUMvRSxDQUFDOzRCQUNGLFVBQVUsQ0FBQyxRQUFRLEVBQUU7Z0NBQ2pCLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDO2dDQUNqRCxPQUFPLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQzs2QkFDaEYsQ0FBQzt5QkFDTCxDQUFDO3FCQUNMOzhCQUdRLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBzaWduYWwsIFdyaXRhYmxlU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgam1vbWVudCBmcm9tICdtb21lbnQtamFsYWFsaSc7XG5pbXBvcnQgeyBhbmltYXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgRm9ybUJhc2VDb21wb25lbnQsIEZvcm1QYW5lbFNlcnZpY2UsIEJhcnNhQXBpIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS1iYXJzYS1jaGF0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYmFyc2EtY2hhdC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2JhcnNhLWNoYXQuY29tcG9uZW50LmNzcycsXG4gICAgcHJvdmlkZXJzOiBbRm9ybVBhbmVsU2VydmljZV0sXG4gICAgYW5pbWF0aW9uczogW1xuICAgICAgICB0cmlnZ2VyKCdpbkNvbnRlbnRBbmltYXRpb24nLCBbXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXG4gICAgICAgICAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAwLCB0cmFuc2Zvcm06ICdzY2FsZSg1MCUsIDUwJSknIH0pLFxuICAgICAgICAgICAgICAgIGFuaW1hdGUoJzMwMG1zIGVhc2Utb3V0Jywgc3R5bGUoeyBvcGFjaXR5OiAxLCB0cmFuc2Zvcm06ICdzY2FsZSgxMDAlLCAxMDAlKScgfSkpXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtcbiAgICAgICAgICAgICAgICBzdHlsZSh7IG9wYWNpdHk6IDEsIHRyYW5zZm9ybTogJ3NjYWxlKDEwMCUsIDEwMCUpJyB9KSxcbiAgICAgICAgICAgICAgICBhbmltYXRlKCczMDBtcyBlYXNlLWluJywgc3R5bGUoeyBvcGFjaXR5OiAwLCB0cmFuc2Zvcm06ICdzY2FsZSg1MCUsIDUwJSknIH0pKVxuICAgICAgICAgICAgXSlcbiAgICAgICAgXSksXG4gICAgICAgIHRyaWdnZXIoJ2luT3V0UmVwbHlpbmdNZXNzYWdlJywgW1xuICAgICAgICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xuICAgICAgICAgICAgICAgIHN0eWxlKHsgb3BhY2l0eTogMCwgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSg1MCUpJyB9KSxcbiAgICAgICAgICAgICAgICBhbmltYXRlKCczMDBtcyBlYXNlLW91dCcsIHN0eWxlKHsgb3BhY2l0eTogMSwgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgwKScgfSkpXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtcbiAgICAgICAgICAgICAgICBzdHlsZSh7IG9wYWNpdHk6IDEsIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoMCknIH0pLFxuICAgICAgICAgICAgICAgIGFuaW1hdGUoJzMwMG1zIGVhc2UtaW4nLCBzdHlsZSh7IG9wYWNpdHk6IDAsIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoNTAlKScgfSkpXG4gICAgICAgICAgICBdKVxuICAgICAgICBdKVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgQmFyc2FDaGF0Q29tcG9uZW50IGV4dGVuZHMgRm9ybUJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KCkgc2ltcGxlID0gdHJ1ZTtcblxuICAgIHJhbmRvbU5hbWVBcnIgPSAn2LnZhNuMINit2LPZhiDYrdiz24zZhiDYqtmC24wg2YbZgtuMINmF2K3ZhdivINmF2YfYr9uMINis2KfZiNuM2K8g2YXYrdmF2K/Ysdi22Kcg2qnYsduM2YUg2YfZiNi02YbaryDZvtuM2YXYp9mGJy5zcGxpdCgnICcpO1xuICAgIHJhbmRvbUZhbWlseUFyciA9ICfaqdix24zZhduMINit2LPbjNmG24wg2LLYp9ix2LnbjCDYqtmC2YjbjCDaqdin2LjZhduMINmC2YbYqNix24wg2YbYqNmI24zYp9mGINin2YHYtNin2LEg2LHYp9iv2YXZhtivINmF2K3Zhdiv24wnLnNwbGl0KCcgJyk7XG4gICAgcmFuZG9tVGV4dEFyciA9IChcbiAgICAgICAgJ9mE2YjYsdmFINin24zZvtiz2YjZhSDZhdiq2YYg2LPYp9iu2Krar9uMINio2Kcg2KrZiNmE24zYryDYs9in2K/ar9uMINmG2KfZhdmB2YfZiNmFINin2LIg2LXZhti52Kog2obYp9m+2Iwg2Ygg2KjYpyDYp9iz2KrZgdin2K/ZhyDYp9iyINi32LHYp9it2KfZhicgK1xuICAgICAgICAnINqv2LHYp9mB24zaqSDYp9iz2KrYjCDahtin2b7ar9ix2YfYpyDZiCDZhdiq2YjZhiDYqNmE2qnZhyDYsdmI2LLZhtin2YXZhyDZiCDZhdis2YTZhyDYr9ixINiz2KrZiNmGINmIINiz2LfYsdii2YbahtmG2KfZhiDaqdmHINmE2KfYstmFINin2LPYqtiMINmIINio2LHYp9uMINi02LHYp9uM2LcnICtcbiAgICAgICAgJyDZgdi52YTbjCDYqtqp2YbZiNmE2YjamNuMINmF2YjYsdivINmG24zYp9iy2Iwg2Ygg2qnYp9ix2KjYsdiv2YfYp9uMINmF2KrZhtmI2Lkg2KjYpyDZh9iv2YEg2KjZh9io2YjYryDYp9io2LLYp9ix2YfYp9uMINqp2KfYsdio2LHYr9uMINmF24wg2KjYp9i02K/YjCDaqdiq2KfYqNmH2KfbjCcgK1xuICAgICAgICAnINiy24zYp9iv24wg2K/YsSDYtNi12Kog2Ygg2LPZhyDYr9ix2LXYryDar9iw2LTYqtmHINit2KfZhCDZiCDYotuM2YbYr9mH2Iwg2LTZhtin2K7YqiDZgdix2KfZiNin2YYg2KzYp9mF2LnZhyDZiCDZhdiq2K7Ytdi12KfZhiDYsdinINmF24wg2LfZhNio2K/YjCDYqtinINio2KcnICtcbiAgICAgICAgJyDZhtix2YUg2KfZgdiy2KfYsdmH2Kcg2LTZhtin2K7YqiDYqNuM2LTYqtix24wg2LHYpyDYqNix2KfbjCDYt9ix2KfYrdin2YYg2LHYp9uM2KfZhtmHINin24wg2LnZhNuMINin2YTYrti12YjYtSDYt9ix2KfYrdin2YYg2K7ZhNin2YLbjNiMINmIINmB2LHZh9mG2q8g2b7bjNi02LHZiCcgK1xuICAgICAgICAnINiv2LEg2LLYqNin2YYg2YHYp9ix2LPbjCDYp9uM2KzYp9ivINqp2LHYr9iMINiv2LEg2KfbjNmGINi12YjYsdiqINmF24wg2KrZiNin2YYg2KfZhduM2K8g2K/Yp9i02Kog2qnZhyDYqtmF2KfZhSDZiCDYr9i02YjYp9ix24wg2YXZiNis2YjYryDYr9ixINin2LHYp9im2YcnICtcbiAgICAgICAgJyDYsdin2Yfaqdin2LHZh9in2Iwg2Ygg2LTYsdin24zYtyDYs9iu2Kog2KrYp9uM2b4g2KjZhyDZvtin24zYp9mGINix2LPYryDZiCDYstmF2KfZhiDZhdmI2LHYryDZhtuM2KfYsiDYtNin2YXZhCDYrdix2YjZgdqG24zZhtuMINiv2LPYqtin2YjYsdiv2YfYp9uMINin2LXZhNuM2IwnICtcbiAgICAgICAgJyDZiCDYrNmI2KfYqNqv2YjbjCDYs9mI2KfZhNin2Kog2b7bjNmI2LPYqtmHINin2YfZhCDYr9mG24zYp9uMINmF2YjYrNmI2K8g2LfYsdin2K3bjCDYp9iz2KfYs9inINmF2YjYsdivINin2LPYqtmB2KfYr9mHINmC2LHYp9ixINqv24zYsdivLidcbiAgICApLnNwbGl0KCcgJyk7XG4gICAgdGhyZWFkcyA9IEFycmF5KDIwKVxuICAgICAgICAuZmlsbChudWxsKVxuICAgICAgICAubWFwKCh0KSA9PiAoe1xuICAgICAgICAgICAgaWQ6IE1hdGgucmFuZG9tKCkgKiAxMDAwLFxuICAgICAgICAgICAgdGl0bGU6XG4gICAgICAgICAgICAgICAgdGhpcy5yYW5kb21OYW1lQXJyW01hdGguZmxvb3IodGhpcy5yYW5kb21OYW1lQXJyLmxlbmd0aCAqIE1hdGgucmFuZG9tKCkpXSArXG4gICAgICAgICAgICAgICAgJyAnICtcbiAgICAgICAgICAgICAgICB0aGlzLnJhbmRvbUZhbWlseUFycltNYXRoLmZsb29yKHRoaXMucmFuZG9tRmFtaWx5QXJyLmxlbmd0aCAqIE1hdGgucmFuZG9tKCkpXSxcbiAgICAgICAgICAgIGF2YXRhcjogJ2h0dHBzOi8vcGljc3VtLnBob3Rvcy8xMDA/d29ya0Fyb3VuZD0nICsgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwKSxcbiAgICAgICAgICAgIHN0YXR1czogTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogNCksXG4gICAgICAgICAgICBsYXN0QWN0aXZpdHk6IHRoaXMucmFuZG9tRGF0ZShuZXcgRGF0ZSgnMjAyNC0wMy0wMycpLCBuZXcgRGF0ZSgpKSxcbiAgICAgICAgICAgIHVucmVhZENvdW50OiBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkpID8gMSArIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDIwKSA6IDAsXG4gICAgICAgICAgICBwaW5uZWQ6ICEhTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpKSxcbiAgICAgICAgICAgIG11dGVkOiAhIU1hdGgucm91bmQoTWF0aC5yYW5kb20oKSksXG4gICAgICAgICAgICBsYXN0TWVzc2FnZToge1xuICAgICAgICAgICAgICAgIGlkOiBNYXRoLnJhbmRvbSgpICogMTAwMCxcbiAgICAgICAgICAgICAgICBvd25lcjoge1xuICAgICAgICAgICAgICAgICAgICBpZDogMTIzNCxcbiAgICAgICAgICAgICAgICAgICAgYXZhdGFyOiAnaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzEwMD93b3JrQXJvdW5kPScgKyBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDApLFxuICAgICAgICAgICAgICAgICAgICBuYW1lOiAn2YXZh9iv24wg2LLYp9ix2LnbjCdcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHRleHQ6IHRoaXMuc2h1ZmZsZShcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yYW5kb21UZXh0QXJyLnNsaWNlKDAsIDEgKyBNYXRoLmZsb29yKHRoaXMucmFuZG9tVGV4dEFyci5sZW5ndGggKiBNYXRoLnJhbmRvbSgpKSlcbiAgICAgICAgICAgICAgICApLmpvaW4oJyAnKSxcbiAgICAgICAgICAgICAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKClcbiAgICAgICAgICAgICAgICAgICAgLnRvVGltZVN0cmluZygpXG4gICAgICAgICAgICAgICAgICAgIC5zcGxpdCgnICcpWzBdXG4gICAgICAgICAgICAgICAgICAgIC5zcGxpdCgnOicpXG4gICAgICAgICAgICAgICAgICAgIC5zbGljZSgwLCAyKVxuICAgICAgICAgICAgICAgICAgICAubWFwKChzKSA9PiBzLnBhZFN0YXJ0KDIsICcwJykpXG4gICAgICAgICAgICAgICAgICAgIC5qb2luKCc6JyksXG4gICAgICAgICAgICAgICAgZGVsaXZlcmVkQXQ6IG5ldyBEYXRlKClcbiAgICAgICAgICAgICAgICAgICAgLnRvVGltZVN0cmluZygpXG4gICAgICAgICAgICAgICAgICAgIC5zcGxpdCgnICcpWzBdXG4gICAgICAgICAgICAgICAgICAgIC5zcGxpdCgnOicpXG4gICAgICAgICAgICAgICAgICAgIC5zbGljZSgwLCAyKVxuICAgICAgICAgICAgICAgICAgICAubWFwKChzKSA9PiBzLnBhZFN0YXJ0KDIsICcwJykpXG4gICAgICAgICAgICAgICAgICAgIC5qb2luKCc6JyksXG4gICAgICAgICAgICAgICAgcmVhZEF0OiBuZXcgRGF0ZSgpXG4gICAgICAgICAgICAgICAgICAgIC50b1RpbWVTdHJpbmcoKVxuICAgICAgICAgICAgICAgICAgICAuc3BsaXQoJyAnKVswXVxuICAgICAgICAgICAgICAgICAgICAuc3BsaXQoJzonKVxuICAgICAgICAgICAgICAgICAgICAuc2xpY2UoMCwgMilcbiAgICAgICAgICAgICAgICAgICAgLm1hcCgocykgPT4gcy5wYWRTdGFydCgyLCAnMCcpKVxuICAgICAgICAgICAgICAgICAgICAuam9pbignOicpXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pKTtcbiAgICBtb21lbnQgPSBqbW9tZW50O1xuICAgIHNlbGVjdGVkVGhyZWFkOiBXcml0YWJsZVNpZ25hbDxhbnkgfCBudWxsPiA9IHNpZ25hbChudWxsKTtcbiAgICBtZXNzYWdlczogV3JpdGFibGVTaWduYWw8YW55W10gfCBudWxsPiA9IHNpZ25hbChudWxsKTtcbiAgICByZXBseWluZ01lc3NhZ2U6IFdyaXRhYmxlU2lnbmFsPGFueSB8IG51bGw+ID0gc2lnbmFsKG51bGwpO1xuICAgIF9uZXdNZXNzYWdlVGV4dCA9ICcnO1xuICAgIG9uVGV4dENoYW5nZSgkZXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbmV3TWVzc2FnZVRleHQgPSAkZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgIH1cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCdjaGF0LW1vZGUnKTtcbiAgICAgICAgdGhpcy5zZWxlY3RUaHJlYWQodGhpcy50aHJlYWRzWzBdKTtcbiAgICB9XG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgnY2hhdC1tb2RlJyk7XG4gICAgfVxuICAgIHNjcm9sbFRvQm90dG9tKGZvcmNlID0gZmFsc2UsIGluc3RhbnQgPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSAodGhpcy5fZWw/Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLnF1ZXJ5U2VsZWN0b3IoJyNjaGF0Q29udGVudEVsZW1lbnQnKSBhcyBhbnk7XG4gICAgICAgIGlmIChmb3JjZSB8fCAoY29udGFpbmVyICYmIGNvbnRhaW5lci5zY3JvbGxUb3BNYXggLSBjb250YWluZXIuc2Nyb2xsVG9wIDwgMzAwKSkge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PlxuICAgICAgICAgICAgICAgIGNvbnRhaW5lcj8uc2Nyb2xsVG8oe1xuICAgICAgICAgICAgICAgICAgICB0b3A6IGNvbnRhaW5lci5zY3JvbGxIZWlnaHQsXG4gICAgICAgICAgICAgICAgICAgIGJlaGF2aW9yOiBpbnN0YW50ID8gJ2luc3RhbnQnIDogJ3Ntb290aCdcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzZW5kTWVzc2FnZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX25ld01lc3NhZ2VUZXh0Py50cmltKCkubGVuZ3RoKSB7XG4gICAgICAgICAgICBCYXJzYUFwaS5Cdy5SdW5CbE1ldGhvZEFzeW5jKHt9KTtcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZXM/LnNldChbXG4gICAgICAgICAgICAgICAgLi4uKHRoaXMubWVzc2FnZXMoKSBhcyBhbnlbXSksXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBpZDogTWF0aC5yYW5kb20oKSAqIDEwMDAsXG4gICAgICAgICAgICAgICAgICAgIG93bmVyOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogMTIzNCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGF2YXRhcjogJ2h0dHBzOi8vcGljc3VtLnBob3Rvcy8xMDA/d29ya0Fyb3VuZD0nICsgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICfZhdmH2K/bjCDYstin2LHYuduMJ1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiB0aGlzLl9uZXdNZXNzYWdlVGV4dCxcbiAgICAgICAgICAgICAgICAgICAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLFxuICAgICAgICAgICAgICAgICAgICBkZWxpdmVyZWRBdDogbmV3IERhdGUoKSxcbiAgICAgICAgICAgICAgICAgICAgcmVhZEF0OiBuZXcgRGF0ZSgpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICB0aGlzLl9uZXdNZXNzYWdlVGV4dCA9ICcnO1xuICAgICAgICAgICAgY29uc3QgaW5wdXRNZXNzYWdlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NoYXQtdGV4dGFyZWEnKTtcbiAgICAgICAgICAgIGlmIChpbnB1dE1lc3NhZ2UpIHtcbiAgICAgICAgICAgICAgICBpbnB1dE1lc3NhZ2UuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICBpbnB1dE1lc3NhZ2UuaW5uZXJUZXh0ID0gJyc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNjcm9sbFRvQm90dG9tKHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGFkZEF0dGFjaG1lbnQoKTogdm9pZCB7fVxuICAgIHNlbGVjdFRocmVhZCh0aHJlYWQ6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGVkVGhyZWFkLnNldCh0aHJlYWQpO1xuICAgICAgICB0aGlzLm1lc3NhZ2VzLnNldChcbiAgICAgICAgICAgIEFycmF5KDQwKVxuICAgICAgICAgICAgICAgIC5maWxsKG51bGwpXG4gICAgICAgICAgICAgICAgLm1hcCgodCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBvd25lclVzZXIgPSBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtZXNzYWdlVHlwZSA9IE1hdGgucmFuZG9tKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGhhc1RleHQgPSBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbWdPcmlnaW5hbFdpZHRoID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMjAwKSArIDIwMDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaW1nT3JpZ2luYWxIZWlnaHQgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAyMDApICsgMjAwO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IE1hdGgucmFuZG9tKCkgKiAxMDAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgb3duZXI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogb3duZXJVc2VyID8gMTIzNCA6IDQzMjEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXZhdGFyOiAnaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzEwMD93b3JrQXJvdW5kPScgKyBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDApLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IG93bmVyVXNlciA/ICfZhdmH2K/bjCDYstin2LHYuduMJyA6IHRocmVhZC50aXRsZVxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1lc3NhZ2VUeXBlID4gMC41ICYmIGhhc1RleHQpIHx8IG1lc3NhZ2VUeXBlIDw9IDAuNVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuc2h1ZmZsZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yYW5kb21UZXh0QXJyLnNsaWNlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hdGguZmxvb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtZXNzYWdlVHlwZSA+IDAuNSA/IDMwIDogdGhpcy5yYW5kb21UZXh0QXJyLmxlbmd0aCkgKiBNYXRoLnJhbmRvbSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKS5qb2luKCcgJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VUeXBlID4gMC44NVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ9uM2qkg2LnYr9ivINmB2KfbjNmEJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0OiBbJ3BuZycsICdqcGcnLCAncGRmJywgJ2RvY3MnLCAnY3N2J11bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogNSldLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpICogMTAwKSArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyfYqNin24zYqicsICfaqduM2YTZiNio2KfbjNiqJywgJ9mF2q/Yp9io2KfbjNiqJ11bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMyldXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VUeXBlIDw9IDAuODUgJiYgbWVzc2FnZVR5cGUgPiAwLjVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICfbjNqpINi52K/YryDYudqp2LMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGBodHRwczovL3BpY3N1bS5waG90b3MvJHtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAyMDAwKX0vJHtNYXRoLmZsb29yKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF0aC5yYW5kb20oKSAqIDIwMDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX0/d29ya0Fyb3VuZD0ke01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMCl9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxXaWR0aDogaW1nT3JpZ2luYWxXaWR0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxIZWlnaHQ6IGltZ09yaWdpbmFsSGVpZ2h0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWRBdDogdGhpcy5yYW5kb21EYXRlKG5ldyBEYXRlKCcyMDI0LTAzLTAzJyksIG5ldyBEYXRlKCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVsaXZlcmVkQXQ6IG5ldyBEYXRlKCksXG4gICAgICAgICAgICAgICAgICAgICAgICByZWFkQXQ6IG5ldyBEYXRlKClcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiBhLmNyZWF0ZWRBdC5nZXRUaW1lKCkgLSBiLmNyZWF0ZWRBdC5nZXRUaW1lKCkpXG4gICAgICAgICk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5zY3JvbGxUb0JvdHRvbSh0cnVlLCB0cnVlKSk7XG4gICAgfVxuICAgIHJhbmRvbURhdGUoc3RhcnQ6IERhdGUsIGVuZDogRGF0ZSk6IERhdGUge1xuICAgICAgICByZXR1cm4gbmV3IERhdGUoc3RhcnQuZ2V0VGltZSgpICsgTWF0aC5yYW5kb20oKSAqIChlbmQuZ2V0VGltZSgpIC0gc3RhcnQuZ2V0VGltZSgpKSk7XG4gICAgfVxuICAgIHNodWZmbGUoYXJyYXk6IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICAgICAgICBsZXQgY3VycmVudEluZGV4ID0gYXJyYXkubGVuZ3RoO1xuICAgICAgICBsZXQgcmFuZG9tSW5kZXggPSAxO1xuICAgICAgICB3aGlsZSAoY3VycmVudEluZGV4ID4gMCkge1xuICAgICAgICAgICAgcmFuZG9tSW5kZXggPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBjdXJyZW50SW5kZXgpO1xuICAgICAgICAgICAgY3VycmVudEluZGV4LS07XG4gICAgICAgICAgICBbYXJyYXlbY3VycmVudEluZGV4XSwgYXJyYXlbcmFuZG9tSW5kZXhdXSA9IFthcnJheVtyYW5kb21JbmRleF0sIGFycmF5W2N1cnJlbnRJbmRleF1dO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhcnJheTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJ0dy1mbGV4IHR3LXctZnVsbCB0dy1iZy1ncmFkaWVudC10by1yIHR3LWZyb20tWyM1ZDZlN2ZdIHR3LXRvLVsjMzU0YTVmXSBkYXJrOnR3LWZyb20tWyMyNTM0NDNdIGRhcms6dHctdG8tWyMxMDE2MWNdXCJcbiAgICBmaWxsRW1wdHlTcGFjZVxuICAgIFtjbGFzcy50dy1oLXNjcmVlbl09XCIhc2ltcGxlXCJcbiAgICBbY2xhc3MudHctanVzdGlmeS1jZW50ZXJdPVwic2ltcGxlXCJcbj5cbiAgICBAaWYgKCFzaW1wbGUpIHtcbiAgICA8ZGl2IGNsYXNzPVwidHctYmctYmxhY2svWy4zXSAyeGw6dHctZ3JvdyB0dy1zaHJpbmsgdHctaC1mdWxsXCI+PC9kaXY+XG4gICAgfVxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ0dy1oLWZ1bGwgdHctZmxleCAyeGw6dHctY29udGFpbmVyIG1heC13LVs4MHJlbV0gdHctc2hyaW5rLTAgdHctcmVsYXRpdmVcIlxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAndHctZ3JvdyAyeGw6dHctZ3Jvdy0wJzogIXNpbXBsZSxcbiAgICAgICAgICAgICd0dy13LWZ1bGwnOiBzaW1wbGVcbiAgICAgICAgfVwiXG4gICAgPlxuICAgICAgICBAaWYgKCFzaW1wbGUpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInR3LWdyb3ctMCB0dy1zaHJpbmstMCB0dy13LWZ1bGwgbWQ6dHctdy05NiB0dy1wLTAgbWQ6dHctcC02XCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0dy1mbGV4IHR3LWZsZXgtY29sIHR3LXctZnVsbCB0dy1oLWZ1bGwgdHctb3ZlcmZsb3ctaGlkZGVuIHR3LWJvcmRlci1sIHR3LWJvcmRlci1sLWdyYXktMzAwIG1kOnR3LXJvdW5kZWQtMnhsIG1kOnR3LWJvcmRlciBtZDp0dy1ib3JkZXItbC1ncmF5LTMwMCBtZDp0dy1ib3JkZXItZ3JheS0zMDAgZGFyazp0dy1ib3JkZXItbC1ncmF5LTYwMCBtZDpkYXJrOnR3LWJvcmRlci1sLWdyYXktNjAwIG1kOmRhcms6dHctYm9yZGVyLWdyYXktNjAwXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8YnN1LWJhcnNhLWNoYXQtdGhyZWFkcy1saXN0LXRvb2xiYXI+PC9ic3UtYmFyc2EtY2hhdC10aHJlYWRzLWxpc3QtdG9vbGJhcj5cbiAgICAgICAgICAgICAgICA8YnN1LWJhcnNhLWNoYXQtdGhyZWFkcy1saXN0PlxuICAgICAgICAgICAgICAgICAgICBAZm9yICh0aHJlYWQgb2YgdGhyZWFkczsgdHJhY2sgdGhyZWFkLmlkKSB7XG4gICAgICAgICAgICAgICAgICAgIDxic3UtYmFyc2EtY2hhdC10aHJlYWQgW3RocmVhZF09XCJ0aHJlYWRcIiAoY2xpY2spPVwic2VsZWN0VGhyZWFkKHRocmVhZClcIj48L2JzdS1iYXJzYS1jaGF0LXRocmVhZD5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvYnN1LWJhcnNhLWNoYXQtdGhyZWFkcy1saXN0PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJ0dy1hYnNvbHV0ZSB0dy10b3AtMCB0dy1sZWZ0LTAgdHctdy1mdWxsIHR3LWgtZnVsbCB0dy1iZy1bdXJsKCdhc3NldHMvY2hhdC1iZy5wbmcnKV0gdHctYmctZml4ZWQgdHctb3BhY2l0eS0yNVwiXG4gICAgICAgID48L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInR3LWdyb3cgdHctc2hyaW5rIHR3LXJlbGF0aXZlXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAnbWQ6dHctcHktNiBtZDp0dy1wbC02IHR3LWhpZGRlbiBtZDp0dy1mbGV4JzogIXNpbXBsZSxcbiAgICAgICAgICAgICAgICAndHctZmxleCc6IHNpbXBsZVxuICAgICAgICAgICAgfVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIEBpZiAoc2VsZWN0ZWRUaHJlYWQoKSkge1xuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIEBpbkNvbnRlbnRBbmltYXRpb25cbiAgICAgICAgICAgICAgICBjbGFzcz1cInR3LWgtZnVsbCB0dy13LWZ1bGwgdHctZmxleCB0dy1mbGV4LWNvbCB0dy1yZWxhdGl2ZSBtZDp0dy1ib3JkZXItZ3JheS0zMDAgbWQ6ZGFyazp0dy1ib3JkZXItZ3JheS02MDAgdHctb3ZlcmZsb3ctaGlkZGVuXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICdtZDp0dy1ib3JkZXIgbWQ6dHctcm91bmRlZC0yeGwnOiAhc2ltcGxlXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGJzdS1iYXJzYS1jaGF0LWNvbnRlbnQtdG9vbGJhclxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwic2VsZWN0ZWRUaHJlYWQoKS50aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgIFtzdWJ0aXRsZV09XCIn2YXYrdmF2K8g2YXYrdmF2K/bjCdcIlxuICAgICAgICAgICAgICAgICAgICBbYXZhdGFyXT1cInNlbGVjdGVkVGhyZWFkKCkuYXZhdGFyXCJcbiAgICAgICAgICAgICAgICAgICAgW3N0YXR1c109XCJzZWxlY3RlZFRocmVhZCgpLnN0YXR1c1wiXG4gICAgICAgICAgICAgICAgPjwvYnN1LWJhcnNhLWNoYXQtY29udGVudC10b29sYmFyPlxuICAgICAgICAgICAgICAgIDxic3UtYmFyc2EtY2hhdC1jb250ZW50IGlkPVwiY2hhdC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgQGlmKGxheW91dDk0JCB8IGFzeW5jO2FzIGxheW91dDk0KXsgQGlmICgn2YTbjNiz2Kog2q/Zgdiq2q/ZiCcgfCBjb250cm9sVWk6IGxheW91dDk0OyBhcyBjb25maWdVaSkge1xuICAgICAgICAgICAgICAgICAgICA8YnN1LWxheW91dC1jb250cm9sIFtjb25maWddPVwiY29uZmlnVWlcIj48L2JzdS1sYXlvdXQtY29udHJvbD5cbiAgICAgICAgICAgICAgICAgICAgfSB9XG4gICAgICAgICAgICAgICAgPC9ic3UtYmFyc2EtY2hhdC1jb250ZW50PlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0dy13LWZ1bGxcIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAndHctcmVsYXRpdmUnOiAhc2ltcGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgJzJ4bDp0dy1yb3VuZGVkLXQteGwgdHctZ3Jvdy0wIHR3LXNocmluay0wJzogc2ltcGxlXG4gICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChyZXBseWluZ01lc3NhZ2UoKSkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5PdXRSZXBseWluZ01lc3NhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHctdy1mdWxsIHR3LXB4LTIgdHctcHktMSB0dy1ib3JkZXItci00IHR3LWJvcmRlci1yLWJ1YmJsZS1taW5lIHR3LWZsZXggdHctZ2FwLTIgdGUtaXRlbXMtY2VudGVyIHR3LWFic29sdXRlIHR3LXotMCB0dy1iZy1kZWZhdWx0IHR3LXJpZ2h0LTAgLXR3LXRvcC0xNFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2x5cGg9XCJkZWNsaW5lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInR3LWdyb3ctMCB0dy1zaHJpbmstMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlcGx5aW5nTWVzc2FnZS5zZXQobnVsbClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR3LWZsZXggdHctZmxleC1jb2wgdHctZ3JvdyB0dy1zaHJpbmsgdHctb3ZlcmZsb3ctaGlkZGVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0dy1mb250LWJvbGRcIj57eyByZXBseWluZ01lc3NhZ2UoKS5vd25lci5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHctdHJ1bmNhdGVcIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBseWluZ01lc3NhZ2UoKS50ZXh0ID8/IHJlcGx5aW5nTWVzc2FnZSgpLmZpbGU/Lm5hbWUgPz8gcmVwbHlpbmdNZXNzYWdlKCkuaW1hZ2U/Lm5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR3LXctOCB0dy1zaHJpbmstMCB0dy1ncm93LTBcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0dy13LWZ1bGwgdHctcC0yIHR3LWZsZXggdHctZ2FwLTIgdHctYm9yZGVyLXQgdHctYm9yZGVyLXQtZ3JheS0zMDAgZGFyazp0dy1ib3JkZXItdC1ncmF5LTYwMCB0dy1iZy1kZWZhdWx0IHR3LWl0ZW1zLWVuZCB0dy16LTEwXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLXBvcG92ZXIgcGxhY2VtZW50PVwidG9wLXN0YXJ0XCIgdGl0bGU9XCJ0b3Atc3RhcnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtcG9wb3Zlci1jb250cm9sPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdseXBoPVwiYXR0YWNobWVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIiF0dy1yb3VuZGVkLWZ1bGwgdHctc2hyaW5rLTAgdHctZ3Jvdy0wICF0dy1zaXplLTEwICF0dy1taW4taC0xMCAhdHctbWF4LWgtMTAgIXR3LW1pbi13LTEwICF0dy1tYXgtdy0xMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkQXR0YWNobWVudCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtcG9wb3Zlci1jb250cm9sPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1wb3BvdmVyLWJvZHkgbWluV2lkdGg9XCIxMHJlbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHctZmxleCB0dy1mbGV4LWNvbCB0dy1iZy1kZWZhdWx0IHR3LXctZnVsbFwiIGJvZHlDbGljaz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHctcHgtNCB0dy1weS0yIHR3LWZsZXggdHctZ2FwLTIgdHctdy1mdWxsIGhvdmVyOnR3LWJnLWJhc2UvWy4xXSB0dy10cmFuc2l0aW9uLWFsbCB0dy1jdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWljb24gY2xhc3M9XCIhdHctdGV4dC1iYXNlICF0dy10ZXh0LTN4bFwiIGdseXBoPVwiY2FtZXJhXCI+PC9mZC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiIXR3LXRleHQtYmFzZVwiPtin2LHYs9in2YQg2LnaqdizPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cInR3LWhpZGRlblwiIHR5cGU9XCJmaWxlXCIgaWQ9XCJpbWdcIiBuYW1lPVwiaW1nXCIgYWNjZXB0PVwiaW1hZ2UvKlwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0dy1weC00IHR3LXB5LTIgdHctZmxleCB0dy1nYXAtMiB0dy13LWZ1bGwgaG92ZXI6dHctYmctYmFzZS9bLjFdIHR3LXRyYW5zaXRpb24tYWxsIHR3LWN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtaWNvbiBjbGFzcz1cIiF0dy10ZXh0LWJhc2UgIXR3LXRleHQtM3hsXCIgZ2x5cGg9XCJhZGQtZG9jdW1lbnRcIj48L2ZkLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCIhdHctdGV4dC1iYXNlXCI+2KfYsdiz2KfZhCDZgdin24zZhDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJ0dy1oaWRkZW5cIiB0eXBlPVwiZmlsZVwiIGlkPVwiZmlsZVwiIG5hbWU9XCJmaWxlXCIgYWNjZXB0PVwiZmlsZS8qXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtcG9wb3Zlci1ib2R5PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1wb3BvdmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR3LWlubGluZS1mbGV4IHR3LXJlbGF0aXZlIHR3LWdyb3cgdHctc2hyaW5rXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWZlZWQtaW5wdXQgW2F0dHIuYXJpYS1sYWJlbF09XCIn2YXYqtmGINm+24zYp9mFJ1wiIGNsYXNzPVwidHctZmxleC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1hdmF0YXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkRmVlZElucHV0QXZhdGFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ9ix2KfZh9io2LEnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbWFnZV09XCInJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2ZkLWF2YXRhcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNoYXQtdGV4dGFyZWFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtZm9ybS1jb250cm9sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZEZlZWRJbnB1dFRleHRhcmVhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cItmF2KrZhiDZvtuM2KfZhVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmRGZWVkSW5wdXRUZXh0YXJlYU1heFJvd3NdPVwiMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW5wdXQpPVwib25UZXh0Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC90ZXh0YXJlYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRGZWVkSW5wdXRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1NlbmQnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCInU2VuZCcgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbmRNZXNzYWdlKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1mZWVkLWlucHV0PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cInR3LWFic29sdXRlIHR3LXRvcC0xLzIgLXR3LXRyYW5zbGF0ZS15LTEvMiB0dy1sZWZ0LTEvMiAtdHctdHJhbnNsYXRlLXgtMS8yIHR3LWZsZXggdHctZmxleC1jb2wgdHctZ2FwLTggdHctaXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImFzc2V0cy9ub3Qtc2VsZWN0ZWQtY2hhdC5wbmdcIiBjbGFzcz1cInR3LXctNjQgdHctb3BhY2l0eS0yNVwiIC8+XG4gICAgICAgICAgICAgICAgPCEtLSAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHctdGV4dC14bCB0dy1mb250LWJvbGQgdHctdGV4dC1ncmF5LTQwMCBkYXJrOnR3LXRleHQtZ3JheS01MDBcIj4tLT5cbiAgICAgICAgICAgICAgICA8IS0tICAgICAgICAgICAgICAgINio2LHYp9uMINi02LHZiNi5INuM2qkg2obYqiDYsdinINin2YbYqtiu2KfYqCDaqdmG24zYry0tPlxuICAgICAgICAgICAgICAgIDwhLS0gICAgICAgICAgICA8L3NwYW4+LS0+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgQGlmICghc2ltcGxlKSB7XG4gICAgPGRpdiBjbGFzcz1cInR3LWJnLWJsYWNrL1suM10gMnhsOnR3LWdyb3cgdHctc2hyaW5rIHR3LWgtZnVsbFwiPjwvZGl2PlxuICAgIH1cbjwvZGl2PlxuIl19
|
|
@@ -31,7 +31,7 @@ export class BarsaChatMessageComponent {
|
|
|
31
31
|
return { ...image, displayWidth, displayHeight };
|
|
32
32
|
}
|
|
33
33
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaChatMessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: BarsaChatMessageComponent, selector: "bsu-barsa-chat-message", inputs: { message: "message", showSender: "showSender", nextIsSame: "nextIsSame", pervIsSame: "pervIsSame", badge: "badge", nextHasBadge: "nextHasBadge", badgeLabel: "badgeLabel" }, outputs: { reply: "reply" }, ngImport: i0, template: "<div\n class=\"tw-w-full tw-px-4 tw-flex tw-flex-wrap\"\n [ngClass]=\"{\n'tw-pt-1': pervIsSame,\n'tw-pt-3': !pervIsSame,\n}\"\n>\n @if (badge) {\n <div class=\"tw-w-full tw-pb-6 tw-pt-5\">\n <div class=\"tw-w-fit tw-bg-zinc-500 tw-text-white tw-px-4 tw-mx-auto tw-rounded-full tw-text-md\">\n {{ badgeLabel }}\n </div>\n </div>\n }\n <div\n class=\"tw-w-full tw-flex tw-gap-2 tw-items-end tw-relative\"\n [ngClass]=\"{\n'tw-justify-start': message.owner.id === userId,\n'tw-flex-row-reverse': message.owner.id !== userId,\n'tw-ms-14': (nextIsSame && !nextHasBadge) && message.owner.id === userId,\n'tw-me-14': (nextIsSame && !nextHasBadge) && message.owner.id !== userId,\n }\"\n >\n @if (!nextIsSame || nextHasBadge) {\n <fd-avatar\n size=\"s\"\n [label]=\"message.owner.avatar ? '' : message.owner?.name\"\n [circle]=\"true\"\n [image]=\"message.owner?.avatar\"\n [placeholder]=\"message.owner.avatar ? false : true\"\n ></fd-avatar>\n } @if (!nextIsSame || nextHasBadge) {\n <div\n class=\"tw-bg-transparent tw-overflow-hidden tw-size-3 tw-absolute tw-bottom-0 tw-border-[6px] tw-border-t-transparent\"\n [ngClass]=\"{\n 'tw-right-11 tw-border-b-bubble-mine tw-border-l-bubble-mine tw-border-r-transparent':\n message.owner.id === userId,\n 'tw-left-11 tw-border-b-default tw-border-r-default tw-border-l-transparent':\n message.owner.id !== userId\n }\"\n ></div>\n }\n <div\n @inPaneAnimation\n class=\"tw-max-w-[80%] tw-min-w-40 tw-rounded-2xl tw-text-base tw-relative tw-overflow-hidden\"\n [ngClass]=\"{\n '!tw-rounded-br-none':\n message.owner.id === userId && (nextHasBadge || (nextIsSame && !nextHasBadge) || !nextIsSame),\n '!tw-rounded-bl-none':\n message.owner.id !== userId && (nextHasBadge || (nextIsSame && !nextHasBadge) || !nextIsSame),\n '!tw-rounded-tr-none': message.owner.id === userId && pervIsSame && !badge,\n '!tw-rounded-tl-none': message.owner.id !== userId && pervIsSame && !badge\n }\"\n >\n @if (showSender && (!pervIsSame || badge)) {\n <div\n [ngClass]=\"{\n'tw-bg-bubble-mine': message.owner.id === userId && !message.image,\n'tw-bg-default': message.owner.id !== userId && !message.image,\n'tw-absolute tw-top-0 tw-right-0 tw-pb-8 tw-w-full tw-rounded-tr-2xl tw-bg-gradient-to-b tw-to-transparent': message.image,\n'tw-from-bubble-mine': message.owner.id === userId && message.image,\n'tw-from-default': message.owner.id !== userId && message.image,\n }\"\n class=\"tw-font-bold tw-text-base tw-px-3 tw-pt-2 tw-z-10\"\n >\n {{ message.owner.name }}\n </div>\n } @if (message.image) { @if (imageRatio(message.image); as image) {\n <div\n [ngClass]=\"{\n'tw-bg-bubble-mine/[.3]': message.owner.id === userId,\n'tw-bg-default/[.3]': message.owner.id !== userId,\n }\"\n class=\"tw-flex tw-justify-center tw-items-center tw-bg-zinc-500/[.3] tw-relative\"\n >\n <a\n [download]=\"message.image.name\"\n href=\"assets/bg-chat.jpg\"\n target=\"_blank\"\n class=\"tw-absolute tw-w-full tw-h-full tw-bg-black/[.4] dark:tw-bg-white/[.4] tw-opacity-0 hover:tw-opacity-100 tw-transition-all tw-cursor-pointer tw-flex tw-justify-center tw-items-center\"\n >\n <fd-icon class=\"!tw-text-default !tw-text-3xl\" glyph=\"download\"></fd-icon>\n </a>\n <img\n [ngStyle]=\"{\n width: image.displayWidth + 'px',\n height: image.displayHeight + 'px'\n }\"\n [src]=\"image.url\"\n />\n </div>\n } } @if (message.file?.name) {\n <div\n [ngClass]=\"{\n'tw-bg-bubble-mine': message.owner.id === userId,\n'tw-bg-default': message.owner.id !== userId,\n }\"\n class=\"tw-px-2 tw-pt-2 w-full tw-flex tw-gap-2\"\n >\n <a\n [download]=\"message.file?.FileName\"\n href=\"assets/bg-chat.jpg\"\n target=\"_blank\"\n class=\"tw-shrink-0 tw-row-0 tw-size-12 tw-rounded-lg tw-bg-orange-400 tw-flex tw-justify-center tw-items-center tw-cursor-pointer tw-transition-all hover:tw-bg-orange-600\"\n >\n <span class=\"tw-font-bold leading-6 tw-text-lg tw-text-white\">\n {{ message.file?.Type }}\n </span>\n </a>\n <div class=\"tw-flex tw-flex-col\">\n <span class=\"tw-font-bold tw-text-md tw-text-base tw-w-full tw-truncate\">\n {{ message.file?.FileName }}</span\n >\n <span class=\"tw-text-sm tw-text-gray-500 dark:tw-text-gray-400 tw-w-full tw-truncate\">\n {{ message.file?.Size }}</span\n >\n </div>\n </div>\n } @if (message.text) {\n <div\n [ngClass]=\"{\n'tw-bg-bubble-mine': message.owner.id === userId,\n'tw-bg-default': message.owner.id !== userId,\n }\"\n class=\"tw-whitespace-pre-line tw-px-3 tw-pt-1\"\n [innerHTML]=\"message.text\"\n ></div>\n }\n <div\n class=\"tw-flex tw-w-full tw-px-2 tw-pt-1 tw-pb-2 tw-items-center tw-gap-2 tw-justify-end\"\n [ngClass]=\"{\n'tw-bg-bubble-mine': message.owner.id === userId,\n'tw-bg-default tw-flex-row-reverse': message.owner.id !== userId,\n}\"\n >\n <span class=\"tw-text-xs tw-text-gray-500 dark:tw-text-gray-300\">{{\n message.createdAt | utilDateToHhMm\n }}</span>\n <fd-popover placement=\"bottom-end\" title=\"bottom-end\">\n <fd-popover-control>\n <button\n fd-button\n fdType=\"transparent\"\n [fdCompact]=\"true\"\n glyph=\"navigation-down-arrow\"\n ></button>\n </fd-popover-control>\n <fd-popover-body minWidth=\"10rem\">\n <div class=\"tw-flex tw-flex-col tw-bg-default tw-w-full\" bodyClick>\n <label\n class=\"tw-px-4 tw-py-2 tw-flex tw-gap-2 tw-w-full hover:tw-bg-base/[.1] tw-transition-all tw-cursor-pointer\"\n (click)=\"reply.emit(message)\"\n >\n <fd-icon class=\"!tw-text-base !tw-text-3xl\" glyph=\"undo\"></fd-icon>\n <span class=\"!tw-text-base\">\u067E\u0627\u0633\u062E \u062F\u0627\u062F\u0646</span>\n </label>\n <label\n class=\"tw-px-4 tw-py-2 tw-flex tw-gap-2 tw-w-full hover:tw-bg-base/[.1] tw-transition-all tw-cursor-pointer\"\n >\n <fd-icon class=\"!tw-text-base !tw-text-3xl\" glyph=\"forward\"></fd-icon>\n <span class=\"!tw-text-base\">\u0627\u0631\u0633\u0627\u0644 \u06A9\u0631\u062F\u0646</span>\n </label>\n <label\n class=\"tw-px-4 tw-py-2 tw-flex tw-gap-2 tw-w-full hover:tw-bg-base/[.1] tw-transition-all tw-cursor-pointer\"\n >\n <fd-icon class=\"!tw-text-base !tw-text-3xl\" glyph=\"delete\"></fd-icon>\n <span class=\"!tw-text-base\">\u062D\u0630\u0641</span>\n </label>\n </div>\n </fd-popover-body>\n </fd-popover>\n </div>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { 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: "directive", type: i4.ContentDensityDirective, selector: "[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]), [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]), [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]), [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])", inputs: ["fdContentDensity", "fdCompact", "fdCondensed", "fdCozy"], exportAs: ["fdContentDensity"] }, { kind: "component", type: i5.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i6.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "component", type: i7.PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: i7.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "component", type: i7.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "pipe", type: i8.UtilDateToHhMmPipe, name: "utilDateToHhMm" }], animations: [
|
|
34
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: BarsaChatMessageComponent, selector: "bsu-barsa-chat-message", inputs: { message: "message", showSender: "showSender", nextIsSame: "nextIsSame", pervIsSame: "pervIsSame", badge: "badge", nextHasBadge: "nextHasBadge", badgeLabel: "badgeLabel" }, outputs: { reply: "reply" }, ngImport: i0, template: "<div\n class=\"tw-w-full tw-px-4 tw-flex tw-flex-wrap\"\n [ngClass]=\"{\n'tw-pt-1': pervIsSame,\n'tw-pt-3': !pervIsSame,\n}\"\n>\n @if (badge) {\n <div class=\"tw-w-full tw-pb-6 tw-pt-5\">\n <div class=\"tw-w-fit tw-bg-zinc-500 tw-text-white tw-px-4 tw-mx-auto tw-rounded-full tw-text-md\">\n {{ badgeLabel }}\n </div>\n </div>\n }\n <div\n class=\"tw-w-full tw-flex tw-gap-2 tw-items-end tw-relative\"\n [ngClass]=\"{\n'tw-justify-start': message.owner.id === userId,\n'tw-flex-row-reverse': message.owner.id !== userId,\n'tw-ms-14': (nextIsSame && !nextHasBadge) && message.owner.id === userId,\n'tw-me-14': (nextIsSame && !nextHasBadge) && message.owner.id !== userId,\n }\"\n >\n @if (!nextIsSame || nextHasBadge) {\n <fd-avatar\n size=\"s\"\n [label]=\"message.owner.avatar ? '' : message.owner?.name\"\n [circle]=\"true\"\n [image]=\"message.owner?.avatar\"\n [placeholder]=\"message.owner.avatar ? false : true\"\n ></fd-avatar>\n } @if (!nextIsSame || nextHasBadge) {\n <div\n class=\"tw-bg-transparent tw-overflow-hidden tw-size-3 tw-absolute tw-bottom-0 tw-border-[6px] tw-border-t-transparent\"\n [ngClass]=\"{\n 'tw-right-11 tw-border-b-bubble-mine tw-border-l-bubble-mine tw-border-r-transparent':\n message.owner.id === userId,\n 'tw-left-11 tw-border-b-default tw-border-r-default tw-border-l-transparent':\n message.owner.id !== userId\n }\"\n ></div>\n }\n <div\n @inPaneAnimation\n class=\"tw-max-w-[80%] tw-min-w-40 tw-rounded-2xl tw-text-base tw-relative tw-overflow-hidden\"\n [ngClass]=\"{\n '!tw-rounded-br-none':\n message.owner.id === userId && (nextHasBadge || (nextIsSame && !nextHasBadge) || !nextIsSame),\n '!tw-rounded-bl-none':\n message.owner.id !== userId && (nextHasBadge || (nextIsSame && !nextHasBadge) || !nextIsSame),\n '!tw-rounded-tr-none': message.owner.id === userId && pervIsSame && !badge,\n '!tw-rounded-tl-none': message.owner.id !== userId && pervIsSame && !badge\n }\"\n >\n @if (showSender && (!pervIsSame || badge)) {\n <div\n [ngClass]=\"{\n'tw-bg-bubble-mine': message.owner.id === userId && !message.image,\n'tw-bg-default': message.owner.id !== userId && !message.image,\n'tw-absolute tw-top-0 tw-right-0 tw-pb-8 tw-w-full tw-rounded-tr-2xl tw-bg-gradient-to-b tw-to-transparent': message.image,\n'tw-from-bubble-mine': message.owner.id === userId && message.image,\n'tw-from-default': message.owner.id !== userId && message.image,\n }\"\n class=\"tw-font-bold tw-text-base tw-px-3 tw-pt-2 tw-z-10\"\n >\n {{ message.owner.name }}\n </div>\n } @if (message.image) { @if (imageRatio(message.image); as image) {\n <div\n [ngClass]=\"{\n'tw-bg-bubble-mine/[.3]': message.owner.id === userId,\n'tw-bg-default/[.3]': message.owner.id !== userId,\n }\"\n class=\"tw-flex tw-justify-center tw-items-center tw-bg-zinc-500/[.3] tw-relative\"\n >\n <a\n [download]=\"message.image.name\"\n href=\"assets/bg-chat.jpg\"\n target=\"_blank\"\n class=\"tw-absolute tw-w-full tw-h-full tw-bg-black/[.4] dark:tw-bg-white/[.4] tw-opacity-0 hover:tw-opacity-100 tw-transition-all tw-cursor-pointer tw-flex tw-justify-center tw-items-center\"\n >\n <fd-icon class=\"!tw-text-default !tw-text-3xl\" glyph=\"download\"></fd-icon>\n </a>\n <img\n [ngStyle]=\"{\n width: image.displayWidth + 'px',\n height: image.displayHeight + 'px'\n }\"\n [src]=\"image.url\"\n />\n </div>\n } } @if (message.file?.name) {\n <div\n [ngClass]=\"{\n'tw-bg-bubble-mine': message.owner.id === userId,\n'tw-bg-default': message.owner.id !== userId,\n }\"\n class=\"tw-px-2 tw-pt-2 w-full tw-flex tw-gap-2\"\n >\n <a\n [download]=\"message.file?.FileName\"\n href=\"assets/bg-chat.jpg\"\n target=\"_blank\"\n class=\"tw-shrink-0 tw-row-0 tw-size-12 tw-rounded-lg tw-bg-orange-400 tw-flex tw-justify-center tw-items-center tw-cursor-pointer tw-transition-all hover:tw-bg-orange-600\"\n >\n <span class=\"tw-font-bold leading-6 tw-text-lg tw-text-white\">\n {{ message.file?.Type }}\n </span>\n </a>\n <div class=\"tw-flex tw-flex-col\">\n <span class=\"tw-font-bold tw-text-md tw-text-base tw-w-full tw-truncate\">\n {{ message.file?.FileName }}</span\n >\n <span class=\"tw-text-sm tw-text-gray-500 dark:tw-text-gray-400 tw-w-full tw-truncate\">\n {{ message.file?.Size }}</span\n >\n </div>\n </div>\n } @if (message.text) {\n <div\n [ngClass]=\"{\n'tw-bg-bubble-mine': message.owner.id === userId,\n'tw-bg-default': message.owner.id !== userId,\n }\"\n class=\"tw-whitespace-pre-line tw-px-3 tw-pt-1\"\n [innerHTML]=\"message.text\"\n ></div>\n }\n <div\n class=\"tw-flex tw-w-full tw-px-2 tw-pt-1 tw-pb-2 tw-items-center tw-gap-2 tw-justify-end\"\n [ngClass]=\"{\n'tw-bg-bubble-mine': message.owner.id === userId,\n'tw-bg-default tw-flex-row-reverse': message.owner.id !== userId,\n}\"\n >\n <span class=\"tw-text-xs tw-text-gray-500 dark:tw-text-gray-300\">{{\n message.createdAt | utilDateToHhMm\n }}</span>\n <fd-popover placement=\"bottom-end\" title=\"bottom-end\">\n <fd-popover-control>\n <button\n fd-button\n fdType=\"transparent\"\n [fdCompact]=\"true\"\n glyph=\"navigation-down-arrow\"\n ></button>\n </fd-popover-control>\n <fd-popover-body minWidth=\"10rem\">\n <div class=\"tw-flex tw-flex-col tw-bg-default tw-w-full\" bodyClick>\n <label\n class=\"tw-px-4 tw-py-2 tw-flex tw-gap-2 tw-w-full hover:tw-bg-base/[.1] tw-transition-all tw-cursor-pointer\"\n (click)=\"reply.emit(message)\"\n >\n <fd-icon class=\"!tw-text-base !tw-text-3xl\" glyph=\"undo\"></fd-icon>\n <span class=\"!tw-text-base\">\u067E\u0627\u0633\u062E \u062F\u0627\u062F\u0646</span>\n </label>\n <label\n class=\"tw-px-4 tw-py-2 tw-flex tw-gap-2 tw-w-full hover:tw-bg-base/[.1] tw-transition-all tw-cursor-pointer\"\n >\n <fd-icon class=\"!tw-text-base !tw-text-3xl\" glyph=\"forward\"></fd-icon>\n <span class=\"!tw-text-base\">\u0627\u0631\u0633\u0627\u0644 \u06A9\u0631\u062F\u0646</span>\n </label>\n <label\n class=\"tw-px-4 tw-py-2 tw-flex tw-gap-2 tw-w-full hover:tw-bg-base/[.1] tw-transition-all tw-cursor-pointer\"\n >\n <fd-icon class=\"!tw-text-base !tw-text-3xl\" glyph=\"delete\"></fd-icon>\n <span class=\"!tw-text-base\">\u062D\u0630\u0641</span>\n </label>\n </div>\n </fd-popover-body>\n </fd-popover>\n </div>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { 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: "directive", type: i4.ContentDensityDirective, selector: "[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]), [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]), [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]), [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])", inputs: ["fdContentDensity", "fdCompact", "fdCondensed", "fdCozy"], exportAs: ["fdContentDensity"] }, { kind: "component", type: i5.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i6.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "component", type: i7.PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: i7.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "component", type: i7.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "pipe", type: i8.UtilDateToHhMmPipe, name: "utilDateToHhMm" }], animations: [
|
|
35
35
|
trigger('inPaneAnimation', [
|
|
36
36
|
transition(':enter', [
|
|
37
37
|
style({ opacity: 0, transform: 'scale(0, 0)' }),
|
|
@@ -75,4 +75,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
|
75
75
|
}], reply: [{
|
|
76
76
|
type: Output
|
|
77
77
|
}] } });
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtY2hhdC1tZXNzYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2JhcnNhLWNoYXQtbWVzc2FnZS9iYXJzYS1jaGF0LW1lc3NhZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtY2hhdC1tZXNzYWdlL2JhcnNhLWNoYXQtbWVzc2FnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7OztBQW9CMUUsTUFBTSxPQUFPLHlCQUF5QjtJQWpCdEM7UUF5QmMsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDMUMsV0FBTSxHQUFHLCtCQUErQixDQUFDO0tBaUI1QztJQWZHLFVBQVUsQ0FBQyxLQUFVO1FBQ2pCLE1BQU0sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBQ2hELElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQztRQUNyQixJQUFJLGFBQWEsR0FBRyxDQUFDLENBQUM7UUFDdEIsSUFBSSxhQUFhLEdBQUcsY0FBYyxFQUFFLENBQUM7WUFDakMsTUFBTSxLQUFLLEdBQUcsYUFBYSxHQUFHLEdBQUcsQ0FBQztZQUNsQyxZQUFZLEdBQUcsYUFBYSxHQUFHLEtBQUssQ0FBQztZQUNyQyxhQUFhLEdBQUcsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUMzQyxDQUFDO2FBQU0sQ0FBQztZQUNKLE1BQU0sS0FBSyxHQUFHLGNBQWMsR0FBRyxHQUFHLENBQUM7WUFDbkMsWUFBWSxHQUFHLGFBQWEsR0FBRyxLQUFLLENBQUM7WUFDckMsYUFBYSxHQUFHLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDM0MsQ0FBQztRQUNELE9BQU8sRUFBRSxHQUFHLEtBQUssRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLENBQUM7SUFDckQsQ0FBQzs4R0F6QlEseUJBQXlCO2tHQUF6Qix5QkFBeUIsaVJDckJ0QywrM1FBK0tBLDg4RER2S2dCO1lBQ1IsT0FBTyxDQUFDLGlCQUFpQixFQUFFO2dCQUN2QixVQUFVLENBQUMsUUFBUSxFQUFFO29CQUNqQixLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsQ0FBQztvQkFDL0MsT0FBTyxDQUFDLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLENBQUMsQ0FBQztpQkFDdEYsQ0FBQztnQkFDRixVQUFVLENBQUMsUUFBUSxFQUFFO29CQUNqQixLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxDQUFDO29CQUNyRCxPQUFPLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQztpQkFDaEYsQ0FBQzthQUNMLENBQUM7U0FDTDs7MkZBRVEseUJBQXlCO2tCQWpCckMsU0FBUzsrQkFDSSx3QkFBd0IsY0FHdEI7d0JBQ1IsT0FBTyxDQUFDLGlCQUFpQixFQUFFOzRCQUN2QixVQUFVLENBQUMsUUFBUSxFQUFFO2dDQUNqQixLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsQ0FBQztnQ0FDL0MsT0FBTyxDQUFDLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLENBQUMsQ0FBQzs2QkFDdEYsQ0FBQzs0QkFDRixVQUFVLENBQUMsUUFBUSxFQUFFO2dDQUNqQixLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxDQUFDO2dDQUNyRCxPQUFPLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQzs2QkFDaEYsQ0FBQzt5QkFDTCxDQUFDO3FCQUNMOzhCQUdRLE9BQU87c0JBQWYsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNJLEtBQUs7c0JBQWQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBhbmltYXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgTWVzc2FnZSB9IGZyb20gJy4uL2JhcnNhLWNoYXQvY2hhdC5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYnN1LWJhcnNhLWNoYXQtbWVzc2FnZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JhcnNhLWNoYXQtbWVzc2FnZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2JhcnNhLWNoYXQtbWVzc2FnZS5jb21wb25lbnQuY3NzJyxcbiAgICBhbmltYXRpb25zOiBbXG4gICAgICAgIHRyaWdnZXIoJ2luUGFuZUFuaW1hdGlvbicsIFtcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcbiAgICAgICAgICAgICAgICBzdHlsZSh7IG9wYWNpdHk6IDAsIHRyYW5zZm9ybTogJ3NjYWxlKDAsIDApJyB9KSxcbiAgICAgICAgICAgICAgICBhbmltYXRlKCczMDBtcyBlYXNlLWluLW91dCcsIHN0eWxlKHsgb3BhY2l0eTogMSwgdHJhbnNmb3JtOiAnc2NhbGUoMTAwJSwgMTAwJSknIH0pKVxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBbXG4gICAgICAgICAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAxLCB0cmFuc2Zvcm06ICdzY2FsZSgxMDAlLCAxMDAlKScgfSksXG4gICAgICAgICAgICAgICAgYW5pbWF0ZSgnMzAwbXMgZWFzZS1pbi1vdXQnLCBzdHlsZSh7IG9wYWNpdHk6IDAsIHRyYW5zZm9ybTogJ3NjYWxlKDAsIDApJyB9KSlcbiAgICAgICAgICAgIF0pXG4gICAgICAgIF0pXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBCYXJzYUNoYXRNZXNzYWdlQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBtZXNzYWdlOiBNZXNzYWdlO1xuICAgIEBJbnB1dCgpIHNob3dTZW5kZXI6IGJvb2xlYW47XG4gICAgQElucHV0KCkgbmV4dElzU2FtZTogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBwZXJ2SXNTYW1lOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGJhZGdlOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIG5leHRIYXNCYWRnZTogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBiYWRnZUxhYmVsOiBzdHJpbmc7XG4gICAgQE91dHB1dCgpIHJlcGx5ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgdXNlcklkID0gJ19Jb3VnS1NLbHhGeEFmdFNJN2E0OFN6ay1Ha00xJztcblxuICAgIGltYWdlUmF0aW8oaW1hZ2U6IGFueSk6IGFueSB7XG4gICAgICAgIGNvbnN0IHsgb3JpZ2luYWxXaWR0aCwgb3JpZ2luYWxIZWlnaHQgfSA9IGltYWdlO1xuICAgICAgICBsZXQgZGlzcGxheVdpZHRoID0gMDtcbiAgICAgICAgbGV0IGRpc3BsYXlIZWlnaHQgPSAwO1xuICAgICAgICBpZiAob3JpZ2luYWxXaWR0aCA+IG9yaWdpbmFsSGVpZ2h0KSB7XG4gICAgICAgICAgICBjb25zdCByYXRpbyA9IG9yaWdpbmFsV2lkdGggLyAzMjA7XG4gICAgICAgICAgICBkaXNwbGF5V2lkdGggPSBvcmlnaW5hbFdpZHRoIC8gcmF0aW87XG4gICAgICAgICAgICBkaXNwbGF5SGVpZ2h0ID0gb3JpZ2luYWxIZWlnaHQgLyByYXRpbztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHJhdGlvID0gb3JpZ2luYWxIZWlnaHQgLyAzMjA7XG4gICAgICAgICAgICBkaXNwbGF5V2lkdGggPSBvcmlnaW5hbFdpZHRoIC8gcmF0aW87XG4gICAgICAgICAgICBkaXNwbGF5SGVpZ2h0ID0gb3JpZ2luYWxIZWlnaHQgLyByYXRpbztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyAuLi5pbWFnZSwgZGlzcGxheVdpZHRoLCBkaXNwbGF5SGVpZ2h0IH07XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIGNsYXNzPVwidHctdy1mdWxsIHR3LXB4LTQgdHctZmxleCB0dy1mbGV4LXdyYXBcIlxuICAgIFtuZ0NsYXNzXT1cIntcbid0dy1wdC0xJzogcGVydklzU2FtZSxcbid0dy1wdC0zJzogIXBlcnZJc1NhbWUsXG59XCJcbj5cbiAgICBAaWYgKGJhZGdlKSB7XG4gICAgPGRpdiBjbGFzcz1cInR3LXctZnVsbCB0dy1wYi02IHR3LXB0LTVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInR3LXctZml0IHR3LWJnLXppbmMtNTAwIHR3LXRleHQtd2hpdGUgdHctcHgtNCB0dy1teC1hdXRvIHR3LXJvdW5kZWQtZnVsbCB0dy10ZXh0LW1kXCI+XG4gICAgICAgICAgICB7eyBiYWRnZUxhYmVsIH19XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIH1cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidHctdy1mdWxsIHR3LWZsZXggdHctZ2FwLTIgdHctaXRlbXMtZW5kIHR3LXJlbGF0aXZlXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuJ3R3LWp1c3RpZnktc3RhcnQnOiBtZXNzYWdlLm93bmVyLmlkID09PSB1c2VySWQsXG4ndHctZmxleC1yb3ctcmV2ZXJzZSc6IG1lc3NhZ2Uub3duZXIuaWQgIT09IHVzZXJJZCxcbid0dy1tcy0xNCc6IChuZXh0SXNTYW1lICYmICFuZXh0SGFzQmFkZ2UpICYmIG1lc3NhZ2Uub3duZXIuaWQgPT09IHVzZXJJZCxcbid0dy1tZS0xNCc6IChuZXh0SXNTYW1lICYmICFuZXh0SGFzQmFkZ2UpICYmIG1lc3NhZ2Uub3duZXIuaWQgIT09IHVzZXJJZCxcbiAgICB9XCJcbiAgICA+XG4gICAgICAgIEBpZiAoIW5leHRJc1NhbWUgfHwgbmV4dEhhc0JhZGdlKSB7XG4gICAgICAgIDxmZC1hdmF0YXJcbiAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCJtZXNzYWdlLm93bmVyLmF2YXRhciA/ICcnIDogbWVzc2FnZS5vd25lcj8ubmFtZVwiXG4gICAgICAgICAgICBbY2lyY2xlXT1cInRydWVcIlxuICAgICAgICAgICAgW2ltYWdlXT1cIm1lc3NhZ2Uub3duZXI/LmF2YXRhclwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwibWVzc2FnZS5vd25lci5hdmF0YXIgPyBmYWxzZSA6IHRydWVcIlxuICAgICAgICA+PC9mZC1hdmF0YXI+XG4gICAgICAgIH0gQGlmICghbmV4dElzU2FtZSB8fCBuZXh0SGFzQmFkZ2UpIHtcbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJ0dy1iZy10cmFuc3BhcmVudCB0dy1vdmVyZmxvdy1oaWRkZW4gdHctc2l6ZS0zIHR3LWFic29sdXRlIHR3LWJvdHRvbS0wIHR3LWJvcmRlci1bNnB4XSB0dy1ib3JkZXItdC10cmFuc3BhcmVudFwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgJ3R3LXJpZ2h0LTExIHR3LWJvcmRlci1iLWJ1YmJsZS1taW5lIHR3LWJvcmRlci1sLWJ1YmJsZS1taW5lIHR3LWJvcmRlci1yLXRyYW5zcGFyZW50JzpcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZS5vd25lci5pZCA9PT0gdXNlcklkLFxuICAgICAgICAgICAgICAgICd0dy1sZWZ0LTExIHR3LWJvcmRlci1iLWRlZmF1bHQgdHctYm9yZGVyLXItZGVmYXVsdCB0dy1ib3JkZXItbC10cmFuc3BhcmVudCc6XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2Uub3duZXIuaWQgIT09IHVzZXJJZFxuICAgICAgICAgICAgfVwiXG4gICAgICAgID48L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBAaW5QYW5lQW5pbWF0aW9uXG4gICAgICAgICAgICBjbGFzcz1cInR3LW1heC13LVs4MCVdIHR3LW1pbi13LTQwIHR3LXJvdW5kZWQtMnhsIHR3LXRleHQtYmFzZSB0dy1yZWxhdGl2ZSB0dy1vdmVyZmxvdy1oaWRkZW5cIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICchdHctcm91bmRlZC1ici1ub25lJzpcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZS5vd25lci5pZCA9PT0gdXNlcklkICYmIChuZXh0SGFzQmFkZ2UgfHwgKG5leHRJc1NhbWUgJiYgIW5leHRIYXNCYWRnZSkgfHwgIW5leHRJc1NhbWUpLFxuICAgICAgICAgICAgICAgICchdHctcm91bmRlZC1ibC1ub25lJzpcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZS5vd25lci5pZCAhPT0gdXNlcklkICYmIChuZXh0SGFzQmFkZ2UgfHwgKG5leHRJc1NhbWUgJiYgIW5leHRIYXNCYWRnZSkgfHwgIW5leHRJc1NhbWUpLFxuICAgICAgICAgICAgICAgICchdHctcm91bmRlZC10ci1ub25lJzogbWVzc2FnZS5vd25lci5pZCA9PT0gdXNlcklkICYmIHBlcnZJc1NhbWUgJiYgIWJhZGdlLFxuICAgICAgICAgICAgICAgICchdHctcm91bmRlZC10bC1ub25lJzogbWVzc2FnZS5vd25lci5pZCAhPT0gdXNlcklkICYmIHBlcnZJc1NhbWUgJiYgIWJhZGdlXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgQGlmIChzaG93U2VuZGVyICYmICghcGVydklzU2FtZSB8fCBiYWRnZSkpIHtcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4ndHctYmctYnViYmxlLW1pbmUnOiBtZXNzYWdlLm93bmVyLmlkID09PSB1c2VySWQgJiYgIW1lc3NhZ2UuaW1hZ2UsXG4ndHctYmctZGVmYXVsdCc6IG1lc3NhZ2Uub3duZXIuaWQgIT09IHVzZXJJZCAmJiAhbWVzc2FnZS5pbWFnZSxcbid0dy1hYnNvbHV0ZSB0dy10b3AtMCB0dy1yaWdodC0wIHR3LXBiLTggdHctdy1mdWxsIHR3LXJvdW5kZWQtdHItMnhsIHR3LWJnLWdyYWRpZW50LXRvLWIgdHctdG8tdHJhbnNwYXJlbnQnOiBtZXNzYWdlLmltYWdlLFxuJ3R3LWZyb20tYnViYmxlLW1pbmUnOiBtZXNzYWdlLm93bmVyLmlkID09PSB1c2VySWQgJiYgbWVzc2FnZS5pbWFnZSxcbid0dy1mcm9tLWRlZmF1bHQnOiBtZXNzYWdlLm93bmVyLmlkICE9PSB1c2VySWQgJiYgbWVzc2FnZS5pbWFnZSxcbiAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0dy1mb250LWJvbGQgdHctdGV4dC1iYXNlIHR3LXB4LTMgdHctcHQtMiB0dy16LTEwXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBtZXNzYWdlLm93bmVyLm5hbWUgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfSBAaWYgKG1lc3NhZ2UuaW1hZ2UpIHsgQGlmIChpbWFnZVJhdGlvKG1lc3NhZ2UuaW1hZ2UpOyBhcyBpbWFnZSkge1xuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbid0dy1iZy1idWJibGUtbWluZS9bLjNdJzogbWVzc2FnZS5vd25lci5pZCA9PT0gdXNlcklkLFxuJ3R3LWJnLWRlZmF1bHQvWy4zXSc6IG1lc3NhZ2Uub3duZXIuaWQgIT09IHVzZXJJZCxcbiAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0dy1mbGV4IHR3LWp1c3RpZnktY2VudGVyIHR3LWl0ZW1zLWNlbnRlciB0dy1iZy16aW5jLTUwMC9bLjNdIHR3LXJlbGF0aXZlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICBbZG93bmxvYWRdPVwibWVzc2FnZS5pbWFnZS5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgaHJlZj1cImFzc2V0cy9iZy1jaGF0LmpwZ1wiXG4gICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHctYWJzb2x1dGUgdHctdy1mdWxsIHR3LWgtZnVsbCB0dy1iZy1ibGFjay9bLjRdIGRhcms6dHctYmctd2hpdGUvWy40XSB0dy1vcGFjaXR5LTAgaG92ZXI6dHctb3BhY2l0eS0xMDAgdHctdHJhbnNpdGlvbi1hbGwgdHctY3Vyc29yLXBvaW50ZXIgdHctZmxleCB0dy1qdXN0aWZ5LWNlbnRlciB0dy1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGZkLWljb24gY2xhc3M9XCIhdHctdGV4dC1kZWZhdWx0ICF0dy10ZXh0LTN4bFwiIGdseXBoPVwiZG93bmxvYWRcIj48L2ZkLWljb24+XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGltYWdlLmRpc3BsYXlXaWR0aCArICdweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGltYWdlLmRpc3BsYXlIZWlnaHQgKyAncHgnXG4gICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImltYWdlLnVybFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfSB9IEBpZiAobWVzc2FnZS5maWxlPy5uYW1lKSB7XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuJ3R3LWJnLWJ1YmJsZS1taW5lJzogbWVzc2FnZS5vd25lci5pZCA9PT0gdXNlcklkLFxuJ3R3LWJnLWRlZmF1bHQnOiBtZXNzYWdlLm93bmVyLmlkICE9PSB1c2VySWQsXG4gICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidHctcHgtMiB0dy1wdC0yIHctZnVsbCB0dy1mbGV4IHR3LWdhcC0yXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICBbZG93bmxvYWRdPVwibWVzc2FnZS5maWxlPy5GaWxlTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIGhyZWY9XCJhc3NldHMvYmctY2hhdC5qcGdcIlxuICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInR3LXNocmluay0wIHR3LXJvdy0wIHR3LXNpemUtMTIgdHctcm91bmRlZC1sZyB0dy1iZy1vcmFuZ2UtNDAwIHR3LWZsZXggdHctanVzdGlmeS1jZW50ZXIgdHctaXRlbXMtY2VudGVyIHR3LWN1cnNvci1wb2ludGVyIHR3LXRyYW5zaXRpb24tYWxsIGhvdmVyOnR3LWJnLW9yYW5nZS02MDBcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0dy1mb250LWJvbGQgbGVhZGluZy02IHR3LXRleHQtbGcgdHctdGV4dC13aGl0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgbWVzc2FnZS5maWxlPy5UeXBlIH19XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR3LWZsZXggdHctZmxleC1jb2xcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0dy1mb250LWJvbGQgdHctdGV4dC1tZCB0dy10ZXh0LWJhc2UgdHctdy1mdWxsIHR3LXRydW5jYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBtZXNzYWdlLmZpbGU/LkZpbGVOYW1lIH19PC9zcGFuXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0dy10ZXh0LXNtIHR3LXRleHQtZ3JheS01MDAgZGFyazp0dy10ZXh0LWdyYXktNDAwIHR3LXctZnVsbCB0dy10cnVuY2F0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgbWVzc2FnZS5maWxlPy5TaXplIH19PC9zcGFuXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfSBAaWYgKG1lc3NhZ2UudGV4dCkge1xuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbid0dy1iZy1idWJibGUtbWluZSc6IG1lc3NhZ2Uub3duZXIuaWQgPT09IHVzZXJJZCxcbid0dy1iZy1kZWZhdWx0JzogbWVzc2FnZS5vd25lci5pZCAhPT0gdXNlcklkLFxuICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInR3LXdoaXRlc3BhY2UtcHJlLWxpbmUgdHctcHgtMyB0dy1wdC0xXCJcbiAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIm1lc3NhZ2UudGV4dFwiXG4gICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0dy1mbGV4IHR3LXctZnVsbCB0dy1weC0yIHR3LXB0LTEgdHctcGItMiB0dy1pdGVtcy1jZW50ZXIgdHctZ2FwLTIgdHctanVzdGlmeS1lbmRcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbid0dy1iZy1idWJibGUtbWluZSc6IG1lc3NhZ2Uub3duZXIuaWQgPT09IHVzZXJJZCxcbid0dy1iZy1kZWZhdWx0IHR3LWZsZXgtcm93LXJldmVyc2UnOiBtZXNzYWdlLm93bmVyLmlkICE9PSB1c2VySWQsXG59XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInR3LXRleHQteHMgdHctdGV4dC1ncmF5LTUwMCBkYXJrOnR3LXRleHQtZ3JheS0zMDBcIj57e1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlLmNyZWF0ZWRBdCB8IHV0aWxEYXRlVG9IaE1tXG4gICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPGZkLXBvcG92ZXIgcGxhY2VtZW50PVwiYm90dG9tLWVuZFwiIHRpdGxlPVwiYm90dG9tLWVuZFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZmQtcG9wb3Zlci1jb250cm9sPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmRDb21wYWN0XT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdseXBoPVwibmF2aWdhdGlvbi1kb3duLWFycm93XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9mZC1wb3BvdmVyLWNvbnRyb2w+XG4gICAgICAgICAgICAgICAgICAgIDxmZC1wb3BvdmVyLWJvZHkgbWluV2lkdGg9XCIxMHJlbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR3LWZsZXggdHctZmxleC1jb2wgdHctYmctZGVmYXVsdCB0dy13LWZ1bGxcIiBib2R5Q2xpY2s+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHctcHgtNCB0dy1weS0yIHR3LWZsZXggdHctZ2FwLTIgdHctdy1mdWxsIGhvdmVyOnR3LWJnLWJhc2UvWy4xXSB0dy10cmFuc2l0aW9uLWFsbCB0dy1jdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZXBseS5lbWl0KG1lc3NhZ2UpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1pY29uIGNsYXNzPVwiIXR3LXRleHQtYmFzZSAhdHctdGV4dC0zeGxcIiBnbHlwaD1cInVuZG9cIj48L2ZkLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiIXR3LXRleHQtYmFzZVwiPtm+2KfYs9iuINiv2KfYr9mGPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHctcHgtNCB0dy1weS0yIHR3LWZsZXggdHctZ2FwLTIgdHctdy1mdWxsIGhvdmVyOnR3LWJnLWJhc2UvWy4xXSB0dy10cmFuc2l0aW9uLWFsbCB0dy1jdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtaWNvbiBjbGFzcz1cIiF0dy10ZXh0LWJhc2UgIXR3LXRleHQtM3hsXCIgZ2x5cGg9XCJmb3J3YXJkXCI+PC9mZC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIiF0dy10ZXh0LWJhc2VcIj7Yp9ix2LPYp9mEINqp2LHYr9mGPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHctcHgtNCB0dy1weS0yIHR3LWZsZXggdHctZ2FwLTIgdHctdy1mdWxsIGhvdmVyOnR3LWJnLWJhc2UvWy4xXSB0dy10cmFuc2l0aW9uLWFsbCB0dy1jdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtaWNvbiBjbGFzcz1cIiF0dy10ZXh0LWJhc2UgIXR3LXRleHQtM3hsXCIgZ2x5cGg9XCJkZWxldGVcIj48L2ZkLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiIXR3LXRleHQtYmFzZVwiPtit2LDZgTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZmQtcG9wb3Zlci1ib2R5PlxuICAgICAgICAgICAgICAgIDwvZmQtcG9wb3Zlcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtY2hhdC1tZXNzYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2JhcnNhLWNoYXQtbWVzc2FnZS9iYXJzYS1jaGF0LW1lc3NhZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtY2hhdC1tZXNzYWdlL2JhcnNhLWNoYXQtbWVzc2FnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7OztBQW9CMUUsTUFBTSxPQUFPLHlCQUF5QjtJQWpCdEM7UUF5QmMsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDMUMsV0FBTSxHQUFHLCtCQUErQixDQUFDO0tBaUI1QztJQWZHLFVBQVUsQ0FBQyxLQUFVO1FBQ2pCLE1BQU0sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBQ2hELElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQztRQUNyQixJQUFJLGFBQWEsR0FBRyxDQUFDLENBQUM7UUFDdEIsSUFBSSxhQUFhLEdBQUcsY0FBYyxFQUFFLENBQUM7WUFDakMsTUFBTSxLQUFLLEdBQUcsYUFBYSxHQUFHLEdBQUcsQ0FBQztZQUNsQyxZQUFZLEdBQUcsYUFBYSxHQUFHLEtBQUssQ0FBQztZQUNyQyxhQUFhLEdBQUcsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUMzQyxDQUFDO2FBQU0sQ0FBQztZQUNKLE1BQU0sS0FBSyxHQUFHLGNBQWMsR0FBRyxHQUFHLENBQUM7WUFDbkMsWUFBWSxHQUFHLGFBQWEsR0FBRyxLQUFLLENBQUM7WUFDckMsYUFBYSxHQUFHLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDM0MsQ0FBQztRQUNELE9BQU8sRUFBRSxHQUFHLEtBQUssRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLENBQUM7SUFDckQsQ0FBQzs4R0F6QlEseUJBQXlCO2tHQUF6Qix5QkFBeUIsaVJDckJ0QywrM1FBK0tBLCs5RER2S2dCO1lBQ1IsT0FBTyxDQUFDLGlCQUFpQixFQUFFO2dCQUN2QixVQUFVLENBQUMsUUFBUSxFQUFFO29CQUNqQixLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsQ0FBQztvQkFDL0MsT0FBTyxDQUFDLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLENBQUMsQ0FBQztpQkFDdEYsQ0FBQztnQkFDRixVQUFVLENBQUMsUUFBUSxFQUFFO29CQUNqQixLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxDQUFDO29CQUNyRCxPQUFPLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQztpQkFDaEYsQ0FBQzthQUNMLENBQUM7U0FDTDs7MkZBRVEseUJBQXlCO2tCQWpCckMsU0FBUzsrQkFDSSx3QkFBd0IsY0FHdEI7d0JBQ1IsT0FBTyxDQUFDLGlCQUFpQixFQUFFOzRCQUN2QixVQUFVLENBQUMsUUFBUSxFQUFFO2dDQUNqQixLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsQ0FBQztnQ0FDL0MsT0FBTyxDQUFDLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLENBQUMsQ0FBQzs2QkFDdEYsQ0FBQzs0QkFDRixVQUFVLENBQUMsUUFBUSxFQUFFO2dDQUNqQixLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxDQUFDO2dDQUNyRCxPQUFPLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQzs2QkFDaEYsQ0FBQzt5QkFDTCxDQUFDO3FCQUNMOzhCQUdRLE9BQU87c0JBQWYsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNJLEtBQUs7c0JBQWQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBhbmltYXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgTWVzc2FnZSB9IGZyb20gJy4uL2JhcnNhLWNoYXQvY2hhdC5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYnN1LWJhcnNhLWNoYXQtbWVzc2FnZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JhcnNhLWNoYXQtbWVzc2FnZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2JhcnNhLWNoYXQtbWVzc2FnZS5jb21wb25lbnQuY3NzJyxcbiAgICBhbmltYXRpb25zOiBbXG4gICAgICAgIHRyaWdnZXIoJ2luUGFuZUFuaW1hdGlvbicsIFtcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcbiAgICAgICAgICAgICAgICBzdHlsZSh7IG9wYWNpdHk6IDAsIHRyYW5zZm9ybTogJ3NjYWxlKDAsIDApJyB9KSxcbiAgICAgICAgICAgICAgICBhbmltYXRlKCczMDBtcyBlYXNlLWluLW91dCcsIHN0eWxlKHsgb3BhY2l0eTogMSwgdHJhbnNmb3JtOiAnc2NhbGUoMTAwJSwgMTAwJSknIH0pKVxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBbXG4gICAgICAgICAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAxLCB0cmFuc2Zvcm06ICdzY2FsZSgxMDAlLCAxMDAlKScgfSksXG4gICAgICAgICAgICAgICAgYW5pbWF0ZSgnMzAwbXMgZWFzZS1pbi1vdXQnLCBzdHlsZSh7IG9wYWNpdHk6IDAsIHRyYW5zZm9ybTogJ3NjYWxlKDAsIDApJyB9KSlcbiAgICAgICAgICAgIF0pXG4gICAgICAgIF0pXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBCYXJzYUNoYXRNZXNzYWdlQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBtZXNzYWdlOiBNZXNzYWdlO1xuICAgIEBJbnB1dCgpIHNob3dTZW5kZXI6IGJvb2xlYW47XG4gICAgQElucHV0KCkgbmV4dElzU2FtZTogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBwZXJ2SXNTYW1lOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGJhZGdlOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIG5leHRIYXNCYWRnZTogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBiYWRnZUxhYmVsOiBzdHJpbmc7XG4gICAgQE91dHB1dCgpIHJlcGx5ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgdXNlcklkID0gJ19Jb3VnS1NLbHhGeEFmdFNJN2E0OFN6ay1Ha00xJztcblxuICAgIGltYWdlUmF0aW8oaW1hZ2U6IGFueSk6IGFueSB7XG4gICAgICAgIGNvbnN0IHsgb3JpZ2luYWxXaWR0aCwgb3JpZ2luYWxIZWlnaHQgfSA9IGltYWdlO1xuICAgICAgICBsZXQgZGlzcGxheVdpZHRoID0gMDtcbiAgICAgICAgbGV0IGRpc3BsYXlIZWlnaHQgPSAwO1xuICAgICAgICBpZiAob3JpZ2luYWxXaWR0aCA+IG9yaWdpbmFsSGVpZ2h0KSB7XG4gICAgICAgICAgICBjb25zdCByYXRpbyA9IG9yaWdpbmFsV2lkdGggLyAzMjA7XG4gICAgICAgICAgICBkaXNwbGF5V2lkdGggPSBvcmlnaW5hbFdpZHRoIC8gcmF0aW87XG4gICAgICAgICAgICBkaXNwbGF5SGVpZ2h0ID0gb3JpZ2luYWxIZWlnaHQgLyByYXRpbztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHJhdGlvID0gb3JpZ2luYWxIZWlnaHQgLyAzMjA7XG4gICAgICAgICAgICBkaXNwbGF5V2lkdGggPSBvcmlnaW5hbFdpZHRoIC8gcmF0aW87XG4gICAgICAgICAgICBkaXNwbGF5SGVpZ2h0ID0gb3JpZ2luYWxIZWlnaHQgLyByYXRpbztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyAuLi5pbWFnZSwgZGlzcGxheVdpZHRoLCBkaXNwbGF5SGVpZ2h0IH07XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIGNsYXNzPVwidHctdy1mdWxsIHR3LXB4LTQgdHctZmxleCB0dy1mbGV4LXdyYXBcIlxuICAgIFtuZ0NsYXNzXT1cIntcbid0dy1wdC0xJzogcGVydklzU2FtZSxcbid0dy1wdC0zJzogIXBlcnZJc1NhbWUsXG59XCJcbj5cbiAgICBAaWYgKGJhZGdlKSB7XG4gICAgPGRpdiBjbGFzcz1cInR3LXctZnVsbCB0dy1wYi02IHR3LXB0LTVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInR3LXctZml0IHR3LWJnLXppbmMtNTAwIHR3LXRleHQtd2hpdGUgdHctcHgtNCB0dy1teC1hdXRvIHR3LXJvdW5kZWQtZnVsbCB0dy10ZXh0LW1kXCI+XG4gICAgICAgICAgICB7eyBiYWRnZUxhYmVsIH19XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIH1cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidHctdy1mdWxsIHR3LWZsZXggdHctZ2FwLTIgdHctaXRlbXMtZW5kIHR3LXJlbGF0aXZlXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuJ3R3LWp1c3RpZnktc3RhcnQnOiBtZXNzYWdlLm93bmVyLmlkID09PSB1c2VySWQsXG4ndHctZmxleC1yb3ctcmV2ZXJzZSc6IG1lc3NhZ2Uub3duZXIuaWQgIT09IHVzZXJJZCxcbid0dy1tcy0xNCc6IChuZXh0SXNTYW1lICYmICFuZXh0SGFzQmFkZ2UpICYmIG1lc3NhZ2Uub3duZXIuaWQgPT09IHVzZXJJZCxcbid0dy1tZS0xNCc6IChuZXh0SXNTYW1lICYmICFuZXh0SGFzQmFkZ2UpICYmIG1lc3NhZ2Uub3duZXIuaWQgIT09IHVzZXJJZCxcbiAgICB9XCJcbiAgICA+XG4gICAgICAgIEBpZiAoIW5leHRJc1NhbWUgfHwgbmV4dEhhc0JhZGdlKSB7XG4gICAgICAgIDxmZC1hdmF0YXJcbiAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCJtZXNzYWdlLm93bmVyLmF2YXRhciA/ICcnIDogbWVzc2FnZS5vd25lcj8ubmFtZVwiXG4gICAgICAgICAgICBbY2lyY2xlXT1cInRydWVcIlxuICAgICAgICAgICAgW2ltYWdlXT1cIm1lc3NhZ2Uub3duZXI/LmF2YXRhclwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwibWVzc2FnZS5vd25lci5hdmF0YXIgPyBmYWxzZSA6IHRydWVcIlxuICAgICAgICA+PC9mZC1hdmF0YXI+XG4gICAgICAgIH0gQGlmICghbmV4dElzU2FtZSB8fCBuZXh0SGFzQmFkZ2UpIHtcbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJ0dy1iZy10cmFuc3BhcmVudCB0dy1vdmVyZmxvdy1oaWRkZW4gdHctc2l6ZS0zIHR3LWFic29sdXRlIHR3LWJvdHRvbS0wIHR3LWJvcmRlci1bNnB4XSB0dy1ib3JkZXItdC10cmFuc3BhcmVudFwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgJ3R3LXJpZ2h0LTExIHR3LWJvcmRlci1iLWJ1YmJsZS1taW5lIHR3LWJvcmRlci1sLWJ1YmJsZS1taW5lIHR3LWJvcmRlci1yLXRyYW5zcGFyZW50JzpcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZS5vd25lci5pZCA9PT0gdXNlcklkLFxuICAgICAgICAgICAgICAgICd0dy1sZWZ0LTExIHR3LWJvcmRlci1iLWRlZmF1bHQgdHctYm9yZGVyLXItZGVmYXVsdCB0dy1ib3JkZXItbC10cmFuc3BhcmVudCc6XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2Uub3duZXIuaWQgIT09IHVzZXJJZFxuICAgICAgICAgICAgfVwiXG4gICAgICAgID48L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBAaW5QYW5lQW5pbWF0aW9uXG4gICAgICAgICAgICBjbGFzcz1cInR3LW1heC13LVs4MCVdIHR3LW1pbi13LTQwIHR3LXJvdW5kZWQtMnhsIHR3LXRleHQtYmFzZSB0dy1yZWxhdGl2ZSB0dy1vdmVyZmxvdy1oaWRkZW5cIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICchdHctcm91bmRlZC1ici1ub25lJzpcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZS5vd25lci5pZCA9PT0gdXNlcklkICYmIChuZXh0SGFzQmFkZ2UgfHwgKG5leHRJc1NhbWUgJiYgIW5leHRIYXNCYWRnZSkgfHwgIW5leHRJc1NhbWUpLFxuICAgICAgICAgICAgICAgICchdHctcm91bmRlZC1ibC1ub25lJzpcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZS5vd25lci5pZCAhPT0gdXNlcklkICYmIChuZXh0SGFzQmFkZ2UgfHwgKG5leHRJc1NhbWUgJiYgIW5leHRIYXNCYWRnZSkgfHwgIW5leHRJc1NhbWUpLFxuICAgICAgICAgICAgICAgICchdHctcm91bmRlZC10ci1ub25lJzogbWVzc2FnZS5vd25lci5pZCA9PT0gdXNlcklkICYmIHBlcnZJc1NhbWUgJiYgIWJhZGdlLFxuICAgICAgICAgICAgICAgICchdHctcm91bmRlZC10bC1ub25lJzogbWVzc2FnZS5vd25lci5pZCAhPT0gdXNlcklkICYmIHBlcnZJc1NhbWUgJiYgIWJhZGdlXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgQGlmIChzaG93U2VuZGVyICYmICghcGVydklzU2FtZSB8fCBiYWRnZSkpIHtcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4ndHctYmctYnViYmxlLW1pbmUnOiBtZXNzYWdlLm93bmVyLmlkID09PSB1c2VySWQgJiYgIW1lc3NhZ2UuaW1hZ2UsXG4ndHctYmctZGVmYXVsdCc6IG1lc3NhZ2Uub3duZXIuaWQgIT09IHVzZXJJZCAmJiAhbWVzc2FnZS5pbWFnZSxcbid0dy1hYnNvbHV0ZSB0dy10b3AtMCB0dy1yaWdodC0wIHR3LXBiLTggdHctdy1mdWxsIHR3LXJvdW5kZWQtdHItMnhsIHR3LWJnLWdyYWRpZW50LXRvLWIgdHctdG8tdHJhbnNwYXJlbnQnOiBtZXNzYWdlLmltYWdlLFxuJ3R3LWZyb20tYnViYmxlLW1pbmUnOiBtZXNzYWdlLm93bmVyLmlkID09PSB1c2VySWQgJiYgbWVzc2FnZS5pbWFnZSxcbid0dy1mcm9tLWRlZmF1bHQnOiBtZXNzYWdlLm93bmVyLmlkICE9PSB1c2VySWQgJiYgbWVzc2FnZS5pbWFnZSxcbiAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0dy1mb250LWJvbGQgdHctdGV4dC1iYXNlIHR3LXB4LTMgdHctcHQtMiB0dy16LTEwXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBtZXNzYWdlLm93bmVyLm5hbWUgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfSBAaWYgKG1lc3NhZ2UuaW1hZ2UpIHsgQGlmIChpbWFnZVJhdGlvKG1lc3NhZ2UuaW1hZ2UpOyBhcyBpbWFnZSkge1xuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbid0dy1iZy1idWJibGUtbWluZS9bLjNdJzogbWVzc2FnZS5vd25lci5pZCA9PT0gdXNlcklkLFxuJ3R3LWJnLWRlZmF1bHQvWy4zXSc6IG1lc3NhZ2Uub3duZXIuaWQgIT09IHVzZXJJZCxcbiAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0dy1mbGV4IHR3LWp1c3RpZnktY2VudGVyIHR3LWl0ZW1zLWNlbnRlciB0dy1iZy16aW5jLTUwMC9bLjNdIHR3LXJlbGF0aXZlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICBbZG93bmxvYWRdPVwibWVzc2FnZS5pbWFnZS5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgaHJlZj1cImFzc2V0cy9iZy1jaGF0LmpwZ1wiXG4gICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHctYWJzb2x1dGUgdHctdy1mdWxsIHR3LWgtZnVsbCB0dy1iZy1ibGFjay9bLjRdIGRhcms6dHctYmctd2hpdGUvWy40XSB0dy1vcGFjaXR5LTAgaG92ZXI6dHctb3BhY2l0eS0xMDAgdHctdHJhbnNpdGlvbi1hbGwgdHctY3Vyc29yLXBvaW50ZXIgdHctZmxleCB0dy1qdXN0aWZ5LWNlbnRlciB0dy1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGZkLWljb24gY2xhc3M9XCIhdHctdGV4dC1kZWZhdWx0ICF0dy10ZXh0LTN4bFwiIGdseXBoPVwiZG93bmxvYWRcIj48L2ZkLWljb24+XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGltYWdlLmRpc3BsYXlXaWR0aCArICdweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGltYWdlLmRpc3BsYXlIZWlnaHQgKyAncHgnXG4gICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImltYWdlLnVybFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfSB9IEBpZiAobWVzc2FnZS5maWxlPy5uYW1lKSB7XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuJ3R3LWJnLWJ1YmJsZS1taW5lJzogbWVzc2FnZS5vd25lci5pZCA9PT0gdXNlcklkLFxuJ3R3LWJnLWRlZmF1bHQnOiBtZXNzYWdlLm93bmVyLmlkICE9PSB1c2VySWQsXG4gICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidHctcHgtMiB0dy1wdC0yIHctZnVsbCB0dy1mbGV4IHR3LWdhcC0yXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICBbZG93bmxvYWRdPVwibWVzc2FnZS5maWxlPy5GaWxlTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIGhyZWY9XCJhc3NldHMvYmctY2hhdC5qcGdcIlxuICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInR3LXNocmluay0wIHR3LXJvdy0wIHR3LXNpemUtMTIgdHctcm91bmRlZC1sZyB0dy1iZy1vcmFuZ2UtNDAwIHR3LWZsZXggdHctanVzdGlmeS1jZW50ZXIgdHctaXRlbXMtY2VudGVyIHR3LWN1cnNvci1wb2ludGVyIHR3LXRyYW5zaXRpb24tYWxsIGhvdmVyOnR3LWJnLW9yYW5nZS02MDBcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0dy1mb250LWJvbGQgbGVhZGluZy02IHR3LXRleHQtbGcgdHctdGV4dC13aGl0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgbWVzc2FnZS5maWxlPy5UeXBlIH19XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR3LWZsZXggdHctZmxleC1jb2xcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0dy1mb250LWJvbGQgdHctdGV4dC1tZCB0dy10ZXh0LWJhc2UgdHctdy1mdWxsIHR3LXRydW5jYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBtZXNzYWdlLmZpbGU/LkZpbGVOYW1lIH19PC9zcGFuXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0dy10ZXh0LXNtIHR3LXRleHQtZ3JheS01MDAgZGFyazp0dy10ZXh0LWdyYXktNDAwIHR3LXctZnVsbCB0dy10cnVuY2F0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgbWVzc2FnZS5maWxlPy5TaXplIH19PC9zcGFuXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfSBAaWYgKG1lc3NhZ2UudGV4dCkge1xuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbid0dy1iZy1idWJibGUtbWluZSc6IG1lc3NhZ2Uub3duZXIuaWQgPT09IHVzZXJJZCxcbid0dy1iZy1kZWZhdWx0JzogbWVzc2FnZS5vd25lci5pZCAhPT0gdXNlcklkLFxuICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInR3LXdoaXRlc3BhY2UtcHJlLWxpbmUgdHctcHgtMyB0dy1wdC0xXCJcbiAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIm1lc3NhZ2UudGV4dFwiXG4gICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0dy1mbGV4IHR3LXctZnVsbCB0dy1weC0yIHR3LXB0LTEgdHctcGItMiB0dy1pdGVtcy1jZW50ZXIgdHctZ2FwLTIgdHctanVzdGlmeS1lbmRcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbid0dy1iZy1idWJibGUtbWluZSc6IG1lc3NhZ2Uub3duZXIuaWQgPT09IHVzZXJJZCxcbid0dy1iZy1kZWZhdWx0IHR3LWZsZXgtcm93LXJldmVyc2UnOiBtZXNzYWdlLm93bmVyLmlkICE9PSB1c2VySWQsXG59XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInR3LXRleHQteHMgdHctdGV4dC1ncmF5LTUwMCBkYXJrOnR3LXRleHQtZ3JheS0zMDBcIj57e1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlLmNyZWF0ZWRBdCB8IHV0aWxEYXRlVG9IaE1tXG4gICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPGZkLXBvcG92ZXIgcGxhY2VtZW50PVwiYm90dG9tLWVuZFwiIHRpdGxlPVwiYm90dG9tLWVuZFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZmQtcG9wb3Zlci1jb250cm9sPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmRDb21wYWN0XT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdseXBoPVwibmF2aWdhdGlvbi1kb3duLWFycm93XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9mZC1wb3BvdmVyLWNvbnRyb2w+XG4gICAgICAgICAgICAgICAgICAgIDxmZC1wb3BvdmVyLWJvZHkgbWluV2lkdGg9XCIxMHJlbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR3LWZsZXggdHctZmxleC1jb2wgdHctYmctZGVmYXVsdCB0dy13LWZ1bGxcIiBib2R5Q2xpY2s+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHctcHgtNCB0dy1weS0yIHR3LWZsZXggdHctZ2FwLTIgdHctdy1mdWxsIGhvdmVyOnR3LWJnLWJhc2UvWy4xXSB0dy10cmFuc2l0aW9uLWFsbCB0dy1jdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZXBseS5lbWl0KG1lc3NhZ2UpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1pY29uIGNsYXNzPVwiIXR3LXRleHQtYmFzZSAhdHctdGV4dC0zeGxcIiBnbHlwaD1cInVuZG9cIj48L2ZkLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiIXR3LXRleHQtYmFzZVwiPtm+2KfYs9iuINiv2KfYr9mGPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHctcHgtNCB0dy1weS0yIHR3LWZsZXggdHctZ2FwLTIgdHctdy1mdWxsIGhvdmVyOnR3LWJnLWJhc2UvWy4xXSB0dy10cmFuc2l0aW9uLWFsbCB0dy1jdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtaWNvbiBjbGFzcz1cIiF0dy10ZXh0LWJhc2UgIXR3LXRleHQtM3hsXCIgZ2x5cGg9XCJmb3J3YXJkXCI+PC9mZC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIiF0dy10ZXh0LWJhc2VcIj7Yp9ix2LPYp9mEINqp2LHYr9mGPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHctcHgtNCB0dy1weS0yIHR3LWZsZXggdHctZ2FwLTIgdHctdy1mdWxsIGhvdmVyOnR3LWJnLWJhc2UvWy4xXSB0dy10cmFuc2l0aW9uLWFsbCB0dy1jdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtaWNvbiBjbGFzcz1cIiF0dy10ZXh0LWJhc2UgIXR3LXRleHQtM3hsXCIgZ2x5cGg9XCJkZWxldGVcIj48L2ZkLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiIXR3LXRleHQtYmFzZVwiPtit2LDZgTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZmQtcG9wb3Zlci1ib2R5PlxuICAgICAgICAgICAgICAgIDwvZmQtcG9wb3Zlcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -8,7 +8,7 @@ import * as i5 from "@fundamental-ngx/core/icon";
|
|
|
8
8
|
import * as i6 from "@fundamental-ngx/core/popover";
|
|
9
9
|
export class BarsaChatThreadComponent {
|
|
10
10
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaChatThreadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: BarsaChatThreadComponent, selector: "bsu-barsa-chat-thread", inputs: { thread: "thread" }, host: { classAttribute: "tw-w-full tw-h-[4.5rem] tw-flex tw-gap-2 tw-border-b tw-border-b-gray-200 dark:tw-border-b-gray-600 tw-p-2 tw-cursor-pointer tw-bg-default hover:tw-bg-zinc-100 hover:dark:tw-bg-black tw-transition-all" }, ngImport: i0, template: "<div class=\"tw-relative tw-grow-0 tw-shrink-0 tw-size-14\">\r\n <img class=\"tw-w-full tw-h-full tw-rounded-full\" [src]=\"thread.avatar\" />\r\n @if (thread.status === 2) {\r\n <div\r\n class=\"tw-absolute tw-bottom-0 tw-left-0 tw-border-2 tw-border-default tw-size-4 tw-rounded-full\"\r\n [ngClass]=\"{\r\n 'tw-bg-gray-300': thread.status === 0,\r\n 'tw-bg-gray-700': thread.status === 1,\r\n 'tw-bg-green-600': thread.status === 2,\r\n 'tw-bg-red-600': thread.status === 3,\r\n }\"\r\n ></div>\r\n }\r\n</div>\r\n<div class=\"tw-grow tw-shrink tw-flex tw-flex-col tw-gap-0.5\">\r\n <span class=\"tw-font-bold tw-text-base tw-text-sm\">{{ thread.title }}</span>\r\n <span class=\"tw-text-gray-500 dark:tw-text-gray-300 tw-line-clamp-2 tw-text-xs\">{{ thread.lastMessage.text }}</span>\r\n</div>\r\n<div class=\"tw-grow-0 tw-shrink-0 tw-flex tw-flex-col tw-justify-between tw-items-center\">\r\n @if (thread.unreadCount) {\r\n <div\r\n class=\"tw-text-white tw-rounded-full tw-text-sm tw-px-1.5\"\r\n [ngClass]=\"{\r\n 'tw-bg-blue-500': !thread.muted,\r\n 'tw-bg-zinc-500': thread.muted\r\n }\"\r\n >\r\n {{ thread.unreadCount }}\r\n </div>\r\n } @else {\r\n <div></div>\r\n }\r\n <div>\r\n <fd-popover placement=\"bottom-end\" title=\"bottom-end\" (click)=\"$event.stopPropagation()\">\r\n <fd-popover-control>\r\n <button fd-button fdType=\"transparent\" [fdCompact]=\"true\" glyph=\"navigation-down-arrow\"></button>\r\n </fd-popover-control>\r\n <fd-popover-body minWidth=\"10rem\">\r\n <div class=\"tw-flex tw-flex-col tw-bg-default tw-w-full\" bodyClick>\r\n <label\r\n class=\"tw-px-4 tw-py-2 tw-flex tw-gap-2 tw-w-full hover:tw-bg-base/[.1] tw-transition-all tw-cursor-pointer\"\r\n >\r\n <fd-icon class=\"!tw-text-base !tw-text-3xl\" glyph=\"bell-2\"></fd-icon>\r\n <span class=\"!tw-text-base\">\u0628\u06CC\u200C\u0635\u062F\u0627 \u06A9\u0631\u062F\u0646</span>\r\n </label>\r\n <label\r\n class=\"tw-px-4 tw-py-2 tw-flex tw-gap-2 tw-w-full hover:tw-bg-base/[.1] tw-transition-all tw-cursor-pointer\"\r\n >\r\n <fd-icon class=\"!tw-text-base !tw-text-3xl\" glyph=\"pushpin-on\"></fd-icon>\r\n <span class=\"!tw-text-base\">\u0633\u0646\u062C\u0627\u0642 \u06A9\u0631\u062F\u0646</span>\r\n </label>\r\n <label\r\n class=\"tw-px-4 tw-py-2 tw-flex tw-gap-2 tw-w-full hover:tw-bg-base/[.1] tw-transition-all tw-cursor-pointer\"\r\n >\r\n <fd-icon class=\"!tw-text-base !tw-text-3xl\" glyph=\"delete\"></fd-icon>\r\n <span class=\"!tw-text-base\">\u062D\u0630\u0641</span>\r\n </label>\r\n </div>\r\n </fd-popover-body>\r\n </fd-popover>\r\n </div>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.BodyClickDirective, selector: "[bodyClick]", inputs: ["disableBodyClick"] }, { kind: "directive", type: i3.ContentDensityDirective, selector: "[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]), [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]), [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]), [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])", inputs: ["fdContentDensity", "fdCompact", "fdCondensed", "fdCozy"], exportAs: ["fdContentDensity"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i5.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "component", type: i6.PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: i6.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "component", type: i6.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }] }); }
|
|
11
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: BarsaChatThreadComponent, selector: "bsu-barsa-chat-thread", inputs: { thread: "thread" }, host: { classAttribute: "tw-w-full tw-h-[4.5rem] tw-flex tw-gap-2 tw-border-b tw-border-b-gray-200 dark:tw-border-b-gray-600 tw-p-2 tw-cursor-pointer tw-bg-default hover:tw-bg-zinc-100 hover:dark:tw-bg-black tw-transition-all" }, ngImport: i0, template: "<div class=\"tw-relative tw-grow-0 tw-shrink-0 tw-size-14\">\r\n <img class=\"tw-w-full tw-h-full tw-rounded-full\" [src]=\"thread.avatar\" />\r\n @if (thread.status === 2) {\r\n <div\r\n class=\"tw-absolute tw-bottom-0 tw-left-0 tw-border-2 tw-border-default tw-size-4 tw-rounded-full\"\r\n [ngClass]=\"{\r\n 'tw-bg-gray-300': thread.status === 0,\r\n 'tw-bg-gray-700': thread.status === 1,\r\n 'tw-bg-green-600': thread.status === 2,\r\n 'tw-bg-red-600': thread.status === 3,\r\n }\"\r\n ></div>\r\n }\r\n</div>\r\n<div class=\"tw-grow tw-shrink tw-flex tw-flex-col tw-gap-0.5\">\r\n <span class=\"tw-font-bold tw-text-base tw-text-sm\">{{ thread.title }}</span>\r\n <span class=\"tw-text-gray-500 dark:tw-text-gray-300 tw-line-clamp-2 tw-text-xs\">{{ thread.lastMessage.text }}</span>\r\n</div>\r\n<div class=\"tw-grow-0 tw-shrink-0 tw-flex tw-flex-col tw-justify-between tw-items-center\">\r\n @if (thread.unreadCount) {\r\n <div\r\n class=\"tw-text-white tw-rounded-full tw-text-sm tw-px-1.5\"\r\n [ngClass]=\"{\r\n 'tw-bg-blue-500': !thread.muted,\r\n 'tw-bg-zinc-500': thread.muted\r\n }\"\r\n >\r\n {{ thread.unreadCount }}\r\n </div>\r\n } @else {\r\n <div></div>\r\n }\r\n <div>\r\n <fd-popover placement=\"bottom-end\" title=\"bottom-end\" (click)=\"$event.stopPropagation()\">\r\n <fd-popover-control>\r\n <button fd-button fdType=\"transparent\" [fdCompact]=\"true\" glyph=\"navigation-down-arrow\"></button>\r\n </fd-popover-control>\r\n <fd-popover-body minWidth=\"10rem\">\r\n <div class=\"tw-flex tw-flex-col tw-bg-default tw-w-full\" bodyClick>\r\n <label\r\n class=\"tw-px-4 tw-py-2 tw-flex tw-gap-2 tw-w-full hover:tw-bg-base/[.1] tw-transition-all tw-cursor-pointer\"\r\n >\r\n <fd-icon class=\"!tw-text-base !tw-text-3xl\" glyph=\"bell-2\"></fd-icon>\r\n <span class=\"!tw-text-base\">\u0628\u06CC\u200C\u0635\u062F\u0627 \u06A9\u0631\u062F\u0646</span>\r\n </label>\r\n <label\r\n class=\"tw-px-4 tw-py-2 tw-flex tw-gap-2 tw-w-full hover:tw-bg-base/[.1] tw-transition-all tw-cursor-pointer\"\r\n >\r\n <fd-icon class=\"!tw-text-base !tw-text-3xl\" glyph=\"pushpin-on\"></fd-icon>\r\n <span class=\"!tw-text-base\">\u0633\u0646\u062C\u0627\u0642 \u06A9\u0631\u062F\u0646</span>\r\n </label>\r\n <label\r\n class=\"tw-px-4 tw-py-2 tw-flex tw-gap-2 tw-w-full hover:tw-bg-base/[.1] tw-transition-all tw-cursor-pointer\"\r\n >\r\n <fd-icon class=\"!tw-text-base !tw-text-3xl\" glyph=\"delete\"></fd-icon>\r\n <span class=\"!tw-text-base\">\u062D\u0630\u0641</span>\r\n </label>\r\n </div>\r\n </fd-popover-body>\r\n </fd-popover>\r\n </div>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.BodyClickDirective, selector: "[bodyClick]", inputs: ["disableBodyClick"] }, { kind: "directive", type: i3.ContentDensityDirective, selector: "[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]), [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]), [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]), [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])", inputs: ["fdContentDensity", "fdCompact", "fdCondensed", "fdCozy"], exportAs: ["fdContentDensity"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i5.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "component", type: i6.PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: i6.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "component", type: i6.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }] }); }
|
|
12
12
|
}
|
|
13
13
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaChatThreadComponent, decorators: [{
|
|
14
14
|
type: Component,
|
package/esm2022/lib/barsa-chat-threads-list-toolbar/barsa-chat-threads-list-toolbar.component.mjs
CHANGED
|
@@ -3,7 +3,7 @@ import * as i0 from "@angular/core";
|
|
|
3
3
|
import * as i1 from "@fundamental-ngx/core/button";
|
|
4
4
|
export class BarsaChatThreadsListToolbarComponent {
|
|
5
5
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaChatThreadsListToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: BarsaChatThreadsListToolbarComponent, selector: "bsu-barsa-chat-threads-list-toolbar", host: { classAttribute: "tw-relative tw-shrink-0 tw-grow-0 tw-w-full tw-h-16 tw-flex tw-justify-between tw-items-center tw-px-4 tw-bg-zinc-200/[.7] dark:tw-bg-zinc-700/[.7]" }, ngImport: i0, template: "<div>\r\n <img src=\"https://picsum.photos/100?workAround=1234\" class=\"tw-size-12 tw-rounded-full\" />\r\n</div>\r\n<div class=\"tw-absolute tw-top-1/2 -tw-translate-y-1/2 tw-left-1/2 -tw-translate-x-1/2 tw-text-base\">\r\n \u062F\u0631 \u062D\u0627\u0644 \u0627\u062A\u0635\u0627\u0644...\r\n</div>\r\n<div>\r\n <button fd-button fdType=\"transparent\" glyph=\"edit\"></button>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "component", type: i1.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }] }); }
|
|
6
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: BarsaChatThreadsListToolbarComponent, selector: "bsu-barsa-chat-threads-list-toolbar", host: { classAttribute: "tw-relative tw-shrink-0 tw-grow-0 tw-w-full tw-h-16 tw-flex tw-justify-between tw-items-center tw-px-4 tw-bg-zinc-200/[.7] dark:tw-bg-zinc-700/[.7]" }, ngImport: i0, template: "<div>\r\n <img src=\"https://picsum.photos/100?workAround=1234\" class=\"tw-size-12 tw-rounded-full\" />\r\n</div>\r\n<div class=\"tw-absolute tw-top-1/2 -tw-translate-y-1/2 tw-left-1/2 -tw-translate-x-1/2 tw-text-base\">\r\n \u062F\u0631 \u062D\u0627\u0644 \u0627\u062A\u0635\u0627\u0644...\r\n</div>\r\n<div>\r\n <button fd-button fdType=\"transparent\" glyph=\"edit\"></button>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "component", type: i1.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }] }); }
|
|
7
7
|
}
|
|
8
8
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaChatThreadsListToolbarComponent, decorators: [{
|
|
9
9
|
type: Component,
|