barsa-sap-ui 2.2.73 → 2.2.74

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 (256) hide show
  1. package/fesm2022/barsa-sap-ui.mjs +756 -760
  2. package/fesm2022/barsa-sap-ui.mjs.map +1 -1
  3. package/lib/models/grid-data-provider.d.ts +1 -1
  4. package/lib/notification-popup.service.d.ts +1 -1
  5. package/lib/ui-grid-columns/ui-grid-columns.component.d.ts +1 -1
  6. package/lib/ui-mo-info-ulv-combo/ui-mo-info-ulv-combo.component.d.ts +1 -1
  7. package/lib/ui-pictures-info/ui-pictures-info.component.d.ts +2 -2
  8. package/lib/ui-table-view/ui-table-view.component.d.ts +4 -4
  9. package/lib/ul-msg-box-adapter/ul-msg-box-adapter.component.d.ts +1 -1
  10. package/lib/ul-notify-popup/ul-notify-popup.component.d.ts +1 -1
  11. package/lib/ulv-toolbar/ulv-toolbar.component.d.ts +2 -2
  12. package/package.json +3 -5
  13. package/esm2022/barsa-sap-ui.mjs +0 -5
  14. package/esm2022/lib/apply-conditional-formmatings.directive.mjs +0 -90
  15. package/esm2022/lib/avatar-size.pipe.mjs +0 -41
  16. package/esm2022/lib/barsa-answer-card/barsa-answer-card.component.mjs +0 -41
  17. package/esm2022/lib/barsa-asp-viewer/barsa-asp-viewer.component.mjs +0 -153
  18. package/esm2022/lib/barsa-bar-download-file/barsa-bar-download-file.component.mjs +0 -30
  19. package/esm2022/lib/barsa-bar-panel/barsa-bar-panel.component.mjs +0 -23
  20. package/esm2022/lib/barsa-base-panel/barsa-base-layout-panel.component.mjs +0 -29
  21. package/esm2022/lib/barsa-breadcrumbs/barsa-breadcrumbs.component.mjs +0 -24
  22. package/esm2022/lib/barsa-card-banner/barsa-card-banner.component.mjs +0 -38
  23. package/esm2022/lib/barsa-card-layout-panel/barsa-card-layout-panel.component.mjs +0 -24
  24. package/esm2022/lib/barsa-card-row-payam/barsa-card-row-payam.component.mjs +0 -31
  25. package/esm2022/lib/barsa-cartable-form/barsa-cartable-form.component.mjs +0 -41
  26. package/esm2022/lib/barsa-cartable-template/barsa-cartable-template.component.mjs +0 -24
  27. package/esm2022/lib/barsa-chat/barsa-chat.component.mjs +0 -84
  28. package/esm2022/lib/barsa-chat/chat.model.mjs +0 -8
  29. package/esm2022/lib/barsa-chat-content/barsa-chat-content.component.mjs +0 -13
  30. package/esm2022/lib/barsa-chat-content-toolbar/barsa-chat-content-toolbar.component.mjs +0 -22
  31. package/esm2022/lib/barsa-chat-list/barsa-chat-list.component.mjs +0 -117
  32. package/esm2022/lib/barsa-chat-message/barsa-chat-message.component.mjs +0 -79
  33. package/esm2022/lib/barsa-chat-thread/barsa-chat-thread.component.mjs +0 -22
  34. package/esm2022/lib/barsa-chat-threads-list/barsa-chat-threads-list.component.mjs +0 -13
  35. package/esm2022/lib/barsa-chat-threads-list-toolbar/barsa-chat-threads-list-toolbar.component.mjs +0 -15
  36. package/esm2022/lib/barsa-chip/barsa-chip.component.mjs +0 -72
  37. package/esm2022/lib/barsa-column-indicator/barsa-column-indicator.component.mjs +0 -23
  38. package/esm2022/lib/barsa-column-rownumber/barsa-column-rownumber.component.mjs +0 -14
  39. package/esm2022/lib/barsa-custom-inline-edit/barsa-custom-inline-edit.component.mjs +0 -14
  40. package/esm2022/lib/barsa-custom-inline-edit-row/barsa-custom-inline-edit-row.component.mjs +0 -26
  41. package/esm2022/lib/barsa-date-time-picker/barsa-date-time-picker.component.mjs +0 -71
  42. package/esm2022/lib/barsa-dynamic-field/barsa-dynamic-field.component.mjs +0 -40
  43. package/esm2022/lib/barsa-enum-menu-button/barsa-enum-menu-button.component.mjs +0 -61
  44. package/esm2022/lib/barsa-field-key-value/barsa-field-key-value.component.mjs +0 -45
  45. package/esm2022/lib/barsa-form-layout-panel/barsa-form-layout-panel.component.mjs +0 -58
  46. package/esm2022/lib/barsa-form-side-content/barsa-form-side-content.component.mjs +0 -58
  47. package/esm2022/lib/barsa-grid-layout-panel/barsa-grid-layout-panel.component.mjs +0 -27
  48. package/esm2022/lib/barsa-group-cartable/barsa-cartable-group.component.mjs +0 -94
  49. package/esm2022/lib/barsa-horizontal-flex-panel/barsa-horizontal-flex-panel.component.mjs +0 -22
  50. package/esm2022/lib/barsa-img-skeleton/barsa-img-skeleton.component.mjs +0 -25
  51. package/esm2022/lib/barsa-linkable-items-panel/barsa-linkable-items-panel.component.mjs +0 -37
  52. package/esm2022/lib/barsa-list-file-linear/barsa-list-file-linear.component.mjs +0 -42
  53. package/esm2022/lib/barsa-list-file-linear-gmail/barsa-list-file-linear-gmail.component.mjs +0 -30
  54. package/esm2022/lib/barsa-list-layout-panel/barsa-list-layout-panel.component.mjs +0 -23
  55. package/esm2022/lib/barsa-modal/barsa-modal.component.mjs +0 -43
  56. package/esm2022/lib/barsa-monaco-editor/barsa-monaco-editor.component.mjs +0 -83
  57. package/esm2022/lib/barsa-network-offline/barsa-network-offline.component.mjs +0 -57
  58. package/esm2022/lib/barsa-pishnamayesh-payam/barsa-pishnamayesh-payam.component.mjs +0 -159
  59. package/esm2022/lib/barsa-question-answer-comments-section/barsa-question-answer-comments-section.component.mjs +0 -17
  60. package/esm2022/lib/barsa-question-answer-content-actions-section/barsa-question-answer-content-actions-section.component.mjs +0 -30
  61. package/esm2022/lib/barsa-question-answer-creator-time-section/barsa-question-answer-creator-time-section.component.mjs +0 -14
  62. package/esm2022/lib/barsa-question-answer-form/barsa-question-answer-form.component.mjs +0 -34
  63. package/esm2022/lib/barsa-question-answer-form-add-comment/barsa-question-answer-form-add-comment.component.mjs +0 -46
  64. package/esm2022/lib/barsa-question-answer-vote-section/barsa-question-answer-vote-section.component.mjs +0 -79
  65. package/esm2022/lib/barsa-question-post/barsa-question-post.component.mjs +0 -30
  66. package/esm2022/lib/barsa-report-card-flex-view/barsa-report-card-flex-view.component.mjs +0 -31
  67. package/esm2022/lib/barsa-report-checkbox-switch-button/barsa-report-checkbox-switch-button.component.mjs +0 -28
  68. package/esm2022/lib/barsa-report-one-of-list/barsa-report-one-of-list.component.mjs +0 -103
  69. package/esm2022/lib/barsa-row-inline-actionlist/barsa-row-inline-actionlist.component.mjs +0 -26
  70. package/esm2022/lib/barsa-sap-ui-routing.module.mjs +0 -18
  71. package/esm2022/lib/barsa-sap-ui.module.mjs +0 -369
  72. package/esm2022/lib/barsa-search-form/barsa-search-form.component.mjs +0 -30
  73. package/esm2022/lib/barsa-simple-form/barsa-simple-form.component.mjs +0 -171
  74. package/esm2022/lib/barsa-tab-route-manager/barsa-tab-route-manager.component.mjs +0 -18
  75. package/esm2022/lib/barsa-table-column/barsa-table-column.component.mjs +0 -29
  76. package/esm2022/lib/barsa-table-header/barsa-table-header.component.mjs +0 -230
  77. package/esm2022/lib/barsa-table-row/barsa-table-row.component.mjs +0 -102
  78. package/esm2022/lib/barsa-tag-categories/barsa-tag-categories.component.mjs +0 -60
  79. package/esm2022/lib/barsa-tag-chip/barsa-tag-chip.component.mjs +0 -26
  80. package/esm2022/lib/barsa-tags-category-row/barsa-tags-category-row.component.mjs +0 -23
  81. package/esm2022/lib/barsa-text-ellipsis/barsa-text-ellipsis.component.mjs +0 -37
  82. package/esm2022/lib/barsa-theme/barsa-theme.component.mjs +0 -121
  83. package/esm2022/lib/barsa-tinyemce/barsa-tinyemce.component.mjs +0 -419
  84. package/esm2022/lib/barsa-toolbaritem-search/barsa-toolbaritem-search.component.mjs +0 -36
  85. package/esm2022/lib/barsa-tree-item/barsa-tree-item.component.mjs +0 -153
  86. package/esm2022/lib/barsa-tree-item/node-has-one-depth-level.pipe.mjs +0 -20
  87. package/esm2022/lib/barsa-ulv-main/barsa-ulv-main.component.mjs +0 -248
  88. package/esm2022/lib/blob-viewer/blob-viewer.component.mjs +0 -79
  89. package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +0 -52
  90. package/esm2022/lib/captcha-field/captcha-field.component.mjs +0 -33
  91. package/esm2022/lib/card-item/card-item.component.mjs +0 -79
  92. package/esm2022/lib/card-view-content/card-view-content.component.mjs +0 -46
  93. package/esm2022/lib/col-renderer.directive.mjs +0 -47
  94. package/esm2022/lib/column-matrix-renderer/column-matrix-renderer.component.mjs +0 -56
  95. package/esm2022/lib/column-matrix-renderer/matrix-value.pipe.mjs +0 -61
  96. package/esm2022/lib/column-renderer/column-renderer.component.mjs +0 -108
  97. package/esm2022/lib/constants.mjs +0 -450
  98. package/esm2022/lib/contentDensity.directive.mjs +0 -25
  99. package/esm2022/lib/custom-date-time/custom-date-time.component.mjs +0 -41
  100. package/esm2022/lib/device-info-field-base.mjs +0 -24
  101. package/esm2022/lib/dialog-handler.directive.mjs +0 -29
  102. package/esm2022/lib/download-files.directive.mjs +0 -34
  103. package/esm2022/lib/dynamic-page-size.pipe.mjs +0 -27
  104. package/esm2022/lib/file-in-dialog/file-in-dialog.component.mjs +0 -44
  105. package/esm2022/lib/file-viewer/file-viewer.component.mjs +0 -47
  106. package/esm2022/lib/file-viewer-content/file-viewer-content.component.mjs +0 -80
  107. package/esm2022/lib/file-viewer-popover/file-viewer-popover.component.mjs +0 -40
  108. package/esm2022/lib/form-dialog/form-dialog.component.mjs +0 -175
  109. package/esm2022/lib/form-dialog-less/form-dialog-less.component.mjs +0 -50
  110. package/esm2022/lib/form-toolbar/form-toolbar.component.mjs +0 -62
  111. package/esm2022/lib/form-toolbar-button/form-toolbar-button.component.mjs +0 -45
  112. package/esm2022/lib/form-wizard/form-wizard.component.mjs +0 -22
  113. package/esm2022/lib/fullscreen-dialog.directive.mjs +0 -60
  114. package/esm2022/lib/fullscreen-files.directive.mjs +0 -43
  115. package/esm2022/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.mjs +0 -220
  116. package/esm2022/lib/gantt-dhtml-chart-view/gantt-dhtml-chart-view.component.mjs +0 -215
  117. package/esm2022/lib/global-search/global-search.component.mjs +0 -27
  118. package/esm2022/lib/global-search-module/global-search-module.component.mjs +0 -29
  119. package/esm2022/lib/global-search-panel/global-search-panel.component.mjs +0 -25
  120. package/esm2022/lib/header-avatar/header-avatar.component.mjs +0 -18
  121. package/esm2022/lib/htree-create-new/htree-create-new.component.mjs +0 -48
  122. package/esm2022/lib/hyperlink/hyperlink.component.mjs +0 -23
  123. package/esm2022/lib/index.mjs +0 -467
  124. package/esm2022/lib/inline-save-and-cancel/inline-save-and-cancel.component.mjs +0 -32
  125. package/esm2022/lib/layout-actions/layout-actions.component.mjs +0 -70
  126. package/esm2022/lib/layout-control/layout-control.component.mjs +0 -320
  127. package/esm2022/lib/layout-wizard/layout-wizard.component.mjs +0 -180
  128. package/esm2022/lib/list-item/list-item.component.mjs +0 -34
  129. package/esm2022/lib/ly-empty-space/ly-empty-space.component.mjs +0 -42
  130. package/esm2022/lib/ly-horizontal-layout/ly-horizontal-layout.component.mjs +0 -82
  131. package/esm2022/lib/ly-label/ly-label.component.mjs +0 -39
  132. package/esm2022/lib/ly-layout-container/ly-layout-container.component.mjs +0 -83
  133. package/esm2022/lib/ly-layout-container-of-root/ly-layout-container-of-root.component.mjs +0 -24
  134. package/esm2022/lib/ly-layout-field-label/ly-layout-field-label.component.mjs +0 -24
  135. package/esm2022/lib/ly-layout-panel/ly-layout-panel.component.mjs +0 -92
  136. package/esm2022/lib/ly-line/ly-line.component.mjs +0 -56
  137. package/esm2022/lib/ly-simple-label/ly-simple-label.component.mjs +0 -22
  138. package/esm2022/lib/ly-tab-container/ly-tab-container.component.mjs +0 -44
  139. package/esm2022/lib/ly-tab-page/ly-tab-page.component.mjs +0 -49
  140. package/esm2022/lib/ly-vertical-layout/ly-vertical-layout.component.mjs +0 -51
  141. package/esm2022/lib/manage-filters-report/manage-filters-report.component.mjs +0 -43
  142. package/esm2022/lib/mask/mask.component.mjs +0 -22
  143. package/esm2022/lib/message-strip/message-strip.component.mjs +0 -29
  144. package/esm2022/lib/models/grid-data-provider.mjs +0 -121
  145. package/esm2022/lib/models/grid-view.mjs +0 -2
  146. package/esm2022/lib/models/index.mjs +0 -2
  147. package/esm2022/lib/no-data/no-data.component.mjs +0 -30
  148. package/esm2022/lib/notification-item/notification-item.component.mjs +0 -57
  149. package/esm2022/lib/notification-item-actions/notification-item-actions.component.mjs +0 -79
  150. package/esm2022/lib/notification-popup.service.mjs +0 -92
  151. package/esm2022/lib/object-status-icon.pipe.mjs +0 -27
  152. package/esm2022/lib/progress-indicator/progress-indicator.component.mjs +0 -18
  153. package/esm2022/lib/report-navigator/report-navigator.component.mjs +0 -75
  154. package/esm2022/lib/report-new-top-form/report-new-top-form.component.mjs +0 -61
  155. package/esm2022/lib/report-search-fields-hidden-settings/report-search-fields-hidden-settings.component.mjs +0 -35
  156. package/esm2022/lib/report-search-fields-manage/report-search-fields-manage.component.mjs +0 -97
  157. package/esm2022/lib/report-search-panel-save/report-search-panel-save.component.mjs +0 -88
  158. package/esm2022/lib/report-tree-base.mjs +0 -387
  159. package/esm2022/lib/report-view-renderer.directive.mjs +0 -395
  160. package/esm2022/lib/responsive-toolbar/responsive-toolbar.component.mjs +0 -50
  161. package/esm2022/lib/responsive-toolbar-renderer/responsive-toolbar-renderer.component.mjs +0 -84
  162. package/esm2022/lib/rich-text-static/rich-text-static.component.mjs +0 -74
  163. package/esm2022/lib/sap-font-class.pipe.mjs +0 -30
  164. package/esm2022/lib/sap-font.pipe.mjs +0 -30
  165. package/esm2022/lib/sap-size.pipe.mjs +0 -28
  166. package/esm2022/lib/sap-ui-report-base.component.mjs +0 -819
  167. package/esm2022/lib/search-panel/search-panel.component.mjs +0 -63
  168. package/esm2022/lib/static-text/static-text.component.mjs +0 -15
  169. package/esm2022/lib/table-th.directive.mjs +0 -87
  170. package/esm2022/lib/title/title.component.mjs +0 -15
  171. package/esm2022/lib/ui-asp-report-viewer/ui-asp-report-viewer.component.mjs +0 -44
  172. package/esm2022/lib/ui-bpmn-viewer/ui-bpmn-viewer.component.mjs +0 -33
  173. package/esm2022/lib/ui-button/ui-button.component.mjs +0 -32
  174. package/esm2022/lib/ui-calendar/ui-calendar.component.mjs +0 -54
  175. package/esm2022/lib/ui-card-view/ui-card-view.component.mjs +0 -63
  176. package/esm2022/lib/ui-card-view-horizontal-group/ui-card-view-horizontal-group.component.mjs +0 -43
  177. package/esm2022/lib/ui-check-box/ui-check-box.component.mjs +0 -44
  178. package/esm2022/lib/ui-color-ui/ui-color-ui.component.mjs +0 -50
  179. package/esm2022/lib/ui-container-with-button/ui-container-with-button.component.mjs +0 -38
  180. package/esm2022/lib/ui-date-range-ex/ui-date-range-ex.component.mjs +0 -191
  181. package/esm2022/lib/ui-date-time/ui-date-time.component.mjs +0 -150
  182. package/esm2022/lib/ui-editable-grid/ui-editable-grid.component.mjs +0 -111
  183. package/esm2022/lib/ui-exception-form/ui-exception-form.component.mjs +0 -53
  184. package/esm2022/lib/ui-file-linear-list-box/ui-file-linear-list-box.component.mjs +0 -138
  185. package/esm2022/lib/ui-form-panel/ui-form-panel.component.mjs +0 -104
  186. package/esm2022/lib/ui-gantt-chart/ui-gantt-chart.component.mjs +0 -33
  187. package/esm2022/lib/ui-graph/ui-graph.component.mjs +0 -17
  188. package/esm2022/lib/ui-grid/ui-grid.component.mjs +0 -26
  189. package/esm2022/lib/ui-grid-columns/ui-grid-columns.component.mjs +0 -43
  190. package/esm2022/lib/ui-grid-filter-item/ui-grid-filter-item.component.mjs +0 -66
  191. package/esm2022/lib/ui-grid-filter-settings/ui-grid-filter-settings.component.mjs +0 -75
  192. package/esm2022/lib/ui-grid-sort-item/ui-grid-sort-item.component.mjs +0 -58
  193. package/esm2022/lib/ui-grid-sort-setting/ui-grid-sort-setting.component.mjs +0 -123
  194. package/esm2022/lib/ui-html-viewer/ui-html-viewer.component.mjs +0 -16
  195. package/esm2022/lib/ui-info-bar-panel/ui-info-bar-panel.component.mjs +0 -11
  196. package/esm2022/lib/ui-label/ui-label.component.mjs +0 -12
  197. package/esm2022/lib/ui-linear-list-container-with-button/ui-linear-list-container-with-button.component.mjs +0 -405
  198. package/esm2022/lib/ui-list-view/ui-list-view.component.mjs +0 -85
  199. package/esm2022/lib/ui-map/ui-map.component.mjs +0 -68
  200. package/esm2022/lib/ui-matrix-view/ui-matrix-view.component.mjs +0 -124
  201. package/esm2022/lib/ui-mo-info-combo-viewer/ui-mo-info-combo-viewer.component.mjs +0 -19
  202. package/esm2022/lib/ui-mo-info-general-object-ui/ui-mo-info-general-object-ui.component.mjs +0 -14
  203. package/esm2022/lib/ui-mo-info-sub-form-ui/ui-mo-info-sub-form-ui.component.mjs +0 -55
  204. package/esm2022/lib/ui-mo-info-ulv-combo/ui-mo-info-ulv-combo.component.mjs +0 -450
  205. package/esm2022/lib/ui-monaco-editor/ui-monaco-editor.component.mjs +0 -28
  206. package/esm2022/lib/ui-multi-select-card/ui-multi-select-card.component.mjs +0 -37
  207. package/esm2022/lib/ui-multi-select-checkbox/ui-multi-select-checkbox.component.mjs +0 -59
  208. package/esm2022/lib/ui-multi-select-combo/ui-multi-select-combo.component.mjs +0 -117
  209. package/esm2022/lib/ui-multi-select-radio/ui-multi-select-radio.component.mjs +0 -36
  210. package/esm2022/lib/ui-multi-select-slider/ui-multi-select-slider.component.mjs +0 -56
  211. package/esm2022/lib/ui-multi-select-smile/ui-multi-select-smile.component.mjs +0 -28
  212. package/esm2022/lib/ui-notification-view/ui-notification-view.component.mjs +0 -47
  213. package/esm2022/lib/ui-num-decimal-ui/ui-num-decimal-ui.component.mjs +0 -33
  214. package/esm2022/lib/ui-num-int-slider/ui-num-int-slider.component.mjs +0 -27
  215. package/esm2022/lib/ui-num-int-ui/ui-num-int-ui.component.mjs +0 -21
  216. package/esm2022/lib/ui-pdf-viewer/ui-pdf-viewer.component.mjs +0 -271
  217. package/esm2022/lib/ui-picture-file/ui-picture-file.component.mjs +0 -103
  218. package/esm2022/lib/ui-pictures-info/ui-pictures-info.component.mjs +0 -260
  219. package/esm2022/lib/ui-radio-group/ui-radio-group.component.mjs +0 -48
  220. package/esm2022/lib/ui-read-only-field/ui-read-only-field.component.mjs +0 -36
  221. package/esm2022/lib/ui-report-carousel-view/ui-report-carousel-view.component.mjs +0 -140
  222. package/esm2022/lib/ui-report-container/ui-report-container.component.mjs +0 -66
  223. package/esm2022/lib/ui-search-command-info-ui/ui-search-command-info-ui.component.mjs +0 -24
  224. package/esm2022/lib/ui-simple-combo/ui-simple-combo.component.mjs +0 -55
  225. package/esm2022/lib/ui-single-picture/ui-single-picture.component.mjs +0 -36
  226. package/esm2022/lib/ui-switch-button/ui-switch-button.component.mjs +0 -20
  227. package/esm2022/lib/ui-table-view/ui-table-view.component.mjs +0 -296
  228. package/esm2022/lib/ui-text-area/ui-text-area.component.mjs +0 -50
  229. package/esm2022/lib/ui-text-field/ui-text-field.component.mjs +0 -52
  230. package/esm2022/lib/ui-text-field-auto-complete/ui-text-field-auto-complete.component.mjs +0 -48
  231. package/esm2022/lib/ui-time-span/ui-time-span.component.mjs +0 -24
  232. package/esm2022/lib/ui-tinymce/ui-tinymce.component.mjs +0 -50
  233. package/esm2022/lib/ui-tree/ui-tree.component.mjs +0 -115
  234. package/esm2022/lib/ui-tree-view/ui-tree-view.component.mjs +0 -100
  235. package/esm2022/lib/ui-ulv-form-multi-select-ui/ui-ulv-form-multi-select-ui.component.mjs +0 -23
  236. package/esm2022/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.mjs +0 -313
  237. package/esm2022/lib/ui-workflow-panel-ui/ui-workflow-panel-ui.component.mjs +0 -25
  238. package/esm2022/lib/ul-loading-mask-ui/ul-loading-mask-ui.component.mjs +0 -93
  239. package/esm2022/lib/ul-msg-box-adapter/ul-msg-box-adapter.component.mjs +0 -119
  240. package/esm2022/lib/ul-notify-popup/ul-notify-popup.component.mjs +0 -32
  241. package/esm2022/lib/ul-toast-adapter/ul-toast-adapter.component.mjs +0 -48
  242. package/esm2022/lib/ulv-column-settings/ulv-column-settings.component.mjs +0 -53
  243. package/esm2022/lib/ulv-context-menu/ulv-context-menu.component.mjs +0 -116
  244. package/esm2022/lib/ulv-filter-settings/ulv-filter-settings.component.mjs +0 -43
  245. package/esm2022/lib/ulv-form-multi-select/ulv-form-multi-select.component.mjs +0 -196
  246. package/esm2022/lib/ulv-groupby-settings/ulv-groupby-settings.component.mjs +0 -44
  247. package/esm2022/lib/ulv-paging/ulv-paging.component.mjs +0 -84
  248. package/esm2022/lib/ulv-selection/ulv-selection.component.mjs +0 -65
  249. package/esm2022/lib/ulv-settings/ulv-settings.component.mjs +0 -116
  250. package/esm2022/lib/ulv-sort-settings/ulv-sort-settings.component.mjs +0 -54
  251. package/esm2022/lib/ulv-toolbar/ulv-toolbar.component.mjs +0 -177
  252. package/esm2022/lib/upload-file-status.pipe.mjs +0 -29
  253. package/esm2022/lib/util-chat-time-badge.pipe.mjs +0 -18
  254. package/esm2022/lib/util-date-to-hh-mm.pipe.mjs +0 -23
  255. package/esm2022/lib/wizard-layout.directive.mjs +0 -104
  256. package/esm2022/public-api.mjs +0 -242
@@ -1,47 +0,0 @@
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
@@ -1,56 +0,0 @@
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 @if(!uiControl){\r\n <div [attr.title]=\"value | matrixValue: valueType:uiControl\">{{ value | matrixValue: valueType:uiControl }}</div>\r\n } @else{\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 }\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", "cellEdit", "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 @if(!uiControl){\r\n <div [attr.title]=\"value | matrixValue: valueType:uiControl\">{{ value | matrixValue: valueType:uiControl }}</div>\r\n } @else{\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 }\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLW1hdHJpeC1yZW5kZXJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi9jb2x1bW4tbWF0cml4LXJlbmRlcmVyL2NvbHVtbi1tYXRyaXgtcmVuZGVyZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvY29sdW1uLW1hdHJpeC1yZW5kZXJlci9jb2x1bW4tbWF0cml4LXJlbmRlcmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7O0FBVXJELE1BQU0sT0FBTyw2QkFBOEIsU0FBUSxhQUFhO0lBUGhFOztRQWlCYyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMvQixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7S0FnQi9DO0lBYkcsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUM7SUFDM0QsQ0FBQztJQUVELGFBQWEsQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCO1FBQ2xDLElBQUksTUFBTSxDQUFDLE9BQU8sS0FBSyxDQUFDLElBQUksZ0JBQWdCLENBQUMsWUFBWSxHQUFHLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUM1RixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3hCLENBQUM7SUFDTCxDQUFDO0lBQ0QsTUFBTTtRQUNGLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQzsrR0ExQlEsNkJBQTZCO21HQUE3Qiw2QkFBNkIsNGNDWjFDLG9pREFpQ0E7OzRGRHJCYSw2QkFBNkI7a0JBUHpDLFNBQVM7K0JBQ0ksNEJBQTRCLG1CQUdyQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLEtBQUs7OEJBR0ssT0FBTztzQkFBNUIsU0FBUzt1QkFBQyxTQUFTO2dCQUNYLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0ksU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuaW1wb3J0IHsgUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYnN1LWNvbHVtbi1tYXRyaXgtcmVuZGVyZXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbHVtbi1tYXRyaXgtcmVuZGVyZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vY29sdW1uLW1hdHJpeC1yZW5kZXJlci5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29sdW1uTWF0cml4UmVuZGVyZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBWaWV3Q2hpbGQoJ3BvcG92ZXInKSBwb3BvdmVyOiBQb3BvdmVyQ29tcG9uZW50O1xyXG4gICAgQElucHV0KCkgdmFsdWU7XHJcbiAgICBASW5wdXQoKSB2YWx1ZUNhcHRpb247XHJcbiAgICBASW5wdXQoKSBmb3JtTGF5b3V0OiBhbnk7XHJcbiAgICBASW5wdXQoKSBjb2x1bW5DYXB0aW9uOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSB1aUNvbnRyb2w6IGFueTtcclxuICAgIEBJbnB1dCgpIHZhbHVlVHlwZTogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgaXNBY3RpdmU6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBoZWlnaHQ6IG51bWJlcjtcclxuICAgIEBPdXRwdXQoKSBjZWxsQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgY2hhbmdlVG9FZGl0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAgIGJyZWFrVmFsdWVBbnl3aGVyZTogYm9vbGVhbjtcclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgdGhpcy5icmVha1ZhbHVlQW55d2hlcmUgPSB0aGlzLnZhbHVlVHlwZSA9PT0gJ0ludEluZm8nO1xyXG4gICAgfVxyXG5cclxuICAgIG9uT3BlblBvcG92ZXIoJGV2ZW50LCBwb3BvdmVyQ29udHJvbEVsKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCRldmVudC5idXR0b25zID09PSAwICYmIHBvcG92ZXJDb250cm9sRWwub2Zmc2V0SGVpZ2h0ICsgNSA8IHBvcG92ZXJDb250cm9sRWwuc2Nyb2xsSGVpZ2h0KSB7XHJcbiAgICAgICAgICAgIHRoaXMucG9wb3Zlci5vcGVuKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgb25FZGl0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY2hhbmdlVG9FZGl0LmVtaXQoKTtcclxuICAgIH1cclxufVxyXG4iLCI8bmctY29udGFpbmVyPlxyXG4gICAgQGlmICghaXNBY3RpdmUpIHtcclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyZW5kZXJHZW5lcmFsXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICB9IEBlbHNlIHsgQGlmICh1aUNvbnRyb2wpIHtcclxuICAgIDxic3UtbGF5b3V0LWNvbnRyb2wgW2NhcHRpb25dPVwidmFsdWVDYXB0aW9uXCIgW2NvbmZpZ109XCJ1aUNvbnRyb2xcIiBbZm9jdXNDb250cm9sXT1cInRydWVcIiBbc2hvd0xhYmVsXT1cImZhbHNlXCI+XHJcbiAgICA8L2JzdS1sYXlvdXQtY29udHJvbD5cclxuICAgIH0gfVxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjcmVuZGVyR2VuZXJhbD5cclxuICAgIEBpZighdWlDb250cm9sKXtcclxuICAgIDxkaXYgW2F0dHIudGl0bGVdPVwidmFsdWUgfCBtYXRyaXhWYWx1ZTogdmFsdWVUeXBlOnVpQ29udHJvbFwiPnt7IHZhbHVlIHwgbWF0cml4VmFsdWU6IHZhbHVlVHlwZTp1aUNvbnRyb2wgfX08L2Rpdj5cclxuICAgIH0gQGVsc2V7XHJcbiAgICA8ZGl2IChjbGljayk9XCJjZWxsQ2xpY2suZW1pdCgpXCIgY2xhc3M9XCJyZW5kZXItZ2VuZXJhbFwiPlxyXG4gICAgICAgIDxmZC1wb3BvdmVyICNwb3BvdmVyIFtmaWxsQ29udHJvbE1vZGVdPVwiJ2VxdWFsJ1wiPlxyXG4gICAgICAgICAgICA8ZmQtcG9wb3Zlci1jb250cm9sIHN0eWxlPVwiZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IG1pbi13aWR0aDogMTAwJVwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIm1pbi13aWR0aDogMTAwJTsgaGVpZ2h0OiBpbmhlcml0XCJcclxuICAgICAgICAgICAgICAgICAgICAjcG9wb3ZlckNvbnRyb2xFbFxyXG4gICAgICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIm9uRWRpdCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAobW91c2VvdmVyKT1cIm9uT3BlblBvcG92ZXIoJGV2ZW50LCBwb3BvdmVyQ29udHJvbEVsKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwicG9wb3Zlci5jbG9zZSgpXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYnJlYWstYW55d2hlcmVdPVwiYnJlYWtWYWx1ZUFueXdoZXJlXCJcclxuICAgICAgICAgICAgICAgICAgICA+e3sgdmFsdWUgfCBtYXRyaXhWYWx1ZTogdmFsdWVUeXBlOnVpQ29udHJvbCB9fTwvc3BhblxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8L2ZkLXBvcG92ZXItY29udHJvbD5cclxuICAgICAgICAgICAgPGZkLXBvcG92ZXItYm9keT5cclxuICAgICAgICAgICAgICAgIDxzcGFuIFtjbGFzcy5icmVhay1hbnl3aGVyZV09XCJicmVha1ZhbHVlQW55d2hlcmVcIj57eyB2YWx1ZSB8IG1hdHJpeFZhbHVlOiB2YWx1ZVR5cGU6dWlDb250cm9sIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2ZkLXBvcG92ZXItYm9keT5cclxuICAgICAgICA8L2ZkLXBvcG92ZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIH1cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
@@ -1,61 +0,0 @@
1
- import { Pipe } from '@angular/core';
2
- import { BarsaApi, DateHijriService, DateMiladiService, DateShamsiService } from 'barsa-novin-ray-core';
3
- import * as i0 from "@angular/core";
4
- const dateService = (logService) => {
5
- const culture = BarsaApi.LoginFormData.Culture;
6
- switch (culture) {
7
- case 'fa-IR':
8
- return new DateShamsiService(logService);
9
- case 'ar-AE':
10
- return new DateHijriService(logService);
11
- default:
12
- return new DateMiladiService(logService);
13
- }
14
- };
15
- export class MatrixValuePipe {
16
- transform(value, valueType, uiControl) {
17
- // this.value = (typeof this.value === 'object' && this.value)?this.value?.$Caption : this.value;
18
- // $Caption
19
- if (typeof value === 'undefined' || value === null) {
20
- return '';
21
- }
22
- let newValue;
23
- switch (valueType) {
24
- case 'DateInfo':
25
- newValue = !value ? '' : dateService(null).getDateString(value, true, false);
26
- break;
27
- case 'EnumInfo':
28
- newValue = this.getEnumInfoValue(value, uiControl);
29
- break;
30
- case 'MetaObjectInfo':
31
- newValue = value.$Caption;
32
- break;
33
- case 'BoolInfo':
34
- newValue = value.toString();
35
- break;
36
- default:
37
- newValue = value;
38
- }
39
- return newValue;
40
- }
41
- getEnumInfoValue(value, uiControl) {
42
- // ControlName
43
- let txtValue = '';
44
- uiControl?.FieldUi?.Setting?.DataSource?.Rows?.forEach((row) => {
45
- if (row.id === value) {
46
- txtValue = row.txt;
47
- }
48
- });
49
- return txtValue;
50
- }
51
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MatrixValuePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
52
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: MatrixValuePipe, name: "matrixValue" }); }
53
- }
54
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MatrixValuePipe, decorators: [{
55
- type: Pipe,
56
- args: [{
57
- name: 'matrixValue',
58
- standalone: false
59
- }]
60
- }] });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0cml4LXZhbHVlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi9jb2x1bW4tbWF0cml4LXJlbmRlcmVyL21hdHJpeC12YWx1ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQWUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFFckgsTUFBTSxXQUFXLEdBQUcsQ0FBQyxVQUFVLEVBQWUsRUFBRTtJQUM1QyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQztJQUMvQyxRQUFRLE9BQU8sRUFBRSxDQUFDO1FBQ2QsS0FBSyxPQUFPO1lBQ1IsT0FBTyxJQUFJLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzdDLEtBQUssT0FBTztZQUNSLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM1QztZQUNJLE9BQU8sSUFBSSxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNqRCxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBTUYsTUFBTSxPQUFPLGVBQWU7SUFDeEIsU0FBUyxDQUFDLEtBQVUsRUFBRSxTQUFpQixFQUFFLFNBQWM7UUFDbkQsaUdBQWlHO1FBQ2pHLFdBQVc7UUFDWCxJQUFJLE9BQU8sS0FBSyxLQUFLLFdBQVcsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDakQsT0FBTyxFQUFFLENBQUM7UUFDZCxDQUFDO1FBQ0QsSUFBSSxRQUFRLENBQUM7UUFDYixRQUFRLFNBQVMsRUFBRSxDQUFDO1lBQ2hCLEtBQUssVUFBVTtnQkFDWCxRQUFRLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUM3RSxNQUFNO1lBQ1YsS0FBSyxVQUFVO2dCQUNYLFFBQVEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUNuRCxNQUFNO1lBQ1YsS0FBSyxnQkFBZ0I7Z0JBQ2pCLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO2dCQUMxQixNQUFNO1lBQ1YsS0FBSyxVQUFVO2dCQUNYLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQzVCLE1BQU07WUFDVjtnQkFDSSxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLENBQUM7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0lBRU8sZ0JBQWdCLENBQUMsS0FBSyxFQUFFLFNBQVM7UUFDckMsY0FBYztRQUNkLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNsQixTQUFTLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQzNELElBQUksR0FBRyxDQUFDLEVBQUUsS0FBSyxLQUFLLEVBQUUsQ0FBQztnQkFDbkIsUUFBUSxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUM7WUFDdkIsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQzsrR0FwQ1EsZUFBZTs2R0FBZixlQUFlOzs0RkFBZixlQUFlO2tCQUozQixJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSxhQUFhO29CQUNuQixVQUFVLEVBQUUsS0FBSztpQkFDcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJhcnNhQXBpLCBEYXRlSGlqcmlTZXJ2aWNlLCBEYXRlTWlsYWRpU2VydmljZSwgRGF0ZVNlcnZpY2UsIERhdGVTaGFtc2lTZXJ2aWNlIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5cclxuY29uc3QgZGF0ZVNlcnZpY2UgPSAobG9nU2VydmljZSk6IERhdGVTZXJ2aWNlID0+IHtcclxuICAgIGNvbnN0IGN1bHR1cmUgPSBCYXJzYUFwaS5Mb2dpbkZvcm1EYXRhLkN1bHR1cmU7XHJcbiAgICBzd2l0Y2ggKGN1bHR1cmUpIHtcclxuICAgICAgICBjYXNlICdmYS1JUic6XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZVNoYW1zaVNlcnZpY2UobG9nU2VydmljZSk7XHJcbiAgICAgICAgY2FzZSAnYXItQUUnOlxyXG4gICAgICAgICAgICByZXR1cm4gbmV3IERhdGVIaWpyaVNlcnZpY2UobG9nU2VydmljZSk7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlTWlsYWRpU2VydmljZShsb2dTZXJ2aWNlKTtcclxuICAgIH1cclxufTtcclxuXHJcbkBQaXBlKHtcclxuICAgIG5hbWU6ICdtYXRyaXhWYWx1ZScsXHJcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWF0cml4VmFsdWVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgICB0cmFuc2Zvcm0odmFsdWU6IGFueSwgdmFsdWVUeXBlOiBzdHJpbmcsIHVpQ29udHJvbDogYW55KTogYW55IHtcclxuICAgICAgICAvLyB0aGlzLnZhbHVlID0gKHR5cGVvZiB0aGlzLnZhbHVlID09PSAnb2JqZWN0JyAmJiB0aGlzLnZhbHVlKT90aGlzLnZhbHVlPy4kQ2FwdGlvbiA6IHRoaXMudmFsdWU7XHJcbiAgICAgICAgLy8gJENhcHRpb25cclxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJyB8fCB2YWx1ZSA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBuZXdWYWx1ZTtcclxuICAgICAgICBzd2l0Y2ggKHZhbHVlVHlwZSkge1xyXG4gICAgICAgICAgICBjYXNlICdEYXRlSW5mbyc6XHJcbiAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9ICF2YWx1ZSA/ICcnIDogZGF0ZVNlcnZpY2UobnVsbCkuZ2V0RGF0ZVN0cmluZyh2YWx1ZSwgdHJ1ZSwgZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ0VudW1JbmZvJzpcclxuICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gdGhpcy5nZXRFbnVtSW5mb1ZhbHVlKHZhbHVlLCB1aUNvbnRyb2wpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ01ldGFPYmplY3RJbmZvJzpcclxuICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gdmFsdWUuJENhcHRpb247XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnQm9vbEluZm8nOlxyXG4gICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB2YWx1ZS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbmV3VmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRFbnVtSW5mb1ZhbHVlKHZhbHVlLCB1aUNvbnRyb2wpOiBzdHJpbmcge1xyXG4gICAgICAgIC8vIENvbnRyb2xOYW1lXHJcbiAgICAgICAgbGV0IHR4dFZhbHVlID0gJyc7XHJcbiAgICAgICAgdWlDb250cm9sPy5GaWVsZFVpPy5TZXR0aW5nPy5EYXRhU291cmNlPy5Sb3dzPy5mb3JFYWNoKChyb3cpID0+IHtcclxuICAgICAgICAgICAgaWYgKHJvdy5pZCA9PT0gdmFsdWUpIHtcclxuICAgICAgICAgICAgICAgIHR4dFZhbHVlID0gcm93LnR4dDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiB0eHRWYWx1ZTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,108 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, HostBinding, Input, signal, inject, Renderer2, ElementRef, 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 "barsa-novin-ray-core";
6
- import * as i3 from "@fundamental-ngx/core/avatar";
7
- import * as i4 from "@fundamental-ngx/core/icon";
8
- import * as i5 from "@fundamental-ngx/core/text";
9
- import * as i6 from "../layout-control/layout-control.component";
10
- import * as i7 from "../file-viewer-popover/file-viewer-popover.component";
11
- import * as i8 from "../fullscreen-files.directive";
12
- export class ColumnRendererComponent extends BaseComponent {
13
- constructor(_cdr) {
14
- super();
15
- this._cdr = _cdr;
16
- this._isSmall = false;
17
- /**
18
- *
19
- */
20
- this._renderer2 = inject(Renderer2);
21
- }
22
- ngOnInit() {
23
- this.signalValue = signal(this.value);
24
- super.ngOnInit();
25
- this.fieldTypeId = Number(this.column.FieldTypeId);
26
- if (this.deviceSize === 's') {
27
- this._isSmall = true;
28
- }
29
- }
30
- ngOnChanges(changes) {
31
- const { value } = changes;
32
- if (value && !value.firstChange) {
33
- this.signalValue.set(value.currentValue);
34
- }
35
- }
36
- ngAfterViewInit() {
37
- if (this.column.FieldTypeId.toString() === '31') {
38
- setTimeout(() => {
39
- this._cdr.detectChanges();
40
- }, 0);
41
- }
42
- }
43
- onElapsised(val) {
44
- if (this.disableEllapsis) {
45
- return;
46
- }
47
- this.showMore = val;
48
- this._cdr.detectChanges();
49
- }
50
- onSetMaxWidth() {
51
- this._renderer2.setStyle(this._filePopover.nativeElement, 'max-width', `${this.containerDom?.offsetWidth}px`);
52
- }
53
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ColumnRendererComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
54
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ColumnRendererComponent, selector: "bsu-column-renderer,[colRenderer]", inputs: { cellEdit: "cellEdit", column: "column", allColumns: "allColumns", mo: "mo", index: "index", editMode: "editMode", attachmentViewType: "attachmentViewType", customRowHeight: "customRowHeight", controlUi: "controlUi", formLayoutShowLabel: "formLayoutShowLabel", isChecked: "isChecked", isNewInlineMo: "isNewInlineMo", containerDom: "containerDom", disableEllapsis: "disableEllapsis", rtl: "rtl", isMobile: "isMobile", fdTextMode: "fdTextMode", deviceName: "deviceName", deviceSize: "deviceSize", value: "value", icon: "icon" }, host: { properties: { "class.isMobile": "this._isSmall" } }, viewQueries: [{ propertyName: "_filePopover", first: true, predicate: ["fileviewerPopover"], descendants: true, read: ElementRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (column) {\r\n<ng-container *ngTemplateOutlet=\"editMode ? formControlTemplate : renderCellTemplate\"> </ng-container>\r\n}\r\n<ng-template #renderCellTemplate>\r\n @switch (column.FieldTypeId) { @case (42) {\r\n <ng-container *ngTemplateOutlet=\"renderCellImage\"></ng-container>\r\n } @case (33) {\r\n <ng-container *ngTemplateOutlet=\"renderCellFileInfo\"></ng-container>\r\n } @case (31) {\r\n <ng-container *ngTemplateOutlet=\"renderCellFileListKhati\"></ng-container>\r\n } @case (11) {\r\n <ng-container *ngTemplateOutlet=\"renderCellListTasavir\"></ng-container>\r\n } @case (5) {\r\n <ng-container\r\n *ngTemplateOutlet=\"column.Extra?.ShowCheckInGrid ? renderCellChecbox : renderChecboxImage\"\r\n ></ng-container>\r\n } @default {\r\n <ng-container *ngTemplateOutlet=\"renderGeneral\"></ng-container>\r\n } }\r\n</ng-template>\r\n<ng-template #renderGeneral>\r\n <div class=\"renderGeneral\" [class.onlyIcon]=\"column.Extra?.IconDisplayTypeEnum === 'Image'\" [style.width]=\"\" [attr.title]=\"value\">\r\n @if (icon) {\r\n <img [attr.rtl]=\"rtl\" [src]=\"icon\" />\r\n }\r\n <!-- <fd-text\r\n #fdText\r\n *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\"\r\n [maxLines]=\"1\"\r\n [text]=\"value\"\r\n [fd-inline-help]=\"value\"\r\n [disabled]=\"!fdText._hasMore\"\r\n ></fd-text> -->\r\n\r\n <!-- <bsu-barsa-text-ellipsis\r\n [style.width]=\"column.$Width\"\r\n *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\"\r\n [text]=\"value\"\r\n></bsu-barsa-text-ellipsis> -->\r\n <!-- <div *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\" style=\"word-break:break-word\">\r\n{{ value }}\r\n</div> -->\r\n @if (column.Extra?.IconDisplayTypeEnum !== 'Image') { @if(!isMobile && !fdTextMode){\r\n <div\r\n [ellapsisText]=\"value\"\r\n [disableEllapsis]=\"editMode\"\r\n [class.ellapsis]=\"!disableEllapsis\" \r\n (ellapsised)=\"onElapsised($event)\"\r\n >\r\n {{ value }}\r\n </div>\r\n } @else{\r\n <fd-text [attr.title]=\"value\" class=\"col-value\" [text]=\"value\" [maxLines]=\"2\"></fd-text>\r\n } }\r\n </div>\r\n</ng-template>\r\n<ng-template #formControlTemplate>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n !controlUi || controlUi.FieldUi.originalXtype === 'Ui.ReadOnlyField'\r\n ? renderCellTemplate\r\n : layoutControlTemplate\r\n \"\r\n ></ng-container>\r\n</ng-template>\r\n<ng-template #layoutControlTemplate>\r\n @if (controlUi) {\r\n <bsu-layout-control\r\n [inlineEdit]=\"true\"\r\n [caption]=\"column.Caption\"\r\n [cellEdit]=\"cellEdit\"\r\n [config]=\"controlUi\"\r\n [focusControl]=\"index === 0 && (isChecked || isNewInlineMo)\"\r\n [showLabel]=\"formLayoutShowLabel\"\r\n ></bsu-layout-control>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellListTasavir>\r\n @if (mo[column.Name] && mo[column.Name].Images) {\r\n <div style=\"display: flex; flex-wrap: wrap; gap: 0.15rem\">\r\n @for (pic of mo[column.Name].Images; track pic) {\r\n <img\r\n fullscreen\r\n fullscreenFiles\r\n [files]=\"mo[column.Name].Images\"\r\n [isImageGallery]=\"true\"\r\n [deviceSize]=\"deviceSize\"\r\n [src]=\"pic.FileId | picFieldSrc: 'BarsaPicture.Thumbnail':null:'':32:32\"\r\n style=\"width: 3rem; height: 3rem\"\r\n />\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellFileListKhati>\r\n @if (mo[column.Name]) {\r\n <div class=\"file-viewer-attachments\">\r\n @for (file of mo[column.Name].Files; track file) { @if (!file.IsDeleted) {\r\n <bsu-file-viewer-popover\r\n #fileviewerPopover\r\n intersectionObserver\r\n [intersectionThreshold]=\"0.1\"\r\n (visibilityChange)=\"$event === 'Visible' && onSetMaxWidth()\"\r\n [file]=\"file\"\r\n [attachmentViewType]=\"+attachmentViewType\"\r\n [files]=\"mo[column.Name].Files\"\r\n [deviceSize]=\"deviceSize\"\r\n [canDownload]=\"true\"\r\n [disableRemove]=\"true\"\r\n [fdType]=\"'transparent'\"\r\n preventDefault\r\n stopPropagation\r\n ></bsu-file-viewer-popover>\r\n }\r\n <!-- <fd-token *ngIf=\"!file.IsDeleted\" [readOnly]=\"true\">{{ file.FileName }}</fd-token> -->\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellFileInfo>\r\n @if (mo[column.Name]) {\r\n <fd-avatar\r\n [transparent]=\"true\"\r\n [size]=\"column.FieldTypeId === '42' || column.FieldTypeId === 42 ? 'xs' : deviceSize === 's' ? 's' : 'm'\"\r\n [image]=\"mo[column.Name] | picFieldSrc: 'PictureFileInfo':null:column.FieldDefId\"\r\n ></fd-avatar>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellChecbox>\r\n <fd-icon [glyph]=\"mo[column.Name] === true ? 'accept' : 'less'\"></fd-icon>\r\n</ng-template>\r\n<ng-template #renderChecboxImage>\r\n @if (column.Extra?.TrueImage === '') {\r\n {{ value }}\r\n } @if (column.Extra?.TrueImage !== '') {\r\n <img [src]=\"mo[column.Name] ? column.Extra?.TrueImage : column.Extra?.FalseImage\" aling=\"middle\" />\r\n }\r\n</ng-template>\r\n<ng-template #renderCellImage>\r\n @if (mo[column.Name] && mo[column.Name]['Url']) {\r\n <fd-avatar\r\n [size]=\"column.FieldTypeId === '42' || column.FieldTypeId === 42 ? 'xs' : deviceSize === 's' ? 's' : 'm'\"\r\n [transparent]=\"true\"\r\n [image]=\"mo[column.Name]['Url']\"\r\n ></fd-avatar>\r\n }\r\n</ng-template>\r\n", styles: [":host{display:contents;overflow:hidden;padding:0}:host.isMobile span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;white-space:pre-wrap}fd-avatar{min-width:100%;width:100%;max-width:64px}.renderGeneral{display:flex;width:100%;height:100%;align-items:center;justify-content:start}.renderGeneral.onlyIcon{justify-content:center}fd-text.col-value ::ng-deep p{color:inherit;font-size:inherit;font-family:inherit;font-weight:inherit}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.IntersectionObserverDirective, selector: "[intersectionObserver]", inputs: ["intersectionDebounce", "intersectionRootMargin", "intersectionRoot", "intersectionThreshold"], outputs: ["visibilityChange"] }, { kind: "directive", type: i2.EllapsisTextDirective, selector: "[ellapsisText]", inputs: ["ellapsisText", "fontSize", "disableEllapsis"], outputs: ["ellapsised"] }, { kind: "directive", type: i2.StopPropagationDirective, selector: "[stopPropagation]" }, { kind: "directive", type: i2.PreventDefaultDirective, selector: "[preventDefault]" }, { kind: "component", type: i3.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: i4.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "component", type: i5.TextComponent, selector: "fd-text", inputs: ["text", "maxLines", "whitespaces", "hyphenation", "expandable", "isCollapsed"], outputs: ["isCollapsedChange"] }, { kind: "component", type: i6.LayoutControlComponent, selector: "bsu-layout-control", inputs: ["inlineEdit", "cellEdit", "caption", "focusControl", "showLabel", "maxLabelWidth", "hasHorizontalText", "contentDensity", "flex", "RefreshLabel", "SetVisible"], outputs: ["events"] }, { kind: "component", type: i7.FileViewerPopoverComponent, selector: "bsu-file-viewer-popover", inputs: ["files", "file", "deviceSize", "canDownload", "disableRemove", "fdType", "attachmentViewType"], outputs: ["remove"] }, { kind: "directive", type: i8.FullscreenFilesDirective, selector: "[fullscreenFiles]", inputs: ["files", "title", "deviceSize", "isImageGallery", "component"] }, { kind: "pipe", type: i2.PictureFieldSourcePipe, name: "picFieldSrc" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
55
- }
56
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ColumnRendererComponent, decorators: [{
57
- type: Component,
58
- args: [{ selector: 'bsu-column-renderer,[colRenderer]', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if (column) {\r\n<ng-container *ngTemplateOutlet=\"editMode ? formControlTemplate : renderCellTemplate\"> </ng-container>\r\n}\r\n<ng-template #renderCellTemplate>\r\n @switch (column.FieldTypeId) { @case (42) {\r\n <ng-container *ngTemplateOutlet=\"renderCellImage\"></ng-container>\r\n } @case (33) {\r\n <ng-container *ngTemplateOutlet=\"renderCellFileInfo\"></ng-container>\r\n } @case (31) {\r\n <ng-container *ngTemplateOutlet=\"renderCellFileListKhati\"></ng-container>\r\n } @case (11) {\r\n <ng-container *ngTemplateOutlet=\"renderCellListTasavir\"></ng-container>\r\n } @case (5) {\r\n <ng-container\r\n *ngTemplateOutlet=\"column.Extra?.ShowCheckInGrid ? renderCellChecbox : renderChecboxImage\"\r\n ></ng-container>\r\n } @default {\r\n <ng-container *ngTemplateOutlet=\"renderGeneral\"></ng-container>\r\n } }\r\n</ng-template>\r\n<ng-template #renderGeneral>\r\n <div class=\"renderGeneral\" [class.onlyIcon]=\"column.Extra?.IconDisplayTypeEnum === 'Image'\" [style.width]=\"\" [attr.title]=\"value\">\r\n @if (icon) {\r\n <img [attr.rtl]=\"rtl\" [src]=\"icon\" />\r\n }\r\n <!-- <fd-text\r\n #fdText\r\n *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\"\r\n [maxLines]=\"1\"\r\n [text]=\"value\"\r\n [fd-inline-help]=\"value\"\r\n [disabled]=\"!fdText._hasMore\"\r\n ></fd-text> -->\r\n\r\n <!-- <bsu-barsa-text-ellipsis\r\n [style.width]=\"column.$Width\"\r\n *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\"\r\n [text]=\"value\"\r\n></bsu-barsa-text-ellipsis> -->\r\n <!-- <div *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\" style=\"word-break:break-word\">\r\n{{ value }}\r\n</div> -->\r\n @if (column.Extra?.IconDisplayTypeEnum !== 'Image') { @if(!isMobile && !fdTextMode){\r\n <div\r\n [ellapsisText]=\"value\"\r\n [disableEllapsis]=\"editMode\"\r\n [class.ellapsis]=\"!disableEllapsis\" \r\n (ellapsised)=\"onElapsised($event)\"\r\n >\r\n {{ value }}\r\n </div>\r\n } @else{\r\n <fd-text [attr.title]=\"value\" class=\"col-value\" [text]=\"value\" [maxLines]=\"2\"></fd-text>\r\n } }\r\n </div>\r\n</ng-template>\r\n<ng-template #formControlTemplate>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n !controlUi || controlUi.FieldUi.originalXtype === 'Ui.ReadOnlyField'\r\n ? renderCellTemplate\r\n : layoutControlTemplate\r\n \"\r\n ></ng-container>\r\n</ng-template>\r\n<ng-template #layoutControlTemplate>\r\n @if (controlUi) {\r\n <bsu-layout-control\r\n [inlineEdit]=\"true\"\r\n [caption]=\"column.Caption\"\r\n [cellEdit]=\"cellEdit\"\r\n [config]=\"controlUi\"\r\n [focusControl]=\"index === 0 && (isChecked || isNewInlineMo)\"\r\n [showLabel]=\"formLayoutShowLabel\"\r\n ></bsu-layout-control>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellListTasavir>\r\n @if (mo[column.Name] && mo[column.Name].Images) {\r\n <div style=\"display: flex; flex-wrap: wrap; gap: 0.15rem\">\r\n @for (pic of mo[column.Name].Images; track pic) {\r\n <img\r\n fullscreen\r\n fullscreenFiles\r\n [files]=\"mo[column.Name].Images\"\r\n [isImageGallery]=\"true\"\r\n [deviceSize]=\"deviceSize\"\r\n [src]=\"pic.FileId | picFieldSrc: 'BarsaPicture.Thumbnail':null:'':32:32\"\r\n style=\"width: 3rem; height: 3rem\"\r\n />\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellFileListKhati>\r\n @if (mo[column.Name]) {\r\n <div class=\"file-viewer-attachments\">\r\n @for (file of mo[column.Name].Files; track file) { @if (!file.IsDeleted) {\r\n <bsu-file-viewer-popover\r\n #fileviewerPopover\r\n intersectionObserver\r\n [intersectionThreshold]=\"0.1\"\r\n (visibilityChange)=\"$event === 'Visible' && onSetMaxWidth()\"\r\n [file]=\"file\"\r\n [attachmentViewType]=\"+attachmentViewType\"\r\n [files]=\"mo[column.Name].Files\"\r\n [deviceSize]=\"deviceSize\"\r\n [canDownload]=\"true\"\r\n [disableRemove]=\"true\"\r\n [fdType]=\"'transparent'\"\r\n preventDefault\r\n stopPropagation\r\n ></bsu-file-viewer-popover>\r\n }\r\n <!-- <fd-token *ngIf=\"!file.IsDeleted\" [readOnly]=\"true\">{{ file.FileName }}</fd-token> -->\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellFileInfo>\r\n @if (mo[column.Name]) {\r\n <fd-avatar\r\n [transparent]=\"true\"\r\n [size]=\"column.FieldTypeId === '42' || column.FieldTypeId === 42 ? 'xs' : deviceSize === 's' ? 's' : 'm'\"\r\n [image]=\"mo[column.Name] | picFieldSrc: 'PictureFileInfo':null:column.FieldDefId\"\r\n ></fd-avatar>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellChecbox>\r\n <fd-icon [glyph]=\"mo[column.Name] === true ? 'accept' : 'less'\"></fd-icon>\r\n</ng-template>\r\n<ng-template #renderChecboxImage>\r\n @if (column.Extra?.TrueImage === '') {\r\n {{ value }}\r\n } @if (column.Extra?.TrueImage !== '') {\r\n <img [src]=\"mo[column.Name] ? column.Extra?.TrueImage : column.Extra?.FalseImage\" aling=\"middle\" />\r\n }\r\n</ng-template>\r\n<ng-template #renderCellImage>\r\n @if (mo[column.Name] && mo[column.Name]['Url']) {\r\n <fd-avatar\r\n [size]=\"column.FieldTypeId === '42' || column.FieldTypeId === 42 ? 'xs' : deviceSize === 's' ? 's' : 'm'\"\r\n [transparent]=\"true\"\r\n [image]=\"mo[column.Name]['Url']\"\r\n ></fd-avatar>\r\n }\r\n</ng-template>\r\n", styles: [":host{display:contents;overflow:hidden;padding:0}:host.isMobile span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;white-space:pre-wrap}fd-avatar{min-width:100%;width:100%;max-width:64px}.renderGeneral{display:flex;width:100%;height:100%;align-items:center;justify-content:start}.renderGeneral.onlyIcon{justify-content:center}fd-text.col-value ::ng-deep p{color:inherit;font-size:inherit;font-family:inherit;font-weight:inherit}\n"] }]
59
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { _filePopover: [{
60
- type: ViewChild,
61
- args: ['fileviewerPopover', { static: false, read: ElementRef }]
62
- }], _isSmall: [{
63
- type: HostBinding,
64
- args: ['class.isMobile']
65
- }], cellEdit: [{
66
- type: Input
67
- }], column: [{
68
- type: Input
69
- }], allColumns: [{
70
- type: Input
71
- }], mo: [{
72
- type: Input
73
- }], index: [{
74
- type: Input
75
- }], editMode: [{
76
- type: Input
77
- }], attachmentViewType: [{
78
- type: Input
79
- }], customRowHeight: [{
80
- type: Input
81
- }], controlUi: [{
82
- type: Input
83
- }], formLayoutShowLabel: [{
84
- type: Input
85
- }], isChecked: [{
86
- type: Input
87
- }], isNewInlineMo: [{
88
- type: Input
89
- }], containerDom: [{
90
- type: Input
91
- }], disableEllapsis: [{
92
- type: Input
93
- }], rtl: [{
94
- type: Input
95
- }], isMobile: [{
96
- type: Input
97
- }], fdTextMode: [{
98
- type: Input
99
- }], deviceName: [{
100
- type: Input
101
- }], deviceSize: [{
102
- type: Input
103
- }], value: [{
104
- type: Input
105
- }], icon: [{
106
- type: Input
107
- }] } });
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXJlbmRlcmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2NvbHVtbi1yZW5kZXJlci9jb2x1bW4tcmVuZGVyZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvY29sdW1uLXJlbmRlcmVyL2NvbHVtbi1yZW5kZXJlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsS0FBSyxFQU1MLE1BQU0sRUFDTixNQUFNLEVBQ04sU0FBUyxFQUNULFVBQVUsRUFDVixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVILGFBQWEsRUFJaEIsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7OztBQVM5QixNQUFNLE9BQU8sdUJBQXdCLFNBQVEsYUFBYTtJQWlDdEQsWUFBc0IsSUFBdUI7UUFDekMsS0FBSyxFQUFFLENBQUM7UUFEVSxTQUFJLEdBQUosSUFBSSxDQUFtQjtRQS9CZCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBMkJoRDs7V0FFRztRQUNPLGVBQVUsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFHekMsQ0FBQztJQUNELFFBQVE7UUFDSixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkQsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLENBQUM7SUFDTCxDQUFDO0lBQ0QsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDMUIsSUFBSSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzdDLENBQUM7SUFDTCxDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDOUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDWixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzlCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNWLENBQUM7SUFDTCxDQUFDO0lBQ0QsV0FBVyxDQUFDLEdBQVk7UUFDcEIsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdkIsT0FBTztRQUNYLENBQUM7UUFDRCxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQztRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFDRCxhQUFhO1FBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxXQUFXLElBQUksQ0FBQyxDQUFDO0lBQ2xILENBQUM7K0dBbkVRLHVCQUF1QjttR0FBdkIsdUJBQXVCLDR2QkFDdUIsVUFBVSx5RUNqQ3JFLGt0TEFtSkE7OzRGRG5IYSx1QkFBdUI7a0JBUG5DLFNBQVM7K0JBQ0ksbUNBQW1DLG1CQUc1Qix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLEtBQUs7c0ZBR29ELFlBQVk7c0JBQWhGLFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBQ3BDLFFBQVE7c0JBQXRDLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQUNwQixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIENvbXBvbmVudCxcclxuICAgIEhvc3RCaW5kaW5nLFxyXG4gICAgSW5wdXQsXHJcbiAgICBBZnRlclZpZXdJbml0LFxyXG4gICAgT25Jbml0LFxyXG4gICAgT25DaGFuZ2VzLFxyXG4gICAgU2ltcGxlQ2hhbmdlcyxcclxuICAgIFdyaXRhYmxlU2lnbmFsLFxyXG4gICAgc2lnbmFsLFxyXG4gICAgaW5qZWN0LFxyXG4gICAgUmVuZGVyZXIyLFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIFZpZXdDaGlsZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gICAgQWJicmV2YXRpb25EZXZpY2VTaXplLFxyXG4gICAgQmFzZUNvbXBvbmVudCxcclxuICAgIExheW91dFNldHRpbmcsXHJcbiAgICBNZXRhb2JqZWN0RGF0YU1vZGVsLFxyXG4gICAgUmVwb3J0Vmlld0NvbHVtblxyXG59IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtY29sdW1uLXJlbmRlcmVyLFtjb2xSZW5kZXJlcl0nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbHVtbi1yZW5kZXJlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9jb2x1bW4tcmVuZGVyZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbHVtblJlbmRlcmVyQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcclxuICAgIEBWaWV3Q2hpbGQoJ2ZpbGV2aWV3ZXJQb3BvdmVyJywgeyBzdGF0aWM6IGZhbHNlLCByZWFkOiBFbGVtZW50UmVmIH0pIF9maWxlUG9wb3ZlcjogRWxlbWVudFJlZjtcclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaXNNb2JpbGUnKSBfaXNTbWFsbCA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgY2VsbEVkaXQ6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBjb2x1bW46IFJlcG9ydFZpZXdDb2x1bW47XHJcbiAgICBASW5wdXQoKSBhbGxDb2x1bW5zOiBSZXBvcnRWaWV3Q29sdW1uW107XHJcbiAgICBASW5wdXQoKSBtbzogTWV0YW9iamVjdERhdGFNb2RlbDtcclxuICAgIEBJbnB1dCgpIGluZGV4OiBhbnk7XHJcbiAgICBASW5wdXQoKSBlZGl0TW9kZTogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGF0dGFjaG1lbnRWaWV3VHlwZTogbnVtYmVyO1xyXG4gICAgQElucHV0KCkgY3VzdG9tUm93SGVpZ2h0OiBhbnk7XHJcbiAgICBASW5wdXQoKSBjb250cm9sVWk6IExheW91dFNldHRpbmcgfCBudWxsO1xyXG4gICAgQElucHV0KCkgZm9ybUxheW91dFNob3dMYWJlbDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGlzQ2hlY2tlZDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGlzTmV3SW5saW5lTW86IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBjb250YWluZXJEb206IEhUTUxFbGVtZW50O1xyXG5cclxuICAgIEBJbnB1dCgpIGRpc2FibGVFbGxhcHNpczogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIHJ0bDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGlzTW9iaWxlOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgZmRUZXh0TW9kZTogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGRldmljZU5hbWU6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIGRldmljZVNpemU6IEFiYnJldmF0aW9uRGV2aWNlU2l6ZTtcclxuICAgIEBJbnB1dCgpIHZhbHVlOiBhbnk7XHJcbiAgICBASW5wdXQoKSBpY29uOiBhbnk7XHJcblxyXG4gICAgc2hvd01vcmU6IGJvb2xlYW47XHJcbiAgICBmaWVsZFR5cGVJZDogbnVtYmVyO1xyXG4gICAgc2lnbmFsVmFsdWU6IFdyaXRhYmxlU2lnbmFsPGFueT47XHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfcmVuZGVyZXIyID0gaW5qZWN0KFJlbmRlcmVyMik7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgfVxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zaWduYWxWYWx1ZSA9IHNpZ25hbCh0aGlzLnZhbHVlKTtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgICAgIHRoaXMuZmllbGRUeXBlSWQgPSBOdW1iZXIodGhpcy5jb2x1bW4uRmllbGRUeXBlSWQpO1xyXG4gICAgICAgIGlmICh0aGlzLmRldmljZVNpemUgPT09ICdzJykge1xyXG4gICAgICAgICAgICB0aGlzLl9pc1NtYWxsID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgeyB2YWx1ZSB9ID0gY2hhbmdlcztcclxuICAgICAgICBpZiAodmFsdWUgJiYgIXZhbHVlLmZpcnN0Q2hhbmdlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2lnbmFsVmFsdWUuc2V0KHZhbHVlLmN1cnJlbnRWYWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5jb2x1bW4uRmllbGRUeXBlSWQudG9TdHJpbmcoKSA9PT0gJzMxJykge1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIG9uRWxhcHNpc2VkKHZhbDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVFbGxhcHNpcykge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2hvd01vcmUgPSB2YWw7XHJcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICAgIG9uU2V0TWF4V2lkdGgoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIyLnNldFN0eWxlKHRoaXMuX2ZpbGVQb3BvdmVyLm5hdGl2ZUVsZW1lbnQsICdtYXgtd2lkdGgnLCBgJHt0aGlzLmNvbnRhaW5lckRvbT8ub2Zmc2V0V2lkdGh9cHhgKTtcclxuICAgIH1cclxufVxyXG4iLCJAaWYgKGNvbHVtbikge1xyXG48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZWRpdE1vZGUgPyBmb3JtQ29udHJvbFRlbXBsYXRlIDogcmVuZGVyQ2VsbFRlbXBsYXRlXCI+IDwvbmctY29udGFpbmVyPlxyXG59XHJcbjxuZy10ZW1wbGF0ZSAjcmVuZGVyQ2VsbFRlbXBsYXRlPlxyXG4gICAgQHN3aXRjaCAoY29sdW1uLkZpZWxkVHlwZUlkKSB7IEBjYXNlICg0Mikge1xyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInJlbmRlckNlbGxJbWFnZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgfSBAY2FzZSAoMzMpIHtcclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyZW5kZXJDZWxsRmlsZUluZm9cIj48L25nLWNvbnRhaW5lcj5cclxuICAgIH0gQGNhc2UgKDMxKSB7XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVuZGVyQ2VsbEZpbGVMaXN0S2hhdGlcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIH0gQGNhc2UgKDExKSB7XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVuZGVyQ2VsbExpc3RUYXNhdmlyXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICB9IEBjYXNlICg1KSB7XHJcbiAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2x1bW4uRXh0cmE/LlNob3dDaGVja0luR3JpZCA/IHJlbmRlckNlbGxDaGVjYm94IDogcmVuZGVyQ2hlY2JveEltYWdlXCJcclxuICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgIH0gQGRlZmF1bHQge1xyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInJlbmRlckdlbmVyYWxcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIH0gfVxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGUgI3JlbmRlckdlbmVyYWw+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmVuZGVyR2VuZXJhbFwiIFtjbGFzcy5vbmx5SWNvbl09XCJjb2x1bW4uRXh0cmE/Lkljb25EaXNwbGF5VHlwZUVudW0gPT09ICdJbWFnZSdcIiBbc3R5bGUud2lkdGhdPVwiXCIgICAgIFthdHRyLnRpdGxlXT1cInZhbHVlXCI+XHJcbiAgICAgICAgQGlmIChpY29uKSB7XHJcbiAgICAgICAgPGltZyBbYXR0ci5ydGxdPVwicnRsXCIgW3NyY109XCJpY29uXCIgLz5cclxuICAgICAgICB9XHJcbiAgICAgICAgPCEtLSA8ZmQtdGV4dFxyXG4gICAgI2ZkVGV4dFxyXG4gICAgKm5nSWY9XCJjb2x1bW4uRXh0cmE/Lkljb25EaXNwbGF5VHlwZUVudW0gIT09ICdJbWFnZSdcIlxyXG4gICAgW21heExpbmVzXT1cIjFcIlxyXG4gICAgW3RleHRdPVwidmFsdWVcIlxyXG4gICAgW2ZkLWlubGluZS1oZWxwXT1cInZhbHVlXCJcclxuICAgIFtkaXNhYmxlZF09XCIhZmRUZXh0Ll9oYXNNb3JlXCJcclxuICA+PC9mZC10ZXh0PiAtLT5cclxuXHJcbiAgICAgICAgPCEtLSA8YnN1LWJhcnNhLXRleHQtZWxsaXBzaXNcclxuICBbc3R5bGUud2lkdGhdPVwiY29sdW1uLiRXaWR0aFwiXHJcbiAgKm5nSWY9XCJjb2x1bW4uRXh0cmE/Lkljb25EaXNwbGF5VHlwZUVudW0gIT09ICdJbWFnZSdcIlxyXG4gIFt0ZXh0XT1cInZhbHVlXCJcclxuPjwvYnN1LWJhcnNhLXRleHQtZWxsaXBzaXM+IC0tPlxyXG4gICAgICAgIDwhLS0gPGRpdiAqbmdJZj1cImNvbHVtbi5FeHRyYT8uSWNvbkRpc3BsYXlUeXBlRW51bSAhPT0gJ0ltYWdlJ1wiIHN0eWxlPVwid29yZC1icmVhazpicmVhay13b3JkXCI+XHJcbnt7IHZhbHVlIH19XHJcbjwvZGl2PiAtLT5cclxuICAgICAgICBAaWYgKGNvbHVtbi5FeHRyYT8uSWNvbkRpc3BsYXlUeXBlRW51bSAhPT0gJ0ltYWdlJykgeyBAaWYoIWlzTW9iaWxlICYmICFmZFRleHRNb2RlKXtcclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIFtlbGxhcHNpc1RleHRdPVwidmFsdWVcIlxyXG4gICAgICAgICAgICBbZGlzYWJsZUVsbGFwc2lzXT1cImVkaXRNb2RlXCJcclxuICAgICAgICAgICAgW2NsYXNzLmVsbGFwc2lzXT1cIiFkaXNhYmxlRWxsYXBzaXNcIiAgICAgICAgXHJcbiAgICAgICAgICAgIChlbGxhcHNpc2VkKT1cIm9uRWxhcHNpc2VkKCRldmVudClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgICAge3sgdmFsdWUgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9IEBlbHNle1xyXG4gICAgICAgIDxmZC10ZXh0IFthdHRyLnRpdGxlXT1cInZhbHVlXCIgY2xhc3M9XCJjb2wtdmFsdWVcIiBbdGV4dF09XCJ2YWx1ZVwiIFttYXhMaW5lc109XCIyXCI+PC9mZC10ZXh0PlxyXG4gICAgICAgIH0gfVxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjZm9ybUNvbnRyb2xUZW1wbGF0ZT5cclxuICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxyXG4gICAgICAgICAgICAhY29udHJvbFVpIHx8IGNvbnRyb2xVaS5GaWVsZFVpLm9yaWdpbmFsWHR5cGUgPT09ICdVaS5SZWFkT25seUZpZWxkJ1xyXG4gICAgICAgICAgICAgICAgPyByZW5kZXJDZWxsVGVtcGxhdGVcclxuICAgICAgICAgICAgICAgIDogbGF5b3V0Q29udHJvbFRlbXBsYXRlXHJcbiAgICAgICAgXCJcclxuICAgID48L25nLWNvbnRhaW5lcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuPG5nLXRlbXBsYXRlICNsYXlvdXRDb250cm9sVGVtcGxhdGU+XHJcbiAgICBAaWYgKGNvbnRyb2xVaSkge1xyXG4gICAgPGJzdS1sYXlvdXQtY29udHJvbFxyXG4gICAgICAgIFtpbmxpbmVFZGl0XT1cInRydWVcIlxyXG4gICAgICAgIFtjYXB0aW9uXT1cImNvbHVtbi5DYXB0aW9uXCJcclxuICAgICAgICBbY2VsbEVkaXRdPVwiY2VsbEVkaXRcIlxyXG4gICAgICAgIFtjb25maWddPVwiY29udHJvbFVpXCJcclxuICAgICAgICBbZm9jdXNDb250cm9sXT1cImluZGV4ID09PSAwICYmIChpc0NoZWNrZWQgfHwgaXNOZXdJbmxpbmVNbylcIlxyXG4gICAgICAgIFtzaG93TGFiZWxdPVwiZm9ybUxheW91dFNob3dMYWJlbFwiXHJcbiAgICA+PC9ic3UtbGF5b3V0LWNvbnRyb2w+XHJcbiAgICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjcmVuZGVyQ2VsbExpc3RUYXNhdmlyPlxyXG4gICAgQGlmIChtb1tjb2x1bW4uTmFtZV0gJiYgbW9bY29sdW1uLk5hbWVdLkltYWdlcykge1xyXG4gICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGZsZXgtd3JhcDogd3JhcDsgZ2FwOiAwLjE1cmVtXCI+XHJcbiAgICAgICAgQGZvciAocGljIG9mIG1vW2NvbHVtbi5OYW1lXS5JbWFnZXM7IHRyYWNrIHBpYykge1xyXG4gICAgICAgIDxpbWdcclxuICAgICAgICAgICAgZnVsbHNjcmVlblxyXG4gICAgICAgICAgICBmdWxsc2NyZWVuRmlsZXNcclxuICAgICAgICAgICAgW2ZpbGVzXT1cIm1vW2NvbHVtbi5OYW1lXS5JbWFnZXNcIlxyXG4gICAgICAgICAgICBbaXNJbWFnZUdhbGxlcnldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxyXG4gICAgICAgICAgICBbc3JjXT1cInBpYy5GaWxlSWQgfCBwaWNGaWVsZFNyYzogJ0JhcnNhUGljdHVyZS5UaHVtYm5haWwnOm51bGw6Jyc6MzI6MzJcIlxyXG4gICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAzcmVtOyBoZWlnaHQ6IDNyZW1cIlxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjcmVuZGVyQ2VsbEZpbGVMaXN0S2hhdGk+XHJcbiAgICBAaWYgKG1vW2NvbHVtbi5OYW1lXSkge1xyXG4gICAgPGRpdiBjbGFzcz1cImZpbGUtdmlld2VyLWF0dGFjaG1lbnRzXCI+XHJcbiAgICAgICAgQGZvciAoZmlsZSBvZiBtb1tjb2x1bW4uTmFtZV0uRmlsZXM7IHRyYWNrIGZpbGUpIHsgQGlmICghZmlsZS5Jc0RlbGV0ZWQpIHtcclxuICAgICAgICA8YnN1LWZpbGUtdmlld2VyLXBvcG92ZXJcclxuICAgICAgICAgICAgI2ZpbGV2aWV3ZXJQb3BvdmVyXHJcbiAgICAgICAgICAgIGludGVyc2VjdGlvbk9ic2VydmVyXHJcbiAgICAgICAgICAgIFtpbnRlcnNlY3Rpb25UaHJlc2hvbGRdPVwiMC4xXCJcclxuICAgICAgICAgICAgKHZpc2liaWxpdHlDaGFuZ2UpPVwiJGV2ZW50ID09PSAnVmlzaWJsZScgJiYgb25TZXRNYXhXaWR0aCgpXCJcclxuICAgICAgICAgICAgW2ZpbGVdPVwiZmlsZVwiXHJcbiAgICAgICAgICAgIFthdHRhY2htZW50Vmlld1R5cGVdPVwiK2F0dGFjaG1lbnRWaWV3VHlwZVwiXHJcbiAgICAgICAgICAgIFtmaWxlc109XCJtb1tjb2x1bW4uTmFtZV0uRmlsZXNcIlxyXG4gICAgICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcclxuICAgICAgICAgICAgW2NhbkRvd25sb2FkXT1cInRydWVcIlxyXG4gICAgICAgICAgICBbZGlzYWJsZVJlbW92ZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgW2ZkVHlwZV09XCIndHJhbnNwYXJlbnQnXCJcclxuICAgICAgICAgICAgcHJldmVudERlZmF1bHRcclxuICAgICAgICAgICAgc3RvcFByb3BhZ2F0aW9uXHJcbiAgICAgICAgPjwvYnN1LWZpbGUtdmlld2VyLXBvcG92ZXI+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDwhLS0gPGZkLXRva2VuICpuZ0lmPVwiIWZpbGUuSXNEZWxldGVkXCIgW3JlYWRPbmx5XT1cInRydWVcIj57eyBmaWxlLkZpbGVOYW1lIH19PC9mZC10b2tlbj4gLS0+XHJcbiAgICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjcmVuZGVyQ2VsbEZpbGVJbmZvPlxyXG4gICAgQGlmIChtb1tjb2x1bW4uTmFtZV0pIHtcclxuICAgIDxmZC1hdmF0YXJcclxuICAgICAgICBbdHJhbnNwYXJlbnRdPVwidHJ1ZVwiXHJcbiAgICAgICAgW3NpemVdPVwiY29sdW1uLkZpZWxkVHlwZUlkID09PSAnNDInIHx8IGNvbHVtbi5GaWVsZFR5cGVJZCA9PT0gNDIgPyAneHMnIDogZGV2aWNlU2l6ZSA9PT0gJ3MnID8gJ3MnIDogJ20nXCJcclxuICAgICAgICBbaW1hZ2VdPVwibW9bY29sdW1uLk5hbWVdIHwgcGljRmllbGRTcmM6ICdQaWN0dXJlRmlsZUluZm8nOm51bGw6Y29sdW1uLkZpZWxkRGVmSWRcIlxyXG4gICAgPjwvZmQtYXZhdGFyPlxyXG4gICAgfVxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGUgI3JlbmRlckNlbGxDaGVjYm94PlxyXG4gICAgPGZkLWljb24gW2dseXBoXT1cIm1vW2NvbHVtbi5OYW1lXSA9PT0gdHJ1ZSA/ICdhY2NlcHQnIDogJ2xlc3MnXCI+PC9mZC1pY29uPlxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGUgI3JlbmRlckNoZWNib3hJbWFnZT5cclxuICAgIEBpZiAoY29sdW1uLkV4dHJhPy5UcnVlSW1hZ2UgPT09ICcnKSB7XHJcbiAgICB7eyB2YWx1ZSB9fVxyXG4gICAgfSBAaWYgKGNvbHVtbi5FeHRyYT8uVHJ1ZUltYWdlICE9PSAnJykge1xyXG4gICAgPGltZyBbc3JjXT1cIm1vW2NvbHVtbi5OYW1lXSA/IGNvbHVtbi5FeHRyYT8uVHJ1ZUltYWdlIDogY29sdW1uLkV4dHJhPy5GYWxzZUltYWdlXCIgYWxpbmc9XCJtaWRkbGVcIiAvPlxyXG4gICAgfVxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGUgI3JlbmRlckNlbGxJbWFnZT5cclxuICAgIEBpZiAobW9bY29sdW1uLk5hbWVdICYmIG1vW2NvbHVtbi5OYW1lXVsnVXJsJ10pIHtcclxuICAgIDxmZC1hdmF0YXJcclxuICAgICAgICBbc2l6ZV09XCJjb2x1bW4uRmllbGRUeXBlSWQgPT09ICc0MicgfHwgY29sdW1uLkZpZWxkVHlwZUlkID09PSA0MiA/ICd4cycgOiBkZXZpY2VTaXplID09PSAncycgPyAncycgOiAnbSdcIlxyXG4gICAgICAgIFt0cmFuc3BhcmVudF09XCJ0cnVlXCJcclxuICAgICAgICBbaW1hZ2VdPVwibW9bY29sdW1uLk5hbWVdWydVcmwnXVwiXHJcbiAgICA+PC9mZC1hdmF0YXI+XHJcbiAgICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==