barsa-sap-ui 2.2.1 → 2.2.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 (242) hide show
  1. package/esm2022/barsa-sap-ui.mjs +5 -0
  2. package/esm2022/lib/apply-conditional-formmatings.directive.mjs +90 -0
  3. package/esm2022/lib/avatar-size.pipe.mjs +41 -0
  4. package/esm2022/lib/barsa-answer-card/barsa-answer-card.component.mjs +41 -0
  5. package/esm2022/lib/barsa-asp-viewer/barsa-asp-viewer.component.mjs +145 -0
  6. package/esm2022/lib/barsa-bar-download-file/barsa-bar-download-file.component.mjs +23 -0
  7. package/esm2022/lib/barsa-bar-panel/barsa-bar-panel.component.mjs +23 -0
  8. package/esm2022/lib/barsa-base-panel/barsa-base-layout-panel.component.mjs +29 -0
  9. package/esm2022/lib/barsa-breadcrumbs/barsa-breadcrumbs.component.mjs +24 -0
  10. package/esm2022/lib/barsa-card-layout-panel/barsa-card-layout-panel.component.mjs +24 -0
  11. package/esm2022/lib/barsa-card-row-payam/barsa-card-row-payam.component.mjs +31 -0
  12. package/esm2022/lib/barsa-cartable-form/barsa-cartable-form.component.mjs +41 -0
  13. package/esm2022/lib/barsa-cartable-template/barsa-cartable-template.component.mjs +24 -0
  14. package/esm2022/lib/barsa-chat/barsa-chat.component.mjs +242 -0
  15. package/esm2022/lib/barsa-chat/chat.model.mjs +8 -0
  16. package/esm2022/lib/barsa-chat-content/barsa-chat-content.component.mjs +13 -0
  17. package/esm2022/lib/barsa-chat-content-toolbar/barsa-chat-content-toolbar.component.mjs +22 -0
  18. package/esm2022/lib/barsa-chat-list/barsa-chat-list.component.mjs +66 -0
  19. package/esm2022/lib/barsa-chat-message/barsa-chat-message.component.mjs +78 -0
  20. package/esm2022/lib/barsa-chat-thread/barsa-chat-thread.component.mjs +22 -0
  21. package/esm2022/lib/barsa-chat-threads-list/barsa-chat-threads-list.component.mjs +13 -0
  22. package/esm2022/lib/barsa-chat-threads-list-toolbar/barsa-chat-threads-list-toolbar.component.mjs +15 -0
  23. package/esm2022/lib/barsa-chip/barsa-chip.component.mjs +72 -0
  24. package/esm2022/lib/barsa-column-indicator/barsa-column-indicator.component.mjs +23 -0
  25. package/esm2022/lib/barsa-column-rownumber/barsa-column-rownumber.component.mjs +14 -0
  26. package/esm2022/lib/barsa-custom-inline-edit/barsa-custom-inline-edit.component.mjs +14 -0
  27. package/esm2022/lib/barsa-custom-inline-edit-row/barsa-custom-inline-edit-row.component.mjs +26 -0
  28. package/esm2022/lib/barsa-date-time-picker/barsa-date-time-picker.component.mjs +71 -0
  29. package/esm2022/lib/barsa-dynamic-field/barsa-dynamic-field.component.mjs +40 -0
  30. package/esm2022/lib/barsa-enum-menu-button/barsa-enum-menu-button.component.mjs +61 -0
  31. package/esm2022/lib/barsa-field-key-value/barsa-field-key-value.component.mjs +45 -0
  32. package/esm2022/lib/barsa-form-side-content/barsa-form-side-content.component.mjs +58 -0
  33. package/esm2022/lib/barsa-grid-layout-panel/barsa-grid-layout-panel.component.mjs +27 -0
  34. package/esm2022/lib/barsa-group-cartable/barsa-cartable-group.component.mjs +94 -0
  35. package/esm2022/lib/barsa-horizontal-flex-panel/barsa-horizontal-flex-panel.component.mjs +22 -0
  36. package/esm2022/lib/barsa-linkable-items-panel/barsa-linkable-items-panel.component.mjs +37 -0
  37. package/esm2022/lib/barsa-list-file-linear/barsa-list-file-linear.component.mjs +41 -0
  38. package/esm2022/lib/barsa-list-file-linear-gmail/barsa-list-file-linear-gmail.component.mjs +29 -0
  39. package/esm2022/lib/barsa-list-layout-panel/barsa-list-layout-panel.component.mjs +23 -0
  40. package/esm2022/lib/barsa-modal/barsa-modal.component.mjs +43 -0
  41. package/esm2022/lib/barsa-monaco-editor/barsa-monaco-editor.component.mjs +83 -0
  42. package/esm2022/lib/barsa-network-offline/barsa-network-offline.component.mjs +57 -0
  43. package/esm2022/lib/barsa-pishnamayesh-payam/barsa-pishnamayesh-payam.component.mjs +159 -0
  44. package/esm2022/lib/barsa-question-answer-comments-section/barsa-question-answer-comments-section.component.mjs +17 -0
  45. package/esm2022/lib/barsa-question-answer-content-actions-section/barsa-question-answer-content-actions-section.component.mjs +30 -0
  46. package/esm2022/lib/barsa-question-answer-creator-time-section/barsa-question-answer-creator-time-section.component.mjs +14 -0
  47. package/esm2022/lib/barsa-question-answer-form/barsa-question-answer-form.component.mjs +34 -0
  48. package/esm2022/lib/barsa-question-answer-form-add-comment/barsa-question-answer-form-add-comment.component.mjs +46 -0
  49. package/esm2022/lib/barsa-question-answer-vote-section/barsa-question-answer-vote-section.component.mjs +79 -0
  50. package/esm2022/lib/barsa-question-post/barsa-question-post.component.mjs +30 -0
  51. package/esm2022/lib/barsa-report-card-flex-view/barsa-report-card-flex-view.component.mjs +31 -0
  52. package/esm2022/lib/barsa-report-checkbox-switch-button/barsa-report-checkbox-switch-button.component.mjs +28 -0
  53. package/esm2022/lib/barsa-report-one-of-list/barsa-report-one-of-list.component.mjs +102 -0
  54. package/esm2022/lib/barsa-row-inline-actionlist/barsa-row-inline-actionlist.component.mjs +26 -0
  55. package/esm2022/lib/barsa-sap-ui-routing.module.mjs +18 -0
  56. package/esm2022/lib/barsa-sap-ui.module.mjs +377 -0
  57. package/esm2022/lib/barsa-search-form/barsa-search-form.component.mjs +29 -0
  58. package/esm2022/lib/barsa-simple-form/barsa-simple-form.component.mjs +170 -0
  59. package/esm2022/lib/barsa-tab-route-manager/barsa-tab-route-manager.component.mjs +18 -0
  60. package/esm2022/lib/barsa-table-column/barsa-table-column.component.mjs +29 -0
  61. package/esm2022/lib/barsa-table-header/barsa-table-header.component.mjs +222 -0
  62. package/esm2022/lib/barsa-table-row/barsa-table-row.component.mjs +87 -0
  63. package/esm2022/lib/barsa-tag-categories/barsa-tag-categories.component.mjs +60 -0
  64. package/esm2022/lib/barsa-tag-chip/barsa-tag-chip.component.mjs +26 -0
  65. package/esm2022/lib/barsa-tags-category-row/barsa-tags-category-row.component.mjs +23 -0
  66. package/esm2022/lib/barsa-text-ellipsis/barsa-text-ellipsis.component.mjs +37 -0
  67. package/esm2022/lib/barsa-tinyemce/barsa-tinyemce.component.mjs +418 -0
  68. package/esm2022/lib/barsa-toolbaritem-search/barsa-toolbaritem-search.component.mjs +36 -0
  69. package/esm2022/lib/barsa-tree-item/barsa-tree-item.component.mjs +153 -0
  70. package/esm2022/lib/barsa-tree-item/node-has-one-depth-level.pipe.mjs +20 -0
  71. package/esm2022/lib/barsa-ulv-main/barsa-ulv-main.component.mjs +216 -0
  72. package/esm2022/lib/blob-viewer/blob-viewer.component.mjs +74 -0
  73. package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +50 -0
  74. package/esm2022/lib/captcha-field/captcha-field.component.mjs +28 -0
  75. package/esm2022/lib/card-item/card-item.component.mjs +74 -0
  76. package/esm2022/lib/card-view-content/card-view-content.component.mjs +46 -0
  77. package/esm2022/lib/col-renderer.directive.mjs +47 -0
  78. package/esm2022/lib/column-matrix-renderer/column-matrix-renderer.component.mjs +56 -0
  79. package/esm2022/lib/column-matrix-renderer/matrix-value.pipe.mjs +61 -0
  80. package/esm2022/lib/column-renderer/column-renderer.component.mjs +97 -0
  81. package/esm2022/lib/constants.mjs +450 -0
  82. package/esm2022/lib/custom-date-time/custom-date-time.component.mjs +41 -0
  83. package/esm2022/lib/device-info-field-base.mjs +24 -0
  84. package/esm2022/lib/dialog-handler.directive.mjs +29 -0
  85. package/esm2022/lib/download-files.directive.mjs +34 -0
  86. package/esm2022/lib/dynamic-page-size.pipe.mjs +27 -0
  87. package/esm2022/lib/file-in-dialog/file-in-dialog.component.mjs +44 -0
  88. package/esm2022/lib/file-viewer/file-viewer.component.mjs +47 -0
  89. package/esm2022/lib/file-viewer-content/file-viewer-content.component.mjs +71 -0
  90. package/esm2022/lib/file-viewer-popover/file-viewer-popover.component.mjs +37 -0
  91. package/esm2022/lib/form-dialog/form-dialog.component.mjs +171 -0
  92. package/esm2022/lib/form-dialog-less/form-dialog-less.component.mjs +50 -0
  93. package/esm2022/lib/form-toolbar/form-toolbar.component.mjs +62 -0
  94. package/esm2022/lib/form-toolbar-button/form-toolbar-button.component.mjs +45 -0
  95. package/esm2022/lib/form-wizard/form-wizard.component.mjs +21 -0
  96. package/esm2022/lib/fullscreen-dialog.directive.mjs +60 -0
  97. package/esm2022/lib/fullscreen-files.directive.mjs +43 -0
  98. package/esm2022/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.mjs +217 -0
  99. package/esm2022/lib/gantt-dhtml-chart-view/gantt-dhtml-chart-view.component.mjs +215 -0
  100. package/esm2022/lib/global-search/global-search.component.mjs +27 -0
  101. package/esm2022/lib/global-search-module/global-search-module.component.mjs +29 -0
  102. package/esm2022/lib/global-search-panel/global-search-panel.component.mjs +25 -0
  103. package/esm2022/lib/header-avatar/header-avatar.component.mjs +18 -0
  104. package/esm2022/lib/htree-create-new/htree-create-new.component.mjs +48 -0
  105. package/esm2022/lib/hyperlink/hyperlink.component.mjs +23 -0
  106. package/esm2022/lib/index.mjs +549 -0
  107. package/esm2022/lib/inline-save-and-cancel/inline-save-and-cancel.component.mjs +32 -0
  108. package/esm2022/lib/layout-actions/layout-actions.component.mjs +70 -0
  109. package/esm2022/lib/layout-control/layout-control.component.mjs +302 -0
  110. package/esm2022/lib/layout-wizard/layout-wizard.component.mjs +180 -0
  111. package/esm2022/lib/list-item/list-item.component.mjs +34 -0
  112. package/esm2022/lib/ly-empty-space/ly-empty-space.component.mjs +42 -0
  113. package/esm2022/lib/ly-horizontal-layout/ly-horizontal-layout.component.mjs +82 -0
  114. package/esm2022/lib/ly-label/ly-label.component.mjs +37 -0
  115. package/esm2022/lib/ly-layout-container/ly-layout-container.component.mjs +83 -0
  116. package/esm2022/lib/ly-layout-container-of-root/ly-layout-container-of-root.component.mjs +17 -0
  117. package/esm2022/lib/ly-layout-field-label/ly-layout-field-label.component.mjs +24 -0
  118. package/esm2022/lib/ly-layout-panel/ly-layout-panel.component.mjs +83 -0
  119. package/esm2022/lib/ly-line/ly-line.component.mjs +56 -0
  120. package/esm2022/lib/ly-simple-label/ly-simple-label.component.mjs +22 -0
  121. package/esm2022/lib/ly-tab-container/ly-tab-container.component.mjs +44 -0
  122. package/esm2022/lib/ly-tab-page/ly-tab-page.component.mjs +44 -0
  123. package/esm2022/lib/ly-vertical-layout/ly-vertical-layout.component.mjs +51 -0
  124. package/esm2022/lib/manage-filters-report/manage-filters-report.component.mjs +43 -0
  125. package/esm2022/lib/mask/mask.component.mjs +22 -0
  126. package/esm2022/lib/message-strip/message-strip.component.mjs +28 -0
  127. package/esm2022/lib/models/grid-data-provider.mjs +114 -0
  128. package/esm2022/lib/models/grid-view.mjs +2 -0
  129. package/esm2022/lib/models/index.mjs +2 -0
  130. package/esm2022/lib/no-data/no-data.component.mjs +31 -0
  131. package/esm2022/lib/notification-item/notification-item.component.mjs +57 -0
  132. package/esm2022/lib/notification-item-actions/notification-item-actions.component.mjs +79 -0
  133. package/esm2022/lib/notification-popup.service.mjs +92 -0
  134. package/esm2022/lib/object-status-icon.pipe.mjs +27 -0
  135. package/esm2022/lib/progress-indicator/progress-indicator.component.mjs +18 -0
  136. package/esm2022/lib/report-navigator/report-navigator.component.mjs +68 -0
  137. package/esm2022/lib/report-new-top-form/report-new-top-form.component.mjs +60 -0
  138. package/esm2022/lib/report-search-fields-hidden-settings/report-search-fields-hidden-settings.component.mjs +35 -0
  139. package/esm2022/lib/report-search-fields-manage/report-search-fields-manage.component.mjs +97 -0
  140. package/esm2022/lib/report-search-panel-save/report-search-panel-save.component.mjs +88 -0
  141. package/esm2022/lib/report-tree-base.mjs +387 -0
  142. package/esm2022/lib/report-view-renderer.directive.mjs +392 -0
  143. package/esm2022/lib/responsive-toolbar/responsive-toolbar.component.mjs +50 -0
  144. package/esm2022/lib/responsive-toolbar-renderer/responsive-toolbar-renderer.component.mjs +84 -0
  145. package/esm2022/lib/rich-text-static/rich-text-static.component.mjs +72 -0
  146. package/esm2022/lib/sap-font-class.pipe.mjs +30 -0
  147. package/esm2022/lib/sap-font.pipe.mjs +30 -0
  148. package/esm2022/lib/sap-size.pipe.mjs +28 -0
  149. package/esm2022/lib/sap-ui-report-base.component.mjs +809 -0
  150. package/esm2022/lib/search-panel/search-panel.component.mjs +63 -0
  151. package/esm2022/lib/static-text/static-text.component.mjs +15 -0
  152. package/esm2022/lib/table-th.directive.mjs +87 -0
  153. package/esm2022/lib/title/title.component.mjs +15 -0
  154. package/esm2022/lib/ui-asp-report-viewer/ui-asp-report-viewer.component.mjs +34 -0
  155. package/esm2022/lib/ui-bpmn-viewer/ui-bpmn-viewer.component.mjs +33 -0
  156. package/esm2022/lib/ui-button/ui-button.component.mjs +32 -0
  157. package/esm2022/lib/ui-calendar/ui-calendar.component.mjs +53 -0
  158. package/esm2022/lib/ui-card-view/ui-card-view.component.mjs +58 -0
  159. package/esm2022/lib/ui-card-view-horizontal-group/ui-card-view-horizontal-group.component.mjs +42 -0
  160. package/esm2022/lib/ui-check-box/ui-check-box.component.mjs +39 -0
  161. package/esm2022/lib/ui-color-ui/ui-color-ui.component.mjs +50 -0
  162. package/esm2022/lib/ui-container-with-button/ui-container-with-button.component.mjs +38 -0
  163. package/esm2022/lib/ui-date-range-ex/ui-date-range-ex.component.mjs +191 -0
  164. package/esm2022/lib/ui-date-time/ui-date-time.component.mjs +150 -0
  165. package/esm2022/lib/ui-editable-grid/ui-editable-grid.component.mjs +108 -0
  166. package/esm2022/lib/ui-exception-form/ui-exception-form.component.mjs +53 -0
  167. package/esm2022/lib/ui-file-linear-list-box/ui-file-linear-list-box.component.mjs +124 -0
  168. package/esm2022/lib/ui-form-panel/ui-form-panel.component.mjs +103 -0
  169. package/esm2022/lib/ui-gantt-chart/ui-gantt-chart.component.mjs +32 -0
  170. package/esm2022/lib/ui-graph/ui-graph.component.mjs +17 -0
  171. package/esm2022/lib/ui-grid/ui-grid.component.mjs +25 -0
  172. package/esm2022/lib/ui-grid-columns/ui-grid-columns.component.mjs +43 -0
  173. package/esm2022/lib/ui-grid-filter-item/ui-grid-filter-item.component.mjs +66 -0
  174. package/esm2022/lib/ui-grid-filter-settings/ui-grid-filter-settings.component.mjs +75 -0
  175. package/esm2022/lib/ui-grid-sort-item/ui-grid-sort-item.component.mjs +58 -0
  176. package/esm2022/lib/ui-grid-sort-setting/ui-grid-sort-setting.component.mjs +123 -0
  177. package/esm2022/lib/ui-html-viewer/ui-html-viewer.component.mjs +16 -0
  178. package/esm2022/lib/ui-info-bar-panel/ui-info-bar-panel.component.mjs +11 -0
  179. package/esm2022/lib/ui-label/ui-label.component.mjs +12 -0
  180. package/esm2022/lib/ui-linear-list-container-with-button/ui-linear-list-container-with-button.component.mjs +379 -0
  181. package/esm2022/lib/ui-list-view/ui-list-view.component.mjs +84 -0
  182. package/esm2022/lib/ui-map/ui-map.component.mjs +68 -0
  183. package/esm2022/lib/ui-matrix-view/ui-matrix-view.component.mjs +124 -0
  184. package/esm2022/lib/ui-mo-info-combo-viewer/ui-mo-info-combo-viewer.component.mjs +19 -0
  185. package/esm2022/lib/ui-mo-info-general-object-ui/ui-mo-info-general-object-ui.component.mjs +14 -0
  186. package/esm2022/lib/ui-mo-info-sub-form-ui/ui-mo-info-sub-form-ui.component.mjs +55 -0
  187. package/esm2022/lib/ui-mo-info-ulv-combo/ui-mo-info-ulv-combo.component.mjs +429 -0
  188. package/esm2022/lib/ui-monaco-editor/ui-monaco-editor.component.mjs +28 -0
  189. package/esm2022/lib/ui-multi-select-card/ui-multi-select-card.component.mjs +37 -0
  190. package/esm2022/lib/ui-multi-select-checkbox/ui-multi-select-checkbox.component.mjs +59 -0
  191. package/esm2022/lib/ui-multi-select-combo/ui-multi-select-combo.component.mjs +93 -0
  192. package/esm2022/lib/ui-multi-select-radio/ui-multi-select-radio.component.mjs +36 -0
  193. package/esm2022/lib/ui-multi-select-slider/ui-multi-select-slider.component.mjs +56 -0
  194. package/esm2022/lib/ui-multi-select-smile/ui-multi-select-smile.component.mjs +28 -0
  195. package/esm2022/lib/ui-notification-view/ui-notification-view.component.mjs +47 -0
  196. package/esm2022/lib/ui-num-decimal-ui/ui-num-decimal-ui.component.mjs +33 -0
  197. package/esm2022/lib/ui-num-int-slider/ui-num-int-slider.component.mjs +27 -0
  198. package/esm2022/lib/ui-num-int-ui/ui-num-int-ui.component.mjs +21 -0
  199. package/esm2022/lib/ui-pdf-viewer/ui-pdf-viewer.component.mjs +268 -0
  200. package/esm2022/lib/ui-picture-file/ui-picture-file.component.mjs +101 -0
  201. package/esm2022/lib/ui-pictures-info/ui-pictures-info.component.mjs +261 -0
  202. package/esm2022/lib/ui-radio-group/ui-radio-group.component.mjs +48 -0
  203. package/esm2022/lib/ui-read-only-field/ui-read-only-field.component.mjs +36 -0
  204. package/esm2022/lib/ui-report-container/ui-report-container.component.mjs +46 -0
  205. package/esm2022/lib/ui-search-command-info-ui/ui-search-command-info-ui.component.mjs +24 -0
  206. package/esm2022/lib/ui-simple-combo/ui-simple-combo.component.mjs +55 -0
  207. package/esm2022/lib/ui-single-picture/ui-single-picture.component.mjs +36 -0
  208. package/esm2022/lib/ui-switch-button/ui-switch-button.component.mjs +20 -0
  209. package/esm2022/lib/ui-table-view/ui-table-view.component.mjs +296 -0
  210. package/esm2022/lib/ui-text-area/ui-text-area.component.mjs +49 -0
  211. package/esm2022/lib/ui-text-field/ui-text-field.component.mjs +52 -0
  212. package/esm2022/lib/ui-text-field-auto-complete/ui-text-field-auto-complete.component.mjs +48 -0
  213. package/esm2022/lib/ui-time-span/ui-time-span.component.mjs +24 -0
  214. package/esm2022/lib/ui-tinymce/ui-tinymce.component.mjs +53 -0
  215. package/esm2022/lib/ui-tree/ui-tree.component.mjs +114 -0
  216. package/esm2022/lib/ui-tree-view/ui-tree-view.component.mjs +100 -0
  217. package/esm2022/lib/ui-ulv-form-multi-select-ui/ui-ulv-form-multi-select-ui.component.mjs +23 -0
  218. package/esm2022/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.mjs +310 -0
  219. package/esm2022/lib/ui-workflow-panel-ui/ui-workflow-panel-ui.component.mjs +25 -0
  220. package/esm2022/lib/ul-loading-mask-ui/ul-loading-mask-ui.component.mjs +93 -0
  221. package/esm2022/lib/ul-msg-box-adapter/ul-msg-box-adapter.component.mjs +119 -0
  222. package/esm2022/lib/ul-notify-popup/ul-notify-popup.component.mjs +32 -0
  223. package/esm2022/lib/ul-toast-adapter/ul-toast-adapter.component.mjs +48 -0
  224. package/esm2022/lib/ulv-column-settings/ulv-column-settings.component.mjs +53 -0
  225. package/esm2022/lib/ulv-context-menu/ulv-context-menu.component.mjs +116 -0
  226. package/esm2022/lib/ulv-filter-settings/ulv-filter-settings.component.mjs +43 -0
  227. package/esm2022/lib/ulv-form-multi-select/ulv-form-multi-select.component.mjs +196 -0
  228. package/esm2022/lib/ulv-groupby-settings/ulv-groupby-settings.component.mjs +44 -0
  229. package/esm2022/lib/ulv-paging/ulv-paging.component.mjs +84 -0
  230. package/esm2022/lib/ulv-selection/ulv-selection.component.mjs +65 -0
  231. package/esm2022/lib/ulv-settings/ulv-settings.component.mjs +116 -0
  232. package/esm2022/lib/ulv-sort-settings/ulv-sort-settings.component.mjs +54 -0
  233. package/esm2022/lib/ulv-toolbar/ulv-toolbar.component.mjs +177 -0
  234. package/esm2022/lib/upload-file-status.pipe.mjs +29 -0
  235. package/esm2022/lib/util-chat-time-badge.pipe.mjs +18 -0
  236. package/esm2022/lib/util-date-to-hh-mm.pipe.mjs +23 -0
  237. package/esm2022/lib/wizard-layout.directive.mjs +104 -0
  238. package/esm2022/public-api.mjs +236 -0
  239. package/fesm2022/barsa-sap-ui.mjs +6 -13
  240. package/fesm2022/barsa-sap-ui.mjs.map +1 -1
  241. package/lib/layout-wizard/layout-wizard.component.d.ts +0 -1
  242. package/package.json +3 -1
@@ -0,0 +1,94 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { BaseViewItemPropsComponent } from 'barsa-novin-ray-core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "@fundamental-ngx/core/list";
6
+ import * as i3 from "barsa-novin-ray-core";
7
+ export class BarsaCartableGroupComponent extends BaseViewItemPropsComponent {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.isLastBuiltin = false;
11
+ }
12
+ ngOnInit() {
13
+ super.ngOnInit();
14
+ if (this.index === 0) {
15
+ this._calcAll(this.moDataList);
16
+ }
17
+ this._checkSystemi();
18
+ }
19
+ ngOnChanges(changes) {
20
+ super.ngOnChanges(changes);
21
+ let detectChanges = false;
22
+ const keys = ['mo', 'moDataList', 'isChecked'];
23
+ keys.forEach((key) => {
24
+ if (changes[key] && !changes[key].firstChange) {
25
+ this[key] = changes[key].currentValue;
26
+ detectChanges = true;
27
+ if (key === 'moDataList') {
28
+ this._calcAll(changes[key].currentValue);
29
+ this._checkSystemi();
30
+ }
31
+ }
32
+ });
33
+ if (detectChanges) {
34
+ this.detectChanges();
35
+ }
36
+ }
37
+ detectChanges() {
38
+ this._cdr.detectChanges();
39
+ }
40
+ _rowCheckAll() {
41
+ if (this.allItemChecked) {
42
+ return;
43
+ }
44
+ this.allItemChecked = true;
45
+ this.events.emit({ title: 'deselectAll', data: null });
46
+ this.events.emit({ title: 'rowCheck', data: { mo: { Id: '01' }, index: -1 } });
47
+ }
48
+ onClick(isAll) {
49
+ if (isAll) {
50
+ this._rowCheckAll();
51
+ }
52
+ else {
53
+ this._rowCheck();
54
+ }
55
+ }
56
+ _rowCheck() {
57
+ if (this.isChecked) {
58
+ return;
59
+ }
60
+ this.events.emit({ title: 'rowCheck', data: { mo: this.mo, index: this.index } });
61
+ }
62
+ _checkSystemi() {
63
+ this.isBuiltin = this._reportValuePipe.transform('سیستمی', this.mo, this.allColumns);
64
+ if (this.index + 1 < this.moDataList.length && this.isBuiltin) {
65
+ this.isLastBuiltin = !this._reportValuePipe.transform('سیستمی', this.moDataList[this.index + 1], this.allColumns);
66
+ }
67
+ }
68
+ _calcAll(moDataList) {
69
+ if (this.index !== 0) {
70
+ return;
71
+ }
72
+ let allCount = 0;
73
+ let unreadCount = 0;
74
+ let isChecked = false;
75
+ moDataList.forEach((c) => {
76
+ if (c.$IsChecked) {
77
+ isChecked = true;
78
+ }
79
+ const allCountTemp = this._reportValuePipe.transform(this.parameters.AllCountField, c, this.allColumns);
80
+ allCount += isNaN(+allCountTemp) ? 0 : +allCountTemp;
81
+ const unreadCountTemp = this._reportValuePipe.transform(this.parameters.UnreadCountField, c, this.allColumns);
82
+ unreadCount += isNaN(+unreadCountTemp) ? 0 : +unreadCountTemp;
83
+ });
84
+ this.allItemChecked = !isChecked;
85
+ this.allItem = { allCount, unreadCount };
86
+ }
87
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaCartableGroupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
88
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BarsaCartableGroupComponent, selector: "bsu-barsa-cartable-group", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<!-- <li\r\n[interactive]=\"true\"\r\nfd-list-item\r\n[selected]=\"allItemChecked ? true : false\"\r\n(click)=\"onRowCheckAll()\"\r\n*ngIf=\"allItem\"\r\n>\r\n<div class=\"title-container\">\r\n <div style=\"background-color: transparent; width: 0.2rem; height: 100%\"></div>\r\n <span fd-list-title>\r\n <div style=\"height: 100%; display: flex; align-items: center\">\r\n <span [style.fontSize]=\"allItem.unreadCount > 0 ? 'bold' : null\">{{ '\u0647\u0645\u0647 \u0645\u0648\u0627\u0631\u062F' | bbbTranslate }}</span>\r\n <ng-container *ngIf=\"allItem.unreadCount > 0\">\r\n <strong style=\"padding: 0 2px; direction: ltr\">({{ allItem.unreadCount }})</strong>\r\n </ng-container>\r\n <span style=\"padding: 0 5px\" *ngIf=\"allItem.allCount > 0\">{{ allItem.allCount }}</span>\r\n </div>\r\n </span>\r\n</div>\r\n</li> -->\r\n\r\n<ng-container>\r\n @if (allItem) {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n itemTemplate;\r\n context: {\r\n $implicit: '\u0647\u0645\u0647 \u0645\u0648\u0627\u0631\u062F' | bbbTranslate,\r\n unreadCount: allItem.unreadCount,\r\n allCount: allItem.allCount,\r\n backColor: 'transparent',\r\n isAll: true,\r\n isChecked: allItemChecked\r\n }\r\n \"\r\n ></ng-container>\r\n }\r\n\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n itemTemplate;\r\n context: {\r\n $implicit: parameters.CartableGroupField | rval: mo:allColumns:true,\r\n unreadCount: parameters.UnreadCountField | rval: mo:allColumns,\r\n allCount: parameters.AllCountField | rval: mo:allColumns,\r\n backColor: (columns[0].Caption | rval: mo:columns),\r\n isChecked: isChecked,\r\n icon: parameters.IconField | rval: mo:allColumns:true,\r\n isBuiltin: isBuiltin\r\n }\r\n \"\r\n ></ng-container>\r\n</ng-container>\r\n@if (isLastBuiltin) {\r\n<li fd-list-item class=\"space\">\r\n <span fd-list-title></span>\r\n</li>\r\n}\r\n<!-- <ng-container *ngIf=\"last\">\r\n<ul fd-list>\r\n <li fd-list-group-header>\r\n <span fd-list-title style=\"background:#f7f7f7\"></span>\r\n </li>\r\n <ng-container *ngFor=\"let mo2 of moDataList\">\r\n <ng-container *ngIf=\"'\u0633\u06CC\u0633\u062A\u0645\u06CC' | rval: mo2:allColumns\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n itemTemplate;\r\n context: {\r\n $implicit: parameters.CartableGroupField | rval: mo2:allColumns:true,\r\n unreadCount: parameters.UnreadCountField | rval: mo2:allColumns,\r\n allCount: parameters.AllCountField | rval: mo2:allColumns,\r\n backColor: columns[0].Caption | rval: mo2:columns,\r\n isChecked: isChecked\r\n }\r\n \"\r\n ></ng-container>\r\n </ng-container>\r\n</ng-container>\r\n</ul>\r\n</ng-container> -->\r\n\r\n<!-- <li fd-list-item [selected]=\"isChecked ? true : false\" (click)=\"onRowCheck()\" [interactive]=\"true\">\r\n<div class=\"title-container\">\r\n <div [style.backgroundColor]=\"columns[0].Caption | rval: mo:columns\" style=\"width: 0.2rem; height: 100%\"></div>\r\n <span fd-list-title>\r\n <div style=\"height: 100%; display: flex; align-items: center\">\r\n <span [style.fontSize]=\"parameters.UnreadCountField | rval: mo:allColumns:(true ? 'bold' : null)\"\r\n >{{ parameters.CartableGroupField | rval: mo:allColumns:true }}\r\n </span>\r\n <ng-container *ngIf=\"parameters.UnreadCountField | rval: mo:allColumns:true\">\r\n <strong style=\"padding: 0 2px; direction: ltr\"\r\n >({{ parameters.UnreadCountField | rval: mo:allColumns:true }})</strong\r\n >\r\n </ng-container>\r\n <span style=\"padding: 0 5px\">{{ parameters.AllCountField | rval: mo:allColumns:true }}</span>\r\n </div>\r\n </span>\r\n </div>\r\n</li> -->\r\n<ng-template\r\n #itemTemplate\r\n let-caption\r\n let-unreadCount=\"unreadCount\"\r\n let-allCount=\"allCount\"\r\n let-backColor=\"backColor\"\r\n let-isAll=\"isAll\"\r\n let-isChecked=\"isChecked\"\r\n let-icon=\"icon\"\r\n let-isBuiltin=\"isBuiltin\"\r\n>\r\n @if (isBuiltin || allCount > 0 || isAll) {\r\n <li fd-list-item [selected]=\"isChecked ? true : false\" (click)=\"onClick(isAll)\" [interactive]=\"true\">\r\n <div class=\"title-container\">\r\n <div [style.backgroundColor]=\"backColor\" style=\"width: 0.2rem; height: 100%\"></div>\r\n @if (icon) {\r\n <i fd-list-icon [glyph]=\"icon\"></i>\r\n }\r\n <span fd-list-title>\r\n <div style=\"height: 100%; display: flex; align-items: center; column-gap: 5px\">\r\n @if (unreadCount && unreadCount > 0) {\r\n <strong>{{ caption }}</strong>\r\n <strong style=\"padding: 0 2px; direction: ltr\">({{ unreadCount }})</strong>\r\n } @else {\r\n <span>{{ caption }}</span>\r\n } @if (allCount && allCount > 0) {\r\n <span style=\"padding: 0 5px\">{{ allCount }}</span>\r\n }\r\n </div>\r\n </span>\r\n </div>\r\n </li>\r\n }\r\n</ng-template>\r\n", styles: [":host{display:contents;width:100%;height:100%;cursor:pointer}.title-container{align-items:center;display:flex;column-gap:5px;height:100%;width:100%}li{padding:0}.space{cursor:default;background-color:var(--sapBackgroundColor);pointer-events:none}.space:focus:before{border:none}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole", "id"], outputs: ["keyDown"] }, { kind: "directive", type: i2.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i2.ListIconDirective, selector: "[fdListIcon], [fd-list-icon]", inputs: ["glyph", "glyphFont", "class", "role", "ariaHidden"] }, { kind: "pipe", type: i3.MoReportValuePipe, name: "rval" }, { kind: "pipe", type: i3.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
89
+ }
90
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaCartableGroupComponent, decorators: [{
91
+ type: Component,
92
+ args: [{ selector: 'bsu-barsa-cartable-group', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<!-- <li\r\n[interactive]=\"true\"\r\nfd-list-item\r\n[selected]=\"allItemChecked ? true : false\"\r\n(click)=\"onRowCheckAll()\"\r\n*ngIf=\"allItem\"\r\n>\r\n<div class=\"title-container\">\r\n <div style=\"background-color: transparent; width: 0.2rem; height: 100%\"></div>\r\n <span fd-list-title>\r\n <div style=\"height: 100%; display: flex; align-items: center\">\r\n <span [style.fontSize]=\"allItem.unreadCount > 0 ? 'bold' : null\">{{ '\u0647\u0645\u0647 \u0645\u0648\u0627\u0631\u062F' | bbbTranslate }}</span>\r\n <ng-container *ngIf=\"allItem.unreadCount > 0\">\r\n <strong style=\"padding: 0 2px; direction: ltr\">({{ allItem.unreadCount }})</strong>\r\n </ng-container>\r\n <span style=\"padding: 0 5px\" *ngIf=\"allItem.allCount > 0\">{{ allItem.allCount }}</span>\r\n </div>\r\n </span>\r\n</div>\r\n</li> -->\r\n\r\n<ng-container>\r\n @if (allItem) {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n itemTemplate;\r\n context: {\r\n $implicit: '\u0647\u0645\u0647 \u0645\u0648\u0627\u0631\u062F' | bbbTranslate,\r\n unreadCount: allItem.unreadCount,\r\n allCount: allItem.allCount,\r\n backColor: 'transparent',\r\n isAll: true,\r\n isChecked: allItemChecked\r\n }\r\n \"\r\n ></ng-container>\r\n }\r\n\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n itemTemplate;\r\n context: {\r\n $implicit: parameters.CartableGroupField | rval: mo:allColumns:true,\r\n unreadCount: parameters.UnreadCountField | rval: mo:allColumns,\r\n allCount: parameters.AllCountField | rval: mo:allColumns,\r\n backColor: (columns[0].Caption | rval: mo:columns),\r\n isChecked: isChecked,\r\n icon: parameters.IconField | rval: mo:allColumns:true,\r\n isBuiltin: isBuiltin\r\n }\r\n \"\r\n ></ng-container>\r\n</ng-container>\r\n@if (isLastBuiltin) {\r\n<li fd-list-item class=\"space\">\r\n <span fd-list-title></span>\r\n</li>\r\n}\r\n<!-- <ng-container *ngIf=\"last\">\r\n<ul fd-list>\r\n <li fd-list-group-header>\r\n <span fd-list-title style=\"background:#f7f7f7\"></span>\r\n </li>\r\n <ng-container *ngFor=\"let mo2 of moDataList\">\r\n <ng-container *ngIf=\"'\u0633\u06CC\u0633\u062A\u0645\u06CC' | rval: mo2:allColumns\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n itemTemplate;\r\n context: {\r\n $implicit: parameters.CartableGroupField | rval: mo2:allColumns:true,\r\n unreadCount: parameters.UnreadCountField | rval: mo2:allColumns,\r\n allCount: parameters.AllCountField | rval: mo2:allColumns,\r\n backColor: columns[0].Caption | rval: mo2:columns,\r\n isChecked: isChecked\r\n }\r\n \"\r\n ></ng-container>\r\n </ng-container>\r\n</ng-container>\r\n</ul>\r\n</ng-container> -->\r\n\r\n<!-- <li fd-list-item [selected]=\"isChecked ? true : false\" (click)=\"onRowCheck()\" [interactive]=\"true\">\r\n<div class=\"title-container\">\r\n <div [style.backgroundColor]=\"columns[0].Caption | rval: mo:columns\" style=\"width: 0.2rem; height: 100%\"></div>\r\n <span fd-list-title>\r\n <div style=\"height: 100%; display: flex; align-items: center\">\r\n <span [style.fontSize]=\"parameters.UnreadCountField | rval: mo:allColumns:(true ? 'bold' : null)\"\r\n >{{ parameters.CartableGroupField | rval: mo:allColumns:true }}\r\n </span>\r\n <ng-container *ngIf=\"parameters.UnreadCountField | rval: mo:allColumns:true\">\r\n <strong style=\"padding: 0 2px; direction: ltr\"\r\n >({{ parameters.UnreadCountField | rval: mo:allColumns:true }})</strong\r\n >\r\n </ng-container>\r\n <span style=\"padding: 0 5px\">{{ parameters.AllCountField | rval: mo:allColumns:true }}</span>\r\n </div>\r\n </span>\r\n </div>\r\n</li> -->\r\n<ng-template\r\n #itemTemplate\r\n let-caption\r\n let-unreadCount=\"unreadCount\"\r\n let-allCount=\"allCount\"\r\n let-backColor=\"backColor\"\r\n let-isAll=\"isAll\"\r\n let-isChecked=\"isChecked\"\r\n let-icon=\"icon\"\r\n let-isBuiltin=\"isBuiltin\"\r\n>\r\n @if (isBuiltin || allCount > 0 || isAll) {\r\n <li fd-list-item [selected]=\"isChecked ? true : false\" (click)=\"onClick(isAll)\" [interactive]=\"true\">\r\n <div class=\"title-container\">\r\n <div [style.backgroundColor]=\"backColor\" style=\"width: 0.2rem; height: 100%\"></div>\r\n @if (icon) {\r\n <i fd-list-icon [glyph]=\"icon\"></i>\r\n }\r\n <span fd-list-title>\r\n <div style=\"height: 100%; display: flex; align-items: center; column-gap: 5px\">\r\n @if (unreadCount && unreadCount > 0) {\r\n <strong>{{ caption }}</strong>\r\n <strong style=\"padding: 0 2px; direction: ltr\">({{ unreadCount }})</strong>\r\n } @else {\r\n <span>{{ caption }}</span>\r\n } @if (allCount && allCount > 0) {\r\n <span style=\"padding: 0 5px\">{{ allCount }}</span>\r\n }\r\n </div>\r\n </span>\r\n </div>\r\n </li>\r\n }\r\n</ng-template>\r\n", styles: [":host{display:contents;width:100%;height:100%;cursor:pointer}.title-container{align-items:center;display:flex;column-gap:5px;height:100%;width:100%}li{padding:0}.space{cursor:default;background-color:var(--sapBackgroundColor);pointer-events:none}.space:focus:before{border:none}\n"] }]
93
+ }] });
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtY2FydGFibGUtZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtZ3JvdXAtY2FydGFibGUvYmFyc2EtY2FydGFibGUtZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtZ3JvdXAtY2FydGFibGUvYmFyc2EtY2FydGFibGUtZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBeUIsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLDBCQUEwQixFQUF1QixNQUFNLHNCQUFzQixDQUFDOzs7OztBQVN2RixNQUFNLE9BQU8sMkJBQTRCLFNBQVEsMEJBQTBCO0lBUDNFOztRQWNJLGtCQUFhLEdBQUcsS0FBSyxDQUFDO0tBcUZ6QjtJQW5GRyxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQixJQUFJLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDMUIsTUFBTSxJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRS9DLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNqQixJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDNUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUM7Z0JBQ3RDLGFBQWEsR0FBRyxJQUFJLENBQUM7Z0JBQ3JCLElBQUksR0FBRyxLQUFLLFlBQVksRUFBRSxDQUFDO29CQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQztvQkFDekMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUN6QixDQUFDO1lBQ0wsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDekIsQ0FBQztJQUNMLENBQUM7SUFDRCxhQUFhO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBQ0QsWUFBWTtRQUNSLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3RCLE9BQU87UUFDWCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFDRCxPQUFPLENBQUMsS0FBYztRQUNsQixJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1IsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3hCLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3JCLENBQUM7SUFDTCxDQUFDO0lBQ0QsU0FBUztRQUNMLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2pCLE9BQU87UUFDWCxDQUFDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFDTyxhQUFhO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckYsSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDNUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQ2pELFFBQVEsRUFDUixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQy9CLElBQUksQ0FBQyxVQUFVLENBQ2xCLENBQUM7UUFDTixDQUFDO0lBQ0wsQ0FBQztJQUNPLFFBQVEsQ0FBQyxVQUFpQztRQUM5QyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbkIsT0FBTztRQUNYLENBQUM7UUFDRCxJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFDakIsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN0QixVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDckIsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ2YsU0FBUyxHQUFHLElBQUksQ0FBQztZQUNyQixDQUFDO1lBQ0QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3hHLFFBQVEsSUFBSSxLQUFLLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztZQUNyRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUNuRCxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixFQUNoQyxDQUFDLEVBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FDbEIsQ0FBQztZQUNGLFdBQVcsSUFBSSxLQUFLLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQztRQUNsRSxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxTQUFTLENBQUM7UUFDakMsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUM3QyxDQUFDOytHQTNGUSwyQkFBMkI7bUdBQTNCLDJCQUEyQiw0R0NWeEMsOCtLQXNJQTs7NEZENUhhLDJCQUEyQjtrQkFQdkMsU0FBUzsrQkFDSSwwQkFBMEIsbUJBR25CLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCYXNlVmlld0l0ZW1Qcm9wc0NvbXBvbmVudCwgTWV0YW9iamVjdERhdGFNb2RlbCB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtYmFyc2EtY2FydGFibGUtZ3JvdXAnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JhcnNhLWNhcnRhYmxlLWdyb3VwLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2JhcnNhLWNhcnRhYmxlLWdyb3VwLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0YW5kYWxvbmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCYXJzYUNhcnRhYmxlR3JvdXBDb21wb25lbnQgZXh0ZW5kcyBCYXNlVmlld0l0ZW1Qcm9wc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKi9cclxuICAgIGFsbEl0ZW06IHsgdW5yZWFkQ291bnQ6IG51bWJlcjsgYWxsQ291bnQ6IG51bWJlciB9O1xyXG4gICAgYWxsSXRlbUNoZWNrZWQ6IGJvb2xlYW47XHJcbiAgICBidWlsdGluR3JvdXBzOiBNZXRhb2JqZWN0RGF0YU1vZGVsW107XHJcbiAgICBpc0xhc3RCdWlsdGluID0gZmFsc2U7XHJcbiAgICBpc0J1aWx0aW46IGFueTtcclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgaWYgKHRoaXMuaW5kZXggPT09IDApIHtcclxuICAgICAgICAgICAgdGhpcy5fY2FsY0FsbCh0aGlzLm1vRGF0YUxpc3QpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9jaGVja1N5c3RlbWkoKTtcclxuICAgIH1cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcclxuICAgICAgICBsZXQgZGV0ZWN0Q2hhbmdlcyA9IGZhbHNlO1xyXG4gICAgICAgIGNvbnN0IGtleXMgPSBbJ21vJywgJ21vRGF0YUxpc3QnLCAnaXNDaGVja2VkJ107XHJcblxyXG4gICAgICAgIGtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChjaGFuZ2VzW2tleV0gJiYgIWNoYW5nZXNba2V5XS5maXJzdENoYW5nZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpc1trZXldID0gY2hhbmdlc1trZXldLmN1cnJlbnRWYWx1ZTtcclxuICAgICAgICAgICAgICAgIGRldGVjdENoYW5nZXMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgaWYgKGtleSA9PT0gJ21vRGF0YUxpc3QnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2FsY0FsbChjaGFuZ2VzW2tleV0uY3VycmVudFZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jaGVja1N5c3RlbWkoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmIChkZXRlY3RDaGFuZ2VzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGRldGVjdENoYW5nZXMoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICAgIF9yb3dDaGVja0FsbCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5hbGxJdGVtQ2hlY2tlZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuYWxsSXRlbUNoZWNrZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuZXZlbnRzLmVtaXQoeyB0aXRsZTogJ2Rlc2VsZWN0QWxsJywgZGF0YTogbnVsbCB9KTtcclxuICAgICAgICB0aGlzLmV2ZW50cy5lbWl0KHsgdGl0bGU6ICdyb3dDaGVjaycsIGRhdGE6IHsgbW86IHsgSWQ6ICcwMScgfSwgaW5kZXg6IC0xIH0gfSk7XHJcbiAgICB9XHJcbiAgICBvbkNsaWNrKGlzQWxsOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKGlzQWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3Jvd0NoZWNrQWxsKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5fcm93Q2hlY2soKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBfcm93Q2hlY2soKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNDaGVja2VkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5ldmVudHMuZW1pdCh7IHRpdGxlOiAncm93Q2hlY2snLCBkYXRhOiB7IG1vOiB0aGlzLm1vLCBpbmRleDogdGhpcy5pbmRleCB9IH0pO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfY2hlY2tTeXN0ZW1pKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaXNCdWlsdGluID0gdGhpcy5fcmVwb3J0VmFsdWVQaXBlLnRyYW5zZm9ybSgn2LPbjNiz2KrZhduMJywgdGhpcy5tbywgdGhpcy5hbGxDb2x1bW5zKTtcclxuICAgICAgICBpZiAodGhpcy5pbmRleCArIDEgPCB0aGlzLm1vRGF0YUxpc3QubGVuZ3RoICYmIHRoaXMuaXNCdWlsdGluKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNMYXN0QnVpbHRpbiA9ICF0aGlzLl9yZXBvcnRWYWx1ZVBpcGUudHJhbnNmb3JtKFxyXG4gICAgICAgICAgICAgICAgJ9iz24zYs9iq2YXbjCcsXHJcbiAgICAgICAgICAgICAgICB0aGlzLm1vRGF0YUxpc3RbdGhpcy5pbmRleCArIDFdLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5hbGxDb2x1bW5zXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfY2FsY0FsbChtb0RhdGFMaXN0OiBNZXRhb2JqZWN0RGF0YU1vZGVsW10pOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5pbmRleCAhPT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBhbGxDb3VudCA9IDA7XHJcbiAgICAgICAgbGV0IHVucmVhZENvdW50ID0gMDtcclxuICAgICAgICBsZXQgaXNDaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgbW9EYXRhTGlzdC5mb3JFYWNoKChjKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChjLiRJc0NoZWNrZWQpIHtcclxuICAgICAgICAgICAgICAgIGlzQ2hlY2tlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgYWxsQ291bnRUZW1wID0gdGhpcy5fcmVwb3J0VmFsdWVQaXBlLnRyYW5zZm9ybSh0aGlzLnBhcmFtZXRlcnMuQWxsQ291bnRGaWVsZCwgYywgdGhpcy5hbGxDb2x1bW5zKTtcclxuICAgICAgICAgICAgYWxsQ291bnQgKz0gaXNOYU4oK2FsbENvdW50VGVtcCkgPyAwIDogK2FsbENvdW50VGVtcDtcclxuICAgICAgICAgICAgY29uc3QgdW5yZWFkQ291bnRUZW1wID0gdGhpcy5fcmVwb3J0VmFsdWVQaXBlLnRyYW5zZm9ybShcclxuICAgICAgICAgICAgICAgIHRoaXMucGFyYW1ldGVycy5VbnJlYWRDb3VudEZpZWxkLFxyXG4gICAgICAgICAgICAgICAgYyxcclxuICAgICAgICAgICAgICAgIHRoaXMuYWxsQ29sdW1uc1xyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB1bnJlYWRDb3VudCArPSBpc05hTigrdW5yZWFkQ291bnRUZW1wKSA/IDAgOiArdW5yZWFkQ291bnRUZW1wO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuYWxsSXRlbUNoZWNrZWQgPSAhaXNDaGVja2VkO1xyXG4gICAgICAgIHRoaXMuYWxsSXRlbSA9IHsgYWxsQ291bnQsIHVucmVhZENvdW50IH07XHJcbiAgICB9XHJcbn1cclxuIiwiPCEtLSA8bGlcclxuW2ludGVyYWN0aXZlXT1cInRydWVcIlxyXG5mZC1saXN0LWl0ZW1cclxuW3NlbGVjdGVkXT1cImFsbEl0ZW1DaGVja2VkID8gdHJ1ZSA6IGZhbHNlXCJcclxuKGNsaWNrKT1cIm9uUm93Q2hlY2tBbGwoKVwiXHJcbipuZ0lmPVwiYWxsSXRlbVwiXHJcbj5cclxuPGRpdiBjbGFzcz1cInRpdGxlLWNvbnRhaW5lclwiPlxyXG4gIDxkaXYgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgd2lkdGg6IDAuMnJlbTsgaGVpZ2h0OiAxMDAlXCI+PC9kaXY+XHJcbiAgPHNwYW4gZmQtbGlzdC10aXRsZT5cclxuICAgIDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDEwMCU7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXJcIj5cclxuICAgICAgPHNwYW4gW3N0eWxlLmZvbnRTaXplXT1cImFsbEl0ZW0udW5yZWFkQ291bnQgPiAwID8gJ2JvbGQnIDogbnVsbFwiPnt7ICfZh9mF2Ycg2YXZiNin2LHYrycgfCBiYmJUcmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhbGxJdGVtLnVucmVhZENvdW50ID4gMFwiPlxyXG4gICAgICAgIDxzdHJvbmcgc3R5bGU9XCJwYWRkaW5nOiAwIDJweDsgZGlyZWN0aW9uOiBsdHJcIj4oe3sgYWxsSXRlbS51bnJlYWRDb3VudCB9fSk8L3N0cm9uZz5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxzcGFuIHN0eWxlPVwicGFkZGluZzogMCA1cHhcIiAqbmdJZj1cImFsbEl0ZW0uYWxsQ291bnQgPiAwXCI+e3sgYWxsSXRlbS5hbGxDb3VudCB9fTwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvc3Bhbj5cclxuPC9kaXY+XHJcbjwvbGk+IC0tPlxyXG5cclxuPG5nLWNvbnRhaW5lcj5cclxuICAgIEBpZiAoYWxsSXRlbSkge1xyXG4gICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXHJcbiAgICAgICAgICAgIGl0ZW1UZW1wbGF0ZTtcclxuICAgICAgICAgICAgY29udGV4dDoge1xyXG4gICAgICAgICAgICAgICAgJGltcGxpY2l0OiAn2YfZhdmHINmF2YjYp9ix2K8nIHwgYmJiVHJhbnNsYXRlLFxyXG4gICAgICAgICAgICAgICAgdW5yZWFkQ291bnQ6IGFsbEl0ZW0udW5yZWFkQ291bnQsXHJcbiAgICAgICAgICAgICAgICBhbGxDb3VudDogYWxsSXRlbS5hbGxDb3VudCxcclxuICAgICAgICAgICAgICAgIGJhY2tDb2xvcjogJ3RyYW5zcGFyZW50JyxcclxuICAgICAgICAgICAgICAgIGlzQWxsOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgaXNDaGVja2VkOiBhbGxJdGVtQ2hlY2tlZFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgXCJcclxuICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgIH1cclxuXHJcbiAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcclxuICAgICAgICAgICAgaXRlbVRlbXBsYXRlO1xyXG4gICAgICAgICAgICBjb250ZXh0OiB7XHJcbiAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IHBhcmFtZXRlcnMuQ2FydGFibGVHcm91cEZpZWxkIHwgcnZhbDogbW86YWxsQ29sdW1uczp0cnVlLFxyXG4gICAgICAgICAgICAgICAgdW5yZWFkQ291bnQ6IHBhcmFtZXRlcnMuVW5yZWFkQ291bnRGaWVsZCB8IHJ2YWw6IG1vOmFsbENvbHVtbnMsXHJcbiAgICAgICAgICAgICAgICBhbGxDb3VudDogcGFyYW1ldGVycy5BbGxDb3VudEZpZWxkIHwgcnZhbDogbW86YWxsQ29sdW1ucyxcclxuICAgICAgICAgICAgICAgIGJhY2tDb2xvcjogKGNvbHVtbnNbMF0uQ2FwdGlvbiB8IHJ2YWw6IG1vOmNvbHVtbnMpLFxyXG4gICAgICAgICAgICAgICAgaXNDaGVja2VkOiBpc0NoZWNrZWQsXHJcbiAgICAgICAgICAgICAgICBpY29uOiBwYXJhbWV0ZXJzLkljb25GaWVsZCB8IHJ2YWw6IG1vOmFsbENvbHVtbnM6dHJ1ZSxcclxuICAgICAgICAgICAgICAgIGlzQnVpbHRpbjogaXNCdWlsdGluXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICBcIlxyXG4gICAgPjwvbmctY29udGFpbmVyPlxyXG48L25nLWNvbnRhaW5lcj5cclxuQGlmIChpc0xhc3RCdWlsdGluKSB7XHJcbjxsaSBmZC1saXN0LWl0ZW0gY2xhc3M9XCJzcGFjZVwiPlxyXG4gICAgPHNwYW4gZmQtbGlzdC10aXRsZT48L3NwYW4+XHJcbjwvbGk+XHJcbn1cclxuPCEtLSA8bmctY29udGFpbmVyICpuZ0lmPVwibGFzdFwiPlxyXG48dWwgZmQtbGlzdD5cclxuICA8bGkgZmQtbGlzdC1ncm91cC1oZWFkZXI+XHJcbiAgICA8c3BhbiBmZC1saXN0LXRpdGxlIHN0eWxlPVwiYmFja2dyb3VuZDojZjdmN2Y3XCI+PC9zcGFuPlxyXG4gIDwvbGk+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbW8yIG9mIG1vRGF0YUxpc3RcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIn2LPbjNiz2KrZhduMJyB8IHJ2YWw6IG1vMjphbGxDb2x1bW5zXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtVGVtcGxhdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogcGFyYW1ldGVycy5DYXJ0YWJsZUdyb3VwRmllbGQgfCBydmFsOiBtbzI6YWxsQ29sdW1uczp0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5yZWFkQ291bnQ6IHBhcmFtZXRlcnMuVW5yZWFkQ291bnRGaWVsZCB8IHJ2YWw6IG1vMjphbGxDb2x1bW5zLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsQ291bnQ6IHBhcmFtZXRlcnMuQWxsQ291bnRGaWVsZCB8IHJ2YWw6IG1vMjphbGxDb2x1bW5zLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja0NvbG9yOiBjb2x1bW5zWzBdLkNhcHRpb24gfCBydmFsOiBtbzI6Y29sdW1ucyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzQ2hlY2tlZDogaXNDaGVja2VkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgPjwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L25nLWNvbnRhaW5lcj5cclxuPC91bD5cclxuPC9uZy1jb250YWluZXI+IC0tPlxyXG5cclxuPCEtLSA8bGkgZmQtbGlzdC1pdGVtIFtzZWxlY3RlZF09XCJpc0NoZWNrZWQgPyB0cnVlIDogZmFsc2VcIiAoY2xpY2spPVwib25Sb3dDaGVjaygpXCIgW2ludGVyYWN0aXZlXT1cInRydWVcIj5cclxuPGRpdiBjbGFzcz1cInRpdGxlLWNvbnRhaW5lclwiPlxyXG4gIDxkaXYgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJjb2x1bW5zWzBdLkNhcHRpb24gfCBydmFsOiBtbzpjb2x1bW5zXCIgc3R5bGU9XCJ3aWR0aDogMC4ycmVtOyBoZWlnaHQ6IDEwMCVcIj48L2Rpdj5cclxuICA8c3BhbiBmZC1saXN0LXRpdGxlPlxyXG4gICAgPGRpdiBzdHlsZT1cImhlaWdodDogMTAwJTsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlclwiPlxyXG4gICAgICA8c3BhbiBbc3R5bGUuZm9udFNpemVdPVwicGFyYW1ldGVycy5VbnJlYWRDb3VudEZpZWxkIHwgcnZhbDogbW86YWxsQ29sdW1uczoodHJ1ZSA/ICdib2xkJyA6IG51bGwpXCJcclxuICAgICAgICA+e3sgcGFyYW1ldGVycy5DYXJ0YWJsZUdyb3VwRmllbGQgfCBydmFsOiBtbzphbGxDb2x1bW5zOnRydWUgfX1cclxuICAgICAgPC9zcGFuPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicGFyYW1ldGVycy5VbnJlYWRDb3VudEZpZWxkIHwgcnZhbDogbW86YWxsQ29sdW1uczp0cnVlXCI+XHJcbiAgICAgICAgPHN0cm9uZyBzdHlsZT1cInBhZGRpbmc6IDAgMnB4OyBkaXJlY3Rpb246IGx0clwiXHJcbiAgICAgICAgICA+KHt7IHBhcmFtZXRlcnMuVW5yZWFkQ291bnRGaWVsZCB8IHJ2YWw6IG1vOmFsbENvbHVtbnM6dHJ1ZSB9fSk8L3N0cm9uZ1xyXG4gICAgICAgICAgPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxzcGFuIHN0eWxlPVwicGFkZGluZzogMCA1cHhcIj57eyBwYXJhbWV0ZXJzLkFsbENvdW50RmllbGQgfCBydmFsOiBtbzphbGxDb2x1bW5zOnRydWUgfX08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zcGFuPlxyXG4gIDwvZGl2PlxyXG48L2xpPiAtLT5cclxuPG5nLXRlbXBsYXRlXHJcbiAgICAjaXRlbVRlbXBsYXRlXHJcbiAgICBsZXQtY2FwdGlvblxyXG4gICAgbGV0LXVucmVhZENvdW50PVwidW5yZWFkQ291bnRcIlxyXG4gICAgbGV0LWFsbENvdW50PVwiYWxsQ291bnRcIlxyXG4gICAgbGV0LWJhY2tDb2xvcj1cImJhY2tDb2xvclwiXHJcbiAgICBsZXQtaXNBbGw9XCJpc0FsbFwiXHJcbiAgICBsZXQtaXNDaGVja2VkPVwiaXNDaGVja2VkXCJcclxuICAgIGxldC1pY29uPVwiaWNvblwiXHJcbiAgICBsZXQtaXNCdWlsdGluPVwiaXNCdWlsdGluXCJcclxuPlxyXG4gICAgQGlmIChpc0J1aWx0aW4gfHwgYWxsQ291bnQgPiAwIHx8IGlzQWxsKSB7XHJcbiAgICA8bGkgZmQtbGlzdC1pdGVtIFtzZWxlY3RlZF09XCJpc0NoZWNrZWQgPyB0cnVlIDogZmFsc2VcIiAoY2xpY2spPVwib25DbGljayhpc0FsbClcIiBbaW50ZXJhY3RpdmVdPVwidHJ1ZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cImJhY2tDb2xvclwiIHN0eWxlPVwid2lkdGg6IDAuMnJlbTsgaGVpZ2h0OiAxMDAlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIEBpZiAoaWNvbikge1xyXG4gICAgICAgICAgICA8aSBmZC1saXN0LWljb24gW2dseXBoXT1cImljb25cIj48L2k+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT5cclxuICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDEwMCU7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGNvbHVtbi1nYXA6IDVweFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIEBpZiAodW5yZWFkQ291bnQgJiYgdW5yZWFkQ291bnQgPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz57eyBjYXB0aW9uIH19PC9zdHJvbmc+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN0cm9uZyBzdHlsZT1cInBhZGRpbmc6IDAgMnB4OyBkaXJlY3Rpb246IGx0clwiPih7eyB1bnJlYWRDb3VudCB9fSk8L3N0cm9uZz5cclxuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBjYXB0aW9uIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIH0gQGlmIChhbGxDb3VudCAmJiBhbGxDb3VudCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT1cInBhZGRpbmc6IDAgNXB4XCI+e3sgYWxsQ291bnQgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbGk+XHJcbiAgICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
@@ -0,0 +1,22 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { FillAllLayoutControls, LayoutPanelBaseComponent, LayoutService } from 'barsa-novin-ray-core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../barsa-base-panel/barsa-base-layout-panel.component";
5
+ import * as i2 from "@angular/common";
6
+ export class BarsaHorizontalFlexPanelComponent extends LayoutPanelBaseComponent {
7
+ constructor() {
8
+ super(...arguments);
9
+ this.layoutControls = [];
10
+ }
11
+ ngOnInit() {
12
+ super.ngOnInit();
13
+ FillAllLayoutControls(this.config, this.layoutControls);
14
+ }
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaHorizontalFlexPanelComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
16
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BarsaHorizontalFlexPanelComponent, selector: "bsu-barsa-horizontal-flex-panel", providers: [LayoutService], usesInheritance: true, ngImport: i0, template: "<bsu-barsa-base-layout-panel\n [layoutControls]=\"layoutControls\"\n [maxLabelWidth]=\"(maxLabelWidth$ | async)!!\"\n [isSearchPanel]=\"isSearchPanel\"\n [config]=\"config\"\n [style.gap]=\"parameters?.Gap\"\n></bsu-barsa-base-layout-panel>\n", styles: [":host bsu-barsa-base-layout-panel{display:flex;flex-direction:row-reverse;justify-content:start}:host bsu-barsa-base-layout-panel ::ng-deep bsu-layout-control{flex:unset!important;width:auto!important}:host bsu-barsa-base-layout-panel ::ng-deep .grid-col{padding:0!important}:host bsu-barsa-base-layout-panel ::ng-deep bnrc-dynamic-layout{display:none}\n"], dependencies: [{ kind: "component", type: i1.BarsaBaseLayoutPanelComponent, selector: "bsu-barsa-base-layout-panel", inputs: ["layoutControls", "config", "maxLabelWidth", "isSearchPanel"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
17
+ }
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaHorizontalFlexPanelComponent, decorators: [{
19
+ type: Component,
20
+ args: [{ selector: 'bsu-barsa-horizontal-flex-panel', changeDetection: ChangeDetectionStrategy.OnPush, providers: [LayoutService], standalone: false, template: "<bsu-barsa-base-layout-panel\n [layoutControls]=\"layoutControls\"\n [maxLabelWidth]=\"(maxLabelWidth$ | async)!!\"\n [isSearchPanel]=\"isSearchPanel\"\n [config]=\"config\"\n [style.gap]=\"parameters?.Gap\"\n></bsu-barsa-base-layout-panel>\n", styles: [":host bsu-barsa-base-layout-panel{display:flex;flex-direction:row-reverse;justify-content:start}:host bsu-barsa-base-layout-panel ::ng-deep bsu-layout-control{flex:unset!important;width:auto!important}:host bsu-barsa-base-layout-panel ::ng-deep .grid-col{padding:0!important}:host bsu-barsa-base-layout-panel ::ng-deep bnrc-dynamic-layout{display:none}\n"] }]
21
+ }] });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtaG9yaXpvbnRhbC1mbGV4LXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2JhcnNhLWhvcml6b250YWwtZmxleC1wYW5lbC9iYXJzYS1ob3Jpem9udGFsLWZsZXgtcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtaG9yaXpvbnRhbC1mbGV4LXBhbmVsL2JhcnNhLWhvcml6b250YWwtZmxleC1wYW5lbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFDSCxxQkFBcUIsRUFFckIsd0JBQXdCLEVBQ3hCLGFBQWEsRUFFaEIsTUFBTSxzQkFBc0IsQ0FBQzs7OztBQVU5QixNQUFNLE9BQU8saUNBQWtDLFNBQVEsd0JBQXdCO0lBUi9FOztRQVNJLG1CQUFjLEdBQW9CLEVBQUUsQ0FBQztLQU14QztJQUpHLFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIscUJBQXFCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDNUQsQ0FBQzsrR0FOUSxpQ0FBaUM7bUdBQWpDLGlDQUFpQywwREFIL0IsQ0FBQyxhQUFhLENBQUMsaURDZDlCLG1RQU9BOzs0RkRVYSxpQ0FBaUM7a0JBUjdDLFNBQVM7K0JBQ0ksaUNBQWlDLG1CQUcxQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsYUFBYSxDQUFDLGNBQ2QsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gICAgRmlsbEFsbExheW91dENvbnRyb2xzLFxyXG4gICAgTWV0YW9iamVjdERhdGFNb2RlbCxcclxuICAgIExheW91dFBhbmVsQmFzZUNvbXBvbmVudCxcclxuICAgIExheW91dFNlcnZpY2UsXHJcbiAgICBMYXlvdXRTZXR0aW5nXHJcbn0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JzdS1iYXJzYS1ob3Jpem9udGFsLWZsZXgtcGFuZWwnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JhcnNhLWhvcml6b250YWwtZmxleC1wYW5lbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9iYXJzYS1ob3Jpem9udGFsLWZsZXgtcGFuZWwuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgcHJvdmlkZXJzOiBbTGF5b3V0U2VydmljZV0sXHJcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmFyc2FIb3Jpem9udGFsRmxleFBhbmVsQ29tcG9uZW50IGV4dGVuZHMgTGF5b3V0UGFuZWxCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIGxheW91dENvbnRyb2xzOiBMYXlvdXRTZXR0aW5nW10gPSBbXTtcclxuICAgIHBhcmFtZXRlcnM6IEhvcml6b250YWxGbGV4UGFuZWxTZXR0aW5ncztcclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgRmlsbEFsbExheW91dENvbnRyb2xzKHRoaXMuY29uZmlnLCB0aGlzLmxheW91dENvbnRyb2xzKTtcclxuICAgIH1cclxufVxyXG5pbnRlcmZhY2UgSG9yaXpvbnRhbEZsZXhQYW5lbFNldHRpbmdzIGV4dGVuZHMgTWV0YW9iamVjdERhdGFNb2RlbCB7XHJcbiAgICBHYXA6IHN0cmluZztcclxufVxyXG4iLCI8YnN1LWJhcnNhLWJhc2UtbGF5b3V0LXBhbmVsXG4gICAgW2xheW91dENvbnRyb2xzXT1cImxheW91dENvbnRyb2xzXCJcbiAgICBbbWF4TGFiZWxXaWR0aF09XCIobWF4TGFiZWxXaWR0aCQgfCBhc3luYykhIVwiXG4gICAgW2lzU2VhcmNoUGFuZWxdPVwiaXNTZWFyY2hQYW5lbFwiXG4gICAgW2NvbmZpZ109XCJjb25maWdcIlxuICAgIFtzdHlsZS5nYXBdPVwicGFyYW1ldGVycz8uR2FwXCJcbj48L2JzdS1iYXJzYS1iYXNlLWxheW91dC1wYW5lbD5cbiJdfQ==
@@ -0,0 +1,37 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { LayoutPanelBaseComponent, LayoutService, FillAllLayoutControls } 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/link";
7
+ export class BarsaLinkableItemsPanelComponent extends LayoutPanelBaseComponent {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.layoutControls = [];
11
+ this.visibleControls = [];
12
+ this.hideControls = [];
13
+ }
14
+ ngOnInit() {
15
+ super.ngOnInit();
16
+ FillAllLayoutControls(this.config, this.layoutControls);
17
+ this.layoutControls.forEach((c, index) => {
18
+ if (index === 0) {
19
+ this.visibleControls.push(c);
20
+ }
21
+ else {
22
+ this.hideControls.push(c);
23
+ }
24
+ });
25
+ }
26
+ onAddToVisibleControls(item) {
27
+ this.visibleControls.push(item);
28
+ this.hideControls = this.hideControls.filter((c) => c.Caption !== item.Caption);
29
+ }
30
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaLinkableItemsPanelComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
31
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BarsaLinkableItemsPanelComponent, selector: "bsu-barsa-linkable-items-panel", providers: [LayoutService], usesInheritance: true, ngImport: i0, template: "@for (item of visibleControls; track item; let i = $index) {\r\n<ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: {\r\n $implicit: item,\r\n selector: 'bsu-layout-control',\r\n name: 'LayoutControlComponent',\r\n index: i\r\n }\r\n \"\r\n></ng-container>\r\n}\r\n<ng-template\r\n #dynamicLayout\r\n let-index\r\n let-config\r\n let-selector=\"selector\"\r\n let-maxLabelWidth=\"maxLabelWidth\"\r\n let-name=\"name\"\r\n>\r\n <bnrc-dynamic-layout\r\n [config]=\"config\"\r\n [selector]=\"selector\"\r\n [name]=\"name\"\r\n [module]=\"'BarsaSapUi'\"\r\n [moduleFileName]=\"'BarsaSapUi'\"\r\n [maxLabelWidth]=\"(maxLabelWidth$ | async)!!\"\r\n [flex]=\"isSearchPanel ? 'unset' : config.Bounds.width\"\r\n [isSearchPanel]=\"isSearchPanel\"\r\n >\r\n </bnrc-dynamic-layout>\r\n</ng-template>\r\n<div style=\"display: flex; column-gap: 3px; padding: 0 5px\">\r\n @for (item of hideControls; track item; let i = $index) {\r\n <a fd-link [attr.aria-label]=\"item.Caption\" (click)=\"onAddToVisibleControls(item)\"> {{ item.Caption }}</a>\r\n @if (i < hideControls.length - 1) {\r\n <span>/</span>\r\n } }\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.DynamicLayoutComponent, selector: "bnrc-dynamic-layout", inputs: ["selector", "module", "name", "parameters", "moduleFileName", "flex", "config", "maxLabelWidth", "hasHorizontalText", "isSearchPanel"] }, { kind: "component", type: i3.LinkComponent, selector: "[fdLink], [fd-link]", inputs: ["class", "emphasized", "disabled", "inverted", "subtle", "undecorated"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
32
+ }
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaLinkableItemsPanelComponent, decorators: [{
34
+ type: Component,
35
+ args: [{ selector: 'bsu-barsa-linkable-items-panel', changeDetection: ChangeDetectionStrategy.OnPush, providers: [LayoutService], standalone: false, template: "@for (item of visibleControls; track item; let i = $index) {\r\n<ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: {\r\n $implicit: item,\r\n selector: 'bsu-layout-control',\r\n name: 'LayoutControlComponent',\r\n index: i\r\n }\r\n \"\r\n></ng-container>\r\n}\r\n<ng-template\r\n #dynamicLayout\r\n let-index\r\n let-config\r\n let-selector=\"selector\"\r\n let-maxLabelWidth=\"maxLabelWidth\"\r\n let-name=\"name\"\r\n>\r\n <bnrc-dynamic-layout\r\n [config]=\"config\"\r\n [selector]=\"selector\"\r\n [name]=\"name\"\r\n [module]=\"'BarsaSapUi'\"\r\n [moduleFileName]=\"'BarsaSapUi'\"\r\n [maxLabelWidth]=\"(maxLabelWidth$ | async)!!\"\r\n [flex]=\"isSearchPanel ? 'unset' : config.Bounds.width\"\r\n [isSearchPanel]=\"isSearchPanel\"\r\n >\r\n </bnrc-dynamic-layout>\r\n</ng-template>\r\n<div style=\"display: flex; column-gap: 3px; padding: 0 5px\">\r\n @for (item of hideControls; track item; let i = $index) {\r\n <a fd-link [attr.aria-label]=\"item.Caption\" (click)=\"onAddToVisibleControls(item)\"> {{ item.Caption }}</a>\r\n @if (i < hideControls.length - 1) {\r\n <span>/</span>\r\n } }\r\n</div>\r\n" }]
36
+ }] });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtbGlua2FibGUtaXRlbXMtcGFuZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtbGlua2FibGUtaXRlbXMtcGFuZWwvYmFyc2EtbGlua2FibGUtaXRlbXMtcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtbGlua2FibGUtaXRlbXMtcGFuZWwvYmFyc2EtbGlua2FibGUtaXRlbXMtcGFuZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsYUFBYSxFQUFpQixxQkFBcUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7OztBQVVySCxNQUFNLE9BQU8sZ0NBQWlDLFNBQVEsd0JBQXdCO0lBUjlFOztRQVNJLG1CQUFjLEdBQW9CLEVBQUUsQ0FBQztRQUNyQyxvQkFBZSxHQUFvQixFQUFFLENBQUM7UUFDdEMsaUJBQVksR0FBb0IsRUFBRSxDQUFDO0tBZ0J0QztJQWZHLFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIscUJBQXFCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDckMsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakMsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlCLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxzQkFBc0IsQ0FBQyxJQUFtQjtRQUN0QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwRixDQUFDOytHQWxCUSxnQ0FBZ0M7bUdBQWhDLGdDQUFnQyx5REFIOUIsQ0FBQyxhQUFhLENBQUMsaURDUjlCLHN4Q0F3Q0E7OzRGRDdCYSxnQ0FBZ0M7a0JBUjVDLFNBQVM7K0JBQ0ksZ0NBQWdDLG1CQUd6Qix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsYUFBYSxDQUFDLGNBQ2QsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMYXlvdXRQYW5lbEJhc2VDb21wb25lbnQsIExheW91dFNlcnZpY2UsIExheW91dFNldHRpbmcsIEZpbGxBbGxMYXlvdXRDb250cm9scyB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtYmFyc2EtbGlua2FibGUtaXRlbXMtcGFuZWwnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JhcnNhLWxpbmthYmxlLWl0ZW1zLXBhbmVsLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2JhcnNhLWxpbmthYmxlLWl0ZW1zLXBhbmVsLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHByb3ZpZGVyczogW0xheW91dFNlcnZpY2VdLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIEJhcnNhTGlua2FibGVJdGVtc1BhbmVsQ29tcG9uZW50IGV4dGVuZHMgTGF5b3V0UGFuZWxCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIGxheW91dENvbnRyb2xzOiBMYXlvdXRTZXR0aW5nW10gPSBbXTtcclxuICAgIHZpc2libGVDb250cm9sczogTGF5b3V0U2V0dGluZ1tdID0gW107XHJcbiAgICBoaWRlQ29udHJvbHM6IExheW91dFNldHRpbmdbXSA9IFtdO1xyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICBGaWxsQWxsTGF5b3V0Q29udHJvbHModGhpcy5jb25maWcsIHRoaXMubGF5b3V0Q29udHJvbHMpO1xyXG4gICAgICAgIHRoaXMubGF5b3V0Q29udHJvbHMuZm9yRWFjaCgoYywgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgaWYgKGluZGV4ID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZpc2libGVDb250cm9scy5wdXNoKGMpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5oaWRlQ29udHJvbHMucHVzaChjKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgb25BZGRUb1Zpc2libGVDb250cm9scyhpdGVtOiBMYXlvdXRTZXR0aW5nKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy52aXNpYmxlQ29udHJvbHMucHVzaChpdGVtKTtcclxuICAgICAgICB0aGlzLmhpZGVDb250cm9scyA9IHRoaXMuaGlkZUNvbnRyb2xzLmZpbHRlcigoYykgPT4gYy5DYXB0aW9uICE9PSBpdGVtLkNhcHRpb24pO1xyXG4gICAgfVxyXG59XHJcbiIsIkBmb3IgKGl0ZW0gb2YgdmlzaWJsZUNvbnRyb2xzOyB0cmFjayBpdGVtOyBsZXQgaSA9ICRpbmRleCkge1xyXG48bmctY29udGFpbmVyXHJcbiAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxyXG4gICAgICAgIGR5bmFtaWNMYXlvdXQ7XHJcbiAgICAgICAgY29udGV4dDoge1xyXG4gICAgICAgICAgICAkaW1wbGljaXQ6IGl0ZW0sXHJcbiAgICAgICAgICAgIHNlbGVjdG9yOiAnYnN1LWxheW91dC1jb250cm9sJyxcclxuICAgICAgICAgICAgbmFtZTogJ0xheW91dENvbnRyb2xDb21wb25lbnQnLFxyXG4gICAgICAgICAgICBpbmRleDogaVxyXG4gICAgICAgIH1cclxuICAgIFwiXHJcbj48L25nLWNvbnRhaW5lcj5cclxufVxyXG48bmctdGVtcGxhdGVcclxuICAgICNkeW5hbWljTGF5b3V0XHJcbiAgICBsZXQtaW5kZXhcclxuICAgIGxldC1jb25maWdcclxuICAgIGxldC1zZWxlY3Rvcj1cInNlbGVjdG9yXCJcclxuICAgIGxldC1tYXhMYWJlbFdpZHRoPVwibWF4TGFiZWxXaWR0aFwiXHJcbiAgICBsZXQtbmFtZT1cIm5hbWVcIlxyXG4+XHJcbiAgICA8Ym5yYy1keW5hbWljLWxheW91dFxyXG4gICAgICAgIFtjb25maWddPVwiY29uZmlnXCJcclxuICAgICAgICBbc2VsZWN0b3JdPVwic2VsZWN0b3JcIlxyXG4gICAgICAgIFtuYW1lXT1cIm5hbWVcIlxyXG4gICAgICAgIFttb2R1bGVdPVwiJ0JhcnNhU2FwVWknXCJcclxuICAgICAgICBbbW9kdWxlRmlsZU5hbWVdPVwiJ0JhcnNhU2FwVWknXCJcclxuICAgICAgICBbbWF4TGFiZWxXaWR0aF09XCIobWF4TGFiZWxXaWR0aCQgfCBhc3luYykhIVwiXHJcbiAgICAgICAgW2ZsZXhdPVwiaXNTZWFyY2hQYW5lbCA/ICd1bnNldCcgOiBjb25maWcuQm91bmRzLndpZHRoXCJcclxuICAgICAgICBbaXNTZWFyY2hQYW5lbF09XCJpc1NlYXJjaFBhbmVsXCJcclxuICAgID5cclxuICAgIDwvYm5yYy1keW5hbWljLWxheW91dD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGNvbHVtbi1nYXA6IDNweDsgcGFkZGluZzogMCA1cHhcIj5cclxuICAgIEBmb3IgKGl0ZW0gb2YgaGlkZUNvbnRyb2xzOyB0cmFjayBpdGVtOyBsZXQgaSA9ICRpbmRleCkge1xyXG4gICAgPGEgZmQtbGluayBbYXR0ci5hcmlhLWxhYmVsXT1cIml0ZW0uQ2FwdGlvblwiIChjbGljayk9XCJvbkFkZFRvVmlzaWJsZUNvbnRyb2xzKGl0ZW0pXCI+IHt7IGl0ZW0uQ2FwdGlvbiB9fTwvYT5cclxuICAgIEBpZiAoaSA8IGhpZGVDb250cm9scy5sZW5ndGggLSAxKSB7XHJcbiAgICA8c3Bhbj4vPC9zcGFuPlxyXG4gICAgfSB9XHJcbjwvZGl2PlxyXG4iXX0=
@@ -0,0 +1,41 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { UploadService } from 'barsa-novin-ray-core';
3
+ import { UiFileLinearListBoxComponent } from '../ui-file-linear-list-box/ui-file-linear-list-box.component';
4
+ import { BarsaApi } from 'barsa-novin-ray-core';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/forms";
7
+ import * as i2 from "@fundamental-ngx/core/avatar";
8
+ import * as i3 from "@fundamental-ngx/core/content-density";
9
+ import * as i4 from "@fundamental-ngx/core/button";
10
+ import * as i5 from "@fundamental-ngx/core/file-uploader";
11
+ import * as i6 from "@fundamental-ngx/core/form";
12
+ import * as i7 from "@fundamental-ngx/core/icon";
13
+ import * as i8 from "@fundamental-ngx/core/list";
14
+ import * as i9 from "@fundamental-ngx/core/object-status";
15
+ import * as i10 from "@fundamental-ngx/core/toolbar";
16
+ import * as i11 from "@fundamental-ngx/core/slider";
17
+ import * as i12 from "@fundamental-ngx/core/progress-indicator";
18
+ import * as i13 from "@angular/common";
19
+ import * as i14 from "barsa-novin-ray-core";
20
+ import * as i15 from "../upload-file-status.pipe";
21
+ export class BarsaListFileLinearComponent extends UiFileLinearListBoxComponent {
22
+ onRetry(fileAttachment) {
23
+ this.retry(fileAttachment);
24
+ }
25
+ onHandleRenameFile(file) {
26
+ if (!file.inEdit) {
27
+ file.inEdit = true;
28
+ }
29
+ else {
30
+ file.inEdit = false;
31
+ BarsaApi.Common.Ajax.GetServerData('Form94.RenameFileAttachment', { renameModel: { Id: file.Id, Name: file.FileName } }, (_) => { }, (_) => { }, null, this);
32
+ }
33
+ }
34
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaListFileLinearComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
35
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BarsaListFileLinearComponent, selector: "bsu-barsa-list-file-linear", providers: [UploadService], usesInheritance: true, ngImport: i0, template: "@if (parameters.ModeValue === '1') {\r\n<ul fd-list class=\"file-viewer-attachments\">\r\n @for (file of value; track file) { @if (!file.IsDeleted) {\r\n <li fd-list-item style=\"background-color: #f5f5f5; margin: 0 0 0 30%; width: 100%\">\r\n @if (file.inEdit) {\r\n <input\r\n style=\"width: 90%\"\r\n fd-form-control\r\n [(ngModel)]=\"file.FileName\"\r\n (click)=\"$event.preventDefault(); $event.stopPropagation()\"\r\n (keydown.enter)=\"onHandleRenameFile(file)\"\r\n />\r\n } @if (!file.inEdit) {\r\n <span fd-list-title>\r\n {{ file.FileName }}\r\n </span>\r\n }\r\n <span fd-list-secondary>\r\n <button\r\n ariaLabel=\"Edit Or Save\"\r\n fdType=\"transparent\"\r\n class=\"fd-button--compact\"\r\n fd-button\r\n fdCompact\r\n [glyph]=\"file.inEdit ? 'save' : 'edit'\"\r\n (click)=\"onHandleRenameFile(file)\"\r\n ></button>\r\n @if (!file.inEdit) {\r\n <button\r\n ariaLabel=\"Remove\"\r\n fdType=\"transparent\"\r\n title=\"Remove\"\r\n fd-button\r\n glyph=\"delete\"\r\n (click)=\"onFileDeleted(file.Id)\"\r\n ></button>\r\n }\r\n </span>\r\n </li>\r\n } } @if (valueExtra$ | async; as valueExtra) { @for (file of valueExtra | keyvalue; track file) { @if\r\n (file.value.UploadState === 'Uploading') {\r\n <li style=\"background-color: #f5f5f5; margin: 0 0 0 30%; width: 100%\">\r\n @if (file.value.Progress) {\r\n <fd-progress-indicator state=\"informative\" [valueNow]=\"file.value.Progress\"></fd-progress-indicator>\r\n }\r\n </li>\r\n } } }\r\n</ul>\r\n} @if (parameters.ModeValue === '2') {\r\n<ul fd-list [byline]=\"true\">\r\n @if (fileCount$ | async; as fileCount) { @if (fileCount === 0) {\r\n <li fd-list-item>\r\n <div fd-list-content style=\"text-align: center\">\r\n <span>{{ 'NoFiles' | bbbTranslate }}</span>\r\n </div>\r\n </li>\r\n } } @for (file of value; track file) { @if (valueExtra$ | async; as valueExtra) { @if (!file.IsDeleted) {\r\n <li fd-list-item>\r\n <span fd-list-thumbnail>\r\n @if (valueExtra[file.Id].IsIcon) {\r\n <fd-icon [glyph]=\"valueExtra[file.Id].FileUrl\"></fd-icon>\r\n } @else {\r\n <fd-avatar size=\"m\" [image]=\"valueExtra[file.Id].FileUrl || ''\"></fd-avatar>\r\n }\r\n </span>\r\n <!-- for byline, fd-list-content is mandatory -->\r\n <div fd-list-content>\r\n <div fd-list-title>{{ file.FileName }}</div>\r\n <div fd-list-byline [twoCol]=\"true\">\r\n <div fd-list-byline-left></div>\r\n <div fd-list-byline-right style=\"display: flex; justify-content: flex-end\">\r\n <fd-toolbar [fdType]=\"'transparent'\" [clearBorder]=\"true\">\r\n @if (file.IsNew) {\r\n <span\r\n fd-toolbar-item\r\n fd-object-status\r\n [status]=\"file.Id | uploadFileStatus: valueExtra\"\r\n [label]=\"valueExtra[file.Id]?.UploadState || ''\"\r\n [title]=\"valueExtra[file.Id]?.UploadState\"\r\n [aria-label]=\"'File Upload Status Is ' + valueExtra[file.Id]?.UploadState\"\r\n ></span>\r\n @if (valueExtra[file.Id].UploadState === 'Uploading') {\r\n <fd-slider\r\n [contentDensity]=\"(contentDensity$ | async)!!\"\r\n [(ngModel)]=\"valueExtra[file.Id].Progress\"\r\n [name]=\"'filerLinear_' + id\"\r\n fd-toolbar-item\r\n [id]=\"id\"\r\n [min]=\"0\"\r\n [max]=\"100\"\r\n [step]=\"1\"\r\n >\r\n </fd-slider>\r\n } }\r\n </fd-toolbar>\r\n </div>\r\n </div>\r\n </div>\r\n @if ((disableOrReadonly$ | async) === false && valueExtra[file.Id].UploadState !== 'Uploading') {\r\n <button fd-button fdType=\"transparent\" glyph=\"decline\" (click)=\"onFileDeleted(file.Id)\"></button>\r\n } @if (valueExtra[file.Id].UploadState === 'Uploading') {\r\n <button fd-button [fdType]=\"'transparent'\" [glyph]=\"'stop'\" (click)=\"onTerminate(file)\"></button>\r\n } @if (valueExtra[file.Id].UploadState === 'Error') {\r\n <button fd-button [fdType]=\"'transparent'\" [glyph]=\"'refresh'\" (click)=\"onRetry(file)\"></button>\r\n }\r\n </li>\r\n } } }\r\n</ul>\r\n} @if ((disableOrReadonly$ | async) !== true) {\r\n<fd-toolbar\r\n style=\"display: block\"\r\n [style.height.px]=\"parameters.ModeValue === '1' ? 0 : null\"\r\n [fdType]=\"'transparent'\"\r\n [clearBorder]=\"true\"\r\n>\r\n <fd-file-uploader\r\n fd-toolbar-item\r\n [class.hide-file-uploader]=\"parameters?.HideAttachButton\"\r\n [id]=\"id\"\r\n [name]=\"id\"\r\n [placeholder]=\"'AttachFile' | bbbTranslate\"\r\n [buttonLabel]=\"'AttachFile' | bbbTranslate\"\r\n [buttonAriaLabel]=\"'AttachFile' | bbbTranslate\"\r\n [accept]=\"Setting.ValidExtensions || ''\"\r\n [multiple]=\"maxFileCount > 1\"\r\n (selectedFilesChanged)=\"onFileSelection($event)\"\r\n [contentDensity]=\"(contentDensity$ | async)!!\"\r\n ></fd-file-uploader>\r\n</fd-toolbar>\r\n}\r\n", styles: [":host{display:block;width:100%;height:100%}:host ::ng-deep .fd-slider__handle{display:none}:host ::ng-deep .fd-file-uploader input{display:none}:host ::ng-deep fd-file-uploader .fd-button{background-color:var(--sapButton_Lite_Background);border-color:var(--sapButton_Lite_BorderColor);color:var(--sapButton_Lite_TextColor)}:host .hide-file-uploader{visibility:hidden;height:0;width:0}\n"], dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.AvatarComponent, selector: "fd-avatar", inputs: ["class", "id", "ariaLabel", "ariaLabelledby", "label", "size", "font", "glyph", "zoomGlyph", "circle", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "colorIndication", "random", "clickable", "valueState", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "directive", type: i3.ContentDensityDirective, selector: "[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]), [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]), [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]), [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])", inputs: ["fdContentDensity", "fdCompact", "fdCondensed", "fdCozy"], exportAs: ["fdContentDensity"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i5.FileUploaderComponent, selector: "fd-file-uploader", inputs: ["disabled", "required", "multiple", "accept", "dragndrop", "maxFileSize", "minFileSize", "id", "ariaLabel", "ariaLabelledBy", "placeholder", "buttonLabel", "buttonAriaLabel", "state", "fileLimit", "inputHidden", "width"], outputs: ["selectedFilesChanged", "selectedInvalidFiles", "onDragEnter", "onDragLeave"] }, { kind: "component", type: i6.FormControlComponent, selector: "input[fd-form-control], textarea[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "component", type: i7.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "component", type: i8.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i8.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole", "id"], outputs: ["keyDown"] }, { kind: "directive", type: i8.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i8.ListSecondaryDirective, selector: "[fd-list-secondary], [fdListSecondary]", inputs: ["type"] }, { kind: "directive", type: i8.ListBylineDirective, selector: "[fdListByline], [fd-list-byline]", inputs: ["twoCol", "wrap"] }, { kind: "directive", type: i8.ListBylineLeftDirective, selector: "[fdListBylineLeft], [fd-list-byline-left]", inputs: ["wrap"] }, { kind: "directive", type: i8.ListBylineRightDirective, selector: "[fdListBylineRight], [fd-list-byline-right]", inputs: ["status", "wrap"] }, { kind: "directive", type: i8.ListContentDirective, selector: "[fdListContent], [fd-list-content]", inputs: ["twoCol"] }, { kind: "directive", type: i8.ListThumbnailDirective, selector: "[fdListThumbnail], [fd-list-thumbnail]" }, { kind: "component", type: i9.ObjectStatusComponent, selector: "[fd-object-status]", inputs: ["class", "status", "glyph", "glyphFont", "label", "glyphAriaLabel", "indicationColor", "clickable", "inverted", "large", "secondaryIndication", "textTemplate"] }, { kind: "component", type: i10.ToolbarComponent, selector: "fd-toolbar", inputs: ["titleId", "class", "shouldOverflow", "fdType", "title", "active", "clearBorder", "forceOverflow", "tabindex", "headingLevel", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: i10.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "component", type: i11.SliderComponent, selector: "fd-slider", inputs: ["id", "class", "ariaLabelledBy", "ariaLabel", "min", "max", "step", "jump", "tickmarksBetweenLabels", "mode", "showTicks", "showTicksLabels", "customValues", "tooltipMode", "hideProgressBar", "disabled", "vertical", "value"] }, { kind: "component", type: i12.ProgressIndicatorComponent, selector: "fd-progress-indicator", inputs: ["valueText", "unit", "valueMin", "valueMax", "valueNow", "state", "animate"] }, { kind: "pipe", type: i13.AsyncPipe, name: "async" }, { kind: "pipe", type: i13.KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: i14.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i15.UploadFileStatusPipe, name: "uploadFileStatus" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
36
+ }
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaListFileLinearComponent, decorators: [{
38
+ type: Component,
39
+ args: [{ selector: 'bsu-barsa-list-file-linear', changeDetection: ChangeDetectionStrategy.OnPush, providers: [UploadService], standalone: false, template: "@if (parameters.ModeValue === '1') {\r\n<ul fd-list class=\"file-viewer-attachments\">\r\n @for (file of value; track file) { @if (!file.IsDeleted) {\r\n <li fd-list-item style=\"background-color: #f5f5f5; margin: 0 0 0 30%; width: 100%\">\r\n @if (file.inEdit) {\r\n <input\r\n style=\"width: 90%\"\r\n fd-form-control\r\n [(ngModel)]=\"file.FileName\"\r\n (click)=\"$event.preventDefault(); $event.stopPropagation()\"\r\n (keydown.enter)=\"onHandleRenameFile(file)\"\r\n />\r\n } @if (!file.inEdit) {\r\n <span fd-list-title>\r\n {{ file.FileName }}\r\n </span>\r\n }\r\n <span fd-list-secondary>\r\n <button\r\n ariaLabel=\"Edit Or Save\"\r\n fdType=\"transparent\"\r\n class=\"fd-button--compact\"\r\n fd-button\r\n fdCompact\r\n [glyph]=\"file.inEdit ? 'save' : 'edit'\"\r\n (click)=\"onHandleRenameFile(file)\"\r\n ></button>\r\n @if (!file.inEdit) {\r\n <button\r\n ariaLabel=\"Remove\"\r\n fdType=\"transparent\"\r\n title=\"Remove\"\r\n fd-button\r\n glyph=\"delete\"\r\n (click)=\"onFileDeleted(file.Id)\"\r\n ></button>\r\n }\r\n </span>\r\n </li>\r\n } } @if (valueExtra$ | async; as valueExtra) { @for (file of valueExtra | keyvalue; track file) { @if\r\n (file.value.UploadState === 'Uploading') {\r\n <li style=\"background-color: #f5f5f5; margin: 0 0 0 30%; width: 100%\">\r\n @if (file.value.Progress) {\r\n <fd-progress-indicator state=\"informative\" [valueNow]=\"file.value.Progress\"></fd-progress-indicator>\r\n }\r\n </li>\r\n } } }\r\n</ul>\r\n} @if (parameters.ModeValue === '2') {\r\n<ul fd-list [byline]=\"true\">\r\n @if (fileCount$ | async; as fileCount) { @if (fileCount === 0) {\r\n <li fd-list-item>\r\n <div fd-list-content style=\"text-align: center\">\r\n <span>{{ 'NoFiles' | bbbTranslate }}</span>\r\n </div>\r\n </li>\r\n } } @for (file of value; track file) { @if (valueExtra$ | async; as valueExtra) { @if (!file.IsDeleted) {\r\n <li fd-list-item>\r\n <span fd-list-thumbnail>\r\n @if (valueExtra[file.Id].IsIcon) {\r\n <fd-icon [glyph]=\"valueExtra[file.Id].FileUrl\"></fd-icon>\r\n } @else {\r\n <fd-avatar size=\"m\" [image]=\"valueExtra[file.Id].FileUrl || ''\"></fd-avatar>\r\n }\r\n </span>\r\n <!-- for byline, fd-list-content is mandatory -->\r\n <div fd-list-content>\r\n <div fd-list-title>{{ file.FileName }}</div>\r\n <div fd-list-byline [twoCol]=\"true\">\r\n <div fd-list-byline-left></div>\r\n <div fd-list-byline-right style=\"display: flex; justify-content: flex-end\">\r\n <fd-toolbar [fdType]=\"'transparent'\" [clearBorder]=\"true\">\r\n @if (file.IsNew) {\r\n <span\r\n fd-toolbar-item\r\n fd-object-status\r\n [status]=\"file.Id | uploadFileStatus: valueExtra\"\r\n [label]=\"valueExtra[file.Id]?.UploadState || ''\"\r\n [title]=\"valueExtra[file.Id]?.UploadState\"\r\n [aria-label]=\"'File Upload Status Is ' + valueExtra[file.Id]?.UploadState\"\r\n ></span>\r\n @if (valueExtra[file.Id].UploadState === 'Uploading') {\r\n <fd-slider\r\n [contentDensity]=\"(contentDensity$ | async)!!\"\r\n [(ngModel)]=\"valueExtra[file.Id].Progress\"\r\n [name]=\"'filerLinear_' + id\"\r\n fd-toolbar-item\r\n [id]=\"id\"\r\n [min]=\"0\"\r\n [max]=\"100\"\r\n [step]=\"1\"\r\n >\r\n </fd-slider>\r\n } }\r\n </fd-toolbar>\r\n </div>\r\n </div>\r\n </div>\r\n @if ((disableOrReadonly$ | async) === false && valueExtra[file.Id].UploadState !== 'Uploading') {\r\n <button fd-button fdType=\"transparent\" glyph=\"decline\" (click)=\"onFileDeleted(file.Id)\"></button>\r\n } @if (valueExtra[file.Id].UploadState === 'Uploading') {\r\n <button fd-button [fdType]=\"'transparent'\" [glyph]=\"'stop'\" (click)=\"onTerminate(file)\"></button>\r\n } @if (valueExtra[file.Id].UploadState === 'Error') {\r\n <button fd-button [fdType]=\"'transparent'\" [glyph]=\"'refresh'\" (click)=\"onRetry(file)\"></button>\r\n }\r\n </li>\r\n } } }\r\n</ul>\r\n} @if ((disableOrReadonly$ | async) !== true) {\r\n<fd-toolbar\r\n style=\"display: block\"\r\n [style.height.px]=\"parameters.ModeValue === '1' ? 0 : null\"\r\n [fdType]=\"'transparent'\"\r\n [clearBorder]=\"true\"\r\n>\r\n <fd-file-uploader\r\n fd-toolbar-item\r\n [class.hide-file-uploader]=\"parameters?.HideAttachButton\"\r\n [id]=\"id\"\r\n [name]=\"id\"\r\n [placeholder]=\"'AttachFile' | bbbTranslate\"\r\n [buttonLabel]=\"'AttachFile' | bbbTranslate\"\r\n [buttonAriaLabel]=\"'AttachFile' | bbbTranslate\"\r\n [accept]=\"Setting.ValidExtensions || ''\"\r\n [multiple]=\"maxFileCount > 1\"\r\n (selectedFilesChanged)=\"onFileSelection($event)\"\r\n [contentDensity]=\"(contentDensity$ | async)!!\"\r\n ></fd-file-uploader>\r\n</fd-toolbar>\r\n}\r\n", styles: [":host{display:block;width:100%;height:100%}:host ::ng-deep .fd-slider__handle{display:none}:host ::ng-deep .fd-file-uploader input{display:none}:host ::ng-deep fd-file-uploader .fd-button{background-color:var(--sapButton_Lite_Background);border-color:var(--sapButton_Lite_BorderColor);color:var(--sapButton_Lite_TextColor)}:host .hide-file-uploader{visibility:hidden;height:0;width:0}\n"] }]
40
+ }] });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtbGlzdC1maWxlLWxpbmVhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi9iYXJzYS1saXN0LWZpbGUtbGluZWFyL2JhcnNhLWxpc3QtZmlsZS1saW5lYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtbGlzdC1maWxlLWxpbmVhci9iYXJzYS1saXN0LWZpbGUtbGluZWFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLGFBQWEsRUFBc0IsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUM1RyxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztBQVVyRSxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsNEJBQTRCO0lBRTFFLE9BQU8sQ0FBQyxjQUFrQztRQUN0QyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFDRCxrQkFBa0IsQ0FBQyxJQUF3QjtRQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDdkIsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNwQixRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQzlCLDZCQUE2QixFQUM3QixFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFDckQsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFFLENBQUMsRUFDVCxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUUsQ0FBQyxFQUNULElBQUksRUFDSixJQUFJLENBQ1AsQ0FBQztRQUNOLENBQUM7SUFDTCxDQUFDOytHQW5CUSw0QkFBNEI7bUdBQTVCLDRCQUE0QixxREFIMUIsQ0FBQyxhQUFhLENBQUMsaURDVjlCLGl6TEFrSUE7OzRGRHJIYSw0QkFBNEI7a0JBUnhDLFNBQVM7K0JBQ0ksNEJBQTRCLG1CQUdyQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsYUFBYSxDQUFDLGNBQ2QsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVXBsb2FkU2VydmljZSwgRmlsZUF0dGFjaG1lbnRJbmZvIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5pbXBvcnQgeyBVaUZpbGVMaW5lYXJMaXN0Qm94Q29tcG9uZW50IH0gZnJvbSAnLi4vdWktZmlsZS1saW5lYXItbGlzdC1ib3gvdWktZmlsZS1saW5lYXItbGlzdC1ib3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWV0YW9iamVjdERhdGFNb2RlbCwgQmFyc2FBcGkgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYnN1LWJhcnNhLWxpc3QtZmlsZS1saW5lYXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JhcnNhLWxpc3QtZmlsZS1saW5lYXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vYmFyc2EtbGlzdC1maWxlLWxpbmVhci5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBwcm92aWRlcnM6IFtVcGxvYWRTZXJ2aWNlXSxcclxuICAgIHN0YW5kYWxvbmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCYXJzYUxpc3RGaWxlTGluZWFyQ29tcG9uZW50IGV4dGVuZHMgVWlGaWxlTGluZWFyTGlzdEJveENvbXBvbmVudCB7XHJcbiAgICBwYXJhbWV0ZXJzOiBCYXJzYUxpc3RGaWxlTGluZWFyU2V0dGluZztcclxuICAgIG9uUmV0cnkoZmlsZUF0dGFjaG1lbnQ6IEZpbGVBdHRhY2htZW50SW5mbyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMucmV0cnkoZmlsZUF0dGFjaG1lbnQpO1xyXG4gICAgfVxyXG4gICAgb25IYW5kbGVSZW5hbWVGaWxlKGZpbGU6IEZpbGVBdHRhY2htZW50SW5mbyk6IHZvaWQge1xyXG4gICAgICAgIGlmICghZmlsZS5pbkVkaXQpIHtcclxuICAgICAgICAgICAgZmlsZS5pbkVkaXQgPSB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGZpbGUuaW5FZGl0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIEJhcnNhQXBpLkNvbW1vbi5BamF4LkdldFNlcnZlckRhdGEoXHJcbiAgICAgICAgICAgICAgICAnRm9ybTk0LlJlbmFtZUZpbGVBdHRhY2htZW50JyxcclxuICAgICAgICAgICAgICAgIHsgcmVuYW1lTW9kZWw6IHsgSWQ6IGZpbGUuSWQsIE5hbWU6IGZpbGUuRmlsZU5hbWUgfSB9LFxyXG4gICAgICAgICAgICAgICAgKF8pID0+IHt9LFxyXG4gICAgICAgICAgICAgICAgKF8pID0+IHt9LFxyXG4gICAgICAgICAgICAgICAgbnVsbCxcclxuICAgICAgICAgICAgICAgIHRoaXNcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmludGVyZmFjZSBCYXJzYUxpc3RGaWxlTGluZWFyU2V0dGluZyBleHRlbmRzIE1ldGFvYmplY3REYXRhTW9kZWwge1xyXG4gICAgSGlkZUF0dGFjaEJ1dHRvbjogYm9vbGVhbjtcclxuICAgIE1vZGVWYWx1ZTogc3RyaW5nO1xyXG4gICAgTW9kZVZhbHVlJENhcHRpb246IHN0cmluZztcclxufVxyXG4iLCJAaWYgKHBhcmFtZXRlcnMuTW9kZVZhbHVlID09PSAnMScpIHtcclxuPHVsIGZkLWxpc3QgY2xhc3M9XCJmaWxlLXZpZXdlci1hdHRhY2htZW50c1wiPlxyXG4gICAgQGZvciAoZmlsZSBvZiB2YWx1ZTsgdHJhY2sgZmlsZSkgeyBAaWYgKCFmaWxlLklzRGVsZXRlZCkge1xyXG4gICAgPGxpIGZkLWxpc3QtaXRlbSBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7IG1hcmdpbjogMCAwIDAgMzAlOyB3aWR0aDogMTAwJVwiPlxyXG4gICAgICAgIEBpZiAoZmlsZS5pbkVkaXQpIHtcclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogOTAlXCJcclxuICAgICAgICAgICAgZmQtZm9ybS1jb250cm9sXHJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsZS5GaWxlTmFtZVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib25IYW5kbGVSZW5hbWVGaWxlKGZpbGUpXCJcclxuICAgICAgICAvPlxyXG4gICAgICAgIH0gQGlmICghZmlsZS5pbkVkaXQpIHtcclxuICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlPlxyXG4gICAgICAgICAgICB7eyBmaWxlLkZpbGVOYW1lIH19XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIH1cclxuICAgICAgICA8c3BhbiBmZC1saXN0LXNlY29uZGFyeT5cclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgYXJpYUxhYmVsPVwiRWRpdCBPciBTYXZlXCJcclxuICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtYnV0dG9uLS1jb21wYWN0XCJcclxuICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgZmRDb21wYWN0XHJcbiAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiZmlsZS5pbkVkaXQgPyAnc2F2ZScgOiAnZWRpdCdcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uSGFuZGxlUmVuYW1lRmlsZShmaWxlKVwiXHJcbiAgICAgICAgICAgID48L2J1dHRvbj5cclxuICAgICAgICAgICAgQGlmICghZmlsZS5pbkVkaXQpIHtcclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgYXJpYUxhYmVsPVwiUmVtb3ZlXCJcclxuICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcclxuICAgICAgICAgICAgICAgIHRpdGxlPVwiUmVtb3ZlXCJcclxuICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgZ2x5cGg9XCJkZWxldGVcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRmlsZURlbGV0ZWQoZmlsZS5JZClcIlxyXG4gICAgICAgICAgICA+PC9idXR0b24+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICA8L2xpPlxyXG4gICAgfSB9IEBpZiAodmFsdWVFeHRyYSQgfCBhc3luYzsgYXMgdmFsdWVFeHRyYSkgeyBAZm9yIChmaWxlIG9mIHZhbHVlRXh0cmEgfCBrZXl2YWx1ZTsgdHJhY2sgZmlsZSkgeyBAaWZcclxuICAgIChmaWxlLnZhbHVlLlVwbG9hZFN0YXRlID09PSAnVXBsb2FkaW5nJykge1xyXG4gICAgPGxpIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTsgbWFyZ2luOiAwIDAgMCAzMCU7IHdpZHRoOiAxMDAlXCI+XHJcbiAgICAgICAgQGlmIChmaWxlLnZhbHVlLlByb2dyZXNzKSB7XHJcbiAgICAgICAgPGZkLXByb2dyZXNzLWluZGljYXRvciBzdGF0ZT1cImluZm9ybWF0aXZlXCIgW3ZhbHVlTm93XT1cImZpbGUudmFsdWUuUHJvZ3Jlc3NcIj48L2ZkLXByb2dyZXNzLWluZGljYXRvcj5cclxuICAgICAgICB9XHJcbiAgICA8L2xpPlxyXG4gICAgfSB9IH1cclxuPC91bD5cclxufSBAaWYgKHBhcmFtZXRlcnMuTW9kZVZhbHVlID09PSAnMicpIHtcclxuPHVsIGZkLWxpc3QgW2J5bGluZV09XCJ0cnVlXCI+XHJcbiAgICBAaWYgKGZpbGVDb3VudCQgfCBhc3luYzsgYXMgZmlsZUNvdW50KSB7IEBpZiAoZmlsZUNvdW50ID09PSAwKSB7XHJcbiAgICA8bGkgZmQtbGlzdC1pdGVtPlxyXG4gICAgICAgIDxkaXYgZmQtbGlzdC1jb250ZW50IHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7ICdOb0ZpbGVzJyB8IGJiYlRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbGk+XHJcbiAgICB9IH0gQGZvciAoZmlsZSBvZiB2YWx1ZTsgdHJhY2sgZmlsZSkgeyBAaWYgKHZhbHVlRXh0cmEkIHwgYXN5bmM7IGFzIHZhbHVlRXh0cmEpIHsgQGlmICghZmlsZS5Jc0RlbGV0ZWQpIHtcclxuICAgIDxsaSBmZC1saXN0LWl0ZW0+XHJcbiAgICAgICAgPHNwYW4gZmQtbGlzdC10aHVtYm5haWw+XHJcbiAgICAgICAgICAgIEBpZiAodmFsdWVFeHRyYVtmaWxlLklkXS5Jc0ljb24pIHtcclxuICAgICAgICAgICAgPGZkLWljb24gW2dseXBoXT1cInZhbHVlRXh0cmFbZmlsZS5JZF0uRmlsZVVybFwiPjwvZmQtaWNvbj5cclxuICAgICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgIDxmZC1hdmF0YXIgc2l6ZT1cIm1cIiBbaW1hZ2VdPVwidmFsdWVFeHRyYVtmaWxlLklkXS5GaWxlVXJsIHx8ICcnXCI+PC9mZC1hdmF0YXI+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPCEtLSBmb3IgYnlsaW5lLCBmZC1saXN0LWNvbnRlbnQgaXMgbWFuZGF0b3J5IC0tPlxyXG4gICAgICAgIDxkaXYgZmQtbGlzdC1jb250ZW50PlxyXG4gICAgICAgICAgICA8ZGl2IGZkLWxpc3QtdGl0bGU+e3sgZmlsZS5GaWxlTmFtZSB9fTwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGZkLWxpc3QtYnlsaW5lIFt0d29Db2xdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBmZC1saXN0LWJ5bGluZS1sZWZ0PjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBmZC1saXN0LWJ5bGluZS1yaWdodCBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogZmxleC1lbmRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZmQtdG9vbGJhciBbZmRUeXBlXT1cIid0cmFuc3BhcmVudCdcIiBbY2xlYXJCb3JkZXJdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGZpbGUuSXNOZXcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtb2JqZWN0LXN0YXR1c1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0YXR1c109XCJmaWxlLklkIHwgdXBsb2FkRmlsZVN0YXR1czogdmFsdWVFeHRyYVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwidmFsdWVFeHRyYVtmaWxlLklkXT8uVXBsb2FkU3RhdGUgfHwgJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cInZhbHVlRXh0cmFbZmlsZS5JZF0/LlVwbG9hZFN0YXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhLWxhYmVsXT1cIidGaWxlIFVwbG9hZCBTdGF0dXMgSXMgJyArIHZhbHVlRXh0cmFbZmlsZS5JZF0/LlVwbG9hZFN0YXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmICh2YWx1ZUV4dHJhW2ZpbGUuSWRdLlVwbG9hZFN0YXRlID09PSAnVXBsb2FkaW5nJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmQtc2xpZGVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29udGVudERlbnNpdHldPVwiKGNvbnRlbnREZW5zaXR5JCB8IGFzeW5jKSEhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwidmFsdWVFeHRyYVtmaWxlLklkXS5Qcm9ncmVzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCInZmlsZXJMaW5lYXJfJyArIGlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cImlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttaW5dPVwiMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF4XT1cIjEwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RlcF09XCIxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLXNsaWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSB9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9mZC10b29sYmFyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIEBpZiAoKGRpc2FibGVPclJlYWRvbmx5JCB8IGFzeW5jKSA9PT0gZmFsc2UgJiYgdmFsdWVFeHRyYVtmaWxlLklkXS5VcGxvYWRTdGF0ZSAhPT0gJ1VwbG9hZGluZycpIHtcclxuICAgICAgICA8YnV0dG9uIGZkLWJ1dHRvbiBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiIGdseXBoPVwiZGVjbGluZVwiIChjbGljayk9XCJvbkZpbGVEZWxldGVkKGZpbGUuSWQpXCI+PC9idXR0b24+XHJcbiAgICAgICAgfSBAaWYgKHZhbHVlRXh0cmFbZmlsZS5JZF0uVXBsb2FkU3RhdGUgPT09ICdVcGxvYWRpbmcnKSB7XHJcbiAgICAgICAgPGJ1dHRvbiBmZC1idXR0b24gW2ZkVHlwZV09XCIndHJhbnNwYXJlbnQnXCIgW2dseXBoXT1cIidzdG9wJ1wiIChjbGljayk9XCJvblRlcm1pbmF0ZShmaWxlKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgIH0gQGlmICh2YWx1ZUV4dHJhW2ZpbGUuSWRdLlVwbG9hZFN0YXRlID09PSAnRXJyb3InKSB7XHJcbiAgICAgICAgPGJ1dHRvbiBmZC1idXR0b24gW2ZkVHlwZV09XCIndHJhbnNwYXJlbnQnXCIgW2dseXBoXT1cIidyZWZyZXNoJ1wiIChjbGljayk9XCJvblJldHJ5KGZpbGUpXCI+PC9idXR0b24+XHJcbiAgICAgICAgfVxyXG4gICAgPC9saT5cclxuICAgIH0gfSB9XHJcbjwvdWw+XHJcbn0gQGlmICgoZGlzYWJsZU9yUmVhZG9ubHkkIHwgYXN5bmMpICE9PSB0cnVlKSB7XHJcbjxmZC10b29sYmFyXHJcbiAgICBzdHlsZT1cImRpc3BsYXk6IGJsb2NrXCJcclxuICAgIFtzdHlsZS5oZWlnaHQucHhdPVwicGFyYW1ldGVycy5Nb2RlVmFsdWUgPT09ICcxJyA/IDAgOiBudWxsXCJcclxuICAgIFtmZFR5cGVdPVwiJ3RyYW5zcGFyZW50J1wiXHJcbiAgICBbY2xlYXJCb3JkZXJdPVwidHJ1ZVwiXHJcbj5cclxuICAgIDxmZC1maWxlLXVwbG9hZGVyXHJcbiAgICAgICAgZmQtdG9vbGJhci1pdGVtXHJcbiAgICAgICAgW2NsYXNzLmhpZGUtZmlsZS11cGxvYWRlcl09XCJwYXJhbWV0ZXJzPy5IaWRlQXR0YWNoQnV0dG9uXCJcclxuICAgICAgICBbaWRdPVwiaWRcIlxyXG4gICAgICAgIFtuYW1lXT1cImlkXCJcclxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0F0dGFjaEZpbGUnIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICBbYnV0dG9uTGFiZWxdPVwiJ0F0dGFjaEZpbGUnIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICBbYnV0dG9uQXJpYUxhYmVsXT1cIidBdHRhY2hGaWxlJyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgW2FjY2VwdF09XCJTZXR0aW5nLlZhbGlkRXh0ZW5zaW9ucyB8fCAnJ1wiXHJcbiAgICAgICAgW211bHRpcGxlXT1cIm1heEZpbGVDb3VudCA+IDFcIlxyXG4gICAgICAgIChzZWxlY3RlZEZpbGVzQ2hhbmdlZCk9XCJvbkZpbGVTZWxlY3Rpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgW2NvbnRlbnREZW5zaXR5XT1cIihjb250ZW50RGVuc2l0eSQgfCBhc3luYykhIVwiXHJcbiAgICA+PC9mZC1maWxlLXVwbG9hZGVyPlxyXG48L2ZkLXRvb2xiYXI+XHJcbn1cclxuIl19
@@ -0,0 +1,29 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { UploadService } from 'barsa-novin-ray-core';
3
+ import { UiFileLinearListBoxComponent } from '../ui-file-linear-list-box/ui-file-linear-list-box.component';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/forms";
6
+ import * as i2 from "@fundamental-ngx/core/avatar";
7
+ import * as i3 from "@fundamental-ngx/core/content-density";
8
+ import * as i4 from "@fundamental-ngx/core/button";
9
+ import * as i5 from "@fundamental-ngx/core/form";
10
+ import * as i6 from "@fundamental-ngx/core/icon";
11
+ import * as i7 from "@fundamental-ngx/core/list";
12
+ import * as i8 from "@fundamental-ngx/core/object-status";
13
+ import * as i9 from "@fundamental-ngx/core/toolbar";
14
+ import * as i10 from "@fundamental-ngx/core/slider";
15
+ import * as i11 from "@angular/common";
16
+ import * as i12 from "barsa-novin-ray-core";
17
+ import * as i13 from "../upload-file-status.pipe";
18
+ export class BarsaListFileLinearGmailComponent extends UiFileLinearListBoxComponent {
19
+ onRetry(fileAttachment) {
20
+ this.retry(fileAttachment);
21
+ }
22
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaListFileLinearGmailComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
23
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BarsaListFileLinearGmailComponent, selector: "bsu-barsa-list-file-linear-gmail", providers: [UploadService], usesInheritance: true, ngImport: i0, template: "<ul fd-list>\r\n @for (item of value; track item) { @if (!item.IsDeleted) {\r\n <li fd-list-item style=\"background-color: #f5f5f5; margin: 0.5rem 0 0 30%\">\r\n @if (item.inEdit) {\r\n <input\r\n style=\"width: 90%\"\r\n fd-form-control\r\n [value]=\"item.fileName\"\r\n (click)=\"$event.preventDefault(); $event.stopPropagation()\"\r\n />\r\n } @if (!item.inEdit) {\r\n <span fd-list-title>\r\n {{ item.fileName }}\r\n </span>\r\n }\r\n <span fd-list-secondary>\r\n <button\r\n ariaLabel=\"Edit Or Save\"\r\n fdType=\"transparent\"\r\n class=\"fd-button--compact\"\r\n fd-button\r\n fdCompact\r\n [glyph]=\"item.inEdit ? 'save' : 'edit'\"\r\n (click)=\"item.inEdit = !item.inEdit\"\r\n ></button>\r\n @if (!item.inEdit) {\r\n <button ariaLabel=\"Remove\" fdType=\"transparent\" title=\"Remove\" fd-button glyph=\"delete\"></button>\r\n }\r\n </span>\r\n </li>\r\n } }\r\n</ul>\r\n<ul fd-list [byline]=\"true\">\r\n @if (fileCount$ | async; as fileCount) { @if (fileCount === 0) {\r\n <li fd-list-item>\r\n <div fd-list-content style=\"text-align: center\">\r\n <span>{{ 'NoFiles' | bbbTranslate }}</span>\r\n </div>\r\n </li>\r\n } } @for (file of value; track file) { @if (valueExtra$ | async; as valueExtra) { @if (!file.IsDeleted) {\r\n <li fd-list-item>\r\n <span fd-list-thumbnail>\r\n @if (valueExtra[file.Id].IsIcon) {\r\n <fd-icon [glyph]=\"valueExtra[file.Id].FileUrl\"></fd-icon>\r\n } @else {\r\n <fd-avatar size=\"m\" [image]=\"valueExtra[file.Id].FileUrl || ''\"></fd-avatar>\r\n }\r\n </span>\r\n <!-- for byline, fd-list-content is mandatory -->\r\n <div fd-list-content>\r\n <div fd-list-title>{{ file.FileName }}</div>\r\n <div fd-list-byline [twoCol]=\"true\">\r\n <div fd-list-byline-left></div>\r\n <div fd-list-byline-right style=\"display: flex; justify-content: flex-end\">\r\n <fd-toolbar [fdType]=\"'transparent'\" [clearBorder]=\"true\">\r\n @if (file.IsNew) {\r\n <span\r\n fd-toolbar-item\r\n fd-object-status\r\n [status]=\"file.Id | uploadFileStatus: valueExtra\"\r\n [label]=\"valueExtra[file.Id]?.UploadState || ''\"\r\n [title]=\"valueExtra[file.Id]?.UploadState\"\r\n [aria-label]=\"'File Upload Status Is ' + valueExtra[file.Id]?.UploadState\"\r\n ></span>\r\n @if (valueExtra[file.Id].UploadState === 'Uploading') {\r\n <fd-slider\r\n [contentDensity]=\"(contentDensity$ | async)!!\"\r\n [(ngModel)]=\"valueExtra[file.Id].Progress\"\r\n [name]=\"'filerLinear_' + id\"\r\n fd-toolbar-item\r\n [id]=\"id\"\r\n [min]=\"0\"\r\n [max]=\"100\"\r\n [step]=\"1\"\r\n >\r\n </fd-slider>\r\n } }\r\n </fd-toolbar>\r\n </div>\r\n </div>\r\n </div>\r\n @if ((disableOrReadonly$ | async) === false && valueExtra[file.Id].UploadState !== 'Uploading') {\r\n <button fd-button fdType=\"transparent\" glyph=\"decline\" (click)=\"onFileDeleted(file.Id)\"></button>\r\n } @if (valueExtra[file.Id].UploadState === 'Uploading') {\r\n <button fd-button [fdType]=\"'transparent'\" [glyph]=\"'stop'\" (click)=\"onTerminate(file)\"></button>\r\n } @if (valueExtra[file.Id].UploadState === 'Error') {\r\n <button fd-button [fdType]=\"'transparent'\" [glyph]=\"'refresh'\" (click)=\"onRetry(file)\"></button>\r\n }\r\n </li>\r\n } } }\r\n</ul>\r\n", styles: [":host{display:block;width:100%;height:100%}:host ::ng-deep .fd-slider__handle{display:none}:host ::ng-deep .fd-file-uploader input{display:none}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.AvatarComponent, selector: "fd-avatar", inputs: ["class", "id", "ariaLabel", "ariaLabelledby", "label", "size", "font", "glyph", "zoomGlyph", "circle", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "colorIndication", "random", "clickable", "valueState", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "directive", type: i3.ContentDensityDirective, selector: "[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]), [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]), [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]), [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])", inputs: ["fdContentDensity", "fdCompact", "fdCondensed", "fdCozy"], exportAs: ["fdContentDensity"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i5.FormControlComponent, selector: "input[fd-form-control], textarea[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "component", type: i6.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "component", type: i7.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i7.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole", "id"], outputs: ["keyDown"] }, { kind: "directive", type: i7.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i7.ListSecondaryDirective, selector: "[fd-list-secondary], [fdListSecondary]", inputs: ["type"] }, { kind: "directive", type: i7.ListBylineDirective, selector: "[fdListByline], [fd-list-byline]", inputs: ["twoCol", "wrap"] }, { kind: "directive", type: i7.ListBylineLeftDirective, selector: "[fdListBylineLeft], [fd-list-byline-left]", inputs: ["wrap"] }, { kind: "directive", type: i7.ListBylineRightDirective, selector: "[fdListBylineRight], [fd-list-byline-right]", inputs: ["status", "wrap"] }, { kind: "directive", type: i7.ListContentDirective, selector: "[fdListContent], [fd-list-content]", inputs: ["twoCol"] }, { kind: "directive", type: i7.ListThumbnailDirective, selector: "[fdListThumbnail], [fd-list-thumbnail]" }, { kind: "component", type: i8.ObjectStatusComponent, selector: "[fd-object-status]", inputs: ["class", "status", "glyph", "glyphFont", "label", "glyphAriaLabel", "indicationColor", "clickable", "inverted", "large", "secondaryIndication", "textTemplate"] }, { kind: "component", type: i9.ToolbarComponent, selector: "fd-toolbar", inputs: ["titleId", "class", "shouldOverflow", "fdType", "title", "active", "clearBorder", "forceOverflow", "tabindex", "headingLevel", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: i9.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "component", type: i10.SliderComponent, selector: "fd-slider", inputs: ["id", "class", "ariaLabelledBy", "ariaLabel", "min", "max", "step", "jump", "tickmarksBetweenLabels", "mode", "showTicks", "showTicksLabels", "customValues", "tooltipMode", "hideProgressBar", "disabled", "vertical", "value"] }, { kind: "pipe", type: i11.AsyncPipe, name: "async" }, { kind: "pipe", type: i12.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i13.UploadFileStatusPipe, name: "uploadFileStatus" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
24
+ }
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaListFileLinearGmailComponent, decorators: [{
26
+ type: Component,
27
+ args: [{ selector: 'bsu-barsa-list-file-linear-gmail', changeDetection: ChangeDetectionStrategy.OnPush, providers: [UploadService], standalone: false, template: "<ul fd-list>\r\n @for (item of value; track item) { @if (!item.IsDeleted) {\r\n <li fd-list-item style=\"background-color: #f5f5f5; margin: 0.5rem 0 0 30%\">\r\n @if (item.inEdit) {\r\n <input\r\n style=\"width: 90%\"\r\n fd-form-control\r\n [value]=\"item.fileName\"\r\n (click)=\"$event.preventDefault(); $event.stopPropagation()\"\r\n />\r\n } @if (!item.inEdit) {\r\n <span fd-list-title>\r\n {{ item.fileName }}\r\n </span>\r\n }\r\n <span fd-list-secondary>\r\n <button\r\n ariaLabel=\"Edit Or Save\"\r\n fdType=\"transparent\"\r\n class=\"fd-button--compact\"\r\n fd-button\r\n fdCompact\r\n [glyph]=\"item.inEdit ? 'save' : 'edit'\"\r\n (click)=\"item.inEdit = !item.inEdit\"\r\n ></button>\r\n @if (!item.inEdit) {\r\n <button ariaLabel=\"Remove\" fdType=\"transparent\" title=\"Remove\" fd-button glyph=\"delete\"></button>\r\n }\r\n </span>\r\n </li>\r\n } }\r\n</ul>\r\n<ul fd-list [byline]=\"true\">\r\n @if (fileCount$ | async; as fileCount) { @if (fileCount === 0) {\r\n <li fd-list-item>\r\n <div fd-list-content style=\"text-align: center\">\r\n <span>{{ 'NoFiles' | bbbTranslate }}</span>\r\n </div>\r\n </li>\r\n } } @for (file of value; track file) { @if (valueExtra$ | async; as valueExtra) { @if (!file.IsDeleted) {\r\n <li fd-list-item>\r\n <span fd-list-thumbnail>\r\n @if (valueExtra[file.Id].IsIcon) {\r\n <fd-icon [glyph]=\"valueExtra[file.Id].FileUrl\"></fd-icon>\r\n } @else {\r\n <fd-avatar size=\"m\" [image]=\"valueExtra[file.Id].FileUrl || ''\"></fd-avatar>\r\n }\r\n </span>\r\n <!-- for byline, fd-list-content is mandatory -->\r\n <div fd-list-content>\r\n <div fd-list-title>{{ file.FileName }}</div>\r\n <div fd-list-byline [twoCol]=\"true\">\r\n <div fd-list-byline-left></div>\r\n <div fd-list-byline-right style=\"display: flex; justify-content: flex-end\">\r\n <fd-toolbar [fdType]=\"'transparent'\" [clearBorder]=\"true\">\r\n @if (file.IsNew) {\r\n <span\r\n fd-toolbar-item\r\n fd-object-status\r\n [status]=\"file.Id | uploadFileStatus: valueExtra\"\r\n [label]=\"valueExtra[file.Id]?.UploadState || ''\"\r\n [title]=\"valueExtra[file.Id]?.UploadState\"\r\n [aria-label]=\"'File Upload Status Is ' + valueExtra[file.Id]?.UploadState\"\r\n ></span>\r\n @if (valueExtra[file.Id].UploadState === 'Uploading') {\r\n <fd-slider\r\n [contentDensity]=\"(contentDensity$ | async)!!\"\r\n [(ngModel)]=\"valueExtra[file.Id].Progress\"\r\n [name]=\"'filerLinear_' + id\"\r\n fd-toolbar-item\r\n [id]=\"id\"\r\n [min]=\"0\"\r\n [max]=\"100\"\r\n [step]=\"1\"\r\n >\r\n </fd-slider>\r\n } }\r\n </fd-toolbar>\r\n </div>\r\n </div>\r\n </div>\r\n @if ((disableOrReadonly$ | async) === false && valueExtra[file.Id].UploadState !== 'Uploading') {\r\n <button fd-button fdType=\"transparent\" glyph=\"decline\" (click)=\"onFileDeleted(file.Id)\"></button>\r\n } @if (valueExtra[file.Id].UploadState === 'Uploading') {\r\n <button fd-button [fdType]=\"'transparent'\" [glyph]=\"'stop'\" (click)=\"onTerminate(file)\"></button>\r\n } @if (valueExtra[file.Id].UploadState === 'Error') {\r\n <button fd-button [fdType]=\"'transparent'\" [glyph]=\"'refresh'\" (click)=\"onRetry(file)\"></button>\r\n }\r\n </li>\r\n } } }\r\n</ul>\r\n", styles: [":host{display:block;width:100%;height:100%}:host ::ng-deep .fd-slider__handle{display:none}:host ::ng-deep .fd-file-uploader input{display:none}\n"] }]
28
+ }] });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtbGlzdC1maWxlLWxpbmVhci1nbWFpbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi9iYXJzYS1saXN0LWZpbGUtbGluZWFyLWdtYWlsL2JhcnNhLWxpc3QtZmlsZS1saW5lYXItZ21haWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtbGlzdC1maWxlLWxpbmVhci1nbWFpbC9iYXJzYS1saXN0LWZpbGUtbGluZWFyLWdtYWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLGFBQWEsRUFBc0IsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBVTVHLE1BQU0sT0FBTyxpQ0FBa0MsU0FBUSw0QkFBNEI7SUFDL0UsT0FBTyxDQUFDLGNBQWtDO1FBQ3RDLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDL0IsQ0FBQzsrR0FIUSxpQ0FBaUM7bUdBQWpDLGlDQUFpQywyREFIL0IsQ0FBQyxhQUFhLENBQUMsaURDVDlCLHl0SUEyRkE7OzRGRC9FYSxpQ0FBaUM7a0JBUjdDLFNBQVM7K0JBQ0ksa0NBQWtDLG1CQUczQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsYUFBYSxDQUFDLGNBQ2QsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVXBsb2FkU2VydmljZSwgRmlsZUF0dGFjaG1lbnRJbmZvIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5pbXBvcnQgeyBVaUZpbGVMaW5lYXJMaXN0Qm94Q29tcG9uZW50IH0gZnJvbSAnLi4vdWktZmlsZS1saW5lYXItbGlzdC1ib3gvdWktZmlsZS1saW5lYXItbGlzdC1ib3guY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtYmFyc2EtbGlzdC1maWxlLWxpbmVhci1nbWFpbCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vYmFyc2EtbGlzdC1maWxlLWxpbmVhci1nbWFpbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9iYXJzYS1saXN0LWZpbGUtbGluZWFyLWdtYWlsLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHByb3ZpZGVyczogW1VwbG9hZFNlcnZpY2VdLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIEJhcnNhTGlzdEZpbGVMaW5lYXJHbWFpbENvbXBvbmVudCBleHRlbmRzIFVpRmlsZUxpbmVhckxpc3RCb3hDb21wb25lbnQge1xyXG4gICAgb25SZXRyeShmaWxlQXR0YWNobWVudDogRmlsZUF0dGFjaG1lbnRJbmZvKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5yZXRyeShmaWxlQXR0YWNobWVudCk7XHJcbiAgICB9XHJcbn1cclxuIiwiPHVsIGZkLWxpc3Q+XHJcbiAgICBAZm9yIChpdGVtIG9mIHZhbHVlOyB0cmFjayBpdGVtKSB7IEBpZiAoIWl0ZW0uSXNEZWxldGVkKSB7XHJcbiAgICA8bGkgZmQtbGlzdC1pdGVtIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTsgbWFyZ2luOiAwLjVyZW0gMCAwIDMwJVwiPlxyXG4gICAgICAgIEBpZiAoaXRlbS5pbkVkaXQpIHtcclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogOTAlXCJcclxuICAgICAgICAgICAgZmQtZm9ybS1jb250cm9sXHJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJpdGVtLmZpbGVOYW1lXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgfSBAaWYgKCFpdGVtLmluRWRpdCkge1xyXG4gICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGU+XHJcbiAgICAgICAgICAgIHt7IGl0ZW0uZmlsZU5hbWUgfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDxzcGFuIGZkLWxpc3Qtc2Vjb25kYXJ5PlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICBhcmlhTGFiZWw9XCJFZGl0IE9yIFNhdmVcIlxyXG4gICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1idXR0b24tLWNvbXBhY3RcIlxyXG4gICAgICAgICAgICAgICAgZmQtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICBmZENvbXBhY3RcclxuICAgICAgICAgICAgICAgIFtnbHlwaF09XCJpdGVtLmluRWRpdCA/ICdzYXZlJyA6ICdlZGl0J1wiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaXRlbS5pbkVkaXQgPSAhaXRlbS5pbkVkaXRcIlxyXG4gICAgICAgICAgICA+PC9idXR0b24+XHJcbiAgICAgICAgICAgIEBpZiAoIWl0ZW0uaW5FZGl0KSB7XHJcbiAgICAgICAgICAgIDxidXR0b24gYXJpYUxhYmVsPVwiUmVtb3ZlXCIgZmRUeXBlPVwidHJhbnNwYXJlbnRcIiB0aXRsZT1cIlJlbW92ZVwiIGZkLWJ1dHRvbiBnbHlwaD1cImRlbGV0ZVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgPC9saT5cclxuICAgIH0gfVxyXG48L3VsPlxyXG48dWwgZmQtbGlzdCBbYnlsaW5lXT1cInRydWVcIj5cclxuICAgIEBpZiAoZmlsZUNvdW50JCB8IGFzeW5jOyBhcyBmaWxlQ291bnQpIHsgQGlmIChmaWxlQ291bnQgPT09IDApIHtcclxuICAgIDxsaSBmZC1saXN0LWl0ZW0+XHJcbiAgICAgICAgPGRpdiBmZC1saXN0LWNvbnRlbnQgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXJcIj5cclxuICAgICAgICAgICAgPHNwYW4+e3sgJ05vRmlsZXMnIHwgYmJiVHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9saT5cclxuICAgIH0gfSBAZm9yIChmaWxlIG9mIHZhbHVlOyB0cmFjayBmaWxlKSB7IEBpZiAodmFsdWVFeHRyYSQgfCBhc3luYzsgYXMgdmFsdWVFeHRyYSkgeyBAaWYgKCFmaWxlLklzRGVsZXRlZCkge1xyXG4gICAgPGxpIGZkLWxpc3QtaXRlbT5cclxuICAgICAgICA8c3BhbiBmZC1saXN0LXRodW1ibmFpbD5cclxuICAgICAgICAgICAgQGlmICh2YWx1ZUV4dHJhW2ZpbGUuSWRdLklzSWNvbikge1xyXG4gICAgICAgICAgICA8ZmQtaWNvbiBbZ2x5cGhdPVwidmFsdWVFeHRyYVtmaWxlLklkXS5GaWxlVXJsXCI+PC9mZC1pY29uPlxyXG4gICAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgPGZkLWF2YXRhciBzaXplPVwibVwiIFtpbWFnZV09XCJ2YWx1ZUV4dHJhW2ZpbGUuSWRdLkZpbGVVcmwgfHwgJydcIj48L2ZkLWF2YXRhcj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8IS0tIGZvciBieWxpbmUsIGZkLWxpc3QtY29udGVudCBpcyBtYW5kYXRvcnkgLS0+XHJcbiAgICAgICAgPGRpdiBmZC1saXN0LWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDxkaXYgZmQtbGlzdC10aXRsZT57eyBmaWxlLkZpbGVOYW1lIH19PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgZmQtbGlzdC1ieWxpbmUgW3R3b0NvbF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGZkLWxpc3QtYnlsaW5lLWxlZnQ+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGZkLWxpc3QtYnlsaW5lLXJpZ2h0IHN0eWxlPVwiZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxmZC10b29sYmFyIFtmZFR5cGVdPVwiJ3RyYW5zcGFyZW50J1wiIFtjbGVhckJvcmRlcl09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZmlsZS5Jc05ldykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZC1vYmplY3Qtc3RhdHVzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RhdHVzXT1cImZpbGUuSWQgfCB1cGxvYWRGaWxlU3RhdHVzOiB2YWx1ZUV4dHJhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJ2YWx1ZUV4dHJhW2ZpbGUuSWRdPy5VcGxvYWRTdGF0ZSB8fCAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwidmFsdWVFeHRyYVtmaWxlLklkXT8uVXBsb2FkU3RhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWEtbGFiZWxdPVwiJ0ZpbGUgVXBsb2FkIFN0YXR1cyBJcyAnICsgdmFsdWVFeHRyYVtmaWxlLklkXT8uVXBsb2FkU3RhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHZhbHVlRXh0cmFbZmlsZS5JZF0uVXBsb2FkU3RhdGUgPT09ICdVcGxvYWRpbmcnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1zbGlkZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb250ZW50RGVuc2l0eV09XCIoY29udGVudERlbnNpdHkkIHwgYXN5bmMpISFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZUV4dHJhW2ZpbGUuSWRdLlByb2dyZXNzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cIidmaWxlckxpbmVhcl8nICsgaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW21pbl09XCIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXhdPVwiMTAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdGVwXT1cIjFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtc2xpZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IH1cclxuICAgICAgICAgICAgICAgICAgICA8L2ZkLXRvb2xiYXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgQGlmICgoZGlzYWJsZU9yUmVhZG9ubHkkIHwgYXN5bmMpID09PSBmYWxzZSAmJiB2YWx1ZUV4dHJhW2ZpbGUuSWRdLlVwbG9hZFN0YXRlICE9PSAnVXBsb2FkaW5nJykge1xyXG4gICAgICAgIDxidXR0b24gZmQtYnV0dG9uIGZkVHlwZT1cInRyYW5zcGFyZW50XCIgZ2x5cGg9XCJkZWNsaW5lXCIgKGNsaWNrKT1cIm9uRmlsZURlbGV0ZWQoZmlsZS5JZClcIj48L2J1dHRvbj5cclxuICAgICAgICB9IEBpZiAodmFsdWVFeHRyYVtmaWxlLklkXS5VcGxvYWRTdGF0ZSA9PT0gJ1VwbG9hZGluZycpIHtcclxuICAgICAgICA8YnV0dG9uIGZkLWJ1dHRvbiBbZmRUeXBlXT1cIid0cmFuc3BhcmVudCdcIiBbZ2x5cGhdPVwiJ3N0b3AnXCIgKGNsaWNrKT1cIm9uVGVybWluYXRlKGZpbGUpXCI+PC9idXR0b24+XHJcbiAgICAgICAgfSBAaWYgKHZhbHVlRXh0cmFbZmlsZS5JZF0uVXBsb2FkU3RhdGUgPT09ICdFcnJvcicpIHtcclxuICAgICAgICA8YnV0dG9uIGZkLWJ1dHRvbiBbZmRUeXBlXT1cIid0cmFuc3BhcmVudCdcIiBbZ2x5cGhdPVwiJ3JlZnJlc2gnXCIgKGNsaWNrKT1cIm9uUmV0cnkoZmlsZSlcIj48L2J1dHRvbj5cclxuICAgICAgICB9XHJcbiAgICA8L2xpPlxyXG4gICAgfSB9IH1cclxuPC91bD5cclxuIl19
@@ -0,0 +1,23 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { LayoutPanelBaseComponent, LayoutService, FillAllLayoutControls } 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/list";
7
+ export class BarsaListLayoutPanelComponent extends LayoutPanelBaseComponent {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.layoutControls = [];
11
+ }
12
+ ngOnInit() {
13
+ super.ngOnInit();
14
+ FillAllLayoutControls(this.config, this.layoutControls);
15
+ }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaListLayoutPanelComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
17
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BarsaListLayoutPanelComponent, selector: "bsu-barsa-list-layout-panel", providers: [LayoutService], usesInheritance: true, ngImport: i0, template: "<ul fd-list>\r\n @for (item of layoutControls; track item; let i = $index) {\r\n <li fd-list-item>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: {\r\n $implicit: item,\r\n selector: 'bsu-layout-control',\r\n name: 'LayoutControlComponent',\r\n index: i\r\n }\r\n \"\r\n ></ng-container>\r\n </li>\r\n }\r\n</ul>\r\n<ng-template\r\n #dynamicLayout\r\n let-index\r\n let-config\r\n let-selector=\"selector\"\r\n let-maxLabelWidth=\"maxLabelWidth\"\r\n let-name=\"name\"\r\n>\r\n <bnrc-dynamic-layout\r\n [config]=\"config\"\r\n [selector]=\"selector\"\r\n [name]=\"name\"\r\n [module]=\"'BarsaSapUi'\"\r\n [moduleFileName]=\"'BarsaSapUi'\"\r\n [maxLabelWidth]=\"(maxLabelWidth$ | async)!!\"\r\n [flex]=\"isSearchPanel ? 'unset' : config.Bounds.width\"\r\n [isSearchPanel]=\"isSearchPanel\"\r\n >\r\n </bnrc-dynamic-layout>\r\n</ng-template>\r\n", styles: [":host fd-card-header{cursor:default}:host fd-card-header:hover{background:var(--fdCard_Background_Color)}:host ::ng-deep bsu-layout-control.row-direction{flex-direction:row!important}@media (max-width: 600px){:host ::ng-deep bsu-layout-control.row-direction{flex-direction:row!important}}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.DynamicLayoutComponent, selector: "bnrc-dynamic-layout", inputs: ["selector", "module", "name", "parameters", "moduleFileName", "flex", "config", "maxLabelWidth", "hasHorizontalText", "isSearchPanel"] }, { kind: "component", type: i3.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i3.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole", "id"], outputs: ["keyDown"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
18
+ }
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaListLayoutPanelComponent, decorators: [{
20
+ type: Component,
21
+ args: [{ selector: 'bsu-barsa-list-layout-panel', changeDetection: ChangeDetectionStrategy.OnPush, providers: [LayoutService], standalone: false, template: "<ul fd-list>\r\n @for (item of layoutControls; track item; let i = $index) {\r\n <li fd-list-item>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: {\r\n $implicit: item,\r\n selector: 'bsu-layout-control',\r\n name: 'LayoutControlComponent',\r\n index: i\r\n }\r\n \"\r\n ></ng-container>\r\n </li>\r\n }\r\n</ul>\r\n<ng-template\r\n #dynamicLayout\r\n let-index\r\n let-config\r\n let-selector=\"selector\"\r\n let-maxLabelWidth=\"maxLabelWidth\"\r\n let-name=\"name\"\r\n>\r\n <bnrc-dynamic-layout\r\n [config]=\"config\"\r\n [selector]=\"selector\"\r\n [name]=\"name\"\r\n [module]=\"'BarsaSapUi'\"\r\n [moduleFileName]=\"'BarsaSapUi'\"\r\n [maxLabelWidth]=\"(maxLabelWidth$ | async)!!\"\r\n [flex]=\"isSearchPanel ? 'unset' : config.Bounds.width\"\r\n [isSearchPanel]=\"isSearchPanel\"\r\n >\r\n </bnrc-dynamic-layout>\r\n</ng-template>\r\n", styles: [":host fd-card-header{cursor:default}:host fd-card-header:hover{background:var(--fdCard_Background_Color)}:host ::ng-deep bsu-layout-control.row-direction{flex-direction:row!important}@media (max-width: 600px){:host ::ng-deep bsu-layout-control.row-direction{flex-direction:row!important}}\n"] }]
22
+ }] });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtbGlzdC1sYXlvdXQtcGFuZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtbGlzdC1sYXlvdXQtcGFuZWwvYmFyc2EtbGlzdC1sYXlvdXQtcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtbGlzdC1sYXlvdXQtcGFuZWwvYmFyc2EtbGlzdC1sYXlvdXQtcGFuZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsYUFBYSxFQUFpQixxQkFBcUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7OztBQVVySCxNQUFNLE9BQU8sNkJBQThCLFNBQVEsd0JBQXdCO0lBUjNFOztRQVNJLG1CQUFjLEdBQW9CLEVBQUUsQ0FBQztLQUt4QztJQUpHLFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIscUJBQXFCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDNUQsQ0FBQzsrR0FMUSw2QkFBNkI7bUdBQTdCLDZCQUE2QixzREFIM0IsQ0FBQyxhQUFhLENBQUMsaURDUjlCLHFtQ0FxQ0E7OzRGRDFCYSw2QkFBNkI7a0JBUnpDLFNBQVM7K0JBQ0ksNkJBQTZCLG1CQUd0Qix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsYUFBYSxDQUFDLGNBQ2QsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMYXlvdXRQYW5lbEJhc2VDb21wb25lbnQsIExheW91dFNlcnZpY2UsIExheW91dFNldHRpbmcsIEZpbGxBbGxMYXlvdXRDb250cm9scyB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtYmFyc2EtbGlzdC1sYXlvdXQtcGFuZWwnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JhcnNhLWxpc3QtbGF5b3V0LXBhbmVsLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2JhcnNhLWxpc3QtbGF5b3V0LXBhbmVsLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHByb3ZpZGVyczogW0xheW91dFNlcnZpY2VdLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIEJhcnNhTGlzdExheW91dFBhbmVsQ29tcG9uZW50IGV4dGVuZHMgTGF5b3V0UGFuZWxCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIGxheW91dENvbnRyb2xzOiBMYXlvdXRTZXR0aW5nW10gPSBbXTtcclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgRmlsbEFsbExheW91dENvbnRyb2xzKHRoaXMuY29uZmlnLCB0aGlzLmxheW91dENvbnRyb2xzKTtcclxuICAgIH1cclxufVxyXG4iLCI8dWwgZmQtbGlzdD5cclxuICAgIEBmb3IgKGl0ZW0gb2YgbGF5b3V0Q29udHJvbHM7IHRyYWNrIGl0ZW07IGxldCBpID0gJGluZGV4KSB7XHJcbiAgICA8bGkgZmQtbGlzdC1pdGVtPlxyXG4gICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcclxuICAgICAgICAgICAgICAgIGR5bmFtaWNMYXlvdXQ7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBpdGVtLFxyXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAnYnN1LWxheW91dC1jb250cm9sJyxcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiAnTGF5b3V0Q29udHJvbENvbXBvbmVudCcsXHJcbiAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGlcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgXCJcclxuICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2xpPlxyXG4gICAgfVxyXG48L3VsPlxyXG48bmctdGVtcGxhdGVcclxuICAgICNkeW5hbWljTGF5b3V0XHJcbiAgICBsZXQtaW5kZXhcclxuICAgIGxldC1jb25maWdcclxuICAgIGxldC1zZWxlY3Rvcj1cInNlbGVjdG9yXCJcclxuICAgIGxldC1tYXhMYWJlbFdpZHRoPVwibWF4TGFiZWxXaWR0aFwiXHJcbiAgICBsZXQtbmFtZT1cIm5hbWVcIlxyXG4+XHJcbiAgICA8Ym5yYy1keW5hbWljLWxheW91dFxyXG4gICAgICAgIFtjb25maWddPVwiY29uZmlnXCJcclxuICAgICAgICBbc2VsZWN0b3JdPVwic2VsZWN0b3JcIlxyXG4gICAgICAgIFtuYW1lXT1cIm5hbWVcIlxyXG4gICAgICAgIFttb2R1bGVdPVwiJ0JhcnNhU2FwVWknXCJcclxuICAgICAgICBbbW9kdWxlRmlsZU5hbWVdPVwiJ0JhcnNhU2FwVWknXCJcclxuICAgICAgICBbbWF4TGFiZWxXaWR0aF09XCIobWF4TGFiZWxXaWR0aCQgfCBhc3luYykhIVwiXHJcbiAgICAgICAgW2ZsZXhdPVwiaXNTZWFyY2hQYW5lbCA/ICd1bnNldCcgOiBjb25maWcuQm91bmRzLndpZHRoXCJcclxuICAgICAgICBbaXNTZWFyY2hQYW5lbF09XCJpc1NlYXJjaFBhbmVsXCJcclxuICAgID5cclxuICAgIDwvYm5yYy1keW5hbWljLWxheW91dD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
@@ -0,0 +1,43 @@
1
+ import { ChangeDetectionStrategy, Component, inject, ViewChild } from '@angular/core';
2
+ import { ActivatedRoute, Router } from '@angular/router';
3
+ import { DialogService } from '@fundamental-ngx/core';
4
+ import { BaseComponent } from 'barsa-novin-ray-core';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "barsa-novin-ray-core";
7
+ import * as i2 from "@fundamental-ngx/core/bar";
8
+ import * as i3 from "@fundamental-ngx/core/dialog";
9
+ import * as i4 from "@fundamental-ngx/cdk/utils";
10
+ import * as i5 from "@fundamental-ngx/core/title";
11
+ export class BarsaModalComponent extends BaseComponent {
12
+ constructor() {
13
+ super(...arguments);
14
+ this._dialogService = inject(DialogService);
15
+ this._router = inject(Router);
16
+ this._activatedRoute = inject(ActivatedRoute);
17
+ }
18
+ ngOnInit() {
19
+ super.ngOnInit();
20
+ this.dialogRef = this._dialogService.open(this._dialogTemplate, {
21
+ data: { ...this.settings, $breadCrumb: this._activatedRoute.snapshot.data?.breadcrumb },
22
+ width: '50vw',
23
+ height: '50vh',
24
+ draggable: true,
25
+ resizable: true,
26
+ verticalPadding: false,
27
+ ariaLabelledBy: 'fd-dialog-header-3'
28
+ });
29
+ }
30
+ onClose() {
31
+ this._router.navigate(['../']);
32
+ }
33
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaModalComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
34
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BarsaModalComponent, selector: "bsu-barsa-modal", viewQueries: [{ propertyName: "_dialogTemplate", first: true, predicate: ["dialogTemplate"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-template [fdDialogTemplate] let-dialog let-dialogConfig=\"dialogConfig\" #dialogTemplate>\r\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\r\n <fd-dialog-header>\r\n <ng-template fdkTemplate=\"header\">\r\n <div fd-bar-left>\r\n <fd-bar-element>\r\n <h1 id=\"fd-dialog-header-3\" fd-title>{{ dialog.data.$breadCrumb }}</h1>\r\n </fd-bar-element>\r\n </div>\r\n <div fd-bar-right>\r\n <fd-button-bar\r\n glyph=\"decline\"\r\n [ariaLabel]=\"'Close' | bbbTranslate\"\r\n (click)=\"onClose()\"\r\n ></fd-button-bar>\r\n </div>\r\n </ng-template>\r\n </fd-dialog-header>\r\n <fd-dialog-body>\r\n @if(dialog.data?.BodyComponent){\r\n <bnrc-dynamic-component [component]=\"dialog.data.BodyComponent\"></bnrc-dynamic-component>\r\n }\r\n </fd-dialog-body>\r\n <fd-dialog-footer>\r\n <ng-template fdkTemplate=\"footer\">\r\n <div fd-bar-right>\r\n <fd-button-bar\r\n fdType=\"standard\"\r\n [label]=\"'Close' | bbbTranslate\"\r\n ariaLabel=\"'Close' | bbbTranslate\"\r\n (click)=\"onClose()\"\r\n >\r\n </fd-button-bar>\r\n </div>\r\n </ng-template>\r\n </fd-dialog-footer>\r\n </fd-dialog>\r\n</ng-template>\r\n", styles: [""], dependencies: [{ kind: "component", type: i1.BaseDynamicComponent, selector: "bnrc-dynamic-component", inputs: ["component", "value"], outputs: ["events"] }, { kind: "directive", type: i2.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: i2.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "directive", type: i2.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "component", type: i2.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabelledby", "id"] }, { kind: "component", type: i3.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i3.DialogBodyComponent, selector: "fd-dialog-body", inputs: ["disablePaddings"] }, { kind: "component", type: i3.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i3.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "directive", type: i3.DialogTemplateDirective, selector: "[fdDialogTemplate]", inputs: ["fdDialogTemplateConfig"] }, { kind: "directive", type: i4.TemplateDirective, selector: "[fdkTemplate]", inputs: ["fdkTemplate"] }, { kind: "component", type: i5.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "pipe", type: i1.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
35
+ }
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaModalComponent, decorators: [{
37
+ type: Component,
38
+ args: [{ selector: 'bsu-barsa-modal', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<ng-template [fdDialogTemplate] let-dialog let-dialogConfig=\"dialogConfig\" #dialogTemplate>\r\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\r\n <fd-dialog-header>\r\n <ng-template fdkTemplate=\"header\">\r\n <div fd-bar-left>\r\n <fd-bar-element>\r\n <h1 id=\"fd-dialog-header-3\" fd-title>{{ dialog.data.$breadCrumb }}</h1>\r\n </fd-bar-element>\r\n </div>\r\n <div fd-bar-right>\r\n <fd-button-bar\r\n glyph=\"decline\"\r\n [ariaLabel]=\"'Close' | bbbTranslate\"\r\n (click)=\"onClose()\"\r\n ></fd-button-bar>\r\n </div>\r\n </ng-template>\r\n </fd-dialog-header>\r\n <fd-dialog-body>\r\n @if(dialog.data?.BodyComponent){\r\n <bnrc-dynamic-component [component]=\"dialog.data.BodyComponent\"></bnrc-dynamic-component>\r\n }\r\n </fd-dialog-body>\r\n <fd-dialog-footer>\r\n <ng-template fdkTemplate=\"footer\">\r\n <div fd-bar-right>\r\n <fd-button-bar\r\n fdType=\"standard\"\r\n [label]=\"'Close' | bbbTranslate\"\r\n ariaLabel=\"'Close' | bbbTranslate\"\r\n (click)=\"onClose()\"\r\n >\r\n </fd-button-bar>\r\n </div>\r\n </ng-template>\r\n </fd-dialog-footer>\r\n </fd-dialog>\r\n</ng-template>\r\n" }]
39
+ }], propDecorators: { _dialogTemplate: [{
40
+ type: ViewChild,
41
+ args: ['dialogTemplate', { static: true }]
42
+ }] } });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtbW9kYWwvYmFyc2EtbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtbW9kYWwvYmFyc2EtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQWUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25HLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXRELE9BQU8sRUFBRSxhQUFhLEVBQWtDLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7QUFRckYsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGFBQWE7SUFQdEQ7O1FBU0ksbUJBQWMsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdkMsWUFBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QixvQkFBZSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztLQW1CNUM7SUFmRyxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUM1RCxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDdkYsS0FBSyxFQUFFLE1BQU07WUFDYixNQUFNLEVBQUUsTUFBTTtZQUNkLFNBQVMsRUFBRSxJQUFJO1lBQ2YsU0FBUyxFQUFFLElBQUk7WUFDZixlQUFlLEVBQUUsS0FBSztZQUN0QixjQUFjLEVBQUUsb0JBQW9CO1NBQ3ZDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxPQUFPO1FBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ25DLENBQUM7K0dBdEJRLG1CQUFtQjttR0FBbkIsbUJBQW1CLCtNQ1poQywrbkRBc0NBOzs0RkQxQmEsbUJBQW1CO2tCQVAvQixTQUFTOytCQUNJLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLEtBQUs7OEJBRzhCLGVBQWU7c0JBQTdELFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcclxuXHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQsIEVqcmF5T2xnbywgTWV0YW9iamVjdERhdGFNb2RlbCB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JzdS1iYXJzYS1tb2RhbCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vYmFyc2EtbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vYmFyc2EtbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIEJhcnNhTW9kYWxDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcclxuICAgIEBWaWV3Q2hpbGQoJ2RpYWxvZ1RlbXBsYXRlJywgeyBzdGF0aWM6IHRydWUgfSkgX2RpYWxvZ1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gICAgX2RpYWxvZ1NlcnZpY2UgPSBpbmplY3QoRGlhbG9nU2VydmljZSk7XHJcbiAgICBfcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XHJcbiAgICBfYWN0aXZhdGVkUm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xyXG4gICAgc2V0dGluZ3M6IEJhcnNhTW9kYWxTZXR0aW5nO1xyXG4gICAgZGlhbG9nUmVmOiBhbnk7XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICB0aGlzLmRpYWxvZ1JlZiA9IHRoaXMuX2RpYWxvZ1NlcnZpY2Uub3Blbih0aGlzLl9kaWFsb2dUZW1wbGF0ZSwge1xyXG4gICAgICAgICAgICBkYXRhOiB7IC4uLnRoaXMuc2V0dGluZ3MsICRicmVhZENydW1iOiB0aGlzLl9hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5kYXRhPy5icmVhZGNydW1iIH0sXHJcbiAgICAgICAgICAgIHdpZHRoOiAnNTB2dycsXHJcbiAgICAgICAgICAgIGhlaWdodDogJzUwdmgnLFxyXG4gICAgICAgICAgICBkcmFnZ2FibGU6IHRydWUsXHJcbiAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgdmVydGljYWxQYWRkaW5nOiBmYWxzZSxcclxuICAgICAgICAgICAgYXJpYUxhYmVsbGVkQnk6ICdmZC1kaWFsb2ctaGVhZGVyLTMnXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBvbkNsb3NlKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJy4uLyddKTtcclxuICAgIH1cclxufVxyXG5pbnRlcmZhY2UgQmFyc2FNb2RhbFNldHRpbmcgZXh0ZW5kcyBNZXRhb2JqZWN0RGF0YU1vZGVsIHtcclxuICAgIEJvZHlDb21wb25lbnQ6IEVqcmF5T2xnbztcclxufVxyXG4iLCI8bmctdGVtcGxhdGUgW2ZkRGlhbG9nVGVtcGxhdGVdIGxldC1kaWFsb2cgbGV0LWRpYWxvZ0NvbmZpZz1cImRpYWxvZ0NvbmZpZ1wiICNkaWFsb2dUZW1wbGF0ZT5cclxuICAgIDxmZC1kaWFsb2cgW2RpYWxvZ0NvbmZpZ109XCJkaWFsb2dDb25maWdcIiBbZGlhbG9nUmVmXT1cImRpYWxvZ1wiPlxyXG4gICAgICAgIDxmZC1kaWFsb2ctaGVhZGVyPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgZmRrVGVtcGxhdGU9XCJoZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyLWxlZnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPGZkLWJhci1lbGVtZW50PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDEgaWQ9XCJmZC1kaWFsb2ctaGVhZGVyLTNcIiBmZC10aXRsZT57eyBkaWFsb2cuZGF0YS4kYnJlYWRDcnVtYiB9fTwvaDE+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9mZC1iYXItZWxlbWVudD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBmZC1iYXItcmlnaHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZ2x5cGg9XCJkZWNsaW5lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCInQ2xvc2UnIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xvc2UoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvZmQtYnV0dG9uLWJhcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvZmQtZGlhbG9nLWhlYWRlcj5cclxuICAgICAgICA8ZmQtZGlhbG9nLWJvZHk+XHJcbiAgICAgICAgICAgIEBpZihkaWFsb2cuZGF0YT8uQm9keUNvbXBvbmVudCl7XHJcbiAgICAgICAgICAgIDxibnJjLWR5bmFtaWMtY29tcG9uZW50IFtjb21wb25lbnRdPVwiZGlhbG9nLmRhdGEuQm9keUNvbXBvbmVudFwiPjwvYm5yYy1keW5hbWljLWNvbXBvbmVudD5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvZmQtZGlhbG9nLWJvZHk+XHJcbiAgICAgICAgPGZkLWRpYWxvZy1mb290ZXI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBmZGtUZW1wbGF0ZT1cImZvb3RlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBmZC1iYXItcmlnaHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwic3RhbmRhcmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ0Nsb3NlJyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWFMYWJlbD1cIidDbG9zZScgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25DbG9zZSgpXCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9mZC1idXR0b24tYmFyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9mZC1kaWFsb2ctZm9vdGVyPlxyXG4gICAgPC9mZC1kaWFsb2c+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==