@vuu-ui/vuu-utils 3.0.0 → 3.1.0-beta.2

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 (408) hide show
  1. package/package.json +16 -12
  2. package/src/Clock.js +43 -0
  3. package/src/PageVisibilityObserver.js +42 -0
  4. package/src/ScaledDecimal.js +32 -0
  5. package/src/ShellContext.js +5 -0
  6. package/src/ThemeProvider.js +56 -0
  7. package/src/array-utils.js +61 -0
  8. package/src/box-utils.js +51 -0
  9. package/src/broadcast-channel.js +0 -0
  10. package/src/column-utils.js +787 -0
  11. package/src/common-types.js +11 -0
  12. package/src/component-registry.js +83 -0
  13. package/src/context-definitions/DataContext.js +15 -0
  14. package/src/context-definitions/DataProvider.js +13 -0
  15. package/src/context-definitions/DataSourceProvider.js +18 -0
  16. package/src/context-definitions/WorkspaceContext.js +14 -0
  17. package/src/cookie-utils.js +15 -0
  18. package/src/css-utils.js +5 -0
  19. package/src/data-utils.js +66 -0
  20. package/src/datasource/BaseDataSource.js +233 -0
  21. package/src/datasource/datasource-action-utils.js +6 -0
  22. package/src/datasource/datasource-filter-utils.js +27 -0
  23. package/src/datasource/datasource-utils.js +148 -0
  24. package/src/date/date-utils.js +80 -0
  25. package/src/date/dateTimePattern.js +17 -0
  26. package/src/date/formatter.js +101 -0
  27. package/src/date/index.js +4 -0
  28. package/src/date/types.js +27 -0
  29. package/src/debug-utils.js +25 -0
  30. package/src/edit-utils.js +2 -0
  31. package/{esm/packages/vuu-utils/src → src}/errors.js +0 -2
  32. package/src/event-emitter.js +78 -0
  33. package/src/feature-utils.js +86 -0
  34. package/src/filters/filter-utils.js +136 -0
  35. package/src/filters/filterAsQuery.js +70 -0
  36. package/src/filters/index.js +2 -0
  37. package/src/form-utils.js +71 -0
  38. package/src/formatting-utils.js +58 -0
  39. package/src/getUniqueId.js +2 -0
  40. package/src/group-utils.js +16 -0
  41. package/src/html-utils.js +108 -0
  42. package/src/index.js +74 -0
  43. package/src/input-utils.js +3 -0
  44. package/src/invariant.js +9 -0
  45. package/src/itemToString.js +9 -0
  46. package/src/json-types.js +0 -0
  47. package/src/json-utils.js +108 -0
  48. package/{esm/packages/vuu-utils/src → src}/keyboard-utils.js +1 -3
  49. package/src/keyset.js +57 -0
  50. package/src/layout-types.js +0 -0
  51. package/src/list-utils.js +5 -0
  52. package/src/local-storage-utils.js +23 -0
  53. package/src/logging-utils.js +52 -0
  54. package/src/module-utils.js +2 -0
  55. package/src/nanoid/index.js +13 -0
  56. package/src/perf-utils.js +28 -0
  57. package/src/promise-utils.js +26 -0
  58. package/src/protocol-message-utils.js +71 -0
  59. package/src/range-utils.js +125 -0
  60. package/src/react-utils.js +64 -0
  61. package/src/round-decimal.js +83 -0
  62. package/src/row-utils.js +43 -0
  63. package/src/selection-utils.js +50 -0
  64. package/src/shell-layout-types.js +9 -0
  65. package/src/sort-utils.js +75 -0
  66. package/src/table-schema-utils.js +16 -0
  67. package/src/text-utils.js +15 -0
  68. package/src/theme-utils.js +21 -0
  69. package/src/tree-types.js +0 -0
  70. package/src/tree-utils.js +96 -0
  71. package/src/ts-utils.js +6 -0
  72. package/src/typeahead-utils.js +4 -0
  73. package/src/url-utils.js +12 -0
  74. package/src/useId.js +6 -0
  75. package/src/useLayoutEffectSkipFirst.js +9 -0
  76. package/src/useResizeObserver.js +122 -0
  77. package/src/useStateRef.js +21 -0
  78. package/src/user-types.js +0 -0
  79. package/cjs/node_modules/@dnd-kit/abstract/index.js +0 -1488
  80. package/cjs/node_modules/@dnd-kit/abstract/index.js.map +0 -1
  81. package/cjs/node_modules/@dnd-kit/abstract/modifiers.js +0 -85
  82. package/cjs/node_modules/@dnd-kit/abstract/modifiers.js.map +0 -1
  83. package/cjs/node_modules/@dnd-kit/collision/dist/index.js +0 -91
  84. package/cjs/node_modules/@dnd-kit/collision/dist/index.js.map +0 -1
  85. package/cjs/node_modules/@dnd-kit/dom/index.js +0 -1991
  86. package/cjs/node_modules/@dnd-kit/dom/index.js.map +0 -1
  87. package/cjs/node_modules/@dnd-kit/dom/sortable.js +0 -828
  88. package/cjs/node_modules/@dnd-kit/dom/sortable.js.map +0 -1
  89. package/cjs/node_modules/@dnd-kit/dom/utilities.js +0 -1389
  90. package/cjs/node_modules/@dnd-kit/dom/utilities.js.map +0 -1
  91. package/cjs/node_modules/@dnd-kit/geometry/dist/index.js +0 -310
  92. package/cjs/node_modules/@dnd-kit/geometry/dist/index.js.map +0 -1
  93. package/cjs/node_modules/@dnd-kit/react/hooks.js +0 -134
  94. package/cjs/node_modules/@dnd-kit/react/hooks.js.map +0 -1
  95. package/cjs/node_modules/@dnd-kit/react/index.js +0 -398
  96. package/cjs/node_modules/@dnd-kit/react/index.js.map +0 -1
  97. package/cjs/node_modules/@dnd-kit/react/sortable.js +0 -177
  98. package/cjs/node_modules/@dnd-kit/react/sortable.js.map +0 -1
  99. package/cjs/node_modules/@dnd-kit/react/utilities.js +0 -19
  100. package/cjs/node_modules/@dnd-kit/react/utilities.js.map +0 -1
  101. package/cjs/node_modules/@dnd-kit/state/dist/index.js +0 -280
  102. package/cjs/node_modules/@dnd-kit/state/dist/index.js.map +0 -1
  103. package/cjs/node_modules/@preact/signals-core/dist/signals-core.js +0 -11
  104. package/cjs/node_modules/@preact/signals-core/dist/signals-core.js.map +0 -1
  105. package/cjs/packages/vuu-utils/src/Clock.js +0 -62
  106. package/cjs/packages/vuu-utils/src/Clock.js.map +0 -1
  107. package/cjs/packages/vuu-utils/src/PageVisibilityObserver.js +0 -80
  108. package/cjs/packages/vuu-utils/src/PageVisibilityObserver.js.map +0 -1
  109. package/cjs/packages/vuu-utils/src/ScaledDecimal.js +0 -43
  110. package/cjs/packages/vuu-utils/src/ScaledDecimal.js.map +0 -1
  111. package/cjs/packages/vuu-utils/src/ShellContext.js +0 -13
  112. package/cjs/packages/vuu-utils/src/ShellContext.js.map +0 -1
  113. package/cjs/packages/vuu-utils/src/ThemeProvider.js +0 -85
  114. package/cjs/packages/vuu-utils/src/ThemeProvider.js.map +0 -1
  115. package/cjs/packages/vuu-utils/src/array-utils.js +0 -102
  116. package/cjs/packages/vuu-utils/src/array-utils.js.map +0 -1
  117. package/cjs/packages/vuu-utils/src/box-utils.js +0 -53
  118. package/cjs/packages/vuu-utils/src/box-utils.js.map +0 -1
  119. package/cjs/packages/vuu-utils/src/column-utils.js +0 -1056
  120. package/cjs/packages/vuu-utils/src/column-utils.js.map +0 -1
  121. package/cjs/packages/vuu-utils/src/common-types.js +0 -15
  122. package/cjs/packages/vuu-utils/src/common-types.js.map +0 -1
  123. package/cjs/packages/vuu-utils/src/component-registry.js +0 -144
  124. package/cjs/packages/vuu-utils/src/component-registry.js.map +0 -1
  125. package/cjs/packages/vuu-utils/src/context-definitions/DataContext.js +0 -21
  126. package/cjs/packages/vuu-utils/src/context-definitions/DataContext.js.map +0 -1
  127. package/cjs/packages/vuu-utils/src/context-definitions/DataProvider.js +0 -19
  128. package/cjs/packages/vuu-utils/src/context-definitions/DataProvider.js.map +0 -1
  129. package/cjs/packages/vuu-utils/src/context-definitions/DataSourceProvider.js +0 -33
  130. package/cjs/packages/vuu-utils/src/context-definitions/DataSourceProvider.js.map +0 -1
  131. package/cjs/packages/vuu-utils/src/context-definitions/WorkspaceContext.js +0 -20
  132. package/cjs/packages/vuu-utils/src/context-definitions/WorkspaceContext.js.map +0 -1
  133. package/cjs/packages/vuu-utils/src/cookie-utils.js +0 -22
  134. package/cjs/packages/vuu-utils/src/cookie-utils.js.map +0 -1
  135. package/cjs/packages/vuu-utils/src/css-utils.js +0 -9
  136. package/cjs/packages/vuu-utils/src/css-utils.js.map +0 -1
  137. package/cjs/packages/vuu-utils/src/data-utils.js +0 -110
  138. package/cjs/packages/vuu-utils/src/data-utils.js.map +0 -1
  139. package/cjs/packages/vuu-utils/src/datasource/BaseDataSource.js +0 -317
  140. package/cjs/packages/vuu-utils/src/datasource/BaseDataSource.js.map +0 -1
  141. package/cjs/packages/vuu-utils/src/datasource/datasource-action-utils.js +0 -14
  142. package/cjs/packages/vuu-utils/src/datasource/datasource-action-utils.js.map +0 -1
  143. package/cjs/packages/vuu-utils/src/datasource/datasource-filter-utils.js +0 -40
  144. package/cjs/packages/vuu-utils/src/datasource/datasource-filter-utils.js.map +0 -1
  145. package/cjs/packages/vuu-utils/src/datasource/datasource-utils.js +0 -218
  146. package/cjs/packages/vuu-utils/src/datasource/datasource-utils.js.map +0 -1
  147. package/cjs/packages/vuu-utils/src/date/date-utils.js +0 -131
  148. package/cjs/packages/vuu-utils/src/date/date-utils.js.map +0 -1
  149. package/cjs/packages/vuu-utils/src/date/dateTimePattern.js +0 -26
  150. package/cjs/packages/vuu-utils/src/date/dateTimePattern.js.map +0 -1
  151. package/cjs/packages/vuu-utils/src/date/formatter.js +0 -82
  152. package/cjs/packages/vuu-utils/src/date/formatter.js.map +0 -1
  153. package/cjs/packages/vuu-utils/src/date/types.js +0 -32
  154. package/cjs/packages/vuu-utils/src/date/types.js.map +0 -1
  155. package/cjs/packages/vuu-utils/src/debug-utils.js +0 -34
  156. package/cjs/packages/vuu-utils/src/debug-utils.js.map +0 -1
  157. package/cjs/packages/vuu-utils/src/edit-utils.js +0 -6
  158. package/cjs/packages/vuu-utils/src/edit-utils.js.map +0 -1
  159. package/cjs/packages/vuu-utils/src/errors.js +0 -7
  160. package/cjs/packages/vuu-utils/src/errors.js.map +0 -1
  161. package/cjs/packages/vuu-utils/src/event-emitter.js +0 -113
  162. package/cjs/packages/vuu-utils/src/event-emitter.js.map +0 -1
  163. package/cjs/packages/vuu-utils/src/feature-utils.js +0 -139
  164. package/cjs/packages/vuu-utils/src/feature-utils.js.map +0 -1
  165. package/cjs/packages/vuu-utils/src/filters/filter-utils.js +0 -182
  166. package/cjs/packages/vuu-utils/src/filters/filter-utils.js.map +0 -1
  167. package/cjs/packages/vuu-utils/src/filters/filterAsQuery.js +0 -69
  168. package/cjs/packages/vuu-utils/src/filters/filterAsQuery.js.map +0 -1
  169. package/cjs/packages/vuu-utils/src/form-utils.js +0 -123
  170. package/cjs/packages/vuu-utils/src/form-utils.js.map +0 -1
  171. package/cjs/packages/vuu-utils/src/formatting-utils.js +0 -114
  172. package/cjs/packages/vuu-utils/src/formatting-utils.js.map +0 -1
  173. package/cjs/packages/vuu-utils/src/getUniqueId.js +0 -6
  174. package/cjs/packages/vuu-utils/src/getUniqueId.js.map +0 -1
  175. package/cjs/packages/vuu-utils/src/group-utils.js +0 -27
  176. package/cjs/packages/vuu-utils/src/group-utils.js.map +0 -1
  177. package/cjs/packages/vuu-utils/src/html-utils.js +0 -162
  178. package/cjs/packages/vuu-utils/src/html-utils.js.map +0 -1
  179. package/cjs/packages/vuu-utils/src/index.js +0 -478
  180. package/cjs/packages/vuu-utils/src/index.js.map +0 -1
  181. package/cjs/packages/vuu-utils/src/input-utils.js +0 -10
  182. package/cjs/packages/vuu-utils/src/input-utils.js.map +0 -1
  183. package/cjs/packages/vuu-utils/src/invariant.js +0 -13
  184. package/cjs/packages/vuu-utils/src/invariant.js.map +0 -1
  185. package/cjs/packages/vuu-utils/src/itemToString.js +0 -23
  186. package/cjs/packages/vuu-utils/src/itemToString.js.map +0 -1
  187. package/cjs/packages/vuu-utils/src/json-utils.js +0 -105
  188. package/cjs/packages/vuu-utils/src/json-utils.js.map +0 -1
  189. package/cjs/packages/vuu-utils/src/keyboard-utils.js +0 -30
  190. package/cjs/packages/vuu-utils/src/keyboard-utils.js.map +0 -1
  191. package/cjs/packages/vuu-utils/src/keyset.js +0 -72
  192. package/cjs/packages/vuu-utils/src/keyset.js.map +0 -1
  193. package/cjs/packages/vuu-utils/src/list-utils.js +0 -11
  194. package/cjs/packages/vuu-utils/src/list-utils.js.map +0 -1
  195. package/cjs/packages/vuu-utils/src/local-storage-utils.js +0 -35
  196. package/cjs/packages/vuu-utils/src/local-storage-utils.js.map +0 -1
  197. package/cjs/packages/vuu-utils/src/logging-utils.js +0 -65
  198. package/cjs/packages/vuu-utils/src/logging-utils.js.map +0 -1
  199. package/cjs/packages/vuu-utils/src/module-utils.js +0 -6
  200. package/cjs/packages/vuu-utils/src/module-utils.js.map +0 -1
  201. package/cjs/packages/vuu-utils/src/nanoid/index.js +0 -22
  202. package/cjs/packages/vuu-utils/src/nanoid/index.js.map +0 -1
  203. package/cjs/packages/vuu-utils/src/perf-utils.js +0 -35
  204. package/cjs/packages/vuu-utils/src/perf-utils.js.map +0 -1
  205. package/cjs/packages/vuu-utils/src/promise-utils.js +0 -42
  206. package/cjs/packages/vuu-utils/src/promise-utils.js.map +0 -1
  207. package/cjs/packages/vuu-utils/src/protocol-message-utils.js +0 -110
  208. package/cjs/packages/vuu-utils/src/protocol-message-utils.js.map +0 -1
  209. package/cjs/packages/vuu-utils/src/range-utils.js +0 -140
  210. package/cjs/packages/vuu-utils/src/range-utils.js.map +0 -1
  211. package/cjs/packages/vuu-utils/src/react-utils.js +0 -72
  212. package/cjs/packages/vuu-utils/src/react-utils.js.map +0 -1
  213. package/cjs/packages/vuu-utils/src/round-decimal.js +0 -131
  214. package/cjs/packages/vuu-utils/src/round-decimal.js.map +0 -1
  215. package/cjs/packages/vuu-utils/src/row-utils.js +0 -59
  216. package/cjs/packages/vuu-utils/src/row-utils.js.map +0 -1
  217. package/cjs/packages/vuu-utils/src/selection-utils.js +0 -65
  218. package/cjs/packages/vuu-utils/src/selection-utils.js.map +0 -1
  219. package/cjs/packages/vuu-utils/src/shell-layout-types.js +0 -13
  220. package/cjs/packages/vuu-utils/src/shell-layout-types.js.map +0 -1
  221. package/cjs/packages/vuu-utils/src/sort-utils.js +0 -78
  222. package/cjs/packages/vuu-utils/src/sort-utils.js.map +0 -1
  223. package/cjs/packages/vuu-utils/src/table-schema-utils.js +0 -23
  224. package/cjs/packages/vuu-utils/src/table-schema-utils.js.map +0 -1
  225. package/cjs/packages/vuu-utils/src/text-utils.js +0 -26
  226. package/cjs/packages/vuu-utils/src/text-utils.js.map +0 -1
  227. package/cjs/packages/vuu-utils/src/theme-utils.js +0 -36
  228. package/cjs/packages/vuu-utils/src/theme-utils.js.map +0 -1
  229. package/cjs/packages/vuu-utils/src/tree-utils.js +0 -114
  230. package/cjs/packages/vuu-utils/src/tree-utils.js.map +0 -1
  231. package/cjs/packages/vuu-utils/src/ts-utils.js +0 -12
  232. package/cjs/packages/vuu-utils/src/ts-utils.js.map +0 -1
  233. package/cjs/packages/vuu-utils/src/typeahead-utils.js +0 -6
  234. package/cjs/packages/vuu-utils/src/typeahead-utils.js.map +0 -1
  235. package/cjs/packages/vuu-utils/src/url-utils.js +0 -21
  236. package/cjs/packages/vuu-utils/src/url-utils.js.map +0 -1
  237. package/cjs/packages/vuu-utils/src/useId.js +0 -9
  238. package/cjs/packages/vuu-utils/src/useId.js.map +0 -1
  239. package/cjs/packages/vuu-utils/src/useLayoutEffectSkipFirst.js +0 -17
  240. package/cjs/packages/vuu-utils/src/useLayoutEffectSkipFirst.js.map +0 -1
  241. package/cjs/packages/vuu-utils/src/useResizeObserver.js +0 -134
  242. package/cjs/packages/vuu-utils/src/useResizeObserver.js.map +0 -1
  243. package/cjs/packages/vuu-utils/src/useStateRef.js +0 -23
  244. package/cjs/packages/vuu-utils/src/useStateRef.js.map +0 -1
  245. package/esm/node_modules/@dnd-kit/abstract/index.js +0 -1472
  246. package/esm/node_modules/@dnd-kit/abstract/index.js.map +0 -1
  247. package/esm/node_modules/@dnd-kit/abstract/modifiers.js +0 -82
  248. package/esm/node_modules/@dnd-kit/abstract/modifiers.js.map +0 -1
  249. package/esm/node_modules/@dnd-kit/collision/dist/index.js +0 -86
  250. package/esm/node_modules/@dnd-kit/collision/dist/index.js.map +0 -1
  251. package/esm/node_modules/@dnd-kit/dom/index.js +0 -1977
  252. package/esm/node_modules/@dnd-kit/dom/index.js.map +0 -1
  253. package/esm/node_modules/@dnd-kit/dom/sortable.js +0 -822
  254. package/esm/node_modules/@dnd-kit/dom/sortable.js.map +0 -1
  255. package/esm/node_modules/@dnd-kit/dom/utilities.js +0 -1344
  256. package/esm/node_modules/@dnd-kit/dom/utilities.js.map +0 -1
  257. package/esm/node_modules/@dnd-kit/geometry/dist/index.js +0 -303
  258. package/esm/node_modules/@dnd-kit/geometry/dist/index.js.map +0 -1
  259. package/esm/node_modules/@dnd-kit/react/hooks.js +0 -126
  260. package/esm/node_modules/@dnd-kit/react/hooks.js.map +0 -1
  261. package/esm/node_modules/@dnd-kit/react/index.js +0 -392
  262. package/esm/node_modules/@dnd-kit/react/index.js.map +0 -1
  263. package/esm/node_modules/@dnd-kit/react/sortable.js +0 -175
  264. package/esm/node_modules/@dnd-kit/react/sortable.js.map +0 -1
  265. package/esm/node_modules/@dnd-kit/react/utilities.js +0 -17
  266. package/esm/node_modules/@dnd-kit/react/utilities.js.map +0 -1
  267. package/esm/node_modules/@dnd-kit/state/dist/index.js +0 -266
  268. package/esm/node_modules/@dnd-kit/state/dist/index.js.map +0 -1
  269. package/esm/node_modules/@preact/signals-core/dist/signals-core.js +0 -4
  270. package/esm/node_modules/@preact/signals-core/dist/signals-core.js.map +0 -1
  271. package/esm/packages/vuu-utils/src/Clock.js +0 -60
  272. package/esm/packages/vuu-utils/src/Clock.js.map +0 -1
  273. package/esm/packages/vuu-utils/src/PageVisibilityObserver.js +0 -78
  274. package/esm/packages/vuu-utils/src/PageVisibilityObserver.js.map +0 -1
  275. package/esm/packages/vuu-utils/src/ScaledDecimal.js +0 -37
  276. package/esm/packages/vuu-utils/src/ScaledDecimal.js.map +0 -1
  277. package/esm/packages/vuu-utils/src/ShellContext.js +0 -10
  278. package/esm/packages/vuu-utils/src/ShellContext.js.map +0 -1
  279. package/esm/packages/vuu-utils/src/ThemeProvider.js +0 -78
  280. package/esm/packages/vuu-utils/src/ThemeProvider.js.map +0 -1
  281. package/esm/packages/vuu-utils/src/array-utils.js +0 -93
  282. package/esm/packages/vuu-utils/src/array-utils.js.map +0 -1
  283. package/esm/packages/vuu-utils/src/box-utils.js +0 -47
  284. package/esm/packages/vuu-utils/src/box-utils.js.map +0 -1
  285. package/esm/packages/vuu-utils/src/column-utils.js +0 -968
  286. package/esm/packages/vuu-utils/src/column-utils.js.map +0 -1
  287. package/esm/packages/vuu-utils/src/common-types.js +0 -13
  288. package/esm/packages/vuu-utils/src/common-types.js.map +0 -1
  289. package/esm/packages/vuu-utils/src/component-registry.js +0 -128
  290. package/esm/packages/vuu-utils/src/component-registry.js.map +0 -1
  291. package/esm/packages/vuu-utils/src/context-definitions/DataContext.js +0 -18
  292. package/esm/packages/vuu-utils/src/context-definitions/DataContext.js.map +0 -1
  293. package/esm/packages/vuu-utils/src/context-definitions/DataProvider.js +0 -16
  294. package/esm/packages/vuu-utils/src/context-definitions/DataProvider.js.map +0 -1
  295. package/esm/packages/vuu-utils/src/context-definitions/DataSourceProvider.js +0 -29
  296. package/esm/packages/vuu-utils/src/context-definitions/DataSourceProvider.js.map +0 -1
  297. package/esm/packages/vuu-utils/src/context-definitions/WorkspaceContext.js +0 -17
  298. package/esm/packages/vuu-utils/src/context-definitions/WorkspaceContext.js.map +0 -1
  299. package/esm/packages/vuu-utils/src/cookie-utils.js +0 -19
  300. package/esm/packages/vuu-utils/src/cookie-utils.js.map +0 -1
  301. package/esm/packages/vuu-utils/src/css-utils.js +0 -7
  302. package/esm/packages/vuu-utils/src/css-utils.js.map +0 -1
  303. package/esm/packages/vuu-utils/src/data-utils.js +0 -95
  304. package/esm/packages/vuu-utils/src/data-utils.js.map +0 -1
  305. package/esm/packages/vuu-utils/src/datasource/BaseDataSource.js +0 -314
  306. package/esm/packages/vuu-utils/src/datasource/BaseDataSource.js.map +0 -1
  307. package/esm/packages/vuu-utils/src/datasource/datasource-action-utils.js +0 -8
  308. package/esm/packages/vuu-utils/src/datasource/datasource-action-utils.js.map +0 -1
  309. package/esm/packages/vuu-utils/src/datasource/datasource-filter-utils.js +0 -38
  310. package/esm/packages/vuu-utils/src/datasource/datasource-filter-utils.js.map +0 -1
  311. package/esm/packages/vuu-utils/src/datasource/datasource-utils.js +0 -193
  312. package/esm/packages/vuu-utils/src/datasource/datasource-utils.js.map +0 -1
  313. package/esm/packages/vuu-utils/src/date/date-utils.js +0 -121
  314. package/esm/packages/vuu-utils/src/date/date-utils.js.map +0 -1
  315. package/esm/packages/vuu-utils/src/date/dateTimePattern.js +0 -22
  316. package/esm/packages/vuu-utils/src/date/dateTimePattern.js.map +0 -1
  317. package/esm/packages/vuu-utils/src/date/formatter.js +0 -79
  318. package/esm/packages/vuu-utils/src/date/formatter.js.map +0 -1
  319. package/esm/packages/vuu-utils/src/date/types.js +0 -26
  320. package/esm/packages/vuu-utils/src/date/types.js.map +0 -1
  321. package/esm/packages/vuu-utils/src/debug-utils.js +0 -32
  322. package/esm/packages/vuu-utils/src/debug-utils.js.map +0 -1
  323. package/esm/packages/vuu-utils/src/edit-utils.js +0 -4
  324. package/esm/packages/vuu-utils/src/edit-utils.js.map +0 -1
  325. package/esm/packages/vuu-utils/src/errors.js.map +0 -1
  326. package/esm/packages/vuu-utils/src/event-emitter.js +0 -111
  327. package/esm/packages/vuu-utils/src/event-emitter.js.map +0 -1
  328. package/esm/packages/vuu-utils/src/feature-utils.js +0 -125
  329. package/esm/packages/vuu-utils/src/feature-utils.js.map +0 -1
  330. package/esm/packages/vuu-utils/src/filters/filter-utils.js +0 -159
  331. package/esm/packages/vuu-utils/src/filters/filter-utils.js.map +0 -1
  332. package/esm/packages/vuu-utils/src/filters/filterAsQuery.js +0 -65
  333. package/esm/packages/vuu-utils/src/filters/filterAsQuery.js.map +0 -1
  334. package/esm/packages/vuu-utils/src/form-utils.js +0 -116
  335. package/esm/packages/vuu-utils/src/form-utils.js.map +0 -1
  336. package/esm/packages/vuu-utils/src/formatting-utils.js +0 -109
  337. package/esm/packages/vuu-utils/src/formatting-utils.js.map +0 -1
  338. package/esm/packages/vuu-utils/src/getUniqueId.js +0 -4
  339. package/esm/packages/vuu-utils/src/getUniqueId.js.map +0 -1
  340. package/esm/packages/vuu-utils/src/group-utils.js +0 -23
  341. package/esm/packages/vuu-utils/src/group-utils.js.map +0 -1
  342. package/esm/packages/vuu-utils/src/html-utils.js +0 -145
  343. package/esm/packages/vuu-utils/src/html-utils.js.map +0 -1
  344. package/esm/packages/vuu-utils/src/index.js +0 -74
  345. package/esm/packages/vuu-utils/src/index.js.map +0 -1
  346. package/esm/packages/vuu-utils/src/input-utils.js +0 -7
  347. package/esm/packages/vuu-utils/src/input-utils.js.map +0 -1
  348. package/esm/packages/vuu-utils/src/invariant.js +0 -11
  349. package/esm/packages/vuu-utils/src/invariant.js.map +0 -1
  350. package/esm/packages/vuu-utils/src/itemToString.js +0 -21
  351. package/esm/packages/vuu-utils/src/itemToString.js.map +0 -1
  352. package/esm/packages/vuu-utils/src/json-utils.js +0 -103
  353. package/esm/packages/vuu-utils/src/json-utils.js.map +0 -1
  354. package/esm/packages/vuu-utils/src/keyboard-utils.js.map +0 -1
  355. package/esm/packages/vuu-utils/src/keyset.js +0 -70
  356. package/esm/packages/vuu-utils/src/keyset.js.map +0 -1
  357. package/esm/packages/vuu-utils/src/list-utils.js +0 -9
  358. package/esm/packages/vuu-utils/src/list-utils.js.map +0 -1
  359. package/esm/packages/vuu-utils/src/local-storage-utils.js +0 -30
  360. package/esm/packages/vuu-utils/src/local-storage-utils.js.map +0 -1
  361. package/esm/packages/vuu-utils/src/logging-utils.js +0 -61
  362. package/esm/packages/vuu-utils/src/logging-utils.js.map +0 -1
  363. package/esm/packages/vuu-utils/src/module-utils.js +0 -4
  364. package/esm/packages/vuu-utils/src/module-utils.js.map +0 -1
  365. package/esm/packages/vuu-utils/src/nanoid/index.js +0 -20
  366. package/esm/packages/vuu-utils/src/nanoid/index.js.map +0 -1
  367. package/esm/packages/vuu-utils/src/perf-utils.js +0 -32
  368. package/esm/packages/vuu-utils/src/perf-utils.js.map +0 -1
  369. package/esm/packages/vuu-utils/src/promise-utils.js +0 -40
  370. package/esm/packages/vuu-utils/src/promise-utils.js.map +0 -1
  371. package/esm/packages/vuu-utils/src/protocol-message-utils.js +0 -78
  372. package/esm/packages/vuu-utils/src/protocol-message-utils.js.map +0 -1
  373. package/esm/packages/vuu-utils/src/range-utils.js +0 -132
  374. package/esm/packages/vuu-utils/src/range-utils.js.map +0 -1
  375. package/esm/packages/vuu-utils/src/react-utils.js +0 -66
  376. package/esm/packages/vuu-utils/src/react-utils.js.map +0 -1
  377. package/esm/packages/vuu-utils/src/round-decimal.js +0 -127
  378. package/esm/packages/vuu-utils/src/round-decimal.js.map +0 -1
  379. package/esm/packages/vuu-utils/src/row-utils.js +0 -54
  380. package/esm/packages/vuu-utils/src/row-utils.js.map +0 -1
  381. package/esm/packages/vuu-utils/src/selection-utils.js +0 -61
  382. package/esm/packages/vuu-utils/src/selection-utils.js.map +0 -1
  383. package/esm/packages/vuu-utils/src/shell-layout-types.js +0 -11
  384. package/esm/packages/vuu-utils/src/shell-layout-types.js.map +0 -1
  385. package/esm/packages/vuu-utils/src/sort-utils.js +0 -73
  386. package/esm/packages/vuu-utils/src/sort-utils.js.map +0 -1
  387. package/esm/packages/vuu-utils/src/table-schema-utils.js +0 -20
  388. package/esm/packages/vuu-utils/src/table-schema-utils.js.map +0 -1
  389. package/esm/packages/vuu-utils/src/text-utils.js +0 -20
  390. package/esm/packages/vuu-utils/src/text-utils.js.map +0 -1
  391. package/esm/packages/vuu-utils/src/theme-utils.js +0 -34
  392. package/esm/packages/vuu-utils/src/theme-utils.js.map +0 -1
  393. package/esm/packages/vuu-utils/src/tree-utils.js +0 -108
  394. package/esm/packages/vuu-utils/src/tree-utils.js.map +0 -1
  395. package/esm/packages/vuu-utils/src/ts-utils.js +0 -8
  396. package/esm/packages/vuu-utils/src/ts-utils.js.map +0 -1
  397. package/esm/packages/vuu-utils/src/typeahead-utils.js +0 -4
  398. package/esm/packages/vuu-utils/src/typeahead-utils.js.map +0 -1
  399. package/esm/packages/vuu-utils/src/url-utils.js +0 -18
  400. package/esm/packages/vuu-utils/src/url-utils.js.map +0 -1
  401. package/esm/packages/vuu-utils/src/useId.js +0 -7
  402. package/esm/packages/vuu-utils/src/useId.js.map +0 -1
  403. package/esm/packages/vuu-utils/src/useLayoutEffectSkipFirst.js +0 -15
  404. package/esm/packages/vuu-utils/src/useLayoutEffectSkipFirst.js.map +0 -1
  405. package/esm/packages/vuu-utils/src/useResizeObserver.js +0 -130
  406. package/esm/packages/vuu-utils/src/useResizeObserver.js.map +0 -1
  407. package/esm/packages/vuu-utils/src/useStateRef.js +0 -21
  408. package/esm/packages/vuu-utils/src/useStateRef.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-utils.js","sources":["../../../../../../packages/vuu-utils/src/data-utils.ts"],"sourcesContent":["import { DataValueDescriptor } from \"@vuu-ui/vuu-data-types\";\n\nexport type valueChangeDirection = \"up1\" | \"up2\" | \"down1\" | \"down2\" | \"\";\n\nexport const UP1 = \"up1\";\nexport const UP2 = \"up2\";\nexport const DOWN1 = \"down1\";\nexport const DOWN2 = \"down2\";\n\nconst decimalPattern = /^-?[0-9]*\\.[0-9]*$/;\n\nconst JAVA_LONG_MIN = BigInt(\"-9223372036854775808\");\nconst JAVA_LONG_MAX = BigInt(\"9223372036854775807\");\n\nexport const stringIsValidInt = (val: string) =>\n parseInt(val, 10).toString() === val;\n\nexport const stringIsValidLong = (val: string) => {\n if (val === \"\") {\n return false;\n }\n try {\n const n = BigInt(val);\n return n <= JAVA_LONG_MAX && n >= JAVA_LONG_MIN;\n } catch (e) {\n return false;\n }\n};\n\nexport const stringIsValidDecimal = (val: string) =>\n stringIsValidInt(val) || decimalPattern.test(val);\n\nexport const stringIsValidNumber = (val: string) =>\n stringIsValidInt(val) || stringIsValidDecimal(val);\n\nexport const numericTypeOfStringValue = (val: string) =>\n stringIsValidInt(val) ? \"int\" : stringIsValidDecimal(val) ? \"double\" : \"NaN\";\n\nexport const isValidNumber = (n: unknown): n is number =>\n typeof n === \"number\" && isFinite(n);\n\nconst EMPTY = {};\nexport const shallowEquals = (\n o1: { [key: string]: unknown } = EMPTY,\n o2: { [key: string]: unknown } = EMPTY,\n) => {\n const props1 = Object.keys(o1);\n const props2 = Object.keys(o2);\n return (\n props1.length === props2.length &&\n props1.every((key) => o1[key] === o2[key])\n );\n};\n\nexport function getMovingValueDirection(\n newValue?: number,\n direction?: valueChangeDirection,\n prevValue?: number,\n /** the number of decimal places to take into account when highlighting a change */\n decimalPlaces?: number,\n): valueChangeDirection {\n if (newValue === undefined) {\n return \"\";\n }\n if (\n !isFinite(newValue) ||\n prevValue === undefined ||\n direction === undefined\n ) {\n return \"\";\n } else {\n let diff = newValue - prevValue;\n if (diff) {\n // make sure there is still a diff when reduced to number of decimals to be displayed\n if (typeof decimalPlaces === \"number\") {\n diff =\n +newValue.toFixed(decimalPlaces) - +prevValue.toFixed(decimalPlaces);\n }\n }\n\n if (diff) {\n if (direction === \"\") {\n if (diff < 0) {\n return DOWN1;\n } else {\n return UP1;\n }\n } else if (diff > 0) {\n if (direction === DOWN1 || direction === DOWN2 || direction === UP2) {\n return UP1;\n } else {\n return UP2;\n }\n } else if (\n direction === UP1 ||\n direction === UP2 ||\n direction === DOWN2\n ) {\n return DOWN1;\n } else {\n return DOWN2;\n }\n } else {\n return \"\";\n }\n }\n}\n\n/**\n * Convert a value to integer.\n * If value is a number, remove any decimals.\n * If value is a string, parse as integer. If NaN,\n * return defaultValue else throw.\n * If value is integer numeric, return value.\n *\n * @param value\n * @param defaultValue\n * @returns\n */\nexport function asInteger(\n value: number | string | undefined,\n defaultValue?: number,\n): number {\n if (typeof value === \"number\") {\n return Number.isInteger(value)\n ? value\n : value < 0\n ? Math.ceil(value)\n : Math.floor(value);\n } else {\n const integerValue = parseInt(value ?? \"\");\n if (!isNaN(integerValue)) {\n return integerValue;\n } else if (typeof defaultValue === \"number\") {\n return defaultValue;\n }\n throw Error(`parseIndex invalid value ${value}`);\n }\n}\n\nexport const dataDescriptorTypeToVuuRowDataItemType = ({\n serverDataType = \"string\",\n}: DataValueDescriptor): \"string\" | \"number\" | \"boolean\" => {\n switch (serverDataType) {\n case \"double\":\n case \"int\":\n case \"long\":\n return \"number\";\n case \"boolean\":\n return \"boolean\";\n default:\n return \"string\";\n }\n};\n"],"names":[],"mappings":"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"}
@@ -1,314 +0,0 @@
1
- import { parseFilter } from '@vuu-ui/vuu-filter-parser';
2
- import { EventEmitter } from '../event-emitter.js';
3
- import { uuid } from '../nanoid/index.js';
4
- import { stripVisualLink, isConfigChanged, withConfigDefaults, vanillaConfig } from './datasource-utils.js';
5
- import { Range } from '../range-utils.js';
6
- import { filterAsQuery } from '../filters/filterAsQuery.js';
7
-
8
- var __defProp = Object.defineProperty;
9
- var __typeError = (msg) => {
10
- throw TypeError(msg);
11
- };
12
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
13
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
14
- var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
15
- var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
16
- var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
17
- var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), member.set(obj, value), value);
18
- var _freezeTimestamp, _pageCount;
19
- const defaultSuspenseProps = {
20
- escalateToDisable: true
21
- };
22
- class BaseDataSource extends EventEmitter {
23
- constructor({
24
- aggregations,
25
- baseFilterSpec,
26
- columns,
27
- filterSpec,
28
- groupBy,
29
- sort,
30
- suspenseProps = defaultSuspenseProps,
31
- title,
32
- viewport
33
- }) {
34
- super();
35
- // This should simply be id
36
- __publicField(this, "viewport");
37
- __publicField(this, "_clientCallback");
38
- __publicField(this, "_configWithVisualLink", vanillaConfig);
39
- __publicField(this, "_impendingConfigWithVisualLink");
40
- __publicField(this, "_range", Range(0, 0));
41
- __publicField(this, "_size", 0);
42
- __publicField(this, "_title");
43
- __publicField(this, "_defaultSuspenseProps");
44
- __privateAdd(this, _freezeTimestamp);
45
- __privateAdd(this, _pageCount, 0);
46
- __publicField(this, "awaitingConfirmationOfConfigChanges", false);
47
- this._configWithVisualLink = {
48
- ...this._configWithVisualLink,
49
- aggregations: aggregations || this._configWithVisualLink.aggregations,
50
- baseFilterSpec: baseFilterSpec || this._configWithVisualLink.baseFilterSpec,
51
- columns: columns || this._configWithVisualLink.columns,
52
- filterSpec: filterSpec || this._configWithVisualLink.filterSpec,
53
- groupBy: groupBy || this._configWithVisualLink.groupBy,
54
- sort: sort || this._configWithVisualLink.sort
55
- };
56
- this._defaultSuspenseProps = suspenseProps;
57
- this._title = title;
58
- this.viewport = viewport ?? "";
59
- }
60
- subscribe({
61
- baseFilterSpec,
62
- columns,
63
- aggregations,
64
- range,
65
- sort,
66
- groupBy,
67
- filterSpec,
68
- viewport = this.viewport || (this.viewport = uuid())
69
- }, callback) {
70
- this._clientCallback = callback;
71
- this.viewport = viewport;
72
- if (aggregations || baseFilterSpec || columns || filterSpec || groupBy || sort) {
73
- this._configWithVisualLink = {
74
- ...this._configWithVisualLink,
75
- aggregations: aggregations || this._configWithVisualLink.aggregations,
76
- baseFilterSpec: baseFilterSpec || this._configWithVisualLink.baseFilterSpec,
77
- columns: columns || this._configWithVisualLink.columns,
78
- filterSpec: filterSpec || this._configWithVisualLink.filterSpec,
79
- groupBy: groupBy || this._configWithVisualLink.groupBy,
80
- sort: sort || this._configWithVisualLink.sort
81
- };
82
- }
83
- if (range) {
84
- this._range = range;
85
- this.emit("range", range);
86
- }
87
- }
88
- get aggregations() {
89
- return this._configWithVisualLink.aggregations;
90
- }
91
- set aggregations(aggregations) {
92
- this.config = {
93
- ...this._configWithVisualLink,
94
- aggregations
95
- };
96
- this.emit("config", this._configWithVisualLink, this.range);
97
- }
98
- get baseFilter() {
99
- return this._configWithVisualLink.baseFilterSpec;
100
- }
101
- set baseFilter(baseFilter) {
102
- this.config = {
103
- ...this._configWithVisualLink,
104
- baseFilterSpec: baseFilter
105
- };
106
- }
107
- get columns() {
108
- return this._configWithVisualLink.columns;
109
- }
110
- set columns(columns) {
111
- this.config = {
112
- ...this._configWithVisualLink,
113
- columns
114
- };
115
- }
116
- get filter() {
117
- return this._configWithVisualLink.filterSpec;
118
- }
119
- set filter(filter) {
120
- this.config = {
121
- ...this._configWithVisualLink,
122
- filterSpec: filter
123
- };
124
- }
125
- setFilter(filter) {
126
- const dataSourceFilter = {
127
- filter: filterAsQuery(filter),
128
- filterStruct: filter
129
- };
130
- this.filter = dataSourceFilter;
131
- }
132
- clearFilter() {
133
- this.filter = { filter: "" };
134
- }
135
- get isAwaitingConfirmationOfConfigChange() {
136
- return this._impendingConfigWithVisualLink !== void 0;
137
- }
138
- confirmConfigChange() {
139
- if (this._impendingConfigWithVisualLink) {
140
- this._configWithVisualLink = this._impendingConfigWithVisualLink;
141
- this._impendingConfigWithVisualLink = void 0;
142
- this.emit("config", this._configWithVisualLink, this.range, true);
143
- } else {
144
- throw Error(
145
- `[BaseDataSource], unexpected call to confirmConfigChange, no changes pending`
146
- );
147
- }
148
- }
149
- get config() {
150
- return stripVisualLink(
151
- this._impendingConfigWithVisualLink ?? this._configWithVisualLink
152
- );
153
- }
154
- set config(config) {
155
- const confirmed = this.awaitingConfirmationOfConfigChanges ? true : void 0;
156
- this.awaitingConfirmationOfConfigChanges = false;
157
- const configChanges = this.applyConfig(config);
158
- if (configChanges) {
159
- requestAnimationFrame(() => {
160
- this.emit(
161
- "config",
162
- this._configWithVisualLink,
163
- this.range,
164
- confirmed,
165
- configChanges
166
- );
167
- });
168
- }
169
- }
170
- get impendingConfig() {
171
- return this._impendingConfigWithVisualLink;
172
- }
173
- /**
174
- * This can be set by subclass in cases where we want to await ACK of async request
175
- * before we go ahead and apply change to config.
176
- * It is set in place of 'config' itself and it is then the responsibility of the client
177
- * to call 'confirmConfigChange' once confirmation of the change is received.
178
- * Client can check 'isAwaitingConfirmationOfConfigChange' to see if a change is pending
179
- * confirmation.
180
- */
181
- set impendingConfig(config) {
182
- if (config) {
183
- this.awaitingConfirmationOfConfigChanges = true;
184
- const configChanges = this.applyConfig(config);
185
- if (configChanges) {
186
- this.emit("config", this.config, this.range, false, configChanges);
187
- }
188
- } else {
189
- throw Error(
190
- `[BaseDataSource] ''unsetting impendingConfig is not currently supported`
191
- );
192
- }
193
- }
194
- get pageCount() {
195
- return __privateGet(this, _pageCount);
196
- }
197
- set pageCount(pageCount) {
198
- if (pageCount !== __privateGet(this, _pageCount)) {
199
- __privateSet(this, _pageCount, pageCount);
200
- this.emit("page-count", pageCount);
201
- }
202
- }
203
- get range() {
204
- return this._range;
205
- }
206
- set range(range) {
207
- if (range.from !== this._range.from || range.to !== this._range.to) {
208
- this._range = range;
209
- this.pageCount = Math.ceil(this._size / (range.to - range.from));
210
- this.rangeRequest(range.withBuffer);
211
- requestAnimationFrame(() => {
212
- this.emit("range", range);
213
- });
214
- }
215
- }
216
- get size() {
217
- return this._size;
218
- }
219
- set size(size) {
220
- this._size = size;
221
- if (this.range.to !== 0) {
222
- const pageCount = Math.ceil(size / (this.range.to - this.range.from));
223
- this.pageCount = pageCount;
224
- }
225
- }
226
- get sort() {
227
- return this._configWithVisualLink.sort;
228
- }
229
- set sort(sort) {
230
- this.config = {
231
- ...this._configWithVisualLink,
232
- sort
233
- };
234
- this.emit("config", this._configWithVisualLink, this.range);
235
- }
236
- get title() {
237
- return this._title ?? "";
238
- }
239
- set title(title) {
240
- this._title = title;
241
- this.emit("title-changed", this.viewport ?? "", title);
242
- }
243
- applyConfig(config, preserveExistingConfigAttributes = false) {
244
- const { noChanges, ...otherChanges } = isConfigChanged(
245
- this._configWithVisualLink,
246
- config
247
- );
248
- if (noChanges !== true) {
249
- if (config) {
250
- const newConfig = config?.filterSpec?.filter && config?.filterSpec.filterStruct === void 0 ? {
251
- ...config,
252
- filterSpec: {
253
- filter: config.filterSpec.filter,
254
- filterStruct: parseFilter(config.filterSpec.filter)
255
- }
256
- } : config;
257
- if (preserveExistingConfigAttributes) {
258
- if (this.awaitingConfirmationOfConfigChanges) {
259
- this._impendingConfigWithVisualLink = {
260
- ...this._configWithVisualLink,
261
- ...config
262
- };
263
- } else {
264
- this._impendingConfigWithVisualLink = void 0;
265
- this._configWithVisualLink = {
266
- ...this._configWithVisualLink,
267
- ...config
268
- };
269
- }
270
- } else {
271
- if (this.awaitingConfirmationOfConfigChanges) {
272
- this._impendingConfigWithVisualLink = withConfigDefaults(newConfig);
273
- } else {
274
- this._impendingConfigWithVisualLink = void 0;
275
- this._configWithVisualLink = withConfigDefaults(newConfig);
276
- }
277
- }
278
- return otherChanges;
279
- }
280
- }
281
- }
282
- freeze() {
283
- if (!this.isFrozen) {
284
- __privateSet(this, _freezeTimestamp, (/* @__PURE__ */ new Date()).getTime());
285
- this.emit("freeze", true, __privateGet(this, _freezeTimestamp));
286
- } else {
287
- throw Error(
288
- "[BaseDataSource] cannot freeze, dataSource is already frozen"
289
- );
290
- }
291
- }
292
- unfreeze() {
293
- if (this.isFrozen) {
294
- const freezeTimestamp = __privateGet(this, _freezeTimestamp);
295
- __privateSet(this, _freezeTimestamp, void 0);
296
- this.emit("freeze", false, freezeTimestamp);
297
- } else {
298
- throw Error(
299
- "[BaseDataSource] cannot freeze, dataSource is already frozen"
300
- );
301
- }
302
- }
303
- get freezeTimestamp() {
304
- return __privateGet(this, _freezeTimestamp);
305
- }
306
- get isFrozen() {
307
- return typeof __privateGet(this, _freezeTimestamp) === "number";
308
- }
309
- }
310
- _freezeTimestamp = new WeakMap();
311
- _pageCount = new WeakMap();
312
-
313
- export { BaseDataSource, defaultSuspenseProps };
314
- //# sourceMappingURL=BaseDataSource.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BaseDataSource.js","sources":["../../../../../../../packages/vuu-utils/src/datasource/BaseDataSource.ts"],"sourcesContent":["import type {\n DataSource,\n DataSourceConfig,\n DataSourceConstructorProps,\n DataSourceEvents,\n DataSourceFilter,\n DataSourceSubscribeCallback,\n DataSourceSubscribeProps,\n DataSourceSuspenseProps,\n WithBaseFilter,\n WithFullConfig,\n} from \"@vuu-ui/vuu-data-types\";\nimport { parseFilter } from \"@vuu-ui/vuu-filter-parser\";\nimport {\n LinkDescriptorWithLabel,\n VuuAggregation,\n VuuRange,\n VuuSort,\n} from \"@vuu-ui/vuu-protocol-types\";\nimport { EventEmitter } from \"../event-emitter\";\nimport { uuid } from \"../nanoid\";\nimport {\n DataSourceConfigChanges,\n isConfigChanged,\n stripVisualLink,\n vanillaConfig,\n withConfigDefaults,\n} from \"./datasource-utils\";\nimport { Range } from \"../range-utils\";\nimport { filterAsQuery } from \"../filters\";\nimport { Filter } from \"@vuu-ui/vuu-filter-types\";\n\nexport type ConfigWithVisualLink = WithBaseFilter<WithFullConfig> & {\n visualLink?: LinkDescriptorWithLabel;\n};\n\nexport const defaultSuspenseProps: DataSourceSuspenseProps = {\n escalateToDisable: true,\n};\n\nexport abstract class BaseDataSource\n extends EventEmitter<DataSourceEvents>\n implements Pick<DataSource, \"config\">\n{\n // This should simply be id\n public viewport: string;\n\n protected _clientCallback: DataSourceSubscribeCallback | undefined;\n protected _configWithVisualLink: ConfigWithVisualLink = vanillaConfig;\n protected _impendingConfigWithVisualLink: ConfigWithVisualLink | undefined =\n undefined;\n protected _range = Range(0, 0);\n protected _size = 0;\n protected _title: string | undefined;\n protected _defaultSuspenseProps: DataSourceSuspenseProps;\n\n #freezeTimestamp: number | undefined = undefined;\n #pageCount = 0;\n\n private awaitingConfirmationOfConfigChanges = false;\n\n constructor({\n aggregations,\n baseFilterSpec,\n columns,\n filterSpec,\n groupBy,\n sort,\n suspenseProps = defaultSuspenseProps,\n title,\n viewport,\n }: Omit<DataSourceConstructorProps, \"table\">) {\n super();\n this._configWithVisualLink = {\n ...this._configWithVisualLink,\n aggregations: aggregations || this._configWithVisualLink.aggregations,\n baseFilterSpec:\n baseFilterSpec || this._configWithVisualLink.baseFilterSpec,\n columns: columns || this._configWithVisualLink.columns,\n filterSpec: filterSpec || this._configWithVisualLink.filterSpec,\n groupBy: groupBy || this._configWithVisualLink.groupBy,\n sort: sort || this._configWithVisualLink.sort,\n };\n this._defaultSuspenseProps = suspenseProps;\n this._title = title;\n this.viewport = viewport ?? \"\";\n }\n\n subscribe(\n {\n baseFilterSpec,\n columns,\n aggregations,\n range,\n sort,\n groupBy,\n filterSpec,\n viewport = this.viewport || (this.viewport = uuid()),\n }: DataSourceSubscribeProps,\n callback: DataSourceSubscribeCallback,\n ) {\n this._clientCallback = callback;\n this.viewport = viewport;\n\n if (\n aggregations ||\n baseFilterSpec ||\n columns ||\n filterSpec ||\n groupBy ||\n sort\n ) {\n this._configWithVisualLink = {\n ...this._configWithVisualLink,\n aggregations: aggregations || this._configWithVisualLink.aggregations,\n baseFilterSpec:\n baseFilterSpec || this._configWithVisualLink.baseFilterSpec,\n columns: columns || this._configWithVisualLink.columns,\n filterSpec: filterSpec || this._configWithVisualLink.filterSpec,\n groupBy: groupBy || this._configWithVisualLink.groupBy,\n sort: sort || this._configWithVisualLink.sort,\n };\n }\n\n // store the range before we await the server. It's is possible the\n // range will be updated from the client before we have been able to\n // subscribe. This ensures we will subscribe with latest value.\n if (range) {\n this._range = range;\n this.emit(\"range\", range);\n }\n }\n\n get aggregations() {\n return this._configWithVisualLink.aggregations;\n }\n\n set aggregations(aggregations: VuuAggregation[]) {\n this.config = {\n ...this._configWithVisualLink,\n aggregations,\n };\n this.emit(\"config\", this._configWithVisualLink, this.range);\n }\n\n get baseFilter() {\n return this._configWithVisualLink.baseFilterSpec;\n }\n\n set baseFilter(baseFilter: DataSourceFilter | undefined) {\n this.config = {\n ...this._configWithVisualLink,\n baseFilterSpec: baseFilter,\n };\n }\n\n get columns() {\n return this._configWithVisualLink.columns;\n }\n\n set columns(columns: string[]) {\n this.config = {\n ...this._configWithVisualLink,\n columns,\n };\n }\n\n get filter() {\n return this._configWithVisualLink.filterSpec;\n }\n\n set filter(filter: DataSourceFilter) {\n this.config = {\n ...this._configWithVisualLink,\n filterSpec: filter,\n };\n }\n\n setFilter(filter: Filter) {\n const dataSourceFilter: DataSourceFilter = {\n filter: filterAsQuery(filter),\n filterStruct: filter,\n };\n this.filter = dataSourceFilter;\n }\n\n clearFilter() {\n this.filter = { filter: \"\" };\n }\n\n get isAwaitingConfirmationOfConfigChange() {\n return this._impendingConfigWithVisualLink !== undefined;\n }\n\n protected confirmConfigChange() {\n if (this._impendingConfigWithVisualLink) {\n this._configWithVisualLink = this._impendingConfigWithVisualLink;\n this._impendingConfigWithVisualLink = undefined;\n this.emit(\"config\", this._configWithVisualLink, this.range, true);\n } else {\n throw Error(\n `[BaseDataSource], unexpected call to confirmConfigChange, no changes pending`,\n );\n }\n }\n\n get config() {\n return stripVisualLink(\n this._impendingConfigWithVisualLink ?? this._configWithVisualLink,\n );\n }\n\n set config(config: WithBaseFilter<WithFullConfig>) {\n const confirmed = this.awaitingConfirmationOfConfigChanges\n ? true\n : undefined;\n // TODO what happens if config is set and we still have an unconfirmed change ?\n this.awaitingConfirmationOfConfigChanges = false;\n const configChanges = this.applyConfig(config);\n if (configChanges) {\n requestAnimationFrame(() => {\n this.emit(\n \"config\",\n this._configWithVisualLink,\n this.range,\n confirmed,\n configChanges,\n );\n });\n }\n }\n\n get impendingConfig() {\n return this._impendingConfigWithVisualLink;\n }\n /**\n * This can be set by subclass in cases where we want to await ACK of async request\n * before we go ahead and apply change to config.\n * It is set in place of 'config' itself and it is then the responsibility of the client\n * to call 'confirmConfigChange' once confirmation of the change is received.\n * Client can check 'isAwaitingConfirmationOfConfigChange' to see if a change is pending\n * confirmation.\n */\n set impendingConfig(config: undefined | WithBaseFilter<WithFullConfig>) {\n if (config) {\n this.awaitingConfirmationOfConfigChanges = true;\n const configChanges = this.applyConfig(config);\n if (configChanges) {\n this.emit(\"config\", this.config, this.range, false, configChanges);\n }\n } else {\n throw Error(\n `[BaseDataSource] ''unsetting impendingConfig is not currently supported`,\n );\n }\n }\n\n get pageCount() {\n return this.#pageCount;\n }\n\n set pageCount(pageCount: number) {\n if (pageCount !== this.#pageCount) {\n this.#pageCount = pageCount;\n this.emit(\"page-count\", pageCount);\n }\n }\n\n get range() {\n return this._range;\n }\n\n set range(range: Range) {\n if (range.from !== this._range.from || range.to !== this._range.to) {\n this._range = range;\n this.pageCount = Math.ceil(this._size / (range.to - range.from));\n this.rangeRequest(range.withBuffer);\n requestAnimationFrame(() => {\n this.emit(\"range\", range);\n });\n }\n }\n\n get size() {\n return this._size;\n }\n\n set size(size: number) {\n this._size = size;\n if (this.range.to !== 0) {\n const pageCount = Math.ceil(size / (this.range.to - this.range.from));\n this.pageCount = pageCount;\n }\n }\n\n get sort() {\n return this._configWithVisualLink.sort;\n }\n\n set sort(sort: VuuSort) {\n this.config = {\n ...this._configWithVisualLink,\n sort,\n };\n this.emit(\"config\", this._configWithVisualLink, this.range);\n }\n\n get title() {\n return this._title ?? \"\";\n }\n\n set title(title: string) {\n this._title = title;\n this.emit(\"title-changed\", this.viewport ?? \"\", title);\n }\n\n private applyConfig(\n config: WithBaseFilter<DataSourceConfig>,\n preserveExistingConfigAttributes = false,\n ): DataSourceConfigChanges | undefined {\n const { noChanges, ...otherChanges } = isConfigChanged(\n this._configWithVisualLink,\n config,\n );\n if (noChanges !== true) {\n if (config) {\n const newConfig: DataSourceConfig =\n config?.filterSpec?.filter &&\n config?.filterSpec.filterStruct === undefined\n ? {\n ...config,\n filterSpec: {\n filter: config.filterSpec.filter,\n filterStruct: parseFilter(config.filterSpec.filter),\n },\n }\n : config;\n if (preserveExistingConfigAttributes) {\n if (this.awaitingConfirmationOfConfigChanges) {\n this._impendingConfigWithVisualLink = {\n ...this._configWithVisualLink,\n ...config,\n };\n } else {\n this._impendingConfigWithVisualLink = undefined;\n this._configWithVisualLink = {\n ...this._configWithVisualLink,\n ...config,\n };\n }\n } else {\n if (this.awaitingConfirmationOfConfigChanges) {\n this._impendingConfigWithVisualLink = withConfigDefaults(newConfig);\n } else {\n this._impendingConfigWithVisualLink = undefined;\n this._configWithVisualLink = withConfigDefaults(newConfig);\n }\n }\n return otherChanges;\n }\n }\n }\n\n freeze() {\n if (!this.isFrozen) {\n this.#freezeTimestamp = new Date().getTime();\n this.emit(\"freeze\", true, this.#freezeTimestamp);\n } else {\n throw Error(\n \"[BaseDataSource] cannot freeze, dataSource is already frozen\",\n );\n }\n }\n unfreeze() {\n if (this.isFrozen) {\n const freezeTimestamp = this.#freezeTimestamp as number;\n this.#freezeTimestamp = undefined;\n this.emit(\"freeze\", false, freezeTimestamp);\n } else {\n throw Error(\n \"[BaseDataSource] cannot freeze, dataSource is already frozen\",\n );\n }\n }\n get freezeTimestamp() {\n return this.#freezeTimestamp;\n }\n\n get isFrozen() {\n return typeof this.#freezeTimestamp === \"number\";\n }\n\n abstract rangeRequest(range: VuuRange): void;\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,IAAA,gBAAA,EAAA,UAAA;AAoCO,MAAM,oBAAgD,GAAA;AAAA,EAC3D,iBAAmB,EAAA;AACrB;AAEO,MAAe,uBACZ,YAEV,CAAA;AAAA,EAkBE,WAAY,CAAA;AAAA,IACV,YAAA;AAAA,IACA,cAAA;AAAA,IACA,OAAA;AAAA,IACA,UAAA;AAAA,IACA,OAAA;AAAA,IACA,IAAA;AAAA,IACA,aAAgB,GAAA,oBAAA;AAAA,IAChB,KAAA;AAAA,IACA;AAAA,GAC4C,EAAA;AAC5C,IAAM,KAAA,EAAA;AA3BR;AAAA,IAAO,aAAA,CAAA,IAAA,EAAA,UAAA,CAAA;AAEP,IAAU,aAAA,CAAA,IAAA,EAAA,iBAAA,CAAA;AACV,IAAA,aAAA,CAAA,IAAA,EAAU,uBAA8C,EAAA,aAAA,CAAA;AACxD,IAAU,aAAA,CAAA,IAAA,EAAA,gCAAA,CAAA;AAEV,IAAU,aAAA,CAAA,IAAA,EAAA,QAAA,EAAS,KAAM,CAAA,CAAA,EAAG,CAAC,CAAA,CAAA;AAC7B,IAAA,aAAA,CAAA,IAAA,EAAU,OAAQ,EAAA,CAAA,CAAA;AAClB,IAAU,aAAA,CAAA,IAAA,EAAA,QAAA,CAAA;AACV,IAAU,aAAA,CAAA,IAAA,EAAA,uBAAA,CAAA;AAEV,IAAA,YAAA,CAAA,IAAA,EAAA,gBAAA,CAAA;AACA,IAAa,YAAA,CAAA,IAAA,EAAA,UAAA,EAAA,CAAA,CAAA;AAEb,IAAA,aAAA,CAAA,IAAA,EAAQ,qCAAsC,EAAA,KAAA,CAAA;AAc5C,IAAA,IAAA,CAAK,qBAAwB,GAAA;AAAA,MAC3B,GAAG,IAAK,CAAA,qBAAA;AAAA,MACR,YAAA,EAAc,YAAgB,IAAA,IAAA,CAAK,qBAAsB,CAAA,YAAA;AAAA,MACzD,cAAA,EACE,cAAkB,IAAA,IAAA,CAAK,qBAAsB,CAAA,cAAA;AAAA,MAC/C,OAAA,EAAS,OAAW,IAAA,IAAA,CAAK,qBAAsB,CAAA,OAAA;AAAA,MAC/C,UAAA,EAAY,UAAc,IAAA,IAAA,CAAK,qBAAsB,CAAA,UAAA;AAAA,MACrD,OAAA,EAAS,OAAW,IAAA,IAAA,CAAK,qBAAsB,CAAA,OAAA;AAAA,MAC/C,IAAA,EAAM,IAAQ,IAAA,IAAA,CAAK,qBAAsB,CAAA;AAAA,KAC3C;AACA,IAAA,IAAA,CAAK,qBAAwB,GAAA,aAAA;AAC7B,IAAA,IAAA,CAAK,MAAS,GAAA,KAAA;AACd,IAAA,IAAA,CAAK,WAAW,QAAY,IAAA,EAAA;AAAA;AAC9B,EAEA,SACE,CAAA;AAAA,IACE,cAAA;AAAA,IACA,OAAA;AAAA,IACA,YAAA;AAAA,IACA,KAAA;AAAA,IACA,IAAA;AAAA,IACA,OAAA;AAAA,IACA,UAAA;AAAA,IACA,QAAW,GAAA,IAAA,CAAK,QAAa,KAAA,IAAA,CAAK,WAAW,IAAK,EAAA;AAAA,KAEpD,QACA,EAAA;AACA,IAAA,IAAA,CAAK,eAAkB,GAAA,QAAA;AACvB,IAAA,IAAA,CAAK,QAAW,GAAA,QAAA;AAEhB,IAAA,IACE,YACA,IAAA,cAAA,IACA,OACA,IAAA,UAAA,IACA,WACA,IACA,EAAA;AACA,MAAA,IAAA,CAAK,qBAAwB,GAAA;AAAA,QAC3B,GAAG,IAAK,CAAA,qBAAA;AAAA,QACR,YAAA,EAAc,YAAgB,IAAA,IAAA,CAAK,qBAAsB,CAAA,YAAA;AAAA,QACzD,cAAA,EACE,cAAkB,IAAA,IAAA,CAAK,qBAAsB,CAAA,cAAA;AAAA,QAC/C,OAAA,EAAS,OAAW,IAAA,IAAA,CAAK,qBAAsB,CAAA,OAAA;AAAA,QAC/C,UAAA,EAAY,UAAc,IAAA,IAAA,CAAK,qBAAsB,CAAA,UAAA;AAAA,QACrD,OAAA,EAAS,OAAW,IAAA,IAAA,CAAK,qBAAsB,CAAA,OAAA;AAAA,QAC/C,IAAA,EAAM,IAAQ,IAAA,IAAA,CAAK,qBAAsB,CAAA;AAAA,OAC3C;AAAA;AAMF,IAAA,IAAI,KAAO,EAAA;AACT,MAAA,IAAA,CAAK,MAAS,GAAA,KAAA;AACd,MAAK,IAAA,CAAA,IAAA,CAAK,SAAS,KAAK,CAAA;AAAA;AAC1B;AACF,EAEA,IAAI,YAAe,GAAA;AACjB,IAAA,OAAO,KAAK,qBAAsB,CAAA,YAAA;AAAA;AACpC,EAEA,IAAI,aAAa,YAAgC,EAAA;AAC/C,IAAA,IAAA,CAAK,MAAS,GAAA;AAAA,MACZ,GAAG,IAAK,CAAA,qBAAA;AAAA,MACR;AAAA,KACF;AACA,IAAA,IAAA,CAAK,IAAK,CAAA,QAAA,EAAU,IAAK,CAAA,qBAAA,EAAuB,KAAK,KAAK,CAAA;AAAA;AAC5D,EAEA,IAAI,UAAa,GAAA;AACf,IAAA,OAAO,KAAK,qBAAsB,CAAA,cAAA;AAAA;AACpC,EAEA,IAAI,WAAW,UAA0C,EAAA;AACvD,IAAA,IAAA,CAAK,MAAS,GAAA;AAAA,MACZ,GAAG,IAAK,CAAA,qBAAA;AAAA,MACR,cAAgB,EAAA;AAAA,KAClB;AAAA;AACF,EAEA,IAAI,OAAU,GAAA;AACZ,IAAA,OAAO,KAAK,qBAAsB,CAAA,OAAA;AAAA;AACpC,EAEA,IAAI,QAAQ,OAAmB,EAAA;AAC7B,IAAA,IAAA,CAAK,MAAS,GAAA;AAAA,MACZ,GAAG,IAAK,CAAA,qBAAA;AAAA,MACR;AAAA,KACF;AAAA;AACF,EAEA,IAAI,MAAS,GAAA;AACX,IAAA,OAAO,KAAK,qBAAsB,CAAA,UAAA;AAAA;AACpC,EAEA,IAAI,OAAO,MAA0B,EAAA;AACnC,IAAA,IAAA,CAAK,MAAS,GAAA;AAAA,MACZ,GAAG,IAAK,CAAA,qBAAA;AAAA,MACR,UAAY,EAAA;AAAA,KACd;AAAA;AACF,EAEA,UAAU,MAAgB,EAAA;AACxB,IAAA,MAAM,gBAAqC,GAAA;AAAA,MACzC,MAAA,EAAQ,cAAc,MAAM,CAAA;AAAA,MAC5B,YAAc,EAAA;AAAA,KAChB;AACA,IAAA,IAAA,CAAK,MAAS,GAAA,gBAAA;AAAA;AAChB,EAEA,WAAc,GAAA;AACZ,IAAK,IAAA,CAAA,MAAA,GAAS,EAAE,MAAA,EAAQ,EAAG,EAAA;AAAA;AAC7B,EAEA,IAAI,oCAAuC,GAAA;AACzC,IAAA,OAAO,KAAK,8BAAmC,KAAA,KAAA,CAAA;AAAA;AACjD,EAEU,mBAAsB,GAAA;AAC9B,IAAA,IAAI,KAAK,8BAAgC,EAAA;AACvC,MAAA,IAAA,CAAK,wBAAwB,IAAK,CAAA,8BAAA;AAClC,MAAA,IAAA,CAAK,8BAAiC,GAAA,KAAA,CAAA;AACtC,MAAA,IAAA,CAAK,KAAK,QAAU,EAAA,IAAA,CAAK,qBAAuB,EAAA,IAAA,CAAK,OAAO,IAAI,CAAA;AAAA,KAC3D,MAAA;AACL,MAAM,MAAA,KAAA;AAAA,QACJ,CAAA,4EAAA;AAAA,OACF;AAAA;AACF;AACF,EAEA,IAAI,MAAS,GAAA;AACX,IAAO,OAAA,eAAA;AAAA,MACL,IAAA,CAAK,kCAAkC,IAAK,CAAA;AAAA,KAC9C;AAAA;AACF,EAEA,IAAI,OAAO,MAAwC,EAAA;AACjD,IAAM,MAAA,SAAA,GAAY,IAAK,CAAA,mCAAA,GACnB,IACA,GAAA,KAAA,CAAA;AAEJ,IAAA,IAAA,CAAK,mCAAsC,GAAA,KAAA;AAC3C,IAAM,MAAA,aAAA,GAAgB,IAAK,CAAA,WAAA,CAAY,MAAM,CAAA;AAC7C,IAAA,IAAI,aAAe,EAAA;AACjB,MAAA,qBAAA,CAAsB,MAAM;AAC1B,QAAK,IAAA,CAAA,IAAA;AAAA,UACH,QAAA;AAAA,UACA,IAAK,CAAA,qBAAA;AAAA,UACL,IAAK,CAAA,KAAA;AAAA,UACL,SAAA;AAAA,UACA;AAAA,SACF;AAAA,OACD,CAAA;AAAA;AACH;AACF,EAEA,IAAI,eAAkB,GAAA;AACpB,IAAA,OAAO,IAAK,CAAA,8BAAA;AAAA;AACd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,IAAI,gBAAgB,MAAoD,EAAA;AACtE,IAAA,IAAI,MAAQ,EAAA;AACV,MAAA,IAAA,CAAK,mCAAsC,GAAA,IAAA;AAC3C,MAAM,MAAA,aAAA,GAAgB,IAAK,CAAA,WAAA,CAAY,MAAM,CAAA;AAC7C,MAAA,IAAI,aAAe,EAAA;AACjB,QAAA,IAAA,CAAK,KAAK,QAAU,EAAA,IAAA,CAAK,QAAQ,IAAK,CAAA,KAAA,EAAO,OAAO,aAAa,CAAA;AAAA;AACnE,KACK,MAAA;AACL,MAAM,MAAA,KAAA;AAAA,QACJ,CAAA,uEAAA;AAAA,OACF;AAAA;AACF;AACF,EAEA,IAAI,SAAY,GAAA;AACd,IAAA,OAAO,YAAK,CAAA,IAAA,EAAA,UAAA,CAAA;AAAA;AACd,EAEA,IAAI,UAAU,SAAmB,EAAA;AAC/B,IAAI,IAAA,SAAA,KAAc,mBAAK,UAAY,CAAA,EAAA;AACjC,MAAA,YAAA,CAAA,IAAA,EAAK,UAAa,EAAA,SAAA,CAAA;AAClB,MAAK,IAAA,CAAA,IAAA,CAAK,cAAc,SAAS,CAAA;AAAA;AACnC;AACF,EAEA,IAAI,KAAQ,GAAA;AACV,IAAA,OAAO,IAAK,CAAA,MAAA;AAAA;AACd,EAEA,IAAI,MAAM,KAAc,EAAA;AACtB,IAAI,IAAA,KAAA,CAAM,SAAS,IAAK,CAAA,MAAA,CAAO,QAAQ,KAAM,CAAA,EAAA,KAAO,IAAK,CAAA,MAAA,CAAO,EAAI,EAAA;AAClE,MAAA,IAAA,CAAK,MAAS,GAAA,KAAA;AACd,MAAK,IAAA,CAAA,SAAA,GAAY,KAAK,IAAK,CAAA,IAAA,CAAK,SAAS,KAAM,CAAA,EAAA,GAAK,MAAM,IAAK,CAAA,CAAA;AAC/D,MAAK,IAAA,CAAA,YAAA,CAAa,MAAM,UAAU,CAAA;AAClC,MAAA,qBAAA,CAAsB,MAAM;AAC1B,QAAK,IAAA,CAAA,IAAA,CAAK,SAAS,KAAK,CAAA;AAAA,OACzB,CAAA;AAAA;AACH;AACF,EAEA,IAAI,IAAO,GAAA;AACT,IAAA,OAAO,IAAK,CAAA,KAAA;AAAA;AACd,EAEA,IAAI,KAAK,IAAc,EAAA;AACrB,IAAA,IAAA,CAAK,KAAQ,GAAA,IAAA;AACb,IAAI,IAAA,IAAA,CAAK,KAAM,CAAA,EAAA,KAAO,CAAG,EAAA;AACvB,MAAM,MAAA,SAAA,GAAY,KAAK,IAAK,CAAA,IAAA,IAAQ,KAAK,KAAM,CAAA,EAAA,GAAK,IAAK,CAAA,KAAA,CAAM,IAAK,CAAA,CAAA;AACpE,MAAA,IAAA,CAAK,SAAY,GAAA,SAAA;AAAA;AACnB;AACF,EAEA,IAAI,IAAO,GAAA;AACT,IAAA,OAAO,KAAK,qBAAsB,CAAA,IAAA;AAAA;AACpC,EAEA,IAAI,KAAK,IAAe,EAAA;AACtB,IAAA,IAAA,CAAK,MAAS,GAAA;AAAA,MACZ,GAAG,IAAK,CAAA,qBAAA;AAAA,MACR;AAAA,KACF;AACA,IAAA,IAAA,CAAK,IAAK,CAAA,QAAA,EAAU,IAAK,CAAA,qBAAA,EAAuB,KAAK,KAAK,CAAA;AAAA;AAC5D,EAEA,IAAI,KAAQ,GAAA;AACV,IAAA,OAAO,KAAK,MAAU,IAAA,EAAA;AAAA;AACxB,EAEA,IAAI,MAAM,KAAe,EAAA;AACvB,IAAA,IAAA,CAAK,MAAS,GAAA,KAAA;AACd,IAAA,IAAA,CAAK,IAAK,CAAA,eAAA,EAAiB,IAAK,CAAA,QAAA,IAAY,IAAI,KAAK,CAAA;AAAA;AACvD,EAEQ,WAAA,CACN,MACA,EAAA,gCAAA,GAAmC,KACE,EAAA;AACrC,IAAA,MAAM,EAAE,SAAA,EAAW,GAAG,YAAA,EAAiB,GAAA,eAAA;AAAA,MACrC,IAAK,CAAA,qBAAA;AAAA,MACL;AAAA,KACF;AACA,IAAA,IAAI,cAAc,IAAM,EAAA;AACtB,MAAA,IAAI,MAAQ,EAAA;AACV,QAAA,MAAM,YACJ,MAAQ,EAAA,UAAA,EAAY,UACpB,MAAQ,EAAA,UAAA,CAAW,iBAAiB,KAChC,CAAA,GAAA;AAAA,UACE,GAAG,MAAA;AAAA,UACH,UAAY,EAAA;AAAA,YACV,MAAA,EAAQ,OAAO,UAAW,CAAA,MAAA;AAAA,YAC1B,YAAc,EAAA,WAAA,CAAY,MAAO,CAAA,UAAA,CAAW,MAAM;AAAA;AACpD,SAEF,GAAA,MAAA;AACN,QAAA,IAAI,gCAAkC,EAAA;AACpC,UAAA,IAAI,KAAK,mCAAqC,EAAA;AAC5C,YAAA,IAAA,CAAK,8BAAiC,GAAA;AAAA,cACpC,GAAG,IAAK,CAAA,qBAAA;AAAA,cACR,GAAG;AAAA,aACL;AAAA,WACK,MAAA;AACL,YAAA,IAAA,CAAK,8BAAiC,GAAA,KAAA,CAAA;AACtC,YAAA,IAAA,CAAK,qBAAwB,GAAA;AAAA,cAC3B,GAAG,IAAK,CAAA,qBAAA;AAAA,cACR,GAAG;AAAA,aACL;AAAA;AACF,SACK,MAAA;AACL,UAAA,IAAI,KAAK,mCAAqC,EAAA;AAC5C,YAAK,IAAA,CAAA,8BAAA,GAAiC,mBAAmB,SAAS,CAAA;AAAA,WAC7D,MAAA;AACL,YAAA,IAAA,CAAK,8BAAiC,GAAA,KAAA,CAAA;AACtC,YAAK,IAAA,CAAA,qBAAA,GAAwB,mBAAmB,SAAS,CAAA;AAAA;AAC3D;AAEF,QAAO,OAAA,YAAA;AAAA;AACT;AACF;AACF,EAEA,MAAS,GAAA;AACP,IAAI,IAAA,CAAC,KAAK,QAAU,EAAA;AAClB,MAAA,YAAA,CAAA,IAAA,EAAK,gBAAmB,EAAA,iBAAA,IAAI,IAAK,EAAA,EAAE,OAAQ,EAAA,CAAA;AAC3C,MAAA,IAAA,CAAK,IAAK,CAAA,QAAA,EAAU,IAAM,EAAA,YAAA,CAAA,IAAA,EAAK,gBAAgB,CAAA,CAAA;AAAA,KAC1C,MAAA;AACL,MAAM,MAAA,KAAA;AAAA,QACJ;AAAA,OACF;AAAA;AACF;AACF,EACA,QAAW,GAAA;AACT,IAAA,IAAI,KAAK,QAAU,EAAA;AACjB,MAAA,MAAM,kBAAkB,YAAK,CAAA,IAAA,EAAA,gBAAA,CAAA;AAC7B,MAAA,YAAA,CAAA,IAAA,EAAK,gBAAmB,EAAA,KAAA,CAAA,CAAA;AACxB,MAAK,IAAA,CAAA,IAAA,CAAK,QAAU,EAAA,KAAA,EAAO,eAAe,CAAA;AAAA,KACrC,MAAA;AACL,MAAM,MAAA,KAAA;AAAA,QACJ;AAAA,OACF;AAAA;AACF;AACF,EACA,IAAI,eAAkB,GAAA;AACpB,IAAA,OAAO,YAAK,CAAA,IAAA,EAAA,gBAAA,CAAA;AAAA;AACd,EAEA,IAAI,QAAW,GAAA;AACb,IAAO,OAAA,OAAO,mBAAK,gBAAqB,CAAA,KAAA,QAAA;AAAA;AAI5C;AAjVE,gBAAA,GAAA,IAAA,OAAA,EAAA;AACA,UAAA,GAAA,IAAA,OAAA,EAAA;;;;"}
@@ -1,8 +0,0 @@
1
- const isVisualLinksAction = (action) => action.type === "vuu-links";
2
- const isVisualLinkCreatedAction = (action) => action.type === "vuu-link-created";
3
- const isVisualLinkRemovedAction = (action) => action.type === "vuu-link-removed";
4
- const isViewportMenusAction = (action) => action.type === "vuu-menu";
5
- const isVuuFeatureAction = (action) => isViewportMenusAction(action) || isVisualLinksAction(action);
6
-
7
- export { isViewportMenusAction, isVisualLinkCreatedAction, isVisualLinkRemovedAction, isVisualLinksAction, isVuuFeatureAction };
8
- //# sourceMappingURL=datasource-action-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"datasource-action-utils.js","sources":["../../../../../../../packages/vuu-utils/src/datasource/datasource-action-utils.ts"],"sourcesContent":["import {\n DataSourceMenusMessage,\n DataSourceVisualLinkCreatedMessage,\n DataSourceVisualLinkRemovedMessage,\n DataSourceVisualLinksMessage,\n VuuFeatureMessage,\n} from \"@vuu-ui/vuu-data-types\";\nimport { GridAction } from \"@vuu-ui/vuu-table-types\";\n\nexport const isVisualLinksAction = (\n action: GridAction,\n): action is DataSourceVisualLinksMessage => action.type === \"vuu-links\";\n\nexport const isVisualLinkCreatedAction = (\n action: GridAction,\n): action is DataSourceVisualLinkCreatedMessage =>\n action.type === \"vuu-link-created\";\n\nexport const isVisualLinkRemovedAction = (\n action: GridAction,\n): action is DataSourceVisualLinkRemovedMessage =>\n action.type === \"vuu-link-removed\";\n\nexport const isViewportMenusAction = (\n action: GridAction,\n): action is DataSourceMenusMessage => action.type === \"vuu-menu\";\n\nexport const isVuuFeatureAction = (\n action: GridAction,\n): action is VuuFeatureMessage =>\n isViewportMenusAction(action) || isVisualLinksAction(action);\n"],"names":[],"mappings":"AASO,MAAM,mBAAsB,GAAA,CACjC,MAC2C,KAAA,MAAA,CAAO,IAAS,KAAA;AAEtD,MAAM,yBAA4B,GAAA,CACvC,MAEA,KAAA,MAAA,CAAO,IAAS,KAAA;AAEX,MAAM,yBAA4B,GAAA,CACvC,MAEA,KAAA,MAAA,CAAO,IAAS,KAAA;AAEX,MAAM,qBAAwB,GAAA,CACnC,MACqC,KAAA,MAAA,CAAO,IAAS,KAAA;AAEhD,MAAM,qBAAqB,CAChC,MAAA,KAEA,sBAAsB,MAAM,CAAA,IAAK,oBAAoB,MAAM;;;;"}
@@ -1,38 +0,0 @@
1
- import { parseFilter } from '@vuu-ui/vuu-filter-parser';
2
-
3
- const combineFilters = ({
4
- baseFilterSpec,
5
- filterSpec,
6
- ...config
7
- }) => {
8
- if (baseFilterSpec === void 0 || baseFilterSpec.filter === "") {
9
- if (filterSpec.filterStruct || filterSpec.filter === "") {
10
- return {
11
- ...config,
12
- filterSpec
13
- };
14
- } else {
15
- return {
16
- ...config,
17
- filterSpec: {
18
- filter: filterSpec.filter,
19
- filterStruct: parseFilter(filterSpec.filter)
20
- }
21
- };
22
- }
23
- } else {
24
- const baseFilterQuery = baseFilterSpec.filter;
25
- const combinedFilter = filterSpec.filter.length > 0 && baseFilterQuery.length > 0 ? `${filterSpec.filter} and ${baseFilterQuery}` : filterSpec.filter || baseFilterQuery;
26
- const newConfig = {
27
- ...config,
28
- filterSpec: {
29
- filter: combinedFilter,
30
- filterStruct: combinedFilter.length > 0 ? parseFilter(combinedFilter) : void 0
31
- }
32
- };
33
- return newConfig;
34
- }
35
- };
36
-
37
- export { combineFilters };
38
- //# sourceMappingURL=datasource-filter-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"datasource-filter-utils.js","sources":["../../../../../../../packages/vuu-utils/src/datasource/datasource-filter-utils.ts"],"sourcesContent":["import { WithBaseFilter, WithFullConfig } from \"@vuu-ui/vuu-data-types\";\nimport { parseFilter } from \"@vuu-ui/vuu-filter-parser\";\n\n// TODO as we mugrate to a Filter only API, remove parseFilter\nexport const combineFilters = ({\n baseFilterSpec,\n filterSpec,\n ...config\n}: WithBaseFilter<WithFullConfig>) => {\n if (baseFilterSpec === undefined || baseFilterSpec.filter === \"\") {\n if (filterSpec.filterStruct || filterSpec.filter === \"\") {\n return {\n ...config,\n filterSpec,\n };\n } else {\n return {\n ...config,\n filterSpec: {\n filter: filterSpec.filter,\n filterStruct: parseFilter(filterSpec.filter),\n },\n };\n }\n } else {\n const baseFilterQuery = baseFilterSpec.filter;\n const combinedFilter =\n filterSpec.filter.length > 0 && baseFilterQuery.length > 0\n ? `${filterSpec.filter} and ${baseFilterQuery}`\n : filterSpec.filter || baseFilterQuery;\n\n const newConfig: WithFullConfig = {\n ...config,\n filterSpec: {\n filter: combinedFilter,\n filterStruct:\n combinedFilter.length > 0 ? parseFilter(combinedFilter) : undefined,\n },\n };\n\n return newConfig;\n }\n};\n"],"names":[],"mappings":";;AAIO,MAAM,iBAAiB,CAAC;AAAA,EAC7B,cAAA;AAAA,EACA,UAAA;AAAA,EACA,GAAG;AACL,CAAsC,KAAA;AACpC,EAAA,IAAI,cAAmB,KAAA,KAAA,CAAA,IAAa,cAAe,CAAA,MAAA,KAAW,EAAI,EAAA;AAChE,IAAA,IAAI,UAAW,CAAA,YAAA,IAAgB,UAAW,CAAA,MAAA,KAAW,EAAI,EAAA;AACvD,MAAO,OAAA;AAAA,QACL,GAAG,MAAA;AAAA,QACH;AAAA,OACF;AAAA,KACK,MAAA;AACL,MAAO,OAAA;AAAA,QACL,GAAG,MAAA;AAAA,QACH,UAAY,EAAA;AAAA,UACV,QAAQ,UAAW,CAAA,MAAA;AAAA,UACnB,YAAA,EAAc,WAAY,CAAA,UAAA,CAAW,MAAM;AAAA;AAC7C,OACF;AAAA;AACF,GACK,MAAA;AACL,IAAA,MAAM,kBAAkB,cAAe,CAAA,MAAA;AACvC,IAAA,MAAM,cACJ,GAAA,UAAA,CAAW,MAAO,CAAA,MAAA,GAAS,KAAK,eAAgB,CAAA,MAAA,GAAS,CACrD,GAAA,CAAA,EAAG,WAAW,MAAM,CAAA,KAAA,EAAQ,eAAe,CAAA,CAAA,GAC3C,WAAW,MAAU,IAAA,eAAA;AAE3B,IAAA,MAAM,SAA4B,GAAA;AAAA,MAChC,GAAG,MAAA;AAAA,MACH,UAAY,EAAA;AAAA,QACV,MAAQ,EAAA,cAAA;AAAA,QACR,cACE,cAAe,CAAA,MAAA,GAAS,CAAI,GAAA,WAAA,CAAY,cAAc,CAAI,GAAA,KAAA;AAAA;AAC9D,KACF;AAEA,IAAO,OAAA,SAAA;AAAA;AAEX;;;;"}
@@ -1,193 +0,0 @@
1
- const NoFilter = { filter: "" };
2
- const NoSort = { sortDefs: [] };
3
- const vanillaConfig = {
4
- aggregations: [],
5
- columns: [],
6
- filterSpec: NoFilter,
7
- groupBy: [],
8
- sort: NoSort
9
- };
10
- const stripVisualLink = (configWithVisualLink) => {
11
- if (configWithVisualLink.visualLink) {
12
- const { visualLink, ...config } = configWithVisualLink;
13
- return config;
14
- } else {
15
- return configWithVisualLink;
16
- }
17
- };
18
- const equivalentAggregations = ({ aggregations: agg1 }, { aggregations: agg2 }) => agg1 === void 0 && agg2?.length === 0 || agg2 === void 0 && agg1?.length === 0;
19
- const equivalentColumns = ({ columns: cols1 }, { columns: cols2 }) => cols1 === void 0 && cols2?.length === 0 || cols2 === void 0 && cols1?.length === 0;
20
- const equivalentFilter = ({ filterSpec: f1 }, { filterSpec: f2 }) => f1 === void 0 && f2?.filter === "" || f2 === void 0 && f1?.filter === "";
21
- const equivalentGroupBy = ({ groupBy: val1 }, { groupBy: val2 }) => val1 === void 0 && val2?.length === 0 || val2 === void 0 && val1?.length === 0;
22
- const equivalentSort = ({ sort: s1 }, { sort: s2 }) => s1 === void 0 && s2?.sortDefs.length === 0 || s2 === void 0 && s1?.sortDefs.length === 0;
23
- const exactlyTheSame = (a, b) => {
24
- if (a === b) {
25
- return true;
26
- } else if (a === void 0 && b === void 0) {
27
- return true;
28
- } else {
29
- return false;
30
- }
31
- };
32
- const isAggregationsChanged = (config, newConfig) => {
33
- const { aggregations: agg1 } = config;
34
- const { aggregations: agg2 } = newConfig;
35
- if (exactlyTheSame(agg1, agg2) || equivalentAggregations(config, newConfig)) {
36
- return false;
37
- } else if (agg1 === void 0 || agg2 === void 0) {
38
- return true;
39
- } else if (agg1.length !== agg2.length) {
40
- return true;
41
- }
42
- return agg1.some(
43
- ({ column, aggType }, i) => column !== agg2[i].column || aggType !== agg2[i].aggType
44
- );
45
- };
46
- const isColumnsChanged = (config, newConfig) => {
47
- const { columns: cols1 } = config;
48
- const { columns: cols2 } = newConfig;
49
- if (exactlyTheSame(cols1, cols2) || equivalentColumns(config, newConfig)) {
50
- return false;
51
- } else if (cols1 === void 0 || cols2 === void 0) {
52
- return true;
53
- } else if (cols1?.length !== cols2?.length) {
54
- return true;
55
- }
56
- return cols1.some((column, i) => column !== cols2?.[i]);
57
- };
58
- const isBaseFilterChanged = (c1, c2) => {
59
- if (equivalentFilter(c1, c2)) {
60
- return false;
61
- } else {
62
- return c1.baseFilterSpec?.filter !== c2.baseFilterSpec?.filter;
63
- }
64
- };
65
- const isFilterChanged = (c1, c2) => {
66
- if (equivalentFilter(c1, c2)) {
67
- return false;
68
- } else {
69
- return c1.filterSpec?.filter !== c2.filterSpec?.filter;
70
- }
71
- };
72
- const isGroupByChanged = (config, newConfig) => {
73
- const { groupBy: g1 } = config;
74
- const { groupBy: g2 } = newConfig;
75
- if (exactlyTheSame(g1, g2) || equivalentGroupBy(config, newConfig)) {
76
- return false;
77
- } else if (g1 === void 0 || g2 === void 0) {
78
- return true;
79
- } else if (g1?.length !== g2?.length) {
80
- return true;
81
- }
82
- return g1.some((column, i) => column !== g2?.[i]);
83
- };
84
- const isSortChanged = (config, newConfig) => {
85
- const { sort: s1 } = config;
86
- const { sort: s2 } = newConfig;
87
- if (exactlyTheSame(s1, s2) || equivalentSort(config, newConfig)) {
88
- return false;
89
- } else if (s1 === void 0 || s2 === void 0) {
90
- return true;
91
- } else if (s1?.sortDefs.length !== s2?.sortDefs.length) {
92
- return true;
93
- }
94
- return s1.sortDefs.some(
95
- ({ column, sortType }, i) => column !== s2.sortDefs[i].column || sortType !== s2.sortDefs[i].sortType
96
- );
97
- };
98
- const isVisualLinkChanged = ({ visualLink: v1 }, { visualLink: v2 }) => {
99
- if (exactlyTheSame(v1, v2)) {
100
- return false;
101
- }
102
- if (v1 === void 0 || v2 === void 0) {
103
- return true;
104
- }
105
- return v1.label !== v2.label || v2.parentVpId !== v2.parentVpId;
106
- };
107
- const NO_CONFIG_CHANGES = {
108
- aggregationsChanged: false,
109
- baseFilterChanged: false,
110
- columnsChanged: false,
111
- filterChanged: false,
112
- groupByChanged: false,
113
- noChanges: true,
114
- sortChanged: false,
115
- visualLinkChanged: false
116
- };
117
- const isConfigChanged = (config, newConfig) => {
118
- if (exactlyTheSame(config, newConfig)) {
119
- return NO_CONFIG_CHANGES;
120
- }
121
- if (config === void 0 && newConfig == void 0) {
122
- return NO_CONFIG_CHANGES;
123
- } else if (config === void 0) {
124
- return isConfigChanged({}, newConfig);
125
- } else if (newConfig === void 0) {
126
- return isConfigChanged(config, {});
127
- }
128
- const aggregationsChanged = isAggregationsChanged(config, newConfig);
129
- const baseFilterChanged = isBaseFilterChanged(config, newConfig);
130
- const columnsChanged = isColumnsChanged(config, newConfig);
131
- const filterChanged = isFilterChanged(config, newConfig);
132
- const groupByChanged = isGroupByChanged(config, newConfig);
133
- const sortChanged = isSortChanged(config, newConfig);
134
- const visualLinkChanged = isVisualLinkChanged(config, newConfig);
135
- const noChanges = !(aggregationsChanged || baseFilterChanged || columnsChanged || filterChanged || groupByChanged || sortChanged || visualLinkChanged);
136
- return {
137
- aggregationsChanged,
138
- baseFilterChanged,
139
- columnsChanged,
140
- filterChanged,
141
- groupByChanged,
142
- noChanges,
143
- sortChanged,
144
- visualLinkChanged
145
- };
146
- };
147
- const hasGroupBy = (config) => config !== void 0 && config.groupBy !== void 0 && config.groupBy.length > 0;
148
- const hasBaseFilter = (config) => config?.baseFilterSpec !== void 0 && config.baseFilterSpec.filter.length > 0;
149
- const hasFilter = (config) => config?.filterSpec !== void 0 && config.filterSpec.filter.length > 0;
150
- const hasSort = (config) => config?.sort !== void 0 && Array.isArray(config.sort?.sortDefs) && config.sort.sortDefs.length > 0;
151
- const isTypeaheadSuggestionProvider = (source) => typeof source["getTypeaheadSuggestions"] === "function";
152
- const isTableSchemaMessage = (message) => message.type === "TABLE_META_RESP";
153
- const isConnectionQualityMetrics = (msg) => msg.type === "connection-metrics";
154
- const messageHasResult = (msg) => typeof msg.result !== "undefined";
155
- const isVisualLinkMessage = (msg) => msg.type.endsWith("_VISUAL_LINK");
156
- const isVisualLinksMessage = (msg) => msg.type === "vuu-links";
157
- const isViewportMessage = (msg) => "viewport" in msg;
158
- const messageHasDataRows = (message) => message.type === "viewport-update" && Array.isArray(message.rows);
159
- const messageHasSize = (message) => message.type === "viewport-update" && typeof message.size === "number";
160
- const withConfigDefaults = (config) => {
161
- if (config.aggregations && config.baseFilterSpec && config.columns && config.filterSpec && config.groupBy && config.sort) {
162
- return config;
163
- } else {
164
- const {
165
- aggregations = [],
166
- baseFilterSpec: baseFilter = { filter: "" },
167
- columns = [],
168
- filterSpec: filter = { filter: "" },
169
- groupBy = [],
170
- sort = { sortDefs: [] },
171
- visualLink
172
- } = config;
173
- return {
174
- aggregations,
175
- baseFilterSpec: baseFilter,
176
- columns,
177
- filterSpec: filter,
178
- groupBy,
179
- sort,
180
- visualLink
181
- };
182
- }
183
- };
184
- const dataSourceRowToEntity = (row, columnMap) => Object.entries(columnMap).reduce(
185
- (entity, [name, index]) => ({
186
- ...entity,
187
- [name]: row[index]
188
- }),
189
- {}
190
- );
191
-
192
- export { NO_CONFIG_CHANGES, NoFilter, NoSort, dataSourceRowToEntity, hasBaseFilter, hasFilter, hasGroupBy, hasSort, isBaseFilterChanged, isConfigChanged, isConnectionQualityMetrics, isFilterChanged, isGroupByChanged, isTableSchemaMessage, isTypeaheadSuggestionProvider, isViewportMessage, isVisualLinkMessage, isVisualLinksMessage, messageHasDataRows, messageHasResult, messageHasSize, stripVisualLink, vanillaConfig, withConfigDefaults };
193
- //# sourceMappingURL=datasource-utils.js.map