barsa-sap-ui 2.2.22 → 2.2.33
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-chat/barsa-chat.component.mjs +2 -2
- package/esm2022/lib/barsa-form-layout-panel/barsa-form-layout-panel.component.mjs +58 -0
- package/esm2022/lib/barsa-form-side-content/barsa-form-side-content.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-list-layout-panel/barsa-list-layout-panel.component.mjs +1 -1
- package/esm2022/lib/barsa-pishnamayesh-payam/barsa-pishnamayesh-payam.component.mjs +1 -1
- package/esm2022/lib/barsa-sap-ui.module.mjs +24 -23
- package/esm2022/lib/barsa-table-header/barsa-table-header.component.mjs +1 -1
- package/esm2022/lib/barsa-table-row/barsa-table-row.component.mjs +3 -3
- package/esm2022/lib/barsa-tinyemce/barsa-tinyemce.component.mjs +10 -9
- 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/file-viewer-content/file-viewer-content.component.mjs +1 -1
- package/esm2022/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.mjs +7 -5
- package/esm2022/lib/index.mjs +4 -2
- package/esm2022/lib/layout-actions/layout-actions.component.mjs +3 -3
- package/esm2022/lib/layout-control/layout-control.component.mjs +4 -3
- package/esm2022/lib/list-item/list-item.component.mjs +1 -1
- package/esm2022/lib/ly-label/ly-label.component.mjs +5 -3
- package/esm2022/lib/manage-filters-report/manage-filters-report.component.mjs +1 -1
- package/esm2022/lib/report-search-fields-manage/report-search-fields-manage.component.mjs +1 -1
- package/esm2022/lib/report-view-renderer.directive.mjs +5 -2
- package/esm2022/lib/sap-ui-report-base.component.mjs +14 -4
- package/esm2022/lib/table-th.directive.mjs +2 -2
- package/esm2022/lib/ui-asp-report-viewer/ui-asp-report-viewer.component.mjs +1 -1
- package/esm2022/lib/ui-check-box/ui-check-box.component.mjs +9 -4
- package/esm2022/lib/ui-date-range-ex/ui-date-range-ex.component.mjs +1 -1
- package/esm2022/lib/ui-file-linear-list-box/ui-file-linear-list-box.component.mjs +27 -15
- package/esm2022/lib/ui-grid-columns/ui-grid-columns.component.mjs +1 -1
- package/esm2022/lib/ui-linear-list-container-with-button/ui-linear-list-container-with-button.component.mjs +24 -5
- package/esm2022/lib/ui-multi-select-card/ui-multi-select-card.component.mjs +1 -1
- package/esm2022/lib/ui-multi-select-radio/ui-multi-select-radio.component.mjs +1 -1
- package/esm2022/lib/ui-pdf-viewer/ui-pdf-viewer.component.mjs +1 -1
- package/esm2022/lib/ui-radio-group/ui-radio-group.component.mjs +1 -1
- package/esm2022/lib/ui-report-container/ui-report-container.component.mjs +3 -3
- package/esm2022/lib/ui-table-view/ui-table-view.component.mjs +3 -3
- package/esm2022/lib/ui-tinymce/ui-tinymce.component.mjs +8 -4
- package/esm2022/lib/ulv-context-menu/ulv-context-menu.component.mjs +3 -3
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/barsa-sap-ui.mjs +287 -179
- package/fesm2022/barsa-sap-ui.mjs.map +1 -1
- package/lib/barsa-form-layout-panel/barsa-form-layout-panel.component.d.ts +30 -0
- package/lib/barsa-sap-ui.module.d.ts +37 -36
- package/lib/barsa-tinyemce/barsa-tinyemce.component.d.ts +2 -3
- package/lib/index.d.ts +3 -3
- package/lib/layout-control/layout-control.component.d.ts +1 -0
- package/lib/ly-label/ly-label.component.d.ts +2 -1
- package/lib/report-view-renderer.directive.d.ts +2 -1
- package/lib/sap-ui-report-base.component.d.ts +5 -3
- package/lib/ui-check-box/ui-check-box.component.d.ts +1 -0
- package/lib/ui-file-linear-list-box/ui-file-linear-list-box.component.d.ts +2 -0
- package/lib/ui-tinymce/ui-tinymce.component.d.ts +1 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -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: "18.2.13", ngImport: i0, type: BarsaChatComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
192
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BarsaChatComponent, selector: "bsu-barsa-chat", inputs: { simple: "simple" }, providers: [FormPanelService], usesInheritance: true, ngImport: i0, template: "<div\r\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]\"\r\n fillEmptySpace\r\n [class.tw-h-screen]=\"!simple\"\r\n [class.tw-justify-center]=\"simple\"\r\n>\r\n @if (!simple) {\r\n <div class=\"tw-bg-black/[.3] 2xl:tw-grow tw-shrink tw-h-full\"></div>\r\n }\r\n <div\r\n class=\"tw-h-full tw-flex 2xl:tw-container max-w-[80rem] tw-shrink-0 tw-relative\"\r\n [ngClass]=\"{\r\n 'tw-grow 2xl:tw-grow-0': !simple,\r\n 'tw-w-full': simple\r\n }\"\r\n >\r\n @if (!simple) {\r\n <div class=\"tw-grow-0 tw-shrink-0 tw-w-full md:tw-w-96 tw-p-0 md:tw-p-6\">\r\n <div\r\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\"\r\n >\r\n <bsu-barsa-chat-threads-list-toolbar></bsu-barsa-chat-threads-list-toolbar>\r\n <bsu-barsa-chat-threads-list>\r\n @for (thread of threads; track thread.id) {\r\n <bsu-barsa-chat-thread [thread]=\"thread\" (click)=\"selectThread(thread)\"></bsu-barsa-chat-thread>\r\n }\r\n </bsu-barsa-chat-threads-list>\r\n </div>\r\n </div>\r\n } @else {\r\n <div\r\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\"\r\n ></div>\r\n }\r\n <div\r\n class=\"tw-grow tw-shrink tw-relative\"\r\n [ngClass]=\"{\r\n 'md:tw-py-6 md:tw-pl-6 tw-hidden md:tw-flex': !simple,\r\n 'tw-flex': simple\r\n }\"\r\n >\r\n @if (selectedThread()) {\r\n <div\r\n @inContentAnimation\r\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\"\r\n [ngClass]=\"{\r\n 'md:tw-border md:tw-rounded-2xl': !simple\r\n }\"\r\n >\r\n <bsu-barsa-chat-content-toolbar\r\n [title]=\"selectedThread().title\"\r\n [subtitle]=\"'\u0645\u062D\u0645\u062F \u0645\u062D\u0645\u062F\u06CC'\"\r\n [avatar]=\"selectedThread().avatar\"\r\n [status]=\"selectedThread().status\"\r\n ></bsu-barsa-chat-content-toolbar>\r\n <bsu-barsa-chat-content id=\"chat-container\">\r\n @if(layout94$ | async;as layout94){ @if ('\u0644\u06CC\u0633\u062A \u06AF\u0641\u062A\u06AF\u0648' | controlUi: layout94; as configUi) {\r\n <bsu-layout-control [config]=\"configUi\"></bsu-layout-control>\r\n } }\r\n </bsu-barsa-chat-content>\r\n <div\r\n class=\"tw-w-full\"\r\n [ngClass]=\"{\r\n 'tw-relative': !simple,\r\n '2xl:tw-rounded-t-xl tw-grow-0 tw-shrink-0': simple\r\n }\"\r\n >\r\n @if (replyingMessage()) {\r\n <div\r\n @inOutReplyingMessage\r\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\"\r\n >\r\n <button\r\n fd-button\r\n fdType=\"transparent\"\r\n glyph=\"decline\"\r\n class=\"tw-grow-0 tw-shrink-0\"\r\n (click)=\"replyingMessage.set(null)\"\r\n ></button>\r\n <div class=\"tw-flex tw-flex-col tw-grow tw-shrink tw-overflow-hidden\">\r\n <span class=\"tw-font-bold\">{{ replyingMessage().owner.name }}</span>\r\n <span class=\"tw-truncate\">{{\r\n replyingMessage().text ?? replyingMessage().file?.name ?? replyingMessage().image?.name\r\n }}</span>\r\n </div>\r\n <div class=\"tw-w-8 tw-shrink-0 tw-grow-0\"></div>\r\n </div>\r\n }\r\n <div\r\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\"\r\n >\r\n <fd-popover placement=\"top-start\" title=\"top-start\">\r\n <fd-popover-control>\r\n <button\r\n fd-button\r\n fdType=\"transparent\"\r\n glyph=\"attachment\"\r\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\"\r\n (click)=\"addAttachment()\"\r\n ></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=\"camera\"></fd-icon>\r\n <span class=\"!tw-text-base\">\u0627\u0631\u0633\u0627\u0644 \u0639\u06A9\u0633</span>\r\n <input class=\"tw-hidden\" type=\"file\" id=\"img\" name=\"img\" accept=\"image/*\" />\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=\"add-document\"></fd-icon>\r\n <span class=\"!tw-text-base\">\u0627\u0631\u0633\u0627\u0644 \u0641\u0627\u06CC\u0644</span>\r\n <input class=\"tw-hidden\" type=\"file\" id=\"file\" name=\"file\" accept=\"file/*\" />\r\n </label>\r\n </div>\r\n </fd-popover-body>\r\n </fd-popover>\r\n <div class=\"tw-inline-flex tw-relative tw-grow tw-shrink\">\r\n <fd-feed-input [attr.aria-label]=\"'\u0645\u062A\u0646 \u067E\u06CC\u0627\u0645'\" class=\"tw-flex-1\">\r\n <fd-avatar\r\n fdFeedInputAvatar\r\n size=\"s\"\r\n [label]=\"'\u0631\u0627\u0647\u0628\u0631'\"\r\n [image]=\"''\"\r\n [placeholder]=\"true\"\r\n ></fd-avatar>\r\n <textarea\r\n id=\"chat-textarea\"\r\n fd-form-control\r\n fdFeedInputTextarea\r\n placeholder=\"\u0645\u062A\u0646 \u067E\u06CC\u0627\u0645\"\r\n [fdFeedInputTextareaMaxRows]=\"2\"\r\n (input)=\"onTextChange($event)\"\r\n ></textarea>\r\n <button\r\n fdFeedInputButton\r\n [attr.aria-label]=\"'Send' | bbbTranslate\"\r\n [title]=\"'Send' | bbbTranslate\"\r\n (click)=\"sendMessage()\"\r\n ></button>\r\n </fd-feed-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n } @else {\r\n <div\r\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\"\r\n >\r\n <img src=\"assets/not-selected-chat.png\" class=\"tw-w-64 tw-opacity-25\" />\r\n <!-- <span class=\"tw-text-xl tw-font-bold tw-text-gray-400 dark:tw-text-gray-500\">-->\r\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-->\r\n <!-- </span>-->\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n @if (!simple) {\r\n <div class=\"tw-bg-black/[.3] 2xl:tw-grow tw-shrink tw-h-full\"></div>\r\n }\r\n</div>\r\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", "colorIndication", "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: [
|
|
192
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BarsaChatComponent, selector: "bsu-barsa-chat", inputs: { simple: "simple" }, providers: [FormPanelService], usesInheritance: true, ngImport: i0, template: "<div\r\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]\"\r\n fillEmptySpace\r\n [class.tw-h-screen]=\"!simple\"\r\n [class.tw-justify-center]=\"simple\"\r\n>\r\n @if (!simple) {\r\n <div class=\"tw-bg-black/[.3] 2xl:tw-grow tw-shrink tw-h-full\"></div>\r\n }\r\n <div\r\n class=\"tw-h-full tw-flex 2xl:tw-container max-w-[80rem] tw-shrink-0 tw-relative\"\r\n [ngClass]=\"{\r\n 'tw-grow 2xl:tw-grow-0': !simple,\r\n 'tw-w-full': simple\r\n }\"\r\n >\r\n @if (!simple) {\r\n <div class=\"tw-grow-0 tw-shrink-0 tw-w-full md:tw-w-96 tw-p-0 md:tw-p-6\">\r\n <div\r\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\"\r\n >\r\n <bsu-barsa-chat-threads-list-toolbar></bsu-barsa-chat-threads-list-toolbar>\r\n <bsu-barsa-chat-threads-list>\r\n @for (thread of threads; track thread.id) {\r\n <bsu-barsa-chat-thread [thread]=\"thread\" (click)=\"selectThread(thread)\"></bsu-barsa-chat-thread>\r\n }\r\n </bsu-barsa-chat-threads-list>\r\n </div>\r\n </div>\r\n } @else {\r\n <div\r\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\"\r\n ></div>\r\n }\r\n <div\r\n class=\"tw-grow tw-shrink tw-relative\"\r\n [ngClass]=\"{\r\n 'md:tw-py-6 md:tw-pl-6 tw-hidden md:tw-flex': !simple,\r\n 'tw-flex': simple\r\n }\"\r\n >\r\n @if (selectedThread()) {\r\n <div\r\n @inContentAnimation\r\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\"\r\n [ngClass]=\"{\r\n 'md:tw-border md:tw-rounded-2xl': !simple\r\n }\"\r\n >\r\n <bsu-barsa-chat-content-toolbar\r\n [title]=\"selectedThread().title\"\r\n [subtitle]=\"'\u0645\u062D\u0645\u062F \u0645\u062D\u0645\u062F\u06CC'\"\r\n [avatar]=\"selectedThread().avatar\"\r\n [status]=\"selectedThread().status\"\r\n ></bsu-barsa-chat-content-toolbar>\r\n <bsu-barsa-chat-content id=\"chat-container\">\r\n @if(layout94$ | async;as layout94){ @if ('\u0644\u06CC\u0633\u062A \u06AF\u0641\u062A\u06AF\u0648' | controlUi: layout94; as configUi) {\r\n <bsu-layout-control [config]=\"configUi\"></bsu-layout-control>\r\n } }\r\n </bsu-barsa-chat-content>\r\n <div\r\n class=\"tw-w-full\"\r\n [ngClass]=\"{\r\n 'tw-relative': !simple,\r\n '2xl:tw-rounded-t-xl tw-grow-0 tw-shrink-0': simple\r\n }\"\r\n >\r\n @if (replyingMessage()) {\r\n <div\r\n @inOutReplyingMessage\r\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\"\r\n >\r\n <button\r\n fd-button\r\n fdType=\"transparent\"\r\n glyph=\"decline\"\r\n class=\"tw-grow-0 tw-shrink-0\"\r\n (click)=\"replyingMessage.set(null)\"\r\n ></button>\r\n <div class=\"tw-flex tw-flex-col tw-grow tw-shrink tw-overflow-hidden\">\r\n <span class=\"tw-font-bold\">{{ replyingMessage().owner.name }}</span>\r\n <span class=\"tw-truncate\">{{\r\n replyingMessage().text ?? replyingMessage().file?.name ?? replyingMessage().image?.name\r\n }}</span>\r\n </div>\r\n <div class=\"tw-w-8 tw-shrink-0 tw-grow-0\"></div>\r\n </div>\r\n }\r\n <div\r\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\"\r\n >\r\n <fd-popover placement=\"top-start\" title=\"top-start\">\r\n <fd-popover-control>\r\n <button\r\n fd-button\r\n fdType=\"transparent\"\r\n glyph=\"attachment\"\r\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\"\r\n (click)=\"addAttachment()\"\r\n ></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=\"camera\"></fd-icon>\r\n <span class=\"!tw-text-base\">\u0627\u0631\u0633\u0627\u0644 \u0639\u06A9\u0633</span>\r\n <input class=\"tw-hidden\" type=\"file\" id=\"img\" name=\"img\" accept=\"image/*\" />\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=\"add-document\"></fd-icon>\r\n <span class=\"!tw-text-base\">\u0627\u0631\u0633\u0627\u0644 \u0641\u0627\u06CC\u0644</span>\r\n <input class=\"tw-hidden\" type=\"file\" id=\"file\" name=\"file\" accept=\"file/*\" />\r\n </label>\r\n </div>\r\n </fd-popover-body>\r\n </fd-popover>\r\n <div class=\"tw-inline-flex tw-relative tw-grow tw-shrink\">\r\n <fd-feed-input [attr.aria-label]=\"'\u0645\u062A\u0646 \u067E\u06CC\u0627\u0645'\" class=\"tw-flex-1\">\r\n <fd-avatar\r\n fdFeedInputAvatar\r\n size=\"s\"\r\n [label]=\"'\u0631\u0627\u0647\u0628\u0631'\"\r\n [image]=\"''\"\r\n [placeholder]=\"true\"\r\n ></fd-avatar>\r\n <textarea\r\n id=\"chat-textarea\"\r\n fd-form-control\r\n fdFeedInputTextarea\r\n placeholder=\"\u0645\u062A\u0646 \u067E\u06CC\u0627\u0645\"\r\n [fdFeedInputTextareaMaxRows]=\"2\"\r\n (input)=\"onTextChange($event)\"\r\n ></textarea>\r\n <button\r\n fdFeedInputButton\r\n [attr.aria-label]=\"'Send' | bbbTranslate\"\r\n [title]=\"'Send' | bbbTranslate\"\r\n (click)=\"sendMessage()\"\r\n ></button>\r\n </fd-feed-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n } @else {\r\n <div\r\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\"\r\n >\r\n <img src=\"assets/not-selected-chat.png\" class=\"tw-w-64 tw-opacity-25\" />\r\n <!-- <span class=\"tw-text-xl tw-font-bold tw-text-gray-400 dark:tw-text-gray-500\">-->\r\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-->\r\n <!-- </span>-->\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n @if (!simple) {\r\n <div class=\"tw-bg-black/[.3] 2xl:tw-grow tw-shrink tw-h-full\"></div>\r\n }\r\n</div>\r\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"], outputs: ["heightChanged"], 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", "colorIndication", "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: "18.2.13", ngImpo
|
|
|
239
239
|
}], propDecorators: { simple: [{
|
|
240
240
|
type: Input
|
|
241
241
|
}] } });
|
|
242
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtY2hhdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi9iYXJzYS1jaGF0L2JhcnNhLWNoYXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtY2hhdC9iYXJzYS1jaGF0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWtCLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sT0FBTyxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUErQnJGLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxpQkFBaUI7SUE3QnpEOztRQThCYSxXQUFNLEdBQUcsSUFBSSxDQUFDO1FBRXZCLGtCQUFhLEdBQUcsK0RBQStELENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNGLG9CQUFlLEdBQUcsOERBQThELENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVGLGtCQUFhLEdBQUcsQ0FDWixtRkFBbUY7WUFDbkYsK0ZBQStGO1lBQy9GLDRGQUE0RjtZQUM1RiwyRkFBMkY7WUFDM0YsMkZBQTJGO1lBQzNGLHlGQUF5RjtZQUN6RiwwRkFBMEY7WUFDMUYsOEVBQThFLENBQ2pGLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7YUFDZCxJQUFJLENBQUMsSUFB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QUM7NkJBQ25GLENBQUM7NEJBQ0YsVUFBVSxDQUFDLFFBQVEsRUFBRTtnQ0FDakIsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQztnQ0FDckQsT0FBTyxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLENBQUM7NkJBQ2hGLENBQUM7eUJBQ0wsQ0FBQzt3QkFDRixPQUFPLENBQUMsc0JBQXNCLEVBQUU7NEJBQzVCLFVBQVUsQ0FBQyxRQUFRLEVBQUU7Z0NBQ2pCLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLENBQUM7Z0NBQ25ELE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDOzZCQUMvRSxDQUFDOzRCQUNGLFVBQVUsQ0FBQyxRQUFRLEVBQUU7Z0NBQ2pCLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDO2dDQUNqRCxPQUFPLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQzs2QkFDaEYsQ0FBQzt5QkFDTCxDQUFDO3FCQUNMLGNBQ1csS0FBSzs4QkFHUixNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgc2lnbmFsLCBXcml0YWJsZVNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgam1vbWVudCBmcm9tICdtb21lbnQtamFsYWFsaSc7XHJcbmltcG9ydCB7IGFuaW1hdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IEZvcm1CYXNlQ29tcG9uZW50LCBGb3JtUGFuZWxTZXJ2aWNlLCBCYXJzYUFwaSB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtYmFyc2EtY2hhdCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vYmFyc2EtY2hhdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybDogJy4vYmFyc2EtY2hhdC5jb21wb25lbnQuY3NzJyxcclxuICAgIHByb3ZpZGVyczogW0Zvcm1QYW5lbFNlcnZpY2VdLFxyXG4gICAgYW5pbWF0aW9uczogW1xyXG4gICAgICAgIHRyaWdnZXIoJ2luQ29udGVudEFuaW1hdGlvbicsIFtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xyXG4gICAgICAgICAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAwLCB0cmFuc2Zvcm06ICdzY2FsZSg1MCUsIDUwJSknIH0pLFxyXG4gICAgICAgICAgICAgICAgYW5pbWF0ZSgnMzAwbXMgZWFzZS1vdXQnLCBzdHlsZSh7IG9wYWNpdHk6IDEsIHRyYW5zZm9ybTogJ3NjYWxlKDEwMCUsIDEwMCUpJyB9KSlcclxuICAgICAgICAgICAgXSksXHJcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtcclxuICAgICAgICAgICAgICAgIHN0eWxlKHsgb3BhY2l0eTogMSwgdHJhbnNmb3JtOiAnc2NhbGUoMTAwJSwgMTAwJSknIH0pLFxyXG4gICAgICAgICAgICAgICAgYW5pbWF0ZSgnMzAwbXMgZWFzZS1pbicsIHN0eWxlKHsgb3BhY2l0eTogMCwgdHJhbnNmb3JtOiAnc2NhbGUoNTAlLCA1MCUpJyB9KSlcclxuICAgICAgICAgICAgXSlcclxuICAgICAgICBdKSxcclxuICAgICAgICB0cmlnZ2VyKCdpbk91dFJlcGx5aW5nTWVzc2FnZScsIFtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xyXG4gICAgICAgICAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAwLCB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKDUwJSknIH0pLFxyXG4gICAgICAgICAgICAgICAgYW5pbWF0ZSgnMzAwbXMgZWFzZS1vdXQnLCBzdHlsZSh7IG9wYWNpdHk6IDEsIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoMCknIH0pKVxyXG4gICAgICAgICAgICBdKSxcclxuICAgICAgICAgICAgdHJhbnNpdGlvbignOmxlYXZlJywgW1xyXG4gICAgICAgICAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAxLCB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKDApJyB9KSxcclxuICAgICAgICAgICAgICAgIGFuaW1hdGUoJzMwMG1zIGVhc2UtaW4nLCBzdHlsZSh7IG9wYWNpdHk6IDAsIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoNTAlKScgfSkpXHJcbiAgICAgICAgICAgIF0pXHJcbiAgICAgICAgXSlcclxuICAgIF0sXHJcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmFyc2FDaGF0Q29tcG9uZW50IGV4dGVuZHMgRm9ybUJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgICBASW5wdXQoKSBzaW1wbGUgPSB0cnVlO1xyXG5cclxuICAgIHJhbmRvbU5hbWVBcnIgPSAn2LnZhNuMINit2LPZhiDYrdiz24zZhiDYqtmC24wg2YbZgtuMINmF2K3ZhdivINmF2YfYr9uMINis2KfZiNuM2K8g2YXYrdmF2K/Ysdi22Kcg2qnYsduM2YUg2YfZiNi02YbaryDZvtuM2YXYp9mGJy5zcGxpdCgnICcpO1xyXG4gICAgcmFuZG9tRmFtaWx5QXJyID0gJ9qp2LHbjNmF24wg2K3Ys9uM2YbbjCDYstin2LHYuduMINiq2YLZiNuMINqp2KfYuNmF24wg2YLZhtio2LHbjCDZhtio2YjbjNin2YYg2KfZgdi02KfYsSDYsdin2K/ZhdmG2K8g2YXYrdmF2K/bjCcuc3BsaXQoJyAnKTtcclxuICAgIHJhbmRvbVRleHRBcnIgPSAoXHJcbiAgICAgICAgJ9mE2YjYsdmFINin24zZvtiz2YjZhSDZhdiq2YYg2LPYp9iu2Krar9uMINio2Kcg2KrZiNmE24zYryDYs9in2K/ar9uMINmG2KfZhdmB2YfZiNmFINin2LIg2LXZhti52Kog2obYp9m+2Iwg2Ygg2KjYpyDYp9iz2KrZgdin2K/ZhyDYp9iyINi32LHYp9it2KfZhicgK1xyXG4gICAgICAgICcg2q/Ysdin2YHbjNqpINin2LPYqtiMINqG2KfZvtqv2LHZh9inINmIINmF2KrZiNmGINio2YTaqdmHINix2YjYstmG2KfZhdmHINmIINmF2KzZhNmHINiv2LEg2LPYqtmI2YYg2Ygg2LPYt9ix2KLZhtqG2YbYp9mGINqp2Ycg2YTYp9iy2YUg2KfYs9iq2Iwg2Ygg2KjYsdin24wg2LTYsdin24zYtycgK1xyXG4gICAgICAgICcg2YHYudmE24wg2KraqdmG2YjZhNmI2pjbjCDZhdmI2LHYryDZhtuM2KfYstiMINmIINqp2KfYsdio2LHYr9mH2KfbjCDZhdiq2YbZiNi5INio2Kcg2YfYr9mBINio2YfYqNmI2K8g2KfYqNiy2KfYsdmH2KfbjCDaqdin2LHYqNix2K/bjCDZhduMINio2KfYtNiv2Iwg2qnYqtin2KjZh9in24wnICtcclxuICAgICAgICAnINiy24zYp9iv24wg2K/YsSDYtNi12Kog2Ygg2LPZhyDYr9ix2LXYryDar9iw2LTYqtmHINit2KfZhCDZiCDYotuM2YbYr9mH2Iwg2LTZhtin2K7YqiDZgdix2KfZiNin2YYg2KzYp9mF2LnZhyDZiCDZhdiq2K7Ytdi12KfZhiDYsdinINmF24wg2LfZhNio2K/YjCDYqtinINio2KcnICtcclxuICAgICAgICAnINmG2LHZhSDYp9mB2LLYp9ix2YfYpyDYtNmG2KfYrtiqINio24zYtNiq2LHbjCDYsdinINio2LHYp9uMINi32LHYp9it2KfZhiDYsdin24zYp9mG2Ycg2KfbjCDYudmE24wg2KfZhNiu2LXZiNi1INi32LHYp9it2KfZhiDYrtmE2KfZgtuM2Iwg2Ygg2YHYsdmH2YbaryDZvtuM2LTYsdmIJyArXHJcbiAgICAgICAgJyDYr9ixINiy2KjYp9mGINmB2KfYsdiz24wg2KfbjNis2KfYryDaqdix2K/YjCDYr9ixINin24zZhiDYtdmI2LHYqiDZhduMINiq2YjYp9mGINin2YXbjNivINiv2KfYtNiqINqp2Ycg2KrZhdin2YUg2Ygg2K/YtNmI2KfYsduMINmF2YjYrNmI2K8g2K/YsSDYp9ix2KfYptmHJyArXHJcbiAgICAgICAgJyDYsdin2Yfaqdin2LHZh9in2Iwg2Ygg2LTYsdin24zYtyDYs9iu2Kog2KrYp9uM2b4g2KjZhyDZvtin24zYp9mGINix2LPYryDZiCDYstmF2KfZhiDZhdmI2LHYryDZhtuM2KfYsiDYtNin2YXZhCDYrdix2YjZgdqG24zZhtuMINiv2LPYqtin2YjYsdiv2YfYp9uMINin2LXZhNuM2IwnICtcclxuICAgICAgICAnINmIINis2YjYp9io2q/ZiNuMINiz2YjYp9mE2KfYqiDZvtuM2YjYs9iq2Ycg2KfZh9mEINiv2YbbjNin24wg2YXZiNis2YjYryDYt9ix2KfYrduMINin2LPYp9iz2Kcg2YXZiNix2K8g2KfYs9iq2YHYp9iv2Ycg2YLYsdin2LEg2q/bjNix2K8uJ1xyXG4gICAgKS5zcGxpdCgnICcpO1xyXG4gICAgdGhyZWFkcyA9IEFycmF5KDIwKVxyXG4gICAgICAgIC5maWxsKG51bGwpXHJcbiAgICAgICAgLm1hcCgodCkgPT4gKHtcclxuICAgICAgICAgICAgaWQ6IE1hdGgucmFuZG9tKCkgKiAxMDAwLFxyXG4gICAgICAgICAgICB0aXRsZTpcclxuICAgICAgICAgICAgICAgIHRoaXMucmFuZG9tTmFtZUFycltNYXRoLmZsb29yKHRoaXMucmFuZG9tTmFtZUFyci5sZW5ndGggKiBNYXRoLnJhbmRvbSgpKV0gK1xyXG4gICAgICAgICAgICAgICAgJyAnICtcclxuICAgICAgICAgICAgICAgIHRoaXMucmFuZG9tRmFtaWx5QXJyW01hdGguZmxvb3IodGhpcy5yYW5kb21GYW1pbHlBcnIubGVuZ3RoICogTWF0aC5yYW5kb20oKSldLFxyXG4gICAgICAgICAgICBhdmF0YXI6ICdodHRwczovL3BpY3N1bS5waG90b3MvMTAwP3dvcmtBcm91bmQ9JyArIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMCksXHJcbiAgICAgICAgICAgIHN0YXR1czogTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogNCksXHJcbiAgICAgICAgICAgIGxhc3RBY3Rpdml0eTogdGhpcy5yYW5kb21EYXRlKG5ldyBEYXRlKCcyMDI0LTAzLTAzJyksIG5ldyBEYXRlKCkpLFxyXG4gICAgICAgICAgICB1bnJlYWRDb3VudDogTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpKSA/IDEgKyBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAyMCkgOiAwLFxyXG4gICAgICAgICAgICBwaW5uZWQ6ICEhTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpKSxcclxuICAgICAgICAgICAgbXV0ZWQ6ICEhTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpKSxcclxuICAgICAgICAgICAgbGFzdE1lc3NhZ2U6IHtcclxuICAgICAgICAgICAgICAgIGlkOiBNYXRoLnJhbmRvbSgpICogMTAwMCxcclxuICAgICAgICAgICAgICAgIG93bmVyOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWQ6IDEyMzQsXHJcbiAgICAgICAgICAgICAgICAgICAgYXZhdGFyOiAnaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzEwMD93b3JrQXJvdW5kPScgKyBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDApLFxyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6ICfZhdmH2K/bjCDYstin2LHYuduMJ1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHRleHQ6IHRoaXMuc2h1ZmZsZShcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJhbmRvbVRleHRBcnIuc2xpY2UoMCwgMSArIE1hdGguZmxvb3IodGhpcy5yYW5kb21UZXh0QXJyLmxlbmd0aCAqIE1hdGgucmFuZG9tKCkpKVxyXG4gICAgICAgICAgICAgICAgKS5qb2luKCcgJyksXHJcbiAgICAgICAgICAgICAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKClcclxuICAgICAgICAgICAgICAgICAgICAudG9UaW1lU3RyaW5nKClcclxuICAgICAgICAgICAgICAgICAgICAuc3BsaXQoJyAnKVswXVxyXG4gICAgICAgICAgICAgICAgICAgIC5zcGxpdCgnOicpXHJcbiAgICAgICAgICAgICAgICAgICAgLnNsaWNlKDAsIDIpXHJcbiAgICAgICAgICAgICAgICAgICAgLm1hcCgocykgPT4gcy5wYWRTdGFydCgyLCAnMCcpKVxyXG4gICAgICAgICAgICAgICAgICAgIC5qb2luKCc6JyksXHJcbiAgICAgICAgICAgICAgICBkZWxpdmVyZWRBdDogbmV3IERhdGUoKVxyXG4gICAgICAgICAgICAgICAgICAgIC50b1RpbWVTdHJpbmcoKVxyXG4gICAgICAgICAgICAgICAgICAgIC5zcGxpdCgnICcpWzBdXHJcbiAgICAgICAgICAgICAgICAgICAgLnNwbGl0KCc6JylcclxuICAgICAgICAgICAgICAgICAgICAuc2xpY2UoMCwgMilcclxuICAgICAgICAgICAgICAgICAgICAubWFwKChzKSA9PiBzLnBhZFN0YXJ0KDIsICcwJykpXHJcbiAgICAgICAgICAgICAgICAgICAgLmpvaW4oJzonKSxcclxuICAgICAgICAgICAgICAgIHJlYWRBdDogbmV3IERhdGUoKVxyXG4gICAgICAgICAgICAgICAgICAgIC50b1RpbWVTdHJpbmcoKVxyXG4gICAgICAgICAgICAgICAgICAgIC5zcGxpdCgnICcpWzBdXHJcbiAgICAgICAgICAgICAgICAgICAgLnNwbGl0KCc6JylcclxuICAgICAgICAgICAgICAgICAgICAuc2xpY2UoMCwgMilcclxuICAgICAgICAgICAgICAgICAgICAubWFwKChzKSA9PiBzLnBhZFN0YXJ0KDIsICcwJykpXHJcbiAgICAgICAgICAgICAgICAgICAgLmpvaW4oJzonKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSkpO1xyXG4gICAgbW9tZW50ID0gam1vbWVudDtcclxuICAgIHNlbGVjdGVkVGhyZWFkOiBXcml0YWJsZVNpZ25hbDxhbnkgfCBudWxsPiA9IHNpZ25hbChudWxsKTtcclxuICAgIG1lc3NhZ2VzOiBXcml0YWJsZVNpZ25hbDxhbnlbXSB8IG51bGw+ID0gc2lnbmFsKG51bGwpO1xyXG4gICAgcmVwbHlpbmdNZXNzYWdlOiBXcml0YWJsZVNpZ25hbDxhbnkgfCBudWxsPiA9IHNpZ25hbChudWxsKTtcclxuICAgIF9uZXdNZXNzYWdlVGV4dCA9ICcnO1xyXG4gICAgb25UZXh0Q2hhbmdlKCRldmVudCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX25ld01lc3NhZ2VUZXh0ID0gJGV2ZW50LnRhcmdldC52YWx1ZTtcclxuICAgIH1cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCdjaGF0LW1vZGUnKTtcclxuICAgICAgICB0aGlzLnNlbGVjdFRocmVhZCh0aGlzLnRocmVhZHNbMF0pO1xyXG4gICAgfVxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCdjaGF0LW1vZGUnKTtcclxuICAgIH1cclxuICAgIHNjcm9sbFRvQm90dG9tKGZvcmNlID0gZmFsc2UsIGluc3RhbnQgPSBmYWxzZSk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9ICh0aGlzLl9lbD8ubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkucXVlcnlTZWxlY3RvcignI2NoYXRDb250ZW50RWxlbWVudCcpIGFzIGFueTtcclxuICAgICAgICBpZiAoZm9yY2UgfHwgKGNvbnRhaW5lciAmJiBjb250YWluZXIuc2Nyb2xsVG9wTWF4IC0gY29udGFpbmVyLnNjcm9sbFRvcCA8IDMwMCkpIHtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PlxyXG4gICAgICAgICAgICAgICAgY29udGFpbmVyPy5zY3JvbGxUbyh7XHJcbiAgICAgICAgICAgICAgICAgICAgdG9wOiBjb250YWluZXIuc2Nyb2xsSGVpZ2h0LFxyXG4gICAgICAgICAgICAgICAgICAgIGJlaGF2aW9yOiBpbnN0YW50ID8gJ2luc3RhbnQnIDogJ3Ntb290aCdcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgc2VuZE1lc3NhZ2UoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuX25ld01lc3NhZ2VUZXh0Py50cmltKCkubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIEJhcnNhQXBpLkJ3LlJ1bkJsTWV0aG9kQXN5bmMoe30pO1xyXG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VzPy5zZXQoW1xyXG4gICAgICAgICAgICAgICAgLi4uKHRoaXMubWVzc2FnZXMoKSBhcyBhbnlbXSksXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWQ6IE1hdGgucmFuZG9tKCkgKiAxMDAwLFxyXG4gICAgICAgICAgICAgICAgICAgIG93bmVyOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAxMjM0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhdmF0YXI6ICdodHRwczovL3BpY3N1bS5waG90b3MvMTAwP3dvcmtBcm91bmQ9JyArIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICfZhdmH2K/bjCDYstin2LHYuduMJ1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogdGhpcy5fbmV3TWVzc2FnZVRleHQsXHJcbiAgICAgICAgICAgICAgICAgICAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLFxyXG4gICAgICAgICAgICAgICAgICAgIGRlbGl2ZXJlZEF0OiBuZXcgRGF0ZSgpLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlYWRBdDogbmV3IERhdGUoKVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBdKTtcclxuICAgICAgICAgICAgdGhpcy5fbmV3TWVzc2FnZVRleHQgPSAnJztcclxuICAgICAgICAgICAgY29uc3QgaW5wdXRNZXNzYWdlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NoYXQtdGV4dGFyZWEnKTtcclxuICAgICAgICAgICAgaWYgKGlucHV0TWVzc2FnZSkge1xyXG4gICAgICAgICAgICAgICAgaW5wdXRNZXNzYWdlLmZvY3VzKCk7XHJcbiAgICAgICAgICAgICAgICBpbnB1dE1lc3NhZ2UuaW5uZXJUZXh0ID0gJyc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5zY3JvbGxUb0JvdHRvbSh0cnVlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBhZGRBdHRhY2htZW50KCk6IHZvaWQge31cclxuICAgIHNlbGVjdFRocmVhZCh0aHJlYWQ6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRUaHJlYWQuc2V0KHRocmVhZCk7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlcy5zZXQoXHJcbiAgICAgICAgICAgIEFycmF5KDQwKVxyXG4gICAgICAgICAgICAgICAgLmZpbGwobnVsbClcclxuICAgICAgICAgICAgICAgIC5tYXAoKHQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBvd25lclVzZXIgPSBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2VUeXBlID0gTWF0aC5yYW5kb20oKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBoYXNUZXh0ID0gTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbWdPcmlnaW5hbFdpZHRoID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMjAwKSArIDIwMDtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbWdPcmlnaW5hbEhlaWdodCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDIwMCkgKyAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IE1hdGgucmFuZG9tKCkgKiAxMDAwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvd25lcjoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IG93bmVyVXNlciA/IDEyMzQgOiA0MzIxLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXZhdGFyOiAnaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzEwMD93b3JrQXJvdW5kPScgKyBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDApLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogb3duZXJVc2VyID8gJ9mF2YfYr9uMINiy2KfYsdi524wnIDogdGhyZWFkLnRpdGxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVzc2FnZVR5cGUgPiAwLjUgJiYgaGFzVGV4dCkgfHwgbWVzc2FnZVR5cGUgPD0gMC41XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnNodWZmbGUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yYW5kb21UZXh0QXJyLnNsaWNlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hdGguZmxvb3IoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1lc3NhZ2VUeXBlID4gMC41ID8gMzAgOiB0aGlzLnJhbmRvbVRleHRBcnIubGVuZ3RoKSAqIE1hdGgucmFuZG9tKClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLmpvaW4oJyAnKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZVR5cGUgPiAwLjg1XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ9uM2qkg2LnYr9ivINmB2KfbjNmEJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHQ6IFsncG5nJywgJ2pwZycsICdwZGYnLCAnZG9jcycsICdjc3YnXVtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiA1KV0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpICogMTAwKSArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgJyArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsn2KjYp9uM2KonLCAn2qnbjNmE2YjYqNin24zYqicsICfZhdqv2KfYqNin24zYqiddW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDMpXVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpbWFnZTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VUeXBlIDw9IDAuODUgJiYgbWVzc2FnZVR5cGUgPiAwLjVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAn24zaqSDYudiv2K8g2LnaqdizJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGBodHRwczovL3BpY3N1bS5waG90b3MvJHtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAyMDAwKX0vJHtNYXRoLmZsb29yKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXRoLnJhbmRvbSgpICogMjAwMFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9P3dvcmtBcm91bmQ9JHtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDApfWAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxXaWR0aDogaW1nT3JpZ2luYWxXaWR0aCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5hbEhlaWdodDogaW1nT3JpZ2luYWxIZWlnaHRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlZEF0OiB0aGlzLnJhbmRvbURhdGUobmV3IERhdGUoJzIwMjQtMDMtMDMnKSwgbmV3IERhdGUoKSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGl2ZXJlZEF0OiBuZXcgRGF0ZSgpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZWFkQXQ6IG5ldyBEYXRlKClcclxuICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiBhLmNyZWF0ZWRBdC5nZXRUaW1lKCkgLSBiLmNyZWF0ZWRBdC5nZXRUaW1lKCkpXHJcbiAgICAgICAgKTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuc2Nyb2xsVG9Cb3R0b20odHJ1ZSwgdHJ1ZSkpO1xyXG4gICAgfVxyXG4gICAgcmFuZG9tRGF0ZShzdGFydDogRGF0ZSwgZW5kOiBEYXRlKTogRGF0ZSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHN0YXJ0LmdldFRpbWUoKSArIE1hdGgucmFuZG9tKCkgKiAoZW5kLmdldFRpbWUoKSAtIHN0YXJ0LmdldFRpbWUoKSkpO1xyXG4gICAgfVxyXG4gICAgc2h1ZmZsZShhcnJheTogc3RyaW5nW10pOiBzdHJpbmdbXSB7XHJcbiAgICAgICAgbGV0IGN1cnJlbnRJbmRleCA9IGFycmF5Lmxlbmd0aDtcclxuICAgICAgICBsZXQgcmFuZG9tSW5kZXggPSAxO1xyXG4gICAgICAgIHdoaWxlIChjdXJyZW50SW5kZXggPiAwKSB7XHJcbiAgICAgICAgICAgIHJhbmRvbUluZGV4ID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogY3VycmVudEluZGV4KTtcclxuICAgICAgICAgICAgY3VycmVudEluZGV4LS07XHJcbiAgICAgICAgICAgIFthcnJheVtjdXJyZW50SW5kZXhdLCBhcnJheVtyYW5kb21JbmRleF1dID0gW2FycmF5W3JhbmRvbUluZGV4XSwgYXJyYXlbY3VycmVudEluZGV4XV07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBhcnJheTtcclxuICAgIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgICBjbGFzcz1cInR3LWZsZXggdHctdy1mdWxsIHR3LWJnLWdyYWRpZW50LXRvLXIgdHctZnJvbS1bIzVkNmU3Zl0gdHctdG8tWyMzNTRhNWZdIGRhcms6dHctZnJvbS1bIzI1MzQ0M10gZGFyazp0dy10by1bIzEwMTYxY11cIlxyXG4gICAgZmlsbEVtcHR5U3BhY2VcclxuICAgIFtjbGFzcy50dy1oLXNjcmVlbl09XCIhc2ltcGxlXCJcclxuICAgIFtjbGFzcy50dy1qdXN0aWZ5LWNlbnRlcl09XCJzaW1wbGVcIlxyXG4+XHJcbiAgICBAaWYgKCFzaW1wbGUpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJ0dy1iZy1ibGFjay9bLjNdIDJ4bDp0dy1ncm93IHR3LXNocmluayB0dy1oLWZ1bGxcIj48L2Rpdj5cclxuICAgIH1cclxuICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cInR3LWgtZnVsbCB0dy1mbGV4IDJ4bDp0dy1jb250YWluZXIgbWF4LXctWzgwcmVtXSB0dy1zaHJpbmstMCB0dy1yZWxhdGl2ZVwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAndHctZ3JvdyAyeGw6dHctZ3Jvdy0wJzogIXNpbXBsZSxcclxuICAgICAgICAgICAgJ3R3LXctZnVsbCc6IHNpbXBsZVxyXG4gICAgICAgIH1cIlxyXG4gICAgPlxyXG4gICAgICAgIEBpZiAoIXNpbXBsZSkge1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0dy1ncm93LTAgdHctc2hyaW5rLTAgdHctdy1mdWxsIG1kOnR3LXctOTYgdHctcC0wIG1kOnR3LXAtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInR3LWZsZXggdHctZmxleC1jb2wgdHctdy1mdWxsIHR3LWgtZnVsbCB0dy1vdmVyZmxvdy1oaWRkZW4gdHctYm9yZGVyLWwgdHctYm9yZGVyLWwtZ3JheS0zMDAgbWQ6dHctcm91bmRlZC0yeGwgbWQ6dHctYm9yZGVyIG1kOnR3LWJvcmRlci1sLWdyYXktMzAwIG1kOnR3LWJvcmRlci1ncmF5LTMwMCBkYXJrOnR3LWJvcmRlci1sLWdyYXktNjAwIG1kOmRhcms6dHctYm9yZGVyLWwtZ3JheS02MDAgbWQ6ZGFyazp0dy1ib3JkZXItZ3JheS02MDBcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8YnN1LWJhcnNhLWNoYXQtdGhyZWFkcy1saXN0LXRvb2xiYXI+PC9ic3UtYmFyc2EtY2hhdC10aHJlYWRzLWxpc3QtdG9vbGJhcj5cclxuICAgICAgICAgICAgICAgIDxic3UtYmFyc2EtY2hhdC10aHJlYWRzLWxpc3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgQGZvciAodGhyZWFkIG9mIHRocmVhZHM7IHRyYWNrIHRocmVhZC5pZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIDxic3UtYmFyc2EtY2hhdC10aHJlYWQgW3RocmVhZF09XCJ0aHJlYWRcIiAoY2xpY2spPVwic2VsZWN0VGhyZWFkKHRocmVhZClcIj48L2JzdS1iYXJzYS1jaGF0LXRocmVhZD5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICA8L2JzdS1iYXJzYS1jaGF0LXRocmVhZHMtbGlzdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cInR3LWFic29sdXRlIHR3LXRvcC0wIHR3LWxlZnQtMCB0dy13LWZ1bGwgdHctaC1mdWxsIHR3LWJnLVt1cmwoJ2Fzc2V0cy9jaGF0LWJnLnBuZycpXSB0dy1iZy1maXhlZCB0dy1vcGFjaXR5LTI1XCJcclxuICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJ0dy1ncm93IHR3LXNocmluayB0dy1yZWxhdGl2ZVwiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICdtZDp0dy1weS02IG1kOnR3LXBsLTYgdHctaGlkZGVuIG1kOnR3LWZsZXgnOiAhc2ltcGxlLFxyXG4gICAgICAgICAgICAgICAgJ3R3LWZsZXgnOiBzaW1wbGVcclxuICAgICAgICAgICAgfVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgICBAaWYgKHNlbGVjdGVkVGhyZWFkKCkpIHtcclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgQGluQ29udGVudEFuaW1hdGlvblxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0dy1oLWZ1bGwgdHctdy1mdWxsIHR3LWZsZXggdHctZmxleC1jb2wgdHctcmVsYXRpdmUgbWQ6dHctYm9yZGVyLWdyYXktMzAwIG1kOmRhcms6dHctYm9yZGVyLWdyYXktNjAwIHR3LW92ZXJmbG93LWhpZGRlblwiXHJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgJ21kOnR3LWJvcmRlciBtZDp0dy1yb3VuZGVkLTJ4bCc6ICFzaW1wbGVcclxuICAgICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8YnN1LWJhcnNhLWNoYXQtY29udGVudC10b29sYmFyXHJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cInNlbGVjdGVkVGhyZWFkKCkudGl0bGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzdWJ0aXRsZV09XCIn2YXYrdmF2K8g2YXYrdmF2K/bjCdcIlxyXG4gICAgICAgICAgICAgICAgICAgIFthdmF0YXJdPVwic2VsZWN0ZWRUaHJlYWQoKS5hdmF0YXJcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzdGF0dXNdPVwic2VsZWN0ZWRUaHJlYWQoKS5zdGF0dXNcIlxyXG4gICAgICAgICAgICAgICAgPjwvYnN1LWJhcnNhLWNoYXQtY29udGVudC10b29sYmFyPlxyXG4gICAgICAgICAgICAgICAgPGJzdS1iYXJzYS1jaGF0LWNvbnRlbnQgaWQ9XCJjaGF0LWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIEBpZihsYXlvdXQ5NCQgfCBhc3luYzthcyBsYXlvdXQ5NCl7IEBpZiAoJ9mE24zYs9iqINqv2YHYqtqv2YgnIHwgY29udHJvbFVpOiBsYXlvdXQ5NDsgYXMgY29uZmlnVWkpIHtcclxuICAgICAgICAgICAgICAgICAgICA8YnN1LWxheW91dC1jb250cm9sIFtjb25maWddPVwiY29uZmlnVWlcIj48L2JzdS1sYXlvdXQtY29udHJvbD5cclxuICAgICAgICAgICAgICAgICAgICB9IH1cclxuICAgICAgICAgICAgICAgIDwvYnN1LWJhcnNhLWNoYXQtY29udGVudD5cclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInR3LXctZnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAndHctcmVsYXRpdmUnOiAhc2ltcGxlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAnMnhsOnR3LXJvdW5kZWQtdC14bCB0dy1ncm93LTAgdHctc2hyaW5rLTAnOiBzaW1wbGVcclxuICAgICAgICAgICAgICAgICAgICB9XCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICBAaWYgKHJlcGx5aW5nTWVzc2FnZSgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5PdXRSZXBseWluZ01lc3NhZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0dy13LWZ1bGwgdHctcHgtMiB0dy1weS0xIHR3LWJvcmRlci1yLTQgdHctYm9yZGVyLXItYnViYmxlLW1pbmUgdHctZmxleCB0dy1nYXAtMiB0ZS1pdGVtcy1jZW50ZXIgdHctYWJzb2x1dGUgdHctei0wIHR3LWJnLWRlZmF1bHQgdHctcmlnaHQtMCAtdHctdG9wLTE0XCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2x5cGg9XCJkZWNsaW5lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHctZ3Jvdy0wIHR3LXNocmluay0wXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZXBseWluZ01lc3NhZ2Uuc2V0KG51bGwpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHctZmxleCB0dy1mbGV4LWNvbCB0dy1ncm93IHR3LXNocmluayB0dy1vdmVyZmxvdy1oaWRkZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHctZm9udC1ib2xkXCI+e3sgcmVwbHlpbmdNZXNzYWdlKCkub3duZXIubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHctdHJ1bmNhdGVcIj57e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGx5aW5nTWVzc2FnZSgpLnRleHQgPz8gcmVwbHlpbmdNZXNzYWdlKCkuZmlsZT8ubmFtZSA/PyByZXBseWluZ01lc3NhZ2UoKS5pbWFnZT8ubmFtZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHctdy04IHR3LXNocmluay0wIHR3LWdyb3ctMFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHctdy1mdWxsIHR3LXAtMiB0dy1mbGV4IHR3LWdhcC0yIHR3LWJvcmRlci10IHR3LWJvcmRlci10LWdyYXktMzAwIGRhcms6dHctYm9yZGVyLXQtZ3JheS02MDAgdHctYmctZGVmYXVsdCB0dy1pdGVtcy1lbmQgdHctei0xMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmQtcG9wb3ZlciBwbGFjZW1lbnQ9XCJ0b3Atc3RhcnRcIiB0aXRsZT1cInRvcC1zdGFydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLXBvcG92ZXItY29udHJvbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdseXBoPVwiYXR0YWNobWVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiIXR3LXJvdW5kZWQtZnVsbCB0dy1zaHJpbmstMCB0dy1ncm93LTAgIXR3LXNpemUtMTAgIXR3LW1pbi1oLTEwICF0dy1tYXgtaC0xMCAhdHctbWluLXctMTAgIXR3LW1heC13LTEwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFkZEF0dGFjaG1lbnQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1wb3BvdmVyLWNvbnRyb2w+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtcG9wb3Zlci1ib2R5IG1pbldpZHRoPVwiMTByZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHctZmxleCB0dy1mbGV4LWNvbCB0dy1iZy1kZWZhdWx0IHR3LXctZnVsbFwiIGJvZHlDbGljaz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInR3LXB4LTQgdHctcHktMiB0dy1mbGV4IHR3LWdhcC0yIHR3LXctZnVsbCBob3Zlcjp0dy1iZy1iYXNlL1suMV0gdHctdHJhbnNpdGlvbi1hbGwgdHctY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtaWNvbiBjbGFzcz1cIiF0dy10ZXh0LWJhc2UgIXR3LXRleHQtM3hsXCIgZ2x5cGg9XCJjYW1lcmFcIj48L2ZkLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIiF0dy10ZXh0LWJhc2VcIj7Yp9ix2LPYp9mEINi52qnYszwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cInR3LWhpZGRlblwiIHR5cGU9XCJmaWxlXCIgaWQ9XCJpbWdcIiBuYW1lPVwiaW1nXCIgYWNjZXB0PVwiaW1hZ2UvKlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0dy1weC00IHR3LXB5LTIgdHctZmxleCB0dy1nYXAtMiB0dy13LWZ1bGwgaG92ZXI6dHctYmctYmFzZS9bLjFdIHR3LXRyYW5zaXRpb24tYWxsIHR3LWN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWljb24gY2xhc3M9XCIhdHctdGV4dC1iYXNlICF0dy10ZXh0LTN4bFwiIGdseXBoPVwiYWRkLWRvY3VtZW50XCI+PC9mZC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCIhdHctdGV4dC1iYXNlXCI+2KfYsdiz2KfZhCDZgdin24zZhDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cInR3LWhpZGRlblwiIHR5cGU9XCJmaWxlXCIgaWQ9XCJmaWxlXCIgbmFtZT1cImZpbGVcIiBhY2NlcHQ9XCJmaWxlLypcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1wb3BvdmVyLWJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtcG9wb3Zlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR3LWlubGluZS1mbGV4IHR3LXJlbGF0aXZlIHR3LWdyb3cgdHctc2hyaW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtZmVlZC1pbnB1dCBbYXR0ci5hcmlhLWxhYmVsXT1cIifZhdiq2YYg2b7bjNin2YUnXCIgY2xhc3M9XCJ0dy1mbGV4LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtYXZhdGFyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkRmVlZElucHV0QXZhdGFyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIifYsdin2YfYqNixJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbWFnZV09XCInJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9mZC1hdmF0YXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2hhdC10ZXh0YXJlYVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLWZvcm0tY29udHJvbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZEZlZWRJbnB1dFRleHRhcmVhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi2YXYqtmGINm+24zYp9mFXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZkRmVlZElucHV0VGV4dGFyZWFNYXhSb3dzXT1cIjJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW5wdXQpPVwib25UZXh0Q2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3RleHRhcmVhPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRGZWVkSW5wdXRCdXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInU2VuZCcgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ1NlbmQnIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbmRNZXNzYWdlKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtZmVlZC1pbnB1dD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInR3LWFic29sdXRlIHR3LXRvcC0xLzIgLXR3LXRyYW5zbGF0ZS15LTEvMiB0dy1sZWZ0LTEvMiAtdHctdHJhbnNsYXRlLXgtMS8yIHR3LWZsZXggdHctZmxleC1jb2wgdHctZ2FwLTggdHctaXRlbXMtY2VudGVyXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCJhc3NldHMvbm90LXNlbGVjdGVkLWNoYXQucG5nXCIgY2xhc3M9XCJ0dy13LTY0IHR3LW9wYWNpdHktMjVcIiAvPlxyXG4gICAgICAgICAgICAgICAgPCEtLSAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHctdGV4dC14bCB0dy1mb250LWJvbGQgdHctdGV4dC1ncmF5LTQwMCBkYXJrOnR3LXRleHQtZ3JheS01MDBcIj4tLT5cclxuICAgICAgICAgICAgICAgIDwhLS0gICAgICAgICAgICAgICAg2KjYsdin24wg2LTYsdmI2Lkg24zaqSDahtiqINix2Kcg2KfZhtiq2K7Yp9ioINqp2YbbjNivLS0+XHJcbiAgICAgICAgICAgICAgICA8IS0tICAgICAgICAgICAgPC9zcGFuPi0tPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICBAaWYgKCFzaW1wbGUpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJ0dy1iZy1ibGFjay9bLjNdIDJ4bDp0dy1ncm93IHR3LXNocmluayB0dy1oLWZ1bGxcIj48L2Rpdj5cclxuICAgIH1cclxuPC9kaXY+XHJcbiJdfQ==
|
|
242
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtY2hhdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi9iYXJzYS1jaGF0L2JhcnNhLWNoYXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtY2hhdC9iYXJzYS1jaGF0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWtCLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sT0FBTyxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUErQnJGLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxpQkFBaUI7SUE3QnpEOztRQThCYSxXQUFNLEdBQUcsSUFBSSxDQUFDO1FBRXZCLGtCQUFhLEdBQUcsK0RBQStELENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNGLG9CQUFlLEdBQUcsOERBQThELENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVGLGtCQUFhLEdBQUcsQ0FDWixtRkFBbUY7WUFDbkYsK0ZBQStGO1lBQy9GLDRGQUE0RjtZQUM1RiwyRkFBMkY7WUFDM0YsMkZBQTJGO1lBQzNGLHlGQUF5RjtZQUN6RiwwRkFBMEY7WUFDMUYsOEVBQThFLENBQ2pGLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7YUFDZCxJQUFJLENBQUMsSUFB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QUM7NkJBQ25GLENBQUM7NEJBQ0YsVUFBVSxDQUFDLFFBQVEsRUFBRTtnQ0FDakIsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQztnQ0FDckQsT0FBTyxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLENBQUM7NkJBQ2hGLENBQUM7eUJBQ0wsQ0FBQzt3QkFDRixPQUFPLENBQUMsc0JBQXNCLEVBQUU7NEJBQzVCLFVBQVUsQ0FBQyxRQUFRLEVBQUU7Z0NBQ2pCLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLENBQUM7Z0NBQ25ELE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDOzZCQUMvRSxDQUFDOzRCQUNGLFVBQVUsQ0FBQyxRQUFRLEVBQUU7Z0NBQ2pCLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDO2dDQUNqRCxPQUFPLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQzs2QkFDaEYsQ0FBQzt5QkFDTCxDQUFDO3FCQUNMLGNBQ1csS0FBSzs4QkFHUixNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgc2lnbmFsLCBXcml0YWJsZVNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgam1vbWVudCBmcm9tICdtb21lbnQtamFsYWFsaSc7XHJcbmltcG9ydCB7IGFuaW1hdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IEZvcm1CYXNlQ29tcG9uZW50LCBGb3JtUGFuZWxTZXJ2aWNlLCBCYXJzYUFwaSB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtYmFyc2EtY2hhdCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vYmFyc2EtY2hhdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybDogJy4vYmFyc2EtY2hhdC5jb21wb25lbnQuY3NzJyxcclxuICAgIHByb3ZpZGVyczogW0Zvcm1QYW5lbFNlcnZpY2VdLFxyXG4gICAgYW5pbWF0aW9uczogW1xyXG4gICAgICAgIHRyaWdnZXIoJ2luQ29udGVudEFuaW1hdGlvbicsIFtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xyXG4gICAgICAgICAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAwLCB0cmFuc2Zvcm06ICdzY2FsZSg1MCUsIDUwJSknIH0pLFxyXG4gICAgICAgICAgICAgICAgYW5pbWF0ZSgnMzAwbXMgZWFzZS1vdXQnLCBzdHlsZSh7IG9wYWNpdHk6IDEsIHRyYW5zZm9ybTogJ3NjYWxlKDEwMCUsIDEwMCUpJyB9KSlcclxuICAgICAgICAgICAgXSksXHJcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtcclxuICAgICAgICAgICAgICAgIHN0eWxlKHsgb3BhY2l0eTogMSwgdHJhbnNmb3JtOiAnc2NhbGUoMTAwJSwgMTAwJSknIH0pLFxyXG4gICAgICAgICAgICAgICAgYW5pbWF0ZSgnMzAwbXMgZWFzZS1pbicsIHN0eWxlKHsgb3BhY2l0eTogMCwgdHJhbnNmb3JtOiAnc2NhbGUoNTAlLCA1MCUpJyB9KSlcclxuICAgICAgICAgICAgXSlcclxuICAgICAgICBdKSxcclxuICAgICAgICB0cmlnZ2VyKCdpbk91dFJlcGx5aW5nTWVzc2FnZScsIFtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xyXG4gICAgICAgICAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAwLCB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKDUwJSknIH0pLFxyXG4gICAgICAgICAgICAgICAgYW5pbWF0ZSgnMzAwbXMgZWFzZS1vdXQnLCBzdHlsZSh7IG9wYWNpdHk6IDEsIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoMCknIH0pKVxyXG4gICAgICAgICAgICBdKSxcclxuICAgICAgICAgICAgdHJhbnNpdGlvbignOmxlYXZlJywgW1xyXG4gICAgICAgICAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAxLCB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKDApJyB9KSxcclxuICAgICAgICAgICAgICAgIGFuaW1hdGUoJzMwMG1zIGVhc2UtaW4nLCBzdHlsZSh7IG9wYWNpdHk6IDAsIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoNTAlKScgfSkpXHJcbiAgICAgICAgICAgIF0pXHJcbiAgICAgICAgXSlcclxuICAgIF0sXHJcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmFyc2FDaGF0Q29tcG9uZW50IGV4dGVuZHMgRm9ybUJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgICBASW5wdXQoKSBzaW1wbGUgPSB0cnVlO1xyXG5cclxuICAgIHJhbmRvbU5hbWVBcnIgPSAn2LnZhNuMINit2LPZhiDYrdiz24zZhiDYqtmC24wg2YbZgtuMINmF2K3ZhdivINmF2YfYr9uMINis2KfZiNuM2K8g2YXYrdmF2K/Ysdi22Kcg2qnYsduM2YUg2YfZiNi02YbaryDZvtuM2YXYp9mGJy5zcGxpdCgnICcpO1xyXG4gICAgcmFuZG9tRmFtaWx5QXJyID0gJ9qp2LHbjNmF24wg2K3Ys9uM2YbbjCDYstin2LHYuduMINiq2YLZiNuMINqp2KfYuNmF24wg2YLZhtio2LHbjCDZhtio2YjbjNin2YYg2KfZgdi02KfYsSDYsdin2K/ZhdmG2K8g2YXYrdmF2K/bjCcuc3BsaXQoJyAnKTtcclxuICAgIHJhbmRvbVRleHRBcnIgPSAoXHJcbiAgICAgICAgJ9mE2YjYsdmFINin24zZvtiz2YjZhSDZhdiq2YYg2LPYp9iu2Krar9uMINio2Kcg2KrZiNmE24zYryDYs9in2K/ar9uMINmG2KfZhdmB2YfZiNmFINin2LIg2LXZhti52Kog2obYp9m+2Iwg2Ygg2KjYpyDYp9iz2KrZgdin2K/ZhyDYp9iyINi32LHYp9it2KfZhicgK1xyXG4gICAgICAgICcg2q/Ysdin2YHbjNqpINin2LPYqtiMINqG2KfZvtqv2LHZh9inINmIINmF2KrZiNmGINio2YTaqdmHINix2YjYstmG2KfZhdmHINmIINmF2KzZhNmHINiv2LEg2LPYqtmI2YYg2Ygg2LPYt9ix2KLZhtqG2YbYp9mGINqp2Ycg2YTYp9iy2YUg2KfYs9iq2Iwg2Ygg2KjYsdin24wg2LTYsdin24zYtycgK1xyXG4gICAgICAgICcg2YHYudmE24wg2KraqdmG2YjZhNmI2pjbjCDZhdmI2LHYryDZhtuM2KfYstiMINmIINqp2KfYsdio2LHYr9mH2KfbjCDZhdiq2YbZiNi5INio2Kcg2YfYr9mBINio2YfYqNmI2K8g2KfYqNiy2KfYsdmH2KfbjCDaqdin2LHYqNix2K/bjCDZhduMINio2KfYtNiv2Iwg2qnYqtin2KjZh9in24wnICtcclxuICAgICAgICAnINiy24zYp9iv24wg2K/YsSDYtNi12Kog2Ygg2LPZhyDYr9ix2LXYryDar9iw2LTYqtmHINit2KfZhCDZiCDYotuM2YbYr9mH2Iwg2LTZhtin2K7YqiDZgdix2KfZiNin2YYg2KzYp9mF2LnZhyDZiCDZhdiq2K7Ytdi12KfZhiDYsdinINmF24wg2LfZhNio2K/YjCDYqtinINio2KcnICtcclxuICAgICAgICAnINmG2LHZhSDYp9mB2LLYp9ix2YfYpyDYtNmG2KfYrtiqINio24zYtNiq2LHbjCDYsdinINio2LHYp9uMINi32LHYp9it2KfZhiDYsdin24zYp9mG2Ycg2KfbjCDYudmE24wg2KfZhNiu2LXZiNi1INi32LHYp9it2KfZhiDYrtmE2KfZgtuM2Iwg2Ygg2YHYsdmH2YbaryDZvtuM2LTYsdmIJyArXHJcbiAgICAgICAgJyDYr9ixINiy2KjYp9mGINmB2KfYsdiz24wg2KfbjNis2KfYryDaqdix2K/YjCDYr9ixINin24zZhiDYtdmI2LHYqiDZhduMINiq2YjYp9mGINin2YXbjNivINiv2KfYtNiqINqp2Ycg2KrZhdin2YUg2Ygg2K/YtNmI2KfYsduMINmF2YjYrNmI2K8g2K/YsSDYp9ix2KfYptmHJyArXHJcbiAgICAgICAgJyDYsdin2Yfaqdin2LHZh9in2Iwg2Ygg2LTYsdin24zYtyDYs9iu2Kog2KrYp9uM2b4g2KjZhyDZvtin24zYp9mGINix2LPYryDZiCDYstmF2KfZhiDZhdmI2LHYryDZhtuM2KfYsiDYtNin2YXZhCDYrdix2YjZgdqG24zZhtuMINiv2LPYqtin2YjYsdiv2YfYp9uMINin2LXZhNuM2IwnICtcclxuICAgICAgICAnINmIINis2YjYp9io2q/ZiNuMINiz2YjYp9mE2KfYqiDZvtuM2YjYs9iq2Ycg2KfZh9mEINiv2YbbjNin24wg2YXZiNis2YjYryDYt9ix2KfYrduMINin2LPYp9iz2Kcg2YXZiNix2K8g2KfYs9iq2YHYp9iv2Ycg2YLYsdin2LEg2q/bjNix2K8uJ1xyXG4gICAgKS5zcGxpdCgnICcpO1xyXG4gICAgdGhyZWFkcyA9IEFycmF5KDIwKVxyXG4gICAgICAgIC5maWxsKG51bGwpXHJcbiAgICAgICAgLm1hcCgodCkgPT4gKHtcclxuICAgICAgICAgICAgaWQ6IE1hdGgucmFuZG9tKCkgKiAxMDAwLFxyXG4gICAgICAgICAgICB0aXRsZTpcclxuICAgICAgICAgICAgICAgIHRoaXMucmFuZG9tTmFtZUFycltNYXRoLmZsb29yKHRoaXMucmFuZG9tTmFtZUFyci5sZW5ndGggKiBNYXRoLnJhbmRvbSgpKV0gK1xyXG4gICAgICAgICAgICAgICAgJyAnICtcclxuICAgICAgICAgICAgICAgIHRoaXMucmFuZG9tRmFtaWx5QXJyW01hdGguZmxvb3IodGhpcy5yYW5kb21GYW1pbHlBcnIubGVuZ3RoICogTWF0aC5yYW5kb20oKSldLFxyXG4gICAgICAgICAgICBhdmF0YXI6ICdodHRwczovL3BpY3N1bS5waG90b3MvMTAwP3dvcmtBcm91bmQ9JyArIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMCksXHJcbiAgICAgICAgICAgIHN0YXR1czogTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogNCksXHJcbiAgICAgICAgICAgIGxhc3RBY3Rpdml0eTogdGhpcy5yYW5kb21EYXRlKG5ldyBEYXRlKCcyMDI0LTAzLTAzJyksIG5ldyBEYXRlKCkpLFxyXG4gICAgICAgICAgICB1bnJlYWRDb3VudDogTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpKSA/IDEgKyBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAyMCkgOiAwLFxyXG4gICAgICAgICAgICBwaW5uZWQ6ICEhTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpKSxcclxuICAgICAgICAgICAgbXV0ZWQ6ICEhTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpKSxcclxuICAgICAgICAgICAgbGFzdE1lc3NhZ2U6IHtcclxuICAgICAgICAgICAgICAgIGlkOiBNYXRoLnJhbmRvbSgpICogMTAwMCxcclxuICAgICAgICAgICAgICAgIG93bmVyOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWQ6IDEyMzQsXHJcbiAgICAgICAgICAgICAgICAgICAgYXZhdGFyOiAnaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzEwMD93b3JrQXJvdW5kPScgKyBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDApLFxyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6ICfZhdmH2K/bjCDYstin2LHYuduMJ1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHRleHQ6IHRoaXMuc2h1ZmZsZShcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJhbmRvbVRleHRBcnIuc2xpY2UoMCwgMSArIE1hdGguZmxvb3IodGhpcy5yYW5kb21UZXh0QXJyLmxlbmd0aCAqIE1hdGgucmFuZG9tKCkpKVxyXG4gICAgICAgICAgICAgICAgKS5qb2luKCcgJyksXHJcbiAgICAgICAgICAgICAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKClcclxuICAgICAgICAgICAgICAgICAgICAudG9UaW1lU3RyaW5nKClcclxuICAgICAgICAgICAgICAgICAgICAuc3BsaXQoJyAnKVswXVxyXG4gICAgICAgICAgICAgICAgICAgIC5zcGxpdCgnOicpXHJcbiAgICAgICAgICAgICAgICAgICAgLnNsaWNlKDAsIDIpXHJcbiAgICAgICAgICAgICAgICAgICAgLm1hcCgocykgPT4gcy5wYWRTdGFydCgyLCAnMCcpKVxyXG4gICAgICAgICAgICAgICAgICAgIC5qb2luKCc6JyksXHJcbiAgICAgICAgICAgICAgICBkZWxpdmVyZWRBdDogbmV3IERhdGUoKVxyXG4gICAgICAgICAgICAgICAgICAgIC50b1RpbWVTdHJpbmcoKVxyXG4gICAgICAgICAgICAgICAgICAgIC5zcGxpdCgnICcpWzBdXHJcbiAgICAgICAgICAgICAgICAgICAgLnNwbGl0KCc6JylcclxuICAgICAgICAgICAgICAgICAgICAuc2xpY2UoMCwgMilcclxuICAgICAgICAgICAgICAgICAgICAubWFwKChzKSA9PiBzLnBhZFN0YXJ0KDIsICcwJykpXHJcbiAgICAgICAgICAgICAgICAgICAgLmpvaW4oJzonKSxcclxuICAgICAgICAgICAgICAgIHJlYWRBdDogbmV3IERhdGUoKVxyXG4gICAgICAgICAgICAgICAgICAgIC50b1RpbWVTdHJpbmcoKVxyXG4gICAgICAgICAgICAgICAgICAgIC5zcGxpdCgnICcpWzBdXHJcbiAgICAgICAgICAgICAgICAgICAgLnNwbGl0KCc6JylcclxuICAgICAgICAgICAgICAgICAgICAuc2xpY2UoMCwgMilcclxuICAgICAgICAgICAgICAgICAgICAubWFwKChzKSA9PiBzLnBhZFN0YXJ0KDIsICcwJykpXHJcbiAgICAgICAgICAgICAgICAgICAgLmpvaW4oJzonKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSkpO1xyXG4gICAgbW9tZW50ID0gam1vbWVudDtcclxuICAgIHNlbGVjdGVkVGhyZWFkOiBXcml0YWJsZVNpZ25hbDxhbnkgfCBudWxsPiA9IHNpZ25hbChudWxsKTtcclxuICAgIG1lc3NhZ2VzOiBXcml0YWJsZVNpZ25hbDxhbnlbXSB8IG51bGw+ID0gc2lnbmFsKG51bGwpO1xyXG4gICAgcmVwbHlpbmdNZXNzYWdlOiBXcml0YWJsZVNpZ25hbDxhbnkgfCBudWxsPiA9IHNpZ25hbChudWxsKTtcclxuICAgIF9uZXdNZXNzYWdlVGV4dCA9ICcnO1xyXG4gICAgb25UZXh0Q2hhbmdlKCRldmVudCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX25ld01lc3NhZ2VUZXh0ID0gJGV2ZW50LnRhcmdldC52YWx1ZTtcclxuICAgIH1cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCdjaGF0LW1vZGUnKTtcclxuICAgICAgICB0aGlzLnNlbGVjdFRocmVhZCh0aGlzLnRocmVhZHNbMF0pO1xyXG4gICAgfVxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCdjaGF0LW1vZGUnKTtcclxuICAgIH1cclxuICAgIHNjcm9sbFRvQm90dG9tKGZvcmNlID0gZmFsc2UsIGluc3RhbnQgPSBmYWxzZSk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9ICh0aGlzLl9lbD8ubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkucXVlcnlTZWxlY3RvcignI2NoYXRDb250ZW50RWxlbWVudCcpIGFzIGFueTtcclxuICAgICAgICBpZiAoZm9yY2UgfHwgKGNvbnRhaW5lciAmJiBjb250YWluZXIuc2Nyb2xsVG9wTWF4IC0gY29udGFpbmVyLnNjcm9sbFRvcCA8IDMwMCkpIHtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PlxyXG4gICAgICAgICAgICAgICAgY29udGFpbmVyPy5zY3JvbGxUbyh7XHJcbiAgICAgICAgICAgICAgICAgICAgdG9wOiBjb250YWluZXIuc2Nyb2xsSGVpZ2h0LFxyXG4gICAgICAgICAgICAgICAgICAgIGJlaGF2aW9yOiBpbnN0YW50ID8gJ2luc3RhbnQnIDogJ3Ntb290aCdcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgc2VuZE1lc3NhZ2UoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuX25ld01lc3NhZ2VUZXh0Py50cmltKCkubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIEJhcnNhQXBpLkJ3LlJ1bkJsTWV0aG9kQXN5bmMoe30pO1xyXG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VzPy5zZXQoW1xyXG4gICAgICAgICAgICAgICAgLi4uKHRoaXMubWVzc2FnZXMoKSBhcyBhbnlbXSksXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWQ6IE1hdGgucmFuZG9tKCkgKiAxMDAwLFxyXG4gICAgICAgICAgICAgICAgICAgIG93bmVyOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAxMjM0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhdmF0YXI6ICdodHRwczovL3BpY3N1bS5waG90b3MvMTAwP3dvcmtBcm91bmQ9JyArIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICfZhdmH2K/bjCDYstin2LHYuduMJ1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogdGhpcy5fbmV3TWVzc2FnZVRleHQsXHJcbiAgICAgICAgICAgICAgICAgICAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLFxyXG4gICAgICAgICAgICAgICAgICAgIGRlbGl2ZXJlZEF0OiBuZXcgRGF0ZSgpLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlYWRBdDogbmV3IERhdGUoKVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBdKTtcclxuICAgICAgICAgICAgdGhpcy5fbmV3TWVzc2FnZVRleHQgPSAnJztcclxuICAgICAgICAgICAgY29uc3QgaW5wdXRNZXNzYWdlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NoYXQtdGV4dGFyZWEnKTtcclxuICAgICAgICAgICAgaWYgKGlucHV0TWVzc2FnZSkge1xyXG4gICAgICAgICAgICAgICAgaW5wdXRNZXNzYWdlLmZvY3VzKCk7XHJcbiAgICAgICAgICAgICAgICBpbnB1dE1lc3NhZ2UuaW5uZXJUZXh0ID0gJyc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5zY3JvbGxUb0JvdHRvbSh0cnVlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBhZGRBdHRhY2htZW50KCk6IHZvaWQge31cclxuICAgIHNlbGVjdFRocmVhZCh0aHJlYWQ6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRUaHJlYWQuc2V0KHRocmVhZCk7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlcy5zZXQoXHJcbiAgICAgICAgICAgIEFycmF5KDQwKVxyXG4gICAgICAgICAgICAgICAgLmZpbGwobnVsbClcclxuICAgICAgICAgICAgICAgIC5tYXAoKHQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBvd25lclVzZXIgPSBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2VUeXBlID0gTWF0aC5yYW5kb20oKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBoYXNUZXh0ID0gTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbWdPcmlnaW5hbFdpZHRoID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMjAwKSArIDIwMDtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbWdPcmlnaW5hbEhlaWdodCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDIwMCkgKyAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IE1hdGgucmFuZG9tKCkgKiAxMDAwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvd25lcjoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IG93bmVyVXNlciA/IDEyMzQgOiA0MzIxLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXZhdGFyOiAnaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzEwMD93b3JrQXJvdW5kPScgKyBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDApLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogb3duZXJVc2VyID8gJ9mF2YfYr9uMINiy2KfYsdi524wnIDogdGhyZWFkLnRpdGxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVzc2FnZVR5cGUgPiAwLjUgJiYgaGFzVGV4dCkgfHwgbWVzc2FnZVR5cGUgPD0gMC41XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnNodWZmbGUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yYW5kb21UZXh0QXJyLnNsaWNlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hdGguZmxvb3IoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1lc3NhZ2VUeXBlID4gMC41ID8gMzAgOiB0aGlzLnJhbmRvbVRleHRBcnIubGVuZ3RoKSAqIE1hdGgucmFuZG9tKClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLmpvaW4oJyAnKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZVR5cGUgPiAwLjg1XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ9uM2qkg2LnYr9ivINmB2KfbjNmEJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHQ6IFsncG5nJywgJ2pwZycsICdwZGYnLCAnZG9jcycsICdjc3YnXVtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiA1KV0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpICogMTAwKSArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgJyArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsn2KjYp9uM2KonLCAn2qnbjNmE2YjYqNin24zYqicsICfZhdqv2KfYqNin24zYqiddW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDMpXVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpbWFnZTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VUeXBlIDw9IDAuODUgJiYgbWVzc2FnZVR5cGUgPiAwLjVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAn24zaqSDYudiv2K8g2LnaqdizJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGBodHRwczovL3BpY3N1bS5waG90b3MvJHtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAyMDAwKX0vJHtNYXRoLmZsb29yKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXRoLnJhbmRvbSgpICogMjAwMFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9P3dvcmtBcm91bmQ9JHtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDApfWAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxXaWR0aDogaW1nT3JpZ2luYWxXaWR0aCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5hbEhlaWdodDogaW1nT3JpZ2luYWxIZWlnaHRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlZEF0OiB0aGlzLnJhbmRvbURhdGUobmV3IERhdGUoJzIwMjQtMDMtMDMnKSwgbmV3IERhdGUoKSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGl2ZXJlZEF0OiBuZXcgRGF0ZSgpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZWFkQXQ6IG5ldyBEYXRlKClcclxuICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiBhLmNyZWF0ZWRBdC5nZXRUaW1lKCkgLSBiLmNyZWF0ZWRBdC5nZXRUaW1lKCkpXHJcbiAgICAgICAgKTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuc2Nyb2xsVG9Cb3R0b20odHJ1ZSwgdHJ1ZSkpO1xyXG4gICAgfVxyXG4gICAgcmFuZG9tRGF0ZShzdGFydDogRGF0ZSwgZW5kOiBEYXRlKTogRGF0ZSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHN0YXJ0LmdldFRpbWUoKSArIE1hdGgucmFuZG9tKCkgKiAoZW5kLmdldFRpbWUoKSAtIHN0YXJ0LmdldFRpbWUoKSkpO1xyXG4gICAgfVxyXG4gICAgc2h1ZmZsZShhcnJheTogc3RyaW5nW10pOiBzdHJpbmdbXSB7XHJcbiAgICAgICAgbGV0IGN1cnJlbnRJbmRleCA9IGFycmF5Lmxlbmd0aDtcclxuICAgICAgICBsZXQgcmFuZG9tSW5kZXggPSAxO1xyXG4gICAgICAgIHdoaWxlIChjdXJyZW50SW5kZXggPiAwKSB7XHJcbiAgICAgICAgICAgIHJhbmRvbUluZGV4ID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogY3VycmVudEluZGV4KTtcclxuICAgICAgICAgICAgY3VycmVudEluZGV4LS07XHJcbiAgICAgICAgICAgIFthcnJheVtjdXJyZW50SW5kZXhdLCBhcnJheVtyYW5kb21JbmRleF1dID0gW2FycmF5W3JhbmRvbUluZGV4XSwgYXJyYXlbY3VycmVudEluZGV4XV07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBhcnJheTtcclxuICAgIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgICBjbGFzcz1cInR3LWZsZXggdHctdy1mdWxsIHR3LWJnLWdyYWRpZW50LXRvLXIgdHctZnJvbS1bIzVkNmU3Zl0gdHctdG8tWyMzNTRhNWZdIGRhcms6dHctZnJvbS1bIzI1MzQ0M10gZGFyazp0dy10by1bIzEwMTYxY11cIlxyXG4gICAgZmlsbEVtcHR5U3BhY2VcclxuICAgIFtjbGFzcy50dy1oLXNjcmVlbl09XCIhc2ltcGxlXCJcclxuICAgIFtjbGFzcy50dy1qdXN0aWZ5LWNlbnRlcl09XCJzaW1wbGVcIlxyXG4+XHJcbiAgICBAaWYgKCFzaW1wbGUpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJ0dy1iZy1ibGFjay9bLjNdIDJ4bDp0dy1ncm93IHR3LXNocmluayB0dy1oLWZ1bGxcIj48L2Rpdj5cclxuICAgIH1cclxuICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cInR3LWgtZnVsbCB0dy1mbGV4IDJ4bDp0dy1jb250YWluZXIgbWF4LXctWzgwcmVtXSB0dy1zaHJpbmstMCB0dy1yZWxhdGl2ZVwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAndHctZ3JvdyAyeGw6dHctZ3Jvdy0wJzogIXNpbXBsZSxcclxuICAgICAgICAgICAgJ3R3LXctZnVsbCc6IHNpbXBsZVxyXG4gICAgICAgIH1cIlxyXG4gICAgPlxyXG4gICAgICAgIEBpZiAoIXNpbXBsZSkge1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0dy1ncm93LTAgdHctc2hyaW5rLTAgdHctdy1mdWxsIG1kOnR3LXctOTYgdHctcC0wIG1kOnR3LXAtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInR3LWZsZXggdHctZmxleC1jb2wgdHctdy1mdWxsIHR3LWgtZnVsbCB0dy1vdmVyZmxvdy1oaWRkZW4gdHctYm9yZGVyLWwgdHctYm9yZGVyLWwtZ3JheS0zMDAgbWQ6dHctcm91bmRlZC0yeGwgbWQ6dHctYm9yZGVyIG1kOnR3LWJvcmRlci1sLWdyYXktMzAwIG1kOnR3LWJvcmRlci1ncmF5LTMwMCBkYXJrOnR3LWJvcmRlci1sLWdyYXktNjAwIG1kOmRhcms6dHctYm9yZGVyLWwtZ3JheS02MDAgbWQ6ZGFyazp0dy1ib3JkZXItZ3JheS02MDBcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8YnN1LWJhcnNhLWNoYXQtdGhyZWFkcy1saXN0LXRvb2xiYXI+PC9ic3UtYmFyc2EtY2hhdC10aHJlYWRzLWxpc3QtdG9vbGJhcj5cclxuICAgICAgICAgICAgICAgIDxic3UtYmFyc2EtY2hhdC10aHJlYWRzLWxpc3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgQGZvciAodGhyZWFkIG9mIHRocmVhZHM7IHRyYWNrIHRocmVhZC5pZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIDxic3UtYmFyc2EtY2hhdC10aHJlYWQgW3RocmVhZF09XCJ0aHJlYWRcIiAoY2xpY2spPVwic2VsZWN0VGhyZWFkKHRocmVhZClcIj48L2JzdS1iYXJzYS1jaGF0LXRocmVhZD5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICA8L2JzdS1iYXJzYS1jaGF0LXRocmVhZHMtbGlzdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cInR3LWFic29sdXRlIHR3LXRvcC0wIHR3LWxlZnQtMCB0dy13LWZ1bGwgdHctaC1mdWxsIHR3LWJnLVt1cmwoJ2Fzc2V0cy9jaGF0LWJnLnBuZycpXSB0dy1iZy1maXhlZCB0dy1vcGFjaXR5LTI1XCJcclxuICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJ0dy1ncm93IHR3LXNocmluayB0dy1yZWxhdGl2ZVwiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICdtZDp0dy1weS02IG1kOnR3LXBsLTYgdHctaGlkZGVuIG1kOnR3LWZsZXgnOiAhc2ltcGxlLFxyXG4gICAgICAgICAgICAgICAgJ3R3LWZsZXgnOiBzaW1wbGVcclxuICAgICAgICAgICAgfVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgICBAaWYgKHNlbGVjdGVkVGhyZWFkKCkpIHtcclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgQGluQ29udGVudEFuaW1hdGlvblxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0dy1oLWZ1bGwgdHctdy1mdWxsIHR3LWZsZXggdHctZmxleC1jb2wgdHctcmVsYXRpdmUgbWQ6dHctYm9yZGVyLWdyYXktMzAwIG1kOmRhcms6dHctYm9yZGVyLWdyYXktNjAwIHR3LW92ZXJmbG93LWhpZGRlblwiXHJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgJ21kOnR3LWJvcmRlciBtZDp0dy1yb3VuZGVkLTJ4bCc6ICFzaW1wbGVcclxuICAgICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8YnN1LWJhcnNhLWNoYXQtY29udGVudC10b29sYmFyXHJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cInNlbGVjdGVkVGhyZWFkKCkudGl0bGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzdWJ0aXRsZV09XCIn2YXYrdmF2K8g2YXYrdmF2K/bjCdcIlxyXG4gICAgICAgICAgICAgICAgICAgIFthdmF0YXJdPVwic2VsZWN0ZWRUaHJlYWQoKS5hdmF0YXJcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzdGF0dXNdPVwic2VsZWN0ZWRUaHJlYWQoKS5zdGF0dXNcIlxyXG4gICAgICAgICAgICAgICAgPjwvYnN1LWJhcnNhLWNoYXQtY29udGVudC10b29sYmFyPlxyXG4gICAgICAgICAgICAgICAgPGJzdS1iYXJzYS1jaGF0LWNvbnRlbnQgaWQ9XCJjaGF0LWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIEBpZihsYXlvdXQ5NCQgfCBhc3luYzthcyBsYXlvdXQ5NCl7IEBpZiAoJ9mE24zYs9iqINqv2YHYqtqv2YgnIHwgY29udHJvbFVpOiBsYXlvdXQ5NDsgYXMgY29uZmlnVWkpIHtcclxuICAgICAgICAgICAgICAgICAgICA8YnN1LWxheW91dC1jb250cm9sIFtjb25maWddPVwiY29uZmlnVWlcIj48L2JzdS1sYXlvdXQtY29udHJvbD5cclxuICAgICAgICAgICAgICAgICAgICB9IH1cclxuICAgICAgICAgICAgICAgIDwvYnN1LWJhcnNhLWNoYXQtY29udGVudD5cclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInR3LXctZnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAndHctcmVsYXRpdmUnOiAhc2ltcGxlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAnMnhsOnR3LXJvdW5kZWQtdC14bCB0dy1ncm93LTAgdHctc2hyaW5rLTAnOiBzaW1wbGVcclxuICAgICAgICAgICAgICAgICAgICB9XCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICBAaWYgKHJlcGx5aW5nTWVzc2FnZSgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5PdXRSZXBseWluZ01lc3NhZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0dy13LWZ1bGwgdHctcHgtMiB0dy1weS0xIHR3LWJvcmRlci1yLTQgdHctYm9yZGVyLXItYnViYmxlLW1pbmUgdHctZmxleCB0dy1nYXAtMiB0ZS1pdGVtcy1jZW50ZXIgdHctYWJzb2x1dGUgdHctei0wIHR3LWJnLWRlZmF1bHQgdHctcmlnaHQtMCAtdHctdG9wLTE0XCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2x5cGg9XCJkZWNsaW5lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHctZ3Jvdy0wIHR3LXNocmluay0wXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZXBseWluZ01lc3NhZ2Uuc2V0KG51bGwpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHctZmxleCB0dy1mbGV4LWNvbCB0dy1ncm93IHR3LXNocmluayB0dy1vdmVyZmxvdy1oaWRkZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHctZm9udC1ib2xkXCI+e3sgcmVwbHlpbmdNZXNzYWdlKCkub3duZXIubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHctdHJ1bmNhdGVcIj57e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGx5aW5nTWVzc2FnZSgpLnRleHQgPz8gcmVwbHlpbmdNZXNzYWdlKCkuZmlsZT8ubmFtZSA/PyByZXBseWluZ01lc3NhZ2UoKS5pbWFnZT8ubmFtZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHctdy04IHR3LXNocmluay0wIHR3LWdyb3ctMFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHctdy1mdWxsIHR3LXAtMiB0dy1mbGV4IHR3LWdhcC0yIHR3LWJvcmRlci10IHR3LWJvcmRlci10LWdyYXktMzAwIGRhcms6dHctYm9yZGVyLXQtZ3JheS02MDAgdHctYmctZGVmYXVsdCB0dy1pdGVtcy1lbmQgdHctei0xMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmQtcG9wb3ZlciBwbGFjZW1lbnQ9XCJ0b3Atc3RhcnRcIiB0aXRsZT1cInRvcC1zdGFydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLXBvcG92ZXItY29udHJvbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdseXBoPVwiYXR0YWNobWVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiIXR3LXJvdW5kZWQtZnVsbCB0dy1zaHJpbmstMCB0dy1ncm93LTAgIXR3LXNpemUtMTAgIXR3LW1pbi1oLTEwICF0dy1tYXgtaC0xMCAhdHctbWluLXctMTAgIXR3LW1heC13LTEwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFkZEF0dGFjaG1lbnQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1wb3BvdmVyLWNvbnRyb2w+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtcG9wb3Zlci1ib2R5IG1pbldpZHRoPVwiMTByZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHctZmxleCB0dy1mbGV4LWNvbCB0dy1iZy1kZWZhdWx0IHR3LXctZnVsbFwiIGJvZHlDbGljaz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInR3LXB4LTQgdHctcHktMiB0dy1mbGV4IHR3LWdhcC0yIHR3LXctZnVsbCBob3Zlcjp0dy1iZy1iYXNlL1suMV0gdHctdHJhbnNpdGlvbi1hbGwgdHctY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtaWNvbiBjbGFzcz1cIiF0dy10ZXh0LWJhc2UgIXR3LXRleHQtM3hsXCIgZ2x5cGg9XCJjYW1lcmFcIj48L2ZkLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIiF0dy10ZXh0LWJhc2VcIj7Yp9ix2LPYp9mEINi52qnYszwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cInR3LWhpZGRlblwiIHR5cGU9XCJmaWxlXCIgaWQ9XCJpbWdcIiBuYW1lPVwiaW1nXCIgYWNjZXB0PVwiaW1hZ2UvKlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0dy1weC00IHR3LXB5LTIgdHctZmxleCB0dy1nYXAtMiB0dy13LWZ1bGwgaG92ZXI6dHctYmctYmFzZS9bLjFdIHR3LXRyYW5zaXRpb24tYWxsIHR3LWN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWljb24gY2xhc3M9XCIhdHctdGV4dC1iYXNlICF0dy10ZXh0LTN4bFwiIGdseXBoPVwiYWRkLWRvY3VtZW50XCI+PC9mZC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCIhdHctdGV4dC1iYXNlXCI+2KfYsdiz2KfZhCDZgdin24zZhDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cInR3LWhpZGRlblwiIHR5cGU9XCJmaWxlXCIgaWQ9XCJmaWxlXCIgbmFtZT1cImZpbGVcIiBhY2NlcHQ9XCJmaWxlLypcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1wb3BvdmVyLWJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtcG9wb3Zlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR3LWlubGluZS1mbGV4IHR3LXJlbGF0aXZlIHR3LWdyb3cgdHctc2hyaW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtZmVlZC1pbnB1dCBbYXR0ci5hcmlhLWxhYmVsXT1cIifZhdiq2YYg2b7bjNin2YUnXCIgY2xhc3M9XCJ0dy1mbGV4LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtYXZhdGFyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkRmVlZElucHV0QXZhdGFyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIifYsdin2YfYqNixJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbWFnZV09XCInJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9mZC1hdmF0YXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2hhdC10ZXh0YXJlYVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLWZvcm0tY29udHJvbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZEZlZWRJbnB1dFRleHRhcmVhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi2YXYqtmGINm+24zYp9mFXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZkRmVlZElucHV0VGV4dGFyZWFNYXhSb3dzXT1cIjJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW5wdXQpPVwib25UZXh0Q2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3RleHRhcmVhPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRGZWVkSW5wdXRCdXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInU2VuZCcgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ1NlbmQnIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbmRNZXNzYWdlKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtZmVlZC1pbnB1dD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInR3LWFic29sdXRlIHR3LXRvcC0xLzIgLXR3LXRyYW5zbGF0ZS15LTEvMiB0dy1sZWZ0LTEvMiAtdHctdHJhbnNsYXRlLXgtMS8yIHR3LWZsZXggdHctZmxleC1jb2wgdHctZ2FwLTggdHctaXRlbXMtY2VudGVyXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCJhc3NldHMvbm90LXNlbGVjdGVkLWNoYXQucG5nXCIgY2xhc3M9XCJ0dy13LTY0IHR3LW9wYWNpdHktMjVcIiAvPlxyXG4gICAgICAgICAgICAgICAgPCEtLSAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHctdGV4dC14bCB0dy1mb250LWJvbGQgdHctdGV4dC1ncmF5LTQwMCBkYXJrOnR3LXRleHQtZ3JheS01MDBcIj4tLT5cclxuICAgICAgICAgICAgICAgIDwhLS0gICAgICAgICAgICAgICAg2KjYsdin24wg2LTYsdmI2Lkg24zaqSDahtiqINix2Kcg2KfZhtiq2K7Yp9ioINqp2YbbjNivLS0+XHJcbiAgICAgICAgICAgICAgICA8IS0tICAgICAgICAgICAgPC9zcGFuPi0tPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICBAaWYgKCFzaW1wbGUpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJ0dy1iZy1ibGFjay9bLjNdIDJ4bDp0dy1ncm93IHR3LXNocmluayB0dy1oLWZ1bGxcIj48L2Rpdj5cclxuICAgIH1cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ElementRef, HostBinding, inject, ViewChild } from '@angular/core';
|
|
2
|
+
import { FindLayoutSettingFromLayout94, LayoutService, LayoutPanelBaseComponent, LayoutMainContentService } from 'barsa-novin-ray-core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "barsa-novin-ray-core";
|
|
5
|
+
import * as i2 from "@fundamental-ngx/core/layout-panel";
|
|
6
|
+
import * as i3 from "../ly-layout-panel/ly-layout-panel.component";
|
|
7
|
+
export class BarsaFormLayoutPanelComponent extends LayoutPanelBaseComponent {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this._isSmallDevice = false;
|
|
11
|
+
this.afterViewInit = false;
|
|
12
|
+
this._layoutMainContentService = inject(LayoutMainContentService);
|
|
13
|
+
}
|
|
14
|
+
ngOnInit() {
|
|
15
|
+
super.ngOnInit();
|
|
16
|
+
this.headerContentLayout = FindLayoutSettingFromLayout94(this.config, this.parameters.HeaderContent);
|
|
17
|
+
this.mainContentLayout = FindLayoutSettingFromLayout94(this.config, this.parameters.MainContent);
|
|
18
|
+
this.footerContentLayout = FindLayoutSettingFromLayout94(this.config, this.parameters.FooterContent);
|
|
19
|
+
this._background = this.parameters.BgColor || 'var(--sapBaseColor)';
|
|
20
|
+
this.portalService.windowResize$.subscribe((c) => {
|
|
21
|
+
this._refreshMainContehtHeight();
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
ngAfterViewInit() {
|
|
25
|
+
super.ngAfterViewInit();
|
|
26
|
+
this._refreshMainContehtHeight();
|
|
27
|
+
this.afterViewInit = true;
|
|
28
|
+
}
|
|
29
|
+
onFillEmptyHeightChanged() {
|
|
30
|
+
this._refreshMainContehtHeight();
|
|
31
|
+
}
|
|
32
|
+
_refreshMainContehtHeight() {
|
|
33
|
+
const x = +window.getComputedStyle(this._mainEl.nativeElement, null).paddingTop.replace('px', '');
|
|
34
|
+
this._layoutMainContentService.setMainContentHeight(this._mainEl.nativeElement.offsetHeight - x * 2);
|
|
35
|
+
}
|
|
36
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaFormLayoutPanelComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
37
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BarsaFormLayoutPanelComponent, selector: "bsu-barsa-form-layout-panel", host: { properties: { "class.smallDevice": "this._isSmallDevice", "style.background": "this._background" } }, providers: [LayoutService, LayoutMainContentService], viewQueries: [{ propertyName: "_headerEl", first: true, predicate: ["headerEl"], descendants: true, read: ElementRef }, { propertyName: "_footerEl", first: true, predicate: ["footerEl"], descendants: true, read: ElementRef }, { propertyName: "_mainEl", first: true, predicate: ["mainEl"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<fd-layout-panel fillEmptySpace [decrement]=\"'40px'\" (heightChanged)=\"onFillEmptyHeightChanged()\">\r\n <fd-layout-panel-header #headerEl>\r\n @if(headerContentLayout){\r\n <fd-layout-panel-head>\r\n <bsu-ly-layout-panel\r\n class=\"extra-layout-panel\"\r\n style=\"width: 100%\"\r\n [config]=\"headerContentLayout\"\r\n [hideTitle]=\"true\"\r\n ></bsu-ly-layout-panel>\r\n </fd-layout-panel-head>\r\n }\r\n </fd-layout-panel-header>\r\n <fd-layout-panel-body #mainEl>\r\n @if(mainContentLayout){\r\n <bsu-ly-layout-panel\r\n style=\"width: 100%\"\r\n [style.overflow-y]=\"true\"\r\n [config]=\"mainContentLayout\"\r\n [hideTitle]=\"true\"\r\n class=\"extra-layout-panel\"\r\n >\r\n </bsu-ly-layout-panel>\r\n }\r\n </fd-layout-panel-body>\r\n <fd-layout-panel-footer #footerEl>\r\n @if(footerContentLayout){\r\n <bsu-ly-layout-panel\r\n class=\"extra-layout-panel\"\r\n style=\"width: 100%\"\r\n [config]=\"footerContentLayout\"\r\n [hideTitle]=\"true\"\r\n ></bsu-ly-layout-panel>\r\n }\r\n </fd-layout-panel-footer>\r\n</fd-layout-panel>\r\n", styles: [":host{display:block}.extra-layout-panel ::ng-deep>fd-panel>div>div{border:none;padding:0}fd-layout-panel{display:flex;flex-direction:column}fd-layout-panel>fd-layout-panel-body{flex:1}\n"], dependencies: [{ kind: "directive", type: i1.FillEmptySpaceDirective, selector: "[fillEmptySpace]", inputs: ["containerDom", "decrement", "disable", "height", "dontUseTopBound", "setMinHeight"], outputs: ["heightChanged"], exportAs: ["fillEmptySpace"] }, { kind: "component", type: i2.LayoutPanelComponent, selector: "fd-layout-panel", inputs: ["backgroundImage", "id", "transparent"] }, { kind: "component", type: i2.LayoutPanelHeaderComponent, selector: "fd-layout-panel-header" }, { kind: "component", type: i2.LayoutPanelHeadComponent, selector: "fd-layout-panel-head" }, { kind: "component", type: i2.LayoutPanelBodyComponent, selector: "fd-layout-panel-body", inputs: ["bleed"] }, { kind: "component", type: i2.LayoutPanelFooterComponent, selector: "fd-layout-panel-footer", inputs: ["class", "position"] }, { kind: "component", type: i3.LyLayoutPanelComponent, selector: "bsu-ly-layout-panel", inputs: ["renderItems", "isRoot", "hideTitle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
38
|
+
}
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaFormLayoutPanelComponent, decorators: [{
|
|
40
|
+
type: Component,
|
|
41
|
+
args: [{ selector: 'bsu-barsa-form-layout-panel', changeDetection: ChangeDetectionStrategy.OnPush, providers: [LayoutService, LayoutMainContentService], standalone: false, template: "<fd-layout-panel fillEmptySpace [decrement]=\"'40px'\" (heightChanged)=\"onFillEmptyHeightChanged()\">\r\n <fd-layout-panel-header #headerEl>\r\n @if(headerContentLayout){\r\n <fd-layout-panel-head>\r\n <bsu-ly-layout-panel\r\n class=\"extra-layout-panel\"\r\n style=\"width: 100%\"\r\n [config]=\"headerContentLayout\"\r\n [hideTitle]=\"true\"\r\n ></bsu-ly-layout-panel>\r\n </fd-layout-panel-head>\r\n }\r\n </fd-layout-panel-header>\r\n <fd-layout-panel-body #mainEl>\r\n @if(mainContentLayout){\r\n <bsu-ly-layout-panel\r\n style=\"width: 100%\"\r\n [style.overflow-y]=\"true\"\r\n [config]=\"mainContentLayout\"\r\n [hideTitle]=\"true\"\r\n class=\"extra-layout-panel\"\r\n >\r\n </bsu-ly-layout-panel>\r\n }\r\n </fd-layout-panel-body>\r\n <fd-layout-panel-footer #footerEl>\r\n @if(footerContentLayout){\r\n <bsu-ly-layout-panel\r\n class=\"extra-layout-panel\"\r\n style=\"width: 100%\"\r\n [config]=\"footerContentLayout\"\r\n [hideTitle]=\"true\"\r\n ></bsu-ly-layout-panel>\r\n }\r\n </fd-layout-panel-footer>\r\n</fd-layout-panel>\r\n", styles: [":host{display:block}.extra-layout-panel ::ng-deep>fd-panel>div>div{border:none;padding:0}fd-layout-panel{display:flex;flex-direction:column}fd-layout-panel>fd-layout-panel-body{flex:1}\n"] }]
|
|
42
|
+
}], propDecorators: { _isSmallDevice: [{
|
|
43
|
+
type: HostBinding,
|
|
44
|
+
args: ['class.smallDevice']
|
|
45
|
+
}], _background: [{
|
|
46
|
+
type: HostBinding,
|
|
47
|
+
args: ['style.background']
|
|
48
|
+
}], _headerEl: [{
|
|
49
|
+
type: ViewChild,
|
|
50
|
+
args: ['headerEl', { read: ElementRef }]
|
|
51
|
+
}], _footerEl: [{
|
|
52
|
+
type: ViewChild,
|
|
53
|
+
args: ['footerEl', { read: ElementRef }]
|
|
54
|
+
}], _mainEl: [{
|
|
55
|
+
type: ViewChild,
|
|
56
|
+
args: ['mainEl', { read: ElementRef }]
|
|
57
|
+
}] } });
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtZm9ybS1sYXlvdXQtcGFuZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtZm9ybS1sYXlvdXQtcGFuZWwvYmFyc2EtZm9ybS1sYXlvdXQtcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtZm9ybS1sYXlvdXQtcGFuZWwvYmFyc2EtZm9ybS1sYXlvdXQtcGFuZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkgsT0FBTyxFQUdILDZCQUE2QixFQUM3QixhQUFhLEVBQ2Isd0JBQXdCLEVBQ3hCLHdCQUF3QixFQUMzQixNQUFNLHNCQUFzQixDQUFDOzs7OztBQVU5QixNQUFNLE9BQU8sNkJBQThCLFNBQVEsd0JBQXdCO0lBUjNFOztRQVNzQyxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQVd6RCxrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0Qiw4QkFBeUIsR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQztLQXdCaEU7SUF2QkcsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsNkJBQTZCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3JHLElBQUksQ0FBQyxpQkFBaUIsR0FBRyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDakcsSUFBSSxDQUFDLG1CQUFtQixHQUFHLDZCQUE2QixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNyRyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxJQUFJLHFCQUFxQixDQUFDO1FBQ3BFLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzdDLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNELGVBQWU7UUFDWCxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUNELHdCQUF3QjtRQUNwQixJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBQ0QseUJBQXlCO1FBQ3JCLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWxHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3pHLENBQUM7K0dBcENRLDZCQUE2QjttR0FBN0IsNkJBQTZCLG9LQUgzQixDQUFDLGFBQWEsRUFBRSx3QkFBd0IsQ0FBQyw0R0FNckIsVUFBVSxnR0FDVixVQUFVLDRGQUNaLFVBQVUsb0RDdkIzQywyekNBb0NBOzs0RkRsQmEsNkJBQTZCO2tCQVJ6QyxTQUFTOytCQUNJLDZCQUE2QixtQkFHdEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLGFBQWEsRUFBRSx3QkFBd0IsQ0FBQyxjQUN4QyxLQUFLOzhCQUdpQixjQUFjO3NCQUEvQyxXQUFXO3VCQUFDLG1CQUFtQjtnQkFDQyxXQUFXO3NCQUEzQyxXQUFXO3VCQUFDLGtCQUFrQjtnQkFDYyxTQUFTO3NCQUFyRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBQ0UsU0FBUztzQkFBckQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUNBLE9BQU87c0JBQWpELFNBQVM7dUJBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBpbmplY3QsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgICBNZXRhb2JqZWN0RGF0YU1vZGVsLFxyXG4gICAgTGF5b3V0U2V0dGluZyxcclxuICAgIEZpbmRMYXlvdXRTZXR0aW5nRnJvbUxheW91dDk0LFxyXG4gICAgTGF5b3V0U2VydmljZSxcclxuICAgIExheW91dFBhbmVsQmFzZUNvbXBvbmVudCxcclxuICAgIExheW91dE1haW5Db250ZW50U2VydmljZVxyXG59IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtYmFyc2EtZm9ybS1sYXlvdXQtcGFuZWwnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JhcnNhLWZvcm0tbGF5b3V0LXBhbmVsLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2JhcnNhLWZvcm0tbGF5b3V0LXBhbmVsLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHByb3ZpZGVyczogW0xheW91dFNlcnZpY2UsIExheW91dE1haW5Db250ZW50U2VydmljZV0sXHJcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmFyc2FGb3JtTGF5b3V0UGFuZWxDb21wb25lbnQgZXh0ZW5kcyBMYXlvdXRQYW5lbEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zbWFsbERldmljZScpIF9pc1NtYWxsRGV2aWNlID0gZmFsc2U7XHJcbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLmJhY2tncm91bmQnKSBfYmFja2dyb3VuZDogc3RyaW5nO1xyXG4gICAgQFZpZXdDaGlsZCgnaGVhZGVyRWwnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgX2hlYWRlckVsOiBFbGVtZW50UmVmO1xyXG4gICAgQFZpZXdDaGlsZCgnZm9vdGVyRWwnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgX2Zvb3RlckVsOiBFbGVtZW50UmVmO1xyXG4gICAgQFZpZXdDaGlsZCgnbWFpbkVsJywgeyByZWFkOiBFbGVtZW50UmVmIH0pIF9tYWluRWw6IEVsZW1lbnRSZWY7XHJcblxyXG4gICAgcGFyYW1ldGVyczogQmFyc2FGb3JtTGF5b3V0UGFuZWxTZXR0aW5ncztcclxuICAgIGhlYWRlckNvbnRlbnRMYXlvdXQ6IExheW91dFNldHRpbmcgfCBudWxsO1xyXG4gICAgZm9vdGVyQ29udGVudExheW91dDogTGF5b3V0U2V0dGluZyB8IG51bGw7XHJcbiAgICBtYWluQ29udGVudExheW91dDogTGF5b3V0U2V0dGluZyB8IG51bGw7XHJcbiAgICBzbWFsbERldmljZTogYm9vbGVhbjtcclxuICAgIGFmdGVyVmlld0luaXQgPSBmYWxzZTtcclxuICAgIF9sYXlvdXRNYWluQ29udGVudFNlcnZpY2UgPSBpbmplY3QoTGF5b3V0TWFpbkNvbnRlbnRTZXJ2aWNlKTtcclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgdGhpcy5oZWFkZXJDb250ZW50TGF5b3V0ID0gRmluZExheW91dFNldHRpbmdGcm9tTGF5b3V0OTQodGhpcy5jb25maWcsIHRoaXMucGFyYW1ldGVycy5IZWFkZXJDb250ZW50KTtcclxuICAgICAgICB0aGlzLm1haW5Db250ZW50TGF5b3V0ID0gRmluZExheW91dFNldHRpbmdGcm9tTGF5b3V0OTQodGhpcy5jb25maWcsIHRoaXMucGFyYW1ldGVycy5NYWluQ29udGVudCk7XHJcbiAgICAgICAgdGhpcy5mb290ZXJDb250ZW50TGF5b3V0ID0gRmluZExheW91dFNldHRpbmdGcm9tTGF5b3V0OTQodGhpcy5jb25maWcsIHRoaXMucGFyYW1ldGVycy5Gb290ZXJDb250ZW50KTtcclxuICAgICAgICB0aGlzLl9iYWNrZ3JvdW5kID0gdGhpcy5wYXJhbWV0ZXJzLkJnQ29sb3IgfHwgJ3ZhcigtLXNhcEJhc2VDb2xvciknO1xyXG4gICAgICAgIHRoaXMucG9ydGFsU2VydmljZS53aW5kb3dSZXNpemUkLnN1YnNjcmliZSgoYykgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9yZWZyZXNoTWFpbkNvbnRlaHRIZWlnaHQoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcclxuICAgICAgICB0aGlzLl9yZWZyZXNoTWFpbkNvbnRlaHRIZWlnaHQoKTtcclxuICAgICAgICB0aGlzLmFmdGVyVmlld0luaXQgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgb25GaWxsRW1wdHlIZWlnaHRDaGFuZ2VkKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3JlZnJlc2hNYWluQ29udGVodEhlaWdodCgpO1xyXG4gICAgfVxyXG4gICAgX3JlZnJlc2hNYWluQ29udGVodEhlaWdodCgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCB4ID0gK3dpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMuX21haW5FbC5uYXRpdmVFbGVtZW50LCBudWxsKS5wYWRkaW5nVG9wLnJlcGxhY2UoJ3B4JywgJycpO1xyXG5cclxuICAgICAgICB0aGlzLl9sYXlvdXRNYWluQ29udGVudFNlcnZpY2Uuc2V0TWFpbkNvbnRlbnRIZWlnaHQodGhpcy5fbWFpbkVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0IC0geCAqIDIpO1xyXG4gICAgfVxyXG59XHJcbmludGVyZmFjZSBCYXJzYUZvcm1MYXlvdXRQYW5lbFNldHRpbmdzIGV4dGVuZHMgTWV0YW9iamVjdERhdGFNb2RlbCB7XHJcbiAgICBIZWFkZXJDb250ZW50OiBzdHJpbmc7XHJcbiAgICBNYWluQ29udGVudDogc3RyaW5nO1xyXG4gICAgRm9vdGVyQ29udGVudDogc3RyaW5nO1xyXG4gICAgQmdDb2xvcjogc3RyaW5nO1xyXG59XHJcbiIsIjxmZC1sYXlvdXQtcGFuZWwgZmlsbEVtcHR5U3BhY2UgW2RlY3JlbWVudF09XCInNDBweCdcIiAoaGVpZ2h0Q2hhbmdlZCk9XCJvbkZpbGxFbXB0eUhlaWdodENoYW5nZWQoKVwiPlxyXG4gICAgPGZkLWxheW91dC1wYW5lbC1oZWFkZXIgI2hlYWRlckVsPlxyXG4gICAgICAgIEBpZihoZWFkZXJDb250ZW50TGF5b3V0KXtcclxuICAgICAgICA8ZmQtbGF5b3V0LXBhbmVsLWhlYWQ+XHJcbiAgICAgICAgICAgIDxic3UtbHktbGF5b3V0LXBhbmVsXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImV4dHJhLWxheW91dC1wYW5lbFwiXHJcbiAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAxMDAlXCJcclxuICAgICAgICAgICAgICAgIFtjb25maWddPVwiaGVhZGVyQ29udGVudExheW91dFwiXHJcbiAgICAgICAgICAgICAgICBbaGlkZVRpdGxlXT1cInRydWVcIlxyXG4gICAgICAgICAgICA+PC9ic3UtbHktbGF5b3V0LXBhbmVsPlxyXG4gICAgICAgIDwvZmQtbGF5b3V0LXBhbmVsLWhlYWQ+XHJcbiAgICAgICAgfVxyXG4gICAgPC9mZC1sYXlvdXQtcGFuZWwtaGVhZGVyPlxyXG4gICAgPGZkLWxheW91dC1wYW5lbC1ib2R5ICNtYWluRWw+XHJcbiAgICAgICAgQGlmKG1haW5Db250ZW50TGF5b3V0KXtcclxuICAgICAgICA8YnN1LWx5LWxheW91dC1wYW5lbFxyXG4gICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAxMDAlXCJcclxuICAgICAgICAgICAgW3N0eWxlLm92ZXJmbG93LXldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgIFtjb25maWddPVwibWFpbkNvbnRlbnRMYXlvdXRcIlxyXG4gICAgICAgICAgICBbaGlkZVRpdGxlXT1cInRydWVcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImV4dHJhLWxheW91dC1wYW5lbFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgIDwvYnN1LWx5LWxheW91dC1wYW5lbD5cclxuICAgICAgICB9XHJcbiAgICA8L2ZkLWxheW91dC1wYW5lbC1ib2R5PlxyXG4gICAgPGZkLWxheW91dC1wYW5lbC1mb290ZXIgI2Zvb3RlckVsPlxyXG4gICAgICAgIEBpZihmb290ZXJDb250ZW50TGF5b3V0KXtcclxuICAgICAgICA8YnN1LWx5LWxheW91dC1wYW5lbFxyXG4gICAgICAgICAgICBjbGFzcz1cImV4dHJhLWxheW91dC1wYW5lbFwiXHJcbiAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDEwMCVcIlxyXG4gICAgICAgICAgICBbY29uZmlnXT1cImZvb3RlckNvbnRlbnRMYXlvdXRcIlxyXG4gICAgICAgICAgICBbaGlkZVRpdGxlXT1cInRydWVcIlxyXG4gICAgICAgID48L2JzdS1seS1sYXlvdXQtcGFuZWw+XHJcbiAgICAgICAgfVxyXG4gICAgPC9mZC1sYXlvdXQtcGFuZWwtZm9vdGVyPlxyXG48L2ZkLWxheW91dC1wYW5lbD5cclxuIl19
|
|
@@ -43,7 +43,7 @@ export class BarsaFormSideContentComponent extends FormPropsBaseComponent {
|
|
|
43
43
|
return isSmallDevice;
|
|
44
44
|
}
|
|
45
45
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaFormSideContentComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
46
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BarsaFormSideContentComponent, selector: "bsu-barsa-form-side-content", host: { properties: { "class.smallDevice": "this._isSmallDevice", "style.background": "this._background" } }, providers: [LayoutService], usesInheritance: true, ngImport: i0, template: "@if(isMobile) {\r\n<button\r\n fd-shellbar-side-nav\r\n fd-button\r\n fdType=\"transparent\"\r\n glyph=\"menu2\"\r\n style=\"width: 2.75rem\"\r\n (click)=\"$event.stopPropagation(); openSidebar()\"\r\n></button>\r\n\r\n<div\r\n class=\"sidemenu-h tw-fixed tw-bg-white tw-transition-all tw-z-[1001] tw-shadow-2xl tw-overflow-auto\"\r\n [ngClass]=\"{ 'tw-w-4/5': isMobile }\"\r\n [class.-tw-right-full]=\"isMobile\"\r\n [class.tw-w-96]=\"!isMobile\"\r\n [class.-tw-right-96]=\"!isMobile\"\r\n fillEmptySpace\r\n [class.!tw-right-0]=\"isOpenQuickAccess$ | async\"\r\n (click)=\"$event.stopPropagation()\"\r\n #sidebar\r\n>\r\n <button\r\n fd-shellbar-side-nav\r\n fd-button\r\n fdType=\"transparent\"\r\n glyph=\"decline\"\r\n (click)=\"$event.stopPropagation(); closeSidebar()\"\r\n routeFormChange\r\n [bodyClick]=\"true\"\r\n (stateChanged)=\"afterViewInit && closeSidebar()\"\r\n ></button>\r\n @if (sideContentLayout ) {\r\n <bsu-ly-layout-panel\r\n style=\"width: 100%\"\r\n [config]=\"sideContentLayout\"\r\n [hideTitle]=\"parameters?.HideSideContentTitle === true\"\r\n class=\"xxx\"\r\n ></bsu-ly-layout-panel\r\n >}\r\n</div>\r\n} @if (sideContentLayout && mainContentLayout) {\r\n\r\n<fd-dynamic-side-content\r\n [class.rtl]=\"rtl\"\r\n fillEmptySpace\r\n [decrement]=\"'40px'\"\r\n [disable]=\"autoHeight\"\r\n [setMinHeight]=\"true\"\r\n [size]=\"isMobile ? 'sm' : smallDevice ? 'md' : 'xl'\"\r\n>\r\n <fd-dynamic-side-content-side>\r\n <bsu-ly-layout-panel\r\n fillEmptySpace\r\n [disable]=\"!parameters?.FixSideContentHeight\"\r\n [style.overflow-y]=\"parameters?.FixSideContentHeight === true ? 'auto' : null\"\r\n [config]=\"sideContentLayout\"\r\n [hideTitle]=\"parameters?.HideSideContentTitle === true\"\r\n >\r\n </bsu-ly-layout-panel>\r\n </fd-dynamic-side-content-side>\r\n <fd-dynamic-side-content-main [style.width]=\"isMobile ? null : parameters?.MainContentWidth\">\r\n <bsu-ly-layout-panel [config]=\"mainContentLayout\" [hideTitle]=\"parameters?.HideMainContentTitle === true\">\r\n </bsu-ly-layout-panel>\r\n </fd-dynamic-side-content-main>\r\n</fd-dynamic-side-content>\r\n} @else {\r\n<fd-message-strip type=\"error\" [dismissible]=\"false\"\r\n >side content and main content does not defined correctly.</fd-message-strip\r\n>\r\n}\r\n<ng-template #error>\r\n <fd-message-strip type=\"error\" [dismissible]=\"false\"\r\n >side content and main content does not defined correctly.</fd-message-strip\r\n >\r\n</ng-template>\r\n", styles: [":host{width:100%;height:100%;display:flex;position:relative;flex-direction:column}fd-dynamic-side-content-main{border:.0625rem solid var(--sapTile_SeparatorColor, #ccc)!important;background-color:var(--sapBaseColor)}fd-dynamic-side-content-side{border:.0625rem solid var(--sapTile_SeparatorColor, #ccc)!important;border-left:none;background-color:var(--sapBaseColor)}fd-dynamic-side-content.rtl fd-dynamic-side-content-side{border-left:none!important}fd-dynamic-side-content-main>bsu-ly-layout-panel ::ng-deep>fd-panel>.fd-panel>.fd-panel__content,fd-dynamic-side-content-side>bsu-ly-layout-panel ::ng-deep>fd-panel>.fd-panel>.fd-panel__content{border:none;padding:0}:host ::ng-deep bnrc-field-ui{padding:0!important}\n"], 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: "directive", type: i2.RouteFormChangeDirective, selector: "[routeFormChange]", inputs: ["handleBodyClick"], outputs: ["stateChanged"] }, { kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i4.DynamicSideContentComponent, selector: "fd-dynamic-side-content", inputs: ["position", "size", "id"] }, { kind: "component", type: i4.DynamicSideContentSideComponent, selector: "fd-dynamic-side-content-side", inputs: ["id"] }, { kind: "component", type: i4.DynamicSideContentMainComponent, selector: "fd-dynamic-side-content-main", inputs: ["id"] }, { kind: "component", type: i5.MessageStripComponent, selector: "fd-message-strip", inputs: ["class", "dismissible", "noIcon", "type", "id", "ariaLabelledBy", "ariaLabel", "width", "minWidth", "marginBottom", "indicationColor"], outputs: ["onDismiss"] }, { kind: "directive", type: i6.ShellbarSidenavDirective, selector: "[fdShellbarSidenav], [fd-shellbar-side-nav]" }, { kind: "component", type: i7.LyLayoutPanelComponent, selector: "bsu-ly-layout-panel", inputs: ["renderItems", "isRoot", "hideTitle"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
46
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BarsaFormSideContentComponent, selector: "bsu-barsa-form-side-content", host: { properties: { "class.smallDevice": "this._isSmallDevice", "style.background": "this._background" } }, providers: [LayoutService], usesInheritance: true, ngImport: i0, template: "@if(isMobile) {\r\n<button\r\n fd-shellbar-side-nav\r\n fd-button\r\n fdType=\"transparent\"\r\n glyph=\"menu2\"\r\n style=\"width: 2.75rem\"\r\n (click)=\"$event.stopPropagation(); openSidebar()\"\r\n></button>\r\n\r\n<div\r\n class=\"sidemenu-h tw-fixed tw-bg-white tw-transition-all tw-z-[1001] tw-shadow-2xl tw-overflow-auto\"\r\n [ngClass]=\"{ 'tw-w-4/5': isMobile }\"\r\n [class.-tw-right-full]=\"isMobile\"\r\n [class.tw-w-96]=\"!isMobile\"\r\n [class.-tw-right-96]=\"!isMobile\"\r\n fillEmptySpace\r\n [class.!tw-right-0]=\"isOpenQuickAccess$ | async\"\r\n (click)=\"$event.stopPropagation()\"\r\n #sidebar\r\n>\r\n <button\r\n fd-shellbar-side-nav\r\n fd-button\r\n fdType=\"transparent\"\r\n glyph=\"decline\"\r\n (click)=\"$event.stopPropagation(); closeSidebar()\"\r\n routeFormChange\r\n [bodyClick]=\"true\"\r\n (stateChanged)=\"afterViewInit && closeSidebar()\"\r\n ></button>\r\n @if (sideContentLayout ) {\r\n <bsu-ly-layout-panel\r\n style=\"width: 100%\"\r\n [config]=\"sideContentLayout\"\r\n [hideTitle]=\"parameters?.HideSideContentTitle === true\"\r\n class=\"xxx\"\r\n ></bsu-ly-layout-panel\r\n >}\r\n</div>\r\n} @if (sideContentLayout && mainContentLayout) {\r\n\r\n<fd-dynamic-side-content\r\n [class.rtl]=\"rtl\"\r\n fillEmptySpace\r\n [decrement]=\"'40px'\"\r\n [disable]=\"autoHeight\"\r\n [setMinHeight]=\"true\"\r\n [size]=\"isMobile ? 'sm' : smallDevice ? 'md' : 'xl'\"\r\n>\r\n <fd-dynamic-side-content-side>\r\n <bsu-ly-layout-panel\r\n fillEmptySpace\r\n [disable]=\"!parameters?.FixSideContentHeight\"\r\n [style.overflow-y]=\"parameters?.FixSideContentHeight === true ? 'auto' : null\"\r\n [config]=\"sideContentLayout\"\r\n [hideTitle]=\"parameters?.HideSideContentTitle === true\"\r\n >\r\n </bsu-ly-layout-panel>\r\n </fd-dynamic-side-content-side>\r\n <fd-dynamic-side-content-main [style.width]=\"isMobile ? null : parameters?.MainContentWidth\">\r\n <bsu-ly-layout-panel [config]=\"mainContentLayout\" [hideTitle]=\"parameters?.HideMainContentTitle === true\">\r\n </bsu-ly-layout-panel>\r\n </fd-dynamic-side-content-main>\r\n</fd-dynamic-side-content>\r\n} @else {\r\n<fd-message-strip type=\"error\" [dismissible]=\"false\"\r\n >side content and main content does not defined correctly.</fd-message-strip\r\n>\r\n}\r\n<ng-template #error>\r\n <fd-message-strip type=\"error\" [dismissible]=\"false\"\r\n >side content and main content does not defined correctly.</fd-message-strip\r\n >\r\n</ng-template>\r\n", styles: [":host{width:100%;height:100%;display:flex;position:relative;flex-direction:column}fd-dynamic-side-content-main{border:.0625rem solid var(--sapTile_SeparatorColor, #ccc)!important;background-color:var(--sapBaseColor)}fd-dynamic-side-content-side{border:.0625rem solid var(--sapTile_SeparatorColor, #ccc)!important;border-left:none;background-color:var(--sapBaseColor)}fd-dynamic-side-content.rtl fd-dynamic-side-content-side{border-left:none!important}fd-dynamic-side-content-main>bsu-ly-layout-panel ::ng-deep>fd-panel>.fd-panel>.fd-panel__content,fd-dynamic-side-content-side>bsu-ly-layout-panel ::ng-deep>fd-panel>.fd-panel>.fd-panel__content{border:none;padding:0}:host ::ng-deep bnrc-field-ui{padding:0!important}\n"], 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"], outputs: ["heightChanged"], exportAs: ["fillEmptySpace"] }, { kind: "directive", type: i2.BodyClickDirective, selector: "[bodyClick]", inputs: ["disableBodyClick"] }, { kind: "directive", type: i2.RouteFormChangeDirective, selector: "[routeFormChange]", inputs: ["handleBodyClick"], outputs: ["stateChanged"] }, { kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i4.DynamicSideContentComponent, selector: "fd-dynamic-side-content", inputs: ["position", "size", "id"] }, { kind: "component", type: i4.DynamicSideContentSideComponent, selector: "fd-dynamic-side-content-side", inputs: ["id"] }, { kind: "component", type: i4.DynamicSideContentMainComponent, selector: "fd-dynamic-side-content-main", inputs: ["id"] }, { kind: "component", type: i5.MessageStripComponent, selector: "fd-message-strip", inputs: ["class", "dismissible", "noIcon", "type", "id", "ariaLabelledBy", "ariaLabel", "width", "minWidth", "marginBottom", "indicationColor"], outputs: ["onDismiss"] }, { kind: "directive", type: i6.ShellbarSidenavDirective, selector: "[fdShellbarSidenav], [fd-shellbar-side-nav]" }, { kind: "component", type: i7.LyLayoutPanelComponent, selector: "bsu-ly-layout-panel", inputs: ["renderItems", "isRoot", "hideTitle"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
47
47
|
}
|
|
48
48
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaFormSideContentComponent, decorators: [{
|
|
49
49
|
type: Component,
|
|
@@ -85,7 +85,7 @@ export class BarsaCartableGroupComponent extends BaseViewItemPropsComponent {
|
|
|
85
85
|
this.allItem = { allCount, unreadCount };
|
|
86
86
|
}
|
|
87
87
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaCartableGroupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
88
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BarsaCartableGroupComponent, selector: "bsu-barsa-cartable-group", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<!-- <li\r\n[interactive]=\"true\"\r\nfd-list-item\r\n[selected]=\"allItemChecked ? true : false\"\r\n(click)=\"onRowCheckAll()\"\r\n*ngIf=\"allItem\"\r\n>\r\n<div class=\"title-container\">\r\n <div style=\"background-color: transparent; width: 0.2rem; height: 100%\"></div>\r\n <span fd-list-title>\r\n <div style=\"height: 100%; display: flex; align-items: center\">\r\n <span [style.fontSize]=\"allItem.unreadCount > 0 ? 'bold' : null\">{{ '\u0647\u0645\u0647 \u0645\u0648\u0627\u0631\u062F' | bbbTranslate }}</span>\r\n <ng-container *ngIf=\"allItem.unreadCount > 0\">\r\n <strong style=\"padding: 0 2px; direction: ltr\">({{ allItem.unreadCount }})</strong>\r\n </ng-container>\r\n <span style=\"padding: 0 5px\" *ngIf=\"allItem.allCount > 0\">{{ allItem.allCount }}</span>\r\n </div>\r\n </span>\r\n</div>\r\n</li> -->\r\n\r\n<ng-container>\r\n @if (allItem) {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n itemTemplate;\r\n context: {\r\n $implicit: '\u0647\u0645\u0647 \u0645\u0648\u0627\u0631\u062F' | bbbTranslate,\r\n unreadCount: allItem.unreadCount,\r\n allCount: allItem.allCount,\r\n backColor: 'transparent',\r\n isAll: true,\r\n isChecked: allItemChecked\r\n }\r\n \"\r\n ></ng-container>\r\n }\r\n\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n itemTemplate;\r\n context: {\r\n $implicit: parameters.CartableGroupField | rval: mo:allColumns:true,\r\n unreadCount: parameters.UnreadCountField | rval: mo:allColumns,\r\n allCount: parameters.AllCountField | rval: mo:allColumns,\r\n backColor: (columns[0].Caption | rval: mo:columns),\r\n isChecked: isChecked,\r\n icon: parameters.IconField | rval: mo:allColumns:true,\r\n isBuiltin: isBuiltin\r\n }\r\n \"\r\n ></ng-container>\r\n</ng-container>\r\n@if (isLastBuiltin) {\r\n<li fd-list-item class=\"space\">\r\n <span fd-list-title></span>\r\n</li>\r\n}\r\n<!-- <ng-container *ngIf=\"last\">\r\n<ul fd-list>\r\n <li fd-list-group-header>\r\n <span fd-list-title style=\"background:#f7f7f7\"></span>\r\n </li>\r\n <ng-container *ngFor=\"let mo2 of moDataList\">\r\n <ng-container *ngIf=\"'\u0633\u06CC\u0633\u062A\u0645\u06CC' | rval: mo2:allColumns\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n itemTemplate;\r\n context: {\r\n $implicit: parameters.CartableGroupField | rval: mo2:allColumns:true,\r\n unreadCount: parameters.UnreadCountField | rval: mo2:allColumns,\r\n allCount: parameters.AllCountField | rval: mo2:allColumns,\r\n backColor: columns[0].Caption | rval: mo2:columns,\r\n isChecked: isChecked\r\n }\r\n \"\r\n ></ng-container>\r\n </ng-container>\r\n</ng-container>\r\n</ul>\r\n</ng-container> -->\r\n\r\n<!-- <li fd-list-item [selected]=\"isChecked ? true : false\" (click)=\"onRowCheck()\" [interactive]=\"true\">\r\n<div class=\"title-container\">\r\n <div [style.backgroundColor]=\"columns[0].Caption | rval: mo:columns\" style=\"width: 0.2rem; height: 100%\"></div>\r\n <span fd-list-title>\r\n <div style=\"height: 100%; display: flex; align-items: center\">\r\n <span [style.fontSize]=\"parameters.UnreadCountField | rval: mo:allColumns:(true ? 'bold' : null)\"\r\n >{{ parameters.CartableGroupField | rval: mo:allColumns:true }}\r\n </span>\r\n <ng-container *ngIf=\"parameters.UnreadCountField | rval: mo:allColumns:true\">\r\n <strong style=\"padding: 0 2px; direction: ltr\"\r\n >({{ parameters.UnreadCountField | rval: mo:allColumns:true }})</strong\r\n >\r\n </ng-container>\r\n <span style=\"padding: 0 5px\">{{ parameters.AllCountField | rval: mo:allColumns:true }}</span>\r\n </div>\r\n </span>\r\n </div>\r\n</li> -->\r\n<ng-template\r\n #itemTemplate\r\n let-caption\r\n let-unreadCount=\"unreadCount\"\r\n let-allCount=\"allCount\"\r\n let-backColor=\"backColor\"\r\n let-isAll=\"isAll\"\r\n let-isChecked=\"isChecked\"\r\n let-icon=\"icon\"\r\n let-isBuiltin=\"isBuiltin\"\r\n>\r\n @if (isBuiltin || allCount > 0 || isAll) {\r\n <li fd-list-item [selected]=\"isChecked ? true : false\" (click)=\"onClick(isAll)\" [interactive]=\"true\">\r\n <div class=\"title-container\">\r\n <div [style.backgroundColor]=\"backColor\" style=\"width: 0.2rem; height: 100%\"></div>\r\n @if (icon) {\r\n <i fd-list-icon [glyph]=\"icon\"></i>\r\n }\r\n <span fd-list-title>\r\n <div style=\"height: 100%; display: flex; align-items: center; column-gap: 5px\">\r\n @if (unreadCount && unreadCount > 0) {\r\n <strong>{{ caption }}</strong>\r\n <strong style=\"padding: 0 2px; direction: ltr\">({{ unreadCount }})</strong>\r\n } @else {\r\n <span>{{ caption }}</span>\r\n } @if (allCount && allCount > 0) {\r\n <span style=\"padding: 0 5px\">{{ allCount }}</span>\r\n }\r\n </div>\r\n </span>\r\n </div>\r\n </li>\r\n }\r\n</ng-template>\r\n", styles: [":host{display:contents;width:100%;height:100%;cursor:pointer}.title-container{align-items:center;display:flex;column-gap:5px;height:100%;width:100%}li{padding:0}.space{cursor:default;background-color:var(--sapBackgroundColor);pointer-events:none}.space:focus:before{border:none}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole", "id"], outputs: ["keyDown"] }, { kind: "directive", type: i2.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i2.ListIconDirective, selector: "[fdListIcon], [fd-list-icon]", inputs: ["glyph", "glyphFont", "class", "role", "ariaHidden"] }, { kind: "pipe", type: i3.MoReportValuePipe, name: "rval" }, { kind: "pipe", type: i3.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
88
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BarsaCartableGroupComponent, selector: "bsu-barsa-cartable-group", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<!-- <li\r\n[interactive]=\"true\"\r\nfd-list-item\r\n[selected]=\"allItemChecked ? true : false\"\r\n(click)=\"onRowCheckAll()\"\r\n*ngIf=\"allItem\"\r\n>\r\n<div class=\"title-container\">\r\n <div style=\"background-color: transparent; width: 0.2rem; height: 100%\"></div>\r\n <span fd-list-title>\r\n <div style=\"height: 100%; display: flex; align-items: center\">\r\n <span [style.fontSize]=\"allItem.unreadCount > 0 ? 'bold' : null\">{{ '\u0647\u0645\u0647 \u0645\u0648\u0627\u0631\u062F' | bbbTranslate }}</span>\r\n <ng-container *ngIf=\"allItem.unreadCount > 0\">\r\n <strong style=\"padding: 0 2px; direction: ltr\">({{ allItem.unreadCount }})</strong>\r\n </ng-container>\r\n <span style=\"padding: 0 5px\" *ngIf=\"allItem.allCount > 0\">{{ allItem.allCount }}</span>\r\n </div>\r\n </span>\r\n</div>\r\n</li> -->\r\n\r\n<ng-container>\r\n @if (allItem) {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n itemTemplate;\r\n context: {\r\n $implicit: '\u0647\u0645\u0647 \u0645\u0648\u0627\u0631\u062F' | bbbTranslate,\r\n unreadCount: allItem.unreadCount,\r\n allCount: allItem.allCount,\r\n backColor: 'transparent',\r\n isAll: true,\r\n isChecked: allItemChecked\r\n }\r\n \"\r\n ></ng-container>\r\n }\r\n\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n itemTemplate;\r\n context: {\r\n $implicit: parameters.CartableGroupField | rval: mo:allColumns:true,\r\n unreadCount: parameters.UnreadCountField | rval: mo:allColumns,\r\n allCount: parameters.AllCountField | rval: mo:allColumns,\r\n backColor: (columns[0].Caption | rval: mo:columns),\r\n isChecked: isChecked,\r\n icon: parameters.IconField | rval: mo:allColumns:true,\r\n isBuiltin: isBuiltin\r\n }\r\n \"\r\n ></ng-container>\r\n</ng-container>\r\n@if (isLastBuiltin) {\r\n<li fd-list-item class=\"space\">\r\n <span fd-list-title></span>\r\n</li>\r\n}\r\n<!-- <ng-container *ngIf=\"last\">\r\n<ul fd-list>\r\n <li fd-list-group-header>\r\n <span fd-list-title style=\"background:#f7f7f7\"></span>\r\n </li>\r\n <ng-container *ngFor=\"let mo2 of moDataList\">\r\n <ng-container *ngIf=\"'\u0633\u06CC\u0633\u062A\u0645\u06CC' | rval: mo2:allColumns\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n itemTemplate;\r\n context: {\r\n $implicit: parameters.CartableGroupField | rval: mo2:allColumns:true,\r\n unreadCount: parameters.UnreadCountField | rval: mo2:allColumns,\r\n allCount: parameters.AllCountField | rval: mo2:allColumns,\r\n backColor: columns[0].Caption | rval: mo2:columns,\r\n isChecked: isChecked\r\n }\r\n \"\r\n ></ng-container>\r\n </ng-container>\r\n</ng-container>\r\n</ul>\r\n</ng-container> -->\r\n\r\n<!-- <li fd-list-item [selected]=\"isChecked ? true : false\" (click)=\"onRowCheck()\" [interactive]=\"true\">\r\n<div class=\"title-container\">\r\n <div [style.backgroundColor]=\"columns[0].Caption | rval: mo:columns\" style=\"width: 0.2rem; height: 100%\"></div>\r\n <span fd-list-title>\r\n <div style=\"height: 100%; display: flex; align-items: center\">\r\n <span [style.fontSize]=\"parameters.UnreadCountField | rval: mo:allColumns:(true ? 'bold' : null)\"\r\n >{{ parameters.CartableGroupField | rval: mo:allColumns:true }}\r\n </span>\r\n <ng-container *ngIf=\"parameters.UnreadCountField | rval: mo:allColumns:true\">\r\n <strong style=\"padding: 0 2px; direction: ltr\"\r\n >({{ parameters.UnreadCountField | rval: mo:allColumns:true }})</strong\r\n >\r\n </ng-container>\r\n <span style=\"padding: 0 5px\">{{ parameters.AllCountField | rval: mo:allColumns:true }}</span>\r\n </div>\r\n </span>\r\n </div>\r\n</li> -->\r\n<ng-template\r\n #itemTemplate\r\n let-caption\r\n let-unreadCount=\"unreadCount\"\r\n let-allCount=\"allCount\"\r\n let-backColor=\"backColor\"\r\n let-isAll=\"isAll\"\r\n let-isChecked=\"isChecked\"\r\n let-icon=\"icon\"\r\n let-isBuiltin=\"isBuiltin\"\r\n>\r\n @if (isBuiltin || allCount > 0 || isAll) {\r\n <li fd-list-item [selected]=\"isChecked ? true : false\" (click)=\"onClick(isAll)\" [interactive]=\"true\">\r\n <div class=\"title-container\">\r\n <div [style.backgroundColor]=\"backColor\" style=\"width: 0.2rem; height: 100%\"></div>\r\n @if (icon) {\r\n <i fd-list-icon [glyph]=\"icon\"></i>\r\n }\r\n <span fd-list-title>\r\n <div style=\"height: 100%; display: flex; align-items: center; column-gap: 5px\">\r\n @if (unreadCount && unreadCount > 0) {\r\n <strong>{{ caption }}</strong>\r\n <strong style=\"padding: 0 2px; direction: ltr\">({{ unreadCount }})</strong>\r\n } @else {\r\n <span>{{ caption }}</span>\r\n } @if (allCount && allCount > 0) {\r\n <span style=\"padding: 0 5px\">{{ allCount }}</span>\r\n }\r\n </div>\r\n </span>\r\n </div>\r\n </li>\r\n }\r\n</ng-template>\r\n", styles: [":host{display:contents;width:100%;height:100%;cursor:pointer}.title-container{align-items:center;display:flex;column-gap:5px;height:100%;width:100%}li{padding:0}.space{cursor:default;background-color:var(--sapBackgroundColor);pointer-events:none}.space:focus:before{border:none}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole", "id", "preventClick"], outputs: ["keyDown"] }, { kind: "directive", type: i2.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i2.ListIconDirective, selector: "[fdListIcon], [fd-list-icon]", inputs: ["glyph", "glyphFont", "class", "role", "ariaHidden"] }, { kind: "pipe", type: i3.MoReportValuePipe, name: "rval" }, { kind: "pipe", type: i3.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
89
89
|
}
|
|
90
90
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaCartableGroupComponent, decorators: [{
|
|
91
91
|
type: Component,
|
|
@@ -32,7 +32,7 @@ export class BarsaListFileLinearComponent extends UiFileLinearListBoxComponent {
|
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaListFileLinearComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
35
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BarsaListFileLinearComponent, selector: "bsu-barsa-list-file-linear", providers: [UploadService], usesInheritance: true, ngImport: i0, template: "@if (parameters.ModeValue === '1') {\r\n<ul fd-list class=\"file-viewer-attachments\">\r\n @for (file of value; track file) { @if (!file.IsDeleted) {\r\n <li fd-list-item style=\"background-color: #f5f5f5; margin: 0 0 0 30%; width: 100%\">\r\n @if (file.inEdit) {\r\n <input\r\n style=\"width: 90%\"\r\n fd-form-control\r\n [(ngModel)]=\"file.FileName\"\r\n (click)=\"$event.preventDefault(); $event.stopPropagation()\"\r\n (keydown.enter)=\"onHandleRenameFile(file)\"\r\n />\r\n } @if (!file.inEdit) {\r\n <span fd-list-title>\r\n {{ file.FileName }}\r\n </span>\r\n }\r\n <span fd-list-secondary>\r\n <button\r\n ariaLabel=\"Edit Or Save\"\r\n fdType=\"transparent\"\r\n class=\"fd-button--compact\"\r\n fd-button\r\n fdCompact\r\n [glyph]=\"file.inEdit ? 'save' : 'edit'\"\r\n (click)=\"onHandleRenameFile(file)\"\r\n ></button>\r\n @if (!file.inEdit) {\r\n <button\r\n ariaLabel=\"Remove\"\r\n fdType=\"transparent\"\r\n title=\"Remove\"\r\n fd-button\r\n glyph=\"delete\"\r\n (click)=\"onFileDeleted(file.Id)\"\r\n ></button>\r\n }\r\n </span>\r\n </li>\r\n } } @if (valueExtra$ | async; as valueExtra) { @for (file of valueExtra | keyvalue; track file) { @if\r\n (file.value.UploadState === 'Uploading') {\r\n <li style=\"background-color: #f5f5f5; margin: 0 0 0 30%; width: 100%\">\r\n @if (file.value.Progress) {\r\n <fd-progress-indicator state=\"informative\" [valueNow]=\"file.value.Progress\"></fd-progress-indicator>\r\n }\r\n </li>\r\n } } }\r\n</ul>\r\n} @if (parameters.ModeValue === '2') {\r\n<ul fd-list [byline]=\"true\">\r\n @if (fileCount$ | async; as fileCount) { @if (fileCount === 0) {\r\n <li fd-list-item>\r\n <div fd-list-content style=\"text-align: center\">\r\n <span>{{ 'NoFiles' | bbbTranslate }}</span>\r\n </div>\r\n </li>\r\n } } @for (file of value; track file) { @if (valueExtra$ | async; as valueExtra) { @if (!file.IsDeleted) {\r\n <li fd-list-item>\r\n <span fd-list-thumbnail>\r\n @if (valueExtra[file.Id].IsIcon) {\r\n <fd-icon [glyph]=\"valueExtra[file.Id].FileUrl\"></fd-icon>\r\n } @else {\r\n <fd-avatar size=\"m\" [image]=\"valueExtra[file.Id].FileUrl || ''\"></fd-avatar>\r\n }\r\n </span>\r\n <!-- for byline, fd-list-content is mandatory -->\r\n <div fd-list-content>\r\n <div fd-list-title>{{ file.FileName }}</div>\r\n <div fd-list-byline [twoCol]=\"true\">\r\n <div fd-list-byline-left></div>\r\n <div fd-list-byline-right style=\"display: flex; justify-content: flex-end\">\r\n <fd-toolbar [fdType]=\"'transparent'\" [clearBorder]=\"true\">\r\n @if (file.IsNew) {\r\n <span\r\n fd-toolbar-item\r\n fd-object-status\r\n [status]=\"file.Id | uploadFileStatus: valueExtra\"\r\n [label]=\"valueExtra[file.Id]?.UploadState || ''\"\r\n [title]=\"valueExtra[file.Id]?.UploadState\"\r\n [aria-label]=\"'File Upload Status Is ' + valueExtra[file.Id]?.UploadState\"\r\n ></span>\r\n @if (valueExtra[file.Id].UploadState === 'Uploading') {\r\n <fd-slider\r\n [contentDensity]=\"(contentDensity$ | async)!!\"\r\n [(ngModel)]=\"valueExtra[file.Id].Progress\"\r\n [name]=\"'filerLinear_' + id\"\r\n fd-toolbar-item\r\n [id]=\"id\"\r\n [min]=\"0\"\r\n [max]=\"100\"\r\n [step]=\"1\"\r\n >\r\n </fd-slider>\r\n } }\r\n </fd-toolbar>\r\n </div>\r\n </div>\r\n </div>\r\n @if ((disableOrReadonly$ | async) === false && valueExtra[file.Id].UploadState !== 'Uploading') {\r\n <button fd-button fdType=\"transparent\" glyph=\"decline\" (click)=\"onFileDeleted(file.Id)\"></button>\r\n } @if (valueExtra[file.Id].UploadState === 'Uploading') {\r\n <button fd-button [fdType]=\"'transparent'\" [glyph]=\"'stop'\" (click)=\"onTerminate(file)\"></button>\r\n } @if (valueExtra[file.Id].UploadState === 'Error') {\r\n <button fd-button [fdType]=\"'transparent'\" [glyph]=\"'refresh'\" (click)=\"onRetry(file)\"></button>\r\n }\r\n </li>\r\n } } }\r\n</ul>\r\n} @if ((disableOrReadonly$ | async) !== true) {\r\n<fd-toolbar\r\n style=\"display: block\"\r\n [style.height.px]=\"parameters.ModeValue === '1' ? 0 : null\"\r\n [fdType]=\"'transparent'\"\r\n [clearBorder]=\"true\"\r\n>\r\n <fd-file-uploader\r\n fd-toolbar-item\r\n [class.hide-file-uploader]=\"parameters?.HideAttachButton\"\r\n [id]=\"id\"\r\n [name]=\"id\"\r\n [placeholder]=\"'AttachFile' | bbbTranslate\"\r\n [buttonLabel]=\"'AttachFile' | bbbTranslate\"\r\n [buttonAriaLabel]=\"'AttachFile' | bbbTranslate\"\r\n [accept]=\"Setting.ValidExtensions || ''\"\r\n [multiple]=\"maxFileCount > 1\"\r\n (selectedFilesChanged)=\"onFileSelection($event)\"\r\n [contentDensity]=\"(contentDensity$ | async)!!\"\r\n ></fd-file-uploader>\r\n</fd-toolbar>\r\n}\r\n", styles: [":host{display:block;width:100%;height:100%}:host ::ng-deep .fd-slider__handle{display:none}:host ::ng-deep .fd-file-uploader input{display:none}:host ::ng-deep fd-file-uploader .fd-button{background-color:var(--sapButton_Lite_Background);border-color:var(--sapButton_Lite_BorderColor);color:var(--sapButton_Lite_TextColor)}:host .hide-file-uploader{visibility:hidden;height:0;width:0}\n"], dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.AvatarComponent, selector: "fd-avatar", inputs: ["class", "id", "ariaLabel", "ariaLabelledby", "label", "size", "font", "glyph", "zoomGlyph", "circle", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "colorIndication", "random", "clickable", "valueState", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { 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.FileUploaderComponent, selector: "fd-file-uploader", inputs: ["disabled", "required", "multiple", "accept", "dragndrop", "maxFileSize", "minFileSize", "id", "ariaLabel", "ariaLabelledBy", "placeholder", "buttonLabel", "buttonAriaLabel", "state", "fileLimit", "inputHidden", "width"], outputs: ["selectedFilesChanged", "selectedInvalidFiles", "onDragEnter", "onDragLeave"] }, { 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.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i8.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole", "id"], outputs: ["keyDown"] }, { kind: "directive", type: i8.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i8.ListSecondaryDirective, selector: "[fd-list-secondary], [fdListSecondary]", inputs: ["type"] }, { kind: "directive", type: i8.ListBylineDirective, selector: "[fdListByline], [fd-list-byline]", inputs: ["twoCol", "wrap"] }, { kind: "directive", type: i8.ListBylineLeftDirective, selector: "[fdListBylineLeft], [fd-list-byline-left]", inputs: ["wrap"] }, { kind: "directive", type: i8.ListBylineRightDirective, selector: "[fdListBylineRight], [fd-list-byline-right]", inputs: ["status", "wrap"] }, { kind: "directive", type: i8.ListContentDirective, selector: "[fdListContent], [fd-list-content]", inputs: ["twoCol"] }, { kind: "directive", type: i8.ListThumbnailDirective, selector: "[fdListThumbnail], [fd-list-thumbnail]" }, { kind: "component", type: i9.ObjectStatusComponent, selector: "[fd-object-status]", inputs: ["class", "status", "glyph", "glyphFont", "label", "glyphAriaLabel", "indicationColor", "clickable", "inverted", "large", "secondaryIndication", "textTemplate"] }, { kind: "component", type: i10.ToolbarComponent, selector: "fd-toolbar", inputs: ["titleId", "class", "shouldOverflow", "fdType", "title", "active", "clearBorder", "forceOverflow", "tabindex", "headingLevel", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: i10.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "component", type: i11.SliderComponent, selector: "fd-slider", inputs: ["id", "class", "ariaLabelledBy", "ariaLabel", "min", "max", "step", "jump", "tickmarksBetweenLabels", "mode", "showTicks", "showTicksLabels", "customValues", "tooltipMode", "hideProgressBar", "disabled", "vertical", "value"] }, { kind: "component", type: i12.ProgressIndicatorComponent, selector: "fd-progress-indicator", inputs: ["valueText", "unit", "valueMin", "valueMax", "valueNow", "state", "animate"] }, { kind: "pipe", type: i13.AsyncPipe, name: "async" }, { kind: "pipe", type: i13.KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: i14.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i15.UploadFileStatusPipe, name: "uploadFileStatus" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
35
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BarsaListFileLinearComponent, selector: "bsu-barsa-list-file-linear", providers: [UploadService], usesInheritance: true, ngImport: i0, template: "@if (parameters.ModeValue === '1') {\r\n<ul fd-list class=\"file-viewer-attachments\">\r\n @for (file of value; track file) { @if (!file.IsDeleted) {\r\n <li fd-list-item style=\"background-color: #f5f5f5; margin: 0 0 0 30%; width: 100%\">\r\n @if (file.inEdit) {\r\n <input\r\n style=\"width: 90%\"\r\n fd-form-control\r\n [(ngModel)]=\"file.FileName\"\r\n (click)=\"$event.preventDefault(); $event.stopPropagation()\"\r\n (keydown.enter)=\"onHandleRenameFile(file)\"\r\n />\r\n } @if (!file.inEdit) {\r\n <span fd-list-title>\r\n {{ file.FileName }}\r\n </span>\r\n }\r\n <span fd-list-secondary>\r\n <button\r\n ariaLabel=\"Edit Or Save\"\r\n fdType=\"transparent\"\r\n class=\"fd-button--compact\"\r\n fd-button\r\n fdCompact\r\n [glyph]=\"file.inEdit ? 'save' : 'edit'\"\r\n (click)=\"onHandleRenameFile(file)\"\r\n ></button>\r\n @if (!file.inEdit) {\r\n <button\r\n ariaLabel=\"Remove\"\r\n fdType=\"transparent\"\r\n title=\"Remove\"\r\n fd-button\r\n glyph=\"delete\"\r\n (click)=\"onFileDeleted(file.Id)\"\r\n ></button>\r\n }\r\n </span>\r\n </li>\r\n } } @if (valueExtra$ | async; as valueExtra) { @for (file of valueExtra | keyvalue; track file) { @if\r\n (file.value.UploadState === 'Uploading') {\r\n <li style=\"background-color: #f5f5f5; margin: 0 0 0 30%; width: 100%\">\r\n @if (file.value.Progress) {\r\n <fd-progress-indicator state=\"informative\" [valueNow]=\"file.value.Progress\"></fd-progress-indicator>\r\n }\r\n </li>\r\n } } }\r\n</ul>\r\n} @if (parameters.ModeValue === '2') {\r\n<ul fd-list [byline]=\"true\">\r\n @if (fileCount$ | async; as fileCount) { @if (fileCount === 0) {\r\n <li fd-list-item>\r\n <div fd-list-content style=\"text-align: center\">\r\n <span>{{ 'NoFiles' | bbbTranslate }}</span>\r\n </div>\r\n </li>\r\n } } @for (file of value; track file) { @if (valueExtra$ | async; as valueExtra) { @if (!file.IsDeleted) {\r\n <li fd-list-item>\r\n <span fd-list-thumbnail>\r\n @if (valueExtra[file.Id].IsIcon) {\r\n <fd-icon [glyph]=\"valueExtra[file.Id].FileUrl\"></fd-icon>\r\n } @else {\r\n <fd-avatar size=\"m\" [image]=\"valueExtra[file.Id].FileUrl || ''\"></fd-avatar>\r\n }\r\n </span>\r\n <!-- for byline, fd-list-content is mandatory -->\r\n <div fd-list-content>\r\n <div fd-list-title>{{ file.FileName }}</div>\r\n <div fd-list-byline [twoCol]=\"true\">\r\n <div fd-list-byline-left></div>\r\n <div fd-list-byline-right style=\"display: flex; justify-content: flex-end\">\r\n <fd-toolbar [fdType]=\"'transparent'\" [clearBorder]=\"true\">\r\n @if (file.IsNew) {\r\n <span\r\n fd-toolbar-item\r\n fd-object-status\r\n [status]=\"file.Id | uploadFileStatus: valueExtra\"\r\n [label]=\"valueExtra[file.Id]?.UploadState || ''\"\r\n [title]=\"valueExtra[file.Id]?.UploadState\"\r\n [aria-label]=\"'File Upload Status Is ' + valueExtra[file.Id]?.UploadState\"\r\n ></span>\r\n @if (valueExtra[file.Id].UploadState === 'Uploading') {\r\n <fd-slider\r\n [contentDensity]=\"(contentDensity$ | async)!!\"\r\n [(ngModel)]=\"valueExtra[file.Id].Progress\"\r\n [name]=\"'filerLinear_' + id\"\r\n fd-toolbar-item\r\n [id]=\"id\"\r\n [min]=\"0\"\r\n [max]=\"100\"\r\n [step]=\"1\"\r\n >\r\n </fd-slider>\r\n } }\r\n </fd-toolbar>\r\n </div>\r\n </div>\r\n </div>\r\n @if ((disableOrReadonly$ | async) === false && valueExtra[file.Id].UploadState !== 'Uploading') {\r\n <button fd-button fdType=\"transparent\" glyph=\"decline\" (click)=\"onFileDeleted(file.Id)\"></button>\r\n } @if (valueExtra[file.Id].UploadState === 'Uploading') {\r\n <button fd-button [fdType]=\"'transparent'\" [glyph]=\"'stop'\" (click)=\"onTerminate(file)\"></button>\r\n } @if (valueExtra[file.Id].UploadState === 'Error') {\r\n <button fd-button [fdType]=\"'transparent'\" [glyph]=\"'refresh'\" (click)=\"onRetry(file)\"></button>\r\n }\r\n </li>\r\n } } }\r\n</ul>\r\n} @if ((disableOrReadonly$ | async) !== true) {\r\n<fd-toolbar\r\n style=\"display: block\"\r\n [style.height.px]=\"parameters.ModeValue === '1' ? 0 : null\"\r\n [fdType]=\"'transparent'\"\r\n [clearBorder]=\"true\"\r\n>\r\n <fd-file-uploader\r\n fd-toolbar-item\r\n [class.hide-file-uploader]=\"parameters?.HideAttachButton\"\r\n [id]=\"id\"\r\n [name]=\"id\"\r\n [placeholder]=\"'AttachFile' | bbbTranslate\"\r\n [buttonLabel]=\"'AttachFile' | bbbTranslate\"\r\n [buttonAriaLabel]=\"'AttachFile' | bbbTranslate\"\r\n [accept]=\"Setting.ValidExtensions || ''\"\r\n [multiple]=\"maxFileCount > 1\"\r\n (selectedFilesChanged)=\"onFileSelection($event)\"\r\n [contentDensity]=\"(contentDensity$ | async)!!\"\r\n ></fd-file-uploader>\r\n</fd-toolbar>\r\n}\r\n", styles: [":host{display:block;width:100%;height:100%}:host ::ng-deep .fd-slider__handle{display:none}:host ::ng-deep .fd-file-uploader input{display:none}:host ::ng-deep fd-file-uploader .fd-button{background-color:var(--sapButton_Lite_Background);border-color:var(--sapButton_Lite_BorderColor);color:var(--sapButton_Lite_TextColor)}:host .hide-file-uploader{visibility:hidden;height:0;width:0}\n"], dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.AvatarComponent, selector: "fd-avatar", inputs: ["class", "id", "ariaLabel", "ariaLabelledby", "label", "size", "font", "glyph", "zoomGlyph", "circle", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "colorIndication", "random", "clickable", "valueState", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { 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.FileUploaderComponent, selector: "fd-file-uploader", inputs: ["disabled", "required", "multiple", "accept", "dragndrop", "maxFileSize", "minFileSize", "id", "ariaLabel", "ariaLabelledBy", "placeholder", "buttonLabel", "buttonAriaLabel", "state", "fileLimit", "inputHidden", "width"], outputs: ["selectedFilesChanged", "selectedInvalidFiles", "onDragEnter", "onDragLeave"] }, { 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.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i8.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole", "id", "preventClick"], outputs: ["keyDown"] }, { kind: "directive", type: i8.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i8.ListSecondaryDirective, selector: "[fd-list-secondary], [fdListSecondary]", inputs: ["type"] }, { kind: "directive", type: i8.ListBylineDirective, selector: "[fdListByline], [fd-list-byline]", inputs: ["twoCol", "wrap"] }, { kind: "directive", type: i8.ListBylineLeftDirective, selector: "[fdListBylineLeft], [fd-list-byline-left]", inputs: ["wrap"] }, { kind: "directive", type: i8.ListBylineRightDirective, selector: "[fdListBylineRight], [fd-list-byline-right]", inputs: ["status", "wrap"] }, { kind: "directive", type: i8.ListContentDirective, selector: "[fdListContent], [fd-list-content]", inputs: ["twoCol"] }, { kind: "directive", type: i8.ListThumbnailDirective, selector: "[fdListThumbnail], [fd-list-thumbnail]" }, { kind: "component", type: i9.ObjectStatusComponent, selector: "[fd-object-status]", inputs: ["class", "status", "glyph", "glyphFont", "label", "glyphAriaLabel", "indicationColor", "clickable", "inverted", "large", "secondaryIndication", "textTemplate"] }, { kind: "component", type: i10.ToolbarComponent, selector: "fd-toolbar", inputs: ["titleId", "class", "shouldOverflow", "fdType", "title", "active", "clearBorder", "forceOverflow", "tabindex", "headingLevel", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: i10.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "component", type: i11.SliderComponent, selector: "fd-slider", inputs: ["id", "class", "ariaLabelledBy", "ariaLabel", "min", "max", "step", "jump", "tickmarksBetweenLabels", "mode", "showTicks", "showTicksLabels", "customValues", "tooltipMode", "hideProgressBar", "disabled", "vertical", "value"] }, { kind: "component", type: i12.ProgressIndicatorComponent, selector: "fd-progress-indicator", inputs: ["valueText", "unit", "valueMin", "valueMax", "valueNow", "state", "animate"] }, { kind: "pipe", type: i13.AsyncPipe, name: "async" }, { kind: "pipe", type: i13.KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: i14.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i15.UploadFileStatusPipe, name: "uploadFileStatus" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36
36
|
}
|
|
37
37
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaListFileLinearComponent, decorators: [{
|
|
38
38
|
type: Component,
|