barsa-sap-ui 2.1.1 → 2.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (243) hide show
  1. package/fesm2022/barsa-sap-ui.mjs +419 -367
  2. package/fesm2022/barsa-sap-ui.mjs.map +1 -1
  3. package/lib/barsa-bar-download-file/barsa-bar-download-file.component.d.ts +10 -0
  4. package/lib/barsa-sap-ui.module.d.ts +237 -236
  5. package/lib/file-viewer-popover/file-viewer-popover.component.d.ts +1 -1
  6. package/lib/ui-map/ui-map.component.d.ts +2 -0
  7. package/package.json +3 -5
  8. package/public-api.d.ts +1 -0
  9. package/esm2022/barsa-sap-ui.mjs +0 -5
  10. package/esm2022/lib/apply-conditional-formmatings.directive.mjs +0 -89
  11. package/esm2022/lib/avatar-size.pipe.mjs +0 -40
  12. package/esm2022/lib/barsa-answer-card/barsa-answer-card.component.mjs +0 -41
  13. package/esm2022/lib/barsa-asp-viewer/barsa-asp-viewer.component.mjs +0 -145
  14. package/esm2022/lib/barsa-bar-panel/barsa-bar-panel.component.mjs +0 -23
  15. package/esm2022/lib/barsa-base-panel/barsa-base-layout-panel.component.mjs +0 -29
  16. package/esm2022/lib/barsa-breadcrumbs/barsa-breadcrumbs.component.mjs +0 -24
  17. package/esm2022/lib/barsa-card-layout-panel/barsa-card-layout-panel.component.mjs +0 -24
  18. package/esm2022/lib/barsa-card-row-payam/barsa-card-row-payam.component.mjs +0 -31
  19. package/esm2022/lib/barsa-cartable-form/barsa-cartable-form.component.mjs +0 -41
  20. package/esm2022/lib/barsa-cartable-template/barsa-cartable-template.component.mjs +0 -24
  21. package/esm2022/lib/barsa-chat/barsa-chat.component.mjs +0 -242
  22. package/esm2022/lib/barsa-chat/chat.model.mjs +0 -8
  23. package/esm2022/lib/barsa-chat-content/barsa-chat-content.component.mjs +0 -13
  24. package/esm2022/lib/barsa-chat-content-toolbar/barsa-chat-content-toolbar.component.mjs +0 -22
  25. package/esm2022/lib/barsa-chat-list/barsa-chat-list.component.mjs +0 -66
  26. package/esm2022/lib/barsa-chat-message/barsa-chat-message.component.mjs +0 -78
  27. package/esm2022/lib/barsa-chat-thread/barsa-chat-thread.component.mjs +0 -22
  28. package/esm2022/lib/barsa-chat-threads-list/barsa-chat-threads-list.component.mjs +0 -13
  29. package/esm2022/lib/barsa-chat-threads-list-toolbar/barsa-chat-threads-list-toolbar.component.mjs +0 -15
  30. package/esm2022/lib/barsa-chip/barsa-chip.component.mjs +0 -72
  31. package/esm2022/lib/barsa-column-indicator/barsa-column-indicator.component.mjs +0 -23
  32. package/esm2022/lib/barsa-column-rownumber/barsa-column-rownumber.component.mjs +0 -14
  33. package/esm2022/lib/barsa-custom-inline-edit/barsa-custom-inline-edit.component.mjs +0 -14
  34. package/esm2022/lib/barsa-custom-inline-edit-row/barsa-custom-inline-edit-row.component.mjs +0 -26
  35. package/esm2022/lib/barsa-date-time-picker/barsa-date-time-picker.component.mjs +0 -71
  36. package/esm2022/lib/barsa-dynamic-field/barsa-dynamic-field.component.mjs +0 -40
  37. package/esm2022/lib/barsa-enum-menu-button/barsa-enum-menu-button.component.mjs +0 -61
  38. package/esm2022/lib/barsa-field-key-value/barsa-field-key-value.component.mjs +0 -45
  39. package/esm2022/lib/barsa-form-side-content/barsa-form-side-content.component.mjs +0 -58
  40. package/esm2022/lib/barsa-grid-layout-panel/barsa-grid-layout-panel.component.mjs +0 -27
  41. package/esm2022/lib/barsa-group-cartable/barsa-cartable-group.component.mjs +0 -94
  42. package/esm2022/lib/barsa-horizontal-flex-panel/barsa-horizontal-flex-panel.component.mjs +0 -22
  43. package/esm2022/lib/barsa-linkable-items-panel/barsa-linkable-items-panel.component.mjs +0 -37
  44. package/esm2022/lib/barsa-list-file-linear/barsa-list-file-linear.component.mjs +0 -41
  45. package/esm2022/lib/barsa-list-file-linear-gmail/barsa-list-file-linear-gmail.component.mjs +0 -29
  46. package/esm2022/lib/barsa-list-layout-panel/barsa-list-layout-panel.component.mjs +0 -23
  47. package/esm2022/lib/barsa-modal/barsa-modal.component.mjs +0 -43
  48. package/esm2022/lib/barsa-monaco-editor/barsa-monaco-editor.component.mjs +0 -83
  49. package/esm2022/lib/barsa-network-offline/barsa-network-offline.component.mjs +0 -57
  50. package/esm2022/lib/barsa-pishnamayesh-payam/barsa-pishnamayesh-payam.component.mjs +0 -159
  51. package/esm2022/lib/barsa-question-answer-comments-section/barsa-question-answer-comments-section.component.mjs +0 -17
  52. package/esm2022/lib/barsa-question-answer-content-actions-section/barsa-question-answer-content-actions-section.component.mjs +0 -30
  53. package/esm2022/lib/barsa-question-answer-creator-time-section/barsa-question-answer-creator-time-section.component.mjs +0 -14
  54. package/esm2022/lib/barsa-question-answer-form/barsa-question-answer-form.component.mjs +0 -34
  55. package/esm2022/lib/barsa-question-answer-form-add-comment/barsa-question-answer-form-add-comment.component.mjs +0 -46
  56. package/esm2022/lib/barsa-question-answer-vote-section/barsa-question-answer-vote-section.component.mjs +0 -79
  57. package/esm2022/lib/barsa-question-post/barsa-question-post.component.mjs +0 -30
  58. package/esm2022/lib/barsa-report-card-flex-view/barsa-report-card-flex-view.component.mjs +0 -31
  59. package/esm2022/lib/barsa-report-checkbox-switch-button/barsa-report-checkbox-switch-button.component.mjs +0 -28
  60. package/esm2022/lib/barsa-report-one-of-list/barsa-report-one-of-list.component.mjs +0 -102
  61. package/esm2022/lib/barsa-row-inline-actionlist/barsa-row-inline-actionlist.component.mjs +0 -26
  62. package/esm2022/lib/barsa-sap-ui-routing.module.mjs +0 -18
  63. package/esm2022/lib/barsa-sap-ui.module.mjs +0 -374
  64. package/esm2022/lib/barsa-search-form/barsa-search-form.component.mjs +0 -29
  65. package/esm2022/lib/barsa-simple-form/barsa-simple-form.component.mjs +0 -170
  66. package/esm2022/lib/barsa-tab-route-manager/barsa-tab-route-manager.component.mjs +0 -18
  67. package/esm2022/lib/barsa-table-column/barsa-table-column.component.mjs +0 -29
  68. package/esm2022/lib/barsa-table-header/barsa-table-header.component.mjs +0 -222
  69. package/esm2022/lib/barsa-table-row/barsa-table-row.component.mjs +0 -87
  70. package/esm2022/lib/barsa-tag-categories/barsa-tag-categories.component.mjs +0 -60
  71. package/esm2022/lib/barsa-tag-chip/barsa-tag-chip.component.mjs +0 -26
  72. package/esm2022/lib/barsa-tags-category-row/barsa-tags-category-row.component.mjs +0 -23
  73. package/esm2022/lib/barsa-text-ellipsis/barsa-text-ellipsis.component.mjs +0 -37
  74. package/esm2022/lib/barsa-tinyemce/barsa-tinyemce.component.mjs +0 -418
  75. package/esm2022/lib/barsa-toolbaritem-search/barsa-toolbaritem-search.component.mjs +0 -36
  76. package/esm2022/lib/barsa-tree-item/barsa-tree-item.component.mjs +0 -153
  77. package/esm2022/lib/barsa-tree-item/node-has-one-depth-level.pipe.mjs +0 -19
  78. package/esm2022/lib/barsa-ulv-main/barsa-ulv-main.component.mjs +0 -216
  79. package/esm2022/lib/blob-viewer/blob-viewer.component.mjs +0 -74
  80. package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +0 -50
  81. package/esm2022/lib/captcha-field/captcha-field.component.mjs +0 -28
  82. package/esm2022/lib/card-item/card-item.component.mjs +0 -64
  83. package/esm2022/lib/card-view-content/card-view-content.component.mjs +0 -46
  84. package/esm2022/lib/col-renderer.directive.mjs +0 -46
  85. package/esm2022/lib/column-matrix-renderer/column-matrix-renderer.component.mjs +0 -56
  86. package/esm2022/lib/column-matrix-renderer/matrix-value.pipe.mjs +0 -60
  87. package/esm2022/lib/column-renderer/column-renderer.component.mjs +0 -88
  88. package/esm2022/lib/constants.mjs +0 -425
  89. package/esm2022/lib/custom-date-time/custom-date-time.component.mjs +0 -41
  90. package/esm2022/lib/device-info-field-base.mjs +0 -23
  91. package/esm2022/lib/dialog-handler.directive.mjs +0 -28
  92. package/esm2022/lib/download-files.directive.mjs +0 -33
  93. package/esm2022/lib/dynamic-page-size.pipe.mjs +0 -26
  94. package/esm2022/lib/file-in-dialog/file-in-dialog.component.mjs +0 -44
  95. package/esm2022/lib/file-viewer/file-viewer.component.mjs +0 -47
  96. package/esm2022/lib/file-viewer-content/file-viewer-content.component.mjs +0 -71
  97. package/esm2022/lib/file-viewer-popover/file-viewer-popover.component.mjs +0 -39
  98. package/esm2022/lib/form-dialog/form-dialog.component.mjs +0 -171
  99. package/esm2022/lib/form-dialog-less/form-dialog-less.component.mjs +0 -50
  100. package/esm2022/lib/form-toolbar/form-toolbar.component.mjs +0 -62
  101. package/esm2022/lib/form-toolbar-button/form-toolbar-button.component.mjs +0 -45
  102. package/esm2022/lib/form-wizard/form-wizard.component.mjs +0 -21
  103. package/esm2022/lib/fullscreen-dialog.directive.mjs +0 -59
  104. package/esm2022/lib/fullscreen-files.directive.mjs +0 -42
  105. package/esm2022/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.mjs +0 -213
  106. package/esm2022/lib/gantt-dhtml-chart-view/gantt-dhtml-chart-view.component.mjs +0 -215
  107. package/esm2022/lib/global-search/global-search.component.mjs +0 -27
  108. package/esm2022/lib/global-search-module/global-search-module.component.mjs +0 -29
  109. package/esm2022/lib/global-search-panel/global-search-panel.component.mjs +0 -25
  110. package/esm2022/lib/header-avatar/header-avatar.component.mjs +0 -18
  111. package/esm2022/lib/htree-create-new/htree-create-new.component.mjs +0 -48
  112. package/esm2022/lib/hyperlink/hyperlink.component.mjs +0 -23
  113. package/esm2022/lib/index.mjs +0 -543
  114. package/esm2022/lib/inline-save-and-cancel/inline-save-and-cancel.component.mjs +0 -32
  115. package/esm2022/lib/layout-actions/layout-actions.component.mjs +0 -70
  116. package/esm2022/lib/layout-control/layout-control.component.mjs +0 -302
  117. package/esm2022/lib/layout-wizard/layout-wizard.component.mjs +0 -183
  118. package/esm2022/lib/list-item/list-item.component.mjs +0 -34
  119. package/esm2022/lib/ly-empty-space/ly-empty-space.component.mjs +0 -42
  120. package/esm2022/lib/ly-horizontal-layout/ly-horizontal-layout.component.mjs +0 -82
  121. package/esm2022/lib/ly-label/ly-label.component.mjs +0 -37
  122. package/esm2022/lib/ly-layout-container/ly-layout-container.component.mjs +0 -83
  123. package/esm2022/lib/ly-layout-container-of-root/ly-layout-container-of-root.component.mjs +0 -17
  124. package/esm2022/lib/ly-layout-field-label/ly-layout-field-label.component.mjs +0 -24
  125. package/esm2022/lib/ly-layout-panel/ly-layout-panel.component.mjs +0 -83
  126. package/esm2022/lib/ly-line/ly-line.component.mjs +0 -56
  127. package/esm2022/lib/ly-simple-label/ly-simple-label.component.mjs +0 -22
  128. package/esm2022/lib/ly-tab-container/ly-tab-container.component.mjs +0 -45
  129. package/esm2022/lib/ly-tab-page/ly-tab-page.component.mjs +0 -44
  130. package/esm2022/lib/ly-vertical-layout/ly-vertical-layout.component.mjs +0 -51
  131. package/esm2022/lib/manage-filters-report/manage-filters-report.component.mjs +0 -43
  132. package/esm2022/lib/mask/mask.component.mjs +0 -22
  133. package/esm2022/lib/message-strip/message-strip.component.mjs +0 -28
  134. package/esm2022/lib/models/grid-data-provider.mjs +0 -114
  135. package/esm2022/lib/models/grid-view.mjs +0 -2
  136. package/esm2022/lib/models/index.mjs +0 -2
  137. package/esm2022/lib/no-data/no-data.component.mjs +0 -31
  138. package/esm2022/lib/notification-item/notification-item.component.mjs +0 -57
  139. package/esm2022/lib/notification-popup.service.mjs +0 -92
  140. package/esm2022/lib/object-status-icon.pipe.mjs +0 -26
  141. package/esm2022/lib/progress-indicator/progress-indicator.component.mjs +0 -18
  142. package/esm2022/lib/report-navigator/report-navigator.component.mjs +0 -68
  143. package/esm2022/lib/report-new-top-form/report-new-top-form.component.mjs +0 -60
  144. package/esm2022/lib/report-search-fields-hidden-settings/report-search-fields-hidden-settings.component.mjs +0 -35
  145. package/esm2022/lib/report-search-fields-manage/report-search-fields-manage.component.mjs +0 -97
  146. package/esm2022/lib/report-search-panel-save/report-search-panel-save.component.mjs +0 -88
  147. package/esm2022/lib/report-tree-base.mjs +0 -386
  148. package/esm2022/lib/report-view-renderer.directive.mjs +0 -385
  149. package/esm2022/lib/responsive-toolbar/responsive-toolbar.component.mjs +0 -50
  150. package/esm2022/lib/responsive-toolbar-renderer/responsive-toolbar-renderer.component.mjs +0 -84
  151. package/esm2022/lib/rich-text-static/rich-text-static.component.mjs +0 -72
  152. package/esm2022/lib/sap-font-class.pipe.mjs +0 -29
  153. package/esm2022/lib/sap-font.pipe.mjs +0 -29
  154. package/esm2022/lib/sap-size.pipe.mjs +0 -27
  155. package/esm2022/lib/sap-ui-report-base.component.mjs +0 -805
  156. package/esm2022/lib/search-panel/search-panel.component.mjs +0 -63
  157. package/esm2022/lib/static-text/static-text.component.mjs +0 -15
  158. package/esm2022/lib/table-th.directive.mjs +0 -86
  159. package/esm2022/lib/title/title.component.mjs +0 -15
  160. package/esm2022/lib/ui-asp-report-viewer/ui-asp-report-viewer.component.mjs +0 -34
  161. package/esm2022/lib/ui-bpmn-viewer/ui-bpmn-viewer.component.mjs +0 -33
  162. package/esm2022/lib/ui-button/ui-button.component.mjs +0 -32
  163. package/esm2022/lib/ui-calendar/ui-calendar.component.mjs +0 -53
  164. package/esm2022/lib/ui-card-view/ui-card-view.component.mjs +0 -57
  165. package/esm2022/lib/ui-card-view-horizontal-group/ui-card-view-horizontal-group.component.mjs +0 -42
  166. package/esm2022/lib/ui-check-box/ui-check-box.component.mjs +0 -39
  167. package/esm2022/lib/ui-color-ui/ui-color-ui.component.mjs +0 -50
  168. package/esm2022/lib/ui-container-with-button/ui-container-with-button.component.mjs +0 -38
  169. package/esm2022/lib/ui-date-range-ex/ui-date-range-ex.component.mjs +0 -191
  170. package/esm2022/lib/ui-date-time/ui-date-time.component.mjs +0 -150
  171. package/esm2022/lib/ui-editable-grid/ui-editable-grid.component.mjs +0 -110
  172. package/esm2022/lib/ui-exception-form/ui-exception-form.component.mjs +0 -53
  173. package/esm2022/lib/ui-file-linear-list-box/ui-file-linear-list-box.component.mjs +0 -121
  174. package/esm2022/lib/ui-form-panel/ui-form-panel.component.mjs +0 -100
  175. package/esm2022/lib/ui-gantt-chart/ui-gantt-chart.component.mjs +0 -32
  176. package/esm2022/lib/ui-graph/ui-graph.component.mjs +0 -17
  177. package/esm2022/lib/ui-grid/ui-grid.component.mjs +0 -25
  178. package/esm2022/lib/ui-grid-columns/ui-grid-columns.component.mjs +0 -43
  179. package/esm2022/lib/ui-grid-filter-item/ui-grid-filter-item.component.mjs +0 -66
  180. package/esm2022/lib/ui-grid-filter-settings/ui-grid-filter-settings.component.mjs +0 -75
  181. package/esm2022/lib/ui-grid-sort-item/ui-grid-sort-item.component.mjs +0 -58
  182. package/esm2022/lib/ui-grid-sort-setting/ui-grid-sort-setting.component.mjs +0 -123
  183. package/esm2022/lib/ui-html-viewer/ui-html-viewer.component.mjs +0 -16
  184. package/esm2022/lib/ui-info-bar-panel/ui-info-bar-panel.component.mjs +0 -11
  185. package/esm2022/lib/ui-label/ui-label.component.mjs +0 -12
  186. package/esm2022/lib/ui-linear-list-container-with-button/ui-linear-list-container-with-button.component.mjs +0 -379
  187. package/esm2022/lib/ui-list-view/ui-list-view.component.mjs +0 -84
  188. package/esm2022/lib/ui-map/ui-map.component.mjs +0 -58
  189. package/esm2022/lib/ui-matrix-view/ui-matrix-view.component.mjs +0 -124
  190. package/esm2022/lib/ui-mo-info-combo-viewer/ui-mo-info-combo-viewer.component.mjs +0 -19
  191. package/esm2022/lib/ui-mo-info-general-object-ui/ui-mo-info-general-object-ui.component.mjs +0 -14
  192. package/esm2022/lib/ui-mo-info-sub-form-ui/ui-mo-info-sub-form-ui.component.mjs +0 -55
  193. package/esm2022/lib/ui-mo-info-ulv-combo/ui-mo-info-ulv-combo.component.mjs +0 -429
  194. package/esm2022/lib/ui-monaco-editor/ui-monaco-editor.component.mjs +0 -28
  195. package/esm2022/lib/ui-multi-select-card/ui-multi-select-card.component.mjs +0 -37
  196. package/esm2022/lib/ui-multi-select-checkbox/ui-multi-select-checkbox.component.mjs +0 -59
  197. package/esm2022/lib/ui-multi-select-combo/ui-multi-select-combo.component.mjs +0 -93
  198. package/esm2022/lib/ui-multi-select-radio/ui-multi-select-radio.component.mjs +0 -36
  199. package/esm2022/lib/ui-multi-select-slider/ui-multi-select-slider.component.mjs +0 -56
  200. package/esm2022/lib/ui-multi-select-smile/ui-multi-select-smile.component.mjs +0 -28
  201. package/esm2022/lib/ui-num-decimal-ui/ui-num-decimal-ui.component.mjs +0 -33
  202. package/esm2022/lib/ui-num-int-slider/ui-num-int-slider.component.mjs +0 -27
  203. package/esm2022/lib/ui-num-int-ui/ui-num-int-ui.component.mjs +0 -21
  204. package/esm2022/lib/ui-pdf-viewer/ui-pdf-viewer.component.mjs +0 -268
  205. package/esm2022/lib/ui-picture-file/ui-picture-file.component.mjs +0 -101
  206. package/esm2022/lib/ui-pictures-info/ui-pictures-info.component.mjs +0 -261
  207. package/esm2022/lib/ui-radio-group/ui-radio-group.component.mjs +0 -48
  208. package/esm2022/lib/ui-read-only-field/ui-read-only-field.component.mjs +0 -36
  209. package/esm2022/lib/ui-report-container/ui-report-container.component.mjs +0 -46
  210. package/esm2022/lib/ui-search-command-info-ui/ui-search-command-info-ui.component.mjs +0 -24
  211. package/esm2022/lib/ui-simple-combo/ui-simple-combo.component.mjs +0 -55
  212. package/esm2022/lib/ui-single-picture/ui-single-picture.component.mjs +0 -36
  213. package/esm2022/lib/ui-switch-button/ui-switch-button.component.mjs +0 -20
  214. package/esm2022/lib/ui-table-view/ui-table-view.component.mjs +0 -289
  215. package/esm2022/lib/ui-text-area/ui-text-area.component.mjs +0 -49
  216. package/esm2022/lib/ui-text-field/ui-text-field.component.mjs +0 -52
  217. package/esm2022/lib/ui-text-field-auto-complete/ui-text-field-auto-complete.component.mjs +0 -48
  218. package/esm2022/lib/ui-time-span/ui-time-span.component.mjs +0 -24
  219. package/esm2022/lib/ui-tinymce/ui-tinymce.component.mjs +0 -53
  220. package/esm2022/lib/ui-tree/ui-tree.component.mjs +0 -114
  221. package/esm2022/lib/ui-tree-view/ui-tree-view.component.mjs +0 -100
  222. package/esm2022/lib/ui-ulv-form-multi-select-ui/ui-ulv-form-multi-select-ui.component.mjs +0 -23
  223. package/esm2022/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.mjs +0 -306
  224. package/esm2022/lib/ui-workflow-panel-ui/ui-workflow-panel-ui.component.mjs +0 -25
  225. package/esm2022/lib/ul-loading-mask-ui/ul-loading-mask-ui.component.mjs +0 -93
  226. package/esm2022/lib/ul-msg-box-adapter/ul-msg-box-adapter.component.mjs +0 -119
  227. package/esm2022/lib/ul-notify-popup/ul-notify-popup.component.mjs +0 -32
  228. package/esm2022/lib/ul-toast-adapter/ul-toast-adapter.component.mjs +0 -48
  229. package/esm2022/lib/ulv-column-settings/ulv-column-settings.component.mjs +0 -53
  230. package/esm2022/lib/ulv-context-menu/ulv-context-menu.component.mjs +0 -114
  231. package/esm2022/lib/ulv-filter-settings/ulv-filter-settings.component.mjs +0 -43
  232. package/esm2022/lib/ulv-form-multi-select/ulv-form-multi-select.component.mjs +0 -196
  233. package/esm2022/lib/ulv-groupby-settings/ulv-groupby-settings.component.mjs +0 -44
  234. package/esm2022/lib/ulv-paging/ulv-paging.component.mjs +0 -84
  235. package/esm2022/lib/ulv-selection/ulv-selection.component.mjs +0 -65
  236. package/esm2022/lib/ulv-settings/ulv-settings.component.mjs +0 -116
  237. package/esm2022/lib/ulv-sort-settings/ulv-sort-settings.component.mjs +0 -54
  238. package/esm2022/lib/ulv-toolbar/ulv-toolbar.component.mjs +0 -174
  239. package/esm2022/lib/upload-file-status.pipe.mjs +0 -28
  240. package/esm2022/lib/util-chat-time-badge.pipe.mjs +0 -18
  241. package/esm2022/lib/util-date-to-hh-mm.pipe.mjs +0 -23
  242. package/esm2022/lib/wizard-layout.directive.mjs +0 -103
  243. package/esm2022/public-api.mjs +0 -233
@@ -1,171 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, TemplateRef, ViewChild } from '@angular/core';
2
- import { BarsaApi, ContainerService, BaseComponent, isFirefox, getDeviceIsMobile } from 'barsa-novin-ray-core';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@fundamental-ngx/core";
5
- import * as i2 from "barsa-novin-ray-core";
6
- import * as i3 from "@angular/common";
7
- import * as i4 from "@fundamental-ngx/core/bar";
8
- import * as i5 from "@fundamental-ngx/core/dialog";
9
- import * as i6 from "@fundamental-ngx/cdk/utils";
10
- import * as i7 from "@fundamental-ngx/core/title";
11
- import * as i8 from "@fundamental-ngx/core/toolbar";
12
- import * as i9 from "../layout-actions/layout-actions.component";
13
- import * as i10 from "../form-toolbar/form-toolbar.component";
14
- import * as i11 from "../fullscreen-dialog.directive";
15
- export class FormDialogComponent extends BaseComponent {
16
- constructor(_dialogService, dialogParams, _portalService) {
17
- super();
18
- this._dialogService = _dialogService;
19
- this.dialogParams = dialogParams;
20
- this._portalService = _portalService;
21
- this.caption = '';
22
- this.fullscreen = false;
23
- this.isNonePersistance = false;
24
- this.showSaveButton = true;
25
- this.showToolbar = true;
26
- this.isFirefox = isFirefox();
27
- this.isMobile = getDeviceIsMobile();
28
- this.isWorkflowForm = false;
29
- this.workflowButtonsOnFooter = false;
30
- this.selectedWorkflowButton = null;
31
- this._portalService.deviceSize$.subscribe((deviceSize) => {
32
- this.deviceSize = deviceSize;
33
- });
34
- const formPanelCtrlr = this.dialogParams.context.formpanelCtrlr;
35
- const parameters = BarsaApi.Common.Util.TryGetValue(formPanelCtrlr, 'Setting.View.CustomUi.Parameters', null);
36
- this.title = BarsaApi.Common.Util.TryGetValue(formPanelCtrlr, 'Setting.View.HeaderLayout.Title', null);
37
- const moId = this.dialogParams.context.id;
38
- const typeDefId = this.dialogParams.context.tyid;
39
- const reportId = this.dialogParams.context.repid;
40
- this.inDialog = this.dialogParams.context.inDialog;
41
- this.fullscreen = this.dialogParams.context.fullscreen;
42
- this.canFullscreen = parameters?.CanFullscreen;
43
- this.fullscreenDefault = parameters?.FullscreenDefault;
44
- this.workflowButtonsOnFooter = parameters?.WorkflowButtonsOnFooter;
45
- if (this.fullscreenDefault) {
46
- this.fullscreen = true;
47
- }
48
- this.canMove = parameters?.CanMove;
49
- this.canResize = parameters?.CanResize;
50
- this.params = { moId, typeDefId, reportId, inDialog: true };
51
- this._setCaption(formPanelCtrlr);
52
- this.formPanelCtrlr = formPanelCtrlr;
53
- }
54
- get Adapter() {
55
- return this.formPanelCtrlr.Adapter;
56
- }
57
- ngOnInit() {
58
- super.ngOnInit();
59
- const formPanelCtrlr = this.formPanelCtrlr;
60
- this.isWorkflowForm = formPanelCtrlr?.Setting?.Workflow;
61
- this.showSaveButton = BarsaApi.Common.Util.TryGetValue(formPanelCtrlr, 'Setting.View.FormSettings.ShowSaveButton');
62
- this.showToolbar = BarsaApi.Common.Util.TryGetValue(formPanelCtrlr, 'Setting.View.FormSettings.ShowToolbar');
63
- this.isNonePersistance = formPanelCtrlr?.Setting?.View?.IsNonePersistance;
64
- this.showFooter = this.isNonePersistance
65
- ? this.showSaveButton !== false && this.showToolbar !== false
66
- : this.showSaveButton;
67
- if (typeof this.showFooter == typeof null) {
68
- this.showFooter = true;
69
- }
70
- this.openDialog();
71
- }
72
- onToolbarClick(e) {
73
- this._formUiComponent.onToolbarClick(e);
74
- }
75
- onFormUiComponentReady(uiComponent) {
76
- this._formUiComponent = uiComponent;
77
- this.extendToolbarItems$ = uiComponent.extendToolbarItems$;
78
- this.workflowButtons$ = uiComponent.workflowButtons$;
79
- this.rtl$ = uiComponent.rtl$;
80
- this.dirValue$ = uiComponent.dirValue$;
81
- this.deviceSize$ = uiComponent.deviceSize$;
82
- this.formUi = uiComponent;
83
- }
84
- openDialog() {
85
- const smallDevice = this.deviceSize === 's' || this.deviceSize === 'm';
86
- const windowWidth = window.innerWidth;
87
- let width = smallDevice ? '100%' : '30vw';
88
- let height = smallDevice ? '100%' : 'auto';
89
- if (windowWidth < 1440) {
90
- width = '80svw';
91
- }
92
- else if (windowWidth < 900) {
93
- width = '100svw';
94
- }
95
- const viewWidth = BarsaApi.Common.Util.TryGetValue(this.formPanelCtrlr, 'Setting.View.MinSize.width', null);
96
- const viewHieght = BarsaApi.Common.Util.TryGetValue(this.formPanelCtrlr, 'Setting.View.MinSize.height', null);
97
- const minWidth = smallDevice ? '100%' : viewWidth ? viewWidth + 'px' : 'auto';
98
- const minHeight = smallDevice ? '100%' : viewHieght ? viewHieght + 'px' : 'auto';
99
- if (viewHieght) {
100
- height = smallDevice ? '100%' : `${viewHieght + 100}px`;
101
- }
102
- const modalSetting = BarsaApi.Common.Util.TryGetValue(this.formPanelCtrlr, 'Setting.View.CustomUi.Parameters.ModalSetting', null);
103
- let setting = {
104
- escKeyCloseable: false,
105
- responsivePadding: true,
106
- backdropClickCloseable: false,
107
- mobile: smallDevice,
108
- width,
109
- height,
110
- // bodyMinHeight: minHeight,
111
- minHeight,
112
- minWidth,
113
- verticalPadding: true,
114
- draggable: this.canMove,
115
- resizable: this.canResize,
116
- data: { caption: this.caption, canFullscreen: this.canFullscreen, canMove: this.canMove }
117
- };
118
- if (modalSetting) {
119
- setting = { ...setting, ...modalSetting };
120
- }
121
- this.dialogRef = this._dialogService.open(this.dialogTemplateRef, setting);
122
- }
123
- onCancel() {
124
- const adapter = this.Adapter;
125
- adapter.fireEvent('ToolClick', adapter, { Key: 'Cancel' });
126
- this._close();
127
- }
128
- onSave() {
129
- const adapter = this.Adapter;
130
- adapter.fireEvent('ToolClick', adapter, { Key: 'SaveAndClose' });
131
- }
132
- onOk() {
133
- const adapter = this.Adapter;
134
- adapter.fireEvent('ToolClick', adapter, { Key: 'Ok' });
135
- }
136
- onFormClose() {
137
- this.dialogRef.close();
138
- this.dialogParams.close();
139
- this.dialogOpened = false;
140
- }
141
- // /* eslint-disable */
142
- // @Input() ShowFormPanelControl = (formpanelCtrlr) => {};
143
- // /* eslint-disable */
144
- // @Input() ForceCloseChild = () => {};
145
- // /* eslint-disable */
146
- // @Input() RefreshFormPanelControl = (formpanelCtrlr) => {};
147
- _close() {
148
- // this.dialogRef.nativeElement.close();
149
- if (this.Adapter) {
150
- this.Adapter.Control.fireEvent('RequestForClose', this.Adapter.Control, true);
151
- }
152
- // this.dialogRef.close();
153
- // this.dialogParams.close();
154
- // this.dialogOpened = false;
155
- }
156
- _setCaption(formPanelCtrlr) {
157
- const typeDefName = BarsaApi.Common.Util.TryGetValue(formPanelCtrlr, 'Mo.$TypeDefName', '');
158
- const moCaption = BarsaApi.Common.Util.TryGetValue(formPanelCtrlr, 'Mo.$Caption', '');
159
- this.caption = typeDefName + ':' + moCaption;
160
- }
161
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormDialogComponent, deps: [{ token: i1.DialogService }, { token: i2.DialogParams }, { token: i2.PortalService }], target: i0.ɵɵFactoryTarget.Component }); }
162
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FormDialogComponent, selector: "bsu-form-dialog", providers: [ContainerService], viewQueries: [{ propertyName: "dialogTemplateRef", first: true, predicate: ["dialog"], descendants: true, read: TemplateRef, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #dialog>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\" #dialogTplRef>\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n <h1 fd-title style=\"max-width: 15rem\">{{ title || dialogConfig.data.caption }}</h1>\n </div>\n <div fd-bar-center style=\"flex: 1\"></div>\n <div fd-bar-right>\n <bsu-form-toolbar\n fd-bar-right\n style=\"width: auto\"\n [deviceSize]=\"deviceSize\"\n [buttons]=\"\n extendToolbarItems$\n | async\n | tlbButtons: 'inFooter':false\n | filterWorkflowInMobile: workflowButtonsOnFooter\n \"\n [dirValue]=\"(dirValue$ | async)!!\"\n [isFirefox]=\"isFirefox\"\n (toolbarClick)=\"onToolbarClick($event)\"\n #formToolbar\n ></bsu-form-toolbar>\n @if (dialogConfig.data.canFullscreen) {\n <fd-button-bar\n ariaLabel=\"fullscreen\"\n [glyph]=\"fullscreen ? 'exitfullscreen' : 'resize'\"\n fullscreenDialog\n [dialog]=\"dialog\"\n [fullscreen]=\"fullscreen\"\n (fullscreenChanged)=\"fullscreen = $event\"\n [dialogComponent]=\"dialogTplRef\"\n ></fd-button-bar>\n }\n <fd-button-bar ariaLabel=\"close\" glyph=\"decline\" (click)=\"onCancel()\"></fd-button-bar>\n </div>\n </ng-template>\n <!-- <ng-template\n fdkTemplate=\"subheader\"\n *ngIf=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':false as toolbarItems\"\n >\n <div fd-bar-middle>\n <fd-bar-element [fullWidth]=\"true\" class=\"!tw-justify-end\">\n <bsu-form-toolbar\n [deviceSize]=\"deviceSize\"\n [buttons]=\"toolbarItems\"\n [dirValue]=\"(dirValue$ | async)!!\"\n [isFirefox]=\"isFirefox\"\n (toolbarClick)=\"onToolbarClick($event)\"\n #formToolbar\n ></bsu-form-toolbar>\n </fd-bar-element>\n </div>\n </ng-template> -->\n </fd-dialog-header>\n\n <fd-dialog-body>\n <bnrc-form\n [formPanelCtrl]=\"formPanelCtrlr\"\n [params]=\"params\"\n (formClose)=\"onFormClose()\"\n (uiComponent)=\"onFormUiComponentReady($event)\"\n ></bnrc-form>\n </fd-dialog-body>\n <fd-dialog-footer [style.display]=\"!showFooter && !isWorkflowForm && !workflowButtonsOnFooter ? 'none' : null\">\n @if (isMobile || workflowButtonsOnFooter ) { @if(workflowButtons$ | async ;as workflowButtons){\n <bsu-layout-actions\n [canSend]=\"false\"\n [buttons]=\"[]\"\n [isMobile]=\"isMobile\"\n [landscape]=\"(formUi?.landscape$ | async) === true\"\n [standalone]=\"(formUi?.standalone$ | async) === true\"\n [workflowButtons]=\"workflowButtons\"\n [workflowButtonsComboMode]=\"true\"\n [deviceSize]=\"deviceSize\"\n [rtl]=\"(rtl$ | async) === true\"\n (toolClick)=\"formUi?.onToolbarClick($event)\"\n (workflowChoiceSelect)=\"formUi?.onWorkflowChoiceClick($event)\"\n >\n </bsu-layout-actions>\n } } @for (btn of (extendToolbarItems$ | async | tlbButtons: 'inFooter':true) ; track btn.Id) { @if (!(btn\n === '-' || btn.text === '-') && ((btn.isBuiltin && btn.inFooter) || btn.isWorkflow)) {\n <ng-container\n *ngTemplateOutlet=\"\n btn.Data?.CustomUi?.Selector ? dynamicBtnTemplate : btnTemplate;\n context: { $implicit: btn }\n \"\n ></ng-container>\n <ng-template #btnTemplate let-btn>\n <fd-dialog-footer-button>\n <fd-button-bar\n fd-dialog-decisive-button\n [fdType]=\"btn.isWorkflow ? 'attention' : btn.design\"\n [label]=\"btn.text | bbbTranslate\"\n [glyph]=\"btn.newIcon ? btn.newIcon : null\"\n (click)=\"btn.handler(btn, formPanelCtrlr?.Adapter?.Control)\"\n ></fd-button-bar>\n </fd-dialog-footer-button>\n </ng-template>\n <ng-template #dynamicBtnTemplate let-btn>\n <fd-dialog-footer-button>\n <bnrc-dynamic-form-toolbaritem\n fd-toolbar-item\n [component]=\"btn.Data.CustomUi\"\n [context]=\"btn\"\n [isEnable]=\"btn.Command?._isEnable\"\n (btnClick)=\"btn.handler(btn, formPanelCtrlr?.Adapter?.Control)\"\n ></bnrc-dynamic-form-toolbaritem>\n </fd-dialog-footer-button>\n </ng-template>\n } } @if (!isNonePersistance && showSaveButton !== false) {\n <fd-dialog-footer-button>\n <fd-button-bar\n fd-initial-focus\n fd-dialog-decisive-button\n [label]=\"'Cancel' | bbbTranslate\"\n (click)=\"onCancel()\"\n ></fd-button-bar>\n </fd-dialog-footer-button>\n }\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n", styles: [":host{display:block;height:auto}fd-dialog-body{display:flex;flex-direction:column;height:100%;align-items:stretch;justify-content:stretch}fd-dialog-body>bnrc-form{flex-grow:1;display:flex;flex-direction:row;height:100%;justify-content:stretch;align-items:stretch}\n"], dependencies: [{ kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.FormComponent, selector: "bnrc-form", inputs: ["params", "customFormPanelUi", "formPanelCtrl", "UlvMainCtrlr", "formPanelCtrlId", "saveOnChange", "inlineEditInReport"], outputs: ["titleChanged", "moChanged", "formClose", "uiComponent", "formRendered", "bruleAction", "beforeTransition", "afterTransition"] }, { kind: "component", type: i2.DynamicFormToolbaritemComponent, selector: "bnrc-dynamic-form-toolbaritem", inputs: ["mo", "index", "deviceName", "deviceSize", "context", "btn", "isEnable", "showText", "allColumns", "conditionalFormats"], outputs: ["btnClick"] }, { kind: "directive", type: i2.FormCloseDirective, selector: "[formClose]", inputs: ["isMobile"] }, { kind: "directive", type: i4.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: i4.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "component", type: i4.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabelledby", "id"] }, { kind: "component", type: i5.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i5.DialogBodyComponent, selector: "fd-dialog-body", inputs: ["disablePaddings"] }, { kind: "component", type: i5.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i5.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "directive", type: i6.TemplateDirective, selector: "[fdkTemplate]", inputs: ["fdkTemplate"] }, { kind: "component", type: i7.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: i8.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "component", type: i9.LayoutActionsComponent, selector: "bsu-layout-actions", inputs: ["workflowButtons", "workflowButtonsComboMode", "canSend", "simple", "footerDesign"], outputs: ["workflowChoiceSelect"] }, { kind: "component", type: i10.FormToolbarComponent, selector: "bsu-form-toolbar", outputs: ["toolbarClick"] }, { kind: "directive", type: i11.FullscreenDialogDirective, selector: "[fullscreenDialog]", inputs: ["dialog", "dialogComponent", "fullscreen"], outputs: ["fullscreenChanged"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TlbButtonsPipe, name: "tlbButtons" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i2.FilterWorkflowInMobilePipe, name: "filterWorkflowInMobile" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
163
- }
164
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormDialogComponent, decorators: [{
165
- type: Component,
166
- args: [{ selector: 'bsu-form-dialog', providers: [ContainerService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #dialog>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\" #dialogTplRef>\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n <h1 fd-title style=\"max-width: 15rem\">{{ title || dialogConfig.data.caption }}</h1>\n </div>\n <div fd-bar-center style=\"flex: 1\"></div>\n <div fd-bar-right>\n <bsu-form-toolbar\n fd-bar-right\n style=\"width: auto\"\n [deviceSize]=\"deviceSize\"\n [buttons]=\"\n extendToolbarItems$\n | async\n | tlbButtons: 'inFooter':false\n | filterWorkflowInMobile: workflowButtonsOnFooter\n \"\n [dirValue]=\"(dirValue$ | async)!!\"\n [isFirefox]=\"isFirefox\"\n (toolbarClick)=\"onToolbarClick($event)\"\n #formToolbar\n ></bsu-form-toolbar>\n @if (dialogConfig.data.canFullscreen) {\n <fd-button-bar\n ariaLabel=\"fullscreen\"\n [glyph]=\"fullscreen ? 'exitfullscreen' : 'resize'\"\n fullscreenDialog\n [dialog]=\"dialog\"\n [fullscreen]=\"fullscreen\"\n (fullscreenChanged)=\"fullscreen = $event\"\n [dialogComponent]=\"dialogTplRef\"\n ></fd-button-bar>\n }\n <fd-button-bar ariaLabel=\"close\" glyph=\"decline\" (click)=\"onCancel()\"></fd-button-bar>\n </div>\n </ng-template>\n <!-- <ng-template\n fdkTemplate=\"subheader\"\n *ngIf=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':false as toolbarItems\"\n >\n <div fd-bar-middle>\n <fd-bar-element [fullWidth]=\"true\" class=\"!tw-justify-end\">\n <bsu-form-toolbar\n [deviceSize]=\"deviceSize\"\n [buttons]=\"toolbarItems\"\n [dirValue]=\"(dirValue$ | async)!!\"\n [isFirefox]=\"isFirefox\"\n (toolbarClick)=\"onToolbarClick($event)\"\n #formToolbar\n ></bsu-form-toolbar>\n </fd-bar-element>\n </div>\n </ng-template> -->\n </fd-dialog-header>\n\n <fd-dialog-body>\n <bnrc-form\n [formPanelCtrl]=\"formPanelCtrlr\"\n [params]=\"params\"\n (formClose)=\"onFormClose()\"\n (uiComponent)=\"onFormUiComponentReady($event)\"\n ></bnrc-form>\n </fd-dialog-body>\n <fd-dialog-footer [style.display]=\"!showFooter && !isWorkflowForm && !workflowButtonsOnFooter ? 'none' : null\">\n @if (isMobile || workflowButtonsOnFooter ) { @if(workflowButtons$ | async ;as workflowButtons){\n <bsu-layout-actions\n [canSend]=\"false\"\n [buttons]=\"[]\"\n [isMobile]=\"isMobile\"\n [landscape]=\"(formUi?.landscape$ | async) === true\"\n [standalone]=\"(formUi?.standalone$ | async) === true\"\n [workflowButtons]=\"workflowButtons\"\n [workflowButtonsComboMode]=\"true\"\n [deviceSize]=\"deviceSize\"\n [rtl]=\"(rtl$ | async) === true\"\n (toolClick)=\"formUi?.onToolbarClick($event)\"\n (workflowChoiceSelect)=\"formUi?.onWorkflowChoiceClick($event)\"\n >\n </bsu-layout-actions>\n } } @for (btn of (extendToolbarItems$ | async | tlbButtons: 'inFooter':true) ; track btn.Id) { @if (!(btn\n === '-' || btn.text === '-') && ((btn.isBuiltin && btn.inFooter) || btn.isWorkflow)) {\n <ng-container\n *ngTemplateOutlet=\"\n btn.Data?.CustomUi?.Selector ? dynamicBtnTemplate : btnTemplate;\n context: { $implicit: btn }\n \"\n ></ng-container>\n <ng-template #btnTemplate let-btn>\n <fd-dialog-footer-button>\n <fd-button-bar\n fd-dialog-decisive-button\n [fdType]=\"btn.isWorkflow ? 'attention' : btn.design\"\n [label]=\"btn.text | bbbTranslate\"\n [glyph]=\"btn.newIcon ? btn.newIcon : null\"\n (click)=\"btn.handler(btn, formPanelCtrlr?.Adapter?.Control)\"\n ></fd-button-bar>\n </fd-dialog-footer-button>\n </ng-template>\n <ng-template #dynamicBtnTemplate let-btn>\n <fd-dialog-footer-button>\n <bnrc-dynamic-form-toolbaritem\n fd-toolbar-item\n [component]=\"btn.Data.CustomUi\"\n [context]=\"btn\"\n [isEnable]=\"btn.Command?._isEnable\"\n (btnClick)=\"btn.handler(btn, formPanelCtrlr?.Adapter?.Control)\"\n ></bnrc-dynamic-form-toolbaritem>\n </fd-dialog-footer-button>\n </ng-template>\n } } @if (!isNonePersistance && showSaveButton !== false) {\n <fd-dialog-footer-button>\n <fd-button-bar\n fd-initial-focus\n fd-dialog-decisive-button\n [label]=\"'Cancel' | bbbTranslate\"\n (click)=\"onCancel()\"\n ></fd-button-bar>\n </fd-dialog-footer-button>\n }\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n", styles: [":host{display:block;height:auto}fd-dialog-body{display:flex;flex-direction:column;height:100%;align-items:stretch;justify-content:stretch}fd-dialog-body>bnrc-form{flex-grow:1;display:flex;flex-direction:row;height:100%;justify-content:stretch;align-items:stretch}\n"] }]
167
- }], ctorParameters: () => [{ type: i1.DialogService }, { type: i2.DialogParams }, { type: i2.PortalService }], propDecorators: { dialogTemplateRef: [{
168
- type: ViewChild,
169
- args: ['dialog', { read: TemplateRef, static: true }]
170
- }] } });
171
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvZm9ybS1kaWFsb2cvZm9ybS1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvZm9ybS1kaWFsb2cvZm9ybS1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBd0IsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqSCxPQUFPLEVBQ0gsUUFBUSxFQUlSLGdCQUFnQixFQUNoQixhQUFhLEVBRWIsU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7O0FBVTlCLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxhQUFhO0lBdUNsRCxZQUNZLGNBQTZCLEVBQzdCLFlBQTBCLEVBQzFCLGNBQTZCO1FBRXJDLEtBQUssRUFBRSxDQUFDO1FBSkEsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDN0IsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFyQ3pDLFlBQU8sR0FBRyxFQUFFLENBQUM7UUFDYixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBWW5CLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMxQixtQkFBYyxHQUFHLElBQUksQ0FBQztRQUN0QixnQkFBVyxHQUFHLElBQUksQ0FBQztRQUtuQixjQUFTLEdBQUcsU0FBUyxFQUFFLENBQUM7UUFTeEIsYUFBUSxHQUFHLGlCQUFpQixFQUFFLENBQUM7UUFDL0IsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkIsNEJBQXVCLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLDJCQUFzQixHQUFRLElBQUksQ0FBQztR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QkFEaEIsU0FBUzt1QkFBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBDb21wb25lbnRSZWYsIE9uSW5pdCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGlhbG9nQ29uZmlnLCBEaWFsb2dSZWYsIERpYWxvZ1NlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xuaW1wb3J0IHtcbiAgICBCYXJzYUFwaSxcbiAgICBEaWFsb2dQYXJhbXMsXG4gICAgRm9ybUNvbXBvbmVudCxcbiAgICBQb3J0YWxTZXJ2aWNlLFxuICAgIENvbnRhaW5lclNlcnZpY2UsXG4gICAgQmFzZUNvbXBvbmVudCxcbiAgICBGb3JtQmFzZUNvbXBvbmVudCxcbiAgICBpc0ZpcmVmb3gsXG4gICAgZ2V0RGV2aWNlSXNNb2JpbGVcbn0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS1mb3JtLWRpYWxvZycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9mb3JtLWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW0NvbnRhaW5lclNlcnZpY2VdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1EaWFsb2dDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBAVmlld0NoaWxkKCdkaWFsb2cnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgICBkaWFsb2dUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBmb3JtUGFuZWxDdHJscjogYW55O1xuICAgIGZvcm1Db21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxGb3JtQ29tcG9uZW50PjtcbiAgICBjYXB0aW9uID0gJyc7XG4gICAgZnVsbHNjcmVlbiA9IGZhbHNlO1xuICAgIGRpYWxvZ09wZW5lZDogYm9vbGVhbjtcbiAgICBkaWFsb2dSZWY6IERpYWxvZ1JlZjtcbiAgICBpbkRpYWxvZzogYW55O1xuICAgIHBhcmFtczoge1xuICAgICAgICBtb0lkOiBzdHJpbmc7XG4gICAgICAgIHR5cGVEZWZJZDogc3RyaW5nO1xuICAgICAgICByZXBvcnRJZDogc3RyaW5nO1xuICAgICAgICBpbkRpYWxvZzogYm9vbGVhbjtcbiAgICB9O1xuICAgIHBhcmVudENvbnRhaW5lcjogYW55O1xuICAgIGRldmljZVNpemU6IHN0cmluZztcbiAgICBpc05vbmVQZXJzaXN0YW5jZSA9IGZhbHNlO1xuICAgIHNob3dTYXZlQnV0dG9uID0gdHJ1ZTtcbiAgICBzaG93VG9vbGJhciA9IHRydWU7XG4gICAgc2hvd0Zvb3RlcjogYm9vbGVhbjtcbiAgICBjYW5GdWxsc2NyZWVuOiBib29sZWFuO1xuICAgIGNhbk1vdmU6IGJvb2xlYW47XG4gICAgY2FuUmVzaXplOiBib29sZWFuO1xuICAgIGlzRmlyZWZveCA9IGlzRmlyZWZveCgpO1xuICAgIGZ1bGxzY3JlZW5EZWZhdWx0OiBib29sZWFuO1xuICAgIGV4dGVuZFRvb2xiYXJJdGVtcyQ6IE9ic2VydmFibGU8YW55W10+O1xuICAgIHdvcmtmbG93QnV0dG9ucyQ6IE9ic2VydmFibGU8YW55W10+O1xuICAgIGRldmljZVNpemUkOiBPYnNlcnZhYmxlPCdzJyB8ICdtJyB8ICdsJyB8ICd4bCc+O1xuICAgIGRpclZhbHVlJDogT2JzZXJ2YWJsZTwncnRsJyB8ICdsdHInPjtcbiAgICBydGwkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIF9mb3JtVWlDb21wb25lbnQ6IEZvcm1CYXNlQ29tcG9uZW50O1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgaXNNb2JpbGUgPSBnZXREZXZpY2VJc01vYmlsZSgpO1xuICAgIGlzV29ya2Zsb3dGb3JtID0gZmFsc2U7XG4gICAgd29ya2Zsb3dCdXR0b25zT25Gb290ZXIgPSBmYWxzZTtcbiAgICBzZWxlY3RlZFdvcmtmbG93QnV0dG9uOiBhbnkgPSBudWxsO1xuICAgIGZvcm1VaTogRm9ybUJhc2VDb21wb25lbnQ7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX2RpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZGlhbG9nUGFyYW1zOiBEaWFsb2dQYXJhbXMsXG4gICAgICAgIHByaXZhdGUgX3BvcnRhbFNlcnZpY2U6IFBvcnRhbFNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5fcG9ydGFsU2VydmljZS5kZXZpY2VTaXplJC5zdWJzY3JpYmUoKGRldmljZVNpemUpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGV2aWNlU2l6ZSA9IGRldmljZVNpemU7XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBmb3JtUGFuZWxDdHJsciA9IHRoaXMuZGlhbG9nUGFyYW1zLmNvbnRleHQuZm9ybXBhbmVsQ3RybHI7XG4gICAgICAgIGNvbnN0IHBhcmFtZXRlcnMgPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZShmb3JtUGFuZWxDdHJsciwgJ1NldHRpbmcuVmlldy5DdXN0b21VaS5QYXJhbWV0ZXJzJywgbnVsbCk7XG4gICAgICAgIHRoaXMudGl0bGUgPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZShmb3JtUGFuZWxDdHJsciwgJ1NldHRpbmcuVmlldy5IZWFkZXJMYXlvdXQuVGl0bGUnLCBudWxsKTtcbiAgICAgICAgY29uc3QgbW9JZCA9IHRoaXMuZGlhbG9nUGFyYW1zLmNvbnRleHQuaWQ7XG4gICAgICAgIGNvbnN0IHR5cGVEZWZJZCA9IHRoaXMuZGlhbG9nUGFyYW1zLmNvbnRleHQudHlpZDtcbiAgICAgICAgY29uc3QgcmVwb3J0SWQgPSB0aGlzLmRpYWxvZ1BhcmFtcy5jb250ZXh0LnJlcGlkO1xuICAgICAgICB0aGlzLmluRGlhbG9nID0gdGhpcy5kaWFsb2dQYXJhbXMuY29udGV4dC5pbkRpYWxvZztcbiAgICAgICAgdGhpcy5mdWxsc2NyZWVuID0gdGhpcy5kaWFsb2dQYXJhbXMuY29udGV4dC5mdWxsc2NyZWVuO1xuICAgICAgICB0aGlzLmNhbkZ1bGxzY3JlZW4gPSBwYXJhbWV0ZXJzPy5DYW5GdWxsc2NyZWVuO1xuICAgICAgICB0aGlzLmZ1bGxzY3JlZW5EZWZhdWx0ID0gcGFyYW1ldGVycz8uRnVsbHNjcmVlbkRlZmF1bHQ7XG4gICAgICAgIHRoaXMud29ya2Zsb3dCdXR0b25zT25Gb290ZXIgPSBwYXJhbWV0ZXJzPy5Xb3JrZmxvd0J1dHRvbnNPbkZvb3RlcjtcbiAgICAgICAgaWYgKHRoaXMuZnVsbHNjcmVlbkRlZmF1bHQpIHtcbiAgICAgICAgICAgIHRoaXMuZnVsbHNjcmVlbiA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jYW5Nb3ZlID0gcGFyYW1ldGVycz8uQ2FuTW92ZTtcbiAgICAgICAgdGhpcy5jYW5SZXNpemUgPSBwYXJhbWV0ZXJzPy5DYW5SZXNpemU7XG4gICAgICAgIHRoaXMucGFyYW1zID0geyBtb0lkLCB0eXBlRGVmSWQsIHJlcG9ydElkLCBpbkRpYWxvZzogdHJ1ZSB9O1xuICAgICAgICB0aGlzLl9zZXRDYXB0aW9uKGZvcm1QYW5lbEN0cmxyKTtcbiAgICAgICAgdGhpcy5mb3JtUGFuZWxDdHJsciA9IGZvcm1QYW5lbEN0cmxyO1xuICAgIH1cbiAgICBnZXQgQWRhcHRlcigpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtUGFuZWxDdHJsci5BZGFwdGVyO1xuICAgIH1cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgICAgICBjb25zdCBmb3JtUGFuZWxDdHJsciA9IHRoaXMuZm9ybVBhbmVsQ3RybHI7XG4gICAgICAgIHRoaXMuaXNXb3JrZmxvd0Zvcm0gPSBmb3JtUGFuZWxDdHJscj8uU2V0dGluZz8uV29ya2Zsb3c7XG4gICAgICAgIHRoaXMuc2hvd1NhdmVCdXR0b24gPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZShcbiAgICAgICAgICAgIGZvcm1QYW5lbEN0cmxyLFxuICAgICAgICAgICAgJ1NldHRpbmcuVmlldy5Gb3JtU2V0dGluZ3MuU2hvd1NhdmVCdXR0b24nXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuc2hvd1Rvb2xiYXIgPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZShmb3JtUGFuZWxDdHJsciwgJ1NldHRpbmcuVmlldy5Gb3JtU2V0dGluZ3MuU2hvd1Rvb2xiYXInKTtcbiAgICAgICAgdGhpcy5pc05vbmVQZXJzaXN0YW5jZSA9IGZvcm1QYW5lbEN0cmxyPy5TZXR0aW5nPy5WaWV3Py5Jc05vbmVQZXJzaXN0YW5jZTtcbiAgICAgICAgdGhpcy5zaG93Rm9vdGVyID0gdGhpcy5pc05vbmVQZXJzaXN0YW5jZVxuICAgICAgICAgICAgPyB0aGlzLnNob3dTYXZlQnV0dG9uICE9PSBmYWxzZSAmJiB0aGlzLnNob3dUb29sYmFyICE9PSBmYWxzZVxuICAgICAgICAgICAgOiB0aGlzLnNob3dTYXZlQnV0dG9uO1xuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2hvd0Zvb3RlciA9PSB0eXBlb2YgbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5zaG93Rm9vdGVyID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9wZW5EaWFsb2coKTtcbiAgICB9XG4gICAgb25Ub29sYmFyQ2xpY2soZSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9mb3JtVWlDb21wb25lbnQub25Ub29sYmFyQ2xpY2soZSk7XG4gICAgfVxuICAgIG9uV29ya2Zsb3dCdXR0b25TZWxlY3RlZDtcbiAgICBvbkZvcm1VaUNvbXBvbmVudFJlYWR5KHVpQ29tcG9uZW50OiBGb3JtQmFzZUNvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9mb3JtVWlDb21wb25lbnQgPSB1aUNvbXBvbmVudDtcbiAgICAgICAgdGhpcy5leHRlbmRUb29sYmFySXRlbXMkID0gdWlDb21wb25lbnQuZXh0ZW5kVG9vbGJhckl0ZW1zJDtcbiAgICAgICAgdGhpcy53b3JrZmxvd0J1dHRvbnMkID0gdWlDb21wb25lbnQud29ya2Zsb3dCdXR0b25zJDtcbiAgICAgICAgdGhpcy5ydGwkID0gdWlDb21wb25lbnQucnRsJDtcbiAgICAgICAgdGhpcy5kaXJWYWx1ZSQgPSB1aUNvbXBvbmVudC5kaXJWYWx1ZSQ7XG4gICAgICAgIHRoaXMuZGV2aWNlU2l6ZSQgPSB1aUNvbXBvbmVudC5kZXZpY2VTaXplJDtcbiAgICAgICAgdGhpcy5mb3JtVWkgPSB1aUNvbXBvbmVudDtcbiAgICB9XG4gICAgb3BlbkRpYWxvZygpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc21hbGxEZXZpY2UgPSB0aGlzLmRldmljZVNpemUgPT09ICdzJyB8fCB0aGlzLmRldmljZVNpemUgPT09ICdtJztcbiAgICAgICAgY29uc3Qgd2luZG93V2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcbiAgICAgICAgbGV0IHdpZHRoID0gc21hbGxEZXZpY2UgPyAnMTAwJScgOiAnMzB2dyc7XG4gICAgICAgIGxldCBoZWlnaHQgPSBzbWFsbERldmljZSA/ICcxMDAlJyA6ICdhdXRvJztcbiAgICAgICAgaWYgKHdpbmRvd1dpZHRoIDwgMTQ0MCkge1xuICAgICAgICAgICAgd2lkdGggPSAnODBzdncnO1xuICAgICAgICB9IGVsc2UgaWYgKHdpbmRvd1dpZHRoIDwgOTAwKSB7XG4gICAgICAgICAgICB3aWR0aCA9ICcxMDBzdncnO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgdmlld1dpZHRoID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUodGhpcy5mb3JtUGFuZWxDdHJsciwgJ1NldHRpbmcuVmlldy5NaW5TaXplLndpZHRoJywgbnVsbCk7XG4gICAgICAgIGNvbnN0IHZpZXdIaWVnaHQgPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZSh0aGlzLmZvcm1QYW5lbEN0cmxyLCAnU2V0dGluZy5WaWV3Lk1pblNpemUuaGVpZ2h0JywgbnVsbCk7XG4gICAgICAgIGNvbnN0IG1pbldpZHRoID0gc21hbGxEZXZpY2UgPyAnMTAwJScgOiB2aWV3V2lkdGggPyB2aWV3V2lkdGggKyAncHgnIDogJ2F1dG8nO1xuICAgICAgICBjb25zdCBtaW5IZWlnaHQgPSBzbWFsbERldmljZSA/ICcxMDAlJyA6IHZpZXdIaWVnaHQgPyB2aWV3SGllZ2h0ICsgJ3B4JyA6ICdhdXRvJztcbiAgICAgICAgaWYgKHZpZXdIaWVnaHQpIHtcbiAgICAgICAgICAgIGhlaWdodCA9IHNtYWxsRGV2aWNlID8gJzEwMCUnIDogYCR7dmlld0hpZWdodCArIDEwMH1weGA7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbW9kYWxTZXR0aW5nID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUoXG4gICAgICAgICAgICB0aGlzLmZvcm1QYW5lbEN0cmxyLFxuICAgICAgICAgICAgJ1NldHRpbmcuVmlldy5DdXN0b21VaS5QYXJhbWV0ZXJzLk1vZGFsU2V0dGluZycsXG4gICAgICAgICAgICBudWxsXG4gICAgICAgICk7XG5cbiAgICAgICAgbGV0IHNldHRpbmc6IERpYWxvZ0NvbmZpZyA9IHtcbiAgICAgICAgICAgIGVzY0tleUNsb3NlYWJsZTogZmFsc2UsXG4gICAgICAgICAgICByZXNwb25zaXZlUGFkZGluZzogdHJ1ZSxcbiAgICAgICAgICAgIGJhY2tkcm9wQ2xpY2tDbG9zZWFibGU6IGZhbHNlLFxuICAgICAgICAgICAgbW9iaWxlOiBzbWFsbERldmljZSxcbiAgICAgICAgICAgIHdpZHRoLFxuICAgICAgICAgICAgaGVpZ2h0LFxuICAgICAgICAgICAgLy8gYm9keU1pbkhlaWdodDogbWluSGVpZ2h0LFxuICAgICAgICAgICAgbWluSGVpZ2h0LFxuICAgICAgICAgICAgbWluV2lkdGgsXG4gICAgICAgICAgICB2ZXJ0aWNhbFBhZGRpbmc6IHRydWUsXG4gICAgICAgICAgICBkcmFnZ2FibGU6IHRoaXMuY2FuTW92ZSxcbiAgICAgICAgICAgIHJlc2l6YWJsZTogdGhpcy5jYW5SZXNpemUsXG4gICAgICAgICAgICBkYXRhOiB7IGNhcHRpb246IHRoaXMuY2FwdGlvbiwgY2FuRnVsbHNjcmVlbjogdGhpcy5jYW5GdWxsc2NyZWVuLCBjYW5Nb3ZlOiB0aGlzLmNhbk1vdmUgfVxuICAgICAgICB9O1xuICAgICAgICBpZiAobW9kYWxTZXR0aW5nKSB7XG4gICAgICAgICAgICBzZXR0aW5nID0geyAuLi5zZXR0aW5nLCAuLi5tb2RhbFNldHRpbmcgfTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRpYWxvZ1JlZiA9IHRoaXMuX2RpYWxvZ1NlcnZpY2Uub3Blbih0aGlzLmRpYWxvZ1RlbXBsYXRlUmVmLCBzZXR0aW5nKTtcbiAgICB9XG5cbiAgICBvbkNhbmNlbCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYWRhcHRlciA9IHRoaXMuQWRhcHRlcjtcbiAgICAgICAgYWRhcHRlci5maXJlRXZlbnQoJ1Rvb2xDbGljaycsIGFkYXB0ZXIsIHsgS2V5OiAnQ2FuY2VsJyB9KTtcbiAgICAgICAgdGhpcy5fY2xvc2UoKTtcbiAgICB9XG4gICAgb25TYXZlKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBhZGFwdGVyID0gdGhpcy5BZGFwdGVyO1xuICAgICAgICBhZGFwdGVyLmZpcmVFdmVudCgnVG9vbENsaWNrJywgYWRhcHRlciwgeyBLZXk6ICdTYXZlQW5kQ2xvc2UnIH0pO1xuICAgIH1cbiAgICBvbk9rKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBhZGFwdGVyID0gdGhpcy5BZGFwdGVyO1xuICAgICAgICBhZGFwdGVyLmZpcmVFdmVudCgnVG9vbENsaWNrJywgYWRhcHRlciwgeyBLZXk6ICdPaycgfSk7XG4gICAgfVxuXG4gICAgb25Gb3JtQ2xvc2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgICAgIHRoaXMuZGlhbG9nUGFyYW1zLmNsb3NlKCk7XG4gICAgICAgIHRoaXMuZGlhbG9nT3BlbmVkID0gZmFsc2U7XG4gICAgfVxuICAgIC8vIC8qIGVzbGludC1kaXNhYmxlICovXG4gICAgLy8gQElucHV0KCkgU2hvd0Zvcm1QYW5lbENvbnRyb2wgPSAoZm9ybXBhbmVsQ3RybHIpID0+IHt9O1xuICAgIC8vIC8qIGVzbGludC1kaXNhYmxlICovXG4gICAgLy8gQElucHV0KCkgRm9yY2VDbG9zZUNoaWxkID0gKCkgPT4ge307XG4gICAgLy8gLyogZXNsaW50LWRpc2FibGUgKi9cbiAgICAvLyBASW5wdXQoKSBSZWZyZXNoRm9ybVBhbmVsQ29udHJvbCA9IChmb3JtcGFuZWxDdHJscikgPT4ge307XG4gICAgcHJpdmF0ZSBfY2xvc2UoKTogdm9pZCB7XG4gICAgICAgIC8vIHRoaXMuZGlhbG9nUmVmLm5hdGl2ZUVsZW1lbnQuY2xvc2UoKTtcbiAgICAgICAgaWYgKHRoaXMuQWRhcHRlcikge1xuICAgICAgICAgICAgdGhpcy5BZGFwdGVyLkNvbnRyb2wuZmlyZUV2ZW50KCdSZXF1ZXN0Rm9yQ2xvc2UnLCB0aGlzLkFkYXB0ZXIuQ29udHJvbCwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcbiAgICAgICAgLy8gdGhpcy5kaWFsb2dQYXJhbXMuY2xvc2UoKTtcbiAgICAgICAgLy8gdGhpcy5kaWFsb2dPcGVuZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZXRDYXB0aW9uKGZvcm1QYW5lbEN0cmxyOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdHlwZURlZk5hbWUgPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZShmb3JtUGFuZWxDdHJsciwgJ01vLiRUeXBlRGVmTmFtZScsICcnKTtcbiAgICAgICAgY29uc3QgbW9DYXB0aW9uID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUoZm9ybVBhbmVsQ3RybHIsICdNby4kQ2FwdGlvbicsICcnKTtcbiAgICAgICAgdGhpcy5jYXB0aW9uID0gdHlwZURlZk5hbWUgKyAnOicgKyBtb0NhcHRpb247XG4gICAgfVxufVxuIiwiPG5nLXRlbXBsYXRlIGxldC1kaWFsb2cgbGV0LWRpYWxvZ0NvbmZpZz1cImRpYWxvZ0NvbmZpZ1wiICNkaWFsb2c+XG4gICAgPGZkLWRpYWxvZyBbZGlhbG9nQ29uZmlnXT1cImRpYWxvZ0NvbmZpZ1wiIFtkaWFsb2dSZWZdPVwiZGlhbG9nXCIgI2RpYWxvZ1RwbFJlZj5cbiAgICAgICAgPGZkLWRpYWxvZy1oZWFkZXI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgZmRrVGVtcGxhdGU9XCJoZWFkZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhci1sZWZ0PlxuICAgICAgICAgICAgICAgICAgICA8aDEgZmQtdGl0bGUgc3R5bGU9XCJtYXgtd2lkdGg6IDE1cmVtXCI+e3sgdGl0bGUgfHwgZGlhbG9nQ29uZmlnLmRhdGEuY2FwdGlvbiB9fTwvaDE+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBmZC1iYXItY2VudGVyIHN0eWxlPVwiZmxleDogMVwiPjwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyLXJpZ2h0PlxuICAgICAgICAgICAgICAgICAgICA8YnN1LWZvcm0tdG9vbGJhclxuICAgICAgICAgICAgICAgICAgICAgICAgZmQtYmFyLXJpZ2h0XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiBhdXRvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2J1dHRvbnNdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5kVG9vbGJhckl0ZW1zJFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGFzeW5jXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdGxiQnV0dG9uczogJ2luRm9vdGVyJzpmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGZpbHRlcldvcmtmbG93SW5Nb2JpbGU6IHdvcmtmbG93QnV0dG9uc09uRm9vdGVyXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2RpclZhbHVlXT1cIihkaXJWYWx1ZSQgfCBhc3luYykhIVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaXNGaXJlZm94XT1cImlzRmlyZWZveFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAodG9vbGJhckNsaWNrKT1cIm9uVG9vbGJhckNsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgI2Zvcm1Ub29sYmFyXG4gICAgICAgICAgICAgICAgICAgID48L2JzdS1mb3JtLXRvb2xiYXI+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoZGlhbG9nQ29uZmlnLmRhdGEuY2FuRnVsbHNjcmVlbikge1xuICAgICAgICAgICAgICAgICAgICA8ZmQtYnV0dG9uLWJhclxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYUxhYmVsPVwiZnVsbHNjcmVlblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiZnVsbHNjcmVlbiA/ICdleGl0ZnVsbHNjcmVlbicgOiAncmVzaXplJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBmdWxsc2NyZWVuRGlhbG9nXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlhbG9nXT1cImRpYWxvZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZnVsbHNjcmVlbl09XCJmdWxsc2NyZWVuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChmdWxsc2NyZWVuQ2hhbmdlZCk9XCJmdWxsc2NyZWVuID0gJGV2ZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaWFsb2dDb21wb25lbnRdPVwiZGlhbG9nVHBsUmVmXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8ZmQtYnV0dG9uLWJhciBhcmlhTGFiZWw9XCJjbG9zZVwiIGdseXBoPVwiZGVjbGluZVwiIChjbGljayk9XCJvbkNhbmNlbCgpXCI+PC9mZC1idXR0b24tYmFyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwhLS0gPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgZmRrVGVtcGxhdGU9XCJzdWJoZWFkZXJcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiZXh0ZW5kVG9vbGJhckl0ZW1zJCB8IGFzeW5jIHwgdGxiQnV0dG9uczogJ2luRm9vdGVyJzpmYWxzZSBhcyB0b29sYmFySXRlbXNcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyLW1pZGRsZT5cbiAgICAgICAgICAgICAgICAgICAgPGZkLWJhci1lbGVtZW50IFtmdWxsV2lkdGhdPVwidHJ1ZVwiIGNsYXNzPVwiIXR3LWp1c3RpZnktZW5kXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnN1LWZvcm0tdG9vbGJhclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtidXR0b25zXT1cInRvb2xiYXJJdGVtc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RpclZhbHVlXT1cIihkaXJWYWx1ZSQgfCBhc3luYykhIVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lzRmlyZWZveF09XCJpc0ZpcmVmb3hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0b29sYmFyQ2xpY2spPVwib25Ub29sYmFyQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgI2Zvcm1Ub29sYmFyXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9ic3UtZm9ybS10b29sYmFyPlxuICAgICAgICAgICAgICAgICAgICA8L2ZkLWJhci1lbGVtZW50PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT4gLS0+XG4gICAgICAgIDwvZmQtZGlhbG9nLWhlYWRlcj5cblxuICAgICAgICA8ZmQtZGlhbG9nLWJvZHk+XG4gICAgICAgICAgICA8Ym5yYy1mb3JtXG4gICAgICAgICAgICAgICAgW2Zvcm1QYW5lbEN0cmxdPVwiZm9ybVBhbmVsQ3RybHJcIlxuICAgICAgICAgICAgICAgIFtwYXJhbXNdPVwicGFyYW1zXCJcbiAgICAgICAgICAgICAgICAoZm9ybUNsb3NlKT1cIm9uRm9ybUNsb3NlKClcIlxuICAgICAgICAgICAgICAgICh1aUNvbXBvbmVudCk9XCJvbkZvcm1VaUNvbXBvbmVudFJlYWR5KCRldmVudClcIlxuICAgICAgICAgICAgPjwvYm5yYy1mb3JtPlxuICAgICAgICA8L2ZkLWRpYWxvZy1ib2R5PlxuICAgICAgICA8ZmQtZGlhbG9nLWZvb3RlciBbc3R5bGUuZGlzcGxheV09XCIhc2hvd0Zvb3RlciAmJiAhaXNXb3JrZmxvd0Zvcm0gJiYgIXdvcmtmbG93QnV0dG9uc09uRm9vdGVyID8gJ25vbmUnIDogbnVsbFwiPlxuICAgICAgICAgICAgQGlmIChpc01vYmlsZSB8fCB3b3JrZmxvd0J1dHRvbnNPbkZvb3RlciApIHsgQGlmKHdvcmtmbG93QnV0dG9ucyQgfCBhc3luYyA7YXMgd29ya2Zsb3dCdXR0b25zKXtcbiAgICAgICAgICAgIDxic3UtbGF5b3V0LWFjdGlvbnNcbiAgICAgICAgICAgICAgICBbY2FuU2VuZF09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgW2J1dHRvbnNdPVwiW11cIlxuICAgICAgICAgICAgICAgIFtpc01vYmlsZV09XCJpc01vYmlsZVwiXG4gICAgICAgICAgICAgICAgW2xhbmRzY2FwZV09XCIoZm9ybVVpPy5sYW5kc2NhcGUkIHwgYXN5bmMpID09PSB0cnVlXCJcbiAgICAgICAgICAgICAgICBbc3RhbmRhbG9uZV09XCIoZm9ybVVpPy5zdGFuZGFsb25lJCB8IGFzeW5jKSA9PT0gdHJ1ZVwiXG4gICAgICAgICAgICAgICAgW3dvcmtmbG93QnV0dG9uc109XCJ3b3JrZmxvd0J1dHRvbnNcIlxuICAgICAgICAgICAgICAgIFt3b3JrZmxvd0J1dHRvbnNDb21ib01vZGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgICAgICAgICAgW3J0bF09XCIocnRsJCB8IGFzeW5jKSA9PT0gdHJ1ZVwiXG4gICAgICAgICAgICAgICAgKHRvb2xDbGljayk9XCJmb3JtVWk/Lm9uVG9vbGJhckNsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgICAgICh3b3JrZmxvd0Nob2ljZVNlbGVjdCk9XCJmb3JtVWk/Lm9uV29ya2Zsb3dDaG9pY2VDbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvYnN1LWxheW91dC1hY3Rpb25zPlxuICAgICAgICAgICAgfSB9IEBmb3IgKGJ0biBvZiAoZXh0ZW5kVG9vbGJhckl0ZW1zJCB8IGFzeW5jIHwgdGxiQnV0dG9uczogJ2luRm9vdGVyJzp0cnVlKSA7IHRyYWNrIGJ0bi5JZCkgeyBAaWYgKCEoYnRuXG4gICAgICAgICAgICA9PT0gJy0nIHx8IGJ0bi50ZXh0ID09PSAnLScpICYmICgoYnRuLmlzQnVpbHRpbiAmJiBidG4uaW5Gb290ZXIpIHx8IGJ0bi5pc1dvcmtmbG93KSkge1xuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgIGJ0bi5EYXRhPy5DdXN0b21VaT8uU2VsZWN0b3IgPyBkeW5hbWljQnRuVGVtcGxhdGUgOiBidG5UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IGJ0biB9XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjYnRuVGVtcGxhdGUgbGV0LWJ0bj5cbiAgICAgICAgICAgICAgICA8ZmQtZGlhbG9nLWZvb3Rlci1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxmZC1idXR0b24tYmFyXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC1kaWFsb2ctZGVjaXNpdmUtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBbZmRUeXBlXT1cImJ0bi5pc1dvcmtmbG93ID8gJ2F0dGVudGlvbicgOiBidG4uZGVzaWduXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJidG4udGV4dCB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiYnRuLm5ld0ljb24gPyBidG4ubmV3SWNvbiA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImJ0bi5oYW5kbGVyKGJ0biwgZm9ybVBhbmVsQ3RybHI/LkFkYXB0ZXI/LkNvbnRyb2wpXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgICAgICAgICA8L2ZkLWRpYWxvZy1mb290ZXItYnV0dG9uPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZHluYW1pY0J0blRlbXBsYXRlIGxldC1idG4+XG4gICAgICAgICAgICAgICAgPGZkLWRpYWxvZy1mb290ZXItYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8Ym5yYy1keW5hbWljLWZvcm0tdG9vbGJhcml0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbXBvbmVudF09XCJidG4uRGF0YS5DdXN0b21VaVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY29udGV4dF09XCJidG5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2lzRW5hYmxlXT1cImJ0bi5Db21tYW5kPy5faXNFbmFibGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGJ0bkNsaWNrKT1cImJ0bi5oYW5kbGVyKGJ0biwgZm9ybVBhbmVsQ3RybHI/LkFkYXB0ZXI/LkNvbnRyb2wpXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvYm5yYy1keW5hbWljLWZvcm0tdG9vbGJhcml0ZW0+XG4gICAgICAgICAgICAgICAgPC9mZC1kaWFsb2ctZm9vdGVyLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICB9IH0gQGlmICghaXNOb25lUGVyc2lzdGFuY2UgJiYgc2hvd1NhdmVCdXR0b24gIT09IGZhbHNlKSB7XG4gICAgICAgICAgICA8ZmQtZGlhbG9nLWZvb3Rlci1idXR0b24+XG4gICAgICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXJcbiAgICAgICAgICAgICAgICAgICAgZmQtaW5pdGlhbC1mb2N1c1xuICAgICAgICAgICAgICAgICAgICBmZC1kaWFsb2ctZGVjaXNpdmUtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInQ2FuY2VsJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNhbmNlbCgpXCJcbiAgICAgICAgICAgICAgICA+PC9mZC1idXR0b24tYmFyPlxuICAgICAgICAgICAgPC9mZC1kaWFsb2ctZm9vdGVyLWJ1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9mZC1kaWFsb2ctZm9vdGVyPlxuICAgIDwvZmQtZGlhbG9nPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -1,50 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Inject, Optional, Self } from '@angular/core';
2
- import { ContainerComponent, ContainerService, FORM_DIALOG_COMPONENT, DIALOG_SERVICE } from 'barsa-novin-ray-core';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "barsa-novin-ray-core";
5
- import * as i2 from "@angular/router";
6
- export class FormDialogLessComponent extends ContainerComponent {
7
- constructor(dialogParams, _el, _activatedRoute, _portalService, _vcr, _barsaDialogService, _injector, _router, _renderer2, _cdr, _dialogService, _containerService, _formDialogComponent) {
8
- super(_el, _activatedRoute, _portalService, _vcr, _barsaDialogService, _injector, _router, _cdr, _renderer2, _dialogService, _containerService, _formDialogComponent);
9
- this.dialogParams = dialogParams;
10
- this._el = _el;
11
- this._activatedRoute = _activatedRoute;
12
- this._portalService = _portalService;
13
- this._vcr = _vcr;
14
- this._barsaDialogService = _barsaDialogService;
15
- this._injector = _injector;
16
- this._router = _router;
17
- this._renderer2 = _renderer2;
18
- this._cdr = _cdr;
19
- this._dialogService = _dialogService;
20
- this._containerService = _containerService;
21
- this._formDialogComponent = _formDialogComponent;
22
- this.formPanelCtrlr = this.dialogParams.context.formpanelCtrlr;
23
- const moId = this.dialogParams.context.queryParams.id;
24
- const typeDefId = this.dialogParams.context.queryParams.tyid;
25
- const reportId = this.dialogParams.context.queryParams.repid;
26
- this.params = { moId, typeDefId, reportId, inDialog: true };
27
- }
28
- onFormClose() { }
29
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormDialogLessComponent, deps: [{ token: i1.DialogParams }, { token: i0.ElementRef }, { token: i2.ActivatedRoute }, { token: i1.PortalService }, { token: i0.ViewContainerRef }, { token: i1.BarsaDialogService }, { token: i0.Injector }, { token: i2.Router }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: DIALOG_SERVICE, optional: true }, { token: i1.ContainerService, optional: true, self: true }, { token: FORM_DIALOG_COMPONENT, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
30
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FormDialogLessComponent, selector: "bsu-form-dialog-less", providers: [ContainerService], usesInheritance: true, ngImport: i0, template: "@if (rendered) {\n<bnrc-form [formPanelCtrl]=\"formPanelCtrlr\" [params]=\"params\" (formClose)=\"onFormClose()\"></bnrc-form>\n}\n", styles: [""], dependencies: [{ kind: "component", type: i1.FormComponent, selector: "bnrc-form", inputs: ["params", "customFormPanelUi", "formPanelCtrl", "UlvMainCtrlr", "formPanelCtrlId", "saveOnChange", "inlineEditInReport"], outputs: ["titleChanged", "moChanged", "formClose", "uiComponent", "formRendered", "bruleAction", "beforeTransition", "afterTransition"] }, { kind: "directive", type: i1.FormCloseDirective, selector: "[formClose]", inputs: ["isMobile"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
31
- }
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormDialogLessComponent, decorators: [{
33
- type: Component,
34
- args: [{ selector: 'bsu-form-dialog-less', changeDetection: ChangeDetectionStrategy.OnPush, providers: [ContainerService], template: "@if (rendered) {\n<bnrc-form [formPanelCtrl]=\"formPanelCtrlr\" [params]=\"params\" (formClose)=\"onFormClose()\"></bnrc-form>\n}\n" }]
35
- }], ctorParameters: () => [{ type: i1.DialogParams }, { type: i0.ElementRef }, { type: i2.ActivatedRoute }, { type: i1.PortalService }, { type: i0.ViewContainerRef }, { type: i1.BarsaDialogService }, { type: i0.Injector }, { type: i2.Router }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
36
- type: Optional
37
- }, {
38
- type: Inject,
39
- args: [DIALOG_SERVICE]
40
- }] }, { type: i1.ContainerService, decorators: [{
41
- type: Self
42
- }, {
43
- type: Optional
44
- }] }, { type: i0.Type, decorators: [{
45
- type: Optional
46
- }, {
47
- type: Inject,
48
- args: [FORM_DIALOG_COMPONENT]
49
- }] }] });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1kaWFsb2ctbGVzcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi9mb3JtLWRpYWxvZy1sZXNzL2Zvcm0tZGlhbG9nLWxlc3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvZm9ybS1kaWFsb2ctbGVzcy9mb3JtLWRpYWxvZy1sZXNzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFFdkIsU0FBUyxFQUVULE1BQU0sRUFFTixRQUFRLEVBRVIsSUFBSSxFQUdQLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFDSCxrQkFBa0IsRUFJbEIsZ0JBQWdCLEVBQ2hCLHFCQUFxQixFQUNyQixjQUFjLEVBQ2pCLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFROUIsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGtCQUFrQjtJQVMzRCxZQUNjLFlBQTBCLEVBQzFCLEdBQWUsRUFDZixlQUErQixFQUMvQixjQUE2QixFQUM3QixJQUFzQixFQUN0QixtQkFBdUMsRUFDdkMsU0FBbUIsRUFDbkIsT0FBZSxFQUNmLFVBQXFCLEVBQ3JCLElBQXVCLEVBQ2EsY0FBbUIsRUFDbkMsaUJBQW1DLEVBQ1osb0JBQStCO1FBRXBGLEtBQUssQ0FDRCxHQUFHLEVBQ0gsZUFBZSxFQUNmLGNBQWMsRUFDZCxJQUFJLEVBQ0osbUJBQW1CLEVBQ25CLFNBQVMsRUFDVCxPQUFPLEVBQ1AsSUFBSSxFQUNKLFVBQVUsRUFDVixjQUFjLEVBQ2QsaUJBQWlCLEVBQ2pCLG9CQUFvQixDQUN2QixDQUFDO1FBM0JRLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLFFBQUcsR0FBSCxHQUFHLENBQVk7UUFDZixvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUFDL0IsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDN0IsU0FBSSxHQUFKLElBQUksQ0FBa0I7UUFDdEIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFvQjtRQUN2QyxjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ25CLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixlQUFVLEdBQVYsVUFBVSxDQUFXO1FBQ3JCLFNBQUksR0FBSixJQUFJLENBQW1CO1FBQ2EsbUJBQWMsR0FBZCxjQUFjLENBQUs7UUFDbkMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUNaLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBVztRQWdCcEYsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUM7UUFDL0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztRQUN0RCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1FBQzdELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7UUFDN0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUNoRSxDQUFDO0lBRUQsV0FBVyxLQUFVLENBQUM7K0dBN0NiLHVCQUF1Qiw2U0FvQlIsY0FBYyx5RkFFZCxxQkFBcUI7bUdBdEJwQyx1QkFBdUIsK0NBRnJCLENBQUMsZ0JBQWdCLENBQUMsaURDN0JqQyxxSUFHQTs7NEZENEJhLHVCQUF1QjtrQkFQbkMsU0FBUzsrQkFDSSxzQkFBc0IsbUJBR2YsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLGdCQUFnQixDQUFDOzswQkFzQnhCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsY0FBYzs7MEJBQ2pDLElBQUk7OzBCQUFJLFFBQVE7OzBCQUNoQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5qZWN0LFxuICAgIEluamVjdG9yLFxuICAgIE9wdGlvbmFsLFxuICAgIFJlbmRlcmVyMixcbiAgICBTZWxmLFxuICAgIFR5cGUsXG4gICAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge1xuICAgIENvbnRhaW5lckNvbXBvbmVudCxcbiAgICBCYXJzYURpYWxvZ1NlcnZpY2UsXG4gICAgRGlhbG9nUGFyYW1zLFxuICAgIFBvcnRhbFNlcnZpY2UsXG4gICAgQ29udGFpbmVyU2VydmljZSxcbiAgICBGT1JNX0RJQUxPR19DT01QT05FTlQsXG4gICAgRElBTE9HX1NFUlZJQ0Vcbn0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtZm9ybS1kaWFsb2ctbGVzcycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZGlhbG9nLWxlc3MuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2Zvcm0tZGlhbG9nLWxlc3MuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtDb250YWluZXJTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBGb3JtRGlhbG9nTGVzc0NvbXBvbmVudCBleHRlbmRzIENvbnRhaW5lckNvbXBvbmVudCB7XG4gICAgZm9ybVBhbmVsQ3RybHI6IGFueTtcblxuICAgIHBhcmFtczoge1xuICAgICAgICBtb0lkOiBzdHJpbmc7XG4gICAgICAgIHR5cGVEZWZJZDogc3RyaW5nO1xuICAgICAgICByZXBvcnRJZDogc3RyaW5nO1xuICAgICAgICBpbkRpYWxvZzogYm9vbGVhbjtcbiAgICB9O1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgZGlhbG9nUGFyYW1zOiBEaWFsb2dQYXJhbXMsXG4gICAgICAgIHByb3RlY3RlZCBfZWw6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByb3RlY3RlZCBfYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwcm90ZWN0ZWQgX3BvcnRhbFNlcnZpY2U6IFBvcnRhbFNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBfdmNyOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICBwcm90ZWN0ZWQgX2JhcnNhRGlhbG9nU2VydmljZTogQmFyc2FEaWFsb2dTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJvdGVjdGVkIF9yb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgcHJvdGVjdGVkIF9yZW5kZXJlcjI6IFJlbmRlcmVyMixcbiAgICAgICAgcHJvdGVjdGVkIF9jZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KERJQUxPR19TRVJWSUNFKSBwcm90ZWN0ZWQgX2RpYWxvZ1NlcnZpY2U6IGFueSxcbiAgICAgICAgQFNlbGYoKSBAT3B0aW9uYWwoKSBwcm90ZWN0ZWQgX2NvbnRhaW5lclNlcnZpY2U6IENvbnRhaW5lclNlcnZpY2UsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRk9STV9ESUFMT0dfQ09NUE9ORU5UKSBwcm90ZWN0ZWQgX2Zvcm1EaWFsb2dDb21wb25lbnQ6IFR5cGU8YW55PlxuICAgICkge1xuICAgICAgICBzdXBlcihcbiAgICAgICAgICAgIF9lbCxcbiAgICAgICAgICAgIF9hY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgICAgIF9wb3J0YWxTZXJ2aWNlLFxuICAgICAgICAgICAgX3ZjcixcbiAgICAgICAgICAgIF9iYXJzYURpYWxvZ1NlcnZpY2UsXG4gICAgICAgICAgICBfaW5qZWN0b3IsXG4gICAgICAgICAgICBfcm91dGVyLFxuICAgICAgICAgICAgX2NkcixcbiAgICAgICAgICAgIF9yZW5kZXJlcjIsXG4gICAgICAgICAgICBfZGlhbG9nU2VydmljZSxcbiAgICAgICAgICAgIF9jb250YWluZXJTZXJ2aWNlLFxuICAgICAgICAgICAgX2Zvcm1EaWFsb2dDb21wb25lbnRcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5mb3JtUGFuZWxDdHJsciA9IHRoaXMuZGlhbG9nUGFyYW1zLmNvbnRleHQuZm9ybXBhbmVsQ3RybHI7XG4gICAgICAgIGNvbnN0IG1vSWQgPSB0aGlzLmRpYWxvZ1BhcmFtcy5jb250ZXh0LnF1ZXJ5UGFyYW1zLmlkO1xuICAgICAgICBjb25zdCB0eXBlRGVmSWQgPSB0aGlzLmRpYWxvZ1BhcmFtcy5jb250ZXh0LnF1ZXJ5UGFyYW1zLnR5aWQ7XG4gICAgICAgIGNvbnN0IHJlcG9ydElkID0gdGhpcy5kaWFsb2dQYXJhbXMuY29udGV4dC5xdWVyeVBhcmFtcy5yZXBpZDtcbiAgICAgICAgdGhpcy5wYXJhbXMgPSB7IG1vSWQsIHR5cGVEZWZJZCwgcmVwb3J0SWQsIGluRGlhbG9nOiB0cnVlIH07XG4gICAgfVxuXG4gICAgb25Gb3JtQ2xvc2UoKTogdm9pZCB7fVxufVxuIiwiQGlmIChyZW5kZXJlZCkge1xuPGJucmMtZm9ybSBbZm9ybVBhbmVsQ3RybF09XCJmb3JtUGFuZWxDdHJsclwiIFtwYXJhbXNdPVwicGFyYW1zXCIgKGZvcm1DbG9zZSk9XCJvbkZvcm1DbG9zZSgpXCI+PC9ibnJjLWZvcm0+XG59XG4iXX0=
@@ -1,62 +0,0 @@
1
- import { Component, ChangeDetectionStrategy, ViewChild, Output, EventEmitter } from '@angular/core';
2
- import { FormToolbarBaseComponent } from 'barsa-novin-ray-core';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- import * as i2 from "barsa-novin-ray-core";
6
- import * as i3 from "@fundamental-ngx/core/button";
7
- import * as i4 from "@fundamental-ngx/core/menu";
8
- import * as i5 from "@fundamental-ngx/core/split-button";
9
- import * as i6 from "@fundamental-ngx/core/toolbar";
10
- import * as i7 from "@angular/cdk/bidi";
11
- export class FormToolbarComponent extends FormToolbarBaseComponent {
12
- constructor() {
13
- super(...arguments);
14
- this.toolbarClick = new EventEmitter();
15
- }
16
- ngOnInit() {
17
- super.ngOnInit();
18
- }
19
- ngOnChanges(changes) {
20
- super.ngOnChanges(changes);
21
- const { buttons } = changes;
22
- if (buttons) {
23
- if (buttons.firstChange) {
24
- setTimeout(() => {
25
- this._refreshToolbar();
26
- });
27
- }
28
- else {
29
- this._refreshToolbar();
30
- this._cdr.detectChanges();
31
- }
32
- }
33
- }
34
- onToolbarClick(btn, menu = null) {
35
- if (menu) {
36
- menu.close();
37
- }
38
- this.toolbarClick.emit(btn);
39
- }
40
- updateCollapsibleItems() {
41
- // call from parent component
42
- this._tlbCmp.updateCollapsibleItems();
43
- }
44
- _refreshToolbar() {
45
- if (this._tlbCmp) {
46
- this._tlbCmp.forceOverflow = false;
47
- this._tlbCmp.updateCollapsibleItems();
48
- }
49
- }
50
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormToolbarComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
51
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FormToolbarComponent, selector: "bsu-form-toolbar", outputs: { toolbarClick: "toolbarClick" }, viewQueries: [{ propertyName: "_tlbCmp", first: true, predicate: ["formToolbar"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<fd-toolbar\n #formToolbar\n fdType=\"transparent\"\n [clearBorder]=\"true\"\n [shouldOverflow]=\"deviceSize === 's'\"\n [class.firefox]=\"isFirefox\"\n>\n @for (btn of buttons; track btn; let i = $index; let last = $last; let first = $first) { @if ((btn === '-' ||\n btn.text === '-') && !last && !first && deviceSize !== 's') {\n <fd-toolbar-separator [attr.i]=\"i\" [attr.last]=\"last\" [attr.first]=\"first\"></fd-toolbar-separator>\n } @if (btn.IAmMenu) { @if (btn.isBuiltin) {\n <fd-split-button\n [dir]=\"dirValue === 'rtl' ? 'rtl' : 'ltr'\"\n fd-toolbar-item\n [attr.fdOverflowPriority]=\"'low'\"\n [mainAction]=\"{ mainActionTitle: btn.text, keepMainAction: true }\"\n [fdType]=\"btn.design ? btn.design : btn.Data?.JsonExtraProp?.Design\"\n (primaryButtonClicked)=\"btn.isBuiltin && onToolbarClick(btn)\"\n (click)=\"menu2.open()\"\n >\n <fd-menu #menu2>\n @for (menuItem of btn.menu.items; track menuItem) {\n <li fd-menu-item [disabled]=\"menuItem.disabled\" (click)=\"onToolbarClick(menuItem, menu2)\">\n <div fd-menu-interactive>\n <fd-menu-addon\n position=\"before\"\n [glyph]=\"menuItem.newIcon ? menuItem.newIcon : menuItem.Data?.JsonExtraProp?.Icon\"\n >\n </fd-menu-addon>\n @if (!menuItem.newIcon && menuItem.icon) {\n <img class=\"mr8\" [src]=\"menuItem.icon\" />\n }\n <span fd-menu-title>{{ menuItem.text }}</span>\n </div>\n </li>\n }\n </fd-menu>\n </fd-split-button>\n } @if (!btn.isBuiltin) {\n <button\n fd-button\n fd-toolbar-item\n [fdMenu]=\"true\"\n [glyph]=\"btn.FontIcon\"\n [style.color]=\"btn.IconColor\"\n [fdType]=\"btn.design ? btn.design : btn.Data?.JsonExtraProp?.Design\"\n [label]=\"btn.text | bbbTranslate\"\n [ariaLabel]=\"btn.text | bbbTranslate\"\n [fdMenuTrigger]=\"menu\"\n >\n @if (!btn.Data?.JsonExtraProp?.Icon && !btn.newIcon && btn.icon) {\n <img width=\"16\" [src]=\"btn.icon\" />\n }\n <fd-menu #menu>\n @for (menuItem of btn.menu.items; track menuItem) {\n <li fd-menu-item [disabled]=\"menuItem.disabled\" (click)=\"onToolbarClick(menuItem, menu)\">\n <div fd-menu-interactive>\n @if ( menuItem.newIcon || menuItem.Data?.JsonExtraProp?.Icon || menuItem.FontIcon ||\n menuItem.Data?.CustomUi?.Parameters?.Icon ) {\n <fd-menu-addon\n position=\"before\"\n [ngClass]=\"\n menuItem.Data?.CustomUi?.Parameters?.FdType$Caption\n ? 'fd-button--' + menuItem.Data?.CustomUi?.Parameters?.FdType$Caption\n : ''\n \"\n [style.color]=\"menuItem.IconColor\"\n [glyph]=\"\n menuItem.newIcon ||\n menuItem.Data?.JsonExtraProp?.Icon ||\n menuItem.FontIcon ||\n menuItem.Data?.CustomUi?.Parameters?.Icon\n \"\n >\n </fd-menu-addon>\n } @if ( !( menuItem.newIcon || menuItem.Data?.JsonExtraProp?.Icon ||\n menuItem.Data?.CustomUi?.Parameters?.Icon || menuItem.FontIcon ) && menuItem.icon ) {\n <img class=\"mr8\" [src]=\"menuItem.icon\" />\n }\n <span fd-menu-title>{{ menuItem.text }}</span>\n </div>\n </li>\n }\n </fd-menu>\n </button>\n } } @else { @if (!(btn === '-' || btn.text === '-')) {\n <ng-container\n *ngTemplateOutlet=\"btn.Data?.CustomUi?.Selector ? dynamicBtnTemplate : btnTemplate; context: { $implicit: btn }\"\n ></ng-container>\n <ng-template #btnTemplate let-btn>\n <button\n fd-toolbar-item\n fd-button\n [disabled]=\"btn.disabled\"\n [attr.fdOverflowPriority]=\"btn.priority\"\n [fdType]=\"btn.isWorkflow ? 'positive' : btn.design ? btn.design : btn.Data?.JsonExtraProp?.Design\"\n [glyph]=\"btn.newIcon ? btn.newIcon : btn.Data?.JsonExtraProp?.Icon\"\n (click)=\"onToolbarClick(btn)\"\n >\n @if (!btn.Data?.JsonExtraProp?.Icon && !btn.newIcon && btn.icon) {\n <img width=\"16\" [src]=\"btn.icon\" />\n } @if (btn.text) {\n <span>{{ btn.text }}</span>\n }\n </button>\n </ng-template>\n <ng-template #dynamicBtnTemplate let-btn>\n <bnrc-dynamic-form-toolbaritem\n fd-toolbar-item\n [component]=\"btn.Data.CustomUi\"\n [context]=\"btn\"\n [isEnable]=\"btn.Command?._isEnable\"\n (btnClick)=\"onToolbarClick(btn)\"\n ></bnrc-dynamic-form-toolbaritem>\n </ng-template>\n } } }\n</fd-toolbar>\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.DynamicFormToolbaritemComponent, selector: "bnrc-dynamic-form-toolbaritem", inputs: ["mo", "index", "deviceName", "deviceSize", "context", "btn", "isEnable", "showText", "allColumns", "conditionalFormats"], outputs: ["btnClick"] }, { kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i4.MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "focusTrapped", "focusAutoCapture", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { kind: "component", type: i4.MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu", "parentSubmenu", "hasSeparator"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { kind: "component", type: i4.MenuInteractiveComponent, selector: "[fd-menu-interactive]" }, { kind: "directive", type: i4.MenuTitleDirective, selector: "[fd-menu-title]" }, { kind: "component", type: i4.MenuAddonDirective, selector: "fd-menu-addon", inputs: ["position", "submenuIndicator", "ariaHidden"] }, { kind: "directive", type: i4.MenuTriggerDirective, selector: "[fdMenuTrigger]", inputs: ["fdMenuTrigger"] }, { kind: "component", type: i5.SplitButtonComponent, selector: "fd-split-button", inputs: ["glyph", "glyphFont", "disabled", "fdType", "expandButtonTitle", "selected", "fixedWidth", "mainAction", "arialLabel"], outputs: ["primaryButtonClicked"] }, { kind: "component", type: i6.ToolbarComponent, selector: "fd-toolbar", inputs: ["titleId", "class", "shouldOverflow", "fdType", "title", "active", "clearBorder", "forceOverflow", "tabindex", "headingLevel", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: i6.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "component", type: i6.ToolbarSeparatorComponent, selector: "fd-toolbar-separator" }, { kind: "directive", type: i7.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
52
- }
53
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormToolbarComponent, decorators: [{
54
- type: Component,
55
- args: [{ selector: 'bsu-form-toolbar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-toolbar\n #formToolbar\n fdType=\"transparent\"\n [clearBorder]=\"true\"\n [shouldOverflow]=\"deviceSize === 's'\"\n [class.firefox]=\"isFirefox\"\n>\n @for (btn of buttons; track btn; let i = $index; let last = $last; let first = $first) { @if ((btn === '-' ||\n btn.text === '-') && !last && !first && deviceSize !== 's') {\n <fd-toolbar-separator [attr.i]=\"i\" [attr.last]=\"last\" [attr.first]=\"first\"></fd-toolbar-separator>\n } @if (btn.IAmMenu) { @if (btn.isBuiltin) {\n <fd-split-button\n [dir]=\"dirValue === 'rtl' ? 'rtl' : 'ltr'\"\n fd-toolbar-item\n [attr.fdOverflowPriority]=\"'low'\"\n [mainAction]=\"{ mainActionTitle: btn.text, keepMainAction: true }\"\n [fdType]=\"btn.design ? btn.design : btn.Data?.JsonExtraProp?.Design\"\n (primaryButtonClicked)=\"btn.isBuiltin && onToolbarClick(btn)\"\n (click)=\"menu2.open()\"\n >\n <fd-menu #menu2>\n @for (menuItem of btn.menu.items; track menuItem) {\n <li fd-menu-item [disabled]=\"menuItem.disabled\" (click)=\"onToolbarClick(menuItem, menu2)\">\n <div fd-menu-interactive>\n <fd-menu-addon\n position=\"before\"\n [glyph]=\"menuItem.newIcon ? menuItem.newIcon : menuItem.Data?.JsonExtraProp?.Icon\"\n >\n </fd-menu-addon>\n @if (!menuItem.newIcon && menuItem.icon) {\n <img class=\"mr8\" [src]=\"menuItem.icon\" />\n }\n <span fd-menu-title>{{ menuItem.text }}</span>\n </div>\n </li>\n }\n </fd-menu>\n </fd-split-button>\n } @if (!btn.isBuiltin) {\n <button\n fd-button\n fd-toolbar-item\n [fdMenu]=\"true\"\n [glyph]=\"btn.FontIcon\"\n [style.color]=\"btn.IconColor\"\n [fdType]=\"btn.design ? btn.design : btn.Data?.JsonExtraProp?.Design\"\n [label]=\"btn.text | bbbTranslate\"\n [ariaLabel]=\"btn.text | bbbTranslate\"\n [fdMenuTrigger]=\"menu\"\n >\n @if (!btn.Data?.JsonExtraProp?.Icon && !btn.newIcon && btn.icon) {\n <img width=\"16\" [src]=\"btn.icon\" />\n }\n <fd-menu #menu>\n @for (menuItem of btn.menu.items; track menuItem) {\n <li fd-menu-item [disabled]=\"menuItem.disabled\" (click)=\"onToolbarClick(menuItem, menu)\">\n <div fd-menu-interactive>\n @if ( menuItem.newIcon || menuItem.Data?.JsonExtraProp?.Icon || menuItem.FontIcon ||\n menuItem.Data?.CustomUi?.Parameters?.Icon ) {\n <fd-menu-addon\n position=\"before\"\n [ngClass]=\"\n menuItem.Data?.CustomUi?.Parameters?.FdType$Caption\n ? 'fd-button--' + menuItem.Data?.CustomUi?.Parameters?.FdType$Caption\n : ''\n \"\n [style.color]=\"menuItem.IconColor\"\n [glyph]=\"\n menuItem.newIcon ||\n menuItem.Data?.JsonExtraProp?.Icon ||\n menuItem.FontIcon ||\n menuItem.Data?.CustomUi?.Parameters?.Icon\n \"\n >\n </fd-menu-addon>\n } @if ( !( menuItem.newIcon || menuItem.Data?.JsonExtraProp?.Icon ||\n menuItem.Data?.CustomUi?.Parameters?.Icon || menuItem.FontIcon ) && menuItem.icon ) {\n <img class=\"mr8\" [src]=\"menuItem.icon\" />\n }\n <span fd-menu-title>{{ menuItem.text }}</span>\n </div>\n </li>\n }\n </fd-menu>\n </button>\n } } @else { @if (!(btn === '-' || btn.text === '-')) {\n <ng-container\n *ngTemplateOutlet=\"btn.Data?.CustomUi?.Selector ? dynamicBtnTemplate : btnTemplate; context: { $implicit: btn }\"\n ></ng-container>\n <ng-template #btnTemplate let-btn>\n <button\n fd-toolbar-item\n fd-button\n [disabled]=\"btn.disabled\"\n [attr.fdOverflowPriority]=\"btn.priority\"\n [fdType]=\"btn.isWorkflow ? 'positive' : btn.design ? btn.design : btn.Data?.JsonExtraProp?.Design\"\n [glyph]=\"btn.newIcon ? btn.newIcon : btn.Data?.JsonExtraProp?.Icon\"\n (click)=\"onToolbarClick(btn)\"\n >\n @if (!btn.Data?.JsonExtraProp?.Icon && !btn.newIcon && btn.icon) {\n <img width=\"16\" [src]=\"btn.icon\" />\n } @if (btn.text) {\n <span>{{ btn.text }}</span>\n }\n </button>\n </ng-template>\n <ng-template #dynamicBtnTemplate let-btn>\n <bnrc-dynamic-form-toolbaritem\n fd-toolbar-item\n [component]=\"btn.Data.CustomUi\"\n [context]=\"btn\"\n [isEnable]=\"btn.Command?._isEnable\"\n (btnClick)=\"onToolbarClick(btn)\"\n ></bnrc-dynamic-form-toolbaritem>\n </ng-template>\n } } }\n</fd-toolbar>\n", styles: [":host{display:contents}\n"] }]
56
- }], propDecorators: { toolbarClick: [{
57
- type: Output
58
- }], _tlbCmp: [{
59
- type: ViewChild,
60
- args: ['formToolbar']
61
- }] } });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS10b29sYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2Zvcm0tdG9vbGJhci9mb3JtLXRvb2xiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvZm9ybS10b29sYmFyL2Zvcm0tdG9vbGJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULHVCQUF1QixFQUl2QixTQUFTLEVBQ1QsTUFBTSxFQUNOLFlBQVksRUFDZixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7O0FBUWhFLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSx3QkFBd0I7SUFObEU7O1FBT2MsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0tBb0NwRDtJQWpDRyxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFDRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQixNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBQzVCLElBQUksT0FBTyxFQUFFLENBQUM7WUFDVixJQUFJLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDdEIsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDWixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQzNCLENBQUMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUM5QixDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFDRCxjQUFjLENBQUMsR0FBRyxFQUFFLE9BQVksSUFBSTtRQUNoQyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1AsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2pCLENBQUM7UUFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBQ0Qsc0JBQXNCO1FBQ2xCLDhCQUE4QjtRQUM5QixJQUFJLENBQUMsT0FBTyxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUNPLGVBQWU7UUFDbkIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7WUFDbkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQzFDLENBQUM7SUFDTCxDQUFDOytHQXBDUSxvQkFBb0I7bUdBQXBCLG9CQUFvQix1UENuQmpDLHFwS0FxSEE7OzRGRGxHYSxvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0ksa0JBQWtCLG1CQUdYLHVCQUF1QixDQUFDLE1BQU07OEJBR3JDLFlBQVk7c0JBQXJCLE1BQU07Z0JBRW1CLE9BQU87c0JBQWhDLFNBQVM7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIE9uSW5pdCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBWaWV3Q2hpbGQsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRvb2xiYXJDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xuaW1wb3J0IHsgRm9ybVRvb2xiYXJCYXNlQ29tcG9uZW50IH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS1mb3JtLXRvb2xiYXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb3JtLXRvb2xiYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2Zvcm0tdG9vbGJhci5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1Ub29sYmFyQ29tcG9uZW50IGV4dGVuZHMgRm9ybVRvb2xiYXJCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAgIEBPdXRwdXQoKSB0b29sYmFyQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIEBWaWV3Q2hpbGQoJ2Zvcm1Ub29sYmFyJykgX3RsYkNtcDogVG9vbGJhckNvbXBvbmVudDtcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICB9XG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcbiAgICAgICAgY29uc3QgeyBidXR0b25zIH0gPSBjaGFuZ2VzO1xuICAgICAgICBpZiAoYnV0dG9ucykge1xuICAgICAgICAgICAgaWYgKGJ1dHRvbnMuZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcmVmcmVzaFRvb2xiYXIoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVmcmVzaFRvb2xiYXIoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIG9uVG9vbGJhckNsaWNrKGJ0biwgbWVudTogYW55ID0gbnVsbCk6IHZvaWQge1xuICAgICAgICBpZiAobWVudSkge1xuICAgICAgICAgICAgbWVudS5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudG9vbGJhckNsaWNrLmVtaXQoYnRuKTtcbiAgICB9XG4gICAgdXBkYXRlQ29sbGFwc2libGVJdGVtcygpOiB2b2lkIHtcbiAgICAgICAgLy8gIGNhbGwgZnJvbSBwYXJlbnQgY29tcG9uZW50XG4gICAgICAgIHRoaXMuX3RsYkNtcC51cGRhdGVDb2xsYXBzaWJsZUl0ZW1zKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX3JlZnJlc2hUb29sYmFyKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fdGxiQ21wKSB7XG4gICAgICAgICAgICB0aGlzLl90bGJDbXAuZm9yY2VPdmVyZmxvdyA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5fdGxiQ21wLnVwZGF0ZUNvbGxhcHNpYmxlSXRlbXMoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxmZC10b29sYmFyXG4gICAgI2Zvcm1Ub29sYmFyXG4gICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgIFtjbGVhckJvcmRlcl09XCJ0cnVlXCJcbiAgICBbc2hvdWxkT3ZlcmZsb3ddPVwiZGV2aWNlU2l6ZSA9PT0gJ3MnXCJcbiAgICBbY2xhc3MuZmlyZWZveF09XCJpc0ZpcmVmb3hcIlxuPlxuICAgIEBmb3IgKGJ0biBvZiBidXR0b25zOyB0cmFjayBidG47IGxldCBpID0gJGluZGV4OyBsZXQgbGFzdCA9ICRsYXN0OyBsZXQgZmlyc3QgPSAkZmlyc3QpIHsgQGlmICgoYnRuID09PSAnLScgfHxcbiAgICBidG4udGV4dCA9PT0gJy0nKSAmJiAhbGFzdCAmJiAhZmlyc3QgJiYgZGV2aWNlU2l6ZSAhPT0gJ3MnKSB7XG4gICAgPGZkLXRvb2xiYXItc2VwYXJhdG9yIFthdHRyLmldPVwiaVwiIFthdHRyLmxhc3RdPVwibGFzdFwiIFthdHRyLmZpcnN0XT1cImZpcnN0XCI+PC9mZC10b29sYmFyLXNlcGFyYXRvcj5cbiAgICB9IEBpZiAoYnRuLklBbU1lbnUpIHsgQGlmIChidG4uaXNCdWlsdGluKSB7XG4gICAgPGZkLXNwbGl0LWJ1dHRvblxuICAgICAgICBbZGlyXT1cImRpclZhbHVlID09PSAncnRsJyA/ICdydGwnIDogJ2x0cidcIlxuICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgW2F0dHIuZmRPdmVyZmxvd1ByaW9yaXR5XT1cIidsb3cnXCJcbiAgICAgICAgW21haW5BY3Rpb25dPVwieyBtYWluQWN0aW9uVGl0bGU6IGJ0bi50ZXh0LCBrZWVwTWFpbkFjdGlvbjogdHJ1ZSB9XCJcbiAgICAgICAgW2ZkVHlwZV09XCJidG4uZGVzaWduID8gYnRuLmRlc2lnbiA6IGJ0bi5EYXRhPy5Kc29uRXh0cmFQcm9wPy5EZXNpZ25cIlxuICAgICAgICAocHJpbWFyeUJ1dHRvbkNsaWNrZWQpPVwiYnRuLmlzQnVpbHRpbiAmJiBvblRvb2xiYXJDbGljayhidG4pXCJcbiAgICAgICAgKGNsaWNrKT1cIm1lbnUyLm9wZW4oKVwiXG4gICAgPlxuICAgICAgICA8ZmQtbWVudSAjbWVudTI+XG4gICAgICAgICAgICBAZm9yIChtZW51SXRlbSBvZiBidG4ubWVudS5pdGVtczsgdHJhY2sgbWVudUl0ZW0pIHtcbiAgICAgICAgICAgIDxsaSBmZC1tZW51LWl0ZW0gW2Rpc2FibGVkXT1cIm1lbnVJdGVtLmRpc2FibGVkXCIgKGNsaWNrKT1cIm9uVG9vbGJhckNsaWNrKG1lbnVJdGVtLCBtZW51MilcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGZkLW1lbnUtaW50ZXJhY3RpdmU+XG4gICAgICAgICAgICAgICAgICAgIDxmZC1tZW51LWFkZG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbj1cImJlZm9yZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZ2x5cGhdPVwibWVudUl0ZW0ubmV3SWNvbiA/IG1lbnVJdGVtLm5ld0ljb24gOiBtZW51SXRlbS5EYXRhPy5Kc29uRXh0cmFQcm9wPy5JY29uXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8L2ZkLW1lbnUtYWRkb24+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoIW1lbnVJdGVtLm5ld0ljb24gJiYgbWVudUl0ZW0uaWNvbikge1xuICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwibXI4XCIgW3NyY109XCJtZW51SXRlbS5pY29uXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1tZW51LXRpdGxlPnt7IG1lbnVJdGVtLnRleHQgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2ZkLW1lbnU+XG4gICAgPC9mZC1zcGxpdC1idXR0b24+XG4gICAgfSBAaWYgKCFidG4uaXNCdWlsdGluKSB7XG4gICAgPGJ1dHRvblxuICAgICAgICBmZC1idXR0b25cbiAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgIFtmZE1lbnVdPVwidHJ1ZVwiXG4gICAgICAgIFtnbHlwaF09XCJidG4uRm9udEljb25cIlxuICAgICAgICBbc3R5bGUuY29sb3JdPVwiYnRuLkljb25Db2xvclwiXG4gICAgICAgIFtmZFR5cGVdPVwiYnRuLmRlc2lnbiA/IGJ0bi5kZXNpZ24gOiBidG4uRGF0YT8uSnNvbkV4dHJhUHJvcD8uRGVzaWduXCJcbiAgICAgICAgW2xhYmVsXT1cImJ0bi50ZXh0IHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgW2FyaWFMYWJlbF09XCJidG4udGV4dCB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgIFtmZE1lbnVUcmlnZ2VyXT1cIm1lbnVcIlxuICAgID5cbiAgICAgICAgQGlmICghYnRuLkRhdGE/Lkpzb25FeHRyYVByb3A/Lkljb24gJiYgIWJ0bi5uZXdJY29uICYmIGJ0bi5pY29uKSB7XG4gICAgICAgIDxpbWcgd2lkdGg9XCIxNlwiIFtzcmNdPVwiYnRuLmljb25cIiAvPlxuICAgICAgICB9XG4gICAgICAgIDxmZC1tZW51ICNtZW51PlxuICAgICAgICAgICAgQGZvciAobWVudUl0ZW0gb2YgYnRuLm1lbnUuaXRlbXM7IHRyYWNrIG1lbnVJdGVtKSB7XG4gICAgICAgICAgICA8bGkgZmQtbWVudS1pdGVtIFtkaXNhYmxlZF09XCJtZW51SXRlbS5kaXNhYmxlZFwiIChjbGljayk9XCJvblRvb2xiYXJDbGljayhtZW51SXRlbSwgbWVudSlcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGZkLW1lbnUtaW50ZXJhY3RpdmU+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoIG1lbnVJdGVtLm5ld0ljb24gfHwgbWVudUl0ZW0uRGF0YT8uSnNvbkV4dHJhUHJvcD8uSWNvbiB8fCBtZW51SXRlbS5Gb250SWNvbiB8fFxuICAgICAgICAgICAgICAgICAgICBtZW51SXRlbS5EYXRhPy5DdXN0b21VaT8uUGFyYW1ldGVycz8uSWNvbiApIHtcbiAgICAgICAgICAgICAgICAgICAgPGZkLW1lbnUtYWRkb25cbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uPVwiYmVmb3JlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtLkRhdGE/LkN1c3RvbVVpPy5QYXJhbWV0ZXJzPy5GZFR5cGUkQ2FwdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICdmZC1idXR0b24tLScgKyBtZW51SXRlbS5EYXRhPy5DdXN0b21VaT8uUGFyYW1ldGVycz8uRmRUeXBlJENhcHRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJtZW51SXRlbS5JY29uQ29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2dseXBoXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtLm5ld0ljb24gfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW51SXRlbS5EYXRhPy5Kc29uRXh0cmFQcm9wPy5JY29uIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW0uRm9udEljb24gfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW51SXRlbS5EYXRhPy5DdXN0b21VaT8uUGFyYW1ldGVycz8uSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8L2ZkLW1lbnUtYWRkb24+XG4gICAgICAgICAgICAgICAgICAgIH0gQGlmICggISggbWVudUl0ZW0ubmV3SWNvbiB8fCBtZW51SXRlbS5EYXRhPy5Kc29uRXh0cmFQcm9wPy5JY29uIHx8XG4gICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtLkRhdGE/LkN1c3RvbVVpPy5QYXJhbWV0ZXJzPy5JY29uIHx8IG1lbnVJdGVtLkZvbnRJY29uICkgJiYgbWVudUl0ZW0uaWNvbiApIHtcbiAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cIm1yOFwiIFtzcmNdPVwibWVudUl0ZW0uaWNvblwiIC8+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbWVudS10aXRsZT57eyBtZW51SXRlbS50ZXh0IH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9mZC1tZW51PlxuICAgIDwvYnV0dG9uPlxuICAgIH0gfSBAZWxzZSB7IEBpZiAoIShidG4gPT09ICctJyB8fCBidG4udGV4dCA9PT0gJy0nKSkge1xuICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidG4uRGF0YT8uQ3VzdG9tVWk/LlNlbGVjdG9yID8gZHluYW1pY0J0blRlbXBsYXRlIDogYnRuVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBidG4gfVwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjYnRuVGVtcGxhdGUgbGV0LWJ0bj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJidG4uZGlzYWJsZWRcIlxuICAgICAgICAgICAgW2F0dHIuZmRPdmVyZmxvd1ByaW9yaXR5XT1cImJ0bi5wcmlvcml0eVwiXG4gICAgICAgICAgICBbZmRUeXBlXT1cImJ0bi5pc1dvcmtmbG93ID8gJ3Bvc2l0aXZlJyA6IGJ0bi5kZXNpZ24gPyBidG4uZGVzaWduIDogYnRuLkRhdGE/Lkpzb25FeHRyYVByb3A/LkRlc2lnblwiXG4gICAgICAgICAgICBbZ2x5cGhdPVwiYnRuLm5ld0ljb24gPyBidG4ubmV3SWNvbiA6IGJ0bi5EYXRhPy5Kc29uRXh0cmFQcm9wPy5JY29uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvblRvb2xiYXJDbGljayhidG4pXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgQGlmICghYnRuLkRhdGE/Lkpzb25FeHRyYVByb3A/Lkljb24gJiYgIWJ0bi5uZXdJY29uICYmIGJ0bi5pY29uKSB7XG4gICAgICAgICAgICA8aW1nIHdpZHRoPVwiMTZcIiBbc3JjXT1cImJ0bi5pY29uXCIgLz5cbiAgICAgICAgICAgIH0gQGlmIChidG4udGV4dCkge1xuICAgICAgICAgICAgPHNwYW4+e3sgYnRuLnRleHQgfX08L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNkeW5hbWljQnRuVGVtcGxhdGUgbGV0LWJ0bj5cbiAgICAgICAgPGJucmMtZHluYW1pYy1mb3JtLXRvb2xiYXJpdGVtXG4gICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgIFtjb21wb25lbnRdPVwiYnRuLkRhdGEuQ3VzdG9tVWlcIlxuICAgICAgICAgICAgW2NvbnRleHRdPVwiYnRuXCJcbiAgICAgICAgICAgIFtpc0VuYWJsZV09XCJidG4uQ29tbWFuZD8uX2lzRW5hYmxlXCJcbiAgICAgICAgICAgIChidG5DbGljayk9XCJvblRvb2xiYXJDbGljayhidG4pXCJcbiAgICAgICAgPjwvYm5yYy1keW5hbWljLWZvcm0tdG9vbGJhcml0ZW0+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICB9IH0gfVxuPC9mZC10b29sYmFyPlxuIl19
@@ -1,45 +0,0 @@
1
- import { Component, ChangeDetectionStrategy, Input, Output, EventEmitter, ViewChild } from '@angular/core';
2
- import { InlineHelpDirective } from '@fundamental-ngx/core';
3
- import { BaseFormToolbaritemPropsComponent } from 'barsa-novin-ray-core';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@fundamental-ngx/core/button";
6
- import * as i2 from "@fundamental-ngx/core/toolbar";
7
- import * as i3 from "barsa-novin-ray-core";
8
- export class FormToolbarButtonComponent extends BaseFormToolbaritemPropsComponent {
9
- constructor() {
10
- super(...arguments);
11
- this.btnClick = new EventEmitter();
12
- }
13
- ngOnInit() {
14
- super.ngOnInit();
15
- this.onlyIcon = this.parameters.OnlyIcon;
16
- this.icon = this.parameters.Icon;
17
- this.fdType = this.parameters.FdType$Caption;
18
- this.minWidth = this.parameters.MinWidth;
19
- this.customText = this.parameters.Title;
20
- this.text = this.inlineHelp = this.customText || this.context.text;
21
- // this.inlineHelpDirective.disabled = this.parameters.ShowTooltip === false;
22
- }
23
- ngOnChanges(changes) {
24
- super.ngOnChanges(changes);
25
- const { isEnable } = changes;
26
- if (isEnable && !isEnable.firstChange && isEnable.currentValue !== this.isEnable) {
27
- this.isEnable = isEnable.currentValue;
28
- this._cdr.markForCheck();
29
- }
30
- }
31
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormToolbarButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
32
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FormToolbarButtonComponent, selector: "bsu-form-toolbar-button", inputs: { parameters: "parameters" }, outputs: { btnClick: "btnClick" }, viewQueries: [{ propertyName: "inlineHelpDirective", first: true, predicate: InlineHelpDirective, descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<button\n fd-toolbar-item\n fd-button\n [title]=\"inlineHelp | bbbTranslate\"\n [glyph]=\"deviceSize === 's' ? null : icon\"\n [class.control-disabled]=\"isEnable === false ? true : false\"\n [fdType]=\"fdType || (!isEnable ? 'transparent' : fdType)\"\n (click)=\"btnClick.emit()\"\n [style.min-width.px]=\"minWidth ? minWidth : null\"\n>\n @if (!onlyIcon || showText || deviceSize === 's') {\n <span>{{ customText || text | bbbTranslate }}</span>\n }\n</button>\n", styles: [""], dependencies: [{ kind: "component", type: i1.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "directive", type: i2.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "pipe", type: i3.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
33
- }
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormToolbarButtonComponent, decorators: [{
35
- type: Component,
36
- args: [{ selector: 'bsu-form-toolbar-button', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n fd-toolbar-item\n fd-button\n [title]=\"inlineHelp | bbbTranslate\"\n [glyph]=\"deviceSize === 's' ? null : icon\"\n [class.control-disabled]=\"isEnable === false ? true : false\"\n [fdType]=\"fdType || (!isEnable ? 'transparent' : fdType)\"\n (click)=\"btnClick.emit()\"\n [style.min-width.px]=\"minWidth ? minWidth : null\"\n>\n @if (!onlyIcon || showText || deviceSize === 's') {\n <span>{{ customText || text | bbbTranslate }}</span>\n }\n</button>\n" }]
37
- }], propDecorators: { inlineHelpDirective: [{
38
- type: ViewChild,
39
- args: [InlineHelpDirective, { static: true }]
40
- }], parameters: [{
41
- type: Input
42
- }], btnClick: [{
43
- type: Output
44
- }] } });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS10b29sYmFyLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi9mb3JtLXRvb2xiYXItYnV0dG9uL2Zvcm0tdG9vbGJhci1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvZm9ybS10b29sYmFyLWJ1dHRvbi9mb3JtLXRvb2xiYXItYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsdUJBQXVCLEVBQ3ZCLEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUVaLFNBQVMsRUFHWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWMsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7QUFRekUsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGlDQUFpQztJQU5qRjs7UUFTYyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztLQTBCakQ7SUFsQkcsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFDakMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQztRQUM3QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFDeEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDbkUsNkVBQTZFO0lBQ2pGLENBQUM7SUFDRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQixNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBQzdCLElBQUksUUFBUSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsSUFBSSxRQUFRLENBQUMsWUFBWSxLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUMvRSxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUM7WUFDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM3QixDQUFDO0lBQ0wsQ0FBQzsrR0E1QlEsMEJBQTBCO21HQUExQiwwQkFBMEIsNkxBQ3hCLG1CQUFtQiwwR0NyQmxDLG1mQWNBOzs0RkRNYSwwQkFBMEI7a0JBTnRDLFNBQVM7K0JBQ0kseUJBQXlCLG1CQUdsQix1QkFBdUIsQ0FBQyxNQUFNOzhCQUdHLG1CQUFtQjtzQkFBcEUsU0FBUzt1QkFBQyxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ3ZDLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0ksUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgT25Jbml0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIE9uQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJ1dHRvblR5cGUsIElubGluZUhlbHBEaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xuaW1wb3J0IHsgQmFzZUZvcm1Ub29sYmFyaXRlbVByb3BzQ29tcG9uZW50IH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS1mb3JtLXRvb2xiYXItYnV0dG9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9ybS10b29sYmFyLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZm9ybS10b29sYmFyLWJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1Ub29sYmFyQnV0dG9uQ29tcG9uZW50IGV4dGVuZHMgQmFzZUZvcm1Ub29sYmFyaXRlbVByb3BzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAgIEBWaWV3Q2hpbGQoSW5saW5lSGVscERpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUgfSkgaW5saW5lSGVscERpcmVjdGl2ZTogSW5saW5lSGVscERpcmVjdGl2ZTtcbiAgICBASW5wdXQoKSBwYXJhbWV0ZXJzO1xuICAgIEBPdXRwdXQoKSBidG5DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgICBvbmx5SWNvbjogYm9vbGVhbjtcbiAgICBpY29uOiBzdHJpbmc7XG4gICAgaW5saW5lSGVscDogc3RyaW5nO1xuICAgIGZkVHlwZTogQnV0dG9uVHlwZTtcbiAgICB0ZXh0OiBzdHJpbmc7XG4gICAgY3VzdG9tVGV4dDogc3RyaW5nO1xuICAgIG1pbldpZHRoOiBudW1iZXI7XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMub25seUljb24gPSB0aGlzLnBhcmFtZXRlcnMuT25seUljb247XG4gICAgICAgIHRoaXMuaWNvbiA9IHRoaXMucGFyYW1ldGVycy5JY29uO1xuICAgICAgICB0aGlzLmZkVHlwZSA9IHRoaXMucGFyYW1ldGVycy5GZFR5cGUkQ2FwdGlvbjtcbiAgICAgICAgdGhpcy5taW5XaWR0aCA9IHRoaXMucGFyYW1ldGVycy5NaW5XaWR0aDtcbiAgICAgICAgdGhpcy5jdXN0b21UZXh0ID0gdGhpcy5wYXJhbWV0ZXJzLlRpdGxlO1xuICAgICAgICB0aGlzLnRleHQgPSB0aGlzLmlubGluZUhlbHAgPSB0aGlzLmN1c3RvbVRleHQgfHwgdGhpcy5jb250ZXh0LnRleHQ7XG4gICAgICAgIC8vIHRoaXMuaW5saW5lSGVscERpcmVjdGl2ZS5kaXNhYmxlZCA9IHRoaXMucGFyYW1ldGVycy5TaG93VG9vbHRpcCA9PT0gZmFsc2U7XG4gICAgfVxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkNoYW5nZXMoY2hhbmdlcyk7XG4gICAgICAgIGNvbnN0IHsgaXNFbmFibGUgfSA9IGNoYW5nZXM7XG4gICAgICAgIGlmIChpc0VuYWJsZSAmJiAhaXNFbmFibGUuZmlyc3RDaGFuZ2UgJiYgaXNFbmFibGUuY3VycmVudFZhbHVlICE9PSB0aGlzLmlzRW5hYmxlKSB7XG4gICAgICAgICAgICB0aGlzLmlzRW5hYmxlID0gaXNFbmFibGUuY3VycmVudFZhbHVlO1xuICAgICAgICAgICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGJ1dHRvblxuICAgIGZkLXRvb2xiYXItaXRlbVxuICAgIGZkLWJ1dHRvblxuICAgIFt0aXRsZV09XCJpbmxpbmVIZWxwIHwgYmJiVHJhbnNsYXRlXCJcbiAgICBbZ2x5cGhdPVwiZGV2aWNlU2l6ZSA9PT0gJ3MnID8gbnVsbCA6IGljb25cIlxuICAgIFtjbGFzcy5jb250cm9sLWRpc2FibGVkXT1cImlzRW5hYmxlID09PSBmYWxzZSA/IHRydWUgOiBmYWxzZVwiXG4gICAgW2ZkVHlwZV09XCJmZFR5cGUgfHwgKCFpc0VuYWJsZSA/ICd0cmFuc3BhcmVudCcgOiBmZFR5cGUpXCJcbiAgICAoY2xpY2spPVwiYnRuQ2xpY2suZW1pdCgpXCJcbiAgICBbc3R5bGUubWluLXdpZHRoLnB4XT1cIm1pbldpZHRoID8gbWluV2lkdGggOiBudWxsXCJcbj5cbiAgICBAaWYgKCFvbmx5SWNvbiB8fCBzaG93VGV4dCB8fCBkZXZpY2VTaXplID09PSAncycpIHtcbiAgICA8c3Bhbj57eyBjdXN0b21UZXh0IHx8IHRleHQgfCBiYmJUcmFuc2xhdGUgfX08L3NwYW4+XG4gICAgfVxuPC9idXR0b24+XG4iXX0=
@@ -1,21 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, ViewChild } from '@angular/core';
2
- import { FormPanelService } from 'barsa-novin-ray-core';
3
- import { UiFormPanelComponent } from '../ui-form-panel/ui-form-panel.component';
4
- import { WizardLayoutDirective } from '../wizard-layout.directive';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "../mask/mask.component";
7
- import * as i2 from "../wizard-layout.directive";
8
- import * as i3 from "@angular/common";
9
- import * as i4 from "barsa-novin-ray-core";
10
- export class FormWizardComponent extends UiFormPanelComponent {
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormWizardComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
12
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FormWizardComponent, selector: "bsu-form-wizard", providers: [FormPanelService], viewQueries: [{ propertyName: "wizardLayout", first: true, predicate: WizardLayoutDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div [headerForm]=\"this\" class=\"sapBaseColor\"></div>\n<div infobar></div>\n<div workflow></div>\n<div\n wizardLayout\n [style.position]=\"(mask$ | async) ? 'relative' : null\"\n [canSend]=\"(canSend$ | async) === true\"\n [removeContentPadding]=\"(headerRemoveContentPadding$ | async)!!\"\n [breadCrumbs]=\"breadCrumbs$ | async\"\n [description]=\"(headerDescription$ | async)!!\"\n [title]=\"(title$ | async)!!\"\n [subtitle]=\"(headerSubtitle$ | async)!!\"\n [toolbarItems]=\"toolbarItems$ | async | tlbButtons: 'inFooter':false\"\n [layoutActions]=\"toolbarItems$ | async | tlbButtons: 'inFooter':true\"\n [toolbarVisible]=\"(toolbarVisible$ | async)!!\"\n [facetList]=\"(headerLayout$ | async)?.FacetList2\"\n [parameters]=\"parameters\"\n [workflowPanelUi]=\"workflowPanelUi$ | async\"\n [isMobile]=\"isMobile\"\n [layout94]=\"layout94$ | async\"\n [rtl]=\"(rtl$ | async)!!\"\n [mask]=\"(mask$ | async)!!\"\n [dirValue]=\"(dirValue$ | async)!!\"\n [deviceSize]=\"(deviceSize$ | async)!!\"\n [contentDensity]=\"(contentDensity$ | async)!!\"\n [modernTabs]=\"(modernTabs$ | async)!!\"\n [avatar]=\"(avatar$ | async)!!\"\n [fieldDict]=\"(fieldDict$ | async)!!\"\n></div>\n\n<div #footer></div>\n\n@if (mask$ | async) {\n<bsu-mask> </bsu-mask>\n}\n", styles: [".object-container{padding:.5rem 1rem}.object-container.form-body{height:auto}:host ::ng-deep .fd-wizard__progress-bar{box-shadow:0 4px 2px -3px #e4e4e4!important}:host ::ng-deep bsu-form-header{border-bottom:none!important}\n"], dependencies: [{ kind: "component", type: i1.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "directive", type: i2.WizardLayoutDirective, selector: "[wizardLayout]", inputs: ["wizardLayout", "breadCrumbs", "toolbarVisible", "toolbarItems", "layoutActions", "layout94", "settings", "workflowPanelUi", "title", "subtitle", "description", "facetList", "removeHeaderBorder", "removeContentPadding", "isMobile", "avatar", "rtl", "mask", "fieldDict", "contentDensity", "deviceSize", "dirValue", "modernTabs"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TlbButtonsPipe, name: "tlbButtons" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
13
- }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormWizardComponent, decorators: [{
15
- type: Component,
16
- args: [{ selector: 'bsu-form-wizard', changeDetection: ChangeDetectionStrategy.OnPush, providers: [FormPanelService], template: "<div [headerForm]=\"this\" class=\"sapBaseColor\"></div>\n<div infobar></div>\n<div workflow></div>\n<div\n wizardLayout\n [style.position]=\"(mask$ | async) ? 'relative' : null\"\n [canSend]=\"(canSend$ | async) === true\"\n [removeContentPadding]=\"(headerRemoveContentPadding$ | async)!!\"\n [breadCrumbs]=\"breadCrumbs$ | async\"\n [description]=\"(headerDescription$ | async)!!\"\n [title]=\"(title$ | async)!!\"\n [subtitle]=\"(headerSubtitle$ | async)!!\"\n [toolbarItems]=\"toolbarItems$ | async | tlbButtons: 'inFooter':false\"\n [layoutActions]=\"toolbarItems$ | async | tlbButtons: 'inFooter':true\"\n [toolbarVisible]=\"(toolbarVisible$ | async)!!\"\n [facetList]=\"(headerLayout$ | async)?.FacetList2\"\n [parameters]=\"parameters\"\n [workflowPanelUi]=\"workflowPanelUi$ | async\"\n [isMobile]=\"isMobile\"\n [layout94]=\"layout94$ | async\"\n [rtl]=\"(rtl$ | async)!!\"\n [mask]=\"(mask$ | async)!!\"\n [dirValue]=\"(dirValue$ | async)!!\"\n [deviceSize]=\"(deviceSize$ | async)!!\"\n [contentDensity]=\"(contentDensity$ | async)!!\"\n [modernTabs]=\"(modernTabs$ | async)!!\"\n [avatar]=\"(avatar$ | async)!!\"\n [fieldDict]=\"(fieldDict$ | async)!!\"\n></div>\n\n<div #footer></div>\n\n@if (mask$ | async) {\n<bsu-mask> </bsu-mask>\n}\n", styles: [".object-container{padding:.5rem 1rem}.object-container.form-body{height:auto}:host ::ng-deep .fd-wizard__progress-bar{box-shadow:0 4px 2px -3px #e4e4e4!important}:host ::ng-deep bsu-form-header{border-bottom:none!important}\n"] }]
17
- }], propDecorators: { wizardLayout: [{
18
- type: ViewChild,
19
- args: [WizardLayoutDirective]
20
- }] } });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS13aXphcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvZm9ybS13aXphcmQvZm9ybS13aXphcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvZm9ybS13aXphcmQvZm9ybS13aXphcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDaEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7OztBQVFuRSxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsb0JBQW9COytHQUFoRCxtQkFBbUI7bUdBQW5CLG1CQUFtQiwwQ0FGakIsQ0FBQyxnQkFBZ0IsQ0FBQyx3RUFHbEIscUJBQXFCLHVFQ2JwQywreUNBbUNBOzs0RkR2QmEsbUJBQW1CO2tCQVAvQixTQUFTOytCQUNJLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsZ0JBQWdCLENBQUM7OEJBR0ssWUFBWTtzQkFBN0MsU0FBUzt1QkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEZvcm1QYW5lbFNlcnZpY2UgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcbmltcG9ydCB7IFVpRm9ybVBhbmVsQ29tcG9uZW50IH0gZnJvbSAnLi4vdWktZm9ybS1wYW5lbC91aS1mb3JtLXBhbmVsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFdpemFyZExheW91dERpcmVjdGl2ZSB9IGZyb20gJy4uL3dpemFyZC1sYXlvdXQuZGlyZWN0aXZlJztcclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JzdS1mb3JtLXdpemFyZCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9ybS13aXphcmQuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vZm9ybS13aXphcmQuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgcHJvdmlkZXJzOiBbRm9ybVBhbmVsU2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1XaXphcmRDb21wb25lbnQgZXh0ZW5kcyBVaUZvcm1QYW5lbENvbXBvbmVudCB7XHJcbiAgICBAVmlld0NoaWxkKFdpemFyZExheW91dERpcmVjdGl2ZSkgd2l6YXJkTGF5b3V0OiBXaXphcmRMYXlvdXREaXJlY3RpdmU7XHJcbn1cclxuIiwiPGRpdiBbaGVhZGVyRm9ybV09XCJ0aGlzXCIgY2xhc3M9XCJzYXBCYXNlQ29sb3JcIj48L2Rpdj5cbjxkaXYgaW5mb2Jhcj48L2Rpdj5cbjxkaXYgd29ya2Zsb3c+PC9kaXY+XG48ZGl2XG4gICAgd2l6YXJkTGF5b3V0XG4gICAgW3N0eWxlLnBvc2l0aW9uXT1cIihtYXNrJCB8IGFzeW5jKSA/ICdyZWxhdGl2ZScgOiBudWxsXCJcbiAgICBbY2FuU2VuZF09XCIoY2FuU2VuZCQgfCBhc3luYykgPT09IHRydWVcIlxuICAgIFtyZW1vdmVDb250ZW50UGFkZGluZ109XCIoaGVhZGVyUmVtb3ZlQ29udGVudFBhZGRpbmckIHwgYXN5bmMpISFcIlxuICAgIFticmVhZENydW1ic109XCJicmVhZENydW1icyQgfCBhc3luY1wiXG4gICAgW2Rlc2NyaXB0aW9uXT1cIihoZWFkZXJEZXNjcmlwdGlvbiQgfCBhc3luYykhIVwiXG4gICAgW3RpdGxlXT1cIih0aXRsZSQgfCBhc3luYykhIVwiXG4gICAgW3N1YnRpdGxlXT1cIihoZWFkZXJTdWJ0aXRsZSQgfCBhc3luYykhIVwiXG4gICAgW3Rvb2xiYXJJdGVtc109XCJ0b29sYmFySXRlbXMkIHwgYXN5bmMgfCB0bGJCdXR0b25zOiAnaW5Gb290ZXInOmZhbHNlXCJcbiAgICBbbGF5b3V0QWN0aW9uc109XCJ0b29sYmFySXRlbXMkIHwgYXN5bmMgfCB0bGJCdXR0b25zOiAnaW5Gb290ZXInOnRydWVcIlxuICAgIFt0b29sYmFyVmlzaWJsZV09XCIodG9vbGJhclZpc2libGUkIHwgYXN5bmMpISFcIlxuICAgIFtmYWNldExpc3RdPVwiKGhlYWRlckxheW91dCQgfCBhc3luYyk/LkZhY2V0TGlzdDJcIlxuICAgIFtwYXJhbWV0ZXJzXT1cInBhcmFtZXRlcnNcIlxuICAgIFt3b3JrZmxvd1BhbmVsVWldPVwid29ya2Zsb3dQYW5lbFVpJCB8IGFzeW5jXCJcbiAgICBbaXNNb2JpbGVdPVwiaXNNb2JpbGVcIlxuICAgIFtsYXlvdXQ5NF09XCJsYXlvdXQ5NCQgfCBhc3luY1wiXG4gICAgW3J0bF09XCIocnRsJCB8IGFzeW5jKSEhXCJcbiAgICBbbWFza109XCIobWFzayQgfCBhc3luYykhIVwiXG4gICAgW2RpclZhbHVlXT1cIihkaXJWYWx1ZSQgfCBhc3luYykhIVwiXG4gICAgW2RldmljZVNpemVdPVwiKGRldmljZVNpemUkIHwgYXN5bmMpISFcIlxuICAgIFtjb250ZW50RGVuc2l0eV09XCIoY29udGVudERlbnNpdHkkIHwgYXN5bmMpISFcIlxuICAgIFttb2Rlcm5UYWJzXT1cIihtb2Rlcm5UYWJzJCB8IGFzeW5jKSEhXCJcbiAgICBbYXZhdGFyXT1cIihhdmF0YXIkIHwgYXN5bmMpISFcIlxuICAgIFtmaWVsZERpY3RdPVwiKGZpZWxkRGljdCQgfCBhc3luYykhIVwiXG4+PC9kaXY+XG5cbjxkaXYgI2Zvb3Rlcj48L2Rpdj5cblxuQGlmIChtYXNrJCB8IGFzeW5jKSB7XG48YnN1LW1hc2s+IDwvYnN1LW1hc2s+XG59XG4iXX0=