@nova-design-system/nova-webcomponents 3.0.0 → 3.1.0

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 (436) hide show
  1. package/dist/cjs/{constants-bcd6b2e2.js → constants-8fb8ccc0.js} +14 -1
  2. package/dist/cjs/constants-8fb8ccc0.js.map +1 -0
  3. package/dist/cjs/index-9bda5507.js +4 -4
  4. package/dist/cjs/index.cjs.js +4 -471
  5. package/dist/cjs/index.cjs.js.map +1 -1
  6. package/dist/cjs/loader.cjs.js +1 -1
  7. package/dist/cjs/native.cjs.js +1 -1
  8. package/dist/cjs/nv-alert.cjs.entry.js +5 -5
  9. package/dist/cjs/nv-alert.cjs.entry.js.map +1 -1
  10. package/dist/cjs/nv-avatar.cjs.entry.js +1 -1
  11. package/dist/cjs/nv-badge_2.cjs.entry.js +17 -8
  12. package/dist/cjs/nv-badge_2.cjs.entry.js.map +1 -1
  13. package/dist/cjs/nv-button.cjs.entry.js +1 -1
  14. package/dist/cjs/nv-calendar.cjs.entry.js +841 -842
  15. package/dist/cjs/nv-calendar.cjs.entry.js.map +1 -1
  16. package/dist/cjs/nv-datagrid.cjs.entry.js +376 -39
  17. package/dist/cjs/nv-datagrid.cjs.entry.js.map +1 -1
  18. package/dist/cjs/nv-dialog.cjs.entry.js +18 -12
  19. package/dist/cjs/nv-dialog.cjs.entry.js.map +1 -1
  20. package/dist/cjs/nv-dialogfooter_2.cjs.entry.js +1 -1
  21. package/dist/cjs/nv-fielddate.cjs.entry.js +8 -17
  22. package/dist/cjs/nv-fielddate.cjs.entry.js.map +1 -1
  23. package/dist/cjs/nv-fielddaterange.cjs.entry.js +26 -28
  24. package/dist/cjs/nv-fielddaterange.cjs.entry.js.map +1 -1
  25. package/dist/cjs/nv-fielddropdown.cjs.entry.js +12 -5
  26. package/dist/cjs/nv-fielddropdown.cjs.entry.js.map +1 -1
  27. package/dist/cjs/nv-fielddropdownitem.cjs.entry.js +1 -1
  28. package/dist/cjs/nv-fieldmultiselect.cjs.entry.js +10 -4
  29. package/dist/cjs/nv-fieldmultiselect.cjs.entry.js.map +1 -1
  30. package/dist/cjs/nv-fieldnumber.cjs.entry.js +8 -4
  31. package/dist/cjs/nv-fieldnumber.cjs.entry.js.map +1 -1
  32. package/dist/cjs/nv-fieldpassword.cjs.entry.js +8 -4
  33. package/dist/cjs/nv-fieldpassword.cjs.entry.js.map +1 -1
  34. package/dist/cjs/nv-fieldradio.cjs.entry.js +3 -3
  35. package/dist/cjs/nv-fieldselect.cjs.entry.js +10 -6
  36. package/dist/cjs/nv-fieldselect.cjs.entry.js.map +1 -1
  37. package/dist/cjs/nv-fieldtext.cjs.entry.js +8 -4
  38. package/dist/cjs/nv-fieldtext.cjs.entry.js.map +1 -1
  39. package/dist/cjs/nv-fieldtextarea.cjs.entry.js +8 -4
  40. package/dist/cjs/nv-fieldtextarea.cjs.entry.js.map +1 -1
  41. package/dist/cjs/nv-fieldtime.cjs.entry.js +15 -12
  42. package/dist/cjs/nv-fieldtime.cjs.entry.js.map +1 -1
  43. package/dist/cjs/nv-icon.cjs.entry.js +3 -3
  44. package/dist/cjs/nv-icon.cjs.entry.js.map +1 -1
  45. package/dist/cjs/nv-iconbutton_2.cjs.entry.js +2 -2
  46. package/dist/cjs/nv-menu.cjs.entry.js +3 -1
  47. package/dist/cjs/nv-menu.cjs.entry.js.map +1 -1
  48. package/dist/cjs/nv-menuitem.cjs.entry.js +1 -1
  49. package/dist/cjs/nv-popover.cjs.entry.js +1 -1
  50. package/dist/cjs/nv-row.cjs.entry.js +1 -1
  51. package/dist/cjs/nv-stack.cjs.entry.js +1 -1
  52. package/dist/cjs/nv-table.cjs.entry.js +2 -2
  53. package/dist/cjs/nv-table.cjs.entry.js.map +1 -1
  54. package/dist/cjs/nv-toggle.cjs.entry.js +2 -2
  55. package/dist/cjs/nv-tooltip.cjs.entry.js +1 -1
  56. package/dist/collection/components/nv-alert/nv-alert.css +3 -0
  57. package/dist/collection/components/nv-alert/nv-alert.js +6 -11
  58. package/dist/collection/components/nv-alert/nv-alert.js.map +1 -1
  59. package/dist/collection/components/nv-badge/nv-badge.css +181 -1
  60. package/dist/collection/components/nv-badge/nv-badge.docs.js +20 -1
  61. package/dist/collection/components/nv-badge/nv-badge.docs.js.map +1 -1
  62. package/dist/collection/components/nv-badge/nv-badge.js +39 -15
  63. package/dist/collection/components/nv-badge/nv-badge.js.map +1 -1
  64. package/dist/collection/components/nv-breadcrumbs/nv-breadcrumbs.docs.js +0 -1
  65. package/dist/collection/components/nv-breadcrumbs/nv-breadcrumbs.docs.js.map +1 -1
  66. package/dist/collection/components/nv-calendar/nv-calendar.css +19 -0
  67. package/dist/collection/components/nv-calendar/nv-calendar.docs.js +33 -38
  68. package/dist/collection/components/nv-calendar/nv-calendar.docs.js.map +1 -1
  69. package/dist/collection/components/nv-calendar/nv-calendar.js +680 -897
  70. package/dist/collection/components/nv-calendar/nv-calendar.js.map +1 -1
  71. package/dist/collection/components/nv-calendar/nv-calendar.utils.js +202 -0
  72. package/dist/collection/components/nv-calendar/nv-calendar.utils.js.map +1 -0
  73. package/dist/collection/components/nv-calendar/test/nv-calendar.utils.test.js +667 -0
  74. package/dist/collection/components/nv-calendar/test/nv-calendar.utils.test.js.map +1 -0
  75. package/dist/collection/components/nv-datagrid/nv-datagrid.css +98 -0
  76. package/dist/collection/components/nv-datagrid/nv-datagrid.docs.js +103 -5
  77. package/dist/collection/components/nv-datagrid/nv-datagrid.docs.js.map +1 -1
  78. package/dist/collection/components/nv-datagrid/nv-datagrid.js +391 -56
  79. package/dist/collection/components/nv-datagrid/nv-datagrid.js.map +1 -1
  80. package/dist/collection/components/nv-dialog/nv-dialog.css +29 -5
  81. package/dist/collection/components/nv-dialog/nv-dialog.docs.js +0 -1
  82. package/dist/collection/components/nv-dialog/nv-dialog.docs.js.map +1 -1
  83. package/dist/collection/components/nv-dialog/nv-dialog.js +16 -10
  84. package/dist/collection/components/nv-dialog/nv-dialog.js.map +1 -1
  85. package/dist/collection/components/nv-fielddate/nv-fielddate.docs.js +16 -8
  86. package/dist/collection/components/nv-fielddate/nv-fielddate.docs.js.map +1 -1
  87. package/dist/collection/components/nv-fielddate/nv-fielddate.js +48 -39
  88. package/dist/collection/components/nv-fielddate/nv-fielddate.js.map +1 -1
  89. package/dist/collection/components/nv-fielddate/styles/nv-fielddate.css +7 -0
  90. package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.docs.js +12 -15
  91. package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.docs.js.map +1 -1
  92. package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js +75 -64
  93. package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js.map +1 -1
  94. package/dist/collection/components/nv-fielddaterange/styles/nv-fielddaterange.css +13 -11
  95. package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.docs.js +8 -0
  96. package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.docs.js.map +1 -1
  97. package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js +31 -4
  98. package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js.map +1 -1
  99. package/dist/collection/components/nv-fielddropdown/styles/nv-fielddropdown.css +5 -0
  100. package/dist/collection/components/nv-fielddropdownitem/nv-fielddropdownitem.js +1 -1
  101. package/dist/collection/components/nv-fielddropdownitemcheck/nv-fielddropdownitemcheck.js +1 -1
  102. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.css +24 -0
  103. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.docs.js +8 -1
  104. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.docs.js.map +1 -1
  105. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js +29 -3
  106. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js.map +1 -1
  107. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.css +5 -0
  108. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.docs.js +8 -0
  109. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.docs.js.map +1 -1
  110. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js +27 -3
  111. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js.map +1 -1
  112. package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.css +5 -0
  113. package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.docs.js +8 -0
  114. package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.docs.js.map +1 -1
  115. package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.js +27 -3
  116. package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.js.map +1 -1
  117. package/dist/collection/components/nv-fieldradio/nv-fieldradio.js +3 -3
  118. package/dist/collection/components/nv-fieldselect/nv-fieldselect.css +5 -0
  119. package/dist/collection/components/nv-fieldselect/nv-fieldselect.docs.js +8 -0
  120. package/dist/collection/components/nv-fieldselect/nv-fieldselect.docs.js.map +1 -1
  121. package/dist/collection/components/nv-fieldselect/nv-fieldselect.js +29 -5
  122. package/dist/collection/components/nv-fieldselect/nv-fieldselect.js.map +1 -1
  123. package/dist/collection/components/nv-fieldtext/nv-fieldtext.css +5 -0
  124. package/dist/collection/components/nv-fieldtext/nv-fieldtext.docs.js +8 -0
  125. package/dist/collection/components/nv-fieldtext/nv-fieldtext.docs.js.map +1 -1
  126. package/dist/collection/components/nv-fieldtext/nv-fieldtext.js +27 -3
  127. package/dist/collection/components/nv-fieldtext/nv-fieldtext.js.map +1 -1
  128. package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.css +23 -0
  129. package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.docs.js +8 -0
  130. package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.docs.js.map +1 -1
  131. package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.js +27 -3
  132. package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.js.map +1 -1
  133. package/dist/collection/components/nv-fieldtime/nv-fieldtime.js +13 -10
  134. package/dist/collection/components/nv-fieldtime/nv-fieldtime.js.map +1 -1
  135. package/dist/collection/components/nv-fieldtime/styles/nv-fieldtime.css +19 -2
  136. package/dist/collection/components/nv-icon/nv-icon.js +1 -1
  137. package/dist/collection/components/nv-icon/nv-icons.js +3 -470
  138. package/dist/collection/components/nv-icon/nv-icons.js.map +1 -1
  139. package/dist/collection/components/nv-iconbutton/nv-iconbutton.js +1 -1
  140. package/dist/collection/components/nv-loader/nv-loader.js +1 -1
  141. package/dist/collection/components/nv-menu/nv-menu.js +3 -1
  142. package/dist/collection/components/nv-menu/nv-menu.js.map +1 -1
  143. package/dist/collection/components/nv-menuitem/nv-menuitem.js +2 -2
  144. package/dist/collection/components/nv-popover/nv-popover.js +1 -1
  145. package/dist/collection/components/nv-row/nv-row.js +1 -1
  146. package/dist/collection/components/nv-stack/nv-stack.js +1 -1
  147. package/dist/collection/components/nv-table/nv-table.js +8 -11
  148. package/dist/collection/components/nv-table/nv-table.js.map +1 -1
  149. package/dist/collection/components/nv-toggle/nv-toggle.js +2 -2
  150. package/dist/collection/components/nv-tooltip/nv-tooltip.js +1 -1
  151. package/dist/collection/index.js.map +1 -1
  152. package/dist/collection/templates/navigation.docs.js +0 -1
  153. package/dist/collection/templates/navigation.docs.js.map +1 -1
  154. package/dist/collection/utils/constants.js +11 -0
  155. package/dist/collection/utils/constants.js.map +1 -1
  156. package/dist/components/index.js +4 -471
  157. package/dist/components/index.js.map +1 -1
  158. package/dist/components/nv-alert.js +6 -6
  159. package/dist/components/nv-alert.js.map +1 -1
  160. package/dist/components/nv-avatar.js +2 -2
  161. package/dist/components/nv-badge.js +1 -1
  162. package/dist/components/nv-breadcrumb.js +2 -2
  163. package/dist/components/nv-button.js +1 -1
  164. package/dist/components/nv-calendar.js +1 -1
  165. package/dist/components/nv-datagrid.js +400 -43
  166. package/dist/components/nv-datagrid.js.map +1 -1
  167. package/dist/components/nv-dialog.js +22 -16
  168. package/dist/components/nv-dialog.js.map +1 -1
  169. package/dist/components/nv-dialogfooter.js +1 -1
  170. package/dist/components/nv-fielddate.js +18 -26
  171. package/dist/components/nv-fielddate.js.map +1 -1
  172. package/dist/components/nv-fielddaterange.js +37 -38
  173. package/dist/components/nv-fielddaterange.js.map +1 -1
  174. package/dist/components/nv-fielddropdown.js +18 -10
  175. package/dist/components/nv-fielddropdown.js.map +1 -1
  176. package/dist/components/nv-fielddropdownitem.js +1 -1
  177. package/dist/components/nv-fielddropdownitemcheck.js +1 -1
  178. package/dist/components/nv-fieldmultiselect.js +17 -10
  179. package/dist/components/nv-fieldmultiselect.js.map +1 -1
  180. package/dist/components/nv-fieldnumber.js +13 -8
  181. package/dist/components/nv-fieldnumber.js.map +1 -1
  182. package/dist/components/nv-fieldpassword.js +12 -7
  183. package/dist/components/nv-fieldpassword.js.map +1 -1
  184. package/dist/components/nv-fieldradio.js +3 -3
  185. package/dist/components/nv-fieldselect.js +14 -9
  186. package/dist/components/nv-fieldselect.js.map +1 -1
  187. package/dist/components/nv-fieldtext.js +1 -158
  188. package/dist/components/nv-fieldtext.js.map +1 -1
  189. package/dist/components/nv-fieldtextarea.js +10 -5
  190. package/dist/components/nv-fieldtextarea.js.map +1 -1
  191. package/dist/components/nv-fieldtime.js +19 -16
  192. package/dist/components/nv-fieldtime.js.map +1 -1
  193. package/dist/components/nv-icon.js +1 -1
  194. package/dist/components/nv-iconbutton.js +1 -1
  195. package/dist/components/nv-loader.js +1 -1
  196. package/dist/components/nv-menu.js +6 -4
  197. package/dist/components/nv-menu.js.map +1 -1
  198. package/dist/components/nv-menuitem.js +1 -1
  199. package/dist/components/nv-popover.js +1 -1
  200. package/dist/components/nv-row.js +1 -1
  201. package/dist/components/nv-stack.js +1 -1
  202. package/dist/components/nv-table.js +2 -2
  203. package/dist/components/nv-table.js.map +1 -1
  204. package/dist/components/nv-toggle.js +2 -2
  205. package/dist/components/nv-tooltip.js +1 -1
  206. package/dist/components/p-0a0f6daf.js +187 -0
  207. package/dist/components/p-0a0f6daf.js.map +1 -0
  208. package/dist/components/{p-b7b78e64.js → p-10b37876.js} +2 -2
  209. package/dist/components/{p-b7b78e64.js.map → p-10b37876.js.map} +1 -1
  210. package/dist/components/{p-dc3faba3.js → p-10faa938.js} +4 -4
  211. package/dist/components/{p-dc3faba3.js.map → p-10faa938.js.map} +1 -1
  212. package/dist/{esm/constants-98e2dcc2.js → components/p-1f505531.js} +15 -2
  213. package/dist/components/p-1f505531.js.map +1 -0
  214. package/dist/components/{p-2012b8ba.js → p-35a70c5e.js} +2 -2
  215. package/dist/components/{p-2012b8ba.js.map → p-35a70c5e.js.map} +1 -1
  216. package/dist/components/{p-6c364a23.js → p-41c56ddc.js} +5 -5
  217. package/dist/components/{p-6c364a23.js.map → p-41c56ddc.js.map} +1 -1
  218. package/dist/components/{p-a30b55fc.js → p-608eb9da.js} +2 -2
  219. package/dist/components/{p-a30b55fc.js.map → p-608eb9da.js.map} +1 -1
  220. package/dist/components/p-76646ce9.js +88 -0
  221. package/dist/components/p-76646ce9.js.map +1 -0
  222. package/dist/components/p-854c32dc.js +1132 -0
  223. package/dist/components/p-854c32dc.js.map +1 -0
  224. package/dist/components/p-9decffb6.js +167 -0
  225. package/dist/components/p-9decffb6.js.map +1 -0
  226. package/dist/components/{p-2d9ba7d3.js → p-a2527411.js} +3 -3
  227. package/dist/components/{p-2d9ba7d3.js.map → p-a2527411.js.map} +1 -1
  228. package/dist/components/{p-f4d86795.js → p-b48d5a94.js} +3 -3
  229. package/dist/components/{p-f4d86795.js.map → p-b48d5a94.js.map} +1 -1
  230. package/dist/components/{p-4d3ec142.js → p-eb632278.js} +3 -3
  231. package/dist/components/{p-4d3ec142.js.map → p-eb632278.js.map} +1 -1
  232. package/dist/components/{p-150daf68.js → p-f5cb0a63.js} +2 -2
  233. package/dist/components/{p-150daf68.js.map → p-f5cb0a63.js.map} +1 -1
  234. package/dist/components/{p-c14f6b8e.js → p-f76bb0c3.js} +3 -3
  235. package/dist/components/{p-c14f6b8e.js.map → p-f76bb0c3.js.map} +1 -1
  236. package/dist/{components/p-8348db09.js → esm/constants-b97e736d.js} +15 -2
  237. package/dist/esm/constants-b97e736d.js.map +1 -0
  238. package/dist/esm/index-1fb7a9a6.js +4 -4
  239. package/dist/esm/index.js +4 -471
  240. package/dist/esm/index.js.map +1 -1
  241. package/dist/esm/loader.js +1 -1
  242. package/dist/esm/native.js +1 -1
  243. package/dist/esm/nv-alert.entry.js +5 -5
  244. package/dist/esm/nv-alert.entry.js.map +1 -1
  245. package/dist/esm/nv-avatar.entry.js +1 -1
  246. package/dist/esm/nv-badge_2.entry.js +17 -8
  247. package/dist/esm/nv-badge_2.entry.js.map +1 -1
  248. package/dist/esm/nv-button.entry.js +1 -1
  249. package/dist/esm/nv-calendar.entry.js +841 -842
  250. package/dist/esm/nv-calendar.entry.js.map +1 -1
  251. package/dist/esm/nv-datagrid.entry.js +376 -39
  252. package/dist/esm/nv-datagrid.entry.js.map +1 -1
  253. package/dist/esm/nv-dialog.entry.js +18 -12
  254. package/dist/esm/nv-dialog.entry.js.map +1 -1
  255. package/dist/esm/nv-dialogfooter_2.entry.js +1 -1
  256. package/dist/esm/nv-fielddate.entry.js +8 -17
  257. package/dist/esm/nv-fielddate.entry.js.map +1 -1
  258. package/dist/esm/nv-fielddaterange.entry.js +26 -28
  259. package/dist/esm/nv-fielddaterange.entry.js.map +1 -1
  260. package/dist/esm/nv-fielddropdown.entry.js +12 -5
  261. package/dist/esm/nv-fielddropdown.entry.js.map +1 -1
  262. package/dist/esm/nv-fielddropdownitem.entry.js +1 -1
  263. package/dist/esm/nv-fieldmultiselect.entry.js +10 -4
  264. package/dist/esm/nv-fieldmultiselect.entry.js.map +1 -1
  265. package/dist/esm/nv-fieldnumber.entry.js +8 -4
  266. package/dist/esm/nv-fieldnumber.entry.js.map +1 -1
  267. package/dist/esm/nv-fieldpassword.entry.js +8 -4
  268. package/dist/esm/nv-fieldpassword.entry.js.map +1 -1
  269. package/dist/esm/nv-fieldradio.entry.js +3 -3
  270. package/dist/esm/nv-fieldselect.entry.js +10 -6
  271. package/dist/esm/nv-fieldselect.entry.js.map +1 -1
  272. package/dist/esm/nv-fieldtext.entry.js +8 -4
  273. package/dist/esm/nv-fieldtext.entry.js.map +1 -1
  274. package/dist/esm/nv-fieldtextarea.entry.js +8 -4
  275. package/dist/esm/nv-fieldtextarea.entry.js.map +1 -1
  276. package/dist/esm/nv-fieldtime.entry.js +15 -12
  277. package/dist/esm/nv-fieldtime.entry.js.map +1 -1
  278. package/dist/esm/nv-icon.entry.js +3 -3
  279. package/dist/esm/nv-icon.entry.js.map +1 -1
  280. package/dist/esm/nv-iconbutton_2.entry.js +2 -2
  281. package/dist/esm/nv-menu.entry.js +3 -1
  282. package/dist/esm/nv-menu.entry.js.map +1 -1
  283. package/dist/esm/nv-menuitem.entry.js +1 -1
  284. package/dist/esm/nv-popover.entry.js +1 -1
  285. package/dist/esm/nv-row.entry.js +1 -1
  286. package/dist/esm/nv-stack.entry.js +1 -1
  287. package/dist/esm/nv-table.entry.js +2 -2
  288. package/dist/esm/nv-table.entry.js.map +1 -1
  289. package/dist/esm/nv-toggle.entry.js +2 -2
  290. package/dist/esm/nv-tooltip.entry.js +1 -1
  291. package/dist/native/index.esm.js +1 -1
  292. package/dist/native/index.esm.js.map +1 -1
  293. package/dist/native/native.css +1 -1
  294. package/dist/native/native.esm.js +1 -1
  295. package/dist/native/native.esm.js.map +1 -1
  296. package/dist/native/{p-b094296d.entry.js → p-08a75cfa.entry.js} +2 -2
  297. package/dist/native/{p-d5cbf5c8.entry.js → p-14c07207.entry.js} +2 -2
  298. package/dist/native/p-1da72182.entry.js +2 -0
  299. package/dist/native/p-1da72182.entry.js.map +1 -0
  300. package/dist/native/p-2523eead.entry.js +2 -0
  301. package/dist/native/p-2523eead.entry.js.map +1 -0
  302. package/dist/native/p-3953464e.entry.js +7 -0
  303. package/dist/native/p-3953464e.entry.js.map +1 -0
  304. package/dist/native/{p-701b5557.entry.js → p-3b7ef609.entry.js} +2 -2
  305. package/dist/native/{p-63e6aed3.entry.js → p-3cd77d82.entry.js} +2 -2
  306. package/dist/native/p-3cd77d82.entry.js.map +1 -0
  307. package/dist/native/p-470588c2.entry.js +13 -0
  308. package/dist/native/p-470588c2.entry.js.map +1 -0
  309. package/dist/native/p-49cac014.entry.js +2 -0
  310. package/dist/native/p-49cac014.entry.js.map +1 -0
  311. package/dist/native/p-4d164ed6.entry.js +2 -0
  312. package/dist/native/p-4d164ed6.entry.js.map +1 -0
  313. package/dist/native/p-4e635fa7.entry.js +2 -0
  314. package/dist/native/p-4e635fa7.entry.js.map +1 -0
  315. package/dist/native/p-5d21532a.entry.js +2 -0
  316. package/dist/native/p-5d21532a.entry.js.map +1 -0
  317. package/dist/native/{p-39bb95ff.entry.js → p-615947e7.entry.js} +2 -2
  318. package/dist/native/{p-bad11367.entry.js → p-656c56f0.entry.js} +2 -2
  319. package/dist/native/p-656c56f0.entry.js.map +1 -0
  320. package/dist/native/{p-fa77a591.entry.js → p-7042ba8a.entry.js} +2 -2
  321. package/dist/native/p-7e154bfd.entry.js +2 -0
  322. package/dist/native/p-7e154bfd.entry.js.map +1 -0
  323. package/dist/native/p-7eba904e.entry.js +2 -0
  324. package/dist/native/p-7eba904e.entry.js.map +1 -0
  325. package/dist/native/{p-6b348684.entry.js → p-7fd4d13d.entry.js} +2 -2
  326. package/dist/native/{p-fb5bddba.entry.js → p-90e6d9dd.entry.js} +2 -2
  327. package/dist/native/p-ae7ab110.entry.js +2 -0
  328. package/dist/native/p-ae7ab110.entry.js.map +1 -0
  329. package/dist/native/{p-f85aca27.entry.js → p-b8b6875d.entry.js} +2 -2
  330. package/dist/native/p-b94d9f0b.entry.js +2 -0
  331. package/dist/native/p-b94d9f0b.entry.js.map +1 -0
  332. package/dist/native/p-c0f79bac.entry.js +2 -0
  333. package/dist/native/p-c0f79bac.entry.js.map +1 -0
  334. package/dist/native/{p-6ff228da.entry.js → p-c67186f8.entry.js} +2 -2
  335. package/dist/native/{p-eee01062.entry.js → p-c71c6f23.entry.js} +2 -2
  336. package/dist/native/p-d9a52884.entry.js +2 -0
  337. package/dist/native/p-d9a52884.entry.js.map +1 -0
  338. package/dist/native/{p-d7a76400.entry.js → p-efe6a46c.entry.js} +2 -2
  339. package/dist/native/p-f2ef6771.entry.js +2 -0
  340. package/dist/native/p-f5f68992.entry.js +2 -0
  341. package/dist/native/p-f5f68992.entry.js.map +1 -0
  342. package/dist/native/{p-59768ee5.js → p-f85c08f1.js} +2 -2
  343. package/dist/native/p-f85c08f1.js.map +1 -0
  344. package/dist/native/p-fc97f071.entry.js +2 -0
  345. package/dist/native/p-fc97f071.entry.js.map +1 -0
  346. package/dist/types/components/nv-alert/nv-alert.d.ts +1 -1
  347. package/dist/types/components/nv-badge/nv-badge.d.ts +11 -3
  348. package/dist/types/components/nv-calendar/nv-calendar.d.ts +69 -107
  349. package/dist/types/components/nv-calendar/nv-calendar.utils.d.ts +60 -0
  350. package/dist/types/components/nv-calendar/test/nv-calendar.utils.test.d.ts +1 -0
  351. package/dist/types/components/nv-datagrid/nv-datagrid.d.ts +47 -10
  352. package/dist/types/components/nv-dialog/nv-dialog.d.ts +4 -0
  353. package/dist/types/components/nv-fielddate/nv-fielddate.d.ts +6 -7
  354. package/dist/types/components/nv-fielddaterange/nv-fielddaterange.d.ts +13 -12
  355. package/dist/types/components/nv-fielddropdown/nv-fielddropdown.d.ts +4 -0
  356. package/dist/types/components/nv-fieldmultiselect/nv-fieldmultiselect.d.ts +4 -0
  357. package/dist/types/components/nv-fieldnumber/nv-fieldnumber.d.ts +4 -0
  358. package/dist/types/components/nv-fieldpassword/nv-fieldpassword.d.ts +4 -0
  359. package/dist/types/components/nv-fieldselect/nv-fieldselect.d.ts +4 -0
  360. package/dist/types/components/nv-fieldtext/nv-fieldtext.d.ts +4 -0
  361. package/dist/types/components/nv-fieldtextarea/nv-fieldtextarea.d.ts +4 -0
  362. package/dist/types/components/nv-icon/nv-icons.d.ts +1 -1
  363. package/dist/types/components/nv-table/nv-table.d.ts +13 -2
  364. package/dist/types/components.d.ts +269 -116
  365. package/dist/types/index.d.ts +0 -2
  366. package/dist/types/utils/constants.d.ts +9 -0
  367. package/dist/vscode-data.json +221 -1587
  368. package/hydrate/index.js +1466 -1063
  369. package/hydrate/index.mjs +1466 -1063
  370. package/package.json +1 -1
  371. package/dist/cjs/constants-bcd6b2e2.js.map +0 -1
  372. package/dist/collection/interfaces/actionEvent.js +0 -2
  373. package/dist/collection/interfaces/actionEvent.js.map +0 -1
  374. package/dist/collection/interfaces/calendarShortcut.js +0 -2
  375. package/dist/collection/interfaces/calendarShortcut.js.map +0 -1
  376. package/dist/collection/interfaces/dateRange.js +0 -2
  377. package/dist/collection/interfaces/dateRange.js.map +0 -1
  378. package/dist/components/p-373926aa.js +0 -177
  379. package/dist/components/p-373926aa.js.map +0 -1
  380. package/dist/components/p-591730e7.js +0 -88
  381. package/dist/components/p-591730e7.js.map +0 -1
  382. package/dist/components/p-8348db09.js.map +0 -1
  383. package/dist/components/p-f331117c.js +0 -1133
  384. package/dist/components/p-f331117c.js.map +0 -1
  385. package/dist/esm/constants-98e2dcc2.js.map +0 -1
  386. package/dist/native/p-0ee428d5.entry.js +0 -2
  387. package/dist/native/p-0ee428d5.entry.js.map +0 -1
  388. package/dist/native/p-2691e02d.entry.js +0 -2
  389. package/dist/native/p-37f0210e.entry.js +0 -2
  390. package/dist/native/p-37f0210e.entry.js.map +0 -1
  391. package/dist/native/p-4a440970.entry.js +0 -2
  392. package/dist/native/p-4a440970.entry.js.map +0 -1
  393. package/dist/native/p-4ae26462.entry.js +0 -7
  394. package/dist/native/p-4ae26462.entry.js.map +0 -1
  395. package/dist/native/p-4d9c4618.entry.js +0 -2
  396. package/dist/native/p-4d9c4618.entry.js.map +0 -1
  397. package/dist/native/p-59768ee5.js.map +0 -1
  398. package/dist/native/p-59e0bd2b.entry.js +0 -2
  399. package/dist/native/p-59e0bd2b.entry.js.map +0 -1
  400. package/dist/native/p-5c00f092.entry.js +0 -2
  401. package/dist/native/p-5c00f092.entry.js.map +0 -1
  402. package/dist/native/p-63e6aed3.entry.js.map +0 -1
  403. package/dist/native/p-7f5eb2ac.entry.js +0 -2
  404. package/dist/native/p-7f5eb2ac.entry.js.map +0 -1
  405. package/dist/native/p-84a73e2a.entry.js +0 -2
  406. package/dist/native/p-84a73e2a.entry.js.map +0 -1
  407. package/dist/native/p-93dc2f47.entry.js +0 -2
  408. package/dist/native/p-93dc2f47.entry.js.map +0 -1
  409. package/dist/native/p-9a267f16.entry.js +0 -13
  410. package/dist/native/p-9a267f16.entry.js.map +0 -1
  411. package/dist/native/p-9d6431c7.entry.js +0 -2
  412. package/dist/native/p-9d6431c7.entry.js.map +0 -1
  413. package/dist/native/p-b2ce83ad.entry.js +0 -2
  414. package/dist/native/p-b2ce83ad.entry.js.map +0 -1
  415. package/dist/native/p-bad11367.entry.js.map +0 -1
  416. package/dist/native/p-e1a4f776.entry.js +0 -2
  417. package/dist/native/p-e1a4f776.entry.js.map +0 -1
  418. package/dist/native/p-e49bbd02.entry.js +0 -2
  419. package/dist/native/p-e49bbd02.entry.js.map +0 -1
  420. package/dist/native/p-f6bdc270.entry.js +0 -2
  421. package/dist/native/p-f6bdc270.entry.js.map +0 -1
  422. package/dist/types/interfaces/actionEvent.d.ts +0 -13
  423. package/dist/types/interfaces/calendarShortcut.d.ts +0 -17
  424. package/dist/types/interfaces/dateRange.d.ts +0 -13
  425. /package/dist/native/{p-b094296d.entry.js.map → p-08a75cfa.entry.js.map} +0 -0
  426. /package/dist/native/{p-d5cbf5c8.entry.js.map → p-14c07207.entry.js.map} +0 -0
  427. /package/dist/native/{p-701b5557.entry.js.map → p-3b7ef609.entry.js.map} +0 -0
  428. /package/dist/native/{p-39bb95ff.entry.js.map → p-615947e7.entry.js.map} +0 -0
  429. /package/dist/native/{p-fa77a591.entry.js.map → p-7042ba8a.entry.js.map} +0 -0
  430. /package/dist/native/{p-6b348684.entry.js.map → p-7fd4d13d.entry.js.map} +0 -0
  431. /package/dist/native/{p-fb5bddba.entry.js.map → p-90e6d9dd.entry.js.map} +0 -0
  432. /package/dist/native/{p-f85aca27.entry.js.map → p-b8b6875d.entry.js.map} +0 -0
  433. /package/dist/native/{p-6ff228da.entry.js.map → p-c67186f8.entry.js.map} +0 -0
  434. /package/dist/native/{p-eee01062.entry.js.map → p-c71c6f23.entry.js.map} +0 -0
  435. /package/dist/native/{p-d7a76400.entry.js.map → p-efe6a46c.entry.js.map} +0 -0
  436. /package/dist/native/{p-2691e02d.entry.js.map → p-f2ef6771.entry.js.map} +0 -0
@@ -1,5 +1,6 @@
1
1
  import { r as registerInstance, c as createEvent, h, a as Host, g as getElement } from './index-1fb7a9a6.js';
2
2
  import { d as deepCopyElement, e as excludedProps } from './dom.utils-ac71e0ef.js';
3
+ import { a as SortingPossibility } from './constants-b97e736d.js';
3
4
 
4
5
  /**
5
6
  * table-core
@@ -3199,6 +3200,92 @@ function getPaginationRowModel(opts) {
3199
3200
  }, getMemoOptions(table.options, 'debugTable'));
3200
3201
  }
3201
3202
 
3203
+ function getSortedRowModel() {
3204
+ return table => memo(() => [table.getState().sorting, table.getPreSortedRowModel()], (sorting, rowModel) => {
3205
+ if (!rowModel.rows.length || !(sorting != null && sorting.length)) {
3206
+ return rowModel;
3207
+ }
3208
+ const sortingState = table.getState().sorting;
3209
+ const sortedFlatRows = [];
3210
+
3211
+ // Filter out sortings that correspond to non existing columns
3212
+ const availableSorting = sortingState.filter(sort => {
3213
+ var _table$getColumn;
3214
+ return (_table$getColumn = table.getColumn(sort.id)) == null ? void 0 : _table$getColumn.getCanSort();
3215
+ });
3216
+ const columnInfoById = {};
3217
+ availableSorting.forEach(sortEntry => {
3218
+ const column = table.getColumn(sortEntry.id);
3219
+ if (!column) return;
3220
+ columnInfoById[sortEntry.id] = {
3221
+ sortUndefined: column.columnDef.sortUndefined,
3222
+ invertSorting: column.columnDef.invertSorting,
3223
+ sortingFn: column.getSortingFn()
3224
+ };
3225
+ });
3226
+ const sortData = rows => {
3227
+ // This will also perform a stable sorting using the row index
3228
+ // if needed.
3229
+ const sortedData = rows.map(row => ({
3230
+ ...row
3231
+ }));
3232
+ sortedData.sort((rowA, rowB) => {
3233
+ for (let i = 0; i < availableSorting.length; i += 1) {
3234
+ var _sortEntry$desc;
3235
+ const sortEntry = availableSorting[i];
3236
+ const columnInfo = columnInfoById[sortEntry.id];
3237
+ const sortUndefined = columnInfo.sortUndefined;
3238
+ const isDesc = (_sortEntry$desc = sortEntry == null ? void 0 : sortEntry.desc) != null ? _sortEntry$desc : false;
3239
+ let sortInt = 0;
3240
+
3241
+ // All sorting ints should always return in ascending order
3242
+ if (sortUndefined) {
3243
+ const aValue = rowA.getValue(sortEntry.id);
3244
+ const bValue = rowB.getValue(sortEntry.id);
3245
+ const aUndefined = aValue === undefined;
3246
+ const bUndefined = bValue === undefined;
3247
+ if (aUndefined || bUndefined) {
3248
+ if (sortUndefined === 'first') return aUndefined ? -1 : 1;
3249
+ if (sortUndefined === 'last') return aUndefined ? 1 : -1;
3250
+ sortInt = aUndefined && bUndefined ? 0 : aUndefined ? sortUndefined : -sortUndefined;
3251
+ }
3252
+ }
3253
+ if (sortInt === 0) {
3254
+ sortInt = columnInfo.sortingFn(rowA, rowB, sortEntry.id);
3255
+ }
3256
+
3257
+ // If sorting is non-zero, take care of desc and inversion
3258
+ if (sortInt !== 0) {
3259
+ if (isDesc) {
3260
+ sortInt *= -1;
3261
+ }
3262
+ if (columnInfo.invertSorting) {
3263
+ sortInt *= -1;
3264
+ }
3265
+ return sortInt;
3266
+ }
3267
+ }
3268
+ return rowA.index - rowB.index;
3269
+ });
3270
+
3271
+ // If there are sub-rows, sort them
3272
+ sortedData.forEach(row => {
3273
+ var _row$subRows;
3274
+ sortedFlatRows.push(row);
3275
+ if ((_row$subRows = row.subRows) != null && _row$subRows.length) {
3276
+ row.subRows = sortData(row.subRows);
3277
+ }
3278
+ });
3279
+ return sortedData;
3280
+ };
3281
+ return {
3282
+ rows: sortData(rowModel.rows),
3283
+ flatRows: sortedFlatRows,
3284
+ rowsById: rowModel.rowsById
3285
+ };
3286
+ }, getMemoOptions(table.options, 'debugTable', 'getSortedRowModel', () => table._autoResetPageIndex()));
3287
+ }
3288
+
3202
3289
  /* eslint-disable @typescript-eslint/no-explicit-any */
3203
3290
  /**
3204
3291
  * Debounce function to prevent multiple calls in a short
@@ -3219,13 +3306,14 @@ function debounce(func, wait) {
3219
3306
  };
3220
3307
  }
3221
3308
 
3222
- const nvDatagridCss = "nv-datagrid{display:block}nv-datagrid .hidden{display:none}nv-datagrid table{border-collapse:collapse;border-color:inherit;text-indent:0;width:100%}nv-datagrid th{text-align:left;border-bottom:1px solid var(--components-datagrid-header-border);height:var(--spacing-12);padding:var(--spacing-3) var(--spacing-4);font-size:var(--font-size-md);font-weight:700;color:var(--components-datagrid-header-text)}nv-datagrid td{border-bottom:1px solid var(--components-datagrid-body-border);height:var(--spacing-12);max-height:var(--spacing-14);padding:var(--spacing-2) var(--spacing-4);font-size:var(--font-size-md);font-weight:400;color:var(--components-datagrid-body-text);white-space:nowrap;text-overflow:ellipsis}nv-datagrid tbody>tr:hover{background:var(--color-interaction-container-neutral-background-hover)}";
3309
+ const nvDatagridCss = "nv-datagrid{--nv-datagrid-border-default:var(\n --components-form-field-border-default\n );--nv-datagrid-border-hover:var(--components-form-field-border-hover);--nv-datagrid-border-focus:var(--components-form-field-border-default);--nv-datagrid-background-default:var(\n --components-form-field-background-default\n );--nv-datagrid-background-checked:var(\n --components-form-field-background-checked\n );--nv-datagrid-background-disabled:var(\n --components-form-field-background-disabled\n );--nv-datagrid-color-checked:var(\n --components-form-shape-foreground-default\n );--nv-datagrid-color-disabled:var(\n --components-form-shape-foreground-disabled\n );--nv-datagrid-outline-color:var(--color-focus-brand);display:block}nv-datagrid .hidden{display:none}nv-datagrid table{border-collapse:collapse;border-color:inherit;text-indent:0;width:100%}nv-datagrid th{text-align:left;border-bottom:1px solid var(--components-datagrid-header-border);height:var(--spacing-12);padding:var(--spacing-3) var(--spacing-4);font-size:var(--font-size-md);font-weight:700;color:var(--components-datagrid-header-text)}nv-datagrid td{border-bottom:1px solid var(--components-datagrid-body-border);height:var(--spacing-12);max-height:var(--spacing-14);padding:var(--spacing-2) var(--spacing-4);font-size:var(--font-size-md);font-weight:400;color:var(--components-datagrid-body-text);white-space:nowrap;text-overflow:ellipsis}nv-datagrid tbody>tr:hover{background:var(--color-interaction-container-neutral-background-hover)}nv-datagrid .cursor-pointer{cursor:pointer}nv-datagrid .select-none{-webkit-user-select:none;user-select:none}nv-datagrid .search-container{display:flex}nv-datagrid .checkbox-container{position:relative;color:var(--nv-datagrid-color-checked)}nv-datagrid .checkbox-container input[type=checkbox][readonly]{opacity:0.5}nv-datagrid .checkbox-container:has(input[type=checkbox]:disabled:not([readonly])){color:var(--nv-datagrid-color-disabled)}nv-datagrid .checkbox-container input[type=checkbox]{appearance:none;position:relative;display:flex;width:var(--form-checkbox-size);height:var(--form-checkbox-size);flex-direction:column;align-items:flex-start;border-radius:var(--form-checkbox-radius);border-width:var(--form-checkbox-border-width);border-style:solid;border-color:var(--nv-datagrid-border-default);background:var(--nv-datagrid-background-default)}nv-datagrid .checkbox-container input[type=checkbox]:hover{border-color:var(--nv-datagrid-border-hover)}nv-datagrid .checkbox-container input[type=checkbox]:focus{border-color:var(--nv-datagrid-border-focus)}nv-datagrid .checkbox-container input[type=checkbox]:focus,nv-datagrid .checkbox-container input[type=checkbox]:focus-within{outline:none}nv-datagrid .checkbox-container input[type=checkbox]:focus-visible,nv-datagrid .checkbox-container input[type=checkbox]:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--nv-datagrid-outline-color);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-datagrid .checkbox-container input[type=checkbox]:checked,nv-datagrid .checkbox-container input[type=checkbox]:indeterminate{background:var(--nv-datagrid-background-checked);border-color:var(--nv-datagrid-background-checked)}nv-datagrid .checkbox-container input[type=checkbox]:disabled:not([readonly]){background:var(--nv-datagrid-background-disabled);border-color:var(--nv-datagrid-border-default)}nv-datagrid .checkbox-container input[type=checkbox][readonly]{opacity:0.5}nv-datagrid .checkbox-container .icon{pointer-events:none;position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center}nv-datagrid .checkbox-container .icon svg{width:var(--form-checkbox-icon-size);height:var(--form-checkbox-icon-size);fill:none;stroke:currentcolor;stroke-width:var(--form-checkbox-icon-stroke);flex-shrink:0}";
3223
3310
  const NvDatagridStyle0 = nvDatagridCss;
3224
3311
 
3225
3312
  const NvDatagrid = class {
3226
3313
  constructor(hostRef) {
3227
3314
  registerInstance(this, hostRef);
3228
3315
  this.action = createEvent(this, "action", 7);
3316
+ this.selectedRows = createEvent(this, "selectedRows", 7);
3229
3317
  this.templateCache = new Map();
3230
3318
  this.headerTemplateCache = new Map();
3231
3319
  this.minPageIndex = 1;
@@ -3237,6 +3325,8 @@ const NvDatagrid = class {
3237
3325
  this.globalFilterSearchTerm = '';
3238
3326
  this.columnData = [];
3239
3327
  this.paginationState = null;
3328
+ this.sorting = [];
3329
+ this.rowSelectionState = {};
3240
3330
  //#endregion STATES
3241
3331
  /****************************************************************************/
3242
3332
  //#region PROPERTIES
@@ -3272,6 +3362,12 @@ const NvDatagrid = class {
3272
3362
  * @default 'No data or columns available to display.'
3273
3363
  */
3274
3364
  this.noColumnsNoDataMessage = 'No data or columns available to display.';
3365
+ /**
3366
+ * Whether to automatically generate columns if none are provided.
3367
+ * If columns are explicitly set, this property is ignored.
3368
+ * @default false
3369
+ */
3370
+ this.autoGenerateColumns = false;
3275
3371
  /**
3276
3372
  * Whether to enable global filtering for the data grid.
3277
3373
  * This allows users to search across all columns for a specific value.
@@ -3281,11 +3377,9 @@ const NvDatagrid = class {
3281
3377
  */
3282
3378
  this.enableGlobalFilter = false;
3283
3379
  /**
3284
- * Whether to automatically generate columns if none are provided.
3285
- * If columns are explicitly set, this property is ignored.
3286
- * @default false
3380
+ * Position the global filter input field
3287
3381
  */
3288
- this.autoGenerateColumns = false;
3382
+ this.globalFilterPosition = 'end';
3289
3383
  /**
3290
3384
  * Whether to enable pagination for the data grid.
3291
3385
  * @default false
@@ -3293,6 +3387,7 @@ const NvDatagrid = class {
3293
3387
  this.enablePagination = false;
3294
3388
  /**
3295
3389
  * The number of rows to display per page.
3390
+ * If the number is not present in the property pageSizes it takes the first of the list.
3296
3391
  * @default 10
3297
3392
  */
3298
3393
  this.pageSize = 10;
@@ -3301,6 +3396,15 @@ const NvDatagrid = class {
3301
3396
  * @default [10, 20, 30, 40, 50]
3302
3397
  */
3303
3398
  this.pageSizes = [10, 20, 30, 40, 50];
3399
+ /**
3400
+ * Whether to enable sorting for the data grid.
3401
+ * @default false
3402
+ */
3403
+ this.enableSorting = false;
3404
+ /**
3405
+ * Whether to enable row selection for the data grid.
3406
+ */
3407
+ this.enableRowSelection = false;
3304
3408
  this.debouncedFilter = debounce((value) => {
3305
3409
  var _a;
3306
3410
  (_a = this.table) === null || _a === void 0 ? void 0 : _a.setGlobalFilter(value);
@@ -3333,8 +3437,32 @@ const NvDatagrid = class {
3333
3437
  };
3334
3438
  this.handlePageSizeChange = (event) => {
3335
3439
  const target = event.target;
3440
+ let effectivePageSize = Number(target.value);
3441
+ if (!this.pageSizes.includes(effectivePageSize) && this.pageSizes) {
3442
+ effectivePageSize = this.pageSizes[0];
3443
+ }
3336
3444
  // Simply use `setPageSize` to update the page size directly
3337
- this.paginationState = Object.assign(Object.assign({}, this.paginationState), { pageSize: Number(target.value) }); // This triggers the paginationState watcher
3445
+ this.paginationState = Object.assign(Object.assign({}, this.paginationState), { pageSize: effectivePageSize }); // This triggers the paginationState watcher
3446
+ };
3447
+ this.handleSortingClick = (event, header) => {
3448
+ var _a;
3449
+ if (!header.column.getCanSort()) {
3450
+ return;
3451
+ }
3452
+ (_a = header.column.getToggleSortingHandler()) === null || _a === void 0 ? void 0 : _a(event);
3453
+ };
3454
+ this.getSortTitle = (header) => {
3455
+ if (!header.column.getCanSort())
3456
+ return;
3457
+ const nextOrder = header.column.getNextSortingOrder();
3458
+ switch (nextOrder) {
3459
+ case SortingPossibility.Asc:
3460
+ return 'Sort ascending';
3461
+ case SortingPossibility.Desc:
3462
+ return 'Sort descending';
3463
+ default:
3464
+ return 'Clear sort';
3465
+ }
3338
3466
  };
3339
3467
  }
3340
3468
  //#endregion PROPERTIES
@@ -3525,9 +3653,14 @@ const NvDatagrid = class {
3525
3653
  }
3526
3654
  if (this.enablePagination) {
3527
3655
  tableOptions.getPaginationRowModel = getPaginationRowModel();
3656
+ const pageIndex = (_b = (_a = this.paginationState) === null || _a === void 0 ? void 0 : _a.pageIndex) !== null && _b !== void 0 ? _b : 0;
3657
+ let effectivePageSize = (_d = (_c = this.paginationState) === null || _c === void 0 ? void 0 : _c.pageSize) !== null && _d !== void 0 ? _d : 10;
3658
+ if (!this.pageSizes.includes(effectivePageSize) && this.pageSizes) {
3659
+ effectivePageSize = this.pageSizes[0];
3660
+ }
3528
3661
  const pagination = {
3529
- pageIndex: (_b = (_a = this.paginationState) === null || _a === void 0 ? void 0 : _a.pageIndex) !== null && _b !== void 0 ? _b : 0,
3530
- pageSize: (_d = (_c = this.paginationState) === null || _c === void 0 ? void 0 : _c.pageSize) !== null && _d !== void 0 ? _d : 10,
3662
+ pageIndex: pageIndex,
3663
+ pageSize: effectivePageSize,
3531
3664
  };
3532
3665
  // Set the initial pagination value with safeguards
3533
3666
  tableOptions.state.pagination = pagination;
@@ -3538,6 +3671,33 @@ const NvDatagrid = class {
3538
3671
  this.paginationState = newPagination;
3539
3672
  };
3540
3673
  }
3674
+ if (this.enableSorting) {
3675
+ tableOptions.getSortedRowModel = getSortedRowModel();
3676
+ tableOptions.enableSorting = this.enableSorting;
3677
+ tableOptions.state.sorting = this.sorting;
3678
+ tableOptions.onSortingChange = updater => {
3679
+ const newSorting = typeof updater === 'function' ? updater(this.sorting) : updater;
3680
+ this.sorting = newSorting; // Will automatically trigger the searchTerm watcher and update the table
3681
+ };
3682
+ }
3683
+ if (this.enableRowSelection) {
3684
+ tableOptions.state.rowSelection = this.rowSelectionState;
3685
+ tableOptions.onRowSelectionChange = updater => {
3686
+ const newRowSelectionState = typeof updater === 'function'
3687
+ ? updater(this.rowSelectionState)
3688
+ : updater;
3689
+ this.rowSelectionState = newRowSelectionState;
3690
+ // Emit the original rows instead of IDs
3691
+ const selectedRows = Object.keys(newRowSelectionState)
3692
+ .filter(rowId => newRowSelectionState[rowId])
3693
+ .map(rowId => {
3694
+ // Assuming rowId corresponds to the index in parsedData
3695
+ const index = parseInt(rowId, 10); // Convert rowId to an integer index
3696
+ return this.parsedData[index]; // Get the original row data
3697
+ });
3698
+ this.selectedRows.emit(selectedRows); // Emit the original rows
3699
+ };
3700
+ }
3541
3701
  // Initialize the table
3542
3702
  this.table = createTable(tableOptions);
3543
3703
  }
@@ -3572,14 +3732,67 @@ const NvDatagrid = class {
3572
3732
  };
3573
3733
  return checkValue(row.original);
3574
3734
  }
3735
+ createIconSpan(checked, indeterminate) {
3736
+ const span = document.createElement('span');
3737
+ span.className = 'icon';
3738
+ if (checked && !indeterminate) {
3739
+ const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
3740
+ svg.setAttribute('xmlns', 'http://www.w3.org/2000/svg');
3741
+ svg.setAttribute('width', '14');
3742
+ svg.setAttribute('height', '14');
3743
+ svg.setAttribute('viewBox', '0 0 14 14');
3744
+ svg.setAttribute('fill', 'none');
3745
+ const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');
3746
+ path.setAttribute('d', 'M11.6667 3.5L5.25004 9.91667L2.33337 7');
3747
+ path.setAttribute('stroke-linecap', 'round');
3748
+ path.setAttribute('stroke-linejoin', 'round');
3749
+ svg.appendChild(path);
3750
+ span.appendChild(svg);
3751
+ }
3752
+ if (indeterminate) {
3753
+ const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
3754
+ svg.classList.add('indeterminate-svg');
3755
+ svg.setAttribute('xmlns', 'http://www.w3.org/2000/svg');
3756
+ svg.setAttribute('viewBox', '0 0 14 14');
3757
+ svg.setAttribute('fill', 'none');
3758
+ const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');
3759
+ path.setAttribute('d', 'M2.9165 7H11.0832');
3760
+ path.setAttribute('stroke-linecap', 'round');
3761
+ path.setAttribute('stroke-linejoin', 'round');
3762
+ svg.appendChild(path);
3763
+ span.appendChild(svg);
3764
+ }
3765
+ return span;
3766
+ }
3767
+ createIndeterminateCheckbox(options = {}) {
3768
+ const { indeterminate, checked = false, disabled = false, className = '', onChange, } = options;
3769
+ const input = document.createElement('input');
3770
+ input.type = 'checkbox';
3771
+ input.checked = checked;
3772
+ input.disabled = disabled;
3773
+ input.className = `${className} cursor-pointer`.trim();
3774
+ if (typeof indeterminate === 'boolean') {
3775
+ input.indeterminate = !checked && indeterminate;
3776
+ }
3777
+ if (onChange) {
3778
+ input.addEventListener('change', onChange);
3779
+ }
3780
+ const iconSpan = this.createIconSpan(checked, indeterminate);
3781
+ const container = document.createElement('div');
3782
+ container.className = 'checkbox-container';
3783
+ container.appendChild(input);
3784
+ container.appendChild(iconSpan);
3785
+ return container;
3786
+ }
3575
3787
  // Helper function to generate column definitions
3576
3788
  generateColumns(validColumns, tableOptions) {
3789
+ let generatedColumns = [];
3577
3790
  const columnHelper = createColumnHelper();
3578
3791
  if (validColumns.length > 0) {
3579
3792
  // Use defined columns
3580
- return validColumns.map(column => {
3793
+ generatedColumns = validColumns.map(column => {
3581
3794
  var _a, _b;
3582
- return columnHelper.accessor(column.accessor, {
3795
+ const identifiedColumnDef = {
3583
3796
  header: (_b = (this.renderTemplate(this.headerTemplateCache.get(column.accessor), (_a = column.header) !== null && _a !== void 0 ? _a : column.accessor, null) ||
3584
3797
  column.header)) !== null && _b !== void 0 ? _b : column.accessor,
3585
3798
  cell: (info) => {
@@ -3597,35 +3810,81 @@ const NvDatagrid = class {
3597
3810
  value)) !== null && _b !== void 0 ? _b : value) !== null && _c !== void 0 ? _c : this.fallbackValue;
3598
3811
  },
3599
3812
  enableGlobalFilter: this.enableGlobalFilter,
3600
- });
3813
+ enableSorting: this.enableSorting,
3814
+ };
3815
+ if (this.enableSorting) {
3816
+ identifiedColumnDef.sortUndefined = 'last'; // Force undefined values to the end
3817
+ identifiedColumnDef.sortDescFirst = false; // First sort order will be ascending (nullable values can mess up auto detection of sort order)
3818
+ }
3819
+ return columnHelper.accessor(column.accessor, identifiedColumnDef);
3601
3820
  });
3602
3821
  }
3603
3822
  else if (tableOptions.data && tableOptions.data.length > 0) {
3604
3823
  // Generate columns from data keys
3605
3824
  const sampleRow = tableOptions.data[0];
3606
- return Object.keys(sampleRow).map(key => columnHelper.accessor(key, {
3607
- header: this.renderTemplate(this.headerTemplateCache.get(key), key.charAt(0).toUpperCase() + key.slice(1), null) || key.charAt(0).toUpperCase() + key.slice(1), // Capitalize key for header
3608
- cell: (info) => {
3609
- var _a, _b, _c;
3610
- const value = info.getValue();
3611
- const cellAccessors = key;
3612
- const row = info.row;
3613
- return ((_a = this.columnData.find(x => x.accessor === cellAccessors)) === null || _a === void 0 ? void 0 : _a.repeatTemplate) && Array.isArray(value)
3614
- ? value.map((item) => {
3615
- var _a, _b;
3616
- return (_b = (_a = (this.renderTemplate(this.templateCache.get(cellAccessors), item, row) ||
3617
- item)) !== null && _a !== void 0 ? _a : value) !== null && _b !== void 0 ? _b : this.fallbackValue;
3618
- })
3619
- : (_c = (_b = (this.renderTemplate(this.templateCache.get(cellAccessors), value, row) ||
3620
- value)) !== null && _b !== void 0 ? _b : value) !== null && _c !== void 0 ? _c : this.fallbackValue;
3621
- },
3622
- enableGlobalFilter: this.enableGlobalFilter,
3623
- }));
3825
+ generatedColumns = Object.keys(sampleRow).map(key => {
3826
+ const identifiedColumnDef = {
3827
+ header: this.renderTemplate(this.headerTemplateCache.get(key), key.charAt(0).toUpperCase() + key.slice(1), null) || key.charAt(0).toUpperCase() + key.slice(1), // Capitalize key for header
3828
+ cell: (info) => {
3829
+ var _a, _b, _c;
3830
+ const value = info.getValue();
3831
+ const cellAccessors = key;
3832
+ const row = info.row;
3833
+ return ((_a = this.columnData.find(x => x.accessor === cellAccessors)) === null || _a === void 0 ? void 0 : _a.repeatTemplate) && Array.isArray(value)
3834
+ ? value.map((item) => {
3835
+ var _a, _b;
3836
+ return (_b = (_a = (this.renderTemplate(this.templateCache.get(cellAccessors), item, row) ||
3837
+ item)) !== null && _a !== void 0 ? _a : value) !== null && _b !== void 0 ? _b : this.fallbackValue;
3838
+ })
3839
+ : (_c = (_b = (this.renderTemplate(this.templateCache.get(cellAccessors), value, row) ||
3840
+ value)) !== null && _b !== void 0 ? _b : value) !== null && _c !== void 0 ? _c : this.fallbackValue;
3841
+ },
3842
+ enableGlobalFilter: this.enableGlobalFilter,
3843
+ enableSorting: this.enableSorting,
3844
+ };
3845
+ if (this.enableSorting) {
3846
+ identifiedColumnDef.sortUndefined = 'last'; // Force undefined values to the end
3847
+ identifiedColumnDef.sortDescFirst = false; // First sort order will be ascending (nullable values can mess up auto detection of sort order)
3848
+ }
3849
+ return columnHelper.accessor(key, identifiedColumnDef);
3850
+ });
3624
3851
  }
3625
- else {
3626
- // No columns and no data
3627
- return [];
3852
+ else ;
3853
+ if (this.enableRowSelection) {
3854
+ const rowSelection = columnHelper.accessor('select', {
3855
+ header: ({ table }) => {
3856
+ return (h("div", { class: "flex px-1", ref: el => {
3857
+ const checkbox = this.createIndeterminateCheckbox({
3858
+ checked: table === null || table === void 0 ? void 0 : table.getIsAllRowsSelected(),
3859
+ indeterminate: table === null || table === void 0 ? void 0 : table.getIsSomeRowsSelected(),
3860
+ onChange: table === null || table === void 0 ? void 0 : table.getToggleAllRowsSelectedHandler(),
3861
+ });
3862
+ if (el) {
3863
+ el.innerHTML = ''; // Remove existing content
3864
+ el.appendChild(checkbox); // Append new checkbox
3865
+ }
3866
+ } }));
3867
+ },
3868
+ cell: ({ row }) => {
3869
+ return (h("div", { class: "flex px-1", ref: el => {
3870
+ const checkbox = this.createIndeterminateCheckbox({
3871
+ checked: row === null || row === void 0 ? void 0 : row.getIsSelected(),
3872
+ disabled: !(row === null || row === void 0 ? void 0 : row.getCanSelect()),
3873
+ indeterminate: row === null || row === void 0 ? void 0 : row.getIsSomeSelected(),
3874
+ onChange: row === null || row === void 0 ? void 0 : row.getToggleSelectedHandler(),
3875
+ });
3876
+ if (el) {
3877
+ el.innerHTML = ''; // Remove existing content
3878
+ el.appendChild(checkbox); // Append new checkbox
3879
+ }
3880
+ } }));
3881
+ },
3882
+ enableGlobalFilter: false,
3883
+ enableSorting: false,
3884
+ });
3885
+ generatedColumns = [rowSelection, ...generatedColumns];
3628
3886
  }
3887
+ return generatedColumns;
3629
3888
  }
3630
3889
  getTableData() {
3631
3890
  if (this.parsedData &&
@@ -3873,6 +4132,46 @@ const NvDatagrid = class {
3873
4132
  });
3874
4133
  }
3875
4134
  }
4135
+ getArrowSorting(header) {
4136
+ if (!header.column.getCanSort())
4137
+ return null;
4138
+ const sortState = header.column.getIsSorted();
4139
+ if (sortState === SortingPossibility.Asc) {
4140
+ return (h("div", { class: "inline-flex align-middle" }, h("nv-icon", { name: "arrow-up" })));
4141
+ }
4142
+ if (sortState === SortingPossibility.Desc) {
4143
+ return (h("div", { class: "inline-flex align-middle" }, h("nv-icon", { name: "arrow-down" })));
4144
+ }
4145
+ return null;
4146
+ }
4147
+ getHeaderCell(header) {
4148
+ const isSortable = header.column.getCanSort();
4149
+ const sortTitle = this.getSortTitle(header);
4150
+ const content = header.isPlaceholder
4151
+ ? null
4152
+ : header.column.columnDef.header
4153
+ ? this.flexRender(header.column.columnDef.header, header.getContext())
4154
+ : null; // Ensure content is not null
4155
+ const sortIcon = this.getArrowSorting(header);
4156
+ const handleClick = this.createSortingClickHandler(header);
4157
+ if (this.enableRowSelection) {
4158
+ return (h("th", { key: header.id }, content, " "));
4159
+ }
4160
+ const returnHtml = (h("th", { key: header.id }, h("button", { type: "button", class: isSortable
4161
+ ? 'w-full text-left cursor-pointer select-none bg-transparent border-none p-0 m-0 focus:outline-none'
4162
+ : 'w-full text-left bg-transparent border-none p-0 m-0 cursor-default', onClick: handleClick, title: sortTitle }, h("span", { class: "inline-flex items-center gap-1" }, content, sortIcon))));
4163
+ return returnHtml;
4164
+ }
4165
+ // 👇 Helper method to avoid arrow function in JSX
4166
+ createSortingClickHandler(header) {
4167
+ return (e) => {
4168
+ this.handleSortingClick(e, header);
4169
+ };
4170
+ }
4171
+ getPagination() {
4172
+ var _a;
4173
+ return (this.enablePagination && (h("div", { class: "flex items-center gap-2" }, h("button", { class: "border rounded p-1", disabled: !this.table.getCanPreviousPage(), onClick: this.table.firstPage }, "<<"), h("button", { class: "border rounded p-1", disabled: !this.table.getCanPreviousPage(), onClick: this.table.previousPage }, "<"), h("button", { class: "border rounded p-1", disabled: !this.table.getCanNextPage(), onClick: this.table.nextPage }, ">"), h("button", { class: "border rounded p-1", disabled: !this.table.getCanNextPage(), onClick: this.table.lastPage }, ">>"), h("span", { class: "flex items-center gap-1" }, h("div", null, "Page"), h("strong", null, this.table.getState().pagination.pageIndex + 1, " of", ' ', this.table.getPageCount().toLocaleString())), h("span", { class: "flex items-center gap-1" }, "| Go to page:", ' ', h("input", { type: "number", min: this.minPageIndex, max: this.table.getPageCount(), value: this.table.getState().pagination.pageIndex + 1, class: "border p-1 rounded w-16", "aria-label": "Go to page", onInput: this.handlePageIndexChange })), ((_a = this.pageSizes) === null || _a === void 0 ? void 0 : _a.length) > 0 && (h("select", { "aria-label": "Rows per page", onChange: this.handlePageSizeChange }, this.pageSizes.map(pageSize => (h("option", { value: String(pageSize), selected: this.table.getState().pagination.pageSize === pageSize }, "Show ", pageSize))))))));
4174
+ }
3876
4175
  //#endregion METHODS
3877
4176
  /****************************************************************************/
3878
4177
  //#region WATCHERS
@@ -3930,6 +4229,39 @@ const NvDatagrid = class {
3930
4229
  this.table.options.state.pagination = newValue;
3931
4230
  }
3932
4231
  }
4232
+ handleSorting(newValue) {
4233
+ if (!this.table) {
4234
+ console.warn('Table is not initialized yet.');
4235
+ return;
4236
+ }
4237
+ // Not working
4238
+ /*// Set the sorting for the table
4239
+ this.table.setSorting(newValue);*/
4240
+ // Manually update the sorting state
4241
+ this.table.options.state.sorting = newValue;
4242
+ }
4243
+ handlePageSize(newValue) {
4244
+ let effectivePageSize = newValue;
4245
+ if (!this.pageSizes.includes(effectivePageSize) && this.pageSizes) {
4246
+ effectivePageSize = this.pageSizes[0];
4247
+ }
4248
+ // Simply use `setPageSize` to update the page size directly
4249
+ this.paginationState = Object.assign(Object.assign({}, this.paginationState), { pageSize: effectivePageSize }); // This triggers the paginationState watcher
4250
+ }
4251
+ handleRowSelectionState(newValue, oldValue) {
4252
+ if (!this.table) {
4253
+ console.warn('Table is not initialized yet.');
4254
+ return;
4255
+ }
4256
+ // Only update if there is a meaningful change
4257
+ if (JSON.stringify(newValue) !== JSON.stringify(oldValue)) {
4258
+ // Not working
4259
+ /*// Set the rowSelection for the table
4260
+ this.table.setRowSelection(newValue);*/
4261
+ // Manually update the row selection state
4262
+ this.table.options.state.rowSelection = newValue;
4263
+ }
4264
+ }
3933
4265
  //#endregion WATCHERS
3934
4266
  /****************************************************************************/
3935
4267
  //#region LIFECYCLE
@@ -3939,7 +4271,10 @@ const NvDatagrid = class {
3939
4271
  this.initializeTable();
3940
4272
  if (this.enablePagination) {
3941
4273
  // Ensure a valid page size
3942
- const effectivePageSize = this.pageSize > 0 ? this.pageSize : 10;
4274
+ let effectivePageSize = this.pageSize > 0 ? this.pageSize : 10;
4275
+ if (!this.pageSizes.includes(effectivePageSize) && this.pageSizes) {
4276
+ effectivePageSize = this.pageSizes[0];
4277
+ }
3943
4278
  this.paginationState = {
3944
4279
  pageIndex: Math.max(0, this.minPageIndex - 1),
3945
4280
  pageSize: effectivePageSize,
@@ -3957,11 +4292,9 @@ const NvDatagrid = class {
3957
4292
  const rows = !this.table || this.table === undefined || this.parsedData.length === 0
3958
4293
  ? []
3959
4294
  : (_c = (_b = this.table) === null || _b === void 0 ? void 0 : _b.getRowModel()) === null || _c === void 0 ? void 0 : _c.rows;
3960
- return (h(Host, { key: 'b3886397a5e6694611636d4da7d61ae5ccbe1903' }, h("div", { key: '8fa71d83f4cfa79cf7fb334bcf6115e4cf253c5d', class: "hidden" }, h("slot", { key: '9aad5956b5973cafc486f3a854a66ae86038ef4a' })), h("slot", { key: '7a1ca93223567faffabb3473df2176cd02654247', name: "before" }), this.enableGlobalFilter && this.table && (h("div", { key: '0020880c229d8ed9070c15182191e86b8b3fed1d', class: "search-container" }, h("input", { key: 'cefc47330a7d770c3668d1406930b9ac50992a10', type: "text", value: (_d = this.globalFilterSearchTerm) !== null && _d !== void 0 ? _d : '', onInput: this.handleGlobalFilteringOnInput, placeholder: "Search all columns...", class: "search-input", "aria-label": "Search all columns" }))), this.parsedColumns.length === 0 && this.parsedData.length === 0 ? (h("div", { class: "no-data" }, this.noColumnsNoDataMessage)) : (h("div", null, h("table", null, this.parsedColumns.length > 0 && headerGroups.length > 0 && (h("thead", null, this.parsedColumns.length > 0 && headerGroups
4295
+ return (h(Host, { key: '7ed48645de6272bb3fed7897406e2a798021bba2' }, h("div", { key: '4ae6135c7ca302e06c3d26509dbf813128631a2e', class: "hidden" }, h("slot", { key: '3f8078b877a4e2ebe46842fc3a52d7059cb3cc68' })), h("slot", { key: 'c97cb30a0ce80dc8c25c2b855eb6086937dbe76b', name: "before" }), this.enableGlobalFilter && this.table && (h("div", { key: '68cd75ed6ecad3de049797ebfe7787f5a0b357fa', class: `search-container justify-${this.globalFilterPosition}` }, h("nv-fieldtext", { key: '80b4f8b50c3dda39555597a44707f3a296fbb8e6', value: this.globalFilterSearchTerm, onInput: this.handleGlobalFilteringOnInput, placeholder: "Search all columns..." }))), this.parsedColumns.length === 0 && this.parsedData.length === 0 ? (h("div", { class: "no-data" }, this.noColumnsNoDataMessage)) : (h("div", null, h("table", null, this.parsedColumns.length > 0 && headerGroups.length > 0 && (h("thead", null, this.parsedColumns.length > 0 && headerGroups
3961
4296
  ? headerGroups === null || headerGroups === void 0 ? void 0 : headerGroups.map(headerGroup => (h("tr", { key: headerGroup.id }, headerGroup.headers.map(header => {
3962
- return (h("th", { key: header.id }, header.isPlaceholder
3963
- ? null
3964
- : this.flexRender(header.column.columnDef.header, header.getContext())));
4297
+ return this.getHeaderCell(header);
3965
4298
  }))))
3966
4299
  : null)), h("tbody", null, !rows || rows.length === 0 || this.parsedData.length === 0 ? (h("tr", null, h("td", { colSpan: this.parsedColumns.length || 12, class: "no-data" }, this.noDataMessage))) : (rows.map(row => {
3967
4300
  const rowId = row.id;
@@ -3969,7 +4302,8 @@ const NvDatagrid = class {
3969
4302
  return (h("tr", { key: rowId }, visibleCells.map(cell => {
3970
4303
  return (h("td", { key: cell.id, "data-row-id": rowId }, this.flexRender(cell.column.columnDef.cell, cell.getContext())));
3971
4304
  })));
3972
- })))), this.enablePagination && (h("div", { class: "flex items-center gap-2" }, h("button", { class: "border rounded p-1", disabled: !this.table.getCanPreviousPage(), onClick: this.table.firstPage }, "<<"), h("button", { class: "border rounded p-1", disabled: !this.table.getCanPreviousPage(), onClick: this.table.previousPage }, "<"), h("button", { class: "border rounded p-1", disabled: !this.table.getCanNextPage(), onClick: this.table.nextPage }, ">"), h("button", { class: "border rounded p-1", disabled: !this.table.getCanNextPage(), onClick: this.table.lastPage }, ">>"), h("span", { class: "flex items-center gap-1" }, h("div", null, "Page"), h("strong", null, this.table.getState().pagination.pageIndex + 1, " of", ' ', this.table.getPageCount().toLocaleString())), h("span", { class: "flex items-center gap-1" }, "| Go to page:", ' ', h("input", { type: "number", min: this.minPageIndex, max: this.table.getPageCount(), value: this.table.getState().pagination.pageIndex + 1, class: "border p-1 rounded w-16", "aria-label": "Go to page", onInput: this.handlePageIndexChange })), (_e = this.pageSizes) !== null && _e !== void 0 ? _e : (h("select", { "aria-label": "Rows per page", onChange: this.handlePageSizeChange }, this.pageSizes.map(pageSize => (h("option", { value: String(pageSize), selected: this.table.getState().pagination.pageSize === pageSize }, "Show ", pageSize))))))))), h("slot", { key: '2030fdc2b38a293e749f2ffd4645987e834fee76', name: "after" })));
4305
+ }))), this.table && this.enableRowSelection ? (h("tfoot", null, h("tr", null, h("td", { colSpan: 20 }, this.enableRowSelection && this.table ? (h("div", null, this.rowSelectionState &&
4306
+ Object.keys(this.rowSelectionState).length > 0 ? (h("span", null, Object.keys(this.rowSelectionState).length, " of", ' ', ((_e = (_d = this.table.getPreFilteredRowModel()) === null || _d === void 0 ? void 0 : _d.rows) === null || _e === void 0 ? void 0 : _e.length) || 0, ' ', "Total Rows Selected")) : (h("span", null, "No rows selected")))) : null)))) : null), this.getPagination())), h("slot", { key: 'f7209e67ff423310bb4b59b866f486ade897781a', name: "after" })));
3973
4307
  }
3974
4308
  get el() { return getElement(this); }
3975
4309
  static get watchers() { return {
@@ -3980,7 +4314,10 @@ const NvDatagrid = class {
3980
4314
  "parsedColumns": ["handleParsedChange"],
3981
4315
  "parsedData": ["handleParsedChange"],
3982
4316
  "globalFilterSearchTerm": ["handleGlobalFilterSearchTerm"],
3983
- "paginationState": ["handlePaginationState"]
4317
+ "paginationState": ["handlePaginationState"],
4318
+ "sorting": ["handleSorting"],
4319
+ "pageSize": ["handlePageSize"],
4320
+ "rowSelectionState": ["handleRowSelectionState"]
3984
4321
  }; }
3985
4322
  };
3986
4323
  NvDatagrid.style = NvDatagridStyle0;