barsa-sap-ui 2.2.2 → 2.2.4

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 (241) hide show
  1. package/esm2022/barsa-sap-ui.mjs +5 -0
  2. package/esm2022/lib/apply-conditional-formmatings.directive.mjs +90 -0
  3. package/esm2022/lib/avatar-size.pipe.mjs +41 -0
  4. package/esm2022/lib/barsa-answer-card/barsa-answer-card.component.mjs +41 -0
  5. package/esm2022/lib/barsa-asp-viewer/barsa-asp-viewer.component.mjs +145 -0
  6. package/esm2022/lib/barsa-bar-download-file/barsa-bar-download-file.component.mjs +23 -0
  7. package/esm2022/lib/barsa-bar-panel/barsa-bar-panel.component.mjs +23 -0
  8. package/esm2022/lib/barsa-base-panel/barsa-base-layout-panel.component.mjs +29 -0
  9. package/esm2022/lib/barsa-breadcrumbs/barsa-breadcrumbs.component.mjs +24 -0
  10. package/esm2022/lib/barsa-card-layout-panel/barsa-card-layout-panel.component.mjs +24 -0
  11. package/esm2022/lib/barsa-card-row-payam/barsa-card-row-payam.component.mjs +31 -0
  12. package/esm2022/lib/barsa-cartable-form/barsa-cartable-form.component.mjs +41 -0
  13. package/esm2022/lib/barsa-cartable-template/barsa-cartable-template.component.mjs +24 -0
  14. package/esm2022/lib/barsa-chat/barsa-chat.component.mjs +242 -0
  15. package/esm2022/lib/barsa-chat/chat.model.mjs +8 -0
  16. package/esm2022/lib/barsa-chat-content/barsa-chat-content.component.mjs +13 -0
  17. package/esm2022/lib/barsa-chat-content-toolbar/barsa-chat-content-toolbar.component.mjs +22 -0
  18. package/esm2022/lib/barsa-chat-list/barsa-chat-list.component.mjs +66 -0
  19. package/esm2022/lib/barsa-chat-message/barsa-chat-message.component.mjs +78 -0
  20. package/esm2022/lib/barsa-chat-thread/barsa-chat-thread.component.mjs +22 -0
  21. package/esm2022/lib/barsa-chat-threads-list/barsa-chat-threads-list.component.mjs +13 -0
  22. package/esm2022/lib/barsa-chat-threads-list-toolbar/barsa-chat-threads-list-toolbar.component.mjs +15 -0
  23. package/esm2022/lib/barsa-chip/barsa-chip.component.mjs +72 -0
  24. package/esm2022/lib/barsa-column-indicator/barsa-column-indicator.component.mjs +23 -0
  25. package/esm2022/lib/barsa-column-rownumber/barsa-column-rownumber.component.mjs +14 -0
  26. package/esm2022/lib/barsa-custom-inline-edit/barsa-custom-inline-edit.component.mjs +14 -0
  27. package/esm2022/lib/barsa-custom-inline-edit-row/barsa-custom-inline-edit-row.component.mjs +26 -0
  28. package/esm2022/lib/barsa-date-time-picker/barsa-date-time-picker.component.mjs +71 -0
  29. package/esm2022/lib/barsa-dynamic-field/barsa-dynamic-field.component.mjs +40 -0
  30. package/esm2022/lib/barsa-enum-menu-button/barsa-enum-menu-button.component.mjs +61 -0
  31. package/esm2022/lib/barsa-field-key-value/barsa-field-key-value.component.mjs +45 -0
  32. package/esm2022/lib/barsa-form-side-content/barsa-form-side-content.component.mjs +58 -0
  33. package/esm2022/lib/barsa-grid-layout-panel/barsa-grid-layout-panel.component.mjs +27 -0
  34. package/esm2022/lib/barsa-group-cartable/barsa-cartable-group.component.mjs +94 -0
  35. package/esm2022/lib/barsa-horizontal-flex-panel/barsa-horizontal-flex-panel.component.mjs +22 -0
  36. package/esm2022/lib/barsa-linkable-items-panel/barsa-linkable-items-panel.component.mjs +37 -0
  37. package/esm2022/lib/barsa-list-file-linear/barsa-list-file-linear.component.mjs +41 -0
  38. package/esm2022/lib/barsa-list-file-linear-gmail/barsa-list-file-linear-gmail.component.mjs +29 -0
  39. package/esm2022/lib/barsa-list-layout-panel/barsa-list-layout-panel.component.mjs +23 -0
  40. package/esm2022/lib/barsa-modal/barsa-modal.component.mjs +43 -0
  41. package/esm2022/lib/barsa-monaco-editor/barsa-monaco-editor.component.mjs +83 -0
  42. package/esm2022/lib/barsa-network-offline/barsa-network-offline.component.mjs +57 -0
  43. package/esm2022/lib/barsa-pishnamayesh-payam/barsa-pishnamayesh-payam.component.mjs +159 -0
  44. package/esm2022/lib/barsa-question-answer-comments-section/barsa-question-answer-comments-section.component.mjs +17 -0
  45. package/esm2022/lib/barsa-question-answer-content-actions-section/barsa-question-answer-content-actions-section.component.mjs +30 -0
  46. package/esm2022/lib/barsa-question-answer-creator-time-section/barsa-question-answer-creator-time-section.component.mjs +14 -0
  47. package/esm2022/lib/barsa-question-answer-form/barsa-question-answer-form.component.mjs +34 -0
  48. package/esm2022/lib/barsa-question-answer-form-add-comment/barsa-question-answer-form-add-comment.component.mjs +46 -0
  49. package/esm2022/lib/barsa-question-answer-vote-section/barsa-question-answer-vote-section.component.mjs +79 -0
  50. package/esm2022/lib/barsa-question-post/barsa-question-post.component.mjs +30 -0
  51. package/esm2022/lib/barsa-report-card-flex-view/barsa-report-card-flex-view.component.mjs +31 -0
  52. package/esm2022/lib/barsa-report-checkbox-switch-button/barsa-report-checkbox-switch-button.component.mjs +28 -0
  53. package/esm2022/lib/barsa-report-one-of-list/barsa-report-one-of-list.component.mjs +102 -0
  54. package/esm2022/lib/barsa-row-inline-actionlist/barsa-row-inline-actionlist.component.mjs +26 -0
  55. package/esm2022/lib/barsa-sap-ui-routing.module.mjs +18 -0
  56. package/esm2022/lib/barsa-sap-ui.module.mjs +377 -0
  57. package/esm2022/lib/barsa-search-form/barsa-search-form.component.mjs +29 -0
  58. package/esm2022/lib/barsa-simple-form/barsa-simple-form.component.mjs +170 -0
  59. package/esm2022/lib/barsa-tab-route-manager/barsa-tab-route-manager.component.mjs +18 -0
  60. package/esm2022/lib/barsa-table-column/barsa-table-column.component.mjs +29 -0
  61. package/esm2022/lib/barsa-table-header/barsa-table-header.component.mjs +222 -0
  62. package/esm2022/lib/barsa-table-row/barsa-table-row.component.mjs +87 -0
  63. package/esm2022/lib/barsa-tag-categories/barsa-tag-categories.component.mjs +60 -0
  64. package/esm2022/lib/barsa-tag-chip/barsa-tag-chip.component.mjs +26 -0
  65. package/esm2022/lib/barsa-tags-category-row/barsa-tags-category-row.component.mjs +23 -0
  66. package/esm2022/lib/barsa-text-ellipsis/barsa-text-ellipsis.component.mjs +37 -0
  67. package/esm2022/lib/barsa-tinyemce/barsa-tinyemce.component.mjs +418 -0
  68. package/esm2022/lib/barsa-toolbaritem-search/barsa-toolbaritem-search.component.mjs +36 -0
  69. package/esm2022/lib/barsa-tree-item/barsa-tree-item.component.mjs +153 -0
  70. package/esm2022/lib/barsa-tree-item/node-has-one-depth-level.pipe.mjs +20 -0
  71. package/esm2022/lib/barsa-ulv-main/barsa-ulv-main.component.mjs +216 -0
  72. package/esm2022/lib/blob-viewer/blob-viewer.component.mjs +74 -0
  73. package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +50 -0
  74. package/esm2022/lib/captcha-field/captcha-field.component.mjs +28 -0
  75. package/esm2022/lib/card-item/card-item.component.mjs +74 -0
  76. package/esm2022/lib/card-view-content/card-view-content.component.mjs +46 -0
  77. package/esm2022/lib/col-renderer.directive.mjs +47 -0
  78. package/esm2022/lib/column-matrix-renderer/column-matrix-renderer.component.mjs +56 -0
  79. package/esm2022/lib/column-matrix-renderer/matrix-value.pipe.mjs +61 -0
  80. package/esm2022/lib/column-renderer/column-renderer.component.mjs +97 -0
  81. package/esm2022/lib/constants.mjs +450 -0
  82. package/esm2022/lib/custom-date-time/custom-date-time.component.mjs +41 -0
  83. package/esm2022/lib/device-info-field-base.mjs +24 -0
  84. package/esm2022/lib/dialog-handler.directive.mjs +29 -0
  85. package/esm2022/lib/download-files.directive.mjs +34 -0
  86. package/esm2022/lib/dynamic-page-size.pipe.mjs +27 -0
  87. package/esm2022/lib/file-in-dialog/file-in-dialog.component.mjs +44 -0
  88. package/esm2022/lib/file-viewer/file-viewer.component.mjs +47 -0
  89. package/esm2022/lib/file-viewer-content/file-viewer-content.component.mjs +71 -0
  90. package/esm2022/lib/file-viewer-popover/file-viewer-popover.component.mjs +37 -0
  91. package/esm2022/lib/form-dialog/form-dialog.component.mjs +171 -0
  92. package/esm2022/lib/form-dialog-less/form-dialog-less.component.mjs +50 -0
  93. package/esm2022/lib/form-toolbar/form-toolbar.component.mjs +62 -0
  94. package/esm2022/lib/form-toolbar-button/form-toolbar-button.component.mjs +45 -0
  95. package/esm2022/lib/form-wizard/form-wizard.component.mjs +21 -0
  96. package/esm2022/lib/fullscreen-dialog.directive.mjs +60 -0
  97. package/esm2022/lib/fullscreen-files.directive.mjs +43 -0
  98. package/esm2022/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.mjs +217 -0
  99. package/esm2022/lib/gantt-dhtml-chart-view/gantt-dhtml-chart-view.component.mjs +215 -0
  100. package/esm2022/lib/global-search/global-search.component.mjs +27 -0
  101. package/esm2022/lib/global-search-module/global-search-module.component.mjs +29 -0
  102. package/esm2022/lib/global-search-panel/global-search-panel.component.mjs +25 -0
  103. package/esm2022/lib/header-avatar/header-avatar.component.mjs +18 -0
  104. package/esm2022/lib/htree-create-new/htree-create-new.component.mjs +48 -0
  105. package/esm2022/lib/hyperlink/hyperlink.component.mjs +23 -0
  106. package/esm2022/lib/index.mjs +549 -0
  107. package/esm2022/lib/inline-save-and-cancel/inline-save-and-cancel.component.mjs +32 -0
  108. package/esm2022/lib/layout-actions/layout-actions.component.mjs +70 -0
  109. package/esm2022/lib/layout-control/layout-control.component.mjs +302 -0
  110. package/esm2022/lib/layout-wizard/layout-wizard.component.mjs +180 -0
  111. package/esm2022/lib/list-item/list-item.component.mjs +34 -0
  112. package/esm2022/lib/ly-empty-space/ly-empty-space.component.mjs +42 -0
  113. package/esm2022/lib/ly-horizontal-layout/ly-horizontal-layout.component.mjs +82 -0
  114. package/esm2022/lib/ly-label/ly-label.component.mjs +37 -0
  115. package/esm2022/lib/ly-layout-container/ly-layout-container.component.mjs +83 -0
  116. package/esm2022/lib/ly-layout-container-of-root/ly-layout-container-of-root.component.mjs +17 -0
  117. package/esm2022/lib/ly-layout-field-label/ly-layout-field-label.component.mjs +24 -0
  118. package/esm2022/lib/ly-layout-panel/ly-layout-panel.component.mjs +83 -0
  119. package/esm2022/lib/ly-line/ly-line.component.mjs +56 -0
  120. package/esm2022/lib/ly-simple-label/ly-simple-label.component.mjs +22 -0
  121. package/esm2022/lib/ly-tab-container/ly-tab-container.component.mjs +44 -0
  122. package/esm2022/lib/ly-tab-page/ly-tab-page.component.mjs +44 -0
  123. package/esm2022/lib/ly-vertical-layout/ly-vertical-layout.component.mjs +51 -0
  124. package/esm2022/lib/manage-filters-report/manage-filters-report.component.mjs +43 -0
  125. package/esm2022/lib/mask/mask.component.mjs +22 -0
  126. package/esm2022/lib/message-strip/message-strip.component.mjs +28 -0
  127. package/esm2022/lib/models/grid-data-provider.mjs +114 -0
  128. package/esm2022/lib/models/grid-view.mjs +2 -0
  129. package/esm2022/lib/models/index.mjs +2 -0
  130. package/esm2022/lib/no-data/no-data.component.mjs +31 -0
  131. package/esm2022/lib/notification-item/notification-item.component.mjs +57 -0
  132. package/esm2022/lib/notification-item-actions/notification-item-actions.component.mjs +79 -0
  133. package/esm2022/lib/notification-popup.service.mjs +92 -0
  134. package/esm2022/lib/object-status-icon.pipe.mjs +27 -0
  135. package/esm2022/lib/progress-indicator/progress-indicator.component.mjs +18 -0
  136. package/esm2022/lib/report-navigator/report-navigator.component.mjs +68 -0
  137. package/esm2022/lib/report-new-top-form/report-new-top-form.component.mjs +60 -0
  138. package/esm2022/lib/report-search-fields-hidden-settings/report-search-fields-hidden-settings.component.mjs +35 -0
  139. package/esm2022/lib/report-search-fields-manage/report-search-fields-manage.component.mjs +97 -0
  140. package/esm2022/lib/report-search-panel-save/report-search-panel-save.component.mjs +88 -0
  141. package/esm2022/lib/report-tree-base.mjs +387 -0
  142. package/esm2022/lib/report-view-renderer.directive.mjs +392 -0
  143. package/esm2022/lib/responsive-toolbar/responsive-toolbar.component.mjs +50 -0
  144. package/esm2022/lib/responsive-toolbar-renderer/responsive-toolbar-renderer.component.mjs +84 -0
  145. package/esm2022/lib/rich-text-static/rich-text-static.component.mjs +72 -0
  146. package/esm2022/lib/sap-font-class.pipe.mjs +30 -0
  147. package/esm2022/lib/sap-font.pipe.mjs +30 -0
  148. package/esm2022/lib/sap-size.pipe.mjs +28 -0
  149. package/esm2022/lib/sap-ui-report-base.component.mjs +809 -0
  150. package/esm2022/lib/search-panel/search-panel.component.mjs +63 -0
  151. package/esm2022/lib/static-text/static-text.component.mjs +15 -0
  152. package/esm2022/lib/table-th.directive.mjs +87 -0
  153. package/esm2022/lib/title/title.component.mjs +15 -0
  154. package/esm2022/lib/ui-asp-report-viewer/ui-asp-report-viewer.component.mjs +34 -0
  155. package/esm2022/lib/ui-bpmn-viewer/ui-bpmn-viewer.component.mjs +33 -0
  156. package/esm2022/lib/ui-button/ui-button.component.mjs +32 -0
  157. package/esm2022/lib/ui-calendar/ui-calendar.component.mjs +53 -0
  158. package/esm2022/lib/ui-card-view/ui-card-view.component.mjs +58 -0
  159. package/esm2022/lib/ui-card-view-horizontal-group/ui-card-view-horizontal-group.component.mjs +42 -0
  160. package/esm2022/lib/ui-check-box/ui-check-box.component.mjs +39 -0
  161. package/esm2022/lib/ui-color-ui/ui-color-ui.component.mjs +50 -0
  162. package/esm2022/lib/ui-container-with-button/ui-container-with-button.component.mjs +38 -0
  163. package/esm2022/lib/ui-date-range-ex/ui-date-range-ex.component.mjs +191 -0
  164. package/esm2022/lib/ui-date-time/ui-date-time.component.mjs +150 -0
  165. package/esm2022/lib/ui-editable-grid/ui-editable-grid.component.mjs +108 -0
  166. package/esm2022/lib/ui-exception-form/ui-exception-form.component.mjs +53 -0
  167. package/esm2022/lib/ui-file-linear-list-box/ui-file-linear-list-box.component.mjs +124 -0
  168. package/esm2022/lib/ui-form-panel/ui-form-panel.component.mjs +103 -0
  169. package/esm2022/lib/ui-gantt-chart/ui-gantt-chart.component.mjs +32 -0
  170. package/esm2022/lib/ui-graph/ui-graph.component.mjs +17 -0
  171. package/esm2022/lib/ui-grid/ui-grid.component.mjs +25 -0
  172. package/esm2022/lib/ui-grid-columns/ui-grid-columns.component.mjs +43 -0
  173. package/esm2022/lib/ui-grid-filter-item/ui-grid-filter-item.component.mjs +66 -0
  174. package/esm2022/lib/ui-grid-filter-settings/ui-grid-filter-settings.component.mjs +75 -0
  175. package/esm2022/lib/ui-grid-sort-item/ui-grid-sort-item.component.mjs +58 -0
  176. package/esm2022/lib/ui-grid-sort-setting/ui-grid-sort-setting.component.mjs +123 -0
  177. package/esm2022/lib/ui-html-viewer/ui-html-viewer.component.mjs +16 -0
  178. package/esm2022/lib/ui-info-bar-panel/ui-info-bar-panel.component.mjs +11 -0
  179. package/esm2022/lib/ui-label/ui-label.component.mjs +12 -0
  180. package/esm2022/lib/ui-linear-list-container-with-button/ui-linear-list-container-with-button.component.mjs +379 -0
  181. package/esm2022/lib/ui-list-view/ui-list-view.component.mjs +84 -0
  182. package/esm2022/lib/ui-map/ui-map.component.mjs +68 -0
  183. package/esm2022/lib/ui-matrix-view/ui-matrix-view.component.mjs +124 -0
  184. package/esm2022/lib/ui-mo-info-combo-viewer/ui-mo-info-combo-viewer.component.mjs +19 -0
  185. package/esm2022/lib/ui-mo-info-general-object-ui/ui-mo-info-general-object-ui.component.mjs +14 -0
  186. package/esm2022/lib/ui-mo-info-sub-form-ui/ui-mo-info-sub-form-ui.component.mjs +55 -0
  187. package/esm2022/lib/ui-mo-info-ulv-combo/ui-mo-info-ulv-combo.component.mjs +429 -0
  188. package/esm2022/lib/ui-monaco-editor/ui-monaco-editor.component.mjs +28 -0
  189. package/esm2022/lib/ui-multi-select-card/ui-multi-select-card.component.mjs +37 -0
  190. package/esm2022/lib/ui-multi-select-checkbox/ui-multi-select-checkbox.component.mjs +59 -0
  191. package/esm2022/lib/ui-multi-select-combo/ui-multi-select-combo.component.mjs +93 -0
  192. package/esm2022/lib/ui-multi-select-radio/ui-multi-select-radio.component.mjs +36 -0
  193. package/esm2022/lib/ui-multi-select-slider/ui-multi-select-slider.component.mjs +56 -0
  194. package/esm2022/lib/ui-multi-select-smile/ui-multi-select-smile.component.mjs +28 -0
  195. package/esm2022/lib/ui-notification-view/ui-notification-view.component.mjs +47 -0
  196. package/esm2022/lib/ui-num-decimal-ui/ui-num-decimal-ui.component.mjs +33 -0
  197. package/esm2022/lib/ui-num-int-slider/ui-num-int-slider.component.mjs +27 -0
  198. package/esm2022/lib/ui-num-int-ui/ui-num-int-ui.component.mjs +21 -0
  199. package/esm2022/lib/ui-pdf-viewer/ui-pdf-viewer.component.mjs +268 -0
  200. package/esm2022/lib/ui-picture-file/ui-picture-file.component.mjs +101 -0
  201. package/esm2022/lib/ui-pictures-info/ui-pictures-info.component.mjs +261 -0
  202. package/esm2022/lib/ui-radio-group/ui-radio-group.component.mjs +48 -0
  203. package/esm2022/lib/ui-read-only-field/ui-read-only-field.component.mjs +36 -0
  204. package/esm2022/lib/ui-report-container/ui-report-container.component.mjs +46 -0
  205. package/esm2022/lib/ui-search-command-info-ui/ui-search-command-info-ui.component.mjs +24 -0
  206. package/esm2022/lib/ui-simple-combo/ui-simple-combo.component.mjs +55 -0
  207. package/esm2022/lib/ui-single-picture/ui-single-picture.component.mjs +36 -0
  208. package/esm2022/lib/ui-switch-button/ui-switch-button.component.mjs +20 -0
  209. package/esm2022/lib/ui-table-view/ui-table-view.component.mjs +296 -0
  210. package/esm2022/lib/ui-text-area/ui-text-area.component.mjs +49 -0
  211. package/esm2022/lib/ui-text-field/ui-text-field.component.mjs +52 -0
  212. package/esm2022/lib/ui-text-field-auto-complete/ui-text-field-auto-complete.component.mjs +48 -0
  213. package/esm2022/lib/ui-time-span/ui-time-span.component.mjs +24 -0
  214. package/esm2022/lib/ui-tinymce/ui-tinymce.component.mjs +53 -0
  215. package/esm2022/lib/ui-tree/ui-tree.component.mjs +114 -0
  216. package/esm2022/lib/ui-tree-view/ui-tree-view.component.mjs +100 -0
  217. package/esm2022/lib/ui-ulv-form-multi-select-ui/ui-ulv-form-multi-select-ui.component.mjs +23 -0
  218. package/esm2022/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.mjs +310 -0
  219. package/esm2022/lib/ui-workflow-panel-ui/ui-workflow-panel-ui.component.mjs +25 -0
  220. package/esm2022/lib/ul-loading-mask-ui/ul-loading-mask-ui.component.mjs +93 -0
  221. package/esm2022/lib/ul-msg-box-adapter/ul-msg-box-adapter.component.mjs +119 -0
  222. package/esm2022/lib/ul-notify-popup/ul-notify-popup.component.mjs +32 -0
  223. package/esm2022/lib/ul-toast-adapter/ul-toast-adapter.component.mjs +48 -0
  224. package/esm2022/lib/ulv-column-settings/ulv-column-settings.component.mjs +53 -0
  225. package/esm2022/lib/ulv-context-menu/ulv-context-menu.component.mjs +116 -0
  226. package/esm2022/lib/ulv-filter-settings/ulv-filter-settings.component.mjs +43 -0
  227. package/esm2022/lib/ulv-form-multi-select/ulv-form-multi-select.component.mjs +196 -0
  228. package/esm2022/lib/ulv-groupby-settings/ulv-groupby-settings.component.mjs +44 -0
  229. package/esm2022/lib/ulv-paging/ulv-paging.component.mjs +84 -0
  230. package/esm2022/lib/ulv-selection/ulv-selection.component.mjs +65 -0
  231. package/esm2022/lib/ulv-settings/ulv-settings.component.mjs +116 -0
  232. package/esm2022/lib/ulv-sort-settings/ulv-sort-settings.component.mjs +54 -0
  233. package/esm2022/lib/ulv-toolbar/ulv-toolbar.component.mjs +177 -0
  234. package/esm2022/lib/upload-file-status.pipe.mjs +29 -0
  235. package/esm2022/lib/util-chat-time-badge.pipe.mjs +18 -0
  236. package/esm2022/lib/util-date-to-hh-mm.pipe.mjs +23 -0
  237. package/esm2022/lib/wizard-layout.directive.mjs +104 -0
  238. package/esm2022/public-api.mjs +236 -0
  239. package/fesm2022/barsa-sap-ui.mjs +6 -6
  240. package/fesm2022/barsa-sap-ui.mjs.map +1 -1
  241. package/package.json +3 -1
@@ -0,0 +1,43 @@
1
+ import { moveItemInArray } from '@angular/cdk/drag-drop';
2
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
3
+ import { BaseComponent } from 'barsa-novin-ray-core';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/forms";
6
+ import * as i2 from "@angular/cdk/drag-drop";
7
+ import * as i3 from "@fundamental-ngx/core/checkbox";
8
+ import * as i4 from "@fundamental-ngx/core/list";
9
+ export class UiGridColumnsComponent extends BaseComponent {
10
+ constructor() {
11
+ super(...arguments);
12
+ this.columnsChange = new EventEmitter();
13
+ this.selectedColumns = 0;
14
+ }
15
+ onDropColumn(columns, event) {
16
+ moveItemInArray(columns, event.previousIndex, event.currentIndex);
17
+ this.columnsChange.emit(columns);
18
+ }
19
+ onChangeColumnHidden(column) {
20
+ const selectedColIndex = this.columns.findIndex((c) => c.Name === column.Name);
21
+ if (selectedColIndex > -1) {
22
+ const existColumn = this.columns[selectedColIndex];
23
+ this.columns[selectedColIndex] = { ...existColumn, Hidden: !existColumn.Hidden };
24
+ }
25
+ this.columnsChange.emit(this.columns);
26
+ }
27
+ trackByMethod(index, column) {
28
+ return column.Name;
29
+ }
30
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiGridColumnsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
31
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: UiGridColumnsComponent, selector: "bsu-ui-grid-columns", inputs: { columns: "columns", selectedColumns: "selectedColumns" }, outputs: { columnsChange: "columnsChange" }, usesInheritance: true, ngImport: i0, template: "<h3>{{ 'Select All (' + selectedColumns + '/' + columns.length + ')' }}</h3>\r\n<ul\r\n fd-list\r\n [selection]=\"true\"\r\n cdkDropList\r\n cdkDropListOrientation=\"vertical\"\r\n (cdkDropListDropped)=\"onDropColumn(columns, $event)\"\r\n>\r\n @for (column of columns; track trackByMethod($index, column)) {\r\n <li cdkDrag fd-list-item [selected]=\"!column.Hidden\" (click)=\"onChangeColumnHidden(column)\">\r\n <fd-checkbox [ngModel]=\"!column.Hidden\"></fd-checkbox>\r\n <span fd-list-title>\r\n {{ column.Caption }}\r\n @if (column.IsMandatory) {\r\n <strong>*</strong>\r\n }\r\n </span>\r\n </li>\r\n }\r\n</ul>\r\n", styles: [":host{display:flex;flex-direction:column;width:100%}.inputIcon{background:#fafafa;color:#0a6ed1;cursor:pointer;max-width:400px;min-width:200px}.inputIcon:hover{background:#e0e0e080}strong{color:#ce3b3b}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i2.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: i3.CheckboxComponent, selector: "fd-checkbox", inputs: ["wrapLabel", "valignLabel", "ariaLabel", "role", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "readonly", "tristate", "tristateSelectable", "labelClass", "required", "displayOnly", "values", "standalone"], outputs: ["focusChange"] }, { kind: "component", type: i4.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i4.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole", "id"], outputs: ["keyDown"] }, { kind: "directive", type: i4.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
32
+ }
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiGridColumnsComponent, decorators: [{
34
+ type: Component,
35
+ args: [{ selector: 'bsu-ui-grid-columns', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<h3>{{ 'Select All (' + selectedColumns + '/' + columns.length + ')' }}</h3>\r\n<ul\r\n fd-list\r\n [selection]=\"true\"\r\n cdkDropList\r\n cdkDropListOrientation=\"vertical\"\r\n (cdkDropListDropped)=\"onDropColumn(columns, $event)\"\r\n>\r\n @for (column of columns; track trackByMethod($index, column)) {\r\n <li cdkDrag fd-list-item [selected]=\"!column.Hidden\" (click)=\"onChangeColumnHidden(column)\">\r\n <fd-checkbox [ngModel]=\"!column.Hidden\"></fd-checkbox>\r\n <span fd-list-title>\r\n {{ column.Caption }}\r\n @if (column.IsMandatory) {\r\n <strong>*</strong>\r\n }\r\n </span>\r\n </li>\r\n }\r\n</ul>\r\n", styles: [":host{display:flex;flex-direction:column;width:100%}.inputIcon{background:#fafafa;color:#0a6ed1;cursor:pointer;max-width:400px;min-width:200px}.inputIcon:hover{background:#e0e0e080}strong{color:#ce3b3b}\n"] }]
36
+ }], propDecorators: { columns: [{
37
+ type: Input
38
+ }], columnsChange: [{
39
+ type: Output
40
+ }], selectedColumns: [{
41
+ type: Input
42
+ }] } });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktZ3JpZC1jb2x1bW5zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL3VpLWdyaWQtY29sdW1ucy91aS1ncmlkLWNvbHVtbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktZ3JpZC1jb2x1bW5zL3VpLWdyaWQtY29sdW1ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkgsT0FBTyxFQUFFLGFBQWEsRUFBa0IsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7O0FBU3JFLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxhQUFhO0lBUHpEOztRQVNjLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQW9CLENBQUM7UUFDdEQsb0JBQWUsR0FBRyxDQUFDLENBQUM7S0FrQmhDO0lBaEJHLFlBQVksQ0FBQyxPQUF5QixFQUFFLEtBQW9DO1FBQ3hFLGVBQWUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELG9CQUFvQixDQUFDLE1BQU07UUFDdkIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0UsSUFBSSxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUNuRCxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxHQUFHLFdBQVcsRUFBRSxNQUFNLEVBQUUsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDckYsQ0FBQztRQUNELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBQ0QsYUFBYSxDQUFDLEtBQWEsRUFBRSxNQUFNO1FBQy9CLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQztJQUN2QixDQUFDOytHQXBCUSxzQkFBc0I7bUdBQXRCLHNCQUFzQixtTUNYbkMsMnNCQW9CQTs7NEZEVGEsc0JBQXNCO2tCQVBsQyxTQUFTOytCQUNJLHFCQUFxQixtQkFHZCx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLEtBQUs7OEJBR1IsT0FBTztzQkFBZixLQUFLO2dCQUNJLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0UsZUFBZTtzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0RyYWdEcm9wLCBtb3ZlSXRlbUluQXJyYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50LCBDb2x1bW5JbmZvVHlwZSB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtdWktZ3JpZC1jb2x1bW5zJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi91aS1ncmlkLWNvbHVtbnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdWktZ3JpZC1jb2x1bW5zLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0YW5kYWxvbmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVaUdyaWRDb2x1bW5zQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICAgIEBJbnB1dCgpIGNvbHVtbnM6IENvbHVtbkluZm9UeXBlW107XHJcbiAgICBAT3V0cHV0KCkgY29sdW1uc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q29sdW1uSW5mb1R5cGVbXT4oKTtcclxuICAgIEBJbnB1dCgpIHNlbGVjdGVkQ29sdW1ucyA9IDA7XHJcblxyXG4gICAgb25Ecm9wQ29sdW1uKGNvbHVtbnM6IENvbHVtbkluZm9UeXBlW10sIGV2ZW50OiBDZGtEcmFnRHJvcDxDb2x1bW5JbmZvVHlwZVtdPik6IHZvaWQge1xyXG4gICAgICAgIG1vdmVJdGVtSW5BcnJheShjb2x1bW5zLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xyXG4gICAgICAgIHRoaXMuY29sdW1uc0NoYW5nZS5lbWl0KGNvbHVtbnMpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2hhbmdlQ29sdW1uSGlkZGVuKGNvbHVtbik6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkQ29sSW5kZXggPSB0aGlzLmNvbHVtbnMuZmluZEluZGV4KChjKSA9PiBjLk5hbWUgPT09IGNvbHVtbi5OYW1lKTtcclxuICAgICAgICBpZiAoc2VsZWN0ZWRDb2xJbmRleCA+IC0xKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGV4aXN0Q29sdW1uID0gdGhpcy5jb2x1bW5zW3NlbGVjdGVkQ29sSW5kZXhdO1xyXG4gICAgICAgICAgICB0aGlzLmNvbHVtbnNbc2VsZWN0ZWRDb2xJbmRleF0gPSB7IC4uLmV4aXN0Q29sdW1uLCBIaWRkZW46ICFleGlzdENvbHVtbi5IaWRkZW4gfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jb2x1bW5zQ2hhbmdlLmVtaXQodGhpcy5jb2x1bW5zKTtcclxuICAgIH1cclxuICAgIHRyYWNrQnlNZXRob2QoaW5kZXg6IG51bWJlciwgY29sdW1uKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gY29sdW1uLk5hbWU7XHJcbiAgICB9XHJcbn1cclxuIiwiPGgzPnt7ICdTZWxlY3QgQWxsICgnICsgc2VsZWN0ZWRDb2x1bW5zICsgJy8nICsgY29sdW1ucy5sZW5ndGggKyAnKScgfX08L2gzPlxyXG48dWxcclxuICAgIGZkLWxpc3RcclxuICAgIFtzZWxlY3Rpb25dPVwidHJ1ZVwiXHJcbiAgICBjZGtEcm9wTGlzdFxyXG4gICAgY2RrRHJvcExpc3RPcmllbnRhdGlvbj1cInZlcnRpY2FsXCJcclxuICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwib25Ecm9wQ29sdW1uKGNvbHVtbnMsICRldmVudClcIlxyXG4+XHJcbiAgICBAZm9yIChjb2x1bW4gb2YgY29sdW1uczsgdHJhY2sgdHJhY2tCeU1ldGhvZCgkaW5kZXgsIGNvbHVtbikpIHtcclxuICAgIDxsaSBjZGtEcmFnIGZkLWxpc3QtaXRlbSBbc2VsZWN0ZWRdPVwiIWNvbHVtbi5IaWRkZW5cIiAoY2xpY2spPVwib25DaGFuZ2VDb2x1bW5IaWRkZW4oY29sdW1uKVwiPlxyXG4gICAgICAgIDxmZC1jaGVja2JveCBbbmdNb2RlbF09XCIhY29sdW1uLkhpZGRlblwiPjwvZmQtY2hlY2tib3g+XHJcbiAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT5cclxuICAgICAgICAgICAge3sgY29sdW1uLkNhcHRpb24gfX1cclxuICAgICAgICAgICAgQGlmIChjb2x1bW4uSXNNYW5kYXRvcnkpIHtcclxuICAgICAgICAgICAgPHN0cm9uZz4qPC9zdHJvbmc+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICA8L2xpPlxyXG4gICAgfVxyXG48L3VsPlxyXG4iXX0=
@@ -0,0 +1,66 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
+ import { BaseComponent, FormComponent } 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/button";
6
+ import * as i3 from "@fundamental-ngx/core/select";
7
+ export class UiGridFilterItemComponent extends BaseComponent {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.add = new EventEmitter();
11
+ this.remove = new EventEmitter();
12
+ this.allConditions = [
13
+ 'contains',
14
+ 'equal to',
15
+ 'between',
16
+ 'starts with',
17
+ 'ends with',
18
+ 'less than',
19
+ 'less than or equal to',
20
+ 'greater than or equal to',
21
+ 'empty'
22
+ ];
23
+ }
24
+ ngOnInit() {
25
+ super.ngOnInit();
26
+ const fieldCtrlr = this.formPanelCtrlr.GetControlByName(this.selectedColumnName);
27
+ fieldCtrlr.SetVisible(true);
28
+ this._setSelectedColumn();
29
+ }
30
+ onColumnChange(name) {
31
+ this.selectedColumnName = name;
32
+ this._setSelectedColumn();
33
+ this.columns.forEach((c) => {
34
+ const columnFieldCtrlr = this.formPanelCtrlr.GetControlByName(c.Name);
35
+ columnFieldCtrlr.SetVisible(false);
36
+ });
37
+ const fieldCtrlr = this.formPanelCtrlr.GetControlByName(name);
38
+ fieldCtrlr.SetVisible(true);
39
+ }
40
+ onConditionChange() { }
41
+ _setSelectedColumn() {
42
+ this.selectedColumn = this.columns.find((c) => c.Name === this.selectedColumnName);
43
+ }
44
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiGridFilterItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
45
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: UiGridFilterItemComponent, selector: "bsu-ui-grid-filter-item", inputs: { formPanelCtrlr: "formPanelCtrlr", columns: "columns", selectedColumnName: "selectedColumnName", selectedColumn: "selectedColumn" }, outputs: { add: "add", remove: "remove" }, viewQueries: [{ propertyName: "formComponent", first: true, predicate: FormComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"sort-select\">\r\n <fd-select (valueChange)=\"onColumnChange($event)\" [value]=\"selectedColumn?.Name\">\r\n @for (column of columns; track column) {\r\n <fd-option [value]=\"column.Name\">{{ column.Caption }}</fd-option>\r\n }\r\n </fd-select>\r\n <div class=\"spacer\"></div>\r\n <fd-select (valueChange)=\"onConditionChange()\">\r\n @for (item of allConditions; track item) {\r\n <fd-option [value]=\"item\">{{ item }}</fd-option>\r\n }\r\n </fd-select>\r\n <button fd-button glyph=\"decline\" fdType=\"transparent\" style=\"visibility: hidden\"></button>\r\n</div>\r\n<div class=\"sort-buttons\">\r\n <bnrc-form [formPanelCtrl]=\"formPanelCtrlr\"></bnrc-form>\r\n <button fd-button glyph=\"decline\" fdType=\"transparent\" (click)=\"this.remove.emit()\"></button>\r\n</div>\r\n", styles: [":host{display:flex;width:100%;flex-direction:column;margin-bottom:15px}:host ::ng-deep bnrc-form bsu-layout-control,:host ::ng-deep bnrc-form bnrc-field-ui{max-width:100%!important;width:100%!important;padding:0!important}:host ::ng-deep .sort-select fd-select,:host ::ng-deep .sort-select fd-select fd-popover{width:100%}.sort-select{display:flex;flex-grow:1}.spacer{flex-shrink:0;width:10px}.sort-buttons{display:flex;align-items:center}.sort-buttons input{flex:1}button{margin:0 5px}\n"], dependencies: [{ kind: "component", type: i1.FormComponent, selector: "bnrc-form", inputs: ["params", "customFormPanelUi", "formPanelCtrl", "UlvMainCtrlr", "formPanelCtrlId", "saveOnChange", "inlineEditInReport"], outputs: ["titleChanged", "moChanged", "formClose", "uiComponent", "formRendered", "bruleAction", "beforeTransition", "afterTransition"] }, { kind: "component", type: i2.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i3.SelectComponent, selector: "fd-select", inputs: ["extendedBodyTemplate", "scrollStrategy", "textOverflow", "controlId", "state", "mobile", "stateMessage", "disabled", "required", "readonly", "placeholder", "value", "maxHeight", "glyph", "glyphFont", "closeOnOutsideClick", "fillControlMode", "controlTemplate", "appendTo", "unselectMissingOption", "typeaheadDebounceInterval", "ariaLabelledBy", "ariaLabel", "mobileConfig", "inline", "selectControlClass", "selectDropdownButtonClass", "advancedStateMessage", "tabOutStrategy", "compareWith"], outputs: ["isOpenChange", "valueChange"] }, { kind: "component", type: i3.OptionComponent, selector: "[fd-option], fd-option", inputs: ["id", "value", "disabled"], outputs: ["selectionChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
46
+ }
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiGridFilterItemComponent, decorators: [{
48
+ type: Component,
49
+ args: [{ selector: 'bsu-ui-grid-filter-item', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<div class=\"sort-select\">\r\n <fd-select (valueChange)=\"onColumnChange($event)\" [value]=\"selectedColumn?.Name\">\r\n @for (column of columns; track column) {\r\n <fd-option [value]=\"column.Name\">{{ column.Caption }}</fd-option>\r\n }\r\n </fd-select>\r\n <div class=\"spacer\"></div>\r\n <fd-select (valueChange)=\"onConditionChange()\">\r\n @for (item of allConditions; track item) {\r\n <fd-option [value]=\"item\">{{ item }}</fd-option>\r\n }\r\n </fd-select>\r\n <button fd-button glyph=\"decline\" fdType=\"transparent\" style=\"visibility: hidden\"></button>\r\n</div>\r\n<div class=\"sort-buttons\">\r\n <bnrc-form [formPanelCtrl]=\"formPanelCtrlr\"></bnrc-form>\r\n <button fd-button glyph=\"decline\" fdType=\"transparent\" (click)=\"this.remove.emit()\"></button>\r\n</div>\r\n", styles: [":host{display:flex;width:100%;flex-direction:column;margin-bottom:15px}:host ::ng-deep bnrc-form bsu-layout-control,:host ::ng-deep bnrc-form bnrc-field-ui{max-width:100%!important;width:100%!important;padding:0!important}:host ::ng-deep .sort-select fd-select,:host ::ng-deep .sort-select fd-select fd-popover{width:100%}.sort-select{display:flex;flex-grow:1}.spacer{flex-shrink:0;width:10px}.sort-buttons{display:flex;align-items:center}.sort-buttons input{flex:1}button{margin:0 5px}\n"] }]
50
+ }], propDecorators: { formComponent: [{
51
+ type: ViewChild,
52
+ args: [FormComponent]
53
+ }], add: [{
54
+ type: Output
55
+ }], remove: [{
56
+ type: Output
57
+ }], formPanelCtrlr: [{
58
+ type: Input
59
+ }], columns: [{
60
+ type: Input
61
+ }], selectedColumnName: [{
62
+ type: Input
63
+ }], selectedColumn: [{
64
+ type: Input
65
+ }] } });
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktZ3JpZC1maWx0ZXItaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi91aS1ncmlkLWZpbHRlci1pdGVtL3VpLWdyaWQtZmlsdGVyLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktZ3JpZC1maWx0ZXItaXRlbS91aS1ncmlkLWZpbHRlci1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ILE9BQU8sRUFBRSxhQUFhLEVBQWlDLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7OztBQVFuRyxNQUFNLE9BQU8seUJBQTBCLFNBQVEsYUFBYTtJQVA1RDs7UUFTYyxRQUFHLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN6QixXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUt0QyxrQkFBYSxHQUFHO1lBQ1osVUFBVTtZQUNWLFVBQVU7WUFDVixTQUFTO1lBQ1QsYUFBYTtZQUNiLFdBQVc7WUFDWCxXQUFXO1lBQ1gsdUJBQXVCO1lBQ3ZCLDBCQUEwQjtZQUMxQixPQUFPO1NBQ1YsQ0FBQztLQXVCTDtJQXJCRyxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDakYsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBQ0QsY0FBYyxDQUFDLElBQUk7UUFDZixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO1FBQy9CLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDdkIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN0RSxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkMsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlELFVBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUNELGlCQUFpQixLQUFVLENBQUM7SUFDbEIsa0JBQWtCO1FBQ3hCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDdkYsQ0FBQzsrR0F4Q1EseUJBQXlCO21HQUF6Qix5QkFBeUIsdVNBQ3ZCLGFBQWEsdUVDWDVCLDgxQkFrQkE7OzRGRFJhLHlCQUF5QjtrQkFQckMsU0FBUzsrQkFDSSx5QkFBeUIsbUJBR2xCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsS0FBSzs4QkFHUyxhQUFhO3NCQUF0QyxTQUFTO3VCQUFDLGFBQWE7Z0JBQ2QsR0FBRztzQkFBWixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRSxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQsIFJlcG9ydFZpZXdDb2x1bW4sIEZvcm1TZXR0aW5nLCBGb3JtQ29tcG9uZW50IH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYnN1LXVpLWdyaWQtZmlsdGVyLWl0ZW0nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VpLWdyaWQtZmlsdGVyLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdWktZ3JpZC1maWx0ZXItaXRlbS5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWlHcmlkRmlsdGVySXRlbUNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQFZpZXdDaGlsZChGb3JtQ29tcG9uZW50KSBmb3JtQ29tcG9uZW50OiBGb3JtQ29tcG9uZW50O1xyXG4gICAgQE91dHB1dCgpIGFkZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBPdXRwdXQoKSByZW1vdmUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBASW5wdXQoKSBmb3JtUGFuZWxDdHJscjogRm9ybVNldHRpbmc7XHJcbiAgICBASW5wdXQoKSBjb2x1bW5zOiBSZXBvcnRWaWV3Q29sdW1uW107XHJcbiAgICBASW5wdXQoKSBzZWxlY3RlZENvbHVtbk5hbWU6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIHNlbGVjdGVkQ29sdW1uOiBSZXBvcnRWaWV3Q29sdW1uIHwgdW5kZWZpbmVkO1xyXG4gICAgYWxsQ29uZGl0aW9ucyA9IFtcclxuICAgICAgICAnY29udGFpbnMnLFxyXG4gICAgICAgICdlcXVhbCB0bycsXHJcbiAgICAgICAgJ2JldHdlZW4nLFxyXG4gICAgICAgICdzdGFydHMgd2l0aCcsXHJcbiAgICAgICAgJ2VuZHMgd2l0aCcsXHJcbiAgICAgICAgJ2xlc3MgdGhhbicsXHJcbiAgICAgICAgJ2xlc3MgdGhhbiBvciBlcXVhbCB0bycsXHJcbiAgICAgICAgJ2dyZWF0ZXIgdGhhbiBvciBlcXVhbCB0bycsXHJcbiAgICAgICAgJ2VtcHR5J1xyXG4gICAgXTtcclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgICAgIGNvbnN0IGZpZWxkQ3RybHIgPSB0aGlzLmZvcm1QYW5lbEN0cmxyLkdldENvbnRyb2xCeU5hbWUodGhpcy5zZWxlY3RlZENvbHVtbk5hbWUpO1xyXG4gICAgICAgIGZpZWxkQ3RybHIuU2V0VmlzaWJsZSh0cnVlKTtcclxuICAgICAgICB0aGlzLl9zZXRTZWxlY3RlZENvbHVtbigpO1xyXG4gICAgfVxyXG4gICAgb25Db2x1bW5DaGFuZ2UobmFtZSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDb2x1bW5OYW1lID0gbmFtZTtcclxuICAgICAgICB0aGlzLl9zZXRTZWxlY3RlZENvbHVtbigpO1xyXG4gICAgICAgIHRoaXMuY29sdW1ucy5mb3JFYWNoKChjKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNvbHVtbkZpZWxkQ3RybHIgPSB0aGlzLmZvcm1QYW5lbEN0cmxyLkdldENvbnRyb2xCeU5hbWUoYy5OYW1lKTtcclxuICAgICAgICAgICAgY29sdW1uRmllbGRDdHJsci5TZXRWaXNpYmxlKGZhbHNlKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgY29uc3QgZmllbGRDdHJsciA9IHRoaXMuZm9ybVBhbmVsQ3RybHIuR2V0Q29udHJvbEJ5TmFtZShuYW1lKTtcclxuICAgICAgICBmaWVsZEN0cmxyLlNldFZpc2libGUodHJ1ZSk7XHJcbiAgICB9XHJcbiAgICBvbkNvbmRpdGlvbkNoYW5nZSgpOiB2b2lkIHt9XHJcbiAgICBwcm90ZWN0ZWQgX3NldFNlbGVjdGVkQ29sdW1uKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDb2x1bW4gPSB0aGlzLmNvbHVtbnMuZmluZCgoYykgPT4gYy5OYW1lID09PSB0aGlzLnNlbGVjdGVkQ29sdW1uTmFtZSk7XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInNvcnQtc2VsZWN0XCI+XHJcbiAgICA8ZmQtc2VsZWN0ICh2YWx1ZUNoYW5nZSk9XCJvbkNvbHVtbkNoYW5nZSgkZXZlbnQpXCIgW3ZhbHVlXT1cInNlbGVjdGVkQ29sdW1uPy5OYW1lXCI+XHJcbiAgICAgICAgQGZvciAoY29sdW1uIG9mIGNvbHVtbnM7IHRyYWNrIGNvbHVtbikge1xyXG4gICAgICAgIDxmZC1vcHRpb24gW3ZhbHVlXT1cImNvbHVtbi5OYW1lXCI+e3sgY29sdW1uLkNhcHRpb24gfX08L2ZkLW9wdGlvbj5cclxuICAgICAgICB9XHJcbiAgICA8L2ZkLXNlbGVjdD5cclxuICAgIDxkaXYgY2xhc3M9XCJzcGFjZXJcIj48L2Rpdj5cclxuICAgIDxmZC1zZWxlY3QgKHZhbHVlQ2hhbmdlKT1cIm9uQ29uZGl0aW9uQ2hhbmdlKClcIj5cclxuICAgICAgICBAZm9yIChpdGVtIG9mIGFsbENvbmRpdGlvbnM7IHRyYWNrIGl0ZW0pIHtcclxuICAgICAgICA8ZmQtb3B0aW9uIFt2YWx1ZV09XCJpdGVtXCI+e3sgaXRlbSB9fTwvZmQtb3B0aW9uPlxyXG4gICAgICAgIH1cclxuICAgIDwvZmQtc2VsZWN0PlxyXG4gICAgPGJ1dHRvbiBmZC1idXR0b24gZ2x5cGg9XCJkZWNsaW5lXCIgZmRUeXBlPVwidHJhbnNwYXJlbnRcIiBzdHlsZT1cInZpc2liaWxpdHk6IGhpZGRlblwiPjwvYnV0dG9uPlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cInNvcnQtYnV0dG9uc1wiPlxyXG4gICAgPGJucmMtZm9ybSBbZm9ybVBhbmVsQ3RybF09XCJmb3JtUGFuZWxDdHJsclwiPjwvYm5yYy1mb3JtPlxyXG4gICAgPGJ1dHRvbiBmZC1idXR0b24gZ2x5cGg9XCJkZWNsaW5lXCIgZmRUeXBlPVwidHJhbnNwYXJlbnRcIiAoY2xpY2spPVwidGhpcy5yZW1vdmUuZW1pdCgpXCI+PC9idXR0b24+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -0,0 +1,75 @@
1
+ import { ChangeDetectionStrategy, Component, Input, ViewChildren } from '@angular/core';
2
+ import { BaseComponent, createFormPanelMetaConditions } from 'barsa-novin-ray-core';
3
+ import { UiGridFilterItemComponent } from '../ui-grid-filter-item/ui-grid-filter-item.component';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@fundamental-ngx/core/button";
6
+ import * as i2 from "../mask/mask.component";
7
+ import * as i3 from "../ui-grid-filter-item/ui-grid-filter-item.component";
8
+ export class UiGridFilterSettingsComponent extends BaseComponent {
9
+ constructor() {
10
+ super(...arguments);
11
+ this.filters = [];
12
+ this.listOfFormPanelCtrlr = [];
13
+ }
14
+ ngOnInit() {
15
+ super.ngOnInit();
16
+ this.filters.forEach((filter) => {
17
+ const key = Object.keys(filter)[0];
18
+ const fmc = createFormPanelMetaConditions(this.typeDefId, this.controlsInfo, key, filter[key]);
19
+ this.listOfFormPanelCtrlr.push(fmc);
20
+ });
21
+ if (this.listOfFormPanelCtrlr.length === 0) {
22
+ this._createNewForm();
23
+ }
24
+ }
25
+ onAdd() {
26
+ this._createNewForm();
27
+ }
28
+ onRemove(index) {
29
+ const filterItem = this.filterItemList.get(index);
30
+ filterItem?.formPanelCtrlr.Destroy();
31
+ this.listOfFormPanelCtrlr.splice(index, 1);
32
+ }
33
+ getFilters() {
34
+ const filters = {};
35
+ this.filterItemList.toArray().forEach((filterItem) => {
36
+ const columnName = filterItem.selectedColumnName;
37
+ filters[columnName] = filterItem.formPanelCtrlr.Mo[columnName];
38
+ });
39
+ return filters;
40
+ }
41
+ _createNewForm() {
42
+ this.addingForm = true;
43
+ const fmc = createFormPanelMetaConditions(this.typeDefId, this.controlsInfo, this.selectedColumnName, null);
44
+ fmc.LoadAndCreate(null, false, false, () => {
45
+ this.columns.forEach((c) => {
46
+ const fieldCtrlr = fmc.GetControlByName(c.Name);
47
+ fieldCtrlr.SetVisible(false);
48
+ });
49
+ this.listOfFormPanelCtrlr.push(fmc);
50
+ this.addingForm = false;
51
+ });
52
+ }
53
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiGridFilterSettingsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
54
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: UiGridFilterSettingsComponent, selector: "bsu-ui-grid-filter-settings", inputs: { sortDirections: "sortDirections", typeDefId: "typeDefId", selectedColumnName: "selectedColumnName", filters: "filters", columns: "columns", controlsInfo: "controlsInfo" }, viewQueries: [{ propertyName: "filterItemList", predicate: UiGridFilterItemComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "@for (formPanelCtrlr of listOfFormPanelCtrlr; track formPanelCtrlr; let i = $index) {\r\n<bsu-ui-grid-filter-item\r\n #sortItemsRef\r\n [isFirst]=\"i === 0\"\r\n (remove)=\"onRemove(i)\"\r\n [columns]=\"columns\"\r\n [selectedColumnName]=\"selectedColumnName\"\r\n [formPanelCtrlr]=\"formPanelCtrlr\"\r\n [style.margin-top.px]=\"i > 0 ? 5 : 0\"\r\n>\r\n</bsu-ui-grid-filter-item>\r\n}\r\n<div style=\"display: flex\">\r\n <div class=\"spacer\"></div>\r\n <button fd-button label=\"Add\" fdType=\"standard\" (click)=\"onAdd()\" [disabled]=\"addingForm\">\r\n @if (addingForm) {\r\n <bsu-mask size=\"s\"></bsu-mask>\r\n }\r\n </button>\r\n <button\r\n style=\"visibility: hidden; pointer-events: none; margin: 0 3px\"\r\n fd-button\r\n label=\"Add\"\r\n fdType=\"standard\"\r\n ></button>\r\n</div>\r\n", styles: [":host{display:flex;flex-direction:column;margin-bottom:30px}.spacer{flex:1;width:100%}\n"], dependencies: [{ kind: "component", type: i1.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i2.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: i3.UiGridFilterItemComponent, selector: "bsu-ui-grid-filter-item", inputs: ["formPanelCtrlr", "columns", "selectedColumnName", "selectedColumn"], outputs: ["add", "remove"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
55
+ }
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiGridFilterSettingsComponent, decorators: [{
57
+ type: Component,
58
+ args: [{ selector: 'bsu-ui-grid-filter-settings', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@for (formPanelCtrlr of listOfFormPanelCtrlr; track formPanelCtrlr; let i = $index) {\r\n<bsu-ui-grid-filter-item\r\n #sortItemsRef\r\n [isFirst]=\"i === 0\"\r\n (remove)=\"onRemove(i)\"\r\n [columns]=\"columns\"\r\n [selectedColumnName]=\"selectedColumnName\"\r\n [formPanelCtrlr]=\"formPanelCtrlr\"\r\n [style.margin-top.px]=\"i > 0 ? 5 : 0\"\r\n>\r\n</bsu-ui-grid-filter-item>\r\n}\r\n<div style=\"display: flex\">\r\n <div class=\"spacer\"></div>\r\n <button fd-button label=\"Add\" fdType=\"standard\" (click)=\"onAdd()\" [disabled]=\"addingForm\">\r\n @if (addingForm) {\r\n <bsu-mask size=\"s\"></bsu-mask>\r\n }\r\n </button>\r\n <button\r\n style=\"visibility: hidden; pointer-events: none; margin: 0 3px\"\r\n fd-button\r\n label=\"Add\"\r\n fdType=\"standard\"\r\n ></button>\r\n</div>\r\n", styles: [":host{display:flex;flex-direction:column;margin-bottom:30px}.spacer{flex:1;width:100%}\n"] }]
59
+ }], propDecorators: { filterItemList: [{
60
+ type: ViewChildren,
61
+ args: [UiGridFilterItemComponent]
62
+ }], sortDirections: [{
63
+ type: Input
64
+ }], typeDefId: [{
65
+ type: Input
66
+ }], selectedColumnName: [{
67
+ type: Input
68
+ }], filters: [{
69
+ type: Input
70
+ }], columns: [{
71
+ type: Input
72
+ }], controlsInfo: [{
73
+ type: Input
74
+ }] } });
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktZ3JpZC1maWx0ZXItc2V0dGluZ3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktZ3JpZC1maWx0ZXItc2V0dGluZ3MvdWktZ3JpZC1maWx0ZXItc2V0dGluZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktZ3JpZC1maWx0ZXItc2V0dGluZ3MvdWktZ3JpZC1maWx0ZXItc2V0dGluZ3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzRyxPQUFPLEVBQ0gsYUFBYSxFQUdiLDZCQUE2QixFQUNoQyxNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDOzs7OztBQVNqRyxNQUFNLE9BQU8sNkJBQThCLFNBQVEsYUFBYTtJQVBoRTs7UUFhYSxZQUFPLEdBQTZCLEVBQUUsQ0FBQztRQUdoRCx5QkFBb0IsR0FBUSxFQUFFLENBQUM7S0E2Q2xDO0lBMUNHLFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUM1QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25DLE1BQU0sR0FBRyxHQUFHLDZCQUE2QixDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDL0YsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN6QyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDMUIsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLO1FBQ0QsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFDRCxRQUFRLENBQUMsS0FBSztRQUNWLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xELFVBQVUsRUFBRSxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVNLFVBQVU7UUFDYixNQUFNLE9BQU8sR0FBUSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUNqRCxNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsa0JBQWtCLENBQUM7WUFDakQsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ25FLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQztJQUNPLGNBQWM7UUFDbEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsTUFBTSxHQUFHLEdBQUcsNkJBQTZCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM1RyxHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRTtZQUN2QyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUN2QixNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNoRCxVQUFVLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pDLENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7K0dBckRRLDZCQUE2QjttR0FBN0IsNkJBQTZCLDRSQUN4Qix5QkFBeUIsdUVDbEIzQyx1M0JBMEJBOzs0RkRUYSw2QkFBNkI7a0JBUHpDLFNBQVM7K0JBQ0ksNkJBQTZCLG1CQUd0Qix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLEtBQUs7OEJBSWpCLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyx5QkFBeUI7Z0JBRTlCLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7XHJcbiAgICBCYXNlQ29tcG9uZW50LFxyXG4gICAgUmVwb3J0Vmlld0NvbHVtbixcclxuICAgIEdlbmVyYWxDb250cm9sSW5mb01vZGVsLFxyXG4gICAgY3JlYXRlRm9ybVBhbmVsTWV0YUNvbmRpdGlvbnNcclxufSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcbmltcG9ydCB7IFVpR3JpZEZpbHRlckl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi91aS1ncmlkLWZpbHRlci1pdGVtL3VpLWdyaWQtZmlsdGVyLWl0ZW0uY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtdWktZ3JpZC1maWx0ZXItc2V0dGluZ3MnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VpLWdyaWQtZmlsdGVyLXNldHRpbmdzLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3VpLWdyaWQtZmlsdGVyLXNldHRpbmdzLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0YW5kYWxvbmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVaUdyaWRGaWx0ZXJTZXR0aW5nc0NvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQFZpZXdDaGlsZHJlbihVaUdyaWRGaWx0ZXJJdGVtQ29tcG9uZW50KVxyXG4gICAgZmlsdGVySXRlbUxpc3Q6IFF1ZXJ5TGlzdDxVaUdyaWRGaWx0ZXJJdGVtQ29tcG9uZW50PjtcclxuICAgIEBJbnB1dCgpIHNvcnREaXJlY3Rpb25zO1xyXG4gICAgQElucHV0KCkgdHlwZURlZklkOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBzZWxlY3RlZENvbHVtbk5hbWU6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIGZpbHRlcnM6IHsgW2tleTogc3RyaW5nXTogYW55IH1bXSA9IFtdO1xyXG4gICAgQElucHV0KCkgY29sdW1uczogUmVwb3J0Vmlld0NvbHVtbltdO1xyXG4gICAgQElucHV0KCkgY29udHJvbHNJbmZvOiBHZW5lcmFsQ29udHJvbEluZm9Nb2RlbFtdO1xyXG4gICAgbGlzdE9mRm9ybVBhbmVsQ3RybHI6IGFueSA9IFtdO1xyXG4gICAgYWRkaW5nRm9ybTogYm9vbGVhbjtcclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgICAgIHRoaXMuZmlsdGVycy5mb3JFYWNoKChmaWx0ZXIpID0+IHtcclxuICAgICAgICAgICAgY29uc3Qga2V5ID0gT2JqZWN0LmtleXMoZmlsdGVyKVswXTtcclxuICAgICAgICAgICAgY29uc3QgZm1jID0gY3JlYXRlRm9ybVBhbmVsTWV0YUNvbmRpdGlvbnModGhpcy50eXBlRGVmSWQsIHRoaXMuY29udHJvbHNJbmZvLCBrZXksIGZpbHRlcltrZXldKTtcclxuICAgICAgICAgICAgdGhpcy5saXN0T2ZGb3JtUGFuZWxDdHJsci5wdXNoKGZtYyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWYgKHRoaXMubGlzdE9mRm9ybVBhbmVsQ3RybHIubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2NyZWF0ZU5ld0Zvcm0oKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25BZGQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fY3JlYXRlTmV3Rm9ybSgpO1xyXG4gICAgfVxyXG4gICAgb25SZW1vdmUoaW5kZXgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBmaWx0ZXJJdGVtID0gdGhpcy5maWx0ZXJJdGVtTGlzdC5nZXQoaW5kZXgpO1xyXG4gICAgICAgIGZpbHRlckl0ZW0/LmZvcm1QYW5lbEN0cmxyLkRlc3Ryb3koKTtcclxuICAgICAgICB0aGlzLmxpc3RPZkZvcm1QYW5lbEN0cmxyLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldEZpbHRlcnMoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZmlsdGVyczogYW55ID0ge307XHJcbiAgICAgICAgdGhpcy5maWx0ZXJJdGVtTGlzdC50b0FycmF5KCkuZm9yRWFjaCgoZmlsdGVySXRlbSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBjb2x1bW5OYW1lID0gZmlsdGVySXRlbS5zZWxlY3RlZENvbHVtbk5hbWU7XHJcbiAgICAgICAgICAgIGZpbHRlcnNbY29sdW1uTmFtZV0gPSBmaWx0ZXJJdGVtLmZvcm1QYW5lbEN0cmxyLk1vW2NvbHVtbk5hbWVdO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBmaWx0ZXJzO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfY3JlYXRlTmV3Rm9ybSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmFkZGluZ0Zvcm0gPSB0cnVlO1xyXG4gICAgICAgIGNvbnN0IGZtYyA9IGNyZWF0ZUZvcm1QYW5lbE1ldGFDb25kaXRpb25zKHRoaXMudHlwZURlZklkLCB0aGlzLmNvbnRyb2xzSW5mbywgdGhpcy5zZWxlY3RlZENvbHVtbk5hbWUsIG51bGwpO1xyXG4gICAgICAgIGZtYy5Mb2FkQW5kQ3JlYXRlKG51bGwsIGZhbHNlLCBmYWxzZSwgKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNvbHVtbnMuZm9yRWFjaCgoYykgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZmllbGRDdHJsciA9IGZtYy5HZXRDb250cm9sQnlOYW1lKGMuTmFtZSk7XHJcbiAgICAgICAgICAgICAgICBmaWVsZEN0cmxyLlNldFZpc2libGUoZmFsc2UpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMubGlzdE9mRm9ybVBhbmVsQ3RybHIucHVzaChmbWMpO1xyXG4gICAgICAgICAgICB0aGlzLmFkZGluZ0Zvcm0gPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG4iLCJAZm9yIChmb3JtUGFuZWxDdHJsciBvZiBsaXN0T2ZGb3JtUGFuZWxDdHJscjsgdHJhY2sgZm9ybVBhbmVsQ3RybHI7IGxldCBpID0gJGluZGV4KSB7XHJcbjxic3UtdWktZ3JpZC1maWx0ZXItaXRlbVxyXG4gICAgI3NvcnRJdGVtc1JlZlxyXG4gICAgW2lzRmlyc3RdPVwiaSA9PT0gMFwiXHJcbiAgICAocmVtb3ZlKT1cIm9uUmVtb3ZlKGkpXCJcclxuICAgIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxyXG4gICAgW3NlbGVjdGVkQ29sdW1uTmFtZV09XCJzZWxlY3RlZENvbHVtbk5hbWVcIlxyXG4gICAgW2Zvcm1QYW5lbEN0cmxyXT1cImZvcm1QYW5lbEN0cmxyXCJcclxuICAgIFtzdHlsZS5tYXJnaW4tdG9wLnB4XT1cImkgPiAwID8gNSA6IDBcIlxyXG4+XHJcbjwvYnN1LXVpLWdyaWQtZmlsdGVyLWl0ZW0+XHJcbn1cclxuPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXhcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJzcGFjZXJcIj48L2Rpdj5cclxuICAgIDxidXR0b24gZmQtYnV0dG9uIGxhYmVsPVwiQWRkXCIgZmRUeXBlPVwic3RhbmRhcmRcIiAoY2xpY2spPVwib25BZGQoKVwiIFtkaXNhYmxlZF09XCJhZGRpbmdGb3JtXCI+XHJcbiAgICAgICAgQGlmIChhZGRpbmdGb3JtKSB7XHJcbiAgICAgICAgPGJzdS1tYXNrIHNpemU9XCJzXCI+PC9ic3UtbWFzaz5cclxuICAgICAgICB9XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b25cclxuICAgICAgICBzdHlsZT1cInZpc2liaWxpdHk6IGhpZGRlbjsgcG9pbnRlci1ldmVudHM6IG5vbmU7IG1hcmdpbjogMCAzcHhcIlxyXG4gICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgIGxhYmVsPVwiQWRkXCJcclxuICAgICAgICBmZFR5cGU9XCJzdGFuZGFyZFwiXHJcbiAgICA+PC9idXR0b24+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -0,0 +1,58 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, Output, ViewEncapsulation } from '@angular/core';
2
+ import { BaseComponent } from 'barsa-novin-ray-core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@fundamental-ngx/core/button";
5
+ import * as i2 from "@fundamental-ngx/core/select";
6
+ export class UiGridSortItemComponent extends BaseComponent {
7
+ constructor() {
8
+ super(...arguments);
9
+ this.add = new EventEmitter();
10
+ this.remove = new EventEmitter();
11
+ this.changeSetting = new EventEmitter();
12
+ this.sortItemClass = true;
13
+ }
14
+ ngOnInit() {
15
+ super.ngOnInit();
16
+ this.caption = this.columns.find((c) => c.Name === this.sortItem.Name)?.Caption;
17
+ }
18
+ onColumnChange(name) {
19
+ this.sortItem.Name = name;
20
+ this.changeSetting.emit();
21
+ }
22
+ onDirectionChange(direction) {
23
+ this.sortItem.SortDirection = direction;
24
+ this.changeSetting.emit();
25
+ }
26
+ setSelectedColumn(name) {
27
+ this.sortItem.Name = name;
28
+ }
29
+ setSelectedDirection(direction) {
30
+ this.sortItem.SortDirection = direction;
31
+ }
32
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiGridSortItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
33
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: UiGridSortItemComponent, selector: "bsu-ui-grid-sort-item", inputs: { showGroups: "showGroups", sortItem: "sortItem", sortDirections: "sortDirections", columns: "columns", isFirst: "isFirst" }, outputs: { add: "add", remove: "remove", changeSetting: "changeSetting" }, host: { properties: { "class.ulv-sort-item-settings": "this.sortItemClass" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"sort-select\">\r\n <fd-select (valueChange)=\"onColumnChange($event)\" [value]=\"sortItem.Name\">\r\n @for (column of columns; track column) {\r\n <fd-option [value]=\"column.Name\">{{ column.Caption === 'None' ? '' : column.Caption }}</fd-option>\r\n }\r\n </fd-select>\r\n\r\n @if (!showGroups) {\r\n <fd-select (valueChange)=\"onDirectionChange($event)\" [value]=\"sortItem.SortDirection\">\r\n @for (item of sortDirections; track item) {\r\n <fd-option [value]=\"item.value\">{{ item.text === 'None' ? '' : item.text }}</fd-option>\r\n }\r\n </fd-select>\r\n }\r\n</div>\r\n<div class=\"sort-buttons\">\r\n <button fd-button glyph=\"sys-cancel\" fdType=\"transparent\" (click)=\"this.remove.emit()\"></button>\r\n <button fd-button glyph=\"add\" fdType=\"transparent\" (click)=\"this.add.emit()\"></button>\r\n</div>\r\n", styles: [".ulv-sort-item-settings{display:flex;width:100%}.ulv-sort-item-settings .sort-select{display:flex;flex-grow:1}.ulv-sort-item-settings .sort-select fd-select,.ulv-sort-item-settings .sort-select fd-select fd-popover{width:100%}.ulv-sort-item-settings .sort-buttons{display:flex;margin:0 10px}.ulv-sort-item-settings .sort-buttons button{margin:0 5px}body[dir=rtl] fd-select:nth-child(n+1){margin-right:5px}body[dir=ltr] fd-select:nth-child(n+1){margin-left:5px}\n"], dependencies: [{ kind: "component", type: i1.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i2.SelectComponent, selector: "fd-select", inputs: ["extendedBodyTemplate", "scrollStrategy", "textOverflow", "controlId", "state", "mobile", "stateMessage", "disabled", "required", "readonly", "placeholder", "value", "maxHeight", "glyph", "glyphFont", "closeOnOutsideClick", "fillControlMode", "controlTemplate", "appendTo", "unselectMissingOption", "typeaheadDebounceInterval", "ariaLabelledBy", "ariaLabel", "mobileConfig", "inline", "selectControlClass", "selectDropdownButtonClass", "advancedStateMessage", "tabOutStrategy", "compareWith"], outputs: ["isOpenChange", "valueChange"] }, { kind: "component", type: i2.OptionComponent, selector: "[fd-option], fd-option", inputs: ["id", "value", "disabled"], outputs: ["selectionChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
34
+ }
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiGridSortItemComponent, decorators: [{
36
+ type: Component,
37
+ args: [{ selector: 'bsu-ui-grid-sort-item', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<div class=\"sort-select\">\r\n <fd-select (valueChange)=\"onColumnChange($event)\" [value]=\"sortItem.Name\">\r\n @for (column of columns; track column) {\r\n <fd-option [value]=\"column.Name\">{{ column.Caption === 'None' ? '' : column.Caption }}</fd-option>\r\n }\r\n </fd-select>\r\n\r\n @if (!showGroups) {\r\n <fd-select (valueChange)=\"onDirectionChange($event)\" [value]=\"sortItem.SortDirection\">\r\n @for (item of sortDirections; track item) {\r\n <fd-option [value]=\"item.value\">{{ item.text === 'None' ? '' : item.text }}</fd-option>\r\n }\r\n </fd-select>\r\n }\r\n</div>\r\n<div class=\"sort-buttons\">\r\n <button fd-button glyph=\"sys-cancel\" fdType=\"transparent\" (click)=\"this.remove.emit()\"></button>\r\n <button fd-button glyph=\"add\" fdType=\"transparent\" (click)=\"this.add.emit()\"></button>\r\n</div>\r\n", styles: [".ulv-sort-item-settings{display:flex;width:100%}.ulv-sort-item-settings .sort-select{display:flex;flex-grow:1}.ulv-sort-item-settings .sort-select fd-select,.ulv-sort-item-settings .sort-select fd-select fd-popover{width:100%}.ulv-sort-item-settings .sort-buttons{display:flex;margin:0 10px}.ulv-sort-item-settings .sort-buttons button{margin:0 5px}body[dir=rtl] fd-select:nth-child(n+1){margin-right:5px}body[dir=ltr] fd-select:nth-child(n+1){margin-left:5px}\n"] }]
38
+ }], propDecorators: { add: [{
39
+ type: Output
40
+ }], remove: [{
41
+ type: Output
42
+ }], changeSetting: [{
43
+ type: Output
44
+ }], showGroups: [{
45
+ type: Input
46
+ }], sortItem: [{
47
+ type: Input
48
+ }], sortDirections: [{
49
+ type: Input
50
+ }], columns: [{
51
+ type: Input
52
+ }], isFirst: [{
53
+ type: Input
54
+ }], sortItemClass: [{
55
+ type: HostBinding,
56
+ args: ['class.ulv-sort-item-settings']
57
+ }] } });
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktZ3JpZC1zb3J0LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktZ3JpZC1zb3J0LWl0ZW0vdWktZ3JpZC1zb3J0LWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktZ3JpZC1zb3J0LWl0ZW0vdWktZ3JpZC1zb3J0LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBRUwsTUFBTSxFQUNOLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFpQyxNQUFNLHNCQUFzQixDQUFDOzs7O0FBVXBGLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxhQUFhO0lBUjFEOztRQVNjLFFBQUcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3pCLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzVCLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQU1BLGtCQUFhLEdBQUcsSUFBSSxDQUFDO0tBcUJyRTtJQWxCRyxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLENBQUM7SUFDcEYsQ0FBQztJQUNELGNBQWMsQ0FBQyxJQUFJO1FBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUNELGlCQUFpQixDQUFDLFNBQVM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUNELGlCQUFpQixDQUFDLElBQVk7UUFDMUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFDRCxvQkFBb0IsQ0FBQyxTQUFpQjtRQUNsQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7SUFDNUMsQ0FBQzsrR0E3QlEsdUJBQXVCO21HQUF2Qix1QkFBdUIscVhDcEJwQyx5NEJBbUJBOzs0RkRDYSx1QkFBdUI7a0JBUm5DLFNBQVM7K0JBQ0ksdUJBQXVCLGlCQUdsQixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLEtBQUs7OEJBR1AsR0FBRztzQkFBWixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNFLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ3VDLGFBQWE7c0JBQXpELFdBQVc7dUJBQUMsOEJBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgSG9zdEJpbmRpbmcsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uSW5pdCxcclxuICAgIE91dHB1dCxcclxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQsIFJlcG9ydFZpZXdDb2x1bW4sIFNvcnRTZXR0aW5nIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JzdS11aS1ncmlkLXNvcnQtaXRlbScsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vdWktZ3JpZC1zb3J0LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdWktZ3JpZC1zb3J0LWl0ZW0uY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0YW5kYWxvbmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVaUdyaWRTb3J0SXRlbUNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQE91dHB1dCgpIGFkZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBPdXRwdXQoKSByZW1vdmUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgY2hhbmdlU2V0dGluZyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBJbnB1dCgpIHNob3dHcm91cHM6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBzb3J0SXRlbTogU29ydFNldHRpbmc7XHJcbiAgICBASW5wdXQoKSBzb3J0RGlyZWN0aW9uczogeyB0ZXh0OiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfVtdO1xyXG4gICAgQElucHV0KCkgY29sdW1uczogUmVwb3J0Vmlld0NvbHVtbltdO1xyXG4gICAgQElucHV0KCkgaXNGaXJzdDogYm9vbGVhbjtcclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MudWx2LXNvcnQtaXRlbS1zZXR0aW5ncycpIHNvcnRJdGVtQ2xhc3MgPSB0cnVlO1xyXG4gICAgY2FwdGlvbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgdGhpcy5jYXB0aW9uID0gdGhpcy5jb2x1bW5zLmZpbmQoKGMpID0+IGMuTmFtZSA9PT0gdGhpcy5zb3J0SXRlbS5OYW1lKT8uQ2FwdGlvbjtcclxuICAgIH1cclxuICAgIG9uQ29sdW1uQ2hhbmdlKG5hbWUpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNvcnRJdGVtLk5hbWUgPSBuYW1lO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlU2V0dGluZy5lbWl0KCk7XHJcbiAgICB9XHJcbiAgICBvbkRpcmVjdGlvbkNoYW5nZShkaXJlY3Rpb24pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNvcnRJdGVtLlNvcnREaXJlY3Rpb24gPSBkaXJlY3Rpb247XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VTZXR0aW5nLmVtaXQoKTtcclxuICAgIH1cclxuICAgIHNldFNlbGVjdGVkQ29sdW1uKG5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc29ydEl0ZW0uTmFtZSA9IG5hbWU7XHJcbiAgICB9XHJcbiAgICBzZXRTZWxlY3RlZERpcmVjdGlvbihkaXJlY3Rpb246IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc29ydEl0ZW0uU29ydERpcmVjdGlvbiA9IGRpcmVjdGlvbjtcclxuICAgIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwic29ydC1zZWxlY3RcIj5cclxuICAgIDxmZC1zZWxlY3QgKHZhbHVlQ2hhbmdlKT1cIm9uQ29sdW1uQ2hhbmdlKCRldmVudClcIiBbdmFsdWVdPVwic29ydEl0ZW0uTmFtZVwiPlxyXG4gICAgICAgIEBmb3IgKGNvbHVtbiBvZiBjb2x1bW5zOyB0cmFjayBjb2x1bW4pIHtcclxuICAgICAgICA8ZmQtb3B0aW9uIFt2YWx1ZV09XCJjb2x1bW4uTmFtZVwiPnt7IGNvbHVtbi5DYXB0aW9uID09PSAnTm9uZScgPyAnJyA6IGNvbHVtbi5DYXB0aW9uIH19PC9mZC1vcHRpb24+XHJcbiAgICAgICAgfVxyXG4gICAgPC9mZC1zZWxlY3Q+XHJcblxyXG4gICAgQGlmICghc2hvd0dyb3Vwcykge1xyXG4gICAgPGZkLXNlbGVjdCAodmFsdWVDaGFuZ2UpPVwib25EaXJlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiIFt2YWx1ZV09XCJzb3J0SXRlbS5Tb3J0RGlyZWN0aW9uXCI+XHJcbiAgICAgICAgQGZvciAoaXRlbSBvZiBzb3J0RGlyZWN0aW9uczsgdHJhY2sgaXRlbSkge1xyXG4gICAgICAgIDxmZC1vcHRpb24gW3ZhbHVlXT1cIml0ZW0udmFsdWVcIj57eyBpdGVtLnRleHQgPT09ICdOb25lJyA/ICcnIDogaXRlbS50ZXh0IH19PC9mZC1vcHRpb24+XHJcbiAgICAgICAgfVxyXG4gICAgPC9mZC1zZWxlY3Q+XHJcbiAgICB9XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwic29ydC1idXR0b25zXCI+XHJcbiAgICA8YnV0dG9uIGZkLWJ1dHRvbiBnbHlwaD1cInN5cy1jYW5jZWxcIiBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiIChjbGljayk9XCJ0aGlzLnJlbW92ZS5lbWl0KClcIj48L2J1dHRvbj5cclxuICAgIDxidXR0b24gZmQtYnV0dG9uIGdseXBoPVwiYWRkXCIgZmRUeXBlPVwidHJhbnNwYXJlbnRcIiAoY2xpY2spPVwidGhpcy5hZGQuZW1pdCgpXCI+PC9idXR0b24+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -0,0 +1,123 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChildren } from '@angular/core';
2
+ import { BaseComponent } from 'barsa-novin-ray-core';
3
+ import { UiGridSortItemComponent } from '../ui-grid-sort-item/ui-grid-sort-item.component';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "barsa-novin-ray-core";
6
+ import * as i2 from "../ui-grid-sort-item/ui-grid-sort-item.component";
7
+ export class UiGridSortSettingComponent extends BaseComponent {
8
+ constructor(_cdr, bbbPipe) {
9
+ super();
10
+ this._cdr = _cdr;
11
+ this.bbbPipe = bbbPipe;
12
+ this.changeSetting = new EventEmitter();
13
+ this.sortDirections = [];
14
+ this.NONE = 'NONE';
15
+ }
16
+ ngOnInit() {
17
+ super.ngOnInit();
18
+ this._initSortSettings(this.sortSettings);
19
+ this._initColumns();
20
+ this._initSortDirections();
21
+ }
22
+ ngOnChanges(changes) {
23
+ super.ngOnChanges(changes);
24
+ const { sortSettings } = changes;
25
+ if (sortSettings && !sortSettings.firstChange) {
26
+ this._initSortSettings(sortSettings.currentValue);
27
+ this._cdr.detectChanges();
28
+ }
29
+ }
30
+ onAdd() {
31
+ this.addNewSortItem();
32
+ this.changeSetting.emit();
33
+ }
34
+ onRemove(index) {
35
+ const sortItemComponent = this.sortItemsRef.toArray()[index];
36
+ if (this.originalSortSettings.length > 1) {
37
+ this.originalSortSettings = this.originalSortSettings.filter((item, i) => index !== i);
38
+ }
39
+ else {
40
+ sortItemComponent.setSelectedColumn(this.NONE);
41
+ sortItemComponent.setSelectedDirection('');
42
+ }
43
+ this.changeSetting.emit();
44
+ }
45
+ addNewSortItem() {
46
+ this.originalSortSettings = [
47
+ ...this.originalSortSettings,
48
+ {
49
+ Name: this.NONE,
50
+ SortDirection: '',
51
+ IsGrouped: this.showGroups
52
+ }
53
+ ];
54
+ }
55
+ getSettings() {
56
+ const sortItems = this.sortItemsRef
57
+ .toArray()
58
+ .filter((c) => c.sortItem.Name !== this.NONE)
59
+ .map((c) => ({ ...c.sortItem, IsGrouped: this.showGroups || c.sortItem.IsGrouped }));
60
+ this.sortSettings = sortItems;
61
+ return this.sortSettings;
62
+ }
63
+ _initColumns() {
64
+ const noneText = this.bbbPipe.transform('None');
65
+ this.columns = [
66
+ {
67
+ Name: this.NONE,
68
+ Caption: noneText,
69
+ Alias: '',
70
+ FieldDefId: '',
71
+ FieldType: '',
72
+ FieldTypeId: -1,
73
+ HasSummary: false,
74
+ Hidden: false,
75
+ IsLtr: false,
76
+ IsPreview: false,
77
+ MetaFieldTypeId: '',
78
+ Width: 0,
79
+ Icon: ''
80
+ },
81
+ ...this.columns
82
+ ];
83
+ }
84
+ _initSortSettings(sortSettings) {
85
+ this.originalSortSettings = sortSettings.map((c) => ({ ...c }));
86
+ if (this.showGroups) {
87
+ this.originalSortSettings = this.originalSortSettings.filter((c) => c.IsGrouped);
88
+ }
89
+ else {
90
+ this.originalSortSettings = this.originalSortSettings.filter((c) => c.SortDirection !== '');
91
+ }
92
+ if (this.originalSortSettings.length === 0) {
93
+ this.addNewSortItem();
94
+ }
95
+ }
96
+ _initSortDirections() {
97
+ const ascendingText = this.bbbPipe.transform('Ascending');
98
+ const descendingText = this.bbbPipe.transform('Descending');
99
+ this.sortDirections = [
100
+ { text: '', value: '' },
101
+ { text: ascendingText, value: 'ASC' },
102
+ { text: descendingText, value: 'DESC' }
103
+ ];
104
+ }
105
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiGridSortSettingComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.BbbTranslatePipe }], target: i0.ɵɵFactoryTarget.Component }); }
106
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: UiGridSortSettingComponent, selector: "bsu-ui-grid-sort-setting", inputs: { showGroups: "showGroups", columns: "columns", sortSettings: "sortSettings" }, outputs: { changeSetting: "changeSetting" }, viewQueries: [{ propertyName: "sortItemsRef", predicate: UiGridSortItemComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@for (sortItem of originalSortSettings; track sortItem; let i = $index) {\r\n<bsu-ui-grid-sort-item\r\n #sortItemsRef\r\n [isFirst]=\"i === 0\"\r\n (add)=\"onAdd()\"\r\n (remove)=\"onRemove(i)\"\r\n [columns]=\"columns\"\r\n [sortDirections]=\"sortDirections\"\r\n [sortItem]=\"sortItem\"\r\n [style.margin-top.px]=\"i > 0 ? 5 : 0\"\r\n [showGroups]=\"showGroups\"\r\n (changeSetting)=\"this.changeSetting.emit()\"\r\n>\r\n</bsu-ui-grid-sort-item>\r\n}\r\n", styles: [":host{display:block;min-height:50vh}\n"], dependencies: [{ kind: "component", type: i2.UiGridSortItemComponent, selector: "bsu-ui-grid-sort-item", inputs: ["showGroups", "sortItem", "sortDirections", "columns", "isFirst"], outputs: ["add", "remove", "changeSetting"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
107
+ }
108
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiGridSortSettingComponent, decorators: [{
109
+ type: Component,
110
+ args: [{ selector: 'bsu-ui-grid-sort-setting', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@for (sortItem of originalSortSettings; track sortItem; let i = $index) {\r\n<bsu-ui-grid-sort-item\r\n #sortItemsRef\r\n [isFirst]=\"i === 0\"\r\n (add)=\"onAdd()\"\r\n (remove)=\"onRemove(i)\"\r\n [columns]=\"columns\"\r\n [sortDirections]=\"sortDirections\"\r\n [sortItem]=\"sortItem\"\r\n [style.margin-top.px]=\"i > 0 ? 5 : 0\"\r\n [showGroups]=\"showGroups\"\r\n (changeSetting)=\"this.changeSetting.emit()\"\r\n>\r\n</bsu-ui-grid-sort-item>\r\n}\r\n", styles: [":host{display:block;min-height:50vh}\n"] }]
111
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.BbbTranslatePipe }], propDecorators: { showGroups: [{
112
+ type: Input
113
+ }], columns: [{
114
+ type: Input
115
+ }], sortSettings: [{
116
+ type: Input
117
+ }], changeSetting: [{
118
+ type: Output
119
+ }], sortItemsRef: [{
120
+ type: ViewChildren,
121
+ args: [UiGridSortItemComponent]
122
+ }] } });
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktZ3JpZC1zb3J0LXNldHRpbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktZ3JpZC1zb3J0LXNldHRpbmcvdWktZ3JpZC1zb3J0LXNldHRpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktZ3JpZC1zb3J0LXNldHRpbmcvdWktZ3JpZC1zb3J0LXNldHRpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBR04sWUFBWSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxhQUFhLEVBQW1ELE1BQU0sc0JBQXNCLENBQUM7QUFDdEcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0RBQWtELENBQUM7Ozs7QUFTM0YsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGFBQWE7SUFhekQsWUFBb0IsSUFBdUIsRUFBVSxPQUF5QjtRQUMxRSxLQUFLLEVBQUUsQ0FBQztRQURRLFNBQUksR0FBSixJQUFJLENBQW1CO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUFScEUsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBSTdDLG1CQUFjLEdBQVEsRUFBRSxDQUFDO1FBQ3pCLFNBQUksR0FBRyxNQUFNLENBQUM7SUFLZCxDQUFDO0lBRUQsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0IsTUFBTSxFQUFFLFlBQVksRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUNqQyxJQUFJLFlBQVksSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM1QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ2xELElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDOUIsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLO1FBQ0QsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFLO1FBQ1YsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdELElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN2QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQztRQUMzRixDQUFDO2FBQU0sQ0FBQztZQUNKLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMvQyxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMvQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsY0FBYztRQUNWLElBQUksQ0FBQyxvQkFBb0IsR0FBRztZQUN4QixHQUFHLElBQUksQ0FBQyxvQkFBb0I7WUFDNUI7Z0JBQ0ksSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNmLGFBQWEsRUFBRSxFQUFFO2dCQUNqQixTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVU7YUFDN0I7U0FDSixDQUFDO0lBQ04sQ0FBQztJQUVNLFdBQVc7UUFDZCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWTthQUM5QixPQUFPLEVBQUU7YUFDVCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUM7YUFDNUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3pGLElBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDO1FBQzlCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM3QixDQUFDO0lBQ08sWUFBWTtRQUNoQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsT0FBTyxHQUFHO1lBQ1g7Z0JBQ0ksSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNmLE9BQU8sRUFBRSxRQUFRO2dCQUNqQixLQUFLLEVBQUUsRUFBRTtnQkFDVCxVQUFVLEVBQUUsRUFBRTtnQkFDZCxTQUFTLEVBQUUsRUFBRTtnQkFDYixXQUFXLEVBQUUsQ0FBQyxDQUFDO2dCQUNmLFVBQVUsRUFBRSxLQUFLO2dCQUNqQixNQUFNLEVBQUUsS0FBSztnQkFDYixLQUFLLEVBQUUsS0FBSztnQkFDWixTQUFTLEVBQUUsS0FBSztnQkFDaEIsZUFBZSxFQUFFLEVBQUU7Z0JBQ25CLEtBQUssRUFBRSxDQUFDO2dCQUNSLElBQUksRUFBRSxFQUFFO2FBQ1g7WUFDRCxHQUFHLElBQUksQ0FBQyxPQUFPO1NBQ2xCLENBQUM7SUFDTixDQUFDO0lBQ08saUJBQWlCLENBQUMsWUFBMkI7UUFDakQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNoRSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3JGLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDaEcsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN6QyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDMUIsQ0FBQztJQUNMLENBQUM7SUFFTyxtQkFBbUI7UUFDdkIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDMUQsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLGNBQWMsR0FBRztZQUNsQixFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUN2QixFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtZQUNyQyxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtTQUMxQyxDQUFDO0lBQ04sQ0FBQzsrR0E5R1EsMEJBQTBCO21HQUExQiwwQkFBMEIsc09BTXJCLHVCQUF1Qiw0RkM3QnpDLHdlQWVBOzs0RkRRYSwwQkFBMEI7a0JBUHRDLFNBQVM7K0JBQ0ksMEJBQTBCLG1CQUduQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLEtBQUs7cUhBR1IsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFSSxhQUFhO3NCQUF0QixNQUFNO2dCQUVQLFlBQVk7c0JBRFgsWUFBWTt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIENvbXBvbmVudCxcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIElucHV0LFxyXG4gICAgT25Jbml0LFxyXG4gICAgT3V0cHV0LFxyXG4gICAgUXVlcnlMaXN0LFxyXG4gICAgU2ltcGxlQ2hhbmdlcyxcclxuICAgIFZpZXdDaGlsZHJlblxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCwgU29ydFNldHRpbmcsIEJiYlRyYW5zbGF0ZVBpcGUsIFJlcG9ydFZpZXdDb2x1bW4gfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcbmltcG9ydCB7IFVpR3JpZFNvcnRJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vdWktZ3JpZC1zb3J0LWl0ZW0vdWktZ3JpZC1zb3J0LWl0ZW0uY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtdWktZ3JpZC1zb3J0LXNldHRpbmcnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VpLWdyaWQtc29ydC1zZXR0aW5nLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3VpLWdyaWQtc29ydC1zZXR0aW5nLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0YW5kYWxvbmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVaUdyaWRTb3J0U2V0dGluZ0NvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQElucHV0KCkgc2hvd0dyb3VwczogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGNvbHVtbnM6IFJlcG9ydFZpZXdDb2x1bW5bXTtcclxuICAgIEBJbnB1dCgpIHNvcnRTZXR0aW5nczogU29ydFNldHRpbmdbXTtcclxuXHJcbiAgICBAT3V0cHV0KCkgY2hhbmdlU2V0dGluZyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBWaWV3Q2hpbGRyZW4oVWlHcmlkU29ydEl0ZW1Db21wb25lbnQpXHJcbiAgICBzb3J0SXRlbXNSZWY6IFF1ZXJ5TGlzdDxVaUdyaWRTb3J0SXRlbUNvbXBvbmVudD47XHJcblxyXG4gICAgc29ydERpcmVjdGlvbnM6IGFueSA9IFtdO1xyXG4gICAgTk9ORSA9ICdOT05FJztcclxuICAgIG9yaWdpbmFsU29ydFNldHRpbmdzOiBTb3J0U2V0dGluZ1tdO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgYmJiUGlwZTogQmJiVHJhbnNsYXRlUGlwZSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICB0aGlzLl9pbml0U29ydFNldHRpbmdzKHRoaXMuc29ydFNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLl9pbml0Q29sdW1ucygpO1xyXG4gICAgICAgIHRoaXMuX2luaXRTb3J0RGlyZWN0aW9ucygpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcclxuICAgICAgICBjb25zdCB7IHNvcnRTZXR0aW5ncyB9ID0gY2hhbmdlcztcclxuICAgICAgICBpZiAoc29ydFNldHRpbmdzICYmICFzb3J0U2V0dGluZ3MuZmlyc3RDaGFuZ2UpIHtcclxuICAgICAgICAgICAgdGhpcy5faW5pdFNvcnRTZXR0aW5ncyhzb3J0U2V0dGluZ3MuY3VycmVudFZhbHVlKTtcclxuICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25BZGQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5hZGROZXdTb3J0SXRlbSgpO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlU2V0dGluZy5lbWl0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25SZW1vdmUoaW5kZXgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBzb3J0SXRlbUNvbXBvbmVudCA9IHRoaXMuc29ydEl0ZW1zUmVmLnRvQXJyYXkoKVtpbmRleF07XHJcbiAgICAgICAgaWYgKHRoaXMub3JpZ2luYWxTb3J0U2V0dGluZ3MubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgICB0aGlzLm9yaWdpbmFsU29ydFNldHRpbmdzID0gdGhpcy5vcmlnaW5hbFNvcnRTZXR0aW5ncy5maWx0ZXIoKGl0ZW0sIGkpID0+IGluZGV4ICE9PSBpKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBzb3J0SXRlbUNvbXBvbmVudC5zZXRTZWxlY3RlZENvbHVtbih0aGlzLk5PTkUpO1xyXG4gICAgICAgICAgICBzb3J0SXRlbUNvbXBvbmVudC5zZXRTZWxlY3RlZERpcmVjdGlvbignJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY2hhbmdlU2V0dGluZy5lbWl0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgYWRkTmV3U29ydEl0ZW0oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vcmlnaW5hbFNvcnRTZXR0aW5ncyA9IFtcclxuICAgICAgICAgICAgLi4udGhpcy5vcmlnaW5hbFNvcnRTZXR0aW5ncyxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgTmFtZTogdGhpcy5OT05FLFxyXG4gICAgICAgICAgICAgICAgU29ydERpcmVjdGlvbjogJycsXHJcbiAgICAgICAgICAgICAgICBJc0dyb3VwZWQ6IHRoaXMuc2hvd0dyb3Vwc1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgXTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0U2V0dGluZ3MoKTogU29ydFNldHRpbmdbXSB7XHJcbiAgICAgICAgY29uc3Qgc29ydEl0ZW1zID0gdGhpcy5zb3J0SXRlbXNSZWZcclxuICAgICAgICAgICAgLnRvQXJyYXkoKVxyXG4gICAgICAgICAgICAuZmlsdGVyKChjKSA9PiBjLnNvcnRJdGVtLk5hbWUgIT09IHRoaXMuTk9ORSlcclxuICAgICAgICAgICAgLm1hcCgoYykgPT4gKHsgLi4uYy5zb3J0SXRlbSwgSXNHcm91cGVkOiB0aGlzLnNob3dHcm91cHMgfHwgYy5zb3J0SXRlbS5Jc0dyb3VwZWQgfSkpO1xyXG4gICAgICAgIHRoaXMuc29ydFNldHRpbmdzID0gc29ydEl0ZW1zO1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNvcnRTZXR0aW5ncztcclxuICAgIH1cclxuICAgIHByaXZhdGUgX2luaXRDb2x1bW5zKCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IG5vbmVUZXh0ID0gdGhpcy5iYmJQaXBlLnRyYW5zZm9ybSgnTm9uZScpO1xyXG4gICAgICAgIHRoaXMuY29sdW1ucyA9IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgTmFtZTogdGhpcy5OT05FLFxyXG4gICAgICAgICAgICAgICAgQ2FwdGlvbjogbm9uZVRleHQsXHJcbiAgICAgICAgICAgICAgICBBbGlhczogJycsXHJcbiAgICAgICAgICAgICAgICBGaWVsZERlZklkOiAnJyxcclxuICAgICAgICAgICAgICAgIEZpZWxkVHlwZTogJycsXHJcbiAgICAgICAgICAgICAgICBGaWVsZFR5cGVJZDogLTEsXHJcbiAgICAgICAgICAgICAgICBIYXNTdW1tYXJ5OiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIEhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBJc0x0cjogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBJc1ByZXZpZXc6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgTWV0YUZpZWxkVHlwZUlkOiAnJyxcclxuICAgICAgICAgICAgICAgIFdpZHRoOiAwLFxyXG4gICAgICAgICAgICAgICAgSWNvbjogJydcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgLi4udGhpcy5jb2x1bW5zXHJcbiAgICAgICAgXTtcclxuICAgIH1cclxuICAgIHByaXZhdGUgX2luaXRTb3J0U2V0dGluZ3Moc29ydFNldHRpbmdzOiBTb3J0U2V0dGluZ1tdKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vcmlnaW5hbFNvcnRTZXR0aW5ncyA9IHNvcnRTZXR0aW5ncy5tYXAoKGMpID0+ICh7IC4uLmMgfSkpO1xyXG4gICAgICAgIGlmICh0aGlzLnNob3dHcm91cHMpIHtcclxuICAgICAgICAgICAgdGhpcy5vcmlnaW5hbFNvcnRTZXR0aW5ncyA9IHRoaXMub3JpZ2luYWxTb3J0U2V0dGluZ3MuZmlsdGVyKChjKSA9PiBjLklzR3JvdXBlZCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5vcmlnaW5hbFNvcnRTZXR0aW5ncyA9IHRoaXMub3JpZ2luYWxTb3J0U2V0dGluZ3MuZmlsdGVyKChjKSA9PiBjLlNvcnREaXJlY3Rpb24gIT09ICcnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLm9yaWdpbmFsU29ydFNldHRpbmdzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLmFkZE5ld1NvcnRJdGVtKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2luaXRTb3J0RGlyZWN0aW9ucygpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBhc2NlbmRpbmdUZXh0ID0gdGhpcy5iYmJQaXBlLnRyYW5zZm9ybSgnQXNjZW5kaW5nJyk7XHJcbiAgICAgICAgY29uc3QgZGVzY2VuZGluZ1RleHQgPSB0aGlzLmJiYlBpcGUudHJhbnNmb3JtKCdEZXNjZW5kaW5nJyk7XHJcbiAgICAgICAgdGhpcy5zb3J0RGlyZWN0aW9ucyA9IFtcclxuICAgICAgICAgICAgeyB0ZXh0OiAnJywgdmFsdWU6ICcnIH0sXHJcbiAgICAgICAgICAgIHsgdGV4dDogYXNjZW5kaW5nVGV4dCwgdmFsdWU6ICdBU0MnIH0sXHJcbiAgICAgICAgICAgIHsgdGV4dDogZGVzY2VuZGluZ1RleHQsIHZhbHVlOiAnREVTQycgfVxyXG4gICAgICAgIF07XHJcbiAgICB9XHJcbn1cclxuIiwiQGZvciAoc29ydEl0ZW0gb2Ygb3JpZ2luYWxTb3J0U2V0dGluZ3M7IHRyYWNrIHNvcnRJdGVtOyBsZXQgaSA9ICRpbmRleCkge1xyXG48YnN1LXVpLWdyaWQtc29ydC1pdGVtXHJcbiAgICAjc29ydEl0ZW1zUmVmXHJcbiAgICBbaXNGaXJzdF09XCJpID09PSAwXCJcclxuICAgIChhZGQpPVwib25BZGQoKVwiXHJcbiAgICAocmVtb3ZlKT1cIm9uUmVtb3ZlKGkpXCJcclxuICAgIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxyXG4gICAgW3NvcnREaXJlY3Rpb25zXT1cInNvcnREaXJlY3Rpb25zXCJcclxuICAgIFtzb3J0SXRlbV09XCJzb3J0SXRlbVwiXHJcbiAgICBbc3R5bGUubWFyZ2luLXRvcC5weF09XCJpID4gMCA/IDUgOiAwXCJcclxuICAgIFtzaG93R3JvdXBzXT1cInNob3dHcm91cHNcIlxyXG4gICAgKGNoYW5nZVNldHRpbmcpPVwidGhpcy5jaGFuZ2VTZXR0aW5nLmVtaXQoKVwiXHJcbj5cclxuPC9ic3UtdWktZ3JpZC1zb3J0LWl0ZW0+XHJcbn1cclxuIl19
@@ -0,0 +1,16 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { FieldBaseComponent } from 'barsa-novin-ray-core';
3
+ import * as i0 from "@angular/core";
4
+ export class UiHtmlViewerComponent extends FieldBaseComponent {
5
+ _setValue(value) {
6
+ super._setValue(value);
7
+ this.safeHtml = this._domSanitizer.bypassSecurityTrustHtml(this.value ?? '');
8
+ }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiHtmlViewerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UiHtmlViewerComponent, selector: "bsu-ui-html-viewer", usesInheritance: true, ngImport: i0, template: "<div [innerHTML]=\"safeHtml\"></div>\n", styles: [":host{display:block}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiHtmlViewerComponent, decorators: [{
13
+ type: Component,
14
+ args: [{ selector: 'bsu-ui-html-viewer', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<div [innerHTML]=\"safeHtml\"></div>\n", styles: [":host{display:block}\n"] }]
15
+ }] });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktaHRtbC12aWV3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktaHRtbC12aWV3ZXIvdWktaHRtbC12aWV3ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktaHRtbC12aWV3ZXIvdWktaHRtbC12aWV3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFRMUQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGtCQUFrQjtJQUUvQyxTQUFTLENBQUMsS0FBVTtRQUMxQixLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7K0dBTFEscUJBQXFCO21HQUFyQixxQkFBcUIsaUZDWGxDLHdDQUNBOzs0RkRVYSxxQkFBcUI7a0JBUGpDLFNBQVM7K0JBQ0ksb0JBQW9CLG1CQUdiLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuXHJcbmltcG9ydCB7IEZpZWxkQmFzZUNvbXBvbmVudCB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JzdS11aS1odG1sLXZpZXdlcicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vdWktaHRtbC12aWV3ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdWktaHRtbC12aWV3ZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIFVpSHRtbFZpZXdlckNvbXBvbmVudCBleHRlbmRzIEZpZWxkQmFzZUNvbXBvbmVudCB7XHJcbiAgICBzYWZlSHRtbDogU2FmZUh0bWw7XHJcbiAgICBwcm90ZWN0ZWQgX3NldFZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5fc2V0VmFsdWUodmFsdWUpO1xyXG4gICAgICAgIHRoaXMuc2FmZUh0bWwgPSB0aGlzLl9kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwodGhpcy52YWx1ZSA/PyAnJyk7XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdiBbaW5uZXJIVE1MXT1cInNhZmVIdG1sXCI+PC9kaXY+XG4iXX0=
@@ -0,0 +1,11 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class UiInfoBarPanelComponent {
4
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiInfoBarPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UiInfoBarPanelComponent, selector: "bsu-ui-info-bar-panel", ngImport: i0, template: "<p>ui-info-bar-panel works!</p>\r\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
6
+ }
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiInfoBarPanelComponent, decorators: [{
8
+ type: Component,
9
+ args: [{ selector: 'bsu-ui-info-bar-panel', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<p>ui-info-bar-panel works!</p>\r\n" }]
10
+ }] });
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktaW5mby1iYXItcGFuZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktaW5mby1iYXItcGFuZWwvdWktaW5mby1iYXItcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktaW5mby1iYXItcGFuZWwvdWktaW5mby1iYXItcGFuZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFTbkUsTUFBTSxPQUFPLHVCQUF1QjsrR0FBdkIsdUJBQXVCO21HQUF2Qix1QkFBdUIsNkRDVHBDLHFDQUNBOzs0RkRRYSx1QkFBdUI7a0JBUG5DLFNBQVM7K0JBQ0ksdUJBQXVCLG1CQUdoQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYnN1LXVpLWluZm8tYmFyLXBhbmVsJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi91aS1pbmZvLWJhci1wYW5lbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi91aS1pbmZvLWJhci1wYW5lbC5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWlJbmZvQmFyUGFuZWxDb21wb25lbnQge31cclxuIiwiPHA+dWktaW5mby1iYXItcGFuZWwgd29ya3MhPC9wPlxyXG4iXX0=
@@ -0,0 +1,12 @@
1
+ import { Component, ChangeDetectionStrategy } from '@angular/core';
2
+ import { FieldBaseComponent } from 'barsa-novin-ray-core';
3
+ import * as i0 from "@angular/core";
4
+ export class UiLabelComponent extends FieldBaseComponent {
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiLabelComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
6
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UiLabelComponent, selector: "bsu-ui-label", usesInheritance: true, ngImport: i0, template: "<label fd-label>{{ value }}</label>\r\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7
+ }
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiLabelComponent, decorators: [{
9
+ type: Component,
10
+ args: [{ selector: 'bsu-ui-label', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<label fd-label>{{ value }}</label>\r\n" }]
11
+ }] });
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktbGFiZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktbGFiZWwvdWktbGFiZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktbGFiZWwvdWktbGFiZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFTMUQsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGtCQUFrQjsrR0FBM0MsZ0JBQWdCO21HQUFoQixnQkFBZ0IsMkVDVjdCLHlDQUNBOzs0RkRTYSxnQkFBZ0I7a0JBUDVCLFNBQVM7K0JBQ0ksY0FBYyxtQkFHUCx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZpZWxkQmFzZUNvbXBvbmVudCB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtdWktbGFiZWwnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VpLWxhYmVsLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3VpLWxhYmVsLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0YW5kYWxvbmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVaUxhYmVsQ29tcG9uZW50IGV4dGVuZHMgRmllbGRCYXNlQ29tcG9uZW50IHt9XHJcbiIsIjxsYWJlbCBmZC1sYWJlbD57eyB2YWx1ZSB9fTwvbGFiZWw+XHJcbiJdfQ==