@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,182 +0,0 @@
1
- import { toLocalISOString } from '@neovici/cosmoz-utils/date';
2
- import { rangeInputMixin } from './cosmoz-omnitable-range-input-mixin';
3
-
4
- /**
5
- * @polymer
6
- * @mixinFunction
7
-
8
- * @param {class} base The base class
9
- * @returns {class} The base class with the mixin applied
10
- */
11
- export const dateInputMixin = (base) =>
12
- /**
13
- * @polymer
14
- * @mixinClass
15
- */
16
- class extends rangeInputMixin(base) {
17
- static get properties() {
18
- return {
19
- max: { type: Date, value: null },
20
-
21
- min: { type: Date, value: null },
22
-
23
- _filterText: {
24
- type: String,
25
- computed: '_computeFilterText(filter.*, formatter)',
26
- },
27
-
28
- formatter: { type: Object, computed: '_computeFormatter(locale)' },
29
- };
30
- }
31
-
32
- /**
33
- * Converts an value to date optionaly limiting it.
34
- *
35
- * @param {Date|String} value Value to convert to date
36
- * @param {Date|String} limit Value used to limit the date
37
- * @param {Function} limitFunc Function used to limit the date (Math.min|Math.max)
38
- * @returns {Date|void} Value converted to date optionaly limitated
39
- */
40
- // eslint-disable-next-line max-statements
41
- toDate(value, limit, limitFunc) {
42
- if (value == null || value === '') {
43
- return;
44
- }
45
-
46
- // convert value to Date
47
- let date = value;
48
- if (!(date instanceof Date)) {
49
- // if the value is an ISO string, make sure that it has an explicit timezone
50
- if (typeof value === 'string') {
51
- date = this.getAbsoluteISOString(date);
52
- }
53
-
54
- date = new Date(date);
55
- }
56
-
57
- if (Number.isNaN(date.getTime())) {
58
- return null;
59
- }
60
-
61
- if (limitFunc == null || limit == null) {
62
- return date;
63
- }
64
-
65
- const lDate = this.toDate(limit);
66
- if (lDate == null) {
67
- return date;
68
- }
69
-
70
- const comparableDate = this.getComparableValue(date),
71
- comparableLDate = this.getComparableValue(lDate),
72
- limitedValue = limitFunc(comparableDate, comparableLDate);
73
- return limitedValue === comparableDate ? date : lDate;
74
- }
75
-
76
- toValue() {
77
- return this.toDate.apply(this, arguments);
78
- }
79
-
80
- /**
81
- * Get comparable number from date
82
- *
83
- * @param {Object} item Item to be processed
84
- * @param {String} valuePath Property path
85
- * @returns {Number|void} Valid value or void
86
- */
87
- getComparableValue(item, valuePath) {
88
- const value = super.getComparableValue(item, valuePath);
89
- if (value == null) {
90
- return;
91
- }
92
- return this.toNumber(value.getTime());
93
- }
94
-
95
- /**
96
- * Get date of item as string
97
- *
98
- * @param {Object} item Item to be processed
99
- * @param {String} valuePath = this.valuePath Property path
100
- * @param {Object} formatter = this.formatter Property formatter
101
- * @returns {String} Date rendered as string or 'Invalid Date'
102
- */
103
- getString(item, valuePath = this.valuePath, formatter = this.formatter) {
104
- const value = this.toValue(this.get(valuePath, item));
105
- if (value === undefined) {
106
- return '';
107
- }
108
- if (value === null) {
109
- return 'Invalid Date';
110
- }
111
- return this.renderValue(value, formatter);
112
- }
113
-
114
- /**
115
- * Computes the local timezone and adds it to a local ISO string
116
- * @param {String} localISOString an ISO date string, without timezone info
117
- * @return {String} an ISO date string, with timezone info
118
- */
119
- getAbsoluteISOString(localISOString) {
120
- // Most browsers use local timezone when no timezone is specified
121
- // but Safari uses UTC, so we set it implicitly
122
- // TODO: Consider removing this when/if Safari handles local timezone correctly
123
- if (localISOString.length === 19) {
124
- return localISOString + this._getTimezoneString(localISOString);
125
- }
126
- return localISOString;
127
- }
128
-
129
- /**
130
- * Calculates the local timezone offset and formats it to ISO Timezone string.
131
- * @param {String} localISOString an ISO date string
132
- * @return {String} the ISO timezone
133
- */
134
- _getTimezoneString(localISOString) {
135
- const off = -new Date(localISOString).getTimezoneOffset() / 60;
136
- return (
137
- (off < 0 ? '-' : '+') + ['0', Math.abs(off)].join('').substr(-2) + ':00'
138
- );
139
- }
140
-
141
- renderValue(value, formatter = this.formatter) {
142
- if (formatter == null) {
143
- return;
144
- }
145
- const date = this.toValue(value);
146
- if (date == null) {
147
- return;
148
- }
149
- return formatter.format(date);
150
- }
151
-
152
- _computeFormatter(locale) {
153
- return new Intl.DateTimeFormat(locale || undefined);
154
- }
155
-
156
- _toInputString(value) {
157
- const date = this.toValue(value);
158
- if (date == null) {
159
- return null;
160
- }
161
- return this._toLocalISOString(date).slice(0, 10);
162
- }
163
-
164
- _dateValueChanged(event) {
165
- const input = event.currentTarget,
166
- value = input.value,
167
- item = event.model.item,
168
- oldValue = this.get(this.valuePath, item),
169
- date = this._fromInputString(value);
170
- this.set(this.valuePath, date, item);
171
- this._fireItemChangeEvent(
172
- item,
173
- this.valuePath,
174
- oldValue,
175
- this.renderValue.bind(this),
176
- );
177
- }
178
-
179
- _toLocalISOString(date) {
180
- return toLocalISOString(date);
181
- }
182
- };
@@ -1,451 +0,0 @@
1
- import { Debouncer } from '@polymer/polymer/lib/utils/debounce.js';
2
- import { timeOut } from '@polymer/polymer/lib/utils/async.js';
3
- import { enqueueDebouncer } from '@polymer/polymer/lib/utils/flush.js';
4
- import { invoke } from '@neovici/cosmoz-utils/function';
5
-
6
- const getCloseableParent = (el) =>
7
- typeof el.close === 'function' ? el : getCloseableParent(el.parentElement);
8
-
9
- /**
10
- * @polymer
11
- * @mixinFunction
12
- * @param {class} base The base class
13
- * @returns {class} The base class with the mixin applied
14
- */
15
- export const rangeInputMixin = (base) =>
16
- /**
17
- * @polymer
18
- * @mixinClass
19
- */
20
- class extends base {
21
- static get properties() {
22
- return {
23
- filter: { type: Object, notify: true },
24
-
25
- values: {
26
- type: Array,
27
- value() {
28
- return [];
29
- },
30
- },
31
-
32
- headerFocused: { type: Boolean, notify: true },
33
-
34
- min: { type: Number, value: null },
35
-
36
- max: { type: Number, value: null },
37
-
38
- limits: { type: Function },
39
-
40
- /**
41
- * If true, _limitInput and _updateFilter will be called after each value change
42
- */
43
- autoupdate: { type: String, value: true },
44
-
45
- locale: { type: String, value: null },
46
-
47
- _filterInput: {
48
- type: Object,
49
- value() {
50
- return { min: null, max: null };
51
- },
52
- },
53
-
54
- _range: { type: Object, computed: '_computeRange(values.*)' },
55
-
56
- _limit: {
57
- type: Object,
58
- computed: '_computeLimit(_range, _filterInput.*, min, max)',
59
- value() {
60
- return {};
61
- },
62
- },
63
-
64
- _tooltip: {
65
- type: String,
66
- computed: '_computeTooltip(title, _filterText)',
67
- },
68
-
69
- _fromClasses: {
70
- type: String,
71
- computed: '_computeInputClasses(_filterInput.min)',
72
- },
73
-
74
- _toClasses: {
75
- type: String,
76
- computed: '_computeInputClasses(_filterInput.max)',
77
- },
78
- };
79
- }
80
-
81
- static get observers() {
82
- return [
83
- '_filterInputChanged(_filterInput.*, autoupdate)',
84
- '_filterChanged(filter.*)',
85
- '_updateLimits(limits, headerFocused)',
86
- ];
87
- }
88
-
89
- disconnectedCallback() {
90
- if (this._limitInputDebouncer) {
91
- this._limitInputDebouncer.cancel();
92
- }
93
- super.disconnectedCallback();
94
- }
95
-
96
- _computeInputClasses(value) {
97
- return value != null && value !== '' ? 'has-value' : '';
98
- }
99
-
100
- /**
101
- * Converts a value to number optionaly limiting it.
102
- *
103
- * @param {Number|*} value The value to convert to number
104
- * @param {Number|*} limit The value used to limit the number
105
- * @param {Function} limitFunc The function used to limit the number (Math.min|Math.max)
106
- * @returns {Number|void} Value converted to Number or void
107
- */
108
- toNumber(value, limit, limitFunc) {
109
- if (value == null || value === '') {
110
- return;
111
- }
112
- const number = typeof value === 'number' ? value : Number(value);
113
- if (Number.isNaN(number)) {
114
- return;
115
- }
116
- if (limitFunc == null || limit == null) {
117
- return number;
118
- }
119
- const lNumber = this.toNumber(limit);
120
- if (lNumber == null) {
121
- return number;
122
- }
123
- return limitFunc(number, lNumber);
124
- }
125
-
126
- toValue() {
127
- return this.toNumber.apply(this, arguments);
128
- }
129
-
130
- /**
131
- * Get the comparable value of an item.
132
- *
133
- * @param {Object} item Item to be processed
134
- * @param {String} valuePath Property path
135
- * @returns {Number|void} Valid value or void
136
- */
137
- getComparableValue(item, valuePath) {
138
- if (item == null) {
139
- return;
140
- }
141
- let value = item;
142
- if (valuePath != null) {
143
- value = this.get(valuePath, item);
144
- }
145
- return this.toValue(value);
146
- }
147
- renderValue() {
148
- //overrideable
149
- }
150
-
151
- getInputString(item, valuePath = this.valuePath) {
152
- const value = this.toValue(this.get(valuePath, item));
153
- return this._toInputString(value);
154
- }
155
-
156
- /**
157
- * Computes min/max range from values.
158
- *
159
- * @param {Object} change `values` property changes
160
- * @returns {Object} Computed min/max
161
- */
162
- _computeRange(change) {
163
- const allValues = change.base,
164
- values =
165
- Array.isArray(allValues) &&
166
- allValues.length &&
167
- allValues.map((v) => this.toValue(v)).filter((n) => n != null);
168
-
169
- if (!values || values.length < 1) {
170
- return { min: null, max: null };
171
- }
172
- return values.reduce((p, n) => {
173
- return {
174
- min: this.toValue(n, p.min, Math.min),
175
- max: this.toValue(n, p.max, Math.max),
176
- };
177
- }, {});
178
- }
179
-
180
- _computeLimit(range, inputChange, min, max) {
181
- if (!range) {
182
- return;
183
- }
184
- const input = inputChange.base,
185
- nMin = this.toValue(min),
186
- nMax = this.toValue(max),
187
- aMin = nMin != null ? nMin : this.toValue(range.min),
188
- aMax = nMax != null ? nMax : this.toValue(range.max);
189
-
190
- return {
191
- fromMin: aMin,
192
- fromMax: this.toValue(
193
- aMax,
194
- this._fromInputString(input.max, 'max'),
195
- Math.min,
196
- ),
197
- toMin: this.toValue(
198
- aMin,
199
- this._fromInputString(input.min, 'min'),
200
- Math.max,
201
- ),
202
- toMax: aMax,
203
- };
204
- }
205
-
206
- _computeFilterText(change) {
207
- if (change.base == null) {
208
- return undefined;
209
- }
210
- const filter = change.base,
211
- min = this.toValue(filter.min),
212
- max = this.toValue(filter.max),
213
- text = [];
214
-
215
- if (min != null) {
216
- text.push(this.renderValue(min));
217
- }
218
- text.push(' - ');
219
- if (max != null) {
220
- text.push(this.renderValue(max));
221
- }
222
- return text.length > 1 ? text.join('') : undefined;
223
- }
224
-
225
- _computeTooltip(title, text) {
226
- if (text == null) {
227
- return title;
228
- }
229
- return `${title}: ${text}`;
230
- }
231
-
232
- _fromInputString(value) {
233
- return this.toValue(value);
234
- }
235
-
236
- _toInputString(value) {
237
- const val = this.toValue(value);
238
- if (val == null) {
239
- return null;
240
- }
241
- return val;
242
- }
243
-
244
- _getDefaultFilter() {
245
- return { min: null, max: null };
246
- }
247
-
248
- /**
249
- * Observes changes of _filterInput, saves the path, debounces _limitInput.
250
- *
251
- * @param {Object} change '_filterInput' property changes
252
- * @param {Boolean} autoupdate whether to auto-update on value changes
253
- * @returns {void}
254
- */
255
- _filterInputChanged(change, autoupdate) {
256
- const path = change.path.split('.')[1];
257
- this.__inputChangePath = path || null;
258
-
259
- if (!autoupdate) {
260
- return;
261
- }
262
-
263
- this._limitInputDebouncer = Debouncer.debounce(
264
- this._limitInputDebouncer,
265
- timeOut.after(600),
266
- () => {
267
- this._limitInput();
268
- this._updateFilter();
269
- },
270
- );
271
- enqueueDebouncer(this._limitInputDebouncer);
272
- }
273
-
274
- _clearFrom() {
275
- this.set('_filterInput.min', null);
276
- this._updateFilter();
277
- }
278
-
279
- _clearTo() {
280
- this.set('_filterInput.max', null);
281
- this._updateFilter();
282
- }
283
-
284
- _onBlur() {
285
- this._limitInput();
286
- this._updateFilter();
287
- }
288
-
289
- _onKeyDown(event) {
290
- const input = event.currentTarget,
291
- inputs = Array.from(
292
- input.parentElement.querySelectorAll('cosmoz-input'),
293
- ),
294
- nextInput = inputs[inputs.findIndex((i) => i === input) + 1],
295
- isLastInput = !nextInput,
296
- isFirstInput = inputs[0] === input;
297
-
298
- switch (event.keyCode) {
299
- case 13: // Enter
300
- event.preventDefault();
301
-
302
- if (!isLastInput) {
303
- nextInput.focus();
304
- } else {
305
- // if this is the last input, update the filter
306
- const limited = this._limitInput();
307
- this._updateFilter();
308
- // and close the dropdown if the value was not out of bounds
309
- if (!limited) {
310
- this._closeParent(input);
311
- }
312
- }
313
- break;
314
-
315
- case 9: // Tab
316
- if (
317
- (isLastInput && !event.shiftKey) ||
318
- (isFirstInput && event.shiftKey)
319
- ) {
320
- this._closeParent(input);
321
- }
322
- }
323
- }
324
-
325
- _closeParent(input) {
326
- getCloseableParent(input).close();
327
- }
328
-
329
- _onDropdownOpenedChanged({ currentTarget, detail: { value } }) {
330
- if (!value) {
331
- return;
332
- }
333
-
334
- // focus the first input after the dropdown is visible
335
- setTimeout(
336
- () => currentTarget.querySelector('cosmoz-input').focus(),
337
- 100,
338
- );
339
- }
340
-
341
- /**
342
- * Debounced function called by `_filterInputChanged` when `_filterInput` changes.
343
- *
344
- * @returns {void}
345
- */
346
- _limitInput() {
347
- const input = this._filterInput,
348
- path = this.__inputChangePath,
349
- value = path
350
- ? this._fromInputString(this.get(path, input), path)
351
- : null;
352
-
353
- this.__inputChangePath = null;
354
-
355
- if (value == null) {
356
- //Don't limit a null value
357
- return false;
358
- }
359
-
360
- const limit = this._limit,
361
- limitPath = path === 'min' ? 'from' : 'to',
362
- lowerLimit = this.get(limitPath + 'Min', limit),
363
- upperLimit = this.get(limitPath + 'Max', limit),
364
- minValue = this.toValue(value, lowerLimit, Math.max),
365
- limitedValue = this.toValue(minValue, upperLimit, Math.min);
366
-
367
- if (
368
- this.getComparableValue(value) !== this.getComparableValue(limitedValue)
369
- ) {
370
- //set value without debouncing _limitInput again.
371
- this.set(
372
- ['_filterInput', path],
373
- this._toInputString(limitedValue, path),
374
- );
375
- if (this._limitInputDebouncer) {
376
- this._limitInputDebouncer.cancel();
377
- }
378
- return true;
379
- }
380
-
381
- return false;
382
- }
383
-
384
- _updateFilter() {
385
- const input = this._filterInput,
386
- filter = this.filter,
387
- min = this._fromInputString(input.min, 'min'),
388
- max = this._fromInputString(input.max, 'max');
389
-
390
- if (
391
- this.getComparableValue(min) ===
392
- this.getComparableValue(filter, 'min') &&
393
- this.getComparableValue(max) === this.getComparableValue(filter, 'max')
394
- ) {
395
- return;
396
- }
397
-
398
- this.set('filter', { min, max });
399
- }
400
-
401
- _filterChanged(change) {
402
- if (this._filterInput == null) {
403
- return;
404
- }
405
- const input = this._filterInput,
406
- filter = change.base,
407
- min = this._fromInputString(input.min, 'min'),
408
- max = this._fromInputString(input.max, 'max');
409
-
410
- if (
411
- this.getComparableValue(min) ===
412
- this.getComparableValue(filter, 'min') &&
413
- this.getComparableValue(max) === this.getComparableValue(filter, 'max')
414
- ) {
415
- return;
416
- }
417
-
418
- this.set('_filterInput', {
419
- min: this._toInputString(filter.min),
420
- max: this._toInputString(filter.max),
421
- });
422
- if (this._limitInputDebouncer) {
423
- this._limitInputDebouncer.cancel();
424
- }
425
- }
426
-
427
- hasFilter() {
428
- const filter = this.filter;
429
- if (filter == null) {
430
- return false;
431
- }
432
- return (
433
- this.toValue(filter.min) != null || this.toValue(filter.max) != null
434
- );
435
- }
436
-
437
- resetFilter() {
438
- this.filter = this._getDefaultFilter();
439
- }
440
-
441
- _updateLimits(limits, headerFocused) {
442
- if (!limits) return;
443
- Promise.resolve(invoke(limits, { active: headerFocused })).then((res) => {
444
- const { min, max } = res ?? {};
445
- Object.assign(this, {
446
- ...(min != null ? { min } : {}),
447
- ...(max != null ? { max } : {}),
448
- });
449
- });
450
- }
451
- };
@@ -1,41 +0,0 @@
1
- import { useEffect, component } from '@pionjs/pion';
2
- import { nothing } from 'lit-html';
3
-
4
- const ResizeNub = (host) => {
5
- const { column } = host;
6
-
7
- useEffect(() => {
8
- let initial = 0;
9
- let initialWidth = 0;
10
- const move = (ev) => {
11
- host.dispatchEvent(
12
- new CustomEvent('column-resize', {
13
- bubbles: true,
14
- composed: true,
15
- detail: {
16
- newWidth: Math.ceil(initialWidth + ev.pageX - initial),
17
- column,
18
- },
19
- }),
20
- );
21
- },
22
- stop = () => {
23
- document.removeEventListener('pointermove', move);
24
- document.removeEventListener('pointerup', stop);
25
- },
26
- start = (ev) => {
27
- initial = ev.pageX;
28
- initialWidth =
29
- host.previousElementSibling.getBoundingClientRect().width;
30
- document.addEventListener('pointermove', move);
31
- document.addEventListener('pointerup', stop);
32
- };
33
- host.addEventListener('pointerdown', start);
34
-
35
- return () => host.removeEventListener('pointerdown', start);
36
- }, [column]);
37
-
38
- return nothing;
39
- };
40
-
41
- customElements.define('cosmoz-omnitable-resize-nub', component(ResizeNub));