@neovici/cosmoz-omnitable 14.14.3 → 14.15.1

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 (315) hide show
  1. package/dist/cosmoz-omnitable-column-amount.d.ts +2 -0
  2. package/dist/cosmoz-omnitable-column-amount.d.ts.map +1 -0
  3. package/dist/cosmoz-omnitable-column-amount.js +113 -0
  4. package/dist/cosmoz-omnitable-column-autocomplete.d.ts +6 -0
  5. package/dist/cosmoz-omnitable-column-autocomplete.d.ts.map +1 -0
  6. package/dist/cosmoz-omnitable-column-autocomplete.js +87 -0
  7. package/dist/cosmoz-omnitable-column-boolean.d.ts +17 -0
  8. package/dist/cosmoz-omnitable-column-boolean.d.ts.map +1 -0
  9. package/dist/cosmoz-omnitable-column-boolean.js +105 -0
  10. package/dist/cosmoz-omnitable-column-date.d.ts +2 -0
  11. package/dist/cosmoz-omnitable-column-date.d.ts.map +1 -0
  12. package/dist/cosmoz-omnitable-column-date.js +97 -0
  13. package/dist/cosmoz-omnitable-column-datetime.d.ts +2 -0
  14. package/dist/cosmoz-omnitable-column-datetime.d.ts.map +1 -0
  15. package/dist/cosmoz-omnitable-column-datetime.js +106 -0
  16. package/dist/cosmoz-omnitable-column-list-data.d.ts +2 -0
  17. package/dist/cosmoz-omnitable-column-list-data.d.ts.map +1 -0
  18. package/dist/cosmoz-omnitable-column-list-data.js +123 -0
  19. package/dist/cosmoz-omnitable-column-list-horizontal.d.ts +2 -0
  20. package/dist/cosmoz-omnitable-column-list-horizontal.d.ts.map +1 -0
  21. package/{cosmoz-omnitable-column-list-horizontal.js → dist/cosmoz-omnitable-column-list-horizontal.js} +15 -37
  22. package/dist/cosmoz-omnitable-column-list-mixin.d.ts +59 -0
  23. package/dist/cosmoz-omnitable-column-list-mixin.d.ts.map +1 -0
  24. package/dist/cosmoz-omnitable-column-list-mixin.js +139 -0
  25. package/dist/cosmoz-omnitable-column-list.d.ts +2 -0
  26. package/dist/cosmoz-omnitable-column-list.d.ts.map +1 -0
  27. package/{cosmoz-omnitable-column-list.js → dist/cosmoz-omnitable-column-list.js} +28 -47
  28. package/dist/cosmoz-omnitable-column-mixin.d.ts +161 -0
  29. package/dist/cosmoz-omnitable-column-mixin.d.ts.map +1 -0
  30. package/dist/cosmoz-omnitable-column-mixin.js +121 -0
  31. package/dist/cosmoz-omnitable-column-number.d.ts +2 -0
  32. package/dist/cosmoz-omnitable-column-number.d.ts.map +1 -0
  33. package/dist/cosmoz-omnitable-column-number.js +112 -0
  34. package/dist/cosmoz-omnitable-column-time.d.ts +2 -0
  35. package/dist/cosmoz-omnitable-column-time.d.ts.map +1 -0
  36. package/dist/cosmoz-omnitable-column-time.js +102 -0
  37. package/dist/cosmoz-omnitable-column.d.ts +2 -0
  38. package/dist/cosmoz-omnitable-column.d.ts.map +1 -0
  39. package/dist/cosmoz-omnitable-column.js +75 -0
  40. package/dist/cosmoz-omnitable-columns.d.ts +2 -0
  41. package/dist/cosmoz-omnitable-columns.d.ts.map +1 -0
  42. package/{cosmoz-omnitable-columns.js → dist/cosmoz-omnitable-columns.js} +1 -0
  43. package/dist/cosmoz-omnitable-group-row.d.ts +2 -0
  44. package/dist/cosmoz-omnitable-group-row.d.ts.map +1 -0
  45. package/dist/cosmoz-omnitable-group-row.js +15 -0
  46. package/dist/cosmoz-omnitable-header-row.d.ts +2 -0
  47. package/dist/cosmoz-omnitable-header-row.d.ts.map +1 -0
  48. package/{cosmoz-omnitable-header-row.js → dist/cosmoz-omnitable-header-row.js} +12 -45
  49. package/dist/cosmoz-omnitable-item-expand-line.d.ts +2 -0
  50. package/dist/cosmoz-omnitable-item-expand-line.d.ts.map +1 -0
  51. package/{cosmoz-omnitable-item-expand-line.js → dist/cosmoz-omnitable-item-expand-line.js} +4 -9
  52. package/dist/cosmoz-omnitable-item-expand.d.ts +2 -0
  53. package/dist/cosmoz-omnitable-item-expand.d.ts.map +1 -0
  54. package/{cosmoz-omnitable-item-expand.js → dist/cosmoz-omnitable-item-expand.js} +10 -18
  55. package/dist/cosmoz-omnitable-item-row.d.ts +2 -0
  56. package/dist/cosmoz-omnitable-item-row.d.ts.map +1 -0
  57. package/dist/cosmoz-omnitable-item-row.js +19 -0
  58. package/dist/cosmoz-omnitable-skeleton.d.ts +2 -0
  59. package/dist/cosmoz-omnitable-skeleton.d.ts.map +1 -0
  60. package/{cosmoz-omnitable-skeleton.js → dist/cosmoz-omnitable-skeleton.js} +9 -25
  61. package/dist/cosmoz-omnitable-styles.d.ts +4 -0
  62. package/dist/cosmoz-omnitable-styles.d.ts.map +1 -0
  63. package/{cosmoz-omnitable-styles.js → dist/cosmoz-omnitable-styles.js} +3 -4
  64. package/dist/cosmoz-omnitable.d.ts +3 -0
  65. package/dist/cosmoz-omnitable.d.ts.map +1 -0
  66. package/{cosmoz-omnitable.js → dist/cosmoz-omnitable.js} +27 -40
  67. package/dist/grouped-list/cosmoz-grouped-list-row.d.ts +2 -0
  68. package/dist/grouped-list/cosmoz-grouped-list-row.d.ts.map +1 -0
  69. package/dist/grouped-list/cosmoz-grouped-list-row.js +31 -0
  70. package/dist/grouped-list/cosmoz-grouped-list.d.ts +2 -0
  71. package/dist/grouped-list/cosmoz-grouped-list.d.ts.map +1 -0
  72. package/dist/grouped-list/cosmoz-grouped-list.js +5 -0
  73. package/dist/grouped-list/index.d.ts +2 -0
  74. package/dist/grouped-list/index.d.ts.map +1 -0
  75. package/{grouped-list → dist/grouped-list}/index.js +1 -0
  76. package/dist/grouped-list/use-collapsible-items.d.ts +7 -0
  77. package/dist/grouped-list/use-collapsible-items.d.ts.map +1 -0
  78. package/dist/grouped-list/use-collapsible-items.js +27 -0
  79. package/dist/grouped-list/use-cosmoz-grouped-list.d.ts +15 -0
  80. package/dist/grouped-list/use-cosmoz-grouped-list.d.ts.map +1 -0
  81. package/dist/grouped-list/use-cosmoz-grouped-list.js +66 -0
  82. package/dist/grouped-list/use-selected-items.d.ts +19 -0
  83. package/dist/grouped-list/use-selected-items.d.ts.map +1 -0
  84. package/dist/grouped-list/use-selected-items.js +105 -0
  85. package/dist/grouped-list/use-weak-state.d.ts +6 -0
  86. package/dist/grouped-list/use-weak-state.d.ts.map +1 -0
  87. package/dist/grouped-list/use-weak-state.js +15 -0
  88. package/dist/grouped-list/utils.d.ts +11 -0
  89. package/dist/grouped-list/utils.d.ts.map +1 -0
  90. package/dist/grouped-list/utils.js +57 -0
  91. package/dist/lib/compute-layout.d.ts +3 -0
  92. package/dist/lib/compute-layout.d.ts.map +1 -0
  93. package/dist/lib/compute-layout.js +46 -0
  94. package/dist/lib/cosmoz-omnitable-amount-range-input.d.ts +2 -0
  95. package/dist/lib/cosmoz-omnitable-amount-range-input.d.ts.map +1 -0
  96. package/dist/lib/cosmoz-omnitable-amount-range-input.js +304 -0
  97. package/dist/lib/cosmoz-omnitable-date-input-mixin.d.ts +2 -0
  98. package/dist/lib/cosmoz-omnitable-date-input-mixin.d.ts.map +1 -0
  99. package/dist/lib/cosmoz-omnitable-date-input-mixin.js +149 -0
  100. package/dist/lib/cosmoz-omnitable-date-range-input.d.ts +2 -0
  101. package/dist/lib/cosmoz-omnitable-date-range-input.d.ts.map +1 -0
  102. package/{lib → dist/lib}/cosmoz-omnitable-date-range-input.js +32 -41
  103. package/dist/lib/cosmoz-omnitable-datetime-range-input.d.ts +2 -0
  104. package/dist/lib/cosmoz-omnitable-datetime-range-input.d.ts.map +1 -0
  105. package/{lib → dist/lib}/cosmoz-omnitable-datetime-range-input.js +27 -38
  106. package/dist/lib/cosmoz-omnitable-number-range-input.d.ts +2 -0
  107. package/dist/lib/cosmoz-omnitable-number-range-input.d.ts.map +1 -0
  108. package/{lib → dist/lib}/cosmoz-omnitable-number-range-input.js +73 -83
  109. package/dist/lib/cosmoz-omnitable-range-input-mixin.d.ts +2 -0
  110. package/dist/lib/cosmoz-omnitable-range-input-mixin.d.ts.map +1 -0
  111. package/dist/lib/cosmoz-omnitable-range-input-mixin.js +337 -0
  112. package/dist/lib/cosmoz-omnitable-resize-nub.d.ts +2 -0
  113. package/dist/lib/cosmoz-omnitable-resize-nub.d.ts.map +1 -0
  114. package/dist/lib/cosmoz-omnitable-resize-nub.js +33 -0
  115. package/dist/lib/cosmoz-omnitable-time-range-input.d.ts +2 -0
  116. package/dist/lib/cosmoz-omnitable-time-range-input.d.ts.map +1 -0
  117. package/dist/lib/cosmoz-omnitable-time-range-input.js +125 -0
  118. package/dist/lib/generic-sorter.d.ts +2 -0
  119. package/dist/lib/generic-sorter.d.ts.map +1 -0
  120. package/dist/lib/generic-sorter.js +29 -0
  121. package/dist/lib/icons.d.ts +5 -0
  122. package/dist/lib/icons.d.ts.map +1 -0
  123. package/{lib → dist/lib}/icons.js +5 -8
  124. package/dist/lib/layout.d.ts +2 -0
  125. package/dist/lib/layout.d.ts.map +1 -0
  126. package/dist/lib/layout.js +41 -0
  127. package/dist/lib/polymer-haunted-render-mixin.d.ts +10 -0
  128. package/dist/lib/polymer-haunted-render-mixin.d.ts.map +1 -0
  129. package/dist/lib/polymer-haunted-render-mixin.js +16 -0
  130. package/dist/lib/render-footer.d.ts +9 -0
  131. package/dist/lib/render-footer.d.ts.map +1 -0
  132. package/{lib → dist/lib}/render-footer.js +4 -17
  133. package/dist/lib/render-header.d.ts +14 -0
  134. package/dist/lib/render-header.d.ts.map +1 -0
  135. package/{lib → dist/lib}/render-header.js +6 -27
  136. package/dist/lib/render-list.d.ts +2 -0
  137. package/dist/lib/render-list.d.ts.map +1 -0
  138. package/{lib → dist/lib}/render-list.js +12 -45
  139. package/dist/lib/save-as-csv-action.d.ts +2 -0
  140. package/dist/lib/save-as-csv-action.d.ts.map +1 -0
  141. package/dist/lib/save-as-csv-action.js +26 -0
  142. package/dist/lib/save-as-xlsx-action.d.ts +3 -0
  143. package/dist/lib/save-as-xlsx-action.d.ts.map +1 -0
  144. package/dist/lib/save-as-xlsx-action.js +18 -0
  145. package/dist/lib/settings/cosmoz-omnitable-settings.d.ts +2 -0
  146. package/dist/lib/settings/cosmoz-omnitable-settings.d.ts.map +1 -0
  147. package/{lib → dist/lib}/settings/cosmoz-omnitable-settings.js +27 -69
  148. package/dist/lib/settings/cosmoz-omnitable-sort-group.d.ts +14 -0
  149. package/dist/lib/settings/cosmoz-omnitable-sort-group.d.ts.map +1 -0
  150. package/dist/lib/settings/cosmoz-omnitable-sort-group.js +55 -0
  151. package/dist/lib/settings/drivers/context.d.ts +12 -0
  152. package/dist/lib/settings/drivers/context.d.ts.map +1 -0
  153. package/dist/lib/settings/drivers/context.js +11 -0
  154. package/dist/lib/settings/drivers/index.d.ts +4 -0
  155. package/dist/lib/settings/drivers/index.d.ts.map +1 -0
  156. package/{lib → dist/lib}/settings/drivers/index.js +1 -0
  157. package/dist/lib/settings/drivers/local.d.ts +8 -0
  158. package/dist/lib/settings/drivers/local.d.ts.map +1 -0
  159. package/dist/lib/settings/drivers/local.js +33 -0
  160. package/dist/lib/settings/drivers/remote.d.ts +8 -0
  161. package/dist/lib/settings/drivers/remote.d.ts.map +1 -0
  162. package/dist/lib/settings/drivers/remote.js +25 -0
  163. package/dist/lib/settings/index.d.ts +2 -0
  164. package/dist/lib/settings/index.d.ts.map +1 -0
  165. package/{lib → dist/lib}/settings/index.js +1 -1
  166. package/dist/lib/settings/normalize.d.ts +11 -0
  167. package/dist/lib/settings/normalize.d.ts.map +1 -0
  168. package/dist/lib/settings/normalize.js +47 -0
  169. package/dist/lib/settings/style.css.d.ts +4 -0
  170. package/dist/lib/settings/style.css.d.ts.map +1 -0
  171. package/{lib → dist/lib}/settings/style.css.js +3 -4
  172. package/dist/lib/settings/use-saved-settings.d.ts +9 -0
  173. package/dist/lib/settings/use-saved-settings.d.ts.map +1 -0
  174. package/dist/lib/settings/use-saved-settings.js +35 -0
  175. package/dist/lib/settings/use-settings-ui.d.ts +3 -0
  176. package/dist/lib/settings/use-settings-ui.d.ts.map +1 -0
  177. package/dist/lib/settings/use-settings-ui.js +78 -0
  178. package/dist/lib/settings/use-settings.d.ts +23 -0
  179. package/dist/lib/settings/use-settings.d.ts.map +1 -0
  180. package/dist/lib/settings/use-settings.js +26 -0
  181. package/dist/lib/use-canvas-width.d.ts +2 -0
  182. package/dist/lib/use-canvas-width.d.ts.map +1 -0
  183. package/dist/lib/use-canvas-width.js +8 -0
  184. package/dist/lib/use-dom-columns.d.ts +5 -0
  185. package/dist/lib/use-dom-columns.d.ts.map +1 -0
  186. package/dist/lib/use-dom-columns.js +127 -0
  187. package/dist/lib/use-fast-layout.d.ts +13 -0
  188. package/dist/lib/use-fast-layout.d.ts.map +1 -0
  189. package/dist/lib/use-fast-layout.js +47 -0
  190. package/dist/lib/use-footer.d.ts +10 -0
  191. package/dist/lib/use-footer.d.ts.map +1 -0
  192. package/dist/lib/use-footer.js +11 -0
  193. package/dist/lib/use-hash-state.d.ts +4 -0
  194. package/dist/lib/use-hash-state.d.ts.map +1 -0
  195. package/dist/lib/use-hash-state.js +32 -0
  196. package/dist/lib/use-header.d.ts +21 -0
  197. package/dist/lib/use-header.d.ts.map +1 -0
  198. package/dist/lib/use-header.js +38 -0
  199. package/dist/lib/use-layout.d.ts +7 -0
  200. package/dist/lib/use-layout.d.ts.map +1 -0
  201. package/dist/lib/use-layout.js +21 -0
  202. package/dist/lib/use-list.d.ts +31 -0
  203. package/dist/lib/use-list.d.ts.map +1 -0
  204. package/dist/lib/use-list.js +198 -0
  205. package/dist/lib/use-mini.d.ts +10 -0
  206. package/dist/lib/use-mini.d.ts.map +1 -0
  207. package/dist/lib/use-mini.js +19 -0
  208. package/dist/lib/use-omnitable.d.ts +37 -0
  209. package/dist/lib/use-omnitable.d.ts.map +1 -0
  210. package/dist/lib/use-omnitable.js +74 -0
  211. package/dist/lib/use-processed-items.d.ts +17 -0
  212. package/dist/lib/use-processed-items.d.ts.map +1 -0
  213. package/dist/lib/use-processed-items.js +151 -0
  214. package/dist/lib/use-public-interface.d.ts +7 -0
  215. package/dist/lib/use-public-interface.d.ts.map +1 -0
  216. package/dist/lib/use-public-interface.js +82 -0
  217. package/dist/lib/use-resizable-columns.d.ts +7 -0
  218. package/dist/lib/use-resizable-columns.d.ts.map +1 -0
  219. package/dist/lib/use-resizable-columns.js +38 -0
  220. package/dist/lib/use-sort-and-group-options.d.ts +26 -0
  221. package/dist/lib/use-sort-and-group-options.d.ts.map +1 -0
  222. package/dist/lib/use-sort-and-group-options.js +36 -0
  223. package/dist/lib/use-track-size.d.ts +2 -0
  224. package/dist/lib/use-track-size.d.ts.map +1 -0
  225. package/dist/lib/use-track-size.js +15 -0
  226. package/dist/lib/use-tween-array.d.ts +3 -0
  227. package/dist/lib/use-tween-array.d.ts.map +1 -0
  228. package/dist/lib/use-tween-array.js +50 -0
  229. package/dist/lib/utils-amount.d.ts +26 -0
  230. package/dist/lib/utils-amount.d.ts.map +1 -0
  231. package/dist/lib/utils-amount.js +99 -0
  232. package/dist/lib/utils-data.d.ts +8 -0
  233. package/dist/lib/utils-data.d.ts.map +1 -0
  234. package/dist/lib/utils-data.js +28 -0
  235. package/dist/lib/utils-date.d.ts +25 -0
  236. package/dist/lib/utils-date.d.ts.map +1 -0
  237. package/dist/lib/utils-date.js +161 -0
  238. package/dist/lib/utils-datetime.d.ts +16 -0
  239. package/dist/lib/utils-datetime.d.ts.map +1 -0
  240. package/dist/lib/utils-datetime.js +52 -0
  241. package/dist/lib/utils-number.d.ts +19 -0
  242. package/dist/lib/utils-number.d.ts.map +1 -0
  243. package/dist/lib/utils-number.js +87 -0
  244. package/dist/lib/utils-time.d.ts +17 -0
  245. package/dist/lib/utils-time.d.ts.map +1 -0
  246. package/dist/lib/utils-time.js +88 -0
  247. package/dist/lib/utils.d.ts +3 -0
  248. package/dist/lib/utils.d.ts.map +1 -0
  249. package/dist/lib/utils.js +14 -0
  250. package/dist/ui-helpers/cosmoz-clear-button.d.ts +2 -0
  251. package/dist/ui-helpers/cosmoz-clear-button.d.ts.map +1 -0
  252. package/{ui-helpers → dist/ui-helpers}/cosmoz-clear-button.js +3 -5
  253. package/package.json +38 -8
  254. package/cosmoz-omnitable-column-amount.js +0 -162
  255. package/cosmoz-omnitable-column-autocomplete.js +0 -113
  256. package/cosmoz-omnitable-column-boolean.js +0 -168
  257. package/cosmoz-omnitable-column-date.js +0 -133
  258. package/cosmoz-omnitable-column-datetime.js +0 -145
  259. package/cosmoz-omnitable-column-list-data.js +0 -141
  260. package/cosmoz-omnitable-column-list-mixin.js +0 -198
  261. package/cosmoz-omnitable-column-mixin.js +0 -149
  262. package/cosmoz-omnitable-column-number.js +0 -157
  263. package/cosmoz-omnitable-column-time.js +0 -137
  264. package/cosmoz-omnitable-column.js +0 -99
  265. package/cosmoz-omnitable-group-row.js +0 -20
  266. package/cosmoz-omnitable-item-row.js +0 -38
  267. package/grouped-list/cosmoz-grouped-list-row.js +0 -41
  268. package/grouped-list/cosmoz-grouped-list.js +0 -13
  269. package/grouped-list/use-collapsible-items.js +0 -32
  270. package/grouped-list/use-cosmoz-grouped-list.js +0 -102
  271. package/grouped-list/use-selected-items.js +0 -140
  272. package/grouped-list/use-weak-state.js +0 -21
  273. package/grouped-list/utils.js +0 -89
  274. package/lib/compute-layout.js +0 -74
  275. package/lib/cosmoz-omnitable-amount-range-input.js +0 -353
  276. package/lib/cosmoz-omnitable-date-input-mixin.js +0 -182
  277. package/lib/cosmoz-omnitable-range-input-mixin.js +0 -451
  278. package/lib/cosmoz-omnitable-resize-nub.js +0 -41
  279. package/lib/cosmoz-omnitable-time-range-input.js +0 -154
  280. package/lib/generic-sorter.js +0 -35
  281. package/lib/layout.js +0 -61
  282. package/lib/polymer-haunted-render-mixin.js +0 -19
  283. package/lib/save-as-csv-action.js +0 -36
  284. package/lib/save-as-xlsx-action.js +0 -27
  285. package/lib/settings/cosmoz-omnitable-sort-group.js +0 -74
  286. package/lib/settings/drivers/context.js +0 -16
  287. package/lib/settings/drivers/local.js +0 -29
  288. package/lib/settings/drivers/remote.js +0 -22
  289. package/lib/settings/normalize.js +0 -76
  290. package/lib/settings/use-saved-settings.js +0 -43
  291. package/lib/settings/use-settings-ui.js +0 -125
  292. package/lib/settings/use-settings.js +0 -53
  293. package/lib/use-canvas-width.js +0 -12
  294. package/lib/use-dom-columns.js +0 -166
  295. package/lib/use-fast-layout.js +0 -73
  296. package/lib/use-footer.js +0 -16
  297. package/lib/use-hash-state.js +0 -71
  298. package/lib/use-header.js +0 -71
  299. package/lib/use-layout.js +0 -32
  300. package/lib/use-list.js +0 -263
  301. package/lib/use-mini.js +0 -30
  302. package/lib/use-omnitable.js +0 -99
  303. package/lib/use-processed-items.js +0 -254
  304. package/lib/use-public-interface.js +0 -107
  305. package/lib/use-resizable-columns.js +0 -63
  306. package/lib/use-sort-and-group-options.js +0 -95
  307. package/lib/use-track-size.js +0 -23
  308. package/lib/use-tween-array.js +0 -60
  309. package/lib/utils-amount.js +0 -131
  310. package/lib/utils-data.js +0 -42
  311. package/lib/utils-date.js +0 -194
  312. package/lib/utils-datetime.js +0 -66
  313. package/lib/utils-number.js +0 -111
  314. package/lib/utils-time.js +0 -112
  315. package/lib/utils.js +0 -17
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-canvas-width.d.ts","sourceRoot":"","sources":["../../src/lib/use-canvas-width.js"],"names":[],"mappings":"AAGO,+CAQN"}
@@ -0,0 +1,8 @@
1
+ import { useState } from '@pionjs/pion';
2
+ import { useTrackSize } from './use-track-size';
3
+ export const useCanvasWidth = (host) => {
4
+ const [canvasWidth, setCanvasWidth] = useState(() => host.getBoundingClientRect().width);
5
+ useTrackSize(host, setCanvasWidth);
6
+ return canvasWidth;
7
+ };
8
+ //# sourceMappingURL=use-canvas-width.js.map
@@ -0,0 +1,5 @@
1
+ export function useDOMColumns(host: any, { enabledColumns }: {
2
+ enabledColumns: any;
3
+ }): never[];
4
+ export const columnSymbol: unique symbol;
5
+ //# sourceMappingURL=use-dom-columns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-dom-columns.d.ts","sourceRoot":"","sources":["../../src/lib/use-dom-columns.js"],"names":[],"mappings":"AAwIO;;YA2BN;AAhKD,yCAAsC"}
@@ -0,0 +1,127 @@
1
+ import { useLayoutEffect, useState } from '@pionjs/pion';
2
+ import { memooize } from '@neovici/cosmoz-utils/memoize';
3
+ const columnSymbol = Symbol('column');
4
+ const verifyColumnSetup = (columns) => {
5
+ let ok = true;
6
+ const columnNames = columns.map((c) => c.name);
7
+ // Check if column names are set
8
+ columns.forEach((column) => {
9
+ if (column.name != null) {
10
+ return;
11
+ }
12
+ ok = false;
13
+ // eslint-disable-next-line no-console
14
+ console.error('The name attribute needs to be set on all columns! Missing on column', column);
15
+ });
16
+ columns.forEach((column) => {
17
+ if (columnNames.indexOf(column.name) === columnNames.lastIndexOf(column.name)) {
18
+ return;
19
+ }
20
+ ok = false;
21
+ // eslint-disable-next-line no-console
22
+ console.error('The name attribute needs to be unique among all columns! Not unique on column', column);
23
+ });
24
+ return ok;
25
+ };
26
+ const normalizeColumn = (column) => {
27
+ const valuePath = column.valuePath ?? column.name;
28
+ return {
29
+ name: column.name,
30
+ title: column.title,
31
+ valuePath,
32
+ groupOn: column.groupOn ?? valuePath,
33
+ sortOn: column.sortOn ?? valuePath,
34
+ minWidth: column.minWidth,
35
+ width: column.width,
36
+ flex: column.flex,
37
+ priority: column.priority,
38
+ getString: column.getString,
39
+ getComparableValue: column.getComparableValue,
40
+ serializeFilter: column.serializeFilter,
41
+ deserializeFilter: column.deserializeFilter,
42
+ toXlsxValue: column.toXlsxValue,
43
+ renderHeader: column.renderHeader,
44
+ renderCell: column.renderCell,
45
+ renderEditCell: column.renderEditCell,
46
+ renderGroup: column.renderGroup,
47
+ cellTitleFn: column.cellTitleFn,
48
+ getFilterFn: column.getFilterFn,
49
+ headerCellClass: column.headerCellClass,
50
+ cellClass: column.cellClass,
51
+ editable: column.editable,
52
+ values: column.values,
53
+ source: memooize(column.computeSource),
54
+ noLocalFilter: column.noLocalFilter,
55
+ mini: column.mini,
56
+ renderMini: column.renderMini,
57
+ // @deprecated
58
+ loading: column.loading,
59
+ externalValues: column.externalValues,
60
+ computeSource: column.computeSource,
61
+ // boolean columns
62
+ trueLabel: column.trueLabel,
63
+ falseLabel: column.falseLabel,
64
+ // list columns
65
+ valueProperty: column.valueProperty,
66
+ textProperty: column.textProperty,
67
+ emptyLabel: column.emptyLabel,
68
+ emptyValue: column.emptyValue,
69
+ // range columns
70
+ min: column.min,
71
+ max: column.max,
72
+ locale: column.locale,
73
+ autoupdate: column.autoupdate,
74
+ // number columns
75
+ maximumFractionDigits: column.maximumFractionDigits,
76
+ minimumFractionDigits: column.minimumFractionDigits,
77
+ // amount columns
78
+ currency: column.currency,
79
+ rates: column.rates,
80
+ autodetect: column.autodetect,
81
+ // treenode columns
82
+ ownerTree: column.ownerTree,
83
+ keyProperty: column.keyProperty,
84
+ ...column.getConfig?.(column),
85
+ [columnSymbol]: column,
86
+ };
87
+ };
88
+ const isVisibleColumn = (child) => child.isOmnitableColumn && !child.hidden;
89
+ const collectDomColumns = (slot) => {
90
+ const domColumns = slot
91
+ .assignedElements({ flatten: true })
92
+ .filter(isVisibleColumn);
93
+ if (!verifyColumnSetup(domColumns))
94
+ return [];
95
+ return domColumns;
96
+ };
97
+ const normalizeColumns = (domColumns, enabledColumns) => {
98
+ const columns = Array.isArray(enabledColumns)
99
+ ? domColumns.filter((column) => enabledColumns.includes(column.name))
100
+ : domColumns.filter((column) => !column.disabled);
101
+ return columns.map(normalizeColumn);
102
+ };
103
+ export const useDOMColumns = (host, { enabledColumns }) => {
104
+ const [columns, setColumns] = useState([]);
105
+ useLayoutEffect(() => {
106
+ let sched;
107
+ const slot = host.shadowRoot.querySelector('#columnsSlot');
108
+ const update = () => {
109
+ setColumns(normalizeColumns(collectDomColumns(slot), enabledColumns));
110
+ };
111
+ const scheduleUpdate = () => {
112
+ cancelAnimationFrame(sched);
113
+ sched = requestAnimationFrame(update);
114
+ };
115
+ scheduleUpdate();
116
+ slot.addEventListener('slotchange', scheduleUpdate);
117
+ host.addEventListener('cosmoz-column-prop-changed', scheduleUpdate);
118
+ return () => {
119
+ slot.removeEventListener('slotchange', scheduleUpdate);
120
+ host.removeEventListener('cosmoz-column-prop-changed', scheduleUpdate);
121
+ cancelAnimationFrame(sched);
122
+ };
123
+ }, [enabledColumns]);
124
+ return columns;
125
+ };
126
+ export { columnSymbol };
127
+ //# sourceMappingURL=use-dom-columns.js.map
@@ -0,0 +1,13 @@
1
+ export function useFastLayout({ host, columns, settings, setSettings, resizeSpeedFactor, sortAndGroupOptions, }: {
2
+ host: any;
3
+ columns: any;
4
+ settings: any;
5
+ setSettings: any;
6
+ resizeSpeedFactor: any;
7
+ sortAndGroupOptions: any;
8
+ }): {
9
+ isMini: boolean;
10
+ collapsedColumns: any;
11
+ miniColumns: any;
12
+ };
13
+ //# sourceMappingURL=use-fast-layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-fast-layout.d.ts","sourceRoot":"","sources":["../../src/lib/use-fast-layout.js"],"names":[],"mappings":"AAsBO;;;;;;;;;;;EAkDN"}
@@ -0,0 +1,47 @@
1
+ import { useEffect, useMemo } from '@pionjs/pion';
2
+ import { toCss } from './compute-layout';
3
+ import { useResizableColumns } from './use-resizable-columns';
4
+ import { useCanvasWidth } from './use-canvas-width';
5
+ import { useTweenArray } from './use-tween-array';
6
+ import { useLayout } from './use-layout';
7
+ import { useMini } from './use-mini';
8
+ import { useMeta } from '@neovici/cosmoz-utils/hooks/use-meta';
9
+ const useAdoptedStyleSheet = (host) => {
10
+ const styleSheet = useMemo(() => new CSSStyleSheet(), []);
11
+ useEffect(() => {
12
+ host.shadowRoot.adoptedStyleSheets = [
13
+ ...host.shadowRoot.adoptedStyleSheets,
14
+ styleSheet,
15
+ ];
16
+ }, []);
17
+ return styleSheet;
18
+ };
19
+ export const useFastLayout = ({ host, columns, settings, setSettings, resizeSpeedFactor, sortAndGroupOptions, }) => {
20
+ const canvasWidth = useCanvasWidth(host), { isMini, miniColumn, miniColumns } = useMini({
21
+ host,
22
+ canvasWidth,
23
+ columns,
24
+ }), { groupOnColumn } = sortAndGroupOptions, layout = useLayout({
25
+ canvasWidth,
26
+ groupOnColumn,
27
+ miniColumn,
28
+ config: settings.columns,
29
+ }), styleSheet = useAdoptedStyleSheet(host), collapsedColumns = useMemo(() => settings.columns.reduce((acc, column, index) => layout[index] != null ||
30
+ column.name === groupOnColumn?.name ||
31
+ column.disabled
32
+ ? acc
33
+ : [...acc, columns.find((c) => c.name === column.name)], []), [columns, settings, layout]);
34
+ const meta = useMeta({ columns: settings.columns });
35
+ useTweenArray(layout, resizeSpeedFactor, (tweenedlayout) => {
36
+ const layoutCss = toCss(tweenedlayout, meta.columns);
37
+ styleSheet.replace(layoutCss);
38
+ });
39
+ useResizableColumns({
40
+ host,
41
+ canvasWidth,
42
+ layout,
43
+ setSettings: (update) => setSettings(update(settings)),
44
+ });
45
+ return { isMini, collapsedColumns, miniColumns };
46
+ };
47
+ //# sourceMappingURL=use-fast-layout.js.map
@@ -0,0 +1,10 @@
1
+ export function useFooter({ host, ...rest }: {
2
+ [x: string]: any;
3
+ host: any;
4
+ }): {
5
+ csvFilename: any;
6
+ xlsxFilename: any;
7
+ xlsxSheetname: any;
8
+ topPlacement: any;
9
+ };
10
+ //# sourceMappingURL=use-footer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-footer.d.ts","sourceRoot":"","sources":["../../src/lib/use-footer.js"],"names":[],"mappings":"AAAO;;;;;;;;EAeN"}
@@ -0,0 +1,11 @@
1
+ export const useFooter = ({ host, ...rest }) => {
2
+ const { csvFilename = 'omnitable.csv', xlsxFilename = 'omnitable.xlsx', xlsxSheetname = 'Omnitable', topPlacement = 'top-end', } = host;
3
+ return {
4
+ csvFilename,
5
+ xlsxFilename,
6
+ xlsxSheetname,
7
+ topPlacement,
8
+ ...rest,
9
+ };
10
+ };
11
+ //# sourceMappingURL=use-footer.js.map
@@ -0,0 +1,4 @@
1
+ export function useHashState(initial: any, param: any, { suffix, read, write, multi }?: {
2
+ suffix?: string | undefined;
3
+ }): any[];
4
+ //# sourceMappingURL=use-hash-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-hash-state.d.ts","sourceRoot":"","sources":["../../src/lib/use-hash-state.js"],"names":[],"mappings":"AA0CO;;UA4BN"}
@@ -0,0 +1,32 @@
1
+ import { useCallback, useState } from '@pionjs/pion';
2
+ import { navigate } from '@neovici/cosmoz-router';
3
+ import { identity, invoke } from '@neovici/cosmoz-utils/function';
4
+ import { hashUrl, multiParse, singleParse, } from '@neovici/cosmoz-utils/location';
5
+ const makeLinker = (parameterize) => (hashParam, value, codec = identity) => {
6
+ const url = hashUrl(), searchParams = new URLSearchParams(url.hash.replace('#', ''));
7
+ // TODO: make parameterize pure
8
+ parameterize(hashParam, value, codec, searchParams);
9
+ return ('#!' +
10
+ Object.assign(url, { hash: searchParams }).href.replace(location.origin, ''));
11
+ }, isEmpty = (v) => v == null || v === '', singleLink = makeLinker((hashParam, value, codec, searchParams) => !isEmpty(codec(value))
12
+ ? searchParams.set(hashParam, codec(value))
13
+ : searchParams.delete(hashParam)), multiLink = makeLinker((hashParam, value, codec, searchParams) => Object.entries(value)
14
+ .map(codec)
15
+ .forEach(([key, value]) => !isEmpty(value)
16
+ ? searchParams.set(hashParam + key, value)
17
+ : searchParams.delete(hashParam + key)));
18
+ export const useHashState = (initial, param, { suffix = '', read, write, multi } = {}) => {
19
+ const [link, parseHash] = multi
20
+ ? [multiLink, multiParse]
21
+ : [singleLink, singleParse], [state, _setState] = useState(() => param == null ? initial : (parseHash(param + suffix, read) ?? initial)), setState = useCallback((state) => _setState((oldState) => {
22
+ const newState = invoke(state, oldState);
23
+ if (param != null) {
24
+ navigate(link(param + suffix, newState, write), null, {
25
+ notify: false,
26
+ });
27
+ }
28
+ return newState;
29
+ }), [param, suffix, link, write]);
30
+ return [state, setState];
31
+ };
32
+ //# sourceMappingURL=use-hash-state.js.map
@@ -0,0 +1,21 @@
1
+ export function useHeader({ host, selectedItems, data, sortAndGroupOptions, collapsedColumns, settings, filterFunctions, settingS, filters, ...rest }: {
2
+ [x: string]: any;
3
+ host: any;
4
+ selectedItems: any;
5
+ data: any;
6
+ sortAndGroupOptions: any;
7
+ collapsedColumns: any;
8
+ settings: any;
9
+ filterFunctions: any;
10
+ settingS: any;
11
+ filters: any;
12
+ }): {
13
+ allSelected: any;
14
+ onAllCheckboxChange: (event: any) => void;
15
+ data: any;
16
+ settingsConfig: any;
17
+ filters: any;
18
+ groupOnColumn: any;
19
+ sortAndGroup: any;
20
+ };
21
+ //# sourceMappingURL=use-header.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-header.d.ts","sourceRoot":"","sources":["../../src/lib/use-header.js"],"names":[],"mappings":"AAEO;;;;;;;;;;;;;;;;;;;EAoEN"}
@@ -0,0 +1,38 @@
1
+ import { useEffect, useMemo } from '@pionjs/pion';
2
+ export const useHeader = ({ host, selectedItems, data, sortAndGroupOptions, collapsedColumns, settings, filterFunctions, settingS, filters, ...rest }) => {
3
+ const allSelected = data && data.length > 0 && selectedItems.length === data.length, onAllCheckboxChange = (event) => {
4
+ if (event.target.checked) {
5
+ host.shadowRoot.querySelector('#groupedList').selectAll();
6
+ }
7
+ else {
8
+ host.shadowRoot.querySelector('#groupedList').deselectAll();
9
+ }
10
+ }, { groupOnColumn } = sortAndGroupOptions, hasHiddenFilter = useMemo(() => [
11
+ groupOnColumn,
12
+ ...collapsedColumns,
13
+ ...settings.columns.filter((s) => s.disabled),
14
+ ].some((column) => column && Object.keys(filterFunctions).includes(column.name)), [filterFunctions, settings, collapsedColumns]), settingsConfig = useMemo(() => ({
15
+ ...settingS,
16
+ collapsed: collapsedColumns,
17
+ badge: hasHiddenFilter,
18
+ filters,
19
+ }), [settingS, collapsedColumns, hasHiddenFilter, filters]);
20
+ useEffect(() => {
21
+ const el = host.shadowRoot.querySelector('#tableContent'), observer = new ResizeObserver((entries) => requestAnimationFrame(() => {
22
+ host.style.setProperty('--ot-height', entries[0]?.contentRect.height + 'px');
23
+ }));
24
+ observer.observe(el);
25
+ return () => observer.unobserve(el);
26
+ }, []);
27
+ return {
28
+ allSelected,
29
+ onAllCheckboxChange,
30
+ data,
31
+ settingsConfig,
32
+ filters,
33
+ groupOnColumn,
34
+ sortAndGroup: sortAndGroupOptions.sortAndGroup,
35
+ ...rest,
36
+ };
37
+ };
38
+ //# sourceMappingURL=use-header.js.map
@@ -0,0 +1,7 @@
1
+ export function useLayout({ canvasWidth, groupOnColumn, config, miniColumn }: {
2
+ canvasWidth: any;
3
+ groupOnColumn: any;
4
+ config: any;
5
+ miniColumn: any;
6
+ }): any;
7
+ //# sourceMappingURL=use-layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-layout.d.ts","sourceRoot":"","sources":["../../src/lib/use-layout.js"],"names":[],"mappings":"AAGO;;;;;QA4BkC"}
@@ -0,0 +1,21 @@
1
+ import { useMemo } from '@pionjs/pion';
2
+ import { computeLayout } from './compute-layout';
3
+ export const useLayout = ({ canvasWidth, groupOnColumn, config, miniColumn }) => useMemo(() => {
4
+ if (!Array.isArray(config) || canvasWidth == null || canvasWidth === 0) {
5
+ return [];
6
+ }
7
+ const columnConfigs = config
8
+ .map((c, index) => ({
9
+ minWidth: c.minWidth,
10
+ width: c.width,
11
+ flex: c.flex,
12
+ priority: c.priority,
13
+ name: c.name,
14
+ index,
15
+ hidden: c.name === groupOnColumn?.name || c.disabled,
16
+ }))
17
+ .map((c) => miniColumn ? { ...c, hidden: miniColumn.name !== c.name } : c)
18
+ .sort(({ index: aIndex, priority: aPriority }, { index: bIndex, priority: bPriority }) => aPriority === bPriority ? bIndex - aIndex : aPriority - bPriority);
19
+ return computeLayout(columnConfigs, canvasWidth, columnConfigs.length);
20
+ }, [canvasWidth, groupOnColumn, config]);
21
+ //# sourceMappingURL=use-layout.js.map
@@ -0,0 +1,31 @@
1
+ export function useList({ host, error, dataIsValid, processedItems, columns, collapsedColumns, miniColumns, sortAndGroupOptions, rowPartFn, ...rest }: {
2
+ [x: string]: any;
3
+ host: any;
4
+ error: any;
5
+ dataIsValid: any;
6
+ processedItems: any;
7
+ columns: any;
8
+ collapsedColumns: any;
9
+ miniColumns: any;
10
+ sortAndGroupOptions: any;
11
+ rowPartFn: any;
12
+ }): {
13
+ processedItems: any;
14
+ dataIsValid: any;
15
+ filterIsTooStrict: any;
16
+ loading: any;
17
+ compareItemsFn: any;
18
+ displayEmptyGroups: any;
19
+ error: any;
20
+ renderItem: (item: any, index: any, { selected, expanded, toggleCollapse }: {
21
+ selected: any;
22
+ expanded: any;
23
+ toggleCollapse: any;
24
+ }) => import("lit-html").TemplateResult<1>;
25
+ renderGroup: (item: any, index: any, { selected, folded, toggleFold }: {
26
+ selected: any;
27
+ folded: any;
28
+ toggleFold: any;
29
+ }) => import("lit-html").TemplateResult<1>;
30
+ };
31
+ //# sourceMappingURL=use-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-list.d.ts","sourceRoot":"","sources":["../../src/lib/use-list.js"],"names":[],"mappings":"AAkJO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoHN"}
@@ -0,0 +1,198 @@
1
+ import { html, useCallback, useEffect, useMemo, useRef } from '@pionjs/pion';
2
+ import { when } from 'lit-html/directives/when.js';
3
+ import { isEmpty } from '@neovici/cosmoz-utils/template';
4
+ import { indexSymbol } from './utils';
5
+ import { onItemChange as _onItemChange } from './utils-data';
6
+ const arrow = html `
7
+ <svg
8
+ viewBox="0 0 24 24"
9
+ preserveAspectRatio="xMidYMid meet"
10
+ focusable="false"
11
+ >
12
+ <g>
13
+ <path d="M12 8l-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z"></path>
14
+ </g>
15
+ </svg>
16
+ `;
17
+ const _getGroupRowClasses = (folded) => folded ? 'groupRow groupRow-folded' : 'groupRow';
18
+ const renderMinis = ({ item, index }) => (columns) => when(columns?.length > 0, () => html `
19
+ <div class="itemRow-minis" part="item-minis">
20
+ ${columns.map((column) => html `<div
21
+ class="itemRow-mini"
22
+ part="item-mini item-mini-${column.name}"
23
+ >
24
+ ${(column.renderMini ?? column.renderCell)(column, {
25
+ item,
26
+ index,
27
+ })}
28
+ </div>`)}
29
+ </div>
30
+ `);
31
+ const renderItem = ({ columns, collapsedColumns, miniColumns, onItemClick, onCheckboxChange, dataIsValid, groupOnColumn, onItemChange, rowPartFn, }) => (item, index, { selected, expanded, toggleCollapse }) => html `
32
+ <div
33
+ ?selected=${selected}
34
+ part="${[
35
+ 'itemRow',
36
+ `itemRow-${item[indexSymbol]}`,
37
+ rowPartFn?.(item, index),
38
+ ]
39
+ .filter(Boolean)
40
+ .join(' ')}"
41
+ .dataIndex=${item[indexSymbol]}
42
+ .dataItem=${item}
43
+ class="itemRow"
44
+ @click=${onItemClick}
45
+ >
46
+ <div class="itemRow-wrapper" part="itemRow-wrapper">
47
+ <input
48
+ class="checkbox"
49
+ type="checkbox"
50
+ part="checkbox"
51
+ .checked=${selected}
52
+ .dataItem=${item}
53
+ @input=${onCheckboxChange}
54
+ ?disabled=${!dataIsValid}
55
+ />
56
+ <cosmoz-omnitable-item-row
57
+ part="itemRow-inner"
58
+ .columns=${columns}
59
+ .index=${index}
60
+ .selected=${selected}
61
+ .expanded=${expanded}
62
+ .item=${item}
63
+ .groupOnColumn=${groupOnColumn}
64
+ .onItemChange=${onItemChange}
65
+ >
66
+ </cosmoz-omnitable-item-row>
67
+ <button
68
+ class="expand"
69
+ ?hidden="${isEmpty(collapsedColumns.length)}"
70
+ ?aria-expanded="${expanded}"
71
+ @click="${toggleCollapse}"
72
+ >
73
+ ${arrow}
74
+ </button>
75
+ </div>
76
+ ${renderMinis({ item, index })(miniColumns)}
77
+ </div>
78
+ <cosmoz-omnitable-item-expand
79
+ .columns=${collapsedColumns}
80
+ .item=${item}
81
+ .index=${index}
82
+ ?selected=${selected}
83
+ ?expanded=${expanded}
84
+ .groupOnColumn=${groupOnColumn}
85
+ part="item-expand"
86
+ >
87
+ </cosmoz-omnitable-item-expand>
88
+ `;
89
+ const renderGroup = ({ onCheckboxChange, dataIsValid, groupOnColumn }) => (item, index, { selected, folded, toggleFold }) => html ` <div
90
+ class="${_getGroupRowClasses(folded)}"
91
+ part="groupRow groupRow-${item[indexSymbol]}"
92
+ >
93
+ <input
94
+ class="checkbox"
95
+ type="checkbox"
96
+ .checked=${selected}
97
+ .dataItem=${item}
98
+ @input=${onCheckboxChange}
99
+ ?disabled=${!dataIsValid}
100
+ />
101
+ <h3 class="groupRow-label">
102
+ <div><span>${groupOnColumn?.title}</span>: &nbsp;</div>
103
+ <cosmoz-omnitable-group-row
104
+ .column=${groupOnColumn}
105
+ .item=${item.items?.[0]}
106
+ .selected=${selected}
107
+ .folded=${folded}
108
+ .group=${item}
109
+ ></cosmoz-omnitable-group-row>
110
+ </h3>
111
+ <div class="groupRow-badge">${item.items.length}</div>
112
+ <button class="expand" ?aria-expanded="${folded}" @click=${toggleFold}>
113
+ ${arrow}
114
+ </button>
115
+ </div>`;
116
+ export const useList = ({ host, error, dataIsValid, processedItems, columns, collapsedColumns, miniColumns, sortAndGroupOptions, rowPartFn, ...rest }) => {
117
+ const { loading = false, displayEmptyGroups = false, compareItemsFn } = host, keyState = useRef({ shiftKey: false, ctrlKey: false }), onCheckboxChange = useCallback((event) => {
118
+ const item = event.target.dataItem, selected = event.target.checked;
119
+ if (keyState.current.shiftKey) {
120
+ host.shadowRoot
121
+ .querySelector('#groupedList')
122
+ .toggleSelectTo(item, selected);
123
+ }
124
+ else if (keyState.current.ctrlKey) {
125
+ event.target.checked = true;
126
+ host.shadowRoot.querySelector('#groupedList').selectOnly(item);
127
+ }
128
+ else {
129
+ host.shadowRoot
130
+ .querySelector('#groupedList')
131
+ .toggleSelect(item, selected);
132
+ }
133
+ event.preventDefault();
134
+ event.stopPropagation();
135
+ }, []);
136
+ useEffect(() => {
137
+ const handler = ({ shiftKey, ctrlKey }) => {
138
+ keyState.current = { shiftKey, ctrlKey };
139
+ };
140
+ window.addEventListener('keydown', handler);
141
+ window.addEventListener('keyup', handler);
142
+ return () => {
143
+ window.removeEventListener('keydown', handler);
144
+ window.removeEventListener('keyup', handler);
145
+ };
146
+ }, []);
147
+ const onItemClick = useCallback((e) => {
148
+ const composedPath = e.composedPath(), path = composedPath.slice(0, composedPath.indexOf(e.currentTarget));
149
+ if (path.find((e) => e.matches?.('a, .checkbox, .expand'))) {
150
+ return;
151
+ }
152
+ host.dispatchEvent(new window.CustomEvent('omnitable-item-click', {
153
+ bubbles: true,
154
+ composed: true,
155
+ detail: {
156
+ item: e.currentTarget.dataItem,
157
+ index: e.currentTarget.dataIndex,
158
+ },
159
+ }));
160
+ }, []);
161
+ const { groupOnColumn } = sortAndGroupOptions, onItemChange = useCallback((column, item) => (value) => _onItemChange(host, column, item, value), []);
162
+ return {
163
+ ...rest,
164
+ processedItems,
165
+ dataIsValid,
166
+ filterIsTooStrict: dataIsValid && processedItems.length < 1,
167
+ loading,
168
+ compareItemsFn,
169
+ displayEmptyGroups,
170
+ error,
171
+ renderItem: useMemo(() => renderItem({
172
+ columns,
173
+ collapsedColumns,
174
+ miniColumns,
175
+ onItemClick,
176
+ onCheckboxChange,
177
+ dataIsValid,
178
+ groupOnColumn,
179
+ onItemChange,
180
+ rowPartFn,
181
+ }), [
182
+ columns,
183
+ collapsedColumns,
184
+ onItemClick,
185
+ onCheckboxChange,
186
+ dataIsValid,
187
+ groupOnColumn,
188
+ onItemChange,
189
+ rowPartFn,
190
+ ]),
191
+ renderGroup: useMemo(() => renderGroup({
192
+ onCheckboxChange,
193
+ dataIsValid,
194
+ groupOnColumn,
195
+ }), [onCheckboxChange, dataIsValid, groupOnColumn]),
196
+ };
197
+ };
198
+ //# sourceMappingURL=use-list.js.map
@@ -0,0 +1,10 @@
1
+ export function useMini({ host, canvasWidth, columns: _columns }: {
2
+ host: any;
3
+ canvasWidth: any;
4
+ columns: any;
5
+ }): {
6
+ isMini: boolean;
7
+ miniColumn: any;
8
+ miniColumns: any;
9
+ };
10
+ //# sourceMappingURL=use-mini.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-mini.d.ts","sourceRoot":"","sources":["../../src/lib/use-mini.js"],"names":[],"mappings":"AAEO;;;;;;;;EA2BN"}
@@ -0,0 +1,19 @@
1
+ import { useMemo, useEffect } from '@pionjs/pion';
2
+ export const useMini = ({ host, canvasWidth, columns: _columns }) => {
3
+ const breakpoint = host.miniBreakpoint ?? 480;
4
+ const isMiniSize = useMemo(() => canvasWidth <= breakpoint, [canvasWidth, breakpoint]);
5
+ const columns = useMemo(() => isMiniSize
6
+ ? _columns
7
+ ?.filter((c) => c.mini != null)
8
+ .sort((a, b) => (a.mini ?? 0) - (b.mini ?? 0))
9
+ : [], [_columns, isMiniSize]), [miniColumn, ...miniColumns] = columns ?? [], hasMiniColumn = !!miniColumn;
10
+ useEffect(() => {
11
+ host.toggleAttribute('mini', hasMiniColumn);
12
+ }, [hasMiniColumn]);
13
+ return {
14
+ isMini: hasMiniColumn && isMiniSize,
15
+ miniColumn,
16
+ miniColumns,
17
+ };
18
+ };
19
+ //# sourceMappingURL=use-mini.js.map