barsa-sap-ui 2.0.135 → 2.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (244) hide show
  1. package/fesm2022/barsa-sap-ui.mjs +984 -957
  2. package/fesm2022/barsa-sap-ui.mjs.map +1 -1
  3. package/lib/barsa-sap-ui.module.d.ts +5 -4
  4. package/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.d.ts +3 -3
  5. package/lib/ly-tab-container/ly-tab-container.component.d.ts +2 -4
  6. package/lib/ly-tab-page/ly-tab-page.component.d.ts +2 -2
  7. package/lib/report-view-renderer.directive.d.ts +1 -1
  8. package/lib/ui-map/ui-map.component.d.ts +2 -0
  9. package/package.json +3 -5
  10. package/esm2022/barsa-sap-ui.mjs +0 -5
  11. package/esm2022/lib/apply-conditional-formmatings.directive.mjs +0 -89
  12. package/esm2022/lib/avatar-size.pipe.mjs +0 -40
  13. package/esm2022/lib/barsa-answer-card/barsa-answer-card.component.mjs +0 -41
  14. package/esm2022/lib/barsa-asp-viewer/barsa-asp-viewer.component.mjs +0 -145
  15. package/esm2022/lib/barsa-bar-panel/barsa-bar-panel.component.mjs +0 -23
  16. package/esm2022/lib/barsa-base-panel/barsa-base-layout-panel.component.mjs +0 -29
  17. package/esm2022/lib/barsa-breadcrumbs/barsa-breadcrumbs.component.mjs +0 -24
  18. package/esm2022/lib/barsa-card-layout-panel/barsa-card-layout-panel.component.mjs +0 -24
  19. package/esm2022/lib/barsa-card-row-payam/barsa-card-row-payam.component.mjs +0 -30
  20. package/esm2022/lib/barsa-cartable-form/barsa-cartable-form.component.mjs +0 -41
  21. package/esm2022/lib/barsa-cartable-template/barsa-cartable-template.component.mjs +0 -24
  22. package/esm2022/lib/barsa-chat/barsa-chat.component.mjs +0 -242
  23. package/esm2022/lib/barsa-chat/chat.model.mjs +0 -8
  24. package/esm2022/lib/barsa-chat-content/barsa-chat-content.component.mjs +0 -13
  25. package/esm2022/lib/barsa-chat-content-toolbar/barsa-chat-content-toolbar.component.mjs +0 -22
  26. package/esm2022/lib/barsa-chat-list/barsa-chat-list.component.mjs +0 -66
  27. package/esm2022/lib/barsa-chat-message/barsa-chat-message.component.mjs +0 -78
  28. package/esm2022/lib/barsa-chat-thread/barsa-chat-thread.component.mjs +0 -22
  29. package/esm2022/lib/barsa-chat-threads-list/barsa-chat-threads-list.component.mjs +0 -13
  30. package/esm2022/lib/barsa-chat-threads-list-toolbar/barsa-chat-threads-list-toolbar.component.mjs +0 -15
  31. package/esm2022/lib/barsa-chip/barsa-chip.component.mjs +0 -72
  32. package/esm2022/lib/barsa-column-indicator/barsa-column-indicator.component.mjs +0 -23
  33. package/esm2022/lib/barsa-column-rownumber/barsa-column-rownumber.component.mjs +0 -14
  34. package/esm2022/lib/barsa-custom-inline-edit/barsa-custom-inline-edit.component.mjs +0 -14
  35. package/esm2022/lib/barsa-custom-inline-edit-row/barsa-custom-inline-edit-row.component.mjs +0 -26
  36. package/esm2022/lib/barsa-date-time-picker/barsa-date-time-picker.component.mjs +0 -71
  37. package/esm2022/lib/barsa-dynamic-field/barsa-dynamic-field.component.mjs +0 -40
  38. package/esm2022/lib/barsa-enum-menu-button/barsa-enum-menu-button.component.mjs +0 -61
  39. package/esm2022/lib/barsa-field-key-value/barsa-field-key-value.component.mjs +0 -45
  40. package/esm2022/lib/barsa-form-side-content/barsa-form-side-content.component.mjs +0 -58
  41. package/esm2022/lib/barsa-grid-layout-panel/barsa-grid-layout-panel.component.mjs +0 -27
  42. package/esm2022/lib/barsa-group-cartable/barsa-cartable-group.component.mjs +0 -94
  43. package/esm2022/lib/barsa-horizontal-flex-panel/barsa-horizontal-flex-panel.component.mjs +0 -22
  44. package/esm2022/lib/barsa-linkable-items-panel/barsa-linkable-items-panel.component.mjs +0 -37
  45. package/esm2022/lib/barsa-list-file-linear/barsa-list-file-linear.component.mjs +0 -41
  46. package/esm2022/lib/barsa-list-file-linear-gmail/barsa-list-file-linear-gmail.component.mjs +0 -29
  47. package/esm2022/lib/barsa-list-layout-panel/barsa-list-layout-panel.component.mjs +0 -23
  48. package/esm2022/lib/barsa-modal/barsa-modal.component.mjs +0 -43
  49. package/esm2022/lib/barsa-monaco-editor/barsa-monaco-editor.component.mjs +0 -83
  50. package/esm2022/lib/barsa-network-offline/barsa-network-offline.component.mjs +0 -57
  51. package/esm2022/lib/barsa-pishnamayesh-payam/barsa-pishnamayesh-payam.component.mjs +0 -159
  52. package/esm2022/lib/barsa-question-answer-comments-section/barsa-question-answer-comments-section.component.mjs +0 -17
  53. package/esm2022/lib/barsa-question-answer-content-actions-section/barsa-question-answer-content-actions-section.component.mjs +0 -30
  54. package/esm2022/lib/barsa-question-answer-creator-time-section/barsa-question-answer-creator-time-section.component.mjs +0 -14
  55. package/esm2022/lib/barsa-question-answer-form/barsa-question-answer-form.component.mjs +0 -34
  56. package/esm2022/lib/barsa-question-answer-form-add-comment/barsa-question-answer-form-add-comment.component.mjs +0 -46
  57. package/esm2022/lib/barsa-question-answer-vote-section/barsa-question-answer-vote-section.component.mjs +0 -79
  58. package/esm2022/lib/barsa-question-post/barsa-question-post.component.mjs +0 -30
  59. package/esm2022/lib/barsa-report-card-flex-view/barsa-report-card-flex-view.component.mjs +0 -31
  60. package/esm2022/lib/barsa-report-checkbox-switch-button/barsa-report-checkbox-switch-button.component.mjs +0 -28
  61. package/esm2022/lib/barsa-report-one-of-list/barsa-report-one-of-list.component.mjs +0 -102
  62. package/esm2022/lib/barsa-row-inline-actionlist/barsa-row-inline-actionlist.component.mjs +0 -26
  63. package/esm2022/lib/barsa-sap-ui-routing.module.mjs +0 -18
  64. package/esm2022/lib/barsa-sap-ui.module.mjs +0 -370
  65. package/esm2022/lib/barsa-search-form/barsa-search-form.component.mjs +0 -29
  66. package/esm2022/lib/barsa-simple-form/barsa-simple-form.component.mjs +0 -170
  67. package/esm2022/lib/barsa-tab-route-manager/barsa-tab-route-manager.component.mjs +0 -18
  68. package/esm2022/lib/barsa-table-column/barsa-table-column.component.mjs +0 -29
  69. package/esm2022/lib/barsa-table-header/barsa-table-header.component.mjs +0 -222
  70. package/esm2022/lib/barsa-table-row/barsa-table-row.component.mjs +0 -87
  71. package/esm2022/lib/barsa-tag-categories/barsa-tag-categories.component.mjs +0 -60
  72. package/esm2022/lib/barsa-tag-chip/barsa-tag-chip.component.mjs +0 -26
  73. package/esm2022/lib/barsa-tags-category-row/barsa-tags-category-row.component.mjs +0 -23
  74. package/esm2022/lib/barsa-text-ellipsis/barsa-text-ellipsis.component.mjs +0 -37
  75. package/esm2022/lib/barsa-tinyemce/barsa-tinyemce.component.mjs +0 -418
  76. package/esm2022/lib/barsa-toolbaritem-search/barsa-toolbaritem-search.component.mjs +0 -36
  77. package/esm2022/lib/barsa-tree-item/barsa-tree-item.component.mjs +0 -153
  78. package/esm2022/lib/barsa-tree-item/node-has-one-depth-level.pipe.mjs +0 -19
  79. package/esm2022/lib/barsa-ulv-main/barsa-ulv-main.component.mjs +0 -216
  80. package/esm2022/lib/blob-viewer/blob-viewer.component.mjs +0 -74
  81. package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +0 -50
  82. package/esm2022/lib/captcha-field/captcha-field.component.mjs +0 -28
  83. package/esm2022/lib/card-item/card-item.component.mjs +0 -64
  84. package/esm2022/lib/card-view-content/card-view-content.component.mjs +0 -46
  85. package/esm2022/lib/col-renderer.directive.mjs +0 -46
  86. package/esm2022/lib/column-matrix-renderer/column-matrix-renderer.component.mjs +0 -56
  87. package/esm2022/lib/column-matrix-renderer/matrix-value.pipe.mjs +0 -60
  88. package/esm2022/lib/column-renderer/column-renderer.component.mjs +0 -88
  89. package/esm2022/lib/constants.mjs +0 -425
  90. package/esm2022/lib/custom-date-time/custom-date-time.component.mjs +0 -41
  91. package/esm2022/lib/device-info-field-base.mjs +0 -23
  92. package/esm2022/lib/dialog-handler.directive.mjs +0 -28
  93. package/esm2022/lib/download-files.directive.mjs +0 -33
  94. package/esm2022/lib/dynamic-page-size.pipe.mjs +0 -26
  95. package/esm2022/lib/file-in-dialog/file-in-dialog.component.mjs +0 -44
  96. package/esm2022/lib/file-viewer/file-viewer.component.mjs +0 -47
  97. package/esm2022/lib/file-viewer-content/file-viewer-content.component.mjs +0 -71
  98. package/esm2022/lib/file-viewer-popover/file-viewer-popover.component.mjs +0 -39
  99. package/esm2022/lib/form-dialog/form-dialog.component.mjs +0 -171
  100. package/esm2022/lib/form-dialog-less/form-dialog-less.component.mjs +0 -50
  101. package/esm2022/lib/form-toolbar/form-toolbar.component.mjs +0 -62
  102. package/esm2022/lib/form-toolbar-button/form-toolbar-button.component.mjs +0 -45
  103. package/esm2022/lib/form-wizard/form-wizard.component.mjs +0 -21
  104. package/esm2022/lib/fullscreen-dialog.directive.mjs +0 -59
  105. package/esm2022/lib/fullscreen-files.directive.mjs +0 -42
  106. package/esm2022/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.mjs +0 -215
  107. package/esm2022/lib/gantt-dhtml-chart-view/gantt-dhtml-chart-view.component.mjs +0 -215
  108. package/esm2022/lib/global-search/global-search.component.mjs +0 -27
  109. package/esm2022/lib/global-search-module/global-search-module.component.mjs +0 -29
  110. package/esm2022/lib/global-search-panel/global-search-panel.component.mjs +0 -25
  111. package/esm2022/lib/header-avatar/header-avatar.component.mjs +0 -18
  112. package/esm2022/lib/htree-create-new/htree-create-new.component.mjs +0 -48
  113. package/esm2022/lib/hyperlink/hyperlink.component.mjs +0 -23
  114. package/esm2022/lib/index.mjs +0 -543
  115. package/esm2022/lib/inline-save-and-cancel/inline-save-and-cancel.component.mjs +0 -32
  116. package/esm2022/lib/layout-actions/layout-actions.component.mjs +0 -70
  117. package/esm2022/lib/layout-control/layout-control.component.mjs +0 -302
  118. package/esm2022/lib/layout-wizard/layout-wizard.component.mjs +0 -183
  119. package/esm2022/lib/list-item/list-item.component.mjs +0 -34
  120. package/esm2022/lib/ly-empty-space/ly-empty-space.component.mjs +0 -42
  121. package/esm2022/lib/ly-horizontal-layout/ly-horizontal-layout.component.mjs +0 -82
  122. package/esm2022/lib/ly-label/ly-label.component.mjs +0 -37
  123. package/esm2022/lib/ly-layout-container/ly-layout-container.component.mjs +0 -83
  124. package/esm2022/lib/ly-layout-container-of-root/ly-layout-container-of-root.component.mjs +0 -17
  125. package/esm2022/lib/ly-layout-field-label/ly-layout-field-label.component.mjs +0 -24
  126. package/esm2022/lib/ly-layout-panel/ly-layout-panel.component.mjs +0 -83
  127. package/esm2022/lib/ly-line/ly-line.component.mjs +0 -56
  128. package/esm2022/lib/ly-simple-label/ly-simple-label.component.mjs +0 -22
  129. package/esm2022/lib/ly-tab-container/ly-tab-container.component.mjs +0 -52
  130. package/esm2022/lib/ly-tab-page/ly-tab-page.component.mjs +0 -44
  131. package/esm2022/lib/ly-vertical-layout/ly-vertical-layout.component.mjs +0 -51
  132. package/esm2022/lib/manage-filters-report/manage-filters-report.component.mjs +0 -43
  133. package/esm2022/lib/mask/mask.component.mjs +0 -22
  134. package/esm2022/lib/message-strip/message-strip.component.mjs +0 -28
  135. package/esm2022/lib/models/grid-data-provider.mjs +0 -114
  136. package/esm2022/lib/models/grid-view.mjs +0 -2
  137. package/esm2022/lib/models/index.mjs +0 -2
  138. package/esm2022/lib/no-data/no-data.component.mjs +0 -31
  139. package/esm2022/lib/notification-item/notification-item.component.mjs +0 -57
  140. package/esm2022/lib/notification-popup.service.mjs +0 -92
  141. package/esm2022/lib/object-status-icon.pipe.mjs +0 -26
  142. package/esm2022/lib/progress-indicator/progress-indicator.component.mjs +0 -18
  143. package/esm2022/lib/report-navigator/report-navigator.component.mjs +0 -68
  144. package/esm2022/lib/report-new-top-form/report-new-top-form.component.mjs +0 -60
  145. package/esm2022/lib/report-search-fields-hidden-settings/report-search-fields-hidden-settings.component.mjs +0 -35
  146. package/esm2022/lib/report-search-fields-manage/report-search-fields-manage.component.mjs +0 -97
  147. package/esm2022/lib/report-search-panel-save/report-search-panel-save.component.mjs +0 -88
  148. package/esm2022/lib/report-tree-base.mjs +0 -386
  149. package/esm2022/lib/report-view-renderer.directive.mjs +0 -385
  150. package/esm2022/lib/responsive-toolbar/responsive-toolbar.component.mjs +0 -50
  151. package/esm2022/lib/responsive-toolbar-renderer/responsive-toolbar-renderer.component.mjs +0 -84
  152. package/esm2022/lib/rich-text-static/rich-text-static.component.mjs +0 -72
  153. package/esm2022/lib/sap-font-class.pipe.mjs +0 -29
  154. package/esm2022/lib/sap-font.pipe.mjs +0 -29
  155. package/esm2022/lib/sap-size.pipe.mjs +0 -27
  156. package/esm2022/lib/sap-ui-report-base.component.mjs +0 -805
  157. package/esm2022/lib/search-panel/search-panel.component.mjs +0 -63
  158. package/esm2022/lib/static-text/static-text.component.mjs +0 -15
  159. package/esm2022/lib/table-th.directive.mjs +0 -86
  160. package/esm2022/lib/title/title.component.mjs +0 -15
  161. package/esm2022/lib/ui-asp-report-viewer/ui-asp-report-viewer.component.mjs +0 -34
  162. package/esm2022/lib/ui-bpmn-viewer/ui-bpmn-viewer.component.mjs +0 -33
  163. package/esm2022/lib/ui-button/ui-button.component.mjs +0 -32
  164. package/esm2022/lib/ui-calendar/ui-calendar.component.mjs +0 -53
  165. package/esm2022/lib/ui-card-view/ui-card-view.component.mjs +0 -57
  166. package/esm2022/lib/ui-card-view-horizontal-group/ui-card-view-horizontal-group.component.mjs +0 -42
  167. package/esm2022/lib/ui-check-box/ui-check-box.component.mjs +0 -39
  168. package/esm2022/lib/ui-color-ui/ui-color-ui.component.mjs +0 -50
  169. package/esm2022/lib/ui-container-with-button/ui-container-with-button.component.mjs +0 -38
  170. package/esm2022/lib/ui-date-range-ex/ui-date-range-ex.component.mjs +0 -191
  171. package/esm2022/lib/ui-date-time/ui-date-time.component.mjs +0 -150
  172. package/esm2022/lib/ui-editable-grid/ui-editable-grid.component.mjs +0 -110
  173. package/esm2022/lib/ui-exception-form/ui-exception-form.component.mjs +0 -53
  174. package/esm2022/lib/ui-file-linear-list-box/ui-file-linear-list-box.component.mjs +0 -121
  175. package/esm2022/lib/ui-form-panel/ui-form-panel.component.mjs +0 -100
  176. package/esm2022/lib/ui-gantt-chart/ui-gantt-chart.component.mjs +0 -32
  177. package/esm2022/lib/ui-graph/ui-graph.component.mjs +0 -17
  178. package/esm2022/lib/ui-grid/ui-grid.component.mjs +0 -25
  179. package/esm2022/lib/ui-grid-columns/ui-grid-columns.component.mjs +0 -43
  180. package/esm2022/lib/ui-grid-filter-item/ui-grid-filter-item.component.mjs +0 -66
  181. package/esm2022/lib/ui-grid-filter-settings/ui-grid-filter-settings.component.mjs +0 -75
  182. package/esm2022/lib/ui-grid-sort-item/ui-grid-sort-item.component.mjs +0 -58
  183. package/esm2022/lib/ui-grid-sort-setting/ui-grid-sort-setting.component.mjs +0 -123
  184. package/esm2022/lib/ui-html-viewer/ui-html-viewer.component.mjs +0 -16
  185. package/esm2022/lib/ui-info-bar-panel/ui-info-bar-panel.component.mjs +0 -11
  186. package/esm2022/lib/ui-label/ui-label.component.mjs +0 -12
  187. package/esm2022/lib/ui-linear-list-container-with-button/ui-linear-list-container-with-button.component.mjs +0 -379
  188. package/esm2022/lib/ui-list-view/ui-list-view.component.mjs +0 -84
  189. package/esm2022/lib/ui-map/ui-map.component.mjs +0 -58
  190. package/esm2022/lib/ui-matrix-view/ui-matrix-view.component.mjs +0 -124
  191. package/esm2022/lib/ui-mo-info-combo-viewer/ui-mo-info-combo-viewer.component.mjs +0 -19
  192. package/esm2022/lib/ui-mo-info-general-object-ui/ui-mo-info-general-object-ui.component.mjs +0 -14
  193. package/esm2022/lib/ui-mo-info-sub-form-ui/ui-mo-info-sub-form-ui.component.mjs +0 -55
  194. package/esm2022/lib/ui-mo-info-ulv-combo/ui-mo-info-ulv-combo.component.mjs +0 -429
  195. package/esm2022/lib/ui-monaco-editor/ui-monaco-editor.component.mjs +0 -28
  196. package/esm2022/lib/ui-multi-select-card/ui-multi-select-card.component.mjs +0 -37
  197. package/esm2022/lib/ui-multi-select-checkbox/ui-multi-select-checkbox.component.mjs +0 -59
  198. package/esm2022/lib/ui-multi-select-combo/ui-multi-select-combo.component.mjs +0 -93
  199. package/esm2022/lib/ui-multi-select-radio/ui-multi-select-radio.component.mjs +0 -36
  200. package/esm2022/lib/ui-multi-select-slider/ui-multi-select-slider.component.mjs +0 -56
  201. package/esm2022/lib/ui-multi-select-smile/ui-multi-select-smile.component.mjs +0 -28
  202. package/esm2022/lib/ui-num-decimal-ui/ui-num-decimal-ui.component.mjs +0 -33
  203. package/esm2022/lib/ui-num-int-slider/ui-num-int-slider.component.mjs +0 -27
  204. package/esm2022/lib/ui-num-int-ui/ui-num-int-ui.component.mjs +0 -21
  205. package/esm2022/lib/ui-pdf-viewer/ui-pdf-viewer.component.mjs +0 -268
  206. package/esm2022/lib/ui-picture-file/ui-picture-file.component.mjs +0 -101
  207. package/esm2022/lib/ui-pictures-info/ui-pictures-info.component.mjs +0 -261
  208. package/esm2022/lib/ui-radio-group/ui-radio-group.component.mjs +0 -48
  209. package/esm2022/lib/ui-read-only-field/ui-read-only-field.component.mjs +0 -36
  210. package/esm2022/lib/ui-report-container/ui-report-container.component.mjs +0 -46
  211. package/esm2022/lib/ui-search-command-info-ui/ui-search-command-info-ui.component.mjs +0 -24
  212. package/esm2022/lib/ui-simple-combo/ui-simple-combo.component.mjs +0 -55
  213. package/esm2022/lib/ui-single-picture/ui-single-picture.component.mjs +0 -36
  214. package/esm2022/lib/ui-switch-button/ui-switch-button.component.mjs +0 -20
  215. package/esm2022/lib/ui-table-view/ui-table-view.component.mjs +0 -289
  216. package/esm2022/lib/ui-text-area/ui-text-area.component.mjs +0 -49
  217. package/esm2022/lib/ui-text-field/ui-text-field.component.mjs +0 -52
  218. package/esm2022/lib/ui-text-field-auto-complete/ui-text-field-auto-complete.component.mjs +0 -48
  219. package/esm2022/lib/ui-time-span/ui-time-span.component.mjs +0 -24
  220. package/esm2022/lib/ui-tinymce/ui-tinymce.component.mjs +0 -53
  221. package/esm2022/lib/ui-tree/ui-tree.component.mjs +0 -114
  222. package/esm2022/lib/ui-tree-view/ui-tree-view.component.mjs +0 -100
  223. package/esm2022/lib/ui-ulv-form-multi-select-ui/ui-ulv-form-multi-select-ui.component.mjs +0 -23
  224. package/esm2022/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.mjs +0 -306
  225. package/esm2022/lib/ui-workflow-panel-ui/ui-workflow-panel-ui.component.mjs +0 -25
  226. package/esm2022/lib/ul-loading-mask-ui/ul-loading-mask-ui.component.mjs +0 -93
  227. package/esm2022/lib/ul-msg-box-adapter/ul-msg-box-adapter.component.mjs +0 -119
  228. package/esm2022/lib/ul-notify-popup/ul-notify-popup.component.mjs +0 -32
  229. package/esm2022/lib/ul-toast-adapter/ul-toast-adapter.component.mjs +0 -48
  230. package/esm2022/lib/ulv-column-settings/ulv-column-settings.component.mjs +0 -53
  231. package/esm2022/lib/ulv-context-menu/ulv-context-menu.component.mjs +0 -114
  232. package/esm2022/lib/ulv-filter-settings/ulv-filter-settings.component.mjs +0 -43
  233. package/esm2022/lib/ulv-form-multi-select/ulv-form-multi-select.component.mjs +0 -196
  234. package/esm2022/lib/ulv-groupby-settings/ulv-groupby-settings.component.mjs +0 -44
  235. package/esm2022/lib/ulv-paging/ulv-paging.component.mjs +0 -84
  236. package/esm2022/lib/ulv-selection/ulv-selection.component.mjs +0 -65
  237. package/esm2022/lib/ulv-settings/ulv-settings.component.mjs +0 -116
  238. package/esm2022/lib/ulv-sort-settings/ulv-sort-settings.component.mjs +0 -54
  239. package/esm2022/lib/ulv-toolbar/ulv-toolbar.component.mjs +0 -174
  240. package/esm2022/lib/upload-file-status.pipe.mjs +0 -28
  241. package/esm2022/lib/util-chat-time-badge.pipe.mjs +0 -18
  242. package/esm2022/lib/util-date-to-hh-mm.pipe.mjs +0 -23
  243. package/esm2022/lib/wizard-layout.directive.mjs +0 -103
  244. package/esm2022/public-api.mjs +0 -233
@@ -1,174 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, inject, Input, Output, Renderer2, ViewChild } from '@angular/core';
2
- import { ToolbarComponent } from '@fundamental-ngx/core';
3
- import { BaseComponent, PortalService } from 'barsa-novin-ray-core';
4
- import { takeUntil } from 'rxjs';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common";
7
- import * as i2 from "barsa-novin-ray-core";
8
- import * as i3 from "@fundamental-ngx/core/button";
9
- import * as i4 from "@fundamental-ngx/core/icon";
10
- import * as i5 from "@fundamental-ngx/core/menu";
11
- import * as i6 from "@fundamental-ngx/core/title";
12
- import * as i7 from "@fundamental-ngx/core/split-button";
13
- import * as i8 from "@fundamental-ngx/core/toolbar";
14
- export class UlvToolbarComponent extends BaseComponent {
15
- constructor(el, _cdr) {
16
- super();
17
- this.el = el;
18
- this._cdr = _cdr;
19
- this.hideTitle = false;
20
- this.search = new EventEmitter();
21
- this.groupbyClick = new EventEmitter();
22
- this.sortClick = new EventEmitter();
23
- this.columnClick = new EventEmitter();
24
- this.editModeClick = new EventEmitter();
25
- this.viewClick = new EventEmitter();
26
- this.createNewInlineMo = new EventEmitter();
27
- this._renderer2 = inject(Renderer2);
28
- this._portalService = inject(PortalService);
29
- this.visibled = false;
30
- }
31
- ngAfterViewInit() {
32
- super.ngAfterViewInit();
33
- this._portalService.windowResize$.pipe(takeUntil(this._onDestroy$)).subscribe(() => {
34
- this._setWidth();
35
- });
36
- }
37
- ngOnChanges(changes) {
38
- super.ngOnChanges(changes);
39
- const { toolbarButtons } = changes;
40
- if (toolbarButtons) {
41
- if (toolbarButtons.firstChange) {
42
- setTimeout(() => {
43
- this._refreshToolbar();
44
- });
45
- }
46
- else {
47
- this._refreshToolbar();
48
- this._cdr.detectChanges();
49
- }
50
- }
51
- }
52
- onVisibilityChange(e) {
53
- if (e === 'Visible') {
54
- if (!this.visibled) {
55
- this.visibled = true;
56
- this._setWidth();
57
- }
58
- else {
59
- this._refreshToolbar();
60
- }
61
- }
62
- }
63
- _setWidth() {
64
- if (!this.visibled || this.hideToolbar) {
65
- return;
66
- }
67
- const x = Math.floor(this.el.nativeElement.getBoundingClientRect().width);
68
- this._renderer2.setStyle(this.el.nativeElement, 'width', x + 'px');
69
- setTimeout(() => {
70
- this._refreshToolbar();
71
- });
72
- }
73
- onGroupbySettings() {
74
- this.groupbyClick.emit(this.deviceName);
75
- }
76
- onSortSettings() {
77
- this.sortClick.emit(this.deviceName);
78
- }
79
- onColumnSettings() {
80
- this.columnClick.emit(this.deviceName);
81
- }
82
- onEditMode() {
83
- this.editModeClick.emit();
84
- }
85
- onChangeView(view) {
86
- this.viewClick.emit(view);
87
- }
88
- _trackBy(index, item) {
89
- return item?.itemId;
90
- }
91
- identify(index, item) {
92
- return item.text;
93
- }
94
- _refreshToolbar() {
95
- if (this._tlbCmp) {
96
- this._tlbCmp.forceOverflow = false;
97
- this._tlbCmp.updateCollapsibleItems();
98
- }
99
- }
100
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UlvToolbarComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
101
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: UlvToolbarComponent, selector: "bsu-ulv-toolbar", inputs: { allowGridColumnSort: "allowGridColumnSort", useLayoutItemTextForControl: "useLayoutItemTextForControl", enableSearch: "enableSearch", hideTitle: "hideTitle", title: "title", icon: "icon", deviceName: "deviceName", deviceSize: "deviceSize", access: "access", hideToolbar: "hideToolbar", toolbarButtons: "toolbarButtons", contentDensity: "contentDensity", inlineEditMode: "inlineEditMode", allowInlineEdit: "allowInlineEdit", gridSetting: "gridSetting", viewCollection: "viewCollection", reportView: "reportView", inDialog: "inDialog", isMultiSelect: "isMultiSelect", cls: "cls", hasSelected: "hasSelected", config: "config", hidden: "hidden", buttons: "buttons", moDataListCount: "moDataListCount" }, outputs: { search: "search", groupbyClick: "groupbyClick", sortClick: "sortClick", columnClick: "columnClick", editModeClick: "editModeClick", viewClick: "viewClick", createNewInlineMo: "createNewInlineMo" }, viewQueries: [{ propertyName: "_tlbCmp", first: true, predicate: ToolbarComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\n style=\"width: 100%; height: 0; visibility: hidden; opacity: 0\"\n intersectionObserver\n [intersectionThreshold]=\"0.1\"\n (visibilityChange)=\"onVisibilityChange($event)\"\n></div>\n@if (!useLayoutItemTextForControl && !hideToolbar && visibled) {\n<fd-toolbar\n #toolbar\n [shouldOverflow]=\"deviceSize === 's'\"\n [ngClass]=\"deviceSize\"\n [hasTitle]=\"!hideTitle\"\n [forceOverflow]=\"true\"\n [ngClass]=\"cls\"\n>\n @if(!hideTitle && deviceSize !== 's' ? (title | bbbTranslate) : ''){ @if(icon){\n <fd-icon [glyph]=\"icon\"></fd-icon>\n }\n <h4 fd-title>{{ title | bbbTranslate }}</h4>\n } @if (deviceSize !== 's') {\n <fd-toolbar-spacer fd-toolbar-item></fd-toolbar-spacer>\n } @if (!hideToolbar) { @for (btn of toolbarButtons; track _trackBy(i, btn); let i = $index) { @if (btn !== '-' &&\n btn.Command && !btn.Command.CustomUi && !btn.menu) {\n <button\n fd-button\n fd-toolbar-item\n [attr.fdOverflowPriority]=\"btn.itemId === 'Edit' ? 'always' : btn.Command?.IsBuiltin ? 'low' : 'high'\"\n [ulvCommandHandler]=\"btn\"\n [disable]=\"inlineEditMode && btn.itemId === 'New'\"\n [disabled]=\"btn.Command._isEnable === false ? true : false\"\n [fdType]=\"!btn.Command._isEnable ? 'transparent' : btn.Command.JsonExtraProp?.Design || 'transparent'\"\n [glyph]=\"deviceSize === 's' ? null : btn.Command.JsonExtraProp?.Icon\"\n [title]=\"(btn.Command?.IsBuiltin ? btn.text : '') | bbbTranslate\"\n (click)=\"inlineEditMode && btn.itemId === 'New' && createNewInlineMo.emit()\"\n bodyClick\n >\n @if (!btn.Command.JsonExtraProp?.Icon && !btn.Command?.IsBuiltin && btn.icon) {\n <img width=\"16\" [src]=\"btn.icon\" />\n } @if (!btn.hideText || deviceSize === 's') {\n <span>{{ btn.text | bbbTranslate }}</span>\n }\n </button>\n } @if ((btn === '-' || btn.type === 'seperator') && deviceName !== 'mobile') {\n <fd-toolbar-separator fd-toolbar-item></fd-toolbar-separator>\n } @if (btn.menu) {\n <button\n fd-button\n fd-toolbar-item\n [fdMenu]=\"true\"\n [fdType]=\"btn.Command?.IsBuiltin ? 'standard' : 'transparent'\"\n [label]=\"btn.text | bbbTranslate\"\n [ariaLabel]=\"btn.text | bbbTranslate\"\n [fdMenuTrigger]=\"menu\"\n bodyClick\n >\n <fd-menu #menu>\n @for (btnCommand of btn.menu.items; track btnCommand) {\n <li fd-menu-item [ulvCommandHandler]=\"btnCommand\" (click)=\"menu.close()\">\n <div fd-menu-interactive>\n <span fd-menu-title>{{ btnCommand.text | bbbTranslate }}</span>\n </div>\n </li>\n }\n </fd-menu>\n </button>\n } @if (btn !== '-' && btn.Command && btn.Command.CustomUi) {\n <bnrc-dynamic-form-toolbaritem\n fd-toolbar-item\n [ulvCommandHandler]=\"btn\"\n [component]=\"btn.Command?.CustomUi\"\n [context]=\"btn\"\n [isEnable]=\"btn.Command?._isEnable\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n bodyClick\n ></bnrc-dynamic-form-toolbaritem>\n } }\n <ng-content select=\"[fd-toolbar-item]\"></ng-content>\n @if (allowInlineEdit && access?.Edit) {\n <button\n fd-button\n fd-toolbar-item\n [fdType]=\"inlineEditMode ? 'emphasized' : 'transparent'\"\n [glyph]=\"'edit'\"\n [label]=\"deviceSize === 's' ? ('Inline Edit In List' | bbbTranslate) : ''\"\n (click)=\"onEditMode()\"\n [attr.fdOverflowPriority]=\"'always'\"\n [title]=\"'Inline Edit In List' | bbbTranslate\"\n bodyClick\n ></button>\n } @if (gridSetting && gridSetting.Hidden !== true && allowGridColumnSort) { @if (deviceSize === 's') {\n <button\n fd-toolbar-item\n fd-button\n [contentDensity]=\"contentDensity\"\n fdType=\"transparent\"\n [attr.fdOverflowPriority]=\"'always'\"\n (click)=\"onGroupbySettings()\"\n [label]=\"'Groups' | bbbTranslate\"\n bodyClick\n ></button>\n <button\n fd-toolbar-item\n fd-button\n [contentDensity]=\"contentDensity\"\n fdType=\"transparent\"\n [attr.fdOverflowPriority]=\"'always'\"\n (click)=\"onSortSettings()\"\n [label]=\"'Sort' | bbbTranslate\"\n bodyClick\n ></button>\n <button\n fd-toolbar-item\n fd-button\n [contentDensity]=\"contentDensity\"\n fdType=\"transparent\"\n [attr.fdOverflowPriority]=\"'always'\"\n (click)=\"onColumnSettings()\"\n [label]=\"'Columns' | bbbTranslate\"\n bodyClick\n ></button>\n } @if (deviceSize !== 's') {\n <button\n fd-button\n fd-toolbar-item\n [attr.fdOverflowPriority]=\"'never'\"\n [fdMenu]=\"true\"\n fdType=\"transparent\"\n glyph=\"action-settings\"\n [title]=\"'Settings' | bbbTranslate\"\n [fdMenuTrigger]=\"tableMenuSettings\"\n bodyClick\n ></button>\n }\n <fd-menu #tableMenuSettings>\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onColumnSettings()\" bodyClick>\n <fd-menu-addon position=\"before\" glyph=\"action-settings\"></fd-menu-addon>\n <span fd-menu-title>\n {{ 'Columns' | bbbTranslate }}\n </span>\n </div>\n </li>\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onSortSettings()\" bodyClick>\n <fd-menu-addon position=\"before\" glyph=\"sort\"></fd-menu-addon>\n <span fd-menu-title>\n {{ 'Sort' | bbbTranslate }}\n </span>\n </div>\n </li>\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onGroupbySettings()\" bodyClick>\n <fd-menu-addon position=\"before\" glyph=\"group-2\"></fd-menu-addon>\n <span fd-menu-title>\n {{ 'Groups' | bbbTranslate }}\n </span>\n </div>\n </li>\n </fd-menu>\n } @if (viewCollection && viewCollection.length > 1) {\n <fd-split-button\n fd-toolbar-item\n [attr.fdOverflowPriority]=\"deviceSize === 's' ? 'always' : 'low'\"\n [fdType]=\"'transparent'\"\n [mainAction]=\"{\n keepMainAction: true,\n mainActionTitle: splitBtnTitle\n }\"\n >\n <fd-menu>\n @for (viewObject of viewCollection; track viewObject) {\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"onChangeView(viewObject)\" bodyClick>\n <span fd-menu-title>\n <fd-icon [glyph]=\"viewObject.UiComponent.Settings?.Icon\"> </fd-icon>\n </span>\n </div>\n </li>\n }\n </fd-menu>\n </fd-split-button>\n }\n <ng-template #splitBtnTitle>\n <fd-icon [glyph]=\"reportView.UiComponent.Settings?.Icon\"></fd-icon>\n </ng-template>\n <ng-template #splitBtnSettings>\n <fd-icon [glyph]=\"'action-settings'\"></fd-icon>\n </ng-template>\n }\n</fd-toolbar>\n}\n", styles: [":host{display:block;width:100%;position:relative}:host fd-toolbar.border-b-0{border-bottom-width:0px!important}:host ::ng-deep .fd-toolbar{flex-wrap:nowrap!important}:host ::ng-deep .fd-toolbar{border-top:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);border-left:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);border-right:var(--sapList_BorderWidth) solid var(--sapList_BorderColor)}:host fd-toolbar.s ::ng-deep .fd-toolbar{justify-content:end}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.DynamicFormToolbaritemComponent, selector: "bnrc-dynamic-form-toolbaritem", inputs: ["mo", "index", "deviceName", "deviceSize", "context", "btn", "isEnable", "showText", "allColumns", "conditionalFormats"], outputs: ["btnClick"] }, { kind: "directive", type: i2.UlvCommandDirective, selector: "[ulvCommandHandler]", inputs: ["ulvCommandHandler", "disable"], outputs: ["commandClick"] }, { kind: "directive", type: i2.IntersectionObserverDirective, selector: "[intersectionObserver]", inputs: ["intersectionDebounce", "intersectionRootMargin", "intersectionRoot", "intersectionThreshold"], outputs: ["visibilityChange"] }, { kind: "directive", type: i2.BodyClickDirective, selector: "[bodyClick]", inputs: ["disableBodyClick"] }, { kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i4.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "component", type: i5.MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "focusTrapped", "focusAutoCapture", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { kind: "component", type: i5.MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu", "parentSubmenu", "hasSeparator"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { kind: "component", type: i5.MenuInteractiveComponent, selector: "[fd-menu-interactive]" }, { kind: "directive", type: i5.MenuTitleDirective, selector: "[fd-menu-title]" }, { kind: "component", type: i5.MenuAddonDirective, selector: "fd-menu-addon", inputs: ["position", "submenuIndicator", "ariaHidden"] }, { kind: "directive", type: i5.MenuTriggerDirective, selector: "[fdMenuTrigger]", inputs: ["fdMenuTrigger"] }, { kind: "component", type: i6.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i7.SplitButtonComponent, selector: "fd-split-button", inputs: ["glyph", "glyphFont", "disabled", "fdType", "expandButtonTitle", "selected", "fixedWidth", "mainAction", "arialLabel"], outputs: ["primaryButtonClicked"] }, { kind: "component", type: i8.ToolbarComponent, selector: "fd-toolbar", inputs: ["titleId", "class", "shouldOverflow", "fdType", "title", "active", "clearBorder", "forceOverflow", "tabindex", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: i8.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "directive", type: i8.ToolbarSpacerDirective, selector: "fd-toolbar-spacer", inputs: ["width", "class", "fixed"] }, { kind: "component", type: i8.ToolbarSeparatorComponent, selector: "fd-toolbar-separator" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
102
- }
103
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UlvToolbarComponent, decorators: [{
104
- type: Component,
105
- args: [{ selector: 'bsu-ulv-toolbar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n style=\"width: 100%; height: 0; visibility: hidden; opacity: 0\"\n intersectionObserver\n [intersectionThreshold]=\"0.1\"\n (visibilityChange)=\"onVisibilityChange($event)\"\n></div>\n@if (!useLayoutItemTextForControl && !hideToolbar && visibled) {\n<fd-toolbar\n #toolbar\n [shouldOverflow]=\"deviceSize === 's'\"\n [ngClass]=\"deviceSize\"\n [hasTitle]=\"!hideTitle\"\n [forceOverflow]=\"true\"\n [ngClass]=\"cls\"\n>\n @if(!hideTitle && deviceSize !== 's' ? (title | bbbTranslate) : ''){ @if(icon){\n <fd-icon [glyph]=\"icon\"></fd-icon>\n }\n <h4 fd-title>{{ title | bbbTranslate }}</h4>\n } @if (deviceSize !== 's') {\n <fd-toolbar-spacer fd-toolbar-item></fd-toolbar-spacer>\n } @if (!hideToolbar) { @for (btn of toolbarButtons; track _trackBy(i, btn); let i = $index) { @if (btn !== '-' &&\n btn.Command && !btn.Command.CustomUi && !btn.menu) {\n <button\n fd-button\n fd-toolbar-item\n [attr.fdOverflowPriority]=\"btn.itemId === 'Edit' ? 'always' : btn.Command?.IsBuiltin ? 'low' : 'high'\"\n [ulvCommandHandler]=\"btn\"\n [disable]=\"inlineEditMode && btn.itemId === 'New'\"\n [disabled]=\"btn.Command._isEnable === false ? true : false\"\n [fdType]=\"!btn.Command._isEnable ? 'transparent' : btn.Command.JsonExtraProp?.Design || 'transparent'\"\n [glyph]=\"deviceSize === 's' ? null : btn.Command.JsonExtraProp?.Icon\"\n [title]=\"(btn.Command?.IsBuiltin ? btn.text : '') | bbbTranslate\"\n (click)=\"inlineEditMode && btn.itemId === 'New' && createNewInlineMo.emit()\"\n bodyClick\n >\n @if (!btn.Command.JsonExtraProp?.Icon && !btn.Command?.IsBuiltin && btn.icon) {\n <img width=\"16\" [src]=\"btn.icon\" />\n } @if (!btn.hideText || deviceSize === 's') {\n <span>{{ btn.text | bbbTranslate }}</span>\n }\n </button>\n } @if ((btn === '-' || btn.type === 'seperator') && deviceName !== 'mobile') {\n <fd-toolbar-separator fd-toolbar-item></fd-toolbar-separator>\n } @if (btn.menu) {\n <button\n fd-button\n fd-toolbar-item\n [fdMenu]=\"true\"\n [fdType]=\"btn.Command?.IsBuiltin ? 'standard' : 'transparent'\"\n [label]=\"btn.text | bbbTranslate\"\n [ariaLabel]=\"btn.text | bbbTranslate\"\n [fdMenuTrigger]=\"menu\"\n bodyClick\n >\n <fd-menu #menu>\n @for (btnCommand of btn.menu.items; track btnCommand) {\n <li fd-menu-item [ulvCommandHandler]=\"btnCommand\" (click)=\"menu.close()\">\n <div fd-menu-interactive>\n <span fd-menu-title>{{ btnCommand.text | bbbTranslate }}</span>\n </div>\n </li>\n }\n </fd-menu>\n </button>\n } @if (btn !== '-' && btn.Command && btn.Command.CustomUi) {\n <bnrc-dynamic-form-toolbaritem\n fd-toolbar-item\n [ulvCommandHandler]=\"btn\"\n [component]=\"btn.Command?.CustomUi\"\n [context]=\"btn\"\n [isEnable]=\"btn.Command?._isEnable\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n bodyClick\n ></bnrc-dynamic-form-toolbaritem>\n } }\n <ng-content select=\"[fd-toolbar-item]\"></ng-content>\n @if (allowInlineEdit && access?.Edit) {\n <button\n fd-button\n fd-toolbar-item\n [fdType]=\"inlineEditMode ? 'emphasized' : 'transparent'\"\n [glyph]=\"'edit'\"\n [label]=\"deviceSize === 's' ? ('Inline Edit In List' | bbbTranslate) : ''\"\n (click)=\"onEditMode()\"\n [attr.fdOverflowPriority]=\"'always'\"\n [title]=\"'Inline Edit In List' | bbbTranslate\"\n bodyClick\n ></button>\n } @if (gridSetting && gridSetting.Hidden !== true && allowGridColumnSort) { @if (deviceSize === 's') {\n <button\n fd-toolbar-item\n fd-button\n [contentDensity]=\"contentDensity\"\n fdType=\"transparent\"\n [attr.fdOverflowPriority]=\"'always'\"\n (click)=\"onGroupbySettings()\"\n [label]=\"'Groups' | bbbTranslate\"\n bodyClick\n ></button>\n <button\n fd-toolbar-item\n fd-button\n [contentDensity]=\"contentDensity\"\n fdType=\"transparent\"\n [attr.fdOverflowPriority]=\"'always'\"\n (click)=\"onSortSettings()\"\n [label]=\"'Sort' | bbbTranslate\"\n bodyClick\n ></button>\n <button\n fd-toolbar-item\n fd-button\n [contentDensity]=\"contentDensity\"\n fdType=\"transparent\"\n [attr.fdOverflowPriority]=\"'always'\"\n (click)=\"onColumnSettings()\"\n [label]=\"'Columns' | bbbTranslate\"\n bodyClick\n ></button>\n } @if (deviceSize !== 's') {\n <button\n fd-button\n fd-toolbar-item\n [attr.fdOverflowPriority]=\"'never'\"\n [fdMenu]=\"true\"\n fdType=\"transparent\"\n glyph=\"action-settings\"\n [title]=\"'Settings' | bbbTranslate\"\n [fdMenuTrigger]=\"tableMenuSettings\"\n bodyClick\n ></button>\n }\n <fd-menu #tableMenuSettings>\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onColumnSettings()\" bodyClick>\n <fd-menu-addon position=\"before\" glyph=\"action-settings\"></fd-menu-addon>\n <span fd-menu-title>\n {{ 'Columns' | bbbTranslate }}\n </span>\n </div>\n </li>\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onSortSettings()\" bodyClick>\n <fd-menu-addon position=\"before\" glyph=\"sort\"></fd-menu-addon>\n <span fd-menu-title>\n {{ 'Sort' | bbbTranslate }}\n </span>\n </div>\n </li>\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onGroupbySettings()\" bodyClick>\n <fd-menu-addon position=\"before\" glyph=\"group-2\"></fd-menu-addon>\n <span fd-menu-title>\n {{ 'Groups' | bbbTranslate }}\n </span>\n </div>\n </li>\n </fd-menu>\n } @if (viewCollection && viewCollection.length > 1) {\n <fd-split-button\n fd-toolbar-item\n [attr.fdOverflowPriority]=\"deviceSize === 's' ? 'always' : 'low'\"\n [fdType]=\"'transparent'\"\n [mainAction]=\"{\n keepMainAction: true,\n mainActionTitle: splitBtnTitle\n }\"\n >\n <fd-menu>\n @for (viewObject of viewCollection; track viewObject) {\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"onChangeView(viewObject)\" bodyClick>\n <span fd-menu-title>\n <fd-icon [glyph]=\"viewObject.UiComponent.Settings?.Icon\"> </fd-icon>\n </span>\n </div>\n </li>\n }\n </fd-menu>\n </fd-split-button>\n }\n <ng-template #splitBtnTitle>\n <fd-icon [glyph]=\"reportView.UiComponent.Settings?.Icon\"></fd-icon>\n </ng-template>\n <ng-template #splitBtnSettings>\n <fd-icon [glyph]=\"'action-settings'\"></fd-icon>\n </ng-template>\n }\n</fd-toolbar>\n}\n", styles: [":host{display:block;width:100%;position:relative}:host fd-toolbar.border-b-0{border-bottom-width:0px!important}:host ::ng-deep .fd-toolbar{flex-wrap:nowrap!important}:host ::ng-deep .fd-toolbar{border-top:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);border-left:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);border-right:var(--sapList_BorderWidth) solid var(--sapList_BorderColor)}:host fd-toolbar.s ::ng-deep .fd-toolbar{justify-content:end}\n"] }]
106
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { _tlbCmp: [{
107
- type: ViewChild,
108
- args: [ToolbarComponent]
109
- }], allowGridColumnSort: [{
110
- type: Input
111
- }], useLayoutItemTextForControl: [{
112
- type: Input
113
- }], enableSearch: [{
114
- type: Input
115
- }], hideTitle: [{
116
- type: Input
117
- }], title: [{
118
- type: Input
119
- }], icon: [{
120
- type: Input
121
- }], deviceName: [{
122
- type: Input
123
- }], deviceSize: [{
124
- type: Input
125
- }], access: [{
126
- type: Input
127
- }], hideToolbar: [{
128
- type: Input
129
- }], toolbarButtons: [{
130
- type: Input
131
- }], contentDensity: [{
132
- type: Input
133
- }], inlineEditMode: [{
134
- type: Input
135
- }], allowInlineEdit: [{
136
- type: Input
137
- }], gridSetting: [{
138
- type: Input
139
- }], viewCollection: [{
140
- type: Input
141
- }], reportView: [{
142
- type: Input
143
- }], inDialog: [{
144
- type: Input
145
- }], isMultiSelect: [{
146
- type: Input
147
- }], cls: [{
148
- type: Input
149
- }], hasSelected: [{
150
- type: Input
151
- }], config: [{
152
- type: Input
153
- }], hidden: [{
154
- type: Input
155
- }], buttons: [{
156
- type: Input
157
- }], moDataListCount: [{
158
- type: Input
159
- }], search: [{
160
- type: Output
161
- }], groupbyClick: [{
162
- type: Output
163
- }], sortClick: [{
164
- type: Output
165
- }], columnClick: [{
166
- type: Output
167
- }], editModeClick: [{
168
- type: Output
169
- }], viewClick: [{
170
- type: Output
171
- }], createNewInlineMo: [{
172
- type: Output
173
- }] } });
174
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWx2LXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWx2LXRvb2xiYXIvdWx2LXRvb2xiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWx2LXRvb2xiYXIvdWx2LXRvb2xiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFFVCxTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFrQixnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXpFLE9BQU8sRUFDSCxhQUFhLEVBS2IsYUFBYSxFQUNoQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7QUFRakMsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGFBQWE7SUFzQ2xELFlBQW1CLEVBQWMsRUFBVSxJQUF1QjtRQUM5RCxLQUFLLEVBQUUsQ0FBQztRQURPLE9BQUUsR0FBRixFQUFFLENBQVk7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFtQjtRQWpDekQsY0FBUyxHQUFHLEtBQUssQ0FBQztRQXVCakIsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDcEMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzFDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3ZDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUN6QyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkMsY0FBUyxHQUFHLElBQUksWUFB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V0FBVztzQkFBbkIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNJLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPdXRwdXQsXG4gICAgUmVuZGVyZXIyLFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udGVudERlbnNpdHksIFRvb2xiYXJDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xuXG5pbXBvcnQge1xuICAgIEJhc2VDb21wb25lbnQsXG4gICAgRGVmYXVsdENvbW1hbmRzQWNjZXNzLFxuICAgIEFiYnJldmF0aW9uRGV2aWNlU2l6ZSxcbiAgICBEZXZpY2VTaXplLFxuICAgIFVpUmVwb3J0Vmlld0Jhc2UsXG4gICAgUG9ydGFsU2VydmljZVxufSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtdWx2LXRvb2xiYXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi91bHYtdG9vbGJhci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdWx2LXRvb2xiYXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBVbHZUb29sYmFyQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgQFZpZXdDaGlsZChUb29sYmFyQ29tcG9uZW50KSBfdGxiQ21wOiBUb29sYmFyQ29tcG9uZW50O1xuICAgIEBJbnB1dCgpIGFsbG93R3JpZENvbHVtblNvcnQ6IGJvb2xlYW47XG4gICAgQElucHV0KCkgdXNlTGF5b3V0SXRlbVRleHRGb3JDb250cm9sOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGVuYWJsZVNlYXJjaDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBoaWRlVGl0bGUgPSBmYWxzZTtcbiAgICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGljb246IHN0cmluZztcbiAgICBASW5wdXQoKSBkZXZpY2VOYW1lOiBEZXZpY2VTaXplO1xuICAgIEBJbnB1dCgpIGRldmljZVNpemU6IEFiYnJldmF0aW9uRGV2aWNlU2l6ZTtcbiAgICBASW5wdXQoKSBhY2Nlc3M6IERlZmF1bHRDb21tYW5kc0FjY2VzcztcbiAgICBASW5wdXQoKSBoaWRlVG9vbGJhcjogYm9vbGVhbjtcbiAgICBASW5wdXQoKSB0b29sYmFyQnV0dG9uczogYW55W107XG4gICAgQElucHV0KCkgY29udGVudERlbnNpdHk6IENvbnRlbnREZW5zaXR5O1xuICAgIEBJbnB1dCgpIGlubGluZUVkaXRNb2RlOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGFsbG93SW5saW5lRWRpdDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBncmlkU2V0dGluZzogYW55O1xuICAgIEBJbnB1dCgpIHZpZXdDb2xsZWN0aW9uOiBhbnlbXTtcbiAgICBASW5wdXQoKSByZXBvcnRWaWV3OiBVaVJlcG9ydFZpZXdCYXNlO1xuICAgIEBJbnB1dCgpIGluRGlhbG9nOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGlzTXVsdGlTZWxlY3Q6IGJvb2xlYW47XG4gICAgQElucHV0KCkgY2xzOiBhbnk7XG5cbiAgICBASW5wdXQoKSBoYXNTZWxlY3RlZDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBjb25maWc6IGFueTtcbiAgICBASW5wdXQoKSBoaWRkZW46IGJvb2xlYW47XG4gICAgQElucHV0KCkgYnV0dG9uczogYW55W107XG4gICAgQElucHV0KCkgbW9EYXRhTGlzdENvdW50OiBudW1iZXI7XG4gICAgQE91dHB1dCgpIHNlYXJjaCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICAgIEBPdXRwdXQoKSBncm91cGJ5Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgICBAT3V0cHV0KCkgc29ydENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gICAgQE91dHB1dCgpIGNvbHVtbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gICAgQE91dHB1dCgpIGVkaXRNb2RlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIHZpZXdDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8VWlSZXBvcnRWaWV3QmFzZT4oKTtcbiAgICBAT3V0cHV0KCkgY3JlYXRlTmV3SW5saW5lTW8gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gICAgZW5hYmxlOiBib29sZWFuO1xuICAgIF9yZW5kZXJlcjIgPSBpbmplY3QoUmVuZGVyZXIyKTtcbiAgICBfcG9ydGFsU2VydmljZSA9IGluamVjdChQb3J0YWxTZXJ2aWNlKTtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZWw6IEVsZW1lbnRSZWYsIHByaXZhdGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICAgICAgdGhpcy5fcG9ydGFsU2VydmljZS53aW5kb3dSZXNpemUkLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fc2V0V2lkdGgoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkNoYW5nZXMoY2hhbmdlcyk7XG4gICAgICAgIGNvbnN0IHsgdG9vbGJhckJ1dHRvbnMgfSA9IGNoYW5nZXM7XG4gICAgICAgIGlmICh0b29sYmFyQnV0dG9ucykge1xuICAgICAgICAgICAgaWYgKHRvb2xiYXJCdXR0b25zLmZpcnN0Q2hhbmdlKSB7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3JlZnJlc2hUb29sYmFyKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX3JlZnJlc2hUb29sYmFyKCk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHZpc2libGVkID0gZmFsc2U7XG4gICAgb25WaXNpYmlsaXR5Q2hhbmdlKGUpOiB2b2lkIHtcbiAgICAgICAgaWYgKGUgPT09ICdWaXNpYmxlJykge1xuICAgICAgICAgICAgaWYgKCF0aGlzLnZpc2libGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52aXNpYmxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2V0V2lkdGgoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVmcmVzaFRvb2xiYXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3NldFdpZHRoKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMudmlzaWJsZWQgfHwgdGhpcy5oaWRlVG9vbGJhcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHggPSBNYXRoLmZsb29yKHRoaXMuZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCk7XG4gICAgICAgIHRoaXMuX3JlbmRlcmVyMi5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICd3aWR0aCcsIHggKyAncHgnKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9yZWZyZXNoVG9vbGJhcigpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgb25Hcm91cGJ5U2V0dGluZ3MoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ3JvdXBieUNsaWNrLmVtaXQodGhpcy5kZXZpY2VOYW1lKTtcbiAgICB9XG4gICAgb25Tb3J0U2V0dGluZ3MoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc29ydENsaWNrLmVtaXQodGhpcy5kZXZpY2VOYW1lKTtcbiAgICB9XG4gICAgb25Db2x1bW5TZXR0aW5ncygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb2x1bW5DbGljay5lbWl0KHRoaXMuZGV2aWNlTmFtZSk7XG4gICAgfVxuICAgIG9uRWRpdE1vZGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWRpdE1vZGVDbGljay5lbWl0KCk7XG4gICAgfVxuICAgIG9uQ2hhbmdlVmlldyh2aWV3OiBVaVJlcG9ydFZpZXdCYXNlKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmlld0NsaWNrLmVtaXQodmlldyk7XG4gICAgfVxuICAgIF90cmFja0J5KGluZGV4LCBpdGVtKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGl0ZW0/Lml0ZW1JZDtcbiAgICB9XG4gICAgcHVibGljIGlkZW50aWZ5KGluZGV4LCBpdGVtKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGl0ZW0udGV4dDtcbiAgICB9XG4gICAgcHJpdmF0ZSBfcmVmcmVzaFRvb2xiYXIoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl90bGJDbXApIHtcbiAgICAgICAgICAgIHRoaXMuX3RsYkNtcC5mb3JjZU92ZXJmbG93ID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLl90bGJDbXAudXBkYXRlQ29sbGFwc2libGVJdGVtcygpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIHN0eWxlPVwid2lkdGg6IDEwMCU7IGhlaWdodDogMDsgdmlzaWJpbGl0eTogaGlkZGVuOyBvcGFjaXR5OiAwXCJcbiAgICBpbnRlcnNlY3Rpb25PYnNlcnZlclxuICAgIFtpbnRlcnNlY3Rpb25UaHJlc2hvbGRdPVwiMC4xXCJcbiAgICAodmlzaWJpbGl0eUNoYW5nZSk9XCJvblZpc2liaWxpdHlDaGFuZ2UoJGV2ZW50KVwiXG4+PC9kaXY+XG5AaWYgKCF1c2VMYXlvdXRJdGVtVGV4dEZvckNvbnRyb2wgJiYgIWhpZGVUb29sYmFyICYmIHZpc2libGVkKSB7XG48ZmQtdG9vbGJhclxuICAgICN0b29sYmFyXG4gICAgW3Nob3VsZE92ZXJmbG93XT1cImRldmljZVNpemUgPT09ICdzJ1wiXG4gICAgW25nQ2xhc3NdPVwiZGV2aWNlU2l6ZVwiXG4gICAgW2hhc1RpdGxlXT1cIiFoaWRlVGl0bGVcIlxuICAgIFtmb3JjZU92ZXJmbG93XT1cInRydWVcIlxuICAgIFtuZ0NsYXNzXT1cImNsc1wiXG4+XG4gICAgQGlmKCFoaWRlVGl0bGUgJiYgZGV2aWNlU2l6ZSAhPT0gJ3MnID8gKHRpdGxlIHwgYmJiVHJhbnNsYXRlKSA6ICcnKXsgQGlmKGljb24pe1xuICAgIDxmZC1pY29uIFtnbHlwaF09XCJpY29uXCI+PC9mZC1pY29uPlxuICAgIH1cbiAgICA8aDQgZmQtdGl0bGU+e3sgdGl0bGUgfCBiYmJUcmFuc2xhdGUgfX08L2g0PlxuICAgIH0gQGlmIChkZXZpY2VTaXplICE9PSAncycpIHtcbiAgICA8ZmQtdG9vbGJhci1zcGFjZXIgZmQtdG9vbGJhci1pdGVtPjwvZmQtdG9vbGJhci1zcGFjZXI+XG4gICAgfSBAaWYgKCFoaWRlVG9vbGJhcikgeyBAZm9yIChidG4gb2YgdG9vbGJhckJ1dHRvbnM7IHRyYWNrIF90cmFja0J5KGksIGJ0bik7IGxldCBpID0gJGluZGV4KSB7IEBpZiAoYnRuICE9PSAnLScgJiZcbiAgICBidG4uQ29tbWFuZCAmJiAhYnRuLkNvbW1hbmQuQ3VzdG9tVWkgJiYgIWJ0bi5tZW51KSB7XG4gICAgPGJ1dHRvblxuICAgICAgICBmZC1idXR0b25cbiAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgIFthdHRyLmZkT3ZlcmZsb3dQcmlvcml0eV09XCJidG4uaXRlbUlkID09PSAnRWRpdCcgPyAnYWx3YXlzJyA6IGJ0bi5Db21tYW5kPy5Jc0J1aWx0aW4gPyAnbG93JyA6ICdoaWdoJ1wiXG4gICAgICAgIFt1bHZDb21tYW5kSGFuZGxlcl09XCJidG5cIlxuICAgICAgICBbZGlzYWJsZV09XCJpbmxpbmVFZGl0TW9kZSAmJiBidG4uaXRlbUlkID09PSAnTmV3J1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJidG4uQ29tbWFuZC5faXNFbmFibGUgPT09IGZhbHNlID8gdHJ1ZSA6IGZhbHNlXCJcbiAgICAgICAgW2ZkVHlwZV09XCIhYnRuLkNvbW1hbmQuX2lzRW5hYmxlID8gJ3RyYW5zcGFyZW50JyA6IGJ0bi5Db21tYW5kLkpzb25FeHRyYVByb3A/LkRlc2lnbiB8fCAndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgW2dseXBoXT1cImRldmljZVNpemUgPT09ICdzJyA/IG51bGwgOiBidG4uQ29tbWFuZC5Kc29uRXh0cmFQcm9wPy5JY29uXCJcbiAgICAgICAgW3RpdGxlXT1cIihidG4uQ29tbWFuZD8uSXNCdWlsdGluID8gYnRuLnRleHQgOiAnJykgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAoY2xpY2spPVwiaW5saW5lRWRpdE1vZGUgJiYgYnRuLml0ZW1JZCA9PT0gJ05ldycgJiYgY3JlYXRlTmV3SW5saW5lTW8uZW1pdCgpXCJcbiAgICAgICAgYm9keUNsaWNrXG4gICAgPlxuICAgICAgICBAaWYgKCFidG4uQ29tbWFuZC5Kc29uRXh0cmFQcm9wPy5JY29uICYmICFidG4uQ29tbWFuZD8uSXNCdWlsdGluICYmIGJ0bi5pY29uKSB7XG4gICAgICAgIDxpbWcgd2lkdGg9XCIxNlwiIFtzcmNdPVwiYnRuLmljb25cIiAvPlxuICAgICAgICB9IEBpZiAoIWJ0bi5oaWRlVGV4dCB8fCBkZXZpY2VTaXplID09PSAncycpIHtcbiAgICAgICAgPHNwYW4+e3sgYnRuLnRleHQgfCBiYmJUcmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgIH1cbiAgICA8L2J1dHRvbj5cbiAgICB9IEBpZiAoKGJ0biA9PT0gJy0nIHx8IGJ0bi50eXBlID09PSAnc2VwZXJhdG9yJykgJiYgZGV2aWNlTmFtZSAhPT0gJ21vYmlsZScpIHtcbiAgICA8ZmQtdG9vbGJhci1zZXBhcmF0b3IgZmQtdG9vbGJhci1pdGVtPjwvZmQtdG9vbGJhci1zZXBhcmF0b3I+XG4gICAgfSBAaWYgKGJ0bi5tZW51KSB7XG4gICAgPGJ1dHRvblxuICAgICAgICBmZC1idXR0b25cbiAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgIFtmZE1lbnVdPVwidHJ1ZVwiXG4gICAgICAgIFtmZFR5cGVdPVwiYnRuLkNvbW1hbmQ/LklzQnVpbHRpbiA/ICdzdGFuZGFyZCcgOiAndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgW2xhYmVsXT1cImJ0bi50ZXh0IHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgW2FyaWFMYWJlbF09XCJidG4udGV4dCB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgIFtmZE1lbnVUcmlnZ2VyXT1cIm1lbnVcIlxuICAgICAgICBib2R5Q2xpY2tcbiAgICA+XG4gICAgICAgIDxmZC1tZW51ICNtZW51PlxuICAgICAgICAgICAgQGZvciAoYnRuQ29tbWFuZCBvZiBidG4ubWVudS5pdGVtczsgdHJhY2sgYnRuQ29tbWFuZCkge1xuICAgICAgICAgICAgPGxpIGZkLW1lbnUtaXRlbSBbdWx2Q29tbWFuZEhhbmRsZXJdPVwiYnRuQ29tbWFuZFwiIChjbGljayk9XCJtZW51LmNsb3NlKClcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGZkLW1lbnUtaW50ZXJhY3RpdmU+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLW1lbnUtdGl0bGU+e3sgYnRuQ29tbWFuZC50ZXh0IHwgYmJiVHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9mZC1tZW51PlxuICAgIDwvYnV0dG9uPlxuICAgIH0gQGlmIChidG4gIT09ICctJyAmJiBidG4uQ29tbWFuZCAmJiBidG4uQ29tbWFuZC5DdXN0b21VaSkge1xuICAgIDxibnJjLWR5bmFtaWMtZm9ybS10b29sYmFyaXRlbVxuICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgW3VsdkNvbW1hbmRIYW5kbGVyXT1cImJ0blwiXG4gICAgICAgIFtjb21wb25lbnRdPVwiYnRuLkNvbW1hbmQ/LkN1c3RvbVVpXCJcbiAgICAgICAgW2NvbnRleHRdPVwiYnRuXCJcbiAgICAgICAgW2lzRW5hYmxlXT1cImJ0bi5Db21tYW5kPy5faXNFbmFibGVcIlxuICAgICAgICBbZGV2aWNlTmFtZV09XCJkZXZpY2VOYW1lXCJcbiAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgIGJvZHlDbGlja1xuICAgID48L2JucmMtZHluYW1pYy1mb3JtLXRvb2xiYXJpdGVtPlxuICAgIH0gfVxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltmZC10b29sYmFyLWl0ZW1dXCI+PC9uZy1jb250ZW50PlxuICAgIEBpZiAoYWxsb3dJbmxpbmVFZGl0ICYmIGFjY2Vzcz8uRWRpdCkge1xuICAgIDxidXR0b25cbiAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICBbZmRUeXBlXT1cImlubGluZUVkaXRNb2RlID8gJ2VtcGhhc2l6ZWQnIDogJ3RyYW5zcGFyZW50J1wiXG4gICAgICAgIFtnbHlwaF09XCInZWRpdCdcIlxuICAgICAgICBbbGFiZWxdPVwiZGV2aWNlU2l6ZSA9PT0gJ3MnID8gKCdJbmxpbmUgRWRpdCBJbiBMaXN0JyB8IGJiYlRyYW5zbGF0ZSkgOiAnJ1wiXG4gICAgICAgIChjbGljayk9XCJvbkVkaXRNb2RlKClcIlxuICAgICAgICBbYXR0ci5mZE92ZXJmbG93UHJpb3JpdHldPVwiJ2Fsd2F5cydcIlxuICAgICAgICBbdGl0bGVdPVwiJ0lubGluZSBFZGl0IEluIExpc3QnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgYm9keUNsaWNrXG4gICAgPjwvYnV0dG9uPlxuICAgIH0gQGlmIChncmlkU2V0dGluZyAmJiBncmlkU2V0dGluZy5IaWRkZW4gIT09IHRydWUgJiYgYWxsb3dHcmlkQ29sdW1uU29ydCkgeyBAaWYgKGRldmljZVNpemUgPT09ICdzJykge1xuICAgIDxidXR0b25cbiAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgIGZkLWJ1dHRvblxuICAgICAgICBbY29udGVudERlbnNpdHldPVwiY29udGVudERlbnNpdHlcIlxuICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgIFthdHRyLmZkT3ZlcmZsb3dQcmlvcml0eV09XCInYWx3YXlzJ1wiXG4gICAgICAgIChjbGljayk9XCJvbkdyb3VwYnlTZXR0aW5ncygpXCJcbiAgICAgICAgW2xhYmVsXT1cIidHcm91cHMnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgYm9keUNsaWNrXG4gICAgPjwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgIGZkLWJ1dHRvblxuICAgICAgICBbY29udGVudERlbnNpdHldPVwiY29udGVudERlbnNpdHlcIlxuICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgIFthdHRyLmZkT3ZlcmZsb3dQcmlvcml0eV09XCInYWx3YXlzJ1wiXG4gICAgICAgIChjbGljayk9XCJvblNvcnRTZXR0aW5ncygpXCJcbiAgICAgICAgW2xhYmVsXT1cIidTb3J0JyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgIGJvZHlDbGlja1xuICAgID48L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICBmZC1idXR0b25cbiAgICAgICAgW2NvbnRlbnREZW5zaXR5XT1cImNvbnRlbnREZW5zaXR5XCJcbiAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICBbYXR0ci5mZE92ZXJmbG93UHJpb3JpdHldPVwiJ2Fsd2F5cydcIlxuICAgICAgICAoY2xpY2spPVwib25Db2x1bW5TZXR0aW5ncygpXCJcbiAgICAgICAgW2xhYmVsXT1cIidDb2x1bW5zJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgIGJvZHlDbGlja1xuICAgID48L2J1dHRvbj5cbiAgICB9IEBpZiAoZGV2aWNlU2l6ZSAhPT0gJ3MnKSB7XG4gICAgPGJ1dHRvblxuICAgICAgICBmZC1idXR0b25cbiAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgIFthdHRyLmZkT3ZlcmZsb3dQcmlvcml0eV09XCInbmV2ZXInXCJcbiAgICAgICAgW2ZkTWVudV09XCJ0cnVlXCJcbiAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICBnbHlwaD1cImFjdGlvbi1zZXR0aW5nc1wiXG4gICAgICAgIFt0aXRsZV09XCInU2V0dGluZ3MnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgW2ZkTWVudVRyaWdnZXJdPVwidGFibGVNZW51U2V0dGluZ3NcIlxuICAgICAgICBib2R5Q2xpY2tcbiAgICA+PC9idXR0b24+XG4gICAgfVxuICAgIDxmZC1tZW51ICN0YWJsZU1lbnVTZXR0aW5ncz5cbiAgICAgICAgPGxpIGZkLW1lbnUtaXRlbT5cbiAgICAgICAgICAgIDxkaXYgZmQtbWVudS1pbnRlcmFjdGl2ZSAoY2xpY2spPVwidGFibGVNZW51U2V0dGluZ3MuY2xvc2UoKTsgb25Db2x1bW5TZXR0aW5ncygpXCIgYm9keUNsaWNrPlxuICAgICAgICAgICAgICAgIDxmZC1tZW51LWFkZG9uIHBvc2l0aW9uPVwiYmVmb3JlXCIgZ2x5cGg9XCJhY3Rpb24tc2V0dGluZ3NcIj48L2ZkLW1lbnUtYWRkb24+XG4gICAgICAgICAgICAgICAgPHNwYW4gZmQtbWVudS10aXRsZT5cbiAgICAgICAgICAgICAgICAgICAge3sgJ0NvbHVtbnMnIHwgYmJiVHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDxsaSBmZC1tZW51LWl0ZW0+XG4gICAgICAgICAgICA8ZGl2IGZkLW1lbnUtaW50ZXJhY3RpdmUgKGNsaWNrKT1cInRhYmxlTWVudVNldHRpbmdzLmNsb3NlKCk7IG9uU29ydFNldHRpbmdzKClcIiBib2R5Q2xpY2s+XG4gICAgICAgICAgICAgICAgPGZkLW1lbnUtYWRkb24gcG9zaXRpb249XCJiZWZvcmVcIiBnbHlwaD1cInNvcnRcIj48L2ZkLW1lbnUtYWRkb24+XG4gICAgICAgICAgICAgICAgPHNwYW4gZmQtbWVudS10aXRsZT5cbiAgICAgICAgICAgICAgICAgICAge3sgJ1NvcnQnIHwgYmJiVHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDxsaSBmZC1tZW51LWl0ZW0+XG4gICAgICAgICAgICA8ZGl2IGZkLW1lbnUtaW50ZXJhY3RpdmUgKGNsaWNrKT1cInRhYmxlTWVudVNldHRpbmdzLmNsb3NlKCk7IG9uR3JvdXBieVNldHRpbmdzKClcIiBib2R5Q2xpY2s+XG4gICAgICAgICAgICAgICAgPGZkLW1lbnUtYWRkb24gcG9zaXRpb249XCJiZWZvcmVcIiBnbHlwaD1cImdyb3VwLTJcIj48L2ZkLW1lbnUtYWRkb24+XG4gICAgICAgICAgICAgICAgPHNwYW4gZmQtbWVudS10aXRsZT5cbiAgICAgICAgICAgICAgICAgICAge3sgJ0dyb3VwcycgfCBiYmJUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9saT5cbiAgICA8L2ZkLW1lbnU+XG4gICAgfSBAaWYgKHZpZXdDb2xsZWN0aW9uICYmIHZpZXdDb2xsZWN0aW9uLmxlbmd0aCA+IDEpIHtcbiAgICA8ZmQtc3BsaXQtYnV0dG9uXG4gICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICBbYXR0ci5mZE92ZXJmbG93UHJpb3JpdHldPVwiZGV2aWNlU2l6ZSA9PT0gJ3MnID8gJ2Fsd2F5cycgOiAnbG93J1wiXG4gICAgICAgIFtmZFR5cGVdPVwiJ3RyYW5zcGFyZW50J1wiXG4gICAgICAgIFttYWluQWN0aW9uXT1cIntcbiAgICAgICAgICAgIGtlZXBNYWluQWN0aW9uOiB0cnVlLFxuICAgICAgICAgICAgbWFpbkFjdGlvblRpdGxlOiBzcGxpdEJ0blRpdGxlXG4gICAgICAgIH1cIlxuICAgID5cbiAgICAgICAgPGZkLW1lbnU+XG4gICAgICAgICAgICBAZm9yICh2aWV3T2JqZWN0IG9mIHZpZXdDb2xsZWN0aW9uOyB0cmFjayB2aWV3T2JqZWN0KSB7XG4gICAgICAgICAgICA8bGkgZmQtbWVudS1pdGVtPlxuICAgICAgICAgICAgICAgIDxkaXYgZmQtbWVudS1pbnRlcmFjdGl2ZSAoY2xpY2spPVwib25DaGFuZ2VWaWV3KHZpZXdPYmplY3QpXCIgYm9keUNsaWNrPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1tZW51LXRpdGxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWljb24gW2dseXBoXT1cInZpZXdPYmplY3QuVWlDb21wb25lbnQuU2V0dGluZ3M/Lkljb25cIj4gPC9mZC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2ZkLW1lbnU+XG4gICAgPC9mZC1zcGxpdC1idXR0b24+XG4gICAgfVxuICAgIDxuZy10ZW1wbGF0ZSAjc3BsaXRCdG5UaXRsZT5cbiAgICAgICAgPGZkLWljb24gW2dseXBoXT1cInJlcG9ydFZpZXcuVWlDb21wb25lbnQuU2V0dGluZ3M/Lkljb25cIj48L2ZkLWljb24+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI3NwbGl0QnRuU2V0dGluZ3M+XG4gICAgICAgIDxmZC1pY29uIFtnbHlwaF09XCInYWN0aW9uLXNldHRpbmdzJ1wiPjwvZmQtaWNvbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIH1cbjwvZmQtdG9vbGJhcj5cbn1cbiJdfQ==
@@ -1,28 +0,0 @@
1
- import { Pipe } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class UploadFileStatusPipe {
4
- transform(fileId, valueExtra) {
5
- return this._getStatus(fileId, valueExtra);
6
- }
7
- _getStatus(fileId, valueExtra) {
8
- const fileValueExtra = valueExtra[fileId];
9
- switch (fileValueExtra.UploadState) {
10
- case 'Uploading':
11
- return 'informative';
12
- case 'Error':
13
- return 'negative';
14
- case 'Complete':
15
- return 'positive';
16
- }
17
- return 'informative';
18
- }
19
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UploadFileStatusPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
20
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.5", ngImport: i0, type: UploadFileStatusPipe, name: "uploadFileStatus" }); }
21
- }
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UploadFileStatusPipe, decorators: [{
23
- type: Pipe,
24
- args: [{
25
- name: 'uploadFileStatus'
26
- }]
27
- }] });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWZpbGUtc3RhdHVzLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi91cGxvYWQtZmlsZS1zdGF0dXMucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNcEQsTUFBTSxPQUFPLG9CQUFvQjtJQUM3QixTQUFTLENBQUMsTUFBYyxFQUFFLFVBQWU7UUFDckMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBQ1MsVUFBVSxDQUFDLE1BQU0sRUFBRSxVQUFVO1FBQ25DLE1BQU0sY0FBYyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxQyxRQUFRLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqQyxLQUFLLFdBQVc7Z0JBQ1osT0FBTyxhQUFhLENBQUM7WUFDekIsS0FBSyxPQUFPO2dCQUNSLE9BQU8sVUFBVSxDQUFDO1lBQ3RCLEtBQUssVUFBVTtnQkFDWCxPQUFPLFVBQVUsQ0FBQztRQUMxQixDQUFDO1FBQ0QsT0FBTyxhQUFhLENBQUM7SUFDekIsQ0FBQzs4R0FmUSxvQkFBb0I7NEdBQXBCLG9CQUFvQjs7MkZBQXBCLG9CQUFvQjtrQkFIaEMsSUFBSTttQkFBQztvQkFDRixJQUFJLEVBQUUsa0JBQWtCO2lCQUMzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGVUcmFuc2Zvcm0sIFBpcGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JqZWN0U3RhdHVzIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcclxuXHJcbkBQaXBlKHtcclxuICAgIG5hbWU6ICd1cGxvYWRGaWxlU3RhdHVzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVXBsb2FkRmlsZVN0YXR1c1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICAgIHRyYW5zZm9ybShmaWxlSWQ6IHN0cmluZywgdmFsdWVFeHRyYTogYW55KTogT2JqZWN0U3RhdHVzIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0U3RhdHVzKGZpbGVJZCwgdmFsdWVFeHRyYSk7XHJcbiAgICB9XHJcbiAgICBwcm90ZWN0ZWQgX2dldFN0YXR1cyhmaWxlSWQsIHZhbHVlRXh0cmEpOiBPYmplY3RTdGF0dXMge1xyXG4gICAgICAgIGNvbnN0IGZpbGVWYWx1ZUV4dHJhID0gdmFsdWVFeHRyYVtmaWxlSWRdO1xyXG4gICAgICAgIHN3aXRjaCAoZmlsZVZhbHVlRXh0cmEuVXBsb2FkU3RhdGUpIHtcclxuICAgICAgICAgICAgY2FzZSAnVXBsb2FkaW5nJzpcclxuICAgICAgICAgICAgICAgIHJldHVybiAnaW5mb3JtYXRpdmUnO1xyXG4gICAgICAgICAgICBjYXNlICdFcnJvcic6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ25lZ2F0aXZlJztcclxuICAgICAgICAgICAgY2FzZSAnQ29tcGxldGUnOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuICdwb3NpdGl2ZSc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiAnaW5mb3JtYXRpdmUnO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -1,18 +0,0 @@
1
- import { Pipe } from '@angular/core';
2
- import jmoment from 'moment-jalaali';
3
- import * as i0 from "@angular/core";
4
- export class UtilChatTimeBadgePipe {
5
- transform(value) {
6
- return jmoment(value).format('jYYYY/jMM/jDD');
7
- }
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UtilChatTimeBadgePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
9
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.5", ngImport: i0, type: UtilChatTimeBadgePipe, isStandalone: true, name: "utilChatTimeBadge" }); }
10
- }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UtilChatTimeBadgePipe, decorators: [{
12
- type: Pipe,
13
- args: [{
14
- name: 'utilChatTimeBadge',
15
- standalone: true
16
- }]
17
- }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC1jaGF0LXRpbWUtYmFkZ2UucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL3V0aWwtY2hhdC10aW1lLWJhZGdlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxPQUFPLE1BQU0sZ0JBQWdCLENBQUM7O0FBTXJDLE1BQU0sT0FBTyxxQkFBcUI7SUFDOUIsU0FBUyxDQUFDLEtBQTZCO1FBQ25DLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNsRCxDQUFDOzhHQUhRLHFCQUFxQjs0R0FBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQUpqQyxJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSxtQkFBbUI7b0JBQ3pCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBqbW9tZW50IGZyb20gJ21vbWVudC1qYWxhYWxpJztcblxuQFBpcGUoe1xuICAgIG5hbWU6ICd1dGlsQ2hhdFRpbWVCYWRnZScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBVdGlsQ2hhdFRpbWVCYWRnZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICB0cmFuc2Zvcm0odmFsdWU6IHN0cmluZyB8IERhdGUgfCBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gam1vbWVudCh2YWx1ZSkuZm9ybWF0KCdqWVlZWS9qTU0vakREJyk7XG4gICAgfVxufVxuIl19
@@ -1,23 +0,0 @@
1
- import { Pipe } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class UtilDateToHhMmPipe {
4
- transform(value) {
5
- return value
6
- .toTimeString()
7
- .split(' ')[0]
8
- .split(':')
9
- .slice(0, 2)
10
- .map((s) => s.padStart(2, '0'))
11
- .join(':');
12
- }
13
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UtilDateToHhMmPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
14
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.5", ngImport: i0, type: UtilDateToHhMmPipe, isStandalone: true, name: "utilDateToHhMm" }); }
15
- }
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UtilDateToHhMmPipe, decorators: [{
17
- type: Pipe,
18
- args: [{
19
- name: 'utilDateToHhMm',
20
- standalone: true
21
- }]
22
- }] });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC1kYXRlLXRvLWhoLW1tLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi91dGlsLWRhdGUtdG8taGgtbW0ucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFNcEQsTUFBTSxPQUFPLGtCQUFrQjtJQUMzQixTQUFTLENBQUMsS0FBVztRQUNqQixPQUFPLEtBQUs7YUFDUCxZQUFZLEVBQUU7YUFDZCxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2IsS0FBSyxDQUFDLEdBQUcsQ0FBQzthQUNWLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQ1gsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQzthQUM5QixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkIsQ0FBQzs4R0FUUSxrQkFBa0I7NEdBQWxCLGtCQUFrQjs7MkZBQWxCLGtCQUFrQjtrQkFKOUIsSUFBSTttQkFBQztvQkFDRixJQUFJLEVBQUUsZ0JBQWdCO29CQUN0QixVQUFVLEVBQUUsSUFBSTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHtcbiAgICBuYW1lOiAndXRpbERhdGVUb0hoTW0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVXRpbERhdGVUb0hoTW1QaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKHZhbHVlOiBEYXRlKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlXG4gICAgICAgICAgICAudG9UaW1lU3RyaW5nKClcbiAgICAgICAgICAgIC5zcGxpdCgnICcpWzBdXG4gICAgICAgICAgICAuc3BsaXQoJzonKVxuICAgICAgICAgICAgLnNsaWNlKDAsIDIpXG4gICAgICAgICAgICAubWFwKChzKSA9PiBzLnBhZFN0YXJ0KDIsICcwJykpXG4gICAgICAgICAgICAuam9pbignOicpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,103 +0,0 @@
1
- import { Directive, Input } from '@angular/core';
2
- import { BarsaApi, BaseDirective } from 'barsa-novin-ray-core';
3
- import { LayoutWizardComponent } from './layout-wizard/layout-wizard.component';
4
- import * as i0 from "@angular/core";
5
- export class WizardLayoutDirective extends BaseDirective {
6
- constructor(vcr, factoryResolver, _el) {
7
- super(_el);
8
- this.vcr = vcr;
9
- this.factoryResolver = factoryResolver;
10
- this._el = _el;
11
- }
12
- ngOnInit() {
13
- super.ngOnInit();
14
- const { layout94, context } = this.wizardLayout;
15
- const factory = this.factoryResolver.resolveComponentFactory(LayoutWizardComponent);
16
- this.wizardComponentRef = this.vcr.createComponent(factory);
17
- const maxContentWidth = BarsaApi.Common.Util.TryGetValue(context, 'Setting.View.CustomUi.Parameters.MaxContentWidth', null);
18
- const minTabHeight = BarsaApi.Common.Util.TryGetValue(context, 'Setting.View.CustomUi.Parameters.MinTabHeight', null);
19
- this.wizardComponentRef.instance.root = layout94;
20
- this.wizardComponentRef.instance.maxContentWidth = maxContentWidth;
21
- this.wizardComponentRef.instance.minTabHeight = minTabHeight;
22
- this.wizardComponentRef.instance.breadCrumbs = this.breadCrumbs;
23
- this.wizardComponentRef.instance.toolbarVisible = this.toolbarVisible;
24
- this.wizardComponentRef.instance.toolbarItems = this.toolbarItems;
25
- this.wizardComponentRef.instance.layoutActions = this.layoutActions;
26
- this.wizardComponentRef.instance.layout94 = this.layout94;
27
- this.wizardComponentRef.instance.settings = this.settings;
28
- this.wizardComponentRef.instance.workflowPanelUi = this.workflowPanelUi;
29
- this.wizardComponentRef.instance.title = this.title;
30
- this.wizardComponentRef.instance.subtitle = this.subtitle;
31
- this.wizardComponentRef.instance.description = this.description;
32
- this.wizardComponentRef.instance.facetList = this.facetList;
33
- this.wizardComponentRef.instance.removeHeaderBorder = this.removeHeaderBorder;
34
- this.wizardComponentRef.instance.removeContentPadding = this.removeContentPadding;
35
- this.wizardComponentRef.instance.isMobile = this.isMobile;
36
- this.wizardComponentRef.instance.avatar = this.avatar;
37
- this.wizardComponentRef.instance.rtl = this.rtl;
38
- this.wizardComponentRef.instance.mask = this.mask;
39
- this.wizardComponentRef.instance.fieldDict = this.fieldDict;
40
- this.wizardComponentRef.instance.contentDensity = this.contentDensity;
41
- this.wizardComponentRef.instance.deviceSize = this.deviceSize;
42
- this.wizardComponentRef.instance.dirValue = this.dirValue;
43
- this.wizardComponentRef.instance.modernTabs = this.modernTabs;
44
- }
45
- nextStep() {
46
- // this.wizardComponentRef.instance._nextStep();
47
- }
48
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WizardLayoutDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.ComponentFactoryResolver }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
49
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.5", type: WizardLayoutDirective, selector: "[wizardLayout]", inputs: { wizardLayout: "wizardLayout", breadCrumbs: "breadCrumbs", toolbarVisible: "toolbarVisible", toolbarItems: "toolbarItems", layoutActions: "layoutActions", layout94: "layout94", settings: "settings", workflowPanelUi: "workflowPanelUi", title: "title", subtitle: "subtitle", description: "description", facetList: "facetList", removeHeaderBorder: "removeHeaderBorder", removeContentPadding: "removeContentPadding", isMobile: "isMobile", avatar: "avatar", rtl: "rtl", mask: "mask", fieldDict: "fieldDict", contentDensity: "contentDensity", deviceSize: "deviceSize", dirValue: "dirValue", modernTabs: "modernTabs" }, usesInheritance: true, ngImport: i0 }); }
50
- }
51
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WizardLayoutDirective, decorators: [{
52
- type: Directive,
53
- args: [{
54
- selector: '[wizardLayout]'
55
- }]
56
- }], ctorParameters: () => [{ type: i0.ViewContainerRef }, { type: i0.ComponentFactoryResolver }, { type: i0.ElementRef }], propDecorators: { wizardLayout: [{
57
- type: Input
58
- }], breadCrumbs: [{
59
- type: Input
60
- }], toolbarVisible: [{
61
- type: Input
62
- }], toolbarItems: [{
63
- type: Input
64
- }], layoutActions: [{
65
- type: Input
66
- }], layout94: [{
67
- type: Input
68
- }], settings: [{
69
- type: Input
70
- }], workflowPanelUi: [{
71
- type: Input
72
- }], title: [{
73
- type: Input
74
- }], subtitle: [{
75
- type: Input
76
- }], description: [{
77
- type: Input
78
- }], facetList: [{
79
- type: Input
80
- }], removeHeaderBorder: [{
81
- type: Input
82
- }], removeContentPadding: [{
83
- type: Input
84
- }], isMobile: [{
85
- type: Input
86
- }], avatar: [{
87
- type: Input
88
- }], rtl: [{
89
- type: Input
90
- }], mask: [{
91
- type: Input
92
- }], fieldDict: [{
93
- type: Input
94
- }], contentDensity: [{
95
- type: Input
96
- }], deviceSize: [{
97
- type: Input
98
- }], dirValue: [{
99
- type: Input
100
- }], modernTabs: [{
101
- type: Input
102
- }] } });
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLWxheW91dC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi93aXphcmQtbGF5b3V0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0gsU0FBUyxFQUVULEtBQUssRUFHUixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBc0QsTUFBTSxzQkFBc0IsQ0FBQztBQUNuSCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7QUFLaEYsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGFBQWE7SUEwQnBELFlBQ1ksR0FBcUIsRUFDckIsZUFBeUMsRUFDdkMsR0FBZTtRQUV6QixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFKSCxRQUFHLEdBQUgsR0FBRyxDQUFrQjtRQUNyQixvQkFBZSxHQUFmLGVBQWUsQ0FBMEI7UUFDdkMsUUFBRyxHQUFILEdBQUcsQ0FBWTtJQUc3QixDQUFDO0lBQ0QsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDaEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyx1QkFBdUIsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3BGLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1RCxNQUFNLGVBQWUsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQ3BELE9BQU8sRUFDUCxrREFBa0QsRUFDbEQsSUFBSSxDQUNQLENBQUM7UUFDRixNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFD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QixxQkFBcUI7OzJGQUFyQixxQkFBcUI7a0JBSGpDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGdCQUFnQjtpQkFDN0I7cUpBRVksWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgQ29tcG9uZW50UmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFyc2FBcGksIEJhc2VEaXJlY3RpdmUsIEJyZWFkQ3J1bWJJbmZvLCBMYXlvdXRTZXR0aW5nLCBNZXRhb2JqZWN0RGF0YU1vZGVsIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuaW1wb3J0IHsgTGF5b3V0V2l6YXJkQ29tcG9uZW50IH0gZnJvbSAnLi9sYXlvdXQtd2l6YXJkL2xheW91dC13aXphcmQuY29tcG9uZW50JztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbd2l6YXJkTGF5b3V0XSdcbn0pXG5leHBvcnQgY2xhc3MgV2l6YXJkTGF5b3V0RGlyZWN0aXZlIGV4dGVuZHMgQmFzZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCkgd2l6YXJkTGF5b3V0OiBhbnk7XG4gICAgQElucHV0KCkgYnJlYWRDcnVtYnM6IEJyZWFkQ3J1bWJJbmZvW10gfCBudWxsO1xuICAgIEBJbnB1dCgpIHRvb2xiYXJWaXNpYmxlOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHRvb2xiYXJJdGVtczogYW55W107XG4gICAgQElucHV0KCkgbGF5b3V0QWN0aW9uczogYW55W107XG4gICAgQElucHV0KCkgbGF5b3V0OTQ7XG4gICAgQElucHV0KCkgc2V0dGluZ3M6IE1ldGFvYmplY3REYXRhTW9kZWw7XG4gICAgQElucHV0KCkgd29ya2Zsb3dQYW5lbFVpOiBhbnk7XG4gICAgQElucHV0KCkgdGl0bGU6IHN0cmluZztcbiAgICBASW5wdXQoKSBzdWJ0aXRsZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZmFjZXRMaXN0OiBhbnlbXTtcbiAgICBASW5wdXQoKSByZW1vdmVIZWFkZXJCb3JkZXI6IGJvb2xlYW47XG4gICAgQElucHV0KCkgcmVtb3ZlQ29udGVudFBhZGRpbmc6IGJvb2xlYW47XG4gICAgQElucHV0KCkgaXNNb2JpbGU6IGJvb2xlYW47XG4gICAgQElucHV0KCkgYXZhdGFyOiBhbnk7XG4gICAgQElucHV0KCkgcnRsOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIG1hc2s6IGJvb2xlYW47XG4gICAgQElucHV0KCkgZmllbGREaWN0OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHwgdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIGNvbnRlbnREZW5zaXR5OiBhbnk7XG4gICAgQElucHV0KCkgZGV2aWNlU2l6ZTogJ3MnIHwgJ20nIHwgJ2wnIHwgJ3hsJztcbiAgICBASW5wdXQoKSBkaXJWYWx1ZTogJ3J0bCcgfCAnbHRyJztcbiAgICBASW5wdXQoKSBtb2Rlcm5UYWJzOiBMYXlvdXRTZXR0aW5nW107XG5cbiAgICB3aXphcmRDb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxMYXlvdXRXaXphcmRDb21wb25lbnQ+O1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHZjcjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgcHJpdmF0ZSBmYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgICAgcHJvdGVjdGVkIF9lbDogRWxlbWVudFJlZlxuICAgICkge1xuICAgICAgICBzdXBlcihfZWwpO1xuICAgIH1cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgY29uc3QgeyBsYXlvdXQ5NCwgY29udGV4dCB9ID0gdGhpcy53aXphcmRMYXlvdXQ7XG4gICAgICAgIGNvbnN0IGZhY3RvcnkgPSB0aGlzLmZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShMYXlvdXRXaXphcmRDb21wb25lbnQpO1xuICAgICAgICB0aGlzLndpemFyZENvbXBvbmVudFJlZiA9IHRoaXMudmNyLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5KTtcbiAgICAgICAgY29uc3QgbWF4Q29udGVudFdpZHRoID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUoXG4gICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgJ1NldHRpbmcuVmlldy5DdXN0b21VaS5QYXJhbWV0ZXJzLk1heENvbnRlbnRXaWR0aCcsXG4gICAgICAgICAgICBudWxsXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IG1pblRhYkhlaWdodCA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKFxuICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgICdTZXR0aW5nLlZpZXcuQ3VzdG9tVWkuUGFyYW1ldGVycy5NaW5UYWJIZWlnaHQnLFxuICAgICAgICAgICAgbnVsbFxuICAgICAgICApO1xuICAgICAgICB0aGlzLndpemFyZENvbXBvbmVudFJlZi5pbnN0YW5jZS5yb290ID0gbGF5b3V0OTQ7XG4gICAgICAgIHRoaXMud2l6YXJkQ29tcG9uZW50UmVmLmluc3RhbmNlLm1heENvbnRlbnRXaWR0aCA9IG1heENvbnRlbnRXaWR0aDtcbiAgICAgICAgdGhpcy53aXphcmRDb21wb25lbnRSZWYuaW5zdGFuY2UubWluVGFiSGVpZ2h0ID0gbWluVGFiSGVpZ2h0O1xuICAgICAgICB0aGlzLndpemFyZENvbXBvbmVudFJlZi5pbnN0YW5jZS5icmVhZENydW1icyA9IHRoaXMuYnJlYWRDcnVtYnM7XG4gICAgICAgIHRoaXMud2l6YXJkQ29tcG9uZW50UmVmLmluc3RhbmNlLnRvb2xiYXJWaXNpYmxlID0gdGhpcy50b29sYmFyVmlzaWJsZTtcbiAgICAgICAgdGhpcy53aXphcmRDb21wb25lbnRSZWYuaW5zdGFuY2UudG9vbGJhckl0ZW1zID0gdGhpcy50b29sYmFySXRlbXM7XG4gICAgICAgIHRoaXMud2l6YXJkQ29tcG9uZW50UmVmLmluc3RhbmNlLmxheW91dEFjdGlvbnMgPSB0aGlzLmxheW91dEFjdGlvbnM7XG4gICAgICAgIHRoaXMud2l6YXJkQ29tcG9uZW50UmVmLmluc3RhbmNlLmxheW91dDk0ID0gdGhpcy5sYXlvdXQ5NDtcbiAgICAgICAgdGhpcy53aXphcmRDb21wb25lbnRSZWYuaW5zdGFuY2Uuc2V0dGluZ3MgPSB0aGlzLnNldHRpbmdzO1xuICAgICAgICB0aGlzLndpemFyZENvbXBvbmVudFJlZi5pbnN0YW5jZS53b3JrZmxvd1BhbmVsVWkgPSB0aGlzLndvcmtmbG93UGFuZWxVaTtcbiAgICAgICAgdGhpcy53aXphcmRDb21wb25lbnRSZWYuaW5zdGFuY2UudGl0bGUgPSB0aGlzLnRpdGxlO1xuICAgICAgICB0aGlzLndpemFyZENvbXBvbmVudFJlZi5pbnN0YW5jZS5zdWJ0aXRsZSA9IHRoaXMuc3VidGl0bGU7XG4gICAgICAgIHRoaXMud2l6YXJkQ29tcG9uZW50UmVmLmluc3RhbmNlLmRlc2NyaXB0aW9uID0gdGhpcy5kZXNjcmlwdGlvbjtcbiAgICAgICAgdGhpcy53aXphcmRDb21wb25lbnRSZWYuaW5zdGFuY2UuZmFjZXRMaXN0ID0gdGhpcy5mYWNldExpc3Q7XG4gICAgICAgIHRoaXMud2l6YXJkQ29tcG9uZW50UmVmLmluc3RhbmNlLnJlbW92ZUhlYWRlckJvcmRlciA9IHRoaXMucmVtb3ZlSGVhZGVyQm9yZGVyO1xuICAgICAgICB0aGlzLndpemFyZENvbXBvbmVudFJlZi5pbnN0YW5jZS5yZW1vdmVDb250ZW50UGFkZGluZyA9IHRoaXMucmVtb3ZlQ29udGVudFBhZGRpbmc7XG4gICAgICAgIHRoaXMud2l6YXJkQ29tcG9uZW50UmVmLmluc3RhbmNlLmlzTW9iaWxlID0gdGhpcy5pc01vYmlsZTtcbiAgICAgICAgdGhpcy53aXphcmRDb21wb25lbnRSZWYuaW5zdGFuY2UuYXZhdGFyID0gdGhpcy5hdmF0YXI7XG4gICAgICAgIHRoaXMud2l6YXJkQ29tcG9uZW50UmVmLmluc3RhbmNlLnJ0bCA9IHRoaXMucnRsO1xuICAgICAgICB0aGlzLndpemFyZENvbXBvbmVudFJlZi5pbnN0YW5jZS5tYXNrID0gdGhpcy5tYXNrO1xuICAgICAgICB0aGlzLndpemFyZENvbXBvbmVudFJlZi5pbnN0YW5jZS5maWVsZERpY3QgPSB0aGlzLmZpZWxkRGljdDtcbiAgICAgICAgdGhpcy53aXphcmRDb21wb25lbnRSZWYuaW5zdGFuY2UuY29udGVudERlbnNpdHkgPSB0aGlzLmNvbnRlbnREZW5zaXR5O1xuICAgICAgICB0aGlzLndpemFyZENvbXBvbmVudFJlZi5pbnN0YW5jZS5kZXZpY2VTaXplID0gdGhpcy5kZXZpY2VTaXplO1xuICAgICAgICB0aGlzLndpemFyZENvbXBvbmVudFJlZi5pbnN0YW5jZS5kaXJWYWx1ZSA9IHRoaXMuZGlyVmFsdWU7XG4gICAgICAgIHRoaXMud2l6YXJkQ29tcG9uZW50UmVmLmluc3RhbmNlLm1vZGVyblRhYnMgPSB0aGlzLm1vZGVyblRhYnM7XG4gICAgfVxuICAgIHB1YmxpYyBuZXh0U3RlcCgpOiB2b2lkIHtcbiAgICAgICAgLy8gdGhpcy53aXphcmRDb21wb25lbnRSZWYuaW5zdGFuY2UuX25leHRTdGVwKCk7XG4gICAgfVxufVxuIl19