@neovici/cosmoz-omnitable 14.14.2 → 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 +39 -9
  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,145 +0,0 @@
1
- import '@polymer/paper-dropdown-menu/paper-dropdown-menu';
2
- import '@neovici/cosmoz-datetime-input';
3
- import './ui-helpers/cosmoz-clear-button';
4
-
5
- import { columnMixin } from './cosmoz-omnitable-column-mixin';
6
- import { PolymerElement } from '@polymer/polymer/polymer-element';
7
- import { html } from 'lit-html';
8
- import {
9
- fromHashString,
10
- getString,
11
- toHashString,
12
- toXlsxValue,
13
- } from './lib/utils-datetime';
14
- import {
15
- applySingleFilter,
16
- fromInputString,
17
- getComparableValue,
18
- toDate,
19
- } from './lib/utils-date';
20
- import { defaultComputeSource } from './lib/utils-data';
21
- import './lib/cosmoz-omnitable-datetime-range-input';
22
-
23
- /**
24
- * @polymer
25
- * @customElement
26
- * @appliesMixin columnMixin
27
- */
28
- class OmnitableColumnDatetime extends columnMixin(PolymerElement) {
29
- static get is() {
30
- return 'cosmoz-omnitable-column-datetime';
31
- }
32
-
33
- static get properties() {
34
- return {
35
- min: { type: Number, value: null, notify: true },
36
- max: { type: Number, value: null, notify: true },
37
- limits: { type: Function },
38
- locale: { type: String, value: null, notify: true },
39
- headerCellClass: { type: String, value: 'datetime-header-cell' },
40
- width: { type: String, value: '210px' },
41
- minWidth: { type: String, value: '128px' },
42
- flex: { type: String, value: '0' },
43
- filterStep: { type: Number, value: 1 },
44
- };
45
- }
46
-
47
- getConfig(column) {
48
- return { limits: column.limits };
49
- }
50
-
51
- getFilterFn(column, filter) {
52
- const min = getComparableValue({ ...column, valuePath: 'min' }, filter),
53
- max = getComparableValue({ ...column, valuePath: 'max' }, filter);
54
-
55
- if (min == null && max == null) {
56
- return;
57
- }
58
- return applySingleFilter(column, filter);
59
- }
60
-
61
- getString(column, item) {
62
- return getString(column, item);
63
- }
64
-
65
- toXlsxValue(column, item) {
66
- return toXlsxValue(column, item);
67
- }
68
-
69
- cellTitleFn(column, item) {
70
- return getString(column, item);
71
- }
72
-
73
- getComparableValue(column, item) {
74
- return getComparableValue(column, item);
75
- }
76
-
77
- serializeFilter(column, filter) {
78
- if (filter == null) {
79
- return;
80
- }
81
- const min = toDate(filter.min),
82
- max = toDate(filter.max);
83
-
84
- if (min == null && max == null) {
85
- return;
86
- }
87
- return toHashString(min) + '~' + toHashString(max);
88
- }
89
-
90
- deserializeFilter(column, filter) {
91
- if (filter == null || filter === '') {
92
- return null;
93
- }
94
- const matches = filter.match(/^([^~]+)?~([^~]+)?/iu);
95
-
96
- if (!Array.isArray(matches)) {
97
- return null;
98
- }
99
-
100
- return { min: fromHashString(matches[1]), max: fromHashString(matches[2]) };
101
- }
102
-
103
- renderCell(column, { item }) {
104
- return getString(column, item);
105
- }
106
-
107
- renderEditCell(column, { item }, onItemChange) {
108
- const onChange = (event) =>
109
- onItemChange(fromInputString(event.target.value));
110
- return html`<cosmoz-input
111
- no-label-float
112
- type="text"
113
- @change=${onChange}
114
- .value=${getString(column, item)}
115
- ></cosmoz-input>`;
116
- }
117
-
118
- renderHeader(
119
- { title, min, max, limits, locale, filterStep },
120
- { filter },
121
- setState,
122
- source,
123
- ) {
124
- return html`<cosmoz-omnitable-datetime-range-input
125
- .title=${title}
126
- .filter=${filter}
127
- .values=${source}
128
- .min=${min}
129
- .max=${max}
130
- .limits=${limits}
131
- .locale=${locale}
132
- .filterStep=${filterStep}
133
- @filter-changed=${({ detail: { value } }) =>
134
- setState((state) => ({ ...state, filter: value }))}
135
- @header-focused-changed=${({ detail: { value } }) =>
136
- setState((state) => ({ ...state, headerFocused: value }))}
137
- ></cosmoz-omnitable-datetime-range-input>`;
138
- }
139
-
140
- computeSource(column, data) {
141
- return defaultComputeSource(column, data);
142
- }
143
- }
144
-
145
- customElements.define(OmnitableColumnDatetime.is, OmnitableColumnDatetime);
@@ -1,141 +0,0 @@
1
- import { translatable } from '@neovici/cosmoz-i18next';
2
- import { mixin, Template } from '@neovici/cosmoz-utils';
3
-
4
- import { PolymerElement } from '@polymer/polymer/polymer-element';
5
- import { html } from '@polymer/polymer/lib/utils/html-tag';
6
- window.Cosmoz = window.Cosmoz || {};
7
-
8
- /**
9
- * @polymer
10
- * @customElement
11
- * @appliesMixin translatable
12
- */
13
- class OmnitableColumnListData extends translatable(
14
- mixin(Template, PolymerElement),
15
- ) {
16
- static get template() {
17
- return html`
18
- <style>
19
- :host {
20
- display: block;
21
- }
22
-
23
- :host a {
24
- color: var(--primary-link-color, inherit);
25
- }
26
-
27
- [hidden] {
28
- display: none;
29
- }
30
-
31
- ul {
32
- list-style-type: none;
33
- margin: 0.3em 0;
34
- padding-left: 0;
35
- }
36
-
37
- li {
38
- text-overflow: ellipsis;
39
- overflow: hidden;
40
- }
41
- </style>
42
-
43
- <ul hidden$="[[ isEmpty(items) ]]">
44
- <li>
45
- <span>[[ _firstItem(items) ]]</span>
46
- </li>
47
- <li class="see-more" hidden$="[[_hideExpand(items, _expanded)]]">
48
- <a href="#" on-tap="_toggleExpand"
49
- >[[ _('and {0} more', _othersCount, t) ]]</a
50
- >
51
- </li>
52
- <template
53
- is="dom-repeat"
54
- items="[[ _otherItems(items, _expanded) ]]"
55
- as="item"
56
- >
57
- <li>
58
- <span class="item">[[ item ]]</span>
59
- </li>
60
- </template>
61
- <li class="see-less" hidden$="[[ _hideCollapse(items, _expanded) ]]">
62
- <a href="#" on-tap="_toggleExpand">[[ _('See less', t) ]]</a>
63
- </li>
64
- </ul>
65
- `;
66
- }
67
-
68
- static get is() {
69
- return 'cosmoz-omnitable-column-list-data';
70
- }
71
-
72
- static get properties() {
73
- return {
74
- items: {
75
- type: Array,
76
- },
77
-
78
- _expanded: {
79
- type: Boolean,
80
- value: false,
81
- },
82
-
83
- _othersCount: {
84
- type: Number,
85
- computed: '_computeOthersCount(items)',
86
- },
87
- };
88
- }
89
-
90
- static get observers() {
91
- return ['_itemsLengthChanged(items.length)'];
92
- }
93
-
94
- _itemsLengthChanged() {
95
- requestAnimationFrame(() =>
96
- this.dispatchEvent(new CustomEvent('expand', { bubbles: true })),
97
- );
98
- }
99
-
100
- _firstItem(items) {
101
- if (items !== undefined && items !== null && items.length > 0) {
102
- return items[0];
103
- }
104
- }
105
-
106
- _hideExpand(items, expanded) {
107
- if (items !== undefined && items.length !== null) {
108
- return items.length <= 2 || expanded;
109
- }
110
- return true;
111
- }
112
-
113
- _hideCollapse(items, expanded) {
114
- if (items !== undefined && items.length !== null) {
115
- return items.length <= 2 || !expanded;
116
- }
117
- return true;
118
- }
119
-
120
- _otherItems(items, expanded) {
121
- if (items !== undefined && items !== null) {
122
- if (items.length <= 2 || expanded) {
123
- return items.slice(1);
124
- }
125
- }
126
- }
127
-
128
- _computeOthersCount(items) {
129
- if (items !== undefined && items !== null) {
130
- return items.length - 1;
131
- }
132
- }
133
-
134
- _toggleExpand(event) {
135
- this._expanded = !this._expanded;
136
- event.stopPropagation();
137
- event.preventDefault();
138
- }
139
- }
140
-
141
- customElements.define(OmnitableColumnListData.is, OmnitableColumnListData);
@@ -1,198 +0,0 @@
1
- import { prop } from '@neovici/cosmoz-utils/object';
2
- import { array } from '@neovici/cosmoz-utils/array';
3
- import { invoke } from '@neovici/cosmoz-utils/function';
4
- import { get } from '@polymer/polymer/lib/utils/path';
5
- import { valuesFrom } from './lib/utils-data';
6
-
7
- const unique = (values, valueProperty) => {
8
- if (!Array.isArray(values)) {
9
- return;
10
- }
11
- const used = [];
12
- return values
13
- .reduce((acc, cur) => {
14
- if (Array.isArray(cur)) {
15
- cur.forEach((subcur) => {
16
- acc.push(subcur);
17
- });
18
- return acc;
19
- }
20
- acc.push(cur);
21
- return acc;
22
- }, [])
23
- .filter((item, index, array) => {
24
- if (array.indexOf(item) !== index) {
25
- return false;
26
- }
27
- if (valueProperty) {
28
- const value = get(item, valueProperty);
29
- if (used.indexOf(value) !== -1) {
30
- return false;
31
- }
32
- used.push(value);
33
- }
34
- return true;
35
- });
36
- },
37
- toAutocompleteSource = (values, valueProperty, textProperty) => {
38
- if (values == null) {
39
- return [];
40
- }
41
-
42
- if (Array.isArray(values)) {
43
- return unique(values, valueProperty);
44
- }
45
-
46
- if (typeof values === 'object') {
47
- const valProp = valueProperty ?? 'id',
48
- textProp = textProperty ?? 'label';
49
- return Object.entries(values)
50
- .map(([id, label]) => ({
51
- [valProp]: id,
52
- [textProp]: label,
53
- }))
54
- .sort((a, b) => {
55
- if (a[textProp] < b[textProp]) {
56
- return -1;
57
- }
58
- if (a[textProp] > b[textProp]) {
59
- return 1;
60
- }
61
- return 0;
62
- });
63
- }
64
-
65
- return [];
66
- },
67
- getTexts = (item, valuePath, textProperty) =>
68
- array(valuePath && get(item, valuePath)).map(prop(textProperty)),
69
- getString = ({ valuePath, textProperty }, item) => {
70
- return getTexts(item, valuePath, textProperty)
71
- .filter((i) => i != null)
72
- .join(', ');
73
- },
74
- toXlsxValue = getString,
75
- applyMultiFilter =
76
- ({ valueProperty, valuePath, emptyValue, emptyProperty }, filters) =>
77
- (item) => {
78
- const val = prop(valueProperty),
79
- values = array(get(item, valuePath));
80
- return filters.some(
81
- (filter) =>
82
- (values.length === 0 &&
83
- prop(emptyProperty || valueProperty)(filter) === emptyValue) ||
84
- values.some((value) => val(value) === val(filter)),
85
- );
86
- },
87
- onChange = (setState) => (value) =>
88
- setState((state) => ({ ...state, filter: value })),
89
- onFocus = (setState) => (focused) =>
90
- setState((state) => ({ ...state, headerFocused: focused })),
91
- onText = (setState) => (text) =>
92
- setState((state) => ({ ...state, query: text })),
93
- computeValues = (
94
- { emptyValue, emptyLabel, emptyProperty, textProperty, valueProperty },
95
- rawSource,
96
- ) => {
97
- const source = toAutocompleteSource(rawSource, valueProperty, textProperty);
98
- if (
99
- !emptyLabel ||
100
- emptyValue === undefined ||
101
- !textProperty ||
102
- !(emptyProperty || valueProperty) ||
103
- !source
104
- ) {
105
- return source;
106
- }
107
- return [
108
- {
109
- [textProperty]: emptyLabel,
110
- [emptyProperty || valueProperty]: emptyValue,
111
- },
112
- ...source,
113
- ];
114
- },
115
- computeSource = (column, data) =>
116
- computeValues(column, valuesFrom(data, column.valuePath)),
117
- listColumnMixin = (base) =>
118
- class extends base {
119
- static get properties() {
120
- return {
121
- textProperty: { type: String },
122
- valueProperty: { type: String },
123
- emptyLabel: { type: String },
124
- emptyValue: { type: Object },
125
- emptyProperty: { type: String },
126
- };
127
- }
128
-
129
- getConfig(column) {
130
- return {
131
- emptyProperty: column.emptyProperty,
132
- };
133
- }
134
-
135
- getString(column, item) {
136
- return getString(column, item);
137
- }
138
-
139
- toXlsxValue(column, item) {
140
- return toXlsxValue(column, item);
141
- }
142
-
143
- cellTitleFn(column, item) {
144
- return getString(column, item);
145
- }
146
-
147
- getComparableValue({ valuePath, valueProperty }, item) {
148
- const value = get(item, valuePath);
149
- if (valueProperty == null) {
150
- return value;
151
- }
152
- const subValues = array(value).reduce((acc, subItem) => {
153
- acc.push(get(subItem, valueProperty));
154
- return acc;
155
- }, []);
156
- return subValues.sort().join(' ');
157
- }
158
-
159
- getFilterFn(column, filters) {
160
- if (!filters || !Array.isArray(filters) || filters.length === 0) {
161
- return;
162
- }
163
-
164
- return applyMultiFilter(column, filters);
165
- }
166
-
167
- serializeFilter(column, filter) {
168
- return filter.length === 0 ? null : JSON.stringify(filter);
169
- }
170
-
171
- deserializeFilter(column, filter) {
172
- return JSON.parse(decodeURIComponent(filter));
173
- }
174
-
175
- computeSource(column, data) {
176
- return column.externalValues || typeof column.values === 'function'
177
- ? async (...args) =>
178
- computeValues(
179
- column,
180
- await Promise.resolve(invoke(column.values, ...args)),
181
- )
182
- : computeSource(column, data);
183
- }
184
- };
185
-
186
- export {
187
- unique,
188
- getTexts,
189
- getString,
190
- toXlsxValue,
191
- applyMultiFilter,
192
- onChange,
193
- onFocus,
194
- onText,
195
- computeSource,
196
- toAutocompleteSource,
197
- listColumnMixin,
198
- };
@@ -1,149 +0,0 @@
1
- import { get } from '@polymer/polymer/lib/utils/path';
2
-
3
- export const getString = ({ valuePath }, item) => get(item, valuePath),
4
- toXlsxValue = getString,
5
- getComparableValue = getString,
6
- applySingleFilter =
7
- ({ valuePath }, filter) =>
8
- (item) => {
9
- const value = get(item, valuePath);
10
- if (value == null) {
11
- return false;
12
- }
13
- return value
14
- .toString()
15
- .toLowerCase()
16
- .trim()
17
- .includes(filter.toLowerCase().trim());
18
- },
19
- serializeFilter = (column, filter) =>
20
- filter === '' || filter == null ? null : filter,
21
- columnMixin = (base) =>
22
- class extends base {
23
- static get properties() {
24
- return {
25
- /**
26
- * Used to indicate that an element using this behavior is a column definition that can be used
27
- * in cosmoz-omnitable
28
- */
29
- isOmnitableColumn: { type: Boolean, value: true },
30
- title: { type: String },
31
- valuePath: { type: String, notify: true },
32
- values: { type: Array, notify: true },
33
- filter: { type: Object },
34
- noLocalFilter: { type: Boolean },
35
- /**
36
- * If the column should be disabled until enabled with enabledColumns
37
- */
38
- disabled: { type: Boolean, value: false, notify: true },
39
- /**
40
- * If true, the column will be editable by using an input element for rendering.
41
- */
42
- editable: { type: Boolean, notify: true },
43
- /**
44
- * Indicate that the column is loading/performing work
45
- */
46
- loading: { type: Boolean, value: false, notify: true },
47
- externalValues: { type: Boolean, value: false, notify: true },
48
- /**
49
- * Column name for use with enabledColumns
50
- */
51
- name: { type: String },
52
- sortOn: { type: String },
53
- groupOn: { type: String },
54
- width: { type: String, value: '75px' },
55
- minWidth: { type: String, value: '40px' },
56
- flex: { type: String, value: '1' },
57
- cellClass: { type: String, value: 'default-cell' },
58
- headerCellClass: { type: String, value: 'default-header-cell' },
59
- priority: { type: Number, value: 0 },
60
- hidden: { type: Boolean, notify: true },
61
- preferredDropdownHorizontalAlign: { type: String, value: 'right' },
62
- renderHeader: { type: Function },
63
- renderCell: { type: Function },
64
- renderEditCell: { type: Function },
65
- renderGroup: { type: Function },
66
-
67
- /**
68
- * The priority of the column in the mini mode. If missing the column is disabled in the mini mode.
69
- */
70
- mini: { type: Number, value: null },
71
- /**
72
- * An alternative render to use in mini mode. Takes the same params as `renderCell`.
73
- */
74
- renderMini: { type: Function },
75
- };
76
- }
77
-
78
- static get observers() {
79
- return ['notifyFilterChange(filter)'];
80
- }
81
-
82
- notifyFilterChange(filter) {
83
- if (this.__ownChange) {
84
- return;
85
- }
86
- this.dispatchEvent(
87
- new CustomEvent('legacy-filter-changed', {
88
- detail: {
89
- name: this.name,
90
- state: this.legacyFilterToState(filter),
91
- },
92
- bubbles: true,
93
- }),
94
- );
95
- }
96
-
97
- legacyFilterToState(filter) {
98
- return { filter };
99
- }
100
-
101
- /**
102
- * Override this in column elements if you need a different default width
103
- */
104
-
105
- // eslint-disable-next-line no-empty-function
106
- getFilterFn() {}
107
-
108
- getString(column, item) {
109
- return getString(column, item);
110
- }
111
-
112
- toXlsxValue(column, item) {
113
- return toXlsxValue(column, item);
114
- }
115
-
116
- cellTitleFn(column, item) {
117
- return getString(column, item);
118
- }
119
-
120
- serializeFilter(column, filter) {
121
- return serializeFilter(column, filter);
122
- }
123
-
124
- deserializeFilter(column, filter) {
125
- if (filter == null) {
126
- return null;
127
- }
128
-
129
- if (typeof filter === 'string') {
130
- return window.decodeURIComponent(filter);
131
- }
132
- return filter;
133
- }
134
-
135
- getComparableValue(column, item) {
136
- return getComparableValue(column, item);
137
- }
138
-
139
- computeSource(column, data) {
140
- return data;
141
- }
142
-
143
- _propertiesChanged(currentProps, changedProps, oldProps) {
144
- super._propertiesChanged(currentProps, changedProps, oldProps);
145
- this.dispatchEvent(
146
- new CustomEvent('cosmoz-column-prop-changed', { bubbles: true }),
147
- );
148
- }
149
- };