@vuu-ui/vuu-utils 2.1.19-beta.2 → 2.1.19-beta.3

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 (438) hide show
  1. package/cjs/node_modules/@dnd-kit/abstract/index.js +1488 -0
  2. package/cjs/node_modules/@dnd-kit/abstract/index.js.map +1 -0
  3. package/cjs/node_modules/@dnd-kit/abstract/modifiers.js +85 -0
  4. package/cjs/node_modules/@dnd-kit/abstract/modifiers.js.map +1 -0
  5. package/cjs/node_modules/@dnd-kit/collision/dist/index.js +91 -0
  6. package/cjs/node_modules/@dnd-kit/collision/dist/index.js.map +1 -0
  7. package/cjs/node_modules/@dnd-kit/dom/index.js +1991 -0
  8. package/cjs/node_modules/@dnd-kit/dom/index.js.map +1 -0
  9. package/cjs/node_modules/@dnd-kit/dom/sortable.js +828 -0
  10. package/cjs/node_modules/@dnd-kit/dom/sortable.js.map +1 -0
  11. package/cjs/node_modules/@dnd-kit/dom/utilities.js +1389 -0
  12. package/cjs/node_modules/@dnd-kit/dom/utilities.js.map +1 -0
  13. package/cjs/node_modules/@dnd-kit/geometry/dist/index.js +310 -0
  14. package/cjs/node_modules/@dnd-kit/geometry/dist/index.js.map +1 -0
  15. package/cjs/node_modules/@dnd-kit/react/hooks.js +134 -0
  16. package/cjs/node_modules/@dnd-kit/react/hooks.js.map +1 -0
  17. package/cjs/node_modules/@dnd-kit/react/index.js +398 -0
  18. package/cjs/node_modules/@dnd-kit/react/index.js.map +1 -0
  19. package/cjs/node_modules/@dnd-kit/react/sortable.js +177 -0
  20. package/cjs/node_modules/@dnd-kit/react/sortable.js.map +1 -0
  21. package/cjs/node_modules/@dnd-kit/react/utilities.js +19 -0
  22. package/cjs/node_modules/@dnd-kit/react/utilities.js.map +1 -0
  23. package/cjs/node_modules/@dnd-kit/state/dist/index.js +280 -0
  24. package/cjs/node_modules/@dnd-kit/state/dist/index.js.map +1 -0
  25. package/cjs/node_modules/@preact/signals-core/dist/signals-core.js +11 -0
  26. package/cjs/node_modules/@preact/signals-core/dist/signals-core.js.map +1 -0
  27. package/cjs/packages/vuu-utils/src/Clock.js +62 -0
  28. package/cjs/packages/vuu-utils/src/Clock.js.map +1 -0
  29. package/cjs/packages/vuu-utils/src/PageVisibilityObserver.js +80 -0
  30. package/cjs/packages/vuu-utils/src/PageVisibilityObserver.js.map +1 -0
  31. package/cjs/packages/vuu-utils/src/ScaledDecimal.js +43 -0
  32. package/cjs/packages/vuu-utils/src/ScaledDecimal.js.map +1 -0
  33. package/cjs/packages/vuu-utils/src/ShellContext.js +13 -0
  34. package/cjs/packages/vuu-utils/src/ShellContext.js.map +1 -0
  35. package/cjs/packages/vuu-utils/src/ThemeProvider.js +85 -0
  36. package/cjs/packages/vuu-utils/src/ThemeProvider.js.map +1 -0
  37. package/cjs/packages/vuu-utils/src/array-utils.js +87 -0
  38. package/cjs/packages/vuu-utils/src/array-utils.js.map +1 -0
  39. package/cjs/packages/vuu-utils/src/box-utils.js +53 -0
  40. package/cjs/packages/vuu-utils/src/box-utils.js.map +1 -0
  41. package/cjs/packages/vuu-utils/src/column-utils.js +1066 -0
  42. package/cjs/packages/vuu-utils/src/column-utils.js.map +1 -0
  43. package/cjs/packages/vuu-utils/src/common-types.js +15 -0
  44. package/cjs/packages/vuu-utils/src/common-types.js.map +1 -0
  45. package/cjs/packages/vuu-utils/src/component-registry.js +144 -0
  46. package/cjs/packages/vuu-utils/src/component-registry.js.map +1 -0
  47. package/cjs/packages/vuu-utils/src/context-definitions/DataContext.js +21 -0
  48. package/cjs/packages/vuu-utils/src/context-definitions/DataContext.js.map +1 -0
  49. package/cjs/packages/vuu-utils/src/context-definitions/DataProvider.js +19 -0
  50. package/cjs/packages/vuu-utils/src/context-definitions/DataProvider.js.map +1 -0
  51. package/cjs/packages/vuu-utils/src/context-definitions/DataSourceProvider.js +33 -0
  52. package/cjs/packages/vuu-utils/src/context-definitions/DataSourceProvider.js.map +1 -0
  53. package/cjs/packages/vuu-utils/src/context-definitions/WorkspaceContext.js +20 -0
  54. package/cjs/packages/vuu-utils/src/context-definitions/WorkspaceContext.js.map +1 -0
  55. package/cjs/packages/vuu-utils/src/cookie-utils.js +22 -0
  56. package/cjs/packages/vuu-utils/src/cookie-utils.js.map +1 -0
  57. package/cjs/packages/vuu-utils/src/css-utils.js +9 -0
  58. package/cjs/packages/vuu-utils/src/css-utils.js.map +1 -0
  59. package/cjs/packages/vuu-utils/src/data-editing/DataEditingProvider.js +28 -0
  60. package/cjs/packages/vuu-utils/src/data-editing/DataEditingProvider.js.map +1 -0
  61. package/cjs/packages/vuu-utils/src/data-editing/EditButtons.js +64 -0
  62. package/cjs/packages/vuu-utils/src/data-editing/EditButtons.js.map +1 -0
  63. package/cjs/packages/vuu-utils/src/data-editing/EditSession.js +312 -0
  64. package/cjs/packages/vuu-utils/src/data-editing/EditSession.js.map +1 -0
  65. package/cjs/packages/vuu-utils/src/data-editing/edit-utils.js +51 -0
  66. package/cjs/packages/vuu-utils/src/data-editing/edit-utils.js.map +1 -0
  67. package/cjs/packages/vuu-utils/src/data-editing/useEditableTable.js +107 -0
  68. package/cjs/packages/vuu-utils/src/data-editing/useEditableTable.js.map +1 -0
  69. package/cjs/packages/vuu-utils/src/data-utils.js +110 -0
  70. package/cjs/packages/vuu-utils/src/data-utils.js.map +1 -0
  71. package/cjs/packages/vuu-utils/src/datasource/BaseDataSource.js +317 -0
  72. package/cjs/packages/vuu-utils/src/datasource/BaseDataSource.js.map +1 -0
  73. package/cjs/packages/vuu-utils/src/datasource/datasource-action-utils.js +14 -0
  74. package/cjs/packages/vuu-utils/src/datasource/datasource-action-utils.js.map +1 -0
  75. package/cjs/packages/vuu-utils/src/datasource/datasource-filter-utils.js +40 -0
  76. package/cjs/packages/vuu-utils/src/datasource/datasource-filter-utils.js.map +1 -0
  77. package/cjs/packages/vuu-utils/src/datasource/datasource-utils.js +218 -0
  78. package/cjs/packages/vuu-utils/src/datasource/datasource-utils.js.map +1 -0
  79. package/cjs/packages/vuu-utils/src/date/date-utils.js +131 -0
  80. package/cjs/packages/vuu-utils/src/date/date-utils.js.map +1 -0
  81. package/cjs/packages/vuu-utils/src/date/dateTimePattern.js +26 -0
  82. package/cjs/packages/vuu-utils/src/date/dateTimePattern.js.map +1 -0
  83. package/cjs/packages/vuu-utils/src/date/formatter.js +82 -0
  84. package/cjs/packages/vuu-utils/src/date/formatter.js.map +1 -0
  85. package/cjs/packages/vuu-utils/src/date/types.js +32 -0
  86. package/cjs/packages/vuu-utils/src/date/types.js.map +1 -0
  87. package/cjs/packages/vuu-utils/src/debug-utils.js +34 -0
  88. package/cjs/packages/vuu-utils/src/debug-utils.js.map +1 -0
  89. package/cjs/packages/vuu-utils/src/event-emitter.js +113 -0
  90. package/cjs/packages/vuu-utils/src/event-emitter.js.map +1 -0
  91. package/cjs/packages/vuu-utils/src/feature-utils.js +139 -0
  92. package/cjs/packages/vuu-utils/src/feature-utils.js.map +1 -0
  93. package/cjs/packages/vuu-utils/src/filters/filter-utils.js +182 -0
  94. package/cjs/packages/vuu-utils/src/filters/filter-utils.js.map +1 -0
  95. package/cjs/packages/vuu-utils/src/filters/filterAsQuery.js +69 -0
  96. package/cjs/packages/vuu-utils/src/filters/filterAsQuery.js.map +1 -0
  97. package/cjs/packages/vuu-utils/src/form-utils.js +123 -0
  98. package/cjs/packages/vuu-utils/src/form-utils.js.map +1 -0
  99. package/cjs/packages/vuu-utils/src/formatting-utils.js +114 -0
  100. package/cjs/packages/vuu-utils/src/formatting-utils.js.map +1 -0
  101. package/cjs/packages/vuu-utils/src/getUniqueId.js +6 -0
  102. package/cjs/packages/vuu-utils/src/getUniqueId.js.map +1 -0
  103. package/cjs/packages/vuu-utils/src/group-utils.js +27 -0
  104. package/cjs/packages/vuu-utils/src/group-utils.js.map +1 -0
  105. package/cjs/packages/vuu-utils/src/html-utils.js +162 -0
  106. package/cjs/packages/vuu-utils/src/html-utils.js.map +1 -0
  107. package/cjs/packages/vuu-utils/src/index.js +481 -0
  108. package/cjs/packages/vuu-utils/src/index.js.map +1 -0
  109. package/cjs/packages/vuu-utils/src/input-utils.js +10 -0
  110. package/cjs/packages/vuu-utils/src/input-utils.js.map +1 -0
  111. package/cjs/packages/vuu-utils/src/invariant.js +13 -0
  112. package/cjs/packages/vuu-utils/src/invariant.js.map +1 -0
  113. package/cjs/packages/vuu-utils/src/itemToString.js +23 -0
  114. package/cjs/packages/vuu-utils/src/itemToString.js.map +1 -0
  115. package/cjs/packages/vuu-utils/src/json-utils.js +105 -0
  116. package/cjs/packages/vuu-utils/src/json-utils.js.map +1 -0
  117. package/cjs/packages/vuu-utils/src/keyboard-utils.js +30 -0
  118. package/cjs/packages/vuu-utils/src/keyboard-utils.js.map +1 -0
  119. package/cjs/packages/vuu-utils/src/keyset.js +72 -0
  120. package/cjs/packages/vuu-utils/src/keyset.js.map +1 -0
  121. package/cjs/packages/vuu-utils/src/list-utils.js +11 -0
  122. package/cjs/packages/vuu-utils/src/list-utils.js.map +1 -0
  123. package/cjs/packages/vuu-utils/src/local-storage-utils.js +35 -0
  124. package/cjs/packages/vuu-utils/src/local-storage-utils.js.map +1 -0
  125. package/cjs/packages/vuu-utils/src/logging-utils.js +65 -0
  126. package/cjs/packages/vuu-utils/src/logging-utils.js.map +1 -0
  127. package/cjs/packages/vuu-utils/src/module-utils.js +6 -0
  128. package/cjs/packages/vuu-utils/src/module-utils.js.map +1 -0
  129. package/cjs/packages/vuu-utils/src/nanoid/index.js +22 -0
  130. package/cjs/packages/vuu-utils/src/nanoid/index.js.map +1 -0
  131. package/cjs/packages/vuu-utils/src/perf-utils.js +35 -0
  132. package/cjs/packages/vuu-utils/src/perf-utils.js.map +1 -0
  133. package/cjs/packages/vuu-utils/src/promise-utils.js +42 -0
  134. package/cjs/packages/vuu-utils/src/promise-utils.js.map +1 -0
  135. package/cjs/packages/vuu-utils/src/protocol-message-utils.js +108 -0
  136. package/cjs/packages/vuu-utils/src/protocol-message-utils.js.map +1 -0
  137. package/cjs/packages/vuu-utils/src/range-utils.js +115 -0
  138. package/cjs/packages/vuu-utils/src/range-utils.js.map +1 -0
  139. package/cjs/packages/vuu-utils/src/react-utils.js +72 -0
  140. package/cjs/packages/vuu-utils/src/react-utils.js.map +1 -0
  141. package/cjs/packages/vuu-utils/src/round-decimal.js +131 -0
  142. package/cjs/packages/vuu-utils/src/round-decimal.js.map +1 -0
  143. package/cjs/packages/vuu-utils/src/row-utils.js +59 -0
  144. package/cjs/packages/vuu-utils/src/row-utils.js.map +1 -0
  145. package/cjs/packages/vuu-utils/src/selection-utils.js +34 -0
  146. package/cjs/packages/vuu-utils/src/selection-utils.js.map +1 -0
  147. package/cjs/packages/vuu-utils/src/shell-layout-types.js +13 -0
  148. package/cjs/packages/vuu-utils/src/shell-layout-types.js.map +1 -0
  149. package/cjs/packages/vuu-utils/src/sort-utils.js +78 -0
  150. package/cjs/packages/vuu-utils/src/sort-utils.js.map +1 -0
  151. package/cjs/packages/vuu-utils/src/table-schema-utils.js +13 -0
  152. package/cjs/packages/vuu-utils/src/table-schema-utils.js.map +1 -0
  153. package/cjs/packages/vuu-utils/src/text-utils.js +21 -0
  154. package/cjs/packages/vuu-utils/src/text-utils.js.map +1 -0
  155. package/cjs/packages/vuu-utils/src/theme-utils.js +36 -0
  156. package/cjs/packages/vuu-utils/src/theme-utils.js.map +1 -0
  157. package/cjs/packages/vuu-utils/src/tree-utils.js +114 -0
  158. package/cjs/packages/vuu-utils/src/tree-utils.js.map +1 -0
  159. package/cjs/packages/vuu-utils/src/ts-utils.js +12 -0
  160. package/cjs/packages/vuu-utils/src/ts-utils.js.map +1 -0
  161. package/cjs/packages/vuu-utils/src/typeahead-utils.js +6 -0
  162. package/cjs/packages/vuu-utils/src/typeahead-utils.js.map +1 -0
  163. package/cjs/packages/vuu-utils/src/url-utils.js +21 -0
  164. package/cjs/packages/vuu-utils/src/url-utils.js.map +1 -0
  165. package/cjs/packages/vuu-utils/src/useId.js +9 -0
  166. package/cjs/packages/vuu-utils/src/useId.js.map +1 -0
  167. package/cjs/packages/vuu-utils/src/useLayoutEffectSkipFirst.js +17 -0
  168. package/cjs/packages/vuu-utils/src/useLayoutEffectSkipFirst.js.map +1 -0
  169. package/cjs/packages/vuu-utils/src/useResizeObserver.js +134 -0
  170. package/cjs/packages/vuu-utils/src/useResizeObserver.js.map +1 -0
  171. package/cjs/packages/vuu-utils/src/useStateRef.js +23 -0
  172. package/cjs/packages/vuu-utils/src/useStateRef.js.map +1 -0
  173. package/esm/node_modules/@dnd-kit/abstract/index.js +1472 -0
  174. package/esm/node_modules/@dnd-kit/abstract/index.js.map +1 -0
  175. package/esm/node_modules/@dnd-kit/abstract/modifiers.js +82 -0
  176. package/esm/node_modules/@dnd-kit/abstract/modifiers.js.map +1 -0
  177. package/esm/node_modules/@dnd-kit/collision/dist/index.js +86 -0
  178. package/esm/node_modules/@dnd-kit/collision/dist/index.js.map +1 -0
  179. package/esm/node_modules/@dnd-kit/dom/index.js +1977 -0
  180. package/esm/node_modules/@dnd-kit/dom/index.js.map +1 -0
  181. package/esm/node_modules/@dnd-kit/dom/sortable.js +822 -0
  182. package/esm/node_modules/@dnd-kit/dom/sortable.js.map +1 -0
  183. package/esm/node_modules/@dnd-kit/dom/utilities.js +1344 -0
  184. package/esm/node_modules/@dnd-kit/dom/utilities.js.map +1 -0
  185. package/esm/node_modules/@dnd-kit/geometry/dist/index.js +303 -0
  186. package/esm/node_modules/@dnd-kit/geometry/dist/index.js.map +1 -0
  187. package/esm/node_modules/@dnd-kit/react/hooks.js +126 -0
  188. package/esm/node_modules/@dnd-kit/react/hooks.js.map +1 -0
  189. package/esm/node_modules/@dnd-kit/react/index.js +392 -0
  190. package/esm/node_modules/@dnd-kit/react/index.js.map +1 -0
  191. package/esm/node_modules/@dnd-kit/react/sortable.js +175 -0
  192. package/esm/node_modules/@dnd-kit/react/sortable.js.map +1 -0
  193. package/esm/node_modules/@dnd-kit/react/utilities.js +17 -0
  194. package/esm/node_modules/@dnd-kit/react/utilities.js.map +1 -0
  195. package/esm/node_modules/@dnd-kit/state/dist/index.js +266 -0
  196. package/esm/node_modules/@dnd-kit/state/dist/index.js.map +1 -0
  197. package/esm/node_modules/@preact/signals-core/dist/signals-core.js +4 -0
  198. package/esm/node_modules/@preact/signals-core/dist/signals-core.js.map +1 -0
  199. package/esm/packages/vuu-utils/src/Clock.js +60 -0
  200. package/esm/packages/vuu-utils/src/Clock.js.map +1 -0
  201. package/esm/packages/vuu-utils/src/PageVisibilityObserver.js +78 -0
  202. package/esm/packages/vuu-utils/src/PageVisibilityObserver.js.map +1 -0
  203. package/esm/packages/vuu-utils/src/ScaledDecimal.js +37 -0
  204. package/esm/packages/vuu-utils/src/ScaledDecimal.js.map +1 -0
  205. package/esm/packages/vuu-utils/src/ShellContext.js +10 -0
  206. package/esm/packages/vuu-utils/src/ShellContext.js.map +1 -0
  207. package/esm/packages/vuu-utils/src/ThemeProvider.js +78 -0
  208. package/esm/packages/vuu-utils/src/ThemeProvider.js.map +1 -0
  209. package/esm/packages/vuu-utils/src/array-utils.js +79 -0
  210. package/esm/packages/vuu-utils/src/array-utils.js.map +1 -0
  211. package/esm/packages/vuu-utils/src/box-utils.js +47 -0
  212. package/esm/packages/vuu-utils/src/box-utils.js.map +1 -0
  213. package/esm/packages/vuu-utils/src/column-utils.js +978 -0
  214. package/esm/packages/vuu-utils/src/column-utils.js.map +1 -0
  215. package/esm/packages/vuu-utils/src/common-types.js +13 -0
  216. package/esm/packages/vuu-utils/src/common-types.js.map +1 -0
  217. package/esm/packages/vuu-utils/src/component-registry.js +128 -0
  218. package/esm/packages/vuu-utils/src/component-registry.js.map +1 -0
  219. package/esm/packages/vuu-utils/src/context-definitions/DataContext.js +18 -0
  220. package/esm/packages/vuu-utils/src/context-definitions/DataContext.js.map +1 -0
  221. package/esm/packages/vuu-utils/src/context-definitions/DataProvider.js +16 -0
  222. package/esm/packages/vuu-utils/src/context-definitions/DataProvider.js.map +1 -0
  223. package/esm/packages/vuu-utils/src/context-definitions/DataSourceProvider.js +29 -0
  224. package/esm/packages/vuu-utils/src/context-definitions/DataSourceProvider.js.map +1 -0
  225. package/esm/packages/vuu-utils/src/context-definitions/WorkspaceContext.js +17 -0
  226. package/esm/packages/vuu-utils/src/context-definitions/WorkspaceContext.js.map +1 -0
  227. package/esm/packages/vuu-utils/src/cookie-utils.js +19 -0
  228. package/esm/packages/vuu-utils/src/cookie-utils.js.map +1 -0
  229. package/esm/packages/vuu-utils/src/css-utils.js +7 -0
  230. package/esm/packages/vuu-utils/src/css-utils.js.map +1 -0
  231. package/esm/packages/vuu-utils/src/data-editing/DataEditingProvider.js +25 -0
  232. package/esm/packages/vuu-utils/src/data-editing/DataEditingProvider.js.map +1 -0
  233. package/esm/packages/vuu-utils/src/data-editing/EditButtons.js +62 -0
  234. package/esm/packages/vuu-utils/src/data-editing/EditButtons.js.map +1 -0
  235. package/esm/packages/vuu-utils/src/data-editing/EditSession.js +309 -0
  236. package/esm/packages/vuu-utils/src/data-editing/EditSession.js.map +1 -0
  237. package/esm/packages/vuu-utils/src/data-editing/edit-utils.js +46 -0
  238. package/esm/packages/vuu-utils/src/data-editing/edit-utils.js.map +1 -0
  239. package/esm/packages/vuu-utils/src/data-editing/useEditableTable.js +105 -0
  240. package/esm/packages/vuu-utils/src/data-editing/useEditableTable.js.map +1 -0
  241. package/esm/packages/vuu-utils/src/data-utils.js +95 -0
  242. package/esm/packages/vuu-utils/src/data-utils.js.map +1 -0
  243. package/esm/packages/vuu-utils/src/datasource/BaseDataSource.js +314 -0
  244. package/esm/packages/vuu-utils/src/datasource/BaseDataSource.js.map +1 -0
  245. package/esm/packages/vuu-utils/src/datasource/datasource-action-utils.js +8 -0
  246. package/esm/packages/vuu-utils/src/datasource/datasource-action-utils.js.map +1 -0
  247. package/esm/packages/vuu-utils/src/datasource/datasource-filter-utils.js +38 -0
  248. package/esm/packages/vuu-utils/src/datasource/datasource-filter-utils.js.map +1 -0
  249. package/esm/packages/vuu-utils/src/datasource/datasource-utils.js +193 -0
  250. package/esm/packages/vuu-utils/src/datasource/datasource-utils.js.map +1 -0
  251. package/esm/packages/vuu-utils/src/date/date-utils.js +121 -0
  252. package/esm/packages/vuu-utils/src/date/date-utils.js.map +1 -0
  253. package/esm/packages/vuu-utils/src/date/dateTimePattern.js +22 -0
  254. package/esm/packages/vuu-utils/src/date/dateTimePattern.js.map +1 -0
  255. package/esm/packages/vuu-utils/src/date/formatter.js +79 -0
  256. package/esm/packages/vuu-utils/src/date/formatter.js.map +1 -0
  257. package/esm/packages/vuu-utils/src/date/types.js +26 -0
  258. package/esm/packages/vuu-utils/src/date/types.js.map +1 -0
  259. package/esm/packages/vuu-utils/src/debug-utils.js +32 -0
  260. package/esm/packages/vuu-utils/src/debug-utils.js.map +1 -0
  261. package/esm/packages/vuu-utils/src/event-emitter.js +111 -0
  262. package/esm/packages/vuu-utils/src/event-emitter.js.map +1 -0
  263. package/esm/packages/vuu-utils/src/feature-utils.js +125 -0
  264. package/esm/packages/vuu-utils/src/feature-utils.js.map +1 -0
  265. package/esm/packages/vuu-utils/src/filters/filter-utils.js +159 -0
  266. package/esm/packages/vuu-utils/src/filters/filter-utils.js.map +1 -0
  267. package/esm/packages/vuu-utils/src/filters/filterAsQuery.js +65 -0
  268. package/esm/packages/vuu-utils/src/filters/filterAsQuery.js.map +1 -0
  269. package/esm/packages/vuu-utils/src/form-utils.js +116 -0
  270. package/esm/packages/vuu-utils/src/form-utils.js.map +1 -0
  271. package/esm/packages/vuu-utils/src/formatting-utils.js +109 -0
  272. package/esm/packages/vuu-utils/src/formatting-utils.js.map +1 -0
  273. package/esm/packages/vuu-utils/src/getUniqueId.js +4 -0
  274. package/esm/packages/vuu-utils/src/getUniqueId.js.map +1 -0
  275. package/esm/packages/vuu-utils/src/group-utils.js +23 -0
  276. package/esm/packages/vuu-utils/src/group-utils.js.map +1 -0
  277. package/esm/packages/vuu-utils/src/html-utils.js +145 -0
  278. package/esm/packages/vuu-utils/src/html-utils.js.map +1 -0
  279. package/esm/packages/vuu-utils/src/index.js +77 -0
  280. package/esm/packages/vuu-utils/src/index.js.map +1 -0
  281. package/esm/packages/vuu-utils/src/input-utils.js +7 -0
  282. package/esm/packages/vuu-utils/src/input-utils.js.map +1 -0
  283. package/esm/packages/vuu-utils/src/invariant.js +11 -0
  284. package/esm/packages/vuu-utils/src/invariant.js.map +1 -0
  285. package/esm/packages/vuu-utils/src/itemToString.js +21 -0
  286. package/esm/packages/vuu-utils/src/itemToString.js.map +1 -0
  287. package/esm/packages/vuu-utils/src/json-utils.js +103 -0
  288. package/esm/packages/vuu-utils/src/json-utils.js.map +1 -0
  289. package/{src → esm/packages/vuu-utils/src}/keyboard-utils.js +3 -1
  290. package/esm/packages/vuu-utils/src/keyboard-utils.js.map +1 -0
  291. package/esm/packages/vuu-utils/src/keyset.js +70 -0
  292. package/esm/packages/vuu-utils/src/keyset.js.map +1 -0
  293. package/esm/packages/vuu-utils/src/list-utils.js +9 -0
  294. package/esm/packages/vuu-utils/src/list-utils.js.map +1 -0
  295. package/esm/packages/vuu-utils/src/local-storage-utils.js +30 -0
  296. package/esm/packages/vuu-utils/src/local-storage-utils.js.map +1 -0
  297. package/esm/packages/vuu-utils/src/logging-utils.js +61 -0
  298. package/esm/packages/vuu-utils/src/logging-utils.js.map +1 -0
  299. package/esm/packages/vuu-utils/src/module-utils.js +4 -0
  300. package/esm/packages/vuu-utils/src/module-utils.js.map +1 -0
  301. package/esm/packages/vuu-utils/src/nanoid/index.js +20 -0
  302. package/esm/packages/vuu-utils/src/nanoid/index.js.map +1 -0
  303. package/esm/packages/vuu-utils/src/perf-utils.js +32 -0
  304. package/esm/packages/vuu-utils/src/perf-utils.js.map +1 -0
  305. package/esm/packages/vuu-utils/src/promise-utils.js +40 -0
  306. package/esm/packages/vuu-utils/src/promise-utils.js.map +1 -0
  307. package/esm/packages/vuu-utils/src/protocol-message-utils.js +77 -0
  308. package/esm/packages/vuu-utils/src/protocol-message-utils.js.map +1 -0
  309. package/esm/packages/vuu-utils/src/range-utils.js +108 -0
  310. package/esm/packages/vuu-utils/src/range-utils.js.map +1 -0
  311. package/esm/packages/vuu-utils/src/react-utils.js +66 -0
  312. package/esm/packages/vuu-utils/src/react-utils.js.map +1 -0
  313. package/esm/packages/vuu-utils/src/round-decimal.js +127 -0
  314. package/esm/packages/vuu-utils/src/round-decimal.js.map +1 -0
  315. package/esm/packages/vuu-utils/src/row-utils.js +54 -0
  316. package/esm/packages/vuu-utils/src/row-utils.js.map +1 -0
  317. package/esm/packages/vuu-utils/src/selection-utils.js +31 -0
  318. package/esm/packages/vuu-utils/src/selection-utils.js.map +1 -0
  319. package/esm/packages/vuu-utils/src/shell-layout-types.js +11 -0
  320. package/esm/packages/vuu-utils/src/shell-layout-types.js.map +1 -0
  321. package/esm/packages/vuu-utils/src/sort-utils.js +73 -0
  322. package/esm/packages/vuu-utils/src/sort-utils.js.map +1 -0
  323. package/esm/packages/vuu-utils/src/table-schema-utils.js +11 -0
  324. package/esm/packages/vuu-utils/src/table-schema-utils.js.map +1 -0
  325. package/esm/packages/vuu-utils/src/text-utils.js +18 -0
  326. package/esm/packages/vuu-utils/src/text-utils.js.map +1 -0
  327. package/esm/packages/vuu-utils/src/theme-utils.js +34 -0
  328. package/esm/packages/vuu-utils/src/theme-utils.js.map +1 -0
  329. package/esm/packages/vuu-utils/src/tree-utils.js +108 -0
  330. package/esm/packages/vuu-utils/src/tree-utils.js.map +1 -0
  331. package/esm/packages/vuu-utils/src/ts-utils.js +8 -0
  332. package/esm/packages/vuu-utils/src/ts-utils.js.map +1 -0
  333. package/esm/packages/vuu-utils/src/typeahead-utils.js +4 -0
  334. package/esm/packages/vuu-utils/src/typeahead-utils.js.map +1 -0
  335. package/esm/packages/vuu-utils/src/url-utils.js +18 -0
  336. package/esm/packages/vuu-utils/src/url-utils.js.map +1 -0
  337. package/esm/packages/vuu-utils/src/useId.js +7 -0
  338. package/esm/packages/vuu-utils/src/useId.js.map +1 -0
  339. package/esm/packages/vuu-utils/src/useLayoutEffectSkipFirst.js +15 -0
  340. package/esm/packages/vuu-utils/src/useLayoutEffectSkipFirst.js.map +1 -0
  341. package/esm/packages/vuu-utils/src/useResizeObserver.js +130 -0
  342. package/esm/packages/vuu-utils/src/useResizeObserver.js.map +1 -0
  343. package/esm/packages/vuu-utils/src/useStateRef.js +21 -0
  344. package/esm/packages/vuu-utils/src/useStateRef.js.map +1 -0
  345. package/package.json +14 -11
  346. package/types/ThemeProvider.d.ts +4 -4
  347. package/types/column-utils.d.ts +5 -4
  348. package/types/data-editing/EditButtons.d.ts +8 -2
  349. package/types/data-editing/EditSession.d.ts +13 -4
  350. package/types/data-editing/edit-utils.d.ts +3 -1
  351. package/types/data-editing/useEditableTable.d.ts +10 -4
  352. package/types/data-utils.d.ts +2 -1
  353. package/types/date/date-utils.d.ts +8 -8
  354. package/types/feature-utils.d.ts +1 -1
  355. package/types/filters/filter-utils.d.ts +15 -15
  356. package/types/formatting-utils.d.ts +1 -1
  357. package/types/index.d.ts +1 -1
  358. package/types/protocol-message-utils.d.ts +3 -1
  359. package/src/Clock.js +0 -43
  360. package/src/PageVisibilityObserver.js +0 -42
  361. package/src/ScaledDecimal.js +0 -32
  362. package/src/ShellContext.js +0 -5
  363. package/src/ThemeProvider.js +0 -56
  364. package/src/array-utils.js +0 -51
  365. package/src/box-utils.js +0 -51
  366. package/src/broadcast-channel.js +0 -0
  367. package/src/column-utils.js +0 -790
  368. package/src/common-types.js +0 -11
  369. package/src/component-registry.js +0 -83
  370. package/src/context-definitions/DataContext.js +0 -15
  371. package/src/context-definitions/DataProvider.js +0 -13
  372. package/src/context-definitions/DataSourceProvider.js +0 -18
  373. package/src/context-definitions/WorkspaceContext.js +0 -14
  374. package/src/cookie-utils.js +0 -15
  375. package/src/css-utils.js +0 -5
  376. package/src/data-editing/DataEditingProvider.js +0 -13
  377. package/src/data-editing/EditButtons.js +0 -32
  378. package/src/data-editing/EditModeProvider.js +0 -18
  379. package/src/data-editing/EditSession.js +0 -149
  380. package/src/data-editing/edit-utils.js +0 -37
  381. package/src/data-editing/useEditableTable.js +0 -76
  382. package/src/data-utils.js +0 -55
  383. package/src/datasource/BaseDataSource.js +0 -233
  384. package/src/datasource/datasource-action-utils.js +0 -6
  385. package/src/datasource/datasource-filter-utils.js +0 -27
  386. package/src/datasource/datasource-utils.js +0 -148
  387. package/src/date/date-utils.js +0 -80
  388. package/src/date/dateTimePattern.js +0 -17
  389. package/src/date/formatter.js +0 -101
  390. package/src/date/index.js +0 -4
  391. package/src/date/types.js +0 -27
  392. package/src/debug-utils.js +0 -25
  393. package/src/event-emitter.js +0 -78
  394. package/src/feature-utils.js +0 -86
  395. package/src/filters/filter-utils.js +0 -136
  396. package/src/filters/filterAsQuery.js +0 -70
  397. package/src/filters/index.js +0 -2
  398. package/src/form-utils.js +0 -69
  399. package/src/formatting-utils.js +0 -42
  400. package/src/getUniqueId.js +0 -2
  401. package/src/group-utils.js +0 -16
  402. package/src/html-utils.js +0 -108
  403. package/src/index.js +0 -77
  404. package/src/input-utils.js +0 -3
  405. package/src/invariant.js +0 -9
  406. package/src/itemToString.js +0 -9
  407. package/src/json-types.js +0 -0
  408. package/src/json-utils.js +0 -108
  409. package/src/keyset.js +0 -57
  410. package/src/layout-types.js +0 -0
  411. package/src/list-utils.js +0 -5
  412. package/src/local-storage-utils.js +0 -23
  413. package/src/logging-utils.js +0 -52
  414. package/src/module-utils.js +0 -2
  415. package/src/nanoid/index.js +0 -13
  416. package/src/perf-utils.js +0 -28
  417. package/src/promise-utils.js +0 -26
  418. package/src/protocol-message-utils.js +0 -68
  419. package/src/range-utils.js +0 -109
  420. package/src/react-utils.js +0 -64
  421. package/src/round-decimal.js +0 -83
  422. package/src/row-utils.js +0 -43
  423. package/src/selection-utils.js +0 -25
  424. package/src/shell-layout-types.js +0 -9
  425. package/src/sort-utils.js +0 -75
  426. package/src/table-schema-utils.js +0 -11
  427. package/src/text-utils.js +0 -13
  428. package/src/theme-utils.js +0 -21
  429. package/src/tree-types.js +0 -0
  430. package/src/tree-utils.js +0 -96
  431. package/src/ts-utils.js +0 -6
  432. package/src/typeahead-utils.js +0 -4
  433. package/src/url-utils.js +0 -12
  434. package/src/useId.js +0 -6
  435. package/src/useLayoutEffectSkipFirst.js +0 -9
  436. package/src/useResizeObserver.js +0 -122
  437. package/src/useStateRef.js +0 -21
  438. package/src/user-types.js +0 -0
@@ -0,0 +1,115 @@
1
+ 'use strict';
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __typeError = (msg) => {
5
+ throw TypeError(msg);
6
+ };
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
9
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
10
+ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
11
+ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
12
+ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), member.set(obj, value), value);
13
+ var _baseFrom, _renderBufferSize, _baseTo;
14
+ const _RangeImpl = class _RangeImpl {
15
+ // We have to keep from and to as simple public properties (not getters) so they survive structuredClone
16
+ constructor(from, to, renderBufferSize = 0) {
17
+ this.from = from;
18
+ this.to = to;
19
+ __privateAdd(this, _baseFrom);
20
+ __privateAdd(this, _renderBufferSize, 0);
21
+ __privateAdd(this, _baseTo);
22
+ __privateSet(this, _baseFrom, from);
23
+ __privateSet(this, _baseTo, to);
24
+ __privateSet(this, _renderBufferSize, renderBufferSize);
25
+ }
26
+ get reset() {
27
+ return new _RangeImpl(
28
+ 0,
29
+ __privateGet(this, _baseTo) - __privateGet(this, _baseFrom),
30
+ __privateGet(this, _renderBufferSize)
31
+ );
32
+ }
33
+ get withBuffer() {
34
+ return getFullRange(this, __privateGet(this, _renderBufferSize));
35
+ }
36
+ equals(range) {
37
+ return range.from === __privateGet(this, _baseFrom) && range.to === __privateGet(this, _baseTo);
38
+ }
39
+ toJson() {
40
+ return {
41
+ from: this.from,
42
+ to: this.to,
43
+ baseFrom: __privateGet(this, _baseFrom),
44
+ baseTo: __privateGet(this, _baseTo),
45
+ renderBufferSize: __privateGet(this, _renderBufferSize)
46
+ };
47
+ }
48
+ };
49
+ _baseFrom = new WeakMap();
50
+ _renderBufferSize = new WeakMap();
51
+ _baseTo = new WeakMap();
52
+ let RangeImpl = _RangeImpl;
53
+ const Range = (from, to, renderBufferSize) => new RangeImpl(from, to, renderBufferSize);
54
+ const NULL_RANGE = Range(0, 0);
55
+ function getFullRange({ from, to }, bufferSize = 0, totalRowCount = Number.MAX_SAFE_INTEGER) {
56
+ if (from === 0 && to === 0) {
57
+ return { from, to };
58
+ } else if (bufferSize === 0) {
59
+ if (totalRowCount < from) {
60
+ return { from: 0, to: 0 };
61
+ } else {
62
+ return { from, to: Math.min(to, totalRowCount) };
63
+ }
64
+ } else if (from === 0) {
65
+ return { from, to: Math.min(to + bufferSize, totalRowCount) };
66
+ } else {
67
+ const shortfallBefore = from - bufferSize < 0;
68
+ const shortfallAfter = totalRowCount - (to + bufferSize) < 0;
69
+ if (shortfallBefore && shortfallAfter) {
70
+ return { from: 0, to: totalRowCount };
71
+ } else if (shortfallBefore) {
72
+ return { from: 0, to: to + bufferSize };
73
+ } else if (shortfallAfter) {
74
+ return {
75
+ from: Math.max(0, from - bufferSize),
76
+ to: totalRowCount
77
+ };
78
+ } else {
79
+ return { from: from - bufferSize, to: to + bufferSize };
80
+ }
81
+ }
82
+ }
83
+ const withinRange = (value, { from, to }) => value >= from && value < to;
84
+ const rangeNewItems = ({ from: from1, to: to1 }, newRange) => {
85
+ const { from: from2, to: to2 } = newRange;
86
+ const noOverlap = from2 >= to1 || to2 <= from1;
87
+ const newFullySubsumesOld = from2 < from1 && to2 > to1;
88
+ return noOverlap || newFullySubsumesOld ? newRange : to2 > to1 ? { from: to1, to: to2 } : { from: from2, to: from1 };
89
+ };
90
+ class WindowRange {
91
+ constructor(from, to) {
92
+ __publicField(this, "from");
93
+ __publicField(this, "to");
94
+ this.from = from;
95
+ this.to = to;
96
+ }
97
+ isWithin(index) {
98
+ return withinRange(index, this);
99
+ }
100
+ //find the overlap of this range and a new one
101
+ overlap(from, to) {
102
+ return from >= this.to || to < this.from ? [0, 0] : [Math.max(from, this.from), Math.min(to, this.to)];
103
+ }
104
+ copy() {
105
+ return new WindowRange(this.from, this.to);
106
+ }
107
+ }
108
+
109
+ exports.NULL_RANGE = NULL_RANGE;
110
+ exports.Range = Range;
111
+ exports.WindowRange = WindowRange;
112
+ exports.getFullRange = getFullRange;
113
+ exports.rangeNewItems = rangeNewItems;
114
+ exports.withinRange = withinRange;
115
+ //# sourceMappingURL=range-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"range-utils.js","sources":["../../../../../../packages/vuu-utils/src/range-utils.ts"],"sourcesContent":["import { VuuRange } from \"@vuu-ui/vuu-protocol-types\";\n\ninterface FromToRange {\n from: number;\n to: number;\n}\n\nexport interface Range extends VuuRange {\n equals: (vuuRange: VuuRange) => boolean;\n reset: Range;\n withBuffer: VuuRange;\n}\n\nexport interface RangeOptions {\n renderBufferSize?: number;\n rowCount?: number;\n}\n\nclass RangeImpl implements Range {\n #baseFrom: number;\n #renderBufferSize = 0;\n #baseTo: number;\n\n // We have to keep from and to as simple public properties (not getters) so they survive structuredClone\n constructor(\n /** Index position of first visible row in viewport */\n public from: number,\n /** Index position of last visible row in viewport + 1 */\n public to: number,\n renderBufferSize = 0,\n ) {\n this.#baseFrom = from;\n this.#baseTo = to;\n this.#renderBufferSize = renderBufferSize;\n }\n\n get reset() {\n return new RangeImpl(\n 0,\n this.#baseTo - this.#baseFrom,\n this.#renderBufferSize,\n );\n }\n\n get withBuffer() {\n return getFullRange(this, this.#renderBufferSize);\n }\n\n equals(range: VuuRange) {\n return range.from === this.#baseFrom && range.to === this.#baseTo;\n }\n\n toJson() {\n return {\n from: this.from,\n to: this.to,\n baseFrom: this.#baseFrom,\n baseTo: this.#baseTo,\n renderBufferSize: this.#renderBufferSize,\n };\n }\n}\n\nexport const Range = (\n from: number,\n to: number,\n renderBufferSize?: number,\n): Range => new RangeImpl(from, to, renderBufferSize);\n\nexport const NULL_RANGE = Range(0, 0);\n\nexport function getFullRange(\n { from, to }: VuuRange,\n bufferSize = 0,\n totalRowCount: number = Number.MAX_SAFE_INTEGER,\n): FromToRange {\n if (from === 0 && to === 0) {\n return { from, to };\n } else if (bufferSize === 0) {\n if (totalRowCount < from) {\n return { from: 0, to: 0 };\n } else {\n return { from, to: Math.min(to, totalRowCount) };\n }\n } else if (from === 0) {\n return { from, to: Math.min(to + bufferSize, totalRowCount) };\n } else {\n const shortfallBefore = from - bufferSize < 0;\n const shortfallAfter = totalRowCount - (to + bufferSize) < 0;\n if (shortfallBefore && shortfallAfter) {\n return { from: 0, to: totalRowCount };\n } else if (shortfallBefore) {\n return { from: 0, to: to + bufferSize };\n } else if (shortfallAfter) {\n return {\n from: Math.max(0, from - bufferSize),\n to: totalRowCount,\n };\n } else {\n return { from: from - bufferSize, to: to + bufferSize };\n }\n }\n}\n\nexport const withinRange = (value: number, { from, to }: VuuRange) =>\n value >= from && value < to;\n\nexport const rangeNewItems = (\n { from: from1, to: to1 }: VuuRange,\n newRange: VuuRange,\n): VuuRange => {\n const { from: from2, to: to2 } = newRange;\n const noOverlap = from2 >= to1 || to2 <= from1;\n const newFullySubsumesOld = from2 < from1 && to2 > to1;\n return noOverlap || newFullySubsumesOld\n ? newRange\n : to2 > to1\n ? { from: to1, to: to2 }\n : { from: from2, to: from1 };\n};\n\nexport class WindowRange {\n public from: number;\n public to: number;\n\n constructor(from: number, to: number) {\n this.from = from;\n this.to = to;\n }\n\n public isWithin(index: number) {\n return withinRange(index, this);\n }\n\n //find the overlap of this range and a new one\n public overlap(from: number, to: number): [number, number] {\n return from >= this.to || to < this.from\n ? [0, 0]\n : [Math.max(from, this.from), Math.min(to, this.to)];\n }\n\n public copy(): WindowRange {\n return new WindowRange(this.from, this.to);\n }\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+
5
+ const EMPTY_ARRAY = [];
6
+ const asReactElements = (children) => {
7
+ const isArray = Array.isArray(children);
8
+ const count = isArray ? children.length : React.Children.count(children);
9
+ if (isArray && children.every(React.isValidElement)) {
10
+ return children;
11
+ } else if (count === 1 && !isArray && React.isValidElement(children)) {
12
+ return [children];
13
+ } else if (count > 1) {
14
+ return children;
15
+ } else {
16
+ return EMPTY_ARRAY;
17
+ }
18
+ };
19
+ const useIsMounted = (id = "") => {
20
+ const isMountedRef = React.useRef(false);
21
+ React.useEffect(() => {
22
+ console.log(`is MOUNTED ${id}`);
23
+ isMountedRef.current = true;
24
+ return () => {
25
+ console.log(`is UNMOUNTED ${id}`);
26
+ isMountedRef.current = false;
27
+ };
28
+ }, [id]);
29
+ return isMountedRef;
30
+ };
31
+ const isSimpleStateValue = (arg) => typeof arg !== "function";
32
+ const createSyntheticEvent = (event) => {
33
+ let isDefaultPrevented = false;
34
+ let isPropagationStopped = false;
35
+ const preventDefault = () => {
36
+ isDefaultPrevented = true;
37
+ event.preventDefault();
38
+ };
39
+ const stopPropagation = () => {
40
+ isPropagationStopped = true;
41
+ event.stopPropagation();
42
+ };
43
+ return {
44
+ nativeEvent: event,
45
+ currentTarget: event.currentTarget,
46
+ target: event.target,
47
+ bubbles: event.bubbles,
48
+ cancelable: event.cancelable,
49
+ defaultPrevented: event.defaultPrevented,
50
+ eventPhase: event.eventPhase,
51
+ isTrusted: event.isTrusted,
52
+ preventDefault,
53
+ isDefaultPrevented: () => isDefaultPrevented,
54
+ stopPropagation,
55
+ isPropagationStopped: () => isPropagationStopped,
56
+ persist: () => void 0,
57
+ timeStamp: event.timeStamp,
58
+ type: event.type
59
+ };
60
+ };
61
+ const useStableReference = (value) => {
62
+ const referenceToProp = React.useRef(value);
63
+ React.useMemo(() => referenceToProp.current = value, [value]);
64
+ return referenceToProp;
65
+ };
66
+
67
+ exports.asReactElements = asReactElements;
68
+ exports.createSyntheticEvent = createSyntheticEvent;
69
+ exports.isSimpleStateValue = isSimpleStateValue;
70
+ exports.useIsMounted = useIsMounted;
71
+ exports.useStableReference = useStableReference;
72
+ //# sourceMappingURL=react-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-utils.js","sources":["../../../../../../packages/vuu-utils/src/react-utils.ts"],"sourcesContent":["import {\n Children,\n isValidElement,\n ReactElement,\n ReactNode,\n SetStateAction,\n useEffect,\n useMemo,\n useRef,\n} from \"react\";\n\nconst EMPTY_ARRAY: ReactElement[] = [];\n\nexport const asReactElements = (children: ReactNode): ReactElement[] => {\n const isArray = Array.isArray(children);\n const count = isArray ? children.length : Children.count(children);\n if (isArray && children.every(isValidElement)) {\n return children;\n } else if (count === 1 && !isArray && isValidElement(children)) {\n return [children];\n } else if (count > 1) {\n return children as ReactElement[];\n } else {\n return EMPTY_ARRAY;\n }\n};\n\nexport const useIsMounted = (id = \"\") => {\n const isMountedRef = useRef(false);\n useEffect(() => {\n console.log(`is MOUNTED ${id}`);\n isMountedRef.current = true;\n return () => {\n console.log(`is UNMOUNTED ${id}`);\n isMountedRef.current = false;\n };\n }, [id]);\n\n return isMountedRef;\n};\n\nexport const isSimpleStateValue = <T>(arg: SetStateAction<T>): arg is T =>\n typeof arg !== \"function\";\n\n/**\n * From an example by stack overflow user Maxim G\n */\nexport const createSyntheticEvent = <T extends Element, E extends Event>(\n event: E,\n): React.SyntheticEvent<T, E> => {\n let isDefaultPrevented = false;\n let isPropagationStopped = false;\n const preventDefault = () => {\n isDefaultPrevented = true;\n event.preventDefault();\n };\n const stopPropagation = () => {\n isPropagationStopped = true;\n event.stopPropagation();\n };\n return {\n nativeEvent: event,\n currentTarget: event.currentTarget as EventTarget & T,\n target: event.target as EventTarget & T,\n bubbles: event.bubbles,\n cancelable: event.cancelable,\n defaultPrevented: event.defaultPrevented,\n eventPhase: event.eventPhase,\n isTrusted: event.isTrusted,\n preventDefault,\n isDefaultPrevented: () => isDefaultPrevented,\n stopPropagation,\n isPropagationStopped: () => isPropagationStopped,\n persist: () => undefined,\n timeStamp: event.timeStamp,\n type: event.type,\n };\n};\n\n/**\n * Store a value in a RefObject and update that ref whenever the value changes.\n * Use to maintain a stable reference to a changing value that we need to use\n * within a hook, but when that hook does not need to be triggered just because\n * this value changes.\n */\nexport const useStableReference = <T>(value: T) => {\n const referenceToProp = useRef<T>(value);\n useMemo(() => (referenceToProp.current = value), [value]);\n return referenceToProp;\n};\n"],"names":["Children","isValidElement","useRef","useEffect","useMemo"],"mappings":";;;;AAWA,MAAM,cAA8B,EAAC;AAExB,MAAA,eAAA,GAAkB,CAAC,QAAwC,KAAA;AACtE,EAAM,MAAA,OAAA,GAAU,KAAM,CAAA,OAAA,CAAQ,QAAQ,CAAA;AACtC,EAAA,MAAM,QAAQ,OAAU,GAAA,QAAA,CAAS,MAAS,GAAAA,cAAA,CAAS,MAAM,QAAQ,CAAA;AACjE,EAAA,IAAI,OAAW,IAAA,QAAA,CAAS,KAAM,CAAAC,oBAAc,CAAG,EAAA;AAC7C,IAAO,OAAA,QAAA;AAAA,aACE,KAAU,KAAA,CAAA,IAAK,CAAC,OAAW,IAAAA,oBAAA,CAAe,QAAQ,CAAG,EAAA;AAC9D,IAAA,OAAO,CAAC,QAAQ,CAAA;AAAA,GAClB,MAAA,IAAW,QAAQ,CAAG,EAAA;AACpB,IAAO,OAAA,QAAA;AAAA,GACF,MAAA;AACL,IAAO,OAAA,WAAA;AAAA;AAEX;AAEa,MAAA,YAAA,GAAe,CAAC,EAAA,GAAK,EAAO,KAAA;AACvC,EAAM,MAAA,YAAA,GAAeC,aAAO,KAAK,CAAA;AACjC,EAAAC,eAAA,CAAU,MAAM;AACd,IAAQ,OAAA,CAAA,GAAA,CAAI,CAAc,WAAA,EAAA,EAAE,CAAE,CAAA,CAAA;AAC9B,IAAA,YAAA,CAAa,OAAU,GAAA,IAAA;AACvB,IAAA,OAAO,MAAM;AACX,MAAQ,OAAA,CAAA,GAAA,CAAI,CAAgB,aAAA,EAAA,EAAE,CAAE,CAAA,CAAA;AAChC,MAAA,YAAA,CAAa,OAAU,GAAA,KAAA;AAAA,KACzB;AAAA,GACF,EAAG,CAAC,EAAE,CAAC,CAAA;AAEP,EAAO,OAAA,YAAA;AACT;AAEO,MAAM,kBAAqB,GAAA,CAAI,GACpC,KAAA,OAAO,GAAQ,KAAA;AAKJ,MAAA,oBAAA,GAAuB,CAClC,KAC+B,KAAA;AAC/B,EAAA,IAAI,kBAAqB,GAAA,KAAA;AACzB,EAAA,IAAI,oBAAuB,GAAA,KAAA;AAC3B,EAAA,MAAM,iBAAiB,MAAM;AAC3B,IAAqB,kBAAA,GAAA,IAAA;AACrB,IAAA,KAAA,CAAM,cAAe,EAAA;AAAA,GACvB;AACA,EAAA,MAAM,kBAAkB,MAAM;AAC5B,IAAuB,oBAAA,GAAA,IAAA;AACvB,IAAA,KAAA,CAAM,eAAgB,EAAA;AAAA,GACxB;AACA,EAAO,OAAA;AAAA,IACL,WAAa,EAAA,KAAA;AAAA,IACb,eAAe,KAAM,CAAA,aAAA;AAAA,IACrB,QAAQ,KAAM,CAAA,MAAA;AAAA,IACd,SAAS,KAAM,CAAA,OAAA;AAAA,IACf,YAAY,KAAM,CAAA,UAAA;AAAA,IAClB,kBAAkB,KAAM,CAAA,gBAAA;AAAA,IACxB,YAAY,KAAM,CAAA,UAAA;AAAA,IAClB,WAAW,KAAM,CAAA,SAAA;AAAA,IACjB,cAAA;AAAA,IACA,oBAAoB,MAAM,kBAAA;AAAA,IAC1B,eAAA;AAAA,IACA,sBAAsB,MAAM,oBAAA;AAAA,IAC5B,SAAS,MAAM,KAAA,CAAA;AAAA,IACf,WAAW,KAAM,CAAA,SAAA;AAAA,IACjB,MAAM,KAAM,CAAA;AAAA,GACd;AACF;AAQa,MAAA,kBAAA,GAAqB,CAAI,KAAa,KAAA;AACjD,EAAM,MAAA,eAAA,GAAkBD,aAAU,KAAK,CAAA;AACvC,EAAAE,aAAA,CAAQ,MAAO,eAAgB,CAAA,OAAA,GAAU,KAAQ,EAAA,CAAC,KAAK,CAAC,CAAA;AACxD,EAAO,OAAA,eAAA;AACT;;;;;;;;"}
@@ -0,0 +1,131 @@
1
+ 'use strict';
2
+
3
+ const PUNCTUATION_STR = String.fromCharCode(8200);
4
+ const DIGIT_STR = String.fromCharCode(8199);
5
+ const DECIMALS_AUTO = -1;
6
+ const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER.toString();
7
+ const MAX_INTEGER_DIGITS = MAX_SAFE_INTEGER.length;
8
+ const exceedsMaxSafeInteger = (value) => value.length > MAX_INTEGER_DIGITS || value.length === MAX_INTEGER_DIGITS && value > MAX_SAFE_INTEGER;
9
+ const Space = {
10
+ DIGIT: DIGIT_STR,
11
+ TWO_DIGITS: DIGIT_STR + DIGIT_STR,
12
+ THREE_DIGITS: DIGIT_STR + DIGIT_STR + DIGIT_STR,
13
+ FULL_PADDING: [
14
+ null,
15
+ PUNCTUATION_STR + DIGIT_STR,
16
+ PUNCTUATION_STR + DIGIT_STR + DIGIT_STR,
17
+ PUNCTUATION_STR + DIGIT_STR + DIGIT_STR + DIGIT_STR,
18
+ PUNCTUATION_STR + DIGIT_STR + DIGIT_STR + DIGIT_STR + DIGIT_STR
19
+ ]
20
+ };
21
+ const Zero = {
22
+ DIGIT: "0",
23
+ TWO_DIGITS: "00",
24
+ THREE_DIGITS: "000",
25
+ FULL_PADDING: [null, "0", "00", "000", "0000"]
26
+ };
27
+ function padLeft(value, maxLength = 6) {
28
+ return (LEADING_FILL + value).slice(-maxLength);
29
+ }
30
+ const LEADING_FILL = DIGIT_STR + DIGIT_STR + DIGIT_STR + DIGIT_STR + DIGIT_STR + DIGIT_STR + DIGIT_STR + DIGIT_STR + DIGIT_STR;
31
+ const Align = {
32
+ Right: "right",
33
+ Center: "center",
34
+ Left: "left"
35
+ };
36
+ function pad(n, dp, Pad) {
37
+ let len = n.length;
38
+ const diff = dp - len;
39
+ if (diff > 0) {
40
+ if (diff === 1) {
41
+ n = n + Pad.DIGIT;
42
+ } else if (diff === 2) {
43
+ n = n + Pad.TWO_DIGITS;
44
+ } else if (diff === 3) {
45
+ n = n + Pad.THREE_DIGITS;
46
+ }
47
+ } else {
48
+ if (diff < 0) {
49
+ n = n.slice(0, dp);
50
+ len = dp;
51
+ }
52
+ if (Pad === Space && n.charAt(len - 1) === "0") {
53
+ n = n.replace(/0+$/, "");
54
+ return pad(n, dp, Pad);
55
+ }
56
+ }
57
+ return n;
58
+ }
59
+ function roundDecimal(value, align = Align.Right, decimals = 4, zeroPad, alignOnDecimals, useLocaleString = true, roundingRule = "round") {
60
+ if (value === void 0 || typeof value !== "number" || isNaN(value)) {
61
+ return "";
62
+ }
63
+ let integral;
64
+ let fraction;
65
+ let Pad;
66
+ const [part1, part2 = ""] = value.toString().split(".");
67
+ const actualDecimals = part2.length;
68
+ integral = part1 === "-0" ? "-0" : useLocaleString ? parseFloat(part1).toLocaleString() : parseFloat(part1).toString();
69
+ if (align === Align.Left && alignOnDecimals) {
70
+ integral = padLeft(integral);
71
+ }
72
+ if (decimals === DECIMALS_AUTO || actualDecimals === decimals) {
73
+ fraction = part2;
74
+ } else if (actualDecimals > decimals) {
75
+ if (roundingRule === "round") {
76
+ fraction = parseFloat("0." + part2).toFixed(decimals).slice(2);
77
+ } else {
78
+ fraction = part2.slice(0, decimals);
79
+ }
80
+ } else {
81
+ if (Pad = zeroPad ? Zero : alignOnDecimals && align !== Align.Left ? Space : null) {
82
+ if (actualDecimals === 0) {
83
+ fraction = Pad.FULL_PADDING[decimals] ?? "";
84
+ } else {
85
+ fraction = pad(part2, decimals, Pad);
86
+ }
87
+ } else {
88
+ fraction = part2;
89
+ }
90
+ }
91
+ return integral + (fraction ? "." + fraction : "");
92
+ }
93
+ function roundScaledDecimal(value, align = Align.Right, decimals = 4, zeroPad, alignOnDecimals, useLocaleString = true, roundingRule = "round") {
94
+ let integral;
95
+ let fraction;
96
+ let Pad;
97
+ if (value === "") {
98
+ return "";
99
+ }
100
+ const [part1, part2 = ""] = value.split(".");
101
+ const actualDecimals = part2.length;
102
+ integral = part1 === "" ? "0" : part1 === "-0" ? "-0" : useLocaleString ? exceedsMaxSafeInteger(value) ? BigInt(part1).toLocaleString() : parseFloat(part1).toLocaleString() : part1;
103
+ if (align === Align.Left && alignOnDecimals) {
104
+ integral = padLeft(integral);
105
+ }
106
+ if (decimals === DECIMALS_AUTO || actualDecimals === decimals) {
107
+ fraction = part2;
108
+ } else if (actualDecimals > decimals) {
109
+ if (roundingRule === "round") {
110
+ fraction = parseFloat("0." + part2).toFixed(decimals).slice(2);
111
+ } else {
112
+ fraction = part2.slice(0, decimals);
113
+ }
114
+ } else {
115
+ if (Pad = zeroPad ? Zero : alignOnDecimals && align !== Align.Left ? Space : null) {
116
+ if (actualDecimals === 0) {
117
+ fraction = Pad.FULL_PADDING[decimals] ?? "";
118
+ } else {
119
+ fraction = pad(part2, decimals, Pad);
120
+ }
121
+ } else {
122
+ fraction = part2;
123
+ }
124
+ }
125
+ return integral + (fraction ? "." + fraction : "");
126
+ }
127
+
128
+ exports.exceedsMaxSafeInteger = exceedsMaxSafeInteger;
129
+ exports.roundDecimal = roundDecimal;
130
+ exports.roundScaledDecimal = roundScaledDecimal;
131
+ //# sourceMappingURL=round-decimal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"round-decimal.js","sources":["../../../../../../packages/vuu-utils/src/round-decimal.ts"],"sourcesContent":["import { RoundingRule } from \"@vuu-ui/vuu-table-types\";\n\nconst PUNCTUATION_STR = String.fromCharCode(8200);\nconst DIGIT_STR = String.fromCharCode(8199);\nconst DECIMALS_AUTO = -1;\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER.toString();\nconst MAX_INTEGER_DIGITS = MAX_SAFE_INTEGER.length;\n\nexport const exceedsMaxSafeInteger = (value: string) =>\n value.length > MAX_INTEGER_DIGITS ||\n (value.length === MAX_INTEGER_DIGITS && value > MAX_SAFE_INTEGER);\n\ntype PadMap = {\n DIGIT: string;\n TWO_DIGITS: string;\n THREE_DIGITS: string;\n FULL_PADDING: [null, string, string, string, string];\n};\n\nconst Space: PadMap = {\n DIGIT: DIGIT_STR,\n TWO_DIGITS: DIGIT_STR + DIGIT_STR,\n THREE_DIGITS: DIGIT_STR + DIGIT_STR + DIGIT_STR,\n FULL_PADDING: [\n null,\n PUNCTUATION_STR + DIGIT_STR,\n PUNCTUATION_STR + DIGIT_STR + DIGIT_STR,\n PUNCTUATION_STR + DIGIT_STR + DIGIT_STR + DIGIT_STR,\n PUNCTUATION_STR + DIGIT_STR + DIGIT_STR + DIGIT_STR + DIGIT_STR,\n ],\n};\n\nconst Zero: PadMap = {\n DIGIT: \"0\",\n TWO_DIGITS: \"00\",\n THREE_DIGITS: \"000\",\n FULL_PADDING: [null, \"0\", \"00\", \"000\", \"0000\"],\n};\n\nfunction padLeft(value: string, maxLength = 6) {\n return (LEADING_FILL + value).slice(-maxLength);\n}\n\nconst LEADING_FILL =\n DIGIT_STR +\n DIGIT_STR +\n DIGIT_STR +\n DIGIT_STR +\n DIGIT_STR +\n DIGIT_STR +\n DIGIT_STR +\n DIGIT_STR +\n DIGIT_STR;\n\nconst Align = {\n Right: \"right\",\n Center: \"center\",\n Left: \"left\",\n};\n\nfunction pad(n: string, dp: number, Pad: PadMap): string {\n let len = n.length;\n const diff = dp - len;\n\n if (diff > 0) {\n if (diff === 1) {\n n = n + Pad.DIGIT;\n } else if (diff === 2) {\n n = n + Pad.TWO_DIGITS;\n } else if (diff === 3) {\n n = n + Pad.THREE_DIGITS;\n }\n } else {\n if (diff < 0) {\n n = n.slice(0, dp);\n len = dp;\n }\n\n if (Pad === Space && n.charAt(len - 1) === \"0\") {\n n = n.replace(/0+$/, \"\");\n return pad(n, dp, Pad);\n }\n }\n return n;\n}\n\nexport function roundDecimal(\n value?: number,\n align = Align.Right,\n decimals = 4,\n zeroPad?: boolean,\n alignOnDecimals?: boolean,\n useLocaleString = true,\n roundingRule: RoundingRule = \"round\",\n) {\n if (value === undefined || typeof value !== \"number\" || isNaN(value)) {\n return \"\";\n }\n let integral: string;\n let fraction: string;\n let Pad: PadMap | null;\n\n const [part1, part2 = \"\"] = value.toString().split(\".\");\n const actualDecimals = part2.length;\n\n integral =\n part1 === \"-0\"\n ? \"-0\"\n : useLocaleString\n ? parseFloat(part1).toLocaleString()\n : parseFloat(part1).toString();\n\n if (align === Align.Left && alignOnDecimals) {\n integral = padLeft(integral);\n }\n\n if (decimals === DECIMALS_AUTO || actualDecimals === decimals) {\n fraction = part2;\n } else if (actualDecimals > decimals) {\n if (roundingRule === \"round\") {\n fraction = parseFloat(\"0.\" + part2)\n .toFixed(decimals)\n .slice(2);\n } else {\n fraction = part2.slice(0, decimals);\n }\n } else {\n /* eslint-disable no-cond-assign */\n if (\n (Pad = zeroPad\n ? Zero\n : alignOnDecimals && align !== Align.Left\n ? Space\n : null)\n ) {\n if (actualDecimals === 0) {\n fraction = Pad.FULL_PADDING[decimals] ?? \"\";\n } else {\n fraction = pad(part2, decimals, Pad);\n }\n } else {\n fraction = part2;\n }\n }\n\n return integral + (fraction ? \".\" + fraction : \"\");\n}\n\nexport function roundScaledDecimal(\n value: string,\n align = Align.Right,\n decimals = 4,\n zeroPad?: boolean,\n alignOnDecimals?: boolean,\n useLocaleString = true,\n roundingRule: RoundingRule = \"round\",\n) {\n let integral: string;\n let fraction: string;\n let Pad: PadMap | null;\n\n // nulls are returned from server as empty string\n if (value === \"\") {\n return \"\";\n }\n\n const [part1, part2 = \"\"] = value.split(\".\");\n const actualDecimals = part2.length;\n\n integral =\n part1 === \"\"\n ? \"0\"\n : part1 === \"-0\"\n ? \"-0\"\n : useLocaleString\n ? exceedsMaxSafeInteger(value)\n ? BigInt(part1).toLocaleString()\n : parseFloat(part1).toLocaleString()\n : part1;\n\n if (align === Align.Left && alignOnDecimals) {\n integral = padLeft(integral);\n }\n\n if (decimals === DECIMALS_AUTO || actualDecimals === decimals) {\n fraction = part2;\n } else if (actualDecimals > decimals) {\n if (roundingRule === \"round\") {\n fraction = parseFloat(\"0.\" + part2)\n .toFixed(decimals)\n .slice(2);\n } else {\n fraction = part2.slice(0, decimals);\n }\n } else {\n /* eslint-disable no-cond-assign */\n if (\n (Pad = zeroPad\n ? Zero\n : alignOnDecimals && align !== Align.Left\n ? Space\n : null)\n ) {\n if (actualDecimals === 0) {\n fraction = Pad.FULL_PADDING[decimals] ?? \"\";\n } else {\n fraction = pad(part2, decimals, Pad);\n }\n } else {\n fraction = part2;\n }\n }\n\n return integral + (fraction ? \".\" + fraction : \"\");\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ 'use strict';
2
+
3
+ var columnUtils = require('./column-utils.js');
4
+
5
+ const { IS_LEAF, KEY, IDX, SELECTED } = columnUtils.metadataKeys;
6
+ const actualRowPositioning = (rowHeight) => [
7
+ (dataRow) => dataRow.index * rowHeight,
8
+ (position) => Math.floor(position / rowHeight),
9
+ false
10
+ ];
11
+ const virtualRowPositioning = (rowHeight, virtualisedExtent, pctScrollTop) => [
12
+ (dataRow, offset = 0) => {
13
+ const rowOffset = pctScrollTop.current * virtualisedExtent;
14
+ return (dataRow.index - offset) * rowHeight - rowOffset;
15
+ },
16
+ /*
17
+ Return index position of closest row
18
+ */
19
+ (position) => {
20
+ const rowOffset = pctScrollTop.current * virtualisedExtent;
21
+ return Math.round((position + rowOffset) / rowHeight);
22
+ },
23
+ true
24
+ ];
25
+ const asDataSourceRowObject = (row, columnMap) => {
26
+ const { [IS_LEAF]: isLeaf, [KEY]: key, [IDX]: index } = row;
27
+ const rowObject = {
28
+ key,
29
+ index,
30
+ isGroupRow: !isLeaf,
31
+ isSelected: row[SELECTED] !== 0,
32
+ data: {}
33
+ };
34
+ for (const [colName, colIdx] of Object.entries(columnMap)) {
35
+ rowObject.data[colName] = row[colIdx];
36
+ }
37
+ return rowObject;
38
+ };
39
+ const vuuRowToDataSourceRow = ({ rowIndex, rowKey, sel: isSelected = 0, ts, data }, keys) => {
40
+ return [
41
+ rowIndex,
42
+ keys.keyFor(rowIndex),
43
+ true,
44
+ false,
45
+ 0,
46
+ 0,
47
+ rowKey,
48
+ isSelected,
49
+ ts,
50
+ false
51
+ // IsNew
52
+ ].concat(data);
53
+ };
54
+
55
+ exports.actualRowPositioning = actualRowPositioning;
56
+ exports.asDataSourceRowObject = asDataSourceRowObject;
57
+ exports.virtualRowPositioning = virtualRowPositioning;
58
+ exports.vuuRowToDataSourceRow = vuuRowToDataSourceRow;
59
+ //# sourceMappingURL=row-utils.js.map
@@ -0,0 +1 @@
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":["metadataKeys"],"mappings":";;;;AAWA,MAAM,EAAE,OAAA,EAAS,GAAK,EAAA,GAAA,EAAK,UAAa,GAAAA,wBAAA;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;;;;;;;"}
@@ -0,0 +1,34 @@
1
+ 'use strict';
2
+
3
+ const deselectItem = (selectionModel, rowKey, rangeSelect, preserveExistingSelection = false) => {
4
+ return {
5
+ preserveExistingSelection,
6
+ rowKey,
7
+ type: "DESELECT_ROW"
8
+ };
9
+ };
10
+ const selectItem = (selectionModel, rowKey, rangeSelect, preserveExistingSelection = false, activeRowKey) => {
11
+ const singleSelect = selectionModel === "single" || selectionModel === "single-no-deselect";
12
+ const actsLikeSingleSelect = singleSelect || activeRowKey === void 0;
13
+ if (selectionModel === "none") {
14
+ return;
15
+ } else if (actsLikeSingleSelect) {
16
+ const preserveSelection = singleSelect ? false : preserveExistingSelection;
17
+ return {
18
+ preserveExistingSelection: preserveSelection,
19
+ rowKey,
20
+ type: "SELECT_ROW"
21
+ };
22
+ } else if (rangeSelect) {
23
+ return {
24
+ preserveExistingSelection,
25
+ fromRowKey: rowKey,
26
+ toRowKey: activeRowKey,
27
+ type: "SELECT_ROW_RANGE"
28
+ };
29
+ }
30
+ };
31
+
32
+ exports.deselectItem = deselectItem;
33
+ exports.selectItem = selectItem;
34
+ //# sourceMappingURL=selection-utils.js.map
@@ -0,0 +1 @@
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;;;;;"}
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ const VuuShellLocation = {
4
+ ContextPanel: "context-panel",
5
+ MultiWorkspaceContainer: "vuu-multi-workspace-container",
6
+ SidePanel: "vuu-side-panel",
7
+ SideToolbar: "vuu-side-toolbar",
8
+ Workspace: "vuu-workspace",
9
+ WorkspaceContainer: "vuu-workspace-container"
10
+ };
11
+
12
+ exports.VuuShellLocation = VuuShellLocation;
13
+ //# sourceMappingURL=shell-layout-types.js.map
@@ -0,0 +1 @@
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;;;;"}
@@ -0,0 +1,78 @@
1
+ 'use strict';
2
+
3
+ const cycleSortType = (sortType) => sortType === "A" ? "D" : sortType === "D" ? void 0 : "A";
4
+ const NO_SORT = { sortDefs: [] };
5
+ const toggleOrApplySort = ({ sortDefs }, { name: column }, extendSort = false, sortType) => {
6
+ if (extendSort) {
7
+ const existingDef = sortDefs.find((sortDef) => sortDef.column === column);
8
+ if (existingDef) {
9
+ return {
10
+ sortDefs: sortDefs.map(
11
+ (sortDef) => sortDef.column === column ? {
12
+ column,
13
+ sortType: sortDef.sortType === "A" ? "D" : "A"
14
+ } : sortDef
15
+ )
16
+ };
17
+ } else {
18
+ return {
19
+ sortDefs: sortDefs.concat({
20
+ column,
21
+ sortType: sortType ?? "A"
22
+ })
23
+ };
24
+ }
25
+ }
26
+ const newSortType = typeof sortType === "string" ? sortType : sortDefs.length === 1 && sortDefs[0].column === column ? cycleSortType(sortDefs[0].sortType) : "A";
27
+ return newSortType ? {
28
+ sortDefs: [{ column, sortType: newSortType }]
29
+ } : NO_SORT;
30
+ };
31
+ const setSortColumn = ({ sortDefs }, column, sortType) => {
32
+ if (sortType === void 0) {
33
+ const columnSort = sortDefs.find((item) => item.column === column.name);
34
+ if (columnSort) {
35
+ return {
36
+ sortDefs: [
37
+ {
38
+ column: column.name,
39
+ sortType: columnSort.sortType === "A" ? "D" : "A"
40
+ }
41
+ ]
42
+ };
43
+ }
44
+ }
45
+ return { sortDefs: [{ column: column.name, sortType: sortType ?? "A" }] };
46
+ };
47
+ const addSortColumn = ({ sortDefs }, column, sortType = "A") => {
48
+ const sortEntry = { column: column.name, sortType };
49
+ if (sortDefs.length > 0) {
50
+ return {
51
+ sortDefs: sortDefs.concat(sortEntry)
52
+ };
53
+ } else {
54
+ return { sortDefs: [sortEntry] };
55
+ }
56
+ };
57
+ const getSortStatus = (columnName, vuuSort) => {
58
+ if (vuuSort === void 0 || vuuSort.sortDefs.length === 0) {
59
+ return "no-sort";
60
+ } else {
61
+ const sortDef = vuuSort.sortDefs.find((sd) => sd.column === columnName);
62
+ if (sortDef) {
63
+ if (vuuSort.sortDefs.length === 1) {
64
+ return sortDef.sortType === "A" ? "single-sort-asc" : "single-sort-desc";
65
+ } else {
66
+ return sortDef.sortType === "A" ? "multi-sort-includes-column-asc" : "multi-sort-includes-column-desc";
67
+ }
68
+ } else {
69
+ return "sort-other-column";
70
+ }
71
+ }
72
+ };
73
+
74
+ exports.addSortColumn = addSortColumn;
75
+ exports.getSortStatus = getSortStatus;
76
+ exports.setSortColumn = setSortColumn;
77
+ exports.toggleOrApplySort = toggleOrApplySort;
78
+ //# sourceMappingURL=sort-utils.js.map
@@ -0,0 +1 @@
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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"}
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ const getVuuTable = (schemaTable) => {
4
+ if (schemaTable.session) {
5
+ const { module, session } = schemaTable;
6
+ return { module, table: session };
7
+ } else {
8
+ return schemaTable;
9
+ }
10
+ };
11
+
12
+ exports.getVuuTable = getVuuTable;
13
+ //# sourceMappingURL=table-schema-utils.js.map
@@ -0,0 +1 @@
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;;;;"}
@@ -0,0 +1,21 @@
1
+ 'use strict';
2
+
3
+ const lastWord = (text) => {
4
+ const trimmedText = text.trim();
5
+ const pos = trimmedText.lastIndexOf(" ");
6
+ if (pos === -1) {
7
+ return trimmedText;
8
+ } else {
9
+ return trimmedText.slice(pos + 1);
10
+ }
11
+ };
12
+ const capitalize = (text) => text.length === 0 ? "" : text[0].toUpperCase() + text.slice(1);
13
+ const regexp_worfify = /(?<!(^|[A-Z]))(?=[A-Z])|(?<!^)(?=[A-Z][a-z])/;
14
+ const wordify = (text) => {
15
+ const [firstWord, ...rest] = text.split(regexp_worfify);
16
+ return `${capitalize(firstWord)} ${rest.join(" ")}`;
17
+ };
18
+
19
+ exports.lastWord = lastWord;
20
+ exports.wordify = wordify;
21
+ //# sourceMappingURL=text-utils.js.map
@@ -0,0 +1 @@
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;;;;;"}