@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,130 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useResizeObserver.js","sources":["../../../../../../packages/vuu-utils/src/useResizeObserver.ts"],"sourcesContent":["import { RefObject, useCallback, useEffect, useRef } from \"react\";\n\nexport const WidthHeight = [\"height\", \"width\"];\nexport const WidthOnly = [\"width\"];\n\nexport type measurements<T = string | number> = {\n height?: T;\n clientHeight?: number;\n clientWidth?: number;\n contentHeight?: number;\n contentWidth?: number;\n scrollHeight?: number;\n scrollWidth?: number;\n width?: T;\n};\ntype measuredDimension = keyof measurements<number>;\n\nexport type ResizeHandler = (measurements: measurements<number>) => void;\n\ntype observedDetails = {\n onResize?: ResizeHandler;\n measurements: measurements<number>;\n};\nconst observedMap = new Map<HTMLElement, observedDetails>();\n\nconst getTargetSize = (\n element: HTMLElement,\n size: {\n height: number;\n width: number;\n contentHeight: number;\n contentWidth: number;\n },\n dimension: measuredDimension,\n): number => {\n switch (dimension) {\n case \"height\":\n return size.height;\n case \"clientHeight\":\n return Math.floor(element.clientHeight);\n case \"clientWidth\":\n return Math.floor(element.clientWidth);\n case \"contentHeight\":\n return size.contentHeight;\n case \"contentWidth\":\n return size.contentWidth;\n case \"scrollHeight\":\n return Math.ceil(Math.floor(element.scrollHeight));\n case \"scrollWidth\":\n return Math.ceil(Math.floor(element.scrollWidth));\n case \"width\":\n return size.width;\n default:\n return 0;\n }\n};\n\n// TODO should we make this create-on-demand\nconst resizeObserver = new ResizeObserver((entries: ResizeObserverEntry[]) => {\n for (const entry of entries) {\n const { target, borderBoxSize, contentBoxSize } = entry;\n const observedTarget = observedMap.get(target as HTMLElement);\n if (observedTarget) {\n const [{ blockSize: height, inlineSize: width }] = borderBoxSize;\n const [{ blockSize: contentHeight, inlineSize: contentWidth }] =\n contentBoxSize;\n const { onResize, measurements } = observedTarget;\n let sizeChanged = false;\n for (const [dimension, size] of Object.entries(measurements)) {\n const newSize = getTargetSize(\n target as HTMLElement,\n { height, width, contentHeight, contentWidth },\n dimension as measuredDimension,\n );\n\n if (newSize !== size) {\n sizeChanged = true;\n measurements[dimension as measuredDimension] = newSize;\n }\n }\n if (sizeChanged) {\n // TODO only return measured sizes\n onResize && onResize(measurements);\n }\n }\n }\n});\n\n// TODO use an optional lag (default to false) to ask to fire onResize\n// with initial size\nexport function useResizeObserver(\n ref: RefObject<Element | HTMLElement | null>,\n dimensions: readonly string[],\n onResize: ResizeHandler,\n reportInitialSize = false,\n) {\n const dimensionsRef = useRef(dimensions);\n\n const measure = useCallback((target: HTMLElement): measurements<number> => {\n const { width, height } = target.getBoundingClientRect();\n const { clientWidth: contentWidth, clientHeight: contentHeight } = target;\n const flooredHeight = Math.floor(height);\n const flooredWidth = Math.floor(width);\n\n return dimensionsRef.current.reduce(\n (map: { [key: string]: number }, dim) => {\n map[dim] = getTargetSize(\n target,\n {\n width: flooredWidth,\n height: flooredHeight,\n contentHeight,\n contentWidth,\n },\n dim as measuredDimension,\n );\n return map;\n },\n {},\n );\n }, []);\n\n // TODO use ref to store resizeHandler here\n // resize handler registered with REsizeObserver will never change\n // use ref to store user onResize callback here\n // resizeHandler will call user callback.current\n\n // Keep this effect separate in case user inadvertently passes different\n // dimensions or callback instance each time - we only ever want to\n // initiate new observation when ref changes.\n useEffect(() => {\n const target = ref.current as HTMLElement;\n async function registerObserver() {\n // Create the map entry immediately. useEffect may fire below\n // before fonts are ready and attempt to update entry\n observedMap.set(target, { measurements: {} as measurements<number> });\n // await document.fonts.ready;\n const observedTarget = observedMap.get(target);\n if (observedTarget) {\n const measurements = measure(target);\n observedTarget.measurements = measurements;\n resizeObserver.observe(target);\n if (reportInitialSize) {\n onResize(measurements);\n }\n } else {\n console.log(\n `%cuseResizeObserver an target expected to be under observation wa snot found. This warrants investigation`,\n \"font-weight:bold; color:red;\",\n );\n }\n }\n\n if (target) {\n // TODO might we want multiple callers to attach a listener to the same element ?\n if (observedMap.has(target)) {\n console.log(\n `useResizeObserver attemping to observe same element twice`,\n {\n target,\n },\n );\n // throw Error(\n // \"useResizeObserver attemping to observe same element twice\"\n // );\n }\n // TODO set a pending entry on map\n registerObserver();\n }\n return () => {\n if (target && observedMap.has(target)) {\n resizeObserver.unobserve(target);\n observedMap.delete(target);\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [measure, ref]);\n\n useEffect(() => {\n const target = ref.current as HTMLElement;\n const record = observedMap.get(target);\n if (record) {\n if (dimensionsRef.current !== dimensions) {\n dimensionsRef.current = dimensions;\n const measurements = measure(target);\n record.measurements = measurements;\n }\n // Might not have changed, but no harm ...\n record.onResize = onResize;\n }\n }, [dimensions, measure, ref, onResize]);\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { useState, useRef, useCallback } from 'react';
2
+
3
+ const isSimpleStateValue = (arg) => typeof arg !== "function";
4
+ const useStateRef = (initialValue) => {
5
+ const [value, _setValue] = useState(initialValue);
6
+ const ref = useRef(value);
7
+ const setValue = useCallback((arg) => {
8
+ if (isSimpleStateValue(arg)) {
9
+ ref.current = arg;
10
+ _setValue(arg);
11
+ } else {
12
+ const { current: prev } = ref;
13
+ ref.current = arg(prev);
14
+ _setValue(ref.current);
15
+ }
16
+ }, []);
17
+ return [ref, setValue];
18
+ };
19
+
20
+ export { useStateRef };
21
+ //# sourceMappingURL=useStateRef.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useStateRef.js","sources":["../../../../../../packages/vuu-utils/src/useStateRef.ts"],"sourcesContent":["import {\n Dispatch,\n RefObject,\n SetStateAction,\n useCallback,\n useRef,\n useState,\n} from \"react\";\n\n/**\n * Extension to useState that maintains a ref for the\n * current state value. Useful where use of the ref can\n * avoid referencing the state vale in a dependency array\n * eg on a native event handler.\n *\n * @param value the initial value to store\n */\n\nconst isSimpleStateValue = <T>(arg: SetStateAction<T>): arg is T =>\n typeof arg !== \"function\";\n\n// Keeps a ref value in sync with a state value\nexport const useStateRef = <T = string>(\n initialValue: T,\n): [RefObject<T>, Dispatch<SetStateAction<T>>] => {\n const [value, _setValue] = useState<T>(initialValue);\n const ref = useRef<T>(value);\n\n const setValue = useCallback<Dispatch<SetStateAction<T>>>((arg) => {\n if (isSimpleStateValue(arg)) {\n ref.current = arg;\n _setValue(arg);\n } else {\n const { current: prev } = ref;\n ref.current = arg(prev);\n _setValue(ref.current);\n }\n }, []);\n return [ref, setValue];\n};\n"],"names":[],"mappings":";;AAkBA,MAAM,kBAAqB,GAAA,CAAI,GAC7B,KAAA,OAAO,GAAQ,KAAA,UAAA;AAGJ,MAAA,WAAA,GAAc,CACzB,YACgD,KAAA;AAChD,EAAA,MAAM,CAAC,KAAA,EAAO,SAAS,CAAA,GAAI,SAAY,YAAY,CAAA;AACnD,EAAM,MAAA,GAAA,GAAM,OAAU,KAAK,CAAA;AAE3B,EAAM,MAAA,QAAA,GAAW,WAAyC,CAAA,CAAC,GAAQ,KAAA;AACjE,IAAI,IAAA,kBAAA,CAAmB,GAAG,CAAG,EAAA;AAC3B,MAAA,GAAA,CAAI,OAAU,GAAA,GAAA;AACd,MAAA,SAAA,CAAU,GAAG,CAAA;AAAA,KACR,MAAA;AACL,MAAM,MAAA,EAAE,OAAS,EAAA,IAAA,EAAS,GAAA,GAAA;AAC1B,MAAI,GAAA,CAAA,OAAA,GAAU,IAAI,IAAI,CAAA;AACtB,MAAA,SAAA,CAAU,IAAI,OAAO,CAAA;AAAA;AACvB,GACF,EAAG,EAAE,CAAA;AACL,EAAO,OAAA,CAAC,KAAK,QAAQ,CAAA;AACvB;;;;"}
package/package.json CHANGED
@@ -1,21 +1,20 @@
1
1
  {
2
- "version": "2.1.19-beta.2",
2
+ "version": "2.1.19-beta.3",
3
3
  "author": "heswell",
4
4
  "license": "Apache-2.0",
5
5
  "types": "types/index.d.ts",
6
- "type": "module",
7
6
  "dependencies": {
8
7
  "@salt-ds/core": "1.54.1"
9
8
  },
10
9
  "devDependencies": {
11
- "@vuu-ui/vuu-data-types": "2.1.19-beta.2",
12
- "@vuu-ui/vuu-table-types": "2.1.19-beta.2",
13
- "@vuu-ui/vuu-filter-types": "2.1.19-beta.2",
14
- "@vuu-ui/vuu-protocol-types": "2.1.19-beta.2"
10
+ "@vuu-ui/vuu-data-types": "2.1.19-beta.3",
11
+ "@vuu-ui/vuu-table-types": "2.1.19-beta.3",
12
+ "@vuu-ui/vuu-filter-types": "2.1.19-beta.3",
13
+ "@vuu-ui/vuu-protocol-types": "2.1.19-beta.3"
15
14
  },
16
15
  "peerDependencies": {
17
16
  "@internationalized/date": "^3.0.0",
18
- "@vuu-ui/vuu-filter-parser": "2.1.19-beta.2",
17
+ "@vuu-ui/vuu-filter-parser": "2.1.19-beta.3",
19
18
  "clsx": "^2.0.0",
20
19
  "react": "^19.2.3",
21
20
  "react-dom": "^19.2.3"
@@ -23,15 +22,19 @@
23
22
  "sideEffects": false,
24
23
  "files": [
25
24
  "README.md",
26
- "src",
25
+ "esm",
26
+ "cjs",
27
27
  "/types"
28
28
  ],
29
29
  "exports": {
30
30
  ".": {
31
- "import": "./src/index.js",
31
+ "require": "./cjs/packages/vuu-utils/src/index.js",
32
+ "import": "./esm/packages/vuu-utils/src/index.js",
32
33
  "types": "./types/index.d.ts"
33
34
  }
34
35
  },
35
- "module": "index.js",
36
- "name": "@vuu-ui/vuu-utils"
36
+ "main": "cjs/index.js",
37
+ "module": "esm/index.js",
38
+ "name": "@vuu-ui/vuu-utils",
39
+ "type": "module"
37
40
  }
@@ -25,8 +25,8 @@ interface ThemeProviderProps {
25
25
  theme?: string;
26
26
  themeMode?: ThemeMode;
27
27
  }
28
- export declare function ThemeProvider({ applyThemeClasses, children, theme: themeProp, themeMode: themeModeProp, density: densityProp, }: ThemeProviderProps): import("react/jsx-runtime").JSX.Element;
29
- export declare namespace ThemeProvider {
30
- var displayName: string;
31
- }
28
+ export declare const ThemeProvider: {
29
+ ({ applyThemeClasses, children, theme: themeProp, themeMode: themeModeProp, density: densityProp, }: ThemeProviderProps): import("react/jsx-runtime").JSX.Element;
30
+ displayName: string;
31
+ };
32
32
  export {};
@@ -1,4 +1,4 @@
1
- import type { DataSourceRow, DataValueType, DataValueTypeSimple, DateTimeDataValueDescriptor, SchemaColumn, TableSchema, TimeDataValueDescriptor } from "@vuu-ui/vuu-data-types";
1
+ import type { DataSourceRow, DataValueDescriptor, DataValueType, DataValueTypeSimple, DateTimeDataValueDescriptor, SchemaColumn, TableSchema, TimeDataValueDescriptor } from "@vuu-ui/vuu-data-types";
2
2
  import type { VuuAggType, VuuAggregation, VuuColumnDataType, VuuDataRowDto, VuuGroupBy, VuuSort } from "@vuu-ui/vuu-protocol-types";
3
3
  import type { ColumnAlignment, ColumnDescriptor, ColumnLayout, DataValueTypeDescriptor, ColumnTypeFormatting, ColumnTypeRendering, ColumnTypeWithValidationRules, DefaultColumnConfiguration, GroupColumnDescriptor, LookupRenderer, MappedValueTypeRenderer, PinLocation, RuntimeColumnDescriptor, TableCellRendererProps, TableConfig, TableHeadings, ValueListRenderer, DataRow } from "@vuu-ui/vuu-table-types";
4
4
  import { type CSSProperties } from "react";
@@ -30,11 +30,12 @@ export type CalculatedColumn = {
30
30
  };
31
31
  export declare const isVuuColumnDataType: (value: string | undefined | null) => value is VuuColumnDataType;
32
32
  export declare const fromServerDataType: (serverDataType: VuuColumnDataType) => DataValueTypeSimple;
33
- export declare const isTimestampColumn: ({ serverDataType }: ColumnDescriptor) => boolean;
33
+ export declare const isNanoTimestampColumn: ({ serverDataType, }: DataValueDescriptor) => boolean;
34
+ export declare const isTimestampColumn: (column: ColumnDescriptor) => boolean;
34
35
  export declare const isNumericColumn: ({ serverDataType, type }: ColumnDescriptor) => boolean;
35
36
  export declare const isDateTimeDataType: (column: ColumnDescriptor) => column is DateTimeDataValueDescriptor;
36
37
  export declare const isTimeDataType: (column: ColumnDescriptor) => column is TimeDataValueDescriptor;
37
- export declare const isDateTimeDataValue: (column: ColumnDescriptor, serverDataType?: VuuColumnDataType) => boolean;
38
+ export declare const isDateTimeDataValue: (column: ColumnDescriptor) => boolean;
38
39
  export declare const isTimeDataValue: (column?: ColumnDescriptor) => column is TimeDataValueDescriptor;
39
40
  export declare const isPinned: (column: ColumnDescriptor) => boolean;
40
41
  export declare const hasHeadings: (column: ColumnDescriptor) => boolean;
@@ -167,7 +168,7 @@ export declare const setCalculatedColumnType: (column: ColumnDescriptor, serverD
167
168
  export declare const setCalculatedColumnExpression: (column: ColumnDescriptor, expression: string) => ColumnDescriptor;
168
169
  export declare const moveColumnTo: (columns: ColumnDescriptor[], column: ColumnDescriptor, newIndex: number) => ColumnDescriptor[];
169
170
  export declare function replaceColumn<C extends ColumnDescriptor = RuntimeColumnDescriptor>(columns: readonly C[], column: C): C[];
170
- export declare const applyDefaultColumnConfig: ({ columns: columnsProp, table }: TableSchema, getDefaultColumnConfig?: DefaultColumnConfiguration, includeVuuTimestampColumns?: boolean) => readonly SchemaColumn[];
171
+ export declare const applyDefaultColumnConfig: ({ columns: columnsProp, table }: TableSchema, getDefaultColumnConfig?: DefaultColumnConfiguration, includeVuuDefaultColumns?: boolean) => readonly SchemaColumn[];
171
172
  export type columnOptions = {
172
173
  availableWidth?: number;
173
174
  columnLayout?: ColumnLayout;
@@ -1,7 +1,13 @@
1
1
  import { EditSession } from "./EditSession";
2
2
  export interface EditButtonProps {
3
3
  editSession?: EditSession;
4
- onCancel: () => void;
4
+ hasSelection?: boolean;
5
+ onCancel?: () => void;
6
+ onDelete?: () => void;
7
+ onAddRows?: () => void;
5
8
  onSave: (force?: boolean) => void;
9
+ saveLabel?: string;
10
+ confirmSave?: () => boolean | Promise<boolean>;
11
+ confirmCancel?: () => boolean | Promise<boolean>;
6
12
  }
7
- export declare const EditButtons: ({ editSession, onCancel, onSave, }: EditButtonProps) => import("react/jsx-runtime").JSX.Element;
13
+ export declare const EditButtons: ({ confirmCancel, confirmSave, editSession, hasSelection, onAddRows, onCancel, onDelete, onSave, saveLabel, }: EditButtonProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,4 +1,4 @@
1
- import { EditApi, EditSessionMode } from "@vuu-ui/vuu-data-types";
1
+ import { DeleteRowMode, EditApi, EditSessionMode } from "@vuu-ui/vuu-data-types";
2
2
  import type { VuuRowDataItemType } from "@vuu-ui/vuu-protocol-types";
3
3
  import { EventEmitter } from "../event-emitter";
4
4
  export type EditState = "clean" | "dirty" | "invalid" | "stale";
@@ -23,14 +23,23 @@ type EditSessionEvents = {
23
23
  };
24
24
  export declare class EditSession extends EventEmitter<EditSessionEvents> {
25
25
  #private;
26
- constructor(dataSource: EditApi);
26
+ constructor(dataSource: EditApi, deleteMode?: DeleteRowMode);
27
27
  get editCount(): number;
28
28
  set editCount(val: number);
29
29
  get invalidCount(): number;
30
30
  set invalidCount(val: number);
31
+ get deleteCount(): number;
32
+ set deleteCount(val: number);
33
+ get addCount(): number;
34
+ set addCount(val: number);
35
+ deleteSelectedRows(): Promise<void>;
36
+ addRows(count?: number, rowData?: Record<string, VuuRowDataItemType>): void;
37
+ restoreRows(keys: string[]): void;
38
+ hasRowChanges(key: string): boolean;
39
+ undoRowChange(key: string): Promise<void>;
31
40
  clear(): void;
32
- begin(editSessionMode?: EditSessionMode): Promise<import("@vuu-ui/vuu-data-types").DataSource | undefined>;
33
- get dataSource(): EditApi | undefined;
41
+ begin(editSessionMode?: EditSessionMode): Promise<any>;
42
+ get dataSource(): EditApi<import("@vuu-ui/vuu-data-types").DataSourceRow<VuuRowDataItemType>> | undefined;
34
43
  end(saveChanges?: boolean, force?: boolean): Promise<void>;
35
44
  get inEditMode(): boolean;
36
45
  get editState(): EditState;
@@ -1,4 +1,6 @@
1
- import { EditSessionMode, InlineEditSessionMode } from "@vuu-ui/vuu-data-types";
1
+ import { EditSessionMode, EditSessionModeAlias, InlineEditSessionMode, StandaloneEditSessionMode } from "@vuu-ui/vuu-data-types";
2
2
  import { DataRow, RuntimeColumnDescriptor } from "@vuu-ui/vuu-table-types";
3
+ export declare const toRpcEditSessionMode: (mode: EditSessionMode) => EditSessionModeAlias;
4
+ export declare const fromRpcEditSessionMode: (alias: EditSessionModeAlias) => InlineEditSessionMode | StandaloneEditSessionMode;
3
5
  export declare const isInlineEditingSession: (editSessionMode: EditSessionMode) => editSessionMode is InlineEditSessionMode;
4
6
  export declare const getVuuEditMessage: (dataRow: DataRow, column: RuntimeColumnDescriptor, originalValue: string) => import("react/jsx-runtime").JSX.Element | undefined;
@@ -1,5 +1,5 @@
1
- import { DataSource, EditSessionMode } from "@vuu-ui/vuu-data-types";
2
- import { VuuTable } from "@vuu-ui/vuu-protocol-types";
1
+ import { DataSource, DeleteRowMode, EditSessionMode } from "@vuu-ui/vuu-data-types";
2
+ import type { VuuTable } from "@vuu-ui/vuu-protocol-types";
3
3
  import { EditSession } from "./EditSession";
4
4
  export type EditMode = "edit" | "view";
5
5
  export interface EditableTableHookProps {
@@ -9,6 +9,8 @@ export interface EditableTableHookProps {
9
9
  */
10
10
  columns?: string[];
11
11
  dataSource?: DataSource;
12
+ addRowsCount?: number;
13
+ deleteMode?: DeleteRowMode;
12
14
  editSessionMode?: EditSessionMode;
13
15
  isEditMode: boolean;
14
16
  onCancel: () => void;
@@ -19,10 +21,14 @@ export interface EditableTableHookProps {
19
21
  */
20
22
  table?: VuuTable;
21
23
  }
22
- export declare const useEditableTable: ({ columns, dataSource: dataSourceProp, editSessionMode, isEditMode, onCancel, onSave, table, }: EditableTableHookProps) => {
24
+ export declare const useEditableTable: ({ addRowsCount, columns, dataSource: dataSourceProp, deleteMode, editSessionMode, isEditMode, onCancel, onSave, table, }: EditableTableHookProps) => {
23
25
  dataSource: DataSource;
24
26
  editSession: EditSession;
25
- onCancel: () => void;
27
+ hasSelection: boolean;
28
+ onAddRows: () => void;
29
+ onCancel: () => Promise<void>;
30
+ onDelete: () => Promise<void>;
26
31
  onSave: (force?: boolean) => Promise<void>;
32
+ onUndoRowChange: (key: string) => undefined;
27
33
  sessionDataSource: DataSource | undefined;
28
34
  };
@@ -5,9 +5,10 @@ export declare const UP2 = "up2";
5
5
  export declare const DOWN1 = "down1";
6
6
  export declare const DOWN2 = "down2";
7
7
  export declare const stringIsValidInt: (val: string) => boolean;
8
+ export declare const stringIsValidLong: (val: string) => boolean;
8
9
  export declare const stringIsValidDecimal: (val: string) => boolean;
9
10
  export declare const stringIsValidNumber: (val: string) => boolean;
10
- export declare const numericTypeOfStringValue: (val: string) => "NaN" | "double" | "int";
11
+ export declare const numericTypeOfStringValue: (val: string) => "int" | "double" | "NaN";
11
12
  export declare const isValidNumber: (n: unknown) => n is number;
12
13
  export declare const shallowEquals: (o1?: {
13
14
  [key: string]: unknown;
@@ -17,8 +17,8 @@ type DD = `${0}${oneToNine}` | `${1 | 2}${zeroToNine}` | `3${0 | 1}`;
17
17
  export type DateStringISO = `${YYYY}-${MM}-${DD}`;
18
18
  export declare const zeroTime: TimeString;
19
19
  export declare const zeroTimeUnit: TimeUnitValue<TimeUnit>;
20
- export declare function incrementTimeUnitValue<T extends TimeUnit>(unit: T, value: TimeUnitValue<T>): TimeUnitValue<T> | Hours;
21
- export declare function decrementTimeUnitValue<T extends TimeUnit>(unit: T, value: TimeUnitValue<T>): TimeUnitValue<T> | Hours;
20
+ export declare function incrementTimeUnitValue<T extends TimeUnit>(unit: T, value: TimeUnitValue<T>): Hours | TimeUnitValue<T>;
21
+ export declare function decrementTimeUnitValue<T extends TimeUnit>(unit: T, value: TimeUnitValue<T>): Hours | TimeUnitValue<T>;
22
22
  export declare function updateTimeString<T extends TimeUnit>(timeString: TimeString, unit: T, value: TimeUnitValue<T>): TimeString;
23
23
  export declare const isValidTimeString: (value: unknown) => value is TimeString;
24
24
  export declare function asTimeString(value: unknown, allowUndefined: false): TimeString;
@@ -29,10 +29,10 @@ export interface Time {
29
29
  seconds: number;
30
30
  asDate: (date?: Date | DateStringISO) => Date;
31
31
  }
32
- export declare function Time(timeString: TimeString): Time;
33
- export declare namespace Time {
34
- var millisToTimeString: (timestamp: number) => TimeString;
35
- var toString: (hours: number, minutes: number, seconds: number) => TimeString;
36
- var isDateInMillis: (dtInMillis: string | number) => boolean;
37
- }
32
+ export declare const Time: {
33
+ (timeString: TimeString): Time;
34
+ millisToTimeString(timestamp: number): TimeString;
35
+ toString(hours: number, minutes: number, seconds: number): TimeString;
36
+ isDateInMillis(dtInMillis: string | number): boolean;
37
+ };
38
38
  export {};
@@ -83,7 +83,7 @@ export interface FeaturePropsWithFilterTableFeature extends Omit<DynamicFeatureP
83
83
  }
84
84
  export declare const hasFilterTableFeatureProps: (props: DynamicFeatureProps) => props is FeaturePropsWithFilterTableFeature;
85
85
  export declare const isSameTable: (t1: VuuTable, t2: VuuTable) => void;
86
- export declare const byModule: (schema1: TableSchema, schema2: TableSchema) => -1 | 0 | 1;
86
+ export declare const byModule: (schema1: TableSchema, schema2: TableSchema) => 0 | 1 | -1;
87
87
  export type GetFeaturePaths = (params: {
88
88
  env: Environment;
89
89
  fileName: string;
@@ -22,21 +22,6 @@ export declare const isExtendedFilter: (f: Filter) => f is ExtendedFilter;
22
22
  export declare const applyFilterToColumns: (columns: RuntimeColumnDescriptor[], { filterStruct }: DataSourceFilter) => RuntimeColumnDescriptor[];
23
23
  export declare const isFilteredColumn: (column: RuntimeColumnDescriptor) => boolean;
24
24
  export declare const stripFilterFromColumns: (columns: RuntimeColumnDescriptor[]) => {
25
- aggregate?: import("@vuu-ui/vuu-protocol-types").VuuAggType;
26
- allowColumnHeaderMenu?: false;
27
- colHeaderContentRenderer?: string;
28
- colHeaderLabelRenderer?: string;
29
- getIcon?: (row: import("@vuu-ui/vuu-table-types").DataRow) => string | undefined;
30
- groupable?: boolean;
31
- hidden?: boolean;
32
- locked?: Exclude<import("@vuu-ui/vuu-table-types").PinLocation, "left"> | false;
33
- maxWidth?: number;
34
- minWidth?: number;
35
- pin?: import("@vuu-ui/vuu-table-types").PinLocation | false;
36
- removeable?: boolean;
37
- selected?: boolean;
38
- source?: "client" | "server";
39
- status?: import("@salt-ds/core").ValidationStatus;
40
25
  align?: "left" | "right";
41
26
  ariaColIndex: number;
42
27
  CellRenderer?: import("react").FunctionComponent<import("@vuu-ui/vuu-table-types").TableCellRendererProps>;
@@ -62,6 +47,21 @@ export declare const stripFilterFromColumns: (columns: RuntimeColumnDescriptor[]
62
47
  sorted?: import("@vuu-ui/vuu-table-types").ColumnSort;
63
48
  valueFormatter: import("@vuu-ui/vuu-table-types").ValueFormatter;
64
49
  width: number;
50
+ aggregate?: import("@vuu-ui/vuu-protocol-types").VuuAggType;
51
+ allowColumnHeaderMenu?: false;
52
+ colHeaderContentRenderer?: string;
53
+ colHeaderLabelRenderer?: string;
54
+ getIcon?: (row: import("@vuu-ui/vuu-table-types").DataRow) => string | undefined;
55
+ groupable?: boolean;
56
+ hidden?: boolean;
57
+ locked?: Exclude<import("@vuu-ui/vuu-table-types").PinLocation, "left"> | false;
58
+ maxWidth?: number;
59
+ minWidth?: number;
60
+ pin?: import("@vuu-ui/vuu-table-types").PinLocation | false;
61
+ removeable?: boolean;
62
+ selected?: boolean;
63
+ source?: "client" | "server";
64
+ status?: import("@salt-ds/core").ValidationStatus;
65
65
  editable?: boolean;
66
66
  editableBulk?: import("@vuu-ui/vuu-data-types").BulkEdit;
67
67
  name: string;
@@ -4,7 +4,7 @@ export type ValueFormatters = {
4
4
  };
5
5
  export declare const defaultValueFormatter: (value: unknown) => string;
6
6
  export declare const numericFormatter: ({ align, serverDataType, type, }: Partial<ColumnDescriptor>) => (value: unknown) => string;
7
- export declare const getValueFormatter: (column: ColumnDescriptor, serverDataType?: import("@vuu-ui/vuu-protocol-types").VuuColumnDataType | undefined) => ValueFormatter;
7
+ export declare const getValueFormatter: (column: ColumnDescriptor) => ValueFormatter;
8
8
  /**
9
9
  * Lowercases a string and returns as Lowercase typescript type
10
10
  *
package/types/index.d.ts CHANGED
@@ -74,7 +74,7 @@ export { DataContext } from "./context-definitions/DataContext";
74
74
  export * from "./context-definitions/DataProvider";
75
75
  export { DataSourceProvider, useDataSource, } from "./context-definitions/DataSourceProvider";
76
76
  export * from "./context-definitions/WorkspaceContext";
77
- export { isInlineEditingSession } from "./data-editing/edit-utils";
77
+ export { fromRpcEditSessionMode, isInlineEditingSession, toRpcEditSessionMode } from "./data-editing/edit-utils";
78
78
  export { PageVisibilityObserver } from "./PageVisibilityObserver";
79
79
  export * from "./ShellContext";
80
80
  export { ThemeLoadChecker } from "./theme-utils";
@@ -1,5 +1,5 @@
1
1
  import type { MenuRpcAction, MenuRpcResponse, OpenDialogActionWithSchema, RpcResponse, TableSchema, VuuUiMessageInRequestResponse } from "@vuu-ui/vuu-data-types";
2
- import { VuuRpcMenuRequest, OpenDialogAction, VuuRpcRequest, VuuRpcResponse, VuuRpcMenuSuccess, VuuViewportRpcTypeaheadRequest, VuuRpcServiceRequest, ViewportRpcContext, OpenComponentInDialogAction, VuuLoginSuccessResponse, SelectRequest, SelectResponse, SelectSuccessWithRowCount, VuuViewportCreateSuccessResponse, VuuViewportCreateResponse, InvalidTokenReason, InvalidSessionReason, LoginErrorMessage, RpcResult, RpcResultSuccess, RpcResultError, VuuColumnDataType, VuuNumericType, AddRowRpcServiceRequest, EndEditSessionRpcServiceRequest, EditCellRpcServiceRequest, BeginEditSessionRpcServiceRequest, ServerToClientError } from "@vuu-ui/vuu-protocol-types";
2
+ import { VuuRpcMenuRequest, OpenDialogAction, VuuRpcRequest, VuuRpcResponse, VuuRpcMenuSuccess, VuuViewportRpcTypeaheadRequest, VuuRpcServiceRequest, ViewportRpcContext, OpenComponentInDialogAction, VuuLoginSuccessResponse, SelectRequest, SelectResponse, SelectSuccessWithRowCount, VuuViewportCreateSuccessResponse, VuuViewportCreateResponse, InvalidTokenReason, InvalidSessionReason, LoginErrorMessage, RpcResult, RpcResultSuccess, RpcResultError, VuuColumnDataType, VuuNumericType, AddRowRpcServiceRequest, EndEditSessionRpcServiceRequest, EditCellRpcServiceRequest, BeginEditSessionRpcServiceRequest, UndoRowChangeRpcServiceRequest, DeleteSelectedRowsRpcServiceRequest, ServerToClientError } from "@vuu-ui/vuu-protocol-types";
3
3
  export declare const INVALID_SESSION: InvalidSessionReason;
4
4
  export declare const SESSION_LIMIT_EXCEEDED: InvalidSessionReason;
5
5
  export declare const INVALID_TOKEN: InvalidTokenReason;
@@ -38,3 +38,5 @@ export declare const isAddRowRpcRequest: (rpcRequest: VuuRpcServiceRequest) => r
38
38
  export declare const isEditCellRpcRequest: (rpcRequest: VuuRpcServiceRequest) => rpcRequest is EditCellRpcServiceRequest;
39
39
  export declare const isBeginEditSessionRpcRequest: (rpcRequest: VuuRpcServiceRequest) => rpcRequest is BeginEditSessionRpcServiceRequest;
40
40
  export declare const isEndEditSessionRpcRequest: (rpcRequest: VuuRpcServiceRequest) => rpcRequest is EndEditSessionRpcServiceRequest;
41
+ export declare const isUndoRowChangeRpcRequest: (rpcRequest: VuuRpcServiceRequest) => rpcRequest is UndoRowChangeRpcServiceRequest;
42
+ export declare const isDeleteSelectedRowsRpcRequest: (rpcRequest: VuuRpcServiceRequest) => rpcRequest is DeleteSelectedRowsRpcServiceRequest;
package/src/Clock.js DELETED
@@ -1,43 +0,0 @@
1
- class Clock {
2
- #millisSinceEpoch = 0;
3
- #showCurrentTime = false;
4
- constructor(props){
5
- const today = new Date();
6
- const offset = today.getTimezoneOffset();
7
- if (props) {
8
- const dateProvided = "number" == typeof props.year && "number" == typeof props.month && "number" == typeof props.day;
9
- const year = props.year ?? today.getFullYear();
10
- const month = void 0 !== props.month ? props.month - 1 : today.getMonth();
11
- const day = props.day ?? today.getDay();
12
- const hours = void 0 !== props.hours ? 0 === offset ? props.hours : props.hours + 1 : dateProvided ? offset ? 1 : 0 : today.getUTCHours();
13
- const minutes = props.minutes ?? (dateProvided ? 0 : today.getMinutes());
14
- const seconds = props.seconds ?? (dateProvided ? 0 : today.getSeconds());
15
- const ms = props.milliseconds ?? (dateProvided ? 0 : today.getMilliseconds());
16
- const date = new Date(year, month, day, hours, minutes, seconds, ms);
17
- this.#millisSinceEpoch = date.getTime();
18
- } else this.#millisSinceEpoch = today.getTime();
19
- }
20
- goBack(value, units = "ms") {
21
- const multiplier = "ms" === units ? 1 : "seconds" === units ? 1000 : 60000;
22
- this.#millisSinceEpoch -= value * multiplier;
23
- return this;
24
- }
25
- advance(value, units = "ms") {
26
- const multiplier = "ms" === units ? 1 : "seconds" === units ? 1000 : 60000;
27
- this.#millisSinceEpoch += value * multiplier;
28
- return this;
29
- }
30
- set showCurrentTime(value) {
31
- this.#showCurrentTime = value;
32
- }
33
- toString() {
34
- return new Date(this.now).toISOString();
35
- }
36
- get now() {
37
- return this.#showCurrentTime ? new Date().getTime() : this.#millisSinceEpoch;
38
- }
39
- get date() {
40
- return this.#showCurrentTime ? new Date() : new Date(this.#millisSinceEpoch);
41
- }
42
- }
43
- export { Clock };
@@ -1,42 +0,0 @@
1
- import { EventEmitter } from "./event-emitter.js";
2
- const defaultProps = {};
3
- class PageVisibilityObserver extends EventEmitter {
4
- #inactiveTimeoutMs;
5
- #inactivityTimer;
6
- #hidden;
7
- visibilityChangeHandler = ()=>{
8
- this.hidden = document.hidden;
9
- };
10
- constructor({ inactiveTimeout = 0, onHidden, onInactiveTimeout, onVisibilityChange, onVisible } = defaultProps){
11
- super();
12
- this.#hidden = document.hidden;
13
- this.#inactiveTimeoutMs = 1000 * inactiveTimeout;
14
- if (onInactiveTimeout) this.on("inactive-timeout", onInactiveTimeout);
15
- if (onHidden) this.on("hidden", onHidden);
16
- if (onVisible) this.on("visible", onVisible);
17
- if (onVisibilityChange) this.on("visibilityChange", onVisibilityChange);
18
- document.addEventListener("visibilitychange", this.visibilityChangeHandler);
19
- }
20
- clear() {
21
- document.removeEventListener("visibilitychange", this.visibilityChangeHandler);
22
- }
23
- set hidden(hidden) {
24
- if (hidden !== this.#hidden) {
25
- this.#hidden = hidden;
26
- if (document.hidden) {
27
- this.emit("hidden");
28
- if (this.#inactiveTimeoutMs) this.#inactivityTimer = setTimeout(()=>{
29
- this.emit("inactive-timeout");
30
- }, this.#inactiveTimeoutMs);
31
- } else {
32
- this.emit("visible");
33
- if (this.#inactivityTimer) {
34
- clearTimeout(this.#inactivityTimer);
35
- this.#inactivityTimer = void 0;
36
- }
37
- }
38
- this.emit("visibilityChange", hidden);
39
- }
40
- }
41
- }
42
- export { PageVisibilityObserver };
@@ -1,32 +0,0 @@
1
- const scaledDecimals = (fraction, decimals)=>{
2
- if (fraction.length > decimals) return fraction.slice(0, decimals);
3
- if (fraction.length === decimals) return fraction;
4
- return fraction.padEnd(decimals, "0");
5
- };
6
- class ScaledDecimal {
7
- value;
8
- decimals;
9
- constructor(value, decimals = 6){
10
- this.value = value;
11
- this.decimals = decimals;
12
- console.log(`create a scaled decimal ${value} (${decimals} decimals)`);
13
- }
14
- get asLong() {
15
- if ("" === this.value) return "";
16
- {
17
- const [integral, fraction = "0"] = this.value.split(".");
18
- return `${integral}${scaledDecimals(fraction, this.decimals)}`;
19
- }
20
- }
21
- toJSON() {
22
- return this.value;
23
- }
24
- toString() {
25
- return this.value;
26
- }
27
- }
28
- const ScaledDecimal2 = (value)=>new ScaledDecimal(value, 2);
29
- const ScaledDecimal4 = (value)=>new ScaledDecimal(value, 4);
30
- const ScaledDecimal6 = (value)=>new ScaledDecimal(value, 6);
31
- const ScaledDecimal8 = (value)=>new ScaledDecimal(value, 8);
32
- export { ScaledDecimal, ScaledDecimal2, ScaledDecimal4, ScaledDecimal6, ScaledDecimal8 };
@@ -1,5 +0,0 @@
1
- import { createContext, useContext } from "react";
2
- const defaultConfig = {};
3
- const ShellContext = createContext(defaultConfig);
4
- const useShellContext = ()=>useContext(ShellContext);
5
- export { ShellContext, useShellContext };