@vuu-ui/vuu-utils 2.1.18 → 2.1.19-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 (430) hide show
  1. package/package.json +11 -14
  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 +51 -0
  8. package/src/box-utils.js +51 -0
  9. package/src/broadcast-channel.js +0 -0
  10. package/src/column-utils.js +790 -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-editing/DataEditingProvider.js +13 -0
  20. package/src/data-editing/EditButtons.js +32 -0
  21. package/src/data-editing/EditModeProvider.js +18 -0
  22. package/src/data-editing/EditSession.js +149 -0
  23. package/src/data-editing/edit-utils.js +37 -0
  24. package/src/data-editing/useEditableTable.js +76 -0
  25. package/src/data-utils.js +55 -0
  26. package/src/datasource/BaseDataSource.js +233 -0
  27. package/src/datasource/datasource-action-utils.js +6 -0
  28. package/src/datasource/datasource-filter-utils.js +27 -0
  29. package/src/datasource/datasource-utils.js +148 -0
  30. package/src/date/date-utils.js +80 -0
  31. package/src/date/dateTimePattern.js +17 -0
  32. package/src/date/formatter.js +101 -0
  33. package/src/date/index.js +4 -0
  34. package/src/date/types.js +27 -0
  35. package/src/debug-utils.js +25 -0
  36. package/src/event-emitter.js +78 -0
  37. package/src/feature-utils.js +86 -0
  38. package/src/filters/filter-utils.js +136 -0
  39. package/src/filters/filterAsQuery.js +70 -0
  40. package/src/filters/index.js +2 -0
  41. package/src/form-utils.js +69 -0
  42. package/src/formatting-utils.js +42 -0
  43. package/src/getUniqueId.js +2 -0
  44. package/src/group-utils.js +16 -0
  45. package/src/html-utils.js +108 -0
  46. package/src/index.js +77 -0
  47. package/src/input-utils.js +3 -0
  48. package/src/invariant.js +9 -0
  49. package/src/itemToString.js +9 -0
  50. package/src/json-types.js +0 -0
  51. package/src/json-utils.js +108 -0
  52. package/{esm/packages/vuu-utils/src → src}/keyboard-utils.js +1 -3
  53. package/src/keyset.js +57 -0
  54. package/src/layout-types.js +0 -0
  55. package/src/list-utils.js +5 -0
  56. package/src/local-storage-utils.js +23 -0
  57. package/src/logging-utils.js +52 -0
  58. package/src/module-utils.js +2 -0
  59. package/src/nanoid/index.js +13 -0
  60. package/src/perf-utils.js +28 -0
  61. package/src/promise-utils.js +26 -0
  62. package/src/protocol-message-utils.js +68 -0
  63. package/src/range-utils.js +109 -0
  64. package/src/react-utils.js +64 -0
  65. package/src/round-decimal.js +83 -0
  66. package/src/row-utils.js +43 -0
  67. package/src/selection-utils.js +25 -0
  68. package/src/shell-layout-types.js +9 -0
  69. package/src/sort-utils.js +75 -0
  70. package/src/table-schema-utils.js +11 -0
  71. package/src/text-utils.js +13 -0
  72. package/src/theme-utils.js +21 -0
  73. package/src/tree-types.js +0 -0
  74. package/src/tree-utils.js +96 -0
  75. package/src/ts-utils.js +6 -0
  76. package/src/typeahead-utils.js +4 -0
  77. package/src/url-utils.js +12 -0
  78. package/src/useId.js +6 -0
  79. package/src/useLayoutEffectSkipFirst.js +9 -0
  80. package/src/useResizeObserver.js +122 -0
  81. package/src/useStateRef.js +21 -0
  82. package/src/user-types.js +0 -0
  83. package/types/ThemeProvider.d.ts +4 -4
  84. package/types/data-utils.d.ts +1 -1
  85. package/types/date/date-utils.d.ts +8 -8
  86. package/types/feature-utils.d.ts +1 -1
  87. package/types/filters/filter-utils.d.ts +15 -15
  88. package/cjs/node_modules/@dnd-kit/abstract/index.js +0 -1488
  89. package/cjs/node_modules/@dnd-kit/abstract/index.js.map +0 -1
  90. package/cjs/node_modules/@dnd-kit/abstract/modifiers.js +0 -85
  91. package/cjs/node_modules/@dnd-kit/abstract/modifiers.js.map +0 -1
  92. package/cjs/node_modules/@dnd-kit/collision/dist/index.js +0 -91
  93. package/cjs/node_modules/@dnd-kit/collision/dist/index.js.map +0 -1
  94. package/cjs/node_modules/@dnd-kit/dom/index.js +0 -1991
  95. package/cjs/node_modules/@dnd-kit/dom/index.js.map +0 -1
  96. package/cjs/node_modules/@dnd-kit/dom/sortable.js +0 -828
  97. package/cjs/node_modules/@dnd-kit/dom/sortable.js.map +0 -1
  98. package/cjs/node_modules/@dnd-kit/dom/utilities.js +0 -1389
  99. package/cjs/node_modules/@dnd-kit/dom/utilities.js.map +0 -1
  100. package/cjs/node_modules/@dnd-kit/geometry/dist/index.js +0 -310
  101. package/cjs/node_modules/@dnd-kit/geometry/dist/index.js.map +0 -1
  102. package/cjs/node_modules/@dnd-kit/react/hooks.js +0 -134
  103. package/cjs/node_modules/@dnd-kit/react/hooks.js.map +0 -1
  104. package/cjs/node_modules/@dnd-kit/react/index.js +0 -398
  105. package/cjs/node_modules/@dnd-kit/react/index.js.map +0 -1
  106. package/cjs/node_modules/@dnd-kit/react/sortable.js +0 -177
  107. package/cjs/node_modules/@dnd-kit/react/sortable.js.map +0 -1
  108. package/cjs/node_modules/@dnd-kit/react/utilities.js +0 -19
  109. package/cjs/node_modules/@dnd-kit/react/utilities.js.map +0 -1
  110. package/cjs/node_modules/@dnd-kit/state/dist/index.js +0 -280
  111. package/cjs/node_modules/@dnd-kit/state/dist/index.js.map +0 -1
  112. package/cjs/node_modules/@preact/signals-core/dist/signals-core.js +0 -11
  113. package/cjs/node_modules/@preact/signals-core/dist/signals-core.js.map +0 -1
  114. package/cjs/packages/vuu-utils/src/Clock.js +0 -62
  115. package/cjs/packages/vuu-utils/src/Clock.js.map +0 -1
  116. package/cjs/packages/vuu-utils/src/PageVisibilityObserver.js +0 -80
  117. package/cjs/packages/vuu-utils/src/PageVisibilityObserver.js.map +0 -1
  118. package/cjs/packages/vuu-utils/src/ScaledDecimal.js +0 -43
  119. package/cjs/packages/vuu-utils/src/ScaledDecimal.js.map +0 -1
  120. package/cjs/packages/vuu-utils/src/ShellContext.js +0 -13
  121. package/cjs/packages/vuu-utils/src/ShellContext.js.map +0 -1
  122. package/cjs/packages/vuu-utils/src/ThemeProvider.js +0 -85
  123. package/cjs/packages/vuu-utils/src/ThemeProvider.js.map +0 -1
  124. package/cjs/packages/vuu-utils/src/array-utils.js +0 -87
  125. package/cjs/packages/vuu-utils/src/array-utils.js.map +0 -1
  126. package/cjs/packages/vuu-utils/src/box-utils.js +0 -53
  127. package/cjs/packages/vuu-utils/src/box-utils.js.map +0 -1
  128. package/cjs/packages/vuu-utils/src/column-utils.js +0 -1057
  129. package/cjs/packages/vuu-utils/src/column-utils.js.map +0 -1
  130. package/cjs/packages/vuu-utils/src/common-types.js +0 -15
  131. package/cjs/packages/vuu-utils/src/common-types.js.map +0 -1
  132. package/cjs/packages/vuu-utils/src/component-registry.js +0 -144
  133. package/cjs/packages/vuu-utils/src/component-registry.js.map +0 -1
  134. package/cjs/packages/vuu-utils/src/context-definitions/DataContext.js +0 -21
  135. package/cjs/packages/vuu-utils/src/context-definitions/DataContext.js.map +0 -1
  136. package/cjs/packages/vuu-utils/src/context-definitions/DataProvider.js +0 -19
  137. package/cjs/packages/vuu-utils/src/context-definitions/DataProvider.js.map +0 -1
  138. package/cjs/packages/vuu-utils/src/context-definitions/DataSourceProvider.js +0 -33
  139. package/cjs/packages/vuu-utils/src/context-definitions/DataSourceProvider.js.map +0 -1
  140. package/cjs/packages/vuu-utils/src/context-definitions/WorkspaceContext.js +0 -20
  141. package/cjs/packages/vuu-utils/src/context-definitions/WorkspaceContext.js.map +0 -1
  142. package/cjs/packages/vuu-utils/src/cookie-utils.js +0 -22
  143. package/cjs/packages/vuu-utils/src/cookie-utils.js.map +0 -1
  144. package/cjs/packages/vuu-utils/src/css-utils.js +0 -9
  145. package/cjs/packages/vuu-utils/src/css-utils.js.map +0 -1
  146. package/cjs/packages/vuu-utils/src/data-editing/DataEditingProvider.js +0 -28
  147. package/cjs/packages/vuu-utils/src/data-editing/DataEditingProvider.js.map +0 -1
  148. package/cjs/packages/vuu-utils/src/data-editing/EditButtons.js +0 -34
  149. package/cjs/packages/vuu-utils/src/data-editing/EditButtons.js.map +0 -1
  150. package/cjs/packages/vuu-utils/src/data-editing/EditSession.js +0 -204
  151. package/cjs/packages/vuu-utils/src/data-editing/EditSession.js.map +0 -1
  152. package/cjs/packages/vuu-utils/src/data-editing/edit-utils.js +0 -37
  153. package/cjs/packages/vuu-utils/src/data-editing/edit-utils.js.map +0 -1
  154. package/cjs/packages/vuu-utils/src/data-editing/useEditableTable.js +0 -81
  155. package/cjs/packages/vuu-utils/src/data-editing/useEditableTable.js.map +0 -1
  156. package/cjs/packages/vuu-utils/src/data-utils.js +0 -96
  157. package/cjs/packages/vuu-utils/src/data-utils.js.map +0 -1
  158. package/cjs/packages/vuu-utils/src/datasource/BaseDataSource.js +0 -317
  159. package/cjs/packages/vuu-utils/src/datasource/BaseDataSource.js.map +0 -1
  160. package/cjs/packages/vuu-utils/src/datasource/datasource-action-utils.js +0 -14
  161. package/cjs/packages/vuu-utils/src/datasource/datasource-action-utils.js.map +0 -1
  162. package/cjs/packages/vuu-utils/src/datasource/datasource-filter-utils.js +0 -40
  163. package/cjs/packages/vuu-utils/src/datasource/datasource-filter-utils.js.map +0 -1
  164. package/cjs/packages/vuu-utils/src/datasource/datasource-utils.js +0 -218
  165. package/cjs/packages/vuu-utils/src/datasource/datasource-utils.js.map +0 -1
  166. package/cjs/packages/vuu-utils/src/date/date-utils.js +0 -131
  167. package/cjs/packages/vuu-utils/src/date/date-utils.js.map +0 -1
  168. package/cjs/packages/vuu-utils/src/date/dateTimePattern.js +0 -26
  169. package/cjs/packages/vuu-utils/src/date/dateTimePattern.js.map +0 -1
  170. package/cjs/packages/vuu-utils/src/date/formatter.js +0 -82
  171. package/cjs/packages/vuu-utils/src/date/formatter.js.map +0 -1
  172. package/cjs/packages/vuu-utils/src/date/types.js +0 -32
  173. package/cjs/packages/vuu-utils/src/date/types.js.map +0 -1
  174. package/cjs/packages/vuu-utils/src/debug-utils.js +0 -34
  175. package/cjs/packages/vuu-utils/src/debug-utils.js.map +0 -1
  176. package/cjs/packages/vuu-utils/src/event-emitter.js +0 -113
  177. package/cjs/packages/vuu-utils/src/event-emitter.js.map +0 -1
  178. package/cjs/packages/vuu-utils/src/feature-utils.js +0 -139
  179. package/cjs/packages/vuu-utils/src/feature-utils.js.map +0 -1
  180. package/cjs/packages/vuu-utils/src/filters/filter-utils.js +0 -182
  181. package/cjs/packages/vuu-utils/src/filters/filter-utils.js.map +0 -1
  182. package/cjs/packages/vuu-utils/src/filters/filterAsQuery.js +0 -69
  183. package/cjs/packages/vuu-utils/src/filters/filterAsQuery.js.map +0 -1
  184. package/cjs/packages/vuu-utils/src/form-utils.js +0 -117
  185. package/cjs/packages/vuu-utils/src/form-utils.js.map +0 -1
  186. package/cjs/packages/vuu-utils/src/formatting-utils.js +0 -98
  187. package/cjs/packages/vuu-utils/src/formatting-utils.js.map +0 -1
  188. package/cjs/packages/vuu-utils/src/getUniqueId.js +0 -6
  189. package/cjs/packages/vuu-utils/src/getUniqueId.js.map +0 -1
  190. package/cjs/packages/vuu-utils/src/group-utils.js +0 -27
  191. package/cjs/packages/vuu-utils/src/group-utils.js.map +0 -1
  192. package/cjs/packages/vuu-utils/src/html-utils.js +0 -162
  193. package/cjs/packages/vuu-utils/src/html-utils.js.map +0 -1
  194. package/cjs/packages/vuu-utils/src/index.js +0 -475
  195. package/cjs/packages/vuu-utils/src/index.js.map +0 -1
  196. package/cjs/packages/vuu-utils/src/input-utils.js +0 -10
  197. package/cjs/packages/vuu-utils/src/input-utils.js.map +0 -1
  198. package/cjs/packages/vuu-utils/src/invariant.js +0 -13
  199. package/cjs/packages/vuu-utils/src/invariant.js.map +0 -1
  200. package/cjs/packages/vuu-utils/src/itemToString.js +0 -23
  201. package/cjs/packages/vuu-utils/src/itemToString.js.map +0 -1
  202. package/cjs/packages/vuu-utils/src/json-utils.js +0 -105
  203. package/cjs/packages/vuu-utils/src/json-utils.js.map +0 -1
  204. package/cjs/packages/vuu-utils/src/keyboard-utils.js +0 -30
  205. package/cjs/packages/vuu-utils/src/keyboard-utils.js.map +0 -1
  206. package/cjs/packages/vuu-utils/src/keyset.js +0 -72
  207. package/cjs/packages/vuu-utils/src/keyset.js.map +0 -1
  208. package/cjs/packages/vuu-utils/src/list-utils.js +0 -11
  209. package/cjs/packages/vuu-utils/src/list-utils.js.map +0 -1
  210. package/cjs/packages/vuu-utils/src/local-storage-utils.js +0 -35
  211. package/cjs/packages/vuu-utils/src/local-storage-utils.js.map +0 -1
  212. package/cjs/packages/vuu-utils/src/logging-utils.js +0 -65
  213. package/cjs/packages/vuu-utils/src/logging-utils.js.map +0 -1
  214. package/cjs/packages/vuu-utils/src/module-utils.js +0 -6
  215. package/cjs/packages/vuu-utils/src/module-utils.js.map +0 -1
  216. package/cjs/packages/vuu-utils/src/nanoid/index.js +0 -22
  217. package/cjs/packages/vuu-utils/src/nanoid/index.js.map +0 -1
  218. package/cjs/packages/vuu-utils/src/perf-utils.js +0 -35
  219. package/cjs/packages/vuu-utils/src/perf-utils.js.map +0 -1
  220. package/cjs/packages/vuu-utils/src/promise-utils.js +0 -42
  221. package/cjs/packages/vuu-utils/src/promise-utils.js.map +0 -1
  222. package/cjs/packages/vuu-utils/src/protocol-message-utils.js +0 -104
  223. package/cjs/packages/vuu-utils/src/protocol-message-utils.js.map +0 -1
  224. package/cjs/packages/vuu-utils/src/range-utils.js +0 -115
  225. package/cjs/packages/vuu-utils/src/range-utils.js.map +0 -1
  226. package/cjs/packages/vuu-utils/src/react-utils.js +0 -72
  227. package/cjs/packages/vuu-utils/src/react-utils.js.map +0 -1
  228. package/cjs/packages/vuu-utils/src/round-decimal.js +0 -131
  229. package/cjs/packages/vuu-utils/src/round-decimal.js.map +0 -1
  230. package/cjs/packages/vuu-utils/src/row-utils.js +0 -59
  231. package/cjs/packages/vuu-utils/src/row-utils.js.map +0 -1
  232. package/cjs/packages/vuu-utils/src/selection-utils.js +0 -34
  233. package/cjs/packages/vuu-utils/src/selection-utils.js.map +0 -1
  234. package/cjs/packages/vuu-utils/src/shell-layout-types.js +0 -13
  235. package/cjs/packages/vuu-utils/src/shell-layout-types.js.map +0 -1
  236. package/cjs/packages/vuu-utils/src/sort-utils.js +0 -78
  237. package/cjs/packages/vuu-utils/src/sort-utils.js.map +0 -1
  238. package/cjs/packages/vuu-utils/src/table-schema-utils.js +0 -13
  239. package/cjs/packages/vuu-utils/src/table-schema-utils.js.map +0 -1
  240. package/cjs/packages/vuu-utils/src/text-utils.js +0 -21
  241. package/cjs/packages/vuu-utils/src/text-utils.js.map +0 -1
  242. package/cjs/packages/vuu-utils/src/theme-utils.js +0 -36
  243. package/cjs/packages/vuu-utils/src/theme-utils.js.map +0 -1
  244. package/cjs/packages/vuu-utils/src/tree-utils.js +0 -114
  245. package/cjs/packages/vuu-utils/src/tree-utils.js.map +0 -1
  246. package/cjs/packages/vuu-utils/src/ts-utils.js +0 -12
  247. package/cjs/packages/vuu-utils/src/ts-utils.js.map +0 -1
  248. package/cjs/packages/vuu-utils/src/typeahead-utils.js +0 -6
  249. package/cjs/packages/vuu-utils/src/typeahead-utils.js.map +0 -1
  250. package/cjs/packages/vuu-utils/src/url-utils.js +0 -21
  251. package/cjs/packages/vuu-utils/src/url-utils.js.map +0 -1
  252. package/cjs/packages/vuu-utils/src/useId.js +0 -9
  253. package/cjs/packages/vuu-utils/src/useId.js.map +0 -1
  254. package/cjs/packages/vuu-utils/src/useLayoutEffectSkipFirst.js +0 -17
  255. package/cjs/packages/vuu-utils/src/useLayoutEffectSkipFirst.js.map +0 -1
  256. package/cjs/packages/vuu-utils/src/useResizeObserver.js +0 -134
  257. package/cjs/packages/vuu-utils/src/useResizeObserver.js.map +0 -1
  258. package/cjs/packages/vuu-utils/src/useStateRef.js +0 -23
  259. package/cjs/packages/vuu-utils/src/useStateRef.js.map +0 -1
  260. package/esm/node_modules/@dnd-kit/abstract/index.js +0 -1472
  261. package/esm/node_modules/@dnd-kit/abstract/index.js.map +0 -1
  262. package/esm/node_modules/@dnd-kit/abstract/modifiers.js +0 -82
  263. package/esm/node_modules/@dnd-kit/abstract/modifiers.js.map +0 -1
  264. package/esm/node_modules/@dnd-kit/collision/dist/index.js +0 -86
  265. package/esm/node_modules/@dnd-kit/collision/dist/index.js.map +0 -1
  266. package/esm/node_modules/@dnd-kit/dom/index.js +0 -1977
  267. package/esm/node_modules/@dnd-kit/dom/index.js.map +0 -1
  268. package/esm/node_modules/@dnd-kit/dom/sortable.js +0 -822
  269. package/esm/node_modules/@dnd-kit/dom/sortable.js.map +0 -1
  270. package/esm/node_modules/@dnd-kit/dom/utilities.js +0 -1344
  271. package/esm/node_modules/@dnd-kit/dom/utilities.js.map +0 -1
  272. package/esm/node_modules/@dnd-kit/geometry/dist/index.js +0 -303
  273. package/esm/node_modules/@dnd-kit/geometry/dist/index.js.map +0 -1
  274. package/esm/node_modules/@dnd-kit/react/hooks.js +0 -126
  275. package/esm/node_modules/@dnd-kit/react/hooks.js.map +0 -1
  276. package/esm/node_modules/@dnd-kit/react/index.js +0 -392
  277. package/esm/node_modules/@dnd-kit/react/index.js.map +0 -1
  278. package/esm/node_modules/@dnd-kit/react/sortable.js +0 -175
  279. package/esm/node_modules/@dnd-kit/react/sortable.js.map +0 -1
  280. package/esm/node_modules/@dnd-kit/react/utilities.js +0 -17
  281. package/esm/node_modules/@dnd-kit/react/utilities.js.map +0 -1
  282. package/esm/node_modules/@dnd-kit/state/dist/index.js +0 -266
  283. package/esm/node_modules/@dnd-kit/state/dist/index.js.map +0 -1
  284. package/esm/node_modules/@preact/signals-core/dist/signals-core.js +0 -4
  285. package/esm/node_modules/@preact/signals-core/dist/signals-core.js.map +0 -1
  286. package/esm/packages/vuu-utils/src/Clock.js +0 -60
  287. package/esm/packages/vuu-utils/src/Clock.js.map +0 -1
  288. package/esm/packages/vuu-utils/src/PageVisibilityObserver.js +0 -78
  289. package/esm/packages/vuu-utils/src/PageVisibilityObserver.js.map +0 -1
  290. package/esm/packages/vuu-utils/src/ScaledDecimal.js +0 -37
  291. package/esm/packages/vuu-utils/src/ScaledDecimal.js.map +0 -1
  292. package/esm/packages/vuu-utils/src/ShellContext.js +0 -10
  293. package/esm/packages/vuu-utils/src/ShellContext.js.map +0 -1
  294. package/esm/packages/vuu-utils/src/ThemeProvider.js +0 -78
  295. package/esm/packages/vuu-utils/src/ThemeProvider.js.map +0 -1
  296. package/esm/packages/vuu-utils/src/array-utils.js +0 -79
  297. package/esm/packages/vuu-utils/src/array-utils.js.map +0 -1
  298. package/esm/packages/vuu-utils/src/box-utils.js +0 -47
  299. package/esm/packages/vuu-utils/src/box-utils.js.map +0 -1
  300. package/esm/packages/vuu-utils/src/column-utils.js +0 -970
  301. package/esm/packages/vuu-utils/src/column-utils.js.map +0 -1
  302. package/esm/packages/vuu-utils/src/common-types.js +0 -13
  303. package/esm/packages/vuu-utils/src/common-types.js.map +0 -1
  304. package/esm/packages/vuu-utils/src/component-registry.js +0 -128
  305. package/esm/packages/vuu-utils/src/component-registry.js.map +0 -1
  306. package/esm/packages/vuu-utils/src/context-definitions/DataContext.js +0 -18
  307. package/esm/packages/vuu-utils/src/context-definitions/DataContext.js.map +0 -1
  308. package/esm/packages/vuu-utils/src/context-definitions/DataProvider.js +0 -16
  309. package/esm/packages/vuu-utils/src/context-definitions/DataProvider.js.map +0 -1
  310. package/esm/packages/vuu-utils/src/context-definitions/DataSourceProvider.js +0 -29
  311. package/esm/packages/vuu-utils/src/context-definitions/DataSourceProvider.js.map +0 -1
  312. package/esm/packages/vuu-utils/src/context-definitions/WorkspaceContext.js +0 -17
  313. package/esm/packages/vuu-utils/src/context-definitions/WorkspaceContext.js.map +0 -1
  314. package/esm/packages/vuu-utils/src/cookie-utils.js +0 -19
  315. package/esm/packages/vuu-utils/src/cookie-utils.js.map +0 -1
  316. package/esm/packages/vuu-utils/src/css-utils.js +0 -7
  317. package/esm/packages/vuu-utils/src/css-utils.js.map +0 -1
  318. package/esm/packages/vuu-utils/src/data-editing/DataEditingProvider.js +0 -25
  319. package/esm/packages/vuu-utils/src/data-editing/DataEditingProvider.js.map +0 -1
  320. package/esm/packages/vuu-utils/src/data-editing/EditButtons.js +0 -32
  321. package/esm/packages/vuu-utils/src/data-editing/EditButtons.js.map +0 -1
  322. package/esm/packages/vuu-utils/src/data-editing/EditSession.js +0 -201
  323. package/esm/packages/vuu-utils/src/data-editing/EditSession.js.map +0 -1
  324. package/esm/packages/vuu-utils/src/data-editing/edit-utils.js +0 -34
  325. package/esm/packages/vuu-utils/src/data-editing/edit-utils.js.map +0 -1
  326. package/esm/packages/vuu-utils/src/data-editing/useEditableTable.js +0 -79
  327. package/esm/packages/vuu-utils/src/data-editing/useEditableTable.js.map +0 -1
  328. package/esm/packages/vuu-utils/src/data-utils.js +0 -82
  329. package/esm/packages/vuu-utils/src/data-utils.js.map +0 -1
  330. package/esm/packages/vuu-utils/src/datasource/BaseDataSource.js +0 -314
  331. package/esm/packages/vuu-utils/src/datasource/BaseDataSource.js.map +0 -1
  332. package/esm/packages/vuu-utils/src/datasource/datasource-action-utils.js +0 -8
  333. package/esm/packages/vuu-utils/src/datasource/datasource-action-utils.js.map +0 -1
  334. package/esm/packages/vuu-utils/src/datasource/datasource-filter-utils.js +0 -38
  335. package/esm/packages/vuu-utils/src/datasource/datasource-filter-utils.js.map +0 -1
  336. package/esm/packages/vuu-utils/src/datasource/datasource-utils.js +0 -193
  337. package/esm/packages/vuu-utils/src/datasource/datasource-utils.js.map +0 -1
  338. package/esm/packages/vuu-utils/src/date/date-utils.js +0 -121
  339. package/esm/packages/vuu-utils/src/date/date-utils.js.map +0 -1
  340. package/esm/packages/vuu-utils/src/date/dateTimePattern.js +0 -22
  341. package/esm/packages/vuu-utils/src/date/dateTimePattern.js.map +0 -1
  342. package/esm/packages/vuu-utils/src/date/formatter.js +0 -79
  343. package/esm/packages/vuu-utils/src/date/formatter.js.map +0 -1
  344. package/esm/packages/vuu-utils/src/date/types.js +0 -26
  345. package/esm/packages/vuu-utils/src/date/types.js.map +0 -1
  346. package/esm/packages/vuu-utils/src/debug-utils.js +0 -32
  347. package/esm/packages/vuu-utils/src/debug-utils.js.map +0 -1
  348. package/esm/packages/vuu-utils/src/event-emitter.js +0 -111
  349. package/esm/packages/vuu-utils/src/event-emitter.js.map +0 -1
  350. package/esm/packages/vuu-utils/src/feature-utils.js +0 -125
  351. package/esm/packages/vuu-utils/src/feature-utils.js.map +0 -1
  352. package/esm/packages/vuu-utils/src/filters/filter-utils.js +0 -159
  353. package/esm/packages/vuu-utils/src/filters/filter-utils.js.map +0 -1
  354. package/esm/packages/vuu-utils/src/filters/filterAsQuery.js +0 -65
  355. package/esm/packages/vuu-utils/src/filters/filterAsQuery.js.map +0 -1
  356. package/esm/packages/vuu-utils/src/form-utils.js +0 -110
  357. package/esm/packages/vuu-utils/src/form-utils.js.map +0 -1
  358. package/esm/packages/vuu-utils/src/formatting-utils.js +0 -93
  359. package/esm/packages/vuu-utils/src/formatting-utils.js.map +0 -1
  360. package/esm/packages/vuu-utils/src/getUniqueId.js +0 -4
  361. package/esm/packages/vuu-utils/src/getUniqueId.js.map +0 -1
  362. package/esm/packages/vuu-utils/src/group-utils.js +0 -23
  363. package/esm/packages/vuu-utils/src/group-utils.js.map +0 -1
  364. package/esm/packages/vuu-utils/src/html-utils.js +0 -145
  365. package/esm/packages/vuu-utils/src/html-utils.js.map +0 -1
  366. package/esm/packages/vuu-utils/src/index.js +0 -77
  367. package/esm/packages/vuu-utils/src/index.js.map +0 -1
  368. package/esm/packages/vuu-utils/src/input-utils.js +0 -7
  369. package/esm/packages/vuu-utils/src/input-utils.js.map +0 -1
  370. package/esm/packages/vuu-utils/src/invariant.js +0 -11
  371. package/esm/packages/vuu-utils/src/invariant.js.map +0 -1
  372. package/esm/packages/vuu-utils/src/itemToString.js +0 -21
  373. package/esm/packages/vuu-utils/src/itemToString.js.map +0 -1
  374. package/esm/packages/vuu-utils/src/json-utils.js +0 -103
  375. package/esm/packages/vuu-utils/src/json-utils.js.map +0 -1
  376. package/esm/packages/vuu-utils/src/keyboard-utils.js.map +0 -1
  377. package/esm/packages/vuu-utils/src/keyset.js +0 -70
  378. package/esm/packages/vuu-utils/src/keyset.js.map +0 -1
  379. package/esm/packages/vuu-utils/src/list-utils.js +0 -9
  380. package/esm/packages/vuu-utils/src/list-utils.js.map +0 -1
  381. package/esm/packages/vuu-utils/src/local-storage-utils.js +0 -30
  382. package/esm/packages/vuu-utils/src/local-storage-utils.js.map +0 -1
  383. package/esm/packages/vuu-utils/src/logging-utils.js +0 -61
  384. package/esm/packages/vuu-utils/src/logging-utils.js.map +0 -1
  385. package/esm/packages/vuu-utils/src/module-utils.js +0 -4
  386. package/esm/packages/vuu-utils/src/module-utils.js.map +0 -1
  387. package/esm/packages/vuu-utils/src/nanoid/index.js +0 -20
  388. package/esm/packages/vuu-utils/src/nanoid/index.js.map +0 -1
  389. package/esm/packages/vuu-utils/src/perf-utils.js +0 -32
  390. package/esm/packages/vuu-utils/src/perf-utils.js.map +0 -1
  391. package/esm/packages/vuu-utils/src/promise-utils.js +0 -40
  392. package/esm/packages/vuu-utils/src/promise-utils.js.map +0 -1
  393. package/esm/packages/vuu-utils/src/protocol-message-utils.js +0 -75
  394. package/esm/packages/vuu-utils/src/protocol-message-utils.js.map +0 -1
  395. package/esm/packages/vuu-utils/src/range-utils.js +0 -108
  396. package/esm/packages/vuu-utils/src/range-utils.js.map +0 -1
  397. package/esm/packages/vuu-utils/src/react-utils.js +0 -66
  398. package/esm/packages/vuu-utils/src/react-utils.js.map +0 -1
  399. package/esm/packages/vuu-utils/src/round-decimal.js +0 -127
  400. package/esm/packages/vuu-utils/src/round-decimal.js.map +0 -1
  401. package/esm/packages/vuu-utils/src/row-utils.js +0 -54
  402. package/esm/packages/vuu-utils/src/row-utils.js.map +0 -1
  403. package/esm/packages/vuu-utils/src/selection-utils.js +0 -31
  404. package/esm/packages/vuu-utils/src/selection-utils.js.map +0 -1
  405. package/esm/packages/vuu-utils/src/shell-layout-types.js +0 -11
  406. package/esm/packages/vuu-utils/src/shell-layout-types.js.map +0 -1
  407. package/esm/packages/vuu-utils/src/sort-utils.js +0 -73
  408. package/esm/packages/vuu-utils/src/sort-utils.js.map +0 -1
  409. package/esm/packages/vuu-utils/src/table-schema-utils.js +0 -11
  410. package/esm/packages/vuu-utils/src/table-schema-utils.js.map +0 -1
  411. package/esm/packages/vuu-utils/src/text-utils.js +0 -18
  412. package/esm/packages/vuu-utils/src/text-utils.js.map +0 -1
  413. package/esm/packages/vuu-utils/src/theme-utils.js +0 -34
  414. package/esm/packages/vuu-utils/src/theme-utils.js.map +0 -1
  415. package/esm/packages/vuu-utils/src/tree-utils.js +0 -108
  416. package/esm/packages/vuu-utils/src/tree-utils.js.map +0 -1
  417. package/esm/packages/vuu-utils/src/ts-utils.js +0 -8
  418. package/esm/packages/vuu-utils/src/ts-utils.js.map +0 -1
  419. package/esm/packages/vuu-utils/src/typeahead-utils.js +0 -4
  420. package/esm/packages/vuu-utils/src/typeahead-utils.js.map +0 -1
  421. package/esm/packages/vuu-utils/src/url-utils.js +0 -18
  422. package/esm/packages/vuu-utils/src/url-utils.js.map +0 -1
  423. package/esm/packages/vuu-utils/src/useId.js +0 -7
  424. package/esm/packages/vuu-utils/src/useId.js.map +0 -1
  425. package/esm/packages/vuu-utils/src/useLayoutEffectSkipFirst.js +0 -15
  426. package/esm/packages/vuu-utils/src/useLayoutEffectSkipFirst.js.map +0 -1
  427. package/esm/packages/vuu-utils/src/useResizeObserver.js +0 -130
  428. package/esm/packages/vuu-utils/src/useResizeObserver.js.map +0 -1
  429. package/esm/packages/vuu-utils/src/useStateRef.js +0 -21
  430. package/esm/packages/vuu-utils/src/useStateRef.js.map +0 -1
@@ -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,25 @@
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
+ export { deselectItem, selectItem };
@@ -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,11 @@
1
+ const getVuuTable = (schemaTable)=>{
2
+ if (!schemaTable.session) return schemaTable;
3
+ {
4
+ const { module, session } = schemaTable;
5
+ return {
6
+ module,
7
+ table: session
8
+ };
9
+ }
10
+ };
11
+ export { getVuuTable };
@@ -0,0 +1,13 @@
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 regexp_worfify = /(?<!(^|[A-Z]))(?=[A-Z])|(?<!^)(?=[A-Z][a-z])/;
9
+ const wordify = (text)=>{
10
+ const [firstWord, ...rest] = text.split(regexp_worfify);
11
+ return `${capitalize(firstWord)} ${rest.join(" ")}`;
12
+ };
13
+ export { lastWord, 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
@@ -0,0 +1,96 @@
1
+ import { metadataKeys } from "./column-utils.js";
2
+ const { COUNT: COUNT, DEPTH: DEPTH, IDX: IDX, KEY: KEY } = metadataKeys;
3
+ const timestamp = 0;
4
+ const isNew = false;
5
+ const treeToDataSourceRows = (treeSourceNodes, iconProvider)=>{
6
+ const columns = [];
7
+ columns.push({
8
+ hidden: true,
9
+ name: "nodeData",
10
+ type: "json"
11
+ }, {
12
+ getIcon: iconProvider?.getIcon,
13
+ name: "Level 1",
14
+ type: "string"
15
+ }, {
16
+ getIcon: iconProvider?.getIcon,
17
+ name: "Level 2",
18
+ type: "string"
19
+ });
20
+ const rows = [];
21
+ addChildValues(rows, treeSourceNodes, columns, iconProvider);
22
+ return [
23
+ columns,
24
+ rows
25
+ ];
26
+ };
27
+ const addChildValues = (rows, treeSourceNodes, cols, iconProvider, index = {
28
+ value: 0
29
+ }, keyBase = "$root", depth = 1)=>{
30
+ let leafCount = 0;
31
+ let rowCount = 0;
32
+ if (depth === cols.length - 1) cols.push({
33
+ getIcon: iconProvider?.getIcon,
34
+ name: `Level ${cols.length}`,
35
+ type: "string"
36
+ });
37
+ for(let i = 0; i < treeSourceNodes.length; i++, index.value += 1){
38
+ const { childNodes, icon, label, nodeData } = treeSourceNodes[i];
39
+ const blanks = Array(depth - 1).fill("");
40
+ const fullKey = `${keyBase}|${label}`;
41
+ const row = [
42
+ index.value,
43
+ index.value,
44
+ false,
45
+ false,
46
+ depth,
47
+ 0,
48
+ fullKey,
49
+ 0,
50
+ timestamp,
51
+ isNew,
52
+ nodeData,
53
+ ...blanks,
54
+ label
55
+ ];
56
+ if (icon) iconProvider?.setIcon(fullKey, icon);
57
+ rows.push(row);
58
+ rowCount += 1;
59
+ if (childNodes && childNodes.length > 0) {
60
+ const [nestedLeafCount, nestedRowCount] = addChildValues(rows, childNodes, cols, iconProvider, {
61
+ value: index.value + 1
62
+ }, fullKey, depth + 1);
63
+ row[COUNT] = nestedLeafCount;
64
+ leafCount += nestedLeafCount;
65
+ rowCount += nestedRowCount;
66
+ index.value += nestedRowCount;
67
+ } else leafCount += 1;
68
+ }
69
+ return [
70
+ leafCount,
71
+ rowCount
72
+ ];
73
+ };
74
+ const lastPathSegment = (path, separator = "/")=>{
75
+ const root = path.endsWith(separator) ? path.slice(0, -1) : path;
76
+ return root.slice(root.lastIndexOf(separator) + 1);
77
+ };
78
+ const dropLastPathSegment = (path, separator = "/")=>path.slice(0, path.lastIndexOf(separator));
79
+ const getParentRow = (rows, row)=>{
80
+ const { [IDX]: idx, [DEPTH]: depth } = row;
81
+ for(let i = idx - 1; i >= 0; i--){
82
+ const nextRow = rows[i];
83
+ if (nextRow[DEPTH] === depth - 1) return nextRow;
84
+ }
85
+ };
86
+ const rowsAreSiblings = (key1, key2)=>dropLastPathSegment(key1, "|") === dropLastPathSegment(key2, "|");
87
+ const missingAncestor = (row, previousRow)=>{
88
+ if (previousRow) {
89
+ const prevKey = previousRow[KEY];
90
+ const key = row[KEY];
91
+ if (key.startsWith(prevKey)) ;
92
+ else if (!rowsAreSiblings(prevKey, key)) return true;
93
+ } else if (row[DEPTH] > 1) return true;
94
+ return false;
95
+ };
96
+ export { dropLastPathSegment, getParentRow, lastPathSegment, missingAncestor, treeToDataSourceRows };
@@ -0,0 +1,6 @@
1
+ function isNotNullOrUndefined(value) {
2
+ return null != value;
3
+ }
4
+ const isObject = (o)=>"object" == typeof o && null !== o;
5
+ const elementImplementsJSONSerialization = (element)=>"function" == typeof element.type.toJSON;
6
+ export { elementImplementsJSONSerialization, isNotNullOrUndefined, isObject };
@@ -0,0 +1,4 @@
1
+ const NO_DATA_MATCH = [
2
+ "No matching data"
3
+ ];
4
+ export { NO_DATA_MATCH };
@@ -0,0 +1,12 @@
1
+ function getUrlParameter(paramName, defaultValue) {
2
+ const url = new URL(document.location.href);
3
+ const parameter = url.searchParams.get(paramName);
4
+ if (parameter) return parameter;
5
+ const hashParams = url.hash;
6
+ const regex = new RegExp(`${paramName}=([a-zA-Z]*)`);
7
+ const result = regex.exec(hashParams);
8
+ if (result) return result[1];
9
+ return defaultValue;
10
+ }
11
+ const hasUrlParameter = (paramName)=>new URL(document.location.href).searchParams.has(paramName);
12
+ export { getUrlParameter, hasUrlParameter };
package/src/useId.js ADDED
@@ -0,0 +1,6 @@
1
+ import { useMemo } from "react";
2
+ let vuuComponentIdCount = 0;
3
+ const useId = (id)=>useMemo(()=>id ?? `vuu-${++vuuComponentIdCount}`, [
4
+ id
5
+ ]);
6
+ export { useId };
@@ -0,0 +1,9 @@
1
+ import { useLayoutEffect, useRef } from "react";
2
+ const useLayoutEffectSkipFirst = (func, deps)=>{
3
+ const goodToGo = useRef(false);
4
+ useLayoutEffect(()=>{
5
+ if (goodToGo.current) func();
6
+ else goodToGo.current = true;
7
+ }, deps);
8
+ };
9
+ export { useLayoutEffectSkipFirst };
@@ -0,0 +1,122 @@
1
+ import { useCallback, useEffect, useRef } from "react";
2
+ const WidthHeight = [
3
+ "height",
4
+ "width"
5
+ ];
6
+ const WidthOnly = [
7
+ "width"
8
+ ];
9
+ const observedMap = new Map();
10
+ const getTargetSize = (element, size, dimension)=>{
11
+ switch(dimension){
12
+ case "height":
13
+ return size.height;
14
+ case "clientHeight":
15
+ return Math.floor(element.clientHeight);
16
+ case "clientWidth":
17
+ return Math.floor(element.clientWidth);
18
+ case "contentHeight":
19
+ return size.contentHeight;
20
+ case "contentWidth":
21
+ return size.contentWidth;
22
+ case "scrollHeight":
23
+ return Math.ceil(Math.floor(element.scrollHeight));
24
+ case "scrollWidth":
25
+ return Math.ceil(Math.floor(element.scrollWidth));
26
+ case "width":
27
+ return size.width;
28
+ default:
29
+ return 0;
30
+ }
31
+ };
32
+ const resizeObserver = new ResizeObserver((entries)=>{
33
+ for (const entry of entries){
34
+ const { target, borderBoxSize, contentBoxSize } = entry;
35
+ const observedTarget = observedMap.get(target);
36
+ if (observedTarget) {
37
+ const [{ blockSize: height, inlineSize: width }] = borderBoxSize;
38
+ const [{ blockSize: contentHeight, inlineSize: contentWidth }] = contentBoxSize;
39
+ const { onResize, measurements } = observedTarget;
40
+ let sizeChanged = false;
41
+ for (const [dimension, size] of Object.entries(measurements)){
42
+ const newSize = getTargetSize(target, {
43
+ height,
44
+ width,
45
+ contentHeight,
46
+ contentWidth
47
+ }, dimension);
48
+ if (newSize !== size) {
49
+ sizeChanged = true;
50
+ measurements[dimension] = newSize;
51
+ }
52
+ }
53
+ if (sizeChanged) onResize && onResize(measurements);
54
+ }
55
+ }
56
+ });
57
+ function useResizeObserver(ref, dimensions, onResize, reportInitialSize = false) {
58
+ const dimensionsRef = useRef(dimensions);
59
+ const measure = useCallback((target)=>{
60
+ const { width, height } = target.getBoundingClientRect();
61
+ const { clientWidth: contentWidth, clientHeight: contentHeight } = target;
62
+ const flooredHeight = Math.floor(height);
63
+ const flooredWidth = Math.floor(width);
64
+ return dimensionsRef.current.reduce((map, dim)=>{
65
+ map[dim] = getTargetSize(target, {
66
+ width: flooredWidth,
67
+ height: flooredHeight,
68
+ contentHeight,
69
+ contentWidth
70
+ }, dim);
71
+ return map;
72
+ }, {});
73
+ }, []);
74
+ useEffect(()=>{
75
+ const target = ref.current;
76
+ async function registerObserver() {
77
+ observedMap.set(target, {
78
+ measurements: {}
79
+ });
80
+ const observedTarget = observedMap.get(target);
81
+ if (observedTarget) {
82
+ const measurements = measure(target);
83
+ observedTarget.measurements = measurements;
84
+ resizeObserver.observe(target);
85
+ if (reportInitialSize) onResize(measurements);
86
+ } else console.log("%cuseResizeObserver an target expected to be under observation wa snot found. This warrants investigation", "font-weight:bold; color:red;");
87
+ }
88
+ if (target) {
89
+ if (observedMap.has(target)) console.log("useResizeObserver attemping to observe same element twice", {
90
+ target
91
+ });
92
+ registerObserver();
93
+ }
94
+ return ()=>{
95
+ if (target && observedMap.has(target)) {
96
+ resizeObserver.unobserve(target);
97
+ observedMap.delete(target);
98
+ }
99
+ };
100
+ }, [
101
+ measure,
102
+ ref
103
+ ]);
104
+ useEffect(()=>{
105
+ const target = ref.current;
106
+ const record = observedMap.get(target);
107
+ if (record) {
108
+ if (dimensionsRef.current !== dimensions) {
109
+ dimensionsRef.current = dimensions;
110
+ const measurements = measure(target);
111
+ record.measurements = measurements;
112
+ }
113
+ record.onResize = onResize;
114
+ }
115
+ }, [
116
+ dimensions,
117
+ measure,
118
+ ref,
119
+ onResize
120
+ ]);
121
+ }
122
+ export { WidthHeight, WidthOnly, useResizeObserver };
@@ -0,0 +1,21 @@
1
+ import { useCallback, useRef, useState } from "react";
2
+ const isSimpleStateValue = (arg)=>"function" != typeof arg;
3
+ const useStateRef = (initialValue)=>{
4
+ const [value, _setValue] = useState(initialValue);
5
+ const ref = useRef(value);
6
+ const setValue = useCallback((arg)=>{
7
+ if (isSimpleStateValue(arg)) {
8
+ ref.current = arg;
9
+ _setValue(arg);
10
+ } else {
11
+ const { current: prev } = ref;
12
+ ref.current = arg(prev);
13
+ _setValue(ref.current);
14
+ }
15
+ }, []);
16
+ return [
17
+ ref,
18
+ setValue
19
+ ];
20
+ };
21
+ export { useStateRef };
File without changes
@@ -25,8 +25,8 @@ interface ThemeProviderProps {
25
25
  theme?: string;
26
26
  themeMode?: ThemeMode;
27
27
  }
28
- export declare const ThemeProvider: {
29
- ({ applyThemeClasses, children, theme: themeProp, themeMode: themeModeProp, density: densityProp, }: ThemeProviderProps): import("react/jsx-runtime").JSX.Element;
30
- displayName: string;
31
- };
28
+ export declare function ThemeProvider({ applyThemeClasses, children, theme: themeProp, themeMode: themeModeProp, density: densityProp, }: ThemeProviderProps): import("react/jsx-runtime").JSX.Element;
29
+ export declare namespace ThemeProvider {
30
+ var displayName: string;
31
+ }
32
32
  export {};
@@ -7,7 +7,7 @@ export declare const DOWN2 = "down2";
7
7
  export declare const stringIsValidInt: (val: string) => boolean;
8
8
  export declare const stringIsValidDecimal: (val: string) => boolean;
9
9
  export declare const stringIsValidNumber: (val: string) => boolean;
10
- export declare const numericTypeOfStringValue: (val: string) => "int" | "double" | "NaN";
10
+ export declare const numericTypeOfStringValue: (val: string) => "NaN" | "double" | "int";
11
11
  export declare const isValidNumber: (n: unknown) => n is number;
12
12
  export declare const shallowEquals: (o1?: {
13
13
  [key: string]: unknown;