@nova-design-system/nova-webcomponents 3.0.0-beta.39 → 3.0.0-beta.41

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 (510) hide show
  1. package/dist/cjs/{constants-2ae3d9eb.js → constants-79d2cdfc.js} +4 -4
  2. package/dist/cjs/constants-79d2cdfc.js.map +1 -0
  3. package/dist/cjs/dom.utils-4d43f69a.js +170 -0
  4. package/dist/cjs/dom.utils-4d43f69a.js.map +1 -0
  5. package/dist/cjs/index-5910ba06.js +0 -32
  6. package/dist/cjs/index.cjs.js +1 -1
  7. package/dist/cjs/loader.cjs.js +1 -1
  8. package/dist/cjs/native.cjs.js +1 -1
  9. package/dist/cjs/nv-alert.cjs.entry.js +32 -9
  10. package/dist/cjs/nv-alert.cjs.entry.js.map +1 -1
  11. package/dist/cjs/nv-avatar.cjs.entry.js +2 -2
  12. package/dist/cjs/nv-badge_2.cjs.entry.js +3 -3
  13. package/dist/cjs/nv-base.cjs.entry.js +1 -1
  14. package/dist/cjs/nv-breadcrumb.cjs.entry.js +1 -1
  15. package/dist/cjs/nv-breadcrumbs.cjs.entry.js +1 -1
  16. package/dist/cjs/nv-button.cjs.entry.js +34 -12
  17. package/dist/cjs/nv-button.cjs.entry.js.map +1 -1
  18. package/dist/cjs/nv-calendar.cjs.entry.js +2 -2
  19. package/dist/cjs/nv-col.cjs.entry.js +1 -1
  20. package/dist/cjs/nv-datagrid.cjs.entry.js +325 -165
  21. package/dist/cjs/nv-datagrid.cjs.entry.js.map +1 -1
  22. package/dist/cjs/nv-datagridcolumn.cjs.entry.js +1 -5
  23. package/dist/cjs/nv-datagridcolumn.cjs.entry.js.map +1 -1
  24. package/dist/cjs/nv-dialog.cjs.entry.js +20 -9
  25. package/dist/cjs/nv-dialog.cjs.entry.js.map +1 -1
  26. package/dist/cjs/nv-dialogfooter_2.cjs.entry.js +17 -12
  27. package/dist/cjs/nv-dialogfooter_2.cjs.entry.js.map +1 -1
  28. package/dist/cjs/nv-fieldcheckbox.cjs.entry.js +4 -4
  29. package/dist/cjs/nv-fielddropdown.cjs.entry.js +3 -3
  30. package/dist/cjs/nv-fielddropdownitem.cjs.entry.js +1 -1
  31. package/dist/cjs/nv-fieldnumber.cjs.entry.js +3 -3
  32. package/dist/cjs/nv-fieldpassword.cjs.entry.js +3 -3
  33. package/dist/cjs/nv-fieldradio.cjs.entry.js +3 -3
  34. package/dist/cjs/nv-fieldselect.cjs.entry.js +5 -5
  35. package/dist/cjs/nv-fieldtext.cjs.entry.js +3 -3
  36. package/dist/cjs/nv-fieldtextarea.cjs.entry.js +3 -3
  37. package/dist/cjs/nv-fieldtime.cjs.entry.js +10 -10
  38. package/dist/cjs/nv-icon.cjs.entry.js +3 -3
  39. package/dist/cjs/nv-icon.cjs.entry.js.map +1 -1
  40. package/dist/cjs/nv-iconbutton.cjs.entry.js +1 -1
  41. package/dist/cjs/nv-loader.cjs.entry.js +1 -1
  42. package/dist/cjs/nv-menu.cjs.entry.js +2 -2
  43. package/dist/cjs/nv-menu.cjs.entry.js.map +1 -1
  44. package/dist/cjs/nv-menuitem.cjs.entry.js +1 -1
  45. package/dist/cjs/nv-popover.cjs.entry.js +1 -1
  46. package/dist/cjs/nv-row.cjs.entry.js +1 -1
  47. package/dist/cjs/nv-stack.cjs.entry.js +1 -1
  48. package/dist/cjs/nv-table.cjs.entry.js +267 -81
  49. package/dist/cjs/nv-table.cjs.entry.js.map +1 -1
  50. package/dist/cjs/nv-tablecolumn.cjs.entry.js +1 -21
  51. package/dist/cjs/nv-tablecolumn.cjs.entry.js.map +1 -1
  52. package/dist/cjs/nv-toggle.cjs.entry.js +2 -2
  53. package/dist/cjs/nv-tooltip.cjs.entry.js +1 -1
  54. package/dist/collection/collection-manifest.json +1 -9
  55. package/dist/collection/components/nv-alert/nv-alert.docs.js +5 -0
  56. package/dist/collection/components/nv-alert/nv-alert.docs.js.map +1 -1
  57. package/dist/collection/components/nv-alert/nv-alert.js +51 -8
  58. package/dist/collection/components/nv-alert/nv-alert.js.map +1 -1
  59. package/dist/collection/components/nv-avatar/nv-avatar.js +1 -1
  60. package/dist/collection/components/nv-badge/nv-badge.js +2 -2
  61. package/dist/collection/components/nv-base/nv-base.js +1 -1
  62. package/dist/collection/components/nv-breadcrumb/nv-breadcrumb.js +1 -1
  63. package/dist/collection/components/nv-breadcrumbs/nv-breadcrumbs.js +1 -1
  64. package/dist/collection/components/nv-button/nv-button.docs.js +4 -0
  65. package/dist/collection/components/nv-button/nv-button.docs.js.map +1 -1
  66. package/dist/collection/components/nv-button/nv-button.js +54 -13
  67. package/dist/collection/components/nv-button/nv-button.js.map +1 -1
  68. package/dist/collection/components/nv-calendar/nv-calendar.js +1 -1
  69. package/dist/collection/components/nv-col/nv-col.js +1 -1
  70. package/dist/collection/components/nv-datagrid/nv-datagrid.css +30 -0
  71. package/dist/collection/components/nv-datagrid/nv-datagrid.docs.js +25 -77
  72. package/dist/collection/components/nv-datagrid/nv-datagrid.docs.js.map +1 -1
  73. package/dist/collection/components/nv-datagrid/nv-datagrid.js +396 -194
  74. package/dist/collection/components/nv-datagrid/nv-datagrid.js.map +1 -1
  75. package/dist/collection/components/nv-datagridcolumn/nv-datagridcolumn.js +7 -16
  76. package/dist/collection/components/nv-datagridcolumn/nv-datagridcolumn.js.map +1 -1
  77. package/dist/collection/components/nv-dialog/nv-dialog.docs.js +6 -9
  78. package/dist/collection/components/nv-dialog/nv-dialog.docs.js.map +1 -1
  79. package/dist/collection/components/nv-dialog/nv-dialog.js +20 -29
  80. package/dist/collection/components/nv-dialog/nv-dialog.js.map +1 -1
  81. package/dist/collection/components/nv-dialogfooter/nv-dialogfooter.js +71 -21
  82. package/dist/collection/components/nv-dialogfooter/nv-dialogfooter.js.map +1 -1
  83. package/dist/collection/components/nv-dialogheader/nv-dialogheader.js +1 -1
  84. package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.js +4 -4
  85. package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js +4 -4
  86. package/dist/collection/components/nv-fielddropdownitem/nv-fielddropdownitem.js +1 -1
  87. package/dist/collection/components/nv-fielddropdownitemcheck/nv-fielddropdownitemcheck.js +1 -1
  88. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js +3 -3
  89. package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.js +3 -3
  90. package/dist/collection/components/nv-fieldradio/nv-fieldradio.js +3 -3
  91. package/dist/collection/components/nv-fieldselect/nv-fieldselect.js +5 -5
  92. package/dist/collection/components/nv-fieldtext/nv-fieldtext.js +3 -3
  93. package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.js +3 -3
  94. package/dist/collection/components/nv-fieldtime/nv-fieldtime.js +9 -9
  95. package/dist/collection/components/nv-icon/nv-icon.js +3 -3
  96. package/dist/collection/components/nv-icon/nv-icon.js.map +1 -1
  97. package/dist/collection/components/nv-iconbutton/nv-iconbutton.js +1 -1
  98. package/dist/collection/components/nv-loader/nv-loader.js +1 -1
  99. package/dist/collection/components/nv-menu/nv-menu.docs.js +1 -1
  100. package/dist/collection/components/nv-menu/nv-menu.docs.js.map +1 -1
  101. package/dist/collection/components/nv-menu/nv-menu.js +3 -3
  102. package/dist/collection/components/nv-menu/nv-menu.js.map +1 -1
  103. package/dist/collection/components/nv-menuitem/nv-menuitem.js +3 -3
  104. package/dist/collection/components/nv-popover/nv-popover.js +1 -1
  105. package/dist/collection/components/nv-row/nv-row.js +1 -1
  106. package/dist/collection/components/nv-stack/nv-stack.js +1 -1
  107. package/dist/collection/components/nv-table/nv-table.css +30 -0
  108. package/dist/collection/components/nv-table/nv-table.docs.js +69 -74
  109. package/dist/collection/components/nv-table/nv-table.docs.js.map +1 -1
  110. package/dist/collection/components/nv-table/nv-table.js +349 -137
  111. package/dist/collection/components/nv-table/nv-table.js.map +1 -1
  112. package/dist/collection/components/nv-tablecolumn/nv-tablecolumn.js +11 -111
  113. package/dist/collection/components/nv-tablecolumn/nv-tablecolumn.js.map +1 -1
  114. package/dist/collection/components/nv-toggle/nv-toggle.js +2 -2
  115. package/dist/collection/components/nv-tooltip/nv-tooltip.js +1 -1
  116. package/dist/collection/interfaces/ColumnConfig.js +2 -0
  117. package/dist/collection/interfaces/ColumnConfig.js.map +1 -0
  118. package/dist/collection/interfaces/actionEvent.js +2 -0
  119. package/dist/collection/interfaces/actionEvent.js.map +1 -0
  120. package/dist/collection/utils/dom.utils.js +164 -0
  121. package/dist/collection/utils/dom.utils.js.map +1 -0
  122. package/dist/collection/utils/test/class.utils.test.js +25 -0
  123. package/dist/collection/utils/test/class.utils.test.js.map +1 -0
  124. package/dist/collection/utils/test/dom.utils.test.js +102 -0
  125. package/dist/collection/utils/test/dom.utils.test.js.map +1 -0
  126. package/dist/components/index.js +1 -1
  127. package/dist/components/nv-alert.js +35 -11
  128. package/dist/components/nv-alert.js.map +1 -1
  129. package/dist/components/nv-avatar.js +3 -3
  130. package/dist/components/nv-badge.js +1 -1
  131. package/dist/components/nv-base.js +1 -1
  132. package/dist/components/nv-breadcrumb.js +3 -3
  133. package/dist/components/nv-breadcrumbs.js +1 -1
  134. package/dist/components/nv-button.js +1 -1
  135. package/dist/components/nv-calendar.js +6 -6
  136. package/dist/components/nv-col.js +1 -1
  137. package/dist/components/nv-datagrid.js +332 -173
  138. package/dist/components/nv-datagrid.js.map +1 -1
  139. package/dist/components/nv-datagridcolumn.js +3 -7
  140. package/dist/components/nv-datagridcolumn.js.map +1 -1
  141. package/dist/components/nv-dialog.js +25 -15
  142. package/dist/components/nv-dialog.js.map +1 -1
  143. package/dist/components/nv-dialogfooter.js +1 -1
  144. package/dist/components/nv-dialogheader.js +1 -1
  145. package/dist/components/nv-fieldcheckbox.js +1 -1
  146. package/dist/components/nv-fielddropdown.js +8 -8
  147. package/dist/components/nv-fielddropdownitem.js +1 -1
  148. package/dist/components/nv-fielddropdownitemcheck.js +1 -1
  149. package/dist/components/nv-fieldmultiselect.js +7 -7
  150. package/dist/components/nv-fieldnumber.js +4 -4
  151. package/dist/components/nv-fieldpassword.js +6 -6
  152. package/dist/components/nv-fieldradio.js +3 -3
  153. package/dist/components/nv-fieldselect.js +6 -6
  154. package/dist/components/nv-fieldtext.js +4 -4
  155. package/dist/components/nv-fieldtextarea.js +3 -3
  156. package/dist/components/nv-fieldtime.js +14 -14
  157. package/dist/components/nv-icon.js +1 -1
  158. package/dist/components/nv-iconbutton.js +1 -1
  159. package/dist/components/nv-loader.js +1 -1
  160. package/dist/components/nv-menu.js +5 -5
  161. package/dist/components/nv-menu.js.map +1 -1
  162. package/dist/components/nv-menuitem.js +1 -1
  163. package/dist/components/nv-popover.js +1 -1
  164. package/dist/components/nv-row.js +1 -1
  165. package/dist/components/nv-stack.js +1 -1
  166. package/dist/components/nv-table.js +279 -91
  167. package/dist/components/nv-table.js.map +1 -1
  168. package/dist/components/nv-tablecolumn.js +5 -28
  169. package/dist/components/nv-tablecolumn.js.map +1 -1
  170. package/dist/components/nv-toggle.js +2 -2
  171. package/dist/components/nv-tooltip.js +1 -1
  172. package/dist/components/{p-659a5ae4.js → p-11cc38e0.js} +4 -4
  173. package/dist/components/{p-659a5ae4.js.map → p-11cc38e0.js.map} +1 -1
  174. package/dist/components/{p-17b6705f.js → p-1657eba4.js} +23 -16
  175. package/dist/components/p-1657eba4.js.map +1 -0
  176. package/dist/components/{p-88165c0e.js → p-33f9bdb1.js} +4 -4
  177. package/dist/components/{p-88165c0e.js.map → p-33f9bdb1.js.map} +1 -1
  178. package/dist/components/{p-f40a7e2f.js → p-4b184820.js} +3 -3
  179. package/dist/components/{p-f40a7e2f.js.map → p-4b184820.js.map} +1 -1
  180. package/dist/components/{p-48317c2c.js → p-4bb5eb79.js} +3 -3
  181. package/dist/components/{p-48317c2c.js.map → p-4bb5eb79.js.map} +1 -1
  182. package/dist/components/{p-842afd9a.js → p-69543282.js} +3 -3
  183. package/dist/components/{p-842afd9a.js.map → p-69543282.js.map} +1 -1
  184. package/dist/components/{p-fdf57d25.js → p-96605453.js} +5 -5
  185. package/dist/components/{p-fdf57d25.js.map → p-96605453.js.map} +1 -1
  186. package/dist/components/{p-33e07c91.js → p-a633892a.js} +2 -2
  187. package/dist/components/{p-33e07c91.js.map → p-a633892a.js.map} +1 -1
  188. package/dist/components/{p-fd65c51f.js → p-b316c35d.js} +2 -2
  189. package/dist/components/p-b316c35d.js.map +1 -0
  190. package/dist/components/{p-8d7a57d1.js → p-ba145f46.js} +38 -15
  191. package/dist/components/p-ba145f46.js.map +1 -0
  192. package/dist/components/p-cb34aa4f.js +167 -0
  193. package/dist/components/p-cb34aa4f.js.map +1 -0
  194. package/dist/components/{p-492ad81d.js → p-d17558a8.js} +2 -2
  195. package/dist/components/{p-492ad81d.js.map → p-d17558a8.js.map} +1 -1
  196. package/dist/components/{p-73e703a1.js → p-f201db34.js} +2 -2
  197. package/dist/components/{p-73e703a1.js.map → p-f201db34.js.map} +1 -1
  198. package/dist/components/{p-5f5e2bf2.js → p-f77c3072.js} +4 -4
  199. package/dist/components/p-f77c3072.js.map +1 -0
  200. package/dist/components/{p-83e1177b.js → p-fad78896.js} +3 -3
  201. package/dist/components/{p-83e1177b.js.map → p-fad78896.js.map} +1 -1
  202. package/dist/docs.json +352 -679
  203. package/dist/esm/{constants-8243d2ea.js → constants-75e6d7f0.js} +2 -2
  204. package/dist/esm/constants-75e6d7f0.js.map +1 -0
  205. package/dist/esm/dom.utils-ac71e0ef.js +167 -0
  206. package/dist/esm/dom.utils-ac71e0ef.js.map +1 -0
  207. package/dist/esm/index-fac2d5d2.js +0 -32
  208. package/dist/esm/index.js +1 -1
  209. package/dist/esm/loader.js +1 -1
  210. package/dist/esm/native.js +1 -1
  211. package/dist/esm/nv-alert.entry.js +32 -9
  212. package/dist/esm/nv-alert.entry.js.map +1 -1
  213. package/dist/esm/nv-avatar.entry.js +2 -2
  214. package/dist/esm/nv-badge_2.entry.js +3 -3
  215. package/dist/esm/nv-base.entry.js +1 -1
  216. package/dist/esm/nv-breadcrumb.entry.js +1 -1
  217. package/dist/esm/nv-breadcrumbs.entry.js +1 -1
  218. package/dist/esm/nv-button.entry.js +34 -12
  219. package/dist/esm/nv-button.entry.js.map +1 -1
  220. package/dist/esm/nv-calendar.entry.js +2 -2
  221. package/dist/esm/nv-col.entry.js +1 -1
  222. package/dist/esm/nv-datagrid.entry.js +326 -166
  223. package/dist/esm/nv-datagrid.entry.js.map +1 -1
  224. package/dist/esm/nv-datagridcolumn.entry.js +1 -5
  225. package/dist/esm/nv-datagridcolumn.entry.js.map +1 -1
  226. package/dist/esm/nv-dialog.entry.js +20 -9
  227. package/dist/esm/nv-dialog.entry.js.map +1 -1
  228. package/dist/esm/nv-dialogfooter_2.entry.js +17 -12
  229. package/dist/esm/nv-dialogfooter_2.entry.js.map +1 -1
  230. package/dist/esm/nv-fieldcheckbox.entry.js +4 -4
  231. package/dist/esm/nv-fielddropdown.entry.js +3 -3
  232. package/dist/esm/nv-fielddropdownitem.entry.js +1 -1
  233. package/dist/esm/nv-fieldnumber.entry.js +3 -3
  234. package/dist/esm/nv-fieldpassword.entry.js +3 -3
  235. package/dist/esm/nv-fieldradio.entry.js +3 -3
  236. package/dist/esm/nv-fieldselect.entry.js +5 -5
  237. package/dist/esm/nv-fieldtext.entry.js +3 -3
  238. package/dist/esm/nv-fieldtextarea.entry.js +3 -3
  239. package/dist/esm/nv-fieldtime.entry.js +10 -10
  240. package/dist/esm/nv-icon.entry.js +3 -3
  241. package/dist/esm/nv-icon.entry.js.map +1 -1
  242. package/dist/esm/nv-iconbutton.entry.js +1 -1
  243. package/dist/esm/nv-loader.entry.js +1 -1
  244. package/dist/esm/nv-menu.entry.js +2 -2
  245. package/dist/esm/nv-menu.entry.js.map +1 -1
  246. package/dist/esm/nv-menuitem.entry.js +1 -1
  247. package/dist/esm/nv-popover.entry.js +1 -1
  248. package/dist/esm/nv-row.entry.js +1 -1
  249. package/dist/esm/nv-stack.entry.js +1 -1
  250. package/dist/esm/nv-table.entry.js +268 -82
  251. package/dist/esm/nv-table.entry.js.map +1 -1
  252. package/dist/esm/nv-tablecolumn.entry.js +2 -22
  253. package/dist/esm/nv-tablecolumn.entry.js.map +1 -1
  254. package/dist/esm/nv-toggle.entry.js +2 -2
  255. package/dist/esm/nv-tooltip.entry.js +1 -1
  256. package/dist/native/index.esm.js +1 -1
  257. package/dist/native/native.css +1 -1
  258. package/dist/native/native.esm.js +1 -1
  259. package/dist/native/native.esm.js.map +1 -1
  260. package/dist/native/{p-e1b22ca7.entry.js → p-0a2a9f8b.entry.js} +2 -2
  261. package/dist/native/{p-46c9aa04.entry.js → p-12d08abc.entry.js} +2 -2
  262. package/dist/native/{p-63c894f0.entry.js → p-15be3d96.entry.js} +2 -2
  263. package/dist/native/{p-943a19a5.entry.js → p-184cd119.entry.js} +2 -2
  264. package/dist/native/{p-2b99e720.entry.js → p-1a3d2a74.entry.js} +2 -2
  265. package/dist/native/{p-bac62e20.entry.js → p-27ad7af2.entry.js} +2 -2
  266. package/dist/native/p-27ad7af2.entry.js.map +1 -0
  267. package/dist/native/p-2b2a10f9.entry.js +2 -0
  268. package/dist/native/p-2b2a10f9.entry.js.map +1 -0
  269. package/dist/native/{p-3b2c7871.entry.js → p-359f0f53.entry.js} +2 -2
  270. package/dist/native/p-3b65037c.entry.js +2 -0
  271. package/dist/native/p-3b65037c.entry.js.map +1 -0
  272. package/dist/native/p-3be2c9a1.entry.js +2 -0
  273. package/dist/native/p-4283f375.entry.js +2 -0
  274. package/dist/native/p-4283f375.entry.js.map +1 -0
  275. package/dist/native/p-487b81bd.entry.js +2 -0
  276. package/dist/native/p-487b81bd.entry.js.map +1 -0
  277. package/dist/native/{p-fa33ec18.entry.js → p-491f4605.entry.js} +2 -2
  278. package/dist/native/{p-39b4ec02.entry.js → p-554f7b44.entry.js} +2 -2
  279. package/dist/native/{p-44e7e3e8.entry.js → p-69fb1c9d.entry.js} +2 -2
  280. package/dist/native/{p-cba14168.entry.js → p-729c9d45.entry.js} +2 -2
  281. package/dist/native/{p-6acbf729.entry.js → p-78f08578.entry.js} +2 -2
  282. package/dist/native/p-8664ab16.entry.js +7 -0
  283. package/dist/native/p-8664ab16.entry.js.map +1 -0
  284. package/dist/native/p-8d6516a3.entry.js +2 -0
  285. package/dist/native/{p-4a7fa613.entry.js.map → p-8d6516a3.entry.js.map} +1 -1
  286. package/dist/native/p-951baf95.entry.js +2 -0
  287. package/dist/native/{p-b2ace8e9.entry.js → p-9795090f.entry.js} +2 -2
  288. package/dist/native/{p-b2ace8e9.entry.js.map → p-9795090f.entry.js.map} +1 -1
  289. package/dist/native/p-af60740c.entry.js +2 -0
  290. package/dist/native/{p-3bfd5a30.entry.js.map → p-af60740c.entry.js.map} +1 -1
  291. package/dist/native/{p-fd65c51f.js → p-b316c35d.js} +2 -2
  292. package/dist/native/{p-fd65c51f.js.map → p-b316c35d.js.map} +1 -1
  293. package/dist/native/p-b58c661b.entry.js +2 -0
  294. package/dist/native/p-b58c661b.entry.js.map +1 -0
  295. package/dist/native/p-b7bc918b.entry.js +2 -0
  296. package/dist/native/p-b7bc918b.entry.js.map +1 -0
  297. package/dist/native/p-cb34aa4f.js +2 -0
  298. package/dist/native/p-cb34aa4f.js.map +1 -0
  299. package/dist/native/{p-4eacd598.entry.js → p-cda56476.entry.js} +2 -2
  300. package/dist/native/{p-dbb89408.entry.js → p-d1bf4d77.entry.js} +2 -2
  301. package/dist/native/{p-b13b2663.entry.js → p-d7665a07.entry.js} +2 -2
  302. package/dist/native/{p-833af1bf.entry.js → p-daeb7e22.entry.js} +2 -2
  303. package/dist/native/{p-634b49fe.entry.js → p-e36e956b.entry.js} +2 -2
  304. package/dist/native/{p-afc16010.entry.js → p-e9e77494.entry.js} +2 -2
  305. package/dist/native/{p-0bf35abc.entry.js → p-edee1c1f.entry.js} +2 -2
  306. package/dist/native/{p-4db7add6.entry.js → p-f1585fc2.entry.js} +2 -2
  307. package/dist/native/{p-ac81e143.entry.js → p-f3579407.entry.js} +2 -2
  308. package/dist/native/p-fca807b4.entry.js +13 -0
  309. package/dist/native/p-fca807b4.entry.js.map +1 -0
  310. package/dist/native/{p-2151f564.entry.js → p-fde56f9c.entry.js} +2 -2
  311. package/dist/types/components/nv-alert/nv-alert.d.ts +14 -0
  312. package/dist/types/components/nv-base/nv-base.docs.d.ts +1 -1
  313. package/dist/types/components/nv-button/nv-button.d.ts +16 -5
  314. package/dist/types/components/nv-datagrid/nv-datagrid.d.ts +48 -31
  315. package/dist/types/components/nv-datagridcolumn/nv-datagridcolumn.d.ts +3 -2
  316. package/dist/types/components/nv-dialog/nv-dialog.d.ts +1 -7
  317. package/dist/types/components/nv-dialogfooter/nv-dialogfooter.d.ts +19 -10
  318. package/dist/types/components/nv-table/nv-table.d.ts +51 -39
  319. package/dist/types/components/nv-tablecolumn/nv-tablecolumn.d.ts +4 -42
  320. package/dist/types/components.d.ts +136 -256
  321. package/dist/types/interfaces/ColumnConfig.d.ts +13 -0
  322. package/dist/types/interfaces/actionEvent.d.ts +13 -0
  323. package/dist/types/utils/dom.utils.d.ts +12 -0
  324. package/dist/types/utils/test/class.utils.test.d.ts +1 -0
  325. package/dist/types/utils/test/dom.utils.test.d.ts +1 -0
  326. package/hydrate/index.js +958 -667
  327. package/hydrate/index.mjs +958 -667
  328. package/package.json +15 -27
  329. package/dist/blazor-docs.json +0 -15543
  330. package/dist/cjs/constants-2ae3d9eb.js.map +0 -1
  331. package/dist/cjs/nv-datagridbody.cjs.entry.js +0 -24
  332. package/dist/cjs/nv-datagridbody.cjs.entry.js.map +0 -1
  333. package/dist/cjs/nv-datagriddatacell.cjs.entry.js +0 -25
  334. package/dist/cjs/nv-datagriddatacell.cjs.entry.js.map +0 -1
  335. package/dist/cjs/nv-datagridhead.cjs.entry.js +0 -24
  336. package/dist/cjs/nv-datagridhead.cjs.entry.js.map +0 -1
  337. package/dist/cjs/nv-datagridrow.cjs.entry.js +0 -24
  338. package/dist/cjs/nv-datagridrow.cjs.entry.js.map +0 -1
  339. package/dist/cjs/nv-tablebody.cjs.entry.js +0 -24
  340. package/dist/cjs/nv-tablebody.cjs.entry.js.map +0 -1
  341. package/dist/cjs/nv-tabledatacell.cjs.entry.js +0 -43
  342. package/dist/cjs/nv-tabledatacell.cjs.entry.js.map +0 -1
  343. package/dist/cjs/nv-tablehead.cjs.entry.js +0 -24
  344. package/dist/cjs/nv-tablehead.cjs.entry.js.map +0 -1
  345. package/dist/cjs/nv-tablerow.cjs.entry.js +0 -24
  346. package/dist/cjs/nv-tablerow.cjs.entry.js.map +0 -1
  347. package/dist/collection/components/nv-datagridbody/nv-datagridbody.css +0 -0
  348. package/dist/collection/components/nv-datagridbody/nv-datagridbody.docs.js +0 -8
  349. package/dist/collection/components/nv-datagridbody/nv-datagridbody.docs.js.map +0 -1
  350. package/dist/collection/components/nv-datagridbody/nv-datagridbody.js +0 -23
  351. package/dist/collection/components/nv-datagridbody/nv-datagridbody.js.map +0 -1
  352. package/dist/collection/components/nv-datagridcolumn/nv-datagridcolumn.css +0 -0
  353. package/dist/collection/components/nv-datagriddatacell/nv-datagriddatacell.css +0 -0
  354. package/dist/collection/components/nv-datagriddatacell/nv-datagriddatacell.docs.js +0 -6
  355. package/dist/collection/components/nv-datagriddatacell/nv-datagriddatacell.docs.js.map +0 -1
  356. package/dist/collection/components/nv-datagriddatacell/nv-datagriddatacell.js +0 -50
  357. package/dist/collection/components/nv-datagriddatacell/nv-datagriddatacell.js.map +0 -1
  358. package/dist/collection/components/nv-datagridhead/nv-datagridhead.css +0 -0
  359. package/dist/collection/components/nv-datagridhead/nv-datagridhead.docs.js +0 -8
  360. package/dist/collection/components/nv-datagridhead/nv-datagridhead.docs.js.map +0 -1
  361. package/dist/collection/components/nv-datagridhead/nv-datagridhead.js +0 -23
  362. package/dist/collection/components/nv-datagridhead/nv-datagridhead.js.map +0 -1
  363. package/dist/collection/components/nv-datagridrow/nv-datagridrow.css +0 -0
  364. package/dist/collection/components/nv-datagridrow/nv-datagridrow.docs.js +0 -8
  365. package/dist/collection/components/nv-datagridrow/nv-datagridrow.docs.js.map +0 -1
  366. package/dist/collection/components/nv-datagridrow/nv-datagridrow.js +0 -23
  367. package/dist/collection/components/nv-datagridrow/nv-datagridrow.js.map +0 -1
  368. package/dist/collection/components/nv-tablebody/nv-tablebody.css +0 -0
  369. package/dist/collection/components/nv-tablebody/nv-tablebody.docs.js +0 -8
  370. package/dist/collection/components/nv-tablebody/nv-tablebody.docs.js.map +0 -1
  371. package/dist/collection/components/nv-tablebody/nv-tablebody.js +0 -23
  372. package/dist/collection/components/nv-tablebody/nv-tablebody.js.map +0 -1
  373. package/dist/collection/components/nv-tablecolumn/nv-tablecolumn.css +0 -0
  374. package/dist/collection/components/nv-tabledatacell/nv-tabledatacell.css +0 -0
  375. package/dist/collection/components/nv-tabledatacell/nv-tabledatacell.docs.js +0 -6
  376. package/dist/collection/components/nv-tabledatacell/nv-tabledatacell.docs.js.map +0 -1
  377. package/dist/collection/components/nv-tabledatacell/nv-tabledatacell.js +0 -116
  378. package/dist/collection/components/nv-tabledatacell/nv-tabledatacell.js.map +0 -1
  379. package/dist/collection/components/nv-tablehead/nv-tablehead.css +0 -0
  380. package/dist/collection/components/nv-tablehead/nv-tablehead.docs.js +0 -8
  381. package/dist/collection/components/nv-tablehead/nv-tablehead.docs.js.map +0 -1
  382. package/dist/collection/components/nv-tablehead/nv-tablehead.js +0 -23
  383. package/dist/collection/components/nv-tablehead/nv-tablehead.js.map +0 -1
  384. package/dist/collection/components/nv-tablerow/nv-tablerow.css +0 -0
  385. package/dist/collection/components/nv-tablerow/nv-tablerow.docs.js +0 -8
  386. package/dist/collection/components/nv-tablerow/nv-tablerow.docs.js.map +0 -1
  387. package/dist/collection/components/nv-tablerow/nv-tablerow.js +0 -23
  388. package/dist/collection/components/nv-tablerow/nv-tablerow.js.map +0 -1
  389. package/dist/components/nv-datagridbody.d.ts +0 -11
  390. package/dist/components/nv-datagridbody.js +0 -38
  391. package/dist/components/nv-datagridbody.js.map +0 -1
  392. package/dist/components/nv-datagriddatacell.d.ts +0 -11
  393. package/dist/components/nv-datagriddatacell.js +0 -41
  394. package/dist/components/nv-datagriddatacell.js.map +0 -1
  395. package/dist/components/nv-datagridhead.d.ts +0 -11
  396. package/dist/components/nv-datagridhead.js +0 -38
  397. package/dist/components/nv-datagridhead.js.map +0 -1
  398. package/dist/components/nv-datagridrow.d.ts +0 -11
  399. package/dist/components/nv-datagridrow.js +0 -38
  400. package/dist/components/nv-datagridrow.js.map +0 -1
  401. package/dist/components/nv-tablebody.d.ts +0 -11
  402. package/dist/components/nv-tablebody.js +0 -38
  403. package/dist/components/nv-tablebody.js.map +0 -1
  404. package/dist/components/nv-tabledatacell.d.ts +0 -11
  405. package/dist/components/nv-tabledatacell.js +0 -61
  406. package/dist/components/nv-tabledatacell.js.map +0 -1
  407. package/dist/components/nv-tablehead.d.ts +0 -11
  408. package/dist/components/nv-tablehead.js +0 -38
  409. package/dist/components/nv-tablehead.js.map +0 -1
  410. package/dist/components/nv-tablerow.d.ts +0 -11
  411. package/dist/components/nv-tablerow.js +0 -38
  412. package/dist/components/nv-tablerow.js.map +0 -1
  413. package/dist/components/p-17b6705f.js.map +0 -1
  414. package/dist/components/p-5f5e2bf2.js.map +0 -1
  415. package/dist/components/p-8d7a57d1.js.map +0 -1
  416. package/dist/components/p-fd65c51f.js.map +0 -1
  417. package/dist/esm/constants-8243d2ea.js.map +0 -1
  418. package/dist/esm/nv-datagridbody.entry.js +0 -20
  419. package/dist/esm/nv-datagridbody.entry.js.map +0 -1
  420. package/dist/esm/nv-datagriddatacell.entry.js +0 -21
  421. package/dist/esm/nv-datagriddatacell.entry.js.map +0 -1
  422. package/dist/esm/nv-datagridhead.entry.js +0 -20
  423. package/dist/esm/nv-datagridhead.entry.js.map +0 -1
  424. package/dist/esm/nv-datagridrow.entry.js +0 -20
  425. package/dist/esm/nv-datagridrow.entry.js.map +0 -1
  426. package/dist/esm/nv-tablebody.entry.js +0 -20
  427. package/dist/esm/nv-tablebody.entry.js.map +0 -1
  428. package/dist/esm/nv-tabledatacell.entry.js +0 -39
  429. package/dist/esm/nv-tabledatacell.entry.js.map +0 -1
  430. package/dist/esm/nv-tablehead.entry.js +0 -20
  431. package/dist/esm/nv-tablehead.entry.js.map +0 -1
  432. package/dist/esm/nv-tablerow.entry.js +0 -20
  433. package/dist/esm/nv-tablerow.entry.js.map +0 -1
  434. package/dist/native/p-1bae8cdd.entry.js +0 -13
  435. package/dist/native/p-1bae8cdd.entry.js.map +0 -1
  436. package/dist/native/p-1ca72f74.entry.js +0 -2
  437. package/dist/native/p-1ca72f74.entry.js.map +0 -1
  438. package/dist/native/p-3422397d.entry.js +0 -2
  439. package/dist/native/p-3422397d.entry.js.map +0 -1
  440. package/dist/native/p-3bfd5a30.entry.js +0 -2
  441. package/dist/native/p-4a7fa613.entry.js +0 -2
  442. package/dist/native/p-51e0c5d3.entry.js +0 -2
  443. package/dist/native/p-51e0c5d3.entry.js.map +0 -1
  444. package/dist/native/p-57513eb0.entry.js +0 -2
  445. package/dist/native/p-57513eb0.entry.js.map +0 -1
  446. package/dist/native/p-5851fbed.entry.js +0 -2
  447. package/dist/native/p-5851fbed.entry.js.map +0 -1
  448. package/dist/native/p-5f1a7e6e.entry.js +0 -2
  449. package/dist/native/p-7211a3cb.entry.js +0 -7
  450. package/dist/native/p-7211a3cb.entry.js.map +0 -1
  451. package/dist/native/p-79765c7d.entry.js +0 -2
  452. package/dist/native/p-79765c7d.entry.js.map +0 -1
  453. package/dist/native/p-8b323a15.entry.js +0 -2
  454. package/dist/native/p-8b323a15.entry.js.map +0 -1
  455. package/dist/native/p-9c8eadde.entry.js +0 -2
  456. package/dist/native/p-9c8eadde.entry.js.map +0 -1
  457. package/dist/native/p-bac62e20.entry.js.map +0 -1
  458. package/dist/native/p-beab7cbd.entry.js +0 -2
  459. package/dist/native/p-bfb6e22c.entry.js +0 -2
  460. package/dist/native/p-bfb6e22c.entry.js.map +0 -1
  461. package/dist/native/p-c29be15d.entry.js +0 -2
  462. package/dist/native/p-c29be15d.entry.js.map +0 -1
  463. package/dist/native/p-ef9b66d4.entry.js +0 -2
  464. package/dist/native/p-ef9b66d4.entry.js.map +0 -1
  465. package/dist/native/p-f867541d.entry.js +0 -2
  466. package/dist/native/p-f867541d.entry.js.map +0 -1
  467. package/dist/native/p-f954a077.entry.js +0 -2
  468. package/dist/native/p-f954a077.entry.js.map +0 -1
  469. package/dist/native/p-ff7eea0e.entry.js +0 -2
  470. package/dist/native/p-ff7eea0e.entry.js.map +0 -1
  471. package/dist/types/components/nv-datagridbody/nv-datagridbody.d.ts +0 -7
  472. package/dist/types/components/nv-datagridbody/nv-datagridbody.docs.d.ts +0 -4
  473. package/dist/types/components/nv-datagriddatacell/nv-datagriddatacell.d.ts +0 -14
  474. package/dist/types/components/nv-datagriddatacell/nv-datagriddatacell.docs.d.ts +0 -4
  475. package/dist/types/components/nv-datagridhead/nv-datagridhead.d.ts +0 -7
  476. package/dist/types/components/nv-datagridhead/nv-datagridhead.docs.d.ts +0 -4
  477. package/dist/types/components/nv-datagridrow/nv-datagridrow.d.ts +0 -7
  478. package/dist/types/components/nv-datagridrow/nv-datagridrow.docs.d.ts +0 -4
  479. package/dist/types/components/nv-tablebody/nv-tablebody.d.ts +0 -7
  480. package/dist/types/components/nv-tablebody/nv-tablebody.docs.d.ts +0 -4
  481. package/dist/types/components/nv-tabledatacell/nv-tabledatacell.d.ts +0 -30
  482. package/dist/types/components/nv-tabledatacell/nv-tabledatacell.docs.d.ts +0 -4
  483. package/dist/types/components/nv-tablehead/nv-tablehead.d.ts +0 -7
  484. package/dist/types/components/nv-tablehead/nv-tablehead.docs.d.ts +0 -4
  485. package/dist/types/components/nv-tablerow/nv-tablerow.d.ts +0 -7
  486. package/dist/types/components/nv-tablerow/nv-tablerow.docs.d.ts +0 -4
  487. package/dist/vscode-data.json +0 -4407
  488. /package/dist/native/{p-e1b22ca7.entry.js.map → p-0a2a9f8b.entry.js.map} +0 -0
  489. /package/dist/native/{p-46c9aa04.entry.js.map → p-12d08abc.entry.js.map} +0 -0
  490. /package/dist/native/{p-63c894f0.entry.js.map → p-15be3d96.entry.js.map} +0 -0
  491. /package/dist/native/{p-943a19a5.entry.js.map → p-184cd119.entry.js.map} +0 -0
  492. /package/dist/native/{p-2b99e720.entry.js.map → p-1a3d2a74.entry.js.map} +0 -0
  493. /package/dist/native/{p-3b2c7871.entry.js.map → p-359f0f53.entry.js.map} +0 -0
  494. /package/dist/native/{p-beab7cbd.entry.js.map → p-3be2c9a1.entry.js.map} +0 -0
  495. /package/dist/native/{p-fa33ec18.entry.js.map → p-491f4605.entry.js.map} +0 -0
  496. /package/dist/native/{p-39b4ec02.entry.js.map → p-554f7b44.entry.js.map} +0 -0
  497. /package/dist/native/{p-44e7e3e8.entry.js.map → p-69fb1c9d.entry.js.map} +0 -0
  498. /package/dist/native/{p-cba14168.entry.js.map → p-729c9d45.entry.js.map} +0 -0
  499. /package/dist/native/{p-6acbf729.entry.js.map → p-78f08578.entry.js.map} +0 -0
  500. /package/dist/native/{p-5f1a7e6e.entry.js.map → p-951baf95.entry.js.map} +0 -0
  501. /package/dist/native/{p-4eacd598.entry.js.map → p-cda56476.entry.js.map} +0 -0
  502. /package/dist/native/{p-dbb89408.entry.js.map → p-d1bf4d77.entry.js.map} +0 -0
  503. /package/dist/native/{p-b13b2663.entry.js.map → p-d7665a07.entry.js.map} +0 -0
  504. /package/dist/native/{p-833af1bf.entry.js.map → p-daeb7e22.entry.js.map} +0 -0
  505. /package/dist/native/{p-634b49fe.entry.js.map → p-e36e956b.entry.js.map} +0 -0
  506. /package/dist/native/{p-afc16010.entry.js.map → p-e9e77494.entry.js.map} +0 -0
  507. /package/dist/native/{p-0bf35abc.entry.js.map → p-edee1c1f.entry.js.map} +0 -0
  508. /package/dist/native/{p-4db7add6.entry.js.map → p-f1585fc2.entry.js.map} +0 -0
  509. /package/dist/native/{p-ac81e143.entry.js.map → p-f3579407.entry.js.map} +0 -0
  510. /package/dist/native/{p-2151f564.entry.js.map → p-fde56f9c.entry.js.map} +0 -0
@@ -1,4 +1,5 @@
1
- import { p as proxyCustomElement, H, h, d as Host } from './p-77d0fedc.js';
1
+ import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-77d0fedc.js';
2
+ import { d as deepCopyElement, e as excludedProps } from './p-cb34aa4f.js';
2
3
 
3
4
  /**
4
5
  * table-core
@@ -2953,23 +2954,30 @@ function getCoreRowModel() {
2953
2954
  }, getMemoOptions(table.options, 'debugTable', 'getRowModel', () => table._autoResetPageIndex()));
2954
2955
  }
2955
2956
 
2956
- const nvDatagridCss = "nv-datagrid table{border-collapse:collapse;border-color:inherit;text-indent:0}";
2957
+ 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-border-header);height:var(--spacing-12);padding:var(--spacing-3) var(--spacing-4);font-size:var(--font-size-md);font-weight:700;color:var(--components-datagrid-content-header)}nv-datagrid td{border-bottom:1px solid var(--components-datagrid-border-body);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-content-text);white-space:nowrap;text-overflow:ellipsis}nv-datagrid tbody>tr:hover{background:var(--color-interaction-container-neutral-background-hover)}";
2957
2958
  const NvDatagridStyle0 = nvDatagridCss;
2958
2959
 
2959
2960
  const NvDatagrid$1 = /*@__PURE__*/ proxyCustomElement(class NvDatagrid extends H {
2960
2961
  constructor() {
2961
2962
  super();
2962
2963
  this.__registerHost();
2964
+ this.action = createEvent(this, "action", 7);
2965
+ this.templateCache = new Map();
2966
+ this.headerTemplateCache = new Map();
2963
2967
  /****************************************************************************/
2964
2968
  //#region STATES
2965
2969
  this.table = null;
2966
2970
  this.parsedColumns = []; // Parsed array
2967
2971
  this.parsedData = []; // Parsed array
2968
- this.hasSlotHead = false;
2969
- this.hasSlotBody = false;
2970
2972
  //#endregion STATES
2971
2973
  /****************************************************************************/
2972
2974
  //#region PROPERTIES
2975
+ /**
2976
+ * The data to display in the data grid.
2977
+ * @example [{ "name": "Alice", "age": 25 }, { "name": "Bob", "age": 30 }]
2978
+ * @default []
2979
+ */
2980
+ this.data = [];
2973
2981
  /**
2974
2982
  * The columns to display in the data grid.
2975
2983
  * @example
@@ -2982,11 +2990,10 @@ const NvDatagrid$1 = /*@__PURE__*/ proxyCustomElement(class NvDatagrid extends H
2982
2990
  */
2983
2991
  this.columns = [];
2984
2992
  /**
2985
- * The data to display in the data grid.
2986
- * @example [{ "name": "Alice", "age": 25 }, { "name": "Bob", "age": 30 }]
2987
- * @default []
2993
+ * Fallback value to be displayed when data is not available
2994
+ * @default 'N/A'
2988
2995
  */
2989
- this.data = [];
2996
+ this.fallbackValue = 'N/A';
2990
2997
  /**
2991
2998
  * The message to display when there is no data available.
2992
2999
  * @default 'No data available'
@@ -3000,39 +3007,94 @@ const NvDatagrid$1 = /*@__PURE__*/ proxyCustomElement(class NvDatagrid extends H
3000
3007
  }
3001
3008
  //#endregion PROPERTIES
3002
3009
  /****************************************************************************/
3003
- //#region WATCHERS
3004
- parseColumns(newValue, oldValue) {
3005
- this.parseColumnsArray(newValue, oldValue);
3010
+ //#region METHODS
3011
+ /**
3012
+ * Caches templates for cells and headers upfront to improve performance.
3013
+ */
3014
+ cacheTemplates() {
3015
+ const columns = Array.from(this.el.querySelectorAll('nv-datagridcolumn'));
3016
+ columns.forEach((col) => {
3017
+ const key = col.accessor;
3018
+ const cellSlot = col.querySelector('[slot="cell"]');
3019
+ if (cellSlot) {
3020
+ const element = deepCopyElement(cellSlot);
3021
+ this.templateCache.set(key, element);
3022
+ }
3023
+ const headerSlot = col.querySelector('[slot="header"]');
3024
+ if (headerSlot) {
3025
+ const element = deepCopyElement(headerSlot);
3026
+ this.headerTemplateCache.set(key, element);
3027
+ }
3028
+ else {
3029
+ const header = col.header;
3030
+ if (header) {
3031
+ const headerDiv = document.createElement('div');
3032
+ headerDiv.textContent = header;
3033
+ this.headerTemplateCache.set(key, headerDiv);
3034
+ }
3035
+ }
3036
+ });
3006
3037
  }
3007
- parseJsonColumns(newValue) {
3008
- try {
3009
- const newItems = newValue ? JSON.parse(newValue) : [];
3010
- this.parseColumnsArray(newItems, this.parsedColumns);
3038
+ parseDataAndColumns() {
3039
+ if (this.dataJson) {
3040
+ this.parseJsonData(this.dataJson);
3011
3041
  }
3012
- catch (e) {
3013
- console.error('Invalid JSON format for columnsJson:', e.message);
3014
- this.parsedColumns = [];
3042
+ else if (this.data && this.data.length > 0) {
3043
+ this.parseDataArray(this.data, this.parsedData);
3044
+ }
3045
+ if (this.columnsJson) {
3046
+ this.parseJsonColumns(this.columnsJson, this.parsedColumns);
3047
+ }
3048
+ else if (this.columns && this.columns.length > 0) {
3049
+ this.parseColumnsArray(this.columns, this.parsedColumns);
3050
+ }
3051
+ else if (this.headerTemplateCache.size > 0) {
3052
+ const headerKeys = Array.from(this.headerTemplateCache.keys());
3053
+ const arrayColumnsConfig = headerKeys.map(key => (Object.assign({}, { accessor: key, header: key ? key.charAt(0).toUpperCase() + key.slice(1) : '' })));
3054
+ this.parseColumnsArray(arrayColumnsConfig, this.parsedColumns);
3055
+ }
3056
+ else if (this.parsedData.length > 0) {
3057
+ const firstRow = this.parsedData[0];
3058
+ const arrayColumnsConfig = Object.keys(firstRow).map(key => ({
3059
+ accessor: key,
3060
+ header: key.charAt(0).toUpperCase() + key.slice(1),
3061
+ }));
3062
+ this.parseColumnsArray(arrayColumnsConfig, this.parsedColumns);
3015
3063
  }
3016
3064
  }
3017
- parseData(newValue, oldValue) {
3018
- this.parseDataArray(newValue, oldValue);
3065
+ deepEqual(a, b) {
3066
+ return JSON.stringify(a) === JSON.stringify(b);
3019
3067
  }
3020
- parseJsonData(newValue) {
3021
- try {
3022
- const newItems = newValue ? JSON.parse(newValue) : [];
3023
- this.parseDataArray(newItems, this.parsedData);
3024
- }
3025
- catch (e) {
3026
- console.error('Invalid JSON format for dataJson:', e.message);
3027
- this.parsedData = [];
3068
+ /**
3069
+ * Parses the data array and sets the state accordingly
3070
+ * @param {any[]} newValue - The new value of the data array.
3071
+ * @param {any[]} oldValue - The old value of the data array.
3072
+ */
3073
+ parseDataArray(newValue, oldValue) {
3074
+ // Ensure both are arrays for proper comparison
3075
+ const safeNewValue = Array.isArray(newValue) ? newValue : [];
3076
+ const safeOldValue = Array.isArray(oldValue) ? oldValue : [];
3077
+ if (this.deepEqual(safeNewValue, safeOldValue)) {
3078
+ return; // Deep comparison
3028
3079
  }
3080
+ this.parsedData = Array.isArray(newValue) ? newValue : [];
3029
3081
  }
3030
- handleParsedChange() {
3031
- this.initializeTable();
3082
+ /**
3083
+ * Parses the columns array and sets the state accordingly
3084
+ * @param {Column[]} newValue - The new value of the columns array.
3085
+ * @param {Column[]} oldValue - The old value of the columns array.
3086
+ */
3087
+ parseColumnsArray(newValue, oldValue) {
3088
+ // Ensure both are arrays for proper comparison
3089
+ const safeNewValue = Array.isArray(newValue) ? newValue : [];
3090
+ const safeOldValue = Array.isArray(oldValue) ? oldValue : [];
3091
+ // Use a proper deep comparison function (e.g., Lodash's isEqual)
3092
+ if (this.deepEqual(safeNewValue, safeOldValue)) {
3093
+ return;
3094
+ }
3095
+ // Assign only after confirming changes
3096
+ this.parsedColumns = safeNewValue;
3032
3097
  }
3033
- //#endregion WATCHERS
3034
- /****************************************************************************/
3035
- //#region METHODS
3036
3098
  initializeTable() {
3037
3099
  // Clear the previous table instance (if any)
3038
3100
  this.table = null;
@@ -3067,170 +3129,268 @@ const NvDatagrid$1 = /*@__PURE__*/ proxyCustomElement(class NvDatagrid extends H
3067
3129
  }, // Default: no column sizing info
3068
3130
  },
3069
3131
  };
3070
- // Validate and generate column definitions
3071
- const validColumns = this.parsedColumns.filter(column => (column === null || column === void 0 ? void 0 : column.accessor) && (column === null || column === void 0 ? void 0 : column.header));
3072
- // Helper function to generate column definitions
3073
- const generateColumns = () => {
3074
- const columnHelper = createColumnHelper();
3075
- if (validColumns.length > 0) {
3076
- // Use defined columns
3077
- return validColumns.map(column => columnHelper.accessor(column.accessor, {
3078
- header: column.header,
3079
- cell: info => info.getValue(),
3080
- }));
3081
- }
3082
- else if (tableOptions.data && tableOptions.data.length > 0) {
3083
- // Generate columns from data keys
3084
- const sampleRow = tableOptions.data[0];
3085
- return Object.keys(sampleRow).map(key => columnHelper.accessor(key, {
3086
- header: key.charAt(0).toUpperCase() + key.slice(1), // Capitalize key for header
3087
- cell: info => info.getValue(),
3088
- }));
3089
- }
3090
- else {
3091
- // No columns and no data
3092
- return [];
3093
- }
3094
- };
3095
- const setTableData = () => {
3096
- if (this.parsedData &&
3132
+ if (this.parsedColumns.length > 0) {
3133
+ // Validate and generate column definitions
3134
+ const validColumns = this.parsedColumns.filter(column => (column === null || column === void 0 ? void 0 : column.accessor) && (column === null || column === void 0 ? void 0 : column.header));
3135
+ // Update tableOptions based on parsed data and columns
3136
+ const hasColumns = validColumns && Array.isArray(validColumns) && validColumns.length > 0;
3137
+ const hasData = this.parsedData &&
3097
3138
  Array.isArray(this.parsedData) &&
3098
- this.parsedData.length > 0) {
3099
- return [...this.parsedData];
3139
+ this.parsedData.length > 0;
3140
+ if (!hasColumns && !hasData) ;
3141
+ else if (hasColumns && !hasData) {
3142
+ tableOptions.columns = this.generateColumns(validColumns, tableOptions);
3100
3143
  }
3101
3144
  else {
3102
- return [];
3145
+ // Both columns and data are available
3146
+ // No columns and data is available
3147
+ tableOptions.data = this.getTableData();
3148
+ tableOptions.columns = this.generateColumns(validColumns, tableOptions);
3103
3149
  }
3104
- };
3105
- // Update tableOptions based on parsed data and columns
3106
- const hasColumns = validColumns && Array.isArray(validColumns) && validColumns.length > 0;
3107
- const hasData = (this.parsedData &&
3108
- Array.isArray(this.parsedData) &&
3109
- this.parsedData.length > 0) ||
3110
- this.hasSlotBody;
3111
- if (!hasColumns && !hasData) ;
3112
- else if (hasColumns && !hasData) {
3113
- tableOptions.columns = generateColumns();
3114
- }
3115
- else {
3116
- // Both columns and data are available
3117
- // No columns and data is available
3118
- tableOptions.data = setTableData();
3119
- tableOptions.columns = generateColumns();
3120
3150
  }
3121
3151
  // Initialize the table
3122
3152
  this.table = createTable(tableOptions);
3123
3153
  }
3124
- /**
3125
- * Parses the columns array.
3126
- * @param {Column[]} newValue - The new value of the columns array.
3127
- * @param {Column[]} oldValue - The old value of the columns array.
3128
- */
3129
- parseColumnsArray(newValue, oldValue) {
3130
- if (JSON.stringify(newValue) === JSON.stringify(oldValue))
3131
- return; // Deep comparison
3132
- this.parsedColumns = Array.isArray(newValue) ? newValue : [];
3154
+ // Helper function to generate column definitions
3155
+ generateColumns(validColumns, tableOptions) {
3156
+ const columnHelper = createColumnHelper();
3157
+ if (validColumns.length > 0) {
3158
+ // Use defined columns
3159
+ return validColumns.map(column => columnHelper.accessor(column.accessor, {
3160
+ header: column.header,
3161
+ cell: info => info.getValue(),
3162
+ }));
3163
+ }
3164
+ else if (tableOptions.data && tableOptions.data.length > 0) {
3165
+ // Generate columns from data keys
3166
+ const sampleRow = tableOptions.data[0];
3167
+ return Object.keys(sampleRow).map(key => columnHelper.accessor(key, {
3168
+ header: key.charAt(0).toUpperCase() + key.slice(1), // Capitalize key for header
3169
+ cell: info => info.getValue(),
3170
+ }));
3171
+ }
3172
+ else {
3173
+ // No columns and no data
3174
+ return [];
3175
+ }
3133
3176
  }
3134
- /**
3135
- * Parses the data array.
3136
- * @param {any[]} newValue - The new value of the data array.
3137
- * @param {any[]} oldValue - The old value of the data array.
3138
- */
3139
- parseDataArray(newValue, oldValue) {
3140
- if (JSON.stringify(newValue) === JSON.stringify(oldValue))
3141
- return; // Deep comparison
3142
- this.parsedData = Array.isArray(newValue) ? newValue : [];
3177
+ getTableData() {
3178
+ if (this.parsedData &&
3179
+ Array.isArray(this.parsedData) &&
3180
+ this.parsedData.length > 0) {
3181
+ return [...this.parsedData];
3182
+ }
3183
+ else {
3184
+ return [];
3185
+ }
3143
3186
  }
3144
- //#endregion METHODS
3145
- /****************************************************************************/
3146
- //#region LIFECYCLE
3147
- componentWillLoad() {
3148
- this.hasSlotHead = !!this.el.querySelector('[slot="head"]');
3149
- if (this.hasSlotHead) {
3150
- const headSlot = this.el.querySelector('[slot="head"]');
3151
- const headSlotRows = this.hasSlotHead
3152
- ? Array.from(headSlot.querySelectorAll('nv-datagridrow'))
3153
- : [];
3154
- const mappedRows = headSlotRows.map(row => {
3155
- const cells = Array.from(row.querySelectorAll('nv-datagridcolumn'));
3156
- return cells.map(cell => ({
3157
- header: cell.getAttribute('header') || '',
3158
- accessor: cell.getAttribute('accessor') || '',
3159
- }));
3160
- });
3161
- // Flatten the nested arrays into a single array of columns
3162
- const flatMappedColumns = mappedRows.flat();
3163
- this.parsedColumns = flatMappedColumns;
3187
+ renderTemplate(template, cellValue, row) {
3188
+ if (!template) {
3189
+ return null;
3164
3190
  }
3165
- this.hasSlotBody = !!this.el.querySelector('[slot="body"]');
3166
- if (this.hasSlotBody) {
3167
- const bodySlot = this.el.querySelector('[slot="body"]');
3168
- const bodySlotRows = this.hasSlotBody
3169
- ? Array.from(bodySlot.querySelectorAll('nv-datagridrow'))
3170
- : [];
3171
- const mappedRows = bodySlotRows.map(row => {
3172
- const cells = Array.from(row.querySelectorAll('nv-datagriddatacell'));
3173
- return cells.map(cell => {
3174
- return {
3175
- accessor: cell.accessor,
3176
- value: cell.innerHTML,
3177
- };
3178
- });
3191
+ // Handle <template> elements correctly
3192
+ const templateContent = template instanceof HTMLTemplateElement ? template.content : template;
3193
+ const element = deepCopyElement(templateContent);
3194
+ // Replace placeholders in text content, attributes, and properties
3195
+ element.querySelectorAll('*').forEach(el => {
3196
+ // Replace placeholders in text content
3197
+ this.replacePlaceholdersTextContent(el, cellValue);
3198
+ // Replace placeholders in attributes
3199
+ this.replacePlaceholdersAttributes(el, cellValue);
3200
+ // Replace placeholders in properties
3201
+ this.replacePlaceholdersProperties(el, cellValue);
3202
+ });
3203
+ // Handle `data-bind-event`
3204
+ element.querySelectorAll('[data-bind-event]').forEach(el => {
3205
+ const bindEvent = el.getAttribute('data-bind-event') || '';
3206
+ const splitted = bindEvent.split(':');
3207
+ if (!bindEvent.includes(':') || splitted.length < 2) {
3208
+ console.warn('Invalid data-bind-event format:', bindEvent);
3209
+ return;
3210
+ }
3211
+ const eventType = splitted[0];
3212
+ const keyAction = splitted[1];
3213
+ const details = splitted.length > 2 ? splitted[2] : null;
3214
+ el.addEventListener(eventType, () => {
3215
+ var _a;
3216
+ const keys = (_a = details === null || details === void 0 ? void 0 : details.split(',')) !== null && _a !== void 0 ? _a : [];
3217
+ // Convert keys into a single object instead of an array of objects
3218
+ const keyValue = keys.reduce((acc, key) => {
3219
+ var _a;
3220
+ if (row === null || row === void 0 ? void 0 : row.original) {
3221
+ if (key in row.original) {
3222
+ acc[key] = (_a = row.original) === null || _a === void 0 ? void 0 : _a[key];
3223
+ }
3224
+ }
3225
+ return acc;
3226
+ }, {});
3227
+ const action = { keyAction, details: keyValue };
3228
+ this.action.emit(action);
3229
+ });
3230
+ });
3231
+ // Ensure Web Components are properly connected
3232
+ setTimeout(() => {
3233
+ element.querySelectorAll('*').forEach(child => {
3234
+ if (typeof child.connectedCallback === 'function') {
3235
+ child.connectedCallback();
3236
+ }
3179
3237
  });
3180
- // Flatten the nested arrays into a single array of data
3181
- const flatMappedData = mappedRows.map(row => row.reduce((acc, cell) => {
3182
- acc[cell.accessor] = cell.value;
3183
- return acc;
3184
- }, {}));
3185
- this.parsedData = flatMappedData;
3238
+ }, 0);
3239
+ return (h("div", { ref: el => {
3240
+ if (el) {
3241
+ el.innerHTML = ''; // Remove existing content
3242
+ el.appendChild(element); // Append new element
3243
+ }
3244
+ } }));
3245
+ }
3246
+ replaceKeyWithValue(key, cellValue) {
3247
+ var _a;
3248
+ // Handle undefined or null values by returning the fallback
3249
+ if (cellValue === undefined || cellValue === null) {
3250
+ return this.fallbackValue;
3186
3251
  }
3187
- if (this.columnsJson) {
3188
- this.parseJsonColumns(this.columnsJson);
3252
+ // If cellValue is an object, attempt to retrieve the value
3253
+ if (typeof cellValue === 'object') {
3254
+ // Handle nested key paths (e.g., "user.name")
3255
+ if (key.includes('.')) {
3256
+ const resolvedValue = key.split('.').reduce((acc, keyPart) => {
3257
+ if (acc && acc[keyPart] !== undefined) {
3258
+ return acc[keyPart];
3259
+ }
3260
+ else {
3261
+ return undefined;
3262
+ }
3263
+ }, cellValue);
3264
+ if (resolvedValue !== undefined) {
3265
+ return String(resolvedValue);
3266
+ }
3267
+ else {
3268
+ const firstLevelKey = key.split('.')[0];
3269
+ const rest = key.substring(firstLevelKey.length + 1);
3270
+ const response = this.replaceKeyWithValue(rest, cellValue);
3271
+ if (response !== this.fallbackValue) {
3272
+ return response;
3273
+ }
3274
+ }
3275
+ }
3276
+ // Handle single-level key lookup
3277
+ return key in cellValue ? String(cellValue[key]) : this.fallbackValue;
3189
3278
  }
3190
- else if (this.columns && this.columns.length > 0) {
3191
- this.parseColumns(this.columns, this.parsedColumns);
3279
+ // If cellValue is a primitive (string, number, boolean, etc.), return it as a string
3280
+ return (_a = cellValue === null || cellValue === void 0 ? void 0 : cellValue.toString()) !== null && _a !== void 0 ? _a : this.fallbackValue;
3281
+ }
3282
+ replacePlaceholdersTextContent(element, cellValue) {
3283
+ // ✅ Replace placeholders in text content
3284
+ element.childNodes.forEach(node => {
3285
+ if (node.nodeType === Node.TEXT_NODE) {
3286
+ node.textContent = node.textContent.replace(/__([\w.]+)__/g, (_, key) => this.replaceKeyWithValue(key, cellValue));
3287
+ }
3288
+ });
3289
+ }
3290
+ replacePlaceholdersAttributes(element, cellValue) {
3291
+ // ✅ Replace placeholders in attributes
3292
+ Array.from(element.attributes).forEach(attr => {
3293
+ if (attr.value.includes('__')) {
3294
+ attr.value = attr.value.replace(/__([\w.]+)__/g, (_, key) => this.replaceKeyWithValue(key, cellValue));
3295
+ }
3296
+ });
3297
+ }
3298
+ replacePlaceholdersProperties(element, cellValue) {
3299
+ // ✅ Dynamically extract relevant properties
3300
+ const properties = new Set();
3301
+ // Collect only own enumerable properties
3302
+ Object.keys(element).forEach(key => properties.add(key));
3303
+ // Collect inherited properties from prototypes (HTMLElement -> Element -> Node)
3304
+ let proto = Object.getPrototypeOf(element);
3305
+ while (proto && proto !== H.prototype) {
3306
+ Object.keys(proto).forEach(key => properties.add(key));
3307
+ proto = Object.getPrototypeOf(proto);
3192
3308
  }
3193
- if (this.dataJson) {
3194
- this.parseJsonData(this.dataJson);
3309
+ // Filter and copy only non-function properties and exclude irrelevant ones
3310
+ properties.forEach(prop => {
3311
+ if (typeof element[prop] !== 'function' && // Ignore methods
3312
+ !prop.startsWith('on') && // Ignore event listeners (onclick, oninput, etc.)
3313
+ !excludedProps.has(prop) // 🚨 Prevent text duplication and irrelevant props
3314
+ ) {
3315
+ try {
3316
+ const propValue = element[prop];
3317
+ // ✅ Replace placeholders only if the value is a string
3318
+ if (typeof propValue === 'string' && propValue.includes('__')) {
3319
+ element[prop] = propValue.replace(/__([\w.]+)__/g, (_, key) => this.replaceKeyWithValue(key, cellValue)); // ✅ TypeScript safe
3320
+ }
3321
+ }
3322
+ catch (error) {
3323
+ console.warn(`Could not assign property ${prop}:`, error.message);
3324
+ }
3325
+ }
3326
+ });
3327
+ }
3328
+ //#endregion METHODS
3329
+ /****************************************************************************/
3330
+ //#region WATCHERS
3331
+ parseColumns(newValue, oldValue = []) {
3332
+ this.parseColumnsArray(newValue, oldValue);
3333
+ }
3334
+ parseJsonColumns(newValue, oldValue) {
3335
+ try {
3336
+ const newItems = newValue ? JSON.parse(newValue) : [];
3337
+ this.parseColumnsArray(newItems, oldValue);
3195
3338
  }
3196
- else if (this.data && this.data.length > 0) {
3197
- this.parseData(this.data, this.parsedData);
3339
+ catch (e) {
3340
+ console.error('Invalid JSON format for columnsJson:', e.message);
3341
+ this.parsedColumns = [];
3342
+ }
3343
+ }
3344
+ parseData(newValue, oldValue = []) {
3345
+ this.parseDataArray(newValue, oldValue);
3346
+ }
3347
+ parseJsonData(newValue) {
3348
+ try {
3349
+ const newItems = newValue ? JSON.parse(newValue) : [];
3350
+ this.parseDataArray(newItems, this.parsedData);
3351
+ }
3352
+ catch (e) {
3353
+ console.error('Invalid JSON format for dataJson:', e.message);
3354
+ this.parsedData = [];
3198
3355
  }
3199
3356
  }
3200
- componentDidLoad() {
3357
+ handleParsedChange() {
3201
3358
  this.initializeTable();
3202
3359
  }
3203
- //#endregion LIFECYCLE
3360
+ //#endregion WATCHERS
3361
+ /****************************************************************************/
3362
+ //#region LIFECYCLE
3363
+ componentWillLoad() {
3364
+ this.cacheTemplates();
3365
+ this.parseDataAndColumns();
3366
+ }
3367
+ //#endregion EVENTS
3204
3368
  /****************************************************************************/
3205
3369
  //#region RENDER
3206
3370
  render() {
3207
3371
  var _a, _b, _c;
3208
- const headerGroups = !this.table ||
3209
- this.table === undefined ||
3210
- (this.parsedColumns.length === 0 && !this.hasSlotHead)
3372
+ const headerGroups = !this.table || this.table === undefined || this.parsedColumns.length === 0
3211
3373
  ? []
3212
3374
  : (_a = this.table) === null || _a === void 0 ? void 0 : _a.getHeaderGroups();
3213
- const rows = !this.table ||
3214
- this.table === undefined ||
3215
- (this.parsedData.length === 0 && !this.hasSlotBody)
3375
+ const rows = !this.table || this.table === undefined || this.parsedData.length === 0
3216
3376
  ? []
3217
3377
  : (_c = (_b = this.table) === null || _b === void 0 ? void 0 : _b.getRowModel()) === null || _c === void 0 ? void 0 : _c.rows;
3218
- return (h(Host, { key: '805687f552a530cac492f16da4858c242f822761' }, h("div", { key: '11b8431c85062307803bf60b942a8cf6b3edbe78', class: "hidden" }, h("slot", { key: '62c100b7f84bfaac9ecdaf94ea8babde114d2adf' }), h("slot", { key: 'b1e0b9f472304c6eceb8c1df9129a051a3d6f132', name: "head" }), h("slot", { key: '7fda39320d01a98055b53b64c554fe657988efd1', name: "body" })), h("slot", { key: 'c681fbdfd0a9c91add3c1e45fe476d878380c93e', name: "before" }), this.parsedColumns.length === 0 &&
3219
- this.parsedData.length === 0 &&
3220
- !this.hasSlotHead &&
3221
- !this.hasSlotBody ? (h("p", null, this.noColumnsNoDataMessage)) : (h("table", null, this.parsedColumns.length > 0 && headerGroups.length > 0 && (h("thead", null, this.parsedColumns.length > 0 && headerGroups
3222
- ? headerGroups === null || headerGroups === void 0 ? void 0 : headerGroups.map(headerGroup => (h("tr", { key: headerGroup.id }, headerGroup.headers.map(header => (h("th", { key: header.id }, header.isPlaceholder
3223
- ? null
3224
- : header.column.columnDef.header))))))
3225
- : null)), h("tbody", null, !rows || rows.length === 0 ? (h("tr", null, h("td", { colSpan: this.parsedColumns.length || 12 }, this.noDataMessage))) : (rows.map(row => {
3378
+ return (h(Host, { key: '03dc8123cf740c6b5eeb59f10443a2ec1b279f28' }, h("div", { key: '263fef353246dba3adb0a44b4e80ff5a4c2e97eb', class: "hidden" }, h("slot", { key: '3d2f02044ad8e09fb010cb0486f63b48e1048acf' })), h("slot", { key: 'e5b458c755eb6887d1fdb959b8883f4d48c5b2f9', name: "before" }), this.parsedColumns.length === 0 && this.parsedData.length === 0 ? (h("div", { class: "no-data" }, this.noColumnsNoDataMessage)) : (h("table", null, this.parsedColumns.length > 0 && headerGroups.length > 0 && (h("thead", null, this.parsedColumns.length > 0 && headerGroups
3379
+ ? headerGroups === null || headerGroups === void 0 ? void 0 : headerGroups.map(headerGroup => (h("tr", { key: headerGroup.id }, headerGroup.headers.map(header => {
3380
+ return (h("th", { key: header.id }, header.isPlaceholder
3381
+ ? null
3382
+ : this.renderTemplate(this.headerTemplateCache.get(header.id), {}) || header.column.columnDef.header));
3383
+ }))))
3384
+ : 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 => {
3226
3385
  const rowId = row.id;
3227
3386
  const visibleCells = row === null || row === void 0 ? void 0 : row.getVisibleCells();
3228
- const cells = visibleCells === null || visibleCells === void 0 ? void 0 : visibleCells.map(cell => {
3387
+ return (h("tr", { key: rowId }, visibleCells.map(cell => {
3388
+ const cellAccessors = cell.column.id;
3229
3389
  const cellValue = cell.getValue();
3230
- return `<td key="${cell.id}" data-row-id="${rowId}">${cellValue}</td>`;
3231
- }).join('');
3232
- return h("tr", { key: rowId, innerHTML: cells });
3233
- }))))), h("slot", { key: '58df089ceaabef8b2e7e139322e47be986cce063', name: "after" })));
3390
+ return (h("td", { key: cell.id, "data-row-id": rowId }, this.renderTemplate(this.templateCache.get(cellAccessors), cellValue, row) ||
3391
+ (cellValue !== null && cellValue !== void 0 ? cellValue : this.fallbackValue)));
3392
+ })));
3393
+ }))))), h("slot", { key: 'e80f9b8a5dbda4c05b719a99c173e2f106449668', name: "after" })));
3234
3394
  }
3235
3395
  get el() { return this; }
3236
3396
  static get watchers() { return {
@@ -3243,17 +3403,16 @@ const NvDatagrid$1 = /*@__PURE__*/ proxyCustomElement(class NvDatagrid extends H
3243
3403
  }; }
3244
3404
  static get style() { return NvDatagridStyle0; }
3245
3405
  }, [4, "nv-datagrid", {
3246
- "columns": [16],
3247
- "columnsJson": [513, "columns-json"],
3248
3406
  "data": [16],
3407
+ "columns": [16],
3249
3408
  "dataJson": [513, "data-json"],
3250
- "noDataMessage": [1, "no-data-message"],
3251
- "noColumnsNoDataMessage": [1, "no-columns-no-data-message"],
3409
+ "columnsJson": [513, "columns-json"],
3410
+ "fallbackValue": [513, "fallback-value"],
3411
+ "noDataMessage": [513, "no-data-message"],
3412
+ "noColumnsNoDataMessage": [513, "no-columns-no-data-message"],
3252
3413
  "table": [32],
3253
3414
  "parsedColumns": [32],
3254
- "parsedData": [32],
3255
- "hasSlotHead": [32],
3256
- "hasSlotBody": [32]
3415
+ "parsedData": [32]
3257
3416
  }, undefined, {
3258
3417
  "columns": ["parseColumns"],
3259
3418
  "columnsJson": ["parseJsonColumns"],