@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.
- package/cjs/node_modules/@dnd-kit/abstract/index.js +1488 -0
- package/cjs/node_modules/@dnd-kit/abstract/index.js.map +1 -0
- package/cjs/node_modules/@dnd-kit/abstract/modifiers.js +85 -0
- package/cjs/node_modules/@dnd-kit/abstract/modifiers.js.map +1 -0
- package/cjs/node_modules/@dnd-kit/collision/dist/index.js +91 -0
- package/cjs/node_modules/@dnd-kit/collision/dist/index.js.map +1 -0
- package/cjs/node_modules/@dnd-kit/dom/index.js +1991 -0
- package/cjs/node_modules/@dnd-kit/dom/index.js.map +1 -0
- package/cjs/node_modules/@dnd-kit/dom/sortable.js +828 -0
- package/cjs/node_modules/@dnd-kit/dom/sortable.js.map +1 -0
- package/cjs/node_modules/@dnd-kit/dom/utilities.js +1389 -0
- package/cjs/node_modules/@dnd-kit/dom/utilities.js.map +1 -0
- package/cjs/node_modules/@dnd-kit/geometry/dist/index.js +310 -0
- package/cjs/node_modules/@dnd-kit/geometry/dist/index.js.map +1 -0
- package/cjs/node_modules/@dnd-kit/react/hooks.js +134 -0
- package/cjs/node_modules/@dnd-kit/react/hooks.js.map +1 -0
- package/cjs/node_modules/@dnd-kit/react/index.js +398 -0
- package/cjs/node_modules/@dnd-kit/react/index.js.map +1 -0
- package/cjs/node_modules/@dnd-kit/react/sortable.js +177 -0
- package/cjs/node_modules/@dnd-kit/react/sortable.js.map +1 -0
- package/cjs/node_modules/@dnd-kit/react/utilities.js +19 -0
- package/cjs/node_modules/@dnd-kit/react/utilities.js.map +1 -0
- package/cjs/node_modules/@dnd-kit/state/dist/index.js +280 -0
- package/cjs/node_modules/@dnd-kit/state/dist/index.js.map +1 -0
- package/cjs/node_modules/@preact/signals-core/dist/signals-core.js +11 -0
- package/cjs/node_modules/@preact/signals-core/dist/signals-core.js.map +1 -0
- package/cjs/packages/vuu-utils/src/Clock.js +62 -0
- package/cjs/packages/vuu-utils/src/Clock.js.map +1 -0
- package/cjs/packages/vuu-utils/src/PageVisibilityObserver.js +80 -0
- package/cjs/packages/vuu-utils/src/PageVisibilityObserver.js.map +1 -0
- package/cjs/packages/vuu-utils/src/ScaledDecimal.js +43 -0
- package/cjs/packages/vuu-utils/src/ScaledDecimal.js.map +1 -0
- package/cjs/packages/vuu-utils/src/ShellContext.js +13 -0
- package/cjs/packages/vuu-utils/src/ShellContext.js.map +1 -0
- package/cjs/packages/vuu-utils/src/ThemeProvider.js +85 -0
- package/cjs/packages/vuu-utils/src/ThemeProvider.js.map +1 -0
- package/cjs/packages/vuu-utils/src/array-utils.js +87 -0
- package/cjs/packages/vuu-utils/src/array-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/box-utils.js +53 -0
- package/cjs/packages/vuu-utils/src/box-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/column-utils.js +1066 -0
- package/cjs/packages/vuu-utils/src/column-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/common-types.js +15 -0
- package/cjs/packages/vuu-utils/src/common-types.js.map +1 -0
- package/cjs/packages/vuu-utils/src/component-registry.js +144 -0
- package/cjs/packages/vuu-utils/src/component-registry.js.map +1 -0
- package/cjs/packages/vuu-utils/src/context-definitions/DataContext.js +21 -0
- package/cjs/packages/vuu-utils/src/context-definitions/DataContext.js.map +1 -0
- package/cjs/packages/vuu-utils/src/context-definitions/DataProvider.js +19 -0
- package/cjs/packages/vuu-utils/src/context-definitions/DataProvider.js.map +1 -0
- package/cjs/packages/vuu-utils/src/context-definitions/DataSourceProvider.js +33 -0
- package/cjs/packages/vuu-utils/src/context-definitions/DataSourceProvider.js.map +1 -0
- package/cjs/packages/vuu-utils/src/context-definitions/WorkspaceContext.js +20 -0
- package/cjs/packages/vuu-utils/src/context-definitions/WorkspaceContext.js.map +1 -0
- package/cjs/packages/vuu-utils/src/cookie-utils.js +22 -0
- package/cjs/packages/vuu-utils/src/cookie-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/css-utils.js +9 -0
- package/cjs/packages/vuu-utils/src/css-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/data-editing/DataEditingProvider.js +28 -0
- package/cjs/packages/vuu-utils/src/data-editing/DataEditingProvider.js.map +1 -0
- package/cjs/packages/vuu-utils/src/data-editing/EditButtons.js +64 -0
- package/cjs/packages/vuu-utils/src/data-editing/EditButtons.js.map +1 -0
- package/cjs/packages/vuu-utils/src/data-editing/EditSession.js +312 -0
- package/cjs/packages/vuu-utils/src/data-editing/EditSession.js.map +1 -0
- package/cjs/packages/vuu-utils/src/data-editing/edit-utils.js +51 -0
- package/cjs/packages/vuu-utils/src/data-editing/edit-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/data-editing/useEditableTable.js +107 -0
- package/cjs/packages/vuu-utils/src/data-editing/useEditableTable.js.map +1 -0
- package/cjs/packages/vuu-utils/src/data-utils.js +110 -0
- package/cjs/packages/vuu-utils/src/data-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/datasource/BaseDataSource.js +317 -0
- package/cjs/packages/vuu-utils/src/datasource/BaseDataSource.js.map +1 -0
- package/cjs/packages/vuu-utils/src/datasource/datasource-action-utils.js +14 -0
- package/cjs/packages/vuu-utils/src/datasource/datasource-action-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/datasource/datasource-filter-utils.js +40 -0
- package/cjs/packages/vuu-utils/src/datasource/datasource-filter-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/datasource/datasource-utils.js +218 -0
- package/cjs/packages/vuu-utils/src/datasource/datasource-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/date/date-utils.js +131 -0
- package/cjs/packages/vuu-utils/src/date/date-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/date/dateTimePattern.js +26 -0
- package/cjs/packages/vuu-utils/src/date/dateTimePattern.js.map +1 -0
- package/cjs/packages/vuu-utils/src/date/formatter.js +82 -0
- package/cjs/packages/vuu-utils/src/date/formatter.js.map +1 -0
- package/cjs/packages/vuu-utils/src/date/types.js +32 -0
- package/cjs/packages/vuu-utils/src/date/types.js.map +1 -0
- package/cjs/packages/vuu-utils/src/debug-utils.js +34 -0
- package/cjs/packages/vuu-utils/src/debug-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/event-emitter.js +113 -0
- package/cjs/packages/vuu-utils/src/event-emitter.js.map +1 -0
- package/cjs/packages/vuu-utils/src/feature-utils.js +139 -0
- package/cjs/packages/vuu-utils/src/feature-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/filters/filter-utils.js +182 -0
- package/cjs/packages/vuu-utils/src/filters/filter-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/filters/filterAsQuery.js +69 -0
- package/cjs/packages/vuu-utils/src/filters/filterAsQuery.js.map +1 -0
- package/cjs/packages/vuu-utils/src/form-utils.js +123 -0
- package/cjs/packages/vuu-utils/src/form-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/formatting-utils.js +114 -0
- package/cjs/packages/vuu-utils/src/formatting-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/getUniqueId.js +6 -0
- package/cjs/packages/vuu-utils/src/getUniqueId.js.map +1 -0
- package/cjs/packages/vuu-utils/src/group-utils.js +27 -0
- package/cjs/packages/vuu-utils/src/group-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/html-utils.js +162 -0
- package/cjs/packages/vuu-utils/src/html-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/index.js +481 -0
- package/cjs/packages/vuu-utils/src/index.js.map +1 -0
- package/cjs/packages/vuu-utils/src/input-utils.js +10 -0
- package/cjs/packages/vuu-utils/src/input-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/invariant.js +13 -0
- package/cjs/packages/vuu-utils/src/invariant.js.map +1 -0
- package/cjs/packages/vuu-utils/src/itemToString.js +23 -0
- package/cjs/packages/vuu-utils/src/itemToString.js.map +1 -0
- package/cjs/packages/vuu-utils/src/json-utils.js +105 -0
- package/cjs/packages/vuu-utils/src/json-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/keyboard-utils.js +30 -0
- package/cjs/packages/vuu-utils/src/keyboard-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/keyset.js +72 -0
- package/cjs/packages/vuu-utils/src/keyset.js.map +1 -0
- package/cjs/packages/vuu-utils/src/list-utils.js +11 -0
- package/cjs/packages/vuu-utils/src/list-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/local-storage-utils.js +35 -0
- package/cjs/packages/vuu-utils/src/local-storage-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/logging-utils.js +65 -0
- package/cjs/packages/vuu-utils/src/logging-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/module-utils.js +6 -0
- package/cjs/packages/vuu-utils/src/module-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/nanoid/index.js +22 -0
- package/cjs/packages/vuu-utils/src/nanoid/index.js.map +1 -0
- package/cjs/packages/vuu-utils/src/perf-utils.js +35 -0
- package/cjs/packages/vuu-utils/src/perf-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/promise-utils.js +42 -0
- package/cjs/packages/vuu-utils/src/promise-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/protocol-message-utils.js +108 -0
- package/cjs/packages/vuu-utils/src/protocol-message-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/range-utils.js +115 -0
- package/cjs/packages/vuu-utils/src/range-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/react-utils.js +72 -0
- package/cjs/packages/vuu-utils/src/react-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/round-decimal.js +131 -0
- package/cjs/packages/vuu-utils/src/round-decimal.js.map +1 -0
- package/cjs/packages/vuu-utils/src/row-utils.js +59 -0
- package/cjs/packages/vuu-utils/src/row-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/selection-utils.js +34 -0
- package/cjs/packages/vuu-utils/src/selection-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/shell-layout-types.js +13 -0
- package/cjs/packages/vuu-utils/src/shell-layout-types.js.map +1 -0
- package/cjs/packages/vuu-utils/src/sort-utils.js +78 -0
- package/cjs/packages/vuu-utils/src/sort-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/table-schema-utils.js +13 -0
- package/cjs/packages/vuu-utils/src/table-schema-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/text-utils.js +21 -0
- package/cjs/packages/vuu-utils/src/text-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/theme-utils.js +36 -0
- package/cjs/packages/vuu-utils/src/theme-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/tree-utils.js +114 -0
- package/cjs/packages/vuu-utils/src/tree-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/ts-utils.js +12 -0
- package/cjs/packages/vuu-utils/src/ts-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/typeahead-utils.js +6 -0
- package/cjs/packages/vuu-utils/src/typeahead-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/url-utils.js +21 -0
- package/cjs/packages/vuu-utils/src/url-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/useId.js +9 -0
- package/cjs/packages/vuu-utils/src/useId.js.map +1 -0
- package/cjs/packages/vuu-utils/src/useLayoutEffectSkipFirst.js +17 -0
- package/cjs/packages/vuu-utils/src/useLayoutEffectSkipFirst.js.map +1 -0
- package/cjs/packages/vuu-utils/src/useResizeObserver.js +134 -0
- package/cjs/packages/vuu-utils/src/useResizeObserver.js.map +1 -0
- package/cjs/packages/vuu-utils/src/useStateRef.js +23 -0
- package/cjs/packages/vuu-utils/src/useStateRef.js.map +1 -0
- package/esm/node_modules/@dnd-kit/abstract/index.js +1472 -0
- package/esm/node_modules/@dnd-kit/abstract/index.js.map +1 -0
- package/esm/node_modules/@dnd-kit/abstract/modifiers.js +82 -0
- package/esm/node_modules/@dnd-kit/abstract/modifiers.js.map +1 -0
- package/esm/node_modules/@dnd-kit/collision/dist/index.js +86 -0
- package/esm/node_modules/@dnd-kit/collision/dist/index.js.map +1 -0
- package/esm/node_modules/@dnd-kit/dom/index.js +1977 -0
- package/esm/node_modules/@dnd-kit/dom/index.js.map +1 -0
- package/esm/node_modules/@dnd-kit/dom/sortable.js +822 -0
- package/esm/node_modules/@dnd-kit/dom/sortable.js.map +1 -0
- package/esm/node_modules/@dnd-kit/dom/utilities.js +1344 -0
- package/esm/node_modules/@dnd-kit/dom/utilities.js.map +1 -0
- package/esm/node_modules/@dnd-kit/geometry/dist/index.js +303 -0
- package/esm/node_modules/@dnd-kit/geometry/dist/index.js.map +1 -0
- package/esm/node_modules/@dnd-kit/react/hooks.js +126 -0
- package/esm/node_modules/@dnd-kit/react/hooks.js.map +1 -0
- package/esm/node_modules/@dnd-kit/react/index.js +392 -0
- package/esm/node_modules/@dnd-kit/react/index.js.map +1 -0
- package/esm/node_modules/@dnd-kit/react/sortable.js +175 -0
- package/esm/node_modules/@dnd-kit/react/sortable.js.map +1 -0
- package/esm/node_modules/@dnd-kit/react/utilities.js +17 -0
- package/esm/node_modules/@dnd-kit/react/utilities.js.map +1 -0
- package/esm/node_modules/@dnd-kit/state/dist/index.js +266 -0
- package/esm/node_modules/@dnd-kit/state/dist/index.js.map +1 -0
- package/esm/node_modules/@preact/signals-core/dist/signals-core.js +4 -0
- package/esm/node_modules/@preact/signals-core/dist/signals-core.js.map +1 -0
- package/esm/packages/vuu-utils/src/Clock.js +60 -0
- package/esm/packages/vuu-utils/src/Clock.js.map +1 -0
- package/esm/packages/vuu-utils/src/PageVisibilityObserver.js +78 -0
- package/esm/packages/vuu-utils/src/PageVisibilityObserver.js.map +1 -0
- package/esm/packages/vuu-utils/src/ScaledDecimal.js +37 -0
- package/esm/packages/vuu-utils/src/ScaledDecimal.js.map +1 -0
- package/esm/packages/vuu-utils/src/ShellContext.js +10 -0
- package/esm/packages/vuu-utils/src/ShellContext.js.map +1 -0
- package/esm/packages/vuu-utils/src/ThemeProvider.js +78 -0
- package/esm/packages/vuu-utils/src/ThemeProvider.js.map +1 -0
- package/esm/packages/vuu-utils/src/array-utils.js +79 -0
- package/esm/packages/vuu-utils/src/array-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/box-utils.js +47 -0
- package/esm/packages/vuu-utils/src/box-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/column-utils.js +978 -0
- package/esm/packages/vuu-utils/src/column-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/common-types.js +13 -0
- package/esm/packages/vuu-utils/src/common-types.js.map +1 -0
- package/esm/packages/vuu-utils/src/component-registry.js +128 -0
- package/esm/packages/vuu-utils/src/component-registry.js.map +1 -0
- package/esm/packages/vuu-utils/src/context-definitions/DataContext.js +18 -0
- package/esm/packages/vuu-utils/src/context-definitions/DataContext.js.map +1 -0
- package/esm/packages/vuu-utils/src/context-definitions/DataProvider.js +16 -0
- package/esm/packages/vuu-utils/src/context-definitions/DataProvider.js.map +1 -0
- package/esm/packages/vuu-utils/src/context-definitions/DataSourceProvider.js +29 -0
- package/esm/packages/vuu-utils/src/context-definitions/DataSourceProvider.js.map +1 -0
- package/esm/packages/vuu-utils/src/context-definitions/WorkspaceContext.js +17 -0
- package/esm/packages/vuu-utils/src/context-definitions/WorkspaceContext.js.map +1 -0
- package/esm/packages/vuu-utils/src/cookie-utils.js +19 -0
- package/esm/packages/vuu-utils/src/cookie-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/css-utils.js +7 -0
- package/esm/packages/vuu-utils/src/css-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/data-editing/DataEditingProvider.js +25 -0
- package/esm/packages/vuu-utils/src/data-editing/DataEditingProvider.js.map +1 -0
- package/esm/packages/vuu-utils/src/data-editing/EditButtons.js +62 -0
- package/esm/packages/vuu-utils/src/data-editing/EditButtons.js.map +1 -0
- package/esm/packages/vuu-utils/src/data-editing/EditSession.js +309 -0
- package/esm/packages/vuu-utils/src/data-editing/EditSession.js.map +1 -0
- package/esm/packages/vuu-utils/src/data-editing/edit-utils.js +46 -0
- package/esm/packages/vuu-utils/src/data-editing/edit-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/data-editing/useEditableTable.js +105 -0
- package/esm/packages/vuu-utils/src/data-editing/useEditableTable.js.map +1 -0
- package/esm/packages/vuu-utils/src/data-utils.js +95 -0
- package/esm/packages/vuu-utils/src/data-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/datasource/BaseDataSource.js +314 -0
- package/esm/packages/vuu-utils/src/datasource/BaseDataSource.js.map +1 -0
- package/esm/packages/vuu-utils/src/datasource/datasource-action-utils.js +8 -0
- package/esm/packages/vuu-utils/src/datasource/datasource-action-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/datasource/datasource-filter-utils.js +38 -0
- package/esm/packages/vuu-utils/src/datasource/datasource-filter-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/datasource/datasource-utils.js +193 -0
- package/esm/packages/vuu-utils/src/datasource/datasource-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/date/date-utils.js +121 -0
- package/esm/packages/vuu-utils/src/date/date-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/date/dateTimePattern.js +22 -0
- package/esm/packages/vuu-utils/src/date/dateTimePattern.js.map +1 -0
- package/esm/packages/vuu-utils/src/date/formatter.js +79 -0
- package/esm/packages/vuu-utils/src/date/formatter.js.map +1 -0
- package/esm/packages/vuu-utils/src/date/types.js +26 -0
- package/esm/packages/vuu-utils/src/date/types.js.map +1 -0
- package/esm/packages/vuu-utils/src/debug-utils.js +32 -0
- package/esm/packages/vuu-utils/src/debug-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/event-emitter.js +111 -0
- package/esm/packages/vuu-utils/src/event-emitter.js.map +1 -0
- package/esm/packages/vuu-utils/src/feature-utils.js +125 -0
- package/esm/packages/vuu-utils/src/feature-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/filters/filter-utils.js +159 -0
- package/esm/packages/vuu-utils/src/filters/filter-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/filters/filterAsQuery.js +65 -0
- package/esm/packages/vuu-utils/src/filters/filterAsQuery.js.map +1 -0
- package/esm/packages/vuu-utils/src/form-utils.js +116 -0
- package/esm/packages/vuu-utils/src/form-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/formatting-utils.js +109 -0
- package/esm/packages/vuu-utils/src/formatting-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/getUniqueId.js +4 -0
- package/esm/packages/vuu-utils/src/getUniqueId.js.map +1 -0
- package/esm/packages/vuu-utils/src/group-utils.js +23 -0
- package/esm/packages/vuu-utils/src/group-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/html-utils.js +145 -0
- package/esm/packages/vuu-utils/src/html-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/index.js +77 -0
- package/esm/packages/vuu-utils/src/index.js.map +1 -0
- package/esm/packages/vuu-utils/src/input-utils.js +7 -0
- package/esm/packages/vuu-utils/src/input-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/invariant.js +11 -0
- package/esm/packages/vuu-utils/src/invariant.js.map +1 -0
- package/esm/packages/vuu-utils/src/itemToString.js +21 -0
- package/esm/packages/vuu-utils/src/itemToString.js.map +1 -0
- package/esm/packages/vuu-utils/src/json-utils.js +103 -0
- package/esm/packages/vuu-utils/src/json-utils.js.map +1 -0
- package/{src → esm/packages/vuu-utils/src}/keyboard-utils.js +3 -1
- package/esm/packages/vuu-utils/src/keyboard-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/keyset.js +70 -0
- package/esm/packages/vuu-utils/src/keyset.js.map +1 -0
- package/esm/packages/vuu-utils/src/list-utils.js +9 -0
- package/esm/packages/vuu-utils/src/list-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/local-storage-utils.js +30 -0
- package/esm/packages/vuu-utils/src/local-storage-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/logging-utils.js +61 -0
- package/esm/packages/vuu-utils/src/logging-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/module-utils.js +4 -0
- package/esm/packages/vuu-utils/src/module-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/nanoid/index.js +20 -0
- package/esm/packages/vuu-utils/src/nanoid/index.js.map +1 -0
- package/esm/packages/vuu-utils/src/perf-utils.js +32 -0
- package/esm/packages/vuu-utils/src/perf-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/promise-utils.js +40 -0
- package/esm/packages/vuu-utils/src/promise-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/protocol-message-utils.js +77 -0
- package/esm/packages/vuu-utils/src/protocol-message-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/range-utils.js +108 -0
- package/esm/packages/vuu-utils/src/range-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/react-utils.js +66 -0
- package/esm/packages/vuu-utils/src/react-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/round-decimal.js +127 -0
- package/esm/packages/vuu-utils/src/round-decimal.js.map +1 -0
- package/esm/packages/vuu-utils/src/row-utils.js +54 -0
- package/esm/packages/vuu-utils/src/row-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/selection-utils.js +31 -0
- package/esm/packages/vuu-utils/src/selection-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/shell-layout-types.js +11 -0
- package/esm/packages/vuu-utils/src/shell-layout-types.js.map +1 -0
- package/esm/packages/vuu-utils/src/sort-utils.js +73 -0
- package/esm/packages/vuu-utils/src/sort-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/table-schema-utils.js +11 -0
- package/esm/packages/vuu-utils/src/table-schema-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/text-utils.js +18 -0
- package/esm/packages/vuu-utils/src/text-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/theme-utils.js +34 -0
- package/esm/packages/vuu-utils/src/theme-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/tree-utils.js +108 -0
- package/esm/packages/vuu-utils/src/tree-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/ts-utils.js +8 -0
- package/esm/packages/vuu-utils/src/ts-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/typeahead-utils.js +4 -0
- package/esm/packages/vuu-utils/src/typeahead-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/url-utils.js +18 -0
- package/esm/packages/vuu-utils/src/url-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/useId.js +7 -0
- package/esm/packages/vuu-utils/src/useId.js.map +1 -0
- package/esm/packages/vuu-utils/src/useLayoutEffectSkipFirst.js +15 -0
- package/esm/packages/vuu-utils/src/useLayoutEffectSkipFirst.js.map +1 -0
- package/esm/packages/vuu-utils/src/useResizeObserver.js +130 -0
- package/esm/packages/vuu-utils/src/useResizeObserver.js.map +1 -0
- package/esm/packages/vuu-utils/src/useStateRef.js +21 -0
- package/esm/packages/vuu-utils/src/useStateRef.js.map +1 -0
- package/package.json +14 -11
- package/types/ThemeProvider.d.ts +4 -4
- package/types/column-utils.d.ts +5 -4
- package/types/data-editing/EditButtons.d.ts +8 -2
- package/types/data-editing/EditSession.d.ts +13 -4
- package/types/data-editing/edit-utils.d.ts +3 -1
- package/types/data-editing/useEditableTable.d.ts +10 -4
- package/types/data-utils.d.ts +2 -1
- package/types/date/date-utils.d.ts +8 -8
- package/types/feature-utils.d.ts +1 -1
- package/types/filters/filter-utils.d.ts +15 -15
- package/types/formatting-utils.d.ts +1 -1
- package/types/index.d.ts +1 -1
- package/types/protocol-message-utils.d.ts +3 -1
- package/src/Clock.js +0 -43
- package/src/PageVisibilityObserver.js +0 -42
- package/src/ScaledDecimal.js +0 -32
- package/src/ShellContext.js +0 -5
- package/src/ThemeProvider.js +0 -56
- package/src/array-utils.js +0 -51
- package/src/box-utils.js +0 -51
- package/src/broadcast-channel.js +0 -0
- package/src/column-utils.js +0 -790
- package/src/common-types.js +0 -11
- package/src/component-registry.js +0 -83
- package/src/context-definitions/DataContext.js +0 -15
- package/src/context-definitions/DataProvider.js +0 -13
- package/src/context-definitions/DataSourceProvider.js +0 -18
- package/src/context-definitions/WorkspaceContext.js +0 -14
- package/src/cookie-utils.js +0 -15
- package/src/css-utils.js +0 -5
- package/src/data-editing/DataEditingProvider.js +0 -13
- package/src/data-editing/EditButtons.js +0 -32
- package/src/data-editing/EditModeProvider.js +0 -18
- package/src/data-editing/EditSession.js +0 -149
- package/src/data-editing/edit-utils.js +0 -37
- package/src/data-editing/useEditableTable.js +0 -76
- package/src/data-utils.js +0 -55
- package/src/datasource/BaseDataSource.js +0 -233
- package/src/datasource/datasource-action-utils.js +0 -6
- package/src/datasource/datasource-filter-utils.js +0 -27
- package/src/datasource/datasource-utils.js +0 -148
- package/src/date/date-utils.js +0 -80
- package/src/date/dateTimePattern.js +0 -17
- package/src/date/formatter.js +0 -101
- package/src/date/index.js +0 -4
- package/src/date/types.js +0 -27
- package/src/debug-utils.js +0 -25
- package/src/event-emitter.js +0 -78
- package/src/feature-utils.js +0 -86
- package/src/filters/filter-utils.js +0 -136
- package/src/filters/filterAsQuery.js +0 -70
- package/src/filters/index.js +0 -2
- package/src/form-utils.js +0 -69
- package/src/formatting-utils.js +0 -42
- package/src/getUniqueId.js +0 -2
- package/src/group-utils.js +0 -16
- package/src/html-utils.js +0 -108
- package/src/index.js +0 -77
- package/src/input-utils.js +0 -3
- package/src/invariant.js +0 -9
- package/src/itemToString.js +0 -9
- package/src/json-types.js +0 -0
- package/src/json-utils.js +0 -108
- package/src/keyset.js +0 -57
- package/src/layout-types.js +0 -0
- package/src/list-utils.js +0 -5
- package/src/local-storage-utils.js +0 -23
- package/src/logging-utils.js +0 -52
- package/src/module-utils.js +0 -2
- package/src/nanoid/index.js +0 -13
- package/src/perf-utils.js +0 -28
- package/src/promise-utils.js +0 -26
- package/src/protocol-message-utils.js +0 -68
- package/src/range-utils.js +0 -109
- package/src/react-utils.js +0 -64
- package/src/round-decimal.js +0 -83
- package/src/row-utils.js +0 -43
- package/src/selection-utils.js +0 -25
- package/src/shell-layout-types.js +0 -9
- package/src/sort-utils.js +0 -75
- package/src/table-schema-utils.js +0 -11
- package/src/text-utils.js +0 -13
- package/src/theme-utils.js +0 -21
- package/src/tree-types.js +0 -0
- package/src/tree-utils.js +0 -96
- package/src/ts-utils.js +0 -6
- package/src/typeahead-utils.js +0 -4
- package/src/url-utils.js +0 -12
- package/src/useId.js +0 -6
- package/src/useLayoutEffectSkipFirst.js +0 -9
- package/src/useResizeObserver.js +0 -122
- package/src/useStateRef.js +0 -21
- 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
|
+
"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.
|
|
12
|
-
"@vuu-ui/vuu-table-types": "2.1.19-beta.
|
|
13
|
-
"@vuu-ui/vuu-filter-types": "2.1.19-beta.
|
|
14
|
-
"@vuu-ui/vuu-protocol-types": "2.1.19-beta.
|
|
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.
|
|
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
|
-
"
|
|
25
|
+
"esm",
|
|
26
|
+
"cjs",
|
|
27
27
|
"/types"
|
|
28
28
|
],
|
|
29
29
|
"exports": {
|
|
30
30
|
".": {
|
|
31
|
-
"
|
|
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
|
-
"
|
|
36
|
-
"
|
|
36
|
+
"main": "cjs/index.js",
|
|
37
|
+
"module": "esm/index.js",
|
|
38
|
+
"name": "@vuu-ui/vuu-utils",
|
|
39
|
+
"type": "module"
|
|
37
40
|
}
|
package/types/ThemeProvider.d.ts
CHANGED
|
@@ -25,8 +25,8 @@ interface ThemeProviderProps {
|
|
|
25
25
|
theme?: string;
|
|
26
26
|
themeMode?: ThemeMode;
|
|
27
27
|
}
|
|
28
|
-
export declare
|
|
29
|
-
|
|
30
|
-
|
|
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 {};
|
package/types/column-utils.d.ts
CHANGED
|
@@ -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
|
|
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
|
|
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,
|
|
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
|
-
|
|
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<
|
|
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
|
-
|
|
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
|
};
|
package/types/data-utils.d.ts
CHANGED
|
@@ -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) => "
|
|
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
|
|
21
|
-
export declare function decrementTimeUnitValue<T extends TimeUnit>(unit: T, value: TimeUnitValue<T>): TimeUnitValue<T
|
|
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
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
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 {};
|
package/types/feature-utils.d.ts
CHANGED
|
@@ -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) =>
|
|
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
|
|
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 };
|
package/src/ScaledDecimal.js
DELETED
|
@@ -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 };
|