barsa-sap-ui 1.0.455 → 2.0.1

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 (652) hide show
  1. package/{esm2020 → esm2022}/barsa-sap-ui.mjs +4 -4
  2. package/esm2022/lib/apply-conditional-formmatings.directive.mjs +89 -0
  3. package/esm2022/lib/barsa-answer-card/barsa-answer-card.component.mjs +41 -0
  4. package/esm2022/lib/barsa-asp-viewer/barsa-asp-viewer.component.mjs +127 -0
  5. package/{esm2020 → esm2022}/lib/barsa-bar-panel/barsa-bar-panel.component.mjs +23 -23
  6. package/esm2022/lib/barsa-base-panel/barsa-base-layout-panel.component.mjs +29 -0
  7. package/esm2022/lib/barsa-card-layout-panel/barsa-card-layout-panel.component.mjs +24 -0
  8. package/esm2022/lib/barsa-card-row-payam/barsa-card-row-payam.component.mjs +30 -0
  9. package/esm2022/lib/barsa-cartable-form/barsa-cartable-form.component.mjs +41 -0
  10. package/{esm2020 → esm2022}/lib/barsa-cartable-template/barsa-cartable-template.component.mjs +24 -24
  11. package/esm2022/lib/barsa-chat/barsa-chat.component.mjs +260 -0
  12. package/esm2022/lib/barsa-chat/chat.model.mjs +8 -0
  13. package/esm2022/lib/barsa-chat-content/barsa-chat-content.component.mjs +13 -0
  14. package/esm2022/lib/barsa-chat-content-toolbar/barsa-chat-content-toolbar.component.mjs +22 -0
  15. package/esm2022/lib/barsa-chat-list/barsa-chat-list.component.mjs +56 -0
  16. package/esm2022/lib/barsa-chat-message/barsa-chat-message.component.mjs +77 -0
  17. package/esm2022/lib/barsa-chat-thread/barsa-chat-thread.component.mjs +22 -0
  18. package/esm2022/lib/barsa-chat-threads-list/barsa-chat-threads-list.component.mjs +13 -0
  19. package/esm2022/lib/barsa-chat-threads-list-toolbar/barsa-chat-threads-list-toolbar.component.mjs +15 -0
  20. package/esm2022/lib/barsa-chip/barsa-chip.component.mjs +72 -0
  21. package/{esm2020 → esm2022}/lib/barsa-column-indicator/barsa-column-indicator.component.mjs +23 -23
  22. package/{esm2020 → esm2022}/lib/barsa-column-rownumber/barsa-column-rownumber.component.mjs +15 -15
  23. package/esm2022/lib/barsa-custom-inline-edit/barsa-custom-inline-edit.component.mjs +14 -0
  24. package/esm2022/lib/barsa-custom-inline-edit-row/barsa-custom-inline-edit-row.component.mjs +26 -0
  25. package/esm2022/lib/barsa-date-time-picker/barsa-date-time-picker.component.mjs +71 -0
  26. package/esm2022/lib/barsa-dynamic-field/barsa-dynamic-field.component.mjs +41 -0
  27. package/esm2022/lib/barsa-enum-menu-button/barsa-enum-menu-button.component.mjs +61 -0
  28. package/esm2022/lib/barsa-field-key-value/barsa-field-key-value.component.mjs +45 -0
  29. package/esm2022/lib/barsa-form-side-content/barsa-form-side-content.component.mjs +37 -0
  30. package/esm2022/lib/barsa-grid-layout-panel/barsa-grid-layout-panel.component.mjs +27 -0
  31. package/esm2022/lib/barsa-group-cartable/barsa-cartable-group.component.mjs +94 -0
  32. package/esm2022/lib/barsa-horizontal-flex-panel/barsa-horizontal-flex-panel.component.mjs +22 -0
  33. package/esm2022/lib/barsa-linkable-items-panel/barsa-linkable-items-panel.component.mjs +37 -0
  34. package/esm2022/lib/barsa-list-file-linear/barsa-list-file-linear.component.mjs +41 -0
  35. package/esm2022/lib/barsa-list-file-linear-gmail/barsa-list-file-linear-gmail.component.mjs +29 -0
  36. package/esm2022/lib/barsa-list-layout-panel/barsa-list-layout-panel.component.mjs +23 -0
  37. package/esm2022/lib/barsa-monaco-editor/barsa-monaco-editor.component.mjs +83 -0
  38. package/esm2022/lib/barsa-network-offline/barsa-network-offline.component.mjs +53 -0
  39. package/esm2022/lib/barsa-pishnamayesh-payam/barsa-pishnamayesh-payam.component.mjs +159 -0
  40. package/esm2022/lib/barsa-question-answer-comments-section/barsa-question-answer-comments-section.component.mjs +17 -0
  41. package/esm2022/lib/barsa-question-answer-content-actions-section/barsa-question-answer-content-actions-section.component.mjs +30 -0
  42. package/esm2022/lib/barsa-question-answer-creator-time-section/barsa-question-answer-creator-time-section.component.mjs +14 -0
  43. package/esm2022/lib/barsa-question-answer-form/barsa-question-answer-form.component.mjs +34 -0
  44. package/esm2022/lib/barsa-question-answer-form-add-comment/barsa-question-answer-form-add-comment.component.mjs +46 -0
  45. package/esm2022/lib/barsa-question-answer-vote-section/barsa-question-answer-vote-section.component.mjs +79 -0
  46. package/esm2022/lib/barsa-question-post/barsa-question-post.component.mjs +30 -0
  47. package/esm2022/lib/barsa-report-card-flex-view/barsa-report-card-flex-view.component.mjs +31 -0
  48. package/{esm2020 → esm2022}/lib/barsa-report-checkbox-switch-button/barsa-report-checkbox-switch-button.component.mjs +28 -28
  49. package/esm2022/lib/barsa-report-one-of-list/barsa-report-one-of-list.component.mjs +98 -0
  50. package/{esm2020 → esm2022}/lib/barsa-sap-ui-routing.module.mjs +18 -18
  51. package/esm2022/lib/barsa-sap-ui.module.mjs +360 -0
  52. package/esm2022/lib/barsa-search-form/barsa-search-form.component.mjs +29 -0
  53. package/esm2022/lib/barsa-simple-form/barsa-simple-form.component.mjs +168 -0
  54. package/esm2022/lib/barsa-table-column/barsa-table-column.component.mjs +27 -0
  55. package/esm2022/lib/barsa-table-header/barsa-table-header.component.mjs +198 -0
  56. package/esm2022/lib/barsa-table-row/barsa-table-row.component.mjs +61 -0
  57. package/esm2022/lib/barsa-tag-categories/barsa-tag-categories.component.mjs +60 -0
  58. package/esm2022/lib/barsa-tag-chip/barsa-tag-chip.component.mjs +26 -0
  59. package/esm2022/lib/barsa-tags-category-row/barsa-tags-category-row.component.mjs +23 -0
  60. package/esm2022/lib/barsa-text-ellipsis/barsa-text-ellipsis.component.mjs +37 -0
  61. package/esm2022/lib/barsa-tinyemce/barsa-tinyemce.component.mjs +417 -0
  62. package/esm2022/lib/barsa-toolbaritem-search/barsa-toolbaritem-search.component.mjs +36 -0
  63. package/esm2022/lib/barsa-tree-item/barsa-tree-item.component.mjs +129 -0
  64. package/{esm2020 → esm2022}/lib/barsa-tree-item/node-has-one-depth-level.pipe.mjs +19 -19
  65. package/esm2022/lib/barsa-ulv-main/barsa-ulv-main.component.mjs +208 -0
  66. package/esm2022/lib/blob-viewer/blob-viewer.component.mjs +78 -0
  67. package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +44 -0
  68. package/{esm2020 → esm2022}/lib/captcha-field/captcha-field.component.mjs +28 -28
  69. package/esm2022/lib/card-item/card-item.component.mjs +76 -0
  70. package/esm2022/lib/card-view-content/card-view-content.component.mjs +46 -0
  71. package/esm2022/lib/col-renderer.directive.mjs +46 -0
  72. package/esm2022/lib/column-matrix-renderer/column-matrix-renderer.component.mjs +56 -0
  73. package/esm2022/lib/column-matrix-renderer/matrix-value.pipe.mjs +60 -0
  74. package/esm2022/lib/column-renderer/column-renderer.component.mjs +85 -0
  75. package/esm2022/lib/constants.mjs +421 -0
  76. package/esm2022/lib/custom-date-time/custom-date-time.component.mjs +41 -0
  77. package/{esm2020 → esm2022}/lib/device-info-field-base.mjs +23 -23
  78. package/{esm2020 → esm2022}/lib/dialog-handler.directive.mjs +28 -28
  79. package/esm2022/lib/download-files.directive.mjs +33 -0
  80. package/esm2022/lib/dynamic-page-size.pipe.mjs +26 -0
  81. package/{esm2020 → esm2022}/lib/file-in-dialog/file-in-dialog.component.mjs +44 -44
  82. package/esm2022/lib/file-viewer/file-viewer.component.mjs +39 -0
  83. package/{esm2020 → esm2022}/lib/file-viewer-content/file-viewer-content.component.mjs +53 -53
  84. package/esm2022/lib/file-viewer-popover/file-viewer-popover.component.mjs +41 -0
  85. package/esm2022/lib/form-dialog/form-dialog.component.mjs +142 -0
  86. package/esm2022/lib/form-dialog-less/form-dialog-less.component.mjs +44 -0
  87. package/esm2022/lib/form-toolbar/form-toolbar.component.mjs +43 -0
  88. package/esm2022/lib/form-toolbar-button/form-toolbar-button.component.mjs +45 -0
  89. package/esm2022/lib/form-wizard/form-wizard.component.mjs +21 -0
  90. package/esm2022/lib/fullscreen-dialog.directive.mjs +59 -0
  91. package/esm2022/lib/fullscreen-files.directive.mjs +42 -0
  92. package/esm2022/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.mjs +188 -0
  93. package/esm2022/lib/gantt-dhtml-chart-view/gantt-dhtml-chart-view.component.mjs +203 -0
  94. package/{esm2020 → esm2022}/lib/global-search/global-search.component.mjs +27 -27
  95. package/esm2022/lib/global-search-module/global-search-module.component.mjs +29 -0
  96. package/esm2022/lib/global-search-panel/global-search-panel.component.mjs +25 -0
  97. package/esm2022/lib/header-avatar/header-avatar.component.mjs +18 -0
  98. package/{esm2020 → esm2022}/lib/header-facet-form/header-facet-form.component.mjs +22 -22
  99. package/{esm2020 → esm2022}/lib/header-facet-key-value/header-facet-key-value.component.mjs +31 -31
  100. package/{esm2020 → esm2022}/lib/header-facet-microchart/header-facet-microchart.component.mjs +21 -21
  101. package/{esm2020 → esm2022}/lib/header-facet-plain-text/header-facet-plain-text.component.mjs +28 -28
  102. package/esm2022/lib/header-facet-progress/header-facet-progress.component.mjs +25 -0
  103. package/esm2022/lib/header-facet-rate/header-facet-rate.component.mjs +25 -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 +564 -0
  107. package/{esm2020 → esm2022}/lib/inline-save-and-cancel/inline-save-and-cancel.component.mjs +32 -32
  108. package/esm2022/lib/layout-actions/layout-actions.component.mjs +68 -0
  109. package/esm2022/lib/layout-control/layout-control.component.mjs +234 -0
  110. package/esm2022/lib/layout-wizard/layout-wizard.component.mjs +154 -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 +71 -0
  114. package/esm2022/lib/ly-label/ly-label.component.mjs +34 -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/{esm2020 → esm2022}/lib/ly-layout-field-label/ly-layout-field-label.component.mjs +24 -24
  118. package/esm2022/lib/ly-layout-panel/ly-layout-panel.component.mjs +73 -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 +52 -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 +50 -0
  124. package/esm2022/lib/manage-filters-report/manage-filters-report.component.mjs +43 -0
  125. package/{esm2020 → esm2022}/lib/mask/mask.component.mjs +22 -22
  126. package/esm2022/lib/message-strip/message-strip.component.mjs +28 -0
  127. package/esm2022/lib/models/grid-data-provider.mjs +83 -0
  128. package/esm2022/lib/models/grid-view.mjs +2 -0
  129. package/{esm2020 → esm2022}/lib/models/index.mjs +1 -1
  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-popup.service.mjs +92 -0
  133. package/{esm2020 → esm2022}/lib/progress-indicator/progress-indicator.component.mjs +18 -18
  134. package/esm2022/lib/report-navigator/report-navigator.component.mjs +63 -0
  135. package/esm2022/lib/report-new-top-form/report-new-top-form.component.mjs +60 -0
  136. package/esm2022/lib/report-search-fields-hidden-settings/report-search-fields-hidden-settings.component.mjs +35 -0
  137. package/esm2022/lib/report-search-fields-manage/report-search-fields-manage.component.mjs +97 -0
  138. package/esm2022/lib/report-search-panel-save/report-search-panel-save.component.mjs +88 -0
  139. package/esm2022/lib/report-tree-base.mjs +408 -0
  140. package/esm2022/lib/report-view-renderer.directive.mjs +366 -0
  141. package/esm2022/lib/responsive-toolbar/responsive-toolbar.component.mjs +50 -0
  142. package/esm2022/lib/responsive-toolbar-renderer/responsive-toolbar-renderer.component.mjs +84 -0
  143. package/esm2022/lib/rich-text-static/rich-text-static.component.mjs +72 -0
  144. package/esm2022/lib/sap-font-class.pipe.mjs +29 -0
  145. package/esm2022/lib/sap-font.pipe.mjs +29 -0
  146. package/esm2022/lib/sap-size.pipe.mjs +27 -0
  147. package/esm2022/lib/sap-ui-report-base.component.mjs +765 -0
  148. package/esm2022/lib/search-panel/search-panel.component.mjs +42 -0
  149. package/{esm2020 → esm2022}/lib/static-text/static-text.component.mjs +15 -15
  150. package/{esm2020 → esm2022}/lib/title/title.component.mjs +15 -15
  151. package/{esm2020 → esm2022}/lib/ui-asp-report-viewer/ui-asp-report-viewer.component.mjs +18 -18
  152. package/esm2022/lib/ui-button/ui-button.component.mjs +31 -0
  153. package/esm2022/lib/ui-calendar/ui-calendar.component.mjs +53 -0
  154. package/esm2022/lib/ui-card-view/ui-card-view.component.mjs +59 -0
  155. package/esm2022/lib/ui-card-view-horizontal-group/ui-card-view-horizontal-group.component.mjs +42 -0
  156. package/esm2022/lib/ui-check-box/ui-check-box.component.mjs +34 -0
  157. package/esm2022/lib/ui-color-ui/ui-color-ui.component.mjs +50 -0
  158. package/esm2022/lib/ui-container-with-button/ui-container-with-button.component.mjs +34 -0
  159. package/esm2022/lib/ui-date-range-ex/ui-date-range-ex.component.mjs +191 -0
  160. package/esm2022/lib/ui-date-time/ui-date-time.component.mjs +149 -0
  161. package/esm2022/lib/ui-editable-grid/ui-editable-grid.component.mjs +110 -0
  162. package/esm2022/lib/ui-exception-form/ui-exception-form.component.mjs +53 -0
  163. package/esm2022/lib/ui-file-linear-list-box/ui-file-linear-list-box.component.mjs +121 -0
  164. package/esm2022/lib/ui-form-panel/ui-form-panel.component.mjs +92 -0
  165. package/{esm2020 → esm2022}/lib/ui-gantt-chart/ui-gantt-chart.component.mjs +32 -32
  166. package/{esm2020 → esm2022}/lib/ui-graph/ui-graph.component.mjs +17 -17
  167. package/{esm2020 → esm2022}/lib/ui-grid/ui-grid.component.mjs +25 -25
  168. package/esm2022/lib/ui-grid-columns/ui-grid-columns.component.mjs +43 -0
  169. package/esm2022/lib/ui-grid-filter-item/ui-grid-filter-item.component.mjs +66 -0
  170. package/esm2022/lib/ui-grid-filter-settings/ui-grid-filter-settings.component.mjs +75 -0
  171. package/esm2022/lib/ui-grid-sort-item/ui-grid-sort-item.component.mjs +58 -0
  172. package/esm2022/lib/ui-grid-sort-setting/ui-grid-sort-setting.component.mjs +155 -0
  173. package/{esm2020 → esm2022}/lib/ui-html-viewer/ui-html-viewer.component.mjs +16 -16
  174. package/{esm2020 → esm2022}/lib/ui-info-bar-panel/ui-info-bar-panel.component.mjs +11 -11
  175. package/{esm2020 → esm2022}/lib/ui-label/ui-label.component.mjs +12 -12
  176. package/esm2022/lib/ui-linear-list-container-with-button/ui-linear-list-container-with-button.component.mjs +349 -0
  177. package/esm2022/lib/ui-list-view/ui-list-view.component.mjs +75 -0
  178. package/esm2022/lib/ui-matrix-view/ui-matrix-view.component.mjs +124 -0
  179. package/esm2022/lib/ui-mo-info-combo-viewer/ui-mo-info-combo-viewer.component.mjs +19 -0
  180. package/{esm2020 → esm2022}/lib/ui-mo-info-general-object-ui/ui-mo-info-general-object-ui.component.mjs +14 -14
  181. package/esm2022/lib/ui-mo-info-sub-form-ui/ui-mo-info-sub-form-ui.component.mjs +55 -0
  182. package/esm2022/lib/ui-mo-info-ulv-combo/ui-mo-info-ulv-combo.component.mjs +430 -0
  183. package/esm2022/lib/ui-monaco-editor/ui-monaco-editor.component.mjs +28 -0
  184. package/esm2022/lib/ui-multi-select-card/ui-multi-select-card.component.mjs +37 -0
  185. package/esm2022/lib/ui-multi-select-checkbox/ui-multi-select-checkbox.component.mjs +59 -0
  186. package/esm2022/lib/ui-multi-select-combo/ui-multi-select-combo.component.mjs +93 -0
  187. package/esm2022/lib/ui-multi-select-radio/ui-multi-select-radio.component.mjs +36 -0
  188. package/esm2022/lib/ui-multi-select-slider/ui-multi-select-slider.component.mjs +56 -0
  189. package/esm2022/lib/ui-multi-select-smile/ui-multi-select-smile.component.mjs +28 -0
  190. package/esm2022/lib/ui-num-decimal-ui/ui-num-decimal-ui.component.mjs +24 -0
  191. package/esm2022/lib/ui-num-int-slider/ui-num-int-slider.component.mjs +27 -0
  192. package/{esm2020 → esm2022}/lib/ui-num-int-ui/ui-num-int-ui.component.mjs +21 -21
  193. package/esm2022/lib/ui-pdf-viewer/ui-pdf-viewer.component.mjs +261 -0
  194. package/esm2022/lib/ui-picture-file/ui-picture-file.component.mjs +98 -0
  195. package/esm2022/lib/ui-pictures-info/ui-pictures-info.component.mjs +223 -0
  196. package/esm2022/lib/ui-radio-group/ui-radio-group.component.mjs +48 -0
  197. package/esm2022/lib/ui-read-only-field/ui-read-only-field.component.mjs +36 -0
  198. package/esm2022/lib/ui-report-container/ui-report-container.component.mjs +46 -0
  199. package/{esm2020 → esm2022}/lib/ui-search-command-info-ui/ui-search-command-info-ui.component.mjs +24 -24
  200. package/esm2022/lib/ui-simple-combo/ui-simple-combo.component.mjs +37 -0
  201. package/{esm2020 → esm2022}/lib/ui-single-picture/ui-single-picture.component.mjs +36 -36
  202. package/esm2022/lib/ui-switch-button/ui-switch-button.component.mjs +20 -0
  203. package/esm2022/lib/ui-table-view/ui-table-view.component.mjs +155 -0
  204. package/esm2022/lib/ui-text-area/ui-text-area.component.mjs +49 -0
  205. package/esm2022/lib/ui-text-field/ui-text-field.component.mjs +52 -0
  206. package/{esm2020 → esm2022}/lib/ui-text-field-auto-complete/ui-text-field-auto-complete.component.mjs +47 -47
  207. package/{esm2020 → esm2022}/lib/ui-time-span/ui-time-span.component.mjs +24 -24
  208. package/esm2022/lib/ui-tinymce/ui-tinymce.component.mjs +53 -0
  209. package/esm2022/lib/ui-tree/ui-tree.component.mjs +92 -0
  210. package/esm2022/lib/ui-tree-view/ui-tree-view.component.mjs +80 -0
  211. package/esm2022/lib/ui-ulv-form-multi-select-ui/ui-ulv-form-multi-select-ui.component.mjs +23 -0
  212. package/esm2022/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.mjs +289 -0
  213. package/esm2022/lib/ui-workflow-panel-ui/ui-workflow-panel-ui.component.mjs +25 -0
  214. package/esm2022/lib/ul-loading-mask-ui/ul-loading-mask-ui.component.mjs +93 -0
  215. package/esm2022/lib/ul-msg-box-adapter/ul-msg-box-adapter.component.mjs +117 -0
  216. package/esm2022/lib/ul-notify-popup/ul-notify-popup.component.mjs +32 -0
  217. package/esm2022/lib/ul-toast-adapter/ul-toast-adapter.component.mjs +48 -0
  218. package/esm2022/lib/ulv-column-settings/ulv-column-settings.component.mjs +60 -0
  219. package/esm2022/lib/ulv-context-menu/ulv-context-menu.component.mjs +87 -0
  220. package/esm2022/lib/ulv-filter-settings/ulv-filter-settings.component.mjs +43 -0
  221. package/esm2022/lib/ulv-form-multi-select/ulv-form-multi-select.component.mjs +184 -0
  222. package/esm2022/lib/ulv-groupby-settings/ulv-groupby-settings.component.mjs +44 -0
  223. package/esm2022/lib/ulv-paging/ulv-paging.component.mjs +84 -0
  224. package/esm2022/lib/ulv-selection/ulv-selection.component.mjs +65 -0
  225. package/esm2022/lib/ulv-settings/ulv-settings.component.mjs +116 -0
  226. package/esm2022/lib/ulv-sort-settings/ulv-sort-settings.component.mjs +44 -0
  227. package/esm2022/lib/ulv-toolbar/ulv-toolbar.component.mjs +115 -0
  228. package/esm2022/lib/upload-file-status.pipe.mjs +28 -0
  229. package/esm2022/lib/util-chat-time-badge.pipe.mjs +18 -0
  230. package/esm2022/lib/util-date-to-hh-mm.pipe.mjs +23 -0
  231. package/{esm2020 → esm2022}/lib/wizard-layout.directive.mjs +103 -103
  232. package/{esm2020 → esm2022}/public-api.mjs +230 -222
  233. package/fesm2022/barsa-sap-ui.mjs +14745 -0
  234. package/fesm2022/barsa-sap-ui.mjs.map +1 -0
  235. package/index.d.ts +5 -5
  236. package/lib/apply-conditional-formmatings.directive.d.ts +25 -25
  237. package/lib/barsa-answer-card/barsa-answer-card.component.d.ts +12 -12
  238. package/lib/barsa-asp-viewer/barsa-asp-viewer.component.d.ts +29 -29
  239. package/lib/barsa-bar-panel/barsa-bar-panel.component.d.ts +9 -9
  240. package/lib/barsa-base-panel/barsa-base-layout-panel.component.d.ts +12 -12
  241. package/lib/barsa-card-layout-panel/barsa-card-layout-panel.component.d.ts +15 -15
  242. package/lib/barsa-card-row-payam/barsa-card-row-payam.component.d.ts +20 -20
  243. package/lib/barsa-cartable-form/barsa-cartable-form.component.d.ts +10 -10
  244. package/lib/barsa-cartable-template/barsa-cartable-template.component.d.ts +14 -14
  245. package/lib/barsa-chat/barsa-chat.component.d.ts +48 -0
  246. package/lib/barsa-chat/chat.model.d.ts +43 -0
  247. package/lib/barsa-chat-content/barsa-chat-content.component.d.ts +5 -0
  248. package/lib/barsa-chat-content-toolbar/barsa-chat-content-toolbar.component.d.ts +9 -0
  249. package/lib/barsa-chat-list/barsa-chat-list.component.d.ts +16 -0
  250. package/lib/barsa-chat-message/barsa-chat-message.component.d.ts +16 -0
  251. package/lib/barsa-chat-thread/barsa-chat-thread.component.d.ts +6 -0
  252. package/lib/barsa-chat-threads-list/barsa-chat-threads-list.component.d.ts +5 -0
  253. package/lib/barsa-chat-threads-list-toolbar/barsa-chat-threads-list-toolbar.component.d.ts +5 -0
  254. package/lib/barsa-chip/barsa-chip.component.d.ts +20 -20
  255. package/lib/barsa-column-indicator/barsa-column-indicator.component.d.ts +11 -11
  256. package/lib/barsa-column-rownumber/barsa-column-rownumber.component.d.ts +8 -8
  257. package/lib/barsa-custom-inline-edit/barsa-custom-inline-edit.component.d.ts +6 -6
  258. package/lib/barsa-custom-inline-edit-row/barsa-custom-inline-edit-row.component.d.ts +10 -10
  259. package/lib/barsa-date-time-picker/barsa-date-time-picker.component.d.ts +18 -18
  260. package/lib/barsa-dynamic-field/barsa-dynamic-field.component.d.ts +16 -16
  261. package/lib/barsa-enum-menu-button/barsa-enum-menu-button.component.d.ts +23 -23
  262. package/lib/barsa-field-key-value/barsa-field-key-value.component.d.ts +26 -26
  263. package/lib/barsa-form-side-content/barsa-form-side-content.component.d.ts +25 -23
  264. package/lib/barsa-grid-layout-panel/barsa-grid-layout-panel.component.d.ts +16 -16
  265. package/lib/barsa-group-cartable/barsa-cartable-group.component.d.ts +26 -26
  266. package/lib/barsa-horizontal-flex-panel/barsa-horizontal-flex-panel.component.d.ts +14 -14
  267. package/lib/barsa-linkable-items-panel/barsa-linkable-items-panel.component.d.ts +12 -12
  268. package/lib/barsa-list-file-linear/barsa-list-file-linear.component.d.ts +17 -17
  269. package/lib/barsa-list-file-linear-gmail/barsa-list-file-linear-gmail.component.d.ts +8 -8
  270. package/lib/barsa-list-layout-panel/barsa-list-layout-panel.component.d.ts +9 -9
  271. package/lib/barsa-monaco-editor/barsa-monaco-editor.component.d.ts +23 -23
  272. package/lib/barsa-network-offline/barsa-network-offline.component.d.ts +14 -14
  273. package/lib/barsa-pishnamayesh-payam/barsa-pishnamayesh-payam.component.d.ts +79 -79
  274. package/lib/barsa-question-answer-comments-section/barsa-question-answer-comments-section.component.d.ts +7 -7
  275. package/lib/barsa-question-answer-content-actions-section/barsa-question-answer-content-actions-section.component.d.ts +13 -13
  276. package/lib/barsa-question-answer-creator-time-section/barsa-question-answer-creator-time-section.component.d.ts +7 -7
  277. package/lib/barsa-question-answer-form/barsa-question-answer-form.component.d.ts +10 -10
  278. package/lib/barsa-question-answer-form-add-comment/barsa-question-answer-form-add-comment.component.d.ts +13 -13
  279. package/lib/barsa-question-answer-vote-section/barsa-question-answer-vote-section.component.d.ts +14 -14
  280. package/lib/barsa-question-post/barsa-question-post.component.d.ts +10 -10
  281. package/lib/barsa-report-card-flex-view/barsa-report-card-flex-view.component.d.ts +9 -9
  282. package/lib/barsa-report-checkbox-switch-button/barsa-report-checkbox-switch-button.component.d.ts +15 -15
  283. package/lib/barsa-report-one-of-list/barsa-report-one-of-list.component.d.ts +31 -31
  284. package/lib/barsa-sap-ui-routing.module.d.ts +7 -7
  285. package/lib/barsa-sap-ui.module.d.ts +245 -234
  286. package/lib/barsa-search-form/barsa-search-form.component.d.ts +8 -8
  287. package/lib/barsa-simple-form/barsa-simple-form.component.d.ts +73 -73
  288. package/lib/barsa-table-column/barsa-table-column.component.d.ts +8 -8
  289. package/lib/barsa-table-header/barsa-table-header.component.d.ts +59 -59
  290. package/lib/barsa-table-row/barsa-table-row.component.d.ts +18 -18
  291. package/lib/barsa-tag-categories/barsa-tag-categories.component.d.ts +11 -11
  292. package/lib/barsa-tag-chip/barsa-tag-chip.component.d.ts +10 -10
  293. package/lib/barsa-tags-category-row/barsa-tags-category-row.component.d.ts +9 -9
  294. package/lib/barsa-text-ellipsis/barsa-text-ellipsis.component.d.ts +18 -18
  295. package/lib/barsa-tinyemce/barsa-tinyemce.component.d.ts +54 -54
  296. package/lib/barsa-toolbaritem-search/barsa-toolbaritem-search.component.d.ts +12 -12
  297. package/lib/barsa-tree-item/barsa-tree-item.component.d.ts +54 -54
  298. package/lib/barsa-tree-item/node-has-one-depth-level.pipe.d.ts +8 -8
  299. package/lib/barsa-ulv-main/barsa-ulv-main.component.d.ts +72 -72
  300. package/lib/blob-viewer/blob-viewer.component.d.ts +24 -24
  301. package/lib/breadcrumb/breadcrumb.component.d.ts +17 -17
  302. package/lib/captcha-field/captcha-field.component.d.ts +10 -10
  303. package/lib/card-item/card-item.component.d.ts +20 -20
  304. package/lib/card-view-content/card-view-content.component.d.ts +14 -14
  305. package/lib/col-renderer.directive.d.ts +10 -10
  306. package/lib/column-matrix-renderer/column-matrix-renderer.component.d.ts +23 -23
  307. package/lib/column-matrix-renderer/matrix-value.pipe.d.ts +8 -8
  308. package/lib/column-renderer/column-renderer.component.d.ts +33 -33
  309. package/lib/constants.d.ts +12 -12
  310. package/lib/custom-date-time/custom-date-time.component.d.ts +26 -26
  311. package/lib/device-info-field-base.d.ts +12 -12
  312. package/lib/dialog-handler.directive.d.ts +12 -12
  313. package/lib/download-files.directive.d.ts +9 -9
  314. package/lib/dynamic-page-size.pipe.d.ts +8 -8
  315. package/lib/file-in-dialog/file-in-dialog.component.d.ts +16 -16
  316. package/lib/file-viewer/file-viewer.component.d.ts +21 -21
  317. package/lib/file-viewer-content/file-viewer-content.component.d.ts +20 -20
  318. package/lib/file-viewer-popover/file-viewer-popover.component.d.ts +17 -17
  319. package/lib/form-dialog/form-dialog.component.d.ts +45 -45
  320. package/lib/form-dialog-less/form-dialog-less.component.d.ts +29 -29
  321. package/lib/form-toolbar/form-toolbar.component.d.ts +14 -14
  322. package/lib/form-toolbar-button/form-toolbar-button.component.d.ts +20 -20
  323. package/lib/form-wizard/form-wizard.component.d.ts +8 -8
  324. package/lib/fullscreen-dialog.directive.d.ts +20 -20
  325. package/lib/fullscreen-files.directive.d.ts +16 -16
  326. package/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.d.ts +76 -76
  327. package/lib/gantt-dhtml-chart-view/gantt-dhtml-chart-view.component.d.ts +18 -18
  328. package/lib/global-search/global-search.component.d.ts +11 -11
  329. package/lib/global-search-module/global-search-module.component.d.ts +18 -18
  330. package/lib/global-search-panel/global-search-panel.component.d.ts +9 -9
  331. package/lib/header-avatar/header-avatar.component.d.ts +8 -8
  332. package/lib/header-facet-form/header-facet-form.component.d.ts +9 -9
  333. package/lib/header-facet-key-value/header-facet-key-value.component.d.ts +11 -11
  334. package/lib/header-facet-microchart/header-facet-microchart.component.d.ts +8 -8
  335. package/lib/header-facet-plain-text/header-facet-plain-text.component.d.ts +11 -11
  336. package/lib/header-facet-progress/header-facet-progress.component.d.ts +11 -11
  337. package/lib/header-facet-rate/header-facet-rate.component.d.ts +11 -11
  338. package/lib/htree-create-new/htree-create-new.component.d.ts +13 -13
  339. package/lib/hyperlink/hyperlink.component.d.ts +7 -7
  340. package/lib/index.d.ts +102 -100
  341. package/lib/inline-save-and-cancel/inline-save-and-cancel.component.d.ts +11 -11
  342. package/lib/layout-actions/layout-actions.component.d.ts +25 -25
  343. package/lib/layout-control/layout-control.component.d.ts +67 -67
  344. package/lib/layout-wizard/layout-wizard.component.d.ts +28 -28
  345. package/lib/list-item/list-item.component.d.ts +14 -14
  346. package/lib/ly-empty-space/ly-empty-space.component.d.ts +13 -13
  347. package/lib/ly-horizontal-layout/ly-horizontal-layout.component.d.ts +23 -23
  348. package/lib/ly-label/ly-label.component.d.ts +16 -16
  349. package/lib/ly-layout-container/ly-layout-container.component.d.ts +26 -26
  350. package/lib/ly-layout-container-of-root/ly-layout-container-of-root.component.d.ts +8 -8
  351. package/lib/ly-layout-field-label/ly-layout-field-label.component.d.ts +13 -13
  352. package/lib/ly-layout-panel/ly-layout-panel.component.d.ts +26 -26
  353. package/lib/ly-line/ly-line.component.d.ts +17 -17
  354. package/lib/ly-simple-label/ly-simple-label.component.d.ts +9 -9
  355. package/lib/ly-tab-container/ly-tab-container.component.d.ts +19 -19
  356. package/lib/ly-tab-page/ly-tab-page.component.d.ts +20 -20
  357. package/lib/ly-vertical-layout/ly-vertical-layout.component.d.ts +19 -19
  358. package/lib/manage-filters-report/manage-filters-report.component.d.ts +24 -24
  359. package/lib/mask/mask.component.d.ts +9 -9
  360. package/lib/message-strip/message-strip.component.d.ts +11 -11
  361. package/lib/models/grid-data-provider.d.ts +22 -22
  362. package/lib/models/grid-view.d.ts +61 -61
  363. package/lib/models/index.d.ts +1 -1
  364. package/lib/no-data/no-data.component.d.ts +11 -9
  365. package/lib/notification-item/notification-item.component.d.ts +43 -43
  366. package/lib/notification-popup.service.d.ts +17 -17
  367. package/lib/progress-indicator/progress-indicator.component.d.ts +8 -8
  368. package/lib/report-navigator/report-navigator.component.d.ts +21 -21
  369. package/lib/report-new-top-form/report-new-top-form.component.d.ts +18 -18
  370. package/lib/report-search-fields-hidden-settings/report-search-fields-hidden-settings.component.d.ts +14 -14
  371. package/lib/report-search-fields-manage/report-search-fields-manage.component.d.ts +20 -20
  372. package/lib/report-search-panel-save/report-search-panel-save.component.d.ts +27 -27
  373. package/lib/report-tree-base.d.ts +62 -62
  374. package/lib/report-view-renderer.directive.d.ts +117 -117
  375. package/lib/responsive-toolbar/responsive-toolbar.component.d.ts +19 -19
  376. package/lib/responsive-toolbar-renderer/responsive-toolbar-renderer.component.d.ts +24 -24
  377. package/lib/rich-text-static/rich-text-static.component.d.ts +28 -28
  378. package/lib/sap-font-class.pipe.d.ts +8 -8
  379. package/lib/sap-font.pipe.d.ts +9 -9
  380. package/lib/sap-size.pipe.d.ts +8 -8
  381. package/lib/sap-ui-report-base.component.d.ts +154 -154
  382. package/lib/search-panel/search-panel.component.d.ts +14 -14
  383. package/lib/static-text/static-text.component.d.ts +7 -7
  384. package/lib/title/title.component.d.ts +7 -7
  385. package/lib/ui-asp-report-viewer/ui-asp-report-viewer.component.d.ts +9 -9
  386. package/lib/ui-button/ui-button.component.d.ts +11 -11
  387. package/lib/ui-calendar/ui-calendar.component.d.ts +19 -19
  388. package/lib/ui-card-view/ui-card-view.component.d.ts +16 -16
  389. package/lib/ui-card-view-horizontal-group/ui-card-view-horizontal-group.component.d.ts +12 -12
  390. package/lib/ui-check-box/ui-check-box.component.d.ts +14 -14
  391. package/lib/ui-color-ui/ui-color-ui.component.d.ts +16 -16
  392. package/lib/ui-container-with-button/ui-container-with-button.component.d.ts +11 -11
  393. package/lib/ui-date-range-ex/ui-date-range-ex.component.d.ts +35 -36
  394. package/lib/ui-date-time/ui-date-time.component.d.ts +39 -40
  395. package/lib/ui-editable-grid/ui-editable-grid.component.d.ts +43 -43
  396. package/lib/ui-exception-form/ui-exception-form.component.d.ts +15 -15
  397. package/lib/ui-file-linear-list-box/ui-file-linear-list-box.component.d.ts +50 -50
  398. package/lib/ui-form-panel/ui-form-panel.component.d.ts +53 -53
  399. package/lib/ui-gantt-chart/ui-gantt-chart.component.d.ts +15 -15
  400. package/lib/ui-graph/ui-graph.component.d.ts +9 -9
  401. package/lib/ui-grid/ui-grid.component.d.ts +12 -12
  402. package/lib/ui-grid-columns/ui-grid-columns.component.d.ts +14 -14
  403. package/lib/ui-grid-filter-item/ui-grid-filter-item.component.d.ts +19 -19
  404. package/lib/ui-grid-filter-settings/ui-grid-filter-settings.component.d.ts +24 -24
  405. package/lib/ui-grid-sort-item/ui-grid-sort-item.component.d.ts +25 -25
  406. package/lib/ui-grid-sort-setting/ui-grid-sort-setting.component.d.ts +28 -28
  407. package/lib/ui-html-viewer/ui-html-viewer.component.d.ts +9 -9
  408. package/lib/ui-info-bar-panel/ui-info-bar-panel.component.d.ts +5 -5
  409. package/lib/ui-label/ui-label.component.d.ts +6 -6
  410. package/lib/ui-linear-list-container-with-button/ui-linear-list-container-with-button.component.d.ts +73 -73
  411. package/lib/ui-list-view/ui-list-view.component.d.ts +29 -29
  412. package/lib/ui-matrix-view/ui-matrix-view.component.d.ts +45 -45
  413. package/lib/ui-mo-info-combo-viewer/ui-mo-info-combo-viewer.component.d.ts +7 -7
  414. package/lib/ui-mo-info-general-object-ui/ui-mo-info-general-object-ui.component.d.ts +6 -6
  415. package/lib/ui-mo-info-sub-form-ui/ui-mo-info-sub-form-ui.component.d.ts +15 -15
  416. package/lib/ui-mo-info-ulv-combo/ui-mo-info-ulv-combo.component.d.ts +90 -89
  417. package/lib/ui-monaco-editor/ui-monaco-editor.component.d.ts +10 -7
  418. package/lib/ui-multi-select-card/ui-multi-select-card.component.d.ts +17 -17
  419. package/lib/ui-multi-select-checkbox/ui-multi-select-checkbox.component.d.ts +19 -19
  420. package/lib/ui-multi-select-combo/ui-multi-select-combo.component.d.ts +27 -27
  421. package/lib/ui-multi-select-radio/ui-multi-select-radio.component.d.ts +17 -17
  422. package/lib/ui-multi-select-slider/ui-multi-select-slider.component.d.ts +24 -24
  423. package/lib/ui-multi-select-smile/ui-multi-select-smile.component.d.ts +23 -23
  424. package/lib/ui-num-decimal-ui/ui-num-decimal-ui.component.d.ts +11 -11
  425. package/lib/ui-num-int-slider/ui-num-int-slider.component.d.ts +18 -18
  426. package/lib/ui-num-int-ui/ui-num-int-ui.component.d.ts +10 -10
  427. package/lib/ui-pdf-viewer/ui-pdf-viewer.component.d.ts +79 -79
  428. package/lib/ui-picture-file/ui-picture-file.component.d.ts +26 -25
  429. package/lib/ui-pictures-info/ui-pictures-info.component.d.ts +80 -69
  430. package/lib/ui-radio-group/ui-radio-group.component.d.ts +20 -20
  431. package/lib/ui-read-only-field/ui-read-only-field.component.d.ts +21 -21
  432. package/lib/ui-report-container/ui-report-container.component.d.ts +17 -17
  433. package/lib/ui-search-command-info-ui/ui-search-command-info-ui.component.d.ts +9 -9
  434. package/lib/ui-simple-combo/ui-simple-combo.component.d.ts +16 -16
  435. package/lib/ui-single-picture/ui-single-picture.component.d.ts +13 -13
  436. package/lib/ui-switch-button/ui-switch-button.component.d.ts +11 -11
  437. package/lib/ui-table-view/ui-table-view.component.d.ts +39 -39
  438. package/lib/ui-text-area/ui-text-area.component.d.ts +23 -23
  439. package/lib/ui-text-field/ui-text-field.component.d.ts +23 -23
  440. package/lib/ui-text-field-auto-complete/ui-text-field-auto-complete.component.d.ts +13 -13
  441. package/lib/ui-time-span/ui-time-span.component.d.ts +10 -10
  442. package/lib/ui-tinymce/ui-tinymce.component.d.ts +22 -22
  443. package/lib/ui-tree/ui-tree.component.d.ts +37 -37
  444. package/lib/ui-tree-view/ui-tree-view.component.d.ts +47 -47
  445. package/lib/ui-ulv-form-multi-select-ui/ui-ulv-form-multi-select-ui.component.d.ts +9 -9
  446. package/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.d.ts +74 -74
  447. package/lib/ui-workflow-panel-ui/ui-workflow-panel-ui.component.d.ts +16 -16
  448. package/lib/ul-loading-mask-ui/ul-loading-mask-ui.component.d.ts +21 -21
  449. package/lib/ul-msg-box-adapter/ul-msg-box-adapter.component.d.ts +48 -48
  450. package/lib/ul-notify-popup/ul-notify-popup.component.d.ts +21 -21
  451. package/lib/ul-toast-adapter/ul-toast-adapter.component.d.ts +13 -13
  452. package/lib/ulv-column-settings/ulv-column-settings.component.d.ts +20 -20
  453. package/lib/ulv-context-menu/ulv-context-menu.component.d.ts +31 -31
  454. package/lib/ulv-filter-settings/ulv-filter-settings.component.d.ts +19 -19
  455. package/lib/ulv-form-multi-select/ulv-form-multi-select.component.d.ts +26 -26
  456. package/lib/ulv-groupby-settings/ulv-groupby-settings.component.d.ts +16 -16
  457. package/lib/ulv-paging/ulv-paging.component.d.ts +28 -28
  458. package/lib/ulv-selection/ulv-selection.component.d.ts +43 -43
  459. package/lib/ulv-settings/ulv-settings.component.d.ts +43 -43
  460. package/lib/ulv-sort-settings/ulv-sort-settings.component.d.ts +16 -16
  461. package/lib/ulv-toolbar/ulv-toolbar.component.d.ts +49 -49
  462. package/lib/upload-file-status.pipe.d.ts +9 -9
  463. package/lib/util-chat-time-badge.pipe.d.ts +7 -0
  464. package/lib/util-date-to-hh-mm.pipe.d.ts +7 -0
  465. package/lib/wizard-layout.directive.d.ts +40 -40
  466. package/package.json +7 -13
  467. package/public-api.d.ts +226 -218
  468. package/esm2020/lib/apply-conditional-formmatings.directive.mjs +0 -89
  469. package/esm2020/lib/barsa-answer-card/barsa-answer-card.component.mjs +0 -41
  470. package/esm2020/lib/barsa-asp-viewer/barsa-asp-viewer.component.mjs +0 -127
  471. package/esm2020/lib/barsa-base-panel/barsa-base-layout-panel.component.mjs +0 -29
  472. package/esm2020/lib/barsa-card-layout-panel/barsa-card-layout-panel.component.mjs +0 -25
  473. package/esm2020/lib/barsa-card-row-payam/barsa-card-row-payam.component.mjs +0 -30
  474. package/esm2020/lib/barsa-cartable-form/barsa-cartable-form.component.mjs +0 -41
  475. package/esm2020/lib/barsa-chip/barsa-chip.component.mjs +0 -72
  476. package/esm2020/lib/barsa-custom-inline-edit/barsa-custom-inline-edit.component.mjs +0 -15
  477. package/esm2020/lib/barsa-custom-inline-edit-row/barsa-custom-inline-edit-row.component.mjs +0 -26
  478. package/esm2020/lib/barsa-date-time-picker/barsa-date-time-picker.component.mjs +0 -71
  479. package/esm2020/lib/barsa-dynamic-field/barsa-dynamic-field.component.mjs +0 -42
  480. package/esm2020/lib/barsa-enum-menu-button/barsa-enum-menu-button.component.mjs +0 -61
  481. package/esm2020/lib/barsa-field-key-value/barsa-field-key-value.component.mjs +0 -45
  482. package/esm2020/lib/barsa-form-side-content/barsa-form-side-content.component.mjs +0 -37
  483. package/esm2020/lib/barsa-grid-layout-panel/barsa-grid-layout-panel.component.mjs +0 -27
  484. package/esm2020/lib/barsa-group-cartable/barsa-cartable-group.component.mjs +0 -94
  485. package/esm2020/lib/barsa-horizontal-flex-panel/barsa-horizontal-flex-panel.component.mjs +0 -22
  486. package/esm2020/lib/barsa-linkable-items-panel/barsa-linkable-items-panel.component.mjs +0 -37
  487. package/esm2020/lib/barsa-list-file-linear/barsa-list-file-linear.component.mjs +0 -41
  488. package/esm2020/lib/barsa-list-file-linear-gmail/barsa-list-file-linear-gmail.component.mjs +0 -29
  489. package/esm2020/lib/barsa-list-layout-panel/barsa-list-layout-panel.component.mjs +0 -23
  490. package/esm2020/lib/barsa-monaco-editor/barsa-monaco-editor.component.mjs +0 -83
  491. package/esm2020/lib/barsa-network-offline/barsa-network-offline.component.mjs +0 -53
  492. package/esm2020/lib/barsa-pishnamayesh-payam/barsa-pishnamayesh-payam.component.mjs +0 -159
  493. package/esm2020/lib/barsa-question-answer-comments-section/barsa-question-answer-comments-section.component.mjs +0 -17
  494. package/esm2020/lib/barsa-question-answer-content-actions-section/barsa-question-answer-content-actions-section.component.mjs +0 -31
  495. package/esm2020/lib/barsa-question-answer-creator-time-section/barsa-question-answer-creator-time-section.component.mjs +0 -14
  496. package/esm2020/lib/barsa-question-answer-form/barsa-question-answer-form.component.mjs +0 -35
  497. package/esm2020/lib/barsa-question-answer-form-add-comment/barsa-question-answer-form-add-comment.component.mjs +0 -47
  498. package/esm2020/lib/barsa-question-answer-vote-section/barsa-question-answer-vote-section.component.mjs +0 -78
  499. package/esm2020/lib/barsa-question-post/barsa-question-post.component.mjs +0 -30
  500. package/esm2020/lib/barsa-report-card-flex-view/barsa-report-card-flex-view.component.mjs +0 -31
  501. package/esm2020/lib/barsa-report-one-of-list/barsa-report-one-of-list.component.mjs +0 -98
  502. package/esm2020/lib/barsa-sap-ui.module.mjs +0 -332
  503. package/esm2020/lib/barsa-search-form/barsa-search-form.component.mjs +0 -29
  504. package/esm2020/lib/barsa-simple-form/barsa-simple-form.component.mjs +0 -168
  505. package/esm2020/lib/barsa-table-column/barsa-table-column.component.mjs +0 -28
  506. package/esm2020/lib/barsa-table-header/barsa-table-header.component.mjs +0 -198
  507. package/esm2020/lib/barsa-table-row/barsa-table-row.component.mjs +0 -61
  508. package/esm2020/lib/barsa-tag-categories/barsa-tag-categories.component.mjs +0 -60
  509. package/esm2020/lib/barsa-tag-chip/barsa-tag-chip.component.mjs +0 -26
  510. package/esm2020/lib/barsa-tags-category-row/barsa-tags-category-row.component.mjs +0 -23
  511. package/esm2020/lib/barsa-text-ellipsis/barsa-text-ellipsis.component.mjs +0 -38
  512. package/esm2020/lib/barsa-tinyemce/barsa-tinyemce.component.mjs +0 -417
  513. package/esm2020/lib/barsa-toolbaritem-search/barsa-toolbaritem-search.component.mjs +0 -36
  514. package/esm2020/lib/barsa-tree-item/barsa-tree-item.component.mjs +0 -130
  515. package/esm2020/lib/barsa-ulv-main/barsa-ulv-main.component.mjs +0 -209
  516. package/esm2020/lib/blob-viewer/blob-viewer.component.mjs +0 -78
  517. package/esm2020/lib/breadcrumb/breadcrumb.component.mjs +0 -45
  518. package/esm2020/lib/card-item/card-item.component.mjs +0 -76
  519. package/esm2020/lib/card-view-content/card-view-content.component.mjs +0 -46
  520. package/esm2020/lib/col-renderer.directive.mjs +0 -46
  521. package/esm2020/lib/column-matrix-renderer/column-matrix-renderer.component.mjs +0 -56
  522. package/esm2020/lib/column-matrix-renderer/matrix-value.pipe.mjs +0 -60
  523. package/esm2020/lib/column-renderer/column-renderer.component.mjs +0 -85
  524. package/esm2020/lib/constants.mjs +0 -421
  525. package/esm2020/lib/custom-date-time/custom-date-time.component.mjs +0 -41
  526. package/esm2020/lib/download-files.directive.mjs +0 -33
  527. package/esm2020/lib/dynamic-page-size.pipe.mjs +0 -26
  528. package/esm2020/lib/file-viewer/file-viewer.component.mjs +0 -47
  529. package/esm2020/lib/file-viewer-popover/file-viewer-popover.component.mjs +0 -41
  530. package/esm2020/lib/form-dialog/form-dialog.component.mjs +0 -143
  531. package/esm2020/lib/form-dialog-less/form-dialog-less.component.mjs +0 -45
  532. package/esm2020/lib/form-toolbar/form-toolbar.component.mjs +0 -42
  533. package/esm2020/lib/form-toolbar-button/form-toolbar-button.component.mjs +0 -46
  534. package/esm2020/lib/form-wizard/form-wizard.component.mjs +0 -21
  535. package/esm2020/lib/fullscreen-dialog.directive.mjs +0 -59
  536. package/esm2020/lib/fullscreen-files.directive.mjs +0 -42
  537. package/esm2020/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.mjs +0 -188
  538. package/esm2020/lib/gantt-dhtml-chart-view/gantt-dhtml-chart-view.component.mjs +0 -203
  539. package/esm2020/lib/global-search-module/global-search-module.component.mjs +0 -30
  540. package/esm2020/lib/global-search-panel/global-search-panel.component.mjs +0 -25
  541. package/esm2020/lib/header-avatar/header-avatar.component.mjs +0 -19
  542. package/esm2020/lib/header-facet-progress/header-facet-progress.component.mjs +0 -26
  543. package/esm2020/lib/header-facet-rate/header-facet-rate.component.mjs +0 -26
  544. package/esm2020/lib/htree-create-new/htree-create-new.component.mjs +0 -49
  545. package/esm2020/lib/hyperlink/hyperlink.component.mjs +0 -23
  546. package/esm2020/lib/index.mjs +0 -529
  547. package/esm2020/lib/layout-actions/layout-actions.component.mjs +0 -68
  548. package/esm2020/lib/layout-control/layout-control.component.mjs +0 -234
  549. package/esm2020/lib/layout-wizard/layout-wizard.component.mjs +0 -155
  550. package/esm2020/lib/list-item/list-item.component.mjs +0 -33
  551. package/esm2020/lib/ly-empty-space/ly-empty-space.component.mjs +0 -42
  552. package/esm2020/lib/ly-horizontal-layout/ly-horizontal-layout.component.mjs +0 -71
  553. package/esm2020/lib/ly-label/ly-label.component.mjs +0 -35
  554. package/esm2020/lib/ly-layout-container/ly-layout-container.component.mjs +0 -83
  555. package/esm2020/lib/ly-layout-container-of-root/ly-layout-container-of-root.component.mjs +0 -17
  556. package/esm2020/lib/ly-layout-panel/ly-layout-panel.component.mjs +0 -73
  557. package/esm2020/lib/ly-line/ly-line.component.mjs +0 -56
  558. package/esm2020/lib/ly-simple-label/ly-simple-label.component.mjs +0 -23
  559. package/esm2020/lib/ly-tab-container/ly-tab-container.component.mjs +0 -52
  560. package/esm2020/lib/ly-tab-page/ly-tab-page.component.mjs +0 -44
  561. package/esm2020/lib/ly-vertical-layout/ly-vertical-layout.component.mjs +0 -50
  562. package/esm2020/lib/manage-filters-report/manage-filters-report.component.mjs +0 -45
  563. package/esm2020/lib/message-strip/message-strip.component.mjs +0 -28
  564. package/esm2020/lib/models/grid-data-provider.mjs +0 -83
  565. package/esm2020/lib/models/grid-view.mjs +0 -2
  566. package/esm2020/lib/no-data/no-data.component.mjs +0 -23
  567. package/esm2020/lib/notification-item/notification-item.component.mjs +0 -57
  568. package/esm2020/lib/notification-popup.service.mjs +0 -88
  569. package/esm2020/lib/report-navigator/report-navigator.component.mjs +0 -63
  570. package/esm2020/lib/report-new-top-form/report-new-top-form.component.mjs +0 -60
  571. package/esm2020/lib/report-search-fields-hidden-settings/report-search-fields-hidden-settings.component.mjs +0 -35
  572. package/esm2020/lib/report-search-fields-manage/report-search-fields-manage.component.mjs +0 -98
  573. package/esm2020/lib/report-search-panel-save/report-search-panel-save.component.mjs +0 -90
  574. package/esm2020/lib/report-tree-base.mjs +0 -408
  575. package/esm2020/lib/report-view-renderer.directive.mjs +0 -366
  576. package/esm2020/lib/responsive-toolbar/responsive-toolbar.component.mjs +0 -50
  577. package/esm2020/lib/responsive-toolbar-renderer/responsive-toolbar-renderer.component.mjs +0 -84
  578. package/esm2020/lib/rich-text-static/rich-text-static.component.mjs +0 -72
  579. package/esm2020/lib/sap-font-class.pipe.mjs +0 -29
  580. package/esm2020/lib/sap-font.pipe.mjs +0 -29
  581. package/esm2020/lib/sap-size.pipe.mjs +0 -27
  582. package/esm2020/lib/sap-ui-report-base.component.mjs +0 -766
  583. package/esm2020/lib/search-panel/search-panel.component.mjs +0 -43
  584. package/esm2020/lib/ui-button/ui-button.component.mjs +0 -31
  585. package/esm2020/lib/ui-calendar/ui-calendar.component.mjs +0 -53
  586. package/esm2020/lib/ui-card-view/ui-card-view.component.mjs +0 -60
  587. package/esm2020/lib/ui-card-view-horizontal-group/ui-card-view-horizontal-group.component.mjs +0 -43
  588. package/esm2020/lib/ui-check-box/ui-check-box.component.mjs +0 -34
  589. package/esm2020/lib/ui-color-ui/ui-color-ui.component.mjs +0 -50
  590. package/esm2020/lib/ui-container-with-button/ui-container-with-button.component.mjs +0 -34
  591. package/esm2020/lib/ui-date-range-ex/ui-date-range-ex.component.mjs +0 -194
  592. package/esm2020/lib/ui-date-time/ui-date-time.component.mjs +0 -150
  593. package/esm2020/lib/ui-editable-grid/ui-editable-grid.component.mjs +0 -110
  594. package/esm2020/lib/ui-exception-form/ui-exception-form.component.mjs +0 -53
  595. package/esm2020/lib/ui-file-linear-list-box/ui-file-linear-list-box.component.mjs +0 -121
  596. package/esm2020/lib/ui-form-panel/ui-form-panel.component.mjs +0 -92
  597. package/esm2020/lib/ui-grid-columns/ui-grid-columns.component.mjs +0 -44
  598. package/esm2020/lib/ui-grid-filter-item/ui-grid-filter-item.component.mjs +0 -67
  599. package/esm2020/lib/ui-grid-filter-settings/ui-grid-filter-settings.component.mjs +0 -76
  600. package/esm2020/lib/ui-grid-sort-item/ui-grid-sort-item.component.mjs +0 -59
  601. package/esm2020/lib/ui-grid-sort-setting/ui-grid-sort-setting.component.mjs +0 -156
  602. package/esm2020/lib/ui-linear-list-container-with-button/ui-linear-list-container-with-button.component.mjs +0 -349
  603. package/esm2020/lib/ui-list-view/ui-list-view.component.mjs +0 -75
  604. package/esm2020/lib/ui-matrix-view/ui-matrix-view.component.mjs +0 -125
  605. package/esm2020/lib/ui-mo-info-combo-viewer/ui-mo-info-combo-viewer.component.mjs +0 -19
  606. package/esm2020/lib/ui-mo-info-sub-form-ui/ui-mo-info-sub-form-ui.component.mjs +0 -56
  607. package/esm2020/lib/ui-mo-info-ulv-combo/ui-mo-info-ulv-combo.component.mjs +0 -409
  608. package/esm2020/lib/ui-monaco-editor/ui-monaco-editor.component.mjs +0 -18
  609. package/esm2020/lib/ui-multi-select-card/ui-multi-select-card.component.mjs +0 -37
  610. package/esm2020/lib/ui-multi-select-checkbox/ui-multi-select-checkbox.component.mjs +0 -59
  611. package/esm2020/lib/ui-multi-select-combo/ui-multi-select-combo.component.mjs +0 -93
  612. package/esm2020/lib/ui-multi-select-radio/ui-multi-select-radio.component.mjs +0 -36
  613. package/esm2020/lib/ui-multi-select-slider/ui-multi-select-slider.component.mjs +0 -56
  614. package/esm2020/lib/ui-multi-select-smile/ui-multi-select-smile.component.mjs +0 -28
  615. package/esm2020/lib/ui-num-decimal-ui/ui-num-decimal-ui.component.mjs +0 -24
  616. package/esm2020/lib/ui-num-int-slider/ui-num-int-slider.component.mjs +0 -27
  617. package/esm2020/lib/ui-pdf-viewer/ui-pdf-viewer.component.mjs +0 -262
  618. package/esm2020/lib/ui-picture-file/ui-picture-file.component.mjs +0 -91
  619. package/esm2020/lib/ui-pictures-info/ui-pictures-info.component.mjs +0 -223
  620. package/esm2020/lib/ui-radio-group/ui-radio-group.component.mjs +0 -48
  621. package/esm2020/lib/ui-read-only-field/ui-read-only-field.component.mjs +0 -36
  622. package/esm2020/lib/ui-report-container/ui-report-container.component.mjs +0 -46
  623. package/esm2020/lib/ui-simple-combo/ui-simple-combo.component.mjs +0 -37
  624. package/esm2020/lib/ui-switch-button/ui-switch-button.component.mjs +0 -20
  625. package/esm2020/lib/ui-table-view/ui-table-view.component.mjs +0 -151
  626. package/esm2020/lib/ui-text-area/ui-text-area.component.mjs +0 -49
  627. package/esm2020/lib/ui-text-field/ui-text-field.component.mjs +0 -52
  628. package/esm2020/lib/ui-tinymce/ui-tinymce.component.mjs +0 -53
  629. package/esm2020/lib/ui-tree/ui-tree.component.mjs +0 -92
  630. package/esm2020/lib/ui-tree-view/ui-tree-view.component.mjs +0 -81
  631. package/esm2020/lib/ui-ulv-form-multi-select-ui/ui-ulv-form-multi-select-ui.component.mjs +0 -24
  632. package/esm2020/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.mjs +0 -289
  633. package/esm2020/lib/ui-workflow-panel-ui/ui-workflow-panel-ui.component.mjs +0 -26
  634. package/esm2020/lib/ul-loading-mask-ui/ul-loading-mask-ui.component.mjs +0 -91
  635. package/esm2020/lib/ul-msg-box-adapter/ul-msg-box-adapter.component.mjs +0 -117
  636. package/esm2020/lib/ul-notify-popup/ul-notify-popup.component.mjs +0 -32
  637. package/esm2020/lib/ul-toast-adapter/ul-toast-adapter.component.mjs +0 -44
  638. package/esm2020/lib/ulv-column-settings/ulv-column-settings.component.mjs +0 -60
  639. package/esm2020/lib/ulv-context-menu/ulv-context-menu.component.mjs +0 -87
  640. package/esm2020/lib/ulv-filter-settings/ulv-filter-settings.component.mjs +0 -43
  641. package/esm2020/lib/ulv-form-multi-select/ulv-form-multi-select.component.mjs +0 -185
  642. package/esm2020/lib/ulv-groupby-settings/ulv-groupby-settings.component.mjs +0 -44
  643. package/esm2020/lib/ulv-paging/ulv-paging.component.mjs +0 -84
  644. package/esm2020/lib/ulv-selection/ulv-selection.component.mjs +0 -66
  645. package/esm2020/lib/ulv-settings/ulv-settings.component.mjs +0 -117
  646. package/esm2020/lib/ulv-sort-settings/ulv-sort-settings.component.mjs +0 -44
  647. package/esm2020/lib/ulv-toolbar/ulv-toolbar.component.mjs +0 -115
  648. package/esm2020/lib/upload-file-status.pipe.mjs +0 -28
  649. package/fesm2015/barsa-sap-ui.mjs +0 -14213
  650. package/fesm2015/barsa-sap-ui.mjs.map +0 -1
  651. package/fesm2020/barsa-sap-ui.mjs +0 -14183
  652. package/fesm2020/barsa-sap-ui.mjs.map +0 -1
@@ -1,194 +0,0 @@
1
- import { Component, ViewChild, ChangeDetectionStrategy } from '@angular/core';
2
- import { FieldBaseComponent, BarsaApi, DateService, DateShamsiService, LogService, DateMiladiService, DateHijriService, DateRanges } from 'barsa-novin-ray-core';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- import * as i2 from "@angular/forms";
6
- import * as i3 from "@fundamental-ngx/core/button";
7
- import * as i4 from "@fundamental-ngx/core/input-group";
8
- import * as i5 from "@fundamental-ngx/core/list";
9
- import * as i6 from "@fundamental-ngx/core/popover";
10
- import * as i7 from "barsa-novin-ray-core";
11
- function getDateService(logService) {
12
- const culture = BarsaApi.LoginFormData.Culture;
13
- switch (culture) {
14
- case 'fa-IR':
15
- return new DateShamsiService(logService);
16
- case 'ar-AE':
17
- return new DateHijriService(logService);
18
- default:
19
- return new DateMiladiService(logService);
20
- }
21
- }
22
- export class UiDateRangeExComponent extends FieldBaseComponent {
23
- constructor() {
24
- super(...arguments);
25
- this.valueStr = '';
26
- this.value = new BarsaApi.Common.DateRangeData();
27
- this.dateRanges = DateRanges;
28
- }
29
- get _isValidPopover() {
30
- const mode = this.value.DateRangeType;
31
- return /Week|Day|Today|Range/.test(mode) && this.valueStr !== '';
32
- }
33
- ngOnInit() {
34
- super.ngOnInit();
35
- if (!this.value) {
36
- this.context.value = this.value = this._defaultValue(this.value);
37
- }
38
- this._decorateDateRangePicker();
39
- }
40
- onDateRangeTypeChange(dateRangeType) {
41
- this._setValueStr(dateRangeType.replace('DateR_', ''));
42
- this.valueChange.emit(this.value);
43
- }
44
- onDateRangeChange() {
45
- const el = this.dateRangePicker.nativeElement;
46
- this.value.FirstDate = el.firstDateValue;
47
- this.value.SecondDate = el.lastDateValue;
48
- this.valueChange.emit(this.value);
49
- const firstDateStr = this._dateService.getDateString(this.value.FirstDate, true, false);
50
- const secondDateStr = this._dateService.getDateString(this.value.SecondDate, true, false);
51
- this.valueStr = firstDateStr + ' تا ' + secondDateStr;
52
- }
53
- onOpenPopover() {
54
- if (this._isValidPopover && this._isValidPopover) {
55
- this.popover.open();
56
- }
57
- }
58
- _setValue(value) {
59
- if (!value) {
60
- this.context.value = value = this._defaultValue(value);
61
- }
62
- this._setValueStr(value.DateRangeType);
63
- super._setValue(value);
64
- }
65
- _defaultValue(value) {
66
- if (!value) {
67
- value = {
68
- DateRangeType: 'None'
69
- };
70
- }
71
- return value;
72
- }
73
- _setValueStr(dateRangeType) {
74
- this.value.DateRangeType = dateRangeType;
75
- switch (dateRangeType) {
76
- case 'SpecificRange':
77
- this.valueStr = '';
78
- this._decorateDateRangePicker();
79
- return;
80
- case 'DaysBefore':
81
- this.valueStr = this._getDaysBefore();
82
- break;
83
- case 'Today':
84
- this.valueStr = this._getToday();
85
- break;
86
- case 'DaysAfter':
87
- this.valueStr = this._getDaysAfter();
88
- break;
89
- case 'PrevWeek':
90
- this.valueStr = this._getPrevWeek();
91
- break;
92
- case 'ThisWeek':
93
- this.valueStr = this._getThisWeek();
94
- break;
95
- case 'NextWeek':
96
- this.valueStr = this._getNextWeek();
97
- break;
98
- case 'PrevMonth':
99
- this.valueStr = this._getPrevMonth();
100
- break;
101
- case 'ThisMonth':
102
- this.valueStr = this._getThisMonth();
103
- break;
104
- case 'NextMonth':
105
- this.valueStr = this._getNextMonth();
106
- break;
107
- case 'PrevYear':
108
- this.valueStr = this._getPrevYear();
109
- break;
110
- case 'ThisYear':
111
- this.valueStr = this._getThisYear();
112
- break;
113
- case 'NextYear':
114
- this.valueStr = this._getNextYear();
115
- break;
116
- default:
117
- this.valueStr = BarsaApi.BBB.DateR_None;
118
- this._decorateDateRangePicker();
119
- }
120
- }
121
- _getToday() {
122
- return BarsaApi.BBB.DateR_Today + ': ' + this._dateService.getDayStr('Today');
123
- }
124
- _getThisWeek() {
125
- return BarsaApi.BBB.DateR_ThisWeek + ': ' + this._dateService.getWeekStr('ThisWeek');
126
- }
127
- _getThisMonth() {
128
- return BarsaApi.BBB.DateR_ThisMonth + ': ' + this._dateService.getMonthStr('ThisMonth');
129
- }
130
- _getThisYear() {
131
- return BarsaApi.BBB.DateR_ThisYear + ': ' + this._dateService.getYearStr('ThisYear');
132
- }
133
- _getDaysBefore() {
134
- return BarsaApi.BBB.DateR_DaysBefore + ': ' + this._dateService.getDayStr('DaysBefore');
135
- }
136
- _getPrevWeek() {
137
- return BarsaApi.BBB.DateR_PrevWeek + ': ' + this._dateService.getWeekStr('PrevWeek');
138
- }
139
- _getPrevMonth() {
140
- return BarsaApi.BBB.DateR_PrevMonth + ': ' + this._dateService.getMonthStr('PrevMonth');
141
- }
142
- _getPrevYear() {
143
- return BarsaApi.BBB.DateR_PrevYear + ': ' + this._dateService.getYearStr('PrevYear');
144
- }
145
- _getDaysAfter() {
146
- return BarsaApi.BBB.DateR_DaysAfter + ': ' + this._dateService.getDayStr('DaysAfter');
147
- }
148
- _getNextWeek() {
149
- return BarsaApi.BBB.DateR_NextWeek + ': ' + this._dateService.getWeekStr('NextWeek');
150
- }
151
- _getNextMonth() {
152
- return BarsaApi.BBB.DateR_NextMonth + ': ' + this._dateService.getMonthStr('NextMonth');
153
- }
154
- _getNextYear() {
155
- return BarsaApi.BBB.DateR_NextYear + ': ' + this._dateService.getYearStr('NextYear');
156
- }
157
- _decorateDateRangePicker() {
158
- setTimeout(() => {
159
- const elDateRangePicker = this.dateRangePicker?.nativeElement;
160
- if (elDateRangePicker) {
161
- const ui5InputEl = elDateRangePicker.shadowRoot?.querySelector('.ui5-date-picker-input');
162
- this._renderer2.setAttribute(ui5InputEl, 'style', 'border-top-left-radius: 0; border-bottom-left-radius: 0');
163
- }
164
- }, 500);
165
- }
166
- }
167
- UiDateRangeExComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UiDateRangeExComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
168
- UiDateRangeExComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: UiDateRangeExComponent, selector: "bsu-ui-date-range-ex", providers: [
169
- {
170
- provide: DateService,
171
- useFactory: getDateService,
172
- deps: [LogService]
173
- }
174
- ], viewQueries: [{ propertyName: "dateRangePicker", first: true, predicate: ["dateRangePicker"], descendants: true }, { propertyName: "popover", first: true, predicate: ["popover"], descendants: true, static: true }, { propertyName: "alert", first: true, predicate: ["alert"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"value?.DateRangeType === 'SpecificRange'; else input\">\r\n <div class=\"input-container\">\r\n <ui5-daterange-picker\r\n id=\"mydaterange-picker1\"\r\n (mouseover)=\"onOpenPopover()\"\r\n (mouseleave)=\"popover.close()\"\r\n #dateRangePicker\r\n (change)=\"onDateRangeChange()\"\r\n format-pattern=\"yyyy/MM/dd\"\r\n [attr.readonly]=\"(readonly$ | async) === true ? true : null\"\r\n [attr.disabled]=\"(disable$ | async) === true ? true : null\"\r\n [primaryCalendarType]=\"Setting.CalendarType !== 'Gregorian' ? 'Persian' : Setting.CalendarType\"\r\n >\r\n </ui5-daterange-picker>\r\n <button\r\n class=\"btn-drop-down\"\r\n fd-button\r\n [fdType]=\"'standard'\"\r\n [glyph]=\"'slim-arrow-down'\"\r\n (click)=\"popover.open()\"\r\n ></button>\r\n </div>\r\n</ng-container>\r\n<ng-template #input>\r\n <!-- <input fd-form-control [(ngModel)]=\"valueStr\" [fd-inline-help]=\"valueStr\" [readOnly]=\"true\" /> -->\r\n\r\n <fd-input-group\r\n placement=\"after\"\r\n glyph=\"slim-arrow-down\"\r\n glyphAriaLabel=\"Select Date Range\"\r\n [button]=\"true\"\r\n [ngModel]=\"valueStr\"\r\n (addOnButtonClicked)=\"popover.open()\"\r\n >\r\n </fd-input-group>\r\n</ng-template>\r\n\r\n<!-- <button fd-button>\r\n <fd-select (valueChange)=\"onDateRangeTypeChange($event)\">\r\n <fd-option *ngFor=\"let option of dateRanges\" [value]=\"option\">{{ option | bbbTranslate }}</fd-option>\r\n </fd-select>\r\n</button> -->\r\n\r\n<fd-popover\r\n #popover\r\n style=\"display: block\"\r\n [fillControlMode]=\"'at-least'\"\r\n placement=\"bottom-start\"\r\n [(isOpen)]=\"isOpenPopover\"\r\n>\r\n <fd-popover-body>\r\n <ul fd-list>\r\n <li fd-list-item *ngFor=\"let option of dateRanges\" (click)=\"popover.close(); onDateRangeTypeChange(option)\">\r\n <a fd-list-link>\r\n <span fd-list-title>{{ option | bbbTranslate }}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </fd-popover-body>\r\n</fd-popover>\r\n", styles: [":host{display:block}:host input{border-top-left-radius:0;border-left:none;border-bottom-left-radius:0}:host .input-container{width:100%;display:flex;align-items:center}:host .input-container ui5-daterange-picker{padding:3px 0;min-width:2rem;width:100%;flex-grow:1}.btn-drop-down{border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;background-color:var(--sapField_ReadOnly_Background);border-color:var(--sapField_ReadOnly_BorderColor)}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i4.InputGroupComponent, selector: "fd-input-group", inputs: ["inputTemplate", "placement", "required", "inline", "placeholder", "addOnText", "buttonFocusable", "type", "glyph", "button", "disabled", "readonly", "state", "isControl", "showFocus", "isExpanded", "glyphAriaLabel", "iconTitle", "ariaLabelledby", "ariaLabelledBy"], outputs: ["addOnButtonClicked", "search"] }, { kind: "component", type: i5.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline"], outputs: ["focusEscapeList"] }, { kind: "component", type: i5.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "ariaDescribedBy", "noData", "action", "interactive", "growing", "counter", "unread", "selectedListItemScreenReaderText", "navigatedListItemScreenReaderText", "navigatableListItemScreenReaderText"], outputs: ["keyDown"] }, { kind: "directive", type: i5.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i5.ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated"] }, { kind: "component", type: i6.PopoverBodyComponent, selector: "fd-popover-body" }, { kind: "component", type: i6.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
175
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UiDateRangeExComponent, decorators: [{
176
- type: Component,
177
- args: [{ selector: 'bsu-ui-date-range-ex', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
178
- {
179
- provide: DateService,
180
- useFactory: getDateService,
181
- deps: [LogService]
182
- }
183
- ], template: "<ng-container *ngIf=\"value?.DateRangeType === 'SpecificRange'; else input\">\r\n <div class=\"input-container\">\r\n <ui5-daterange-picker\r\n id=\"mydaterange-picker1\"\r\n (mouseover)=\"onOpenPopover()\"\r\n (mouseleave)=\"popover.close()\"\r\n #dateRangePicker\r\n (change)=\"onDateRangeChange()\"\r\n format-pattern=\"yyyy/MM/dd\"\r\n [attr.readonly]=\"(readonly$ | async) === true ? true : null\"\r\n [attr.disabled]=\"(disable$ | async) === true ? true : null\"\r\n [primaryCalendarType]=\"Setting.CalendarType !== 'Gregorian' ? 'Persian' : Setting.CalendarType\"\r\n >\r\n </ui5-daterange-picker>\r\n <button\r\n class=\"btn-drop-down\"\r\n fd-button\r\n [fdType]=\"'standard'\"\r\n [glyph]=\"'slim-arrow-down'\"\r\n (click)=\"popover.open()\"\r\n ></button>\r\n </div>\r\n</ng-container>\r\n<ng-template #input>\r\n <!-- <input fd-form-control [(ngModel)]=\"valueStr\" [fd-inline-help]=\"valueStr\" [readOnly]=\"true\" /> -->\r\n\r\n <fd-input-group\r\n placement=\"after\"\r\n glyph=\"slim-arrow-down\"\r\n glyphAriaLabel=\"Select Date Range\"\r\n [button]=\"true\"\r\n [ngModel]=\"valueStr\"\r\n (addOnButtonClicked)=\"popover.open()\"\r\n >\r\n </fd-input-group>\r\n</ng-template>\r\n\r\n<!-- <button fd-button>\r\n <fd-select (valueChange)=\"onDateRangeTypeChange($event)\">\r\n <fd-option *ngFor=\"let option of dateRanges\" [value]=\"option\">{{ option | bbbTranslate }}</fd-option>\r\n </fd-select>\r\n</button> -->\r\n\r\n<fd-popover\r\n #popover\r\n style=\"display: block\"\r\n [fillControlMode]=\"'at-least'\"\r\n placement=\"bottom-start\"\r\n [(isOpen)]=\"isOpenPopover\"\r\n>\r\n <fd-popover-body>\r\n <ul fd-list>\r\n <li fd-list-item *ngFor=\"let option of dateRanges\" (click)=\"popover.close(); onDateRangeTypeChange(option)\">\r\n <a fd-list-link>\r\n <span fd-list-title>{{ option | bbbTranslate }}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </fd-popover-body>\r\n</fd-popover>\r\n", styles: [":host{display:block}:host input{border-top-left-radius:0;border-left:none;border-bottom-left-radius:0}:host .input-container{width:100%;display:flex;align-items:center}:host .input-container ui5-daterange-picker{padding:3px 0;min-width:2rem;width:100%;flex-grow:1}.btn-drop-down{border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;background-color:var(--sapField_ReadOnly_Background);border-color:var(--sapField_ReadOnly_BorderColor)}\n"] }]
184
- }], propDecorators: { dateRangePicker: [{
185
- type: ViewChild,
186
- args: ['dateRangePicker']
187
- }], popover: [{
188
- type: ViewChild,
189
- args: ['popover', { static: true }]
190
- }], alert: [{
191
- type: ViewChild,
192
- args: ['alert']
193
- }] } });
194
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktZGF0ZS1yYW5nZS1leC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi91aS1kYXRlLXJhbmdlLWV4L3VpLWRhdGUtcmFuZ2UtZXguY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktZGF0ZS1yYW5nZS1leC91aS1kYXRlLXJhbmdlLWV4LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsU0FBUyxFQUFVLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxHLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsUUFBUSxFQUNSLFdBQVcsRUFDWCxpQkFBaUIsRUFDakIsVUFBVSxFQUNWLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsVUFBVSxFQUNiLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7OztBQUc5QixTQUFTLGNBQWMsQ0FBQyxVQUFzQjtJQUMxQyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQztJQUMvQyxRQUFRLE9BQU8sRUFBRTtRQUNiLEtBQUssT0FBTztZQUNSLE9BQU8sSUFBSSxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM3QyxLQUFLLE9BQU87WUFDUixPQUFPLElBQUksZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDNUM7WUFDSSxPQUFPLElBQUksaUJBQWlCLENBQUMsVUFBVSxDQUFDLENBQUM7S0FDaEQ7QUFDTCxDQUFDO0FBZUQsTUFBTSxPQUFPLHNCQUF1QixTQUFRLGtCQUFrQjtJQWI5RDs7UUFrQkksYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLFVBQUssR0FBUSxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDakQsZUFBVSxH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QUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3RDLE1BQU07WUFDVixLQUFLLE9BQU87Z0JBQ1IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ2pDLE1BQU07WUFDVixLQUFLLFdBQVc7Z0JBQ1osSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3JDLE1BQU07WUFDVixLQUFLLFVBQVU7Z0JBQ1gsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ3BDLE1BQU07WUFDVixLQUFLLFVBQVU7Z0JBQ1gsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ3BDLE1BQU07WUFDVixLQUFLLFVBQVU7Z0JBQ1gsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ3BDLE1BQU07WUFDVixLQUFLLFdBQVc7Z0JBQ1osSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3JDLE1BQU07WUFDVixLQUFLLFdBQVc7Z0JBQ1osSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3JDLE1BQU07WUFDVixLQUFLLFdBQVc7Z0JBQ1osSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3JDLE1BQU07WUFDVixLQUFLLFVBQVU7Z0JBQ1gsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ3BDLE1BQU07WUFDVixLQUFLLFVBQVU7Z0JBQ1gsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ3BDLE1BQU07WUFDVixLQUFLLFVBQVU7Z0JBQ1gsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ3BDLE1BQU07WUFDVjtnQkFDSSxJ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QUNaLENBQUM7O21IQXRLUSxzQkFBc0I7dUdBQXRCLHNCQUFzQiwrQ0FScEI7UUFDUDtZQUNJLE9BQU8sRUFBRSxXQUFXO1lBQ3BCLFVBQVUsRUFBRSxjQUFjO1lBQzFCLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQztTQUNyQjtLQUNKLHlWQ3JDTCxxdUVBNERBOzJGRHJCYSxzQkFBc0I7a0JBYmxDLFNBQVM7K0JBQ0ksc0JBQXNCLG1CQUdmLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLFdBQVc7NEJBQ3BCLFVBQVUsRUFBRSxjQUFjOzRCQUMxQixJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUM7eUJBQ3JCO3FCQUNKOzhCQUc2QixlQUFlO3NCQUE1QyxTQUFTO3VCQUFDLGlCQUFpQjtnQkFDWSxPQUFPO3NCQUE5QyxTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ2xCLEtBQUs7c0JBQXhCLFNBQVM7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgVmlld0NoaWxkLCBPbkluaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQge1xyXG4gICAgRmllbGRCYXNlQ29tcG9uZW50LFxyXG4gICAgQmFyc2FBcGksXHJcbiAgICBEYXRlU2VydmljZSxcclxuICAgIERhdGVTaGFtc2lTZXJ2aWNlLFxyXG4gICAgTG9nU2VydmljZSxcclxuICAgIERhdGVNaWxhZGlTZXJ2aWNlLFxyXG4gICAgRGF0ZUhpanJpU2VydmljZSxcclxuICAgIERhdGVSYW5nZXNcclxufSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcbmltcG9ydCB7IEFsZXJ0Q29tcG9uZW50LCBQb3BvdmVyQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcclxuXHJcbmZ1bmN0aW9uIGdldERhdGVTZXJ2aWNlKGxvZ1NlcnZpY2U6IExvZ1NlcnZpY2UpOiBEYXRlU2VydmljZSB7XHJcbiAgICBjb25zdCBjdWx0dXJlID0gQmFyc2FBcGkuTG9naW5Gb3JtRGF0YS5DdWx0dXJlO1xyXG4gICAgc3dpdGNoIChjdWx0dXJlKSB7XHJcbiAgICAgICAgY2FzZSAnZmEtSVInOlxyXG4gICAgICAgICAgICByZXR1cm4gbmV3IERhdGVTaGFtc2lTZXJ2aWNlKGxvZ1NlcnZpY2UpO1xyXG4gICAgICAgIGNhc2UgJ2FyLUFFJzpcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlSGlqcmlTZXJ2aWNlKGxvZ1NlcnZpY2UpO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZU1pbGFkaVNlcnZpY2UobG9nU2VydmljZSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtdWktZGF0ZS1yYW5nZS1leCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vdWktZGF0ZS1yYW5nZS1leC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi91aS1kYXRlLXJhbmdlLWV4LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcHJvdmlkZTogRGF0ZVNlcnZpY2UsXHJcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IGdldERhdGVTZXJ2aWNlLFxyXG4gICAgICAgICAgICBkZXBzOiBbTG9nU2VydmljZV1cclxuICAgICAgICB9XHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVaURhdGVSYW5nZUV4Q29tcG9uZW50IGV4dGVuZHMgRmllbGRCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBWaWV3Q2hpbGQoJ2RhdGVSYW5nZVBpY2tlcicpIGRhdGVSYW5nZVBpY2tlcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcbiAgICBAVmlld0NoaWxkKCdwb3BvdmVyJywgeyBzdGF0aWM6IHRydWUgfSkgcG9wb3ZlcjogUG9wb3ZlckNvbXBvbmVudDtcclxuICAgIEBWaWV3Q2hpbGQoJ2FsZXJ0JykgYWxlcnQ6IEFsZXJ0Q29tcG9uZW50O1xyXG5cclxuICAgIHZhbHVlU3RyID0gJyc7XHJcbiAgICB2YWx1ZTogYW55ID0gbmV3IEJhcnNhQXBpLkNvbW1vbi5EYXRlUmFuZ2VEYXRhKCk7XHJcbiAgICBkYXRlUmFuZ2VzID0gRGF0ZVJhbmdlcztcclxuICAgIGlzT3BlblBvcG92ZXI6IGJvb2xlYW47XHJcblxyXG4gICAgZ2V0IF9pc1ZhbGlkUG9wb3ZlcigpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCBtb2RlID0gdGhpcy52YWx1ZS5EYXRlUmFuZ2VUeXBlO1xyXG4gICAgICAgIHJldHVybiAvV2Vla3xEYXl8VG9kYXl8UmFuZ2UvLnRlc3QobW9kZSkgJiYgdGhpcy52YWx1ZVN0ciAhPT0gJyc7XHJcbiAgICB9XHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgICAgIGlmICghdGhpcy52YWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRleHQudmFsdWUgPSB0aGlzLnZhbHVlID0gdGhpcy5fZGVmYXVsdFZhbHVlKHRoaXMudmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9kZWNvcmF0ZURhdGVSYW5nZVBpY2tlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uRGF0ZVJhbmdlVHlwZUNoYW5nZShkYXRlUmFuZ2VUeXBlKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fc2V0VmFsdWVTdHIoZGF0ZVJhbmdlVHlwZS5yZXBsYWNlKCdEYXRlUl8nLCAnJykpO1xyXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcclxuICAgIH1cclxuICAgIG9uRGF0ZVJhbmdlQ2hhbmdlKCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGVsOiBhbnkgPSB0aGlzLmRhdGVSYW5nZVBpY2tlci5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgIHRoaXMudmFsdWUuRmlyc3REYXRlID0gZWwuZmlyc3REYXRlVmFsdWU7XHJcbiAgICAgICAgdGhpcy52YWx1ZS5TZWNvbmREYXRlID0gZWwubGFzdERhdGVWYWx1ZTtcclxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XHJcbiAgICAgICAgY29uc3QgZmlyc3REYXRlU3RyID0gdGhpcy5fZGF0ZVNlcnZpY2UuZ2V0RGF0ZVN0cmluZyh0aGlzLnZhbHVlLkZpcnN0RGF0ZSwgdHJ1ZSwgZmFsc2UpO1xyXG4gICAgICAgIGNvbnN0IHNlY29uZERhdGVTdHIgPSB0aGlzLl9kYXRlU2VydmljZS5nZXREYXRlU3RyaW5nKHRoaXMudmFsdWUuU2Vjb25kRGF0ZSwgdHJ1ZSwgZmFsc2UpO1xyXG4gICAgICAgIHRoaXMudmFsdWVTdHIgPSBmaXJzdERhdGVTdHIgKyAnINiq2KcgJyArIHNlY29uZERhdGVTdHI7XHJcbiAgICB9XHJcblxyXG4gICAgb25PcGVuUG9wb3ZlcigpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5faXNWYWxpZFBvcG92ZXIgJiYgdGhpcy5faXNWYWxpZFBvcG92ZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5wb3BvdmVyLm9wZW4oKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIF9zZXRWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRleHQudmFsdWUgPSB2YWx1ZSA9IHRoaXMuX2RlZmF1bHRWYWx1ZSh2YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX3NldFZhbHVlU3RyKHZhbHVlLkRhdGVSYW5nZVR5cGUpO1xyXG4gICAgICAgIHN1cGVyLl9zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIF9kZWZhdWx0VmFsdWUodmFsdWUpOiBhbnkge1xyXG4gICAgICAgIGlmICghdmFsdWUpIHtcclxuICAgICAgICAgICAgdmFsdWUgPSB7XHJcbiAgICAgICAgICAgICAgICBEYXRlUmFuZ2VUeXBlOiAnTm9uZSdcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfc2V0VmFsdWVTdHIoZGF0ZVJhbmdlVHlwZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy52YWx1ZS5EYXRlUmFuZ2VUeXBlID0gZGF0ZVJhbmdlVHlwZTtcclxuICAgICAgICBzd2l0Y2ggKGRhdGVSYW5nZVR5cGUpIHtcclxuICAgICAgICAgICAgY2FzZSAnU3BlY2lmaWNSYW5nZSc6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlU3RyID0gJyc7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9kZWNvcmF0ZURhdGVSYW5nZVBpY2tlcigpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICBjYXNlICdEYXlzQmVmb3JlJzpcclxuICAgICAgICAgICAgICAgIHRoaXMudmFsdWVTdHIgPSB0aGlzLl9nZXREYXlzQmVmb3JlKCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnVG9kYXknOlxyXG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZVN0ciA9IHRoaXMuX2dldFRvZGF5KCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnRGF5c0FmdGVyJzpcclxuICAgICAgICAgICAgICAgIHRoaXMudmFsdWVTdHIgPSB0aGlzLl9nZXREYXlzQWZ0ZXIoKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdQcmV2V2Vlayc6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlU3RyID0gdGhpcy5fZ2V0UHJldldlZWsoKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdUaGlzV2Vlayc6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlU3RyID0gdGhpcy5fZ2V0VGhpc1dlZWsoKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdOZXh0V2Vlayc6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlU3RyID0gdGhpcy5fZ2V0TmV4dFdlZWsoKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdQcmV2TW9udGgnOlxyXG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZVN0ciA9IHRoaXMuX2dldFByZXZNb250aCgpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ1RoaXNNb250aCc6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlU3RyID0gdGhpcy5fZ2V0VGhpc01vbnRoKCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnTmV4dE1vbnRoJzpcclxuICAgICAgICAgICAgICAgIHRoaXMudmFsdWVTdHIgPSB0aGlzLl9nZXROZXh0TW9udGgoKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdQcmV2WWVhcic6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlU3RyID0gdGhpcy5fZ2V0UHJldlllYXIoKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdUaGlzWWVhcic6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlU3RyID0gdGhpcy5fZ2V0VGhpc1llYXIoKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdOZXh0WWVhcic6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlU3RyID0gdGhpcy5fZ2V0TmV4dFllYXIoKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZVN0ciA9IEJhcnNhQXBpLkJCQi5EYXRlUl9Ob25lO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZGVjb3JhdGVEYXRlUmFuZ2VQaWNrZXIoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfZ2V0VG9kYXkoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gQmFyc2FBcGkuQkJCLkRhdGVSX1RvZGF5ICsgJzogJyArIHRoaXMuX2RhdGVTZXJ2aWNlLmdldERheVN0cignVG9kYXknKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9nZXRUaGlzV2VlaygpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBCYXJzYUFwaS5CQkIuRGF0ZVJfVGhpc1dlZWsgKyAnOiAnICsgdGhpcy5fZGF0ZVNlcnZpY2UuZ2V0V2Vla1N0cignVGhpc1dlZWsnKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9nZXRUaGlzTW9udGgoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gQmFyc2FBcGkuQkJCLkRhdGVSX1RoaXNNb250aCArICc6ICcgKyB0aGlzLl9kYXRlU2VydmljZS5nZXRNb250aFN0cignVGhpc01vbnRoJyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfZ2V0VGhpc1llYXIoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gQmFyc2FBcGkuQkJCLkRhdGVSX1RoaXNZZWFyICsgJzogJyArIHRoaXMuX2RhdGVTZXJ2aWNlLmdldFllYXJTdHIoJ1RoaXNZZWFyJyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfZ2V0RGF5c0JlZm9yZSgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBCYXJzYUFwaS5CQkIuRGF0ZVJfRGF5c0JlZm9yZSArICc6ICcgKyB0aGlzLl9kYXRlU2VydmljZS5nZXREYXlTdHIoJ0RheXNCZWZvcmUnKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9nZXRQcmV2V2VlaygpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBCYXJzYUFwaS5CQkIuRGF0ZVJfUHJldldlZWsgKyAnOiAnICsgdGhpcy5fZGF0ZVNlcnZpY2UuZ2V0V2Vla1N0cignUHJldldlZWsnKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9nZXRQcmV2TW9udGgoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gQmFyc2FBcGkuQkJCLkRhdGVSX1ByZXZNb250aCArICc6ICcgKyB0aGlzLl9kYXRlU2VydmljZS5nZXRNb250aFN0cignUHJldk1vbnRoJyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfZ2V0UHJldlllYXIoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gQmFyc2FBcGkuQkJCLkRhdGVSX1ByZXZZZWFyICsgJzogJyArIHRoaXMuX2RhdGVTZXJ2aWNlLmdldFllYXJTdHIoJ1ByZXZZZWFyJyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfZ2V0RGF5c0FmdGVyKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIEJhcnNhQXBpLkJCQi5EYXRlUl9EYXlzQWZ0ZXIgKyAnOiAnICsgdGhpcy5fZGF0ZVNlcnZpY2UuZ2V0RGF5U3RyKCdEYXlzQWZ0ZXInKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9nZXROZXh0V2VlaygpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBCYXJzYUFwaS5CQkIuRGF0ZVJfTmV4dFdlZWsgKyAnOiAnICsgdGhpcy5fZGF0ZVNlcnZpY2UuZ2V0V2Vla1N0cignTmV4dFdlZWsnKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9nZXROZXh0TW9udGgoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gQmFyc2FBcGkuQkJCLkRhdGVSX05leHRNb250aCArICc6ICcgKyB0aGlzLl9kYXRlU2VydmljZS5nZXRNb250aFN0cignTmV4dE1vbnRoJyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfZ2V0TmV4dFllYXIoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gQmFyc2FBcGkuQkJCLkRhdGVSX05leHRZZWFyICsgJzogJyArIHRoaXMuX2RhdGVTZXJ2aWNlLmdldFllYXJTdHIoJ05leHRZZWFyJyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfZGVjb3JhdGVEYXRlUmFuZ2VQaWNrZXIoKTogdm9pZCB7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGVsRGF0ZVJhbmdlUGlja2VyID0gdGhpcy5kYXRlUmFuZ2VQaWNrZXI/Lm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICAgICAgICAgIGlmIChlbERhdGVSYW5nZVBpY2tlcikge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdWk1SW5wdXRFbCA9IGVsRGF0ZVJhbmdlUGlja2VyLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy51aTUtZGF0ZS1waWNrZXItaW5wdXQnKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyMi5zZXRBdHRyaWJ1dGUoXHJcbiAgICAgICAgICAgICAgICAgICAgdWk1SW5wdXRFbCxcclxuICAgICAgICAgICAgICAgICAgICAnc3R5bGUnLFxyXG4gICAgICAgICAgICAgICAgICAgICdib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwOyBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwJ1xyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sIDUwMCk7XHJcbiAgICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cInZhbHVlPy5EYXRlUmFuZ2VUeXBlID09PSAnU3BlY2lmaWNSYW5nZSc7IGVsc2UgaW5wdXRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1jb250YWluZXJcIj5cclxuICAgICAgICA8dWk1LWRhdGVyYW5nZS1waWNrZXJcclxuICAgICAgICAgICAgaWQ9XCJteWRhdGVyYW5nZS1waWNrZXIxXCJcclxuICAgICAgICAgICAgKG1vdXNlb3Zlcik9XCJvbk9wZW5Qb3BvdmVyKClcIlxyXG4gICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJwb3BvdmVyLmNsb3NlKClcIlxyXG4gICAgICAgICAgICAjZGF0ZVJhbmdlUGlja2VyXHJcbiAgICAgICAgICAgIChjaGFuZ2UpPVwib25EYXRlUmFuZ2VDaGFuZ2UoKVwiXHJcbiAgICAgICAgICAgIGZvcm1hdC1wYXR0ZXJuPVwieXl5eS9NTS9kZFwiXHJcbiAgICAgICAgICAgIFthdHRyLnJlYWRvbmx5XT1cIihyZWFkb25seSQgfCBhc3luYykgPT09IHRydWUgPyB0cnVlIDogbnVsbFwiXHJcbiAgICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cIihkaXNhYmxlJCB8IGFzeW5jKSA9PT0gdHJ1ZSA/IHRydWUgOiBudWxsXCJcclxuICAgICAgICAgICAgW3ByaW1hcnlDYWxlbmRhclR5cGVdPVwiU2V0dGluZy5DYWxlbmRhclR5cGUgIT09ICdHcmVnb3JpYW4nID8gJ1BlcnNpYW4nIDogU2V0dGluZy5DYWxlbmRhclR5cGVcIlxyXG4gICAgICAgID5cclxuICAgICAgICA8L3VpNS1kYXRlcmFuZ2UtcGlja2VyPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgY2xhc3M9XCJidG4tZHJvcC1kb3duXCJcclxuICAgICAgICAgICAgZmQtYnV0dG9uXHJcbiAgICAgICAgICAgIFtmZFR5cGVdPVwiJ3N0YW5kYXJkJ1wiXHJcbiAgICAgICAgICAgIFtnbHlwaF09XCInc2xpbS1hcnJvdy1kb3duJ1wiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJwb3BvdmVyLm9wZW4oKVwiXHJcbiAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG48bmctdGVtcGxhdGUgI2lucHV0PlxyXG4gICAgPCEtLSA8aW5wdXQgZmQtZm9ybS1jb250cm9sIFsobmdNb2RlbCldPVwidmFsdWVTdHJcIiBbZmQtaW5saW5lLWhlbHBdPVwidmFsdWVTdHJcIiBbcmVhZE9ubHldPVwidHJ1ZVwiIC8+IC0tPlxyXG5cclxuICAgIDxmZC1pbnB1dC1ncm91cFxyXG4gICAgICAgIHBsYWNlbWVudD1cImFmdGVyXCJcclxuICAgICAgICBnbHlwaD1cInNsaW0tYXJyb3ctZG93blwiXHJcbiAgICAgICAgZ2x5cGhBcmlhTGFiZWw9XCJTZWxlY3QgRGF0ZSBSYW5nZVwiXHJcbiAgICAgICAgW2J1dHRvbl09XCJ0cnVlXCJcclxuICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZVN0clwiXHJcbiAgICAgICAgKGFkZE9uQnV0dG9uQ2xpY2tlZCk9XCJwb3BvdmVyLm9wZW4oKVwiXHJcbiAgICA+XHJcbiAgICA8L2ZkLWlucHV0LWdyb3VwPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPCEtLSA8YnV0dG9uIGZkLWJ1dHRvbj5cclxuICAgIDxmZC1zZWxlY3QgKHZhbHVlQ2hhbmdlKT1cIm9uRGF0ZVJhbmdlVHlwZUNoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgPGZkLW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGRhdGVSYW5nZXNcIiBbdmFsdWVdPVwib3B0aW9uXCI+e3sgb3B0aW9uIHwgYmJiVHJhbnNsYXRlIH19PC9mZC1vcHRpb24+XHJcbiAgICA8L2ZkLXNlbGVjdD5cclxuPC9idXR0b24+IC0tPlxyXG5cclxuPGZkLXBvcG92ZXJcclxuICAgICNwb3BvdmVyXHJcbiAgICBzdHlsZT1cImRpc3BsYXk6IGJsb2NrXCJcclxuICAgIFtmaWxsQ29udHJvbE1vZGVdPVwiJ2F0LWxlYXN0J1wiXHJcbiAgICBwbGFjZW1lbnQ9XCJib3R0b20tc3RhcnRcIlxyXG4gICAgWyhpc09wZW4pXT1cImlzT3BlblBvcG92ZXJcIlxyXG4+XHJcbiAgICA8ZmQtcG9wb3Zlci1ib2R5PlxyXG4gICAgICAgIDx1bCBmZC1saXN0PlxyXG4gICAgICAgICAgICA8bGkgZmQtbGlzdC1pdGVtICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZGF0ZVJhbmdlc1wiIChjbGljayk9XCJwb3BvdmVyLmNsb3NlKCk7IG9uRGF0ZVJhbmdlVHlwZUNoYW5nZShvcHRpb24pXCI+XHJcbiAgICAgICAgICAgICAgICA8YSBmZC1saXN0LWxpbms+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT57eyBvcHRpb24gfCBiYmJUcmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgPC91bD5cclxuICAgIDwvZmQtcG9wb3Zlci1ib2R5PlxyXG48L2ZkLXBvcG92ZXI+XHJcbiJdfQ==
@@ -1,150 +0,0 @@
1
- import { Component, Input, ViewChild, ChangeDetectionStrategy, NgZone, inject } from '@angular/core';
2
- import { BarsaApi, FieldBaseComponent, DateService, LogService, getDateService } from 'barsa-novin-ray-core';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- import * as i2 from "@fundamental-ngx/core/form";
6
- import * as i3 from "barsa-calendar";
7
- export class UiDateTimeComponent extends FieldBaseComponent {
8
- constructor() {
9
- super(...arguments);
10
- this.valueCaption = '';
11
- this._ngZone = inject(NgZone);
12
- /* eslint-disable */
13
- this.GetCaption = () => this.valueCaption;
14
- }
15
- ngOnInit() {
16
- super.ngOnInit();
17
- if (this.parameters?.DateRangeMode && this.parameters?.DateRangeOtherField) {
18
- const formpanel = BarsaApi.Common.Util.TryGetValue(this.context, 'LayoutControl.config.FormPanelUi', null);
19
- if (formpanel) {
20
- formpanel.fireEvent('ChangeFieldVisible', this.parameters.DateRangeOtherField, false);
21
- }
22
- }
23
- if (typeof this.value === 'string' && this.value) {
24
- this.value = this.context.value = new Date(this.value);
25
- }
26
- this.fullCalendar = this.Setting.ShowTime1 && this.Setting.ShowDate1;
27
- this._setTimeFormat();
28
- // this.value$.pipe(takeUntil(this._onDestroy$)).subscribe((value) => {
29
- // this.value = <Date>value;
30
- // // this._setValueCaption(value);
31
- // });
32
- // // this._setValueCaption(this.value);
33
- }
34
- ngAfterViewInit() {
35
- super.ngAfterViewInit();
36
- this._setCaption(this.value);
37
- }
38
- onDateTimeChange() {
39
- const datetimePickerControl = this.datetimePickerRef.nativeElement;
40
- this.value = datetimePickerControl.dateValue;
41
- this.valueCaption = datetimePickerControl.value;
42
- this.valueChange.emit(this.value);
43
- }
44
- onDateChange() {
45
- const datePickerControl = this.datePickerRef.nativeElement;
46
- this._valueDateChange(datePickerControl.dateValue);
47
- }
48
- onDateChange2(date) {
49
- this._valueDateChange(date);
50
- }
51
- onDurationChange(e) {
52
- const { value } = e.detail;
53
- if (!this.value) {
54
- this.value = new Date();
55
- }
56
- const time = value.split(':');
57
- this.value.setHours(Number(time[0]), Number(time[1]), Number(time[2]));
58
- this.valueCaption = this.durationPickerRef.nativeElement.value;
59
- this.valueChange.emit(this.value);
60
- }
61
- onRangeChange(rangeValue) {
62
- console.log('endDate', rangeValue);
63
- }
64
- _setTimeFormat() {
65
- const timeFormat = this.Setting.TimeFormat?.toLowerCase();
66
- let timeFormat2 = '';
67
- if (timeFormat) {
68
- timeFormat2 = ' ';
69
- timeFormat.split(':').forEach((val) => {
70
- switch (val) {
71
- case 'h':
72
- timeFormat2 += 'HH';
73
- break;
74
- case 'i':
75
- timeFormat2 += ':mm';
76
- break;
77
- case 's':
78
- timeFormat2 += ':SS';
79
- break;
80
- }
81
- });
82
- }
83
- const dateFormat = !this.Setting.ShowDate1 ? '' : 'YYYY/MM/DD';
84
- const timeFormat3 = !this.Setting.ShowTime1 ? '' : timeFormat2;
85
- // timeFormat2 += ' A';
86
- this.formatPattern = `${dateFormat}${timeFormat3}`;
87
- }
88
- _configChaned(options) {
89
- // implemented by child components
90
- this._setTimeFormat();
91
- const temp = this.value;
92
- if (!this.Setting.ShowTime1) {
93
- if (typeof temp === 'object') {
94
- temp.setHours(0);
95
- temp.setMinutes(0);
96
- temp.setSeconds(0);
97
- }
98
- }
99
- if (typeof temp === 'object') {
100
- this._valueDateChange(new Date(temp));
101
- }
102
- super._configChaned(options);
103
- }
104
- _setValue(value) {
105
- this._setCaption(value);
106
- super._setValue(value);
107
- }
108
- _valueDateChange(dateValue) {
109
- this.value = dateValue;
110
- this.valueCaption = this._setCaption(dateValue); // datePickerControl.value;
111
- this.valueChange.emit(this.value);
112
- }
113
- _setCaption(value) {
114
- const caption = (this.context.caption =
115
- this.valueCaption =
116
- this._dateService.format(value, this.formatPattern));
117
- this._cdr.detectChanges();
118
- return caption;
119
- }
120
- }
121
- UiDateTimeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UiDateTimeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
122
- UiDateTimeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: UiDateTimeComponent, selector: "bsu-ui-date-time", inputs: { GetCaption: "GetCaption" }, providers: [
123
- {
124
- provide: DateService,
125
- useFactory: getDateService,
126
- deps: [LogService]
127
- }
128
- ], viewQueries: [{ propertyName: "datetimePickerRef", first: true, predicate: ["datetimePicker"], descendants: true }, { propertyName: "datePickerRef", first: true, predicate: ["datePicker"], descendants: true }, { propertyName: "durationPickerRef", first: true, predicate: ["durationPicker"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<input\r\n *ngIf=\"(disableOrReadonly$ | async)!!; else datetime\"\r\n fd-form-control\r\n type=\"text\"\r\n [attr.readonly]=\"(readonly$ | async) === true ? true : null\"\r\n [attr.disabled]=\"(disable$ | async) === true ? true : null\"\r\n [value]=\"value ? valueCaption : ''\"\r\n/>\r\n<ng-template #datetime>\r\n <div\r\n [style.display]=\"(disableOrReadonly$ | async)!! ? 'hidden' : 'block'\"\r\n [attr.dir]=\"Setting.IsLtr === true ? 'ltr' : 'rtl'\"\r\n >\r\n <bc-date-time-picker\r\n [value]=\"value\"\r\n [buttonMenuMode]=\"parameters?.ButtonMenuMode === true\"\r\n [showDate]=\"Setting.ShowDate1\"\r\n [showTime]=\"Setting.ShowTime1\"\r\n [placeholder]=\"parameters?.ButtonMenuMode === true ? parameters.Placeholder : formatPattern\"\r\n [primaryCalendarType]=\"Setting.CalendarType\"\r\n [formatPattern]=\"formatPattern\"\r\n [deviceSize]=\"(deviceSize$ | async)!!\"\r\n [isMobile]=\"isMobile\"\r\n [daterangeMode]=\"parameters?.DateRangeMode === true\"\r\n [inlineMode]=\"parameters?.InlineMode === true\"\r\n [readonly]=\"(readonly$ | async) === true ? true : false\"\r\n [disabled]=\"(disable$ | async) === true ? true : false\"\r\n (valueChange)=\"onDateChange2($event)\"\r\n (rangeChange)=\"onRangeChange($event)\"\r\n >\r\n </bc-date-time-picker>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FormControlComponent, selector: "[fd-form-control]", inputs: ["state", "type", "class"] }, { kind: "directive", type: i2.InputFormControlDirective, selector: "input[fd-form-control]" }, { kind: "component", type: i3.DateTimePickerComponent, selector: "bc-date-time-picker", inputs: ["placeholder", "primaryCalendarType", "formatPattern", "value", "timeValue", "startRangeDate", "endRangeDate", "isRangePicker", "showTime", "showDate", "rtl", "deviceSize", "isMobile", "readonly", "disabled", "buttonMenuMode", "inlineMode", "daterangeMode"], outputs: ["rangeChange", "valueChange"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
129
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UiDateTimeComponent, decorators: [{
130
- type: Component,
131
- args: [{ selector: 'bsu-ui-date-time', providers: [
132
- {
133
- provide: DateService,
134
- useFactory: getDateService,
135
- deps: [LogService]
136
- }
137
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<input\r\n *ngIf=\"(disableOrReadonly$ | async)!!; else datetime\"\r\n fd-form-control\r\n type=\"text\"\r\n [attr.readonly]=\"(readonly$ | async) === true ? true : null\"\r\n [attr.disabled]=\"(disable$ | async) === true ? true : null\"\r\n [value]=\"value ? valueCaption : ''\"\r\n/>\r\n<ng-template #datetime>\r\n <div\r\n [style.display]=\"(disableOrReadonly$ | async)!! ? 'hidden' : 'block'\"\r\n [attr.dir]=\"Setting.IsLtr === true ? 'ltr' : 'rtl'\"\r\n >\r\n <bc-date-time-picker\r\n [value]=\"value\"\r\n [buttonMenuMode]=\"parameters?.ButtonMenuMode === true\"\r\n [showDate]=\"Setting.ShowDate1\"\r\n [showTime]=\"Setting.ShowTime1\"\r\n [placeholder]=\"parameters?.ButtonMenuMode === true ? parameters.Placeholder : formatPattern\"\r\n [primaryCalendarType]=\"Setting.CalendarType\"\r\n [formatPattern]=\"formatPattern\"\r\n [deviceSize]=\"(deviceSize$ | async)!!\"\r\n [isMobile]=\"isMobile\"\r\n [daterangeMode]=\"parameters?.DateRangeMode === true\"\r\n [inlineMode]=\"parameters?.InlineMode === true\"\r\n [readonly]=\"(readonly$ | async) === true ? true : false\"\r\n [disabled]=\"(disable$ | async) === true ? true : false\"\r\n (valueChange)=\"onDateChange2($event)\"\r\n (rangeChange)=\"onRangeChange($event)\"\r\n >\r\n </bc-date-time-picker>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{display:block}\n"] }]
138
- }], propDecorators: { datetimePickerRef: [{
139
- type: ViewChild,
140
- args: ['datetimePicker']
141
- }], datePickerRef: [{
142
- type: ViewChild,
143
- args: ['datePicker']
144
- }], durationPickerRef: [{
145
- type: ViewChild,
146
- args: ['durationPicker']
147
- }], GetCaption: [{
148
- type: Input
149
- }] } });
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktZGF0ZS10aW1lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL3VpLWRhdGUtdGltZS91aS1kYXRlLXRpbWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktZGF0ZS10aW1lL3VpLWRhdGUtdGltZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsU0FBUyxFQUdULEtBQUssRUFDTCxTQUFTLEVBQ1QsdUJBQXVCLEVBQ3ZCLE1BQU0sRUFDTixNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUVILFFBQVEsRUFDUixrQkFBa0IsRUFDbEIsV0FBVyxFQUNYLFVBQVUsRUFDVixjQUFjLEVBQ2pCLE1BQU0sc0JBQXNCLENBQUM7Ozs7O0FBZTlCLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxrQkFBa0I7SUFiM0Q7O1FBbUJJLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBR1YsWUFBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQWdIakMsb0JBQW9CO1FBQ1gsZUFBVSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7S0FDakQ7SUFqSEcsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsYUFBYSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsbUJBQW1CLEVBQUU7WUFDeEUsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDM0csSUFBSSxTQUFTLEVBQUU7Z0JBQ1gsU0FBUyxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxDQUFDO2FBQ3pGO1NBQ0o7UUFDRCxJQUFJLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUM5QyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMxRDtRQUNELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFDckUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLHVFQUF1RTtRQUN2RSw4QkFBOEI7UUFFOUIscUNBQXFDO1FBQ3JDLE1BQU07UUFDTix3Q0FBd0M7SUFDNUMsQ0FBQztJQUVELGVBQWU7UUFDWCxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUNELGdCQUFnQjtRQUNaLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQztRQUNuRSxJQUFJLENBQUMsS0FBSyxHQUFHLHFCQUFxQixDQUFDLFNBQVMsQ0FBQztRQUM3QyxJQUFJLENBQUMsWUFBWSxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQztRQUNoRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUNELFlBQVk7UUFDUixNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDO1FBQzNELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBQ0QsYUFBYSxDQUFDLElBQUk7UUFDZCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELGdCQUFnQixDQUFDLENBQUM7UUFDZCxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNiLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztTQUMzQjtRQUNELE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO1FBQy9ELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBQ0QsYUFBYSxDQUFDLFVBQTRDO1FBQ3RELE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFDUyxjQUFjO1FBQ3BCLE1BQU0sVUFBVSxHQUFXLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ2xFLElBQUksV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLFVBQVUsRUFBRTtZQUNaLFdBQVcsR0FBRyxHQUFHLENBQUM7WUFDbEIsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDbEMsUUFBUSxHQUFHLEVBQUU7b0JBQ1QsS0FBSyxHQUFHO3dCQUNKLFdBQVcsSUFBSSxJQUFJLENBQUM7d0JBQ3BCLE1BQU07b0JBQ1YsS0FBSyxHQUFHO3dCQUNKLFdBQVcsSUFBSSxLQUFLLENBQUM7d0JBQ3JCLE1BQU07b0JBQ1YsS0FBSyxHQUFHO3dCQUNKLFdBQVcsSUFBSSxLQUFLLENBQUM7d0JBQ3JCLE1BQU07aUJBQ2I7WUFDTCxDQUFDLENBQUMsQ0FBQztTQUNOO1FBQ0QsTUFBTSxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7UUFDL0QsTUFBTSxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7UUFFL0QsdUJBQXVCO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLEdBQUcsR0FBRyxVQUFVLEdBQUcsV0FBVyxFQUFFLENBQUM7SUFDdkQsQ0FBQztJQUNTLGFBQWEsQ0FBQyxPQUFPO1FBQzNCLGtDQUFrQztRQUNsQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFFdEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUU7WUFDekIsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ25CLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDdEI7U0FDSjtRQUNELElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO1lBQzFCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ3pDO1FBQ0QsS0FBSyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBQ1MsU0FBUyxDQUFDLEtBQVc7UUFDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QixLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFDTyxnQkFBZ0IsQ0FBQyxTQUFlO1FBQ3BDLElBQUksQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLDJCQUEyQjtRQUM1RSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUNPLFdBQVcsQ0FBQyxLQUFXO1FBQzNCLE1BQU0sT0FBTyxHQUNULENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPO1lBQ3JCLElBQUksQ0FBQyxZQUFZO2dCQUNiLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzFCLE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7O2dIQXhIUSxtQkFBbUI7b0dBQW5CLG1CQUFtQixpRkFUakI7UUFDUDtZQUNJLE9BQU8sRUFBRSxXQUFXO1lBQ3BCLFVBQVUsRUFBRSxjQUFjO1lBQzFCLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQztTQUNyQjtLQUNKLDBXQy9CTCxvL0NBaUNBOzJGRENhLG1CQUFtQjtrQkFiL0IsU0FBUzsrQkFDSSxrQkFBa0IsYUFHakI7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLFdBQVc7NEJBQ3BCLFVBQVUsRUFBRSxjQUFjOzRCQUMxQixJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUM7eUJBQ3JCO3FCQUNKLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNOzhCQUdsQixpQkFBaUI7c0JBQTdDLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQUNGLGFBQWE7c0JBQXJDLFNBQVM7dUJBQUMsWUFBWTtnQkFDTSxpQkFBaUI7c0JBQTdDLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQXVIbEIsVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBBZnRlclZpZXdJbml0LFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIE9uSW5pdCxcclxuICAgIElucHV0LFxyXG4gICAgVmlld0NoaWxkLFxyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBOZ1pvbmUsXHJcbiAgICBpbmplY3RcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7XHJcbiAgICBNZXRhb2JqZWN0RGF0YU1vZGVsLFxyXG4gICAgQmFyc2FBcGksXHJcbiAgICBGaWVsZEJhc2VDb21wb25lbnQsXHJcbiAgICBEYXRlU2VydmljZSxcclxuICAgIExvZ1NlcnZpY2UsXHJcbiAgICBnZXREYXRlU2VydmljZVxyXG59IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtdWktZGF0ZS10aW1lJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi91aS1kYXRlLXRpbWUuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdWktZGF0ZS10aW1lLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IERhdGVTZXJ2aWNlLFxyXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiBnZXREYXRlU2VydmljZSxcclxuICAgICAgICAgICAgZGVwczogW0xvZ1NlcnZpY2VdXHJcbiAgICAgICAgfVxyXG4gICAgXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVaURhdGVUaW1lQ29tcG9uZW50IGV4dGVuZHMgRmllbGRCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICAgIEBWaWV3Q2hpbGQoJ2RhdGV0aW1lUGlja2VyJykgZGF0ZXRpbWVQaWNrZXJSZWY6IEVsZW1lbnRSZWY7XHJcbiAgICBAVmlld0NoaWxkKCdkYXRlUGlja2VyJykgZGF0ZVBpY2tlclJlZjogRWxlbWVudFJlZjtcclxuICAgIEBWaWV3Q2hpbGQoJ2R1cmF0aW9uUGlja2VyJykgZHVyYXRpb25QaWNrZXJSZWY6IEVsZW1lbnRSZWY7XHJcbiAgICBmdWxsQ2FsZW5kYXI6IGJvb2xlYW47XHJcbiAgICB2YWx1ZTogRGF0ZTtcclxuICAgIHZhbHVlQ2FwdGlvbiA9ICcnO1xyXG4gICAgZm9ybWF0UGF0dGVybjogc3RyaW5nO1xyXG4gICAgcGFyYW1ldGVyczogVWlEYXRlVGltZVNldHRpbmc7XHJcbiAgICBwcml2YXRlIF9uZ1pvbmUgPSBpbmplY3QoTmdab25lKTtcclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgaWYgKHRoaXMucGFyYW1ldGVycz8uRGF0ZVJhbmdlTW9kZSAmJiB0aGlzLnBhcmFtZXRlcnM/LkRhdGVSYW5nZU90aGVyRmllbGQpIHtcclxuICAgICAgICAgICAgY29uc3QgZm9ybXBhbmVsID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUodGhpcy5jb250ZXh0LCAnTGF5b3V0Q29udHJvbC5jb25maWcuRm9ybVBhbmVsVWknLCBudWxsKTtcclxuICAgICAgICAgICAgaWYgKGZvcm1wYW5lbCkge1xyXG4gICAgICAgICAgICAgICAgZm9ybXBhbmVsLmZpcmVFdmVudCgnQ2hhbmdlRmllbGRWaXNpYmxlJywgdGhpcy5wYXJhbWV0ZXJzLkRhdGVSYW5nZU90aGVyRmllbGQsIGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudmFsdWUgPT09ICdzdHJpbmcnICYmIHRoaXMudmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuY29udGV4dC52YWx1ZSA9IG5ldyBEYXRlKHRoaXMudmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmZ1bGxDYWxlbmRhciA9IHRoaXMuU2V0dGluZy5TaG93VGltZTEgJiYgdGhpcy5TZXR0aW5nLlNob3dEYXRlMTtcclxuICAgICAgICB0aGlzLl9zZXRUaW1lRm9ybWF0KCk7XHJcbiAgICAgICAgLy8gdGhpcy52YWx1ZSQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuICAgICAgICAvLyAgIHRoaXMudmFsdWUgPSA8RGF0ZT52YWx1ZTtcclxuXHJcbiAgICAgICAgLy8gICAvLyB0aGlzLl9zZXRWYWx1ZUNhcHRpb24odmFsdWUpO1xyXG4gICAgICAgIC8vIH0pO1xyXG4gICAgICAgIC8vIC8vIHRoaXMuX3NldFZhbHVlQ2FwdGlvbih0aGlzLnZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XHJcbiAgICAgICAgdGhpcy5fc2V0Q2FwdGlvbih0aGlzLnZhbHVlKTtcclxuICAgIH1cclxuICAgIG9uRGF0ZVRpbWVDaGFuZ2UoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZGF0ZXRpbWVQaWNrZXJDb250cm9sID0gdGhpcy5kYXRldGltZVBpY2tlclJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSBkYXRldGltZVBpY2tlckNvbnRyb2wuZGF0ZVZhbHVlO1xyXG4gICAgICAgIHRoaXMudmFsdWVDYXB0aW9uID0gZGF0ZXRpbWVQaWNrZXJDb250cm9sLnZhbHVlO1xyXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcclxuICAgIH1cclxuICAgIG9uRGF0ZUNoYW5nZSgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBkYXRlUGlja2VyQ29udHJvbCA9IHRoaXMuZGF0ZVBpY2tlclJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlRGF0ZUNoYW5nZShkYXRlUGlja2VyQ29udHJvbC5kYXRlVmFsdWUpO1xyXG4gICAgfVxyXG4gICAgb25EYXRlQ2hhbmdlMihkYXRlKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fdmFsdWVEYXRlQ2hhbmdlKGRhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uRHVyYXRpb25DaGFuZ2UoZSk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IGUuZGV0YWlsO1xyXG4gICAgICAgIGlmICghdGhpcy52YWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gbmV3IERhdGUoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgdGltZSA9IHZhbHVlLnNwbGl0KCc6Jyk7XHJcbiAgICAgICAgdGhpcy52YWx1ZS5zZXRIb3VycyhOdW1iZXIodGltZVswXSksIE51bWJlcih0aW1lWzFdKSwgTnVtYmVyKHRpbWVbMl0pKTtcclxuICAgICAgICB0aGlzLnZhbHVlQ2FwdGlvbiA9IHRoaXMuZHVyYXRpb25QaWNrZXJSZWYubmF0aXZlRWxlbWVudC52YWx1ZTtcclxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBvblJhbmdlQ2hhbmdlKHJhbmdlVmFsdWU6IHsgc3RhcnREYXk6IERhdGU7IGVuZERheTogRGF0ZSB9KTogdm9pZCB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ2VuZERhdGUnLCByYW5nZVZhbHVlKTtcclxuICAgIH1cclxuICAgIHByb3RlY3RlZCBfc2V0VGltZUZvcm1hdCgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCB0aW1lRm9ybWF0OiBzdHJpbmcgPSB0aGlzLlNldHRpbmcuVGltZUZvcm1hdD8udG9Mb3dlckNhc2UoKTtcclxuICAgICAgICBsZXQgdGltZUZvcm1hdDIgPSAnJztcclxuICAgICAgICBpZiAodGltZUZvcm1hdCkge1xyXG4gICAgICAgICAgICB0aW1lRm9ybWF0MiA9ICcgJztcclxuICAgICAgICAgICAgdGltZUZvcm1hdC5zcGxpdCgnOicpLmZvckVhY2goKHZhbCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgc3dpdGNoICh2YWwpIHtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlICdoJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGltZUZvcm1hdDIgKz0gJ0hIJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnaSc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVGb3JtYXQyICs9ICc6bW0nO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlICdzJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGltZUZvcm1hdDIgKz0gJzpTUyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZGF0ZUZvcm1hdCA9ICF0aGlzLlNldHRpbmcuU2hvd0RhdGUxID8gJycgOiAnWVlZWS9NTS9ERCc7XHJcbiAgICAgICAgY29uc3QgdGltZUZvcm1hdDMgPSAhdGhpcy5TZXR0aW5nLlNob3dUaW1lMSA/ICcnIDogdGltZUZvcm1hdDI7XHJcblxyXG4gICAgICAgIC8vIHRpbWVGb3JtYXQyICs9ICcgQSc7XHJcbiAgICAgICAgdGhpcy5mb3JtYXRQYXR0ZXJuID0gYCR7ZGF0ZUZvcm1hdH0ke3RpbWVGb3JtYXQzfWA7XHJcbiAgICB9XHJcbiAgICBwcm90ZWN0ZWQgX2NvbmZpZ0NoYW5lZChvcHRpb25zKTogdm9pZCB7XHJcbiAgICAgICAgLy8gaW1wbGVtZW50ZWQgYnkgY2hpbGQgY29tcG9uZW50c1xyXG4gICAgICAgIHRoaXMuX3NldFRpbWVGb3JtYXQoKTtcclxuXHJcbiAgICAgICAgY29uc3QgdGVtcCA9IHRoaXMudmFsdWU7XHJcbiAgICAgICAgaWYgKCF0aGlzLlNldHRpbmcuU2hvd1RpbWUxKSB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdGVtcCA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgICAgICAgIHRlbXAuc2V0SG91cnMoMCk7XHJcbiAgICAgICAgICAgICAgICB0ZW1wLnNldE1pbnV0ZXMoMCk7XHJcbiAgICAgICAgICAgICAgICB0ZW1wLnNldFNlY29uZHMoMCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHR5cGVvZiB0ZW1wID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgICB0aGlzLl92YWx1ZURhdGVDaGFuZ2UobmV3IERhdGUodGVtcCkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzdXBlci5fY29uZmlnQ2hhbmVkKG9wdGlvbnMpO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIF9zZXRWYWx1ZSh2YWx1ZTogRGF0ZSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3NldENhcHRpb24odmFsdWUpO1xyXG4gICAgICAgIHN1cGVyLl9zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIF92YWx1ZURhdGVDaGFuZ2UoZGF0ZVZhbHVlOiBEYXRlKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IGRhdGVWYWx1ZTtcclxuICAgICAgICB0aGlzLnZhbHVlQ2FwdGlvbiA9IHRoaXMuX3NldENhcHRpb24oZGF0ZVZhbHVlKTsgLy8gZGF0ZVBpY2tlckNvbnRyb2wudmFsdWU7XHJcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfc2V0Q2FwdGlvbih2YWx1ZTogRGF0ZSk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QgY2FwdGlvbiA9XHJcbiAgICAgICAgICAgICh0aGlzLmNvbnRleHQuY2FwdGlvbiA9XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWVDYXB0aW9uID1cclxuICAgICAgICAgICAgICAgIHRoaXMuX2RhdGVTZXJ2aWNlLmZvcm1hdCh2YWx1ZSwgdGhpcy5mb3JtYXRQYXR0ZXJuKSk7XHJcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICByZXR1cm4gY2FwdGlvbjtcclxuICAgIH1cclxuICAgIC8qIGVzbGludC1kaXNhYmxlICovXHJcbiAgICBASW5wdXQoKSBHZXRDYXB0aW9uID0gKCkgPT4gdGhpcy52YWx1ZUNhcHRpb247XHJcbn1cclxuaW50ZXJmYWNlIFVpRGF0ZVRpbWVTZXR0aW5nIGV4dGVuZHMgTWV0YW9iamVjdERhdGFNb2RlbCB7XHJcbiAgICBCdXR0b25NZW51TW9kZTogYm9vbGVhbjtcclxuICAgIFBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcbiAgICBJbmxpbmVNb2RlOiBib29sZWFuO1xyXG4gICAgRGF0ZVJhbmdlTW9kZTogYm9vbGVhbjtcclxuICAgIERhdGVSYW5nZU90aGVyRmllbGQ6IHN0cmluZztcclxufVxyXG4iLCI8aW5wdXRcclxuICAgICpuZ0lmPVwiKGRpc2FibGVPclJlYWRvbmx5JCB8IGFzeW5jKSEhOyBlbHNlIGRhdGV0aW1lXCJcclxuICAgIGZkLWZvcm0tY29udHJvbFxyXG4gICAgdHlwZT1cInRleHRcIlxyXG4gICAgW2F0dHIucmVhZG9ubHldPVwiKHJlYWRvbmx5JCB8IGFzeW5jKSA9PT0gdHJ1ZSA/IHRydWUgOiBudWxsXCJcclxuICAgIFthdHRyLmRpc2FibGVkXT1cIihkaXNhYmxlJCB8IGFzeW5jKSA9PT0gdHJ1ZSA/IHRydWUgOiBudWxsXCJcclxuICAgIFt2YWx1ZV09XCJ2YWx1ZSA/IHZhbHVlQ2FwdGlvbiA6ICcnXCJcclxuLz5cclxuPG5nLXRlbXBsYXRlICNkYXRldGltZT5cclxuICAgIDxkaXZcclxuICAgICAgICBbc3R5bGUuZGlzcGxheV09XCIoZGlzYWJsZU9yUmVhZG9ubHkkIHwgYXN5bmMpISEgPyAnaGlkZGVuJyA6ICdibG9jaydcIlxyXG4gICAgICAgIFthdHRyLmRpcl09XCJTZXR0aW5nLklzTHRyID09PSB0cnVlID8gJ2x0cicgOiAncnRsJ1wiXHJcbiAgICA+XHJcbiAgICAgICAgPGJjLWRhdGUtdGltZS1waWNrZXJcclxuICAgICAgICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcclxuICAgICAgICAgICAgW2J1dHRvbk1lbnVNb2RlXT1cInBhcmFtZXRlcnM/LkJ1dHRvbk1lbnVNb2RlID09PSB0cnVlXCJcclxuICAgICAgICAgICAgW3Nob3dEYXRlXT1cIlNldHRpbmcuU2hvd0RhdGUxXCJcclxuICAgICAgICAgICAgW3Nob3dUaW1lXT1cIlNldHRpbmcuU2hvd1RpbWUxXCJcclxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBhcmFtZXRlcnM/LkJ1dHRvbk1lbnVNb2RlID09PSB0cnVlID8gcGFyYW1ldGVycy5QbGFjZWhvbGRlciA6IGZvcm1hdFBhdHRlcm5cIlxyXG4gICAgICAgICAgICBbcHJpbWFyeUNhbGVuZGFyVHlwZV09XCJTZXR0aW5nLkNhbGVuZGFyVHlwZVwiXHJcbiAgICAgICAgICAgIFtmb3JtYXRQYXR0ZXJuXT1cImZvcm1hdFBhdHRlcm5cIlxyXG4gICAgICAgICAgICBbZGV2aWNlU2l6ZV09XCIoZGV2aWNlU2l6ZSQgfCBhc3luYykhIVwiXHJcbiAgICAgICAgICAgIFtpc01vYmlsZV09XCJpc01vYmlsZVwiXHJcbiAgICAgICAgICAgIFtkYXRlcmFuZ2VNb2RlXT1cInBhcmFtZXRlcnM/LkRhdGVSYW5nZU1vZGUgPT09IHRydWVcIlxyXG4gICAgICAgICAgICBbaW5saW5lTW9kZV09XCJwYXJhbWV0ZXJzPy5JbmxpbmVNb2RlID09PSB0cnVlXCJcclxuICAgICAgICAgICAgW3JlYWRvbmx5XT1cIihyZWFkb25seSQgfCBhc3luYykgPT09IHRydWUgPyB0cnVlIDogZmFsc2VcIlxyXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiKGRpc2FibGUkIHwgYXN5bmMpID09PSB0cnVlID8gdHJ1ZSA6IGZhbHNlXCJcclxuICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uRGF0ZUNoYW5nZTIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIChyYW5nZUNoYW5nZSk9XCJvblJhbmdlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgID5cclxuICAgICAgICA8L2JjLWRhdGUtdGltZS1waWNrZXI+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
@@ -1,110 +0,0 @@
1
- import { ChangeDetectionStrategy, Component } from '@angular/core';
2
- import { map, takeUntil, tap } from 'rxjs/operators';
3
- import { createGridEditorFormPanel, FormPanelService } from 'barsa-novin-ray-core';
4
- import { SapUiReportBaseComponent } from '../sap-ui-report-base.component';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common";
7
- import * as i2 from "@fundamental-ngx/core/button";
8
- import * as i3 from "@fundamental-ngx/core/menu";
9
- import * as i4 from "@fundamental-ngx/core/split-button";
10
- import * as i5 from "@fundamental-ngx/core/toolbar";
11
- import * as i6 from "../ulv-toolbar/ulv-toolbar.component";
12
- import * as i7 from "../ui-matrix-view/ui-matrix-view.component";
13
- import * as i8 from "barsa-novin-ray-core";
14
- export class UiEditableGridComponent extends SapUiReportBaseComponent {
15
- constructor() {
16
- super(...arguments);
17
- this.cellWidth = 100;
18
- this.cellHeight = 38;
19
- this.verticalLabelWidth = 100;
20
- this.minWidth = 100;
21
- this.minHeight = 22;
22
- this.enableResizing = true;
23
- this.rowResizer = true;
24
- this.widthTypeEnum = WidthTypeEnum;
25
- this.fitWidth = true;
26
- }
27
- ngOnInit() {
28
- super.ngOnInit();
29
- this.valueDbName = this.context.Setting.View.ValueDbName;
30
- this.valueType = this.context.valueFieldType;
31
- const formSetting = this.context.Setting.FormTemplate;
32
- // this.formLayout = this.context.Setting.FormTemplate.View.ControlInfo;
33
- this.horizontalRows = this.context.Setting.View.HorizontalColumn;
34
- this.valueControlFieldCaption = this.context.Setting.FormTemplate.View.ControlInfo.find((col) => col.ControlName === this.valueDbName).ControlFieldCaption;
35
- // there is different between ulv modatalist and viewer datalist. in matrixviewer adapter modatalist transformed.
36
- // so we need tell to ulvmainservice to update modatalist
37
- this._ulvMainService.reSetMoDataList(this.context.moDataList);
38
- this.matrixMoList$ = this.moDataList$.pipe(takeUntil(this._onDestroy$), map((moDataList) => this._matrixMoList(moDataList)));
39
- if (!this.formPanelCtrlr) {
40
- this.formPanelCtrlr = createGridEditorFormPanel(formSetting, formSetting.Data.Mo, this._typeDefId, null
41
- // BarsaApi.Common.Util.TryGetValue(this.context.Setting, 'Extra.Relation')
42
- );
43
- const formPanelCtrlr = this.formPanelCtrlr;
44
- this.formLayout = formPanelCtrlr.Setting.View.Layout94;
45
- formPanelCtrlr.on({
46
- ValueChange: this._cellValueChange.bind(this)
47
- });
48
- this.formPanelCtrlr.LoadAndCreate(null, false, false, () => {
49
- const customFormPanelUi = formPanelCtrlr.Adapter.Control;
50
- customFormPanelUi.Refresh = () => { };
51
- this._formpanelService.context = formPanelCtrlr.Adapter.Control;
52
- });
53
- }
54
- }
55
- onSave() {
56
- this.context.fireEvent('SaveBatchClicked', this.moDataList.filter((c) => c.$Modified).map((c) => ({ data: c, modified: c.$Modified })));
57
- }
58
- onSelectionChange(cellInfo) {
59
- const { value, index } = cellInfo;
60
- this.activeCell = index;
61
- // const newMo = getNewMoGridEditor(this.context.Setting.FormTemplate, this._typeDefId);
62
- // newMo[this.valueDbName] = value;
63
- const controlUi = this.formPanelCtrlr.GetFieldlByName(this.valueDbName);
64
- controlUi.SetValue(value);
65
- }
66
- onChangeView(isFit) {
67
- this.fitWidth = isFit;
68
- }
69
- /* eslint-disable */
70
- _select(mo, index) {
71
- return mo;
72
- }
73
- _matrixMoList(moDataList) {
74
- moDataList.forEach((mo) => {
75
- this.horizontalRows.forEach((col) => {
76
- if (mo[col.Caption] === undefined) {
77
- mo[col.Caption] = null;
78
- }
79
- });
80
- });
81
- return moDataList;
82
- }
83
- _cellValueChange(sender) {
84
- const indexI = this.activeCell.i;
85
- const indexJ = this.activeCell.j;
86
- this.moDataList$
87
- .pipe(takeUntil(this._onDestroy$), tap((moDataList) => {
88
- moDataList[indexI][this.horizontalRows[indexJ].Caption] = sender.Mo[this.valueDbName];
89
- if (moDataList[indexI].$Modified) {
90
- moDataList[indexI].$Modified[this.horizontalRows[indexJ].Caption] = 1;
91
- }
92
- else {
93
- moDataList[indexI].$Modified = { [this.horizontalRows[indexJ].Caption]: 1 };
94
- }
95
- }))
96
- .subscribe();
97
- }
98
- }
99
- UiEditableGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UiEditableGridComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
100
- UiEditableGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: UiEditableGridComponent, selector: "bsu-ui-editable-grid", providers: [FormPanelService], usesInheritance: true, ngImport: i0, template: "<ng-container\n *ngTemplateOutlet=\"\n matrixTemplate;\n context: {\n moDataList: matrixMoList$ | async,\n columns: horizontalRows,\n conditionalFormats: conditionalFormats$ | async,\n deviceName: deviceName$ | async,\n deviceSize: deviceSize$ | async,\n title: title$ | async,\n inlineEditMode: inlineEditMode$ | async,\n allowInlineEdit: allowInlineEdit$ | async,\n hideToolbar: hideToolbar$ | async,\n contentDensity: contentDensity$ | async,\n activeCell: activeCell,\n valueControlFieldCaption: valueControlFieldCaption,\n valueType: valueType,\n formSetting: context.Setting.FormTemplate,\n matrixWidthType: matrixWidthType,\n cellWidth: cellWidth,\n verticalLabelWidth: verticalLabelWidth,\n fitWidth: fitWidth,\n access: context.Setting.Extra?.DefaultCommandsAccess,\n hasSelected: hasSelected$ | async,\n containerWidth: containerWidth$ | async,\n formLayout: formLayout\n }\n \"\n></ng-container>\n\n<ng-template\n #matrixTemplate\n let-moDataList=\"moDataList\"\n let-deviceName=\"deviceName\"\n let-deviceSize=\"deviceSize\"\n let-title=\"title\"\n let-inlineEditMode=\"inlineEditMode\"\n let-allowInlineEdit=\"allowInlineEdit\"\n let-hideToolbar=\"hideToolbar\"\n let-contentDensity=\"contentDensity\"\n let-columns=\"columns\"\n let-conditionalFormats=\"conditionalFormats\"\n let-activeCell=\"activeCell\"\n let-valueControlFieldCaption=\"valueControlFieldCaption\"\n let-valueType=\"valueType\"\n let-formSetting=\"formSetting\"\n let-matrixWidthType=\"matrixWidthType\"\n let-cellWidth=\"cellWidth\"\n let-verticalLabelWidth=\"verticalLabelWidth\"\n let-fitWidth=\"fitWidth\"\n let-access=\"access\"\n let-hasSelected=\"hasSelected\"\n let-containerWidth=\"containterWidth\"\n let-formLayout=\"formLayout\"\n>\n <bsu-ulv-toolbar\n [hideToolbar]=\"hideToolbar\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [title]=\"title\"\n [hasSelected]=\"hasSelected\"\n [access]=\"access\"\n [contentDensity]=\"contentDensity\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [moDataListCount]=\"moDataList.length\"\n (sortClick)=\"onSortSettings(deviceName)\"\n (editModeClick)=\"onEditMode()\"\n >\n <button\n fd-toolbar-item\n fd-button\n [fdType]=\"'emphasized'\"\n [label]=\"'Save' | bbbTranslate\"\n [glyph]=\"'save'\"\n (click)=\"onSave()\"\n ></button>\n <fd-split-button\n fd-toolbar-item\n [mainAction]=\"{\n keepMainAction: true,\n mainActionTitle: splitBtnTitle\n }\"\n >\n <fd-menu>\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"onChangeView(true)\">\n <span fd-menu-title>\n {{ widthTypeEnum.FitWidth }}\n </span>\n </div>\n </li>\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"onChangeView(false)\">\n <span fd-menu-title>\n {{ widthTypeEnum.StaticWidth }}\n </span>\n </div>\n </li>\n </fd-menu>\n </fd-split-button>\n\n <ng-template #splitBtnTitle>\n <span>{{ fitWidth ? widthTypeEnum.FitWidth : widthTypeEnum.StaticWidth }}</span>\n </ng-template>\n </bsu-ulv-toolbar>\n <bsu-ui-matrix-view\n [moDataList]=\"moDataList\"\n [columns]=\"columns\"\n [conditionalFormats]=\"conditionalFormats\"\n [activeCell]=\"activeCell\"\n [valueControlFieldCaption]=\"valueControlFieldCaption\"\n [valueType]=\"valueType\"\n [access]=\"access\"\n [formLayout]=\"formLayout\"\n [matrixWidthType]=\"matrixWidthType\"\n [cellWidth]=\"cellWidth\"\n [cellHeight]=\"cellHeight\"\n [verticalLabelWidth]=\"verticalLabelWidth\"\n [fitWidth]=\"fitWidth\"\n [minWidth]=\"minWidth\"\n [minHeight]=\"minHeight\"\n [rowResizer]=\"rowResizer\"\n [enableResizing]=\"enableResizing\"\n [containerWidth]=\"containerWidth\"\n (selectionChange)=\"onSelectionChange($event)\"\n ></bsu-ui-matrix-view>\n</ng-template>\n", styles: [":host{display:flex;width:100%;height:100%;flex-direction:column}.fd-table__row th.fd-table__cell{background-color:var(--sapList_HeaderBackground, #f2f2f2);color:var(--sapList_HeaderTextColor, #32363a)}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i3.MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "focusTrapped", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { kind: "component", type: i3.MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { kind: "directive", type: i3.MenuInteractiveDirective, selector: "[fd-menu-interactive]" }, { kind: "directive", type: i3.MenuTitleDirective, selector: "[fd-menu-title]" }, { kind: "component", type: i4.SplitButtonComponent, selector: "fd-split-button", inputs: ["glyph", "disabled", "mainActionTitle", "fdType", "expandButtonAriaLabel", "expandButtonTitle", "selected", "fixedWidth", "mainAction", "arialLabel"], outputs: ["primaryButtonClicked"] }, { kind: "directive", type: i5.ToolbarItemDirective, selector: "[fd-toolbar-item]" }, { kind: "component", type: i6.UlvToolbarComponent, selector: "bsu-ulv-toolbar", inputs: ["allowGridColumnSort", "useLayoutItemTextForControl", "enableSearch", "hideTitle", "title", "deviceName", "deviceSize", "access", "hideToolbar", "toolbarButtons", "contentDensity", "inlineEditMode", "allowInlineEdit", "gridSetting", "viewCollection", "reportView", "inDialog", "isMultiSelect", "hasSelected", "config", "hidden", "buttons", "moDataListCount"], outputs: ["search", "groupbyClick", "sortClick", "columnClick", "editModeClick", "viewClick", "createNewInlineMo"] }, { kind: "component", type: i7.UiMatrixViewComponent, selector: "bsu-ui-matrix-view", inputs: ["deviceSize", "deviceName", "moDataList", "columns", "formLayout", "conditionalFormat", "activeCell", "valueControlFieldCaption", "formTemplate", "valueType", "cellWidth", "cellHeight", "verticalLabelWidth", "fitWidth", "minWidth", "minHeight", "rowResizer", "enableResizing"], outputs: ["selectionChange"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
101
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UiEditableGridComponent, decorators: [{
102
- type: Component,
103
- args: [{ selector: 'bsu-ui-editable-grid', changeDetection: ChangeDetectionStrategy.OnPush, providers: [FormPanelService], template: "<ng-container\n *ngTemplateOutlet=\"\n matrixTemplate;\n context: {\n moDataList: matrixMoList$ | async,\n columns: horizontalRows,\n conditionalFormats: conditionalFormats$ | async,\n deviceName: deviceName$ | async,\n deviceSize: deviceSize$ | async,\n title: title$ | async,\n inlineEditMode: inlineEditMode$ | async,\n allowInlineEdit: allowInlineEdit$ | async,\n hideToolbar: hideToolbar$ | async,\n contentDensity: contentDensity$ | async,\n activeCell: activeCell,\n valueControlFieldCaption: valueControlFieldCaption,\n valueType: valueType,\n formSetting: context.Setting.FormTemplate,\n matrixWidthType: matrixWidthType,\n cellWidth: cellWidth,\n verticalLabelWidth: verticalLabelWidth,\n fitWidth: fitWidth,\n access: context.Setting.Extra?.DefaultCommandsAccess,\n hasSelected: hasSelected$ | async,\n containerWidth: containerWidth$ | async,\n formLayout: formLayout\n }\n \"\n></ng-container>\n\n<ng-template\n #matrixTemplate\n let-moDataList=\"moDataList\"\n let-deviceName=\"deviceName\"\n let-deviceSize=\"deviceSize\"\n let-title=\"title\"\n let-inlineEditMode=\"inlineEditMode\"\n let-allowInlineEdit=\"allowInlineEdit\"\n let-hideToolbar=\"hideToolbar\"\n let-contentDensity=\"contentDensity\"\n let-columns=\"columns\"\n let-conditionalFormats=\"conditionalFormats\"\n let-activeCell=\"activeCell\"\n let-valueControlFieldCaption=\"valueControlFieldCaption\"\n let-valueType=\"valueType\"\n let-formSetting=\"formSetting\"\n let-matrixWidthType=\"matrixWidthType\"\n let-cellWidth=\"cellWidth\"\n let-verticalLabelWidth=\"verticalLabelWidth\"\n let-fitWidth=\"fitWidth\"\n let-access=\"access\"\n let-hasSelected=\"hasSelected\"\n let-containerWidth=\"containterWidth\"\n let-formLayout=\"formLayout\"\n>\n <bsu-ulv-toolbar\n [hideToolbar]=\"hideToolbar\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [title]=\"title\"\n [hasSelected]=\"hasSelected\"\n [access]=\"access\"\n [contentDensity]=\"contentDensity\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [moDataListCount]=\"moDataList.length\"\n (sortClick)=\"onSortSettings(deviceName)\"\n (editModeClick)=\"onEditMode()\"\n >\n <button\n fd-toolbar-item\n fd-button\n [fdType]=\"'emphasized'\"\n [label]=\"'Save' | bbbTranslate\"\n [glyph]=\"'save'\"\n (click)=\"onSave()\"\n ></button>\n <fd-split-button\n fd-toolbar-item\n [mainAction]=\"{\n keepMainAction: true,\n mainActionTitle: splitBtnTitle\n }\"\n >\n <fd-menu>\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"onChangeView(true)\">\n <span fd-menu-title>\n {{ widthTypeEnum.FitWidth }}\n </span>\n </div>\n </li>\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"onChangeView(false)\">\n <span fd-menu-title>\n {{ widthTypeEnum.StaticWidth }}\n </span>\n </div>\n </li>\n </fd-menu>\n </fd-split-button>\n\n <ng-template #splitBtnTitle>\n <span>{{ fitWidth ? widthTypeEnum.FitWidth : widthTypeEnum.StaticWidth }}</span>\n </ng-template>\n </bsu-ulv-toolbar>\n <bsu-ui-matrix-view\n [moDataList]=\"moDataList\"\n [columns]=\"columns\"\n [conditionalFormats]=\"conditionalFormats\"\n [activeCell]=\"activeCell\"\n [valueControlFieldCaption]=\"valueControlFieldCaption\"\n [valueType]=\"valueType\"\n [access]=\"access\"\n [formLayout]=\"formLayout\"\n [matrixWidthType]=\"matrixWidthType\"\n [cellWidth]=\"cellWidth\"\n [cellHeight]=\"cellHeight\"\n [verticalLabelWidth]=\"verticalLabelWidth\"\n [fitWidth]=\"fitWidth\"\n [minWidth]=\"minWidth\"\n [minHeight]=\"minHeight\"\n [rowResizer]=\"rowResizer\"\n [enableResizing]=\"enableResizing\"\n [containerWidth]=\"containerWidth\"\n (selectionChange)=\"onSelectionChange($event)\"\n ></bsu-ui-matrix-view>\n</ng-template>\n", styles: [":host{display:flex;width:100%;height:100%;flex-direction:column}.fd-table__row th.fd-table__cell{background-color:var(--sapList_HeaderBackground, #f2f2f2);color:var(--sapList_HeaderTextColor, #32363a)}\n"] }]
104
- }] });
105
- export var WidthTypeEnum;
106
- (function (WidthTypeEnum) {
107
- WidthTypeEnum["FitWidth"] = "\u0633\u062A\u0648\u0646 \u0647\u0627\u06CC \u0647\u0645 \u0639\u0631\u0636";
108
- WidthTypeEnum["StaticWidth"] = "\u0633\u062A\u0648\u0646 \u0647\u0627\u06CC \u0628\u0627 \u0639\u0631\u0636 \u062F\u0644\u062E\u0648\u0627\u0647";
109
- })(WidthTypeEnum || (WidthTypeEnum = {}));
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktZWRpdGFibGUtZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi91aS1lZGl0YWJsZS1ncmlkL3VpLWVkaXRhYmxlLWdyaWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktZWRpdGFibGUtZ3JpZC91aS1lZGl0YWJsZS1ncmlkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJELE9BQU8sRUFDSCx5QkFBeUIsRUFDekIsZ0JBQWdCLEVBSW5CLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7Ozs7QUFVM0UsTUFBTSxPQUFPLHVCQUNULFNBQVEsd0JBQWlEO0lBUjdEOztRQWtCSSxjQUFTLEdBQUcsR0FBRyxDQUFDO1FBQ2hCLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIsdUJBQWtCLEdBQUcsR0FBRyxDQUFDO1FBQ3pCLGFBQVEsR0FBRyxHQUFHLENBQUM7UUFDZixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ2YsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIsZUFBVSxHQUFHLElBQUksQ0FBQztRQUNsQixrQkFBYSxHQUFHLGFBQWEsQ0FBQztRQUM5QixhQUFRLEdBQUcsSUFBSSxDQUFDO0tBNkZuQjtJQTFGRyxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENB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LENBQUMsU0FBUyxFQUFFO2dCQUM5QixVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3pFO2lCQUFNO2dCQUNILFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7YUFDL0U7UUFDTCxDQUFDLENBQUMsQ0FDTDthQUNBLFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7O29IQS9HUSx1QkFBdUI7d0dBQXZCLHVCQUF1QiwrQ0FGckIsQ0FBQyxnQkFBZ0IsQ0FBQyxpRENsQmpDLG1vSkFnSUE7MkZENUdhLHVCQUF1QjtrQkFQbkMsU0FBUzsrQkFDSSxzQkFBc0IsbUJBR2YsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLGdCQUFnQixDQUFDOztBQW1IakMsTUFBTSxDQUFOLElBQVksYUFHWDtBQUhELFdBQVksYUFBYTtJQUNyQix5R0FBNEIsQ0FBQTtJQUM1QixpSkFBc0MsQ0FBQTtBQUMxQyxDQUFDLEVBSFcsYUFBYSxLQUFiLGFBQWEsUUFHeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBtYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHtcclxuICAgIGNyZWF0ZUdyaWRFZGl0b3JGb3JtUGFuZWwsXHJcbiAgICBGb3JtUGFuZWxTZXJ2aWNlLFxyXG4gICAgTGF5b3V0U2V0dGluZyxcclxuICAgIE1ldGFvYmplY3REYXRhTW9kZWwsXHJcbiAgICBVaVJlcG9ydFZpZXdCYXNlU2V0dGluZ1xyXG59IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuaW1wb3J0IHsgU2FwVWlSZXBvcnRCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vc2FwLXVpLXJlcG9ydC1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtdWktZWRpdGFibGUtZ3JpZCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vdWktZWRpdGFibGUtZ3JpZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi91aS1lZGl0YWJsZS1ncmlkLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHByb3ZpZGVyczogW0Zvcm1QYW5lbFNlcnZpY2VdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVaUVkaXRhYmxlR3JpZENvbXBvbmVudFxyXG4gICAgZXh0ZW5kcyBTYXBVaVJlcG9ydEJhc2VDb21wb25lbnQ8VWlSZXBvcnRWaWV3QmFzZVNldHRpbmc+XHJcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95XHJcbntcclxuICAgIHZhbHVlQ29udHJvbEZpZWxkQ2FwdGlvbjtcclxuICAgIHZhbHVlRGJOYW1lO1xyXG4gICAgaG9yaXpvbnRhbFJvd3M6IGFueVtdO1xyXG4gICAgYWN0aXZlQ2VsbDtcclxuICAgIHZhbHVlVHlwZTtcclxuICAgIGZvcm1MYXlvdXQ6IExheW91dFNldHRpbmc7XHJcbiAgICBtYXRyaXhXaWR0aFR5cGU7XHJcbiAgICBjZWxsV2lkdGggPSAxMDA7XHJcbiAgICBjZWxsSGVpZ2h0ID0gMzg7XHJcbiAgICB2ZXJ0aWNhbExhYmVsV2lkdGggPSAxMDA7XHJcbiAgICBtaW5XaWR0aCA9IDEwMDtcclxuICAgIG1pbkhlaWdodCA9IDIyO1xyXG4gICAgZW5hYmxlUmVzaXppbmcgPSB0cnVlO1xyXG4gICAgcm93UmVzaXplciA9IHRydWU7XHJcbiAgICB3aWR0aFR5cGVFbnVtID0gV2lkdGhUeXBlRW51bTtcclxuICAgIGZpdFdpZHRoID0gdHJ1ZTtcclxuICAgIG1hdHJpeE1vTGlzdCQ6IE9ic2VydmFibGU8TWV0YW9iamVjdERhdGFNb2RlbFtdPjtcclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgICAgIHRoaXMudmFsdWVEYk5hbWUgPSB0aGlzLmNvbnRleHQuU2V0dGluZy5WaWV3LlZhbHVlRGJOYW1lO1xyXG4gICAgICAgIHRoaXMudmFsdWVUeXBlID0gdGhpcy5jb250ZXh0LnZhbHVlRmllbGRUeXBlO1xyXG4gICAgICAgIGNvbnN0IGZvcm1TZXR0aW5nID0gdGhpcy5jb250ZXh0LlNldHRpbmcuRm9ybVRlbXBsYXRlO1xyXG4gICAgICAgIC8vIHRoaXMuZm9ybUxheW91dCA9IHRoaXMuY29udGV4dC5TZXR0aW5nLkZvcm1UZW1wbGF0ZS5WaWV3LkNvbnRyb2xJbmZvO1xyXG4gICAgICAgIHRoaXMuaG9yaXpvbnRhbFJvd3MgPSB0aGlzLmNvbnRleHQuU2V0dGluZy5WaWV3Lkhvcml6b250YWxDb2x1bW47XHJcbiAgICAgICAgdGhpcy52YWx1ZUNvbnRyb2xGaWVsZENhcHRpb24gPSB0aGlzLmNvbnRleHQuU2V0dGluZy5Gb3JtVGVtcGxhdGUuVmlldy5Db250cm9sSW5mby5maW5kKFxyXG4gICAgICAgICAgICAoY29sKSA9PiBjb2wuQ29udHJvbE5hbWUgPT09IHRoaXMudmFsdWVEYk5hbWVcclxuICAgICAgICApLkNvbnRyb2xGaWVsZENhcHRpb247XHJcbiAgICAgICAgLy8gdGhlcmUgaXMgZGlmZmVyZW50IGJldHdlZW4gdWx2IG1vZGF0YWxpc3QgYW5kIHZpZXdlciBkYXRhbGlzdC4gaW4gbWF0cml4dmlld2VyIGFkYXB0ZXIgbW9kYXRhbGlzdCB0cmFuc2Zvcm1lZC5cclxuICAgICAgICAvLyBzbyB3ZSBuZWVkIHRlbGwgdG8gdWx2bWFpbnNlcnZpY2UgdG8gdXBkYXRlIG1vZGF0YWxpc3RcclxuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5yZVNldE1vRGF0YUxpc3QodGhpcy5jb250ZXh0Lm1vRGF0YUxpc3QpO1xyXG5cclxuICAgICAgICB0aGlzLm1hdHJpeE1vTGlzdCQgPSB0aGlzLm1vRGF0YUxpc3QkLnBpcGUoXHJcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSxcclxuICAgICAgICAgICAgbWFwKChtb0RhdGFMaXN0KSA9PiB0aGlzLl9tYXRyaXhNb0xpc3QobW9EYXRhTGlzdCkpXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLmZvcm1QYW5lbEN0cmxyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybVBhbmVsQ3RybHIgPSBjcmVhdGVHcmlkRWRpdG9yRm9ybVBhbmVsKFxyXG4gICAgICAgICAgICAgICAgZm9ybVNldHRpbmcsXHJcbiAgICAgICAgICAgICAgICBmb3JtU2V0dGluZy5EYXRhLk1vLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5fdHlwZURlZklkLFxyXG4gICAgICAgICAgICAgICAgbnVsbFxyXG4gICAgICAgICAgICAgICAgLy8gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUodGhpcy5jb250ZXh0LlNldHRpbmcsICdFeHRyYS5SZWxhdGlvbicpXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGNvbnN0IGZvcm1QYW5lbEN0cmxyID0gdGhpcy5mb3JtUGFuZWxDdHJscjtcclxuICAgICAgICAgICAgdGhpcy5mb3JtTGF5b3V0ID0gZm9ybVBhbmVsQ3RybHIuU2V0dGluZy5WaWV3LkxheW91dDk0O1xyXG5cclxuICAgICAgICAgICAgZm9ybVBhbmVsQ3RybHIub24oe1xyXG4gICAgICAgICAgICAgICAgVmFsdWVDaGFuZ2U6IHRoaXMuX2NlbGxWYWx1ZUNoYW5nZS5iaW5kKHRoaXMpXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1QYW5lbEN0cmxyLkxvYWRBbmRDcmVhdGUobnVsbCwgZmFsc2UsIGZhbHNlLCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjdXN0b21Gb3JtUGFuZWxVaSA9IGZvcm1QYW5lbEN0cmxyLkFkYXB0ZXIuQ29udHJvbDtcclxuICAgICAgICAgICAgICAgIGN1c3RvbUZvcm1QYW5lbFVpLlJlZnJlc2ggPSAoKSA9PiB7fTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2Zvcm1wYW5lbFNlcnZpY2UuY29udGV4dCA9IGZvcm1QYW5lbEN0cmxyLkFkYXB0ZXIuQ29udHJvbDtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgb25TYXZlKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY29udGV4dC5maXJlRXZlbnQoXHJcbiAgICAgICAgICAgICdTYXZlQmF0Y2hDbGlja2VkJyxcclxuICAgICAgICAgICAgdGhpcy5tb0RhdGFMaXN0LmZpbHRlcigoYykgPT4gYy4kTW9kaWZpZWQpLm1hcCgoYykgPT4gKHsgZGF0YTogYywgbW9kaWZpZWQ6IGMuJE1vZGlmaWVkIH0pKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbiAgICBvblNlbGVjdGlvbkNoYW5nZShjZWxsSW5mbzogeyB2YWx1ZTogYW55OyBpbmRleDogeyBpOiBudW1iZXI7IGo6IG51bWJlciB9IH0pOiB2b2lkIHtcclxuICAgICAgICBjb25zdCB7IHZhbHVlLCBpbmRleCB9ID0gY2VsbEluZm87XHJcbiAgICAgICAgdGhpcy5hY3RpdmVDZWxsID0gaW5kZXg7XHJcbiAgICAgICAgLy8gY29uc3QgbmV3TW8gPSBnZXROZXdNb0dyaWRFZGl0b3IodGhpcy5jb250ZXh0LlNldHRpbmcuRm9ybVRlbXBsYXRlLCB0aGlzLl90eXBlRGVmSWQpO1xyXG4gICAgICAgIC8vIG5ld01vW3RoaXMudmFsdWVEYk5hbWVdID0gdmFsdWU7XHJcblxyXG4gICAgICAgIGNvbnN0IGNvbnRyb2xVaSA9IHRoaXMuZm9ybVBhbmVsQ3RybHIuR2V0RmllbGRsQnlOYW1lKHRoaXMudmFsdWVEYk5hbWUpO1xyXG4gICAgICAgIGNvbnRyb2xVaS5TZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBvbkNoYW5nZVZpZXcoaXNGaXQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZpdFdpZHRoID0gaXNGaXQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyogZXNsaW50LWRpc2FibGUgKi9cclxuICAgIHByb3RlY3RlZCBfc2VsZWN0KG1vLCBpbmRleCk6IE1ldGFvYmplY3REYXRhTW9kZWwge1xyXG4gICAgICAgIHJldHVybiBtbztcclxuICAgIH1cclxuICAgIHByaXZhdGUgX21hdHJpeE1vTGlzdChtb0RhdGFMaXN0KTogTWV0YW9iamVjdERhdGFNb2RlbFtdIHtcclxuICAgICAgICBtb0RhdGFMaXN0LmZvckVhY2goKG1vKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaG9yaXpvbnRhbFJvd3MuZm9yRWFjaCgoY29sKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAobW9bY29sLkNhcHRpb25dID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICBtb1tjb2wuQ2FwdGlvbl0gPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gbW9EYXRhTGlzdDtcclxuICAgIH1cclxuICAgIHByaXZhdGUgX2NlbGxWYWx1ZUNoYW5nZShzZW5kZXIpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBpbmRleEkgPSB0aGlzLmFjdGl2ZUNlbGwuaTtcclxuICAgICAgICBjb25zdCBpbmRleEogPSB0aGlzLmFjdGl2ZUNlbGwuajtcclxuICAgICAgICB0aGlzLm1vRGF0YUxpc3QkXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpLFxyXG4gICAgICAgICAgICAgICAgdGFwKChtb0RhdGFMaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbW9EYXRhTGlzdFtpbmRleEldW3RoaXMuaG9yaXpvbnRhbFJvd3NbaW5kZXhKXS5DYXB0aW9uXSA9IHNlbmRlci5Nb1t0aGlzLnZhbHVlRGJOYW1lXTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAobW9EYXRhTGlzdFtpbmRleEldLiRNb2RpZmllZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtb0RhdGFMaXN0W2luZGV4SV0uJE1vZGlmaWVkW3RoaXMuaG9yaXpvbnRhbFJvd3NbaW5kZXhKXS5DYXB0aW9uXSA9IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbW9EYXRhTGlzdFtpbmRleEldLiRNb2RpZmllZCA9IHsgW3RoaXMuaG9yaXpvbnRhbFJvd3NbaW5kZXhKXS5DYXB0aW9uXTogMSB9O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG59XHJcbmV4cG9ydCBlbnVtIFdpZHRoVHlwZUVudW0ge1xyXG4gICAgRml0V2lkdGggPSAn2LPYqtmI2YYg2YfYp9uMINmH2YUg2LnYsdi2JyxcclxuICAgIFN0YXRpY1dpZHRoID0gJ9iz2KrZiNmGINmH2KfbjCDYqNinINi52LHYtiDYr9mE2K7ZiNin2YcnXHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lclxuICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgIG1hdHJpeFRlbXBsYXRlO1xuICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICBtb0RhdGFMaXN0OiBtYXRyaXhNb0xpc3QkIHwgYXN5bmMsXG4gICAgICAgICAgICBjb2x1bW5zOiBob3Jpem9udGFsUm93cyxcbiAgICAgICAgICAgIGNvbmRpdGlvbmFsRm9ybWF0czogY29uZGl0aW9uYWxGb3JtYXRzJCB8IGFzeW5jLFxuICAgICAgICAgICAgZGV2aWNlTmFtZTogZGV2aWNlTmFtZSQgfCBhc3luYyxcbiAgICAgICAgICAgIGRldmljZVNpemU6IGRldmljZVNpemUkIHwgYXN5bmMsXG4gICAgICAgICAgICB0aXRsZTogdGl0bGUkIHwgYXN5bmMsXG4gICAgICAgICAgICBpbmxpbmVFZGl0TW9kZTogaW5saW5lRWRpdE1vZGUkIHwgYXN5bmMsXG4gICAgICAgICAgICBhbGxvd0lubGluZUVkaXQ6IGFsbG93SW5saW5lRWRpdCQgfCBhc3luYyxcbiAgICAgICAgICAgIGhpZGVUb29sYmFyOiBoaWRlVG9vbGJhciQgfCBhc3luYyxcbiAgICAgICAgICAgIGNvbnRlbnREZW5zaXR5OiBjb250ZW50RGVuc2l0eSQgfCBhc3luYyxcbiAgICAgICAgICAgIGFjdGl2ZUNlbGw6IGFjdGl2ZUNlbGwsXG4gICAgICAgICAgICB2YWx1ZUNvbnRyb2xGaWVsZENhcHRpb246IHZhbHVlQ29udHJvbEZpZWxkQ2FwdGlvbixcbiAgICAgICAgICAgIHZhbHVlVHlwZTogdmFsdWVUeXBlLFxuICAgICAgICAgICAgZm9ybVNldHRpbmc6IGNvbnRleHQuU2V0dGluZy5Gb3JtVGVtcGxhdGUsXG4gICAgICAgICAgICBtYXRyaXhXaWR0aFR5cGU6IG1hdHJpeFdpZHRoVHlwZSxcbiAgICAgICAgICAgIGNlbGxXaWR0aDogY2VsbFdpZHRoLFxuICAgICAgICAgICAgdmVydGljYWxMYWJlbFdpZHRoOiB2ZXJ0aWNhbExhYmVsV2lkdGgsXG4gICAgICAgICAgICBmaXRXaWR0aDogZml0V2lkdGgsXG4gICAgICAgICAgICBhY2Nlc3M6IGNvbnRleHQuU2V0dGluZy5FeHRyYT8uRGVmYXVsdENvbW1hbmRzQWNjZXNzLFxuICAgICAgICAgICAgaGFzU2VsZWN0ZWQ6IGhhc1NlbGVjdGVkJCB8IGFzeW5jLFxuICAgICAgICAgICAgY29udGFpbmVyV2lkdGg6IGNvbnRhaW5lcldpZHRoJCB8IGFzeW5jLFxuICAgICAgICAgICAgZm9ybUxheW91dDogZm9ybUxheW91dFxuICAgICAgICB9XG4gICAgXCJcbj48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlXG4gICAgI21hdHJpeFRlbXBsYXRlXG4gICAgbGV0LW1vRGF0YUxpc3Q9XCJtb0RhdGFMaXN0XCJcbiAgICBsZXQtZGV2aWNlTmFtZT1cImRldmljZU5hbWVcIlxuICAgIGxldC1kZXZpY2VTaXplPVwiZGV2aWNlU2l6ZVwiXG4gICAgbGV0LXRpdGxlPVwidGl0bGVcIlxuICAgIGxldC1pbmxpbmVFZGl0TW9kZT1cImlubGluZUVkaXRNb2RlXCJcbiAgICBsZXQtYWxsb3dJbmxpbmVFZGl0PVwiYWxsb3dJbmxpbmVFZGl0XCJcbiAgICBsZXQtaGlkZVRvb2xiYXI9XCJoaWRlVG9vbGJhclwiXG4gICAgbGV0LWNvbnRlbnREZW5zaXR5PVwiY29udGVudERlbnNpdHlcIlxuICAgIGxldC1jb2x1bW5zPVwiY29sdW1uc1wiXG4gICAgbGV0LWNvbmRpdGlvbmFsRm9ybWF0cz1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXG4gICAgbGV0LWFjdGl2ZUNlbGw9XCJhY3RpdmVDZWxsXCJcbiAgICBsZXQtdmFsdWVDb250cm9sRmllbGRDYXB0aW9uPVwidmFsdWVDb250cm9sRmllbGRDYXB0aW9uXCJcbiAgICBsZXQtdmFsdWVUeXBlPVwidmFsdWVUeXBlXCJcbiAgICBsZXQtZm9ybVNldHRpbmc9XCJmb3JtU2V0dGluZ1wiXG4gICAgbGV0LW1hdHJpeFdpZHRoVHlwZT1cIm1hdHJpeFdpZHRoVHlwZVwiXG4gICAgbGV0LWNlbGxXaWR0aD1cImNlbGxXaWR0aFwiXG4gICAgbGV0LXZlcnRpY2FsTGFiZWxXaWR0aD1cInZlcnRpY2FsTGFiZWxXaWR0aFwiXG4gICAgbGV0LWZpdFdpZHRoPVwiZml0V2lkdGhcIlxuICAgIGxldC1hY2Nlc3M9XCJhY2Nlc3NcIlxuICAgIGxldC1oYXNTZWxlY3RlZD1cImhhc1NlbGVjdGVkXCJcbiAgICBsZXQtY29udGFpbmVyV2lkdGg9XCJjb250YWludGVyV2lkdGhcIlxuICAgIGxldC1mb3JtTGF5b3V0PVwiZm9ybUxheW91dFwiXG4+XG4gICAgPGJzdS11bHYtdG9vbGJhclxuICAgICAgICBbaGlkZVRvb2xiYXJdPVwiaGlkZVRvb2xiYXJcIlxuICAgICAgICBbZGV2aWNlTmFtZV09XCJkZXZpY2VOYW1lXCJcbiAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgIFt0aXRsZV09XCJ0aXRsZVwiXG4gICAgICAgIFtoYXNTZWxlY3RlZF09XCJoYXNTZWxlY3RlZFwiXG4gICAgICAgIFthY2Nlc3NdPVwiYWNjZXNzXCJcbiAgICAgICAgW2NvbnRlbnREZW5zaXR5XT1cImNvbnRlbnREZW5zaXR5XCJcbiAgICAgICAgW2lubGluZUVkaXRNb2RlXT1cImlubGluZUVkaXRNb2RlXCJcbiAgICAgICAgW2FsbG93SW5saW5lRWRpdF09XCJhbGxvd0lubGluZUVkaXRcIlxuICAgICAgICBbbW9EYXRhTGlzdENvdW50XT1cIm1vRGF0YUxpc3QubGVuZ3RoXCJcbiAgICAgICAgKHNvcnRDbGljayk9XCJvblNvcnRTZXR0aW5ncyhkZXZpY2VOYW1lKVwiXG4gICAgICAgIChlZGl0TW9kZUNsaWNrKT1cIm9uRWRpdE1vZGUoKVwiXG4gICAgPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgW2ZkVHlwZV09XCInZW1waGFzaXplZCdcIlxuICAgICAgICAgICAgW2xhYmVsXT1cIidTYXZlJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbZ2x5cGhdPVwiJ3NhdmUnXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvblNhdmUoKVwiXG4gICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgPGZkLXNwbGl0LWJ1dHRvblxuICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgICAgICBbbWFpbkFjdGlvbl09XCJ7XG4gICAgICAgICAgICAgICAga2VlcE1haW5BY3Rpb246IHRydWUsXG4gICAgICAgICAgICAgICAgbWFpbkFjdGlvblRpdGxlOiBzcGxpdEJ0blRpdGxlXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGZkLW1lbnU+XG4gICAgICAgICAgICAgICAgPGxpIGZkLW1lbnUtaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1tZW51LWludGVyYWN0aXZlIChjbGljayk9XCJvbkNoYW5nZVZpZXcodHJ1ZSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLW1lbnUtdGl0bGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgd2lkdGhUeXBlRW51bS5GaXRXaWR0aCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDxsaSBmZC1tZW51LWl0ZW0+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtbWVudS1pbnRlcmFjdGl2ZSAoY2xpY2spPVwib25DaGFuZ2VWaWV3KGZhbHNlKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbWVudS10aXRsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB3aWR0aFR5cGVFbnVtLlN0YXRpY1dpZHRoIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8L2ZkLW1lbnU+XG4gICAgICAgIDwvZmQtc3BsaXQtYnV0dG9uPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjc3BsaXRCdG5UaXRsZT5cbiAgICAgICAgICAgIDxzcGFuPnt7IGZpdFdpZHRoID8gd2lkdGhUeXBlRW51bS5GaXRXaWR0aCA6IHdpZHRoVHlwZUVudW0uU3RhdGljV2lkdGggfX08L3NwYW4+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9ic3UtdWx2LXRvb2xiYXI+XG4gICAgPGJzdS11aS1tYXRyaXgtdmlld1xuICAgICAgICBbbW9EYXRhTGlzdF09XCJtb0RhdGFMaXN0XCJcbiAgICAgICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXG4gICAgICAgIFtjb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICAgICAgW2FjdGl2ZUNlbGxdPVwiYWN0aXZlQ2VsbFwiXG4gICAgICAgIFt2YWx1ZUNvbnRyb2xGaWVsZENhcHRpb25dPVwidmFsdWVDb250cm9sRmllbGRDYXB0aW9uXCJcbiAgICAgICAgW3ZhbHVlVHlwZV09XCJ2YWx1ZVR5cGVcIlxuICAgICAgICBbYWNjZXNzXT1cImFjY2Vzc1wiXG4gICAgICAgIFtmb3JtTGF5b3V0XT1cImZvcm1MYXlvdXRcIlxuICAgICAgICBbbWF0cml4V2lkdGhUeXBlXT1cIm1hdHJpeFdpZHRoVHlwZVwiXG4gICAgICAgIFtjZWxsV2lkdGhdPVwiY2VsbFdpZHRoXCJcbiAgICAgICAgW2NlbGxIZWlnaHRdPVwiY2VsbEhlaWdodFwiXG4gICAgICAgIFt2ZXJ0aWNhbExhYmVsV2lkdGhdPVwidmVydGljYWxMYWJlbFdpZHRoXCJcbiAgICAgICAgW2ZpdFdpZHRoXT1cImZpdFdpZHRoXCJcbiAgICAgICAgW21pbldpZHRoXT1cIm1pbldpZHRoXCJcbiAgICAgICAgW21pbkhlaWdodF09XCJtaW5IZWlnaHRcIlxuICAgICAgICBbcm93UmVzaXplcl09XCJyb3dSZXNpemVyXCJcbiAgICAgICAgW2VuYWJsZVJlc2l6aW5nXT1cImVuYWJsZVJlc2l6aW5nXCJcbiAgICAgICAgW2NvbnRhaW5lcldpZHRoXT1cImNvbnRhaW5lcldpZHRoXCJcbiAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJvblNlbGVjdGlvbkNoYW5nZSgkZXZlbnQpXCJcbiAgICA+PC9ic3UtdWktbWF0cml4LXZpZXc+XG48L25nLXRlbXBsYXRlPlxuIl19