@elementar-rt/components 0.6.58 → 0.7.1

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 (414) hide show
  1. package/README.md +7 -2
  2. package/fesm2022/elementar-rt-components-action-required.mjs +8 -8
  3. package/fesm2022/elementar-rt-components-action-required.mjs.map +1 -1
  4. package/fesm2022/elementar-rt-components-alert.mjs +21 -25
  5. package/fesm2022/elementar-rt-components-alert.mjs.map +1 -1
  6. package/fesm2022/elementar-rt-components-announcement.mjs +12 -14
  7. package/fesm2022/elementar-rt-components-announcement.mjs.map +1 -1
  8. package/fesm2022/elementar-rt-components-avatar.mjs +34 -38
  9. package/fesm2022/elementar-rt-components-avatar.mjs.map +1 -1
  10. package/fesm2022/elementar-rt-components-badge.mjs +10 -10
  11. package/fesm2022/elementar-rt-components-badge.mjs.map +1 -1
  12. package/fesm2022/elementar-rt-components-block-loader.mjs +10 -16
  13. package/fesm2022/elementar-rt-components-block-loader.mjs.map +1 -1
  14. package/fesm2022/elementar-rt-components-block-state.mjs +24 -24
  15. package/fesm2022/elementar-rt-components-block-state.mjs.map +1 -1
  16. package/fesm2022/elementar-rt-components-bottom-sheet.mjs +12 -12
  17. package/fesm2022/elementar-rt-components-bottom-sheet.mjs.map +1 -1
  18. package/fesm2022/elementar-rt-components-brand-colors.mjs +9 -13
  19. package/fesm2022/elementar-rt-components-brand-colors.mjs.map +1 -1
  20. package/fesm2022/elementar-rt-components-breadcrumbs.mjs +49 -53
  21. package/fesm2022/elementar-rt-components-breadcrumbs.mjs.map +1 -1
  22. package/fesm2022/elementar-rt-components-button-toggle.mjs +16 -16
  23. package/fesm2022/elementar-rt-components-button-toggle.mjs.map +1 -1
  24. package/fesm2022/elementar-rt-components-calendar.mjs +10 -10
  25. package/fesm2022/elementar-rt-components-calendar.mjs.map +1 -1
  26. package/fesm2022/elementar-rt-components-card-overlay.mjs +10 -16
  27. package/fesm2022/elementar-rt-components-card-overlay.mjs.map +1 -1
  28. package/fesm2022/elementar-rt-components-card.mjs +18 -18
  29. package/fesm2022/elementar-rt-components-card.mjs.map +1 -1
  30. package/fesm2022/elementar-rt-components-carousel.mjs +48 -50
  31. package/fesm2022/elementar-rt-components-carousel.mjs.map +1 -1
  32. package/fesm2022/elementar-rt-components-chips.mjs +12 -12
  33. package/fesm2022/elementar-rt-components-chips.mjs.map +1 -1
  34. package/fesm2022/elementar-rt-components-clipboard-copy.mjs +17 -17
  35. package/fesm2022/elementar-rt-components-clipboard-copy.mjs.map +1 -1
  36. package/fesm2022/elementar-rt-components-code-highlighter.mjs +12 -12
  37. package/fesm2022/elementar-rt-components-code-highlighter.mjs.map +1 -1
  38. package/fesm2022/elementar-rt-components-color-picker.mjs +44 -52
  39. package/fesm2022/elementar-rt-components-color-picker.mjs.map +1 -1
  40. package/fesm2022/elementar-rt-components-color-scheme.mjs +10 -10
  41. package/fesm2022/elementar-rt-components-color-scheme.mjs.map +1 -1
  42. package/fesm2022/elementar-rt-components-combobox.mjs +13 -13
  43. package/fesm2022/elementar-rt-components-combobox.mjs.map +1 -1
  44. package/fesm2022/elementar-rt-components-command-bar.mjs +15 -17
  45. package/fesm2022/elementar-rt-components-command-bar.mjs.map +1 -1
  46. package/fesm2022/elementar-rt-components-comment-editor.mjs +106 -106
  47. package/fesm2022/elementar-rt-components-comment-editor.mjs.map +1 -1
  48. package/fesm2022/elementar-rt-components-comparison-slider.mjs +16 -16
  49. package/fesm2022/elementar-rt-components-comparison-slider.mjs.map +1 -1
  50. package/fesm2022/elementar-rt-components-confirm.mjs +7 -7
  51. package/fesm2022/elementar-rt-components-confirm.mjs.map +1 -1
  52. package/fesm2022/elementar-rt-components-content-editor.mjs +7 -7
  53. package/fesm2022/elementar-rt-components-content-editor.mjs.map +1 -1
  54. package/fesm2022/elementar-rt-components-content-fade.mjs +7 -7
  55. package/fesm2022/elementar-rt-components-content-fade.mjs.map +1 -1
  56. package/fesm2022/elementar-rt-components-cookie-popup.mjs +15 -17
  57. package/fesm2022/elementar-rt-components-cookie-popup.mjs.map +1 -1
  58. package/fesm2022/elementar-rt-components-core.mjs +68 -75
  59. package/fesm2022/elementar-rt-components-core.mjs.map +1 -1
  60. package/fesm2022/elementar-rt-components-country-select.mjs +15 -17
  61. package/fesm2022/elementar-rt-components-country-select.mjs.map +1 -1
  62. package/fesm2022/elementar-rt-components-crop.mjs +12 -12
  63. package/fesm2022/elementar-rt-components-crop.mjs.map +1 -1
  64. package/fesm2022/elementar-rt-components-currency-select.mjs +15 -17
  65. package/fesm2022/elementar-rt-components-currency-select.mjs.map +1 -1
  66. package/fesm2022/elementar-rt-components-dashboard.mjs +15 -19
  67. package/fesm2022/elementar-rt-components-dashboard.mjs.map +1 -1
  68. package/fesm2022/elementar-rt-components-data-grid.mjs +20 -20
  69. package/fesm2022/elementar-rt-components-data-grid.mjs.map +1 -1
  70. package/fesm2022/elementar-rt-components-data-view.mjs +38 -52
  71. package/fesm2022/elementar-rt-components-data-view.mjs.map +1 -1
  72. package/fesm2022/elementar-rt-components-date-format-select.mjs +8 -8
  73. package/fesm2022/elementar-rt-components-date-format-select.mjs.map +1 -1
  74. package/fesm2022/elementar-rt-components-datepicker.mjs +12 -12
  75. package/fesm2022/elementar-rt-components-datepicker.mjs.map +1 -1
  76. package/fesm2022/elementar-rt-components-dialog.mjs +19 -19
  77. package/fesm2022/elementar-rt-components-dialog.mjs.map +1 -1
  78. package/fesm2022/elementar-rt-components-digit-roller.mjs +10 -10
  79. package/fesm2022/elementar-rt-components-digit-roller.mjs.map +1 -1
  80. package/fesm2022/elementar-rt-components-divider.mjs +8 -8
  81. package/fesm2022/elementar-rt-components-divider.mjs.map +1 -1
  82. package/fesm2022/elementar-rt-components-drawer.mjs +14 -14
  83. package/fesm2022/elementar-rt-components-drawer.mjs.map +1 -1
  84. package/fesm2022/elementar-rt-components-emoji-picker.mjs +15 -17
  85. package/fesm2022/elementar-rt-components-emoji-picker.mjs.map +1 -1
  86. package/fesm2022/elementar-rt-components-empty-state.mjs +8 -8
  87. package/fesm2022/elementar-rt-components-empty-state.mjs.map +1 -1
  88. package/fesm2022/elementar-rt-components-expand.mjs +10 -14
  89. package/fesm2022/elementar-rt-components-expand.mjs.map +1 -1
  90. package/fesm2022/elementar-rt-components-expansion-panel.mjs +6 -6
  91. package/fesm2022/elementar-rt-components-expansion-panel.mjs.map +1 -1
  92. package/fesm2022/elementar-rt-components-filter-builder.mjs +24 -26
  93. package/fesm2022/elementar-rt-components-filter-builder.mjs.map +1 -1
  94. package/fesm2022/elementar-rt-components-filter-select.mjs +19 -19
  95. package/fesm2022/elementar-rt-components-filter-select.mjs.map +1 -1
  96. package/fesm2022/{elementar-rt-components-form-renderer-autocomplete-many-field.component-C2Ai6F2X.mjs → elementar-rt-components-form-renderer-autocomplete-many-field.component-DYDAWUBL.mjs} +6 -6
  97. package/fesm2022/{elementar-rt-components-form-renderer-autocomplete-many-field.component-C2Ai6F2X.mjs.map → elementar-rt-components-form-renderer-autocomplete-many-field.component-DYDAWUBL.mjs.map} +1 -1
  98. package/fesm2022/{elementar-rt-components-form-renderer-checkbox-field.component-a0XAs0-_.mjs → elementar-rt-components-form-renderer-checkbox-field.component-DCdtWKHi.mjs} +7 -7
  99. package/fesm2022/{elementar-rt-components-form-renderer-checkbox-field.component-a0XAs0-_.mjs.map → elementar-rt-components-form-renderer-checkbox-field.component-DCdtWKHi.mjs.map} +1 -1
  100. package/fesm2022/{elementar-rt-components-form-renderer-datepicker-field.component-CTVrrf43.mjs → elementar-rt-components-form-renderer-datepicker-field.component-D9gAkq6u.mjs} +6 -6
  101. package/fesm2022/{elementar-rt-components-form-renderer-datepicker-field.component-CTVrrf43.mjs.map → elementar-rt-components-form-renderer-datepicker-field.component-D9gAkq6u.mjs.map} +1 -1
  102. package/fesm2022/{elementar-rt-components-form-renderer-divider-content.component-CkYa0MOQ.mjs → elementar-rt-components-form-renderer-divider-content.component-DB4F4Av6.mjs} +4 -4
  103. package/fesm2022/{elementar-rt-components-form-renderer-divider-content.component-CkYa0MOQ.mjs.map → elementar-rt-components-form-renderer-divider-content.component-DB4F4Av6.mjs.map} +1 -1
  104. package/fesm2022/{elementar-rt-components-form-renderer-image-content.component-B5uj3hoV.mjs → elementar-rt-components-form-renderer-image-content.component-BvxbVzag.mjs} +5 -5
  105. package/fesm2022/{elementar-rt-components-form-renderer-image-content.component-B5uj3hoV.mjs.map → elementar-rt-components-form-renderer-image-content.component-BvxbVzag.mjs.map} +1 -1
  106. package/fesm2022/{elementar-rt-components-form-renderer-input-field.component-DnaWJIK9.mjs → elementar-rt-components-form-renderer-input-field.component-BPOCpB7i.mjs} +7 -7
  107. package/fesm2022/{elementar-rt-components-form-renderer-input-field.component-DnaWJIK9.mjs.map → elementar-rt-components-form-renderer-input-field.component-BPOCpB7i.mjs.map} +1 -1
  108. package/fesm2022/{elementar-rt-components-form-renderer-radio-group-field.component-9BLv1MsP.mjs → elementar-rt-components-form-renderer-radio-group-field.component-D65JtgyW.mjs} +7 -7
  109. package/fesm2022/{elementar-rt-components-form-renderer-radio-group-field.component-9BLv1MsP.mjs.map → elementar-rt-components-form-renderer-radio-group-field.component-D65JtgyW.mjs.map} +1 -1
  110. package/fesm2022/{elementar-rt-components-form-renderer-select-field.component-C97pIEdh.mjs → elementar-rt-components-form-renderer-select-field.component-HgwzMHVU.mjs} +6 -6
  111. package/fesm2022/{elementar-rt-components-form-renderer-select-field.component-C97pIEdh.mjs.map → elementar-rt-components-form-renderer-select-field.component-HgwzMHVU.mjs.map} +1 -1
  112. package/fesm2022/{elementar-rt-components-form-renderer-text-content.component-CJxCc5vX.mjs → elementar-rt-components-form-renderer-text-content.component-fHh_BaZl.mjs} +5 -5
  113. package/fesm2022/{elementar-rt-components-form-renderer-text-content.component-CJxCc5vX.mjs.map → elementar-rt-components-form-renderer-text-content.component-fHh_BaZl.mjs.map} +1 -1
  114. package/fesm2022/{elementar-rt-components-form-renderer-textarea-field.component-CCtWiJOk.mjs → elementar-rt-components-form-renderer-textarea-field.component-CQ68jF7W.mjs} +6 -6
  115. package/fesm2022/{elementar-rt-components-form-renderer-textarea-field.component-CCtWiJOk.mjs.map → elementar-rt-components-form-renderer-textarea-field.component-CQ68jF7W.mjs.map} +1 -1
  116. package/fesm2022/{elementar-rt-components-form-renderer-timezone-field.component-GvZgdvUX.mjs → elementar-rt-components-form-renderer-timezone-field.component-CgS9fcCV.mjs} +7 -7
  117. package/fesm2022/{elementar-rt-components-form-renderer-timezone-field.component-GvZgdvUX.mjs.map → elementar-rt-components-form-renderer-timezone-field.component-CgS9fcCV.mjs.map} +1 -1
  118. package/fesm2022/{elementar-rt-components-form-renderer-toggle-field.component-DBiIiV-9.mjs → elementar-rt-components-form-renderer-toggle-field.component-nj0FmsWA.mjs} +7 -7
  119. package/fesm2022/{elementar-rt-components-form-renderer-toggle-field.component-DBiIiV-9.mjs.map → elementar-rt-components-form-renderer-toggle-field.component-nj0FmsWA.mjs.map} +1 -1
  120. package/fesm2022/elementar-rt-components-form-renderer.mjs +36 -36
  121. package/fesm2022/elementar-rt-components-form-renderer.mjs.map +1 -1
  122. package/fesm2022/elementar-rt-components-gauge.mjs +11 -17
  123. package/fesm2022/elementar-rt-components-gauge.mjs.map +1 -1
  124. package/fesm2022/elementar-rt-components-grid.mjs +12 -12
  125. package/fesm2022/elementar-rt-components-grid.mjs.map +1 -1
  126. package/fesm2022/elementar-rt-components-guided-tour.mjs +12 -12
  127. package/fesm2022/elementar-rt-components-guided-tour.mjs.map +1 -1
  128. package/fesm2022/elementar-rt-components-headless-stepper.mjs +10 -10
  129. package/fesm2022/elementar-rt-components-headless-stepper.mjs.map +1 -1
  130. package/fesm2022/elementar-rt-components-icon.mjs +6 -6
  131. package/fesm2022/elementar-rt-components-icon.mjs.map +1 -1
  132. package/fesm2022/elementar-rt-components-image-placeholder.mjs +10 -10
  133. package/fesm2022/elementar-rt-components-image-placeholder.mjs.map +1 -1
  134. package/fesm2022/elementar-rt-components-image-resizer.mjs +17 -25
  135. package/fesm2022/elementar-rt-components-image-resizer.mjs.map +1 -1
  136. package/fesm2022/elementar-rt-components-image-viewer.mjs +29 -29
  137. package/fesm2022/elementar-rt-components-image-viewer.mjs.map +1 -1
  138. package/fesm2022/elementar-rt-components-image-zoom-viewer.mjs +16 -16
  139. package/fesm2022/elementar-rt-components-image-zoom-viewer.mjs.map +1 -1
  140. package/fesm2022/elementar-rt-components-incidents.mjs +55 -57
  141. package/fesm2022/elementar-rt-components-incidents.mjs.map +1 -1
  142. package/fesm2022/elementar-rt-components-inline-text-edit.mjs +8 -10
  143. package/fesm2022/elementar-rt-components-inline-text-edit.mjs.map +1 -1
  144. package/fesm2022/elementar-rt-components-input-mask.mjs +12 -12
  145. package/fesm2022/elementar-rt-components-input-mask.mjs.map +1 -1
  146. package/fesm2022/elementar-rt-components-input-validator.mjs.map +1 -1
  147. package/fesm2022/elementar-rt-components-kanban-board.mjs +10 -10
  148. package/fesm2022/elementar-rt-components-kanban-board.mjs.map +1 -1
  149. package/fesm2022/elementar-rt-components-keyboard.mjs +9 -9
  150. package/fesm2022/elementar-rt-components-keyboard.mjs.map +1 -1
  151. package/fesm2022/elementar-rt-components-layout.mjs +36 -40
  152. package/fesm2022/elementar-rt-components-layout.mjs.map +1 -1
  153. package/fesm2022/elementar-rt-components-list.mjs +13 -13
  154. package/fesm2022/elementar-rt-components-list.mjs.map +1 -1
  155. package/fesm2022/elementar-rt-components-logo.mjs +12 -12
  156. package/fesm2022/elementar-rt-components-logo.mjs.map +1 -1
  157. package/fesm2022/elementar-rt-components-marquee.mjs +9 -13
  158. package/fesm2022/elementar-rt-components-marquee.mjs.map +1 -1
  159. package/fesm2022/elementar-rt-components-menu.mjs +19 -19
  160. package/fesm2022/elementar-rt-components-menu.mjs.map +1 -1
  161. package/fesm2022/elementar-rt-components-micro-chart.mjs +65 -111
  162. package/fesm2022/elementar-rt-components-micro-chart.mjs.map +1 -1
  163. package/fesm2022/elementar-rt-components-multi-select.mjs +13 -13
  164. package/fesm2022/elementar-rt-components-multi-select.mjs.map +1 -1
  165. package/fesm2022/elementar-rt-components-navigation.mjs +56 -66
  166. package/fesm2022/elementar-rt-components-navigation.mjs.map +1 -1
  167. package/fesm2022/elementar-rt-components-notifications.mjs +47 -53
  168. package/fesm2022/elementar-rt-components-notifications.mjs.map +1 -1
  169. package/fesm2022/elementar-rt-components-number-input.mjs +23 -31
  170. package/fesm2022/elementar-rt-components-number-input.mjs.map +1 -1
  171. package/fesm2022/elementar-rt-components-overlay-scrollbar.mjs +34 -34
  172. package/fesm2022/elementar-rt-components-overlay-scrollbar.mjs.map +1 -1
  173. package/fesm2022/elementar-rt-components-overlay.mjs.map +1 -1
  174. package/fesm2022/elementar-rt-components-page-loading-bar.mjs +5 -7
  175. package/fesm2022/elementar-rt-components-page-loading-bar.mjs.map +1 -1
  176. package/fesm2022/elementar-rt-components-paginator.mjs +12 -12
  177. package/fesm2022/elementar-rt-components-paginator.mjs.map +1 -1
  178. package/fesm2022/elementar-rt-components-panel.mjs +25 -27
  179. package/fesm2022/elementar-rt-components-panel.mjs.map +1 -1
  180. package/fesm2022/elementar-rt-components-password-strength.mjs +35 -59
  181. package/fesm2022/elementar-rt-components-password-strength.mjs.map +1 -1
  182. package/fesm2022/elementar-rt-components-phone-input.mjs +23 -26
  183. package/fesm2022/elementar-rt-components-phone-input.mjs.map +1 -1
  184. package/fesm2022/elementar-rt-components-pin-input.mjs +17 -21
  185. package/fesm2022/elementar-rt-components-pin-input.mjs.map +1 -1
  186. package/fesm2022/elementar-rt-components-popover.mjs +18 -28
  187. package/fesm2022/elementar-rt-components-popover.mjs.map +1 -1
  188. package/fesm2022/elementar-rt-components-progress-bar.mjs +10 -10
  189. package/fesm2022/elementar-rt-components-progress-bar.mjs.map +1 -1
  190. package/fesm2022/elementar-rt-components-progress-spinner.mjs +14 -14
  191. package/fesm2022/elementar-rt-components-progress-spinner.mjs.map +1 -1
  192. package/fesm2022/elementar-rt-components-radio-card.mjs +21 -21
  193. package/fesm2022/elementar-rt-components-radio-card.mjs.map +1 -1
  194. package/fesm2022/elementar-rt-components-rail-nav.mjs +14 -14
  195. package/fesm2022/elementar-rt-components-rail-nav.mjs.map +1 -1
  196. package/fesm2022/elementar-rt-components-rating.mjs +15 -15
  197. package/fesm2022/elementar-rt-components-rating.mjs.map +1 -1
  198. package/fesm2022/elementar-rt-components-resizable-container.mjs +5 -7
  199. package/fesm2022/elementar-rt-components-resizable-container.mjs.map +1 -1
  200. package/fesm2022/elementar-rt-components-screen-loader.mjs +5 -7
  201. package/fesm2022/elementar-rt-components-screen-loader.mjs.map +1 -1
  202. package/fesm2022/elementar-rt-components-scroll-spy.mjs +18 -18
  203. package/fesm2022/elementar-rt-components-scroll-spy.mjs.map +1 -1
  204. package/fesm2022/elementar-rt-components-segmented.mjs +18 -24
  205. package/fesm2022/elementar-rt-components-segmented.mjs.map +1 -1
  206. package/fesm2022/elementar-rt-components-side-panel.mjs +18 -18
  207. package/fesm2022/elementar-rt-components-side-panel.mjs.map +1 -1
  208. package/fesm2022/elementar-rt-components-sidebar.mjs +71 -77
  209. package/fesm2022/elementar-rt-components-sidebar.mjs.map +1 -1
  210. package/fesm2022/elementar-rt-components-sidenav.mjs +15 -15
  211. package/fesm2022/elementar-rt-components-sidenav.mjs.map +1 -1
  212. package/fesm2022/elementar-rt-components-signature-pad.mjs +17 -17
  213. package/fesm2022/elementar-rt-components-signature-pad.mjs.map +1 -1
  214. package/fesm2022/elementar-rt-components-skeleton.mjs +17 -17
  215. package/fesm2022/elementar-rt-components-skeleton.mjs.map +1 -1
  216. package/fesm2022/elementar-rt-components-slider.mjs +13 -13
  217. package/fesm2022/elementar-rt-components-slider.mjs.map +1 -1
  218. package/fesm2022/elementar-rt-components-snackbar.mjs +10 -10
  219. package/fesm2022/elementar-rt-components-snackbar.mjs.map +1 -1
  220. package/fesm2022/elementar-rt-components-sort.mjs +11 -11
  221. package/fesm2022/elementar-rt-components-sort.mjs.map +1 -1
  222. package/fesm2022/elementar-rt-components-splash-screen.mjs +6 -10
  223. package/fesm2022/elementar-rt-components-splash-screen.mjs.map +1 -1
  224. package/fesm2022/elementar-rt-components-split-pane.mjs +10 -10
  225. package/fesm2022/elementar-rt-components-split-pane.mjs.map +1 -1
  226. package/fesm2022/elementar-rt-components-stat-card.mjs +10 -10
  227. package/fesm2022/elementar-rt-components-stat-card.mjs.map +1 -1
  228. package/fesm2022/elementar-rt-components-step-tracker.mjs +8 -8
  229. package/fesm2022/elementar-rt-components-step-tracker.mjs.map +1 -1
  230. package/fesm2022/elementar-rt-components-stepper.mjs +21 -23
  231. package/fesm2022/elementar-rt-components-stepper.mjs.map +1 -1
  232. package/fesm2022/elementar-rt-components-suggestions.mjs +21 -25
  233. package/fesm2022/elementar-rt-components-suggestions.mjs.map +1 -1
  234. package/fesm2022/elementar-rt-components-tab-panel.mjs +54 -60
  235. package/fesm2022/elementar-rt-components-tab-panel.mjs.map +1 -1
  236. package/fesm2022/elementar-rt-components-table.mjs +16 -16
  237. package/fesm2022/elementar-rt-components-table.mjs.map +1 -1
  238. package/fesm2022/elementar-rt-components-tabs.mjs +14 -14
  239. package/fesm2022/elementar-rt-components-tabs.mjs.map +1 -1
  240. package/fesm2022/elementar-rt-components-tag.mjs +9 -9
  241. package/fesm2022/elementar-rt-components-tag.mjs.map +1 -1
  242. package/fesm2022/elementar-rt-components-text-editor.mjs +97 -96
  243. package/fesm2022/elementar-rt-components-text-editor.mjs.map +1 -1
  244. package/fesm2022/elementar-rt-components-thumbnail-maker.mjs +11 -13
  245. package/fesm2022/elementar-rt-components-thumbnail-maker.mjs.map +1 -1
  246. package/fesm2022/elementar-rt-components-tiles.mjs +9 -9
  247. package/fesm2022/elementar-rt-components-tiles.mjs.map +1 -1
  248. package/fesm2022/elementar-rt-components-timeline.mjs +39 -39
  249. package/fesm2022/elementar-rt-components-timeline.mjs.map +1 -1
  250. package/fesm2022/elementar-rt-components-timepicker.mjs +11 -11
  251. package/fesm2022/elementar-rt-components-timepicker.mjs.map +1 -1
  252. package/fesm2022/elementar-rt-components-timezone-select.mjs +23 -29
  253. package/fesm2022/elementar-rt-components-timezone-select.mjs.map +1 -1
  254. package/fesm2022/elementar-rt-components-toast.mjs +14 -14
  255. package/fesm2022/elementar-rt-components-toast.mjs.map +1 -1
  256. package/fesm2022/elementar-rt-components-toolbar.mjs +6 -6
  257. package/fesm2022/elementar-rt-components-toolbar.mjs.map +1 -1
  258. package/fesm2022/elementar-rt-components-tooltip.mjs +14 -14
  259. package/fesm2022/elementar-rt-components-tooltip.mjs.map +1 -1
  260. package/fesm2022/elementar-rt-components-tree.mjs +17 -17
  261. package/fesm2022/elementar-rt-components-tree.mjs.map +1 -1
  262. package/fesm2022/elementar-rt-components-upload.mjs +77 -87
  263. package/fesm2022/elementar-rt-components-upload.mjs.map +1 -1
  264. package/fesm2022/elementar-rt-components-video-player.mjs +22 -22
  265. package/fesm2022/elementar-rt-components-video-player.mjs.map +1 -1
  266. package/fesm2022/elementar-rt-components-video-viewer.mjs +16 -16
  267. package/fesm2022/elementar-rt-components-video-viewer.mjs.map +1 -1
  268. package/package.json +136 -135
  269. package/schematics/collection.json +16 -0
  270. package/schematics/ng-add/actions/add-fonts.d.ts +2 -0
  271. package/schematics/ng-add/actions/add-fonts.js +70 -0
  272. package/schematics/ng-add/actions/add-fonts.js.map +1 -0
  273. package/schematics/ng-add/actions/add-styles.d.ts +3 -0
  274. package/schematics/ng-add/actions/add-styles.js +70 -0
  275. package/schematics/ng-add/actions/add-styles.js.map +1 -0
  276. package/schematics/ng-add/index.d.ts +3 -0
  277. package/schematics/ng-add/index.js +83 -0
  278. package/schematics/ng-add/index.js.map +1 -0
  279. package/schematics/ng-add/schema.d.ts +3 -0
  280. package/schematics/ng-add/schema.js +3 -0
  281. package/schematics/ng-add/schema.js.map +1 -0
  282. package/schematics/ng-add/schema.json +8 -0
  283. package/schematics/ng-add/setup-project.d.ts +3 -0
  284. package/schematics/ng-add/setup-project.js +14 -0
  285. package/schematics/ng-add/setup-project.js.map +1 -0
  286. package/schematics/utils/package-config.d.ts +3 -0
  287. package/schematics/utils/package-config.js +36 -0
  288. package/schematics/utils/package-config.js.map +1 -0
  289. package/schematics/utils/project.d.ts +10 -0
  290. package/schematics/utils/project.js +46 -0
  291. package/schematics/utils/project.js.map +1 -0
  292. package/{country-select/index.d.ts → types/elementar-rt-components-country-select.d.ts} +1 -1
  293. package/{currency-select/index.d.ts → types/elementar-rt-components-currency-select.d.ts} +1 -1
  294. /package/{action-required/index.d.ts → types/elementar-rt-components-action-required.d.ts} +0 -0
  295. /package/{alert/index.d.ts → types/elementar-rt-components-alert.d.ts} +0 -0
  296. /package/{announcement/index.d.ts → types/elementar-rt-components-announcement.d.ts} +0 -0
  297. /package/{avatar/index.d.ts → types/elementar-rt-components-avatar.d.ts} +0 -0
  298. /package/{badge/index.d.ts → types/elementar-rt-components-badge.d.ts} +0 -0
  299. /package/{block-loader/index.d.ts → types/elementar-rt-components-block-loader.d.ts} +0 -0
  300. /package/{block-state/index.d.ts → types/elementar-rt-components-block-state.d.ts} +0 -0
  301. /package/{bottom-sheet/index.d.ts → types/elementar-rt-components-bottom-sheet.d.ts} +0 -0
  302. /package/{brand-colors/index.d.ts → types/elementar-rt-components-brand-colors.d.ts} +0 -0
  303. /package/{breadcrumbs/index.d.ts → types/elementar-rt-components-breadcrumbs.d.ts} +0 -0
  304. /package/{button-toggle/index.d.ts → types/elementar-rt-components-button-toggle.d.ts} +0 -0
  305. /package/{calendar/index.d.ts → types/elementar-rt-components-calendar.d.ts} +0 -0
  306. /package/{card-overlay/index.d.ts → types/elementar-rt-components-card-overlay.d.ts} +0 -0
  307. /package/{card/index.d.ts → types/elementar-rt-components-card.d.ts} +0 -0
  308. /package/{carousel/index.d.ts → types/elementar-rt-components-carousel.d.ts} +0 -0
  309. /package/{chips/index.d.ts → types/elementar-rt-components-chips.d.ts} +0 -0
  310. /package/{clipboard-copy/index.d.ts → types/elementar-rt-components-clipboard-copy.d.ts} +0 -0
  311. /package/{code-highlighter/index.d.ts → types/elementar-rt-components-code-highlighter.d.ts} +0 -0
  312. /package/{color-picker/index.d.ts → types/elementar-rt-components-color-picker.d.ts} +0 -0
  313. /package/{color-scheme/index.d.ts → types/elementar-rt-components-color-scheme.d.ts} +0 -0
  314. /package/{combobox/index.d.ts → types/elementar-rt-components-combobox.d.ts} +0 -0
  315. /package/{command-bar/index.d.ts → types/elementar-rt-components-command-bar.d.ts} +0 -0
  316. /package/{comment-editor/index.d.ts → types/elementar-rt-components-comment-editor.d.ts} +0 -0
  317. /package/{comparison-slider/index.d.ts → types/elementar-rt-components-comparison-slider.d.ts} +0 -0
  318. /package/{confirm/index.d.ts → types/elementar-rt-components-confirm.d.ts} +0 -0
  319. /package/{content-editor/index.d.ts → types/elementar-rt-components-content-editor.d.ts} +0 -0
  320. /package/{content-fade/index.d.ts → types/elementar-rt-components-content-fade.d.ts} +0 -0
  321. /package/{cookie-popup/index.d.ts → types/elementar-rt-components-cookie-popup.d.ts} +0 -0
  322. /package/{core/index.d.ts → types/elementar-rt-components-core.d.ts} +0 -0
  323. /package/{crop/index.d.ts → types/elementar-rt-components-crop.d.ts} +0 -0
  324. /package/{dashboard/index.d.ts → types/elementar-rt-components-dashboard.d.ts} +0 -0
  325. /package/{data-grid/index.d.ts → types/elementar-rt-components-data-grid.d.ts} +0 -0
  326. /package/{data-view/index.d.ts → types/elementar-rt-components-data-view.d.ts} +0 -0
  327. /package/{date-format-select/index.d.ts → types/elementar-rt-components-date-format-select.d.ts} +0 -0
  328. /package/{datepicker/index.d.ts → types/elementar-rt-components-datepicker.d.ts} +0 -0
  329. /package/{dialog/index.d.ts → types/elementar-rt-components-dialog.d.ts} +0 -0
  330. /package/{digit-roller/index.d.ts → types/elementar-rt-components-digit-roller.d.ts} +0 -0
  331. /package/{divider/index.d.ts → types/elementar-rt-components-divider.d.ts} +0 -0
  332. /package/{drawer/index.d.ts → types/elementar-rt-components-drawer.d.ts} +0 -0
  333. /package/{emoji-picker/index.d.ts → types/elementar-rt-components-emoji-picker.d.ts} +0 -0
  334. /package/{empty-state/index.d.ts → types/elementar-rt-components-empty-state.d.ts} +0 -0
  335. /package/{expand/index.d.ts → types/elementar-rt-components-expand.d.ts} +0 -0
  336. /package/{expansion-panel/index.d.ts → types/elementar-rt-components-expansion-panel.d.ts} +0 -0
  337. /package/{filter-builder/index.d.ts → types/elementar-rt-components-filter-builder.d.ts} +0 -0
  338. /package/{filter-select/index.d.ts → types/elementar-rt-components-filter-select.d.ts} +0 -0
  339. /package/{form-renderer/index.d.ts → types/elementar-rt-components-form-renderer.d.ts} +0 -0
  340. /package/{gauge/index.d.ts → types/elementar-rt-components-gauge.d.ts} +0 -0
  341. /package/{grid/index.d.ts → types/elementar-rt-components-grid.d.ts} +0 -0
  342. /package/{guided-tour/index.d.ts → types/elementar-rt-components-guided-tour.d.ts} +0 -0
  343. /package/{headless-stepper/index.d.ts → types/elementar-rt-components-headless-stepper.d.ts} +0 -0
  344. /package/{icon/index.d.ts → types/elementar-rt-components-icon.d.ts} +0 -0
  345. /package/{image-placeholder/index.d.ts → types/elementar-rt-components-image-placeholder.d.ts} +0 -0
  346. /package/{image-resizer/index.d.ts → types/elementar-rt-components-image-resizer.d.ts} +0 -0
  347. /package/{image-viewer/index.d.ts → types/elementar-rt-components-image-viewer.d.ts} +0 -0
  348. /package/{image-zoom-viewer/index.d.ts → types/elementar-rt-components-image-zoom-viewer.d.ts} +0 -0
  349. /package/{incidents/index.d.ts → types/elementar-rt-components-incidents.d.ts} +0 -0
  350. /package/{inline-text-edit/index.d.ts → types/elementar-rt-components-inline-text-edit.d.ts} +0 -0
  351. /package/{input-mask/index.d.ts → types/elementar-rt-components-input-mask.d.ts} +0 -0
  352. /package/{input-validator/index.d.ts → types/elementar-rt-components-input-validator.d.ts} +0 -0
  353. /package/{kanban-board/index.d.ts → types/elementar-rt-components-kanban-board.d.ts} +0 -0
  354. /package/{keyboard/index.d.ts → types/elementar-rt-components-keyboard.d.ts} +0 -0
  355. /package/{layout/index.d.ts → types/elementar-rt-components-layout.d.ts} +0 -0
  356. /package/{list/index.d.ts → types/elementar-rt-components-list.d.ts} +0 -0
  357. /package/{logo/index.d.ts → types/elementar-rt-components-logo.d.ts} +0 -0
  358. /package/{marquee/index.d.ts → types/elementar-rt-components-marquee.d.ts} +0 -0
  359. /package/{menu/index.d.ts → types/elementar-rt-components-menu.d.ts} +0 -0
  360. /package/{micro-chart/index.d.ts → types/elementar-rt-components-micro-chart.d.ts} +0 -0
  361. /package/{multi-select/index.d.ts → types/elementar-rt-components-multi-select.d.ts} +0 -0
  362. /package/{navigation/index.d.ts → types/elementar-rt-components-navigation.d.ts} +0 -0
  363. /package/{notifications/index.d.ts → types/elementar-rt-components-notifications.d.ts} +0 -0
  364. /package/{number-input/index.d.ts → types/elementar-rt-components-number-input.d.ts} +0 -0
  365. /package/{overlay-scrollbar/index.d.ts → types/elementar-rt-components-overlay-scrollbar.d.ts} +0 -0
  366. /package/{overlay/index.d.ts → types/elementar-rt-components-overlay.d.ts} +0 -0
  367. /package/{page-loading-bar/index.d.ts → types/elementar-rt-components-page-loading-bar.d.ts} +0 -0
  368. /package/{paginator/index.d.ts → types/elementar-rt-components-paginator.d.ts} +0 -0
  369. /package/{panel/index.d.ts → types/elementar-rt-components-panel.d.ts} +0 -0
  370. /package/{password-strength/index.d.ts → types/elementar-rt-components-password-strength.d.ts} +0 -0
  371. /package/{phone-input/index.d.ts → types/elementar-rt-components-phone-input.d.ts} +0 -0
  372. /package/{pin-input/index.d.ts → types/elementar-rt-components-pin-input.d.ts} +0 -0
  373. /package/{popover/index.d.ts → types/elementar-rt-components-popover.d.ts} +0 -0
  374. /package/{progress-bar/index.d.ts → types/elementar-rt-components-progress-bar.d.ts} +0 -0
  375. /package/{progress-spinner/index.d.ts → types/elementar-rt-components-progress-spinner.d.ts} +0 -0
  376. /package/{radio-card/index.d.ts → types/elementar-rt-components-radio-card.d.ts} +0 -0
  377. /package/{rail-nav/index.d.ts → types/elementar-rt-components-rail-nav.d.ts} +0 -0
  378. /package/{rating/index.d.ts → types/elementar-rt-components-rating.d.ts} +0 -0
  379. /package/{resizable-container/index.d.ts → types/elementar-rt-components-resizable-container.d.ts} +0 -0
  380. /package/{screen-loader/index.d.ts → types/elementar-rt-components-screen-loader.d.ts} +0 -0
  381. /package/{scroll-spy/index.d.ts → types/elementar-rt-components-scroll-spy.d.ts} +0 -0
  382. /package/{segmented/index.d.ts → types/elementar-rt-components-segmented.d.ts} +0 -0
  383. /package/{side-panel/index.d.ts → types/elementar-rt-components-side-panel.d.ts} +0 -0
  384. /package/{sidebar/index.d.ts → types/elementar-rt-components-sidebar.d.ts} +0 -0
  385. /package/{sidenav/index.d.ts → types/elementar-rt-components-sidenav.d.ts} +0 -0
  386. /package/{signature-pad/index.d.ts → types/elementar-rt-components-signature-pad.d.ts} +0 -0
  387. /package/{skeleton/index.d.ts → types/elementar-rt-components-skeleton.d.ts} +0 -0
  388. /package/{slider/index.d.ts → types/elementar-rt-components-slider.d.ts} +0 -0
  389. /package/{snackbar/index.d.ts → types/elementar-rt-components-snackbar.d.ts} +0 -0
  390. /package/{sort/index.d.ts → types/elementar-rt-components-sort.d.ts} +0 -0
  391. /package/{splash-screen/index.d.ts → types/elementar-rt-components-splash-screen.d.ts} +0 -0
  392. /package/{split-pane/index.d.ts → types/elementar-rt-components-split-pane.d.ts} +0 -0
  393. /package/{stat-card/index.d.ts → types/elementar-rt-components-stat-card.d.ts} +0 -0
  394. /package/{step-tracker/index.d.ts → types/elementar-rt-components-step-tracker.d.ts} +0 -0
  395. /package/{stepper/index.d.ts → types/elementar-rt-components-stepper.d.ts} +0 -0
  396. /package/{suggestions/index.d.ts → types/elementar-rt-components-suggestions.d.ts} +0 -0
  397. /package/{tab-panel/index.d.ts → types/elementar-rt-components-tab-panel.d.ts} +0 -0
  398. /package/{table/index.d.ts → types/elementar-rt-components-table.d.ts} +0 -0
  399. /package/{tabs/index.d.ts → types/elementar-rt-components-tabs.d.ts} +0 -0
  400. /package/{tag/index.d.ts → types/elementar-rt-components-tag.d.ts} +0 -0
  401. /package/{text-editor/index.d.ts → types/elementar-rt-components-text-editor.d.ts} +0 -0
  402. /package/{thumbnail-maker/index.d.ts → types/elementar-rt-components-thumbnail-maker.d.ts} +0 -0
  403. /package/{tiles/index.d.ts → types/elementar-rt-components-tiles.d.ts} +0 -0
  404. /package/{timeline/index.d.ts → types/elementar-rt-components-timeline.d.ts} +0 -0
  405. /package/{timepicker/index.d.ts → types/elementar-rt-components-timepicker.d.ts} +0 -0
  406. /package/{timezone-select/index.d.ts → types/elementar-rt-components-timezone-select.d.ts} +0 -0
  407. /package/{toast/index.d.ts → types/elementar-rt-components-toast.d.ts} +0 -0
  408. /package/{toolbar/index.d.ts → types/elementar-rt-components-toolbar.d.ts} +0 -0
  409. /package/{tooltip/index.d.ts → types/elementar-rt-components-tooltip.d.ts} +0 -0
  410. /package/{tree/index.d.ts → types/elementar-rt-components-tree.d.ts} +0 -0
  411. /package/{upload/index.d.ts → types/elementar-rt-components-upload.d.ts} +0 -0
  412. /package/{video-player/index.d.ts → types/elementar-rt-components-video-player.d.ts} +0 -0
  413. /package/{video-viewer/index.d.ts → types/elementar-rt-components-video-viewer.d.ts} +0 -0
  414. /package/{index.d.ts → types/elementar-rt-components.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"elementar-rt-components-dashboard.mjs","sources":["../../../projects/components/dashboard/src/types.ts","../../../projects/components/dashboard/src/widget-skeleton/widget-skeleton.component.ts","../../../projects/components/dashboard/src/widget-skeleton/widget-skeleton.component.html","../../../projects/components/dashboard/src/dashboard/dashboard.component.ts","../../../projects/components/dashboard/src/dashboard/dashboard.component.html","../../../projects/components/dashboard/elementar-rt-components-dashboard.ts"],"sourcesContent":["import { InjectionToken, InputSignal } from '@angular/core';\n\nexport interface Dashboard {\n markWidgetAsLoaded(id: any): void;\n}\n\nexport interface WidgetComponent {\n id: InputSignal<any>;\n widget?: InputSignal<any>;\n}\n\nexport interface WidgetConfig {\n type: string;\n skeleton?: any;\n plain?: boolean;\n component: () => Promise<any>;\n}\n\nexport interface WidgetItem {\n id: any;\n type?: string;\n columns: number;\n children?: WidgetItem[];\n skeletonHeight?: string;\n height?: string;\n widget?: any; // widget data or nothing\n}\n\nexport const DASHBOARD = new InjectionToken('DASHBOARD');\n","import { Component } from '@angular/core';\nimport { SkeletonBlockComponent, SkeletonComponent, SkeletonLineComponent } from '@elementar-rt/components/skeleton';\n\n@Component({\n selector: 'emr-widget-skeleton',\n exportAs: 'emrWidgetSkeleton',\n imports: [\n SkeletonLineComponent,\n SkeletonBlockComponent,\n SkeletonComponent\n ],\n templateUrl: './widget-skeleton.component.html',\n styleUrl: './widget-skeleton.component.scss',\n host: {\n 'class': 'emr-widget-skeleton',\n }\n})\nexport class WidgetSkeletonComponent {\n\n}\n","<emr-skeleton direction=\"col\" class=\"h-full\">\n <emr-skeleton-line class=\"h-4 w-8/12\"/>\n <div class=\"grow min-h-12\">\n <emr-skeleton-block class=\"h-full\"/>\n </div>\n</emr-skeleton>\n","import {\n booleanAttribute,\n Component,\n forwardRef,\n input,\n OnInit,\n signal\n} from '@angular/core';\nimport {\n DASHBOARD, WidgetConfig, WidgetItem\n} from '../types';\nimport { AsyncPipe, NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\nimport { WidgetSkeletonComponent } from '../widget-skeleton/widget-skeleton.component';\n\n@Component({\n selector: 'emr-dashboard',\n exportAs: 'emrDashboard',\n imports: [\n NgComponentOutlet,\n AsyncPipe,\n WidgetSkeletonComponent,\n NgTemplateOutlet\n ],\n providers: [\n {\n provide: DASHBOARD,\n useExisting: forwardRef(() => DashboardComponent),\n }\n ],\n templateUrl: './dashboard.component.html',\n styleUrl: './dashboard.component.scss',\n host: {\n 'class': 'emr-dashboard'\n }\n})\nexport class DashboardComponent implements OnInit {\n protected _skeletonMap = new Map<string, any>();\n protected _componentsMap = new Map<string, any>();\n\n readonly configs = input<WidgetConfig[]>([]);\n readonly items = input<WidgetItem[]>([]);\n readonly plain = input(false, {\n transform: booleanAttribute\n });\n readonly waitWhenAllWidgetLoaded = input(false, {\n transform: booleanAttribute\n });\n\n protected _allLoaded = signal(false);\n protected _loadedWidgetsCount = signal(0);\n\n ngOnInit() {\n if (this.configs().length === 0) {\n return;\n }\n\n if (!this.waitWhenAllWidgetLoaded()) {\n this._allLoaded.set(true);\n }\n\n this.configs().forEach(config => {\n this._skeletonMap.set(config.type, config.skeleton);\n });\n this.configs().forEach(async (config, index: number) => {\n this._componentsMap.set(config.type, config.component());\n });\n }\n\n markWidgetAsLoaded(id: any) {\n this._loadedWidgetsCount.set(this._loadedWidgetsCount() + 1);\n this._allLoaded.set(this._loadedWidgetsCount() === this.items().length);\n }\n\n protected getWidgetConfig(type: string): WidgetConfig {\n return this.configs().find(config => config.type === type) as WidgetConfig;\n }\n\n protected getSkeletonComponent(type: string): any {\n return this._skeletonMap.get(type);\n }\n\n protected getWidgetComponent(type: string) {\n return this._componentsMap.get(type);\n }\n\n protected getWidgetInputs(widgetItem: WidgetItem): any {\n return widgetItem.widget ? { widget: widgetItem.widget, id: widgetItem.id } : { id: widgetItem.id };\n }\n}\n","<div class=\"dashgrid\">\n <ng-container *ngTemplateOutlet=\"itemsTpl; context: { $implicit: items() }\"/>\n</div>\n\n<ng-template #itemsTpl let-items>\n @for (item of items; track $index) {\n <div class=\"dashgrid-item\"\n [style.--emr-dashgrid-item-colspan]=\"item.columns || 12\">\n @if (item.children?.length > 0) {\n <div class=\"dashgrid\">\n <ng-container *ngTemplateOutlet=\"itemsTpl; context: { $implicit: item.children }\"/>\n </div>\n } @else {\n <div class=\"widget\"\n [style.--emr-dashboard-widget-height]=\"item.height\"\n [class.plain]=\"getWidgetConfig(item.type).plain || plain()\"\n [class.hidden]=\"!_allLoaded()\">\n <ng-container [ngComponentOutlet]=\"getWidgetComponent(item.type) | async\"\n [ngComponentOutletInputs]=\"getWidgetInputs(item)\"/>\n </div>\n\n @if (!_allLoaded()) {\n <div class=\"widget skeleton\"\n [style.--emr-dashboard-widget-skeleton-min-height]=\"item.skeletonHeight || item.height\">\n @let skeletonComponent = getSkeletonComponent(item.type);\n\n @if (skeletonComponent) {\n <ng-container [ngComponentOutlet]=\"skeletonComponent\"/>\n } @else {\n <emr-widget-skeleton/>\n }\n </div>\n }\n }\n </div>\n }\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"elementar-rt-components-dashboard.mjs","sources":["../../../projects/components/dashboard/src/types.ts","../../../projects/components/dashboard/src/widget-skeleton/widget-skeleton.component.ts","../../../projects/components/dashboard/src/widget-skeleton/widget-skeleton.component.html","../../../projects/components/dashboard/src/dashboard/dashboard.component.ts","../../../projects/components/dashboard/src/dashboard/dashboard.component.html","../../../projects/components/dashboard/elementar-rt-components-dashboard.ts"],"sourcesContent":["import { InjectionToken, InputSignal } from '@angular/core';\n\nexport interface Dashboard {\n markWidgetAsLoaded(id: any): void;\n}\n\nexport interface WidgetComponent {\n id: InputSignal<any>;\n widget?: InputSignal<any>;\n}\n\nexport interface WidgetConfig {\n type: string;\n skeleton?: any;\n plain?: boolean;\n component: () => Promise<any>;\n}\n\nexport interface WidgetItem {\n id: any;\n type?: string;\n columns: number;\n children?: WidgetItem[];\n skeletonHeight?: string;\n height?: string;\n widget?: any; // widget data or nothing\n}\n\nexport const DASHBOARD = new InjectionToken('DASHBOARD');\n","import { Component } from '@angular/core';\nimport { SkeletonBlockComponent, SkeletonComponent, SkeletonLineComponent } from '@elementar-rt/components/skeleton';\n\n@Component({\n selector: 'emr-widget-skeleton',\n exportAs: 'emrWidgetSkeleton',\n imports: [\n SkeletonLineComponent,\n SkeletonBlockComponent,\n SkeletonComponent\n ],\n templateUrl: './widget-skeleton.component.html',\n styleUrl: './widget-skeleton.component.scss',\n host: {\n 'class': 'emr-widget-skeleton',\n }\n})\nexport class WidgetSkeletonComponent {\n\n}\n","<emr-skeleton direction=\"col\" class=\"h-full\">\n <emr-skeleton-line class=\"h-4 w-8/12\"/>\n <div class=\"grow min-h-12\">\n <emr-skeleton-block class=\"h-full\"/>\n </div>\n</emr-skeleton>\n","import {\n booleanAttribute,\n Component,\n forwardRef,\n input,\n OnInit,\n signal\n} from '@angular/core';\nimport {\n DASHBOARD, WidgetConfig, WidgetItem\n} from '../types';\nimport { AsyncPipe, NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\nimport { WidgetSkeletonComponent } from '../widget-skeleton/widget-skeleton.component';\n\n@Component({\n selector: 'emr-dashboard',\n exportAs: 'emrDashboard',\n imports: [\n NgComponentOutlet,\n AsyncPipe,\n WidgetSkeletonComponent,\n NgTemplateOutlet\n ],\n providers: [\n {\n provide: DASHBOARD,\n useExisting: forwardRef(() => DashboardComponent),\n }\n ],\n templateUrl: './dashboard.component.html',\n styleUrl: './dashboard.component.scss',\n host: {\n 'class': 'emr-dashboard'\n }\n})\nexport class DashboardComponent implements OnInit {\n protected _skeletonMap = new Map<string, any>();\n protected _componentsMap = new Map<string, any>();\n\n readonly configs = input<WidgetConfig[]>([]);\n readonly items = input<WidgetItem[]>([]);\n readonly plain = input(false, {\n transform: booleanAttribute\n });\n readonly waitWhenAllWidgetLoaded = input(false, {\n transform: booleanAttribute\n });\n\n protected _allLoaded = signal(false);\n protected _loadedWidgetsCount = signal(0);\n\n ngOnInit() {\n if (this.configs().length === 0) {\n return;\n }\n\n if (!this.waitWhenAllWidgetLoaded()) {\n this._allLoaded.set(true);\n }\n\n this.configs().forEach(config => {\n this._skeletonMap.set(config.type, config.skeleton);\n });\n this.configs().forEach(async (config, index: number) => {\n this._componentsMap.set(config.type, config.component());\n });\n }\n\n markWidgetAsLoaded(id: any) {\n this._loadedWidgetsCount.set(this._loadedWidgetsCount() + 1);\n this._allLoaded.set(this._loadedWidgetsCount() === this.items().length);\n }\n\n protected getWidgetConfig(type: string): WidgetConfig {\n return this.configs().find(config => config.type === type) as WidgetConfig;\n }\n\n protected getSkeletonComponent(type: string): any {\n return this._skeletonMap.get(type);\n }\n\n protected getWidgetComponent(type: string) {\n return this._componentsMap.get(type);\n }\n\n protected getWidgetInputs(widgetItem: WidgetItem): any {\n return widgetItem.widget ? { widget: widgetItem.widget, id: widgetItem.id } : { id: widgetItem.id };\n }\n}\n","<div class=\"dashgrid\">\n <ng-container *ngTemplateOutlet=\"itemsTpl; context: { $implicit: items() }\"/>\n</div>\n\n<ng-template #itemsTpl let-items>\n @for (item of items; track $index) {\n <div class=\"dashgrid-item\"\n [style.--emr-dashgrid-item-colspan]=\"item.columns || 12\">\n @if (item.children?.length > 0) {\n <div class=\"dashgrid\">\n <ng-container *ngTemplateOutlet=\"itemsTpl; context: { $implicit: item.children }\"/>\n </div>\n } @else {\n <div class=\"widget\"\n [style.--emr-dashboard-widget-height]=\"item.height\"\n [class.plain]=\"getWidgetConfig(item.type).plain || plain()\"\n [class.hidden]=\"!_allLoaded()\">\n <ng-container [ngComponentOutlet]=\"getWidgetComponent(item.type) | async\"\n [ngComponentOutletInputs]=\"getWidgetInputs(item)\"/>\n </div>\n\n @if (!_allLoaded()) {\n <div class=\"widget skeleton\"\n [style.--emr-dashboard-widget-skeleton-min-height]=\"item.skeletonHeight || item.height\">\n @let skeletonComponent = getSkeletonComponent(item.type);\n\n @if (skeletonComponent) {\n <ng-container [ngComponentOutlet]=\"skeletonComponent\"/>\n } @else {\n <emr-widget-skeleton/>\n }\n </div>\n }\n }\n </div>\n }\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -4,22 +4,22 @@ import { NgTemplateOutlet } from '@angular/common';
4
4
  import { CdkVirtualScrollViewport, CdkFixedSizeVirtualScroll, CdkVirtualForOf } from '@angular/cdk/scrolling';
5
5
 
6
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" }] : []));
7
+ rows = input([], ...(ngDevMode ? [{ debugName: "rows" }] : /* istanbul ignore next */ []));
8
+ columns = input([], ...(ngDevMode ? [{ debugName: "columns" }] : /* istanbul ignore next */ []));
9
+ rowHeight = input(48, ...(ngDevMode ? [{ debugName: "rowHeight" }] : /* istanbul ignore next */ []));
10
+ virtualScrollHeight = input(400, ...(ngDevMode ? [{ debugName: "virtualScrollHeight" }] : /* istanbul ignore next */ []));
11
+ selectable = input(false, { ...(ngDevMode ? { debugName: "selectable" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
12
+ multiSelect = input(false, { ...(ngDevMode ? { debugName: "multiSelect" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
13
+ loading = input(false, { ...(ngDevMode ? { debugName: "loading" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
14
+ emptyMessage = input('No data available', ...(ngDevMode ? [{ debugName: "emptyMessage" }] : /* istanbul ignore next */ []));
15
15
  sortChange = output();
16
16
  cellEdit = output();
17
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" }] : []));
18
+ _sortField = signal('', ...(ngDevMode ? [{ debugName: "_sortField" }] : /* istanbul ignore next */ []));
19
+ _sortDir = signal('asc', ...(ngDevMode ? [{ debugName: "_sortDir" }] : /* istanbul ignore next */ []));
20
+ _selectedRows = signal(new Set(), ...(ngDevMode ? [{ debugName: "_selectedRows" }] : /* istanbul ignore next */ []));
21
+ _editingCell = signal(null, ...(ngDevMode ? [{ debugName: "_editingCell" }] : /* istanbul ignore next */ []));
22
+ _editValue = signal('', ...(ngDevMode ? [{ debugName: "_editValue" }] : /* istanbul ignore next */ []));
23
23
  _sortedRows = computed(() => {
24
24
  const field = this._sortField();
25
25
  const dir = this._sortDir();
@@ -34,7 +34,7 @@ class DataGridComponent {
34
34
  : String(av).localeCompare(String(bv));
35
35
  return dir === 'asc' ? cmp : -cmp;
36
36
  });
37
- }, ...(ngDevMode ? [{ debugName: "_sortedRows" }] : []));
37
+ }, ...(ngDevMode ? [{ debugName: "_sortedRows" }] : /* istanbul ignore next */ []));
38
38
  _sort(col) {
39
39
  if (!col.sortable)
40
40
  return;
@@ -51,7 +51,7 @@ class DataGridComponent {
51
51
  _allSelected = computed(() => {
52
52
  const rows = this._sortedRows();
53
53
  return rows.length > 0 && rows.every(r => this._selectedRows().has(r));
54
- }, ...(ngDevMode ? [{ debugName: "_allSelected" }] : []));
54
+ }, ...(ngDevMode ? [{ debugName: "_allSelected" }] : /* istanbul ignore next */ []));
55
55
  _toggleRow(row) {
56
56
  if (!this.selectable())
57
57
  return;
@@ -103,13 +103,13 @@ class DataGridComponent {
103
103
  const cols = this.columns();
104
104
  const check = this.selectable() ? '--spacing(10) ' : '';
105
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 });
106
+ }, ...(ngDevMode ? [{ debugName: "_gridTemplateColumns" }] : /* istanbul ignore next */ []));
107
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: DataGridComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
108
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", 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.3 | 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
109
  }
110
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DataGridComponent, decorators: [{
110
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: DataGridComponent, decorators: [{
111
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"] }]
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.3 | MIT License | https://tailwindcss.com */\n"] }]
113
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
114
 
115
115
  /**
@@ -1 +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":"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"}
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":"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"}
@@ -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.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 });
12
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: DataViewEmptyDataDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
13
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.22", 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.25", ngImport: i0, type: DataViewEmptyDataDirective, decorators: [{
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", 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.25", ngImpo
26
26
 
27
27
  class DataViewEmptyFilterResultsDirective {
28
28
  templateRef = inject(TemplateRef);
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 });
29
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: DataViewEmptyFilterResultsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
30
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.22", 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.25", ngImport: i0, type: DataViewEmptyFilterResultsDirective, decorators: [{
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", 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.25", ngImpo
43
43
 
44
44
  class DataViewActionBarDirective {
45
45
  templateRef = inject(TemplateRef);
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 });
46
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: DataViewActionBarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
47
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.22", type: DataViewActionBarDirective, isStandalone: true, selector: "[emrDataViewActionBar]", ngImport: i0 });
48
48
  }
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DataViewActionBarDirective, decorators: [{
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: DataViewActionBarDirective, decorators: [{
50
50
  type: Directive,
51
51
  args: [{
52
52
  selector: '[emrDataViewActionBar]',
@@ -58,31 +58,21 @@ class DataViewComponent {
58
58
  _cdr = inject(ChangeDetectorRef);
59
59
  _elementRef = inject(ElementRef);
60
60
  _renderer = inject(Renderer2);
61
- _emptyDataRef = contentChild(DataViewEmptyDataDirective, ...(ngDevMode ? [{ debugName: "_emptyDataRef" }] : []));
62
- _emptyFilterResults = contentChild(DataViewEmptyFilterResultsDirective, ...(ngDevMode ? [{ debugName: "_emptyFilterResults" }] : []));
63
- _actionBarRef = contentChild(DataViewActionBarDirective, ...(ngDevMode ? [{ debugName: "_actionBarRef" }] : []));
64
- _matTable = viewChild('table', ...(ngDevMode ? [{ debugName: "_matTable" }] : []));
65
- _matSort = viewChild(MatSort, ...(ngDevMode ? [{ debugName: "_matSort" }] : []));
66
- variant = input('list', ...(ngDevMode ? [{ debugName: "variant" }] : []));
67
- paginator = input(...(ngDevMode ? [undefined, { debugName: "paginator" }] : []));
68
- columnDefs = input([], ...(ngDevMode ? [{ debugName: "columnDefs" }] : []));
69
- data = input([], ...(ngDevMode ? [{ debugName: "data" }] : []));
70
- withSelection = input(false, ...(ngDevMode ? [{ debugName: "withSelection", transform: booleanAttribute }] : [{
71
- transform: booleanAttribute
72
- }]));
73
- highlightHeader = input(false, ...(ngDevMode ? [{ debugName: "highlightHeader", transform: booleanAttribute }] : [{
74
- transform: booleanAttribute
75
- }]));
76
- rowModelType = input('clientSide', ...(ngDevMode ? [{ debugName: "rowModelType" }] : []));
77
- withSorting = input(false, ...(ngDevMode ? [{ debugName: "withSorting", transform: booleanAttribute }] : [{
78
- transform: booleanAttribute
79
- }]));
80
- stickyHeader = input(false, ...(ngDevMode ? [{ debugName: "stickyHeader", transform: booleanAttribute }] : [{
81
- transform: booleanAttribute
82
- }]));
83
- hoverRows = input(false, ...(ngDevMode ? [{ debugName: "hoverRows", transform: booleanAttribute }] : [{
84
- transform: booleanAttribute
85
- }]));
61
+ _emptyDataRef = contentChild(DataViewEmptyDataDirective, ...(ngDevMode ? [{ debugName: "_emptyDataRef" }] : /* istanbul ignore next */ []));
62
+ _emptyFilterResults = contentChild(DataViewEmptyFilterResultsDirective, ...(ngDevMode ? [{ debugName: "_emptyFilterResults" }] : /* istanbul ignore next */ []));
63
+ _actionBarRef = contentChild(DataViewActionBarDirective, ...(ngDevMode ? [{ debugName: "_actionBarRef" }] : /* istanbul ignore next */ []));
64
+ _matTable = viewChild('table', ...(ngDevMode ? [{ debugName: "_matTable" }] : /* istanbul ignore next */ []));
65
+ _matSort = viewChild(MatSort, ...(ngDevMode ? [{ debugName: "_matSort" }] : /* istanbul ignore next */ []));
66
+ variant = input('list', ...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
67
+ paginator = input(...(ngDevMode ? [undefined, { debugName: "paginator" }] : /* istanbul ignore next */ []));
68
+ columnDefs = input([], ...(ngDevMode ? [{ debugName: "columnDefs" }] : /* istanbul ignore next */ []));
69
+ data = input([], ...(ngDevMode ? [{ debugName: "data" }] : /* istanbul ignore next */ []));
70
+ withSelection = input(false, { ...(ngDevMode ? { debugName: "withSelection" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
71
+ highlightHeader = input(false, { ...(ngDevMode ? { debugName: "highlightHeader" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
72
+ rowModelType = input('clientSide', ...(ngDevMode ? [{ debugName: "rowModelType" }] : /* istanbul ignore next */ []));
73
+ withSorting = input(false, { ...(ngDevMode ? { debugName: "withSorting" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
74
+ stickyHeader = input(false, { ...(ngDevMode ? { debugName: "stickyHeader" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
75
+ hoverRows = input(false, { ...(ngDevMode ? { debugName: "hoverRows" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
86
76
  displayedColumns = computed(() => {
87
77
  const displayedColumns = this
88
78
  .columnDefs()
@@ -92,7 +82,7 @@ class DataViewComponent {
92
82
  displayedColumns.unshift('selection');
93
83
  }
94
84
  return [...displayedColumns, '__actionBar'];
95
- }, ...(ngDevMode ? [{ debugName: "displayedColumns" }] : []));
85
+ }, ...(ngDevMode ? [{ debugName: "displayedColumns" }] : /* istanbul ignore next */ []));
96
86
  dataSource = computed(() => {
97
87
  const dataSource = new MatTableDataSource(this.data());
98
88
  if (this.paginator()) {
@@ -115,12 +105,10 @@ class DataViewComponent {
115
105
  }
116
106
  };
117
107
  return dataSource;
118
- }, ...(ngDevMode ? [{ debugName: "dataSource" }] : []));
119
- cellRenderers = input([], ...(ngDevMode ? [{ debugName: "cellRenderers" }] : []));
120
- loading = input(false, ...(ngDevMode ? [{ debugName: "loading", transform: booleanAttribute }] : [{
121
- transform: booleanAttribute
122
- }]));
123
- search = input('', ...(ngDevMode ? [{ debugName: "search" }] : []));
108
+ }, ...(ngDevMode ? [{ debugName: "dataSource" }] : /* istanbul ignore next */ []));
109
+ cellRenderers = input([], ...(ngDevMode ? [{ debugName: "cellRenderers" }] : /* istanbul ignore next */ []));
110
+ loading = input(false, { ...(ngDevMode ? { debugName: "loading" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
111
+ search = input('', ...(ngDevMode ? [{ debugName: "search" }] : /* istanbul ignore next */ []));
124
112
  injector = inject(Injector);
125
113
  selection = new SelectionModel(true, []);
126
114
  cellRenderersMap = new Map();
@@ -231,10 +219,10 @@ class DataViewComponent {
231
219
  this.selectionChanged.emit([]);
232
220
  this.allRowsSelectionChanged.emit(false);
233
221
  }
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"] }] });
222
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: DataViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
223
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", 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.3 | 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"], 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
224
  }
237
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DataViewComponent, decorators: [{
225
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: DataViewComponent, decorators: [{
238
226
  type: Component,
239
227
  args: [{ selector: 'emr-data-view', exportAs: 'emrDataView', imports: [
240
228
  MatCell,
@@ -261,13 +249,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
261
249
  '[class.highlight-header]': 'highlightHeader()',
262
250
  '[class.hover-rows]': 'hoverRows()',
263
251
  '[class.is-loading]': 'loading()',
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"] }]
252
+ }, 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.3 | MIT License | https://tailwindcss.com */\n"] }]
265
253
  }], 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
254
 
267
255
  class DataViewActionBarComponent {
268
- forceVisible = input(false, ...(ngDevMode ? [{ debugName: "forceVisible", transform: booleanAttribute }] : [{
269
- transform: booleanAttribute
270
- }]));
256
+ forceVisible = input(false, { ...(ngDevMode ? { debugName: "forceVisible" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
271
257
  _forceVisible = false;
272
258
  get api() {
273
259
  return {
@@ -276,15 +262,15 @@ class DataViewActionBarComponent {
276
262
  },
277
263
  };
278
264
  }
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"] });
265
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: DataViewActionBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
266
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.22", 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.3 | MIT License | https://tailwindcss.com */\n"] });
281
267
  }
282
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DataViewActionBarComponent, decorators: [{
268
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: DataViewActionBarComponent, decorators: [{
283
269
  type: Component,
284
270
  args: [{ selector: 'emr-data-view-action-bar', exportAs: 'emrDataViewActionBar', host: {
285
271
  'class': 'emr-data-view-action-bar',
286
272
  '[class.force-visible]': 'forceVisible() || _forceVisible'
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"] }]
273
+ }, 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.3 | MIT License | https://tailwindcss.com */\n"] }]
288
274
  }], propDecorators: { forceVisible: [{ type: i0.Input, args: [{ isSignal: true, alias: "forceVisible", required: false }] }] } });
289
275
 
290
276
  function cellRenderer(dataRenderer, component) {