@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
@@ -1,54 +0,0 @@
1
- import { metadataKeys } from './column-utils.js';
2
-
3
- const { IS_LEAF, KEY, IDX, SELECTED } = metadataKeys;
4
- const actualRowPositioning = (rowHeight) => [
5
- (dataRow) => dataRow.index * rowHeight,
6
- (position) => Math.floor(position / rowHeight),
7
- false
8
- ];
9
- const virtualRowPositioning = (rowHeight, virtualisedExtent, pctScrollTop) => [
10
- (dataRow, offset = 0) => {
11
- const rowOffset = pctScrollTop.current * virtualisedExtent;
12
- return (dataRow.index - offset) * rowHeight - rowOffset;
13
- },
14
- /*
15
- Return index position of closest row
16
- */
17
- (position) => {
18
- const rowOffset = pctScrollTop.current * virtualisedExtent;
19
- return Math.round((position + rowOffset) / rowHeight);
20
- },
21
- true
22
- ];
23
- const asDataSourceRowObject = (row, columnMap) => {
24
- const { [IS_LEAF]: isLeaf, [KEY]: key, [IDX]: index } = row;
25
- const rowObject = {
26
- key,
27
- index,
28
- isGroupRow: !isLeaf,
29
- isSelected: row[SELECTED] !== 0,
30
- data: {}
31
- };
32
- for (const [colName, colIdx] of Object.entries(columnMap)) {
33
- rowObject.data[colName] = row[colIdx];
34
- }
35
- return rowObject;
36
- };
37
- const vuuRowToDataSourceRow = ({ rowIndex, rowKey, sel: isSelected = 0, ts, data }, keys) => {
38
- return [
39
- rowIndex,
40
- keys.keyFor(rowIndex),
41
- true,
42
- false,
43
- 0,
44
- 0,
45
- rowKey,
46
- isSelected,
47
- ts,
48
- false
49
- // IsNew
50
- ].concat(data);
51
- };
52
-
53
- export { actualRowPositioning, asDataSourceRowObject, virtualRowPositioning, vuuRowToDataSourceRow };
54
- //# sourceMappingURL=row-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"row-utils.js","sources":["../../../../../../packages/vuu-utils/src/row-utils.ts"],"sourcesContent":["//TODO this all probably belongs in vuu-table\nimport type {\n DataSourceRow,\n DataSourceRowObject,\n} from \"@vuu-ui/vuu-data-types\";\nimport { ColumnMap, metadataKeys } from \"./column-utils\";\nimport { IKeySet } from \"./keyset\";\nimport { VuuRow } from \"@vuu-ui/vuu-protocol-types\";\nimport { RefObject } from \"react\";\nimport { DataRow } from \"@vuu-ui/vuu-table-types\";\n\nconst { IS_LEAF, KEY, IDX, SELECTED } = metadataKeys;\n\nexport type RowOffsetFunc = (dataRow: DataRow, pctScrollTop?: number) => number;\nexport type RowAtPositionFunc = (position: number) => number;\n\n/**\n * RowOffset function, RowAtPosition function, isVirtualScroll\n */\nexport type RowPositioning = [RowOffsetFunc, RowAtPositionFunc, boolean];\n\nexport const actualRowPositioning = (rowHeight: number): RowPositioning => [\n (dataRow) => dataRow.index * rowHeight,\n (position) => Math.floor(position / rowHeight),\n false,\n];\n\n/**\n * return functions for determining a) the pixel offset to apply to a row, given the\n * row index and b) the index of the row at a given scroll offset. This implementation\n * is used when we are forced to 'virtualise' scrolling - because the number of rows\n * is high enough that we cannot create a large enough HTML content container.\n *\n * @param rowHeight\n * @param virtualisedExtent\n * @param pctScrollTop\n * @returns\n */\nexport const virtualRowPositioning = (\n rowHeight: number,\n virtualisedExtent: number,\n pctScrollTop: RefObject<number>,\n): RowPositioning => [\n (dataRow, offset = 0) => {\n const rowOffset = pctScrollTop.current * virtualisedExtent;\n return (dataRow.index - offset) * rowHeight - rowOffset;\n },\n /*\n Return index position of closest row \n */\n (position) => {\n const rowOffset = pctScrollTop.current * virtualisedExtent;\n return Math.round((position + rowOffset) / rowHeight);\n },\n true,\n];\n\n// deprecated\nexport type RowToObjectMapper = (\n row: DataSourceRow,\n columnMap: ColumnMap,\n) => DataSourceRowObject;\n\n// deprecated\nexport const asDataSourceRowObject: RowToObjectMapper = (\n row,\n columnMap,\n): DataSourceRowObject => {\n const { [IS_LEAF]: isLeaf, [KEY]: key, [IDX]: index } = row;\n\n const rowObject: DataSourceRowObject = {\n key,\n index,\n isGroupRow: !isLeaf,\n isSelected: row[SELECTED] !== 0,\n data: {},\n };\n\n for (const [colName, colIdx] of Object.entries(columnMap)) {\n rowObject.data[colName] = row[colIdx];\n }\n\n return rowObject;\n};\n\n// deprecated\nexport const vuuRowToDataSourceRow = (\n { rowIndex, rowKey, sel: isSelected = 0, ts, data }: VuuRow,\n keys: IKeySet,\n) => {\n return [\n rowIndex,\n keys.keyFor(rowIndex),\n true,\n false,\n 0,\n 0,\n rowKey,\n isSelected,\n ts,\n false, // IsNew\n ].concat(data) as DataSourceRow;\n};\n"],"names":[],"mappings":";;AAWA,MAAM,EAAE,OAAA,EAAS,GAAK,EAAA,GAAA,EAAK,UAAa,GAAA,YAAA;AAU3B,MAAA,oBAAA,GAAuB,CAAC,SAAsC,KAAA;AAAA,EACzE,CAAC,OAAY,KAAA,OAAA,CAAQ,KAAQ,GAAA,SAAA;AAAA,EAC7B,CAAC,QAAA,KAAa,IAAK,CAAA,KAAA,CAAM,WAAW,SAAS,CAAA;AAAA,EAC7C;AACF;AAaO,MAAM,qBAAwB,GAAA,CACnC,SACA,EAAA,iBAAA,EACA,YACmB,KAAA;AAAA,EACnB,CAAC,OAAS,EAAA,MAAA,GAAS,CAAM,KAAA;AACvB,IAAM,MAAA,SAAA,GAAY,aAAa,OAAU,GAAA,iBAAA;AACzC,IAAQ,OAAA,CAAA,OAAA,CAAQ,KAAQ,GAAA,MAAA,IAAU,SAAY,GAAA,SAAA;AAAA,GAChD;AAAA;AAAA;AAAA;AAAA,EAIA,CAAC,QAAa,KAAA;AACZ,IAAM,MAAA,SAAA,GAAY,aAAa,OAAU,GAAA,iBAAA;AACzC,IAAA,OAAO,IAAK,CAAA,KAAA,CAAA,CAAO,QAAW,GAAA,SAAA,IAAa,SAAS,CAAA;AAAA,GACtD;AAAA,EACA;AACF;AASa,MAAA,qBAAA,GAA2C,CACtD,GAAA,EACA,SACwB,KAAA;AACxB,EAAA,MAAM,EAAE,CAAC,OAAO,GAAG,MAAQ,EAAA,CAAC,GAAG,GAAG,GAAK,EAAA,CAAC,GAAG,GAAG,OAAU,GAAA,GAAA;AAExD,EAAA,MAAM,SAAiC,GAAA;AAAA,IACrC,GAAA;AAAA,IACA,KAAA;AAAA,IACA,YAAY,CAAC,MAAA;AAAA,IACb,UAAA,EAAY,GAAI,CAAA,QAAQ,CAAM,KAAA,CAAA;AAAA,IAC9B,MAAM;AAAC,GACT;AAEA,EAAA,KAAA,MAAW,CAAC,OAAS,EAAA,MAAM,KAAK,MAAO,CAAA,OAAA,CAAQ,SAAS,CAAG,EAAA;AACzD,IAAA,SAAA,CAAU,IAAK,CAAA,OAAO,CAAI,GAAA,GAAA,CAAI,MAAM,CAAA;AAAA;AAGtC,EAAO,OAAA,SAAA;AACT;AAGa,MAAA,qBAAA,GAAwB,CACnC,EAAE,QAAU,EAAA,MAAA,EAAQ,GAAK,EAAA,UAAA,GAAa,CAAG,EAAA,EAAA,EAAI,IAAK,EAAA,EAClD,IACG,KAAA;AACH,EAAO,OAAA;AAAA,IACL,QAAA;AAAA,IACA,IAAA,CAAK,OAAO,QAAQ,CAAA;AAAA,IACpB,IAAA;AAAA,IACA,KAAA;AAAA,IACA,CAAA;AAAA,IACA,CAAA;AAAA,IACA,MAAA;AAAA,IACA,UAAA;AAAA,IACA,EAAA;AAAA,IACA;AAAA;AAAA,GACF,CAAE,OAAO,IAAI,CAAA;AACf;;;;"}
@@ -1,31 +0,0 @@
1
- const deselectItem = (selectionModel, rowKey, rangeSelect, preserveExistingSelection = false) => {
2
- return {
3
- preserveExistingSelection,
4
- rowKey,
5
- type: "DESELECT_ROW"
6
- };
7
- };
8
- const selectItem = (selectionModel, rowKey, rangeSelect, preserveExistingSelection = false, activeRowKey) => {
9
- const singleSelect = selectionModel === "single" || selectionModel === "single-no-deselect";
10
- const actsLikeSingleSelect = singleSelect || activeRowKey === void 0;
11
- if (selectionModel === "none") {
12
- return;
13
- } else if (actsLikeSingleSelect) {
14
- const preserveSelection = singleSelect ? false : preserveExistingSelection;
15
- return {
16
- preserveExistingSelection: preserveSelection,
17
- rowKey,
18
- type: "SELECT_ROW"
19
- };
20
- } else if (rangeSelect) {
21
- return {
22
- preserveExistingSelection,
23
- fromRowKey: rowKey,
24
- toRowKey: activeRowKey,
25
- type: "SELECT_ROW_RANGE"
26
- };
27
- }
28
- };
29
-
30
- export { deselectItem, selectItem };
31
- //# sourceMappingURL=selection-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"selection-utils.js","sources":["../../../../../../packages/vuu-utils/src/selection-utils.ts"],"sourcesContent":["import { TableSelectionModel } from \"@vuu-ui/vuu-table-types\";\nimport { SelectRequest } from \"@vuu-ui/vuu-protocol-types\";\n\nexport const deselectItem = (\n selectionModel: TableSelectionModel,\n rowKey: string,\n rangeSelect: boolean,\n preserveExistingSelection = false,\n): Omit<SelectRequest, \"vpId\"> | undefined => {\n return {\n preserveExistingSelection,\n rowKey,\n type: \"DESELECT_ROW\",\n } as Omit<SelectRequest, \"vpId\">;\n};\n\nexport const selectItem = (\n selectionModel: TableSelectionModel,\n rowKey: string,\n rangeSelect: boolean,\n preserveExistingSelection = false,\n activeRowKey?: string,\n): Omit<SelectRequest, \"vpId\"> | undefined => {\n const singleSelect =\n selectionModel === \"single\" || selectionModel === \"single-no-deselect\";\n const actsLikeSingleSelect = singleSelect || activeRowKey === undefined;\n\n if (selectionModel === \"none\") {\n return;\n } else if (actsLikeSingleSelect) {\n const preserveSelection = singleSelect ? false : preserveExistingSelection;\n return {\n preserveExistingSelection: preserveSelection,\n rowKey,\n type: \"SELECT_ROW\",\n } as Omit<SelectRequest, \"vpId\">;\n } else if (rangeSelect) {\n return {\n preserveExistingSelection,\n fromRowKey: rowKey,\n toRowKey: activeRowKey,\n type: \"SELECT_ROW_RANGE\",\n } as Omit<SelectRequest, \"vpId\">;\n }\n};\n"],"names":[],"mappings":"AAGO,MAAM,eAAe,CAC1B,cAAA,EACA,MACA,EAAA,WAAA,EACA,4BAA4B,KACgB,KAAA;AAC5C,EAAO,OAAA;AAAA,IACL,yBAAA;AAAA,IACA,MAAA;AAAA,IACA,IAAM,EAAA;AAAA,GACR;AACF;AAEO,MAAM,aAAa,CACxB,cAAA,EACA,QACA,WACA,EAAA,yBAAA,GAA4B,OAC5B,YAC4C,KAAA;AAC5C,EAAM,MAAA,YAAA,GACJ,cAAmB,KAAA,QAAA,IAAY,cAAmB,KAAA,oBAAA;AACpD,EAAM,MAAA,oBAAA,GAAuB,gBAAgB,YAAiB,KAAA,KAAA,CAAA;AAE9D,EAAA,IAAI,mBAAmB,MAAQ,EAAA;AAC7B,IAAA;AAAA,aACS,oBAAsB,EAAA;AAC/B,IAAM,MAAA,iBAAA,GAAoB,eAAe,KAAQ,GAAA,yBAAA;AACjD,IAAO,OAAA;AAAA,MACL,yBAA2B,EAAA,iBAAA;AAAA,MAC3B,MAAA;AAAA,MACA,IAAM,EAAA;AAAA,KACR;AAAA,aACS,WAAa,EAAA;AACtB,IAAO,OAAA;AAAA,MACL,yBAAA;AAAA,MACA,UAAY,EAAA,MAAA;AAAA,MACZ,QAAU,EAAA,YAAA;AAAA,MACV,IAAM,EAAA;AAAA,KACR;AAAA;AAEJ;;;;"}
@@ -1,11 +0,0 @@
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
-
10
- export { VuuShellLocation };
11
- //# sourceMappingURL=shell-layout-types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shell-layout-types.js","sources":["../../../../../../packages/vuu-utils/src/shell-layout-types.ts"],"sourcesContent":["import { ValueOf } from \"./ts-utils\";\n\n/**\n * The Vuu Shell creates the outermost application layout. This includes some\n * 'special' identifiers that can be targetted by layout commands to effect or\n * react to layout changes.\n */\nexport const VuuShellLocation = {\n ContextPanel: \"context-panel\",\n MultiWorkspaceContainer: \"vuu-multi-workspace-container\",\n SidePanel: \"vuu-side-panel\",\n SideToolbar: \"vuu-side-toolbar\",\n Workspace: \"vuu-workspace\",\n WorkspaceContainer: \"vuu-workspace-container\",\n} as const;\n\nexport type VuuShellLocation = ValueOf<typeof VuuShellLocation>;\n"],"names":[],"mappings":"AAOO,MAAM,gBAAmB,GAAA;AAAA,EAC9B,YAAc,EAAA,eAAA;AAAA,EACd,uBAAyB,EAAA,+BAAA;AAAA,EACzB,SAAW,EAAA,gBAAA;AAAA,EACX,WAAa,EAAA,kBAAA;AAAA,EACb,SAAW,EAAA,eAAA;AAAA,EACX,kBAAoB,EAAA;AACtB;;;;"}
@@ -1,73 +0,0 @@
1
- const cycleSortType = (sortType) => sortType === "A" ? "D" : sortType === "D" ? void 0 : "A";
2
- const NO_SORT = { sortDefs: [] };
3
- const toggleOrApplySort = ({ sortDefs }, { name: column }, extendSort = false, sortType) => {
4
- if (extendSort) {
5
- const existingDef = sortDefs.find((sortDef) => sortDef.column === column);
6
- if (existingDef) {
7
- return {
8
- sortDefs: sortDefs.map(
9
- (sortDef) => sortDef.column === column ? {
10
- column,
11
- sortType: sortDef.sortType === "A" ? "D" : "A"
12
- } : sortDef
13
- )
14
- };
15
- } else {
16
- return {
17
- sortDefs: sortDefs.concat({
18
- column,
19
- sortType: sortType ?? "A"
20
- })
21
- };
22
- }
23
- }
24
- const newSortType = typeof sortType === "string" ? sortType : sortDefs.length === 1 && sortDefs[0].column === column ? cycleSortType(sortDefs[0].sortType) : "A";
25
- return newSortType ? {
26
- sortDefs: [{ column, sortType: newSortType }]
27
- } : NO_SORT;
28
- };
29
- const setSortColumn = ({ sortDefs }, column, sortType) => {
30
- if (sortType === void 0) {
31
- const columnSort = sortDefs.find((item) => item.column === column.name);
32
- if (columnSort) {
33
- return {
34
- sortDefs: [
35
- {
36
- column: column.name,
37
- sortType: columnSort.sortType === "A" ? "D" : "A"
38
- }
39
- ]
40
- };
41
- }
42
- }
43
- return { sortDefs: [{ column: column.name, sortType: sortType ?? "A" }] };
44
- };
45
- const addSortColumn = ({ sortDefs }, column, sortType = "A") => {
46
- const sortEntry = { column: column.name, sortType };
47
- if (sortDefs.length > 0) {
48
- return {
49
- sortDefs: sortDefs.concat(sortEntry)
50
- };
51
- } else {
52
- return { sortDefs: [sortEntry] };
53
- }
54
- };
55
- const getSortStatus = (columnName, vuuSort) => {
56
- if (vuuSort === void 0 || vuuSort.sortDefs.length === 0) {
57
- return "no-sort";
58
- } else {
59
- const sortDef = vuuSort.sortDefs.find((sd) => sd.column === columnName);
60
- if (sortDef) {
61
- if (vuuSort.sortDefs.length === 1) {
62
- return sortDef.sortType === "A" ? "single-sort-asc" : "single-sort-desc";
63
- } else {
64
- return sortDef.sortType === "A" ? "multi-sort-includes-column-asc" : "multi-sort-includes-column-desc";
65
- }
66
- } else {
67
- return "sort-other-column";
68
- }
69
- }
70
- };
71
-
72
- export { addSortColumn, getSortStatus, setSortColumn, toggleOrApplySort };
73
- //# sourceMappingURL=sort-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sort-utils.js","sources":["../../../../../../packages/vuu-utils/src/sort-utils.ts"],"sourcesContent":["import { ColumnDescriptor } from \"@vuu-ui/vuu-table-types\";\nimport { VuuSort, VuuSortCol, VuuSortType } from \"@vuu-ui/vuu-protocol-types\";\n\nconst cycleSortType = (sortType: VuuSortType) =>\n sortType === \"A\" ? \"D\" : sortType === \"D\" ? undefined : \"A\";\n\nconst NO_SORT: VuuSort = { sortDefs: [] };\n\n// Given an existing sort spec and a column we wish to sort by,\n// construct and return a new sort spec.\nexport const toggleOrApplySort = (\n { sortDefs }: VuuSort,\n { name: column }: ColumnDescriptor,\n extendSort = false,\n sortType?: VuuSortType,\n): VuuSort => {\n if (extendSort) {\n const existingDef = sortDefs.find((sortDef) => sortDef.column === column);\n if (existingDef) {\n return {\n sortDefs: sortDefs.map((sortDef) =>\n sortDef.column === column\n ? {\n column,\n sortType: sortDef.sortType === \"A\" ? \"D\" : \"A\",\n }\n : sortDef,\n ),\n };\n } else {\n return {\n sortDefs: sortDefs.concat({\n column,\n sortType: sortType ?? \"A\",\n }),\n };\n }\n }\n\n const newSortType =\n typeof sortType === \"string\"\n ? sortType\n : sortDefs.length === 1 && sortDefs[0].column === column\n ? cycleSortType(sortDefs[0].sortType)\n : \"A\";\n\n return newSortType\n ? {\n sortDefs: [{ column, sortType: newSortType }],\n }\n : NO_SORT;\n};\n\nexport const setSortColumn = (\n { sortDefs }: VuuSort,\n column: ColumnDescriptor,\n sortType?: \"A\" | \"D\",\n): VuuSort => {\n if (sortType === undefined) {\n const columnSort = sortDefs.find((item) => item.column === column.name);\n if (columnSort) {\n return {\n sortDefs: [\n {\n column: column.name,\n sortType: columnSort.sortType === \"A\" ? \"D\" : \"A\",\n },\n ],\n };\n }\n }\n return { sortDefs: [{ column: column.name, sortType: sortType ?? \"A\" }] };\n};\n\nexport const addSortColumn = (\n { sortDefs }: VuuSort,\n column: ColumnDescriptor,\n sortType: \"A\" | \"D\" = \"A\",\n): VuuSort => {\n const sortEntry: VuuSortCol = { column: column.name, sortType };\n if (sortDefs.length > 0) {\n return {\n sortDefs: sortDefs.concat(sortEntry),\n };\n } else {\n return { sortDefs: [sortEntry] };\n }\n};\n\nexport type ColumnSortStatus =\n | \"no-sort\"\n | \"sort-other-column\"\n | \"single-sort-asc\"\n | \"single-sort-desc\"\n | \"multi-sort-includes-column-asc\"\n | \"multi-sort-includes-column-desc\";\n\n/**\n * Given a VuuSort definition and a column, determine whether the given column\n * is included in the sort and if so, in what position/direction.\n */\nexport const getSortStatus = (\n columnName: string,\n vuuSort?: VuuSort,\n): ColumnSortStatus => {\n if (vuuSort === undefined || vuuSort.sortDefs.length === 0) {\n return \"no-sort\";\n } else {\n const sortDef = vuuSort.sortDefs.find((sd) => sd.column === columnName);\n if (sortDef) {\n if (vuuSort.sortDefs.length === 1) {\n return sortDef.sortType === \"A\"\n ? \"single-sort-asc\"\n : \"single-sort-desc\";\n } else {\n return sortDef.sortType === \"A\"\n ? \"multi-sort-includes-column-asc\"\n : \"multi-sort-includes-column-desc\";\n }\n } else {\n return \"sort-other-column\";\n }\n }\n};\n"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- const getVuuTable = (schemaTable) => {
2
- if (schemaTable.session) {
3
- const { module, session } = schemaTable;
4
- return { module, table: session };
5
- } else {
6
- return schemaTable;
7
- }
8
- };
9
-
10
- export { getVuuTable };
11
- //# sourceMappingURL=table-schema-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"table-schema-utils.js","sources":["../../../../../../packages/vuu-utils/src/table-schema-utils.ts"],"sourcesContent":["import { TableSchemaTable } from \"@vuu-ui/vuu-data-types\";\nimport { VuuTable } from \"@vuu-ui/vuu-protocol-types\";\n\nexport const getVuuTable = (schemaTable: TableSchemaTable): VuuTable => {\n if (schemaTable.session) {\n const { module, session } = schemaTable;\n return { module, table: session };\n } else {\n return schemaTable;\n }\n};\n"],"names":[],"mappings":"AAGa,MAAA,WAAA,GAAc,CAAC,WAA4C,KAAA;AACtE,EAAA,IAAI,YAAY,OAAS,EAAA;AACvB,IAAM,MAAA,EAAE,MAAQ,EAAA,OAAA,EAAY,GAAA,WAAA;AAC5B,IAAO,OAAA,EAAE,MAAQ,EAAA,KAAA,EAAO,OAAQ,EAAA;AAAA,GAC3B,MAAA;AACL,IAAO,OAAA,WAAA;AAAA;AAEX;;;;"}
@@ -1,18 +0,0 @@
1
- const lastWord = (text) => {
2
- const trimmedText = text.trim();
3
- const pos = trimmedText.lastIndexOf(" ");
4
- if (pos === -1) {
5
- return trimmedText;
6
- } else {
7
- return trimmedText.slice(pos + 1);
8
- }
9
- };
10
- const capitalize = (text) => text.length === 0 ? "" : text[0].toUpperCase() + text.slice(1);
11
- const regexp_worfify = /(?<!(^|[A-Z]))(?=[A-Z])|(?<!^)(?=[A-Z][a-z])/;
12
- const wordify = (text) => {
13
- const [firstWord, ...rest] = text.split(regexp_worfify);
14
- return `${capitalize(firstWord)} ${rest.join(" ")}`;
15
- };
16
-
17
- export { lastWord, wordify };
18
- //# sourceMappingURL=text-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"text-utils.js","sources":["../../../../../../packages/vuu-utils/src/text-utils.ts"],"sourcesContent":["export const lastWord = (text: string): string => {\n const trimmedText = text.trim();\n const pos = trimmedText.lastIndexOf(\" \");\n if (pos === -1) {\n return trimmedText;\n } else {\n return trimmedText.slice(pos + 1);\n }\n};\n\nconst capitalize = (text: string) =>\n text.length === 0 ? \"\" : text[0].toUpperCase() + text.slice(1);\n\nconst regexp_worfify = /(?<!(^|[A-Z]))(?=[A-Z])|(?<!^)(?=[A-Z][a-z])/;\nexport const wordify = (text: string) => {\n const [firstWord, ...rest] = text.split(regexp_worfify);\n return `${capitalize(firstWord)} ${rest.join(\" \")}`;\n};\n"],"names":[],"mappings":"AAAa,MAAA,QAAA,GAAW,CAAC,IAAyB,KAAA;AAChD,EAAM,MAAA,WAAA,GAAc,KAAK,IAAK,EAAA;AAC9B,EAAM,MAAA,GAAA,GAAM,WAAY,CAAA,WAAA,CAAY,GAAG,CAAA;AACvC,EAAA,IAAI,QAAQ,CAAI,CAAA,EAAA;AACd,IAAO,OAAA,WAAA;AAAA,GACF,MAAA;AACL,IAAO,OAAA,WAAA,CAAY,KAAM,CAAA,GAAA,GAAM,CAAC,CAAA;AAAA;AAEpC;AAEA,MAAM,UAAa,GAAA,CAAC,IAClB,KAAA,IAAA,CAAK,WAAW,CAAI,GAAA,EAAA,GAAK,IAAK,CAAA,CAAC,CAAE,CAAA,WAAA,EAAgB,GAAA,IAAA,CAAK,MAAM,CAAC,CAAA;AAE/D,MAAM,cAAiB,GAAA,8CAAA;AACV,MAAA,OAAA,GAAU,CAAC,IAAiB,KAAA;AACvC,EAAA,MAAM,CAAC,SAAW,EAAA,GAAG,IAAI,CAAI,GAAA,IAAA,CAAK,MAAM,cAAc,CAAA;AACtD,EAAO,OAAA,CAAA,EAAG,WAAW,SAAS,CAAC,IAAI,IAAK,CAAA,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA;AACnD;;;;"}
@@ -1,34 +0,0 @@
1
- import { useState, useMemo } from 'react';
2
-
3
- const checkCssToken = (tokenName) => new Promise((resolve) => {
4
- requestAnimationFrame(() => {
5
- const saltSpacing100 = getComputedStyle(
6
- document.documentElement
7
- ).getPropertyValue(tokenName);
8
- resolve(saltSpacing100 !== "");
9
- });
10
- });
11
- const ThemeLoadChecker = ({
12
- children,
13
- cssToken = "--salt-spacing-100",
14
- theme
15
- }) => {
16
- const [ready, setReady] = useState(false);
17
- useMemo(async () => {
18
- let ready2 = await checkCssToken(cssToken);
19
- while (!ready2) {
20
- ready2 = await checkCssToken(cssToken);
21
- }
22
- setReady(true);
23
- }, [cssToken]);
24
- if (theme === "no-theme") {
25
- return children;
26
- }
27
- if (ready === false) {
28
- return null;
29
- }
30
- return children;
31
- };
32
-
33
- export { ThemeLoadChecker };
34
- //# sourceMappingURL=theme-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"theme-utils.js","sources":["../../../../../../packages/vuu-utils/src/theme-utils.ts"],"sourcesContent":["import { ReactNode, useMemo, useState } from \"react\";\n\nconst checkCssToken = (tokenName: string): Promise<boolean> =>\n new Promise((resolve) => {\n requestAnimationFrame(() => {\n const saltSpacing100 = getComputedStyle(\n document.documentElement,\n ).getPropertyValue(tokenName);\n resolve(saltSpacing100 !== \"\");\n });\n });\n\n/**\n * Checks that a theme is loaded by making sure a known css variable\n * returns a value. Not normally needed except for cases where a theme\n * is loaded dynamically on startup and there may be components that\n * may fail if theme is not in place (eg component that rely on taking dom\n * measurements).\n * Used by Showcase.\n */\nexport const ThemeLoadChecker = ({\n children,\n cssToken = \"--salt-spacing-100\",\n theme,\n}: {\n children: ReactNode;\n cssToken?: string;\n theme: string;\n}) => {\n const [ready, setReady] = useState(false);\n\n useMemo(async () => {\n let ready = await checkCssToken(cssToken);\n while (!ready) {\n ready = await checkCssToken(cssToken);\n }\n setReady(true);\n }, [cssToken]);\n\n if (theme === \"no-theme\") {\n return children;\n }\n\n if (ready === false) {\n return null;\n }\n\n return children;\n};\n"],"names":["ready"],"mappings":";;AAEA,MAAM,gBAAgB,CAAC,SAAA,KACrB,IAAI,OAAA,CAAQ,CAAC,OAAY,KAAA;AACvB,EAAA,qBAAA,CAAsB,MAAM;AAC1B,IAAA,MAAM,cAAiB,GAAA,gBAAA;AAAA,MACrB,QAAS,CAAA;AAAA,KACX,CAAE,iBAAiB,SAAS,CAAA;AAC5B,IAAA,OAAA,CAAQ,mBAAmB,EAAE,CAAA;AAAA,GAC9B,CAAA;AACH,CAAC,CAAA;AAUI,MAAM,mBAAmB,CAAC;AAAA,EAC/B,QAAA;AAAA,EACA,QAAW,GAAA,oBAAA;AAAA,EACX;AACF,CAIM,KAAA;AACJ,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAI,SAAS,KAAK,CAAA;AAExC,EAAA,OAAA,CAAQ,YAAY;AAClB,IAAIA,IAAAA,MAAAA,GAAQ,MAAM,aAAA,CAAc,QAAQ,CAAA;AACxC,IAAA,OAAO,CAACA,MAAO,EAAA;AACb,MAAAA,MAAAA,GAAQ,MAAM,aAAA,CAAc,QAAQ,CAAA;AAAA;AAEtC,IAAA,QAAA,CAAS,IAAI,CAAA;AAAA,GACf,EAAG,CAAC,QAAQ,CAAC,CAAA;AAEb,EAAA,IAAI,UAAU,UAAY,EAAA;AACxB,IAAO,OAAA,QAAA;AAAA;AAGT,EAAA,IAAI,UAAU,KAAO,EAAA;AACnB,IAAO,OAAA,IAAA;AAAA;AAGT,EAAO,OAAA,QAAA;AACT;;;;"}
@@ -1,108 +0,0 @@
1
- import { metadataKeys } from './column-utils.js';
2
-
3
- const { COUNT, DEPTH, IDX, KEY } = metadataKeys;
4
- const timestamp = 0;
5
- const isNew = false;
6
- const treeToDataSourceRows = (treeSourceNodes, iconProvider) => {
7
- const columns = [];
8
- columns.push(
9
- {
10
- hidden: true,
11
- name: "nodeData",
12
- type: "json"
13
- },
14
- {
15
- getIcon: iconProvider?.getIcon,
16
- name: "Level 1",
17
- type: "string"
18
- },
19
- {
20
- getIcon: iconProvider?.getIcon,
21
- name: "Level 2",
22
- type: "string"
23
- }
24
- );
25
- const rows = [];
26
- addChildValues(rows, treeSourceNodes, columns, iconProvider);
27
- return [columns, rows];
28
- };
29
- const addChildValues = (rows, treeSourceNodes, cols, iconProvider, index = { value: 0 }, keyBase = "$root", depth = 1) => {
30
- let leafCount = 0;
31
- let rowCount = 0;
32
- if (depth === cols.length - 1) {
33
- cols.push({
34
- getIcon: iconProvider?.getIcon,
35
- name: `Level ${cols.length}`,
36
- type: "string"
37
- });
38
- }
39
- for (let i = 0; i < treeSourceNodes.length; i++, index.value += 1) {
40
- const {
41
- childNodes,
42
- icon,
43
- label,
44
- nodeData
45
- /*, tags */
46
- } = treeSourceNodes[i];
47
- const blanks = Array(depth - 1).fill("");
48
- const fullKey = `${keyBase}|${label}`;
49
- const row = [index.value, index.value, false, false, depth, 0, fullKey, 0, timestamp, isNew, nodeData, ...blanks, label];
50
- if (icon) {
51
- iconProvider?.setIcon(fullKey, icon);
52
- }
53
- rows.push(row);
54
- rowCount += 1;
55
- if (childNodes && childNodes.length > 0) {
56
- const [nestedLeafCount, nestedRowCount] = addChildValues(
57
- rows,
58
- childNodes,
59
- cols,
60
- iconProvider,
61
- { value: index.value + 1 },
62
- fullKey,
63
- depth + 1
64
- );
65
- row[COUNT] = nestedLeafCount;
66
- leafCount += nestedLeafCount;
67
- rowCount += nestedRowCount;
68
- index.value += nestedRowCount;
69
- } else {
70
- leafCount += 1;
71
- }
72
- }
73
- return [leafCount, rowCount];
74
- };
75
- const lastPathSegment = (path, separator = "/") => {
76
- const root = path.endsWith(separator) ? path.slice(0, -1) : path;
77
- return root.slice(root.lastIndexOf(separator) + 1);
78
- };
79
- const dropLastPathSegment = (path, separator = "/") => {
80
- return path.slice(0, path.lastIndexOf(separator));
81
- };
82
- const getParentRow = (rows, row) => {
83
- const { [IDX]: idx, [DEPTH]: depth } = row;
84
- for (let i = idx - 1; i >= 0; i--) {
85
- const nextRow = rows[i];
86
- if (nextRow[DEPTH] === depth - 1) {
87
- return nextRow;
88
- }
89
- }
90
- };
91
- const rowsAreSiblings = (key1, key2) => dropLastPathSegment(key1, "|") === dropLastPathSegment(key2, "|");
92
- const missingAncestor = (row, previousRow) => {
93
- if (previousRow) {
94
- const prevKey = previousRow[KEY];
95
- const key = row[KEY];
96
- if (key.startsWith(prevKey)) {
97
- return false;
98
- } else if (!rowsAreSiblings(prevKey, key)) {
99
- return true;
100
- }
101
- } else if (row[DEPTH] > 1) {
102
- return true;
103
- }
104
- return false;
105
- };
106
-
107
- export { dropLastPathSegment, getParentRow, lastPathSegment, missingAncestor, treeToDataSourceRows };
108
- //# sourceMappingURL=tree-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tree-utils.js","sources":["../../../../../../packages/vuu-utils/src/tree-utils.ts"],"sourcesContent":["import { TreeSourceNode } from \"./tree-types\";\nimport { ColumnDescriptor } from \"@vuu-ui/vuu-table-types\";\nimport { DataSourceRow } from \"@vuu-ui/vuu-data-types\";\nimport { metadataKeys } from \"./column-utils\";\nimport { IconProvider } from \"@vuu-ui/vuu-data-local/src/tree-data-source/IconProvider\";\n\nconst { COUNT, DEPTH, IDX, KEY } = metadataKeys;\n\ntype Index = { value: number };\n\nconst timestamp = 0;\nconst isNew = false;\n\nexport const treeToDataSourceRows = (\n treeSourceNodes: TreeSourceNode[],\n iconProvider?: IconProvider,\n): [ColumnDescriptor[], DataSourceRow[]] => {\n const columns: ColumnDescriptor[] = [];\n\n columns.push(\n {\n hidden: true,\n name: \"nodeData\",\n type: \"json\",\n },\n {\n getIcon: iconProvider?.getIcon,\n name: \"Level 1\",\n type: \"string\",\n },\n {\n getIcon: iconProvider?.getIcon,\n name: \"Level 2\",\n type: \"string\",\n },\n );\n\n const rows: DataSourceRow[] = [];\n\n addChildValues(rows, treeSourceNodes, columns, iconProvider);\n return [columns, rows];\n};\n\nconst addChildValues = (\n rows: DataSourceRow[],\n treeSourceNodes: TreeSourceNode[],\n cols: ColumnDescriptor[],\n iconProvider: IconProvider | undefined,\n index: Index = { value: 0 },\n keyBase = \"$root\",\n depth = 1,\n): [number, number] => {\n let leafCount = 0;\n let rowCount = 0;\n if (depth === cols.length - 1) {\n cols.push({\n getIcon: iconProvider?.getIcon,\n name: `Level ${cols.length}`,\n type: \"string\",\n });\n }\n for (let i = 0; i < treeSourceNodes.length; i++, index.value += 1) {\n const { childNodes, icon, label, nodeData /*, tags */ } =\n treeSourceNodes[i];\n const blanks = Array(depth - 1).fill(\"\");\n const fullKey = `${keyBase}|${label}`;\n\n // we create all nodes as non-leaf in a TreeTable, even those with no childNodes\n // prettier-ignore\n const row = [index.value, index.value, false, false, depth, 0, fullKey, 0, timestamp, isNew, nodeData, ...blanks, label ] as DataSourceRow;\n if (icon) {\n iconProvider?.setIcon(fullKey, icon);\n }\n rows.push(row);\n rowCount += 1;\n\n if (childNodes && childNodes.length > 0) {\n const [nestedLeafCount, nestedRowCount] = addChildValues(\n rows,\n childNodes,\n cols,\n iconProvider,\n { value: index.value + 1 },\n fullKey,\n depth + 1,\n );\n row[COUNT] = nestedLeafCount;\n leafCount += nestedLeafCount;\n rowCount += nestedRowCount;\n index.value += nestedRowCount;\n } else {\n leafCount += 1;\n }\n }\n\n return [leafCount, rowCount];\n};\n\nexport const lastPathSegment = (path: string, separator = \"/\") => {\n const root = path.endsWith(separator) ? path.slice(0, -1) : path;\n return root.slice(root.lastIndexOf(separator) + 1);\n};\n\nexport const dropLastPathSegment = (path: string, separator = \"/\") => {\n return path.slice(0, path.lastIndexOf(separator));\n};\n\nexport const getParentRow = (rows: DataSourceRow[], row: DataSourceRow) => {\n const { [IDX]: idx, [DEPTH]: depth } = row;\n for (let i = idx - 1; i >= 0; i--) {\n const nextRow = rows[i];\n if (nextRow[DEPTH] === depth - 1) {\n return nextRow;\n }\n }\n};\n\nconst rowsAreSiblings = (key1: string, key2: string) =>\n dropLastPathSegment(key1, \"|\") === dropLastPathSegment(key2, \"|\");\n\nexport const missingAncestor = (\n row: DataSourceRow,\n previousRow?: DataSourceRow,\n) => {\n if (previousRow) {\n const prevKey = previousRow[KEY];\n const key = row[KEY];\n\n if (key.startsWith(prevKey)) {\n return false;\n } else if (!rowsAreSiblings(prevKey, key)) {\n return true;\n }\n } else if (row[DEPTH] > 1) {\n return true;\n }\n\n return false;\n};\n"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- function isNotNullOrUndefined(value) {
2
- return value !== void 0 && value !== null;
3
- }
4
- const isObject = (o) => typeof o === "object" && o !== null;
5
- const elementImplementsJSONSerialization = (element) => typeof element.type.toJSON === "function";
6
-
7
- export { elementImplementsJSONSerialization, isNotNullOrUndefined, isObject };
8
- //# sourceMappingURL=ts-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ts-utils.js","sources":["../../../../../../packages/vuu-utils/src/ts-utils.ts"],"sourcesContent":["import { JSXElementConstructor, ReactElement } from \"react\";\nimport { LayoutJSON } from \"./json-types\";\n\nexport function isNotNullOrUndefined<T>(\n value: T | undefined | null,\n): value is NonNullable<T> {\n return value !== undefined && value !== null;\n}\n\nexport const isObject = (o: unknown): o is object =>\n typeof o === \"object\" && o !== null;\n\nexport type OptionalProperty<T, K extends keyof T> = Omit<T, K> &\n Partial<Pick<T, K>>;\n\nexport type ValueOf<T> = T[keyof T];\n\n/**\n * test whether a given react element implements a custom toJSON\n * serialisation (static) method.\n */\ntype JsonEnabledJSXElementConstructor<P> = JSXElementConstructor<P> & {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n toJSON: (el: ReactElement) => LayoutJSON<any>;\n};\n\ninterface ReactElementWithJSON<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n P = any,\n T extends // eslint-disable-next-line @typescript-eslint/no-explicit-any\n JsonEnabledJSXElementConstructor<any> = JsonEnabledJSXElementConstructor<any>,\n> {\n type: T;\n props: P;\n key: string | null;\n}\nexport const elementImplementsJSONSerialization = (\n element: ReactElement,\n): element is ReactElementWithJSON =>\n typeof (element.type as JsonEnabledJSXElementConstructor<unknown>).toJSON ===\n \"function\";\n"],"names":[],"mappings":"AAGO,SAAS,qBACd,KACyB,EAAA;AACzB,EAAO,OAAA,KAAA,KAAU,UAAa,KAAU,KAAA,IAAA;AAC1C;AAEO,MAAM,WAAW,CAAC,CAAA,KACvB,OAAO,CAAA,KAAM,YAAY,CAAM,KAAA;AA0B1B,MAAM,qCAAqC,CAChD,OAAA,KAEA,OAAQ,OAAA,CAAQ,KAAmD,MACnE,KAAA;;;;"}
@@ -1,4 +0,0 @@
1
- const NO_DATA_MATCH = ["No matching data"];
2
-
3
- export { NO_DATA_MATCH };
4
- //# sourceMappingURL=typeahead-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"typeahead-utils.js","sources":["../../../../../../packages/vuu-utils/src/typeahead-utils.ts"],"sourcesContent":["export const NO_DATA_MATCH = [\"No matching data\"];\n"],"names":[],"mappings":"AAAa,MAAA,aAAA,GAAgB,CAAC,kBAAkB;;;;"}
@@ -1,18 +0,0 @@
1
- function getUrlParameter(paramName, defaultValue) {
2
- const url = new URL(document.location.href);
3
- const parameter = url.searchParams.get(paramName);
4
- if (parameter) {
5
- return parameter;
6
- }
7
- const hashParams = url.hash;
8
- const regex = new RegExp(`${paramName}=([a-zA-Z]*)`);
9
- const result = regex.exec(hashParams);
10
- if (result) {
11
- return result[1];
12
- }
13
- return defaultValue;
14
- }
15
- const hasUrlParameter = (paramName) => new URL(document.location.href).searchParams.has(paramName);
16
-
17
- export { getUrlParameter, hasUrlParameter };
18
- //# sourceMappingURL=url-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"url-utils.js","sources":["../../../../../../packages/vuu-utils/src/url-utils.ts"],"sourcesContent":["export function getUrlParameter(paramName: string): string | undefined;\nexport function getUrlParameter(\n paramName: string,\n defaultValue: string,\n): string;\nexport function getUrlParameter(paramName: string, defaultValue?: string) {\n const url = new URL(document.location.href);\n const parameter = url.searchParams.get(paramName);\n if (parameter) {\n return parameter;\n }\n const hashParams = url.hash;\n const regex = new RegExp(`${paramName}=([a-zA-Z]*)`);\n const result = regex.exec(hashParams);\n if (result) {\n return result[1];\n }\n return defaultValue;\n}\n\nexport const hasUrlParameter = (paramName: string) =>\n new URL(document.location.href).searchParams.has(paramName);\n"],"names":[],"mappings":"AAKgB,SAAA,eAAA,CAAgB,WAAmB,YAAuB,EAAA;AACxE,EAAA,MAAM,GAAM,GAAA,IAAI,GAAI,CAAA,QAAA,CAAS,SAAS,IAAI,CAAA;AAC1C,EAAA,MAAM,SAAY,GAAA,GAAA,CAAI,YAAa,CAAA,GAAA,CAAI,SAAS,CAAA;AAChD,EAAA,IAAI,SAAW,EAAA;AACb,IAAO,OAAA,SAAA;AAAA;AAET,EAAA,MAAM,aAAa,GAAI,CAAA,IAAA;AACvB,EAAA,MAAM,KAAQ,GAAA,IAAI,MAAO,CAAA,CAAA,EAAG,SAAS,CAAc,YAAA,CAAA,CAAA;AACnD,EAAM,MAAA,MAAA,GAAS,KAAM,CAAA,IAAA,CAAK,UAAU,CAAA;AACpC,EAAA,IAAI,MAAQ,EAAA;AACV,IAAA,OAAO,OAAO,CAAC,CAAA;AAAA;AAEjB,EAAO,OAAA,YAAA;AACT;AAEa,MAAA,eAAA,GAAkB,CAAC,SAAA,KAC9B,IAAI,GAAA,CAAI,QAAS,CAAA,QAAA,CAAS,IAAI,CAAA,CAAE,YAAa,CAAA,GAAA,CAAI,SAAS;;;;"}
@@ -1,7 +0,0 @@
1
- import { useMemo } from 'react';
2
-
3
- let vuuComponentIdCount = 0;
4
- const useId = (id) => useMemo(() => id ?? `vuu-${++vuuComponentIdCount}`, [id]);
5
-
6
- export { useId };
7
- //# sourceMappingURL=useId.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useId.js","sources":["../../../../../../packages/vuu-utils/src/useId.ts"],"sourcesContent":["import { useMemo } from \"react\";\n\nlet vuuComponentIdCount = 0;\n\nexport const useId = (id?: string) =>\n useMemo(() => id ?? `vuu-${++vuuComponentIdCount}`, [id]);\n"],"names":[],"mappings":";;AAEA,IAAI,mBAAsB,GAAA,CAAA;AAEnB,MAAM,KAAQ,GAAA,CAAC,EACpB,KAAA,OAAA,CAAQ,MAAM,EAAA,IAAM,CAAO,IAAA,EAAA,EAAE,mBAAmB,CAAA,CAAA,EAAI,CAAC,EAAE,CAAC;;;;"}
@@ -1,15 +0,0 @@
1
- import { useRef, useLayoutEffect } from 'react';
2
-
3
- const useLayoutEffectSkipFirst = (func, deps) => {
4
- const goodToGo = useRef(false);
5
- useLayoutEffect(() => {
6
- if (goodToGo.current) {
7
- func();
8
- } else {
9
- goodToGo.current = true;
10
- }
11
- }, deps);
12
- };
13
-
14
- export { useLayoutEffectSkipFirst };
15
- //# sourceMappingURL=useLayoutEffectSkipFirst.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useLayoutEffectSkipFirst.js","sources":["../../../../../../packages/vuu-utils/src/useLayoutEffectSkipFirst.ts"],"sourcesContent":["import { DependencyList, EffectCallback, useLayoutEffect, useRef } from \"react\";\n\nexport const useLayoutEffectSkipFirst = (\n func: EffectCallback,\n deps: DependencyList\n) => {\n const goodToGo = useRef(false);\n useLayoutEffect(() => {\n if (goodToGo.current) {\n func();\n } else {\n goodToGo.current = true;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\n};\n"],"names":[],"mappings":";;AAEa,MAAA,wBAAA,GAA2B,CACtC,IAAA,EACA,IACG,KAAA;AACH,EAAM,MAAA,QAAA,GAAW,OAAO,KAAK,CAAA;AAC7B,EAAA,eAAA,CAAgB,MAAM;AACpB,IAAA,IAAI,SAAS,OAAS,EAAA;AACpB,MAAK,IAAA,EAAA;AAAA,KACA,MAAA;AACL,MAAA,QAAA,CAAS,OAAU,GAAA,IAAA;AAAA;AACrB,KAEC,IAAI,CAAA;AACT;;;;"}
@@ -1,130 +0,0 @@
1
- import { useRef, useCallback, useEffect } from 'react';
2
-
3
- const WidthHeight = ["height", "width"];
4
- const WidthOnly = ["width"];
5
- const observedMap = /* @__PURE__ */ new Map();
6
- const getTargetSize = (element, size, dimension) => {
7
- switch (dimension) {
8
- case "height":
9
- return size.height;
10
- case "clientHeight":
11
- return Math.floor(element.clientHeight);
12
- case "clientWidth":
13
- return Math.floor(element.clientWidth);
14
- case "contentHeight":
15
- return size.contentHeight;
16
- case "contentWidth":
17
- return size.contentWidth;
18
- case "scrollHeight":
19
- return Math.ceil(Math.floor(element.scrollHeight));
20
- case "scrollWidth":
21
- return Math.ceil(Math.floor(element.scrollWidth));
22
- case "width":
23
- return size.width;
24
- default:
25
- return 0;
26
- }
27
- };
28
- const resizeObserver = new ResizeObserver((entries) => {
29
- for (const entry of entries) {
30
- const { target, borderBoxSize, contentBoxSize } = entry;
31
- const observedTarget = observedMap.get(target);
32
- if (observedTarget) {
33
- const [{ blockSize: height, inlineSize: width }] = borderBoxSize;
34
- const [{ blockSize: contentHeight, inlineSize: contentWidth }] = contentBoxSize;
35
- const { onResize, measurements } = observedTarget;
36
- let sizeChanged = false;
37
- for (const [dimension, size] of Object.entries(measurements)) {
38
- const newSize = getTargetSize(
39
- target,
40
- { height, width, contentHeight, contentWidth },
41
- dimension
42
- );
43
- if (newSize !== size) {
44
- sizeChanged = true;
45
- measurements[dimension] = newSize;
46
- }
47
- }
48
- if (sizeChanged) {
49
- onResize && onResize(measurements);
50
- }
51
- }
52
- }
53
- });
54
- function useResizeObserver(ref, dimensions, onResize, reportInitialSize = false) {
55
- const dimensionsRef = useRef(dimensions);
56
- const measure = useCallback((target) => {
57
- const { width, height } = target.getBoundingClientRect();
58
- const { clientWidth: contentWidth, clientHeight: contentHeight } = target;
59
- const flooredHeight = Math.floor(height);
60
- const flooredWidth = Math.floor(width);
61
- return dimensionsRef.current.reduce(
62
- (map, dim) => {
63
- map[dim] = getTargetSize(
64
- target,
65
- {
66
- width: flooredWidth,
67
- height: flooredHeight,
68
- contentHeight,
69
- contentWidth
70
- },
71
- dim
72
- );
73
- return map;
74
- },
75
- {}
76
- );
77
- }, []);
78
- useEffect(() => {
79
- const target = ref.current;
80
- async function registerObserver() {
81
- observedMap.set(target, { measurements: {} });
82
- const observedTarget = observedMap.get(target);
83
- if (observedTarget) {
84
- const measurements = measure(target);
85
- observedTarget.measurements = measurements;
86
- resizeObserver.observe(target);
87
- if (reportInitialSize) {
88
- onResize(measurements);
89
- }
90
- } else {
91
- console.log(
92
- `%cuseResizeObserver an target expected to be under observation wa snot found. This warrants investigation`,
93
- "font-weight:bold; color:red;"
94
- );
95
- }
96
- }
97
- if (target) {
98
- if (observedMap.has(target)) {
99
- console.log(
100
- `useResizeObserver attemping to observe same element twice`,
101
- {
102
- target
103
- }
104
- );
105
- }
106
- registerObserver();
107
- }
108
- return () => {
109
- if (target && observedMap.has(target)) {
110
- resizeObserver.unobserve(target);
111
- observedMap.delete(target);
112
- }
113
- };
114
- }, [measure, ref]);
115
- useEffect(() => {
116
- const target = ref.current;
117
- const record = observedMap.get(target);
118
- if (record) {
119
- if (dimensionsRef.current !== dimensions) {
120
- dimensionsRef.current = dimensions;
121
- const measurements = measure(target);
122
- record.measurements = measurements;
123
- }
124
- record.onResize = onResize;
125
- }
126
- }, [dimensions, measure, ref, onResize]);
127
- }
128
-
129
- export { WidthHeight, WidthOnly, useResizeObserver };
130
- //# sourceMappingURL=useResizeObserver.js.map