@vuu-ui/vuu-shell 2.1.18 → 2.1.19-beta.1
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 +16 -18
- package/types/feature/FeatureErrorBoundary.d.ts +1 -1
- package/types/workspace-management/WorkspaceProvider.d.ts +5 -5
- package/cjs/ShellContextProvider.js +0 -25
- package/cjs/ShellContextProvider.js.map +0 -1
- package/cjs/app-header/AppHeader.css.js +0 -6
- package/cjs/app-header/AppHeader.css.js.map +0 -1
- package/cjs/app-header/AppHeader.js +0 -118
- package/cjs/app-header/AppHeader.js.map +0 -1
- package/cjs/application-provider/ApplicationContext.js +0 -17
- package/cjs/application-provider/ApplicationContext.js.map +0 -1
- package/cjs/application-provider/ApplicationProvider.js +0 -102
- package/cjs/application-provider/ApplicationProvider.js.map +0 -1
- package/cjs/feature/Feature.js +0 -54
- package/cjs/feature/Feature.js.map +0 -1
- package/cjs/feature/FeatureErrorBoundary.js +0 -30
- package/cjs/feature/FeatureErrorBoundary.js.map +0 -1
- package/cjs/feature-and-layout-provider/FeatureAndLayoutProvider.js +0 -60
- package/cjs/feature-and-layout-provider/FeatureAndLayoutProvider.js.map +0 -1
- package/cjs/feature-list/FeatureList.css.js +0 -6
- package/cjs/feature-list/FeatureList.css.js.map +0 -1
- package/cjs/feature-list/FeatureList.js +0 -109
- package/cjs/feature-list/FeatureList.js.map +0 -1
- package/cjs/index.js +0 -71
- package/cjs/index.js.map +0 -1
- package/cjs/left-nav/LeftNav.css.js +0 -6
- package/cjs/left-nav/LeftNav.css.js.map +0 -1
- package/cjs/left-nav/LeftNav.js +0 -202
- package/cjs/left-nav/LeftNav.js.map +0 -1
- package/cjs/login/LoginPanel.css.js +0 -6
- package/cjs/login/LoginPanel.css.js.map +0 -1
- package/cjs/login/LoginPanel.js +0 -110
- package/cjs/login/LoginPanel.js.map +0 -1
- package/cjs/login/VuuLogo.js +0 -134
- package/cjs/login/VuuLogo.js.map +0 -1
- package/cjs/persistence-manager/LocalPersistenceManager.js +0 -193
- package/cjs/persistence-manager/LocalPersistenceManager.js.map +0 -1
- package/cjs/persistence-manager/PersistenceProvider.js +0 -21
- package/cjs/persistence-manager/PersistenceProvider.js.map +0 -1
- package/cjs/persistence-manager/RemotePersistenceManager.js +0 -165
- package/cjs/persistence-manager/RemotePersistenceManager.js.map +0 -1
- package/cjs/persistence-manager/StaticPersistenceManager.js +0 -73
- package/cjs/persistence-manager/StaticPersistenceManager.js.map +0 -1
- package/cjs/shell-layout-templates/context-panel/ContextPanel.css.js +0 -6
- package/cjs/shell-layout-templates/context-panel/ContextPanel.css.js.map +0 -1
- package/cjs/shell-layout-templates/context-panel/ContextPanel.js +0 -100
- package/cjs/shell-layout-templates/context-panel/ContextPanel.js.map +0 -1
- package/cjs/shell-layout-templates/full-height-left-panel/useFullHeightLeftPanel.js +0 -51
- package/cjs/shell-layout-templates/full-height-left-panel/useFullHeightLeftPanel.js.map +0 -1
- package/cjs/shell-layout-templates/inlay-left-panel/useInlayLeftPanel.js +0 -83
- package/cjs/shell-layout-templates/inlay-left-panel/useInlayLeftPanel.js.map +0 -1
- package/cjs/shell-layout-templates/left-main-tabs/useLeftMainTabs.js +0 -46
- package/cjs/shell-layout-templates/left-main-tabs/useLeftMainTabs.js.map +0 -1
- package/cjs/shell-layout-templates/side-panel/SidePanel.css.js +0 -6
- package/cjs/shell-layout-templates/side-panel/SidePanel.css.js.map +0 -1
- package/cjs/shell-layout-templates/side-panel/SidePanel.js +0 -36
- package/cjs/shell-layout-templates/side-panel/SidePanel.js.map +0 -1
- package/cjs/shell-layout-templates/simple-content-pane/useSimpleContentPane.js +0 -48
- package/cjs/shell-layout-templates/simple-content-pane/useSimpleContentPane.js.map +0 -1
- package/cjs/shell-layout-templates/useShellLayout.js +0 -23
- package/cjs/shell-layout-templates/useShellLayout.js.map +0 -1
- package/cjs/shell.css.js +0 -6
- package/cjs/shell.css.js.map +0 -1
- package/cjs/shell.js +0 -137
- package/cjs/shell.js.map +0 -1
- package/cjs/theme-switch/ThemeSwitch.css.js +0 -6
- package/cjs/theme-switch/ThemeSwitch.css.js.map +0 -1
- package/cjs/theme-switch/ThemeSwitch.js +0 -56
- package/cjs/theme-switch/ThemeSwitch.js.map +0 -1
- package/cjs/user-settings/SettingsForm.css.js +0 -6
- package/cjs/user-settings/SettingsForm.css.js.map +0 -1
- package/cjs/user-settings/SettingsForm.js +0 -168
- package/cjs/user-settings/SettingsForm.js.map +0 -1
- package/cjs/user-settings/UserSettingsPanel.css.js +0 -6
- package/cjs/user-settings/UserSettingsPanel.css.js.map +0 -1
- package/cjs/user-settings/UserSettingsPanel.js +0 -42
- package/cjs/user-settings/UserSettingsPanel.js.map +0 -1
- package/cjs/workspace-management/LayoutList.css.js +0 -6
- package/cjs/workspace-management/LayoutList.css.js.map +0 -1
- package/cjs/workspace-management/LayoutList.js +0 -116
- package/cjs/workspace-management/LayoutList.js.map +0 -1
- package/cjs/workspace-management/LayoutTile.css.js +0 -6
- package/cjs/workspace-management/LayoutTile.css.js.map +0 -1
- package/cjs/workspace-management/LayoutTile.js +0 -41
- package/cjs/workspace-management/LayoutTile.js.map +0 -1
- package/cjs/workspace-management/SaveLayoutPanel.css.js +0 -6
- package/cjs/workspace-management/SaveLayoutPanel.css.js.map +0 -1
- package/cjs/workspace-management/SaveLayoutPanel.js +0 -128
- package/cjs/workspace-management/SaveLayoutPanel.js.map +0 -1
- package/cjs/workspace-management/WorkspaceProvider.js +0 -265
- package/cjs/workspace-management/WorkspaceProvider.js.map +0 -1
- package/cjs/workspace-management/defaultWorkspaceJSON.js +0 -101
- package/cjs/workspace-management/defaultWorkspaceJSON.js.map +0 -1
- package/cjs/workspace-management/screenshot-utils.js +0 -25
- package/cjs/workspace-management/screenshot-utils.js.map +0 -1
- package/cjs/workspace-management/useWorkspaceContextMenuItems.js +0 -72
- package/cjs/workspace-management/useWorkspaceContextMenuItems.js.map +0 -1
- package/esm/ShellContextProvider.js +0 -23
- package/esm/ShellContextProvider.js.map +0 -1
- package/esm/app-header/AppHeader.css.js +0 -4
- package/esm/app-header/AppHeader.css.js.map +0 -1
- package/esm/app-header/AppHeader.js +0 -116
- package/esm/app-header/AppHeader.js.map +0 -1
- package/esm/application-provider/ApplicationContext.js +0 -15
- package/esm/application-provider/ApplicationContext.js.map +0 -1
- package/esm/application-provider/ApplicationProvider.js +0 -96
- package/esm/application-provider/ApplicationProvider.js.map +0 -1
- package/esm/feature/Feature.js +0 -52
- package/esm/feature/Feature.js.map +0 -1
- package/esm/feature/FeatureErrorBoundary.js +0 -28
- package/esm/feature/FeatureErrorBoundary.js.map +0 -1
- package/esm/feature-and-layout-provider/FeatureAndLayoutProvider.js +0 -56
- package/esm/feature-and-layout-provider/FeatureAndLayoutProvider.js.map +0 -1
- package/esm/feature-list/FeatureList.css.js +0 -4
- package/esm/feature-list/FeatureList.css.js.map +0 -1
- package/esm/feature-list/FeatureList.js +0 -107
- package/esm/feature-list/FeatureList.js.map +0 -1
- package/esm/index.js +0 -25
- package/esm/index.js.map +0 -1
- package/esm/left-nav/LeftNav.css.js +0 -4
- package/esm/left-nav/LeftNav.css.js.map +0 -1
- package/esm/left-nav/LeftNav.js +0 -200
- package/esm/left-nav/LeftNav.js.map +0 -1
- package/esm/login/LoginPanel.css.js +0 -4
- package/esm/login/LoginPanel.css.js.map +0 -1
- package/esm/login/LoginPanel.js +0 -108
- package/esm/login/LoginPanel.js.map +0 -1
- package/esm/login/VuuLogo.js +0 -132
- package/esm/login/VuuLogo.js.map +0 -1
- package/esm/persistence-manager/LocalPersistenceManager.js +0 -191
- package/esm/persistence-manager/LocalPersistenceManager.js.map +0 -1
- package/esm/persistence-manager/PersistenceProvider.js +0 -17
- package/esm/persistence-manager/PersistenceProvider.js.map +0 -1
- package/esm/persistence-manager/RemotePersistenceManager.js +0 -163
- package/esm/persistence-manager/RemotePersistenceManager.js.map +0 -1
- package/esm/persistence-manager/StaticPersistenceManager.js +0 -71
- package/esm/persistence-manager/StaticPersistenceManager.js.map +0 -1
- package/esm/shell-layout-templates/context-panel/ContextPanel.css.js +0 -4
- package/esm/shell-layout-templates/context-panel/ContextPanel.css.js.map +0 -1
- package/esm/shell-layout-templates/context-panel/ContextPanel.js +0 -98
- package/esm/shell-layout-templates/context-panel/ContextPanel.js.map +0 -1
- package/esm/shell-layout-templates/full-height-left-panel/useFullHeightLeftPanel.js +0 -49
- package/esm/shell-layout-templates/full-height-left-panel/useFullHeightLeftPanel.js.map +0 -1
- package/esm/shell-layout-templates/inlay-left-panel/useInlayLeftPanel.js +0 -81
- package/esm/shell-layout-templates/inlay-left-panel/useInlayLeftPanel.js.map +0 -1
- package/esm/shell-layout-templates/left-main-tabs/useLeftMainTabs.js +0 -44
- package/esm/shell-layout-templates/left-main-tabs/useLeftMainTabs.js.map +0 -1
- package/esm/shell-layout-templates/side-panel/SidePanel.css.js +0 -4
- package/esm/shell-layout-templates/side-panel/SidePanel.css.js.map +0 -1
- package/esm/shell-layout-templates/side-panel/SidePanel.js +0 -34
- package/esm/shell-layout-templates/side-panel/SidePanel.js.map +0 -1
- package/esm/shell-layout-templates/simple-content-pane/useSimpleContentPane.js +0 -46
- package/esm/shell-layout-templates/simple-content-pane/useSimpleContentPane.js.map +0 -1
- package/esm/shell-layout-templates/useShellLayout.js +0 -21
- package/esm/shell-layout-templates/useShellLayout.js.map +0 -1
- package/esm/shell.css.js +0 -4
- package/esm/shell.css.js.map +0 -1
- package/esm/shell.js +0 -135
- package/esm/shell.js.map +0 -1
- package/esm/theme-switch/ThemeSwitch.css.js +0 -4
- package/esm/theme-switch/ThemeSwitch.css.js.map +0 -1
- package/esm/theme-switch/ThemeSwitch.js +0 -54
- package/esm/theme-switch/ThemeSwitch.js.map +0 -1
- package/esm/user-settings/SettingsForm.css.js +0 -4
- package/esm/user-settings/SettingsForm.css.js.map +0 -1
- package/esm/user-settings/SettingsForm.js +0 -162
- package/esm/user-settings/SettingsForm.js.map +0 -1
- package/esm/user-settings/UserSettingsPanel.css.js +0 -4
- package/esm/user-settings/UserSettingsPanel.css.js.map +0 -1
- package/esm/user-settings/UserSettingsPanel.js +0 -40
- package/esm/user-settings/UserSettingsPanel.js.map +0 -1
- package/esm/workspace-management/LayoutList.css.js +0 -4
- package/esm/workspace-management/LayoutList.css.js.map +0 -1
- package/esm/workspace-management/LayoutList.js +0 -114
- package/esm/workspace-management/LayoutList.js.map +0 -1
- package/esm/workspace-management/LayoutTile.css.js +0 -4
- package/esm/workspace-management/LayoutTile.css.js.map +0 -1
- package/esm/workspace-management/LayoutTile.js +0 -39
- package/esm/workspace-management/LayoutTile.js.map +0 -1
- package/esm/workspace-management/SaveLayoutPanel.css.js +0 -4
- package/esm/workspace-management/SaveLayoutPanel.css.js.map +0 -1
- package/esm/workspace-management/SaveLayoutPanel.js +0 -126
- package/esm/workspace-management/SaveLayoutPanel.js.map +0 -1
- package/esm/workspace-management/WorkspaceProvider.js +0 -262
- package/esm/workspace-management/WorkspaceProvider.js.map +0 -1
- package/esm/workspace-management/defaultWorkspaceJSON.js +0 -95
- package/esm/workspace-management/defaultWorkspaceJSON.js.map +0 -1
- package/esm/workspace-management/screenshot-utils.js +0 -23
- package/esm/workspace-management/screenshot-utils.js.map +0 -1
- package/esm/workspace-management/useWorkspaceContextMenuItems.js +0 -70
- package/esm/workspace-management/useWorkspaceContextMenuItems.js.map +0 -1
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
-
import { createElement } from 'react';
|
|
3
|
-
import { useComponentCssInjection } from '@salt-ds/styles';
|
|
4
|
-
import { useWindow } from '@salt-ds/window';
|
|
5
|
-
import layoutTileCss from './LayoutTile.css.js';
|
|
6
|
-
|
|
7
|
-
const classBase = "vuuLayoutTile";
|
|
8
|
-
const LayoutTile = ({
|
|
9
|
-
metadata,
|
|
10
|
-
onLoadLayout,
|
|
11
|
-
...htmlAttributes
|
|
12
|
-
}) => {
|
|
13
|
-
const targetWindow = useWindow();
|
|
14
|
-
useComponentCssInjection({
|
|
15
|
-
testId: "vuu-layout-tile",
|
|
16
|
-
css: layoutTileCss,
|
|
17
|
-
window: targetWindow
|
|
18
|
-
});
|
|
19
|
-
return /* @__PURE__ */ createElement(
|
|
20
|
-
"div",
|
|
21
|
-
{
|
|
22
|
-
...htmlAttributes,
|
|
23
|
-
className: `${classBase}-layoutTile`,
|
|
24
|
-
key: metadata?.id,
|
|
25
|
-
onClick: () => onLoadLayout(
|
|
26
|
-
metadata?.id,
|
|
27
|
-
metadata.layoutJSON
|
|
28
|
-
)
|
|
29
|
-
},
|
|
30
|
-
/* @__PURE__ */ jsx("img", { className: `${classBase}-screenshot`, src: metadata?.screenshot }),
|
|
31
|
-
/* @__PURE__ */ jsxs("div", { children: [
|
|
32
|
-
/* @__PURE__ */ jsx("div", { className: `${classBase}-layoutName`, children: metadata?.name }),
|
|
33
|
-
/* @__PURE__ */ jsx("div", { className: `${classBase}-layoutDetails`, children: /* @__PURE__ */ jsx("div", { children: `${metadata?.created}` }) })
|
|
34
|
-
] })
|
|
35
|
-
);
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
export { LayoutTile };
|
|
39
|
-
//# sourceMappingURL=LayoutTile.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LayoutTile.js","sources":["../../../../packages/vuu-shell/src/workspace-management/LayoutTile.tsx"],"sourcesContent":["import {\n LayoutJSON,\n LayoutMetadata,\n SystemLayoutMetadata,\n} from \"@vuu-ui/vuu-utils\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { HTMLAttributes } from \"react\";\n\nimport layoutTileCss from \"./LayoutTile.css\";\n\nconst classBase = \"vuuLayoutTile\";\n\nexport interface LayoutTileProps extends HTMLAttributes<HTMLDivElement> {\n metadata: LayoutMetadata | SystemLayoutMetadata;\n onLoadLayout: (layoutId?: string, layoutJSON?: LayoutJSON) => void;\n}\n\nexport const LayoutTile = ({\n metadata,\n onLoadLayout,\n ...htmlAttributes\n}: LayoutTileProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-layout-tile\",\n css: layoutTileCss,\n window: targetWindow,\n });\n\n return (\n <div\n {...htmlAttributes}\n className={`${classBase}-layoutTile`}\n key={metadata?.id}\n onClick={() =>\n onLoadLayout(\n metadata?.id,\n (metadata as SystemLayoutMetadata).layoutJSON,\n )\n }\n >\n <img className={`${classBase}-screenshot`} src={metadata?.screenshot} />\n <div>\n <div className={`${classBase}-layoutName`}>{metadata?.name}</div>\n <div className={`${classBase}-layoutDetails`}>\n <div>{`${metadata?.created}`}</div>\n </div>\n </div>\n </div>\n );\n};\n"],"names":[],"mappings":";;;;;;AAWA,MAAM,SAAY,GAAA,eAAA;AAOX,MAAM,aAAa,CAAC;AAAA,EACzB,QAAA;AAAA,EACA,YAAA;AAAA,EACA,GAAG;AACL,CAAuB,KAAA;AACrB,EAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,iBAAA;AAAA,IACR,GAAK,EAAA,aAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EACE,uBAAA,aAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,cAAA;AAAA,MACJ,SAAA,EAAW,GAAG,SAAS,CAAA,WAAA,CAAA;AAAA,MACvB,KAAK,QAAU,EAAA,EAAA;AAAA,MACf,SAAS,MACP,YAAA;AAAA,QACE,QAAU,EAAA,EAAA;AAAA,QACT,QAAkC,CAAA;AAAA;AACrC,KAAA;AAAA,oBAGF,GAAA,CAAC,SAAI,SAAW,EAAA,CAAA,EAAG,SAAS,CAAe,WAAA,CAAA,EAAA,GAAA,EAAK,UAAU,UAAY,EAAA,CAAA;AAAA,yBACrE,KACC,EAAA,EAAA,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,SAAI,SAAW,EAAA,CAAA,EAAG,SAAS,CAAA,WAAA,CAAA,EAAgB,oBAAU,IAAK,EAAA,CAAA;AAAA,sBAC1D,GAAA,CAAA,KAAA,EAAA,EAAI,SAAW,EAAA,CAAA,EAAG,SAAS,CAAA,cAAA,CAAA,EAC1B,QAAC,kBAAA,GAAA,CAAA,KAAA,EAAA,EAAK,QAAG,EAAA,CAAA,EAAA,QAAA,EAAU,OAAO,CAAA,CAAA,EAAG,CAC/B,EAAA;AAAA,KACF,EAAA;AAAA,GACF;AAEJ;;;;"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
var saveLayoutPanelCss = ".vuuSaveLayoutPanel {\n --salt-selectable-foreground-hover: #6d18bdc3;\n --salt-selectable-foreground-selected: #6d18bd;\n --salt-selectable-borderColor-selected: #6d18bd;\n --saltInputLegacy-fontSize: 12px;\n --salt-text-label-fontSize: 10px;\n --saltFormFieldLegacy-label-paddingLeft: 0;\n --saltFormField-label-fontWeight: 400;\n --saltText-color: var(--text-secondary-foreground, #606477);\n\n align-items: flex-start;\n display: flex;\n flex-direction: column;\n\n .saltFormField {\n border: solid 1px var(--salt-editable-borderColor);\n padding: var(--salt-spacing-50) var(--salt-spacing-200);\n }\n\n .saltComboBox {\n .saltPillInput-endAdornmentContainer {\n .saltButton {\n border: none;\n width: 18px;\n transform: rotate(90deg);\n }\n .saltButton:after {\n content: \"\";\n background-color: var(--salt-content-secondary-foreground);\n left: auto;\n height: 20px;\n mask: var(--vuu-svg-triangle-right) center center/20px 20px;\n mask-repeat: no-repeat;\n position: absolute;\n top: var(--vuu-icon-top, auto);\n transform: var(--vuu-icon-transform, none);\n width: 20px;\n }\n }\n .saltPillInput-activationIndicator {\n display: none;\n }\n }\n}\n\n.spinner {\n width: 100px;\n height: 100px;\n background-image: var(--svg-spinner);\n}\n\n.vuuSaveLayoutPanel-panelContent {\n display: grid;\n gap: 32px;\n margin-top: var(--salt-spacing-200);\n}\n\n.vuuSaveLayoutPanel-inputText {\n border: none;\n color: var(--light-text-primary, #15171b);\n font-size: 12px;\n font-weight: 400;\n line-height: 16px;\n padding-left: 4px;\n width: 100%;\n outline: none;\n}\n\n.vuuSaveLayoutPanel-settingsGroup {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-end;\n gap: 10px;\n width: 100%;\n line-height: 16px;\n}\n\n.vuuSaveLayoutPanel-screenshotContainer {\n display: flex;\n width: 304px;\n height: 208px;\n padding: 11px 15.5px;\n justify-content: center;\n align-items: center;\n border: 1px solid #e8e8e8;\n background: var(--dark-text-primary, #fff);\n}\n\n.vuuSaveLayoutPanel-screenshot {\n background: lightgray 50% / cover no-repeat;\n width: 273px;\n height: 186px;\n}\n\n.vuuSaveLayoutPanel-buttonsContainer {\n display: flex;\n justify-content: flex-end;\n align-items: flex-start;\n align-self: stretch;\n padding-top: 24px;\n gap: 8px;\n}\n\n.vuuSaveLayoutPanel-cancelButton,\n.vuuSaveLayoutPanel-saveButton {\n display: flex;\n height: fit-content;\n padding: 4px 8px;\n align-items: flex-start;\n gap: 8px;\n border-radius: 6px;\n font-size: 12px;\n font-style: normal;\n font-weight: 700;\n line-height: 133.333%;\n letter-spacing: 0.48px;\n text-transform: uppercase;\n}\n";
|
|
2
|
-
|
|
3
|
-
export { saveLayoutPanelCss as default };
|
|
4
|
-
//# sourceMappingURL=SaveLayoutPanel.css.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SaveLayoutPanel.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
-
import { Text, FormField, FormFieldLabel, ComboBox, Option, Input, Button } from '@salt-ds/core';
|
|
3
|
-
import { useComponentCssInjection } from '@salt-ds/styles';
|
|
4
|
-
import { useWindow } from '@salt-ds/window';
|
|
5
|
-
import { useState, useEffect, useMemo, useCallback } from 'react';
|
|
6
|
-
import { takeScreenshot } from './screenshot-utils.js';
|
|
7
|
-
import saveLayoutPanelCss from './SaveLayoutPanel.css.js';
|
|
8
|
-
import { useApplicationUser } from '../application-provider/ApplicationProvider.js';
|
|
9
|
-
|
|
10
|
-
const classBase = "vuuSaveLayoutPanel";
|
|
11
|
-
const groups = ["Group 1", "Group 2", "Group 3", "Group 4", "Group 5"];
|
|
12
|
-
const SaveLayoutPanel = (props) => {
|
|
13
|
-
const { defaultTitle = "", onCancel, onSave, componentId } = props;
|
|
14
|
-
const targetWindow = useWindow();
|
|
15
|
-
useComponentCssInjection({
|
|
16
|
-
testId: "vuu-save-layout-panel",
|
|
17
|
-
css: saveLayoutPanelCss,
|
|
18
|
-
window: targetWindow
|
|
19
|
-
});
|
|
20
|
-
const [layoutName, setLayoutName] = useState(defaultTitle);
|
|
21
|
-
const [group, setGroup] = useState("");
|
|
22
|
-
const [screenshot, setScreenshot] = useState();
|
|
23
|
-
const [screenshotErrorMessage, setScreenshotErrorMessage] = useState();
|
|
24
|
-
const { username } = useApplicationUser();
|
|
25
|
-
useEffect(() => {
|
|
26
|
-
if (componentId) {
|
|
27
|
-
takeScreenshot(document.getElementById(componentId)).then((screenshot2) => {
|
|
28
|
-
setScreenshot(screenshot2);
|
|
29
|
-
}).catch((error) => {
|
|
30
|
-
setScreenshotErrorMessage(error.message);
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
}, [componentId]);
|
|
34
|
-
const handleSubmit = () => {
|
|
35
|
-
onSave({
|
|
36
|
-
name: layoutName,
|
|
37
|
-
group,
|
|
38
|
-
screenshot: screenshot ?? "",
|
|
39
|
-
user: username
|
|
40
|
-
});
|
|
41
|
-
};
|
|
42
|
-
const screenshotContent = useMemo(() => {
|
|
43
|
-
if (screenshot) {
|
|
44
|
-
return /* @__PURE__ */ jsx(
|
|
45
|
-
"img",
|
|
46
|
-
{
|
|
47
|
-
className: `${classBase}-screenshot`,
|
|
48
|
-
src: screenshot,
|
|
49
|
-
alt: "screenshot of current layout"
|
|
50
|
-
}
|
|
51
|
-
);
|
|
52
|
-
}
|
|
53
|
-
if (screenshotErrorMessage) {
|
|
54
|
-
return /* @__PURE__ */ jsx(Text, { children: screenshotErrorMessage });
|
|
55
|
-
}
|
|
56
|
-
return /* @__PURE__ */ jsx("div", { className: "spinner" });
|
|
57
|
-
}, [screenshot, screenshotErrorMessage]);
|
|
58
|
-
const handleSelectionChange = useCallback(
|
|
59
|
-
(e, [selectedValue]) => {
|
|
60
|
-
if (e.key === "Tab" && !selectedValue.toLowerCase().startsWith(group.toLowerCase())) ; else {
|
|
61
|
-
setGroup(selectedValue || "");
|
|
62
|
-
}
|
|
63
|
-
},
|
|
64
|
-
[group]
|
|
65
|
-
);
|
|
66
|
-
const handleChange = useCallback((e) => {
|
|
67
|
-
setGroup(e.target.value);
|
|
68
|
-
}, []);
|
|
69
|
-
return /* @__PURE__ */ jsxs("div", { className: `${classBase}`, children: [
|
|
70
|
-
/* @__PURE__ */ jsxs("div", { className: `${classBase}-panelContent`, children: [
|
|
71
|
-
/* @__PURE__ */ jsxs(FormField, { children: [
|
|
72
|
-
/* @__PURE__ */ jsx(FormFieldLabel, { children: "Group" }),
|
|
73
|
-
/* @__PURE__ */ jsx(
|
|
74
|
-
ComboBox,
|
|
75
|
-
{
|
|
76
|
-
"data-embedded": true,
|
|
77
|
-
inputProps: {
|
|
78
|
-
autoComplete: "off",
|
|
79
|
-
className: `${classBase}-inputText`,
|
|
80
|
-
placeholder: "Select Group or Enter New Name"
|
|
81
|
-
// onChange: (event: ChangeEvent<HTMLInputElement>) =>
|
|
82
|
-
// setGroup(event.target.value),
|
|
83
|
-
},
|
|
84
|
-
onChange: handleChange,
|
|
85
|
-
onSelectionChange: handleSelectionChange,
|
|
86
|
-
value: group,
|
|
87
|
-
children: groups.map((group2, i) => /* @__PURE__ */ jsx(Option, { value: group2 }, i))
|
|
88
|
-
}
|
|
89
|
-
)
|
|
90
|
-
] }),
|
|
91
|
-
/* @__PURE__ */ jsxs(FormField, { children: [
|
|
92
|
-
/* @__PURE__ */ jsx(FormFieldLabel, { children: "Layout Name" }),
|
|
93
|
-
/* @__PURE__ */ jsx(
|
|
94
|
-
Input,
|
|
95
|
-
{
|
|
96
|
-
"data-embedded": true,
|
|
97
|
-
inputProps: {
|
|
98
|
-
className: `${classBase}-inputText`,
|
|
99
|
-
placeholder: "Enter Layout Name"
|
|
100
|
-
},
|
|
101
|
-
onChange: (event) => setLayoutName(event.target.value),
|
|
102
|
-
value: layoutName
|
|
103
|
-
}
|
|
104
|
-
)
|
|
105
|
-
] }),
|
|
106
|
-
/* @__PURE__ */ jsx("div", { className: `${classBase}-screenshotContainer`, children: screenshotContent })
|
|
107
|
-
] }),
|
|
108
|
-
/* @__PURE__ */ jsxs("div", { className: `${classBase}-buttonsContainer`, children: [
|
|
109
|
-
/* @__PURE__ */ jsx(Button, { className: `${classBase}-cancelButton`, onClick: onCancel, children: "Cancel" }),
|
|
110
|
-
/* @__PURE__ */ jsx(
|
|
111
|
-
Button,
|
|
112
|
-
{
|
|
113
|
-
appearance: "solid",
|
|
114
|
-
className: `${classBase}-saveButton`,
|
|
115
|
-
onClick: handleSubmit,
|
|
116
|
-
disabled: layoutName === "" || group === "",
|
|
117
|
-
sentiment: "accented",
|
|
118
|
-
children: "Save"
|
|
119
|
-
}
|
|
120
|
-
)
|
|
121
|
-
] })
|
|
122
|
-
] });
|
|
123
|
-
};
|
|
124
|
-
|
|
125
|
-
export { SaveLayoutPanel };
|
|
126
|
-
//# sourceMappingURL=SaveLayoutPanel.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SaveLayoutPanel.js","sources":["../../../../packages/vuu-shell/src/workspace-management/SaveLayoutPanel.tsx"],"sourcesContent":["import { LayoutMetadataDto } from \"@vuu-ui/vuu-utils\";\nimport {\n Button,\n ComboBox,\n FormField,\n FormFieldLabel,\n Input,\n Option,\n Text,\n} from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport {\n ChangeEvent,\n SyntheticEvent,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { takeScreenshot } from \"./screenshot-utils\";\n\nimport saveLayoutPanelCss from \"./SaveLayoutPanel.css\";\nimport { useApplicationUser } from \"../application-provider\";\n\nconst classBase = \"vuuSaveLayoutPanel\";\n\nconst groups = [\"Group 1\", \"Group 2\", \"Group 3\", \"Group 4\", \"Group 5\"];\n\ntype SaveLayoutPanelProps = {\n componentId?: string;\n defaultTitle?: string;\n onCancel: () => void;\n onSave: (layoutMetadata: LayoutMetadataDto) => void;\n};\n\nexport const SaveLayoutPanel = (props: SaveLayoutPanelProps) => {\n const { defaultTitle = \"\", onCancel, onSave, componentId } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-save-layout-panel\",\n css: saveLayoutPanelCss,\n window: targetWindow,\n });\n\n const [layoutName, setLayoutName] = useState<string>(defaultTitle);\n const [group, setGroup] = useState<string>(\"\");\n const [screenshot, setScreenshot] = useState<string | undefined>();\n const [screenshotErrorMessage, setScreenshotErrorMessage] = useState<\n string | undefined\n >();\n const { username } = useApplicationUser();\n\n useEffect(() => {\n if (componentId) {\n takeScreenshot(document.getElementById(componentId) as HTMLElement)\n .then((screenshot) => {\n setScreenshot(screenshot);\n })\n .catch((error: Error) => {\n setScreenshotErrorMessage(error.message);\n });\n }\n }, [componentId]);\n\n const handleSubmit = () => {\n onSave({\n name: layoutName,\n group,\n screenshot: screenshot ?? \"\",\n user: username,\n });\n };\n\n const screenshotContent = useMemo(() => {\n if (screenshot) {\n return (\n <img\n className={`${classBase}-screenshot`}\n src={screenshot}\n alt=\"screenshot of current layout\"\n />\n );\n }\n if (screenshotErrorMessage) {\n return <Text>{screenshotErrorMessage}</Text>;\n }\n return <div className=\"spinner\" />;\n }, [screenshot, screenshotErrorMessage]);\n\n const handleSelectionChange = useCallback(\n (e: SyntheticEvent | KeyboardEvent, [selectedValue]: string[]) => {\n if (\n (e as KeyboardEvent).key === \"Tab\" &&\n !selectedValue.toLowerCase().startsWith(group.toLowerCase())\n ) {\n // ignore. The ComboBox forces selection of a value from the list on Tab\n } else {\n setGroup(selectedValue || \"\");\n }\n },\n [group],\n );\n\n const handleChange = useCallback((e: ChangeEvent<HTMLInputElement>) => {\n setGroup(e.target.value);\n }, []);\n\n return (\n <div className={`${classBase}`}>\n <div className={`${classBase}-panelContent`}>\n <FormField>\n <FormFieldLabel>Group</FormFieldLabel>\n <ComboBox\n data-embedded\n inputProps={{\n autoComplete: \"off\",\n className: `${classBase}-inputText`,\n placeholder: \"Select Group or Enter New Name\",\n // onChange: (event: ChangeEvent<HTMLInputElement>) =>\n // setGroup(event.target.value),\n }}\n onChange={handleChange}\n onSelectionChange={handleSelectionChange}\n value={group}\n >\n {groups.map((group, i) => (\n <Option key={i} value={group} />\n ))}\n </ComboBox>\n </FormField>\n <FormField>\n <FormFieldLabel>Layout Name</FormFieldLabel>\n <Input\n data-embedded\n inputProps={{\n className: `${classBase}-inputText`,\n placeholder: \"Enter Layout Name\",\n }}\n onChange={(event: ChangeEvent<HTMLInputElement>) =>\n setLayoutName(event.target.value)\n }\n value={layoutName}\n />\n </FormField>\n <div className={`${classBase}-screenshotContainer`}>\n {screenshotContent}\n </div>\n </div>\n <div className={`${classBase}-buttonsContainer`}>\n <Button className={`${classBase}-cancelButton`} onClick={onCancel}>\n Cancel\n </Button>\n <Button\n appearance=\"solid\"\n className={`${classBase}-saveButton`}\n onClick={handleSubmit}\n disabled={layoutName === \"\" || group === \"\"}\n sentiment=\"accented\"\n >\n Save\n </Button>\n </div>\n </div>\n );\n};\n"],"names":["screenshot","group"],"mappings":"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"}
|
|
@@ -1,262 +0,0 @@
|
|
|
1
|
-
import { jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { isLayoutJSON, resolveJSONPath } from '@vuu-ui/vuu-layout';
|
|
3
|
-
import { useNotifications } from '@vuu-ui/vuu-notifications';
|
|
4
|
-
import { logger, VuuShellLocation, WorkspaceContext } from '@vuu-ui/vuu-utils';
|
|
5
|
-
import { useState, useRef, useCallback, useEffect, useContext } from 'react';
|
|
6
|
-
import { usePersistenceManager } from '../persistence-manager/PersistenceProvider.js';
|
|
7
|
-
import '../persistence-manager/LocalPersistenceManager.js';
|
|
8
|
-
import '../persistence-manager/StaticPersistenceManager.js';
|
|
9
|
-
import { getWorkspaceWithLayoutJSON, loadingJSON } from './defaultWorkspaceJSON.js';
|
|
10
|
-
|
|
11
|
-
const { info } = logger("useLayoutManager");
|
|
12
|
-
const ensureLayoutHasTitle = (layout, layoutMetadata) => {
|
|
13
|
-
if (layout.props?.title !== void 0) {
|
|
14
|
-
return layout;
|
|
15
|
-
} else {
|
|
16
|
-
return {
|
|
17
|
-
...layout,
|
|
18
|
-
props: {
|
|
19
|
-
...layout.props,
|
|
20
|
-
title: layoutMetadata.name
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
|
-
const loadingApplicationJSON = {
|
|
26
|
-
workspaceJSON: loadingJSON
|
|
27
|
-
};
|
|
28
|
-
const WorkspaceProvider = ({
|
|
29
|
-
TabstripProps,
|
|
30
|
-
children,
|
|
31
|
-
layoutJSON,
|
|
32
|
-
activeLayoutIndex,
|
|
33
|
-
layoutPlaceholderJSON,
|
|
34
|
-
showTabs,
|
|
35
|
-
workspaceJSON: customWorkspaceJSON
|
|
36
|
-
}) => {
|
|
37
|
-
const [layoutMetadata, setLayoutMetadata] = useState([]);
|
|
38
|
-
const [, forceRefresh] = useState({});
|
|
39
|
-
const { showNotification } = useNotifications();
|
|
40
|
-
const persistenceManager = usePersistenceManager();
|
|
41
|
-
const applicationJSONRef = useRef(loadingApplicationJSON);
|
|
42
|
-
const setApplicationJSON = useCallback(
|
|
43
|
-
(applicationJSON, rerender = true) => {
|
|
44
|
-
applicationJSONRef.current = applicationJSON;
|
|
45
|
-
if (rerender) {
|
|
46
|
-
forceRefresh({});
|
|
47
|
-
}
|
|
48
|
-
},
|
|
49
|
-
[]
|
|
50
|
-
);
|
|
51
|
-
const setWorkspaceJSON = useCallback(
|
|
52
|
-
(workspaceJSON, rerender = true) => {
|
|
53
|
-
setApplicationJSON(
|
|
54
|
-
{
|
|
55
|
-
...applicationJSONRef.current,
|
|
56
|
-
workspaceJSON
|
|
57
|
-
},
|
|
58
|
-
rerender
|
|
59
|
-
);
|
|
60
|
-
},
|
|
61
|
-
[setApplicationJSON]
|
|
62
|
-
);
|
|
63
|
-
const setApplicationSettings = useCallback(
|
|
64
|
-
(settings) => {
|
|
65
|
-
setApplicationJSON(
|
|
66
|
-
{
|
|
67
|
-
...applicationJSONRef.current,
|
|
68
|
-
settings: {
|
|
69
|
-
...applicationJSONRef.current.settings,
|
|
70
|
-
...settings
|
|
71
|
-
}
|
|
72
|
-
},
|
|
73
|
-
false
|
|
74
|
-
);
|
|
75
|
-
},
|
|
76
|
-
[setApplicationJSON]
|
|
77
|
-
);
|
|
78
|
-
useEffect(() => {
|
|
79
|
-
persistenceManager?.loadMetadata().then((metadata) => {
|
|
80
|
-
setLayoutMetadata(metadata);
|
|
81
|
-
}).catch((error) => {
|
|
82
|
-
showNotification({
|
|
83
|
-
content: "Could not load list of available layouts",
|
|
84
|
-
header: "Failed to Load Layouts",
|
|
85
|
-
status: "error",
|
|
86
|
-
type: "toast"
|
|
87
|
-
});
|
|
88
|
-
console.error("Error occurred while retrieving metadata", error);
|
|
89
|
-
});
|
|
90
|
-
persistenceManager?.loadApplicationJSON().then((applicationJSON) => {
|
|
91
|
-
if (applicationJSON) {
|
|
92
|
-
info?.("applicationJSON loaded successfully");
|
|
93
|
-
setApplicationJSON(applicationJSON);
|
|
94
|
-
} else {
|
|
95
|
-
const workspaceJSON = getWorkspaceWithLayoutJSON(
|
|
96
|
-
customWorkspaceJSON,
|
|
97
|
-
layoutJSON,
|
|
98
|
-
activeLayoutIndex,
|
|
99
|
-
{ TabstripProps, showTabs }
|
|
100
|
-
);
|
|
101
|
-
info?.(`applicationJSON not found, getting defaultWorkspaceJSON,
|
|
102
|
-
${JSON.stringify(workspaceJSON, null, 2)}
|
|
103
|
-
`);
|
|
104
|
-
setApplicationJSON({
|
|
105
|
-
workspaceJSON
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
}).catch((error) => {
|
|
109
|
-
showNotification({
|
|
110
|
-
content: "Could not load your latest view",
|
|
111
|
-
header: "Failed to Load Layout",
|
|
112
|
-
status: "error",
|
|
113
|
-
type: "toast"
|
|
114
|
-
});
|
|
115
|
-
console.error(
|
|
116
|
-
"Error occurred while retrieving application layout",
|
|
117
|
-
error
|
|
118
|
-
);
|
|
119
|
-
});
|
|
120
|
-
}, [
|
|
121
|
-
TabstripProps,
|
|
122
|
-
activeLayoutIndex,
|
|
123
|
-
customWorkspaceJSON,
|
|
124
|
-
layoutJSON,
|
|
125
|
-
showNotification,
|
|
126
|
-
persistenceManager,
|
|
127
|
-
setApplicationJSON,
|
|
128
|
-
showTabs
|
|
129
|
-
]);
|
|
130
|
-
const saveApplicationLayout = useCallback(
|
|
131
|
-
(layout) => {
|
|
132
|
-
if (isLayoutJSON(layout)) {
|
|
133
|
-
setWorkspaceJSON(layout, false);
|
|
134
|
-
persistenceManager?.saveApplicationJSON(applicationJSONRef.current);
|
|
135
|
-
} else {
|
|
136
|
-
console.error("Tried to save invalid application layout", layout);
|
|
137
|
-
}
|
|
138
|
-
},
|
|
139
|
-
[persistenceManager, setWorkspaceJSON]
|
|
140
|
-
);
|
|
141
|
-
const saveLayout = useCallback(
|
|
142
|
-
(metadata) => {
|
|
143
|
-
let layoutToSave;
|
|
144
|
-
try {
|
|
145
|
-
const { workspaceJSON } = applicationJSONRef.current;
|
|
146
|
-
if (Array.isArray(workspaceJSON)) {
|
|
147
|
-
console.log("how do we identify the right thing to save");
|
|
148
|
-
} else {
|
|
149
|
-
layoutToSave = resolveJSONPath(
|
|
150
|
-
workspaceJSON,
|
|
151
|
-
`#${VuuShellLocation.Workspace}.ACTIVE_CHILD`
|
|
152
|
-
);
|
|
153
|
-
}
|
|
154
|
-
} catch (e) {
|
|
155
|
-
}
|
|
156
|
-
if (layoutToSave && isLayoutJSON(layoutToSave)) {
|
|
157
|
-
persistenceManager?.createLayout(metadata, ensureLayoutHasTitle(layoutToSave, metadata)).then((metadata2) => {
|
|
158
|
-
showNotification({
|
|
159
|
-
content: `${metadata2.name} saved successfully`,
|
|
160
|
-
header: "Layout Saved Successfully",
|
|
161
|
-
status: "success",
|
|
162
|
-
type: "toast"
|
|
163
|
-
});
|
|
164
|
-
setLayoutMetadata((prev) => [...prev, metadata2]);
|
|
165
|
-
}).catch((error) => {
|
|
166
|
-
showNotification({
|
|
167
|
-
content: `Failed to save layout ${metadata.name}`,
|
|
168
|
-
header: "Failed to Save Layout",
|
|
169
|
-
status: "error",
|
|
170
|
-
type: "toast"
|
|
171
|
-
});
|
|
172
|
-
console.error("Error occurred while saving layout", error);
|
|
173
|
-
});
|
|
174
|
-
} else {
|
|
175
|
-
console.error("Tried to save invalid layout", layoutToSave);
|
|
176
|
-
showNotification({
|
|
177
|
-
content: "Cannot save invalid layout",
|
|
178
|
-
header: "Failed to Save Layout",
|
|
179
|
-
status: "error",
|
|
180
|
-
type: "toast"
|
|
181
|
-
});
|
|
182
|
-
}
|
|
183
|
-
},
|
|
184
|
-
[showNotification, persistenceManager]
|
|
185
|
-
);
|
|
186
|
-
const saveApplicationSettings = useCallback(
|
|
187
|
-
(settings, key) => {
|
|
188
|
-
const { settings: applicationSettings } = applicationJSONRef.current;
|
|
189
|
-
if (key) {
|
|
190
|
-
setApplicationSettings({
|
|
191
|
-
...applicationSettings,
|
|
192
|
-
[key]: settings
|
|
193
|
-
});
|
|
194
|
-
} else {
|
|
195
|
-
setApplicationSettings(settings);
|
|
196
|
-
}
|
|
197
|
-
persistenceManager?.saveApplicationJSON(applicationJSONRef.current);
|
|
198
|
-
},
|
|
199
|
-
[persistenceManager, setApplicationSettings]
|
|
200
|
-
);
|
|
201
|
-
const getApplicationSettings = useCallback(
|
|
202
|
-
(key) => {
|
|
203
|
-
const { settings } = applicationJSONRef.current;
|
|
204
|
-
return key ? settings?.[key] : settings;
|
|
205
|
-
},
|
|
206
|
-
[]
|
|
207
|
-
);
|
|
208
|
-
const loadLayoutById = useCallback(
|
|
209
|
-
(id) => {
|
|
210
|
-
persistenceManager?.loadLayout(id).then((layoutJson) => {
|
|
211
|
-
const { workspaceJSON: currentLayout } = applicationJSONRef.current;
|
|
212
|
-
if (Array.isArray(currentLayout)) {
|
|
213
|
-
console.log("how do we deal witha amulti layoput");
|
|
214
|
-
} else {
|
|
215
|
-
setWorkspaceJSON({
|
|
216
|
-
...currentLayout,
|
|
217
|
-
children: (currentLayout.children || []).concat(layoutJson),
|
|
218
|
-
props: {
|
|
219
|
-
...currentLayout.props,
|
|
220
|
-
active: currentLayout.children?.length ?? 0
|
|
221
|
-
}
|
|
222
|
-
});
|
|
223
|
-
}
|
|
224
|
-
}).catch((error) => {
|
|
225
|
-
showNotification({
|
|
226
|
-
content: "Failed to load the requested layout",
|
|
227
|
-
header: "Failed to Load Layout",
|
|
228
|
-
status: "error",
|
|
229
|
-
type: "toast"
|
|
230
|
-
});
|
|
231
|
-
console.error("Error occurred while loading layout", error);
|
|
232
|
-
});
|
|
233
|
-
},
|
|
234
|
-
[showNotification, persistenceManager, setWorkspaceJSON]
|
|
235
|
-
);
|
|
236
|
-
return /* @__PURE__ */ jsx(
|
|
237
|
-
WorkspaceContext.Provider,
|
|
238
|
-
{
|
|
239
|
-
value: {
|
|
240
|
-
getApplicationSettings,
|
|
241
|
-
layoutMetadata,
|
|
242
|
-
layoutPlaceholderJSON,
|
|
243
|
-
saveLayout,
|
|
244
|
-
workspaceJSON: applicationJSONRef.current.workspaceJSON,
|
|
245
|
-
saveApplicationLayout,
|
|
246
|
-
saveApplicationSettings,
|
|
247
|
-
loadLayoutById
|
|
248
|
-
},
|
|
249
|
-
children
|
|
250
|
-
}
|
|
251
|
-
);
|
|
252
|
-
};
|
|
253
|
-
const useWorkspace = () => {
|
|
254
|
-
const { workspaceJSON = getWorkspaceWithLayoutJSON(), ...contextProps } = useContext(WorkspaceContext);
|
|
255
|
-
return {
|
|
256
|
-
...contextProps,
|
|
257
|
-
workspaceJSON
|
|
258
|
-
};
|
|
259
|
-
};
|
|
260
|
-
|
|
261
|
-
export { WorkspaceProvider, useWorkspace };
|
|
262
|
-
//# sourceMappingURL=WorkspaceProvider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WorkspaceProvider.js","sources":["../../../../packages/vuu-shell/src/workspace-management/WorkspaceProvider.tsx"],"sourcesContent":["import { isLayoutJSON, resolveJSONPath } from \"@vuu-ui/vuu-layout\";\nimport { useNotifications } from \"@vuu-ui/vuu-notifications\";\nimport {\n LayoutMetadata,\n LayoutMetadataDto,\n VuuShellLocation,\n WorkspaceContext,\n logger,\n type ApplicationJSON,\n type ApplicationSetting,\n type ApplicationSettings,\n type LayoutJSON,\n} from \"@vuu-ui/vuu-utils\";\nimport {\n ReactElement,\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport { usePersistenceManager } from \"../persistence-manager\";\nimport {\n getWorkspaceWithLayoutJSON,\n loadingJSON,\n type WorkspaceStackProps,\n} from \"./defaultWorkspaceJSON\";\n\nconst { info } = logger(\"useLayoutManager\");\n\nexport type WorkspaceProps = WorkspaceStackProps & {\n layoutPlaceholderJSON?: LayoutJSON;\n /**\n * layoutJSON defines the default layout to render on first load and until such time as\n * layout state has been persisted. After that, the persisted state will be rendered.\n */\n layoutJSON?: LayoutJSON | LayoutJSON[];\n activeLayoutIndex?: number;\n /**\n * The Vuu workspace is the container into which layouts are loaded. By default, it will be\n * a Tabbed Panel (Stack + Tabstrip), showing a tab per Layout.\n */\n workspaceJSON?: LayoutJSON | LayoutJSON[];\n};\n\nexport interface WorkspaceProviderProps extends WorkspaceProps {\n children: ReactElement | ReactElement[];\n\n /**\n * layoutPlaceholderJSON defines the layout to render when a new workspace layout is created.\n */\n layoutPlaceholderJSON?: LayoutJSON;\n}\n\nconst ensureLayoutHasTitle = (\n layout: LayoutJSON,\n layoutMetadata: LayoutMetadataDto,\n) => {\n if (layout.props?.title !== undefined) {\n return layout;\n } else {\n return {\n ...layout,\n props: {\n ...layout.props,\n title: layoutMetadata.name,\n },\n };\n }\n};\n\nconst loadingApplicationJSON: ApplicationJSON = {\n workspaceJSON: loadingJSON,\n};\n\n/**\n * LayoutManagementProvider supplies an API for loading and saving layout documents.\n * Initial layout is automatically loaded on startup. Because this hook is responsible\n * only for loading and saving layouts, it only triggers a render when content is loaded.\n *\n * Initial layout displays a loading state\n * User may supply a default layout. This will not be displayed until call has been made to\n * persistenceManager to retrieve stored layout state. If no stored state is returned, the\n * default layout provided by user will be set as current state (and hence rendered). If no\n * default layout has been provided by user, the sysem default will be used (simple PlaceHolder)\n * If saved layout state has been returned, that will be set as current state (and rendered)\n *\n */\nexport const WorkspaceProvider = ({\n TabstripProps,\n children,\n layoutJSON,\n activeLayoutIndex,\n layoutPlaceholderJSON,\n showTabs,\n workspaceJSON: customWorkspaceJSON,\n}: WorkspaceProviderProps) => {\n const [layoutMetadata, setLayoutMetadata] = useState<LayoutMetadata[]>([]);\n // TODO this default should probably be a loading state rather than the placeholder\n // It will be replaced as soon as the localStorage/remote layout is resolved\n const [, forceRefresh] = useState({});\n const { showNotification } = useNotifications();\n const persistenceManager = usePersistenceManager();\n const applicationJSONRef = useRef<ApplicationJSON>(loadingApplicationJSON);\n\n const setApplicationJSON = useCallback(\n (applicationJSON: ApplicationJSON, rerender = true) => {\n applicationJSONRef.current = applicationJSON;\n if (rerender) {\n forceRefresh({});\n }\n },\n [],\n );\n\n const setWorkspaceJSON = useCallback(\n (workspaceJSON: LayoutJSON, rerender = true) => {\n setApplicationJSON(\n {\n ...applicationJSONRef.current,\n workspaceJSON,\n },\n rerender,\n );\n },\n [setApplicationJSON],\n );\n\n const setApplicationSettings = useCallback(\n (settings: ApplicationSettings) => {\n setApplicationJSON(\n {\n ...applicationJSONRef.current,\n settings: {\n ...applicationJSONRef.current.settings,\n ...settings,\n },\n },\n false,\n );\n },\n [setApplicationJSON],\n );\n\n useEffect(() => {\n //TODO this does not need to be done ahead of time\n persistenceManager\n ?.loadMetadata()\n .then((metadata) => {\n setLayoutMetadata(metadata);\n })\n .catch((error: Error) => {\n showNotification({\n content: \"Could not load list of available layouts\",\n header: \"Failed to Load Layouts\",\n status: \"error\",\n type: \"toast\",\n });\n console.error(\"Error occurred while retrieving metadata\", error);\n });\n\n persistenceManager\n ?.loadApplicationJSON()\n .then((applicationJSON?: ApplicationJSON) => {\n if (applicationJSON) {\n info?.(\"applicationJSON loaded successfully\");\n setApplicationJSON(applicationJSON);\n } else {\n // No applicationJSON has been saved yet. Construct our\n // initial applicationJSON from user configuration and\n // default values.\n const workspaceJSON = getWorkspaceWithLayoutJSON(\n customWorkspaceJSON,\n layoutJSON,\n activeLayoutIndex,\n { TabstripProps, showTabs },\n );\n info?.(`applicationJSON not found, getting defaultWorkspaceJSON,\n ${JSON.stringify(workspaceJSON, null, 2)}\n `);\n setApplicationJSON({\n workspaceJSON,\n });\n }\n })\n .catch((error: Error) => {\n showNotification({\n content: \"Could not load your latest view\",\n header: \"Failed to Load Layout\",\n status: \"error\",\n type: \"toast\",\n });\n console.error(\n \"Error occurred while retrieving application layout\",\n error,\n );\n });\n }, [\n TabstripProps,\n activeLayoutIndex,\n customWorkspaceJSON,\n layoutJSON,\n showNotification,\n persistenceManager,\n setApplicationJSON,\n showTabs,\n ]);\n\n const saveApplicationLayout = useCallback(\n (layout: LayoutJSON) => {\n if (isLayoutJSON(layout)) {\n setWorkspaceJSON(layout, false);\n persistenceManager?.saveApplicationJSON(applicationJSONRef.current);\n } else {\n console.error(\"Tried to save invalid application layout\", layout);\n }\n },\n [persistenceManager, setWorkspaceJSON],\n );\n\n const saveLayout = useCallback(\n (metadata: LayoutMetadataDto) => {\n let layoutToSave: LayoutJSON | undefined;\n try {\n const { workspaceJSON } = applicationJSONRef.current;\n if (Array.isArray(workspaceJSON)) {\n console.log(\"how do we identify the right thing to save\");\n } else {\n layoutToSave = resolveJSONPath(\n workspaceJSON,\n `#${VuuShellLocation.Workspace}.ACTIVE_CHILD`,\n );\n }\n } catch (e) {\n // ignore, code below will handle\n }\n\n if (layoutToSave && isLayoutJSON(layoutToSave)) {\n persistenceManager\n ?.createLayout(metadata, ensureLayoutHasTitle(layoutToSave, metadata))\n .then((metadata) => {\n showNotification({\n content: `${metadata.name} saved successfully`,\n header: \"Layout Saved Successfully\",\n status: \"success\",\n type: \"toast\",\n });\n setLayoutMetadata((prev) => [...prev, metadata]);\n })\n .catch((error: Error) => {\n showNotification({\n content: `Failed to save layout ${metadata.name}`,\n header: \"Failed to Save Layout\",\n status: \"error\",\n type: \"toast\",\n });\n console.error(\"Error occurred while saving layout\", error);\n });\n } else {\n console.error(\"Tried to save invalid layout\", layoutToSave);\n showNotification({\n content: \"Cannot save invalid layout\",\n header: \"Failed to Save Layout\",\n status: \"error\",\n type: \"toast\",\n });\n }\n },\n [showNotification, persistenceManager],\n );\n\n const saveApplicationSettings = useCallback(\n (\n settings: ApplicationSettings | ApplicationSetting,\n key?: keyof ApplicationSettings,\n ) => {\n const { settings: applicationSettings } = applicationJSONRef.current;\n if (key) {\n setApplicationSettings({\n ...applicationSettings,\n [key]: settings,\n });\n } else {\n setApplicationSettings(settings as ApplicationSettings);\n }\n persistenceManager?.saveApplicationJSON(applicationJSONRef.current);\n },\n [persistenceManager, setApplicationSettings],\n );\n\n const getApplicationSettings = useCallback(\n (key?: keyof ApplicationSettings) => {\n const { settings } = applicationJSONRef.current;\n return key ? settings?.[key] : settings;\n },\n [],\n );\n\n const loadLayoutById = useCallback(\n (id: string) => {\n persistenceManager\n ?.loadLayout(id)\n .then((layoutJson) => {\n const { workspaceJSON: currentLayout } = applicationJSONRef.current;\n if (Array.isArray(currentLayout)) {\n console.log(\"how do we deal witha amulti layoput\");\n } else {\n setWorkspaceJSON({\n ...currentLayout,\n children: (currentLayout.children || []).concat(layoutJson),\n props: {\n ...currentLayout.props,\n active: currentLayout.children?.length ?? 0,\n },\n });\n }\n })\n .catch((error: Error) => {\n showNotification({\n content: \"Failed to load the requested layout\",\n header: \"Failed to Load Layout\",\n status: \"error\",\n type: \"toast\",\n });\n console.error(\"Error occurred while loading layout\", error);\n });\n },\n [showNotification, persistenceManager, setWorkspaceJSON],\n );\n\n return (\n <WorkspaceContext.Provider\n value={{\n getApplicationSettings,\n layoutMetadata,\n layoutPlaceholderJSON,\n saveLayout,\n workspaceJSON: applicationJSONRef.current.workspaceJSON,\n saveApplicationLayout,\n saveApplicationSettings,\n loadLayoutById,\n }}\n >\n {children}\n </WorkspaceContext.Provider>\n );\n};\n\nexport const useWorkspace = () => {\n // The default Application JSON will be served if no LayoutManagementProvider\n const { workspaceJSON = getWorkspaceWithLayoutJSON(), ...contextProps } =\n useContext(WorkspaceContext);\n\n return {\n ...contextProps,\n workspaceJSON,\n };\n};\n"],"names":["metadata"],"mappings":"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"}
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import { VuuShellLocation } from '@vuu-ui/vuu-utils';
|
|
2
|
-
|
|
3
|
-
const warningLayout = {
|
|
4
|
-
type: "View",
|
|
5
|
-
props: {
|
|
6
|
-
style: { height: "calc(100% - 6px)" }
|
|
7
|
-
},
|
|
8
|
-
children: [
|
|
9
|
-
{
|
|
10
|
-
props: {
|
|
11
|
-
className: "vuuShell-warningPlaceholder"
|
|
12
|
-
},
|
|
13
|
-
type: "Placeholder"
|
|
14
|
-
}
|
|
15
|
-
]
|
|
16
|
-
};
|
|
17
|
-
const loadingJSON = {
|
|
18
|
-
type: "Component",
|
|
19
|
-
id: "loading-main",
|
|
20
|
-
props: {}
|
|
21
|
-
};
|
|
22
|
-
const defaultWorkspaceJSON = {
|
|
23
|
-
type: "Stack",
|
|
24
|
-
id: VuuShellLocation.Workspace,
|
|
25
|
-
props: {
|
|
26
|
-
className: `${VuuShellLocation.Workspace}-tabs`,
|
|
27
|
-
TabstripProps: {
|
|
28
|
-
allowAddTab: true,
|
|
29
|
-
allowCloseTab: true,
|
|
30
|
-
allowRenameTab: true,
|
|
31
|
-
animateSelectionThumb: false,
|
|
32
|
-
"aria-label": "Workspace Tabs",
|
|
33
|
-
location: "workspace-tab",
|
|
34
|
-
variant: "primary"
|
|
35
|
-
},
|
|
36
|
-
preserve: true
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
const getStackWorkspaceJSON = (activeLayoutIndex) => ({
|
|
40
|
-
...defaultWorkspaceJSON,
|
|
41
|
-
active: activeLayoutIndex ?? 0
|
|
42
|
-
});
|
|
43
|
-
const placeholderLayout = {
|
|
44
|
-
props: {
|
|
45
|
-
id: "tab1",
|
|
46
|
-
title: "Tab 1",
|
|
47
|
-
className: "vuuShell-Placeholder"
|
|
48
|
-
},
|
|
49
|
-
type: "Placeholder"
|
|
50
|
-
};
|
|
51
|
-
const getWorkspaceWithLayoutJSON = (customWorkspaceJSON, layoutJSON = placeholderLayout, activeLayoutIndex, stackProps) => {
|
|
52
|
-
const stackWorkspace = getStackWorkspaceJSON(activeLayoutIndex);
|
|
53
|
-
if (Array.isArray(customWorkspaceJSON)) {
|
|
54
|
-
const workspace = customWorkspaceJSON.find(
|
|
55
|
-
(layout) => layout.id === VuuShellLocation.Workspace
|
|
56
|
-
);
|
|
57
|
-
if (workspace) {
|
|
58
|
-
return customWorkspaceJSON.map((ws) => {
|
|
59
|
-
if (ws.id === VuuShellLocation.Workspace) {
|
|
60
|
-
return {
|
|
61
|
-
...ws,
|
|
62
|
-
children: Array.isArray(layoutJSON) ? layoutJSON : [layoutJSON]
|
|
63
|
-
};
|
|
64
|
-
} else {
|
|
65
|
-
return ws;
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
-
} else {
|
|
69
|
-
throw Error(
|
|
70
|
-
"Multiple workspaces have been provided but none has the workspace id"
|
|
71
|
-
);
|
|
72
|
-
}
|
|
73
|
-
} else if (customWorkspaceJSON) {
|
|
74
|
-
return {
|
|
75
|
-
...customWorkspaceJSON,
|
|
76
|
-
children: Array.isArray(layoutJSON) ? layoutJSON : [layoutJSON]
|
|
77
|
-
};
|
|
78
|
-
} else {
|
|
79
|
-
return {
|
|
80
|
-
...stackWorkspace,
|
|
81
|
-
props: {
|
|
82
|
-
...stackWorkspace.props,
|
|
83
|
-
...stackProps,
|
|
84
|
-
TabstripProps: {
|
|
85
|
-
...stackWorkspace.props?.TabstripProps,
|
|
86
|
-
...stackProps?.TabstripProps
|
|
87
|
-
}
|
|
88
|
-
},
|
|
89
|
-
children: Array.isArray(layoutJSON) ? layoutJSON : [layoutJSON]
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
};
|
|
93
|
-
|
|
94
|
-
export { defaultWorkspaceJSON, getStackWorkspaceJSON, getWorkspaceWithLayoutJSON, loadingJSON, warningLayout };
|
|
95
|
-
//# sourceMappingURL=defaultWorkspaceJSON.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"defaultWorkspaceJSON.js","sources":["../../../../packages/vuu-shell/src/workspace-management/defaultWorkspaceJSON.ts"],"sourcesContent":["import { StackProps } from \"@vuu-ui/vuu-layout\";\nimport { LayoutJSON, VuuShellLocation } from \"@vuu-ui/vuu-utils\";\n\nexport type WorkspaceStackProps = Pick<\n StackProps,\n \"showTabs\" | \"TabstripProps\"\n>;\n\nexport const warningLayout: LayoutJSON = {\n type: \"View\",\n props: {\n style: { height: \"calc(100% - 6px)\" },\n },\n children: [\n {\n props: {\n className: \"vuuShell-warningPlaceholder\",\n },\n type: \"Placeholder\",\n },\n ],\n};\n\nexport const loadingJSON: Readonly<LayoutJSON> = {\n type: \"Component\",\n id: \"loading-main\",\n props: {},\n};\n\nexport const defaultWorkspaceJSON: LayoutJSON<\n StackProps & { preserve: boolean }\n> = {\n type: \"Stack\",\n id: VuuShellLocation.Workspace,\n props: {\n className: `${VuuShellLocation.Workspace}-tabs`,\n TabstripProps: {\n allowAddTab: true,\n allowCloseTab: true,\n allowRenameTab: true,\n animateSelectionThumb: false,\n \"aria-label\": \"Workspace Tabs\",\n location: \"workspace-tab\",\n variant: \"primary\",\n },\n preserve: true,\n },\n};\n\nexport const getStackWorkspaceJSON = (\n activeLayoutIndex?: number,\n): LayoutJSON => ({\n ...defaultWorkspaceJSON,\n active: activeLayoutIndex ?? 0,\n});\n\nconst placeholderLayout: LayoutJSON = {\n props: {\n id: \"tab1\",\n title: \"Tab 1\",\n className: \"vuuShell-Placeholder\",\n },\n type: \"Placeholder\",\n};\n\nexport const getWorkspaceWithLayoutJSON = (\n customWorkspaceJSON?: LayoutJSON | LayoutJSON[],\n layoutJSON: LayoutJSON | LayoutJSON[] = placeholderLayout,\n activeLayoutIndex?: number,\n stackProps?: WorkspaceStackProps,\n): LayoutJSON | LayoutJSON[] => {\n const stackWorkspace = getStackWorkspaceJSON(activeLayoutIndex);\n if (Array.isArray(customWorkspaceJSON)) {\n const workspace = customWorkspaceJSON.find(\n (layout) => layout.id === VuuShellLocation.Workspace,\n );\n if (workspace) {\n return customWorkspaceJSON.map((ws) => {\n if (ws.id === VuuShellLocation.Workspace) {\n return {\n ...ws,\n children: Array.isArray(layoutJSON) ? layoutJSON : [layoutJSON],\n };\n } else {\n return ws;\n }\n });\n } else {\n throw Error(\n \"Multiple workspaces have been provided but none has the workspace id\",\n );\n }\n } else if (customWorkspaceJSON) {\n return {\n ...customWorkspaceJSON,\n children: Array.isArray(layoutJSON) ? layoutJSON : [layoutJSON],\n };\n } else {\n return {\n ...stackWorkspace,\n props: {\n ...stackWorkspace.props,\n ...stackProps,\n TabstripProps: {\n ...stackWorkspace.props?.TabstripProps,\n ...stackProps?.TabstripProps,\n },\n },\n children: Array.isArray(layoutJSON) ? layoutJSON : [layoutJSON],\n };\n }\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { toPng } from 'html-to-image';
|
|
2
|
-
|
|
3
|
-
const takeScreenshot = (node) => {
|
|
4
|
-
return new Promise((resolve, reject) => {
|
|
5
|
-
toPng(node, {
|
|
6
|
-
cacheBust: true
|
|
7
|
-
}).then((screenshot) => {
|
|
8
|
-
if (!screenshot) {
|
|
9
|
-
reject(new Error("No Screenshot available"));
|
|
10
|
-
}
|
|
11
|
-
resolve(screenshot);
|
|
12
|
-
}).catch((error) => {
|
|
13
|
-
console.error(
|
|
14
|
-
"the following error occurred while taking a screenshot of a DOMNode",
|
|
15
|
-
error
|
|
16
|
-
);
|
|
17
|
-
reject(new Error("Error taking screenshot"));
|
|
18
|
-
});
|
|
19
|
-
});
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
export { takeScreenshot };
|
|
23
|
-
//# sourceMappingURL=screenshot-utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"screenshot-utils.js","sources":["../../../../packages/vuu-shell/src/workspace-management/screenshot-utils.ts"],"sourcesContent":["import { toPng } from \"html-to-image\";\n\n/**\n * Takes a screenshot of the given node and returns the base64 encoded image url\n * @param node HTMLElement to take screenshot of\n * @returns Base64 encoded image url\n */\nexport const takeScreenshot = (node: HTMLElement): Promise<string> => {\n return new Promise((resolve, reject) => {\n toPng(node, {\n cacheBust: true /*,\n filter: (child) =>\n // remove content of table rows\n child.nodeType === Node.TEXT_NODE ||\n child.getAttribute(\"role\") !== \"row\",*/,\n })\n .then((screenshot) => {\n if (!screenshot) {\n reject(new Error(\"No Screenshot available\"));\n }\n resolve(screenshot);\n })\n .catch((error: Error) => {\n console.error(\n \"the following error occurred while taking a screenshot of a DOMNode\",\n error\n );\n reject(new Error(\"Error taking screenshot\"));\n });\n });\n};\n"],"names":[],"mappings":";;AAOa,MAAA,cAAA,GAAiB,CAAC,IAAuC,KAAA;AACpE,EAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,EAAS,MAAW,KAAA;AACtC,IAAA,KAAA,CAAM,IAAM,EAAA;AAAA,MACV,SAAW,EAAA;AAAA,KAKZ,CAAA,CACE,IAAK,CAAA,CAAC,UAAe,KAAA;AACpB,MAAA,IAAI,CAAC,UAAY,EAAA;AACf,QAAO,MAAA,CAAA,IAAI,KAAM,CAAA,yBAAyB,CAAC,CAAA;AAAA;AAE7C,MAAA,OAAA,CAAQ,UAAU,CAAA;AAAA,KACnB,CAAA,CACA,KAAM,CAAA,CAAC,KAAiB,KAAA;AACvB,MAAQ,OAAA,CAAA,KAAA;AAAA,QACN,qEAAA;AAAA,QACA;AAAA,OACF;AACA,MAAO,MAAA,CAAA,IAAI,KAAM,CAAA,yBAAyB,CAAC,CAAA;AAAA,KAC5C,CAAA;AAAA,GACJ,CAAA;AACH;;;;"}
|