@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,71 @@
1
+ import { stringIsValidDecimal, stringIsValidInt, stringIsValidLong } from "./data-utils.js";
2
+ import { Time, isValidTimeString } from "./date/index.js";
3
+ import { queryClosest } from "./html-utils.js";
4
+ import { ScaledDecimal2, ScaledDecimal4, ScaledDecimal6, ScaledDecimal8 } from "./ScaledDecimal.js";
5
+ class DataValidationError extends Error {
6
+ actualType;
7
+ expectedType;
8
+ constructor(message, expectedType, actualType){
9
+ super(message);
10
+ this.actualType = actualType;
11
+ this.expectedType = expectedType;
12
+ }
13
+ }
14
+ const getFieldName = (target)=>{
15
+ const saltFormField = queryClosest(target, "[data-field]");
16
+ const fieldName = saltFormField?.dataset.field;
17
+ if (fieldName) return fieldName;
18
+ throw Error("named form field not found");
19
+ };
20
+ const isNumber = (type, value)=>"number" === type;
21
+ const isValidRange = ([val1, val2])=>{
22
+ if (isValidTimeString(val1) && isValidTimeString(val2)) return val2 > val1;
23
+ return true;
24
+ };
25
+ function getTypedRange([value1, value2], dataType, options) {
26
+ return [
27
+ getTypedValue(value1, dataType, false, options),
28
+ getTypedValue(value2, dataType, false, options)
29
+ ];
30
+ }
31
+ const getActualType = (value)=>{
32
+ if ("boolean" == typeof value) return "boolean";
33
+ if ("number" == typeof value) return "number";
34
+ return "string";
35
+ };
36
+ function getTypedValue(value, type, throwIfInvalid = false, options) {
37
+ switch(type){
38
+ case "int":
39
+ if (stringIsValidInt(value)) return parseInt(value, 10);
40
+ if (!throwIfInvalid) return;
41
+ throw Error(`value ${value} is not a valid ${type}`);
42
+ case "long":
43
+ if (stringIsValidLong(value)) return BigInt(value);
44
+ if (!throwIfInvalid) return;
45
+ throw Error(`value ${value} is not a valid ${type}`);
46
+ case "scaleddecimal2":
47
+ return ScaledDecimal2(value);
48
+ case "scaleddecimal4":
49
+ return ScaledDecimal4(value);
50
+ case "scaleddecimal6":
51
+ return ScaledDecimal6(value);
52
+ case "scaleddecimal8":
53
+ return ScaledDecimal8(value);
54
+ case "double":
55
+ case "number":
56
+ if (stringIsValidDecimal(value)) return parseFloat(value);
57
+ if (!throwIfInvalid) return;
58
+ throw new DataValidationError(`value ${value} is not a valid ${type}`, "decimal", getActualType(value));
59
+ case "boolean":
60
+ return "true" === value;
61
+ case "time":
62
+ if (isValidTimeString(value)) if (options?.type === "TimeString") return value;
63
+ else return +Time(value).asDate();
64
+ if (value.length > 0 && Time.isDateInMillis(value)) return Number(value);
65
+ if (!throwIfInvalid) return;
66
+ else throw Error(`value ${value} is not a valid ${type}`);
67
+ default:
68
+ return value;
69
+ }
70
+ }
71
+ export { DataValidationError, getFieldName, getTypedRange, getTypedValue, isNumber, isValidRange };
@@ -0,0 +1,58 @@
1
+ import { isDateTimeDataValue, isMappedValueTypeRenderer, isNanoTimestampColumn, isTimeDataValue, isTypeDescriptor } from "./column-utils.js";
2
+ import { dateTimePattern, formatDate } from "./date/index.js";
3
+ import { roundDecimal, roundScaledDecimal } from "./round-decimal.js";
4
+ import { isNumericType } from "./protocol-message-utils.js";
5
+ const DEFAULT_NUMERIC_FORMAT = {};
6
+ const defaultValueFormatter = (value)=>null == value ? "" : "string" == typeof value ? value : value.toString();
7
+ const dateFormatter = (column)=>{
8
+ if (isNanoTimestampColumn(column)) {
9
+ const pattern = dateTimePattern(column.type);
10
+ const formatter = formatDate(pattern);
11
+ return (value)=>{
12
+ if ("string" != typeof value || "" === value) return "";
13
+ {
14
+ const bigIntValue = BigInt(value);
15
+ const dateTimeValue = Number(bigIntValue / 1000000n);
16
+ const nanoSeconds = (bigIntValue % 1000000n).toString().padStart(9, "0");
17
+ return `${formatter(new Date(dateTimeValue))}.${nanoSeconds}`;
18
+ }
19
+ };
20
+ }
21
+ {
22
+ const pattern = dateTimePattern(column.type);
23
+ const formatter = formatDate(pattern);
24
+ return (value)=>{
25
+ if ("number" == typeof value && 0 !== value) return formatter(new Date(value));
26
+ return "";
27
+ };
28
+ }
29
+ };
30
+ const numericFormatter = ({ align = "right", serverDataType, type })=>{
31
+ if (void 0 === type || "string" == typeof type) return defaultValueFormatter;
32
+ {
33
+ const { alignOnDecimals = false, decimals, roundingRule, useLocaleString, zeroPad = false } = type.formatting ?? DEFAULT_NUMERIC_FORMAT;
34
+ return (value)=>{
35
+ if (serverDataType?.startsWith("scaleddecimal")) if ("string" == typeof value) return roundScaledDecimal(value, align, decimals, zeroPad, alignOnDecimals, useLocaleString, roundingRule);
36
+ else throw Error(`[formatting-utils] numericFormatter, invalid data for ${serverDataType}: '${value}'`);
37
+ if ("string" == typeof value && (value.startsWith("Σ") || value.startsWith("["))) return value;
38
+ const number = "number" == typeof value ? value : "string" == typeof value ? parseFloat(value) : void 0;
39
+ return roundDecimal(number, align, decimals, zeroPad, alignOnDecimals, useLocaleString, roundingRule);
40
+ };
41
+ }
42
+ };
43
+ const mapFormatter = (map)=>(value)=>map[value] ?? "";
44
+ const NumericTypes = [
45
+ "decimal",
46
+ "number"
47
+ ];
48
+ const getValueFormatter = (column)=>{
49
+ const { serverDataType = "string" } = column;
50
+ if (isDateTimeDataValue(column) || isTimeDataValue(column)) return dateFormatter(column);
51
+ const { type } = column;
52
+ if (isTypeDescriptor(type) && isMappedValueTypeRenderer(type?.renderer)) return mapFormatter(type.renderer.map);
53
+ if (isNumericType(serverDataType) || isTypeDescriptor(type) && NumericTypes.includes(type.name)) return numericFormatter(column);
54
+ if ("string" === serverDataType || "char" === serverDataType) return (value)=>value;
55
+ return defaultValueFormatter;
56
+ };
57
+ const lowerCase = (str)=>str.toLowerCase();
58
+ export { defaultValueFormatter, getValueFormatter, lowerCase, numericFormatter };
@@ -0,0 +1,2 @@
1
+ const getUniqueId = ()=>`hw-${Math.round(1e5 * Math.random())}`;
2
+ export { getUniqueId };
@@ -0,0 +1,16 @@
1
+ function addGroupColumn(groupBy, column) {
2
+ if (groupBy.length > 0) return groupBy.concat(column.name);
3
+ return [
4
+ column.name
5
+ ];
6
+ }
7
+ const removeGroupColumn = (groupBy, column)=>groupBy.filter((colName)=>colName !== column.name);
8
+ const getGroupStatus = (columnName, groupBy)=>{
9
+ if (void 0 === groupBy || 0 === groupBy.length) return "no-groupby";
10
+ {
11
+ const indexPos = groupBy.indexOf(columnName);
12
+ if (-1 === indexPos) return 1 === groupBy.length ? "single-groupby-other-column" : "multi-groupby-other-columns";
13
+ return 1 === groupBy.length ? "single-groupby" : "single-groupby-other-column";
14
+ }
15
+ };
16
+ export { addGroupColumn, getGroupStatus, removeGroupColumn };
@@ -0,0 +1,108 @@
1
+ const createEl = (elementType, className, textContent)=>{
2
+ const el = document.createElement(elementType);
3
+ if (className) el.className = className;
4
+ if (textContent) el.textContent = textContent;
5
+ return el;
6
+ };
7
+ const getFocusableElement = (el, tabIndex)=>{
8
+ if (el) {
9
+ if (el.hasAttribute("tabindex")) {
10
+ const rootTabIndex = parseInt(el.getAttribute("tabindex"));
11
+ if (!isNaN(rootTabIndex) && (void 0 === tabIndex || rootTabIndex === tabIndex)) return el;
12
+ }
13
+ const focusableEl = "number" == typeof tabIndex ? el.querySelector(`[tabindex="${tabIndex}"]`) : el.querySelector("[tabindex]");
14
+ if (focusableEl) return focusableEl;
15
+ }
16
+ };
17
+ const getElementDataIndex = (el)=>{
18
+ if (el) {
19
+ const index = parseInt(el.dataset.index || "");
20
+ if (!isNaN(index)) return index;
21
+ }
22
+ return -1;
23
+ };
24
+ function queryClosest(el, cssQueryString, throwIfNotFound) {
25
+ if (el) {
26
+ const result = el.closest(cssQueryString);
27
+ if (result) return result;
28
+ }
29
+ if (!throwIfNotFound) return null;
30
+ throw Error(`no element found to match '${cssQueryString}'`);
31
+ }
32
+ const getClosest = (el, dataProperty)=>queryClosest(el, `[data-${dataProperty}]`);
33
+ const getClosestIndexItem = (el)=>getClosest(el, "index");
34
+ function getElementByDataIndex(container, index, throwIfNotFound = false) {
35
+ if (null == container && throwIfNotFound) throw Error("html-utils getElementByDataIndex, container is null");
36
+ const element = container?.querySelector(`[data-index="${index}"]`);
37
+ if (element) return element;
38
+ if (!throwIfNotFound) return;
39
+ throw Error("html-utils getElementByDataIndex, Item not found with data-index='${index}'");
40
+ }
41
+ const focusFirstFocusableElement = (el, tabIndex)=>{
42
+ requestAnimationFrame(()=>{
43
+ const focusableElement = getFocusableElement(el, tabIndex);
44
+ if (focusableElement) focusableElement.focus();
45
+ });
46
+ };
47
+ const isSelectableElement = (el)=>{
48
+ const item = el?.closest("[data-index]");
49
+ if (!item || item.ariaDisabled || "false" === item.dataset.selectable || item.querySelector('[data-selectable="false"],[aria-disabled="true"]')) return false;
50
+ return true;
51
+ };
52
+ const isInputElement = (el)=>{
53
+ if (null === el) return false;
54
+ return "INPUT" === el.tagName;
55
+ };
56
+ const isDateInput = (el)=>isInputElement(el) && el.classList.contains("saltDateInput-input");
57
+ const hasOpenOptionList = (el)=>{
58
+ if (null !== el) return "true" === el.ariaExpanded;
59
+ };
60
+ let size;
61
+ function getScrollbarSize() {
62
+ if (void 0 === size) {
63
+ let outer = document.createElement("div");
64
+ outer.className = "scrollable-content";
65
+ outer.style.width = "50px";
66
+ outer.style.height = "50px";
67
+ outer.style.overflowY = "scroll";
68
+ outer.style.position = "absolute";
69
+ outer.style.top = "-200px";
70
+ outer.style.left = "-200px";
71
+ const inner = document.createElement("div");
72
+ inner.style.height = "100px";
73
+ inner.style.width = "100%";
74
+ outer.appendChild(inner);
75
+ document.body.appendChild(outer);
76
+ const outerWidth = outer.offsetWidth;
77
+ const innerWidth = inner.offsetWidth;
78
+ document.body.removeChild(outer);
79
+ size = outerWidth - innerWidth;
80
+ outer = null;
81
+ }
82
+ return size;
83
+ }
84
+ const dispatchMouseEvent = (el, type)=>{
85
+ const evt = new MouseEvent(type, {
86
+ view: window,
87
+ bubbles: true,
88
+ cancelable: true
89
+ });
90
+ el.dispatchEvent(evt);
91
+ };
92
+ const dispatchKeyboardEvent = (el, type, key)=>{
93
+ const evt = new KeyboardEvent(type, {
94
+ key,
95
+ view: window,
96
+ bubbles: true,
97
+ cancelable: true
98
+ });
99
+ el.dispatchEvent(evt);
100
+ };
101
+ const dispatchCustomEvent = (el, type)=>{
102
+ const evt = new Event(type, {
103
+ bubbles: true,
104
+ cancelable: true
105
+ });
106
+ el.dispatchEvent(evt);
107
+ };
108
+ export { createEl, dispatchCustomEvent, dispatchKeyboardEvent, dispatchMouseEvent, focusFirstFocusableElement, getClosest, getClosestIndexItem, getElementByDataIndex, getElementDataIndex, getFocusableElement, getScrollbarSize, hasOpenOptionList, isDateInput, isInputElement, isSelectableElement, queryClosest };
package/src/index.js ADDED
@@ -0,0 +1,74 @@
1
+ export * from "./array-utils.js";
2
+ export * from "./box-utils.js";
3
+ export * from "./broadcast-channel.js";
4
+ export * from "./column-utils.js";
5
+ export * from "./common-types.js";
6
+ export * from "./component-registry.js";
7
+ export * from "./cookie-utils.js";
8
+ export * from "./css-utils.js";
9
+ export * from "./data-utils.js";
10
+ export * from "./datasource/BaseDataSource.js";
11
+ export * from "./datasource/datasource-action-utils.js";
12
+ export * from "./datasource/datasource-filter-utils.js";
13
+ export * from "./datasource/datasource-utils.js";
14
+ export * from "./date/index.js";
15
+ export * from "./debug-utils.js";
16
+ export * from "./event-emitter.js";
17
+ export * from "./feature-utils.js";
18
+ export * from "./filters/index.js";
19
+ export * from "./form-utils.js";
20
+ export * from "./formatting-utils.js";
21
+ export * from "./getUniqueId.js";
22
+ export * from "./group-utils.js";
23
+ export * from "./html-utils.js";
24
+ export * from "./input-utils.js";
25
+ export * from "./invariant.js";
26
+ export * from "./itemToString.js";
27
+ export * from "./json-types.js";
28
+ export * from "./json-utils.js";
29
+ export * from "./keyboard-utils.js";
30
+ export * from "./keyset.js";
31
+ export * from "./layout-types.js";
32
+ export * from "./list-utils.js";
33
+ export * from "./local-storage-utils.js";
34
+ export * from "./logging-utils.js";
35
+ export * from "./module-utils.js";
36
+ export * from "./nanoid/index.js";
37
+ export * from "./perf-utils.js";
38
+ export * from "./promise-utils.js";
39
+ export * from "./protocol-message-utils.js";
40
+ export * from "./range-utils.js";
41
+ export * from "./react-utils.js";
42
+ export * from "./round-decimal.js";
43
+ export * from "./row-utils.js";
44
+ export * from "./ScaledDecimal.js";
45
+ export * from "./selection-utils.js";
46
+ export * from "./shell-layout-types.js";
47
+ export * from "./sort-utils.js";
48
+ export * from "./table-schema-utils.js";
49
+ export * from "./text-utils.js";
50
+ export * from "./ThemeProvider.js";
51
+ export * from "./tree-types.js";
52
+ export * from "./tree-utils.js";
53
+ export * from "./ts-utils.js";
54
+ export * from "./typeahead-utils.js";
55
+ export * from "./url-utils.js";
56
+ export * from "./useId.js";
57
+ export * from "./useLayoutEffectSkipFirst.js";
58
+ export * from "./user-types.js";
59
+ export * from "./useStateRef.js";
60
+ export * from "./context-definitions/DataProvider.js";
61
+ export * from "./context-definitions/WorkspaceContext.js";
62
+ export * from "./ShellContext.js";
63
+ export { RestrictToHorizontalAxis } from "@dnd-kit/abstract/modifiers";
64
+ export { KeyboardSensor, PointerSensor } from "@dnd-kit/dom";
65
+ export { DragDropProvider, DragOverlay, useInstance } from "@dnd-kit/react";
66
+ export { useSortable } from "@dnd-kit/react/sortable";
67
+ export { Clock } from "./Clock.js";
68
+ export { isInlineEditingSession } from "./edit-utils.js";
69
+ export { StaleUpdateError } from "./errors.js";
70
+ export { WidthHeight, WidthOnly, useResizeObserver } from "./useResizeObserver.js";
71
+ export { DataContext } from "./context-definitions/DataContext.js";
72
+ export { DataSourceProvider, useDataSource } from "./context-definitions/DataSourceProvider.js";
73
+ export { PageVisibilityObserver } from "./PageVisibilityObserver.js";
74
+ export { ThemeLoadChecker } from "./theme-utils.js";
@@ -0,0 +1,3 @@
1
+ const isCharacterKey = (key)=>1 === key.length;
2
+ const isQuoteKey = (evt)=>'"' === evt.key || "'" === evt.key;
3
+ export { isCharacterKey, isQuoteKey };
@@ -0,0 +1,9 @@
1
+ function invariant(condition, message) {
2
+ if (!condition) {
3
+ const error = new Error(message);
4
+ error.name = "Invariant Violation";
5
+ error.framesToPop = 1;
6
+ throw error;
7
+ }
8
+ }
9
+ export { invariant };
@@ -0,0 +1,9 @@
1
+ const isPlainObject = (obj)=>"[object Object]" === Object.prototype.toString.call(obj);
2
+ function itemToString(item) {
3
+ if ("string" == typeof item) return item;
4
+ if (!isPlainObject(item)) return String(item);
5
+ if (Object.prototype.hasOwnProperty.call(item, "label")) return String(item.label);
6
+ console.warn("itemToString: you've likely forgotten to set the label prop on the item object.\nYou can also provide your own `itemToString` implementation.");
7
+ return "";
8
+ }
9
+ export { itemToString };
File without changes
@@ -0,0 +1,108 @@
1
+ import { metadataKeys } from "./column-utils.js";
2
+ const { COUNT: COUNT } = metadataKeys;
3
+ const isJsonData = (value)=>"object" == typeof value && null !== value;
4
+ const vuuRowDataItemTypes = [
5
+ "boolean",
6
+ "number",
7
+ "string"
8
+ ];
9
+ const isVuuRowDataItem = (value)=>vuuRowDataItemTypes.includes(typeof value);
10
+ const getCellValue = (attribute, attributeValue)=>{
11
+ if (Array.isArray(attributeValue)) return {
12
+ attribute: `${attribute}[`,
13
+ attributeValue: "",
14
+ isLeaf: false
15
+ };
16
+ if (isJsonData(attributeValue)) return {
17
+ attribute: `${attribute}{`,
18
+ attributeValue: "",
19
+ isLeaf: false
20
+ };
21
+ if (void 0 === attributeValue) return {
22
+ attribute,
23
+ attributeValue: "undefined",
24
+ isLeaf: true
25
+ };
26
+ if (isVuuRowDataItem(attributeValue)) return {
27
+ attribute,
28
+ attributeValue,
29
+ isLeaf: true
30
+ };
31
+ throw Error(`unsupported type ${typeof attributeValue} in JSON`);
32
+ };
33
+ const jsonColumnType = {
34
+ name: "json",
35
+ renderer: {
36
+ name: "json"
37
+ }
38
+ };
39
+ const jsonToDataSourceRows = (json)=>{
40
+ const cols = [];
41
+ cols.push({
42
+ className: "vuuJsonCell",
43
+ name: "Level 1",
44
+ type: jsonColumnType
45
+ }, {
46
+ className: "vuuJsonCell",
47
+ name: "Level 2",
48
+ type: jsonColumnType
49
+ });
50
+ const rows = [];
51
+ addChildValues(rows, json, cols);
52
+ return [
53
+ cols,
54
+ rows
55
+ ];
56
+ };
57
+ const addChildValues = (rows, json, cols, index = {
58
+ value: 0
59
+ }, keyBase = "$root", depth = 0)=>{
60
+ let leafCount = 0;
61
+ let rowCount = 0;
62
+ if (depth === cols.length - 1) cols.push({
63
+ className: "vuuJsonCell",
64
+ name: `Level ${cols.length + 1}`,
65
+ hidden: true,
66
+ type: jsonColumnType
67
+ });
68
+ const columnEntries = Object.entries(json);
69
+ for(let i = 0; i < columnEntries.length; i++, index.value += 1){
70
+ const [key, value] = columnEntries[i];
71
+ const { attribute, attributeValue, isLeaf } = getCellValue(key, value);
72
+ const blanks = Array(depth).fill("");
73
+ const fullKey = `${keyBase}|${key}`;
74
+ const ts = 0;
75
+ const isNew = false;
76
+ const row = [
77
+ index.value,
78
+ index.value,
79
+ isLeaf,
80
+ false,
81
+ depth,
82
+ 0,
83
+ fullKey,
84
+ 0,
85
+ ts,
86
+ isNew,
87
+ ...blanks,
88
+ attribute,
89
+ attributeValue
90
+ ];
91
+ rows.push(row);
92
+ rowCount += 1;
93
+ if (isJsonData(value)) {
94
+ const [nestedLeafCount, nestedRowCount] = addChildValues(rows, value, cols, {
95
+ value: index.value + 1
96
+ }, fullKey, depth + 1);
97
+ row[COUNT] = nestedLeafCount;
98
+ leafCount += nestedLeafCount;
99
+ rowCount += nestedRowCount;
100
+ index.value += nestedRowCount;
101
+ } else leafCount += 1;
102
+ }
103
+ return [
104
+ leafCount,
105
+ rowCount
106
+ ];
107
+ };
108
+ export { jsonToDataSourceRows };
@@ -10,7 +10,5 @@ const PageUp = "PageUp";
10
10
  const PageDown = "PageDown";
11
11
  const Space = " ";
12
12
  const Tab = "Tab";
13
- const isArrowKey = (key) => key === "ArrowUp" || key === "ArrowDown" || key === "ArrowLeft" || key === "ArrowRight";
14
-
13
+ const isArrowKey = (key)=>"ArrowUp" === key || "ArrowDown" === key || "ArrowLeft" === key || "ArrowRight" === key;
15
14
  export { ArrowDown, ArrowLeft, ArrowRight, ArrowUp, End, Enter, Escape, Home, PageDown, PageUp, Space, Tab, isArrowKey };
16
- //# sourceMappingURL=keyboard-utils.js.map
package/src/keyset.js ADDED
@@ -0,0 +1,57 @@
1
+ const EMPTY = [];
2
+ class KeySet {
3
+ keys = new Map();
4
+ nextKeyValue = 0;
5
+ range;
6
+ constructor(range){
7
+ this.range = range;
8
+ this.init(range);
9
+ }
10
+ next(free = EMPTY) {
11
+ if (free.length > 0) return free.shift();
12
+ return this.nextKeyValue++;
13
+ }
14
+ init({ from, to }) {
15
+ this.keys.clear();
16
+ this.nextKeyValue = 0;
17
+ for(let rowIndex = from; rowIndex < to; rowIndex++){
18
+ const nextKeyValue = this.next();
19
+ this.keys.set(rowIndex, nextKeyValue);
20
+ }
21
+ return true;
22
+ }
23
+ reset(range) {
24
+ const { from, to } = range;
25
+ const newSize = to - from;
26
+ const currentSize = this.range.to - this.range.from;
27
+ this.range = range;
28
+ if (currentSize > newSize) return this.init(range);
29
+ const freeKeys = [];
30
+ this.keys.forEach((keyValue, rowIndex)=>{
31
+ if (rowIndex < from || rowIndex >= to) {
32
+ freeKeys.push(keyValue);
33
+ this.keys.delete(rowIndex);
34
+ }
35
+ });
36
+ for(let rowIndex = from; rowIndex < to; rowIndex++)if (!this.keys.has(rowIndex)) {
37
+ const nextKeyValue = this.next(freeKeys);
38
+ this.keys.set(rowIndex, nextKeyValue);
39
+ }
40
+ return false;
41
+ }
42
+ keyFor(rowIndex) {
43
+ const key = this.keys.get(rowIndex);
44
+ if (void 0 === key) {
45
+ console.log(`key not found
46
+ keys: ${this.toDebugString()}
47
+ `);
48
+ throw Error(`KeySet, no key found for rowIndex ${rowIndex}`);
49
+ }
50
+ return key;
51
+ }
52
+ toDebugString() {
53
+ return `${this.keys.size} keys
54
+ ${Array.from(this.keys.entries()).sort(([key1], [key2])=>key1 - key2).map(([k, v])=>`${k}=>${v}`).join(",")}]\n`;
55
+ }
56
+ }
57
+ export { KeySet };
File without changes
@@ -0,0 +1,5 @@
1
+ const getSelectedOption = (values, selectedValue)=>{
2
+ if (void 0 === selectedValue) return;
3
+ return values.find((option)=>option.value === selectedValue);
4
+ };
5
+ export { getSelectedOption };
@@ -0,0 +1,23 @@
1
+ const getLocalEntity = (key, deleteOnRead = false)=>{
2
+ const data = localStorage.getItem(key);
3
+ if (data) {
4
+ if (deleteOnRead) localStorage.removeItem(key);
5
+ return JSON.parse(data);
6
+ }
7
+ };
8
+ const clearLocalEntity = (key)=>{
9
+ const doomedItem = localStorage.getItem(key);
10
+ if (!doomedItem) return false;
11
+ localStorage.removeItem(key);
12
+ return true;
13
+ };
14
+ const getAllLocalEntity = (url)=>Object.entries(localStorage).filter(([key])=>key.includes(url)).map(([, value])=>JSON.parse(value));
15
+ const saveLocalEntity = (key, data)=>{
16
+ try {
17
+ localStorage.setItem(key, JSON.stringify(data));
18
+ return data;
19
+ } catch {
20
+ return;
21
+ }
22
+ };
23
+ export { clearLocalEntity, getAllLocalEntity, getLocalEntity, saveLocalEntity };
@@ -0,0 +1,52 @@
1
+ import { getCookieValue } from "./cookie-utils.js";
2
+ const logLevels = [
3
+ "error",
4
+ "warn",
5
+ "info",
6
+ "debug"
7
+ ];
8
+ const isValidLogLevel = (value)=>"string" == typeof value && logLevels.includes(value);
9
+ const DEFAULT_LOG_LEVEL = "error";
10
+ const NO_OP = ()=>void 0;
11
+ const DEFAULT_DEBUG_LEVEL = "production" === process.env.NODE_ENV ? "error" : "info";
12
+ const { loggingLevel: loggingLevel = DEFAULT_DEBUG_LEVEL } = getLoggingSettings();
13
+ const logger = (category)=>{
14
+ const debugEnabled = "debug" === loggingLevel;
15
+ const infoEnabled = debugEnabled || "info" === loggingLevel;
16
+ const warnEnabled = infoEnabled || "warn" === loggingLevel;
17
+ const errorEnabled = warnEnabled || "error" === loggingLevel;
18
+ const info = infoEnabled ? (message)=>console.info(`${Date.now()} [${category}] ${message}`) : NO_OP;
19
+ const warn = warnEnabled ? (message)=>console.warn(`[${category}] ${message}`) : NO_OP;
20
+ const debug = debugEnabled ? (message)=>console.debug(`${Date.now()} [${category}] ${message}`) : NO_OP;
21
+ const error = errorEnabled ? (message)=>console.error(`[${category}] ${message}`) : NO_OP;
22
+ if ("production" === process.env.NODE_ENV) return {
23
+ errorEnabled,
24
+ error
25
+ };
26
+ return {
27
+ debugEnabled,
28
+ infoEnabled,
29
+ warnEnabled,
30
+ errorEnabled,
31
+ info,
32
+ warn,
33
+ debug,
34
+ error
35
+ };
36
+ };
37
+ function getLoggingSettings() {
38
+ if ("u" > typeof loggingSettings) return loggingSettings;
39
+ return {
40
+ loggingLevel: getLoggingLevelFromCookie()
41
+ };
42
+ }
43
+ function getLoggingLevelFromCookie() {
44
+ const value = getCookieValue("vuu-logging-level");
45
+ if (isValidLogLevel(value)) return value;
46
+ return DEFAULT_LOG_LEVEL;
47
+ }
48
+ const getLoggingConfigForWorker = ()=>`const loggingSettings = { loggingLevel: "${getLoggingLevelFromCookie()}"};`;
49
+ const logUnhandledMessage = (message, context = "[logUnhandledStruct]")=>{
50
+ console.log(`${context} ${JSON.stringify(message)}`);
51
+ };
52
+ export { getLoggingConfigForWorker, logUnhandledMessage, logger };
@@ -0,0 +1,2 @@
1
+ const isModule = (entity)=>void 0 !== entity && "function" != typeof entity;
2
+ export { isModule };
@@ -0,0 +1,13 @@
1
+ const uuid = (size = 21)=>{
2
+ let id = '';
3
+ const bytes = crypto.getRandomValues(new Uint8Array(size));
4
+ while(size--){
5
+ const byte = 63 & bytes[size];
6
+ if (byte < 36) id += byte.toString(36);
7
+ else if (byte < 62) id += (byte - 26).toString(36).toUpperCase();
8
+ else if (byte < 63) id += '_';
9
+ else id += '-';
10
+ }
11
+ return id;
12
+ };
13
+ export { uuid };
@@ -0,0 +1,28 @@
1
+ function debounce(callback, timeInterval) {
2
+ let timeout;
3
+ return (...args)=>{
4
+ clearTimeout(timeout);
5
+ timeout = window.setTimeout(()=>callback(...args), timeInterval);
6
+ };
7
+ }
8
+ function throttle(callback, limit) {
9
+ let wait = false;
10
+ let lastArgs;
11
+ function checkLastArgs() {
12
+ if (void 0 == lastArgs) wait = false;
13
+ else {
14
+ callback(...lastArgs);
15
+ lastArgs = void 0;
16
+ setTimeout(checkLastArgs, limit);
17
+ }
18
+ }
19
+ return (...args)=>{
20
+ if (wait) lastArgs = args;
21
+ else {
22
+ callback(...args);
23
+ wait = true;
24
+ setTimeout(checkLastArgs, limit);
25
+ }
26
+ };
27
+ }
28
+ export { debounce, throttle };