@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
@@ -0,0 +1,26 @@
1
+ class DeferredPromise {
2
+ #promise;
3
+ #resolve = ()=>console.log("resolve was not set");
4
+ #reject = ()=>console.log("reject was not set");
5
+ #resolved = false;
6
+ constructor(){
7
+ this.#promise = new Promise((resolve, reject)=>{
8
+ this.#resolve = resolve;
9
+ this.#reject = reject;
10
+ });
11
+ }
12
+ get promise() {
13
+ return this.#promise;
14
+ }
15
+ get isResolved() {
16
+ return this.#resolved;
17
+ }
18
+ resolve(value) {
19
+ this.#resolved = true;
20
+ return this.#resolve(value);
21
+ }
22
+ get reject() {
23
+ return this.#reject;
24
+ }
25
+ }
26
+ export { DeferredPromise };
@@ -0,0 +1,71 @@
1
+ import { isView } from "./component-registry.js";
2
+ const MENU_RPC_TYPES = [
3
+ "VIEW_PORT_MENUS_SELECT_RPC",
4
+ "VIEW_PORT_MENU_TABLE_RPC",
5
+ "VIEW_PORT_MENU_ROW_RPC",
6
+ "VIEW_PORT_MENU_CELL_RPC"
7
+ ];
8
+ const INVALID_SESSION = "Invalid session";
9
+ const SESSION_LIMIT_EXCEEDED = "User session limit exceeded";
10
+ const INVALID_TOKEN = "Invalid token";
11
+ const TOKEN_EXPIRED = "Token has expired";
12
+ const InvalidLoginMessages = [
13
+ INVALID_SESSION,
14
+ SESSION_LIMIT_EXCEEDED,
15
+ INVALID_TOKEN,
16
+ TOKEN_EXPIRED
17
+ ];
18
+ const isErrorMessage = (message)=>"object" == typeof message && message?.type === "ERROR";
19
+ const isLoginErrorMessage = (message)=>"string" == typeof message && InvalidLoginMessages.includes(message);
20
+ const isSelectRequest = (message)=>message && "object" == typeof message && "type" in message && ("SELECT_ROW" === message.type || "DESELECT_ROW" === message.type || "SELECT_ROW_RANGE" === message.type || "SELECT_ALL" === message.type || "DESELECT_ALL" === message.type);
21
+ const isSelectSuccessWithRowCount = (response)=>[
22
+ "SELECT_ROW_SUCCESS",
23
+ "DESELECT_ROW_SUCCESS",
24
+ "SELECT_ROW_RANGE_SUCCESS",
25
+ "SELECT_ALL_SUCCESS",
26
+ "DESELECT_ALL_SUCCESS"
27
+ ].includes(response.type ?? "") && "number" == typeof response.selectedRowCount;
28
+ const isRpcServiceRequest = (message)=>"RPC_REQUEST" === message.type;
29
+ const hasViewPortContext = (message)=>"VIEWPORT_CONTEXT" === message.context.type;
30
+ const isVuuMenuRpcRequest = (message)=>MENU_RPC_TYPES.includes(message["type"]);
31
+ const isLoginResponse = (message)=>null !== message && "object" == typeof message && "type" in message && ("LOGIN_SUCCESS" === message.type || "LOGIN_FAIL" === message.type);
32
+ const isRpcSuccess = (rpcResult)=>rpcResult?.type === "SUCCESS_RESULT";
33
+ const isRpcError = (rpcResult)=>rpcResult?.type === "ERROR_RESULT";
34
+ const isRequestResponse = (message)=>"requestId" in message;
35
+ const isOpenSessionTableDialogMessage = (rpcResponse)=>"VIEW_PORT_MENU_RESP" === rpcResponse.type && isOpenDialogAction(rpcResponse.action) && "tableSchema" in rpcResponse.action;
36
+ const isOpenDialogAction = (action)=>void 0 !== action && "OPEN_DIALOG_ACTION" === action.type;
37
+ const isTypeaheadRequest = (request)=>isRpcServiceRequest(request) && ("getUniqueFieldValues" === request.rpcName || "getUniqueFieldValuesStartingWith" === request.rpcName);
38
+ const isCreateVpSuccess = (response)=>"CREATE_VP_SUCCESS" === response.type;
39
+ const isSessionTable = (table)=>{
40
+ if (null !== table && "object" == typeof table && "table" in table && "module" in table) return table.table.startsWith("session");
41
+ return false;
42
+ };
43
+ function isActionMessage(rpcResponse) {
44
+ return "VIEW_PORT_MENU_RESP" === rpcResponse.type;
45
+ }
46
+ function isSessionTableActionMessage(rpcResponse) {
47
+ return isActionMessage(rpcResponse) && isOpenDialogAction(rpcResponse.action) && isSessionTable(rpcResponse.action.table) && (rpcResponse.action?.renderComponent === "inline-form" || rpcResponse.action?.renderComponent === "grid");
48
+ }
49
+ function isCustomComponentActionMessage(rpcResponse) {
50
+ return isActionMessage(rpcResponse) && isOpenDialogAction(rpcResponse.action) && isSessionTable(rpcResponse.action.table) && "string" == typeof rpcResponse.action.renderComponent && isView(rpcResponse.action.renderComponent);
51
+ }
52
+ const numericTypes = [
53
+ "int",
54
+ "long",
55
+ "double",
56
+ "scaleddecimal2",
57
+ "scaleddecimal4",
58
+ "scaleddecimal6",
59
+ "scaleddecimal8"
60
+ ];
61
+ function isNumericType(dataType) {
62
+ return numericTypes.includes(dataType);
63
+ }
64
+ const isAddRowRpcRequest = (rpcRequest)=>"addRow" === rpcRequest.rpcName;
65
+ const isEditCellRpcRequest = (rpcRequest)=>"editCell" === rpcRequest.rpcName;
66
+ const isBeginEditSessionRpcRequest = (rpcRequest)=>"beginEditSession" === rpcRequest.rpcName;
67
+ const isEndEditSessionRpcRequest = (rpcRequest)=>"endEditSession" === rpcRequest.rpcName;
68
+ const isUndoRowChangeRpcRequest = (rpcRequest)=>"undoRowChange" === rpcRequest.rpcName;
69
+ const isDeleteSelectedRowsRpcRequest = (rpcRequest)=>"deleteSelectedRows" === rpcRequest.rpcName;
70
+ const isCreateSessionTableRpcRequest = (rpcRequest)=>"createSessionTable" === rpcRequest.rpcName;
71
+ export { INVALID_SESSION, INVALID_TOKEN, SESSION_LIMIT_EXCEEDED, TOKEN_EXPIRED, hasViewPortContext, isActionMessage, isAddRowRpcRequest, isBeginEditSessionRpcRequest, isCreateSessionTableRpcRequest, isCreateVpSuccess, isCustomComponentActionMessage, isDeleteSelectedRowsRpcRequest, isEditCellRpcRequest, isEndEditSessionRpcRequest, isErrorMessage, isLoginErrorMessage, isLoginResponse, isNumericType, isOpenDialogAction, isOpenSessionTableDialogMessage, isRequestResponse, isRpcError, isRpcServiceRequest, isRpcSuccess, isSelectRequest, isSelectSuccessWithRowCount, isSessionTable, isSessionTableActionMessage, isTypeaheadRequest, isUndoRowChangeRpcRequest, isVuuMenuRpcRequest };
@@ -0,0 +1,125 @@
1
+ class RangeImpl {
2
+ from;
3
+ to;
4
+ #baseFrom;
5
+ #renderBufferSize = 0;
6
+ #baseTo;
7
+ constructor(from, to, renderBufferSize = 0){
8
+ this.from = from;
9
+ this.to = to;
10
+ this.#baseFrom = from;
11
+ this.#baseTo = to;
12
+ this.#renderBufferSize = renderBufferSize;
13
+ }
14
+ get reset() {
15
+ return new RangeImpl(0, this.#baseTo - this.#baseFrom, this.#renderBufferSize);
16
+ }
17
+ get withBuffer() {
18
+ return getFullRange(this, this.#renderBufferSize);
19
+ }
20
+ equals(range) {
21
+ return range.from === this.#baseFrom && range.to === this.#baseTo;
22
+ }
23
+ toJson() {
24
+ return {
25
+ from: this.from,
26
+ to: this.to,
27
+ baseFrom: this.#baseFrom,
28
+ baseTo: this.#baseTo,
29
+ renderBufferSize: this.#renderBufferSize
30
+ };
31
+ }
32
+ }
33
+ const Range = (from, to, renderBufferSize)=>new RangeImpl(from, to, renderBufferSize);
34
+ const NULL_RANGE = Range(0, 0);
35
+ function getFullRange({ from, to }, bufferSize = 0, maxRangeEnd = Number.MAX_SAFE_INTEGER) {
36
+ if (0 === from && 0 === to) return {
37
+ from,
38
+ to
39
+ };
40
+ if (0 === bufferSize) if (maxRangeEnd < from) return {
41
+ from: 0,
42
+ to: 0
43
+ };
44
+ else return {
45
+ from,
46
+ to: Math.min(to, maxRangeEnd)
47
+ };
48
+ {
49
+ if (0 === from) return {
50
+ from,
51
+ to: Math.min(to + bufferSize, maxRangeEnd)
52
+ };
53
+ const shortfallBefore = from - bufferSize < 0;
54
+ const shortfallAfter = maxRangeEnd - (to + bufferSize) < 0;
55
+ if (shortfallBefore && shortfallAfter) return {
56
+ from: 0,
57
+ to: maxRangeEnd
58
+ };
59
+ if (shortfallBefore) return {
60
+ from: 0,
61
+ to: to + bufferSize
62
+ };
63
+ if (shortfallAfter) return {
64
+ from: Math.max(0, from - bufferSize),
65
+ to: maxRangeEnd
66
+ };
67
+ else return {
68
+ from: from - bufferSize,
69
+ to: to + bufferSize
70
+ };
71
+ }
72
+ }
73
+ const withinRange = (value, { from, to })=>value >= from && value < to;
74
+ const rangeNewItems = ({ from: from1, to: to1 }, newRange)=>{
75
+ const { from: from2, to: to2 } = newRange;
76
+ const noOverlap = from2 >= to1 || to2 <= from1;
77
+ const newFullySubsumesOld = from2 < from1 && to2 > to1;
78
+ return noOverlap || newFullySubsumesOld ? newRange : to2 > to1 ? {
79
+ from: to1,
80
+ to: to2
81
+ } : {
82
+ from: from2,
83
+ to: from1
84
+ };
85
+ };
86
+ class WindowRange {
87
+ from;
88
+ to;
89
+ constructor(from, to){
90
+ this.from = from;
91
+ this.to = to;
92
+ }
93
+ isWithin(index) {
94
+ return withinRange(index, this);
95
+ }
96
+ overlap(from, to) {
97
+ return from >= this.to || to < this.from ? [
98
+ 0,
99
+ 0
100
+ ] : [
101
+ Math.max(from, this.from),
102
+ Math.min(to, this.to)
103
+ ];
104
+ }
105
+ copy() {
106
+ return new WindowRange(this.from, this.to);
107
+ }
108
+ }
109
+ const constrainRangeWidth = (range, maxRangeWidth = Number.MAX_SAFE_INTEGER)=>{
110
+ if (range.to - range.from < maxRangeWidth) return range;
111
+ console.warn(`[range-utils] range ${range.from} - ${range.to} exceeds maxRangeWidth ${maxRangeWidth} for this table `);
112
+ return {
113
+ from: range.from,
114
+ to: range.from + maxRangeWidth
115
+ };
116
+ };
117
+ const constrainRange = (range, maxRangeEnd, maxRangeWidth)=>{
118
+ if (!(maxRangeEnd > 0) || !(maxRangeEnd < range.to)) return constrainRangeWidth(range, maxRangeWidth);
119
+ if (maxRangeEnd > range.from) return constrainRangeWidth({
120
+ from: range.from,
121
+ to: maxRangeEnd
122
+ }, maxRangeWidth);
123
+ throw Error(`constrainRange: cannot apply the maxRangeEnd ${maxRangeEnd} to range ${range.from} - ${range.to}`);
124
+ };
125
+ export { NULL_RANGE, Range, WindowRange, constrainRange, getFullRange, rangeNewItems, withinRange };
@@ -0,0 +1,64 @@
1
+ import { Children, isValidElement, useEffect, useMemo, useRef } from "react";
2
+ const EMPTY_ARRAY = [];
3
+ const asReactElements = (children)=>{
4
+ const isArray = Array.isArray(children);
5
+ const count = isArray ? children.length : Children.count(children);
6
+ if (isArray && children.every(isValidElement)) return children;
7
+ if (1 === count && !isArray && isValidElement(children)) return [
8
+ children
9
+ ];
10
+ if (count > 1) return children;
11
+ return EMPTY_ARRAY;
12
+ };
13
+ const useIsMounted = (id = "")=>{
14
+ const isMountedRef = useRef(false);
15
+ useEffect(()=>{
16
+ console.log(`is MOUNTED ${id}`);
17
+ isMountedRef.current = true;
18
+ return ()=>{
19
+ console.log(`is UNMOUNTED ${id}`);
20
+ isMountedRef.current = false;
21
+ };
22
+ }, [
23
+ id
24
+ ]);
25
+ return isMountedRef;
26
+ };
27
+ const isSimpleStateValue = (arg)=>"function" != typeof arg;
28
+ const createSyntheticEvent = (event)=>{
29
+ let isDefaultPrevented = false;
30
+ let isPropagationStopped = false;
31
+ const preventDefault = ()=>{
32
+ isDefaultPrevented = true;
33
+ event.preventDefault();
34
+ };
35
+ const stopPropagation = ()=>{
36
+ isPropagationStopped = true;
37
+ event.stopPropagation();
38
+ };
39
+ return {
40
+ nativeEvent: event,
41
+ currentTarget: event.currentTarget,
42
+ target: event.target,
43
+ bubbles: event.bubbles,
44
+ cancelable: event.cancelable,
45
+ defaultPrevented: event.defaultPrevented,
46
+ eventPhase: event.eventPhase,
47
+ isTrusted: event.isTrusted,
48
+ preventDefault,
49
+ isDefaultPrevented: ()=>isDefaultPrevented,
50
+ stopPropagation,
51
+ isPropagationStopped: ()=>isPropagationStopped,
52
+ persist: ()=>void 0,
53
+ timeStamp: event.timeStamp,
54
+ type: event.type
55
+ };
56
+ };
57
+ const useStableReference = (value)=>{
58
+ const referenceToProp = useRef(value);
59
+ useMemo(()=>referenceToProp.current = value, [
60
+ value
61
+ ]);
62
+ return referenceToProp;
63
+ };
64
+ export { asReactElements, createSyntheticEvent, isSimpleStateValue, useIsMounted, useStableReference };
@@ -0,0 +1,83 @@
1
+ const PUNCTUATION_STR = String.fromCharCode(8200);
2
+ const DIGIT_STR = String.fromCharCode(8199);
3
+ const DECIMALS_AUTO = -1;
4
+ const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER.toString();
5
+ const MAX_INTEGER_DIGITS = MAX_SAFE_INTEGER.length;
6
+ const exceedsMaxSafeInteger = (value)=>value.length > MAX_INTEGER_DIGITS || value.length === MAX_INTEGER_DIGITS && value > MAX_SAFE_INTEGER;
7
+ const Space = {
8
+ DIGIT: DIGIT_STR,
9
+ TWO_DIGITS: DIGIT_STR + DIGIT_STR,
10
+ THREE_DIGITS: DIGIT_STR + DIGIT_STR + DIGIT_STR,
11
+ FULL_PADDING: [
12
+ null,
13
+ PUNCTUATION_STR + DIGIT_STR,
14
+ PUNCTUATION_STR + DIGIT_STR + DIGIT_STR,
15
+ PUNCTUATION_STR + DIGIT_STR + DIGIT_STR + DIGIT_STR,
16
+ PUNCTUATION_STR + DIGIT_STR + DIGIT_STR + DIGIT_STR + DIGIT_STR
17
+ ]
18
+ };
19
+ const Zero = {
20
+ DIGIT: "0",
21
+ TWO_DIGITS: "00",
22
+ THREE_DIGITS: "000",
23
+ FULL_PADDING: [
24
+ null,
25
+ "0",
26
+ "00",
27
+ "000",
28
+ "0000"
29
+ ]
30
+ };
31
+ function padLeft(value, maxLength = 6) {
32
+ return (LEADING_FILL + value).slice(-maxLength);
33
+ }
34
+ const LEADING_FILL = DIGIT_STR + DIGIT_STR + DIGIT_STR + DIGIT_STR + DIGIT_STR + DIGIT_STR + DIGIT_STR + DIGIT_STR + DIGIT_STR;
35
+ const Align = {
36
+ Right: "right",
37
+ Center: "center",
38
+ Left: "left"
39
+ };
40
+ function pad(n, dp, Pad) {
41
+ let len = n.length;
42
+ const diff = dp - len;
43
+ if (diff > 0) {
44
+ if (1 === diff) n += Pad.DIGIT;
45
+ else if (2 === diff) n += Pad.TWO_DIGITS;
46
+ else if (3 === diff) n += Pad.THREE_DIGITS;
47
+ } else {
48
+ if (diff < 0) {
49
+ n = n.slice(0, dp);
50
+ len = dp;
51
+ }
52
+ if (Pad === Space && "0" === n.charAt(len - 1)) {
53
+ n = n.replace(/0+$/, "");
54
+ return pad(n, dp, Pad);
55
+ }
56
+ }
57
+ return n;
58
+ }
59
+ function roundDecimal(value, align = Align.Right, decimals = 4, zeroPad, alignOnDecimals, useLocaleString = true, roundingRule = "round") {
60
+ if (void 0 === value || "number" != typeof value || isNaN(value)) return "";
61
+ let integral;
62
+ let fraction;
63
+ let Pad;
64
+ const [part1, part2 = ""] = value.toString().split(".");
65
+ const actualDecimals = part2.length;
66
+ integral = "-0" === part1 ? "-0" : useLocaleString ? parseFloat(part1).toLocaleString() : parseFloat(part1).toString();
67
+ if (align === Align.Left && alignOnDecimals) integral = padLeft(integral);
68
+ fraction = decimals === DECIMALS_AUTO || actualDecimals === decimals ? part2 : actualDecimals > decimals ? "round" === roundingRule ? parseFloat("0." + part2).toFixed(decimals).slice(2) : part2.slice(0, decimals) : (Pad = zeroPad ? Zero : alignOnDecimals && align !== Align.Left ? Space : null) ? 0 === actualDecimals ? Pad.FULL_PADDING[decimals] ?? "" : pad(part2, decimals, Pad) : part2;
69
+ return integral + (fraction ? "." + fraction : "");
70
+ }
71
+ function roundScaledDecimal(value, align = Align.Right, decimals = 4, zeroPad, alignOnDecimals, useLocaleString = true, roundingRule = "round") {
72
+ let integral;
73
+ let fraction;
74
+ let Pad;
75
+ if ("" === value) return "";
76
+ const [part1, part2 = ""] = value.split(".");
77
+ const actualDecimals = part2.length;
78
+ integral = "" === part1 ? "0" : "-0" === part1 ? "-0" : useLocaleString ? exceedsMaxSafeInteger(value) ? BigInt(part1).toLocaleString() : parseFloat(part1).toLocaleString() : part1;
79
+ if (align === Align.Left && alignOnDecimals) integral = padLeft(integral);
80
+ fraction = decimals === DECIMALS_AUTO || actualDecimals === decimals ? part2 : actualDecimals > decimals ? "round" === roundingRule ? parseFloat("0." + part2).toFixed(decimals).slice(2) : part2.slice(0, decimals) : (Pad = zeroPad ? Zero : alignOnDecimals && align !== Align.Left ? Space : null) ? 0 === actualDecimals ? Pad.FULL_PADDING[decimals] ?? "" : pad(part2, decimals, Pad) : part2;
81
+ return integral + (fraction ? "." + fraction : "");
82
+ }
83
+ export { exceedsMaxSafeInteger, roundDecimal, roundScaledDecimal };
@@ -0,0 +1,43 @@
1
+ import { metadataKeys } from "./column-utils.js";
2
+ const { IS_LEAF: IS_LEAF, KEY: KEY, IDX: IDX, SELECTED: SELECTED } = metadataKeys;
3
+ const actualRowPositioning = (rowHeight)=>[
4
+ (dataRow)=>dataRow.index * rowHeight,
5
+ (position)=>Math.floor(position / rowHeight),
6
+ false
7
+ ];
8
+ const virtualRowPositioning = (rowHeight, virtualisedExtent, pctScrollTop)=>[
9
+ (dataRow, offset = 0)=>{
10
+ const rowOffset = pctScrollTop.current * virtualisedExtent;
11
+ return (dataRow.index - offset) * rowHeight - rowOffset;
12
+ },
13
+ (position)=>{
14
+ const rowOffset = pctScrollTop.current * virtualisedExtent;
15
+ return Math.round((position + rowOffset) / rowHeight);
16
+ },
17
+ true
18
+ ];
19
+ const asDataSourceRowObject = (row, columnMap)=>{
20
+ const { [IS_LEAF]: isLeaf, [KEY]: key, [IDX]: index } = row;
21
+ const rowObject = {
22
+ key,
23
+ index,
24
+ isGroupRow: !isLeaf,
25
+ isSelected: 0 !== row[SELECTED],
26
+ data: {}
27
+ };
28
+ for (const [colName, colIdx] of Object.entries(columnMap))rowObject.data[colName] = row[colIdx];
29
+ return rowObject;
30
+ };
31
+ const vuuRowToDataSourceRow = ({ rowIndex, rowKey, sel: isSelected = 0, ts, data }, keys)=>[
32
+ rowIndex,
33
+ keys.keyFor(rowIndex),
34
+ true,
35
+ false,
36
+ 0,
37
+ 0,
38
+ rowKey,
39
+ isSelected,
40
+ ts,
41
+ false
42
+ ].concat(data);
43
+ export { actualRowPositioning, asDataSourceRowObject, virtualRowPositioning, vuuRowToDataSourceRow };
@@ -0,0 +1,50 @@
1
+ const deselectItem = (selectionModel, rowKey, rangeSelect, preserveExistingSelection = false)=>({
2
+ preserveExistingSelection,
3
+ rowKey,
4
+ type: "DESELECT_ROW"
5
+ });
6
+ const selectItem = (selectionModel, rowKey, rangeSelect, preserveExistingSelection = false, activeRowKey)=>{
7
+ const singleSelect = "single" === selectionModel || "single-no-deselect" === selectionModel;
8
+ const actsLikeSingleSelect = singleSelect || void 0 === activeRowKey;
9
+ if ("none" === selectionModel) return;
10
+ if (actsLikeSingleSelect) {
11
+ const preserveSelection = singleSelect ? false : preserveExistingSelection;
12
+ return {
13
+ preserveExistingSelection: preserveSelection,
14
+ rowKey,
15
+ type: "SELECT_ROW"
16
+ };
17
+ }
18
+ if (rangeSelect) return {
19
+ preserveExistingSelection,
20
+ fromRowKey: rowKey,
21
+ toRowKey: activeRowKey,
22
+ type: "SELECT_ROW_RANGE"
23
+ };
24
+ };
25
+ const splitSelectableRanges = (rows, isRowSelectable, preserveExistingSelection)=>{
26
+ const requests = [];
27
+ let fromKey;
28
+ let toKey;
29
+ for (const row of rows)if (isRowSelectable(row)) {
30
+ if (!fromKey) fromKey = row.key;
31
+ toKey = row.key;
32
+ } else if (fromKey && toKey) {
33
+ requests.push({
34
+ type: "SELECT_ROW_RANGE",
35
+ fromRowKey: fromKey,
36
+ toRowKey: toKey,
37
+ preserveExistingSelection: requests.length > 0 ? true : preserveExistingSelection
38
+ });
39
+ fromKey = void 0;
40
+ toKey = void 0;
41
+ }
42
+ if (fromKey && toKey) requests.push({
43
+ type: "SELECT_ROW_RANGE",
44
+ fromRowKey: fromKey,
45
+ toRowKey: toKey,
46
+ preserveExistingSelection: requests.length > 0 ? true : preserveExistingSelection
47
+ });
48
+ return requests;
49
+ };
50
+ export { deselectItem, selectItem, splitSelectableRanges };
@@ -0,0 +1,9 @@
1
+ const VuuShellLocation = {
2
+ ContextPanel: "context-panel",
3
+ MultiWorkspaceContainer: "vuu-multi-workspace-container",
4
+ SidePanel: "vuu-side-panel",
5
+ SideToolbar: "vuu-side-toolbar",
6
+ Workspace: "vuu-workspace",
7
+ WorkspaceContainer: "vuu-workspace-container"
8
+ };
9
+ export { VuuShellLocation };
@@ -0,0 +1,75 @@
1
+ const cycleSortType = (sortType)=>"A" === sortType ? "D" : "D" === sortType ? void 0 : "A";
2
+ const NO_SORT = {
3
+ sortDefs: []
4
+ };
5
+ const toggleOrApplySort = ({ sortDefs }, { name: column }, extendSort = false, sortType)=>{
6
+ if (extendSort) {
7
+ const existingDef = sortDefs.find((sortDef)=>sortDef.column === column);
8
+ if (existingDef) return {
9
+ sortDefs: sortDefs.map((sortDef)=>sortDef.column === column ? {
10
+ column,
11
+ sortType: "A" === sortDef.sortType ? "D" : "A"
12
+ } : sortDef)
13
+ };
14
+ return {
15
+ sortDefs: sortDefs.concat({
16
+ column,
17
+ sortType: sortType ?? "A"
18
+ })
19
+ };
20
+ }
21
+ const newSortType = "string" == typeof sortType ? sortType : 1 === sortDefs.length && sortDefs[0].column === column ? cycleSortType(sortDefs[0].sortType) : "A";
22
+ return newSortType ? {
23
+ sortDefs: [
24
+ {
25
+ column,
26
+ sortType: newSortType
27
+ }
28
+ ]
29
+ } : NO_SORT;
30
+ };
31
+ const setSortColumn = ({ sortDefs }, column, sortType)=>{
32
+ if (void 0 === sortType) {
33
+ const columnSort = sortDefs.find((item)=>item.column === column.name);
34
+ if (columnSort) return {
35
+ sortDefs: [
36
+ {
37
+ column: column.name,
38
+ sortType: "A" === columnSort.sortType ? "D" : "A"
39
+ }
40
+ ]
41
+ };
42
+ }
43
+ return {
44
+ sortDefs: [
45
+ {
46
+ column: column.name,
47
+ sortType: sortType ?? "A"
48
+ }
49
+ ]
50
+ };
51
+ };
52
+ const addSortColumn = ({ sortDefs }, column, sortType = "A")=>{
53
+ const sortEntry = {
54
+ column: column.name,
55
+ sortType
56
+ };
57
+ if (sortDefs.length > 0) return {
58
+ sortDefs: sortDefs.concat(sortEntry)
59
+ };
60
+ return {
61
+ sortDefs: [
62
+ sortEntry
63
+ ]
64
+ };
65
+ };
66
+ const getSortStatus = (columnName, vuuSort)=>{
67
+ if (void 0 === vuuSort || 0 === vuuSort.sortDefs.length) return "no-sort";
68
+ {
69
+ const sortDef = vuuSort.sortDefs.find((sd)=>sd.column === columnName);
70
+ if (!sortDef) return "sort-other-column";
71
+ if (1 === vuuSort.sortDefs.length) return "A" === sortDef.sortType ? "single-sort-asc" : "single-sort-desc";
72
+ return "A" === sortDef.sortType ? "multi-sort-includes-column-asc" : "multi-sort-includes-column-desc";
73
+ }
74
+ };
75
+ export { addSortColumn, getSortStatus, setSortColumn, toggleOrApplySort };
@@ -0,0 +1,16 @@
1
+ const toSchemaColumn = ({ editable, name, serverDataType = "string" })=>({
2
+ editable: "boolean" == typeof editable ? editable : void 0,
3
+ name,
4
+ serverDataType
5
+ });
6
+ const getVuuTable = (schemaTable)=>{
7
+ if (!schemaTable.session) return schemaTable;
8
+ {
9
+ const { module, session } = schemaTable;
10
+ return {
11
+ module,
12
+ table: session
13
+ };
14
+ }
15
+ };
16
+ export { getVuuTable, toSchemaColumn };
@@ -0,0 +1,15 @@
1
+ const lastWord = (text)=>{
2
+ const trimmedText = text.trim();
3
+ const pos = trimmedText.lastIndexOf(" ");
4
+ if (-1 === pos) return trimmedText;
5
+ return trimmedText.slice(pos + 1);
6
+ };
7
+ const capitalize = (text)=>0 === text.length ? "" : text[0].toUpperCase() + text.slice(1);
8
+ const singularForm = (typeName)=>"string" == typeof typeName ? typeName : typeName.singular;
9
+ const pluralForm = (typeName)=>"string" == typeof typeName ? `${typeName}s` : typeName.plural;
10
+ const regexp_worfify = /(?<!(^|[A-Z]))(?=[A-Z])|(?<!^)(?=[A-Z][a-z])/;
11
+ const wordify = (text)=>{
12
+ const [firstWord, ...rest] = text.split(regexp_worfify);
13
+ return `${capitalize(firstWord)} ${rest.join(" ")}`;
14
+ };
15
+ export { capitalize, lastWord, pluralForm, singularForm, wordify };
@@ -0,0 +1,21 @@
1
+ import { useMemo, useState } from "react";
2
+ const checkCssToken = (tokenName)=>new Promise((resolve)=>{
3
+ requestAnimationFrame(()=>{
4
+ const saltSpacing100 = getComputedStyle(document.documentElement).getPropertyValue(tokenName);
5
+ resolve("" !== saltSpacing100);
6
+ });
7
+ });
8
+ const ThemeLoadChecker = ({ children, cssToken = "--salt-spacing-100", theme })=>{
9
+ const [ready, setReady] = useState(false);
10
+ useMemo(async ()=>{
11
+ let ready = await checkCssToken(cssToken);
12
+ while(!ready)ready = await checkCssToken(cssToken);
13
+ setReady(true);
14
+ }, [
15
+ cssToken
16
+ ]);
17
+ if ("no-theme" === theme) return children;
18
+ if (false === ready) return null;
19
+ return children;
20
+ };
21
+ export { ThemeLoadChecker };
File without changes