@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,8 @@
1
1
  import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-1c45c0f2.js';
2
2
  import { d as deepCopyElement, e as excludedProps } from './p-cb34aa4f.js';
3
+ import { d as SortingPossibility } from './p-1f505531.js';
4
+ import { d as defineCustomElement$3 } from './p-9decffb6.js';
5
+ import { d as defineCustomElement$2 } from './p-76646ce9.js';
3
6
 
4
7
  /**
5
8
  * table-core
@@ -3199,6 +3202,92 @@ function getPaginationRowModel(opts) {
3199
3202
  }, getMemoOptions(table.options, 'debugTable'));
3200
3203
  }
3201
3204
 
3205
+ function getSortedRowModel() {
3206
+ return table => memo(() => [table.getState().sorting, table.getPreSortedRowModel()], (sorting, rowModel) => {
3207
+ if (!rowModel.rows.length || !(sorting != null && sorting.length)) {
3208
+ return rowModel;
3209
+ }
3210
+ const sortingState = table.getState().sorting;
3211
+ const sortedFlatRows = [];
3212
+
3213
+ // Filter out sortings that correspond to non existing columns
3214
+ const availableSorting = sortingState.filter(sort => {
3215
+ var _table$getColumn;
3216
+ return (_table$getColumn = table.getColumn(sort.id)) == null ? void 0 : _table$getColumn.getCanSort();
3217
+ });
3218
+ const columnInfoById = {};
3219
+ availableSorting.forEach(sortEntry => {
3220
+ const column = table.getColumn(sortEntry.id);
3221
+ if (!column) return;
3222
+ columnInfoById[sortEntry.id] = {
3223
+ sortUndefined: column.columnDef.sortUndefined,
3224
+ invertSorting: column.columnDef.invertSorting,
3225
+ sortingFn: column.getSortingFn()
3226
+ };
3227
+ });
3228
+ const sortData = rows => {
3229
+ // This will also perform a stable sorting using the row index
3230
+ // if needed.
3231
+ const sortedData = rows.map(row => ({
3232
+ ...row
3233
+ }));
3234
+ sortedData.sort((rowA, rowB) => {
3235
+ for (let i = 0; i < availableSorting.length; i += 1) {
3236
+ var _sortEntry$desc;
3237
+ const sortEntry = availableSorting[i];
3238
+ const columnInfo = columnInfoById[sortEntry.id];
3239
+ const sortUndefined = columnInfo.sortUndefined;
3240
+ const isDesc = (_sortEntry$desc = sortEntry == null ? void 0 : sortEntry.desc) != null ? _sortEntry$desc : false;
3241
+ let sortInt = 0;
3242
+
3243
+ // All sorting ints should always return in ascending order
3244
+ if (sortUndefined) {
3245
+ const aValue = rowA.getValue(sortEntry.id);
3246
+ const bValue = rowB.getValue(sortEntry.id);
3247
+ const aUndefined = aValue === undefined;
3248
+ const bUndefined = bValue === undefined;
3249
+ if (aUndefined || bUndefined) {
3250
+ if (sortUndefined === 'first') return aUndefined ? -1 : 1;
3251
+ if (sortUndefined === 'last') return aUndefined ? 1 : -1;
3252
+ sortInt = aUndefined && bUndefined ? 0 : aUndefined ? sortUndefined : -sortUndefined;
3253
+ }
3254
+ }
3255
+ if (sortInt === 0) {
3256
+ sortInt = columnInfo.sortingFn(rowA, rowB, sortEntry.id);
3257
+ }
3258
+
3259
+ // If sorting is non-zero, take care of desc and inversion
3260
+ if (sortInt !== 0) {
3261
+ if (isDesc) {
3262
+ sortInt *= -1;
3263
+ }
3264
+ if (columnInfo.invertSorting) {
3265
+ sortInt *= -1;
3266
+ }
3267
+ return sortInt;
3268
+ }
3269
+ }
3270
+ return rowA.index - rowB.index;
3271
+ });
3272
+
3273
+ // If there are sub-rows, sort them
3274
+ sortedData.forEach(row => {
3275
+ var _row$subRows;
3276
+ sortedFlatRows.push(row);
3277
+ if ((_row$subRows = row.subRows) != null && _row$subRows.length) {
3278
+ row.subRows = sortData(row.subRows);
3279
+ }
3280
+ });
3281
+ return sortedData;
3282
+ };
3283
+ return {
3284
+ rows: sortData(rowModel.rows),
3285
+ flatRows: sortedFlatRows,
3286
+ rowsById: rowModel.rowsById
3287
+ };
3288
+ }, getMemoOptions(table.options, 'debugTable', 'getSortedRowModel', () => table._autoResetPageIndex()));
3289
+ }
3290
+
3202
3291
  /* eslint-disable @typescript-eslint/no-explicit-any */
3203
3292
  /**
3204
3293
  * Debounce function to prevent multiple calls in a short
@@ -3219,7 +3308,7 @@ function debounce(func, wait) {
3219
3308
  };
3220
3309
  }
3221
3310
 
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)}";
3311
+ 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
3312
  const NvDatagridStyle0 = nvDatagridCss;
3224
3313
 
3225
3314
  const NvDatagrid$1 = /*@__PURE__*/ proxyCustomElement(class NvDatagrid extends H {
@@ -3227,6 +3316,7 @@ const NvDatagrid$1 = /*@__PURE__*/ proxyCustomElement(class NvDatagrid extends H
3227
3316
  super();
3228
3317
  this.__registerHost();
3229
3318
  this.action = createEvent(this, "action", 7);
3319
+ this.selectedRows = createEvent(this, "selectedRows", 7);
3230
3320
  this.templateCache = new Map();
3231
3321
  this.headerTemplateCache = new Map();
3232
3322
  this.minPageIndex = 1;
@@ -3238,6 +3328,8 @@ const NvDatagrid$1 = /*@__PURE__*/ proxyCustomElement(class NvDatagrid extends H
3238
3328
  this.globalFilterSearchTerm = '';
3239
3329
  this.columnData = [];
3240
3330
  this.paginationState = null;
3331
+ this.sorting = [];
3332
+ this.rowSelectionState = {};
3241
3333
  //#endregion STATES
3242
3334
  /****************************************************************************/
3243
3335
  //#region PROPERTIES
@@ -3273,6 +3365,12 @@ const NvDatagrid$1 = /*@__PURE__*/ proxyCustomElement(class NvDatagrid extends H
3273
3365
  * @default 'No data or columns available to display.'
3274
3366
  */
3275
3367
  this.noColumnsNoDataMessage = 'No data or columns available to display.';
3368
+ /**
3369
+ * Whether to automatically generate columns if none are provided.
3370
+ * If columns are explicitly set, this property is ignored.
3371
+ * @default false
3372
+ */
3373
+ this.autoGenerateColumns = false;
3276
3374
  /**
3277
3375
  * Whether to enable global filtering for the data grid.
3278
3376
  * This allows users to search across all columns for a specific value.
@@ -3282,11 +3380,9 @@ const NvDatagrid$1 = /*@__PURE__*/ proxyCustomElement(class NvDatagrid extends H
3282
3380
  */
3283
3381
  this.enableGlobalFilter = false;
3284
3382
  /**
3285
- * Whether to automatically generate columns if none are provided.
3286
- * If columns are explicitly set, this property is ignored.
3287
- * @default false
3383
+ * Position the global filter input field
3288
3384
  */
3289
- this.autoGenerateColumns = false;
3385
+ this.globalFilterPosition = 'end';
3290
3386
  /**
3291
3387
  * Whether to enable pagination for the data grid.
3292
3388
  * @default false
@@ -3294,6 +3390,7 @@ const NvDatagrid$1 = /*@__PURE__*/ proxyCustomElement(class NvDatagrid extends H
3294
3390
  this.enablePagination = false;
3295
3391
  /**
3296
3392
  * The number of rows to display per page.
3393
+ * If the number is not present in the property pageSizes it takes the first of the list.
3297
3394
  * @default 10
3298
3395
  */
3299
3396
  this.pageSize = 10;
@@ -3302,6 +3399,15 @@ const NvDatagrid$1 = /*@__PURE__*/ proxyCustomElement(class NvDatagrid extends H
3302
3399
  * @default [10, 20, 30, 40, 50]
3303
3400
  */
3304
3401
  this.pageSizes = [10, 20, 30, 40, 50];
3402
+ /**
3403
+ * Whether to enable sorting for the data grid.
3404
+ * @default false
3405
+ */
3406
+ this.enableSorting = false;
3407
+ /**
3408
+ * Whether to enable row selection for the data grid.
3409
+ */
3410
+ this.enableRowSelection = false;
3305
3411
  this.debouncedFilter = debounce((value) => {
3306
3412
  var _a;
3307
3413
  (_a = this.table) === null || _a === void 0 ? void 0 : _a.setGlobalFilter(value);
@@ -3334,8 +3440,32 @@ const NvDatagrid$1 = /*@__PURE__*/ proxyCustomElement(class NvDatagrid extends H
3334
3440
  };
3335
3441
  this.handlePageSizeChange = (event) => {
3336
3442
  const target = event.target;
3443
+ let effectivePageSize = Number(target.value);
3444
+ if (!this.pageSizes.includes(effectivePageSize) && this.pageSizes) {
3445
+ effectivePageSize = this.pageSizes[0];
3446
+ }
3337
3447
  // Simply use `setPageSize` to update the page size directly
3338
- this.paginationState = Object.assign(Object.assign({}, this.paginationState), { pageSize: Number(target.value) }); // This triggers the paginationState watcher
3448
+ this.paginationState = Object.assign(Object.assign({}, this.paginationState), { pageSize: effectivePageSize }); // This triggers the paginationState watcher
3449
+ };
3450
+ this.handleSortingClick = (event, header) => {
3451
+ var _a;
3452
+ if (!header.column.getCanSort()) {
3453
+ return;
3454
+ }
3455
+ (_a = header.column.getToggleSortingHandler()) === null || _a === void 0 ? void 0 : _a(event);
3456
+ };
3457
+ this.getSortTitle = (header) => {
3458
+ if (!header.column.getCanSort())
3459
+ return;
3460
+ const nextOrder = header.column.getNextSortingOrder();
3461
+ switch (nextOrder) {
3462
+ case SortingPossibility.Asc:
3463
+ return 'Sort ascending';
3464
+ case SortingPossibility.Desc:
3465
+ return 'Sort descending';
3466
+ default:
3467
+ return 'Clear sort';
3468
+ }
3339
3469
  };
3340
3470
  }
3341
3471
  //#endregion PROPERTIES
@@ -3526,9 +3656,14 @@ const NvDatagrid$1 = /*@__PURE__*/ proxyCustomElement(class NvDatagrid extends H
3526
3656
  }
3527
3657
  if (this.enablePagination) {
3528
3658
  tableOptions.getPaginationRowModel = getPaginationRowModel();
3659
+ const pageIndex = (_b = (_a = this.paginationState) === null || _a === void 0 ? void 0 : _a.pageIndex) !== null && _b !== void 0 ? _b : 0;
3660
+ let effectivePageSize = (_d = (_c = this.paginationState) === null || _c === void 0 ? void 0 : _c.pageSize) !== null && _d !== void 0 ? _d : 10;
3661
+ if (!this.pageSizes.includes(effectivePageSize) && this.pageSizes) {
3662
+ effectivePageSize = this.pageSizes[0];
3663
+ }
3529
3664
  const pagination = {
3530
- pageIndex: (_b = (_a = this.paginationState) === null || _a === void 0 ? void 0 : _a.pageIndex) !== null && _b !== void 0 ? _b : 0,
3531
- pageSize: (_d = (_c = this.paginationState) === null || _c === void 0 ? void 0 : _c.pageSize) !== null && _d !== void 0 ? _d : 10,
3665
+ pageIndex: pageIndex,
3666
+ pageSize: effectivePageSize,
3532
3667
  };
3533
3668
  // Set the initial pagination value with safeguards
3534
3669
  tableOptions.state.pagination = pagination;
@@ -3539,6 +3674,33 @@ const NvDatagrid$1 = /*@__PURE__*/ proxyCustomElement(class NvDatagrid extends H
3539
3674
  this.paginationState = newPagination;
3540
3675
  };
3541
3676
  }
3677
+ if (this.enableSorting) {
3678
+ tableOptions.getSortedRowModel = getSortedRowModel();
3679
+ tableOptions.enableSorting = this.enableSorting;
3680
+ tableOptions.state.sorting = this.sorting;
3681
+ tableOptions.onSortingChange = updater => {
3682
+ const newSorting = typeof updater === 'function' ? updater(this.sorting) : updater;
3683
+ this.sorting = newSorting; // Will automatically trigger the searchTerm watcher and update the table
3684
+ };
3685
+ }
3686
+ if (this.enableRowSelection) {
3687
+ tableOptions.state.rowSelection = this.rowSelectionState;
3688
+ tableOptions.onRowSelectionChange = updater => {
3689
+ const newRowSelectionState = typeof updater === 'function'
3690
+ ? updater(this.rowSelectionState)
3691
+ : updater;
3692
+ this.rowSelectionState = newRowSelectionState;
3693
+ // Emit the original rows instead of IDs
3694
+ const selectedRows = Object.keys(newRowSelectionState)
3695
+ .filter(rowId => newRowSelectionState[rowId])
3696
+ .map(rowId => {
3697
+ // Assuming rowId corresponds to the index in parsedData
3698
+ const index = parseInt(rowId, 10); // Convert rowId to an integer index
3699
+ return this.parsedData[index]; // Get the original row data
3700
+ });
3701
+ this.selectedRows.emit(selectedRows); // Emit the original rows
3702
+ };
3703
+ }
3542
3704
  // Initialize the table
3543
3705
  this.table = createTable(tableOptions);
3544
3706
  }
@@ -3573,14 +3735,67 @@ const NvDatagrid$1 = /*@__PURE__*/ proxyCustomElement(class NvDatagrid extends H
3573
3735
  };
3574
3736
  return checkValue(row.original);
3575
3737
  }
3738
+ createIconSpan(checked, indeterminate) {
3739
+ const span = document.createElement('span');
3740
+ span.className = 'icon';
3741
+ if (checked && !indeterminate) {
3742
+ const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
3743
+ svg.setAttribute('xmlns', 'http://www.w3.org/2000/svg');
3744
+ svg.setAttribute('width', '14');
3745
+ svg.setAttribute('height', '14');
3746
+ svg.setAttribute('viewBox', '0 0 14 14');
3747
+ svg.setAttribute('fill', 'none');
3748
+ const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');
3749
+ path.setAttribute('d', 'M11.6667 3.5L5.25004 9.91667L2.33337 7');
3750
+ path.setAttribute('stroke-linecap', 'round');
3751
+ path.setAttribute('stroke-linejoin', 'round');
3752
+ svg.appendChild(path);
3753
+ span.appendChild(svg);
3754
+ }
3755
+ if (indeterminate) {
3756
+ const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
3757
+ svg.classList.add('indeterminate-svg');
3758
+ svg.setAttribute('xmlns', 'http://www.w3.org/2000/svg');
3759
+ svg.setAttribute('viewBox', '0 0 14 14');
3760
+ svg.setAttribute('fill', 'none');
3761
+ const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');
3762
+ path.setAttribute('d', 'M2.9165 7H11.0832');
3763
+ path.setAttribute('stroke-linecap', 'round');
3764
+ path.setAttribute('stroke-linejoin', 'round');
3765
+ svg.appendChild(path);
3766
+ span.appendChild(svg);
3767
+ }
3768
+ return span;
3769
+ }
3770
+ createIndeterminateCheckbox(options = {}) {
3771
+ const { indeterminate, checked = false, disabled = false, className = '', onChange, } = options;
3772
+ const input = document.createElement('input');
3773
+ input.type = 'checkbox';
3774
+ input.checked = checked;
3775
+ input.disabled = disabled;
3776
+ input.className = `${className} cursor-pointer`.trim();
3777
+ if (typeof indeterminate === 'boolean') {
3778
+ input.indeterminate = !checked && indeterminate;
3779
+ }
3780
+ if (onChange) {
3781
+ input.addEventListener('change', onChange);
3782
+ }
3783
+ const iconSpan = this.createIconSpan(checked, indeterminate);
3784
+ const container = document.createElement('div');
3785
+ container.className = 'checkbox-container';
3786
+ container.appendChild(input);
3787
+ container.appendChild(iconSpan);
3788
+ return container;
3789
+ }
3576
3790
  // Helper function to generate column definitions
3577
3791
  generateColumns(validColumns, tableOptions) {
3792
+ let generatedColumns = [];
3578
3793
  const columnHelper = createColumnHelper();
3579
3794
  if (validColumns.length > 0) {
3580
3795
  // Use defined columns
3581
- return validColumns.map(column => {
3796
+ generatedColumns = validColumns.map(column => {
3582
3797
  var _a, _b;
3583
- return columnHelper.accessor(column.accessor, {
3798
+ const identifiedColumnDef = {
3584
3799
  header: (_b = (this.renderTemplate(this.headerTemplateCache.get(column.accessor), (_a = column.header) !== null && _a !== void 0 ? _a : column.accessor, null) ||
3585
3800
  column.header)) !== null && _b !== void 0 ? _b : column.accessor,
3586
3801
  cell: (info) => {
@@ -3598,35 +3813,81 @@ const NvDatagrid$1 = /*@__PURE__*/ proxyCustomElement(class NvDatagrid extends H
3598
3813
  value)) !== null && _b !== void 0 ? _b : value) !== null && _c !== void 0 ? _c : this.fallbackValue;
3599
3814
  },
3600
3815
  enableGlobalFilter: this.enableGlobalFilter,
3601
- });
3816
+ enableSorting: this.enableSorting,
3817
+ };
3818
+ if (this.enableSorting) {
3819
+ identifiedColumnDef.sortUndefined = 'last'; // Force undefined values to the end
3820
+ identifiedColumnDef.sortDescFirst = false; // First sort order will be ascending (nullable values can mess up auto detection of sort order)
3821
+ }
3822
+ return columnHelper.accessor(column.accessor, identifiedColumnDef);
3602
3823
  });
3603
3824
  }
3604
3825
  else if (tableOptions.data && tableOptions.data.length > 0) {
3605
3826
  // Generate columns from data keys
3606
3827
  const sampleRow = tableOptions.data[0];
3607
- return Object.keys(sampleRow).map(key => columnHelper.accessor(key, {
3608
- 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
3609
- cell: (info) => {
3610
- var _a, _b, _c;
3611
- const value = info.getValue();
3612
- const cellAccessors = key;
3613
- const row = info.row;
3614
- return ((_a = this.columnData.find(x => x.accessor === cellAccessors)) === null || _a === void 0 ? void 0 : _a.repeatTemplate) && Array.isArray(value)
3615
- ? value.map((item) => {
3616
- var _a, _b;
3617
- return (_b = (_a = (this.renderTemplate(this.templateCache.get(cellAccessors), item, row) ||
3618
- item)) !== null && _a !== void 0 ? _a : value) !== null && _b !== void 0 ? _b : this.fallbackValue;
3619
- })
3620
- : (_c = (_b = (this.renderTemplate(this.templateCache.get(cellAccessors), value, row) ||
3621
- value)) !== null && _b !== void 0 ? _b : value) !== null && _c !== void 0 ? _c : this.fallbackValue;
3622
- },
3623
- enableGlobalFilter: this.enableGlobalFilter,
3624
- }));
3828
+ generatedColumns = Object.keys(sampleRow).map(key => {
3829
+ const identifiedColumnDef = {
3830
+ 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
3831
+ cell: (info) => {
3832
+ var _a, _b, _c;
3833
+ const value = info.getValue();
3834
+ const cellAccessors = key;
3835
+ const row = info.row;
3836
+ return ((_a = this.columnData.find(x => x.accessor === cellAccessors)) === null || _a === void 0 ? void 0 : _a.repeatTemplate) && Array.isArray(value)
3837
+ ? value.map((item) => {
3838
+ var _a, _b;
3839
+ return (_b = (_a = (this.renderTemplate(this.templateCache.get(cellAccessors), item, row) ||
3840
+ item)) !== null && _a !== void 0 ? _a : value) !== null && _b !== void 0 ? _b : this.fallbackValue;
3841
+ })
3842
+ : (_c = (_b = (this.renderTemplate(this.templateCache.get(cellAccessors), value, row) ||
3843
+ value)) !== null && _b !== void 0 ? _b : value) !== null && _c !== void 0 ? _c : this.fallbackValue;
3844
+ },
3845
+ enableGlobalFilter: this.enableGlobalFilter,
3846
+ enableSorting: this.enableSorting,
3847
+ };
3848
+ if (this.enableSorting) {
3849
+ identifiedColumnDef.sortUndefined = 'last'; // Force undefined values to the end
3850
+ identifiedColumnDef.sortDescFirst = false; // First sort order will be ascending (nullable values can mess up auto detection of sort order)
3851
+ }
3852
+ return columnHelper.accessor(key, identifiedColumnDef);
3853
+ });
3625
3854
  }
3626
- else {
3627
- // No columns and no data
3628
- return [];
3855
+ else ;
3856
+ if (this.enableRowSelection) {
3857
+ const rowSelection = columnHelper.accessor('select', {
3858
+ header: ({ table }) => {
3859
+ return (h("div", { class: "flex px-1", ref: el => {
3860
+ const checkbox = this.createIndeterminateCheckbox({
3861
+ checked: table === null || table === void 0 ? void 0 : table.getIsAllRowsSelected(),
3862
+ indeterminate: table === null || table === void 0 ? void 0 : table.getIsSomeRowsSelected(),
3863
+ onChange: table === null || table === void 0 ? void 0 : table.getToggleAllRowsSelectedHandler(),
3864
+ });
3865
+ if (el) {
3866
+ el.innerHTML = ''; // Remove existing content
3867
+ el.appendChild(checkbox); // Append new checkbox
3868
+ }
3869
+ } }));
3870
+ },
3871
+ cell: ({ row }) => {
3872
+ return (h("div", { class: "flex px-1", ref: el => {
3873
+ const checkbox = this.createIndeterminateCheckbox({
3874
+ checked: row === null || row === void 0 ? void 0 : row.getIsSelected(),
3875
+ disabled: !(row === null || row === void 0 ? void 0 : row.getCanSelect()),
3876
+ indeterminate: row === null || row === void 0 ? void 0 : row.getIsSomeSelected(),
3877
+ onChange: row === null || row === void 0 ? void 0 : row.getToggleSelectedHandler(),
3878
+ });
3879
+ if (el) {
3880
+ el.innerHTML = ''; // Remove existing content
3881
+ el.appendChild(checkbox); // Append new checkbox
3882
+ }
3883
+ } }));
3884
+ },
3885
+ enableGlobalFilter: false,
3886
+ enableSorting: false,
3887
+ });
3888
+ generatedColumns = [rowSelection, ...generatedColumns];
3629
3889
  }
3890
+ return generatedColumns;
3630
3891
  }
3631
3892
  getTableData() {
3632
3893
  if (this.parsedData &&
@@ -3874,6 +4135,46 @@ const NvDatagrid$1 = /*@__PURE__*/ proxyCustomElement(class NvDatagrid extends H
3874
4135
  });
3875
4136
  }
3876
4137
  }
4138
+ getArrowSorting(header) {
4139
+ if (!header.column.getCanSort())
4140
+ return null;
4141
+ const sortState = header.column.getIsSorted();
4142
+ if (sortState === SortingPossibility.Asc) {
4143
+ return (h("div", { class: "inline-flex align-middle" }, h("nv-icon", { name: "arrow-up" })));
4144
+ }
4145
+ if (sortState === SortingPossibility.Desc) {
4146
+ return (h("div", { class: "inline-flex align-middle" }, h("nv-icon", { name: "arrow-down" })));
4147
+ }
4148
+ return null;
4149
+ }
4150
+ getHeaderCell(header) {
4151
+ const isSortable = header.column.getCanSort();
4152
+ const sortTitle = this.getSortTitle(header);
4153
+ const content = header.isPlaceholder
4154
+ ? null
4155
+ : header.column.columnDef.header
4156
+ ? this.flexRender(header.column.columnDef.header, header.getContext())
4157
+ : null; // Ensure content is not null
4158
+ const sortIcon = this.getArrowSorting(header);
4159
+ const handleClick = this.createSortingClickHandler(header);
4160
+ if (this.enableRowSelection) {
4161
+ return (h("th", { key: header.id }, content, " "));
4162
+ }
4163
+ const returnHtml = (h("th", { key: header.id }, h("button", { type: "button", class: isSortable
4164
+ ? 'w-full text-left cursor-pointer select-none bg-transparent border-none p-0 m-0 focus:outline-none'
4165
+ : '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))));
4166
+ return returnHtml;
4167
+ }
4168
+ // 👇 Helper method to avoid arrow function in JSX
4169
+ createSortingClickHandler(header) {
4170
+ return (e) => {
4171
+ this.handleSortingClick(e, header);
4172
+ };
4173
+ }
4174
+ getPagination() {
4175
+ var _a;
4176
+ 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))))))));
4177
+ }
3877
4178
  //#endregion METHODS
3878
4179
  /****************************************************************************/
3879
4180
  //#region WATCHERS
@@ -3931,6 +4232,39 @@ const NvDatagrid$1 = /*@__PURE__*/ proxyCustomElement(class NvDatagrid extends H
3931
4232
  this.table.options.state.pagination = newValue;
3932
4233
  }
3933
4234
  }
4235
+ handleSorting(newValue) {
4236
+ if (!this.table) {
4237
+ console.warn('Table is not initialized yet.');
4238
+ return;
4239
+ }
4240
+ // Not working
4241
+ /*// Set the sorting for the table
4242
+ this.table.setSorting(newValue);*/
4243
+ // Manually update the sorting state
4244
+ this.table.options.state.sorting = newValue;
4245
+ }
4246
+ handlePageSize(newValue) {
4247
+ let effectivePageSize = newValue;
4248
+ if (!this.pageSizes.includes(effectivePageSize) && this.pageSizes) {
4249
+ effectivePageSize = this.pageSizes[0];
4250
+ }
4251
+ // Simply use `setPageSize` to update the page size directly
4252
+ this.paginationState = Object.assign(Object.assign({}, this.paginationState), { pageSize: effectivePageSize }); // This triggers the paginationState watcher
4253
+ }
4254
+ handleRowSelectionState(newValue, oldValue) {
4255
+ if (!this.table) {
4256
+ console.warn('Table is not initialized yet.');
4257
+ return;
4258
+ }
4259
+ // Only update if there is a meaningful change
4260
+ if (JSON.stringify(newValue) !== JSON.stringify(oldValue)) {
4261
+ // Not working
4262
+ /*// Set the rowSelection for the table
4263
+ this.table.setRowSelection(newValue);*/
4264
+ // Manually update the row selection state
4265
+ this.table.options.state.rowSelection = newValue;
4266
+ }
4267
+ }
3934
4268
  //#endregion WATCHERS
3935
4269
  /****************************************************************************/
3936
4270
  //#region LIFECYCLE
@@ -3940,7 +4274,10 @@ const NvDatagrid$1 = /*@__PURE__*/ proxyCustomElement(class NvDatagrid extends H
3940
4274
  this.initializeTable();
3941
4275
  if (this.enablePagination) {
3942
4276
  // Ensure a valid page size
3943
- const effectivePageSize = this.pageSize > 0 ? this.pageSize : 10;
4277
+ let effectivePageSize = this.pageSize > 0 ? this.pageSize : 10;
4278
+ if (!this.pageSizes.includes(effectivePageSize) && this.pageSizes) {
4279
+ effectivePageSize = this.pageSizes[0];
4280
+ }
3944
4281
  this.paginationState = {
3945
4282
  pageIndex: Math.max(0, this.minPageIndex - 1),
3946
4283
  pageSize: effectivePageSize,
@@ -3958,11 +4295,9 @@ const NvDatagrid$1 = /*@__PURE__*/ proxyCustomElement(class NvDatagrid extends H
3958
4295
  const rows = !this.table || this.table === undefined || this.parsedData.length === 0
3959
4296
  ? []
3960
4297
  : (_c = (_b = this.table) === null || _b === void 0 ? void 0 : _b.getRowModel()) === null || _c === void 0 ? void 0 : _c.rows;
3961
- 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
4298
+ 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
3962
4299
  ? headerGroups === null || headerGroups === void 0 ? void 0 : headerGroups.map(headerGroup => (h("tr", { key: headerGroup.id }, headerGroup.headers.map(header => {
3963
- return (h("th", { key: header.id }, header.isPlaceholder
3964
- ? null
3965
- : this.flexRender(header.column.columnDef.header, header.getContext())));
4300
+ return this.getHeaderCell(header);
3966
4301
  }))))
3967
4302
  : 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 => {
3968
4303
  const rowId = row.id;
@@ -3970,7 +4305,8 @@ const NvDatagrid$1 = /*@__PURE__*/ proxyCustomElement(class NvDatagrid extends H
3970
4305
  return (h("tr", { key: rowId }, visibleCells.map(cell => {
3971
4306
  return (h("td", { key: cell.id, "data-row-id": rowId }, this.flexRender(cell.column.columnDef.cell, cell.getContext())));
3972
4307
  })));
3973
- })))), 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" })));
4308
+ }))), this.table && this.enableRowSelection ? (h("tfoot", null, h("tr", null, h("td", { colSpan: 20 }, this.enableRowSelection && this.table ? (h("div", null, this.rowSelectionState &&
4309
+ 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" })));
3974
4310
  }
3975
4311
  get el() { return this; }
3976
4312
  static get watchers() { return {
@@ -3981,7 +4317,10 @@ const NvDatagrid$1 = /*@__PURE__*/ proxyCustomElement(class NvDatagrid extends H
3981
4317
  "parsedColumns": ["handleParsedChange"],
3982
4318
  "parsedData": ["handleParsedChange"],
3983
4319
  "globalFilterSearchTerm": ["handleGlobalFilterSearchTerm"],
3984
- "paginationState": ["handlePaginationState"]
4320
+ "paginationState": ["handlePaginationState"],
4321
+ "sorting": ["handleSorting"],
4322
+ "pageSize": ["handlePageSize"],
4323
+ "rowSelectionState": ["handleRowSelectionState"]
3985
4324
  }; }
3986
4325
  static get style() { return NvDatagridStyle0; }
3987
4326
  }, [4, "nv-datagrid", {
@@ -3992,17 +4331,22 @@ const NvDatagrid$1 = /*@__PURE__*/ proxyCustomElement(class NvDatagrid extends H
3992
4331
  "fallbackValue": [513, "fallback-value"],
3993
4332
  "noDataMessage": [513, "no-data-message"],
3994
4333
  "noColumnsNoDataMessage": [513, "no-columns-no-data-message"],
3995
- "enableGlobalFilter": [516, "enable-global-filter"],
3996
4334
  "autoGenerateColumns": [516, "auto-generate-columns"],
4335
+ "enableGlobalFilter": [516, "enable-global-filter"],
4336
+ "globalFilterPosition": [513, "global-filter-position"],
3997
4337
  "enablePagination": [516, "enable-pagination"],
3998
4338
  "pageSize": [514, "page-size"],
3999
4339
  "pageSizes": [16],
4340
+ "enableSorting": [516, "enable-sorting"],
4341
+ "enableRowSelection": [516, "enable-row-selection"],
4000
4342
  "table": [32],
4001
4343
  "parsedColumns": [32],
4002
4344
  "parsedData": [32],
4003
4345
  "globalFilterSearchTerm": [32],
4004
4346
  "columnData": [32],
4005
- "paginationState": [32]
4347
+ "paginationState": [32],
4348
+ "sorting": [32],
4349
+ "rowSelectionState": [32]
4006
4350
  }, undefined, {
4007
4351
  "columns": ["parseColumns"],
4008
4352
  "columnsJson": ["parseJsonColumns"],
@@ -4011,19 +4355,32 @@ const NvDatagrid$1 = /*@__PURE__*/ proxyCustomElement(class NvDatagrid extends H
4011
4355
  "parsedColumns": ["handleParsedChange"],
4012
4356
  "parsedData": ["handleParsedChange"],
4013
4357
  "globalFilterSearchTerm": ["handleGlobalFilterSearchTerm"],
4014
- "paginationState": ["handlePaginationState"]
4358
+ "paginationState": ["handlePaginationState"],
4359
+ "sorting": ["handleSorting"],
4360
+ "pageSize": ["handlePageSize"],
4361
+ "rowSelectionState": ["handleRowSelectionState"]
4015
4362
  }]);
4016
4363
  function defineCustomElement$1() {
4017
4364
  if (typeof customElements === "undefined") {
4018
4365
  return;
4019
4366
  }
4020
- const components = ["nv-datagrid"];
4367
+ const components = ["nv-datagrid", "nv-fieldtext", "nv-icon"];
4021
4368
  components.forEach(tagName => { switch (tagName) {
4022
4369
  case "nv-datagrid":
4023
4370
  if (!customElements.get(tagName)) {
4024
4371
  customElements.define(tagName, NvDatagrid$1);
4025
4372
  }
4026
4373
  break;
4374
+ case "nv-fieldtext":
4375
+ if (!customElements.get(tagName)) {
4376
+ defineCustomElement$3();
4377
+ }
4378
+ break;
4379
+ case "nv-icon":
4380
+ if (!customElements.get(tagName)) {
4381
+ defineCustomElement$2();
4382
+ }
4383
+ break;
4027
4384
  } });
4028
4385
  }
4029
4386
  defineCustomElement$1();