@vuu-ui/vuu-utils 2.1.19-beta.2 → 2.1.19-beta.4
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 +314 -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 +37 -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 +114 -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 +110 -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 +310 -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 +34 -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 +112 -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 +78 -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 +16 -4
- package/types/data-editing/useEditableTable.d.ts +11 -5
- 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 +4 -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
package/src/common-types.js
DELETED
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { hasCustomRenderer, isColumnTypeRenderer, isTypeDescriptor } from "./column-utils.js";
|
|
2
|
-
const containersSet = new Set();
|
|
3
|
-
const viewsSet = new Set();
|
|
4
|
-
const layoutComponentsMap = new Map();
|
|
5
|
-
const cellRenderersMap = new Map();
|
|
6
|
-
const columnHeaderRenderersMap = new Map();
|
|
7
|
-
const configEditorsMap = new Map();
|
|
8
|
-
const cellConfigPanelsMap = new Map();
|
|
9
|
-
const editRuleValidatorsMap = new Map();
|
|
10
|
-
const optionsMap = new Map();
|
|
11
|
-
const rowClassGeneratorsMap = new Map();
|
|
12
|
-
const isTypeCompatible = (rendererType, serverDataType)=>{
|
|
13
|
-
if (void 0 === rendererType || "private" === rendererType) return true;
|
|
14
|
-
if (!Array.isArray(rendererType)) return rendererType === serverDataType;
|
|
15
|
-
if ("json" === serverDataType) return false;
|
|
16
|
-
return rendererType.includes(serverDataType);
|
|
17
|
-
};
|
|
18
|
-
const isContainer = (componentType)=>containersSet.has(componentType);
|
|
19
|
-
const isView = (componentType)=>viewsSet.has(componentType);
|
|
20
|
-
const isLayoutComponent = (componentType)=>isContainer(componentType) || isView(componentType);
|
|
21
|
-
const isCellRenderer = (type, component)=>void 0 !== component && "cell-renderer" === type;
|
|
22
|
-
const isColumnHeaderContentRenderer = (type, component)=>"column-header-content-renderer" === type;
|
|
23
|
-
const isColumnHeaderLabelRenderer = (type, component)=>"column-header-label-renderer" === type;
|
|
24
|
-
const isCellConfigPanel = (type, component)=>"cell-config-panel" === type;
|
|
25
|
-
const isEditRuleValidator = (type, component)=>"data-edit-validator" === type;
|
|
26
|
-
const isRowClassGenerator = (type, component)=>"row-class-generator" === type;
|
|
27
|
-
function registerComponent(componentName, component, componentType, options) {
|
|
28
|
-
if ("container" === componentType || "view" === componentType || "component" === componentType) {
|
|
29
|
-
layoutComponentsMap.set(componentName, component);
|
|
30
|
-
if ("container" === componentType) containersSet.add(componentName);
|
|
31
|
-
else if ("view" === componentType) viewsSet.add(componentName);
|
|
32
|
-
} else if (isCellRenderer(componentType, component)) cellRenderersMap.set(componentName, component);
|
|
33
|
-
else if (isColumnHeaderContentRenderer(componentType, component)) columnHeaderRenderersMap.set(componentName, component);
|
|
34
|
-
else if (isColumnHeaderLabelRenderer(componentType, component)) columnHeaderRenderersMap.set(componentName, component);
|
|
35
|
-
else if (isCellConfigPanel(componentType, component)) cellConfigPanelsMap.set(componentName, component);
|
|
36
|
-
else if (isEditRuleValidator(componentType, component)) editRuleValidatorsMap.set(componentName, component);
|
|
37
|
-
else if (isRowClassGenerator(componentType, component)) rowClassGeneratorsMap.set(componentName, component);
|
|
38
|
-
if (options) optionsMap.set(componentName, options);
|
|
39
|
-
}
|
|
40
|
-
const registerConfigurationEditor = (componentName, configurationEditor)=>{
|
|
41
|
-
configEditorsMap.set(componentName, configurationEditor);
|
|
42
|
-
};
|
|
43
|
-
const getRegisteredCellRenderers = (cellRendererDataType)=>{
|
|
44
|
-
const rendererNames = Array.from(cellRenderersMap.keys());
|
|
45
|
-
const allRenderers = rendererNames.map((name)=>({
|
|
46
|
-
name,
|
|
47
|
-
...optionsMap.get(name)
|
|
48
|
-
})).filter(({ userCanAssign })=>false !== userCanAssign);
|
|
49
|
-
if (cellRendererDataType) return allRenderers.filter((renderer)=>isTypeCompatible(renderer.serverDataType, cellRendererDataType));
|
|
50
|
-
return allRenderers;
|
|
51
|
-
};
|
|
52
|
-
const getLayoutComponent = (componentName)=>{
|
|
53
|
-
const layoutComponent = layoutComponentsMap.get(componentName);
|
|
54
|
-
if (layoutComponent) return layoutComponent;
|
|
55
|
-
throw Error(`layout component ${componentName} not found in ComponentRegistry`);
|
|
56
|
-
};
|
|
57
|
-
const getCellRendererOptions = (renderName)=>optionsMap.get(renderName);
|
|
58
|
-
function getCellRenderer(column) {
|
|
59
|
-
return dataCellRenderer(column);
|
|
60
|
-
}
|
|
61
|
-
function getColumnHeaderContentRenderer(column) {
|
|
62
|
-
if (column.colHeaderContentRenderer) return columnHeaderRenderersMap.get(column.colHeaderContentRenderer);
|
|
63
|
-
}
|
|
64
|
-
function getColumnHeaderLabelRenderer(column) {
|
|
65
|
-
if (column.colHeaderLabelRenderer) return columnHeaderRenderersMap.get(column.colHeaderLabelRenderer);
|
|
66
|
-
}
|
|
67
|
-
const getRowClassNameGenerator = (generatorId)=>rowClassGeneratorsMap.get(generatorId);
|
|
68
|
-
function getConfigurationEditor(configEditor = "") {
|
|
69
|
-
return configEditorsMap.get(configEditor);
|
|
70
|
-
}
|
|
71
|
-
function getCellConfigPanelRenderer(name) {
|
|
72
|
-
return cellConfigPanelsMap.get(name);
|
|
73
|
-
}
|
|
74
|
-
function getEditRuleValidator(name) {
|
|
75
|
-
return editRuleValidatorsMap.get(name);
|
|
76
|
-
}
|
|
77
|
-
function dataCellRenderer(column) {
|
|
78
|
-
if ("boolean" === column.serverDataType && !hasCustomRenderer(column.type)) return cellRenderersMap.get("checkbox-cell");
|
|
79
|
-
if (column.editable && !hasCustomRenderer(column.type)) return cellRenderersMap.get("input-cell");
|
|
80
|
-
if (isTypeDescriptor(column.type) && isColumnTypeRenderer(column.type.renderer)) return cellRenderersMap.get(column.type.renderer?.name);
|
|
81
|
-
if ("boolean" === column.serverDataType) return cellRenderersMap.get("checkbox-cell");
|
|
82
|
-
}
|
|
83
|
-
export { getCellConfigPanelRenderer, getCellRenderer, getCellRendererOptions, getColumnHeaderContentRenderer, getColumnHeaderLabelRenderer, getConfigurationEditor, getEditRuleValidator, getLayoutComponent, getRegisteredCellRenderers, getRowClassNameGenerator, isContainer, isLayoutComponent, isView, registerComponent, registerConfigurationEditor };
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { createContext } from "react";
|
|
2
|
-
const getServerAPI = ()=>{
|
|
3
|
-
throw Error("no DataProvider has been installed");
|
|
4
|
-
};
|
|
5
|
-
class NullDataSourceConstructor {
|
|
6
|
-
constructor(_){
|
|
7
|
-
throw Error("no DataProvider has been installed");
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
const DataContext = /*#__PURE__*/ createContext({
|
|
11
|
-
isLocalData: false,
|
|
12
|
-
getServerAPI: getServerAPI,
|
|
13
|
-
VuuDataSource: NullDataSourceConstructor
|
|
14
|
-
});
|
|
15
|
-
export { DataContext, NullDataSourceConstructor };
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { jsx } from "react/jsx-runtime";
|
|
2
|
-
import { useContext } from "react";
|
|
3
|
-
import { DataContext } from "./DataContext.js";
|
|
4
|
-
const DataProvider = ({ children, getServerAPI, isLocalData = true, VuuDataSource })=>/*#__PURE__*/ jsx(DataContext.Provider, {
|
|
5
|
-
value: {
|
|
6
|
-
isLocalData,
|
|
7
|
-
VuuDataSource,
|
|
8
|
-
getServerAPI
|
|
9
|
-
},
|
|
10
|
-
children: children
|
|
11
|
-
});
|
|
12
|
-
const useData = ()=>useContext(DataContext);
|
|
13
|
-
export { DataProvider, useData };
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { jsx } from "react/jsx-runtime";
|
|
2
|
-
import { createContext, useContext } from "react";
|
|
3
|
-
const DataSourceContext = /*#__PURE__*/ createContext({
|
|
4
|
-
dataSource: void 0
|
|
5
|
-
});
|
|
6
|
-
const DataSourceProvider = ({ children, dataSource })=>/*#__PURE__*/ jsx(DataSourceContext.Provider, {
|
|
7
|
-
value: {
|
|
8
|
-
dataSource
|
|
9
|
-
},
|
|
10
|
-
children: children
|
|
11
|
-
});
|
|
12
|
-
function useDataSource(throwIfNoDataSource = false) {
|
|
13
|
-
const { dataSource } = useContext(DataSourceContext);
|
|
14
|
-
if (dataSource) return dataSource;
|
|
15
|
-
if (throwIfNoDataSource) throw Error("[DataSOurceProvider] useDataSource,no DataSourceProvider has been declared ");
|
|
16
|
-
console.warn("[DataSourceProvider] useDataSource: no DataSourceProvider has been declared");
|
|
17
|
-
}
|
|
18
|
-
export { DataSourceContext, DataSourceProvider, useDataSource };
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import react, { useContext } from "react";
|
|
2
|
-
const WorkspaceContext = /*#__PURE__*/ react.createContext({
|
|
3
|
-
getApplicationSettings: ()=>void 0,
|
|
4
|
-
layoutMetadata: [],
|
|
5
|
-
saveLayout: ()=>void 0,
|
|
6
|
-
saveApplicationLayout: ()=>void 0,
|
|
7
|
-
saveApplicationSettings: ()=>void 0,
|
|
8
|
-
loadLayoutById: ()=>void 0
|
|
9
|
-
});
|
|
10
|
-
const usePlaceholderJSON = ()=>{
|
|
11
|
-
const { layoutPlaceholderJSON } = useContext(WorkspaceContext);
|
|
12
|
-
return layoutPlaceholderJSON;
|
|
13
|
-
};
|
|
14
|
-
export { WorkspaceContext, usePlaceholderJSON };
|
package/src/cookie-utils.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
const getCookieValue = (name)=>{
|
|
2
|
-
if (globalThis.document?.cookie !== void 0) return globalThis.document.cookie.split("; ").find((row)=>row.startsWith(`${name}=`))?.split("=")[1];
|
|
3
|
-
};
|
|
4
|
-
function setCookieValue(name, value, days) {
|
|
5
|
-
let expires = "";
|
|
6
|
-
if ("number" == typeof days) {
|
|
7
|
-
const date = new Date();
|
|
8
|
-
date.setTime(date.getTime() + 24 * days * 3600000);
|
|
9
|
-
expires = "; expires=" + date.toUTCString();
|
|
10
|
-
}
|
|
11
|
-
const encodedName = encodeURIComponent(name);
|
|
12
|
-
const encodedValue = encodeURIComponent(value);
|
|
13
|
-
document.cookie = `${encodedName}=${encodedValue}${expires};`;
|
|
14
|
-
}
|
|
15
|
-
export { getCookieValue, setCookieValue };
|
package/src/css-utils.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { jsx } from "react/jsx-runtime";
|
|
2
|
-
import { createContext, useContext } from "react";
|
|
3
|
-
const DataEditingContext = /*#__PURE__*/ createContext(void 0);
|
|
4
|
-
const DataEditingProvider = ({ children, editSession })=>/*#__PURE__*/ jsx(DataEditingContext.Provider, {
|
|
5
|
-
value: editSession,
|
|
6
|
-
children: children
|
|
7
|
-
});
|
|
8
|
-
function useEditSession(throwIfUnavailable = false) {
|
|
9
|
-
const editSession = useContext(DataEditingContext);
|
|
10
|
-
if (void 0 !== editSession) return editSession;
|
|
11
|
-
if (throwIfUnavailable) throw Error("[useEditSession] no DataEditingContext in scope. You need to enclose editable component(s) with DataEditingProvider");
|
|
12
|
-
}
|
|
13
|
-
export { DataEditingProvider, useEditSession };
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Button } from "@salt-ds/core";
|
|
3
|
-
import { useCallback, useMemo, useState } from "react";
|
|
4
|
-
const EditButtons = ({ editSession, onCancel, onSave })=>{
|
|
5
|
-
const [editState, setEditState] = useState("clean");
|
|
6
|
-
const handleSave = useCallback(()=>{
|
|
7
|
-
onSave("stale" === editState);
|
|
8
|
-
}, [
|
|
9
|
-
editState,
|
|
10
|
-
onSave
|
|
11
|
-
]);
|
|
12
|
-
useMemo(()=>{
|
|
13
|
-
editSession?.on("editState", setEditState);
|
|
14
|
-
}, [
|
|
15
|
-
editSession
|
|
16
|
-
]);
|
|
17
|
-
return /*#__PURE__*/ jsxs(Fragment, {
|
|
18
|
-
children: [
|
|
19
|
-
/*#__PURE__*/ jsx(Button, {
|
|
20
|
-
disabled: "clean" === editState || "invalid" === editState,
|
|
21
|
-
onClick: handleSave,
|
|
22
|
-
sentiment: "accented",
|
|
23
|
-
children: "stale" === editState ? "Save (force)" : "Save"
|
|
24
|
-
}),
|
|
25
|
-
/*#__PURE__*/ jsx(Button, {
|
|
26
|
-
onClick: onCancel,
|
|
27
|
-
children: "Cancel"
|
|
28
|
-
})
|
|
29
|
-
]
|
|
30
|
-
});
|
|
31
|
-
};
|
|
32
|
-
export { EditButtons };
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { jsx } from "react/jsx-runtime";
|
|
2
|
-
import { createContext, useContext, useState } from "react";
|
|
3
|
-
const EditModeContext = /*#__PURE__*/ createContext({
|
|
4
|
-
isEditMode: false,
|
|
5
|
-
setEditMode: ()=>"EditModeProvider in place"
|
|
6
|
-
});
|
|
7
|
-
const EditModeProvider = ({ children })=>{
|
|
8
|
-
const [isEditMode, setEditMode] = useState(false);
|
|
9
|
-
return /*#__PURE__*/ jsx(EditModeContext.Provider, {
|
|
10
|
-
value: {
|
|
11
|
-
isEditMode,
|
|
12
|
-
setEditMode
|
|
13
|
-
},
|
|
14
|
-
children: children
|
|
15
|
-
});
|
|
16
|
-
};
|
|
17
|
-
const useEditMode = ()=>useContext(EditModeContext);
|
|
18
|
-
export { EditModeProvider, useEditMode };
|
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
import { EventEmitter } from "../event-emitter.js";
|
|
2
|
-
import { isRpcError } from "../protocol-message-utils.js";
|
|
3
|
-
class EditError extends Error {
|
|
4
|
-
}
|
|
5
|
-
class StaleUpdateError extends Error {
|
|
6
|
-
}
|
|
7
|
-
class EditSession extends EventEmitter {
|
|
8
|
-
#rowEdits = new Map();
|
|
9
|
-
#editCount = 0;
|
|
10
|
-
#invalidCount = 0;
|
|
11
|
-
#sourceTableDataSource;
|
|
12
|
-
#sessionDataSource;
|
|
13
|
-
#inEditMode = false;
|
|
14
|
-
constructor(dataSource){
|
|
15
|
-
super();
|
|
16
|
-
this.#sourceTableDataSource = dataSource;
|
|
17
|
-
}
|
|
18
|
-
get editCount() {
|
|
19
|
-
return this.#editCount;
|
|
20
|
-
}
|
|
21
|
-
set editCount(val) {
|
|
22
|
-
if (val !== this.#editCount) {
|
|
23
|
-
const oldCount = this.#editCount;
|
|
24
|
-
this.#editCount = val;
|
|
25
|
-
if (0 === val) this.emit("editState", "clean");
|
|
26
|
-
else if (0 === oldCount) this.emit("editState", "dirty");
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
get invalidCount() {
|
|
30
|
-
return this.#invalidCount;
|
|
31
|
-
}
|
|
32
|
-
set invalidCount(val) {
|
|
33
|
-
if (val !== this.#invalidCount) {
|
|
34
|
-
const oldCount = this.#invalidCount;
|
|
35
|
-
this.#invalidCount = val;
|
|
36
|
-
if (0 === val) this.emit("editState", 0 === this.#editCount ? "clean" : "dirty");
|
|
37
|
-
else if (0 === oldCount) this.emit("editState", "invalid");
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
clear() {
|
|
41
|
-
this.#rowEdits.clear();
|
|
42
|
-
this.#editCount = 0;
|
|
43
|
-
this.#inEditMode = false;
|
|
44
|
-
}
|
|
45
|
-
async begin(editSessionMode) {
|
|
46
|
-
try {
|
|
47
|
-
this.#inEditMode = true;
|
|
48
|
-
const sessionDataSource = await this.#sourceTableDataSource?.beginEditSession?.(editSessionMode);
|
|
49
|
-
this.#sessionDataSource = sessionDataSource;
|
|
50
|
-
return sessionDataSource;
|
|
51
|
-
} catch (e) {
|
|
52
|
-
this.#inEditMode = false;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
get dataSource() {
|
|
56
|
-
return this.#sessionDataSource ?? this.#sourceTableDataSource;
|
|
57
|
-
}
|
|
58
|
-
async end(saveChanges = false, force = false) {
|
|
59
|
-
try {
|
|
60
|
-
if (this.#inEditMode) {
|
|
61
|
-
await this.dataSource?.endEditSession?.(saveChanges, force);
|
|
62
|
-
this.clear();
|
|
63
|
-
}
|
|
64
|
-
} catch (e) {
|
|
65
|
-
if (e instanceof StaleUpdateError) this.emit("editState", "stale");
|
|
66
|
-
else console.error(`[EditSession] ${e.message}`);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
get inEditMode() {
|
|
70
|
-
return this.#inEditMode;
|
|
71
|
-
}
|
|
72
|
-
get editState() {
|
|
73
|
-
return 0 === this.editCount ? "clean" : "dirty";
|
|
74
|
-
}
|
|
75
|
-
getOrCreateRowEdits(key) {
|
|
76
|
-
const rowEditDetails = this.#rowEdits.get(key);
|
|
77
|
-
if (rowEditDetails) return rowEditDetails;
|
|
78
|
-
{
|
|
79
|
-
const rowEditDetails = {
|
|
80
|
-
cellEdits: new Map()
|
|
81
|
-
};
|
|
82
|
-
this.#rowEdits.set(key, rowEditDetails);
|
|
83
|
-
return rowEditDetails;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
storeCellEdit(cellEdits, column, originalValue, editedValue, isValid) {
|
|
87
|
-
const cellEdit = cellEdits.get(column);
|
|
88
|
-
if (cellEdit) {
|
|
89
|
-
if (cellEdit.originalValue === editedValue) {
|
|
90
|
-
cellEdits.delete(column);
|
|
91
|
-
cellEdit.isDeleted = true;
|
|
92
|
-
if (cellEdit.isValid) this.editCount -= 1;
|
|
93
|
-
else this.invalidCount -= 1;
|
|
94
|
-
} else if (isValid && false === cellEdit.isValid) {
|
|
95
|
-
cellEdit.isValid = true;
|
|
96
|
-
cellEdit.editedValue = editedValue;
|
|
97
|
-
this.#invalidCount -= 1;
|
|
98
|
-
this.editCount += 1;
|
|
99
|
-
}
|
|
100
|
-
return cellEdit;
|
|
101
|
-
}
|
|
102
|
-
{
|
|
103
|
-
const cellEdit = {
|
|
104
|
-
originalValue,
|
|
105
|
-
editedValue,
|
|
106
|
-
isValid
|
|
107
|
-
};
|
|
108
|
-
cellEdits.set(column, cellEdit);
|
|
109
|
-
if (isValid) this.editCount += 1;
|
|
110
|
-
return cellEdit;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
async commit(key, columnName, originalValue, typedValue, isValid) {
|
|
114
|
-
if (!this.#inEditMode) throw new Error("No edit session in progress");
|
|
115
|
-
const rowEditDetails = this.getOrCreateRowEdits(key);
|
|
116
|
-
if (isValid) {
|
|
117
|
-
const { cellEdits } = rowEditDetails;
|
|
118
|
-
const cellEdit = this.storeCellEdit(cellEdits, columnName, originalValue, typedValue, isValid);
|
|
119
|
-
if (cellEdit.isDeleted) {
|
|
120
|
-
if (0 === rowEditDetails.cellEdits.size) this.#rowEdits.delete(key);
|
|
121
|
-
}
|
|
122
|
-
if (this.dataSource?.editCell) {
|
|
123
|
-
const response = await this.dataSource.editCell(key, columnName, typedValue);
|
|
124
|
-
if (isRpcError(response)) {
|
|
125
|
-
cellEdit.isValid = false;
|
|
126
|
-
this.invalidCount += 1;
|
|
127
|
-
}
|
|
128
|
-
return {
|
|
129
|
-
editedDuringCurrentSession: cellEdit.originalValue !== typedValue,
|
|
130
|
-
...response
|
|
131
|
-
};
|
|
132
|
-
}
|
|
133
|
-
} else {
|
|
134
|
-
const { cellEdits } = rowEditDetails;
|
|
135
|
-
let cellEdit = cellEdits.get(columnName);
|
|
136
|
-
if (cellEdit && false !== cellEdit.isValid) {
|
|
137
|
-
cellEdit.isValid = false;
|
|
138
|
-
this.invalidCount += 1;
|
|
139
|
-
} else if (void 0 === cellEdit) {
|
|
140
|
-
cellEdit = this.storeCellEdit(cellEdits, columnName, originalValue, typedValue, isValid);
|
|
141
|
-
this.invalidCount += 1;
|
|
142
|
-
}
|
|
143
|
-
return {
|
|
144
|
-
editedDuringCurrentSession: false
|
|
145
|
-
};
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
export { EditError, EditSession, StaleUpdateError };
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { formatDate } from "../date/index.js";
|
|
3
|
-
const isInlineEditingSession = (editSessionMode)=>editSessionMode.startsWith("inline");
|
|
4
|
-
const timeFormatter = formatDate({
|
|
5
|
-
time: "hh:mm:ss"
|
|
6
|
-
});
|
|
7
|
-
const getVuuEditMessage = (dataRow, column, originalValue)=>{
|
|
8
|
-
const vuuMsg = dataRow.vuuMsg;
|
|
9
|
-
if ("string" == typeof vuuMsg && "" !== vuuMsg) {
|
|
10
|
-
const columnMessages = vuuMsg.split(",");
|
|
11
|
-
const msgForCol = columnMessages.find((msg)=>msg.startsWith(`${column.name}:`));
|
|
12
|
-
if (msgForCol) {
|
|
13
|
-
const [, value, updatedValue, ts] = msgForCol.split(":");
|
|
14
|
-
const updateTime = timeFormatter(new Date(parseInt(ts)));
|
|
15
|
-
return /*#__PURE__*/ jsxs("span", {
|
|
16
|
-
children: [
|
|
17
|
-
"Update rejected. Original value ",
|
|
18
|
-
/*#__PURE__*/ jsx("b", {
|
|
19
|
-
children: originalValue
|
|
20
|
-
}),
|
|
21
|
-
" could not be updated to ",
|
|
22
|
-
/*#__PURE__*/ jsx("b", {
|
|
23
|
-
children: value
|
|
24
|
-
}),
|
|
25
|
-
". It was updated to ",
|
|
26
|
-
/*#__PURE__*/ jsx("b", {
|
|
27
|
-
children: updatedValue
|
|
28
|
-
}),
|
|
29
|
-
" at ",
|
|
30
|
-
updateTime,
|
|
31
|
-
"."
|
|
32
|
-
]
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
export { getVuuEditMessage, isInlineEditingSession };
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { useCallback, useMemo, useState } from "react";
|
|
2
|
-
import { useData } from "../context-definitions/DataProvider.js";
|
|
3
|
-
import { useLayoutEffectSkipFirst } from "../useLayoutEffectSkipFirst.js";
|
|
4
|
-
import { EditSession } from "./EditSession.js";
|
|
5
|
-
const useEditableTable = ({ columns, dataSource: dataSourceProp, editSessionMode = "inline-all-rows", isEditMode, onCancel, onSave, table })=>{
|
|
6
|
-
const { VuuDataSource } = useData();
|
|
7
|
-
const [sessionDataSource, setSessionDataSource] = useState(void 0);
|
|
8
|
-
useLayoutEffectSkipFirst(()=>{
|
|
9
|
-
console.warn("[useEditableTable] columns and or table changed");
|
|
10
|
-
}, [
|
|
11
|
-
columns,
|
|
12
|
-
table
|
|
13
|
-
]);
|
|
14
|
-
const dataSource = useMemo(()=>{
|
|
15
|
-
if (dataSourceProp) return dataSourceProp;
|
|
16
|
-
if (table) return new VuuDataSource({
|
|
17
|
-
columns,
|
|
18
|
-
table
|
|
19
|
-
});
|
|
20
|
-
throw Error("useEditableTable unable to provide DataSource, neither dataSource nor table available as props");
|
|
21
|
-
}, [
|
|
22
|
-
VuuDataSource,
|
|
23
|
-
columns,
|
|
24
|
-
dataSourceProp,
|
|
25
|
-
table
|
|
26
|
-
]);
|
|
27
|
-
const editSession = useMemo(()=>new EditSession(dataSource), [
|
|
28
|
-
dataSource
|
|
29
|
-
]);
|
|
30
|
-
const handleCancel = useCallback(()=>{
|
|
31
|
-
try {
|
|
32
|
-
editSession.end();
|
|
33
|
-
onCancel();
|
|
34
|
-
} catch (e) {}
|
|
35
|
-
}, [
|
|
36
|
-
editSession,
|
|
37
|
-
onCancel
|
|
38
|
-
]);
|
|
39
|
-
const handleSave = useCallback(async (force = false)=>{
|
|
40
|
-
dataSource.resume?.();
|
|
41
|
-
try {
|
|
42
|
-
await editSession.end(true, force);
|
|
43
|
-
if (false === editSession.inEditMode) onSave();
|
|
44
|
-
} catch (e) {
|
|
45
|
-
console.log(`[useEditableTable] handleSave ${e.message}`);
|
|
46
|
-
}
|
|
47
|
-
}, [
|
|
48
|
-
dataSource,
|
|
49
|
-
editSession,
|
|
50
|
-
onSave
|
|
51
|
-
]);
|
|
52
|
-
useMemo(async ()=>{
|
|
53
|
-
console.log(`[useEditableTable] editMode ${isEditMode}`);
|
|
54
|
-
if (isEditMode) try {
|
|
55
|
-
const sessionDataSource = await editSession.begin(editSessionMode);
|
|
56
|
-
if (sessionDataSource) setSessionDataSource(sessionDataSource);
|
|
57
|
-
} catch (e) {
|
|
58
|
-
console.error(e);
|
|
59
|
-
onCancel();
|
|
60
|
-
}
|
|
61
|
-
else await editSession.end();
|
|
62
|
-
}, [
|
|
63
|
-
editSession,
|
|
64
|
-
editSessionMode,
|
|
65
|
-
isEditMode,
|
|
66
|
-
onCancel
|
|
67
|
-
]);
|
|
68
|
-
return {
|
|
69
|
-
dataSource,
|
|
70
|
-
editSession,
|
|
71
|
-
onCancel: handleCancel,
|
|
72
|
-
onSave: handleSave,
|
|
73
|
-
sessionDataSource
|
|
74
|
-
};
|
|
75
|
-
};
|
|
76
|
-
export { useEditableTable };
|
package/src/data-utils.js
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
const UP1 = "up1";
|
|
2
|
-
const UP2 = "up2";
|
|
3
|
-
const DOWN1 = "down1";
|
|
4
|
-
const DOWN2 = "down2";
|
|
5
|
-
const decimalPattern = /^-?[0-9]*\.[0-9]*$/;
|
|
6
|
-
const stringIsValidInt = (val)=>parseInt(val, 10).toString() === val;
|
|
7
|
-
const stringIsValidDecimal = (val)=>stringIsValidInt(val) || decimalPattern.test(val);
|
|
8
|
-
const stringIsValidNumber = (val)=>stringIsValidInt(val) || stringIsValidDecimal(val);
|
|
9
|
-
const numericTypeOfStringValue = (val)=>stringIsValidInt(val) ? "int" : stringIsValidDecimal(val) ? "double" : "NaN";
|
|
10
|
-
const isValidNumber = (n)=>"number" == typeof n && isFinite(n);
|
|
11
|
-
const EMPTY = {};
|
|
12
|
-
const shallowEquals = (o1 = EMPTY, o2 = EMPTY)=>{
|
|
13
|
-
const props1 = Object.keys(o1);
|
|
14
|
-
const props2 = Object.keys(o2);
|
|
15
|
-
return props1.length === props2.length && props1.every((key)=>o1[key] === o2[key]);
|
|
16
|
-
};
|
|
17
|
-
function getMovingValueDirection(newValue, direction, prevValue, decimalPlaces) {
|
|
18
|
-
if (void 0 === newValue) return "";
|
|
19
|
-
if (!isFinite(newValue) || void 0 === prevValue || void 0 === direction) return "";
|
|
20
|
-
{
|
|
21
|
-
let diff = newValue - prevValue;
|
|
22
|
-
if (diff) {
|
|
23
|
-
if ("number" == typeof decimalPlaces) diff = newValue.toFixed(decimalPlaces) - prevValue.toFixed(decimalPlaces);
|
|
24
|
-
}
|
|
25
|
-
if (!diff) return "";
|
|
26
|
-
if ("" === direction) if (diff < 0) return DOWN1;
|
|
27
|
-
else return UP1;
|
|
28
|
-
if (diff > 0) if (direction === DOWN1 || direction === DOWN2 || direction === UP2) return UP1;
|
|
29
|
-
else return UP2;
|
|
30
|
-
else if (direction === UP1 || direction === UP2 || direction === DOWN2) return DOWN1;
|
|
31
|
-
else return DOWN2;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
function asInteger(value, defaultValue) {
|
|
35
|
-
if ("number" == typeof value) return Number.isInteger(value) ? value : value < 0 ? Math.ceil(value) : Math.floor(value);
|
|
36
|
-
{
|
|
37
|
-
const integerValue = parseInt(value ?? "");
|
|
38
|
-
if (!isNaN(integerValue)) return integerValue;
|
|
39
|
-
if ("number" == typeof defaultValue) return defaultValue;
|
|
40
|
-
throw Error(`parseIndex invalid value ${value}`);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
const dataDescriptorTypeToVuuRowDataItemType = ({ serverDataType = "string" })=>{
|
|
44
|
-
switch(serverDataType){
|
|
45
|
-
case "double":
|
|
46
|
-
case "int":
|
|
47
|
-
case "long":
|
|
48
|
-
return "number";
|
|
49
|
-
case "boolean":
|
|
50
|
-
return "boolean";
|
|
51
|
-
default:
|
|
52
|
-
return "string";
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
export { DOWN1, DOWN2, UP1, UP2, asInteger, dataDescriptorTypeToVuuRowDataItemType, getMovingValueDirection, isValidNumber, numericTypeOfStringValue, shallowEquals, stringIsValidDecimal, stringIsValidInt, stringIsValidNumber };
|