barsa-sap-ui 2.0.53 → 2.0.56

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 (28) hide show
  1. package/esm2022/lib/barsa-question-answer-form/barsa-question-answer-form.component.mjs +2 -2
  2. package/esm2022/lib/barsa-table-column/barsa-table-column.component.mjs +3 -3
  3. package/esm2022/lib/barsa-table-header/barsa-table-header.component.mjs +13 -4
  4. package/esm2022/lib/barsa-table-row/barsa-table-row.component.mjs +5 -3
  5. package/esm2022/lib/card-item/card-item.component.mjs +3 -3
  6. package/esm2022/lib/column-renderer/column-renderer.component.mjs +3 -3
  7. package/esm2022/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.mjs +1 -1
  8. package/esm2022/lib/list-item/list-item.component.mjs +3 -3
  9. package/esm2022/lib/models/grid-data-provider.mjs +3 -3
  10. package/esm2022/lib/report-view-renderer.directive.mjs +9 -4
  11. package/esm2022/lib/sap-ui-report-base.component.mjs +14 -4
  12. package/esm2022/lib/ui-grid/ui-grid.component.mjs +3 -3
  13. package/esm2022/lib/ui-num-decimal-ui/ui-num-decimal-ui.component.mjs +12 -3
  14. package/esm2022/lib/ui-report-container/ui-report-container.component.mjs +3 -3
  15. package/esm2022/lib/ui-table-view/ui-table-view.component.mjs +77 -4
  16. package/esm2022/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.mjs +3 -3
  17. package/esm2022/lib/ulv-paging/ulv-paging.component.mjs +3 -3
  18. package/esm2022/lib/ulv-toolbar/ulv-toolbar.component.mjs +11 -4
  19. package/fesm2022/barsa-sap-ui.mjs +151 -37
  20. package/fesm2022/barsa-sap-ui.mjs.map +1 -1
  21. package/lib/barsa-table-header/barsa-table-header.component.d.ts +4 -1
  22. package/lib/barsa-table-row/barsa-table-row.component.d.ts +2 -1
  23. package/lib/models/grid-data-provider.d.ts +2 -1
  24. package/lib/report-view-renderer.directive.d.ts +6 -2
  25. package/lib/sap-ui-report-base.component.d.ts +5 -1
  26. package/lib/ui-num-decimal-ui/ui-num-decimal-ui.component.d.ts +1 -0
  27. package/lib/ui-table-view/ui-table-view.component.d.ts +18 -0
  28. package/package.json +1 -1
@@ -21,7 +21,7 @@ export class BarsaQuestionAnswerFormComponent extends FormPropsBaseComponent {
21
21
  }
22
22
  }
23
23
  onVoteChange(isPositive) {
24
- const vote = this._controlUiPipe.transform(isPositive ? 'ثبت رای مثبت' : 'ثبت رای منفی', this.layout94);
24
+ const vote = this._controlUiPipe.transform(isPositive ? 'ثبت رای مثبت' : 'ثبت رای منفی', this.layout94, '');
25
25
  vote && vote?.FieldUi.fireEvent('click', vote.FieldUi);
26
26
  }
27
27
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaQuestionAnswerFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
@@ -31,4 +31,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
31
31
  type: Component,
32
32
  args: [{ selector: 'bsu-barsa-question-answer-form', changeDetection: ChangeDetectionStrategy.OnPush, providers: [UploadService], template: "<div class=\"tw-absolute tw-z-0 tw-bg-white tw-w-screen tw-top-0 tw-left-0\"></div>\n<div class=\"tw-w-full tw-py-8 tw-relative\">\n <div class=\"tw-w-full tw-max-w-[80rem] tw-mx-auto tw-grid tw-grid-cols-4 tw-gap-12\">\n <div class=\"tw-col-span-3 tw-flex tw-flex-col tw-gap-8\">\n <div class=\"tw-flex tw-gap-8 tw-pb-8\">\n <div class=\"tw-grow-0 tw-shrink-0 tw-flex tw-flex-col tw-items-center tw-gap-6\">\n <img src=\"https://picsum.photos/64/64\" class=\"tw-size-12 tw-rounded-full\" />\n <bsu-barsa-question-answer-vote-section\n [vote]=\"mo.Post.CurrentUserVote.Vote\"\n [voteUps]=\"mo.Post.VoteUps\"\n [voteDowns]=\"mo.Post.VoteDowns\"\n (voteChange)=\"onVoteChange($event)\"\n ></bsu-barsa-question-answer-vote-section>\n </div>\n <div class=\"tw-grow tw-shrink\">\n <bsu-barsa-question-answer-creator-time-section\n [post]=\"mo.Post\"\n ></bsu-barsa-question-answer-creator-time-section>\n <p class=\"tw-text-2xl tw-mt-4\">\n {{ mo.Title }}\n </p>\n <bsu-barsa-question-answer-content-actions-section\n [mo]=\"mo\"\n [buttons]=\"toolbarItems\"\n ></bsu-barsa-question-answer-content-actions-section>\n <bsu-barsa-question-answer-comments-section\n [post]=\"mo.Post\"\n ></bsu-barsa-question-answer-comments-section>\n </div>\n </div>\n <p class=\"tw-z-10 tw-text-2xl tw-pb-4 tw-border-b tw-border-gray-200 tw-relative\">\n {{ mo.Answers.MoDataList.length }}\n \u067E\u0627\u0633\u062E\n </p>\n <div class=\"tw-flex tw-flex-col tw-gap-8 tw-z-10 tw-relative\">\n @if (mo.Answers.MoDataList.length) { @if ('\u067E\u0627\u0633\u062E \u0647\u0627' | controlUi: layout94; as answers) {\n <bsu-layout-control [config]=\"answers\"></bsu-layout-control>\n } }\n </div>\n </div>\n <div class=\"tw-col-span-1\">\n @if ('\u0633\u0648\u0627\u0644\u0627\u062A \u0645\u0631\u062A\u0628\u0637' | controlUi: layout94; as relevantQuestions) {\n <bsu-layout-control [config]=\"relevantQuestions\"></bsu-layout-control>\n }\n </div>\n </div>\n <div class=\"tw-w-full tw-max-w-[80rem] tw-mx-auto tw-grid tw-grid-cols-4 tw-mt-4\">\n <div\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\"\n >\n <span class=\"tw-text-xl\">\u0627\u0631\u0633\u0627\u0644 \u067E\u0627\u0633\u062E</span>\n @if ('\u067E\u0627\u0633\u062E \u062C\u062F\u06CC\u062F' | controlUi: layout94; as newAnswerText) {\n <bsu-layout-control [config]=\"newAnswerText\"></bsu-layout-control>\n }\n <div class=\"tw-flex tw-justify-end\">\n @if ('\u0627\u0631\u0633\u0627\u0644 \u067E\u0627\u0633\u062E \u062C\u062F\u06CC\u062F' | controlUi: layout94; as newAnswerSubmit) {\n <bsu-layout-control\n class=\"tw-w-fit tw-min-w-fit tw-max-w-fit\"\n [config]=\"newAnswerSubmit\"\n ></bsu-layout-control>\n }\n </div>\n </div>\n </div>\n</div>\n", styles: [":root{--sapBackgroundColor: #fdfdfd}\n"] }]
33
33
  }] });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtcXVlc3Rpb24tYW5zd2VyLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtcXVlc3Rpb24tYW5zd2VyLWZvcm0vYmFyc2EtcXVlc3Rpb24tYW5zd2VyLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtcXVlc3Rpb24tYW5zd2VyLWZvcm0vYmFyc2EtcXVlc3Rpb24tYW5zd2VyLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7OztBQVM3RSxNQUFNLE9BQU8sZ0NBQWlDLFNBQVEsc0JBQXNCO0lBUDVFOztRQW9CdUIsWUFBTyxHQUFHLE9BQU8sQ0FBQztLQUN4QztJQWJHLFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixLQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNCLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDO1lBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDOUIsQ0FBQztJQUNMLENBQUM7SUFDRCxZQUFZLENBQUMsVUFBbUI7UUFDNUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEcsSUFBSSxJQUFJLElBQUksRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0QsQ0FBQzs4R0FaUSxnQ0FBZ0M7a0dBQWhDLGdDQUFnQyx5REFGOUIsQ0FBQyxhQUFhLENBQUMsc0VDUjlCLDBqSEFpRUE7OzJGRHZEYSxnQ0FBZ0M7a0JBUDVDLFNBQVM7K0JBQ0ksZ0NBQWdDLG1CQUd6Qix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybVByb3BzQmFzZUNvbXBvbmVudCwgVXBsb2FkU2VydmljZSB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtYmFyc2EtcXVlc3Rpb24tYW5zd2VyLWZvcm0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXJzYS1xdWVzdGlvbi1hbnN3ZXItZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYmFyc2EtcXVlc3Rpb24tYW5zd2VyLWZvcm0uY29tcG9uZW50LmNzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1VwbG9hZFNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIEJhcnNhUXVlc3Rpb25BbnN3ZXJGb3JtQ29tcG9uZW50IGV4dGVuZHMgRm9ybVByb3BzQmFzZUNvbXBvbmVudCB7XG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcbiAgICAgICAgY29uc3QgeyBtbyB9ID0gY2hhbmdlcztcbiAgICAgICAgaWYgKG1vICYmICFtby5maXJzdENoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5tbyA9IG1vLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgb25Wb3RlQ2hhbmdlKGlzUG9zaXRpdmU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgdm90ZSA9IHRoaXMuX2NvbnRyb2xVaVBpcGUudHJhbnNmb3JtKGlzUG9zaXRpdmUgPyAn2KvYqNiqINix2KfbjCDZhdir2KjYqicgOiAn2KvYqNiqINix2KfbjCDZhdmG2YHbjCcsIHRoaXMubGF5b3V0OTQpO1xuICAgICAgICB2b3RlICYmIHZvdGU/LkZpZWxkVWkuZmlyZUV2ZW50KCdjbGljaycsIHZvdGUuRmllbGRVaSk7XG4gICAgfVxuICAgIHByb3RlY3RlZCByZWFkb25seSB0b29sYmFyID0gdG9vbGJhcjtcbn1cbiIsIjxkaXYgY2xhc3M9XCJ0dy1hYnNvbHV0ZSB0dy16LTAgdHctYmctd2hpdGUgdHctdy1zY3JlZW4gdHctdG9wLTAgdHctbGVmdC0wXCI+PC9kaXY+XG48ZGl2IGNsYXNzPVwidHctdy1mdWxsIHR3LXB5LTggdHctcmVsYXRpdmVcIj5cbiAgICA8ZGl2IGNsYXNzPVwidHctdy1mdWxsIHR3LW1heC13LVs4MHJlbV0gdHctbXgtYXV0byB0dy1ncmlkIHR3LWdyaWQtY29scy00IHR3LWdhcC0xMlwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidHctY29sLXNwYW4tMyB0dy1mbGV4IHR3LWZsZXgtY29sIHR3LWdhcC04XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHctZmxleCB0dy1nYXAtOCB0dy1wYi04XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR3LWdyb3ctMCB0dy1zaHJpbmstMCB0dy1mbGV4IHR3LWZsZXgtY29sIHR3LWl0ZW1zLWNlbnRlciB0dy1nYXAtNlwiPlxuICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vcGljc3VtLnBob3Rvcy82NC82NFwiIGNsYXNzPVwidHctc2l6ZS0xMiB0dy1yb3VuZGVkLWZ1bGxcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8YnN1LWJhcnNhLXF1ZXN0aW9uLWFuc3dlci12b3RlLXNlY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIFt2b3RlXT1cIm1vLlBvc3QuQ3VycmVudFVzZXJWb3RlLlZvdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZvdGVVcHNdPVwibW8uUG9zdC5Wb3RlVXBzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt2b3RlRG93bnNdPVwibW8uUG9zdC5Wb3RlRG93bnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKHZvdGVDaGFuZ2UpPVwib25Wb3RlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICA+PC9ic3UtYmFyc2EtcXVlc3Rpb24tYW5zd2VyLXZvdGUtc2VjdGlvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHctZ3JvdyB0dy1zaHJpbmtcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJzdS1iYXJzYS1xdWVzdGlvbi1hbnN3ZXItY3JlYXRvci10aW1lLXNlY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIFtwb3N0XT1cIm1vLlBvc3RcIlxuICAgICAgICAgICAgICAgICAgICA+PC9ic3UtYmFyc2EtcXVlc3Rpb24tYW5zd2VyLWNyZWF0b3ItdGltZS1zZWN0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInR3LXRleHQtMnhsIHR3LW10LTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IG1vLlRpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgPGJzdS1iYXJzYS1xdWVzdGlvbi1hbnN3ZXItY29udGVudC1hY3Rpb25zLXNlY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIFttb109XCJtb1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYnV0dG9uc109XCJ0b29sYmFySXRlbXNcIlxuICAgICAgICAgICAgICAgICAgICA+PC9ic3UtYmFyc2EtcXVlc3Rpb24tYW5zd2VyLWNvbnRlbnQtYWN0aW9ucy1zZWN0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8YnN1LWJhcnNhLXF1ZXN0aW9uLWFuc3dlci1jb21tZW50cy1zZWN0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICBbcG9zdF09XCJtby5Qb3N0XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvYnN1LWJhcnNhLXF1ZXN0aW9uLWFuc3dlci1jb21tZW50cy1zZWN0aW9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8cCBjbGFzcz1cInR3LXotMTAgdHctdGV4dC0yeGwgdHctcGItNCB0dy1ib3JkZXItYiB0dy1ib3JkZXItZ3JheS0yMDAgdHctcmVsYXRpdmVcIj5cbiAgICAgICAgICAgICAgICB7eyBtby5BbnN3ZXJzLk1vRGF0YUxpc3QubGVuZ3RoIH19XG4gICAgICAgICAgICAgICAg2b7Yp9iz2K5cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0dy1mbGV4IHR3LWZsZXgtY29sIHR3LWdhcC04IHR3LXotMTAgdHctcmVsYXRpdmVcIj5cbiAgICAgICAgICAgICAgICBAaWYgKG1vLkFuc3dlcnMuTW9EYXRhTGlzdC5sZW5ndGgpIHsgQGlmICgn2b7Yp9iz2K4g2YfYpycgfCBjb250cm9sVWk6IGxheW91dDk0OyBhcyBhbnN3ZXJzKSB7XG4gICAgICAgICAgICAgICAgPGJzdS1sYXlvdXQtY29udHJvbCBbY29uZmlnXT1cImFuc3dlcnNcIj48L2JzdS1sYXlvdXQtY29udHJvbD5cbiAgICAgICAgICAgICAgICB9IH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInR3LWNvbC1zcGFuLTFcIj5cbiAgICAgICAgICAgIEBpZiAoJ9iz2YjYp9mE2KfYqiDZhdix2KrYqNi3JyB8IGNvbnRyb2xVaTogbGF5b3V0OTQ7IGFzIHJlbGV2YW50UXVlc3Rpb25zKSB7XG4gICAgICAgICAgICA8YnN1LWxheW91dC1jb250cm9sIFtjb25maWddPVwicmVsZXZhbnRRdWVzdGlvbnNcIj48L2JzdS1sYXlvdXQtY29udHJvbD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInR3LXctZnVsbCB0dy1tYXgtdy1bODByZW1dIHR3LW14LWF1dG8gdHctZ3JpZCB0dy1ncmlkLWNvbHMtNCB0dy1tdC00XCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwidHctY29sLXNwYW4tNCB0dy1mbGV4IHR3LWZsZXgtY29sIHR3LWdhcC00IHR3LXAtNCBib3JkZXIgdHctYm9yZGVyLWdyYXktMjAwIHR3LXJvdW5kZWQtbWQgdHctYmctd2hpdGVcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInR3LXRleHQteGxcIj7Yp9ix2LPYp9mEINm+2KfYs9iuPC9zcGFuPlxuICAgICAgICAgICAgQGlmICgn2b7Yp9iz2K4g2KzYr9uM2K8nIHwgY29udHJvbFVpOiBsYXlvdXQ5NDsgYXMgbmV3QW5zd2VyVGV4dCkge1xuICAgICAgICAgICAgPGJzdS1sYXlvdXQtY29udHJvbCBbY29uZmlnXT1cIm5ld0Fuc3dlclRleHRcIj48L2JzdS1sYXlvdXQtY29udHJvbD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0dy1mbGV4IHR3LWp1c3RpZnktZW5kXCI+XG4gICAgICAgICAgICAgICAgQGlmICgn2KfYsdiz2KfZhCDZvtin2LPYriDYrNiv24zYrycgfCBjb250cm9sVWk6IGxheW91dDk0OyBhcyBuZXdBbnN3ZXJTdWJtaXQpIHtcbiAgICAgICAgICAgICAgICA8YnN1LWxheW91dC1jb250cm9sXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHctdy1maXQgdHctbWluLXctZml0IHR3LW1heC13LWZpdFwiXG4gICAgICAgICAgICAgICAgICAgIFtjb25maWddPVwibmV3QW5zd2VyU3VibWl0XCJcbiAgICAgICAgICAgICAgICA+PC9ic3UtbGF5b3V0LWNvbnRyb2w+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtcXVlc3Rpb24tYW5zd2VyLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtcXVlc3Rpb24tYW5zd2VyLWZvcm0vYmFyc2EtcXVlc3Rpb24tYW5zd2VyLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtcXVlc3Rpb24tYW5zd2VyLWZvcm0vYmFyc2EtcXVlc3Rpb24tYW5zd2VyLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7OztBQVM3RSxNQUFNLE9BQU8sZ0NBQWlDLFNBQVEsc0JBQXNCO0lBUDVFOztRQW9CdUIsWUFBTyxHQUFHLE9BQU8sQ0FBQztLQUN4QztJQWJHLFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixLQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNCLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDO1lBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDOUIsQ0FBQztJQUNMLENBQUM7SUFDRCxZQUFZLENBQUMsVUFBbUI7UUFDNUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzVHLElBQUksSUFBSSxJQUFJLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNELENBQUM7OEdBWlEsZ0NBQWdDO2tHQUFoQyxnQ0FBZ0MseURBRjlCLENBQUMsYUFBYSxDQUFDLHNFQ1I5QiwwakhBaUVBOzsyRkR2RGEsZ0NBQWdDO2tCQVA1QyxTQUFTOytCQUNJLGdDQUFnQyxtQkFHekIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Qcm9wc0Jhc2VDb21wb25lbnQsIFVwbG9hZFNlcnZpY2UgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYnN1LWJhcnNhLXF1ZXN0aW9uLWFuc3dlci1mb3JtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYmFyc2EtcXVlc3Rpb24tYW5zd2VyLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2JhcnNhLXF1ZXN0aW9uLWFuc3dlci1mb3JtLmNvbXBvbmVudC5jc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtVcGxvYWRTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBCYXJzYVF1ZXN0aW9uQW5zd2VyRm9ybUNvbXBvbmVudCBleHRlbmRzIEZvcm1Qcm9wc0Jhc2VDb21wb25lbnQge1xuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkNoYW5nZXMoY2hhbmdlcyk7XG4gICAgICAgIGNvbnN0IHsgbW8gfSA9IGNoYW5nZXM7XG4gICAgICAgIGlmIChtbyAmJiAhbW8uZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMubW8gPSBtby5jdXJyZW50VmFsdWU7XG4gICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgfVxuICAgIG9uVm90ZUNoYW5nZShpc1Bvc2l0aXZlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZvdGUgPSB0aGlzLl9jb250cm9sVWlQaXBlLnRyYW5zZm9ybShpc1Bvc2l0aXZlID8gJ9ir2KjYqiDYsdin24wg2YXYq9io2KonIDogJ9ir2KjYqiDYsdin24wg2YXZhtmB24wnLCB0aGlzLmxheW91dDk0LCAnJyk7XG4gICAgICAgIHZvdGUgJiYgdm90ZT8uRmllbGRVaS5maXJlRXZlbnQoJ2NsaWNrJywgdm90ZS5GaWVsZFVpKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRvb2xiYXIgPSB0b29sYmFyO1xufVxuIiwiPGRpdiBjbGFzcz1cInR3LWFic29sdXRlIHR3LXotMCB0dy1iZy13aGl0ZSB0dy13LXNjcmVlbiB0dy10b3AtMCB0dy1sZWZ0LTBcIj48L2Rpdj5cbjxkaXYgY2xhc3M9XCJ0dy13LWZ1bGwgdHctcHktOCB0dy1yZWxhdGl2ZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJ0dy13LWZ1bGwgdHctbWF4LXctWzgwcmVtXSB0dy1teC1hdXRvIHR3LWdyaWQgdHctZ3JpZC1jb2xzLTQgdHctZ2FwLTEyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0dy1jb2wtc3Bhbi0zIHR3LWZsZXggdHctZmxleC1jb2wgdHctZ2FwLThcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0dy1mbGV4IHR3LWdhcC04IHR3LXBiLThcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHctZ3Jvdy0wIHR3LXNocmluay0wIHR3LWZsZXggdHctZmxleC1jb2wgdHctaXRlbXMtY2VudGVyIHR3LWdhcC02XCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzY0LzY0XCIgY2xhc3M9XCJ0dy1zaXplLTEyIHR3LXJvdW5kZWQtZnVsbFwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDxic3UtYmFyc2EtcXVlc3Rpb24tYW5zd2VyLXZvdGUtc2VjdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZvdGVdPVwibW8uUG9zdC5DdXJyZW50VXNlclZvdGUuVm90ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdm90ZVVwc109XCJtby5Qb3N0LlZvdGVVcHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZvdGVEb3duc109XCJtby5Qb3N0LlZvdGVEb3duc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAodm90ZUNoYW5nZSk9XCJvblZvdGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgID48L2JzdS1iYXJzYS1xdWVzdGlvbi1hbnN3ZXItdm90ZS1zZWN0aW9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0dy1ncm93IHR3LXNocmlua1wiPlxuICAgICAgICAgICAgICAgICAgICA8YnN1LWJhcnNhLXF1ZXN0aW9uLWFuc3dlci1jcmVhdG9yLXRpbWUtc2VjdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgW3Bvc3RdPVwibW8uUG9zdFwiXG4gICAgICAgICAgICAgICAgICAgID48L2JzdS1iYXJzYS1xdWVzdGlvbi1hbnN3ZXItY3JlYXRvci10aW1lLXNlY3Rpb24+XG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidHctdGV4dC0yeGwgdHctbXQtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgbW8uVGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICA8YnN1LWJhcnNhLXF1ZXN0aW9uLWFuc3dlci1jb250ZW50LWFjdGlvbnMtc2VjdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgW21vXT1cIm1vXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtidXR0b25zXT1cInRvb2xiYXJJdGVtc1wiXG4gICAgICAgICAgICAgICAgICAgID48L2JzdS1iYXJzYS1xdWVzdGlvbi1hbnN3ZXItY29udGVudC1hY3Rpb25zLXNlY3Rpb24+XG4gICAgICAgICAgICAgICAgICAgIDxic3UtYmFyc2EtcXVlc3Rpb24tYW5zd2VyLWNvbW1lbnRzLXNlY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIFtwb3N0XT1cIm1vLlBvc3RcIlxuICAgICAgICAgICAgICAgICAgICA+PC9ic3UtYmFyc2EtcXVlc3Rpb24tYW5zd2VyLWNvbW1lbnRzLXNlY3Rpb24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwidHctei0xMCB0dy10ZXh0LTJ4bCB0dy1wYi00IHR3LWJvcmRlci1iIHR3LWJvcmRlci1ncmF5LTIwMCB0dy1yZWxhdGl2ZVwiPlxuICAgICAgICAgICAgICAgIHt7IG1vLkFuc3dlcnMuTW9EYXRhTGlzdC5sZW5ndGggfX1cbiAgICAgICAgICAgICAgICDZvtin2LPYrlxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR3LWZsZXggdHctZmxleC1jb2wgdHctZ2FwLTggdHctei0xMCB0dy1yZWxhdGl2ZVwiPlxuICAgICAgICAgICAgICAgIEBpZiAobW8uQW5zd2Vycy5Nb0RhdGFMaXN0Lmxlbmd0aCkgeyBAaWYgKCfZvtin2LPYriDZh9inJyB8IGNvbnRyb2xVaTogbGF5b3V0OTQ7IGFzIGFuc3dlcnMpIHtcbiAgICAgICAgICAgICAgICA8YnN1LWxheW91dC1jb250cm9sIFtjb25maWddPVwiYW5zd2Vyc1wiPjwvYnN1LWxheW91dC1jb250cm9sPlxuICAgICAgICAgICAgICAgIH0gfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidHctY29sLXNwYW4tMVwiPlxuICAgICAgICAgICAgQGlmICgn2LPZiNin2YTYp9iqINmF2LHYqtio2LcnIHwgY29udHJvbFVpOiBsYXlvdXQ5NDsgYXMgcmVsZXZhbnRRdWVzdGlvbnMpIHtcbiAgICAgICAgICAgIDxic3UtbGF5b3V0LWNvbnRyb2wgW2NvbmZpZ109XCJyZWxldmFudFF1ZXN0aW9uc1wiPjwvYnN1LWxheW91dC1jb250cm9sPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwidHctdy1mdWxsIHR3LW1heC13LVs4MHJlbV0gdHctbXgtYXV0byB0dy1ncmlkIHR3LWdyaWQtY29scy00IHR3LW10LTRcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJ0dy1jb2wtc3Bhbi00IHR3LWZsZXggdHctZmxleC1jb2wgdHctZ2FwLTQgdHctcC00IGJvcmRlciB0dy1ib3JkZXItZ3JheS0yMDAgdHctcm91bmRlZC1tZCB0dy1iZy13aGl0ZVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHctdGV4dC14bFwiPtin2LHYs9in2YQg2b7Yp9iz2K48L3NwYW4+XG4gICAgICAgICAgICBAaWYgKCfZvtin2LPYriDYrNiv24zYrycgfCBjb250cm9sVWk6IGxheW91dDk0OyBhcyBuZXdBbnN3ZXJUZXh0KSB7XG4gICAgICAgICAgICA8YnN1LWxheW91dC1jb250cm9sIFtjb25maWddPVwibmV3QW5zd2VyVGV4dFwiPjwvYnN1LWxheW91dC1jb250cm9sPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR3LWZsZXggdHctanVzdGlmeS1lbmRcIj5cbiAgICAgICAgICAgICAgICBAaWYgKCfYp9ix2LPYp9mEINm+2KfYs9iuINis2K/bjNivJyB8IGNvbnRyb2xVaTogbGF5b3V0OTQ7IGFzIG5ld0Fuc3dlclN1Ym1pdCkge1xuICAgICAgICAgICAgICAgIDxic3UtbGF5b3V0LWNvbnRyb2xcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0dy13LWZpdCB0dy1taW4tdy1maXQgdHctbWF4LXctZml0XCJcbiAgICAgICAgICAgICAgICAgICAgW2NvbmZpZ109XCJuZXdBbnN3ZXJTdWJtaXRcIlxuICAgICAgICAgICAgICAgID48L2JzdS1sYXlvdXQtY29udHJvbD5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -16,12 +16,12 @@ export class BarsaTableColumnComponent extends BaseColumnPropsComponent {
16
16
  }
17
17
  }
18
18
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaTableColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
19
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: BarsaTableColumnComponent, selector: "bsu-barsa-table-column", inputs: { disableEllapsis: "disableEllapsis" }, providers: [FormPanelService, ColumnService], usesInheritance: true, ngImport: i0, template: "<div\n [class.editMode]=\"editMode\"\n #divDom\n style=\"display: flex; width: 100%\"\n [style.column-gap]=\"column.$MergedFieldsToColumn?.length ? '0.2rem' : null\"\n>\n @if (customComponent) {\n <bnrc-dynamic-item-component\n [component]=\"customComponent\"\n [mo]=\"mo\"\n [isChecked]=\"isChecked\"\n [setting]=\"detailsComponentSetting\"\n [parameters]=\"customComponent.Settings\"\n [column]=\"column\"\n [value]=\"value\"\n [icon]=\"icon\"\n [editMode]=\"editMode\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [containerDom]=\"divDom\"\n ></bnrc-dynamic-item-component>\n } @else {\n <bsu-column-renderer\n [mo]=\"mo\"\n [containerDom]=\"divDom\"\n [column]=\"column\"\n [disableEllapsis]=\"disableEllapsis\"\n [value]=\"value | bbbTranslate\"\n [icon]=\"icon\"\n [editMode]=\"editMode\"\n [isChecked]=\"isChecked\"\n [index]=\"index\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [formLayoutShowLabel]=\"false\"\n [deviceSize]=\"deviceSize\"\n [controlUi]=\"column.Caption | controlUi: layout94\"\n (keyup.control.enter)=\"save.emit($event)\"\n (keyup.esc)=\"cancel.emit($event)\"\n (keydown.Tab)=\"tab.emit($event)\"\n ></bsu-column-renderer>\n } @if (editMode) { @for (fieldCaption of column.$MergedFieldsToColumn; track fieldCaption) { @if (fieldCaption |\n controlUi: layout94; as layoutConfig) {\n <bsu-layout-control\n [caption]=\"fieldCaption\"\n [config]=\"layoutConfig\"\n [showLabel]=\"false\"\n [inlineEdit]=\"true\"\n (keyup.control.enter)=\"save.emit($event)\"\n (keyup.esc)=\"cancel.emit($event)\"\n (keydown.Tab)=\"tab.emit($event)\"\n ></bsu-layout-control>\n } } }\n</div>\n", styles: [":host{display:contents;width:100%}: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", "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", "mo", "index", "editMode", "customRowHeight", "controlUi", "formLayoutShowLabel", "isChecked", "isNewInlineMo", "containerDom", "disableEllapsis", "rtl", "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: "17.3.5", type: BarsaTableColumnComponent, selector: "bsu-barsa-table-column", inputs: { disableEllapsis: "disableEllapsis" }, providers: [FormPanelService, ColumnService], usesInheritance: true, ngImport: i0, template: "<div\n [class.editMode]=\"editMode\"\n [class.isdirty]=\"isdirty\"\n #divDom\n style=\"display: flex; width: 100%\"\n [style.column-gap]=\"column.$MergedFieldsToColumn?.length ? '0.2rem' : null\"\n>\n @if (customComponent) {\n <bnrc-dynamic-item-component\n [component]=\"customComponent\"\n [mo]=\"mo\"\n [isChecked]=\"isChecked\"\n [setting]=\"detailsComponentSetting\"\n [parameters]=\"customComponent.Settings\"\n [column]=\"column\"\n [value]=\"value\"\n [icon]=\"icon\"\n [editMode]=\"editMode\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [containerDom]=\"divDom\"\n ></bnrc-dynamic-item-component>\n } @else {\n <bsu-column-renderer\n [mo]=\"mo\"\n [containerDom]=\"divDom\"\n [column]=\"column\"\n [disableEllapsis]=\"disableEllapsis\"\n [value]=\"value | bbbTranslate\"\n [icon]=\"icon\"\n [editMode]=\"editMode\"\n [isChecked]=\"isChecked\"\n [index]=\"index\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [formLayoutShowLabel]=\"false\"\n [deviceSize]=\"deviceSize\"\n [controlUi]=\"column.Caption | controlUi: layout94:column.Name\"\n (keyup.control.enter)=\"save.emit($event)\"\n (keyup.esc)=\"cancel.emit($event)\"\n (keydown.Tab)=\"tab.emit($event)\"\n ></bsu-column-renderer>\n } @if (editMode) { @for (fieldCaption of column.$MergedFieldsToColumn; track fieldCaption) { @if (fieldCaption |\n controlUi: layout94; as layoutConfig) {\n <bsu-layout-control\n [caption]=\"fieldCaption\"\n [config]=\"layoutConfig\"\n [showLabel]=\"false\"\n [inlineEdit]=\"true\"\n (keyup.control.enter)=\"save.emit($event)\"\n (keyup.esc)=\"cancel.emit($event)\"\n (keydown.Tab)=\"tab.emit($event)\"\n ></bsu-layout-control>\n } } }\n</div>\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", "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", "mo", "index", "editMode", "customRowHeight", "controlUi", "formLayoutShowLabel", "isChecked", "isNewInlineMo", "containerDom", "disableEllapsis", "rtl", "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: "17.3.5", ngImport: i0, type: BarsaTableColumnComponent, decorators: [{
22
22
  type: Component,
23
- args: [{ selector: 'bsu-barsa-table-column', providers: [FormPanelService, ColumnService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n [class.editMode]=\"editMode\"\n #divDom\n style=\"display: flex; width: 100%\"\n [style.column-gap]=\"column.$MergedFieldsToColumn?.length ? '0.2rem' : null\"\n>\n @if (customComponent) {\n <bnrc-dynamic-item-component\n [component]=\"customComponent\"\n [mo]=\"mo\"\n [isChecked]=\"isChecked\"\n [setting]=\"detailsComponentSetting\"\n [parameters]=\"customComponent.Settings\"\n [column]=\"column\"\n [value]=\"value\"\n [icon]=\"icon\"\n [editMode]=\"editMode\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [containerDom]=\"divDom\"\n ></bnrc-dynamic-item-component>\n } @else {\n <bsu-column-renderer\n [mo]=\"mo\"\n [containerDom]=\"divDom\"\n [column]=\"column\"\n [disableEllapsis]=\"disableEllapsis\"\n [value]=\"value | bbbTranslate\"\n [icon]=\"icon\"\n [editMode]=\"editMode\"\n [isChecked]=\"isChecked\"\n [index]=\"index\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [formLayoutShowLabel]=\"false\"\n [deviceSize]=\"deviceSize\"\n [controlUi]=\"column.Caption | controlUi: layout94\"\n (keyup.control.enter)=\"save.emit($event)\"\n (keyup.esc)=\"cancel.emit($event)\"\n (keydown.Tab)=\"tab.emit($event)\"\n ></bsu-column-renderer>\n } @if (editMode) { @for (fieldCaption of column.$MergedFieldsToColumn; track fieldCaption) { @if (fieldCaption |\n controlUi: layout94; as layoutConfig) {\n <bsu-layout-control\n [caption]=\"fieldCaption\"\n [config]=\"layoutConfig\"\n [showLabel]=\"false\"\n [inlineEdit]=\"true\"\n (keyup.control.enter)=\"save.emit($event)\"\n (keyup.esc)=\"cancel.emit($event)\"\n (keydown.Tab)=\"tab.emit($event)\"\n ></bsu-layout-control>\n } } }\n</div>\n", styles: [":host{display:contents;width:100%}: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"] }]
23
+ args: [{ selector: 'bsu-barsa-table-column', providers: [FormPanelService, ColumnService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n [class.editMode]=\"editMode\"\n [class.isdirty]=\"isdirty\"\n #divDom\n style=\"display: flex; width: 100%\"\n [style.column-gap]=\"column.$MergedFieldsToColumn?.length ? '0.2rem' : null\"\n>\n @if (customComponent) {\n <bnrc-dynamic-item-component\n [component]=\"customComponent\"\n [mo]=\"mo\"\n [isChecked]=\"isChecked\"\n [setting]=\"detailsComponentSetting\"\n [parameters]=\"customComponent.Settings\"\n [column]=\"column\"\n [value]=\"value\"\n [icon]=\"icon\"\n [editMode]=\"editMode\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [containerDom]=\"divDom\"\n ></bnrc-dynamic-item-component>\n } @else {\n <bsu-column-renderer\n [mo]=\"mo\"\n [containerDom]=\"divDom\"\n [column]=\"column\"\n [disableEllapsis]=\"disableEllapsis\"\n [value]=\"value | bbbTranslate\"\n [icon]=\"icon\"\n [editMode]=\"editMode\"\n [isChecked]=\"isChecked\"\n [index]=\"index\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [formLayoutShowLabel]=\"false\"\n [deviceSize]=\"deviceSize\"\n [controlUi]=\"column.Caption | controlUi: layout94:column.Name\"\n (keyup.control.enter)=\"save.emit($event)\"\n (keyup.esc)=\"cancel.emit($event)\"\n (keydown.Tab)=\"tab.emit($event)\"\n ></bsu-column-renderer>\n } @if (editMode) { @for (fieldCaption of column.$MergedFieldsToColumn; track fieldCaption) { @if (fieldCaption |\n controlUi: layout94; as layoutConfig) {\n <bsu-layout-control\n [caption]=\"fieldCaption\"\n [config]=\"layoutConfig\"\n [showLabel]=\"false\"\n [inlineEdit]=\"true\"\n (keyup.control.enter)=\"save.emit($event)\"\n (keyup.esc)=\"cancel.emit($event)\"\n (keydown.Tab)=\"tab.emit($event)\"\n ></bsu-layout-control>\n } } }\n</div>\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"] }]
24
24
  }], propDecorators: { disableEllapsis: [{
25
25
  type: Input
26
26
  }] } });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtdGFibGUtY29sdW1uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2JhcnNhLXRhYmxlLWNvbHVtbi9iYXJzYS10YWJsZS1jb2x1bW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtdGFibGUtY29sdW1uL2JhcnNhLXRhYmxlLWNvbHVtbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQWEsd0JBQXdCLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7O0FBUzVHLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSx3QkFBd0I7SUFFbkUsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLElBQUksV0FBVyxFQUFFLENBQUM7WUFDdkMsTUFBTSxlQUFlLEdBQWMsV0FBVyxDQUFDO1lBQy9DLElBQUksZUFBZSxDQUFDLFFBQVEsSUFBSSxlQUFlLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3JELElBQUksQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDO1lBQzNDLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQzs4R0FYUSx5QkFBeUI7a0dBQXpCLHlCQUF5QixpR0FIdkIsQ0FBQyxnQkFBZ0IsRUFBRSxhQUFhLENBQUMsaURDUGhELHE5REF5REE7OzJGRC9DYSx5QkFBeUI7a0JBUHJDLFNBQVM7K0JBQ0ksd0JBQXdCLGFBR3ZCLENBQUMsZ0JBQWdCLEVBQUUsYUFBYSxDQUFDLG1CQUMzQix1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxlQUFlO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1QYW5lbFNlcnZpY2UsIEVqcmF5T2xnbywgQmFzZUNvbHVtblByb3BzQ29tcG9uZW50LCBDb2x1bW5TZXJ2aWNlIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS1iYXJzYS10YWJsZS1jb2x1bW4nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXJzYS10YWJsZS1jb2x1bW4uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2JhcnNhLXRhYmxlLWNvbHVtbi5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW0Zvcm1QYW5lbFNlcnZpY2UsIENvbHVtblNlcnZpY2VdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEJhcnNhVGFibGVDb2x1bW5Db21wb25lbnQgZXh0ZW5kcyBCYXNlQ29sdW1uUHJvcHNDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIGRpc2FibGVFbGxhcHNpczogYm9vbGVhbjtcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgY29uc3QgY29sdW1uVmFsdWUgPSB0aGlzLm1vW3RoaXMuY29sdW1uLk5hbWVdO1xuICAgICAgICBpZiAoIXRoaXMuY3VzdG9tQ29tcG9uZW50ICYmIGNvbHVtblZhbHVlKSB7XG4gICAgICAgICAgICBjb25zdCBjdXN0b21Db21wb25lbnQgPSA8RWpyYXlPbGdvPmNvbHVtblZhbHVlO1xuICAgICAgICAgICAgaWYgKGN1c3RvbUNvbXBvbmVudC5TZWxlY3RvciAmJiBjdXN0b21Db21wb25lbnQuTW9kdWxlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXN0b21Db21wb25lbnQgPSBjdXN0b21Db21wb25lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgW2NsYXNzLmVkaXRNb2RlXT1cImVkaXRNb2RlXCJcbiAgICAjZGl2RG9tXG4gICAgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyB3aWR0aDogMTAwJVwiXG4gICAgW3N0eWxlLmNvbHVtbi1nYXBdPVwiY29sdW1uLiRNZXJnZWRGaWVsZHNUb0NvbHVtbj8ubGVuZ3RoID8gJzAuMnJlbScgOiBudWxsXCJcbj5cbiAgICBAaWYgKGN1c3RvbUNvbXBvbmVudCkge1xuICAgIDxibnJjLWR5bmFtaWMtaXRlbS1jb21wb25lbnRcbiAgICAgICAgW2NvbXBvbmVudF09XCJjdXN0b21Db21wb25lbnRcIlxuICAgICAgICBbbW9dPVwibW9cIlxuICAgICAgICBbaXNDaGVja2VkXT1cImlzQ2hlY2tlZFwiXG4gICAgICAgIFtzZXR0aW5nXT1cImRldGFpbHNDb21wb25lbnRTZXR0aW5nXCJcbiAgICAgICAgW3BhcmFtZXRlcnNdPVwiY3VzdG9tQ29tcG9uZW50LlNldHRpbmdzXCJcbiAgICAgICAgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICBbdmFsdWVdPVwidmFsdWVcIlxuICAgICAgICBbaWNvbl09XCJpY29uXCJcbiAgICAgICAgW2VkaXRNb2RlXT1cImVkaXRNb2RlXCJcbiAgICAgICAgW3J0bF09XCJydGxcIlxuICAgICAgICBbZGV2aWNlTmFtZV09XCJkZXZpY2VOYW1lXCJcbiAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgIFthbGxDb2x1bW5zXT1cImFsbENvbHVtbnNcIlxuICAgICAgICBbY29udGFpbmVyRG9tXT1cImRpdkRvbVwiXG4gICAgPjwvYm5yYy1keW5hbWljLWl0ZW0tY29tcG9uZW50PlxuICAgIH0gQGVsc2Uge1xuICAgIDxic3UtY29sdW1uLXJlbmRlcmVyXG4gICAgICAgIFttb109XCJtb1wiXG4gICAgICAgIFtjb250YWluZXJEb21dPVwiZGl2RG9tXCJcbiAgICAgICAgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICBbZGlzYWJsZUVsbGFwc2lzXT1cImRpc2FibGVFbGxhcHNpc1wiXG4gICAgICAgIFt2YWx1ZV09XCJ2YWx1ZSB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgIFtpY29uXT1cImljb25cIlxuICAgICAgICBbZWRpdE1vZGVdPVwiZWRpdE1vZGVcIlxuICAgICAgICBbaXNDaGVja2VkXT1cImlzQ2hlY2tlZFwiXG4gICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgIFtydGxdPVwicnRsXCJcbiAgICAgICAgW2RldmljZU5hbWVdPVwiZGV2aWNlTmFtZVwiXG4gICAgICAgIFtmb3JtTGF5b3V0U2hvd0xhYmVsXT1cImZhbHNlXCJcbiAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgIFtjb250cm9sVWldPVwiY29sdW1uLkNhcHRpb24gfCBjb250cm9sVWk6IGxheW91dDk0XCJcbiAgICAgICAgKGtleXVwLmNvbnRyb2wuZW50ZXIpPVwic2F2ZS5lbWl0KCRldmVudClcIlxuICAgICAgICAoa2V5dXAuZXNjKT1cImNhbmNlbC5lbWl0KCRldmVudClcIlxuICAgICAgICAoa2V5ZG93bi5UYWIpPVwidGFiLmVtaXQoJGV2ZW50KVwiXG4gICAgPjwvYnN1LWNvbHVtbi1yZW5kZXJlcj5cbiAgICB9IEBpZiAoZWRpdE1vZGUpIHsgQGZvciAoZmllbGRDYXB0aW9uIG9mIGNvbHVtbi4kTWVyZ2VkRmllbGRzVG9Db2x1bW47IHRyYWNrIGZpZWxkQ2FwdGlvbikgeyBAaWYgKGZpZWxkQ2FwdGlvbiB8XG4gICAgY29udHJvbFVpOiBsYXlvdXQ5NDsgYXMgbGF5b3V0Q29uZmlnKSB7XG4gICAgPGJzdS1sYXlvdXQtY29udHJvbFxuICAgICAgICBbY2FwdGlvbl09XCJmaWVsZENhcHRpb25cIlxuICAgICAgICBbY29uZmlnXT1cImxheW91dENvbmZpZ1wiXG4gICAgICAgIFtzaG93TGFiZWxdPVwiZmFsc2VcIlxuICAgICAgICBbaW5saW5lRWRpdF09XCJ0cnVlXCJcbiAgICAgICAgKGtleXVwLmNvbnRyb2wuZW50ZXIpPVwic2F2ZS5lbWl0KCRldmVudClcIlxuICAgICAgICAoa2V5dXAuZXNjKT1cImNhbmNlbC5lbWl0KCRldmVudClcIlxuICAgICAgICAoa2V5ZG93bi5UYWIpPVwidGFiLmVtaXQoJGV2ZW50KVwiXG4gICAgPjwvYnN1LWxheW91dC1jb250cm9sPlxuICAgIH0gfSB9XG48L2Rpdj5cbiJdfQ==
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtdGFibGUtY29sdW1uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2JhcnNhLXRhYmxlLWNvbHVtbi9iYXJzYS10YWJsZS1jb2x1bW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtdGFibGUtY29sdW1uL2JhcnNhLXRhYmxlLWNvbHVtbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQWEsd0JBQXdCLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7O0FBUzVHLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSx3QkFBd0I7SUFFbkUsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLElBQUksV0FBVyxFQUFFLENBQUM7WUFDdkMsTUFBTSxlQUFlLEdBQWMsV0FBVyxDQUFDO1lBQy9DLElBQUksZUFBZSxDQUFDLFFBQVEsSUFBSSxlQUFlLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3JELElBQUksQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDO1lBQzNDLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQzs4R0FYUSx5QkFBeUI7a0dBQXpCLHlCQUF5QixpR0FIdkIsQ0FBQyxnQkFBZ0IsRUFBRSxhQUFhLENBQUMsaURDUGhELGtnRUEwREE7OzJGRGhEYSx5QkFBeUI7a0JBUHJDLFNBQVM7K0JBQ0ksd0JBQXdCLGFBR3ZCLENBQUMsZ0JBQWdCLEVBQUUsYUFBYSxDQUFDLG1CQUMzQix1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxlQUFlO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1QYW5lbFNlcnZpY2UsIEVqcmF5T2xnbywgQmFzZUNvbHVtblByb3BzQ29tcG9uZW50LCBDb2x1bW5TZXJ2aWNlIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS1iYXJzYS10YWJsZS1jb2x1bW4nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXJzYS10YWJsZS1jb2x1bW4uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2JhcnNhLXRhYmxlLWNvbHVtbi5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW0Zvcm1QYW5lbFNlcnZpY2UsIENvbHVtblNlcnZpY2VdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEJhcnNhVGFibGVDb2x1bW5Db21wb25lbnQgZXh0ZW5kcyBCYXNlQ29sdW1uUHJvcHNDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIGRpc2FibGVFbGxhcHNpczogYm9vbGVhbjtcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgY29uc3QgY29sdW1uVmFsdWUgPSB0aGlzLm1vW3RoaXMuY29sdW1uLk5hbWVdO1xuICAgICAgICBpZiAoIXRoaXMuY3VzdG9tQ29tcG9uZW50ICYmIGNvbHVtblZhbHVlKSB7XG4gICAgICAgICAgICBjb25zdCBjdXN0b21Db21wb25lbnQgPSA8RWpyYXlPbGdvPmNvbHVtblZhbHVlO1xuICAgICAgICAgICAgaWYgKGN1c3RvbUNvbXBvbmVudC5TZWxlY3RvciAmJiBjdXN0b21Db21wb25lbnQuTW9kdWxlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXN0b21Db21wb25lbnQgPSBjdXN0b21Db21wb25lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgW2NsYXNzLmVkaXRNb2RlXT1cImVkaXRNb2RlXCJcbiAgICBbY2xhc3MuaXNkaXJ0eV09XCJpc2RpcnR5XCJcbiAgICAjZGl2RG9tXG4gICAgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyB3aWR0aDogMTAwJVwiXG4gICAgW3N0eWxlLmNvbHVtbi1nYXBdPVwiY29sdW1uLiRNZXJnZWRGaWVsZHNUb0NvbHVtbj8ubGVuZ3RoID8gJzAuMnJlbScgOiBudWxsXCJcbj5cbiAgICBAaWYgKGN1c3RvbUNvbXBvbmVudCkge1xuICAgIDxibnJjLWR5bmFtaWMtaXRlbS1jb21wb25lbnRcbiAgICAgICAgW2NvbXBvbmVudF09XCJjdXN0b21Db21wb25lbnRcIlxuICAgICAgICBbbW9dPVwibW9cIlxuICAgICAgICBbaXNDaGVja2VkXT1cImlzQ2hlY2tlZFwiXG4gICAgICAgIFtzZXR0aW5nXT1cImRldGFpbHNDb21wb25lbnRTZXR0aW5nXCJcbiAgICAgICAgW3BhcmFtZXRlcnNdPVwiY3VzdG9tQ29tcG9uZW50LlNldHRpbmdzXCJcbiAgICAgICAgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICBbdmFsdWVdPVwidmFsdWVcIlxuICAgICAgICBbaWNvbl09XCJpY29uXCJcbiAgICAgICAgW2VkaXRNb2RlXT1cImVkaXRNb2RlXCJcbiAgICAgICAgW3J0bF09XCJydGxcIlxuICAgICAgICBbZGV2aWNlTmFtZV09XCJkZXZpY2VOYW1lXCJcbiAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgIFthbGxDb2x1bW5zXT1cImFsbENvbHVtbnNcIlxuICAgICAgICBbY29udGFpbmVyRG9tXT1cImRpdkRvbVwiXG4gICAgPjwvYm5yYy1keW5hbWljLWl0ZW0tY29tcG9uZW50PlxuICAgIH0gQGVsc2Uge1xuICAgIDxic3UtY29sdW1uLXJlbmRlcmVyXG4gICAgICAgIFttb109XCJtb1wiXG4gICAgICAgIFtjb250YWluZXJEb21dPVwiZGl2RG9tXCJcbiAgICAgICAgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICBbZGlzYWJsZUVsbGFwc2lzXT1cImRpc2FibGVFbGxhcHNpc1wiXG4gICAgICAgIFt2YWx1ZV09XCJ2YWx1ZSB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgIFtpY29uXT1cImljb25cIlxuICAgICAgICBbZWRpdE1vZGVdPVwiZWRpdE1vZGVcIlxuICAgICAgICBbaXNDaGVja2VkXT1cImlzQ2hlY2tlZFwiXG4gICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgIFtydGxdPVwicnRsXCJcbiAgICAgICAgW2RldmljZU5hbWVdPVwiZGV2aWNlTmFtZVwiXG4gICAgICAgIFtmb3JtTGF5b3V0U2hvd0xhYmVsXT1cImZhbHNlXCJcbiAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgIFtjb250cm9sVWldPVwiY29sdW1uLkNhcHRpb24gfCBjb250cm9sVWk6IGxheW91dDk0OmNvbHVtbi5OYW1lXCJcbiAgICAgICAgKGtleXVwLmNvbnRyb2wuZW50ZXIpPVwic2F2ZS5lbWl0KCRldmVudClcIlxuICAgICAgICAoa2V5dXAuZXNjKT1cImNhbmNlbC5lbWl0KCRldmVudClcIlxuICAgICAgICAoa2V5ZG93bi5UYWIpPVwidGFiLmVtaXQoJGV2ZW50KVwiXG4gICAgPjwvYnN1LWNvbHVtbi1yZW5kZXJlcj5cbiAgICB9IEBpZiAoZWRpdE1vZGUpIHsgQGZvciAoZmllbGRDYXB0aW9uIG9mIGNvbHVtbi4kTWVyZ2VkRmllbGRzVG9Db2x1bW47IHRyYWNrIGZpZWxkQ2FwdGlvbikgeyBAaWYgKGZpZWxkQ2FwdGlvbiB8XG4gICAgY29udHJvbFVpOiBsYXlvdXQ5NDsgYXMgbGF5b3V0Q29uZmlnKSB7XG4gICAgPGJzdS1sYXlvdXQtY29udHJvbFxuICAgICAgICBbY2FwdGlvbl09XCJmaWVsZENhcHRpb25cIlxuICAgICAgICBbY29uZmlnXT1cImxheW91dENvbmZpZ1wiXG4gICAgICAgIFtzaG93TGFiZWxdPVwiZmFsc2VcIlxuICAgICAgICBbaW5saW5lRWRpdF09XCJ0cnVlXCJcbiAgICAgICAgKGtleXVwLmNvbnRyb2wuZW50ZXIpPVwic2F2ZS5lbWl0KCRldmVudClcIlxuICAgICAgICAoa2V5dXAuZXNjKT1cImNhbmNlbC5lbWl0KCRldmVudClcIlxuICAgICAgICAoa2V5ZG93bi5UYWIpPVwidGFiLmVtaXQoJGV2ZW50KVwiXG4gICAgPjwvYnN1LWxheW91dC1jb250cm9sPlxuICAgIH0gfSB9XG48L2Rpdj5cbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { Component, ChangeDetectionStrategy, Input, EventEmitter, Output, ViewChildren, ElementRef } from '@angular/core';
1
+ import { Component, ChangeDetectionStrategy, Input, EventEmitter, Output, ViewChildren, ElementRef, ViewChild } from '@angular/core';
2
2
  import { BaseComponent } from 'barsa-novin-ray-core';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@angular/common";
@@ -26,10 +26,12 @@ export class BarsaTableHeaderComponent extends BaseComponent {
26
26
  this.sortDescending = new EventEmitter();
27
27
  this.filter = new EventEmitter();
28
28
  this.resetGridSettings = new EventEmitter();
29
+ this.headerRender = new EventEmitter();
29
30
  this.resizeHeader = false;
30
31
  }
31
32
  ngOnInit() {
32
33
  super.ngOnInit();
34
+ this.headerRender.emit(this.theadRef.nativeElement);
33
35
  // this._prepareColumnsWidth(this.tableWidth, this.columns, true);
34
36
  }
35
37
  ngOnChanges(changes) {
@@ -130,14 +132,17 @@ export class BarsaTableHeaderComponent extends BaseComponent {
130
132
  return `${column.Name}${index}`;
131
133
  }
132
134
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaTableHeaderComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
133
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: BarsaTableHeaderComponent, selector: "bsu-barsa-table-header", inputs: { allChecked: "allChecked", isCheckList: "isCheckList", columns: "columns", fitWidth: "fitWidth", contextMenuItems: "contextMenuItems", contextMenuWidth: "contextMenuWidth", showViewButton: "showViewButton", hasSelected: "hasSelected", hideOpenIcon: "hideOpenIcon", disableOverflowContextMenu: "disableOverflowContextMenu", inlineEditMode: "inlineEditMode", hideHeader: "hideHeader", showDetailsInRow: "showDetailsInRow", viewSetting: "viewSetting", tableWidth: "tableWidth", resizedByUser: "resizedByUser", disableResponsive: "disableResponsive", actionList: "actionList", rowIndicator: "rowIndicator", rtl: "rtl", showRowNumber: "showRowNumber", disableResize: "disableResize", disableHeaderContextMenu: "disableHeaderContextMenu", deviceSize: "deviceSize", tableHeaderMode: "tableHeaderMode" }, outputs: { allCheckbox: "allCheckbox", columnResize: "columnResize", fitToContent: "fitToContent", fitToContainer: "fitToContainer", fitToColumn: "fitToColumn", sortAscending: "sortAscending", sortDescending: "sortDescending", filter: "filter", resetGridSettings: "resetGridSettings" }, viewQueries: [{ propertyName: "thList", predicate: ["thRef"], descendants: true, read: ElementRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<thead\n fd-table-header\n [class.inline-edit]=\"inlineEditMode\"\n [class.smallColumns]=\"columnsSmallerThanTableWidth\"\n [attr.columnsWidth]=\"columnsWidth\"\n [attr.tableWidth]=\"tableWidth\"\n>\n <tr fd-table-row>\n @if (!hideHeader) { @if (rowIndicator) {\n <th fd-table-cell fd-table-status-indicator></th>\n } @if (showRowNumber) {\n <th fd-table-cell style=\"width: 40px; max-width: 40px\"></th>\n } @if (isCheckList) {\n <th fd-table-cell>\n <fd-checkbox\n name=\"allCheckbox\"\n [ngModel]=\"allChecked\"\n (ngModelChange)=\"onAllCheckbox($event)\"\n ></fd-checkbox>\n </th>\n } @if (!isCheckList && !showRowNumber) {\n <th fd-table-cell class=\"single-select\"></th>\n } @for (column of columns; track _trackByColumn(i, column); let i = $index; let last = $last) { @if (startIndex\n <= i) {\n <th\n #thRef\n [columnIndex]=\"i\"\n fd-table-cell\n [style.width]=\"\n inlineEditMode\n ? column.FieldTypeId === 5\n ? column.$Width2\n : last\n ? '100%'\n : '210px'\n : last && column.$Width !== '100%'\n ? null\n : column.FieldTypeId === 38 ||\n column.FieldTypeId === 42 ||\n ((column.FieldTypeId === 6 || column.FieldTypeId === 5) &&\n column.Extra?.IconDisplayTypeEnum === 'Image')\n ? '40px'\n : column.$Width2 || column.$Width\n \"\n [style.min-width]=\"last ? null : inlineEditMode ? '210px' : last ? '100%' : 'auto'\"\n resizable\n [rtl]=\"rtl\"\n [disableResize]=\"\n disableResize ||\n last ||\n column.Extra?.IconDisplayTypeEnum === 'Image' ||\n column.FieldTypeId === 38 ||\n column.FieldTypeId === 42 ||\n ((column.FieldTypeId === 6 || column.FieldTypeId === 5) &&\n column.Extra?.IconDisplayTypeEnum === 'Image')\n \"\n (widthChange)=\"onColumnWidthChange(column)\"\n (widthChanging)=\"onColumnWidthChanging(i, column, $event)\"\n [disableResponsive]=\"disableResponsive\"\n [tableWidth]=\"tableWidth\"\n [columnsWidth]=\"columnsWidth\"\n [attr.columnName]=\"column.Name\"\n [attr.index]=\"i\"\n [ngClass]=\"column.$CSSClassName + ' column__' + column.Caption\"\n [class.displayIcon]=\"column.Extra?.IconDisplayTypeEnum\"\n >\n @if(!disableHeaderContextMenu){\n <fd-popover #menu>\n <fd-popover-control>\n <ng-container *ngTemplateOutlet=\"headerValue; context: { $implicit: column }\"></ng-container>\n </fd-popover-control>\n <fd-popover-body>\n <ul fd-list>\n <li fd-list-item>\n <a fd-list-link (click)=\"onSortAscending(column, menu)\">\n <fd-menu-addon position=\"before\" glyph=\"sort-ascending\" fd-list-icon></fd-menu-addon>\n <span fd-list-title\n >{{ ('Sort' | bbbTranslate) + ' ' }} {{ 'Ascending' | bbbTranslate }}</span\n >\n </a>\n </li>\n <li fd-list-item>\n <a fd-list-link (click)=\"onSortDescending(column, menu)\" bodyClick>\n <fd-menu-addon position=\"before\" glyph=\"sort-descending\" fd-list-icon></fd-menu-addon>\n <span fd-list-title\n >{{ ('Sort' | bbbTranslate) + ' ' }} {{ 'Descending' | bbbTranslate }}</span\n >\n </a>\n </li>\n <li fd-list-item>\n <a fd-list-link (click)=\"fitToContent.emit(column)\" bodyClick>\n <fd-menu-addon position=\"before\" fd-list-icon></fd-menu-addon>\n <span fd-list-title>{{ ('Fit Column To Content' | bbbTranslate) + ' ' }}</span>\n </a>\n </li>\n <li fd-list-item>\n <a fd-list-link (click)=\"fitToContainer.emit()\" bodyClick>\n <fd-menu-addon position=\"before\" fd-list-icon></fd-menu-addon>\n <span fd-list-title>{{ ('All Columns In Page' | bbbTranslate) + ' ' }}</span>\n </a>\n </li>\n <li fd-list-item>\n <a fd-list-link (click)=\"fitToColumn.emit()\" bodyClick>\n <fd-menu-addon position=\"before\" fd-list-icon></fd-menu-addon>\n <span fd-list-title>{{ ('Free Columns Size' | bbbTranslate) + ' ' }}</span>\n </a>\n </li>\n <li fd-list-item>\n <a fd-list-link (click)=\"onResetColumnsSettings()\" bodyClick>\n <fd-menu-addon position=\"before\" glyph=\"reset\" fd-list-icon></fd-menu-addon>\n <span fd-list-title>{{ 'GridSettingBase' | bbbTranslate }}</span>\n </a>\n </li>\n <!-- <li fd-list-item>\n <a fd-list-link (click)=\"onFilter(column, menu)\">\n <fd-menu-addon position=\"before\" glyph=\"filter\"></fd-menu-addon>\n <span fd-list-title>{{ 'Filter' | bbbTranslate }}</span>\n </a>\n </li> -->\n </ul>\n </fd-popover-body>\n </fd-popover>\n } @else{\n <ng-container *ngTemplateOutlet=\"headerValue; context: { $implicit: column }\"></ng-container>\n }\n </th>\n } } @if (contextMenuItems && contextMenuItems.length > 0 && !inlineEditMode) {\n <th\n class=\"col-header col-context-menu\"\n fd-table-cell\n [fitContent]=\"disableOverflowContextMenu\"\n [style.width.px]=\"contextMenuWidth\"\n ></th>\n } @if (showDetailsInRow && !inlineEditMode) {\n <th class=\"col-header col-details\" [style.width]=\"deviceSize === 's' ? 'auto' : '120px'\" fd-table-cell></th>\n } @if (showViewButton) {\n <th class=\"col-header col-view\" [style.width.px]=\"26.5 * (actionList?.length ?? 0) + 8\" fd-table-cell></th>\n } }\n </tr>\n</thead>\n<ng-template #headerValue let-column>\n <div style=\"display: flex\">\n <!-- FieldTypeId 38 means it is auto row number field-->\n @if ( (column.Extra?.IconDisplayTypeEnum === 'Image' || column.FieldTypeId === 42) && column.Icon) {\n <img [src]=\"column.Icon\" />\n } @else {\n {{ column.Caption | bbbTranslate }}\n }\n </div>\n</ng-template>\n", styles: [":host{display:contents;width:100%}:host.has-toolbar thead{border-top:none!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.BodyClickDirective, selector: "[bodyClick]", inputs: ["disableBodyClick"] }, { kind: "component", type: i4.CheckboxComponent, selector: "fd-checkbox", inputs: ["wrapLabel", "valignLabel", "ariaLabel", "role", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "displayOnly", "values", "standalone"], outputs: ["focusChange"] }, { kind: "component", type: i5.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i5.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole", "id"], outputs: ["keyDown"] }, { kind: "directive", type: i5.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i5.ListIconDirective, selector: "[fdListIcon], [fd-list-icon]", inputs: ["glyph", "glyphFont", "class", "role", "ariaHidden"] }, { kind: "directive", type: i5.ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "component", type: i6.MenuAddonDirective, selector: "fd-menu-addon", inputs: ["position", "submenuIndicator", "ariaHidden"] }, { kind: "component", type: i7.PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: i7.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "component", type: i7.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "directive", type: i8.TableHeaderDirective, selector: "[fdTableHeader], [fd-table-header]", inputs: ["noBorderX", "noBorderY", "nonInteractive"] }, { kind: "directive", type: i8.TableRowDirective, selector: "[fdTableRow], [fd-table-row]", inputs: ["activable", "highlightActive", "hoverable", "focusable", "main", "secondary", "active"] }, { kind: "directive", type: i8.TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "hoverable", "fitContent", "noPadding", "noData", "key"] }, { kind: "directive", type: i8.TableStatusIndicatorDirective, selector: "[fdTableStatusIndicator], [fd-table-status-indicator]", inputs: ["status"] }, { kind: "component", type: i3.ResizableComponent, selector: "th[resizable]", inputs: ["disableResize", "rtl"], outputs: ["widthChange", "widthChanging"] }, { kind: "pipe", type: i3.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
135
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: BarsaTableHeaderComponent, selector: "bsu-barsa-table-header", inputs: { allChecked: "allChecked", isCheckList: "isCheckList", columns: "columns", fitWidth: "fitWidth", contextMenuItems: "contextMenuItems", contextMenuWidth: "contextMenuWidth", showViewButton: "showViewButton", hasSelected: "hasSelected", hideOpenIcon: "hideOpenIcon", disableOverflowContextMenu: "disableOverflowContextMenu", inlineEditMode: "inlineEditMode", hideHeader: "hideHeader", showDetailsInRow: "showDetailsInRow", viewSetting: "viewSetting", tableWidth: "tableWidth", resizedByUser: "resizedByUser", disableResponsive: "disableResponsive", actionList: "actionList", rowIndicator: "rowIndicator", rtl: "rtl", sticky: "sticky", showRowNumber: "showRowNumber", disableResize: "disableResize", disableHeaderContextMenu: "disableHeaderContextMenu", deviceSize: "deviceSize", tableHeaderMode: "tableHeaderMode" }, outputs: { allCheckbox: "allCheckbox", columnResize: "columnResize", fitToContent: "fitToContent", fitToContainer: "fitToContainer", fitToColumn: "fitToColumn", sortAscending: "sortAscending", sortDescending: "sortDescending", filter: "filter", resetGridSettings: "resetGridSettings", headerRender: "headerRender" }, viewQueries: [{ propertyName: "theadRef", first: true, predicate: ["theadRef"], descendants: true, read: ElementRef, static: true }, { propertyName: "thList", predicate: ["thRef"], descendants: true, read: ElementRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<thead\n fd-table-header\n [class.inline-edit]=\"inlineEditMode\"\n [class.smallColumns]=\"columnsSmallerThanTableWidth\"\n [attr.columnsWidth]=\"columnsWidth\"\n [attr.tableWidth]=\"tableWidth\"\n [style.position]=\"sticky ? 'sticky' : null\"\n #theadRef\n>\n <tr fd-table-row>\n @if (!hideHeader) { @if (rowIndicator) {\n <th fd-table-cell fd-table-status-indicator></th>\n } @if (showRowNumber) {\n <th fd-table-cell style=\"width: 40px; max-width: 40px\"></th>\n } @if (isCheckList) {\n <th fd-table-cell>\n <fd-checkbox\n name=\"allCheckbox\"\n [ngModel]=\"allChecked\"\n (ngModelChange)=\"onAllCheckbox($event)\"\n ></fd-checkbox>\n </th>\n } @if (!isCheckList && !showRowNumber) {\n <th fd-table-cell class=\"single-select\"></th>\n } @for (column of columns; track _trackByColumn(i, column); let i = $index; let last = $last) { @if (startIndex\n <= i) {\n <th\n #thRef\n [columnIndex]=\"i\"\n fd-table-cell\n [style.width]=\"\n inlineEditMode\n ? column.FieldTypeId === 5\n ? column.$Width2\n : last\n ? '100%'\n : '210px'\n : last && column.$Width !== '100%'\n ? null\n : column.FieldTypeId === 38 ||\n column.FieldTypeId === 42 ||\n ((column.FieldTypeId === 6 || column.FieldTypeId === 5) &&\n column.Extra?.IconDisplayTypeEnum === 'Image')\n ? '40px'\n : column.$Width2 || column.$Width\n \"\n [style.min-width]=\"last ? null : inlineEditMode ? '210px' : last ? '100%' : 'auto'\"\n resizable\n [rtl]=\"rtl\"\n [disableResize]=\"\n disableResize ||\n last ||\n column.Extra?.IconDisplayTypeEnum === 'Image' ||\n column.FieldTypeId === 38 ||\n column.FieldTypeId === 42 ||\n ((column.FieldTypeId === 6 || column.FieldTypeId === 5) &&\n column.Extra?.IconDisplayTypeEnum === 'Image')\n \"\n (widthChange)=\"onColumnWidthChange(column)\"\n (widthChanging)=\"onColumnWidthChanging(i, column, $event)\"\n [disableResponsive]=\"disableResponsive\"\n [tableWidth]=\"tableWidth\"\n [columnsWidth]=\"columnsWidth\"\n [attr.columnName]=\"column.Name\"\n [attr.index]=\"i\"\n [ngClass]=\"column.$CSSClassName + ' column__' + column.Caption\"\n [class.displayIcon]=\"column.Extra?.IconDisplayTypeEnum\"\n >\n @if(!disableHeaderContextMenu){\n <fd-popover #menu>\n <fd-popover-control>\n <ng-container *ngTemplateOutlet=\"headerValue; context: { $implicit: column }\"></ng-container>\n </fd-popover-control>\n <fd-popover-body>\n <ul fd-list>\n <li fd-list-item>\n <a fd-list-link (click)=\"onSortAscending(column, menu)\">\n <fd-menu-addon position=\"before\" glyph=\"sort-ascending\" fd-list-icon></fd-menu-addon>\n <span fd-list-title\n >{{ ('Sort' | bbbTranslate) + ' ' }} {{ 'Ascending' | bbbTranslate }}</span\n >\n </a>\n </li>\n <li fd-list-item>\n <a fd-list-link (click)=\"onSortDescending(column, menu)\" bodyClick>\n <fd-menu-addon position=\"before\" glyph=\"sort-descending\" fd-list-icon></fd-menu-addon>\n <span fd-list-title\n >{{ ('Sort' | bbbTranslate) + ' ' }} {{ 'Descending' | bbbTranslate }}</span\n >\n </a>\n </li>\n <li fd-list-item>\n <a fd-list-link (click)=\"fitToContent.emit(column)\" bodyClick>\n <fd-menu-addon position=\"before\" fd-list-icon></fd-menu-addon>\n <span fd-list-title>{{ ('Fit Column To Content' | bbbTranslate) + ' ' }}</span>\n </a>\n </li>\n <li fd-list-item>\n <a fd-list-link (click)=\"fitToContainer.emit()\" bodyClick>\n <fd-menu-addon position=\"before\" fd-list-icon></fd-menu-addon>\n <span fd-list-title>{{ ('All Columns In Page' | bbbTranslate) + ' ' }}</span>\n </a>\n </li>\n <li fd-list-item>\n <a fd-list-link (click)=\"fitToColumn.emit()\" bodyClick>\n <fd-menu-addon position=\"before\" fd-list-icon></fd-menu-addon>\n <span fd-list-title>{{ ('Free Columns Size' | bbbTranslate) + ' ' }}</span>\n </a>\n </li>\n <li fd-list-item>\n <a fd-list-link (click)=\"onResetColumnsSettings()\" bodyClick>\n <fd-menu-addon position=\"before\" glyph=\"reset\" fd-list-icon></fd-menu-addon>\n <span fd-list-title>{{ 'GridSettingBase' | bbbTranslate }}</span>\n </a>\n </li>\n <!-- <li fd-list-item>\n <a fd-list-link (click)=\"onFilter(column, menu)\">\n <fd-menu-addon position=\"before\" glyph=\"filter\"></fd-menu-addon>\n <span fd-list-title>{{ 'Filter' | bbbTranslate }}</span>\n </a>\n </li> -->\n </ul>\n </fd-popover-body>\n </fd-popover>\n } @else{\n <ng-container *ngTemplateOutlet=\"headerValue; context: { $implicit: column }\"></ng-container>\n }\n </th>\n } } @if (contextMenuItems && contextMenuItems.length > 0 && !inlineEditMode) {\n <th\n class=\"col-header col-context-menu\"\n fd-table-cell\n [fitContent]=\"disableOverflowContextMenu\"\n [style.width.px]=\"contextMenuWidth\"\n ></th>\n } @if (showDetailsInRow && !inlineEditMode) {\n <th class=\"col-header col-details\" [style.width]=\"deviceSize === 's' ? 'auto' : '120px'\" fd-table-cell></th>\n } @if (showViewButton) {\n <th class=\"col-header col-view\" [style.width.px]=\"26.5 * (actionList?.length ?? 0) + 8\" fd-table-cell></th>\n } }\n </tr>\n</thead>\n<ng-template #headerValue let-column>\n <div style=\"display: flex\">\n <!-- FieldTypeId 38 means it is auto row number field-->\n @if ( (column.Extra?.IconDisplayTypeEnum === 'Image' || column.FieldTypeId === 42) && column.Icon) {\n <img [src]=\"column.Icon\" />\n } @else {\n {{ column.Caption | bbbTranslate }}\n }\n </div>\n</ng-template>\n", styles: [":host{display:contents;width:100%}:host.has-toolbar thead{border-top:none!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.BodyClickDirective, selector: "[bodyClick]", inputs: ["disableBodyClick"] }, { kind: "component", type: i4.CheckboxComponent, selector: "fd-checkbox", inputs: ["wrapLabel", "valignLabel", "ariaLabel", "role", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "displayOnly", "values", "standalone"], outputs: ["focusChange"] }, { kind: "component", type: i5.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i5.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole", "id"], outputs: ["keyDown"] }, { kind: "directive", type: i5.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i5.ListIconDirective, selector: "[fdListIcon], [fd-list-icon]", inputs: ["glyph", "glyphFont", "class", "role", "ariaHidden"] }, { kind: "directive", type: i5.ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "component", type: i6.MenuAddonDirective, selector: "fd-menu-addon", inputs: ["position", "submenuIndicator", "ariaHidden"] }, { kind: "component", type: i7.PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: i7.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "component", type: i7.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "directive", type: i8.TableHeaderDirective, selector: "[fdTableHeader], [fd-table-header]", inputs: ["noBorderX", "noBorderY", "nonInteractive"] }, { kind: "directive", type: i8.TableRowDirective, selector: "[fdTableRow], [fd-table-row]", inputs: ["activable", "highlightActive", "hoverable", "focusable", "main", "secondary", "active"] }, { kind: "directive", type: i8.TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "hoverable", "fitContent", "noPadding", "noData", "key"] }, { kind: "directive", type: i8.TableStatusIndicatorDirective, selector: "[fdTableStatusIndicator], [fd-table-status-indicator]", inputs: ["status"] }, { kind: "component", type: i3.ResizableComponent, selector: "th[resizable]", inputs: ["disableResize", "rtl"], outputs: ["widthChange", "widthChanging"] }, { kind: "pipe", type: i3.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
134
136
  }
135
137
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaTableHeaderComponent, decorators: [{
136
138
  type: Component,
137
- args: [{ selector: 'bsu-barsa-table-header', changeDetection: ChangeDetectionStrategy.OnPush, template: "<thead\n fd-table-header\n [class.inline-edit]=\"inlineEditMode\"\n [class.smallColumns]=\"columnsSmallerThanTableWidth\"\n [attr.columnsWidth]=\"columnsWidth\"\n [attr.tableWidth]=\"tableWidth\"\n>\n <tr fd-table-row>\n @if (!hideHeader) { @if (rowIndicator) {\n <th fd-table-cell fd-table-status-indicator></th>\n } @if (showRowNumber) {\n <th fd-table-cell style=\"width: 40px; max-width: 40px\"></th>\n } @if (isCheckList) {\n <th fd-table-cell>\n <fd-checkbox\n name=\"allCheckbox\"\n [ngModel]=\"allChecked\"\n (ngModelChange)=\"onAllCheckbox($event)\"\n ></fd-checkbox>\n </th>\n } @if (!isCheckList && !showRowNumber) {\n <th fd-table-cell class=\"single-select\"></th>\n } @for (column of columns; track _trackByColumn(i, column); let i = $index; let last = $last) { @if (startIndex\n <= i) {\n <th\n #thRef\n [columnIndex]=\"i\"\n fd-table-cell\n [style.width]=\"\n inlineEditMode\n ? column.FieldTypeId === 5\n ? column.$Width2\n : last\n ? '100%'\n : '210px'\n : last && column.$Width !== '100%'\n ? null\n : column.FieldTypeId === 38 ||\n column.FieldTypeId === 42 ||\n ((column.FieldTypeId === 6 || column.FieldTypeId === 5) &&\n column.Extra?.IconDisplayTypeEnum === 'Image')\n ? '40px'\n : column.$Width2 || column.$Width\n \"\n [style.min-width]=\"last ? null : inlineEditMode ? '210px' : last ? '100%' : 'auto'\"\n resizable\n [rtl]=\"rtl\"\n [disableResize]=\"\n disableResize ||\n last ||\n column.Extra?.IconDisplayTypeEnum === 'Image' ||\n column.FieldTypeId === 38 ||\n column.FieldTypeId === 42 ||\n ((column.FieldTypeId === 6 || column.FieldTypeId === 5) &&\n column.Extra?.IconDisplayTypeEnum === 'Image')\n \"\n (widthChange)=\"onColumnWidthChange(column)\"\n (widthChanging)=\"onColumnWidthChanging(i, column, $event)\"\n [disableResponsive]=\"disableResponsive\"\n [tableWidth]=\"tableWidth\"\n [columnsWidth]=\"columnsWidth\"\n [attr.columnName]=\"column.Name\"\n [attr.index]=\"i\"\n [ngClass]=\"column.$CSSClassName + ' column__' + column.Caption\"\n [class.displayIcon]=\"column.Extra?.IconDisplayTypeEnum\"\n >\n @if(!disableHeaderContextMenu){\n <fd-popover #menu>\n <fd-popover-control>\n <ng-container *ngTemplateOutlet=\"headerValue; context: { $implicit: column }\"></ng-container>\n </fd-popover-control>\n <fd-popover-body>\n <ul fd-list>\n <li fd-list-item>\n <a fd-list-link (click)=\"onSortAscending(column, menu)\">\n <fd-menu-addon position=\"before\" glyph=\"sort-ascending\" fd-list-icon></fd-menu-addon>\n <span fd-list-title\n >{{ ('Sort' | bbbTranslate) + ' ' }} {{ 'Ascending' | bbbTranslate }}</span\n >\n </a>\n </li>\n <li fd-list-item>\n <a fd-list-link (click)=\"onSortDescending(column, menu)\" bodyClick>\n <fd-menu-addon position=\"before\" glyph=\"sort-descending\" fd-list-icon></fd-menu-addon>\n <span fd-list-title\n >{{ ('Sort' | bbbTranslate) + ' ' }} {{ 'Descending' | bbbTranslate }}</span\n >\n </a>\n </li>\n <li fd-list-item>\n <a fd-list-link (click)=\"fitToContent.emit(column)\" bodyClick>\n <fd-menu-addon position=\"before\" fd-list-icon></fd-menu-addon>\n <span fd-list-title>{{ ('Fit Column To Content' | bbbTranslate) + ' ' }}</span>\n </a>\n </li>\n <li fd-list-item>\n <a fd-list-link (click)=\"fitToContainer.emit()\" bodyClick>\n <fd-menu-addon position=\"before\" fd-list-icon></fd-menu-addon>\n <span fd-list-title>{{ ('All Columns In Page' | bbbTranslate) + ' ' }}</span>\n </a>\n </li>\n <li fd-list-item>\n <a fd-list-link (click)=\"fitToColumn.emit()\" bodyClick>\n <fd-menu-addon position=\"before\" fd-list-icon></fd-menu-addon>\n <span fd-list-title>{{ ('Free Columns Size' | bbbTranslate) + ' ' }}</span>\n </a>\n </li>\n <li fd-list-item>\n <a fd-list-link (click)=\"onResetColumnsSettings()\" bodyClick>\n <fd-menu-addon position=\"before\" glyph=\"reset\" fd-list-icon></fd-menu-addon>\n <span fd-list-title>{{ 'GridSettingBase' | bbbTranslate }}</span>\n </a>\n </li>\n <!-- <li fd-list-item>\n <a fd-list-link (click)=\"onFilter(column, menu)\">\n <fd-menu-addon position=\"before\" glyph=\"filter\"></fd-menu-addon>\n <span fd-list-title>{{ 'Filter' | bbbTranslate }}</span>\n </a>\n </li> -->\n </ul>\n </fd-popover-body>\n </fd-popover>\n } @else{\n <ng-container *ngTemplateOutlet=\"headerValue; context: { $implicit: column }\"></ng-container>\n }\n </th>\n } } @if (contextMenuItems && contextMenuItems.length > 0 && !inlineEditMode) {\n <th\n class=\"col-header col-context-menu\"\n fd-table-cell\n [fitContent]=\"disableOverflowContextMenu\"\n [style.width.px]=\"contextMenuWidth\"\n ></th>\n } @if (showDetailsInRow && !inlineEditMode) {\n <th class=\"col-header col-details\" [style.width]=\"deviceSize === 's' ? 'auto' : '120px'\" fd-table-cell></th>\n } @if (showViewButton) {\n <th class=\"col-header col-view\" [style.width.px]=\"26.5 * (actionList?.length ?? 0) + 8\" fd-table-cell></th>\n } }\n </tr>\n</thead>\n<ng-template #headerValue let-column>\n <div style=\"display: flex\">\n <!-- FieldTypeId 38 means it is auto row number field-->\n @if ( (column.Extra?.IconDisplayTypeEnum === 'Image' || column.FieldTypeId === 42) && column.Icon) {\n <img [src]=\"column.Icon\" />\n } @else {\n {{ column.Caption | bbbTranslate }}\n }\n </div>\n</ng-template>\n", styles: [":host{display:contents;width:100%}:host.has-toolbar thead{border-top:none!important}\n"] }]
139
+ args: [{ selector: 'bsu-barsa-table-header', changeDetection: ChangeDetectionStrategy.OnPush, template: "<thead\n fd-table-header\n [class.inline-edit]=\"inlineEditMode\"\n [class.smallColumns]=\"columnsSmallerThanTableWidth\"\n [attr.columnsWidth]=\"columnsWidth\"\n [attr.tableWidth]=\"tableWidth\"\n [style.position]=\"sticky ? 'sticky' : null\"\n #theadRef\n>\n <tr fd-table-row>\n @if (!hideHeader) { @if (rowIndicator) {\n <th fd-table-cell fd-table-status-indicator></th>\n } @if (showRowNumber) {\n <th fd-table-cell style=\"width: 40px; max-width: 40px\"></th>\n } @if (isCheckList) {\n <th fd-table-cell>\n <fd-checkbox\n name=\"allCheckbox\"\n [ngModel]=\"allChecked\"\n (ngModelChange)=\"onAllCheckbox($event)\"\n ></fd-checkbox>\n </th>\n } @if (!isCheckList && !showRowNumber) {\n <th fd-table-cell class=\"single-select\"></th>\n } @for (column of columns; track _trackByColumn(i, column); let i = $index; let last = $last) { @if (startIndex\n <= i) {\n <th\n #thRef\n [columnIndex]=\"i\"\n fd-table-cell\n [style.width]=\"\n inlineEditMode\n ? column.FieldTypeId === 5\n ? column.$Width2\n : last\n ? '100%'\n : '210px'\n : last && column.$Width !== '100%'\n ? null\n : column.FieldTypeId === 38 ||\n column.FieldTypeId === 42 ||\n ((column.FieldTypeId === 6 || column.FieldTypeId === 5) &&\n column.Extra?.IconDisplayTypeEnum === 'Image')\n ? '40px'\n : column.$Width2 || column.$Width\n \"\n [style.min-width]=\"last ? null : inlineEditMode ? '210px' : last ? '100%' : 'auto'\"\n resizable\n [rtl]=\"rtl\"\n [disableResize]=\"\n disableResize ||\n last ||\n column.Extra?.IconDisplayTypeEnum === 'Image' ||\n column.FieldTypeId === 38 ||\n column.FieldTypeId === 42 ||\n ((column.FieldTypeId === 6 || column.FieldTypeId === 5) &&\n column.Extra?.IconDisplayTypeEnum === 'Image')\n \"\n (widthChange)=\"onColumnWidthChange(column)\"\n (widthChanging)=\"onColumnWidthChanging(i, column, $event)\"\n [disableResponsive]=\"disableResponsive\"\n [tableWidth]=\"tableWidth\"\n [columnsWidth]=\"columnsWidth\"\n [attr.columnName]=\"column.Name\"\n [attr.index]=\"i\"\n [ngClass]=\"column.$CSSClassName + ' column__' + column.Caption\"\n [class.displayIcon]=\"column.Extra?.IconDisplayTypeEnum\"\n >\n @if(!disableHeaderContextMenu){\n <fd-popover #menu>\n <fd-popover-control>\n <ng-container *ngTemplateOutlet=\"headerValue; context: { $implicit: column }\"></ng-container>\n </fd-popover-control>\n <fd-popover-body>\n <ul fd-list>\n <li fd-list-item>\n <a fd-list-link (click)=\"onSortAscending(column, menu)\">\n <fd-menu-addon position=\"before\" glyph=\"sort-ascending\" fd-list-icon></fd-menu-addon>\n <span fd-list-title\n >{{ ('Sort' | bbbTranslate) + ' ' }} {{ 'Ascending' | bbbTranslate }}</span\n >\n </a>\n </li>\n <li fd-list-item>\n <a fd-list-link (click)=\"onSortDescending(column, menu)\" bodyClick>\n <fd-menu-addon position=\"before\" glyph=\"sort-descending\" fd-list-icon></fd-menu-addon>\n <span fd-list-title\n >{{ ('Sort' | bbbTranslate) + ' ' }} {{ 'Descending' | bbbTranslate }}</span\n >\n </a>\n </li>\n <li fd-list-item>\n <a fd-list-link (click)=\"fitToContent.emit(column)\" bodyClick>\n <fd-menu-addon position=\"before\" fd-list-icon></fd-menu-addon>\n <span fd-list-title>{{ ('Fit Column To Content' | bbbTranslate) + ' ' }}</span>\n </a>\n </li>\n <li fd-list-item>\n <a fd-list-link (click)=\"fitToContainer.emit()\" bodyClick>\n <fd-menu-addon position=\"before\" fd-list-icon></fd-menu-addon>\n <span fd-list-title>{{ ('All Columns In Page' | bbbTranslate) + ' ' }}</span>\n </a>\n </li>\n <li fd-list-item>\n <a fd-list-link (click)=\"fitToColumn.emit()\" bodyClick>\n <fd-menu-addon position=\"before\" fd-list-icon></fd-menu-addon>\n <span fd-list-title>{{ ('Free Columns Size' | bbbTranslate) + ' ' }}</span>\n </a>\n </li>\n <li fd-list-item>\n <a fd-list-link (click)=\"onResetColumnsSettings()\" bodyClick>\n <fd-menu-addon position=\"before\" glyph=\"reset\" fd-list-icon></fd-menu-addon>\n <span fd-list-title>{{ 'GridSettingBase' | bbbTranslate }}</span>\n </a>\n </li>\n <!-- <li fd-list-item>\n <a fd-list-link (click)=\"onFilter(column, menu)\">\n <fd-menu-addon position=\"before\" glyph=\"filter\"></fd-menu-addon>\n <span fd-list-title>{{ 'Filter' | bbbTranslate }}</span>\n </a>\n </li> -->\n </ul>\n </fd-popover-body>\n </fd-popover>\n } @else{\n <ng-container *ngTemplateOutlet=\"headerValue; context: { $implicit: column }\"></ng-container>\n }\n </th>\n } } @if (contextMenuItems && contextMenuItems.length > 0 && !inlineEditMode) {\n <th\n class=\"col-header col-context-menu\"\n fd-table-cell\n [fitContent]=\"disableOverflowContextMenu\"\n [style.width.px]=\"contextMenuWidth\"\n ></th>\n } @if (showDetailsInRow && !inlineEditMode) {\n <th class=\"col-header col-details\" [style.width]=\"deviceSize === 's' ? 'auto' : '120px'\" fd-table-cell></th>\n } @if (showViewButton) {\n <th class=\"col-header col-view\" [style.width.px]=\"26.5 * (actionList?.length ?? 0) + 8\" fd-table-cell></th>\n } }\n </tr>\n</thead>\n<ng-template #headerValue let-column>\n <div style=\"display: flex\">\n <!-- FieldTypeId 38 means it is auto row number field-->\n @if ( (column.Extra?.IconDisplayTypeEnum === 'Image' || column.FieldTypeId === 42) && column.Icon) {\n <img [src]=\"column.Icon\" />\n } @else {\n {{ column.Caption | bbbTranslate }}\n }\n </div>\n</ng-template>\n", styles: [":host{display:contents;width:100%}:host.has-toolbar thead{border-top:none!important}\n"] }]
138
140
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { thList: [{
139
141
  type: ViewChildren,
140
142
  args: ['thRef', { read: ElementRef }]
143
+ }], theadRef: [{
144
+ type: ViewChild,
145
+ args: ['theadRef', { read: ElementRef, static: true }]
141
146
  }], allChecked: [{
142
147
  type: Input
143
148
  }], isCheckList: [{
@@ -178,6 +183,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
178
183
  type: Input
179
184
  }], rtl: [{
180
185
  type: Input
186
+ }], sticky: [{
187
+ type: Input
181
188
  }], showRowNumber: [{
182
189
  type: Input
183
190
  }], disableResize: [{
@@ -206,5 +213,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
206
213
  type: Output
207
214
  }], resetGridSettings: [{
208
215
  type: Output
216
+ }], headerRender: [{
217
+ type: Output
209
218
  }] } });
210
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtdGFibGUtaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2JhcnNhLXRhYmxlLWhlYWRlci9iYXJzYS10YWJsZS1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtdGFibGUtaGVhZGVyL2JhcnNhLXRhYmxlLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULHVCQUF1QixFQUN2QixLQUFLLEVBQ0wsWUFBWSxFQUNaLE1BQU0sRUFHTixZQUFZLEVBQ1osVUFBVSxFQUViLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxhQUFhLEVBS2hCLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7QUFTOUIsTUFBTSxPQUFPLHlCQUEwQixTQUFRLGFBQWE7SUF3Q3hEOztPQUVHO0lBQ0gsWUFBb0IsSUFBdUI7UUFDdkMsS0FBSyxFQUFFLENBQUM7UUFEUSxTQUFJLEdBQUosSUFBSSxDQUFtQjtRQTdCbEMscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBYXhCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUMxQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUE0QixDQUFDO1FBQzVELGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQW9CLENBQUM7UUFDcEQsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQzFDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN2QyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDeEMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3pDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBb0IsQ0FBQztRQUM5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QUFwQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBJbnB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgT3V0cHV0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgVmlld0NoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgUXVlcnlMaXN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBCYXNlQ29tcG9uZW50LFxuICAgIFJlcG9ydFZpZXdDb2x1bW4sXG4gICAgQWJicmV2YXRpb25EZXZpY2VTaXplLFxuICAgIENvbHVtblJlc2l6ZWRBcmdzLFxuICAgIFRhYmxlSGVhZGVyV2lkdGhNb2RlXG59IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcbmltcG9ydCB7IFVpVGFibGVWaWV3U2V0dGluZyB9IGZyb20gJy4uL21vZGVscy9ncmlkLXZpZXcnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS1iYXJzYS10YWJsZS1oZWFkZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXJzYS10YWJsZS1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2JhcnNhLXRhYmxlLWhlYWRlci5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEJhcnNhVGFibGVIZWFkZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgICBAVmlld0NoaWxkcmVuKCd0aFJlZicsIHsgcmVhZDogRWxlbWVudFJlZiB9KSB0aExpc3Q6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPEhUTUxUYWJsZUNlbGxFbGVtZW50Pj47XG4gICAgQElucHV0KCkgYWxsQ2hlY2tlZDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBpc0NoZWNrTGlzdDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBjb2x1bW5zOiBSZXBvcnRWaWV3Q29sdW1uW107XG4gICAgQElucHV0KCkgZml0V2lkdGg6IGJvb2xlYW47XG4gICAgQElucHV0KCkgY29udGV4dE1lbnVJdGVtczogYW55W107XG4gICAgQElucHV0KCkgY29udGV4dE1lbnVXaWR0aDogbnVtYmVyO1xuICAgIEBJbnB1dCgpIHNob3dWaWV3QnV0dG9uOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGhhc1NlbGVjdGVkOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGhpZGVPcGVuSWNvbjogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudTogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBpbmxpbmVFZGl0TW9kZTogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBoaWRlSGVhZGVyOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHNob3dEZXRhaWxzSW5Sb3cgPSBmYWxzZTtcbiAgICBASW5wdXQoKSB2aWV3U2V0dGluZzogVWlUYWJsZVZpZXdTZXR0aW5nO1xuICAgIEBJbnB1dCgpIHRhYmxlV2lkdGg6IG51bWJlcjtcbiAgICBASW5wdXQoKSByZXNpemVkQnlVc2VyOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGRpc2FibGVSZXNwb25zaXZlOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGFjdGlvbkxpc3Q6IGFueVtdO1xuICAgIEBJbnB1dCgpIHJvd0luZGljYXRvcjogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBydGw6IGJvb2xlYW47XG4gICAgQElucHV0KCkgc2hvd1Jvd051bWJlcjogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBkaXNhYmxlUmVzaXplOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGRpc2FibGVIZWFkZXJDb250ZXh0TWVudTogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBkZXZpY2VTaXplOiBBYmJyZXZhdGlvbkRldmljZVNpemU7XG4gICAgQElucHV0KCkgdGFibGVIZWFkZXJNb2RlOiBUYWJsZUhlYWRlcldpZHRoTW9kZTtcbiAgICBAT3V0cHV0KCkgYWxsQ2hlY2tib3ggPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gICAgQE91dHB1dCgpIGNvbHVtblJlc2l6ZSA9IG5ldyBFdmVudEVtaXR0ZXI8QXJyYXk8Q29sdW1uUmVzaXplZEFyZ3M+PigpO1xuICAgIEBPdXRwdXQoKSBmaXRUb0NvbnRlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPFJlcG9ydFZpZXdDb2x1bW4+KCk7XG4gICAgQE91dHB1dCgpIGZpdFRvQ29udGFpbmVyID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIEBPdXRwdXQoKSBmaXRUb0NvbHVtbiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgICBAT3V0cHV0KCkgc29ydEFzY2VuZGluZyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBzb3J0RGVzY2VuZGluZyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBmaWx0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFJlcG9ydFZpZXdDb2x1bW4+KCk7XG4gICAgQE91dHB1dCgpIHJlc2V0R3JpZFNldHRpbmdzID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIGNvbHVtbnNTbWFsbGVyVGhhblRhYmxlV2lkdGg6IGJvb2xlYW47XG4gICAgY29sdW1uc1dpZHRoOiBudW1iZXI7XG4gICAgc3RhcnRJbmRleDogbnVtYmVyO1xuICAgIHJlc2l6ZUhlYWRlciA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqXG4gICAgICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgLy8gdGhpcy5fcHJlcGFyZUNvbHVtbnNXaWR0aCh0aGlzLnRhYmxlV2lkdGgsIHRoaXMuY29sdW1ucywgdHJ1ZSk7XG4gICAgfVxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkNoYW5nZXMoY2hhbmdlcyk7XG4gICAgICAgIGNvbnN0IHsgY29sdW1ucywgaW5saW5lRWRpdE1vZGUsIHJvd0luZGljYXRvciB9ID0gY2hhbmdlcztcbiAgICAgICAgbGV0IG5lZWRDaGFuZ2VzID0gZmFsc2U7XG4gICAgICAgIGlmIChjb2x1bW5zICYmICFjb2x1bW5zLmZpcnN0Q2hhbmdlKSB7XG4gICAgICAgICAgICAvLyB0aGlzLl9wcmVwYXJlQ29sdW1uc1dpZHRoKHRoaXMudGFibGVXaWR0aCwgY29sdW1ucy5jdXJyZW50VmFsdWUpO1xuICAgICAgICAgICAgLy8gbmVlZENoYW5nZXMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbmxpbmVFZGl0TW9kZSAmJiAhaW5saW5lRWRpdE1vZGUuZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgIC8vIHRoaXMuX3ByZXBhcmVDb2x1bW5zV2lkdGgodGhpcy50YWJsZVdpZHRoLCB0aGlzLmNvbHVtbnMpO1xuICAgICAgICAgICAgLy8gbmVlZENoYW5nZXMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyb3dJbmRpY2F0b3IpIHtcbiAgICAgICAgICAgIHRoaXMuX3NldFN0YXJ0SW5kZXgocm93SW5kaWNhdG9yLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgICAgICBuZWVkQ2hhbmdlcyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgbmVlZENoYW5nZXMgJiYgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9zZXRTdGFydEluZGV4KHJvd0luZGljYXRvcjogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnN0YXJ0SW5kZXggPSByb3dJbmRpY2F0b3IgPyAxIDogMDtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9wcmVwYXJlQ29sdW1uc1dpZHRoKHZhbDogbnVtYmVyLCBjb2x1bW5zOiBSZXBvcnRWaWV3Q29sdW1uW10sIGRldGVjdENoYW5nZXMgPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBzdW0gPSBjb2x1bW5zLm1hcCgoY29sdW1uKSA9PiBjb2x1bW4uV2lkdGgpLnJlZHVjZSgodmFsMiwgY29sdW1uKSA9PiB2YWwyICsgY29sdW1uLCAwKTtcbiAgICAgICAgY29sdW1ucy5mb3JFYWNoKChjb2x1bW4pID0+IChjb2x1bW4uJFdpZHRoMiA9IGNvbHVtbi4kV2lkdGgpKTtcbiAgICAgICAgaWYgKHRoaXMucmVzaXplZEJ5VXNlcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmRldmljZVNpemUgPT09ICdzJykge1xuICAgICAgICAgICAgY29sdW1ucy5mb3JFYWNoKChjb2x1bW4sIGluZGV4KSA9PiAoY29sdW1uLiRXaWR0aDIgPSBpbmRleCA9PT0gY29sdW1ucy5sZW5ndGggLSAxID8gJzEwMCUnIDogJ2F1dG8nKSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb2x1bW5zV2lkdGggPSBzdW07XG4gICAgICAgIGlmIChzdW0gPiB2YWwgJiYgdmFsID4gMCkge1xuICAgICAgICAgICAgY29sdW1ucy5mb3JFYWNoKFxuICAgICAgICAgICAgICAgIChjb2x1bW4pID0+IChjb2x1bW4uJFdpZHRoMiA9IHRoaXMuaW5saW5lRWRpdE1vZGUgPyAnMjEwcHgnIDogKGNvbHVtbi5XaWR0aCAqIDEwMCkgLyB2YWwgKyAnJScpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5jb2x1bW5zU21hbGxlclRoYW5UYWJsZVdpZHRoID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmIChzdW0gKyAxMCA8IHZhbCkge1xuICAgICAgICAgICAgY29sdW1uc1tjb2x1bW5zLmxlbmd0aCAtIDFdLiRXaWR0aDIgPSAnMTAwJSc7XG4gICAgICAgIH1cbiAgICAgICAgZGV0ZWN0Q2hhbmdlcyAmJiB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgICBvblJlc2V0Q29sdW1uc1NldHRpbmdzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlc2V0R3JpZFNldHRpbmdzLmVtaXQoKTtcbiAgICB9XG4gICAgb25Db2x1bW5XaWR0aENoYW5naW5nKGluZGV4OiBudW1iZXIsIGNvbHVtbjogUmVwb3J0Vmlld0NvbHVtbiwgd2lkdGg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnJlc2l6ZUhlYWRlciA9IHRydWU7XG4gICAgICAgIGNvbHVtbi5XaWR0aCA9IHdpZHRoO1xuICAgICAgICAvLyBjb25zb2xlLmxvZygnY29sdW1uV2lkdGhDaGFuZ2luZyBudW1iZXI6Jywgd2lkdGgsIGluZGV4KTtcbiAgICB9XG5cbiAgICBvbkNvbHVtbldpZHRoQ2hhbmdlKGNvbHVtbjogUmVwb3J0Vmlld0NvbHVtbik6IHZvaWQge1xuICAgICAgICB0aGlzLnRoTGlzdC50b0FycmF5KCkuZm9yRWFjaCgoYywgaW5kZXgyKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5yb3dJbmRpY2F0b3IpIHtcbiAgICAgICAgICAgICAgICBpbmRleDIgKz0gMTtcbiAgICAgICAgICAgIH0gLy8g2KjYr9mE24zZhCDZiNis2YjYryByb3dpbmRpY2F0b3IgINuM2qnbjCDYqNmHIGluZGV4INin2LbYp9mB2Ycg2YXbjNi02YjYr1xuICAgICAgICAgICAgLy8g2YHZgti3INiz2KrZiNmG2YfYp9uMINqv2LLYp9ix2LQg2KjYrNiyIHJvd2luZGljYXRvciDZgtin2KjZhNuM2Kog2LHbjNiz2KfbjNiyINiv2KfYsdmG2K9cbiAgICAgICAgICAgIGNvbnN0IGVsID0gYy5uYXRpdmVFbGVtZW50IGFzIEhUTUxUYWJsZUNlbGxFbGVtZW50O1xuICAgICAgICAgICAgY29uc3QgbmV3V2lkdGggPSBlbC5vZmZzZXRXaWR0aDtcbiAgICAgICAgICAgIGNvbnN0IGNvbCA9IHRoaXMuY29sdW1uc1tpbmRleDJdO1xuICAgICAgICAgICAgaWYgKGNvbC5OYW1lID09PSBjb2x1bW4uTmFtZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHdpdGgyID0gTWF0aC5yb3VuZChjb2x1bW4uV2lkdGgpO1xuICAgICAgICAgICAgICAgIGNvbC5XaWR0aCA9IHdpdGgyO1xuICAgICAgICAgICAgICAgIGNvbC4kV2lkdGgyID0gYCR7d2l0aDJ9cHhgO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCB3aXRoMiA9IE1hdGgucm91bmQobmV3V2lkdGgpO1xuICAgICAgICAgICAgICAgIGNvbC5XaWR0aCA9IHdpdGgyO1xuICAgICAgICAgICAgICAgIGNvbC4kV2lkdGgyID0gYCR7d2l0aDJ9cHhgO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gIGNvbnNvbGUubG9nKGluZGV4MiwgYy5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY29sdW1uUmVzaXplLmVtaXQodGhpcy5jb2x1bW5zLm1hcCgoYykgPT4gKHsgbmFtZTogYy5OYW1lLCB3aWR0aDogYy5XaWR0aCB9KSkpO1xuICAgICAgICAvLyBjb25zb2xlLmxvZygnY29sdW1uV2lkdGhDaGFuZ2UnKTtcbiAgICB9XG4gICAgb25BbGxDaGVja2JveChjaGVja2VkKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWxsQ2hlY2tib3guZW1pdChjaGVja2VkKTtcbiAgICB9XG4gICAgb25Tb3J0QXNjZW5kaW5nKGNvbHVtbjogUmVwb3J0Vmlld0NvbHVtbiwgbWVudSk6IHZvaWQge1xuICAgICAgICBpZiAobWVudSkge1xuICAgICAgICAgICAgbWVudS5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc29ydEFzY2VuZGluZy5lbWl0KGNvbHVtbik7XG4gICAgfVxuICAgIG9uU29ydERlc2NlbmRpbmcoY29sdW1uOiBSZXBvcnRWaWV3Q29sdW1uLCBtZW51KTogdm9pZCB7XG4gICAgICAgIGlmIChtZW51KSB7XG4gICAgICAgICAgICBtZW51LmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zb3J0RGVzY2VuZGluZy5lbWl0KGNvbHVtbik7XG4gICAgfVxuICAgIG9uRmlsdGVyKGNvbHVtbjogUmVwb3J0Vmlld0NvbHVtbiwgbWVudSk6IHZvaWQge1xuICAgICAgICBpZiAobWVudSkge1xuICAgICAgICAgICAgbWVudS5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZmlsdGVyLmVtaXQoY29sdW1uKTtcbiAgICB9XG4gICAgX3RyYWNrQnlDb2x1bW4oaW5kZXg6IG51bWJlciwgY29sdW1uOiBSZXBvcnRWaWV3Q29sdW1uKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke2NvbHVtbi5OYW1lfSR7aW5kZXh9YDtcbiAgICB9XG59XG4iLCI8dGhlYWRcbiAgICBmZC10YWJsZS1oZWFkZXJcbiAgICBbY2xhc3MuaW5saW5lLWVkaXRdPVwiaW5saW5lRWRpdE1vZGVcIlxuICAgIFtjbGFzcy5zbWFsbENvbHVtbnNdPVwiY29sdW1uc1NtYWxsZXJUaGFuVGFibGVXaWR0aFwiXG4gICAgW2F0dHIuY29sdW1uc1dpZHRoXT1cImNvbHVtbnNXaWR0aFwiXG4gICAgW2F0dHIudGFibGVXaWR0aF09XCJ0YWJsZVdpZHRoXCJcbj5cbiAgICA8dHIgZmQtdGFibGUtcm93PlxuICAgICAgICBAaWYgKCFoaWRlSGVhZGVyKSB7IEBpZiAocm93SW5kaWNhdG9yKSB7XG4gICAgICAgIDx0aCBmZC10YWJsZS1jZWxsIGZkLXRhYmxlLXN0YXR1cy1pbmRpY2F0b3I+PC90aD5cbiAgICAgICAgfSBAaWYgKHNob3dSb3dOdW1iZXIpIHtcbiAgICAgICAgPHRoIGZkLXRhYmxlLWNlbGwgc3R5bGU9XCJ3aWR0aDogNDBweDsgbWF4LXdpZHRoOiA0MHB4XCI+PC90aD5cbiAgICAgICAgfSBAaWYgKGlzQ2hlY2tMaXN0KSB7XG4gICAgICAgIDx0aCBmZC10YWJsZS1jZWxsPlxuICAgICAgICAgICAgPGZkLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgbmFtZT1cImFsbENoZWNrYm94XCJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJhbGxDaGVja2VkXCJcbiAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkFsbENoZWNrYm94KCRldmVudClcIlxuICAgICAgICAgICAgPjwvZmQtY2hlY2tib3g+XG4gICAgICAgIDwvdGg+XG4gICAgICAgIH0gQGlmICghaXNDaGVja0xpc3QgJiYgIXNob3dSb3dOdW1iZXIpIHtcbiAgICAgICAgPHRoIGZkLXRhYmxlLWNlbGwgY2xhc3M9XCJzaW5nbGUtc2VsZWN0XCI+PC90aD5cbiAgICAgICAgfSBAZm9yIChjb2x1bW4gb2YgY29sdW1uczsgdHJhY2sgX3RyYWNrQnlDb2x1bW4oaSwgY29sdW1uKTsgbGV0IGkgPSAkaW5kZXg7IGxldCBsYXN0ID0gJGxhc3QpIHsgQGlmIChzdGFydEluZGV4XG4gICAgICAgIDw9IGkpIHtcbiAgICAgICAgPHRoXG4gICAgICAgICAgICAjdGhSZWZcbiAgICAgICAgICAgIFtjb2x1bW5JbmRleF09XCJpXCJcbiAgICAgICAgICAgIGZkLXRhYmxlLWNlbGxcbiAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJcbiAgICAgICAgICAgICAgICBpbmxpbmVFZGl0TW9kZVxuICAgICAgICAgICAgICAgICAgICA/IGNvbHVtbi5GaWVsZFR5cGVJZCA9PT0gNVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBjb2x1bW4uJFdpZHRoMlxuICAgICAgICAgICAgICAgICAgICAgICAgOiBsYXN0XG4gICAgICAgICAgICAgICAgICAgICAgICA/ICcxMDAlJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiAnMjEwcHgnXG4gICAgICAgICAgICAgICAgICAgIDogbGFzdCAmJiBjb2x1bW4uJFdpZHRoICE9PSAnMTAwJSdcbiAgICAgICAgICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICAgICAgICAgIDogY29sdW1uLkZpZWxkVHlwZUlkID09PSAzOCB8fFxuICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbi5GaWVsZFR5cGVJZCA9PT0gNDIgfHxcbiAgICAgICAgICAgICAgICAgICAgICAoKGNvbHVtbi5GaWVsZFR5cGVJZCA9PT0gNiB8fCBjb2x1bW4uRmllbGRUeXBlSWQgPT09IDUpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbi5FeHRyYT8uSWNvbkRpc3BsYXlUeXBlRW51bSA9PT0gJ0ltYWdlJylcbiAgICAgICAgICAgICAgICAgICAgPyAnNDBweCdcbiAgICAgICAgICAgICAgICAgICAgOiBjb2x1bW4uJFdpZHRoMiB8fCBjb2x1bW4uJFdpZHRoXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW3N0eWxlLm1pbi13aWR0aF09XCJsYXN0ID8gbnVsbCA6IGlubGluZUVkaXRNb2RlID8gJzIxMHB4JyA6IGxhc3QgPyAnMTAwJScgOiAnYXV0bydcIlxuICAgICAgICAgICAgcmVzaXphYmxlXG4gICAgICAgICAgICBbcnRsXT1cInJ0bFwiXG4gICAgICAgICAgICBbZGlzYWJsZVJlc2l6ZV09XCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlUmVzaXplIHx8XG4gICAgICAgICAgICAgICAgbGFzdCB8fFxuICAgICAgICAgICAgICAgIGNvbHVtbi5FeHRyYT8uSWNvbkRpc3BsYXlUeXBlRW51bSA9PT0gJ0ltYWdlJyB8fFxuICAgICAgICAgICAgICAgIGNvbHVtbi5GaWVsZFR5cGVJZCA9PT0gMzggfHxcbiAgICAgICAgICAgICAgICBjb2x1bW4uRmllbGRUeXBlSWQgPT09IDQyIHx8XG4gICAgICAgICAgICAgICAgKChjb2x1bW4uRmllbGRUeXBlSWQgPT09IDYgfHwgY29sdW1uLkZpZWxkVHlwZUlkID09PSA1KSAmJlxuICAgICAgICAgICAgICAgICAgICBjb2x1bW4uRXh0cmE/Lkljb25EaXNwbGF5VHlwZUVudW0gPT09ICdJbWFnZScpXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgKHdpZHRoQ2hhbmdlKT1cIm9uQ29sdW1uV2lkdGhDaGFuZ2UoY29sdW1uKVwiXG4gICAgICAgICAgICAod2lkdGhDaGFuZ2luZyk9XCJvbkNvbHVtbldpZHRoQ2hhbmdpbmcoaSwgY29sdW1uLCAkZXZlbnQpXCJcbiAgICAgICAgICAgIFtkaXNhYmxlUmVzcG9uc2l2ZV09XCJkaXNhYmxlUmVzcG9uc2l2ZVwiXG4gICAgICAgICAgICBbdGFibGVXaWR0aF09XCJ0YWJsZVdpZHRoXCJcbiAgICAgICAgICAgIFtjb2x1bW5zV2lkdGhdPVwiY29sdW1uc1dpZHRoXCJcbiAgICAgICAgICAgIFthdHRyLmNvbHVtbk5hbWVdPVwiY29sdW1uLk5hbWVcIlxuICAgICAgICAgICAgW2F0dHIuaW5kZXhdPVwiaVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJjb2x1bW4uJENTU0NsYXNzTmFtZSArICcgY29sdW1uX18nICsgY29sdW1uLkNhcHRpb25cIlxuICAgICAgICAgICAgW2NsYXNzLmRpc3BsYXlJY29uXT1cImNvbHVtbi5FeHRyYT8uSWNvbkRpc3BsYXlUeXBlRW51bVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIEBpZighZGlzYWJsZUhlYWRlckNvbnRleHRNZW51KXtcbiAgICAgICAgICAgIDxmZC1wb3BvdmVyICNtZW51PlxuICAgICAgICAgICAgICAgIDxmZC1wb3BvdmVyLWNvbnRyb2w+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoZWFkZXJWYWx1ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGNvbHVtbiB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9mZC1wb3BvdmVyLWNvbnRyb2w+XG4gICAgICAgICAgICAgICAgPGZkLXBvcG92ZXItYm9keT5cbiAgICAgICAgICAgICAgICAgICAgPHVsIGZkLWxpc3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgZmQtbGlzdC1pdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGZkLWxpc3QtbGluayAoY2xpY2spPVwib25Tb3J0QXNjZW5kaW5nKGNvbHVtbiwgbWVudSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLW1lbnUtYWRkb24gcG9zaXRpb249XCJiZWZvcmVcIiBnbHlwaD1cInNvcnQtYXNjZW5kaW5nXCIgZmQtbGlzdC1pY29uPjwvZmQtbWVudS1hZGRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPnt7ICgnU29ydCcgfCBiYmJUcmFuc2xhdGUpICsgJyAnIH19IHt7ICdBc2NlbmRpbmcnIHwgYmJiVHJhbnNsYXRlIH19PC9zcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGZkLWxpc3QtaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBmZC1saXN0LWxpbmsgKGNsaWNrKT1cIm9uU29ydERlc2NlbmRpbmcoY29sdW1uLCBtZW51KVwiIGJvZHlDbGljaz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLW1lbnUtYWRkb24gcG9zaXRpb249XCJiZWZvcmVcIiBnbHlwaD1cInNvcnQtZGVzY2VuZGluZ1wiIGZkLWxpc3QtaWNvbj48L2ZkLW1lbnUtYWRkb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57eyAoJ1NvcnQnIHwgYmJiVHJhbnNsYXRlKSArICcgJyB9fSB7eyAnRGVzY2VuZGluZycgfCBiYmJUcmFuc2xhdGUgfX08L3NwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgZmQtbGlzdC1pdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGZkLWxpc3QtbGluayAoY2xpY2spPVwiZml0VG9Db250ZW50LmVtaXQoY29sdW1uKVwiIGJvZHlDbGljaz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLW1lbnUtYWRkb24gcG9zaXRpb249XCJiZWZvcmVcIiBmZC1saXN0LWljb24+PC9mZC1tZW51LWFkZG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlPnt7ICgnRml0IENvbHVtbiBUbyBDb250ZW50JyB8IGJiYlRyYW5zbGF0ZSkgKyAnICcgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBmZC1saXN0LWl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgZmQtbGlzdC1saW5rIChjbGljayk9XCJmaXRUb0NvbnRhaW5lci5lbWl0KClcIiBib2R5Q2xpY2s+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1tZW51LWFkZG9uIHBvc2l0aW9uPVwiYmVmb3JlXCIgZmQtbGlzdC1pY29uPjwvZmQtbWVudS1hZGRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT57eyAoJ0FsbCBDb2x1bW5zIEluIFBhZ2UnIHwgYmJiVHJhbnNsYXRlKSArICcgJyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGZkLWxpc3QtaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBmZC1saXN0LWxpbmsgKGNsaWNrKT1cImZpdFRvQ29sdW1uLmVtaXQoKVwiIGJvZHlDbGljaz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLW1lbnUtYWRkb24gcG9zaXRpb249XCJiZWZvcmVcIiBmZC1saXN0LWljb24+PC9mZC1tZW51LWFkZG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlPnt7ICgnRnJlZSBDb2x1bW5zIFNpemUnIHwgYmJiVHJhbnNsYXRlKSArICcgJyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGZkLWxpc3QtaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBmZC1saXN0LWxpbmsgKGNsaWNrKT1cIm9uUmVzZXRDb2x1bW5zU2V0dGluZ3MoKVwiIGJvZHlDbGljaz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLW1lbnUtYWRkb24gcG9zaXRpb249XCJiZWZvcmVcIiBnbHlwaD1cInJlc2V0XCIgZmQtbGlzdC1pY29uPjwvZmQtbWVudS1hZGRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT57eyAnR3JpZFNldHRpbmdCYXNlJyB8IGJiYlRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8bGkgZmQtbGlzdC1pdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBmZC1saXN0LWxpbmsgKGNsaWNrKT1cIm9uRmlsdGVyKGNvbHVtbiwgbWVudSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtbWVudS1hZGRvbiBwb3NpdGlvbj1cImJlZm9yZVwiIGdseXBoPVwiZmlsdGVyXCI+PC9mZC1tZW51LWFkZG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGU+e3sgJ0ZpbHRlcicgfCBiYmJUcmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+IC0tPlxuICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgIDwvZmQtcG9wb3Zlci1ib2R5PlxuICAgICAgICAgICAgPC9mZC1wb3BvdmVyPlxuICAgICAgICAgICAgfSBAZWxzZXtcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoZWFkZXJWYWx1ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGNvbHVtbiB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvdGg+XG4gICAgICAgIH0gfSBAaWYgKGNvbnRleHRNZW51SXRlbXMgJiYgY29udGV4dE1lbnVJdGVtcy5sZW5ndGggPiAwICYmICFpbmxpbmVFZGl0TW9kZSkge1xuICAgICAgICA8dGhcbiAgICAgICAgICAgIGNsYXNzPVwiY29sLWhlYWRlciBjb2wtY29udGV4dC1tZW51XCJcbiAgICAgICAgICAgIGZkLXRhYmxlLWNlbGxcbiAgICAgICAgICAgIFtmaXRDb250ZW50XT1cImRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XCJcbiAgICAgICAgICAgIFtzdHlsZS53aWR0aC5weF09XCJjb250ZXh0TWVudVdpZHRoXCJcbiAgICAgICAgPjwvdGg+XG4gICAgICAgIH0gQGlmIChzaG93RGV0YWlsc0luUm93ICYmICFpbmxpbmVFZGl0TW9kZSkge1xuICAgICAgICA8dGggY2xhc3M9XCJjb2wtaGVhZGVyIGNvbC1kZXRhaWxzXCIgW3N0eWxlLndpZHRoXT1cImRldmljZVNpemUgPT09ICdzJyA/ICdhdXRvJyA6ICcxMjBweCdcIiBmZC10YWJsZS1jZWxsPjwvdGg+XG4gICAgICAgIH0gQGlmIChzaG93Vmlld0J1dHRvbikge1xuICAgICAgICA8dGggY2xhc3M9XCJjb2wtaGVhZGVyIGNvbC12aWV3XCIgW3N0eWxlLndpZHRoLnB4XT1cIjI2LjUgKiAoYWN0aW9uTGlzdD8ubGVuZ3RoID8/IDApICsgOFwiIGZkLXRhYmxlLWNlbGw+PC90aD5cbiAgICAgICAgfSB9XG4gICAgPC90cj5cbjwvdGhlYWQ+XG48bmctdGVtcGxhdGUgI2hlYWRlclZhbHVlIGxldC1jb2x1bW4+XG4gICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXhcIj5cbiAgICAgICAgPCEtLSBGaWVsZFR5cGVJZCAzOCBtZWFucyBpdCBpcyBhdXRvIHJvdyBudW1iZXIgZmllbGQtLT5cbiAgICAgICAgQGlmICggKGNvbHVtbi5FeHRyYT8uSWNvbkRpc3BsYXlUeXBlRW51bSA9PT0gJ0ltYWdlJyB8fCBjb2x1bW4uRmllbGRUeXBlSWQgPT09IDQyKSAmJiBjb2x1bW4uSWNvbikge1xuICAgICAgICA8aW1nIFtzcmNdPVwiY29sdW1uLkljb25cIiAvPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAge3sgY29sdW1uLkNhcHRpb24gfCBiYmJUcmFuc2xhdGUgfX1cbiAgICAgICAgfVxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
219
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtdGFibGUtaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2JhcnNhLXRhYmxlLWhlYWRlci9iYXJzYS10YWJsZS1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtdGFibGUtaGVhZGVyL2JhcnNhLXRhYmxlLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULHVCQUF1QixFQUN2QixLQUFLLEVBQ0wsWUFBWSxFQUNaLE1BQU0sRUFHTixZQUFZLEVBQ1osVUFBVSxFQUVWLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsYUFBYSxFQUtoQixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7O0FBUzlCLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxhQUFhO0lBMkN4RDs7T0FFRztJQUNILFlBQW9CLElBQXVCO1FBQ3ZDLEtBQUssRUFBRSxDQUFDO1FBRFEsU0FBSSxHQUFKLElBQUksQ0FBbUI7UUEvQmxDLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQWN4QixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFDMUMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBNEIsQ0FBQztRQUM1RCxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFvQixDQUFDO1FBQ3BELG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUMxQyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDdkMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3hDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUN6QyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQW9C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QWlCO3NCQUF6QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyx3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgSW5wdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIFZpZXdDaGlsZHJlbixcbiAgICBFbGVtZW50UmVmLFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEJhc2VDb21wb25lbnQsXG4gICAgUmVwb3J0Vmlld0NvbHVtbixcbiAgICBBYmJyZXZhdGlvbkRldmljZVNpemUsXG4gICAgQ29sdW1uUmVzaXplZEFyZ3MsXG4gICAgVGFibGVIZWFkZXJXaWR0aE1vZGVcbn0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuaW1wb3J0IHsgVWlUYWJsZVZpZXdTZXR0aW5nIH0gZnJvbSAnLi4vbW9kZWxzL2dyaWQtdmlldyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYnN1LWJhcnNhLXRhYmxlLWhlYWRlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JhcnNhLXRhYmxlLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYmFyc2EtdGFibGUtaGVhZGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQmFyc2FUYWJsZUhlYWRlckNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICAgIEBWaWV3Q2hpbGRyZW4oJ3RoUmVmJywgeyByZWFkOiBFbGVtZW50UmVmIH0pIHRoTGlzdDogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTFRhYmxlQ2VsbEVsZW1lbnQ+PjtcbiAgICBAVmlld0NoaWxkKCd0aGVhZFJlZicsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiB0cnVlIH0pIHRoZWFkUmVmOiBFbGVtZW50UmVmO1xuICAgIEBJbnB1dCgpIGFsbENoZWNrZWQ6IGJvb2xlYW47XG4gICAgQElucHV0KCkgaXNDaGVja0xpc3Q6IGJvb2xlYW47XG4gICAgQElucHV0KCkgY29sdW1uczogUmVwb3J0Vmlld0NvbHVtbltdO1xuICAgIEBJbnB1dCgpIGZpdFdpZHRoOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGNvbnRleHRNZW51SXRlbXM6IGFueVtdO1xuICAgIEBJbnB1dCgpIGNvbnRleHRNZW51V2lkdGg6IG51bWJlcjtcbiAgICBASW5wdXQoKSBzaG93Vmlld0J1dHRvbjogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBoYXNTZWxlY3RlZDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBoaWRlT3Blbkljb246IGJvb2xlYW47XG4gICAgQElucHV0KCkgZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnU6IGJvb2xlYW47XG4gICAgQElucHV0KCkgaW5saW5lRWRpdE1vZGU6IGJvb2xlYW47XG4gICAgQElucHV0KCkgaGlkZUhlYWRlcjogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBzaG93RGV0YWlsc0luUm93ID0gZmFsc2U7XG4gICAgQElucHV0KCkgdmlld1NldHRpbmc6IFVpVGFibGVWaWV3U2V0dGluZztcbiAgICBASW5wdXQoKSB0YWJsZVdpZHRoOiBudW1iZXI7XG4gICAgQElucHV0KCkgcmVzaXplZEJ5VXNlcjogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBkaXNhYmxlUmVzcG9uc2l2ZTogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBhY3Rpb25MaXN0OiBhbnlbXTtcbiAgICBASW5wdXQoKSByb3dJbmRpY2F0b3I6IGJvb2xlYW47XG4gICAgQElucHV0KCkgcnRsOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHN0aWNreTogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBzaG93Um93TnVtYmVyOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGRpc2FibGVSZXNpemU6IGJvb2xlYW47XG4gICAgQElucHV0KCkgZGlzYWJsZUhlYWRlckNvbnRleHRNZW51OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGRldmljZVNpemU6IEFiYnJldmF0aW9uRGV2aWNlU2l6ZTtcbiAgICBASW5wdXQoKSB0YWJsZUhlYWRlck1vZGU6IFRhYmxlSGVhZGVyV2lkdGhNb2RlO1xuICAgIEBPdXRwdXQoKSBhbGxDaGVja2JveCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgICBAT3V0cHV0KCkgY29sdW1uUmVzaXplID0gbmV3IEV2ZW50RW1pdHRlcjxBcnJheTxDb2x1bW5SZXNpemVkQXJncz4+KCk7XG4gICAgQE91dHB1dCgpIGZpdFRvQ29udGVudCA9IG5ldyBFdmVudEVtaXR0ZXI8UmVwb3J0Vmlld0NvbHVtbj4oKTtcbiAgICBAT3V0cHV0KCkgZml0VG9Db250YWluZXIgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gICAgQE91dHB1dCgpIGZpdFRvQ29sdW1uID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIEBPdXRwdXQoKSBzb3J0QXNjZW5kaW5nID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHNvcnREZXNjZW5kaW5nID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIGZpbHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8UmVwb3J0Vmlld0NvbHVtbj4oKTtcbiAgICBAT3V0cHV0KCkgcmVzZXRHcmlkU2V0dGluZ3MgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gICAgQE91dHB1dCgpIGhlYWRlclJlbmRlciA9IG5ldyBFdmVudEVtaXR0ZXI8SFRNTEVsZW1lbnQ+KCk7XG4gICAgY29sdW1uc1NtYWxsZXJUaGFuVGFibGVXaWR0aDogYm9vbGVhbjtcbiAgICBjb2x1bW5zV2lkdGg6IG51bWJlcjtcbiAgICBzdGFydEluZGV4OiBudW1iZXI7XG4gICAgcmVzaXplSGVhZGVyID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICpcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLmhlYWRlclJlbmRlci5lbWl0KHRoaXMudGhlYWRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIC8vIHRoaXMuX3ByZXBhcmVDb2x1bW5zV2lkdGgodGhpcy50YWJsZVdpZHRoLCB0aGlzLmNvbHVtbnMsIHRydWUpO1xuICAgIH1cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25DaGFuZ2VzKGNoYW5nZXMpO1xuICAgICAgICBjb25zdCB7IGNvbHVtbnMsIGlubGluZUVkaXRNb2RlLCByb3dJbmRpY2F0b3IgfSA9IGNoYW5nZXM7XG4gICAgICAgIGxldCBuZWVkQ2hhbmdlcyA9IGZhbHNlO1xuICAgICAgICBpZiAoY29sdW1ucyAmJiAhY29sdW1ucy5maXJzdENoYW5nZSkge1xuICAgICAgICAgICAgLy8gdGhpcy5fcHJlcGFyZUNvbHVtbnNXaWR0aCh0aGlzLnRhYmxlV2lkdGgsIGNvbHVtbnMuY3VycmVudFZhbHVlKTtcbiAgICAgICAgICAgIC8vIG5lZWRDaGFuZ2VzID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5saW5lRWRpdE1vZGUgJiYgIWlubGluZUVkaXRNb2RlLmZpcnN0Q2hhbmdlKSB7XG4gICAgICAgICAgICAvLyB0aGlzLl9wcmVwYXJlQ29sdW1uc1dpZHRoKHRoaXMudGFibGVXaWR0aCwgdGhpcy5jb2x1bW5zKTtcbiAgICAgICAgICAgIC8vIG5lZWRDaGFuZ2VzID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocm93SW5kaWNhdG9yKSB7XG4gICAgICAgICAgICB0aGlzLl9zZXRTdGFydEluZGV4KHJvd0luZGljYXRvci5jdXJyZW50VmFsdWUpO1xuICAgICAgICAgICAgbmVlZENoYW5nZXMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIG5lZWRDaGFuZ2VzICYmIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfc2V0U3RhcnRJbmRleChyb3dJbmRpY2F0b3I6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdGFydEluZGV4ID0gcm93SW5kaWNhdG9yID8gMSA6IDA7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfcHJlcGFyZUNvbHVtbnNXaWR0aCh2YWw6IG51bWJlciwgY29sdW1uczogUmVwb3J0Vmlld0NvbHVtbltdLCBkZXRlY3RDaGFuZ2VzID0gZmFsc2UpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc3VtID0gY29sdW1ucy5tYXAoKGNvbHVtbikgPT4gY29sdW1uLldpZHRoKS5yZWR1Y2UoKHZhbDIsIGNvbHVtbikgPT4gdmFsMiArIGNvbHVtbiwgMCk7XG4gICAgICAgIGNvbHVtbnMuZm9yRWFjaCgoY29sdW1uKSA9PiAoY29sdW1uLiRXaWR0aDIgPSBjb2x1bW4uJFdpZHRoKSk7XG4gICAgICAgIGlmICh0aGlzLnJlc2l6ZWRCeVVzZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5kZXZpY2VTaXplID09PSAncycpIHtcbiAgICAgICAgICAgIGNvbHVtbnMuZm9yRWFjaCgoY29sdW1uLCBpbmRleCkgPT4gKGNvbHVtbi4kV2lkdGgyID0gaW5kZXggPT09IGNvbHVtbnMubGVuZ3RoIC0gMSA/ICcxMDAlJyA6ICdhdXRvJykpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY29sdW1uc1dpZHRoID0gc3VtO1xuICAgICAgICBpZiAoc3VtID4gdmFsICYmIHZhbCA+IDApIHtcbiAgICAgICAgICAgIGNvbHVtbnMuZm9yRWFjaChcbiAgICAgICAgICAgICAgICAoY29sdW1uKSA9PiAoY29sdW1uLiRXaWR0aDIgPSB0aGlzLmlubGluZUVkaXRNb2RlID8gJzIxMHB4JyA6IChjb2x1bW4uV2lkdGggKiAxMDApIC8gdmFsICsgJyUnKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuY29sdW1uc1NtYWxsZXJUaGFuVGFibGVXaWR0aCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAoc3VtICsgMTAgPCB2YWwpIHtcbiAgICAgICAgICAgIGNvbHVtbnNbY29sdW1ucy5sZW5ndGggLSAxXS4kV2lkdGgyID0gJzEwMCUnO1xuICAgICAgICB9XG4gICAgICAgIGRldGVjdENoYW5nZXMgJiYgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gICAgb25SZXNldENvbHVtbnNTZXR0aW5ncygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZXNldEdyaWRTZXR0aW5ncy5lbWl0KCk7XG4gICAgfVxuICAgIG9uQ29sdW1uV2lkdGhDaGFuZ2luZyhpbmRleDogbnVtYmVyLCBjb2x1bW46IFJlcG9ydFZpZXdDb2x1bW4sIHdpZHRoOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZXNpemVIZWFkZXIgPSB0cnVlO1xuICAgICAgICBjb2x1bW4uV2lkdGggPSB3aWR0aDtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ2NvbHVtbldpZHRoQ2hhbmdpbmcgbnVtYmVyOicsIHdpZHRoLCBpbmRleCk7XG4gICAgfVxuXG4gICAgb25Db2x1bW5XaWR0aENoYW5nZShjb2x1bW46IFJlcG9ydFZpZXdDb2x1bW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy50aExpc3QudG9BcnJheSgpLmZvckVhY2goKGMsIGluZGV4MikgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMucm93SW5kaWNhdG9yKSB7XG4gICAgICAgICAgICAgICAgaW5kZXgyICs9IDE7XG4gICAgICAgICAgICB9IC8vINio2K/ZhNuM2YQg2YjYrNmI2K8gcm93aW5kaWNhdG9yICDbjNqp24wg2KjZhyBpbmRleCDYp9i22KfZgdmHINmF24zYtNmI2K9cbiAgICAgICAgICAgIC8vINmB2YLYtyDYs9iq2YjZhtmH2KfbjCDar9iy2KfYsdi0INio2KzYsiByb3dpbmRpY2F0b3Ig2YLYp9io2YTbjNiqINix24zYs9in24zYsiDYr9in2LHZhtivXG4gICAgICAgICAgICBjb25zdCBlbCA9IGMubmF0aXZlRWxlbWVudCBhcyBIVE1MVGFibGVDZWxsRWxlbWVudDtcbiAgICAgICAgICAgIGNvbnN0IG5ld1dpZHRoID0gZWwub2Zmc2V0V2lkdGg7XG4gICAgICAgICAgICBjb25zdCBjb2wgPSB0aGlzLmNvbHVtbnNbaW5kZXgyXTtcbiAgICAgICAgICAgIGlmIChjb2wuTmFtZSA9PT0gY29sdW1uLk5hbWUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB3aXRoMiA9IE1hdGgucm91bmQoY29sdW1uLldpZHRoKTtcbiAgICAgICAgICAgICAgICBjb2wuV2lkdGggPSB3aXRoMjtcbiAgICAgICAgICAgICAgICBjb2wuJFdpZHRoMiA9IGAke3dpdGgyfXB4YDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgd2l0aDIgPSBNYXRoLnJvdW5kKG5ld1dpZHRoKTtcbiAgICAgICAgICAgICAgICBjb2wuV2lkdGggPSB3aXRoMjtcbiAgICAgICAgICAgICAgICBjb2wuJFdpZHRoMiA9IGAke3dpdGgyfXB4YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vICBjb25zb2xlLmxvZyhpbmRleDIsIGMubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNvbHVtblJlc2l6ZS5lbWl0KHRoaXMuY29sdW1ucy5tYXAoKGMpID0+ICh7IG5hbWU6IGMuTmFtZSwgd2lkdGg6IGMuV2lkdGggfSkpKTtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ2NvbHVtbldpZHRoQ2hhbmdlJyk7XG4gICAgfVxuICAgIG9uQWxsQ2hlY2tib3goY2hlY2tlZCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFsbENoZWNrYm94LmVtaXQoY2hlY2tlZCk7XG4gICAgfVxuICAgIG9uU29ydEFzY2VuZGluZyhjb2x1bW46IFJlcG9ydFZpZXdDb2x1bW4sIG1lbnUpOiB2b2lkIHtcbiAgICAgICAgaWYgKG1lbnUpIHtcbiAgICAgICAgICAgIG1lbnUuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNvcnRBc2NlbmRpbmcuZW1pdChjb2x1bW4pO1xuICAgIH1cbiAgICBvblNvcnREZXNjZW5kaW5nKGNvbHVtbjogUmVwb3J0Vmlld0NvbHVtbiwgbWVudSk6IHZvaWQge1xuICAgICAgICBpZiAobWVudSkge1xuICAgICAgICAgICAgbWVudS5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc29ydERlc2NlbmRpbmcuZW1pdChjb2x1bW4pO1xuICAgIH1cbiAgICBvbkZpbHRlcihjb2x1bW46IFJlcG9ydFZpZXdDb2x1bW4sIG1lbnUpOiB2b2lkIHtcbiAgICAgICAgaWYgKG1lbnUpIHtcbiAgICAgICAgICAgIG1lbnUuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZpbHRlci5lbWl0KGNvbHVtbik7XG4gICAgfVxuICAgIF90cmFja0J5Q29sdW1uKGluZGV4OiBudW1iZXIsIGNvbHVtbjogUmVwb3J0Vmlld0NvbHVtbik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHtjb2x1bW4uTmFtZX0ke2luZGV4fWA7XG4gICAgfVxufVxuIiwiPHRoZWFkXG4gICAgZmQtdGFibGUtaGVhZGVyXG4gICAgW2NsYXNzLmlubGluZS1lZGl0XT1cImlubGluZUVkaXRNb2RlXCJcbiAgICBbY2xhc3Muc21hbGxDb2x1bW5zXT1cImNvbHVtbnNTbWFsbGVyVGhhblRhYmxlV2lkdGhcIlxuICAgIFthdHRyLmNvbHVtbnNXaWR0aF09XCJjb2x1bW5zV2lkdGhcIlxuICAgIFthdHRyLnRhYmxlV2lkdGhdPVwidGFibGVXaWR0aFwiXG4gICAgW3N0eWxlLnBvc2l0aW9uXT1cInN0aWNreSA/ICdzdGlja3knIDogbnVsbFwiXG4gICAgI3RoZWFkUmVmXG4+XG4gICAgPHRyIGZkLXRhYmxlLXJvdz5cbiAgICAgICAgQGlmICghaGlkZUhlYWRlcikgeyBAaWYgKHJvd0luZGljYXRvcikge1xuICAgICAgICA8dGggZmQtdGFibGUtY2VsbCBmZC10YWJsZS1zdGF0dXMtaW5kaWNhdG9yPjwvdGg+XG4gICAgICAgIH0gQGlmIChzaG93Um93TnVtYmVyKSB7XG4gICAgICAgIDx0aCBmZC10YWJsZS1jZWxsIHN0eWxlPVwid2lkdGg6IDQwcHg7IG1heC13aWR0aDogNDBweFwiPjwvdGg+XG4gICAgICAgIH0gQGlmIChpc0NoZWNrTGlzdCkge1xuICAgICAgICA8dGggZmQtdGFibGUtY2VsbD5cbiAgICAgICAgICAgIDxmZC1jaGVja2JveFxuICAgICAgICAgICAgICAgIG5hbWU9XCJhbGxDaGVja2JveFwiXG4gICAgICAgICAgICAgICAgW25nTW9kZWxdPVwiYWxsQ2hlY2tlZFwiXG4gICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25BbGxDaGVja2JveCgkZXZlbnQpXCJcbiAgICAgICAgICAgID48L2ZkLWNoZWNrYm94PlxuICAgICAgICA8L3RoPlxuICAgICAgICB9IEBpZiAoIWlzQ2hlY2tMaXN0ICYmICFzaG93Um93TnVtYmVyKSB7XG4gICAgICAgIDx0aCBmZC10YWJsZS1jZWxsIGNsYXNzPVwic2luZ2xlLXNlbGVjdFwiPjwvdGg+XG4gICAgICAgIH0gQGZvciAoY29sdW1uIG9mIGNvbHVtbnM7IHRyYWNrIF90cmFja0J5Q29sdW1uKGksIGNvbHVtbik7IGxldCBpID0gJGluZGV4OyBsZXQgbGFzdCA9ICRsYXN0KSB7IEBpZiAoc3RhcnRJbmRleFxuICAgICAgICA8PSBpKSB7XG4gICAgICAgIDx0aFxuICAgICAgICAgICAgI3RoUmVmXG4gICAgICAgICAgICBbY29sdW1uSW5kZXhdPVwiaVwiXG4gICAgICAgICAgICBmZC10YWJsZS1jZWxsXG4gICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiXG4gICAgICAgICAgICAgICAgaW5saW5lRWRpdE1vZGVcbiAgICAgICAgICAgICAgICAgICAgPyBjb2x1bW4uRmllbGRUeXBlSWQgPT09IDVcbiAgICAgICAgICAgICAgICAgICAgICAgID8gY29sdW1uLiRXaWR0aDJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogbGFzdFxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnMTAwJSdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJzIxMHB4J1xuICAgICAgICAgICAgICAgICAgICA6IGxhc3QgJiYgY29sdW1uLiRXaWR0aCAhPT0gJzEwMCUnXG4gICAgICAgICAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgICAgICAgICA6IGNvbHVtbi5GaWVsZFR5cGVJZCA9PT0gMzggfHxcbiAgICAgICAgICAgICAgICAgICAgICBjb2x1bW4uRmllbGRUeXBlSWQgPT09IDQyIHx8XG4gICAgICAgICAgICAgICAgICAgICAgKChjb2x1bW4uRmllbGRUeXBlSWQgPT09IDYgfHwgY29sdW1uLkZpZWxkVHlwZUlkID09PSA1KSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW4uRXh0cmE/Lkljb25EaXNwbGF5VHlwZUVudW0gPT09ICdJbWFnZScpXG4gICAgICAgICAgICAgICAgICAgID8gJzQwcHgnXG4gICAgICAgICAgICAgICAgICAgIDogY29sdW1uLiRXaWR0aDIgfHwgY29sdW1uLiRXaWR0aFxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFtzdHlsZS5taW4td2lkdGhdPVwibGFzdCA/IG51bGwgOiBpbmxpbmVFZGl0TW9kZSA/ICcyMTBweCcgOiBsYXN0ID8gJzEwMCUnIDogJ2F1dG8nXCJcbiAgICAgICAgICAgIHJlc2l6YWJsZVxuICAgICAgICAgICAgW3J0bF09XCJydGxcIlxuICAgICAgICAgICAgW2Rpc2FibGVSZXNpemVdPVwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZVJlc2l6ZSB8fFxuICAgICAgICAgICAgICAgIGxhc3QgfHxcbiAgICAgICAgICAgICAgICBjb2x1bW4uRXh0cmE/Lkljb25EaXNwbGF5VHlwZUVudW0gPT09ICdJbWFnZScgfHxcbiAgICAgICAgICAgICAgICBjb2x1bW4uRmllbGRUeXBlSWQgPT09IDM4IHx8XG4gICAgICAgICAgICAgICAgY29sdW1uLkZpZWxkVHlwZUlkID09PSA0MiB8fFxuICAgICAgICAgICAgICAgICgoY29sdW1uLkZpZWxkVHlwZUlkID09PSA2IHx8IGNvbHVtbi5GaWVsZFR5cGVJZCA9PT0gNSkgJiZcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uLkV4dHJhPy5JY29uRGlzcGxheVR5cGVFbnVtID09PSAnSW1hZ2UnKVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICh3aWR0aENoYW5nZSk9XCJvbkNvbHVtbldpZHRoQ2hhbmdlKGNvbHVtbilcIlxuICAgICAgICAgICAgKHdpZHRoQ2hhbmdpbmcpPVwib25Db2x1bW5XaWR0aENoYW5naW5nKGksIGNvbHVtbiwgJGV2ZW50KVwiXG4gICAgICAgICAgICBbZGlzYWJsZVJlc3BvbnNpdmVdPVwiZGlzYWJsZVJlc3BvbnNpdmVcIlxuICAgICAgICAgICAgW3RhYmxlV2lkdGhdPVwidGFibGVXaWR0aFwiXG4gICAgICAgICAgICBbY29sdW1uc1dpZHRoXT1cImNvbHVtbnNXaWR0aFwiXG4gICAgICAgICAgICBbYXR0ci5jb2x1bW5OYW1lXT1cImNvbHVtbi5OYW1lXCJcbiAgICAgICAgICAgIFthdHRyLmluZGV4XT1cImlcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiY29sdW1uLiRDU1NDbGFzc05hbWUgKyAnIGNvbHVtbl9fJyArIGNvbHVtbi5DYXB0aW9uXCJcbiAgICAgICAgICAgIFtjbGFzcy5kaXNwbGF5SWNvbl09XCJjb2x1bW4uRXh0cmE/Lkljb25EaXNwbGF5VHlwZUVudW1cIlxuICAgICAgICA+XG4gICAgICAgICAgICBAaWYoIWRpc2FibGVIZWFkZXJDb250ZXh0TWVudSl7XG4gICAgICAgICAgICA8ZmQtcG9wb3ZlciAjbWVudT5cbiAgICAgICAgICAgICAgICA8ZmQtcG9wb3Zlci1jb250cm9sPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGVhZGVyVmFsdWU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBjb2x1bW4gfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZmQtcG9wb3Zlci1jb250cm9sPlxuICAgICAgICAgICAgICAgIDxmZC1wb3BvdmVyLWJvZHk+XG4gICAgICAgICAgICAgICAgICAgIDx1bCBmZC1saXN0PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGZkLWxpc3QtaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBmZC1saXN0LWxpbmsgKGNsaWNrKT1cIm9uU29ydEFzY2VuZGluZyhjb2x1bW4sIG1lbnUpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1tZW51LWFkZG9uIHBvc2l0aW9uPVwiYmVmb3JlXCIgZ2x5cGg9XCJzb3J0LWFzY2VuZGluZ1wiIGZkLWxpc3QtaWNvbj48L2ZkLW1lbnUtYWRkb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57eyAoJ1NvcnQnIHwgYmJiVHJhbnNsYXRlKSArICcgJyB9fSB7eyAnQXNjZW5kaW5nJyB8IGJiYlRyYW5zbGF0ZSB9fTwvc3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBmZC1saXN0LWl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgZmQtbGlzdC1saW5rIChjbGljayk9XCJvblNvcnREZXNjZW5kaW5nKGNvbHVtbiwgbWVudSlcIiBib2R5Q2xpY2s+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1tZW51LWFkZG9uIHBvc2l0aW9uPVwiYmVmb3JlXCIgZ2x5cGg9XCJzb3J0LWRlc2NlbmRpbmdcIiBmZC1saXN0LWljb24+PC9mZC1tZW51LWFkZG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+e3sgKCdTb3J0JyB8IGJiYlRyYW5zbGF0ZSkgKyAnICcgfX0ge3sgJ0Rlc2NlbmRpbmcnIHwgYmJiVHJhbnNsYXRlIH19PC9zcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGZkLWxpc3QtaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBmZC1saXN0LWxpbmsgKGNsaWNrKT1cImZpdFRvQ29udGVudC5lbWl0KGNvbHVtbilcIiBib2R5Q2xpY2s+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1tZW51LWFkZG9uIHBvc2l0aW9uPVwiYmVmb3JlXCIgZmQtbGlzdC1pY29uPjwvZmQtbWVudS1hZGRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT57eyAoJ0ZpdCBDb2x1bW4gVG8gQ29udGVudCcgfCBiYmJUcmFuc2xhdGUpICsgJyAnIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgZmQtbGlzdC1pdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGZkLWxpc3QtbGluayAoY2xpY2spPVwiZml0VG9Db250YWluZXIuZW1pdCgpXCIgYm9keUNsaWNrPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtbWVudS1hZGRvbiBwb3NpdGlvbj1cImJlZm9yZVwiIGZkLWxpc3QtaWNvbj48L2ZkLW1lbnUtYWRkb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGU+e3sgKCdBbGwgQ29sdW1ucyBJbiBQYWdlJyB8IGJiYlRyYW5zbGF0ZSkgKyAnICcgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBmZC1saXN0LWl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgZmQtbGlzdC1saW5rIChjbGljayk9XCJmaXRUb0NvbHVtbi5lbWl0KClcIiBib2R5Q2xpY2s+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1tZW51LWFkZG9uIHBvc2l0aW9uPVwiYmVmb3JlXCIgZmQtbGlzdC1pY29uPjwvZmQtbWVudS1hZGRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT57eyAoJ0ZyZWUgQ29sdW1ucyBTaXplJyB8IGJiYlRyYW5zbGF0ZSkgKyAnICcgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBmZC1saXN0LWl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgZmQtbGlzdC1saW5rIChjbGljayk9XCJvblJlc2V0Q29sdW1uc1NldHRpbmdzKClcIiBib2R5Q2xpY2s+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1tZW51LWFkZG9uIHBvc2l0aW9uPVwiYmVmb3JlXCIgZ2x5cGg9XCJyZXNldFwiIGZkLWxpc3QtaWNvbj48L2ZkLW1lbnUtYWRkb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGU+e3sgJ0dyaWRTZXR0aW5nQmFzZScgfCBiYmJUcmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGxpIGZkLWxpc3QtaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgZmQtbGlzdC1saW5rIChjbGljayk9XCJvbkZpbHRlcihjb2x1bW4sIG1lbnUpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLW1lbnUtYWRkb24gcG9zaXRpb249XCJiZWZvcmVcIiBnbHlwaD1cImZpbHRlclwiPjwvZmQtbWVudS1hZGRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlPnt7ICdGaWx0ZXInIHwgYmJiVHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPiAtLT5cbiAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICA8L2ZkLXBvcG92ZXItYm9keT5cbiAgICAgICAgICAgIDwvZmQtcG9wb3Zlcj5cbiAgICAgICAgICAgIH0gQGVsc2V7XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGVhZGVyVmFsdWU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBjb2x1bW4gfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L3RoPlxuICAgICAgICB9IH0gQGlmIChjb250ZXh0TWVudUl0ZW1zICYmIGNvbnRleHRNZW51SXRlbXMubGVuZ3RoID4gMCAmJiAhaW5saW5lRWRpdE1vZGUpIHtcbiAgICAgICAgPHRoXG4gICAgICAgICAgICBjbGFzcz1cImNvbC1oZWFkZXIgY29sLWNvbnRleHQtbWVudVwiXG4gICAgICAgICAgICBmZC10YWJsZS1jZWxsXG4gICAgICAgICAgICBbZml0Q29udGVudF09XCJkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudVwiXG4gICAgICAgICAgICBbc3R5bGUud2lkdGgucHhdPVwiY29udGV4dE1lbnVXaWR0aFwiXG4gICAgICAgID48L3RoPlxuICAgICAgICB9IEBpZiAoc2hvd0RldGFpbHNJblJvdyAmJiAhaW5saW5lRWRpdE1vZGUpIHtcbiAgICAgICAgPHRoIGNsYXNzPVwiY29sLWhlYWRlciBjb2wtZGV0YWlsc1wiIFtzdHlsZS53aWR0aF09XCJkZXZpY2VTaXplID09PSAncycgPyAnYXV0bycgOiAnMTIwcHgnXCIgZmQtdGFibGUtY2VsbD48L3RoPlxuICAgICAgICB9IEBpZiAoc2hvd1ZpZXdCdXR0b24pIHtcbiAgICAgICAgPHRoIGNsYXNzPVwiY29sLWhlYWRlciBjb2wtdmlld1wiIFtzdHlsZS53aWR0aC5weF09XCIyNi41ICogKGFjdGlvbkxpc3Q/Lmxlbmd0aCA/PyAwKSArIDhcIiBmZC10YWJsZS1jZWxsPjwvdGg+XG4gICAgICAgIH0gfVxuICAgIDwvdHI+XG48L3RoZWFkPlxuPG5nLXRlbXBsYXRlICNoZWFkZXJWYWx1ZSBsZXQtY29sdW1uPlxuICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4XCI+XG4gICAgICAgIDwhLS0gRmllbGRUeXBlSWQgMzggbWVhbnMgaXQgaXMgYXV0byByb3cgbnVtYmVyIGZpZWxkLS0+XG4gICAgICAgIEBpZiAoIChjb2x1bW4uRXh0cmE/Lkljb25EaXNwbGF5VHlwZUVudW0gPT09ICdJbWFnZScgfHwgY29sdW1uLkZpZWxkVHlwZUlkID09PSA0MikgJiYgY29sdW1uLkljb24pIHtcbiAgICAgICAgPGltZyBbc3JjXT1cImNvbHVtbi5JY29uXCIgLz5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgIHt7IGNvbHVtbi5DYXB0aW9uIHwgYmJiVHJhbnNsYXRlIH19XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=