barsa-sap-ui 2.0.135 → 2.1.2

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 (244) hide show
  1. package/fesm2022/barsa-sap-ui.mjs +984 -957
  2. package/fesm2022/barsa-sap-ui.mjs.map +1 -1
  3. package/lib/barsa-sap-ui.module.d.ts +5 -4
  4. package/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.d.ts +3 -3
  5. package/lib/ly-tab-container/ly-tab-container.component.d.ts +2 -4
  6. package/lib/ly-tab-page/ly-tab-page.component.d.ts +2 -2
  7. package/lib/report-view-renderer.directive.d.ts +1 -1
  8. package/lib/ui-map/ui-map.component.d.ts +2 -0
  9. package/package.json +3 -5
  10. package/esm2022/barsa-sap-ui.mjs +0 -5
  11. package/esm2022/lib/apply-conditional-formmatings.directive.mjs +0 -89
  12. package/esm2022/lib/avatar-size.pipe.mjs +0 -40
  13. package/esm2022/lib/barsa-answer-card/barsa-answer-card.component.mjs +0 -41
  14. package/esm2022/lib/barsa-asp-viewer/barsa-asp-viewer.component.mjs +0 -145
  15. package/esm2022/lib/barsa-bar-panel/barsa-bar-panel.component.mjs +0 -23
  16. package/esm2022/lib/barsa-base-panel/barsa-base-layout-panel.component.mjs +0 -29
  17. package/esm2022/lib/barsa-breadcrumbs/barsa-breadcrumbs.component.mjs +0 -24
  18. package/esm2022/lib/barsa-card-layout-panel/barsa-card-layout-panel.component.mjs +0 -24
  19. package/esm2022/lib/barsa-card-row-payam/barsa-card-row-payam.component.mjs +0 -30
  20. package/esm2022/lib/barsa-cartable-form/barsa-cartable-form.component.mjs +0 -41
  21. package/esm2022/lib/barsa-cartable-template/barsa-cartable-template.component.mjs +0 -24
  22. package/esm2022/lib/barsa-chat/barsa-chat.component.mjs +0 -242
  23. package/esm2022/lib/barsa-chat/chat.model.mjs +0 -8
  24. package/esm2022/lib/barsa-chat-content/barsa-chat-content.component.mjs +0 -13
  25. package/esm2022/lib/barsa-chat-content-toolbar/barsa-chat-content-toolbar.component.mjs +0 -22
  26. package/esm2022/lib/barsa-chat-list/barsa-chat-list.component.mjs +0 -66
  27. package/esm2022/lib/barsa-chat-message/barsa-chat-message.component.mjs +0 -78
  28. package/esm2022/lib/barsa-chat-thread/barsa-chat-thread.component.mjs +0 -22
  29. package/esm2022/lib/barsa-chat-threads-list/barsa-chat-threads-list.component.mjs +0 -13
  30. package/esm2022/lib/barsa-chat-threads-list-toolbar/barsa-chat-threads-list-toolbar.component.mjs +0 -15
  31. package/esm2022/lib/barsa-chip/barsa-chip.component.mjs +0 -72
  32. package/esm2022/lib/barsa-column-indicator/barsa-column-indicator.component.mjs +0 -23
  33. package/esm2022/lib/barsa-column-rownumber/barsa-column-rownumber.component.mjs +0 -14
  34. package/esm2022/lib/barsa-custom-inline-edit/barsa-custom-inline-edit.component.mjs +0 -14
  35. package/esm2022/lib/barsa-custom-inline-edit-row/barsa-custom-inline-edit-row.component.mjs +0 -26
  36. package/esm2022/lib/barsa-date-time-picker/barsa-date-time-picker.component.mjs +0 -71
  37. package/esm2022/lib/barsa-dynamic-field/barsa-dynamic-field.component.mjs +0 -40
  38. package/esm2022/lib/barsa-enum-menu-button/barsa-enum-menu-button.component.mjs +0 -61
  39. package/esm2022/lib/barsa-field-key-value/barsa-field-key-value.component.mjs +0 -45
  40. package/esm2022/lib/barsa-form-side-content/barsa-form-side-content.component.mjs +0 -58
  41. package/esm2022/lib/barsa-grid-layout-panel/barsa-grid-layout-panel.component.mjs +0 -27
  42. package/esm2022/lib/barsa-group-cartable/barsa-cartable-group.component.mjs +0 -94
  43. package/esm2022/lib/barsa-horizontal-flex-panel/barsa-horizontal-flex-panel.component.mjs +0 -22
  44. package/esm2022/lib/barsa-linkable-items-panel/barsa-linkable-items-panel.component.mjs +0 -37
  45. package/esm2022/lib/barsa-list-file-linear/barsa-list-file-linear.component.mjs +0 -41
  46. package/esm2022/lib/barsa-list-file-linear-gmail/barsa-list-file-linear-gmail.component.mjs +0 -29
  47. package/esm2022/lib/barsa-list-layout-panel/barsa-list-layout-panel.component.mjs +0 -23
  48. package/esm2022/lib/barsa-modal/barsa-modal.component.mjs +0 -43
  49. package/esm2022/lib/barsa-monaco-editor/barsa-monaco-editor.component.mjs +0 -83
  50. package/esm2022/lib/barsa-network-offline/barsa-network-offline.component.mjs +0 -57
  51. package/esm2022/lib/barsa-pishnamayesh-payam/barsa-pishnamayesh-payam.component.mjs +0 -159
  52. package/esm2022/lib/barsa-question-answer-comments-section/barsa-question-answer-comments-section.component.mjs +0 -17
  53. package/esm2022/lib/barsa-question-answer-content-actions-section/barsa-question-answer-content-actions-section.component.mjs +0 -30
  54. package/esm2022/lib/barsa-question-answer-creator-time-section/barsa-question-answer-creator-time-section.component.mjs +0 -14
  55. package/esm2022/lib/barsa-question-answer-form/barsa-question-answer-form.component.mjs +0 -34
  56. package/esm2022/lib/barsa-question-answer-form-add-comment/barsa-question-answer-form-add-comment.component.mjs +0 -46
  57. package/esm2022/lib/barsa-question-answer-vote-section/barsa-question-answer-vote-section.component.mjs +0 -79
  58. package/esm2022/lib/barsa-question-post/barsa-question-post.component.mjs +0 -30
  59. package/esm2022/lib/barsa-report-card-flex-view/barsa-report-card-flex-view.component.mjs +0 -31
  60. package/esm2022/lib/barsa-report-checkbox-switch-button/barsa-report-checkbox-switch-button.component.mjs +0 -28
  61. package/esm2022/lib/barsa-report-one-of-list/barsa-report-one-of-list.component.mjs +0 -102
  62. package/esm2022/lib/barsa-row-inline-actionlist/barsa-row-inline-actionlist.component.mjs +0 -26
  63. package/esm2022/lib/barsa-sap-ui-routing.module.mjs +0 -18
  64. package/esm2022/lib/barsa-sap-ui.module.mjs +0 -370
  65. package/esm2022/lib/barsa-search-form/barsa-search-form.component.mjs +0 -29
  66. package/esm2022/lib/barsa-simple-form/barsa-simple-form.component.mjs +0 -170
  67. package/esm2022/lib/barsa-tab-route-manager/barsa-tab-route-manager.component.mjs +0 -18
  68. package/esm2022/lib/barsa-table-column/barsa-table-column.component.mjs +0 -29
  69. package/esm2022/lib/barsa-table-header/barsa-table-header.component.mjs +0 -222
  70. package/esm2022/lib/barsa-table-row/barsa-table-row.component.mjs +0 -87
  71. package/esm2022/lib/barsa-tag-categories/barsa-tag-categories.component.mjs +0 -60
  72. package/esm2022/lib/barsa-tag-chip/barsa-tag-chip.component.mjs +0 -26
  73. package/esm2022/lib/barsa-tags-category-row/barsa-tags-category-row.component.mjs +0 -23
  74. package/esm2022/lib/barsa-text-ellipsis/barsa-text-ellipsis.component.mjs +0 -37
  75. package/esm2022/lib/barsa-tinyemce/barsa-tinyemce.component.mjs +0 -418
  76. package/esm2022/lib/barsa-toolbaritem-search/barsa-toolbaritem-search.component.mjs +0 -36
  77. package/esm2022/lib/barsa-tree-item/barsa-tree-item.component.mjs +0 -153
  78. package/esm2022/lib/barsa-tree-item/node-has-one-depth-level.pipe.mjs +0 -19
  79. package/esm2022/lib/barsa-ulv-main/barsa-ulv-main.component.mjs +0 -216
  80. package/esm2022/lib/blob-viewer/blob-viewer.component.mjs +0 -74
  81. package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +0 -50
  82. package/esm2022/lib/captcha-field/captcha-field.component.mjs +0 -28
  83. package/esm2022/lib/card-item/card-item.component.mjs +0 -64
  84. package/esm2022/lib/card-view-content/card-view-content.component.mjs +0 -46
  85. package/esm2022/lib/col-renderer.directive.mjs +0 -46
  86. package/esm2022/lib/column-matrix-renderer/column-matrix-renderer.component.mjs +0 -56
  87. package/esm2022/lib/column-matrix-renderer/matrix-value.pipe.mjs +0 -60
  88. package/esm2022/lib/column-renderer/column-renderer.component.mjs +0 -88
  89. package/esm2022/lib/constants.mjs +0 -425
  90. package/esm2022/lib/custom-date-time/custom-date-time.component.mjs +0 -41
  91. package/esm2022/lib/device-info-field-base.mjs +0 -23
  92. package/esm2022/lib/dialog-handler.directive.mjs +0 -28
  93. package/esm2022/lib/download-files.directive.mjs +0 -33
  94. package/esm2022/lib/dynamic-page-size.pipe.mjs +0 -26
  95. package/esm2022/lib/file-in-dialog/file-in-dialog.component.mjs +0 -44
  96. package/esm2022/lib/file-viewer/file-viewer.component.mjs +0 -47
  97. package/esm2022/lib/file-viewer-content/file-viewer-content.component.mjs +0 -71
  98. package/esm2022/lib/file-viewer-popover/file-viewer-popover.component.mjs +0 -39
  99. package/esm2022/lib/form-dialog/form-dialog.component.mjs +0 -171
  100. package/esm2022/lib/form-dialog-less/form-dialog-less.component.mjs +0 -50
  101. package/esm2022/lib/form-toolbar/form-toolbar.component.mjs +0 -62
  102. package/esm2022/lib/form-toolbar-button/form-toolbar-button.component.mjs +0 -45
  103. package/esm2022/lib/form-wizard/form-wizard.component.mjs +0 -21
  104. package/esm2022/lib/fullscreen-dialog.directive.mjs +0 -59
  105. package/esm2022/lib/fullscreen-files.directive.mjs +0 -42
  106. package/esm2022/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.mjs +0 -215
  107. package/esm2022/lib/gantt-dhtml-chart-view/gantt-dhtml-chart-view.component.mjs +0 -215
  108. package/esm2022/lib/global-search/global-search.component.mjs +0 -27
  109. package/esm2022/lib/global-search-module/global-search-module.component.mjs +0 -29
  110. package/esm2022/lib/global-search-panel/global-search-panel.component.mjs +0 -25
  111. package/esm2022/lib/header-avatar/header-avatar.component.mjs +0 -18
  112. package/esm2022/lib/htree-create-new/htree-create-new.component.mjs +0 -48
  113. package/esm2022/lib/hyperlink/hyperlink.component.mjs +0 -23
  114. package/esm2022/lib/index.mjs +0 -543
  115. package/esm2022/lib/inline-save-and-cancel/inline-save-and-cancel.component.mjs +0 -32
  116. package/esm2022/lib/layout-actions/layout-actions.component.mjs +0 -70
  117. package/esm2022/lib/layout-control/layout-control.component.mjs +0 -302
  118. package/esm2022/lib/layout-wizard/layout-wizard.component.mjs +0 -183
  119. package/esm2022/lib/list-item/list-item.component.mjs +0 -34
  120. package/esm2022/lib/ly-empty-space/ly-empty-space.component.mjs +0 -42
  121. package/esm2022/lib/ly-horizontal-layout/ly-horizontal-layout.component.mjs +0 -82
  122. package/esm2022/lib/ly-label/ly-label.component.mjs +0 -37
  123. package/esm2022/lib/ly-layout-container/ly-layout-container.component.mjs +0 -83
  124. package/esm2022/lib/ly-layout-container-of-root/ly-layout-container-of-root.component.mjs +0 -17
  125. package/esm2022/lib/ly-layout-field-label/ly-layout-field-label.component.mjs +0 -24
  126. package/esm2022/lib/ly-layout-panel/ly-layout-panel.component.mjs +0 -83
  127. package/esm2022/lib/ly-line/ly-line.component.mjs +0 -56
  128. package/esm2022/lib/ly-simple-label/ly-simple-label.component.mjs +0 -22
  129. package/esm2022/lib/ly-tab-container/ly-tab-container.component.mjs +0 -52
  130. package/esm2022/lib/ly-tab-page/ly-tab-page.component.mjs +0 -44
  131. package/esm2022/lib/ly-vertical-layout/ly-vertical-layout.component.mjs +0 -51
  132. package/esm2022/lib/manage-filters-report/manage-filters-report.component.mjs +0 -43
  133. package/esm2022/lib/mask/mask.component.mjs +0 -22
  134. package/esm2022/lib/message-strip/message-strip.component.mjs +0 -28
  135. package/esm2022/lib/models/grid-data-provider.mjs +0 -114
  136. package/esm2022/lib/models/grid-view.mjs +0 -2
  137. package/esm2022/lib/models/index.mjs +0 -2
  138. package/esm2022/lib/no-data/no-data.component.mjs +0 -31
  139. package/esm2022/lib/notification-item/notification-item.component.mjs +0 -57
  140. package/esm2022/lib/notification-popup.service.mjs +0 -92
  141. package/esm2022/lib/object-status-icon.pipe.mjs +0 -26
  142. package/esm2022/lib/progress-indicator/progress-indicator.component.mjs +0 -18
  143. package/esm2022/lib/report-navigator/report-navigator.component.mjs +0 -68
  144. package/esm2022/lib/report-new-top-form/report-new-top-form.component.mjs +0 -60
  145. package/esm2022/lib/report-search-fields-hidden-settings/report-search-fields-hidden-settings.component.mjs +0 -35
  146. package/esm2022/lib/report-search-fields-manage/report-search-fields-manage.component.mjs +0 -97
  147. package/esm2022/lib/report-search-panel-save/report-search-panel-save.component.mjs +0 -88
  148. package/esm2022/lib/report-tree-base.mjs +0 -386
  149. package/esm2022/lib/report-view-renderer.directive.mjs +0 -385
  150. package/esm2022/lib/responsive-toolbar/responsive-toolbar.component.mjs +0 -50
  151. package/esm2022/lib/responsive-toolbar-renderer/responsive-toolbar-renderer.component.mjs +0 -84
  152. package/esm2022/lib/rich-text-static/rich-text-static.component.mjs +0 -72
  153. package/esm2022/lib/sap-font-class.pipe.mjs +0 -29
  154. package/esm2022/lib/sap-font.pipe.mjs +0 -29
  155. package/esm2022/lib/sap-size.pipe.mjs +0 -27
  156. package/esm2022/lib/sap-ui-report-base.component.mjs +0 -805
  157. package/esm2022/lib/search-panel/search-panel.component.mjs +0 -63
  158. package/esm2022/lib/static-text/static-text.component.mjs +0 -15
  159. package/esm2022/lib/table-th.directive.mjs +0 -86
  160. package/esm2022/lib/title/title.component.mjs +0 -15
  161. package/esm2022/lib/ui-asp-report-viewer/ui-asp-report-viewer.component.mjs +0 -34
  162. package/esm2022/lib/ui-bpmn-viewer/ui-bpmn-viewer.component.mjs +0 -33
  163. package/esm2022/lib/ui-button/ui-button.component.mjs +0 -32
  164. package/esm2022/lib/ui-calendar/ui-calendar.component.mjs +0 -53
  165. package/esm2022/lib/ui-card-view/ui-card-view.component.mjs +0 -57
  166. package/esm2022/lib/ui-card-view-horizontal-group/ui-card-view-horizontal-group.component.mjs +0 -42
  167. package/esm2022/lib/ui-check-box/ui-check-box.component.mjs +0 -39
  168. package/esm2022/lib/ui-color-ui/ui-color-ui.component.mjs +0 -50
  169. package/esm2022/lib/ui-container-with-button/ui-container-with-button.component.mjs +0 -38
  170. package/esm2022/lib/ui-date-range-ex/ui-date-range-ex.component.mjs +0 -191
  171. package/esm2022/lib/ui-date-time/ui-date-time.component.mjs +0 -150
  172. package/esm2022/lib/ui-editable-grid/ui-editable-grid.component.mjs +0 -110
  173. package/esm2022/lib/ui-exception-form/ui-exception-form.component.mjs +0 -53
  174. package/esm2022/lib/ui-file-linear-list-box/ui-file-linear-list-box.component.mjs +0 -121
  175. package/esm2022/lib/ui-form-panel/ui-form-panel.component.mjs +0 -100
  176. package/esm2022/lib/ui-gantt-chart/ui-gantt-chart.component.mjs +0 -32
  177. package/esm2022/lib/ui-graph/ui-graph.component.mjs +0 -17
  178. package/esm2022/lib/ui-grid/ui-grid.component.mjs +0 -25
  179. package/esm2022/lib/ui-grid-columns/ui-grid-columns.component.mjs +0 -43
  180. package/esm2022/lib/ui-grid-filter-item/ui-grid-filter-item.component.mjs +0 -66
  181. package/esm2022/lib/ui-grid-filter-settings/ui-grid-filter-settings.component.mjs +0 -75
  182. package/esm2022/lib/ui-grid-sort-item/ui-grid-sort-item.component.mjs +0 -58
  183. package/esm2022/lib/ui-grid-sort-setting/ui-grid-sort-setting.component.mjs +0 -123
  184. package/esm2022/lib/ui-html-viewer/ui-html-viewer.component.mjs +0 -16
  185. package/esm2022/lib/ui-info-bar-panel/ui-info-bar-panel.component.mjs +0 -11
  186. package/esm2022/lib/ui-label/ui-label.component.mjs +0 -12
  187. package/esm2022/lib/ui-linear-list-container-with-button/ui-linear-list-container-with-button.component.mjs +0 -379
  188. package/esm2022/lib/ui-list-view/ui-list-view.component.mjs +0 -84
  189. package/esm2022/lib/ui-map/ui-map.component.mjs +0 -58
  190. package/esm2022/lib/ui-matrix-view/ui-matrix-view.component.mjs +0 -124
  191. package/esm2022/lib/ui-mo-info-combo-viewer/ui-mo-info-combo-viewer.component.mjs +0 -19
  192. package/esm2022/lib/ui-mo-info-general-object-ui/ui-mo-info-general-object-ui.component.mjs +0 -14
  193. package/esm2022/lib/ui-mo-info-sub-form-ui/ui-mo-info-sub-form-ui.component.mjs +0 -55
  194. package/esm2022/lib/ui-mo-info-ulv-combo/ui-mo-info-ulv-combo.component.mjs +0 -429
  195. package/esm2022/lib/ui-monaco-editor/ui-monaco-editor.component.mjs +0 -28
  196. package/esm2022/lib/ui-multi-select-card/ui-multi-select-card.component.mjs +0 -37
  197. package/esm2022/lib/ui-multi-select-checkbox/ui-multi-select-checkbox.component.mjs +0 -59
  198. package/esm2022/lib/ui-multi-select-combo/ui-multi-select-combo.component.mjs +0 -93
  199. package/esm2022/lib/ui-multi-select-radio/ui-multi-select-radio.component.mjs +0 -36
  200. package/esm2022/lib/ui-multi-select-slider/ui-multi-select-slider.component.mjs +0 -56
  201. package/esm2022/lib/ui-multi-select-smile/ui-multi-select-smile.component.mjs +0 -28
  202. package/esm2022/lib/ui-num-decimal-ui/ui-num-decimal-ui.component.mjs +0 -33
  203. package/esm2022/lib/ui-num-int-slider/ui-num-int-slider.component.mjs +0 -27
  204. package/esm2022/lib/ui-num-int-ui/ui-num-int-ui.component.mjs +0 -21
  205. package/esm2022/lib/ui-pdf-viewer/ui-pdf-viewer.component.mjs +0 -268
  206. package/esm2022/lib/ui-picture-file/ui-picture-file.component.mjs +0 -101
  207. package/esm2022/lib/ui-pictures-info/ui-pictures-info.component.mjs +0 -261
  208. package/esm2022/lib/ui-radio-group/ui-radio-group.component.mjs +0 -48
  209. package/esm2022/lib/ui-read-only-field/ui-read-only-field.component.mjs +0 -36
  210. package/esm2022/lib/ui-report-container/ui-report-container.component.mjs +0 -46
  211. package/esm2022/lib/ui-search-command-info-ui/ui-search-command-info-ui.component.mjs +0 -24
  212. package/esm2022/lib/ui-simple-combo/ui-simple-combo.component.mjs +0 -55
  213. package/esm2022/lib/ui-single-picture/ui-single-picture.component.mjs +0 -36
  214. package/esm2022/lib/ui-switch-button/ui-switch-button.component.mjs +0 -20
  215. package/esm2022/lib/ui-table-view/ui-table-view.component.mjs +0 -289
  216. package/esm2022/lib/ui-text-area/ui-text-area.component.mjs +0 -49
  217. package/esm2022/lib/ui-text-field/ui-text-field.component.mjs +0 -52
  218. package/esm2022/lib/ui-text-field-auto-complete/ui-text-field-auto-complete.component.mjs +0 -48
  219. package/esm2022/lib/ui-time-span/ui-time-span.component.mjs +0 -24
  220. package/esm2022/lib/ui-tinymce/ui-tinymce.component.mjs +0 -53
  221. package/esm2022/lib/ui-tree/ui-tree.component.mjs +0 -114
  222. package/esm2022/lib/ui-tree-view/ui-tree-view.component.mjs +0 -100
  223. package/esm2022/lib/ui-ulv-form-multi-select-ui/ui-ulv-form-multi-select-ui.component.mjs +0 -23
  224. package/esm2022/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.mjs +0 -306
  225. package/esm2022/lib/ui-workflow-panel-ui/ui-workflow-panel-ui.component.mjs +0 -25
  226. package/esm2022/lib/ul-loading-mask-ui/ul-loading-mask-ui.component.mjs +0 -93
  227. package/esm2022/lib/ul-msg-box-adapter/ul-msg-box-adapter.component.mjs +0 -119
  228. package/esm2022/lib/ul-notify-popup/ul-notify-popup.component.mjs +0 -32
  229. package/esm2022/lib/ul-toast-adapter/ul-toast-adapter.component.mjs +0 -48
  230. package/esm2022/lib/ulv-column-settings/ulv-column-settings.component.mjs +0 -53
  231. package/esm2022/lib/ulv-context-menu/ulv-context-menu.component.mjs +0 -114
  232. package/esm2022/lib/ulv-filter-settings/ulv-filter-settings.component.mjs +0 -43
  233. package/esm2022/lib/ulv-form-multi-select/ulv-form-multi-select.component.mjs +0 -196
  234. package/esm2022/lib/ulv-groupby-settings/ulv-groupby-settings.component.mjs +0 -44
  235. package/esm2022/lib/ulv-paging/ulv-paging.component.mjs +0 -84
  236. package/esm2022/lib/ulv-selection/ulv-selection.component.mjs +0 -65
  237. package/esm2022/lib/ulv-settings/ulv-settings.component.mjs +0 -116
  238. package/esm2022/lib/ulv-sort-settings/ulv-sort-settings.component.mjs +0 -54
  239. package/esm2022/lib/ulv-toolbar/ulv-toolbar.component.mjs +0 -174
  240. package/esm2022/lib/upload-file-status.pipe.mjs +0 -28
  241. package/esm2022/lib/util-chat-time-badge.pipe.mjs +0 -18
  242. package/esm2022/lib/util-date-to-hh-mm.pipe.mjs +0 -23
  243. package/esm2022/lib/wizard-layout.directive.mjs +0 -103
  244. package/esm2022/public-api.mjs +0 -233
@@ -1,97 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, ViewChildren } from '@angular/core';
2
- import { Subject } from 'rxjs';
3
- import { exhaustMap, finalize, map, takeUntil, tap } from 'rxjs/operators';
4
- import { RadioButtonComponent } from '@fundamental-ngx/core';
5
- import { BaseComponent, BarsaApi } from 'barsa-novin-ray-core';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@fundamental-ngx/core";
8
- import * as i2 from "@angular/forms";
9
- import * as i3 from "@fundamental-ngx/core/bar";
10
- import * as i4 from "@fundamental-ngx/core/button";
11
- import * as i5 from "@fundamental-ngx/core/checkbox";
12
- import * as i6 from "@fundamental-ngx/core/form";
13
- import * as i7 from "@fundamental-ngx/core/dialog";
14
- import * as i8 from "@fundamental-ngx/cdk/utils";
15
- import * as i9 from "@fundamental-ngx/core/title";
16
- import * as i10 from "@fundamental-ngx/core/radio";
17
- import * as i11 from "@fundamental-ngx/core/table";
18
- import * as i12 from "../mask/mask.component";
19
- import * as i13 from "barsa-novin-ray-core";
20
- export class ReportSearchFieldsManageComponent extends BaseComponent {
21
- constructor(_dialogRef) {
22
- super();
23
- this._dialogRef = _dialogRef;
24
- this._saveingSource = new Subject();
25
- this.allSearchPanelSettings = JSON.parse(JSON.stringify(this._dialogRef.data.allSearchPanelSettings));
26
- }
27
- ngOnInit() {
28
- super.ngOnInit();
29
- this._saveingSource
30
- .asObservable()
31
- .pipe(takeUntil(this._onDestroy$), tap(() => (this.saveing = true)), map((settings) => {
32
- const list = [];
33
- settings.forEach((setting) => {
34
- list.push(new BarsaApi.Common.MetaObjectWeb(setting));
35
- });
36
- return list;
37
- }), exhaustMap((allSearchPanelSettings) => {
38
- if (allSearchPanelSettings.length === 0) {
39
- return Promise.resolve(allSearchPanelSettings);
40
- }
41
- return new Promise((resolve) => {
42
- BarsaApi.Bw.RunBlMethodAsync({
43
- Parameters: [allSearchPanelSettings],
44
- Method: 'SaveArraySearchPanelSettings',
45
- SuccessFn: () => {
46
- resolve(allSearchPanelSettings);
47
- },
48
- FailFn: () => {
49
- resolve([]);
50
- }
51
- });
52
- });
53
- }), tap((allSearchPanelSettings) => this._dialogRef.close(allSearchPanelSettings.length > 0 ? this.allSearchPanelSettings : [])), finalize(() => (this.saveing = false)))
54
- .subscribe();
55
- }
56
- onCancelSettings() {
57
- this._dialogRef.close();
58
- }
59
- onOkClick() {
60
- const modifiedSettings = [];
61
- const allSettings = this._dialogRef.data.allSearchPanelSettings;
62
- this.allSearchPanelSettings.forEach((setting) => {
63
- const s = allSettings.find((c) => setting.Id === c.Id);
64
- if (s !== setting && setting.Id) {
65
- const isModified = Object.keys(s).some((c) => s[c] !== setting[c]) || setting.IsDeleted;
66
- if (isModified) {
67
- modifiedSettings.push(setting);
68
- }
69
- }
70
- });
71
- if (modifiedSettings.length === 0) {
72
- this._dialogRef.dismiss();
73
- return;
74
- }
75
- this._saveingSource.next(modifiedSettings);
76
- }
77
- onDefault(row) {
78
- this.allSearchPanelSettings.find((c) => (c.IsDefault = false));
79
- this.radioButtonsComponent.toArray().forEach((c) => {
80
- c.selectedValue = row.Caption;
81
- });
82
- row.IsDefault = true;
83
- }
84
- onDelete(row) {
85
- row.IsDeleted = true;
86
- }
87
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: ReportSearchFieldsManageComponent, deps: [{ token: i1.DialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
88
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: ReportSearchFieldsManageComponent, selector: "bsu-report-search-fields-manage", viewQueries: [{ propertyName: "radioButtonsComponent", predicate: RadioButtonComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<fd-dialog>\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n <fd-bar-element>\n <h4 fd-title [headerSize]=\"4\">\n {{ 'ManageSearchPanel' | bbbTranslate }}\n </h4>\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n <fd-bar-element>\n <button fd-button [label]=\"'Reset' | bbbTranslate\" [fdType]=\"'transparent'\"></button>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n <fd-dialog-body class=\"setting-wrapper\">\n @if (saveing) {\n <bsu-mask></bsu-mask>\n }\n <table fd-table [class.saveing-form]=\"saveing\">\n <thead fd-table-header>\n <tr fd-table-row>\n <th fd-table-cell>{{ 'View' | bbbTranslate }}</th>\n <th fd-table-cell>{{ 'Share' | bbbTranslate }}</th>\n <th fd-table-cell>{{ 'Default' | bbbTranslate }}</th>\n <th fd-table-cell>{{ 'ApplyAutomatically' | bbbTranslate }}</th>\n <th fd-table-cell></th>\n </tr>\n </thead>\n\n <tbody fd-table-body [noBorderX]=\"true\">\n @for (row of allSearchPanelSettings; track row; let i = $index) { @if (!row.IsDeleted) {\n <tr fd-table-row>\n <td fd-table-cell>\n @if (row.IsPrimary) {\n <strong>{{ row.Title }}</strong>\n } @if (!row.IsPrimary) {\n <input fd-form-control [(ngModel)]=\"row.Title\" />\n }\n </td>\n <td fd-table-cell>\n {{ row.IsPublic ? ('Public' | bbbTranslate) : '' }}\n </td>\n <td fd-table-cell>\n <fd-radio-button\n [name]=\"'radio' + i\"\n [value]=\"row.Title\"\n [selectedValue]=\"row.IsDefault ? row.Title : null\"\n (click)=\"onDefault(row)\"\n >\n </fd-radio-button>\n </td>\n <td fd-table-cell>\n @if (!row.IsPrimary) {\n <fd-checkbox [(ngModel)]=\"row.ApplyAutomatically\"></fd-checkbox>\n }\n </td>\n <td fd-table-cell [fitContent]=\"true\">\n @if (!row.IsPrimary) {\n <button fd-button fdType=\"transparent\" glyph=\"decline\" (click)=\"onDelete(row)\"></button>\n }\n </td>\n </tr>\n } }\n </tbody>\n </table>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-dialog-footer-button>\n <button\n fd-button\n fdType=\"emphasized\"\n (click)=\"onOkClick()\"\n [label]=\"'OK' | bbbTranslate\"\n [disabled]=\"saveing\"\n ></button>\n </fd-dialog-footer-button>\n <fd-dialog-footer-button>\n <button\n fd-button\n (click)=\"onCancelSettings()\"\n [label]=\"'Cancel' | bbbTranslate\"\n [disabled]=\"saveing\"\n ></button>\n </fd-dialog-footer-button>\n </fd-dialog-footer>\n</fd-dialog>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: 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.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: i3.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "directive", type: i3.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i5.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: i6.FormControlComponent, selector: "input[fd-form-control], textarea[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "component", type: i7.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i7.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i7.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i7.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "directive", type: i8.TemplateDirective, selector: "[fdkTemplate]", inputs: ["fdkTemplate"] }, { kind: "component", type: i9.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i10.RadioButtonComponent, selector: "fd-radio-button", inputs: ["ariaLabel", "ariaLabelledBy", "ariaDescribedBy", "title", "tabIndex", "state", "disabled", "selectedValue", "name", "id", "value", "required", "standalone"] }, { kind: "component", type: i11.TableComponent, selector: "table[fd-table]", inputs: ["noBorderX", "noBorderY", "noOuterBorder", "topBorder", "popIn", "responsive", "keys", "allCellsFocusable"], exportAs: ["fd-table"] }, { kind: "directive", type: i11.TableHeaderDirective, selector: "[fdTableHeader], [fd-table-header]", inputs: ["noBorderX", "noBorderY", "nonInteractive"] }, { kind: "directive", type: i11.TableBodyDirective, selector: "[fdTableBody], [fd-table-body]", inputs: ["noBorderX", "noBorderY"] }, { kind: "directive", type: i11.TableRowDirective, selector: "[fdTableRow], [fd-table-row]", inputs: ["activable", "highlightActive", "hoverable", "focusable", "main", "secondary", "active"] }, { kind: "directive", type: i11.TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "hoverable", "fitContent", "noPadding", "noData", "key"] }, { kind: "component", type: i12.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "pipe", type: i13.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
89
- }
90
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: ReportSearchFieldsManageComponent, decorators: [{
91
- type: Component,
92
- args: [{ selector: 'bsu-report-search-fields-manage', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-dialog>\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n <fd-bar-element>\n <h4 fd-title [headerSize]=\"4\">\n {{ 'ManageSearchPanel' | bbbTranslate }}\n </h4>\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n <fd-bar-element>\n <button fd-button [label]=\"'Reset' | bbbTranslate\" [fdType]=\"'transparent'\"></button>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n <fd-dialog-body class=\"setting-wrapper\">\n @if (saveing) {\n <bsu-mask></bsu-mask>\n }\n <table fd-table [class.saveing-form]=\"saveing\">\n <thead fd-table-header>\n <tr fd-table-row>\n <th fd-table-cell>{{ 'View' | bbbTranslate }}</th>\n <th fd-table-cell>{{ 'Share' | bbbTranslate }}</th>\n <th fd-table-cell>{{ 'Default' | bbbTranslate }}</th>\n <th fd-table-cell>{{ 'ApplyAutomatically' | bbbTranslate }}</th>\n <th fd-table-cell></th>\n </tr>\n </thead>\n\n <tbody fd-table-body [noBorderX]=\"true\">\n @for (row of allSearchPanelSettings; track row; let i = $index) { @if (!row.IsDeleted) {\n <tr fd-table-row>\n <td fd-table-cell>\n @if (row.IsPrimary) {\n <strong>{{ row.Title }}</strong>\n } @if (!row.IsPrimary) {\n <input fd-form-control [(ngModel)]=\"row.Title\" />\n }\n </td>\n <td fd-table-cell>\n {{ row.IsPublic ? ('Public' | bbbTranslate) : '' }}\n </td>\n <td fd-table-cell>\n <fd-radio-button\n [name]=\"'radio' + i\"\n [value]=\"row.Title\"\n [selectedValue]=\"row.IsDefault ? row.Title : null\"\n (click)=\"onDefault(row)\"\n >\n </fd-radio-button>\n </td>\n <td fd-table-cell>\n @if (!row.IsPrimary) {\n <fd-checkbox [(ngModel)]=\"row.ApplyAutomatically\"></fd-checkbox>\n }\n </td>\n <td fd-table-cell [fitContent]=\"true\">\n @if (!row.IsPrimary) {\n <button fd-button fdType=\"transparent\" glyph=\"decline\" (click)=\"onDelete(row)\"></button>\n }\n </td>\n </tr>\n } }\n </tbody>\n </table>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-dialog-footer-button>\n <button\n fd-button\n fdType=\"emphasized\"\n (click)=\"onOkClick()\"\n [label]=\"'OK' | bbbTranslate\"\n [disabled]=\"saveing\"\n ></button>\n </fd-dialog-footer-button>\n <fd-dialog-footer-button>\n <button\n fd-button\n (click)=\"onCancelSettings()\"\n [label]=\"'Cancel' | bbbTranslate\"\n [disabled]=\"saveing\"\n ></button>\n </fd-dialog-footer-button>\n </fd-dialog-footer>\n</fd-dialog>\n" }]
93
- }], ctorParameters: () => [{ type: i1.DialogRef }], propDecorators: { radioButtonsComponent: [{
94
- type: ViewChildren,
95
- args: [RadioButtonComponent]
96
- }] } });
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXNlYXJjaC1maWVsZHMtbWFuYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL3JlcG9ydC1zZWFyY2gtZmllbGRzLW1hbmFnZS9yZXBvcnQtc2VhcmNoLWZpZWxkcy1tYW5hZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvcmVwb3J0LXNlYXJjaC1maWVsZHMtbWFuYWdlL3JlcG9ydC1zZWFyY2gtZmllbGRzLW1hbmFnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFxQixZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNFLE9BQU8sRUFBYSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXhFLE9BQU8sRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUF1QixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFPcEYsTUFBTSxPQUFPLGlDQUFrQyxTQUFRLGFBQWE7SUFRaEUsWUFBb0IsVUFBcUI7UUFDckMsS0FBSyxFQUFFLENBQUM7UUFEUSxlQUFVLEdBQVYsVUFBVSxDQUFXO1FBRGpDLG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQXlCLENBQUM7UUFHMUQsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENB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Q2IsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNuQyxDQUFDO1lBQ0wsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUMxQixPQUFPO1FBQ1gsQ0FBQztRQUNELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUNELFNBQVMsQ0FBQyxHQUFHO1FBQ1QsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFL0QsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQy9DLENBQUMsQ0FBQyxhQUFhLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztRQUNILEdBQUcsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxRQUFRLENBQUMsR0FBRztRQUNSLEdBQUcsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO0lBQ3pCLENBQUM7OEdBbEZRLGlDQUFpQztrR0FBakMsaUNBQWlDLGlIQUM1QixvQkFBb0IsdUVDYnRDLG1rSEEwRkE7OzJGRDlFYSxpQ0FBaUM7a0JBTjdDLFNBQVM7K0JBQ0ksaUNBQWlDLG1CQUcxQix1QkFBdUIsQ0FBQyxNQUFNOzhFQUkvQyxxQkFBcUI7c0JBRHBCLFlBQVk7dUJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25Jbml0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGV4aGF1c3RNYXAsIGZpbmFsaXplLCBtYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBEaWFsb2dSZWYsIFJhZGlvQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcclxuXHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQsIEJhcnNhQXBpLCBTZWFyY2hQYW5lbFNldHRpbmdzIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYnN1LXJlcG9ydC1zZWFyY2gtZmllbGRzLW1hbmFnZScsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vcmVwb3J0LXNlYXJjaC1maWVsZHMtbWFuYWdlLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3JlcG9ydC1zZWFyY2gtZmllbGRzLW1hbmFnZS5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFJlcG9ydFNlYXJjaEZpZWxkc01hbmFnZUNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQFZpZXdDaGlsZHJlbihSYWRpb0J1dHRvbkNvbXBvbmVudClcclxuICAgIHJhZGlvQnV0dG9uc0NvbXBvbmVudDogUXVlcnlMaXN0PFJhZGlvQnV0dG9uQ29tcG9uZW50PjtcclxuXHJcbiAgICBzYXZlaW5nOiBib29sZWFuO1xyXG4gICAgYWxsU2VhcmNoUGFuZWxTZXR0aW5nczogU2VhcmNoUGFuZWxTZXR0aW5nc1tdO1xyXG4gICAgcmVwb3J0SWQ6IHN0cmluZztcclxuICAgIHByaXZhdGUgX3NhdmVpbmdTb3VyY2UgPSBuZXcgU3ViamVjdDxTZWFyY2hQYW5lbFNldHRpbmdzW10+KCk7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9kaWFsb2dSZWY6IERpYWxvZ1JlZikge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgdGhpcy5hbGxTZWFyY2hQYW5lbFNldHRpbmdzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLl9kaWFsb2dSZWYuZGF0YS5hbGxTZWFyY2hQYW5lbFNldHRpbmdzKSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICB0aGlzLl9zYXZlaW5nU291cmNlXHJcbiAgICAgICAgICAgIC5hc09ic2VydmFibGUoKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSxcclxuICAgICAgICAgICAgICAgIHRhcCgoKSA9PiAodGhpcy5zYXZlaW5nID0gdHJ1ZSkpLFxyXG4gICAgICAgICAgICAgICAgbWFwKChzZXR0aW5nczogU2VhcmNoUGFuZWxTZXR0aW5nc1tdKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGlzdDogYW55W10gPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICBzZXR0aW5ncy5mb3JFYWNoKChzZXR0aW5nKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QucHVzaChuZXcgQmFyc2FBcGkuQ29tbW9uLk1ldGFPYmplY3RXZWIoc2V0dGluZykpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBsaXN0O1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICBleGhhdXN0TWFwKChhbGxTZWFyY2hQYW5lbFNldHRpbmdzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGFsbFNlYXJjaFBhbmVsU2V0dGluZ3MubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoYWxsU2VhcmNoUGFuZWxTZXR0aW5ncyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxTZWFyY2hQYW5lbFNldHRpbmdzW10+KChyZXNvbHZlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEJhcnNhQXBpLkJ3LlJ1bkJsTWV0aG9kQXN5bmMoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFyYW1ldGVyczogW2FsbFNlYXJjaFBhbmVsU2V0dGluZ3NdLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kOiAnU2F2ZUFycmF5U2VhcmNoUGFuZWxTZXR0aW5ncycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWNjZXNzRm46ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGFsbFNlYXJjaFBhbmVsU2V0dGluZ3MpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZhaWxGbjogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoW10pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgdGFwKChhbGxTZWFyY2hQYW5lbFNldHRpbmdzKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2RpYWxvZ1JlZi5jbG9zZShhbGxTZWFyY2hQYW5lbFNldHRpbmdzLmxlbmd0aCA+IDAgPyB0aGlzLmFsbFNlYXJjaFBhbmVsU2V0dGluZ3MgOiBbXSlcclxuICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiAodGhpcy5zYXZlaW5nID0gZmFsc2UpKVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICAgIG9uQ2FuY2VsU2V0dGluZ3MoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgICB9XHJcbiAgICBvbk9rQ2xpY2soKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgbW9kaWZpZWRTZXR0aW5nczogU2VhcmNoUGFuZWxTZXR0aW5nc1tdID0gW107XHJcbiAgICAgICAgY29uc3QgYWxsU2V0dGluZ3MgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS5hbGxTZWFyY2hQYW5lbFNldHRpbmdzO1xyXG4gICAgICAgIHRoaXMuYWxsU2VhcmNoUGFuZWxTZXR0aW5ncy5mb3JFYWNoKChzZXR0aW5nKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHMgPSBhbGxTZXR0aW5ncy5maW5kKChjKSA9PiBzZXR0aW5nLklkID09PSBjLklkKTtcclxuICAgICAgICAgICAgaWYgKHMgIT09IHNldHRpbmcgJiYgc2V0dGluZy5JZCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaXNNb2RpZmllZCA9IE9iamVjdC5rZXlzKHMpLnNvbWUoKGMpID0+IHNbY10gIT09IHNldHRpbmdbY10pIHx8IHNldHRpbmcuSXNEZWxldGVkO1xyXG4gICAgICAgICAgICAgICAgaWYgKGlzTW9kaWZpZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICBtb2RpZmllZFNldHRpbmdzLnB1c2goc2V0dGluZyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAobW9kaWZpZWRTZXR0aW5ncy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgdGhpcy5fZGlhbG9nUmVmLmRpc21pc3MoKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9zYXZlaW5nU291cmNlLm5leHQobW9kaWZpZWRTZXR0aW5ncyk7XHJcbiAgICB9XHJcbiAgICBvbkRlZmF1bHQocm93KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5hbGxTZWFyY2hQYW5lbFNldHRpbmdzLmZpbmQoKGMpID0+IChjLklzRGVmYXVsdCA9IGZhbHNlKSk7XHJcblxyXG4gICAgICAgIHRoaXMucmFkaW9CdXR0b25zQ29tcG9uZW50LnRvQXJyYXkoKS5mb3JFYWNoKChjKSA9PiB7XHJcbiAgICAgICAgICAgIGMuc2VsZWN0ZWRWYWx1ZSA9IHJvdy5DYXB0aW9uO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJvdy5Jc0RlZmF1bHQgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgb25EZWxldGUocm93KTogdm9pZCB7XHJcbiAgICAgICAgcm93LklzRGVsZXRlZCA9IHRydWU7XHJcbiAgICB9XHJcbn1cclxuIiwiPGZkLWRpYWxvZz5cbiAgICA8ZmQtZGlhbG9nLWhlYWRlcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIGZka1RlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGZkLWJhci1sZWZ0PlxuICAgICAgICAgICAgICAgIDxmZC1iYXItZWxlbWVudD5cbiAgICAgICAgICAgICAgICAgICAgPGg0IGZkLXRpdGxlIFtoZWFkZXJTaXplXT1cIjRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdNYW5hZ2VTZWFyY2hQYW5lbCcgfCBiYmJUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9oND5cbiAgICAgICAgICAgICAgICA8L2ZkLWJhci1lbGVtZW50PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGZkLWJhci1yaWdodD5cbiAgICAgICAgICAgICAgICA8ZmQtYmFyLWVsZW1lbnQ+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gZmQtYnV0dG9uIFtsYWJlbF09XCInUmVzZXQnIHwgYmJiVHJhbnNsYXRlXCIgW2ZkVHlwZV09XCIndHJhbnNwYXJlbnQnXCI+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9mZC1iYXItZWxlbWVudD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZmQtZGlhbG9nLWhlYWRlcj5cbiAgICA8ZmQtZGlhbG9nLWJvZHkgY2xhc3M9XCJzZXR0aW5nLXdyYXBwZXJcIj5cbiAgICAgICAgQGlmIChzYXZlaW5nKSB7XG4gICAgICAgIDxic3UtbWFzaz48L2JzdS1tYXNrPlxuICAgICAgICB9XG4gICAgICAgIDx0YWJsZSBmZC10YWJsZSBbY2xhc3Muc2F2ZWluZy1mb3JtXT1cInNhdmVpbmdcIj5cbiAgICAgICAgICAgIDx0aGVhZCBmZC10YWJsZS1oZWFkZXI+XG4gICAgICAgICAgICAgICAgPHRyIGZkLXRhYmxlLXJvdz5cbiAgICAgICAgICAgICAgICAgICAgPHRoIGZkLXRhYmxlLWNlbGw+e3sgJ1ZpZXcnIHwgYmJiVHJhbnNsYXRlIH19PC90aD5cbiAgICAgICAgICAgICAgICAgICAgPHRoIGZkLXRhYmxlLWNlbGw+e3sgJ1NoYXJlJyB8IGJiYlRyYW5zbGF0ZSB9fTwvdGg+XG4gICAgICAgICAgICAgICAgICAgIDx0aCBmZC10YWJsZS1jZWxsPnt7ICdEZWZhdWx0JyB8IGJiYlRyYW5zbGF0ZSB9fTwvdGg+XG4gICAgICAgICAgICAgICAgICAgIDx0aCBmZC10YWJsZS1jZWxsPnt7ICdBcHBseUF1dG9tYXRpY2FsbHknIHwgYmJiVHJhbnNsYXRlIH19PC90aD5cbiAgICAgICAgICAgICAgICAgICAgPHRoIGZkLXRhYmxlLWNlbGw+PC90aD5cbiAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgPC90aGVhZD5cblxuICAgICAgICAgICAgPHRib2R5IGZkLXRhYmxlLWJvZHkgW25vQm9yZGVyWF09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgQGZvciAocm93IG9mIGFsbFNlYXJjaFBhbmVsU2V0dGluZ3M7IHRyYWNrIHJvdzsgbGV0IGkgPSAkaW5kZXgpIHsgQGlmICghcm93LklzRGVsZXRlZCkge1xuICAgICAgICAgICAgICAgIDx0ciBmZC10YWJsZS1yb3c+XG4gICAgICAgICAgICAgICAgICAgIDx0ZCBmZC10YWJsZS1jZWxsPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChyb3cuSXNQcmltYXJ5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IHJvdy5UaXRsZSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICAgICAgfSBAaWYgKCFyb3cuSXNQcmltYXJ5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgZmQtZm9ybS1jb250cm9sIFsobmdNb2RlbCldPVwicm93LlRpdGxlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPHRkIGZkLXRhYmxlLWNlbGw+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyByb3cuSXNQdWJsaWMgPyAoJ1B1YmxpYycgfCBiYmJUcmFuc2xhdGUpIDogJycgfX1cbiAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPHRkIGZkLXRhYmxlLWNlbGw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmQtcmFkaW8tYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwiJ3JhZGlvJyArIGlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJyb3cuVGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZFZhbHVlXT1cInJvdy5Jc0RlZmF1bHQgPyByb3cuVGl0bGUgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25EZWZhdWx0KHJvdylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1yYWRpby1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDx0ZCBmZC10YWJsZS1jZWxsPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmICghcm93LklzUHJpbWFyeSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWNoZWNrYm94IFsobmdNb2RlbCldPVwicm93LkFwcGx5QXV0b21hdGljYWxseVwiPjwvZmQtY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDx0ZCBmZC10YWJsZS1jZWxsIFtmaXRDb250ZW50XT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoIXJvdy5Jc1ByaW1hcnkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gZmQtYnV0dG9uIGZkVHlwZT1cInRyYW5zcGFyZW50XCIgZ2x5cGg9XCJkZWNsaW5lXCIgKGNsaWNrKT1cIm9uRGVsZXRlKHJvdylcIj48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgIH0gfVxuICAgICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgPC90YWJsZT5cbiAgICA8L2ZkLWRpYWxvZy1ib2R5PlxuXG4gICAgPGZkLWRpYWxvZy1mb290ZXI+XG4gICAgICAgIDxmZC1kaWFsb2ctZm9vdGVyLWJ1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICBmZFR5cGU9XCJlbXBoYXNpemVkXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Pa0NsaWNrKClcIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCInT0snIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwic2F2ZWluZ1wiXG4gICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgIDwvZmQtZGlhbG9nLWZvb3Rlci1idXR0b24+XG4gICAgICAgIDxmZC1kaWFsb2ctZm9vdGVyLWJ1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25DYW5jZWxTZXR0aW5ncygpXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ0NhbmNlbCcgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzYXZlaW5nXCJcbiAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgPC9mZC1kaWFsb2ctZm9vdGVyLWJ1dHRvbj5cbiAgICA8L2ZkLWRpYWxvZy1mb290ZXI+XG48L2ZkLWRpYWxvZz5cbiJdfQ==
@@ -1,88 +0,0 @@
1
- import { ChangeDetectionStrategy, Component } from '@angular/core';
2
- import { UntypedFormControl, Validators } from '@angular/forms';
3
- import { Subject } from 'rxjs';
4
- import { exhaustMap, filter, finalize, map, takeUntil, tap } from 'rxjs/operators';
5
- import { BaseComponent, BarsaApi } from 'barsa-novin-ray-core';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/forms";
8
- import * as i2 from "@fundamental-ngx/core";
9
- import * as i3 from "barsa-novin-ray-core";
10
- import * as i4 from "@fundamental-ngx/core/bar";
11
- import * as i5 from "@fundamental-ngx/core/checkbox";
12
- import * as i6 from "@fundamental-ngx/core/form";
13
- import * as i7 from "@fundamental-ngx/core/input-group";
14
- import * as i8 from "@fundamental-ngx/core/dialog";
15
- import * as i9 from "@fundamental-ngx/core/title";
16
- import * as i10 from "../mask/mask.component";
17
- export class ReportSearchPanelSaveComponent extends BaseComponent {
18
- constructor(fb, dialogRef, bbbPipe) {
19
- super();
20
- this.fb = fb;
21
- this.dialogRef = dialogRef;
22
- this.bbbPipe = bbbPipe;
23
- this.isDefault = false;
24
- this.isPublic = false;
25
- this.applyAutomatically = false;
26
- this.saveing = false;
27
- this._saveingSource = new Subject();
28
- this.searchMo = dialogRef.data.searchMo;
29
- this.reportId = dialogRef.data.reportId;
30
- this.fieldsSetting = dialogRef.data.fieldsSetting;
31
- }
32
- ngOnInit() {
33
- super.ngOnInit();
34
- this.appGroupForm = this.fb.group({
35
- title: new UntypedFormControl(this.title, [Validators.required]),
36
- setAsDefault: new UntypedFormControl(undefined),
37
- publicFilter: new UntypedFormControl(false),
38
- applyAutomatically: new UntypedFormControl(false)
39
- });
40
- const alertFieldIsMandatoryText = this.bbbPipe.transform('AlertFieldIsMandatory');
41
- const titleText = this.bbbPipe.transform('Title');
42
- this.RequiredText = alertFieldIsMandatoryText.replace('{0}', titleText);
43
- this._saveingSource
44
- .asObservable()
45
- .pipe(tap(() => (this.saveing = true)), takeUntil(this._onDestroy$), map((searchPanelSetting) => {
46
- const searchMo = {};
47
- Object.keys(this.searchMo).forEach((c) => (searchMo[c] = this.searchMo[c]));
48
- return {
49
- ...searchPanelSetting,
50
- SearchMo: JSON.stringify(searchMo),
51
- FieldsSetting: JSON.stringify(this.fieldsSetting)
52
- };
53
- }), exhaustMap((searchPanelSetting) => new Promise((resolve) => {
54
- BarsaApi.Bw.RunBlMethodAsync({
55
- Parameters: [new BarsaApi.Common.MetaObjectWeb(searchPanelSetting), true],
56
- Method: 'SaveSearchPanelSettings',
57
- SuccessFn: (mo) => {
58
- resolve(mo);
59
- },
60
- FailFn: () => {
61
- resolve(null);
62
- }
63
- });
64
- })), filter((c) => !!c), tap((searchPanelSettingsMo) => this.dialogRef.close(searchPanelSettingsMo)), finalize(() => (this.saveing = false)))
65
- .subscribe();
66
- }
67
- onSave() {
68
- this.submitted = true;
69
- if (this.appGroupForm.valid) {
70
- this._saveingSource.next({
71
- Id: '',
72
- $Caption: this.title,
73
- ReportId: this.reportId,
74
- Title: this.title,
75
- IsDefault: this.isDefault,
76
- IsPublic: this.isPublic,
77
- ApplyAutomatically: this.applyAutomatically
78
- });
79
- }
80
- }
81
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: ReportSearchPanelSaveComponent, deps: [{ token: i1.UntypedFormBuilder }, { token: i2.DialogRef }, { token: i3.BbbTranslatePipe }], target: i0.ɵɵFactoryTarget.Component }); }
82
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: ReportSearchPanelSaveComponent, selector: "bsu-report-search-panel-save", usesInheritance: true, ngImport: i0, template: "<fd-dialog>\n <fd-dialog-header>\n <h1 fd-title>{{ 'Save' | bbbTranslate }}</h1>\n <button fd-dialog-close-button (click)=\"dialogRef.dismiss()\" [disabled]=\"saveing\"></button>\n </fd-dialog-header>\n\n <fd-dialog-body>\n @if (saveing) {\n <bsu-mask></bsu-mask>\n }\n <div fd-form-item [formGroup]=\"appGroupForm\" [class.saveing-form]=\"saveing\">\n <label fd-form-label [required]=\"true\">{{ 'Title' | bbbTranslate }}</label>\n <fd-form-input-message-group>\n <fd-input-group\n class=\"form-control\"\n formControlName=\"title\"\n form-control\n [button]=\"true\"\n [(ngModel)]=\"title\"\n [state]=\"submitted && appGroupForm.controls.title.errors ? 'error' : 'information'\"\n >\n </fd-input-group>\n <fd-checkbox\n formControlName=\"setAsDefault\"\n [label]=\"'SetasDefault' | bbbTranslate\"\n [(ngModel)]=\"isDefault\"\n ></fd-checkbox>\n <fd-checkbox\n formControlName=\"publicFilter\"\n [label]=\"'Public' | bbbTranslate\"\n [(ngModel)]=\"isPublic\"\n ></fd-checkbox>\n <fd-checkbox\n formControlName=\"applyAutomatically\"\n [label]=\"'ApplyAutomatically' | bbbTranslate\"\n [(ngModel)]=\"applyAutomatically\"\n ></fd-checkbox>\n @if (submitted && appGroupForm.controls.title.errors) {\n <fd-form-message type=\"error\">\n {{ RequiredText }}\n </fd-form-message>\n }\n </fd-form-input-message-group>\n </div>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-button-bar [label]=\"'Save' | bbbTranslate\" fdType=\"emphasized\" (click)=\"onSave()\" [disabled]=\"saveing\">\n </fd-button-bar>\n <fd-button-bar\n [disabled]=\"saveing\"\n [label]=\"'Cancel' | bbbTranslate\"\n fdInitialFocus\n fdType=\"transparent\"\n (click)=\"this.dialogRef.close()\"\n >\n </fd-button-bar>\n </fd-dialog-footer>\n</fd-dialog>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabelledby", "id"] }, { kind: "component", type: i5.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: i6.FormItemComponent, selector: "[fd-form-item]", inputs: ["isInline", "horizontal"] }, { kind: "component", type: i6.FormLabelComponent, selector: "[fd-form-label]", inputs: ["required", "colon", "alignLabelEnd", "inlineHelpContent", "inlineHelpGlyph", "inlineHelpTriggers", "inlineHelpBodyPlacement", "inlineHelpPlacement", "inlineHelpLabel", "id"] }, { kind: "component", type: i6.FormMessageComponent, selector: "fd-form-message", inputs: ["type", "static", "embedded", "class"] }, { kind: "component", type: i6.FormInputMessageGroupComponent, selector: "fd-form-input-message-group", inputs: ["triggers", "closeOnOutsideClick", "fillControlMode", "noArrow", "closeOnEscapeKey", "placement", "placementContainer", "isOpen", "preventSpaceKeyScroll"], outputs: ["isOpenChange"] }, { kind: "component", type: i7.InputGroupComponent, selector: "fd-input-group", inputs: ["placement", "required", "inline", "addOnText", "buttonFocusable", "type", "glyph", "glyphFont", "button", "isControl", "showFocus", "isExpanded", "glyphAriaLabel", "addonButtonAriaHidden", "iconTitle", "ariaLabelledBy", "ariaLabel"], outputs: ["addOnButtonClicked", "search"] }, { kind: "component", type: i8.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i8.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i8.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i8.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "component", type: i8.DialogCloseButtonComponent, selector: "[fd-dialog-close-button]", inputs: ["mobile", "title", "ariaLabel"] }, { kind: "component", type: i9.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i10.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "pipe", type: i3.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
83
- }
84
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: ReportSearchPanelSaveComponent, decorators: [{
85
- type: Component,
86
- args: [{ selector: 'bsu-report-search-panel-save', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-dialog>\n <fd-dialog-header>\n <h1 fd-title>{{ 'Save' | bbbTranslate }}</h1>\n <button fd-dialog-close-button (click)=\"dialogRef.dismiss()\" [disabled]=\"saveing\"></button>\n </fd-dialog-header>\n\n <fd-dialog-body>\n @if (saveing) {\n <bsu-mask></bsu-mask>\n }\n <div fd-form-item [formGroup]=\"appGroupForm\" [class.saveing-form]=\"saveing\">\n <label fd-form-label [required]=\"true\">{{ 'Title' | bbbTranslate }}</label>\n <fd-form-input-message-group>\n <fd-input-group\n class=\"form-control\"\n formControlName=\"title\"\n form-control\n [button]=\"true\"\n [(ngModel)]=\"title\"\n [state]=\"submitted && appGroupForm.controls.title.errors ? 'error' : 'information'\"\n >\n </fd-input-group>\n <fd-checkbox\n formControlName=\"setAsDefault\"\n [label]=\"'SetasDefault' | bbbTranslate\"\n [(ngModel)]=\"isDefault\"\n ></fd-checkbox>\n <fd-checkbox\n formControlName=\"publicFilter\"\n [label]=\"'Public' | bbbTranslate\"\n [(ngModel)]=\"isPublic\"\n ></fd-checkbox>\n <fd-checkbox\n formControlName=\"applyAutomatically\"\n [label]=\"'ApplyAutomatically' | bbbTranslate\"\n [(ngModel)]=\"applyAutomatically\"\n ></fd-checkbox>\n @if (submitted && appGroupForm.controls.title.errors) {\n <fd-form-message type=\"error\">\n {{ RequiredText }}\n </fd-form-message>\n }\n </fd-form-input-message-group>\n </div>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-button-bar [label]=\"'Save' | bbbTranslate\" fdType=\"emphasized\" (click)=\"onSave()\" [disabled]=\"saveing\">\n </fd-button-bar>\n <fd-button-bar\n [disabled]=\"saveing\"\n [label]=\"'Cancel' | bbbTranslate\"\n fdInitialFocus\n fdType=\"transparent\"\n (click)=\"this.dialogRef.close()\"\n >\n </fd-button-bar>\n </fd-dialog-footer>\n</fd-dialog>\n" }]
87
- }], ctorParameters: () => [{ type: i1.UntypedFormBuilder }, { type: i2.DialogRef }, { type: i3.BbbTranslatePipe }] });
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXNlYXJjaC1wYW5lbC1zYXZlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL3JlcG9ydC1zZWFyY2gtcGFuZWwtc2F2ZS9yZXBvcnQtc2VhcmNoLXBhbmVsLXNhdmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvcmVwb3J0LXNlYXJjaC1wYW5lbC1zYXZlL3JlcG9ydC1zZWFyY2gtcGFuZWwtc2F2ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBc0Isa0JBQWtCLEVBQW9CLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkYsT0FBTyxFQUNILGFBQWEsRUFDYixRQUFRLEVBS1gsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7O0FBUTlCLE1BQU0sT0FBTyw4QkFBK0IsU0FBUSxhQUFhO0lBYzdELFlBQW9CLEVBQXNCLEVBQVMsU0FBb0IsRUFBVSxPQUF5QjtRQUN0RyxLQUFLLEVBQUUsQ0FBQztRQURRLE9BQUUsR0FBRixFQUFFLENBQW9CO1FBQVMsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUFVLFlBQU8sR0FBUCxPQUFPLENBQWtCO1FBVDFHLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQix1QkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDM0IsWUFB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QUFxQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLEVBQzNFLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FDekM7YUFDQSxTQUFTLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsTUFBTTtRQUNGLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQztnQkFDckIsRUFBRSxFQUFFLEVBQUU7Z0JBQ04sUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLO2dCQUNwQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQ3ZCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztnQkFDakIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO2dCQUN6QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQ3ZCLGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0I7YUFDOUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztJQUNMLENBQUM7OEdBakZRLDhCQUE4QjtrR0FBOUIsOEJBQThCLDJGQ3JCM0MsMDJFQTJEQTs7MkZEdENhLDhCQUE4QjtrQkFOMUMsU0FBUzsrQkFDSSw4QkFBOEIsbUJBR3ZCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUNvbnRyb2wsIFVudHlwZWRGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IERpYWxvZ1JlZiB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZXhoYXVzdE1hcCwgZmlsdGVyLCBmaW5hbGl6ZSwgbWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7XHJcbiAgICBCYXNlQ29tcG9uZW50LFxyXG4gICAgQmFyc2FBcGksXHJcbiAgICBNZXRhb2JqZWN0RGF0YU1vZGVsLFxyXG4gICAgQ29sdW1uSW5mb1R5cGUsXHJcbiAgICBTZWFyY2hQYW5lbFNldHRpbmdzLFxyXG4gICAgQmJiVHJhbnNsYXRlUGlwZVxyXG59IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtcmVwb3J0LXNlYXJjaC1wYW5lbC1zYXZlJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9yZXBvcnQtc2VhcmNoLXBhbmVsLXNhdmUuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vcmVwb3J0LXNlYXJjaC1wYW5lbC1zYXZlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVwb3J0U2VhcmNoUGFuZWxTYXZlQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICB0aXRsZTogc3RyaW5nO1xyXG4gICAgYXBwR3JvdXBGb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xyXG4gICAgc3VibWl0dGVkOiBib29sZWFuO1xyXG4gICAgUmVxdWlyZWRUZXh0OiBzdHJpbmc7XHJcbiAgICBpc0RlZmF1bHQgPSBmYWxzZTtcclxuICAgIGlzUHVibGljID0gZmFsc2U7XHJcbiAgICBhcHBseUF1dG9tYXRpY2FsbHkgPSBmYWxzZTtcclxuICAgIHNhdmVpbmcgPSBmYWxzZTtcclxuICAgIHNlYXJjaE1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xyXG4gICAgcmVwb3J0SWQ6IHN0cmluZztcclxuICAgIGZpZWxkc1NldHRpbmc6IENvbHVtbkluZm9UeXBlW107XHJcbiAgICBwcml2YXRlIF9zYXZlaW5nU291cmNlID0gbmV3IFN1YmplY3Q8U2VhcmNoUGFuZWxTZXR0aW5ncz4oKTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZiOiBVbnR5cGVkRm9ybUJ1aWxkZXIsIHB1YmxpYyBkaWFsb2dSZWY6IERpYWxvZ1JlZiwgcHJpdmF0ZSBiYmJQaXBlOiBCYmJUcmFuc2xhdGVQaXBlKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICB0aGlzLnNlYXJjaE1vID0gZGlhbG9nUmVmLmRhdGEuc2VhcmNoTW87XHJcbiAgICAgICAgdGhpcy5yZXBvcnRJZCA9IGRpYWxvZ1JlZi5kYXRhLnJlcG9ydElkO1xyXG4gICAgICAgIHRoaXMuZmllbGRzU2V0dGluZyA9IGRpYWxvZ1JlZi5kYXRhLmZpZWxkc1NldHRpbmc7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICB0aGlzLmFwcEdyb3VwRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAgICAgICB0aXRsZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbCh0aGlzLnRpdGxlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICAgICBzZXRBc0RlZmF1bHQ6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wodW5kZWZpbmVkKSxcclxuICAgICAgICAgICAgcHVibGljRmlsdGVyOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKGZhbHNlKSxcclxuICAgICAgICAgICAgYXBwbHlBdXRvbWF0aWNhbGx5OiBuZXcgVW50eXBlZEZvcm1Db250cm9sKGZhbHNlKVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGNvbnN0IGFsZXJ0RmllbGRJc01hbmRhdG9yeVRleHQgPSB0aGlzLmJiYlBpcGUudHJhbnNmb3JtKCdBbGVydEZpZWxkSXNNYW5kYXRvcnknKTtcclxuICAgICAgICBjb25zdCB0aXRsZVRleHQgPSB0aGlzLmJiYlBpcGUudHJhbnNmb3JtKCdUaXRsZScpO1xyXG4gICAgICAgIHRoaXMuUmVxdWlyZWRUZXh0ID0gYWxlcnRGaWVsZElzTWFuZGF0b3J5VGV4dC5yZXBsYWNlKCd7MH0nLCB0aXRsZVRleHQpO1xyXG4gICAgICAgIHRoaXMuX3NhdmVpbmdTb3VyY2VcclxuICAgICAgICAgICAgLmFzT2JzZXJ2YWJsZSgpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgdGFwKCgpID0+ICh0aGlzLnNhdmVpbmcgPSB0cnVlKSksXHJcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCksXHJcbiAgICAgICAgICAgICAgICBtYXAoKHNlYXJjaFBhbmVsU2V0dGluZykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlYXJjaE1vID0ge307XHJcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmtleXModGhpcy5zZWFyY2hNbykuZm9yRWFjaCgoYykgPT4gKHNlYXJjaE1vW2NdID0gdGhpcy5zZWFyY2hNb1tjXSkpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnNlYXJjaFBhbmVsU2V0dGluZyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgU2VhcmNoTW86IEpTT04uc3RyaW5naWZ5KHNlYXJjaE1vKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgRmllbGRzU2V0dGluZzogSlNPTi5zdHJpbmdpZnkodGhpcy5maWVsZHNTZXR0aW5nKVxyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgIGV4aGF1c3RNYXAoXHJcbiAgICAgICAgICAgICAgICAgICAgKHNlYXJjaFBhbmVsU2V0dGluZykgPT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFByb21pc2U8TWV0YW9iamVjdERhdGFNb2RlbCB8IG51bGw+KChyZXNvbHZlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCYXJzYUFwaS5Cdy5SdW5CbE1ldGhvZEFzeW5jKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzOiBbbmV3IEJhcnNhQXBpLkNvbW1vbi5NZXRhT2JqZWN0V2ViKHNlYXJjaFBhbmVsU2V0dGluZyksIHRydWVdLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZDogJ1NhdmVTZWFyY2hQYW5lbFNldHRpbmdzJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWNjZXNzRm46IChtbykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKG1vKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZhaWxGbjogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgIGZpbHRlcigoYykgPT4gISFjKSxcclxuICAgICAgICAgICAgICAgIHRhcCgoc2VhcmNoUGFuZWxTZXR0aW5nc01vKSA9PiB0aGlzLmRpYWxvZ1JlZi5jbG9zZShzZWFyY2hQYW5lbFNldHRpbmdzTW8pKSxcclxuICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+ICh0aGlzLnNhdmVpbmcgPSBmYWxzZSkpXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uU2F2ZSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnN1Ym1pdHRlZCA9IHRydWU7XHJcbiAgICAgICAgaWYgKHRoaXMuYXBwR3JvdXBGb3JtLnZhbGlkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3NhdmVpbmdTb3VyY2UubmV4dCh7XHJcbiAgICAgICAgICAgICAgICBJZDogJycsXHJcbiAgICAgICAgICAgICAgICAkQ2FwdGlvbjogdGhpcy50aXRsZSxcclxuICAgICAgICAgICAgICAgIFJlcG9ydElkOiB0aGlzLnJlcG9ydElkLFxyXG4gICAgICAgICAgICAgICAgVGl0bGU6IHRoaXMudGl0bGUsXHJcbiAgICAgICAgICAgICAgICBJc0RlZmF1bHQ6IHRoaXMuaXNEZWZhdWx0LFxyXG4gICAgICAgICAgICAgICAgSXNQdWJsaWM6IHRoaXMuaXNQdWJsaWMsXHJcbiAgICAgICAgICAgICAgICBBcHBseUF1dG9tYXRpY2FsbHk6IHRoaXMuYXBwbHlBdXRvbWF0aWNhbGx5XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCI8ZmQtZGlhbG9nPlxuICAgIDxmZC1kaWFsb2ctaGVhZGVyPlxuICAgICAgICA8aDEgZmQtdGl0bGU+e3sgJ1NhdmUnIHwgYmJiVHJhbnNsYXRlIH19PC9oMT5cbiAgICAgICAgPGJ1dHRvbiBmZC1kaWFsb2ctY2xvc2UtYnV0dG9uIChjbGljayk9XCJkaWFsb2dSZWYuZGlzbWlzcygpXCIgW2Rpc2FibGVkXT1cInNhdmVpbmdcIj48L2J1dHRvbj5cbiAgICA8L2ZkLWRpYWxvZy1oZWFkZXI+XG5cbiAgICA8ZmQtZGlhbG9nLWJvZHk+XG4gICAgICAgIEBpZiAoc2F2ZWluZykge1xuICAgICAgICA8YnN1LW1hc2s+PC9ic3UtbWFzaz5cbiAgICAgICAgfVxuICAgICAgICA8ZGl2IGZkLWZvcm0taXRlbSBbZm9ybUdyb3VwXT1cImFwcEdyb3VwRm9ybVwiIFtjbGFzcy5zYXZlaW5nLWZvcm1dPVwic2F2ZWluZ1wiPlxuICAgICAgICAgICAgPGxhYmVsIGZkLWZvcm0tbGFiZWwgW3JlcXVpcmVkXT1cInRydWVcIj57eyAnVGl0bGUnIHwgYmJiVHJhbnNsYXRlIH19PC9sYWJlbD5cbiAgICAgICAgICAgIDxmZC1mb3JtLWlucHV0LW1lc3NhZ2UtZ3JvdXA+XG4gICAgICAgICAgICAgICAgPGZkLWlucHV0LWdyb3VwXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICBmb3JtLWNvbnRyb2xcbiAgICAgICAgICAgICAgICAgICAgW2J1dHRvbl09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ0aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgIFtzdGF0ZV09XCJzdWJtaXR0ZWQgJiYgYXBwR3JvdXBGb3JtLmNvbnRyb2xzLnRpdGxlLmVycm9ycyA/ICdlcnJvcicgOiAnaW5mb3JtYXRpb24nXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9mZC1pbnB1dC1ncm91cD5cbiAgICAgICAgICAgICAgICA8ZmQtY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2V0QXNEZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidTZXRhc0RlZmF1bHQnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJpc0RlZmF1bHRcIlxuICAgICAgICAgICAgICAgID48L2ZkLWNoZWNrYm94PlxuICAgICAgICAgICAgICAgIDxmZC1jaGVja2JveFxuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwdWJsaWNGaWx0ZXJcIlxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ1B1YmxpYycgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImlzUHVibGljXCJcbiAgICAgICAgICAgICAgICA+PC9mZC1jaGVja2JveD5cbiAgICAgICAgICAgICAgICA8ZmQtY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYXBwbHlBdXRvbWF0aWNhbGx5XCJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidBcHBseUF1dG9tYXRpY2FsbHknIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJhcHBseUF1dG9tYXRpY2FsbHlcIlxuICAgICAgICAgICAgICAgID48L2ZkLWNoZWNrYm94PlxuICAgICAgICAgICAgICAgIEBpZiAoc3VibWl0dGVkICYmIGFwcEdyb3VwRm9ybS5jb250cm9scy50aXRsZS5lcnJvcnMpIHtcbiAgICAgICAgICAgICAgICA8ZmQtZm9ybS1tZXNzYWdlIHR5cGU9XCJlcnJvclwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBSZXF1aXJlZFRleHQgfX1cbiAgICAgICAgICAgICAgICA8L2ZkLWZvcm0tbWVzc2FnZT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2ZkLWZvcm0taW5wdXQtbWVzc2FnZS1ncm91cD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9mZC1kaWFsb2ctYm9keT5cblxuICAgIDxmZC1kaWFsb2ctZm9vdGVyPlxuICAgICAgICA8ZmQtYnV0dG9uLWJhciBbbGFiZWxdPVwiJ1NhdmUnIHwgYmJiVHJhbnNsYXRlXCIgZmRUeXBlPVwiZW1waGFzaXplZFwiIChjbGljayk9XCJvblNhdmUoKVwiIFtkaXNhYmxlZF09XCJzYXZlaW5nXCI+XG4gICAgICAgIDwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgPGZkLWJ1dHRvbi1iYXJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzYXZlaW5nXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCInQ2FuY2VsJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBmZEluaXRpYWxGb2N1c1xuICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInRoaXMuZGlhbG9nUmVmLmNsb3NlKClcIlxuICAgICAgICA+XG4gICAgICAgIDwvZmQtYnV0dG9uLWJhcj5cbiAgICA8L2ZkLWRpYWxvZy1mb290ZXI+XG48L2ZkLWRpYWxvZz5cbiJdfQ==