@neovici/cosmoz-omnitable 14.14.3 → 14.15.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 (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
@@ -1,107 +0,0 @@
1
- import { useImperativeApi } from '@neovici/cosmoz-utils/hooks/use-imperative-api';
2
- import { useEffect, useMemo } from '@pionjs/pion';
3
- import { useNotifyProperty } from '@neovici/cosmoz-utils/hooks/use-notify-property';
4
-
5
- const mkNapi = (host) => {
6
- const /**
7
- * Helper method to remove an item from `data`.
8
- * @param {Object} item Item to remove
9
- * @return {Object} item removed
10
- */
11
- removeItem = (item) => {
12
- const index = host.data.indexOf(item);
13
-
14
- if (index < 0) {
15
- return null;
16
- }
17
-
18
- const removed = host.data.splice(index, 1);
19
- host.data = host.data.slice();
20
- if (Array.isArray(removed) && removed.length > 0) {
21
- return removed[0];
22
- }
23
- },
24
- replaceItemAtIndex = (index, newItem) => {
25
- host.data.splice(index, 1, newItem);
26
- host.data = host.data.slice();
27
- };
28
-
29
- return {
30
- removeItem,
31
- removeItems(items) {
32
- const removedItems = [];
33
-
34
- for (let i = items.length - 1; i >= 0; i -= 1) {
35
- const removed = host.removeItem(items[i]);
36
- if (removed != null) {
37
- removedItems.push(removed);
38
- }
39
- }
40
- return removedItems;
41
- },
42
-
43
- replaceItemAtIndex,
44
- replaceItem(oldItem, newItem) {
45
- const itemIndex = host.data.indexOf(oldItem);
46
- if (itemIndex > -1) {
47
- return replaceItemAtIndex(itemIndex, newItem);
48
- }
49
- },
50
-
51
- selectItem(item) {
52
- host.shadowRoot.querySelector('#groupedList').select(item);
53
- },
54
- selectAll() {
55
- host.shadowRoot.querySelector('#groupedList').selectAll();
56
- },
57
- deselectAll() {
58
- host.shadowRoot.querySelector('#groupedList').deselectAll();
59
- },
60
- deselectItem(item) {
61
- host.shadowRoot.querySelector('#groupedList').deselect(item);
62
- },
63
- isItemSelected(item) {
64
- return host.shadowRoot.querySelector('#groupedList').isItemSelected(item);
65
- },
66
- };
67
- };
68
-
69
- export const usePublicInterface = ({ host, visibleData, filters, ...api }) => {
70
- const { setFilterState } = api,
71
- napi = useMemo(() => mkNapi(host), []);
72
-
73
- useImperativeApi(api, Object.values(api));
74
- useImperativeApi(napi, Object.values(napi));
75
-
76
- useEffect(() => {
77
- const handler = (ev) =>
78
- setFilterState(ev.detail.name, (state) => ({
79
- ...state,
80
- ...ev.detail.state,
81
- }));
82
- host.addEventListener('legacy-filter-changed', handler);
83
- return () => host.removeEventListener('legacy-filter-changed', handler);
84
- }, []);
85
-
86
- useNotifyProperty('visibleData', visibleData);
87
- useNotifyProperty(
88
- 'sortedFilteredGroupedItems',
89
- api.sortedFilteredGroupedItems,
90
- );
91
- useNotifyProperty('selectedItems', api.selectedItems);
92
- useNotifyProperty('sortOn', api.sortOn);
93
- useNotifyProperty('descending', api.descending);
94
- useNotifyProperty('isMini', api.isMini);
95
-
96
- const filterValues = useMemo(
97
- () =>
98
- Object.fromEntries(
99
- Object.entries(filters)
100
- .filter(([, { filter }]) => filter !== undefined)
101
- .map(([key, { filter }]) => [key, filter]),
102
- ),
103
- [filters],
104
- );
105
-
106
- useNotifyProperty('filters', filterValues, Object.values(filterValues));
107
- };
@@ -1,63 +0,0 @@
1
- import { useEffect, useRef } from '@pionjs/pion';
2
-
3
- export const useResizableColumns = ({
4
- host,
5
- canvasWidth,
6
- layout,
7
- setSettings,
8
- }) => {
9
- const onColumnResizeRef = useRef();
10
-
11
- onColumnResizeRef.current = (ev) =>
12
- setSettings((settings) => {
13
- const config = settings.columns,
14
- {
15
- detail: { newWidth, column },
16
- } = ev,
17
- columnIndex = config.findIndex((c) => c.name === column.name),
18
- newConfig = [],
19
- maxPriority = config.reduce(
20
- (p, c) => Math.max(p, c.priority),
21
- -Infinity,
22
- );
23
-
24
- for (let i = 0; i < layout.length; i++) {
25
- newConfig[i] = { ...config[i] };
26
-
27
- // for visible columns to the left of the resized column
28
- if (i < columnIndex && layout[i]) {
29
- // save the current width
30
- newConfig[i].width = layout[i];
31
- // make them fixed width
32
- newConfig[i].flex = 0;
33
- // keep them visible
34
- newConfig[i].priority = maxPriority;
35
- }
36
-
37
- // update the width of the resized column
38
- if (i === columnIndex) {
39
- const maxNewSize = layout.reduce((acc, cur, i) => {
40
- if (i < columnIndex) {
41
- return cur ? acc - cur : acc;
42
- }
43
- return acc;
44
- }, canvasWidth);
45
-
46
- newConfig[i].width = Math.min(
47
- maxNewSize,
48
- Math.max(newWidth, config[i].minWidth),
49
- );
50
- newConfig[i].flex = 0;
51
- newConfig[i].priority = maxPriority;
52
- }
53
- }
54
-
55
- return { ...settings, columns: newConfig };
56
- });
57
-
58
- useEffect(() => {
59
- const handler = (ev) => onColumnResizeRef.current(ev);
60
- host.addEventListener('column-resize', handler);
61
- return () => host.removeEventListener('column-resize', handler);
62
- }, []);
63
- };
@@ -1,95 +0,0 @@
1
- import {
2
- useMemo,
3
- createContext,
4
- component,
5
- useContext,
6
- useCallback,
7
- useEffect,
8
- } from '@pionjs/pion';
9
- import { useHashState } from './use-hash-state';
10
-
11
- const parseBool = (bool) => [true, 'true', 1, 'yes', 'on'].includes(bool),
12
- boolParam = (p) => p === '' || (p == null ? undefined : parseBool(p)),
13
- useSettingsState = (setter, name, setSettings) =>
14
- useCallback(
15
- (value) => {
16
- setter(value);
17
- setSettings((s) => ({ ...s, [name]: value }));
18
- },
19
- [setter, name, setSettings],
20
- );
21
-
22
- export const useSortAndGroupOptions = (
23
- columns,
24
- hashParam,
25
- settings,
26
- setSettings,
27
- resetRef,
28
- ) => {
29
- const [sortOn, setSortOn] = useHashState(settings.sortOn, hashParam, {
30
- suffix: '-sortOn',
31
- }),
32
- [descending, setDescending] = useHashState(
33
- boolParam(settings.descending),
34
- hashParam,
35
- { suffix: '-descending', read: boolParam },
36
- ),
37
- [groupOn, setGroupOn] = useHashState(settings.groupOn, hashParam, {
38
- suffix: '-groupOn',
39
- }),
40
- [groupOnDescending, setGroupOnDescending] = useHashState(
41
- boolParam(settings.groupOnDescending),
42
- hashParam,
43
- { suffix: '-groupOnDescending', read: boolParam },
44
- ),
45
- sortOnColumn = useMemo(
46
- () => columns.find((column) => column.name === sortOn),
47
- [columns, sortOn],
48
- ),
49
- groupOnColumn = useMemo(
50
- () => columns.find((column) => column.name === groupOn),
51
- [columns, groupOn],
52
- ),
53
- sortAndGroup_ = {
54
- groupOn,
55
- setGroupOn: useSettingsState(setGroupOn, 'groupOn', setSettings),
56
- groupOnDescending,
57
- setGroupOnDescending: useSettingsState(
58
- setGroupOnDescending,
59
- 'groupOnDescending',
60
- setSettings,
61
- ),
62
-
63
- sortOn,
64
- setSortOn: useSettingsState(setSortOn, 'sortOn', setSettings),
65
- descending,
66
- setDescending: useSettingsState(
67
- setDescending,
68
- 'descending',
69
- setSettings,
70
- ),
71
-
72
- columns,
73
- },
74
- sortAndGroup = useMemo(() => sortAndGroup_, Object.values(sortAndGroup_)),
75
- setSG = useCallback((c) => {
76
- setSortOn(c.sortOn);
77
- setGroupOn(c.groupOn);
78
- setDescending(c.descending);
79
- setGroupOnDescending(c.groupOnDescending);
80
- }, []);
81
-
82
- // eslint-disable-next-line no-void
83
- useEffect(() => void (resetRef.current = setSG), []);
84
-
85
- return { ...sortAndGroup, sortAndGroup, groupOnColumn, sortOnColumn };
86
- },
87
- SortAndGroupContext = createContext();
88
-
89
- customElements.define('sort-and-group-provider', SortAndGroupContext.Provider);
90
- customElements.define(
91
- 'sort-and-group-consumer',
92
- component(({ render }) => render(useContext(SortAndGroupContext)), {
93
- useShadowDOM: false,
94
- }),
95
- );
@@ -1,23 +0,0 @@
1
- import { useEffect } from '@pionjs/pion';
2
-
3
- export const useTrackSize = (host, setCanvasWidth) =>
4
- useEffect(() => {
5
- const onResize = ([entry]) => {
6
- if (entry.contentRect?.width === 0) {
7
- return;
8
- }
9
-
10
- requestAnimationFrame(() =>
11
- setCanvasWidth(
12
- entry.contentRect?.width -
13
- 20 /* scrollbar width */ -
14
- 44 /* checkbox width */ -
15
- 24 /* expand button width */,
16
- ),
17
- );
18
- },
19
- observer = new ResizeObserver(onResize);
20
-
21
- observer.observe(host);
22
- return () => observer.unobserve(host);
23
- }, []);
@@ -1,60 +0,0 @@
1
- import { useCallback, useEffect, useMemo } from '@pionjs/pion';
2
- import { useMeta } from '@neovici/cosmoz-utils/hooks/use-meta';
3
- import { noop } from '@neovici/cosmoz-utils/function';
4
-
5
- const useAnimationLoop = (animate, trigger) => {
6
- const animationLoop = useMemo(() => {
7
- let running = false,
8
- af;
9
-
10
- const animationLoop = () => {
11
- if (!running) return;
12
- af = requestAnimationFrame(animationLoop);
13
- const stop = animate();
14
- if (stop) running = false;
15
- };
16
-
17
- return {
18
- start: () => {
19
- running = true;
20
- cancelAnimationFrame(af);
21
- af = requestAnimationFrame(animationLoop);
22
- },
23
- stop: () => {
24
- running = false;
25
- cancelAnimationFrame(af);
26
- },
27
- };
28
- }, []);
29
-
30
- useEffect(() => {
31
- animationLoop.start();
32
- }, trigger);
33
-
34
- useEffect(() => () => animationLoop.stop(), []);
35
- };
36
-
37
- export const isCloseEnough = (a = 0, b = 0) => Math.abs(a - b) < 0.1,
38
- useTweenArray = (target, speedFactor = 1.9, callback = noop) => {
39
- const state = useMeta({ target }),
40
- // [tween, setTween] = useState(target),
41
- animate = useCallback(() => {
42
- if (!state.tween) state.tween = state.target;
43
-
44
- if (state.target.every((t, idx) => state.tween[idx] === t)) {
45
- callback(state.tween);
46
- return true;
47
- }
48
-
49
- state.tween = state.target.map((t, idx) =>
50
- isCloseEnough(state.tween[idx], t)
51
- ? t
52
- : (state.tween[idx] ?? 0) +
53
- ((t ?? 0) - (state.tween[idx] ?? 0)) / speedFactor || 0,
54
- );
55
-
56
- callback(state.tween);
57
- }, []);
58
-
59
- useAnimationLoop(animate, [target]);
60
- };
@@ -1,131 +0,0 @@
1
- import { get } from '@polymer/polymer/lib/utils/path';
2
- import { toNumber } from './utils-number';
3
-
4
- export const /**
5
- * Converts a value to an amount object optionaly limiting it.
6
- *
7
- * @param {Object} rates The rates
8
- * @param {Object} value The value to convert to number
9
- * @param {Object} limit The value used to limit the number
10
- * @param {Function} limitFunc The function used to limit the number (Math.min|Math.max)
11
- * @returns {Object|void} Value converted to Number or void
12
- */
13
- toAmount = (rates = {}, value, limit, limitFunc) => {
14
- if (value == null || value === '') {
15
- return;
16
- }
17
-
18
- if (
19
- typeof value !== 'object' ||
20
- value.currency == null ||
21
- value.currency === ''
22
- ) {
23
- return null;
24
- }
25
-
26
- const number = toNumber(value.amount);
27
- if (number == null || Number.isNaN(number)) {
28
- return null;
29
- }
30
- const amount = { currency: value.currency, amount: number };
31
-
32
- if (limitFunc == null || limit == null) {
33
- return amount;
34
- }
35
- const lAmount = toAmount(rates, limit);
36
- if (lAmount == null) {
37
- return amount;
38
- }
39
-
40
- // calculate value and limit amounts with rates
41
- const valAmount = amount.amount * (rates[amount.currency] || 1),
42
- limAmount = lAmount.amount * (rates[lAmount.currency] || 1),
43
- lNumber = toNumber(valAmount, limAmount, limitFunc);
44
- return lNumber === valAmount ? amount : lAmount;
45
- },
46
- getComparableValue = ({ valuePath, rates }, item) => {
47
- if (item == null) {
48
- return;
49
- }
50
-
51
- let value = item;
52
-
53
- if (valuePath != null) {
54
- value = get(item, valuePath);
55
- }
56
- value = toAmount(rates, value);
57
-
58
- if (value == null) {
59
- return;
60
- }
61
- const amount = toNumber(value.amount);
62
-
63
- if (rates == null) {
64
- return amount;
65
- }
66
-
67
- return amount * (rates[value.currency] || 1);
68
- },
69
- applySingleFilter = (column, filter) => (item) => {
70
- const value = getComparableValue(column, item);
71
-
72
- if (value == null) {
73
- return false;
74
- }
75
-
76
- const min = getComparableValue({ ...column, valuePath: 'min' }, filter),
77
- max = getComparableValue({ ...column, valuePath: 'max' }, filter);
78
-
79
- return !(value < min || value > max);
80
- },
81
- formatters = {},
82
- getFormatter = (currency, locale) => {
83
- const id = locale ? locale : '',
84
- key = currency + id || '';
85
-
86
- if (formatters[key]) {
87
- return formatters[key];
88
- }
89
-
90
- formatters[key] = new Intl.NumberFormat(locale || undefined, {
91
- style: 'currency',
92
- currency,
93
- });
94
-
95
- return formatters[key];
96
- },
97
- renderValue = (rates, value, locale) => {
98
- const amount = toAmount(rates, value);
99
- if (amount == null) {
100
- return '';
101
- }
102
- return getFormatter(amount.currency, locale).format(amount.amount);
103
- },
104
- getString = ({ valuePath, rates, locale }, item) => {
105
- const value = toAmount(rates, get(item, valuePath));
106
- if (value === undefined) {
107
- return '';
108
- }
109
- if (value === null) {
110
- return 'Invalid value';
111
- }
112
- return renderValue(rates, value, locale);
113
- },
114
- toHashString = (value) => {
115
- if (!value) {
116
- return '';
117
- }
118
- return value.amount + value.currency;
119
- },
120
- fromHashString = (value) => {
121
- if (value == null || value === '') {
122
- return;
123
- }
124
- const params = value.match(/^(-?[\d]+)([\D]+?)$/iu);
125
- if (!Array.isArray(params) || params.length < 0) {
126
- return null;
127
- }
128
- return { amount: params[1], currency: params[2] };
129
- },
130
- getCurrency = ({ valuePath }, item) => get(item, valuePath)?.currency,
131
- getInputString = ({ valuePath }, item) => get(item, valuePath)?.amount;
package/lib/utils-data.js DELETED
@@ -1,42 +0,0 @@
1
- import { get, set } from '@polymer/polymer/lib/utils/path';
2
- import { columnSymbol } from './use-dom-columns';
3
-
4
- export const valuesFrom = (data, valuePath) =>
5
- Array.isArray(data)
6
- ? data
7
- .map((item) => get(item, valuePath))
8
- .filter(
9
- (value, index, self) =>
10
- value != null && self.indexOf(value) === index,
11
- )
12
- : undefined,
13
- defaultComputeSource = ({ externalValues, values, valuePath }, data) =>
14
- externalValues || typeof values === 'function'
15
- ? values
16
- : valuesFrom(data, valuePath),
17
- onItemChange = (host, column, item, value) => {
18
- const { valuePath } = column,
19
- oldValue = get(item, valuePath);
20
-
21
- if (value === oldValue) {
22
- return;
23
- }
24
-
25
- set(item, valuePath, value);
26
-
27
- const change = {
28
- item,
29
- valuePath,
30
- value,
31
- oldValue,
32
- column: column[columnSymbol],
33
- };
34
-
35
- host.dispatchEvent(
36
- new CustomEvent('column-item-changed', {
37
- bubbles: true,
38
- composed: true,
39
- detail: change,
40
- }),
41
- );
42
- };