barsa-sap-ui 2.2.63 → 2.2.64

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.
Files changed (22) hide show
  1. package/esm2022/lib/barsa-cartable-form/barsa-cartable-form.component.mjs +1 -1
  2. package/esm2022/lib/barsa-chat/barsa-chat.component.mjs +2 -2
  3. package/esm2022/lib/barsa-dynamic-field/barsa-dynamic-field.component.mjs +1 -1
  4. package/esm2022/lib/barsa-question-answer-form/barsa-question-answer-form.component.mjs +1 -1
  5. package/esm2022/lib/barsa-table-column/barsa-table-column.component.mjs +1 -1
  6. package/esm2022/lib/column-matrix-renderer/column-matrix-renderer.component.mjs +1 -1
  7. package/esm2022/lib/column-renderer/column-renderer.component.mjs +5 -3
  8. package/esm2022/lib/layout-control/layout-control.component.mjs +5 -3
  9. package/esm2022/lib/list-item/list-item.component.mjs +1 -1
  10. package/esm2022/lib/models/grid-data-provider.mjs +5 -3
  11. package/esm2022/lib/sap-ui-report-base.component.mjs +2 -2
  12. package/esm2022/lib/ui-container-with-button/ui-container-with-button.component.mjs +1 -1
  13. package/esm2022/lib/ui-date-range-ex/ui-date-range-ex.component.mjs +2 -2
  14. package/esm2022/lib/ui-matrix-view/ui-matrix-view.component.mjs +2 -2
  15. package/esm2022/lib/ui-mo-info-general-object-ui/ui-mo-info-general-object-ui.component.mjs +1 -1
  16. package/esm2022/lib/ui-num-int-ui/ui-num-int-ui.component.mjs +3 -3
  17. package/fesm2022/barsa-sap-ui.mjs +27 -21
  18. package/fesm2022/barsa-sap-ui.mjs.map +1 -1
  19. package/lib/column-renderer/column-renderer.component.d.ts +2 -1
  20. package/lib/layout-control/layout-control.component.d.ts +2 -1
  21. package/lib/models/grid-data-provider.d.ts +2 -1
  22. package/package.json +1 -1
@@ -29,7 +29,7 @@ export class BarsaCartableFormComponent extends FormBaseComponent {
29
29
  return isSmallDevice;
30
30
  }
31
31
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaCartableFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
32
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BarsaCartableFormComponent, selector: "bsu-barsa-cartable-form", host: { properties: { "class.smallDevice": "this._isSmallDevice" } }, providers: [FormPanelService], usesInheritance: true, ngImport: i0, template: "@if (layout94$ | async; as layout94) {\r\n<div class=\"groups-wrapper\">\r\n @if ('\u062C\u0633\u062A\u062C\u0648 \u06AF\u0631\u0648\u0647' | controlUi: layout94; as configUi) {\r\n <bsu-layout-control\r\n class=\"search-group\"\r\n [caption]=\"'\u06AF\u0631\u0648\u0647\u0647\u0627\u06CC \u06A9\u0627\u0631\u062A\u0627\u0628\u0644'\"\r\n [config]=\"configUi\"\r\n [showLabel]=\"false\"\r\n ></bsu-layout-control>\r\n } @if ('\u06AF\u0631\u0648\u0647\u0647\u0627\u06CC \u06A9\u0627\u0631\u062A\u0627\u0628\u0644 \u06A9\u0627\u0631\u0628\u0631' | controlUi: layout94; as configUi) {\r\n <bsu-layout-control\r\n class=\"cartable-groups\"\r\n [caption]=\"'\u06AF\u0631\u0648\u0647\u0647\u0627\u06CC \u06A9\u0627\u0631\u062A\u0627\u0628\u0644'\"\r\n [config]=\"configUi\"\r\n [showLabel]=\"false\"\r\n ></bsu-layout-control>\r\n }\r\n</div>\r\n@if ('\u0631\u062F\u06CC\u0641\u0647\u0627\u06CC \u06A9\u0627\u0631\u062A\u0627\u0628\u0644' | controlUi: layout94; as configUi) {\r\n<bsu-layout-control\r\n id=\"items-cartable\"\r\n class=\"cartable-radif\"\r\n [caption]=\"'\u0631\u062F\u06CC\u0641\u0647\u0627\u06CC \u06A9\u0627\u0631\u062A\u0627\u0628\u0644'\"\r\n [config]=\"configUi\"\r\n [showLabel]=\"false\"\r\n></bsu-layout-control>\r\n} }\r\n", styles: [":host{display:flex;width:100%;height:100%;border:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);background-color:var(--sapBaseColor)}:host.smallDevice{flex-direction:column;min-height:100vh}:host.smallDevice ::ng-deep bnrc-field-ui{margin:unset!important}:host .groups-wrapper{display:flex;flex-direction:column;min-width:280px;max-width:280px;padding:0 2px;border-left:var(--sapList_BorderWidth) solid var(--sapList_BorderColor)}:host .cartable-groups{flex:1}:host.smallDevice .groups-wrapper{flex:unset;width:100%;min-width:100%;max-width:100%}:host.smallDevice .search-group{display:none}:host.smallDevice .cartable-groups{flex:unset}div{flex:1}:host ::ng-deep .viewer-container{min-height:100%!important}:host ::ng-deep .viewer-container fd-layout-panel{box-shadow:none}:host ::ng-deep tbody{border:none!important}:host ::ng-deep bnrc-field-ui{padding:0!important}#items-cartable ::ng-deep bsu-barsa-ulv-main{margin:0!important}#items-cartable ::ng-deep bsu-barsa-ulv-main fd-toolbar{border:none!important}\n"], dependencies: [{ kind: "component", type: i1.LayoutControlComponent, selector: "bsu-layout-control", inputs: ["inlineEdit", "caption", "focusControl", "showLabel", "maxLabelWidth", "hasHorizontalText", "contentDensity", "flex", "RefreshLabel", "SetVisible"], outputs: ["events"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.ControlUiPipe, name: "controlUi" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
32
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BarsaCartableFormComponent, selector: "bsu-barsa-cartable-form", host: { properties: { "class.smallDevice": "this._isSmallDevice" } }, providers: [FormPanelService], usesInheritance: true, ngImport: i0, template: "@if (layout94$ | async; as layout94) {\r\n<div class=\"groups-wrapper\">\r\n @if ('\u062C\u0633\u062A\u062C\u0648 \u06AF\u0631\u0648\u0647' | controlUi: layout94; as configUi) {\r\n <bsu-layout-control\r\n class=\"search-group\"\r\n [caption]=\"'\u06AF\u0631\u0648\u0647\u0647\u0627\u06CC \u06A9\u0627\u0631\u062A\u0627\u0628\u0644'\"\r\n [config]=\"configUi\"\r\n [showLabel]=\"false\"\r\n ></bsu-layout-control>\r\n } @if ('\u06AF\u0631\u0648\u0647\u0647\u0627\u06CC \u06A9\u0627\u0631\u062A\u0627\u0628\u0644 \u06A9\u0627\u0631\u0628\u0631' | controlUi: layout94; as configUi) {\r\n <bsu-layout-control\r\n class=\"cartable-groups\"\r\n [caption]=\"'\u06AF\u0631\u0648\u0647\u0647\u0627\u06CC \u06A9\u0627\u0631\u062A\u0627\u0628\u0644'\"\r\n [config]=\"configUi\"\r\n [showLabel]=\"false\"\r\n ></bsu-layout-control>\r\n }\r\n</div>\r\n@if ('\u0631\u062F\u06CC\u0641\u0647\u0627\u06CC \u06A9\u0627\u0631\u062A\u0627\u0628\u0644' | controlUi: layout94; as configUi) {\r\n<bsu-layout-control\r\n id=\"items-cartable\"\r\n class=\"cartable-radif\"\r\n [caption]=\"'\u0631\u062F\u06CC\u0641\u0647\u0627\u06CC \u06A9\u0627\u0631\u062A\u0627\u0628\u0644'\"\r\n [config]=\"configUi\"\r\n [showLabel]=\"false\"\r\n></bsu-layout-control>\r\n} }\r\n", styles: [":host{display:flex;width:100%;height:100%;border:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);background-color:var(--sapBaseColor)}:host.smallDevice{flex-direction:column;min-height:100vh}:host.smallDevice ::ng-deep bnrc-field-ui{margin:unset!important}:host .groups-wrapper{display:flex;flex-direction:column;min-width:280px;max-width:280px;padding:0 2px;border-left:var(--sapList_BorderWidth) solid var(--sapList_BorderColor)}:host .cartable-groups{flex:1}:host.smallDevice .groups-wrapper{flex:unset;width:100%;min-width:100%;max-width:100%}:host.smallDevice .search-group{display:none}:host.smallDevice .cartable-groups{flex:unset}div{flex:1}:host ::ng-deep .viewer-container{min-height:100%!important}:host ::ng-deep .viewer-container fd-layout-panel{box-shadow:none}:host ::ng-deep tbody{border:none!important}:host ::ng-deep bnrc-field-ui{padding:0!important}#items-cartable ::ng-deep bsu-barsa-ulv-main{margin:0!important}#items-cartable ::ng-deep bsu-barsa-ulv-main fd-toolbar{border:none!important}\n"], dependencies: [{ kind: "component", type: i1.LayoutControlComponent, selector: "bsu-layout-control", inputs: ["inlineEdit", "cellEdit", "caption", "focusControl", "showLabel", "maxLabelWidth", "hasHorizontalText", "contentDensity", "flex", "RefreshLabel", "SetVisible"], outputs: ["events"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.ControlUiPipe, name: "controlUi" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
33
33
  }
34
34
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaCartableFormComponent, decorators: [{
35
35
  type: Component,
@@ -31,7 +31,7 @@ export class BarsaChatComponent extends FormBaseComponent {
31
31
  document.body.classList.remove('chat-mode');
32
32
  }
33
33
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaChatComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
34
- 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\" ></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\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\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\" style=\"flex:1\"></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 @if(layout94$ | async;as layout94){ @if ('\u0631\u062F\u06CC\u0641 \u06AF\u0641\u062A\u06AF\u0648 \u0645\u0648\u062C\u0648\u062F\u06CC\u062A' | controlUi: layout94; as configUi) {\r\n <bsu-layout-control [config]=\"configUi\"></bsu-layout-control>\r\n } }\r\n </div>\r\n </div>\r\n </div>\r\n \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: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i4.LayoutControlComponent, selector: "bsu-layout-control", inputs: ["inlineEdit", "caption", "focusControl", "showLabel", "maxLabelWidth", "hasHorizontalText", "contentDensity", "flex", "RefreshLabel", "SetVisible"], outputs: ["events"] }, { kind: "component", type: i5.BarsaChatContentComponent, selector: "bsu-barsa-chat-content" }, { kind: "component", type: i6.BarsaChatThreadsListComponent, selector: "bsu-barsa-chat-threads-list" }, { kind: "component", type: i7.BarsaChatThreadsListToolbarComponent, selector: "bsu-barsa-chat-threads-list-toolbar" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.ControlUiPipe, name: "controlUi" }], animations: [
34
+ 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\" ></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\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\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\" style=\"flex:1\"></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 @if(layout94$ | async;as layout94){ @if ('\u0631\u062F\u06CC\u0641 \u06AF\u0641\u062A\u06AF\u0648 \u0645\u0648\u062C\u0648\u062F\u06CC\u062A' | controlUi: layout94; as configUi) {\r\n <bsu-layout-control [config]=\"configUi\"></bsu-layout-control>\r\n } }\r\n </div>\r\n </div>\r\n </div>\r\n \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: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i4.LayoutControlComponent, selector: "bsu-layout-control", inputs: ["inlineEdit", "cellEdit", "caption", "focusControl", "showLabel", "maxLabelWidth", "hasHorizontalText", "contentDensity", "flex", "RefreshLabel", "SetVisible"], outputs: ["events"] }, { kind: "component", type: i5.BarsaChatContentComponent, selector: "bsu-barsa-chat-content" }, { kind: "component", type: i6.BarsaChatThreadsListComponent, selector: "bsu-barsa-chat-threads-list" }, { kind: "component", type: i7.BarsaChatThreadsListToolbarComponent, selector: "bsu-barsa-chat-threads-list-toolbar" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.ControlUiPipe, name: "controlUi" }], animations: [
35
35
  trigger('inContentAnimation', [
36
36
  transition(':enter', [
37
37
  style({ opacity: 0, transform: 'scale(50%, 50%)' }),
@@ -81,4 +81,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
81
81
  }], propDecorators: { simple: [{
82
82
  type: Input
83
83
  }] } });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtY2hhdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi9iYXJzYS1jaGF0L2JhcnNhLWNoYXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtY2hhdC9iYXJzYS1jaGF0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWtCLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sT0FBTyxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7O0FBK0IzRSxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsaUJBQWlCO0lBN0J6RDs7UUE4QmEsV0FBTSxHQUFHLElBQUksQ0FBQztRQUV2QixXQUFNLEdBQUcsT0FBTyxDQUFDO1FBQ2pCLG1CQUFjLEdBQStCLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxRCxhQUFRLEdBQWlDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0RCxvQkFBZSxHQUErQixNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0Qsb0JBQWUsR0FBRyxFQUFFLENBQUM7S0FXeEI7SUFWRyxZQUFZLENBQUMsTUFBTTtRQUNmLElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDL0MsQ0FBQztJQUNELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFDRCxXQUFXO1FBQ1AsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2hELENBQUM7K0dBakJRLGtCQUFrQjttR0FBbEIsa0JBQWtCLHVFQXpCaEIsQ0FBQyxnQkFBZ0IsQ0FBQyxpRENUakMsK2pMQTRHQSxndENEbEdnQjtZQUNSLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRTtnQkFDMUIsVUFBVSxDQUFDLFFBQVEsRUFBRTtvQkFDakIsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQztvQkFDbkQsT0FBTyxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLENBQUMsQ0FBQztpQkFDbkYsQ0FBQztnQkFDRixVQUFVLENBQUMsUUFBUSxFQUFFO29CQUNqQixLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxDQUFDO29CQUNyRCxPQUFPLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQztpQkFDaEYsQ0FBQzthQUNMLENBQUM7WUFDRixPQUFPLENBQUMsc0JBQXNCLEVBQUU7Z0JBQzVCLFVBQVUsQ0FBQyxRQUFRLEVBQUU7b0JBQ2pCLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLENBQUM7b0JBQ25ELE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO2lCQUMvRSxDQUFDO2dCQUNGLFVBQVUsQ0FBQyxRQUFRLEVBQUU7b0JBQ2pCLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDO29CQUNqRCxPQUFPLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQztpQkFDaEYsQ0FBQzthQUNMLENBQUM7U0FDTDs7NEZBR1Esa0JBQWtCO2tCQTdCOUIsU0FBUzsrQkFDSSxnQkFBZ0IsYUFHZixDQUFDLGdCQUFnQixDQUFDLGNBQ2pCO3dCQUNSLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRTs0QkFDMUIsVUFBVSxDQUFDLFFBQVEsRUFBRTtnQ0FDakIsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQztnQ0FDbkQsT0FBTyxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLENBQUMsQ0FBQzs2QkFDbkYsQ0FBQzs0QkFDRixVQUFVLENBQUMsUUFBUSxFQUFFO2dDQUNqQixLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxDQUFDO2dDQUNyRCxPQUFPLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQzs2QkFDaEYsQ0FBQzt5QkFDTCxDQUFDO3dCQUNGLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRTs0QkFDNUIsVUFBVSxDQUFDLFFBQVEsRUFBRTtnQ0FDakIsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQztnQ0FDbkQsT0FBTyxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7NkJBQy9FLENBQUM7NEJBQ0YsVUFBVSxDQUFDLFFBQVEsRUFBRTtnQ0FDakIsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLENBQUM7Z0NBQ2pELE9BQU8sQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDOzZCQUNoRixDQUFDO3lCQUNMLENBQUM7cUJBQ0wsY0FDVyxLQUFLOzhCQUdSLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBzaWduYWwsIFdyaXRhYmxlU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBqbW9tZW50IGZyb20gJ21vbWVudC1qYWxhYWxpJztcclxuaW1wb3J0IHsgYW5pbWF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgRm9ybUJhc2VDb21wb25lbnQsIEZvcm1QYW5lbFNlcnZpY2UgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYnN1LWJhcnNhLWNoYXQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JhcnNhLWNoYXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmw6ICcuL2JhcnNhLWNoYXQuY29tcG9uZW50LmNzcycsXHJcbiAgICBwcm92aWRlcnM6IFtGb3JtUGFuZWxTZXJ2aWNlXSxcclxuICAgIGFuaW1hdGlvbnM6IFtcclxuICAgICAgICB0cmlnZ2VyKCdpbkNvbnRlbnRBbmltYXRpb24nLCBbXHJcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcclxuICAgICAgICAgICAgICAgIHN0eWxlKHsgb3BhY2l0eTogMCwgdHJhbnNmb3JtOiAnc2NhbGUoNTAlLCA1MCUpJyB9KSxcclxuICAgICAgICAgICAgICAgIGFuaW1hdGUoJzMwMG1zIGVhc2Utb3V0Jywgc3R5bGUoeyBvcGFjaXR5OiAxLCB0cmFuc2Zvcm06ICdzY2FsZSgxMDAlLCAxMDAlKScgfSkpXHJcbiAgICAgICAgICAgIF0pLFxyXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBbXHJcbiAgICAgICAgICAgICAgICBzdHlsZSh7IG9wYWNpdHk6IDEsIHRyYW5zZm9ybTogJ3NjYWxlKDEwMCUsIDEwMCUpJyB9KSxcclxuICAgICAgICAgICAgICAgIGFuaW1hdGUoJzMwMG1zIGVhc2UtaW4nLCBzdHlsZSh7IG9wYWNpdHk6IDAsIHRyYW5zZm9ybTogJ3NjYWxlKDUwJSwgNTAlKScgfSkpXHJcbiAgICAgICAgICAgIF0pXHJcbiAgICAgICAgXSksXHJcbiAgICAgICAgdHJpZ2dlcignaW5PdXRSZXBseWluZ01lc3NhZ2UnLCBbXHJcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcclxuICAgICAgICAgICAgICAgIHN0eWxlKHsgb3BhY2l0eTogMCwgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSg1MCUpJyB9KSxcclxuICAgICAgICAgICAgICAgIGFuaW1hdGUoJzMwMG1zIGVhc2Utb3V0Jywgc3R5bGUoeyBvcGFjaXR5OiAxLCB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKDApJyB9KSlcclxuICAgICAgICAgICAgXSksXHJcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtcclxuICAgICAgICAgICAgICAgIHN0eWxlKHsgb3BhY2l0eTogMSwgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgwKScgfSksXHJcbiAgICAgICAgICAgICAgICBhbmltYXRlKCczMDBtcyBlYXNlLWluJywgc3R5bGUoeyBvcGFjaXR5OiAwLCB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKDUwJSknIH0pKVxyXG4gICAgICAgICAgICBdKVxyXG4gICAgICAgIF0pXHJcbiAgICBdLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIEJhcnNhQ2hhdENvbXBvbmVudCBleHRlbmRzIEZvcm1CYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgQElucHV0KCkgc2ltcGxlID0gdHJ1ZTtcclxuXHJcbiAgICBtb21lbnQgPSBqbW9tZW50O1xyXG4gICAgc2VsZWN0ZWRUaHJlYWQ6IFdyaXRhYmxlU2lnbmFsPGFueSB8IG51bGw+ID0gc2lnbmFsKG51bGwpO1xyXG4gICAgbWVzc2FnZXM6IFdyaXRhYmxlU2lnbmFsPGFueVtdIHwgbnVsbD4gPSBzaWduYWwobnVsbCk7XHJcbiAgICByZXBseWluZ01lc3NhZ2U6IFdyaXRhYmxlU2lnbmFsPGFueSB8IG51bGw+ID0gc2lnbmFsKG51bGwpO1xyXG4gICAgX25ld01lc3NhZ2VUZXh0ID0gJyc7XHJcbiAgICBvblRleHRDaGFuZ2UoJGV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fbmV3TWVzc2FnZVRleHQgPSAkZXZlbnQudGFyZ2V0LnZhbHVlO1xyXG4gICAgfVxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ2NoYXQtbW9kZScpO1xyXG4gICAgfVxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCdjaGF0LW1vZGUnKTtcclxuICAgIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgICBjbGFzcz1cInR3LWZsZXggdHctdy1mdWxsIHR3LWJnLWdyYWRpZW50LXRvLXIgdHctZnJvbS1bIzVkNmU3Zl0gdHctdG8tWyMzNTRhNWZdIGRhcms6dHctZnJvbS1bIzI1MzQ0M10gZGFyazp0dy10by1bIzEwMTYxY11cIlxyXG4gICAgZmlsbEVtcHR5U3BhY2VcclxuICAgIFtjbGFzcy50dy1oLXNjcmVlbl09XCIhc2ltcGxlXCJcclxuICAgIFtjbGFzcy50dy1qdXN0aWZ5LWNlbnRlcl09XCJzaW1wbGVcIlxyXG4+XHJcbiAgICBAaWYgKCFzaW1wbGUpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJ0dy1iZy1ibGFjay9bLjNdIDJ4bDp0dy1ncm93IHR3LXNocmluayB0dy1oLWZ1bGxcIj48L2Rpdj5cclxuICAgIH1cclxuICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cInR3LWgtZnVsbCB0dy1mbGV4IDJ4bDp0dy1jb250YWluZXIgbWF4LXctWzgwcmVtXSB0dy1zaHJpbmstMCB0dy1yZWxhdGl2ZVwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAndHctZ3JvdyAyeGw6dHctZ3Jvdy0wJzogIXNpbXBsZSxcclxuICAgICAgICAgICAgJ3R3LXctZnVsbCc6IHNpbXBsZVxyXG4gICAgICAgIH1cIlxyXG4gICAgPlxyXG4gICAgICAgIEBpZiAoIXNpbXBsZSkge1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0dy1ncm93LTAgdHctc2hyaW5rLTAgdHctdy1mdWxsIG1kOnR3LXctOTYgdHctcC0wIG1kOnR3LXAtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInR3LWZsZXggdHctZmxleC1jb2wgdHctdy1mdWxsIHR3LWgtZnVsbCB0dy1vdmVyZmxvdy1oaWRkZW4gdHctYm9yZGVyLWwgdHctYm9yZGVyLWwtZ3JheS0zMDAgbWQ6dHctcm91bmRlZC0yeGwgbWQ6dHctYm9yZGVyIG1kOnR3LWJvcmRlci1sLWdyYXktMzAwIG1kOnR3LWJvcmRlci1ncmF5LTMwMCBkYXJrOnR3LWJvcmRlci1sLWdyYXktNjAwIG1kOmRhcms6dHctYm9yZGVyLWwtZ3JheS02MDAgbWQ6ZGFyazp0dy1ib3JkZXItZ3JheS02MDBcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8YnN1LWJhcnNhLWNoYXQtdGhyZWFkcy1saXN0LXRvb2xiYXI+PC9ic3UtYmFyc2EtY2hhdC10aHJlYWRzLWxpc3QtdG9vbGJhcj5cclxuICAgICAgICAgICAgICAgIDxic3UtYmFyc2EtY2hhdC10aHJlYWRzLWxpc3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSBAZm9yICh0aHJlYWQgb2YgdGhyZWFkczsgdHJhY2sgdGhyZWFkLmlkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGJzdS1iYXJzYS1jaGF0LXRocmVhZCBbdGhyZWFkXT1cInRocmVhZFwiID48L2JzdS1iYXJzYS1jaGF0LXRocmVhZD5cclxuICAgICAgICAgICAgICAgICAgICB9IC0tPlxyXG4gICAgICAgICAgICAgICAgPC9ic3UtYmFyc2EtY2hhdC10aHJlYWRzLWxpc3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJ0dy1hYnNvbHV0ZSB0dy10b3AtMCB0dy1sZWZ0LTAgdHctdy1mdWxsIHR3LWgtZnVsbCB0dy1iZy1bdXJsKCdhc3NldHMvY2hhdC1iZy5wbmcnKV0gdHctYmctZml4ZWQgdHctb3BhY2l0eS0yNVwiXHJcbiAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgIH1cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwidHctZ3JvdyB0dy1zaHJpbmsgdHctcmVsYXRpdmVcIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgICAgICAgICAnbWQ6dHctcHktNiBtZDp0dy1wbC02IHR3LWhpZGRlbiBtZDp0dy1mbGV4JzogIXNpbXBsZSxcclxuICAgICAgICAgICAgICAgICd0dy1mbGV4Jzogc2ltcGxlXHJcbiAgICAgICAgICAgIH1cIlxyXG4gICAgICAgID5cclxuXHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIEBpbkNvbnRlbnRBbmltYXRpb25cclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidHctaC1mdWxsIHR3LXctZnVsbCB0dy1mbGV4IHR3LWZsZXgtY29sIHR3LXJlbGF0aXZlIG1kOnR3LWJvcmRlci1ncmF5LTMwMCBtZDpkYXJrOnR3LWJvcmRlci1ncmF5LTYwMCB0dy1vdmVyZmxvdy1oaWRkZW5cIlxyXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICdtZDp0dy1ib3JkZXIgbWQ6dHctcm91bmRlZC0yeGwnOiAhc2ltcGxlXHJcbiAgICAgICAgICAgICAgICB9XCJcclxuICAgICAgICAgICAgPlxyXG5cclxuICAgICAgICAgICAgICAgIDxic3UtYmFyc2EtY2hhdC1jb250ZW50IGlkPVwiY2hhdC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICBAaWYobGF5b3V0OTQkIHwgYXN5bmM7YXMgbGF5b3V0OTQpeyBAaWYgKCfZhNuM2LPYqiDar9mB2Krar9mIJyB8IGNvbnRyb2xVaTogbGF5b3V0OTQ7IGFzIGNvbmZpZ1VpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGJzdS1sYXlvdXQtY29udHJvbCBbY29uZmlnXT1cImNvbmZpZ1VpXCIgc3R5bGU9XCJmbGV4OjFcIj48L2JzdS1sYXlvdXQtY29udHJvbD5cclxuICAgICAgICAgICAgICAgICAgICB9IH1cclxuICAgICAgICAgICAgICAgIDwvYnN1LWJhcnNhLWNoYXQtY29udGVudD5cclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInR3LXctZnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAndHctcmVsYXRpdmUnOiAhc2ltcGxlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAnMnhsOnR3LXJvdW5kZWQtdC14bCB0dy1ncm93LTAgdHctc2hyaW5rLTAnOiBzaW1wbGVcclxuICAgICAgICAgICAgICAgICAgICB9XCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICBAaWYgKHJlcGx5aW5nTWVzc2FnZSgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5PdXRSZXBseWluZ01lc3NhZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0dy13LWZ1bGwgdHctcHgtMiB0dy1weS0xIHR3LWJvcmRlci1yLTQgdHctYm9yZGVyLXItYnViYmxlLW1pbmUgdHctZmxleCB0dy1nYXAtMiB0ZS1pdGVtcy1jZW50ZXIgdHctYWJzb2x1dGUgdHctei0wIHR3LWJnLWRlZmF1bHQgdHctcmlnaHQtMCAtdHctdG9wLTE0XCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2x5cGg9XCJkZWNsaW5lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHctZ3Jvdy0wIHR3LXNocmluay0wXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZXBseWluZ01lc3NhZ2Uuc2V0KG51bGwpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHctZmxleCB0dy1mbGV4LWNvbCB0dy1ncm93IHR3LXNocmluayB0dy1vdmVyZmxvdy1oaWRkZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHctZm9udC1ib2xkXCI+e3sgcmVwbHlpbmdNZXNzYWdlKCkub3duZXIubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHctdHJ1bmNhdGVcIj57e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGx5aW5nTWVzc2FnZSgpLnRleHQgPz8gcmVwbHlpbmdNZXNzYWdlKCkuZmlsZT8ubmFtZSA/PyByZXBseWluZ01lc3NhZ2UoKS5pbWFnZT8ubmFtZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHctdy04IHR3LXNocmluay0wIHR3LWdyb3ctMFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHctdy1mdWxsIHR3LXAtMiB0dy1mbGV4IHR3LWdhcC0yIHR3LWJvcmRlci10IHR3LWJvcmRlci10LWdyYXktMzAwIGRhcms6dHctYm9yZGVyLXQtZ3JheS02MDAgdHctYmctZGVmYXVsdCB0dy1pdGVtcy1lbmQgdHctei0xMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIEBpZihsYXlvdXQ5NCQgfCBhc3luYzthcyBsYXlvdXQ5NCl7IEBpZiAoJ9ix2K/bjNmBINqv2YHYqtqv2Ygg2YXZiNis2YjYr9uM2KonIHwgY29udHJvbFVpOiBsYXlvdXQ5NDsgYXMgY29uZmlnVWkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJzdS1sYXlvdXQtY29udHJvbCBbY29uZmlnXT1cImNvbmZpZ1VpXCI+PC9ic3UtbGF5b3V0LWNvbnRyb2w+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gIFxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInR3LWFic29sdXRlIHR3LXRvcC0xLzIgLXR3LXRyYW5zbGF0ZS15LTEvMiB0dy1sZWZ0LTEvMiAtdHctdHJhbnNsYXRlLXgtMS8yIHR3LWZsZXggdHctZmxleC1jb2wgdHctZ2FwLTggdHctaXRlbXMtY2VudGVyXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8aW1nIHNyYz1cImFzc2V0cy9ub3Qtc2VsZWN0ZWQtY2hhdC5wbmdcIiBjbGFzcz1cInR3LXctNjQgdHctb3BhY2l0eS0yNVwiIC8+IC0tPlxyXG4gICAgICAgICAgICAgICAgPCEtLSAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHctdGV4dC14bCB0dy1mb250LWJvbGQgdHctdGV4dC1ncmF5LTQwMCBkYXJrOnR3LXRleHQtZ3JheS01MDBcIj4tLT5cclxuICAgICAgICAgICAgICAgIDwhLS0gICAgICAgICAgICAgICAg2KjYsdin24wg2LTYsdmI2Lkg24zaqSDahtiqINix2Kcg2KfZhtiq2K7Yp9ioINqp2YbbjNivLS0+XHJcbiAgICAgICAgICAgICAgICA8IS0tICAgICAgICAgICAgPC9zcGFuPi0tPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIEBpZiAoIXNpbXBsZSkge1xyXG4gICAgPGRpdiBjbGFzcz1cInR3LWJnLWJsYWNrL1suM10gMnhsOnR3LWdyb3cgdHctc2hyaW5rIHR3LWgtZnVsbFwiPjwvZGl2PlxyXG4gICAgfVxyXG48L2Rpdj5cclxuIl19
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtY2hhdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi9iYXJzYS1jaGF0L2JhcnNhLWNoYXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtY2hhdC9iYXJzYS1jaGF0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWtCLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sT0FBTyxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7O0FBK0IzRSxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsaUJBQWlCO0lBN0J6RDs7UUE4QmEsV0FBTSxHQUFHLElBQUksQ0FBQztRQUV2QixXQUFNLEdBQUcsT0FBTyxDQUFDO1FBQ2pCLG1CQUFjLEdBQStCLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxRCxhQUFRLEdBQWlDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0RCxvQkFBZSxHQUErQixNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0Qsb0JBQWUsR0FBRyxFQUFFLENBQUM7S0FXeEI7SUFWRyxZQUFZLENBQUMsTUFBTTtRQUNmLElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDL0MsQ0FBQztJQUNELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFDRCxXQUFXO1FBQ1AsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2hELENBQUM7K0dBakJRLGtCQUFrQjttR0FBbEIsa0JBQWtCLHVFQXpCaEIsQ0FBQyxnQkFBZ0IsQ0FBQyxpRENUakMsK2pMQTRHQSw0dENEbEdnQjtZQUNSLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRTtnQkFDMUIsVUFBVSxDQUFDLFFBQVEsRUFBRTtvQkFDakIsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQztvQkFDbkQsT0FBTyxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLENBQUMsQ0FBQztpQkFDbkYsQ0FBQztnQkFDRixVQUFVLENBQUMsUUFBUSxFQUFFO29CQUNqQixLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxDQUFDO29CQUNyRCxPQUFPLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQztpQkFDaEYsQ0FBQzthQUNMLENBQUM7WUFDRixPQUFPLENBQUMsc0JBQXNCLEVBQUU7Z0JBQzVCLFVBQVUsQ0FBQyxRQUFRLEVBQUU7b0JBQ2pCLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLENBQUM7b0JBQ25ELE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO2lCQUMvRSxDQUFDO2dCQUNGLFVBQVUsQ0FBQyxRQUFRLEVBQUU7b0JBQ2pCLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDO29CQUNqRCxPQUFPLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQztpQkFDaEYsQ0FBQzthQUNMLENBQUM7U0FDTDs7NEZBR1Esa0JBQWtCO2tCQTdCOUIsU0FBUzsrQkFDSSxnQkFBZ0IsYUFHZixDQUFDLGdCQUFnQixDQUFDLGNBQ2pCO3dCQUNSLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRTs0QkFDMUIsVUFBVSxDQUFDLFFBQVEsRUFBRTtnQ0FDakIsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQztnQ0FDbkQsT0FBTyxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLENBQUMsQ0FBQzs2QkFDbkYsQ0FBQzs0QkFDRixVQUFVLENBQUMsUUFBUSxFQUFFO2dDQUNqQixLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxDQUFDO2dDQUNyRCxPQUFPLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQzs2QkFDaEYsQ0FBQzt5QkFDTCxDQUFDO3dCQUNGLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRTs0QkFDNUIsVUFBVSxDQUFDLFFBQVEsRUFBRTtnQ0FDakIsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQztnQ0FDbkQsT0FBTyxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7NkJBQy9FLENBQUM7NEJBQ0YsVUFBVSxDQUFDLFFBQVEsRUFBRTtnQ0FDakIsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLENBQUM7Z0NBQ2pELE9BQU8sQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDOzZCQUNoRixDQUFDO3lCQUNMLENBQUM7cUJBQ0wsY0FDVyxLQUFLOzhCQUdSLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBzaWduYWwsIFdyaXRhYmxlU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBqbW9tZW50IGZyb20gJ21vbWVudC1qYWxhYWxpJztcclxuaW1wb3J0IHsgYW5pbWF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgRm9ybUJhc2VDb21wb25lbnQsIEZvcm1QYW5lbFNlcnZpY2UgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYnN1LWJhcnNhLWNoYXQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JhcnNhLWNoYXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmw6ICcuL2JhcnNhLWNoYXQuY29tcG9uZW50LmNzcycsXHJcbiAgICBwcm92aWRlcnM6IFtGb3JtUGFuZWxTZXJ2aWNlXSxcclxuICAgIGFuaW1hdGlvbnM6IFtcclxuICAgICAgICB0cmlnZ2VyKCdpbkNvbnRlbnRBbmltYXRpb24nLCBbXHJcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcclxuICAgICAgICAgICAgICAgIHN0eWxlKHsgb3BhY2l0eTogMCwgdHJhbnNmb3JtOiAnc2NhbGUoNTAlLCA1MCUpJyB9KSxcclxuICAgICAgICAgICAgICAgIGFuaW1hdGUoJzMwMG1zIGVhc2Utb3V0Jywgc3R5bGUoeyBvcGFjaXR5OiAxLCB0cmFuc2Zvcm06ICdzY2FsZSgxMDAlLCAxMDAlKScgfSkpXHJcbiAgICAgICAgICAgIF0pLFxyXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBbXHJcbiAgICAgICAgICAgICAgICBzdHlsZSh7IG9wYWNpdHk6IDEsIHRyYW5zZm9ybTogJ3NjYWxlKDEwMCUsIDEwMCUpJyB9KSxcclxuICAgICAgICAgICAgICAgIGFuaW1hdGUoJzMwMG1zIGVhc2UtaW4nLCBzdHlsZSh7IG9wYWNpdHk6IDAsIHRyYW5zZm9ybTogJ3NjYWxlKDUwJSwgNTAlKScgfSkpXHJcbiAgICAgICAgICAgIF0pXHJcbiAgICAgICAgXSksXHJcbiAgICAgICAgdHJpZ2dlcignaW5PdXRSZXBseWluZ01lc3NhZ2UnLCBbXHJcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcclxuICAgICAgICAgICAgICAgIHN0eWxlKHsgb3BhY2l0eTogMCwgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSg1MCUpJyB9KSxcclxuICAgICAgICAgICAgICAgIGFuaW1hdGUoJzMwMG1zIGVhc2Utb3V0Jywgc3R5bGUoeyBvcGFjaXR5OiAxLCB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKDApJyB9KSlcclxuICAgICAgICAgICAgXSksXHJcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtcclxuICAgICAgICAgICAgICAgIHN0eWxlKHsgb3BhY2l0eTogMSwgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgwKScgfSksXHJcbiAgICAgICAgICAgICAgICBhbmltYXRlKCczMDBtcyBlYXNlLWluJywgc3R5bGUoeyBvcGFjaXR5OiAwLCB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKDUwJSknIH0pKVxyXG4gICAgICAgICAgICBdKVxyXG4gICAgICAgIF0pXHJcbiAgICBdLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIEJhcnNhQ2hhdENvbXBvbmVudCBleHRlbmRzIEZvcm1CYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgQElucHV0KCkgc2ltcGxlID0gdHJ1ZTtcclxuXHJcbiAgICBtb21lbnQgPSBqbW9tZW50O1xyXG4gICAgc2VsZWN0ZWRUaHJlYWQ6IFdyaXRhYmxlU2lnbmFsPGFueSB8IG51bGw+ID0gc2lnbmFsKG51bGwpO1xyXG4gICAgbWVzc2FnZXM6IFdyaXRhYmxlU2lnbmFsPGFueVtdIHwgbnVsbD4gPSBzaWduYWwobnVsbCk7XHJcbiAgICByZXBseWluZ01lc3NhZ2U6IFdyaXRhYmxlU2lnbmFsPGFueSB8IG51bGw+ID0gc2lnbmFsKG51bGwpO1xyXG4gICAgX25ld01lc3NhZ2VUZXh0ID0gJyc7XHJcbiAgICBvblRleHRDaGFuZ2UoJGV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fbmV3TWVzc2FnZVRleHQgPSAkZXZlbnQudGFyZ2V0LnZhbHVlO1xyXG4gICAgfVxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ2NoYXQtbW9kZScpO1xyXG4gICAgfVxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCdjaGF0LW1vZGUnKTtcclxuICAgIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgICBjbGFzcz1cInR3LWZsZXggdHctdy1mdWxsIHR3LWJnLWdyYWRpZW50LXRvLXIgdHctZnJvbS1bIzVkNmU3Zl0gdHctdG8tWyMzNTRhNWZdIGRhcms6dHctZnJvbS1bIzI1MzQ0M10gZGFyazp0dy10by1bIzEwMTYxY11cIlxyXG4gICAgZmlsbEVtcHR5U3BhY2VcclxuICAgIFtjbGFzcy50dy1oLXNjcmVlbl09XCIhc2ltcGxlXCJcclxuICAgIFtjbGFzcy50dy1qdXN0aWZ5LWNlbnRlcl09XCJzaW1wbGVcIlxyXG4+XHJcbiAgICBAaWYgKCFzaW1wbGUpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJ0dy1iZy1ibGFjay9bLjNdIDJ4bDp0dy1ncm93IHR3LXNocmluayB0dy1oLWZ1bGxcIj48L2Rpdj5cclxuICAgIH1cclxuICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cInR3LWgtZnVsbCB0dy1mbGV4IDJ4bDp0dy1jb250YWluZXIgbWF4LXctWzgwcmVtXSB0dy1zaHJpbmstMCB0dy1yZWxhdGl2ZVwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAndHctZ3JvdyAyeGw6dHctZ3Jvdy0wJzogIXNpbXBsZSxcclxuICAgICAgICAgICAgJ3R3LXctZnVsbCc6IHNpbXBsZVxyXG4gICAgICAgIH1cIlxyXG4gICAgPlxyXG4gICAgICAgIEBpZiAoIXNpbXBsZSkge1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0dy1ncm93LTAgdHctc2hyaW5rLTAgdHctdy1mdWxsIG1kOnR3LXctOTYgdHctcC0wIG1kOnR3LXAtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInR3LWZsZXggdHctZmxleC1jb2wgdHctdy1mdWxsIHR3LWgtZnVsbCB0dy1vdmVyZmxvdy1oaWRkZW4gdHctYm9yZGVyLWwgdHctYm9yZGVyLWwtZ3JheS0zMDAgbWQ6dHctcm91bmRlZC0yeGwgbWQ6dHctYm9yZGVyIG1kOnR3LWJvcmRlci1sLWdyYXktMzAwIG1kOnR3LWJvcmRlci1ncmF5LTMwMCBkYXJrOnR3LWJvcmRlci1sLWdyYXktNjAwIG1kOmRhcms6dHctYm9yZGVyLWwtZ3JheS02MDAgbWQ6ZGFyazp0dy1ib3JkZXItZ3JheS02MDBcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8YnN1LWJhcnNhLWNoYXQtdGhyZWFkcy1saXN0LXRvb2xiYXI+PC9ic3UtYmFyc2EtY2hhdC10aHJlYWRzLWxpc3QtdG9vbGJhcj5cclxuICAgICAgICAgICAgICAgIDxic3UtYmFyc2EtY2hhdC10aHJlYWRzLWxpc3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSBAZm9yICh0aHJlYWQgb2YgdGhyZWFkczsgdHJhY2sgdGhyZWFkLmlkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGJzdS1iYXJzYS1jaGF0LXRocmVhZCBbdGhyZWFkXT1cInRocmVhZFwiID48L2JzdS1iYXJzYS1jaGF0LXRocmVhZD5cclxuICAgICAgICAgICAgICAgICAgICB9IC0tPlxyXG4gICAgICAgICAgICAgICAgPC9ic3UtYmFyc2EtY2hhdC10aHJlYWRzLWxpc3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJ0dy1hYnNvbHV0ZSB0dy10b3AtMCB0dy1sZWZ0LTAgdHctdy1mdWxsIHR3LWgtZnVsbCB0dy1iZy1bdXJsKCdhc3NldHMvY2hhdC1iZy5wbmcnKV0gdHctYmctZml4ZWQgdHctb3BhY2l0eS0yNVwiXHJcbiAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgIH1cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwidHctZ3JvdyB0dy1zaHJpbmsgdHctcmVsYXRpdmVcIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgICAgICAgICAnbWQ6dHctcHktNiBtZDp0dy1wbC02IHR3LWhpZGRlbiBtZDp0dy1mbGV4JzogIXNpbXBsZSxcclxuICAgICAgICAgICAgICAgICd0dy1mbGV4Jzogc2ltcGxlXHJcbiAgICAgICAgICAgIH1cIlxyXG4gICAgICAgID5cclxuXHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIEBpbkNvbnRlbnRBbmltYXRpb25cclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidHctaC1mdWxsIHR3LXctZnVsbCB0dy1mbGV4IHR3LWZsZXgtY29sIHR3LXJlbGF0aXZlIG1kOnR3LWJvcmRlci1ncmF5LTMwMCBtZDpkYXJrOnR3LWJvcmRlci1ncmF5LTYwMCB0dy1vdmVyZmxvdy1oaWRkZW5cIlxyXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICdtZDp0dy1ib3JkZXIgbWQ6dHctcm91bmRlZC0yeGwnOiAhc2ltcGxlXHJcbiAgICAgICAgICAgICAgICB9XCJcclxuICAgICAgICAgICAgPlxyXG5cclxuICAgICAgICAgICAgICAgIDxic3UtYmFyc2EtY2hhdC1jb250ZW50IGlkPVwiY2hhdC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICBAaWYobGF5b3V0OTQkIHwgYXN5bmM7YXMgbGF5b3V0OTQpeyBAaWYgKCfZhNuM2LPYqiDar9mB2Krar9mIJyB8IGNvbnRyb2xVaTogbGF5b3V0OTQ7IGFzIGNvbmZpZ1VpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGJzdS1sYXlvdXQtY29udHJvbCBbY29uZmlnXT1cImNvbmZpZ1VpXCIgc3R5bGU9XCJmbGV4OjFcIj48L2JzdS1sYXlvdXQtY29udHJvbD5cclxuICAgICAgICAgICAgICAgICAgICB9IH1cclxuICAgICAgICAgICAgICAgIDwvYnN1LWJhcnNhLWNoYXQtY29udGVudD5cclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInR3LXctZnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAndHctcmVsYXRpdmUnOiAhc2ltcGxlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAnMnhsOnR3LXJvdW5kZWQtdC14bCB0dy1ncm93LTAgdHctc2hyaW5rLTAnOiBzaW1wbGVcclxuICAgICAgICAgICAgICAgICAgICB9XCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICBAaWYgKHJlcGx5aW5nTWVzc2FnZSgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5PdXRSZXBseWluZ01lc3NhZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0dy13LWZ1bGwgdHctcHgtMiB0dy1weS0xIHR3LWJvcmRlci1yLTQgdHctYm9yZGVyLXItYnViYmxlLW1pbmUgdHctZmxleCB0dy1nYXAtMiB0ZS1pdGVtcy1jZW50ZXIgdHctYWJzb2x1dGUgdHctei0wIHR3LWJnLWRlZmF1bHQgdHctcmlnaHQtMCAtdHctdG9wLTE0XCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2x5cGg9XCJkZWNsaW5lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHctZ3Jvdy0wIHR3LXNocmluay0wXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZXBseWluZ01lc3NhZ2Uuc2V0KG51bGwpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHctZmxleCB0dy1mbGV4LWNvbCB0dy1ncm93IHR3LXNocmluayB0dy1vdmVyZmxvdy1oaWRkZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHctZm9udC1ib2xkXCI+e3sgcmVwbHlpbmdNZXNzYWdlKCkub3duZXIubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHctdHJ1bmNhdGVcIj57e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGx5aW5nTWVzc2FnZSgpLnRleHQgPz8gcmVwbHlpbmdNZXNzYWdlKCkuZmlsZT8ubmFtZSA/PyByZXBseWluZ01lc3NhZ2UoKS5pbWFnZT8ubmFtZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHctdy04IHR3LXNocmluay0wIHR3LWdyb3ctMFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHctdy1mdWxsIHR3LXAtMiB0dy1mbGV4IHR3LWdhcC0yIHR3LWJvcmRlci10IHR3LWJvcmRlci10LWdyYXktMzAwIGRhcms6dHctYm9yZGVyLXQtZ3JheS02MDAgdHctYmctZGVmYXVsdCB0dy1pdGVtcy1lbmQgdHctei0xMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIEBpZihsYXlvdXQ5NCQgfCBhc3luYzthcyBsYXlvdXQ5NCl7IEBpZiAoJ9ix2K/bjNmBINqv2YHYqtqv2Ygg2YXZiNis2YjYr9uM2KonIHwgY29udHJvbFVpOiBsYXlvdXQ5NDsgYXMgY29uZmlnVWkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJzdS1sYXlvdXQtY29udHJvbCBbY29uZmlnXT1cImNvbmZpZ1VpXCI+PC9ic3UtbGF5b3V0LWNvbnRyb2w+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gIFxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInR3LWFic29sdXRlIHR3LXRvcC0xLzIgLXR3LXRyYW5zbGF0ZS15LTEvMiB0dy1sZWZ0LTEvMiAtdHctdHJhbnNsYXRlLXgtMS8yIHR3LWZsZXggdHctZmxleC1jb2wgdHctZ2FwLTggdHctaXRlbXMtY2VudGVyXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8aW1nIHNyYz1cImFzc2V0cy9ub3Qtc2VsZWN0ZWQtY2hhdC5wbmdcIiBjbGFzcz1cInR3LXctNjQgdHctb3BhY2l0eS0yNVwiIC8+IC0tPlxyXG4gICAgICAgICAgICAgICAgPCEtLSAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHctdGV4dC14bCB0dy1mb250LWJvbGQgdHctdGV4dC1ncmF5LTQwMCBkYXJrOnR3LXRleHQtZ3JheS01MDBcIj4tLT5cclxuICAgICAgICAgICAgICAgIDwhLS0gICAgICAgICAgICAgICAg2KjYsdin24wg2LTYsdmI2Lkg24zaqSDahtiqINix2Kcg2KfZhtiq2K7Yp9ioINqp2YbbjNivLS0+XHJcbiAgICAgICAgICAgICAgICA8IS0tICAgICAgICAgICAgPC9zcGFuPi0tPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIEBpZiAoIXNpbXBsZSkge1xyXG4gICAgPGRpdiBjbGFzcz1cInR3LWJnLWJsYWNrL1suM10gMnhsOnR3LWdyb3cgdHctc2hyaW5rIHR3LWgtZnVsbFwiPjwvZGl2PlxyXG4gICAgfVxyXG48L2Rpdj5cclxuIl19
@@ -31,7 +31,7 @@ export class BarsaDynamicFieldComponent extends FieldBaseComponent {
31
31
  this.componentUi = componentUi;
32
32
  }
33
33
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaDynamicFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
34
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BarsaDynamicFieldComponent, selector: "bsu-barsa-dynamic-field", usesInheritance: true, ngImport: i0, template: "@if (!error) {\r\n<bnrc-field-ui\r\n [customField]=\"layoutInfo.FieldUi\"\r\n [componentUi]=\"componentUi\"\r\n [layoutInfo]=\"layoutInfo\"\r\n [inlineEdit]=\"inlineEdit\"\r\n [formHeight]=\"formHeight\"\r\n [focusControl]=\"focusControl\"\r\n></bnrc-field-ui>\r\n} @else {\r\n<fd-message-strip type=\"error\" [dismissible]=\"false\">\r\n {{ error }}\r\n</fd-message-strip>\r\n}\r\n", styles: [":host fd-card-header{cursor:default}:host fd-card-header:hover{background:var(--fdCard_Background_Color)}\n"], dependencies: [{ kind: "component", type: i1.FieldUiComponent, selector: "bnrc-field-ui", inputs: ["isSearchPanel", "customField", "componentUi", "layoutInfo", "inlineEdit", "focusControl", "formHeight"] }, { kind: "component", type: i2.MessageStripComponent, selector: "fd-message-strip", inputs: ["class", "dismissible", "noIcon", "type", "id", "ariaLabelledBy", "ariaLabel", "width", "minWidth", "marginBottom", "indicationColor"], outputs: ["onDismiss"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
34
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BarsaDynamicFieldComponent, selector: "bsu-barsa-dynamic-field", usesInheritance: true, ngImport: i0, template: "@if (!error) {\r\n<bnrc-field-ui\r\n [customField]=\"layoutInfo.FieldUi\"\r\n [componentUi]=\"componentUi\"\r\n [layoutInfo]=\"layoutInfo\"\r\n [inlineEdit]=\"inlineEdit\"\r\n [formHeight]=\"formHeight\"\r\n [focusControl]=\"focusControl\"\r\n></bnrc-field-ui>\r\n} @else {\r\n<fd-message-strip type=\"error\" [dismissible]=\"false\">\r\n {{ error }}\r\n</fd-message-strip>\r\n}\r\n", styles: [":host fd-card-header{cursor:default}:host fd-card-header:hover{background:var(--fdCard_Background_Color)}\n"], dependencies: [{ kind: "component", type: i1.FieldUiComponent, selector: "bnrc-field-ui", inputs: ["isSearchPanel", "customField", "componentUi", "layoutInfo", "inlineEdit", "focusControl", "cellEdit", "formHeight"] }, { kind: "component", type: i2.MessageStripComponent, selector: "fd-message-strip", inputs: ["class", "dismissible", "noIcon", "type", "id", "ariaLabelledBy", "ariaLabel", "width", "minWidth", "marginBottom", "indicationColor"], outputs: ["onDismiss"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
35
35
  }
36
36
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaDynamicFieldComponent, decorators: [{
37
37
  type: Component,
@@ -25,7 +25,7 @@ export class BarsaQuestionAnswerFormComponent extends FormPropsBaseComponent {
25
25
  vote && vote?.FieldUi.fireEvent('click', vote.FieldUi);
26
26
  }
27
27
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaQuestionAnswerFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
28
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BarsaQuestionAnswerFormComponent, selector: "bsu-barsa-question-answer-form", providers: [UploadService], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"tw-absolute tw-z-0 tw-bg-white tw-w-screen tw-top-0 tw-left-0\"></div>\r\n<div class=\"tw-w-full tw-py-8 tw-relative\">\r\n <div class=\"tw-w-full tw-max-w-[80rem] tw-mx-auto tw-grid tw-grid-cols-4 tw-gap-12\">\r\n <div class=\"tw-col-span-3 tw-flex tw-flex-col tw-gap-8\">\r\n <div class=\"tw-flex tw-gap-8 tw-pb-8\">\r\n <div class=\"tw-grow-0 tw-shrink-0 tw-flex tw-flex-col tw-items-center tw-gap-6\">\r\n <img src=\"https://picsum.photos/64/64\" class=\"tw-size-12 tw-rounded-full\" />\r\n <bsu-barsa-question-answer-vote-section\r\n [vote]=\"mo.Post.CurrentUserVote.Vote\"\r\n [voteUps]=\"mo.Post.VoteUps\"\r\n [voteDowns]=\"mo.Post.VoteDowns\"\r\n (voteChange)=\"onVoteChange($event)\"\r\n ></bsu-barsa-question-answer-vote-section>\r\n </div>\r\n <div class=\"tw-grow tw-shrink\">\r\n <bsu-barsa-question-answer-creator-time-section\r\n [post]=\"mo.Post\"\r\n ></bsu-barsa-question-answer-creator-time-section>\r\n <p class=\"tw-text-2xl tw-mt-4\">\r\n {{ mo.Title }}\r\n </p>\r\n <bsu-barsa-question-answer-content-actions-section\r\n [mo]=\"mo\"\r\n [buttons]=\"toolbarItems\"\r\n ></bsu-barsa-question-answer-content-actions-section>\r\n <bsu-barsa-question-answer-comments-section\r\n [post]=\"mo.Post\"\r\n ></bsu-barsa-question-answer-comments-section>\r\n </div>\r\n </div>\r\n <p class=\"tw-z-10 tw-text-2xl tw-pb-4 tw-border-b tw-border-gray-200 tw-relative\">\r\n {{ mo.Answers.MoDataList.length }}\r\n \u067E\u0627\u0633\u062E\r\n </p>\r\n <div class=\"tw-flex tw-flex-col tw-gap-8 tw-z-10 tw-relative\">\r\n @if (mo.Answers.MoDataList.length) { @if ('\u067E\u0627\u0633\u062E \u0647\u0627' | controlUi: layout94; as answers) {\r\n <bsu-layout-control [config]=\"answers\"></bsu-layout-control>\r\n } }\r\n </div>\r\n </div>\r\n <div class=\"tw-col-span-1\">\r\n @if ('\u0633\u0648\u0627\u0644\u0627\u062A \u0645\u0631\u062A\u0628\u0637' | controlUi: layout94; as relevantQuestions) {\r\n <bsu-layout-control [config]=\"relevantQuestions\"></bsu-layout-control>\r\n }\r\n </div>\r\n </div>\r\n <div class=\"tw-w-full tw-max-w-[80rem] tw-mx-auto tw-grid tw-grid-cols-4 tw-mt-4\">\r\n <div\r\n class=\"tw-col-span-4 tw-flex tw-flex-col tw-gap-4 tw-p-4 border tw-border-gray-200 tw-rounded-md tw-bg-white\"\r\n >\r\n <span class=\"tw-text-xl\">\u0627\u0631\u0633\u0627\u0644 \u067E\u0627\u0633\u062E</span>\r\n @if ('\u067E\u0627\u0633\u062E \u062C\u062F\u06CC\u062F' | controlUi: layout94; as newAnswerText) {\r\n <bsu-layout-control [config]=\"newAnswerText\"></bsu-layout-control>\r\n }\r\n <div class=\"tw-flex tw-justify-end\">\r\n @if ('\u0627\u0631\u0633\u0627\u0644 \u067E\u0627\u0633\u062E \u062C\u062F\u06CC\u062F' | controlUi: layout94; as newAnswerSubmit) {\r\n <bsu-layout-control\r\n class=\"tw-w-fit tw-min-w-fit tw-max-w-fit\"\r\n [config]=\"newAnswerSubmit\"\r\n ></bsu-layout-control>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [":root{--sapBackgroundColor: #fdfdfd}\n"], dependencies: [{ kind: "component", type: i1.LayoutControlComponent, selector: "bsu-layout-control", inputs: ["inlineEdit", "caption", "focusControl", "showLabel", "maxLabelWidth", "hasHorizontalText", "contentDensity", "flex", "RefreshLabel", "SetVisible"], outputs: ["events"] }, { kind: "component", type: i2.BarsaQuestionAnswerContentActionsSectionComponent, selector: "bsu-barsa-question-answer-content-actions-section", inputs: ["mo", "buttons"], outputs: ["btnClick"] }, { kind: "component", type: i3.BarsaQuestionAnswerVoteSectionComponent, selector: "bsu-barsa-question-answer-vote-section", inputs: ["vote", "voteDowns", "voteUps"], outputs: ["voteChange"] }, { kind: "component", type: i4.BarsaQuestionAnswerCreatorTimeSectionComponent, selector: "bsu-barsa-question-answer-creator-time-section", inputs: ["post"] }, { kind: "component", type: i5.BarsaQuestionAnswerCommentsSectionComponent, selector: "bsu-barsa-question-answer-comments-section", inputs: ["post"] }, { kind: "pipe", type: i6.ControlUiPipe, name: "controlUi" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
28
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BarsaQuestionAnswerFormComponent, selector: "bsu-barsa-question-answer-form", providers: [UploadService], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"tw-absolute tw-z-0 tw-bg-white tw-w-screen tw-top-0 tw-left-0\"></div>\r\n<div class=\"tw-w-full tw-py-8 tw-relative\">\r\n <div class=\"tw-w-full tw-max-w-[80rem] tw-mx-auto tw-grid tw-grid-cols-4 tw-gap-12\">\r\n <div class=\"tw-col-span-3 tw-flex tw-flex-col tw-gap-8\">\r\n <div class=\"tw-flex tw-gap-8 tw-pb-8\">\r\n <div class=\"tw-grow-0 tw-shrink-0 tw-flex tw-flex-col tw-items-center tw-gap-6\">\r\n <img src=\"https://picsum.photos/64/64\" class=\"tw-size-12 tw-rounded-full\" />\r\n <bsu-barsa-question-answer-vote-section\r\n [vote]=\"mo.Post.CurrentUserVote.Vote\"\r\n [voteUps]=\"mo.Post.VoteUps\"\r\n [voteDowns]=\"mo.Post.VoteDowns\"\r\n (voteChange)=\"onVoteChange($event)\"\r\n ></bsu-barsa-question-answer-vote-section>\r\n </div>\r\n <div class=\"tw-grow tw-shrink\">\r\n <bsu-barsa-question-answer-creator-time-section\r\n [post]=\"mo.Post\"\r\n ></bsu-barsa-question-answer-creator-time-section>\r\n <p class=\"tw-text-2xl tw-mt-4\">\r\n {{ mo.Title }}\r\n </p>\r\n <bsu-barsa-question-answer-content-actions-section\r\n [mo]=\"mo\"\r\n [buttons]=\"toolbarItems\"\r\n ></bsu-barsa-question-answer-content-actions-section>\r\n <bsu-barsa-question-answer-comments-section\r\n [post]=\"mo.Post\"\r\n ></bsu-barsa-question-answer-comments-section>\r\n </div>\r\n </div>\r\n <p class=\"tw-z-10 tw-text-2xl tw-pb-4 tw-border-b tw-border-gray-200 tw-relative\">\r\n {{ mo.Answers.MoDataList.length }}\r\n \u067E\u0627\u0633\u062E\r\n </p>\r\n <div class=\"tw-flex tw-flex-col tw-gap-8 tw-z-10 tw-relative\">\r\n @if (mo.Answers.MoDataList.length) { @if ('\u067E\u0627\u0633\u062E \u0647\u0627' | controlUi: layout94; as answers) {\r\n <bsu-layout-control [config]=\"answers\"></bsu-layout-control>\r\n } }\r\n </div>\r\n </div>\r\n <div class=\"tw-col-span-1\">\r\n @if ('\u0633\u0648\u0627\u0644\u0627\u062A \u0645\u0631\u062A\u0628\u0637' | controlUi: layout94; as relevantQuestions) {\r\n <bsu-layout-control [config]=\"relevantQuestions\"></bsu-layout-control>\r\n }\r\n </div>\r\n </div>\r\n <div class=\"tw-w-full tw-max-w-[80rem] tw-mx-auto tw-grid tw-grid-cols-4 tw-mt-4\">\r\n <div\r\n class=\"tw-col-span-4 tw-flex tw-flex-col tw-gap-4 tw-p-4 border tw-border-gray-200 tw-rounded-md tw-bg-white\"\r\n >\r\n <span class=\"tw-text-xl\">\u0627\u0631\u0633\u0627\u0644 \u067E\u0627\u0633\u062E</span>\r\n @if ('\u067E\u0627\u0633\u062E \u062C\u062F\u06CC\u062F' | controlUi: layout94; as newAnswerText) {\r\n <bsu-layout-control [config]=\"newAnswerText\"></bsu-layout-control>\r\n }\r\n <div class=\"tw-flex tw-justify-end\">\r\n @if ('\u0627\u0631\u0633\u0627\u0644 \u067E\u0627\u0633\u062E \u062C\u062F\u06CC\u062F' | controlUi: layout94; as newAnswerSubmit) {\r\n <bsu-layout-control\r\n class=\"tw-w-fit tw-min-w-fit tw-max-w-fit\"\r\n [config]=\"newAnswerSubmit\"\r\n ></bsu-layout-control>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [":root{--sapBackgroundColor: #fdfdfd}\n"], dependencies: [{ kind: "component", type: i1.LayoutControlComponent, selector: "bsu-layout-control", inputs: ["inlineEdit", "cellEdit", "caption", "focusControl", "showLabel", "maxLabelWidth", "hasHorizontalText", "contentDensity", "flex", "RefreshLabel", "SetVisible"], outputs: ["events"] }, { kind: "component", type: i2.BarsaQuestionAnswerContentActionsSectionComponent, selector: "bsu-barsa-question-answer-content-actions-section", inputs: ["mo", "buttons"], outputs: ["btnClick"] }, { kind: "component", type: i3.BarsaQuestionAnswerVoteSectionComponent, selector: "bsu-barsa-question-answer-vote-section", inputs: ["vote", "voteDowns", "voteUps"], outputs: ["voteChange"] }, { kind: "component", type: i4.BarsaQuestionAnswerCreatorTimeSectionComponent, selector: "bsu-barsa-question-answer-creator-time-section", inputs: ["post"] }, { kind: "component", type: i5.BarsaQuestionAnswerCommentsSectionComponent, selector: "bsu-barsa-question-answer-comments-section", inputs: ["post"] }, { kind: "pipe", type: i6.ControlUiPipe, name: "controlUi" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
29
29
  }
30
30
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaQuestionAnswerFormComponent, decorators: [{
31
31
  type: Component,
@@ -16,7 +16,7 @@ export class BarsaTableColumnComponent extends BaseColumnPropsComponent {
16
16
  }
17
17
  }
18
18
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaTableColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
19
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BarsaTableColumnComponent, selector: "bsu-barsa-table-column", inputs: { disableEllapsis: "disableEllapsis", fdTextMode: "fdTextMode" }, providers: [FormPanelService, ColumnService], usesInheritance: true, ngImport: i0, template: "<div\r\n [class.editMode]=\"editMode\"\r\n [class.isdirty]=\"isdirty\"\r\n #divDom\r\n style=\"display: flex; width: 100%\"\r\n [style.column-gap]=\"column.$MergedFieldsToColumn?.length ? '0.2rem' : null\"\r\n>\r\n @if (customComponent && customComponent.Selector) {\r\n <bnrc-dynamic-item-component\r\n [component]=\"customComponent\"\r\n [mo]=\"mo\"\r\n [isChecked]=\"isChecked\"\r\n [setting]=\"detailsComponentSetting\"\r\n [parameters]=\"customComponent.Settings\"\r\n [column]=\"column\"\r\n [value]=\"value\"\r\n [disableEllapsis]=\"disableEllapsis\"\r\n [fdTextMode]=\"fdTextMode\"\r\n [icon]=\"icon\"\r\n [editMode]=\"editMode\"\r\n [attachmentViewType]=\"attachmentViewType\"\r\n [rtl]=\"rtl\"\r\n [isMobile]=\"isMobile\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [index]=\"index\"\r\n [allColumns]=\"allColumns\"\r\n [containerDom]=\"divDom\"\r\n ></bnrc-dynamic-item-component>\r\n } @else {\r\n <bsu-column-renderer\r\n [mo]=\"mo\"\r\n [containerDom]=\"divDom\"\r\n [allColumns]=\"allColumns\"\r\n [column]=\"column\"\r\n [disableEllapsis]=\"disableEllapsis\"\r\n [fdTextMode]=\"fdTextMode\"\r\n [value]=\"value | bbbTranslate\"\r\n [icon]=\"icon\"\r\n [attachmentViewType]=\"attachmentViewType\"\r\n [editMode]=\"editMode\"\r\n [isChecked]=\"isChecked\"\r\n [index]=\"index\"\r\n [isMobile]=\"isMobile\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [formLayoutShowLabel]=\"false\"\r\n [deviceSize]=\"deviceSize\"\r\n [controlUi]=\"column.Caption | controlUi: layout94:column.Name\"\r\n (keyup.control.enter)=\"save.emit($event)\"\r\n (keyup.esc)=\"cancel.emit($event)\"\r\n (keydown.Tab)=\"tab.emit($event)\"\r\n ></bsu-column-renderer>\r\n } @if (editMode) { @for (fieldCaption of column.$MergedFieldsToColumn; track fieldCaption) { @if (fieldCaption |\r\n controlUi: layout94; as layoutConfig) {\r\n <bsu-layout-control\r\n [caption]=\"fieldCaption\"\r\n [config]=\"layoutConfig\"\r\n [showLabel]=\"false\"\r\n [inlineEdit]=\"true\"\r\n (keyup.control.enter)=\"save.emit($event)\"\r\n (keyup.esc)=\"cancel.emit($event)\"\r\n (keydown.Tab)=\"tab.emit($event)\"\r\n ></bsu-layout-control>\r\n } } }\r\n</div>\r\n", styles: [":host{display:contents;width:100%}:host>div.isdirty{background:url(/Lib/ui/resources/images/default/grid/dirty.gif);background-repeat:no-repeat}:host ::ng-deep .row-group.mobile-mode{border-bottom:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #e4e4e4)!important}:host ::ng-deep .editMode bnrc-field-ui{padding:0;margin:0}:host ::ng-deep .editMode bsu-ui-simple-combo{margin:0!important}bsu-layout-control:not(.hide-form-item){align-items:center;height:100%;min-width:auto;width:auto}td{vertical-align:middle}tr.brule-message td{border:0}.row-group{background-color:var(--sapBackgroundColor, \"#f7f7ff\")}.cell-expand{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;font-size:.75rem;color:#0854a0;color:var(--sapContent_IconColor, #0854a0);min-width:2rem;max-width:2rem}.save-error{color:var(--sapField_InvalidColor)}.save-success{color:var(--sapField_SuccessColor)}.showdetails-on td{border-bottom:none!important}.flow{max-width:100%}.flow-item{display:flex}.flow-item fd-micro-process-flow-icon{width:1.375rem;height:1.375rem}.flow-item h5{padding-right:.3rem}.cartable-template{padding:.5rem 0}\n"], dependencies: [{ kind: "component", type: i1.DynamicItemComponent, selector: "bnrc-dynamic-item-component", inputs: ["mo", "allColumns", "moDataList", "columns", "column", "index", "last", "hideOpenIcon", "deviceName", "deviceSize", "rtl", "editMode", "setting", "parameters", "contextMenuItems", "canView", "showRowNumber", "rowNumber", "formSetting", "conditionalFormats", "disableOverflowContextMenu", "navigationArrow", "isCheckList", "fields", "isChecked", "layout94$", "inlineEditMode", "isNewInlineMo", "allowInlineEdit", "typeDefId", "rowIndicator", "rowIndicatorColor", "UlvMainCtrlr"] }, { kind: "component", type: i2.LayoutControlComponent, selector: "bsu-layout-control", inputs: ["inlineEdit", "caption", "focusControl", "showLabel", "maxLabelWidth", "hasHorizontalText", "contentDensity", "flex", "RefreshLabel", "SetVisible"], outputs: ["events"] }, { kind: "component", type: i3.ColumnRendererComponent, selector: "bsu-column-renderer,[colRenderer]", inputs: ["column", "allColumns", "mo", "index", "editMode", "attachmentViewType", "customRowHeight", "controlUi", "formLayoutShowLabel", "isChecked", "isNewInlineMo", "containerDom", "disableEllapsis", "rtl", "isMobile", "fdTextMode", "deviceName", "deviceSize", "value", "icon"] }, { kind: "pipe", type: i1.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i1.ControlUiPipe, name: "controlUi" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
19
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BarsaTableColumnComponent, selector: "bsu-barsa-table-column", inputs: { disableEllapsis: "disableEllapsis", fdTextMode: "fdTextMode" }, providers: [FormPanelService, ColumnService], usesInheritance: true, ngImport: i0, template: "<div\r\n [class.editMode]=\"editMode\"\r\n [class.isdirty]=\"isdirty\"\r\n #divDom\r\n style=\"display: flex; width: 100%\"\r\n [style.column-gap]=\"column.$MergedFieldsToColumn?.length ? '0.2rem' : null\"\r\n>\r\n @if (customComponent && customComponent.Selector) {\r\n <bnrc-dynamic-item-component\r\n [component]=\"customComponent\"\r\n [mo]=\"mo\"\r\n [isChecked]=\"isChecked\"\r\n [setting]=\"detailsComponentSetting\"\r\n [parameters]=\"customComponent.Settings\"\r\n [column]=\"column\"\r\n [value]=\"value\"\r\n [disableEllapsis]=\"disableEllapsis\"\r\n [fdTextMode]=\"fdTextMode\"\r\n [icon]=\"icon\"\r\n [editMode]=\"editMode\"\r\n [attachmentViewType]=\"attachmentViewType\"\r\n [rtl]=\"rtl\"\r\n [isMobile]=\"isMobile\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [index]=\"index\"\r\n [allColumns]=\"allColumns\"\r\n [containerDom]=\"divDom\"\r\n ></bnrc-dynamic-item-component>\r\n } @else {\r\n <bsu-column-renderer\r\n [mo]=\"mo\"\r\n [containerDom]=\"divDom\"\r\n [allColumns]=\"allColumns\"\r\n [column]=\"column\"\r\n [disableEllapsis]=\"disableEllapsis\"\r\n [fdTextMode]=\"fdTextMode\"\r\n [value]=\"value | bbbTranslate\"\r\n [icon]=\"icon\"\r\n [attachmentViewType]=\"attachmentViewType\"\r\n [editMode]=\"editMode\"\r\n [isChecked]=\"isChecked\"\r\n [index]=\"index\"\r\n [isMobile]=\"isMobile\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [formLayoutShowLabel]=\"false\"\r\n [deviceSize]=\"deviceSize\"\r\n [controlUi]=\"column.Caption | controlUi: layout94:column.Name\"\r\n (keyup.control.enter)=\"save.emit($event)\"\r\n (keyup.esc)=\"cancel.emit($event)\"\r\n (keydown.Tab)=\"tab.emit($event)\"\r\n ></bsu-column-renderer>\r\n } @if (editMode) { @for (fieldCaption of column.$MergedFieldsToColumn; track fieldCaption) { @if (fieldCaption |\r\n controlUi: layout94; as layoutConfig) {\r\n <bsu-layout-control\r\n [caption]=\"fieldCaption\"\r\n [config]=\"layoutConfig\"\r\n [showLabel]=\"false\"\r\n [inlineEdit]=\"true\"\r\n (keyup.control.enter)=\"save.emit($event)\"\r\n (keyup.esc)=\"cancel.emit($event)\"\r\n (keydown.Tab)=\"tab.emit($event)\"\r\n ></bsu-layout-control>\r\n } } }\r\n</div>\r\n", styles: [":host{display:contents;width:100%}:host>div.isdirty{background:url(/Lib/ui/resources/images/default/grid/dirty.gif);background-repeat:no-repeat}:host ::ng-deep .row-group.mobile-mode{border-bottom:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #e4e4e4)!important}:host ::ng-deep .editMode bnrc-field-ui{padding:0;margin:0}:host ::ng-deep .editMode bsu-ui-simple-combo{margin:0!important}bsu-layout-control:not(.hide-form-item){align-items:center;height:100%;min-width:auto;width:auto}td{vertical-align:middle}tr.brule-message td{border:0}.row-group{background-color:var(--sapBackgroundColor, \"#f7f7ff\")}.cell-expand{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;font-size:.75rem;color:#0854a0;color:var(--sapContent_IconColor, #0854a0);min-width:2rem;max-width:2rem}.save-error{color:var(--sapField_InvalidColor)}.save-success{color:var(--sapField_SuccessColor)}.showdetails-on td{border-bottom:none!important}.flow{max-width:100%}.flow-item{display:flex}.flow-item fd-micro-process-flow-icon{width:1.375rem;height:1.375rem}.flow-item h5{padding-right:.3rem}.cartable-template{padding:.5rem 0}\n"], dependencies: [{ kind: "component", type: i1.DynamicItemComponent, selector: "bnrc-dynamic-item-component", inputs: ["mo", "allColumns", "moDataList", "columns", "column", "index", "last", "hideOpenIcon", "deviceName", "deviceSize", "rtl", "editMode", "setting", "parameters", "contextMenuItems", "canView", "showRowNumber", "rowNumber", "formSetting", "conditionalFormats", "disableOverflowContextMenu", "navigationArrow", "isCheckList", "fields", "isChecked", "layout94$", "inlineEditMode", "isNewInlineMo", "allowInlineEdit", "typeDefId", "rowIndicator", "rowIndicatorColor", "UlvMainCtrlr"] }, { kind: "component", type: i2.LayoutControlComponent, selector: "bsu-layout-control", inputs: ["inlineEdit", "cellEdit", "caption", "focusControl", "showLabel", "maxLabelWidth", "hasHorizontalText", "contentDensity", "flex", "RefreshLabel", "SetVisible"], outputs: ["events"] }, { kind: "component", type: i3.ColumnRendererComponent, selector: "bsu-column-renderer,[colRenderer]", inputs: ["cellEdit", "column", "allColumns", "mo", "index", "editMode", "attachmentViewType", "customRowHeight", "controlUi", "formLayoutShowLabel", "isChecked", "isNewInlineMo", "containerDom", "disableEllapsis", "rtl", "isMobile", "fdTextMode", "deviceName", "deviceSize", "value", "icon"] }, { kind: "pipe", type: i1.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i1.ControlUiPipe, name: "controlUi" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
20
20
  }
21
21
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaTableColumnComponent, decorators: [{
22
22
  type: Component,
@@ -24,7 +24,7 @@ export class ColumnMatrixRendererComponent extends BaseComponent {
24
24
  this.changeToEdit.emit();
25
25
  }
26
26
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ColumnMatrixRendererComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
27
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ColumnMatrixRendererComponent, selector: "bsu-column-matrix-renderer", inputs: { value: "value", valueCaption: "valueCaption", formLayout: "formLayout", columnCaption: "columnCaption", uiControl: "uiControl", valueType: "valueType", isActive: "isActive", height: "height" }, outputs: { cellClick: "cellClick", changeToEdit: "changeToEdit" }, viewQueries: [{ propertyName: "popover", first: true, predicate: ["popover"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container>\r\n @if (!isActive) {\r\n <ng-container *ngTemplateOutlet=\"renderGeneral\"></ng-container>\r\n } @else { @if (uiControl) {\r\n <bsu-layout-control [caption]=\"valueCaption\" [config]=\"uiControl\" [focusControl]=\"true\" [showLabel]=\"false\">\r\n </bsu-layout-control>\r\n } }\r\n</ng-container>\r\n\r\n<ng-template #renderGeneral>\r\n <div (click)=\"cellClick.emit()\" class=\"render-general\">\r\n <fd-popover #popover [fillControlMode]=\"'equal'\">\r\n <fd-popover-control style=\"display: flex; flex-direction: column; justify-content: center; min-width: 100%\">\r\n <span\r\n style=\"min-width: 100%; height: inherit\"\r\n #popoverControlEl\r\n (keydown.enter)=\"onEdit()\"\r\n (mouseover)=\"onOpenPopover($event, popoverControlEl)\"\r\n (mouseleave)=\"popover.close()\"\r\n [class.break-anywhere]=\"breakValueAnywhere\"\r\n >{{ value | matrixValue: valueType:uiControl }}</span\r\n >\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n <span [class.break-anywhere]=\"breakValueAnywhere\">{{ value | matrixValue: valueType:uiControl }}</span>\r\n </fd-popover-body>\r\n </fd-popover>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{flex:1;width:inherit}.break-anywhere{line-break:anywhere}.render-general{width:100%;height:100%}::ng-deep fd-popover,::ng-deep fd-popover-control,::ng-deep .fd-popover__control{height:inherit;min-width:100%}fd-popover-body{margin-top:5px}fd-popover-body ::ng-deep .fd-popover__popper--cdk-custom{padding:5px}fd-popover-body span{white-space:break-spaces;padding:5px}bsu-layout-control{min-width:100%!important}bsu-layout-control span{height:inherit}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: i2.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "component", type: i2.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "component", type: i3.LayoutControlComponent, selector: "bsu-layout-control", inputs: ["inlineEdit", "caption", "focusControl", "showLabel", "maxLabelWidth", "hasHorizontalText", "contentDensity", "flex", "RefreshLabel", "SetVisible"], outputs: ["events"] }, { kind: "pipe", type: i4.MatrixValuePipe, name: "matrixValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ColumnMatrixRendererComponent, selector: "bsu-column-matrix-renderer", inputs: { value: "value", valueCaption: "valueCaption", formLayout: "formLayout", columnCaption: "columnCaption", uiControl: "uiControl", valueType: "valueType", isActive: "isActive", height: "height" }, outputs: { cellClick: "cellClick", changeToEdit: "changeToEdit" }, viewQueries: [{ propertyName: "popover", first: true, predicate: ["popover"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container>\r\n @if (!isActive) {\r\n <ng-container *ngTemplateOutlet=\"renderGeneral\"></ng-container>\r\n } @else { @if (uiControl) {\r\n <bsu-layout-control [caption]=\"valueCaption\" [config]=\"uiControl\" [focusControl]=\"true\" [showLabel]=\"false\">\r\n </bsu-layout-control>\r\n } }\r\n</ng-container>\r\n\r\n<ng-template #renderGeneral>\r\n <div (click)=\"cellClick.emit()\" class=\"render-general\">\r\n <fd-popover #popover [fillControlMode]=\"'equal'\">\r\n <fd-popover-control style=\"display: flex; flex-direction: column; justify-content: center; min-width: 100%\">\r\n <span\r\n style=\"min-width: 100%; height: inherit\"\r\n #popoverControlEl\r\n (keydown.enter)=\"onEdit()\"\r\n (mouseover)=\"onOpenPopover($event, popoverControlEl)\"\r\n (mouseleave)=\"popover.close()\"\r\n [class.break-anywhere]=\"breakValueAnywhere\"\r\n >{{ value | matrixValue: valueType:uiControl }}</span\r\n >\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n <span [class.break-anywhere]=\"breakValueAnywhere\">{{ value | matrixValue: valueType:uiControl }}</span>\r\n </fd-popover-body>\r\n </fd-popover>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{flex:1;width:inherit}.break-anywhere{line-break:anywhere}.render-general{width:100%;height:100%}::ng-deep fd-popover,::ng-deep fd-popover-control,::ng-deep .fd-popover__control{height:inherit;min-width:100%}fd-popover-body{margin-top:5px}fd-popover-body ::ng-deep .fd-popover__popper--cdk-custom{padding:5px}fd-popover-body span{white-space:break-spaces;padding:5px}bsu-layout-control{min-width:100%!important}bsu-layout-control span{height:inherit}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: i2.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "component", type: i2.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "component", type: i3.LayoutControlComponent, selector: "bsu-layout-control", inputs: ["inlineEdit", "cellEdit", "caption", "focusControl", "showLabel", "maxLabelWidth", "hasHorizontalText", "contentDensity", "flex", "RefreshLabel", "SetVisible"], outputs: ["events"] }, { kind: "pipe", type: i4.MatrixValuePipe, name: "matrixValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
28
28
  }
29
29
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ColumnMatrixRendererComponent, decorators: [{
30
30
  type: Component,
@@ -51,17 +51,19 @@ export class ColumnRendererComponent extends BaseComponent {
51
51
  this._renderer2.setStyle(this._filePopover.nativeElement, 'max-width', `${this.containerDom?.offsetWidth}px`);
52
52
  }
53
53
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ColumnRendererComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
54
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ColumnRendererComponent, selector: "bsu-column-renderer,[colRenderer]", inputs: { column: "column", allColumns: "allColumns", mo: "mo", index: "index", editMode: "editMode", attachmentViewType: "attachmentViewType", customRowHeight: "customRowHeight", controlUi: "controlUi", formLayoutShowLabel: "formLayoutShowLabel", isChecked: "isChecked", isNewInlineMo: "isNewInlineMo", containerDom: "containerDom", disableEllapsis: "disableEllapsis", rtl: "rtl", isMobile: "isMobile", fdTextMode: "fdTextMode", deviceName: "deviceName", deviceSize: "deviceSize", value: "value", icon: "icon" }, host: { properties: { "class.isMobile": "this._isSmall" } }, viewQueries: [{ propertyName: "_filePopover", first: true, predicate: ["fileviewerPopover"], descendants: true, read: ElementRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (column) {\r\n<ng-container *ngTemplateOutlet=\"editMode ? formControlTemplate : renderCellTemplate\"> </ng-container>\r\n}\r\n<ng-template #renderCellTemplate>\r\n @switch (column.FieldTypeId) { @case (42) {\r\n <ng-container *ngTemplateOutlet=\"renderCellImage\"></ng-container>\r\n } @case (33) {\r\n <ng-container *ngTemplateOutlet=\"renderCellFileInfo\"></ng-container>\r\n } @case (31) {\r\n <ng-container *ngTemplateOutlet=\"renderCellFileListKhati\"></ng-container>\r\n } @case (11) {\r\n <ng-container *ngTemplateOutlet=\"renderCellListTasavir\"></ng-container>\r\n } @case (5) {\r\n <ng-container\r\n *ngTemplateOutlet=\"column.Extra?.ShowCheckInGrid ? renderCellChecbox : renderChecboxImage\"\r\n ></ng-container>\r\n } @default {\r\n <ng-container *ngTemplateOutlet=\"renderGeneral\"></ng-container>\r\n } }\r\n</ng-template>\r\n<ng-template #renderGeneral>\r\n <div class=\"renderGeneral\" [class.onlyIcon]=\"column.Extra?.IconDisplayTypeEnum === 'Image'\" [style.width]=\"\" [attr.title]=\"value\">\r\n @if (icon) {\r\n <img [attr.rtl]=\"rtl\" [src]=\"icon\" />\r\n }\r\n <!-- <fd-text\r\n #fdText\r\n *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\"\r\n [maxLines]=\"1\"\r\n [text]=\"value\"\r\n [fd-inline-help]=\"value\"\r\n [disabled]=\"!fdText._hasMore\"\r\n ></fd-text> -->\r\n\r\n <!-- <bsu-barsa-text-ellipsis\r\n [style.width]=\"column.$Width\"\r\n *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\"\r\n [text]=\"value\"\r\n></bsu-barsa-text-ellipsis> -->\r\n <!-- <div *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\" style=\"word-break:break-word\">\r\n{{ value }}\r\n</div> -->\r\n @if (column.Extra?.IconDisplayTypeEnum !== 'Image') { @if(!isMobile && !fdTextMode){\r\n <div\r\n [ellapsisText]=\"value\"\r\n [disableEllapsis]=\"editMode\"\r\n [class.ellapsis]=\"!disableEllapsis\" \r\n (ellapsised)=\"onElapsised($event)\"\r\n >\r\n {{ value }}\r\n </div>\r\n } @else{\r\n <fd-text [attr.title]=\"value\" class=\"col-value\" [text]=\"value\" [maxLines]=\"2\"></fd-text>\r\n } }\r\n </div>\r\n</ng-template>\r\n<ng-template #formControlTemplate>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n !controlUi || controlUi.FieldUi.originalXtype === 'Ui.ReadOnlyField'\r\n ? renderCellTemplate\r\n : layoutControlTemplate\r\n \"\r\n ></ng-container>\r\n</ng-template>\r\n<ng-template #layoutControlTemplate>\r\n @if (controlUi) {\r\n <bsu-layout-control\r\n [inlineEdit]=\"true\"\r\n [caption]=\"column.Caption\"\r\n [config]=\"controlUi\"\r\n [focusControl]=\"index === 0 && (isChecked || isNewInlineMo)\"\r\n [showLabel]=\"formLayoutShowLabel\"\r\n ></bsu-layout-control>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellListTasavir>\r\n @if (mo[column.Name] && mo[column.Name].Images) {\r\n <div style=\"display: flex; flex-wrap: wrap; gap: 0.15rem\">\r\n @for (pic of mo[column.Name].Images; track pic) {\r\n <img\r\n fullscreen\r\n fullscreenFiles\r\n [files]=\"mo[column.Name].Images\"\r\n [isImageGallery]=\"true\"\r\n [deviceSize]=\"deviceSize\"\r\n [src]=\"pic.FileId | picFieldSrc: 'BarsaPicture.Thumbnail':null:'':32:32\"\r\n style=\"width: 3rem; height: 3rem\"\r\n />\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellFileListKhati>\r\n @if (mo[column.Name]) {\r\n <div class=\"file-viewer-attachments\">\r\n @for (file of mo[column.Name].Files; track file) { @if (!file.IsDeleted) {\r\n <bsu-file-viewer-popover\r\n #fileviewerPopover\r\n intersectionObserver\r\n [intersectionThreshold]=\"0.1\"\r\n (visibilityChange)=\"$event === 'Visible' && onSetMaxWidth()\"\r\n [file]=\"file\"\r\n [attachmentViewType]=\"+attachmentViewType\"\r\n [files]=\"mo[column.Name].Files\"\r\n [deviceSize]=\"deviceSize\"\r\n [canDownload]=\"true\"\r\n [disableRemove]=\"true\"\r\n [fdType]=\"'transparent'\"\r\n preventDefault\r\n stopPropagation\r\n ></bsu-file-viewer-popover>\r\n }\r\n <!-- <fd-token *ngIf=\"!file.IsDeleted\" [readOnly]=\"true\">{{ file.FileName }}</fd-token> -->\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellFileInfo>\r\n @if (mo[column.Name]) {\r\n <fd-avatar\r\n [transparent]=\"true\"\r\n [size]=\"column.FieldTypeId === '42' || column.FieldTypeId === 42 ? 'xs' : deviceSize === 's' ? 's' : 'm'\"\r\n [image]=\"mo[column.Name] | picFieldSrc: 'PictureFileInfo':null:column.FieldDefId\"\r\n ></fd-avatar>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellChecbox>\r\n <fd-icon [glyph]=\"mo[column.Name] === true ? 'accept' : 'less'\"></fd-icon>\r\n</ng-template>\r\n<ng-template #renderChecboxImage>\r\n @if (column.Extra?.TrueImage === '') {\r\n {{ value }}\r\n } @if (column.Extra?.TrueImage !== '') {\r\n <img [src]=\"mo[column.Name] ? column.Extra?.TrueImage : column.Extra?.FalseImage\" aling=\"middle\" />\r\n }\r\n</ng-template>\r\n<ng-template #renderCellImage>\r\n @if (mo[column.Name] && mo[column.Name]['Url']) {\r\n <fd-avatar\r\n [size]=\"column.FieldTypeId === '42' || column.FieldTypeId === 42 ? 'xs' : deviceSize === 's' ? 's' : 'm'\"\r\n [transparent]=\"true\"\r\n [image]=\"mo[column.Name]['Url']\"\r\n ></fd-avatar>\r\n }\r\n</ng-template>\r\n", styles: [":host{display:contents;overflow:hidden;padding:0}:host.isMobile span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;white-space:pre-wrap}fd-avatar{min-width:100%;width:100%;max-width:64px}.renderGeneral{display:flex;width:100%;height:100%;align-items:center;justify-content:start}.renderGeneral.onlyIcon{justify-content:center}fd-text.col-value ::ng-deep p{color:inherit;font-size:inherit;font-family:inherit;font-weight:inherit}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.IntersectionObserverDirective, selector: "[intersectionObserver]", inputs: ["intersectionDebounce", "intersectionRootMargin", "intersectionRoot", "intersectionThreshold"], outputs: ["visibilityChange"] }, { kind: "directive", type: i2.EllapsisTextDirective, selector: "[ellapsisText]", inputs: ["ellapsisText", "fontSize", "disableEllapsis"], outputs: ["ellapsised"] }, { kind: "directive", type: i2.StopPropagationDirective, selector: "[stopPropagation]" }, { kind: "directive", type: i2.PreventDefaultDirective, selector: "[preventDefault]" }, { 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.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "component", type: i5.TextComponent, selector: "fd-text", inputs: ["text", "maxLines", "whitespaces", "hyphenation", "expandable", "isCollapsed"], outputs: ["isCollapsedChange"] }, { kind: "component", type: i6.LayoutControlComponent, selector: "bsu-layout-control", inputs: ["inlineEdit", "caption", "focusControl", "showLabel", "maxLabelWidth", "hasHorizontalText", "contentDensity", "flex", "RefreshLabel", "SetVisible"], outputs: ["events"] }, { kind: "component", type: i7.FileViewerPopoverComponent, selector: "bsu-file-viewer-popover", inputs: ["files", "file", "deviceSize", "canDownload", "disableRemove", "fdType", "attachmentViewType"], outputs: ["remove"] }, { kind: "directive", type: i8.FullscreenFilesDirective, selector: "[fullscreenFiles]", inputs: ["files", "title", "deviceSize", "isImageGallery", "component"] }, { kind: "pipe", type: i2.PictureFieldSourcePipe, name: "picFieldSrc" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
54
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ColumnRendererComponent, selector: "bsu-column-renderer,[colRenderer]", inputs: { cellEdit: "cellEdit", column: "column", allColumns: "allColumns", mo: "mo", index: "index", editMode: "editMode", attachmentViewType: "attachmentViewType", customRowHeight: "customRowHeight", controlUi: "controlUi", formLayoutShowLabel: "formLayoutShowLabel", isChecked: "isChecked", isNewInlineMo: "isNewInlineMo", containerDom: "containerDom", disableEllapsis: "disableEllapsis", rtl: "rtl", isMobile: "isMobile", fdTextMode: "fdTextMode", deviceName: "deviceName", deviceSize: "deviceSize", value: "value", icon: "icon" }, host: { properties: { "class.isMobile": "this._isSmall" } }, viewQueries: [{ propertyName: "_filePopover", first: true, predicate: ["fileviewerPopover"], descendants: true, read: ElementRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (column) {\r\n<ng-container *ngTemplateOutlet=\"editMode ? formControlTemplate : renderCellTemplate\"> </ng-container>\r\n}\r\n<ng-template #renderCellTemplate>\r\n @switch (column.FieldTypeId) { @case (42) {\r\n <ng-container *ngTemplateOutlet=\"renderCellImage\"></ng-container>\r\n } @case (33) {\r\n <ng-container *ngTemplateOutlet=\"renderCellFileInfo\"></ng-container>\r\n } @case (31) {\r\n <ng-container *ngTemplateOutlet=\"renderCellFileListKhati\"></ng-container>\r\n } @case (11) {\r\n <ng-container *ngTemplateOutlet=\"renderCellListTasavir\"></ng-container>\r\n } @case (5) {\r\n <ng-container\r\n *ngTemplateOutlet=\"column.Extra?.ShowCheckInGrid ? renderCellChecbox : renderChecboxImage\"\r\n ></ng-container>\r\n } @default {\r\n <ng-container *ngTemplateOutlet=\"renderGeneral\"></ng-container>\r\n } }\r\n</ng-template>\r\n<ng-template #renderGeneral>\r\n <div class=\"renderGeneral\" [class.onlyIcon]=\"column.Extra?.IconDisplayTypeEnum === 'Image'\" [style.width]=\"\" [attr.title]=\"value\">\r\n @if (icon) {\r\n <img [attr.rtl]=\"rtl\" [src]=\"icon\" />\r\n }\r\n <!-- <fd-text\r\n #fdText\r\n *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\"\r\n [maxLines]=\"1\"\r\n [text]=\"value\"\r\n [fd-inline-help]=\"value\"\r\n [disabled]=\"!fdText._hasMore\"\r\n ></fd-text> -->\r\n\r\n <!-- <bsu-barsa-text-ellipsis\r\n [style.width]=\"column.$Width\"\r\n *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\"\r\n [text]=\"value\"\r\n></bsu-barsa-text-ellipsis> -->\r\n <!-- <div *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\" style=\"word-break:break-word\">\r\n{{ value }}\r\n</div> -->\r\n @if (column.Extra?.IconDisplayTypeEnum !== 'Image') { @if(!isMobile && !fdTextMode){\r\n <div\r\n [ellapsisText]=\"value\"\r\n [disableEllapsis]=\"editMode\"\r\n [class.ellapsis]=\"!disableEllapsis\" \r\n (ellapsised)=\"onElapsised($event)\"\r\n >\r\n {{ value }}\r\n </div>\r\n } @else{\r\n <fd-text [attr.title]=\"value\" class=\"col-value\" [text]=\"value\" [maxLines]=\"2\"></fd-text>\r\n } }\r\n </div>\r\n</ng-template>\r\n<ng-template #formControlTemplate>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n !controlUi || controlUi.FieldUi.originalXtype === 'Ui.ReadOnlyField'\r\n ? renderCellTemplate\r\n : layoutControlTemplate\r\n \"\r\n ></ng-container>\r\n</ng-template>\r\n<ng-template #layoutControlTemplate>\r\n @if (controlUi) {\r\n <bsu-layout-control\r\n [inlineEdit]=\"true\"\r\n [caption]=\"column.Caption\"\r\n [cellEdit]=\"cellEdit\"\r\n [config]=\"controlUi\"\r\n [focusControl]=\"index === 0 && (isChecked || isNewInlineMo)\"\r\n [showLabel]=\"formLayoutShowLabel\"\r\n ></bsu-layout-control>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellListTasavir>\r\n @if (mo[column.Name] && mo[column.Name].Images) {\r\n <div style=\"display: flex; flex-wrap: wrap; gap: 0.15rem\">\r\n @for (pic of mo[column.Name].Images; track pic) {\r\n <img\r\n fullscreen\r\n fullscreenFiles\r\n [files]=\"mo[column.Name].Images\"\r\n [isImageGallery]=\"true\"\r\n [deviceSize]=\"deviceSize\"\r\n [src]=\"pic.FileId | picFieldSrc: 'BarsaPicture.Thumbnail':null:'':32:32\"\r\n style=\"width: 3rem; height: 3rem\"\r\n />\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellFileListKhati>\r\n @if (mo[column.Name]) {\r\n <div class=\"file-viewer-attachments\">\r\n @for (file of mo[column.Name].Files; track file) { @if (!file.IsDeleted) {\r\n <bsu-file-viewer-popover\r\n #fileviewerPopover\r\n intersectionObserver\r\n [intersectionThreshold]=\"0.1\"\r\n (visibilityChange)=\"$event === 'Visible' && onSetMaxWidth()\"\r\n [file]=\"file\"\r\n [attachmentViewType]=\"+attachmentViewType\"\r\n [files]=\"mo[column.Name].Files\"\r\n [deviceSize]=\"deviceSize\"\r\n [canDownload]=\"true\"\r\n [disableRemove]=\"true\"\r\n [fdType]=\"'transparent'\"\r\n preventDefault\r\n stopPropagation\r\n ></bsu-file-viewer-popover>\r\n }\r\n <!-- <fd-token *ngIf=\"!file.IsDeleted\" [readOnly]=\"true\">{{ file.FileName }}</fd-token> -->\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellFileInfo>\r\n @if (mo[column.Name]) {\r\n <fd-avatar\r\n [transparent]=\"true\"\r\n [size]=\"column.FieldTypeId === '42' || column.FieldTypeId === 42 ? 'xs' : deviceSize === 's' ? 's' : 'm'\"\r\n [image]=\"mo[column.Name] | picFieldSrc: 'PictureFileInfo':null:column.FieldDefId\"\r\n ></fd-avatar>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellChecbox>\r\n <fd-icon [glyph]=\"mo[column.Name] === true ? 'accept' : 'less'\"></fd-icon>\r\n</ng-template>\r\n<ng-template #renderChecboxImage>\r\n @if (column.Extra?.TrueImage === '') {\r\n {{ value }}\r\n } @if (column.Extra?.TrueImage !== '') {\r\n <img [src]=\"mo[column.Name] ? column.Extra?.TrueImage : column.Extra?.FalseImage\" aling=\"middle\" />\r\n }\r\n</ng-template>\r\n<ng-template #renderCellImage>\r\n @if (mo[column.Name] && mo[column.Name]['Url']) {\r\n <fd-avatar\r\n [size]=\"column.FieldTypeId === '42' || column.FieldTypeId === 42 ? 'xs' : deviceSize === 's' ? 's' : 'm'\"\r\n [transparent]=\"true\"\r\n [image]=\"mo[column.Name]['Url']\"\r\n ></fd-avatar>\r\n }\r\n</ng-template>\r\n", styles: [":host{display:contents;overflow:hidden;padding:0}:host.isMobile span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;white-space:pre-wrap}fd-avatar{min-width:100%;width:100%;max-width:64px}.renderGeneral{display:flex;width:100%;height:100%;align-items:center;justify-content:start}.renderGeneral.onlyIcon{justify-content:center}fd-text.col-value ::ng-deep p{color:inherit;font-size:inherit;font-family:inherit;font-weight:inherit}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.IntersectionObserverDirective, selector: "[intersectionObserver]", inputs: ["intersectionDebounce", "intersectionRootMargin", "intersectionRoot", "intersectionThreshold"], outputs: ["visibilityChange"] }, { kind: "directive", type: i2.EllapsisTextDirective, selector: "[ellapsisText]", inputs: ["ellapsisText", "fontSize", "disableEllapsis"], outputs: ["ellapsised"] }, { kind: "directive", type: i2.StopPropagationDirective, selector: "[stopPropagation]" }, { kind: "directive", type: i2.PreventDefaultDirective, selector: "[preventDefault]" }, { 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.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "component", type: i5.TextComponent, selector: "fd-text", inputs: ["text", "maxLines", "whitespaces", "hyphenation", "expandable", "isCollapsed"], outputs: ["isCollapsedChange"] }, { kind: "component", type: i6.LayoutControlComponent, selector: "bsu-layout-control", inputs: ["inlineEdit", "cellEdit", "caption", "focusControl", "showLabel", "maxLabelWidth", "hasHorizontalText", "contentDensity", "flex", "RefreshLabel", "SetVisible"], outputs: ["events"] }, { kind: "component", type: i7.FileViewerPopoverComponent, selector: "bsu-file-viewer-popover", inputs: ["files", "file", "deviceSize", "canDownload", "disableRemove", "fdType", "attachmentViewType"], outputs: ["remove"] }, { kind: "directive", type: i8.FullscreenFilesDirective, selector: "[fullscreenFiles]", inputs: ["files", "title", "deviceSize", "isImageGallery", "component"] }, { kind: "pipe", type: i2.PictureFieldSourcePipe, name: "picFieldSrc" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
55
55
  }
56
56
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ColumnRendererComponent, decorators: [{
57
57
  type: Component,
58
- args: [{ selector: 'bsu-column-renderer,[colRenderer]', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if (column) {\r\n<ng-container *ngTemplateOutlet=\"editMode ? formControlTemplate : renderCellTemplate\"> </ng-container>\r\n}\r\n<ng-template #renderCellTemplate>\r\n @switch (column.FieldTypeId) { @case (42) {\r\n <ng-container *ngTemplateOutlet=\"renderCellImage\"></ng-container>\r\n } @case (33) {\r\n <ng-container *ngTemplateOutlet=\"renderCellFileInfo\"></ng-container>\r\n } @case (31) {\r\n <ng-container *ngTemplateOutlet=\"renderCellFileListKhati\"></ng-container>\r\n } @case (11) {\r\n <ng-container *ngTemplateOutlet=\"renderCellListTasavir\"></ng-container>\r\n } @case (5) {\r\n <ng-container\r\n *ngTemplateOutlet=\"column.Extra?.ShowCheckInGrid ? renderCellChecbox : renderChecboxImage\"\r\n ></ng-container>\r\n } @default {\r\n <ng-container *ngTemplateOutlet=\"renderGeneral\"></ng-container>\r\n } }\r\n</ng-template>\r\n<ng-template #renderGeneral>\r\n <div class=\"renderGeneral\" [class.onlyIcon]=\"column.Extra?.IconDisplayTypeEnum === 'Image'\" [style.width]=\"\" [attr.title]=\"value\">\r\n @if (icon) {\r\n <img [attr.rtl]=\"rtl\" [src]=\"icon\" />\r\n }\r\n <!-- <fd-text\r\n #fdText\r\n *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\"\r\n [maxLines]=\"1\"\r\n [text]=\"value\"\r\n [fd-inline-help]=\"value\"\r\n [disabled]=\"!fdText._hasMore\"\r\n ></fd-text> -->\r\n\r\n <!-- <bsu-barsa-text-ellipsis\r\n [style.width]=\"column.$Width\"\r\n *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\"\r\n [text]=\"value\"\r\n></bsu-barsa-text-ellipsis> -->\r\n <!-- <div *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\" style=\"word-break:break-word\">\r\n{{ value }}\r\n</div> -->\r\n @if (column.Extra?.IconDisplayTypeEnum !== 'Image') { @if(!isMobile && !fdTextMode){\r\n <div\r\n [ellapsisText]=\"value\"\r\n [disableEllapsis]=\"editMode\"\r\n [class.ellapsis]=\"!disableEllapsis\" \r\n (ellapsised)=\"onElapsised($event)\"\r\n >\r\n {{ value }}\r\n </div>\r\n } @else{\r\n <fd-text [attr.title]=\"value\" class=\"col-value\" [text]=\"value\" [maxLines]=\"2\"></fd-text>\r\n } }\r\n </div>\r\n</ng-template>\r\n<ng-template #formControlTemplate>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n !controlUi || controlUi.FieldUi.originalXtype === 'Ui.ReadOnlyField'\r\n ? renderCellTemplate\r\n : layoutControlTemplate\r\n \"\r\n ></ng-container>\r\n</ng-template>\r\n<ng-template #layoutControlTemplate>\r\n @if (controlUi) {\r\n <bsu-layout-control\r\n [inlineEdit]=\"true\"\r\n [caption]=\"column.Caption\"\r\n [config]=\"controlUi\"\r\n [focusControl]=\"index === 0 && (isChecked || isNewInlineMo)\"\r\n [showLabel]=\"formLayoutShowLabel\"\r\n ></bsu-layout-control>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellListTasavir>\r\n @if (mo[column.Name] && mo[column.Name].Images) {\r\n <div style=\"display: flex; flex-wrap: wrap; gap: 0.15rem\">\r\n @for (pic of mo[column.Name].Images; track pic) {\r\n <img\r\n fullscreen\r\n fullscreenFiles\r\n [files]=\"mo[column.Name].Images\"\r\n [isImageGallery]=\"true\"\r\n [deviceSize]=\"deviceSize\"\r\n [src]=\"pic.FileId | picFieldSrc: 'BarsaPicture.Thumbnail':null:'':32:32\"\r\n style=\"width: 3rem; height: 3rem\"\r\n />\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellFileListKhati>\r\n @if (mo[column.Name]) {\r\n <div class=\"file-viewer-attachments\">\r\n @for (file of mo[column.Name].Files; track file) { @if (!file.IsDeleted) {\r\n <bsu-file-viewer-popover\r\n #fileviewerPopover\r\n intersectionObserver\r\n [intersectionThreshold]=\"0.1\"\r\n (visibilityChange)=\"$event === 'Visible' && onSetMaxWidth()\"\r\n [file]=\"file\"\r\n [attachmentViewType]=\"+attachmentViewType\"\r\n [files]=\"mo[column.Name].Files\"\r\n [deviceSize]=\"deviceSize\"\r\n [canDownload]=\"true\"\r\n [disableRemove]=\"true\"\r\n [fdType]=\"'transparent'\"\r\n preventDefault\r\n stopPropagation\r\n ></bsu-file-viewer-popover>\r\n }\r\n <!-- <fd-token *ngIf=\"!file.IsDeleted\" [readOnly]=\"true\">{{ file.FileName }}</fd-token> -->\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellFileInfo>\r\n @if (mo[column.Name]) {\r\n <fd-avatar\r\n [transparent]=\"true\"\r\n [size]=\"column.FieldTypeId === '42' || column.FieldTypeId === 42 ? 'xs' : deviceSize === 's' ? 's' : 'm'\"\r\n [image]=\"mo[column.Name] | picFieldSrc: 'PictureFileInfo':null:column.FieldDefId\"\r\n ></fd-avatar>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellChecbox>\r\n <fd-icon [glyph]=\"mo[column.Name] === true ? 'accept' : 'less'\"></fd-icon>\r\n</ng-template>\r\n<ng-template #renderChecboxImage>\r\n @if (column.Extra?.TrueImage === '') {\r\n {{ value }}\r\n } @if (column.Extra?.TrueImage !== '') {\r\n <img [src]=\"mo[column.Name] ? column.Extra?.TrueImage : column.Extra?.FalseImage\" aling=\"middle\" />\r\n }\r\n</ng-template>\r\n<ng-template #renderCellImage>\r\n @if (mo[column.Name] && mo[column.Name]['Url']) {\r\n <fd-avatar\r\n [size]=\"column.FieldTypeId === '42' || column.FieldTypeId === 42 ? 'xs' : deviceSize === 's' ? 's' : 'm'\"\r\n [transparent]=\"true\"\r\n [image]=\"mo[column.Name]['Url']\"\r\n ></fd-avatar>\r\n }\r\n</ng-template>\r\n", styles: [":host{display:contents;overflow:hidden;padding:0}:host.isMobile span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;white-space:pre-wrap}fd-avatar{min-width:100%;width:100%;max-width:64px}.renderGeneral{display:flex;width:100%;height:100%;align-items:center;justify-content:start}.renderGeneral.onlyIcon{justify-content:center}fd-text.col-value ::ng-deep p{color:inherit;font-size:inherit;font-family:inherit;font-weight:inherit}\n"] }]
58
+ args: [{ selector: 'bsu-column-renderer,[colRenderer]', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if (column) {\r\n<ng-container *ngTemplateOutlet=\"editMode ? formControlTemplate : renderCellTemplate\"> </ng-container>\r\n}\r\n<ng-template #renderCellTemplate>\r\n @switch (column.FieldTypeId) { @case (42) {\r\n <ng-container *ngTemplateOutlet=\"renderCellImage\"></ng-container>\r\n } @case (33) {\r\n <ng-container *ngTemplateOutlet=\"renderCellFileInfo\"></ng-container>\r\n } @case (31) {\r\n <ng-container *ngTemplateOutlet=\"renderCellFileListKhati\"></ng-container>\r\n } @case (11) {\r\n <ng-container *ngTemplateOutlet=\"renderCellListTasavir\"></ng-container>\r\n } @case (5) {\r\n <ng-container\r\n *ngTemplateOutlet=\"column.Extra?.ShowCheckInGrid ? renderCellChecbox : renderChecboxImage\"\r\n ></ng-container>\r\n } @default {\r\n <ng-container *ngTemplateOutlet=\"renderGeneral\"></ng-container>\r\n } }\r\n</ng-template>\r\n<ng-template #renderGeneral>\r\n <div class=\"renderGeneral\" [class.onlyIcon]=\"column.Extra?.IconDisplayTypeEnum === 'Image'\" [style.width]=\"\" [attr.title]=\"value\">\r\n @if (icon) {\r\n <img [attr.rtl]=\"rtl\" [src]=\"icon\" />\r\n }\r\n <!-- <fd-text\r\n #fdText\r\n *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\"\r\n [maxLines]=\"1\"\r\n [text]=\"value\"\r\n [fd-inline-help]=\"value\"\r\n [disabled]=\"!fdText._hasMore\"\r\n ></fd-text> -->\r\n\r\n <!-- <bsu-barsa-text-ellipsis\r\n [style.width]=\"column.$Width\"\r\n *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\"\r\n [text]=\"value\"\r\n></bsu-barsa-text-ellipsis> -->\r\n <!-- <div *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\" style=\"word-break:break-word\">\r\n{{ value }}\r\n</div> -->\r\n @if (column.Extra?.IconDisplayTypeEnum !== 'Image') { @if(!isMobile && !fdTextMode){\r\n <div\r\n [ellapsisText]=\"value\"\r\n [disableEllapsis]=\"editMode\"\r\n [class.ellapsis]=\"!disableEllapsis\" \r\n (ellapsised)=\"onElapsised($event)\"\r\n >\r\n {{ value }}\r\n </div>\r\n } @else{\r\n <fd-text [attr.title]=\"value\" class=\"col-value\" [text]=\"value\" [maxLines]=\"2\"></fd-text>\r\n } }\r\n </div>\r\n</ng-template>\r\n<ng-template #formControlTemplate>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n !controlUi || controlUi.FieldUi.originalXtype === 'Ui.ReadOnlyField'\r\n ? renderCellTemplate\r\n : layoutControlTemplate\r\n \"\r\n ></ng-container>\r\n</ng-template>\r\n<ng-template #layoutControlTemplate>\r\n @if (controlUi) {\r\n <bsu-layout-control\r\n [inlineEdit]=\"true\"\r\n [caption]=\"column.Caption\"\r\n [cellEdit]=\"cellEdit\"\r\n [config]=\"controlUi\"\r\n [focusControl]=\"index === 0 && (isChecked || isNewInlineMo)\"\r\n [showLabel]=\"formLayoutShowLabel\"\r\n ></bsu-layout-control>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellListTasavir>\r\n @if (mo[column.Name] && mo[column.Name].Images) {\r\n <div style=\"display: flex; flex-wrap: wrap; gap: 0.15rem\">\r\n @for (pic of mo[column.Name].Images; track pic) {\r\n <img\r\n fullscreen\r\n fullscreenFiles\r\n [files]=\"mo[column.Name].Images\"\r\n [isImageGallery]=\"true\"\r\n [deviceSize]=\"deviceSize\"\r\n [src]=\"pic.FileId | picFieldSrc: 'BarsaPicture.Thumbnail':null:'':32:32\"\r\n style=\"width: 3rem; height: 3rem\"\r\n />\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellFileListKhati>\r\n @if (mo[column.Name]) {\r\n <div class=\"file-viewer-attachments\">\r\n @for (file of mo[column.Name].Files; track file) { @if (!file.IsDeleted) {\r\n <bsu-file-viewer-popover\r\n #fileviewerPopover\r\n intersectionObserver\r\n [intersectionThreshold]=\"0.1\"\r\n (visibilityChange)=\"$event === 'Visible' && onSetMaxWidth()\"\r\n [file]=\"file\"\r\n [attachmentViewType]=\"+attachmentViewType\"\r\n [files]=\"mo[column.Name].Files\"\r\n [deviceSize]=\"deviceSize\"\r\n [canDownload]=\"true\"\r\n [disableRemove]=\"true\"\r\n [fdType]=\"'transparent'\"\r\n preventDefault\r\n stopPropagation\r\n ></bsu-file-viewer-popover>\r\n }\r\n <!-- <fd-token *ngIf=\"!file.IsDeleted\" [readOnly]=\"true\">{{ file.FileName }}</fd-token> -->\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellFileInfo>\r\n @if (mo[column.Name]) {\r\n <fd-avatar\r\n [transparent]=\"true\"\r\n [size]=\"column.FieldTypeId === '42' || column.FieldTypeId === 42 ? 'xs' : deviceSize === 's' ? 's' : 'm'\"\r\n [image]=\"mo[column.Name] | picFieldSrc: 'PictureFileInfo':null:column.FieldDefId\"\r\n ></fd-avatar>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellChecbox>\r\n <fd-icon [glyph]=\"mo[column.Name] === true ? 'accept' : 'less'\"></fd-icon>\r\n</ng-template>\r\n<ng-template #renderChecboxImage>\r\n @if (column.Extra?.TrueImage === '') {\r\n {{ value }}\r\n } @if (column.Extra?.TrueImage !== '') {\r\n <img [src]=\"mo[column.Name] ? column.Extra?.TrueImage : column.Extra?.FalseImage\" aling=\"middle\" />\r\n }\r\n</ng-template>\r\n<ng-template #renderCellImage>\r\n @if (mo[column.Name] && mo[column.Name]['Url']) {\r\n <fd-avatar\r\n [size]=\"column.FieldTypeId === '42' || column.FieldTypeId === 42 ? 'xs' : deviceSize === 's' ? 's' : 'm'\"\r\n [transparent]=\"true\"\r\n [image]=\"mo[column.Name]['Url']\"\r\n ></fd-avatar>\r\n }\r\n</ng-template>\r\n", styles: [":host{display:contents;overflow:hidden;padding:0}:host.isMobile span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;white-space:pre-wrap}fd-avatar{min-width:100%;width:100%;max-width:64px}.renderGeneral{display:flex;width:100%;height:100%;align-items:center;justify-content:start}.renderGeneral.onlyIcon{justify-content:center}fd-text.col-value ::ng-deep p{color:inherit;font-size:inherit;font-family:inherit;font-weight:inherit}\n"] }]
59
59
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { _filePopover: [{
60
60
  type: ViewChild,
61
61
  args: ['fileviewerPopover', { static: false, read: ElementRef }]
62
62
  }], _isSmall: [{
63
63
  type: HostBinding,
64
64
  args: ['class.isMobile']
65
+ }], cellEdit: [{
66
+ type: Input
65
67
  }], column: [{
66
68
  type: Input
67
69
  }], allColumns: [{
@@ -103,4 +105,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
103
105
  }], icon: [{
104
106
  type: Input
105
107
  }] } });
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXJlbmRlcmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2NvbHVtbi1yZW5kZXJlci9jb2x1bW4tcmVuZGVyZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvY29sdW1uLXJlbmRlcmVyL2NvbHVtbi1yZW5kZXJlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsS0FBSyxFQU1MLE1BQU0sRUFDTixNQUFNLEVBQ04sU0FBUyxFQUNULFVBQVUsRUFDVixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVILGFBQWEsRUFJaEIsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7OztBQVM5QixNQUFNLE9BQU8sdUJBQXdCLFNBQVEsYUFBYTtJQWdDdEQsWUFBc0IsSUFBdUI7UUFDekMsS0FBSyxFQUFFLENBQUM7UUFEVSxTQUFJLEdBQUosSUFBSSxDQUFtQjtRQTlCZCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBMEJoRDs7V0FFRztRQUNPLGVBQVUsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFHekMsQ0FBQztJQUNELFFBQVE7UUFDSixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkQsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLENBQUM7SUFDTCxDQUFDO0lBQ0QsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDMUIsSUFBSSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzdDLENBQUM7SUFDTCxDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDOUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDWixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzlCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNWLENBQUM7SUFDTCxDQUFDO0lBQ0QsV0FBVyxDQUFDLEdBQVk7UUFDcEIsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdkIsT0FBTztRQUNYLENBQUM7UUFDRCxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQztRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFDRCxhQUFhO1FBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxXQUFXLElBQUksQ0FBQyxDQUFDO0lBQ2xILENBQUM7K0dBbEVRLHVCQUF1QjttR0FBdkIsdUJBQXVCLHN1QkFDdUIsVUFBVSx5RUNqQ3JFLCtxTEFrSkE7OzRGRGxIYSx1QkFBdUI7a0JBUG5DLFNBQVM7K0JBQ0ksbUNBQW1DLG1CQUc1Qix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLEtBQUs7c0ZBR29ELFlBQVk7c0JBQWhGLFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBQ3BDLFFBQVE7c0JBQXRDLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQUNwQixNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBIb3N0QmluZGluZyxcclxuICAgIElucHV0LFxyXG4gICAgQWZ0ZXJWaWV3SW5pdCxcclxuICAgIE9uSW5pdCxcclxuICAgIE9uQ2hhbmdlcyxcclxuICAgIFNpbXBsZUNoYW5nZXMsXHJcbiAgICBXcml0YWJsZVNpZ25hbCxcclxuICAgIHNpZ25hbCxcclxuICAgIGluamVjdCxcclxuICAgIFJlbmRlcmVyMixcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICAgIEFiYnJldmF0aW9uRGV2aWNlU2l6ZSxcclxuICAgIEJhc2VDb21wb25lbnQsXHJcbiAgICBMYXlvdXRTZXR0aW5nLFxyXG4gICAgTWV0YW9iamVjdERhdGFNb2RlbCxcclxuICAgIFJlcG9ydFZpZXdDb2x1bW5cclxufSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYnN1LWNvbHVtbi1yZW5kZXJlcixbY29sUmVuZGVyZXJdJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb2x1bW4tcmVuZGVyZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vY29sdW1uLXJlbmRlcmVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0YW5kYWxvbmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb2x1bW5SZW5kZXJlckNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgICBAVmlld0NoaWxkKCdmaWxldmlld2VyUG9wb3ZlcicsIHsgc3RhdGljOiBmYWxzZSwgcmVhZDogRWxlbWVudFJlZiB9KSBfZmlsZVBvcG92ZXI6IEVsZW1lbnRSZWY7XHJcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlzTW9iaWxlJykgX2lzU21hbGwgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIGNvbHVtbjogUmVwb3J0Vmlld0NvbHVtbjtcclxuICAgIEBJbnB1dCgpIGFsbENvbHVtbnM6IFJlcG9ydFZpZXdDb2x1bW5bXTtcclxuICAgIEBJbnB1dCgpIG1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xyXG4gICAgQElucHV0KCkgaW5kZXg6IGFueTtcclxuICAgIEBJbnB1dCgpIGVkaXRNb2RlOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgYXR0YWNobWVudFZpZXdUeXBlOiBudW1iZXI7XHJcbiAgICBASW5wdXQoKSBjdXN0b21Sb3dIZWlnaHQ6IGFueTtcclxuICAgIEBJbnB1dCgpIGNvbnRyb2xVaTogTGF5b3V0U2V0dGluZyB8IG51bGw7XHJcbiAgICBASW5wdXQoKSBmb3JtTGF5b3V0U2hvd0xhYmVsOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgaXNDaGVja2VkOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgaXNOZXdJbmxpbmVNbzogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGNvbnRhaW5lckRvbTogSFRNTEVsZW1lbnQ7XHJcblxyXG4gICAgQElucHV0KCkgZGlzYWJsZUVsbGFwc2lzOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgcnRsOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgaXNNb2JpbGU6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBmZFRleHRNb2RlOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgZGV2aWNlTmFtZTogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgZGV2aWNlU2l6ZTogQWJicmV2YXRpb25EZXZpY2VTaXplO1xyXG4gICAgQElucHV0KCkgdmFsdWU6IGFueTtcclxuICAgIEBJbnB1dCgpIGljb246IGFueTtcclxuXHJcbiAgICBzaG93TW9yZTogYm9vbGVhbjtcclxuICAgIGZpZWxkVHlwZUlkOiBudW1iZXI7XHJcbiAgICBzaWduYWxWYWx1ZTogV3JpdGFibGVTaWduYWw8YW55PjtcclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9yZW5kZXJlcjIgPSBpbmplY3QoUmVuZGVyZXIyKTtcclxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICB9XHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNpZ25hbFZhbHVlID0gc2lnbmFsKHRoaXMudmFsdWUpO1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgdGhpcy5maWVsZFR5cGVJZCA9IE51bWJlcih0aGlzLmNvbHVtbi5GaWVsZFR5cGVJZCk7XHJcbiAgICAgICAgaWYgKHRoaXMuZGV2aWNlU2l6ZSA9PT0gJ3MnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2lzU21hbGwgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCB7IHZhbHVlIH0gPSBjaGFuZ2VzO1xyXG4gICAgICAgIGlmICh2YWx1ZSAmJiAhdmFsdWUuZmlyc3RDaGFuZ2UpIHtcclxuICAgICAgICAgICAgdGhpcy5zaWduYWxWYWx1ZS5zZXQodmFsdWUuY3VycmVudFZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmNvbHVtbi5GaWVsZFR5cGVJZC50b1N0cmluZygpID09PSAnMzEnKSB7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgb25FbGFwc2lzZWQodmFsOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZUVsbGFwc2lzKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zaG93TW9yZSA9IHZhbDtcclxuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gICAgb25TZXRNYXhXaWR0aCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9yZW5kZXJlcjIuc2V0U3R5bGUodGhpcy5fZmlsZVBvcG92ZXIubmF0aXZlRWxlbWVudCwgJ21heC13aWR0aCcsIGAke3RoaXMuY29udGFpbmVyRG9tPy5vZmZzZXRXaWR0aH1weGApO1xyXG4gICAgfVxyXG59XHJcbiIsIkBpZiAoY29sdW1uKSB7XHJcbjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlZGl0TW9kZSA/IGZvcm1Db250cm9sVGVtcGxhdGUgOiByZW5kZXJDZWxsVGVtcGxhdGVcIj4gPC9uZy1jb250YWluZXI+XHJcbn1cclxuPG5nLXRlbXBsYXRlICNyZW5kZXJDZWxsVGVtcGxhdGU+XHJcbiAgICBAc3dpdGNoIChjb2x1bW4uRmllbGRUeXBlSWQpIHsgQGNhc2UgKDQyKSB7XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVuZGVyQ2VsbEltYWdlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICB9IEBjYXNlICgzMykge1xyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInJlbmRlckNlbGxGaWxlSW5mb1wiPjwvbmctY29udGFpbmVyPlxyXG4gICAgfSBAY2FzZSAoMzEpIHtcclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyZW5kZXJDZWxsRmlsZUxpc3RLaGF0aVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgfSBAY2FzZSAoMTEpIHtcclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyZW5kZXJDZWxsTGlzdFRhc2F2aXJcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIH0gQGNhc2UgKDUpIHtcclxuICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImNvbHVtbi5FeHRyYT8uU2hvd0NoZWNrSW5HcmlkID8gcmVuZGVyQ2VsbENoZWNib3ggOiByZW5kZXJDaGVjYm94SW1hZ2VcIlxyXG4gICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgfSBAZGVmYXVsdCB7XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVuZGVyR2VuZXJhbFwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgfSB9XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjcmVuZGVyR2VuZXJhbD5cclxuICAgIDxkaXYgY2xhc3M9XCJyZW5kZXJHZW5lcmFsXCIgW2NsYXNzLm9ubHlJY29uXT1cImNvbHVtbi5FeHRyYT8uSWNvbkRpc3BsYXlUeXBlRW51bSA9PT0gJ0ltYWdlJ1wiIFtzdHlsZS53aWR0aF09XCJcIiAgICAgW2F0dHIudGl0bGVdPVwidmFsdWVcIj5cclxuICAgICAgICBAaWYgKGljb24pIHtcclxuICAgICAgICA8aW1nIFthdHRyLnJ0bF09XCJydGxcIiBbc3JjXT1cImljb25cIiAvPlxyXG4gICAgICAgIH1cclxuICAgICAgICA8IS0tIDxmZC10ZXh0XHJcbiAgICAjZmRUZXh0XHJcbiAgICAqbmdJZj1cImNvbHVtbi5FeHRyYT8uSWNvbkRpc3BsYXlUeXBlRW51bSAhPT0gJ0ltYWdlJ1wiXHJcbiAgICBbbWF4TGluZXNdPVwiMVwiXHJcbiAgICBbdGV4dF09XCJ2YWx1ZVwiXHJcbiAgICBbZmQtaW5saW5lLWhlbHBdPVwidmFsdWVcIlxyXG4gICAgW2Rpc2FibGVkXT1cIiFmZFRleHQuX2hhc01vcmVcIlxyXG4gID48L2ZkLXRleHQ+IC0tPlxyXG5cclxuICAgICAgICA8IS0tIDxic3UtYmFyc2EtdGV4dC1lbGxpcHNpc1xyXG4gIFtzdHlsZS53aWR0aF09XCJjb2x1bW4uJFdpZHRoXCJcclxuICAqbmdJZj1cImNvbHVtbi5FeHRyYT8uSWNvbkRpc3BsYXlUeXBlRW51bSAhPT0gJ0ltYWdlJ1wiXHJcbiAgW3RleHRdPVwidmFsdWVcIlxyXG4+PC9ic3UtYmFyc2EtdGV4dC1lbGxpcHNpcz4gLS0+XHJcbiAgICAgICAgPCEtLSA8ZGl2ICpuZ0lmPVwiY29sdW1uLkV4dHJhPy5JY29uRGlzcGxheVR5cGVFbnVtICE9PSAnSW1hZ2UnXCIgc3R5bGU9XCJ3b3JkLWJyZWFrOmJyZWFrLXdvcmRcIj5cclxue3sgdmFsdWUgfX1cclxuPC9kaXY+IC0tPlxyXG4gICAgICAgIEBpZiAoY29sdW1uLkV4dHJhPy5JY29uRGlzcGxheVR5cGVFbnVtICE9PSAnSW1hZ2UnKSB7IEBpZighaXNNb2JpbGUgJiYgIWZkVGV4dE1vZGUpe1xyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICAgW2VsbGFwc2lzVGV4dF09XCJ2YWx1ZVwiXHJcbiAgICAgICAgICAgIFtkaXNhYmxlRWxsYXBzaXNdPVwiZWRpdE1vZGVcIlxyXG4gICAgICAgICAgICBbY2xhc3MuZWxsYXBzaXNdPVwiIWRpc2FibGVFbGxhcHNpc1wiICAgICAgICBcclxuICAgICAgICAgICAgKGVsbGFwc2lzZWQpPVwib25FbGFwc2lzZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgICB7eyB2YWx1ZSB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH0gQGVsc2V7XHJcbiAgICAgICAgPGZkLXRleHQgW2F0dHIudGl0bGVdPVwidmFsdWVcIiBjbGFzcz1cImNvbC12YWx1ZVwiIFt0ZXh0XT1cInZhbHVlXCIgW21heExpbmVzXT1cIjJcIj48L2ZkLXRleHQ+XHJcbiAgICAgICAgfSB9XHJcbiAgICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuPG5nLXRlbXBsYXRlICNmb3JtQ29udHJvbFRlbXBsYXRlPlxyXG4gICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXHJcbiAgICAgICAgICAgICFjb250cm9sVWkgfHwgY29udHJvbFVpLkZpZWxkVWkub3JpZ2luYWxYdHlwZSA9PT0gJ1VpLlJlYWRPbmx5RmllbGQnXHJcbiAgICAgICAgICAgICAgICA/IHJlbmRlckNlbGxUZW1wbGF0ZVxyXG4gICAgICAgICAgICAgICAgOiBsYXlvdXRDb250cm9sVGVtcGxhdGVcclxuICAgICAgICBcIlxyXG4gICAgPjwvbmctY29udGFpbmVyPlxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGUgI2xheW91dENvbnRyb2xUZW1wbGF0ZT5cclxuICAgIEBpZiAoY29udHJvbFVpKSB7XHJcbiAgICA8YnN1LWxheW91dC1jb250cm9sXHJcbiAgICAgICAgW2lubGluZUVkaXRdPVwidHJ1ZVwiXHJcbiAgICAgICAgW2NhcHRpb25dPVwiY29sdW1uLkNhcHRpb25cIlxyXG4gICAgICAgIFtjb25maWddPVwiY29udHJvbFVpXCJcclxuICAgICAgICBbZm9jdXNDb250cm9sXT1cImluZGV4ID09PSAwICYmIChpc0NoZWNrZWQgfHwgaXNOZXdJbmxpbmVNbylcIlxyXG4gICAgICAgIFtzaG93TGFiZWxdPVwiZm9ybUxheW91dFNob3dMYWJlbFwiXHJcbiAgICA+PC9ic3UtbGF5b3V0LWNvbnRyb2w+XHJcbiAgICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjcmVuZGVyQ2VsbExpc3RUYXNhdmlyPlxyXG4gICAgQGlmIChtb1tjb2x1bW4uTmFtZV0gJiYgbW9bY29sdW1uLk5hbWVdLkltYWdlcykge1xyXG4gICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGZsZXgtd3JhcDogd3JhcDsgZ2FwOiAwLjE1cmVtXCI+XHJcbiAgICAgICAgQGZvciAocGljIG9mIG1vW2NvbHVtbi5OYW1lXS5JbWFnZXM7IHRyYWNrIHBpYykge1xyXG4gICAgICAgIDxpbWdcclxuICAgICAgICAgICAgZnVsbHNjcmVlblxyXG4gICAgICAgICAgICBmdWxsc2NyZWVuRmlsZXNcclxuICAgICAgICAgICAgW2ZpbGVzXT1cIm1vW2NvbHVtbi5OYW1lXS5JbWFnZXNcIlxyXG4gICAgICAgICAgICBbaXNJbWFnZUdhbGxlcnldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxyXG4gICAgICAgICAgICBbc3JjXT1cInBpYy5GaWxlSWQgfCBwaWNGaWVsZFNyYzogJ0JhcnNhUGljdHVyZS5UaHVtYm5haWwnOm51bGw6Jyc6MzI6MzJcIlxyXG4gICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAzcmVtOyBoZWlnaHQ6IDNyZW1cIlxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjcmVuZGVyQ2VsbEZpbGVMaXN0S2hhdGk+XHJcbiAgICBAaWYgKG1vW2NvbHVtbi5OYW1lXSkge1xyXG4gICAgPGRpdiBjbGFzcz1cImZpbGUtdmlld2VyLWF0dGFjaG1lbnRzXCI+XHJcbiAgICAgICAgQGZvciAoZmlsZSBvZiBtb1tjb2x1bW4uTmFtZV0uRmlsZXM7IHRyYWNrIGZpbGUpIHsgQGlmICghZmlsZS5Jc0RlbGV0ZWQpIHtcclxuICAgICAgICA8YnN1LWZpbGUtdmlld2VyLXBvcG92ZXJcclxuICAgICAgICAgICAgI2ZpbGV2aWV3ZXJQb3BvdmVyXHJcbiAgICAgICAgICAgIGludGVyc2VjdGlvbk9ic2VydmVyXHJcbiAgICAgICAgICAgIFtpbnRlcnNlY3Rpb25UaHJlc2hvbGRdPVwiMC4xXCJcclxuICAgICAgICAgICAgKHZpc2liaWxpdHlDaGFuZ2UpPVwiJGV2ZW50ID09PSAnVmlzaWJsZScgJiYgb25TZXRNYXhXaWR0aCgpXCJcclxuICAgICAgICAgICAgW2ZpbGVdPVwiZmlsZVwiXHJcbiAgICAgICAgICAgIFthdHRhY2htZW50Vmlld1R5cGVdPVwiK2F0dGFjaG1lbnRWaWV3VHlwZVwiXHJcbiAgICAgICAgICAgIFtmaWxlc109XCJtb1tjb2x1bW4uTmFtZV0uRmlsZXNcIlxyXG4gICAgICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcclxuICAgICAgICAgICAgW2NhbkRvd25sb2FkXT1cInRydWVcIlxyXG4gICAgICAgICAgICBbZGlzYWJsZVJlbW92ZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgW2ZkVHlwZV09XCIndHJhbnNwYXJlbnQnXCJcclxuICAgICAgICAgICAgcHJldmVudERlZmF1bHRcclxuICAgICAgICAgICAgc3RvcFByb3BhZ2F0aW9uXHJcbiAgICAgICAgPjwvYnN1LWZpbGUtdmlld2VyLXBvcG92ZXI+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDwhLS0gPGZkLXRva2VuICpuZ0lmPVwiIWZpbGUuSXNEZWxldGVkXCIgW3JlYWRPbmx5XT1cInRydWVcIj57eyBmaWxlLkZpbGVOYW1lIH19PC9mZC10b2tlbj4gLS0+XHJcbiAgICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjcmVuZGVyQ2VsbEZpbGVJbmZvPlxyXG4gICAgQGlmIChtb1tjb2x1bW4uTmFtZV0pIHtcclxuICAgIDxmZC1hdmF0YXJcclxuICAgICAgICBbdHJhbnNwYXJlbnRdPVwidHJ1ZVwiXHJcbiAgICAgICAgW3NpemVdPVwiY29sdW1uLkZpZWxkVHlwZUlkID09PSAnNDInIHx8IGNvbHVtbi5GaWVsZFR5cGVJZCA9PT0gNDIgPyAneHMnIDogZGV2aWNlU2l6ZSA9PT0gJ3MnID8gJ3MnIDogJ20nXCJcclxuICAgICAgICBbaW1hZ2VdPVwibW9bY29sdW1uLk5hbWVdIHwgcGljRmllbGRTcmM6ICdQaWN0dXJlRmlsZUluZm8nOm51bGw6Y29sdW1uLkZpZWxkRGVmSWRcIlxyXG4gICAgPjwvZmQtYXZhdGFyPlxyXG4gICAgfVxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGUgI3JlbmRlckNlbGxDaGVjYm94PlxyXG4gICAgPGZkLWljb24gW2dseXBoXT1cIm1vW2NvbHVtbi5OYW1lXSA9PT0gdHJ1ZSA/ICdhY2NlcHQnIDogJ2xlc3MnXCI+PC9mZC1pY29uPlxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGUgI3JlbmRlckNoZWNib3hJbWFnZT5cclxuICAgIEBpZiAoY29sdW1uLkV4dHJhPy5UcnVlSW1hZ2UgPT09ICcnKSB7XHJcbiAgICB7eyB2YWx1ZSB9fVxyXG4gICAgfSBAaWYgKGNvbHVtbi5FeHRyYT8uVHJ1ZUltYWdlICE9PSAnJykge1xyXG4gICAgPGltZyBbc3JjXT1cIm1vW2NvbHVtbi5OYW1lXSA/IGNvbHVtbi5FeHRyYT8uVHJ1ZUltYWdlIDogY29sdW1uLkV4dHJhPy5GYWxzZUltYWdlXCIgYWxpbmc9XCJtaWRkbGVcIiAvPlxyXG4gICAgfVxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGUgI3JlbmRlckNlbGxJbWFnZT5cclxuICAgIEBpZiAobW9bY29sdW1uLk5hbWVdICYmIG1vW2NvbHVtbi5OYW1lXVsnVXJsJ10pIHtcclxuICAgIDxmZC1hdmF0YXJcclxuICAgICAgICBbc2l6ZV09XCJjb2x1bW4uRmllbGRUeXBlSWQgPT09ICc0MicgfHwgY29sdW1uLkZpZWxkVHlwZUlkID09PSA0MiA/ICd4cycgOiBkZXZpY2VTaXplID09PSAncycgPyAncycgOiAnbSdcIlxyXG4gICAgICAgIFt0cmFuc3BhcmVudF09XCJ0cnVlXCJcclxuICAgICAgICBbaW1hZ2VdPVwibW9bY29sdW1uLk5hbWVdWydVcmwnXVwiXHJcbiAgICA+PC9mZC1hdmF0YXI+XHJcbiAgICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXJlbmRlcmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2NvbHVtbi1yZW5kZXJlci9jb2x1bW4tcmVuZGVyZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvY29sdW1uLXJlbmRlcmVyL2NvbHVtbi1yZW5kZXJlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsS0FBSyxFQU1MLE1BQU0sRUFDTixNQUFNLEVBQ04sU0FBUyxFQUNULFVBQVUsRUFDVixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVILGFBQWEsRUFJaEIsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7OztBQVM5QixNQUFNLE9BQU8sdUJBQXdCLFNBQVEsYUFBYTtJQWlDdEQsWUFBc0IsSUFBdUI7UUFDekMsS0FBSyxFQUFFLENBQUM7UUFEVSxTQUFJLEdBQUosSUFBSSxDQUFtQjtRQS9CZCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBMkJoRDs7V0FFRztRQUNPLGVBQVUsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFHekMsQ0FBQztJQUNELFFBQVE7UUFDSixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkQsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLENBQUM7SUFDTCxDQUFDO0lBQ0QsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDMUIsSUFBSSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzdDLENBQUM7SUFDTCxDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDOUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDWixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzlCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNWLENBQUM7SUFDTCxDQUFDO0lBQ0QsV0FBVyxDQUFDLEdBQVk7UUFDcEIsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdkIsT0FBTztRQUNYLENBQUM7UUFDRCxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQztRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFDRCxhQUFhO1FBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxXQUFXLElBQUksQ0FBQyxDQUFDO0lBQ2xILENBQUM7K0dBbkVRLHVCQUF1QjttR0FBdkIsdUJBQXVCLDR2QkFDdUIsVUFBVSx5RUNqQ3JFLGt0TEFtSkE7OzRGRG5IYSx1QkFBdUI7a0JBUG5DLFNBQVM7K0JBQ0ksbUNBQW1DLG1CQUc1Qix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLEtBQUs7c0ZBR29ELFlBQVk7c0JBQWhGLFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBQ3BDLFFBQVE7c0JBQXRDLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQUNwQixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIENvbXBvbmVudCxcclxuICAgIEhvc3RCaW5kaW5nLFxyXG4gICAgSW5wdXQsXHJcbiAgICBBZnRlclZpZXdJbml0LFxyXG4gICAgT25Jbml0LFxyXG4gICAgT25DaGFuZ2VzLFxyXG4gICAgU2ltcGxlQ2hhbmdlcyxcclxuICAgIFdyaXRhYmxlU2lnbmFsLFxyXG4gICAgc2lnbmFsLFxyXG4gICAgaW5qZWN0LFxyXG4gICAgUmVuZGVyZXIyLFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIFZpZXdDaGlsZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gICAgQWJicmV2YXRpb25EZXZpY2VTaXplLFxyXG4gICAgQmFzZUNvbXBvbmVudCxcclxuICAgIExheW91dFNldHRpbmcsXHJcbiAgICBNZXRhb2JqZWN0RGF0YU1vZGVsLFxyXG4gICAgUmVwb3J0Vmlld0NvbHVtblxyXG59IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtY29sdW1uLXJlbmRlcmVyLFtjb2xSZW5kZXJlcl0nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbHVtbi1yZW5kZXJlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9jb2x1bW4tcmVuZGVyZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbHVtblJlbmRlcmVyQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcclxuICAgIEBWaWV3Q2hpbGQoJ2ZpbGV2aWV3ZXJQb3BvdmVyJywgeyBzdGF0aWM6IGZhbHNlLCByZWFkOiBFbGVtZW50UmVmIH0pIF9maWxlUG9wb3ZlcjogRWxlbWVudFJlZjtcclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaXNNb2JpbGUnKSBfaXNTbWFsbCA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgY2VsbEVkaXQ6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBjb2x1bW46IFJlcG9ydFZpZXdDb2x1bW47XHJcbiAgICBASW5wdXQoKSBhbGxDb2x1bW5zOiBSZXBvcnRWaWV3Q29sdW1uW107XHJcbiAgICBASW5wdXQoKSBtbzogTWV0YW9iamVjdERhdGFNb2RlbDtcclxuICAgIEBJbnB1dCgpIGluZGV4OiBhbnk7XHJcbiAgICBASW5wdXQoKSBlZGl0TW9kZTogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGF0dGFjaG1lbnRWaWV3VHlwZTogbnVtYmVyO1xyXG4gICAgQElucHV0KCkgY3VzdG9tUm93SGVpZ2h0OiBhbnk7XHJcbiAgICBASW5wdXQoKSBjb250cm9sVWk6IExheW91dFNldHRpbmcgfCBudWxsO1xyXG4gICAgQElucHV0KCkgZm9ybUxheW91dFNob3dMYWJlbDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGlzQ2hlY2tlZDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGlzTmV3SW5saW5lTW86IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBjb250YWluZXJEb206IEhUTUxFbGVtZW50O1xyXG5cclxuICAgIEBJbnB1dCgpIGRpc2FibGVFbGxhcHNpczogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIHJ0bDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGlzTW9iaWxlOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgZmRUZXh0TW9kZTogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGRldmljZU5hbWU6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIGRldmljZVNpemU6IEFiYnJldmF0aW9uRGV2aWNlU2l6ZTtcclxuICAgIEBJbnB1dCgpIHZhbHVlOiBhbnk7XHJcbiAgICBASW5wdXQoKSBpY29uOiBhbnk7XHJcblxyXG4gICAgc2hvd01vcmU6IGJvb2xlYW47XHJcbiAgICBmaWVsZFR5cGVJZDogbnVtYmVyO1xyXG4gICAgc2lnbmFsVmFsdWU6IFdyaXRhYmxlU2lnbmFsPGFueT47XHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfcmVuZGVyZXIyID0gaW5qZWN0KFJlbmRlcmVyMik7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgfVxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zaWduYWxWYWx1ZSA9IHNpZ25hbCh0aGlzLnZhbHVlKTtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgICAgIHRoaXMuZmllbGRUeXBlSWQgPSBOdW1iZXIodGhpcy5jb2x1bW4uRmllbGRUeXBlSWQpO1xyXG4gICAgICAgIGlmICh0aGlzLmRldmljZVNpemUgPT09ICdzJykge1xyXG4gICAgICAgICAgICB0aGlzLl9pc1NtYWxsID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgeyB2YWx1ZSB9ID0gY2hhbmdlcztcclxuICAgICAgICBpZiAodmFsdWUgJiYgIXZhbHVlLmZpcnN0Q2hhbmdlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2lnbmFsVmFsdWUuc2V0KHZhbHVlLmN1cnJlbnRWYWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5jb2x1bW4uRmllbGRUeXBlSWQudG9TdHJpbmcoKSA9PT0gJzMxJykge1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIG9uRWxhcHNpc2VkKHZhbDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVFbGxhcHNpcykge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2hvd01vcmUgPSB2YWw7XHJcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICAgIG9uU2V0TWF4V2lkdGgoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIyLnNldFN0eWxlKHRoaXMuX2ZpbGVQb3BvdmVyLm5hdGl2ZUVsZW1lbnQsICdtYXgtd2lkdGgnLCBgJHt0aGlzLmNvbnRhaW5lckRvbT8ub2Zmc2V0V2lkdGh9cHhgKTtcclxuICAgIH1cclxufVxyXG4iLCJAaWYgKGNvbHVtbikge1xyXG48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZWRpdE1vZGUgPyBmb3JtQ29udHJvbFRlbXBsYXRlIDogcmVuZGVyQ2VsbFRlbXBsYXRlXCI+IDwvbmctY29udGFpbmVyPlxyXG59XHJcbjxuZy10ZW1wbGF0ZSAjcmVuZGVyQ2VsbFRlbXBsYXRlPlxyXG4gICAgQHN3aXRjaCAoY29sdW1uLkZpZWxkVHlwZUlkKSB7IEBjYXNlICg0Mikge1xyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInJlbmRlckNlbGxJbWFnZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgfSBAY2FzZSAoMzMpIHtcclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyZW5kZXJDZWxsRmlsZUluZm9cIj48L25nLWNvbnRhaW5lcj5cclxuICAgIH0gQGNhc2UgKDMxKSB7XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVuZGVyQ2VsbEZpbGVMaXN0S2hhdGlcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIH0gQGNhc2UgKDExKSB7XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVuZGVyQ2VsbExpc3RUYXNhdmlyXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICB9IEBjYXNlICg1KSB7XHJcbiAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2x1bW4uRXh0cmE/LlNob3dDaGVja0luR3JpZCA/IHJlbmRlckNlbGxDaGVjYm94IDogcmVuZGVyQ2hlY2JveEltYWdlXCJcclxuICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgIH0gQGRlZmF1bHQge1xyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInJlbmRlckdlbmVyYWxcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIH0gfVxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGUgI3JlbmRlckdlbmVyYWw+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmVuZGVyR2VuZXJhbFwiIFtjbGFzcy5vbmx5SWNvbl09XCJjb2x1bW4uRXh0cmE/Lkljb25EaXNwbGF5VHlwZUVudW0gPT09ICdJbWFnZSdcIiBbc3R5bGUud2lkdGhdPVwiXCIgICAgIFthdHRyLnRpdGxlXT1cInZhbHVlXCI+XHJcbiAgICAgICAgQGlmIChpY29uKSB7XHJcbiAgICAgICAgPGltZyBbYXR0ci5ydGxdPVwicnRsXCIgW3NyY109XCJpY29uXCIgLz5cclxuICAgICAgICB9XHJcbiAgICAgICAgPCEtLSA8ZmQtdGV4dFxyXG4gICAgI2ZkVGV4dFxyXG4gICAgKm5nSWY9XCJjb2x1bW4uRXh0cmE/Lkljb25EaXNwbGF5VHlwZUVudW0gIT09ICdJbWFnZSdcIlxyXG4gICAgW21heExpbmVzXT1cIjFcIlxyXG4gICAgW3RleHRdPVwidmFsdWVcIlxyXG4gICAgW2ZkLWlubGluZS1oZWxwXT1cInZhbHVlXCJcclxuICAgIFtkaXNhYmxlZF09XCIhZmRUZXh0Ll9oYXNNb3JlXCJcclxuICA+PC9mZC10ZXh0PiAtLT5cclxuXHJcbiAgICAgICAgPCEtLSA8YnN1LWJhcnNhLXRleHQtZWxsaXBzaXNcclxuICBbc3R5bGUud2lkdGhdPVwiY29sdW1uLiRXaWR0aFwiXHJcbiAgKm5nSWY9XCJjb2x1bW4uRXh0cmE/Lkljb25EaXNwbGF5VHlwZUVudW0gIT09ICdJbWFnZSdcIlxyXG4gIFt0ZXh0XT1cInZhbHVlXCJcclxuPjwvYnN1LWJhcnNhLXRleHQtZWxsaXBzaXM+IC0tPlxyXG4gICAgICAgIDwhLS0gPGRpdiAqbmdJZj1cImNvbHVtbi5FeHRyYT8uSWNvbkRpc3BsYXlUeXBlRW51bSAhPT0gJ0ltYWdlJ1wiIHN0eWxlPVwid29yZC1icmVhazpicmVhay13b3JkXCI+XHJcbnt7IHZhbHVlIH19XHJcbjwvZGl2PiAtLT5cclxuICAgICAgICBAaWYgKGNvbHVtbi5FeHRyYT8uSWNvbkRpc3BsYXlUeXBlRW51bSAhPT0gJ0ltYWdlJykgeyBAaWYoIWlzTW9iaWxlICYmICFmZFRleHRNb2RlKXtcclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIFtlbGxhcHNpc1RleHRdPVwidmFsdWVcIlxyXG4gICAgICAgICAgICBbZGlzYWJsZUVsbGFwc2lzXT1cImVkaXRNb2RlXCJcclxuICAgICAgICAgICAgW2NsYXNzLmVsbGFwc2lzXT1cIiFkaXNhYmxlRWxsYXBzaXNcIiAgICAgICAgXHJcbiAgICAgICAgICAgIChlbGxhcHNpc2VkKT1cIm9uRWxhcHNpc2VkKCRldmVudClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgICAge3sgdmFsdWUgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9IEBlbHNle1xyXG4gICAgICAgIDxmZC10ZXh0IFthdHRyLnRpdGxlXT1cInZhbHVlXCIgY2xhc3M9XCJjb2wtdmFsdWVcIiBbdGV4dF09XCJ2YWx1ZVwiIFttYXhMaW5lc109XCIyXCI+PC9mZC10ZXh0PlxyXG4gICAgICAgIH0gfVxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjZm9ybUNvbnRyb2xUZW1wbGF0ZT5cclxuICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxyXG4gICAgICAgICAgICAhY29udHJvbFVpIHx8IGNvbnRyb2xVaS5GaWVsZFVpLm9yaWdpbmFsWHR5cGUgPT09ICdVaS5SZWFkT25seUZpZWxkJ1xyXG4gICAgICAgICAgICAgICAgPyByZW5kZXJDZWxsVGVtcGxhdGVcclxuICAgICAgICAgICAgICAgIDogbGF5b3V0Q29udHJvbFRlbXBsYXRlXHJcbiAgICAgICAgXCJcclxuICAgID48L25nLWNvbnRhaW5lcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuPG5nLXRlbXBsYXRlICNsYXlvdXRDb250cm9sVGVtcGxhdGU+XHJcbiAgICBAaWYgKGNvbnRyb2xVaSkge1xyXG4gICAgPGJzdS1sYXlvdXQtY29udHJvbFxyXG4gICAgICAgIFtpbmxpbmVFZGl0XT1cInRydWVcIlxyXG4gICAgICAgIFtjYXB0aW9uXT1cImNvbHVtbi5DYXB0aW9uXCJcclxuICAgICAgICBbY2VsbEVkaXRdPVwiY2VsbEVkaXRcIlxyXG4gICAgICAgIFtjb25maWddPVwiY29udHJvbFVpXCJcclxuICAgICAgICBbZm9jdXNDb250cm9sXT1cImluZGV4ID09PSAwICYmIChpc0NoZWNrZWQgfHwgaXNOZXdJbmxpbmVNbylcIlxyXG4gICAgICAgIFtzaG93TGFiZWxdPVwiZm9ybUxheW91dFNob3dMYWJlbFwiXHJcbiAgICA+PC9ic3UtbGF5b3V0LWNvbnRyb2w+XHJcbiAgICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjcmVuZGVyQ2VsbExpc3RUYXNhdmlyPlxyXG4gICAgQGlmIChtb1tjb2x1bW4uTmFtZV0gJiYgbW9bY29sdW1uLk5hbWVdLkltYWdlcykge1xyXG4gICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGZsZXgtd3JhcDogd3JhcDsgZ2FwOiAwLjE1cmVtXCI+XHJcbiAgICAgICAgQGZvciAocGljIG9mIG1vW2NvbHVtbi5OYW1lXS5JbWFnZXM7IHRyYWNrIHBpYykge1xyXG4gICAgICAgIDxpbWdcclxuICAgICAgICAgICAgZnVsbHNjcmVlblxyXG4gICAgICAgICAgICBmdWxsc2NyZWVuRmlsZXNcclxuICAgICAgICAgICAgW2ZpbGVzXT1cIm1vW2NvbHVtbi5OYW1lXS5JbWFnZXNcIlxyXG4gICAgICAgICAgICBbaXNJbWFnZUdhbGxlcnldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxyXG4gICAgICAgICAgICBbc3JjXT1cInBpYy5GaWxlSWQgfCBwaWNGaWVsZFNyYzogJ0JhcnNhUGljdHVyZS5UaHVtYm5haWwnOm51bGw6Jyc6MzI6MzJcIlxyXG4gICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAzcmVtOyBoZWlnaHQ6IDNyZW1cIlxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjcmVuZGVyQ2VsbEZpbGVMaXN0S2hhdGk+XHJcbiAgICBAaWYgKG1vW2NvbHVtbi5OYW1lXSkge1xyXG4gICAgPGRpdiBjbGFzcz1cImZpbGUtdmlld2VyLWF0dGFjaG1lbnRzXCI+XHJcbiAgICAgICAgQGZvciAoZmlsZSBvZiBtb1tjb2x1bW4uTmFtZV0uRmlsZXM7IHRyYWNrIGZpbGUpIHsgQGlmICghZmlsZS5Jc0RlbGV0ZWQpIHtcclxuICAgICAgICA8YnN1LWZpbGUtdmlld2VyLXBvcG92ZXJcclxuICAgICAgICAgICAgI2ZpbGV2aWV3ZXJQb3BvdmVyXHJcbiAgICAgICAgICAgIGludGVyc2VjdGlvbk9ic2VydmVyXHJcbiAgICAgICAgICAgIFtpbnRlcnNlY3Rpb25UaHJlc2hvbGRdPVwiMC4xXCJcclxuICAgICAgICAgICAgKHZpc2liaWxpdHlDaGFuZ2UpPVwiJGV2ZW50ID09PSAnVmlzaWJsZScgJiYgb25TZXRNYXhXaWR0aCgpXCJcclxuICAgICAgICAgICAgW2ZpbGVdPVwiZmlsZVwiXHJcbiAgICAgICAgICAgIFthdHRhY2htZW50Vmlld1R5cGVdPVwiK2F0dGFjaG1lbnRWaWV3VHlwZVwiXHJcbiAgICAgICAgICAgIFtmaWxlc109XCJtb1tjb2x1bW4uTmFtZV0uRmlsZXNcIlxyXG4gICAgICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcclxuICAgICAgICAgICAgW2NhbkRvd25sb2FkXT1cInRydWVcIlxyXG4gICAgICAgICAgICBbZGlzYWJsZVJlbW92ZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgW2ZkVHlwZV09XCIndHJhbnNwYXJlbnQnXCJcclxuICAgICAgICAgICAgcHJldmVudERlZmF1bHRcclxuICAgICAgICAgICAgc3RvcFByb3BhZ2F0aW9uXHJcbiAgICAgICAgPjwvYnN1LWZpbGUtdmlld2VyLXBvcG92ZXI+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDwhLS0gPGZkLXRva2VuICpuZ0lmPVwiIWZpbGUuSXNEZWxldGVkXCIgW3JlYWRPbmx5XT1cInRydWVcIj57eyBmaWxlLkZpbGVOYW1lIH19PC9mZC10b2tlbj4gLS0+XHJcbiAgICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjcmVuZGVyQ2VsbEZpbGVJbmZvPlxyXG4gICAgQGlmIChtb1tjb2x1bW4uTmFtZV0pIHtcclxuICAgIDxmZC1hdmF0YXJcclxuICAgICAgICBbdHJhbnNwYXJlbnRdPVwidHJ1ZVwiXHJcbiAgICAgICAgW3NpemVdPVwiY29sdW1uLkZpZWxkVHlwZUlkID09PSAnNDInIHx8IGNvbHVtbi5GaWVsZFR5cGVJZCA9PT0gNDIgPyAneHMnIDogZGV2aWNlU2l6ZSA9PT0gJ3MnID8gJ3MnIDogJ20nXCJcclxuICAgICAgICBbaW1hZ2VdPVwibW9bY29sdW1uLk5hbWVdIHwgcGljRmllbGRTcmM6ICdQaWN0dXJlRmlsZUluZm8nOm51bGw6Y29sdW1uLkZpZWxkRGVmSWRcIlxyXG4gICAgPjwvZmQtYXZhdGFyPlxyXG4gICAgfVxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGUgI3JlbmRlckNlbGxDaGVjYm94PlxyXG4gICAgPGZkLWljb24gW2dseXBoXT1cIm1vW2NvbHVtbi5OYW1lXSA9PT0gdHJ1ZSA/ICdhY2NlcHQnIDogJ2xlc3MnXCI+PC9mZC1pY29uPlxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGUgI3JlbmRlckNoZWNib3hJbWFnZT5cclxuICAgIEBpZiAoY29sdW1uLkV4dHJhPy5UcnVlSW1hZ2UgPT09ICcnKSB7XHJcbiAgICB7eyB2YWx1ZSB9fVxyXG4gICAgfSBAaWYgKGNvbHVtbi5FeHRyYT8uVHJ1ZUltYWdlICE9PSAnJykge1xyXG4gICAgPGltZyBbc3JjXT1cIm1vW2NvbHVtbi5OYW1lXSA/IGNvbHVtbi5FeHRyYT8uVHJ1ZUltYWdlIDogY29sdW1uLkV4dHJhPy5GYWxzZUltYWdlXCIgYWxpbmc9XCJtaWRkbGVcIiAvPlxyXG4gICAgfVxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGUgI3JlbmRlckNlbGxJbWFnZT5cclxuICAgIEBpZiAobW9bY29sdW1uLk5hbWVdICYmIG1vW2NvbHVtbi5OYW1lXVsnVXJsJ10pIHtcclxuICAgIDxmZC1hdmF0YXJcclxuICAgICAgICBbc2l6ZV09XCJjb2x1bW4uRmllbGRUeXBlSWQgPT09ICc0MicgfHwgY29sdW1uLkZpZWxkVHlwZUlkID09PSA0MiA/ICd4cycgOiBkZXZpY2VTaXplID09PSAncycgPyAncycgOiAnbSdcIlxyXG4gICAgICAgIFt0cmFuc3BhcmVudF09XCJ0cnVlXCJcclxuICAgICAgICBbaW1hZ2VdPVwibW9bY29sdW1uLk5hbWVdWydVcmwnXVwiXHJcbiAgICA+PC9mZC1hdmF0YXI+XHJcbiAgICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==