@vuu-ui/vuu-utils 2.1.18 → 2.1.19-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +11 -14
- package/src/Clock.js +43 -0
- package/src/PageVisibilityObserver.js +42 -0
- package/src/ScaledDecimal.js +32 -0
- package/src/ShellContext.js +5 -0
- package/src/ThemeProvider.js +56 -0
- package/src/array-utils.js +51 -0
- package/src/box-utils.js +51 -0
- package/src/broadcast-channel.js +0 -0
- package/src/column-utils.js +790 -0
- package/src/common-types.js +11 -0
- package/src/component-registry.js +83 -0
- package/src/context-definitions/DataContext.js +15 -0
- package/src/context-definitions/DataProvider.js +13 -0
- package/src/context-definitions/DataSourceProvider.js +18 -0
- package/src/context-definitions/WorkspaceContext.js +14 -0
- package/src/cookie-utils.js +15 -0
- package/src/css-utils.js +5 -0
- package/src/data-editing/DataEditingProvider.js +13 -0
- package/src/data-editing/EditButtons.js +32 -0
- package/src/data-editing/EditModeProvider.js +18 -0
- package/src/data-editing/EditSession.js +149 -0
- package/src/data-editing/edit-utils.js +37 -0
- package/src/data-editing/useEditableTable.js +76 -0
- package/src/data-utils.js +55 -0
- package/src/datasource/BaseDataSource.js +233 -0
- package/src/datasource/datasource-action-utils.js +6 -0
- package/src/datasource/datasource-filter-utils.js +27 -0
- package/src/datasource/datasource-utils.js +148 -0
- package/src/date/date-utils.js +80 -0
- package/src/date/dateTimePattern.js +17 -0
- package/src/date/formatter.js +101 -0
- package/src/date/index.js +4 -0
- package/src/date/types.js +27 -0
- package/src/debug-utils.js +25 -0
- package/src/event-emitter.js +78 -0
- package/src/feature-utils.js +86 -0
- package/src/filters/filter-utils.js +136 -0
- package/src/filters/filterAsQuery.js +70 -0
- package/src/filters/index.js +2 -0
- package/src/form-utils.js +69 -0
- package/src/formatting-utils.js +42 -0
- package/src/getUniqueId.js +2 -0
- package/src/group-utils.js +16 -0
- package/src/html-utils.js +108 -0
- package/src/index.js +77 -0
- package/src/input-utils.js +3 -0
- package/src/invariant.js +9 -0
- package/src/itemToString.js +9 -0
- package/src/json-types.js +0 -0
- package/src/json-utils.js +108 -0
- package/{esm/packages/vuu-utils/src → src}/keyboard-utils.js +1 -3
- package/src/keyset.js +57 -0
- package/src/layout-types.js +0 -0
- package/src/list-utils.js +5 -0
- package/src/local-storage-utils.js +23 -0
- package/src/logging-utils.js +52 -0
- package/src/module-utils.js +2 -0
- package/src/nanoid/index.js +13 -0
- package/src/perf-utils.js +28 -0
- package/src/promise-utils.js +26 -0
- package/src/protocol-message-utils.js +68 -0
- package/src/range-utils.js +109 -0
- package/src/react-utils.js +64 -0
- package/src/round-decimal.js +83 -0
- package/src/row-utils.js +43 -0
- package/src/selection-utils.js +25 -0
- package/src/shell-layout-types.js +9 -0
- package/src/sort-utils.js +75 -0
- package/src/table-schema-utils.js +11 -0
- package/src/text-utils.js +13 -0
- package/src/theme-utils.js +21 -0
- package/src/tree-types.js +0 -0
- package/src/tree-utils.js +96 -0
- package/src/ts-utils.js +6 -0
- package/src/typeahead-utils.js +4 -0
- package/src/url-utils.js +12 -0
- package/src/useId.js +6 -0
- package/src/useLayoutEffectSkipFirst.js +9 -0
- package/src/useResizeObserver.js +122 -0
- package/src/useStateRef.js +21 -0
- package/src/user-types.js +0 -0
- package/types/ThemeProvider.d.ts +4 -4
- package/types/data-utils.d.ts +1 -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/cjs/node_modules/@dnd-kit/abstract/index.js +0 -1488
- package/cjs/node_modules/@dnd-kit/abstract/index.js.map +0 -1
- package/cjs/node_modules/@dnd-kit/abstract/modifiers.js +0 -85
- package/cjs/node_modules/@dnd-kit/abstract/modifiers.js.map +0 -1
- package/cjs/node_modules/@dnd-kit/collision/dist/index.js +0 -91
- package/cjs/node_modules/@dnd-kit/collision/dist/index.js.map +0 -1
- package/cjs/node_modules/@dnd-kit/dom/index.js +0 -1991
- package/cjs/node_modules/@dnd-kit/dom/index.js.map +0 -1
- package/cjs/node_modules/@dnd-kit/dom/sortable.js +0 -828
- package/cjs/node_modules/@dnd-kit/dom/sortable.js.map +0 -1
- package/cjs/node_modules/@dnd-kit/dom/utilities.js +0 -1389
- package/cjs/node_modules/@dnd-kit/dom/utilities.js.map +0 -1
- package/cjs/node_modules/@dnd-kit/geometry/dist/index.js +0 -310
- package/cjs/node_modules/@dnd-kit/geometry/dist/index.js.map +0 -1
- package/cjs/node_modules/@dnd-kit/react/hooks.js +0 -134
- package/cjs/node_modules/@dnd-kit/react/hooks.js.map +0 -1
- package/cjs/node_modules/@dnd-kit/react/index.js +0 -398
- package/cjs/node_modules/@dnd-kit/react/index.js.map +0 -1
- package/cjs/node_modules/@dnd-kit/react/sortable.js +0 -177
- package/cjs/node_modules/@dnd-kit/react/sortable.js.map +0 -1
- package/cjs/node_modules/@dnd-kit/react/utilities.js +0 -19
- package/cjs/node_modules/@dnd-kit/react/utilities.js.map +0 -1
- package/cjs/node_modules/@dnd-kit/state/dist/index.js +0 -280
- package/cjs/node_modules/@dnd-kit/state/dist/index.js.map +0 -1
- package/cjs/node_modules/@preact/signals-core/dist/signals-core.js +0 -11
- package/cjs/node_modules/@preact/signals-core/dist/signals-core.js.map +0 -1
- package/cjs/packages/vuu-utils/src/Clock.js +0 -62
- package/cjs/packages/vuu-utils/src/Clock.js.map +0 -1
- package/cjs/packages/vuu-utils/src/PageVisibilityObserver.js +0 -80
- package/cjs/packages/vuu-utils/src/PageVisibilityObserver.js.map +0 -1
- package/cjs/packages/vuu-utils/src/ScaledDecimal.js +0 -43
- package/cjs/packages/vuu-utils/src/ScaledDecimal.js.map +0 -1
- package/cjs/packages/vuu-utils/src/ShellContext.js +0 -13
- package/cjs/packages/vuu-utils/src/ShellContext.js.map +0 -1
- package/cjs/packages/vuu-utils/src/ThemeProvider.js +0 -85
- package/cjs/packages/vuu-utils/src/ThemeProvider.js.map +0 -1
- package/cjs/packages/vuu-utils/src/array-utils.js +0 -87
- package/cjs/packages/vuu-utils/src/array-utils.js.map +0 -1
- package/cjs/packages/vuu-utils/src/box-utils.js +0 -53
- package/cjs/packages/vuu-utils/src/box-utils.js.map +0 -1
- package/cjs/packages/vuu-utils/src/column-utils.js +0 -1057
- package/cjs/packages/vuu-utils/src/column-utils.js.map +0 -1
- package/cjs/packages/vuu-utils/src/common-types.js +0 -15
- package/cjs/packages/vuu-utils/src/common-types.js.map +0 -1
- package/cjs/packages/vuu-utils/src/component-registry.js +0 -144
- package/cjs/packages/vuu-utils/src/component-registry.js.map +0 -1
- package/cjs/packages/vuu-utils/src/context-definitions/DataContext.js +0 -21
- package/cjs/packages/vuu-utils/src/context-definitions/DataContext.js.map +0 -1
- package/cjs/packages/vuu-utils/src/context-definitions/DataProvider.js +0 -19
- package/cjs/packages/vuu-utils/src/context-definitions/DataProvider.js.map +0 -1
- package/cjs/packages/vuu-utils/src/context-definitions/DataSourceProvider.js +0 -33
- package/cjs/packages/vuu-utils/src/context-definitions/DataSourceProvider.js.map +0 -1
- package/cjs/packages/vuu-utils/src/context-definitions/WorkspaceContext.js +0 -20
- package/cjs/packages/vuu-utils/src/context-definitions/WorkspaceContext.js.map +0 -1
- package/cjs/packages/vuu-utils/src/cookie-utils.js +0 -22
- package/cjs/packages/vuu-utils/src/cookie-utils.js.map +0 -1
- package/cjs/packages/vuu-utils/src/css-utils.js +0 -9
- package/cjs/packages/vuu-utils/src/css-utils.js.map +0 -1
- package/cjs/packages/vuu-utils/src/data-editing/DataEditingProvider.js +0 -28
- package/cjs/packages/vuu-utils/src/data-editing/DataEditingProvider.js.map +0 -1
- package/cjs/packages/vuu-utils/src/data-editing/EditButtons.js +0 -34
- package/cjs/packages/vuu-utils/src/data-editing/EditButtons.js.map +0 -1
- package/cjs/packages/vuu-utils/src/data-editing/EditSession.js +0 -204
- package/cjs/packages/vuu-utils/src/data-editing/EditSession.js.map +0 -1
- package/cjs/packages/vuu-utils/src/data-editing/edit-utils.js +0 -37
- package/cjs/packages/vuu-utils/src/data-editing/edit-utils.js.map +0 -1
- package/cjs/packages/vuu-utils/src/data-editing/useEditableTable.js +0 -81
- package/cjs/packages/vuu-utils/src/data-editing/useEditableTable.js.map +0 -1
- package/cjs/packages/vuu-utils/src/data-utils.js +0 -96
- package/cjs/packages/vuu-utils/src/data-utils.js.map +0 -1
- package/cjs/packages/vuu-utils/src/datasource/BaseDataSource.js +0 -317
- package/cjs/packages/vuu-utils/src/datasource/BaseDataSource.js.map +0 -1
- package/cjs/packages/vuu-utils/src/datasource/datasource-action-utils.js +0 -14
- package/cjs/packages/vuu-utils/src/datasource/datasource-action-utils.js.map +0 -1
- package/cjs/packages/vuu-utils/src/datasource/datasource-filter-utils.js +0 -40
- package/cjs/packages/vuu-utils/src/datasource/datasource-filter-utils.js.map +0 -1
- package/cjs/packages/vuu-utils/src/datasource/datasource-utils.js +0 -218
- package/cjs/packages/vuu-utils/src/datasource/datasource-utils.js.map +0 -1
- package/cjs/packages/vuu-utils/src/date/date-utils.js +0 -131
- package/cjs/packages/vuu-utils/src/date/date-utils.js.map +0 -1
- package/cjs/packages/vuu-utils/src/date/dateTimePattern.js +0 -26
- package/cjs/packages/vuu-utils/src/date/dateTimePattern.js.map +0 -1
- package/cjs/packages/vuu-utils/src/date/formatter.js +0 -82
- package/cjs/packages/vuu-utils/src/date/formatter.js.map +0 -1
- package/cjs/packages/vuu-utils/src/date/types.js +0 -32
- package/cjs/packages/vuu-utils/src/date/types.js.map +0 -1
- package/cjs/packages/vuu-utils/src/debug-utils.js +0 -34
- package/cjs/packages/vuu-utils/src/debug-utils.js.map +0 -1
- package/cjs/packages/vuu-utils/src/event-emitter.js +0 -113
- package/cjs/packages/vuu-utils/src/event-emitter.js.map +0 -1
- package/cjs/packages/vuu-utils/src/feature-utils.js +0 -139
- package/cjs/packages/vuu-utils/src/feature-utils.js.map +0 -1
- package/cjs/packages/vuu-utils/src/filters/filter-utils.js +0 -182
- package/cjs/packages/vuu-utils/src/filters/filter-utils.js.map +0 -1
- package/cjs/packages/vuu-utils/src/filters/filterAsQuery.js +0 -69
- package/cjs/packages/vuu-utils/src/filters/filterAsQuery.js.map +0 -1
- package/cjs/packages/vuu-utils/src/form-utils.js +0 -117
- package/cjs/packages/vuu-utils/src/form-utils.js.map +0 -1
- package/cjs/packages/vuu-utils/src/formatting-utils.js +0 -98
- package/cjs/packages/vuu-utils/src/formatting-utils.js.map +0 -1
- package/cjs/packages/vuu-utils/src/getUniqueId.js +0 -6
- package/cjs/packages/vuu-utils/src/getUniqueId.js.map +0 -1
- package/cjs/packages/vuu-utils/src/group-utils.js +0 -27
- package/cjs/packages/vuu-utils/src/group-utils.js.map +0 -1
- package/cjs/packages/vuu-utils/src/html-utils.js +0 -162
- package/cjs/packages/vuu-utils/src/html-utils.js.map +0 -1
- package/cjs/packages/vuu-utils/src/index.js +0 -475
- package/cjs/packages/vuu-utils/src/index.js.map +0 -1
- package/cjs/packages/vuu-utils/src/input-utils.js +0 -10
- package/cjs/packages/vuu-utils/src/input-utils.js.map +0 -1
- package/cjs/packages/vuu-utils/src/invariant.js +0 -13
- package/cjs/packages/vuu-utils/src/invariant.js.map +0 -1
- package/cjs/packages/vuu-utils/src/itemToString.js +0 -23
- package/cjs/packages/vuu-utils/src/itemToString.js.map +0 -1
- package/cjs/packages/vuu-utils/src/json-utils.js +0 -105
- package/cjs/packages/vuu-utils/src/json-utils.js.map +0 -1
- package/cjs/packages/vuu-utils/src/keyboard-utils.js +0 -30
- package/cjs/packages/vuu-utils/src/keyboard-utils.js.map +0 -1
- package/cjs/packages/vuu-utils/src/keyset.js +0 -72
- package/cjs/packages/vuu-utils/src/keyset.js.map +0 -1
- package/cjs/packages/vuu-utils/src/list-utils.js +0 -11
- package/cjs/packages/vuu-utils/src/list-utils.js.map +0 -1
- package/cjs/packages/vuu-utils/src/local-storage-utils.js +0 -35
- package/cjs/packages/vuu-utils/src/local-storage-utils.js.map +0 -1
- package/cjs/packages/vuu-utils/src/logging-utils.js +0 -65
- package/cjs/packages/vuu-utils/src/logging-utils.js.map +0 -1
- package/cjs/packages/vuu-utils/src/module-utils.js +0 -6
- package/cjs/packages/vuu-utils/src/module-utils.js.map +0 -1
- package/cjs/packages/vuu-utils/src/nanoid/index.js +0 -22
- package/cjs/packages/vuu-utils/src/nanoid/index.js.map +0 -1
- package/cjs/packages/vuu-utils/src/perf-utils.js +0 -35
- package/cjs/packages/vuu-utils/src/perf-utils.js.map +0 -1
- package/cjs/packages/vuu-utils/src/promise-utils.js +0 -42
- package/cjs/packages/vuu-utils/src/promise-utils.js.map +0 -1
- package/cjs/packages/vuu-utils/src/protocol-message-utils.js +0 -104
- package/cjs/packages/vuu-utils/src/protocol-message-utils.js.map +0 -1
- package/cjs/packages/vuu-utils/src/range-utils.js +0 -115
- package/cjs/packages/vuu-utils/src/range-utils.js.map +0 -1
- package/cjs/packages/vuu-utils/src/react-utils.js +0 -72
- package/cjs/packages/vuu-utils/src/react-utils.js.map +0 -1
- package/cjs/packages/vuu-utils/src/round-decimal.js +0 -131
- package/cjs/packages/vuu-utils/src/round-decimal.js.map +0 -1
- package/cjs/packages/vuu-utils/src/row-utils.js +0 -59
- package/cjs/packages/vuu-utils/src/row-utils.js.map +0 -1
- package/cjs/packages/vuu-utils/src/selection-utils.js +0 -34
- package/cjs/packages/vuu-utils/src/selection-utils.js.map +0 -1
- package/cjs/packages/vuu-utils/src/shell-layout-types.js +0 -13
- package/cjs/packages/vuu-utils/src/shell-layout-types.js.map +0 -1
- package/cjs/packages/vuu-utils/src/sort-utils.js +0 -78
- package/cjs/packages/vuu-utils/src/sort-utils.js.map +0 -1
- package/cjs/packages/vuu-utils/src/table-schema-utils.js +0 -13
- package/cjs/packages/vuu-utils/src/table-schema-utils.js.map +0 -1
- package/cjs/packages/vuu-utils/src/text-utils.js +0 -21
- package/cjs/packages/vuu-utils/src/text-utils.js.map +0 -1
- package/cjs/packages/vuu-utils/src/theme-utils.js +0 -36
- package/cjs/packages/vuu-utils/src/theme-utils.js.map +0 -1
- package/cjs/packages/vuu-utils/src/tree-utils.js +0 -114
- package/cjs/packages/vuu-utils/src/tree-utils.js.map +0 -1
- package/cjs/packages/vuu-utils/src/ts-utils.js +0 -12
- package/cjs/packages/vuu-utils/src/ts-utils.js.map +0 -1
- package/cjs/packages/vuu-utils/src/typeahead-utils.js +0 -6
- package/cjs/packages/vuu-utils/src/typeahead-utils.js.map +0 -1
- package/cjs/packages/vuu-utils/src/url-utils.js +0 -21
- package/cjs/packages/vuu-utils/src/url-utils.js.map +0 -1
- package/cjs/packages/vuu-utils/src/useId.js +0 -9
- package/cjs/packages/vuu-utils/src/useId.js.map +0 -1
- package/cjs/packages/vuu-utils/src/useLayoutEffectSkipFirst.js +0 -17
- package/cjs/packages/vuu-utils/src/useLayoutEffectSkipFirst.js.map +0 -1
- package/cjs/packages/vuu-utils/src/useResizeObserver.js +0 -134
- package/cjs/packages/vuu-utils/src/useResizeObserver.js.map +0 -1
- package/cjs/packages/vuu-utils/src/useStateRef.js +0 -23
- package/cjs/packages/vuu-utils/src/useStateRef.js.map +0 -1
- package/esm/node_modules/@dnd-kit/abstract/index.js +0 -1472
- package/esm/node_modules/@dnd-kit/abstract/index.js.map +0 -1
- package/esm/node_modules/@dnd-kit/abstract/modifiers.js +0 -82
- package/esm/node_modules/@dnd-kit/abstract/modifiers.js.map +0 -1
- package/esm/node_modules/@dnd-kit/collision/dist/index.js +0 -86
- package/esm/node_modules/@dnd-kit/collision/dist/index.js.map +0 -1
- package/esm/node_modules/@dnd-kit/dom/index.js +0 -1977
- package/esm/node_modules/@dnd-kit/dom/index.js.map +0 -1
- package/esm/node_modules/@dnd-kit/dom/sortable.js +0 -822
- package/esm/node_modules/@dnd-kit/dom/sortable.js.map +0 -1
- package/esm/node_modules/@dnd-kit/dom/utilities.js +0 -1344
- package/esm/node_modules/@dnd-kit/dom/utilities.js.map +0 -1
- package/esm/node_modules/@dnd-kit/geometry/dist/index.js +0 -303
- package/esm/node_modules/@dnd-kit/geometry/dist/index.js.map +0 -1
- package/esm/node_modules/@dnd-kit/react/hooks.js +0 -126
- package/esm/node_modules/@dnd-kit/react/hooks.js.map +0 -1
- package/esm/node_modules/@dnd-kit/react/index.js +0 -392
- package/esm/node_modules/@dnd-kit/react/index.js.map +0 -1
- package/esm/node_modules/@dnd-kit/react/sortable.js +0 -175
- package/esm/node_modules/@dnd-kit/react/sortable.js.map +0 -1
- package/esm/node_modules/@dnd-kit/react/utilities.js +0 -17
- package/esm/node_modules/@dnd-kit/react/utilities.js.map +0 -1
- package/esm/node_modules/@dnd-kit/state/dist/index.js +0 -266
- package/esm/node_modules/@dnd-kit/state/dist/index.js.map +0 -1
- package/esm/node_modules/@preact/signals-core/dist/signals-core.js +0 -4
- package/esm/node_modules/@preact/signals-core/dist/signals-core.js.map +0 -1
- package/esm/packages/vuu-utils/src/Clock.js +0 -60
- package/esm/packages/vuu-utils/src/Clock.js.map +0 -1
- package/esm/packages/vuu-utils/src/PageVisibilityObserver.js +0 -78
- package/esm/packages/vuu-utils/src/PageVisibilityObserver.js.map +0 -1
- package/esm/packages/vuu-utils/src/ScaledDecimal.js +0 -37
- package/esm/packages/vuu-utils/src/ScaledDecimal.js.map +0 -1
- package/esm/packages/vuu-utils/src/ShellContext.js +0 -10
- package/esm/packages/vuu-utils/src/ShellContext.js.map +0 -1
- package/esm/packages/vuu-utils/src/ThemeProvider.js +0 -78
- package/esm/packages/vuu-utils/src/ThemeProvider.js.map +0 -1
- package/esm/packages/vuu-utils/src/array-utils.js +0 -79
- package/esm/packages/vuu-utils/src/array-utils.js.map +0 -1
- package/esm/packages/vuu-utils/src/box-utils.js +0 -47
- package/esm/packages/vuu-utils/src/box-utils.js.map +0 -1
- package/esm/packages/vuu-utils/src/column-utils.js +0 -970
- package/esm/packages/vuu-utils/src/column-utils.js.map +0 -1
- package/esm/packages/vuu-utils/src/common-types.js +0 -13
- package/esm/packages/vuu-utils/src/common-types.js.map +0 -1
- package/esm/packages/vuu-utils/src/component-registry.js +0 -128
- package/esm/packages/vuu-utils/src/component-registry.js.map +0 -1
- package/esm/packages/vuu-utils/src/context-definitions/DataContext.js +0 -18
- package/esm/packages/vuu-utils/src/context-definitions/DataContext.js.map +0 -1
- package/esm/packages/vuu-utils/src/context-definitions/DataProvider.js +0 -16
- package/esm/packages/vuu-utils/src/context-definitions/DataProvider.js.map +0 -1
- package/esm/packages/vuu-utils/src/context-definitions/DataSourceProvider.js +0 -29
- package/esm/packages/vuu-utils/src/context-definitions/DataSourceProvider.js.map +0 -1
- package/esm/packages/vuu-utils/src/context-definitions/WorkspaceContext.js +0 -17
- package/esm/packages/vuu-utils/src/context-definitions/WorkspaceContext.js.map +0 -1
- package/esm/packages/vuu-utils/src/cookie-utils.js +0 -19
- package/esm/packages/vuu-utils/src/cookie-utils.js.map +0 -1
- package/esm/packages/vuu-utils/src/css-utils.js +0 -7
- package/esm/packages/vuu-utils/src/css-utils.js.map +0 -1
- package/esm/packages/vuu-utils/src/data-editing/DataEditingProvider.js +0 -25
- package/esm/packages/vuu-utils/src/data-editing/DataEditingProvider.js.map +0 -1
- package/esm/packages/vuu-utils/src/data-editing/EditButtons.js +0 -32
- package/esm/packages/vuu-utils/src/data-editing/EditButtons.js.map +0 -1
- package/esm/packages/vuu-utils/src/data-editing/EditSession.js +0 -201
- package/esm/packages/vuu-utils/src/data-editing/EditSession.js.map +0 -1
- package/esm/packages/vuu-utils/src/data-editing/edit-utils.js +0 -34
- package/esm/packages/vuu-utils/src/data-editing/edit-utils.js.map +0 -1
- package/esm/packages/vuu-utils/src/data-editing/useEditableTable.js +0 -79
- package/esm/packages/vuu-utils/src/data-editing/useEditableTable.js.map +0 -1
- package/esm/packages/vuu-utils/src/data-utils.js +0 -82
- package/esm/packages/vuu-utils/src/data-utils.js.map +0 -1
- package/esm/packages/vuu-utils/src/datasource/BaseDataSource.js +0 -314
- package/esm/packages/vuu-utils/src/datasource/BaseDataSource.js.map +0 -1
- package/esm/packages/vuu-utils/src/datasource/datasource-action-utils.js +0 -8
- package/esm/packages/vuu-utils/src/datasource/datasource-action-utils.js.map +0 -1
- package/esm/packages/vuu-utils/src/datasource/datasource-filter-utils.js +0 -38
- package/esm/packages/vuu-utils/src/datasource/datasource-filter-utils.js.map +0 -1
- package/esm/packages/vuu-utils/src/datasource/datasource-utils.js +0 -193
- package/esm/packages/vuu-utils/src/datasource/datasource-utils.js.map +0 -1
- package/esm/packages/vuu-utils/src/date/date-utils.js +0 -121
- package/esm/packages/vuu-utils/src/date/date-utils.js.map +0 -1
- package/esm/packages/vuu-utils/src/date/dateTimePattern.js +0 -22
- package/esm/packages/vuu-utils/src/date/dateTimePattern.js.map +0 -1
- package/esm/packages/vuu-utils/src/date/formatter.js +0 -79
- package/esm/packages/vuu-utils/src/date/formatter.js.map +0 -1
- package/esm/packages/vuu-utils/src/date/types.js +0 -26
- package/esm/packages/vuu-utils/src/date/types.js.map +0 -1
- package/esm/packages/vuu-utils/src/debug-utils.js +0 -32
- package/esm/packages/vuu-utils/src/debug-utils.js.map +0 -1
- package/esm/packages/vuu-utils/src/event-emitter.js +0 -111
- package/esm/packages/vuu-utils/src/event-emitter.js.map +0 -1
- package/esm/packages/vuu-utils/src/feature-utils.js +0 -125
- package/esm/packages/vuu-utils/src/feature-utils.js.map +0 -1
- package/esm/packages/vuu-utils/src/filters/filter-utils.js +0 -159
- package/esm/packages/vuu-utils/src/filters/filter-utils.js.map +0 -1
- package/esm/packages/vuu-utils/src/filters/filterAsQuery.js +0 -65
- package/esm/packages/vuu-utils/src/filters/filterAsQuery.js.map +0 -1
- package/esm/packages/vuu-utils/src/form-utils.js +0 -110
- package/esm/packages/vuu-utils/src/form-utils.js.map +0 -1
- package/esm/packages/vuu-utils/src/formatting-utils.js +0 -93
- package/esm/packages/vuu-utils/src/formatting-utils.js.map +0 -1
- package/esm/packages/vuu-utils/src/getUniqueId.js +0 -4
- package/esm/packages/vuu-utils/src/getUniqueId.js.map +0 -1
- package/esm/packages/vuu-utils/src/group-utils.js +0 -23
- package/esm/packages/vuu-utils/src/group-utils.js.map +0 -1
- package/esm/packages/vuu-utils/src/html-utils.js +0 -145
- package/esm/packages/vuu-utils/src/html-utils.js.map +0 -1
- package/esm/packages/vuu-utils/src/index.js +0 -77
- package/esm/packages/vuu-utils/src/index.js.map +0 -1
- package/esm/packages/vuu-utils/src/input-utils.js +0 -7
- package/esm/packages/vuu-utils/src/input-utils.js.map +0 -1
- package/esm/packages/vuu-utils/src/invariant.js +0 -11
- package/esm/packages/vuu-utils/src/invariant.js.map +0 -1
- package/esm/packages/vuu-utils/src/itemToString.js +0 -21
- package/esm/packages/vuu-utils/src/itemToString.js.map +0 -1
- package/esm/packages/vuu-utils/src/json-utils.js +0 -103
- package/esm/packages/vuu-utils/src/json-utils.js.map +0 -1
- package/esm/packages/vuu-utils/src/keyboard-utils.js.map +0 -1
- package/esm/packages/vuu-utils/src/keyset.js +0 -70
- package/esm/packages/vuu-utils/src/keyset.js.map +0 -1
- package/esm/packages/vuu-utils/src/list-utils.js +0 -9
- package/esm/packages/vuu-utils/src/list-utils.js.map +0 -1
- package/esm/packages/vuu-utils/src/local-storage-utils.js +0 -30
- package/esm/packages/vuu-utils/src/local-storage-utils.js.map +0 -1
- package/esm/packages/vuu-utils/src/logging-utils.js +0 -61
- package/esm/packages/vuu-utils/src/logging-utils.js.map +0 -1
- package/esm/packages/vuu-utils/src/module-utils.js +0 -4
- package/esm/packages/vuu-utils/src/module-utils.js.map +0 -1
- package/esm/packages/vuu-utils/src/nanoid/index.js +0 -20
- package/esm/packages/vuu-utils/src/nanoid/index.js.map +0 -1
- package/esm/packages/vuu-utils/src/perf-utils.js +0 -32
- package/esm/packages/vuu-utils/src/perf-utils.js.map +0 -1
- package/esm/packages/vuu-utils/src/promise-utils.js +0 -40
- package/esm/packages/vuu-utils/src/promise-utils.js.map +0 -1
- package/esm/packages/vuu-utils/src/protocol-message-utils.js +0 -75
- package/esm/packages/vuu-utils/src/protocol-message-utils.js.map +0 -1
- package/esm/packages/vuu-utils/src/range-utils.js +0 -108
- package/esm/packages/vuu-utils/src/range-utils.js.map +0 -1
- package/esm/packages/vuu-utils/src/react-utils.js +0 -66
- package/esm/packages/vuu-utils/src/react-utils.js.map +0 -1
- package/esm/packages/vuu-utils/src/round-decimal.js +0 -127
- package/esm/packages/vuu-utils/src/round-decimal.js.map +0 -1
- package/esm/packages/vuu-utils/src/row-utils.js +0 -54
- package/esm/packages/vuu-utils/src/row-utils.js.map +0 -1
- package/esm/packages/vuu-utils/src/selection-utils.js +0 -31
- package/esm/packages/vuu-utils/src/selection-utils.js.map +0 -1
- package/esm/packages/vuu-utils/src/shell-layout-types.js +0 -11
- package/esm/packages/vuu-utils/src/shell-layout-types.js.map +0 -1
- package/esm/packages/vuu-utils/src/sort-utils.js +0 -73
- package/esm/packages/vuu-utils/src/sort-utils.js.map +0 -1
- package/esm/packages/vuu-utils/src/table-schema-utils.js +0 -11
- package/esm/packages/vuu-utils/src/table-schema-utils.js.map +0 -1
- package/esm/packages/vuu-utils/src/text-utils.js +0 -18
- package/esm/packages/vuu-utils/src/text-utils.js.map +0 -1
- package/esm/packages/vuu-utils/src/theme-utils.js +0 -34
- package/esm/packages/vuu-utils/src/theme-utils.js.map +0 -1
- package/esm/packages/vuu-utils/src/tree-utils.js +0 -108
- package/esm/packages/vuu-utils/src/tree-utils.js.map +0 -1
- package/esm/packages/vuu-utils/src/ts-utils.js +0 -8
- package/esm/packages/vuu-utils/src/ts-utils.js.map +0 -1
- package/esm/packages/vuu-utils/src/typeahead-utils.js +0 -4
- package/esm/packages/vuu-utils/src/typeahead-utils.js.map +0 -1
- package/esm/packages/vuu-utils/src/url-utils.js +0 -18
- package/esm/packages/vuu-utils/src/url-utils.js.map +0 -1
- package/esm/packages/vuu-utils/src/useId.js +0 -7
- package/esm/packages/vuu-utils/src/useId.js.map +0 -1
- package/esm/packages/vuu-utils/src/useLayoutEffectSkipFirst.js +0 -15
- package/esm/packages/vuu-utils/src/useLayoutEffectSkipFirst.js.map +0 -1
- package/esm/packages/vuu-utils/src/useResizeObserver.js +0 -130
- package/esm/packages/vuu-utils/src/useResizeObserver.js.map +0 -1
- package/esm/packages/vuu-utils/src/useStateRef.js +0 -21
- package/esm/packages/vuu-utils/src/useStateRef.js.map +0 -1
package/src/index.js
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
export * from "./array-utils.js";
|
|
2
|
+
export * from "./box-utils.js";
|
|
3
|
+
export * from "./broadcast-channel.js";
|
|
4
|
+
export * from "./column-utils.js";
|
|
5
|
+
export * from "./common-types.js";
|
|
6
|
+
export * from "./component-registry.js";
|
|
7
|
+
export * from "./cookie-utils.js";
|
|
8
|
+
export * from "./css-utils.js";
|
|
9
|
+
export * from "./data-utils.js";
|
|
10
|
+
export * from "./datasource/BaseDataSource.js";
|
|
11
|
+
export * from "./datasource/datasource-action-utils.js";
|
|
12
|
+
export * from "./datasource/datasource-filter-utils.js";
|
|
13
|
+
export * from "./datasource/datasource-utils.js";
|
|
14
|
+
export * from "./date/index.js";
|
|
15
|
+
export * from "./debug-utils.js";
|
|
16
|
+
export * from "./event-emitter.js";
|
|
17
|
+
export * from "./feature-utils.js";
|
|
18
|
+
export * from "./filters/index.js";
|
|
19
|
+
export * from "./form-utils.js";
|
|
20
|
+
export * from "./formatting-utils.js";
|
|
21
|
+
export * from "./getUniqueId.js";
|
|
22
|
+
export * from "./group-utils.js";
|
|
23
|
+
export * from "./html-utils.js";
|
|
24
|
+
export * from "./input-utils.js";
|
|
25
|
+
export * from "./invariant.js";
|
|
26
|
+
export * from "./itemToString.js";
|
|
27
|
+
export * from "./json-types.js";
|
|
28
|
+
export * from "./json-utils.js";
|
|
29
|
+
export * from "./keyboard-utils.js";
|
|
30
|
+
export * from "./keyset.js";
|
|
31
|
+
export * from "./layout-types.js";
|
|
32
|
+
export * from "./list-utils.js";
|
|
33
|
+
export * from "./local-storage-utils.js";
|
|
34
|
+
export * from "./logging-utils.js";
|
|
35
|
+
export * from "./module-utils.js";
|
|
36
|
+
export * from "./nanoid/index.js";
|
|
37
|
+
export * from "./perf-utils.js";
|
|
38
|
+
export * from "./promise-utils.js";
|
|
39
|
+
export * from "./protocol-message-utils.js";
|
|
40
|
+
export * from "./range-utils.js";
|
|
41
|
+
export * from "./react-utils.js";
|
|
42
|
+
export * from "./round-decimal.js";
|
|
43
|
+
export * from "./row-utils.js";
|
|
44
|
+
export * from "./ScaledDecimal.js";
|
|
45
|
+
export * from "./selection-utils.js";
|
|
46
|
+
export * from "./shell-layout-types.js";
|
|
47
|
+
export * from "./sort-utils.js";
|
|
48
|
+
export * from "./table-schema-utils.js";
|
|
49
|
+
export * from "./text-utils.js";
|
|
50
|
+
export * from "./ThemeProvider.js";
|
|
51
|
+
export * from "./tree-types.js";
|
|
52
|
+
export * from "./tree-utils.js";
|
|
53
|
+
export * from "./ts-utils.js";
|
|
54
|
+
export * from "./typeahead-utils.js";
|
|
55
|
+
export * from "./url-utils.js";
|
|
56
|
+
export * from "./useId.js";
|
|
57
|
+
export * from "./useLayoutEffectSkipFirst.js";
|
|
58
|
+
export * from "./user-types.js";
|
|
59
|
+
export * from "./useStateRef.js";
|
|
60
|
+
export * from "./context-definitions/DataProvider.js";
|
|
61
|
+
export * from "./context-definitions/WorkspaceContext.js";
|
|
62
|
+
export * from "./ShellContext.js";
|
|
63
|
+
export { RestrictToHorizontalAxis } from "@dnd-kit/abstract/modifiers";
|
|
64
|
+
export { KeyboardSensor, PointerSensor } from "@dnd-kit/dom";
|
|
65
|
+
export { DragDropProvider, DragOverlay, useInstance } from "@dnd-kit/react";
|
|
66
|
+
export { useSortable } from "@dnd-kit/react/sortable";
|
|
67
|
+
export { Clock } from "./Clock.js";
|
|
68
|
+
export { DataEditingProvider, useEditSession } from "./data-editing/DataEditingProvider.js";
|
|
69
|
+
export { getVuuEditMessage, isInlineEditingSession } from "./data-editing/edit-utils.js";
|
|
70
|
+
export { EditButtons } from "./data-editing/EditButtons.js";
|
|
71
|
+
export { EditSession, StaleUpdateError } from "./data-editing/EditSession.js";
|
|
72
|
+
export { useEditableTable } from "./data-editing/useEditableTable.js";
|
|
73
|
+
export { WidthHeight, WidthOnly, useResizeObserver } from "./useResizeObserver.js";
|
|
74
|
+
export { DataContext } from "./context-definitions/DataContext.js";
|
|
75
|
+
export { DataSourceProvider, useDataSource } from "./context-definitions/DataSourceProvider.js";
|
|
76
|
+
export { PageVisibilityObserver } from "./PageVisibilityObserver.js";
|
|
77
|
+
export { ThemeLoadChecker } from "./theme-utils.js";
|
package/src/invariant.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const isPlainObject = (obj)=>"[object Object]" === Object.prototype.toString.call(obj);
|
|
2
|
+
function itemToString(item) {
|
|
3
|
+
if ("string" == typeof item) return item;
|
|
4
|
+
if (!isPlainObject(item)) return String(item);
|
|
5
|
+
if (Object.prototype.hasOwnProperty.call(item, "label")) return String(item.label);
|
|
6
|
+
console.warn("itemToString: you've likely forgotten to set the label prop on the item object.\nYou can also provide your own `itemToString` implementation.");
|
|
7
|
+
return "";
|
|
8
|
+
}
|
|
9
|
+
export { itemToString };
|
|
File without changes
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { metadataKeys } from "./column-utils.js";
|
|
2
|
+
const { COUNT: COUNT } = metadataKeys;
|
|
3
|
+
const isJsonData = (value)=>"object" == typeof value && null !== value;
|
|
4
|
+
const vuuRowDataItemTypes = [
|
|
5
|
+
"boolean",
|
|
6
|
+
"number",
|
|
7
|
+
"string"
|
|
8
|
+
];
|
|
9
|
+
const isVuuRowDataItem = (value)=>vuuRowDataItemTypes.includes(typeof value);
|
|
10
|
+
const getCellValue = (attribute, attributeValue)=>{
|
|
11
|
+
if (Array.isArray(attributeValue)) return {
|
|
12
|
+
attribute: `${attribute}[`,
|
|
13
|
+
attributeValue: "",
|
|
14
|
+
isLeaf: false
|
|
15
|
+
};
|
|
16
|
+
if (isJsonData(attributeValue)) return {
|
|
17
|
+
attribute: `${attribute}{`,
|
|
18
|
+
attributeValue: "",
|
|
19
|
+
isLeaf: false
|
|
20
|
+
};
|
|
21
|
+
if (void 0 === attributeValue) return {
|
|
22
|
+
attribute,
|
|
23
|
+
attributeValue: "undefined",
|
|
24
|
+
isLeaf: true
|
|
25
|
+
};
|
|
26
|
+
if (isVuuRowDataItem(attributeValue)) return {
|
|
27
|
+
attribute,
|
|
28
|
+
attributeValue,
|
|
29
|
+
isLeaf: true
|
|
30
|
+
};
|
|
31
|
+
throw Error(`unsupported type ${typeof attributeValue} in JSON`);
|
|
32
|
+
};
|
|
33
|
+
const jsonColumnType = {
|
|
34
|
+
name: "json",
|
|
35
|
+
renderer: {
|
|
36
|
+
name: "json"
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
const jsonToDataSourceRows = (json)=>{
|
|
40
|
+
const cols = [];
|
|
41
|
+
cols.push({
|
|
42
|
+
className: "vuuJsonCell",
|
|
43
|
+
name: "Level 1",
|
|
44
|
+
type: jsonColumnType
|
|
45
|
+
}, {
|
|
46
|
+
className: "vuuJsonCell",
|
|
47
|
+
name: "Level 2",
|
|
48
|
+
type: jsonColumnType
|
|
49
|
+
});
|
|
50
|
+
const rows = [];
|
|
51
|
+
addChildValues(rows, json, cols);
|
|
52
|
+
return [
|
|
53
|
+
cols,
|
|
54
|
+
rows
|
|
55
|
+
];
|
|
56
|
+
};
|
|
57
|
+
const addChildValues = (rows, json, cols, index = {
|
|
58
|
+
value: 0
|
|
59
|
+
}, keyBase = "$root", depth = 0)=>{
|
|
60
|
+
let leafCount = 0;
|
|
61
|
+
let rowCount = 0;
|
|
62
|
+
if (depth === cols.length - 1) cols.push({
|
|
63
|
+
className: "vuuJsonCell",
|
|
64
|
+
name: `Level ${cols.length + 1}`,
|
|
65
|
+
hidden: true,
|
|
66
|
+
type: jsonColumnType
|
|
67
|
+
});
|
|
68
|
+
const columnEntries = Object.entries(json);
|
|
69
|
+
for(let i = 0; i < columnEntries.length; i++, index.value += 1){
|
|
70
|
+
const [key, value] = columnEntries[i];
|
|
71
|
+
const { attribute, attributeValue, isLeaf } = getCellValue(key, value);
|
|
72
|
+
const blanks = Array(depth).fill("");
|
|
73
|
+
const fullKey = `${keyBase}|${key}`;
|
|
74
|
+
const ts = 0;
|
|
75
|
+
const isNew = false;
|
|
76
|
+
const row = [
|
|
77
|
+
index.value,
|
|
78
|
+
index.value,
|
|
79
|
+
isLeaf,
|
|
80
|
+
false,
|
|
81
|
+
depth,
|
|
82
|
+
0,
|
|
83
|
+
fullKey,
|
|
84
|
+
0,
|
|
85
|
+
ts,
|
|
86
|
+
isNew,
|
|
87
|
+
...blanks,
|
|
88
|
+
attribute,
|
|
89
|
+
attributeValue
|
|
90
|
+
];
|
|
91
|
+
rows.push(row);
|
|
92
|
+
rowCount += 1;
|
|
93
|
+
if (isJsonData(value)) {
|
|
94
|
+
const [nestedLeafCount, nestedRowCount] = addChildValues(rows, value, cols, {
|
|
95
|
+
value: index.value + 1
|
|
96
|
+
}, fullKey, depth + 1);
|
|
97
|
+
row[COUNT] = nestedLeafCount;
|
|
98
|
+
leafCount += nestedLeafCount;
|
|
99
|
+
rowCount += nestedRowCount;
|
|
100
|
+
index.value += nestedRowCount;
|
|
101
|
+
} else leafCount += 1;
|
|
102
|
+
}
|
|
103
|
+
return [
|
|
104
|
+
leafCount,
|
|
105
|
+
rowCount
|
|
106
|
+
];
|
|
107
|
+
};
|
|
108
|
+
export { jsonToDataSourceRows };
|
|
@@ -10,7 +10,5 @@ const PageUp = "PageUp";
|
|
|
10
10
|
const PageDown = "PageDown";
|
|
11
11
|
const Space = " ";
|
|
12
12
|
const Tab = "Tab";
|
|
13
|
-
const isArrowKey = (key)
|
|
14
|
-
|
|
13
|
+
const isArrowKey = (key)=>"ArrowUp" === key || "ArrowDown" === key || "ArrowLeft" === key || "ArrowRight" === key;
|
|
15
14
|
export { ArrowDown, ArrowLeft, ArrowRight, ArrowUp, End, Enter, Escape, Home, PageDown, PageUp, Space, Tab, isArrowKey };
|
|
16
|
-
//# sourceMappingURL=keyboard-utils.js.map
|
package/src/keyset.js
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
const EMPTY = [];
|
|
2
|
+
class KeySet {
|
|
3
|
+
keys = new Map();
|
|
4
|
+
nextKeyValue = 0;
|
|
5
|
+
range;
|
|
6
|
+
constructor(range){
|
|
7
|
+
this.range = range;
|
|
8
|
+
this.init(range);
|
|
9
|
+
}
|
|
10
|
+
next(free = EMPTY) {
|
|
11
|
+
if (free.length > 0) return free.shift();
|
|
12
|
+
return this.nextKeyValue++;
|
|
13
|
+
}
|
|
14
|
+
init({ from, to }) {
|
|
15
|
+
this.keys.clear();
|
|
16
|
+
this.nextKeyValue = 0;
|
|
17
|
+
for(let rowIndex = from; rowIndex < to; rowIndex++){
|
|
18
|
+
const nextKeyValue = this.next();
|
|
19
|
+
this.keys.set(rowIndex, nextKeyValue);
|
|
20
|
+
}
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
reset(range) {
|
|
24
|
+
const { from, to } = range;
|
|
25
|
+
const newSize = to - from;
|
|
26
|
+
const currentSize = this.range.to - this.range.from;
|
|
27
|
+
this.range = range;
|
|
28
|
+
if (currentSize > newSize) return this.init(range);
|
|
29
|
+
const freeKeys = [];
|
|
30
|
+
this.keys.forEach((keyValue, rowIndex)=>{
|
|
31
|
+
if (rowIndex < from || rowIndex >= to) {
|
|
32
|
+
freeKeys.push(keyValue);
|
|
33
|
+
this.keys.delete(rowIndex);
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
for(let rowIndex = from; rowIndex < to; rowIndex++)if (!this.keys.has(rowIndex)) {
|
|
37
|
+
const nextKeyValue = this.next(freeKeys);
|
|
38
|
+
this.keys.set(rowIndex, nextKeyValue);
|
|
39
|
+
}
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
keyFor(rowIndex) {
|
|
43
|
+
const key = this.keys.get(rowIndex);
|
|
44
|
+
if (void 0 === key) {
|
|
45
|
+
console.log(`key not found
|
|
46
|
+
keys: ${this.toDebugString()}
|
|
47
|
+
`);
|
|
48
|
+
throw Error(`KeySet, no key found for rowIndex ${rowIndex}`);
|
|
49
|
+
}
|
|
50
|
+
return key;
|
|
51
|
+
}
|
|
52
|
+
toDebugString() {
|
|
53
|
+
return `${this.keys.size} keys
|
|
54
|
+
${Array.from(this.keys.entries()).sort(([key1], [key2])=>key1 - key2).map(([k, v])=>`${k}=>${v}`).join(",")}]\n`;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
export { KeySet };
|
|
File without changes
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
const getLocalEntity = (key, deleteOnRead = false)=>{
|
|
2
|
+
const data = localStorage.getItem(key);
|
|
3
|
+
if (data) {
|
|
4
|
+
if (deleteOnRead) localStorage.removeItem(key);
|
|
5
|
+
return JSON.parse(data);
|
|
6
|
+
}
|
|
7
|
+
};
|
|
8
|
+
const clearLocalEntity = (key)=>{
|
|
9
|
+
const doomedItem = localStorage.getItem(key);
|
|
10
|
+
if (!doomedItem) return false;
|
|
11
|
+
localStorage.removeItem(key);
|
|
12
|
+
return true;
|
|
13
|
+
};
|
|
14
|
+
const getAllLocalEntity = (url)=>Object.entries(localStorage).filter(([key])=>key.includes(url)).map(([, value])=>JSON.parse(value));
|
|
15
|
+
const saveLocalEntity = (key, data)=>{
|
|
16
|
+
try {
|
|
17
|
+
localStorage.setItem(key, JSON.stringify(data));
|
|
18
|
+
return data;
|
|
19
|
+
} catch {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
export { clearLocalEntity, getAllLocalEntity, getLocalEntity, saveLocalEntity };
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { getCookieValue } from "./cookie-utils.js";
|
|
2
|
+
const logLevels = [
|
|
3
|
+
"error",
|
|
4
|
+
"warn",
|
|
5
|
+
"info",
|
|
6
|
+
"debug"
|
|
7
|
+
];
|
|
8
|
+
const isValidLogLevel = (value)=>"string" == typeof value && logLevels.includes(value);
|
|
9
|
+
const DEFAULT_LOG_LEVEL = "error";
|
|
10
|
+
const NO_OP = ()=>void 0;
|
|
11
|
+
const DEFAULT_DEBUG_LEVEL = "production" === process.env.NODE_ENV ? "error" : "info";
|
|
12
|
+
const { loggingLevel: loggingLevel = DEFAULT_DEBUG_LEVEL } = getLoggingSettings();
|
|
13
|
+
const logger = (category)=>{
|
|
14
|
+
const debugEnabled = "debug" === loggingLevel;
|
|
15
|
+
const infoEnabled = debugEnabled || "info" === loggingLevel;
|
|
16
|
+
const warnEnabled = infoEnabled || "warn" === loggingLevel;
|
|
17
|
+
const errorEnabled = warnEnabled || "error" === loggingLevel;
|
|
18
|
+
const info = infoEnabled ? (message)=>console.info(`${Date.now()} [${category}] ${message}`) : NO_OP;
|
|
19
|
+
const warn = warnEnabled ? (message)=>console.warn(`[${category}] ${message}`) : NO_OP;
|
|
20
|
+
const debug = debugEnabled ? (message)=>console.debug(`${Date.now()} [${category}] ${message}`) : NO_OP;
|
|
21
|
+
const error = errorEnabled ? (message)=>console.error(`[${category}] ${message}`) : NO_OP;
|
|
22
|
+
if ("production" === process.env.NODE_ENV) return {
|
|
23
|
+
errorEnabled,
|
|
24
|
+
error
|
|
25
|
+
};
|
|
26
|
+
return {
|
|
27
|
+
debugEnabled,
|
|
28
|
+
infoEnabled,
|
|
29
|
+
warnEnabled,
|
|
30
|
+
errorEnabled,
|
|
31
|
+
info,
|
|
32
|
+
warn,
|
|
33
|
+
debug,
|
|
34
|
+
error
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
function getLoggingSettings() {
|
|
38
|
+
if ("u" > typeof loggingSettings) return loggingSettings;
|
|
39
|
+
return {
|
|
40
|
+
loggingLevel: getLoggingLevelFromCookie()
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
function getLoggingLevelFromCookie() {
|
|
44
|
+
const value = getCookieValue("vuu-logging-level");
|
|
45
|
+
if (isValidLogLevel(value)) return value;
|
|
46
|
+
return DEFAULT_LOG_LEVEL;
|
|
47
|
+
}
|
|
48
|
+
const getLoggingConfigForWorker = ()=>`const loggingSettings = { loggingLevel: "${getLoggingLevelFromCookie()}"};`;
|
|
49
|
+
const logUnhandledMessage = (message, context = "[logUnhandledStruct]")=>{
|
|
50
|
+
console.log(`${context} ${JSON.stringify(message)}`);
|
|
51
|
+
};
|
|
52
|
+
export { getLoggingConfigForWorker, logUnhandledMessage, logger };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
const uuid = (size = 21)=>{
|
|
2
|
+
let id = '';
|
|
3
|
+
const bytes = crypto.getRandomValues(new Uint8Array(size));
|
|
4
|
+
while(size--){
|
|
5
|
+
const byte = 63 & bytes[size];
|
|
6
|
+
if (byte < 36) id += byte.toString(36);
|
|
7
|
+
else if (byte < 62) id += (byte - 26).toString(36).toUpperCase();
|
|
8
|
+
else if (byte < 63) id += '_';
|
|
9
|
+
else id += '-';
|
|
10
|
+
}
|
|
11
|
+
return id;
|
|
12
|
+
};
|
|
13
|
+
export { uuid };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
function debounce(callback, timeInterval) {
|
|
2
|
+
let timeout;
|
|
3
|
+
return (...args)=>{
|
|
4
|
+
clearTimeout(timeout);
|
|
5
|
+
timeout = window.setTimeout(()=>callback(...args), timeInterval);
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
function throttle(callback, limit) {
|
|
9
|
+
let wait = false;
|
|
10
|
+
let lastArgs;
|
|
11
|
+
function checkLastArgs() {
|
|
12
|
+
if (void 0 == lastArgs) wait = false;
|
|
13
|
+
else {
|
|
14
|
+
callback(...lastArgs);
|
|
15
|
+
lastArgs = void 0;
|
|
16
|
+
setTimeout(checkLastArgs, limit);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return (...args)=>{
|
|
20
|
+
if (wait) lastArgs = args;
|
|
21
|
+
else {
|
|
22
|
+
callback(...args);
|
|
23
|
+
wait = true;
|
|
24
|
+
setTimeout(checkLastArgs, limit);
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
export { debounce, throttle };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
class DeferredPromise {
|
|
2
|
+
#promise;
|
|
3
|
+
#resolve = ()=>console.log("resolve was not set");
|
|
4
|
+
#reject = ()=>console.log("reject was not set");
|
|
5
|
+
#resolved = false;
|
|
6
|
+
constructor(){
|
|
7
|
+
this.#promise = new Promise((resolve, reject)=>{
|
|
8
|
+
this.#resolve = resolve;
|
|
9
|
+
this.#reject = reject;
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
get promise() {
|
|
13
|
+
return this.#promise;
|
|
14
|
+
}
|
|
15
|
+
get isResolved() {
|
|
16
|
+
return this.#resolved;
|
|
17
|
+
}
|
|
18
|
+
resolve(value) {
|
|
19
|
+
this.#resolved = true;
|
|
20
|
+
return this.#resolve(value);
|
|
21
|
+
}
|
|
22
|
+
get reject() {
|
|
23
|
+
return this.#reject;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
export { DeferredPromise };
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { isView } from "./component-registry.js";
|
|
2
|
+
const MENU_RPC_TYPES = [
|
|
3
|
+
"VIEW_PORT_MENUS_SELECT_RPC",
|
|
4
|
+
"VIEW_PORT_MENU_TABLE_RPC",
|
|
5
|
+
"VIEW_PORT_MENU_ROW_RPC",
|
|
6
|
+
"VIEW_PORT_MENU_CELL_RPC"
|
|
7
|
+
];
|
|
8
|
+
const INVALID_SESSION = "Invalid session";
|
|
9
|
+
const SESSION_LIMIT_EXCEEDED = "User session limit exceeded";
|
|
10
|
+
const INVALID_TOKEN = "Invalid token";
|
|
11
|
+
const TOKEN_EXPIRED = "Token has expired";
|
|
12
|
+
const InvalidLoginMessages = [
|
|
13
|
+
INVALID_SESSION,
|
|
14
|
+
SESSION_LIMIT_EXCEEDED,
|
|
15
|
+
INVALID_TOKEN,
|
|
16
|
+
TOKEN_EXPIRED
|
|
17
|
+
];
|
|
18
|
+
const isErrorMessage = (message)=>"object" == typeof message && message?.type === "ERROR";
|
|
19
|
+
const isLoginErrorMessage = (message)=>"string" == typeof message && InvalidLoginMessages.includes(message);
|
|
20
|
+
const isSelectRequest = (message)=>message && "object" == typeof message && "type" in message && ("SELECT_ROW" === message.type || "DESELECT_ROW" === message.type || "SELECT_ROW_RANGE" === message.type || "SELECT_ALL" === message.type || "DESELECT_ALL" === message.type);
|
|
21
|
+
const isSelectSuccessWithRowCount = (response)=>[
|
|
22
|
+
"SELECT_ROW_SUCCESS",
|
|
23
|
+
"DESELECT_ROW_SUCCESS",
|
|
24
|
+
"SELECT_ROW_RANGE_SUCCESS",
|
|
25
|
+
"SELECT_ALL_SUCCESS",
|
|
26
|
+
"DESELECT_ALL_SUCCESS"
|
|
27
|
+
].includes(response.type ?? "") && "number" == typeof response.selectedRowCount;
|
|
28
|
+
const isRpcServiceRequest = (message)=>"RPC_REQUEST" === message.type;
|
|
29
|
+
const hasViewPortContext = (message)=>"VIEWPORT_CONTEXT" === message.context.type;
|
|
30
|
+
const isVuuMenuRpcRequest = (message)=>MENU_RPC_TYPES.includes(message["type"]);
|
|
31
|
+
const isLoginResponse = (message)=>null !== message && "object" == typeof message && "type" in message && ("LOGIN_SUCCESS" === message.type || "LOGIN_FAIL" === message.type);
|
|
32
|
+
const isRpcSuccess = (rpcResult)=>rpcResult?.type === "SUCCESS_RESULT";
|
|
33
|
+
const isRpcError = (rpcResult)=>rpcResult?.type === "ERROR_RESULT";
|
|
34
|
+
const isRequestResponse = (message)=>"requestId" in message;
|
|
35
|
+
const isOpenSessionTableDialogMessage = (rpcResponse)=>"VIEW_PORT_MENU_RESP" === rpcResponse.type && isOpenDialogAction(rpcResponse.action) && "tableSchema" in rpcResponse.action;
|
|
36
|
+
const isOpenDialogAction = (action)=>void 0 !== action && "OPEN_DIALOG_ACTION" === action.type;
|
|
37
|
+
const isTypeaheadRequest = (request)=>isRpcServiceRequest(request) && ("getUniqueFieldValues" === request.rpcName || "getUniqueFieldValuesStartingWith" === request.rpcName);
|
|
38
|
+
const isCreateVpSuccess = (response)=>"CREATE_VP_SUCCESS" === response.type;
|
|
39
|
+
const isSessionTable = (table)=>{
|
|
40
|
+
if (null !== table && "object" == typeof table && "table" in table && "module" in table) return table.table.startsWith("session");
|
|
41
|
+
return false;
|
|
42
|
+
};
|
|
43
|
+
function isActionMessage(rpcResponse) {
|
|
44
|
+
return "VIEW_PORT_MENU_RESP" === rpcResponse.type;
|
|
45
|
+
}
|
|
46
|
+
function isSessionTableActionMessage(rpcResponse) {
|
|
47
|
+
return isActionMessage(rpcResponse) && isOpenDialogAction(rpcResponse.action) && isSessionTable(rpcResponse.action.table) && (rpcResponse.action?.renderComponent === "inline-form" || rpcResponse.action?.renderComponent === "grid");
|
|
48
|
+
}
|
|
49
|
+
function isCustomComponentActionMessage(rpcResponse) {
|
|
50
|
+
return isActionMessage(rpcResponse) && isOpenDialogAction(rpcResponse.action) && isSessionTable(rpcResponse.action.table) && "string" == typeof rpcResponse.action.renderComponent && isView(rpcResponse.action.renderComponent);
|
|
51
|
+
}
|
|
52
|
+
const numericTypes = [
|
|
53
|
+
"int",
|
|
54
|
+
"long",
|
|
55
|
+
"double",
|
|
56
|
+
"scaleddecimal2",
|
|
57
|
+
"scaleddecimal4",
|
|
58
|
+
"scaleddecimal6",
|
|
59
|
+
"scaleddecimal8"
|
|
60
|
+
];
|
|
61
|
+
function isNumericType(dataType) {
|
|
62
|
+
return numericTypes.includes(dataType);
|
|
63
|
+
}
|
|
64
|
+
const isAddRowRpcRequest = (rpcRequest)=>"addRow" === rpcRequest.rpcName;
|
|
65
|
+
const isEditCellRpcRequest = (rpcRequest)=>"editCell" === rpcRequest.rpcName;
|
|
66
|
+
const isBeginEditSessionRpcRequest = (rpcRequest)=>"beginEditSession" === rpcRequest.rpcName;
|
|
67
|
+
const isEndEditSessionRpcRequest = (rpcRequest)=>"endEditSession" === rpcRequest.rpcName;
|
|
68
|
+
export { INVALID_SESSION, INVALID_TOKEN, SESSION_LIMIT_EXCEEDED, TOKEN_EXPIRED, hasViewPortContext, isActionMessage, isAddRowRpcRequest, isBeginEditSessionRpcRequest, isCreateVpSuccess, isCustomComponentActionMessage, isEditCellRpcRequest, isEndEditSessionRpcRequest, isErrorMessage, isLoginErrorMessage, isLoginResponse, isNumericType, isOpenDialogAction, isOpenSessionTableDialogMessage, isRequestResponse, isRpcError, isRpcServiceRequest, isRpcSuccess, isSelectRequest, isSelectSuccessWithRowCount, isSessionTable, isSessionTableActionMessage, isTypeaheadRequest, isVuuMenuRpcRequest };
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
class RangeImpl {
|
|
2
|
+
from;
|
|
3
|
+
to;
|
|
4
|
+
#baseFrom;
|
|
5
|
+
#renderBufferSize = 0;
|
|
6
|
+
#baseTo;
|
|
7
|
+
constructor(from, to, renderBufferSize = 0){
|
|
8
|
+
this.from = from;
|
|
9
|
+
this.to = to;
|
|
10
|
+
this.#baseFrom = from;
|
|
11
|
+
this.#baseTo = to;
|
|
12
|
+
this.#renderBufferSize = renderBufferSize;
|
|
13
|
+
}
|
|
14
|
+
get reset() {
|
|
15
|
+
return new RangeImpl(0, this.#baseTo - this.#baseFrom, this.#renderBufferSize);
|
|
16
|
+
}
|
|
17
|
+
get withBuffer() {
|
|
18
|
+
return getFullRange(this, this.#renderBufferSize);
|
|
19
|
+
}
|
|
20
|
+
equals(range) {
|
|
21
|
+
return range.from === this.#baseFrom && range.to === this.#baseTo;
|
|
22
|
+
}
|
|
23
|
+
toJson() {
|
|
24
|
+
return {
|
|
25
|
+
from: this.from,
|
|
26
|
+
to: this.to,
|
|
27
|
+
baseFrom: this.#baseFrom,
|
|
28
|
+
baseTo: this.#baseTo,
|
|
29
|
+
renderBufferSize: this.#renderBufferSize
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
const Range = (from, to, renderBufferSize)=>new RangeImpl(from, to, renderBufferSize);
|
|
34
|
+
const NULL_RANGE = Range(0, 0);
|
|
35
|
+
function getFullRange({ from, to }, bufferSize = 0, totalRowCount = Number.MAX_SAFE_INTEGER) {
|
|
36
|
+
if (0 === from && 0 === to) return {
|
|
37
|
+
from,
|
|
38
|
+
to
|
|
39
|
+
};
|
|
40
|
+
if (0 === bufferSize) if (totalRowCount < from) return {
|
|
41
|
+
from: 0,
|
|
42
|
+
to: 0
|
|
43
|
+
};
|
|
44
|
+
else return {
|
|
45
|
+
from,
|
|
46
|
+
to: Math.min(to, totalRowCount)
|
|
47
|
+
};
|
|
48
|
+
{
|
|
49
|
+
if (0 === from) return {
|
|
50
|
+
from,
|
|
51
|
+
to: Math.min(to + bufferSize, totalRowCount)
|
|
52
|
+
};
|
|
53
|
+
const shortfallBefore = from - bufferSize < 0;
|
|
54
|
+
const shortfallAfter = totalRowCount - (to + bufferSize) < 0;
|
|
55
|
+
if (shortfallBefore && shortfallAfter) return {
|
|
56
|
+
from: 0,
|
|
57
|
+
to: totalRowCount
|
|
58
|
+
};
|
|
59
|
+
if (shortfallBefore) return {
|
|
60
|
+
from: 0,
|
|
61
|
+
to: to + bufferSize
|
|
62
|
+
};
|
|
63
|
+
if (shortfallAfter) return {
|
|
64
|
+
from: Math.max(0, from - bufferSize),
|
|
65
|
+
to: totalRowCount
|
|
66
|
+
};
|
|
67
|
+
else return {
|
|
68
|
+
from: from - bufferSize,
|
|
69
|
+
to: to + bufferSize
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
const withinRange = (value, { from, to })=>value >= from && value < to;
|
|
74
|
+
const rangeNewItems = ({ from: from1, to: to1 }, newRange)=>{
|
|
75
|
+
const { from: from2, to: to2 } = newRange;
|
|
76
|
+
const noOverlap = from2 >= to1 || to2 <= from1;
|
|
77
|
+
const newFullySubsumesOld = from2 < from1 && to2 > to1;
|
|
78
|
+
return noOverlap || newFullySubsumesOld ? newRange : to2 > to1 ? {
|
|
79
|
+
from: to1,
|
|
80
|
+
to: to2
|
|
81
|
+
} : {
|
|
82
|
+
from: from2,
|
|
83
|
+
to: from1
|
|
84
|
+
};
|
|
85
|
+
};
|
|
86
|
+
class WindowRange {
|
|
87
|
+
from;
|
|
88
|
+
to;
|
|
89
|
+
constructor(from, to){
|
|
90
|
+
this.from = from;
|
|
91
|
+
this.to = to;
|
|
92
|
+
}
|
|
93
|
+
isWithin(index) {
|
|
94
|
+
return withinRange(index, this);
|
|
95
|
+
}
|
|
96
|
+
overlap(from, to) {
|
|
97
|
+
return from >= this.to || to < this.from ? [
|
|
98
|
+
0,
|
|
99
|
+
0
|
|
100
|
+
] : [
|
|
101
|
+
Math.max(from, this.from),
|
|
102
|
+
Math.min(to, this.to)
|
|
103
|
+
];
|
|
104
|
+
}
|
|
105
|
+
copy() {
|
|
106
|
+
return new WindowRange(this.from, this.to);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
export { NULL_RANGE, Range, WindowRange, getFullRange, rangeNewItems, withinRange };
|