@finsemble/finsemble-ui 6.6.1 → 7.0.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +18 -32
- package/react/assets/css/button.css +1 -1
- package/react/assets/css/favorites.css +0 -47
- package/react/assets/css/finsemble.css +3 -0
- package/react/assets/css/linkerWindow.css +13 -1
- package/react/assets/css/menus.css +2 -2
- package/react/assets/css/notificationsCenter.css +32 -1
- package/react/assets/css/shared/common.css +40 -0
- package/react/assets/css/userPreferences.css +17 -12
- package/react/assets/css/windowTitleBar.css +7 -0
- package/react/assets/icons/server.svg +26 -0
- package/react/components/common/ButtonIcon.js +1 -1
- package/react/components/common/ButtonIcon.js.map +1 -1
- package/react/components/common/ButtonRow.js +2 -2
- package/react/components/common/ButtonRow.js.map +1 -1
- package/react/components/common/Checkbox.js +1 -1
- package/react/components/common/Checkbox.js.map +1 -1
- package/react/components/common/ColorPicker.js +16 -15
- package/react/components/common/ColorPicker.js.map +1 -1
- package/react/components/common/ErrorBoundary.d.ts +16 -0
- package/react/components/common/ErrorBoundary.js +22 -0
- package/react/components/common/ErrorBoundary.js.map +1 -0
- package/react/components/common/FinsembleIcon.d.ts +3 -2
- package/react/components/common/FinsembleIcon.js +10 -3
- package/react/components/common/FinsembleIcon.js.map +1 -1
- package/react/components/common/FinsembleLink.d.ts +6 -0
- package/react/components/common/FinsembleLink.js +12 -0
- package/react/components/common/FinsembleLink.js.map +1 -0
- package/react/components/common/FinsembleToggle.d.ts +1 -2
- package/react/components/common/FinsembleToggle.js +2 -6
- package/react/components/common/FinsembleToggle.js.map +1 -1
- package/react/components/common/FinsembleToggleButtonBar.d.ts +13 -0
- package/react/components/common/FinsembleToggleButtonBar.js +44 -0
- package/react/components/common/FinsembleToggleButtonBar.js.map +1 -0
- package/react/components/common/InputTable.d.ts +3 -3
- package/react/components/common/InputTable.js +13 -13
- package/react/components/common/InputTable.js.map +1 -1
- package/react/components/common/Tab.js +33 -5
- package/react/components/common/Tab.js.map +1 -1
- package/react/components/common/css/FinsembleToggle.css +22 -0
- package/react/components/common/css/application-edit-page.css +10 -2
- package/react/components/common/css/tab.css +8 -8
- package/react/components/common/css/time-select.css +1 -1
- package/react/components/common/css/toggle.css +2 -10
- package/react/components/common/helpers.js +6 -1
- package/react/components/common/helpers.js.map +1 -1
- package/react/components/common/stories/ColorPicker.stories.js +6 -11
- package/react/components/common/stories/ColorPicker.stories.js.map +1 -1
- package/react/components/common/stories/FinsembleToggle.stories.d.ts +1 -2
- package/react/components/common/stories/FinsembleToggle.stories.js +0 -7
- package/react/components/common/stories/FinsembleToggle.stories.js.map +1 -1
- package/react/components/common/stories/FinsembleToggleButtonBar.stories.d.ts +14 -0
- package/react/components/common/stories/FinsembleToggleButtonBar.stories.js +97 -0
- package/react/components/common/stories/FinsembleToggleButtonBar.stories.js.map +1 -0
- package/react/components/common/stories/InputTable.stories.d.ts +4 -3
- package/react/components/common/stories/InputTable.stories.js +18 -8
- package/react/components/common/stories/InputTable.stories.js.map +1 -1
- package/react/components/common/tests/ButtonRow.spec.js +5 -0
- package/react/components/common/tests/ButtonRow.spec.js.map +1 -1
- package/react/components/common/tests/FinsembleToggle.spec.js +1 -6
- package/react/components/common/tests/FinsembleToggle.spec.js.map +1 -1
- package/react/components/common/tests/FinsembleToggleButtonBar.spec.d.ts +1 -0
- package/react/components/common/tests/FinsembleToggleButtonBar.spec.js +40 -0
- package/react/components/common/tests/FinsembleToggleButtonBar.spec.js.map +1 -0
- package/react/components/common/tests/InputTable.spec.js +3 -3
- package/react/components/common/tests/InputTable.spec.js.map +1 -1
- package/react/components/favorites/FavoriteMaker.js +1 -1
- package/react/components/favorites/FavoriteMaker.js.map +1 -1
- package/react/components/fdc3Resolver/ResolverContainer.js +4 -7
- package/react/components/fdc3Resolver/ResolverContainer.js.map +1 -1
- package/react/components/icon/Icon.d.ts +1 -1
- package/react/components/icon/Icon.js +8 -1
- package/react/components/icon/Icon.js.map +1 -1
- package/react/components/legacyControls/FinsembleDnDContext.js +7 -7
- package/react/components/legacyControls/FinsembleDnDContext.js.map +1 -1
- package/react/components/linker/remoteRedux.js +1 -0
- package/react/components/linker/remoteRedux.js.map +1 -1
- package/react/components/menu/MenuItem.js +1 -1
- package/react/components/menu/MenuItem.js.map +1 -1
- package/react/components/menu/MenuPortal.js +12 -21
- package/react/components/menu/MenuPortal.js.map +1 -1
- package/react/components/menu/MenuToggle.js +1 -1
- package/react/components/menu/MenuToggle.js.map +1 -1
- package/react/components/menu/keyboardNavigation.d.ts +1 -22
- package/react/components/menu/keyboardNavigation.js +110 -160
- package/react/components/menu/keyboardNavigation.js.map +1 -1
- package/react/components/notifications/components/drawer/DrawerControls.js +39 -25
- package/react/components/notifications/components/drawer/DrawerControls.js.map +1 -1
- package/react/components/notifications/components/notificationsCenter/NotificationsCenter.js +19 -6
- package/react/components/notifications/components/notificationsCenter/NotificationsCenter.js.map +1 -1
- package/react/components/notifications/components/shared/CheckButton.js +19 -8
- package/react/components/notifications/components/shared/CheckButton.js.map +1 -1
- package/react/components/notifications/components/shared/NotificationCardShell.js +2 -1
- package/react/components/notifications/components/shared/NotificationCardShell.js.map +1 -1
- package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyShell.js +2 -1
- package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyShell.js.map +1 -1
- package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderShell.js +2 -1
- package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderShell.js.map +1 -1
- package/react/components/notifications/components/views/CardView.js +5 -3
- package/react/components/notifications/components/views/CardView.js.map +1 -1
- package/react/components/notifications/components/views/ListView.js +3 -1
- package/react/components/notifications/components/views/ListView.js.map +1 -1
- package/react/components/notifications/types.d.ts +3 -0
- package/react/components/notifications/types.js.map +1 -1
- package/react/components/processMonitor/ProcessMonitor.js +4 -1
- package/react/components/processMonitor/ProcessMonitor.js.map +1 -1
- package/react/components/processMonitor/components/ProcessStatistics.js +1 -3
- package/react/components/processMonitor/components/ProcessStatistics.js.map +1 -1
- package/react/components/processMonitor/helpers.js +4 -3
- package/react/components/processMonitor/helpers.js.map +1 -1
- package/react/components/processMonitor/helpers.spec.js +7 -3
- package/react/components/processMonitor/helpers.spec.js.map +1 -1
- package/react/components/sdd/AddApp.d.ts +4 -3
- package/react/components/sdd/AddApp.js +132 -30
- package/react/components/sdd/AddApp.js.map +1 -1
- package/react/components/sdd/AppEditAccess.d.ts +4 -3
- package/react/components/sdd/AppEditAccess.js.map +1 -1
- package/react/components/sdd/AppEditPage.d.ts +4 -3
- package/react/components/sdd/AppEditPage.js +141 -116
- package/react/components/sdd/AppEditPage.js.map +1 -1
- package/react/components/sdd/Appearance.d.ts +2 -1
- package/react/components/sdd/Appearance.js +15 -7
- package/react/components/sdd/Appearance.js.map +1 -1
- package/react/components/sdd/Application.d.ts +5 -4
- package/react/components/sdd/Application.js +61 -42
- package/react/components/sdd/Application.js.map +1 -1
- package/react/components/sdd/Applications.d.ts +12 -11
- package/react/components/sdd/Applications.js +23 -4
- package/react/components/sdd/Applications.js.map +1 -1
- package/react/components/sdd/Authentication.js +1 -6
- package/react/components/sdd/Authentication.js.map +1 -1
- package/react/components/sdd/AuthenticationProviderConfig.js +5 -3
- package/react/components/sdd/AuthenticationProviderConfig.js.map +1 -1
- package/react/components/sdd/EditPreload.d.ts +4 -3
- package/react/components/sdd/EditPreload.js +39 -22
- package/react/components/sdd/EditPreload.js.map +1 -1
- package/react/components/sdd/Export.d.ts +7 -6
- package/react/components/sdd/Export.js +3 -2
- package/react/components/sdd/Export.js.map +1 -1
- package/react/components/sdd/GettingStarted.js +3 -3
- package/react/components/sdd/GettingStarted.js.map +1 -1
- package/react/components/sdd/Navigation.js +28 -4
- package/react/components/sdd/Navigation.js.map +1 -1
- package/react/components/sdd/OptionalSettingsView.d.ts +6 -5
- package/react/components/sdd/OptionalSettingsView.js +2 -10
- package/react/components/sdd/OptionalSettingsView.js.map +1 -1
- package/react/components/sdd/ProjectErrors.js +1 -1
- package/react/components/sdd/ProjectErrors.js.map +1 -1
- package/react/components/sdd/Publish.js +2 -2
- package/react/components/sdd/Publish.js.map +1 -1
- package/react/components/sdd/SmartDesktopDesigner.d.ts +17 -16
- package/react/components/sdd/SmartDesktopDesigner.js +37 -34
- package/react/components/sdd/SmartDesktopDesigner.js.map +1 -1
- package/react/components/sdd/ThemePage.js +8 -5
- package/react/components/sdd/ThemePage.js.map +1 -1
- package/react/components/sdd/Themes.d.ts +2 -1
- package/react/components/sdd/Themes.js +2 -2
- package/react/components/sdd/Themes.js.map +1 -1
- package/react/components/sdd/Toolbar.d.ts +5 -4
- package/react/components/sdd/Toolbar.js +11 -9
- package/react/components/sdd/Toolbar.js.map +1 -1
- package/react/components/sdd/common/setPreloadDefaults.d.ts +1 -1
- package/react/components/sdd/common/setPreloadDefaults.js +5 -4
- package/react/components/sdd/common/setPreloadDefaults.js.map +1 -1
- package/react/components/sdd/common/views.js +7 -4
- package/react/components/sdd/common/views.js.map +1 -1
- package/react/components/sdd/css/addApp.css +52 -0
- package/react/components/sdd/css/applications.css +4 -24
- package/react/components/sdd/css/nav.css +3 -3
- package/react/components/sdd/fixtures/authenticationProps.js +15 -1
- package/react/components/sdd/fixtures/authenticationProps.js.map +1 -1
- package/react/components/sdd/fixtures/preloads.js +14 -12
- package/react/components/sdd/fixtures/preloads.js.map +1 -1
- package/react/components/sdd/smartDesktopClient.d.ts +163 -0
- package/react/components/sdd/smartDesktopClient.js +573 -0
- package/react/components/sdd/smartDesktopClient.js.map +1 -0
- package/react/components/sdd/smartDesktopClient.spec.d.ts +1 -0
- package/react/components/sdd/smartDesktopClient.spec.js +61 -0
- package/react/components/sdd/smartDesktopClient.spec.js.map +1 -0
- package/react/components/sdd/stories/AddApp.stories.d.ts +10 -0
- package/react/components/sdd/stories/AddApp.stories.js +18 -0
- package/react/components/sdd/stories/AddApp.stories.js.map +1 -0
- package/react/components/sdd/stories/AppEditPage.stories.d.ts +2 -0
- package/react/components/sdd/stories/AppEditPage.stories.js +2 -0
- package/react/components/sdd/stories/AppEditPage.stories.js.map +1 -1
- package/react/components/sdd/stories/Appearance.stories.d.ts +1 -1
- package/react/components/sdd/stories/Appearance.stories.js +1 -0
- package/react/components/sdd/stories/Appearance.stories.js.map +1 -1
- package/react/components/sdd/stories/Authentication.stories.js +2 -16
- package/react/components/sdd/stories/Authentication.stories.js.map +1 -1
- package/react/components/sdd/stories/OptionalSettingsView.stories.js +1 -1
- package/react/components/sdd/stories/OptionalSettingsView.stories.js.map +1 -1
- package/react/components/sdd/stories/SmartDesktopDesigner.stories.d.ts +1 -1
- package/react/components/sdd/stories/SmartDesktopDesigner.stories.js +3 -0
- package/react/components/sdd/stories/SmartDesktopDesigner.stories.js.map +1 -1
- package/react/components/sdd/stories/Themes.stories.d.ts +1 -1
- package/react/components/sdd/stories/Themes.stories.js +1 -0
- package/react/components/sdd/stories/Themes.stories.js.map +1 -1
- package/react/components/sdd/tests/AddApp.spec.d.ts +1 -0
- package/react/components/sdd/tests/AddApp.spec.js +96 -0
- package/react/components/sdd/tests/AddApp.spec.js.map +1 -0
- package/react/components/sdd/tests/AppEditPage.spec.js +92 -23
- package/react/components/sdd/tests/AppEditPage.spec.js.map +1 -1
- package/react/components/sdd/tests/Application.spec.js +411 -24
- package/react/components/sdd/tests/Application.spec.js.map +1 -1
- package/react/components/sdd/tests/Applications.spec.js +1 -45
- package/react/components/sdd/tests/Applications.spec.js.map +1 -1
- package/react/components/sdd/tests/Authentication.spec.js +1 -1
- package/react/components/sdd/tests/Authentication.spec.js.map +1 -1
- package/react/components/sdd/tests/EditPreload.spec.js +50 -7
- package/react/components/sdd/tests/EditPreload.spec.js.map +1 -1
- package/react/components/sdd/tests/Navigation.spec.js +2 -2
- package/react/components/sdd/tests/Navigation.spec.js.map +1 -1
- package/react/components/sdd/tests/OptionalSettingsView.spec.js +235 -0
- package/react/components/sdd/tests/OptionalSettingsView.spec.js.map +1 -1
- package/react/components/sdd/tests/ProjectErrors.spec.js +1 -1
- package/react/components/sdd/tests/ProjectErrors.spec.js.map +1 -1
- package/react/components/sdd/tests/SmartDesktopDesigner.spec.js +2 -2
- package/react/components/sdd/tests/SmartDesktopDesigner.spec.js.map +1 -1
- package/react/components/search/Search.js +1 -1
- package/react/components/search/Search.js.map +1 -1
- package/react/components/shared/DefaultDropdownButton.js +12 -1
- package/react/components/shared/DefaultDropdownButton.js.map +1 -1
- package/react/components/shared/tests/DefaultDropdownButton.spec.js +12 -0
- package/react/components/shared/tests/DefaultDropdownButton.spec.js.map +1 -1
- package/react/components/smartDesktopDesigner/SmartDesktopDesigner.d.ts +1 -16
- package/react/components/smartDesktopDesigner/SmartDesktopDesigner.js +0 -4
- package/react/components/smartDesktopDesigner/SmartDesktopDesigner.js.map +1 -1
- package/react/components/toolbar/DragHandle.stories.js.map +1 -1
- package/react/components/toolbar/ToolbarIcon.js +2 -2
- package/react/components/toolbar/ToolbarIcon.js.map +1 -1
- package/react/components/toolbar/ToolbarSection.d.ts +1 -9
- package/react/components/toolbar/ToolbarSection.js +3 -7
- package/react/components/toolbar/ToolbarSection.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/stores/StoreActions.js +1 -1
- package/react/components/toolbar/advancedAppLauncher/stores/StoreActions.js.map +1 -1
- package/react/components/toolbar/dashbar/Dashbar.js +21 -12
- package/react/components/toolbar/dashbar/Dashbar.js.map +1 -1
- package/react/components/toolbar/workspaceManagementMenu/components/Workspace.js +1 -1
- package/react/components/toolbar/workspaceManagementMenu/components/Workspace.js.map +1 -1
- package/react/components/userPreferences/components/ContentSection.js +1 -1
- package/react/components/userPreferences/components/ContentSection.js.map +1 -1
- package/react/components/userPreferences/components/content/notificationViews/NotificationsPreferencesHome.js +4 -3
- package/react/components/userPreferences/components/content/notificationViews/NotificationsPreferencesHome.js.map +1 -1
- package/react/components/userPreferences/components/general/ScheduledClose.js +12 -3
- package/react/components/userPreferences/components/general/ScheduledClose.js.map +1 -1
- package/react/components/userPreferences/components/workspaces/WorkspaceButton.js +1 -1
- package/react/components/userPreferences/components/workspaces/WorkspaceButton.js.map +1 -1
- package/react/components/windowTitleBar/WindowTitleBarShell.d.ts +17 -2
- package/react/components/windowTitleBar/WindowTitleBarShell.js +160 -6
- package/react/components/windowTitleBar/WindowTitleBarShell.js.map +1 -1
- package/react/components/windowTitleBar/components/left/LinkerButton.js +7 -1
- package/react/components/windowTitleBar/components/left/LinkerButton.js.map +1 -1
- package/react/components/windowTitleBar/components/windowTitle.js +10 -2
- package/react/components/windowTitleBar/components/windowTitle.js.map +1 -1
- package/react/components/windowTitleBar/stores/windowTitleBarStore.js +11 -1
- package/react/components/windowTitleBar/stores/windowTitleBarStore.js.map +1 -1
- package/react/reducers/rootReducer.d.ts +2 -2
- package/react/store.d.ts +4 -4
- package/react/tsconfig.tsbuildinfo +1 -0
- package/react/types/smartDesktopDesignerTypes.d.ts +3 -0
- package/react/types/smartDesktopDesignerTypes.js.map +1 -1
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
+
import { SmartDesktopClient } from "./smartDesktopClient";
|
|
2
3
|
export declare type OptionalSettingsViewProps = {
|
|
3
|
-
getApps: typeof
|
|
4
|
-
updateApp: typeof
|
|
5
|
-
getPreloads: typeof
|
|
6
|
-
savePreload: typeof
|
|
7
|
-
deletePreload: typeof
|
|
4
|
+
getApps: typeof SmartDesktopClient.getApps;
|
|
5
|
+
updateApp: typeof SmartDesktopClient.updateApp;
|
|
6
|
+
getPreloads: typeof SmartDesktopClient.getPreloads;
|
|
7
|
+
savePreload: typeof SmartDesktopClient.savePreload;
|
|
8
|
+
deletePreload: typeof SmartDesktopClient.deletePreload;
|
|
8
9
|
};
|
|
9
10
|
export declare const OptionalSettingsView: React.FunctionComponent<OptionalSettingsViewProps>;
|
|
@@ -8,12 +8,7 @@ import { Preloads } from "./Preloads";
|
|
|
8
8
|
import { EditPreload } from "./EditPreload";
|
|
9
9
|
import { useDispatch } from "../../store";
|
|
10
10
|
import { SmartDesktopDesignerActions } from "../../actions/smartDesktopDesignerActions";
|
|
11
|
-
|
|
12
|
-
FSBL.Clients.LauncherClient.spawn("", {
|
|
13
|
-
url,
|
|
14
|
-
addToWorkspace: false,
|
|
15
|
-
}, () => { });
|
|
16
|
-
};
|
|
11
|
+
import { FinsembleLink } from "../common/FinsembleLink";
|
|
17
12
|
export const OptionalSettingsView = (props) => {
|
|
18
13
|
const dispatch = useDispatch();
|
|
19
14
|
const [currentPreloadAlias, setCurrentPreloadAlias] = useState(null);
|
|
@@ -34,10 +29,7 @@ export const OptionalSettingsView = (props) => {
|
|
|
34
29
|
React.createElement("div", { className: "frontmatter" },
|
|
35
30
|
"A preload is a script that is loaded into a window before the actual content of that window is loaded. Preloads provide added flexibility because they allows you to run additional code in the window without changing code for the app that the window belongs to. ",
|
|
36
31
|
React.createElement("br", null),
|
|
37
|
-
React.createElement(
|
|
38
|
-
e.preventDefault();
|
|
39
|
-
openLink("https://documentation.finsemble.com/tutorial-Preloads.html");
|
|
40
|
-
} }, "Learn more about preloads"),
|
|
32
|
+
React.createElement(FinsembleLink, { url: "https://documentation.finsemble.com/tutorial-Preloads.html", text: "Learn more about preloads" }),
|
|
41
33
|
"."),
|
|
42
34
|
currentPreloadAlias === null ? (React.createElement(Preloads, { setCurrentPreloadAlias: setCurrentPreloadAlias, deletePreload: async (alias) => {
|
|
43
35
|
await props.deletePreload(alias);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OptionalSettingsView.js","sourceRoot":"","sources":["../../../src/components/sdd/OptionalSettingsView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"OptionalSettingsView.js","sourceRoot":"","sources":["../../../src/components/sdd/OptionalSettingsView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AACxF,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAWxD,MAAM,CAAC,MAAM,oBAAoB,GAAuD,CAAC,KAAK,EAAE,EAAE;IACjG,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAEpF,MAAM,kBAAkB,GAAG,KAAK,IAAI,EAAE;QACrC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC;QAC3C,QAAQ,CAAC,2BAA2B,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACd,kBAAkB,EAAE,CAAC;IACtB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACN,oBAAC,IAAI;QACJ,oBAAC,MAAM,IACN,YAAY,EAAE,GAAG,EAAE;gBAClB,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;YACvC,CAAC,iBAGO;QAET,oBAAC,OAAO;YACP,oBAAC,GAAG;gBACH,2CAAgB,UAAU;oBACzB,6BAAK,SAAS,EAAC,aAAa;;wBAG2B,+BAAM;wBAC5D,oBAAC,aAAa,IACb,GAAG,EAAC,4DAA4D,EAChE,IAAI,EAAC,2BAA2B,GAC/B;4BAEG;oBACL,mBAAmB,KAAK,IAAI,CAAC,CAAC,CAAC,CAC/B,oBAAC,QAAQ,IACR,sBAAsB,EAAE,sBAAsB,EAC9C,aAAa,EAAE,KAAK,EAAE,KAAa,EAAE,EAAE;4BACtC,MAAM,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;4BACjC,kBAAkB,EAAE,CAAC;wBACtB,CAAC,GACA,CACF,CAAC,CAAC,CAAC,CACH,oBAAC,WAAW,IACX,KAAK,EAAE,mBAAmB,EAC1B,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,MAAM,EAAE,GAAG,EAAE;4BACZ,sBAAsB,CAAC,IAAI,CAAC,CAAC;wBAC9B,CAAC,EACD,MAAM,EAAE,KAAK,EAAE,QAAuB,EAAE,QAAgB,EAAE,MAAqB,EAAE,EAAE;4BAClF,MAAM,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;4BACpD,kBAAkB,EAAE,CAAC;wBACtB,CAAC,EACD,aAAa,EAAE,KAAK,EAAE,KAAa,EAAE,EAAE;4BACtC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;4BAChD,kBAAkB,EAAE,CAAC;4BACrB,OAAO,MAAM,CAAC;wBACf,CAAC,GACA,CACF,CACI,CACD,CACG,CACJ,CACP,CAAC;AACH,CAAC,CAAC","sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { Header } from \"../common/Header\";\nimport { View } from \"./View\";\nimport { Content } from \"./Content\";\nimport { Tab } from \"../common/Tab\";\nimport { launchTutorialLink } from \"./common/fsbl_functions\";\nimport { Preloads } from \"./Preloads\";\nimport { EditPreload } from \"./EditPreload\";\nimport { useDispatch } from \"../../store\";\nimport { PreloadDetail } from \"../../types/smartDesktopDesignerTypes\";\nimport { SmartDesktopDesignerActions } from \"../../actions/smartDesktopDesignerActions\";\nimport { FinsembleLink } from \"../common/FinsembleLink\";\nimport { SmartDesktopClient } from \"./smartDesktopClient\";\n\nexport type OptionalSettingsViewProps = {\n\tgetApps: typeof SmartDesktopClient.getApps;\n\tupdateApp: typeof SmartDesktopClient.updateApp;\n\tgetPreloads: typeof SmartDesktopClient.getPreloads;\n\tsavePreload: typeof SmartDesktopClient.savePreload;\n\tdeletePreload: typeof SmartDesktopClient.deletePreload;\n};\n\nexport const OptionalSettingsView: React.FunctionComponent<OptionalSettingsViewProps> = (props) => {\n\tconst dispatch = useDispatch();\n\tconst [currentPreloadAlias, setCurrentPreloadAlias] = useState<string | null>(null);\n\n\tconst refreshPreloadList = async () => {\n\t\tconst { data } = await props.getPreloads();\n\t\tdispatch(SmartDesktopDesignerActions.update_preloads(data));\n\t};\n\n\tuseEffect(() => {\n\t\trefreshPreloadList();\n\t}, []);\n\n\treturn (\n\t\t<View>\n\t\t\t<Header\n\t\t\t\thelpFunction={() => {\n\t\t\t\t\tlaunchTutorialLink(\"SDD-06-Preloads\");\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\tExtensions\n\t\t\t</Header>\n\n\t\t\t<Content>\n\t\t\t\t<Tab>\n\t\t\t\t\t<div data-label=\"Preloads\">\n\t\t\t\t\t\t<div className=\"frontmatter\">\n\t\t\t\t\t\t\tA preload is a script that is loaded into a window before the actual content of that window is loaded.\n\t\t\t\t\t\t\tPreloads provide added flexibility because they allows you to run additional code in the window without\n\t\t\t\t\t\t\tchanging code for the app that the window belongs to. <br />\n\t\t\t\t\t\t\t<FinsembleLink\n\t\t\t\t\t\t\t\turl=\"https://documentation.finsemble.com/tutorial-Preloads.html\"\n\t\t\t\t\t\t\t\ttext=\"Learn more about preloads\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t.\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{currentPreloadAlias === null ? (\n\t\t\t\t\t\t\t<Preloads\n\t\t\t\t\t\t\t\tsetCurrentPreloadAlias={setCurrentPreloadAlias}\n\t\t\t\t\t\t\t\tdeletePreload={async (alias: string) => {\n\t\t\t\t\t\t\t\t\tawait props.deletePreload(alias);\n\t\t\t\t\t\t\t\t\trefreshPreloadList();\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<EditPreload\n\t\t\t\t\t\t\t\talias={currentPreloadAlias}\n\t\t\t\t\t\t\t\tgetApps={props.getApps}\n\t\t\t\t\t\t\t\tupdateApp={props.updateApp}\n\t\t\t\t\t\t\t\tcancel={() => {\n\t\t\t\t\t\t\t\t\tsetCurrentPreloadAlias(null);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tsubmit={async (oldAlias: string | null, newAlias: string, detail: PreloadDetail) => {\n\t\t\t\t\t\t\t\t\tawait props.savePreload(oldAlias, newAlias, detail);\n\t\t\t\t\t\t\t\t\trefreshPreloadList();\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tdeletePreload={async (alias: string) => {\n\t\t\t\t\t\t\t\t\tconst result = await props.deletePreload(alias);\n\t\t\t\t\t\t\t\t\trefreshPreloadList();\n\t\t\t\t\t\t\t\t\treturn result;\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</Tab>\n\t\t\t</Content>\n\t\t</View>\n\t);\n};\n"]}
|
|
@@ -19,7 +19,7 @@ export const ProjectErrors = (props) => {
|
|
|
19
19
|
return (React.createElement("div", { className: "project-errors-container" }, errors.map((error, index) => (React.createElement("div", { key: index, className: "project-error", onClick: () => {
|
|
20
20
|
dispatch(SmartDesktopDesignerActions.change_view(error.viewId));
|
|
21
21
|
} },
|
|
22
|
-
React.createElement(FinsembleIcon, { className: "project-error-icon", icon: "exclamation-circle" }),
|
|
22
|
+
React.createElement(FinsembleIcon, { className: "project-error-icon", icon: "exclamation-circle", label: "Error" }),
|
|
23
23
|
error.message)))));
|
|
24
24
|
};
|
|
25
25
|
//# sourceMappingURL=ProjectErrors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectErrors.js","sourceRoot":"","sources":["../../../src/components/sdd/ProjectErrors.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AAExF,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,0BAA0B,CAAC;AAMlC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAyB,EAAE,EAAE;IAC1D,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAEzB,MAAM,iBAAiB,GAAG,WAAW,CAAC,CAAC,KAAgB,EAAE,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;IAE1G,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,iBAAiB,EAAE;YACvB,QAAQ,CAAC,2BAA2B,CAAC,4BAA4B,CAAC,IAAI,CAAC,CAAC,CAAC;SACzE;IACF,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACN,6BAAK,SAAS,EAAC,0BAA0B,IACvC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAC7B,6BACC,GAAG,EAAE,KAAK,EACV,SAAS,EAAC,eAAe,EACzB,OAAO,EAAE,GAAG,EAAE;YACb,QAAQ,CAAC,2BAA2B,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QACjE,CAAC;QAED,oBAAC,aAAa,IAAC,SAAS,EAAC,oBAAoB,EAAC,IAAI,EAAC,oBAAoB,GAAiB;
|
|
1
|
+
{"version":3,"file":"ProjectErrors.js","sourceRoot":"","sources":["../../../src/components/sdd/ProjectErrors.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AAExF,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,0BAA0B,CAAC;AAMlC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAyB,EAAE,EAAE;IAC1D,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAEzB,MAAM,iBAAiB,GAAG,WAAW,CAAC,CAAC,KAAgB,EAAE,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;IAE1G,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,iBAAiB,EAAE;YACvB,QAAQ,CAAC,2BAA2B,CAAC,4BAA4B,CAAC,IAAI,CAAC,CAAC,CAAC;SACzE;IACF,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACN,6BAAK,SAAS,EAAC,0BAA0B,IACvC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAC7B,6BACC,GAAG,EAAE,KAAK,EACV,SAAS,EAAC,eAAe,EACzB,OAAO,EAAE,GAAG,EAAE;YACb,QAAQ,CAAC,2BAA2B,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QACjE,CAAC;QAED,oBAAC,aAAa,IAAC,SAAS,EAAC,oBAAoB,EAAC,IAAI,EAAC,oBAAoB,EAAC,KAAK,EAAC,OAAO,GAAiB;QACrG,KAAK,CAAC,OAAO,CACT,CACN,CAAC,CACG,CACN,CAAC;AACH,CAAC,CAAC","sourcesContent":["/*!\n * Copyright 2017 - 2020 by ChartIQ, Inc.\n * All rights reserved.\n */\n\nimport React, { useEffect } from \"react\";\nimport { SmartDesktopDesignerActions } from \"../../actions/smartDesktopDesignerActions\";\nimport { RootState } from \"../../reducers/rootReducer\";\nimport { useDispatch, useSelector } from \"../../store\";\nimport { ProjectError } from \"../../types/smartDesktopDesignerTypes\";\nimport { FinsembleIcon } from \"../common/FinsembleIcon\";\n\nimport \"./css/project-errors.css\";\n\nexport type ProjectErrorsProps = {\n\terrors: ProjectError[];\n};\n\nexport const ProjectErrors = (props: ProjectErrorsProps) => {\n\tconst dispatch = useDispatch();\n\tconst { errors } = props;\n\n\tconst isReviewingErrors = useSelector((state: RootState) => state.smartDesktopDesigner.isReviewingErrors);\n\n\tuseEffect(() => {\n\t\tif (!isReviewingErrors) {\n\t\t\tdispatch(SmartDesktopDesignerActions.set_reviewing_project_errors(true));\n\t\t}\n\t}, []);\n\n\treturn (\n\t\t<div className=\"project-errors-container\">\n\t\t\t{errors.map((error, index) => (\n\t\t\t\t<div\n\t\t\t\t\tkey={index}\n\t\t\t\t\tclassName=\"project-error\"\n\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\tdispatch(SmartDesktopDesignerActions.change_view(error.viewId));\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<FinsembleIcon className=\"project-error-icon\" icon=\"exclamation-circle\" label=\"Error\"></FinsembleIcon>\n\t\t\t\t\t{error.message}\n\t\t\t\t</div>\n\t\t\t))}\n\t\t</div>\n\t);\n};\n"]}
|
|
@@ -98,8 +98,8 @@ export const Publish = (props) => {
|
|
|
98
98
|
currentStep === step.name ? "publish-current-step" : "",
|
|
99
99
|
].join(" ") },
|
|
100
100
|
React.createElement("div", { className: "publish-progress-icon" }, data.state === ProgressState.Started ? (React.createElement(PublishProgress, Object.assign({}, data))) : data.state === ProgressState.NotStarted ? (React.createElement("div", { className: "publish-progress-pending" })) : data.state === ProgressState.Error ? (React.createElement("div", { className: "publish-progress-error" },
|
|
101
|
-
React.createElement(FinsembleIcon, { className: "publish-progress-error-icon", icon: "times" }))) : (React.createElement("div", { className: "publish-progress-success" },
|
|
102
|
-
React.createElement(FinsembleIcon, { className: "publish-progress-success-icon", icon: "check" })))),
|
|
101
|
+
React.createElement(FinsembleIcon, { className: "publish-progress-error-icon", icon: "times", label: "Error" }))) : (React.createElement("div", { className: "publish-progress-success" },
|
|
102
|
+
React.createElement(FinsembleIcon, { className: "publish-progress-success-icon", icon: "check", label: "Success" })))),
|
|
103
103
|
React.createElement("div", { className: "publish-progress-text" }, data.error ? step.error : step.description))));
|
|
104
104
|
})),
|
|
105
105
|
deployInfo && (React.createElement("div", { className: "export-publish-uploaded" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Publish.js","sourceRoot":"","sources":["../../../src/components/sdd/Publish.tsx"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright 2017 - 2020 by ChartIQ, Inc.\n * All rights reserved.\n */\n\nimport React, { useState, useEffect } from \"react\";\nimport { PublishProgress } from \"./PublishProgress\";\nimport { ExportDeployInfo } from \"./ExportDeployInfo\";\nimport { Button } from \"../common/Button\";\nimport { RootState } from \"../../reducers/rootReducer\";\nimport { useDispatch, useSelector } from \"../../store\";\nimport { SmartDesktopDesignerActions } from \"../../actions/smartDesktopDesignerActions\";\nimport { ProgressState } from \"../../types/smartDesktopDesignerTypes\";\nimport { ExportProps } from \"./Export\";\nimport { FinsembleIcon } from \"../common/FinsembleIcon\";\nimport { FEA } from \"@finsemble/finsemble-api\";\n\ntype ProgressItem = FEA.ProgressItem;\n\nexport type PublishProps = ExportProps;\n\nexport const Publish = (props: PublishProps) => {\n\tconst dispatch = useDispatch();\n\n\tconst [currentStep, setCurrentStep] = useState(\"\");\n\tconst [stepProgress, setStepProgress] = useState([] as Array<ProgressItem>);\n\n\tconst exportContext = useSelector((state: RootState) => state.smartDesktopDesigner.export);\n\n\tconst { deployInfo, publishError } = exportContext;\n\n\tconst tryAgain = () => {\n\t\tsetCurrentStep(\"\");\n\t\tsetStepProgress([]);\n\t\tdispatch(SmartDesktopDesignerActions.set_deploy_info(null));\n\t\tdispatch(SmartDesktopDesignerActions.set_publish_error(null));\n\n\t\tprops\n\t\t\t.publishToCosaicCloud()\n\t\t\t.then((currentDeployInfo) => dispatch(SmartDesktopDesignerActions.set_deploy_info(currentDeployInfo)))\n\t\t\t.catch((error) => dispatch(SmartDesktopDesignerActions.set_publish_error(error)));\n\t};\n\n\tconst reset = () => {\n\t\tdispatch(SmartDesktopDesignerActions.set_is_publishing(false));\n\t\tdispatch(SmartDesktopDesignerActions.set_publish_error(null));\n\t};\n\n\tconst hasError = stepProgress.some((step) => step.state === ProgressState.Error);\n\n\tconst didFinish =\n\t\t(stepProgress.length > 0 &&\n\t\t\tstepProgress.every((step) => {\n\t\t\t\tif (step.state === ProgressState.Error) {\n\t\t\t\t\tdispatch(SmartDesktopDesignerActions.set_publish_error(step.error));\n\t\t\t\t}\n\t\t\t\treturn step.state === ProgressState.Finished;\n\t\t\t})) ||\n\t\thasError;\n\n\tuseEffect(() => {\n\t\tlet debounceTimeout: any = null;\n\t\tif (!didFinish) {\n\t\t\tdebounceTimeout = setInterval(() => {\n\t\t\t\tprops.getPublishProgress().then((data) => {\n\t\t\t\t\tsetCurrentStep(data.currentStep);\n\t\t\t\t\tsetStepProgress(Object.values(data.steps));\n\n\t\t\t\t\t// Finished! When the installer step reaches state \"Finished\"\n\t\t\t\t\tif (data.steps[\"cloud\"].state === ProgressState.Finished) {\n\t\t\t\t\t\t// dispatch(SmartDesktopDesignerActions.SET_IS_PUBLISHING(false));\n\t\t\t\t\t\tclearInterval(debounceTimeout);\n\t\t\t\t\t\treset();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}, props.progressCheckInterval);\n\t\t}\n\n\t\treturn () => {\n\t\t\tif (debounceTimeout) {\n\t\t\t\tclearInterval(debounceTimeout);\n\t\t\t}\n\t\t};\n\t}, []);\n\n\treturn (\n\t\t<div className=\"export-publish-container\">\n\t\t\t{publishError ? (\n\t\t\t\t<div className=\"export-publish-error\">\n\t\t\t\t\t<h3>Your project was not published</h3>\n\n\t\t\t\t\t<p>An error occurred while trying to publish.</p>\n\t\t\t\t\t<p className=\"export-publish-error-message\">"{publishError}"</p>\n\n\t\t\t\t\t<div className=\"export-error-actions\">\n\t\t\t\t\t\t<Button fashion=\"ghost\" text=\"Cancel\" onClick={reset} />\n\t\t\t\t\t\t<Button className=\"export-error-btn\" fashion=\"secondary\" text=\"Try again\" onClick={tryAgain} />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t) : (\n\t\t\t\t<>\n\t\t\t\t\t<h2>Publishing...</h2>\n\n\t\t\t\t\t<div className={[\"export-publish-progress\", hasError ? \"export-publish-has-error\" : \"\"].join(\" \")}>\n\t\t\t\t\t\t{[\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: \"initialize\",\n\t\t\t\t\t\t\t\tdescription: \"Creating a location for the project\",\n\t\t\t\t\t\t\t\terror: \"Failed to create a location for the project\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: \"zip\",\n\t\t\t\t\t\t\t\tdescription: \"Zipping project\",\n\t\t\t\t\t\t\t\terror: \"Failed to zip the project\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: \"upload\",\n\t\t\t\t\t\t\t\tdescription: \"Uploading project\",\n\t\t\t\t\t\t\t\terror: \"Failed to upload the project\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: \"cloud\",\n\t\t\t\t\t\t\t\tdescription: \"Creating installer and site\",\n\t\t\t\t\t\t\t\terror: \"Failed to publish\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t].map((step) => {\n\t\t\t\t\t\t\tlet data = stepProgress.find((item) => item.step === step.name);\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\tdata && (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tkey={step.name}\n\t\t\t\t\t\t\t\t\t\tclassName={[\n\t\t\t\t\t\t\t\t\t\t\t\"publish-progress-container\",\n\t\t\t\t\t\t\t\t\t\t\tcurrentStep === step.name ? \"publish-current-step\" : \"\",\n\t\t\t\t\t\t\t\t\t\t].join(\" \")}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<div className=\"publish-progress-icon\">\n\t\t\t\t\t\t\t\t\t\t\t{/* eslint-disable no-nested-ternary */}\n\t\t\t\t\t\t\t\t\t\t\t{data.state === ProgressState.Started ? (\n\t\t\t\t\t\t\t\t\t\t\t\t<PublishProgress {...data}></PublishProgress>\n\t\t\t\t\t\t\t\t\t\t\t) : data.state === ProgressState.NotStarted ? (\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"publish-progress-pending\"></div>\n\t\t\t\t\t\t\t\t\t\t\t) : data.state === ProgressState.Error ? (\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"publish-progress-error\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<FinsembleIcon className=\"publish-progress-error-icon\" icon=\"times\"></FinsembleIcon>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"publish-progress-success\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<FinsembleIcon className=\"publish-progress-success-icon\" icon=\"check\"></FinsembleIcon>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div className=\"publish-progress-text\">{data.error ? step.error : step.description}</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t</div>\n\t\t\t\t\t{deployInfo && (\n\t\t\t\t\t\t<div className=\"export-publish-uploaded\">\n\t\t\t\t\t\t\t<h3>Project uploaded</h3>\n\t\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t\tYour project has been uploaded to the cloud. It will take several minutes to generate an installer.\n\t\t\t\t\t\t\t\tShare the installer link with your team. The desktop you've created will be available shortly by\n\t\t\t\t\t\t\t\tdownloading and installing from the link.\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t<ExportDeployInfo />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n"]}
|
|
1
|
+
{"version":3,"file":"Publish.js","sourceRoot":"","sources":["../../../src/components/sdd/Publish.tsx"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright 2017 - 2020 by ChartIQ, Inc.\n * All rights reserved.\n */\n\nimport React, { useState, useEffect } from \"react\";\nimport { PublishProgress } from \"./PublishProgress\";\nimport { ExportDeployInfo } from \"./ExportDeployInfo\";\nimport { Button } from \"../common/Button\";\nimport { RootState } from \"../../reducers/rootReducer\";\nimport { useDispatch, useSelector } from \"../../store\";\nimport { SmartDesktopDesignerActions } from \"../../actions/smartDesktopDesignerActions\";\nimport { ProgressState } from \"../../types/smartDesktopDesignerTypes\";\nimport { ExportProps } from \"./Export\";\nimport { FinsembleIcon } from \"../common/FinsembleIcon\";\nimport { FEA } from \"@finsemble/finsemble-api\";\n\ntype ProgressItem = FEA.ProgressItem;\n\nexport type PublishProps = ExportProps;\n\nexport const Publish = (props: PublishProps) => {\n\tconst dispatch = useDispatch();\n\n\tconst [currentStep, setCurrentStep] = useState(\"\");\n\tconst [stepProgress, setStepProgress] = useState([] as Array<ProgressItem>);\n\n\tconst exportContext = useSelector((state: RootState) => state.smartDesktopDesigner.export);\n\n\tconst { deployInfo, publishError } = exportContext;\n\n\tconst tryAgain = () => {\n\t\tsetCurrentStep(\"\");\n\t\tsetStepProgress([]);\n\t\tdispatch(SmartDesktopDesignerActions.set_deploy_info(null));\n\t\tdispatch(SmartDesktopDesignerActions.set_publish_error(null));\n\n\t\tprops\n\t\t\t.publishToCosaicCloud()\n\t\t\t.then((currentDeployInfo) => dispatch(SmartDesktopDesignerActions.set_deploy_info(currentDeployInfo)))\n\t\t\t.catch((error) => dispatch(SmartDesktopDesignerActions.set_publish_error(error)));\n\t};\n\n\tconst reset = () => {\n\t\tdispatch(SmartDesktopDesignerActions.set_is_publishing(false));\n\t\tdispatch(SmartDesktopDesignerActions.set_publish_error(null));\n\t};\n\n\tconst hasError = stepProgress.some((step) => step.state === ProgressState.Error);\n\n\tconst didFinish =\n\t\t(stepProgress.length > 0 &&\n\t\t\tstepProgress.every((step) => {\n\t\t\t\tif (step.state === ProgressState.Error) {\n\t\t\t\t\tdispatch(SmartDesktopDesignerActions.set_publish_error(step.error));\n\t\t\t\t}\n\t\t\t\treturn step.state === ProgressState.Finished;\n\t\t\t})) ||\n\t\thasError;\n\n\tuseEffect(() => {\n\t\tlet debounceTimeout: any = null;\n\t\tif (!didFinish) {\n\t\t\tdebounceTimeout = setInterval(() => {\n\t\t\t\tprops.getPublishProgress().then((data) => {\n\t\t\t\t\tsetCurrentStep(data.currentStep);\n\t\t\t\t\tsetStepProgress(Object.values(data.steps));\n\n\t\t\t\t\t// Finished! When the installer step reaches state \"Finished\"\n\t\t\t\t\tif (data.steps[\"cloud\"].state === ProgressState.Finished) {\n\t\t\t\t\t\t// dispatch(SmartDesktopDesignerActions.SET_IS_PUBLISHING(false));\n\t\t\t\t\t\tclearInterval(debounceTimeout);\n\t\t\t\t\t\treset();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}, props.progressCheckInterval);\n\t\t}\n\n\t\treturn () => {\n\t\t\tif (debounceTimeout) {\n\t\t\t\tclearInterval(debounceTimeout);\n\t\t\t}\n\t\t};\n\t}, []);\n\n\treturn (\n\t\t<div className=\"export-publish-container\">\n\t\t\t{publishError ? (\n\t\t\t\t<div className=\"export-publish-error\">\n\t\t\t\t\t<h3>Your project was not published</h3>\n\n\t\t\t\t\t<p>An error occurred while trying to publish.</p>\n\t\t\t\t\t<p className=\"export-publish-error-message\">"{publishError}"</p>\n\n\t\t\t\t\t<div className=\"export-error-actions\">\n\t\t\t\t\t\t<Button fashion=\"ghost\" text=\"Cancel\" onClick={reset} />\n\t\t\t\t\t\t<Button className=\"export-error-btn\" fashion=\"secondary\" text=\"Try again\" onClick={tryAgain} />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t) : (\n\t\t\t\t<>\n\t\t\t\t\t<h2>Publishing...</h2>\n\n\t\t\t\t\t<div className={[\"export-publish-progress\", hasError ? \"export-publish-has-error\" : \"\"].join(\" \")}>\n\t\t\t\t\t\t{[\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: \"initialize\",\n\t\t\t\t\t\t\t\tdescription: \"Creating a location for the project\",\n\t\t\t\t\t\t\t\terror: \"Failed to create a location for the project\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: \"zip\",\n\t\t\t\t\t\t\t\tdescription: \"Zipping project\",\n\t\t\t\t\t\t\t\terror: \"Failed to zip the project\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: \"upload\",\n\t\t\t\t\t\t\t\tdescription: \"Uploading project\",\n\t\t\t\t\t\t\t\terror: \"Failed to upload the project\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: \"cloud\",\n\t\t\t\t\t\t\t\tdescription: \"Creating installer and site\",\n\t\t\t\t\t\t\t\terror: \"Failed to publish\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t].map((step) => {\n\t\t\t\t\t\t\tlet data = stepProgress.find((item) => item.step === step.name);\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\tdata && (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tkey={step.name}\n\t\t\t\t\t\t\t\t\t\tclassName={[\n\t\t\t\t\t\t\t\t\t\t\t\"publish-progress-container\",\n\t\t\t\t\t\t\t\t\t\t\tcurrentStep === step.name ? \"publish-current-step\" : \"\",\n\t\t\t\t\t\t\t\t\t\t].join(\" \")}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<div className=\"publish-progress-icon\">\n\t\t\t\t\t\t\t\t\t\t\t{/* eslint-disable no-nested-ternary */}\n\t\t\t\t\t\t\t\t\t\t\t{data.state === ProgressState.Started ? (\n\t\t\t\t\t\t\t\t\t\t\t\t<PublishProgress {...data}></PublishProgress>\n\t\t\t\t\t\t\t\t\t\t\t) : data.state === ProgressState.NotStarted ? (\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"publish-progress-pending\"></div>\n\t\t\t\t\t\t\t\t\t\t\t) : data.state === ProgressState.Error ? (\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"publish-progress-error\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<FinsembleIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"publish-progress-error-icon\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ticon=\"times\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Error\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t></FinsembleIcon>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"publish-progress-success\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<FinsembleIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"publish-progress-success-icon\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ticon=\"check\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Success\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t></FinsembleIcon>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div className=\"publish-progress-text\">{data.error ? step.error : step.description}</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t</div>\n\t\t\t\t\t{deployInfo && (\n\t\t\t\t\t\t<div className=\"export-publish-uploaded\">\n\t\t\t\t\t\t\t<h3>Project uploaded</h3>\n\t\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t\tYour project has been uploaded to the cloud. It will take several minutes to generate an installer.\n\t\t\t\t\t\t\t\tShare the installer link with your team. The desktop you've created will be available shortly by\n\t\t\t\t\t\t\t\tdownloading and installing from the link.\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t<ExportDeployInfo />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n"]}
|
|
@@ -5,25 +5,26 @@
|
|
|
5
5
|
/// <reference types="react" />
|
|
6
6
|
import "../../assets/css/finsemble.css";
|
|
7
7
|
import "./css/styles.css";
|
|
8
|
-
|
|
8
|
+
import { SmartDesktopClient } from "./smartDesktopClient";
|
|
9
|
+
export declare type ThemeConfig = {
|
|
9
10
|
currentTheme: string;
|
|
10
11
|
defaultTheme: string;
|
|
11
12
|
themes: {
|
|
12
|
-
Default:
|
|
13
|
+
Default: Record<string, string>;
|
|
14
|
+
[index: string]: Record<string, string>;
|
|
13
15
|
};
|
|
14
16
|
};
|
|
15
|
-
export
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
getProjectSettings
|
|
22
|
-
updateProjectSettings?: typeof
|
|
23
|
-
onThemeUpdated
|
|
24
|
-
selectProjectPath?: typeof
|
|
17
|
+
export interface SmartDesktopDesignerProps {
|
|
18
|
+
views?: any[];
|
|
19
|
+
getConfig?: typeof FSBL.Clients.ConfigClient.getValues;
|
|
20
|
+
resetProject?: typeof SmartDesktopClient.resetProject;
|
|
21
|
+
getSDServerInfo?: typeof SmartDesktopClient.getSDServerInfo;
|
|
22
|
+
getTheme?: typeof SmartDesktopClient.getTheme;
|
|
23
|
+
getProjectSettings?: typeof SmartDesktopClient.getProjectSettings;
|
|
24
|
+
updateProjectSettings?: typeof SmartDesktopClient.updateProjectSettings;
|
|
25
|
+
onThemeUpdated?: typeof SmartDesktopClient.onThemeUpdated;
|
|
26
|
+
selectProjectPath?: typeof SmartDesktopClient.selectProjectPath;
|
|
25
27
|
restartFinsemble?: () => void;
|
|
26
|
-
setDefaults
|
|
27
|
-
}
|
|
28
|
-
export declare const SmartDesktopDesigner: (
|
|
29
|
-
export {};
|
|
28
|
+
setDefaults?: () => Promise<void>;
|
|
29
|
+
}
|
|
30
|
+
export declare const SmartDesktopDesigner: ({ views, getConfig, getTheme, resetProject, getSDServerInfo, getProjectSettings, updateProjectSettings, onThemeUpdated, selectProjectPath, restartFinsemble, setDefaults, }: SmartDesktopDesignerProps) => JSX.Element;
|
|
@@ -13,6 +13,9 @@ import { useSelector, useDispatch } from "../../store";
|
|
|
13
13
|
import { SmartDesktopDesignerActions } from "../../actions/smartDesktopDesignerActions";
|
|
14
14
|
import { ContentHeader } from "./ContentHeader";
|
|
15
15
|
import { Button } from "../common/Button";
|
|
16
|
+
import defaultViews from "./common/views";
|
|
17
|
+
import { setDefaults as defaultSetDefaults } from "./common/setPreloadDefaults";
|
|
18
|
+
import { SmartDesktopClient } from "./smartDesktopClient";
|
|
16
19
|
new FloatingFocus();
|
|
17
20
|
const getDefaultTheme = () => {
|
|
18
21
|
let globalCssVars = {};
|
|
@@ -20,10 +23,6 @@ const getDefaultTheme = () => {
|
|
|
20
23
|
getCSSVars(document.styleSheets).forEach((varName) => {
|
|
21
24
|
globalCssVars[varName] = docStyle.getPropertyValue(varName).trim();
|
|
22
25
|
});
|
|
23
|
-
const themesheet = document.body.querySelector("#themesheet");
|
|
24
|
-
if (themesheet) {
|
|
25
|
-
document.body.removeChild(themesheet);
|
|
26
|
-
}
|
|
27
26
|
return globalCssVars;
|
|
28
27
|
};
|
|
29
28
|
let themeConfig = {
|
|
@@ -33,9 +32,10 @@ let themeConfig = {
|
|
|
33
32
|
Default: getDefaultTheme(),
|
|
34
33
|
},
|
|
35
34
|
};
|
|
36
|
-
export const SmartDesktopDesigner = (
|
|
35
|
+
export const SmartDesktopDesigner = ({ views = defaultViews, getConfig = (params, callback) => FSBL.Clients.ConfigClient.getValues(params, callback), getTheme = () => SmartDesktopClient.getTheme(), resetProject = () => SmartDesktopClient.resetProject(), getSDServerInfo = () => SmartDesktopClient.getSDServerInfo(), getProjectSettings = () => SmartDesktopClient.getProjectSettings(), updateProjectSettings = (settings) => SmartDesktopClient.updateProjectSettings(settings), onThemeUpdated = (callback) => SmartDesktopClient.onThemeUpdated(callback), selectProjectPath = () => SmartDesktopClient.selectProjectPath(), restartFinsemble = () => FSBL.System.Application.getCurrent().restart(), setDefaults = async () => {
|
|
36
|
+
await defaultSetDefaults();
|
|
37
|
+
}, }) => {
|
|
37
38
|
const dispatch = useDispatch();
|
|
38
|
-
const { views } = props;
|
|
39
39
|
const [theme, setTheme] = useState(themeConfig);
|
|
40
40
|
const [sdServerInfo, setSDServerInfo] = useState({ enabled: false, applicationRoot: "" });
|
|
41
41
|
const [version, setVersion] = useState("");
|
|
@@ -52,43 +52,46 @@ export const SmartDesktopDesigner = (props) => {
|
|
|
52
52
|
setTheme(newTheme);
|
|
53
53
|
});
|
|
54
54
|
useEffect(() => {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
55
|
+
setDefaults();
|
|
56
|
+
getTheme().then((response) => {
|
|
57
|
+
if (!response.theme)
|
|
58
|
+
return;
|
|
59
|
+
const newTheme = Object.assign({}, themeConfig);
|
|
60
|
+
newTheme.themes.Default = Object.assign({}, newTheme.themes.Default);
|
|
61
|
+
Object.entries(response.theme).forEach(([key, value]) => {
|
|
62
|
+
newTheme.themes.Default[key] = value;
|
|
63
|
+
});
|
|
64
|
+
setTheme(newTheme);
|
|
65
|
+
});
|
|
66
|
+
FSBL.getFSBLInfo().then((info) => setVersion(info.FSBLVersion));
|
|
67
|
+
getConfig(null, async (err, newConfig) => {
|
|
68
|
+
var _a, _b, _c, _d;
|
|
58
69
|
if (err) {
|
|
59
70
|
FSBL.Clients.Logger.system.error("SmartDesktopDesigner", err);
|
|
60
71
|
return;
|
|
61
72
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
FSBL.Clients.Logger.system.log(`DPS application root: ${jsInfo.applicationRoot}`);
|
|
76
|
-
}
|
|
77
|
-
FSBL.Clients.Logger.system.log(`DPS info: ${JSON.stringify(jsInfo)}`);
|
|
78
|
-
FSBL.Clients.Logger.system.log(`NewConfig info: ${JSON.stringify(newConfig)}`);
|
|
79
|
-
setProject(Object.assign(Object.assign({}, project), { name: ((_a = jsInfo === null || jsInfo === void 0 ? void 0 : jsInfo.projectConfig) === null || _a === void 0 ? void 0 : _a.name) || "", path: projectPath, export: Object.assign(Object.assign({}, project.export), { toolbarIcon: "/assets/img/Finsemble_Toolbar_Icon.png", installerIcon: "/assets/img/installer_icon.ico", taskbarIcon: (_b = newConfig === null || newConfig === void 0 ? void 0 : newConfig.startup_app) === null || _b === void 0 ? void 0 : _b.applicationIcon, systemTrayIcon: (_c = newConfig === null || newConfig === void 0 ? void 0 : newConfig.finsemble) === null || _c === void 0 ? void 0 : _c.systemTrayIcon, splashScreenImage: newConfig === null || newConfig === void 0 ? void 0 : newConfig.splashScreenImage }) }));
|
|
80
|
-
setSDServerInfo(jsInfo);
|
|
81
|
-
});
|
|
82
|
-
});
|
|
73
|
+
const { settings } = await getProjectSettings();
|
|
74
|
+
const projectPath = (_a = settings === null || settings === void 0 ? void 0 : settings.path) !== null && _a !== void 0 ? _a : project.path;
|
|
75
|
+
const jsInfo = await getSDServerInfo();
|
|
76
|
+
if (!jsInfo.enabled) {
|
|
77
|
+
FSBL.Clients.Logger.system.error("Smart Desktop Designer started without the Smart Desktop Server being enabled. Check FEA configuration.");
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
FSBL.Clients.Logger.system.log(`DPS application root: ${jsInfo.applicationRoot}`);
|
|
81
|
+
}
|
|
82
|
+
FSBL.Clients.Logger.system.log(`DPS info: ${JSON.stringify(jsInfo)}`);
|
|
83
|
+
FSBL.Clients.Logger.system.log(`NewConfig info: ${JSON.stringify(newConfig)}`);
|
|
84
|
+
setProject(Object.assign(Object.assign({}, project), { name: ((_b = jsInfo === null || jsInfo === void 0 ? void 0 : jsInfo.projectConfig) === null || _b === void 0 ? void 0 : _b.name) || "", path: projectPath, export: Object.assign(Object.assign({}, project.export), { toolbarIcon: "/assets/img/Finsemble_Toolbar_Icon.png", installerIcon: "/assets/img/installer_icon.ico", taskbarIcon: (_c = newConfig === null || newConfig === void 0 ? void 0 : newConfig.startup_app) === null || _c === void 0 ? void 0 : _c.applicationIcon, systemTrayIcon: (_d = newConfig === null || newConfig === void 0 ? void 0 : newConfig.finsemble) === null || _d === void 0 ? void 0 : _d.systemTrayIcon, splashScreenImage: newConfig === null || newConfig === void 0 ? void 0 : newConfig.splashScreenImage }) }));
|
|
85
|
+
setSDServerInfo(jsInfo);
|
|
83
86
|
});
|
|
84
|
-
const removeHandler =
|
|
87
|
+
const removeHandler = onThemeUpdated(themeListenerRef.current);
|
|
85
88
|
return () => {
|
|
86
89
|
removeHandler();
|
|
87
90
|
};
|
|
88
91
|
}, []);
|
|
89
92
|
const clickResetProjectButton = () => {
|
|
90
|
-
const
|
|
91
|
-
const [err] = await
|
|
93
|
+
const resetProjectHelper = async () => {
|
|
94
|
+
const [err] = await resetProject();
|
|
92
95
|
if (err)
|
|
93
96
|
alert(`Project failed to reset: ${err.message}`);
|
|
94
97
|
};
|
|
@@ -100,7 +103,7 @@ export const SmartDesktopDesigner = (props) => {
|
|
|
100
103
|
affirmativeResponseLabel: "Reset Project",
|
|
101
104
|
}, (err, response) => {
|
|
102
105
|
if (response.choice === "affirmative") {
|
|
103
|
-
|
|
106
|
+
resetProjectHelper();
|
|
104
107
|
}
|
|
105
108
|
});
|
|
106
109
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SmartDesktopDesigner.js","sourceRoot":"","sources":["../../../src/components/sdd/SmartDesktopDesigner.tsx"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright 2017 - 2020 by ChartIQ, Inc.\n * All rights reserved.\n */\n\n/* If you rename \"SmartDesktopDesigner\" to something else (it's been Maker UI, Jumpstart, and DesktopProjectEditor in the past), grep for the following terms (case insensitive):\n * \"SmartDesktop\", \"Smart Desktop\", \"SDD\", \"SDServer\", \"SMART_DESKTOP\"\n */\n\nimport React, { useState, useEffect, useRef } from \"react\";\nimport FloatingFocus from \"@q42/floating-focus-a11y\";\nimport \"../../assets/css/finsemble.css\";\nimport \"./css/styles.css\";\nimport { Navigation } from \"./Navigation\";\nimport { CurrentView } from \"./CurrentView\";\nimport { getCSSVars } from \"./common/getCSSVars\";\nimport { useSelector, useDispatch } from \"../../store\";\nimport { RootState } from \"../../reducers/rootReducer\";\nimport { ProjectSaveData } from \"../../types/smartDesktopDesignerTypes\";\nimport { SmartDesktopDesignerActions } from \"../../actions/smartDesktopDesignerActions\";\nimport { FEA } from \"@finsemble/finsemble-api\";\nimport { ContentHeader } from \"./ContentHeader\";\nimport { Button } from \"../common/Button\";\n\ntype SDServerInfo = FEA.SDServerInfo;\n\n// The package FloatingFocus injects a focus indicator that moves around the page, but only for\n// keyboard users. (Mouse users don't see the indicator.) All that needs to be done is to envoke it.\nnew FloatingFocus();\n// If you want to make changes to the indicator, the styles are being maintained in assets/css/focus.css\n\nconst getDefaultTheme = () => {\n\tlet globalCssVars: any = {};\n\tconst docStyle = window.getComputedStyle(document.documentElement);\n\tgetCSSVars(document.styleSheets).forEach((varName: any) => {\n\t\tglobalCssVars[varName] = docStyle.getPropertyValue(varName).trim();\n\t});\n\n\t// In order to prevent the theme from affecting content of smartDesktopDesigner.tsx,\n\t// remove the sheet after reading variables\n\tconst themesheet = document.body.querySelector(\"#themesheet\");\n\tif (themesheet) {\n\t\tdocument.body.removeChild(themesheet);\n\t}\n\n\treturn globalCssVars;\n};\n\nlet themeConfig = {\n\tcurrentTheme: \"Default\",\n\tdefaultTheme: \"Default\",\n\tthemes: {\n\t\tDefault: getDefaultTheme(),\n\t},\n};\n\nexport type ThemeConfig = typeof themeConfig;\n\nexport type SmartDesktopDesignerProps = {\n\tviews: any[];\n\tgetConfig: typeof FSBL.Clients.ConfigClient.getValues;\n\tresetProject: typeof FSBL.Clients.SmartDesktopClient.prototype.resetProject;\n\tgetSDServerInfo: typeof FSBL.Clients.SmartDesktopClient.prototype.getSDServerInfo;\n\tgetProjectSettings: typeof FSBL.Clients.SmartDesktopClient.prototype.getProjectSettings;\n\tupdateProjectSettings?: typeof FSBL.Clients.SmartDesktopClient.prototype.updateProjectSettings;\n\tonThemeUpdated: typeof FSBL.Clients.SmartDesktopClient.onThemeUpdated;\n\tselectProjectPath?: typeof FSBL.Clients.SmartDesktopClient.prototype.selectProjectPath;\n\trestartFinsemble?: () => void;\n\tsetDefaults: () => Promise<void>;\n};\n\nexport const SmartDesktopDesigner = (props: SmartDesktopDesignerProps) => {\n\tconst dispatch = useDispatch();\n\n\tconst { views } = props;\n\tconst [theme, setTheme] = useState(themeConfig);\n\tconst [sdServerInfo, setSDServerInfo] = useState({ enabled: false, applicationRoot: \"\" } as SDServerInfo);\n\tconst [version, setVersion] = useState(\"\");\n\n\tconst project = useSelector((state: RootState) => state.smartDesktopDesigner.projectInfo);\n\n\tconst setProject = (value: ProjectSaveData) => {\n\t\tdispatch(SmartDesktopDesignerActions.set_project_info(value));\n\t};\n\n\tconst themeListenerRef = useRef((addListenerErr: any, { data }: { data: any }) => {\n\t\tconst newTheme = { ...themeConfig };\n\t\tnewTheme.themes.Default = { ...newTheme.themes.Default };\n\n\t\tfor (let [key, value] of Object.entries(data)) {\n\t\t\tnewTheme.themes.Default[key] = value;\n\t\t}\n\t\tsetTheme(newTheme);\n\t});\n\n\t// Similar to componentDidMount and componentDidUpdate:\n\tuseEffect(() => {\n\t\tprops.setDefaults();\n\t\tprops.getConfig(null, (err: any, newConfig: any) => {\n\t\t\tif (err) {\n\t\t\t\tFSBL.Clients.Logger.system.error(\"SmartDesktopDesigner\", err);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// @todo: We should use a Client API for this, rather than relying on the config to look this way.\n\t\t\t// That change will be easier to do once the SDD is removed from the Seed.\n\t\t\tsetVersion(newConfig?.finsemble?.system?.FSBLVersion ?? \"\");\n\n\t\t\tprops.getProjectSettings().then((response) => {\n\t\t\t\tlet projectPath = project.path;\n\n\t\t\t\tif (response.settings?.path) {\n\t\t\t\t\tprojectPath = response.settings.path;\n\t\t\t\t}\n\n\t\t\t\tprops.getSDServerInfo().then((jsInfo) => {\n\t\t\t\t\tif (!jsInfo.enabled) {\n\t\t\t\t\t\tFSBL.Clients.Logger.system.error(\n\t\t\t\t\t\t\t\"Smart Desktop Designer started without the Smart Desktop Server being enabled. Check FEA configuration.\"\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tFSBL.Clients.Logger.system.log(`DPS application root: ${jsInfo.applicationRoot}`);\n\t\t\t\t\t}\n\t\t\t\t\tFSBL.Clients.Logger.system.log(`DPS info: ${JSON.stringify(jsInfo)}`);\n\t\t\t\t\tFSBL.Clients.Logger.system.log(`NewConfig info: ${JSON.stringify(newConfig)}`);\n\n\t\t\t\t\tsetProject({\n\t\t\t\t\t\t...project,\n\t\t\t\t\t\tname: jsInfo?.projectConfig?.name || \"\",\n\t\t\t\t\t\tpath: projectPath,\n\t\t\t\t\t\texport: {\n\t\t\t\t\t\t\t...project.export,\n\t\t\t\t\t\t\ttoolbarIcon: \"/assets/img/Finsemble_Toolbar_Icon.png\",\n\t\t\t\t\t\t\tinstallerIcon: \"/assets/img/installer_icon.ico\",\n\t\t\t\t\t\t\ttaskbarIcon: newConfig?.startup_app?.applicationIcon,\n\t\t\t\t\t\t\tsystemTrayIcon: newConfig?.finsemble?.systemTrayIcon,\n\t\t\t\t\t\t\tsplashScreenImage: newConfig?.splashScreenImage,\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\n\t\t\t\t\t// This should be done last as its checked for initial rendering\n\t\t\t\t\t// Otherwise, inital values will be cached within states of sub components\n\t\t\t\t\t// \"Untitled project\" will show as project.name since it will be \"\", e.g.\n\t\t\t\t\tsetSDServerInfo(jsInfo);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\n\t\tconst removeHandler = props.onThemeUpdated(themeListenerRef.current);\n\t\treturn () => {\n\t\t\tremoveHandler();\n\t\t};\n\t}, []);\n\n\tconst clickResetProjectButton = () => {\n\t\tconst resetProject = async () => {\n\t\t\tconst [err] = await props.resetProject();\n\t\t\tif (err) alert(`Project failed to reset: ${err.message}`);\n\t\t};\n\t\tFSBL.Clients.DialogManager.open(\n\t\t\t\"yesNo\",\n\t\t\t{\n\t\t\t\ttitle: \"Are you sure?\",\n\t\t\t\tquestion: `Your project will be set back to factory defaults. You will lose all customizations except the name of the project. Finsemble will then be restarted.`,\n\t\t\t\thideModalOnClose: true,\n\t\t\t\tshowNegativeButton: false,\n\t\t\t\taffirmativeResponseLabel: \"Reset Project\",\n\t\t\t},\n\t\t\t(err: any, response: { choice: string }) => {\n\t\t\t\tif (response.choice === \"affirmative\") {\n\t\t\t\t\tresetProject();\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t};\n\n\treturn sdServerInfo.enabled ? (\n\t\t<div className=\"config-container\">\n\t\t\t<div className=\"project-container\">\n\t\t\t\t<div className=\"nav-container\">\n\t\t\t\t\t<Navigation views={views}></Navigation>\n\n\t\t\t\t\t<div className=\"bottom-nav-wrapper\">\n\t\t\t\t\t\t<div className=\"nav-anchor-reset\">\n\t\t\t\t\t\t\t<div className=\"version-info\">{version && `Finsemble version ${version}`}</div>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tfashion=\"danger\"\n\t\t\t\t\t\t\t\ttext=\"Reset project\"\n\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\tclickResetProjectButton();\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<div className=\"content-container\">\n\t\t\t\t\t<ContentHeader name={project.name} />\n\t\t\t\t\t<div className=\"view-container\">\n\t\t\t\t\t\t<CurrentView views={views} theme={theme}></CurrentView>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t) : (\n\t\t<></>\n\t);\n};\n"]}
|
|
1
|
+
{"version":3,"file":"SmartDesktopDesigner.js","sourceRoot":"","sources":["../../../src/components/sdd/SmartDesktopDesigner.tsx"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright 2017 - 2020 by ChartIQ, Inc.\n * All rights reserved.\n */\n\n/* If you rename \"SmartDesktopDesigner\" to something else (it's been Maker UI, Jumpstart, and DesktopProjectEditor in the past), grep for the following terms (case insensitive):\n * \"SmartDesktop\", \"Smart Desktop\", \"SDD\", \"SDServer\", \"SMART_DESKTOP\"\n */\n\nimport React, { useState, useEffect, useRef } from \"react\";\nimport FloatingFocus from \"@q42/floating-focus-a11y\";\nimport \"../../assets/css/finsemble.css\";\nimport \"./css/styles.css\";\nimport { Navigation } from \"./Navigation\";\nimport { CurrentView } from \"./CurrentView\";\nimport { getCSSVars } from \"./common/getCSSVars\";\nimport { useSelector, useDispatch } from \"../../store\";\nimport { RootState } from \"../../reducers/rootReducer\";\nimport { ProjectSaveData } from \"../../types/smartDesktopDesignerTypes\";\nimport { SmartDesktopDesignerActions } from \"../../actions/smartDesktopDesignerActions\";\nimport { FEA } from \"@finsemble/finsemble-api\";\nimport { ContentHeader } from \"./ContentHeader\";\nimport { Button } from \"../common/Button\";\nimport defaultViews from \"./common/views\";\nimport { setDefaults as defaultSetDefaults } from \"./common/setPreloadDefaults\";\nimport { SmartDesktopClient } from \"./smartDesktopClient\";\n\n// The package FloatingFocus injects a focus indicator that moves around the page, but only for\n// keyboard users. (Mouse users don't see the indicator.) All that needs to be done is to envoke it.\nnew FloatingFocus();\n// If you want to make changes to the indicator, the styles are being maintained in assets/css/focus.css\n\n/**\n * Initializes the Default theme with the CSS variables that are hard baked into Finsemble's UI library.\n * These might be overridden by what is stored in the project's theme.css file.\n * @returns An object containing the current theme.\n */\nconst getDefaultTheme = () => {\n\tlet globalCssVars: any = {};\n\tconst docStyle = window.getComputedStyle(document.documentElement);\n\tgetCSSVars(document.styleSheets).forEach((varName: any) => {\n\t\tglobalCssVars[varName] = docStyle.getPropertyValue(varName).trim();\n\t});\n\n\treturn globalCssVars;\n};\n\nexport type ThemeConfig = {\n\tcurrentTheme: string;\n\tdefaultTheme: string;\n\tthemes: {\n\t\tDefault: Record<string, string>;\n\t\t[index: string]: Record<string, string>;\n\t};\n};\n\nlet themeConfig: ThemeConfig = {\n\tcurrentTheme: \"Default\",\n\tdefaultTheme: \"Default\",\n\tthemes: {\n\t\tDefault: getDefaultTheme(),\n\t},\n};\n\nexport interface SmartDesktopDesignerProps {\n\tviews?: any[];\n\tgetConfig?: typeof FSBL.Clients.ConfigClient.getValues;\n\tresetProject?: typeof SmartDesktopClient.resetProject;\n\tgetSDServerInfo?: typeof SmartDesktopClient.getSDServerInfo;\n\tgetTheme?: typeof SmartDesktopClient.getTheme;\n\tgetProjectSettings?: typeof SmartDesktopClient.getProjectSettings;\n\tupdateProjectSettings?: typeof SmartDesktopClient.updateProjectSettings;\n\tonThemeUpdated?: typeof SmartDesktopClient.onThemeUpdated;\n\tselectProjectPath?: typeof SmartDesktopClient.selectProjectPath;\n\trestartFinsemble?: () => void;\n\tsetDefaults?: () => Promise<void>;\n}\n\nexport const SmartDesktopDesigner = ({\n\tviews = defaultViews,\n\tgetConfig = (params: any, callback: any) => FSBL.Clients.ConfigClient.getValues(params, callback),\n\tgetTheme = () => SmartDesktopClient.getTheme(),\n\tresetProject = () => SmartDesktopClient.resetProject(),\n\tgetSDServerInfo = () => SmartDesktopClient.getSDServerInfo(),\n\tgetProjectSettings = () => SmartDesktopClient.getProjectSettings(),\n\tupdateProjectSettings = (settings: any) => SmartDesktopClient.updateProjectSettings(settings),\n\tonThemeUpdated = (callback: any) => SmartDesktopClient.onThemeUpdated(callback),\n\tselectProjectPath = () => SmartDesktopClient.selectProjectPath(),\n\trestartFinsemble = () => FSBL.System.Application.getCurrent().restart(),\n\tsetDefaults = async () => {\n\t\tawait defaultSetDefaults();\n\t},\n}: SmartDesktopDesignerProps) => {\n\tconst dispatch = useDispatch();\n\n\tconst [theme, setTheme] = useState(themeConfig);\n\tconst [sdServerInfo, setSDServerInfo] = useState({ enabled: false, applicationRoot: \"\" } as FEA.SDServerInfo);\n\tconst [version, setVersion] = useState(\"\");\n\n\tconst project = useSelector((state: RootState) => state.smartDesktopDesigner.projectInfo);\n\n\tconst setProject = (value: ProjectSaveData) => {\n\t\tdispatch(SmartDesktopDesignerActions.set_project_info(value));\n\t};\n\n\tconst themeListenerRef = useRef((addListenerErr: any, { data }: { data: Record<string, string> }) => {\n\t\tconst newTheme = { ...themeConfig };\n\t\tnewTheme.themes.Default = { ...newTheme.themes.Default };\n\n\t\tfor (let [key, value] of Object.entries(data)) {\n\t\t\tnewTheme.themes.Default[key] = value;\n\t\t}\n\t\tsetTheme(newTheme);\n\t});\n\n\tuseEffect(() => {\n\t\tsetDefaults();\n\t\t// Initialize the local theme with data from theme.css (via REST)\n\t\tgetTheme().then((response) => {\n\t\t\tif (!response.theme) return;\n\t\t\tconst newTheme = { ...themeConfig };\n\t\t\tnewTheme.themes.Default = { ...newTheme.themes.Default };\n\n\t\t\tObject.entries(response.theme).forEach(([key, value]) => {\n\t\t\t\tnewTheme.themes.Default[key] = value;\n\t\t\t});\n\n\t\t\tsetTheme(newTheme);\n\t\t});\n\n\t\t// Initialize the local version number with the current FSBL version\n\t\tFSBL.getFSBLInfo().then((info) => setVersion(info.FSBLVersion));\n\n\t\t// Initialize the local project info based on data obtained from config of sdServerInfo\n\t\tgetConfig(null, async (err: any, newConfig: any) => {\n\t\t\tif (err) {\n\t\t\t\tFSBL.Clients.Logger.system.error(\"SmartDesktopDesigner\", err);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst { settings } = await getProjectSettings();\n\n\t\t\tconst projectPath = settings?.path ?? project.path;\n\n\t\t\tconst jsInfo = await getSDServerInfo();\n\t\t\tif (!jsInfo.enabled) {\n\t\t\t\tFSBL.Clients.Logger.system.error(\n\t\t\t\t\t\"Smart Desktop Designer started without the Smart Desktop Server being enabled. Check FEA configuration.\"\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tFSBL.Clients.Logger.system.log(`DPS application root: ${jsInfo.applicationRoot}`);\n\t\t\t}\n\t\t\tFSBL.Clients.Logger.system.log(`DPS info: ${JSON.stringify(jsInfo)}`);\n\t\t\tFSBL.Clients.Logger.system.log(`NewConfig info: ${JSON.stringify(newConfig)}`);\n\n\t\t\tsetProject({\n\t\t\t\t...project,\n\t\t\t\tname: jsInfo?.projectConfig?.name || \"\",\n\t\t\t\tpath: projectPath,\n\t\t\t\texport: {\n\t\t\t\t\t...project.export,\n\t\t\t\t\ttoolbarIcon: \"/assets/img/Finsemble_Toolbar_Icon.png\",\n\t\t\t\t\tinstallerIcon: \"/assets/img/installer_icon.ico\",\n\t\t\t\t\ttaskbarIcon: newConfig?.startup_app?.applicationIcon,\n\t\t\t\t\tsystemTrayIcon: newConfig?.finsemble?.systemTrayIcon,\n\t\t\t\t\tsplashScreenImage: newConfig?.splashScreenImage,\n\t\t\t\t},\n\t\t\t});\n\n\t\t\t// This should be done last as it's checked for initial rendering\n\t\t\t// Otherwise, inital values will be cached within states of sub components\n\t\t\t// \"Untitled project\" will show as project.name since it will be \"\", e.g.\n\t\t\tsetSDServerInfo(jsInfo);\n\t\t});\n\n\t\tconst removeHandler = onThemeUpdated(themeListenerRef.current);\n\t\treturn () => {\n\t\t\tremoveHandler();\n\t\t};\n\t}, []);\n\n\tconst clickResetProjectButton = () => {\n\t\tconst resetProjectHelper = async () => {\n\t\t\tconst [err] = await resetProject();\n\t\t\tif (err) alert(`Project failed to reset: ${err.message}`);\n\t\t};\n\t\tFSBL.Clients.DialogManager.open(\n\t\t\t\"yesNo\",\n\t\t\t{\n\t\t\t\ttitle: \"Are you sure?\",\n\t\t\t\tquestion: `Your project will be set back to factory defaults. You will lose all customizations except the name of the project. Finsemble will then be restarted.`,\n\t\t\t\thideModalOnClose: true,\n\t\t\t\tshowNegativeButton: false,\n\t\t\t\taffirmativeResponseLabel: \"Reset Project\",\n\t\t\t},\n\t\t\t(err: any, response: { choice: string }) => {\n\t\t\t\tif (response.choice === \"affirmative\") {\n\t\t\t\t\tresetProjectHelper();\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t};\n\n\treturn sdServerInfo.enabled ? (\n\t\t<div className=\"config-container\">\n\t\t\t<div className=\"project-container\">\n\t\t\t\t<div className=\"nav-container\">\n\t\t\t\t\t<Navigation views={views}></Navigation>\n\n\t\t\t\t\t<div className=\"bottom-nav-wrapper\">\n\t\t\t\t\t\t<div className=\"nav-anchor-reset\">\n\t\t\t\t\t\t\t<div className=\"version-info\">{version && `Finsemble version ${version}`}</div>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tfashion=\"danger\"\n\t\t\t\t\t\t\t\ttext=\"Reset project\"\n\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\tclickResetProjectButton();\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<div className=\"content-container\">\n\t\t\t\t\t<ContentHeader name={project.name} />\n\t\t\t\t\t<div className=\"view-container\">\n\t\t\t\t\t\t<CurrentView views={views} theme={theme}></CurrentView>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t) : (\n\t\t<></>\n\t);\n};\n"]}
|
|
@@ -7,12 +7,15 @@ import { Tooltip } from "../common/Tooltip";
|
|
|
7
7
|
import { ColorPicker, colorToRGBA, RGBA_CHANNEL } from "../common/ColorPicker";
|
|
8
8
|
import "./ThemePage.css";
|
|
9
9
|
export const ThemePage = ({ updateThemes, theme }) => {
|
|
10
|
+
const onUpdateColor = (id, newColor) => {
|
|
11
|
+
if (id === "font-color") {
|
|
12
|
+
const rgba = colorToRGBA(newColor), rgb = [rgba[RGBA_CHANNEL.RED], rgba[RGBA_CHANNEL.GREEN], rgba[RGBA_CHANNEL.BLUE]], alpha = 0.3;
|
|
13
|
+
updateThemes(`--toolbar-separator`, `1px solid rgba(${rgb.join(", ")}, ${alpha})`);
|
|
14
|
+
}
|
|
15
|
+
updateThemes(`--${id}`, newColor);
|
|
16
|
+
};
|
|
10
17
|
const generateColorPicker = (id) => (React.createElement(ColorPicker, { id: id, startColor: theme[`--${id}`] || "", updateColor: (newColor) => {
|
|
11
|
-
|
|
12
|
-
const rgba = colorToRGBA(newColor), rgb = [rgba[RGBA_CHANNEL.RED], rgba[RGBA_CHANNEL.GREEN], rgba[RGBA_CHANNEL.BLUE]], alpha = 0.3;
|
|
13
|
-
updateThemes(`--toolbar-separator`, `1px solid rgba(${rgb.join(", ")}, ${alpha})`);
|
|
14
|
-
}
|
|
15
|
-
updateThemes(`--${id}`, newColor);
|
|
18
|
+
onUpdateColor(id, newColor);
|
|
16
19
|
} }));
|
|
17
20
|
return (React.createElement("div", { className: "theme-settings" },
|
|
18
21
|
React.createElement("div", { className: "theme-colors" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemePage.js","sourceRoot":"","sources":["../../../src/components/sdd/ThemePage.tsx"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright 2017 - 2020 by ChartIQ, Inc.\n * All rights reserved.\n */\n\nimport React from \"react\";\nimport { Tooltip } from \"../common/Tooltip\";\nimport { ColorPicker, colorToRGBA, RGBA_CHANNEL } from \"../common/ColorPicker\";\nimport \"./ThemePage.css\";\n\nexport type ThemeBundle = { [key: string]: string };\n\nexport type ThemePageProps = {\n\tupdateThemes: (id: string, newValue: string) => void;\n\ttheme: ThemeBundle;\n};\n\nexport const ThemePage = ({ updateThemes, theme }: ThemePageProps) => {\n\tconst generateColorPicker = (id: string) => (\n\t\t<ColorPicker\n\t\t\tid={id}\n\t\t\tstartColor={theme[`--${id}`] || \"\"}\n\t\t\tupdateColor={(newColor: string) => {\n\t\t\t\tif (id === \"font-color\") {\n\t\t\t\t\tconst rgba = colorToRGBA(newColor),\n\t\t\t\t\t\trgb = [rgba[RGBA_CHANNEL.RED], rgba[RGBA_CHANNEL.GREEN], rgba[RGBA_CHANNEL.BLUE]],\n\t\t\t\t\t\talpha = 0.3; // (rgba[RGBA_CHANNEL.ALPHA] / 255)\n\n\t\t\t\t\tupdateThemes(`--toolbar-separator`, `1px solid rgba(${rgb.join(\", \")}, ${alpha})`);\n\t\t\t\t}\n\n\t\t\t\tupdateThemes(`--${id}`, newColor);\n\t\t\t}}\n\t\t/>\n\t);\n\n\treturn (\n\t\t<div className=\"theme-settings\">\n\t\t\t<div className=\"theme-colors\">\n\t\t\t\t<fieldset className=\"appearance-options\">\n\t\t\t\t\t<div className=\"appearance-options-header\">\n\t\t\t\t\t\t<legend>Font settings</legend>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"appearance-options-field\">\n\t\t\t\t\t\t<label htmlFor=\"font-color\">Primary font color</label>\n\n\t\t\t\t\t\t{generateColorPicker(\"font-color\")}\n\t\t\t\t\t\t<Tooltip>Main text color. Make sure there is enough contrast against the primary background.</Tooltip>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"appearance-options-field\">\n\t\t\t\t\t\t<label htmlFor=\"core-primary-5\">Secondary font color</label>\n\n\t\t\t\t\t\t{generateColorPicker(\"core-primary-5\")}\n\t\t\t\t\t\t<Tooltip>Secondary text color. Make sure there is enough contrast against the primary background.</Tooltip>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"appearance-options-field\">\n\t\t\t\t\t\t<label htmlFor=\"font-color-2\">Contrast color</label>\n\n\t\t\t\t\t\t{generateColorPicker(\"font-color-2\")}\n\t\t\t\t\t\t<Tooltip>\n\t\t\t\t\t\t\tColor of text that is not against a typical background. Make it light if you have a light theme, or dark\n\t\t\t\t\t\t\tif you have a dark theme.\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t</div>\n\t\t\t\t</fieldset>\n\t\t\t</div>\n\n\t\t\t<div className=\"theme-colors\">\n\t\t\t\t<fieldset className=\"appearance-options\">\n\t\t\t\t\t<div className=\"appearance-options-header\">\n\t\t\t\t\t\t<legend>Brand color</legend>\n\n\t\t\t\t\t\t<Tooltip>The primary accent color that affects icons, form elements, buttons.</Tooltip>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"appearance-options-field\">\n\t\t\t\t\t\t<label htmlFor=\"accent-primary\">Primary</label>\n\n\t\t\t\t\t\t{generateColorPicker(\"accent-primary\")}\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"appearance-options-field\">\n\t\t\t\t\t\t<label htmlFor=\"accent-primary-1\">On mouseover</label>\n\n\t\t\t\t\t\t{generateColorPicker(\"accent-primary-1\")}\n\t\t\t\t\t</div>\n\t\t\t\t</fieldset>\n\n\t\t\t\t<fieldset className=\"appearance-options\">\n\t\t\t\t\t<div className=\"appearance-options-header\">\n\t\t\t\t\t\t<legend>Background color</legend>\n\n\t\t\t\t\t\t<Tooltip>Background color of desktop components such as the Toolbar and window Titlebar.</Tooltip>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"appearance-options-field\">\n\t\t\t\t\t\t<label htmlFor=\"core-primary\">Primary background</label>\n\n\t\t\t\t\t\t{generateColorPicker(\"core-primary\")}\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"appearance-options-field\">\n\t\t\t\t\t\t<label htmlFor=\"core-primary-1\">Secondary background</label>\n\n\t\t\t\t\t\t{generateColorPicker(\"core-primary-1\")}\n\t\t\t\t\t</div>\n\t\t\t\t</fieldset>\n\n\t\t\t\t<fieldset className=\"appearance-options\">\n\t\t\t\t\t<div className=\"appearance-options-header\">\n\t\t\t\t\t\t<legend>Navigation buttons</legend>\n\n\t\t\t\t\t\t<Tooltip>Background color for navigation buttons.</Tooltip>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"appearance-options-field\">\n\t\t\t\t\t\t<label htmlFor=\"core-primary-2\">Primary</label>\n\n\t\t\t\t\t\t{generateColorPicker(\"core-primary-2\")}\n\t\t\t\t\t</div>\n\t\t\t\t</fieldset>\n\n\t\t\t\t<fieldset className=\"appearance-options\">\n\t\t\t\t\t<div className=\"appearance-options-header\">\n\t\t\t\t\t\t<legend>Highlights and mouseover colors</legend>\n\n\t\t\t\t\t\t<Tooltip>\n\t\t\t\t\t\t\tColors used to highlight particular elements or when a user mouses over selected elements.\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"appearance-options-field\">\n\t\t\t\t\t\t<label htmlFor=\"core-primary-3\">Primary</label>\n\n\t\t\t\t\t\t{generateColorPicker(\"core-primary-3\")}\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"appearance-options-field\">\n\t\t\t\t\t\t<label htmlFor=\"core-primary-4\">Secondary</label>\n\n\t\t\t\t\t\t{generateColorPicker(\"core-primary-4\")}\n\t\t\t\t\t</div>\n\t\t\t\t</fieldset>\n\n\t\t\t\t<fieldset className=\"appearance-options\">\n\t\t\t\t\t<div className=\"appearance-options-header\">\n\t\t\t\t\t\t<legend>Success</legend>\n\n\t\t\t\t\t\t<Tooltip>Color of messages indicating success and affirmations, such as checkmark icons.</Tooltip>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"appearance-options-field\">\n\t\t\t\t\t\t<label htmlFor=\"accent-positive\">Primary</label>\n\n\t\t\t\t\t\t{generateColorPicker(\"accent-positive\")}\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"appearance-options-field\">\n\t\t\t\t\t\t<label htmlFor=\"accent-positive-1\">On mouseover</label>\n\n\t\t\t\t\t\t{generateColorPicker(\"accent-positive-1\")}\n\t\t\t\t\t</div>\n\t\t\t\t</fieldset>\n\n\t\t\t\t<fieldset className=\"appearance-options\">\n\t\t\t\t\t<div className=\"appearance-options-header\">\n\t\t\t\t\t\t<legend>Reminders and warnings</legend>\n\n\t\t\t\t\t\t<Tooltip>Color of non-critical alerts.</Tooltip>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"appearance-options-field\">\n\t\t\t\t\t\t<label htmlFor=\"accent-aware\">Primary</label>\n\n\t\t\t\t\t\t{generateColorPicker(\"accent-aware\")}\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"appearance-options-field\">\n\t\t\t\t\t\t<label htmlFor=\"accent-aware-1\">On mouseover</label>\n\n\t\t\t\t\t\t{generateColorPicker(\"accent-aware-1\")}\n\t\t\t\t\t</div>\n\t\t\t\t</fieldset>\n\n\t\t\t\t<fieldset className=\"appearance-options\">\n\t\t\t\t\t<div className=\"appearance-options-header\">\n\t\t\t\t\t\t<legend>Errors</legend>\n\n\t\t\t\t\t\t<Tooltip>Color of critical errors and information.</Tooltip>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"appearance-options-field\">\n\t\t\t\t\t\t<label htmlFor=\"accent-negative\">Primary</label>\n\n\t\t\t\t\t\t{generateColorPicker(\"accent-negative\")}\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"appearance-options-field\">\n\t\t\t\t\t\t<label htmlFor=\"accent-negative-1\">On mouseover</label>\n\n\t\t\t\t\t\t{generateColorPicker(\"accent-negative-1\")}\n\t\t\t\t\t</div>\n\t\t\t\t</fieldset>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n"]}
|
|
1
|
+
{"version":3,"file":"ThemePage.js","sourceRoot":"","sources":["../../../src/components/sdd/ThemePage.tsx"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright 2017 - 2020 by ChartIQ, Inc.\n * All rights reserved.\n */\n\nimport React from \"react\";\nimport { Tooltip } from \"../common/Tooltip\";\nimport { ColorPicker, colorToRGBA, RGBA_CHANNEL } from \"../common/ColorPicker\";\nimport \"./ThemePage.css\";\n\nexport type ThemeBundle = { [key: string]: string };\n\nexport type ThemePageProps = {\n\tupdateThemes: (id: string, newValue: string) => void;\n\ttheme: ThemeBundle;\n};\n\nexport const ThemePage = ({ updateThemes, theme }: ThemePageProps) => {\n\tconst onUpdateColor = (id: string, newColor: string) => {\n\t\tif (id === \"font-color\") {\n\t\t\tconst rgba = colorToRGBA(newColor),\n\t\t\t\trgb = [rgba[RGBA_CHANNEL.RED], rgba[RGBA_CHANNEL.GREEN], rgba[RGBA_CHANNEL.BLUE]],\n\t\t\t\talpha = 0.3; // (rgba[RGBA_CHANNEL.ALPHA] / 255)\n\n\t\t\tupdateThemes(`--toolbar-separator`, `1px solid rgba(${rgb.join(\", \")}, ${alpha})`);\n\t\t}\n\n\t\tupdateThemes(`--${id}`, newColor);\n\t};\n\n\tconst generateColorPicker = (id: string) => (\n\t\t<ColorPicker\n\t\t\tid={id}\n\t\t\tstartColor={theme[`--${id}`] || \"\"}\n\t\t\tupdateColor={(newColor: string) => {\n\t\t\t\tonUpdateColor(id, newColor);\n\t\t\t}}\n\t\t/>\n\t);\n\n\treturn (\n\t\t<div className=\"theme-settings\">\n\t\t\t<div className=\"theme-colors\">\n\t\t\t\t<fieldset className=\"appearance-options\">\n\t\t\t\t\t<div className=\"appearance-options-header\">\n\t\t\t\t\t\t<legend>Font settings</legend>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"appearance-options-field\">\n\t\t\t\t\t\t<label htmlFor=\"font-color\">Primary font color</label>\n\n\t\t\t\t\t\t{generateColorPicker(\"font-color\")}\n\t\t\t\t\t\t<Tooltip>Main text color. Make sure there is enough contrast against the primary background.</Tooltip>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"appearance-options-field\">\n\t\t\t\t\t\t<label htmlFor=\"core-primary-5\">Secondary font color</label>\n\n\t\t\t\t\t\t{generateColorPicker(\"core-primary-5\")}\n\t\t\t\t\t\t<Tooltip>Secondary text color. Make sure there is enough contrast against the primary background.</Tooltip>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"appearance-options-field\">\n\t\t\t\t\t\t<label htmlFor=\"font-color-2\">Contrast color</label>\n\n\t\t\t\t\t\t{generateColorPicker(\"font-color-2\")}\n\t\t\t\t\t\t<Tooltip>\n\t\t\t\t\t\t\tColor of text that is not against a typical background. Make it light if you have a light theme, or dark\n\t\t\t\t\t\t\tif you have a dark theme.\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t</div>\n\t\t\t\t</fieldset>\n\t\t\t</div>\n\n\t\t\t<div className=\"theme-colors\">\n\t\t\t\t<fieldset className=\"appearance-options\">\n\t\t\t\t\t<div className=\"appearance-options-header\">\n\t\t\t\t\t\t<legend>Brand color</legend>\n\n\t\t\t\t\t\t<Tooltip>The primary accent color that affects icons, form elements, buttons.</Tooltip>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"appearance-options-field\">\n\t\t\t\t\t\t<label htmlFor=\"accent-primary\">Primary</label>\n\n\t\t\t\t\t\t{generateColorPicker(\"accent-primary\")}\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"appearance-options-field\">\n\t\t\t\t\t\t<label htmlFor=\"accent-primary-1\">On mouseover</label>\n\n\t\t\t\t\t\t{generateColorPicker(\"accent-primary-1\")}\n\t\t\t\t\t</div>\n\t\t\t\t</fieldset>\n\n\t\t\t\t<fieldset className=\"appearance-options\">\n\t\t\t\t\t<div className=\"appearance-options-header\">\n\t\t\t\t\t\t<legend>Background color</legend>\n\n\t\t\t\t\t\t<Tooltip>Background color of desktop components such as the Toolbar and window Titlebar.</Tooltip>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"appearance-options-field\">\n\t\t\t\t\t\t<label htmlFor=\"core-primary\">Primary background</label>\n\n\t\t\t\t\t\t{generateColorPicker(\"core-primary\")}\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"appearance-options-field\">\n\t\t\t\t\t\t<label htmlFor=\"core-primary-1\">Secondary background</label>\n\n\t\t\t\t\t\t{generateColorPicker(\"core-primary-1\")}\n\t\t\t\t\t</div>\n\t\t\t\t</fieldset>\n\n\t\t\t\t<fieldset className=\"appearance-options\">\n\t\t\t\t\t<div className=\"appearance-options-header\">\n\t\t\t\t\t\t<legend>Navigation buttons</legend>\n\n\t\t\t\t\t\t<Tooltip>Background color for navigation buttons.</Tooltip>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"appearance-options-field\">\n\t\t\t\t\t\t<label htmlFor=\"core-primary-2\">Primary</label>\n\n\t\t\t\t\t\t{generateColorPicker(\"core-primary-2\")}\n\t\t\t\t\t</div>\n\t\t\t\t</fieldset>\n\n\t\t\t\t<fieldset className=\"appearance-options\">\n\t\t\t\t\t<div className=\"appearance-options-header\">\n\t\t\t\t\t\t<legend>Highlights and mouseover colors</legend>\n\n\t\t\t\t\t\t<Tooltip>\n\t\t\t\t\t\t\tColors used to highlight particular elements or when a user mouses over selected elements.\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"appearance-options-field\">\n\t\t\t\t\t\t<label htmlFor=\"core-primary-3\">Primary</label>\n\n\t\t\t\t\t\t{generateColorPicker(\"core-primary-3\")}\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"appearance-options-field\">\n\t\t\t\t\t\t<label htmlFor=\"core-primary-4\">Secondary</label>\n\n\t\t\t\t\t\t{generateColorPicker(\"core-primary-4\")}\n\t\t\t\t\t</div>\n\t\t\t\t</fieldset>\n\n\t\t\t\t<fieldset className=\"appearance-options\">\n\t\t\t\t\t<div className=\"appearance-options-header\">\n\t\t\t\t\t\t<legend>Success</legend>\n\n\t\t\t\t\t\t<Tooltip>Color of messages indicating success and affirmations, such as checkmark icons.</Tooltip>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"appearance-options-field\">\n\t\t\t\t\t\t<label htmlFor=\"accent-positive\">Primary</label>\n\n\t\t\t\t\t\t{generateColorPicker(\"accent-positive\")}\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"appearance-options-field\">\n\t\t\t\t\t\t<label htmlFor=\"accent-positive-1\">On mouseover</label>\n\n\t\t\t\t\t\t{generateColorPicker(\"accent-positive-1\")}\n\t\t\t\t\t</div>\n\t\t\t\t</fieldset>\n\n\t\t\t\t<fieldset className=\"appearance-options\">\n\t\t\t\t\t<div className=\"appearance-options-header\">\n\t\t\t\t\t\t<legend>Reminders and warnings</legend>\n\n\t\t\t\t\t\t<Tooltip>Color of non-critical alerts.</Tooltip>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"appearance-options-field\">\n\t\t\t\t\t\t<label htmlFor=\"accent-aware\">Primary</label>\n\n\t\t\t\t\t\t{generateColorPicker(\"accent-aware\")}\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"appearance-options-field\">\n\t\t\t\t\t\t<label htmlFor=\"accent-aware-1\">On mouseover</label>\n\n\t\t\t\t\t\t{generateColorPicker(\"accent-aware-1\")}\n\t\t\t\t\t</div>\n\t\t\t\t</fieldset>\n\n\t\t\t\t<fieldset className=\"appearance-options\">\n\t\t\t\t\t<div className=\"appearance-options-header\">\n\t\t\t\t\t\t<legend>Errors</legend>\n\n\t\t\t\t\t\t<Tooltip>Color of critical errors and information.</Tooltip>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"appearance-options-field\">\n\t\t\t\t\t\t<label htmlFor=\"accent-negative\">Primary</label>\n\n\t\t\t\t\t\t{generateColorPicker(\"accent-negative\")}\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"appearance-options-field\">\n\t\t\t\t\t\t<label htmlFor=\"accent-negative-1\">On mouseover</label>\n\n\t\t\t\t\t\t{generateColorPicker(\"accent-negative-1\")}\n\t\t\t\t\t</div>\n\t\t\t\t</fieldset>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n"]}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
import { ThemeBundle } from "./ThemePage";
|
|
7
7
|
import { ProjectSaveData } from "../../types/smartDesktopDesignerTypes";
|
|
8
8
|
export declare type ThemeProps = {
|
|
9
|
+
updateTheme: (theme: ThemeBundle) => void;
|
|
9
10
|
getSDServerInfo: (cb: Function) => void;
|
|
10
11
|
updateProjectSettings: (obj: ProjectSaveData) => Promise<{
|
|
11
12
|
err: string | undefined;
|
|
@@ -23,4 +24,4 @@ export declare type ThemeProps = {
|
|
|
23
24
|
};
|
|
24
25
|
};
|
|
25
26
|
};
|
|
26
|
-
export declare const Themes: ({ getSDServerInfo, updateProjectSettings, areYouSure, updateThemes, updateSplashScreen, updateToolbarIcon, updateTaskbarIcon, updateSystemTrayIcon, updateInstallerIcon, theme, }: ThemeProps) => JSX.Element;
|
|
27
|
+
export declare const Themes: ({ getSDServerInfo, updateProjectSettings, areYouSure, updateTheme, updateThemes, updateSplashScreen, updateToolbarIcon, updateTaskbarIcon, updateSystemTrayIcon, updateInstallerIcon, theme, }: ThemeProps) => JSX.Element;
|
|
@@ -7,7 +7,7 @@ import { View } from "./View";
|
|
|
7
7
|
import { Content } from "./Content";
|
|
8
8
|
import { Appearance } from "./Appearance";
|
|
9
9
|
import { darkTheme, lightTheme } from "./themeDefinitions";
|
|
10
|
-
export const Themes = ({ getSDServerInfo, updateProjectSettings, areYouSure, updateThemes, updateSplashScreen, updateToolbarIcon, updateTaskbarIcon, updateSystemTrayIcon, updateInstallerIcon, theme, }) => {
|
|
10
|
+
export const Themes = ({ getSDServerInfo, updateProjectSettings, areYouSure, updateTheme, updateThemes, updateSplashScreen, updateToolbarIcon, updateTaskbarIcon, updateSystemTrayIcon, updateInstallerIcon, theme, }) => {
|
|
11
11
|
const [applicationRoot, setApplicationRoot] = useState("");
|
|
12
12
|
const [project, setProject] = useState({
|
|
13
13
|
name: "",
|
|
@@ -55,6 +55,6 @@ export const Themes = ({ getSDServerInfo, updateProjectSettings, areYouSure, upd
|
|
|
55
55
|
return (React.createElement(View, null,
|
|
56
56
|
React.createElement(Content, null,
|
|
57
57
|
React.createElement("div", { className: "theme-edit" },
|
|
58
|
-
React.createElement(Appearance, { startTheme: theme.themes.Default, darkTheme: darkTheme, lightTheme: lightTheme, updateThemes: updateThemes, areYouSure: areYouSure, baseURL: applicationRoot || "", toolbarIcon: toolbarIcon, setToolbarIcon: setToolbarIcon, taskbarIcon: taskbarIcon, setTaskbarIcon: setTaskbarIcon, installerIcon: installerIcon, setInstallerIcon: setInstallerIcon, systemTrayIcon: systemTrayIcon, setSystemTrayIcon: setSystemTrayIcon, splashScreenImage: splashScreenImage, setSplashScreenImage: setSplashScreenImage, setIconsChanged: setIconsChanged, updateSplashScreen: updateSplashScreen, updateToolbarIcon: updateToolbarIcon, updateTaskbarIcon: updateTaskbarIcon, updateSystemTrayIcon: updateSystemTrayIcon, updateInstallerIcon: updateInstallerIcon })))));
|
|
58
|
+
React.createElement(Appearance, { startTheme: theme.themes.Default, darkTheme: darkTheme, lightTheme: lightTheme, updateTheme: updateTheme, updateThemes: updateThemes, areYouSure: areYouSure, baseURL: applicationRoot || "", toolbarIcon: toolbarIcon, setToolbarIcon: setToolbarIcon, taskbarIcon: taskbarIcon, setTaskbarIcon: setTaskbarIcon, installerIcon: installerIcon, setInstallerIcon: setInstallerIcon, systemTrayIcon: systemTrayIcon, setSystemTrayIcon: setSystemTrayIcon, splashScreenImage: splashScreenImage, setSplashScreenImage: setSplashScreenImage, setIconsChanged: setIconsChanged, updateSplashScreen: updateSplashScreen, updateToolbarIcon: updateToolbarIcon, updateTaskbarIcon: updateTaskbarIcon, updateSystemTrayIcon: updateSystemTrayIcon, updateInstallerIcon: updateInstallerIcon })))));
|
|
59
59
|
};
|
|
60
60
|
//# sourceMappingURL=Themes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Themes.js","sourceRoot":"","sources":["../../../src/components/sdd/Themes.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"Themes.js","sourceRoot":"","sources":["../../../src/components/sdd/Themes.tsx"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright 2017 - 2020 by ChartIQ, Inc.\n * All rights reserved.\n */\n\nimport React, { useState, useEffect } from \"react\";\nimport { View } from \"./View\";\nimport { Content } from \"./Content\";\n\n// Copied from <Appearance>\nimport { Appearance } from \"./Appearance\";\nimport { darkTheme, lightTheme } from \"./themeDefinitions\";\nimport { ThemeBundle } from \"./ThemePage\";\nimport { ProjectSaveData, SDServerInfo } from \"../../types/smartDesktopDesignerTypes\";\n\nexport type ThemeProps = {\n\tupdateTheme: (theme: ThemeBundle) => void;\n\tgetSDServerInfo: (cb: Function) => void;\n\tupdateProjectSettings: (obj: ProjectSaveData) => Promise<{ err: string | undefined }>;\n\tareYouSure: (affirmativeCallback: Function) => void;\n\tupdateThemes: (id: string, newValue: string) => void;\n\tupdateSplashScreen: any;\n\tupdateToolbarIcon: any;\n\tupdateTaskbarIcon: any;\n\tupdateSystemTrayIcon: any;\n\tupdateInstallerIcon: any;\n\ttheme: {\n\t\tthemes: {\n\t\t\tDefault: ThemeBundle;\n\t\t};\n\t};\n};\n\nexport const Themes = ({\n\tgetSDServerInfo,\n\tupdateProjectSettings,\n\tareYouSure,\n\tupdateTheme,\n\tupdateThemes,\n\tupdateSplashScreen,\n\tupdateToolbarIcon,\n\tupdateTaskbarIcon,\n\tupdateSystemTrayIcon,\n\tupdateInstallerIcon,\n\ttheme,\n}: ThemeProps) => {\n\tconst [applicationRoot, setApplicationRoot] = useState(\"\");\n\tconst [project, setProject] = useState({\n\t\tname: \"\",\n\t\tuser: {\n\t\t\tfirstName: \"\",\n\t\t\tlastName: \"\",\n\t\t\tcompany: \"\",\n\t\t\temail: \"\",\n\t\t},\n\t\texport: {\n\t\t\tauthor: \"\",\n\t\t\tcompanyName: \"\",\n\t\t\tdescription: \"\",\n\t\t\ttoolbarIcon: \"\",\n\t\t\tinstallerIcon: \"\",\n\t\t\ttaskbarIcon: \"\",\n\t\t\tsystemTrayIcon: \"\",\n\t\t\tsplashScreenImage: \"\",\n\t\t},\n\t});\n\n\t// Copied from <Appearance>\n\tconst [toolbarIcon, setToolbarIcon] = useState(project.export.toolbarIcon);\n\tconst [taskbarIcon, setTaskbarIcon] = useState(project.export.taskbarIcon);\n\tconst [installerIcon, setInstallerIcon] = useState(project.export.installerIcon);\n\tconst [systemTrayIcon, setSystemTrayIcon] = useState(project.export.systemTrayIcon);\n\tconst [splashScreenImage, setSplashScreenImage] = useState(project.export.splashScreenImage);\n\tconst [iconsChanged, setIconsChanged] = useState(0);\n\n\tuseEffect(() => {\n\t\tgetSDServerInfo((info: ProjectSaveData & SDServerInfo) => {\n\t\t\tsetProject(info);\n\t\t\tsetApplicationRoot(info.applicationRoot || \"\");\n\t\t\tsetToolbarIcon(info.export.toolbarIcon);\n\t\t\tsetTaskbarIcon(info.export.taskbarIcon);\n\t\t\tsetInstallerIcon(info.export.installerIcon);\n\t\t\tsetSystemTrayIcon(info.export.systemTrayIcon);\n\t\t\tsetSplashScreenImage(info.export.splashScreenImage);\n\t\t});\n\t}, []);\n\n\tuseEffect(() => {\n\t\tupdateProjectSettings({\n\t\t\t...project,\n\t\t\texport: {\n\t\t\t\t...project.export,\n\t\t\t\ttoolbarIcon,\n\t\t\t\tinstallerIcon,\n\t\t\t\ttaskbarIcon,\n\t\t\t\tsystemTrayIcon,\n\t\t\t\tsplashScreenImage,\n\t\t\t},\n\t\t});\n\t}, [iconsChanged]);\n\n\treturn (\n\t\t<View>\n\t\t\t<Content>\n\t\t\t\t<div className=\"theme-edit\">\n\t\t\t\t\t<Appearance\n\t\t\t\t\t\tstartTheme={theme.themes.Default}\n\t\t\t\t\t\tdarkTheme={darkTheme}\n\t\t\t\t\t\tlightTheme={lightTheme}\n\t\t\t\t\t\tupdateTheme={updateTheme}\n\t\t\t\t\t\tupdateThemes={updateThemes}\n\t\t\t\t\t\tareYouSure={areYouSure}\n\t\t\t\t\t\tbaseURL={applicationRoot || \"\"}\n\t\t\t\t\t\ttoolbarIcon={toolbarIcon}\n\t\t\t\t\t\tsetToolbarIcon={setToolbarIcon}\n\t\t\t\t\t\ttaskbarIcon={taskbarIcon}\n\t\t\t\t\t\tsetTaskbarIcon={setTaskbarIcon}\n\t\t\t\t\t\tinstallerIcon={installerIcon}\n\t\t\t\t\t\tsetInstallerIcon={setInstallerIcon}\n\t\t\t\t\t\tsystemTrayIcon={systemTrayIcon}\n\t\t\t\t\t\tsetSystemTrayIcon={setSystemTrayIcon}\n\t\t\t\t\t\tsplashScreenImage={splashScreenImage}\n\t\t\t\t\t\tsetSplashScreenImage={setSplashScreenImage}\n\t\t\t\t\t\tsetIconsChanged={setIconsChanged}\n\t\t\t\t\t\tupdateSplashScreen={updateSplashScreen}\n\t\t\t\t\t\tupdateToolbarIcon={updateToolbarIcon}\n\t\t\t\t\t\tupdateTaskbarIcon={updateTaskbarIcon}\n\t\t\t\t\t\tupdateSystemTrayIcon={updateSystemTrayIcon}\n\t\t\t\t\t\tupdateInstallerIcon={updateInstallerIcon}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</Content>\n\t\t</View>\n\t);\n};\n"]}
|
|
@@ -3,11 +3,12 @@
|
|
|
3
3
|
* All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
/// <reference types="react" />
|
|
6
|
+
import { SmartDesktopClient } from "./smartDesktopClient";
|
|
6
7
|
export declare type ToolbarProps = {
|
|
7
|
-
getApps: typeof
|
|
8
|
-
getMenus: typeof
|
|
9
|
-
addMenu: typeof
|
|
10
|
-
updateMenu: typeof
|
|
8
|
+
getApps: typeof SmartDesktopClient.getApps;
|
|
9
|
+
getMenus: typeof SmartDesktopClient.getMenus;
|
|
10
|
+
addMenu: typeof SmartDesktopClient.addMenu;
|
|
11
|
+
updateMenu: typeof SmartDesktopClient.updateMenu;
|
|
11
12
|
deleteMenu: (value: string) => Promise<{
|
|
12
13
|
err: any;
|
|
13
14
|
}>;
|