barsa-sap-ui 2.2.2 → 2.2.4

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 +6 -6
  240. package/fesm2022/barsa-sap-ui.mjs.map +1 -1
  241. package/package.json +3 -1
@@ -0,0 +1,31 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { BaseViewItemPropsComponent } from 'barsa-novin-ray-core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "barsa-novin-ray-core";
6
+ import * as i3 from "@fundamental-ngx/core/avatar";
7
+ import * as i4 from "@fundamental-ngx/core/button";
8
+ import * as i5 from "@fundamental-ngx/core/card";
9
+ import * as i6 from "@fundamental-ngx/core/icon";
10
+ import * as i7 from "@fundamental-ngx/core/object-status";
11
+ import * as i8 from "@fundamental-ngx/core/object-attribute";
12
+ import * as i9 from "../ulv-context-menu/ulv-context-menu.component";
13
+ import * as i10 from "../file-viewer-popover/file-viewer-popover.component";
14
+ import * as i11 from "../download-files.directive";
15
+ export class BarsaCardRowPayamComponent extends BaseViewItemPropsComponent {
16
+ constructor() {
17
+ super(...arguments);
18
+ this.hideContent = false;
19
+ }
20
+ ngOnInit() {
21
+ super.ngOnInit();
22
+ this.content = this._domSanitizer.bypassSecurityTrustHtml(`<div style="color:black;font-size:12pt;font-family:Calibri,Helvetica,sans-serif;">okkkk</div>`);
23
+ }
24
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaCardRowPayamComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
25
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BarsaCardRowPayamComponent, selector: "bsu-barsa-card-row-payam", usesInheritance: true, ngImport: i0, template: "<fd-card cardType=\"object\" class=\"docs-flex-item-margin\">\r\n <fd-card-header (click)=\"hideContent = !hideContent\" bodyClick style=\"border-bottom: none\">\r\n <fd-card-main-header>\r\n <fd-avatar\r\n image=\"http://picsum.photos/id/1018/400\"\r\n [circle]=\"true\"\r\n size=\"s\"\r\n ariaLabel=\"avatar image\"\r\n title=\"avatar image\"\r\n ></fd-avatar>\r\n <h2 fd-card-title>\r\n <div style=\"display: flex; column-gap: 1.275rem\">\r\n <span>\u0631\u0627\u0647\u0628\u0631 \u0633\u06CC\u0633\u062A\u0645</span>\r\n <fd-object-attribute style=\"direction: ltr\">\u062E\u0648\u0627\u0646\u062F\u0647 \u062F\u0631: 1402/12/28 14:20 </fd-object-attribute>\r\n <span fd-object-status status=\"negative\" label=\"\u062E\u06CC\u0644\u06CC \u0645\u0647\u0645\" aria-label=\"\u062E\u06CC\u0644\u06CC \u0645\u0647\u0645\"></span>\r\n </div>\r\n <div style=\"position: absolute; left: 1.2rem; top: 50%\"><fd-icon [glyph]=\"'attachment'\"></fd-icon></div>\r\n </h2>\r\n\r\n <h3 fd-card-subtitle>\r\n @if (hideContent) {\r\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\r\n } @if (!hideContent) {\r\n <ng-container *ngTemplateOutlet=\"toTpl\"></ng-container>\r\n }\r\n </h3>\r\n @if (hideContent) {\r\n <span fd-card-counter><div style=\"direction: ltr\">1402/12/28 14:20</div> </span>\r\n } @if (!hideContent) {\r\n <span\r\n fd-card-counter\r\n ulvContextMenu\r\n [menuItems]=\"contextMenuItems\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n ></span>\r\n }\r\n </fd-card-main-header>\r\n </fd-card-header>\r\n @if (!hideContent) {\r\n <fd-card-content>\r\n <ng-container *ngTemplateOutlet=\"attachmentsTpl\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\r\n </fd-card-content>\r\n }\r\n</fd-card>\r\n\r\n<ng-template #contentTpl>\r\n <div style=\"padding-top: 0.5rem; margin-top: 1rem; border-top: 1px solid #ccc\" [innerHtml]=\"content\"></div>\r\n</ng-template>\r\n\r\n<ng-template #toTpl>\r\n <div>To: \u0645\u0646</div>\r\n <div>Cc: \u0645\u0646</div>\r\n</ng-template>\r\n<ng-template #attachmentsTpl>\r\n <div class=\"file-viewer-attachments\">\r\n @for (file of mo.F5.Files; track file) { @if (!file.IsDeleted) {\r\n <bsu-file-viewer-popover\r\n [file]=\"file\"\r\n [files]=\"mo.F5.Files\"\r\n [deviceSize]=\"deviceSize\"\r\n [canDownload]=\"true\"\r\n [disableRemove]=\"true\"\r\n [fdType]=\"'transparent'\"\r\n ></bsu-file-viewer-popover>\r\n } }\r\n </div>\r\n @if (mo.F5.Files.length > 1) {\r\n <button\r\n fd-button\r\n [fdType]=\"'transparent'\"\r\n [label]=\"'Download' | bbbTranslate: 'All'\"\r\n [glyph]=\"'download'\"\r\n downloadFiles\r\n [files]=\"mo.F5.Files\"\r\n ></button>\r\n }\r\n</ng-template>\r\n", styles: [":host{display:block;width:100%;height:100%;padding-bottom:.5rem}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.BodyClickDirective, selector: "[bodyClick]", inputs: ["disableBodyClick"] }, { 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.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i5.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: i5.CardHeaderComponent, selector: "fd-card-header", inputs: ["ariaRoleDescription"] }, { kind: "component", type: i5.CardMainHeaderComponent, selector: "fd-card-main-header", inputs: ["interactive", "title"] }, { kind: "component", type: i5.CardContentComponent, selector: "fd-card-content" }, { kind: "directive", type: i5.CardTitleDirective, selector: "[fd-card-title]", inputs: ["id"] }, { kind: "directive", type: i5.CardSubtitleDirective, selector: "[fd-card-subtitle]" }, { kind: "directive", type: i5.CardCounterDirective, selector: "[fd-card-counter]", inputs: ["status"] }, { kind: "component", type: i6.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "component", type: i7.ObjectStatusComponent, selector: "[fd-object-status]", inputs: ["class", "status", "glyph", "glyphFont", "label", "glyphAriaLabel", "indicationColor", "clickable", "inverted", "large", "secondaryIndication", "textTemplate"] }, { kind: "component", type: i8.ObjectAttributeComponent, selector: "fd-object-attribute, fdp-object-attribute", inputs: ["label", "linkText", "islink", "disabled"], outputs: ["objectAttributeclick"] }, { kind: "component", type: i9.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: i10.FileViewerPopoverComponent, selector: "bsu-file-viewer-popover", inputs: ["files", "file", "deviceSize", "canDownload", "disableRemove", "fdType"], outputs: ["remove"] }, { kind: "directive", type: i11.DownloadFilesDirective, selector: "[downloadFiles]", inputs: ["files"] }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
26
+ }
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaCardRowPayamComponent, decorators: [{
28
+ type: Component,
29
+ args: [{ selector: 'bsu-barsa-card-row-payam', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<fd-card cardType=\"object\" class=\"docs-flex-item-margin\">\r\n <fd-card-header (click)=\"hideContent = !hideContent\" bodyClick style=\"border-bottom: none\">\r\n <fd-card-main-header>\r\n <fd-avatar\r\n image=\"http://picsum.photos/id/1018/400\"\r\n [circle]=\"true\"\r\n size=\"s\"\r\n ariaLabel=\"avatar image\"\r\n title=\"avatar image\"\r\n ></fd-avatar>\r\n <h2 fd-card-title>\r\n <div style=\"display: flex; column-gap: 1.275rem\">\r\n <span>\u0631\u0627\u0647\u0628\u0631 \u0633\u06CC\u0633\u062A\u0645</span>\r\n <fd-object-attribute style=\"direction: ltr\">\u062E\u0648\u0627\u0646\u062F\u0647 \u062F\u0631: 1402/12/28 14:20 </fd-object-attribute>\r\n <span fd-object-status status=\"negative\" label=\"\u062E\u06CC\u0644\u06CC \u0645\u0647\u0645\" aria-label=\"\u062E\u06CC\u0644\u06CC \u0645\u0647\u0645\"></span>\r\n </div>\r\n <div style=\"position: absolute; left: 1.2rem; top: 50%\"><fd-icon [glyph]=\"'attachment'\"></fd-icon></div>\r\n </h2>\r\n\r\n <h3 fd-card-subtitle>\r\n @if (hideContent) {\r\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\r\n } @if (!hideContent) {\r\n <ng-container *ngTemplateOutlet=\"toTpl\"></ng-container>\r\n }\r\n </h3>\r\n @if (hideContent) {\r\n <span fd-card-counter><div style=\"direction: ltr\">1402/12/28 14:20</div> </span>\r\n } @if (!hideContent) {\r\n <span\r\n fd-card-counter\r\n ulvContextMenu\r\n [menuItems]=\"contextMenuItems\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n ></span>\r\n }\r\n </fd-card-main-header>\r\n </fd-card-header>\r\n @if (!hideContent) {\r\n <fd-card-content>\r\n <ng-container *ngTemplateOutlet=\"attachmentsTpl\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\r\n </fd-card-content>\r\n }\r\n</fd-card>\r\n\r\n<ng-template #contentTpl>\r\n <div style=\"padding-top: 0.5rem; margin-top: 1rem; border-top: 1px solid #ccc\" [innerHtml]=\"content\"></div>\r\n</ng-template>\r\n\r\n<ng-template #toTpl>\r\n <div>To: \u0645\u0646</div>\r\n <div>Cc: \u0645\u0646</div>\r\n</ng-template>\r\n<ng-template #attachmentsTpl>\r\n <div class=\"file-viewer-attachments\">\r\n @for (file of mo.F5.Files; track file) { @if (!file.IsDeleted) {\r\n <bsu-file-viewer-popover\r\n [file]=\"file\"\r\n [files]=\"mo.F5.Files\"\r\n [deviceSize]=\"deviceSize\"\r\n [canDownload]=\"true\"\r\n [disableRemove]=\"true\"\r\n [fdType]=\"'transparent'\"\r\n ></bsu-file-viewer-popover>\r\n } }\r\n </div>\r\n @if (mo.F5.Files.length > 1) {\r\n <button\r\n fd-button\r\n [fdType]=\"'transparent'\"\r\n [label]=\"'Download' | bbbTranslate: 'All'\"\r\n [glyph]=\"'download'\"\r\n downloadFiles\r\n [files]=\"mo.F5.Files\"\r\n ></button>\r\n }\r\n</ng-template>\r\n", styles: [":host{display:block;width:100%;height:100%;padding-bottom:.5rem}\n"] }]
30
+ }] });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtY2FyZC1yb3ctcGF5YW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtY2FyZC1yb3ctcGF5YW0vYmFyc2EtY2FyZC1yb3ctcGF5YW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtY2FyZC1yb3ctcGF5YW0vYmFyc2EtY2FyZC1yb3ctcGF5YW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUczRSxPQUFPLEVBQUUsMEJBQTBCLEVBQXVCLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFRdkYsTUFBTSxPQUFPLDBCQUEyQixTQUFRLDBCQUEwQjtJQVAxRTs7UUFRSSxnQkFBVyxHQUFHLEtBQUssQ0FBQztLQVN2QjtJQU5HLFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLHVCQUF1QixDQUNyRCwrRkFBK0YsQ0FDbEcsQ0FBQztJQUNOLENBQUM7K0dBVFEsMEJBQTBCO21HQUExQiwwQkFBMEIsdUZDWHZDLDJ4R0E4RUE7OzRGRG5FYSwwQkFBMEI7a0JBUHRDLFNBQVM7K0JBQ0ksMEJBQTBCLG1CQUduQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuXHJcbmltcG9ydCB7IEJhc2VWaWV3SXRlbVByb3BzQ29tcG9uZW50LCBNZXRhb2JqZWN0RGF0YU1vZGVsIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYnN1LWJhcnNhLWNhcmQtcm93LXBheWFtJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXJzYS1jYXJkLXJvdy1wYXlhbS5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9iYXJzYS1jYXJkLXJvdy1wYXlhbS5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmFyc2FDYXJkUm93UGF5YW1Db21wb25lbnQgZXh0ZW5kcyBCYXNlVmlld0l0ZW1Qcm9wc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBoaWRlQ29udGVudCA9IGZhbHNlO1xyXG4gICAgY29udGVudDogU2FmZUh0bWw7XHJcbiAgICBwYXJhbWV0ZXJzOiBCYXJzYUNhcmRSb3dQYXlhbTtcclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgdGhpcy5jb250ZW50ID0gdGhpcy5fZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKFxyXG4gICAgICAgICAgICBgPGRpdiBzdHlsZT1cImNvbG9yOmJsYWNrO2ZvbnQtc2l6ZToxMnB0O2ZvbnQtZmFtaWx5OkNhbGlicmksSGVsdmV0aWNhLHNhbnMtc2VyaWY7XCI+b2tra2s8L2Rpdj5gXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxufVxyXG5pbnRlcmZhY2UgQmFyc2FDYXJkUm93UGF5YW0gZXh0ZW5kcyBNZXRhb2JqZWN0RGF0YU1vZGVsIHtcclxuICAgIEZpZWxkVGl0bGU6IHN0cmluZztcclxuICAgIEZpZWxkRGF0ZVRpbWVMZWZ0OiBzdHJpbmc7XHJcbiAgICBGaWVsZERhdGVUaW1lUmlnaHQ6IHN0cmluZztcclxuICAgIFNob3dBdHRhY2htZW50czogYm9vbGVhbjtcclxuICAgIEZpZWxkQXR0YWNobWVudHM6IHN0cmluZztcclxufVxyXG4iLCI8ZmQtY2FyZCBjYXJkVHlwZT1cIm9iamVjdFwiIGNsYXNzPVwiZG9jcy1mbGV4LWl0ZW0tbWFyZ2luXCI+XHJcbiAgICA8ZmQtY2FyZC1oZWFkZXIgKGNsaWNrKT1cImhpZGVDb250ZW50ID0gIWhpZGVDb250ZW50XCIgYm9keUNsaWNrIHN0eWxlPVwiYm9yZGVyLWJvdHRvbTogbm9uZVwiPlxyXG4gICAgICAgIDxmZC1jYXJkLW1haW4taGVhZGVyPlxyXG4gICAgICAgICAgICA8ZmQtYXZhdGFyXHJcbiAgICAgICAgICAgICAgICBpbWFnZT1cImh0dHA6Ly9waWNzdW0ucGhvdG9zL2lkLzEwMTgvNDAwXCJcclxuICAgICAgICAgICAgICAgIFtjaXJjbGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBzaXplPVwic1wiXHJcbiAgICAgICAgICAgICAgICBhcmlhTGFiZWw9XCJhdmF0YXIgaW1hZ2VcIlxyXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJhdmF0YXIgaW1hZ2VcIlxyXG4gICAgICAgICAgICA+PC9mZC1hdmF0YXI+XHJcbiAgICAgICAgICAgIDxoMiBmZC1jYXJkLXRpdGxlPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGNvbHVtbi1nYXA6IDEuMjc1cmVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+2LHYp9mH2KjYsSDYs9uM2LPYqtmFPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxmZC1vYmplY3QtYXR0cmlidXRlIHN0eWxlPVwiZGlyZWN0aW9uOiBsdHJcIj7YrtmI2KfZhtiv2Ycg2K/YsTogMTQwMi8xMi8yOCAxNDoyMCA8L2ZkLW9iamVjdC1hdHRyaWJ1dGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtb2JqZWN0LXN0YXR1cyBzdGF0dXM9XCJuZWdhdGl2ZVwiIGxhYmVsPVwi2K7bjNmE24wg2YXZh9mFXCIgYXJpYS1sYWJlbD1cItiu24zZhNuMINmF2YfZhVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cInBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMS4ycmVtOyB0b3A6IDUwJVwiPjxmZC1pY29uIFtnbHlwaF09XCInYXR0YWNobWVudCdcIj48L2ZkLWljb24+PC9kaXY+XHJcbiAgICAgICAgICAgIDwvaDI+XHJcblxyXG4gICAgICAgICAgICA8aDMgZmQtY2FyZC1zdWJ0aXRsZT5cclxuICAgICAgICAgICAgICAgIEBpZiAoaGlkZUNvbnRlbnQpIHtcclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50VHBsXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICB9IEBpZiAoIWhpZGVDb250ZW50KSB7XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidG9UcGxcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgQGlmIChoaWRlQ29udGVudCkge1xyXG4gICAgICAgICAgICA8c3BhbiBmZC1jYXJkLWNvdW50ZXI+PGRpdiBzdHlsZT1cImRpcmVjdGlvbjogbHRyXCI+MTQwMi8xMi8yOCAxNDoyMDwvZGl2PiA8L3NwYW4+XHJcbiAgICAgICAgICAgIH0gQGlmICghaGlkZUNvbnRlbnQpIHtcclxuICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgIGZkLWNhcmQtY291bnRlclxyXG4gICAgICAgICAgICAgICAgdWx2Q29udGV4dE1lbnVcclxuICAgICAgICAgICAgICAgIFttZW51SXRlbXNdPVwiY29udGV4dE1lbnVJdGVtc1wiXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVdPVwiZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVcIlxyXG4gICAgICAgICAgICA+PC9zcGFuPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgPC9mZC1jYXJkLW1haW4taGVhZGVyPlxyXG4gICAgPC9mZC1jYXJkLWhlYWRlcj5cclxuICAgIEBpZiAoIWhpZGVDb250ZW50KSB7XHJcbiAgICA8ZmQtY2FyZC1jb250ZW50PlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJhdHRhY2htZW50c1RwbFwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50VHBsXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2ZkLWNhcmQtY29udGVudD5cclxuICAgIH1cclxuPC9mZC1jYXJkPlxyXG5cclxuPG5nLXRlbXBsYXRlICNjb250ZW50VHBsPlxyXG4gICAgPGRpdiBzdHlsZT1cInBhZGRpbmctdG9wOiAwLjVyZW07IG1hcmdpbi10b3A6IDFyZW07IGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjXCIgW2lubmVySHRtbF09XCJjb250ZW50XCI+PC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI3RvVHBsPlxyXG4gICAgPGRpdj5Ubzog2YXZhjwvZGl2PlxyXG4gICAgPGRpdj5DYzog2YXZhjwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGUgI2F0dGFjaG1lbnRzVHBsPlxyXG4gICAgPGRpdiBjbGFzcz1cImZpbGUtdmlld2VyLWF0dGFjaG1lbnRzXCI+XHJcbiAgICAgICAgQGZvciAoZmlsZSBvZiBtby5GNS5GaWxlczsgdHJhY2sgZmlsZSkgeyBAaWYgKCFmaWxlLklzRGVsZXRlZCkge1xyXG4gICAgICAgIDxic3UtZmlsZS12aWV3ZXItcG9wb3ZlclxyXG4gICAgICAgICAgICBbZmlsZV09XCJmaWxlXCJcclxuICAgICAgICAgICAgW2ZpbGVzXT1cIm1vLkY1LkZpbGVzXCJcclxuICAgICAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXHJcbiAgICAgICAgICAgIFtjYW5Eb3dubG9hZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVSZW1vdmVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgIFtmZFR5cGVdPVwiJ3RyYW5zcGFyZW50J1wiXHJcbiAgICAgICAgPjwvYnN1LWZpbGUtdmlld2VyLXBvcG92ZXI+XHJcbiAgICAgICAgfSB9XHJcbiAgICA8L2Rpdj5cclxuICAgIEBpZiAobW8uRjUuRmlsZXMubGVuZ3RoID4gMSkge1xyXG4gICAgPGJ1dHRvblxyXG4gICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgIFtmZFR5cGVdPVwiJ3RyYW5zcGFyZW50J1wiXHJcbiAgICAgICAgW2xhYmVsXT1cIidEb3dubG9hZCcgfCBiYmJUcmFuc2xhdGU6ICdBbGwnXCJcclxuICAgICAgICBbZ2x5cGhdPVwiJ2Rvd25sb2FkJ1wiXHJcbiAgICAgICAgZG93bmxvYWRGaWxlc1xyXG4gICAgICAgIFtmaWxlc109XCJtby5GNS5GaWxlc1wiXHJcbiAgICA+PC9idXR0b24+XHJcbiAgICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
@@ -0,0 +1,41 @@
1
+ import { ChangeDetectionStrategy, Component, HostBinding } from '@angular/core';
2
+ import { FormBaseComponent, FormPanelService } from 'barsa-novin-ray-core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../layout-control/layout-control.component";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "barsa-novin-ray-core";
7
+ export class BarsaCartableFormComponent extends FormBaseComponent {
8
+ constructor() {
9
+ super(...arguments);
10
+ this._isSmallDevice = false;
11
+ }
12
+ ngOnInit() {
13
+ this._isSmallDevice = this._isSmalDeviceSize(this._portalService.deviceSize);
14
+ super.ngOnInit();
15
+ this._portalService.deviceSize$.subscribe((c) => {
16
+ const isSmallDevice = this._isSmalDeviceSize(c);
17
+ isSmallDevice !== this._isSmallDevice && (this._isSmallDevice = isSmallDevice) && this._cdr.detectChanges();
18
+ });
19
+ }
20
+ _isSmalDeviceSize(deviceSize) {
21
+ const isSmallDevice = deviceSize === 's' || deviceSize === 'm' ? true : false;
22
+ const dom = this._el.nativeElement;
23
+ if (isSmallDevice) {
24
+ dom.parentElement?.classList.remove('h_100');
25
+ }
26
+ else {
27
+ dom.parentElement?.classList.add('h_100');
28
+ }
29
+ return isSmallDevice;
30
+ }
31
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaCartableFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
32
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BarsaCartableFormComponent, selector: "bsu-barsa-cartable-form", host: { properties: { "class.smallDevice": "this._isSmallDevice" } }, providers: [FormPanelService], usesInheritance: true, ngImport: i0, template: "@if (layout94$ | async; as layout94) {\r\n<div class=\"groups-wrapper\">\r\n @if ('\u062C\u0633\u062A\u062C\u0648 \u06AF\u0631\u0648\u0647' | controlUi: layout94; as configUi) {\r\n <bsu-layout-control\r\n class=\"search-group\"\r\n [caption]=\"'\u06AF\u0631\u0648\u0647\u0647\u0627\u06CC \u06A9\u0627\u0631\u062A\u0627\u0628\u0644'\"\r\n [config]=\"configUi\"\r\n [showLabel]=\"false\"\r\n ></bsu-layout-control>\r\n } @if ('\u06AF\u0631\u0648\u0647\u0647\u0627\u06CC \u06A9\u0627\u0631\u062A\u0627\u0628\u0644 \u06A9\u0627\u0631\u0628\u0631' | controlUi: layout94; as configUi) {\r\n <bsu-layout-control\r\n class=\"cartable-groups\"\r\n [caption]=\"'\u06AF\u0631\u0648\u0647\u0647\u0627\u06CC \u06A9\u0627\u0631\u062A\u0627\u0628\u0644'\"\r\n [config]=\"configUi\"\r\n [showLabel]=\"false\"\r\n ></bsu-layout-control>\r\n }\r\n</div>\r\n@if ('\u0631\u062F\u06CC\u0641\u0647\u0627\u06CC \u06A9\u0627\u0631\u062A\u0627\u0628\u0644' | controlUi: layout94; as configUi) {\r\n<bsu-layout-control\r\n id=\"items-cartable\"\r\n class=\"cartable-radif\"\r\n [caption]=\"'\u0631\u062F\u06CC\u0641\u0647\u0627\u06CC \u06A9\u0627\u0631\u062A\u0627\u0628\u0644'\"\r\n [config]=\"configUi\"\r\n [showLabel]=\"false\"\r\n></bsu-layout-control>\r\n} }\r\n", styles: [":host{display:flex;width:100%;height:100%;border:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);background-color:var(--sapBaseColor)}:host.smallDevice{flex-direction:column;min-height:100vh}:host.smallDevice ::ng-deep bnrc-field-ui{margin:unset!important}:host .groups-wrapper{display:flex;flex-direction:column;min-width:280px;max-width:280px;padding:0 2px;border-left:var(--sapList_BorderWidth) solid var(--sapList_BorderColor)}:host .cartable-groups{flex:1}:host.smallDevice .groups-wrapper{flex:unset;width:100%;min-width:100%;max-width:100%}:host.smallDevice .search-group{display:none}:host.smallDevice .cartable-groups{flex:unset}div{flex:1}:host ::ng-deep .viewer-container{min-height:100%!important}:host ::ng-deep .viewer-container fd-layout-panel{box-shadow:none}:host ::ng-deep tbody{border:none!important}:host ::ng-deep bnrc-field-ui{padding:0!important}#items-cartable ::ng-deep bsu-barsa-ulv-main{margin:0!important}#items-cartable ::ng-deep bsu-barsa-ulv-main fd-toolbar{border:none!important}\n"], dependencies: [{ kind: "component", type: i1.LayoutControlComponent, selector: "bsu-layout-control", inputs: ["inlineEdit", "caption", "focusControl", "showLabel", "maxLabelWidth", "hasHorizontalText", "contentDensity", "flex", "RefreshLabel", "SetVisible"], outputs: ["events"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.ControlUiPipe, name: "controlUi" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
33
+ }
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaCartableFormComponent, decorators: [{
35
+ type: Component,
36
+ args: [{ selector: 'bsu-barsa-cartable-form', changeDetection: ChangeDetectionStrategy.OnPush, providers: [FormPanelService], standalone: false, template: "@if (layout94$ | async; as layout94) {\r\n<div class=\"groups-wrapper\">\r\n @if ('\u062C\u0633\u062A\u062C\u0648 \u06AF\u0631\u0648\u0647' | controlUi: layout94; as configUi) {\r\n <bsu-layout-control\r\n class=\"search-group\"\r\n [caption]=\"'\u06AF\u0631\u0648\u0647\u0647\u0627\u06CC \u06A9\u0627\u0631\u062A\u0627\u0628\u0644'\"\r\n [config]=\"configUi\"\r\n [showLabel]=\"false\"\r\n ></bsu-layout-control>\r\n } @if ('\u06AF\u0631\u0648\u0647\u0647\u0627\u06CC \u06A9\u0627\u0631\u062A\u0627\u0628\u0644 \u06A9\u0627\u0631\u0628\u0631' | controlUi: layout94; as configUi) {\r\n <bsu-layout-control\r\n class=\"cartable-groups\"\r\n [caption]=\"'\u06AF\u0631\u0648\u0647\u0647\u0627\u06CC \u06A9\u0627\u0631\u062A\u0627\u0628\u0644'\"\r\n [config]=\"configUi\"\r\n [showLabel]=\"false\"\r\n ></bsu-layout-control>\r\n }\r\n</div>\r\n@if ('\u0631\u062F\u06CC\u0641\u0647\u0627\u06CC \u06A9\u0627\u0631\u062A\u0627\u0628\u0644' | controlUi: layout94; as configUi) {\r\n<bsu-layout-control\r\n id=\"items-cartable\"\r\n class=\"cartable-radif\"\r\n [caption]=\"'\u0631\u062F\u06CC\u0641\u0647\u0627\u06CC \u06A9\u0627\u0631\u062A\u0627\u0628\u0644'\"\r\n [config]=\"configUi\"\r\n [showLabel]=\"false\"\r\n></bsu-layout-control>\r\n} }\r\n", styles: [":host{display:flex;width:100%;height:100%;border:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);background-color:var(--sapBaseColor)}:host.smallDevice{flex-direction:column;min-height:100vh}:host.smallDevice ::ng-deep bnrc-field-ui{margin:unset!important}:host .groups-wrapper{display:flex;flex-direction:column;min-width:280px;max-width:280px;padding:0 2px;border-left:var(--sapList_BorderWidth) solid var(--sapList_BorderColor)}:host .cartable-groups{flex:1}:host.smallDevice .groups-wrapper{flex:unset;width:100%;min-width:100%;max-width:100%}:host.smallDevice .search-group{display:none}:host.smallDevice .cartable-groups{flex:unset}div{flex:1}:host ::ng-deep .viewer-container{min-height:100%!important}:host ::ng-deep .viewer-container fd-layout-panel{box-shadow:none}:host ::ng-deep tbody{border:none!important}:host ::ng-deep bnrc-field-ui{padding:0!important}#items-cartable ::ng-deep bsu-barsa-ulv-main{margin:0!important}#items-cartable ::ng-deep bsu-barsa-ulv-main fd-toolbar{border:none!important}\n"] }]
37
+ }], propDecorators: { _isSmallDevice: [{
38
+ type: HostBinding,
39
+ args: ['class.smallDevice']
40
+ }] } });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtY2FydGFibGUtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi9iYXJzYS1jYXJ0YWJsZS1mb3JtL2JhcnNhLWNhcnRhYmxlLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtY2FydGFibGUtZm9ybS9iYXJzYS1jYXJ0YWJsZS1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBeUIsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7QUFVbEcsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGlCQUFpQjtJQVJqRTs7UUFTc0MsbUJBQWMsR0FBRyxLQUFLLENBQUM7S0FvQjVEO0lBbEJHLFFBQVE7UUFDSixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzdFLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUF3QixFQUFFLEVBQUU7WUFDbkUsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hELGFBQWEsS0FBSyxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxhQUFhLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ2hILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNTLGlCQUFpQixDQUFDLFVBQWlDO1FBQ3pELE1BQU0sYUFBYSxHQUFHLFVBQVUsS0FBSyxHQUFHLElBQUksVUFBVSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDOUUsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUE0QixDQUFDO1FBQ2xELElBQUksYUFBYSxFQUFFLENBQUM7WUFDaEIsR0FBRyxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELENBQUM7YUFBTSxDQUFDO1lBQ0osR0FBRyxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFDRCxPQUFPLGFBQWEsQ0FBQztJQUN6QixDQUFDOytHQXBCUSwwQkFBMEI7bUdBQTFCLDBCQUEwQix3SEFIeEIsQ0FBQyxnQkFBZ0IsQ0FBQyxpRENSakMseXpDQTJCQTs7NEZEaEJhLDBCQUEwQjtrQkFSdEMsU0FBUzsrQkFDSSx5QkFBeUIsbUJBR2xCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUNqQixLQUFLOzhCQUdpQixjQUFjO3NCQUEvQyxXQUFXO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJhc2VDb21wb25lbnQsIEZvcm1QYW5lbFNlcnZpY2UsIEFiYnJldmF0aW9uRGV2aWNlU2l6ZSB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtYmFyc2EtY2FydGFibGUtZm9ybScsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vYmFyc2EtY2FydGFibGUtZm9ybS5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9iYXJzYS1jYXJ0YWJsZS1mb3JtLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHByb3ZpZGVyczogW0Zvcm1QYW5lbFNlcnZpY2VdLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIEJhcnNhQ2FydGFibGVGb3JtQ29tcG9uZW50IGV4dGVuZHMgRm9ybUJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zbWFsbERldmljZScpIF9pc1NtYWxsRGV2aWNlID0gZmFsc2U7XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5faXNTbWFsbERldmljZSA9IHRoaXMuX2lzU21hbERldmljZVNpemUodGhpcy5fcG9ydGFsU2VydmljZS5kZXZpY2VTaXplKTtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgICAgIHRoaXMuX3BvcnRhbFNlcnZpY2UuZGV2aWNlU2l6ZSQuc3Vic2NyaWJlKChjOiBBYmJyZXZhdGlvbkRldmljZVNpemUpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgaXNTbWFsbERldmljZSA9IHRoaXMuX2lzU21hbERldmljZVNpemUoYyk7XHJcbiAgICAgICAgICAgIGlzU21hbGxEZXZpY2UgIT09IHRoaXMuX2lzU21hbGxEZXZpY2UgJiYgKHRoaXMuX2lzU21hbGxEZXZpY2UgPSBpc1NtYWxsRGV2aWNlKSAmJiB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIF9pc1NtYWxEZXZpY2VTaXplKGRldmljZVNpemU6IEFiYnJldmF0aW9uRGV2aWNlU2l6ZSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IGlzU21hbGxEZXZpY2UgPSBkZXZpY2VTaXplID09PSAncycgfHwgZGV2aWNlU2l6ZSA9PT0gJ20nID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgICAgIGNvbnN0IGRvbSA9IHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgaWYgKGlzU21hbGxEZXZpY2UpIHtcclxuICAgICAgICAgICAgZG9tLnBhcmVudEVsZW1lbnQ/LmNsYXNzTGlzdC5yZW1vdmUoJ2hfMTAwJyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZG9tLnBhcmVudEVsZW1lbnQ/LmNsYXNzTGlzdC5hZGQoJ2hfMTAwJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBpc1NtYWxsRGV2aWNlO1xyXG4gICAgfVxyXG59XHJcbiIsIkBpZiAobGF5b3V0OTQkIHwgYXN5bmM7IGFzIGxheW91dDk0KSB7XHJcbjxkaXYgY2xhc3M9XCJncm91cHMtd3JhcHBlclwiPlxyXG4gICAgQGlmICgn2KzYs9iq2KzZiCDar9ix2YjZhycgfCBjb250cm9sVWk6IGxheW91dDk0OyBhcyBjb25maWdVaSkge1xyXG4gICAgPGJzdS1sYXlvdXQtY29udHJvbFxyXG4gICAgICAgIGNsYXNzPVwic2VhcmNoLWdyb3VwXCJcclxuICAgICAgICBbY2FwdGlvbl09XCIn2q/YsdmI2YfZh9in24wg2qnYp9ix2KrYp9io2YQnXCJcclxuICAgICAgICBbY29uZmlnXT1cImNvbmZpZ1VpXCJcclxuICAgICAgICBbc2hvd0xhYmVsXT1cImZhbHNlXCJcclxuICAgID48L2JzdS1sYXlvdXQtY29udHJvbD5cclxuICAgIH0gQGlmICgn2q/YsdmI2YfZh9in24wg2qnYp9ix2KrYp9io2YQg2qnYp9ix2KjYsScgfCBjb250cm9sVWk6IGxheW91dDk0OyBhcyBjb25maWdVaSkge1xyXG4gICAgPGJzdS1sYXlvdXQtY29udHJvbFxyXG4gICAgICAgIGNsYXNzPVwiY2FydGFibGUtZ3JvdXBzXCJcclxuICAgICAgICBbY2FwdGlvbl09XCIn2q/YsdmI2YfZh9in24wg2qnYp9ix2KrYp9io2YQnXCJcclxuICAgICAgICBbY29uZmlnXT1cImNvbmZpZ1VpXCJcclxuICAgICAgICBbc2hvd0xhYmVsXT1cImZhbHNlXCJcclxuICAgID48L2JzdS1sYXlvdXQtY29udHJvbD5cclxuICAgIH1cclxuPC9kaXY+XHJcbkBpZiAoJ9ix2K/bjNmB2YfYp9uMINqp2KfYsdiq2KfYqNmEJyB8IGNvbnRyb2xVaTogbGF5b3V0OTQ7IGFzIGNvbmZpZ1VpKSB7XHJcbjxic3UtbGF5b3V0LWNvbnRyb2xcclxuICAgIGlkPVwiaXRlbXMtY2FydGFibGVcIlxyXG4gICAgY2xhc3M9XCJjYXJ0YWJsZS1yYWRpZlwiXHJcbiAgICBbY2FwdGlvbl09XCIn2LHYr9uM2YHZh9in24wg2qnYp9ix2KrYp9io2YQnXCJcclxuICAgIFtjb25maWddPVwiY29uZmlnVWlcIlxyXG4gICAgW3Nob3dMYWJlbF09XCJmYWxzZVwiXHJcbj48L2JzdS1sYXlvdXQtY29udHJvbD5cclxufSB9XHJcbiJdfQ==
@@ -0,0 +1,24 @@
1
+ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
+ import { BarsaApi } from 'barsa-novin-ray-core';
3
+ import { RichTextStaticComponent } from '../rich-text-static/rich-text-static.component';
4
+ import * as i0 from "@angular/core";
5
+ export class BarsaCartableTemplateComponent extends RichTextStaticComponent {
6
+ ngOnInit() {
7
+ this.relatedMo = BarsaApi.Ext.decode(this.mo.SerializedRelatedMo);
8
+ super.ngOnInit();
9
+ }
10
+ get moContext() {
11
+ return this.relatedMo;
12
+ }
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaCartableTemplateComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
14
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BarsaCartableTemplateComponent, selector: "bsu-barsa-cartable-template", inputs: { parameters: "parameters", mo: "mo" }, usesInheritance: true, ngImport: i0, template: "<div [innerHtml]=\"text\"></div>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
15
+ }
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaCartableTemplateComponent, decorators: [{
17
+ type: Component,
18
+ args: [{ selector: 'bsu-barsa-cartable-template', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<div [innerHtml]=\"text\"></div>\n" }]
19
+ }], propDecorators: { parameters: [{
20
+ type: Input
21
+ }], mo: [{
22
+ type: Input
23
+ }] } });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtY2FydGFibGUtdGVtcGxhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtY2FydGFibGUtdGVtcGxhdGUvYmFyc2EtY2FydGFibGUtdGVtcGxhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtY2FydGFibGUtdGVtcGxhdGUvYmFyc2EtY2FydGFibGUtdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFbEYsT0FBTyxFQUFFLFFBQVEsRUFBdUIsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQzs7QUFTekYsTUFBTSxPQUFPLDhCQUErQixTQUFRLHVCQUF1QjtJQUt2RSxRQUFRO1FBQ0osSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDbEUsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFDRCxJQUFjLFNBQVM7UUFDbkIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7K0dBWFEsOEJBQThCO21HQUE5Qiw4QkFBOEIsMElDWjNDLG9DQUNBOzs0RkRXYSw4QkFBOEI7a0JBUDFDLFNBQVM7K0JBQ0ksNkJBQTZCLG1CQUd0Qix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLEtBQUs7OEJBR1IsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBCYXJzYUFwaSwgTWV0YW9iamVjdERhdGFNb2RlbCB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuaW1wb3J0IHsgUmljaFRleHRTdGF0aWNDb21wb25lbnQgfSBmcm9tICcuLi9yaWNoLXRleHQtc3RhdGljL3JpY2gtdGV4dC1zdGF0aWMuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtYmFyc2EtY2FydGFibGUtdGVtcGxhdGUnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JhcnNhLWNhcnRhYmxlLXRlbXBsYXRlLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2JhcnNhLWNhcnRhYmxlLXRlbXBsYXRlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0YW5kYWxvbmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCYXJzYUNhcnRhYmxlVGVtcGxhdGVDb21wb25lbnQgZXh0ZW5kcyBSaWNoVGV4dFN0YXRpY0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBASW5wdXQoKSBwYXJhbWV0ZXJzOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xyXG4gICAgQElucHV0KCkgbW86IE1ldGFvYmplY3REYXRhTW9kZWw7XHJcbiAgICB0ZXh0OiBzdHJpbmc7XHJcbiAgICByZWxhdGVkTW86IE1ldGFvYmplY3REYXRhTW9kZWw7XHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnJlbGF0ZWRNbyA9IEJhcnNhQXBpLkV4dC5kZWNvZGUodGhpcy5tby5TZXJpYWxpemVkUmVsYXRlZE1vKTtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIGdldCBtb0NvbnRleHQoKTogTWV0YW9iamVjdERhdGFNb2RlbCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucmVsYXRlZE1vO1xyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgW2lubmVySHRtbF09XCJ0ZXh0XCI+PC9kaXY+XG4iXX0=
@@ -0,0 +1,242 @@
1
+ import { Component, Input, signal } from '@angular/core';
2
+ import jmoment from 'moment-jalaali';
3
+ import { animate, style, transition, trigger } from '@angular/animations';
4
+ import { FormBaseComponent, FormPanelService, BarsaApi } from 'barsa-novin-ray-core';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common";
7
+ import * as i2 from "barsa-novin-ray-core";
8
+ import * as i3 from "@fundamental-ngx/core/avatar";
9
+ import * as i4 from "@fundamental-ngx/core/button";
10
+ import * as i5 from "@fundamental-ngx/core/feed-input";
11
+ import * as i6 from "@fundamental-ngx/core/form";
12
+ import * as i7 from "@fundamental-ngx/core/icon";
13
+ import * as i8 from "@fundamental-ngx/core/popover";
14
+ import * as i9 from "../layout-control/layout-control.component";
15
+ import * as i10 from "../barsa-chat-content/barsa-chat-content.component";
16
+ import * as i11 from "../barsa-chat-thread/barsa-chat-thread.component";
17
+ import * as i12 from "../barsa-chat-threads-list/barsa-chat-threads-list.component";
18
+ import * as i13 from "../barsa-chat-threads-list-toolbar/barsa-chat-threads-list-toolbar.component";
19
+ import * as i14 from "../barsa-chat-content-toolbar/barsa-chat-content-toolbar.component";
20
+ export class BarsaChatComponent extends FormBaseComponent {
21
+ constructor() {
22
+ super(...arguments);
23
+ this.simple = true;
24
+ this.randomNameArr = 'علی حسن حسین تقی نقی محمد مهدی جاوید محمدرضا کریم هوشنگ پیمان'.split(' ');
25
+ this.randomFamilyArr = 'کریمی حسینی زارعی تقوی کاظمی قنبری نبویان افشار رادمند محمدی'.split(' ');
26
+ this.randomTextArr = ('لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان' +
27
+ ' گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط' +
28
+ ' فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای' +
29
+ ' زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را می طلبد، تا با' +
30
+ ' نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی، و فرهنگ پیشرو' +
31
+ ' در زبان فارسی ایجاد کرد، در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه' +
32
+ ' راهکارها، و شرایط سخت تایپ به پایان رسد و زمان مورد نیاز شامل حروفچینی دستاوردهای اصلی،' +
33
+ ' و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد.').split(' ');
34
+ this.threads = Array(20)
35
+ .fill(null)
36
+ .map((t) => ({
37
+ id: Math.random() * 1000,
38
+ title: this.randomNameArr[Math.floor(this.randomNameArr.length * Math.random())] +
39
+ ' ' +
40
+ this.randomFamilyArr[Math.floor(this.randomFamilyArr.length * Math.random())],
41
+ avatar: 'https://picsum.photos/100?workAround=' + Math.floor(Math.random() * 100),
42
+ status: Math.floor(Math.random() * 4),
43
+ lastActivity: this.randomDate(new Date('2024-03-03'), new Date()),
44
+ unreadCount: Math.round(Math.random()) ? 1 + Math.floor(Math.random() * 20) : 0,
45
+ pinned: !!Math.round(Math.random()),
46
+ muted: !!Math.round(Math.random()),
47
+ lastMessage: {
48
+ id: Math.random() * 1000,
49
+ owner: {
50
+ id: 1234,
51
+ avatar: 'https://picsum.photos/100?workAround=' + Math.floor(Math.random() * 100),
52
+ name: 'مهدی زارعی'
53
+ },
54
+ text: this.shuffle(this.randomTextArr.slice(0, 1 + Math.floor(this.randomTextArr.length * Math.random()))).join(' '),
55
+ createdAt: new Date()
56
+ .toTimeString()
57
+ .split(' ')[0]
58
+ .split(':')
59
+ .slice(0, 2)
60
+ .map((s) => s.padStart(2, '0'))
61
+ .join(':'),
62
+ deliveredAt: new Date()
63
+ .toTimeString()
64
+ .split(' ')[0]
65
+ .split(':')
66
+ .slice(0, 2)
67
+ .map((s) => s.padStart(2, '0'))
68
+ .join(':'),
69
+ readAt: new Date()
70
+ .toTimeString()
71
+ .split(' ')[0]
72
+ .split(':')
73
+ .slice(0, 2)
74
+ .map((s) => s.padStart(2, '0'))
75
+ .join(':')
76
+ }
77
+ }));
78
+ this.moment = jmoment;
79
+ this.selectedThread = signal(null);
80
+ this.messages = signal(null);
81
+ this.replyingMessage = signal(null);
82
+ this._newMessageText = '';
83
+ }
84
+ onTextChange($event) {
85
+ this._newMessageText = $event.target.value;
86
+ }
87
+ ngOnInit() {
88
+ super.ngOnInit();
89
+ document.body.classList.add('chat-mode');
90
+ this.selectThread(this.threads[0]);
91
+ }
92
+ ngOnDestroy() {
93
+ document.body.classList.remove('chat-mode');
94
+ }
95
+ scrollToBottom(force = false, instant = false) {
96
+ const container = (this._el?.nativeElement).querySelector('#chatContentElement');
97
+ if (force || (container && container.scrollTopMax - container.scrollTop < 300)) {
98
+ setTimeout(() => container?.scrollTo({
99
+ top: container.scrollHeight,
100
+ behavior: instant ? 'instant' : 'smooth'
101
+ }));
102
+ }
103
+ }
104
+ sendMessage() {
105
+ if (this._newMessageText?.trim().length) {
106
+ BarsaApi.Bw.RunBlMethodAsync({});
107
+ this.messages?.set([
108
+ ...this.messages(),
109
+ {
110
+ id: Math.random() * 1000,
111
+ owner: {
112
+ id: 1234,
113
+ avatar: 'https://picsum.photos/100?workAround=' + Math.floor(Math.random() * 100),
114
+ name: 'مهدی زارعی'
115
+ },
116
+ text: this._newMessageText,
117
+ createdAt: new Date(),
118
+ deliveredAt: new Date(),
119
+ readAt: new Date()
120
+ }
121
+ ]);
122
+ this._newMessageText = '';
123
+ const inputMessage = document.getElementById('chat-textarea');
124
+ if (inputMessage) {
125
+ inputMessage.focus();
126
+ inputMessage.innerText = '';
127
+ }
128
+ this.scrollToBottom(true);
129
+ }
130
+ }
131
+ addAttachment() { }
132
+ selectThread(thread) {
133
+ this.selectedThread.set(thread);
134
+ this.messages.set(Array(40)
135
+ .fill(null)
136
+ .map((t) => {
137
+ const ownerUser = Math.round(Math.random());
138
+ const messageType = Math.random();
139
+ const hasText = Math.round(Math.random());
140
+ const imgOriginalWidth = Math.floor(Math.random() * 200) + 200;
141
+ const imgOriginalHeight = Math.floor(Math.random() * 200) + 200;
142
+ return {
143
+ id: Math.random() * 1000,
144
+ owner: {
145
+ id: ownerUser ? 1234 : 4321,
146
+ avatar: 'https://picsum.photos/100?workAround=' + Math.floor(Math.random() * 100),
147
+ name: ownerUser ? 'مهدی زارعی' : thread.title
148
+ },
149
+ text: (messageType > 0.5 && hasText) || messageType <= 0.5
150
+ ? this.shuffle(this.randomTextArr.slice(0, 1 +
151
+ Math.floor((messageType > 0.5 ? 30 : this.randomTextArr.length) * Math.random()))).join(' ')
152
+ : undefined,
153
+ file: messageType > 0.85
154
+ ? {
155
+ name: 'یک عدد فایل',
156
+ ext: ['png', 'jpg', 'pdf', 'docs', 'csv'][Math.floor(Math.random() * 5)],
157
+ size: Math.round(Math.random() * 100) +
158
+ ' ' +
159
+ ['بایت', 'کیلوبایت', 'مگابایت'][Math.floor(Math.random() * 3)]
160
+ }
161
+ : undefined,
162
+ image: messageType <= 0.85 && messageType > 0.5
163
+ ? {
164
+ name: 'یک عدد عکس',
165
+ url: `https://picsum.photos/${Math.floor(Math.random() * 2000)}/${Math.floor(Math.random() * 2000)}?workAround=${Math.floor(Math.random() * 100)}`,
166
+ originalWidth: imgOriginalWidth,
167
+ originalHeight: imgOriginalHeight
168
+ }
169
+ : undefined,
170
+ createdAt: this.randomDate(new Date('2024-03-03'), new Date()),
171
+ deliveredAt: new Date(),
172
+ readAt: new Date()
173
+ };
174
+ })
175
+ .sort((a, b) => a.createdAt.getTime() - b.createdAt.getTime()));
176
+ setTimeout(() => this.scrollToBottom(true, true));
177
+ }
178
+ randomDate(start, end) {
179
+ return new Date(start.getTime() + Math.random() * (end.getTime() - start.getTime()));
180
+ }
181
+ shuffle(array) {
182
+ let currentIndex = array.length;
183
+ let randomIndex = 1;
184
+ while (currentIndex > 0) {
185
+ randomIndex = Math.floor(Math.random() * currentIndex);
186
+ currentIndex--;
187
+ [array[currentIndex], array[randomIndex]] = [array[randomIndex], array[currentIndex]];
188
+ }
189
+ return array;
190
+ }
191
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaChatComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
192
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BarsaChatComponent, selector: "bsu-barsa-chat", inputs: { simple: "simple" }, providers: [FormPanelService], usesInheritance: true, ngImport: i0, template: "<div\r\n class=\"tw-flex tw-w-full tw-bg-gradient-to-r tw-from-[#5d6e7f] tw-to-[#354a5f] dark:tw-from-[#253443] dark:tw-to-[#10161c]\"\r\n fillEmptySpace\r\n [class.tw-h-screen]=\"!simple\"\r\n [class.tw-justify-center]=\"simple\"\r\n>\r\n @if (!simple) {\r\n <div class=\"tw-bg-black/[.3] 2xl:tw-grow tw-shrink tw-h-full\"></div>\r\n }\r\n <div\r\n class=\"tw-h-full tw-flex 2xl:tw-container max-w-[80rem] tw-shrink-0 tw-relative\"\r\n [ngClass]=\"{\r\n 'tw-grow 2xl:tw-grow-0': !simple,\r\n 'tw-w-full': simple\r\n }\"\r\n >\r\n @if (!simple) {\r\n <div class=\"tw-grow-0 tw-shrink-0 tw-w-full md:tw-w-96 tw-p-0 md:tw-p-6\">\r\n <div\r\n class=\"tw-flex tw-flex-col tw-w-full tw-h-full tw-overflow-hidden tw-border-l tw-border-l-gray-300 md:tw-rounded-2xl md:tw-border md:tw-border-l-gray-300 md:tw-border-gray-300 dark:tw-border-l-gray-600 md:dark:tw-border-l-gray-600 md:dark:tw-border-gray-600\"\r\n >\r\n <bsu-barsa-chat-threads-list-toolbar></bsu-barsa-chat-threads-list-toolbar>\r\n <bsu-barsa-chat-threads-list>\r\n @for (thread of threads; track thread.id) {\r\n <bsu-barsa-chat-thread [thread]=\"thread\" (click)=\"selectThread(thread)\"></bsu-barsa-chat-thread>\r\n }\r\n </bsu-barsa-chat-threads-list>\r\n </div>\r\n </div>\r\n } @else {\r\n <div\r\n class=\"tw-absolute tw-top-0 tw-left-0 tw-w-full tw-h-full tw-bg-[url('assets/chat-bg.png')] tw-bg-fixed tw-opacity-25\"\r\n ></div>\r\n }\r\n <div\r\n class=\"tw-grow tw-shrink tw-relative\"\r\n [ngClass]=\"{\r\n 'md:tw-py-6 md:tw-pl-6 tw-hidden md:tw-flex': !simple,\r\n 'tw-flex': simple\r\n }\"\r\n >\r\n @if (selectedThread()) {\r\n <div\r\n @inContentAnimation\r\n class=\"tw-h-full tw-w-full tw-flex tw-flex-col tw-relative md:tw-border-gray-300 md:dark:tw-border-gray-600 tw-overflow-hidden\"\r\n [ngClass]=\"{\r\n 'md:tw-border md:tw-rounded-2xl': !simple\r\n }\"\r\n >\r\n <bsu-barsa-chat-content-toolbar\r\n [title]=\"selectedThread().title\"\r\n [subtitle]=\"'\u0645\u062D\u0645\u062F \u0645\u062D\u0645\u062F\u06CC'\"\r\n [avatar]=\"selectedThread().avatar\"\r\n [status]=\"selectedThread().status\"\r\n ></bsu-barsa-chat-content-toolbar>\r\n <bsu-barsa-chat-content id=\"chat-container\">\r\n @if(layout94$ | async;as layout94){ @if ('\u0644\u06CC\u0633\u062A \u06AF\u0641\u062A\u06AF\u0648' | controlUi: layout94; as configUi) {\r\n <bsu-layout-control [config]=\"configUi\"></bsu-layout-control>\r\n } }\r\n </bsu-barsa-chat-content>\r\n <div\r\n class=\"tw-w-full\"\r\n [ngClass]=\"{\r\n 'tw-relative': !simple,\r\n '2xl:tw-rounded-t-xl tw-grow-0 tw-shrink-0': simple\r\n }\"\r\n >\r\n @if (replyingMessage()) {\r\n <div\r\n @inOutReplyingMessage\r\n class=\"tw-w-full tw-px-2 tw-py-1 tw-border-r-4 tw-border-r-bubble-mine tw-flex tw-gap-2 te-items-center tw-absolute tw-z-0 tw-bg-default tw-right-0 -tw-top-14\"\r\n >\r\n <button\r\n fd-button\r\n fdType=\"transparent\"\r\n glyph=\"decline\"\r\n class=\"tw-grow-0 tw-shrink-0\"\r\n (click)=\"replyingMessage.set(null)\"\r\n ></button>\r\n <div class=\"tw-flex tw-flex-col tw-grow tw-shrink tw-overflow-hidden\">\r\n <span class=\"tw-font-bold\">{{ replyingMessage().owner.name }}</span>\r\n <span class=\"tw-truncate\">{{\r\n replyingMessage().text ?? replyingMessage().file?.name ?? replyingMessage().image?.name\r\n }}</span>\r\n </div>\r\n <div class=\"tw-w-8 tw-shrink-0 tw-grow-0\"></div>\r\n </div>\r\n }\r\n <div\r\n class=\"tw-w-full tw-p-2 tw-flex tw-gap-2 tw-border-t tw-border-t-gray-300 dark:tw-border-t-gray-600 tw-bg-default tw-items-end tw-z-10\"\r\n >\r\n <fd-popover placement=\"top-start\" title=\"top-start\">\r\n <fd-popover-control>\r\n <button\r\n fd-button\r\n fdType=\"transparent\"\r\n glyph=\"attachment\"\r\n class=\"!tw-rounded-full tw-shrink-0 tw-grow-0 !tw-size-10 !tw-min-h-10 !tw-max-h-10 !tw-min-w-10 !tw-max-w-10\"\r\n (click)=\"addAttachment()\"\r\n ></button>\r\n </fd-popover-control>\r\n <fd-popover-body minWidth=\"10rem\">\r\n <div class=\"tw-flex tw-flex-col tw-bg-default tw-w-full\" bodyClick>\r\n <label\r\n class=\"tw-px-4 tw-py-2 tw-flex tw-gap-2 tw-w-full hover:tw-bg-base/[.1] tw-transition-all tw-cursor-pointer\"\r\n >\r\n <fd-icon class=\"!tw-text-base !tw-text-3xl\" glyph=\"camera\"></fd-icon>\r\n <span class=\"!tw-text-base\">\u0627\u0631\u0633\u0627\u0644 \u0639\u06A9\u0633</span>\r\n <input class=\"tw-hidden\" type=\"file\" id=\"img\" name=\"img\" accept=\"image/*\" />\r\n </label>\r\n <label\r\n class=\"tw-px-4 tw-py-2 tw-flex tw-gap-2 tw-w-full hover:tw-bg-base/[.1] tw-transition-all tw-cursor-pointer\"\r\n >\r\n <fd-icon class=\"!tw-text-base !tw-text-3xl\" glyph=\"add-document\"></fd-icon>\r\n <span class=\"!tw-text-base\">\u0627\u0631\u0633\u0627\u0644 \u0641\u0627\u06CC\u0644</span>\r\n <input class=\"tw-hidden\" type=\"file\" id=\"file\" name=\"file\" accept=\"file/*\" />\r\n </label>\r\n </div>\r\n </fd-popover-body>\r\n </fd-popover>\r\n <div class=\"tw-inline-flex tw-relative tw-grow tw-shrink\">\r\n <fd-feed-input [attr.aria-label]=\"'\u0645\u062A\u0646 \u067E\u06CC\u0627\u0645'\" class=\"tw-flex-1\">\r\n <fd-avatar\r\n fdFeedInputAvatar\r\n size=\"s\"\r\n [label]=\"'\u0631\u0627\u0647\u0628\u0631'\"\r\n [image]=\"''\"\r\n [placeholder]=\"true\"\r\n ></fd-avatar>\r\n <textarea\r\n id=\"chat-textarea\"\r\n fd-form-control\r\n fdFeedInputTextarea\r\n placeholder=\"\u0645\u062A\u0646 \u067E\u06CC\u0627\u0645\"\r\n [fdFeedInputTextareaMaxRows]=\"2\"\r\n (input)=\"onTextChange($event)\"\r\n ></textarea>\r\n <button\r\n fdFeedInputButton\r\n [attr.aria-label]=\"'Send' | bbbTranslate\"\r\n [title]=\"'Send' | bbbTranslate\"\r\n (click)=\"sendMessage()\"\r\n ></button>\r\n </fd-feed-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n } @else {\r\n <div\r\n class=\"tw-absolute tw-top-1/2 -tw-translate-y-1/2 tw-left-1/2 -tw-translate-x-1/2 tw-flex tw-flex-col tw-gap-8 tw-items-center\"\r\n >\r\n <img src=\"assets/not-selected-chat.png\" class=\"tw-w-64 tw-opacity-25\" />\r\n <!-- <span class=\"tw-text-xl tw-font-bold tw-text-gray-400 dark:tw-text-gray-500\">-->\r\n <!-- \u0628\u0631\u0627\u06CC \u0634\u0631\u0648\u0639 \u06CC\u06A9 \u0686\u062A \u0631\u0627 \u0627\u0646\u062A\u062E\u0627\u0628 \u06A9\u0646\u06CC\u062F-->\r\n <!-- </span>-->\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n @if (!simple) {\r\n <div class=\"tw-bg-black/[.3] 2xl:tw-grow tw-shrink tw-h-full\"></div>\r\n }\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.FillEmptySpaceDirective, selector: "[fillEmptySpace]", inputs: ["containerDom", "decrement", "disable", "height", "dontUseTopBound", "setMinHeight"], exportAs: ["fillEmptySpace"] }, { kind: "directive", type: i2.BodyClickDirective, selector: "[bodyClick]", inputs: ["disableBodyClick"] }, { 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.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i5.FeedInputComponent, selector: "fd-feed-input", inputs: ["disabled"] }, { kind: "directive", type: i5.FeedInputTextareaDirective, selector: "[fdFeedInputTextarea]", inputs: ["fdFeedInputTextareaMaxRows"], outputs: ["valueChange"] }, { kind: "directive", type: i5.FeedInputButtonDirective, selector: "[fdFeedInputButton]" }, { kind: "directive", type: i5.FeedInputAvatarDirective, selector: "[fdFeedInputAvatar]", inputs: ["class", "placeholder"] }, { kind: "component", type: i6.FormControlComponent, selector: "input[fd-form-control], textarea[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "component", type: i7.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "component", type: i8.PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: i8.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "component", type: i8.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "component", type: i9.LayoutControlComponent, selector: "bsu-layout-control", inputs: ["inlineEdit", "caption", "focusControl", "showLabel", "maxLabelWidth", "hasHorizontalText", "contentDensity", "flex", "RefreshLabel", "SetVisible"], outputs: ["events"] }, { kind: "component", type: i10.BarsaChatContentComponent, selector: "bsu-barsa-chat-content" }, { kind: "component", type: i11.BarsaChatThreadComponent, selector: "bsu-barsa-chat-thread", inputs: ["thread"] }, { kind: "component", type: i12.BarsaChatThreadsListComponent, selector: "bsu-barsa-chat-threads-list" }, { kind: "component", type: i13.BarsaChatThreadsListToolbarComponent, selector: "bsu-barsa-chat-threads-list-toolbar" }, { kind: "component", type: i14.BarsaChatContentToolbarComponent, selector: "bsu-barsa-chat-content-toolbar", inputs: ["avatar", "title", "subtitle", "status"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i2.ControlUiPipe, name: "controlUi" }], animations: [
193
+ trigger('inContentAnimation', [
194
+ transition(':enter', [
195
+ style({ opacity: 0, transform: 'scale(50%, 50%)' }),
196
+ animate('300ms ease-out', style({ opacity: 1, transform: 'scale(100%, 100%)' }))
197
+ ]),
198
+ transition(':leave', [
199
+ style({ opacity: 1, transform: 'scale(100%, 100%)' }),
200
+ animate('300ms ease-in', style({ opacity: 0, transform: 'scale(50%, 50%)' }))
201
+ ])
202
+ ]),
203
+ trigger('inOutReplyingMessage', [
204
+ transition(':enter', [
205
+ style({ opacity: 0, transform: 'translateY(50%)' }),
206
+ animate('300ms ease-out', style({ opacity: 1, transform: 'translateY(0)' }))
207
+ ]),
208
+ transition(':leave', [
209
+ style({ opacity: 1, transform: 'translateY(0)' }),
210
+ animate('300ms ease-in', style({ opacity: 0, transform: 'translateY(50%)' }))
211
+ ])
212
+ ])
213
+ ] }); }
214
+ }
215
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaChatComponent, decorators: [{
216
+ type: Component,
217
+ args: [{ selector: 'bsu-barsa-chat', providers: [FormPanelService], animations: [
218
+ trigger('inContentAnimation', [
219
+ transition(':enter', [
220
+ style({ opacity: 0, transform: 'scale(50%, 50%)' }),
221
+ animate('300ms ease-out', style({ opacity: 1, transform: 'scale(100%, 100%)' }))
222
+ ]),
223
+ transition(':leave', [
224
+ style({ opacity: 1, transform: 'scale(100%, 100%)' }),
225
+ animate('300ms ease-in', style({ opacity: 0, transform: 'scale(50%, 50%)' }))
226
+ ])
227
+ ]),
228
+ trigger('inOutReplyingMessage', [
229
+ transition(':enter', [
230
+ style({ opacity: 0, transform: 'translateY(50%)' }),
231
+ animate('300ms ease-out', style({ opacity: 1, transform: 'translateY(0)' }))
232
+ ]),
233
+ transition(':leave', [
234
+ style({ opacity: 1, transform: 'translateY(0)' }),
235
+ animate('300ms ease-in', style({ opacity: 0, transform: 'translateY(50%)' }))
236
+ ])
237
+ ])
238
+ ], standalone: false, template: "<div\r\n class=\"tw-flex tw-w-full tw-bg-gradient-to-r tw-from-[#5d6e7f] tw-to-[#354a5f] dark:tw-from-[#253443] dark:tw-to-[#10161c]\"\r\n fillEmptySpace\r\n [class.tw-h-screen]=\"!simple\"\r\n [class.tw-justify-center]=\"simple\"\r\n>\r\n @if (!simple) {\r\n <div class=\"tw-bg-black/[.3] 2xl:tw-grow tw-shrink tw-h-full\"></div>\r\n }\r\n <div\r\n class=\"tw-h-full tw-flex 2xl:tw-container max-w-[80rem] tw-shrink-0 tw-relative\"\r\n [ngClass]=\"{\r\n 'tw-grow 2xl:tw-grow-0': !simple,\r\n 'tw-w-full': simple\r\n }\"\r\n >\r\n @if (!simple) {\r\n <div class=\"tw-grow-0 tw-shrink-0 tw-w-full md:tw-w-96 tw-p-0 md:tw-p-6\">\r\n <div\r\n class=\"tw-flex tw-flex-col tw-w-full tw-h-full tw-overflow-hidden tw-border-l tw-border-l-gray-300 md:tw-rounded-2xl md:tw-border md:tw-border-l-gray-300 md:tw-border-gray-300 dark:tw-border-l-gray-600 md:dark:tw-border-l-gray-600 md:dark:tw-border-gray-600\"\r\n >\r\n <bsu-barsa-chat-threads-list-toolbar></bsu-barsa-chat-threads-list-toolbar>\r\n <bsu-barsa-chat-threads-list>\r\n @for (thread of threads; track thread.id) {\r\n <bsu-barsa-chat-thread [thread]=\"thread\" (click)=\"selectThread(thread)\"></bsu-barsa-chat-thread>\r\n }\r\n </bsu-barsa-chat-threads-list>\r\n </div>\r\n </div>\r\n } @else {\r\n <div\r\n class=\"tw-absolute tw-top-0 tw-left-0 tw-w-full tw-h-full tw-bg-[url('assets/chat-bg.png')] tw-bg-fixed tw-opacity-25\"\r\n ></div>\r\n }\r\n <div\r\n class=\"tw-grow tw-shrink tw-relative\"\r\n [ngClass]=\"{\r\n 'md:tw-py-6 md:tw-pl-6 tw-hidden md:tw-flex': !simple,\r\n 'tw-flex': simple\r\n }\"\r\n >\r\n @if (selectedThread()) {\r\n <div\r\n @inContentAnimation\r\n class=\"tw-h-full tw-w-full tw-flex tw-flex-col tw-relative md:tw-border-gray-300 md:dark:tw-border-gray-600 tw-overflow-hidden\"\r\n [ngClass]=\"{\r\n 'md:tw-border md:tw-rounded-2xl': !simple\r\n }\"\r\n >\r\n <bsu-barsa-chat-content-toolbar\r\n [title]=\"selectedThread().title\"\r\n [subtitle]=\"'\u0645\u062D\u0645\u062F \u0645\u062D\u0645\u062F\u06CC'\"\r\n [avatar]=\"selectedThread().avatar\"\r\n [status]=\"selectedThread().status\"\r\n ></bsu-barsa-chat-content-toolbar>\r\n <bsu-barsa-chat-content id=\"chat-container\">\r\n @if(layout94$ | async;as layout94){ @if ('\u0644\u06CC\u0633\u062A \u06AF\u0641\u062A\u06AF\u0648' | controlUi: layout94; as configUi) {\r\n <bsu-layout-control [config]=\"configUi\"></bsu-layout-control>\r\n } }\r\n </bsu-barsa-chat-content>\r\n <div\r\n class=\"tw-w-full\"\r\n [ngClass]=\"{\r\n 'tw-relative': !simple,\r\n '2xl:tw-rounded-t-xl tw-grow-0 tw-shrink-0': simple\r\n }\"\r\n >\r\n @if (replyingMessage()) {\r\n <div\r\n @inOutReplyingMessage\r\n class=\"tw-w-full tw-px-2 tw-py-1 tw-border-r-4 tw-border-r-bubble-mine tw-flex tw-gap-2 te-items-center tw-absolute tw-z-0 tw-bg-default tw-right-0 -tw-top-14\"\r\n >\r\n <button\r\n fd-button\r\n fdType=\"transparent\"\r\n glyph=\"decline\"\r\n class=\"tw-grow-0 tw-shrink-0\"\r\n (click)=\"replyingMessage.set(null)\"\r\n ></button>\r\n <div class=\"tw-flex tw-flex-col tw-grow tw-shrink tw-overflow-hidden\">\r\n <span class=\"tw-font-bold\">{{ replyingMessage().owner.name }}</span>\r\n <span class=\"tw-truncate\">{{\r\n replyingMessage().text ?? replyingMessage().file?.name ?? replyingMessage().image?.name\r\n }}</span>\r\n </div>\r\n <div class=\"tw-w-8 tw-shrink-0 tw-grow-0\"></div>\r\n </div>\r\n }\r\n <div\r\n class=\"tw-w-full tw-p-2 tw-flex tw-gap-2 tw-border-t tw-border-t-gray-300 dark:tw-border-t-gray-600 tw-bg-default tw-items-end tw-z-10\"\r\n >\r\n <fd-popover placement=\"top-start\" title=\"top-start\">\r\n <fd-popover-control>\r\n <button\r\n fd-button\r\n fdType=\"transparent\"\r\n glyph=\"attachment\"\r\n class=\"!tw-rounded-full tw-shrink-0 tw-grow-0 !tw-size-10 !tw-min-h-10 !tw-max-h-10 !tw-min-w-10 !tw-max-w-10\"\r\n (click)=\"addAttachment()\"\r\n ></button>\r\n </fd-popover-control>\r\n <fd-popover-body minWidth=\"10rem\">\r\n <div class=\"tw-flex tw-flex-col tw-bg-default tw-w-full\" bodyClick>\r\n <label\r\n class=\"tw-px-4 tw-py-2 tw-flex tw-gap-2 tw-w-full hover:tw-bg-base/[.1] tw-transition-all tw-cursor-pointer\"\r\n >\r\n <fd-icon class=\"!tw-text-base !tw-text-3xl\" glyph=\"camera\"></fd-icon>\r\n <span class=\"!tw-text-base\">\u0627\u0631\u0633\u0627\u0644 \u0639\u06A9\u0633</span>\r\n <input class=\"tw-hidden\" type=\"file\" id=\"img\" name=\"img\" accept=\"image/*\" />\r\n </label>\r\n <label\r\n class=\"tw-px-4 tw-py-2 tw-flex tw-gap-2 tw-w-full hover:tw-bg-base/[.1] tw-transition-all tw-cursor-pointer\"\r\n >\r\n <fd-icon class=\"!tw-text-base !tw-text-3xl\" glyph=\"add-document\"></fd-icon>\r\n <span class=\"!tw-text-base\">\u0627\u0631\u0633\u0627\u0644 \u0641\u0627\u06CC\u0644</span>\r\n <input class=\"tw-hidden\" type=\"file\" id=\"file\" name=\"file\" accept=\"file/*\" />\r\n </label>\r\n </div>\r\n </fd-popover-body>\r\n </fd-popover>\r\n <div class=\"tw-inline-flex tw-relative tw-grow tw-shrink\">\r\n <fd-feed-input [attr.aria-label]=\"'\u0645\u062A\u0646 \u067E\u06CC\u0627\u0645'\" class=\"tw-flex-1\">\r\n <fd-avatar\r\n fdFeedInputAvatar\r\n size=\"s\"\r\n [label]=\"'\u0631\u0627\u0647\u0628\u0631'\"\r\n [image]=\"''\"\r\n [placeholder]=\"true\"\r\n ></fd-avatar>\r\n <textarea\r\n id=\"chat-textarea\"\r\n fd-form-control\r\n fdFeedInputTextarea\r\n placeholder=\"\u0645\u062A\u0646 \u067E\u06CC\u0627\u0645\"\r\n [fdFeedInputTextareaMaxRows]=\"2\"\r\n (input)=\"onTextChange($event)\"\r\n ></textarea>\r\n <button\r\n fdFeedInputButton\r\n [attr.aria-label]=\"'Send' | bbbTranslate\"\r\n [title]=\"'Send' | bbbTranslate\"\r\n (click)=\"sendMessage()\"\r\n ></button>\r\n </fd-feed-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n } @else {\r\n <div\r\n class=\"tw-absolute tw-top-1/2 -tw-translate-y-1/2 tw-left-1/2 -tw-translate-x-1/2 tw-flex tw-flex-col tw-gap-8 tw-items-center\"\r\n >\r\n <img src=\"assets/not-selected-chat.png\" class=\"tw-w-64 tw-opacity-25\" />\r\n <!-- <span class=\"tw-text-xl tw-font-bold tw-text-gray-400 dark:tw-text-gray-500\">-->\r\n <!-- \u0628\u0631\u0627\u06CC \u0634\u0631\u0648\u0639 \u06CC\u06A9 \u0686\u062A \u0631\u0627 \u0627\u0646\u062A\u062E\u0627\u0628 \u06A9\u0646\u06CC\u062F-->\r\n <!-- </span>-->\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n @if (!simple) {\r\n <div class=\"tw-bg-black/[.3] 2xl:tw-grow tw-shrink tw-h-full\"></div>\r\n }\r\n</div>\r\n" }]
239
+ }], propDecorators: { simple: [{
240
+ type: Input
241
+ }] } });
242
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtY2hhdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi9iYXJzYS1jaGF0L2JhcnNhLWNoYXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtY2hhdC9iYXJzYS1jaGF0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWtCLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sT0FBTyxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUErQnJGLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxpQkFBaUI7SUE3QnpEOztRQThCYSxXQUFNLEdBQUcsSUFBSSxDQUFDO1FBRXZCLGtCQUFhLEdBQUcsK0RBQStELENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNGLG9CQUFlLEdBQUcsOERBQThELENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVGLGtCQUFhLEdBQUcsQ0FDWixtRkFBbUY7WUFDbkYsK0ZBQStGO1lBQy9GLDRGQUE0RjtZQUM1RiwyRkFBMkY7WUFDM0YsMkZBQTJGO1lBQzNGLHlGQUF5RjtZQUN6RiwwRkFBMEY7WUFDMUYsOEVBQThFLENBQ2pGLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7YUFDZCxJQUFJLENBQUMsSUFB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QUM7NkJBQ25GLENBQUM7NEJBQ0YsVUFBVSxDQUFDLFFBQVEsRUFBRTtnQ0FDakIsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQztnQ0FDckQsT0FBTyxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLENBQUM7NkJBQ2hGLENBQUM7eUJBQ0wsQ0FBQzt3QkFDRixPQUFPLENBQUMsc0JBQXNCLEVBQUU7NEJBQzVCLFVBQVUsQ0FBQyxRQUFRLEVBQUU7Z0NBQ2pCLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLENBQUM7Z0NBQ25ELE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDOzZCQUMvRSxDQUFDOzRCQUNGLFVBQVUsQ0FBQyxRQUFRLEVBQUU7Z0NBQ2pCLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDO2dDQUNqRCxPQUFPLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQzs2QkFDaEYsQ0FBQzt5QkFDTCxDQUFDO3FCQUNMLGNBQ1csS0FBSzs4QkFHUixNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgc2lnbmFsLCBXcml0YWJsZVNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgam1vbWVudCBmcm9tICdtb21lbnQtamFsYWFsaSc7XHJcbmltcG9ydCB7IGFuaW1hdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IEZvcm1CYXNlQ29tcG9uZW50LCBGb3JtUGFuZWxTZXJ2aWNlLCBCYXJzYUFwaSB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtYmFyc2EtY2hhdCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vYmFyc2EtY2hhdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybDogJy4vYmFyc2EtY2hhdC5jb21wb25lbnQuY3NzJyxcclxuICAgIHByb3ZpZGVyczogW0Zvcm1QYW5lbFNlcnZpY2VdLFxyXG4gICAgYW5pbWF0aW9uczogW1xyXG4gICAgICAgIHRyaWdnZXIoJ2luQ29udGVudEFuaW1hdGlvbicsIFtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xyXG4gICAgICAgICAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAwLCB0cmFuc2Zvcm06ICdzY2FsZSg1MCUsIDUwJSknIH0pLFxyXG4gICAgICAgICAgICAgICAgYW5pbWF0ZSgnMzAwbXMgZWFzZS1vdXQnLCBzdHlsZSh7IG9wYWNpdHk6IDEsIHRyYW5zZm9ybTogJ3NjYWxlKDEwMCUsIDEwMCUpJyB9KSlcclxuICAgICAgICAgICAgXSksXHJcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtcclxuICAgICAgICAgICAgICAgIHN0eWxlKHsgb3BhY2l0eTogMSwgdHJhbnNmb3JtOiAnc2NhbGUoMTAwJSwgMTAwJSknIH0pLFxyXG4gICAgICAgICAgICAgICAgYW5pbWF0ZSgnMzAwbXMgZWFzZS1pbicsIHN0eWxlKHsgb3BhY2l0eTogMCwgdHJhbnNmb3JtOiAnc2NhbGUoNTAlLCA1MCUpJyB9KSlcclxuICAgICAgICAgICAgXSlcclxuICAgICAgICBdKSxcclxuICAgICAgICB0cmlnZ2VyKCdpbk91dFJlcGx5aW5nTWVzc2FnZScsIFtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xyXG4gICAgICAgICAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAwLCB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKDUwJSknIH0pLFxyXG4gICAgICAgICAgICAgICAgYW5pbWF0ZSgnMzAwbXMgZWFzZS1vdXQnLCBzdHlsZSh7IG9wYWNpdHk6IDEsIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoMCknIH0pKVxyXG4gICAgICAgICAgICBdKSxcclxuICAgICAgICAgICAgdHJhbnNpdGlvbignOmxlYXZlJywgW1xyXG4gICAgICAgICAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAxLCB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKDApJyB9KSxcclxuICAgICAgICAgICAgICAgIGFuaW1hdGUoJzMwMG1zIGVhc2UtaW4nLCBzdHlsZSh7IG9wYWNpdHk6IDAsIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoNTAlKScgfSkpXHJcbiAgICAgICAgICAgIF0pXHJcbiAgICAgICAgXSlcclxuICAgIF0sXHJcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmFyc2FDaGF0Q29tcG9uZW50IGV4dGVuZHMgRm9ybUJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgICBASW5wdXQoKSBzaW1wbGUgPSB0cnVlO1xyXG5cclxuICAgIHJhbmRvbU5hbWVBcnIgPSAn2LnZhNuMINit2LPZhiDYrdiz24zZhiDYqtmC24wg2YbZgtuMINmF2K3ZhdivINmF2YfYr9uMINis2KfZiNuM2K8g2YXYrdmF2K/Ysdi22Kcg2qnYsduM2YUg2YfZiNi02YbaryDZvtuM2YXYp9mGJy5zcGxpdCgnICcpO1xyXG4gICAgcmFuZG9tRmFtaWx5QXJyID0gJ9qp2LHbjNmF24wg2K3Ys9uM2YbbjCDYstin2LHYuduMINiq2YLZiNuMINqp2KfYuNmF24wg2YLZhtio2LHbjCDZhtio2YjbjNin2YYg2KfZgdi02KfYsSDYsdin2K/ZhdmG2K8g2YXYrdmF2K/bjCcuc3BsaXQoJyAnKTtcclxuICAgIHJhbmRvbVRleHRBcnIgPSAoXHJcbiAgICAgICAgJ9mE2YjYsdmFINin24zZvtiz2YjZhSDZhdiq2YYg2LPYp9iu2Krar9uMINio2Kcg2KrZiNmE24zYryDYs9in2K/ar9uMINmG2KfZhdmB2YfZiNmFINin2LIg2LXZhti52Kog2obYp9m+2Iwg2Ygg2KjYpyDYp9iz2KrZgdin2K/ZhyDYp9iyINi32LHYp9it2KfZhicgK1xyXG4gICAgICAgICcg2q/Ysdin2YHbjNqpINin2LPYqtiMINqG2KfZvtqv2LHZh9inINmIINmF2KrZiNmGINio2YTaqdmHINix2YjYstmG2KfZhdmHINmIINmF2KzZhNmHINiv2LEg2LPYqtmI2YYg2Ygg2LPYt9ix2KLZhtqG2YbYp9mGINqp2Ycg2YTYp9iy2YUg2KfYs9iq2Iwg2Ygg2KjYsdin24wg2LTYsdin24zYtycgK1xyXG4gICAgICAgICcg2YHYudmE24wg2KraqdmG2YjZhNmI2pjbjCDZhdmI2LHYryDZhtuM2KfYstiMINmIINqp2KfYsdio2LHYr9mH2KfbjCDZhdiq2YbZiNi5INio2Kcg2YfYr9mBINio2YfYqNmI2K8g2KfYqNiy2KfYsdmH2KfbjCDaqdin2LHYqNix2K/bjCDZhduMINio2KfYtNiv2Iwg2qnYqtin2KjZh9in24wnICtcclxuICAgICAgICAnINiy24zYp9iv24wg2K/YsSDYtNi12Kog2Ygg2LPZhyDYr9ix2LXYryDar9iw2LTYqtmHINit2KfZhCDZiCDYotuM2YbYr9mH2Iwg2LTZhtin2K7YqiDZgdix2KfZiNin2YYg2KzYp9mF2LnZhyDZiCDZhdiq2K7Ytdi12KfZhiDYsdinINmF24wg2LfZhNio2K/YjCDYqtinINio2KcnICtcclxuICAgICAgICAnINmG2LHZhSDYp9mB2LLYp9ix2YfYpyDYtNmG2KfYrtiqINio24zYtNiq2LHbjCDYsdinINio2LHYp9uMINi32LHYp9it2KfZhiDYsdin24zYp9mG2Ycg2KfbjCDYudmE24wg2KfZhNiu2LXZiNi1INi32LHYp9it2KfZhiDYrtmE2KfZgtuM2Iwg2Ygg2YHYsdmH2YbaryDZvtuM2LTYsdmIJyArXHJcbiAgICAgICAgJyDYr9ixINiy2KjYp9mGINmB2KfYsdiz24wg2KfbjNis2KfYryDaqdix2K/YjCDYr9ixINin24zZhiDYtdmI2LHYqiDZhduMINiq2YjYp9mGINin2YXbjNivINiv2KfYtNiqINqp2Ycg2KrZhdin2YUg2Ygg2K/YtNmI2KfYsduMINmF2YjYrNmI2K8g2K/YsSDYp9ix2KfYptmHJyArXHJcbiAgICAgICAgJyDYsdin2Yfaqdin2LHZh9in2Iwg2Ygg2LTYsdin24zYtyDYs9iu2Kog2KrYp9uM2b4g2KjZhyDZvtin24zYp9mGINix2LPYryDZiCDYstmF2KfZhiDZhdmI2LHYryDZhtuM2KfYsiDYtNin2YXZhCDYrdix2YjZgdqG24zZhtuMINiv2LPYqtin2YjYsdiv2YfYp9uMINin2LXZhNuM2IwnICtcclxuICAgICAgICAnINmIINis2YjYp9io2q/ZiNuMINiz2YjYp9mE2KfYqiDZvtuM2YjYs9iq2Ycg2KfZh9mEINiv2YbbjNin24wg2YXZiNis2YjYryDYt9ix2KfYrduMINin2LPYp9iz2Kcg2YXZiNix2K8g2KfYs9iq2YHYp9iv2Ycg2YLYsdin2LEg2q/bjNix2K8uJ1xyXG4gICAgKS5zcGxpdCgnICcpO1xyXG4gICAgdGhyZWFkcyA9IEFycmF5KDIwKVxyXG4gICAgICAgIC5maWxsKG51bGwpXHJcbiAgICAgICAgLm1hcCgodCkgPT4gKHtcclxuICAgICAgICAgICAgaWQ6IE1hdGgucmFuZG9tKCkgKiAxMDAwLFxyXG4gICAgICAgICAgICB0aXRsZTpcclxuICAgICAgICAgICAgICAgIHRoaXMucmFuZG9tTmFtZUFycltNYXRoLmZsb29yKHRoaXMucmFuZG9tTmFtZUFyci5sZW5ndGggKiBNYXRoLnJhbmRvbSgpKV0gK1xyXG4gICAgICAgICAgICAgICAgJyAnICtcclxuICAgICAgICAgICAgICAgIHRoaXMucmFuZG9tRmFtaWx5QXJyW01hdGguZmxvb3IodGhpcy5yYW5kb21GYW1pbHlBcnIubGVuZ3RoICogTWF0aC5yYW5kb20oKSldLFxyXG4gICAgICAgICAgICBhdmF0YXI6ICdodHRwczovL3BpY3N1bS5waG90b3MvMTAwP3dvcmtBcm91bmQ9JyArIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMCksXHJcbiAgICAgICAgICAgIHN0YXR1czogTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogNCksXHJcbiAgICAgICAgICAgIGxhc3RBY3Rpdml0eTogdGhpcy5yYW5kb21EYXRlKG5ldyBEYXRlKCcyMDI0LTAzLTAzJyksIG5ldyBEYXRlKCkpLFxyXG4gICAgICAgICAgICB1bnJlYWRDb3VudDogTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpKSA/IDEgKyBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAyMCkgOiAwLFxyXG4gICAgICAgICAgICBwaW5uZWQ6ICEhTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpKSxcclxuICAgICAgICAgICAgbXV0ZWQ6ICEhTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpKSxcclxuICAgICAgICAgICAgbGFzdE1lc3NhZ2U6IHtcclxuICAgICAgICAgICAgICAgIGlkOiBNYXRoLnJhbmRvbSgpICogMTAwMCxcclxuICAgICAgICAgICAgICAgIG93bmVyOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWQ6IDEyMzQsXHJcbiAgICAgICAgICAgICAgICAgICAgYXZhdGFyOiAnaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzEwMD93b3JrQXJvdW5kPScgKyBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDApLFxyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6ICfZhdmH2K/bjCDYstin2LHYuduMJ1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHRleHQ6IHRoaXMuc2h1ZmZsZShcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJhbmRvbVRleHRBcnIuc2xpY2UoMCwgMSArIE1hdGguZmxvb3IodGhpcy5yYW5kb21UZXh0QXJyLmxlbmd0aCAqIE1hdGgucmFuZG9tKCkpKVxyXG4gICAgICAgICAgICAgICAgKS5qb2luKCcgJyksXHJcbiAgICAgICAgICAgICAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKClcclxuICAgICAgICAgICAgICAgICAgICAudG9UaW1lU3RyaW5nKClcclxuICAgICAgICAgICAgICAgICAgICAuc3BsaXQoJyAnKVswXVxyXG4gICAgICAgICAgICAgICAgICAgIC5zcGxpdCgnOicpXHJcbiAgICAgICAgICAgICAgICAgICAgLnNsaWNlKDAsIDIpXHJcbiAgICAgICAgICAgICAgICAgICAgLm1hcCgocykgPT4gcy5wYWRTdGFydCgyLCAnMCcpKVxyXG4gICAgICAgICAgICAgICAgICAgIC5qb2luKCc6JyksXHJcbiAgICAgICAgICAgICAgICBkZWxpdmVyZWRBdDogbmV3IERhdGUoKVxyXG4gICAgICAgICAgICAgICAgICAgIC50b1RpbWVTdHJpbmcoKVxyXG4gICAgICAgICAgICAgICAgICAgIC5zcGxpdCgnICcpWzBdXHJcbiAgICAgICAgICAgICAgICAgICAgLnNwbGl0KCc6JylcclxuICAgICAgICAgICAgICAgICAgICAuc2xpY2UoMCwgMilcclxuICAgICAgICAgICAgICAgICAgICAubWFwKChzKSA9PiBzLnBhZFN0YXJ0KDIsICcwJykpXHJcbiAgICAgICAgICAgICAgICAgICAgLmpvaW4oJzonKSxcclxuICAgICAgICAgICAgICAgIHJlYWRBdDogbmV3IERhdGUoKVxyXG4gICAgICAgICAgICAgICAgICAgIC50b1RpbWVTdHJpbmcoKVxyXG4gICAgICAgICAgICAgICAgICAgIC5zcGxpdCgnICcpWzBdXHJcbiAgICAgICAgICAgICAgICAgICAgLnNwbGl0KCc6JylcclxuICAgICAgICAgICAgICAgICAgICAuc2xpY2UoMCwgMilcclxuICAgICAgICAgICAgICAgICAgICAubWFwKChzKSA9PiBzLnBhZFN0YXJ0KDIsICcwJykpXHJcbiAgICAgICAgICAgICAgICAgICAgLmpvaW4oJzonKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSkpO1xyXG4gICAgbW9tZW50ID0gam1vbWVudDtcclxuICAgIHNlbGVjdGVkVGhyZWFkOiBXcml0YWJsZVNpZ25hbDxhbnkgfCBudWxsPiA9IHNpZ25hbChudWxsKTtcclxuICAgIG1lc3NhZ2VzOiBXcml0YWJsZVNpZ25hbDxhbnlbXSB8IG51bGw+ID0gc2lnbmFsKG51bGwpO1xyXG4gICAgcmVwbHlpbmdNZXNzYWdlOiBXcml0YWJsZVNpZ25hbDxhbnkgfCBudWxsPiA9IHNpZ25hbChudWxsKTtcclxuICAgIF9uZXdNZXNzYWdlVGV4dCA9ICcnO1xyXG4gICAgb25UZXh0Q2hhbmdlKCRldmVudCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX25ld01lc3NhZ2VUZXh0ID0gJGV2ZW50LnRhcmdldC52YWx1ZTtcclxuICAgIH1cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCdjaGF0LW1vZGUnKTtcclxuICAgICAgICB0aGlzLnNlbGVjdFRocmVhZCh0aGlzLnRocmVhZHNbMF0pO1xyXG4gICAgfVxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCdjaGF0LW1vZGUnKTtcclxuICAgIH1cclxuICAgIHNjcm9sbFRvQm90dG9tKGZvcmNlID0gZmFsc2UsIGluc3RhbnQgPSBmYWxzZSk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9ICh0aGlzLl9lbD8ubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkucXVlcnlTZWxlY3RvcignI2NoYXRDb250ZW50RWxlbWVudCcpIGFzIGFueTtcclxuICAgICAgICBpZiAoZm9yY2UgfHwgKGNvbnRhaW5lciAmJiBjb250YWluZXIuc2Nyb2xsVG9wTWF4IC0gY29udGFpbmVyLnNjcm9sbFRvcCA8IDMwMCkpIHtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PlxyXG4gICAgICAgICAgICAgICAgY29udGFpbmVyPy5zY3JvbGxUbyh7XHJcbiAgICAgICAgICAgICAgICAgICAgdG9wOiBjb250YWluZXIuc2Nyb2xsSGVpZ2h0LFxyXG4gICAgICAgICAgICAgICAgICAgIGJlaGF2aW9yOiBpbnN0YW50ID8gJ2luc3RhbnQnIDogJ3Ntb290aCdcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgc2VuZE1lc3NhZ2UoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuX25ld01lc3NhZ2VUZXh0Py50cmltKCkubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIEJhcnNhQXBpLkJ3LlJ1bkJsTWV0aG9kQXN5bmMoe30pO1xyXG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VzPy5zZXQoW1xyXG4gICAgICAgICAgICAgICAgLi4uKHRoaXMubWVzc2FnZXMoKSBhcyBhbnlbXSksXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWQ6IE1hdGgucmFuZG9tKCkgKiAxMDAwLFxyXG4gICAgICAgICAgICAgICAgICAgIG93bmVyOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAxMjM0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhdmF0YXI6ICdodHRwczovL3BpY3N1bS5waG90b3MvMTAwP3dvcmtBcm91bmQ9JyArIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICfZhdmH2K/bjCDYstin2LHYuduMJ1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogdGhpcy5fbmV3TWVzc2FnZVRleHQsXHJcbiAgICAgICAgICAgICAgICAgICAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLFxyXG4gICAgICAgICAgICAgICAgICAgIGRlbGl2ZXJlZEF0OiBuZXcgRGF0ZSgpLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlYWRBdDogbmV3IERhdGUoKVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBdKTtcclxuICAgICAgICAgICAgdGhpcy5fbmV3TWVzc2FnZVRleHQgPSAnJztcclxuICAgICAgICAgICAgY29uc3QgaW5wdXRNZXNzYWdlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NoYXQtdGV4dGFyZWEnKTtcclxuICAgICAgICAgICAgaWYgKGlucHV0TWVzc2FnZSkge1xyXG4gICAgICAgICAgICAgICAgaW5wdXRNZXNzYWdlLmZvY3VzKCk7XHJcbiAgICAgICAgICAgICAgICBpbnB1dE1lc3NhZ2UuaW5uZXJUZXh0ID0gJyc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5zY3JvbGxUb0JvdHRvbSh0cnVlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBhZGRBdHRhY2htZW50KCk6IHZvaWQge31cclxuICAgIHNlbGVjdFRocmVhZCh0aHJlYWQ6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRUaHJlYWQuc2V0KHRocmVhZCk7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlcy5zZXQoXHJcbiAgICAgICAgICAgIEFycmF5KDQwKVxyXG4gICAgICAgICAgICAgICAgLmZpbGwobnVsbClcclxuICAgICAgICAgICAgICAgIC5tYXAoKHQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBvd25lclVzZXIgPSBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2VUeXBlID0gTWF0aC5yYW5kb20oKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBoYXNUZXh0ID0gTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbWdPcmlnaW5hbFdpZHRoID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMjAwKSArIDIwMDtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbWdPcmlnaW5hbEhlaWdodCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDIwMCkgKyAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IE1hdGgucmFuZG9tKCkgKiAxMDAwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvd25lcjoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IG93bmVyVXNlciA/IDEyMzQgOiA0MzIxLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXZhdGFyOiAnaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzEwMD93b3JrQXJvdW5kPScgKyBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDApLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogb3duZXJVc2VyID8gJ9mF2YfYr9uMINiy2KfYsdi524wnIDogdGhyZWFkLnRpdGxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVzc2FnZVR5cGUgPiAwLjUgJiYgaGFzVGV4dCkgfHwgbWVzc2FnZVR5cGUgPD0gMC41XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnNodWZmbGUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yYW5kb21UZXh0QXJyLnNsaWNlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hdGguZmxvb3IoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1lc3NhZ2VUeXBlID4gMC41ID8gMzAgOiB0aGlzLnJhbmRvbVRleHRBcnIubGVuZ3RoKSAqIE1hdGgucmFuZG9tKClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLmpvaW4oJyAnKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZVR5cGUgPiAwLjg1XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ9uM2qkg2LnYr9ivINmB2KfbjNmEJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHQ6IFsncG5nJywgJ2pwZycsICdwZGYnLCAnZG9jcycsICdjc3YnXVtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiA1KV0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpICogMTAwKSArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgJyArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsn2KjYp9uM2KonLCAn2qnbjNmE2YjYqNin24zYqicsICfZhdqv2KfYqNin24zYqiddW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDMpXVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpbWFnZTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VUeXBlIDw9IDAuODUgJiYgbWVzc2FnZVR5cGUgPiAwLjVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAn24zaqSDYudiv2K8g2LnaqdizJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGBodHRwczovL3BpY3N1bS5waG90b3MvJHtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAyMDAwKX0vJHtNYXRoLmZsb29yKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXRoLnJhbmRvbSgpICogMjAwMFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9P3dvcmtBcm91bmQ9JHtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDApfWAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxXaWR0aDogaW1nT3JpZ2luYWxXaWR0aCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5hbEhlaWdodDogaW1nT3JpZ2luYWxIZWlnaHRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlZEF0OiB0aGlzLnJhbmRvbURhdGUobmV3IERhdGUoJzIwMjQtMDMtMDMnKSwgbmV3IERhdGUoKSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGl2ZXJlZEF0OiBuZXcgRGF0ZSgpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZWFkQXQ6IG5ldyBEYXRlKClcclxuICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiBhLmNyZWF0ZWRBdC5nZXRUaW1lKCkgLSBiLmNyZWF0ZWRBdC5nZXRUaW1lKCkpXHJcbiAgICAgICAgKTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuc2Nyb2xsVG9Cb3R0b20odHJ1ZSwgdHJ1ZSkpO1xyXG4gICAgfVxyXG4gICAgcmFuZG9tRGF0ZShzdGFydDogRGF0ZSwgZW5kOiBEYXRlKTogRGF0ZSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHN0YXJ0LmdldFRpbWUoKSArIE1hdGgucmFuZG9tKCkgKiAoZW5kLmdldFRpbWUoKSAtIHN0YXJ0LmdldFRpbWUoKSkpO1xyXG4gICAgfVxyXG4gICAgc2h1ZmZsZShhcnJheTogc3RyaW5nW10pOiBzdHJpbmdbXSB7XHJcbiAgICAgICAgbGV0IGN1cnJlbnRJbmRleCA9IGFycmF5Lmxlbmd0aDtcclxuICAgICAgICBsZXQgcmFuZG9tSW5kZXggPSAxO1xyXG4gICAgICAgIHdoaWxlIChjdXJyZW50SW5kZXggPiAwKSB7XHJcbiAgICAgICAgICAgIHJhbmRvbUluZGV4ID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogY3VycmVudEluZGV4KTtcclxuICAgICAgICAgICAgY3VycmVudEluZGV4LS07XHJcbiAgICAgICAgICAgIFthcnJheVtjdXJyZW50SW5kZXhdLCBhcnJheVtyYW5kb21JbmRleF1dID0gW2FycmF5W3JhbmRvbUluZGV4XSwgYXJyYXlbY3VycmVudEluZGV4XV07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBhcnJheTtcclxuICAgIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgICBjbGFzcz1cInR3LWZsZXggdHctdy1mdWxsIHR3LWJnLWdyYWRpZW50LXRvLXIgdHctZnJvbS1bIzVkNmU3Zl0gdHctdG8tWyMzNTRhNWZdIGRhcms6dHctZnJvbS1bIzI1MzQ0M10gZGFyazp0dy10by1bIzEwMTYxY11cIlxyXG4gICAgZmlsbEVtcHR5U3BhY2VcclxuICAgIFtjbGFzcy50dy1oLXNjcmVlbl09XCIhc2ltcGxlXCJcclxuICAgIFtjbGFzcy50dy1qdXN0aWZ5LWNlbnRlcl09XCJzaW1wbGVcIlxyXG4+XHJcbiAgICBAaWYgKCFzaW1wbGUpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJ0dy1iZy1ibGFjay9bLjNdIDJ4bDp0dy1ncm93IHR3LXNocmluayB0dy1oLWZ1bGxcIj48L2Rpdj5cclxuICAgIH1cclxuICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cInR3LWgtZnVsbCB0dy1mbGV4IDJ4bDp0dy1jb250YWluZXIgbWF4LXctWzgwcmVtXSB0dy1zaHJpbmstMCB0dy1yZWxhdGl2ZVwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAndHctZ3JvdyAyeGw6dHctZ3Jvdy0wJzogIXNpbXBsZSxcclxuICAgICAgICAgICAgJ3R3LXctZnVsbCc6IHNpbXBsZVxyXG4gICAgICAgIH1cIlxyXG4gICAgPlxyXG4gICAgICAgIEBpZiAoIXNpbXBsZSkge1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0dy1ncm93LTAgdHctc2hyaW5rLTAgdHctdy1mdWxsIG1kOnR3LXctOTYgdHctcC0wIG1kOnR3LXAtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInR3LWZsZXggdHctZmxleC1jb2wgdHctdy1mdWxsIHR3LWgtZnVsbCB0dy1vdmVyZmxvdy1oaWRkZW4gdHctYm9yZGVyLWwgdHctYm9yZGVyLWwtZ3JheS0zMDAgbWQ6dHctcm91bmRlZC0yeGwgbWQ6dHctYm9yZGVyIG1kOnR3LWJvcmRlci1sLWdyYXktMzAwIG1kOnR3LWJvcmRlci1ncmF5LTMwMCBkYXJrOnR3LWJvcmRlci1sLWdyYXktNjAwIG1kOmRhcms6dHctYm9yZGVyLWwtZ3JheS02MDAgbWQ6ZGFyazp0dy1ib3JkZXItZ3JheS02MDBcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8YnN1LWJhcnNhLWNoYXQtdGhyZWFkcy1saXN0LXRvb2xiYXI+PC9ic3UtYmFyc2EtY2hhdC10aHJlYWRzLWxpc3QtdG9vbGJhcj5cclxuICAgICAgICAgICAgICAgIDxic3UtYmFyc2EtY2hhdC10aHJlYWRzLWxpc3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgQGZvciAodGhyZWFkIG9mIHRocmVhZHM7IHRyYWNrIHRocmVhZC5pZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIDxic3UtYmFyc2EtY2hhdC10aHJlYWQgW3RocmVhZF09XCJ0aHJlYWRcIiAoY2xpY2spPVwic2VsZWN0VGhyZWFkKHRocmVhZClcIj48L2JzdS1iYXJzYS1jaGF0LXRocmVhZD5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICA8L2JzdS1iYXJzYS1jaGF0LXRocmVhZHMtbGlzdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cInR3LWFic29sdXRlIHR3LXRvcC0wIHR3LWxlZnQtMCB0dy13LWZ1bGwgdHctaC1mdWxsIHR3LWJnLVt1cmwoJ2Fzc2V0cy9jaGF0LWJnLnBuZycpXSB0dy1iZy1maXhlZCB0dy1vcGFjaXR5LTI1XCJcclxuICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJ0dy1ncm93IHR3LXNocmluayB0dy1yZWxhdGl2ZVwiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICdtZDp0dy1weS02IG1kOnR3LXBsLTYgdHctaGlkZGVuIG1kOnR3LWZsZXgnOiAhc2ltcGxlLFxyXG4gICAgICAgICAgICAgICAgJ3R3LWZsZXgnOiBzaW1wbGVcclxuICAgICAgICAgICAgfVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgICBAaWYgKHNlbGVjdGVkVGhyZWFkKCkpIHtcclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgQGluQ29udGVudEFuaW1hdGlvblxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0dy1oLWZ1bGwgdHctdy1mdWxsIHR3LWZsZXggdHctZmxleC1jb2wgdHctcmVsYXRpdmUgbWQ6dHctYm9yZGVyLWdyYXktMzAwIG1kOmRhcms6dHctYm9yZGVyLWdyYXktNjAwIHR3LW92ZXJmbG93LWhpZGRlblwiXHJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgJ21kOnR3LWJvcmRlciBtZDp0dy1yb3VuZGVkLTJ4bCc6ICFzaW1wbGVcclxuICAgICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8YnN1LWJhcnNhLWNoYXQtY29udGVudC10b29sYmFyXHJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cInNlbGVjdGVkVGhyZWFkKCkudGl0bGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzdWJ0aXRsZV09XCIn2YXYrdmF2K8g2YXYrdmF2K/bjCdcIlxyXG4gICAgICAgICAgICAgICAgICAgIFthdmF0YXJdPVwic2VsZWN0ZWRUaHJlYWQoKS5hdmF0YXJcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzdGF0dXNdPVwic2VsZWN0ZWRUaHJlYWQoKS5zdGF0dXNcIlxyXG4gICAgICAgICAgICAgICAgPjwvYnN1LWJhcnNhLWNoYXQtY29udGVudC10b29sYmFyPlxyXG4gICAgICAgICAgICAgICAgPGJzdS1iYXJzYS1jaGF0LWNvbnRlbnQgaWQ9XCJjaGF0LWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIEBpZihsYXlvdXQ5NCQgfCBhc3luYzthcyBsYXlvdXQ5NCl7IEBpZiAoJ9mE24zYs9iqINqv2YHYqtqv2YgnIHwgY29udHJvbFVpOiBsYXlvdXQ5NDsgYXMgY29uZmlnVWkpIHtcclxuICAgICAgICAgICAgICAgICAgICA8YnN1LWxheW91dC1jb250cm9sIFtjb25maWddPVwiY29uZmlnVWlcIj48L2JzdS1sYXlvdXQtY29udHJvbD5cclxuICAgICAgICAgICAgICAgICAgICB9IH1cclxuICAgICAgICAgICAgICAgIDwvYnN1LWJhcnNhLWNoYXQtY29udGVudD5cclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInR3LXctZnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAndHctcmVsYXRpdmUnOiAhc2ltcGxlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAnMnhsOnR3LXJvdW5kZWQtdC14bCB0dy1ncm93LTAgdHctc2hyaW5rLTAnOiBzaW1wbGVcclxuICAgICAgICAgICAgICAgICAgICB9XCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICBAaWYgKHJlcGx5aW5nTWVzc2FnZSgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5PdXRSZXBseWluZ01lc3NhZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0dy13LWZ1bGwgdHctcHgtMiB0dy1weS0xIHR3LWJvcmRlci1yLTQgdHctYm9yZGVyLXItYnViYmxlLW1pbmUgdHctZmxleCB0dy1nYXAtMiB0ZS1pdGVtcy1jZW50ZXIgdHctYWJzb2x1dGUgdHctei0wIHR3LWJnLWRlZmF1bHQgdHctcmlnaHQtMCAtdHctdG9wLTE0XCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2x5cGg9XCJkZWNsaW5lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHctZ3Jvdy0wIHR3LXNocmluay0wXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZXBseWluZ01lc3NhZ2Uuc2V0KG51bGwpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHctZmxleCB0dy1mbGV4LWNvbCB0dy1ncm93IHR3LXNocmluayB0dy1vdmVyZmxvdy1oaWRkZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHctZm9udC1ib2xkXCI+e3sgcmVwbHlpbmdNZXNzYWdlKCkub3duZXIubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHctdHJ1bmNhdGVcIj57e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGx5aW5nTWVzc2FnZSgpLnRleHQgPz8gcmVwbHlpbmdNZXNzYWdlKCkuZmlsZT8ubmFtZSA/PyByZXBseWluZ01lc3NhZ2UoKS5pbWFnZT8ubmFtZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHctdy04IHR3LXNocmluay0wIHR3LWdyb3ctMFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHctdy1mdWxsIHR3LXAtMiB0dy1mbGV4IHR3LWdhcC0yIHR3LWJvcmRlci10IHR3LWJvcmRlci10LWdyYXktMzAwIGRhcms6dHctYm9yZGVyLXQtZ3JheS02MDAgdHctYmctZGVmYXVsdCB0dy1pdGVtcy1lbmQgdHctei0xMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmQtcG9wb3ZlciBwbGFjZW1lbnQ9XCJ0b3Atc3RhcnRcIiB0aXRsZT1cInRvcC1zdGFydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLXBvcG92ZXItY29udHJvbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdseXBoPVwiYXR0YWNobWVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiIXR3LXJvdW5kZWQtZnVsbCB0dy1zaHJpbmstMCB0dy1ncm93LTAgIXR3LXNpemUtMTAgIXR3LW1pbi1oLTEwICF0dy1tYXgtaC0xMCAhdHctbWluLXctMTAgIXR3LW1heC13LTEwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFkZEF0dGFjaG1lbnQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1wb3BvdmVyLWNvbnRyb2w+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtcG9wb3Zlci1ib2R5IG1pbldpZHRoPVwiMTByZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHctZmxleCB0dy1mbGV4LWNvbCB0dy1iZy1kZWZhdWx0IHR3LXctZnVsbFwiIGJvZHlDbGljaz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInR3LXB4LTQgdHctcHktMiB0dy1mbGV4IHR3LWdhcC0yIHR3LXctZnVsbCBob3Zlcjp0dy1iZy1iYXNlL1suMV0gdHctdHJhbnNpdGlvbi1hbGwgdHctY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtaWNvbiBjbGFzcz1cIiF0dy10ZXh0LWJhc2UgIXR3LXRleHQtM3hsXCIgZ2x5cGg9XCJjYW1lcmFcIj48L2ZkLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIiF0dy10ZXh0LWJhc2VcIj7Yp9ix2LPYp9mEINi52qnYszwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cInR3LWhpZGRlblwiIHR5cGU9XCJmaWxlXCIgaWQ9XCJpbWdcIiBuYW1lPVwiaW1nXCIgYWNjZXB0PVwiaW1hZ2UvKlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0dy1weC00IHR3LXB5LTIgdHctZmxleCB0dy1nYXAtMiB0dy13LWZ1bGwgaG92ZXI6dHctYmctYmFzZS9bLjFdIHR3LXRyYW5zaXRpb24tYWxsIHR3LWN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWljb24gY2xhc3M9XCIhdHctdGV4dC1iYXNlICF0dy10ZXh0LTN4bFwiIGdseXBoPVwiYWRkLWRvY3VtZW50XCI+PC9mZC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCIhdHctdGV4dC1iYXNlXCI+2KfYsdiz2KfZhCDZgdin24zZhDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cInR3LWhpZGRlblwiIHR5cGU9XCJmaWxlXCIgaWQ9XCJmaWxlXCIgbmFtZT1cImZpbGVcIiBhY2NlcHQ9XCJmaWxlLypcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1wb3BvdmVyLWJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtcG9wb3Zlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR3LWlubGluZS1mbGV4IHR3LXJlbGF0aXZlIHR3LWdyb3cgdHctc2hyaW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtZmVlZC1pbnB1dCBbYXR0ci5hcmlhLWxhYmVsXT1cIifZhdiq2YYg2b7bjNin2YUnXCIgY2xhc3M9XCJ0dy1mbGV4LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtYXZhdGFyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkRmVlZElucHV0QXZhdGFyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIifYsdin2YfYqNixJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbWFnZV09XCInJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9mZC1hdmF0YXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2hhdC10ZXh0YXJlYVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLWZvcm0tY29udHJvbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZEZlZWRJbnB1dFRleHRhcmVhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi2YXYqtmGINm+24zYp9mFXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZkRmVlZElucHV0VGV4dGFyZWFNYXhSb3dzXT1cIjJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW5wdXQpPVwib25UZXh0Q2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3RleHRhcmVhPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRGZWVkSW5wdXRCdXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInU2VuZCcgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ1NlbmQnIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbmRNZXNzYWdlKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtZmVlZC1pbnB1dD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInR3LWFic29sdXRlIHR3LXRvcC0xLzIgLXR3LXRyYW5zbGF0ZS15LTEvMiB0dy1sZWZ0LTEvMiAtdHctdHJhbnNsYXRlLXgtMS8yIHR3LWZsZXggdHctZmxleC1jb2wgdHctZ2FwLTggdHctaXRlbXMtY2VudGVyXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCJhc3NldHMvbm90LXNlbGVjdGVkLWNoYXQucG5nXCIgY2xhc3M9XCJ0dy13LTY0IHR3LW9wYWNpdHktMjVcIiAvPlxyXG4gICAgICAgICAgICAgICAgPCEtLSAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHctdGV4dC14bCB0dy1mb250LWJvbGQgdHctdGV4dC1ncmF5LTQwMCBkYXJrOnR3LXRleHQtZ3JheS01MDBcIj4tLT5cclxuICAgICAgICAgICAgICAgIDwhLS0gICAgICAgICAgICAgICAg2KjYsdin24wg2LTYsdmI2Lkg24zaqSDahtiqINix2Kcg2KfZhtiq2K7Yp9ioINqp2YbbjNivLS0+XHJcbiAgICAgICAgICAgICAgICA8IS0tICAgICAgICAgICAgPC9zcGFuPi0tPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICBAaWYgKCFzaW1wbGUpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJ0dy1iZy1ibGFjay9bLjNdIDJ4bDp0dy1ncm93IHR3LXNocmluayB0dy1oLWZ1bGxcIj48L2Rpdj5cclxuICAgIH1cclxuPC9kaXY+XHJcbiJdfQ==
@@ -0,0 +1,8 @@
1
+ export var ThreadStatus;
2
+ (function (ThreadStatus) {
3
+ ThreadStatus[ThreadStatus["LastSeen"] = 0] = "LastSeen";
4
+ ThreadStatus[ThreadStatus["Offline"] = 1] = "Offline";
5
+ ThreadStatus[ThreadStatus["Online"] = 2] = "Online";
6
+ ThreadStatus[ThreadStatus["Busy"] = 3] = "Busy";
7
+ })(ThreadStatus || (ThreadStatus = {}));
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2JhcnNhLWNoYXQvY2hhdC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF5QkEsTUFBTSxDQUFOLElBQVksWUFLWDtBQUxELFdBQVksWUFBWTtJQUNwQix1REFBUSxDQUFBO0lBQ1IscURBQU8sQ0FBQTtJQUNQLG1EQUFNLENBQUE7SUFDTiwrQ0FBSSxDQUFBO0FBQ1IsQ0FBQyxFQUxXLFlBQVksS0FBWixZQUFZLFFBS3ZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmlsZUF0dGFjaG1lbnRJbmZvLCBGaWxlUGljdHVyZUluZm9Nb2RlbCB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuXHJcbmV4cG9ydCB0eXBlIFRocmVhZCA9IHtcclxuICAgIGlkOiBudW1iZXI7XHJcbiAgICB0aXRsZTogc3RyaW5nO1xyXG4gICAgYXZhdGFyOiBzdHJpbmc7XHJcbiAgICBzdGF0dXM6IFRocmVhZFN0YXR1cztcclxuICAgIGxhc3RBY3Rpdml0eTogRGF0ZTtcclxuICAgIHVucmVhZENvdW50OiBudW1iZXI7XHJcbiAgICBwaW5uZWQ6IGJvb2xlYW47XHJcbiAgICBtdXRlZDogYm9vbGVhbjtcclxuICAgIGxhc3RNZXNzYWdlOiBNZXNzYWdlO1xyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgTWVzc2FnZSA9IHtcclxuICAgIGlkOiBzdHJpbmc7XHJcbiAgICBvd25lcjogVXNlcjtcclxuICAgIHRleHQ/OiBzdHJpbmc7XHJcbiAgICBmaWxlPzogRmlsZUF0dGFjaG1lbnRJbmZvO1xyXG4gICAgaW1hZ2U/OiBGaWxlUGljdHVyZUluZm9Nb2RlbDtcclxuICAgIGNyZWF0ZWRBdDogRGF0ZTtcclxuICAgIGRlbGl2ZXJlZEF0OiBEYXRlO1xyXG4gICAgcmVhZEF0OiBEYXRlO1xyXG59O1xyXG5cclxuZXhwb3J0IGVudW0gVGhyZWFkU3RhdHVzIHtcclxuICAgIExhc3RTZWVuLFxyXG4gICAgT2ZmbGluZSxcclxuICAgIE9ubGluZSxcclxuICAgIEJ1c3lcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgVXNlciA9IHtcclxuICAgIGlkOiBzdHJpbmc7XHJcbiAgICBhdmF0YXI6IHN0cmluZztcclxuICAgIG5hbWU6IHN0cmluZztcclxufTtcclxuIl19
@@ -0,0 +1,13 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class BarsaChatContentComponent {
4
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaChatContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BarsaChatContentComponent, selector: "bsu-barsa-chat-content", host: { classAttribute: "tw-w-full tw-flex tw-flex-col tw-grow tw-shrink tw-overflow-auto" }, ngImport: i0, template: "<div class=\"tw-flex tw-flex-col tw-justify-end tw-w-full tw-h-full\">\r\n <ng-content></ng-content>\r\n</div>\r\n", styles: [""] }); }
6
+ }
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaChatContentComponent, decorators: [{
8
+ type: Component,
9
+ args: [{ selector: 'bsu-barsa-chat-content', host: {
10
+ class: 'tw-w-full tw-flex tw-flex-col tw-grow tw-shrink tw-overflow-auto'
11
+ }, standalone: false, template: "<div class=\"tw-flex tw-flex-col tw-justify-end tw-w-full tw-h-full\">\r\n <ng-content></ng-content>\r\n</div>\r\n" }]
12
+ }] });
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtY2hhdC1jb250ZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2JhcnNhLWNoYXQtY29udGVudC9iYXJzYS1jaGF0LWNvbnRlbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtY2hhdC1jb250ZW50L2JhcnNhLWNoYXQtY29udGVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVcxQyxNQUFNLE9BQU8seUJBQXlCOytHQUF6Qix5QkFBeUI7bUdBQXpCLHlCQUF5Qiw0SkNYdEMsdUhBR0E7OzRGRFFhLHlCQUF5QjtrQkFUckMsU0FBUzsrQkFDSSx3QkFBd0IsUUFHNUI7d0JBQ0YsS0FBSyxFQUFFLGtFQUFrRTtxQkFDNUUsY0FDVyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYnN1LWJhcnNhLWNoYXQtY29udGVudCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vYmFyc2EtY2hhdC1jb250ZW50LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsOiAnLi9iYXJzYS1jaGF0LWNvbnRlbnQuY29tcG9uZW50LmNzcycsXHJcbiAgICBob3N0OiB7XHJcbiAgICAgICAgY2xhc3M6ICd0dy13LWZ1bGwgdHctZmxleCB0dy1mbGV4LWNvbCB0dy1ncm93IHR3LXNocmluayB0dy1vdmVyZmxvdy1hdXRvJ1xyXG4gICAgfSxcclxuICAgIHN0YW5kYWxvbmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCYXJzYUNoYXRDb250ZW50Q29tcG9uZW50IHt9XHJcbiIsIjxkaXYgY2xhc3M9XCJ0dy1mbGV4IHR3LWZsZXgtY29sIHR3LWp1c3RpZnktZW5kIHR3LXctZnVsbCB0dy1oLWZ1bGxcIj5cclxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuPC9kaXY+XHJcbiJdfQ==