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

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 +13 -25
  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 { r as registerInstance, h, a as Host, g as getElement } from './index-fac2d5d2.js';
1
+ import { r as registerInstance, c as createEvent, h, a as Host, g as getElement } from './index-fac2d5d2.js';
2
+ import { d as deepCopyElement, e as excludedProps } from './dom.utils-ac71e0ef.js';
2
3
 
3
4
  /**
4
5
  * table-core
@@ -2953,22 +2954,29 @@ 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 = class {
2960
2961
  constructor(hostRef) {
2961
2962
  registerInstance(this, hostRef);
2963
+ this.action = createEvent(this, "action", 7);
2964
+ this.templateCache = new Map();
2965
+ this.headerTemplateCache = new Map();
2962
2966
  /****************************************************************************/
2963
2967
  //#region STATES
2964
2968
  this.table = null;
2965
2969
  this.parsedColumns = []; // Parsed array
2966
2970
  this.parsedData = []; // Parsed array
2967
- this.hasSlotHead = false;
2968
- this.hasSlotBody = false;
2969
2971
  //#endregion STATES
2970
2972
  /****************************************************************************/
2971
2973
  //#region PROPERTIES
2974
+ /**
2975
+ * The data to display in the data grid.
2976
+ * @example [{ "name": "Alice", "age": 25 }, { "name": "Bob", "age": 30 }]
2977
+ * @default []
2978
+ */
2979
+ this.data = [];
2972
2980
  /**
2973
2981
  * The columns to display in the data grid.
2974
2982
  * @example
@@ -2981,11 +2989,10 @@ const NvDatagrid = class {
2981
2989
  */
2982
2990
  this.columns = [];
2983
2991
  /**
2984
- * The data to display in the data grid.
2985
- * @example [{ "name": "Alice", "age": 25 }, { "name": "Bob", "age": 30 }]
2986
- * @default []
2992
+ * Fallback value to be displayed when data is not available
2993
+ * @default 'N/A'
2987
2994
  */
2988
- this.data = [];
2995
+ this.fallbackValue = 'N/A';
2989
2996
  /**
2990
2997
  * The message to display when there is no data available.
2991
2998
  * @default 'No data available'
@@ -2999,39 +3006,94 @@ const NvDatagrid = class {
2999
3006
  }
3000
3007
  //#endregion PROPERTIES
3001
3008
  /****************************************************************************/
3002
- //#region WATCHERS
3003
- parseColumns(newValue, oldValue) {
3004
- this.parseColumnsArray(newValue, oldValue);
3009
+ //#region METHODS
3010
+ /**
3011
+ * Caches templates for cells and headers upfront to improve performance.
3012
+ */
3013
+ cacheTemplates() {
3014
+ const columns = Array.from(this.el.querySelectorAll('nv-datagridcolumn'));
3015
+ columns.forEach((col) => {
3016
+ const key = col.accessor;
3017
+ const cellSlot = col.querySelector('[slot="cell"]');
3018
+ if (cellSlot) {
3019
+ const element = deepCopyElement(cellSlot);
3020
+ this.templateCache.set(key, element);
3021
+ }
3022
+ const headerSlot = col.querySelector('[slot="header"]');
3023
+ if (headerSlot) {
3024
+ const element = deepCopyElement(headerSlot);
3025
+ this.headerTemplateCache.set(key, element);
3026
+ }
3027
+ else {
3028
+ const header = col.header;
3029
+ if (header) {
3030
+ const headerDiv = document.createElement('div');
3031
+ headerDiv.textContent = header;
3032
+ this.headerTemplateCache.set(key, headerDiv);
3033
+ }
3034
+ }
3035
+ });
3005
3036
  }
3006
- parseJsonColumns(newValue) {
3007
- try {
3008
- const newItems = newValue ? JSON.parse(newValue) : [];
3009
- this.parseColumnsArray(newItems, this.parsedColumns);
3037
+ parseDataAndColumns() {
3038
+ if (this.dataJson) {
3039
+ this.parseJsonData(this.dataJson);
3010
3040
  }
3011
- catch (e) {
3012
- console.error('Invalid JSON format for columnsJson:', e.message);
3013
- this.parsedColumns = [];
3041
+ else if (this.data && this.data.length > 0) {
3042
+ this.parseDataArray(this.data, this.parsedData);
3043
+ }
3044
+ if (this.columnsJson) {
3045
+ this.parseJsonColumns(this.columnsJson, this.parsedColumns);
3046
+ }
3047
+ else if (this.columns && this.columns.length > 0) {
3048
+ this.parseColumnsArray(this.columns, this.parsedColumns);
3049
+ }
3050
+ else if (this.headerTemplateCache.size > 0) {
3051
+ const headerKeys = Array.from(this.headerTemplateCache.keys());
3052
+ const arrayColumnsConfig = headerKeys.map(key => (Object.assign({}, { accessor: key, header: key ? key.charAt(0).toUpperCase() + key.slice(1) : '' })));
3053
+ this.parseColumnsArray(arrayColumnsConfig, this.parsedColumns);
3054
+ }
3055
+ else if (this.parsedData.length > 0) {
3056
+ const firstRow = this.parsedData[0];
3057
+ const arrayColumnsConfig = Object.keys(firstRow).map(key => ({
3058
+ accessor: key,
3059
+ header: key.charAt(0).toUpperCase() + key.slice(1),
3060
+ }));
3061
+ this.parseColumnsArray(arrayColumnsConfig, this.parsedColumns);
3014
3062
  }
3015
3063
  }
3016
- parseData(newValue, oldValue) {
3017
- this.parseDataArray(newValue, oldValue);
3064
+ deepEqual(a, b) {
3065
+ return JSON.stringify(a) === JSON.stringify(b);
3018
3066
  }
3019
- parseJsonData(newValue) {
3020
- try {
3021
- const newItems = newValue ? JSON.parse(newValue) : [];
3022
- this.parseDataArray(newItems, this.parsedData);
3023
- }
3024
- catch (e) {
3025
- console.error('Invalid JSON format for dataJson:', e.message);
3026
- this.parsedData = [];
3067
+ /**
3068
+ * Parses the data array and sets the state accordingly
3069
+ * @param {any[]} newValue - The new value of the data array.
3070
+ * @param {any[]} oldValue - The old value of the data array.
3071
+ */
3072
+ parseDataArray(newValue, oldValue) {
3073
+ // Ensure both are arrays for proper comparison
3074
+ const safeNewValue = Array.isArray(newValue) ? newValue : [];
3075
+ const safeOldValue = Array.isArray(oldValue) ? oldValue : [];
3076
+ if (this.deepEqual(safeNewValue, safeOldValue)) {
3077
+ return; // Deep comparison
3027
3078
  }
3079
+ this.parsedData = Array.isArray(newValue) ? newValue : [];
3028
3080
  }
3029
- handleParsedChange() {
3030
- this.initializeTable();
3081
+ /**
3082
+ * Parses the columns array and sets the state accordingly
3083
+ * @param {Column[]} newValue - The new value of the columns array.
3084
+ * @param {Column[]} oldValue - The old value of the columns array.
3085
+ */
3086
+ parseColumnsArray(newValue, oldValue) {
3087
+ // Ensure both are arrays for proper comparison
3088
+ const safeNewValue = Array.isArray(newValue) ? newValue : [];
3089
+ const safeOldValue = Array.isArray(oldValue) ? oldValue : [];
3090
+ // Use a proper deep comparison function (e.g., Lodash's isEqual)
3091
+ if (this.deepEqual(safeNewValue, safeOldValue)) {
3092
+ return;
3093
+ }
3094
+ // Assign only after confirming changes
3095
+ this.parsedColumns = safeNewValue;
3031
3096
  }
3032
- //#endregion WATCHERS
3033
- /****************************************************************************/
3034
- //#region METHODS
3035
3097
  initializeTable() {
3036
3098
  // Clear the previous table instance (if any)
3037
3099
  this.table = null;
@@ -3066,170 +3128,268 @@ const NvDatagrid = class {
3066
3128
  }, // Default: no column sizing info
3067
3129
  },
3068
3130
  };
3069
- // Validate and generate column definitions
3070
- const validColumns = this.parsedColumns.filter(column => (column === null || column === void 0 ? void 0 : column.accessor) && (column === null || column === void 0 ? void 0 : column.header));
3071
- // Helper function to generate column definitions
3072
- const generateColumns = () => {
3073
- const columnHelper = createColumnHelper();
3074
- if (validColumns.length > 0) {
3075
- // Use defined columns
3076
- return validColumns.map(column => columnHelper.accessor(column.accessor, {
3077
- header: column.header,
3078
- cell: info => info.getValue(),
3079
- }));
3080
- }
3081
- else if (tableOptions.data && tableOptions.data.length > 0) {
3082
- // Generate columns from data keys
3083
- const sampleRow = tableOptions.data[0];
3084
- return Object.keys(sampleRow).map(key => columnHelper.accessor(key, {
3085
- header: key.charAt(0).toUpperCase() + key.slice(1), // Capitalize key for header
3086
- cell: info => info.getValue(),
3087
- }));
3088
- }
3089
- else {
3090
- // No columns and no data
3091
- return [];
3092
- }
3093
- };
3094
- const setTableData = () => {
3095
- if (this.parsedData &&
3131
+ if (this.parsedColumns.length > 0) {
3132
+ // Validate and generate column definitions
3133
+ const validColumns = this.parsedColumns.filter(column => (column === null || column === void 0 ? void 0 : column.accessor) && (column === null || column === void 0 ? void 0 : column.header));
3134
+ // Update tableOptions based on parsed data and columns
3135
+ const hasColumns = validColumns && Array.isArray(validColumns) && validColumns.length > 0;
3136
+ const hasData = this.parsedData &&
3096
3137
  Array.isArray(this.parsedData) &&
3097
- this.parsedData.length > 0) {
3098
- return [...this.parsedData];
3138
+ this.parsedData.length > 0;
3139
+ if (!hasColumns && !hasData) ;
3140
+ else if (hasColumns && !hasData) {
3141
+ tableOptions.columns = this.generateColumns(validColumns, tableOptions);
3099
3142
  }
3100
3143
  else {
3101
- return [];
3144
+ // Both columns and data are available
3145
+ // No columns and data is available
3146
+ tableOptions.data = this.getTableData();
3147
+ tableOptions.columns = this.generateColumns(validColumns, tableOptions);
3102
3148
  }
3103
- };
3104
- // Update tableOptions based on parsed data and columns
3105
- const hasColumns = validColumns && Array.isArray(validColumns) && validColumns.length > 0;
3106
- const hasData = (this.parsedData &&
3107
- Array.isArray(this.parsedData) &&
3108
- this.parsedData.length > 0) ||
3109
- this.hasSlotBody;
3110
- if (!hasColumns && !hasData) ;
3111
- else if (hasColumns && !hasData) {
3112
- tableOptions.columns = generateColumns();
3113
- }
3114
- else {
3115
- // Both columns and data are available
3116
- // No columns and data is available
3117
- tableOptions.data = setTableData();
3118
- tableOptions.columns = generateColumns();
3119
3149
  }
3120
3150
  // Initialize the table
3121
3151
  this.table = createTable(tableOptions);
3122
3152
  }
3123
- /**
3124
- * Parses the columns array.
3125
- * @param {Column[]} newValue - The new value of the columns array.
3126
- * @param {Column[]} oldValue - The old value of the columns array.
3127
- */
3128
- parseColumnsArray(newValue, oldValue) {
3129
- if (JSON.stringify(newValue) === JSON.stringify(oldValue))
3130
- return; // Deep comparison
3131
- this.parsedColumns = Array.isArray(newValue) ? newValue : [];
3153
+ // Helper function to generate column definitions
3154
+ generateColumns(validColumns, tableOptions) {
3155
+ const columnHelper = createColumnHelper();
3156
+ if (validColumns.length > 0) {
3157
+ // Use defined columns
3158
+ return validColumns.map(column => columnHelper.accessor(column.accessor, {
3159
+ header: column.header,
3160
+ cell: info => info.getValue(),
3161
+ }));
3162
+ }
3163
+ else if (tableOptions.data && tableOptions.data.length > 0) {
3164
+ // Generate columns from data keys
3165
+ const sampleRow = tableOptions.data[0];
3166
+ return Object.keys(sampleRow).map(key => columnHelper.accessor(key, {
3167
+ header: key.charAt(0).toUpperCase() + key.slice(1), // Capitalize key for header
3168
+ cell: info => info.getValue(),
3169
+ }));
3170
+ }
3171
+ else {
3172
+ // No columns and no data
3173
+ return [];
3174
+ }
3132
3175
  }
3133
- /**
3134
- * Parses the data array.
3135
- * @param {any[]} newValue - The new value of the data array.
3136
- * @param {any[]} oldValue - The old value of the data array.
3137
- */
3138
- parseDataArray(newValue, oldValue) {
3139
- if (JSON.stringify(newValue) === JSON.stringify(oldValue))
3140
- return; // Deep comparison
3141
- this.parsedData = Array.isArray(newValue) ? newValue : [];
3176
+ getTableData() {
3177
+ if (this.parsedData &&
3178
+ Array.isArray(this.parsedData) &&
3179
+ this.parsedData.length > 0) {
3180
+ return [...this.parsedData];
3181
+ }
3182
+ else {
3183
+ return [];
3184
+ }
3142
3185
  }
3143
- //#endregion METHODS
3144
- /****************************************************************************/
3145
- //#region LIFECYCLE
3146
- componentWillLoad() {
3147
- this.hasSlotHead = !!this.el.querySelector('[slot="head"]');
3148
- if (this.hasSlotHead) {
3149
- const headSlot = this.el.querySelector('[slot="head"]');
3150
- const headSlotRows = this.hasSlotHead
3151
- ? Array.from(headSlot.querySelectorAll('nv-datagridrow'))
3152
- : [];
3153
- const mappedRows = headSlotRows.map(row => {
3154
- const cells = Array.from(row.querySelectorAll('nv-datagridcolumn'));
3155
- return cells.map(cell => ({
3156
- header: cell.getAttribute('header') || '',
3157
- accessor: cell.getAttribute('accessor') || '',
3158
- }));
3159
- });
3160
- // Flatten the nested arrays into a single array of columns
3161
- const flatMappedColumns = mappedRows.flat();
3162
- this.parsedColumns = flatMappedColumns;
3186
+ renderTemplate(template, cellValue, row) {
3187
+ if (!template) {
3188
+ return null;
3163
3189
  }
3164
- this.hasSlotBody = !!this.el.querySelector('[slot="body"]');
3165
- if (this.hasSlotBody) {
3166
- const bodySlot = this.el.querySelector('[slot="body"]');
3167
- const bodySlotRows = this.hasSlotBody
3168
- ? Array.from(bodySlot.querySelectorAll('nv-datagridrow'))
3169
- : [];
3170
- const mappedRows = bodySlotRows.map(row => {
3171
- const cells = Array.from(row.querySelectorAll('nv-datagriddatacell'));
3172
- return cells.map(cell => {
3173
- return {
3174
- accessor: cell.accessor,
3175
- value: cell.innerHTML,
3176
- };
3177
- });
3190
+ // Handle <template> elements correctly
3191
+ const templateContent = template instanceof HTMLTemplateElement ? template.content : template;
3192
+ const element = deepCopyElement(templateContent);
3193
+ // Replace placeholders in text content, attributes, and properties
3194
+ element.querySelectorAll('*').forEach(el => {
3195
+ // Replace placeholders in text content
3196
+ this.replacePlaceholdersTextContent(el, cellValue);
3197
+ // Replace placeholders in attributes
3198
+ this.replacePlaceholdersAttributes(el, cellValue);
3199
+ // Replace placeholders in properties
3200
+ this.replacePlaceholdersProperties(el, cellValue);
3201
+ });
3202
+ // Handle `data-bind-event`
3203
+ element.querySelectorAll('[data-bind-event]').forEach(el => {
3204
+ const bindEvent = el.getAttribute('data-bind-event') || '';
3205
+ const splitted = bindEvent.split(':');
3206
+ if (!bindEvent.includes(':') || splitted.length < 2) {
3207
+ console.warn('Invalid data-bind-event format:', bindEvent);
3208
+ return;
3209
+ }
3210
+ const eventType = splitted[0];
3211
+ const keyAction = splitted[1];
3212
+ const details = splitted.length > 2 ? splitted[2] : null;
3213
+ el.addEventListener(eventType, () => {
3214
+ var _a;
3215
+ const keys = (_a = details === null || details === void 0 ? void 0 : details.split(',')) !== null && _a !== void 0 ? _a : [];
3216
+ // Convert keys into a single object instead of an array of objects
3217
+ const keyValue = keys.reduce((acc, key) => {
3218
+ var _a;
3219
+ if (row === null || row === void 0 ? void 0 : row.original) {
3220
+ if (key in row.original) {
3221
+ acc[key] = (_a = row.original) === null || _a === void 0 ? void 0 : _a[key];
3222
+ }
3223
+ }
3224
+ return acc;
3225
+ }, {});
3226
+ const action = { keyAction, details: keyValue };
3227
+ this.action.emit(action);
3228
+ });
3229
+ });
3230
+ // Ensure Web Components are properly connected
3231
+ setTimeout(() => {
3232
+ element.querySelectorAll('*').forEach(child => {
3233
+ if (typeof child.connectedCallback === 'function') {
3234
+ child.connectedCallback();
3235
+ }
3178
3236
  });
3179
- // Flatten the nested arrays into a single array of data
3180
- const flatMappedData = mappedRows.map(row => row.reduce((acc, cell) => {
3181
- acc[cell.accessor] = cell.value;
3182
- return acc;
3183
- }, {}));
3184
- this.parsedData = flatMappedData;
3237
+ }, 0);
3238
+ return (h("div", { ref: el => {
3239
+ if (el) {
3240
+ el.innerHTML = ''; // Remove existing content
3241
+ el.appendChild(element); // Append new element
3242
+ }
3243
+ } }));
3244
+ }
3245
+ replaceKeyWithValue(key, cellValue) {
3246
+ var _a;
3247
+ // Handle undefined or null values by returning the fallback
3248
+ if (cellValue === undefined || cellValue === null) {
3249
+ return this.fallbackValue;
3185
3250
  }
3186
- if (this.columnsJson) {
3187
- this.parseJsonColumns(this.columnsJson);
3251
+ // If cellValue is an object, attempt to retrieve the value
3252
+ if (typeof cellValue === 'object') {
3253
+ // Handle nested key paths (e.g., "user.name")
3254
+ if (key.includes('.')) {
3255
+ const resolvedValue = key.split('.').reduce((acc, keyPart) => {
3256
+ if (acc && acc[keyPart] !== undefined) {
3257
+ return acc[keyPart];
3258
+ }
3259
+ else {
3260
+ return undefined;
3261
+ }
3262
+ }, cellValue);
3263
+ if (resolvedValue !== undefined) {
3264
+ return String(resolvedValue);
3265
+ }
3266
+ else {
3267
+ const firstLevelKey = key.split('.')[0];
3268
+ const rest = key.substring(firstLevelKey.length + 1);
3269
+ const response = this.replaceKeyWithValue(rest, cellValue);
3270
+ if (response !== this.fallbackValue) {
3271
+ return response;
3272
+ }
3273
+ }
3274
+ }
3275
+ // Handle single-level key lookup
3276
+ return key in cellValue ? String(cellValue[key]) : this.fallbackValue;
3188
3277
  }
3189
- else if (this.columns && this.columns.length > 0) {
3190
- this.parseColumns(this.columns, this.parsedColumns);
3278
+ // If cellValue is a primitive (string, number, boolean, etc.), return it as a string
3279
+ return (_a = cellValue === null || cellValue === void 0 ? void 0 : cellValue.toString()) !== null && _a !== void 0 ? _a : this.fallbackValue;
3280
+ }
3281
+ replacePlaceholdersTextContent(element, cellValue) {
3282
+ // ✅ Replace placeholders in text content
3283
+ element.childNodes.forEach(node => {
3284
+ if (node.nodeType === Node.TEXT_NODE) {
3285
+ node.textContent = node.textContent.replace(/__([\w.]+)__/g, (_, key) => this.replaceKeyWithValue(key, cellValue));
3286
+ }
3287
+ });
3288
+ }
3289
+ replacePlaceholdersAttributes(element, cellValue) {
3290
+ // ✅ Replace placeholders in attributes
3291
+ Array.from(element.attributes).forEach(attr => {
3292
+ if (attr.value.includes('__')) {
3293
+ attr.value = attr.value.replace(/__([\w.]+)__/g, (_, key) => this.replaceKeyWithValue(key, cellValue));
3294
+ }
3295
+ });
3296
+ }
3297
+ replacePlaceholdersProperties(element, cellValue) {
3298
+ // ✅ Dynamically extract relevant properties
3299
+ const properties = new Set();
3300
+ // Collect only own enumerable properties
3301
+ Object.keys(element).forEach(key => properties.add(key));
3302
+ // Collect inherited properties from prototypes (HTMLElement -> Element -> Node)
3303
+ let proto = Object.getPrototypeOf(element);
3304
+ while (proto && proto !== HTMLElement.prototype) {
3305
+ Object.keys(proto).forEach(key => properties.add(key));
3306
+ proto = Object.getPrototypeOf(proto);
3191
3307
  }
3192
- if (this.dataJson) {
3193
- this.parseJsonData(this.dataJson);
3308
+ // Filter and copy only non-function properties and exclude irrelevant ones
3309
+ properties.forEach(prop => {
3310
+ if (typeof element[prop] !== 'function' && // Ignore methods
3311
+ !prop.startsWith('on') && // Ignore event listeners (onclick, oninput, etc.)
3312
+ !excludedProps.has(prop) // 🚨 Prevent text duplication and irrelevant props
3313
+ ) {
3314
+ try {
3315
+ const propValue = element[prop];
3316
+ // ✅ Replace placeholders only if the value is a string
3317
+ if (typeof propValue === 'string' && propValue.includes('__')) {
3318
+ element[prop] = propValue.replace(/__([\w.]+)__/g, (_, key) => this.replaceKeyWithValue(key, cellValue)); // ✅ TypeScript safe
3319
+ }
3320
+ }
3321
+ catch (error) {
3322
+ console.warn(`Could not assign property ${prop}:`, error.message);
3323
+ }
3324
+ }
3325
+ });
3326
+ }
3327
+ //#endregion METHODS
3328
+ /****************************************************************************/
3329
+ //#region WATCHERS
3330
+ parseColumns(newValue, oldValue = []) {
3331
+ this.parseColumnsArray(newValue, oldValue);
3332
+ }
3333
+ parseJsonColumns(newValue, oldValue) {
3334
+ try {
3335
+ const newItems = newValue ? JSON.parse(newValue) : [];
3336
+ this.parseColumnsArray(newItems, oldValue);
3194
3337
  }
3195
- else if (this.data && this.data.length > 0) {
3196
- this.parseData(this.data, this.parsedData);
3338
+ catch (e) {
3339
+ console.error('Invalid JSON format for columnsJson:', e.message);
3340
+ this.parsedColumns = [];
3197
3341
  }
3198
3342
  }
3199
- componentDidLoad() {
3343
+ parseData(newValue, oldValue = []) {
3344
+ this.parseDataArray(newValue, oldValue);
3345
+ }
3346
+ parseJsonData(newValue) {
3347
+ try {
3348
+ const newItems = newValue ? JSON.parse(newValue) : [];
3349
+ this.parseDataArray(newItems, this.parsedData);
3350
+ }
3351
+ catch (e) {
3352
+ console.error('Invalid JSON format for dataJson:', e.message);
3353
+ this.parsedData = [];
3354
+ }
3355
+ }
3356
+ handleParsedChange() {
3200
3357
  this.initializeTable();
3201
3358
  }
3202
- //#endregion LIFECYCLE
3359
+ //#endregion WATCHERS
3360
+ /****************************************************************************/
3361
+ //#region LIFECYCLE
3362
+ componentWillLoad() {
3363
+ this.cacheTemplates();
3364
+ this.parseDataAndColumns();
3365
+ }
3366
+ //#endregion EVENTS
3203
3367
  /****************************************************************************/
3204
3368
  //#region RENDER
3205
3369
  render() {
3206
3370
  var _a, _b, _c;
3207
- const headerGroups = !this.table ||
3208
- this.table === undefined ||
3209
- (this.parsedColumns.length === 0 && !this.hasSlotHead)
3371
+ const headerGroups = !this.table || this.table === undefined || this.parsedColumns.length === 0
3210
3372
  ? []
3211
3373
  : (_a = this.table) === null || _a === void 0 ? void 0 : _a.getHeaderGroups();
3212
- const rows = !this.table ||
3213
- this.table === undefined ||
3214
- (this.parsedData.length === 0 && !this.hasSlotBody)
3374
+ const rows = !this.table || this.table === undefined || this.parsedData.length === 0
3215
3375
  ? []
3216
3376
  : (_c = (_b = this.table) === null || _b === void 0 ? void 0 : _b.getRowModel()) === null || _c === void 0 ? void 0 : _c.rows;
3217
- 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 &&
3218
- this.parsedData.length === 0 &&
3219
- !this.hasSlotHead &&
3220
- !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
3221
- ? 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
3222
- ? null
3223
- : header.column.columnDef.header))))))
3224
- : null)), h("tbody", null, !rows || rows.length === 0 ? (h("tr", null, h("td", { colSpan: this.parsedColumns.length || 12 }, this.noDataMessage))) : (rows.map(row => {
3377
+ 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
3378
+ ? headerGroups === null || headerGroups === void 0 ? void 0 : headerGroups.map(headerGroup => (h("tr", { key: headerGroup.id }, headerGroup.headers.map(header => {
3379
+ return (h("th", { key: header.id }, header.isPlaceholder
3380
+ ? null
3381
+ : this.renderTemplate(this.headerTemplateCache.get(header.id), {}) || header.column.columnDef.header));
3382
+ }))))
3383
+ : 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 => {
3225
3384
  const rowId = row.id;
3226
3385
  const visibleCells = row === null || row === void 0 ? void 0 : row.getVisibleCells();
3227
- const cells = visibleCells === null || visibleCells === void 0 ? void 0 : visibleCells.map(cell => {
3386
+ return (h("tr", { key: rowId }, visibleCells.map(cell => {
3387
+ const cellAccessors = cell.column.id;
3228
3388
  const cellValue = cell.getValue();
3229
- return `<td key="${cell.id}" data-row-id="${rowId}">${cellValue}</td>`;
3230
- }).join('');
3231
- return h("tr", { key: rowId, innerHTML: cells });
3232
- }))))), h("slot", { key: '58df089ceaabef8b2e7e139322e47be986cce063', name: "after" })));
3389
+ return (h("td", { key: cell.id, "data-row-id": rowId }, this.renderTemplate(this.templateCache.get(cellAccessors), cellValue, row) ||
3390
+ (cellValue !== null && cellValue !== void 0 ? cellValue : this.fallbackValue)));
3391
+ })));
3392
+ }))))), h("slot", { key: 'e80f9b8a5dbda4c05b719a99c173e2f106449668', name: "after" })));
3233
3393
  }
3234
3394
  get el() { return getElement(this); }
3235
3395
  static get watchers() { return {