@nanoporetech-digital/components 5.11.9 → 5.12.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 (451) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/cjs/{component-store-149aeffe.js → component-store-7427cb36.js} +2 -2
  3. package/dist/cjs/component-store-7427cb36.js.map +1 -0
  4. package/dist/cjs/{drag-777bd8dd.js → drag-1cdd881b.js} +9 -9
  5. package/dist/cjs/drag-1cdd881b.js.map +1 -0
  6. package/dist/cjs/{fade-dcabf3c1.js → fade-738dbd13.js} +2 -2
  7. package/dist/cjs/{fade-dcabf3c1.js.map → fade-738dbd13.js.map} +1 -1
  8. package/dist/cjs/{form-control-cae1e493.js → form-control-9a2379b4.js} +3 -3
  9. package/dist/cjs/form-control-9a2379b4.js.map +1 -0
  10. package/dist/cjs/{fullscreen-d24940a1.js → fullscreen-a994dc5b.js} +2 -2
  11. package/dist/cjs/{fullscreen-d24940a1.js.map → fullscreen-a994dc5b.js.map} +1 -1
  12. package/dist/cjs/{index-72ee0363.js → index-ece1cb9e.js} +10 -2
  13. package/dist/cjs/index-ece1cb9e.js.map +1 -0
  14. package/dist/cjs/index.cjs.js +35 -9
  15. package/dist/cjs/index.cjs.js.map +1 -1
  16. package/dist/cjs/{lazyload-f6be7590.js → lazyload-d532de2a.js} +2 -2
  17. package/dist/cjs/{lazyload-f6be7590.js.map → lazyload-d532de2a.js.map} +1 -1
  18. package/dist/cjs/loader.cjs.js +1 -1
  19. package/dist/cjs/{modal-b9b40f6d.js → modal-f9dce001.js} +2 -3
  20. package/dist/cjs/modal-f9dce001.js.map +1 -0
  21. package/dist/cjs/nano-accordion.cjs.entry.js +5 -2
  22. package/dist/cjs/nano-accordion.cjs.entry.js.map +1 -1
  23. package/dist/cjs/nano-alert.cjs.entry.js +3 -3
  24. package/dist/cjs/nano-alert.cjs.entry.js.map +1 -1
  25. package/dist/cjs/nano-algolia-filter.cjs.entry.js +3 -3
  26. package/dist/cjs/nano-algolia-filter.cjs.entry.js.map +1 -1
  27. package/dist/cjs/nano-algolia.cjs.entry.js +2 -2
  28. package/dist/cjs/nano-algolia.cjs.entry.js.map +1 -1
  29. package/dist/cjs/nano-checkbox-group.cjs.entry.js +12 -14
  30. package/dist/cjs/nano-checkbox-group.cjs.entry.js.map +1 -1
  31. package/dist/cjs/nano-checkbox.cjs.entry.js +2 -2
  32. package/dist/cjs/nano-checkbox.cjs.entry.js.map +1 -1
  33. package/dist/cjs/nano-components.cjs.js +1 -1
  34. package/dist/cjs/nano-datalist_3.cjs.entry.js +16 -25
  35. package/dist/cjs/nano-datalist_3.cjs.entry.js.map +1 -1
  36. package/dist/cjs/nano-date-input.cjs.entry.js +4 -4
  37. package/dist/cjs/nano-date-input.cjs.entry.js.map +1 -1
  38. package/dist/cjs/nano-date-picker.cjs.entry.js +2 -2
  39. package/dist/cjs/nano-date-picker.cjs.entry.js.map +1 -1
  40. package/dist/cjs/nano-demo.cjs.entry.js +8 -12
  41. package/dist/cjs/nano-demo.cjs.entry.js.map +1 -1
  42. package/dist/cjs/nano-details.cjs.entry.js +1 -1
  43. package/dist/cjs/nano-dialog.cjs.entry.js +2 -2
  44. package/dist/cjs/nano-drawer.cjs.entry.js +3 -3
  45. package/dist/cjs/nano-drawer.cjs.entry.js.map +1 -1
  46. package/dist/cjs/nano-dropdown.cjs.entry.js +6 -7
  47. package/dist/cjs/nano-dropdown.cjs.entry.js.map +1 -1
  48. package/dist/cjs/nano-field-validator.cjs.entry.js +3 -6
  49. package/dist/cjs/nano-field-validator.cjs.entry.js.map +1 -1
  50. package/dist/cjs/nano-file-upload.cjs.entry.js +2 -2
  51. package/dist/cjs/nano-file-upload.cjs.entry.js.map +1 -1
  52. package/dist/cjs/nano-global-nav-user-profile_3.cjs.entry.js +101 -33
  53. package/dist/cjs/nano-global-nav-user-profile_3.cjs.entry.js.map +1 -1
  54. package/dist/cjs/nano-global-nav.cjs.entry.js +18 -24
  55. package/dist/cjs/nano-global-nav.cjs.entry.js.map +1 -1
  56. package/dist/cjs/nano-icon-button_2.cjs.entry.js +2 -4
  57. package/dist/cjs/nano-icon-button_2.cjs.entry.js.map +1 -1
  58. package/dist/cjs/nano-icon.cjs.entry.js +7 -2
  59. package/dist/cjs/nano-icon.cjs.entry.js.map +1 -1
  60. package/dist/cjs/nano-input.cjs.entry.js +21 -7
  61. package/dist/cjs/nano-input.cjs.entry.js.map +1 -1
  62. package/dist/cjs/nano-range.cjs.entry.js +2 -2
  63. package/dist/cjs/{nano-slides-2f3dcc02.js → nano-slides-d8032939.js} +23 -22
  64. package/dist/cjs/nano-slides-d8032939.js.map +1 -0
  65. package/dist/cjs/nano-slides.cjs.entry.js +1 -1
  66. package/dist/cjs/nano-sortable.cjs.entry.js +7 -9
  67. package/dist/cjs/nano-sortable.cjs.entry.js.map +1 -1
  68. package/dist/cjs/nano-split-pane.cjs.entry.js +1 -1
  69. package/dist/cjs/nano-tab-content.cjs.entry.js +1 -1
  70. package/dist/cjs/nano-tab-content.cjs.entry.js.map +1 -1
  71. package/dist/cjs/nano-tab-group.cjs.entry.js +6 -8
  72. package/dist/cjs/nano-tab-group.cjs.entry.js.map +1 -1
  73. package/dist/cjs/{nano-table-43f4377f.js → nano-table-84da62a4.js} +53 -53
  74. package/dist/cjs/nano-table-84da62a4.js.map +1 -0
  75. package/dist/cjs/nano-table.cjs.entry.js +1 -1
  76. package/dist/cjs/{page-dots-ae2cefb4.js → page-dots-d360366a.js} +2 -2
  77. package/dist/cjs/{page-dots-ae2cefb4.js.map → page-dots-d360366a.js.map} +1 -1
  78. package/dist/cjs/{table.worker-f258383d.js → table.worker-4aad752d.js} +1 -1
  79. package/dist/cjs/{table.worker-399650a3.js → table.worker-f386d031.js} +3 -3
  80. package/dist/cjs/table.worker-f386d031.js.map +1 -0
  81. package/dist/cjs/{theme-9cbe28c5.js → theme-50275e1a.js} +7 -2
  82. package/dist/cjs/theme-50275e1a.js.map +1 -0
  83. package/dist/cjs/{transitions-cc18619c.js → transitions-20fce787.js} +7 -2
  84. package/dist/cjs/transitions-20fce787.js.map +1 -0
  85. package/dist/collection/components/accordion/accordion.js +4 -1
  86. package/dist/collection/components/accordion/accordion.js.map +1 -1
  87. package/dist/collection/components/alert/alert.helpers.js +24 -6
  88. package/dist/collection/components/alert/alert.helpers.js.map +1 -1
  89. package/dist/collection/components/alert/alert.js +1 -1
  90. package/dist/collection/components/alert/alert.js.map +1 -1
  91. package/dist/collection/components/algolia/algolia-filter.js +2 -2
  92. package/dist/collection/components/algolia/algolia-filter.js.map +1 -1
  93. package/dist/collection/components/algolia/algolia.js +1 -1
  94. package/dist/collection/components/algolia/algolia.js.map +1 -1
  95. package/dist/collection/components/checkbox/checkbox-group.js +11 -13
  96. package/dist/collection/components/checkbox/checkbox-group.js.map +1 -1
  97. package/dist/collection/components/checkbox/checkbox.js +1 -1
  98. package/dist/collection/components/checkbox/checkbox.js.map +1 -1
  99. package/dist/collection/components/datalist/datalist.js +14 -21
  100. package/dist/collection/components/datalist/datalist.js.map +1 -1
  101. package/dist/collection/components/date-input/date-input.js +3 -3
  102. package/dist/collection/components/date-input/date-input.js.map +1 -1
  103. package/dist/collection/components/date-picker/date-picker.js +1 -1
  104. package/dist/collection/components/date-picker/date-picker.js.map +1 -1
  105. package/dist/collection/components/demo/demo.js +8 -12
  106. package/dist/collection/components/demo/demo.js.map +1 -1
  107. package/dist/collection/components/dialog/dialog.helpers.js +11 -3
  108. package/dist/collection/components/dialog/dialog.helpers.js.map +1 -1
  109. package/dist/collection/components/drawer/drawer.js +1 -1
  110. package/dist/collection/components/drawer/drawer.js.map +1 -1
  111. package/dist/collection/components/dropdown/dropdown.js +6 -7
  112. package/dist/collection/components/dropdown/dropdown.js.map +1 -1
  113. package/dist/collection/components/field-validator/field-validator.js +3 -6
  114. package/dist/collection/components/field-validator/field-validator.js.map +1 -1
  115. package/dist/collection/components/file-upload/file-upload.js +2 -2
  116. package/dist/collection/components/file-upload/file-upload.js.map +1 -1
  117. package/dist/collection/components/form-control/form-control.js +2 -2
  118. package/dist/collection/components/form-control/form-control.js.map +1 -1
  119. package/dist/collection/components/global-nav/assets/ont-logo-inverse.svg +47 -0
  120. package/dist/collection/components/global-nav/global-nav-user-profile.js +1 -2
  121. package/dist/collection/components/global-nav/global-nav-user-profile.js.map +1 -1
  122. package/dist/collection/components/global-nav/global-nav.js +4 -8
  123. package/dist/collection/components/global-nav/global-nav.js.map +1 -1
  124. package/dist/collection/components/icon/icon.js +6 -1
  125. package/dist/collection/components/icon/icon.js.map +1 -1
  126. package/dist/collection/components/input/input.js +19 -5
  127. package/dist/collection/components/input/input.js.map +1 -1
  128. package/dist/collection/components/menu/menu.js +2 -4
  129. package/dist/collection/components/menu/menu.js.map +1 -1
  130. package/dist/collection/components/select/select.css +2 -1
  131. package/dist/collection/components/select/select.js +153 -31
  132. package/dist/collection/components/select/select.js.map +1 -1
  133. package/dist/collection/components/slides/slides.js +19 -46
  134. package/dist/collection/components/slides/slides.js.map +1 -1
  135. package/dist/collection/components/sortable/sortable.js +6 -8
  136. package/dist/collection/components/sortable/sortable.js.map +1 -1
  137. package/dist/collection/components/table/table.cell.js +8 -8
  138. package/dist/collection/components/table/table.cell.js.map +1 -1
  139. package/dist/collection/components/table/table.header.js +11 -4
  140. package/dist/collection/components/table/table.header.js.map +1 -1
  141. package/dist/collection/components/table/table.js +12 -17
  142. package/dist/collection/components/table/table.js.map +1 -1
  143. package/dist/collection/components/table/table.row.js +11 -11
  144. package/dist/collection/components/table/table.row.js.map +1 -1
  145. package/dist/collection/components/table/table.store.js +2 -3
  146. package/dist/collection/components/table/table.store.js.map +1 -1
  147. package/dist/collection/components/table/table.utils.js +7 -8
  148. package/dist/collection/components/table/table.utils.js.map +1 -1
  149. package/dist/collection/components/table/table.worker.js +3 -3
  150. package/dist/collection/components/table/table.worker.js.map +1 -1
  151. package/dist/collection/components/tabs/tab-content.css +0 -1
  152. package/dist/collection/components/tabs/tab-group.js +3 -5
  153. package/dist/collection/components/tabs/tab-group.js.map +1 -1
  154. package/dist/collection/components/tooltip/tooltip.js +2 -4
  155. package/dist/collection/components/tooltip/tooltip.js.map +1 -1
  156. package/dist/collection/utils/drag.js +8 -8
  157. package/dist/collection/utils/drag.js.map +1 -1
  158. package/dist/collection/utils/fetch.js +12 -15
  159. package/dist/collection/utils/fetch.js.map +1 -1
  160. package/dist/collection/utils/gesture/index.js +9 -1
  161. package/dist/collection/utils/gesture/index.js.map +1 -1
  162. package/dist/collection/utils/modal.js +1 -2
  163. package/dist/collection/utils/modal.js.map +1 -1
  164. package/dist/collection/utils/store/get-set.js +1 -1
  165. package/dist/collection/utils/store/get-set.js.map +1 -1
  166. package/dist/collection/utils/testing/index.js +2 -2
  167. package/dist/collection/utils/testing/index.js.map +1 -1
  168. package/dist/collection/utils/theme.js +6 -1
  169. package/dist/collection/utils/theme.js.map +1 -1
  170. package/dist/collection/utils/transitions.js +6 -1
  171. package/dist/collection/utils/transitions.js.map +1 -1
  172. package/dist/components/algolia.js +1 -1
  173. package/dist/components/algolia.js.map +1 -1
  174. package/dist/components/component-store.js +1 -1
  175. package/dist/components/component-store.js.map +1 -1
  176. package/dist/components/datalist.js +14 -21
  177. package/dist/components/datalist.js.map +1 -1
  178. package/dist/components/date-picker.js +1 -1
  179. package/dist/components/date-picker.js.map +1 -1
  180. package/dist/components/drag.js +8 -8
  181. package/dist/components/drag.js.map +1 -1
  182. package/dist/components/dropdown.js +6 -7
  183. package/dist/components/dropdown.js.map +1 -1
  184. package/dist/components/form-control.js +2 -2
  185. package/dist/components/form-control.js.map +1 -1
  186. package/dist/components/global-nav-user-profile.js +1 -2
  187. package/dist/components/global-nav-user-profile.js.map +1 -1
  188. package/dist/components/icon.js +6 -1
  189. package/dist/components/icon.js.map +1 -1
  190. package/dist/components/index.js +35 -9
  191. package/dist/components/index.js.map +1 -1
  192. package/dist/components/index3.js +9 -1
  193. package/dist/components/index3.js.map +1 -1
  194. package/dist/components/input.js +19 -5
  195. package/dist/components/input.js.map +1 -1
  196. package/dist/components/menu.js +2 -4
  197. package/dist/components/menu.js.map +1 -1
  198. package/dist/components/modal.js +1 -2
  199. package/dist/components/modal.js.map +1 -1
  200. package/dist/components/nano-accordion.js +4 -1
  201. package/dist/components/nano-accordion.js.map +1 -1
  202. package/dist/components/nano-alert.js +1 -1
  203. package/dist/components/nano-alert.js.map +1 -1
  204. package/dist/components/nano-algolia-filter.js +2 -2
  205. package/dist/components/nano-algolia-filter.js.map +1 -1
  206. package/dist/components/nano-checkbox-group.js +11 -13
  207. package/dist/components/nano-checkbox-group.js.map +1 -1
  208. package/dist/components/nano-checkbox.js +1 -1
  209. package/dist/components/nano-checkbox.js.map +1 -1
  210. package/dist/components/nano-date-input.js +3 -3
  211. package/dist/components/nano-date-input.js.map +1 -1
  212. package/dist/components/nano-demo.js +8 -12
  213. package/dist/components/nano-demo.js.map +1 -1
  214. package/dist/components/nano-drawer.js +1 -1
  215. package/dist/components/nano-drawer.js.map +1 -1
  216. package/dist/components/nano-field-validator.js +3 -6
  217. package/dist/components/nano-field-validator.js.map +1 -1
  218. package/dist/components/nano-file-upload.js +2 -2
  219. package/dist/components/nano-file-upload.js.map +1 -1
  220. package/dist/components/nano-global-nav.js +16 -22
  221. package/dist/components/nano-global-nav.js.map +1 -1
  222. package/dist/components/nano-slides.js +19 -19
  223. package/dist/components/nano-slides.js.map +1 -1
  224. package/dist/components/nano-sortable.js +6 -8
  225. package/dist/components/nano-sortable.js.map +1 -1
  226. package/dist/components/nano-tab-content.js +1 -1
  227. package/dist/components/nano-tab-content.js.map +1 -1
  228. package/dist/components/nano-tab-group.js +3 -5
  229. package/dist/components/nano-tab-group.js.map +1 -1
  230. package/dist/components/select.js +100 -29
  231. package/dist/components/select.js.map +1 -1
  232. package/dist/components/table.js +51 -51
  233. package/dist/components/table.js.map +1 -1
  234. package/dist/components/table.worker.js +1 -1
  235. package/dist/components/theme.js +6 -1
  236. package/dist/components/theme.js.map +1 -1
  237. package/dist/components/tooltip.js +2 -4
  238. package/dist/components/tooltip.js.map +1 -1
  239. package/dist/components/transitions.js +6 -1
  240. package/dist/components/transitions.js.map +1 -1
  241. package/dist/esm/{component-store-f7eb0a56.js → component-store-486d9d7a.js} +2 -2
  242. package/dist/esm/component-store-486d9d7a.js.map +1 -0
  243. package/dist/esm/{drag-1723a4cc.js → drag-d948d158.js} +9 -9
  244. package/dist/esm/drag-d948d158.js.map +1 -0
  245. package/dist/esm/{fade-1aa7a6db.js → fade-00c7c18e.js} +2 -2
  246. package/dist/esm/{fade-1aa7a6db.js.map → fade-00c7c18e.js.map} +1 -1
  247. package/dist/esm/{form-control-8c2750f9.js → form-control-0bfcc7ea.js} +3 -3
  248. package/dist/esm/form-control-0bfcc7ea.js.map +1 -0
  249. package/dist/esm/{fullscreen-86fa276a.js → fullscreen-09677a62.js} +2 -2
  250. package/dist/esm/{fullscreen-86fa276a.js.map → fullscreen-09677a62.js.map} +1 -1
  251. package/dist/esm/{index-f626f476.js → index-dc076ea6.js} +10 -2
  252. package/dist/esm/index-dc076ea6.js.map +1 -0
  253. package/dist/esm/index.js +35 -9
  254. package/dist/esm/index.js.map +1 -1
  255. package/dist/esm/{lazyload-994232a6.js → lazyload-43fd583a.js} +2 -2
  256. package/dist/esm/{lazyload-994232a6.js.map → lazyload-43fd583a.js.map} +1 -1
  257. package/dist/esm/loader.js +1 -1
  258. package/dist/esm/{modal-bd9638c0.js → modal-88c117cd.js} +2 -3
  259. package/dist/esm/modal-88c117cd.js.map +1 -0
  260. package/dist/esm/nano-accordion.entry.js +5 -2
  261. package/dist/esm/nano-accordion.entry.js.map +1 -1
  262. package/dist/esm/nano-alert.entry.js +3 -3
  263. package/dist/esm/nano-alert.entry.js.map +1 -1
  264. package/dist/esm/nano-algolia-filter.entry.js +3 -3
  265. package/dist/esm/nano-algolia-filter.entry.js.map +1 -1
  266. package/dist/esm/nano-algolia.entry.js +2 -2
  267. package/dist/esm/nano-algolia.entry.js.map +1 -1
  268. package/dist/esm/nano-checkbox-group.entry.js +12 -14
  269. package/dist/esm/nano-checkbox-group.entry.js.map +1 -1
  270. package/dist/esm/nano-checkbox.entry.js +2 -2
  271. package/dist/esm/nano-checkbox.entry.js.map +1 -1
  272. package/dist/esm/nano-components.js +1 -1
  273. package/dist/esm/nano-datalist_3.entry.js +16 -25
  274. package/dist/esm/nano-datalist_3.entry.js.map +1 -1
  275. package/dist/esm/nano-date-input.entry.js +4 -4
  276. package/dist/esm/nano-date-input.entry.js.map +1 -1
  277. package/dist/esm/nano-date-picker.entry.js +2 -2
  278. package/dist/esm/nano-date-picker.entry.js.map +1 -1
  279. package/dist/esm/nano-demo.entry.js +8 -12
  280. package/dist/esm/nano-demo.entry.js.map +1 -1
  281. package/dist/esm/nano-details.entry.js +1 -1
  282. package/dist/esm/nano-dialog.entry.js +2 -2
  283. package/dist/esm/nano-drawer.entry.js +3 -3
  284. package/dist/esm/nano-drawer.entry.js.map +1 -1
  285. package/dist/esm/nano-dropdown.entry.js +6 -7
  286. package/dist/esm/nano-dropdown.entry.js.map +1 -1
  287. package/dist/esm/nano-field-validator.entry.js +3 -6
  288. package/dist/esm/nano-field-validator.entry.js.map +1 -1
  289. package/dist/esm/nano-file-upload.entry.js +2 -2
  290. package/dist/esm/nano-file-upload.entry.js.map +1 -1
  291. package/dist/esm/nano-global-nav-user-profile_3.entry.js +101 -33
  292. package/dist/esm/nano-global-nav-user-profile_3.entry.js.map +1 -1
  293. package/dist/esm/nano-global-nav.entry.js +18 -24
  294. package/dist/esm/nano-global-nav.entry.js.map +1 -1
  295. package/dist/esm/nano-icon-button_2.entry.js +2 -4
  296. package/dist/esm/nano-icon-button_2.entry.js.map +1 -1
  297. package/dist/esm/nano-icon.entry.js +7 -2
  298. package/dist/esm/nano-icon.entry.js.map +1 -1
  299. package/dist/esm/nano-input.entry.js +21 -7
  300. package/dist/esm/nano-input.entry.js.map +1 -1
  301. package/dist/esm/nano-range.entry.js +2 -2
  302. package/dist/esm/{nano-slides-9908c44d.js → nano-slides-4dab533a.js} +24 -23
  303. package/dist/esm/nano-slides-4dab533a.js.map +1 -0
  304. package/dist/esm/nano-slides.entry.js +1 -1
  305. package/dist/esm/nano-sortable.entry.js +7 -9
  306. package/dist/esm/nano-sortable.entry.js.map +1 -1
  307. package/dist/esm/nano-split-pane.entry.js +1 -1
  308. package/dist/esm/nano-tab-content.entry.js +1 -1
  309. package/dist/esm/nano-tab-content.entry.js.map +1 -1
  310. package/dist/esm/nano-tab-group.entry.js +6 -8
  311. package/dist/esm/nano-tab-group.entry.js.map +1 -1
  312. package/dist/esm/{nano-table-85d83eb2.js → nano-table-7c8eb23e.js} +53 -53
  313. package/dist/esm/nano-table-7c8eb23e.js.map +1 -0
  314. package/dist/esm/nano-table.entry.js +1 -1
  315. package/dist/esm/{page-dots-467ace2e.js → page-dots-a055f884.js} +2 -2
  316. package/dist/esm/{page-dots-467ace2e.js.map → page-dots-a055f884.js.map} +1 -1
  317. package/dist/{nano-components/table.worker-f258383d.js → esm/table.worker-4aad752d.js} +1 -1
  318. package/dist/esm/{table.worker-c5463b23.js → table.worker-bdb6a68c.js} +3 -3
  319. package/dist/esm/table.worker-bdb6a68c.js.map +1 -0
  320. package/dist/esm/{theme-82feb8cf.js → theme-931bd452.js} +7 -2
  321. package/dist/esm/theme-931bd452.js.map +1 -0
  322. package/dist/esm/{transitions-fb09eb32.js → transitions-bd15e312.js} +7 -2
  323. package/dist/esm/transitions-bd15e312.js.map +1 -0
  324. package/dist/nano-assets/hash.txt +1 -1
  325. package/dist/nano-assets/ont-logo-inverse.svg +47 -0
  326. package/dist/nano-components/assets/ont-logo-inverse.svg +47 -0
  327. package/dist/nano-components/component-store-486d9d7a.js +5 -0
  328. package/dist/nano-components/component-store-486d9d7a.js.map +1 -0
  329. package/dist/nano-components/drag-d948d158.js +5 -0
  330. package/dist/nano-components/{drag-1723a4cc.js.map → drag-d948d158.js.map} +1 -1
  331. package/dist/nano-components/{fade-1aa7a6db.js → fade-00c7c18e.js} +2 -2
  332. package/dist/nano-components/form-control-0bfcc7ea.js +5 -0
  333. package/dist/nano-components/form-control-0bfcc7ea.js.map +1 -0
  334. package/dist/nano-components/{fullscreen-86fa276a.js → fullscreen-09677a62.js} +2 -2
  335. package/dist/nano-components/{index-f626f476.js → index-dc076ea6.js} +2 -2
  336. package/dist/nano-components/index-dc076ea6.js.map +1 -0
  337. package/dist/nano-components/index.esm.js +1 -1
  338. package/dist/nano-components/index.esm.js.map +1 -1
  339. package/dist/nano-components/{lazyload-994232a6.js → lazyload-43fd583a.js} +2 -2
  340. package/dist/nano-components/{modal-bd9638c0.js → modal-88c117cd.js} +2 -2
  341. package/dist/nano-components/modal-88c117cd.js.map +1 -0
  342. package/dist/nano-components/nano-accordion.entry.js +1 -1
  343. package/dist/nano-components/nano-accordion.entry.js.map +1 -1
  344. package/dist/nano-components/nano-alert.entry.js +1 -1
  345. package/dist/nano-components/nano-alert.entry.js.map +1 -1
  346. package/dist/nano-components/nano-algolia-filter.entry.js +1 -1
  347. package/dist/nano-components/nano-algolia-filter.entry.js.map +1 -1
  348. package/dist/nano-components/nano-algolia.entry.js +1 -1
  349. package/dist/nano-components/nano-algolia.entry.js.map +1 -1
  350. package/dist/nano-components/nano-checkbox-group.entry.js +1 -1
  351. package/dist/nano-components/nano-checkbox-group.entry.js.map +1 -1
  352. package/dist/nano-components/nano-checkbox.entry.js +1 -1
  353. package/dist/nano-components/nano-checkbox.entry.js.map +1 -1
  354. package/dist/nano-components/nano-components.css +1 -1
  355. package/dist/nano-components/nano-components.esm.js +1 -1
  356. package/dist/nano-components/nano-components.esm.js.map +1 -1
  357. package/dist/nano-components/nano-datalist_3.entry.js +1 -1
  358. package/dist/nano-components/nano-datalist_3.entry.js.map +1 -1
  359. package/dist/nano-components/nano-date-input.entry.js +1 -1
  360. package/dist/nano-components/nano-date-input.entry.js.map +1 -1
  361. package/dist/nano-components/nano-date-picker.entry.js +1 -1
  362. package/dist/nano-components/nano-date-picker.entry.js.map +1 -1
  363. package/dist/nano-components/nano-demo.entry.js +1 -1
  364. package/dist/nano-components/nano-demo.entry.js.map +1 -1
  365. package/dist/nano-components/nano-details.entry.js +1 -1
  366. package/dist/nano-components/nano-dialog.entry.js +1 -1
  367. package/dist/nano-components/nano-drawer.entry.js +1 -1
  368. package/dist/nano-components/nano-drawer.entry.js.map +1 -1
  369. package/dist/nano-components/nano-dropdown.entry.js +1 -1
  370. package/dist/nano-components/nano-dropdown.entry.js.map +1 -1
  371. package/dist/nano-components/nano-field-validator.entry.js +1 -1
  372. package/dist/nano-components/nano-field-validator.entry.js.map +1 -1
  373. package/dist/nano-components/nano-file-upload.entry.js +1 -1
  374. package/dist/nano-components/nano-file-upload.entry.js.map +1 -1
  375. package/dist/nano-components/nano-global-nav-user-profile_3.entry.js +1 -1
  376. package/dist/nano-components/nano-global-nav-user-profile_3.entry.js.map +1 -1
  377. package/dist/nano-components/nano-global-nav.entry.js +1 -1
  378. package/dist/nano-components/nano-global-nav.entry.js.map +1 -1
  379. package/dist/nano-components/nano-icon-button_2.entry.js +1 -1
  380. package/dist/nano-components/nano-icon-button_2.entry.js.map +1 -1
  381. package/dist/nano-components/nano-icon.entry.js +1 -1
  382. package/dist/nano-components/nano-icon.entry.js.map +1 -1
  383. package/dist/nano-components/nano-input.entry.js +1 -1
  384. package/dist/nano-components/nano-input.entry.js.map +1 -1
  385. package/dist/nano-components/nano-range.entry.js +1 -1
  386. package/dist/nano-components/nano-slides-4dab533a.js +20 -0
  387. package/dist/nano-components/nano-slides-4dab533a.js.map +1 -0
  388. package/dist/nano-components/nano-slides.entry.js +1 -1
  389. package/dist/nano-components/nano-sortable.entry.js +1 -1
  390. package/dist/nano-components/nano-sortable.entry.js.map +1 -1
  391. package/dist/nano-components/nano-split-pane.entry.js +1 -1
  392. package/dist/nano-components/nano-tab-content.entry.js +1 -1
  393. package/dist/nano-components/nano-tab-content.entry.js.map +1 -1
  394. package/dist/nano-components/nano-tab-group.entry.js +1 -1
  395. package/dist/nano-components/nano-tab-group.entry.js.map +1 -1
  396. package/dist/nano-components/nano-table-7c8eb23e.js +5 -0
  397. package/dist/nano-components/nano-table-7c8eb23e.js.map +1 -0
  398. package/dist/nano-components/nano-table.entry.js +1 -1
  399. package/dist/nano-components/{page-dots-467ace2e.js → page-dots-a055f884.js} +2 -2
  400. package/dist/{esm/table.worker-f258383d.js → nano-components/table.worker-4aad752d.js} +1 -1
  401. package/dist/nano-components/{table.worker-c5463b23.js → table.worker-bdb6a68c.js} +2 -2
  402. package/dist/nano-components/theme-931bd452.js +5 -0
  403. package/dist/nano-components/{theme-82feb8cf.js.map → theme-931bd452.js.map} +1 -1
  404. package/dist/nano-components/transitions-bd15e312.js +5 -0
  405. package/dist/nano-components/transitions-bd15e312.js.map +1 -0
  406. package/dist/types/components/select/select.d.ts +18 -4
  407. package/dist/types/components/slides/slides.d.ts +0 -7
  408. package/dist/types/components.d.ts +22 -5
  409. package/docs-json.json +62 -22
  410. package/docs-vscode.json +5 -1
  411. package/hydrate/index.js +321 -243
  412. package/package.json +2 -2
  413. package/dist/cjs/component-store-149aeffe.js.map +0 -1
  414. package/dist/cjs/drag-777bd8dd.js.map +0 -1
  415. package/dist/cjs/form-control-cae1e493.js.map +0 -1
  416. package/dist/cjs/index-72ee0363.js.map +0 -1
  417. package/dist/cjs/modal-b9b40f6d.js.map +0 -1
  418. package/dist/cjs/nano-slides-2f3dcc02.js.map +0 -1
  419. package/dist/cjs/nano-table-43f4377f.js.map +0 -1
  420. package/dist/cjs/table.worker-399650a3.js.map +0 -1
  421. package/dist/cjs/theme-9cbe28c5.js.map +0 -1
  422. package/dist/cjs/transitions-cc18619c.js.map +0 -1
  423. package/dist/esm/component-store-f7eb0a56.js.map +0 -1
  424. package/dist/esm/drag-1723a4cc.js.map +0 -1
  425. package/dist/esm/form-control-8c2750f9.js.map +0 -1
  426. package/dist/esm/index-f626f476.js.map +0 -1
  427. package/dist/esm/modal-bd9638c0.js.map +0 -1
  428. package/dist/esm/nano-slides-9908c44d.js.map +0 -1
  429. package/dist/esm/nano-table-85d83eb2.js.map +0 -1
  430. package/dist/esm/table.worker-c5463b23.js.map +0 -1
  431. package/dist/esm/theme-82feb8cf.js.map +0 -1
  432. package/dist/esm/transitions-fb09eb32.js.map +0 -1
  433. package/dist/nano-components/component-store-f7eb0a56.js +0 -5
  434. package/dist/nano-components/component-store-f7eb0a56.js.map +0 -1
  435. package/dist/nano-components/drag-1723a4cc.js +0 -5
  436. package/dist/nano-components/form-control-8c2750f9.js +0 -5
  437. package/dist/nano-components/form-control-8c2750f9.js.map +0 -1
  438. package/dist/nano-components/index-f626f476.js.map +0 -1
  439. package/dist/nano-components/modal-bd9638c0.js.map +0 -1
  440. package/dist/nano-components/nano-slides-9908c44d.js +0 -20
  441. package/dist/nano-components/nano-slides-9908c44d.js.map +0 -1
  442. package/dist/nano-components/nano-table-85d83eb2.js +0 -5
  443. package/dist/nano-components/nano-table-85d83eb2.js.map +0 -1
  444. package/dist/nano-components/theme-82feb8cf.js +0 -5
  445. package/dist/nano-components/transitions-fb09eb32.js +0 -5
  446. package/dist/nano-components/transitions-fb09eb32.js.map +0 -1
  447. /package/dist/nano-components/{fade-1aa7a6db.js.map → fade-00c7c18e.js.map} +0 -0
  448. /package/dist/nano-components/{fullscreen-86fa276a.js.map → fullscreen-09677a62.js.map} +0 -0
  449. /package/dist/nano-components/{lazyload-994232a6.js.map → lazyload-43fd583a.js.map} +0 -0
  450. /package/dist/nano-components/{page-dots-467ace2e.js.map → page-dots-a055f884.js.map} +0 -0
  451. /package/dist/nano-components/{table.worker-c5463b23.js.map → table.worker-bdb6a68c.js.map} +0 -0
@@ -6,11 +6,11 @@ import { headerPinClasses, mergeProperties, rowDataModel } from './table.utils';
6
6
  import { baseCellClasses } from './table.cell';
7
7
  import { CSSNAMESPACE } from './table.constants';
8
8
  const tableCellContent = (props, children, ctx) => {
9
- const cell = (h("div", Object.assign({}, props.wrapperProps, { class: {
9
+ const cell = (h("div", { ...props.wrapperProps, class: {
10
10
  [`${CSSNAMESPACE}__cell-content`]: true,
11
11
  [`${CSSNAMESPACE}__cell-content--wrap`]: props.wrap,
12
- } }), children));
13
- return props.header ? (h("th", Object.assign({ scope: ctx }, props.cellProps), cell)) : (h("td", Object.assign({}, props.cellProps), cell));
12
+ } }, children));
13
+ return props.header ? (h("th", { scope: ctx, ...props.cellProps }, cell)) : (h("td", { ...props.cellProps }, cell));
14
14
  };
15
15
  export const TableRow = ({ rowRenderer, rowIndex, rowModel }, children, utils) => {
16
16
  // helper, generates <td> or <th>
@@ -22,16 +22,16 @@ export const TableRow = ({ rowRenderer, rowIndex, rowModel }, children, utils) =
22
22
  const model = rowDataModel(rowIndex);
23
23
  rowModel = model.rowModel;
24
24
  }
25
- if (rowRenderer === null || rowRenderer === void 0 ? void 0 : rowRenderer.rowProperties) {
25
+ if (rowRenderer?.rowProperties) {
26
26
  extraProps =
27
27
  rowRenderer.rowProperties({ rowModel, rowIndex }) || extraProps;
28
28
  }
29
29
  let rowPinned;
30
- if ((rowRenderer === null || rowRenderer === void 0 ? void 0 : rowRenderer.pinned) && typeof rowRenderer.pinned === 'function') {
30
+ if (rowRenderer?.pinned && typeof rowRenderer.pinned === 'function') {
31
31
  rowPinned = rowRenderer.pinned({ rowModel, rowIndex });
32
32
  }
33
33
  const props = mergeProperties({ class: headerPinClasses('tr', rowPinned, true) }, extraProps);
34
- const tpl = rowRenderer === null || rowRenderer === void 0 ? void 0 : rowRenderer.template;
34
+ const tpl = rowRenderer?.template;
35
35
  /**
36
36
  * Applies appropriate classes to td / th VNodes;
37
37
  * which can be supplied by user defined templates
@@ -50,7 +50,7 @@ export const TableRow = ({ rowRenderer, rowIndex, rowModel }, children, utils) =
50
50
  };
51
51
  if (tpl) {
52
52
  let toRender = tpl(h, {
53
- renderedRow: (h("tr", Object.assign({}, props, { key: rowModel.__uuid }), children)),
53
+ renderedRow: (h("tr", { ...props, key: rowModel.__uuid }, children)),
54
54
  rowModel,
55
55
  rowIndex,
56
56
  }, TableCell);
@@ -69,7 +69,7 @@ export const TableRow = ({ rowRenderer, rowIndex, rowModel }, children, utils) =
69
69
  }
70
70
  return toRender;
71
71
  }
72
- return (h("tr", Object.assign({}, props, { key: rowModel.__uuid }), applyCellClasses(children)));
72
+ return (h("tr", { ...props, key: rowModel.__uuid }, applyCellClasses(children)));
73
73
  };
74
74
  export const TableHeadFootRow = ({ rowRenderer }, // onRowPinned, onColPinned
75
75
  children, utils) => {
@@ -83,10 +83,10 @@ children, utils) => {
83
83
  const pinned = rowRenderer.pinned || null;
84
84
  const baseProps = { class: headerPinClasses('tr', pinned) };
85
85
  const props = extraProps ? mergeProperties(baseProps, extraProps) : baseProps;
86
- const tpl = rowRenderer === null || rowRenderer === void 0 ? void 0 : rowRenderer.template;
86
+ const tpl = rowRenderer?.template;
87
87
  if (tpl) {
88
88
  let toRender = tpl(h, {
89
- renderedRow: h("tr", Object.assign({}, props), children),
89
+ renderedRow: h("tr", { ...props }, children),
90
90
  }, TableHeadFootCell);
91
91
  if (Array.isArray(toRender)) {
92
92
  toRender = utils.map(toRender, (node) => {
@@ -108,6 +108,6 @@ children, utils) => {
108
108
  }
109
109
  return toRender;
110
110
  }
111
- return h("tr", Object.assign({}, props), children);
111
+ return h("tr", { ...props }, children);
112
112
  };
113
113
  //# sourceMappingURL=table.row.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"table.row.js","sourceRoot":"","sources":["../../../src/components/table/table.row.tsx"],"names":[],"mappings":"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","sourcesContent":["import { FunctionalComponent, h, VNode } from '@stencil/core';\nimport { headerPinClasses, mergeProperties, rowDataModel } from './table.utils';\nimport { baseCellClasses } from './table.cell';\nimport { CSSNAMESPACE } from './table.constants';\nimport type { TableTypes } from '../../interface';\n\n// TABLE ROWS\n// (thead > tr, tfoot > tr, tr)\n\ntype TableRowProps = {\n rowRenderer: TableTypes.RowRenderer;\n rowIndex: number;\n rowModel: TableTypes.RowData;\n onRowPinned?: TableTypes.PinnedCb;\n};\n\nconst tableCellContent = (\n props: TableTypes.TableRowCellHelperProps,\n children: VNode[],\n ctx: 'col' | 'row'\n): VNode => {\n const cell = (\n <div\n {...props.wrapperProps}\n class={{\n [`${CSSNAMESPACE}__cell-content`]: true,\n [`${CSSNAMESPACE}__cell-content--wrap`]: props.wrap,\n }}\n >\n {children}\n </div>\n );\n return props.header ? (\n <th scope={ctx} {...props.cellProps}>\n {cell}\n </th>\n ) : (\n <td {...props.cellProps}>{cell}</td>\n );\n};\n\nexport const TableRow: FunctionalComponent<TableRowProps> = (\n { rowRenderer, rowIndex, rowModel },\n children,\n utils\n) => {\n // helper, generates <td> or <th>\n const TableCell: FunctionalComponent<TableTypes.TableRowCellHelperProps> = (\n { header, wrap, cellProps, wrapperProps },\n children\n ): VNode => {\n return tableCellContent(\n { header, wrap, cellProps, wrapperProps },\n children,\n 'row'\n );\n };\n\n let extraProps = {};\n\n if (!rowModel) {\n const model = rowDataModel(rowIndex);\n rowModel = model.rowModel;\n }\n\n if (rowRenderer?.rowProperties) {\n extraProps =\n rowRenderer.rowProperties({ rowModel, rowIndex }) || extraProps;\n }\n\n let rowPinned: TableTypes.Position;\n if (rowRenderer?.pinned && typeof rowRenderer.pinned === 'function') {\n rowPinned = rowRenderer.pinned({ rowModel, rowIndex });\n }\n\n const props = mergeProperties(\n { class: headerPinClasses('tr', rowPinned, true) },\n extraProps\n );\n const tpl = rowRenderer?.template;\n\n /**\n * Applies appropriate classes to td / th VNodes;\n * which can be supplied by user defined templates\n * @param children virtual / jsx node array\n * @returns virtual / jsx node array\n */\n const applyCellClasses = (children: VNode[]) => {\n return utils.map(children, (cNode, i) => {\n if (['td', 'th'].includes(cNode.vtag.toString())) {\n cNode.vattrs = mergeProperties(\n {\n class: baseCellClasses(i, true),\n },\n cNode.vattrs\n );\n }\n return cNode;\n });\n };\n\n if (tpl) {\n let toRender = tpl(\n h as TableTypes.HFunc<VNode>,\n {\n renderedRow: (\n <tr {...props} key={rowModel.__uuid}>\n {children}\n </tr>\n ),\n rowModel,\n rowIndex,\n },\n TableCell\n );\n\n if (Array.isArray(toRender)) {\n toRender = utils.map(toRender, (node, i) => {\n if (node.vtag === 'tr') {\n if (!node.vkey) node.vkey = `${rowModel.__uuid}_${i}`;\n\n node.vattrs = mergeProperties(\n { class: headerPinClasses('tr', rowPinned, true) },\n node.vattrs\n );\n\n if (!!node.vchildren) {\n node.vchildren = applyCellClasses(node.vchildren);\n }\n }\n return node;\n });\n }\n return toRender;\n }\n\n return (\n <tr {...props} key={rowModel.__uuid}>\n {applyCellClasses(children)}\n </tr>\n );\n};\n\ntype TableHeadFootProps = {\n rowRenderer: TableTypes.HeadFootRenderer;\n onRowPinned?: TableTypes.PinnedCb;\n onColPinned?: TableTypes.PinnedCb;\n};\n\nexport const TableHeadFootRow: FunctionalComponent<TableHeadFootProps> = (\n { rowRenderer }, // onRowPinned, onColPinned\n children,\n utils\n) => {\n let extraProps = {};\n if (rowRenderer.rowProperties) {\n extraProps = rowRenderer.rowProperties() || {};\n }\n\n const TableHeadFootCell: FunctionalComponent<\n TableTypes.TableRowCellHelperProps\n > = ({ header, wrap, cellProps, wrapperProps }, children): VNode => {\n return tableCellContent(\n { header, wrap, cellProps, wrapperProps },\n children,\n 'col'\n );\n };\n\n const pinned = rowRenderer.pinned || null;\n const baseProps = { class: headerPinClasses('tr', pinned) };\n const props = extraProps ? mergeProperties(baseProps, extraProps) : baseProps;\n const tpl = rowRenderer?.template;\n\n if (tpl) {\n let toRender = tpl(\n h as TableTypes.HFunc<VNode>,\n {\n renderedRow: <tr {...props}>{children}</tr>,\n },\n TableHeadFootCell\n );\n\n if (Array.isArray(toRender)) {\n toRender = utils.map(toRender, (node) => {\n if (node.vtag === 'tr') {\n node.vattrs = mergeProperties(\n { class: headerPinClasses('tr', pinned, true) },\n node.vattrs\n );\n\n if (!!node.vchildren) {\n node.vchildren = utils.map(node.vchildren, (cNode) => {\n if (['td', 'th'].includes(cNode.vtag.toString())) {\n cNode.vattrs = mergeProperties(\n {\n class: headerPinClasses(\n cNode.vtag.toString() as 'th' | 'td',\n pinned,\n true\n ),\n },\n cNode.vattrs\n );\n }\n return cNode;\n });\n }\n }\n return node;\n });\n }\n return toRender;\n }\n\n return <tr {...props}>{children}</tr>;\n};\n"]}
1
+ {"version":3,"file":"table.row.js","sourceRoot":"","sources":["../../../src/components/table/table.row.tsx"],"names":[],"mappings":"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","sourcesContent":["import { FunctionalComponent, h, VNode } from '@stencil/core';\nimport { headerPinClasses, mergeProperties, rowDataModel } from './table.utils';\nimport { baseCellClasses } from './table.cell';\nimport { CSSNAMESPACE } from './table.constants';\nimport type { TableTypes } from '../../interface';\n\n// TABLE ROWS\n// (thead > tr, tfoot > tr, tr)\n\ntype TableRowProps = {\n rowRenderer: TableTypes.RowRenderer;\n rowIndex: number;\n rowModel: TableTypes.RowData;\n onRowPinned?: TableTypes.PinnedCb;\n};\n\nconst tableCellContent = (\n props: TableTypes.TableRowCellHelperProps,\n children: VNode[],\n ctx: 'col' | 'row'\n): VNode => {\n const cell = (\n <div\n {...props.wrapperProps}\n class={{\n [`${CSSNAMESPACE}__cell-content`]: true,\n [`${CSSNAMESPACE}__cell-content--wrap`]: props.wrap,\n }}\n >\n {children}\n </div>\n );\n return props.header ? (\n <th scope={ctx} {...props.cellProps}>\n {cell}\n </th>\n ) : (\n <td {...props.cellProps}>{cell}</td>\n );\n};\n\nexport const TableRow: FunctionalComponent<TableRowProps> = (\n { rowRenderer, rowIndex, rowModel },\n children,\n utils\n) => {\n // helper, generates <td> or <th>\n const TableCell: FunctionalComponent<TableTypes.TableRowCellHelperProps> = (\n { header, wrap, cellProps, wrapperProps },\n children\n ): VNode => {\n return tableCellContent(\n { header, wrap, cellProps, wrapperProps },\n children,\n 'row'\n );\n };\n\n let extraProps = {};\n\n if (!rowModel) {\n const model = rowDataModel(rowIndex);\n rowModel = model.rowModel;\n }\n\n if (rowRenderer?.rowProperties) {\n extraProps =\n rowRenderer.rowProperties({ rowModel, rowIndex }) || extraProps;\n }\n\n let rowPinned: TableTypes.Position;\n if (rowRenderer?.pinned && typeof rowRenderer.pinned === 'function') {\n rowPinned = rowRenderer.pinned({ rowModel, rowIndex });\n }\n\n const props = mergeProperties(\n { class: headerPinClasses('tr', rowPinned, true) },\n extraProps\n );\n const tpl = rowRenderer?.template;\n\n /**\n * Applies appropriate classes to td / th VNodes;\n * which can be supplied by user defined templates\n * @param children virtual / jsx node array\n * @returns virtual / jsx node array\n */\n const applyCellClasses = (children: VNode[]) => {\n return utils.map(children, (cNode, i) => {\n if (['td', 'th'].includes(cNode.vtag.toString())) {\n cNode.vattrs = mergeProperties(\n {\n class: baseCellClasses(i, true),\n },\n cNode.vattrs\n );\n }\n return cNode;\n });\n };\n\n if (tpl) {\n let toRender = tpl(\n h as TableTypes.HFunc<VNode>,\n {\n renderedRow: (\n <tr {...props} key={rowModel.__uuid}>\n {children}\n </tr>\n ),\n rowModel,\n rowIndex,\n },\n TableCell\n );\n\n if (Array.isArray(toRender)) {\n toRender = utils.map(toRender, (node, i) => {\n if (node.vtag === 'tr') {\n if (!node.vkey) node.vkey = `${rowModel.__uuid}_${i}`;\n\n node.vattrs = mergeProperties(\n { class: headerPinClasses('tr', rowPinned, true) },\n node.vattrs\n );\n\n if (!!node.vchildren) {\n node.vchildren = applyCellClasses(node.vchildren);\n }\n }\n return node;\n });\n }\n return toRender;\n }\n\n return (\n <tr {...props} key={rowModel.__uuid}>\n {applyCellClasses(children)}\n </tr>\n );\n};\n\ntype TableHeadFootProps = {\n rowRenderer: TableTypes.HeadFootRenderer;\n onRowPinned?: TableTypes.PinnedCb;\n onColPinned?: TableTypes.PinnedCb;\n};\n\nexport const TableHeadFootRow: FunctionalComponent<TableHeadFootProps> = (\n { rowRenderer }, // onRowPinned, onColPinned\n children,\n utils\n) => {\n let extraProps = {};\n if (rowRenderer.rowProperties) {\n extraProps = rowRenderer.rowProperties() || {};\n }\n\n const TableHeadFootCell: FunctionalComponent<\n TableTypes.TableRowCellHelperProps\n > = ({ header, wrap, cellProps, wrapperProps }, children): VNode => {\n return tableCellContent(\n { header, wrap, cellProps, wrapperProps },\n children,\n 'col'\n );\n };\n\n const pinned = rowRenderer.pinned || null;\n const baseProps = { class: headerPinClasses('tr', pinned) };\n const props = extraProps ? mergeProperties(baseProps, extraProps) : baseProps;\n const tpl = rowRenderer?.template;\n\n if (tpl) {\n let toRender = tpl(\n h as TableTypes.HFunc<VNode>,\n {\n renderedRow: <tr {...props}>{children}</tr>,\n },\n TableHeadFootCell\n );\n\n if (Array.isArray(toRender)) {\n toRender = utils.map(toRender, (node) => {\n if (node.vtag === 'tr') {\n node.vattrs = mergeProperties(\n { class: headerPinClasses('tr', pinned, true) },\n node.vattrs\n );\n\n if (!!node.vchildren) {\n node.vchildren = utils.map(node.vchildren, (cNode) => {\n if (['td', 'th'].includes(cNode.vtag.toString())) {\n cNode.vattrs = mergeProperties(\n {\n class: headerPinClasses(\n cNode.vtag.toString() as 'th' | 'td',\n pinned,\n true\n ),\n },\n cNode.vattrs\n );\n }\n return cNode;\n });\n }\n }\n return node;\n });\n }\n return toRender;\n }\n\n return <tr {...props}>{children}</tr>;\n};\n"]}
@@ -7,7 +7,7 @@ import { createWorkerStore, syncConfigToWorker, syncDataToWorker, workerFilter,
7
7
  function colsToWorker(columns) {
8
8
  const safeColumns = JSON.parse(JSON.stringify(columns));
9
9
  columns.forEach((c) => {
10
- if (!!(c === null || c === void 0 ? void 0 : c.sortCompareFn)) {
10
+ if (!!c?.sortCompareFn) {
11
11
  const safeCol = safeColumns.find((sc) => sc.prop === c.prop);
12
12
  safeCol.sortCompareFn = c.sortCompareFn.toString();
13
13
  }
@@ -87,10 +87,9 @@ export function storeSetData(host, rows) {
87
87
  }
88
88
  // convert date columns into numbers to send to our worker
89
89
  dateCols.forEach((colName) => {
90
- var _a;
91
90
  // coerce any date type;
92
91
  // Date(), timestamp, valid date string
93
- const coerceDate = (_a = new Date(row[colName])) !== null && _a !== void 0 ? _a : null;
92
+ const coerceDate = new Date(row[colName]) ?? null;
94
93
  if (!!coerceDate && Number(coerceDate))
95
94
  row[colName] = Number(coerceDate);
96
95
  });
@@ -1 +1 @@
1
- {"version":3,"file":"table.store.js","sourceRoot":"","sources":["../../../src/components/table/table.store.ts"],"names":[],"mappings":"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","sourcesContent":["import { createStore, ObservableMap } from '@stencil/store';\nimport { cyrb53 } from '../../utils/math';\nimport {\n createWorkerStore,\n syncConfigToWorker,\n syncDataToWorker,\n workerFilter,\n workerSearch,\n workerSort,\n} from './table.worker';\nimport type { TableTypes } from '../../interface';\n\nexport interface TableStores {\n data: ObservableMap<{ rows: TableTypes.NanoTable['rows'] }>;\n config: ObservableMap<{ columns: TableTypes.NanoTable['columns'] }>;\n general: ObservableMap<{\n workerId: string;\n scrollParent: HTMLElement;\n host: HTMLNanoTableElement;\n isReady: boolean;\n isActive?: boolean;\n }>;\n}\n\nfunction colsToWorker(columns: TableTypes.NanoTable['columns']) {\n const safeColumns: Partial<TableTypes.ColumnConfig>[] = JSON.parse(\n JSON.stringify(columns)\n );\n columns.forEach((c) => {\n if (!!c?.sortCompareFn) {\n const safeCol = safeColumns.find((sc) => sc.prop === c.prop);\n safeCol.sortCompareFn = c.sortCompareFn.toString();\n }\n });\n return safeColumns;\n}\n\nconst stores: WeakMap<HTMLElement, TableStores> = new WeakMap();\n\nexport async function generateStore(\n host: HTMLNanoTableElement,\n columns: TableTypes.NanoTable['columns'],\n scrollParent: HTMLElement,\n isReady: boolean\n) {\n const store: TableStores = {\n data: createStore({ rows: [] }),\n config: createStore({ columns }),\n general: createStore({ workerId: null, scrollParent, host, isReady }),\n };\n\n const id = await createWorkerStore(\n store.data.state.rows,\n colsToWorker(store.config.state.columns)\n );\n store.general.state.workerId = id;\n stores.set(host, store);\n\n // sync data from our store to our worker\n\n store.data.use({\n reset: () => {\n if (store.general.state.workerId)\n syncDataToWorker(store.general.state.workerId, null);\n },\n dispose: () => {\n if (store.general.state.workerId)\n syncDataToWorker(store.general.state.workerId, null);\n },\n });\n store.config.use({\n reset: () => {\n if (store.general.state.workerId)\n syncConfigToWorker(store.general.state.workerId, null);\n },\n dispose: () => {\n if (store.general.state.workerId)\n syncConfigToWorker(store.general.state.workerId, null);\n },\n });\n return store;\n}\n\nexport function getStore(host: HTMLElement) {\n return stores.get(host);\n}\n\nfunction getDataType(value: any): TableTypes.ColumnType {\n if (value instanceof Date) {\n return 'date';\n }\n if (['number', 'string', 'boolean'].includes(typeof value)) {\n return typeof value as 'string' | 'number' | 'boolean';\n }\n return 'unknown';\n}\n\nexport function storeSetData(host: HTMLElement, rows: TableTypes.RowData[]) {\n const store = stores.get(host);\n if (!store) return;\n\n const cols = store.config.state.columns;\n const dateCols: (keyof TableTypes.RowData)[] = cols\n .filter((col) => col.type === 'date')\n .reduce((prev, curr) => {\n return [...prev, curr.prop];\n }, []);\n const unknownCols: TableTypes.RowData[] = cols.filter((col) => !col.type);\n\n // augments data with some internal props.\n // discern unknown column types\n // convert dates to numbers for worker\n rows = rows.map((row, i) => {\n // try our best to discern the column type (from first row) if unset\n if (unknownCols.length && i === 0) {\n store.config.state.columns = cols.map((col) => {\n if (unknownCols.includes(col) && row[col.prop] && !col.type) {\n col.type = getDataType(row[col.prop]);\n if (col.type === 'date') dateCols.push(col.prop);\n }\n return col;\n });\n }\n\n // convert date columns into numbers to send to our worker\n dateCols.forEach((colName) => {\n // coerce any date type;\n // Date(), timestamp, valid date string\n const coerceDate = new Date(row[colName]) ?? null;\n if (!!coerceDate && Number(coerceDate)) row[colName] = Number(coerceDate);\n });\n\n row['__index'] = i;\n row['__uuid'] = cyrb53(cols.map((c) => row[c.prop]).join());\n\n return row;\n });\n store.data.state.rows = rows;\n\n if (store.general.state.workerId)\n return syncDataToWorker(store.general.state.workerId, rows);\n}\n\nexport function storeSetConfig(\n host: HTMLElement,\n columns: TableTypes.ColumnConfig[]\n) {\n const store = stores.get(host);\n if (!store) return;\n\n store.config.state.columns = columns;\n\n if (store.general.state.workerId)\n return syncConfigToWorker(\n store.general.state.workerId,\n colsToWorker(columns)\n );\n}\n\nexport async function storeSearch(host: HTMLElement, term: string) {\n const store = stores.get(host);\n if (!store || !store.general.state.workerId) return;\n\n try {\n store.data.state.rows = await workerSearch(\n store.general.state.workerId,\n term\n );\n } catch (e) {\n console.warn(e);\n }\n}\n\nexport async function storeFilter(\n host: HTMLElement,\n filters: TableTypes.Filter[]\n) {\n const store = stores.get(host);\n if (!store || !store.general.state.workerId) return;\n\n try {\n store.data.state.rows = await workerFilter(\n store.general.state.workerId,\n filters\n );\n } catch (e) {\n console.warn(e);\n }\n}\n\nexport async function storeSort(\n host: HTMLNanoTableElement,\n prop: TableTypes.Prop,\n order: TableTypes.Order\n) {\n const store = stores.get(host);\n if (!store || !store.general.state.workerId) return;\n\n try {\n store.data.state.rows = await workerSort(\n store.general.state.workerId,\n prop,\n order\n );\n } catch (e) {\n console.warn(e);\n }\n}\n"]}
1
+ {"version":3,"file":"table.store.js","sourceRoot":"","sources":["../../../src/components/table/table.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAiB,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,UAAU,GACX,MAAM,gBAAgB,CAAC;AAexB,SAAS,YAAY,CAAC,OAAwC;EAC5D,MAAM,WAAW,GAAuC,IAAI,CAAC,KAAK,CAChE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CACxB,CAAC;EACF,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;IACpB,IAAI,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE;MACtB,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;MAC7D,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;KACpD;EACH,CAAC,CAAC,CAAC;EACH,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,MAAM,GAAsC,IAAI,OAAO,EAAE,CAAC;AAEhE,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAA0B,EAC1B,OAAwC,EACxC,YAAyB,EACzB,OAAgB;EAEhB,MAAM,KAAK,GAAgB;IACzB,IAAI,EAAE,WAAW,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAC/B,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC;IAChC,OAAO,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;GACtE,CAAC;EAEF,MAAM,EAAE,GAAG,MAAM,iBAAiB,CAChC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EACrB,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CACzC,CAAC;EACF,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC;EAClC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;EAExB,yCAAyC;EAEzC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;IACb,KAAK,EAAE,GAAG,EAAE;MACV,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ;QAC9B,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,EAAE,GAAG,EAAE;MACZ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ;QAC9B,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;GACF,CAAC,CAAC;EACH,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;IACf,KAAK,EAAE,GAAG,EAAE;MACV,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ;QAC9B,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,EAAE,GAAG,EAAE;MACZ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ;QAC9B,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC3D,CAAC;GACF,CAAC,CAAC;EACH,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,IAAiB;EACxC,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,WAAW,CAAC,KAAU;EAC7B,IAAI,KAAK,YAAY,IAAI,EAAE;IACzB,OAAO,MAAM,CAAC;GACf;EACD,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,KAAK,CAAC,EAAE;IAC1D,OAAO,OAAO,KAAwC,CAAC;GACxD;EACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAiB,EAAE,IAA0B;EACxE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;EAC/B,IAAI,CAAC,KAAK;IAAE,OAAO;EAEnB,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;EACxC,MAAM,QAAQ,GAAiC,IAAI;KAChD,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC;KACpC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;IACrB,OAAO,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;EAC9B,CAAC,EAAE,EAAE,CAAC,CAAC;EACT,MAAM,WAAW,GAAyB,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;EAE1E,0CAA0C;EAC1C,+BAA+B;EAC/B,sCAAsC;EACtC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;IACzB,oEAAoE;IACpE,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE;MACjC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QAC5C,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;UAC3D,GAAG,CAAC,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;UACtC,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;YAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SAClD;QACD,OAAO,GAAG,CAAC;MACb,CAAC,CAAC,CAAC;KACJ;IAED,0DAA0D;IAC1D,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;MAC3B,wBAAwB;MACxB,uCAAuC;MACvC,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC;MAClD,IAAI,CAAC,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC;QAAE,GAAG,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACnB,GAAG,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAE5D,OAAO,GAAG,CAAC;EACb,CAAC,CAAC,CAAC;EACH,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;EAE7B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ;IAC9B,OAAO,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,IAAiB,EACjB,OAAkC;EAElC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;EAC/B,IAAI,CAAC,KAAK;IAAE,OAAO;EAEnB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;EAErC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ;IAC9B,OAAO,kBAAkB,CACvB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAC5B,YAAY,CAAC,OAAO,CAAC,CACtB,CAAC;AACN,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAiB,EAAE,IAAY;EAC/D,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;EAC/B,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ;IAAE,OAAO;EAEpD,IAAI;IACF,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM,YAAY,CACxC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAC5B,IAAI,CACL,CAAC;GACH;EAAC,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;GACjB;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,IAAiB,EACjB,OAA4B;EAE5B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;EAC/B,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ;IAAE,OAAO;EAEpD,IAAI;IACF,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM,YAAY,CACxC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAC5B,OAAO,CACR,CAAC;GACH;EAAC,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;GACjB;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,IAA0B,EAC1B,IAAqB,EACrB,KAAuB;EAEvB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;EAC/B,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ;IAAE,OAAO;EAEpD,IAAI;IACF,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM,UAAU,CACtC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAC5B,IAAI,EACJ,KAAK,CACN,CAAC;GACH;EAAC,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;GACjB;AACH,CAAC","sourcesContent":["import { createStore, ObservableMap } from '@stencil/store';\nimport { cyrb53 } from '../../utils/math';\nimport {\n createWorkerStore,\n syncConfigToWorker,\n syncDataToWorker,\n workerFilter,\n workerSearch,\n workerSort,\n} from './table.worker';\nimport type { TableTypes } from '../../interface';\n\nexport interface TableStores {\n data: ObservableMap<{ rows: TableTypes.NanoTable['rows'] }>;\n config: ObservableMap<{ columns: TableTypes.NanoTable['columns'] }>;\n general: ObservableMap<{\n workerId: string;\n scrollParent: HTMLElement;\n host: HTMLNanoTableElement;\n isReady: boolean;\n isActive?: boolean;\n }>;\n}\n\nfunction colsToWorker(columns: TableTypes.NanoTable['columns']) {\n const safeColumns: Partial<TableTypes.ColumnConfig>[] = JSON.parse(\n JSON.stringify(columns)\n );\n columns.forEach((c) => {\n if (!!c?.sortCompareFn) {\n const safeCol = safeColumns.find((sc) => sc.prop === c.prop);\n safeCol.sortCompareFn = c.sortCompareFn.toString();\n }\n });\n return safeColumns;\n}\n\nconst stores: WeakMap<HTMLElement, TableStores> = new WeakMap();\n\nexport async function generateStore(\n host: HTMLNanoTableElement,\n columns: TableTypes.NanoTable['columns'],\n scrollParent: HTMLElement,\n isReady: boolean\n) {\n const store: TableStores = {\n data: createStore({ rows: [] }),\n config: createStore({ columns }),\n general: createStore({ workerId: null, scrollParent, host, isReady }),\n };\n\n const id = await createWorkerStore(\n store.data.state.rows,\n colsToWorker(store.config.state.columns)\n );\n store.general.state.workerId = id;\n stores.set(host, store);\n\n // sync data from our store to our worker\n\n store.data.use({\n reset: () => {\n if (store.general.state.workerId)\n syncDataToWorker(store.general.state.workerId, null);\n },\n dispose: () => {\n if (store.general.state.workerId)\n syncDataToWorker(store.general.state.workerId, null);\n },\n });\n store.config.use({\n reset: () => {\n if (store.general.state.workerId)\n syncConfigToWorker(store.general.state.workerId, null);\n },\n dispose: () => {\n if (store.general.state.workerId)\n syncConfigToWorker(store.general.state.workerId, null);\n },\n });\n return store;\n}\n\nexport function getStore(host: HTMLElement) {\n return stores.get(host);\n}\n\nfunction getDataType(value: any): TableTypes.ColumnType {\n if (value instanceof Date) {\n return 'date';\n }\n if (['number', 'string', 'boolean'].includes(typeof value)) {\n return typeof value as 'string' | 'number' | 'boolean';\n }\n return 'unknown';\n}\n\nexport function storeSetData(host: HTMLElement, rows: TableTypes.RowData[]) {\n const store = stores.get(host);\n if (!store) return;\n\n const cols = store.config.state.columns;\n const dateCols: (keyof TableTypes.RowData)[] = cols\n .filter((col) => col.type === 'date')\n .reduce((prev, curr) => {\n return [...prev, curr.prop];\n }, []);\n const unknownCols: TableTypes.RowData[] = cols.filter((col) => !col.type);\n\n // augments data with some internal props.\n // discern unknown column types\n // convert dates to numbers for worker\n rows = rows.map((row, i) => {\n // try our best to discern the column type (from first row) if unset\n if (unknownCols.length && i === 0) {\n store.config.state.columns = cols.map((col) => {\n if (unknownCols.includes(col) && row[col.prop] && !col.type) {\n col.type = getDataType(row[col.prop]);\n if (col.type === 'date') dateCols.push(col.prop);\n }\n return col;\n });\n }\n\n // convert date columns into numbers to send to our worker\n dateCols.forEach((colName) => {\n // coerce any date type;\n // Date(), timestamp, valid date string\n const coerceDate = new Date(row[colName]) ?? null;\n if (!!coerceDate && Number(coerceDate)) row[colName] = Number(coerceDate);\n });\n\n row['__index'] = i;\n row['__uuid'] = cyrb53(cols.map((c) => row[c.prop]).join());\n\n return row;\n });\n store.data.state.rows = rows;\n\n if (store.general.state.workerId)\n return syncDataToWorker(store.general.state.workerId, rows);\n}\n\nexport function storeSetConfig(\n host: HTMLElement,\n columns: TableTypes.ColumnConfig[]\n) {\n const store = stores.get(host);\n if (!store) return;\n\n store.config.state.columns = columns;\n\n if (store.general.state.workerId)\n return syncConfigToWorker(\n store.general.state.workerId,\n colsToWorker(columns)\n );\n}\n\nexport async function storeSearch(host: HTMLElement, term: string) {\n const store = stores.get(host);\n if (!store || !store.general.state.workerId) return;\n\n try {\n store.data.state.rows = await workerSearch(\n store.general.state.workerId,\n term\n );\n } catch (e) {\n console.warn(e);\n }\n}\n\nexport async function storeFilter(\n host: HTMLElement,\n filters: TableTypes.Filter[]\n) {\n const store = stores.get(host);\n if (!store || !store.general.state.workerId) return;\n\n try {\n store.data.state.rows = await workerFilter(\n store.general.state.workerId,\n filters\n );\n } catch (e) {\n console.warn(e);\n }\n}\n\nexport async function storeSort(\n host: HTMLNanoTableElement,\n prop: TableTypes.Prop,\n order: TableTypes.Order\n) {\n const store = stores.get(host);\n if (!store || !store.general.state.workerId) return;\n\n try {\n store.data.state.rows = await workerSort(\n store.general.state.workerId,\n prop,\n order\n );\n } catch (e) {\n console.warn(e);\n }\n}\n"]}
@@ -15,7 +15,7 @@ export function colDataModel(rowIndex, colIndex) {
15
15
  const columns = store.config.state.columns;
16
16
  const rows = store.data.state.rows;
17
17
  const column = columns[colIndex];
18
- const prop = column === null || column === void 0 ? void 0 : column.prop;
18
+ const prop = column?.prop;
19
19
  const rowModel = rows[rowIndex];
20
20
  const cellModel = rowModel ? rowModel[columns[colIndex].prop] : '';
21
21
  return {
@@ -50,12 +50,12 @@ export function mergeProperties(current, extra) {
50
50
  if (!extra)
51
51
  return current;
52
52
  // top level merge
53
- const props = Object.assign(Object.assign({}, extra), current);
53
+ const props = { ...extra, ...current };
54
54
  // deeper merge
55
55
  // merge classes maps or strings
56
56
  if (extra.class) {
57
57
  if (typeof extra.class === 'object' && typeof props.class === 'object') {
58
- props.class = Object.assign(Object.assign({}, extra.class), props.class);
58
+ props.class = { ...extra.class, ...props.class };
59
59
  }
60
60
  else if (typeof extra.class === 'string' &&
61
61
  typeof props.class === 'object') {
@@ -67,7 +67,7 @@ export function mergeProperties(current, extra) {
67
67
  }
68
68
  // merge style
69
69
  if (extra.style) {
70
- props.style = Object.assign(Object.assign({}, extra.style), props.style);
70
+ props.style = { ...extra.style, ...props.style };
71
71
  }
72
72
  return props;
73
73
  }
@@ -87,9 +87,8 @@ export function fetchStores() {
87
87
  * @returns - the merged properties that will be applied to a node
88
88
  */
89
89
  export function mergeCellProperties(rowIndex, colIndex, defaultProps) {
90
- var _a;
91
- const props = Object.assign({}, defaultProps);
92
- const extraPropsFunc = (_a = fetchStores().config.state.columns[colIndex]) === null || _a === void 0 ? void 0 : _a.cellProperties;
90
+ const props = { ...defaultProps };
91
+ const extraPropsFunc = fetchStores().config.state.columns[colIndex]?.cellProperties;
93
92
  if (!extraPropsFunc)
94
93
  return props;
95
94
  const data = colDataModel(rowIndex, colIndex);
@@ -104,7 +103,7 @@ export function mergeCellProperties(rowIndex, colIndex, defaultProps) {
104
103
  * @returns - a JSX node
105
104
  */
106
105
  export function colheadFootRender(col) {
107
- const tpl = col === null || col === void 0 ? void 0 : col.columnTemplate;
106
+ const tpl = col?.columnTemplate;
108
107
  return tpl ? (tpl(h, col)) : (h(Fragment, null, col.title));
109
108
  }
110
109
  export function headerPinClasses(type, vPinned, toString = false) {
@@ -1 +1 @@
1
- {"version":3,"file":"table.utils.js","sourceRoot":"","sources":["../../../src/components/table/table.utils.tsx"],"names":[],"mappings":"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","sourcesContent":["import { getRenderingRef, getElement, VNode, h, Fragment } from '@stencil/core';\nimport { getStore } from './table.store';\nimport { CSSNAMESPACE } from './table.constants';\nimport type { TableTypes } from '../../interface';\n\ntype ValidRenderTypes = 'tr' | 'th' | 'td';\n\n/**\n * Get a model object for custom cell / property renderers.\n * @param rowIndex - the current row index being rendered\n * @param colIndex - the current column index being rendered\n * @returns a model object which will be passed to custom renderers\n */\nexport function colDataModel(\n rowIndex: number,\n colIndex: number\n): TableTypes.RenderModel {\n const store = fetchStores();\n const columns = store.config.state.columns;\n const rows = store.data.state.rows;\n\n const column = columns[colIndex];\n const prop: TableTypes.ColumnProp | undefined = column?.prop;\n const rowModel = rows[rowIndex];\n const cellModel = rowModel ? rowModel[columns[colIndex].prop] : '';\n\n return {\n prop,\n cellModel,\n column,\n rowIndex,\n rowModel,\n };\n}\n\n/**\n * Get a model object for custom row renderers.\n * @param rowIndex\n * @returns a model object passed to custom row renderers\n */\nexport function rowDataModel(rowIndex: number): TableTypes.RowDataSchemaModel {\n const store = fetchStores();\n const rows = store.data.state.rows;\n const rowModel = rows[rowIndex];\n\n return {\n rowModel,\n rowIndex,\n };\n}\n\n/**\n * Merges 2 objects of properties together\n * @param current - property object\n * @param extra - additional object property\n * @returns - merged properties that can be applied to a node\n */\nexport function mergeProperties<\n T extends TableTypes.CellProps | TableTypes.CellProps\n>(current: T, extra: T) {\n if (!extra) return current;\n\n // top level merge\n const props: T = { ...extra, ...current };\n\n // deeper merge\n // merge classes maps or strings\n if (extra.class) {\n if (typeof extra.class === 'object' && typeof props.class === 'object') {\n props.class = { ...extra.class, ...props.class };\n } else if (\n typeof extra.class === 'string' &&\n typeof props.class === 'object'\n ) {\n props.class[extra.class] = true;\n } else if (typeof props.class === 'string') {\n props.class += ' ' + extra.class;\n }\n }\n // merge style\n if (extra.style) {\n props.style = { ...extra.style, ...props.style };\n }\n return props;\n}\n\n/**\n * Returns the current nano-table's stores.\n * @returns the current nano-table stores\n */\nexport function fetchStores() {\n return getStore(getElement(getRenderingRef()));\n}\n\n/**\n * Merges any defined cell properties with properties\n * required by `nano-table` functionality\n * @param rowIndex - the current row index being rendered\n * @param colIndex = the current column index being rendered\n * @param defaultProps - default properties required by `nano-table`\n * @returns - the merged properties that will be applied to a node\n */\nexport function mergeCellProperties(\n rowIndex: number,\n colIndex: number,\n defaultProps: TableTypes.CellProps\n): TableTypes.CellProps {\n const props: TableTypes.CellProps = { ...defaultProps };\n const extraPropsFunc =\n fetchStores().config.state.columns[colIndex]?.cellProperties;\n if (!extraPropsFunc) return props;\n\n const data = colDataModel(rowIndex, colIndex);\n const extra = extraPropsFunc(data);\n if (!extra) return props;\n\n return mergeProperties(props, extra);\n}\n\n/**\n * Renders a table header (within a thead) using a custom template if set.\n * @param col - the current column config object\n * @returns - a JSX node\n */\nexport function colheadFootRender(col: TableTypes.ColumnConfig): VNode {\n const tpl = col?.columnTemplate;\n return tpl ? (\n tpl(h as TableTypes.HFunc<VNode>, col)\n ) : (\n <Fragment>{col.title}</Fragment>\n );\n}\n\n/**\n * Renders a class string or map for pinned classes on the v axis.\n * @param type - element tagName\n * @param vPinned - whether element is currently pinned vertically to top or bottom\n * @param toString - render as a string (defaults to class map)\n * @returns a class string or class map\n */\nexport function headerPinClasses(\n type: ValidRenderTypes,\n vPinned?: TableTypes.Position,\n toString?: false\n): { [key: string]: boolean };\nexport function headerPinClasses(\n type: ValidRenderTypes,\n vPinned?: TableTypes.Position,\n toString?: true\n): string;\nexport function headerPinClasses(\n type: ValidRenderTypes,\n vPinned?: TableTypes.Position,\n toString = false\n): { [key: string]: boolean } | string {\n const classes = {\n [`${CSSNAMESPACE}__${type}`]: true,\n [`${CSSNAMESPACE}__pin`]: !!vPinned,\n [`${CSSNAMESPACE}__pin--top`]: vPinned === 'top',\n [`${CSSNAMESPACE}__pin--bottom`]: vPinned === 'bottom',\n };\n\n if (toString) return classListToStr(classes);\n return classes;\n}\n\n/**\n * Turns a class map {'string': boolean} to class string\n * @param classes - the class map to convert\n * @returns a class string\n */\nexport function classListToStr(classes: { [key: string]: boolean }): string {\n let classString = '';\n Object.entries(classes).forEach(([className, on]) => {\n if (on) classString += className + ' ';\n });\n return classString;\n}\n\n/**\n * Attempts to find the closes scrolling parental element\n * @param element - the element from which to traverse up the DOM\n * @returns - the closest scrolling parental element\n */\nexport function findScrollParent(element: HTMLElement) {\n let style = getComputedStyle(element);\n const excludeStaticParent = style.position === 'absolute';\n const overflowRegex = /(auto|scroll)/;\n\n if (style.position === 'fixed') return document.documentElement;\n for (let parent = element; (parent = parent.parentElement); ) {\n style = getComputedStyle(parent);\n if (excludeStaticParent && style.position === 'static') {\n continue;\n }\n if (overflowRegex.test(style.overflow + style.overflowY + style.overflowX))\n return parent;\n }\n return document.documentElement;\n}\n\n/**\n * Checks whether an element is currently viewable within the viewport\n * @param el - element to check\n * @param percentVisible - the percentage of the element that should be within the viewport\n * @returns true if the element's area percentage is visible\n */\nexport function isInViewport(el: Element, percentVisible = 100) {\n const r = el.getBoundingClientRect();\n const windowHeight =\n window.innerHeight || document.documentElement.clientHeight;\n\n if (\n !r.bottom &&\n !r.top &&\n !r.left &&\n !r.right &&\n !r.height &&\n !r.width &&\n !r.x &&\n !r.y\n )\n return false;\n\n return !(\n Math.floor(100 - ((r.top >= 0 ? 0 : r.top) / +-r.height) * 100) <\n percentVisible ||\n Math.floor(100 - ((r.bottom - windowHeight) / r.height) * 100) <\n percentVisible\n );\n}\n"]}
1
+ {"version":3,"file":"table.utils.js","sourceRoot":"","sources":["../../../src/components/table/table.utils.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,UAAU,EAAS,CAAC,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAKjD;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAC1B,QAAgB,EAChB,QAAgB;EAEhB,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC;EAC5B,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;EAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;EAEnC,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;EACjC,MAAM,IAAI,GAAsC,MAAM,EAAE,IAAI,CAAC;EAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;EAChC,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;EAEnE,OAAO;IACL,IAAI;IACJ,SAAS;IACT,MAAM;IACN,QAAQ;IACR,QAAQ;GACT,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,QAAgB;EAC3C,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC;EAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;EACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;EAEhC,OAAO;IACL,QAAQ;IACR,QAAQ;GACT,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAE7B,OAAU,EAAE,KAAQ;EACpB,IAAI,CAAC,KAAK;IAAE,OAAO,OAAO,CAAC;EAE3B,kBAAkB;EAClB,MAAM,KAAK,GAAM,EAAE,GAAG,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC;EAE1C,eAAe;EACf,gCAAgC;EAChC,IAAI,KAAK,CAAC,KAAK,EAAE;IACf,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE;MACtE,KAAK,CAAC,KAAK,GAAG,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;KAClD;SAAM,IACL,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;MAC/B,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAC/B;MACA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;KACjC;SAAM,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE;MAC1C,KAAK,CAAC,KAAK,IAAI,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC;KAClC;GACF;EACD,cAAc;EACd,IAAI,KAAK,CAAC,KAAK,EAAE;IACf,KAAK,CAAC,KAAK,GAAG,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;GAClD;EACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW;EACzB,OAAO,QAAQ,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;AACjD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAAgB,EAChB,QAAgB,EAChB,YAAkC;EAElC,MAAM,KAAK,GAAyB,EAAE,GAAG,YAAY,EAAE,CAAC;EACxD,MAAM,cAAc,GAClB,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;EAC/D,IAAI,CAAC,cAAc;IAAE,OAAO,KAAK,CAAC;EAElC,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;EAC9C,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;EACnC,IAAI,CAAC,KAAK;IAAE,OAAO,KAAK,CAAC;EAEzB,OAAO,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACvC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAA4B;EAC5D,MAAM,GAAG,GAAG,GAAG,EAAE,cAAc,CAAC;EAChC,OAAO,GAAG,CAAC,CAAC,CAAC,CACX,GAAG,CAAC,CAA4B,EAAE,GAAG,CAAC,CACvC,CAAC,CAAC,CAAC,CACF,EAAC,QAAQ,QAAE,GAAG,CAAC,KAAK,CAAY,CACjC,CAAC;AACJ,CAAC;AAmBD,MAAM,UAAU,gBAAgB,CAC9B,IAAsB,EACtB,OAA6B,EAC7B,QAAQ,GAAG,KAAK;EAEhB,MAAM,OAAO,GAAG;IACd,CAAC,GAAG,YAAY,KAAK,IAAI,EAAE,CAAC,EAAE,IAAI;IAClC,CAAC,GAAG,YAAY,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO;IACnC,CAAC,GAAG,YAAY,YAAY,CAAC,EAAE,OAAO,KAAK,KAAK;IAChD,CAAC,GAAG,YAAY,eAAe,CAAC,EAAE,OAAO,KAAK,QAAQ;GACvD,CAAC;EAEF,IAAI,QAAQ;IAAE,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;EAC7C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,OAAmC;EAChE,IAAI,WAAW,GAAG,EAAE,CAAC;EACrB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE;IAClD,IAAI,EAAE;MAAE,WAAW,IAAI,SAAS,GAAG,GAAG,CAAC;EACzC,CAAC,CAAC,CAAC;EACH,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAoB;EACnD,IAAI,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;EACtC,MAAM,mBAAmB,GAAG,KAAK,CAAC,QAAQ,KAAK,UAAU,CAAC;EAC1D,MAAM,aAAa,GAAG,eAAe,CAAC;EAEtC,IAAI,KAAK,CAAC,QAAQ,KAAK,OAAO;IAAE,OAAO,QAAQ,CAAC,eAAe,CAAC;EAChE,KAAK,IAAI,MAAM,GAAG,OAAO,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,GAAI;IAC5D,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACjC,IAAI,mBAAmB,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE;MACtD,SAAS;KACV;IACD,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;MACxE,OAAO,MAAM,CAAC;GACjB;EACD,OAAO,QAAQ,CAAC,eAAe,CAAC;AAClC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,EAAW,EAAE,cAAc,GAAG,GAAG;EAC5D,MAAM,CAAC,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC;EACrC,MAAM,YAAY,GAChB,MAAM,CAAC,WAAW,IAAI,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC;EAE9D,IACE,CAAC,CAAC,CAAC,MAAM;IACT,CAAC,CAAC,CAAC,GAAG;IACN,CAAC,CAAC,CAAC,IAAI;IACP,CAAC,CAAC,CAAC,KAAK;IACR,CAAC,CAAC,CAAC,MAAM;IACT,CAAC,CAAC,CAAC,KAAK;IACR,CAAC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC,CAAC;IAEJ,OAAO,KAAK,CAAC;EAEf,OAAO,CAAC,CACN,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;IAC7D,cAAc;IAChB,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;MAC5D,cAAc,CACjB,CAAC;AACJ,CAAC","sourcesContent":["import { getRenderingRef, getElement, VNode, h, Fragment } from '@stencil/core';\nimport { getStore } from './table.store';\nimport { CSSNAMESPACE } from './table.constants';\nimport type { TableTypes } from '../../interface';\n\ntype ValidRenderTypes = 'tr' | 'th' | 'td';\n\n/**\n * Get a model object for custom cell / property renderers.\n * @param rowIndex - the current row index being rendered\n * @param colIndex - the current column index being rendered\n * @returns a model object which will be passed to custom renderers\n */\nexport function colDataModel(\n rowIndex: number,\n colIndex: number\n): TableTypes.RenderModel {\n const store = fetchStores();\n const columns = store.config.state.columns;\n const rows = store.data.state.rows;\n\n const column = columns[colIndex];\n const prop: TableTypes.ColumnProp | undefined = column?.prop;\n const rowModel = rows[rowIndex];\n const cellModel = rowModel ? rowModel[columns[colIndex].prop] : '';\n\n return {\n prop,\n cellModel,\n column,\n rowIndex,\n rowModel,\n };\n}\n\n/**\n * Get a model object for custom row renderers.\n * @param rowIndex\n * @returns a model object passed to custom row renderers\n */\nexport function rowDataModel(rowIndex: number): TableTypes.RowDataSchemaModel {\n const store = fetchStores();\n const rows = store.data.state.rows;\n const rowModel = rows[rowIndex];\n\n return {\n rowModel,\n rowIndex,\n };\n}\n\n/**\n * Merges 2 objects of properties together\n * @param current - property object\n * @param extra - additional object property\n * @returns - merged properties that can be applied to a node\n */\nexport function mergeProperties<\n T extends TableTypes.CellProps | TableTypes.CellProps\n>(current: T, extra: T) {\n if (!extra) return current;\n\n // top level merge\n const props: T = { ...extra, ...current };\n\n // deeper merge\n // merge classes maps or strings\n if (extra.class) {\n if (typeof extra.class === 'object' && typeof props.class === 'object') {\n props.class = { ...extra.class, ...props.class };\n } else if (\n typeof extra.class === 'string' &&\n typeof props.class === 'object'\n ) {\n props.class[extra.class] = true;\n } else if (typeof props.class === 'string') {\n props.class += ' ' + extra.class;\n }\n }\n // merge style\n if (extra.style) {\n props.style = { ...extra.style, ...props.style };\n }\n return props;\n}\n\n/**\n * Returns the current nano-table's stores.\n * @returns the current nano-table stores\n */\nexport function fetchStores() {\n return getStore(getElement(getRenderingRef()));\n}\n\n/**\n * Merges any defined cell properties with properties\n * required by `nano-table` functionality\n * @param rowIndex - the current row index being rendered\n * @param colIndex = the current column index being rendered\n * @param defaultProps - default properties required by `nano-table`\n * @returns - the merged properties that will be applied to a node\n */\nexport function mergeCellProperties(\n rowIndex: number,\n colIndex: number,\n defaultProps: TableTypes.CellProps\n): TableTypes.CellProps {\n const props: TableTypes.CellProps = { ...defaultProps };\n const extraPropsFunc =\n fetchStores().config.state.columns[colIndex]?.cellProperties;\n if (!extraPropsFunc) return props;\n\n const data = colDataModel(rowIndex, colIndex);\n const extra = extraPropsFunc(data);\n if (!extra) return props;\n\n return mergeProperties(props, extra);\n}\n\n/**\n * Renders a table header (within a thead) using a custom template if set.\n * @param col - the current column config object\n * @returns - a JSX node\n */\nexport function colheadFootRender(col: TableTypes.ColumnConfig): VNode {\n const tpl = col?.columnTemplate;\n return tpl ? (\n tpl(h as TableTypes.HFunc<VNode>, col)\n ) : (\n <Fragment>{col.title}</Fragment>\n );\n}\n\n/**\n * Renders a class string or map for pinned classes on the v axis.\n * @param type - element tagName\n * @param vPinned - whether element is currently pinned vertically to top or bottom\n * @param toString - render as a string (defaults to class map)\n * @returns a class string or class map\n */\nexport function headerPinClasses(\n type: ValidRenderTypes,\n vPinned?: TableTypes.Position,\n toString?: false\n): { [key: string]: boolean };\nexport function headerPinClasses(\n type: ValidRenderTypes,\n vPinned?: TableTypes.Position,\n toString?: true\n): string;\nexport function headerPinClasses(\n type: ValidRenderTypes,\n vPinned?: TableTypes.Position,\n toString = false\n): { [key: string]: boolean } | string {\n const classes = {\n [`${CSSNAMESPACE}__${type}`]: true,\n [`${CSSNAMESPACE}__pin`]: !!vPinned,\n [`${CSSNAMESPACE}__pin--top`]: vPinned === 'top',\n [`${CSSNAMESPACE}__pin--bottom`]: vPinned === 'bottom',\n };\n\n if (toString) return classListToStr(classes);\n return classes;\n}\n\n/**\n * Turns a class map {'string': boolean} to class string\n * @param classes - the class map to convert\n * @returns a class string\n */\nexport function classListToStr(classes: { [key: string]: boolean }): string {\n let classString = '';\n Object.entries(classes).forEach(([className, on]) => {\n if (on) classString += className + ' ';\n });\n return classString;\n}\n\n/**\n * Attempts to find the closes scrolling parental element\n * @param element - the element from which to traverse up the DOM\n * @returns - the closest scrolling parental element\n */\nexport function findScrollParent(element: HTMLElement) {\n let style = getComputedStyle(element);\n const excludeStaticParent = style.position === 'absolute';\n const overflowRegex = /(auto|scroll)/;\n\n if (style.position === 'fixed') return document.documentElement;\n for (let parent = element; (parent = parent.parentElement); ) {\n style = getComputedStyle(parent);\n if (excludeStaticParent && style.position === 'static') {\n continue;\n }\n if (overflowRegex.test(style.overflow + style.overflowY + style.overflowX))\n return parent;\n }\n return document.documentElement;\n}\n\n/**\n * Checks whether an element is currently viewable within the viewport\n * @param el - element to check\n * @param percentVisible - the percentage of the element that should be within the viewport\n * @returns true if the element's area percentage is visible\n */\nexport function isInViewport(el: Element, percentVisible = 100) {\n const r = el.getBoundingClientRect();\n const windowHeight =\n window.innerHeight || document.documentElement.clientHeight;\n\n if (\n !r.bottom &&\n !r.top &&\n !r.left &&\n !r.right &&\n !r.height &&\n !r.width &&\n !r.x &&\n !r.y\n )\n return false;\n\n return !(\n Math.floor(100 - ((r.top >= 0 ? 0 : r.top) / +-r.height) * 100) <\n percentVisible ||\n Math.floor(100 - ((r.bottom - windowHeight) / r.height) * 100) <\n percentVisible\n );\n}\n"]}
@@ -131,12 +131,12 @@ function sort(workerStore, rows, prop, order) {
131
131
  return rows;
132
132
  const col = workerStore.columns.find((c) => c.prop === prop);
133
133
  // custom sort
134
- if (!!(col === null || col === void 0 ? void 0 : col.sortCompareFn) && typeof col.sortCompareFn === 'function') {
134
+ if (!!col?.sortCompareFn && typeof col.sortCompareFn === 'function') {
135
135
  const sorted = rows.slice().sort(col.sortCompareFn(prop, order));
136
136
  return sorted;
137
137
  }
138
138
  // text sort
139
- if ((col === null || col === void 0 ? void 0 : col.type) === 'text' && typeof rows[0][prop] === 'string') {
139
+ if (col?.type === 'text' && typeof rows[0][prop] === 'string') {
140
140
  const sorted = rows.slice().sort((a, b) => {
141
141
  if (!a[prop])
142
142
  return 1;
@@ -180,7 +180,7 @@ function applyFiltersAndSort(workerStore, rows) {
180
180
  }
181
181
  function colsFromStore(safeColumns) {
182
182
  return safeColumns.map((c) => {
183
- if (!!(c === null || c === void 0 ? void 0 : c.sortCompareFn)) {
183
+ if (!!c?.sortCompareFn) {
184
184
  c.sortCompareFn = new Function('return ' + c.sortCompareFn)();
185
185
  }
186
186
  return c;
@@ -1 +1 @@
1
- {"version":3,"file":"table.worker.js","sourceRoot":"","sources":["../../../src/components/table/table.worker.ts"],"names":[],"mappings":"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","sourcesContent":["import { filter as smartFilter } from 'smart-array-filter';\nimport type { TableTypes } from '../../interface';\n\n// we'll do ordering and filtering in here\n\n/** SETUP */\n\ninterface WorkerStore {\n rows: TableTypes.NanoTable['rows'];\n columns: Partial<TableTypes.ColumnConfig>[];\n filterRows?: TableTypes.NanoTable['rows'];\n searchTerm?: string;\n}\n\nconst dataWorkers: Map<string, WorkerStore> = new Map();\n\nfunction uid() {\n return Date.now().toString(36) + Math.random().toString(36).substring(2);\n}\n\nexport async function createWorkerStore(\n rows: TableTypes.NanoTable['rows'],\n columns: Partial<TableTypes.ColumnConfig>[]\n) {\n const id = uid();\n dataWorkers.set(id, { rows, columns: colsFromStore(columns) });\n return id;\n}\n\nexport async function syncDataToWorker(\n workerId: string,\n rows: TableTypes.NanoTable['rows']\n) {\n const workerStore = dataWorkers.get(workerId);\n if (!workerStore) throw 'cannot find worker with ID ' + workerId;\n\n workerStore.rows = rows;\n if (!workerStore.rows && !workerStore.columns) destroyWorkerStore(workerId);\n return true;\n}\n\nexport async function syncConfigToWorker(\n workerId: string,\n columns: Partial<TableTypes.ColumnConfig>[]\n) {\n const workerStore = dataWorkers.get(workerId);\n if (!workerStore) throw 'cannot find worker with ID ' + workerId;\n\n workerStore.columns = colsFromStore(columns);\n if (!workerStore.rows && !workerStore.columns) destroyWorkerStore(workerId);\n return true;\n}\n\n/** SEARCH */\n\n/**\n * A general text search across all table columns.\n * Search is the first thing we do. Cache the result for filtering / sorting\n * @param workerId\n * @param term\n * @returns the searched for data rows - with col filters / sorts also applied\n */\nexport async function workerSearch(workerId: string, term: string) {\n const workerStore = dataWorkers.get(workerId);\n if (!workerStore) throw 'cannot find worker with ID ' + workerId;\n\n workerStore.searchTerm = term;\n if (!term || !term.length) {\n workerStore.filterRows = workerStore.rows;\n return applyFiltersAndSort(workerStore, workerStore.rows);\n }\n\n const availCols = workerStore.columns.filter((c) => c.searchable !== false);\n // cache result\n workerStore.filterRows = smartFilter(workerStore.rows, {\n keywords: term,\n predicate: 'OR',\n includePaths: [...(availCols.map((c) => c.prop) as string[])],\n ignorePaths: ['__uuid', '__index'],\n });\n\n // apply filter and sort\n return applyFiltersAndSort(workerStore, workerStore.filterRows);\n}\n\n/** FILTER */\n\n/**\n * Finds any currently applied filter conditions from the column config\n * @param workerStore\n * @returns the found column filter object array\n */\nfunction getCurrentFilters(workerStore: WorkerStore) {\n return workerStore.columns\n .filter((c) => c.filter !== undefined && c.filter !== null)\n .reduce((filters, col) => {\n const { prop, filter } = col;\n filters.push({ prop, filter });\n return filters;\n }, [] as TableTypes.Filter[]);\n}\n\nfunction filter(\n workerStore: WorkerStore,\n rows: TableTypes.NanoTable['rows'],\n filters: TableTypes.Filter[] = []\n) {\n if (!filters || !filters.length) filters = getCurrentFilters(workerStore);\n if (!filters || !filters.length) return rows;\n\n filters.forEach((filter) => {\n if (typeof filter.filter === 'boolean') {\n rows = rows.filter((row) => row[filter.prop] === filter.filter);\n } else {\n rows = smartFilter(rows, {\n predicate: typeof filter.filter === 'string' ? 'AND' : 'OR',\n keywords: filter.filter,\n includePaths: [filter.prop as string],\n ignorePaths: ['__uuid', '__index'],\n });\n }\n });\n return rows;\n}\n\nexport async function workerFilter(\n workerId: string,\n filters: TableTypes.Filter[]\n) {\n const workerStore = dataWorkers.get(workerId);\n if (!workerStore) throw 'cannot find worker with ID ' + workerId;\n\n // get cached results from a search\n const data =\n (!filters || !filters.length) && workerStore.searchTerm\n ? await workerSearch(workerId, workerStore.searchTerm)\n : workerStore.searchTerm\n ? workerStore.filterRows\n : workerStore.rows;\n workerStore.filterRows = filter(workerStore, data, filters);\n\n // apply sort\n return sort(workerStore, workerStore.filterRows);\n}\n\n/** SORT */\n\n/**\n * Finds any currently applied sort conditions from the column config\n * @param workerStore\n * @returns the found column name and it's sort direction\n */\nfunction getCurrentSort(workerStore: WorkerStore) {\n const foundSort = workerStore.columns.find((c) => !!c.order);\n\n if (foundSort) {\n const { prop, order } = foundSort;\n return { prop, order };\n }\n return null;\n}\n\nfunction sort(\n workerStore: WorkerStore,\n rows: TableTypes.NanoTable['rows'],\n prop?: TableTypes.Prop,\n order?: TableTypes.Order\n) {\n if (!prop && !order) {\n const currentSort = getCurrentSort(workerStore);\n if (currentSort) {\n ({ prop, order } = currentSort);\n }\n }\n if (!prop || !order || !rows.length) return rows;\n\n const col = workerStore.columns.find((c) => c.prop === prop);\n\n // custom sort\n if (!!col?.sortCompareFn && typeof col.sortCompareFn === 'function') {\n const sorted = rows.slice().sort(col.sortCompareFn(prop, order));\n return sorted;\n }\n\n // text sort\n if (col?.type === 'text' && typeof rows[0][prop] === 'string') {\n const sorted = rows.slice().sort((a, b) => {\n if (!a[prop]) return 1;\n if (!b[prop]) return -1;\n return order === 'asc'\n ? a[prop].localeCompare(b[prop])\n : b[prop].localeCompare(a[prop]);\n });\n return sorted;\n }\n\n // catch-all - number / date / string sort\n const sorted = rows.slice().sort((a, b) => {\n if (!a[prop]) return 1;\n if (!b[prop]) return -1;\n if (a[prop]! < b[prop]!) return order === 'asc' ? -1 : 1;\n if (a[prop]! > b[prop]!) return order === 'asc' ? 1 : -1;\n return 0;\n });\n return sorted;\n}\n\n/** Sorting is the last thing we do - don't cache this, there's no point */\nexport async function workerSort(\n workerId: string,\n prop: TableTypes.Prop,\n order: TableTypes.Order\n) {\n const workerStore = dataWorkers.get(workerId);\n if (!workerStore) throw 'cannot find worker with ID ' + workerId;\n\n // get cached results from a search / filter\n const data = workerStore.filterRows || workerStore.rows;\n return sort(workerStore, data, prop, order);\n}\n\n/** UTILS */\n\n// used after a search, it only sorts rn\n// (search acting like a filter 'reset' atm)\nfunction applyFiltersAndSort(\n workerStore: WorkerStore,\n rows: TableTypes.NanoTable['rows']\n) {\n rows = filter(workerStore, rows);\n return sort(workerStore, rows);\n}\n\nfunction colsFromStore(safeColumns: Partial<TableTypes.ColumnConfig>[]) {\n return safeColumns.map((c) => {\n if (!!c?.sortCompareFn) {\n c.sortCompareFn = new Function('return ' + c.sortCompareFn)();\n }\n return c;\n });\n}\n\n/**\n * Clean up\n * @param workerId\n */\nexport async function destroyWorkerStore(workerId: string) {\n dataWorkers.delete(workerId);\n}\n"]}
1
+ {"version":3,"file":"table.worker.js","sourceRoot":"","sources":["../../../src/components/table/table.worker.ts"],"names":[],"mappings":"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","sourcesContent":["import { filter as smartFilter } from 'smart-array-filter';\nimport type { TableTypes } from '../../interface';\n\n// we'll do ordering and filtering in here\n\n/** SETUP */\n\ninterface WorkerStore {\n rows: TableTypes.NanoTable['rows'];\n columns: Partial<TableTypes.ColumnConfig>[];\n filterRows?: TableTypes.NanoTable['rows'];\n searchTerm?: string;\n}\n\nconst dataWorkers: Map<string, WorkerStore> = new Map();\n\nfunction uid() {\n return Date.now().toString(36) + Math.random().toString(36).substring(2);\n}\n\nexport async function createWorkerStore(\n rows: TableTypes.NanoTable['rows'],\n columns: Partial<TableTypes.ColumnConfig>[]\n) {\n const id = uid();\n dataWorkers.set(id, { rows, columns: colsFromStore(columns) });\n return id;\n}\n\nexport async function syncDataToWorker(\n workerId: string,\n rows: TableTypes.NanoTable['rows']\n) {\n const workerStore = dataWorkers.get(workerId);\n if (!workerStore) throw 'cannot find worker with ID ' + workerId;\n\n workerStore.rows = rows;\n if (!workerStore.rows && !workerStore.columns) destroyWorkerStore(workerId);\n return true;\n}\n\nexport async function syncConfigToWorker(\n workerId: string,\n columns: Partial<TableTypes.ColumnConfig>[]\n) {\n const workerStore = dataWorkers.get(workerId);\n if (!workerStore) throw 'cannot find worker with ID ' + workerId;\n\n workerStore.columns = colsFromStore(columns);\n if (!workerStore.rows && !workerStore.columns) destroyWorkerStore(workerId);\n return true;\n}\n\n/** SEARCH */\n\n/**\n * A general text search across all table columns.\n * Search is the first thing we do. Cache the result for filtering / sorting\n * @param workerId\n * @param term\n * @returns the searched for data rows - with col filters / sorts also applied\n */\nexport async function workerSearch(workerId: string, term: string) {\n const workerStore = dataWorkers.get(workerId);\n if (!workerStore) throw 'cannot find worker with ID ' + workerId;\n\n workerStore.searchTerm = term;\n if (!term || !term.length) {\n workerStore.filterRows = workerStore.rows;\n return applyFiltersAndSort(workerStore, workerStore.rows);\n }\n\n const availCols = workerStore.columns.filter((c) => c.searchable !== false);\n // cache result\n workerStore.filterRows = smartFilter(workerStore.rows, {\n keywords: term,\n predicate: 'OR',\n includePaths: [...(availCols.map((c) => c.prop) as string[])],\n ignorePaths: ['__uuid', '__index'],\n });\n\n // apply filter and sort\n return applyFiltersAndSort(workerStore, workerStore.filterRows);\n}\n\n/** FILTER */\n\n/**\n * Finds any currently applied filter conditions from the column config\n * @param workerStore\n * @returns the found column filter object array\n */\nfunction getCurrentFilters(workerStore: WorkerStore) {\n return workerStore.columns\n .filter((c) => c.filter !== undefined && c.filter !== null)\n .reduce((filters, col) => {\n const { prop, filter } = col;\n filters.push({ prop, filter });\n return filters;\n }, [] as TableTypes.Filter[]);\n}\n\nfunction filter(\n workerStore: WorkerStore,\n rows: TableTypes.NanoTable['rows'],\n filters: TableTypes.Filter[] = []\n) {\n if (!filters || !filters.length) filters = getCurrentFilters(workerStore);\n if (!filters || !filters.length) return rows;\n\n filters.forEach((filter) => {\n if (typeof filter.filter === 'boolean') {\n rows = rows.filter((row) => row[filter.prop] === filter.filter);\n } else {\n rows = smartFilter(rows, {\n predicate: typeof filter.filter === 'string' ? 'AND' : 'OR',\n keywords: filter.filter,\n includePaths: [filter.prop as string],\n ignorePaths: ['__uuid', '__index'],\n });\n }\n });\n return rows;\n}\n\nexport async function workerFilter(\n workerId: string,\n filters: TableTypes.Filter[]\n) {\n const workerStore = dataWorkers.get(workerId);\n if (!workerStore) throw 'cannot find worker with ID ' + workerId;\n\n // get cached results from a search\n const data =\n (!filters || !filters.length) && workerStore.searchTerm\n ? await workerSearch(workerId, workerStore.searchTerm)\n : workerStore.searchTerm\n ? workerStore.filterRows\n : workerStore.rows;\n workerStore.filterRows = filter(workerStore, data, filters);\n\n // apply sort\n return sort(workerStore, workerStore.filterRows);\n}\n\n/** SORT */\n\n/**\n * Finds any currently applied sort conditions from the column config\n * @param workerStore\n * @returns the found column name and it's sort direction\n */\nfunction getCurrentSort(workerStore: WorkerStore) {\n const foundSort = workerStore.columns.find((c) => !!c.order);\n\n if (foundSort) {\n const { prop, order } = foundSort;\n return { prop, order };\n }\n return null;\n}\n\nfunction sort(\n workerStore: WorkerStore,\n rows: TableTypes.NanoTable['rows'],\n prop?: TableTypes.Prop,\n order?: TableTypes.Order\n) {\n if (!prop && !order) {\n const currentSort = getCurrentSort(workerStore);\n if (currentSort) {\n ({ prop, order } = currentSort);\n }\n }\n if (!prop || !order || !rows.length) return rows;\n\n const col = workerStore.columns.find((c) => c.prop === prop);\n\n // custom sort\n if (!!col?.sortCompareFn && typeof col.sortCompareFn === 'function') {\n const sorted = rows.slice().sort(col.sortCompareFn(prop, order));\n return sorted;\n }\n\n // text sort\n if (col?.type === 'text' && typeof rows[0][prop] === 'string') {\n const sorted = rows.slice().sort((a, b) => {\n if (!a[prop]) return 1;\n if (!b[prop]) return -1;\n return order === 'asc'\n ? a[prop].localeCompare(b[prop])\n : b[prop].localeCompare(a[prop]);\n });\n return sorted;\n }\n\n // catch-all - number / date / string sort\n const sorted = rows.slice().sort((a, b) => {\n if (!a[prop]) return 1;\n if (!b[prop]) return -1;\n if (a[prop]! < b[prop]!) return order === 'asc' ? -1 : 1;\n if (a[prop]! > b[prop]!) return order === 'asc' ? 1 : -1;\n return 0;\n });\n return sorted;\n}\n\n/** Sorting is the last thing we do - don't cache this, there's no point */\nexport async function workerSort(\n workerId: string,\n prop: TableTypes.Prop,\n order: TableTypes.Order\n) {\n const workerStore = dataWorkers.get(workerId);\n if (!workerStore) throw 'cannot find worker with ID ' + workerId;\n\n // get cached results from a search / filter\n const data = workerStore.filterRows || workerStore.rows;\n return sort(workerStore, data, prop, order);\n}\n\n/** UTILS */\n\n// used after a search, it only sorts rn\n// (search acting like a filter 'reset' atm)\nfunction applyFiltersAndSort(\n workerStore: WorkerStore,\n rows: TableTypes.NanoTable['rows']\n) {\n rows = filter(workerStore, rows);\n return sort(workerStore, rows);\n}\n\nfunction colsFromStore(safeColumns: Partial<TableTypes.ColumnConfig>[]) {\n return safeColumns.map((c) => {\n if (!!c?.sortCompareFn) {\n c.sortCompareFn = new Function('return ' + c.sortCompareFn)();\n }\n return c;\n });\n}\n\n/**\n * Clean up\n * @param workerId\n */\nexport async function destroyWorkerStore(workerId: string) {\n dataWorkers.delete(workerId);\n}\n"]}
@@ -12,7 +12,6 @@
12
12
  }
13
13
  :host {
14
14
  display: block;
15
- transform: translate3d(0, 0, 0);
16
15
  opacity: 1;
17
16
  animation: opacity 0.3s ease-in-out forwards;
18
17
  animation-duration: 0s !important;
@@ -332,12 +332,11 @@ export class TabGroup {
332
332
  });
333
333
  }
334
334
  syncActiveTabIndicator() {
335
- var _a;
336
335
  this.getAllTabs.forEach((tab) => tab.setAttribute('direction', this.placement === 'top' ? 'horizontal' : 'vertical'));
337
336
  const tab = this.getActiveTab;
338
337
  if (!tab)
339
338
  return;
340
- const width = ((_a = tab.shadowRoot.querySelector('.nanotab')) === null || _a === void 0 ? void 0 : _a.clientWidth) || 0;
339
+ const width = tab.shadowRoot.querySelector('.nanotab')?.clientWidth || 0;
341
340
  const height = tab.clientHeight;
342
341
  const offset = getOffset(tab, this.tabs);
343
342
  if (!this.activeTabIndicator)
@@ -368,7 +367,6 @@ export class TabGroup {
368
367
  }
369
368
  // Event handlers
370
369
  handleTabClose(ev) {
371
- var _a;
372
370
  let tabIndex = this.getAllActiveTabs.indexOf(ev.target);
373
371
  const tab = ev.target;
374
372
  if (tabIndex < 0)
@@ -383,7 +381,7 @@ export class TabGroup {
383
381
  // Show the previous tab if the tab is currently active
384
382
  if (tab.active) {
385
383
  tabIndex = tabIndex === 0 ? 1 : tabIndex - 1;
386
- const prevTab = (_a = this.getAllActiveTabs[tabIndex]) === null || _a === void 0 ? void 0 : _a.panel;
384
+ const prevTab = this.getAllActiveTabs[tabIndex]?.panel;
387
385
  if (prevTab)
388
386
  this.host.show(prevTab);
389
387
  }
@@ -431,7 +429,7 @@ export class TabGroup {
431
429
  }
432
430
  render() {
433
431
  this.isRtl = this.host.ownerDocument.dir === 'rtl';
434
- return (h(Host, { class: Object.assign({}, createColorClasses(this.color)), dir: this.isRtl ? 'rtl' : null }, h("div", { part: "base", class: {
432
+ return (h(Host, { class: { ...createColorClasses(this.color) }, dir: this.isRtl ? 'rtl' : null }, h("div", { part: "base", class: {
435
433
  'nano-tab-group': true,
436
434
  'nano-tab-group--top': this.placement === 'top',
437
435
  'nano-tab-group--start': this.placement === 'start',