barsa-sap-ui 2.1.1 → 2.1.3

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 (243) hide show
  1. package/fesm2022/barsa-sap-ui.mjs +419 -367
  2. package/fesm2022/barsa-sap-ui.mjs.map +1 -1
  3. package/lib/barsa-bar-download-file/barsa-bar-download-file.component.d.ts +10 -0
  4. package/lib/barsa-sap-ui.module.d.ts +237 -236
  5. package/lib/file-viewer-popover/file-viewer-popover.component.d.ts +1 -1
  6. package/lib/ui-map/ui-map.component.d.ts +2 -0
  7. package/package.json +3 -5
  8. package/public-api.d.ts +1 -0
  9. package/esm2022/barsa-sap-ui.mjs +0 -5
  10. package/esm2022/lib/apply-conditional-formmatings.directive.mjs +0 -89
  11. package/esm2022/lib/avatar-size.pipe.mjs +0 -40
  12. package/esm2022/lib/barsa-answer-card/barsa-answer-card.component.mjs +0 -41
  13. package/esm2022/lib/barsa-asp-viewer/barsa-asp-viewer.component.mjs +0 -145
  14. package/esm2022/lib/barsa-bar-panel/barsa-bar-panel.component.mjs +0 -23
  15. package/esm2022/lib/barsa-base-panel/barsa-base-layout-panel.component.mjs +0 -29
  16. package/esm2022/lib/barsa-breadcrumbs/barsa-breadcrumbs.component.mjs +0 -24
  17. package/esm2022/lib/barsa-card-layout-panel/barsa-card-layout-panel.component.mjs +0 -24
  18. package/esm2022/lib/barsa-card-row-payam/barsa-card-row-payam.component.mjs +0 -31
  19. package/esm2022/lib/barsa-cartable-form/barsa-cartable-form.component.mjs +0 -41
  20. package/esm2022/lib/barsa-cartable-template/barsa-cartable-template.component.mjs +0 -24
  21. package/esm2022/lib/barsa-chat/barsa-chat.component.mjs +0 -242
  22. package/esm2022/lib/barsa-chat/chat.model.mjs +0 -8
  23. package/esm2022/lib/barsa-chat-content/barsa-chat-content.component.mjs +0 -13
  24. package/esm2022/lib/barsa-chat-content-toolbar/barsa-chat-content-toolbar.component.mjs +0 -22
  25. package/esm2022/lib/barsa-chat-list/barsa-chat-list.component.mjs +0 -66
  26. package/esm2022/lib/barsa-chat-message/barsa-chat-message.component.mjs +0 -78
  27. package/esm2022/lib/barsa-chat-thread/barsa-chat-thread.component.mjs +0 -22
  28. package/esm2022/lib/barsa-chat-threads-list/barsa-chat-threads-list.component.mjs +0 -13
  29. package/esm2022/lib/barsa-chat-threads-list-toolbar/barsa-chat-threads-list-toolbar.component.mjs +0 -15
  30. package/esm2022/lib/barsa-chip/barsa-chip.component.mjs +0 -72
  31. package/esm2022/lib/barsa-column-indicator/barsa-column-indicator.component.mjs +0 -23
  32. package/esm2022/lib/barsa-column-rownumber/barsa-column-rownumber.component.mjs +0 -14
  33. package/esm2022/lib/barsa-custom-inline-edit/barsa-custom-inline-edit.component.mjs +0 -14
  34. package/esm2022/lib/barsa-custom-inline-edit-row/barsa-custom-inline-edit-row.component.mjs +0 -26
  35. package/esm2022/lib/barsa-date-time-picker/barsa-date-time-picker.component.mjs +0 -71
  36. package/esm2022/lib/barsa-dynamic-field/barsa-dynamic-field.component.mjs +0 -40
  37. package/esm2022/lib/barsa-enum-menu-button/barsa-enum-menu-button.component.mjs +0 -61
  38. package/esm2022/lib/barsa-field-key-value/barsa-field-key-value.component.mjs +0 -45
  39. package/esm2022/lib/barsa-form-side-content/barsa-form-side-content.component.mjs +0 -58
  40. package/esm2022/lib/barsa-grid-layout-panel/barsa-grid-layout-panel.component.mjs +0 -27
  41. package/esm2022/lib/barsa-group-cartable/barsa-cartable-group.component.mjs +0 -94
  42. package/esm2022/lib/barsa-horizontal-flex-panel/barsa-horizontal-flex-panel.component.mjs +0 -22
  43. package/esm2022/lib/barsa-linkable-items-panel/barsa-linkable-items-panel.component.mjs +0 -37
  44. package/esm2022/lib/barsa-list-file-linear/barsa-list-file-linear.component.mjs +0 -41
  45. package/esm2022/lib/barsa-list-file-linear-gmail/barsa-list-file-linear-gmail.component.mjs +0 -29
  46. package/esm2022/lib/barsa-list-layout-panel/barsa-list-layout-panel.component.mjs +0 -23
  47. package/esm2022/lib/barsa-modal/barsa-modal.component.mjs +0 -43
  48. package/esm2022/lib/barsa-monaco-editor/barsa-monaco-editor.component.mjs +0 -83
  49. package/esm2022/lib/barsa-network-offline/barsa-network-offline.component.mjs +0 -57
  50. package/esm2022/lib/barsa-pishnamayesh-payam/barsa-pishnamayesh-payam.component.mjs +0 -159
  51. package/esm2022/lib/barsa-question-answer-comments-section/barsa-question-answer-comments-section.component.mjs +0 -17
  52. package/esm2022/lib/barsa-question-answer-content-actions-section/barsa-question-answer-content-actions-section.component.mjs +0 -30
  53. package/esm2022/lib/barsa-question-answer-creator-time-section/barsa-question-answer-creator-time-section.component.mjs +0 -14
  54. package/esm2022/lib/barsa-question-answer-form/barsa-question-answer-form.component.mjs +0 -34
  55. package/esm2022/lib/barsa-question-answer-form-add-comment/barsa-question-answer-form-add-comment.component.mjs +0 -46
  56. package/esm2022/lib/barsa-question-answer-vote-section/barsa-question-answer-vote-section.component.mjs +0 -79
  57. package/esm2022/lib/barsa-question-post/barsa-question-post.component.mjs +0 -30
  58. package/esm2022/lib/barsa-report-card-flex-view/barsa-report-card-flex-view.component.mjs +0 -31
  59. package/esm2022/lib/barsa-report-checkbox-switch-button/barsa-report-checkbox-switch-button.component.mjs +0 -28
  60. package/esm2022/lib/barsa-report-one-of-list/barsa-report-one-of-list.component.mjs +0 -102
  61. package/esm2022/lib/barsa-row-inline-actionlist/barsa-row-inline-actionlist.component.mjs +0 -26
  62. package/esm2022/lib/barsa-sap-ui-routing.module.mjs +0 -18
  63. package/esm2022/lib/barsa-sap-ui.module.mjs +0 -374
  64. package/esm2022/lib/barsa-search-form/barsa-search-form.component.mjs +0 -29
  65. package/esm2022/lib/barsa-simple-form/barsa-simple-form.component.mjs +0 -170
  66. package/esm2022/lib/barsa-tab-route-manager/barsa-tab-route-manager.component.mjs +0 -18
  67. package/esm2022/lib/barsa-table-column/barsa-table-column.component.mjs +0 -29
  68. package/esm2022/lib/barsa-table-header/barsa-table-header.component.mjs +0 -222
  69. package/esm2022/lib/barsa-table-row/barsa-table-row.component.mjs +0 -87
  70. package/esm2022/lib/barsa-tag-categories/barsa-tag-categories.component.mjs +0 -60
  71. package/esm2022/lib/barsa-tag-chip/barsa-tag-chip.component.mjs +0 -26
  72. package/esm2022/lib/barsa-tags-category-row/barsa-tags-category-row.component.mjs +0 -23
  73. package/esm2022/lib/barsa-text-ellipsis/barsa-text-ellipsis.component.mjs +0 -37
  74. package/esm2022/lib/barsa-tinyemce/barsa-tinyemce.component.mjs +0 -418
  75. package/esm2022/lib/barsa-toolbaritem-search/barsa-toolbaritem-search.component.mjs +0 -36
  76. package/esm2022/lib/barsa-tree-item/barsa-tree-item.component.mjs +0 -153
  77. package/esm2022/lib/barsa-tree-item/node-has-one-depth-level.pipe.mjs +0 -19
  78. package/esm2022/lib/barsa-ulv-main/barsa-ulv-main.component.mjs +0 -216
  79. package/esm2022/lib/blob-viewer/blob-viewer.component.mjs +0 -74
  80. package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +0 -50
  81. package/esm2022/lib/captcha-field/captcha-field.component.mjs +0 -28
  82. package/esm2022/lib/card-item/card-item.component.mjs +0 -64
  83. package/esm2022/lib/card-view-content/card-view-content.component.mjs +0 -46
  84. package/esm2022/lib/col-renderer.directive.mjs +0 -46
  85. package/esm2022/lib/column-matrix-renderer/column-matrix-renderer.component.mjs +0 -56
  86. package/esm2022/lib/column-matrix-renderer/matrix-value.pipe.mjs +0 -60
  87. package/esm2022/lib/column-renderer/column-renderer.component.mjs +0 -88
  88. package/esm2022/lib/constants.mjs +0 -425
  89. package/esm2022/lib/custom-date-time/custom-date-time.component.mjs +0 -41
  90. package/esm2022/lib/device-info-field-base.mjs +0 -23
  91. package/esm2022/lib/dialog-handler.directive.mjs +0 -28
  92. package/esm2022/lib/download-files.directive.mjs +0 -33
  93. package/esm2022/lib/dynamic-page-size.pipe.mjs +0 -26
  94. package/esm2022/lib/file-in-dialog/file-in-dialog.component.mjs +0 -44
  95. package/esm2022/lib/file-viewer/file-viewer.component.mjs +0 -47
  96. package/esm2022/lib/file-viewer-content/file-viewer-content.component.mjs +0 -71
  97. package/esm2022/lib/file-viewer-popover/file-viewer-popover.component.mjs +0 -39
  98. package/esm2022/lib/form-dialog/form-dialog.component.mjs +0 -171
  99. package/esm2022/lib/form-dialog-less/form-dialog-less.component.mjs +0 -50
  100. package/esm2022/lib/form-toolbar/form-toolbar.component.mjs +0 -62
  101. package/esm2022/lib/form-toolbar-button/form-toolbar-button.component.mjs +0 -45
  102. package/esm2022/lib/form-wizard/form-wizard.component.mjs +0 -21
  103. package/esm2022/lib/fullscreen-dialog.directive.mjs +0 -59
  104. package/esm2022/lib/fullscreen-files.directive.mjs +0 -42
  105. package/esm2022/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.mjs +0 -213
  106. package/esm2022/lib/gantt-dhtml-chart-view/gantt-dhtml-chart-view.component.mjs +0 -215
  107. package/esm2022/lib/global-search/global-search.component.mjs +0 -27
  108. package/esm2022/lib/global-search-module/global-search-module.component.mjs +0 -29
  109. package/esm2022/lib/global-search-panel/global-search-panel.component.mjs +0 -25
  110. package/esm2022/lib/header-avatar/header-avatar.component.mjs +0 -18
  111. package/esm2022/lib/htree-create-new/htree-create-new.component.mjs +0 -48
  112. package/esm2022/lib/hyperlink/hyperlink.component.mjs +0 -23
  113. package/esm2022/lib/index.mjs +0 -543
  114. package/esm2022/lib/inline-save-and-cancel/inline-save-and-cancel.component.mjs +0 -32
  115. package/esm2022/lib/layout-actions/layout-actions.component.mjs +0 -70
  116. package/esm2022/lib/layout-control/layout-control.component.mjs +0 -302
  117. package/esm2022/lib/layout-wizard/layout-wizard.component.mjs +0 -183
  118. package/esm2022/lib/list-item/list-item.component.mjs +0 -34
  119. package/esm2022/lib/ly-empty-space/ly-empty-space.component.mjs +0 -42
  120. package/esm2022/lib/ly-horizontal-layout/ly-horizontal-layout.component.mjs +0 -82
  121. package/esm2022/lib/ly-label/ly-label.component.mjs +0 -37
  122. package/esm2022/lib/ly-layout-container/ly-layout-container.component.mjs +0 -83
  123. package/esm2022/lib/ly-layout-container-of-root/ly-layout-container-of-root.component.mjs +0 -17
  124. package/esm2022/lib/ly-layout-field-label/ly-layout-field-label.component.mjs +0 -24
  125. package/esm2022/lib/ly-layout-panel/ly-layout-panel.component.mjs +0 -83
  126. package/esm2022/lib/ly-line/ly-line.component.mjs +0 -56
  127. package/esm2022/lib/ly-simple-label/ly-simple-label.component.mjs +0 -22
  128. package/esm2022/lib/ly-tab-container/ly-tab-container.component.mjs +0 -45
  129. package/esm2022/lib/ly-tab-page/ly-tab-page.component.mjs +0 -44
  130. package/esm2022/lib/ly-vertical-layout/ly-vertical-layout.component.mjs +0 -51
  131. package/esm2022/lib/manage-filters-report/manage-filters-report.component.mjs +0 -43
  132. package/esm2022/lib/mask/mask.component.mjs +0 -22
  133. package/esm2022/lib/message-strip/message-strip.component.mjs +0 -28
  134. package/esm2022/lib/models/grid-data-provider.mjs +0 -114
  135. package/esm2022/lib/models/grid-view.mjs +0 -2
  136. package/esm2022/lib/models/index.mjs +0 -2
  137. package/esm2022/lib/no-data/no-data.component.mjs +0 -31
  138. package/esm2022/lib/notification-item/notification-item.component.mjs +0 -57
  139. package/esm2022/lib/notification-popup.service.mjs +0 -92
  140. package/esm2022/lib/object-status-icon.pipe.mjs +0 -26
  141. package/esm2022/lib/progress-indicator/progress-indicator.component.mjs +0 -18
  142. package/esm2022/lib/report-navigator/report-navigator.component.mjs +0 -68
  143. package/esm2022/lib/report-new-top-form/report-new-top-form.component.mjs +0 -60
  144. package/esm2022/lib/report-search-fields-hidden-settings/report-search-fields-hidden-settings.component.mjs +0 -35
  145. package/esm2022/lib/report-search-fields-manage/report-search-fields-manage.component.mjs +0 -97
  146. package/esm2022/lib/report-search-panel-save/report-search-panel-save.component.mjs +0 -88
  147. package/esm2022/lib/report-tree-base.mjs +0 -386
  148. package/esm2022/lib/report-view-renderer.directive.mjs +0 -385
  149. package/esm2022/lib/responsive-toolbar/responsive-toolbar.component.mjs +0 -50
  150. package/esm2022/lib/responsive-toolbar-renderer/responsive-toolbar-renderer.component.mjs +0 -84
  151. package/esm2022/lib/rich-text-static/rich-text-static.component.mjs +0 -72
  152. package/esm2022/lib/sap-font-class.pipe.mjs +0 -29
  153. package/esm2022/lib/sap-font.pipe.mjs +0 -29
  154. package/esm2022/lib/sap-size.pipe.mjs +0 -27
  155. package/esm2022/lib/sap-ui-report-base.component.mjs +0 -805
  156. package/esm2022/lib/search-panel/search-panel.component.mjs +0 -63
  157. package/esm2022/lib/static-text/static-text.component.mjs +0 -15
  158. package/esm2022/lib/table-th.directive.mjs +0 -86
  159. package/esm2022/lib/title/title.component.mjs +0 -15
  160. package/esm2022/lib/ui-asp-report-viewer/ui-asp-report-viewer.component.mjs +0 -34
  161. package/esm2022/lib/ui-bpmn-viewer/ui-bpmn-viewer.component.mjs +0 -33
  162. package/esm2022/lib/ui-button/ui-button.component.mjs +0 -32
  163. package/esm2022/lib/ui-calendar/ui-calendar.component.mjs +0 -53
  164. package/esm2022/lib/ui-card-view/ui-card-view.component.mjs +0 -57
  165. package/esm2022/lib/ui-card-view-horizontal-group/ui-card-view-horizontal-group.component.mjs +0 -42
  166. package/esm2022/lib/ui-check-box/ui-check-box.component.mjs +0 -39
  167. package/esm2022/lib/ui-color-ui/ui-color-ui.component.mjs +0 -50
  168. package/esm2022/lib/ui-container-with-button/ui-container-with-button.component.mjs +0 -38
  169. package/esm2022/lib/ui-date-range-ex/ui-date-range-ex.component.mjs +0 -191
  170. package/esm2022/lib/ui-date-time/ui-date-time.component.mjs +0 -150
  171. package/esm2022/lib/ui-editable-grid/ui-editable-grid.component.mjs +0 -110
  172. package/esm2022/lib/ui-exception-form/ui-exception-form.component.mjs +0 -53
  173. package/esm2022/lib/ui-file-linear-list-box/ui-file-linear-list-box.component.mjs +0 -121
  174. package/esm2022/lib/ui-form-panel/ui-form-panel.component.mjs +0 -100
  175. package/esm2022/lib/ui-gantt-chart/ui-gantt-chart.component.mjs +0 -32
  176. package/esm2022/lib/ui-graph/ui-graph.component.mjs +0 -17
  177. package/esm2022/lib/ui-grid/ui-grid.component.mjs +0 -25
  178. package/esm2022/lib/ui-grid-columns/ui-grid-columns.component.mjs +0 -43
  179. package/esm2022/lib/ui-grid-filter-item/ui-grid-filter-item.component.mjs +0 -66
  180. package/esm2022/lib/ui-grid-filter-settings/ui-grid-filter-settings.component.mjs +0 -75
  181. package/esm2022/lib/ui-grid-sort-item/ui-grid-sort-item.component.mjs +0 -58
  182. package/esm2022/lib/ui-grid-sort-setting/ui-grid-sort-setting.component.mjs +0 -123
  183. package/esm2022/lib/ui-html-viewer/ui-html-viewer.component.mjs +0 -16
  184. package/esm2022/lib/ui-info-bar-panel/ui-info-bar-panel.component.mjs +0 -11
  185. package/esm2022/lib/ui-label/ui-label.component.mjs +0 -12
  186. package/esm2022/lib/ui-linear-list-container-with-button/ui-linear-list-container-with-button.component.mjs +0 -379
  187. package/esm2022/lib/ui-list-view/ui-list-view.component.mjs +0 -84
  188. package/esm2022/lib/ui-map/ui-map.component.mjs +0 -58
  189. package/esm2022/lib/ui-matrix-view/ui-matrix-view.component.mjs +0 -124
  190. package/esm2022/lib/ui-mo-info-combo-viewer/ui-mo-info-combo-viewer.component.mjs +0 -19
  191. package/esm2022/lib/ui-mo-info-general-object-ui/ui-mo-info-general-object-ui.component.mjs +0 -14
  192. package/esm2022/lib/ui-mo-info-sub-form-ui/ui-mo-info-sub-form-ui.component.mjs +0 -55
  193. package/esm2022/lib/ui-mo-info-ulv-combo/ui-mo-info-ulv-combo.component.mjs +0 -429
  194. package/esm2022/lib/ui-monaco-editor/ui-monaco-editor.component.mjs +0 -28
  195. package/esm2022/lib/ui-multi-select-card/ui-multi-select-card.component.mjs +0 -37
  196. package/esm2022/lib/ui-multi-select-checkbox/ui-multi-select-checkbox.component.mjs +0 -59
  197. package/esm2022/lib/ui-multi-select-combo/ui-multi-select-combo.component.mjs +0 -93
  198. package/esm2022/lib/ui-multi-select-radio/ui-multi-select-radio.component.mjs +0 -36
  199. package/esm2022/lib/ui-multi-select-slider/ui-multi-select-slider.component.mjs +0 -56
  200. package/esm2022/lib/ui-multi-select-smile/ui-multi-select-smile.component.mjs +0 -28
  201. package/esm2022/lib/ui-num-decimal-ui/ui-num-decimal-ui.component.mjs +0 -33
  202. package/esm2022/lib/ui-num-int-slider/ui-num-int-slider.component.mjs +0 -27
  203. package/esm2022/lib/ui-num-int-ui/ui-num-int-ui.component.mjs +0 -21
  204. package/esm2022/lib/ui-pdf-viewer/ui-pdf-viewer.component.mjs +0 -268
  205. package/esm2022/lib/ui-picture-file/ui-picture-file.component.mjs +0 -101
  206. package/esm2022/lib/ui-pictures-info/ui-pictures-info.component.mjs +0 -261
  207. package/esm2022/lib/ui-radio-group/ui-radio-group.component.mjs +0 -48
  208. package/esm2022/lib/ui-read-only-field/ui-read-only-field.component.mjs +0 -36
  209. package/esm2022/lib/ui-report-container/ui-report-container.component.mjs +0 -46
  210. package/esm2022/lib/ui-search-command-info-ui/ui-search-command-info-ui.component.mjs +0 -24
  211. package/esm2022/lib/ui-simple-combo/ui-simple-combo.component.mjs +0 -55
  212. package/esm2022/lib/ui-single-picture/ui-single-picture.component.mjs +0 -36
  213. package/esm2022/lib/ui-switch-button/ui-switch-button.component.mjs +0 -20
  214. package/esm2022/lib/ui-table-view/ui-table-view.component.mjs +0 -289
  215. package/esm2022/lib/ui-text-area/ui-text-area.component.mjs +0 -49
  216. package/esm2022/lib/ui-text-field/ui-text-field.component.mjs +0 -52
  217. package/esm2022/lib/ui-text-field-auto-complete/ui-text-field-auto-complete.component.mjs +0 -48
  218. package/esm2022/lib/ui-time-span/ui-time-span.component.mjs +0 -24
  219. package/esm2022/lib/ui-tinymce/ui-tinymce.component.mjs +0 -53
  220. package/esm2022/lib/ui-tree/ui-tree.component.mjs +0 -114
  221. package/esm2022/lib/ui-tree-view/ui-tree-view.component.mjs +0 -100
  222. package/esm2022/lib/ui-ulv-form-multi-select-ui/ui-ulv-form-multi-select-ui.component.mjs +0 -23
  223. package/esm2022/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.mjs +0 -306
  224. package/esm2022/lib/ui-workflow-panel-ui/ui-workflow-panel-ui.component.mjs +0 -25
  225. package/esm2022/lib/ul-loading-mask-ui/ul-loading-mask-ui.component.mjs +0 -93
  226. package/esm2022/lib/ul-msg-box-adapter/ul-msg-box-adapter.component.mjs +0 -119
  227. package/esm2022/lib/ul-notify-popup/ul-notify-popup.component.mjs +0 -32
  228. package/esm2022/lib/ul-toast-adapter/ul-toast-adapter.component.mjs +0 -48
  229. package/esm2022/lib/ulv-column-settings/ulv-column-settings.component.mjs +0 -53
  230. package/esm2022/lib/ulv-context-menu/ulv-context-menu.component.mjs +0 -114
  231. package/esm2022/lib/ulv-filter-settings/ulv-filter-settings.component.mjs +0 -43
  232. package/esm2022/lib/ulv-form-multi-select/ulv-form-multi-select.component.mjs +0 -196
  233. package/esm2022/lib/ulv-groupby-settings/ulv-groupby-settings.component.mjs +0 -44
  234. package/esm2022/lib/ulv-paging/ulv-paging.component.mjs +0 -84
  235. package/esm2022/lib/ulv-selection/ulv-selection.component.mjs +0 -65
  236. package/esm2022/lib/ulv-settings/ulv-settings.component.mjs +0 -116
  237. package/esm2022/lib/ulv-sort-settings/ulv-sort-settings.component.mjs +0 -54
  238. package/esm2022/lib/ulv-toolbar/ulv-toolbar.component.mjs +0 -174
  239. package/esm2022/lib/upload-file-status.pipe.mjs +0 -28
  240. package/esm2022/lib/util-chat-time-badge.pipe.mjs +0 -18
  241. package/esm2022/lib/util-date-to-hh-mm.pipe.mjs +0 -23
  242. package/esm2022/lib/wizard-layout.directive.mjs +0 -103
  243. package/esm2022/public-api.mjs +0 -233
@@ -1,43 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, ViewChild } from '@angular/core';
2
- import { BaseUlvSettingComponent } from 'barsa-novin-ray-core';
3
- import { UiGridFilterSettingsComponent } from '../ui-grid-filter-settings/ui-grid-filter-settings.component';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@fundamental-ngx/core";
6
- import * as i2 from "@fundamental-ngx/core/bar";
7
- import * as i3 from "@fundamental-ngx/core/button";
8
- import * as i4 from "@fundamental-ngx/core/dialog";
9
- import * as i5 from "@fundamental-ngx/cdk/utils";
10
- import * as i6 from "@fundamental-ngx/core/title";
11
- import * as i7 from "../ui-grid-filter-settings/ui-grid-filter-settings.component";
12
- import * as i8 from "@angular/common";
13
- import * as i9 from "barsa-novin-ray-core";
14
- export class UlvFilterSettingsComponent extends BaseUlvSettingComponent {
15
- constructor(dialogRef) {
16
- super();
17
- this.dialogRef = dialogRef;
18
- }
19
- ngOnInit() {
20
- this.context = this.dialogRef.data.context;
21
- this.controlsInfo$ = this.dialogRef.data.controlsInfo$;
22
- this.typeDefId = this.dialogRef.data.typeDefId;
23
- this.selectedColumnName = this.dialogRef.data.selectedColumnName;
24
- super.ngOnInit();
25
- }
26
- close(setting = null) {
27
- this.dialogRef.close(setting);
28
- }
29
- onOkClick() {
30
- const filters = this.gridFilterSettings.getFilters();
31
- this.close(filters);
32
- }
33
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UlvFilterSettingsComponent, deps: [{ token: i1.DialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
34
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: UlvFilterSettingsComponent, selector: "bsu-ulv-filter-settings", viewQueries: [{ propertyName: "gridFilterSettings", first: true, predicate: UiGridFilterSettingsComponent, 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\">{{ 'Filter' | bbbTranslate }}</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 (controlsInfo$ | async; as controlsInfo) {\n <bsu-ui-grid-filter-settings\n [columns]=\"allColumns\"\n [sortSettings]=\"sortSettings\"\n [controlsInfo]=\"controlsInfo\"\n [typeDefId]=\"typeDefId\"\n [selectedColumnName]=\"selectedColumnName\"\n ></bsu-ui-grid-filter-settings>\n }\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-dialog-footer-button>\n <button fd-button fdType=\"emphasized\" (click)=\"onOkClick()\" [label]=\"'OK' | bbbTranslate\"></button>\n </fd-dialog-footer-button>\n <fd-dialog-footer-button>\n <button fd-button (click)=\"onCancelSettings()\" [label]=\"'Cancel' | bbbTranslate\"></button>\n </fd-dialog-footer-button>\n </fd-dialog-footer>\n</fd-dialog>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: i2.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "directive", type: i2.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i4.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i4.DialogBodyComponent, selector: "fd-dialog-body", inputs: ["disablePaddings"] }, { kind: "component", type: i4.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i4.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "directive", type: i5.TemplateDirective, selector: "[fdkTemplate]", inputs: ["fdkTemplate"] }, { kind: "component", type: i6.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i7.UiGridFilterSettingsComponent, selector: "bsu-ui-grid-filter-settings", inputs: ["sortDirections", "typeDefId", "selectedColumnName", "filters", "columns", "controlsInfo"] }, { kind: "pipe", type: i8.AsyncPipe, name: "async" }, { kind: "pipe", type: i9.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
35
- }
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UlvFilterSettingsComponent, decorators: [{
37
- type: Component,
38
- args: [{ selector: 'bsu-ulv-filter-settings', 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\">{{ 'Filter' | bbbTranslate }}</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 (controlsInfo$ | async; as controlsInfo) {\n <bsu-ui-grid-filter-settings\n [columns]=\"allColumns\"\n [sortSettings]=\"sortSettings\"\n [controlsInfo]=\"controlsInfo\"\n [typeDefId]=\"typeDefId\"\n [selectedColumnName]=\"selectedColumnName\"\n ></bsu-ui-grid-filter-settings>\n }\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-dialog-footer-button>\n <button fd-button fdType=\"emphasized\" (click)=\"onOkClick()\" [label]=\"'OK' | bbbTranslate\"></button>\n </fd-dialog-footer-button>\n <fd-dialog-footer-button>\n <button fd-button (click)=\"onCancelSettings()\" [label]=\"'Cancel' | bbbTranslate\"></button>\n </fd-dialog-footer-button>\n </fd-dialog-footer>\n</fd-dialog>\n" }]
39
- }], ctorParameters: () => [{ type: i1.DialogRef }], propDecorators: { gridFilterSettings: [{
40
- type: ViewChild,
41
- args: [UiGridFilterSettingsComponent]
42
- }] } });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWx2LWZpbHRlci1zZXR0aW5ncy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi91bHYtZmlsdGVyLXNldHRpbmdzL3Vsdi1maWx0ZXItc2V0dGluZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWx2LWZpbHRlci1zZXR0aW5ncy91bHYtZmlsdGVyLXNldHRpbmdzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3RGLE9BQU8sRUFBRSx1QkFBdUIsRUFBMkIsTUFBTSxzQkFBc0IsQ0FBQztBQUV4RixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQzs7Ozs7Ozs7Ozs7QUFPN0csTUFBTSxPQUFPLDBCQUEyQixTQUFRLHVCQUF1QjtJQU1uRSxZQUFvQixTQUFvQjtRQUNwQyxLQUFLLEVBQUUsQ0FBQztRQURRLGNBQVMsR0FBVCxTQUFTLENBQVc7SUFFeEMsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUMzQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUN2RCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUMvQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUM7UUFDakUsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFDRCxLQUFLLENBQUMsVUFBZSxJQUFJO1FBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFDRCxTQUFTO1FBQ0wsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3JELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEIsQ0FBQzsrR0F2QlEsMEJBQTBCO21HQUExQiwwQkFBMEIsbUhBQ3hCLDZCQUE2Qix1RUNiNUMseTZDQW9DQTs7NEZEeEJhLDBCQUEwQjtrQkFOdEMsU0FBUzsrQkFDSSx5QkFBeUIsbUJBR2xCLHVCQUF1QixDQUFDLE1BQU07OEVBSS9DLGtCQUFrQjtzQkFEakIsU0FBUzt1QkFBQyw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEaWFsb2dSZWYgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQmFzZVVsdlNldHRpbmdDb21wb25lbnQsIEdlbmVyYWxDb250cm9sSW5mb01vZGVsIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFVpR3JpZEZpbHRlclNldHRpbmdzQ29tcG9uZW50IH0gZnJvbSAnLi4vdWktZ3JpZC1maWx0ZXItc2V0dGluZ3MvdWktZ3JpZC1maWx0ZXItc2V0dGluZ3MuY29tcG9uZW50JztcclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JzdS11bHYtZmlsdGVyLXNldHRpbmdzJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi91bHYtZmlsdGVyLXNldHRpbmdzLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3Vsdi1maWx0ZXItc2V0dGluZ3MuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVbHZGaWx0ZXJTZXR0aW5nc0NvbXBvbmVudCBleHRlbmRzIEJhc2VVbHZTZXR0aW5nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBWaWV3Q2hpbGQoVWlHcmlkRmlsdGVyU2V0dGluZ3NDb21wb25lbnQpXHJcbiAgICBncmlkRmlsdGVyU2V0dGluZ3M6IFVpR3JpZEZpbHRlclNldHRpbmdzQ29tcG9uZW50O1xyXG4gICAgY29udHJvbHNJbmZvJDogT2JzZXJ2YWJsZTxHZW5lcmFsQ29udHJvbEluZm9Nb2RlbFtdPjtcclxuICAgIHR5cGVEZWZJZDogc3RyaW5nO1xyXG4gICAgc2VsZWN0ZWRDb2x1bW5OYW1lOiBzdHJpbmc7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRpYWxvZ1JlZjogRGlhbG9nUmVmKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmNvbnRleHQgPSB0aGlzLmRpYWxvZ1JlZi5kYXRhLmNvbnRleHQ7XHJcbiAgICAgICAgdGhpcy5jb250cm9sc0luZm8kID0gdGhpcy5kaWFsb2dSZWYuZGF0YS5jb250cm9sc0luZm8kO1xyXG4gICAgICAgIHRoaXMudHlwZURlZklkID0gdGhpcy5kaWFsb2dSZWYuZGF0YS50eXBlRGVmSWQ7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZENvbHVtbk5hbWUgPSB0aGlzLmRpYWxvZ1JlZi5kYXRhLnNlbGVjdGVkQ29sdW1uTmFtZTtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgfVxyXG4gICAgY2xvc2Uoc2V0dGluZzogYW55ID0gbnVsbCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHNldHRpbmcpO1xyXG4gICAgfVxyXG4gICAgb25Pa0NsaWNrKCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGZpbHRlcnMgPSB0aGlzLmdyaWRGaWx0ZXJTZXR0aW5ncy5nZXRGaWx0ZXJzKCk7XHJcbiAgICAgICAgdGhpcy5jbG9zZShmaWx0ZXJzKTtcclxuICAgIH1cclxufVxyXG4iLCI8ZmQtZGlhbG9nPlxuICAgIDxmZC1kaWFsb2ctaGVhZGVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgZmRrVGVtcGxhdGU9XCJoZWFkZXJcIj5cbiAgICAgICAgICAgIDxkaXYgZmQtYmFyLWxlZnQ+XG4gICAgICAgICAgICAgICAgPGZkLWJhci1lbGVtZW50PlxuICAgICAgICAgICAgICAgICAgICA8aDQgZmQtdGl0bGUgW2hlYWRlclNpemVdPVwiNFwiPnt7ICdGaWx0ZXInIHwgYmJiVHJhbnNsYXRlIH19PC9oND5cbiAgICAgICAgICAgICAgICA8L2ZkLWJhci1lbGVtZW50PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGZkLWJhci1yaWdodD5cbiAgICAgICAgICAgICAgICA8ZmQtYmFyLWVsZW1lbnQ+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gZmQtYnV0dG9uIFtsYWJlbF09XCInUmVzZXQnIHwgYmJiVHJhbnNsYXRlXCIgW2ZkVHlwZV09XCIndHJhbnNwYXJlbnQnXCI+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9mZC1iYXItZWxlbWVudD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZmQtZGlhbG9nLWhlYWRlcj5cbiAgICA8ZmQtZGlhbG9nLWJvZHkgY2xhc3M9XCJzZXR0aW5nLXdyYXBwZXJcIj5cbiAgICAgICAgQGlmIChjb250cm9sc0luZm8kIHwgYXN5bmM7IGFzIGNvbnRyb2xzSW5mbykge1xuICAgICAgICA8YnN1LXVpLWdyaWQtZmlsdGVyLXNldHRpbmdzXG4gICAgICAgICAgICBbY29sdW1uc109XCJhbGxDb2x1bW5zXCJcbiAgICAgICAgICAgIFtzb3J0U2V0dGluZ3NdPVwic29ydFNldHRpbmdzXCJcbiAgICAgICAgICAgIFtjb250cm9sc0luZm9dPVwiY29udHJvbHNJbmZvXCJcbiAgICAgICAgICAgIFt0eXBlRGVmSWRdPVwidHlwZURlZklkXCJcbiAgICAgICAgICAgIFtzZWxlY3RlZENvbHVtbk5hbWVdPVwic2VsZWN0ZWRDb2x1bW5OYW1lXCJcbiAgICAgICAgPjwvYnN1LXVpLWdyaWQtZmlsdGVyLXNldHRpbmdzPlxuICAgICAgICB9XG4gICAgPC9mZC1kaWFsb2ctYm9keT5cblxuICAgIDxmZC1kaWFsb2ctZm9vdGVyPlxuICAgICAgICA8ZmQtZGlhbG9nLWZvb3Rlci1idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uIGZkLWJ1dHRvbiBmZFR5cGU9XCJlbXBoYXNpemVkXCIgKGNsaWNrKT1cIm9uT2tDbGljaygpXCIgW2xhYmVsXT1cIidPSycgfCBiYmJUcmFuc2xhdGVcIj48L2J1dHRvbj5cbiAgICAgICAgPC9mZC1kaWFsb2ctZm9vdGVyLWJ1dHRvbj5cbiAgICAgICAgPGZkLWRpYWxvZy1mb290ZXItYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBmZC1idXR0b24gKGNsaWNrKT1cIm9uQ2FuY2VsU2V0dGluZ3MoKVwiIFtsYWJlbF09XCInQ2FuY2VsJyB8IGJiYlRyYW5zbGF0ZVwiPjwvYnV0dG9uPlxuICAgICAgICA8L2ZkLWRpYWxvZy1mb290ZXItYnV0dG9uPlxuICAgIDwvZmQtZGlhbG9nLWZvb3Rlcj5cbjwvZmQtZGlhbG9nPlxuIl19
@@ -1,196 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Input, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';
2
- import { BaseComponent, BarsaApi } from 'barsa-novin-ray-core';
3
- import { takeUntil } from 'rxjs/operators';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@fundamental-ngx/core";
6
- import * as i2 from "barsa-novin-ray-core";
7
- import * as i3 from "@fundamental-ngx/core/bar";
8
- import * as i4 from "@fundamental-ngx/core/button";
9
- import * as i5 from "@fundamental-ngx/core/dialog";
10
- import * as i6 from "@fundamental-ngx/cdk/utils";
11
- import * as i7 from "@fundamental-ngx/core/title";
12
- import * as i8 from "@fundamental-ngx/core/toolbar";
13
- import * as i9 from "@fundamental-ngx/core/token";
14
- import * as i10 from "../ui-ulv-main-ui/ui-ulv-main-ui.component";
15
- import * as i11 from "../fullscreen-dialog.directive";
16
- export class UlvFormMultiSelectComponent extends BaseComponent {
17
- constructor(_dialogService, _bbbTranslatePipe, _portalService, _contentDensityService) {
18
- super();
19
- this._dialogService = _dialogService;
20
- this._bbbTranslatePipe = _bbbTranslatePipe;
21
- /* eslint-disable */
22
- this.Show = (adapter, config) => {
23
- const largeScreen = this.deviceSize === 'l' || this.deviceSize === 'xl';
24
- const dialogConfig = {
25
- data: { ...config, adapter },
26
- escKeyCloseable: false,
27
- dialogPanelClass: `ulv-selection-form-dialog ${this.deviceSize ? 'ulv-selection-form-dialog-mobile' : ''}`,
28
- verticalPadding: false,
29
- focusTrapped: false
30
- };
31
- if (largeScreen) {
32
- dialogConfig.width = '50vw';
33
- dialogConfig.height = 'auto';
34
- dialogConfig.minWidth = '400';
35
- dialogConfig.minHeight = '60vh';
36
- }
37
- else {
38
- dialogConfig.mobile = true;
39
- dialogConfig.fullScreen = true;
40
- }
41
- if (adapter.HideOkCancelButtons) {
42
- dialogConfig.fullScreen = true;
43
- }
44
- const dialogRef = this._dialogService.open(this.dialogContainer, dialogConfig);
45
- dialogRef.loading(config.IsLoaded === true ? false : true); // means ulv is loaded and it does not show loading in dialog
46
- dialogRef.mask = (val) => {
47
- dialogRef.loading(val);
48
- };
49
- dialogRef.AddUlvToWindow = (ulvControl1, ulvControl2) => {
50
- dialogRef.loading(false);
51
- const selectFormTitleText = this._bbbTranslatePipe.transform('SelectFormTitle');
52
- dialogRef.data.title =
53
- ulvControl1.Setting.Extra?.ExtraJsonPropReport?.Title === false
54
- ? ''
55
- : selectFormTitleText.replace('{0}', ulvControl1.Setting.Extra.Report.TypeDefCaption);
56
- dialogRef.data.ulv1 = ulvControl1;
57
- if (ulvControl1.viewerControl) {
58
- this._handleUlvViewerEvent(ulvControl1, adapter, dialogRef);
59
- }
60
- else {
61
- ulvControl1.on({
62
- ViewerControlChanged: () => {
63
- this._handleUlvViewerEvent(ulvControl1, adapter, dialogRef);
64
- }
65
- });
66
- }
67
- if (ulvControl2) {
68
- dialogRef.data.ulv2 = ulvControl2;
69
- dialogRef.data.selectedItems = ulvControl2.Setting.Data;
70
- }
71
- };
72
- return dialogRef;
73
- /* eslint-disable */
74
- };
75
- this.contentDensity$ = _contentDensityService.contentDensity;
76
- BarsaApi.Bw.UlvFormMultiSelect = this;
77
- _portalService.deviceSize$.pipe(takeUntil(this._onDestroy$)).subscribe((c) => {
78
- this.deviceSize = c;
79
- });
80
- }
81
- _handleUlvViewerEvent(ulvControl1, adapter, dialogRef) {
82
- ulvControl1.viewerControl.ShowOkCancelButtons = adapter.ShowOkCancelButtons;
83
- ulvControl1.viewerControl.on({
84
- /* eslint-disable */
85
- rowselect: (sender, index, mo) => {
86
- this._addItem(dialogRef, mo);
87
- },
88
- /* eslint-disable */
89
- rowdeselect: (sender, index, mo) => {
90
- this._removeItem(dialogRef, mo);
91
- },
92
- rowSelectAll: () => {
93
- ulvControl1.Setting.Data.MoDataList.forEach((mo) => {
94
- this._addItem(dialogRef, mo);
95
- });
96
- },
97
- rowDeSelectAll: () => {
98
- ulvControl1.Setting.Data.MoDataList.forEach((mo) => {
99
- this._removeItem(dialogRef, mo);
100
- });
101
- }
102
- });
103
- }
104
- onOk(dialogRef) {
105
- const { ulv, ulv2 } = this._getUlv(dialogRef);
106
- // if (ulv) {
107
- // if (ulv2) {
108
- // const adapter = dialogRef.data.adapter;
109
- // adapter.fireEvent('AddRemoveButtonClick', adapter, 'Add');
110
- // }
111
- // }
112
- this._btnClick(ulv, 'Ok');
113
- }
114
- _getUlv(dialogRef) {
115
- const ulv2 = dialogRef.data.ulv2;
116
- const ulv1 = dialogRef.data.ulv1;
117
- const ulv = ulv2 || ulv1;
118
- return { ulv, ulv2 };
119
- }
120
- _btnClick(ulv, btnKey) {
121
- const okBtn = ulv.buttons.find((c) => c.Key === btnKey);
122
- const scope = okBtn.scope;
123
- okBtn.handler.bind(scope)(okBtn);
124
- }
125
- onCancel(dialogRef) {
126
- if (!dialogRef.data.adapter?.ShowOkCancelButtons) {
127
- dialogRef.dismiss();
128
- return;
129
- }
130
- const { ulv, ulv2 } = this._getUlv(dialogRef);
131
- if (!ulv) {
132
- dialogRef.dismiss();
133
- }
134
- this._btnClick(ulv, 'Cancel');
135
- }
136
- onClear(dialogRef) {
137
- dialogRef.data.ulv1.viewerControl.fireEvent('ClearAllSelected');
138
- dialogRef.data.selectedItems.MoDataList = [];
139
- }
140
- onRemoveSelected(dialogRef, item) {
141
- this._removeItem(dialogRef, item);
142
- }
143
- _removeItem(dialogRef, mo) {
144
- const selectedItems = dialogRef.data.selectedItems;
145
- if (!selectedItems) {
146
- return;
147
- }
148
- selectedItems.MoDataList = selectedItems.MoDataList.filter((c) => c.Id !== mo.Id);
149
- dialogRef.data.ulv1.viewerControl.fireEvent('DeselectRowInDialog', [mo]);
150
- if (dialogRef.data.ulv2) {
151
- const adapter = dialogRef.data.adapter;
152
- adapter.fireEvent('AddRemoveButtonClick', adapter, 'RemoveMo', mo);
153
- }
154
- // const adapter = dialogRef.data.adapter;
155
- // adapter.fireEvent('AddRemoveButtonClick', adapter, 'Remove');
156
- }
157
- _addItem(dialogRef, mo) {
158
- const selectedItems = dialogRef.data.selectedItems;
159
- if (!selectedItems) {
160
- return;
161
- }
162
- if (!selectedItems.MoDataList.find((c) => c.Id === mo.Id)) {
163
- if (!mo.$Caption) {
164
- const x = Object.keys(mo).filter((c) => !c.startsWith('$') && c !== 'Id');
165
- if (x.length) {
166
- mo.$Caption = mo[x[0]];
167
- }
168
- }
169
- selectedItems.MoDataList = [...selectedItems.MoDataList, mo];
170
- if (dialogRef.data.ulv2) {
171
- const adapter = dialogRef.data.adapter;
172
- adapter.fireEvent('AddRemoveButtonClick', adapter, 'Add');
173
- }
174
- // const adapter = dialogRef.data.adapter;
175
- // adapter.fireEvent('AddRemoveButtonClick', adapter, 'Add');
176
- }
177
- }
178
- _trackBySelectedFn(_index, item) {
179
- return item.Id;
180
- }
181
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UlvFormMultiSelectComponent, deps: [{ token: i1.DialogService }, { token: i2.BbbTranslatePipe }, { token: i2.PortalService }, { token: i1.ContentDensityService }], target: i0.ɵɵFactoryTarget.Component }); }
182
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: UlvFormMultiSelectComponent, selector: "bsu-ulv-form-multi-select", inputs: { Show: "Show" }, viewQueries: [{ propertyName: "dialogContainer", first: true, predicate: ["container"], descendants: true, read: TemplateRef }, { propertyName: "dialogComponent", first: true, predicate: ["dialogTpl"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #container>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\" #dialogTpl>\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n <fd-bar-element>\n <h1 id=\"fd-dialog-header-3\" fd-title>{{ dialog.data.title }}</h1>\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n @if (!dialogConfig.fullscreen && !dialogConfig.mobile) {\n <fd-button-bar\n ariaLabel=\"fullscreen\"\n [glyph]=\"dialog.data.fullscreen ? 'exitfullscreen' : 'resize'\"\n fullscreenDialog\n [dialog]=\"dialog\"\n [fullscreen]=\"dialog.data.fullscreen\"\n (fullscreenChanged)=\"dialog.data.fullscreen = $event\"\n [dialogComponent]=\"dialogTpl\"\n ></fd-button-bar>\n }\n <fd-button-bar ariaLabel=\"close\" glyph=\"decline\" (click)=\"onCancel(dialog)\"></fd-button-bar>\n </div>\n </ng-template>\n <!-- <h3 fd-title>{{ dialog.data.title }}</h3>\n <button fd-dialog-close-button></button> -->\n </fd-dialog-header>\n\n <fd-dialog-body>\n @if (dialog.data.ulv1; as ulv1) {\n <bsu-ui-ulv-main-ui\n class=\"ulv-form-multi-select\"\n [context]=\"ulv1\"\n [inDialog]=\"true\"\n [isMultiSelect]=\"dialog.data.ShowSecondPanel\"\n [fullscreen]=\"dialog.data.fullscreen\"\n ></bsu-ui-ulv-main-ui>\n }\n </fd-dialog-body>\n @if (dialog.data.ulv2 && dialog.data.ShowSecondPanel) {\n <fd-dialog-footer class=\"ulvSelection\">\n <ng-template fdkTemplate=\"footer\">\n <div\n class=\"ulv-selection-form-dialog__row ulv-selection-form-dialog__selection-row\"\n [aria-label]=\"'SelectedItemsAndConditions' | bbbTranslate\"\n >\n <h5 fd-title class=\"selected-and-condition-title !tw-pb-2\">\n <ng-container>\n <ng-container>{{ 'SelectedItemsAndConditions' | bbbTranslate }} </ng-container>\n ({{ dialog.data.selectedItems?.MoDataList?.length || 0 }})\n </ng-container>\n </h5>\n <div class=\"ulv-selection-form-dialog__tokens-wrapper\">\n <div class=\"ulv-selection-form-dialog__tokens\">\n @if (dialog.data.selectedItems) {\n <fd-toolbar [shouldOverflow]=\"true\">\n <!-- Selected items -->\n @for ( item of dialog.data.selectedItems.MoDataList; track\n _trackBySelectedFn(selectedIndex, item); let selectedIndex = $index) {\n <fd-token\n fd-toolbar-item\n fdOverflowPriority=\"high\"\n class=\"fdp-value-help-dialog__selection-token\"\n (onCloseClick)=\"onRemoveSelected(dialog, item)\"\n >{{ item.$Caption }}\n </fd-token>\n }\n </fd-toolbar>\n }\n </div>\n <button\n class=\"ulv-selection-form-dialog__tokens-clear\"\n fd-button\n fdType=\"transparent\"\n glyph=\"decline\"\n [aria-label]=\"'Clear' | bbbTranslate\"\n (click)=\"onClear(dialog)\"\n ></button>\n </div>\n </div>\n </ng-template>\n </fd-dialog-footer>\n } @if (dialog.data.ulv1 && !dialog.data.ulv1?.HideOkCancelButtons) {\n <fd-dialog-footer>\n <ng-template fdkTemplate=\"footer\">\n @if (dialog.data.adapter?.ShowOkCancelButtons !== false) {\n <div class=\"fd-bar__right\">\n <button\n fd-button\n data-succes\n [label]=\"'OK' | bbbTranslate\"\n fdType=\"emphasized\"\n (click)=\"onOk(dialog)\"\n ></button>\n <button\n fd-button\n data-dismiss-dialog\n fd-dialog-decisive-button\n [label]=\"'Cancel' | bbbTranslate\"\n [fdType]=\"'transparent'\"\n (click)=\"onCancel(dialog)\"\n ></button>\n </div>\n }\n </ng-template>\n </fd-dialog-footer>\n }\n </fd-dialog>\n</ng-template>\n", styles: [".ulv-selection-form-dialog{cursor:default}.ulv-selection-form-dialog .fd-dialog__body bsu-ui-table-view{overflow-x:inherit!important}.ulv-selection-form-dialog__advanced-filters{padding-top:1rem}.ulv-selection-form-dialog__advanced-filters label{height:auto}.ulv-selection-form-dialog__toggle-filters{display:flex;justify-content:flex-end;align-items:flex-end}.ulv-selection-form-dialog__toggle-filters .fd-button{margin-bottom:.25rem}.ulv-selection-form-dialog__advanced-actions{display:flex;align-items:center;justify-content:flex-end}.ulv-selection-form-dialog-mobile .ulv-selection-form-dialog__advanced-actions{justify-content:flex-start}.ulv-selection-form-dialog__advanced-actions .fd-toolbar{padding:0}.ulv-selection-form-dialog fd-dialog-body{height:100%;display:flex;flex-direction:column}.ulv-selection-form-dialog bsu-ui-ulv-main-ui{height:100%;flex-grow:1}.ulv-selection-form-dialog bsu-ui-ulv-main-ui .viewer-container{height:auto;overflow:auto}.ulv-selection-form-dialog .ulv-selection-form-dialog__row{border-top:.0625rem solid var(--sapPageFooter_BorderColor, #d9d9d9);padding-top:1rem}.ulv-selection-form-dialog bsu-search-panel{border-bottom:.0625rem solid var(--sapPageFooter_BorderColor, #d9d9d9)}.ulv-selection-form-dialog fd-dialog-footer{height:auto}.ulv-selection-form-dialog fd-dialog-footer.ulvSelection .fd-bar{padding:0!important;height:7rem!important}.ulv-selection-form-dialog fd-dialog-footer.ulvSelection .fd-bar>div{width:100%}.ulv-selection-form-dialog__content-holder{padding:0 2rem 1rem;display:flex;flex-direction:column;height:100%;width:100%;overflow:hidden}.ulv-selection-form-dialog__row{padding:0 1rem}.ulv-selection-form-dialog__row.ulv-selection-form-dialog__selection-row{background-color:#f7f7f7;background-color:var(--sapBackgroundColor, #f7f7f7)}.ulv-selection-form-dialog__tokens-wrapper{display:flex}.ulv-selection-form-dialog__tokens{display:flex;flex:1 1 auto;overflow:hidden;align-items:center;border:1px solid #89919a;border-color:var(--sapContent_ForegroundBorderColor, #89919a);border-radius:.25rem;border-radius:var(--sapElement_BorderCornerRadius, .25rem);background:none}.ulv-selection-form-dialog__tokens fd-toolbar{flex:1 1 auto;overflow:hidden}.ulv-selection-form-dialog__tokens-clear{height:auto;min-width:2rem;padding:.125rem 0;justify-content:center}.ulv-selection-form-dialog__actions-row{padding:.5rem 0;display:flex;align-items:center;justify-content:flex-end;border-top:.0625rem solid #d9d9d9;border-top:.0625rem solid var(--sapPageFooter_BorderColor, #d9d9d9)}.ulv-selection-form-dialog__actions-row .fd-button{margin-left:.5rem}.ulv-selection-form-dialog__tokens-wrapper{align-items:center}\n"], dependencies: [{ 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: i3.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabelledby", "id"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i5.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i5.DialogBodyComponent, selector: "fd-dialog-body", inputs: ["disablePaddings"] }, { kind: "component", type: i5.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i5.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "directive", type: i6.TemplateDirective, selector: "[fdkTemplate]", inputs: ["fdkTemplate"] }, { kind: "component", type: i7.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i8.ToolbarComponent, selector: "fd-toolbar", inputs: ["titleId", "class", "shouldOverflow", "fdType", "title", "active", "clearBorder", "forceOverflow", "tabindex", "headingLevel", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: i8.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "component", type: i9.TokenComponent, selector: "fd-token", inputs: ["disabled", "selected", "readOnly"], outputs: ["onCloseClick", "onRemove", "onTokenClick", "onTokenKeydown", "elementFocused"] }, { kind: "component", type: i10.UiUlvMainUiComponent, selector: "bsu-ui-ulv-main-ui", inputs: ["context", "isReportPage", "inDialog", "isMultiSelect", "layoutInfo", "fullscreen"] }, { kind: "directive", type: i11.FullscreenDialogDirective, selector: "[fullscreenDialog]", inputs: ["dialog", "dialogComponent", "fullscreen"], outputs: ["fullscreenChanged"] }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
183
- }
184
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UlvFormMultiSelectComponent, decorators: [{
185
- type: Component,
186
- args: [{ selector: 'bsu-ulv-form-multi-select', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #container>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\" #dialogTpl>\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n <fd-bar-element>\n <h1 id=\"fd-dialog-header-3\" fd-title>{{ dialog.data.title }}</h1>\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n @if (!dialogConfig.fullscreen && !dialogConfig.mobile) {\n <fd-button-bar\n ariaLabel=\"fullscreen\"\n [glyph]=\"dialog.data.fullscreen ? 'exitfullscreen' : 'resize'\"\n fullscreenDialog\n [dialog]=\"dialog\"\n [fullscreen]=\"dialog.data.fullscreen\"\n (fullscreenChanged)=\"dialog.data.fullscreen = $event\"\n [dialogComponent]=\"dialogTpl\"\n ></fd-button-bar>\n }\n <fd-button-bar ariaLabel=\"close\" glyph=\"decline\" (click)=\"onCancel(dialog)\"></fd-button-bar>\n </div>\n </ng-template>\n <!-- <h3 fd-title>{{ dialog.data.title }}</h3>\n <button fd-dialog-close-button></button> -->\n </fd-dialog-header>\n\n <fd-dialog-body>\n @if (dialog.data.ulv1; as ulv1) {\n <bsu-ui-ulv-main-ui\n class=\"ulv-form-multi-select\"\n [context]=\"ulv1\"\n [inDialog]=\"true\"\n [isMultiSelect]=\"dialog.data.ShowSecondPanel\"\n [fullscreen]=\"dialog.data.fullscreen\"\n ></bsu-ui-ulv-main-ui>\n }\n </fd-dialog-body>\n @if (dialog.data.ulv2 && dialog.data.ShowSecondPanel) {\n <fd-dialog-footer class=\"ulvSelection\">\n <ng-template fdkTemplate=\"footer\">\n <div\n class=\"ulv-selection-form-dialog__row ulv-selection-form-dialog__selection-row\"\n [aria-label]=\"'SelectedItemsAndConditions' | bbbTranslate\"\n >\n <h5 fd-title class=\"selected-and-condition-title !tw-pb-2\">\n <ng-container>\n <ng-container>{{ 'SelectedItemsAndConditions' | bbbTranslate }} </ng-container>\n ({{ dialog.data.selectedItems?.MoDataList?.length || 0 }})\n </ng-container>\n </h5>\n <div class=\"ulv-selection-form-dialog__tokens-wrapper\">\n <div class=\"ulv-selection-form-dialog__tokens\">\n @if (dialog.data.selectedItems) {\n <fd-toolbar [shouldOverflow]=\"true\">\n <!-- Selected items -->\n @for ( item of dialog.data.selectedItems.MoDataList; track\n _trackBySelectedFn(selectedIndex, item); let selectedIndex = $index) {\n <fd-token\n fd-toolbar-item\n fdOverflowPriority=\"high\"\n class=\"fdp-value-help-dialog__selection-token\"\n (onCloseClick)=\"onRemoveSelected(dialog, item)\"\n >{{ item.$Caption }}\n </fd-token>\n }\n </fd-toolbar>\n }\n </div>\n <button\n class=\"ulv-selection-form-dialog__tokens-clear\"\n fd-button\n fdType=\"transparent\"\n glyph=\"decline\"\n [aria-label]=\"'Clear' | bbbTranslate\"\n (click)=\"onClear(dialog)\"\n ></button>\n </div>\n </div>\n </ng-template>\n </fd-dialog-footer>\n } @if (dialog.data.ulv1 && !dialog.data.ulv1?.HideOkCancelButtons) {\n <fd-dialog-footer>\n <ng-template fdkTemplate=\"footer\">\n @if (dialog.data.adapter?.ShowOkCancelButtons !== false) {\n <div class=\"fd-bar__right\">\n <button\n fd-button\n data-succes\n [label]=\"'OK' | bbbTranslate\"\n fdType=\"emphasized\"\n (click)=\"onOk(dialog)\"\n ></button>\n <button\n fd-button\n data-dismiss-dialog\n fd-dialog-decisive-button\n [label]=\"'Cancel' | bbbTranslate\"\n [fdType]=\"'transparent'\"\n (click)=\"onCancel(dialog)\"\n ></button>\n </div>\n }\n </ng-template>\n </fd-dialog-footer>\n }\n </fd-dialog>\n</ng-template>\n", styles: [".ulv-selection-form-dialog{cursor:default}.ulv-selection-form-dialog .fd-dialog__body bsu-ui-table-view{overflow-x:inherit!important}.ulv-selection-form-dialog__advanced-filters{padding-top:1rem}.ulv-selection-form-dialog__advanced-filters label{height:auto}.ulv-selection-form-dialog__toggle-filters{display:flex;justify-content:flex-end;align-items:flex-end}.ulv-selection-form-dialog__toggle-filters .fd-button{margin-bottom:.25rem}.ulv-selection-form-dialog__advanced-actions{display:flex;align-items:center;justify-content:flex-end}.ulv-selection-form-dialog-mobile .ulv-selection-form-dialog__advanced-actions{justify-content:flex-start}.ulv-selection-form-dialog__advanced-actions .fd-toolbar{padding:0}.ulv-selection-form-dialog fd-dialog-body{height:100%;display:flex;flex-direction:column}.ulv-selection-form-dialog bsu-ui-ulv-main-ui{height:100%;flex-grow:1}.ulv-selection-form-dialog bsu-ui-ulv-main-ui .viewer-container{height:auto;overflow:auto}.ulv-selection-form-dialog .ulv-selection-form-dialog__row{border-top:.0625rem solid var(--sapPageFooter_BorderColor, #d9d9d9);padding-top:1rem}.ulv-selection-form-dialog bsu-search-panel{border-bottom:.0625rem solid var(--sapPageFooter_BorderColor, #d9d9d9)}.ulv-selection-form-dialog fd-dialog-footer{height:auto}.ulv-selection-form-dialog fd-dialog-footer.ulvSelection .fd-bar{padding:0!important;height:7rem!important}.ulv-selection-form-dialog fd-dialog-footer.ulvSelection .fd-bar>div{width:100%}.ulv-selection-form-dialog__content-holder{padding:0 2rem 1rem;display:flex;flex-direction:column;height:100%;width:100%;overflow:hidden}.ulv-selection-form-dialog__row{padding:0 1rem}.ulv-selection-form-dialog__row.ulv-selection-form-dialog__selection-row{background-color:#f7f7f7;background-color:var(--sapBackgroundColor, #f7f7f7)}.ulv-selection-form-dialog__tokens-wrapper{display:flex}.ulv-selection-form-dialog__tokens{display:flex;flex:1 1 auto;overflow:hidden;align-items:center;border:1px solid #89919a;border-color:var(--sapContent_ForegroundBorderColor, #89919a);border-radius:.25rem;border-radius:var(--sapElement_BorderCornerRadius, .25rem);background:none}.ulv-selection-form-dialog__tokens fd-toolbar{flex:1 1 auto;overflow:hidden}.ulv-selection-form-dialog__tokens-clear{height:auto;min-width:2rem;padding:.125rem 0;justify-content:center}.ulv-selection-form-dialog__actions-row{padding:.5rem 0;display:flex;align-items:center;justify-content:flex-end;border-top:.0625rem solid #d9d9d9;border-top:.0625rem solid var(--sapPageFooter_BorderColor, #d9d9d9)}.ulv-selection-form-dialog__actions-row .fd-button{margin-left:.5rem}.ulv-selection-form-dialog__tokens-wrapper{align-items:center}\n"] }]
187
- }], ctorParameters: () => [{ type: i1.DialogService }, { type: i2.BbbTranslatePipe }, { type: i2.PortalService }, { type: i1.ContentDensityService }], propDecorators: { dialogContainer: [{
188
- type: ViewChild,
189
- args: ['container', { read: TemplateRef }]
190
- }], dialogComponent: [{
191
- type: ViewChild,
192
- args: ['dialogTpl']
193
- }], Show: [{
194
- type: Input
195
- }] } });
196
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWx2LWZvcm0tbXVsdGktc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL3Vsdi1mb3JtLW11bHRpLXNlbGVjdC91bHYtZm9ybS1tdWx0aS1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWx2LWZvcm0tbXVsdGktc2VsZWN0L3Vsdi1mb3JtLW11bHRpLXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBUXJILE9BQU8sRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUF3RCxNQUFNLHNCQUFzQixDQUFDO0FBRXJILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVMzQyxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsYUFBYTtJQVMxRCxZQUNZLGNBQTZCLEVBQzdCLGlCQUFtQyxFQUMzQyxjQUE2QixFQUM3QixzQkFBNkM7UUFFN0MsS0FBSyxFQUFFLENBQUM7UUFMQSxtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBVy9DLG9CQUFvQjtRQUNYLFNBQUksR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNoQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxLQUFLLEdBQUcsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLElBQUksQ0FBQztZQUN4RSxNQUFNLFlBQVksR0FBMkI7Z0JBQ3pDLElBQUksRUFBRSxFQUFFLEdBQUcsTUFBTSxFQUFFLE9BQU8sRUFBRTtnQkFD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Q3RCLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO2dCQUN2QyxPQUFPLENBQUMsU0FBUyxDQUFDLHNCQUFzQixFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztZQUM5RCxDQUFDO1lBRUQsMENBQTBDO1lBQzFDLDZEQUE2RDtRQUNqRSxDQUFDO0lBQ0wsQ0FBQztJQUVELGtCQUFrQixDQUFDLE1BQWMsRUFBRSxJQUF5QjtRQUN4RCxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDbkIsQ0FBQzsrR0F6TFEsMkJBQTJCO21HQUEzQiwyQkFBMkIsb0xBQ0osV0FBVyxtSkNwQi9DLHV0S0E2R0E7OzRGRDFGYSwyQkFBMkI7a0JBUHZDLFNBQVM7K0JBQ0ksMkJBQTJCLGlCQUd0QixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNO2lMQUkvQyxlQUFlO3NCQURkLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFHN0MsZUFBZTtzQkFEZCxTQUFTO3VCQUFDLFdBQVc7Z0JBb0JiLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBDb250ZW50RGVuc2l0eSxcbiAgICBDb250ZW50RGVuc2l0eVNlcnZpY2UsXG4gICAgRGlhbG9nQ29tcG9uZW50LFxuICAgIERpYWxvZ1JlZixcbiAgICBEaWFsb2dTZXJ2aWNlXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50LCBCYXJzYUFwaSwgTWV0YW9iamVjdERhdGFNb2RlbCwgQmJiVHJhbnNsYXRlUGlwZSwgUG9ydGFsU2VydmljZSB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtdWx2LWZvcm0tbXVsdGktc2VsZWN0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdWx2LWZvcm0tbXVsdGktc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi91bHYtZm9ybS1tdWx0aS1zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFVsdkZvcm1NdWx0aVNlbGVjdENvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICAgIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgICBkaWFsb2dDb250YWluZXI6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgQFZpZXdDaGlsZCgnZGlhbG9nVHBsJylcbiAgICBkaWFsb2dDb21wb25lbnQ6IERpYWxvZ0NvbXBvbmVudDtcblxuICAgIGRldmljZVNpemU6IHN0cmluZztcbiAgICBjb250ZW50RGVuc2l0eSQ6IE9ic2VydmFibGU8Q29udGVudERlbnNpdHk+O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX2RpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX2JiYlRyYW5zbGF0ZVBpcGU6IEJiYlRyYW5zbGF0ZVBpcGUsXG4gICAgICAgIF9wb3J0YWxTZXJ2aWNlOiBQb3J0YWxTZXJ2aWNlLFxuICAgICAgICBfY29udGVudERlbnNpdHlTZXJ2aWNlOiBDb250ZW50RGVuc2l0eVNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5jb250ZW50RGVuc2l0eSQgPSBfY29udGVudERlbnNpdHlTZXJ2aWNlLmNvbnRlbnREZW5zaXR5O1xuICAgICAgICBCYXJzYUFwaS5Cdy5VbHZGb3JtTXVsdGlTZWxlY3QgPSB0aGlzO1xuICAgICAgICBfcG9ydGFsU2VydmljZS5kZXZpY2VTaXplJC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKChjKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRldmljZVNpemUgPSBjO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyogZXNsaW50LWRpc2FibGUgKi9cbiAgICBASW5wdXQoKSBTaG93ID0gKGFkYXB0ZXIsIGNvbmZpZykgPT4ge1xuICAgICAgICBjb25zdCBsYXJnZVNjcmVlbiA9IHRoaXMuZGV2aWNlU2l6ZSA9PT0gJ2wnIHx8IHRoaXMuZGV2aWNlU2l6ZSA9PT0gJ3hsJztcbiAgICAgICAgY29uc3QgZGlhbG9nQ29uZmlnOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge1xuICAgICAgICAgICAgZGF0YTogeyAuLi5jb25maWcsIGFkYXB0ZXIgfSxcbiAgICAgICAgICAgIGVzY0tleUNsb3NlYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBkaWFsb2dQYW5lbENsYXNzOiBgdWx2LXNlbGVjdGlvbi1mb3JtLWRpYWxvZyAke3RoaXMuZGV2aWNlU2l6ZSA/ICd1bHYtc2VsZWN0aW9uLWZvcm0tZGlhbG9nLW1vYmlsZScgOiAnJ31gLFxuICAgICAgICAgICAgdmVydGljYWxQYWRkaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIGZvY3VzVHJhcHBlZDogZmFsc2VcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGxhcmdlU2NyZWVuKSB7XG4gICAgICAgICAgICBkaWFsb2dDb25maWcud2lkdGggPSAnNTB2dyc7XG4gICAgICAgICAgICBkaWFsb2dDb25maWcuaGVpZ2h0ID0gJ2F1dG8nO1xuICAgICAgICAgICAgZGlhbG9nQ29uZmlnLm1pbldpZHRoID0gJzQwMCc7XG4gICAgICAgICAgICBkaWFsb2dDb25maWcubWluSGVpZ2h0ID0gJzYwdmgnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGlhbG9nQ29uZmlnLm1vYmlsZSA9IHRydWU7XG4gICAgICAgICAgICBkaWFsb2dDb25maWcuZnVsbFNjcmVlbiA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFkYXB0ZXIuSGlkZU9rQ2FuY2VsQnV0dG9ucykge1xuICAgICAgICAgICAgZGlhbG9nQ29uZmlnLmZ1bGxTY3JlZW4gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuX2RpYWxvZ1NlcnZpY2Uub3Blbih0aGlzLmRpYWxvZ0NvbnRhaW5lciwgZGlhbG9nQ29uZmlnKTtcblxuICAgICAgICBkaWFsb2dSZWYubG9hZGluZyhjb25maWcuSXNMb2FkZWQgPT09IHRydWUgPyBmYWxzZSA6IHRydWUpOyAvLyBtZWFucyB1bHYgaXMgbG9hZGVkIGFuZCBpdCBkb2VzIG5vdCBzaG93IGxvYWRpbmcgaW4gZGlhbG9nXG4gICAgICAgIChkaWFsb2dSZWYgYXMgYW55KS5tYXNrID0gKHZhbCkgPT4ge1xuICAgICAgICAgICAgZGlhbG9nUmVmLmxvYWRpbmcodmFsKTtcbiAgICAgICAgfTtcbiAgICAgICAgKGRpYWxvZ1JlZiBhcyBhbnkpLkFkZFVsdlRvV2luZG93ID0gKHVsdkNvbnRyb2wxLCB1bHZDb250cm9sMikgPT4ge1xuICAgICAgICAgICAgZGlhbG9nUmVmLmxvYWRpbmcoZmFsc2UpO1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0Rm9ybVRpdGxlVGV4dCA9IHRoaXMuX2JiYlRyYW5zbGF0ZVBpcGUudHJhbnNmb3JtKCdTZWxlY3RGb3JtVGl0bGUnKTtcbiAgICAgICAgICAgIGRpYWxvZ1JlZi5kYXRhLnRpdGxlID1cbiAgICAgICAgICAgICAgICB1bHZDb250cm9sMS5TZXR0aW5nLkV4dHJhPy5FeHRyYUpzb25Qcm9wUmVwb3J0Py5UaXRsZSA9PT0gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgPyAnJ1xuICAgICAgICAgICAgICAgICAgICA6IHNlbGVjdEZvcm1UaXRsZVRleHQucmVwbGFjZSgnezB9JywgdWx2Q29udHJvbDEuU2V0dGluZy5FeHRyYS5SZXBvcnQuVHlwZURlZkNhcHRpb24pO1xuICAgICAgICAgICAgZGlhbG9nUmVmLmRhdGEudWx2MSA9IHVsdkNvbnRyb2wxO1xuICAgICAgICAgICAgaWYgKHVsdkNvbnRyb2wxLnZpZXdlckNvbnRyb2wpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9oYW5kbGVVbHZWaWV3ZXJFdmVudCh1bHZDb250cm9sMSwgYWRhcHRlciwgZGlhbG9nUmVmKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdWx2Q29udHJvbDEub24oe1xuICAgICAgICAgICAgICAgICAgICBWaWV3ZXJDb250cm9sQ2hhbmdlZDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5faGFuZGxlVWx2Vmlld2VyRXZlbnQodWx2Q29udHJvbDEsIGFkYXB0ZXIsIGRpYWxvZ1JlZik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh1bHZDb250cm9sMikge1xuICAgICAgICAgICAgICAgIGRpYWxvZ1JlZi5kYXRhLnVsdjIgPSB1bHZDb250cm9sMjtcbiAgICAgICAgICAgICAgICBkaWFsb2dSZWYuZGF0YS5zZWxlY3RlZEl0ZW1zID0gdWx2Q29udHJvbDIuU2V0dGluZy5EYXRhO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gZGlhbG9nUmVmO1xuICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgIH07XG5cbiAgICBwcml2YXRlIF9oYW5kbGVVbHZWaWV3ZXJFdmVudCh1bHZDb250cm9sMTogYW55LCBhZGFwdGVyOiBhbnksIGRpYWxvZ1JlZjogRGlhbG9nUmVmPGFueSwgYW55Pikge1xuICAgICAgICB1bHZDb250cm9sMS52aWV3ZXJDb250cm9sLlNob3dPa0NhbmNlbEJ1dHRvbnMgPSBhZGFwdGVyLlNob3dPa0NhbmNlbEJ1dHRvbnM7XG4gICAgICAgIHVsdkNvbnRyb2wxLnZpZXdlckNvbnRyb2wub24oe1xuICAgICAgICAgICAgLyogZXNsaW50LWRpc2FibGUgKi9cbiAgICAgICAgICAgIHJvd3NlbGVjdDogKHNlbmRlciwgaW5kZXgsIG1vKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fYWRkSXRlbShkaWFsb2dSZWYsIG1vKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgICAgICAgICAgcm93ZGVzZWxlY3Q6IChzZW5kZXIsIGluZGV4LCBtbykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3JlbW92ZUl0ZW0oZGlhbG9nUmVmLCBtbyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcm93U2VsZWN0QWxsOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdWx2Q29udHJvbDEuU2V0dGluZy5EYXRhLk1vRGF0YUxpc3QuZm9yRWFjaCgobW8pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fYWRkSXRlbShkaWFsb2dSZWYsIG1vKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByb3dEZVNlbGVjdEFsbDogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHVsdkNvbnRyb2wxLlNldHRpbmcuRGF0YS5Nb0RhdGFMaXN0LmZvckVhY2goKG1vKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3JlbW92ZUl0ZW0oZGlhbG9nUmVmLCBtbyk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uT2soZGlhbG9nUmVmOiBEaWFsb2dSZWYpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyB1bHYsIHVsdjIgfSA9IHRoaXMuX2dldFVsdihkaWFsb2dSZWYpO1xuICAgICAgICAvLyBpZiAodWx2KSB7XG4gICAgICAgIC8vICAgICBpZiAodWx2Mikge1xuICAgICAgICAvLyAgICAgICAgIGNvbnN0IGFkYXB0ZXIgPSBkaWFsb2dSZWYuZGF0YS5hZGFwdGVyO1xuICAgICAgICAvLyAgICAgICAgIGFkYXB0ZXIuZmlyZUV2ZW50KCdBZGRSZW1vdmVCdXR0b25DbGljaycsIGFkYXB0ZXIsICdBZGQnKTtcbiAgICAgICAgLy8gICAgIH1cbiAgICAgICAgLy8gfVxuICAgICAgICB0aGlzLl9idG5DbGljayh1bHYsICdPaycpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2dldFVsdihkaWFsb2dSZWY6IERpYWxvZ1JlZik6IHsgdWx2OiBhbnk7IHVsdjI6IGFueSB9IHtcbiAgICAgICAgY29uc3QgdWx2MiA9IGRpYWxvZ1JlZi5kYXRhLnVsdjI7XG4gICAgICAgIGNvbnN0IHVsdjEgPSBkaWFsb2dSZWYuZGF0YS51bHYxO1xuICAgICAgICBjb25zdCB1bHYgPSB1bHYyIHx8IHVsdjE7XG4gICAgICAgIHJldHVybiB7IHVsdiwgdWx2MiB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgX2J0bkNsaWNrKHVsdjogYW55LCBidG5LZXk6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBva0J0biA9IHVsdi5idXR0b25zLmZpbmQoKGMpID0+IGMuS2V5ID09PSBidG5LZXkpO1xuICAgICAgICBjb25zdCBzY29wZSA9IG9rQnRuLnNjb3BlO1xuICAgICAgICBva0J0bi5oYW5kbGVyLmJpbmQoc2NvcGUpKG9rQnRuKTtcbiAgICB9XG5cbiAgICBvbkNhbmNlbChkaWFsb2dSZWY6IERpYWxvZ1JlZik6IHZvaWQge1xuICAgICAgICBpZiAoIWRpYWxvZ1JlZi5kYXRhLmFkYXB0ZXI/LlNob3dPa0NhbmNlbEJ1dHRvbnMpIHtcbiAgICAgICAgICAgIGRpYWxvZ1JlZi5kaXNtaXNzKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyB1bHYsIHVsdjIgfSA9IHRoaXMuX2dldFVsdihkaWFsb2dSZWYpO1xuICAgICAgICBpZiAoIXVsdikge1xuICAgICAgICAgICAgZGlhbG9nUmVmLmRpc21pc3MoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9idG5DbGljayh1bHYsICdDYW5jZWwnKTtcbiAgICB9XG5cbiAgICBvbkNsZWFyKGRpYWxvZ1JlZjogRGlhbG9nUmVmKTogdm9pZCB7XG4gICAgICAgIGRpYWxvZ1JlZi5kYXRhLnVsdjEudmlld2VyQ29udHJvbC5maXJlRXZlbnQoJ0NsZWFyQWxsU2VsZWN0ZWQnKTtcbiAgICAgICAgZGlhbG9nUmVmLmRhdGEuc2VsZWN0ZWRJdGVtcy5Nb0RhdGFMaXN0ID0gW107XG4gICAgfVxuXG4gICAgb25SZW1vdmVTZWxlY3RlZChkaWFsb2dSZWY6IERpYWxvZ1JlZiwgaXRlbTogTWV0YW9iamVjdERhdGFNb2RlbCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9yZW1vdmVJdGVtKGRpYWxvZ1JlZiwgaXRlbSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9yZW1vdmVJdGVtKGRpYWxvZ1JlZjogRGlhbG9nUmVmPGFueT4sIG1vOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtcyA9IGRpYWxvZ1JlZi5kYXRhLnNlbGVjdGVkSXRlbXM7XG4gICAgICAgIGlmICghc2VsZWN0ZWRJdGVtcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHNlbGVjdGVkSXRlbXMuTW9EYXRhTGlzdCA9IHNlbGVjdGVkSXRlbXMuTW9EYXRhTGlzdC5maWx0ZXIoKGMpID0+IGMuSWQgIT09IG1vLklkKTtcbiAgICAgICAgZGlhbG9nUmVmLmRhdGEudWx2MS52aWV3ZXJDb250cm9sLmZpcmVFdmVudCgnRGVzZWxlY3RSb3dJbkRpYWxvZycsIFttb10pO1xuICAgICAgICBpZiAoZGlhbG9nUmVmLmRhdGEudWx2Mikge1xuICAgICAgICAgICAgY29uc3QgYWRhcHRlciA9IGRpYWxvZ1JlZi5kYXRhLmFkYXB0ZXI7XG4gICAgICAgICAgICBhZGFwdGVyLmZpcmVFdmVudCgnQWRkUmVtb3ZlQnV0dG9uQ2xpY2snLCBhZGFwdGVyLCAnUmVtb3ZlTW8nLCBtbyk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gY29uc3QgYWRhcHRlciA9IGRpYWxvZ1JlZi5kYXRhLmFkYXB0ZXI7XG4gICAgICAgIC8vIGFkYXB0ZXIuZmlyZUV2ZW50KCdBZGRSZW1vdmVCdXR0b25DbGljaycsIGFkYXB0ZXIsICdSZW1vdmUnKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX2FkZEl0ZW0oZGlhbG9nUmVmOiBEaWFsb2dSZWY8YW55PiwgbW86IE1ldGFvYmplY3REYXRhTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtcyA9IGRpYWxvZ1JlZi5kYXRhLnNlbGVjdGVkSXRlbXM7XG4gICAgICAgIGlmICghc2VsZWN0ZWRJdGVtcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghc2VsZWN0ZWRJdGVtcy5Nb0RhdGFMaXN0LmZpbmQoKGMpID0+IGMuSWQgPT09IG1vLklkKSkge1xuICAgICAgICAgICAgaWYgKCFtby4kQ2FwdGlvbikge1xuICAgICAgICAgICAgICAgIGNvbnN0IHggPSBPYmplY3Qua2V5cyhtbykuZmlsdGVyKChjKSA9PiAhYy5zdGFydHNXaXRoKCckJykgJiYgYyAhPT0gJ0lkJyk7XG4gICAgICAgICAgICAgICAgaWYgKHgubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIG1vLiRDYXB0aW9uID0gbW9beFswXV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2VsZWN0ZWRJdGVtcy5Nb0RhdGFMaXN0ID0gWy4uLnNlbGVjdGVkSXRlbXMuTW9EYXRhTGlzdCwgbW9dO1xuICAgICAgICAgICAgaWYgKGRpYWxvZ1JlZi5kYXRhLnVsdjIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBhZGFwdGVyID0gZGlhbG9nUmVmLmRhdGEuYWRhcHRlcjtcbiAgICAgICAgICAgICAgICBhZGFwdGVyLmZpcmVFdmVudCgnQWRkUmVtb3ZlQnV0dG9uQ2xpY2snLCBhZGFwdGVyLCAnQWRkJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGNvbnN0IGFkYXB0ZXIgPSBkaWFsb2dSZWYuZGF0YS5hZGFwdGVyO1xuICAgICAgICAgICAgLy8gYWRhcHRlci5maXJlRXZlbnQoJ0FkZFJlbW92ZUJ1dHRvbkNsaWNrJywgYWRhcHRlciwgJ0FkZCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgX3RyYWNrQnlTZWxlY3RlZEZuKF9pbmRleDogbnVtYmVyLCBpdGVtOiBNZXRhb2JqZWN0RGF0YU1vZGVsKTogbnVtYmVyIHwgc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGl0ZW0uSWQ7XG4gICAgfVxufVxuIiwiPG5nLXRlbXBsYXRlIGxldC1kaWFsb2cgbGV0LWRpYWxvZ0NvbmZpZz1cImRpYWxvZ0NvbmZpZ1wiICNjb250YWluZXI+XG4gICAgPGZkLWRpYWxvZyBbZGlhbG9nQ29uZmlnXT1cImRpYWxvZ0NvbmZpZ1wiIFtkaWFsb2dSZWZdPVwiZGlhbG9nXCIgI2RpYWxvZ1RwbD5cbiAgICAgICAgPGZkLWRpYWxvZy1oZWFkZXI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgZmRrVGVtcGxhdGU9XCJoZWFkZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhci1sZWZ0PlxuICAgICAgICAgICAgICAgICAgICA8ZmQtYmFyLWVsZW1lbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aDEgaWQ9XCJmZC1kaWFsb2ctaGVhZGVyLTNcIiBmZC10aXRsZT57eyBkaWFsb2cuZGF0YS50aXRsZSB9fTwvaDE+XG4gICAgICAgICAgICAgICAgICAgIDwvZmQtYmFyLWVsZW1lbnQ+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBmZC1iYXItcmlnaHQ+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoIWRpYWxvZ0NvbmZpZy5mdWxsc2NyZWVuICYmICFkaWFsb2dDb25maWcubW9iaWxlKSB7XG4gICAgICAgICAgICAgICAgICAgIDxmZC1idXR0b24tYmFyXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhTGFiZWw9XCJmdWxsc2NyZWVuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtnbHlwaF09XCJkaWFsb2cuZGF0YS5mdWxsc2NyZWVuID8gJ2V4aXRmdWxsc2NyZWVuJyA6ICdyZXNpemUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxzY3JlZW5EaWFsb2dcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaWFsb2ddPVwiZGlhbG9nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmdWxsc2NyZWVuXT1cImRpYWxvZy5kYXRhLmZ1bGxzY3JlZW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bGxzY3JlZW5DaGFuZ2VkKT1cImRpYWxvZy5kYXRhLmZ1bGxzY3JlZW4gPSAkZXZlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2RpYWxvZ0NvbXBvbmVudF09XCJkaWFsb2dUcGxcIlxuICAgICAgICAgICAgICAgICAgICA+PC9mZC1idXR0b24tYmFyPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDxmZC1idXR0b24tYmFyIGFyaWFMYWJlbD1cImNsb3NlXCIgZ2x5cGg9XCJkZWNsaW5lXCIgKGNsaWNrKT1cIm9uQ2FuY2VsKGRpYWxvZylcIj48L2ZkLWJ1dHRvbi1iYXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPCEtLSA8aDMgZmQtdGl0bGU+e3sgZGlhbG9nLmRhdGEudGl0bGUgfX08L2gzPlxuICAgICAgPGJ1dHRvbiBmZC1kaWFsb2ctY2xvc2UtYnV0dG9uPjwvYnV0dG9uPiAtLT5cbiAgICAgICAgPC9mZC1kaWFsb2ctaGVhZGVyPlxuXG4gICAgICAgIDxmZC1kaWFsb2ctYm9keT5cbiAgICAgICAgICAgIEBpZiAoZGlhbG9nLmRhdGEudWx2MTsgYXMgdWx2MSkge1xuICAgICAgICAgICAgPGJzdS11aS11bHYtbWFpbi11aVxuICAgICAgICAgICAgICAgIGNsYXNzPVwidWx2LWZvcm0tbXVsdGktc2VsZWN0XCJcbiAgICAgICAgICAgICAgICBbY29udGV4dF09XCJ1bHYxXCJcbiAgICAgICAgICAgICAgICBbaW5EaWFsb2ddPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW2lzTXVsdGlTZWxlY3RdPVwiZGlhbG9nLmRhdGEuU2hvd1NlY29uZFBhbmVsXCJcbiAgICAgICAgICAgICAgICBbZnVsbHNjcmVlbl09XCJkaWFsb2cuZGF0YS5mdWxsc2NyZWVuXCJcbiAgICAgICAgICAgID48L2JzdS11aS11bHYtbWFpbi11aT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9mZC1kaWFsb2ctYm9keT5cbiAgICAgICAgQGlmIChkaWFsb2cuZGF0YS51bHYyICYmIGRpYWxvZy5kYXRhLlNob3dTZWNvbmRQYW5lbCkge1xuICAgICAgICA8ZmQtZGlhbG9nLWZvb3RlciBjbGFzcz1cInVsdlNlbGVjdGlvblwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGZka1RlbXBsYXRlPVwiZm9vdGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInVsdi1zZWxlY3Rpb24tZm9ybS1kaWFsb2dfX3JvdyB1bHYtc2VsZWN0aW9uLWZvcm0tZGlhbG9nX19zZWxlY3Rpb24tcm93XCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWEtbGFiZWxdPVwiJ1NlbGVjdGVkSXRlbXNBbmRDb25kaXRpb25zJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8aDUgZmQtdGl0bGUgY2xhc3M9XCJzZWxlY3RlZC1hbmQtY29uZGl0aW9uLXRpdGxlICF0dy1wYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXI+e3sgJ1NlbGVjdGVkSXRlbXNBbmRDb25kaXRpb25zJyB8IGJiYlRyYW5zbGF0ZSB9fSA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoe3sgZGlhbG9nLmRhdGEuc2VsZWN0ZWRJdGVtcz8uTW9EYXRhTGlzdD8ubGVuZ3RoIHx8IDAgfX0pXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9oNT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVsdi1zZWxlY3Rpb24tZm9ybS1kaWFsb2dfX3Rva2Vucy13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidWx2LXNlbGVjdGlvbi1mb3JtLWRpYWxvZ19fdG9rZW5zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChkaWFsb2cuZGF0YS5zZWxlY3RlZEl0ZW1zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLXRvb2xiYXIgW3Nob3VsZE92ZXJmbG93XT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBTZWxlY3RlZCBpdGVtcyAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoIGl0ZW0gb2YgZGlhbG9nLmRhdGEuc2VsZWN0ZWRJdGVtcy5Nb0RhdGFMaXN0OyB0cmFja1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdHJhY2tCeVNlbGVjdGVkRm4oc2VsZWN0ZWRJbmRleCwgaXRlbSk7IGxldCBzZWxlY3RlZEluZGV4ID0gJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC10b2tlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZE92ZXJmbG93UHJpb3JpdHk9XCJoaWdoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmRwLXZhbHVlLWhlbHAtZGlhbG9nX19zZWxlY3Rpb24tdG9rZW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uQ2xvc2VDbGljayk9XCJvblJlbW92ZVNlbGVjdGVkKGRpYWxvZywgaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPnt7IGl0ZW0uJENhcHRpb24gfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC10b2tlbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtdG9vbGJhcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInVsdi1zZWxlY3Rpb24tZm9ybS1kaWFsb2dfX3Rva2Vucy1jbGVhclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdseXBoPVwiZGVjbGluZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWEtbGFiZWxdPVwiJ0NsZWFyJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xlYXIoZGlhbG9nKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9mZC1kaWFsb2ctZm9vdGVyPlxuICAgICAgICB9IEBpZiAoZGlhbG9nLmRhdGEudWx2MSAmJiAhZGlhbG9nLmRhdGEudWx2MT8uSGlkZU9rQ2FuY2VsQnV0dG9ucykge1xuICAgICAgICA8ZmQtZGlhbG9nLWZvb3Rlcj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBmZGtUZW1wbGF0ZT1cImZvb3RlclwiPlxuICAgICAgICAgICAgICAgIEBpZiAoZGlhbG9nLmRhdGEuYWRhcHRlcj8uU2hvd09rQ2FuY2VsQnV0dG9ucyAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmQtYmFyX19yaWdodFwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtc3VjY2VzXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ09LJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJlbXBoYXNpemVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbk9rKGRpYWxvZylcIlxuICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1kaXNtaXNzLWRpYWxvZ1xuICAgICAgICAgICAgICAgICAgICAgICAgZmQtZGlhbG9nLWRlY2lzaXZlLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidDYW5jZWwnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmZFR5cGVdPVwiJ3RyYW5zcGFyZW50J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25DYW5jZWwoZGlhbG9nKVwiXG4gICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2ZkLWRpYWxvZy1mb290ZXI+XG4gICAgICAgIH1cbiAgICA8L2ZkLWRpYWxvZz5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -1,44 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, ViewChild } from '@angular/core';
2
- import { BaseUlvSettingComponent } from 'barsa-novin-ray-core';
3
- import { UiGridSortSettingComponent } from '../ui-grid-sort-setting/ui-grid-sort-setting.component';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@fundamental-ngx/core";
6
- import * as i2 from "@fundamental-ngx/core/bar";
7
- import * as i3 from "@fundamental-ngx/core/button";
8
- import * as i4 from "@fundamental-ngx/core/dialog";
9
- import * as i5 from "@fundamental-ngx/cdk/utils";
10
- import * as i6 from "@fundamental-ngx/core/title";
11
- import * as i7 from "../ui-grid-sort-setting/ui-grid-sort-setting.component";
12
- import * as i8 from "barsa-novin-ray-core";
13
- export class UlvGroupbySettingsComponent extends BaseUlvSettingComponent {
14
- constructor(dialogRef) {
15
- super();
16
- this.dialogRef = dialogRef;
17
- }
18
- ngOnInit() {
19
- this.context = this.dialogRef.data.context;
20
- super.ngOnInit();
21
- }
22
- onReset() {
23
- this.sortSettings = this.sortSettings.map((c) => ({ ...c, IsGrouped: false }));
24
- }
25
- getSettings() {
26
- const sortSetting = this.ulvSortSetting.getSettings();
27
- const settings = super.getSettings();
28
- settings.SortSettingList = sortSetting;
29
- return settings;
30
- }
31
- close(setting = null) {
32
- this.dialogRef.close(setting);
33
- }
34
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UlvGroupbySettingsComponent, deps: [{ token: i1.DialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
35
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UlvGroupbySettingsComponent, selector: "bsu-ulv-groupby-settings", viewQueries: [{ propertyName: "ulvSortSetting", first: true, predicate: UiGridSortSettingComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<fd-dialog>\r\n <fd-dialog-header>\r\n <ng-template fdkTemplate=\"header\">\r\n <div fd-bar-left>\r\n <fd-bar-element>\r\n <h4 fd-title [headerSize]=\"4\">\r\n {{ 'Columns' | bbbTranslate }}\r\n </h4>\r\n </fd-bar-element>\r\n </div>\r\n <div fd-bar-right>\r\n <fd-bar-element>\r\n <button\r\n fd-button\r\n [label]=\"'Reset' | bbbTranslate\"\r\n [fdType]=\"'transparent'\"\r\n (click)=\"onReset()\"\r\n ></button>\r\n </fd-bar-element>\r\n </div>\r\n </ng-template>\r\n </fd-dialog-header>\r\n <fd-dialog-body class=\"setting-wrapper\">\r\n <bsu-ui-grid-sort-setting\r\n [columns]=\"allColumns\"\r\n [sortSettings]=\"sortSettings\"\r\n [showGroups]=\"true\"\r\n ></bsu-ui-grid-sort-setting>\r\n </fd-dialog-body>\r\n\r\n <fd-dialog-footer>\r\n <fd-dialog-footer-button>\r\n <button fd-button fdType=\"emphasized\" (click)=\"onOkClick()\" [label]=\"'OK' | bbbTranslate\"></button>\r\n </fd-dialog-footer-button>\r\n <fd-dialog-footer-button>\r\n <button fd-button (click)=\"onCancelSettings()\" [label]=\"'Cancel' | bbbTranslate\"></button>\r\n </fd-dialog-footer-button>\r\n </fd-dialog-footer>\r\n</fd-dialog>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i2.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: i2.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "directive", type: i2.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i4.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i4.DialogBodyComponent, selector: "fd-dialog-body", inputs: ["disablePaddings"] }, { kind: "component", type: i4.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i4.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "directive", type: i5.TemplateDirective, selector: "[fdkTemplate]", inputs: ["fdkTemplate"] }, { kind: "component", type: i6.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i7.UiGridSortSettingComponent, selector: "bsu-ui-grid-sort-setting", inputs: ["showGroups", "columns", "sortSettings"], outputs: ["changeSetting"] }, { kind: "pipe", type: i8.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
36
- }
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UlvGroupbySettingsComponent, decorators: [{
38
- type: Component,
39
- args: [{ selector: 'bsu-ulv-groupby-settings', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-dialog>\r\n <fd-dialog-header>\r\n <ng-template fdkTemplate=\"header\">\r\n <div fd-bar-left>\r\n <fd-bar-element>\r\n <h4 fd-title [headerSize]=\"4\">\r\n {{ 'Columns' | bbbTranslate }}\r\n </h4>\r\n </fd-bar-element>\r\n </div>\r\n <div fd-bar-right>\r\n <fd-bar-element>\r\n <button\r\n fd-button\r\n [label]=\"'Reset' | bbbTranslate\"\r\n [fdType]=\"'transparent'\"\r\n (click)=\"onReset()\"\r\n ></button>\r\n </fd-bar-element>\r\n </div>\r\n </ng-template>\r\n </fd-dialog-header>\r\n <fd-dialog-body class=\"setting-wrapper\">\r\n <bsu-ui-grid-sort-setting\r\n [columns]=\"allColumns\"\r\n [sortSettings]=\"sortSettings\"\r\n [showGroups]=\"true\"\r\n ></bsu-ui-grid-sort-setting>\r\n </fd-dialog-body>\r\n\r\n <fd-dialog-footer>\r\n <fd-dialog-footer-button>\r\n <button fd-button fdType=\"emphasized\" (click)=\"onOkClick()\" [label]=\"'OK' | bbbTranslate\"></button>\r\n </fd-dialog-footer-button>\r\n <fd-dialog-footer-button>\r\n <button fd-button (click)=\"onCancelSettings()\" [label]=\"'Cancel' | bbbTranslate\"></button>\r\n </fd-dialog-footer-button>\r\n </fd-dialog-footer>\r\n</fd-dialog>\r\n" }]
40
- }], ctorParameters: () => [{ type: i1.DialogRef }], propDecorators: { ulvSortSetting: [{
41
- type: ViewChild,
42
- args: [UiGridSortSettingComponent]
43
- }] } });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWx2LWdyb3VwYnktc2V0dGluZ3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWx2LWdyb3VwYnktc2V0dGluZ3MvdWx2LWdyb3VwYnktc2V0dGluZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWx2LWdyb3VwYnktc2V0dGluZ3MvdWx2LWdyb3VwYnktc2V0dGluZ3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHdEYsT0FBTyxFQUFFLHVCQUF1QixFQUFlLE1BQU0sc0JBQXNCLENBQUM7QUFDNUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sd0RBQXdELENBQUM7Ozs7Ozs7Ozs7QUFPcEcsTUFBTSxPQUFPLDJCQUE0QixTQUFRLHVCQUF1QjtJQUdwRSxZQUFvQixTQUFvQjtRQUNwQyxLQUFLLEVBQUUsQ0FBQztRQURRLGNBQVMsR0FBVCxTQUFTLENBQVc7SUFFeEMsQ0FBQztJQUNELFFBQVE7UUFDSixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUMzQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUNELE9BQU87UUFDSCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBQ0QsV0FBVztRQUNQLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdEQsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JDLFFBQVEsQ0FBQyxlQUFlLEdBQUcsV0FBVyxDQUFDO1FBQ3ZDLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7SUFDRCxLQUFLLENBQUMsVUFBZSxJQUFJO1FBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7K0dBckJRLDJCQUEyQjttR0FBM0IsMkJBQTJCLGdIQUN6QiwwQkFBMEIsdUVDWnpDLHFnREF1Q0E7OzRGRDVCYSwyQkFBMkI7a0JBTnZDLFNBQVM7K0JBQ0ksMEJBQTBCLG1CQUduQix1QkFBdUIsQ0FBQyxNQUFNOzhFQUkvQyxjQUFjO3NCQURiLFNBQVM7dUJBQUMsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGlhbG9nUmVmIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcclxuXHJcbmltcG9ydCB7IEJhc2VVbHZTZXR0aW5nQ29tcG9uZW50LCBHcmlkU2V0dGluZyB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuaW1wb3J0IHsgVWlHcmlkU29ydFNldHRpbmdDb21wb25lbnQgfSBmcm9tICcuLi91aS1ncmlkLXNvcnQtc2V0dGluZy91aS1ncmlkLXNvcnQtc2V0dGluZy5jb21wb25lbnQnO1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYnN1LXVsdi1ncm91cGJ5LXNldHRpbmdzJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi91bHYtZ3JvdXBieS1zZXR0aW5ncy5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi91bHYtZ3JvdXBieS1zZXR0aW5ncy5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFVsdkdyb3VwYnlTZXR0aW5nc0NvbXBvbmVudCBleHRlbmRzIEJhc2VVbHZTZXR0aW5nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBWaWV3Q2hpbGQoVWlHcmlkU29ydFNldHRpbmdDb21wb25lbnQpXHJcbiAgICB1bHZTb3J0U2V0dGluZzogVWlHcmlkU29ydFNldHRpbmdDb21wb25lbnQ7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRpYWxvZ1JlZjogRGlhbG9nUmVmKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgIH1cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY29udGV4dCA9IHRoaXMuZGlhbG9nUmVmLmRhdGEuY29udGV4dDtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgfVxyXG4gICAgb25SZXNldCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNvcnRTZXR0aW5ncyA9IHRoaXMuc29ydFNldHRpbmdzLm1hcCgoYykgPT4gKHsgLi4uYywgSXNHcm91cGVkOiBmYWxzZSB9KSk7XHJcbiAgICB9XHJcbiAgICBnZXRTZXR0aW5ncygpOiBHcmlkU2V0dGluZyB7XHJcbiAgICAgICAgY29uc3Qgc29ydFNldHRpbmcgPSB0aGlzLnVsdlNvcnRTZXR0aW5nLmdldFNldHRpbmdzKCk7XHJcbiAgICAgICAgY29uc3Qgc2V0dGluZ3MgPSBzdXBlci5nZXRTZXR0aW5ncygpO1xyXG4gICAgICAgIHNldHRpbmdzLlNvcnRTZXR0aW5nTGlzdCA9IHNvcnRTZXR0aW5nO1xyXG4gICAgICAgIHJldHVybiBzZXR0aW5ncztcclxuICAgIH1cclxuICAgIGNsb3NlKHNldHRpbmc6IGFueSA9IG51bGwpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShzZXR0aW5nKTtcclxuICAgIH1cclxufVxyXG4iLCI8ZmQtZGlhbG9nPlxyXG4gICAgPGZkLWRpYWxvZy1oZWFkZXI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIGZka1RlbXBsYXRlPVwiaGVhZGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgZmQtYmFyLWxlZnQ+XHJcbiAgICAgICAgICAgICAgICA8ZmQtYmFyLWVsZW1lbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg0IGZkLXRpdGxlIFtoZWFkZXJTaXplXT1cIjRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgJ0NvbHVtbnMnIHwgYmJiVHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9oND5cclxuICAgICAgICAgICAgICAgIDwvZmQtYmFyLWVsZW1lbnQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGZkLWJhci1yaWdodD5cclxuICAgICAgICAgICAgICAgIDxmZC1iYXItZWxlbWVudD5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ1Jlc2V0JyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmZFR5cGVdPVwiJ3RyYW5zcGFyZW50J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblJlc2V0KClcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZmQtYmFyLWVsZW1lbnQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2ZkLWRpYWxvZy1oZWFkZXI+XHJcbiAgICA8ZmQtZGlhbG9nLWJvZHkgY2xhc3M9XCJzZXR0aW5nLXdyYXBwZXJcIj5cclxuICAgICAgICA8YnN1LXVpLWdyaWQtc29ydC1zZXR0aW5nXHJcbiAgICAgICAgICAgIFtjb2x1bW5zXT1cImFsbENvbHVtbnNcIlxyXG4gICAgICAgICAgICBbc29ydFNldHRpbmdzXT1cInNvcnRTZXR0aW5nc1wiXHJcbiAgICAgICAgICAgIFtzaG93R3JvdXBzXT1cInRydWVcIlxyXG4gICAgICAgID48L2JzdS11aS1ncmlkLXNvcnQtc2V0dGluZz5cclxuICAgIDwvZmQtZGlhbG9nLWJvZHk+XHJcblxyXG4gICAgPGZkLWRpYWxvZy1mb290ZXI+XHJcbiAgICAgICAgPGZkLWRpYWxvZy1mb290ZXItYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGZkLWJ1dHRvbiBmZFR5cGU9XCJlbXBoYXNpemVkXCIgKGNsaWNrKT1cIm9uT2tDbGljaygpXCIgW2xhYmVsXT1cIidPSycgfCBiYmJUcmFuc2xhdGVcIj48L2J1dHRvbj5cclxuICAgICAgICA8L2ZkLWRpYWxvZy1mb290ZXItYnV0dG9uPlxyXG4gICAgICAgIDxmZC1kaWFsb2ctZm9vdGVyLWJ1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBmZC1idXR0b24gKGNsaWNrKT1cIm9uQ2FuY2VsU2V0dGluZ3MoKVwiIFtsYWJlbF09XCInQ2FuY2VsJyB8IGJiYlRyYW5zbGF0ZVwiPjwvYnV0dG9uPlxyXG4gICAgICAgIDwvZmQtZGlhbG9nLWZvb3Rlci1idXR0b24+XHJcbiAgICA8L2ZkLWRpYWxvZy1mb290ZXI+XHJcbjwvZmQtZGlhbG9nPlxyXG4iXX0=
@@ -1,84 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';
2
- import { BaseComponent } from 'barsa-novin-ray-core';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "barsa-novin-ray-core";
5
- import * as i2 from "@fundamental-ngx/core/pagination";
6
- import * as i3 from "@angular/cdk/bidi";
7
- export class UlvPagingComponent extends BaseComponent {
8
- constructor(_cdr, bbbPipe) {
9
- super();
10
- this._cdr = _cdr;
11
- this.bbbPipe = bbbPipe;
12
- this.pageChange = new EventEmitter();
13
- this.pageSizeChange = new EventEmitter();
14
- this.height = 60;
15
- this.currentPage = 0;
16
- this.totalPage = 0;
17
- }
18
- ngOnInit() {
19
- super.ngOnInit();
20
- this._initValues(this.pagingSetting);
21
- }
22
- ngOnChanges(changes) {
23
- super.ngOnChanges(changes);
24
- const { pagingSetting } = changes;
25
- if (pagingSetting && !pagingSetting.firstChange) {
26
- this._initValues(pagingSetting.currentValue);
27
- this._cdr.detectChanges();
28
- }
29
- }
30
- onPageSizeChange(e) {
31
- const selectedValue = e.target.selectedOption.value;
32
- this.pageSizeChange.emit(selectedValue);
33
- }
34
- onEndClick() {
35
- this.currentPage = this.totalPage - 1;
36
- this._pageChanged();
37
- }
38
- onFirstClick() {
39
- this.currentPage = 0;
40
- this._pageChanged();
41
- }
42
- onNextClick() {
43
- this.currentPage++;
44
- this._pageChanged();
45
- }
46
- onPreviousClick() {
47
- this.currentPage--;
48
- this._pageChanged();
49
- }
50
- onPageChange(pageNumber) {
51
- this._pageChanged(pageNumber - 1);
52
- this.currentPage = pageNumber;
53
- }
54
- _initValues(pagingSetting) {
55
- if (pagingSetting === null) {
56
- this.height = 0;
57
- return;
58
- }
59
- this.currentPage = pagingSetting.Page + 1;
60
- this.totalPage = Number(pagingSetting.TotalPages);
61
- const totalRows = pagingSetting.TotalRows.toString();
62
- this.totalPageStr = this.bbbPipe.transform('CountWithParenthesis').replace('{0}', totalRows);
63
- }
64
- _pageChanged(pageNumber) {
65
- pageNumber = typeof pageNumber === 'undefined' ? this.currentPage : pageNumber;
66
- this.pageChange.emit(pageNumber);
67
- }
68
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UlvPagingComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.BbbTranslatePipe }], target: i0.ɵɵFactoryTarget.Component }); }
69
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: UlvPagingComponent, selector: "bsu-ulv-paging", inputs: { pagingSetting: "pagingSetting" }, outputs: { pageChange: "pageChange", pageSizeChange: "pageSizeChange" }, host: { properties: { "height.px": "this.height" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<!-- <ng-container *ngIf=\"config?.Setting?.Data?.Paging?.HasPaging\">\n<div class=\"icons\">\n <button\n fd-button\n [attr.disabled]=\"currentPage === totalPage - 1 ? true : null\"\n fdType=\"transparent\"\n glyph=\"begin\"\n (click)=\"onEndClick()\"\n ></button>\n <button\n fd-button\n [attr.disabled]=\"currentPage + 1 >= totalPage ? true : null\"\n fdType=\"transparent\"\n glyph=\"navigation-left-arrow\"\n (click)=\"onNextClick()\"\n ></button>\n <button\n fd-button\n [attr.disabled]=\"currentPage - 1 < 0 ? true : null\"\n fdType=\"transparent\"\n glyph=\"navigation-right-arrow\"\n (click)=\"onPreviousClick()\"\n ></button>\n <button\n fd-button\n [attr.disabled]=\"currentPage === 0 ? true : null\"\n fdType=\"transparent\"\n glyph=\"begin\"\n (click)=\"onFirstClick()\"\n ></button>\n</div>\n<div class=\"pagesize\">\n <label style=\"padding: 0 5px\"\n >{{ currentPage * pageSize }}-{{ currentPage * pageSize + pageSize }} \u0627\u0632\n {{ config.Setting.Data.Paging.TotalRows }}</label\n >\n <fd-select (valueChange)=\"onPageSizeChange($event)\" [value]=\"pageSize\">\n <fd-option [value]=\"24\">24</fd-option>\n <fd-option [value]=\"100\">100</fd-option>\n <fd-option [value]=\"100\">100</fd-option>\n </fd-select>\n\n <label style=\"padding: 0 5px\">{{ ItemsPerPage }}:</label>\n </div>\n</ng-container> -->\n@if (pagingSetting) { @if (pagingSetting && pagingSetting.HasPaging && pagingSetting.TotalPages>1) {\n<fd-pagination\n dir=\"rtl\"\n [totalItems]=\"pagingSetting.TotalRows\"\n (pageChangeStart)=\"onPageChange($event)\"\n [itemsPerPage]=\"pagingSetting.PageSize\"\n [currentPage]=\"currentPage\"\n [displayTextTemplate]=\"showingItems\"\n></fd-pagination>\n} }\n<ng-template #showingItems let-showing=\"showing\">\n <span dir=\"ltr\">\n {{ 'From' | bbbTranslate }} {{ showing.from }} {{ 'To' | bbbTranslate }} {{ showing.to }} {{ totalPageStr }}\n </span>\n</ng-template>\n", styles: [":host{align-items:center;display:flex;justify-content:center;flex-direction:row-reverse;width:100%}.icons{display:flex;justify-content:space-between;padding:0 15px}.icons ui5-button{color:var(--sapContent_LabelColor)}.icons ui5-button:hover{background:var(--sapBackgroundColor)!important;border-color:transparent!important}.pagesize{align-items:center;display:flex;justify-content:flex-start;flex-direction:row-reverse}\n"], dependencies: [{ kind: "component", type: i2.PaginationComponent, selector: "fd-pagination", inputs: ["id", "mobile", "totalItems", "currentPage", "itemsPerPage", "itemsPerPageTemplate", "itemsPerPageOptions", "displayTotalItems", "displayTextTemplate"], outputs: ["pageChangeStart", "itemsPerPageChange"] }, { kind: "directive", type: i3.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "pipe", type: i1.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
70
- }
71
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UlvPagingComponent, decorators: [{
72
- type: Component,
73
- args: [{ selector: 'bsu-ulv-paging', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- <ng-container *ngIf=\"config?.Setting?.Data?.Paging?.HasPaging\">\n<div class=\"icons\">\n <button\n fd-button\n [attr.disabled]=\"currentPage === totalPage - 1 ? true : null\"\n fdType=\"transparent\"\n glyph=\"begin\"\n (click)=\"onEndClick()\"\n ></button>\n <button\n fd-button\n [attr.disabled]=\"currentPage + 1 >= totalPage ? true : null\"\n fdType=\"transparent\"\n glyph=\"navigation-left-arrow\"\n (click)=\"onNextClick()\"\n ></button>\n <button\n fd-button\n [attr.disabled]=\"currentPage - 1 < 0 ? true : null\"\n fdType=\"transparent\"\n glyph=\"navigation-right-arrow\"\n (click)=\"onPreviousClick()\"\n ></button>\n <button\n fd-button\n [attr.disabled]=\"currentPage === 0 ? true : null\"\n fdType=\"transparent\"\n glyph=\"begin\"\n (click)=\"onFirstClick()\"\n ></button>\n</div>\n<div class=\"pagesize\">\n <label style=\"padding: 0 5px\"\n >{{ currentPage * pageSize }}-{{ currentPage * pageSize + pageSize }} \u0627\u0632\n {{ config.Setting.Data.Paging.TotalRows }}</label\n >\n <fd-select (valueChange)=\"onPageSizeChange($event)\" [value]=\"pageSize\">\n <fd-option [value]=\"24\">24</fd-option>\n <fd-option [value]=\"100\">100</fd-option>\n <fd-option [value]=\"100\">100</fd-option>\n </fd-select>\n\n <label style=\"padding: 0 5px\">{{ ItemsPerPage }}:</label>\n </div>\n</ng-container> -->\n@if (pagingSetting) { @if (pagingSetting && pagingSetting.HasPaging && pagingSetting.TotalPages>1) {\n<fd-pagination\n dir=\"rtl\"\n [totalItems]=\"pagingSetting.TotalRows\"\n (pageChangeStart)=\"onPageChange($event)\"\n [itemsPerPage]=\"pagingSetting.PageSize\"\n [currentPage]=\"currentPage\"\n [displayTextTemplate]=\"showingItems\"\n></fd-pagination>\n} }\n<ng-template #showingItems let-showing=\"showing\">\n <span dir=\"ltr\">\n {{ 'From' | bbbTranslate }} {{ showing.from }} {{ 'To' | bbbTranslate }} {{ showing.to }} {{ totalPageStr }}\n </span>\n</ng-template>\n", styles: [":host{align-items:center;display:flex;justify-content:center;flex-direction:row-reverse;width:100%}.icons{display:flex;justify-content:space-between;padding:0 15px}.icons ui5-button{color:var(--sapContent_LabelColor)}.icons ui5-button:hover{background:var(--sapBackgroundColor)!important;border-color:transparent!important}.pagesize{align-items:center;display:flex;justify-content:flex-start;flex-direction:row-reverse}\n"] }]
74
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.BbbTranslatePipe }], propDecorators: { pageChange: [{
75
- type: Output
76
- }], pageSizeChange: [{
77
- type: Output
78
- }], height: [{
79
- type: HostBinding,
80
- args: ['height.px']
81
- }], pagingSetting: [{
82
- type: Input
83
- }] } });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWx2LXBhZ2luZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi91bHYtcGFnaW5nL3Vsdi1wYWdpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWx2LXBhZ2luZy91bHYtcGFnaW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUVMLE1BQU0sRUFFVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQW9CLGFBQWEsRUFBaUIsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7QUFRdEYsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGFBQWE7SUFTakQsWUFBb0IsSUFBdUIsRUFBVSxPQUF5QjtRQUMxRSxLQUFLLEVBQUUsQ0FBQztRQURRLFNBQUksR0FBSixJQUFJLENBQW1CO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUFScEUsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDeEMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzVCLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFHdEMsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFDaEIsY0FBUyxHQUFHLENBQUMsQ0FBQztJQUlkLENBQUM7SUFFRCxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFDRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQixNQUFNLEVBQUUsYUFBYSxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBQ2xDLElBQUksYUFBYSxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzlDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzdDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDOUIsQ0FBQztJQUNMLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2QsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDO1FBQ3BELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFDRCxVQUFVO1FBQ04sSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUNELFlBQVk7UUFDUixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUNELFdBQVc7UUFDUCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFDRCxlQUFlO1FBQ1gsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBQ0QsWUFBWSxDQUFDLFVBQWtCO1FBQzNCLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDO0lBQ2xDLENBQUM7SUFDTyxXQUFXLENBQUMsYUFBNEI7UUFDNUMsSUFBSSxhQUFhLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDaEIsT0FBTztRQUNYLENBQUM7UUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLGFBQWEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNsRCxNQUFNLFNBQVMsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3JELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7SUFDTyxZQUFZLENBQUMsVUFBbUI7UUFDcEMsVUFBVSxHQUFHLE9BQU8sVUFBVSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO1FBQy9FLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7K0dBL0RRLGtCQUFrQjttR0FBbEIsa0JBQWtCLDZRQ25CL0Isay9EQTREQTs7NEZEekNhLGtCQUFrQjtrQkFOOUIsU0FBUzsrQkFDSSxnQkFBZ0IsbUJBR1QsdUJBQXVCLENBQUMsTUFBTTtxSEFHckMsVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNtQixNQUFNO3NCQUEvQixXQUFXO3VCQUFDLFdBQVc7Z0JBQ2YsYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYmJUcmFuc2xhdGVQaXBlLCBCYXNlQ29tcG9uZW50LCBQYWdpbmdTZXR0aW5nIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS11bHYtcGFnaW5nJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdWx2LXBhZ2luZy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdWx2LXBhZ2luZy5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFVsdlBhZ2luZ0NvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBPdXRwdXQoKSBwYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gICAgQE91dHB1dCgpIHBhZ2VTaXplQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gICAgQEhvc3RCaW5kaW5nKCdoZWlnaHQucHgnKSBoZWlnaHQgPSA2MDtcbiAgICBASW5wdXQoKSBwYWdpbmdTZXR0aW5nOiBQYWdpbmdTZXR0aW5nO1xuICAgIGNvbnRleHQ6IGFueTtcbiAgICBjdXJyZW50UGFnZSA9IDA7XG4gICAgdG90YWxQYWdlID0gMDtcbiAgICB0b3RhbFBhZ2VTdHI6IHN0cmluZztcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIGJiYlBpcGU6IEJiYlRyYW5zbGF0ZVBpcGUpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5faW5pdFZhbHVlcyh0aGlzLnBhZ2luZ1NldHRpbmcpO1xuICAgIH1cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25DaGFuZ2VzKGNoYW5nZXMpO1xuICAgICAgICBjb25zdCB7IHBhZ2luZ1NldHRpbmcgfSA9IGNoYW5nZXM7XG4gICAgICAgIGlmIChwYWdpbmdTZXR0aW5nICYmICFwYWdpbmdTZXR0aW5nLmZpcnN0Q2hhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLl9pbml0VmFsdWVzKHBhZ2luZ1NldHRpbmcuY3VycmVudFZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblBhZ2VTaXplQ2hhbmdlKGUpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZSA9IGUudGFyZ2V0LnNlbGVjdGVkT3B0aW9uLnZhbHVlO1xuICAgICAgICB0aGlzLnBhZ2VTaXplQ2hhbmdlLmVtaXQoc2VsZWN0ZWRWYWx1ZSk7XG4gICAgfVxuICAgIG9uRW5kQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSB0aGlzLnRvdGFsUGFnZSAtIDE7XG4gICAgICAgIHRoaXMuX3BhZ2VDaGFuZ2VkKCk7XG4gICAgfVxuICAgIG9uRmlyc3RDbGljaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IDA7XG4gICAgICAgIHRoaXMuX3BhZ2VDaGFuZ2VkKCk7XG4gICAgfVxuICAgIG9uTmV4dENsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnJlbnRQYWdlKys7XG4gICAgICAgIHRoaXMuX3BhZ2VDaGFuZ2VkKCk7XG4gICAgfVxuICAgIG9uUHJldmlvdXNDbGljaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jdXJyZW50UGFnZS0tO1xuICAgICAgICB0aGlzLl9wYWdlQ2hhbmdlZCgpO1xuICAgIH1cbiAgICBvblBhZ2VDaGFuZ2UocGFnZU51bWJlcjogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3BhZ2VDaGFuZ2VkKHBhZ2VOdW1iZXIgLSAxKTtcbiAgICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IHBhZ2VOdW1iZXI7XG4gICAgfVxuICAgIHByaXZhdGUgX2luaXRWYWx1ZXMocGFnaW5nU2V0dGluZzogUGFnaW5nU2V0dGluZyk6IHZvaWQge1xuICAgICAgICBpZiAocGFnaW5nU2V0dGluZyA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5oZWlnaHQgPSAwO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSBwYWdpbmdTZXR0aW5nLlBhZ2UgKyAxO1xuICAgICAgICB0aGlzLnRvdGFsUGFnZSA9IE51bWJlcihwYWdpbmdTZXR0aW5nLlRvdGFsUGFnZXMpO1xuICAgICAgICBjb25zdCB0b3RhbFJvd3MgPSBwYWdpbmdTZXR0aW5nLlRvdGFsUm93cy50b1N0cmluZygpO1xuICAgICAgICB0aGlzLnRvdGFsUGFnZVN0ciA9IHRoaXMuYmJiUGlwZS50cmFuc2Zvcm0oJ0NvdW50V2l0aFBhcmVudGhlc2lzJykucmVwbGFjZSgnezB9JywgdG90YWxSb3dzKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfcGFnZUNoYW5nZWQocGFnZU51bWJlcj86IG51bWJlcik6IHZvaWQge1xuICAgICAgICBwYWdlTnVtYmVyID0gdHlwZW9mIHBhZ2VOdW1iZXIgPT09ICd1bmRlZmluZWQnID8gdGhpcy5jdXJyZW50UGFnZSA6IHBhZ2VOdW1iZXI7XG4gICAgICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KHBhZ2VOdW1iZXIpO1xuICAgIH1cbn1cbiIsIjwhLS0gPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbmZpZz8uU2V0dGluZz8uRGF0YT8uUGFnaW5nPy5IYXNQYWdpbmdcIj5cbjxkaXYgY2xhc3M9XCJpY29uc1wiPlxuICA8YnV0dG9uXG4gICAgZmQtYnV0dG9uXG4gICAgW2F0dHIuZGlzYWJsZWRdPVwiY3VycmVudFBhZ2UgPT09IHRvdGFsUGFnZSAtIDEgPyB0cnVlIDogbnVsbFwiXG4gICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgIGdseXBoPVwiYmVnaW5cIlxuICAgIChjbGljayk9XCJvbkVuZENsaWNrKClcIlxuICA+PC9idXR0b24+XG4gIDxidXR0b25cbiAgICBmZC1idXR0b25cbiAgICBbYXR0ci5kaXNhYmxlZF09XCJjdXJyZW50UGFnZSArIDEgPj0gdG90YWxQYWdlID8gdHJ1ZSA6IG51bGxcIlxuICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICBnbHlwaD1cIm5hdmlnYXRpb24tbGVmdC1hcnJvd1wiXG4gICAgKGNsaWNrKT1cIm9uTmV4dENsaWNrKClcIlxuICA+PC9idXR0b24+XG4gIDxidXR0b25cbiAgICBmZC1idXR0b25cbiAgICBbYXR0ci5kaXNhYmxlZF09XCJjdXJyZW50UGFnZSAtIDEgPCAwID8gdHJ1ZSA6IG51bGxcIlxuICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICBnbHlwaD1cIm5hdmlnYXRpb24tcmlnaHQtYXJyb3dcIlxuICAgIChjbGljayk9XCJvblByZXZpb3VzQ2xpY2soKVwiXG4gID48L2J1dHRvbj5cbiAgPGJ1dHRvblxuICAgIGZkLWJ1dHRvblxuICAgIFthdHRyLmRpc2FibGVkXT1cImN1cnJlbnRQYWdlID09PSAwID8gdHJ1ZSA6IG51bGxcIlxuICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICBnbHlwaD1cImJlZ2luXCJcbiAgICAoY2xpY2spPVwib25GaXJzdENsaWNrKClcIlxuICA+PC9idXR0b24+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJwYWdlc2l6ZVwiPlxuICA8bGFiZWwgc3R5bGU9XCJwYWRkaW5nOiAwIDVweFwiXG4gICAgPnt7IGN1cnJlbnRQYWdlICogcGFnZVNpemUgfX0te3sgY3VycmVudFBhZ2UgKiBwYWdlU2l6ZSArIHBhZ2VTaXplIH19INin2LJcbiAgICB7eyBjb25maWcuU2V0dGluZy5EYXRhLlBhZ2luZy5Ub3RhbFJvd3MgfX08L2xhYmVsXG4gICAgPlxuICAgIDxmZC1zZWxlY3QgKHZhbHVlQ2hhbmdlKT1cIm9uUGFnZVNpemVDaGFuZ2UoJGV2ZW50KVwiIFt2YWx1ZV09XCJwYWdlU2l6ZVwiPlxuICAgICAgPGZkLW9wdGlvbiBbdmFsdWVdPVwiMjRcIj4yNDwvZmQtb3B0aW9uPlxuICAgICAgPGZkLW9wdGlvbiBbdmFsdWVdPVwiMTAwXCI+MTAwPC9mZC1vcHRpb24+XG4gICAgICA8ZmQtb3B0aW9uIFt2YWx1ZV09XCIxMDBcIj4xMDA8L2ZkLW9wdGlvbj5cbiAgICA8L2ZkLXNlbGVjdD5cblxuICAgIDxsYWJlbCBzdHlsZT1cInBhZGRpbmc6IDAgNXB4XCI+e3sgSXRlbXNQZXJQYWdlIH19OjwvbGFiZWw+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+IC0tPlxuQGlmIChwYWdpbmdTZXR0aW5nKSB7IEBpZiAocGFnaW5nU2V0dGluZyAmJiBwYWdpbmdTZXR0aW5nLkhhc1BhZ2luZyAmJiBwYWdpbmdTZXR0aW5nLlRvdGFsUGFnZXM+MSkge1xuPGZkLXBhZ2luYXRpb25cbiAgICBkaXI9XCJydGxcIlxuICAgIFt0b3RhbEl0ZW1zXT1cInBhZ2luZ1NldHRpbmcuVG90YWxSb3dzXCJcbiAgICAocGFnZUNoYW5nZVN0YXJ0KT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCJcbiAgICBbaXRlbXNQZXJQYWdlXT1cInBhZ2luZ1NldHRpbmcuUGFnZVNpemVcIlxuICAgIFtjdXJyZW50UGFnZV09XCJjdXJyZW50UGFnZVwiXG4gICAgW2Rpc3BsYXlUZXh0VGVtcGxhdGVdPVwic2hvd2luZ0l0ZW1zXCJcbj48L2ZkLXBhZ2luYXRpb24+XG59IH1cbjxuZy10ZW1wbGF0ZSAjc2hvd2luZ0l0ZW1zIGxldC1zaG93aW5nPVwic2hvd2luZ1wiPlxuICAgIDxzcGFuIGRpcj1cImx0clwiPlxuICAgICAgICB7eyAnRnJvbScgfCBiYmJUcmFuc2xhdGUgfX0ge3sgc2hvd2luZy5mcm9tIH19IHt7ICdUbycgfCBiYmJUcmFuc2xhdGUgfX0ge3sgc2hvd2luZy50byB9fSB7eyB0b3RhbFBhZ2VTdHIgfX1cbiAgICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuIl19