@elementar-rt/components 0.6.56 → 0.6.57

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 (344) hide show
  1. package/README.md +49 -49
  2. package/badge/index.d.ts +18 -0
  3. package/bottom-sheet/index.d.ts +32 -0
  4. package/button-toggle/index.d.ts +33 -0
  5. package/calendar/index.d.ts +44 -0
  6. package/card/index.d.ts +32 -0
  7. package/chips/index.d.ts +23 -0
  8. package/clipboard-copy/index.d.ts +28 -0
  9. package/code-highlighter/index.d.ts +5 -1
  10. package/combobox/index.d.ts +38 -0
  11. package/content-editor/index.d.ts +18 -0
  12. package/dashboard/index.d.ts +1 -1
  13. package/data-grid/index.d.ts +64 -0
  14. package/datepicker/index.d.ts +32 -0
  15. package/dialog/index.d.ts +48 -0
  16. package/digit-roller/index.d.ts +18 -0
  17. package/empty-state/index.d.ts +17 -0
  18. package/expansion-panel/index.d.ts +12 -0
  19. package/fesm2022/elementar-rt-components-action-required.mjs +4 -4
  20. package/fesm2022/elementar-rt-components-action-required.mjs.map +1 -1
  21. package/fesm2022/elementar-rt-components-alert.mjs +17 -17
  22. package/fesm2022/elementar-rt-components-alert.mjs.map +1 -1
  23. package/fesm2022/elementar-rt-components-announcement.mjs +8 -8
  24. package/fesm2022/elementar-rt-components-announcement.mjs.map +1 -1
  25. package/fesm2022/elementar-rt-components-avatar.mjs +22 -22
  26. package/fesm2022/elementar-rt-components-avatar.mjs.map +1 -1
  27. package/fesm2022/elementar-rt-components-badge.mjs +38 -0
  28. package/fesm2022/elementar-rt-components-badge.mjs.map +1 -0
  29. package/fesm2022/elementar-rt-components-block-loader.mjs +7 -7
  30. package/fesm2022/elementar-rt-components-block-loader.mjs.map +1 -1
  31. package/fesm2022/elementar-rt-components-block-state.mjs +24 -24
  32. package/fesm2022/elementar-rt-components-block-state.mjs.map +1 -1
  33. package/fesm2022/elementar-rt-components-bottom-sheet.mjs +71 -0
  34. package/fesm2022/elementar-rt-components-bottom-sheet.mjs.map +1 -0
  35. package/fesm2022/elementar-rt-components-brand-colors.mjs +5 -5
  36. package/fesm2022/elementar-rt-components-brand-colors.mjs.map +1 -1
  37. package/fesm2022/elementar-rt-components-breadcrumbs.mjs +41 -41
  38. package/fesm2022/elementar-rt-components-breadcrumbs.mjs.map +1 -1
  39. package/fesm2022/elementar-rt-components-button-toggle.mjs +89 -0
  40. package/fesm2022/elementar-rt-components-button-toggle.mjs.map +1 -0
  41. package/fesm2022/elementar-rt-components-calendar.mjs +130 -0
  42. package/fesm2022/elementar-rt-components-calendar.mjs.map +1 -0
  43. package/fesm2022/elementar-rt-components-card-overlay.mjs +7 -7
  44. package/fesm2022/elementar-rt-components-card-overlay.mjs.map +1 -1
  45. package/fesm2022/elementar-rt-components-card.mjs +60 -0
  46. package/fesm2022/elementar-rt-components-card.mjs.map +1 -0
  47. package/fesm2022/elementar-rt-components-carousel.mjs +22 -22
  48. package/fesm2022/elementar-rt-components-carousel.mjs.map +1 -1
  49. package/fesm2022/elementar-rt-components-chips.mjs +54 -0
  50. package/fesm2022/elementar-rt-components-chips.mjs.map +1 -0
  51. package/fesm2022/elementar-rt-components-clipboard-copy.mjs +115 -0
  52. package/fesm2022/elementar-rt-components-clipboard-copy.mjs.map +1 -0
  53. package/fesm2022/elementar-rt-components-code-highlighter.mjs +19 -6
  54. package/fesm2022/elementar-rt-components-code-highlighter.mjs.map +1 -1
  55. package/fesm2022/elementar-rt-components-color-picker.mjs +27 -27
  56. package/fesm2022/elementar-rt-components-color-picker.mjs.map +1 -1
  57. package/fesm2022/elementar-rt-components-color-scheme.mjs +10 -10
  58. package/fesm2022/elementar-rt-components-color-scheme.mjs.map +1 -1
  59. package/fesm2022/elementar-rt-components-combobox.mjs +70 -0
  60. package/fesm2022/elementar-rt-components-combobox.mjs.map +1 -0
  61. package/fesm2022/elementar-rt-components-command-bar.mjs +12 -12
  62. package/fesm2022/elementar-rt-components-command-bar.mjs.map +1 -1
  63. package/fesm2022/elementar-rt-components-comment-editor.mjs +82 -82
  64. package/fesm2022/elementar-rt-components-comment-editor.mjs.map +1 -1
  65. package/fesm2022/elementar-rt-components-comparison-slider.mjs +10 -10
  66. package/fesm2022/elementar-rt-components-comparison-slider.mjs.map +1 -1
  67. package/fesm2022/elementar-rt-components-confirm.mjs +7 -7
  68. package/fesm2022/elementar-rt-components-confirm.mjs.map +1 -1
  69. package/fesm2022/elementar-rt-components-content-editor.mjs +121 -0
  70. package/fesm2022/elementar-rt-components-content-editor.mjs.map +1 -0
  71. package/fesm2022/elementar-rt-components-content-fade.mjs +4 -4
  72. package/fesm2022/elementar-rt-components-content-fade.mjs.map +1 -1
  73. package/fesm2022/elementar-rt-components-cookie-popup.mjs +13 -13
  74. package/fesm2022/elementar-rt-components-cookie-popup.mjs.map +1 -1
  75. package/fesm2022/elementar-rt-components-core.mjs +64 -64
  76. package/fesm2022/elementar-rt-components-core.mjs.map +1 -1
  77. package/fesm2022/elementar-rt-components-country-select.mjs +5 -5
  78. package/fesm2022/elementar-rt-components-country-select.mjs.map +1 -1
  79. package/fesm2022/elementar-rt-components-crop.mjs +4 -4
  80. package/fesm2022/elementar-rt-components-crop.mjs.map +1 -1
  81. package/fesm2022/elementar-rt-components-currency-select.mjs +5 -5
  82. package/fesm2022/elementar-rt-components-currency-select.mjs.map +1 -1
  83. package/fesm2022/elementar-rt-components-dashboard.mjs +9 -9
  84. package/fesm2022/elementar-rt-components-dashboard.mjs.map +1 -1
  85. package/fesm2022/elementar-rt-components-data-grid.mjs +120 -0
  86. package/fesm2022/elementar-rt-components-data-grid.mjs.map +1 -0
  87. package/fesm2022/elementar-rt-components-data-view.mjs +17 -17
  88. package/fesm2022/elementar-rt-components-data-view.mjs.map +1 -1
  89. package/fesm2022/elementar-rt-components-date-format-select.mjs +5 -5
  90. package/fesm2022/elementar-rt-components-date-format-select.mjs.map +1 -1
  91. package/fesm2022/elementar-rt-components-datepicker.mjs +81 -0
  92. package/fesm2022/elementar-rt-components-datepicker.mjs.map +1 -0
  93. package/fesm2022/elementar-rt-components-dialog.mjs +97 -0
  94. package/fesm2022/elementar-rt-components-dialog.mjs.map +1 -0
  95. package/fesm2022/elementar-rt-components-digit-roller.mjs +41 -0
  96. package/fesm2022/elementar-rt-components-digit-roller.mjs.map +1 -0
  97. package/fesm2022/elementar-rt-components-divider.mjs +8 -8
  98. package/fesm2022/elementar-rt-components-divider.mjs.map +1 -1
  99. package/fesm2022/elementar-rt-components-drawer.mjs +8 -8
  100. package/fesm2022/elementar-rt-components-drawer.mjs.map +1 -1
  101. package/fesm2022/elementar-rt-components-emoji-picker.mjs +7 -7
  102. package/fesm2022/elementar-rt-components-emoji-picker.mjs.map +1 -1
  103. package/fesm2022/elementar-rt-components-empty-state.mjs +35 -0
  104. package/fesm2022/elementar-rt-components-empty-state.mjs.map +1 -0
  105. package/fesm2022/elementar-rt-components-expand.mjs +4 -4
  106. package/fesm2022/elementar-rt-components-expand.mjs.map +1 -1
  107. package/fesm2022/elementar-rt-components-expansion-panel.mjs +32 -0
  108. package/fesm2022/elementar-rt-components-expansion-panel.mjs.map +1 -0
  109. package/fesm2022/elementar-rt-components-filter-builder.mjs +13 -13
  110. package/fesm2022/elementar-rt-components-filter-builder.mjs.map +1 -1
  111. package/fesm2022/elementar-rt-components-filter-select.mjs +126 -0
  112. package/fesm2022/elementar-rt-components-filter-select.mjs.map +1 -0
  113. package/fesm2022/elementar-rt-components-form-renderer-autocomplete-many-field.component-C2Ai6F2X.mjs +123 -0
  114. package/fesm2022/elementar-rt-components-form-renderer-autocomplete-many-field.component-C2Ai6F2X.mjs.map +1 -0
  115. package/fesm2022/elementar-rt-components-form-renderer-checkbox-field.component-a0XAs0-_.mjs +22 -0
  116. package/fesm2022/elementar-rt-components-form-renderer-checkbox-field.component-a0XAs0-_.mjs.map +1 -0
  117. package/fesm2022/elementar-rt-components-form-renderer-datepicker-field.component-CTVrrf43.mjs +40 -0
  118. package/fesm2022/elementar-rt-components-form-renderer-datepicker-field.component-CTVrrf43.mjs.map +1 -0
  119. package/fesm2022/{elementar-rt-components-form-renderer-divider-content.component-CjlGcU3B.mjs → elementar-rt-components-form-renderer-divider-content.component-CkYa0MOQ.mjs} +5 -5
  120. package/fesm2022/elementar-rt-components-form-renderer-divider-content.component-CkYa0MOQ.mjs.map +1 -0
  121. package/fesm2022/{elementar-rt-components-form-renderer-image-content.component-0pL2Fk0H.mjs → elementar-rt-components-form-renderer-image-content.component-B5uj3hoV.mjs} +5 -5
  122. package/fesm2022/elementar-rt-components-form-renderer-image-content.component-B5uj3hoV.mjs.map +1 -0
  123. package/fesm2022/elementar-rt-components-form-renderer-input-field.component-DnaWJIK9.mjs +33 -0
  124. package/fesm2022/elementar-rt-components-form-renderer-input-field.component-DnaWJIK9.mjs.map +1 -0
  125. package/fesm2022/elementar-rt-components-form-renderer-radio-group-field.component-9BLv1MsP.mjs +38 -0
  126. package/fesm2022/elementar-rt-components-form-renderer-radio-group-field.component-9BLv1MsP.mjs.map +1 -0
  127. package/fesm2022/elementar-rt-components-form-renderer-select-field.component-C97pIEdh.mjs +39 -0
  128. package/fesm2022/elementar-rt-components-form-renderer-select-field.component-C97pIEdh.mjs.map +1 -0
  129. package/fesm2022/{elementar-rt-components-form-renderer-text-content.component-BmFyUG06.mjs → elementar-rt-components-form-renderer-text-content.component-CJxCc5vX.mjs} +5 -5
  130. package/fesm2022/elementar-rt-components-form-renderer-text-content.component-CJxCc5vX.mjs.map +1 -0
  131. package/fesm2022/elementar-rt-components-form-renderer-textarea-field.component-CCtWiJOk.mjs +37 -0
  132. package/fesm2022/elementar-rt-components-form-renderer-textarea-field.component-CCtWiJOk.mjs.map +1 -0
  133. package/fesm2022/elementar-rt-components-form-renderer-timezone-field.component-GvZgdvUX.mjs +35 -0
  134. package/fesm2022/elementar-rt-components-form-renderer-timezone-field.component-GvZgdvUX.mjs.map +1 -0
  135. package/fesm2022/elementar-rt-components-form-renderer-toggle-field.component-DBiIiV-9.mjs +22 -0
  136. package/fesm2022/elementar-rt-components-form-renderer-toggle-field.component-DBiIiV-9.mjs.map +1 -0
  137. package/fesm2022/elementar-rt-components-form-renderer.mjs +29 -29
  138. package/fesm2022/elementar-rt-components-form-renderer.mjs.map +1 -1
  139. package/fesm2022/elementar-rt-components-gauge.mjs +8 -8
  140. package/fesm2022/elementar-rt-components-gauge.mjs.map +1 -1
  141. package/fesm2022/elementar-rt-components-grid.mjs +37 -0
  142. package/fesm2022/elementar-rt-components-grid.mjs.map +1 -0
  143. package/fesm2022/elementar-rt-components-guided-tour.mjs +161 -0
  144. package/fesm2022/elementar-rt-components-guided-tour.mjs.map +1 -0
  145. package/fesm2022/elementar-rt-components-headless-stepper.mjs +72 -0
  146. package/fesm2022/elementar-rt-components-headless-stepper.mjs.map +1 -0
  147. package/fesm2022/elementar-rt-components-icon.mjs +4 -4
  148. package/fesm2022/elementar-rt-components-icon.mjs.map +1 -1
  149. package/fesm2022/elementar-rt-components-image-placeholder.mjs +30 -0
  150. package/fesm2022/elementar-rt-components-image-placeholder.mjs.map +1 -0
  151. package/fesm2022/elementar-rt-components-image-resizer.mjs +10 -10
  152. package/fesm2022/elementar-rt-components-image-resizer.mjs.map +1 -1
  153. package/fesm2022/elementar-rt-components-image-viewer.mjs +19 -19
  154. package/fesm2022/elementar-rt-components-image-viewer.mjs.map +1 -1
  155. package/fesm2022/elementar-rt-components-image-zoom-viewer.mjs +97 -0
  156. package/fesm2022/elementar-rt-components-image-zoom-viewer.mjs.map +1 -0
  157. package/fesm2022/elementar-rt-components-incidents.mjs +49 -49
  158. package/fesm2022/elementar-rt-components-incidents.mjs.map +1 -1
  159. package/fesm2022/elementar-rt-components-inline-text-edit.mjs +4 -4
  160. package/fesm2022/elementar-rt-components-inline-text-edit.mjs.map +1 -1
  161. package/fesm2022/elementar-rt-components-input-mask.mjs +9 -9
  162. package/fesm2022/elementar-rt-components-input-mask.mjs.map +1 -1
  163. package/fesm2022/elementar-rt-components-input-validator.mjs.map +1 -1
  164. package/fesm2022/elementar-rt-components-kanban-board.mjs +7 -7
  165. package/fesm2022/elementar-rt-components-kanban-board.mjs.map +1 -1
  166. package/fesm2022/elementar-rt-components-keyboard.mjs +63 -0
  167. package/fesm2022/elementar-rt-components-keyboard.mjs.map +1 -0
  168. package/fesm2022/elementar-rt-components-layout.mjs +32 -32
  169. package/fesm2022/elementar-rt-components-layout.mjs.map +1 -1
  170. package/fesm2022/elementar-rt-components-list.mjs +43 -0
  171. package/fesm2022/elementar-rt-components-list.mjs.map +1 -0
  172. package/fesm2022/elementar-rt-components-logo.mjs +12 -12
  173. package/fesm2022/elementar-rt-components-logo.mjs.map +1 -1
  174. package/fesm2022/elementar-rt-components-marquee.mjs +7 -7
  175. package/fesm2022/elementar-rt-components-marquee.mjs.map +1 -1
  176. package/fesm2022/elementar-rt-components-menu.mjs +94 -0
  177. package/fesm2022/elementar-rt-components-menu.mjs.map +1 -0
  178. package/fesm2022/elementar-rt-components-micro-chart.mjs +24 -24
  179. package/fesm2022/elementar-rt-components-micro-chart.mjs.map +1 -1
  180. package/fesm2022/elementar-rt-components-multi-select.mjs +66 -0
  181. package/fesm2022/elementar-rt-components-multi-select.mjs.map +1 -0
  182. package/fesm2022/elementar-rt-components-navigation.mjs +39 -39
  183. package/fesm2022/elementar-rt-components-navigation.mjs.map +1 -1
  184. package/fesm2022/elementar-rt-components-notifications.mjs +40 -40
  185. package/fesm2022/elementar-rt-components-notifications.mjs.map +1 -1
  186. package/fesm2022/elementar-rt-components-number-input.mjs +17 -17
  187. package/fesm2022/elementar-rt-components-number-input.mjs.map +1 -1
  188. package/fesm2022/elementar-rt-components-overlay-scrollbar.mjs +4 -4
  189. package/fesm2022/elementar-rt-components-overlay-scrollbar.mjs.map +1 -1
  190. package/fesm2022/elementar-rt-components-overlay.mjs.map +1 -1
  191. package/fesm2022/elementar-rt-components-page-loading-bar.mjs +4 -4
  192. package/fesm2022/elementar-rt-components-page-loading-bar.mjs.map +1 -1
  193. package/fesm2022/elementar-rt-components-paginator.mjs +50 -0
  194. package/fesm2022/elementar-rt-components-paginator.mjs.map +1 -0
  195. package/fesm2022/elementar-rt-components-panel.mjs +24 -24
  196. package/fesm2022/elementar-rt-components-panel.mjs.map +1 -1
  197. package/fesm2022/elementar-rt-components-password-strength.mjs +13 -13
  198. package/fesm2022/elementar-rt-components-password-strength.mjs.map +1 -1
  199. package/fesm2022/elementar-rt-components-phone-input.mjs +11 -11
  200. package/fesm2022/elementar-rt-components-phone-input.mjs.map +1 -1
  201. package/fesm2022/elementar-rt-components-pin-input.mjs +8 -8
  202. package/fesm2022/elementar-rt-components-pin-input.mjs.map +1 -1
  203. package/fesm2022/elementar-rt-components-popover.mjs +10 -10
  204. package/fesm2022/elementar-rt-components-popover.mjs.map +1 -1
  205. package/fesm2022/elementar-rt-components-progress-bar.mjs +32 -0
  206. package/fesm2022/elementar-rt-components-progress-bar.mjs.map +1 -0
  207. package/fesm2022/elementar-rt-components-progress-spinner.mjs +94 -0
  208. package/fesm2022/elementar-rt-components-progress-spinner.mjs.map +1 -0
  209. package/fesm2022/elementar-rt-components-radio-card.mjs +17 -17
  210. package/fesm2022/elementar-rt-components-radio-card.mjs.map +1 -1
  211. package/fesm2022/elementar-rt-components-rail-nav.mjs +12 -12
  212. package/fesm2022/elementar-rt-components-rail-nav.mjs.map +1 -1
  213. package/fesm2022/elementar-rt-components-rating.mjs +84 -0
  214. package/fesm2022/elementar-rt-components-rating.mjs.map +1 -0
  215. package/fesm2022/elementar-rt-components-resizable-container.mjs +4 -4
  216. package/fesm2022/elementar-rt-components-resizable-container.mjs.map +1 -1
  217. package/fesm2022/elementar-rt-components-screen-loader.mjs +4 -4
  218. package/fesm2022/elementar-rt-components-screen-loader.mjs.map +1 -1
  219. package/fesm2022/elementar-rt-components-scroll-spy.mjs +16 -16
  220. package/fesm2022/elementar-rt-components-scroll-spy.mjs.map +1 -1
  221. package/fesm2022/elementar-rt-components-segmented.mjs +12 -12
  222. package/fesm2022/elementar-rt-components-segmented.mjs.map +1 -1
  223. package/fesm2022/elementar-rt-components-side-panel.mjs +8 -8
  224. package/fesm2022/elementar-rt-components-side-panel.mjs.map +1 -1
  225. package/fesm2022/elementar-rt-components-sidebar.mjs +61 -61
  226. package/fesm2022/elementar-rt-components-sidebar.mjs.map +1 -1
  227. package/fesm2022/elementar-rt-components-sidenav.mjs +72 -0
  228. package/fesm2022/elementar-rt-components-sidenav.mjs.map +1 -0
  229. package/fesm2022/elementar-rt-components-signature-pad.mjs +4 -4
  230. package/fesm2022/elementar-rt-components-signature-pad.mjs.map +1 -1
  231. package/fesm2022/elementar-rt-components-skeleton.mjs +16 -16
  232. package/fesm2022/elementar-rt-components-skeleton.mjs.map +1 -1
  233. package/fesm2022/elementar-rt-components-slider.mjs +64 -0
  234. package/fesm2022/elementar-rt-components-slider.mjs.map +1 -0
  235. package/fesm2022/elementar-rt-components-snackbar.mjs +81 -0
  236. package/fesm2022/elementar-rt-components-snackbar.mjs.map +1 -0
  237. package/fesm2022/elementar-rt-components-sort.mjs +69 -0
  238. package/fesm2022/elementar-rt-components-sort.mjs.map +1 -0
  239. package/fesm2022/elementar-rt-components-splash-screen.mjs +4 -4
  240. package/fesm2022/elementar-rt-components-splash-screen.mjs.map +1 -1
  241. package/fesm2022/elementar-rt-components-split-pane.mjs +70 -0
  242. package/fesm2022/elementar-rt-components-split-pane.mjs.map +1 -0
  243. package/fesm2022/elementar-rt-components-stat-card.mjs +27 -0
  244. package/fesm2022/elementar-rt-components-stat-card.mjs.map +1 -0
  245. package/fesm2022/elementar-rt-components-step-tracker.mjs +30 -0
  246. package/fesm2022/elementar-rt-components-step-tracker.mjs.map +1 -0
  247. package/fesm2022/elementar-rt-components-stepper.mjs +6 -6
  248. package/fesm2022/elementar-rt-components-stepper.mjs.map +1 -1
  249. package/fesm2022/elementar-rt-components-suggestions.mjs +18 -18
  250. package/fesm2022/elementar-rt-components-suggestions.mjs.map +1 -1
  251. package/fesm2022/elementar-rt-components-tab-panel.mjs +48 -48
  252. package/fesm2022/elementar-rt-components-tab-panel.mjs.map +1 -1
  253. package/fesm2022/elementar-rt-components-table.mjs +84 -0
  254. package/fesm2022/elementar-rt-components-table.mjs.map +1 -0
  255. package/fesm2022/elementar-rt-components-tabs.mjs +59 -0
  256. package/fesm2022/elementar-rt-components-tabs.mjs.map +1 -0
  257. package/fesm2022/elementar-rt-components-tag.mjs +28 -0
  258. package/fesm2022/elementar-rt-components-tag.mjs.map +1 -0
  259. package/fesm2022/elementar-rt-components-text-editor.mjs +85 -85
  260. package/fesm2022/elementar-rt-components-text-editor.mjs.map +1 -1
  261. package/fesm2022/elementar-rt-components-thumbnail-maker.mjs +7 -7
  262. package/fesm2022/elementar-rt-components-thumbnail-maker.mjs.map +1 -1
  263. package/fesm2022/elementar-rt-components-tiles.mjs +35 -0
  264. package/fesm2022/elementar-rt-components-tiles.mjs.map +1 -0
  265. package/fesm2022/elementar-rt-components-timeline.mjs +39 -39
  266. package/fesm2022/elementar-rt-components-timeline.mjs.map +1 -1
  267. package/fesm2022/elementar-rt-components-timepicker.mjs +75 -0
  268. package/fesm2022/elementar-rt-components-timepicker.mjs.map +1 -0
  269. package/fesm2022/elementar-rt-components-timezone-select.mjs +8 -8
  270. package/fesm2022/elementar-rt-components-timezone-select.mjs.map +1 -1
  271. package/fesm2022/elementar-rt-components-toast.mjs +98 -0
  272. package/fesm2022/elementar-rt-components-toast.mjs.map +1 -0
  273. package/fesm2022/elementar-rt-components-toolbar.mjs +24 -0
  274. package/fesm2022/elementar-rt-components-toolbar.mjs.map +1 -0
  275. package/fesm2022/elementar-rt-components-tooltip.mjs +119 -0
  276. package/fesm2022/elementar-rt-components-tooltip.mjs.map +1 -0
  277. package/fesm2022/elementar-rt-components-tree.mjs +77 -0
  278. package/fesm2022/elementar-rt-components-tree.mjs.map +1 -0
  279. package/fesm2022/elementar-rt-components-upload.mjs +57 -57
  280. package/fesm2022/elementar-rt-components-upload.mjs.map +1 -1
  281. package/fesm2022/elementar-rt-components-video-player.mjs +144 -0
  282. package/fesm2022/elementar-rt-components-video-player.mjs.map +1 -0
  283. package/fesm2022/elementar-rt-components-video-viewer.mjs +98 -0
  284. package/fesm2022/elementar-rt-components-video-viewer.mjs.map +1 -0
  285. package/fesm2022/elementar-rt-components.mjs.map +1 -1
  286. package/filter-select/index.d.ts +40 -0
  287. package/grid/index.d.ts +24 -0
  288. package/guided-tour/index.d.ts +45 -0
  289. package/headless-stepper/index.d.ts +30 -0
  290. package/image-placeholder/index.d.ts +18 -0
  291. package/image-zoom-viewer/index.d.ts +33 -0
  292. package/keyboard/index.d.ts +13 -0
  293. package/list/index.d.ts +18 -0
  294. package/menu/index.d.ts +38 -0
  295. package/multi-select/index.d.ts +36 -0
  296. package/package.json +225 -33
  297. package/paginator/index.d.ts +26 -0
  298. package/progress-bar/index.d.ts +17 -0
  299. package/progress-spinner/index.d.ts +19 -0
  300. package/rating/index.d.ts +30 -0
  301. package/sidenav/index.d.ts +31 -0
  302. package/slider/index.d.ts +26 -0
  303. package/snackbar/index.d.ts +36 -0
  304. package/sort/index.d.ts +27 -0
  305. package/split-pane/index.d.ts +25 -0
  306. package/stat-card/index.d.ts +16 -0
  307. package/step-tracker/index.d.ts +21 -0
  308. package/styles/_common.scss +777 -776
  309. package/styles/themes/cyan-orange.scss +41 -41
  310. package/styles/themes/default.scss +5 -5
  311. package/styles/themes/magenta-violet.scss +41 -41
  312. package/styles/themes/rose-red.scss +41 -41
  313. package/table/index.d.ts +44 -0
  314. package/tabs/index.d.ts +26 -0
  315. package/tag/index.d.ts +17 -0
  316. package/tiles/index.d.ts +14 -0
  317. package/timepicker/index.d.ts +29 -0
  318. package/toast/index.d.ts +48 -0
  319. package/toolbar/index.d.ts +10 -0
  320. package/tooltip/index.d.ts +30 -0
  321. package/tree/index.d.ts +42 -0
  322. package/video-player/index.d.ts +49 -0
  323. package/video-viewer/index.d.ts +33 -0
  324. package/fesm2022/elementar-rt-components-form-renderer-autocomplete-many-field.component-AqEghjO_.mjs +0 -123
  325. package/fesm2022/elementar-rt-components-form-renderer-autocomplete-many-field.component-AqEghjO_.mjs.map +0 -1
  326. package/fesm2022/elementar-rt-components-form-renderer-checkbox-field.component-CUKmZGFq.mjs +0 -22
  327. package/fesm2022/elementar-rt-components-form-renderer-checkbox-field.component-CUKmZGFq.mjs.map +0 -1
  328. package/fesm2022/elementar-rt-components-form-renderer-datepicker-field.component-DihIRWMt.mjs +0 -40
  329. package/fesm2022/elementar-rt-components-form-renderer-datepicker-field.component-DihIRWMt.mjs.map +0 -1
  330. package/fesm2022/elementar-rt-components-form-renderer-divider-content.component-CjlGcU3B.mjs.map +0 -1
  331. package/fesm2022/elementar-rt-components-form-renderer-image-content.component-0pL2Fk0H.mjs.map +0 -1
  332. package/fesm2022/elementar-rt-components-form-renderer-input-field.component-X2sKvj6J.mjs +0 -33
  333. package/fesm2022/elementar-rt-components-form-renderer-input-field.component-X2sKvj6J.mjs.map +0 -1
  334. package/fesm2022/elementar-rt-components-form-renderer-radio-group-field.component-DWXZAA3F.mjs +0 -38
  335. package/fesm2022/elementar-rt-components-form-renderer-radio-group-field.component-DWXZAA3F.mjs.map +0 -1
  336. package/fesm2022/elementar-rt-components-form-renderer-select-field.component-Cx9DZoD6.mjs +0 -39
  337. package/fesm2022/elementar-rt-components-form-renderer-select-field.component-Cx9DZoD6.mjs.map +0 -1
  338. package/fesm2022/elementar-rt-components-form-renderer-text-content.component-BmFyUG06.mjs.map +0 -1
  339. package/fesm2022/elementar-rt-components-form-renderer-textarea-field.component-D9KmE049.mjs +0 -37
  340. package/fesm2022/elementar-rt-components-form-renderer-textarea-field.component-D9KmE049.mjs.map +0 -1
  341. package/fesm2022/elementar-rt-components-form-renderer-timezone-field.component-BroP_Q4P.mjs +0 -35
  342. package/fesm2022/elementar-rt-components-form-renderer-timezone-field.component-BroP_Q4P.mjs.map +0 -1
  343. package/fesm2022/elementar-rt-components-form-renderer-toggle-field.component-nGbtVi1_.mjs +0 -22
  344. package/fesm2022/elementar-rt-components-form-renderer-toggle-field.component-nGbtVi1_.mjs.map +0 -1
@@ -0,0 +1,120 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, booleanAttribute, output, signal, computed, ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import { NgTemplateOutlet } from '@angular/common';
4
+ import { CdkVirtualScrollViewport, CdkFixedSizeVirtualScroll, CdkVirtualForOf } from '@angular/cdk/scrolling';
5
+
6
+ class DataGridComponent {
7
+ rows = input([], ...(ngDevMode ? [{ debugName: "rows" }] : []));
8
+ columns = input([], ...(ngDevMode ? [{ debugName: "columns" }] : []));
9
+ rowHeight = input(48, ...(ngDevMode ? [{ debugName: "rowHeight" }] : []));
10
+ virtualScrollHeight = input(400, ...(ngDevMode ? [{ debugName: "virtualScrollHeight" }] : []));
11
+ selectable = input(false, ...(ngDevMode ? [{ debugName: "selectable", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
12
+ multiSelect = input(false, ...(ngDevMode ? [{ debugName: "multiSelect", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
13
+ loading = input(false, ...(ngDevMode ? [{ debugName: "loading", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
14
+ emptyMessage = input('No data available', ...(ngDevMode ? [{ debugName: "emptyMessage" }] : []));
15
+ sortChange = output();
16
+ cellEdit = output();
17
+ rowSelect = output();
18
+ _sortField = signal('', ...(ngDevMode ? [{ debugName: "_sortField" }] : []));
19
+ _sortDir = signal('asc', ...(ngDevMode ? [{ debugName: "_sortDir" }] : []));
20
+ _selectedRows = signal(new Set(), ...(ngDevMode ? [{ debugName: "_selectedRows" }] : []));
21
+ _editingCell = signal(null, ...(ngDevMode ? [{ debugName: "_editingCell" }] : []));
22
+ _editValue = signal('', ...(ngDevMode ? [{ debugName: "_editValue" }] : []));
23
+ _sortedRows = computed(() => {
24
+ const field = this._sortField();
25
+ const dir = this._sortDir();
26
+ const data = [...this.rows()];
27
+ if (!field)
28
+ return data;
29
+ return data.sort((a, b) => {
30
+ const av = a[field];
31
+ const bv = b[field];
32
+ const cmp = typeof av === 'number' && typeof bv === 'number'
33
+ ? av - bv
34
+ : String(av).localeCompare(String(bv));
35
+ return dir === 'asc' ? cmp : -cmp;
36
+ });
37
+ }, ...(ngDevMode ? [{ debugName: "_sortedRows" }] : []));
38
+ _sort(col) {
39
+ if (!col.sortable)
40
+ return;
41
+ if (this._sortField() === col.field) {
42
+ this._sortDir.set(this._sortDir() === 'asc' ? 'desc' : 'asc');
43
+ }
44
+ else {
45
+ this._sortField.set(col.field);
46
+ this._sortDir.set('asc');
47
+ }
48
+ this.sortChange.emit({ field: this._sortField(), direction: this._sortDir() });
49
+ }
50
+ _isSelected(row) { return this._selectedRows().has(row); }
51
+ _allSelected = computed(() => {
52
+ const rows = this._sortedRows();
53
+ return rows.length > 0 && rows.every(r => this._selectedRows().has(r));
54
+ }, ...(ngDevMode ? [{ debugName: "_allSelected" }] : []));
55
+ _toggleRow(row) {
56
+ if (!this.selectable())
57
+ return;
58
+ const sel = new Set(this._selectedRows());
59
+ if (sel.has(row)) {
60
+ sel.delete(row);
61
+ }
62
+ else {
63
+ if (!this.multiSelect())
64
+ sel.clear();
65
+ sel.add(row);
66
+ }
67
+ this._selectedRows.set(sel);
68
+ this.rowSelect.emit([...sel]);
69
+ }
70
+ _toggleAll() {
71
+ const rows = this._sortedRows();
72
+ const sel = this._allSelected() ? new Set() : new Set(rows);
73
+ this._selectedRows.set(sel);
74
+ this.rowSelect.emit([...sel]);
75
+ }
76
+ _startEdit(rowIdx, col, value) {
77
+ if (!col.editable)
78
+ return;
79
+ this._editingCell.set({ rowIdx, field: col.field });
80
+ this._editValue.set(value);
81
+ }
82
+ _commitEdit(row, col) {
83
+ const editing = this._editingCell();
84
+ if (!editing)
85
+ return;
86
+ const oldValue = row[col.field];
87
+ const newValue = this._editValue();
88
+ row[col.field] = newValue;
89
+ this.cellEdit.emit({ row, field: col.field, oldValue, newValue });
90
+ this._editingCell.set(null);
91
+ }
92
+ _isEditing(rowIdx, field) {
93
+ const e = this._editingCell();
94
+ return !!e && e.rowIdx === rowIdx && e.field === field;
95
+ }
96
+ _getCellValue(row, col) {
97
+ return row[col.field];
98
+ }
99
+ _colWidth(col) {
100
+ return col.width ? `${col.width}px` : col.minWidth ? `minmax(${col.minWidth}px, 1fr)` : '1fr';
101
+ }
102
+ _gridTemplateColumns = computed(() => {
103
+ const cols = this.columns();
104
+ const check = this.selectable() ? '--spacing(10) ' : '';
105
+ return check + cols.map(c => this._colWidth(c)).join(' ');
106
+ }, ...(ngDevMode ? [{ debugName: "_gridTemplateColumns" }] : []));
107
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DataGridComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
108
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: DataGridComponent, isStandalone: true, selector: "emr-data-grid", inputs: { rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, rowHeight: { classPropertyName: "rowHeight", publicName: "rowHeight", isSignal: true, isRequired: false, transformFunction: null }, virtualScrollHeight: { classPropertyName: "virtualScrollHeight", publicName: "virtualScrollHeight", isSignal: true, isRequired: false, transformFunction: null }, selectable: { classPropertyName: "selectable", publicName: "selectable", isSignal: true, isRequired: false, transformFunction: null }, multiSelect: { classPropertyName: "multiSelect", publicName: "multiSelect", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, emptyMessage: { classPropertyName: "emptyMessage", publicName: "emptyMessage", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sortChange: "sortChange", cellEdit: "cellEdit", rowSelect: "rowSelect" }, ngImport: i0, template: "<div class=\"grid-container\" [style.--grid-cols]=\"_gridTemplateColumns()\">\n <!-- Header -->\n <div class=\"grid-header\">\n @if (selectable()) {\n <div class=\"grid-cell grid-cell--check\">\n @if (multiSelect()) {\n <input type=\"checkbox\" [checked]=\"_allSelected()\" (change)=\"_toggleAll()\" />\n }\n </div>\n }\n @for (col of columns(); track col.field) {\n <div\n class=\"grid-cell grid-cell--header\"\n [attr.data-sortable]=\"col.sortable || null\"\n [attr.data-sorted]=\"_sortField() === col.field || null\"\n [attr.data-sort-dir]=\"_sortField() === col.field ? _sortDir() : null\"\n (click)=\"_sort(col)\"\n >\n <span>{{ col.header }}</span>\n @if (col.sortable) {\n <span class=\"sort-icon\">\n @if (_sortField() === col.field && _sortDir() === 'asc') { \u2191 }\n @else if (_sortField() === col.field && _sortDir() === 'desc') { \u2193 }\n @else { \u2195 }\n </span>\n }\n </div>\n }\n </div>\n\n <!-- Virtual scroll body -->\n @if (loading()) {\n <div class=\"grid-loading\">\n <div class=\"loading-spinner\"></div>\n <span>Loading\u2026</span>\n </div>\n } @else if (_sortedRows().length === 0) {\n <div class=\"grid-empty\">{{ emptyMessage() }}</div>\n } @else {\n <cdk-virtual-scroll-viewport\n class=\"grid-body\"\n [itemSize]=\"rowHeight()\"\n [style.height.px]=\"virtualScrollHeight()\"\n >\n <div\n *cdkVirtualFor=\"let row of _sortedRows(); let i = index\"\n class=\"grid-row\"\n [attr.data-selected]=\"_isSelected(row) || null\"\n (click)=\"_toggleRow(row)\"\n >\n @if (selectable()) {\n <div class=\"grid-cell grid-cell--check\">\n <input type=\"checkbox\" [checked]=\"_isSelected(row)\" (click)=\"$event.stopPropagation(); _toggleRow(row)\" />\n </div>\n }\n @for (col of columns(); track col.field) {\n <div\n class=\"grid-cell\"\n [attr.data-editable]=\"col.editable || null\"\n (dblclick)=\"_startEdit(i, col, _getCellValue(row, col))\"\n >\n @if (_isEditing(i, col.field)) {\n <input\n class=\"cell-input\"\n [value]=\"_editValue()\"\n (input)=\"_editValue.set($any($event.target).value)\"\n (blur)=\"_commitEdit(row, col)\"\n (keydown.enter)=\"_commitEdit(row, col)\"\n (keydown.escape)=\"_editingCell.set(null)\"\n autofocus\n />\n } @else if (col.cellTemplate) {\n <ng-container *ngTemplateOutlet=\"col.cellTemplate; context: { $implicit: row, value: _getCellValue(row, col) }\"></ng-container>\n } @else {\n {{ _getCellValue(row, col) }}\n }\n </div>\n }\n </div>\n </cdk-virtual-scroll-viewport>\n }\n</div>\n", styles: [":host{display:block;overflow:hidden;border:1px solid var(--color-outline-variant);border-radius:.75rem;background:var(--color-surface)}.grid-container{--grid-cols: 1fr}.grid-header{display:grid;grid-template-columns:var(--grid-cols);background:var(--color-surface-container);border-bottom:2px solid var(--color-outline-variant);position:sticky;top:0;z-index:1}.grid-row{display:grid;grid-template-columns:var(--grid-cols);border-bottom:1px solid var(--color-outline-variant);transition:background .1s ease}.grid-row:hover{background:var(--color-surface-container)}.grid-row[data-selected]{background:var(--color-primary-container)}.grid-row:last-child{border-bottom:none}.grid-cell{display:flex;align-items:center;padding:0 calc(var(--spacing, .25rem) * 3);font-size:.875rem;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;min-width:0}.grid-cell--header{font-weight:600;font-size:.75rem;color:var(--color-on-surface-variant);text-transform:uppercase;letter-spacing:.05em;gap:var(--spacing, .25rem);-webkit-user-select:none;user-select:none}.grid-cell--header[data-sortable]{cursor:pointer}.grid-cell--header[data-sortable]:hover{color:var(--color-on-surface)}.grid-cell--header[data-sorted]{color:var(--color-primary)}.grid-cell--check{justify-content:center;padding:0}.grid-cell[data-editable]{cursor:cell}.sort-icon{font-size:.75rem;opacity:.7}.cell-input{width:100%;background:var(--color-surface);border:2px solid var(--color-primary);border-radius:.25rem;padding:calc(var(--spacing, .25rem) * .5) var(--spacing, .25rem);font-size:.875rem;outline:none;color:var(--color-on-surface)}.grid-body{display:block}.grid-loading,.grid-empty{display:flex;align-items:center;justify-content:center;gap:calc(var(--spacing, .25rem) * 3);padding:calc(var(--spacing, .25rem) * 10);color:var(--color-on-surface-variant);font-size:.875rem}.loading-spinner{width:calc(var(--spacing, .25rem) * 5);height:calc(var(--spacing, .25rem) * 5);border:2px solid var(--color-outline-variant);border-top-color:var(--color-primary);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}\n/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
109
+ }
110
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DataGridComponent, decorators: [{
111
+ type: Component,
112
+ args: [{ selector: 'emr-data-grid', standalone: true, imports: [NgTemplateOutlet, CdkVirtualScrollViewport, CdkFixedSizeVirtualScroll, CdkVirtualForOf], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"grid-container\" [style.--grid-cols]=\"_gridTemplateColumns()\">\n <!-- Header -->\n <div class=\"grid-header\">\n @if (selectable()) {\n <div class=\"grid-cell grid-cell--check\">\n @if (multiSelect()) {\n <input type=\"checkbox\" [checked]=\"_allSelected()\" (change)=\"_toggleAll()\" />\n }\n </div>\n }\n @for (col of columns(); track col.field) {\n <div\n class=\"grid-cell grid-cell--header\"\n [attr.data-sortable]=\"col.sortable || null\"\n [attr.data-sorted]=\"_sortField() === col.field || null\"\n [attr.data-sort-dir]=\"_sortField() === col.field ? _sortDir() : null\"\n (click)=\"_sort(col)\"\n >\n <span>{{ col.header }}</span>\n @if (col.sortable) {\n <span class=\"sort-icon\">\n @if (_sortField() === col.field && _sortDir() === 'asc') { \u2191 }\n @else if (_sortField() === col.field && _sortDir() === 'desc') { \u2193 }\n @else { \u2195 }\n </span>\n }\n </div>\n }\n </div>\n\n <!-- Virtual scroll body -->\n @if (loading()) {\n <div class=\"grid-loading\">\n <div class=\"loading-spinner\"></div>\n <span>Loading\u2026</span>\n </div>\n } @else if (_sortedRows().length === 0) {\n <div class=\"grid-empty\">{{ emptyMessage() }}</div>\n } @else {\n <cdk-virtual-scroll-viewport\n class=\"grid-body\"\n [itemSize]=\"rowHeight()\"\n [style.height.px]=\"virtualScrollHeight()\"\n >\n <div\n *cdkVirtualFor=\"let row of _sortedRows(); let i = index\"\n class=\"grid-row\"\n [attr.data-selected]=\"_isSelected(row) || null\"\n (click)=\"_toggleRow(row)\"\n >\n @if (selectable()) {\n <div class=\"grid-cell grid-cell--check\">\n <input type=\"checkbox\" [checked]=\"_isSelected(row)\" (click)=\"$event.stopPropagation(); _toggleRow(row)\" />\n </div>\n }\n @for (col of columns(); track col.field) {\n <div\n class=\"grid-cell\"\n [attr.data-editable]=\"col.editable || null\"\n (dblclick)=\"_startEdit(i, col, _getCellValue(row, col))\"\n >\n @if (_isEditing(i, col.field)) {\n <input\n class=\"cell-input\"\n [value]=\"_editValue()\"\n (input)=\"_editValue.set($any($event.target).value)\"\n (blur)=\"_commitEdit(row, col)\"\n (keydown.enter)=\"_commitEdit(row, col)\"\n (keydown.escape)=\"_editingCell.set(null)\"\n autofocus\n />\n } @else if (col.cellTemplate) {\n <ng-container *ngTemplateOutlet=\"col.cellTemplate; context: { $implicit: row, value: _getCellValue(row, col) }\"></ng-container>\n } @else {\n {{ _getCellValue(row, col) }}\n }\n </div>\n }\n </div>\n </cdk-virtual-scroll-viewport>\n }\n</div>\n", styles: [":host{display:block;overflow:hidden;border:1px solid var(--color-outline-variant);border-radius:.75rem;background:var(--color-surface)}.grid-container{--grid-cols: 1fr}.grid-header{display:grid;grid-template-columns:var(--grid-cols);background:var(--color-surface-container);border-bottom:2px solid var(--color-outline-variant);position:sticky;top:0;z-index:1}.grid-row{display:grid;grid-template-columns:var(--grid-cols);border-bottom:1px solid var(--color-outline-variant);transition:background .1s ease}.grid-row:hover{background:var(--color-surface-container)}.grid-row[data-selected]{background:var(--color-primary-container)}.grid-row:last-child{border-bottom:none}.grid-cell{display:flex;align-items:center;padding:0 calc(var(--spacing, .25rem) * 3);font-size:.875rem;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;min-width:0}.grid-cell--header{font-weight:600;font-size:.75rem;color:var(--color-on-surface-variant);text-transform:uppercase;letter-spacing:.05em;gap:var(--spacing, .25rem);-webkit-user-select:none;user-select:none}.grid-cell--header[data-sortable]{cursor:pointer}.grid-cell--header[data-sortable]:hover{color:var(--color-on-surface)}.grid-cell--header[data-sorted]{color:var(--color-primary)}.grid-cell--check{justify-content:center;padding:0}.grid-cell[data-editable]{cursor:cell}.sort-icon{font-size:.75rem;opacity:.7}.cell-input{width:100%;background:var(--color-surface);border:2px solid var(--color-primary);border-radius:.25rem;padding:calc(var(--spacing, .25rem) * .5) var(--spacing, .25rem);font-size:.875rem;outline:none;color:var(--color-on-surface)}.grid-body{display:block}.grid-loading,.grid-empty{display:flex;align-items:center;justify-content:center;gap:calc(var(--spacing, .25rem) * 3);padding:calc(var(--spacing, .25rem) * 10);color:var(--color-on-surface-variant);font-size:.875rem}.loading-spinner{width:calc(var(--spacing, .25rem) * 5);height:calc(var(--spacing, .25rem) * 5);border:2px solid var(--color-outline-variant);border-top-color:var(--color-primary);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}\n/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\n"] }]
113
+ }], propDecorators: { rows: [{ type: i0.Input, args: [{ isSignal: true, alias: "rows", required: false }] }], columns: [{ type: i0.Input, args: [{ isSignal: true, alias: "columns", required: false }] }], rowHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowHeight", required: false }] }], virtualScrollHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "virtualScrollHeight", required: false }] }], selectable: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectable", required: false }] }], multiSelect: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiSelect", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], emptyMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyMessage", required: false }] }], sortChange: [{ type: i0.Output, args: ["sortChange"] }], cellEdit: [{ type: i0.Output, args: ["cellEdit"] }], rowSelect: [{ type: i0.Output, args: ["rowSelect"] }] } });
114
+
115
+ /**
116
+ * Generated bundle index. Do not edit.
117
+ */
118
+
119
+ export { DataGridComponent };
120
+ //# sourceMappingURL=elementar-rt-components-data-grid.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elementar-rt-components-data-grid.mjs","sources":["../../../projects/components/data-grid/src/data-grid/data-grid.component.ts","../../../projects/components/data-grid/src/data-grid/data-grid.component.html","../../../projects/components/data-grid/elementar-rt-components-data-grid.ts"],"sourcesContent":["import {\n Component, input, output, signal, computed,\n ChangeDetectionStrategy, booleanAttribute, contentChildren, TemplateRef\n} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { CdkVirtualScrollViewport, CdkFixedSizeVirtualScroll, CdkVirtualForOf } from '@angular/cdk/scrolling';\n\nexport interface DataGridColumn<T = unknown> {\n field: keyof T & string;\n header: string;\n width?: number;\n minWidth?: number;\n sortable?: boolean;\n editable?: boolean;\n frozen?: boolean;\n cellTemplate?: TemplateRef<{ $implicit: T; value: unknown }>;\n}\n\nexport interface SortEvent {\n field: string;\n direction: 'asc' | 'desc';\n}\n\nexport interface CellEditEvent<T = unknown> {\n row: T;\n field: string;\n oldValue: unknown;\n newValue: unknown;\n}\n\n@Component({\n selector: 'emr-data-grid',\n standalone: true,\n imports: [NgTemplateOutlet, CdkVirtualScrollViewport, CdkFixedSizeVirtualScroll, CdkVirtualForOf],\n templateUrl: './data-grid.component.html',\n styleUrl: './data-grid.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DataGridComponent<T extends Record<string, unknown> = Record<string, unknown>> {\n rows = input<T[]>([]);\n columns = input<DataGridColumn<T>[]>([]);\n rowHeight = input(48);\n virtualScrollHeight = input(400);\n selectable = input(false, { transform: booleanAttribute });\n multiSelect = input(false, { transform: booleanAttribute });\n loading = input(false, { transform: booleanAttribute });\n emptyMessage = input('No data available');\n\n sortChange = output<SortEvent>();\n cellEdit = output<CellEditEvent<T>>();\n rowSelect = output<T[]>();\n\n protected _sortField = signal('');\n protected _sortDir = signal<'asc' | 'desc'>('asc');\n protected _selectedRows = signal<Set<T>>(new Set());\n protected _editingCell = signal<{ rowIdx: number; field: string } | null>(null);\n protected _editValue = signal<unknown>('');\n\n protected _sortedRows = computed(() => {\n const field = this._sortField();\n const dir = this._sortDir();\n const data = [...this.rows()];\n if (!field) return data;\n return data.sort((a, b) => {\n const av = a[field];\n const bv = b[field];\n const cmp = typeof av === 'number' && typeof bv === 'number'\n ? av - bv\n : String(av).localeCompare(String(bv));\n return dir === 'asc' ? cmp : -cmp;\n });\n });\n\n protected _sort(col: DataGridColumn<T>): void {\n if (!col.sortable) return;\n if (this._sortField() === col.field) {\n this._sortDir.set(this._sortDir() === 'asc' ? 'desc' : 'asc');\n } else {\n this._sortField.set(col.field);\n this._sortDir.set('asc');\n }\n this.sortChange.emit({ field: this._sortField(), direction: this._sortDir() });\n }\n\n protected _isSelected(row: T): boolean { return this._selectedRows().has(row); }\n\n protected _allSelected = computed(() => {\n const rows = this._sortedRows();\n return rows.length > 0 && rows.every(r => this._selectedRows().has(r));\n });\n\n protected _toggleRow(row: T): void {\n if (!this.selectable()) return;\n const sel = new Set(this._selectedRows());\n if (sel.has(row)) {\n sel.delete(row);\n } else {\n if (!this.multiSelect()) sel.clear();\n sel.add(row);\n }\n this._selectedRows.set(sel);\n this.rowSelect.emit([...sel]);\n }\n\n protected _toggleAll(): void {\n const rows = this._sortedRows();\n const sel = this._allSelected() ? new Set<T>() : new Set(rows);\n this._selectedRows.set(sel);\n this.rowSelect.emit([...sel]);\n }\n\n protected _startEdit(rowIdx: number, col: DataGridColumn<T>, value: unknown): void {\n if (!col.editable) return;\n this._editingCell.set({ rowIdx, field: col.field });\n this._editValue.set(value);\n }\n\n protected _commitEdit(row: T, col: DataGridColumn<T>): void {\n const editing = this._editingCell();\n if (!editing) return;\n const oldValue = row[col.field];\n const newValue = this._editValue();\n (row as Record<string, unknown>)[col.field] = newValue;\n this.cellEdit.emit({ row, field: col.field, oldValue, newValue });\n this._editingCell.set(null);\n }\n\n protected _isEditing(rowIdx: number, field: string): boolean {\n const e = this._editingCell();\n return !!e && e.rowIdx === rowIdx && e.field === field;\n }\n\n protected _getCellValue(row: T, col: DataGridColumn<T>): unknown {\n return row[col.field];\n }\n\n protected _colWidth(col: DataGridColumn<T>): string {\n return col.width ? `${col.width}px` : col.minWidth ? `minmax(${col.minWidth}px, 1fr)` : '1fr';\n }\n\n protected _gridTemplateColumns = computed(() => {\n const cols = this.columns();\n const check = this.selectable() ? '--spacing(10) ' : '';\n return check + cols.map(c => this._colWidth(c)).join(' ');\n });\n}\n","<div class=\"grid-container\" [style.--grid-cols]=\"_gridTemplateColumns()\">\n <!-- Header -->\n <div class=\"grid-header\">\n @if (selectable()) {\n <div class=\"grid-cell grid-cell--check\">\n @if (multiSelect()) {\n <input type=\"checkbox\" [checked]=\"_allSelected()\" (change)=\"_toggleAll()\" />\n }\n </div>\n }\n @for (col of columns(); track col.field) {\n <div\n class=\"grid-cell grid-cell--header\"\n [attr.data-sortable]=\"col.sortable || null\"\n [attr.data-sorted]=\"_sortField() === col.field || null\"\n [attr.data-sort-dir]=\"_sortField() === col.field ? _sortDir() : null\"\n (click)=\"_sort(col)\"\n >\n <span>{{ col.header }}</span>\n @if (col.sortable) {\n <span class=\"sort-icon\">\n @if (_sortField() === col.field && _sortDir() === 'asc') { ↑ }\n @else if (_sortField() === col.field && _sortDir() === 'desc') { ↓ }\n @else { ↕ }\n </span>\n }\n </div>\n }\n </div>\n\n <!-- Virtual scroll body -->\n @if (loading()) {\n <div class=\"grid-loading\">\n <div class=\"loading-spinner\"></div>\n <span>Loading…</span>\n </div>\n } @else if (_sortedRows().length === 0) {\n <div class=\"grid-empty\">{{ emptyMessage() }}</div>\n } @else {\n <cdk-virtual-scroll-viewport\n class=\"grid-body\"\n [itemSize]=\"rowHeight()\"\n [style.height.px]=\"virtualScrollHeight()\"\n >\n <div\n *cdkVirtualFor=\"let row of _sortedRows(); let i = index\"\n class=\"grid-row\"\n [attr.data-selected]=\"_isSelected(row) || null\"\n (click)=\"_toggleRow(row)\"\n >\n @if (selectable()) {\n <div class=\"grid-cell grid-cell--check\">\n <input type=\"checkbox\" [checked]=\"_isSelected(row)\" (click)=\"$event.stopPropagation(); _toggleRow(row)\" />\n </div>\n }\n @for (col of columns(); track col.field) {\n <div\n class=\"grid-cell\"\n [attr.data-editable]=\"col.editable || null\"\n (dblclick)=\"_startEdit(i, col, _getCellValue(row, col))\"\n >\n @if (_isEditing(i, col.field)) {\n <input\n class=\"cell-input\"\n [value]=\"_editValue()\"\n (input)=\"_editValue.set($any($event.target).value)\"\n (blur)=\"_commitEdit(row, col)\"\n (keydown.enter)=\"_commitEdit(row, col)\"\n (keydown.escape)=\"_editingCell.set(null)\"\n autofocus\n />\n } @else if (col.cellTemplate) {\n <ng-container *ngTemplateOutlet=\"col.cellTemplate; context: { $implicit: row, value: _getCellValue(row, col) }\"></ng-container>\n } @else {\n {{ _getCellValue(row, col) }}\n }\n </div>\n }\n </div>\n </cdk-virtual-scroll-viewport>\n }\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAsCa,iBAAiB,CAAA;AAC5B,IAAA,IAAI,GAAG,KAAK,CAAM,EAAE,gDAAC;AACrB,IAAA,OAAO,GAAG,KAAK,CAAsB,EAAE,mDAAC;AACxC,IAAA,SAAS,GAAG,KAAK,CAAC,EAAE,qDAAC;AACrB,IAAA,mBAAmB,GAAG,KAAK,CAAC,GAAG,+DAAC;AAChC,IAAA,UAAU,GAAG,KAAK,CAAC,KAAK,8CAAI,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CAA7B,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAC;AAC1D,IAAA,WAAW,GAAG,KAAK,CAAC,KAAK,+CAAI,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CAA7B,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAC;AAC3D,IAAA,OAAO,GAAG,KAAK,CAAC,KAAK,2CAAI,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CAA7B,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAC;AACvD,IAAA,YAAY,GAAG,KAAK,CAAC,mBAAmB,wDAAC;IAEzC,UAAU,GAAG,MAAM,EAAa;IAChC,QAAQ,GAAG,MAAM,EAAoB;IACrC,SAAS,GAAG,MAAM,EAAO;AAEf,IAAA,UAAU,GAAG,MAAM,CAAC,EAAE,sDAAC;AACvB,IAAA,QAAQ,GAAG,MAAM,CAAiB,KAAK,oDAAC;AACxC,IAAA,aAAa,GAAG,MAAM,CAAS,IAAI,GAAG,EAAE,yDAAC;AACzC,IAAA,YAAY,GAAG,MAAM,CAA2C,IAAI,wDAAC;AACrE,IAAA,UAAU,GAAG,MAAM,CAAU,EAAE,sDAAC;AAEhC,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;AACpC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE;AAC/B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE;QAC3B,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,KAAK;AAAE,YAAA,OAAO,IAAI;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;AACxB,YAAA,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC;AACnB,YAAA,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC;YACnB,MAAM,GAAG,GAAG,OAAO,EAAE,KAAK,QAAQ,IAAI,OAAO,EAAE,KAAK;kBAChD,EAAE,GAAG;AACP,kBAAE,MAAM,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACxC,YAAA,OAAO,GAAG,KAAK,KAAK,GAAG,GAAG,GAAG,CAAC,GAAG;AACnC,QAAA,CAAC,CAAC;AACJ,IAAA,CAAC,uDAAC;AAEQ,IAAA,KAAK,CAAC,GAAsB,EAAA;QACpC,IAAI,CAAC,GAAG,CAAC,QAAQ;YAAE;QACnB,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK,GAAG,CAAC,KAAK,EAAE;YACnC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;QAC/D;aAAO;YACL,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;AAC9B,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;QAC1B;QACA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;IAChF;AAEU,IAAA,WAAW,CAAC,GAAM,EAAA,EAAa,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAErE,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AACrC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;QAC/B,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACxE,IAAA,CAAC,wDAAC;AAEQ,IAAA,UAAU,CAAC,GAAM,EAAA;AACzB,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAAE;QACxB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;AACzC,QAAA,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AAChB,YAAA,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;QACjB;aAAO;AACL,YAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBAAE,GAAG,CAAC,KAAK,EAAE;AACpC,YAAA,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;QACd;AACA,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC;QAC3B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IAC/B;IAEU,UAAU,GAAA;AAClB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,GAAG,EAAK,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC;AAC9D,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC;QAC3B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IAC/B;AAEU,IAAA,UAAU,CAAC,MAAc,EAAE,GAAsB,EAAE,KAAc,EAAA;QACzE,IAAI,CAAC,GAAG,CAAC,QAAQ;YAAE;AACnB,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;AACnD,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;IAC5B;IAEU,WAAW,CAAC,GAAM,EAAE,GAAsB,EAAA;AAClD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE;AACnC,QAAA,IAAI,CAAC,OAAO;YAAE;QACd,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/B,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE;AACjC,QAAA,GAA+B,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,QAAQ;AACtD,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AACjE,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;IAC7B;IAEU,UAAU,CAAC,MAAc,EAAE,KAAa,EAAA;AAChD,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE;AAC7B,QAAA,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK;IACxD;IAEU,aAAa,CAAC,GAAM,EAAE,GAAsB,EAAA;AACpD,QAAA,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;IACvB;AAEU,IAAA,SAAS,CAAC,GAAsB,EAAA;AACxC,QAAA,OAAO,GAAG,CAAC,KAAK,GAAG,CAAA,EAAG,GAAG,CAAC,KAAK,CAAA,EAAA,CAAI,GAAG,GAAG,CAAC,QAAQ,GAAG,CAAA,OAAA,EAAU,GAAG,CAAC,QAAQ,CAAA,QAAA,CAAU,GAAG,KAAK;IAC/F;AAEU,IAAA,oBAAoB,GAAG,QAAQ,CAAC,MAAK;AAC7C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE;AAC3B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,gBAAgB,GAAG,EAAE;QACvD,OAAO,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAC3D,IAAA,CAAC,gEAAC;wGA1GS,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,mBAAA,EAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtC9B,k9FAkFA,EAAA,MAAA,EAAA,CAAA,0oEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDjDY,gBAAgB,oJAAE,wBAAwB,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,yBAAyB,EAAA,QAAA,EAAA,uCAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,eAAe,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,gCAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAKrF,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAR7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,EAAA,UAAA,EACb,IAAI,EAAA,OAAA,EACP,CAAC,gBAAgB,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,eAAe,CAAC,EAAA,eAAA,EAGhF,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,k9FAAA,EAAA,MAAA,EAAA,CAAA,0oEAAA,CAAA,EAAA;;;AEpCjD;;AAEG;;;;"}
@@ -9,10 +9,10 @@ import { SkeletonBlockComponent, SkeletonLineComponent, SkeletonCircleComponent,
9
9
 
10
10
  class DataViewEmptyDataDirective {
11
11
  templateRef = inject(TemplateRef);
12
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: DataViewEmptyDataDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
13
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.10", type: DataViewEmptyDataDirective, isStandalone: true, selector: "[emrDataViewEmptyData]", host: { classAttribute: "emr-data-view-empty-data" }, exportAs: ["emrDataViewEmptyData"], ngImport: i0 });
12
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DataViewEmptyDataDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
13
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: DataViewEmptyDataDirective, isStandalone: true, selector: "[emrDataViewEmptyData]", host: { classAttribute: "emr-data-view-empty-data" }, exportAs: ["emrDataViewEmptyData"], ngImport: i0 });
14
14
  }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: DataViewEmptyDataDirective, decorators: [{
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DataViewEmptyDataDirective, decorators: [{
16
16
  type: Directive,
17
17
  args: [{
18
18
  selector: '[emrDataViewEmptyData]',
@@ -26,10 +26,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImpo
26
26
 
27
27
  class DataViewEmptyFilterResultsDirective {
28
28
  templateRef = inject(TemplateRef);
29
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: DataViewEmptyFilterResultsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
30
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.10", type: DataViewEmptyFilterResultsDirective, isStandalone: true, selector: "[emrDataViewEmptyFilterResults]", host: { classAttribute: "emr-data-view-empty-filter-results" }, exportAs: ["emrDataViewEmptyFilterResults"], ngImport: i0 });
29
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DataViewEmptyFilterResultsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
30
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: DataViewEmptyFilterResultsDirective, isStandalone: true, selector: "[emrDataViewEmptyFilterResults]", host: { classAttribute: "emr-data-view-empty-filter-results" }, exportAs: ["emrDataViewEmptyFilterResults"], ngImport: i0 });
31
31
  }
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: DataViewEmptyFilterResultsDirective, decorators: [{
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DataViewEmptyFilterResultsDirective, decorators: [{
33
33
  type: Directive,
34
34
  args: [{
35
35
  selector: '[emrDataViewEmptyFilterResults]',
@@ -43,10 +43,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImpo
43
43
 
44
44
  class DataViewActionBarDirective {
45
45
  templateRef = inject(TemplateRef);
46
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: DataViewActionBarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
47
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.10", type: DataViewActionBarDirective, isStandalone: true, selector: "[emrDataViewActionBar]", ngImport: i0 });
46
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DataViewActionBarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
47
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: DataViewActionBarDirective, isStandalone: true, selector: "[emrDataViewActionBar]", ngImport: i0 });
48
48
  }
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: DataViewActionBarDirective, decorators: [{
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DataViewActionBarDirective, decorators: [{
50
50
  type: Directive,
51
51
  args: [{
52
52
  selector: '[emrDataViewActionBar]',
@@ -231,10 +231,10 @@ class DataViewComponent {
231
231
  this.selectionChanged.emit([]);
232
232
  this.allRowsSelectionChanged.emit(false);
233
233
  }
234
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: DataViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
235
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.10", type: DataViewComponent, isStandalone: true, selector: "emr-data-view", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, paginator: { classPropertyName: "paginator", publicName: "paginator", isSignal: true, isRequired: false, transformFunction: null }, columnDefs: { classPropertyName: "columnDefs", publicName: "columnDefs", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, withSelection: { classPropertyName: "withSelection", publicName: "withSelection", isSignal: true, isRequired: false, transformFunction: null }, highlightHeader: { classPropertyName: "highlightHeader", publicName: "highlightHeader", isSignal: true, isRequired: false, transformFunction: null }, rowModelType: { classPropertyName: "rowModelType", publicName: "rowModelType", isSignal: true, isRequired: false, transformFunction: null }, withSorting: { classPropertyName: "withSorting", publicName: "withSorting", isSignal: true, isRequired: false, transformFunction: null }, stickyHeader: { classPropertyName: "stickyHeader", publicName: "stickyHeader", isSignal: true, isRequired: false, transformFunction: null }, hoverRows: { classPropertyName: "hoverRows", publicName: "hoverRows", isSignal: true, isRequired: false, transformFunction: null }, cellRenderers: { classPropertyName: "cellRenderers", publicName: "cellRenderers", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, search: { classPropertyName: "search", publicName: "search", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { rowSelectionChanged: "rowSelectionChanged", selectionChanged: "selectionChanged", allRowsSelectionChanged: "allRowsSelectionChanged", sortChange: "sortChange" }, host: { properties: { "class.highlight-header": "highlightHeader()", "class.hover-rows": "hoverRows()", "class.is-loading": "loading()" }, classAttribute: "emr-data-view" }, queries: [{ propertyName: "_emptyDataRef", first: true, predicate: DataViewEmptyDataDirective, descendants: true, isSignal: true }, { propertyName: "_emptyFilterResults", first: true, predicate: DataViewEmptyFilterResultsDirective, descendants: true, isSignal: true }, { propertyName: "_actionBarRef", first: true, predicate: DataViewActionBarDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "_matTable", first: true, predicate: ["table"], descendants: true, isSignal: true }, { propertyName: "_matSort", first: true, predicate: MatSort, descendants: true, isSignal: true }], exportAs: ["emrDataView"], ngImport: i0, template: "<emr-skeleton>\r\n <mat-table matSort\r\n [dataSource]=\"dataSource()\"\r\n [matSortDisabled]=\"!withSorting() || (loading() && rowModelType() === 'serverSide')\"\r\n (matSortChange)=\"onSortChange($event)\"\r\n class=\"table\"\r\n [class.hidden]=\"noFilteredResults\">\r\n @if (withSelection()) {\r\n <ng-container matColumnDef=\"selection\">\r\n <mat-header-cell *matHeaderCellDef>\r\n @if (loadingCellRenderers || loading()) {\r\n <emr-skeleton-block class=\"size-6\"/>\r\n } @else {\r\n <mat-checkbox (change)=\"$event ? toggleAllRows() : null\"\r\n [checked]=\"selection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\">\r\n </mat-checkbox>\r\n }\r\n </mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\">\r\n @if (loadingCellRenderers || loading()) {\r\n <emr-skeleton-block class=\"size-6 max-w-full\"/>\r\n } @else {\r\n <mat-checkbox (click)=\"$event.stopPropagation()\"\r\n (change)=\"rowSelectionToggle($event, row)\"\r\n [checked]=\"selection.isSelected(row)\">\r\n </mat-checkbox>\r\n }\r\n </mat-cell>\r\n </ng-container>\r\n }\r\n\r\n @for (columnDef of columnDefs(); track columnDef) {\r\n @if (columnDef.visible) {\r\n <ng-container [matColumnDef]=\"columnDef.dataField\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header class=\"header-cell\"\r\n [style.--emr-data-view-cell-width]=\"columnDef.width\">\r\n <div class=\"overflow-hidden w-full\">\r\n @if (loadingCellRenderers || loading()) {\r\n <emr-skeleton-line class=\"w-24 max-w-full\"/>\r\n } @else {\r\n {{ columnDef.name }}\r\n }\r\n </div>\r\n </mat-header-cell>\r\n <mat-cell *matCellDef=\"let element\" class=\"cell\"\r\n [style.--emr-data-view-cell-width]=\"columnDef.width\">\r\n <div class=\"overflow-hidden w-full\">\r\n @if (loadingCellRenderers || loading()) {\r\n <emr-skeleton-line/>\r\n } @else {\r\n @if (columnDef.dataRenderer && hasCellRenderer(columnDef.dataRenderer)) {\r\n <ng-container [ngComponentOutlet]=\"getCellRenderer(columnDef.dataRenderer)\"\r\n [ngComponentOutletInputs]=\"{ element, columnDef, fieldData: element[columnDef.dataField] }\"\r\n [ngComponentOutletInjector]=\"injector\"/>\r\n } @else {\r\n {{ element[columnDef.dataField] }}\r\n }\r\n }\r\n </div>\r\n </mat-cell>\r\n </ng-container>\r\n }\r\n }\r\n\r\n <ng-container matColumnDef=\"__actionBar\">\r\n <mat-header-cell *matHeaderCellDef class=\"header-cell-action-bar\"/>\r\n <mat-cell *matCellDef=\"let element\" class=\"cell-action-bar\">\r\n @if (actionBarTemplateRef) {\r\n <ng-container [ngTemplateOutlet]=\"actionBarTemplateRef\" [ngTemplateOutletContext]=\"{ $implicit: element }\"/>\r\n }\r\n </mat-cell>\r\n </ng-container>\r\n <mat-header-row *matHeaderRowDef=\"displayedColumns(); sticky: stickyHeader()\"/>\r\n <mat-row *matRowDef=\"let row; columns: displayedColumns()\" class=\"data-view-row\"\r\n [class.is-selected]=\"selection.isSelected(row)\"/>\r\n </mat-table>\r\n</emr-skeleton>\r\n\r\n@if (noFilteredResults) {\r\n @if (loading()) {\r\n <div class=\"flex flex-col items-center justify-center h-full\">\r\n <emr-skeleton-circle class=\"size-32\"/>\r\n <emr-skeleton-line class=\"w-1/2 mt-9\"/>\r\n <emr-skeleton-line class=\"w-1/3 h-4 mt-5\"/>\r\n </div>\r\n } @else {\r\n @if (hasFilterValue) {\r\n <ng-container [ngTemplateOutlet]=\"emptyFilterResultsTemplateRef\"/>\r\n } @else {\r\n <ng-container [ngTemplateOutlet]=\"emptyTemplateRef\"/>\r\n }\r\n }\r\n}\r\n", styles: [":host{--emr-data-view-row-bg: var(--color-background);--emr-data-view-hl-header-row-bg: var(--color-surface-container);--emr-data-view-hl-header-margin: calc(var(--spacing) * 1) 0;--emr-data-view-sticky-header-top: 0;--emr-data-view-selected-border-color: var(--color-primary);--emr-data-view-row-hover-bg: var(--color-surface-bright);--emr-data-view-bg: transparent;--mat-table-row-item-outline-width: 0;--mat-table-background-color: var(--emr-data-view-bg);--emr-content-fade-color: var(--emr-data-view-row-bg);--emr-data-view-header-bg: var(--color-background);display:flex;flex-direction:column;height:100%}:host mat-table{height:100%;padding-bottom:calc(var(--spacing) * 3)}:host ::ng-deep emr-block-state{--emr-block-state-padding: 0}:host ::ng-deep .mat-mdc-header-row{background:var(--emr-data-view-header-bg)}:host .mat-mdc-cell{background:var(--emr-data-view-row-bg)}:host .mat-mdc-cell.cell-action-bar{background:linear-gradient(to left,var(--emr-data-view-row-bg) 90%,transparent)}:host .emr-skeleton-block{z-index:1}:host .mdc-data-table__cell.mat-column-selection:first-child,:host .mdc-data-table__header-cell.mat-column-selection:first-child{max-width:calc(var(--spacing) * 16);padding:0;justify-content:center}:host .mat-mdc-header-cell{text-transform:uppercase;font-size:var(--text-xs);overflow:hidden}:host .mat-mdc-row.mdc-data-table__row{border:1px solid var(--color-border)!important;border-radius:.75rem;overflow:hidden;height:calc(var(--spacing) * 16)}:host .mat-mdc-row.mdc-data-table__row+.mdc-data-table__row{margin-top:calc(var(--spacing) * 4)}:host .mdc-data-table__row{position:relative}:host .mdc-data-table__row.is-selected{border-color:var(--emr-data-view-selected-border-color)!important}:host.hover-rows .data-view-row:hover .mat-mdc-cell{--emr-data-view-row-bg: var(--emr-data-view-row-hover-bg)}:host .data-view-row:hover .cell-action-bar{opacity:100%;z-index:1}:host.is-loading .data-view-row .cell-action-bar{display:none}:host ::ng-deep .header-cell,:host ::ng-deep .cell{min-width:var(--emr-data-view-cell-width, auto);max-width:var(--emr-data-view-cell-width, auto)}:host ::ng-deep .cell{padding-top:calc(var(--spacing) * 2);padding-bottom:calc(var(--spacing) * 2)}:host ::ng-deep .header-cell-action-bar,:host ::ng-deep .cell-action-bar{position:absolute;top:0;bottom:0;inset-inline-end:0;padding:0}:host ::ng-deep .header-cell-action-bar:not(:has(.force-visible)),:host ::ng-deep .cell-action-bar:not(:has(.force-visible)){opacity:0;z-index:-50}:host .mat-mdc-table .mat-mdc-header-cell{color:var(--sys-on-surface)}:host.highlight-header ::ng-deep .mat-mdc-header-row{position:relative;margin:var(--emr-data-view-hl-header-margin)}:host.highlight-header ::ng-deep .mat-mdc-header-row:before{content:\"\";position:absolute;left:0;right:0;background:var(--emr-data-view-hl-header-row-bg);height:calc(var(--spacing) * 10);border-radius:.5rem;z-index:0}:host.highlight-header ::ng-deep .mdc-data-table__header-cell{--emr-skeleton-from-bg: var(--color-neutral-300);--emr-skeleton-to-bg: var(--color-neutral-400)}:host.highlight-header ::ng-deep .mat-mdc-table .mat-mdc-header-cell{background:transparent;color:var(--text-neutral-700)}:host ::ng-deep .mat-sort-header{z-index:1;position:relative}:host ::ng-deep .mat-sort-header-stem{width:1px}:host ::ng-deep .mat-sort-header-pointer-left,:host ::ng-deep .mat-sort-header-pointer-right{height:1px}:host ::ng-deep .mat-sort-header-pointer-middle{width:1px;height:1px}:host[data-view-variant=table]{--emr-data-view-hl-header-margin: 0}:host[data-view-variant=table] .mat-mdc-header-row:before{height:calc(var(--spacing) * 12)}:host[data-view-variant=table] .mat-mdc-row.mdc-data-table__row{border:none!important;border-top:1px solid var(--color-border)!important;height:auto;border-radius:0}:host[data-view-variant=table] .mat-mdc-row.mdc-data-table__row+.mdc-data-table__row{margin-top:0}:host[data-view-variant=table].highlight-header .mat-mdc-row.mdc-data-table__row:first-of-type{border-top:none!important}:host-context(html.dark){--emr-data-view-row-hover-bg: var(--color-surface-container-low)}:host-context(html.dark) ::ng-deep .mdc-data-table__header-cell{--emr-skeleton-from-bg: var(--color-neutral-700);--emr-skeleton-to-bg: var(--color-neutral-800)}:host-context(html.dark) ::ng-deep .mat-mdc-table .mat-mdc-header-cell{color:var(--text-neutral-400)}\n/*! tailwindcss v4.1.14 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "component", type: MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "directive", type: MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "component", type: MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "component", type: MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SkeletonBlockComponent, selector: "emr-skeleton-block", exportAs: ["emrSkeletonBlock"] }, { kind: "directive", type: MatCellDef, selector: "[matCellDef]" }, { kind: "component", type: SkeletonLineComponent, selector: "emr-skeleton-line", exportAs: ["emrSkeletonLine"] }, { kind: "component", type: SkeletonCircleComponent, selector: "emr-skeleton-circle", exportAs: ["emrSkeletonCircle"] }, { kind: "component", type: SkeletonComponent, selector: "emr-skeleton", inputs: ["direction"], exportAs: ["emrSkeleton"] }] });
234
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DataViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
235
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: DataViewComponent, isStandalone: true, selector: "emr-data-view", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, paginator: { classPropertyName: "paginator", publicName: "paginator", isSignal: true, isRequired: false, transformFunction: null }, columnDefs: { classPropertyName: "columnDefs", publicName: "columnDefs", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, withSelection: { classPropertyName: "withSelection", publicName: "withSelection", isSignal: true, isRequired: false, transformFunction: null }, highlightHeader: { classPropertyName: "highlightHeader", publicName: "highlightHeader", isSignal: true, isRequired: false, transformFunction: null }, rowModelType: { classPropertyName: "rowModelType", publicName: "rowModelType", isSignal: true, isRequired: false, transformFunction: null }, withSorting: { classPropertyName: "withSorting", publicName: "withSorting", isSignal: true, isRequired: false, transformFunction: null }, stickyHeader: { classPropertyName: "stickyHeader", publicName: "stickyHeader", isSignal: true, isRequired: false, transformFunction: null }, hoverRows: { classPropertyName: "hoverRows", publicName: "hoverRows", isSignal: true, isRequired: false, transformFunction: null }, cellRenderers: { classPropertyName: "cellRenderers", publicName: "cellRenderers", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, search: { classPropertyName: "search", publicName: "search", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { rowSelectionChanged: "rowSelectionChanged", selectionChanged: "selectionChanged", allRowsSelectionChanged: "allRowsSelectionChanged", sortChange: "sortChange" }, host: { properties: { "class.highlight-header": "highlightHeader()", "class.hover-rows": "hoverRows()", "class.is-loading": "loading()" }, classAttribute: "emr-data-view" }, queries: [{ propertyName: "_emptyDataRef", first: true, predicate: DataViewEmptyDataDirective, descendants: true, isSignal: true }, { propertyName: "_emptyFilterResults", first: true, predicate: DataViewEmptyFilterResultsDirective, descendants: true, isSignal: true }, { propertyName: "_actionBarRef", first: true, predicate: DataViewActionBarDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "_matTable", first: true, predicate: ["table"], descendants: true, isSignal: true }, { propertyName: "_matSort", first: true, predicate: MatSort, descendants: true, isSignal: true }], exportAs: ["emrDataView"], ngImport: i0, template: "<emr-skeleton>\n <mat-table matSort\n [dataSource]=\"dataSource()\"\n [matSortDisabled]=\"!withSorting() || (loading() && rowModelType() === 'serverSide')\"\n (matSortChange)=\"onSortChange($event)\"\n class=\"table\"\n [class.hidden]=\"noFilteredResults\">\n @if (withSelection()) {\n <ng-container matColumnDef=\"selection\">\n <mat-header-cell *matHeaderCellDef>\n @if (loadingCellRenderers || loading()) {\n <emr-skeleton-block class=\"size-6\"/>\n } @else {\n <mat-checkbox (change)=\"$event ? toggleAllRows() : null\"\n [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\">\n </mat-checkbox>\n }\n </mat-header-cell>\n <mat-cell *matCellDef=\"let row\">\n @if (loadingCellRenderers || loading()) {\n <emr-skeleton-block class=\"size-6 max-w-full\"/>\n } @else {\n <mat-checkbox (click)=\"$event.stopPropagation()\"\n (change)=\"rowSelectionToggle($event, row)\"\n [checked]=\"selection.isSelected(row)\">\n </mat-checkbox>\n }\n </mat-cell>\n </ng-container>\n }\n\n @for (columnDef of columnDefs(); track columnDef) {\n @if (columnDef.visible) {\n <ng-container [matColumnDef]=\"columnDef.dataField\">\n <mat-header-cell *matHeaderCellDef mat-sort-header class=\"header-cell\"\n [style.--emr-data-view-cell-width]=\"columnDef.width\">\n <div class=\"overflow-hidden w-full\">\n @if (loadingCellRenderers || loading()) {\n <emr-skeleton-line class=\"w-24 max-w-full\"/>\n } @else {\n {{ columnDef.name }}\n }\n </div>\n </mat-header-cell>\n <mat-cell *matCellDef=\"let element\" class=\"cell\"\n [style.--emr-data-view-cell-width]=\"columnDef.width\">\n <div class=\"overflow-hidden w-full\">\n @if (loadingCellRenderers || loading()) {\n <emr-skeleton-line/>\n } @else {\n @if (columnDef.dataRenderer && hasCellRenderer(columnDef.dataRenderer)) {\n <ng-container [ngComponentOutlet]=\"getCellRenderer(columnDef.dataRenderer)\"\n [ngComponentOutletInputs]=\"{ element, columnDef, fieldData: element[columnDef.dataField] }\"\n [ngComponentOutletInjector]=\"injector\"/>\n } @else {\n {{ element[columnDef.dataField] }}\n }\n }\n </div>\n </mat-cell>\n </ng-container>\n }\n }\n\n <ng-container matColumnDef=\"__actionBar\">\n <mat-header-cell *matHeaderCellDef class=\"header-cell-action-bar\"/>\n <mat-cell *matCellDef=\"let element\" class=\"cell-action-bar\">\n @if (actionBarTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"actionBarTemplateRef\" [ngTemplateOutletContext]=\"{ $implicit: element }\"/>\n }\n </mat-cell>\n </ng-container>\n <mat-header-row *matHeaderRowDef=\"displayedColumns(); sticky: stickyHeader()\"/>\n <mat-row *matRowDef=\"let row; columns: displayedColumns()\" class=\"data-view-row\"\n [class.is-selected]=\"selection.isSelected(row)\"/>\n </mat-table>\n</emr-skeleton>\n\n@if (noFilteredResults) {\n @if (loading()) {\n <div class=\"flex flex-col items-center justify-center h-full\">\n <emr-skeleton-circle class=\"size-32\"/>\n <emr-skeleton-line class=\"w-1/2 mt-9\"/>\n <emr-skeleton-line class=\"w-1/3 h-4 mt-5\"/>\n </div>\n } @else {\n @if (hasFilterValue) {\n <ng-container [ngTemplateOutlet]=\"emptyFilterResultsTemplateRef\"/>\n } @else {\n <ng-container [ngTemplateOutlet]=\"emptyTemplateRef\"/>\n }\n }\n}\n", styles: [":host{--emr-data-view-row-bg: var(--color-background);--emr-data-view-hl-header-row-bg: var(--color-surface-container);--emr-data-view-hl-header-margin: calc(var(--spacing) * 1) 0;--emr-data-view-sticky-header-top: 0;--emr-data-view-selected-border-color: var(--color-primary);--emr-data-view-row-hover-bg: var(--color-surface-bright);--emr-data-view-bg: transparent;--mat-table-row-item-outline-width: 0;--mat-table-background-color: var(--emr-data-view-bg);--emr-content-fade-color: var(--emr-data-view-row-bg);--emr-data-view-header-bg: var(--color-background);display:flex;flex-direction:column;height:100%}:host mat-table{height:100%;padding-bottom:calc(var(--spacing) * 3)}:host ::ng-deep emr-block-state{--emr-block-state-padding: 0}:host ::ng-deep .mat-mdc-header-row{background:var(--emr-data-view-header-bg)}:host .mat-mdc-cell{background:var(--emr-data-view-row-bg)}:host .mat-mdc-cell.cell-action-bar{background:linear-gradient(to left,var(--emr-data-view-row-bg) 90%,transparent)}:host .emr-skeleton-block{z-index:1}:host .mdc-data-table__cell.mat-column-selection:first-child,:host .mdc-data-table__header-cell.mat-column-selection:first-child{max-width:calc(var(--spacing) * 16);padding:0;justify-content:center}:host .mat-mdc-header-cell{text-transform:uppercase;font-size:var(--text-xs);overflow:hidden}:host .mat-mdc-row.mdc-data-table__row{border:1px solid var(--color-border)!important;border-radius:.75rem;overflow:hidden;height:calc(var(--spacing) * 16)}:host .mat-mdc-row.mdc-data-table__row+.mdc-data-table__row{margin-top:calc(var(--spacing) * 4)}:host .mdc-data-table__row{position:relative}:host .mdc-data-table__row.is-selected{border-color:var(--emr-data-view-selected-border-color)!important}:host.hover-rows .data-view-row:hover .mat-mdc-cell{--emr-data-view-row-bg: var(--emr-data-view-row-hover-bg)}:host .data-view-row:hover .cell-action-bar{opacity:100%;z-index:1}:host.is-loading .data-view-row .cell-action-bar{display:none}:host ::ng-deep .header-cell,:host ::ng-deep .cell{min-width:var(--emr-data-view-cell-width, auto);max-width:var(--emr-data-view-cell-width, auto)}:host ::ng-deep .cell{padding-top:calc(var(--spacing) * 2);padding-bottom:calc(var(--spacing) * 2)}:host ::ng-deep .header-cell-action-bar,:host ::ng-deep .cell-action-bar{position:absolute;top:0;bottom:0;inset-inline-end:0;padding:0}:host ::ng-deep .header-cell-action-bar:not(:has(.force-visible)),:host ::ng-deep .cell-action-bar:not(:has(.force-visible)){opacity:0;z-index:-50}:host .mat-mdc-table .mat-mdc-header-cell{color:var(--sys-on-surface)}:host.highlight-header ::ng-deep .mat-mdc-header-row{position:relative;margin:var(--emr-data-view-hl-header-margin)}:host.highlight-header ::ng-deep .mat-mdc-header-row:before{content:\"\";position:absolute;left:0;right:0;background:var(--emr-data-view-hl-header-row-bg);height:calc(var(--spacing) * 10);border-radius:.5rem;z-index:0}:host.highlight-header ::ng-deep .mdc-data-table__header-cell{--emr-skeleton-from-bg: var(--color-neutral-300);--emr-skeleton-to-bg: var(--color-neutral-400)}:host.highlight-header ::ng-deep .mat-mdc-table .mat-mdc-header-cell{background:transparent;color:var(--text-neutral-700)}:host ::ng-deep .mat-sort-header{z-index:1;position:relative}:host ::ng-deep .mat-sort-header-stem{width:1px}:host ::ng-deep .mat-sort-header-pointer-left,:host ::ng-deep .mat-sort-header-pointer-right{height:1px}:host ::ng-deep .mat-sort-header-pointer-middle{width:1px;height:1px}:host[data-view-variant=table]{--emr-data-view-hl-header-margin: 0}:host[data-view-variant=table] .mat-mdc-header-row:before{height:calc(var(--spacing) * 12)}:host[data-view-variant=table] .mat-mdc-row.mdc-data-table__row{border:none!important;border-top:1px solid var(--color-border)!important;height:auto;border-radius:0}:host[data-view-variant=table] .mat-mdc-row.mdc-data-table__row+.mdc-data-table__row{margin-top:0}:host[data-view-variant=table].highlight-header .mat-mdc-row.mdc-data-table__row:first-of-type{border-top:none!important}:host-context(html.dark){--emr-data-view-row-hover-bg: var(--color-surface-container-low)}:host-context(html.dark) ::ng-deep .mdc-data-table__header-cell{--emr-skeleton-from-bg: var(--color-neutral-700);--emr-skeleton-to-bg: var(--color-neutral-800)}:host-context(html.dark) ::ng-deep .mat-mdc-table .mat-mdc-header-cell{color:var(--text-neutral-400)}\n/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "component", type: MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "directive", type: MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "component", type: MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "component", type: MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SkeletonBlockComponent, selector: "emr-skeleton-block", exportAs: ["emrSkeletonBlock"] }, { kind: "directive", type: MatCellDef, selector: "[matCellDef]" }, { kind: "component", type: SkeletonLineComponent, selector: "emr-skeleton-line", exportAs: ["emrSkeletonLine"] }, { kind: "component", type: SkeletonCircleComponent, selector: "emr-skeleton-circle", exportAs: ["emrSkeletonCircle"] }, { kind: "component", type: SkeletonComponent, selector: "emr-skeleton", inputs: ["direction"], exportAs: ["emrSkeleton"] }] });
236
236
  }
237
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: DataViewComponent, decorators: [{
237
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DataViewComponent, decorators: [{
238
238
  type: Component,
239
239
  args: [{ selector: 'emr-data-view', exportAs: 'emrDataView', imports: [
240
240
  MatCell,
@@ -261,7 +261,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImpo
261
261
  '[class.highlight-header]': 'highlightHeader()',
262
262
  '[class.hover-rows]': 'hoverRows()',
263
263
  '[class.is-loading]': 'loading()',
264
- }, template: "<emr-skeleton>\r\n <mat-table matSort\r\n [dataSource]=\"dataSource()\"\r\n [matSortDisabled]=\"!withSorting() || (loading() && rowModelType() === 'serverSide')\"\r\n (matSortChange)=\"onSortChange($event)\"\r\n class=\"table\"\r\n [class.hidden]=\"noFilteredResults\">\r\n @if (withSelection()) {\r\n <ng-container matColumnDef=\"selection\">\r\n <mat-header-cell *matHeaderCellDef>\r\n @if (loadingCellRenderers || loading()) {\r\n <emr-skeleton-block class=\"size-6\"/>\r\n } @else {\r\n <mat-checkbox (change)=\"$event ? toggleAllRows() : null\"\r\n [checked]=\"selection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\">\r\n </mat-checkbox>\r\n }\r\n </mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\">\r\n @if (loadingCellRenderers || loading()) {\r\n <emr-skeleton-block class=\"size-6 max-w-full\"/>\r\n } @else {\r\n <mat-checkbox (click)=\"$event.stopPropagation()\"\r\n (change)=\"rowSelectionToggle($event, row)\"\r\n [checked]=\"selection.isSelected(row)\">\r\n </mat-checkbox>\r\n }\r\n </mat-cell>\r\n </ng-container>\r\n }\r\n\r\n @for (columnDef of columnDefs(); track columnDef) {\r\n @if (columnDef.visible) {\r\n <ng-container [matColumnDef]=\"columnDef.dataField\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header class=\"header-cell\"\r\n [style.--emr-data-view-cell-width]=\"columnDef.width\">\r\n <div class=\"overflow-hidden w-full\">\r\n @if (loadingCellRenderers || loading()) {\r\n <emr-skeleton-line class=\"w-24 max-w-full\"/>\r\n } @else {\r\n {{ columnDef.name }}\r\n }\r\n </div>\r\n </mat-header-cell>\r\n <mat-cell *matCellDef=\"let element\" class=\"cell\"\r\n [style.--emr-data-view-cell-width]=\"columnDef.width\">\r\n <div class=\"overflow-hidden w-full\">\r\n @if (loadingCellRenderers || loading()) {\r\n <emr-skeleton-line/>\r\n } @else {\r\n @if (columnDef.dataRenderer && hasCellRenderer(columnDef.dataRenderer)) {\r\n <ng-container [ngComponentOutlet]=\"getCellRenderer(columnDef.dataRenderer)\"\r\n [ngComponentOutletInputs]=\"{ element, columnDef, fieldData: element[columnDef.dataField] }\"\r\n [ngComponentOutletInjector]=\"injector\"/>\r\n } @else {\r\n {{ element[columnDef.dataField] }}\r\n }\r\n }\r\n </div>\r\n </mat-cell>\r\n </ng-container>\r\n }\r\n }\r\n\r\n <ng-container matColumnDef=\"__actionBar\">\r\n <mat-header-cell *matHeaderCellDef class=\"header-cell-action-bar\"/>\r\n <mat-cell *matCellDef=\"let element\" class=\"cell-action-bar\">\r\n @if (actionBarTemplateRef) {\r\n <ng-container [ngTemplateOutlet]=\"actionBarTemplateRef\" [ngTemplateOutletContext]=\"{ $implicit: element }\"/>\r\n }\r\n </mat-cell>\r\n </ng-container>\r\n <mat-header-row *matHeaderRowDef=\"displayedColumns(); sticky: stickyHeader()\"/>\r\n <mat-row *matRowDef=\"let row; columns: displayedColumns()\" class=\"data-view-row\"\r\n [class.is-selected]=\"selection.isSelected(row)\"/>\r\n </mat-table>\r\n</emr-skeleton>\r\n\r\n@if (noFilteredResults) {\r\n @if (loading()) {\r\n <div class=\"flex flex-col items-center justify-center h-full\">\r\n <emr-skeleton-circle class=\"size-32\"/>\r\n <emr-skeleton-line class=\"w-1/2 mt-9\"/>\r\n <emr-skeleton-line class=\"w-1/3 h-4 mt-5\"/>\r\n </div>\r\n } @else {\r\n @if (hasFilterValue) {\r\n <ng-container [ngTemplateOutlet]=\"emptyFilterResultsTemplateRef\"/>\r\n } @else {\r\n <ng-container [ngTemplateOutlet]=\"emptyTemplateRef\"/>\r\n }\r\n }\r\n}\r\n", styles: [":host{--emr-data-view-row-bg: var(--color-background);--emr-data-view-hl-header-row-bg: var(--color-surface-container);--emr-data-view-hl-header-margin: calc(var(--spacing) * 1) 0;--emr-data-view-sticky-header-top: 0;--emr-data-view-selected-border-color: var(--color-primary);--emr-data-view-row-hover-bg: var(--color-surface-bright);--emr-data-view-bg: transparent;--mat-table-row-item-outline-width: 0;--mat-table-background-color: var(--emr-data-view-bg);--emr-content-fade-color: var(--emr-data-view-row-bg);--emr-data-view-header-bg: var(--color-background);display:flex;flex-direction:column;height:100%}:host mat-table{height:100%;padding-bottom:calc(var(--spacing) * 3)}:host ::ng-deep emr-block-state{--emr-block-state-padding: 0}:host ::ng-deep .mat-mdc-header-row{background:var(--emr-data-view-header-bg)}:host .mat-mdc-cell{background:var(--emr-data-view-row-bg)}:host .mat-mdc-cell.cell-action-bar{background:linear-gradient(to left,var(--emr-data-view-row-bg) 90%,transparent)}:host .emr-skeleton-block{z-index:1}:host .mdc-data-table__cell.mat-column-selection:first-child,:host .mdc-data-table__header-cell.mat-column-selection:first-child{max-width:calc(var(--spacing) * 16);padding:0;justify-content:center}:host .mat-mdc-header-cell{text-transform:uppercase;font-size:var(--text-xs);overflow:hidden}:host .mat-mdc-row.mdc-data-table__row{border:1px solid var(--color-border)!important;border-radius:.75rem;overflow:hidden;height:calc(var(--spacing) * 16)}:host .mat-mdc-row.mdc-data-table__row+.mdc-data-table__row{margin-top:calc(var(--spacing) * 4)}:host .mdc-data-table__row{position:relative}:host .mdc-data-table__row.is-selected{border-color:var(--emr-data-view-selected-border-color)!important}:host.hover-rows .data-view-row:hover .mat-mdc-cell{--emr-data-view-row-bg: var(--emr-data-view-row-hover-bg)}:host .data-view-row:hover .cell-action-bar{opacity:100%;z-index:1}:host.is-loading .data-view-row .cell-action-bar{display:none}:host ::ng-deep .header-cell,:host ::ng-deep .cell{min-width:var(--emr-data-view-cell-width, auto);max-width:var(--emr-data-view-cell-width, auto)}:host ::ng-deep .cell{padding-top:calc(var(--spacing) * 2);padding-bottom:calc(var(--spacing) * 2)}:host ::ng-deep .header-cell-action-bar,:host ::ng-deep .cell-action-bar{position:absolute;top:0;bottom:0;inset-inline-end:0;padding:0}:host ::ng-deep .header-cell-action-bar:not(:has(.force-visible)),:host ::ng-deep .cell-action-bar:not(:has(.force-visible)){opacity:0;z-index:-50}:host .mat-mdc-table .mat-mdc-header-cell{color:var(--sys-on-surface)}:host.highlight-header ::ng-deep .mat-mdc-header-row{position:relative;margin:var(--emr-data-view-hl-header-margin)}:host.highlight-header ::ng-deep .mat-mdc-header-row:before{content:\"\";position:absolute;left:0;right:0;background:var(--emr-data-view-hl-header-row-bg);height:calc(var(--spacing) * 10);border-radius:.5rem;z-index:0}:host.highlight-header ::ng-deep .mdc-data-table__header-cell{--emr-skeleton-from-bg: var(--color-neutral-300);--emr-skeleton-to-bg: var(--color-neutral-400)}:host.highlight-header ::ng-deep .mat-mdc-table .mat-mdc-header-cell{background:transparent;color:var(--text-neutral-700)}:host ::ng-deep .mat-sort-header{z-index:1;position:relative}:host ::ng-deep .mat-sort-header-stem{width:1px}:host ::ng-deep .mat-sort-header-pointer-left,:host ::ng-deep .mat-sort-header-pointer-right{height:1px}:host ::ng-deep .mat-sort-header-pointer-middle{width:1px;height:1px}:host[data-view-variant=table]{--emr-data-view-hl-header-margin: 0}:host[data-view-variant=table] .mat-mdc-header-row:before{height:calc(var(--spacing) * 12)}:host[data-view-variant=table] .mat-mdc-row.mdc-data-table__row{border:none!important;border-top:1px solid var(--color-border)!important;height:auto;border-radius:0}:host[data-view-variant=table] .mat-mdc-row.mdc-data-table__row+.mdc-data-table__row{margin-top:0}:host[data-view-variant=table].highlight-header .mat-mdc-row.mdc-data-table__row:first-of-type{border-top:none!important}:host-context(html.dark){--emr-data-view-row-hover-bg: var(--color-surface-container-low)}:host-context(html.dark) ::ng-deep .mdc-data-table__header-cell{--emr-skeleton-from-bg: var(--color-neutral-700);--emr-skeleton-to-bg: var(--color-neutral-800)}:host-context(html.dark) ::ng-deep .mat-mdc-table .mat-mdc-header-cell{color:var(--text-neutral-400)}\n/*! tailwindcss v4.1.14 | MIT License | https://tailwindcss.com */\n"] }]
264
+ }, template: "<emr-skeleton>\n <mat-table matSort\n [dataSource]=\"dataSource()\"\n [matSortDisabled]=\"!withSorting() || (loading() && rowModelType() === 'serverSide')\"\n (matSortChange)=\"onSortChange($event)\"\n class=\"table\"\n [class.hidden]=\"noFilteredResults\">\n @if (withSelection()) {\n <ng-container matColumnDef=\"selection\">\n <mat-header-cell *matHeaderCellDef>\n @if (loadingCellRenderers || loading()) {\n <emr-skeleton-block class=\"size-6\"/>\n } @else {\n <mat-checkbox (change)=\"$event ? toggleAllRows() : null\"\n [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\">\n </mat-checkbox>\n }\n </mat-header-cell>\n <mat-cell *matCellDef=\"let row\">\n @if (loadingCellRenderers || loading()) {\n <emr-skeleton-block class=\"size-6 max-w-full\"/>\n } @else {\n <mat-checkbox (click)=\"$event.stopPropagation()\"\n (change)=\"rowSelectionToggle($event, row)\"\n [checked]=\"selection.isSelected(row)\">\n </mat-checkbox>\n }\n </mat-cell>\n </ng-container>\n }\n\n @for (columnDef of columnDefs(); track columnDef) {\n @if (columnDef.visible) {\n <ng-container [matColumnDef]=\"columnDef.dataField\">\n <mat-header-cell *matHeaderCellDef mat-sort-header class=\"header-cell\"\n [style.--emr-data-view-cell-width]=\"columnDef.width\">\n <div class=\"overflow-hidden w-full\">\n @if (loadingCellRenderers || loading()) {\n <emr-skeleton-line class=\"w-24 max-w-full\"/>\n } @else {\n {{ columnDef.name }}\n }\n </div>\n </mat-header-cell>\n <mat-cell *matCellDef=\"let element\" class=\"cell\"\n [style.--emr-data-view-cell-width]=\"columnDef.width\">\n <div class=\"overflow-hidden w-full\">\n @if (loadingCellRenderers || loading()) {\n <emr-skeleton-line/>\n } @else {\n @if (columnDef.dataRenderer && hasCellRenderer(columnDef.dataRenderer)) {\n <ng-container [ngComponentOutlet]=\"getCellRenderer(columnDef.dataRenderer)\"\n [ngComponentOutletInputs]=\"{ element, columnDef, fieldData: element[columnDef.dataField] }\"\n [ngComponentOutletInjector]=\"injector\"/>\n } @else {\n {{ element[columnDef.dataField] }}\n }\n }\n </div>\n </mat-cell>\n </ng-container>\n }\n }\n\n <ng-container matColumnDef=\"__actionBar\">\n <mat-header-cell *matHeaderCellDef class=\"header-cell-action-bar\"/>\n <mat-cell *matCellDef=\"let element\" class=\"cell-action-bar\">\n @if (actionBarTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"actionBarTemplateRef\" [ngTemplateOutletContext]=\"{ $implicit: element }\"/>\n }\n </mat-cell>\n </ng-container>\n <mat-header-row *matHeaderRowDef=\"displayedColumns(); sticky: stickyHeader()\"/>\n <mat-row *matRowDef=\"let row; columns: displayedColumns()\" class=\"data-view-row\"\n [class.is-selected]=\"selection.isSelected(row)\"/>\n </mat-table>\n</emr-skeleton>\n\n@if (noFilteredResults) {\n @if (loading()) {\n <div class=\"flex flex-col items-center justify-center h-full\">\n <emr-skeleton-circle class=\"size-32\"/>\n <emr-skeleton-line class=\"w-1/2 mt-9\"/>\n <emr-skeleton-line class=\"w-1/3 h-4 mt-5\"/>\n </div>\n } @else {\n @if (hasFilterValue) {\n <ng-container [ngTemplateOutlet]=\"emptyFilterResultsTemplateRef\"/>\n } @else {\n <ng-container [ngTemplateOutlet]=\"emptyTemplateRef\"/>\n }\n }\n}\n", styles: [":host{--emr-data-view-row-bg: var(--color-background);--emr-data-view-hl-header-row-bg: var(--color-surface-container);--emr-data-view-hl-header-margin: calc(var(--spacing) * 1) 0;--emr-data-view-sticky-header-top: 0;--emr-data-view-selected-border-color: var(--color-primary);--emr-data-view-row-hover-bg: var(--color-surface-bright);--emr-data-view-bg: transparent;--mat-table-row-item-outline-width: 0;--mat-table-background-color: var(--emr-data-view-bg);--emr-content-fade-color: var(--emr-data-view-row-bg);--emr-data-view-header-bg: var(--color-background);display:flex;flex-direction:column;height:100%}:host mat-table{height:100%;padding-bottom:calc(var(--spacing) * 3)}:host ::ng-deep emr-block-state{--emr-block-state-padding: 0}:host ::ng-deep .mat-mdc-header-row{background:var(--emr-data-view-header-bg)}:host .mat-mdc-cell{background:var(--emr-data-view-row-bg)}:host .mat-mdc-cell.cell-action-bar{background:linear-gradient(to left,var(--emr-data-view-row-bg) 90%,transparent)}:host .emr-skeleton-block{z-index:1}:host .mdc-data-table__cell.mat-column-selection:first-child,:host .mdc-data-table__header-cell.mat-column-selection:first-child{max-width:calc(var(--spacing) * 16);padding:0;justify-content:center}:host .mat-mdc-header-cell{text-transform:uppercase;font-size:var(--text-xs);overflow:hidden}:host .mat-mdc-row.mdc-data-table__row{border:1px solid var(--color-border)!important;border-radius:.75rem;overflow:hidden;height:calc(var(--spacing) * 16)}:host .mat-mdc-row.mdc-data-table__row+.mdc-data-table__row{margin-top:calc(var(--spacing) * 4)}:host .mdc-data-table__row{position:relative}:host .mdc-data-table__row.is-selected{border-color:var(--emr-data-view-selected-border-color)!important}:host.hover-rows .data-view-row:hover .mat-mdc-cell{--emr-data-view-row-bg: var(--emr-data-view-row-hover-bg)}:host .data-view-row:hover .cell-action-bar{opacity:100%;z-index:1}:host.is-loading .data-view-row .cell-action-bar{display:none}:host ::ng-deep .header-cell,:host ::ng-deep .cell{min-width:var(--emr-data-view-cell-width, auto);max-width:var(--emr-data-view-cell-width, auto)}:host ::ng-deep .cell{padding-top:calc(var(--spacing) * 2);padding-bottom:calc(var(--spacing) * 2)}:host ::ng-deep .header-cell-action-bar,:host ::ng-deep .cell-action-bar{position:absolute;top:0;bottom:0;inset-inline-end:0;padding:0}:host ::ng-deep .header-cell-action-bar:not(:has(.force-visible)),:host ::ng-deep .cell-action-bar:not(:has(.force-visible)){opacity:0;z-index:-50}:host .mat-mdc-table .mat-mdc-header-cell{color:var(--sys-on-surface)}:host.highlight-header ::ng-deep .mat-mdc-header-row{position:relative;margin:var(--emr-data-view-hl-header-margin)}:host.highlight-header ::ng-deep .mat-mdc-header-row:before{content:\"\";position:absolute;left:0;right:0;background:var(--emr-data-view-hl-header-row-bg);height:calc(var(--spacing) * 10);border-radius:.5rem;z-index:0}:host.highlight-header ::ng-deep .mdc-data-table__header-cell{--emr-skeleton-from-bg: var(--color-neutral-300);--emr-skeleton-to-bg: var(--color-neutral-400)}:host.highlight-header ::ng-deep .mat-mdc-table .mat-mdc-header-cell{background:transparent;color:var(--text-neutral-700)}:host ::ng-deep .mat-sort-header{z-index:1;position:relative}:host ::ng-deep .mat-sort-header-stem{width:1px}:host ::ng-deep .mat-sort-header-pointer-left,:host ::ng-deep .mat-sort-header-pointer-right{height:1px}:host ::ng-deep .mat-sort-header-pointer-middle{width:1px;height:1px}:host[data-view-variant=table]{--emr-data-view-hl-header-margin: 0}:host[data-view-variant=table] .mat-mdc-header-row:before{height:calc(var(--spacing) * 12)}:host[data-view-variant=table] .mat-mdc-row.mdc-data-table__row{border:none!important;border-top:1px solid var(--color-border)!important;height:auto;border-radius:0}:host[data-view-variant=table] .mat-mdc-row.mdc-data-table__row+.mdc-data-table__row{margin-top:0}:host[data-view-variant=table].highlight-header .mat-mdc-row.mdc-data-table__row:first-of-type{border-top:none!important}:host-context(html.dark){--emr-data-view-row-hover-bg: var(--color-surface-container-low)}:host-context(html.dark) ::ng-deep .mdc-data-table__header-cell{--emr-skeleton-from-bg: var(--color-neutral-700);--emr-skeleton-to-bg: var(--color-neutral-800)}:host-context(html.dark) ::ng-deep .mat-mdc-table .mat-mdc-header-cell{color:var(--text-neutral-400)}\n/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\n"] }]
265
265
  }], ctorParameters: () => [], propDecorators: { _emptyDataRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => DataViewEmptyDataDirective), { isSignal: true }] }], _emptyFilterResults: [{ type: i0.ContentChild, args: [i0.forwardRef(() => DataViewEmptyFilterResultsDirective), { isSignal: true }] }], _actionBarRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => DataViewActionBarDirective), { isSignal: true }] }], _matTable: [{ type: i0.ViewChild, args: ['table', { isSignal: true }] }], _matSort: [{ type: i0.ViewChild, args: [i0.forwardRef(() => MatSort), { isSignal: true }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], paginator: [{ type: i0.Input, args: [{ isSignal: true, alias: "paginator", required: false }] }], columnDefs: [{ type: i0.Input, args: [{ isSignal: true, alias: "columnDefs", required: false }] }], data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], withSelection: [{ type: i0.Input, args: [{ isSignal: true, alias: "withSelection", required: false }] }], highlightHeader: [{ type: i0.Input, args: [{ isSignal: true, alias: "highlightHeader", required: false }] }], rowModelType: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowModelType", required: false }] }], withSorting: [{ type: i0.Input, args: [{ isSignal: true, alias: "withSorting", required: false }] }], stickyHeader: [{ type: i0.Input, args: [{ isSignal: true, alias: "stickyHeader", required: false }] }], hoverRows: [{ type: i0.Input, args: [{ isSignal: true, alias: "hoverRows", required: false }] }], cellRenderers: [{ type: i0.Input, args: [{ isSignal: true, alias: "cellRenderers", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], search: [{ type: i0.Input, args: [{ isSignal: true, alias: "search", required: false }] }], rowSelectionChanged: [{ type: i0.Output, args: ["rowSelectionChanged"] }], selectionChanged: [{ type: i0.Output, args: ["selectionChanged"] }], allRowsSelectionChanged: [{ type: i0.Output, args: ["allRowsSelectionChanged"] }], sortChange: [{ type: i0.Output, args: ["sortChange"] }] } });
266
266
 
267
267
  class DataViewActionBarComponent {
@@ -276,15 +276,15 @@ class DataViewActionBarComponent {
276
276
  },
277
277
  };
278
278
  }
279
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: DataViewActionBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
280
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.10", type: DataViewActionBarComponent, isStandalone: true, selector: "emr-data-view-action-bar", inputs: { forceVisible: { classPropertyName: "forceVisible", publicName: "forceVisible", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.force-visible": "forceVisible() || _forceVisible" }, classAttribute: "emr-data-view-action-bar" }, exportAs: ["emrDataViewActionBar"], ngImport: i0, template: "<ng-content/>\r\n", styles: [":host{height:100%;padding-inline-start:calc(var(--spacing) * 4);padding-inline-end:calc(var(--spacing) * 4);display:flex;align-items:center;gap:calc(var(--spacing) * 3);position:relative}\n/*! tailwindcss v4.1.14 | MIT License | https://tailwindcss.com */\n"] });
279
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DataViewActionBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
280
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.25", type: DataViewActionBarComponent, isStandalone: true, selector: "emr-data-view-action-bar", inputs: { forceVisible: { classPropertyName: "forceVisible", publicName: "forceVisible", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.force-visible": "forceVisible() || _forceVisible" }, classAttribute: "emr-data-view-action-bar" }, exportAs: ["emrDataViewActionBar"], ngImport: i0, template: "<ng-content/>\n", styles: [":host{height:100%;padding-inline-start:calc(var(--spacing) * 4);padding-inline-end:calc(var(--spacing) * 4);display:flex;align-items:center;gap:calc(var(--spacing) * 3);position:relative}\n/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\n"] });
281
281
  }
282
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: DataViewActionBarComponent, decorators: [{
282
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DataViewActionBarComponent, decorators: [{
283
283
  type: Component,
284
284
  args: [{ selector: 'emr-data-view-action-bar', exportAs: 'emrDataViewActionBar', host: {
285
285
  'class': 'emr-data-view-action-bar',
286
286
  '[class.force-visible]': 'forceVisible() || _forceVisible'
287
- }, template: "<ng-content/>\r\n", styles: [":host{height:100%;padding-inline-start:calc(var(--spacing) * 4);padding-inline-end:calc(var(--spacing) * 4);display:flex;align-items:center;gap:calc(var(--spacing) * 3);position:relative}\n/*! tailwindcss v4.1.14 | MIT License | https://tailwindcss.com */\n"] }]
287
+ }, template: "<ng-content/>\n", styles: [":host{height:100%;padding-inline-start:calc(var(--spacing) * 4);padding-inline-end:calc(var(--spacing) * 4);display:flex;align-items:center;gap:calc(var(--spacing) * 3);position:relative}\n/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\n"] }]
288
288
  }], propDecorators: { forceVisible: [{ type: i0.Input, args: [{ isSignal: true, alias: "forceVisible", required: false }] }] } });
289
289
 
290
290
  function cellRenderer(dataRenderer, component) {
@@ -1 +1 @@
1
- {"version":3,"file":"elementar-rt-components-data-view.mjs","sources":["../../../projects/components/data-view/src/data-view-empty-data.directive.ts","../../../projects/components/data-view/src/data-view-empty-filter-results.directive.ts","../../../projects/components/data-view/src/data-view-action-bar.directive.ts","../../../projects/components/data-view/src/data-view/data-view.component.ts","../../../projects/components/data-view/src/data-view/data-view.component.html","../../../projects/components/data-view/src/data-view-action-bar/data-view-action-bar.component.ts","../../../projects/components/data-view/src/data-view-action-bar/data-view-action-bar.component.html","../../../projects/components/data-view/src/cell-renderer.ts","../../../projects/components/data-view/elementar-rt-components-data-view.ts"],"sourcesContent":["import { Directive, inject, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[emrDataViewEmptyData]',\r\n exportAs: 'emrDataViewEmptyData',\r\n standalone: true,\r\n host: {\r\n 'class': 'emr-data-view-empty-data',\r\n }\r\n})\r\nexport class DataViewEmptyDataDirective {\r\n readonly templateRef = inject(TemplateRef);\r\n}\r\n","import { Directive, inject, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[emrDataViewEmptyFilterResults]',\r\n exportAs: 'emrDataViewEmptyFilterResults',\r\n standalone: true,\r\n host: {\r\n 'class': 'emr-data-view-empty-filter-results',\r\n }\r\n})\r\nexport class DataViewEmptyFilterResultsDirective {\r\n readonly templateRef = inject(TemplateRef);\r\n}\r\n","import { Directive, inject, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[emrDataViewActionBar]',\r\n standalone: true\r\n})\r\nexport class DataViewActionBarDirective {\r\n readonly templateRef = inject(TemplateRef);\r\n}\r\n","import {\r\n booleanAttribute,\r\n ChangeDetectorRef,\r\n Component,\r\n computed, contentChild, effect, ElementRef,\r\n inject, Injector,\r\n input,\r\n OnInit,\r\n output, Renderer2, TemplateRef,\r\n viewChild\r\n} from '@angular/core';\r\nimport {\r\n MatCell,\r\n MatCellDef,\r\n MatColumnDef,\r\n MatHeaderCell, MatHeaderCellDef,\r\n MatHeaderRow,\r\n MatHeaderRowDef, MatRow, MatRowDef, MatTable, MatTableDataSource\r\n} from '@angular/material/table';\r\nimport { MatCheckbox, MatCheckboxChange } from '@angular/material/checkbox';\r\nimport {\r\n DataView,\r\n DataViewAPI,\r\n DataViewCellRenderer,\r\n DataViewColumnDef, DataViewRowModelType,\r\n DataViewRowSelectionEvent\r\n} from '../types';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort, MatSortHeader, Sort } from '@angular/material/sort';\r\nimport { NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\r\nimport {\r\n SkeletonBlockComponent,\r\n SkeletonCircleComponent,\r\n SkeletonComponent,\r\n SkeletonLineComponent\r\n} from '@elementar-rt/components/skeleton';\r\nimport { DataViewEmptyDataDirective } from '../data-view-empty-data.directive';\r\nimport { DataViewEmptyFilterResultsDirective } from '../data-view-empty-filter-results.directive';\r\nimport { DataViewActionBarDirective } from '../data-view-action-bar.directive';\r\n\r\n@Component({\r\n selector: 'emr-data-view',\r\n exportAs: 'emrDataView',\r\n imports: [\r\n MatCell,\r\n MatCheckbox,\r\n MatColumnDef,\r\n MatHeaderCell,\r\n MatHeaderRow,\r\n MatHeaderRowDef,\r\n MatRow,\r\n MatRowDef,\r\n MatTable,\r\n MatHeaderCellDef,\r\n MatSort,\r\n MatSortHeader,\r\n NgComponentOutlet,\r\n NgTemplateOutlet,\r\n SkeletonBlockComponent,\r\n MatCellDef,\r\n SkeletonLineComponent,\r\n SkeletonCircleComponent,\r\n SkeletonComponent,\r\n ],\r\n templateUrl: './data-view.component.html',\r\n styleUrl: './data-view.component.scss',\r\n host: {\r\n 'class': 'emr-data-view',\r\n '[class.highlight-header]': 'highlightHeader()',\r\n '[class.hover-rows]': 'hoverRows()',\r\n '[class.is-loading]': 'loading()',\r\n }\r\n})\r\nexport class DataViewComponent<T> implements OnInit, DataView {\r\n private _cdr = inject(ChangeDetectorRef);\r\n private _elementRef = inject(ElementRef);\r\n private _renderer = inject(Renderer2);\r\n\r\n protected _emptyDataRef = contentChild(DataViewEmptyDataDirective);\r\n protected _emptyFilterResults = contentChild(DataViewEmptyFilterResultsDirective);\r\n protected _actionBarRef = contentChild<DataViewActionBarDirective>(DataViewActionBarDirective);\r\n private _matTable = viewChild<MatTable<T>>('table');\r\n private _matSort = viewChild<MatSort>(MatSort);\r\n\r\n variant = input<string>('list');\r\n paginator = input<MatPaginator>();\r\n columnDefs = input<DataViewColumnDef[]>([]);\r\n data = input<T[]>([]);\r\n withSelection = input(false, {\r\n transform: booleanAttribute\r\n });\r\n highlightHeader = input(false, {\r\n transform: booleanAttribute\r\n });\r\n rowModelType = input<DataViewRowModelType>('clientSide');\r\n withSorting = input(false, {\r\n transform: booleanAttribute\r\n });\r\n stickyHeader = input(false, {\r\n transform: booleanAttribute\r\n });\r\n hoverRows = input(false, {\r\n transform: booleanAttribute\r\n });\r\n displayedColumns = computed((): string[] => {\r\n const displayedColumns = this\r\n .columnDefs()\r\n .filter(colDef => colDef.visible)\r\n .map(colDef => colDef.dataField)\r\n ;\r\n\r\n if (this.withSelection()) {\r\n displayedColumns.unshift('selection');\r\n }\r\n\r\n return [...displayedColumns, '__actionBar'];\r\n });\r\n dataSource = computed((): MatTableDataSource<T> => {\r\n const dataSource = new MatTableDataSource<T>(this.data());\r\n\r\n if (this.paginator()) {\r\n dataSource.paginator = this.paginator() as MatPaginator;\r\n }\r\n\r\n if (this.withSorting() && this.rowModelType() === 'clientSide') {\r\n dataSource.sort = this._matSort() as MatSort;\r\n }\r\n\r\n dataSource.sortingDataAccessor = (item: any, property) => {\r\n const columnDef = this.columnDefs().find(colDef => colDef.dataField === property);\r\n\r\n if (columnDef) {\r\n if (columnDef.valueGetter) {\r\n return columnDef.valueGetter(item[property]);\r\n }\r\n }\r\n\r\n switch (property) {\r\n default: {\r\n return item[property];\r\n }\r\n }\r\n };\r\n\r\n return dataSource;\r\n });\r\n cellRenderers = input<DataViewCellRenderer[]>([]);\r\n loading = input(false, {\r\n transform: booleanAttribute\r\n });\r\n search = input<string>('');\r\n\r\n protected injector = inject(Injector);\r\n protected selection = new SelectionModel<T>(true, []);\r\n protected cellRenderersMap = new Map<string, any>();\r\n protected loadingCellRenderers = false;\r\n\r\n readonly rowSelectionChanged = output<DataViewRowSelectionEvent<T>>();\r\n readonly selectionChanged = output<T[]>();\r\n readonly allRowsSelectionChanged = output<boolean>();\r\n readonly sortChange = output<Sort>();\r\n\r\n get api(): DataViewAPI {\r\n return {\r\n search: (value: string): void => {\r\n this.dataSource().filter = value.trim().toLowerCase();\r\n },\r\n selectAll: (): void => {\r\n this._selectAll();\r\n },\r\n unselectAll: (): void => {\r\n this._unselectAll();\r\n }\r\n }\r\n }\r\n\r\n get noFilteredResults(): boolean {\r\n return !!(this._emptyDataRef() || this._emptyFilterResults()) &&\r\n ((this.dataSource().filteredData.length === 0 && this.rowModelType() === 'clientSide') ||\r\n (this.dataSource().data.length === 0 && this.rowModelType() === 'serverSide'))\r\n ;\r\n }\r\n\r\n get actionBarTemplateRef(): TemplateRef<any> | undefined {\r\n return this._actionBarRef()?.templateRef;\r\n }\r\n\r\n protected get emptyTemplateRef(): TemplateRef<any> {\r\n return this._emptyDataRef()?.templateRef as TemplateRef<any>;\r\n }\r\n\r\n protected get emptyFilterResultsTemplateRef(): TemplateRef<any> {\r\n return this._emptyFilterResults()?.templateRef as TemplateRef<any>;\r\n }\r\n\r\n protected get hasFilterValue(): boolean {\r\n return !!this.search().trim();\r\n }\r\n\r\n constructor() {\r\n effect(() => {\r\n if (this.rowModelType() === 'clientSide') {\r\n this.dataSource().filter = this.search().trim().toLowerCase();\r\n }\r\n\r\n this._renderer.setAttribute(this._elementRef.nativeElement, 'data-view-variant', this.variant());\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n if (this.cellRenderers().length === 0) {\r\n return;\r\n }\r\n\r\n this.loadingCellRenderers = true;\r\n const components = this.cellRenderers().map(cellRenderer => cellRenderer.component());\r\n Promise.all(components).then(components => {\r\n components.forEach((component, index: number) => {\r\n this.cellRenderersMap.set(this.cellRenderers()[index].dataRenderer, component)\r\n });\r\n this.loadingCellRenderers = false;\r\n this._cdr.detectChanges();\r\n });\r\n }\r\n\r\n get matTable(): MatTable<T> {\r\n return this._matTable() as MatTable<T>;\r\n }\r\n\r\n get matSort(): MatSort {\r\n return this._matSort() as MatSort;\r\n }\r\n\r\n hasCellRenderer(dataRenderer: string): boolean {\r\n return this.cellRenderersMap.has(dataRenderer);\r\n }\r\n\r\n getCellRenderer(dataRenderer: string): any {\r\n return this.cellRenderersMap.get(dataRenderer);\r\n }\r\n\r\n isAllSelected(): boolean {\r\n return this.selection.selected.length === this.data().length;\r\n }\r\n\r\n toggleAllRows(): void {\r\n if (this.isAllSelected()) {\r\n this._unselectAll();\r\n } else {\r\n this._selectAll();\r\n }\r\n }\r\n\r\n rowSelectionToggle(event: MatCheckboxChange, row: T): void {\r\n if (event.checked) {\r\n this.selection.select(row);\r\n } else {\r\n this.selection.deselect(row);\r\n }\r\n\r\n this.rowSelectionChanged.emit({\r\n matCheckboxChange: event,\r\n row,\r\n checked: event.checked\r\n });\r\n this.selectionChanged.emit(this.selection.selected);\r\n }\r\n\r\n protected onSortChange(event: Sort): void {\r\n this.sortChange.emit(event);\r\n }\r\n\r\n private _selectAll(): void {\r\n this.selection.select(...this.data());\r\n this.selectionChanged.emit(this.data());\r\n this.allRowsSelectionChanged.emit(true);\r\n }\r\n\r\n private _unselectAll(): void {\r\n this.selection.clear();\r\n this.selectionChanged.emit([]);\r\n this.allRowsSelectionChanged.emit(false);\r\n }\r\n}\r\n","<emr-skeleton>\r\n <mat-table matSort\r\n [dataSource]=\"dataSource()\"\r\n [matSortDisabled]=\"!withSorting() || (loading() && rowModelType() === 'serverSide')\"\r\n (matSortChange)=\"onSortChange($event)\"\r\n class=\"table\"\r\n [class.hidden]=\"noFilteredResults\">\r\n @if (withSelection()) {\r\n <ng-container matColumnDef=\"selection\">\r\n <mat-header-cell *matHeaderCellDef>\r\n @if (loadingCellRenderers || loading()) {\r\n <emr-skeleton-block class=\"size-6\"/>\r\n } @else {\r\n <mat-checkbox (change)=\"$event ? toggleAllRows() : null\"\r\n [checked]=\"selection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\">\r\n </mat-checkbox>\r\n }\r\n </mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\">\r\n @if (loadingCellRenderers || loading()) {\r\n <emr-skeleton-block class=\"size-6 max-w-full\"/>\r\n } @else {\r\n <mat-checkbox (click)=\"$event.stopPropagation()\"\r\n (change)=\"rowSelectionToggle($event, row)\"\r\n [checked]=\"selection.isSelected(row)\">\r\n </mat-checkbox>\r\n }\r\n </mat-cell>\r\n </ng-container>\r\n }\r\n\r\n @for (columnDef of columnDefs(); track columnDef) {\r\n @if (columnDef.visible) {\r\n <ng-container [matColumnDef]=\"columnDef.dataField\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header class=\"header-cell\"\r\n [style.--emr-data-view-cell-width]=\"columnDef.width\">\r\n <div class=\"overflow-hidden w-full\">\r\n @if (loadingCellRenderers || loading()) {\r\n <emr-skeleton-line class=\"w-24 max-w-full\"/>\r\n } @else {\r\n {{ columnDef.name }}\r\n }\r\n </div>\r\n </mat-header-cell>\r\n <mat-cell *matCellDef=\"let element\" class=\"cell\"\r\n [style.--emr-data-view-cell-width]=\"columnDef.width\">\r\n <div class=\"overflow-hidden w-full\">\r\n @if (loadingCellRenderers || loading()) {\r\n <emr-skeleton-line/>\r\n } @else {\r\n @if (columnDef.dataRenderer && hasCellRenderer(columnDef.dataRenderer)) {\r\n <ng-container [ngComponentOutlet]=\"getCellRenderer(columnDef.dataRenderer)\"\r\n [ngComponentOutletInputs]=\"{ element, columnDef, fieldData: element[columnDef.dataField] }\"\r\n [ngComponentOutletInjector]=\"injector\"/>\r\n } @else {\r\n {{ element[columnDef.dataField] }}\r\n }\r\n }\r\n </div>\r\n </mat-cell>\r\n </ng-container>\r\n }\r\n }\r\n\r\n <ng-container matColumnDef=\"__actionBar\">\r\n <mat-header-cell *matHeaderCellDef class=\"header-cell-action-bar\"/>\r\n <mat-cell *matCellDef=\"let element\" class=\"cell-action-bar\">\r\n @if (actionBarTemplateRef) {\r\n <ng-container [ngTemplateOutlet]=\"actionBarTemplateRef\" [ngTemplateOutletContext]=\"{ $implicit: element }\"/>\r\n }\r\n </mat-cell>\r\n </ng-container>\r\n <mat-header-row *matHeaderRowDef=\"displayedColumns(); sticky: stickyHeader()\"/>\r\n <mat-row *matRowDef=\"let row; columns: displayedColumns()\" class=\"data-view-row\"\r\n [class.is-selected]=\"selection.isSelected(row)\"/>\r\n </mat-table>\r\n</emr-skeleton>\r\n\r\n@if (noFilteredResults) {\r\n @if (loading()) {\r\n <div class=\"flex flex-col items-center justify-center h-full\">\r\n <emr-skeleton-circle class=\"size-32\"/>\r\n <emr-skeleton-line class=\"w-1/2 mt-9\"/>\r\n <emr-skeleton-line class=\"w-1/3 h-4 mt-5\"/>\r\n </div>\r\n } @else {\r\n @if (hasFilterValue) {\r\n <ng-container [ngTemplateOutlet]=\"emptyFilterResultsTemplateRef\"/>\r\n } @else {\r\n <ng-container [ngTemplateOutlet]=\"emptyTemplateRef\"/>\r\n }\r\n }\r\n}\r\n","import { booleanAttribute, Component, input } from '@angular/core';\r\nimport { DataViewActionBarAPI } from '../types';\r\n\r\n@Component({\r\n selector: 'emr-data-view-action-bar',\r\n exportAs: 'emrDataViewActionBar',\r\n templateUrl: './data-view-action-bar.component.html',\r\n styleUrl: './data-view-action-bar.component.scss',\r\n host: {\r\n 'class': 'emr-data-view-action-bar',\r\n '[class.force-visible]': 'forceVisible() || _forceVisible'\r\n }\r\n})\r\nexport class DataViewActionBarComponent {\r\n forceVisible = input(false, {\r\n transform: booleanAttribute\r\n });\r\n protected _forceVisible = false;\r\n\r\n get api(): DataViewActionBarAPI {\r\n return {\r\n setForceVisible: (forceVisible: boolean): void => {\r\n this._forceVisible = forceVisible;\r\n },\r\n }\r\n }\r\n}\r\n","<ng-content/>\r\n","import { DataViewCellRenderer } from './types';\r\n\r\nexport function cellRenderer<T>(dataRenderer: string, component: any): DataViewCellRenderer {\r\n return {\r\n dataRenderer,\r\n component\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;MAUa,0BAA0B,CAAA;AAC5B,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;wGAD/B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAA1B,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,0BAAA,EAAA,EAAA,QAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBARtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACJ,wBAAA,OAAO,EAAE,0BAA0B;AACpC;AACF,iBAAA;;;MCCY,mCAAmC,CAAA;AACrC,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;wGAD/B,mCAAmC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAnC,mCAAmC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,oCAAA,EAAA,EAAA,QAAA,EAAA,CAAA,+BAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAnC,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAR/C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iCAAiC;AAC3C,oBAAA,QAAQ,EAAE,+BAA+B;AACzC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACJ,wBAAA,OAAO,EAAE,oCAAoC;AAC9C;AACF,iBAAA;;;MCHY,0BAA0B,CAAA;AAC5B,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;wGAD/B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAA1B,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAJtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCqEY,iBAAiB,CAAA;AACpB,IAAA,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAChC,IAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AAChC,IAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AAE3B,IAAA,aAAa,GAAG,YAAY,CAAC,0BAA0B,yDAAC;AACxD,IAAA,mBAAmB,GAAG,YAAY,CAAC,mCAAmC,+DAAC;AACvE,IAAA,aAAa,GAAG,YAAY,CAA6B,0BAA0B,yDAAC;AACtF,IAAA,SAAS,GAAG,SAAS,CAAc,OAAO,qDAAC;AAC3C,IAAA,QAAQ,GAAG,SAAS,CAAU,OAAO,oDAAC;AAE9C,IAAA,OAAO,GAAG,KAAK,CAAS,MAAM,mDAAC;IAC/B,SAAS,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAgB;AACjC,IAAA,UAAU,GAAG,KAAK,CAAsB,EAAE,sDAAC;AAC3C,IAAA,IAAI,GAAG,KAAK,CAAM,EAAE,gDAAC;IACrB,aAAa,GAAG,KAAK,CAAC,KAAK,iDACzB,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CADA;AAC3B,YAAA,SAAS,EAAE;AACZ,SAAA,CAAA,CAAA,CAAC;IACF,eAAe,GAAG,KAAK,CAAC,KAAK,mDAC3B,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CADE;AAC7B,YAAA,SAAS,EAAE;AACZ,SAAA,CAAA,CAAA,CAAC;AACF,IAAA,YAAY,GAAG,KAAK,CAAuB,YAAY,wDAAC;IACxD,WAAW,GAAG,KAAK,CAAC,KAAK,+CACvB,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CADF;AACzB,YAAA,SAAS,EAAE;AACZ,SAAA,CAAA,CAAA,CAAC;IACF,YAAY,GAAG,KAAK,CAAC,KAAK,gDACxB,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CADD;AAC1B,YAAA,SAAS,EAAE;AACZ,SAAA,CAAA,CAAA,CAAC;IACF,SAAS,GAAG,KAAK,CAAC,KAAK,6CACrB,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CADJ;AACvB,YAAA,SAAS,EAAE;AACZ,SAAA,CAAA,CAAA,CAAC;AACF,IAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAe;QACzC,MAAM,gBAAgB,GAAG;AACtB,aAAA,UAAU;aACV,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO;aAC/B,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC;AAGlC,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AACxB,YAAA,gBAAgB,CAAC,OAAO,CAAC,WAAW,CAAC;QACvC;AAEA,QAAA,OAAO,CAAC,GAAG,gBAAgB,EAAE,aAAa,CAAC;AAC7C,IAAA,CAAC,4DAAC;AACF,IAAA,UAAU,GAAG,QAAQ,CAAC,MAA4B;QAChD,MAAM,UAAU,GAAG,IAAI,kBAAkB,CAAI,IAAI,CAAC,IAAI,EAAE,CAAC;AAEzD,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;AACpB,YAAA,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,EAAkB;QACzD;AAEA,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE,KAAK,YAAY,EAAE;AAC9D,YAAA,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAa;QAC9C;QAEA,UAAU,CAAC,mBAAmB,GAAG,CAAC,IAAS,EAAE,QAAQ,KAAI;AACvD,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC;YAEjF,IAAI,SAAS,EAAE;AACb,gBAAA,IAAI,SAAS,CAAC,WAAW,EAAE;oBACzB,OAAO,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC9C;YACF;YAEA,QAAQ,QAAQ;gBACd,SAAS;AACP,oBAAA,OAAO,IAAI,CAAC,QAAQ,CAAC;gBACvB;;AAEJ,QAAA,CAAC;AAED,QAAA,OAAO,UAAU;AACnB,IAAA,CAAC,sDAAC;AACF,IAAA,aAAa,GAAG,KAAK,CAAyB,EAAE,yDAAC;IACjD,OAAO,GAAG,KAAK,CAAC,KAAK,2CACnB,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CADN;AACrB,YAAA,SAAS,EAAE;AACZ,SAAA,CAAA,CAAA,CAAC;AACF,IAAA,MAAM,GAAG,KAAK,CAAS,EAAE,kDAAC;AAEhB,IAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC3B,SAAS,GAAG,IAAI,cAAc,CAAI,IAAI,EAAE,EAAE,CAAC;AAC3C,IAAA,gBAAgB,GAAG,IAAI,GAAG,EAAe;IACzC,oBAAoB,GAAG,KAAK;IAE7B,mBAAmB,GAAG,MAAM,EAAgC;IAC5D,gBAAgB,GAAG,MAAM,EAAO;IAChC,uBAAuB,GAAG,MAAM,EAAW;IAC3C,UAAU,GAAG,MAAM,EAAQ;AAEpC,IAAA,IAAI,GAAG,GAAA;QACL,OAAO;AACL,YAAA,MAAM,EAAE,CAAC,KAAa,KAAU;AAC9B,gBAAA,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;YACvD,CAAC;YACD,SAAS,EAAE,MAAW;gBACpB,IAAI,CAAC,UAAU,EAAE;YACnB,CAAC;YACD,WAAW,EAAE,MAAW;gBACtB,IAAI,CAAC,YAAY,EAAE;YACrB;SACD;IACH;AAEA,IAAA,IAAI,iBAAiB,GAAA;AACnB,QAAA,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC3D,aAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,KAAK,YAAY;AACnF,iBAAC,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,KAAK,YAAY,CAAC,CAAC;IAEpF;AAEA,IAAA,IAAI,oBAAoB,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,aAAa,EAAE,EAAE,WAAW;IAC1C;AAEA,IAAA,IAAc,gBAAgB,GAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,aAAa,EAAE,EAAE,WAA+B;IAC9D;AAEA,IAAA,IAAc,6BAA6B,GAAA;AACzC,QAAA,OAAO,IAAI,CAAC,mBAAmB,EAAE,EAAE,WAA+B;IACpE;AAEA,IAAA,IAAc,cAAc,GAAA;QAC1B,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IAC/B;AAEA,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE,KAAK,YAAY,EAAE;AACxC,gBAAA,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;YAC/D;AAEA,YAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,mBAAmB,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;AAClG,QAAA,CAAC,CAAC;IACJ;IAEA,QAAQ,GAAA;QACN,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;YACrC;QACF;AAEA,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI;AAChC,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,YAAY,IAAI,YAAY,CAAC,SAAS,EAAE,CAAC;QACrF,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,IAAG;YACxC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,KAAa,KAAI;AAC9C,gBAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC,YAAY,EAAE,SAAS,CAAC;AAChF,YAAA,CAAC,CAAC;AACF,YAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK;AACjC,YAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AAC3B,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,SAAS,EAAiB;IACxC;AAEA,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAa;IACnC;AAEA,IAAA,eAAe,CAAC,YAAoB,EAAA;QAClC,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC;IAChD;AAEA,IAAA,eAAe,CAAC,YAAoB,EAAA;QAClC,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC;IAChD;IAEA,aAAa,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM;IAC9D;IAEA,aAAa,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;YACxB,IAAI,CAAC,YAAY,EAAE;QACrB;aAAO;YACL,IAAI,CAAC,UAAU,EAAE;QACnB;IACF;IAEA,kBAAkB,CAAC,KAAwB,EAAE,GAAM,EAAA;AACjD,QAAA,IAAI,KAAK,CAAC,OAAO,EAAE;AACjB,YAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC;QAC5B;aAAO;AACL,YAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC9B;AAEA,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;AAC5B,YAAA,iBAAiB,EAAE,KAAK;YACxB,GAAG;YACH,OAAO,EAAE,KAAK,CAAC;AAChB,SAAA,CAAC;QACF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;IACrD;AAEU,IAAA,YAAY,CAAC,KAAW,EAAA;AAChC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;IAC7B;IAEQ,UAAU,GAAA;QAChB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AACvC,QAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC;IACzC;IAEQ,YAAY,GAAA;AAClB,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;AACtB,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;AAC9B,QAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC;IAC1C;wGAjNW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,wBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,EAAA,cAAA,EAAA,eAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAKW,0BAA0B,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACpB,mCAAmC,gGACb,0BAA0B,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAEvD,OAAO,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECnF/C,qqIA8FA,43IDjDI,OAAO,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACP,WAAW,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,WAAA,EAAA,IAAA,EAAA,UAAA,EAAA,eAAA,EAAA,MAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACX,YAAY,qFACZ,aAAa,EAAA,QAAA,EAAA,sCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACb,YAAY,EAAA,QAAA,EAAA,oCAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACZ,eAAe,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACf,MAAM,EAAA,QAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACN,SAAS,uGACT,QAAQ,EAAA,QAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACR,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACP,aAAa,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,eAAA,EAAA,OAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACb,iBAAiB,6TACjB,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,sBAAsB,EAAA,QAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACtB,UAAU,yDACV,qBAAqB,EAAA,QAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACrB,uBAAuB,EAAA,QAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACvB,iBAAiB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FAWR,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAjC7B,SAAS;+BACE,eAAe,EAAA,QAAA,EACf,aAAa,EAAA,OAAA,EACd;wBACP,OAAO;wBACP,WAAW;wBACX,YAAY;wBACZ,aAAa;wBACb,YAAY;wBACZ,eAAe;wBACf,MAAM;wBACN,SAAS;wBACT,QAAQ;wBACR,gBAAgB;wBAChB,OAAO;wBACP,aAAa;wBACb,iBAAiB;wBACjB,gBAAgB;wBAChB,sBAAsB;wBACtB,UAAU;wBACV,qBAAqB;wBACrB,uBAAuB;wBACvB,iBAAiB;qBAClB,EAAA,IAAA,EAGK;AACJ,wBAAA,OAAO,EAAE,eAAe;AACxB,wBAAA,0BAA0B,EAAE,mBAAmB;AAC/C,wBAAA,oBAAoB,EAAE,aAAa;AACnC,wBAAA,oBAAoB,EAAE,WAAW;AAClC,qBAAA,EAAA,QAAA,EAAA,qqIAAA,EAAA,MAAA,EAAA,CAAA,o0IAAA,CAAA,EAAA;AAOsC,SAAA,CAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,EAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAAA,0BAA0B,qGACpB,mCAAmC,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MACb,0BAA0B,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAClD,OAAO,sFACZ,OAAO,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,eAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,cAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,cAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,eAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,uBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,yBAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;MEtElC,0BAA0B,CAAA;IACrC,YAAY,GAAG,KAAK,CAAC,KAAK,gDACxB,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CADD;AAC1B,YAAA,SAAS,EAAE;AACZ,SAAA,CAAA,CAAA,CAAC;IACQ,aAAa,GAAG,KAAK;AAE/B,IAAA,IAAI,GAAG,GAAA;QACL,OAAO;AACL,YAAA,eAAe,EAAE,CAAC,YAAqB,KAAU;AAC/C,gBAAA,IAAI,CAAC,aAAa,GAAG,YAAY;YACnC,CAAC;SACF;IACH;wGAZW,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA1B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,iZCbvC,mBACA,EAAA,MAAA,EAAA,CAAA,mQAAA,CAAA,EAAA,CAAA;;4FDYa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAVtC,SAAS;+BACE,0BAA0B,EAAA,QAAA,EAC1B,sBAAsB,EAAA,IAAA,EAG1B;AACJ,wBAAA,OAAO,EAAE,0BAA0B;AACnC,wBAAA,uBAAuB,EAAE;AAC1B,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,mQAAA,CAAA,EAAA;;;AETG,SAAU,YAAY,CAAI,YAAoB,EAAE,SAAc,EAAA;IAClE,OAAO;QACL,YAAY;QACZ;KACD;AACH;;ACPA;;AAEG;;;;"}
1
+ {"version":3,"file":"elementar-rt-components-data-view.mjs","sources":["../../../projects/components/data-view/src/data-view-empty-data.directive.ts","../../../projects/components/data-view/src/data-view-empty-filter-results.directive.ts","../../../projects/components/data-view/src/data-view-action-bar.directive.ts","../../../projects/components/data-view/src/data-view/data-view.component.ts","../../../projects/components/data-view/src/data-view/data-view.component.html","../../../projects/components/data-view/src/data-view-action-bar/data-view-action-bar.component.ts","../../../projects/components/data-view/src/data-view-action-bar/data-view-action-bar.component.html","../../../projects/components/data-view/src/cell-renderer.ts","../../../projects/components/data-view/elementar-rt-components-data-view.ts"],"sourcesContent":["import { Directive, inject, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[emrDataViewEmptyData]',\n exportAs: 'emrDataViewEmptyData',\n standalone: true,\n host: {\n 'class': 'emr-data-view-empty-data',\n }\n})\nexport class DataViewEmptyDataDirective {\n readonly templateRef = inject(TemplateRef);\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[emrDataViewEmptyFilterResults]',\n exportAs: 'emrDataViewEmptyFilterResults',\n standalone: true,\n host: {\n 'class': 'emr-data-view-empty-filter-results',\n }\n})\nexport class DataViewEmptyFilterResultsDirective {\n readonly templateRef = inject(TemplateRef);\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[emrDataViewActionBar]',\n standalone: true\n})\nexport class DataViewActionBarDirective {\n readonly templateRef = inject(TemplateRef);\n}\n","import {\n booleanAttribute,\n ChangeDetectorRef,\n Component,\n computed, contentChild, effect, ElementRef,\n inject, Injector,\n input,\n OnInit,\n output, Renderer2, TemplateRef,\n viewChild\n} from '@angular/core';\nimport {\n MatCell,\n MatCellDef,\n MatColumnDef,\n MatHeaderCell, MatHeaderCellDef,\n MatHeaderRow,\n MatHeaderRowDef, MatRow, MatRowDef, MatTable, MatTableDataSource\n} from '@angular/material/table';\nimport { MatCheckbox, MatCheckboxChange } from '@angular/material/checkbox';\nimport {\n DataView,\n DataViewAPI,\n DataViewCellRenderer,\n DataViewColumnDef, DataViewRowModelType,\n DataViewRowSelectionEvent\n} from '../types';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort, MatSortHeader, Sort } from '@angular/material/sort';\nimport { NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\nimport {\n SkeletonBlockComponent,\n SkeletonCircleComponent,\n SkeletonComponent,\n SkeletonLineComponent\n} from '@elementar-rt/components/skeleton';\nimport { DataViewEmptyDataDirective } from '../data-view-empty-data.directive';\nimport { DataViewEmptyFilterResultsDirective } from '../data-view-empty-filter-results.directive';\nimport { DataViewActionBarDirective } from '../data-view-action-bar.directive';\n\n@Component({\n selector: 'emr-data-view',\n exportAs: 'emrDataView',\n imports: [\n MatCell,\n MatCheckbox,\n MatColumnDef,\n MatHeaderCell,\n MatHeaderRow,\n MatHeaderRowDef,\n MatRow,\n MatRowDef,\n MatTable,\n MatHeaderCellDef,\n MatSort,\n MatSortHeader,\n NgComponentOutlet,\n NgTemplateOutlet,\n SkeletonBlockComponent,\n MatCellDef,\n SkeletonLineComponent,\n SkeletonCircleComponent,\n SkeletonComponent,\n ],\n templateUrl: './data-view.component.html',\n styleUrl: './data-view.component.scss',\n host: {\n 'class': 'emr-data-view',\n '[class.highlight-header]': 'highlightHeader()',\n '[class.hover-rows]': 'hoverRows()',\n '[class.is-loading]': 'loading()',\n }\n})\nexport class DataViewComponent<T> implements OnInit, DataView {\n private _cdr = inject(ChangeDetectorRef);\n private _elementRef = inject(ElementRef);\n private _renderer = inject(Renderer2);\n\n protected _emptyDataRef = contentChild(DataViewEmptyDataDirective);\n protected _emptyFilterResults = contentChild(DataViewEmptyFilterResultsDirective);\n protected _actionBarRef = contentChild<DataViewActionBarDirective>(DataViewActionBarDirective);\n private _matTable = viewChild<MatTable<T>>('table');\n private _matSort = viewChild<MatSort>(MatSort);\n\n variant = input<string>('list');\n paginator = input<MatPaginator>();\n columnDefs = input<DataViewColumnDef[]>([]);\n data = input<T[]>([]);\n withSelection = input(false, {\n transform: booleanAttribute\n });\n highlightHeader = input(false, {\n transform: booleanAttribute\n });\n rowModelType = input<DataViewRowModelType>('clientSide');\n withSorting = input(false, {\n transform: booleanAttribute\n });\n stickyHeader = input(false, {\n transform: booleanAttribute\n });\n hoverRows = input(false, {\n transform: booleanAttribute\n });\n displayedColumns = computed((): string[] => {\n const displayedColumns = this\n .columnDefs()\n .filter(colDef => colDef.visible)\n .map(colDef => colDef.dataField)\n ;\n\n if (this.withSelection()) {\n displayedColumns.unshift('selection');\n }\n\n return [...displayedColumns, '__actionBar'];\n });\n dataSource = computed((): MatTableDataSource<T> => {\n const dataSource = new MatTableDataSource<T>(this.data());\n\n if (this.paginator()) {\n dataSource.paginator = this.paginator() as MatPaginator;\n }\n\n if (this.withSorting() && this.rowModelType() === 'clientSide') {\n dataSource.sort = this._matSort() as MatSort;\n }\n\n dataSource.sortingDataAccessor = (item: any, property) => {\n const columnDef = this.columnDefs().find(colDef => colDef.dataField === property);\n\n if (columnDef) {\n if (columnDef.valueGetter) {\n return columnDef.valueGetter(item[property]);\n }\n }\n\n switch (property) {\n default: {\n return item[property];\n }\n }\n };\n\n return dataSource;\n });\n cellRenderers = input<DataViewCellRenderer[]>([]);\n loading = input(false, {\n transform: booleanAttribute\n });\n search = input<string>('');\n\n protected injector = inject(Injector);\n protected selection = new SelectionModel<T>(true, []);\n protected cellRenderersMap = new Map<string, any>();\n protected loadingCellRenderers = false;\n\n readonly rowSelectionChanged = output<DataViewRowSelectionEvent<T>>();\n readonly selectionChanged = output<T[]>();\n readonly allRowsSelectionChanged = output<boolean>();\n readonly sortChange = output<Sort>();\n\n get api(): DataViewAPI {\n return {\n search: (value: string): void => {\n this.dataSource().filter = value.trim().toLowerCase();\n },\n selectAll: (): void => {\n this._selectAll();\n },\n unselectAll: (): void => {\n this._unselectAll();\n }\n }\n }\n\n get noFilteredResults(): boolean {\n return !!(this._emptyDataRef() || this._emptyFilterResults()) &&\n ((this.dataSource().filteredData.length === 0 && this.rowModelType() === 'clientSide') ||\n (this.dataSource().data.length === 0 && this.rowModelType() === 'serverSide'))\n ;\n }\n\n get actionBarTemplateRef(): TemplateRef<any> | undefined {\n return this._actionBarRef()?.templateRef;\n }\n\n protected get emptyTemplateRef(): TemplateRef<any> {\n return this._emptyDataRef()?.templateRef as TemplateRef<any>;\n }\n\n protected get emptyFilterResultsTemplateRef(): TemplateRef<any> {\n return this._emptyFilterResults()?.templateRef as TemplateRef<any>;\n }\n\n protected get hasFilterValue(): boolean {\n return !!this.search().trim();\n }\n\n constructor() {\n effect(() => {\n if (this.rowModelType() === 'clientSide') {\n this.dataSource().filter = this.search().trim().toLowerCase();\n }\n\n this._renderer.setAttribute(this._elementRef.nativeElement, 'data-view-variant', this.variant());\n });\n }\n\n ngOnInit() {\n if (this.cellRenderers().length === 0) {\n return;\n }\n\n this.loadingCellRenderers = true;\n const components = this.cellRenderers().map(cellRenderer => cellRenderer.component());\n Promise.all(components).then(components => {\n components.forEach((component, index: number) => {\n this.cellRenderersMap.set(this.cellRenderers()[index].dataRenderer, component)\n });\n this.loadingCellRenderers = false;\n this._cdr.detectChanges();\n });\n }\n\n get matTable(): MatTable<T> {\n return this._matTable() as MatTable<T>;\n }\n\n get matSort(): MatSort {\n return this._matSort() as MatSort;\n }\n\n hasCellRenderer(dataRenderer: string): boolean {\n return this.cellRenderersMap.has(dataRenderer);\n }\n\n getCellRenderer(dataRenderer: string): any {\n return this.cellRenderersMap.get(dataRenderer);\n }\n\n isAllSelected(): boolean {\n return this.selection.selected.length === this.data().length;\n }\n\n toggleAllRows(): void {\n if (this.isAllSelected()) {\n this._unselectAll();\n } else {\n this._selectAll();\n }\n }\n\n rowSelectionToggle(event: MatCheckboxChange, row: T): void {\n if (event.checked) {\n this.selection.select(row);\n } else {\n this.selection.deselect(row);\n }\n\n this.rowSelectionChanged.emit({\n matCheckboxChange: event,\n row,\n checked: event.checked\n });\n this.selectionChanged.emit(this.selection.selected);\n }\n\n protected onSortChange(event: Sort): void {\n this.sortChange.emit(event);\n }\n\n private _selectAll(): void {\n this.selection.select(...this.data());\n this.selectionChanged.emit(this.data());\n this.allRowsSelectionChanged.emit(true);\n }\n\n private _unselectAll(): void {\n this.selection.clear();\n this.selectionChanged.emit([]);\n this.allRowsSelectionChanged.emit(false);\n }\n}\n","<emr-skeleton>\n <mat-table matSort\n [dataSource]=\"dataSource()\"\n [matSortDisabled]=\"!withSorting() || (loading() && rowModelType() === 'serverSide')\"\n (matSortChange)=\"onSortChange($event)\"\n class=\"table\"\n [class.hidden]=\"noFilteredResults\">\n @if (withSelection()) {\n <ng-container matColumnDef=\"selection\">\n <mat-header-cell *matHeaderCellDef>\n @if (loadingCellRenderers || loading()) {\n <emr-skeleton-block class=\"size-6\"/>\n } @else {\n <mat-checkbox (change)=\"$event ? toggleAllRows() : null\"\n [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\">\n </mat-checkbox>\n }\n </mat-header-cell>\n <mat-cell *matCellDef=\"let row\">\n @if (loadingCellRenderers || loading()) {\n <emr-skeleton-block class=\"size-6 max-w-full\"/>\n } @else {\n <mat-checkbox (click)=\"$event.stopPropagation()\"\n (change)=\"rowSelectionToggle($event, row)\"\n [checked]=\"selection.isSelected(row)\">\n </mat-checkbox>\n }\n </mat-cell>\n </ng-container>\n }\n\n @for (columnDef of columnDefs(); track columnDef) {\n @if (columnDef.visible) {\n <ng-container [matColumnDef]=\"columnDef.dataField\">\n <mat-header-cell *matHeaderCellDef mat-sort-header class=\"header-cell\"\n [style.--emr-data-view-cell-width]=\"columnDef.width\">\n <div class=\"overflow-hidden w-full\">\n @if (loadingCellRenderers || loading()) {\n <emr-skeleton-line class=\"w-24 max-w-full\"/>\n } @else {\n {{ columnDef.name }}\n }\n </div>\n </mat-header-cell>\n <mat-cell *matCellDef=\"let element\" class=\"cell\"\n [style.--emr-data-view-cell-width]=\"columnDef.width\">\n <div class=\"overflow-hidden w-full\">\n @if (loadingCellRenderers || loading()) {\n <emr-skeleton-line/>\n } @else {\n @if (columnDef.dataRenderer && hasCellRenderer(columnDef.dataRenderer)) {\n <ng-container [ngComponentOutlet]=\"getCellRenderer(columnDef.dataRenderer)\"\n [ngComponentOutletInputs]=\"{ element, columnDef, fieldData: element[columnDef.dataField] }\"\n [ngComponentOutletInjector]=\"injector\"/>\n } @else {\n {{ element[columnDef.dataField] }}\n }\n }\n </div>\n </mat-cell>\n </ng-container>\n }\n }\n\n <ng-container matColumnDef=\"__actionBar\">\n <mat-header-cell *matHeaderCellDef class=\"header-cell-action-bar\"/>\n <mat-cell *matCellDef=\"let element\" class=\"cell-action-bar\">\n @if (actionBarTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"actionBarTemplateRef\" [ngTemplateOutletContext]=\"{ $implicit: element }\"/>\n }\n </mat-cell>\n </ng-container>\n <mat-header-row *matHeaderRowDef=\"displayedColumns(); sticky: stickyHeader()\"/>\n <mat-row *matRowDef=\"let row; columns: displayedColumns()\" class=\"data-view-row\"\n [class.is-selected]=\"selection.isSelected(row)\"/>\n </mat-table>\n</emr-skeleton>\n\n@if (noFilteredResults) {\n @if (loading()) {\n <div class=\"flex flex-col items-center justify-center h-full\">\n <emr-skeleton-circle class=\"size-32\"/>\n <emr-skeleton-line class=\"w-1/2 mt-9\"/>\n <emr-skeleton-line class=\"w-1/3 h-4 mt-5\"/>\n </div>\n } @else {\n @if (hasFilterValue) {\n <ng-container [ngTemplateOutlet]=\"emptyFilterResultsTemplateRef\"/>\n } @else {\n <ng-container [ngTemplateOutlet]=\"emptyTemplateRef\"/>\n }\n }\n}\n","import { booleanAttribute, Component, input } from '@angular/core';\nimport { DataViewActionBarAPI } from '../types';\n\n@Component({\n selector: 'emr-data-view-action-bar',\n exportAs: 'emrDataViewActionBar',\n templateUrl: './data-view-action-bar.component.html',\n styleUrl: './data-view-action-bar.component.scss',\n host: {\n 'class': 'emr-data-view-action-bar',\n '[class.force-visible]': 'forceVisible() || _forceVisible'\n }\n})\nexport class DataViewActionBarComponent {\n forceVisible = input(false, {\n transform: booleanAttribute\n });\n protected _forceVisible = false;\n\n get api(): DataViewActionBarAPI {\n return {\n setForceVisible: (forceVisible: boolean): void => {\n this._forceVisible = forceVisible;\n },\n }\n }\n}\n","<ng-content/>\n","import { DataViewCellRenderer } from './types';\n\nexport function cellRenderer<T>(dataRenderer: string, component: any): DataViewCellRenderer {\n return {\n dataRenderer,\n component\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;MAUa,0BAA0B,CAAA;AAC5B,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;wGAD/B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAA1B,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,0BAAA,EAAA,EAAA,QAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBARtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACJ,wBAAA,OAAO,EAAE,0BAA0B;AACpC;AACF,iBAAA;;;MCCY,mCAAmC,CAAA;AACrC,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;wGAD/B,mCAAmC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAnC,mCAAmC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,oCAAA,EAAA,EAAA,QAAA,EAAA,CAAA,+BAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAnC,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAR/C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iCAAiC;AAC3C,oBAAA,QAAQ,EAAE,+BAA+B;AACzC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACJ,wBAAA,OAAO,EAAE,oCAAoC;AAC9C;AACF,iBAAA;;;MCHY,0BAA0B,CAAA;AAC5B,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;wGAD/B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAA1B,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAJtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCqEY,iBAAiB,CAAA;AACpB,IAAA,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAChC,IAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AAChC,IAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AAE3B,IAAA,aAAa,GAAG,YAAY,CAAC,0BAA0B,yDAAC;AACxD,IAAA,mBAAmB,GAAG,YAAY,CAAC,mCAAmC,+DAAC;AACvE,IAAA,aAAa,GAAG,YAAY,CAA6B,0BAA0B,yDAAC;AACtF,IAAA,SAAS,GAAG,SAAS,CAAc,OAAO,qDAAC;AAC3C,IAAA,QAAQ,GAAG,SAAS,CAAU,OAAO,oDAAC;AAE9C,IAAA,OAAO,GAAG,KAAK,CAAS,MAAM,mDAAC;IAC/B,SAAS,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAgB;AACjC,IAAA,UAAU,GAAG,KAAK,CAAsB,EAAE,sDAAC;AAC3C,IAAA,IAAI,GAAG,KAAK,CAAM,EAAE,gDAAC;IACrB,aAAa,GAAG,KAAK,CAAC,KAAK,iDACzB,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CADA;AAC3B,YAAA,SAAS,EAAE;AACZ,SAAA,CAAA,CAAA,CAAC;IACF,eAAe,GAAG,KAAK,CAAC,KAAK,mDAC3B,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CADE;AAC7B,YAAA,SAAS,EAAE;AACZ,SAAA,CAAA,CAAA,CAAC;AACF,IAAA,YAAY,GAAG,KAAK,CAAuB,YAAY,wDAAC;IACxD,WAAW,GAAG,KAAK,CAAC,KAAK,+CACvB,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CADF;AACzB,YAAA,SAAS,EAAE;AACZ,SAAA,CAAA,CAAA,CAAC;IACF,YAAY,GAAG,KAAK,CAAC,KAAK,gDACxB,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CADD;AAC1B,YAAA,SAAS,EAAE;AACZ,SAAA,CAAA,CAAA,CAAC;IACF,SAAS,GAAG,KAAK,CAAC,KAAK,6CACrB,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CADJ;AACvB,YAAA,SAAS,EAAE;AACZ,SAAA,CAAA,CAAA,CAAC;AACF,IAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAe;QACzC,MAAM,gBAAgB,GAAG;AACtB,aAAA,UAAU;aACV,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO;aAC/B,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC;AAGlC,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AACxB,YAAA,gBAAgB,CAAC,OAAO,CAAC,WAAW,CAAC;QACvC;AAEA,QAAA,OAAO,CAAC,GAAG,gBAAgB,EAAE,aAAa,CAAC;AAC7C,IAAA,CAAC,4DAAC;AACF,IAAA,UAAU,GAAG,QAAQ,CAAC,MAA4B;QAChD,MAAM,UAAU,GAAG,IAAI,kBAAkB,CAAI,IAAI,CAAC,IAAI,EAAE,CAAC;AAEzD,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;AACpB,YAAA,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,EAAkB;QACzD;AAEA,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE,KAAK,YAAY,EAAE;AAC9D,YAAA,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAa;QAC9C;QAEA,UAAU,CAAC,mBAAmB,GAAG,CAAC,IAAS,EAAE,QAAQ,KAAI;AACvD,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC;YAEjF,IAAI,SAAS,EAAE;AACb,gBAAA,IAAI,SAAS,CAAC,WAAW,EAAE;oBACzB,OAAO,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC9C;YACF;YAEA,QAAQ,QAAQ;gBACd,SAAS;AACP,oBAAA,OAAO,IAAI,CAAC,QAAQ,CAAC;gBACvB;;AAEJ,QAAA,CAAC;AAED,QAAA,OAAO,UAAU;AACnB,IAAA,CAAC,sDAAC;AACF,IAAA,aAAa,GAAG,KAAK,CAAyB,EAAE,yDAAC;IACjD,OAAO,GAAG,KAAK,CAAC,KAAK,2CACnB,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CADN;AACrB,YAAA,SAAS,EAAE;AACZ,SAAA,CAAA,CAAA,CAAC;AACF,IAAA,MAAM,GAAG,KAAK,CAAS,EAAE,kDAAC;AAEhB,IAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC3B,SAAS,GAAG,IAAI,cAAc,CAAI,IAAI,EAAE,EAAE,CAAC;AAC3C,IAAA,gBAAgB,GAAG,IAAI,GAAG,EAAe;IACzC,oBAAoB,GAAG,KAAK;IAE7B,mBAAmB,GAAG,MAAM,EAAgC;IAC5D,gBAAgB,GAAG,MAAM,EAAO;IAChC,uBAAuB,GAAG,MAAM,EAAW;IAC3C,UAAU,GAAG,MAAM,EAAQ;AAEpC,IAAA,IAAI,GAAG,GAAA;QACL,OAAO;AACL,YAAA,MAAM,EAAE,CAAC,KAAa,KAAU;AAC9B,gBAAA,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;YACvD,CAAC;YACD,SAAS,EAAE,MAAW;gBACpB,IAAI,CAAC,UAAU,EAAE;YACnB,CAAC;YACD,WAAW,EAAE,MAAW;gBACtB,IAAI,CAAC,YAAY,EAAE;YACrB;SACD;IACH;AAEA,IAAA,IAAI,iBAAiB,GAAA;AACnB,QAAA,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC3D,aAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,KAAK,YAAY;AACnF,iBAAC,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,KAAK,YAAY,CAAC,CAAC;IAEpF;AAEA,IAAA,IAAI,oBAAoB,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,aAAa,EAAE,EAAE,WAAW;IAC1C;AAEA,IAAA,IAAc,gBAAgB,GAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,aAAa,EAAE,EAAE,WAA+B;IAC9D;AAEA,IAAA,IAAc,6BAA6B,GAAA;AACzC,QAAA,OAAO,IAAI,CAAC,mBAAmB,EAAE,EAAE,WAA+B;IACpE;AAEA,IAAA,IAAc,cAAc,GAAA;QAC1B,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IAC/B;AAEA,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE,KAAK,YAAY,EAAE;AACxC,gBAAA,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;YAC/D;AAEA,YAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,mBAAmB,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;AAClG,QAAA,CAAC,CAAC;IACJ;IAEA,QAAQ,GAAA;QACN,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;YACrC;QACF;AAEA,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI;AAChC,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,YAAY,IAAI,YAAY,CAAC,SAAS,EAAE,CAAC;QACrF,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,IAAG;YACxC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,KAAa,KAAI;AAC9C,gBAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC,YAAY,EAAE,SAAS,CAAC;AAChF,YAAA,CAAC,CAAC;AACF,YAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK;AACjC,YAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AAC3B,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,SAAS,EAAiB;IACxC;AAEA,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAa;IACnC;AAEA,IAAA,eAAe,CAAC,YAAoB,EAAA;QAClC,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC;IAChD;AAEA,IAAA,eAAe,CAAC,YAAoB,EAAA;QAClC,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC;IAChD;IAEA,aAAa,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM;IAC9D;IAEA,aAAa,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;YACxB,IAAI,CAAC,YAAY,EAAE;QACrB;aAAO;YACL,IAAI,CAAC,UAAU,EAAE;QACnB;IACF;IAEA,kBAAkB,CAAC,KAAwB,EAAE,GAAM,EAAA;AACjD,QAAA,IAAI,KAAK,CAAC,OAAO,EAAE;AACjB,YAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC;QAC5B;aAAO;AACL,YAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC9B;AAEA,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;AAC5B,YAAA,iBAAiB,EAAE,KAAK;YACxB,GAAG;YACH,OAAO,EAAE,KAAK,CAAC;AAChB,SAAA,CAAC;QACF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;IACrD;AAEU,IAAA,YAAY,CAAC,KAAW,EAAA;AAChC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;IAC7B;IAEQ,UAAU,GAAA;QAChB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AACvC,QAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC;IACzC;IAEQ,YAAY,GAAA;AAClB,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;AACtB,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;AAC9B,QAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC;IAC1C;wGAjNW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,wBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,EAAA,cAAA,EAAA,eAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAKW,0BAA0B,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACpB,mCAAmC,gGACb,0BAA0B,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAEvD,OAAO,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECnF/C,y+HA8FA,23IDjDI,OAAO,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACP,WAAW,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,WAAA,EAAA,IAAA,EAAA,UAAA,EAAA,eAAA,EAAA,MAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACX,YAAY,qFACZ,aAAa,EAAA,QAAA,EAAA,sCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACb,YAAY,EAAA,QAAA,EAAA,oCAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACZ,eAAe,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACf,MAAM,EAAA,QAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACN,SAAS,uGACT,QAAQ,EAAA,QAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACR,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACP,aAAa,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,eAAA,EAAA,OAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACb,iBAAiB,6TACjB,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,sBAAsB,EAAA,QAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACtB,UAAU,yDACV,qBAAqB,EAAA,QAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACrB,uBAAuB,EAAA,QAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACvB,iBAAiB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FAWR,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAjC7B,SAAS;+BACE,eAAe,EAAA,QAAA,EACf,aAAa,EAAA,OAAA,EACd;wBACP,OAAO;wBACP,WAAW;wBACX,YAAY;wBACZ,aAAa;wBACb,YAAY;wBACZ,eAAe;wBACf,MAAM;wBACN,SAAS;wBACT,QAAQ;wBACR,gBAAgB;wBAChB,OAAO;wBACP,aAAa;wBACb,iBAAiB;wBACjB,gBAAgB;wBAChB,sBAAsB;wBACtB,UAAU;wBACV,qBAAqB;wBACrB,uBAAuB;wBACvB,iBAAiB;qBAClB,EAAA,IAAA,EAGK;AACJ,wBAAA,OAAO,EAAE,eAAe;AACxB,wBAAA,0BAA0B,EAAE,mBAAmB;AAC/C,wBAAA,oBAAoB,EAAE,aAAa;AACnC,wBAAA,oBAAoB,EAAE,WAAW;AAClC,qBAAA,EAAA,QAAA,EAAA,y+HAAA,EAAA,MAAA,EAAA,CAAA,m0IAAA,CAAA,EAAA;AAOsC,SAAA,CAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,EAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAAA,0BAA0B,qGACpB,mCAAmC,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MACb,0BAA0B,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAClD,OAAO,sFACZ,OAAO,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,eAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,cAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,cAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,eAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,uBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,yBAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;MEtElC,0BAA0B,CAAA;IACrC,YAAY,GAAG,KAAK,CAAC,KAAK,gDACxB,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CADD;AAC1B,YAAA,SAAS,EAAE;AACZ,SAAA,CAAA,CAAA,CAAC;IACQ,aAAa,GAAG,KAAK;AAE/B,IAAA,IAAI,GAAG,GAAA;QACL,OAAO;AACL,YAAA,eAAe,EAAE,CAAC,YAAqB,KAAU;AAC/C,gBAAA,IAAI,CAAC,aAAa,GAAG,YAAY;YACnC,CAAC;SACF;IACH;wGAZW,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA1B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,iZCbvC,iBACA,EAAA,MAAA,EAAA,CAAA,kQAAA,CAAA,EAAA,CAAA;;4FDYa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAVtC,SAAS;+BACE,0BAA0B,EAAA,QAAA,EAC1B,sBAAsB,EAAA,IAAA,EAG1B;AACJ,wBAAA,OAAO,EAAE,0BAA0B;AACnC,wBAAA,uBAAuB,EAAE;AAC1B,qBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,kQAAA,CAAA,EAAA;;;AETG,SAAU,YAAY,CAAI,YAAoB,EAAE,SAAc,EAAA;IAClE,OAAO;QACL,YAAY;QACZ;KACD;AACH;;ACPA;;AAEG;;;;"}