@nova-design-system/nova-webcomponents 3.14.0 → 3.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (631) hide show
  1. package/dist/cjs/{collapse.animation-47397763.js → collapse.animation-23b7d61b.js} +5 -2
  2. package/dist/cjs/collapse.animation-23b7d61b.js.map +1 -0
  3. package/dist/cjs/{constants-52f6f8e9.js → constants-f5633903.js} +10 -1
  4. package/dist/cjs/constants-f5633903.js.map +1 -0
  5. package/dist/cjs/{fade.animation-cf6eba0d.js → fade.animation-9294e9ee.js} +3 -3
  6. package/dist/cjs/fade.animation-9294e9ee.js.map +1 -0
  7. package/dist/cjs/{grow.animation-9258ba63.js → grow.animation-f1cef0ad.js} +2 -2
  8. package/dist/cjs/{grow.animation-9258ba63.js.map → grow.animation-f1cef0ad.js.map} +1 -1
  9. package/dist/cjs/{index-c56424e5.js → index-93d3b2f8.js} +9 -6
  10. package/dist/cjs/index-93d3b2f8.js.map +1 -0
  11. package/dist/cjs/index.cjs.js +27 -6
  12. package/dist/cjs/index.cjs.js.map +1 -1
  13. package/dist/cjs/loader.cjs.js +2 -2
  14. package/dist/cjs/native.cjs.js +2 -2
  15. package/dist/cjs/nv-accordion-item.cjs.entry.js +3 -3
  16. package/dist/cjs/nv-accordion-item.cjs.entry.js.map +1 -1
  17. package/dist/cjs/nv-accordion.cjs.entry.js +6 -6
  18. package/dist/cjs/nv-accordion.cjs.entry.js.map +1 -1
  19. package/dist/cjs/nv-alert.cjs.entry.js +5 -5
  20. package/dist/cjs/nv-alert.cjs.entry.js.map +1 -1
  21. package/dist/cjs/nv-avatar.cjs.entry.js +3 -3
  22. package/dist/cjs/nv-avatar.cjs.entry.js.map +1 -1
  23. package/dist/cjs/nv-badge_2.cjs.entry.js +10 -10
  24. package/dist/cjs/nv-badge_2.cjs.entry.js.map +1 -1
  25. package/dist/cjs/nv-breadcrumb.cjs.entry.js +2 -2
  26. package/dist/cjs/nv-breadcrumb.cjs.entry.js.map +1 -1
  27. package/dist/cjs/nv-breadcrumbs.cjs.entry.js +1 -1
  28. package/dist/cjs/nv-button.cjs.entry.js +3 -3
  29. package/dist/cjs/nv-button.cjs.entry.js.map +1 -1
  30. package/dist/cjs/nv-buttongroup.cjs.entry.js +1 -1
  31. package/dist/cjs/nv-calendar.cjs.entry.js +2 -2
  32. package/dist/cjs/nv-col.cjs.entry.js +1 -1
  33. package/dist/cjs/nv-datagrid.cjs.entry.js +178 -11
  34. package/dist/cjs/nv-datagrid.cjs.entry.js.map +1 -1
  35. package/dist/cjs/nv-datagridcolumn.cjs.entry.js +1 -1
  36. package/dist/cjs/nv-dialog.cjs.entry.js +33 -30
  37. package/dist/cjs/nv-dialog.cjs.entry.js.map +1 -1
  38. package/dist/cjs/nv-dialogfooter_2.cjs.entry.js +3 -3
  39. package/dist/cjs/nv-dialogfooter_2.cjs.entry.js.map +1 -1
  40. package/dist/cjs/nv-fieldcheckbox.cjs.entry.js +2 -2
  41. package/dist/cjs/nv-fieldcheckbox.cjs.entry.js.map +1 -1
  42. package/dist/cjs/nv-fielddate.cjs.entry.js +51 -26
  43. package/dist/cjs/nv-fielddate.cjs.entry.js.map +1 -1
  44. package/dist/cjs/nv-fielddaterange.cjs.entry.js +68 -42
  45. package/dist/cjs/nv-fielddaterange.cjs.entry.js.map +1 -1
  46. package/dist/cjs/nv-fielddropdown.cjs.entry.js +33 -7
  47. package/dist/cjs/nv-fielddropdown.cjs.entry.js.map +1 -1
  48. package/dist/cjs/nv-fielddropdownitem.cjs.entry.js +1 -1
  49. package/dist/cjs/nv-fieldmultiselect.cjs.entry.js +187 -156
  50. package/dist/cjs/nv-fieldmultiselect.cjs.entry.js.map +1 -1
  51. package/dist/cjs/nv-fieldnumber.cjs.entry.js +2 -2
  52. package/dist/cjs/nv-fieldnumber.cjs.entry.js.map +1 -1
  53. package/dist/cjs/nv-fieldpassword.cjs.entry.js +2 -2
  54. package/dist/cjs/nv-fieldpassword.cjs.entry.js.map +1 -1
  55. package/dist/cjs/nv-fieldradio.cjs.entry.js +2 -2
  56. package/dist/cjs/nv-fieldradio.cjs.entry.js.map +1 -1
  57. package/dist/cjs/nv-fieldselect.cjs.entry.js +2 -2
  58. package/dist/cjs/nv-fieldselect.cjs.entry.js.map +1 -1
  59. package/dist/cjs/nv-fieldslider.cjs.entry.js +2 -2
  60. package/dist/cjs/nv-fieldslider.cjs.entry.js.map +1 -1
  61. package/dist/cjs/nv-fieldtext.cjs.entry.js +2 -2
  62. package/dist/cjs/nv-fieldtext.cjs.entry.js.map +1 -1
  63. package/dist/cjs/nv-fieldtextarea.cjs.entry.js +2 -2
  64. package/dist/cjs/nv-fieldtextarea.cjs.entry.js.map +1 -1
  65. package/dist/cjs/nv-fieldtime.cjs.entry.js +26 -13
  66. package/dist/cjs/nv-fieldtime.cjs.entry.js.map +1 -1
  67. package/dist/cjs/nv-icon.cjs.entry.js +3 -3
  68. package/dist/cjs/nv-icon.cjs.entry.js.map +1 -1
  69. package/dist/cjs/nv-iconbutton_2.cjs.entry.js +2 -2
  70. package/dist/cjs/nv-iconbutton_2.cjs.entry.js.map +1 -1
  71. package/dist/cjs/nv-menu.cjs.entry.js +24 -9
  72. package/dist/cjs/nv-menu.cjs.entry.js.map +1 -1
  73. package/dist/cjs/nv-menuitem.cjs.entry.js +1 -1
  74. package/dist/cjs/nv-notification.cjs.entry.js +71 -10
  75. package/dist/cjs/nv-notification.cjs.entry.js.map +1 -1
  76. package/dist/cjs/nv-notificationcontainer.cjs.entry.js +43 -0
  77. package/dist/cjs/nv-notificationcontainer.cjs.entry.js.map +1 -0
  78. package/dist/cjs/nv-popover.cjs.entry.js +69 -63
  79. package/dist/cjs/nv-popover.cjs.entry.js.map +1 -1
  80. package/dist/cjs/nv-row.cjs.entry.js +2 -2
  81. package/dist/cjs/nv-stack.cjs.entry.js +2 -2
  82. package/dist/cjs/nv-table.cjs.entry.js +216 -310
  83. package/dist/cjs/nv-table.cjs.entry.js.map +1 -1
  84. package/dist/cjs/nv-toggle.cjs.entry.js +4 -4
  85. package/dist/cjs/nv-toggle.cjs.entry.js.map +1 -1
  86. package/dist/cjs/nv-togglebutton.cjs.entry.js +2 -2
  87. package/dist/cjs/nv-togglebuttongroup.cjs.entry.js +2 -2
  88. package/dist/cjs/nv-togglebuttongroup.cjs.entry.js.map +1 -1
  89. package/dist/cjs/nv-tooltip.cjs.entry.js +2 -2
  90. package/dist/cjs/slide.animation-8bc27ed6.js +92 -0
  91. package/dist/cjs/slide.animation-8bc27ed6.js.map +1 -0
  92. package/dist/collection/animations/collapse.animation.js +4 -1
  93. package/dist/collection/animations/collapse.animation.js.map +1 -1
  94. package/dist/collection/animations/fade.animation.js +2 -2
  95. package/dist/collection/animations/fade.animation.js.map +1 -1
  96. package/dist/collection/animations/slide.animation.js +51 -29
  97. package/dist/collection/animations/slide.animation.js.map +1 -1
  98. package/dist/collection/collection-manifest.json +1 -1
  99. package/dist/collection/components/nv-accordion/nv-accordion.js +12 -9
  100. package/dist/collection/components/nv-accordion/nv-accordion.js.map +1 -1
  101. package/dist/collection/components/nv-accordion-item/nv-accordion-item.js.map +1 -1
  102. package/dist/collection/components/nv-accordion-item/styles/nv-accordion-item.css +1 -1
  103. package/dist/collection/components/nv-alert/nv-alert.css +1 -1
  104. package/dist/collection/components/nv-avatar/nv-avatar.css +1 -1
  105. package/dist/collection/components/nv-badge/nv-badge.js +7 -7
  106. package/dist/collection/components/nv-badge/nv-badge.js.map +1 -1
  107. package/dist/collection/components/nv-breadcrumb/nv-breadcrumb.css +1 -1
  108. package/dist/collection/components/nv-button/styles/nv-button.css +1 -1
  109. package/dist/collection/components/nv-datagrid/nv-datagrid.css +2 -2
  110. package/dist/collection/components/nv-dialog/nv-dialog.css +2 -2
  111. package/dist/collection/components/nv-dialog/nv-dialog.docs.js +13 -0
  112. package/dist/collection/components/nv-dialog/nv-dialog.docs.js.map +1 -1
  113. package/dist/collection/components/nv-dialog/nv-dialog.js +30 -27
  114. package/dist/collection/components/nv-dialog/nv-dialog.js.map +1 -1
  115. package/dist/collection/components/nv-dialogheader/nv-dialogheader.css +4 -4
  116. package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.css +4 -3
  117. package/dist/collection/components/nv-fielddate/nv-fielddate.js +49 -24
  118. package/dist/collection/components/nv-fielddate/nv-fielddate.js.map +1 -1
  119. package/dist/collection/components/nv-fielddate/styles/nv-fielddate.css +8 -8
  120. package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js +66 -43
  121. package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js.map +1 -1
  122. package/dist/collection/components/nv-fielddaterange/styles/nv-fielddaterange.css +8 -8
  123. package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.docs.js +26 -4
  124. package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.docs.js.map +1 -1
  125. package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js +32 -4
  126. package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js.map +1 -1
  127. package/dist/collection/components/nv-fielddropdown/styles/nv-fielddropdown.css +9 -9
  128. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js +186 -153
  129. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js.map +1 -1
  130. package/dist/collection/components/nv-fieldmultiselect/styles/nv-fieldmultiselect.css +9 -9
  131. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.css +8 -8
  132. package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.css +8 -8
  133. package/dist/collection/components/nv-fieldradio/nv-fieldradio.css +3 -3
  134. package/dist/collection/components/nv-fieldselect/nv-fieldselect.css +12 -12
  135. package/dist/collection/components/nv-fieldslider/styles/nv-fieldslider.css +7 -7
  136. package/dist/collection/components/nv-fieldtext/nv-fieldtext.css +8 -8
  137. package/dist/collection/components/nv-fieldtext/nv-fieldtext.docs.js +9 -1
  138. package/dist/collection/components/nv-fieldtext/nv-fieldtext.docs.js.map +1 -1
  139. package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.css +8 -8
  140. package/dist/collection/components/nv-fieldtime/nv-fieldtime.docs.js +22 -0
  141. package/dist/collection/components/nv-fieldtime/nv-fieldtime.docs.js.map +1 -1
  142. package/dist/collection/components/nv-fieldtime/nv-fieldtime.js +24 -9
  143. package/dist/collection/components/nv-fieldtime/nv-fieldtime.js.map +1 -1
  144. package/dist/collection/components/nv-fieldtime/styles/nv-fieldtime.css +8 -8
  145. package/dist/collection/components/nv-icon/nv-icons.js +16 -1
  146. package/dist/collection/components/nv-icon/nv-icons.js.map +1 -1
  147. package/dist/collection/components/nv-iconbutton/nv-iconbutton.css +2 -2
  148. package/dist/collection/components/nv-menu/nv-menu.docs.js +7 -0
  149. package/dist/collection/components/nv-menu/nv-menu.docs.js.map +1 -1
  150. package/dist/collection/components/nv-menu/nv-menu.js +26 -8
  151. package/dist/collection/components/nv-menu/nv-menu.js.map +1 -1
  152. package/dist/collection/components/nv-menuitem/nv-menuitem.js +1 -1
  153. package/dist/collection/components/nv-notification/nv-notification.js +104 -6
  154. package/dist/collection/components/nv-notification/nv-notification.js.map +1 -1
  155. package/dist/collection/components/nv-notification/styles/nv-notification.css +8 -8
  156. package/dist/collection/components/nv-notificationcontainer/nv-notificationcontainer.css +61 -0
  157. package/dist/collection/components/nv-notificationcontainer/nv-notificationcontainer.docs.js +7 -0
  158. package/dist/collection/components/nv-notificationcontainer/nv-notificationcontainer.docs.js.map +1 -0
  159. package/dist/collection/components/nv-notificationcontainer/nv-notificationcontainer.js +76 -0
  160. package/dist/collection/components/nv-notificationcontainer/nv-notificationcontainer.js.map +1 -0
  161. package/dist/collection/components/nv-popover/nv-popover.docs.js +11 -0
  162. package/dist/collection/components/nv-popover/nv-popover.docs.js.map +1 -1
  163. package/dist/collection/components/nv-popover/nv-popover.js +66 -60
  164. package/dist/collection/components/nv-popover/nv-popover.js.map +1 -1
  165. package/dist/collection/components/nv-row/nv-row.js +1 -1
  166. package/dist/collection/components/nv-stack/nv-stack.js +1 -1
  167. package/dist/collection/components/nv-table/nv-table.docs.js +16 -155
  168. package/dist/collection/components/nv-table/nv-table.docs.js.map +1 -1
  169. package/dist/collection/components/nv-table/nv-table.js +68 -496
  170. package/dist/collection/components/nv-table/nv-table.js.map +1 -1
  171. package/dist/collection/components/nv-table/nv-table.utils.js +175 -0
  172. package/dist/collection/components/nv-table/nv-table.utils.js.map +1 -0
  173. package/dist/collection/components/nv-table/styles/nv-table.css +84 -0
  174. package/dist/collection/components/nv-table/test/nv-table.utils.test.js +604 -0
  175. package/dist/collection/components/nv-table/test/nv-table.utils.test.js.map +1 -0
  176. package/dist/collection/components/nv-toggle/nv-toggle.css +3 -3
  177. package/dist/collection/components/nv-toggle/nv-toggle.js +2 -2
  178. package/dist/collection/components/nv-togglebutton/nv-togglebutton.js +1 -1
  179. package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.docs.js +1 -0
  180. package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.docs.js.map +1 -1
  181. package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.js +1 -3
  182. package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.js.map +1 -1
  183. package/dist/collection/components/nv-tooltip/nv-tooltip.js +1 -1
  184. package/dist/collection/utils/constants.js +9 -0
  185. package/dist/collection/utils/constants.js.map +1 -1
  186. package/dist/components/index.js +22 -7
  187. package/dist/components/index.js.map +1 -1
  188. package/dist/components/nv-accordion-item.js +1 -1
  189. package/dist/components/nv-accordion.js +10 -10
  190. package/dist/components/nv-accordion.js.map +1 -1
  191. package/dist/components/nv-alert.js +6 -6
  192. package/dist/components/nv-alert.js.map +1 -1
  193. package/dist/components/nv-avatar.js +4 -4
  194. package/dist/components/nv-avatar.js.map +1 -1
  195. package/dist/components/nv-badge.js +1 -1
  196. package/dist/components/nv-breadcrumb.js +4 -4
  197. package/dist/components/nv-breadcrumb.js.map +1 -1
  198. package/dist/components/nv-breadcrumbs.js +1 -1
  199. package/dist/components/nv-button.js +1 -1
  200. package/dist/components/nv-buttongroup.js +1 -1
  201. package/dist/components/nv-calendar.js +1 -1
  202. package/dist/components/nv-col.js +1 -1
  203. package/dist/components/nv-datagrid.js +175 -8
  204. package/dist/components/nv-datagrid.js.map +1 -1
  205. package/dist/components/nv-datagridcolumn.js +1 -1
  206. package/dist/components/nv-dialog.js +38 -35
  207. package/dist/components/nv-dialog.js.map +1 -1
  208. package/dist/components/nv-dialogfooter.js +1 -1
  209. package/dist/components/nv-dialogheader.js +1 -1
  210. package/dist/components/nv-fieldcheckbox.js +1 -1
  211. package/dist/components/nv-fielddate.js +57 -32
  212. package/dist/components/nv-fielddate.js.map +1 -1
  213. package/dist/components/nv-fielddaterange.js +74 -48
  214. package/dist/components/nv-fielddaterange.js.map +1 -1
  215. package/dist/components/nv-fielddropdown.js +40 -13
  216. package/dist/components/nv-fielddropdown.js.map +1 -1
  217. package/dist/components/nv-fielddropdownitem.js +1 -1
  218. package/dist/components/nv-fielddropdownitemcheck.js +1 -1
  219. package/dist/components/nv-fieldmultiselect.js +196 -164
  220. package/dist/components/nv-fieldmultiselect.js.map +1 -1
  221. package/dist/components/nv-fieldnumber.js +1 -1
  222. package/dist/components/nv-fieldpassword.js +5 -5
  223. package/dist/components/nv-fieldpassword.js.map +1 -1
  224. package/dist/components/nv-fieldradio.js +2 -2
  225. package/dist/components/nv-fieldradio.js.map +1 -1
  226. package/dist/components/nv-fieldselect.js +5 -5
  227. package/dist/components/nv-fieldselect.js.map +1 -1
  228. package/dist/components/nv-fieldslider.js +6 -6
  229. package/dist/components/nv-fieldslider.js.map +1 -1
  230. package/dist/components/nv-fieldtext.js +1 -1
  231. package/dist/components/nv-fieldtextarea.js +2 -2
  232. package/dist/components/nv-fieldtextarea.js.map +1 -1
  233. package/dist/components/nv-fieldtime.js +32 -18
  234. package/dist/components/nv-fieldtime.js.map +1 -1
  235. package/dist/components/nv-icon.js +1 -1
  236. package/dist/components/nv-iconbutton.js +1 -1
  237. package/dist/components/nv-loader.js +1 -1
  238. package/dist/components/nv-menu.js +30 -13
  239. package/dist/components/nv-menu.js.map +1 -1
  240. package/dist/components/nv-menuitem.js +1 -1
  241. package/dist/components/nv-notification.js +75 -12
  242. package/dist/components/nv-notification.js.map +1 -1
  243. package/dist/components/nv-notificationcontainer.d.ts +11 -0
  244. package/dist/components/nv-notificationcontainer.js +59 -0
  245. package/dist/components/nv-notificationcontainer.js.map +1 -0
  246. package/dist/components/nv-popover.js +1 -1
  247. package/dist/components/nv-row.js +2 -2
  248. package/dist/components/nv-stack.js +2 -2
  249. package/dist/components/nv-table.js +216 -328
  250. package/dist/components/nv-table.js.map +1 -1
  251. package/dist/components/nv-toggle.js +4 -4
  252. package/dist/components/nv-toggle.js.map +1 -1
  253. package/dist/components/nv-togglebutton.js +2 -2
  254. package/dist/components/nv-togglebuttongroup.js +2 -2
  255. package/dist/components/nv-togglebuttongroup.js.map +1 -1
  256. package/dist/components/nv-tooltip.js +1 -1
  257. package/dist/components/{p-1172e9bb.js → p-0d5ed1d7.js} +3 -3
  258. package/dist/components/p-0d5ed1d7.js.map +1 -0
  259. package/dist/components/{p-68fa3890.js → p-0e6f41c7.js} +3 -3
  260. package/dist/components/{p-68fa3890.js.map → p-0e6f41c7.js.map} +1 -1
  261. package/dist/components/{p-c59eccf1.js → p-0fd23531.js} +6 -6
  262. package/dist/components/{p-c59eccf1.js.map → p-0fd23531.js.map} +1 -1
  263. package/dist/components/{p-e6c04562.js → p-1639703f.js} +2 -2
  264. package/dist/components/{p-e6c04562.js.map → p-1639703f.js.map} +1 -1
  265. package/dist/components/{p-d4d310dd.js → p-2cc83e0c.js} +3 -3
  266. package/dist/components/{p-d4d310dd.js.map → p-2cc83e0c.js.map} +1 -1
  267. package/dist/components/p-2d64749f.js +191 -0
  268. package/dist/components/{p-2de17259.js.map → p-2d64749f.js.map} +1 -1
  269. package/dist/components/{p-e5dff125.js → p-31478080.js} +12 -12
  270. package/dist/components/{p-e5dff125.js.map → p-31478080.js.map} +1 -1
  271. package/dist/components/{p-85825688.js → p-378e3127.js} +7 -7
  272. package/dist/components/{p-85825688.js.map → p-378e3127.js.map} +1 -1
  273. package/dist/components/{p-31591941.js → p-3cd7a66f.js} +5 -2
  274. package/dist/components/p-3cd7a66f.js.map +1 -0
  275. package/dist/components/{p-51876ca1.js → p-429e01f3.js} +3 -3
  276. package/dist/components/p-429e01f3.js.map +1 -0
  277. package/dist/components/{p-fb560fa3.js → p-4697bd56.js} +2 -2
  278. package/dist/components/{p-fb560fa3.js.map → p-4697bd56.js.map} +1 -1
  279. package/dist/components/p-47d499b4.js +88 -0
  280. package/dist/components/p-47d499b4.js.map +1 -0
  281. package/dist/{esm/constants-d0f19e7b.js → components/p-51602221.js} +11 -2
  282. package/dist/components/p-51602221.js.map +1 -0
  283. package/dist/components/{p-aff3ed68.js → p-5829b9f7.js} +5 -2
  284. package/dist/components/p-5829b9f7.js.map +1 -0
  285. package/dist/components/{p-60244646.js → p-63595ea1.js} +70 -64
  286. package/dist/components/p-63595ea1.js.map +1 -0
  287. package/dist/components/{p-8439219d.js → p-7112612c.js} +5 -5
  288. package/dist/components/p-7112612c.js.map +1 -0
  289. package/dist/components/{p-ac91582e.js → p-715e5235.js} +3 -3
  290. package/dist/components/{p-ac91582e.js.map → p-715e5235.js.map} +1 -1
  291. package/dist/components/{p-eb443b26.js → p-9707528d.js} +4 -4
  292. package/dist/components/{p-eb443b26.js.map → p-9707528d.js.map} +1 -1
  293. package/dist/components/{p-fda58a76.js → p-98429fd7.js} +2 -2
  294. package/dist/components/{p-fda58a76.js.map → p-98429fd7.js.map} +1 -1
  295. package/dist/components/{p-930caa42.js → p-a1ef5e37.js} +6 -6
  296. package/dist/components/{p-930caa42.js.map → p-a1ef5e37.js.map} +1 -1
  297. package/dist/components/{p-ee0df37f.js → p-a271e3be.js} +3 -3
  298. package/dist/components/p-a271e3be.js.map +1 -0
  299. package/dist/components/p-c7401a7d.js +90 -0
  300. package/dist/components/p-c7401a7d.js.map +1 -0
  301. package/dist/components/{p-942f6619.js → p-df5d76a5.js} +3 -3
  302. package/dist/components/{p-942f6619.js.map → p-df5d76a5.js.map} +1 -1
  303. package/dist/components/{p-6ffba98c.js → p-f2bac2aa.js} +4 -4
  304. package/dist/components/{p-6ffba98c.js.map → p-f2bac2aa.js.map} +1 -1
  305. package/dist/esm/{collapse.animation-acda1bf5.js → collapse.animation-6e0b08df.js} +5 -2
  306. package/dist/esm/collapse.animation-6e0b08df.js.map +1 -0
  307. package/dist/{components/p-2277cfc8.js → esm/constants-69bafca2.js} +11 -2
  308. package/dist/esm/constants-69bafca2.js.map +1 -0
  309. package/dist/esm/{fade.animation-eb454088.js → fade.animation-9b939939.js} +3 -3
  310. package/dist/esm/{fade.animation-eb454088.js.map → fade.animation-9b939939.js.map} +1 -1
  311. package/dist/esm/{grow.animation-5b2abb3a.js → grow.animation-03fa5c19.js} +2 -2
  312. package/dist/esm/{grow.animation-5b2abb3a.js.map → grow.animation-03fa5c19.js.map} +1 -1
  313. package/dist/esm/{index-a1936cd0.js → index-dc2723f3.js} +9 -6
  314. package/dist/esm/index-dc2723f3.js.map +1 -0
  315. package/dist/esm/index.js +21 -6
  316. package/dist/esm/index.js.map +1 -1
  317. package/dist/esm/loader.js +3 -3
  318. package/dist/esm/native.js +3 -3
  319. package/dist/esm/nv-accordion-item.entry.js +3 -3
  320. package/dist/esm/nv-accordion-item.entry.js.map +1 -1
  321. package/dist/esm/nv-accordion.entry.js +6 -6
  322. package/dist/esm/nv-accordion.entry.js.map +1 -1
  323. package/dist/esm/nv-alert.entry.js +5 -5
  324. package/dist/esm/nv-alert.entry.js.map +1 -1
  325. package/dist/esm/nv-avatar.entry.js +3 -3
  326. package/dist/esm/nv-avatar.entry.js.map +1 -1
  327. package/dist/esm/nv-badge_2.entry.js +10 -10
  328. package/dist/esm/nv-badge_2.entry.js.map +1 -1
  329. package/dist/esm/nv-breadcrumb.entry.js +2 -2
  330. package/dist/esm/nv-breadcrumb.entry.js.map +1 -1
  331. package/dist/esm/nv-breadcrumbs.entry.js +1 -1
  332. package/dist/esm/nv-button.entry.js +3 -3
  333. package/dist/esm/nv-button.entry.js.map +1 -1
  334. package/dist/esm/nv-buttongroup.entry.js +1 -1
  335. package/dist/esm/nv-calendar.entry.js +2 -2
  336. package/dist/esm/nv-col.entry.js +1 -1
  337. package/dist/esm/nv-datagrid.entry.js +173 -6
  338. package/dist/esm/nv-datagrid.entry.js.map +1 -1
  339. package/dist/esm/nv-datagridcolumn.entry.js +1 -1
  340. package/dist/esm/nv-dialog.entry.js +33 -30
  341. package/dist/esm/nv-dialog.entry.js.map +1 -1
  342. package/dist/esm/nv-dialogfooter_2.entry.js +3 -3
  343. package/dist/esm/nv-dialogfooter_2.entry.js.map +1 -1
  344. package/dist/esm/nv-fieldcheckbox.entry.js +2 -2
  345. package/dist/esm/nv-fieldcheckbox.entry.js.map +1 -1
  346. package/dist/esm/nv-fielddate.entry.js +51 -26
  347. package/dist/esm/nv-fielddate.entry.js.map +1 -1
  348. package/dist/esm/nv-fielddaterange.entry.js +68 -42
  349. package/dist/esm/nv-fielddaterange.entry.js.map +1 -1
  350. package/dist/esm/nv-fielddropdown.entry.js +33 -7
  351. package/dist/esm/nv-fielddropdown.entry.js.map +1 -1
  352. package/dist/esm/nv-fielddropdownitem.entry.js +1 -1
  353. package/dist/esm/nv-fieldmultiselect.entry.js +187 -156
  354. package/dist/esm/nv-fieldmultiselect.entry.js.map +1 -1
  355. package/dist/esm/nv-fieldnumber.entry.js +2 -2
  356. package/dist/esm/nv-fieldnumber.entry.js.map +1 -1
  357. package/dist/esm/nv-fieldpassword.entry.js +2 -2
  358. package/dist/esm/nv-fieldpassword.entry.js.map +1 -1
  359. package/dist/esm/nv-fieldradio.entry.js +2 -2
  360. package/dist/esm/nv-fieldradio.entry.js.map +1 -1
  361. package/dist/esm/nv-fieldselect.entry.js +2 -2
  362. package/dist/esm/nv-fieldselect.entry.js.map +1 -1
  363. package/dist/esm/nv-fieldslider.entry.js +2 -2
  364. package/dist/esm/nv-fieldslider.entry.js.map +1 -1
  365. package/dist/esm/nv-fieldtext.entry.js +2 -2
  366. package/dist/esm/nv-fieldtext.entry.js.map +1 -1
  367. package/dist/esm/nv-fieldtextarea.entry.js +2 -2
  368. package/dist/esm/nv-fieldtextarea.entry.js.map +1 -1
  369. package/dist/esm/nv-fieldtime.entry.js +26 -13
  370. package/dist/esm/nv-fieldtime.entry.js.map +1 -1
  371. package/dist/esm/nv-icon.entry.js +3 -3
  372. package/dist/esm/nv-icon.entry.js.map +1 -1
  373. package/dist/esm/nv-iconbutton_2.entry.js +2 -2
  374. package/dist/esm/nv-iconbutton_2.entry.js.map +1 -1
  375. package/dist/esm/nv-menu.entry.js +24 -9
  376. package/dist/esm/nv-menu.entry.js.map +1 -1
  377. package/dist/esm/nv-menuitem.entry.js +1 -1
  378. package/dist/esm/nv-notification.entry.js +71 -10
  379. package/dist/esm/nv-notification.entry.js.map +1 -1
  380. package/dist/esm/nv-notificationcontainer.entry.js +39 -0
  381. package/dist/esm/nv-notificationcontainer.entry.js.map +1 -0
  382. package/dist/esm/nv-popover.entry.js +69 -63
  383. package/dist/esm/nv-popover.entry.js.map +1 -1
  384. package/dist/esm/nv-row.entry.js +2 -2
  385. package/dist/esm/nv-stack.entry.js +2 -2
  386. package/dist/esm/nv-table.entry.js +216 -310
  387. package/dist/esm/nv-table.entry.js.map +1 -1
  388. package/dist/esm/nv-toggle.entry.js +4 -4
  389. package/dist/esm/nv-toggle.entry.js.map +1 -1
  390. package/dist/esm/nv-togglebutton.entry.js +2 -2
  391. package/dist/esm/nv-togglebuttongroup.entry.js +2 -2
  392. package/dist/esm/nv-togglebuttongroup.entry.js.map +1 -1
  393. package/dist/esm/nv-tooltip.entry.js +2 -2
  394. package/dist/esm/slide.animation-f761030b.js +90 -0
  395. package/dist/esm/slide.animation-f761030b.js.map +1 -0
  396. package/dist/native/index.esm.js +1 -1
  397. package/dist/native/index.esm.js.map +1 -1
  398. package/dist/native/native.css +1 -1
  399. package/dist/native/native.esm.js +1 -1
  400. package/dist/native/native.esm.js.map +1 -1
  401. package/dist/native/{p-7bbcf477.entry.js → p-075d231e.entry.js} +2 -2
  402. package/dist/native/p-075d231e.entry.js.map +1 -0
  403. package/dist/native/p-107e80c6.entry.js +2 -0
  404. package/dist/native/p-107e80c6.entry.js.map +1 -0
  405. package/dist/native/{p-40c4a221.entry.js → p-112d096c.entry.js} +2 -2
  406. package/dist/native/p-112d096c.entry.js.map +1 -0
  407. package/dist/native/p-217de553.entry.js +2 -0
  408. package/dist/native/p-217de553.entry.js.map +1 -0
  409. package/dist/native/{p-85f8f11a.entry.js → p-230af58a.entry.js} +2 -2
  410. package/dist/native/p-23ee0384.entry.js +2 -0
  411. package/dist/native/{p-29f68e07.entry.js.map → p-23ee0384.entry.js.map} +1 -1
  412. package/dist/native/p-26513cbd.entry.js +2 -0
  413. package/dist/native/p-26513cbd.entry.js.map +1 -0
  414. package/dist/native/p-278613a3.entry.js +2 -0
  415. package/dist/native/{p-8c823928.entry.js.map → p-278613a3.entry.js.map} +1 -1
  416. package/dist/native/p-2dfd786f.entry.js +2 -0
  417. package/dist/native/p-2dfd786f.entry.js.map +1 -0
  418. package/dist/native/{p-d0a33e64.js → p-3060df80.js} +3 -3
  419. package/dist/native/p-3060df80.js.map +1 -0
  420. package/dist/native/p-3cd7a66f.js +2 -0
  421. package/dist/native/p-3cd7a66f.js.map +1 -0
  422. package/dist/native/p-445221dc.entry.js +2 -0
  423. package/dist/native/p-445221dc.entry.js.map +1 -0
  424. package/dist/native/{p-3f861ddc.entry.js → p-44a78545.entry.js} +2 -2
  425. package/dist/native/p-4697bd56.js +2 -0
  426. package/dist/native/p-4dc7483d.entry.js +2 -0
  427. package/dist/native/{p-cfd5785e.entry.js.map → p-4dc7483d.entry.js.map} +1 -1
  428. package/dist/native/p-4eaf417d.entry.js +13 -0
  429. package/dist/native/p-4eaf417d.entry.js.map +1 -0
  430. package/dist/native/p-5039ceb8.entry.js +2 -0
  431. package/dist/native/p-5039ceb8.entry.js.map +1 -0
  432. package/dist/native/p-51602221.js +2 -0
  433. package/dist/{cjs/constants-52f6f8e9.js.map → native/p-51602221.js.map} +1 -1
  434. package/dist/native/p-647a0765.entry.js +2 -0
  435. package/dist/native/p-647a0765.entry.js.map +1 -0
  436. package/dist/native/p-68dc02be.entry.js +2 -0
  437. package/dist/native/p-68dc02be.entry.js.map +1 -0
  438. package/dist/native/p-6d427897.entry.js +2 -0
  439. package/dist/native/{p-92931ab8.entry.js.map → p-6d427897.entry.js.map} +1 -1
  440. package/dist/native/p-701b48a4.entry.js +2 -0
  441. package/dist/native/{p-da2c7d3c.entry.js.map → p-701b48a4.entry.js.map} +1 -1
  442. package/dist/native/p-7c9bf981.entry.js +2 -0
  443. package/dist/native/p-835abdb9.entry.js +2 -0
  444. package/dist/native/{p-f5120223.entry.js.map → p-835abdb9.entry.js.map} +1 -1
  445. package/dist/native/{p-464bb197.entry.js → p-83765537.entry.js} +2 -2
  446. package/dist/native/p-88f9fca5.entry.js +2 -0
  447. package/dist/native/p-88f9fca5.entry.js.map +1 -0
  448. package/dist/native/{p-788e9ee5.entry.js → p-8e423742.entry.js} +3 -3
  449. package/dist/native/{p-788e9ee5.entry.js.map → p-8e423742.entry.js.map} +1 -1
  450. package/dist/native/p-95184ea2.entry.js +2 -0
  451. package/dist/native/p-95184ea2.entry.js.map +1 -0
  452. package/dist/native/p-9613087c.entry.js +2 -0
  453. package/dist/native/{p-2781637d.entry.js.map → p-9613087c.entry.js.map} +1 -1
  454. package/dist/native/{p-94dc9c41.entry.js → p-9d7e099f.entry.js} +2 -2
  455. package/dist/native/{p-ee0df37f.js → p-a271e3be.js} +2 -2
  456. package/dist/native/{p-ee0df37f.js.map → p-a271e3be.js.map} +1 -1
  457. package/dist/native/p-a2f58133.entry.js +2 -0
  458. package/dist/native/p-a2f58133.entry.js.map +1 -0
  459. package/dist/native/{p-1235c007.entry.js → p-acabac31.entry.js} +2 -2
  460. package/dist/native/p-acada158.entry.js +2 -0
  461. package/dist/native/p-acada158.entry.js.map +1 -0
  462. package/dist/native/{p-f5eb047e.entry.js → p-b02c896a.entry.js} +2 -2
  463. package/dist/native/p-b06f0e61.entry.js +2 -0
  464. package/dist/native/p-b06f0e61.entry.js.map +1 -0
  465. package/dist/native/p-b4c15f25.entry.js +2 -0
  466. package/dist/native/p-b4c15f25.entry.js.map +1 -0
  467. package/dist/native/p-bcf41cd0.entry.js +2 -0
  468. package/dist/native/p-c7401a7d.js +2 -0
  469. package/dist/native/p-c7401a7d.js.map +1 -0
  470. package/dist/native/p-ce97ce24.entry.js +2 -0
  471. package/dist/native/p-ce97ce24.entry.js.map +1 -0
  472. package/dist/native/p-d0db5e72.entry.js +2 -0
  473. package/dist/native/p-d0db5e72.entry.js.map +1 -0
  474. package/dist/native/p-d45ee8e5.entry.js +2 -0
  475. package/dist/native/{p-52b8c872.entry.js.map → p-d45ee8e5.entry.js.map} +1 -1
  476. package/dist/native/p-d7f444fb.entry.js +2 -0
  477. package/dist/native/p-d7f444fb.entry.js.map +1 -0
  478. package/dist/native/p-d878e90a.entry.js +2 -0
  479. package/dist/native/p-d878e90a.entry.js.map +1 -0
  480. package/dist/native/p-ddc41f1f.entry.js +2 -0
  481. package/dist/native/p-ddc41f1f.entry.js.map +1 -0
  482. package/dist/native/{p-d95ee31e.entry.js → p-dfb6b65e.entry.js} +2 -2
  483. package/dist/native/p-f30e0be6.entry.js +2 -0
  484. package/dist/native/p-f30e0be6.entry.js.map +1 -0
  485. package/dist/native/p-f3c73492.entry.js +2 -0
  486. package/dist/native/{p-ee516944.entry.js.map → p-f3c73492.entry.js.map} +1 -1
  487. package/dist/native/{p-9c5d6827.entry.js → p-fa78d8eb.entry.js} +2 -2
  488. package/dist/types/animations/slide.animation.d.ts +15 -4
  489. package/dist/types/components/nv-accordion/nv-accordion.d.ts +2 -4
  490. package/dist/types/components/nv-badge/nv-badge.d.ts +1 -1
  491. package/dist/types/components/nv-dialog/nv-dialog.d.ts +9 -8
  492. package/dist/types/components/nv-fielddate/nv-fielddate.d.ts +6 -3
  493. package/dist/types/components/nv-fielddaterange/nv-fielddaterange.d.ts +5 -4
  494. package/dist/types/components/nv-fielddropdown/nv-fielddropdown.d.ts +3 -1
  495. package/dist/types/components/nv-fieldmultiselect/nv-fieldmultiselect.d.ts +12 -11
  496. package/dist/types/components/nv-fieldtime/nv-fieldtime.d.ts +1 -0
  497. package/dist/types/components/nv-icon/nv-icons.d.ts +1 -1
  498. package/dist/types/components/nv-menu/nv-menu.d.ts +4 -1
  499. package/dist/types/components/nv-notification/nv-notification.d.ts +18 -0
  500. package/dist/types/components/nv-notificationcontainer/nv-notificationcontainer.d.ts +19 -0
  501. package/dist/types/components/nv-notificationcontainer/nv-notificationcontainer.docs.d.ts +4 -0
  502. package/dist/types/components/nv-popover/nv-popover.d.ts +10 -8
  503. package/dist/types/components/nv-table/nv-table.d.ts +6 -87
  504. package/dist/types/components/nv-table/nv-table.utils.d.ts +129 -0
  505. package/dist/types/components/nv-table/test/nv-table.utils.test.d.ts +1 -0
  506. package/dist/types/components/nv-togglebuttongroup/nv-togglebuttongroup.d.ts +0 -2
  507. package/dist/types/components.d.ts +63 -211
  508. package/dist/types/utils/constants.d.ts +8 -0
  509. package/dist/vscode-data.json +87 -43
  510. package/hydrate/index.js +973 -809
  511. package/hydrate/index.mjs +973 -809
  512. package/package.json +10 -10
  513. package/dist/cjs/collapse.animation-47397763.js.map +0 -1
  514. package/dist/cjs/dom.utils-4d43f69a.js +0 -170
  515. package/dist/cjs/dom.utils-4d43f69a.js.map +0 -1
  516. package/dist/cjs/fade.animation-cf6eba0d.js.map +0 -1
  517. package/dist/cjs/index-c56424e5.js.map +0 -1
  518. package/dist/cjs/nv-tablecolumn.cjs.entry.js +0 -21
  519. package/dist/cjs/nv-tablecolumn.cjs.entry.js.map +0 -1
  520. package/dist/cjs/slide.animation-bedfc827.js +0 -70
  521. package/dist/cjs/slide.animation-bedfc827.js.map +0 -1
  522. package/dist/collection/components/nv-table/nv-table.css +0 -35
  523. package/dist/collection/components/nv-tablecolumn/nv-tablecolumn.docs.js +0 -6
  524. package/dist/collection/components/nv-tablecolumn/nv-tablecolumn.docs.js.map +0 -1
  525. package/dist/collection/components/nv-tablecolumn/nv-tablecolumn.js +0 -52
  526. package/dist/collection/components/nv-tablecolumn/nv-tablecolumn.js.map +0 -1
  527. package/dist/components/nv-tablecolumn.d.ts +0 -11
  528. package/dist/components/nv-tablecolumn.js +0 -38
  529. package/dist/components/nv-tablecolumn.js.map +0 -1
  530. package/dist/components/p-1172e9bb.js.map +0 -1
  531. package/dist/components/p-2277cfc8.js.map +0 -1
  532. package/dist/components/p-2de17259.js +0 -191
  533. package/dist/components/p-31591941.js.map +0 -1
  534. package/dist/components/p-51876ca1.js.map +0 -1
  535. package/dist/components/p-60244646.js.map +0 -1
  536. package/dist/components/p-8439219d.js.map +0 -1
  537. package/dist/components/p-aff3ed68.js.map +0 -1
  538. package/dist/components/p-cb34aa4f.js +0 -167
  539. package/dist/components/p-cb34aa4f.js.map +0 -1
  540. package/dist/components/p-e0cd7e3a.js +0 -88
  541. package/dist/components/p-e0cd7e3a.js.map +0 -1
  542. package/dist/components/p-eda2f9f3.js +0 -68
  543. package/dist/components/p-eda2f9f3.js.map +0 -1
  544. package/dist/components/p-ee0df37f.js.map +0 -1
  545. package/dist/esm/collapse.animation-acda1bf5.js.map +0 -1
  546. package/dist/esm/constants-d0f19e7b.js.map +0 -1
  547. package/dist/esm/dom.utils-ac71e0ef.js +0 -167
  548. package/dist/esm/dom.utils-ac71e0ef.js.map +0 -1
  549. package/dist/esm/index-a1936cd0.js.map +0 -1
  550. package/dist/esm/nv-tablecolumn.entry.js +0 -17
  551. package/dist/esm/nv-tablecolumn.entry.js.map +0 -1
  552. package/dist/esm/slide.animation-f444aa0b.js +0 -68
  553. package/dist/esm/slide.animation-f444aa0b.js.map +0 -1
  554. package/dist/native/p-08582c21.entry.js +0 -2
  555. package/dist/native/p-08582c21.entry.js.map +0 -1
  556. package/dist/native/p-0a99c6fb.entry.js +0 -2
  557. package/dist/native/p-0a99c6fb.entry.js.map +0 -1
  558. package/dist/native/p-0e488b3d.entry.js +0 -2
  559. package/dist/native/p-0e488b3d.entry.js.map +0 -1
  560. package/dist/native/p-1ad1bff9.entry.js +0 -2
  561. package/dist/native/p-1ad1bff9.entry.js.map +0 -1
  562. package/dist/native/p-1f01fb64.entry.js +0 -2
  563. package/dist/native/p-1f01fb64.entry.js.map +0 -1
  564. package/dist/native/p-225a05bf.entry.js +0 -2
  565. package/dist/native/p-225a05bf.entry.js.map +0 -1
  566. package/dist/native/p-2277cfc8.js +0 -2
  567. package/dist/native/p-2277cfc8.js.map +0 -1
  568. package/dist/native/p-234cfa2e.entry.js +0 -2
  569. package/dist/native/p-25f2ce81.entry.js +0 -2
  570. package/dist/native/p-2781637d.entry.js +0 -2
  571. package/dist/native/p-29f68e07.entry.js +0 -2
  572. package/dist/native/p-31591941.js +0 -2
  573. package/dist/native/p-31591941.js.map +0 -1
  574. package/dist/native/p-3784efdc.entry.js +0 -2
  575. package/dist/native/p-3784efdc.entry.js.map +0 -1
  576. package/dist/native/p-40c4a221.entry.js.map +0 -1
  577. package/dist/native/p-52b8c872.entry.js +0 -2
  578. package/dist/native/p-5a43fe48.entry.js +0 -13
  579. package/dist/native/p-5a43fe48.entry.js.map +0 -1
  580. package/dist/native/p-5f0776cb.entry.js +0 -2
  581. package/dist/native/p-5f0776cb.entry.js.map +0 -1
  582. package/dist/native/p-6290951d.entry.js +0 -2
  583. package/dist/native/p-6290951d.entry.js.map +0 -1
  584. package/dist/native/p-7bbcf477.entry.js.map +0 -1
  585. package/dist/native/p-81952a3c.entry.js +0 -2
  586. package/dist/native/p-81952a3c.entry.js.map +0 -1
  587. package/dist/native/p-87784622.entry.js +0 -2
  588. package/dist/native/p-87784622.entry.js.map +0 -1
  589. package/dist/native/p-8c823928.entry.js +0 -2
  590. package/dist/native/p-92931ab8.entry.js +0 -2
  591. package/dist/native/p-9a46baa9.entry.js +0 -2
  592. package/dist/native/p-9a46baa9.entry.js.map +0 -1
  593. package/dist/native/p-a34beedf.entry.js +0 -2
  594. package/dist/native/p-a34beedf.entry.js.map +0 -1
  595. package/dist/native/p-bc01787b.entry.js +0 -2
  596. package/dist/native/p-bc01787b.entry.js.map +0 -1
  597. package/dist/native/p-cb34aa4f.js +0 -2
  598. package/dist/native/p-cb34aa4f.js.map +0 -1
  599. package/dist/native/p-cea942b9.entry.js +0 -2
  600. package/dist/native/p-cea942b9.entry.js.map +0 -1
  601. package/dist/native/p-cfd5785e.entry.js +0 -2
  602. package/dist/native/p-d0a33e64.js.map +0 -1
  603. package/dist/native/p-d0ef1bbb.entry.js +0 -2
  604. package/dist/native/p-d0ef1bbb.entry.js.map +0 -1
  605. package/dist/native/p-d88c416f.entry.js +0 -2
  606. package/dist/native/p-d88c416f.entry.js.map +0 -1
  607. package/dist/native/p-da2c7d3c.entry.js +0 -2
  608. package/dist/native/p-dd023fd6.entry.js +0 -2
  609. package/dist/native/p-dd023fd6.entry.js.map +0 -1
  610. package/dist/native/p-e765a624.entry.js +0 -2
  611. package/dist/native/p-e765a624.entry.js.map +0 -1
  612. package/dist/native/p-eda2f9f3.js +0 -2
  613. package/dist/native/p-eda2f9f3.js.map +0 -1
  614. package/dist/native/p-ee516944.entry.js +0 -2
  615. package/dist/native/p-f0cbfb3d.entry.js +0 -2
  616. package/dist/native/p-f0cbfb3d.entry.js.map +0 -1
  617. package/dist/native/p-f5120223.entry.js +0 -2
  618. package/dist/native/p-fb560fa3.js +0 -2
  619. package/dist/types/components/nv-tablecolumn/nv-tablecolumn.d.ts +0 -13
  620. package/dist/types/components/nv-tablecolumn/nv-tablecolumn.docs.d.ts +0 -4
  621. /package/dist/native/{p-85f8f11a.entry.js.map → p-230af58a.entry.js.map} +0 -0
  622. /package/dist/native/{p-3f861ddc.entry.js.map → p-44a78545.entry.js.map} +0 -0
  623. /package/dist/native/{p-fb560fa3.js.map → p-4697bd56.js.map} +0 -0
  624. /package/dist/native/{p-234cfa2e.entry.js.map → p-7c9bf981.entry.js.map} +0 -0
  625. /package/dist/native/{p-464bb197.entry.js.map → p-83765537.entry.js.map} +0 -0
  626. /package/dist/native/{p-94dc9c41.entry.js.map → p-9d7e099f.entry.js.map} +0 -0
  627. /package/dist/native/{p-1235c007.entry.js.map → p-acabac31.entry.js.map} +0 -0
  628. /package/dist/native/{p-f5eb047e.entry.js.map → p-b02c896a.entry.js.map} +0 -0
  629. /package/dist/native/{p-25f2ce81.entry.js.map → p-bcf41cd0.entry.js.map} +0 -0
  630. /package/dist/native/{p-d95ee31e.entry.js.map → p-dfb6b65e.entry.js.map} +0 -0
  631. /package/dist/native/{p-9c5d6827.entry.js.map → p-fa78d8eb.entry.js.map} +0 -0
@@ -0,0 +1,604 @@
1
+ /* eslint-disable jsdoc/require-jsdoc */
2
+ /* eslint-disable @typescript-eslint/no-explicit-any */
3
+ import { describe, it, expect, vi, beforeEach, afterEach } from "vitest";
4
+ import { TABLE_CONSTANTS, getHandleWidthForCurrentPointer, getPointerOffsetInCell, isInResizeHandle, calculateNewWidth, isValidTableCell, getClosestTableCell, setPointerCapture, releasePointerCapture, setUserSelectPrevention, getCellWidth, setCellWidth, calculatePointerDelta, createResizeState, isValidResizeState, updateCellWidthFromResize, } from "../nv-table.utils";
5
+ // Mock browser globals
6
+ const mockMatchMedia = vi.fn();
7
+ const mockDocumentBody = {
8
+ style: { userSelect: '' },
9
+ };
10
+ vi.stubGlobal('matchMedia', mockMatchMedia);
11
+ vi.stubGlobal('document', { body: mockDocumentBody });
12
+ vi.stubGlobal('HTMLElement', class MockHTMLElement {
13
+ });
14
+ /**
15
+ * Comprehensive tests for nv-table utilities
16
+ *
17
+ * These tests validate all utility functions:
18
+ * - Constants and configuration values
19
+ * - Pointer event calculations and handling
20
+ * - Column resize logic and constraints
21
+ * - DOM element validation and manipulation
22
+ * - Resize state management
23
+ * - Edge cases and error conditions
24
+ */
25
+ describe('nv-table.utils - Comprehensive Tests', () => {
26
+ // Mock DOM elements and browser APIs
27
+ let mockCell;
28
+ let mockPointerEvent;
29
+ beforeEach(() => {
30
+ // Reset mocks
31
+ vi.clearAllMocks();
32
+ // Setup matchMedia mock for each test
33
+ mockMatchMedia.mockImplementation(query => ({
34
+ matches: query.includes('coarse') ? false : true,
35
+ media: query,
36
+ }));
37
+ // Reset document body style
38
+ mockDocumentBody.style.userSelect = '';
39
+ // Mock HTMLTableCellElement with mutable offsetWidth
40
+ const mockCellProps = {
41
+ tagName: 'TH',
42
+ offsetWidth: 100,
43
+ style: { width: '' },
44
+ getBoundingClientRect: vi.fn().mockReturnValue({
45
+ left: 10,
46
+ top: 10,
47
+ width: 100,
48
+ height: 30,
49
+ }),
50
+ closest: vi.fn().mockReturnValue(null),
51
+ setPointerCapture: vi.fn(),
52
+ releasePointerCapture: vi.fn(),
53
+ };
54
+ // Make offsetWidth mutable for testing
55
+ Object.defineProperty(mockCellProps, 'offsetWidth', {
56
+ writable: true,
57
+ value: 100,
58
+ });
59
+ mockCell = mockCellProps;
60
+ // Mock PointerEvent
61
+ mockPointerEvent = {
62
+ pointerId: 1,
63
+ clientX: 50,
64
+ clientY: 20,
65
+ target: mockCell,
66
+ };
67
+ });
68
+ afterEach(() => {
69
+ vi.clearAllMocks();
70
+ });
71
+ describe('TABLE_CONSTANTS', () => {
72
+ it('should have correct constant values', () => {
73
+ expect(TABLE_CONSTANTS.HANDLE_W).toBe(12);
74
+ expect(TABLE_CONSTANTS.HANDLE_W_TOUCH).toBe(24);
75
+ expect(TABLE_CONSTANTS.MIN_W).toBe(40);
76
+ });
77
+ it('should be immutable', () => {
78
+ // Object.freeze prevents modification in strict mode
79
+ const originalValue = TABLE_CONSTANTS.HANDLE_W;
80
+ try {
81
+ TABLE_CONSTANTS.HANDLE_W = 20;
82
+ }
83
+ catch (_a) {
84
+ // Ignored - assignment may or may not throw depending on strict mode
85
+ }
86
+ expect(TABLE_CONSTANTS.HANDLE_W).toBe(originalValue);
87
+ });
88
+ });
89
+ describe('getHandleWidthForCurrentPointer', () => {
90
+ it('should return fine pointer width for mouse input', () => {
91
+ mockMatchMedia.mockReturnValue({ matches: false });
92
+ const result = getHandleWidthForCurrentPointer();
93
+ expect(result).toBe(TABLE_CONSTANTS.HANDLE_W);
94
+ expect(mockMatchMedia).toHaveBeenCalledWith('(pointer: coarse)');
95
+ });
96
+ it('should return touch width for coarse pointer input', () => {
97
+ mockMatchMedia.mockReturnValue({ matches: true });
98
+ const result = getHandleWidthForCurrentPointer();
99
+ expect(result).toBe(TABLE_CONSTANTS.HANDLE_W_TOUCH);
100
+ expect(mockMatchMedia).toHaveBeenCalledWith('(pointer: coarse)');
101
+ });
102
+ it('should handle matchMedia errors gracefully', () => {
103
+ mockMatchMedia.mockImplementation(() => {
104
+ throw new Error('matchMedia not supported');
105
+ });
106
+ expect(() => getHandleWidthForCurrentPointer()).toThrow();
107
+ });
108
+ });
109
+ describe('getPointerOffsetInCell', () => {
110
+ it('should calculate correct offset within cell', () => {
111
+ const event = { clientX: 60 };
112
+ mockCell.getBoundingClientRect = vi.fn().mockReturnValue({ left: 10 });
113
+ const result = getPointerOffsetInCell(event, mockCell);
114
+ expect(result).toBe(50); // 60 - 10
115
+ expect(mockCell.getBoundingClientRect).toHaveBeenCalled();
116
+ });
117
+ it('should handle zero offset', () => {
118
+ const event = { clientX: 10 };
119
+ mockCell.getBoundingClientRect = vi.fn().mockReturnValue({ left: 10 });
120
+ const result = getPointerOffsetInCell(event, mockCell);
121
+ expect(result).toBe(0);
122
+ });
123
+ it('should handle negative offset', () => {
124
+ const event = { clientX: 5 };
125
+ mockCell.getBoundingClientRect = vi.fn().mockReturnValue({ left: 10 });
126
+ const result = getPointerOffsetInCell(event, mockCell);
127
+ expect(result).toBe(-5);
128
+ });
129
+ it('should handle fractional coordinates', () => {
130
+ const event = { clientX: 15.7 };
131
+ mockCell.getBoundingClientRect = vi.fn().mockReturnValue({ left: 10.3 });
132
+ const result = getPointerOffsetInCell(event, mockCell);
133
+ expect(result).toBeCloseTo(5.4, 1);
134
+ });
135
+ });
136
+ describe('isInResizeHandle', () => {
137
+ it('should return true when pointer is in handle area', () => {
138
+ const result = isInResizeHandle(95, 100, 10);
139
+ expect(result).toBe(true);
140
+ });
141
+ it('should return true when pointer is exactly at handle boundary', () => {
142
+ const result = isInResizeHandle(90, 100, 10);
143
+ expect(result).toBe(true);
144
+ });
145
+ it('should return false when pointer is outside handle area', () => {
146
+ const result = isInResizeHandle(89, 100, 10);
147
+ expect(result).toBe(false);
148
+ });
149
+ it('should handle edge cases with zero dimensions', () => {
150
+ expect(isInResizeHandle(0, 0, 10)).toBe(true); // 0 >= 0 - 10 = -10 (true)
151
+ expect(isInResizeHandle(0, 10, 0)).toBe(false); // 0 >= 10 - 0 = 10 (false)
152
+ });
153
+ it('should handle large handle areas', () => {
154
+ const result = isInResizeHandle(50, 100, 60);
155
+ expect(result).toBe(true); // 50 >= 100 - 60 = 40
156
+ });
157
+ it('should handle fractional values', () => {
158
+ const result = isInResizeHandle(85.5, 100.2, 10.7);
159
+ expect(result).toBe(false); // 85.5 < 100.2 - 10.7 = 89.5
160
+ });
161
+ });
162
+ describe('calculateNewWidth', () => {
163
+ it('should calculate width with positive delta', () => {
164
+ const result = calculateNewWidth(100, 20);
165
+ expect(result).toBe(120);
166
+ });
167
+ it('should calculate width with negative delta', () => {
168
+ const result = calculateNewWidth(100, -20);
169
+ expect(result).toBe(80);
170
+ });
171
+ it('should enforce minimum width constraint', () => {
172
+ const result = calculateNewWidth(50, -30, 40);
173
+ expect(result).toBe(40); // Math.max(40, 50 - 30 = 20)
174
+ });
175
+ it('should use default minimum width when not provided', () => {
176
+ const result = calculateNewWidth(50, -30);
177
+ expect(result).toBe(TABLE_CONSTANTS.MIN_W);
178
+ });
179
+ it('should handle zero delta', () => {
180
+ const result = calculateNewWidth(100, 0);
181
+ expect(result).toBe(100);
182
+ });
183
+ it('should handle fractional values', () => {
184
+ const result = calculateNewWidth(100.5, 20.3, 30.7);
185
+ expect(result).toBeCloseTo(120.8, 1);
186
+ });
187
+ it('should handle extreme negative delta', () => {
188
+ const result = calculateNewWidth(100, -200, 40);
189
+ expect(result).toBe(40);
190
+ });
191
+ });
192
+ describe('isValidTableCell', () => {
193
+ it('should return true for TH elements', () => {
194
+ const th = { tagName: 'TH' };
195
+ expect(isValidTableCell(th)).toBe(true);
196
+ });
197
+ it('should return true for TD elements', () => {
198
+ const td = { tagName: 'TD' };
199
+ expect(isValidTableCell(td)).toBe(true);
200
+ });
201
+ it('should return false for other elements', () => {
202
+ const div = { tagName: 'DIV' };
203
+ expect(isValidTableCell(div)).toBe(false);
204
+ });
205
+ it('should return false for null', () => {
206
+ expect(isValidTableCell(null)).toBe(false);
207
+ });
208
+ it('should return false for undefined', () => {
209
+ expect(isValidTableCell(undefined)).toBe(false);
210
+ });
211
+ it('should handle case sensitivity', () => {
212
+ const th = { tagName: 'th' };
213
+ expect(isValidTableCell(th)).toBe(false); // tagName is always uppercase in real DOM
214
+ });
215
+ });
216
+ describe('getClosestTableCell', () => {
217
+ it('should return closest table cell element', () => {
218
+ const mockElement = Object.create(HTMLElement.prototype);
219
+ mockElement.closest = vi.fn().mockReturnValue(mockCell);
220
+ const result = getClosestTableCell(mockElement);
221
+ expect(result).toBe(mockCell);
222
+ expect(mockElement.closest).toHaveBeenCalledWith('th, td');
223
+ });
224
+ it('should return null for non-HTMLElement targets', () => {
225
+ const result = getClosestTableCell('not an element');
226
+ expect(result).toBeNull();
227
+ });
228
+ it('should return null when closest returns null', () => {
229
+ const mockElement = {
230
+ closest: vi.fn().mockReturnValue(null),
231
+ };
232
+ const result = getClosestTableCell(mockElement);
233
+ expect(result).toBeNull();
234
+ });
235
+ it('should return null when closest returns invalid element', () => {
236
+ const invalidElement = { tagName: 'DIV' };
237
+ const mockElement = {
238
+ closest: vi.fn().mockReturnValue(invalidElement),
239
+ };
240
+ const result = getClosestTableCell(mockElement);
241
+ expect(result).toBeNull();
242
+ });
243
+ it('should handle null target', () => {
244
+ const result = getClosestTableCell(null);
245
+ expect(result).toBeNull();
246
+ });
247
+ });
248
+ describe('setPointerCapture', () => {
249
+ it('should successfully set pointer capture', () => {
250
+ mockCell.setPointerCapture = vi.fn();
251
+ const result = setPointerCapture(mockCell, 123);
252
+ expect(result).toBe(true);
253
+ expect(mockCell.setPointerCapture).toHaveBeenCalledWith(123);
254
+ });
255
+ it('should handle missing setPointerCapture method', () => {
256
+ const cellWithoutCapture = { setPointerCapture: undefined };
257
+ const result = setPointerCapture(cellWithoutCapture, 123);
258
+ expect(result).toBe(true); // Method doesn't exist but doesn't throw
259
+ });
260
+ it('should handle setPointerCapture exceptions', () => {
261
+ mockCell.setPointerCapture = vi.fn().mockImplementation(() => {
262
+ throw new Error('Capture failed');
263
+ });
264
+ const result = setPointerCapture(mockCell, 123);
265
+ expect(result).toBe(false);
266
+ });
267
+ it('should handle different pointer IDs', () => {
268
+ mockCell.setPointerCapture = vi.fn();
269
+ setPointerCapture(mockCell, 999);
270
+ expect(mockCell.setPointerCapture).toHaveBeenCalledWith(999);
271
+ });
272
+ });
273
+ describe('releasePointerCapture', () => {
274
+ it('should successfully release pointer capture', () => {
275
+ mockCell.releasePointerCapture = vi.fn();
276
+ const result = releasePointerCapture(mockCell, 123);
277
+ expect(result).toBe(true);
278
+ expect(mockCell.releasePointerCapture).toHaveBeenCalledWith(123);
279
+ });
280
+ it('should handle missing releasePointerCapture method', () => {
281
+ const cellWithoutRelease = { releasePointerCapture: undefined };
282
+ const result = releasePointerCapture(cellWithoutRelease, 123);
283
+ expect(result).toBe(true);
284
+ });
285
+ it('should handle releasePointerCapture exceptions', () => {
286
+ mockCell.releasePointerCapture = vi.fn().mockImplementation(() => {
287
+ throw new Error('Release failed');
288
+ });
289
+ const result = releasePointerCapture(mockCell, 123);
290
+ expect(result).toBe(false);
291
+ });
292
+ });
293
+ describe('setUserSelectPrevention', () => {
294
+ it('should prevent user selection', () => {
295
+ setUserSelectPrevention(true);
296
+ expect(document.body.style.userSelect).toBe('none');
297
+ });
298
+ it('should restore user selection', () => {
299
+ document.body.style.userSelect = 'none';
300
+ setUserSelectPrevention(false);
301
+ expect(document.body.style.userSelect).toBe('');
302
+ });
303
+ it('should handle multiple calls', () => {
304
+ setUserSelectPrevention(true);
305
+ setUserSelectPrevention(true);
306
+ expect(document.body.style.userSelect).toBe('none');
307
+ setUserSelectPrevention(false);
308
+ expect(document.body.style.userSelect).toBe('');
309
+ });
310
+ });
311
+ describe('getCellWidth', () => {
312
+ it('should return cell offset width', () => {
313
+ mockCell.offsetWidth = 150;
314
+ const result = getCellWidth(mockCell);
315
+ expect(result).toBe(150);
316
+ });
317
+ it('should handle zero width', () => {
318
+ mockCell.offsetWidth = 0;
319
+ const result = getCellWidth(mockCell);
320
+ expect(result).toBe(0);
321
+ });
322
+ it('should handle fractional width (rounded by browser)', () => {
323
+ mockCell.offsetWidth = 100; // Browser rounds fractional offset values
324
+ const result = getCellWidth(mockCell);
325
+ expect(result).toBe(100);
326
+ });
327
+ });
328
+ describe('setCellWidth', () => {
329
+ it('should set cell width in pixels', () => {
330
+ setCellWidth(mockCell, 150);
331
+ expect(mockCell.style.width).toBe('150px');
332
+ });
333
+ it('should handle zero width', () => {
334
+ setCellWidth(mockCell, 0);
335
+ expect(mockCell.style.width).toBe('0px');
336
+ });
337
+ it('should handle fractional width', () => {
338
+ setCellWidth(mockCell, 150.5);
339
+ expect(mockCell.style.width).toBe('150.5px');
340
+ });
341
+ it('should overwrite previous width', () => {
342
+ mockCell.style.width = '100px';
343
+ setCellWidth(mockCell, 200);
344
+ expect(mockCell.style.width).toBe('200px');
345
+ });
346
+ });
347
+ describe('calculatePointerDelta', () => {
348
+ it('should calculate positive delta', () => {
349
+ const result = calculatePointerDelta(150, 100);
350
+ expect(result).toBe(50);
351
+ });
352
+ it('should calculate negative delta', () => {
353
+ const result = calculatePointerDelta(80, 100);
354
+ expect(result).toBe(-20);
355
+ });
356
+ it('should calculate zero delta', () => {
357
+ const result = calculatePointerDelta(100, 100);
358
+ expect(result).toBe(0);
359
+ });
360
+ it('should handle fractional coordinates', () => {
361
+ const result = calculatePointerDelta(150.7, 100.3);
362
+ expect(result).toBeCloseTo(50.4, 1);
363
+ });
364
+ it('should handle large deltas', () => {
365
+ const result = calculatePointerDelta(1000, 100);
366
+ expect(result).toBe(900);
367
+ });
368
+ });
369
+ describe('createResizeState', () => {
370
+ it('should create valid resize state', () => {
371
+ const event = {
372
+ pointerId: 42,
373
+ clientX: 200,
374
+ };
375
+ mockCell.offsetWidth = 120;
376
+ const result = createResizeState(mockCell, event);
377
+ expect(result).toEqual({
378
+ resizingCell: mockCell,
379
+ pointerId: 42,
380
+ startX: 200,
381
+ startWidth: 120,
382
+ });
383
+ });
384
+ it('should handle different pointer IDs', () => {
385
+ const event = {
386
+ pointerId: 999,
387
+ clientX: 300,
388
+ };
389
+ const result = createResizeState(mockCell, event);
390
+ expect(result.pointerId).toBe(999);
391
+ });
392
+ it('should capture current cell width at time of creation', () => {
393
+ mockCell.offsetWidth = 75;
394
+ const event = {
395
+ pointerId: 1,
396
+ clientX: 100,
397
+ };
398
+ const result = createResizeState(mockCell, event);
399
+ expect(result.startWidth).toBe(75);
400
+ });
401
+ });
402
+ describe('isValidResizeState', () => {
403
+ const mockState = {
404
+ resizingCell: mockCell,
405
+ pointerId: 42,
406
+ startX: 100,
407
+ startWidth: 120,
408
+ };
409
+ it('should return true for matching pointer event', () => {
410
+ const event = { pointerId: 42 };
411
+ const result = isValidResizeState(mockState, event);
412
+ expect(result).toBe(true);
413
+ });
414
+ it('should return false for non-matching pointer ID', () => {
415
+ const event = { pointerId: 43 };
416
+ const result = isValidResizeState(mockState, event);
417
+ expect(result).toBe(false);
418
+ });
419
+ it('should return false for null state', () => {
420
+ const event = { pointerId: 42 };
421
+ const result = isValidResizeState(null, event);
422
+ expect(result).toBe(false);
423
+ });
424
+ it('should handle edge case pointer IDs', () => {
425
+ const zeroIdState = Object.assign(Object.assign({}, mockState), { pointerId: 0 });
426
+ const event = { pointerId: 0 };
427
+ const result = isValidResizeState(zeroIdState, event);
428
+ expect(result).toBe(true);
429
+ });
430
+ });
431
+ describe('updateCellWidthFromResize', () => {
432
+ it('should update cell width during resize', () => {
433
+ const state = {
434
+ resizingCell: mockCell,
435
+ pointerId: 1,
436
+ startX: 100,
437
+ startWidth: 120,
438
+ };
439
+ const event = { clientX: 130 };
440
+ updateCellWidthFromResize(state, event);
441
+ expect(mockCell.style.width).toBe('150px'); // 120 + (130 - 100) = 150
442
+ });
443
+ it('should enforce minimum width constraint', () => {
444
+ const state = {
445
+ resizingCell: mockCell,
446
+ pointerId: 1,
447
+ startX: 100,
448
+ startWidth: 60,
449
+ };
450
+ const event = { clientX: 50 };
451
+ updateCellWidthFromResize(state, event, 40);
452
+ expect(mockCell.style.width).toBe('40px'); // Constrained to minimum
453
+ });
454
+ it('should use default minimum width', () => {
455
+ const state = {
456
+ resizingCell: mockCell,
457
+ pointerId: 1,
458
+ startX: 100,
459
+ startWidth: 50,
460
+ };
461
+ const event = { clientX: 40 };
462
+ updateCellWidthFromResize(state, event);
463
+ expect(mockCell.style.width).toBe(`${TABLE_CONSTANTS.MIN_W}px`);
464
+ });
465
+ it('should handle negative deltas', () => {
466
+ const state = {
467
+ resizingCell: mockCell,
468
+ pointerId: 1,
469
+ startX: 100,
470
+ startWidth: 120,
471
+ };
472
+ const event = { clientX: 80 };
473
+ updateCellWidthFromResize(state, event);
474
+ expect(mockCell.style.width).toBe('100px'); // 120 + (80 - 100) = 100
475
+ });
476
+ });
477
+ describe('Integration Scenarios', () => {
478
+ it('should handle complete resize workflow', () => {
479
+ // Setup initial state
480
+ const initialEvent = {
481
+ pointerId: 1,
482
+ clientX: 100,
483
+ target: mockCell,
484
+ };
485
+ // Create resize state
486
+ const state = createResizeState(mockCell, initialEvent);
487
+ expect(isValidResizeState(state, initialEvent)).toBe(true);
488
+ // Simulate pointer move
489
+ const moveEvent = { pointerId: 1, clientX: 130 };
490
+ expect(isValidResizeState(state, moveEvent)).toBe(true);
491
+ updateCellWidthFromResize(state, moveEvent);
492
+ // Verify width was updated
493
+ expect(mockCell.style.width).toContain('px');
494
+ });
495
+ it('should handle pointer capture workflow', () => {
496
+ mockCell.setPointerCapture = vi.fn();
497
+ mockCell.releasePointerCapture = vi.fn();
498
+ // Set capture
499
+ const setCaptureResult = setPointerCapture(mockCell, 123);
500
+ expect(setCaptureResult).toBe(true);
501
+ // Release capture
502
+ const releaseCaptureResult = releasePointerCapture(mockCell, 123);
503
+ expect(releaseCaptureResult).toBe(true);
504
+ expect(mockCell.setPointerCapture).toHaveBeenCalledWith(123);
505
+ expect(mockCell.releasePointerCapture).toHaveBeenCalledWith(123);
506
+ });
507
+ it('should handle user selection prevention workflow', () => {
508
+ // Start resize - prevent selection
509
+ setUserSelectPrevention(true);
510
+ expect(document.body.style.userSelect).toBe('none');
511
+ // End resize - restore selection
512
+ setUserSelectPrevention(false);
513
+ expect(document.body.style.userSelect).toBe('');
514
+ });
515
+ it('should validate resize handle detection', () => {
516
+ const event = { clientX: 95 };
517
+ mockCell.getBoundingClientRect = vi.fn().mockReturnValue({ left: 0 });
518
+ mockCell.offsetWidth = 100;
519
+ const offsetX = getPointerOffsetInCell(event, mockCell);
520
+ const cellWidth = getCellWidth(mockCell);
521
+ const handleWidth = getHandleWidthForCurrentPointer();
522
+ const inHandle = isInResizeHandle(offsetX, cellWidth, handleWidth);
523
+ expect(offsetX).toBe(95);
524
+ expect(cellWidth).toBe(100);
525
+ expect(inHandle).toBe(true); // 95 >= 100 - handleWidth
526
+ });
527
+ });
528
+ describe('Edge Cases and Error Handling', () => {
529
+ it('should handle extreme coordinate values', () => {
530
+ const extremeEvent = { clientX: Number.MAX_SAFE_INTEGER };
531
+ mockCell.getBoundingClientRect = vi.fn().mockReturnValue({ left: 0 });
532
+ const offset = getPointerOffsetInCell(extremeEvent, mockCell);
533
+ expect(typeof offset).toBe('number');
534
+ expect(isFinite(offset)).toBe(true);
535
+ });
536
+ it('should handle zero-sized cells', () => {
537
+ mockCell.offsetWidth = 0;
538
+ const state = createResizeState(mockCell, mockPointerEvent);
539
+ expect(state.startWidth).toBe(0);
540
+ const moveEvent = { pointerId: 1, clientX: 50 };
541
+ updateCellWidthFromResize(state, moveEvent);
542
+ expect(mockCell.style.width).toBe(`${TABLE_CONSTANTS.MIN_W}px`);
543
+ });
544
+ it('should handle rapid pointer ID changes', () => {
545
+ const state1 = createResizeState(mockCell, {
546
+ pointerId: 1,
547
+ clientX: 100,
548
+ });
549
+ const state2 = createResizeState(mockCell, {
550
+ pointerId: 2,
551
+ clientX: 100,
552
+ });
553
+ const event1 = { pointerId: 1 };
554
+ const event2 = { pointerId: 2 };
555
+ expect(isValidResizeState(state1, event1)).toBe(true);
556
+ expect(isValidResizeState(state1, event2)).toBe(false);
557
+ expect(isValidResizeState(state2, event1)).toBe(false);
558
+ expect(isValidResizeState(state2, event2)).toBe(true);
559
+ });
560
+ it('should handle missing DOM methods gracefully', () => {
561
+ const incompleteCell = {
562
+ tagName: 'TH',
563
+ offsetWidth: 100,
564
+ style: { width: '' },
565
+ getBoundingClientRect: undefined,
566
+ };
567
+ expect(() => {
568
+ getPointerOffsetInCell(mockPointerEvent, incompleteCell);
569
+ }).toThrow();
570
+ });
571
+ });
572
+ describe('Performance and Memory', () => {
573
+ it('should not create unnecessary objects in hot paths', () => {
574
+ var _a, _b;
575
+ const startMemory = ((_a = performance.memory) === null || _a === void 0 ? void 0 : _a.usedJSHeapSize) || 0;
576
+ // Run calculations that should not allocate much memory
577
+ for (let i = 0; i < 1000; i++) {
578
+ calculateNewWidth(100 + i, (i % 20) - 10);
579
+ calculatePointerDelta(i + 50, i);
580
+ isInResizeHandle(i % 100, 100, 10);
581
+ }
582
+ const endMemory = ((_b = performance.memory) === null || _b === void 0 ? void 0 : _b.usedJSHeapSize) || 0;
583
+ const memoryIncrease = endMemory - startMemory;
584
+ // This is a loose check - mainly ensuring we don't have massive memory leaks
585
+ expect(memoryIncrease).toBeLessThan(1000000); // Less than 1MB increase
586
+ });
587
+ it('should handle high-frequency resize updates', () => {
588
+ const state = createResizeState(mockCell, mockPointerEvent);
589
+ const startTime = performance.now();
590
+ // Simulate high-frequency updates
591
+ for (let i = 0; i < 100; i++) {
592
+ const event = { pointerId: 1, clientX: 100 + i };
593
+ if (isValidResizeState(state, event)) {
594
+ updateCellWidthFromResize(state, event);
595
+ }
596
+ }
597
+ const endTime = performance.now();
598
+ const duration = endTime - startTime;
599
+ // Should complete quickly
600
+ expect(duration).toBeLessThan(100); // Less than 100ms for 100 updates
601
+ });
602
+ });
603
+ });
604
+ //# sourceMappingURL=nv-table.utils.test.js.map