@vuu-ui/vuu-utils 2.1.18 → 2.1.19-beta.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 (350) hide show
  1. package/package.json +10 -12
  2. package/types/ThemeProvider.d.ts +4 -4
  3. package/types/data-utils.d.ts +1 -1
  4. package/types/date/date-utils.d.ts +8 -8
  5. package/types/feature-utils.d.ts +1 -1
  6. package/types/filters/filter-utils.d.ts +15 -15
  7. package/cjs/node_modules/@dnd-kit/abstract/index.js +0 -1488
  8. package/cjs/node_modules/@dnd-kit/abstract/index.js.map +0 -1
  9. package/cjs/node_modules/@dnd-kit/abstract/modifiers.js +0 -85
  10. package/cjs/node_modules/@dnd-kit/abstract/modifiers.js.map +0 -1
  11. package/cjs/node_modules/@dnd-kit/collision/dist/index.js +0 -91
  12. package/cjs/node_modules/@dnd-kit/collision/dist/index.js.map +0 -1
  13. package/cjs/node_modules/@dnd-kit/dom/index.js +0 -1991
  14. package/cjs/node_modules/@dnd-kit/dom/index.js.map +0 -1
  15. package/cjs/node_modules/@dnd-kit/dom/sortable.js +0 -828
  16. package/cjs/node_modules/@dnd-kit/dom/sortable.js.map +0 -1
  17. package/cjs/node_modules/@dnd-kit/dom/utilities.js +0 -1389
  18. package/cjs/node_modules/@dnd-kit/dom/utilities.js.map +0 -1
  19. package/cjs/node_modules/@dnd-kit/geometry/dist/index.js +0 -310
  20. package/cjs/node_modules/@dnd-kit/geometry/dist/index.js.map +0 -1
  21. package/cjs/node_modules/@dnd-kit/react/hooks.js +0 -134
  22. package/cjs/node_modules/@dnd-kit/react/hooks.js.map +0 -1
  23. package/cjs/node_modules/@dnd-kit/react/index.js +0 -398
  24. package/cjs/node_modules/@dnd-kit/react/index.js.map +0 -1
  25. package/cjs/node_modules/@dnd-kit/react/sortable.js +0 -177
  26. package/cjs/node_modules/@dnd-kit/react/sortable.js.map +0 -1
  27. package/cjs/node_modules/@dnd-kit/react/utilities.js +0 -19
  28. package/cjs/node_modules/@dnd-kit/react/utilities.js.map +0 -1
  29. package/cjs/node_modules/@dnd-kit/state/dist/index.js +0 -280
  30. package/cjs/node_modules/@dnd-kit/state/dist/index.js.map +0 -1
  31. package/cjs/node_modules/@preact/signals-core/dist/signals-core.js +0 -11
  32. package/cjs/node_modules/@preact/signals-core/dist/signals-core.js.map +0 -1
  33. package/cjs/packages/vuu-utils/src/Clock.js +0 -62
  34. package/cjs/packages/vuu-utils/src/Clock.js.map +0 -1
  35. package/cjs/packages/vuu-utils/src/PageVisibilityObserver.js +0 -80
  36. package/cjs/packages/vuu-utils/src/PageVisibilityObserver.js.map +0 -1
  37. package/cjs/packages/vuu-utils/src/ScaledDecimal.js +0 -43
  38. package/cjs/packages/vuu-utils/src/ScaledDecimal.js.map +0 -1
  39. package/cjs/packages/vuu-utils/src/ShellContext.js +0 -13
  40. package/cjs/packages/vuu-utils/src/ShellContext.js.map +0 -1
  41. package/cjs/packages/vuu-utils/src/ThemeProvider.js +0 -85
  42. package/cjs/packages/vuu-utils/src/ThemeProvider.js.map +0 -1
  43. package/cjs/packages/vuu-utils/src/array-utils.js +0 -87
  44. package/cjs/packages/vuu-utils/src/array-utils.js.map +0 -1
  45. package/cjs/packages/vuu-utils/src/box-utils.js +0 -53
  46. package/cjs/packages/vuu-utils/src/box-utils.js.map +0 -1
  47. package/cjs/packages/vuu-utils/src/column-utils.js +0 -1057
  48. package/cjs/packages/vuu-utils/src/column-utils.js.map +0 -1
  49. package/cjs/packages/vuu-utils/src/common-types.js +0 -15
  50. package/cjs/packages/vuu-utils/src/common-types.js.map +0 -1
  51. package/cjs/packages/vuu-utils/src/component-registry.js +0 -144
  52. package/cjs/packages/vuu-utils/src/component-registry.js.map +0 -1
  53. package/cjs/packages/vuu-utils/src/context-definitions/DataContext.js +0 -21
  54. package/cjs/packages/vuu-utils/src/context-definitions/DataContext.js.map +0 -1
  55. package/cjs/packages/vuu-utils/src/context-definitions/DataProvider.js +0 -19
  56. package/cjs/packages/vuu-utils/src/context-definitions/DataProvider.js.map +0 -1
  57. package/cjs/packages/vuu-utils/src/context-definitions/DataSourceProvider.js +0 -33
  58. package/cjs/packages/vuu-utils/src/context-definitions/DataSourceProvider.js.map +0 -1
  59. package/cjs/packages/vuu-utils/src/context-definitions/WorkspaceContext.js +0 -20
  60. package/cjs/packages/vuu-utils/src/context-definitions/WorkspaceContext.js.map +0 -1
  61. package/cjs/packages/vuu-utils/src/cookie-utils.js +0 -22
  62. package/cjs/packages/vuu-utils/src/cookie-utils.js.map +0 -1
  63. package/cjs/packages/vuu-utils/src/css-utils.js +0 -9
  64. package/cjs/packages/vuu-utils/src/css-utils.js.map +0 -1
  65. package/cjs/packages/vuu-utils/src/data-editing/DataEditingProvider.js +0 -28
  66. package/cjs/packages/vuu-utils/src/data-editing/DataEditingProvider.js.map +0 -1
  67. package/cjs/packages/vuu-utils/src/data-editing/EditButtons.js +0 -34
  68. package/cjs/packages/vuu-utils/src/data-editing/EditButtons.js.map +0 -1
  69. package/cjs/packages/vuu-utils/src/data-editing/EditSession.js +0 -204
  70. package/cjs/packages/vuu-utils/src/data-editing/EditSession.js.map +0 -1
  71. package/cjs/packages/vuu-utils/src/data-editing/edit-utils.js +0 -37
  72. package/cjs/packages/vuu-utils/src/data-editing/edit-utils.js.map +0 -1
  73. package/cjs/packages/vuu-utils/src/data-editing/useEditableTable.js +0 -81
  74. package/cjs/packages/vuu-utils/src/data-editing/useEditableTable.js.map +0 -1
  75. package/cjs/packages/vuu-utils/src/data-utils.js +0 -96
  76. package/cjs/packages/vuu-utils/src/data-utils.js.map +0 -1
  77. package/cjs/packages/vuu-utils/src/datasource/BaseDataSource.js +0 -317
  78. package/cjs/packages/vuu-utils/src/datasource/BaseDataSource.js.map +0 -1
  79. package/cjs/packages/vuu-utils/src/datasource/datasource-action-utils.js +0 -14
  80. package/cjs/packages/vuu-utils/src/datasource/datasource-action-utils.js.map +0 -1
  81. package/cjs/packages/vuu-utils/src/datasource/datasource-filter-utils.js +0 -40
  82. package/cjs/packages/vuu-utils/src/datasource/datasource-filter-utils.js.map +0 -1
  83. package/cjs/packages/vuu-utils/src/datasource/datasource-utils.js +0 -218
  84. package/cjs/packages/vuu-utils/src/datasource/datasource-utils.js.map +0 -1
  85. package/cjs/packages/vuu-utils/src/date/date-utils.js +0 -131
  86. package/cjs/packages/vuu-utils/src/date/date-utils.js.map +0 -1
  87. package/cjs/packages/vuu-utils/src/date/dateTimePattern.js +0 -26
  88. package/cjs/packages/vuu-utils/src/date/dateTimePattern.js.map +0 -1
  89. package/cjs/packages/vuu-utils/src/date/formatter.js +0 -82
  90. package/cjs/packages/vuu-utils/src/date/formatter.js.map +0 -1
  91. package/cjs/packages/vuu-utils/src/date/types.js +0 -32
  92. package/cjs/packages/vuu-utils/src/date/types.js.map +0 -1
  93. package/cjs/packages/vuu-utils/src/debug-utils.js +0 -34
  94. package/cjs/packages/vuu-utils/src/debug-utils.js.map +0 -1
  95. package/cjs/packages/vuu-utils/src/event-emitter.js +0 -113
  96. package/cjs/packages/vuu-utils/src/event-emitter.js.map +0 -1
  97. package/cjs/packages/vuu-utils/src/feature-utils.js +0 -139
  98. package/cjs/packages/vuu-utils/src/feature-utils.js.map +0 -1
  99. package/cjs/packages/vuu-utils/src/filters/filter-utils.js +0 -182
  100. package/cjs/packages/vuu-utils/src/filters/filter-utils.js.map +0 -1
  101. package/cjs/packages/vuu-utils/src/filters/filterAsQuery.js +0 -69
  102. package/cjs/packages/vuu-utils/src/filters/filterAsQuery.js.map +0 -1
  103. package/cjs/packages/vuu-utils/src/form-utils.js +0 -117
  104. package/cjs/packages/vuu-utils/src/form-utils.js.map +0 -1
  105. package/cjs/packages/vuu-utils/src/formatting-utils.js +0 -98
  106. package/cjs/packages/vuu-utils/src/formatting-utils.js.map +0 -1
  107. package/cjs/packages/vuu-utils/src/getUniqueId.js +0 -6
  108. package/cjs/packages/vuu-utils/src/getUniqueId.js.map +0 -1
  109. package/cjs/packages/vuu-utils/src/group-utils.js +0 -27
  110. package/cjs/packages/vuu-utils/src/group-utils.js.map +0 -1
  111. package/cjs/packages/vuu-utils/src/html-utils.js +0 -162
  112. package/cjs/packages/vuu-utils/src/html-utils.js.map +0 -1
  113. package/cjs/packages/vuu-utils/src/index.js +0 -475
  114. package/cjs/packages/vuu-utils/src/index.js.map +0 -1
  115. package/cjs/packages/vuu-utils/src/input-utils.js +0 -10
  116. package/cjs/packages/vuu-utils/src/input-utils.js.map +0 -1
  117. package/cjs/packages/vuu-utils/src/invariant.js +0 -13
  118. package/cjs/packages/vuu-utils/src/invariant.js.map +0 -1
  119. package/cjs/packages/vuu-utils/src/itemToString.js +0 -23
  120. package/cjs/packages/vuu-utils/src/itemToString.js.map +0 -1
  121. package/cjs/packages/vuu-utils/src/json-utils.js +0 -105
  122. package/cjs/packages/vuu-utils/src/json-utils.js.map +0 -1
  123. package/cjs/packages/vuu-utils/src/keyboard-utils.js +0 -30
  124. package/cjs/packages/vuu-utils/src/keyboard-utils.js.map +0 -1
  125. package/cjs/packages/vuu-utils/src/keyset.js +0 -72
  126. package/cjs/packages/vuu-utils/src/keyset.js.map +0 -1
  127. package/cjs/packages/vuu-utils/src/list-utils.js +0 -11
  128. package/cjs/packages/vuu-utils/src/list-utils.js.map +0 -1
  129. package/cjs/packages/vuu-utils/src/local-storage-utils.js +0 -35
  130. package/cjs/packages/vuu-utils/src/local-storage-utils.js.map +0 -1
  131. package/cjs/packages/vuu-utils/src/logging-utils.js +0 -65
  132. package/cjs/packages/vuu-utils/src/logging-utils.js.map +0 -1
  133. package/cjs/packages/vuu-utils/src/module-utils.js +0 -6
  134. package/cjs/packages/vuu-utils/src/module-utils.js.map +0 -1
  135. package/cjs/packages/vuu-utils/src/nanoid/index.js +0 -22
  136. package/cjs/packages/vuu-utils/src/nanoid/index.js.map +0 -1
  137. package/cjs/packages/vuu-utils/src/perf-utils.js +0 -35
  138. package/cjs/packages/vuu-utils/src/perf-utils.js.map +0 -1
  139. package/cjs/packages/vuu-utils/src/promise-utils.js +0 -42
  140. package/cjs/packages/vuu-utils/src/promise-utils.js.map +0 -1
  141. package/cjs/packages/vuu-utils/src/protocol-message-utils.js +0 -104
  142. package/cjs/packages/vuu-utils/src/protocol-message-utils.js.map +0 -1
  143. package/cjs/packages/vuu-utils/src/range-utils.js +0 -115
  144. package/cjs/packages/vuu-utils/src/range-utils.js.map +0 -1
  145. package/cjs/packages/vuu-utils/src/react-utils.js +0 -72
  146. package/cjs/packages/vuu-utils/src/react-utils.js.map +0 -1
  147. package/cjs/packages/vuu-utils/src/round-decimal.js +0 -131
  148. package/cjs/packages/vuu-utils/src/round-decimal.js.map +0 -1
  149. package/cjs/packages/vuu-utils/src/row-utils.js +0 -59
  150. package/cjs/packages/vuu-utils/src/row-utils.js.map +0 -1
  151. package/cjs/packages/vuu-utils/src/selection-utils.js +0 -34
  152. package/cjs/packages/vuu-utils/src/selection-utils.js.map +0 -1
  153. package/cjs/packages/vuu-utils/src/shell-layout-types.js +0 -13
  154. package/cjs/packages/vuu-utils/src/shell-layout-types.js.map +0 -1
  155. package/cjs/packages/vuu-utils/src/sort-utils.js +0 -78
  156. package/cjs/packages/vuu-utils/src/sort-utils.js.map +0 -1
  157. package/cjs/packages/vuu-utils/src/table-schema-utils.js +0 -13
  158. package/cjs/packages/vuu-utils/src/table-schema-utils.js.map +0 -1
  159. package/cjs/packages/vuu-utils/src/text-utils.js +0 -21
  160. package/cjs/packages/vuu-utils/src/text-utils.js.map +0 -1
  161. package/cjs/packages/vuu-utils/src/theme-utils.js +0 -36
  162. package/cjs/packages/vuu-utils/src/theme-utils.js.map +0 -1
  163. package/cjs/packages/vuu-utils/src/tree-utils.js +0 -114
  164. package/cjs/packages/vuu-utils/src/tree-utils.js.map +0 -1
  165. package/cjs/packages/vuu-utils/src/ts-utils.js +0 -12
  166. package/cjs/packages/vuu-utils/src/ts-utils.js.map +0 -1
  167. package/cjs/packages/vuu-utils/src/typeahead-utils.js +0 -6
  168. package/cjs/packages/vuu-utils/src/typeahead-utils.js.map +0 -1
  169. package/cjs/packages/vuu-utils/src/url-utils.js +0 -21
  170. package/cjs/packages/vuu-utils/src/url-utils.js.map +0 -1
  171. package/cjs/packages/vuu-utils/src/useId.js +0 -9
  172. package/cjs/packages/vuu-utils/src/useId.js.map +0 -1
  173. package/cjs/packages/vuu-utils/src/useLayoutEffectSkipFirst.js +0 -17
  174. package/cjs/packages/vuu-utils/src/useLayoutEffectSkipFirst.js.map +0 -1
  175. package/cjs/packages/vuu-utils/src/useResizeObserver.js +0 -134
  176. package/cjs/packages/vuu-utils/src/useResizeObserver.js.map +0 -1
  177. package/cjs/packages/vuu-utils/src/useStateRef.js +0 -23
  178. package/cjs/packages/vuu-utils/src/useStateRef.js.map +0 -1
  179. package/esm/node_modules/@dnd-kit/abstract/index.js +0 -1472
  180. package/esm/node_modules/@dnd-kit/abstract/index.js.map +0 -1
  181. package/esm/node_modules/@dnd-kit/abstract/modifiers.js +0 -82
  182. package/esm/node_modules/@dnd-kit/abstract/modifiers.js.map +0 -1
  183. package/esm/node_modules/@dnd-kit/collision/dist/index.js +0 -86
  184. package/esm/node_modules/@dnd-kit/collision/dist/index.js.map +0 -1
  185. package/esm/node_modules/@dnd-kit/dom/index.js +0 -1977
  186. package/esm/node_modules/@dnd-kit/dom/index.js.map +0 -1
  187. package/esm/node_modules/@dnd-kit/dom/sortable.js +0 -822
  188. package/esm/node_modules/@dnd-kit/dom/sortable.js.map +0 -1
  189. package/esm/node_modules/@dnd-kit/dom/utilities.js +0 -1344
  190. package/esm/node_modules/@dnd-kit/dom/utilities.js.map +0 -1
  191. package/esm/node_modules/@dnd-kit/geometry/dist/index.js +0 -303
  192. package/esm/node_modules/@dnd-kit/geometry/dist/index.js.map +0 -1
  193. package/esm/node_modules/@dnd-kit/react/hooks.js +0 -126
  194. package/esm/node_modules/@dnd-kit/react/hooks.js.map +0 -1
  195. package/esm/node_modules/@dnd-kit/react/index.js +0 -392
  196. package/esm/node_modules/@dnd-kit/react/index.js.map +0 -1
  197. package/esm/node_modules/@dnd-kit/react/sortable.js +0 -175
  198. package/esm/node_modules/@dnd-kit/react/sortable.js.map +0 -1
  199. package/esm/node_modules/@dnd-kit/react/utilities.js +0 -17
  200. package/esm/node_modules/@dnd-kit/react/utilities.js.map +0 -1
  201. package/esm/node_modules/@dnd-kit/state/dist/index.js +0 -266
  202. package/esm/node_modules/@dnd-kit/state/dist/index.js.map +0 -1
  203. package/esm/node_modules/@preact/signals-core/dist/signals-core.js +0 -4
  204. package/esm/node_modules/@preact/signals-core/dist/signals-core.js.map +0 -1
  205. package/esm/packages/vuu-utils/src/Clock.js +0 -60
  206. package/esm/packages/vuu-utils/src/Clock.js.map +0 -1
  207. package/esm/packages/vuu-utils/src/PageVisibilityObserver.js +0 -78
  208. package/esm/packages/vuu-utils/src/PageVisibilityObserver.js.map +0 -1
  209. package/esm/packages/vuu-utils/src/ScaledDecimal.js +0 -37
  210. package/esm/packages/vuu-utils/src/ScaledDecimal.js.map +0 -1
  211. package/esm/packages/vuu-utils/src/ShellContext.js +0 -10
  212. package/esm/packages/vuu-utils/src/ShellContext.js.map +0 -1
  213. package/esm/packages/vuu-utils/src/ThemeProvider.js +0 -78
  214. package/esm/packages/vuu-utils/src/ThemeProvider.js.map +0 -1
  215. package/esm/packages/vuu-utils/src/array-utils.js +0 -79
  216. package/esm/packages/vuu-utils/src/array-utils.js.map +0 -1
  217. package/esm/packages/vuu-utils/src/box-utils.js +0 -47
  218. package/esm/packages/vuu-utils/src/box-utils.js.map +0 -1
  219. package/esm/packages/vuu-utils/src/column-utils.js +0 -970
  220. package/esm/packages/vuu-utils/src/column-utils.js.map +0 -1
  221. package/esm/packages/vuu-utils/src/common-types.js +0 -13
  222. package/esm/packages/vuu-utils/src/common-types.js.map +0 -1
  223. package/esm/packages/vuu-utils/src/component-registry.js +0 -128
  224. package/esm/packages/vuu-utils/src/component-registry.js.map +0 -1
  225. package/esm/packages/vuu-utils/src/context-definitions/DataContext.js +0 -18
  226. package/esm/packages/vuu-utils/src/context-definitions/DataContext.js.map +0 -1
  227. package/esm/packages/vuu-utils/src/context-definitions/DataProvider.js +0 -16
  228. package/esm/packages/vuu-utils/src/context-definitions/DataProvider.js.map +0 -1
  229. package/esm/packages/vuu-utils/src/context-definitions/DataSourceProvider.js +0 -29
  230. package/esm/packages/vuu-utils/src/context-definitions/DataSourceProvider.js.map +0 -1
  231. package/esm/packages/vuu-utils/src/context-definitions/WorkspaceContext.js +0 -17
  232. package/esm/packages/vuu-utils/src/context-definitions/WorkspaceContext.js.map +0 -1
  233. package/esm/packages/vuu-utils/src/cookie-utils.js +0 -19
  234. package/esm/packages/vuu-utils/src/cookie-utils.js.map +0 -1
  235. package/esm/packages/vuu-utils/src/css-utils.js +0 -7
  236. package/esm/packages/vuu-utils/src/css-utils.js.map +0 -1
  237. package/esm/packages/vuu-utils/src/data-editing/DataEditingProvider.js +0 -25
  238. package/esm/packages/vuu-utils/src/data-editing/DataEditingProvider.js.map +0 -1
  239. package/esm/packages/vuu-utils/src/data-editing/EditButtons.js +0 -32
  240. package/esm/packages/vuu-utils/src/data-editing/EditButtons.js.map +0 -1
  241. package/esm/packages/vuu-utils/src/data-editing/EditSession.js +0 -201
  242. package/esm/packages/vuu-utils/src/data-editing/EditSession.js.map +0 -1
  243. package/esm/packages/vuu-utils/src/data-editing/edit-utils.js +0 -34
  244. package/esm/packages/vuu-utils/src/data-editing/edit-utils.js.map +0 -1
  245. package/esm/packages/vuu-utils/src/data-editing/useEditableTable.js +0 -79
  246. package/esm/packages/vuu-utils/src/data-editing/useEditableTable.js.map +0 -1
  247. package/esm/packages/vuu-utils/src/data-utils.js +0 -82
  248. package/esm/packages/vuu-utils/src/data-utils.js.map +0 -1
  249. package/esm/packages/vuu-utils/src/datasource/BaseDataSource.js +0 -314
  250. package/esm/packages/vuu-utils/src/datasource/BaseDataSource.js.map +0 -1
  251. package/esm/packages/vuu-utils/src/datasource/datasource-action-utils.js +0 -8
  252. package/esm/packages/vuu-utils/src/datasource/datasource-action-utils.js.map +0 -1
  253. package/esm/packages/vuu-utils/src/datasource/datasource-filter-utils.js +0 -38
  254. package/esm/packages/vuu-utils/src/datasource/datasource-filter-utils.js.map +0 -1
  255. package/esm/packages/vuu-utils/src/datasource/datasource-utils.js +0 -193
  256. package/esm/packages/vuu-utils/src/datasource/datasource-utils.js.map +0 -1
  257. package/esm/packages/vuu-utils/src/date/date-utils.js +0 -121
  258. package/esm/packages/vuu-utils/src/date/date-utils.js.map +0 -1
  259. package/esm/packages/vuu-utils/src/date/dateTimePattern.js +0 -22
  260. package/esm/packages/vuu-utils/src/date/dateTimePattern.js.map +0 -1
  261. package/esm/packages/vuu-utils/src/date/formatter.js +0 -79
  262. package/esm/packages/vuu-utils/src/date/formatter.js.map +0 -1
  263. package/esm/packages/vuu-utils/src/date/types.js +0 -26
  264. package/esm/packages/vuu-utils/src/date/types.js.map +0 -1
  265. package/esm/packages/vuu-utils/src/debug-utils.js +0 -32
  266. package/esm/packages/vuu-utils/src/debug-utils.js.map +0 -1
  267. package/esm/packages/vuu-utils/src/event-emitter.js +0 -111
  268. package/esm/packages/vuu-utils/src/event-emitter.js.map +0 -1
  269. package/esm/packages/vuu-utils/src/feature-utils.js +0 -125
  270. package/esm/packages/vuu-utils/src/feature-utils.js.map +0 -1
  271. package/esm/packages/vuu-utils/src/filters/filter-utils.js +0 -159
  272. package/esm/packages/vuu-utils/src/filters/filter-utils.js.map +0 -1
  273. package/esm/packages/vuu-utils/src/filters/filterAsQuery.js +0 -65
  274. package/esm/packages/vuu-utils/src/filters/filterAsQuery.js.map +0 -1
  275. package/esm/packages/vuu-utils/src/form-utils.js +0 -110
  276. package/esm/packages/vuu-utils/src/form-utils.js.map +0 -1
  277. package/esm/packages/vuu-utils/src/formatting-utils.js +0 -93
  278. package/esm/packages/vuu-utils/src/formatting-utils.js.map +0 -1
  279. package/esm/packages/vuu-utils/src/getUniqueId.js +0 -4
  280. package/esm/packages/vuu-utils/src/getUniqueId.js.map +0 -1
  281. package/esm/packages/vuu-utils/src/group-utils.js +0 -23
  282. package/esm/packages/vuu-utils/src/group-utils.js.map +0 -1
  283. package/esm/packages/vuu-utils/src/html-utils.js +0 -145
  284. package/esm/packages/vuu-utils/src/html-utils.js.map +0 -1
  285. package/esm/packages/vuu-utils/src/index.js +0 -77
  286. package/esm/packages/vuu-utils/src/index.js.map +0 -1
  287. package/esm/packages/vuu-utils/src/input-utils.js +0 -7
  288. package/esm/packages/vuu-utils/src/input-utils.js.map +0 -1
  289. package/esm/packages/vuu-utils/src/invariant.js +0 -11
  290. package/esm/packages/vuu-utils/src/invariant.js.map +0 -1
  291. package/esm/packages/vuu-utils/src/itemToString.js +0 -21
  292. package/esm/packages/vuu-utils/src/itemToString.js.map +0 -1
  293. package/esm/packages/vuu-utils/src/json-utils.js +0 -103
  294. package/esm/packages/vuu-utils/src/json-utils.js.map +0 -1
  295. package/esm/packages/vuu-utils/src/keyboard-utils.js +0 -16
  296. package/esm/packages/vuu-utils/src/keyboard-utils.js.map +0 -1
  297. package/esm/packages/vuu-utils/src/keyset.js +0 -70
  298. package/esm/packages/vuu-utils/src/keyset.js.map +0 -1
  299. package/esm/packages/vuu-utils/src/list-utils.js +0 -9
  300. package/esm/packages/vuu-utils/src/list-utils.js.map +0 -1
  301. package/esm/packages/vuu-utils/src/local-storage-utils.js +0 -30
  302. package/esm/packages/vuu-utils/src/local-storage-utils.js.map +0 -1
  303. package/esm/packages/vuu-utils/src/logging-utils.js +0 -61
  304. package/esm/packages/vuu-utils/src/logging-utils.js.map +0 -1
  305. package/esm/packages/vuu-utils/src/module-utils.js +0 -4
  306. package/esm/packages/vuu-utils/src/module-utils.js.map +0 -1
  307. package/esm/packages/vuu-utils/src/nanoid/index.js +0 -20
  308. package/esm/packages/vuu-utils/src/nanoid/index.js.map +0 -1
  309. package/esm/packages/vuu-utils/src/perf-utils.js +0 -32
  310. package/esm/packages/vuu-utils/src/perf-utils.js.map +0 -1
  311. package/esm/packages/vuu-utils/src/promise-utils.js +0 -40
  312. package/esm/packages/vuu-utils/src/promise-utils.js.map +0 -1
  313. package/esm/packages/vuu-utils/src/protocol-message-utils.js +0 -75
  314. package/esm/packages/vuu-utils/src/protocol-message-utils.js.map +0 -1
  315. package/esm/packages/vuu-utils/src/range-utils.js +0 -108
  316. package/esm/packages/vuu-utils/src/range-utils.js.map +0 -1
  317. package/esm/packages/vuu-utils/src/react-utils.js +0 -66
  318. package/esm/packages/vuu-utils/src/react-utils.js.map +0 -1
  319. package/esm/packages/vuu-utils/src/round-decimal.js +0 -127
  320. package/esm/packages/vuu-utils/src/round-decimal.js.map +0 -1
  321. package/esm/packages/vuu-utils/src/row-utils.js +0 -54
  322. package/esm/packages/vuu-utils/src/row-utils.js.map +0 -1
  323. package/esm/packages/vuu-utils/src/selection-utils.js +0 -31
  324. package/esm/packages/vuu-utils/src/selection-utils.js.map +0 -1
  325. package/esm/packages/vuu-utils/src/shell-layout-types.js +0 -11
  326. package/esm/packages/vuu-utils/src/shell-layout-types.js.map +0 -1
  327. package/esm/packages/vuu-utils/src/sort-utils.js +0 -73
  328. package/esm/packages/vuu-utils/src/sort-utils.js.map +0 -1
  329. package/esm/packages/vuu-utils/src/table-schema-utils.js +0 -11
  330. package/esm/packages/vuu-utils/src/table-schema-utils.js.map +0 -1
  331. package/esm/packages/vuu-utils/src/text-utils.js +0 -18
  332. package/esm/packages/vuu-utils/src/text-utils.js.map +0 -1
  333. package/esm/packages/vuu-utils/src/theme-utils.js +0 -34
  334. package/esm/packages/vuu-utils/src/theme-utils.js.map +0 -1
  335. package/esm/packages/vuu-utils/src/tree-utils.js +0 -108
  336. package/esm/packages/vuu-utils/src/tree-utils.js.map +0 -1
  337. package/esm/packages/vuu-utils/src/ts-utils.js +0 -8
  338. package/esm/packages/vuu-utils/src/ts-utils.js.map +0 -1
  339. package/esm/packages/vuu-utils/src/typeahead-utils.js +0 -4
  340. package/esm/packages/vuu-utils/src/typeahead-utils.js.map +0 -1
  341. package/esm/packages/vuu-utils/src/url-utils.js +0 -18
  342. package/esm/packages/vuu-utils/src/url-utils.js.map +0 -1
  343. package/esm/packages/vuu-utils/src/useId.js +0 -7
  344. package/esm/packages/vuu-utils/src/useId.js.map +0 -1
  345. package/esm/packages/vuu-utils/src/useLayoutEffectSkipFirst.js +0 -15
  346. package/esm/packages/vuu-utils/src/useLayoutEffectSkipFirst.js.map +0 -1
  347. package/esm/packages/vuu-utils/src/useResizeObserver.js +0 -130
  348. package/esm/packages/vuu-utils/src/useResizeObserver.js.map +0 -1
  349. package/esm/packages/vuu-utils/src/useStateRef.js +0 -21
  350. package/esm/packages/vuu-utils/src/useStateRef.js.map +0 -1
@@ -1,1057 +0,0 @@
1
- 'use strict';
2
-
3
- var arrayUtils = require('./array-utils.js');
4
- var htmlUtils = require('./html-utils.js');
5
-
6
- const SORT_ASC = "asc";
7
- const NO_HEADINGS = [];
8
- const DEFAULT_COL_WIDTH = 100;
9
- const DEFAULT_MAX_WIDTH = 250;
10
- const DEFAULT_MIN_WIDTH = 50;
11
- const AggregationType = {
12
- Average: 2,
13
- Count: 3,
14
- Distinct: 6,
15
- Sum: 1,
16
- High: 4,
17
- Low: 5
18
- };
19
- function mapSortCriteria(sortCriteria, columnMap, metadataOffset = 0) {
20
- return sortCriteria.map((s) => {
21
- if (typeof s === "string") {
22
- return [columnMap[s] + metadataOffset, "asc"];
23
- } else if (Array.isArray(s)) {
24
- const [columnName, sortDir] = s;
25
- return [columnMap[columnName] + metadataOffset, sortDir || SORT_ASC];
26
- } else {
27
- throw Error("columnUtils.mapSortCriteria invalid input");
28
- }
29
- });
30
- }
31
- const numericTypes = ["int", "long", "double"];
32
- const getDefaultAlignment = (serverDataType) => serverDataType === void 0 ? "left" : numericTypes.includes(serverDataType) ? "right" : "left";
33
- const getRuntimeColumnWidth = (col, runtimeColumns) => {
34
- const runtimeColumn = runtimeColumns.find(({ name }) => name === col.name);
35
- if (runtimeColumn) {
36
- return runtimeColumn.width;
37
- } else {
38
- return DEFAULT_COL_WIDTH;
39
- }
40
- };
41
- const applyRuntimeColumnWidthsToConfig = (tableConfig, columns) => {
42
- return {
43
- ...tableConfig,
44
- columns: columns.map((column) => ({
45
- ...column,
46
- width: column.width ?? getRuntimeColumnWidth(column, columns)
47
- })),
48
- columnLayout: "manual"
49
- };
50
- };
51
- const isValidColumnAlignment = (v) => v === "left" || v === "right";
52
- const isValidPinLocation = (v) => isValidColumnAlignment(v) || v === "floating" || v === "";
53
- const VUU_COLUMN_DATA_TYPES = [
54
- "long",
55
- "double",
56
- "int",
57
- "string",
58
- "char",
59
- "boolean",
60
- "scaleddecimal2",
61
- "scaleddecimal4",
62
- "scaleddecimal6",
63
- "scaleddecimal8",
64
- "epochtimestamp"
65
- ];
66
- const isVuuColumnDataType = (value) => VUU_COLUMN_DATA_TYPES.includes(value);
67
- const fromServerDataType = (serverDataType) => {
68
- switch (serverDataType) {
69
- case "double":
70
- case "int":
71
- case "long":
72
- return "number";
73
- case "boolean":
74
- return "boolean";
75
- default:
76
- return "string";
77
- }
78
- };
79
- const isTimestampColumn = ({ serverDataType }) => serverDataType === "epochtimestamp";
80
- const isNumericColumn = ({ serverDataType, type }) => {
81
- if (serverDataType === "int" || serverDataType === "long" || serverDataType === "double") {
82
- return true;
83
- }
84
- if (typeof type === "string") {
85
- return type === "number";
86
- }
87
- if (typeof type?.name === "string") {
88
- return type?.name === "number";
89
- }
90
- return false;
91
- };
92
- const isDateTimeDataType = (column) => (isTypeDescriptor(column.type) ? column.type.name : column.type) === "date/time";
93
- const isTimeDataType = (column) => (isTypeDescriptor(column.type) ? column.type.name : column.type) === "time";
94
- const isDateTimeDataValue = (column, serverDataType) => serverDataType === "epochtimestamp" || isTimestampColumn(column) || isDateTimeDataType(column);
95
- const isTimeDataValue = (column) => (isTypeDescriptor(column?.type) ? column.type.name : column?.type) === "time";
96
- const isPinned = (column) => typeof column.pin === "string";
97
- const hasHeadings = (column) => Array.isArray(column.heading) && column.heading.length > 0;
98
- const isResizing = (column) => column.resizing;
99
- const isTextColumn = ({ serverDataType }) => serverDataType === void 0 ? false : serverDataType === "char" || serverDataType === "string";
100
- const toColumnDescriptor = (name, serverDataType) => ({
101
- name,
102
- serverDataType
103
- });
104
- const isTypeDescriptor = (type) => typeof type !== "undefined" && typeof type !== "string";
105
- const EMPTY_COLUMN_MAP = {};
106
- const isColumnTypeRenderer = (renderer) => typeof renderer?.name !== "undefined";
107
- const hasCustomRenderer = (type) => isTypeDescriptor(type) && isColumnTypeRenderer(type.renderer);
108
- const isLookupRenderer = (renderer) => typeof renderer?.name !== "undefined" && "lookup" in renderer;
109
- const isValueListRenderer = (renderer) => typeof renderer?.name !== "undefined" && Array.isArray(renderer.values);
110
- const hasValidationRules = (type) => isTypeDescriptor(type) && Array.isArray(type.rules) && type.rules.length > 0;
111
- const isMappedValueTypeRenderer = (renderer) => renderer !== void 0 && typeof renderer?.map !== "undefined";
112
- function buildColumnMap(columns) {
113
- const start = metadataKeys.count;
114
- if (columns) {
115
- return columns.reduce((map, column, i) => {
116
- if (typeof column === "string") {
117
- map[column] = start + i;
118
- } else {
119
- map[column.name] = start + i;
120
- }
121
- return map;
122
- }, {});
123
- } else {
124
- return EMPTY_COLUMN_MAP;
125
- }
126
- }
127
- function projectUpdates(updates) {
128
- const results = [];
129
- const metadataOffset = metadataKeys.count - 2;
130
- for (let i = 0; i < updates.length; i += 3) {
131
- results[i] = updates[i] + metadataOffset;
132
- results[i + 1] = updates[i + 1];
133
- results[i + 2] = updates[i + 2];
134
- }
135
- return results;
136
- }
137
- const KEY = 6;
138
- const metadataKeys = {
139
- IDX: 0,
140
- RENDER_IDX: 1,
141
- IS_LEAF: 2,
142
- IS_EXPANDED: 3,
143
- DEPTH: 4,
144
- COUNT: 5,
145
- KEY,
146
- SELECTED: 7,
147
- TIMESTAMP: 8,
148
- IS_NEW: 9,
149
- count: 10,
150
- // TODO following only used in datamodel
151
- PARENT_IDX: "parent_idx",
152
- IDX_POINTER: "idx_pointer",
153
- FILTER_COUNT: "filter_count",
154
- NEXT_FILTER_IDX: "next_filter_idx"
155
- };
156
- const insertColumn = (columns, column) => {
157
- const { originalIdx } = column;
158
- if (typeof originalIdx === "number") {
159
- for (let i = 0; i < columns.length; i++) {
160
- const { originalIdx: colIdx = -1 } = columns[i];
161
- if (colIdx > originalIdx) {
162
- columns.splice(i, 0, column);
163
- return columns;
164
- }
165
- }
166
- }
167
- columns.push(column);
168
- return columns;
169
- };
170
- const flattenColumnGroup = (columns) => {
171
- if (columns[0]?.isGroup) {
172
- const [groupColumn, ...nonGroupedColumns] = columns;
173
- groupColumn.columns.forEach((groupColumn2) => {
174
- insertColumn(nonGroupedColumns, groupColumn2);
175
- });
176
- return nonGroupedColumns;
177
- } else {
178
- return columns;
179
- }
180
- };
181
- function extractGroupColumn({
182
- availableWidth,
183
- columns,
184
- groupBy,
185
- confirmed = true
186
- }) {
187
- if (groupBy && groupBy.length > 0) {
188
- const flattenedColumns = flattenColumnGroup(columns);
189
- const [groupedColumns, rest] = flattenedColumns.reduce(
190
- (result, column, i) => {
191
- const [g, r] = result;
192
- if (groupBy.includes(column.name)) {
193
- g.push({
194
- ...column,
195
- originalIdx: i
196
- });
197
- } else {
198
- r.push(column);
199
- }
200
- return result;
201
- },
202
- [[], []]
203
- );
204
- if (groupedColumns.length !== groupBy.length) {
205
- throw Error(
206
- `extractGroupColumn: no column definition found for all groupBy cols ${JSON.stringify(
207
- groupBy
208
- )} `
209
- );
210
- }
211
- const groupOnly = rest.length === 0;
212
- const groupCount = groupBy.length;
213
- const groupCols = groupBy.map((name, idx) => {
214
- const column = groupedColumns.find(
215
- (col) => col.name === name
216
- );
217
- return {
218
- ...column,
219
- groupLevel: groupCount - idx
220
- };
221
- });
222
- const width = groupOnly ? availableWidth : Math.min(
223
- availableWidth,
224
- groupCols.map((c) => c.width).reduce((a, b) => a + b) + 100
225
- );
226
- const groupCol = {
227
- ariaColIndex: 1,
228
- columns: groupCols,
229
- heading: ["group-col"],
230
- isGroup: true,
231
- groupConfirmed: confirmed,
232
- name: "group-col",
233
- width
234
- };
235
- const withAdjustedAriaIndex = [];
236
- let colIndex = 2;
237
- for (const column of rest) {
238
- withAdjustedAriaIndex.push({
239
- ...column,
240
- ariaColIndex: column.hidden ? -1 : colIndex
241
- });
242
- if (!column.hidden) {
243
- colIndex += 1;
244
- }
245
- }
246
- return [groupCol, withAdjustedAriaIndex];
247
- }
248
- return [null, flattenColumnGroup(columns)];
249
- }
250
- const isGroupColumn = (column) => column.isGroup === true;
251
- const checkConfirmationPending = (previousConfig) => {
252
- if (previousConfig) {
253
- const [column] = previousConfig.columns;
254
- if (column !== void 0 && isGroupColumn(column)) {
255
- return column.groupConfirmed;
256
- }
257
- }
258
- };
259
- const isJsonAttribute = (value) => typeof value === "string" && (value.endsWith("{") || value.endsWith("["));
260
- const isJsonGroup = (column, dataRow) => column.type?.name === "json" && isJsonAttribute(dataRow[column.name]);
261
- const isJsonColumn = (column) => column.type?.name === "json";
262
- const sortPinnedColumns = (columns, selectionBookendWidth = 0) => {
263
- const leftPinnedColumns = [];
264
- const rightPinnedColumns = [];
265
- const restColumns = [];
266
- let pinnedWidthLeft = selectionBookendWidth;
267
- for (const column of columns) {
268
- switch (column.pin) {
269
- case "left":
270
- {
271
- leftPinnedColumns.push({
272
- ...column,
273
- pinnedWidth: 0,
274
- pinnedOffset: pinnedWidthLeft
275
- });
276
- pinnedWidthLeft += column.width;
277
- }
278
- break;
279
- // store right pinned columns initially in reverse order
280
- case "right":
281
- rightPinnedColumns.unshift(column);
282
- break;
283
- default:
284
- restColumns.push(column);
285
- }
286
- }
287
- if (leftPinnedColumns.length) {
288
- leftPinnedColumns.push({
289
- ...leftPinnedColumns.pop(),
290
- pinnedWidth: pinnedWidthLeft
291
- });
292
- }
293
- let allColumns = leftPinnedColumns.length ? leftPinnedColumns.concat(restColumns) : restColumns;
294
- if (rightPinnedColumns.length) {
295
- const measuredRightPinnedColumns = [];
296
- let pinnedWidthRight = selectionBookendWidth;
297
- for (const column of rightPinnedColumns) {
298
- measuredRightPinnedColumns.unshift({
299
- ...column,
300
- pinnedOffset: pinnedWidthRight
301
- });
302
- pinnedWidthRight += column.width;
303
- }
304
- measuredRightPinnedColumns[rightPinnedColumns.length - 1].pinnedWidth = pinnedWidthRight;
305
- allColumns = allColumns.concat(measuredRightPinnedColumns);
306
- }
307
- if (leftPinnedColumns.length || rightPinnedColumns.length) {
308
- for (let i = 0; i < allColumns.length; i++) {
309
- if (allColumns[i].ariaColIndex !== i + 1) {
310
- allColumns[i] = {
311
- ...allColumns[i],
312
- ariaColIndex: i + 1
313
- };
314
- }
315
- }
316
- }
317
- return allColumns;
318
- };
319
- const measurePinnedColumns = (columns, selectionEndSize) => {
320
- let pinnedWidthLeft = 0;
321
- let pinnedWidthRight = 0;
322
- let unpinnedWidth = 0;
323
- for (const column of columns) {
324
- const { hidden, pin, width } = column;
325
- const visibleWidth = hidden ? 0 : width;
326
- if (pin === "left") {
327
- pinnedWidthLeft += visibleWidth;
328
- } else if (pin === "right") {
329
- pinnedWidthRight += visibleWidth;
330
- } else {
331
- unpinnedWidth += visibleWidth;
332
- }
333
- }
334
- return {
335
- pinnedWidthLeft: pinnedWidthLeft + selectionEndSize,
336
- pinnedWidthRight: pinnedWidthRight + selectionEndSize,
337
- unpinnedWidth
338
- };
339
- };
340
- const getTableHeadings = (columns) => {
341
- if (columns.some(hasHeadings)) {
342
- const maxHeadingDepth = columns.reduce(
343
- (max, { heading: heading2 }) => Math.max(max, heading2?.length ?? 0),
344
- 0
345
- );
346
- let heading = void 0;
347
- const tableHeadings = [];
348
- let tableHeadingsRow;
349
- for (let level = 0; level < maxHeadingDepth; level++) {
350
- tableHeadingsRow = [];
351
- columns.forEach(({ heading: columnHeading = NO_HEADINGS, width }) => {
352
- const label = columnHeading[level] ?? "";
353
- if (heading && heading.label === label) {
354
- heading.width += width;
355
- } else {
356
- heading = { label, width };
357
- tableHeadingsRow.push(heading);
358
- }
359
- });
360
- tableHeadings.push(tableHeadingsRow);
361
- }
362
- return tableHeadings;
363
- }
364
- return NO_HEADINGS;
365
- };
366
- const getColumnStyle = ({
367
- pin,
368
- pinnedOffset = 0,
369
- pinnedWidth = 0,
370
- width
371
- }) => {
372
- if (pinnedWidth && pin === "left") {
373
- return {
374
- left: pinnedOffset,
375
- width,
376
- "--pin-width": `${pinnedWidth - 3}px`
377
- };
378
- } else if (pin === "left") {
379
- return {
380
- left: pinnedOffset,
381
- width
382
- };
383
- } else if (pinnedWidth && pin === "right") {
384
- return {
385
- right: pinnedOffset,
386
- width,
387
- "--pin-width": `${pinnedWidth - 5}px`
388
- };
389
- } else if (pin === "right") {
390
- return {
391
- right: pinnedOffset,
392
- width
393
- };
394
- } else {
395
- return { width };
396
- }
397
- };
398
- const getPinnedWidthFromElement = (cell) => {
399
- const cellStyle = getComputedStyle(cell);
400
- return parseInt(cellStyle.getPropertyValue("--pin-width"));
401
- };
402
- const getAllCellsInColumn = (container, colIndex) => {
403
- const byColIndex = `[aria-colindex='${colIndex}']`;
404
- return Array.from(
405
- container?.querySelectorAll(
406
- `.vuuTableCell${byColIndex},.vuuTableHeaderCell${byColIndex},.vuuTableGroupHeaderCell${byColIndex}`
407
- ) ?? []
408
- );
409
- };
410
- const getAriaRowIndex = (rowElement) => {
411
- const rowIndex = rowElement?.ariaRowIndex;
412
- if (rowIndex != null) {
413
- const index = parseInt(rowIndex);
414
- if (!isNaN(index)) {
415
- return index;
416
- }
417
- }
418
- return -1;
419
- };
420
- const getAriaColIndex = (cellElement) => {
421
- const colIndex = cellElement?.ariaColIndex;
422
- if (colIndex != null) {
423
- const index = parseInt(colIndex);
424
- if (!isNaN(index)) {
425
- return index;
426
- }
427
- }
428
- return -1;
429
- };
430
- const getPinDetails = (cell, className) => {
431
- if (cell.classList.contains("vuuEndPin")) {
432
- return {
433
- cell,
434
- pinnedWidth: getPinnedWidthFromElement(cell)
435
- };
436
- } else {
437
- const endPin = cell.parentElement?.querySelector(
438
- `.${className}.vuuEndPin`
439
- );
440
- if (endPin) {
441
- let pinnedCells = void 0;
442
- if (className === "vuuPinLeft") {
443
- const container = htmlUtils.queryClosest(
444
- cell,
445
- ".vuuTable-table",
446
- true
447
- );
448
- const startIndex = getAriaColIndex(cell);
449
- const endIndex = getAriaColIndex(endPin);
450
- pinnedCells = [];
451
- for (let colIndex = startIndex + 1; colIndex <= endIndex; colIndex++) {
452
- pinnedCells = pinnedCells?.concat(
453
- getAllCellsInColumn(container, colIndex)
454
- );
455
- }
456
- }
457
- console.log({ pinnedCells });
458
- return {
459
- cell: endPin,
460
- pinnedCells,
461
- pinnedWidth: getPinnedWidthFromElement(endPin)
462
- };
463
- } else {
464
- throw Error(
465
- "[column-utils] getPinDetailsFromElement, no endPin on multi column pin"
466
- );
467
- }
468
- }
469
- };
470
- const getPinStateFromElement = (cell) => {
471
- if (cell.classList.contains("vuuPinLeft")) {
472
- return getPinDetails(cell, "vuuPinLeft");
473
- } else if (cell.classList.contains("vuuPinRight")) {
474
- return getPinDetails(cell, "vuuPinRight");
475
- }
476
- };
477
- const setAggregations = (aggregations, column, aggType) => {
478
- return aggregations.filter((agg) => agg.column !== column.name).concat({ column: column.name, aggType });
479
- };
480
- const applyGroupByToColumns = (props) => {
481
- if (props.groupBy.length) {
482
- const [groupColumn, nonGroupedColumns] = extractGroupColumn(props);
483
- if (groupColumn) {
484
- return [groupColumn].concat(nonGroupedColumns);
485
- }
486
- } else if (props.columns[0]?.isGroup) {
487
- return flattenColumnGroup(props.columns);
488
- }
489
- return props.columns;
490
- };
491
- const applySortToColumns = (columns, sort) => columns.map((column) => {
492
- const sorted = getSortType(column, sort);
493
- if (sorted !== void 0) {
494
- return {
495
- ...column,
496
- sorted
497
- };
498
- } else if (column.sorted) {
499
- return {
500
- ...column,
501
- sorted: void 0
502
- };
503
- } else {
504
- return column;
505
- }
506
- });
507
- const removeSort = (columns) => columns.map((col) => col.sorted ? { ...col, sorted: void 0 } : col);
508
- const existingSort = (columns) => columns.some((col) => col.sorted);
509
- const getSortType = (column, { sortDefs }) => {
510
- const sortDef = sortDefs.find((sortCol) => sortCol.column === column.name);
511
- if (sortDef) {
512
- return sortDefs.length > 1 ? (sortDefs.indexOf(sortDef) + 1) * (sortDef.sortType === "A" ? 1 : -1) : sortDef.sortType;
513
- }
514
- };
515
- const getColumnName = (name) => {
516
- const pos = name.indexOf(":");
517
- if (pos === -1) {
518
- return name;
519
- } else {
520
- return name.slice(0, pos);
521
- }
522
- };
523
- const getColumnLabel = (column) => {
524
- if (column.label) {
525
- return column.label;
526
- } else if (isCalculatedColumn(column.name)) {
527
- const { name } = getCalculatedColumnDetails(column);
528
- return name ?? column.name;
529
- } else {
530
- return column.name;
531
- }
532
- };
533
- const findColumn = (columns, columnName) => {
534
- const column = columns.find((col) => col.name === columnName);
535
- if (column) {
536
- return column;
537
- } else {
538
- const groupColumn = columns.find(
539
- (col) => col.isGroup
540
- );
541
- if (groupColumn) {
542
- return findColumn(groupColumn.columns, columnName);
543
- }
544
- }
545
- };
546
- function updateColumn(columns, column, options) {
547
- const targetColumn = typeof column === "string" ? columns.find((col) => col.name === column) : column;
548
- if (targetColumn) {
549
- const replacementColumn = options ? { ...targetColumn, ...options } : targetColumn;
550
- return columns.map(
551
- (col) => col.name === replacementColumn.name ? replacementColumn : col
552
- );
553
- } else {
554
- throw Error("column-utils.replaceColun, column not found");
555
- }
556
- }
557
- const toDataSourceColumns = (column) => column.name;
558
- const dataSourceRowToDataRowDto = (row, columnMap) => {
559
- return Object.entries(columnMap).reduce(
560
- (map, [colName, key]) => {
561
- map[colName] = row[key];
562
- return map;
563
- },
564
- {}
565
- );
566
- };
567
- const isDataLoading = (columns) => {
568
- return isGroupColumn(columns[0]) && columns[0].groupConfirmed === false;
569
- };
570
- const getColumnsInViewport = (columns, vpStart, vpEnd) => {
571
- const visibleColumns = [];
572
- let preSpan = 0;
573
- let rightPinnedOnly = false;
574
- for (let columnOffset = 0, i = 0; i < columns.length; i++) {
575
- const column = columns[i];
576
- if (column.hidden) {
577
- continue;
578
- } else if (column.pin === "right") {
579
- visibleColumns.push(column);
580
- } else if (rightPinnedOnly) {
581
- continue;
582
- } else if (columnOffset + column.width < vpStart) {
583
- if (column.pin === "left") {
584
- visibleColumns.push(column);
585
- } else if (columnOffset + column.width + columns[i + 1]?.width > vpStart) {
586
- visibleColumns.push(column);
587
- } else {
588
- preSpan += column.width;
589
- }
590
- } else if (columnOffset > vpEnd) {
591
- rightPinnedOnly = true;
592
- } else {
593
- visibleColumns.push(column);
594
- }
595
- columnOffset += column.width;
596
- }
597
- return [visibleColumns, preSpan];
598
- };
599
- const isNotHidden = (column) => column.hidden !== true;
600
- const visibleColumnAtIndex = (columns, index) => {
601
- if (columns.every(isNotHidden)) {
602
- return columns[index];
603
- } else {
604
- return columns.filter(isNotHidden).at(index);
605
- }
606
- };
607
- const getGroupIcon = (columns, dataRow) => {
608
- const { depth, isLeaf } = dataRow;
609
- if (isLeaf || depth > columns.length) {
610
- return void 0;
611
- } else if (depth === 0) {
612
- return void 0;
613
- } else {
614
- const { getIcon } = columns[depth - 1];
615
- return getIcon?.(dataRow);
616
- }
617
- };
618
- const getGroupValue = (columns, dataRow) => {
619
- const { depth, isLeaf } = dataRow;
620
- if (isLeaf || depth > columns.length) {
621
- return null;
622
- } else if (depth === 0) {
623
- return "$root";
624
- } else {
625
- const { name, valueFormatter } = columns[depth - 1];
626
- const value = valueFormatter(dataRow[name]);
627
- return value;
628
- }
629
- };
630
- const getDefaultColumnType = (serverDataType) => {
631
- switch (serverDataType) {
632
- case "int":
633
- case "long":
634
- case "double":
635
- return "number";
636
- case "scaleddecimal2":
637
- case "scaleddecimal4":
638
- case "scaleddecimal6":
639
- case "scaleddecimal8":
640
- return "scaleddecimal";
641
- case "boolean":
642
- return "boolean";
643
- case "epochtimestamp":
644
- return "date/time";
645
- default:
646
- return "string";
647
- }
648
- };
649
- const updateColumnFormatting = (column, formatting) => {
650
- const { serverDataType, type = getDefaultColumnType(serverDataType) } = column;
651
- if (isTypeDescriptor(type)) {
652
- return { ...column, type: { ...type, formatting } };
653
- } else {
654
- return { ...column, type: { name: type, formatting } };
655
- }
656
- };
657
- function updateColumnType(column, type) {
658
- return isTypeDescriptor(column.type) ? { ...column, type: { ...column.type, name: type } } : { ...column, type };
659
- }
660
- const updateColumnRenderProps = (column, renderer) => {
661
- const { serverDataType, type = getDefaultColumnType(serverDataType) } = column;
662
- if (isTypeDescriptor(type)) {
663
- return {
664
- ...column,
665
- type: {
666
- ...type,
667
- // TODO do we need to preserve any existing attributes from renderer ?
668
- renderer
669
- }
670
- };
671
- } else {
672
- return { ...column, type: { name: type, renderer } };
673
- }
674
- };
675
- const NO_TYPE_SETTINGS = {};
676
- const getTypeFormattingFromColumn = (column) => {
677
- if (isTypeDescriptor(column.type)) {
678
- return column.type.formatting ?? NO_TYPE_SETTINGS;
679
- } else {
680
- return NO_TYPE_SETTINGS;
681
- }
682
- };
683
- const assertAllColumnsAreIncludedInSubscription = (columns, columnNames) => {
684
- const unsubscribedColumns = [];
685
- for (const column of columns) {
686
- if (column.source !== "client" && !columnNames?.includes(column.name)) {
687
- unsubscribedColumns.push(column.name);
688
- }
689
- }
690
- if (unsubscribedColumns.length > 0) {
691
- throw Error(
692
- `[column-utils] assertAllColumnsAreIncludedInSubscription columns not included in subscription: ${unsubscribedColumns.join(", ")}`
693
- );
694
- }
695
- };
696
- const subscribedOnly = (columnNames) => (column) => column.source === "client" || columnNames?.includes(column.name);
697
- const addColumnToSubscribedColumns = (subscribedColumns, availableColumns, columnName) => {
698
- const byColName = (n = columnName) => (column) => column.name === n;
699
- if (subscribedColumns.findIndex(byColName()) !== -1) {
700
- throw Error(
701
- `[column-utils], addColumnToSubscribedColumns column ${columnName} is already subscribed`
702
- );
703
- }
704
- const indexOfAvailableColumn = availableColumns.findIndex(byColName());
705
- if (indexOfAvailableColumn === -1) {
706
- throw Error(
707
- `[column-utils] addColumnToSubscribedColumns column ${columnName} is not available`
708
- );
709
- }
710
- const newColumn = {
711
- ...availableColumns[indexOfAvailableColumn]
712
- };
713
- return subscribedColumns.concat(newColumn);
714
- };
715
- function getServerDataType(column, throwIfUndefined = false) {
716
- if (isCalculatedColumn(column.name)) {
717
- const { serverDataType } = getCalculatedColumnDetails(column);
718
- if (isVuuColumnDataType(serverDataType)) {
719
- return serverDataType;
720
- } else if (throwIfUndefined) {
721
- throw Error(
722
- `[column-utils] getServerDataType, calculated column does not have valid type ${column.name}`
723
- );
724
- }
725
- } else if (isVuuColumnDataType(column.serverDataType)) {
726
- return column.serverDataType;
727
- } else if (throwIfUndefined) {
728
- throw Error(
729
- `[column-utils] getServerDataType, columns does not have valid type ${column.serverDataType}`
730
- );
731
- }
732
- }
733
- const CalculatedColumnPattern = /.*:.*:.*/;
734
- const isCalculatedColumn = (columnName) => columnName !== void 0 && CalculatedColumnPattern.test(columnName);
735
- const getCalculatedColumnDetails = (column) => {
736
- const columnName = typeof column === "string" ? column : column.name;
737
- if (isCalculatedColumn(columnName)) {
738
- const [name, serverDataType, expression] = columnName.split(/:=?/);
739
- if (serverDataType && !isVuuColumnDataType(serverDataType)) {
740
- throw Error(
741
- `column-utils, getCalculatedColumnDetails ${serverDataType} is not valid type for column ${columnName}`
742
- );
743
- }
744
- return {
745
- name: name ?? "",
746
- expression: expression ?? "",
747
- serverDataType: isVuuColumnDataType(serverDataType) ? serverDataType : void 0
748
- };
749
- } else {
750
- throw Error(`column.name is nor a calculated column`);
751
- }
752
- };
753
- const setCalculatedColumnName = (column, name) => {
754
- const [, type, expression] = column.name.split(":");
755
- return {
756
- ...column,
757
- name: `${name}:${type}:${expression}`
758
- };
759
- };
760
- const setCalculatedColumnType = (column, serverDataType) => {
761
- const [name, , expression] = column.name.split(":");
762
- return {
763
- ...column,
764
- name: `${name}:${serverDataType}:${expression}`,
765
- serverDataType
766
- };
767
- };
768
- const setCalculatedColumnExpression = (column, expression) => {
769
- const [name, type] = column.name.split(":");
770
- return {
771
- ...column,
772
- name: `${name}:${type}:=${expression}`
773
- };
774
- };
775
- const moveColumnTo = (columns, column, newIndex) => {
776
- const index = columns.findIndex((col) => col.name === column.name);
777
- return arrayUtils.moveItem(columns, index, newIndex);
778
- };
779
- function replaceColumn(columns, column) {
780
- return columns.map((col) => col.name === column.name ? column : col);
781
- }
782
- const vuuTimestampColumns = ["vuuCreatedTimestamp", "vuuUpdatedTimestamp"];
783
- const notVuuTimestamps = (column) => !vuuTimestampColumns.includes(column.name);
784
- const applyDefaultColumnConfig = ({ columns: columnsProp, table }, getDefaultColumnConfig, includeVuuTimestampColumns = false) => {
785
- if (typeof getDefaultColumnConfig === "function") {
786
- const columns = includeVuuTimestampColumns ? columnsProp : columnsProp.filter(notVuuTimestamps);
787
- return columns.map((column) => {
788
- const config = getDefaultColumnConfig(table.table, column.name);
789
- if (config) {
790
- return {
791
- ...column,
792
- ...config
793
- };
794
- } else {
795
- return column;
796
- }
797
- });
798
- } else {
799
- return columnsProp;
800
- }
801
- };
802
- const measureColumns = (columns, defaultMaxWidth, defaultMinWidth) => columns.reduce(
803
- (aggregated, column) => {
804
- if (column.hidden !== true) {
805
- aggregated.totalMinWidth += column.minWidth ?? defaultMinWidth;
806
- aggregated.totalMaxWidth += column.maxWidth ?? defaultMaxWidth;
807
- aggregated.totalWidth += column.width;
808
- aggregated.flexCount += column.flex ?? 0;
809
- }
810
- return aggregated;
811
- },
812
- { totalMinWidth: 0, totalMaxWidth: 0, totalWidth: 0, flexCount: 0 }
813
- );
814
- function applyWidthToColumns(columns, {
815
- availableWidth = 0,
816
- columnLayout = "static",
817
- defaultWidth = DEFAULT_COL_WIDTH,
818
- defaultMinWidth = DEFAULT_MIN_WIDTH,
819
- defaultMaxWidth = DEFAULT_MAX_WIDTH
820
- }) {
821
- if (columnLayout === "fit") {
822
- const { totalMinWidth, totalMaxWidth, totalWidth, flexCount } = measureColumns(columns, defaultMaxWidth, defaultMinWidth);
823
- if (totalMaxWidth < availableWidth) {
824
- return assignMaxWidthToAll(columns, defaultMaxWidth);
825
- } else if (totalMinWidth > availableWidth) {
826
- return columns;
827
- } else if (totalWidth > availableWidth) {
828
- return shrinkColumnsToFitAvailableSpace(
829
- columns,
830
- availableWidth,
831
- totalWidth,
832
- defaultMinWidth,
833
- defaultWidth,
834
- flexCount
835
- );
836
- } else if (totalWidth < availableWidth) {
837
- return stretchColumnsToFillAvailableSpace(
838
- columns,
839
- availableWidth,
840
- totalWidth,
841
- defaultMaxWidth,
842
- defaultWidth
843
- );
844
- }
845
- }
846
- return columns;
847
- }
848
- const assignMaxWidthToAll = (columns, defaultMaxWidth) => {
849
- return columns.map((column) => {
850
- const { maxWidth = defaultMaxWidth } = column;
851
- if (column.width === maxWidth) {
852
- return column;
853
- } else {
854
- return {
855
- ...column,
856
- width: maxWidth
857
- };
858
- }
859
- });
860
- };
861
- const shrinkColumnsToFitAvailableSpace = (columns, availableWidth, totalWidth, defaultMinWidth, defaultWidth, flexCount) => {
862
- const excessWidth = totalWidth - availableWidth;
863
- const inFlexMode = flexCount > 0;
864
- let excessWidthPerColumn = excessWidth / (flexCount || columns.length);
865
- let columnsNotYetAtMinWidth = columns.length;
866
- let unassignedExcess = 0;
867
- let newColumns = columns.map((column) => {
868
- const {
869
- minWidth = defaultMinWidth,
870
- width = defaultWidth,
871
- flex = 0
872
- } = column;
873
- if (inFlexMode && flex === 0) {
874
- return column;
875
- }
876
- const adjustedWidth = width - excessWidthPerColumn;
877
- if (adjustedWidth < minWidth) {
878
- columnsNotYetAtMinWidth -= 1;
879
- unassignedExcess += minWidth - adjustedWidth;
880
- return { ...column, width: minWidth };
881
- } else {
882
- return { ...column, width: adjustedWidth };
883
- }
884
- });
885
- if (unassignedExcess === 0) {
886
- return newColumns;
887
- } else {
888
- excessWidthPerColumn = unassignedExcess / columnsNotYetAtMinWidth;
889
- newColumns = newColumns.map((column) => {
890
- const adjustedWidth = column.width - excessWidthPerColumn;
891
- if (column.width !== column.minWidth) {
892
- return { ...column, width: adjustedWidth };
893
- } else {
894
- return column;
895
- }
896
- });
897
- return newColumns;
898
- }
899
- };
900
- const hasFlex = ({ flex }) => typeof flex === "number";
901
- const stretchColumnsToFillAvailableSpace = (columns, availableWidth, totalWidth, defaultMaxWidth, defaultWidth) => {
902
- let freeSpaceToBeFilled = availableWidth - totalWidth;
903
- let adjustedColumns = columns;
904
- const canGrow = ({
905
- width = defaultWidth,
906
- maxWidth = defaultMaxWidth
907
- }) => width < maxWidth;
908
- while (freeSpaceToBeFilled > 0) {
909
- const flexCols = adjustedColumns.filter(
910
- (col) => hasFlex(col) && canGrow(col)
911
- );
912
- const columnsNotYetAtMaxWidth = flexCols.length || adjustedColumns.filter(canGrow).length;
913
- const additionalWidthPerColumn = Math.ceil(
914
- freeSpaceToBeFilled / columnsNotYetAtMaxWidth
915
- );
916
- adjustedColumns = columns.map((column) => {
917
- const {
918
- maxWidth = defaultMaxWidth,
919
- width = defaultWidth,
920
- flex = 0
921
- } = column;
922
- if (flexCols.length > 0 && flex === 0) {
923
- return column;
924
- }
925
- const adjustmentAmount = Math.min(
926
- additionalWidthPerColumn,
927
- freeSpaceToBeFilled
928
- );
929
- const adjustedWidth = width + adjustmentAmount;
930
- if (adjustedWidth > maxWidth) {
931
- freeSpaceToBeFilled -= adjustedWidth - maxWidth;
932
- return { ...column, width: maxWidth };
933
- } else {
934
- freeSpaceToBeFilled -= adjustmentAmount;
935
- return { ...column, width: adjustedWidth };
936
- }
937
- });
938
- }
939
- return adjustedColumns;
940
- };
941
- const dataAndColumnUnchanged = (p, p1) => p.column === p1.column && p.column.valueFormatter(p.dataRow[p.column.name]) === p1.column.valueFormatter(p1.dataRow[p1.column.name]);
942
- const dataColumnAndKeyUnchanged = (p, p1) => p.column === p1.column && p.dataRow.key === p1.dataRow.key && p.column.valueFormatter(p.dataRow[p.column.name]) === p1.column.valueFormatter(p1.dataRow[p1.column.name]);
943
- const toColumnName = (column) => column.name;
944
- const isStringColumn = (column) => column.serverDataType === "string";
945
- const reorderColumnItems = (columnItems, orderedNames) => {
946
- const columns = [];
947
- let previousName = "";
948
- for (const name of orderedNames) {
949
- if (previousName !== name) {
950
- const columnItem = columnItems.find((c) => c.name === name);
951
- if (columnItem) {
952
- columns.push(columnItem);
953
- }
954
- previousName = name;
955
- }
956
- }
957
- return columns;
958
- };
959
- const columnByAriaIndex = (columns, ariaColIndex) => {
960
- const column = columns[ariaColIndex - 1];
961
- if (column && column.ariaColIndex === ariaColIndex) {
962
- return column;
963
- } else if (column && column.ariaColIndex < ariaColIndex) {
964
- if (columns[ariaColIndex]?.ariaColIndex === ariaColIndex) {
965
- return columns[ariaColIndex];
966
- }
967
- }
968
- throw Error(`no column with aria-colIndex ${ariaColIndex}`);
969
- };
970
-
971
- exports.AggregationType = AggregationType;
972
- exports.addColumnToSubscribedColumns = addColumnToSubscribedColumns;
973
- exports.applyDefaultColumnConfig = applyDefaultColumnConfig;
974
- exports.applyGroupByToColumns = applyGroupByToColumns;
975
- exports.applyRuntimeColumnWidthsToConfig = applyRuntimeColumnWidthsToConfig;
976
- exports.applySortToColumns = applySortToColumns;
977
- exports.applyWidthToColumns = applyWidthToColumns;
978
- exports.assertAllColumnsAreIncludedInSubscription = assertAllColumnsAreIncludedInSubscription;
979
- exports.buildColumnMap = buildColumnMap;
980
- exports.checkConfirmationPending = checkConfirmationPending;
981
- exports.columnByAriaIndex = columnByAriaIndex;
982
- exports.dataAndColumnUnchanged = dataAndColumnUnchanged;
983
- exports.dataColumnAndKeyUnchanged = dataColumnAndKeyUnchanged;
984
- exports.dataSourceRowToDataRowDto = dataSourceRowToDataRowDto;
985
- exports.existingSort = existingSort;
986
- exports.extractGroupColumn = extractGroupColumn;
987
- exports.findColumn = findColumn;
988
- exports.flattenColumnGroup = flattenColumnGroup;
989
- exports.fromServerDataType = fromServerDataType;
990
- exports.getAllCellsInColumn = getAllCellsInColumn;
991
- exports.getAriaColIndex = getAriaColIndex;
992
- exports.getAriaRowIndex = getAriaRowIndex;
993
- exports.getCalculatedColumnDetails = getCalculatedColumnDetails;
994
- exports.getColumnLabel = getColumnLabel;
995
- exports.getColumnName = getColumnName;
996
- exports.getColumnStyle = getColumnStyle;
997
- exports.getColumnsInViewport = getColumnsInViewport;
998
- exports.getDefaultAlignment = getDefaultAlignment;
999
- exports.getDefaultColumnType = getDefaultColumnType;
1000
- exports.getGroupIcon = getGroupIcon;
1001
- exports.getGroupValue = getGroupValue;
1002
- exports.getPinStateFromElement = getPinStateFromElement;
1003
- exports.getRuntimeColumnWidth = getRuntimeColumnWidth;
1004
- exports.getServerDataType = getServerDataType;
1005
- exports.getTableHeadings = getTableHeadings;
1006
- exports.getTypeFormattingFromColumn = getTypeFormattingFromColumn;
1007
- exports.hasCustomRenderer = hasCustomRenderer;
1008
- exports.hasHeadings = hasHeadings;
1009
- exports.hasValidationRules = hasValidationRules;
1010
- exports.isCalculatedColumn = isCalculatedColumn;
1011
- exports.isColumnTypeRenderer = isColumnTypeRenderer;
1012
- exports.isDataLoading = isDataLoading;
1013
- exports.isDateTimeDataType = isDateTimeDataType;
1014
- exports.isDateTimeDataValue = isDateTimeDataValue;
1015
- exports.isGroupColumn = isGroupColumn;
1016
- exports.isJsonAttribute = isJsonAttribute;
1017
- exports.isJsonColumn = isJsonColumn;
1018
- exports.isJsonGroup = isJsonGroup;
1019
- exports.isLookupRenderer = isLookupRenderer;
1020
- exports.isMappedValueTypeRenderer = isMappedValueTypeRenderer;
1021
- exports.isNotHidden = isNotHidden;
1022
- exports.isNumericColumn = isNumericColumn;
1023
- exports.isPinned = isPinned;
1024
- exports.isResizing = isResizing;
1025
- exports.isStringColumn = isStringColumn;
1026
- exports.isTextColumn = isTextColumn;
1027
- exports.isTimeDataType = isTimeDataType;
1028
- exports.isTimeDataValue = isTimeDataValue;
1029
- exports.isTimestampColumn = isTimestampColumn;
1030
- exports.isTypeDescriptor = isTypeDescriptor;
1031
- exports.isValidColumnAlignment = isValidColumnAlignment;
1032
- exports.isValidPinLocation = isValidPinLocation;
1033
- exports.isValueListRenderer = isValueListRenderer;
1034
- exports.isVuuColumnDataType = isVuuColumnDataType;
1035
- exports.mapSortCriteria = mapSortCriteria;
1036
- exports.measurePinnedColumns = measurePinnedColumns;
1037
- exports.metadataKeys = metadataKeys;
1038
- exports.moveColumnTo = moveColumnTo;
1039
- exports.projectUpdates = projectUpdates;
1040
- exports.removeSort = removeSort;
1041
- exports.reorderColumnItems = reorderColumnItems;
1042
- exports.replaceColumn = replaceColumn;
1043
- exports.setAggregations = setAggregations;
1044
- exports.setCalculatedColumnExpression = setCalculatedColumnExpression;
1045
- exports.setCalculatedColumnName = setCalculatedColumnName;
1046
- exports.setCalculatedColumnType = setCalculatedColumnType;
1047
- exports.sortPinnedColumns = sortPinnedColumns;
1048
- exports.subscribedOnly = subscribedOnly;
1049
- exports.toColumnDescriptor = toColumnDescriptor;
1050
- exports.toColumnName = toColumnName;
1051
- exports.toDataSourceColumns = toDataSourceColumns;
1052
- exports.updateColumn = updateColumn;
1053
- exports.updateColumnFormatting = updateColumnFormatting;
1054
- exports.updateColumnRenderProps = updateColumnRenderProps;
1055
- exports.updateColumnType = updateColumnType;
1056
- exports.visibleColumnAtIndex = visibleColumnAtIndex;
1057
- //# sourceMappingURL=column-utils.js.map