barsa-sap-ui 2.2.2 → 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 (241) hide show
  1. package/esm2022/barsa-sap-ui.mjs +5 -0
  2. package/esm2022/lib/apply-conditional-formmatings.directive.mjs +90 -0
  3. package/esm2022/lib/avatar-size.pipe.mjs +41 -0
  4. package/esm2022/lib/barsa-answer-card/barsa-answer-card.component.mjs +41 -0
  5. package/esm2022/lib/barsa-asp-viewer/barsa-asp-viewer.component.mjs +145 -0
  6. package/esm2022/lib/barsa-bar-download-file/barsa-bar-download-file.component.mjs +23 -0
  7. package/esm2022/lib/barsa-bar-panel/barsa-bar-panel.component.mjs +23 -0
  8. package/esm2022/lib/barsa-base-panel/barsa-base-layout-panel.component.mjs +29 -0
  9. package/esm2022/lib/barsa-breadcrumbs/barsa-breadcrumbs.component.mjs +24 -0
  10. package/esm2022/lib/barsa-card-layout-panel/barsa-card-layout-panel.component.mjs +24 -0
  11. package/esm2022/lib/barsa-card-row-payam/barsa-card-row-payam.component.mjs +31 -0
  12. package/esm2022/lib/barsa-cartable-form/barsa-cartable-form.component.mjs +41 -0
  13. package/esm2022/lib/barsa-cartable-template/barsa-cartable-template.component.mjs +24 -0
  14. package/esm2022/lib/barsa-chat/barsa-chat.component.mjs +242 -0
  15. package/esm2022/lib/barsa-chat/chat.model.mjs +8 -0
  16. package/esm2022/lib/barsa-chat-content/barsa-chat-content.component.mjs +13 -0
  17. package/esm2022/lib/barsa-chat-content-toolbar/barsa-chat-content-toolbar.component.mjs +22 -0
  18. package/esm2022/lib/barsa-chat-list/barsa-chat-list.component.mjs +66 -0
  19. package/esm2022/lib/barsa-chat-message/barsa-chat-message.component.mjs +78 -0
  20. package/esm2022/lib/barsa-chat-thread/barsa-chat-thread.component.mjs +22 -0
  21. package/esm2022/lib/barsa-chat-threads-list/barsa-chat-threads-list.component.mjs +13 -0
  22. package/esm2022/lib/barsa-chat-threads-list-toolbar/barsa-chat-threads-list-toolbar.component.mjs +15 -0
  23. package/esm2022/lib/barsa-chip/barsa-chip.component.mjs +72 -0
  24. package/esm2022/lib/barsa-column-indicator/barsa-column-indicator.component.mjs +23 -0
  25. package/esm2022/lib/barsa-column-rownumber/barsa-column-rownumber.component.mjs +14 -0
  26. package/esm2022/lib/barsa-custom-inline-edit/barsa-custom-inline-edit.component.mjs +14 -0
  27. package/esm2022/lib/barsa-custom-inline-edit-row/barsa-custom-inline-edit-row.component.mjs +26 -0
  28. package/esm2022/lib/barsa-date-time-picker/barsa-date-time-picker.component.mjs +71 -0
  29. package/esm2022/lib/barsa-dynamic-field/barsa-dynamic-field.component.mjs +40 -0
  30. package/esm2022/lib/barsa-enum-menu-button/barsa-enum-menu-button.component.mjs +61 -0
  31. package/esm2022/lib/barsa-field-key-value/barsa-field-key-value.component.mjs +45 -0
  32. package/esm2022/lib/barsa-form-side-content/barsa-form-side-content.component.mjs +58 -0
  33. package/esm2022/lib/barsa-grid-layout-panel/barsa-grid-layout-panel.component.mjs +27 -0
  34. package/esm2022/lib/barsa-group-cartable/barsa-cartable-group.component.mjs +94 -0
  35. package/esm2022/lib/barsa-horizontal-flex-panel/barsa-horizontal-flex-panel.component.mjs +22 -0
  36. package/esm2022/lib/barsa-linkable-items-panel/barsa-linkable-items-panel.component.mjs +37 -0
  37. package/esm2022/lib/barsa-list-file-linear/barsa-list-file-linear.component.mjs +41 -0
  38. package/esm2022/lib/barsa-list-file-linear-gmail/barsa-list-file-linear-gmail.component.mjs +29 -0
  39. package/esm2022/lib/barsa-list-layout-panel/barsa-list-layout-panel.component.mjs +23 -0
  40. package/esm2022/lib/barsa-modal/barsa-modal.component.mjs +43 -0
  41. package/esm2022/lib/barsa-monaco-editor/barsa-monaco-editor.component.mjs +83 -0
  42. package/esm2022/lib/barsa-network-offline/barsa-network-offline.component.mjs +57 -0
  43. package/esm2022/lib/barsa-pishnamayesh-payam/barsa-pishnamayesh-payam.component.mjs +159 -0
  44. package/esm2022/lib/barsa-question-answer-comments-section/barsa-question-answer-comments-section.component.mjs +17 -0
  45. package/esm2022/lib/barsa-question-answer-content-actions-section/barsa-question-answer-content-actions-section.component.mjs +30 -0
  46. package/esm2022/lib/barsa-question-answer-creator-time-section/barsa-question-answer-creator-time-section.component.mjs +14 -0
  47. package/esm2022/lib/barsa-question-answer-form/barsa-question-answer-form.component.mjs +34 -0
  48. package/esm2022/lib/barsa-question-answer-form-add-comment/barsa-question-answer-form-add-comment.component.mjs +46 -0
  49. package/esm2022/lib/barsa-question-answer-vote-section/barsa-question-answer-vote-section.component.mjs +79 -0
  50. package/esm2022/lib/barsa-question-post/barsa-question-post.component.mjs +30 -0
  51. package/esm2022/lib/barsa-report-card-flex-view/barsa-report-card-flex-view.component.mjs +31 -0
  52. package/esm2022/lib/barsa-report-checkbox-switch-button/barsa-report-checkbox-switch-button.component.mjs +28 -0
  53. package/esm2022/lib/barsa-report-one-of-list/barsa-report-one-of-list.component.mjs +102 -0
  54. package/esm2022/lib/barsa-row-inline-actionlist/barsa-row-inline-actionlist.component.mjs +26 -0
  55. package/esm2022/lib/barsa-sap-ui-routing.module.mjs +18 -0
  56. package/esm2022/lib/barsa-sap-ui.module.mjs +377 -0
  57. package/esm2022/lib/barsa-search-form/barsa-search-form.component.mjs +29 -0
  58. package/esm2022/lib/barsa-simple-form/barsa-simple-form.component.mjs +170 -0
  59. package/esm2022/lib/barsa-tab-route-manager/barsa-tab-route-manager.component.mjs +18 -0
  60. package/esm2022/lib/barsa-table-column/barsa-table-column.component.mjs +29 -0
  61. package/esm2022/lib/barsa-table-header/barsa-table-header.component.mjs +222 -0
  62. package/esm2022/lib/barsa-table-row/barsa-table-row.component.mjs +87 -0
  63. package/esm2022/lib/barsa-tag-categories/barsa-tag-categories.component.mjs +60 -0
  64. package/esm2022/lib/barsa-tag-chip/barsa-tag-chip.component.mjs +26 -0
  65. package/esm2022/lib/barsa-tags-category-row/barsa-tags-category-row.component.mjs +23 -0
  66. package/esm2022/lib/barsa-text-ellipsis/barsa-text-ellipsis.component.mjs +37 -0
  67. package/esm2022/lib/barsa-tinyemce/barsa-tinyemce.component.mjs +418 -0
  68. package/esm2022/lib/barsa-toolbaritem-search/barsa-toolbaritem-search.component.mjs +36 -0
  69. package/esm2022/lib/barsa-tree-item/barsa-tree-item.component.mjs +153 -0
  70. package/esm2022/lib/barsa-tree-item/node-has-one-depth-level.pipe.mjs +20 -0
  71. package/esm2022/lib/barsa-ulv-main/barsa-ulv-main.component.mjs +216 -0
  72. package/esm2022/lib/blob-viewer/blob-viewer.component.mjs +74 -0
  73. package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +50 -0
  74. package/esm2022/lib/captcha-field/captcha-field.component.mjs +28 -0
  75. package/esm2022/lib/card-item/card-item.component.mjs +74 -0
  76. package/esm2022/lib/card-view-content/card-view-content.component.mjs +46 -0
  77. package/esm2022/lib/col-renderer.directive.mjs +47 -0
  78. package/esm2022/lib/column-matrix-renderer/column-matrix-renderer.component.mjs +56 -0
  79. package/esm2022/lib/column-matrix-renderer/matrix-value.pipe.mjs +61 -0
  80. package/esm2022/lib/column-renderer/column-renderer.component.mjs +97 -0
  81. package/esm2022/lib/constants.mjs +450 -0
  82. package/esm2022/lib/custom-date-time/custom-date-time.component.mjs +41 -0
  83. package/esm2022/lib/device-info-field-base.mjs +24 -0
  84. package/esm2022/lib/dialog-handler.directive.mjs +29 -0
  85. package/esm2022/lib/download-files.directive.mjs +34 -0
  86. package/esm2022/lib/dynamic-page-size.pipe.mjs +27 -0
  87. package/esm2022/lib/file-in-dialog/file-in-dialog.component.mjs +44 -0
  88. package/esm2022/lib/file-viewer/file-viewer.component.mjs +47 -0
  89. package/esm2022/lib/file-viewer-content/file-viewer-content.component.mjs +71 -0
  90. package/esm2022/lib/file-viewer-popover/file-viewer-popover.component.mjs +37 -0
  91. package/esm2022/lib/form-dialog/form-dialog.component.mjs +171 -0
  92. package/esm2022/lib/form-dialog-less/form-dialog-less.component.mjs +50 -0
  93. package/esm2022/lib/form-toolbar/form-toolbar.component.mjs +62 -0
  94. package/esm2022/lib/form-toolbar-button/form-toolbar-button.component.mjs +45 -0
  95. package/esm2022/lib/form-wizard/form-wizard.component.mjs +21 -0
  96. package/esm2022/lib/fullscreen-dialog.directive.mjs +60 -0
  97. package/esm2022/lib/fullscreen-files.directive.mjs +43 -0
  98. package/esm2022/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.mjs +217 -0
  99. package/esm2022/lib/gantt-dhtml-chart-view/gantt-dhtml-chart-view.component.mjs +215 -0
  100. package/esm2022/lib/global-search/global-search.component.mjs +27 -0
  101. package/esm2022/lib/global-search-module/global-search-module.component.mjs +29 -0
  102. package/esm2022/lib/global-search-panel/global-search-panel.component.mjs +25 -0
  103. package/esm2022/lib/header-avatar/header-avatar.component.mjs +18 -0
  104. package/esm2022/lib/htree-create-new/htree-create-new.component.mjs +48 -0
  105. package/esm2022/lib/hyperlink/hyperlink.component.mjs +23 -0
  106. package/esm2022/lib/index.mjs +549 -0
  107. package/esm2022/lib/inline-save-and-cancel/inline-save-and-cancel.component.mjs +32 -0
  108. package/esm2022/lib/layout-actions/layout-actions.component.mjs +70 -0
  109. package/esm2022/lib/layout-control/layout-control.component.mjs +302 -0
  110. package/esm2022/lib/layout-wizard/layout-wizard.component.mjs +180 -0
  111. package/esm2022/lib/list-item/list-item.component.mjs +34 -0
  112. package/esm2022/lib/ly-empty-space/ly-empty-space.component.mjs +42 -0
  113. package/esm2022/lib/ly-horizontal-layout/ly-horizontal-layout.component.mjs +82 -0
  114. package/esm2022/lib/ly-label/ly-label.component.mjs +37 -0
  115. package/esm2022/lib/ly-layout-container/ly-layout-container.component.mjs +83 -0
  116. package/esm2022/lib/ly-layout-container-of-root/ly-layout-container-of-root.component.mjs +17 -0
  117. package/esm2022/lib/ly-layout-field-label/ly-layout-field-label.component.mjs +24 -0
  118. package/esm2022/lib/ly-layout-panel/ly-layout-panel.component.mjs +83 -0
  119. package/esm2022/lib/ly-line/ly-line.component.mjs +56 -0
  120. package/esm2022/lib/ly-simple-label/ly-simple-label.component.mjs +22 -0
  121. package/esm2022/lib/ly-tab-container/ly-tab-container.component.mjs +44 -0
  122. package/esm2022/lib/ly-tab-page/ly-tab-page.component.mjs +44 -0
  123. package/esm2022/lib/ly-vertical-layout/ly-vertical-layout.component.mjs +51 -0
  124. package/esm2022/lib/manage-filters-report/manage-filters-report.component.mjs +43 -0
  125. package/esm2022/lib/mask/mask.component.mjs +22 -0
  126. package/esm2022/lib/message-strip/message-strip.component.mjs +28 -0
  127. package/esm2022/lib/models/grid-data-provider.mjs +114 -0
  128. package/esm2022/lib/models/grid-view.mjs +2 -0
  129. package/esm2022/lib/models/index.mjs +2 -0
  130. package/esm2022/lib/no-data/no-data.component.mjs +31 -0
  131. package/esm2022/lib/notification-item/notification-item.component.mjs +57 -0
  132. package/esm2022/lib/notification-item-actions/notification-item-actions.component.mjs +79 -0
  133. package/esm2022/lib/notification-popup.service.mjs +92 -0
  134. package/esm2022/lib/object-status-icon.pipe.mjs +27 -0
  135. package/esm2022/lib/progress-indicator/progress-indicator.component.mjs +18 -0
  136. package/esm2022/lib/report-navigator/report-navigator.component.mjs +68 -0
  137. package/esm2022/lib/report-new-top-form/report-new-top-form.component.mjs +60 -0
  138. package/esm2022/lib/report-search-fields-hidden-settings/report-search-fields-hidden-settings.component.mjs +35 -0
  139. package/esm2022/lib/report-search-fields-manage/report-search-fields-manage.component.mjs +97 -0
  140. package/esm2022/lib/report-search-panel-save/report-search-panel-save.component.mjs +88 -0
  141. package/esm2022/lib/report-tree-base.mjs +387 -0
  142. package/esm2022/lib/report-view-renderer.directive.mjs +392 -0
  143. package/esm2022/lib/responsive-toolbar/responsive-toolbar.component.mjs +50 -0
  144. package/esm2022/lib/responsive-toolbar-renderer/responsive-toolbar-renderer.component.mjs +84 -0
  145. package/esm2022/lib/rich-text-static/rich-text-static.component.mjs +72 -0
  146. package/esm2022/lib/sap-font-class.pipe.mjs +30 -0
  147. package/esm2022/lib/sap-font.pipe.mjs +30 -0
  148. package/esm2022/lib/sap-size.pipe.mjs +28 -0
  149. package/esm2022/lib/sap-ui-report-base.component.mjs +809 -0
  150. package/esm2022/lib/search-panel/search-panel.component.mjs +63 -0
  151. package/esm2022/lib/static-text/static-text.component.mjs +15 -0
  152. package/esm2022/lib/table-th.directive.mjs +87 -0
  153. package/esm2022/lib/title/title.component.mjs +15 -0
  154. package/esm2022/lib/ui-asp-report-viewer/ui-asp-report-viewer.component.mjs +34 -0
  155. package/esm2022/lib/ui-bpmn-viewer/ui-bpmn-viewer.component.mjs +33 -0
  156. package/esm2022/lib/ui-button/ui-button.component.mjs +32 -0
  157. package/esm2022/lib/ui-calendar/ui-calendar.component.mjs +53 -0
  158. package/esm2022/lib/ui-card-view/ui-card-view.component.mjs +58 -0
  159. package/esm2022/lib/ui-card-view-horizontal-group/ui-card-view-horizontal-group.component.mjs +42 -0
  160. package/esm2022/lib/ui-check-box/ui-check-box.component.mjs +39 -0
  161. package/esm2022/lib/ui-color-ui/ui-color-ui.component.mjs +50 -0
  162. package/esm2022/lib/ui-container-with-button/ui-container-with-button.component.mjs +38 -0
  163. package/esm2022/lib/ui-date-range-ex/ui-date-range-ex.component.mjs +191 -0
  164. package/esm2022/lib/ui-date-time/ui-date-time.component.mjs +150 -0
  165. package/esm2022/lib/ui-editable-grid/ui-editable-grid.component.mjs +108 -0
  166. package/esm2022/lib/ui-exception-form/ui-exception-form.component.mjs +53 -0
  167. package/esm2022/lib/ui-file-linear-list-box/ui-file-linear-list-box.component.mjs +124 -0
  168. package/esm2022/lib/ui-form-panel/ui-form-panel.component.mjs +103 -0
  169. package/esm2022/lib/ui-gantt-chart/ui-gantt-chart.component.mjs +32 -0
  170. package/esm2022/lib/ui-graph/ui-graph.component.mjs +17 -0
  171. package/esm2022/lib/ui-grid/ui-grid.component.mjs +25 -0
  172. package/esm2022/lib/ui-grid-columns/ui-grid-columns.component.mjs +43 -0
  173. package/esm2022/lib/ui-grid-filter-item/ui-grid-filter-item.component.mjs +66 -0
  174. package/esm2022/lib/ui-grid-filter-settings/ui-grid-filter-settings.component.mjs +75 -0
  175. package/esm2022/lib/ui-grid-sort-item/ui-grid-sort-item.component.mjs +58 -0
  176. package/esm2022/lib/ui-grid-sort-setting/ui-grid-sort-setting.component.mjs +123 -0
  177. package/esm2022/lib/ui-html-viewer/ui-html-viewer.component.mjs +16 -0
  178. package/esm2022/lib/ui-info-bar-panel/ui-info-bar-panel.component.mjs +11 -0
  179. package/esm2022/lib/ui-label/ui-label.component.mjs +12 -0
  180. package/esm2022/lib/ui-linear-list-container-with-button/ui-linear-list-container-with-button.component.mjs +379 -0
  181. package/esm2022/lib/ui-list-view/ui-list-view.component.mjs +84 -0
  182. package/esm2022/lib/ui-map/ui-map.component.mjs +68 -0
  183. package/esm2022/lib/ui-matrix-view/ui-matrix-view.component.mjs +124 -0
  184. package/esm2022/lib/ui-mo-info-combo-viewer/ui-mo-info-combo-viewer.component.mjs +19 -0
  185. package/esm2022/lib/ui-mo-info-general-object-ui/ui-mo-info-general-object-ui.component.mjs +14 -0
  186. package/esm2022/lib/ui-mo-info-sub-form-ui/ui-mo-info-sub-form-ui.component.mjs +55 -0
  187. package/esm2022/lib/ui-mo-info-ulv-combo/ui-mo-info-ulv-combo.component.mjs +429 -0
  188. package/esm2022/lib/ui-monaco-editor/ui-monaco-editor.component.mjs +28 -0
  189. package/esm2022/lib/ui-multi-select-card/ui-multi-select-card.component.mjs +37 -0
  190. package/esm2022/lib/ui-multi-select-checkbox/ui-multi-select-checkbox.component.mjs +59 -0
  191. package/esm2022/lib/ui-multi-select-combo/ui-multi-select-combo.component.mjs +93 -0
  192. package/esm2022/lib/ui-multi-select-radio/ui-multi-select-radio.component.mjs +36 -0
  193. package/esm2022/lib/ui-multi-select-slider/ui-multi-select-slider.component.mjs +56 -0
  194. package/esm2022/lib/ui-multi-select-smile/ui-multi-select-smile.component.mjs +28 -0
  195. package/esm2022/lib/ui-notification-view/ui-notification-view.component.mjs +47 -0
  196. package/esm2022/lib/ui-num-decimal-ui/ui-num-decimal-ui.component.mjs +33 -0
  197. package/esm2022/lib/ui-num-int-slider/ui-num-int-slider.component.mjs +27 -0
  198. package/esm2022/lib/ui-num-int-ui/ui-num-int-ui.component.mjs +21 -0
  199. package/esm2022/lib/ui-pdf-viewer/ui-pdf-viewer.component.mjs +268 -0
  200. package/esm2022/lib/ui-picture-file/ui-picture-file.component.mjs +101 -0
  201. package/esm2022/lib/ui-pictures-info/ui-pictures-info.component.mjs +261 -0
  202. package/esm2022/lib/ui-radio-group/ui-radio-group.component.mjs +48 -0
  203. package/esm2022/lib/ui-read-only-field/ui-read-only-field.component.mjs +36 -0
  204. package/esm2022/lib/ui-report-container/ui-report-container.component.mjs +46 -0
  205. package/esm2022/lib/ui-search-command-info-ui/ui-search-command-info-ui.component.mjs +24 -0
  206. package/esm2022/lib/ui-simple-combo/ui-simple-combo.component.mjs +55 -0
  207. package/esm2022/lib/ui-single-picture/ui-single-picture.component.mjs +36 -0
  208. package/esm2022/lib/ui-switch-button/ui-switch-button.component.mjs +20 -0
  209. package/esm2022/lib/ui-table-view/ui-table-view.component.mjs +296 -0
  210. package/esm2022/lib/ui-text-area/ui-text-area.component.mjs +49 -0
  211. package/esm2022/lib/ui-text-field/ui-text-field.component.mjs +52 -0
  212. package/esm2022/lib/ui-text-field-auto-complete/ui-text-field-auto-complete.component.mjs +48 -0
  213. package/esm2022/lib/ui-time-span/ui-time-span.component.mjs +24 -0
  214. package/esm2022/lib/ui-tinymce/ui-tinymce.component.mjs +53 -0
  215. package/esm2022/lib/ui-tree/ui-tree.component.mjs +114 -0
  216. package/esm2022/lib/ui-tree-view/ui-tree-view.component.mjs +100 -0
  217. package/esm2022/lib/ui-ulv-form-multi-select-ui/ui-ulv-form-multi-select-ui.component.mjs +23 -0
  218. package/esm2022/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.mjs +310 -0
  219. package/esm2022/lib/ui-workflow-panel-ui/ui-workflow-panel-ui.component.mjs +25 -0
  220. package/esm2022/lib/ul-loading-mask-ui/ul-loading-mask-ui.component.mjs +93 -0
  221. package/esm2022/lib/ul-msg-box-adapter/ul-msg-box-adapter.component.mjs +119 -0
  222. package/esm2022/lib/ul-notify-popup/ul-notify-popup.component.mjs +32 -0
  223. package/esm2022/lib/ul-toast-adapter/ul-toast-adapter.component.mjs +48 -0
  224. package/esm2022/lib/ulv-column-settings/ulv-column-settings.component.mjs +53 -0
  225. package/esm2022/lib/ulv-context-menu/ulv-context-menu.component.mjs +116 -0
  226. package/esm2022/lib/ulv-filter-settings/ulv-filter-settings.component.mjs +43 -0
  227. package/esm2022/lib/ulv-form-multi-select/ulv-form-multi-select.component.mjs +196 -0
  228. package/esm2022/lib/ulv-groupby-settings/ulv-groupby-settings.component.mjs +44 -0
  229. package/esm2022/lib/ulv-paging/ulv-paging.component.mjs +84 -0
  230. package/esm2022/lib/ulv-selection/ulv-selection.component.mjs +65 -0
  231. package/esm2022/lib/ulv-settings/ulv-settings.component.mjs +116 -0
  232. package/esm2022/lib/ulv-sort-settings/ulv-sort-settings.component.mjs +54 -0
  233. package/esm2022/lib/ulv-toolbar/ulv-toolbar.component.mjs +177 -0
  234. package/esm2022/lib/upload-file-status.pipe.mjs +29 -0
  235. package/esm2022/lib/util-chat-time-badge.pipe.mjs +18 -0
  236. package/esm2022/lib/util-date-to-hh-mm.pipe.mjs +23 -0
  237. package/esm2022/lib/wizard-layout.directive.mjs +104 -0
  238. package/esm2022/public-api.mjs +236 -0
  239. package/fesm2022/barsa-sap-ui.mjs +4 -4
  240. package/fesm2022/barsa-sap-ui.mjs.map +1 -1
  241. package/package.json +3 -1
@@ -0,0 +1,28 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { FieldBaseComponent, BarsaApi } from 'barsa-novin-ray-core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@fundamental-ngx/core/button";
5
+ import * as i2 from "@fundamental-ngx/core/form";
6
+ import * as i3 from "@angular/common";
7
+ export class CaptchaFieldComponent extends FieldBaseComponent {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.now = new Date().toString();
11
+ this.capId = BarsaApi.LoginFormData.CaptchaId;
12
+ }
13
+ onValueChange(e) {
14
+ this.value = e.target.value;
15
+ this.valueChange.emit(this.value);
16
+ }
17
+ onRefresh() {
18
+ this.now = new Date().toString();
19
+ this._cdr.detectChanges();
20
+ }
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CaptchaFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
22
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CaptchaFieldComponent, selector: "bsu-captcha-field", usesInheritance: true, ngImport: i0, template: "<input\r\n fd-form-control\r\n [placeholder]=\"Setting.NullText || ''\"\r\n [attr.readonly]=\"(readonly$ | async) === true ? true : null\"\r\n [attr.disabled]=\"(disable$ | async) === true ? true : null\"\r\n type=\"text\"\r\n [value]=\"!value ? '' : value\"\r\n [id]=\"id\"\r\n (input)=\"onValueChange($event)\"\r\n/>\r\n<div id=\"captchaCommand\">\r\n <img [src]=\"'/api/auth/captcha?capId=' + capId + '&t=' + now\" />\r\n <button\r\n fd-button\r\n [fdType]=\"'transparent'\"\r\n [glyph]=\"'refresh'\"\r\n aria-label=\"refresh\"\r\n title=\"captcha\"\r\n (click)=\"onRefresh()\"\r\n ></button>\r\n</div>\r\n", styles: [":host{display:flex;align-items:center;gap:.2rem}#captchaCommand{flex-grow:1;display:flex;width:100%;align-items:center;justify-content:start}img{flex-grow:1;max-width:170px;height:40px;width:auto}input{font-size:1rem}@media (max-width: 599px){img{max-width:140px}}\n"], dependencies: [{ kind: "component", type: i1.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i2.FormControlComponent, selector: "input[fd-form-control], textarea[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
23
+ }
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CaptchaFieldComponent, decorators: [{
25
+ type: Component,
26
+ args: [{ selector: 'bsu-captcha-field', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<input\r\n fd-form-control\r\n [placeholder]=\"Setting.NullText || ''\"\r\n [attr.readonly]=\"(readonly$ | async) === true ? true : null\"\r\n [attr.disabled]=\"(disable$ | async) === true ? true : null\"\r\n type=\"text\"\r\n [value]=\"!value ? '' : value\"\r\n [id]=\"id\"\r\n (input)=\"onValueChange($event)\"\r\n/>\r\n<div id=\"captchaCommand\">\r\n <img [src]=\"'/api/auth/captcha?capId=' + capId + '&t=' + now\" />\r\n <button\r\n fd-button\r\n [fdType]=\"'transparent'\"\r\n [glyph]=\"'refresh'\"\r\n aria-label=\"refresh\"\r\n title=\"captcha\"\r\n (click)=\"onRefresh()\"\r\n ></button>\r\n</div>\r\n", styles: [":host{display:flex;align-items:center;gap:.2rem}#captchaCommand{flex-grow:1;display:flex;width:100%;align-items:center;justify-content:start}img{flex-grow:1;max-width:170px;height:40px;width:auto}input{font-size:1rem}@media (max-width: 599px){img{max-width:140px}}\n"] }]
27
+ }] });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwdGNoYS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi9jYXB0Y2hhLWZpZWxkL2NhcHRjaGEtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvY2FwdGNoYS1maWVsZC9jYXB0Y2hhLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7OztBQVNwRSxNQUFNLE9BQU8scUJBQXNCLFNBQVEsa0JBQWtCO0lBUDdEOztRQVFJLFFBQUcsR0FBVyxJQUFJLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3BDLFVBQUssR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQztLQVM1QztJQVJHLGFBQWEsQ0FBQyxDQUFDO1FBQ1gsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUNELFNBQVM7UUFDTCxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM5QixDQUFDOytHQVZRLHFCQUFxQjttR0FBckIscUJBQXFCLGdGQ1hsQyw4cUJBcUJBOzs0RkRWYSxxQkFBcUI7a0JBUGpDLFNBQVM7K0JBQ0ksbUJBQW1CLG1CQUdaLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEZpZWxkQmFzZUNvbXBvbmVudCwgQmFyc2FBcGkgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYnN1LWNhcHRjaGEtZmllbGQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NhcHRjaGEtZmllbGQuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vY2FwdGNoYS1maWVsZC5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2FwdGNoYUZpZWxkQ29tcG9uZW50IGV4dGVuZHMgRmllbGRCYXNlQ29tcG9uZW50IHtcclxuICAgIG5vdzogc3RyaW5nID0gbmV3IERhdGUoKS50b1N0cmluZygpO1xyXG4gICAgY2FwSWQgPSBCYXJzYUFwaS5Mb2dpbkZvcm1EYXRhLkNhcHRjaGFJZDtcclxuICAgIG9uVmFsdWVDaGFuZ2UoZSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSBlLnRhcmdldC52YWx1ZTtcclxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBvblJlZnJlc2goKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5ub3cgPSBuZXcgRGF0ZSgpLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxufVxyXG4iLCI8aW5wdXRcclxuICAgIGZkLWZvcm0tY29udHJvbFxyXG4gICAgW3BsYWNlaG9sZGVyXT1cIlNldHRpbmcuTnVsbFRleHQgfHwgJydcIlxyXG4gICAgW2F0dHIucmVhZG9ubHldPVwiKHJlYWRvbmx5JCB8IGFzeW5jKSA9PT0gdHJ1ZSA/IHRydWUgOiBudWxsXCJcclxuICAgIFthdHRyLmRpc2FibGVkXT1cIihkaXNhYmxlJCB8IGFzeW5jKSA9PT0gdHJ1ZSA/IHRydWUgOiBudWxsXCJcclxuICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgIFt2YWx1ZV09XCIhdmFsdWUgPyAnJyA6IHZhbHVlXCJcclxuICAgIFtpZF09XCJpZFwiXHJcbiAgICAoaW5wdXQpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcclxuLz5cclxuPGRpdiBpZD1cImNhcHRjaGFDb21tYW5kXCI+XHJcbiAgICA8aW1nIFtzcmNdPVwiJy9hcGkvYXV0aC9jYXB0Y2hhP2NhcElkPScgKyBjYXBJZCArICcmdD0nICsgbm93XCIgLz5cclxuICAgIDxidXR0b25cclxuICAgICAgICBmZC1idXR0b25cclxuICAgICAgICBbZmRUeXBlXT1cIid0cmFuc3BhcmVudCdcIlxyXG4gICAgICAgIFtnbHlwaF09XCIncmVmcmVzaCdcIlxyXG4gICAgICAgIGFyaWEtbGFiZWw9XCJyZWZyZXNoXCJcclxuICAgICAgICB0aXRsZT1cImNhcHRjaGFcIlxyXG4gICAgICAgIChjbGljayk9XCJvblJlZnJlc2goKVwiXHJcbiAgICA+PC9idXR0b24+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -0,0 +1,74 @@
1
+ import { Component, ChangeDetectionStrategy, Input, ViewChild } from '@angular/core';
2
+ import { BaseViewItemPropsComponent, FormPanelService } from 'barsa-novin-ray-core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "@angular/forms";
6
+ import * as i3 from "barsa-novin-ray-core";
7
+ import * as i4 from "@fundamental-ngx/core/avatar";
8
+ import * as i5 from "@fundamental-ngx/core/link";
9
+ import * as i6 from "@fundamental-ngx/core/button";
10
+ import * as i7 from "@fundamental-ngx/core/card";
11
+ import * as i8 from "@fundamental-ngx/core/checkbox";
12
+ import * as i9 from "@fundamental-ngx/core/form";
13
+ import * as i10 from "@fundamental-ngx/core/layout-grid";
14
+ import * as i11 from "@fundamental-ngx/core/popover";
15
+ import * as i12 from "@fundamental-ngx/core/quick-view";
16
+ import * as i13 from "../ulv-context-menu/ulv-context-menu.component";
17
+ import * as i14 from "../barsa-table-column/barsa-table-column.component";
18
+ import * as i15 from "../apply-conditional-formmatings.directive";
19
+ export class CardItemComponent extends BaseViewItemPropsComponent {
20
+ ngOnInit() {
21
+ super.ngOnInit();
22
+ switch (this.setting.CardType$Caption) {
23
+ case 'inline-fields':
24
+ this.contentTemplateRef = this._contentTemplate;
25
+ break;
26
+ default:
27
+ this.contentTemplateRef = this._quickViewTemplate;
28
+ break;
29
+ }
30
+ const setting = this.setting;
31
+ if (setting.ContextMenuInFooter) {
32
+ this.contextMenuInFooter = true;
33
+ }
34
+ this.contextMenuEnabled =
35
+ (this.contextMenuInFooter || this.deviceName !== 'desktop' || this.openOnClick) &&
36
+ this.contextMenuItems &&
37
+ this.contextMenuItems.length > 0;
38
+ switch (this.setting.CardType$Caption) {
39
+ case 'inline-fields':
40
+ this.contentTemplateRef = this._contentTemplate;
41
+ break;
42
+ default:
43
+ this.contentTemplateRef = this._quickViewTemplate;
44
+ break;
45
+ }
46
+ if (!this.detailsText && this.detailsTextFunction) {
47
+ // eslint-disable-next-line no-eval
48
+ this.detailsText = eval('(' + this.detailsTextFunction + '.bind(this)())');
49
+ }
50
+ if (!setting.FieldList && !setting.ContentComponent) {
51
+ this.noContent = true;
52
+ }
53
+ if (setting.CardWidth) {
54
+ this.minWidth = this.maxWidth = this.cardWidth = setting.CardWidth;
55
+ }
56
+ }
57
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CardItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
58
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CardItemComponent, selector: "bsu-card-item", inputs: { setting: "setting", extraFooterComponent: "extraFooterComponent" }, providers: [FormPanelService], viewQueries: [{ propertyName: "_quickViewTemplate", first: true, predicate: ["quickViewTemplate"], descendants: true, static: true }, { propertyName: "_contentTemplate", first: true, predicate: ["contentTemplate"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<fd-card\r\n [cardType]=\"setting.CardType$Caption\"\r\n class=\"docs-flex-item-margin\"\r\n [class.openOnClick]=\"setting.openOnClick\"\r\n [style.width]=\"cardWidth\"\r\n [style.min-width]=\"minWidth\"\r\n [style.max-width]=\"maxWidth\"\r\n>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n setting.HeaderComponent ? renderHeaderComponent : renderHeader;\r\n context: {\r\n $implicit: mo,\r\n index: this.index\r\n }\r\n \"\r\n ></ng-container>\r\n\r\n @if (!noContent || contextMenuItems) {\r\n <fd-card-content (click)=\"onRowCheck()\" (dblclick)=\"onRowClick()\" ellipsify>\r\n <div #divEl [applyConditionalFormats]=\"conditionalFormats\" [styleIndex]=\"styleIndex\" [hostEl]=\"divEl\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n setting.ContentComponent ? contentTemplateComponent : contentTemplateRef;\r\n context: {\r\n $implicit: mo,\r\n index: this.index\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n </fd-card-content>\r\n } @if(detailsText || contextMenuEnabled){\r\n <fd-card-footer\r\n (click)=\"!isChecked && onRowCheck(true)\"\r\n (dblclick)=\"onRowClick()\"\r\n [class.extra-footer]=\"extraFooterComponent\"\r\n [class.hasDetailsAndContextMenu]=\"detailsText && contextMenuEnabled && contextMenuInFooter\"\r\n [class.!tw-border-y-0]=\"noContent\"\r\n >\r\n @if(extraFooterComponent){\r\n <bnrc-dynamic-item-component\r\n style=\"display: block; flex: 1\"\r\n [component]=\"extraFooterComponent\"\r\n [mo]=\"mo\"\r\n [styleIndex]=\"mo.$StyleIndex\"\r\n [isChecked]=\"isChecked\"\r\n [setting]=\"setting\"\r\n [parameters]=\"extraFooterComponent.Settings\"\r\n [editMode]=\"inlineEditMode\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [index]=\"index\"\r\n [allColumns]=\"allColumns\"\r\n ></bnrc-dynamic-item-component>\r\n } @if(detailsText){<button *fdCardFooterActionItem fd-button fdType=\"transparent\" [fdPopoverTrigger]=\"popover\">\r\n {{ detailsText }}\r\n </button>\r\n } @if(contextMenuInFooter){\r\n <div\r\n *fdCardFooterActionItem\r\n ulvContextMenu\r\n [allColumns]=\"allColumns\"\r\n [footerMode]=\"false\"\r\n [menuItems]=\"contextMenuItems\"\r\n [contextMenuOverflowText]=\"contextMenuOverflowText\"\r\n [styleIndex]=\"styleIndex\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [mo]=\"mo\"\r\n (commandClick)=\"onUlvCommand()\"\r\n ></div>\r\n }\r\n <fd-popover #popover>\r\n @if (detailsColumns?.length) {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n detailsColumnsTemplate;\r\n context: { mo: mo, inlineEditMode: inlineEditMode, layout94: layout$ | async }\r\n \"\r\n ></ng-container>\r\n }\r\n </fd-popover>\r\n </fd-card-footer>\r\n }\r\n</fd-card>\r\n<ng-template #detailsColumnsTemplate let-mo=\"mo\" let-inlineEditMode=\"inlineEditMode\" let-layout94=\"layout94\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n detailsFormItems;\r\n context: {\r\n $implicit: detailsColumns,\r\n mo: this.mo,\r\n inlineEditMode: this.inlineEditMode,\r\n layout94: layout94\r\n }\r\n \"\r\n ></ng-container>\r\n</ng-template>\r\n<ng-template\r\n #detailsFormItems\r\n let-detailsColumns\r\n let-mo=\"mo\"\r\n let-inlineEditMode=\"inlineEditMode\"\r\n let-layout94=\"layout94\"\r\n>\r\n <div class=\"form-items\" class=\"tw-p-2\">\r\n @for (column of detailsColumns; track column; let columnIndex = $index) {\r\n <div fd-form-item class=\"!tw-flex-row\">\r\n @if(!column.$CustomComponent?.HideColumnCaption) {<label fd-form-label for=\"input-2\"\r\n >{{ column.Caption }}<span>:</span></label\r\n >}\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: column,\r\n mo: mo,\r\n index: columnIndex,\r\n inlineEditMode: inlineEditMode,\r\n layout94: layout94\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n }\r\n </div>\r\n</ng-template>\r\n<ng-template\r\n #columnTemplate\r\n let-column\r\n let-mo=\"mo\"\r\n let-index=\"index\"\r\n let-layout94=\"layout94\"\r\n let-disableEllapsis=\"disableEllapsis\"\r\n let-fdTextMode=\"fdTextMode\"\r\n>\r\n @if (column) {\r\n <bsu-barsa-table-column\r\n [mo]=\"mo\"\r\n [allColumns]=\"allColumns\"\r\n [column]=\"column\"\r\n [isdirty]=\"false\"\r\n [value]=\"column | columnValue: mo\"\r\n [icon]=\"column | columnIcon: mo\"\r\n [customComponent]=\"column.$CustomComponent\"\r\n [column]=\"column\"\r\n [disableEllapsis]=\"disableEllapsis === false ? false : true\"\r\n [fdTextMode]=\"fdTextMode\"\r\n [editMode]=\"isChecked && inlineEditMode && allowInlineEdit\"\r\n [inlineEditMode]=\"inlineEditMode\"\r\n [isChecked]=\"isChecked\"\r\n [index]=\"index\"\r\n [formSetting]=\"formSetting\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [layout94]=\"layout94\"\r\n (save)=\"onEditFormPanelSave(null)\"\r\n (cancel)=\"onEditFormPanelCancel(null)\"\r\n (tab)=\"onTabKeyDown($event, index)\"\r\n (changeToEditMode)=\"onColumnChangeToEditMode($event, index)\"\r\n >\r\n </bsu-barsa-table-column>\r\n\r\n }\r\n</ng-template>\r\n<ng-template #quickViewTemplate let-mo let-index=\"index\">\r\n @if (!noContent) {\r\n <fd-quick-view [id]=\"'id'\">\r\n <fd-quick-view-group>\r\n @for (column of setting.FieldListMapped; track column) {\r\n <fd-quick-view-group-item [class.rowDirection]=\"column?.$CustomComponent?.IsRowDirection\">\r\n @if (column) { @if(!column.$CustomComponent?.HideColumnCaption) {<fd-quick-view-group-item-label>\r\n {{ column.Caption | bbbTranslate }} </fd-quick-view-group-item-label\r\n >}\r\n <fd-quick-view-group-item-content>\r\n <div fd-quick-view-group-item-content-element class=\"group-item-content\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: column,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n </fd-quick-view-group-item-content>\r\n }\r\n </fd-quick-view-group-item>\r\n } @if (setting.DescriptionField) {\r\n <fd-quick-view-group-item>\r\n <fd-quick-view-group-item-content>\r\n @if (inlineEditMode && allowInlineEdit) {\r\n <fd-quick-view-group-item-label>\r\n {{ setting.DescriptionField?.Alias | bbbTranslate }}\r\n </fd-quick-view-group-item-label>\r\n }\r\n <div fd-quick-view-group-item-content-element class=\"group-item-content\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.DescriptionField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n </fd-quick-view-group-item-content>\r\n @if (setting.ActionFieldNameField) {\r\n <fd-quick-view-group-item-content\r\n class=\"action\"\r\n (click)=\"onAction(setting.ActionFieldCommandField || '')\"\r\n >\r\n <a fd-link>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.ActionFieldNameField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </a>\r\n </fd-quick-view-group-item-content>\r\n }\r\n </fd-quick-view-group-item>\r\n }\r\n </fd-quick-view-group>\r\n </fd-quick-view>\r\n }\r\n</ng-template>\r\n<ng-template #contentTemplate let-mo let-index=\"index\">\r\n <fd-layout-grid>\r\n <div fdLayoutGridRow style=\"align-items: center\">\r\n <div [fdLayoutGridCol]=\"12\">\r\n @for (column of setting.FieldListMapped; track column) {\r\n <div style=\"display: flex\">\r\n <label fd-form-label [colon]=\"true\">{{ column.Caption | bbbTranslate }}</label>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: column,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n }\r\n </div>\r\n @if (setting.DescriptionField) {\r\n <div [fdLayoutGridCol]=\"12\">\r\n @if (inlineEditMode && allowInlineEdit) {\r\n <label>\r\n {{ setting.DescriptionField?.Alias | bbbTranslate }}\r\n </label>\r\n }\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.DescriptionField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n }\r\n </div>\r\n </fd-layout-grid>\r\n</ng-template>\r\n<ng-template #avatar let-avatar let-visible=\"visible\" let-circle=\"circle\" let-avatarField=\"avatarField\">\r\n @if (visible) {\r\n <fd-avatar\r\n alterIcon=\"alt|content|backup|default-icon\"\r\n [circle]=\"circle\"\r\n [image]=\"avatarField ? (mo[avatarField.Name]?.FileId | picFieldSrc: 'ID':avatarField.FieldDefId) : ''\"\r\n [size]=\"\r\n deviceSize === 'xl' || deviceSize === 'l' ? setting.AvatarSizeDesktop$Caption : setting.AvatarSize$Caption\r\n \"\r\n [glyph]=\"avatar || (mo.$State === 'New' && !isChecked ? 'favorite' : inlineEditMode && isChecked ? 'edit' : '')\"\r\n >\r\n </fd-avatar>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #contentTemplateComponent let-mo let-index=\"index\">\r\n <bnrc-dynamic-item-component\r\n [component]=\"setting.ContentComponent\"\r\n [mo]=\"mo\"\r\n [styleIndex]=\"mo.$StyleIndex\"\r\n [isChecked]=\"isChecked\"\r\n [setting]=\"setting\"\r\n [parameters]=\"setting.ContentComponent.Settings\"\r\n [editMode]=\"inlineEditMode\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [index]=\"index\"\r\n [allColumns]=\"allColumns\"\r\n ></bnrc-dynamic-item-component>\r\n</ng-template>\r\n\r\n<ng-template #renderHeader let-mo let-index=\"index\">\r\n @if(!hideOpenIcon && (openOnClick || (canView && deviceName !== 'desktop'))){\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n renderHeaderMobileCanView;\r\n context: {\r\n $implicit: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n }@else{\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n renderHeaderDesktop;\r\n context: {\r\n $implicit: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n }\r\n</ng-template>\r\n<ng-template #renderHeaderDesktop let-mo let-index=\"index\">\r\n <fd-card-header class=\"HeaderDesktop\">\r\n <div>\r\n @if(isCheckList){\r\n <fd-checkbox [name]=\"mo.$Caption\" [ngModel]=\"isChecked\" (ngModelChange)=\"onRowCheck()\"></fd-checkbox>\r\n }\r\n </div>\r\n <fd-card-main-header (click)=\"onRowCheck()\" (dblclick)=\"onRowClick()\">\r\n @if (setting.AvatarField || setting.Avatar) {\r\n <fd-avatar\r\n alterIcon=\"alt|content|backup|default-icon\"\r\n [circle]=\"setting.CircleAvatar\"\r\n [image]=\"\r\n setting.AvatarField\r\n ? (mo[setting.AvatarField.Name]?.FileId | picFieldSrc: 'ID':setting.AvatarField.FieldDefId)\r\n : ''\r\n \"\r\n [size]=\"\r\n deviceSize === 'xl' || deviceSize === 'l'\r\n ? setting.AvatarSizeDesktop$Caption\r\n : setting.AvatarSize$Caption\r\n \"\r\n [glyph]=\"\r\n setting.Avatar ||\r\n (mo.$State === 'New' && !isChecked ? 'favorite' : inlineEditMode && isChecked ? 'edit' : '')\r\n \"\r\n ></fd-avatar>\r\n }\r\n <h2 fd-card-title>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.TitleField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index,\r\n disableEllapsis: false,\r\n fdTextMode: true\r\n }\r\n \"\r\n ></ng-container>\r\n </h2>\r\n <h3 fd-card-subtitle>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.SubtitleField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index,\r\n disableEllapsis: false\r\n }\r\n \"\r\n ></ng-container>\r\n </h3>\r\n @if (!contextMenuInFooter && (contextMenuItems && contextMenuItems.length > 0)) {\r\n <div\r\n ulvContextMenu\r\n fd-card-header-action\r\n [allColumns]=\"allColumns\"\r\n [footerMode]=\"false\"\r\n [menuItems]=\"contextMenuItems\"\r\n [contextMenuOverflowText]=\"contextMenuOverflowText\"\r\n [styleIndex]=\"styleIndex\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [mo]=\"mo\"\r\n (commandClick)=\"onUlvCommand()\"\r\n ></div>\r\n }\r\n </fd-card-main-header>\r\n </fd-card-header>\r\n</ng-template>\r\n<ng-template #renderHeaderMobileCanView let-mo let-index=\"index\">\r\n <fd-card-header class=\"HeaderMobileCanView\">\r\n <div>\r\n @if(isCheckList){\r\n <fd-checkbox [name]=\"mo.$Caption\" [ngModel]=\"isChecked\" (ngModelChange)=\"onRowCheck()\"></fd-checkbox>\r\n }\r\n </div>\r\n <fd-card-main-header (click)=\"onRowCheck()\" (dblclick)=\"onRowClick()\">\r\n @if (setting.AvatarField || setting.Avatar) {\r\n <fd-avatar\r\n alterIcon=\"alt|content|backup|default-icon\"\r\n [circle]=\"setting.CircleAvatar\"\r\n [image]=\"\r\n setting.AvatarField\r\n ? (mo[setting.AvatarField.Name]?.FileId | picFieldSrc: 'ID':setting.AvatarField.FieldDefId)\r\n : ''\r\n \"\r\n [size]=\"\r\n deviceSize === 'xl' || deviceSize === 'l'\r\n ? setting.AvatarSizeDesktop$Caption\r\n : setting.AvatarSize$Caption\r\n \"\r\n [glyph]=\"\r\n setting.Avatar ||\r\n (mo.$State === 'New' && !isChecked ? 'favorite' : inlineEditMode && isChecked ? 'edit' : '')\r\n \"\r\n ></fd-avatar>\r\n }\r\n <h2 fd-card-title>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.TitleField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index,\r\n fdTextMode: true\r\n }\r\n \"\r\n ></ng-container>\r\n </h2>\r\n <h3 fd-card-subtitle>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.SubtitleField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </h3>\r\n\r\n @if (!contextMenuInFooter && (contextMenuItems && contextMenuItems.length > 0)) {\r\n <div\r\n ulvContextMenu\r\n fd-card-header-action\r\n [allColumns]=\"allColumns\"\r\n [footerMode]=\"false\"\r\n [menuItems]=\"contextMenuItems\"\r\n [contextMenuOverflowText]=\"contextMenuOverflowText\"\r\n [styleIndex]=\"styleIndex\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [mo]=\"mo\"\r\n (commandClick)=\"onUlvCommand()\"\r\n ></div>\r\n }@else {\r\n <button\r\n fd-button\r\n fd-card-header-action\r\n class=\"view-btn\"\r\n (click)=\"onRowClick()\"\r\n [glyph]=\"navigationArrow\"\r\n fdType=\"transparent\"\r\n ></button>\r\n }\r\n </fd-card-main-header>\r\n </fd-card-header>\r\n</ng-template>\r\n<ng-template #renderHeaderComponent let-mo let-index=\"index\">\r\n <bnrc-dynamic-item-component\r\n [component]=\"setting.HeaderComponent\"\r\n [mo]=\"mo\"\r\n [styleIndex]=\"mo.$StyleIndex\"\r\n [isChecked]=\"isChecked\"\r\n [setting]=\"setting\"\r\n [parameters]=\"setting.HeaderComponent.Settings\"\r\n [editMode]=\"inlineEditMode\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [index]=\"index\"\r\n [allColumns]=\"allColumns\"\r\n [contextMenuItems]=\"contextMenuItems\"\r\n [canView]=\"canView\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [navigationArrow]=\"navigationArrow\"\r\n [isCheckList]=\"isCheckList\"\r\n (events)=\"onDynamicComponentEvents($event)\"\r\n ></bnrc-dynamic-item-component>\r\n</ng-template>\r\n", styles: ["fd-card:hover{box-shadow:0 0 0 .0625rem #2235487a,0 .625rem 1.875rem #22354840}fd-card div[ulvcontextmenu] ::ng-deep .fd-bar{background-color:transparent}fd-card ::ng-deep bsu-column-renderer div.renderGeneral{font-family:IranYekanDigits}fd-card fd-card-footer.extra-footer{flex-wrap:wrap}fd-card fd-card-footer.hasDetailsAndContextMenu ::ng-deep .fd-card__footer-actions{justify-content:space-between!important}fd-card fd-card-content{padding:0!important}fd-card fd-card-content>div>fd-quick-view ::ng-deep .fd-quick-view__content{padding-top:0}fd-card fd-card-content>div>fd-quick-view fd-quick-view-group-item.rowDirection ::ng-deep .fd-form-item{flex-direction:row}fd-card fd-card-header{padding:.5rem}fd-card fd-card-header:hover{background:var(--fdCard_Background_Color)}fd-card fd-card-header .fd-card__title{display:flex;justify-content:space-between;align-items:center;width:100%}fd-card fd-card-header button,fd-card fd-card-header div[ulvcontextmenu]{z-index:6}fd-card fd-card-header:hover{background:inherit}fd-quick-view-subheader ::ng-deep div{background:inherit}.action{cursor:pointer;margin-top:6px;flex:1;display:flex;justify-content:end;flex-direction:column}.openOnClick{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.DynamicItemComponent, selector: "bnrc-dynamic-item-component", inputs: ["mo", "allColumns", "moDataList", "columns", "column", "index", "last", "deviceName", "deviceSize", "rtl", "editMode", "setting", "parameters", "contextMenuItems", "canView", "showRowNumber", "rowNumber", "formSetting", "conditionalFormats", "disableOverflowContextMenu", "navigationArrow", "isCheckList", "fields", "isChecked", "layout94$", "inlineEditMode", "isNewInlineMo", "allowInlineEdit", "typeDefId", "rowIndicator", "rowIndicatorColor", "UlvMainCtrlr"] }, { kind: "directive", type: i3.EllipsifyDirective, selector: "[ellipsify]", inputs: ["limitLine"] }, { kind: "component", type: i4.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: "component", type: i5.LinkComponent, selector: "[fdLink], [fd-link]", inputs: ["class", "emphasized", "disabled", "inverted", "subtle", "undecorated"] }, { kind: "component", type: i6.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i7.CardComponent, selector: "fd-card", inputs: ["badge", "badgeIcon", "badgeColor", "badgeColorSecondary", "badgeStatus", "badgeAriaLabel", "secondBadge", "secondBadgeIcon", "secondBadgeColor", "secondBadgeColorSecondary", "secondBadgeStatus", "secondBadgeAriaLabel", "isLoading", "cardType", "id", "ariaRoledescription", "ariaDescription", "ariaLabel", "role", "interactive", "selected", "ariaPosinset", "ariaSetsize"], outputs: ["ariaPosinsetChange", "ariaSetsizeChange"] }, { kind: "component", type: i7.CardHeaderComponent, selector: "fd-card-header", inputs: ["ariaRoleDescription"] }, { kind: "component", type: i7.CardMainHeaderComponent, selector: "fd-card-main-header", inputs: ["interactive", "title"] }, { kind: "directive", type: i7.CardHeaderActionDirective, selector: "[fd-card-header-action]" }, { kind: "component", type: i7.CardContentComponent, selector: "fd-card-content" }, { kind: "directive", type: i7.CardTitleDirective, selector: "[fd-card-title]", inputs: ["id"] }, { kind: "directive", type: i7.CardSubtitleDirective, selector: "[fd-card-subtitle]" }, { kind: "component", type: i7.CardFooterComponent, selector: "fd-card-footer" }, { kind: "directive", type: i7.CardFooterActionItemDirective, selector: "[fdCardFooterActionItem]" }, { kind: "component", type: i8.CheckboxComponent, selector: "fd-checkbox", inputs: ["wrapLabel", "valignLabel", "ariaLabel", "role", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "readonly", "tristate", "tristateSelectable", "labelClass", "required", "displayOnly", "values", "standalone"], outputs: ["focusChange"] }, { kind: "component", type: i9.FormItemComponent, selector: "[fd-form-item]", inputs: ["isInline", "horizontal"] }, { kind: "component", type: i9.FormLabelComponent, selector: "[fd-form-label]", inputs: ["required", "colon", "alignLabelEnd", "inlineHelpContent", "inlineHelpGlyph", "inlineHelpTriggers", "inlineHelpBodyPlacement", "inlineHelpPlacement", "allowWrap", "inlineHelpLabel", "id"] }, { kind: "component", type: i10.LayoutGridComponent, selector: "fd-layout-grid, [fdLayoutGrid]", inputs: ["class", "noGap", "noHorizontalGap", "noVerticalGap"] }, { kind: "directive", type: i10.LayoutGridColDirective, selector: "[fd-layout-grid-col], [fdLayoutGridCol]", inputs: ["fdLayoutGridCol", "colGrow", "colMd", "colLg", "colXl", "colOffset", "colOffsetMd", "colOffsetLg", "colOffsetXl", "class"] }, { kind: "directive", type: i10.LayoutGridRowDirective, selector: "[fd-layout-grid-row], [fdLayoutGridRow]" }, { kind: "component", type: i11.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "directive", type: i11.PopoverTriggerDirective, selector: "[fdPopoverTrigger], [fd-popover-trigger]", inputs: ["fdPopoverTrigger"] }, { kind: "component", type: i12.QuickViewComponent, selector: "fd-quick-view", inputs: ["id"] }, { kind: "component", type: i12.QuickViewGroupComponent, selector: "fd-quick-view-group" }, { kind: "component", type: i12.QuickViewGroupItemComponent, selector: "fd-quick-view-group-item", inputs: ["id"] }, { kind: "component", type: i12.QuickViewGroupItemLabelComponent, selector: "fd-quick-view-group-item-label" }, { kind: "component", type: i12.QuickViewGroupItemContentComponent, selector: "fd-quick-view-group-item-content" }, { kind: "directive", type: i12.QuickViewGroupItemContentElementDirective, selector: "[fd-quick-view-group-item-content-element]" }, { kind: "component", type: i13.UlvContextMenuComponent, selector: "bsu-ulv-context-menu,[ulvContextMenu]", inputs: ["onlyOverflow", "rightClickEnable", "deviceName", "menuItems", "allColumns", "index", "mo", "styleIndex", "conditionalFormats", "disableOverflowContextMenu", "footerMode", "contextMenuOverflowText", "appendTo"], outputs: ["commandClick"] }, { kind: "component", type: i14.BarsaTableColumnComponent, selector: "bsu-barsa-table-column", inputs: ["disableEllapsis", "fdTextMode"] }, { kind: "directive", type: i15.ApplyConditionalFormatsDirective, selector: "[applyConditionalFormats]", inputs: ["applyConditionalFormats", "styleIndex", "hostEl", "dbName"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i3.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i3.ColumnIconPipe, name: "columnIcon" }, { kind: "pipe", type: i3.ColumnValuePipe, name: "columnValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
59
+ }
60
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CardItemComponent, decorators: [{
61
+ type: Component,
62
+ args: [{ selector: 'bsu-card-item', providers: [FormPanelService], changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<fd-card\r\n [cardType]=\"setting.CardType$Caption\"\r\n class=\"docs-flex-item-margin\"\r\n [class.openOnClick]=\"setting.openOnClick\"\r\n [style.width]=\"cardWidth\"\r\n [style.min-width]=\"minWidth\"\r\n [style.max-width]=\"maxWidth\"\r\n>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n setting.HeaderComponent ? renderHeaderComponent : renderHeader;\r\n context: {\r\n $implicit: mo,\r\n index: this.index\r\n }\r\n \"\r\n ></ng-container>\r\n\r\n @if (!noContent || contextMenuItems) {\r\n <fd-card-content (click)=\"onRowCheck()\" (dblclick)=\"onRowClick()\" ellipsify>\r\n <div #divEl [applyConditionalFormats]=\"conditionalFormats\" [styleIndex]=\"styleIndex\" [hostEl]=\"divEl\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n setting.ContentComponent ? contentTemplateComponent : contentTemplateRef;\r\n context: {\r\n $implicit: mo,\r\n index: this.index\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n </fd-card-content>\r\n } @if(detailsText || contextMenuEnabled){\r\n <fd-card-footer\r\n (click)=\"!isChecked && onRowCheck(true)\"\r\n (dblclick)=\"onRowClick()\"\r\n [class.extra-footer]=\"extraFooterComponent\"\r\n [class.hasDetailsAndContextMenu]=\"detailsText && contextMenuEnabled && contextMenuInFooter\"\r\n [class.!tw-border-y-0]=\"noContent\"\r\n >\r\n @if(extraFooterComponent){\r\n <bnrc-dynamic-item-component\r\n style=\"display: block; flex: 1\"\r\n [component]=\"extraFooterComponent\"\r\n [mo]=\"mo\"\r\n [styleIndex]=\"mo.$StyleIndex\"\r\n [isChecked]=\"isChecked\"\r\n [setting]=\"setting\"\r\n [parameters]=\"extraFooterComponent.Settings\"\r\n [editMode]=\"inlineEditMode\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [index]=\"index\"\r\n [allColumns]=\"allColumns\"\r\n ></bnrc-dynamic-item-component>\r\n } @if(detailsText){<button *fdCardFooterActionItem fd-button fdType=\"transparent\" [fdPopoverTrigger]=\"popover\">\r\n {{ detailsText }}\r\n </button>\r\n } @if(contextMenuInFooter){\r\n <div\r\n *fdCardFooterActionItem\r\n ulvContextMenu\r\n [allColumns]=\"allColumns\"\r\n [footerMode]=\"false\"\r\n [menuItems]=\"contextMenuItems\"\r\n [contextMenuOverflowText]=\"contextMenuOverflowText\"\r\n [styleIndex]=\"styleIndex\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [mo]=\"mo\"\r\n (commandClick)=\"onUlvCommand()\"\r\n ></div>\r\n }\r\n <fd-popover #popover>\r\n @if (detailsColumns?.length) {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n detailsColumnsTemplate;\r\n context: { mo: mo, inlineEditMode: inlineEditMode, layout94: layout$ | async }\r\n \"\r\n ></ng-container>\r\n }\r\n </fd-popover>\r\n </fd-card-footer>\r\n }\r\n</fd-card>\r\n<ng-template #detailsColumnsTemplate let-mo=\"mo\" let-inlineEditMode=\"inlineEditMode\" let-layout94=\"layout94\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n detailsFormItems;\r\n context: {\r\n $implicit: detailsColumns,\r\n mo: this.mo,\r\n inlineEditMode: this.inlineEditMode,\r\n layout94: layout94\r\n }\r\n \"\r\n ></ng-container>\r\n</ng-template>\r\n<ng-template\r\n #detailsFormItems\r\n let-detailsColumns\r\n let-mo=\"mo\"\r\n let-inlineEditMode=\"inlineEditMode\"\r\n let-layout94=\"layout94\"\r\n>\r\n <div class=\"form-items\" class=\"tw-p-2\">\r\n @for (column of detailsColumns; track column; let columnIndex = $index) {\r\n <div fd-form-item class=\"!tw-flex-row\">\r\n @if(!column.$CustomComponent?.HideColumnCaption) {<label fd-form-label for=\"input-2\"\r\n >{{ column.Caption }}<span>:</span></label\r\n >}\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: column,\r\n mo: mo,\r\n index: columnIndex,\r\n inlineEditMode: inlineEditMode,\r\n layout94: layout94\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n }\r\n </div>\r\n</ng-template>\r\n<ng-template\r\n #columnTemplate\r\n let-column\r\n let-mo=\"mo\"\r\n let-index=\"index\"\r\n let-layout94=\"layout94\"\r\n let-disableEllapsis=\"disableEllapsis\"\r\n let-fdTextMode=\"fdTextMode\"\r\n>\r\n @if (column) {\r\n <bsu-barsa-table-column\r\n [mo]=\"mo\"\r\n [allColumns]=\"allColumns\"\r\n [column]=\"column\"\r\n [isdirty]=\"false\"\r\n [value]=\"column | columnValue: mo\"\r\n [icon]=\"column | columnIcon: mo\"\r\n [customComponent]=\"column.$CustomComponent\"\r\n [column]=\"column\"\r\n [disableEllapsis]=\"disableEllapsis === false ? false : true\"\r\n [fdTextMode]=\"fdTextMode\"\r\n [editMode]=\"isChecked && inlineEditMode && allowInlineEdit\"\r\n [inlineEditMode]=\"inlineEditMode\"\r\n [isChecked]=\"isChecked\"\r\n [index]=\"index\"\r\n [formSetting]=\"formSetting\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [layout94]=\"layout94\"\r\n (save)=\"onEditFormPanelSave(null)\"\r\n (cancel)=\"onEditFormPanelCancel(null)\"\r\n (tab)=\"onTabKeyDown($event, index)\"\r\n (changeToEditMode)=\"onColumnChangeToEditMode($event, index)\"\r\n >\r\n </bsu-barsa-table-column>\r\n\r\n }\r\n</ng-template>\r\n<ng-template #quickViewTemplate let-mo let-index=\"index\">\r\n @if (!noContent) {\r\n <fd-quick-view [id]=\"'id'\">\r\n <fd-quick-view-group>\r\n @for (column of setting.FieldListMapped; track column) {\r\n <fd-quick-view-group-item [class.rowDirection]=\"column?.$CustomComponent?.IsRowDirection\">\r\n @if (column) { @if(!column.$CustomComponent?.HideColumnCaption) {<fd-quick-view-group-item-label>\r\n {{ column.Caption | bbbTranslate }} </fd-quick-view-group-item-label\r\n >}\r\n <fd-quick-view-group-item-content>\r\n <div fd-quick-view-group-item-content-element class=\"group-item-content\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: column,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n </fd-quick-view-group-item-content>\r\n }\r\n </fd-quick-view-group-item>\r\n } @if (setting.DescriptionField) {\r\n <fd-quick-view-group-item>\r\n <fd-quick-view-group-item-content>\r\n @if (inlineEditMode && allowInlineEdit) {\r\n <fd-quick-view-group-item-label>\r\n {{ setting.DescriptionField?.Alias | bbbTranslate }}\r\n </fd-quick-view-group-item-label>\r\n }\r\n <div fd-quick-view-group-item-content-element class=\"group-item-content\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.DescriptionField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n </fd-quick-view-group-item-content>\r\n @if (setting.ActionFieldNameField) {\r\n <fd-quick-view-group-item-content\r\n class=\"action\"\r\n (click)=\"onAction(setting.ActionFieldCommandField || '')\"\r\n >\r\n <a fd-link>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.ActionFieldNameField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </a>\r\n </fd-quick-view-group-item-content>\r\n }\r\n </fd-quick-view-group-item>\r\n }\r\n </fd-quick-view-group>\r\n </fd-quick-view>\r\n }\r\n</ng-template>\r\n<ng-template #contentTemplate let-mo let-index=\"index\">\r\n <fd-layout-grid>\r\n <div fdLayoutGridRow style=\"align-items: center\">\r\n <div [fdLayoutGridCol]=\"12\">\r\n @for (column of setting.FieldListMapped; track column) {\r\n <div style=\"display: flex\">\r\n <label fd-form-label [colon]=\"true\">{{ column.Caption | bbbTranslate }}</label>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: column,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n }\r\n </div>\r\n @if (setting.DescriptionField) {\r\n <div [fdLayoutGridCol]=\"12\">\r\n @if (inlineEditMode && allowInlineEdit) {\r\n <label>\r\n {{ setting.DescriptionField?.Alias | bbbTranslate }}\r\n </label>\r\n }\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.DescriptionField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n }\r\n </div>\r\n </fd-layout-grid>\r\n</ng-template>\r\n<ng-template #avatar let-avatar let-visible=\"visible\" let-circle=\"circle\" let-avatarField=\"avatarField\">\r\n @if (visible) {\r\n <fd-avatar\r\n alterIcon=\"alt|content|backup|default-icon\"\r\n [circle]=\"circle\"\r\n [image]=\"avatarField ? (mo[avatarField.Name]?.FileId | picFieldSrc: 'ID':avatarField.FieldDefId) : ''\"\r\n [size]=\"\r\n deviceSize === 'xl' || deviceSize === 'l' ? setting.AvatarSizeDesktop$Caption : setting.AvatarSize$Caption\r\n \"\r\n [glyph]=\"avatar || (mo.$State === 'New' && !isChecked ? 'favorite' : inlineEditMode && isChecked ? 'edit' : '')\"\r\n >\r\n </fd-avatar>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #contentTemplateComponent let-mo let-index=\"index\">\r\n <bnrc-dynamic-item-component\r\n [component]=\"setting.ContentComponent\"\r\n [mo]=\"mo\"\r\n [styleIndex]=\"mo.$StyleIndex\"\r\n [isChecked]=\"isChecked\"\r\n [setting]=\"setting\"\r\n [parameters]=\"setting.ContentComponent.Settings\"\r\n [editMode]=\"inlineEditMode\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [index]=\"index\"\r\n [allColumns]=\"allColumns\"\r\n ></bnrc-dynamic-item-component>\r\n</ng-template>\r\n\r\n<ng-template #renderHeader let-mo let-index=\"index\">\r\n @if(!hideOpenIcon && (openOnClick || (canView && deviceName !== 'desktop'))){\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n renderHeaderMobileCanView;\r\n context: {\r\n $implicit: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n }@else{\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n renderHeaderDesktop;\r\n context: {\r\n $implicit: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n }\r\n</ng-template>\r\n<ng-template #renderHeaderDesktop let-mo let-index=\"index\">\r\n <fd-card-header class=\"HeaderDesktop\">\r\n <div>\r\n @if(isCheckList){\r\n <fd-checkbox [name]=\"mo.$Caption\" [ngModel]=\"isChecked\" (ngModelChange)=\"onRowCheck()\"></fd-checkbox>\r\n }\r\n </div>\r\n <fd-card-main-header (click)=\"onRowCheck()\" (dblclick)=\"onRowClick()\">\r\n @if (setting.AvatarField || setting.Avatar) {\r\n <fd-avatar\r\n alterIcon=\"alt|content|backup|default-icon\"\r\n [circle]=\"setting.CircleAvatar\"\r\n [image]=\"\r\n setting.AvatarField\r\n ? (mo[setting.AvatarField.Name]?.FileId | picFieldSrc: 'ID':setting.AvatarField.FieldDefId)\r\n : ''\r\n \"\r\n [size]=\"\r\n deviceSize === 'xl' || deviceSize === 'l'\r\n ? setting.AvatarSizeDesktop$Caption\r\n : setting.AvatarSize$Caption\r\n \"\r\n [glyph]=\"\r\n setting.Avatar ||\r\n (mo.$State === 'New' && !isChecked ? 'favorite' : inlineEditMode && isChecked ? 'edit' : '')\r\n \"\r\n ></fd-avatar>\r\n }\r\n <h2 fd-card-title>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.TitleField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index,\r\n disableEllapsis: false,\r\n fdTextMode: true\r\n }\r\n \"\r\n ></ng-container>\r\n </h2>\r\n <h3 fd-card-subtitle>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.SubtitleField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index,\r\n disableEllapsis: false\r\n }\r\n \"\r\n ></ng-container>\r\n </h3>\r\n @if (!contextMenuInFooter && (contextMenuItems && contextMenuItems.length > 0)) {\r\n <div\r\n ulvContextMenu\r\n fd-card-header-action\r\n [allColumns]=\"allColumns\"\r\n [footerMode]=\"false\"\r\n [menuItems]=\"contextMenuItems\"\r\n [contextMenuOverflowText]=\"contextMenuOverflowText\"\r\n [styleIndex]=\"styleIndex\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [mo]=\"mo\"\r\n (commandClick)=\"onUlvCommand()\"\r\n ></div>\r\n }\r\n </fd-card-main-header>\r\n </fd-card-header>\r\n</ng-template>\r\n<ng-template #renderHeaderMobileCanView let-mo let-index=\"index\">\r\n <fd-card-header class=\"HeaderMobileCanView\">\r\n <div>\r\n @if(isCheckList){\r\n <fd-checkbox [name]=\"mo.$Caption\" [ngModel]=\"isChecked\" (ngModelChange)=\"onRowCheck()\"></fd-checkbox>\r\n }\r\n </div>\r\n <fd-card-main-header (click)=\"onRowCheck()\" (dblclick)=\"onRowClick()\">\r\n @if (setting.AvatarField || setting.Avatar) {\r\n <fd-avatar\r\n alterIcon=\"alt|content|backup|default-icon\"\r\n [circle]=\"setting.CircleAvatar\"\r\n [image]=\"\r\n setting.AvatarField\r\n ? (mo[setting.AvatarField.Name]?.FileId | picFieldSrc: 'ID':setting.AvatarField.FieldDefId)\r\n : ''\r\n \"\r\n [size]=\"\r\n deviceSize === 'xl' || deviceSize === 'l'\r\n ? setting.AvatarSizeDesktop$Caption\r\n : setting.AvatarSize$Caption\r\n \"\r\n [glyph]=\"\r\n setting.Avatar ||\r\n (mo.$State === 'New' && !isChecked ? 'favorite' : inlineEditMode && isChecked ? 'edit' : '')\r\n \"\r\n ></fd-avatar>\r\n }\r\n <h2 fd-card-title>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.TitleField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index,\r\n fdTextMode: true\r\n }\r\n \"\r\n ></ng-container>\r\n </h2>\r\n <h3 fd-card-subtitle>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.SubtitleField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </h3>\r\n\r\n @if (!contextMenuInFooter && (contextMenuItems && contextMenuItems.length > 0)) {\r\n <div\r\n ulvContextMenu\r\n fd-card-header-action\r\n [allColumns]=\"allColumns\"\r\n [footerMode]=\"false\"\r\n [menuItems]=\"contextMenuItems\"\r\n [contextMenuOverflowText]=\"contextMenuOverflowText\"\r\n [styleIndex]=\"styleIndex\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [mo]=\"mo\"\r\n (commandClick)=\"onUlvCommand()\"\r\n ></div>\r\n }@else {\r\n <button\r\n fd-button\r\n fd-card-header-action\r\n class=\"view-btn\"\r\n (click)=\"onRowClick()\"\r\n [glyph]=\"navigationArrow\"\r\n fdType=\"transparent\"\r\n ></button>\r\n }\r\n </fd-card-main-header>\r\n </fd-card-header>\r\n</ng-template>\r\n<ng-template #renderHeaderComponent let-mo let-index=\"index\">\r\n <bnrc-dynamic-item-component\r\n [component]=\"setting.HeaderComponent\"\r\n [mo]=\"mo\"\r\n [styleIndex]=\"mo.$StyleIndex\"\r\n [isChecked]=\"isChecked\"\r\n [setting]=\"setting\"\r\n [parameters]=\"setting.HeaderComponent.Settings\"\r\n [editMode]=\"inlineEditMode\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [index]=\"index\"\r\n [allColumns]=\"allColumns\"\r\n [contextMenuItems]=\"contextMenuItems\"\r\n [canView]=\"canView\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [navigationArrow]=\"navigationArrow\"\r\n [isCheckList]=\"isCheckList\"\r\n (events)=\"onDynamicComponentEvents($event)\"\r\n ></bnrc-dynamic-item-component>\r\n</ng-template>\r\n", styles: ["fd-card:hover{box-shadow:0 0 0 .0625rem #2235487a,0 .625rem 1.875rem #22354840}fd-card div[ulvcontextmenu] ::ng-deep .fd-bar{background-color:transparent}fd-card ::ng-deep bsu-column-renderer div.renderGeneral{font-family:IranYekanDigits}fd-card fd-card-footer.extra-footer{flex-wrap:wrap}fd-card fd-card-footer.hasDetailsAndContextMenu ::ng-deep .fd-card__footer-actions{justify-content:space-between!important}fd-card fd-card-content{padding:0!important}fd-card fd-card-content>div>fd-quick-view ::ng-deep .fd-quick-view__content{padding-top:0}fd-card fd-card-content>div>fd-quick-view fd-quick-view-group-item.rowDirection ::ng-deep .fd-form-item{flex-direction:row}fd-card fd-card-header{padding:.5rem}fd-card fd-card-header:hover{background:var(--fdCard_Background_Color)}fd-card fd-card-header .fd-card__title{display:flex;justify-content:space-between;align-items:center;width:100%}fd-card fd-card-header button,fd-card fd-card-header div[ulvcontextmenu]{z-index:6}fd-card fd-card-header:hover{background:inherit}fd-quick-view-subheader ::ng-deep div{background:inherit}.action{cursor:pointer;margin-top:6px;flex:1;display:flex;justify-content:end;flex-direction:column}.openOnClick{cursor:pointer}\n"] }]
63
+ }], propDecorators: { setting: [{
64
+ type: Input
65
+ }], _quickViewTemplate: [{
66
+ type: ViewChild,
67
+ args: ['quickViewTemplate', { static: true }]
68
+ }], _contentTemplate: [{
69
+ type: ViewChild,
70
+ args: ['contentTemplate', { static: true }]
71
+ }], extraFooterComponent: [{
72
+ type: Input
73
+ }] } });
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2NhcmQtaXRlbS9jYXJkLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvY2FyZC1pdGVtL2NhcmQtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLHVCQUF1QixFQUFFLEtBQUssRUFBZSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLDBCQUEwQixFQUFhLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBVy9GLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSwwQkFBMEI7SUFZN0QsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixRQUFRLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQXVCLEVBQUUsQ0FBQztZQUMzQyxLQUFLLGVBQWU7Z0JBQ2hCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7Z0JBQ2hELE1BQU07WUFDVjtnQkFDSSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO2dCQUNsRCxNQUFNO1FBQ2QsQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDN0IsSUFBSSxPQUFPLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO1FBQ3BDLENBQUM7UUFDRCxJQUFJLENBQUMsa0JBQWtCO1lBQ25CLENBQUMsSUFBSSxDQUFDLG1CQUFtQixJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUM7Z0JBQy9FLElBQUksQ0FBQyxnQkFBZ0I7Z0JBQ3JCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ3JDLFFBQVEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBdUIsRUFBRSxDQUFDO1lBQzNDLEtBQUssZUFBZTtnQkFDaEIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDaEQsTUFBTTtZQUNWO2dCQUNJLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUM7Z0JBQ2xELE1BQU07UUFDZCxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDaEQsbUNBQW1DO1lBQ25DLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQztRQUMvRSxDQUFDO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUNsRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUMxQixDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUN2RSxDQUFDO0lBQ0wsQ0FBQzsrR0FqRFEsaUJBQWlCO21HQUFqQixpQkFBaUIsc0hBSmYsQ0FBQyxnQkFBZ0IsQ0FBQyw0U0NSakMsNHRxQkEwZ0JBOzs0RkQ5ZmEsaUJBQWlCO2tCQVI3QixTQUFTOytCQUNJLGVBQWUsYUFHZCxDQUFDLGdCQUFnQixDQUFDLG1CQUNaLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsS0FBSzs4QkFHUixPQUFPO3NCQUFmLEtBQUs7Z0JBQzRDLGtCQUFrQjtzQkFBbkUsU0FBUzt1QkFBQyxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ0EsZ0JBQWdCO3NCQUEvRCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDckMsb0JBQW9CO3NCQUE1QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBJbnB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCYXNlVmlld0l0ZW1Qcm9wc0NvbXBvbmVudCwgRWpyYXlPbGdvLCBGb3JtUGFuZWxTZXJ2aWNlIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5pbXBvcnQgeyBVaUNhcmRMaXN0Vmlld1NldHRpbmcgfSBmcm9tICcuLi9tb2RlbHMvZ3JpZC12aWV3JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtY2FyZC1pdGVtJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYXJkLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vY2FyZC1pdGVtLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBwcm92aWRlcnM6IFtGb3JtUGFuZWxTZXJ2aWNlXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIENhcmRJdGVtQ29tcG9uZW50IGV4dGVuZHMgQmFzZVZpZXdJdGVtUHJvcHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQElucHV0KCkgc2V0dGluZzogVWlDYXJkTGlzdFZpZXdTZXR0aW5nO1xyXG4gICAgQFZpZXdDaGlsZCgncXVpY2tWaWV3VGVtcGxhdGUnLCB7IHN0YXRpYzogdHJ1ZSB9KSBfcXVpY2tWaWV3VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgICBAVmlld0NoaWxkKCdjb250ZW50VGVtcGxhdGUnLCB7IHN0YXRpYzogdHJ1ZSB9KSBfY29udGVudFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gICAgQElucHV0KCkgZXh0cmFGb290ZXJDb21wb25lbnQ6IEVqcmF5T2xnbztcclxuICAgIG5vQ29udGVudDogYm9vbGVhbjtcclxuICAgIGNhcmRXaWR0aDogc3RyaW5nO1xyXG4gICAgbWF4V2lkdGg6IHN0cmluZztcclxuICAgIG1pbldpZHRoOiBzdHJpbmc7XHJcbiAgICBjb250ZXh0TWVudUluRm9vdGVyOiBib29sZWFuO1xyXG4gICAgY29udGV4dE1lbnVFbmFibGVkOiBib29sZWFuO1xyXG4gICAgY29udGVudFRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICBzd2l0Y2ggKHRoaXMuc2V0dGluZy5DYXJkVHlwZSRDYXB0aW9uIGFzIGFueSkge1xyXG4gICAgICAgICAgICBjYXNlICdpbmxpbmUtZmllbGRzJzpcclxuICAgICAgICAgICAgICAgIHRoaXMuY29udGVudFRlbXBsYXRlUmVmID0gdGhpcy5fY29udGVudFRlbXBsYXRlO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRUZW1wbGF0ZVJlZiA9IHRoaXMuX3F1aWNrVmlld1RlbXBsYXRlO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHNldHRpbmcgPSB0aGlzLnNldHRpbmc7XHJcbiAgICAgICAgaWYgKHNldHRpbmcuQ29udGV4dE1lbnVJbkZvb3Rlcikge1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRleHRNZW51SW5Gb290ZXIgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNvbnRleHRNZW51RW5hYmxlZCA9XHJcbiAgICAgICAgICAgICh0aGlzLmNvbnRleHRNZW51SW5Gb290ZXIgfHwgdGhpcy5kZXZpY2VOYW1lICE9PSAnZGVza3RvcCcgfHwgdGhpcy5vcGVuT25DbGljaykgJiZcclxuICAgICAgICAgICAgdGhpcy5jb250ZXh0TWVudUl0ZW1zICYmXHJcbiAgICAgICAgICAgIHRoaXMuY29udGV4dE1lbnVJdGVtcy5sZW5ndGggPiAwO1xyXG4gICAgICAgIHN3aXRjaCAodGhpcy5zZXR0aW5nLkNhcmRUeXBlJENhcHRpb24gYXMgYW55KSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ2lubGluZS1maWVsZHMnOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jb250ZW50VGVtcGxhdGVSZWYgPSB0aGlzLl9jb250ZW50VGVtcGxhdGU7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIHRoaXMuY29udGVudFRlbXBsYXRlUmVmID0gdGhpcy5fcXVpY2tWaWV3VGVtcGxhdGU7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCF0aGlzLmRldGFpbHNUZXh0ICYmIHRoaXMuZGV0YWlsc1RleHRGdW5jdGlvbikge1xyXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZXZhbFxyXG4gICAgICAgICAgICB0aGlzLmRldGFpbHNUZXh0ID0gZXZhbCgnKCcgKyB0aGlzLmRldGFpbHNUZXh0RnVuY3Rpb24gKyAnLmJpbmQodGhpcykoKSknKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghc2V0dGluZy5GaWVsZExpc3QgJiYgIXNldHRpbmcuQ29udGVudENvbXBvbmVudCkge1xyXG4gICAgICAgICAgICB0aGlzLm5vQ29udGVudCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChzZXR0aW5nLkNhcmRXaWR0aCkge1xyXG4gICAgICAgICAgICB0aGlzLm1pbldpZHRoID0gdGhpcy5tYXhXaWR0aCA9IHRoaXMuY2FyZFdpZHRoID0gc2V0dGluZy5DYXJkV2lkdGg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIjxmZC1jYXJkXHJcbiAgICBbY2FyZFR5cGVdPVwic2V0dGluZy5DYXJkVHlwZSRDYXB0aW9uXCJcclxuICAgIGNsYXNzPVwiZG9jcy1mbGV4LWl0ZW0tbWFyZ2luXCJcclxuICAgIFtjbGFzcy5vcGVuT25DbGlja109XCJzZXR0aW5nLm9wZW5PbkNsaWNrXCJcclxuICAgIFtzdHlsZS53aWR0aF09XCJjYXJkV2lkdGhcIlxyXG4gICAgW3N0eWxlLm1pbi13aWR0aF09XCJtaW5XaWR0aFwiXHJcbiAgICBbc3R5bGUubWF4LXdpZHRoXT1cIm1heFdpZHRoXCJcclxuPlxyXG4gICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXHJcbiAgICAgICAgICAgIHNldHRpbmcuSGVhZGVyQ29tcG9uZW50ID8gcmVuZGVySGVhZGVyQ29tcG9uZW50IDogcmVuZGVySGVhZGVyO1xyXG4gICAgICAgICAgICBjb250ZXh0OiB7XHJcbiAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IG1vLFxyXG4gICAgICAgICAgICAgICAgaW5kZXg6IHRoaXMuaW5kZXhcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIFwiXHJcbiAgICA+PC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgQGlmICghbm9Db250ZW50IHx8IGNvbnRleHRNZW51SXRlbXMpIHtcclxuICAgIDxmZC1jYXJkLWNvbnRlbnQgKGNsaWNrKT1cIm9uUm93Q2hlY2soKVwiIChkYmxjbGljayk9XCJvblJvd0NsaWNrKClcIiBlbGxpcHNpZnk+XHJcbiAgICAgICAgPGRpdiAjZGl2RWwgW2FwcGx5Q29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiIFtzdHlsZUluZGV4XT1cInN0eWxlSW5kZXhcIiBbaG9zdEVsXT1cImRpdkVsXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0dGluZy5Db250ZW50Q29tcG9uZW50ID8gY29udGVudFRlbXBsYXRlQ29tcG9uZW50IDogY29udGVudFRlbXBsYXRlUmVmO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBtbyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IHRoaXMuaW5kZXhcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2ZkLWNhcmQtY29udGVudD5cclxuICAgIH0gQGlmKGRldGFpbHNUZXh0IHx8IGNvbnRleHRNZW51RW5hYmxlZCl7XHJcbiAgICA8ZmQtY2FyZC1mb290ZXJcclxuICAgICAgICAoY2xpY2spPVwiIWlzQ2hlY2tlZCAmJiBvblJvd0NoZWNrKHRydWUpXCJcclxuICAgICAgICAoZGJsY2xpY2spPVwib25Sb3dDbGljaygpXCJcclxuICAgICAgICBbY2xhc3MuZXh0cmEtZm9vdGVyXT1cImV4dHJhRm9vdGVyQ29tcG9uZW50XCJcclxuICAgICAgICBbY2xhc3MuaGFzRGV0YWlsc0FuZENvbnRleHRNZW51XT1cImRldGFpbHNUZXh0ICYmIGNvbnRleHRNZW51RW5hYmxlZCAmJiBjb250ZXh0TWVudUluRm9vdGVyXCJcclxuICAgICAgICBbY2xhc3MuIXR3LWJvcmRlci15LTBdPVwibm9Db250ZW50XCJcclxuICAgID5cclxuICAgICAgICBAaWYoZXh0cmFGb290ZXJDb21wb25lbnQpe1xyXG4gICAgICAgIDxibnJjLWR5bmFtaWMtaXRlbS1jb21wb25lbnRcclxuICAgICAgICAgICAgc3R5bGU9XCJkaXNwbGF5OiBibG9jazsgZmxleDogMVwiXHJcbiAgICAgICAgICAgIFtjb21wb25lbnRdPVwiZXh0cmFGb290ZXJDb21wb25lbnRcIlxyXG4gICAgICAgICAgICBbbW9dPVwibW9cIlxyXG4gICAgICAgICAgICBbc3R5bGVJbmRleF09XCJtby4kU3R5bGVJbmRleFwiXHJcbiAgICAgICAgICAgIFtpc0NoZWNrZWRdPVwiaXNDaGVja2VkXCJcclxuICAgICAgICAgICAgW3NldHRpbmddPVwic2V0dGluZ1wiXHJcbiAgICAgICAgICAgIFtwYXJhbWV0ZXJzXT1cImV4dHJhRm9vdGVyQ29tcG9uZW50LlNldHRpbmdzXCJcclxuICAgICAgICAgICAgW2VkaXRNb2RlXT1cImlubGluZUVkaXRNb2RlXCJcclxuICAgICAgICAgICAgW3J0bF09XCJydGxcIlxyXG4gICAgICAgICAgICBbZGV2aWNlTmFtZV09XCJkZXZpY2VOYW1lXCJcclxuICAgICAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXHJcbiAgICAgICAgICAgIFtpbmRleF09XCJpbmRleFwiXHJcbiAgICAgICAgICAgIFthbGxDb2x1bW5zXT1cImFsbENvbHVtbnNcIlxyXG4gICAgICAgID48L2JucmMtZHluYW1pYy1pdGVtLWNvbXBvbmVudD5cclxuICAgICAgICB9IEBpZihkZXRhaWxzVGV4dCl7PGJ1dHRvbiAqZmRDYXJkRm9vdGVyQWN0aW9uSXRlbSBmZC1idXR0b24gZmRUeXBlPVwidHJhbnNwYXJlbnRcIiBbZmRQb3BvdmVyVHJpZ2dlcl09XCJwb3BvdmVyXCI+XHJcbiAgICAgICAgICAgIHt7IGRldGFpbHNUZXh0IH19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgfSBAaWYoY29udGV4dE1lbnVJbkZvb3Rlcil7XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAqZmRDYXJkRm9vdGVyQWN0aW9uSXRlbVxyXG4gICAgICAgICAgICB1bHZDb250ZXh0TWVudVxyXG4gICAgICAgICAgICBbYWxsQ29sdW1uc109XCJhbGxDb2x1bW5zXCJcclxuICAgICAgICAgICAgW2Zvb3Rlck1vZGVdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICBbbWVudUl0ZW1zXT1cImNvbnRleHRNZW51SXRlbXNcIlxyXG4gICAgICAgICAgICBbY29udGV4dE1lbnVPdmVyZmxvd1RleHRdPVwiY29udGV4dE1lbnVPdmVyZmxvd1RleHRcIlxyXG4gICAgICAgICAgICBbc3R5bGVJbmRleF09XCJzdHlsZUluZGV4XCJcclxuICAgICAgICAgICAgW2NvbmRpdGlvbmFsRm9ybWF0c109XCJjb25kaXRpb25hbEZvcm1hdHNcIlxyXG4gICAgICAgICAgICBbZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVdPVwiZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVcIlxyXG4gICAgICAgICAgICBbbW9dPVwibW9cIlxyXG4gICAgICAgICAgICAoY29tbWFuZENsaWNrKT1cIm9uVWx2Q29tbWFuZCgpXCJcclxuICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDxmZC1wb3BvdmVyICNwb3BvdmVyPlxyXG4gICAgICAgICAgICBAaWYgKGRldGFpbHNDb2x1bW5zPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcclxuICAgICAgICAgICAgICAgICAgICBkZXRhaWxzQ29sdW1uc1RlbXBsYXRlO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgbW86IG1vLCBpbmxpbmVFZGl0TW9kZTogaW5saW5lRWRpdE1vZGUsIGxheW91dDk0OiBsYXlvdXQkIHwgYXN5bmMgfVxyXG4gICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgPC9mZC1wb3BvdmVyPlxyXG4gICAgPC9mZC1jYXJkLWZvb3Rlcj5cclxuICAgIH1cclxuPC9mZC1jYXJkPlxyXG48bmctdGVtcGxhdGUgI2RldGFpbHNDb2x1bW5zVGVtcGxhdGUgbGV0LW1vPVwibW9cIiBsZXQtaW5saW5lRWRpdE1vZGU9XCJpbmxpbmVFZGl0TW9kZVwiIGxldC1sYXlvdXQ5ND1cImxheW91dDk0XCI+XHJcbiAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcclxuICAgICAgICAgICAgZGV0YWlsc0Zvcm1JdGVtcztcclxuICAgICAgICAgICAgY29udGV4dDoge1xyXG4gICAgICAgICAgICAgICAgJGltcGxpY2l0OiBkZXRhaWxzQ29sdW1ucyxcclxuICAgICAgICAgICAgICAgIG1vOiB0aGlzLm1vLFxyXG4gICAgICAgICAgICAgICAgaW5saW5lRWRpdE1vZGU6IHRoaXMuaW5saW5lRWRpdE1vZGUsXHJcbiAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0OTRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIFwiXHJcbiAgICA+PC9uZy1jb250YWluZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZVxyXG4gICAgI2RldGFpbHNGb3JtSXRlbXNcclxuICAgIGxldC1kZXRhaWxzQ29sdW1uc1xyXG4gICAgbGV0LW1vPVwibW9cIlxyXG4gICAgbGV0LWlubGluZUVkaXRNb2RlPVwiaW5saW5lRWRpdE1vZGVcIlxyXG4gICAgbGV0LWxheW91dDk0PVwibGF5b3V0OTRcIlxyXG4+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1pdGVtc1wiIGNsYXNzPVwidHctcC0yXCI+XHJcbiAgICAgICAgQGZvciAoY29sdW1uIG9mIGRldGFpbHNDb2x1bW5zOyB0cmFjayBjb2x1bW47IGxldCBjb2x1bW5JbmRleCA9ICRpbmRleCkge1xyXG4gICAgICAgIDxkaXYgZmQtZm9ybS1pdGVtIGNsYXNzPVwiIXR3LWZsZXgtcm93XCI+XHJcbiAgICAgICAgICAgIEBpZighY29sdW1uLiRDdXN0b21Db21wb25lbnQ/LkhpZGVDb2x1bW5DYXB0aW9uKSB7PGxhYmVsIGZkLWZvcm0tbGFiZWwgZm9yPVwiaW5wdXQtMlwiXHJcbiAgICAgICAgICAgICAgICA+e3sgY29sdW1uLkNhcHRpb24gfX08c3Bhbj46PC9zcGFuPjwvbGFiZWxcclxuICAgICAgICAgICAgPn1cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcclxuICAgICAgICAgICAgICAgICAgICBjb2x1bW5UZW1wbGF0ZTtcclxuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogY29sdW1uLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBtbzogbW8sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBjb2x1bW5JbmRleCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaW5saW5lRWRpdE1vZGU6IGlubGluZUVkaXRNb2RlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0OTRcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZVxyXG4gICAgI2NvbHVtblRlbXBsYXRlXHJcbiAgICBsZXQtY29sdW1uXHJcbiAgICBsZXQtbW89XCJtb1wiXHJcbiAgICBsZXQtaW5kZXg9XCJpbmRleFwiXHJcbiAgICBsZXQtbGF5b3V0OTQ9XCJsYXlvdXQ5NFwiXHJcbiAgICBsZXQtZGlzYWJsZUVsbGFwc2lzPVwiZGlzYWJsZUVsbGFwc2lzXCJcclxuICAgIGxldC1mZFRleHRNb2RlPVwiZmRUZXh0TW9kZVwiXHJcbj5cclxuICAgIEBpZiAoY29sdW1uKSB7XHJcbiAgICA8YnN1LWJhcnNhLXRhYmxlLWNvbHVtblxyXG4gICAgICAgIFttb109XCJtb1wiXHJcbiAgICAgICAgW2FsbENvbHVtbnNdPVwiYWxsQ29sdW1uc1wiXHJcbiAgICAgICAgW2NvbHVtbl09XCJjb2x1bW5cIlxyXG4gICAgICAgIFtpc2RpcnR5XT1cImZhbHNlXCJcclxuICAgICAgICBbdmFsdWVdPVwiY29sdW1uIHwgY29sdW1uVmFsdWU6IG1vXCJcclxuICAgICAgICBbaWNvbl09XCJjb2x1bW4gfCBjb2x1bW5JY29uOiBtb1wiXHJcbiAgICAgICAgW2N1c3RvbUNvbXBvbmVudF09XCJjb2x1bW4uJEN1c3RvbUNvbXBvbmVudFwiXHJcbiAgICAgICAgW2NvbHVtbl09XCJjb2x1bW5cIlxyXG4gICAgICAgIFtkaXNhYmxlRWxsYXBzaXNdPVwiZGlzYWJsZUVsbGFwc2lzID09PSBmYWxzZSA/IGZhbHNlIDogdHJ1ZVwiXHJcbiAgICAgICAgW2ZkVGV4dE1vZGVdPVwiZmRUZXh0TW9kZVwiXHJcbiAgICAgICAgW2VkaXRNb2RlXT1cImlzQ2hlY2tlZCAmJiBpbmxpbmVFZGl0TW9kZSAmJiBhbGxvd0lubGluZUVkaXRcIlxyXG4gICAgICAgIFtpbmxpbmVFZGl0TW9kZV09XCJpbmxpbmVFZGl0TW9kZVwiXHJcbiAgICAgICAgW2lzQ2hlY2tlZF09XCJpc0NoZWNrZWRcIlxyXG4gICAgICAgIFtpbmRleF09XCJpbmRleFwiXHJcbiAgICAgICAgW2Zvcm1TZXR0aW5nXT1cImZvcm1TZXR0aW5nXCJcclxuICAgICAgICBbcnRsXT1cInJ0bFwiXHJcbiAgICAgICAgW2RldmljZU5hbWVdPVwiZGV2aWNlTmFtZVwiXHJcbiAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXHJcbiAgICAgICAgW2xheW91dDk0XT1cImxheW91dDk0XCJcclxuICAgICAgICAoc2F2ZSk9XCJvbkVkaXRGb3JtUGFuZWxTYXZlKG51bGwpXCJcclxuICAgICAgICAoY2FuY2VsKT1cIm9uRWRpdEZvcm1QYW5lbENhbmNlbChudWxsKVwiXHJcbiAgICAgICAgKHRhYik9XCJvblRhYktleURvd24oJGV2ZW50LCBpbmRleClcIlxyXG4gICAgICAgIChjaGFuZ2VUb0VkaXRNb2RlKT1cIm9uQ29sdW1uQ2hhbmdlVG9FZGl0TW9kZSgkZXZlbnQsIGluZGV4KVwiXHJcbiAgICA+XHJcbiAgICA8L2JzdS1iYXJzYS10YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgfVxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGUgI3F1aWNrVmlld1RlbXBsYXRlIGxldC1tbyBsZXQtaW5kZXg9XCJpbmRleFwiPlxyXG4gICAgQGlmICghbm9Db250ZW50KSB7XHJcbiAgICA8ZmQtcXVpY2stdmlldyBbaWRdPVwiJ2lkJ1wiPlxyXG4gICAgICAgIDxmZC1xdWljay12aWV3LWdyb3VwPlxyXG4gICAgICAgICAgICBAZm9yIChjb2x1bW4gb2Ygc2V0dGluZy5GaWVsZExpc3RNYXBwZWQ7IHRyYWNrIGNvbHVtbikge1xyXG4gICAgICAgICAgICA8ZmQtcXVpY2stdmlldy1ncm91cC1pdGVtIFtjbGFzcy5yb3dEaXJlY3Rpb25dPVwiY29sdW1uPy4kQ3VzdG9tQ29tcG9uZW50Py5Jc1Jvd0RpcmVjdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgQGlmIChjb2x1bW4pIHsgQGlmKCFjb2x1bW4uJEN1c3RvbUNvbXBvbmVudD8uSGlkZUNvbHVtbkNhcHRpb24pIHs8ZmQtcXVpY2stdmlldy1ncm91cC1pdGVtLWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IGNvbHVtbi5DYXB0aW9uIHwgYmJiVHJhbnNsYXRlIH19IDwvZmQtcXVpY2stdmlldy1ncm91cC1pdGVtLWxhYmVsXHJcbiAgICAgICAgICAgICAgICA+fVxyXG4gICAgICAgICAgICAgICAgPGZkLXF1aWNrLXZpZXctZ3JvdXAtaXRlbS1jb250ZW50PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtcXVpY2stdmlldy1ncm91cC1pdGVtLWNvbnRlbnQtZWxlbWVudCBjbGFzcz1cImdyb3VwLWl0ZW0tY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtblRlbXBsYXRlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBjb2x1bW4sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dDk0OiBsYXlvdXQkIHwgYXN5bmMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vOiBtbyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGluZGV4XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9mZC1xdWljay12aWV3LWdyb3VwLWl0ZW0tY29udGVudD5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC9mZC1xdWljay12aWV3LWdyb3VwLWl0ZW0+XHJcbiAgICAgICAgICAgIH0gQGlmIChzZXR0aW5nLkRlc2NyaXB0aW9uRmllbGQpIHtcclxuICAgICAgICAgICAgPGZkLXF1aWNrLXZpZXctZ3JvdXAtaXRlbT5cclxuICAgICAgICAgICAgICAgIDxmZC1xdWljay12aWV3LWdyb3VwLWl0ZW0tY29udGVudD5cclxuICAgICAgICAgICAgICAgICAgICBAaWYgKGlubGluZUVkaXRNb2RlICYmIGFsbG93SW5saW5lRWRpdCkge1xyXG4gICAgICAgICAgICAgICAgICAgIDxmZC1xdWljay12aWV3LWdyb3VwLWl0ZW0tbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IHNldHRpbmcuRGVzY3JpcHRpb25GaWVsZD8uQWxpYXMgfCBiYmJUcmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2ZkLXF1aWNrLXZpZXctZ3JvdXAtaXRlbS1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1xdWljay12aWV3LWdyb3VwLWl0ZW0tY29udGVudC1lbGVtZW50IGNsYXNzPVwiZ3JvdXAtaXRlbS1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uVGVtcGxhdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IHNldHRpbmcuRGVzY3JpcHRpb25GaWVsZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0OTQ6IGxheW91dCQgfCBhc3luYyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW86IG1vLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogaW5kZXhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2ZkLXF1aWNrLXZpZXctZ3JvdXAtaXRlbS1jb250ZW50PlxyXG4gICAgICAgICAgICAgICAgQGlmIChzZXR0aW5nLkFjdGlvbkZpZWxkTmFtZUZpZWxkKSB7XHJcbiAgICAgICAgICAgICAgICA8ZmQtcXVpY2stdmlldy1ncm91cC1pdGVtLWNvbnRlbnRcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQWN0aW9uKHNldHRpbmcuQWN0aW9uRmllbGRDb21tYW5kRmllbGQgfHwgJycpXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8YSBmZC1saW5rPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtblRlbXBsYXRlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBzZXR0aW5nLkFjdGlvbkZpZWxkTmFtZUZpZWxkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0JCB8IGFzeW5jLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtbzogbW8sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBpbmRleFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICA8L2ZkLXF1aWNrLXZpZXctZ3JvdXAtaXRlbS1jb250ZW50PlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L2ZkLXF1aWNrLXZpZXctZ3JvdXAtaXRlbT5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvZmQtcXVpY2stdmlldy1ncm91cD5cclxuICAgIDwvZmQtcXVpY2stdmlldz5cclxuICAgIH1cclxuPC9uZy10ZW1wbGF0ZT5cclxuPG5nLXRlbXBsYXRlICNjb250ZW50VGVtcGxhdGUgbGV0LW1vIGxldC1pbmRleD1cImluZGV4XCI+XHJcbiAgICA8ZmQtbGF5b3V0LWdyaWQ+XHJcbiAgICAgICAgPGRpdiBmZExheW91dEdyaWRSb3cgc3R5bGU9XCJhbGlnbi1pdGVtczogY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgW2ZkTGF5b3V0R3JpZENvbF09XCIxMlwiPlxyXG4gICAgICAgICAgICAgICAgQGZvciAoY29sdW1uIG9mIHNldHRpbmcuRmllbGRMaXN0TWFwcGVkOyB0cmFjayBjb2x1bW4pIHtcclxuICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZkLWZvcm0tbGFiZWwgW2NvbG9uXT1cInRydWVcIj57eyBjb2x1bW4uQ2FwdGlvbiB8IGJiYlRyYW5zbGF0ZSB9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uVGVtcGxhdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBjb2x1bW4sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0OTQ6IGxheW91dCQgfCBhc3luYyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtbzogbW8sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGluZGV4XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICBAaWYgKHNldHRpbmcuRGVzY3JpcHRpb25GaWVsZCkge1xyXG4gICAgICAgICAgICA8ZGl2IFtmZExheW91dEdyaWRDb2xdPVwiMTJcIj5cclxuICAgICAgICAgICAgICAgIEBpZiAoaW5saW5lRWRpdE1vZGUgJiYgYWxsb3dJbmxpbmVFZGl0KSB7XHJcbiAgICAgICAgICAgICAgICA8bGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgc2V0dGluZy5EZXNjcmlwdGlvbkZpZWxkPy5BbGlhcyB8IGJiYlRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5UZW1wbGF0ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBzZXR0aW5nLkRlc2NyaXB0aW9uRmllbGQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0JCB8IGFzeW5jLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW86IG1vLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGluZGV4XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9mZC1sYXlvdXQtZ3JpZD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuPG5nLXRlbXBsYXRlICNhdmF0YXIgbGV0LWF2YXRhciBsZXQtdmlzaWJsZT1cInZpc2libGVcIiBsZXQtY2lyY2xlPVwiY2lyY2xlXCIgbGV0LWF2YXRhckZpZWxkPVwiYXZhdGFyRmllbGRcIj5cclxuICAgIEBpZiAodmlzaWJsZSkge1xyXG4gICAgPGZkLWF2YXRhclxyXG4gICAgICAgIGFsdGVySWNvbj1cImFsdHxjb250ZW50fGJhY2t1cHxkZWZhdWx0LWljb25cIlxyXG4gICAgICAgIFtjaXJjbGVdPVwiY2lyY2xlXCJcclxuICAgICAgICBbaW1hZ2VdPVwiYXZhdGFyRmllbGQgPyAobW9bYXZhdGFyRmllbGQuTmFtZV0/LkZpbGVJZCB8IHBpY0ZpZWxkU3JjOiAnSUQnOmF2YXRhckZpZWxkLkZpZWxkRGVmSWQpIDogJydcIlxyXG4gICAgICAgIFtzaXplXT1cIlxyXG4gICAgICAgICAgICBkZXZpY2VTaXplID09PSAneGwnIHx8IGRldmljZVNpemUgPT09ICdsJyA/IHNldHRpbmcuQXZhdGFyU2l6ZURlc2t0b3AkQ2FwdGlvbiA6IHNldHRpbmcuQXZhdGFyU2l6ZSRDYXB0aW9uXHJcbiAgICAgICAgXCJcclxuICAgICAgICBbZ2x5cGhdPVwiYXZhdGFyIHx8IChtby4kU3RhdGUgPT09ICdOZXcnICYmICFpc0NoZWNrZWQgPyAnZmF2b3JpdGUnIDogaW5saW5lRWRpdE1vZGUgJiYgaXNDaGVja2VkID8gJ2VkaXQnIDogJycpXCJcclxuICAgID5cclxuICAgIDwvZmQtYXZhdGFyPlxyXG4gICAgfVxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNjb250ZW50VGVtcGxhdGVDb21wb25lbnQgbGV0LW1vIGxldC1pbmRleD1cImluZGV4XCI+XHJcbiAgICA8Ym5yYy1keW5hbWljLWl0ZW0tY29tcG9uZW50XHJcbiAgICAgICAgW2NvbXBvbmVudF09XCJzZXR0aW5nLkNvbnRlbnRDb21wb25lbnRcIlxyXG4gICAgICAgIFttb109XCJtb1wiXHJcbiAgICAgICAgW3N0eWxlSW5kZXhdPVwibW8uJFN0eWxlSW5kZXhcIlxyXG4gICAgICAgIFtpc0NoZWNrZWRdPVwiaXNDaGVja2VkXCJcclxuICAgICAgICBbc2V0dGluZ109XCJzZXR0aW5nXCJcclxuICAgICAgICBbcGFyYW1ldGVyc109XCJzZXR0aW5nLkNvbnRlbnRDb21wb25lbnQuU2V0dGluZ3NcIlxyXG4gICAgICAgIFtlZGl0TW9kZV09XCJpbmxpbmVFZGl0TW9kZVwiXHJcbiAgICAgICAgW3J0bF09XCJydGxcIlxyXG4gICAgICAgIFtkZXZpY2VOYW1lXT1cImRldmljZU5hbWVcIlxyXG4gICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxyXG4gICAgICAgIFtpbmRleF09XCJpbmRleFwiXHJcbiAgICAgICAgW2FsbENvbHVtbnNdPVwiYWxsQ29sdW1uc1wiXHJcbiAgICA+PC9ibnJjLWR5bmFtaWMtaXRlbS1jb21wb25lbnQ+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI3JlbmRlckhlYWRlciBsZXQtbW8gbGV0LWluZGV4PVwiaW5kZXhcIj5cclxuICAgIEBpZighaGlkZU9wZW5JY29uICYmIChvcGVuT25DbGljayB8fCAoY2FuVmlldyAmJiBkZXZpY2VOYW1lICE9PSAnZGVza3RvcCcpKSl7XHJcbiAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcclxuICAgICAgICAgICAgcmVuZGVySGVhZGVyTW9iaWxlQ2FuVmlldztcclxuICAgICAgICAgICAgY29udGV4dDoge1xyXG4gICAgICAgICAgICAgICAgJGltcGxpY2l0OiBtbyxcclxuICAgICAgICAgICAgICAgIGluZGV4OiBpbmRleFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgXCJcclxuICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgIH1AZWxzZXtcclxuICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxyXG4gICAgICAgICAgICByZW5kZXJIZWFkZXJEZXNrdG9wO1xyXG4gICAgICAgICAgICBjb250ZXh0OiB7XHJcbiAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IG1vLFxyXG4gICAgICAgICAgICAgICAgaW5kZXg6IGluZGV4XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICBcIlxyXG4gICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgfVxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGUgI3JlbmRlckhlYWRlckRlc2t0b3AgbGV0LW1vIGxldC1pbmRleD1cImluZGV4XCI+XHJcbiAgICA8ZmQtY2FyZC1oZWFkZXIgY2xhc3M9XCJIZWFkZXJEZXNrdG9wXCI+XHJcbiAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgQGlmKGlzQ2hlY2tMaXN0KXtcclxuICAgICAgICAgICAgPGZkLWNoZWNrYm94IFtuYW1lXT1cIm1vLiRDYXB0aW9uXCIgW25nTW9kZWxdPVwiaXNDaGVja2VkXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25Sb3dDaGVjaygpXCI+PC9mZC1jaGVja2JveD5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxmZC1jYXJkLW1haW4taGVhZGVyIChjbGljayk9XCJvblJvd0NoZWNrKClcIiAoZGJsY2xpY2spPVwib25Sb3dDbGljaygpXCI+XHJcbiAgICAgICAgICAgIEBpZiAoc2V0dGluZy5BdmF0YXJGaWVsZCB8fCBzZXR0aW5nLkF2YXRhcikge1xyXG4gICAgICAgICAgICA8ZmQtYXZhdGFyXHJcbiAgICAgICAgICAgICAgICBhbHRlckljb249XCJhbHR8Y29udGVudHxiYWNrdXB8ZGVmYXVsdC1pY29uXCJcclxuICAgICAgICAgICAgICAgIFtjaXJjbGVdPVwic2V0dGluZy5DaXJjbGVBdmF0YXJcIlxyXG4gICAgICAgICAgICAgICAgW2ltYWdlXT1cIlxyXG4gICAgICAgICAgICAgICAgICAgIHNldHRpbmcuQXZhdGFyRmllbGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyAobW9bc2V0dGluZy5BdmF0YXJGaWVsZC5OYW1lXT8uRmlsZUlkIHwgcGljRmllbGRTcmM6ICdJRCc6c2V0dGluZy5BdmF0YXJGaWVsZC5GaWVsZERlZklkKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICcnXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgW3NpemVdPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgZGV2aWNlU2l6ZSA9PT0gJ3hsJyB8fCBkZXZpY2VTaXplID09PSAnbCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBzZXR0aW5nLkF2YXRhclNpemVEZXNrdG9wJENhcHRpb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzZXR0aW5nLkF2YXRhclNpemUkQ2FwdGlvblxyXG4gICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgIFtnbHlwaF09XCJcclxuICAgICAgICAgICAgICAgICAgICBzZXR0aW5nLkF2YXRhciB8fFxyXG4gICAgICAgICAgICAgICAgICAgIChtby4kU3RhdGUgPT09ICdOZXcnICYmICFpc0NoZWNrZWQgPyAnZmF2b3JpdGUnIDogaW5saW5lRWRpdE1vZGUgJiYgaXNDaGVja2VkID8gJ2VkaXQnIDogJycpXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICA+PC9mZC1hdmF0YXI+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPGgyIGZkLWNhcmQtdGl0bGU+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uVGVtcGxhdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogc2V0dGluZy5UaXRsZUZpZWxkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0OTQ6IGxheW91dCQgfCBhc3luYyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vOiBtbyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBpbmRleCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVFbGxhcHNpczogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZFRleHRNb2RlOiB0cnVlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgICA8aDMgZmQtY2FyZC1zdWJ0aXRsZT5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5UZW1wbGF0ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBzZXR0aW5nLlN1YnRpdGxlRmllbGQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0JCB8IGFzeW5jLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW86IG1vLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGluZGV4LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZUVsbGFwc2lzOiBmYWxzZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgQGlmICghY29udGV4dE1lbnVJbkZvb3RlciAmJiAoY29udGV4dE1lbnVJdGVtcyAmJiBjb250ZXh0TWVudUl0ZW1zLmxlbmd0aCA+IDApKSB7XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIHVsdkNvbnRleHRNZW51XHJcbiAgICAgICAgICAgICAgICBmZC1jYXJkLWhlYWRlci1hY3Rpb25cclxuICAgICAgICAgICAgICAgIFthbGxDb2x1bW5zXT1cImFsbENvbHVtbnNcIlxyXG4gICAgICAgICAgICAgICAgW2Zvb3Rlck1vZGVdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgW21lbnVJdGVtc109XCJjb250ZXh0TWVudUl0ZW1zXCJcclxuICAgICAgICAgICAgICAgIFtjb250ZXh0TWVudU92ZXJmbG93VGV4dF09XCJjb250ZXh0TWVudU92ZXJmbG93VGV4dFwiXHJcbiAgICAgICAgICAgICAgICBbc3R5bGVJbmRleF09XCJzdHlsZUluZGV4XCJcclxuICAgICAgICAgICAgICAgIFtjb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudV09XCJkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudVwiXHJcbiAgICAgICAgICAgICAgICBbbW9dPVwibW9cIlxyXG4gICAgICAgICAgICAgICAgKGNvbW1hbmRDbGljayk9XCJvblVsdkNvbW1hbmQoKVwiXHJcbiAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvZmQtY2FyZC1tYWluLWhlYWRlcj5cclxuICAgIDwvZmQtY2FyZC1oZWFkZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjcmVuZGVySGVhZGVyTW9iaWxlQ2FuVmlldyBsZXQtbW8gbGV0LWluZGV4PVwiaW5kZXhcIj5cclxuICAgIDxmZC1jYXJkLWhlYWRlciBjbGFzcz1cIkhlYWRlck1vYmlsZUNhblZpZXdcIj5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICBAaWYoaXNDaGVja0xpc3Qpe1xyXG4gICAgICAgICAgICA8ZmQtY2hlY2tib3ggW25hbWVdPVwibW8uJENhcHRpb25cIiBbbmdNb2RlbF09XCJpc0NoZWNrZWRcIiAobmdNb2RlbENoYW5nZSk9XCJvblJvd0NoZWNrKClcIj48L2ZkLWNoZWNrYm94PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGZkLWNhcmQtbWFpbi1oZWFkZXIgKGNsaWNrKT1cIm9uUm93Q2hlY2soKVwiIChkYmxjbGljayk9XCJvblJvd0NsaWNrKClcIj5cclxuICAgICAgICAgICAgQGlmIChzZXR0aW5nLkF2YXRhckZpZWxkIHx8IHNldHRpbmcuQXZhdGFyKSB7XHJcbiAgICAgICAgICAgIDxmZC1hdmF0YXJcclxuICAgICAgICAgICAgICAgIGFsdGVySWNvbj1cImFsdHxjb250ZW50fGJhY2t1cHxkZWZhdWx0LWljb25cIlxyXG4gICAgICAgICAgICAgICAgW2NpcmNsZV09XCJzZXR0aW5nLkNpcmNsZUF2YXRhclwiXHJcbiAgICAgICAgICAgICAgICBbaW1hZ2VdPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0dGluZy5BdmF0YXJGaWVsZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IChtb1tzZXR0aW5nLkF2YXRhckZpZWxkLk5hbWVdPy5GaWxlSWQgfCBwaWNGaWVsZFNyYzogJ0lEJzpzZXR0aW5nLkF2YXRhckZpZWxkLkZpZWxkRGVmSWQpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJydcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICBbc2l6ZV09XCJcclxuICAgICAgICAgICAgICAgICAgICBkZXZpY2VTaXplID09PSAneGwnIHx8IGRldmljZVNpemUgPT09ICdsJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHNldHRpbmcuQXZhdGFyU2l6ZURlc2t0b3AkQ2FwdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHNldHRpbmcuQXZhdGFyU2l6ZSRDYXB0aW9uXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgW2dseXBoXT1cIlxyXG4gICAgICAgICAgICAgICAgICAgIHNldHRpbmcuQXZhdGFyIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgKG1vLiRTdGF0ZSA9PT0gJ05ldycgJiYgIWlzQ2hlY2tlZCA/ICdmYXZvcml0ZScgOiBpbmxpbmVFZGl0TW9kZSAmJiBpc0NoZWNrZWQgPyAnZWRpdCcgOiAnJylcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgID48L2ZkLWF2YXRhcj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8aDIgZmQtY2FyZC10aXRsZT5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5UZW1wbGF0ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBzZXR0aW5nLlRpdGxlRmllbGQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0JCB8IGFzeW5jLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW86IG1vLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGluZGV4LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRUZXh0TW9kZTogdHJ1ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9oMj5cclxuICAgICAgICAgICAgPGgzIGZkLWNhcmQtc3VidGl0bGU+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uVGVtcGxhdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogc2V0dGluZy5TdWJ0aXRsZUZpZWxkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0OTQ6IGxheW91dCQgfCBhc3luYyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vOiBtbyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBpbmRleFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9oMz5cclxuXHJcbiAgICAgICAgICAgIEBpZiAoIWNvbnRleHRNZW51SW5Gb290ZXIgJiYgKGNvbnRleHRNZW51SXRlbXMgJiYgY29udGV4dE1lbnVJdGVtcy5sZW5ndGggPiAwKSkge1xyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICB1bHZDb250ZXh0TWVudVxyXG4gICAgICAgICAgICAgICAgZmQtY2FyZC1oZWFkZXItYWN0aW9uXHJcbiAgICAgICAgICAgICAgICBbYWxsQ29sdW1uc109XCJhbGxDb2x1bW5zXCJcclxuICAgICAgICAgICAgICAgIFtmb290ZXJNb2RlXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgIFttZW51SXRlbXNdPVwiY29udGV4dE1lbnVJdGVtc1wiXHJcbiAgICAgICAgICAgICAgICBbY29udGV4dE1lbnVPdmVyZmxvd1RleHRdPVwiY29udGV4dE1lbnVPdmVyZmxvd1RleHRcIlxyXG4gICAgICAgICAgICAgICAgW3N0eWxlSW5kZXhdPVwic3R5bGVJbmRleFwiXHJcbiAgICAgICAgICAgICAgICBbY29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVdPVwiZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVcIlxyXG4gICAgICAgICAgICAgICAgW21vXT1cIm1vXCJcclxuICAgICAgICAgICAgICAgIChjb21tYW5kQ2xpY2spPVwib25VbHZDb21tYW5kKClcIlxyXG4gICAgICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgICAgIH1AZWxzZSB7XHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgZmQtY2FyZC1oZWFkZXItYWN0aW9uXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInZpZXctYnRuXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblJvd0NsaWNrKClcIlxyXG4gICAgICAgICAgICAgICAgW2dseXBoXT1cIm5hdmlnYXRpb25BcnJvd1wiXHJcbiAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXHJcbiAgICAgICAgICAgID48L2J1dHRvbj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvZmQtY2FyZC1tYWluLWhlYWRlcj5cclxuICAgIDwvZmQtY2FyZC1oZWFkZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjcmVuZGVySGVhZGVyQ29tcG9uZW50IGxldC1tbyBsZXQtaW5kZXg9XCJpbmRleFwiPlxyXG4gICAgPGJucmMtZHluYW1pYy1pdGVtLWNvbXBvbmVudFxyXG4gICAgICAgIFtjb21wb25lbnRdPVwic2V0dGluZy5IZWFkZXJDb21wb25lbnRcIlxyXG4gICAgICAgIFttb109XCJtb1wiXHJcbiAgICAgICAgW3N0eWxlSW5kZXhdPVwibW8uJFN0eWxlSW5kZXhcIlxyXG4gICAgICAgIFtpc0NoZWNrZWRdPVwiaXNDaGVja2VkXCJcclxuICAgICAgICBbc2V0dGluZ109XCJzZXR0aW5nXCJcclxuICAgICAgICBbcGFyYW1ldGVyc109XCJzZXR0aW5nLkhlYWRlckNvbXBvbmVudC5TZXR0aW5nc1wiXHJcbiAgICAgICAgW2VkaXRNb2RlXT1cImlubGluZUVkaXRNb2RlXCJcclxuICAgICAgICBbcnRsXT1cInJ0bFwiXHJcbiAgICAgICAgW2RldmljZU5hbWVdPVwiZGV2aWNlTmFtZVwiXHJcbiAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXHJcbiAgICAgICAgW2luZGV4XT1cImluZGV4XCJcclxuICAgICAgICBbYWxsQ29sdW1uc109XCJhbGxDb2x1bW5zXCJcclxuICAgICAgICBbY29udGV4dE1lbnVJdGVtc109XCJjb250ZXh0TWVudUl0ZW1zXCJcclxuICAgICAgICBbY2FuVmlld109XCJjYW5WaWV3XCJcclxuICAgICAgICBbY29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXHJcbiAgICAgICAgW2Rpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XT1cImRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XCJcclxuICAgICAgICBbbmF2aWdhdGlvbkFycm93XT1cIm5hdmlnYXRpb25BcnJvd1wiXHJcbiAgICAgICAgW2lzQ2hlY2tMaXN0XT1cImlzQ2hlY2tMaXN0XCJcclxuICAgICAgICAoZXZlbnRzKT1cIm9uRHluYW1pY0NvbXBvbmVudEV2ZW50cygkZXZlbnQpXCJcclxuICAgID48L2JucmMtZHluYW1pYy1pdGVtLWNvbXBvbmVudD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
@@ -0,0 +1,46 @@
1
+ import { Component, ChangeDetectionStrategy } from '@angular/core';
2
+ import { BaseViewContentPropsComponent } 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/icon";
7
+ import * as i4 from "@fundamental-ngx/core/layout-grid";
8
+ import * as i5 from "@fundamental-ngx/core/list";
9
+ import * as i6 from "../ulv-context-menu/ulv-context-menu.component";
10
+ import * as i7 from "../no-data/no-data.component";
11
+ import * as i8 from "../card-item/card-item.component";
12
+ export class CardViewContentComponent extends BaseViewContentPropsComponent {
13
+ constructor() {
14
+ super(...arguments);
15
+ this.sizeXl = 3;
16
+ this.sizeL = 4;
17
+ this.sizeM = 6;
18
+ this.sizeS = 12;
19
+ }
20
+ ngOnInit() {
21
+ super.ngOnInit();
22
+ const { SizeXL, SizeL, SizeM, SizeS } = this.setting;
23
+ if (SizeXL) {
24
+ this.sizeXl = 12 / SizeXL;
25
+ }
26
+ if (SizeL) {
27
+ this.sizeL = 12 / SizeL;
28
+ }
29
+ if (SizeM) {
30
+ this.sizeM = 12 / SizeM;
31
+ }
32
+ if (SizeS) {
33
+ this.sizeS = 12 / SizeS;
34
+ }
35
+ }
36
+ onExpandClick(mo) {
37
+ this.expandClick.emit(mo);
38
+ }
39
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CardViewContentComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
40
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CardViewContentComponent, selector: "bsu-card-view-content", usesInheritance: true, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"setting.CardWidth ? flexTemplate : gridTemplate\"></ng-container>\r\n<ng-template #gridTemplate>\r\n @if (moDataList && moDataList.length > 0) {\r\n <fd-layout-grid class=\"card-list\">\r\n <ng-container *ngTemplateOutlet=\"containerTemplate; context: { $implicit: true }\"></ng-container>\r\n </fd-layout-grid>\r\n } @else {\r\n <bsu-no-data [simple]=\"true\"></bsu-no-data>\r\n }\r\n</ng-template>\r\n<ng-template #flexTemplate>\r\n <div class=\"card-view-flex-container\">\r\n <ng-container *ngTemplateOutlet=\"containerTemplate\"></ng-container>\r\n </div>\r\n</ng-template>\r\n<ng-template #containerTemplate let-isGrid>\r\n @for ( mo of moDataList | multipleGroupBy: groupby; track _trackByRow(index, mo); let index = $index; let last =\r\n $last; let first = $first) { @if (!mo.$Parent || mo.$Parent?.$Expanded) {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n mo.$Group || mo.$Group === '' ? group : isGrid ? cardTemplateGrid : cardTemplate;\r\n context: { $implicit: mo, index: this.index }\r\n \"\r\n ></ng-container>\r\n <ng-template #group>\r\n <div\r\n class=\"group-label row-group\"\r\n [style.padding-right]=\"'calc( 1rem + ' + mo.$Level * 12 + 'px' + ' )'\"\r\n [attr.level]=\"mo.$Level\"\r\n [class.root-group]=\"mo.$Level === 0\"\r\n ellipsify\r\n >\r\n <fd-icon\r\n [glyph]=\"mo.$Expanded ? 'navigation-down-arrow' : 'navigation-left-arrow'\"\r\n class=\"cell-expand\"\r\n (click)=\"onExpandClick(mo)\"\r\n ></fd-icon>\r\n <span fd-list-title>{{ mo.$Group }}</span>\r\n </div>\r\n </ng-template>\r\n } @if (setting.contextMenuInFooter && contextMenuItems && contextMenuItems.length > 0) {\r\n <div\r\n ulvContextMenu\r\n [allColumns]=\"allColumns\"\r\n [menuItems]=\"contextMenuItems\"\r\n [styleIndex]=\"mo.$StyleIndex\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [mo]=\"mo\"\r\n (commandClick)=\"ulvCommand.emit({mo,index})\"\r\n ></div>\r\n } }\r\n</ng-template>\r\n<ng-template #cardTemplate let-mo let-index=\"index\">\r\n <bsu-card-item\r\n [mo]=\"mo\"\r\n [openOnClick]=\"openOnClick\"\r\n [contextMenuOverflowText]=\"setting.ContextMenuOverflowText\"\r\n [extraFooterComponent]=\"setting.ExtraFooterComponent\"\r\n [hideOpenIcon]=\"hideOpenIcon\"\r\n [setting]=\"setting\"\r\n [detailsColumns]=\"detailsColumns\"\r\n [columnsCount]=\"columnsCount - detailsColumns.length\"\r\n [rowIndicatorColor]=\"!allColumns.length ? '' : (allColumns[0].Caption | rval: mo:allColumns)\"\r\n [styleIndex]=\"mo.$StyleIndex\"\r\n [detailsColumns]=\"detailsColumns\"\r\n [detailsText]=\"detailsText\"\r\n [detailsTextFunction]=\"detailsTextFunction\"\r\n [detailsComponent]=\"detailsComponent\"\r\n [isNewInlineMo]=\"mo.$NewInlineMo\"\r\n [index]=\"index\"\r\n [isChecked]=\"mo.$IsChecked\"\r\n [visibility]=\"mo.$Visibility\"\r\n [expanded]=\"mo.$Expanded\"\r\n [level]=\"mo.$Level\"\r\n [parentExpanded]=\"mo.$Parent?.$Expanded\"\r\n [setting]=\"setting\"\r\n [inlineEditMode]=\"inlineEditMode\"\r\n [allowInlineEdit]=\"allowInlineEdit\"\r\n [formSetting]=\"formSetting\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [index]=\"index\"\r\n [allColumns]=\"allColumns\"\r\n [contextMenuItems]=\"contextMenuItems\"\r\n [canView]=\"canView\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [navigationArrow]=\"navigationArrow\"\r\n [isCheckList]=\"isCheckList\"\r\n (rowCheck)=\"rowCheck.emit($event)\"\r\n (rowClick)=\"rowClick.emit($event)\"\r\n (ulvCommand)=\"ulvCommand.emit($event)\"\r\n (editFormPanelSave)=\"editFormPanelSave.emit($event)\"\r\n (editFormPanelCancel)=\"editFormPanelCancel.emit($event)\"\r\n (action)=\"action.emit($event)\"\r\n >\r\n </bsu-card-item>\r\n</ng-template>\r\n<ng-template #cardTemplateGrid let-mo let-index=\"index\">\r\n <div\r\n [fdLayoutGridCol]=\"sizeS\"\r\n [colMd]=\"sizeM\"\r\n [colLg]=\"sizeL\"\r\n [colXl]=\"sizeXl\"\r\n [class.selected]=\"mo.$IsChecked ? true : false\"\r\n class=\"card-container\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"cardTemplate; context: { $implicit: mo, index: index }\"></ng-container>\r\n </div>\r\n</ng-template>\r\n", styles: [".card-list{flex-wrap:wrap;padding-bottom:2rem;margin-left:0;row-gap:.25rem}.card-list .group-label{width:100%;display:flex;align-items:center;border-right:none;padding-top:.25rem;padding-bottom:.25rem;column-gap:10px}::ng-deep .card-list .unread .fd-form-item,::ng-deep .card-list .unread .fd-title,::ng-deep .card-list .unread .fd-quick-view__subtitle{font-weight:700}::ng-deep .card-list .group-item-content{background-color:transparent}::ng-deep .card-list .selected fd-card{border-color:var(--sapList_SelectionBorderColor, #0854a0);border-style:solid;border-width:thin}::ng-deep .card-list fd-card fd-icon .avatar{font-size:.75rem!important}::ng-deep .card-list fd-card .fd-quick-view__content{height:100%}::ng-deep .card-list fd-card fd-icon .avatar{font-size:1rem!important}.card-view-flex-container{width:100%;display:flex;flex-wrap:wrap;row-gap:10px;column-gap:10px}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.EllipsifyDirective, selector: "[ellipsify]", inputs: ["limitLine"] }, { kind: "component", type: i3.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "component", type: i4.LayoutGridComponent, selector: "fd-layout-grid, [fdLayoutGrid]", inputs: ["class", "noGap", "noHorizontalGap", "noVerticalGap"] }, { kind: "directive", type: i4.LayoutGridColDirective, selector: "[fd-layout-grid-col], [fdLayoutGridCol]", inputs: ["fdLayoutGridCol", "colGrow", "colMd", "colLg", "colXl", "colOffset", "colOffsetMd", "colOffsetLg", "colOffsetXl", "class"] }, { kind: "directive", type: i5.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "component", type: i6.UlvContextMenuComponent, selector: "bsu-ulv-context-menu,[ulvContextMenu]", inputs: ["onlyOverflow", "rightClickEnable", "deviceName", "menuItems", "allColumns", "index", "mo", "styleIndex", "conditionalFormats", "disableOverflowContextMenu", "footerMode", "contextMenuOverflowText", "appendTo"], outputs: ["commandClick"] }, { kind: "component", type: i7.NoDataComponent, selector: "bsu-no-data", inputs: ["simple"] }, { kind: "component", type: i8.CardItemComponent, selector: "bsu-card-item", inputs: ["setting", "extraFooterComponent"] }, { kind: "pipe", type: i2.MultipleGroupByPipe, name: "multipleGroupBy" }, { kind: "pipe", type: i2.MoReportValuePipe, name: "rval" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
41
+ }
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CardViewContentComponent, decorators: [{
43
+ type: Component,
44
+ args: [{ selector: 'bsu-card-view-content', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<ng-container *ngTemplateOutlet=\"setting.CardWidth ? flexTemplate : gridTemplate\"></ng-container>\r\n<ng-template #gridTemplate>\r\n @if (moDataList && moDataList.length > 0) {\r\n <fd-layout-grid class=\"card-list\">\r\n <ng-container *ngTemplateOutlet=\"containerTemplate; context: { $implicit: true }\"></ng-container>\r\n </fd-layout-grid>\r\n } @else {\r\n <bsu-no-data [simple]=\"true\"></bsu-no-data>\r\n }\r\n</ng-template>\r\n<ng-template #flexTemplate>\r\n <div class=\"card-view-flex-container\">\r\n <ng-container *ngTemplateOutlet=\"containerTemplate\"></ng-container>\r\n </div>\r\n</ng-template>\r\n<ng-template #containerTemplate let-isGrid>\r\n @for ( mo of moDataList | multipleGroupBy: groupby; track _trackByRow(index, mo); let index = $index; let last =\r\n $last; let first = $first) { @if (!mo.$Parent || mo.$Parent?.$Expanded) {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n mo.$Group || mo.$Group === '' ? group : isGrid ? cardTemplateGrid : cardTemplate;\r\n context: { $implicit: mo, index: this.index }\r\n \"\r\n ></ng-container>\r\n <ng-template #group>\r\n <div\r\n class=\"group-label row-group\"\r\n [style.padding-right]=\"'calc( 1rem + ' + mo.$Level * 12 + 'px' + ' )'\"\r\n [attr.level]=\"mo.$Level\"\r\n [class.root-group]=\"mo.$Level === 0\"\r\n ellipsify\r\n >\r\n <fd-icon\r\n [glyph]=\"mo.$Expanded ? 'navigation-down-arrow' : 'navigation-left-arrow'\"\r\n class=\"cell-expand\"\r\n (click)=\"onExpandClick(mo)\"\r\n ></fd-icon>\r\n <span fd-list-title>{{ mo.$Group }}</span>\r\n </div>\r\n </ng-template>\r\n } @if (setting.contextMenuInFooter && contextMenuItems && contextMenuItems.length > 0) {\r\n <div\r\n ulvContextMenu\r\n [allColumns]=\"allColumns\"\r\n [menuItems]=\"contextMenuItems\"\r\n [styleIndex]=\"mo.$StyleIndex\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [mo]=\"mo\"\r\n (commandClick)=\"ulvCommand.emit({mo,index})\"\r\n ></div>\r\n } }\r\n</ng-template>\r\n<ng-template #cardTemplate let-mo let-index=\"index\">\r\n <bsu-card-item\r\n [mo]=\"mo\"\r\n [openOnClick]=\"openOnClick\"\r\n [contextMenuOverflowText]=\"setting.ContextMenuOverflowText\"\r\n [extraFooterComponent]=\"setting.ExtraFooterComponent\"\r\n [hideOpenIcon]=\"hideOpenIcon\"\r\n [setting]=\"setting\"\r\n [detailsColumns]=\"detailsColumns\"\r\n [columnsCount]=\"columnsCount - detailsColumns.length\"\r\n [rowIndicatorColor]=\"!allColumns.length ? '' : (allColumns[0].Caption | rval: mo:allColumns)\"\r\n [styleIndex]=\"mo.$StyleIndex\"\r\n [detailsColumns]=\"detailsColumns\"\r\n [detailsText]=\"detailsText\"\r\n [detailsTextFunction]=\"detailsTextFunction\"\r\n [detailsComponent]=\"detailsComponent\"\r\n [isNewInlineMo]=\"mo.$NewInlineMo\"\r\n [index]=\"index\"\r\n [isChecked]=\"mo.$IsChecked\"\r\n [visibility]=\"mo.$Visibility\"\r\n [expanded]=\"mo.$Expanded\"\r\n [level]=\"mo.$Level\"\r\n [parentExpanded]=\"mo.$Parent?.$Expanded\"\r\n [setting]=\"setting\"\r\n [inlineEditMode]=\"inlineEditMode\"\r\n [allowInlineEdit]=\"allowInlineEdit\"\r\n [formSetting]=\"formSetting\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [index]=\"index\"\r\n [allColumns]=\"allColumns\"\r\n [contextMenuItems]=\"contextMenuItems\"\r\n [canView]=\"canView\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [navigationArrow]=\"navigationArrow\"\r\n [isCheckList]=\"isCheckList\"\r\n (rowCheck)=\"rowCheck.emit($event)\"\r\n (rowClick)=\"rowClick.emit($event)\"\r\n (ulvCommand)=\"ulvCommand.emit($event)\"\r\n (editFormPanelSave)=\"editFormPanelSave.emit($event)\"\r\n (editFormPanelCancel)=\"editFormPanelCancel.emit($event)\"\r\n (action)=\"action.emit($event)\"\r\n >\r\n </bsu-card-item>\r\n</ng-template>\r\n<ng-template #cardTemplateGrid let-mo let-index=\"index\">\r\n <div\r\n [fdLayoutGridCol]=\"sizeS\"\r\n [colMd]=\"sizeM\"\r\n [colLg]=\"sizeL\"\r\n [colXl]=\"sizeXl\"\r\n [class.selected]=\"mo.$IsChecked ? true : false\"\r\n class=\"card-container\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"cardTemplate; context: { $implicit: mo, index: index }\"></ng-container>\r\n </div>\r\n</ng-template>\r\n", styles: [".card-list{flex-wrap:wrap;padding-bottom:2rem;margin-left:0;row-gap:.25rem}.card-list .group-label{width:100%;display:flex;align-items:center;border-right:none;padding-top:.25rem;padding-bottom:.25rem;column-gap:10px}::ng-deep .card-list .unread .fd-form-item,::ng-deep .card-list .unread .fd-title,::ng-deep .card-list .unread .fd-quick-view__subtitle{font-weight:700}::ng-deep .card-list .group-item-content{background-color:transparent}::ng-deep .card-list .selected fd-card{border-color:var(--sapList_SelectionBorderColor, #0854a0);border-style:solid;border-width:thin}::ng-deep .card-list fd-card fd-icon .avatar{font-size:.75rem!important}::ng-deep .card-list fd-card .fd-quick-view__content{height:100%}::ng-deep .card-list fd-card fd-icon .avatar{font-size:1rem!important}.card-view-flex-container{width:100%;display:flex;flex-wrap:wrap;row-gap:10px;column-gap:10px}\n"] }]
45
+ }] });
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC12aWV3LWNvbnRlbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvY2FyZC12aWV3LWNvbnRlbnQvY2FyZC12aWV3LWNvbnRlbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvY2FyZC12aWV3LWNvbnRlbnQvY2FyZC12aWV3LWNvbnRlbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7OztBQVVyRSxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsNkJBQW9EO0lBUGxHOztRQVFJLFdBQU0sR0FBRyxDQUFDLENBQUM7UUFDWCxVQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsVUFBSyxHQUFHLENBQUMsQ0FBQztRQUNWLFVBQUssR0FBRyxFQUFFLENBQUM7S0FvQmQ7SUFuQkcsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUNyRCxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1QsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBQzlCLENBQUM7UUFDRCxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1IsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBQzVCLENBQUM7UUFDRCxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1IsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBQzVCLENBQUM7UUFDRCxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1IsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBQzVCLENBQUM7SUFDTCxDQUFDO0lBQ0QsYUFBYSxDQUFDLEVBQUU7UUFDWixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM5QixDQUFDOytHQXZCUSx3QkFBd0I7bUdBQXhCLHdCQUF3QixvRkNYckMsK3hKQWdIQTs7NEZEckdhLHdCQUF3QjtrQkFQcEMsU0FBUzsrQkFDSSx1QkFBdUIsbUJBR2hCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCYXNlVmlld0NvbnRlbnRQcm9wc0NvbXBvbmVudCB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuaW1wb3J0IHsgVWlDYXJkTGlzdFZpZXdTZXR0aW5nIH0gZnJvbSAnLi4vbW9kZWxzL2dyaWQtdmlldyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYnN1LWNhcmQtdmlldy1jb250ZW50JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYXJkLXZpZXctY29udGVudC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9jYXJkLXZpZXctY29udGVudC5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2FyZFZpZXdDb250ZW50Q29tcG9uZW50IGV4dGVuZHMgQmFzZVZpZXdDb250ZW50UHJvcHNDb21wb25lbnQ8VWlDYXJkTGlzdFZpZXdTZXR0aW5nPiBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBzaXplWGwgPSAzO1xyXG4gICAgc2l6ZUwgPSA0O1xyXG4gICAgc2l6ZU0gPSA2O1xyXG4gICAgc2l6ZVMgPSAxMjtcclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgY29uc3QgeyBTaXplWEwsIFNpemVMLCBTaXplTSwgU2l6ZVMgfSA9IHRoaXMuc2V0dGluZztcclxuICAgICAgICBpZiAoU2l6ZVhMKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2l6ZVhsID0gMTIgLyBTaXplWEw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChTaXplTCkge1xyXG4gICAgICAgICAgICB0aGlzLnNpemVMID0gMTIgLyBTaXplTDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKFNpemVNKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2l6ZU0gPSAxMiAvIFNpemVNO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoU2l6ZVMpIHtcclxuICAgICAgICAgICAgdGhpcy5zaXplUyA9IDEyIC8gU2l6ZVM7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgb25FeHBhbmRDbGljayhtbyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZXhwYW5kQ2xpY2suZW1pdChtbyk7XHJcbiAgICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNldHRpbmcuQ2FyZFdpZHRoID8gZmxleFRlbXBsYXRlIDogZ3JpZFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbjxuZy10ZW1wbGF0ZSAjZ3JpZFRlbXBsYXRlPlxyXG4gICAgQGlmIChtb0RhdGFMaXN0ICYmIG1vRGF0YUxpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgPGZkLWxheW91dC1ncmlkIGNsYXNzPVwiY2FyZC1saXN0XCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRhaW5lclRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogdHJ1ZSB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2ZkLWxheW91dC1ncmlkPlxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICA8YnN1LW5vLWRhdGEgW3NpbXBsZV09XCJ0cnVlXCI+PC9ic3Utbm8tZGF0YT5cclxuICAgIH1cclxuPC9uZy10ZW1wbGF0ZT5cclxuPG5nLXRlbXBsYXRlICNmbGV4VGVtcGxhdGU+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC12aWV3LWZsZXgtY29udGFpbmVyXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRhaW5lclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuPG5nLXRlbXBsYXRlICNjb250YWluZXJUZW1wbGF0ZSBsZXQtaXNHcmlkPlxyXG4gICAgQGZvciAoIG1vIG9mIG1vRGF0YUxpc3QgfCBtdWx0aXBsZUdyb3VwQnk6IGdyb3VwYnk7IHRyYWNrIF90cmFja0J5Um93KGluZGV4LCBtbyk7IGxldCBpbmRleCA9ICRpbmRleDsgbGV0IGxhc3QgPVxyXG4gICAgJGxhc3Q7IGxldCBmaXJzdCA9ICRmaXJzdCkgeyBAaWYgKCFtby4kUGFyZW50IHx8IG1vLiRQYXJlbnQ/LiRFeHBhbmRlZCkge1xyXG4gICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXHJcbiAgICAgICAgICAgIG1vLiRHcm91cCB8fCBtby4kR3JvdXAgPT09ICcnID8gZ3JvdXAgOiBpc0dyaWQgPyBjYXJkVGVtcGxhdGVHcmlkIDogY2FyZFRlbXBsYXRlO1xyXG4gICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogbW8sIGluZGV4OiB0aGlzLmluZGV4IH1cclxuICAgICAgICBcIlxyXG4gICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLXRlbXBsYXRlICNncm91cD5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwiZ3JvdXAtbGFiZWwgcm93LWdyb3VwXCJcclxuICAgICAgICAgICAgW3N0eWxlLnBhZGRpbmctcmlnaHRdPVwiJ2NhbGMoIDFyZW0gKyAnICsgbW8uJExldmVsICogMTIgKyAncHgnICsgJyApJ1wiXHJcbiAgICAgICAgICAgIFthdHRyLmxldmVsXT1cIm1vLiRMZXZlbFwiXHJcbiAgICAgICAgICAgIFtjbGFzcy5yb290LWdyb3VwXT1cIm1vLiRMZXZlbCA9PT0gMFwiXHJcbiAgICAgICAgICAgIGVsbGlwc2lmeVxyXG4gICAgICAgID5cclxuICAgICAgICAgICAgPGZkLWljb25cclxuICAgICAgICAgICAgICAgIFtnbHlwaF09XCJtby4kRXhwYW5kZWQgPyAnbmF2aWdhdGlvbi1kb3duLWFycm93JyA6ICduYXZpZ2F0aW9uLWxlZnQtYXJyb3cnXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2VsbC1leHBhbmRcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRXhwYW5kQ2xpY2sobW8pXCJcclxuICAgICAgICAgICAgPjwvZmQtaWNvbj5cclxuICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT57eyBtby4kR3JvdXAgfX08L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgfSBAaWYgKHNldHRpbmcuY29udGV4dE1lbnVJbkZvb3RlciAmJiBjb250ZXh0TWVudUl0ZW1zICYmIGNvbnRleHRNZW51SXRlbXMubGVuZ3RoID4gMCkge1xyXG4gICAgPGRpdlxyXG4gICAgICAgIHVsdkNvbnRleHRNZW51XHJcbiAgICAgICAgW2FsbENvbHVtbnNdPVwiYWxsQ29sdW1uc1wiXHJcbiAgICAgICAgW21lbnVJdGVtc109XCJjb250ZXh0TWVudUl0ZW1zXCJcclxuICAgICAgICBbc3R5bGVJbmRleF09XCJtby4kU3R5bGVJbmRleFwiXHJcbiAgICAgICAgW2NvbmRpdGlvbmFsRm9ybWF0c109XCJjb25kaXRpb25hbEZvcm1hdHNcIlxyXG4gICAgICAgIFtkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudV09XCJkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudVwiXHJcbiAgICAgICAgW21vXT1cIm1vXCJcclxuICAgICAgICAoY29tbWFuZENsaWNrKT1cInVsdkNvbW1hbmQuZW1pdCh7bW8saW5kZXh9KVwiXHJcbiAgICA+PC9kaXY+XHJcbiAgICB9IH1cclxuPC9uZy10ZW1wbGF0ZT5cclxuPG5nLXRlbXBsYXRlICNjYXJkVGVtcGxhdGUgbGV0LW1vIGxldC1pbmRleD1cImluZGV4XCI+XHJcbiAgICA8YnN1LWNhcmQtaXRlbVxyXG4gICAgICAgIFttb109XCJtb1wiXHJcbiAgICAgICAgW29wZW5PbkNsaWNrXT1cIm9wZW5PbkNsaWNrXCJcclxuICAgICAgICBbY29udGV4dE1lbnVPdmVyZmxvd1RleHRdPVwic2V0dGluZy5Db250ZXh0TWVudU92ZXJmbG93VGV4dFwiXHJcbiAgICAgICAgW2V4dHJhRm9vdGVyQ29tcG9uZW50XT1cInNldHRpbmcuRXh0cmFGb290ZXJDb21wb25lbnRcIlxyXG4gICAgICAgIFtoaWRlT3Blbkljb25dPVwiaGlkZU9wZW5JY29uXCJcclxuICAgICAgICBbc2V0dGluZ109XCJzZXR0aW5nXCJcclxuICAgICAgICBbZGV0YWlsc0NvbHVtbnNdPVwiZGV0YWlsc0NvbHVtbnNcIlxyXG4gICAgICAgIFtjb2x1bW5zQ291bnRdPVwiY29sdW1uc0NvdW50IC0gZGV0YWlsc0NvbHVtbnMubGVuZ3RoXCJcclxuICAgICAgICBbcm93SW5kaWNhdG9yQ29sb3JdPVwiIWFsbENvbHVtbnMubGVuZ3RoID8gJycgOiAoYWxsQ29sdW1uc1swXS5DYXB0aW9uIHwgcnZhbDogbW86YWxsQ29sdW1ucylcIlxyXG4gICAgICAgIFtzdHlsZUluZGV4XT1cIm1vLiRTdHlsZUluZGV4XCJcclxuICAgICAgICBbZGV0YWlsc0NvbHVtbnNdPVwiZGV0YWlsc0NvbHVtbnNcIlxyXG4gICAgICAgIFtkZXRhaWxzVGV4dF09XCJkZXRhaWxzVGV4dFwiXHJcbiAgICAgICAgW2RldGFpbHNUZXh0RnVuY3Rpb25dPVwiZGV0YWlsc1RleHRGdW5jdGlvblwiXHJcbiAgICAgICAgW2RldGFpbHNDb21wb25lbnRdPVwiZGV0YWlsc0NvbXBvbmVudFwiXHJcbiAgICAgICAgW2lzTmV3SW5saW5lTW9dPVwibW8uJE5ld0lubGluZU1vXCJcclxuICAgICAgICBbaW5kZXhdPVwiaW5kZXhcIlxyXG4gICAgICAgIFtpc0NoZWNrZWRdPVwibW8uJElzQ2hlY2tlZFwiXHJcbiAgICAgICAgW3Zpc2liaWxpdHldPVwibW8uJFZpc2liaWxpdHlcIlxyXG4gICAgICAgIFtleHBhbmRlZF09XCJtby4kRXhwYW5kZWRcIlxyXG4gICAgICAgIFtsZXZlbF09XCJtby4kTGV2ZWxcIlxyXG4gICAgICAgIFtwYXJlbnRFeHBhbmRlZF09XCJtby4kUGFyZW50Py4kRXhwYW5kZWRcIlxyXG4gICAgICAgIFtzZXR0aW5nXT1cInNldHRpbmdcIlxyXG4gICAgICAgIFtpbmxpbmVFZGl0TW9kZV09XCJpbmxpbmVFZGl0TW9kZVwiXHJcbiAgICAgICAgW2FsbG93SW5saW5lRWRpdF09XCJhbGxvd0lubGluZUVkaXRcIlxyXG4gICAgICAgIFtmb3JtU2V0dGluZ109XCJmb3JtU2V0dGluZ1wiXHJcbiAgICAgICAgW3J0bF09XCJydGxcIlxyXG4gICAgICAgIFtkZXZpY2VOYW1lXT1cImRldmljZU5hbWVcIlxyXG4gICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxyXG4gICAgICAgIFtpbmRleF09XCJpbmRleFwiXHJcbiAgICAgICAgW2FsbENvbHVtbnNdPVwiYWxsQ29sdW1uc1wiXHJcbiAgICAgICAgW2NvbnRleHRNZW51SXRlbXNdPVwiY29udGV4dE1lbnVJdGVtc1wiXHJcbiAgICAgICAgW2NhblZpZXddPVwiY2FuVmlld1wiXHJcbiAgICAgICAgW2NvbmRpdGlvbmFsRm9ybWF0c109XCJjb25kaXRpb25hbEZvcm1hdHNcIlxyXG4gICAgICAgIFtkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudV09XCJkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudVwiXHJcbiAgICAgICAgW25hdmlnYXRpb25BcnJvd109XCJuYXZpZ2F0aW9uQXJyb3dcIlxyXG4gICAgICAgIFtpc0NoZWNrTGlzdF09XCJpc0NoZWNrTGlzdFwiXHJcbiAgICAgICAgKHJvd0NoZWNrKT1cInJvd0NoZWNrLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgKHJvd0NsaWNrKT1cInJvd0NsaWNrLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgKHVsdkNvbW1hbmQpPVwidWx2Q29tbWFuZC5lbWl0KCRldmVudClcIlxyXG4gICAgICAgIChlZGl0Rm9ybVBhbmVsU2F2ZSk9XCJlZGl0Rm9ybVBhbmVsU2F2ZS5lbWl0KCRldmVudClcIlxyXG4gICAgICAgIChlZGl0Rm9ybVBhbmVsQ2FuY2VsKT1cImVkaXRGb3JtUGFuZWxDYW5jZWwuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICAoYWN0aW9uKT1cImFjdGlvbi5lbWl0KCRldmVudClcIlxyXG4gICAgPlxyXG4gICAgPC9ic3UtY2FyZC1pdGVtPlxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGUgI2NhcmRUZW1wbGF0ZUdyaWQgbGV0LW1vIGxldC1pbmRleD1cImluZGV4XCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgICAgW2ZkTGF5b3V0R3JpZENvbF09XCJzaXplU1wiXHJcbiAgICAgICAgW2NvbE1kXT1cInNpemVNXCJcclxuICAgICAgICBbY29sTGddPVwic2l6ZUxcIlxyXG4gICAgICAgIFtjb2xYbF09XCJzaXplWGxcIlxyXG4gICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJtby4kSXNDaGVja2VkID8gdHJ1ZSA6IGZhbHNlXCJcclxuICAgICAgICBjbGFzcz1cImNhcmQtY29udGFpbmVyXCJcclxuICAgID5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2FyZFRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogbW8sIGluZGV4OiBpbmRleCB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
@@ -0,0 +1,47 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import { BaseDirective } from 'barsa-novin-ray-core';
3
+ import * as i0 from "@angular/core";
4
+ export class ColRendererDirective extends BaseDirective {
5
+ ngOnInit() {
6
+ super.ngOnInit();
7
+ const column = this.colRenderer;
8
+ const colName = column.Name;
9
+ const data = this.mo[colName];
10
+ let caption = this.mo[colName + '$Caption'];
11
+ let icon = this.mo[colName + '$Icon'];
12
+ if (typeof data === 'object') {
13
+ if (data.$Caption) {
14
+ caption = data.$Caption;
15
+ }
16
+ icon = data.$Icon;
17
+ if (column.FieldTypeId === '6' && column.Tag === 'Image') {
18
+ // Column is enum with image
19
+ caption = '';
20
+ }
21
+ }
22
+ if (!caption && typeof data !== 'object') {
23
+ caption = data;
24
+ }
25
+ if (column.OnlyImage || (column.FieldTypeId === '6' && column.Tag === 'Image')) {
26
+ caption = '';
27
+ }
28
+ if (icon) {
29
+ caption = `<img src="${icon}" aling="middle"> ${caption}`;
30
+ }
31
+ this._el.nativeElement.innerHTML = caption || '';
32
+ }
33
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ColRendererDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
34
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: ColRendererDirective, selector: "[colRenderer]", inputs: { colRenderer: "colRenderer", mo: "mo" }, usesInheritance: true, ngImport: i0 }); }
35
+ }
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ColRendererDirective, decorators: [{
37
+ type: Directive,
38
+ args: [{
39
+ selector: '[colRenderer]',
40
+ standalone: false
41
+ }]
42
+ }], propDecorators: { colRenderer: [{
43
+ type: Input
44
+ }], mo: [{
45
+ type: Input
46
+ }] } });
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sLXJlbmRlcmVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2NvbC1yZW5kZXJlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFekQsT0FBTyxFQUFFLGFBQWEsRUFBdUIsTUFBTSxzQkFBc0IsQ0FBQzs7QUFNMUUsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGFBQWE7SUFHbkQsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ2hDLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDNUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5QixJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUMsQ0FBQztRQUM1QyxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsQ0FBQztRQUV0QyxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzNCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNoQixPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUM1QixDQUFDO1lBQ0QsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDbEIsSUFBSSxNQUFNLENBQUMsV0FBVyxLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsR0FBRyxLQUFLLE9BQU8sRUFBRSxDQUFDO2dCQUN2RCw0QkFBNEI7Z0JBQzVCLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDakIsQ0FBQztRQUNMLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3ZDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDbkIsQ0FBQztRQUVELElBQUksTUFBTSxDQUFDLFNBQVMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxHQUFHLEtBQUssT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM3RSxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLENBQUM7UUFFRCxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1AsT0FBTyxHQUFHLGNBQWMsSUFBSSxxQkFBcUIsT0FBTyxFQUFFLENBQUM7UUFDL0QsQ0FBQztRQUNBLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBNkIsQ0FBQyxTQUFTLEdBQUcsT0FBTyxJQUFJLEVBQUUsQ0FBQztJQUN0RSxDQUFDOytHQWpDUSxvQkFBb0I7bUdBQXBCLG9CQUFvQjs7NEZBQXBCLG9CQUFvQjtrQkFKaEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsVUFBVSxFQUFFLEtBQUs7aUJBQ3BCOzhCQUVZLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBCYXNlRGlyZWN0aXZlLCBNZXRhb2JqZWN0RGF0YU1vZGVsIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ1tjb2xSZW5kZXJlcl0nLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbFJlbmRlcmVyRGlyZWN0aXZlIGV4dGVuZHMgQmFzZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBASW5wdXQoKSBjb2xSZW5kZXJlcjogYW55O1xyXG4gICAgQElucHV0KCkgbW86IE1ldGFvYmplY3REYXRhTW9kZWw7XHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgICAgIGNvbnN0IGNvbHVtbiA9IHRoaXMuY29sUmVuZGVyZXI7XHJcbiAgICAgICAgY29uc3QgY29sTmFtZSA9IGNvbHVtbi5OYW1lO1xyXG4gICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLm1vW2NvbE5hbWVdO1xyXG4gICAgICAgIGxldCBjYXB0aW9uID0gdGhpcy5tb1tjb2xOYW1lICsgJyRDYXB0aW9uJ107XHJcbiAgICAgICAgbGV0IGljb24gPSB0aGlzLm1vW2NvbE5hbWUgKyAnJEljb24nXTtcclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBkYXRhID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgICBpZiAoZGF0YS4kQ2FwdGlvbikge1xyXG4gICAgICAgICAgICAgICAgY2FwdGlvbiA9IGRhdGEuJENhcHRpb247XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWNvbiA9IGRhdGEuJEljb247XHJcbiAgICAgICAgICAgIGlmIChjb2x1bW4uRmllbGRUeXBlSWQgPT09ICc2JyAmJiBjb2x1bW4uVGFnID09PSAnSW1hZ2UnKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBDb2x1bW4gaXMgZW51bSB3aXRoIGltYWdlXHJcbiAgICAgICAgICAgICAgICBjYXB0aW9uID0gJyc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCFjYXB0aW9uICYmIHR5cGVvZiBkYXRhICE9PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgICBjYXB0aW9uID0gZGF0YTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChjb2x1bW4uT25seUltYWdlIHx8IChjb2x1bW4uRmllbGRUeXBlSWQgPT09ICc2JyAmJiBjb2x1bW4uVGFnID09PSAnSW1hZ2UnKSkge1xyXG4gICAgICAgICAgICBjYXB0aW9uID0gJyc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoaWNvbikge1xyXG4gICAgICAgICAgICBjYXB0aW9uID0gYDxpbWcgIHNyYz1cIiR7aWNvbn1cIiBhbGluZz1cIm1pZGRsZVwiPiAke2NhcHRpb259YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgKHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLmlubmVySFRNTCA9IGNhcHRpb24gfHwgJyc7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -0,0 +1,56 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
+ import { BaseComponent } 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/popover";
6
+ import * as i3 from "../layout-control/layout-control.component";
7
+ import * as i4 from "./matrix-value.pipe";
8
+ export class ColumnMatrixRendererComponent extends BaseComponent {
9
+ constructor() {
10
+ super(...arguments);
11
+ this.cellClick = new EventEmitter();
12
+ this.changeToEdit = new EventEmitter();
13
+ }
14
+ ngOnInit() {
15
+ super.ngOnInit();
16
+ this.breakValueAnywhere = this.valueType === 'IntInfo';
17
+ }
18
+ onOpenPopover($event, popoverControlEl) {
19
+ if ($event.buttons === 0 && popoverControlEl.offsetHeight + 5 < popoverControlEl.scrollHeight) {
20
+ this.popover.open();
21
+ }
22
+ }
23
+ onEdit() {
24
+ this.changeToEdit.emit();
25
+ }
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ColumnMatrixRendererComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
27
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ColumnMatrixRendererComponent, selector: "bsu-column-matrix-renderer", inputs: { value: "value", valueCaption: "valueCaption", formLayout: "formLayout", columnCaption: "columnCaption", uiControl: "uiControl", valueType: "valueType", isActive: "isActive", height: "height" }, outputs: { cellClick: "cellClick", changeToEdit: "changeToEdit" }, viewQueries: [{ propertyName: "popover", first: true, predicate: ["popover"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container>\r\n @if (!isActive) {\r\n <ng-container *ngTemplateOutlet=\"renderGeneral\"></ng-container>\r\n } @else { @if (uiControl) {\r\n <bsu-layout-control [caption]=\"valueCaption\" [config]=\"uiControl\" [focusControl]=\"true\" [showLabel]=\"false\">\r\n </bsu-layout-control>\r\n } }\r\n</ng-container>\r\n\r\n<ng-template #renderGeneral>\r\n <div (click)=\"cellClick.emit()\" class=\"render-general\">\r\n <fd-popover #popover [fillControlMode]=\"'equal'\">\r\n <fd-popover-control style=\"display: flex; flex-direction: column; justify-content: center; min-width: 100%\">\r\n <span\r\n style=\"min-width: 100%; height: inherit\"\r\n #popoverControlEl\r\n (keydown.enter)=\"onEdit()\"\r\n (mouseover)=\"onOpenPopover($event, popoverControlEl)\"\r\n (mouseleave)=\"popover.close()\"\r\n [class.break-anywhere]=\"breakValueAnywhere\"\r\n >{{ value | matrixValue: valueType:uiControl }}</span\r\n >\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n <span [class.break-anywhere]=\"breakValueAnywhere\">{{ value | matrixValue: valueType:uiControl }}</span>\r\n </fd-popover-body>\r\n </fd-popover>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{flex:1;width:inherit}.break-anywhere{line-break:anywhere}.render-general{width:100%;height:100%}::ng-deep fd-popover,::ng-deep fd-popover-control,::ng-deep .fd-popover__control{height:inherit;min-width:100%}fd-popover-body{margin-top:5px}fd-popover-body ::ng-deep .fd-popover__popper--cdk-custom{padding:5px}fd-popover-body span{white-space:break-spaces;padding:5px}bsu-layout-control{min-width:100%!important}bsu-layout-control span{height:inherit}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: i2.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "component", type: i2.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "component", type: i3.LayoutControlComponent, selector: "bsu-layout-control", inputs: ["inlineEdit", "caption", "focusControl", "showLabel", "maxLabelWidth", "hasHorizontalText", "contentDensity", "flex", "RefreshLabel", "SetVisible"], outputs: ["events"] }, { kind: "pipe", type: i4.MatrixValuePipe, name: "matrixValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
28
+ }
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ColumnMatrixRendererComponent, decorators: [{
30
+ type: Component,
31
+ args: [{ selector: 'bsu-column-matrix-renderer', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<ng-container>\r\n @if (!isActive) {\r\n <ng-container *ngTemplateOutlet=\"renderGeneral\"></ng-container>\r\n } @else { @if (uiControl) {\r\n <bsu-layout-control [caption]=\"valueCaption\" [config]=\"uiControl\" [focusControl]=\"true\" [showLabel]=\"false\">\r\n </bsu-layout-control>\r\n } }\r\n</ng-container>\r\n\r\n<ng-template #renderGeneral>\r\n <div (click)=\"cellClick.emit()\" class=\"render-general\">\r\n <fd-popover #popover [fillControlMode]=\"'equal'\">\r\n <fd-popover-control style=\"display: flex; flex-direction: column; justify-content: center; min-width: 100%\">\r\n <span\r\n style=\"min-width: 100%; height: inherit\"\r\n #popoverControlEl\r\n (keydown.enter)=\"onEdit()\"\r\n (mouseover)=\"onOpenPopover($event, popoverControlEl)\"\r\n (mouseleave)=\"popover.close()\"\r\n [class.break-anywhere]=\"breakValueAnywhere\"\r\n >{{ value | matrixValue: valueType:uiControl }}</span\r\n >\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n <span [class.break-anywhere]=\"breakValueAnywhere\">{{ value | matrixValue: valueType:uiControl }}</span>\r\n </fd-popover-body>\r\n </fd-popover>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{flex:1;width:inherit}.break-anywhere{line-break:anywhere}.render-general{width:100%;height:100%}::ng-deep fd-popover,::ng-deep fd-popover-control,::ng-deep .fd-popover__control{height:inherit;min-width:100%}fd-popover-body{margin-top:5px}fd-popover-body ::ng-deep .fd-popover__popper--cdk-custom{padding:5px}fd-popover-body span{white-space:break-spaces;padding:5px}bsu-layout-control{min-width:100%!important}bsu-layout-control span{height:inherit}\n"] }]
32
+ }], propDecorators: { popover: [{
33
+ type: ViewChild,
34
+ args: ['popover']
35
+ }], value: [{
36
+ type: Input
37
+ }], valueCaption: [{
38
+ type: Input
39
+ }], formLayout: [{
40
+ type: Input
41
+ }], columnCaption: [{
42
+ type: Input
43
+ }], uiControl: [{
44
+ type: Input
45
+ }], valueType: [{
46
+ type: Input
47
+ }], isActive: [{
48
+ type: Input
49
+ }], height: [{
50
+ type: Input
51
+ }], cellClick: [{
52
+ type: Output
53
+ }], changeToEdit: [{
54
+ type: Output
55
+ }] } });
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLW1hdHJpeC1yZW5kZXJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi9jb2x1bW4tbWF0cml4LXJlbmRlcmVyL2NvbHVtbi1tYXRyaXgtcmVuZGVyZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvY29sdW1uLW1hdHJpeC1yZW5kZXJlci9jb2x1bW4tbWF0cml4LXJlbmRlcmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7O0FBVXJELE1BQU0sT0FBTyw2QkFBOEIsU0FBUSxhQUFhO0lBUGhFOztRQWlCYyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMvQixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7S0FnQi9DO0lBYkcsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUM7SUFDM0QsQ0FBQztJQUVELGFBQWEsQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCO1FBQ2xDLElBQUksTUFBTSxDQUFDLE9BQU8sS0FBSyxDQUFDLElBQUksZ0JBQWdCLENBQUMsWUFBWSxHQUFHLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUM1RixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3hCLENBQUM7SUFDTCxDQUFDO0lBQ0QsTUFBTTtRQUNGLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQzsrR0ExQlEsNkJBQTZCO21HQUE3Qiw2QkFBNkIsNGNDWjFDLHczQ0E2QkE7OzRGRGpCYSw2QkFBNkI7a0JBUHpDLFNBQVM7K0JBQ0ksNEJBQTRCLG1CQUdyQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLEtBQUs7OEJBR0ssT0FBTztzQkFBNUIsU0FBUzt1QkFBQyxTQUFTO2dCQUNYLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0ksU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuaW1wb3J0IHsgUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYnN1LWNvbHVtbi1tYXRyaXgtcmVuZGVyZXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbHVtbi1tYXRyaXgtcmVuZGVyZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vY29sdW1uLW1hdHJpeC1yZW5kZXJlci5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29sdW1uTWF0cml4UmVuZGVyZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBWaWV3Q2hpbGQoJ3BvcG92ZXInKSBwb3BvdmVyOiBQb3BvdmVyQ29tcG9uZW50O1xyXG4gICAgQElucHV0KCkgdmFsdWU7XHJcbiAgICBASW5wdXQoKSB2YWx1ZUNhcHRpb247XHJcbiAgICBASW5wdXQoKSBmb3JtTGF5b3V0OiBhbnk7XHJcbiAgICBASW5wdXQoKSBjb2x1bW5DYXB0aW9uOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSB1aUNvbnRyb2w6IGFueTtcclxuICAgIEBJbnB1dCgpIHZhbHVlVHlwZTogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgaXNBY3RpdmU6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBoZWlnaHQ6IG51bWJlcjtcclxuICAgIEBPdXRwdXQoKSBjZWxsQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgY2hhbmdlVG9FZGl0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAgIGJyZWFrVmFsdWVBbnl3aGVyZTogYm9vbGVhbjtcclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgdGhpcy5icmVha1ZhbHVlQW55d2hlcmUgPSB0aGlzLnZhbHVlVHlwZSA9PT0gJ0ludEluZm8nO1xyXG4gICAgfVxyXG5cclxuICAgIG9uT3BlblBvcG92ZXIoJGV2ZW50LCBwb3BvdmVyQ29udHJvbEVsKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCRldmVudC5idXR0b25zID09PSAwICYmIHBvcG92ZXJDb250cm9sRWwub2Zmc2V0SGVpZ2h0ICsgNSA8IHBvcG92ZXJDb250cm9sRWwuc2Nyb2xsSGVpZ2h0KSB7XHJcbiAgICAgICAgICAgIHRoaXMucG9wb3Zlci5vcGVuKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgb25FZGl0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY2hhbmdlVG9FZGl0LmVtaXQoKTtcclxuICAgIH1cclxufVxyXG4iLCI8bmctY29udGFpbmVyPlxyXG4gICAgQGlmICghaXNBY3RpdmUpIHtcclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyZW5kZXJHZW5lcmFsXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICB9IEBlbHNlIHsgQGlmICh1aUNvbnRyb2wpIHtcclxuICAgIDxic3UtbGF5b3V0LWNvbnRyb2wgW2NhcHRpb25dPVwidmFsdWVDYXB0aW9uXCIgW2NvbmZpZ109XCJ1aUNvbnRyb2xcIiBbZm9jdXNDb250cm9sXT1cInRydWVcIiBbc2hvd0xhYmVsXT1cImZhbHNlXCI+XHJcbiAgICA8L2JzdS1sYXlvdXQtY29udHJvbD5cclxuICAgIH0gfVxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjcmVuZGVyR2VuZXJhbD5cclxuICAgIDxkaXYgKGNsaWNrKT1cImNlbGxDbGljay5lbWl0KClcIiBjbGFzcz1cInJlbmRlci1nZW5lcmFsXCI+XHJcbiAgICAgICAgPGZkLXBvcG92ZXIgI3BvcG92ZXIgW2ZpbGxDb250cm9sTW9kZV09XCInZXF1YWwnXCI+XHJcbiAgICAgICAgICAgIDxmZC1wb3BvdmVyLWNvbnRyb2wgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgbWluLXdpZHRoOiAxMDAlXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPVwibWluLXdpZHRoOiAxMDAlOyBoZWlnaHQ6IGluaGVyaXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICNwb3BvdmVyQ29udHJvbEVsXHJcbiAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib25FZGl0KClcIlxyXG4gICAgICAgICAgICAgICAgICAgIChtb3VzZW92ZXIpPVwib25PcGVuUG9wb3ZlcigkZXZlbnQsIHBvcG92ZXJDb250cm9sRWwpXCJcclxuICAgICAgICAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJwb3BvdmVyLmNsb3NlKClcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5icmVhay1hbnl3aGVyZV09XCJicmVha1ZhbHVlQW55d2hlcmVcIlxyXG4gICAgICAgICAgICAgICAgICAgID57eyB2YWx1ZSB8IG1hdHJpeFZhbHVlOiB2YWx1ZVR5cGU6dWlDb250cm9sIH19PC9zcGFuXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDwvZmQtcG9wb3Zlci1jb250cm9sPlxyXG4gICAgICAgICAgICA8ZmQtcG9wb3Zlci1ib2R5PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzLmJyZWFrLWFueXdoZXJlXT1cImJyZWFrVmFsdWVBbnl3aGVyZVwiPnt7IHZhbHVlIHwgbWF0cml4VmFsdWU6IHZhbHVlVHlwZTp1aUNvbnRyb2wgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZmQtcG9wb3Zlci1ib2R5PlxyXG4gICAgICAgIDwvZmQtcG9wb3Zlcj5cclxuICAgIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=