@nova-design-system/nova-webcomponents 3.0.0-beta.27 → 3.0.0-beta.28

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 (403) hide show
  1. package/LICENSE.MD +61 -108
  2. package/dist/blazor-docs.json +1305 -194
  3. package/dist/cjs/index-c50face0.js +48 -0
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/native.cjs.js +1 -1
  6. package/dist/cjs/nv-datagrid.cjs.entry.js +3226 -0
  7. package/dist/cjs/nv-datagrid.cjs.entry.js.map +1 -0
  8. package/dist/cjs/nv-datagridbody.cjs.entry.js +24 -0
  9. package/dist/cjs/nv-datagridbody.cjs.entry.js.map +1 -0
  10. package/dist/cjs/nv-datagridcolumn.cjs.entry.js +27 -0
  11. package/dist/cjs/nv-datagridcolumn.cjs.entry.js.map +1 -0
  12. package/dist/cjs/nv-datagriddatacell.cjs.entry.js +26 -0
  13. package/dist/cjs/nv-datagriddatacell.cjs.entry.js.map +1 -0
  14. package/dist/cjs/nv-datagridhead.cjs.entry.js +24 -0
  15. package/dist/cjs/nv-datagridhead.cjs.entry.js.map +1 -0
  16. package/dist/cjs/nv-datagridrow.cjs.entry.js +24 -0
  17. package/dist/cjs/nv-datagridrow.cjs.entry.js.map +1 -0
  18. package/dist/cjs/nv-fieldcheckbox.cjs.entry.js +4 -4
  19. package/dist/cjs/nv-fielddropdown.cjs.entry.js +3 -3
  20. package/dist/cjs/nv-fielddropdownitem.cjs.entry.js +1 -1
  21. package/dist/cjs/nv-fieldnumber.cjs.entry.js +3 -3
  22. package/dist/cjs/nv-fieldnumber.cjs.entry.js.map +1 -1
  23. package/dist/cjs/nv-fieldpassword.cjs.entry.js +3 -3
  24. package/dist/cjs/nv-fieldpassword.cjs.entry.js.map +1 -1
  25. package/dist/cjs/nv-fieldradio.cjs.entry.js +3 -3
  26. package/dist/cjs/nv-fieldradio.cjs.entry.js.map +1 -1
  27. package/dist/cjs/nv-fieldselect.cjs.entry.js +5 -5
  28. package/dist/cjs/nv-fieldselect.cjs.entry.js.map +1 -1
  29. package/dist/cjs/nv-fieldtext.cjs.entry.js +3 -3
  30. package/dist/cjs/nv-fieldtextarea.cjs.entry.js +4 -4
  31. package/dist/cjs/nv-fieldtextarea.cjs.entry.js.map +1 -1
  32. package/dist/cjs/nv-fieldtoggle.cjs.entry.js +8 -4
  33. package/dist/cjs/nv-fieldtoggle.cjs.entry.js.map +1 -1
  34. package/dist/cjs/nv-icon.cjs.entry.js +1 -1
  35. package/dist/cjs/nv-icon.cjs.entry.js.map +1 -1
  36. package/dist/cjs/nv-iconbutton.cjs.entry.js +1 -1
  37. package/dist/cjs/nv-iconbutton.cjs.entry.js.map +1 -1
  38. package/dist/cjs/nv-loader.cjs.entry.js +1 -1
  39. package/dist/cjs/nv-loader.cjs.entry.js.map +1 -1
  40. package/dist/cjs/nv-menu.cjs.entry.js +1 -1
  41. package/dist/cjs/nv-menuitem.cjs.entry.js +1 -1
  42. package/dist/cjs/nv-menuitem.cjs.entry.js.map +1 -1
  43. package/dist/cjs/nv-popover.cjs.entry.js +1 -1
  44. package/dist/cjs/nv-popover.cjs.entry.js.map +1 -1
  45. package/dist/cjs/nv-row.cjs.entry.js +1 -1
  46. package/dist/cjs/nv-row.cjs.entry.js.map +1 -1
  47. package/dist/cjs/nv-stack.cjs.entry.js +1 -1
  48. package/dist/cjs/nv-stack.cjs.entry.js.map +1 -1
  49. package/dist/cjs/nv-table.cjs.entry.js +134 -0
  50. package/dist/cjs/nv-table.cjs.entry.js.map +1 -0
  51. package/dist/cjs/nv-tablebody.cjs.entry.js +24 -0
  52. package/dist/cjs/nv-tablebody.cjs.entry.js.map +1 -0
  53. package/dist/cjs/nv-tablecolumn.cjs.entry.js +30 -0
  54. package/dist/cjs/nv-tablecolumn.cjs.entry.js.map +1 -0
  55. package/dist/cjs/nv-tabledatacell.cjs.entry.js +28 -0
  56. package/dist/cjs/nv-tabledatacell.cjs.entry.js.map +1 -0
  57. package/dist/cjs/nv-tablehead.cjs.entry.js +24 -0
  58. package/dist/cjs/nv-tablehead.cjs.entry.js.map +1 -0
  59. package/dist/cjs/nv-tablerow.cjs.entry.js +24 -0
  60. package/dist/cjs/nv-tablerow.cjs.entry.js.map +1 -0
  61. package/dist/cjs/nv-tooltip.cjs.entry.js +1 -1
  62. package/dist/cjs/nv-tooltip.cjs.entry.js.map +1 -1
  63. package/dist/collection/collection-manifest.json +12 -0
  64. package/dist/collection/components/nv-datagrid/nv-datagrid.css +5 -0
  65. package/dist/collection/components/nv-datagrid/nv-datagrid.docs.js +225 -0
  66. package/dist/collection/components/nv-datagrid/nv-datagrid.docs.js.map +1 -0
  67. package/dist/collection/components/nv-datagrid/nv-datagrid.js +441 -0
  68. package/dist/collection/components/nv-datagrid/nv-datagrid.js.map +1 -0
  69. package/dist/collection/components/nv-datagridbody/nv-datagridbody.css +0 -0
  70. package/dist/collection/components/nv-datagridbody/nv-datagridbody.docs.js +8 -0
  71. package/dist/collection/components/nv-datagridbody/nv-datagridbody.docs.js.map +1 -0
  72. package/dist/collection/components/nv-datagridbody/nv-datagridbody.js +23 -0
  73. package/dist/collection/components/nv-datagridbody/nv-datagridbody.js.map +1 -0
  74. package/dist/collection/components/nv-datagridcolumn/nv-datagridcolumn.css +0 -0
  75. package/dist/collection/components/nv-datagridcolumn/nv-datagridcolumn.docs.js +6 -0
  76. package/dist/collection/components/nv-datagridcolumn/nv-datagridcolumn.docs.js.map +1 -0
  77. package/dist/collection/components/nv-datagridcolumn/nv-datagridcolumn.js +66 -0
  78. package/dist/collection/components/nv-datagridcolumn/nv-datagridcolumn.js.map +1 -0
  79. package/dist/collection/components/nv-datagriddatacell/nv-datagriddatacell.css +0 -0
  80. package/dist/collection/components/nv-datagriddatacell/nv-datagriddatacell.docs.js +6 -0
  81. package/dist/collection/components/nv-datagriddatacell/nv-datagriddatacell.docs.js.map +1 -0
  82. package/dist/collection/components/nv-datagriddatacell/nv-datagriddatacell.js +51 -0
  83. package/dist/collection/components/nv-datagriddatacell/nv-datagriddatacell.js.map +1 -0
  84. package/dist/collection/components/nv-datagridhead/nv-datagridhead.css +0 -0
  85. package/dist/collection/components/nv-datagridhead/nv-datagridhead.docs.js +8 -0
  86. package/dist/collection/components/nv-datagridhead/nv-datagridhead.docs.js.map +1 -0
  87. package/dist/collection/components/nv-datagridhead/nv-datagridhead.js +23 -0
  88. package/dist/collection/components/nv-datagridhead/nv-datagridhead.js.map +1 -0
  89. package/dist/collection/components/nv-datagridrow/nv-datagridrow.css +0 -0
  90. package/dist/collection/components/nv-datagridrow/nv-datagridrow.docs.js +8 -0
  91. package/dist/collection/components/nv-datagridrow/nv-datagridrow.docs.js.map +1 -0
  92. package/dist/collection/components/nv-datagridrow/nv-datagridrow.js +23 -0
  93. package/dist/collection/components/nv-datagridrow/nv-datagridrow.js.map +1 -0
  94. package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.js +4 -4
  95. package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js +3 -3
  96. package/dist/collection/components/nv-fielddropdownitem/DropdownItemSelectedEventDetail.js.map +1 -1
  97. package/dist/collection/components/nv-fielddropdownitem/nv-fielddropdownitem.js +1 -1
  98. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js +3 -3
  99. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js.map +1 -1
  100. package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.js +3 -3
  101. package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.js.map +1 -1
  102. package/dist/collection/components/nv-fieldradio/nv-fieldradio.js +3 -3
  103. package/dist/collection/components/nv-fieldradio/nv-fieldradio.js.map +1 -1
  104. package/dist/collection/components/nv-fieldselect/nv-fieldselect.js +5 -5
  105. package/dist/collection/components/nv-fieldselect/nv-fieldselect.js.map +1 -1
  106. package/dist/collection/components/nv-fieldtext/nv-fieldtext.js +3 -3
  107. package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.js +7 -7
  108. package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.js.map +1 -1
  109. package/dist/collection/components/nv-fieldtoggle/nv-fieldtoggle.js +8 -4
  110. package/dist/collection/components/nv-fieldtoggle/nv-fieldtoggle.js.map +1 -1
  111. package/dist/collection/components/nv-icon/nv-icon.js +1 -1
  112. package/dist/collection/components/nv-icon/nv-icon.js.map +1 -1
  113. package/dist/collection/components/nv-iconbutton/nv-iconbutton.js +1 -1
  114. package/dist/collection/components/nv-iconbutton/nv-iconbutton.js.map +1 -1
  115. package/dist/collection/components/nv-loader/nv-loader.js +1 -1
  116. package/dist/collection/components/nv-loader/nv-loader.js.map +1 -1
  117. package/dist/collection/components/nv-menu/nv-menu.js +1 -1
  118. package/dist/collection/components/nv-menuitem/nv-menuitem.js +1 -1
  119. package/dist/collection/components/nv-menuitem/nv-menuitem.js.map +1 -1
  120. package/dist/collection/components/nv-popover/nv-popover.js +1 -1
  121. package/dist/collection/components/nv-popover/nv-popover.js.map +1 -1
  122. package/dist/collection/components/nv-row/nv-row.js +1 -1
  123. package/dist/collection/components/nv-row/nv-row.js.map +1 -1
  124. package/dist/collection/components/nv-stack/nv-stack.js +1 -1
  125. package/dist/collection/components/nv-stack/nv-stack.js.map +1 -1
  126. package/dist/collection/components/nv-table/nv-table.css +5 -0
  127. package/dist/collection/components/nv-table/nv-table.docs.js +178 -0
  128. package/dist/collection/components/nv-table/nv-table.docs.js.map +1 -0
  129. package/dist/collection/components/nv-table/nv-table.js +287 -0
  130. package/dist/collection/components/nv-table/nv-table.js.map +1 -0
  131. package/dist/collection/components/nv-tablebody/nv-tablebody.css +0 -0
  132. package/dist/collection/components/nv-tablebody/nv-tablebody.docs.js +8 -0
  133. package/dist/collection/components/nv-tablebody/nv-tablebody.docs.js.map +1 -0
  134. package/dist/collection/components/nv-tablebody/nv-tablebody.js +23 -0
  135. package/dist/collection/components/nv-tablebody/nv-tablebody.js.map +1 -0
  136. package/dist/collection/components/nv-tablecolumn/nv-tablecolumn.css +0 -0
  137. package/dist/collection/components/nv-tablecolumn/nv-tablecolumn.docs.js +6 -0
  138. package/dist/collection/components/nv-tablecolumn/nv-tablecolumn.docs.js.map +1 -0
  139. package/dist/collection/components/nv-tablecolumn/nv-tablecolumn.js +131 -0
  140. package/dist/collection/components/nv-tablecolumn/nv-tablecolumn.js.map +1 -0
  141. package/dist/collection/components/nv-tabledatacell/nv-tabledatacell.css +0 -0
  142. package/dist/collection/components/nv-tabledatacell/nv-tabledatacell.docs.js +6 -0
  143. package/dist/collection/components/nv-tabledatacell/nv-tabledatacell.docs.js.map +1 -0
  144. package/dist/collection/components/nv-tabledatacell/nv-tabledatacell.js +95 -0
  145. package/dist/collection/components/nv-tabledatacell/nv-tabledatacell.js.map +1 -0
  146. package/dist/collection/components/nv-tablehead/nv-tablehead.css +0 -0
  147. package/dist/collection/components/nv-tablehead/nv-tablehead.docs.js +8 -0
  148. package/dist/collection/components/nv-tablehead/nv-tablehead.docs.js.map +1 -0
  149. package/dist/collection/components/nv-tablehead/nv-tablehead.js +23 -0
  150. package/dist/collection/components/nv-tablehead/nv-tablehead.js.map +1 -0
  151. package/dist/collection/components/nv-tablerow/nv-tablerow.css +0 -0
  152. package/dist/collection/components/nv-tablerow/nv-tablerow.docs.js +8 -0
  153. package/dist/collection/components/nv-tablerow/nv-tablerow.docs.js.map +1 -0
  154. package/dist/collection/components/nv-tablerow/nv-tablerow.js +23 -0
  155. package/dist/collection/components/nv-tablerow/nv-tablerow.js.map +1 -0
  156. package/dist/collection/components/nv-tooltip/nv-tooltip.js +1 -1
  157. package/dist/collection/components/nv-tooltip/nv-tooltip.js.map +1 -1
  158. package/dist/collection/interfaces/Column.js +2 -0
  159. package/dist/collection/interfaces/Column.js.map +1 -0
  160. package/dist/components/nv-alert.js +1 -1
  161. package/dist/components/nv-avatar.js +1 -1
  162. package/dist/components/nv-badge.js +1 -1
  163. package/dist/components/nv-button.js +1 -1
  164. package/dist/components/nv-datagrid.d.ts +11 -0
  165. package/dist/components/nv-datagrid.js +3259 -0
  166. package/dist/components/nv-datagrid.js.map +1 -0
  167. package/dist/components/nv-datagridbody.d.ts +11 -0
  168. package/dist/components/nv-datagridbody.js +38 -0
  169. package/dist/components/nv-datagridbody.js.map +1 -0
  170. package/dist/components/nv-datagridcolumn.d.ts +11 -0
  171. package/dist/components/nv-datagridcolumn.js +44 -0
  172. package/dist/components/nv-datagridcolumn.js.map +1 -0
  173. package/dist/components/nv-datagriddatacell.d.ts +11 -0
  174. package/dist/components/nv-datagriddatacell.js +42 -0
  175. package/dist/components/nv-datagriddatacell.js.map +1 -0
  176. package/dist/components/nv-datagridhead.d.ts +11 -0
  177. package/dist/components/nv-datagridhead.js +38 -0
  178. package/dist/components/nv-datagridhead.js.map +1 -0
  179. package/dist/components/nv-datagridrow.d.ts +11 -0
  180. package/dist/components/nv-datagridrow.js +38 -0
  181. package/dist/components/nv-datagridrow.js.map +1 -0
  182. package/dist/components/nv-fieldcheckbox.js +4 -4
  183. package/dist/components/nv-fielddropdown.js +8 -8
  184. package/dist/components/nv-fielddropdownitem.js +1 -1
  185. package/dist/components/nv-fieldnumber.js +4 -4
  186. package/dist/components/nv-fieldnumber.js.map +1 -1
  187. package/dist/components/nv-fieldpassword.js +6 -6
  188. package/dist/components/nv-fieldpassword.js.map +1 -1
  189. package/dist/components/nv-fieldradio.js +3 -3
  190. package/dist/components/nv-fieldradio.js.map +1 -1
  191. package/dist/components/nv-fieldselect.js +6 -6
  192. package/dist/components/nv-fieldselect.js.map +1 -1
  193. package/dist/components/nv-fieldtext.js +4 -4
  194. package/dist/components/nv-fieldtextarea.js +5 -5
  195. package/dist/components/nv-fieldtextarea.js.map +1 -1
  196. package/dist/components/nv-fieldtoggle.js +8 -4
  197. package/dist/components/nv-fieldtoggle.js.map +1 -1
  198. package/dist/components/nv-icon.js +1 -1
  199. package/dist/components/nv-iconbutton.js +1 -1
  200. package/dist/components/nv-loader.js +1 -1
  201. package/dist/components/nv-menu.js +2 -2
  202. package/dist/components/nv-menuitem.js +2 -2
  203. package/dist/components/nv-menuitem.js.map +1 -1
  204. package/dist/components/nv-popover.js +1 -1
  205. package/dist/components/nv-row.js +1 -1
  206. package/dist/components/nv-row.js.map +1 -1
  207. package/dist/components/nv-stack.js +1 -1
  208. package/dist/components/nv-stack.js.map +1 -1
  209. package/dist/components/nv-table.d.ts +11 -0
  210. package/dist/components/nv-table.js +164 -0
  211. package/dist/components/nv-table.js.map +1 -0
  212. package/dist/components/nv-tablebody.d.ts +11 -0
  213. package/dist/components/nv-tablebody.js +38 -0
  214. package/dist/components/nv-tablebody.js.map +1 -0
  215. package/dist/components/nv-tablecolumn.d.ts +11 -0
  216. package/dist/components/nv-tablecolumn.js +50 -0
  217. package/dist/components/nv-tablecolumn.js.map +1 -0
  218. package/dist/components/nv-tabledatacell.d.ts +11 -0
  219. package/dist/components/nv-tabledatacell.js +46 -0
  220. package/dist/components/nv-tabledatacell.js.map +1 -0
  221. package/dist/components/nv-tablehead.d.ts +11 -0
  222. package/dist/components/nv-tablehead.js +38 -0
  223. package/dist/components/nv-tablehead.js.map +1 -0
  224. package/dist/components/nv-tablerow.d.ts +11 -0
  225. package/dist/components/nv-tablerow.js +38 -0
  226. package/dist/components/nv-tablerow.js.map +1 -0
  227. package/dist/components/nv-tooltip.js +2 -2
  228. package/dist/components/nv-tooltip.js.map +1 -1
  229. package/dist/components/{p-76eb28db.js → p-45405075.js} +3 -3
  230. package/dist/components/{p-76eb28db.js.map → p-45405075.js.map} +1 -1
  231. package/dist/components/{p-9647924f.js → p-45c63143.js} +4 -4
  232. package/dist/components/{p-9647924f.js.map → p-45c63143.js.map} +1 -1
  233. package/dist/components/{p-9be1ebd4.js → p-689a7b38.js} +2 -2
  234. package/dist/components/{p-9be1ebd4.js.map → p-689a7b38.js.map} +1 -1
  235. package/dist/components/{p-ff97f99e.js → p-89fb6636.js} +2 -2
  236. package/dist/components/{p-ff97f99e.js.map → p-89fb6636.js.map} +1 -1
  237. package/dist/components/{p-69cc7819.js → p-8c8cf8ea.js} +2 -2
  238. package/dist/components/{p-69cc7819.js.map → p-8c8cf8ea.js.map} +1 -1
  239. package/dist/docs.json +1322 -278
  240. package/dist/esm/index-e7b35c14.js +48 -0
  241. package/dist/esm/loader.js +1 -1
  242. package/dist/esm/native.js +1 -1
  243. package/dist/esm/nv-datagrid.entry.js +3222 -0
  244. package/dist/esm/nv-datagrid.entry.js.map +1 -0
  245. package/dist/esm/nv-datagridbody.entry.js +20 -0
  246. package/dist/esm/nv-datagridbody.entry.js.map +1 -0
  247. package/dist/esm/nv-datagridcolumn.entry.js +23 -0
  248. package/dist/esm/nv-datagridcolumn.entry.js.map +1 -0
  249. package/dist/esm/nv-datagriddatacell.entry.js +22 -0
  250. package/dist/esm/nv-datagriddatacell.entry.js.map +1 -0
  251. package/dist/esm/nv-datagridhead.entry.js +20 -0
  252. package/dist/esm/nv-datagridhead.entry.js.map +1 -0
  253. package/dist/esm/nv-datagridrow.entry.js +20 -0
  254. package/dist/esm/nv-datagridrow.entry.js.map +1 -0
  255. package/dist/esm/nv-fieldcheckbox.entry.js +4 -4
  256. package/dist/esm/nv-fielddropdown.entry.js +3 -3
  257. package/dist/esm/nv-fielddropdownitem.entry.js +1 -1
  258. package/dist/esm/nv-fieldnumber.entry.js +3 -3
  259. package/dist/esm/nv-fieldnumber.entry.js.map +1 -1
  260. package/dist/esm/nv-fieldpassword.entry.js +3 -3
  261. package/dist/esm/nv-fieldpassword.entry.js.map +1 -1
  262. package/dist/esm/nv-fieldradio.entry.js +3 -3
  263. package/dist/esm/nv-fieldradio.entry.js.map +1 -1
  264. package/dist/esm/nv-fieldselect.entry.js +5 -5
  265. package/dist/esm/nv-fieldselect.entry.js.map +1 -1
  266. package/dist/esm/nv-fieldtext.entry.js +3 -3
  267. package/dist/esm/nv-fieldtextarea.entry.js +4 -4
  268. package/dist/esm/nv-fieldtextarea.entry.js.map +1 -1
  269. package/dist/esm/nv-fieldtoggle.entry.js +8 -4
  270. package/dist/esm/nv-fieldtoggle.entry.js.map +1 -1
  271. package/dist/esm/nv-icon.entry.js +1 -1
  272. package/dist/esm/nv-icon.entry.js.map +1 -1
  273. package/dist/esm/nv-iconbutton.entry.js +1 -1
  274. package/dist/esm/nv-iconbutton.entry.js.map +1 -1
  275. package/dist/esm/nv-loader.entry.js +1 -1
  276. package/dist/esm/nv-loader.entry.js.map +1 -1
  277. package/dist/esm/nv-menu.entry.js +1 -1
  278. package/dist/esm/nv-menuitem.entry.js +1 -1
  279. package/dist/esm/nv-menuitem.entry.js.map +1 -1
  280. package/dist/esm/nv-popover.entry.js +1 -1
  281. package/dist/esm/nv-popover.entry.js.map +1 -1
  282. package/dist/esm/nv-row.entry.js +1 -1
  283. package/dist/esm/nv-row.entry.js.map +1 -1
  284. package/dist/esm/nv-stack.entry.js +1 -1
  285. package/dist/esm/nv-stack.entry.js.map +1 -1
  286. package/dist/esm/nv-table.entry.js +130 -0
  287. package/dist/esm/nv-table.entry.js.map +1 -0
  288. package/dist/esm/nv-tablebody.entry.js +20 -0
  289. package/dist/esm/nv-tablebody.entry.js.map +1 -0
  290. package/dist/esm/nv-tablecolumn.entry.js +26 -0
  291. package/dist/esm/nv-tablecolumn.entry.js.map +1 -0
  292. package/dist/esm/nv-tabledatacell.entry.js +24 -0
  293. package/dist/esm/nv-tabledatacell.entry.js.map +1 -0
  294. package/dist/esm/nv-tablehead.entry.js +20 -0
  295. package/dist/esm/nv-tablehead.entry.js.map +1 -0
  296. package/dist/esm/nv-tablerow.entry.js +20 -0
  297. package/dist/esm/nv-tablerow.entry.js.map +1 -0
  298. package/dist/esm/nv-tooltip.entry.js +1 -1
  299. package/dist/esm/nv-tooltip.entry.js.map +1 -1
  300. package/dist/native/native.css +1 -1
  301. package/dist/native/native.esm.js +1 -1
  302. package/dist/native/native.esm.js.map +1 -1
  303. package/dist/native/p-01be802d.entry.js +2 -0
  304. package/dist/native/p-01be802d.entry.js.map +1 -0
  305. package/dist/native/{p-71fbdb92.entry.js → p-0cfe2048.entry.js} +2 -2
  306. package/dist/native/{p-71fbdb92.entry.js.map → p-0cfe2048.entry.js.map} +1 -1
  307. package/dist/native/{p-4a43953f.entry.js → p-13070761.entry.js} +2 -2
  308. package/dist/native/{p-000749ae.entry.js → p-1edb76e1.entry.js} +2 -2
  309. package/dist/native/{p-000749ae.entry.js.map → p-1edb76e1.entry.js.map} +1 -1
  310. package/dist/native/{p-c16a4fbe.entry.js → p-20c7fc4d.entry.js} +2 -2
  311. package/dist/native/p-20c7fc4d.entry.js.map +1 -0
  312. package/dist/native/p-28cf537b.entry.js +2 -0
  313. package/dist/native/{p-4b550f95.entry.js.map → p-28cf537b.entry.js.map} +1 -1
  314. package/dist/native/p-36d5158c.entry.js +13 -0
  315. package/dist/native/p-36d5158c.entry.js.map +1 -0
  316. package/dist/native/{p-396b65bb.entry.js → p-38817aa3.entry.js} +2 -2
  317. package/dist/native/{p-396b65bb.entry.js.map → p-38817aa3.entry.js.map} +1 -1
  318. package/dist/native/{p-bb243eaf.entry.js → p-39dbb15b.entry.js} +2 -2
  319. package/dist/native/p-4b926563.entry.js +2 -0
  320. package/dist/native/p-4b926563.entry.js.map +1 -0
  321. package/dist/native/{p-d5c24d8f.entry.js → p-4e351d8e.entry.js} +2 -2
  322. package/dist/native/p-671699bf.entry.js +2 -0
  323. package/dist/native/p-671699bf.entry.js.map +1 -0
  324. package/dist/native/{p-25e1bc94.entry.js → p-75b5fdce.entry.js} +2 -2
  325. package/dist/native/{p-25e1bc94.entry.js.map → p-75b5fdce.entry.js.map} +1 -1
  326. package/dist/native/p-7a7b9b95.entry.js +2 -0
  327. package/dist/native/p-7a7b9b95.entry.js.map +1 -0
  328. package/dist/native/{p-5172aa15.entry.js → p-808cf007.entry.js} +2 -2
  329. package/dist/native/{p-23b20b80.entry.js → p-81256924.entry.js} +2 -2
  330. package/dist/native/{p-23b20b80.entry.js.map → p-81256924.entry.js.map} +1 -1
  331. package/dist/native/{p-8de6396f.entry.js → p-844f4878.entry.js} +2 -2
  332. package/dist/native/{p-8de6396f.entry.js.map → p-844f4878.entry.js.map} +1 -1
  333. package/dist/native/p-861f91d3.entry.js +2 -0
  334. package/dist/native/p-861f91d3.entry.js.map +1 -0
  335. package/dist/native/p-9221f72a.entry.js +2 -0
  336. package/dist/native/p-9221f72a.entry.js.map +1 -0
  337. package/dist/native/p-982e474f.entry.js +2 -0
  338. package/dist/native/p-982e474f.entry.js.map +1 -0
  339. package/dist/native/p-99850272.entry.js +2 -0
  340. package/dist/native/p-99850272.entry.js.map +1 -0
  341. package/dist/native/{p-d4e0b6e1.entry.js → p-bdab3562.entry.js} +2 -2
  342. package/dist/native/{p-4fae1b2c.entry.js → p-c1c661a0.entry.js} +2 -2
  343. package/dist/native/p-c1c661a0.entry.js.map +1 -0
  344. package/dist/native/{p-89468485.entry.js → p-c4f7e36d.entry.js} +2 -2
  345. package/dist/native/{p-89468485.entry.js.map → p-c4f7e36d.entry.js.map} +1 -1
  346. package/dist/native/{p-20ea1b61.entry.js → p-dba9c57c.entry.js} +2 -2
  347. package/dist/native/{p-20ea1b61.entry.js.map → p-dba9c57c.entry.js.map} +1 -1
  348. package/dist/native/p-dbae3920.entry.js +2 -0
  349. package/dist/native/{p-0d335326.entry.js.map → p-dbae3920.entry.js.map} +1 -1
  350. package/dist/native/p-de6e0e1f.entry.js +2 -0
  351. package/dist/native/p-de6e0e1f.entry.js.map +1 -0
  352. package/dist/native/{p-aeaa326f.entry.js → p-e2df46e2.entry.js} +2 -2
  353. package/dist/native/{p-aeaa326f.entry.js.map → p-e2df46e2.entry.js.map} +1 -1
  354. package/dist/native/p-e842220b.entry.js +2 -0
  355. package/dist/native/p-e842220b.entry.js.map +1 -0
  356. package/dist/native/{p-a016e4b6.entry.js → p-ea4092a7.entry.js} +2 -2
  357. package/dist/native/{p-a016e4b6.entry.js.map → p-ea4092a7.entry.js.map} +1 -1
  358. package/dist/native/p-f7b96c42.entry.js +2 -0
  359. package/dist/native/p-f7b96c42.entry.js.map +1 -0
  360. package/dist/types/components/nv-datagrid/nv-datagrid.d.ts +87 -0
  361. package/dist/types/components/nv-datagrid/nv-datagrid.docs.d.ts +4 -0
  362. package/dist/types/components/nv-datagridbody/nv-datagridbody.d.ts +7 -0
  363. package/dist/types/components/nv-datagridbody/nv-datagridbody.docs.d.ts +4 -0
  364. package/dist/types/components/nv-datagridcolumn/nv-datagridcolumn.d.ts +16 -0
  365. package/dist/types/components/nv-datagridcolumn/nv-datagridcolumn.docs.d.ts +4 -0
  366. package/dist/types/components/nv-datagriddatacell/nv-datagriddatacell.d.ts +14 -0
  367. package/dist/types/components/nv-datagriddatacell/nv-datagriddatacell.docs.d.ts +4 -0
  368. package/dist/types/components/nv-datagridhead/nv-datagridhead.d.ts +7 -0
  369. package/dist/types/components/nv-datagridhead/nv-datagridhead.docs.d.ts +4 -0
  370. package/dist/types/components/nv-datagridrow/nv-datagridrow.d.ts +7 -0
  371. package/dist/types/components/nv-datagridrow/nv-datagridrow.docs.d.ts +4 -0
  372. package/dist/types/components/nv-fielddropdownitem/DropdownItemSelectedEventDetail.d.ts +12 -0
  373. package/dist/types/components/nv-fieldtextarea/nv-fieldtextarea.d.ts +2 -2
  374. package/dist/types/components/nv-fieldtoggle/nv-fieldtoggle.d.ts +4 -4
  375. package/dist/types/components/nv-menuitem/nv-menuitem.d.ts +3 -0
  376. package/dist/types/components/nv-table/nv-table.d.ts +72 -0
  377. package/dist/types/components/nv-table/nv-table.docs.d.ts +4 -0
  378. package/dist/types/components/nv-tablebody/nv-tablebody.d.ts +7 -0
  379. package/dist/types/components/nv-tablebody/nv-tablebody.docs.d.ts +4 -0
  380. package/dist/types/components/nv-tablecolumn/nv-tablecolumn.d.ts +51 -0
  381. package/dist/types/components/nv-tablecolumn/nv-tablecolumn.docs.d.ts +4 -0
  382. package/dist/types/components/nv-tabledatacell/nv-tabledatacell.d.ts +30 -0
  383. package/dist/types/components/nv-tabledatacell/nv-tabledatacell.docs.d.ts +4 -0
  384. package/dist/types/components/nv-tablehead/nv-tablehead.d.ts +7 -0
  385. package/dist/types/components/nv-tablehead/nv-tablehead.docs.d.ts +4 -0
  386. package/dist/types/components/nv-tablerow/nv-tablerow.d.ts +7 -0
  387. package/dist/types/components/nv-tablerow/nv-tablerow.docs.d.ts +4 -0
  388. package/dist/types/components.d.ts +408 -8
  389. package/dist/types/interfaces/Column.d.ts +13 -0
  390. package/dist/types/nova-docs.d.ts +18 -0
  391. package/dist/vscode-data.json +3659 -0
  392. package/hydrate/index.js +3746 -44
  393. package/hydrate/index.mjs +3746 -44
  394. package/package.json +1 -1
  395. package/dist/native/p-0d335326.entry.js +0 -2
  396. package/dist/native/p-4b550f95.entry.js +0 -2
  397. package/dist/native/p-4fae1b2c.entry.js.map +0 -1
  398. package/dist/native/p-c16a4fbe.entry.js.map +0 -1
  399. /package/dist/native/{p-4a43953f.entry.js.map → p-13070761.entry.js.map} +0 -0
  400. /package/dist/native/{p-bb243eaf.entry.js.map → p-39dbb15b.entry.js.map} +0 -0
  401. /package/dist/native/{p-d5c24d8f.entry.js.map → p-4e351d8e.entry.js.map} +0 -0
  402. /package/dist/native/{p-5172aa15.entry.js.map → p-808cf007.entry.js.map} +0 -0
  403. /package/dist/native/{p-d4e0b6e1.entry.js.map → p-bdab3562.entry.js.map} +0 -0
@@ -0,0 +1,441 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { h, Host } from "@stencil/core";
3
+ import { createTable, getCoreRowModel, createColumnHelper, } from "@tanstack/table-core";
4
+ /**
5
+ * A flexible data grid component powered by `@tanstack/table-core`.
6
+ * @slot default - Use this slot to insert HTML into the data grid content.
7
+ * @slot head - Use this slot to insert HTML into the data grid header.
8
+ * @slot before - Use this slot to insert HTML before the data grid.
9
+ * @slot after - Use this slot to insert HTML after the data grid.
10
+ * @slot body - Use this slot to insert HTML into the data grid body.
11
+ */
12
+ export class NvDatagrid {
13
+ constructor() {
14
+ this.table = null;
15
+ this.parsedColumns = [];
16
+ this.parsedData = [];
17
+ this.hasSlotHead = false;
18
+ this.hasSlotBody = false;
19
+ this.columns = [];
20
+ this.columnsJson = undefined;
21
+ this.data = [];
22
+ this.dataJson = undefined;
23
+ this.noDataMessage = 'No data available';
24
+ this.noColumnsNoDataMessage = 'No data or columns available to display.';
25
+ }
26
+ //#endregion PROPERTIES
27
+ /****************************************************************************/
28
+ //#region WATCHERS
29
+ parseColumns(newValue, oldValue) {
30
+ this.parseColumnsArray(newValue, oldValue);
31
+ }
32
+ parseJsonColumns(newValue) {
33
+ try {
34
+ const newItems = newValue ? JSON.parse(newValue) : [];
35
+ this.parseColumnsArray(newItems, this.parsedColumns);
36
+ }
37
+ catch (e) {
38
+ console.error('Invalid JSON format for columnsJson:', e.message);
39
+ this.parsedColumns = [];
40
+ }
41
+ }
42
+ parseData(newValue, oldValue) {
43
+ this.parseDataArray(newValue, oldValue);
44
+ }
45
+ parseJsonData(newValue) {
46
+ try {
47
+ const newItems = newValue ? JSON.parse(newValue) : [];
48
+ this.parseDataArray(newItems, this.parsedData);
49
+ }
50
+ catch (e) {
51
+ console.error('Invalid JSON format for dataJson:', e.message);
52
+ this.parsedData = [];
53
+ }
54
+ }
55
+ handleParsedChange() {
56
+ this.initializeTable();
57
+ }
58
+ //#endregion WATCHERS
59
+ /****************************************************************************/
60
+ //#region METHODS
61
+ initializeTable() {
62
+ // Clear the previous table instance (if any)
63
+ this.table = null;
64
+ // Set default options for the table
65
+ const tableOptions = {
66
+ columns: [],
67
+ data: [],
68
+ getCoreRowModel: getCoreRowModel(),
69
+ debugAll: true,
70
+ onStateChange: state => console.log('Table state changed:', state),
71
+ renderFallbackValue: 'No rows to display',
72
+ state: {
73
+ sorting: [], // Default: no active sorting
74
+ columnVisibility: {}, // Default: all columns visible
75
+ columnFilters: [], // Default: no column filters
76
+ columnPinning: {}, // Default: no column pinning
77
+ columnSizing: {}, // Default: no column sizing
78
+ columnOrder: [], // Default: as defined in the `columns`
79
+ pagination: null, // Default: no pagination
80
+ grouping: [], // Default: no active grouping
81
+ expanded: {}, // Default: no expanded rows
82
+ rowPinning: {}, // Default: no row pinning
83
+ rowSelection: {}, // Default: no row selection
84
+ globalFilter: null, // Default: no global filter
85
+ columnSizingInfo: {
86
+ columnSizingStart: null,
87
+ deltaOffset: null,
88
+ deltaPercentage: null,
89
+ isResizingColumn: false,
90
+ startOffset: null,
91
+ startSize: null,
92
+ }, // Default: no column sizing info
93
+ },
94
+ };
95
+ // Validate and generate column definitions
96
+ const validColumns = this.parsedColumns.filter(column => (column === null || column === void 0 ? void 0 : column.accessor) && (column === null || column === void 0 ? void 0 : column.header));
97
+ // Helper function to generate column definitions
98
+ const generateColumns = () => {
99
+ const columnHelper = createColumnHelper();
100
+ if (validColumns.length > 0) {
101
+ // Use defined columns
102
+ return validColumns.map(column => columnHelper.accessor(column.accessor, {
103
+ header: column.header,
104
+ cell: info => info.getValue(),
105
+ }));
106
+ }
107
+ else if (tableOptions.data && tableOptions.data.length > 0) {
108
+ // Generate columns from data keys
109
+ const sampleRow = tableOptions.data[0];
110
+ return Object.keys(sampleRow).map(key => columnHelper.accessor(key, {
111
+ header: key.charAt(0).toUpperCase() + key.slice(1), // Capitalize key for header
112
+ cell: info => info.getValue(),
113
+ }));
114
+ }
115
+ else {
116
+ // No columns and no data
117
+ return [];
118
+ }
119
+ };
120
+ const setTableData = () => {
121
+ if (this.parsedData &&
122
+ Array.isArray(this.parsedData) &&
123
+ this.parsedData.length > 0) {
124
+ return [...this.parsedData];
125
+ }
126
+ else {
127
+ return [];
128
+ }
129
+ };
130
+ // Update tableOptions based on parsed data and columns
131
+ const hasColumns = validColumns && Array.isArray(validColumns) && validColumns.length > 0;
132
+ const hasData = (this.parsedData &&
133
+ Array.isArray(this.parsedData) &&
134
+ this.parsedData.length > 0) ||
135
+ this.hasSlotBody;
136
+ if (!hasColumns && !hasData) {
137
+ // No columns and no data
138
+ }
139
+ else if (hasColumns && !hasData) {
140
+ tableOptions.columns = generateColumns();
141
+ }
142
+ else {
143
+ // Both columns and data are available
144
+ // No columns and data is available
145
+ tableOptions.data = setTableData();
146
+ tableOptions.columns = generateColumns();
147
+ }
148
+ // Initialize the table
149
+ this.table = createTable(tableOptions);
150
+ }
151
+ /**
152
+ * Parses the columns array.
153
+ * @param {Column[]} newValue - The new value of the columns array.
154
+ * @param {Column[]} oldValue - The old value of the columns array.
155
+ */
156
+ parseColumnsArray(newValue, oldValue) {
157
+ if (JSON.stringify(newValue) === JSON.stringify(oldValue))
158
+ return; // Deep comparison
159
+ this.parsedColumns = Array.isArray(newValue) ? newValue : [];
160
+ }
161
+ /**
162
+ * Parses the data array.
163
+ * @param {any[]} newValue - The new value of the data array.
164
+ * @param {any[]} oldValue - The old value of the data array.
165
+ */
166
+ parseDataArray(newValue, oldValue) {
167
+ if (JSON.stringify(newValue) === JSON.stringify(oldValue))
168
+ return; // Deep comparison
169
+ this.parsedData = Array.isArray(newValue) ? newValue : [];
170
+ }
171
+ //#endregion METHODS
172
+ /****************************************************************************/
173
+ //#region LIFECYCLE
174
+ componentWillLoad() {
175
+ this.hasSlotHead = !!this.el.querySelector('[slot="head"]');
176
+ if (this.hasSlotHead) {
177
+ const headSlot = this.el.querySelector('[slot="head"]');
178
+ const headSlotRows = this.hasSlotHead
179
+ ? Array.from(headSlot.querySelectorAll('nv-datagridrow'))
180
+ : [];
181
+ const mappedRows = headSlotRows.map(row => {
182
+ const cells = Array.from(row.querySelectorAll('nv-datagridcolumn'));
183
+ return cells.map(cell => ({
184
+ header: cell.getAttribute('header') || '',
185
+ accessor: cell.getAttribute('accessor') || '',
186
+ }));
187
+ });
188
+ // Flatten the nested arrays into a single array of columns
189
+ const flatMappedColumns = mappedRows.flat();
190
+ this.parsedColumns = flatMappedColumns;
191
+ }
192
+ this.hasSlotBody = !!this.el.querySelector('[slot="body"]');
193
+ if (this.hasSlotBody) {
194
+ const bodySlot = this.el.querySelector('[slot="body"]');
195
+ const bodySlotRows = this.hasSlotBody
196
+ ? Array.from(bodySlot.querySelectorAll('nv-datagridrow'))
197
+ : [];
198
+ const mappedRows = bodySlotRows.map(row => {
199
+ const cells = Array.from(row.querySelectorAll('nv-datagriddatacell'));
200
+ return cells.map(cell => {
201
+ return {
202
+ accessor: cell.accessor,
203
+ value: cell.innerHTML,
204
+ };
205
+ });
206
+ });
207
+ // Flatten the nested arrays into a single array of data
208
+ const flatMappedData = mappedRows.map(row => row.reduce((acc, cell) => {
209
+ acc[cell.accessor] = cell.value;
210
+ return acc;
211
+ }, {}));
212
+ this.parsedData = flatMappedData;
213
+ }
214
+ if (this.columnsJson) {
215
+ this.parseJsonColumns(this.columnsJson);
216
+ }
217
+ else if (this.columns && this.columns.length > 0) {
218
+ this.parseColumns(this.columns, this.parsedColumns);
219
+ }
220
+ if (this.dataJson) {
221
+ this.parseJsonData(this.dataJson);
222
+ }
223
+ else if (this.data && this.data.length > 0) {
224
+ this.parseData(this.data, this.parsedData);
225
+ }
226
+ }
227
+ componentDidLoad() {
228
+ this.initializeTable();
229
+ }
230
+ //#endregion LIFECYCLE
231
+ /****************************************************************************/
232
+ //#region RENDER
233
+ render() {
234
+ var _a, _b, _c;
235
+ const headerGroups = !this.table ||
236
+ this.table === undefined ||
237
+ (this.parsedColumns.length === 0 && !this.hasSlotHead)
238
+ ? []
239
+ : (_a = this.table) === null || _a === void 0 ? void 0 : _a.getHeaderGroups();
240
+ const rows = !this.table ||
241
+ this.table === undefined ||
242
+ (this.parsedData.length === 0 && !this.hasSlotBody)
243
+ ? []
244
+ : (_c = (_b = this.table) === null || _b === void 0 ? void 0 : _b.getRowModel()) === null || _c === void 0 ? void 0 : _c.rows;
245
+ return (h(Host, { key: '7f3244baba5487f57ba32b6f5e68cbb5794efce9' }, h("div", { key: '35cbeed33a37393ee16dbd06a43fd75e8affb0d6', class: "hidden" }, h("slot", { key: '03458f585639fb906e74c3124f74c38fb2d9d96f' }), h("slot", { key: 'e4862ff4ba814bd34c1d39081be83d11e3884b4a', name: "head" }), h("slot", { key: 'd0d77e8d159590531760052d842b4e461c6e0652', name: "body" })), h("slot", { key: '57150feaf6ac865d838e31edeae0af6d92a9dedb', name: "before" }), this.parsedColumns.length === 0 &&
246
+ this.parsedData.length === 0 &&
247
+ !this.hasSlotHead &&
248
+ !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
249
+ ? 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
250
+ ? null
251
+ : header.column.columnDef.header))))))
252
+ : null)), h("tbody", null, !rows || rows.length === 0 ? (h("tr", null, h("td", { colSpan: this.parsedColumns.length || 12 }, this.noDataMessage))) : (rows.map(row => {
253
+ const rowId = row.id;
254
+ const visibleCells = row === null || row === void 0 ? void 0 : row.getVisibleCells();
255
+ const cells = visibleCells === null || visibleCells === void 0 ? void 0 : visibleCells.map(cell => {
256
+ const cellValue = cell.getValue();
257
+ return `<td key="${cell.id}" data-row-id="${rowId}">${cellValue}</td>`;
258
+ }).join('');
259
+ return h("tr", { key: rowId, innerHTML: cells });
260
+ }))))), h("slot", { key: '35b4438cfaa83c045d49da21aeb4dc13356242ad', name: "after" })));
261
+ }
262
+ static get is() { return "nv-datagrid"; }
263
+ static get originalStyleUrls() {
264
+ return {
265
+ "$": ["./nv-datagrid.scss"]
266
+ };
267
+ }
268
+ static get styleUrls() {
269
+ return {
270
+ "$": ["nv-datagrid.css"]
271
+ };
272
+ }
273
+ static get properties() {
274
+ return {
275
+ "columns": {
276
+ "type": "unknown",
277
+ "mutable": false,
278
+ "complexType": {
279
+ "original": "Column[]",
280
+ "resolved": "Column[]",
281
+ "references": {
282
+ "Column": {
283
+ "location": "import",
284
+ "path": "../../interfaces/Column",
285
+ "id": "src/interfaces/Column.tsx::Column"
286
+ }
287
+ }
288
+ },
289
+ "required": false,
290
+ "optional": false,
291
+ "docs": {
292
+ "tags": [{
293
+ "name": "example",
294
+ "text": "[\n {\"header\":\"Name\",\"accessor\":\"name\"},\n {\"header\":\"Age\",\"accessor\":\"age\"},\n {\"header\":\"Email\",\"accessor\":\"email\"}\n]"
295
+ }, {
296
+ "name": "default",
297
+ "text": "[]"
298
+ }],
299
+ "text": "The columns to display in the data grid."
300
+ },
301
+ "defaultValue": "[]"
302
+ },
303
+ "columnsJson": {
304
+ "type": "string",
305
+ "mutable": false,
306
+ "complexType": {
307
+ "original": "string",
308
+ "resolved": "string",
309
+ "references": {}
310
+ },
311
+ "required": false,
312
+ "optional": true,
313
+ "docs": {
314
+ "tags": [{
315
+ "name": "example",
316
+ "text": "`[{\"header\":\"Name\",\"accessor\":\"name\"},{\"header\":\"Age\",\"accessor\":\"age\"},{\"header\":\"Email\",\"accessor\":\"email\"}]`"
317
+ }],
318
+ "text": "The columns to display in the data grid.\nIt can be passed directly as an array of objects or as a JSON string\n(e.g., `[{\"header\":\"Name\",\"accessor\":\"name\"},{\"header\":\"Age\",\"accessor\":\"age\"},{\"header\":\"Email\",\"accessor\":\"email\"}]`).\nIf both `columns` and `columnsJson` are provided, `columns` takes precedence."
319
+ },
320
+ "attribute": "columns-json",
321
+ "reflect": true
322
+ },
323
+ "data": {
324
+ "type": "unknown",
325
+ "mutable": false,
326
+ "complexType": {
327
+ "original": "any[]",
328
+ "resolved": "any[]",
329
+ "references": {}
330
+ },
331
+ "required": false,
332
+ "optional": false,
333
+ "docs": {
334
+ "tags": [{
335
+ "name": "example",
336
+ "text": "[{ \"name\": \"Alice\", \"age\": 25 }, { \"name\": \"Bob\", \"age\": 30 }]"
337
+ }, {
338
+ "name": "default",
339
+ "text": "[]"
340
+ }],
341
+ "text": "The data to display in the data grid."
342
+ },
343
+ "defaultValue": "[]"
344
+ },
345
+ "dataJson": {
346
+ "type": "string",
347
+ "mutable": false,
348
+ "complexType": {
349
+ "original": "string",
350
+ "resolved": "string",
351
+ "references": {}
352
+ },
353
+ "required": false,
354
+ "optional": true,
355
+ "docs": {
356
+ "tags": [{
357
+ "name": "example",
358
+ "text": "`[{ \"name\": \"Alice\", \"age\": 25 }, { \"name\": \"Bob\", \"age\": 30 }]`"
359
+ }],
360
+ "text": "The data to display in the data grid.\nIt can be passed directly as an array of objects or as a JSON string\n(e.g., `[{ \"name\": \"Alice\", \"age\": 25 }, { \"name\": \"Bob\", \"age\": 30 }]`).\nIf both `data` and `dataJson` are provided, `data` takes precedence."
361
+ },
362
+ "attribute": "data-json",
363
+ "reflect": true
364
+ },
365
+ "noDataMessage": {
366
+ "type": "string",
367
+ "mutable": false,
368
+ "complexType": {
369
+ "original": "string",
370
+ "resolved": "string",
371
+ "references": {}
372
+ },
373
+ "required": false,
374
+ "optional": false,
375
+ "docs": {
376
+ "tags": [{
377
+ "name": "default",
378
+ "text": "'No data available'"
379
+ }],
380
+ "text": "The message to display when there is no data available."
381
+ },
382
+ "attribute": "no-data-message",
383
+ "reflect": false,
384
+ "defaultValue": "'No data available'"
385
+ },
386
+ "noColumnsNoDataMessage": {
387
+ "type": "string",
388
+ "mutable": false,
389
+ "complexType": {
390
+ "original": "string",
391
+ "resolved": "string",
392
+ "references": {}
393
+ },
394
+ "required": false,
395
+ "optional": false,
396
+ "docs": {
397
+ "tags": [{
398
+ "name": "default",
399
+ "text": "'No data or columns available to display.'"
400
+ }],
401
+ "text": "The message to display when there are no columns or data available."
402
+ },
403
+ "attribute": "no-columns-no-data-message",
404
+ "reflect": false,
405
+ "defaultValue": "'No data or columns available to display.'"
406
+ }
407
+ };
408
+ }
409
+ static get states() {
410
+ return {
411
+ "table": {},
412
+ "parsedColumns": {},
413
+ "parsedData": {},
414
+ "hasSlotHead": {},
415
+ "hasSlotBody": {}
416
+ };
417
+ }
418
+ static get elementRef() { return "el"; }
419
+ static get watchers() {
420
+ return [{
421
+ "propName": "columns",
422
+ "methodName": "parseColumns"
423
+ }, {
424
+ "propName": "columnsJson",
425
+ "methodName": "parseJsonColumns"
426
+ }, {
427
+ "propName": "data",
428
+ "methodName": "parseData"
429
+ }, {
430
+ "propName": "dataJson",
431
+ "methodName": "parseJsonData"
432
+ }, {
433
+ "propName": "parsedColumns",
434
+ "methodName": "handleParsedChange"
435
+ }, {
436
+ "propName": "parsedData",
437
+ "methodName": "handleParsedChange"
438
+ }];
439
+ }
440
+ }
441
+ //# sourceMappingURL=nv-datagrid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nv-datagrid.js","sourceRoot":"","sources":["../../../src/components/nv-datagrid/nv-datagrid.tsx"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EACL,WAAW,EAGX,eAAe,EACf,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAG9B;;;;;;;GAOG;AAMH,MAAM,OAAO,UAAU;;qBAOc,IAAI;6BAGb,EAAE;0BAGR,EAAE;2BAGC,KAAK;2BAGL,KAAK;uBAiBC,EAAE;;oBAkBR,EAAE;;6BAiBQ,mBAAmB;sCAQlD,0CAA0C;;IAE5C,uBAAuB;IACvB,8EAA8E;IAC9E,kBAAkB;IAGlB,YAAY,CAAC,QAAkB,EAAE,QAAkB;QACjD,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAGD,gBAAgB,CAAC,QAA4B;QAC3C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAEtD,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;YACjE,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAGD,SAAS,CAAC,QAAe,EAAE,QAAe;QACxC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAGD,aAAa,CAAC,QAA4B;QACxC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAEtD,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;YAC9D,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAID,kBAAkB;QAChB,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,qBAAqB;IACrB,8EAA8E;IAC9E,iBAAiB;IAET,eAAe;QACrB,6CAA6C;QAC7C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAElB,oCAAoC;QACpC,MAAM,YAAY,GAA8B;YAC9C,OAAO,EAAE,EAAE;YACX,IAAI,EAAE,EAAE;YACR,eAAe,EAAE,eAAe,EAAE;YAClC,QAAQ,EAAE,IAAI;YACd,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,KAAK,CAAC;YAClE,mBAAmB,EAAE,oBAAoB;YACzC,KAAK,EAAE;gBACL,OAAO,EAAE,EAAE,EAAE,6BAA6B;gBAC1C,gBAAgB,EAAE,EAAE,EAAE,+BAA+B;gBACrD,aAAa,EAAE,EAAE,EAAE,6BAA6B;gBAChD,aAAa,EAAE,EAAE,EAAE,6BAA6B;gBAChD,YAAY,EAAE,EAAE,EAAE,4BAA4B;gBAC9C,WAAW,EAAE,EAAE,EAAE,uCAAuC;gBACxD,UAAU,EAAE,IAAI,EAAE,yBAAyB;gBAC3C,QAAQ,EAAE,EAAE,EAAE,8BAA8B;gBAC5C,QAAQ,EAAE,EAAE,EAAE,4BAA4B;gBAC1C,UAAU,EAAE,EAAE,EAAE,0BAA0B;gBAC1C,YAAY,EAAE,EAAE,EAAE,4BAA4B;gBAC9C,YAAY,EAAE,IAAI,EAAE,4BAA4B;gBAChD,gBAAgB,EAAE;oBAChB,iBAAiB,EAAE,IAAI;oBACvB,WAAW,EAAE,IAAI;oBACjB,eAAe,EAAE,IAAI;oBACrB,gBAAgB,EAAE,KAAK;oBACvB,WAAW,EAAE,IAAI;oBACjB,SAAS,EAAE,IAAI;iBAChB,EAAE,iCAAiC;aACrC;SACF,CAAC;QAEF,2CAA2C;QAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAC5C,MAAM,CAAC,EAAE,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,MAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAA,CAC7C,CAAC;QAEF,iDAAiD;QACjD,MAAM,eAAe,GAAG,GAAU,EAAE;YAClC,MAAM,YAAY,GAAG,kBAAkB,EAAO,CAAC;YAE/C,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,sBAAsB;gBACtB,OAAO,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAC/B,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE;oBACrC,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE;iBAC9B,CAAC,CACH,CAAC;YACJ,CAAC;iBAAM,IAAI,YAAY,CAAC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7D,kCAAkC;gBAClC,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACvC,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CACtC,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE;oBACzB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,4BAA4B;oBAChF,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE;iBAC9B,CAAC,CACH,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,yBAAyB;gBACzB,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,YAAY,GAAG,GAAU,EAAE;YAC/B,IACE,IAAI,CAAC,UAAU;gBACf,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;gBAC9B,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAC1B,CAAC;gBACD,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACN,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC,CAAC;QAEF,uDAAuD;QACvD,MAAM,UAAU,GACd,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;QACzE,MAAM,OAAO,GACX,CAAC,IAAI,CAAC,UAAU;YACd,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;YAC9B,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;YAC7B,IAAI,CAAC,WAAW,CAAC;QAEnB,IAAI,CAAC,UAAU,IAAI,CAAC,OAAO,EAAE,CAAC;YAC5B,yBAAyB;QAC3B,CAAC;aAAM,IAAI,UAAU,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,YAAY,CAAC,OAAO,GAAG,eAAe,EAAE,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,sCAAsC;YACtC,mCAAmC;YACnC,YAAY,CAAC,IAAI,GAAG,YAAY,EAAE,CAAC;YACnC,YAAY,CAAC,OAAO,GAAG,eAAe,EAAE,CAAC;QAC3C,CAAC;QAED,uBAAuB;QACvB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACK,iBAAiB,CAAC,QAAkB,EAAE,QAAkB;QAC9D,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;YAAE,OAAO,CAAC,kBAAkB;QACrF,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/D,CAAC;IAED;;;;OAIG;IACK,cAAc,CAAC,QAAe,EAAE,QAAe;QACrD,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;YAAE,OAAO,CAAC,kBAAkB;QACrF,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,CAAC;IAED,oBAAoB;IACpB,8EAA8E;IAC9E,mBAAmB;IAEnB,iBAAiB;QACf,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;QAE5D,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;YACxD,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW;gBACnC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;gBACzD,CAAC,CAAC,EAAE,CAAC;YAEP,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBACxC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC,CAAC;gBAEpE,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACxB,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE;oBACzC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE;iBAC9C,CAAC,CAAC,CAAC;YACN,CAAC,CAAC,CAAC;YAEH,2DAA2D;YAC3D,MAAM,iBAAiB,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;YAE5C,IAAI,CAAC,aAAa,GAAG,iBAAiB,CAAC;QACzC,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;QAE5D,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;YACxD,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW;gBACnC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;gBACzD,CAAC,CAAC,EAAE,CAAC;YAEP,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBACxC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC,CAAC;gBAEtE,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;oBACtB,OAAO;wBACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,KAAK,EAAE,IAAI,CAAC,SAAS;qBACtB,CAAC;gBACJ,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,wDAAwD;YACxD,MAAM,cAAc,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAC1C,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;gBACvB,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;gBAChC,OAAO,GAAG,CAAC;YACb,CAAC,EAAE,EAAE,CAAC,CACP,CAAC;YAEF,IAAI,CAAC,UAAU,GAAG,cAAc,CAAC;QACnC,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1C,CAAC;aAAM,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpC,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,sBAAsB;IACtB,8EAA8E;IAC9E,gBAAgB;IAEhB,MAAM;;QACJ,MAAM,YAAY,GAChB,CAAC,IAAI,CAAC,KAAK;YACX,IAAI,CAAC,KAAK,KAAK,SAAS;YACxB,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;YACpD,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,MAAA,IAAI,CAAC,KAAK,0CAAE,eAAe,EAAE,CAAC;QAEpC,MAAM,IAAI,GACR,CAAC,IAAI,CAAC,KAAK;YACX,IAAI,CAAC,KAAK,KAAK,SAAS;YACxB,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;YACjD,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,MAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,WAAW,EAAE,0CAAE,IAAI,CAAC;QAEtC,OAAO,CACL,EAAC,IAAI;YACH,4DAAK,KAAK,EAAC,QAAQ;gBACjB,8DAAa;gBACb,6DAAM,IAAI,EAAC,MAAM,GAAQ;gBACzB,6DAAM,IAAI,EAAC,MAAM,GAAQ,CACrB;YAEN,6DAAM,IAAI,EAAC,QAAQ,GAAQ;YAE1B,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC;gBAChC,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;gBAC5B,CAAC,IAAI,CAAC,WAAW;gBACjB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAClB,aAAI,IAAI,CAAC,sBAAsB,CAAK,CACrC,CAAC,CAAC,CAAC,CACF;gBACG,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CAC3D,iBACG,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY;oBAC5C,CAAC,CAAC,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAC/B,UAAI,GAAG,EAAE,WAAW,CAAC,EAAE,IACpB,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CACjC,UAAI,GAAG,EAAE,MAAM,CAAC,EAAE,IACf,MAAM,CAAC,aAAa;wBACnB,CAAC,CAAC,IAAI;wBACN,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAC/B,CACN,CAAC,CACC,CACN,CAAC;oBACJ,CAAC,CAAC,IAAI,CACF,CACT;gBACD,iBACG,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAC5B;oBACE,UAAI,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,EAAE,IACzC,IAAI,CAAC,aAAa,CAChB,CACF,CACN,CAAC,CAAC,CAAC,CACF,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;oBACb,MAAM,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC;oBACrB,MAAM,YAAY,GAAG,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,eAAe,EAAE,CAAC;oBAE5C,MAAM,KAAK,GAAG,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CACtB,GAAG,CAAC,IAAI,CAAC,EAAE;wBACX,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;wBAClC,OAAO,YAAY,IAAI,CAAC,EAAE,kBAAkB,KAAK,KAAK,SAAS,OAAO,CAAC;oBACzE,CAAC,EACA,IAAI,CAAC,EAAE,CAAC,CAAC;oBAEZ,OAAO,UAAI,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,GAAO,CAAC;gBACjD,CAAC,CAAC,CACH,CACK,CACF,CACT;YAED,6DAAM,IAAI,EAAC,OAAO,GAAQ,CACrB,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIF","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Prop, h, State, Host, Watch, Element } from '@stencil/core';\nimport {\n createTable,\n Table,\n TableOptionsResolved,\n getCoreRowModel,\n createColumnHelper,\n} from '@tanstack/table-core';\nimport { Column } from '../../interfaces/Column';\n\n/**\n * A flexible data grid component powered by `@tanstack/table-core`.\n * @slot default - Use this slot to insert HTML into the data grid content.\n * @slot head - Use this slot to insert HTML into the data grid header.\n * @slot before - Use this slot to insert HTML before the data grid.\n * @slot after - Use this slot to insert HTML after the data grid.\n * @slot body - Use this slot to insert HTML into the data grid body.\n */\n@Component({\n tag: 'nv-datagrid',\n styleUrl: './nv-datagrid.scss',\n shadow: false,\n})\nexport class NvDatagrid {\n @Element() el: HTMLNvDatagridElement;\n\n /****************************************************************************/\n //#region STATES\n\n @State()\n private table: Table<any> | null = null;\n\n @State()\n parsedColumns: Column[] = []; // Parsed array\n\n @State()\n parsedData: any[] = []; // Parsed array\n\n @State()\n hasSlotHead: boolean = false;\n\n @State()\n hasSlotBody: boolean = false;\n\n //#endregion STATES\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * The columns to display in the data grid.\n * @example\n * [\n * {\"header\":\"Name\",\"accessor\":\"name\"},\n * {\"header\":\"Age\",\"accessor\":\"age\"},\n * {\"header\":\"Email\",\"accessor\":\"email\"}\n * ]\n * @default []\n */\n @Prop()\n readonly columns: Column[] = [];\n\n /**\n * The columns to display in the data grid.\n * It can be passed directly as an array of objects or as a JSON string\n * (e.g., `[{\"header\":\"Name\",\"accessor\":\"name\"},{\"header\":\"Age\",\"accessor\":\"age\"},{\"header\":\"Email\",\"accessor\":\"email\"}]`).\n * If both `columns` and `columnsJson` are provided, `columns` takes precedence.\n * @example `[{\"header\":\"Name\",\"accessor\":\"name\"},{\"header\":\"Age\",\"accessor\":\"age\"},{\"header\":\"Email\",\"accessor\":\"email\"}]`\n */\n @Prop({ reflect: true })\n readonly columnsJson?: string;\n\n /**\n * The data to display in the data grid.\n * @example [{ \"name\": \"Alice\", \"age\": 25 }, { \"name\": \"Bob\", \"age\": 30 }]\n * @default []\n */\n @Prop()\n readonly data: any[] = [];\n\n /**\n * The data to display in the data grid.\n * It can be passed directly as an array of objects or as a JSON string\n * (e.g., `[{ \"name\": \"Alice\", \"age\": 25 }, { \"name\": \"Bob\", \"age\": 30 }]`).\n * If both `data` and `dataJson` are provided, `data` takes precedence.\n * @example `[{ \"name\": \"Alice\", \"age\": 25 }, { \"name\": \"Bob\", \"age\": 30 }]`\n */\n @Prop({ reflect: true })\n readonly dataJson?: string;\n\n /**\n * The message to display when there is no data available.\n * @default 'No data available'\n */\n @Prop()\n readonly noDataMessage: string = 'No data available';\n\n /**\n * The message to display when there are no columns or data available.\n * @default 'No data or columns available to display.'\n */\n @Prop()\n readonly noColumnsNoDataMessage: string =\n 'No data or columns available to display.';\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region WATCHERS\n\n @Watch('columns')\n parseColumns(newValue: Column[], oldValue: Column[]) {\n this.parseColumnsArray(newValue, oldValue);\n }\n\n @Watch('columnsJson')\n parseJsonColumns(newValue: string | undefined) {\n try {\n const newItems = newValue ? JSON.parse(newValue) : [];\n\n this.parseColumnsArray(newItems, this.parsedColumns);\n } catch (e) {\n console.error('Invalid JSON format for columnsJson:', e.message);\n this.parsedColumns = [];\n }\n }\n\n @Watch('data')\n parseData(newValue: any[], oldValue: any[]) {\n this.parseDataArray(newValue, oldValue);\n }\n\n @Watch('dataJson')\n parseJsonData(newValue: string | undefined) {\n try {\n const newItems = newValue ? JSON.parse(newValue) : [];\n\n this.parseDataArray(newItems, this.parsedData);\n } catch (e) {\n console.error('Invalid JSON format for dataJson:', e.message);\n this.parsedData = [];\n }\n }\n\n @Watch('parsedColumns')\n @Watch('parsedData')\n handleParsedChange() {\n this.initializeTable();\n }\n\n //#endregion WATCHERS\n /****************************************************************************/\n //#region METHODS\n\n private initializeTable(): void {\n // Clear the previous table instance (if any)\n this.table = null;\n\n // Set default options for the table\n const tableOptions: TableOptionsResolved<any> = {\n columns: [],\n data: [],\n getCoreRowModel: getCoreRowModel(),\n debugAll: true,\n onStateChange: state => console.log('Table state changed:', state),\n renderFallbackValue: 'No rows to display',\n state: {\n sorting: [], // Default: no active sorting\n columnVisibility: {}, // Default: all columns visible\n columnFilters: [], // Default: no column filters\n columnPinning: {}, // Default: no column pinning\n columnSizing: {}, // Default: no column sizing\n columnOrder: [], // Default: as defined in the `columns`\n pagination: null, // Default: no pagination\n grouping: [], // Default: no active grouping\n expanded: {}, // Default: no expanded rows\n rowPinning: {}, // Default: no row pinning\n rowSelection: {}, // Default: no row selection\n globalFilter: null, // Default: no global filter\n columnSizingInfo: {\n columnSizingStart: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n }, // Default: no column sizing info\n },\n };\n\n // Validate and generate column definitions\n const validColumns = this.parsedColumns.filter(\n column => column?.accessor && column?.header,\n );\n\n // Helper function to generate column definitions\n const generateColumns = (): any[] => {\n const columnHelper = createColumnHelper<any>();\n\n if (validColumns.length > 0) {\n // Use defined columns\n return validColumns.map(column =>\n columnHelper.accessor(column.accessor, {\n header: column.header,\n cell: info => info.getValue(),\n }),\n );\n } else if (tableOptions.data && tableOptions.data.length > 0) {\n // Generate columns from data keys\n const sampleRow = tableOptions.data[0];\n return Object.keys(sampleRow).map(key =>\n columnHelper.accessor(key, {\n header: key.charAt(0).toUpperCase() + key.slice(1), // Capitalize key for header\n cell: info => info.getValue(),\n }),\n );\n } else {\n // No columns and no data\n return [];\n }\n };\n\n const setTableData = (): any[] => {\n if (\n this.parsedData &&\n Array.isArray(this.parsedData) &&\n this.parsedData.length > 0\n ) {\n return [...this.parsedData];\n } else {\n return [];\n }\n };\n\n // Update tableOptions based on parsed data and columns\n const hasColumns =\n validColumns && Array.isArray(validColumns) && validColumns.length > 0;\n const hasData =\n (this.parsedData &&\n Array.isArray(this.parsedData) &&\n this.parsedData.length > 0) ||\n this.hasSlotBody;\n\n if (!hasColumns && !hasData) {\n // No columns and no data\n } else if (hasColumns && !hasData) {\n tableOptions.columns = generateColumns();\n } else {\n // Both columns and data are available\n // No columns and data is available\n tableOptions.data = setTableData();\n tableOptions.columns = generateColumns();\n }\n\n // Initialize the table\n this.table = createTable(tableOptions);\n }\n\n /**\n * Parses the columns array.\n * @param {Column[]} newValue - The new value of the columns array.\n * @param {Column[]} oldValue - The old value of the columns array.\n */\n private parseColumnsArray(newValue: Column[], oldValue: Column[]) {\n if (JSON.stringify(newValue) === JSON.stringify(oldValue)) return; // Deep comparison\n this.parsedColumns = Array.isArray(newValue) ? newValue : [];\n }\n\n /**\n * Parses the data array.\n * @param {any[]} newValue - The new value of the data array.\n * @param {any[]} oldValue - The old value of the data array.\n */\n private parseDataArray(newValue: any[], oldValue: any[]) {\n if (JSON.stringify(newValue) === JSON.stringify(oldValue)) return; // Deep comparison\n this.parsedData = Array.isArray(newValue) ? newValue : [];\n }\n\n //#endregion METHODS\n /****************************************************************************/\n //#region LIFECYCLE\n\n componentWillLoad() {\n this.hasSlotHead = !!this.el.querySelector('[slot=\"head\"]');\n\n if (this.hasSlotHead) {\n const headSlot = this.el.querySelector('[slot=\"head\"]');\n const headSlotRows = this.hasSlotHead\n ? Array.from(headSlot.querySelectorAll('nv-datagridrow'))\n : [];\n\n const mappedRows = headSlotRows.map(row => {\n const cells = Array.from(row.querySelectorAll('nv-datagridcolumn'));\n\n return cells.map(cell => ({\n header: cell.getAttribute('header') || '',\n accessor: cell.getAttribute('accessor') || '',\n }));\n });\n\n // Flatten the nested arrays into a single array of columns\n const flatMappedColumns = mappedRows.flat();\n\n this.parsedColumns = flatMappedColumns;\n }\n\n this.hasSlotBody = !!this.el.querySelector('[slot=\"body\"]');\n\n if (this.hasSlotBody) {\n const bodySlot = this.el.querySelector('[slot=\"body\"]');\n const bodySlotRows = this.hasSlotBody\n ? Array.from(bodySlot.querySelectorAll('nv-datagridrow'))\n : [];\n\n const mappedRows = bodySlotRows.map(row => {\n const cells = Array.from(row.querySelectorAll('nv-datagriddatacell'));\n\n return cells.map(cell => {\n return {\n accessor: cell.accessor,\n value: cell.innerHTML,\n };\n });\n });\n\n // Flatten the nested arrays into a single array of data\n const flatMappedData = mappedRows.map(row =>\n row.reduce((acc, cell) => {\n acc[cell.accessor] = cell.value;\n return acc;\n }, {}),\n );\n\n this.parsedData = flatMappedData;\n }\n\n if (this.columnsJson) {\n this.parseJsonColumns(this.columnsJson);\n } else if (this.columns && this.columns.length > 0) {\n this.parseColumns(this.columns, this.parsedColumns);\n }\n\n if (this.dataJson) {\n this.parseJsonData(this.dataJson);\n } else if (this.data && this.data.length > 0) {\n this.parseData(this.data, this.parsedData);\n }\n }\n\n componentDidLoad() {\n this.initializeTable();\n }\n\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region RENDER\n\n render() {\n const headerGroups =\n !this.table ||\n this.table === undefined ||\n (this.parsedColumns.length === 0 && !this.hasSlotHead)\n ? []\n : this.table?.getHeaderGroups();\n\n const rows =\n !this.table ||\n this.table === undefined ||\n (this.parsedData.length === 0 && !this.hasSlotBody)\n ? []\n : this.table?.getRowModel()?.rows;\n\n return (\n <Host>\n <div class=\"hidden\">\n <slot></slot>\n <slot name=\"head\"></slot>\n <slot name=\"body\"></slot>\n </div>\n\n <slot name=\"before\"></slot>\n\n {this.parsedColumns.length === 0 &&\n this.parsedData.length === 0 &&\n !this.hasSlotHead &&\n !this.hasSlotBody ? (\n <p>{this.noColumnsNoDataMessage}</p>\n ) : (\n <table>\n {this.parsedColumns.length > 0 && headerGroups.length > 0 && (\n <thead>\n {this.parsedColumns.length > 0 && headerGroups\n ? headerGroups?.map(headerGroup => (\n <tr key={headerGroup.id}>\n {headerGroup.headers.map(header => (\n <th key={header.id}>\n {header.isPlaceholder\n ? null\n : header.column.columnDef.header}\n </th>\n ))}\n </tr>\n ))\n : null}\n </thead>\n )}\n <tbody>\n {!rows || rows.length === 0 ? (\n <tr>\n <td colSpan={this.parsedColumns.length || 12}>\n {this.noDataMessage}\n </td>\n </tr>\n ) : (\n rows.map(row => {\n const rowId = row.id;\n const visibleCells = row?.getVisibleCells();\n\n const cells = visibleCells\n ?.map(cell => {\n const cellValue = cell.getValue();\n return `<td key=\"${cell.id}\" data-row-id=\"${rowId}\">${cellValue}</td>`;\n })\n .join('');\n\n return <tr key={rowId} innerHTML={cells}></tr>;\n })\n )}\n </tbody>\n </table>\n )}\n\n <slot name=\"after\"></slot>\n </Host>\n );\n }\n\n //#endregion RENDER\n /****************************************************************************/\n}\n"]}
@@ -0,0 +1,8 @@
1
+ const NvDatagridbodyDocs = {
2
+ component: 'nv-datagridbody',
3
+ subcomponents: ['nv-datagridrow', 'nv-datagriddatacell'],
4
+ composedComponents: ['nv-datagridrow', 'nv-datagriddatacell'],
5
+ skip: true,
6
+ };
7
+ export default NvDatagridbodyDocs;
8
+ //# sourceMappingURL=nv-datagridbody.docs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nv-datagridbody.docs.js","sourceRoot":"","sources":["../../../src/components/nv-datagridbody/nv-datagridbody.docs.tsx"],"names":[],"mappings":"AAGA,MAAM,kBAAkB,GAAwC;IAC9D,SAAS,EAAE,iBAAiB;IAC5B,aAAa,EAAE,CAAC,gBAAgB,EAAE,qBAAqB,CAAC;IACxD,kBAAkB,EAAE,CAAC,gBAAgB,EAAE,qBAAqB,CAAC;IAC7D,IAAI,EAAE,IAAI;CACX,CAAC;AAEF,eAAe,kBAAkB,CAAC","sourcesContent":["import type { NovaDocs } from '../../nova-docs';\nimport { Components } from '../../components';\n\nconst NvDatagridbodyDocs: NovaDocs<Components.NvDatagridbody> = {\n component: 'nv-datagridbody',\n subcomponents: ['nv-datagridrow', 'nv-datagriddatacell'],\n composedComponents: ['nv-datagridrow', 'nv-datagriddatacell'],\n skip: true,\n};\n\nexport default NvDatagridbodyDocs;\n"]}
@@ -0,0 +1,23 @@
1
+ import { Host, h } from "@stencil/core";
2
+ /**
3
+ * @slot default - Use this slot to insert HTML into the data grid body.
4
+ */
5
+ export class NvDatagridbody {
6
+ /****************************************************************************/
7
+ //#region RENDER
8
+ render() {
9
+ return (h(Host, { key: 'c24bf0e6d18d00b39b6e0382b0268ee24e6e7567' }, h("tbody", { key: '1fae4b6126134317bd2dc7d4819ed861e8915761' }, h("slot", { key: 'a6a537e6ed6c8b831da5294c1bce7010038b6291' }))));
10
+ }
11
+ static get is() { return "nv-datagridbody"; }
12
+ static get originalStyleUrls() {
13
+ return {
14
+ "$": ["nv-datagridbody.scss"]
15
+ };
16
+ }
17
+ static get styleUrls() {
18
+ return {
19
+ "$": ["nv-datagridbody.css"]
20
+ };
21
+ }
22
+ }
23
+ //# sourceMappingURL=nv-datagridbody.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nv-datagridbody.js","sourceRoot":"","sources":["../../../src/components/nv-datagridbody/nv-datagridbody.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAEnD;;GAEG;AAMH,MAAM,OAAO,cAAc;IACzB,8EAA8E;IAC9E,gBAAgB;IAEhB,MAAM;QACJ,OAAO,CACL,EAAC,IAAI;YACH;gBACE,8DAAa,CACP,CACH,CACR,CAAC;IACJ,CAAC;;;;;;;;CAIF","sourcesContent":["import { Component, Host, h } from '@stencil/core';\n\n/**\n * @slot default - Use this slot to insert HTML into the data grid body.\n */\n@Component({\n tag: 'nv-datagridbody',\n styleUrl: 'nv-datagridbody.scss',\n shadow: false,\n})\nexport class NvDatagridbody {\n /****************************************************************************/\n //#region RENDER\n\n render() {\n return (\n <Host>\n <tbody>\n <slot></slot>\n </tbody>\n </Host>\n );\n }\n\n //#endregion RENDER\n /****************************************************************************/\n}\n"]}
@@ -0,0 +1,6 @@
1
+ const NvDatagridcolumnDocs = {
2
+ component: 'nv-datagridcolumn',
3
+ skip: true,
4
+ };
5
+ export default NvDatagridcolumnDocs;
6
+ //# sourceMappingURL=nv-datagridcolumn.docs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nv-datagridcolumn.docs.js","sourceRoot":"","sources":["../../../src/components/nv-datagridcolumn/nv-datagridcolumn.docs.tsx"],"names":[],"mappings":"AAGA,MAAM,oBAAoB,GAA0C;IAClE,SAAS,EAAE,mBAAmB;IAC9B,IAAI,EAAE,IAAI;CACX,CAAC;AAEF,eAAe,oBAAoB,CAAC","sourcesContent":["import type { NovaDocs } from '../../nova-docs';\nimport { Components } from '../../components';\n\nconst NvDatagridcolumnDocs: NovaDocs<Components.NvDatagridcolumn> = {\n component: 'nv-datagridcolumn',\n skip: true,\n};\n\nexport default NvDatagridcolumnDocs;\n"]}
@@ -0,0 +1,66 @@
1
+ import { Host, h } from "@stencil/core";
2
+ /**
3
+ * @slot default - Use this slot to insert HTML into the data grid column.
4
+ */
5
+ export class NvDatagridcolumn {
6
+ constructor() {
7
+ this.header = undefined;
8
+ this.accessor = undefined;
9
+ }
10
+ //#endregion PROPERTIES
11
+ /****************************************************************************/
12
+ //#region RENDER
13
+ render() {
14
+ return (h(Host, { key: '4607ea5be4f54aec289b09e40f980aaf33c304c7' }, h("th", { key: '5a24f302d8b01c8ed44fb3c015d9701967d2833f' }, h("slot", { key: '272e390027621eb09b17baa1529fbdaba40eb74a' }))));
15
+ }
16
+ static get is() { return "nv-datagridcolumn"; }
17
+ static get originalStyleUrls() {
18
+ return {
19
+ "$": ["nv-datagridcolumn.scss"]
20
+ };
21
+ }
22
+ static get styleUrls() {
23
+ return {
24
+ "$": ["nv-datagridcolumn.css"]
25
+ };
26
+ }
27
+ static get properties() {
28
+ return {
29
+ "header": {
30
+ "type": "string",
31
+ "mutable": false,
32
+ "complexType": {
33
+ "original": "string",
34
+ "resolved": "string",
35
+ "references": {}
36
+ },
37
+ "required": false,
38
+ "optional": false,
39
+ "docs": {
40
+ "tags": [],
41
+ "text": "Defines the header of the column."
42
+ },
43
+ "attribute": "header",
44
+ "reflect": false
45
+ },
46
+ "accessor": {
47
+ "type": "string",
48
+ "mutable": false,
49
+ "complexType": {
50
+ "original": "string",
51
+ "resolved": "string",
52
+ "references": {}
53
+ },
54
+ "required": false,
55
+ "optional": false,
56
+ "docs": {
57
+ "tags": [],
58
+ "text": "Defines the accessor of the column."
59
+ },
60
+ "attribute": "accessor",
61
+ "reflect": false
62
+ }
63
+ };
64
+ }
65
+ }
66
+ //# sourceMappingURL=nv-datagridcolumn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nv-datagridcolumn.js","sourceRoot":"","sources":["../../../src/components/nv-datagridcolumn/nv-datagridcolumn.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAEzD;;GAEG;AAMH,MAAM,OAAO,gBAAgB;;;;;IAgB3B,uBAAuB;IACvB,8EAA8E;IAC9E,gBAAgB;IAEhB,MAAM;QACJ,OAAO,CACL,EAAC,IAAI;YACH;gBACE,8DAAa,CACV,CACA,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIF","sourcesContent":["import { Component, Host, Prop, h } from '@stencil/core';\n\n/**\n * @slot default - Use this slot to insert HTML into the data grid column.\n */\n@Component({\n tag: 'nv-datagridcolumn',\n styleUrl: 'nv-datagridcolumn.scss',\n shadow: false,\n})\nexport class NvDatagridcolumn {\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * Defines the header of the column.\n */\n @Prop()\n readonly header: string;\n\n /**\n * Defines the accessor of the column.\n */\n @Prop()\n readonly accessor: string;\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region RENDER\n\n render() {\n return (\n <Host>\n <th>\n <slot></slot>\n </th>\n </Host>\n );\n }\n\n //#endregion RENDER\n /****************************************************************************/\n}\n"]}
@@ -0,0 +1,6 @@
1
+ const NvDatagriddatacellDocs = {
2
+ component: 'nv-datagriddatacell',
3
+ skip: true,
4
+ };
5
+ export default NvDatagriddatacellDocs;
6
+ //# sourceMappingURL=nv-datagriddatacell.docs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nv-datagriddatacell.docs.js","sourceRoot":"","sources":["../../../src/components/nv-datagriddatacell/nv-datagriddatacell.docs.tsx"],"names":[],"mappings":"AAGA,MAAM,sBAAsB,GAA4C;IACtE,SAAS,EAAE,qBAAqB;IAChC,IAAI,EAAE,IAAI;CACX,CAAC;AAEF,eAAe,sBAAsB,CAAC","sourcesContent":["import type { NovaDocs } from '../../nova-docs';\nimport { Components } from '../../components';\n\nconst NvDatagriddatacellDocs: NovaDocs<Components.NvDatagriddatacell> = {\n component: 'nv-datagriddatacell',\n skip: true,\n};\n\nexport default NvDatagriddatacellDocs;\n"]}