@vuu-ui/vuu-shell 0.8.76 → 0.8.77
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/ShellContextProvider.js +3 -9
- package/cjs/ShellContextProvider.js.map +1 -1
- package/cjs/app-header/AppHeader.js +3 -1
- package/cjs/app-header/AppHeader.js.map +1 -1
- package/cjs/application-provider/ApplicationContext.js.map +1 -1
- package/cjs/application-provider/ApplicationProvider.js +8 -1
- package/cjs/application-provider/ApplicationProvider.js.map +1 -1
- package/cjs/feature-provider/FeatureProvider.js +47 -0
- package/cjs/feature-provider/FeatureProvider.js.map +1 -0
- package/cjs/feature-provider/useVuuFeatures.js +20 -0
- package/cjs/feature-provider/useVuuFeatures.js.map +1 -0
- package/cjs/index.js +26 -24
- package/cjs/index.js.map +1 -1
- package/cjs/left-nav/LeftNav.js +12 -6
- package/cjs/left-nav/LeftNav.js.map +1 -1
- package/cjs/login/LoginPanel.js +3 -3
- package/cjs/login/LoginPanel.js.map +1 -1
- package/cjs/persistence-manager/LocalPersistenceManager.js +2 -2
- package/cjs/persistence-manager/LocalPersistenceManager.js.map +1 -1
- package/cjs/persistence-manager/RemotePersistenceManager.js +2 -2
- package/cjs/persistence-manager/RemotePersistenceManager.js.map +1 -1
- package/cjs/persistence-manager/StaticPersistenceManager.js.map +1 -1
- package/cjs/shell-layout-templates/full-height-left-panel/useFullHeightLeftPanel.js +6 -4
- package/cjs/shell-layout-templates/full-height-left-panel/useFullHeightLeftPanel.js.map +1 -1
- package/cjs/shell-layout-templates/useShellLayout.js.map +1 -1
- package/cjs/shell.js +37 -30
- package/cjs/shell.js.map +1 -1
- package/cjs/user-settings/SettingsForm.js +82 -19
- package/cjs/user-settings/SettingsForm.js.map +1 -1
- package/cjs/user-settings/UserSettingsPanel.css.js +1 -1
- package/cjs/user-settings/UserSettingsPanel.js +2 -1
- package/cjs/user-settings/UserSettingsPanel.js.map +1 -1
- package/cjs/{layout-management → workspace-management}/LayoutList.js +4 -4
- package/cjs/workspace-management/LayoutList.js.map +1 -0
- package/cjs/workspace-management/LayoutTile.js.map +1 -0
- package/cjs/workspace-management/SaveLayoutPanel.js.map +1 -0
- package/cjs/{layout-management/LayoutManagementProvider.js → workspace-management/WorkspaceProvider.js} +24 -25
- package/cjs/workspace-management/WorkspaceProvider.js.map +1 -0
- package/cjs/{layout-management → workspace-management}/defaultWorkspaceJSON.js +1 -0
- package/cjs/workspace-management/defaultWorkspaceJSON.js.map +1 -0
- package/cjs/workspace-management/screenshot-utils.js.map +1 -0
- package/cjs/{layout-management/useLayoutContextMenuItems.js → workspace-management/useWorkspaceContextMenuItems.js} +6 -6
- package/cjs/workspace-management/useWorkspaceContextMenuItems.js.map +1 -0
- package/esm/ShellContextProvider.js +2 -7
- package/esm/ShellContextProvider.js.map +1 -1
- package/esm/app-header/AppHeader.js +3 -1
- package/esm/app-header/AppHeader.js.map +1 -1
- package/esm/application-provider/ApplicationContext.js.map +1 -1
- package/esm/application-provider/ApplicationProvider.js +8 -2
- package/esm/application-provider/ApplicationProvider.js.map +1 -1
- package/esm/feature-provider/FeatureProvider.js +44 -0
- package/esm/feature-provider/FeatureProvider.js.map +1 -0
- package/esm/feature-provider/useVuuFeatures.js +18 -0
- package/esm/feature-provider/useVuuFeatures.js.map +1 -0
- package/esm/index.js +10 -9
- package/esm/index.js.map +1 -1
- package/esm/left-nav/LeftNav.js +12 -6
- package/esm/left-nav/LeftNav.js.map +1 -1
- package/esm/login/LoginPanel.js +3 -3
- package/esm/login/LoginPanel.js.map +1 -1
- package/esm/persistence-manager/LocalPersistenceManager.js +2 -2
- package/esm/persistence-manager/LocalPersistenceManager.js.map +1 -1
- package/esm/persistence-manager/RemotePersistenceManager.js +2 -2
- package/esm/persistence-manager/RemotePersistenceManager.js.map +1 -1
- package/esm/persistence-manager/StaticPersistenceManager.js.map +1 -1
- package/esm/shell-layout-templates/full-height-left-panel/useFullHeightLeftPanel.js +6 -4
- package/esm/shell-layout-templates/full-height-left-panel/useFullHeightLeftPanel.js.map +1 -1
- package/esm/shell-layout-templates/useShellLayout.js.map +1 -1
- package/esm/shell.js +37 -30
- package/esm/shell.js.map +1 -1
- package/esm/user-settings/SettingsForm.js +84 -21
- package/esm/user-settings/SettingsForm.js.map +1 -1
- package/esm/user-settings/UserSettingsPanel.css.js +1 -1
- package/esm/user-settings/UserSettingsPanel.js +2 -1
- package/esm/user-settings/UserSettingsPanel.js.map +1 -1
- package/esm/{layout-management → workspace-management}/LayoutList.js +4 -4
- package/esm/workspace-management/LayoutList.js.map +1 -0
- package/esm/workspace-management/LayoutTile.js.map +1 -0
- package/esm/workspace-management/SaveLayoutPanel.js.map +1 -0
- package/esm/{layout-management/LayoutManagementProvider.js → workspace-management/WorkspaceProvider.js} +25 -25
- package/esm/workspace-management/WorkspaceProvider.js.map +1 -0
- package/esm/{layout-management → workspace-management}/defaultWorkspaceJSON.js +1 -0
- package/esm/workspace-management/defaultWorkspaceJSON.js.map +1 -0
- package/esm/workspace-management/screenshot-utils.js.map +1 -0
- package/esm/{layout-management/useLayoutContextMenuItems.js → workspace-management/useWorkspaceContextMenuItems.js} +6 -6
- package/esm/workspace-management/useWorkspaceContextMenuItems.js.map +1 -0
- package/package.json +12 -11
- package/types/ShellContextProvider.d.ts +10 -0
- package/types/{vuu-shell/src/app-header → app-header}/AppHeader.d.ts +1 -2
- package/types/{vuu-shell/src/application-provider → application-provider}/ApplicationContext.d.ts +1 -0
- package/types/{vuu-shell/src/application-provider → application-provider}/ApplicationProvider.d.ts +2 -1
- package/types/feature-provider/FeatureProvider.d.ts +14 -0
- package/types/feature-provider/index.d.ts +2 -0
- package/types/feature-provider/useVuuFeatures.d.ts +9 -0
- package/types/{vuu-shell/src/index.d.ts → index.d.ts} +3 -3
- package/types/{vuu-shell/src/left-nav → left-nav}/LeftNav.d.ts +2 -2
- package/types/{vuu-shell/src/persistence-manager → persistence-manager}/LocalPersistenceManager.d.ts +1 -2
- package/types/{vuu-shell/src/persistence-manager → persistence-manager}/PersistenceManager.d.ts +1 -2
- package/types/{vuu-shell/src/persistence-manager → persistence-manager}/RemotePersistenceManager.d.ts +1 -2
- package/types/{vuu-shell/src/persistence-manager → persistence-manager}/StaticPersistenceManager.d.ts +2 -3
- package/types/{vuu-shell/src/shell-layout-templates → shell-layout-templates}/useShellLayout.d.ts +1 -5
- package/types/{vuu-shell/src/shell.d.ts → shell.d.ts} +4 -5
- package/types/{vuu-shell/src/user-settings → user-settings}/SettingsForm.d.ts +8 -2
- package/types/{vuu-shell/src/layout-management → workspace-management}/LayoutTile.d.ts +1 -1
- package/types/{vuu-shell/src/layout-management → workspace-management}/SaveLayoutPanel.d.ts +1 -1
- package/types/workspace-management/WorkspaceProvider.d.ts +53 -0
- package/types/{vuu-shell/src/layout-management → workspace-management}/defaultWorkspaceJSON.d.ts +3 -3
- package/types/workspace-management/index.d.ts +5 -0
- package/types/{vuu-shell/src/layout-management/useLayoutContextMenuItems.d.ts → workspace-management/useWorkspaceContextMenuItems.d.ts} +1 -1
- package/cjs/layout-management/LayoutList.js.map +0 -1
- package/cjs/layout-management/LayoutManagementProvider.js.map +0 -1
- package/cjs/layout-management/LayoutTile.js.map +0 -1
- package/cjs/layout-management/SaveLayoutPanel.js.map +0 -1
- package/cjs/layout-management/defaultWorkspaceJSON.js.map +0 -1
- package/cjs/layout-management/screenshot-utils.js.map +0 -1
- package/cjs/layout-management/useLayoutContextMenuItems.js.map +0 -1
- package/cjs/session-editing-form/SessionEditingForm.css.js +0 -6
- package/cjs/session-editing-form/SessionEditingForm.css.js.map +0 -1
- package/cjs/session-editing-form/SessionEditingForm.js +0 -302
- package/cjs/session-editing-form/SessionEditingForm.js.map +0 -1
- package/esm/layout-management/LayoutList.js.map +0 -1
- package/esm/layout-management/LayoutManagementProvider.js.map +0 -1
- package/esm/layout-management/LayoutTile.js.map +0 -1
- package/esm/layout-management/SaveLayoutPanel.js.map +0 -1
- package/esm/layout-management/defaultWorkspaceJSON.js.map +0 -1
- package/esm/layout-management/screenshot-utils.js.map +0 -1
- package/esm/layout-management/useLayoutContextMenuItems.js.map +0 -1
- package/esm/session-editing-form/SessionEditingForm.css.js +0 -4
- package/esm/session-editing-form/SessionEditingForm.css.js.map +0 -1
- package/esm/session-editing-form/SessionEditingForm.js +0 -300
- package/esm/session-editing-form/SessionEditingForm.js.map +0 -1
- package/types/vuu-layout/src/Component.d.ts +0 -6
- package/types/vuu-layout/src/LayoutContainer.d.ts +0 -6
- package/types/vuu-layout/src/dock-layout/DockLayout.d.ts +0 -7
- package/types/vuu-layout/src/dock-layout/Drawer.d.ts +0 -17
- package/types/vuu-layout/src/dock-layout/index.d.ts +0 -2
- package/types/vuu-layout/src/drag-drop/BoxModel.d.ts +0 -143
- package/types/vuu-layout/src/drag-drop/DragState.d.ts +0 -46
- package/types/vuu-layout/src/drag-drop/Draggable.d.ts +0 -24
- package/types/vuu-layout/src/drag-drop/DropMenu.d.ts +0 -9
- package/types/vuu-layout/src/drag-drop/DropTarget.d.ts +0 -60
- package/types/vuu-layout/src/drag-drop/DropTargetRenderer.d.ts +0 -17
- package/types/vuu-layout/src/drag-drop/dragDropTypes.d.ts +0 -51
- package/types/vuu-layout/src/drag-drop/index.d.ts +0 -4
- package/types/vuu-layout/src/flexbox/Flexbox.d.ts +0 -4
- package/types/vuu-layout/src/flexbox/FlexboxLayout.d.ts +0 -6
- package/types/vuu-layout/src/flexbox/FluidGrid.d.ts +0 -6
- package/types/vuu-layout/src/flexbox/FluidGridLayout.d.ts +0 -6
- package/types/vuu-layout/src/flexbox/Splitter.d.ts +0 -12
- package/types/vuu-layout/src/flexbox/flexbox-utils.d.ts +0 -12
- package/types/vuu-layout/src/flexbox/flexboxTypes.d.ts +0 -51
- package/types/vuu-layout/src/flexbox/index.d.ts +0 -4
- package/types/vuu-layout/src/flexbox/useResponsiveSizing.d.ts +0 -10
- package/types/vuu-layout/src/flexbox/useSplitterResizing.d.ts +0 -2
- package/types/vuu-layout/src/index.d.ts +0 -17
- package/types/vuu-layout/src/layout-action.d.ts +0 -19
- package/types/vuu-layout/src/layout-header/Header.d.ts +0 -13
- package/types/vuu-layout/src/layout-header/index.d.ts +0 -1
- package/types/vuu-layout/src/layout-provider/LayoutProvider.d.ts +0 -15
- package/types/vuu-layout/src/layout-provider/LayoutProviderContext.d.ts +0 -10
- package/types/vuu-layout/src/layout-provider/index.d.ts +0 -2
- package/types/vuu-layout/src/layout-provider/useLayoutDragDrop.d.ts +0 -4
- package/types/vuu-layout/src/layout-reducer/flexUtils.d.ts +0 -22
- package/types/vuu-layout/src/layout-reducer/index.d.ts +0 -4
- package/types/vuu-layout/src/layout-reducer/insert-layout-element.d.ts +0 -8
- package/types/vuu-layout/src/layout-reducer/layout-reducer.d.ts +0 -3
- package/types/vuu-layout/src/layout-reducer/layoutTypes.d.ts +0 -131
- package/types/vuu-layout/src/layout-reducer/layoutUtils.d.ts +0 -44
- package/types/vuu-layout/src/layout-reducer/move-layout-element.d.ts +0 -3
- package/types/vuu-layout/src/layout-reducer/remove-layout-element.d.ts +0 -3
- package/types/vuu-layout/src/layout-reducer/replace-layout-element.d.ts +0 -6
- package/types/vuu-layout/src/layout-reducer/resize-flex-children.d.ts +0 -4
- package/types/vuu-layout/src/layout-reducer/wrap-layout-element.d.ts +0 -9
- package/types/vuu-layout/src/layout-view/View.d.ts +0 -10
- package/types/vuu-layout/src/layout-view/index.d.ts +0 -3
- package/types/vuu-layout/src/layout-view/useView.d.ts +0 -21
- package/types/vuu-layout/src/layout-view/useViewBroadcastChannel.d.ts +0 -7
- package/types/vuu-layout/src/layout-view/useViewResize.d.ts +0 -7
- package/types/vuu-layout/src/layout-view/viewTypes.d.ts +0 -45
- package/types/vuu-layout/src/layout-view-actions/ViewContext.d.ts +0 -33
- package/types/vuu-layout/src/layout-view-actions/index.d.ts +0 -2
- package/types/vuu-layout/src/layout-view-actions/useViewActionDispatcher.d.ts +0 -4
- package/types/vuu-layout/src/palette/Palette.d.ts +0 -25
- package/types/vuu-layout/src/palette/index.d.ts +0 -1
- package/types/vuu-layout/src/placeholder/LayoutStartPanel.d.ts +0 -5
- package/types/vuu-layout/src/placeholder/Placeholder.d.ts +0 -17
- package/types/vuu-layout/src/placeholder/index.d.ts +0 -1
- package/types/vuu-layout/src/responsive/breakpoints.d.ts +0 -4
- package/types/vuu-layout/src/responsive/index.d.ts +0 -3
- package/types/vuu-layout/src/responsive/use-breakpoints.d.ts +0 -7
- package/types/vuu-layout/src/responsive/useResizeObserver.d.ts +0 -13
- package/types/vuu-layout/src/responsive/utils.d.ts +0 -6
- package/types/vuu-layout/src/stack/Stack.d.ts +0 -3
- package/types/vuu-layout/src/stack/StackLayout.d.ts +0 -6
- package/types/vuu-layout/src/stack/index.d.ts +0 -3
- package/types/vuu-layout/src/stack/stackTypes.d.ts +0 -24
- package/types/vuu-layout/src/use-persistent-state.d.ts +0 -11
- package/types/vuu-layout/src/utils/index.d.ts +0 -5
- package/types/vuu-layout/src/utils/pathUtils.d.ts +0 -31
- package/types/vuu-layout/src/utils/propUtils.d.ts +0 -5
- package/types/vuu-layout/src/utils/refUtils.d.ts +0 -2
- package/types/vuu-layout/src/utils/styleUtils.d.ts +0 -3
- package/types/vuu-layout/src/utils/typeOf.d.ts +0 -7
- package/types/vuu-shell/src/ShellContextProvider.d.ts +0 -17
- package/types/vuu-shell/src/layout-management/LayoutManagementProvider.d.ts +0 -55
- package/types/vuu-shell/src/layout-management/index.d.ts +0 -6
- package/types/vuu-shell/src/layout-management/layoutTypes.d.ts +0 -19
- package/types/vuu-shell/src/persistence-provider/PersistenceProviderNext.d.ts +0 -10
- package/types/vuu-shell/src/persistence-provider/index.d.ts +0 -1
- package/types/vuu-shell/src/session-editing-form/SessionEditingForm.d.ts +0 -24
- package/types/vuu-shell/src/session-editing-form/index.d.ts +0 -1
- package/cjs/{layout-management → workspace-management}/LayoutList.css.js +0 -0
- package/cjs/{layout-management → workspace-management}/LayoutList.css.js.map +0 -0
- package/cjs/{layout-management → workspace-management}/LayoutTile.css.js +0 -0
- package/cjs/{layout-management → workspace-management}/LayoutTile.css.js.map +0 -0
- package/cjs/{layout-management → workspace-management}/LayoutTile.js +0 -0
- package/cjs/{layout-management → workspace-management}/SaveLayoutPanel.css.js +0 -0
- package/cjs/{layout-management → workspace-management}/SaveLayoutPanel.css.js.map +0 -0
- package/cjs/{layout-management → workspace-management}/SaveLayoutPanel.js +2 -2
- package/cjs/{layout-management → workspace-management}/screenshot-utils.js +0 -0
- package/esm/{layout-management → workspace-management}/LayoutList.css.js +0 -0
- package/esm/{layout-management → workspace-management}/LayoutList.css.js.map +0 -0
- package/esm/{layout-management → workspace-management}/LayoutTile.css.js +0 -0
- package/esm/{layout-management → workspace-management}/LayoutTile.css.js.map +0 -0
- package/esm/{layout-management → workspace-management}/LayoutTile.js +0 -0
- package/esm/{layout-management → workspace-management}/SaveLayoutPanel.css.js +0 -0
- package/esm/{layout-management → workspace-management}/SaveLayoutPanel.css.js.map +0 -0
- package/esm/{layout-management → workspace-management}/SaveLayoutPanel.js +2 -2
- /package/esm/{layout-management → workspace-management}/screenshot-utils.js +0 -0
- /package/types/{vuu-shell/src/app-header → app-header}/index.d.ts +0 -0
- /package/types/{vuu-shell/src/application-provider → application-provider}/index.d.ts +0 -0
- /package/types/{vuu-shell/src/connection-status → connection-status}/ConnectionStatusIndicator.d.ts +0 -0
- /package/types/{vuu-shell/src/connection-status → connection-status}/index.d.ts +0 -0
- /package/types/{vuu-shell/src/datasource-provider → datasource-provider}/DataSourceProvider.d.ts +0 -0
- /package/types/{vuu-shell/src/datasource-provider → datasource-provider}/index.d.ts +0 -0
- /package/types/{vuu-shell/src/feature → feature}/Feature.d.ts +0 -0
- /package/types/{vuu-shell/src/feature → feature}/FeatureErrorBoundary.d.ts +0 -0
- /package/types/{vuu-shell/src/feature → feature}/Loader.d.ts +0 -0
- /package/types/{vuu-shell/src/feature → feature}/index.d.ts +0 -0
- /package/types/{vuu-shell/src/feature-list → feature-list}/FeatureList.d.ts +0 -0
- /package/types/{vuu-shell/src/feature-list → feature-list}/index.d.ts +0 -0
- /package/types/{vuu-shell/src/get-layout-history.d.ts → get-layout-history.d.ts} +0 -0
- /package/types/{vuu-shell/src/left-nav → left-nav}/index.d.ts +0 -0
- /package/types/{vuu-shell/src/login → login}/LoginPanel.d.ts +0 -0
- /package/types/{vuu-shell/src/login → login}/VuuLogo.d.ts +0 -0
- /package/types/{vuu-shell/src/login → login}/index.d.ts +0 -0
- /package/types/{vuu-shell/src/login → login}/login-utils.d.ts +0 -0
- /package/types/{vuu-shell/src/persistence-manager → persistence-manager}/PersistenceProvider.d.ts +0 -0
- /package/types/{vuu-shell/src/persistence-manager → persistence-manager}/index.d.ts +0 -0
- /package/types/{vuu-shell/src/shell-layout-templates → shell-layout-templates}/context-panel/ContextPanel.d.ts +0 -0
- /package/types/{vuu-shell/src/shell-layout-templates → shell-layout-templates}/context-panel/index.d.ts +0 -0
- /package/types/{vuu-shell/src/shell-layout-templates → shell-layout-templates}/full-height-left-panel/useFullHeightLeftPanel.d.ts +0 -0
- /package/types/{vuu-shell/src/shell-layout-templates → shell-layout-templates}/index.d.ts +0 -0
- /package/types/{vuu-shell/src/shell-layout-templates → shell-layout-templates}/inlay-left-panel/useInlayLeftPanel.d.ts +0 -0
- /package/types/{vuu-shell/src/shell-layout-templates → shell-layout-templates}/side-panel/SidePanel.d.ts +0 -0
- /package/types/{vuu-shell/src/shell-layout-templates → shell-layout-templates}/side-panel/index.d.ts +0 -0
- /package/types/{vuu-shell/src/shell-layout-templates → shell-layout-templates}/simple-content-pane/useSimpleContentPane.d.ts +0 -0
- /package/types/{vuu-shell/src/theme-switch → theme-switch}/ThemeSwitch.d.ts +0 -0
- /package/types/{vuu-shell/src/theme-switch → theme-switch}/index.d.ts +0 -0
- /package/types/{vuu-shell/src/use-force-render.d.ts → use-force-render.d.ts} +0 -0
- /package/types/{vuu-shell/src/user-settings → user-settings}/UserSettingsPanel.d.ts +0 -0
- /package/types/{vuu-shell/src/user-settings → user-settings}/index.d.ts +0 -0
- /package/types/{vuu-shell/src/layout-management → workspace-management}/LayoutList.d.ts +0 -0
- /package/types/{vuu-shell/src/layout-management → workspace-management}/screenshot-utils.d.ts +0 -0
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
-
var
|
|
4
|
+
var vuuUtils = require('@vuu-ui/vuu-utils');
|
|
5
5
|
|
|
6
|
-
const defaultConfig = {};
|
|
7
|
-
const ShellContext = React.createContext(defaultConfig);
|
|
8
6
|
const Provider = ({
|
|
9
7
|
children,
|
|
10
8
|
context,
|
|
@@ -14,18 +12,14 @@ const Provider = ({
|
|
|
14
12
|
...inheritedContext,
|
|
15
13
|
...context
|
|
16
14
|
};
|
|
17
|
-
return /* @__PURE__ */ jsxRuntime.jsx(ShellContext.Provider, { value: mergedContext, children });
|
|
15
|
+
return /* @__PURE__ */ jsxRuntime.jsx(vuuUtils.ShellContext.Provider, { value: mergedContext, children });
|
|
18
16
|
};
|
|
19
17
|
const ShellContextProvider = ({
|
|
20
18
|
children,
|
|
21
19
|
value
|
|
22
20
|
}) => {
|
|
23
|
-
return /* @__PURE__ */ jsxRuntime.jsx(ShellContext.Consumer, { children: (context) => /* @__PURE__ */ jsxRuntime.jsx(Provider, { context: value, inheritedContext: context, children }) });
|
|
24
|
-
};
|
|
25
|
-
const useShellContext = () => {
|
|
26
|
-
return React.useContext(ShellContext);
|
|
21
|
+
return /* @__PURE__ */ jsxRuntime.jsx(vuuUtils.ShellContext.Consumer, { children: (context) => /* @__PURE__ */ jsxRuntime.jsx(Provider, { context: value, inheritedContext: context, children }) });
|
|
27
22
|
};
|
|
28
23
|
|
|
29
24
|
exports.ShellContextProvider = ShellContextProvider;
|
|
30
|
-
exports.useShellContext = useShellContext;
|
|
31
25
|
//# sourceMappingURL=ShellContextProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShellContextProvider.js","sources":["../src/ShellContextProvider.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"ShellContextProvider.js","sources":["../src/ShellContextProvider.tsx"],"sourcesContent":["import type { VuuTable } from \"@vuu-ui/vuu-protocol-types\";\nimport { ListOption } from \"@vuu-ui/vuu-table-types\";\nimport { ShellContext, ShellContextProps } from \"@vuu-ui/vuu-utils\";\nimport { ReactElement, ReactNode } from \"react\";\n\nexport type LookupTableProvider = (table: VuuTable) => ListOption[];\n\nexport interface ShellProviderProps {\n children: ReactNode;\n value?: ShellContextProps;\n}\n\nconst Provider = ({\n children,\n context,\n inheritedContext,\n}: {\n children: ReactNode;\n context?: ShellContextProps;\n inheritedContext?: ShellContextProps;\n}) => {\n // TODO functions provided at multiple levels must be merged\n const mergedContext = {\n ...inheritedContext,\n ...context,\n };\n return (\n <ShellContext.Provider value={mergedContext}>\n {children}\n </ShellContext.Provider>\n );\n};\n\nexport const ShellContextProvider = ({\n children,\n value,\n}: ShellProviderProps): ReactElement => {\n return (\n <ShellContext.Consumer>\n {(context) => (\n <Provider context={value} inheritedContext={context}>\n {children}\n </Provider>\n )}\n </ShellContext.Consumer>\n );\n};\n"],"names":["ShellContext","jsx"],"mappings":";;;;;AAYA,MAAM,WAAW,CAAC;AAAA,EAChB,QAAA;AAAA,EACA,OAAA;AAAA,EACA,gBAAA;AACF,CAIM,KAAA;AAEJ,EAAA,MAAM,aAAgB,GAAA;AAAA,IACpB,GAAG,gBAAA;AAAA,IACH,GAAG,OAAA;AAAA,GACL,CAAA;AACA,EAAA,sCACGA,qBAAa,CAAA,QAAA,EAAb,EAAsB,KAAA,EAAO,eAC3B,QACH,EAAA,CAAA,CAAA;AAEJ,CAAA,CAAA;AAEO,MAAM,uBAAuB,CAAC;AAAA,EACnC,QAAA;AAAA,EACA,KAAA;AACF,CAAwC,KAAA;AACtC,EAAA,uBACGC,cAAA,CAAAD,qBAAA,CAAa,QAAb,EAAA,EACE,QAAC,EAAA,CAAA,OAAA,qBACCC,cAAA,CAAA,QAAA,EAAA,EAAS,OAAS,EAAA,KAAA,EAAO,gBAAkB,EAAA,OAAA,EACzC,UACH,CAEJ,EAAA,CAAA,CAAA;AAEJ;;;;"}
|
|
@@ -10,12 +10,12 @@ var window = require('@salt-ds/window');
|
|
|
10
10
|
var cx = require('clsx');
|
|
11
11
|
var React = require('react');
|
|
12
12
|
var loginUtils = require('../login/login-utils.js');
|
|
13
|
+
var ApplicationProvider = require('../application-provider/ApplicationProvider.js');
|
|
13
14
|
var AppHeader$1 = require('./AppHeader.css.js');
|
|
14
15
|
|
|
15
16
|
const classBase = "vuuAppHeader";
|
|
16
17
|
const AppHeader = ({
|
|
17
18
|
className: classNameProp,
|
|
18
|
-
loginUrl,
|
|
19
19
|
themeMode: _,
|
|
20
20
|
...htmlAttributes
|
|
21
21
|
}) => {
|
|
@@ -26,6 +26,7 @@ const AppHeader = ({
|
|
|
26
26
|
window: targetWindow
|
|
27
27
|
});
|
|
28
28
|
const className = cx(classBase, classNameProp);
|
|
29
|
+
const loginUrl = ApplicationProvider.useLoginUrl();
|
|
29
30
|
const dispatchLayoutAction = vuuLayout.useLayoutProviderDispatch();
|
|
30
31
|
const handleLogout = React.useCallback(() => {
|
|
31
32
|
loginUtils.logout(loginUrl);
|
|
@@ -48,6 +49,7 @@ const AppHeader = ({
|
|
|
48
49
|
{
|
|
49
50
|
alignItems: "end",
|
|
50
51
|
className,
|
|
52
|
+
role: "banner",
|
|
51
53
|
showSeparators: true,
|
|
52
54
|
...htmlAttributes,
|
|
53
55
|
children: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppHeader.js","sources":["../../src/app-header/AppHeader.tsx"],"sourcesContent":["import { useLayoutProviderDispatch } from \"@vuu-ui/vuu-layout\";\nimport { Toolbar } from \"@vuu-ui/vuu-ui-controls\";\nimport { ThemeMode, VuuShellLocation } from \"@vuu-ui/vuu-utils\";\nimport { Button } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport cx from \"clsx\";\nimport { HTMLAttributes, useCallback } from \"react\";\nimport { logout } from \"../login\";\n\nimport appHeaderCss from \"./AppHeader.css\";\n\nconst classBase = \"vuuAppHeader\";\nexport interface AppHeaderProps extends HTMLAttributes<HTMLDivElement> {\n
|
|
1
|
+
{"version":3,"file":"AppHeader.js","sources":["../../src/app-header/AppHeader.tsx"],"sourcesContent":["import { useLayoutProviderDispatch } from \"@vuu-ui/vuu-layout\";\nimport { Toolbar } from \"@vuu-ui/vuu-ui-controls\";\nimport { ThemeMode, VuuShellLocation } from \"@vuu-ui/vuu-utils\";\nimport { Button } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport cx from \"clsx\";\nimport { HTMLAttributes, useCallback } from \"react\";\nimport { logout } from \"../login\";\nimport { useLoginUrl } from \"../application-provider\";\n\nimport appHeaderCss from \"./AppHeader.css\";\n\nconst classBase = \"vuuAppHeader\";\nexport interface AppHeaderProps extends HTMLAttributes<HTMLDivElement> {\n themeMode?: ThemeMode;\n}\n\nexport const AppHeader = ({\n className: classNameProp,\n themeMode: _,\n ...htmlAttributes\n}: AppHeaderProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-app-header\",\n css: appHeaderCss,\n window: targetWindow,\n });\n\n const className = cx(classBase, classNameProp);\n const loginUrl = useLoginUrl();\n\n const dispatchLayoutAction = useLayoutProviderDispatch();\n\n const handleLogout = useCallback(() => {\n logout(loginUrl);\n }, [loginUrl]);\n\n const handleShowSettings = useCallback(() => {\n dispatchLayoutAction({\n type: \"set-props\",\n path: `#${VuuShellLocation.ContextPanel}`,\n props: {\n expanded: true,\n content: {\n type: \"ApplicationSettings\",\n },\n title: \"Settings\",\n },\n });\n }, [dispatchLayoutAction]);\n\n return (\n <Toolbar\n alignItems=\"end\"\n className={className}\n role=\"banner\"\n showSeparators\n {...htmlAttributes}\n >\n <Button className={`${classBase}-menuItem`} variant=\"secondary\">\n Help\n </Button>\n <Button className={`${classBase}-menuItem`} variant=\"secondary\">\n History <span data-icon=\"history\" />\n </Button>\n <Button\n className={`${classBase}-menuItem`}\n onClick={handleShowSettings}\n variant=\"secondary\"\n >\n Settings <span data-icon=\"settings\" />\n </Button>\n <Button\n className={`${classBase}-menuItem`}\n onClick={handleLogout}\n variant=\"secondary\"\n >\n Log out\n </Button>\n </Toolbar>\n );\n};\n"],"names":["useWindow","useComponentCssInjection","appHeaderCss","useLoginUrl","useLayoutProviderDispatch","useCallback","logout","VuuShellLocation","jsxs","Toolbar","jsx","Button"],"mappings":";;;;;;;;;;;;;;;AAaA,MAAM,SAAY,GAAA,cAAA,CAAA;AAKX,MAAM,YAAY,CAAC;AAAA,EACxB,SAAW,EAAA,aAAA;AAAA,EACX,SAAW,EAAA,CAAA;AAAA,EACX,GAAG,cAAA;AACL,CAAsB,KAAA;AACpB,EAAA,MAAM,eAAeA,gBAAU,EAAA,CAAA;AAC/B,EAAyBC,+BAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,gBAAA;AAAA,IACR,GAAK,EAAAC,WAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAM,MAAA,SAAA,GAAY,EAAG,CAAA,SAAA,EAAW,aAAa,CAAA,CAAA;AAC7C,EAAA,MAAM,WAAWC,+BAAY,EAAA,CAAA;AAE7B,EAAA,MAAM,uBAAuBC,mCAA0B,EAAA,CAAA;AAEvD,EAAM,MAAA,YAAA,GAAeC,kBAAY,MAAM;AACrC,IAAAC,iBAAA,CAAO,QAAQ,CAAA,CAAA;AAAA,GACjB,EAAG,CAAC,QAAQ,CAAC,CAAA,CAAA;AAEb,EAAM,MAAA,kBAAA,GAAqBD,kBAAY,MAAM;AAC3C,IAAqB,oBAAA,CAAA;AAAA,MACnB,IAAM,EAAA,WAAA;AAAA,MACN,IAAA,EAAM,CAAI,CAAA,EAAAE,yBAAA,CAAiB,YAAY,CAAA,CAAA;AAAA,MACvC,KAAO,EAAA;AAAA,QACL,QAAU,EAAA,IAAA;AAAA,QACV,OAAS,EAAA;AAAA,UACP,IAAM,EAAA,qBAAA;AAAA,SACR;AAAA,QACA,KAAO,EAAA,UAAA;AAAA,OACT;AAAA,KACD,CAAA,CAAA;AAAA,GACH,EAAG,CAAC,oBAAoB,CAAC,CAAA,CAAA;AAEzB,EACE,uBAAAC,eAAA;AAAA,IAACC,qBAAA;AAAA,IAAA;AAAA,MACC,UAAW,EAAA,KAAA;AAAA,MACX,SAAA;AAAA,MACA,IAAK,EAAA,QAAA;AAAA,MACL,cAAc,EAAA,IAAA;AAAA,MACb,GAAG,cAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAAC,cAAA,CAACC,eAAO,SAAW,EAAA,CAAA,EAAG,SAAS,CAAa,SAAA,CAAA,EAAA,OAAA,EAAQ,aAAY,QAEhE,EAAA,MAAA,EAAA,CAAA;AAAA,wCACCA,WAAO,EAAA,EAAA,SAAA,EAAW,GAAG,SAAS,CAAA,SAAA,CAAA,EAAa,SAAQ,WAAY,EAAA,QAAA,EAAA;AAAA,UAAA,UAAA;AAAA,0BACtDD,cAAA,CAAC,MAAK,EAAA,EAAA,WAAA,EAAU,SAAU,EAAA,CAAA;AAAA,SACpC,EAAA,CAAA;AAAA,wBACAF,eAAA;AAAA,UAACG,WAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,GAAG,SAAS,CAAA,SAAA,CAAA;AAAA,YACvB,OAAS,EAAA,kBAAA;AAAA,YACT,OAAQ,EAAA,WAAA;AAAA,YACT,QAAA,EAAA;AAAA,cAAA,WAAA;AAAA,8BACUD,cAAA,CAAC,MAAK,EAAA,EAAA,WAAA,EAAU,UAAW,EAAA,CAAA;AAAA,aAAA;AAAA,WAAA;AAAA,SACtC;AAAA,wBACAA,cAAA;AAAA,UAACC,WAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,GAAG,SAAS,CAAA,SAAA,CAAA;AAAA,YACvB,OAAS,EAAA,YAAA;AAAA,YACT,OAAQ,EAAA,WAAA;AAAA,YACT,QAAA,EAAA,SAAA;AAAA,WAAA;AAAA,SAED;AAAA,OAAA;AAAA,KAAA;AAAA,GACF,CAAA;AAEJ;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApplicationContext.js","sources":["../../src/application-provider/ApplicationContext.tsx"],"sourcesContent":["import type { Settings, VuuUser } from \"@vuu-ui/vuu-utils\";\nimport { VuuRowDataItemType } from \"@vuu-ui/vuu-protocol-types\";\nimport { createContext } from \"react\";\nimport { SettingsSchema } from \"../user-settings\";\n\nconst Guest: VuuUser = {\n username: \"unknown\",\n token: \"\",\n};\n\nexport interface ApplicationContextProps {\n onUserSettingChanged: (\n propertyName: string,\n value: VuuRowDataItemType\n ) => void;\n userSettings?: Settings;\n userSettingsSchema?: SettingsSchema;\n user: VuuUser;\n}\n\nexport const ApplicationContext = createContext<ApplicationContextProps>({\n onUserSettingChanged: (propertyName: string) =>\n console.warn(\n `Cannot change setting '${propertyName}'.\\nDid you forget to declare an ApplicationProvider ?`\n ),\n user: Guest,\n});\n"],"names":["createContext"],"mappings":";;;;AAKA,MAAM,KAAiB,GAAA;AAAA,EACrB,QAAU,EAAA,SAAA;AAAA,EACV,KAAO,EAAA,EAAA;AACT,CAAA,CAAA;
|
|
1
|
+
{"version":3,"file":"ApplicationContext.js","sources":["../../src/application-provider/ApplicationContext.tsx"],"sourcesContent":["import type { Settings, VuuUser } from \"@vuu-ui/vuu-utils\";\nimport { VuuRowDataItemType } from \"@vuu-ui/vuu-protocol-types\";\nimport { createContext } from \"react\";\nimport { SettingsSchema } from \"../user-settings\";\n\nconst Guest: VuuUser = {\n username: \"unknown\",\n token: \"\",\n};\n\nexport interface ApplicationContextProps {\n onUserSettingChanged: (\n propertyName: string,\n value: VuuRowDataItemType\n ) => void;\n loginUrl?: string;\n userSettings?: Settings;\n userSettingsSchema?: SettingsSchema;\n user: VuuUser;\n}\n\nexport const ApplicationContext = createContext<ApplicationContextProps>({\n onUserSettingChanged: (propertyName: string) =>\n console.warn(\n `Cannot change setting '${propertyName}'.\\nDid you forget to declare an ApplicationProvider ?`\n ),\n user: Guest,\n});\n"],"names":["createContext"],"mappings":";;;;AAKA,MAAM,KAAiB,GAAA;AAAA,EACrB,QAAU,EAAA,SAAA;AAAA,EACV,KAAO,EAAA,EAAA;AACT,CAAA,CAAA;AAaO,MAAM,qBAAqBA,mBAAuC,CAAA;AAAA,EACvE,oBAAA,EAAsB,CAAC,YAAA,KACrB,OAAQ,CAAA,IAAA;AAAA,IACN,0BAA0B,YAAY,CAAA;AAAA,kDAAA,CAAA;AAAA,GACxC;AAAA,EACF,IAAM,EAAA,KAAA;AACR,CAAC;;;;"}
|
|
@@ -6,9 +6,9 @@ var React = require('react');
|
|
|
6
6
|
var ApplicationContext = require('./ApplicationContext.js');
|
|
7
7
|
var PersistenceProvider = require('../persistence-manager/PersistenceProvider.js');
|
|
8
8
|
require('../persistence-manager/LocalPersistenceManager.js');
|
|
9
|
+
require('@vuu-ui/vuu-ui-controls');
|
|
9
10
|
require('@salt-ds/styles');
|
|
10
11
|
require('@salt-ds/window');
|
|
11
|
-
require('@vuu-ui/vuu-ui-controls');
|
|
12
12
|
require('clsx');
|
|
13
13
|
require('@vuu-ui/vuu-utils');
|
|
14
14
|
require('../persistence-manager/StaticPersistenceManager.js');
|
|
@@ -23,6 +23,7 @@ const getThemeMode = (mode, userSettings) => {
|
|
|
23
23
|
const ApplicationProvider = ({
|
|
24
24
|
children,
|
|
25
25
|
density: densityProp,
|
|
26
|
+
loginUrl,
|
|
26
27
|
mode = "light",
|
|
27
28
|
theme,
|
|
28
29
|
userSettingsSchema,
|
|
@@ -56,6 +57,7 @@ const ApplicationProvider = ({
|
|
|
56
57
|
{
|
|
57
58
|
value: {
|
|
58
59
|
...context,
|
|
60
|
+
loginUrl,
|
|
59
61
|
onUserSettingChanged,
|
|
60
62
|
userSettings,
|
|
61
63
|
userSettingsSchema,
|
|
@@ -77,6 +79,10 @@ const useApplicationUser = () => {
|
|
|
77
79
|
const { user } = React.useContext(ApplicationContext.ApplicationContext);
|
|
78
80
|
return user;
|
|
79
81
|
};
|
|
82
|
+
const useLoginUrl = () => {
|
|
83
|
+
const { loginUrl } = React.useContext(ApplicationContext.ApplicationContext);
|
|
84
|
+
return loginUrl;
|
|
85
|
+
};
|
|
80
86
|
const useApplicationSettings = () => {
|
|
81
87
|
const { onUserSettingChanged, userSettings, userSettingsSchema } = React.useContext(ApplicationContext.ApplicationContext);
|
|
82
88
|
return {
|
|
@@ -93,5 +99,6 @@ const useUserSetting = () => {
|
|
|
93
99
|
exports.ApplicationProvider = ApplicationProvider;
|
|
94
100
|
exports.useApplicationSettings = useApplicationSettings;
|
|
95
101
|
exports.useApplicationUser = useApplicationUser;
|
|
102
|
+
exports.useLoginUrl = useLoginUrl;
|
|
96
103
|
exports.useUserSetting = useUserSetting;
|
|
97
104
|
//# sourceMappingURL=ApplicationProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApplicationProvider.js","sources":["../../src/application-provider/ApplicationProvider.tsx"],"sourcesContent":["import { VuuRowDataItemType } from \"@vuu-ui/vuu-protocol-types\";\nimport {\n Density,\n Mode,\n SaltProvider,\n ThemeContextProps,\n useDensity,\n useTheme,\n} from \"@salt-ds/core\";\nimport {\n ReactElement,\n ReactNode,\n useCallback,\n useContext,\n useMemo,\n useState,\n} from \"react\";\nimport {\n ApplicationContext,\n ApplicationContextProps,\n} from \"./ApplicationContext\";\nimport { usePersistenceManager } from \"../persistence-manager\";\n\nexport interface ApplicationProviderProps\n extends Partial<Pick<ThemeContextProps, \"theme\" | \"mode\">>,\n Partial<Omit<ApplicationContextProps, \"userSettings\">> {\n children: ReactNode;\n density?: Density;\n}\n\nconst getThemeMode = (\n mode: Mode,\n userSettings?: Record<string, string | number | boolean>\n) => {\n const themeMode = userSettings?.themeMode;\n if (themeMode === \"light\" || themeMode === \"dark\") {\n return themeMode;\n }\n return mode;\n};\n\nexport const ApplicationProvider = ({\n children,\n density: densityProp,\n mode = \"light\",\n theme,\n userSettingsSchema: userSettingsSchema,\n user,\n}: ApplicationProviderProps): ReactElement | null => {\n const { mode: inheritedMode, theme: inheritedTheme } = useTheme();\n const density = useDensity(densityProp);\n const persistenceManager = usePersistenceManager();\n const context = useContext(ApplicationContext);\n const [userSettings, setSettings] =\n useState<Record<string, string | number | boolean>>();\n\n useMemo(async () => {\n if (persistenceManager) {\n const userSettings = await persistenceManager.getUserSettings();\n setSettings(userSettings);\n } else {\n setSettings({});\n }\n }, [persistenceManager]);\n\n const onUserSettingChanged = useCallback(\n (propertyName: string, value: VuuRowDataItemType) => {\n setSettings((currentSettings) => {\n const newSettings = { ...currentSettings, [propertyName]: value };\n persistenceManager?.saveUserSettings(newSettings);\n return newSettings;\n });\n },\n [persistenceManager]\n );\n\n return userSettings ? (\n <ApplicationContext.Provider\n value={{\n ...context,\n onUserSettingChanged,\n userSettings,\n userSettingsSchema,\n user: user ?? context.user,\n }}\n >\n <SaltProvider\n theme={theme ?? inheritedTheme ?? \"vuu-theme\"}\n density={density}\n mode={getThemeMode(mode ?? inheritedMode, userSettings)}\n >\n {children}\n </SaltProvider>\n </ApplicationContext.Provider>\n ) : null;\n};\n\nexport const useApplicationUser = () => {\n const { user } = useContext(ApplicationContext);\n return user;\n};\n\n//Setter method (only used within the shell)\nexport const useApplicationSettings = () => {\n const { onUserSettingChanged, userSettings, userSettingsSchema } =\n useContext(ApplicationContext);\n return {\n onUserSettingChanged,\n userSettings,\n userSettingsSchema,\n };\n};\n\n//Getter method (read only access to applicationSetting)\nexport const useUserSetting = () => {\n const { userSettings } = useContext(ApplicationContext);\n return { userSettings };\n};\n"],"names":["useTheme","useDensity","usePersistenceManager","useContext","ApplicationContext","useState","useMemo","userSettings","useCallback","jsx","SaltProvider"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ApplicationProvider.js","sources":["../../src/application-provider/ApplicationProvider.tsx"],"sourcesContent":["import { VuuRowDataItemType } from \"@vuu-ui/vuu-protocol-types\";\nimport {\n Density,\n Mode,\n SaltProvider,\n ThemeContextProps,\n useDensity,\n useTheme,\n} from \"@salt-ds/core\";\nimport {\n ReactElement,\n ReactNode,\n useCallback,\n useContext,\n useMemo,\n useState,\n} from \"react\";\nimport {\n ApplicationContext,\n ApplicationContextProps,\n} from \"./ApplicationContext\";\nimport { usePersistenceManager } from \"../persistence-manager\";\n\nexport interface ApplicationProviderProps\n extends Partial<Pick<ThemeContextProps, \"theme\" | \"mode\">>,\n Partial<Omit<ApplicationContextProps, \"userSettings\">> {\n children: ReactNode;\n density?: Density;\n}\n\nconst getThemeMode = (\n mode: Mode,\n userSettings?: Record<string, string | number | boolean>\n) => {\n const themeMode = userSettings?.themeMode;\n if (themeMode === \"light\" || themeMode === \"dark\") {\n return themeMode;\n }\n return mode;\n};\n\nexport const ApplicationProvider = ({\n children,\n density: densityProp,\n loginUrl,\n mode = \"light\",\n theme,\n userSettingsSchema: userSettingsSchema,\n user,\n}: ApplicationProviderProps): ReactElement | null => {\n const { mode: inheritedMode, theme: inheritedTheme } = useTheme();\n const density = useDensity(densityProp);\n const persistenceManager = usePersistenceManager();\n const context = useContext(ApplicationContext);\n const [userSettings, setSettings] =\n useState<Record<string, string | number | boolean>>();\n\n useMemo(async () => {\n if (persistenceManager) {\n const userSettings = await persistenceManager.getUserSettings();\n setSettings(userSettings);\n } else {\n setSettings({});\n }\n }, [persistenceManager]);\n\n const onUserSettingChanged = useCallback(\n (propertyName: string, value: VuuRowDataItemType) => {\n setSettings((currentSettings) => {\n const newSettings = { ...currentSettings, [propertyName]: value };\n persistenceManager?.saveUserSettings(newSettings);\n return newSettings;\n });\n },\n [persistenceManager]\n );\n\n return userSettings ? (\n <ApplicationContext.Provider\n value={{\n ...context,\n loginUrl,\n onUserSettingChanged,\n userSettings,\n userSettingsSchema,\n user: user ?? context.user,\n }}\n >\n <SaltProvider\n theme={theme ?? inheritedTheme ?? \"vuu-theme\"}\n density={density}\n mode={getThemeMode(mode ?? inheritedMode, userSettings)}\n >\n {children}\n </SaltProvider>\n </ApplicationContext.Provider>\n ) : null;\n};\n\nexport const useApplicationUser = () => {\n const { user } = useContext(ApplicationContext);\n return user;\n};\n\nexport const useLoginUrl = () => {\n const { loginUrl } = useContext(ApplicationContext);\n return loginUrl;\n};\n\n//Setter method (only used within the shell)\nexport const useApplicationSettings = () => {\n const { onUserSettingChanged, userSettings, userSettingsSchema } =\n useContext(ApplicationContext);\n return {\n onUserSettingChanged,\n userSettings,\n userSettingsSchema,\n };\n};\n\n//Getter method (read only access to applicationSetting)\nexport const useUserSetting = () => {\n const { userSettings } = useContext(ApplicationContext);\n return { userSettings };\n};\n"],"names":["useTheme","useDensity","usePersistenceManager","useContext","ApplicationContext","useState","useMemo","userSettings","useCallback","jsx","SaltProvider"],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var useVuuFeatures = require('./useVuuFeatures.js');
|
|
6
|
+
|
|
7
|
+
const NO_FEATURES = [];
|
|
8
|
+
const NO_TABLES = [];
|
|
9
|
+
const FeatureContext = React.createContext({
|
|
10
|
+
features: NO_FEATURES,
|
|
11
|
+
tableFeatures: NO_TABLES
|
|
12
|
+
});
|
|
13
|
+
const FeatureProvider = ({
|
|
14
|
+
children,
|
|
15
|
+
configuredFeatures,
|
|
16
|
+
features: featuresProp,
|
|
17
|
+
tableFeatures: tableFeaturesProp
|
|
18
|
+
}) => {
|
|
19
|
+
const [vuuFeatures, vuuTableFeatures] = useVuuFeatures.useVuuFeatures({
|
|
20
|
+
features: configuredFeatures
|
|
21
|
+
});
|
|
22
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
23
|
+
FeatureContext.Provider,
|
|
24
|
+
{
|
|
25
|
+
value: {
|
|
26
|
+
features: featuresProp ?? vuuFeatures,
|
|
27
|
+
tableFeatures: tableFeaturesProp ?? vuuTableFeatures
|
|
28
|
+
},
|
|
29
|
+
children
|
|
30
|
+
}
|
|
31
|
+
);
|
|
32
|
+
};
|
|
33
|
+
const useFeatures = (localFeatures) => {
|
|
34
|
+
const contextFeatures = React.useContext(FeatureContext);
|
|
35
|
+
if (localFeatures === void 0 || localFeatures.features === void 0 && localFeatures.tableFeatures === void 0) {
|
|
36
|
+
return contextFeatures;
|
|
37
|
+
} else {
|
|
38
|
+
return {
|
|
39
|
+
features: localFeatures.features ?? contextFeatures.features,
|
|
40
|
+
tableFeatures: localFeatures.tableFeatures ?? contextFeatures.tableFeatures
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
exports.FeatureProvider = FeatureProvider;
|
|
46
|
+
exports.useFeatures = useFeatures;
|
|
47
|
+
//# sourceMappingURL=FeatureProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FeatureProvider.js","sources":["../../src/feature-provider/FeatureProvider.tsx"],"sourcesContent":["import { Features, FilterTableFeatureProps } from \"@vuu-ui/vuu-utils\";\nimport { ReactElement, ReactNode, createContext, useContext } from \"react\";\nimport { FeatureProps } from \"../feature/Feature\";\nimport { useVuuFeatures } from \"./useVuuFeatures\";\n\nexport interface FeatureContextProps {\n features: FeatureProps[];\n tableFeatures: FeatureProps<FilterTableFeatureProps>[];\n}\n\nconst NO_FEATURES: FeatureContextProps[\"features\"] = [];\nconst NO_TABLES: FeatureContextProps[\"tableFeatures\"] = [];\n\nconst FeatureContext = createContext<FeatureContextProps>({\n features: NO_FEATURES,\n tableFeatures: NO_TABLES,\n});\n\nexport interface FeatureProviderProps extends Partial<FeatureContextProps> {\n children: ReactNode;\n configuredFeatures: Features;\n}\n\nexport const FeatureProvider = ({\n children,\n configuredFeatures,\n features: featuresProp,\n tableFeatures: tableFeaturesProp,\n}: FeatureProviderProps): ReactElement => {\n const [vuuFeatures, vuuTableFeatures] = useVuuFeatures({\n features: configuredFeatures,\n });\n\n return (\n <FeatureContext.Provider\n value={{\n features: featuresProp ?? vuuFeatures,\n tableFeatures: tableFeaturesProp ?? vuuTableFeatures,\n }}\n >\n {children}\n </FeatureContext.Provider>\n );\n};\n\nexport type FeaturesHook = (\n props?: Partial<FeatureContextProps>\n) => FeatureContextProps;\nexport const useFeatures: FeaturesHook = (localFeatures) => {\n const contextFeatures = useContext(FeatureContext);\n if (\n localFeatures === undefined ||\n (localFeatures.features === undefined &&\n localFeatures.tableFeatures === undefined)\n ) {\n return contextFeatures;\n } else {\n return {\n features: localFeatures.features ?? contextFeatures.features,\n tableFeatures:\n localFeatures.tableFeatures ?? contextFeatures.tableFeatures,\n };\n }\n};\n"],"names":["createContext","useVuuFeatures","jsx","useContext"],"mappings":";;;;;;AAUA,MAAM,cAA+C,EAAC,CAAA;AACtD,MAAM,YAAkD,EAAC,CAAA;AAEzD,MAAM,iBAAiBA,mBAAmC,CAAA;AAAA,EACxD,QAAU,EAAA,WAAA;AAAA,EACV,aAAe,EAAA,SAAA;AACjB,CAAC,CAAA,CAAA;AAOM,MAAM,kBAAkB,CAAC;AAAA,EAC9B,QAAA;AAAA,EACA,kBAAA;AAAA,EACA,QAAU,EAAA,YAAA;AAAA,EACV,aAAe,EAAA,iBAAA;AACjB,CAA0C,KAAA;AACxC,EAAA,MAAM,CAAC,WAAA,EAAa,gBAAgB,CAAA,GAAIC,6BAAe,CAAA;AAAA,IACrD,QAAU,EAAA,kBAAA;AAAA,GACX,CAAA,CAAA;AAED,EACE,uBAAAC,cAAA;AAAA,IAAC,cAAe,CAAA,QAAA;AAAA,IAAf;AAAA,MACC,KAAO,EAAA;AAAA,QACL,UAAU,YAAgB,IAAA,WAAA;AAAA,QAC1B,eAAe,iBAAqB,IAAA,gBAAA;AAAA,OACtC;AAAA,MAEC,QAAA;AAAA,KAAA;AAAA,GACH,CAAA;AAEJ,EAAA;AAKa,MAAA,WAAA,GAA4B,CAAC,aAAkB,KAAA;AAC1D,EAAM,MAAA,eAAA,GAAkBC,iBAAW,cAAc,CAAA,CAAA;AACjD,EAAA,IACE,kBAAkB,KACjB,CAAA,IAAA,aAAA,CAAc,aAAa,KAC1B,CAAA,IAAA,aAAA,CAAc,kBAAkB,KAClC,CAAA,EAAA;AACA,IAAO,OAAA,eAAA,CAAA;AAAA,GACF,MAAA;AACL,IAAO,OAAA;AAAA,MACL,QAAA,EAAU,aAAc,CAAA,QAAA,IAAY,eAAgB,CAAA,QAAA;AAAA,MACpD,aAAA,EACE,aAAc,CAAA,aAAA,IAAiB,eAAgB,CAAA,aAAA;AAAA,KACnD,CAAA;AAAA,GACF;AACF;;;;;"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var vuuDataReact = require('@vuu-ui/vuu-data-react');
|
|
4
|
+
var vuuUtils = require('@vuu-ui/vuu-utils');
|
|
5
|
+
var React = require('react');
|
|
6
|
+
|
|
7
|
+
const NO_FEATURES = [[], []];
|
|
8
|
+
const useVuuFeatures = ({
|
|
9
|
+
features
|
|
10
|
+
}) => {
|
|
11
|
+
const tables = vuuDataReact.useVuuTables();
|
|
12
|
+
const [customFeatures, tableFeatures] = React.useMemo(
|
|
13
|
+
() => tables ? vuuUtils.getCustomAndTableFeatures(features, tables) : NO_FEATURES,
|
|
14
|
+
[features, tables]
|
|
15
|
+
);
|
|
16
|
+
return [customFeatures, tableFeatures];
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
exports.useVuuFeatures = useVuuFeatures;
|
|
20
|
+
//# sourceMappingURL=useVuuFeatures.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useVuuFeatures.js","sources":["../../src/feature-provider/useVuuFeatures.ts"],"sourcesContent":["import { useVuuTables } from \"@vuu-ui/vuu-data-react\";\nimport {\n Features,\n FilterTableFeatureProps,\n getCustomAndTableFeatures,\n} from \"@vuu-ui/vuu-utils\";\nimport { useMemo } from \"react\";\nimport { FeatureProps } from \"../feature/Feature\";\n\nexport interface FeaturesHookProps {\n features: Features;\n}\n\nconst NO_FEATURES: ReturnType<typeof useVuuFeatures> = [[], []];\n\nexport const useVuuFeatures = ({\n features,\n}: FeaturesHookProps): [\n FeatureProps[],\n FeatureProps<FilterTableFeatureProps>[]\n] => {\n const tables = useVuuTables();\n const [customFeatures, tableFeatures] = useMemo<\n [FeatureProps[], FeatureProps<FilterTableFeatureProps>[]]\n >(\n () => (tables ? getCustomAndTableFeatures(features, tables) : NO_FEATURES),\n [features, tables]\n );\n return [customFeatures, tableFeatures];\n};\n"],"names":["useVuuTables","useMemo","getCustomAndTableFeatures"],"mappings":";;;;;;AAaA,MAAM,WAAiD,GAAA,CAAC,EAAC,EAAG,EAAE,CAAA,CAAA;AAEvD,MAAM,iBAAiB,CAAC;AAAA,EAC7B,QAAA;AACF,CAGK,KAAA;AACH,EAAA,MAAM,SAASA,yBAAa,EAAA,CAAA;AAC5B,EAAM,MAAA,CAAC,cAAgB,EAAA,aAAa,CAAI,GAAAC,aAAA;AAAA,IAGtC,MAAO,MAAA,GAASC,kCAA0B,CAAA,QAAA,EAAU,MAAM,CAAI,GAAA,WAAA;AAAA,IAC9D,CAAC,UAAU,MAAM,CAAA;AAAA,GACnB,CAAA;AACA,EAAO,OAAA,CAAC,gBAAgB,aAAa,CAAA,CAAA;AACvC;;;;"}
|
package/cjs/index.js
CHANGED
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var ApplicationProvider = require('./application-provider/ApplicationProvider.js');
|
|
3
4
|
var AppHeader = require('./app-header/AppHeader.js');
|
|
4
5
|
var ConnectionStatusIndicator = require('./connection-status/ConnectionStatusIndicator.js');
|
|
5
6
|
var DataSourceProvider = require('./datasource-provider/DataSourceProvider.js');
|
|
6
7
|
var Feature = require('./feature/Feature.js');
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var LayoutList = require('./layout-management/LayoutList.js');
|
|
10
|
-
var LayoutManagementProvider = require('./layout-management/LayoutManagementProvider.js');
|
|
11
|
-
var useLayoutContextMenuItems = require('./layout-management/useLayoutContextMenuItems.js');
|
|
8
|
+
var FeatureProvider = require('./feature-provider/FeatureProvider.js');
|
|
9
|
+
var useVuuFeatures = require('./feature-provider/useVuuFeatures.js');
|
|
12
10
|
var LeftNav = require('./left-nav/LeftNav.js');
|
|
13
11
|
var LoginPanel = require('./login/LoginPanel.js');
|
|
14
12
|
var loginUtils = require('./login/login-utils.js');
|
|
@@ -16,7 +14,6 @@ var PersistenceProvider = require('./persistence-manager/PersistenceProvider.js'
|
|
|
16
14
|
var LocalPersistenceManager = require('./persistence-manager/LocalPersistenceManager.js');
|
|
17
15
|
var RemotePersistenceManager = require('./persistence-manager/RemotePersistenceManager.js');
|
|
18
16
|
var StaticPersistenceManager = require('./persistence-manager/StaticPersistenceManager.js');
|
|
19
|
-
var SessionEditingForm = require('./session-editing-form/SessionEditingForm.js');
|
|
20
17
|
var shell = require('./shell.js');
|
|
21
18
|
var ContextPanel = require('./shell-layout-templates/context-panel/ContextPanel.js');
|
|
22
19
|
var useShellLayout = require('./shell-layout-templates/useShellLayout.js');
|
|
@@ -26,25 +23,27 @@ var FeatureList = require('./feature-list/FeatureList.js');
|
|
|
26
23
|
var ThemeSwitch = require('./theme-switch/ThemeSwitch.js');
|
|
27
24
|
var UserSettingsPanel = require('./user-settings/UserSettingsPanel.js');
|
|
28
25
|
var SettingsForm = require('./user-settings/SettingsForm.js');
|
|
29
|
-
var
|
|
26
|
+
var SaveLayoutPanel = require('./workspace-management/SaveLayoutPanel.js');
|
|
27
|
+
var LayoutList = require('./workspace-management/LayoutList.js');
|
|
28
|
+
var WorkspaceProvider = require('./workspace-management/WorkspaceProvider.js');
|
|
29
|
+
var defaultWorkspaceJSON = require('./workspace-management/defaultWorkspaceJSON.js');
|
|
30
|
+
var useWorkspaceContextMenuItems = require('./workspace-management/useWorkspaceContextMenuItems.js');
|
|
30
31
|
|
|
31
32
|
|
|
32
33
|
|
|
34
|
+
exports.ApplicationProvider = ApplicationProvider.ApplicationProvider;
|
|
35
|
+
exports.useApplicationSettings = ApplicationProvider.useApplicationSettings;
|
|
36
|
+
exports.useApplicationUser = ApplicationProvider.useApplicationUser;
|
|
37
|
+
exports.useLoginUrl = ApplicationProvider.useLoginUrl;
|
|
38
|
+
exports.useUserSetting = ApplicationProvider.useUserSetting;
|
|
33
39
|
exports.AppHeader = AppHeader.AppHeader;
|
|
34
40
|
exports.ConnectionStatusIndicator = ConnectionStatusIndicator.ConnectionStatusIndicator;
|
|
35
41
|
exports.DataSourceProvider = DataSourceProvider.DataSourceProvider;
|
|
36
42
|
exports.useDataSource = DataSourceProvider.useDataSource;
|
|
37
43
|
exports.Feature = Feature.Feature;
|
|
38
|
-
exports.
|
|
39
|
-
exports.
|
|
40
|
-
exports.
|
|
41
|
-
exports.warningLayout = defaultWorkspaceJSON.warningLayout;
|
|
42
|
-
exports.SaveLayoutPanel = SaveLayoutPanel.SaveLayoutPanel;
|
|
43
|
-
exports.LayoutList = LayoutList.LayoutList;
|
|
44
|
-
exports.LayoutManagementContext = LayoutManagementProvider.LayoutManagementContext;
|
|
45
|
-
exports.LayoutManagementProvider = LayoutManagementProvider.LayoutManagementProvider;
|
|
46
|
-
exports.useLayoutManager = LayoutManagementProvider.useLayoutManager;
|
|
47
|
-
exports.useLayoutContextMenuItems = useLayoutContextMenuItems.useLayoutContextMenuItems;
|
|
44
|
+
exports.FeatureProvider = FeatureProvider.FeatureProvider;
|
|
45
|
+
exports.useFeatures = FeatureProvider.useFeatures;
|
|
46
|
+
exports.useVuuFeatures = useVuuFeatures.useVuuFeatures;
|
|
48
47
|
exports.LeftNav = LeftNav.LeftNav;
|
|
49
48
|
exports.LoginPanel = LoginPanel.LoginPanel;
|
|
50
49
|
exports.getAuthDetailsFromCookies = loginUtils.getAuthDetailsFromCookies;
|
|
@@ -57,23 +56,26 @@ exports.usePersistenceManager = PersistenceProvider.usePersistenceManager;
|
|
|
57
56
|
exports.LocalPersistenceManager = LocalPersistenceManager.LocalPersistenceManager;
|
|
58
57
|
exports.RemotePersistenceManager = RemotePersistenceManager.RemotePersistenceManager;
|
|
59
58
|
exports.StaticPersistenceManager = StaticPersistenceManager.StaticPersistenceManager;
|
|
60
|
-
exports.SessionEditingForm = SessionEditingForm.SessionEditingForm;
|
|
61
59
|
exports.Shell = shell.Shell;
|
|
62
60
|
exports.ContextPanel = ContextPanel.ContextPanel;
|
|
63
61
|
exports.useShellLayout = useShellLayout.useShellLayout;
|
|
64
62
|
exports.SidePanel = SidePanel.SidePanel;
|
|
65
63
|
exports.ShellContextProvider = ShellContextProvider.ShellContextProvider;
|
|
66
|
-
exports.useShellContext = ShellContextProvider.useShellContext;
|
|
67
64
|
exports.FeatureList = FeatureList.FeatureList;
|
|
68
65
|
exports.ThemeSwitch = ThemeSwitch.ThemeSwitch;
|
|
69
66
|
exports.UserSettingsPanel = UserSettingsPanel.UserSettingsPanel;
|
|
67
|
+
exports.FormControl = SettingsForm.FormControl;
|
|
70
68
|
exports.SettingsForm = SettingsForm.SettingsForm;
|
|
71
|
-
exports.getFormControl = SettingsForm.getFormControl;
|
|
72
69
|
exports.isBooleanProperty = SettingsForm.isBooleanProperty;
|
|
73
70
|
exports.isOption = SettingsForm.isOption;
|
|
74
71
|
exports.isStringOrNumber = SettingsForm.isStringOrNumber;
|
|
75
|
-
exports.
|
|
76
|
-
exports.
|
|
77
|
-
exports.
|
|
78
|
-
exports.
|
|
72
|
+
exports.SaveLayoutPanel = SaveLayoutPanel.SaveLayoutPanel;
|
|
73
|
+
exports.LayoutList = LayoutList.LayoutList;
|
|
74
|
+
exports.WorkspaceProvider = WorkspaceProvider.WorkspaceProvider;
|
|
75
|
+
exports.useWorkspace = WorkspaceProvider.useWorkspace;
|
|
76
|
+
exports.getWorkspaceWithLayoutJSON = defaultWorkspaceJSON.getWorkspaceWithLayoutJSON;
|
|
77
|
+
exports.loadingJSON = defaultWorkspaceJSON.loadingJSON;
|
|
78
|
+
exports.stackWorkspaceJSON = defaultWorkspaceJSON.stackWorkspaceJSON;
|
|
79
|
+
exports.warningLayout = defaultWorkspaceJSON.warningLayout;
|
|
80
|
+
exports.useWorkspaceContextMenuItems = useWorkspaceContextMenuItems.useWorkspaceContextMenuItems;
|
|
79
81
|
//# sourceMappingURL=index.js.map
|
package/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/cjs/left-nav/LeftNav.js
CHANGED
|
@@ -10,13 +10,15 @@ var window = require('@salt-ds/window');
|
|
|
10
10
|
var cx = require('clsx');
|
|
11
11
|
var React = require('react');
|
|
12
12
|
var FeatureList = require('../feature-list/FeatureList.js');
|
|
13
|
-
require('../layout-management/defaultWorkspaceJSON.js');
|
|
14
|
-
require('html-to-image');
|
|
15
13
|
require('@salt-ds/core');
|
|
16
|
-
|
|
17
|
-
require('../
|
|
14
|
+
require('html-to-image');
|
|
15
|
+
var LayoutList = require('../workspace-management/LayoutList.js');
|
|
16
|
+
require('../workspace-management/WorkspaceProvider.js');
|
|
17
|
+
require('../workspace-management/defaultWorkspaceJSON.js');
|
|
18
18
|
require('@vuu-ui/vuu-popups');
|
|
19
19
|
var LeftNav$1 = require('./LeftNav.css.js');
|
|
20
|
+
var FeatureProvider = require('../feature-provider/FeatureProvider.js');
|
|
21
|
+
require('@vuu-ui/vuu-data-react');
|
|
20
22
|
|
|
21
23
|
const classBase = "vuuLeftNav";
|
|
22
24
|
const getDisplayStatus = (activeTabIndex, expanded) => {
|
|
@@ -53,14 +55,14 @@ const LeftNav = (props) => {
|
|
|
53
55
|
"data-path": path,
|
|
54
56
|
defaultExpanded = true,
|
|
55
57
|
defaultActiveTabIndex = 0,
|
|
56
|
-
features,
|
|
58
|
+
features: featuresProp,
|
|
57
59
|
onActiveChange,
|
|
58
60
|
onTogglePrimaryMenu,
|
|
59
61
|
sizeCollapsed = 80,
|
|
60
62
|
sizeContent = 300,
|
|
61
63
|
sizeExpanded = 240,
|
|
62
64
|
style: styleProp,
|
|
63
|
-
tableFeatures,
|
|
65
|
+
tableFeatures: tableFeaturesProp,
|
|
64
66
|
...htmlAttributes
|
|
65
67
|
} = props;
|
|
66
68
|
const targetWindow = window.useWindow();
|
|
@@ -69,6 +71,10 @@ const LeftNav = (props) => {
|
|
|
69
71
|
css: LeftNav$1,
|
|
70
72
|
window: targetWindow
|
|
71
73
|
});
|
|
74
|
+
const { features, tableFeatures } = FeatureProvider.useFeatures({
|
|
75
|
+
features: featuresProp,
|
|
76
|
+
tableFeatures: tableFeaturesProp
|
|
77
|
+
});
|
|
72
78
|
const [navState, setNavState] = React.useState({
|
|
73
79
|
activeTabIndex: defaultActiveTabIndex,
|
|
74
80
|
expanded: defaultExpanded
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LeftNav.js","sources":["../../src/left-nav/LeftNav.tsx"],"sourcesContent":["import { VuuLogo } from \"@vuu-ui/vuu-icons\";\nimport {\n LayoutResizeAction,\n Stack,\n useLayoutProviderDispatch,\n} from \"@vuu-ui/vuu-layout\";\nimport { Tab, Tabstrip } from \"@vuu-ui/vuu-ui-controls\";\nimport {\n FilterTableFeatureProps,\n hasFilterTableFeatureProps,\n} from \"@vuu-ui/vuu-utils\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport cx from \"clsx\";\nimport {\n CSSProperties,\n HTMLAttributes,\n useCallback,\n useMemo,\n useState,\n} from \"react\";\nimport { FeatureProps } from \"../feature\";\nimport { FeatureList, GroupedFeatureProps } from \"../feature-list\";\nimport { LayoutList } from \"../layout-management\";\n\nimport leftNavCss from \"./LeftNav.css\";\n\nconst classBase = \"vuuLeftNav\";\n\nexport type NavDisplayStatus =\n | \"menu-full\"\n | \"menu-icons\"\n | \"menu-full-content\"\n | \"menu-icons-content\";\n\nconst getDisplayStatus = (\n activeTabIndex: number,\n expanded: boolean\n): NavDisplayStatus => {\n if (activeTabIndex === 0) {\n return expanded ? \"menu-full\" : \"menu-icons\";\n } else {\n return expanded ? \"menu-full-content\" : \"menu-icons-content\";\n }\n};\n\nexport type NavDisplayStatusHandler = (\n navDisplayStatus: NavDisplayStatus\n) => void;\nexport interface LeftNavProps extends HTMLAttributes<HTMLDivElement> {\n \"data-path\"?: string;\n defaultActiveTabIndex?: number;\n defaultExpanded?: boolean;\n features: FeatureProps[];\n onActiveChange?: (activeTabIndex: number) => void;\n onTogglePrimaryMenu?: (expanded: boolean) => void;\n sizeCollapsed?: number;\n sizeContent?: number;\n sizeExpanded?: number;\n tableFeatures: FeatureProps<FilterTableFeatureProps>[];\n}\n\ntype NavState = {\n activeTabIndex: number;\n expanded: boolean;\n};\n\nconst byModule = (\n f1: FeatureProps<FilterTableFeatureProps>,\n f2: FeatureProps<FilterTableFeatureProps>\n) => {\n const t1 = f1.ComponentProps?.tableSchema.table;\n const t2 = f2.ComponentProps?.tableSchema.table;\n if (t1 && t2) {\n const m1 = t1.module.toLowerCase();\n const m2 = t2.module.toLowerCase();\n if (m1 < m2) {\n return -1;\n } else if (m1 > m2) {\n return 1;\n } else if (t1.table < t2.table) {\n return -1;\n } else if (t1.table > t2.table) {\n return 1;\n } else {\n return 0;\n }\n } else {\n throw Error(\"Invalid tableFeature\");\n }\n};\n\nexport const LeftNav = (props: LeftNavProps) => {\n const dispatch = useLayoutProviderDispatch();\n const {\n \"data-path\": path,\n defaultExpanded = true,\n defaultActiveTabIndex = 0,\n features,\n onActiveChange,\n onTogglePrimaryMenu,\n sizeCollapsed = 80,\n sizeContent = 300,\n sizeExpanded = 240,\n style: styleProp,\n tableFeatures,\n ...htmlAttributes\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-left-nav\",\n css: leftNavCss,\n window: targetWindow,\n });\n\n const [navState, setNavState] = useState<NavState>({\n activeTabIndex: defaultActiveTabIndex,\n expanded: defaultExpanded,\n });\n\n const tableFeaturesByGroup = useMemo(\n () =>\n tableFeatures\n .sort(byModule)\n .reduce<GroupedFeatureProps<FilterTableFeatureProps>>(\n (acc, filterTableFeature) => {\n if (hasFilterTableFeatureProps(filterTableFeature)) {\n const { table } = filterTableFeature.ComponentProps.tableSchema;\n const key = `${table.module} Tables`;\n if (!acc[key]) {\n acc[key] = [];\n }\n return {\n ...acc,\n [key]: acc[key].concat(filterTableFeature),\n };\n } else {\n return acc;\n // throw Error(\"LeftNaV invalid tableFeature\");\n }\n },\n {}\n ),\n [tableFeatures]\n );\n\n const getFullWidth = useCallback(\n (tabIndex: number, expanded: boolean): number => {\n if (tabIndex === 0) {\n return expanded ? sizeExpanded : sizeCollapsed;\n } else {\n return expanded\n ? sizeExpanded + sizeContent\n : sizeCollapsed + sizeContent;\n }\n },\n [sizeCollapsed, sizeContent, sizeExpanded]\n );\n\n const handleTabSelection = useCallback(\n (activeTabIndex: number) => {\n const { activeTabIndex: currentIndex, expanded } = navState;\n const newState = { activeTabIndex, expanded };\n setNavState(newState);\n if (activeTabIndex === 0 || currentIndex === 0) {\n const width = getFullWidth(activeTabIndex, expanded);\n dispatch({\n type: \"layout-resize\",\n path: \"#vuu-side-panel\",\n size: width,\n } as LayoutResizeAction);\n }\n onActiveChange?.(activeTabIndex);\n },\n [dispatch, getFullWidth, navState, onActiveChange]\n );\n\n const displayStatus = getDisplayStatus(\n navState.activeTabIndex,\n navState.expanded\n );\n\n const toggleExpanded = useCallback(() => {\n const { activeTabIndex, expanded } = navState;\n const primaryMenuExpanded = !expanded;\n const newState = { activeTabIndex, expanded: primaryMenuExpanded };\n setNavState(newState);\n dispatch({\n type: \"layout-resize\",\n path: \"#vuu-side-panel\",\n size: getFullWidth(activeTabIndex, primaryMenuExpanded),\n } as LayoutResizeAction);\n onTogglePrimaryMenu?.(primaryMenuExpanded);\n }, [dispatch, getFullWidth, navState, onTogglePrimaryMenu]);\n\n const style = {\n ...styleProp,\n \"--nav-menu-collapsed-width\": `${sizeCollapsed}px`,\n \"--nav-menu-expanded-width\": `${sizeExpanded}px`,\n \"--nav-menu-content-width\": `${sizeContent}px`,\n } as CSSProperties;\n\n return (\n <div\n {...htmlAttributes}\n className={cx(classBase, `${classBase}-${displayStatus}`)}\n style={style}\n >\n <div className={cx(`${classBase}-menu-primary`)} data-mode=\"dark\">\n <div className=\"vuuLeftNav-logo\">\n <VuuLogo />\n </div>\n <div className={`${classBase}-main`}>\n <Tabstrip\n activeTabIndex={navState.activeTabIndex}\n animateSelectionThumb={false}\n className={`${classBase}-Tabstrip`}\n onActiveChange={handleTabSelection}\n orientation=\"vertical\"\n >\n <Tab data-icon=\"demo\" label=\"DEMO\"></Tab>\n <Tab data-icon=\"features\" label=\"VUU FEATURES\"></Tab>\n <Tab data-icon=\"tables\" label=\"VUU TABLES\"></Tab>\n <Tab data-icon=\"layouts\" label=\"MY LAYOUTS\"></Tab>\n </Tabstrip>\n </div>\n <div className=\"vuuLeftNav-buttonBar\">\n <button\n className={cx(\"vuuLeftNav-toggleButton\", {\n \"vuuLeftNav-toggleButton-open\":\n displayStatus.startsWith(\"menu-full\"),\n \"vuuLeftNav-toggleButton-closed\":\n displayStatus.startsWith(\"menu-icons\"),\n })}\n data-icon={\n displayStatus.startsWith(\"menu-full\")\n ? \"chevron-left\"\n : \"chevron-right\"\n }\n onClick={toggleExpanded}\n />\n </div>\n </div>\n <Stack\n active={navState.activeTabIndex - 1}\n className={`${classBase}-menu-secondary`}\n showTabs={false}\n >\n <FeatureList features={features} title=\"VUU FEATURES\" />\n <FeatureList features={tableFeaturesByGroup} title=\"VUU TABLES\" />\n <LayoutList title=\"MY LAYOUTS\" />\n </Stack>\n </div>\n );\n};\n"],"names":["useLayoutProviderDispatch","useWindow","useComponentCssInjection","leftNavCss","useState","useMemo","hasFilterTableFeatureProps","useCallback","jsxs","jsx","VuuLogo","Tabstrip","Tab","Stack","FeatureList","LayoutList"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LeftNav.js","sources":["../../src/left-nav/LeftNav.tsx"],"sourcesContent":["import { VuuLogo } from \"@vuu-ui/vuu-icons\";\nimport {\n LayoutResizeAction,\n Stack,\n useLayoutProviderDispatch,\n} from \"@vuu-ui/vuu-layout\";\nimport { Tab, Tabstrip } from \"@vuu-ui/vuu-ui-controls\";\nimport {\n FilterTableFeatureProps,\n hasFilterTableFeatureProps,\n} from \"@vuu-ui/vuu-utils\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport cx from \"clsx\";\nimport {\n CSSProperties,\n HTMLAttributes,\n useCallback,\n useMemo,\n useState,\n} from \"react\";\nimport { FeatureProps } from \"../feature\";\nimport { FeatureList, GroupedFeatureProps } from \"../feature-list\";\nimport { LayoutList } from \"../workspace-management\";\n\nimport leftNavCss from \"./LeftNav.css\";\nimport { useFeatures } from \"../feature-provider\";\n\nconst classBase = \"vuuLeftNav\";\n\nexport type NavDisplayStatus =\n | \"menu-full\"\n | \"menu-icons\"\n | \"menu-full-content\"\n | \"menu-icons-content\";\n\nconst getDisplayStatus = (\n activeTabIndex: number,\n expanded: boolean\n): NavDisplayStatus => {\n if (activeTabIndex === 0) {\n return expanded ? \"menu-full\" : \"menu-icons\";\n } else {\n return expanded ? \"menu-full-content\" : \"menu-icons-content\";\n }\n};\n\nexport type NavDisplayStatusHandler = (\n navDisplayStatus: NavDisplayStatus\n) => void;\nexport interface LeftNavProps extends HTMLAttributes<HTMLDivElement> {\n \"data-path\"?: string;\n defaultActiveTabIndex?: number;\n defaultExpanded?: boolean;\n features?: FeatureProps[];\n onActiveChange?: (activeTabIndex: number) => void;\n onTogglePrimaryMenu?: (expanded: boolean) => void;\n sizeCollapsed?: number;\n sizeContent?: number;\n sizeExpanded?: number;\n tableFeatures?: FeatureProps<FilterTableFeatureProps>[];\n}\n\ntype NavState = {\n activeTabIndex: number;\n expanded: boolean;\n};\n\nconst byModule = (\n f1: FeatureProps<FilterTableFeatureProps>,\n f2: FeatureProps<FilterTableFeatureProps>\n) => {\n const t1 = f1.ComponentProps?.tableSchema.table;\n const t2 = f2.ComponentProps?.tableSchema.table;\n if (t1 && t2) {\n const m1 = t1.module.toLowerCase();\n const m2 = t2.module.toLowerCase();\n if (m1 < m2) {\n return -1;\n } else if (m1 > m2) {\n return 1;\n } else if (t1.table < t2.table) {\n return -1;\n } else if (t1.table > t2.table) {\n return 1;\n } else {\n return 0;\n }\n } else {\n throw Error(\"Invalid tableFeature\");\n }\n};\n\nexport const LeftNav = (props: LeftNavProps) => {\n const dispatch = useLayoutProviderDispatch();\n const {\n \"data-path\": path,\n defaultExpanded = true,\n defaultActiveTabIndex = 0,\n features: featuresProp,\n onActiveChange,\n onTogglePrimaryMenu,\n sizeCollapsed = 80,\n sizeContent = 300,\n sizeExpanded = 240,\n style: styleProp,\n tableFeatures: tableFeaturesProp,\n ...htmlAttributes\n } = props;\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-left-nav\",\n css: leftNavCss,\n window: targetWindow,\n });\n\n const { features, tableFeatures } = useFeatures({\n features: featuresProp,\n tableFeatures: tableFeaturesProp,\n });\n\n const [navState, setNavState] = useState<NavState>({\n activeTabIndex: defaultActiveTabIndex,\n expanded: defaultExpanded,\n });\n\n const tableFeaturesByGroup = useMemo(\n () =>\n tableFeatures\n .sort(byModule)\n .reduce<GroupedFeatureProps<FilterTableFeatureProps>>(\n (acc, filterTableFeature) => {\n if (hasFilterTableFeatureProps(filterTableFeature)) {\n const { table } = filterTableFeature.ComponentProps.tableSchema;\n const key = `${table.module} Tables`;\n if (!acc[key]) {\n acc[key] = [];\n }\n return {\n ...acc,\n [key]: acc[key].concat(filterTableFeature),\n };\n } else {\n return acc;\n // throw Error(\"LeftNaV invalid tableFeature\");\n }\n },\n {}\n ),\n [tableFeatures]\n );\n\n const getFullWidth = useCallback(\n (tabIndex: number, expanded: boolean): number => {\n if (tabIndex === 0) {\n return expanded ? sizeExpanded : sizeCollapsed;\n } else {\n return expanded\n ? sizeExpanded + sizeContent\n : sizeCollapsed + sizeContent;\n }\n },\n [sizeCollapsed, sizeContent, sizeExpanded]\n );\n\n const handleTabSelection = useCallback(\n (activeTabIndex: number) => {\n const { activeTabIndex: currentIndex, expanded } = navState;\n const newState = { activeTabIndex, expanded };\n setNavState(newState);\n if (activeTabIndex === 0 || currentIndex === 0) {\n const width = getFullWidth(activeTabIndex, expanded);\n dispatch({\n type: \"layout-resize\",\n path: \"#vuu-side-panel\",\n size: width,\n } as LayoutResizeAction);\n }\n onActiveChange?.(activeTabIndex);\n },\n [dispatch, getFullWidth, navState, onActiveChange]\n );\n\n const displayStatus = getDisplayStatus(\n navState.activeTabIndex,\n navState.expanded\n );\n\n const toggleExpanded = useCallback(() => {\n const { activeTabIndex, expanded } = navState;\n const primaryMenuExpanded = !expanded;\n const newState = { activeTabIndex, expanded: primaryMenuExpanded };\n setNavState(newState);\n dispatch({\n type: \"layout-resize\",\n path: \"#vuu-side-panel\",\n size: getFullWidth(activeTabIndex, primaryMenuExpanded),\n } as LayoutResizeAction);\n onTogglePrimaryMenu?.(primaryMenuExpanded);\n }, [dispatch, getFullWidth, navState, onTogglePrimaryMenu]);\n\n const style = {\n ...styleProp,\n \"--nav-menu-collapsed-width\": `${sizeCollapsed}px`,\n \"--nav-menu-expanded-width\": `${sizeExpanded}px`,\n \"--nav-menu-content-width\": `${sizeContent}px`,\n } as CSSProperties;\n\n return (\n <div\n {...htmlAttributes}\n className={cx(classBase, `${classBase}-${displayStatus}`)}\n style={style}\n >\n <div className={cx(`${classBase}-menu-primary`)} data-mode=\"dark\">\n <div className=\"vuuLeftNav-logo\">\n <VuuLogo />\n </div>\n <div className={`${classBase}-main`}>\n <Tabstrip\n activeTabIndex={navState.activeTabIndex}\n animateSelectionThumb={false}\n className={`${classBase}-Tabstrip`}\n onActiveChange={handleTabSelection}\n orientation=\"vertical\"\n >\n <Tab data-icon=\"demo\" label=\"DEMO\"></Tab>\n <Tab data-icon=\"features\" label=\"VUU FEATURES\"></Tab>\n <Tab data-icon=\"tables\" label=\"VUU TABLES\"></Tab>\n <Tab data-icon=\"layouts\" label=\"MY LAYOUTS\"></Tab>\n </Tabstrip>\n </div>\n <div className=\"vuuLeftNav-buttonBar\">\n <button\n className={cx(\"vuuLeftNav-toggleButton\", {\n \"vuuLeftNav-toggleButton-open\":\n displayStatus.startsWith(\"menu-full\"),\n \"vuuLeftNav-toggleButton-closed\":\n displayStatus.startsWith(\"menu-icons\"),\n })}\n data-icon={\n displayStatus.startsWith(\"menu-full\")\n ? \"chevron-left\"\n : \"chevron-right\"\n }\n onClick={toggleExpanded}\n />\n </div>\n </div>\n <Stack\n active={navState.activeTabIndex - 1}\n className={`${classBase}-menu-secondary`}\n showTabs={false}\n >\n <FeatureList features={features} title=\"VUU FEATURES\" />\n <FeatureList features={tableFeaturesByGroup} title=\"VUU TABLES\" />\n <LayoutList title=\"MY LAYOUTS\" />\n </Stack>\n </div>\n );\n};\n"],"names":["useLayoutProviderDispatch","useWindow","useComponentCssInjection","leftNavCss","useFeatures","useState","useMemo","hasFilterTableFeatureProps","useCallback","jsxs","jsx","VuuLogo","Tabstrip","Tab","Stack","FeatureList","LayoutList"],"mappings":"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"}
|
package/cjs/login/LoginPanel.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
-
var
|
|
4
|
+
var vuuUiControls = require('@vuu-ui/vuu-ui-controls');
|
|
5
5
|
var core = require('@salt-ds/core');
|
|
6
6
|
var styles = require('@salt-ds/styles');
|
|
7
7
|
var window = require('@salt-ds/window');
|
|
8
|
-
var vuuUiControls = require('@vuu-ui/vuu-ui-controls');
|
|
9
|
-
var VuuLogo = require('./VuuLogo.js');
|
|
10
8
|
var cx = require('clsx');
|
|
9
|
+
var React = require('react');
|
|
10
|
+
var VuuLogo = require('./VuuLogo.js');
|
|
11
11
|
var LoginPanel$1 = require('./LoginPanel.css.js');
|
|
12
12
|
|
|
13
13
|
const classBase = "vuuLoginPanel";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoginPanel.js","sources":["../../src/login/LoginPanel.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"LoginPanel.js","sources":["../../src/login/LoginPanel.tsx"],"sourcesContent":["import { VuuInput } from \"@vuu-ui/vuu-ui-controls\";\nimport { Button, FormField, FormFieldLabel } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport cx from \"clsx\";\nimport {\n ChangeEvent,\n HTMLAttributes,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport { VuuLogo } from \"./VuuLogo\";\n\nimport loginPanelCss from \"./LoginPanel.css\";\n\nconst classBase = \"vuuLoginPanel\";\n\nexport interface LoginPanelProps\n extends Omit<HTMLAttributes<HTMLDivElement>, \"onSubmit\"> {\n appName?: string;\n onSubmit: (username: string, password?: string) => void;\n requirePassword?: boolean;\n}\n\nexport const LoginPanel = ({\n appName = \"Demo App\",\n className,\n requirePassword = true,\n onSubmit,\n ...htmlAttributes\n}: LoginPanelProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-login-panel\",\n css: loginPanelCss,\n window: targetWindow,\n });\n\n const [username, setUserName] = useState(\"\");\n const [password, setPassword] = useState(\"\");\n const inputRef = useRef<HTMLInputElement>(null);\n\n const login = () => {\n onSubmit(username, password);\n };\n\n const handleUsername = (evt: ChangeEvent<HTMLInputElement>) => {\n setUserName(evt.target.value);\n };\n\n const handlePassword = (evt: ChangeEvent<HTMLInputElement>) => {\n setPassword(evt.target.value);\n };\n\n const handleCommitName = useCallback(() => {\n if (!requirePassword) {\n onSubmit(username);\n }\n }, [onSubmit, requirePassword, username]);\n\n const handleCommitPassword = useCallback(() => {\n if (username) {\n onSubmit(username, password);\n }\n }, [onSubmit, password, username]);\n\n const dataIsValid =\n username.trim() !== \"\" &&\n (requirePassword === false || password.trim() !== \"\");\n\n useEffect(() => {\n console.log(`inputRef`, {\n input: inputRef.current,\n });\n inputRef.current?.focus();\n }, []);\n\n return (\n <div {...htmlAttributes} className={cx(classBase, className)}>\n <div className={`${classBase}-branding`}>\n <VuuLogo />\n <div className={`${classBase}-appName`}>{appName}</div>\n </div>\n <div className={`${classBase}-form`}>\n <div className={`${classBase}-title`}>Welcome Back</div>\n <FormField>\n <FormFieldLabel>Username</FormFieldLabel>\n <VuuInput\n value={username}\n id=\"text-username\"\n inputRef={inputRef}\n onChange={handleUsername}\n onCommit={handleCommitName}\n />\n </FormField>\n\n {requirePassword ? (\n <FormField>\n <FormFieldLabel>Password</FormFieldLabel>\n <VuuInput\n className={`${classBase}-password`}\n inputProps={{\n type: \"password\",\n }}\n value={password}\n id=\"text-password\"\n onChange={handlePassword}\n onCommit={handleCommitPassword}\n endAdornment={\n <span data-icon=\"eye\" style={{ cursor: \"pointer\" }} />\n }\n />\n </FormField>\n ) : null}\n\n <Button\n className={`${classBase}-login`}\n disabled={!dataIsValid}\n onClick={login}\n variant=\"cta\"\n >\n Login\n </Button>\n </div>\n </div>\n );\n};\n"],"names":["useWindow","useComponentCssInjection","loginPanelCss","useState","useRef","useCallback","useEffect","jsxs","jsx","VuuLogo","FormField","FormFieldLabel","VuuInput","Button"],"mappings":"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"}
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
var vuuUtils = require('@vuu-ui/vuu-utils');
|
|
4
4
|
require('react/jsx-runtime');
|
|
5
|
-
require('
|
|
5
|
+
require('@vuu-ui/vuu-ui-controls');
|
|
6
6
|
require('@salt-ds/core');
|
|
7
7
|
require('@salt-ds/styles');
|
|
8
8
|
require('@salt-ds/window');
|
|
9
|
-
require('@vuu-ui/vuu-ui-controls');
|
|
10
9
|
require('clsx');
|
|
10
|
+
require('react');
|
|
11
11
|
var loginUtils = require('../login/login-utils.js');
|
|
12
12
|
|
|
13
13
|
var __accessCheck = (obj, member, msg) => {
|