@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
@@ -1,157 +0,0 @@
1
- import '@neovici/cosmoz-input';
2
- import '@polymer/paper-dropdown-menu/paper-dropdown-menu';
3
- import './ui-helpers/cosmoz-clear-button';
4
-
5
- import { PolymerElement } from '@polymer/polymer/polymer-element';
6
- import { html } from 'lit-html';
7
-
8
- import { columnMixin } from './cosmoz-omnitable-column-mixin';
9
-
10
- import './lib/cosmoz-omnitable-number-range-input';
11
- import { defaultComputeSource } from './lib/utils-data';
12
- import {
13
- applySingleFilter,
14
- getComparableValue,
15
- getInputString,
16
- getString,
17
- toHashString,
18
- toNumber,
19
- } from './lib/utils-number';
20
- import { get } from '@polymer/polymer/lib/utils/path';
21
-
22
- /**
23
- * @polymer
24
- * @customElement
25
- * @appliesMixin columnMixin
26
- */
27
- class OmnitableColumnNumber extends columnMixin(PolymerElement) {
28
- static get properties() {
29
- return {
30
- min: { type: Number, value: null, notify: true },
31
- max: { type: Number, value: null, notify: true },
32
- limits: { type: Function },
33
- locale: { type: String, value: null, notify: true },
34
- autoupdate: { type: Boolean, value: false, notify: true },
35
- cellClass: { type: String, value: 'number-cell align-right' },
36
- width: { type: String, value: '30px' },
37
- minWidth: { type: String, value: '30px' },
38
- headerCellClass: { type: String, value: 'number-header-cell' },
39
- maximumFractionDigits: { type: Number, value: null },
40
- minimumFractionDigits: { type: Number, value: null }, // browser default 0 for numbers, currency-specific or 2 for currency
41
- };
42
- }
43
-
44
- getConfig(column) {
45
- return { limits: column.limits };
46
- }
47
-
48
- getFilterFn(column, filter) {
49
- const min = getComparableValue({ ...column, valuePath: 'min' }, filter),
50
- max = getComparableValue({ ...column, valuePath: 'max' }, filter);
51
-
52
- if (min == null && max == null) {
53
- return;
54
- }
55
- return applySingleFilter(column, filter);
56
- }
57
-
58
- getString(column, item) {
59
- return getString(column, item);
60
- }
61
-
62
- toXlsxValue({ valuePath }, item) {
63
- return get(item, valuePath);
64
- }
65
-
66
- cellTitleFn(column, item) {
67
- return getString(column, item);
68
- }
69
-
70
- getComparableValue(column, item) {
71
- return getComparableValue(column, item);
72
- }
73
-
74
- serializeFilter(column, filter) {
75
- if (filter == null) {
76
- return;
77
- }
78
- const min = toNumber(filter.min),
79
- max = toNumber(filter.max);
80
-
81
- if (min == null && max == null) {
82
- return;
83
- }
84
- return toHashString(min) + '~' + toHashString(max);
85
- }
86
-
87
- deserializeFilter(column, filter) {
88
- if (filter == null || filter === '') {
89
- return null;
90
- }
91
- const matches = filter.match(/^([^~]+)?~([^~]+)?/iu);
92
-
93
- if (!Array.isArray(matches)) {
94
- return null;
95
- }
96
-
97
- return {
98
- min: toNumber(matches[1]),
99
- max: toNumber(matches[2]),
100
- };
101
- }
102
-
103
- renderCell(column, { item }) {
104
- return html`<div class="omnitable-cell-number">
105
- ${getString(column, item)}
106
- </div>`;
107
- }
108
-
109
- renderEditCell(column, { item }, onItemChange) {
110
- const onChange = (event) => onItemChange(event.target.value);
111
-
112
- return html`<cosmoz-input
113
- no-label-float
114
- type="number"
115
- @change=${onChange}
116
- .value=${getInputString(column, item)}
117
- ></cosmoz-input>`;
118
- }
119
-
120
- renderHeader(
121
- {
122
- title,
123
- min,
124
- max,
125
- limits,
126
- locale,
127
- maximumFractionDigits,
128
- minimumFractionDigits,
129
- autoupdate,
130
- },
131
- { filter },
132
- setState,
133
- source,
134
- ) {
135
- return html`<cosmoz-omnitable-number-range-input
136
- .title=${title}
137
- .filter=${filter}
138
- .values=${source}
139
- .min=${min}
140
- .max=${max}
141
- .limits=${limits}
142
- .locale=${locale}
143
- .maximumFractionDigits=${maximumFractionDigits}
144
- .minimumFractionDigsits=${minimumFractionDigits}
145
- .autoupdate=${autoupdate}
146
- @filter-changed=${({ detail: { value } }) =>
147
- setState((state) => ({ ...state, filter: value }))}
148
- @header-focused-changed=${({ detail: { value } }) =>
149
- setState((state) => ({ ...state, headerFocused: value }))}
150
- ></cosmoz-omnitable-number-range-input>`;
151
- }
152
-
153
- computeSource(column, data) {
154
- return defaultComputeSource(column, data);
155
- }
156
- }
157
- customElements.define('cosmoz-omnitable-column-number', OmnitableColumnNumber);
@@ -1,137 +0,0 @@
1
- import '@polymer/paper-dropdown-menu/paper-dropdown-menu';
2
- import '@neovici/cosmoz-input';
3
-
4
- import './ui-helpers/cosmoz-clear-button';
5
-
6
- import { PolymerElement } from '@polymer/polymer/polymer-element';
7
- import { html } from 'lit-html';
8
-
9
- import { columnMixin } from './cosmoz-omnitable-column-mixin';
10
- import {
11
- getComparableValue,
12
- getString,
13
- toXlsxValue,
14
- applySingleFilter,
15
- toDate,
16
- toHashString,
17
- fromHashString,
18
- } from './lib/utils-time';
19
- import './lib/cosmoz-omnitable-time-range-input';
20
- import { defaultComputeSource } from './lib/utils-data';
21
-
22
- /**
23
- * @polymer
24
- * @customElement
25
- * @appliesMixin columnMixin
26
- */
27
- class OmnitableColumnTime extends columnMixin(PolymerElement) {
28
- static get properties() {
29
- return {
30
- min: { type: Number, value: null, notify: true },
31
- max: { type: Number, value: null, notify: true },
32
- locale: { type: String, value: null, notify: true },
33
- headerCellClass: { type: String, value: 'time-header-cell' },
34
- minWidth: { type: String, value: '63px' },
35
- width: { type: String, value: '210px' },
36
- flex: { type: String, value: '0' },
37
- /*
38
- * Specifies the value granularity of the time input's value in the filter.
39
- * 1 => full seconds
40
- * 0.1 => milliseconds
41
- */
42
- filterStep: { type: String, value: '1' },
43
- };
44
- }
45
-
46
- getFilterFn(column, filter) {
47
- const min = getComparableValue({ ...column, valuePath: 'min' }, filter),
48
- max = getComparableValue({ ...column, valuePath: 'max' }, filter);
49
-
50
- if (min == null && max == null) {
51
- return;
52
- }
53
- return applySingleFilter(column, filter);
54
- }
55
-
56
- getString(column, item) {
57
- return getString(column, item);
58
- }
59
-
60
- toXlsxValue(column, item) {
61
- return toXlsxValue(column, item);
62
- }
63
-
64
- cellTitleFn(column, item) {
65
- return getString(column, item);
66
- }
67
-
68
- getComparableValue(column, item) {
69
- return getComparableValue(column, item);
70
- }
71
-
72
- serializeFilter(column, filter) {
73
- if (filter == null) {
74
- return;
75
- }
76
- const min = toDate(filter.min),
77
- max = toDate(filter.max);
78
-
79
- if (min == null && max == null) {
80
- return;
81
- }
82
- return toHashString(min) + '~' + toHashString(max);
83
- }
84
-
85
- deserializeFilter(column, filter) {
86
- if (filter == null || filter === '') {
87
- return null;
88
- }
89
- const matches = filter.match(/^([^~]+)?~([^~]+)?/iu);
90
-
91
- if (!Array.isArray(matches)) {
92
- return null;
93
- }
94
-
95
- return { min: fromHashString(matches[1]), max: fromHashString(matches[2]) };
96
- }
97
-
98
- renderCell(column, { item }) {
99
- return getString(column, item);
100
- }
101
-
102
- renderEditCell(column, { item }, onItemChange) {
103
- const onChange = (event) => onItemChange(event.target.value);
104
- return html`<cosmoz-input
105
- no-label-float
106
- type="text"
107
- @change=${onChange}
108
- .value=${getString(column, item)}
109
- ></cosmoz-input>`;
110
- }
111
-
112
- renderHeader(
113
- { title, min, max, locale, filterStep },
114
- { filter },
115
- setState,
116
- source,
117
- ) {
118
- return html`<cosmoz-omnitable-time-range-input
119
- .title=${title}
120
- .filter=${filter}
121
- .values=${source}
122
- .min=${min}
123
- .max=${max}
124
- .locale=${locale}
125
- .filterStep=${filterStep}
126
- @filter-changed=${({ detail: { value } }) =>
127
- setState((state) => ({ ...state, filter: value }))}
128
- @header-focused-changed=${({ detail: { value } }) =>
129
- setState((state) => ({ ...state, headerFocused: value }))}
130
- ></cosmoz-omnitable-time-range-input>`;
131
- }
132
-
133
- computeSource(column, data) {
134
- return defaultComputeSource(column, data);
135
- }
136
- }
137
- customElements.define('cosmoz-omnitable-column-time', OmnitableColumnTime);
@@ -1,99 +0,0 @@
1
- import '@neovici/cosmoz-input';
2
- import './ui-helpers/cosmoz-clear-button';
3
-
4
- import {
5
- applySingleFilter,
6
- columnMixin,
7
- getString,
8
- } from './cosmoz-omnitable-column-mixin';
9
- import { PolymerElement } from '@polymer/polymer/polymer-element';
10
- import { html } from 'lit-html';
11
-
12
- const onChange = (setState) => (event) =>
13
- setState((state) => {
14
- // skip the event emitted during cosmoz-input initialization
15
- if (state.inputValue === undefined && event.target.value === '') {
16
- return state;
17
- }
18
-
19
- clearTimeout(state.t);
20
- const t = setTimeout(
21
- () => setState((state) => ({ ...state, filter: state.inputValue })),
22
- 1000,
23
- );
24
- return { ...state, inputValue: event.target.value, t };
25
- }),
26
- onBlur = (setState) => () =>
27
- setState((state) => ({ ...state, filter: state.inputValue })),
28
- onKeyDown = (setState) => (event) => {
29
- if (event.keyCode === 13) {
30
- event.preventDefault();
31
- setState((state) => ({ ...state, filter: state.inputValue }));
32
- }
33
- },
34
- onFocus = (setState) => (event) =>
35
- setState((state) => ({ ...state, headerFocused: event.detail.value })),
36
- resetFilter = (setState) => () =>
37
- setState((state) => ({ ...state, filter: null, inputValue: null })),
38
- hasFilter = (filter) => filter != null && filter !== '';
39
-
40
- /**
41
- * @polymer
42
- * @customElement
43
- * @appliesMixin columnMixin
44
- */
45
- class OmnitableColumn extends columnMixin(PolymerElement) {
46
- static get properties() {
47
- return {
48
- minWidth: { type: String, value: '55px' },
49
- editMinWidth: { type: String, value: '55px' },
50
- inputValue: { type: Object, notify: true },
51
- };
52
- }
53
-
54
- getFilterFn(column, filter) {
55
- if (filter == null || filter === '') {
56
- return;
57
- }
58
- return applySingleFilter(column, filter);
59
- }
60
-
61
- renderCell(column, { item }) {
62
- return html`<span class="default-column">${getString(column, item)}</span>`;
63
- }
64
-
65
- renderEditCell(column, { item }, onItemChange) {
66
- const onChange = (event) => onItemChange(event.target.value);
67
- return html`<cosmoz-input
68
- no-label-float
69
- type="text"
70
- @change=${onChange}
71
- .value=${getString(column, item)}
72
- ></cosmoz-input>`;
73
- }
74
-
75
- renderHeader(column, { filter, inputValue, headerFocused }, setState) {
76
- return html`<cosmoz-input
77
- label=${column.title}
78
- .value=${inputValue ?? filter}
79
- @value-changed=${onChange(setState)}
80
- focused=${headerFocused}
81
- @focused-changed=${onFocus(setState)}
82
- @keydown=${onKeyDown(setState)}
83
- @blur=${onBlur(setState)}
84
- >
85
- <cosmoz-clear-button
86
- suffix
87
- slot="suffix"
88
- ?visible=${hasFilter(filter)}
89
- light
90
- @click=${resetFilter(setState)}
91
- ></cosmoz-clear-button>
92
- </cosmoz-input>`;
93
- }
94
-
95
- legacyFilterToState(filter) {
96
- return { filter, inputValue: filter };
97
- }
98
- }
99
- customElements.define('cosmoz-omnitable-column', OmnitableColumn);
@@ -1,20 +0,0 @@
1
- import { component } from '@pionjs/pion';
2
- import { nothing } from 'lit-html';
3
-
4
- const GroupRow = ({ column, item, selected, folded, group }) => {
5
- if (!column) {
6
- return nothing;
7
- }
8
-
9
- return (column.renderGroup ?? column.renderCell)(column, {
10
- item,
11
- selected,
12
- folded,
13
- group,
14
- });
15
- };
16
-
17
- customElements.define(
18
- 'cosmoz-omnitable-group-row',
19
- component(GroupRow, { useShadowDOM: false }),
20
- );
@@ -1,38 +0,0 @@
1
- import { component, html } from '@pionjs/pion';
2
- import { repeat } from 'lit-html/directives/repeat.js';
3
-
4
- const renderCell = (column, data, onItemChange) =>
5
- column.editable
6
- ? column.renderEditCell(column, data, onItemChange(column, data.item))
7
- : column.renderCell(column, data);
8
-
9
- const ItemRow = ({
10
- columns,
11
- groupOnColumn,
12
- item,
13
- index,
14
- selected,
15
- expanded,
16
- onItemChange,
17
- }) =>
18
- repeat(
19
- columns,
20
- (column) => column.name,
21
- (column) => {
22
- return html`<div
23
- class="cell itemRow-cell ${column.cellClass ?? ''}"
24
- part="cell itemRow-cell cell-${column.name} itemRow-cell-${column.name}"
25
- ?hidden="${column === groupOnColumn}"
26
- ?editable="${column.editable}"
27
- title="${column.cellTitleFn(column, item)}"
28
- name="${column.name}"
29
- >
30
- ${renderCell(column, { item, index, selected, expanded }, onItemChange)}
31
- </div>`;
32
- },
33
- );
34
-
35
- customElements.define(
36
- 'cosmoz-omnitable-item-row',
37
- component(ItemRow, { useShadowDOM: false }),
38
- );
@@ -1,41 +0,0 @@
1
- import { render } from 'lit-html';
2
-
3
- customElements.define(
4
- 'cosmoz-grouped-list-row',
5
- class Element extends HTMLElement {
6
- get item() {
7
- return this._item;
8
- }
9
-
10
- set item(item) {
11
- this._item = item;
12
- this._render();
13
- }
14
-
15
- get index() {
16
- return this._index;
17
- }
18
-
19
- set index(index) {
20
- this._index = index;
21
- this._render();
22
- }
23
-
24
- get renderFn() {
25
- return this._renderFn;
26
- }
27
-
28
- set renderFn(renderFn) {
29
- this._renderFn = renderFn;
30
- this._render();
31
- }
32
-
33
- _render() {
34
- if (this._item == null || this._index == null || this._renderFn == null) {
35
- return;
36
- }
37
-
38
- render(this._renderFn(this._item, this._index), this);
39
- }
40
- },
41
- );
@@ -1,13 +0,0 @@
1
- import {
2
- renderCosmozGroupedList,
3
- useCosmozGroupedList,
4
- } from './use-cosmoz-grouped-list.js';
5
- import { component } from '@pionjs/pion';
6
-
7
- const CosmozGroupedList = (host) =>
8
- renderCosmozGroupedList(useCosmozGroupedList(host));
9
-
10
- customElements.define(
11
- 'cosmoz-grouped-list',
12
- component(CosmozGroupedList, { useShadowDOM: false }),
13
- );
@@ -1,32 +0,0 @@
1
- import { useCallback } from '@pionjs/pion';
2
- import { useWeakState } from './use-weak-state';
3
- import { isGroup } from './utils';
4
-
5
- export const useCollapsibleItems = () => {
6
- const { setItemState, state, signal } = useWeakState(),
7
- toggleFold = useCallback((item, folded) => {
8
- if (!isGroup(item)) {
9
- return;
10
- }
11
-
12
- setItemState(item, (state) => ({
13
- folded: folded !== undefined ? folded : !state.folded,
14
- }));
15
- }, []),
16
- toggleCollapse = useCallback((item, collapsed) => {
17
- if (isGroup(item)) {
18
- return;
19
- }
20
-
21
- setItemState(item, (state) => ({
22
- expanded: collapsed !== undefined ? !collapsed : !state.expanded,
23
- }));
24
- }, []);
25
-
26
- return {
27
- state,
28
- signal,
29
- toggleFold,
30
- toggleCollapse,
31
- };
32
- };
@@ -1,102 +0,0 @@
1
- import { useImperativeApi } from '@neovici/cosmoz-utils/hooks/use-imperative-api';
2
- import { useNotifyProperty } from '@neovici/cosmoz-utils/hooks/use-notify-property';
3
- import { useCallback, useLayoutEffect, useMemo } from '@pionjs/pion';
4
- import { html } from 'lit-html';
5
- import './cosmoz-grouped-list-row';
6
- import { useCollapsibleItems } from './use-collapsible-items';
7
- import { useSelectedItems } from './use-selected-items';
8
- import { byReference, isExpanded, isFolded, prepareData } from './utils';
9
- import { virtualize } from '@lit-labs/virtualizer/virtualize.js';
10
-
11
- const styles = {
12
- host: { position: 'relative', display: 'flex', flexDirection: 'column' },
13
- },
14
- useCosmozGroupedList = (host) => {
15
- const {
16
- data,
17
- renderItem,
18
- renderGroup,
19
- displayEmptyGroups,
20
- compareItemsFn = byReference,
21
- } = host,
22
- { toggleFold, toggleCollapse, state, signal } = useCollapsibleItems(),
23
- // TODO: state changes trigger recalculation, which is slow (200ms with 10k items)
24
- // it only makes sense to do it when a group is folded
25
- // suggested fix: separate signal for item collapse and group fold
26
- flatData = useMemo(
27
- () => prepareData(data, displayEmptyGroups, state),
28
- [data, displayEmptyGroups, signal],
29
- ),
30
- {
31
- selectedItems,
32
- isItemSelected,
33
- isGroupSelected,
34
- isSelected,
35
- select,
36
- deselect,
37
- selectOnly,
38
- selectAll,
39
- deselectAll,
40
- toggleSelect,
41
- toggleSelectTo,
42
- } = useSelectedItems({ initial: [], compareItemsFn, data, flatData }),
43
- renderRow = useCallback(
44
- (item, index) =>
45
- Array.isArray(item.items)
46
- ? renderGroup(item, index, {
47
- selected: isGroupSelected(item, selectedItems),
48
- folded: isFolded(item, state),
49
- toggleSelect: (selected) =>
50
- toggleSelect(
51
- item,
52
- typeof selected === 'boolean' ? selected : undefined,
53
- ),
54
- toggleFold: () => toggleFold(item),
55
- })
56
- : renderItem(item, index, {
57
- selected: selectedItems.includes(item),
58
- expanded: isExpanded(item, state),
59
- toggleSelect: (selected) =>
60
- toggleSelect(
61
- item,
62
- typeof selected === 'boolean' ? selected : undefined,
63
- ),
64
- toggleCollapse: () => toggleCollapse(item),
65
- }),
66
- [renderItem, renderGroup, selectedItems, toggleSelect, signal],
67
- );
68
-
69
- useLayoutEffect(() => Object.assign(host.style, styles.host), []);
70
-
71
- useNotifyProperty('selectedItems', selectedItems);
72
- const api = {
73
- toggleFold,
74
- toggleCollapse,
75
- isItemSelected,
76
- isGroupSelected,
77
- isSelected,
78
- select,
79
- deselect,
80
- selectOnly,
81
- selectAll,
82
- deselectAll,
83
- toggleSelect,
84
- toggleSelectTo,
85
- };
86
-
87
- useImperativeApi(api, Object.values(api));
88
-
89
- return { renderRow, flatData };
90
- },
91
- renderCosmozGroupedList = ({ renderRow, flatData }) =>
92
- virtualize({
93
- items: flatData,
94
- renderItem: (item, index) =>
95
- html`<cosmoz-grouped-list-row
96
- .item=${item}
97
- .index=${index}
98
- .renderFn=${renderRow}
99
- ></cosmoz-grouped-list-row>`,
100
- });
101
-
102
- export { renderCosmozGroupedList, useCosmozGroupedList };