@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
|
@@ -15,6 +15,7 @@ import DefaultDropdownButton from "../shared/DefaultDropdownButton";
|
|
|
15
15
|
import "../common/css/application-edit-page.css";
|
|
16
16
|
import { FinsembleIcon } from "../common/FinsembleIcon";
|
|
17
17
|
import { FinsembleSelect } from "../common/FinsembleSelect";
|
|
18
|
+
import { FinsembleLink } from "../common/FinsembleLink";
|
|
18
19
|
const DEFAULT_WINDOW_WIDTH = 1280;
|
|
19
20
|
const DEFAULT_WINDOW_HEIGHT = 600;
|
|
20
21
|
const MINIMUM_WINDOW_WIDTH = 0;
|
|
@@ -23,6 +24,7 @@ export const defaultAppData = {
|
|
|
23
24
|
name: "",
|
|
24
25
|
abstractPosition: 0,
|
|
25
26
|
addToWorkspace: true,
|
|
27
|
+
alias: "",
|
|
26
28
|
allowAutoArrange: true,
|
|
27
29
|
allowGrouping: true,
|
|
28
30
|
allowMinimize: true,
|
|
@@ -35,6 +37,7 @@ export const defaultAppData = {
|
|
|
35
37
|
appType: "WEB",
|
|
36
38
|
autoConnect: false,
|
|
37
39
|
description: "",
|
|
40
|
+
enableAffinity: true,
|
|
38
41
|
enableAOT: false,
|
|
39
42
|
enableTitleBar: true,
|
|
40
43
|
height: DEFAULT_WINDOW_HEIGHT,
|
|
@@ -57,14 +60,18 @@ export const defaultAppData = {
|
|
|
57
60
|
singleton: false,
|
|
58
61
|
spawnOnStartup: false,
|
|
59
62
|
tags: [],
|
|
63
|
+
titlebarType: "injected",
|
|
60
64
|
url: "",
|
|
61
65
|
width: DEFAULT_WINDOW_WIDTH,
|
|
62
66
|
};
|
|
63
|
-
const
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
67
|
+
const convertIntentData = (intentArray) => intentArray.slice(0, -1).map(([name, displayName, contexts]) => {
|
|
68
|
+
return { name, displayName, contexts: contexts.split(",") };
|
|
69
|
+
});
|
|
70
|
+
const appTypeDisplayNameMap = {
|
|
71
|
+
web: "Web",
|
|
72
|
+
native: "Native",
|
|
73
|
+
assimilation: "Native",
|
|
74
|
+
citrix: "Virtual",
|
|
68
75
|
};
|
|
69
76
|
export const AppEditPage = ({ startingDisplayName = "", startingAppType = "web", startingWindowURL = "", startingNativePath = "", appData = defaultAppData, validateURL, removeApplicationFn = () => { }, cancelFn = () => { }, submitFn, addApp, isInboundInteropAuthorized, isOutboundInteropAuthorized, preloadAliasList = [], }) => {
|
|
70
77
|
var _a, _b;
|
|
@@ -74,6 +81,8 @@ export const AppEditPage = ({ startingDisplayName = "", startingAppType = "web",
|
|
|
74
81
|
const [nativePath, setNativePath] = useState(startingNativePath);
|
|
75
82
|
const [abstractPosition, setAbstractPosition] = useState(appData.abstractPosition);
|
|
76
83
|
const [addToWorkspace, setAddToWorkspace] = useState(appData.addToWorkspace);
|
|
84
|
+
const [enableAffinity, setEnableAffinity] = useState(appData.enableAffinity);
|
|
85
|
+
const [alias, setAlias] = useState(appData.alias);
|
|
77
86
|
const [allowAutoArrange, setAllowAutoArrange] = useState(appData.allowAutoArrange);
|
|
78
87
|
const [allowGrouping, setAllowGrouping] = useState(appData.allowGrouping);
|
|
79
88
|
const [allowMinimize, setAllowMinimize] = useState(appData.allowMinimize);
|
|
@@ -91,7 +100,6 @@ export const AppEditPage = ({ startingDisplayName = "", startingAppType = "web",
|
|
|
91
100
|
const [hideMaximize, setHideMaximize] = useState(appData.hideMaximize);
|
|
92
101
|
const [hideMinimize, setHideMinimize] = useState(appData.hideMinimize);
|
|
93
102
|
const [iconURL, setIconURL] = useState(appData.iconURL);
|
|
94
|
-
const [intents, setIntents] = useState(appData.intents);
|
|
95
103
|
const [isEvergreen, setIsEvergreen] = useState(appData.isEvergreen);
|
|
96
104
|
const [launchableByUser, setLaunchableByUser] = useState(appData.launchableByUser);
|
|
97
105
|
const [native_windowSpawnTimeout, setNative_windowSpawnTimeout] = useState(appData.native_windowSpawnTimeout);
|
|
@@ -104,19 +112,29 @@ export const AppEditPage = ({ startingDisplayName = "", startingAppType = "web",
|
|
|
104
112
|
const [security, setSecurity] = useState(appData.security);
|
|
105
113
|
const [singleton, setSingleton] = useState(appData.singleton);
|
|
106
114
|
const [spawnOnStartup, setSpawnOnStartup] = useState(appData.spawnOnStartup);
|
|
115
|
+
const [titlebarType, setTitlebarType] = useState(appData.titlebarType);
|
|
107
116
|
const [windowHeight, setWindowHeight] = useState(appData.height || DEFAULT_WINDOW_HEIGHT);
|
|
108
117
|
const [windowWidth, setWindowWidth] = useState(appData.width || DEFAULT_WINDOW_WIDTH);
|
|
109
118
|
const [selectConnectTrustAll, setSelectConnectTrustAll] = useState(!Array.isArray(appData.rules) || appData.rules.filter((rule) => "authorize" in rule).length === 0);
|
|
119
|
+
const [intentData, setIntentData] = useState((_a = appData.intents) === null || _a === void 0 ? void 0 : _a.map((intent) => { var _a, _b; return [intent.name, intent.displayName, (_b = (_a = intent.contexts) === null || _a === void 0 ? void 0 : _a.join(", ")) !== null && _b !== void 0 ? _b : ""]; }));
|
|
110
120
|
const isWindowURLValid = validateURL(windowURL);
|
|
111
121
|
const isHeightValid = !(typeof windowHeight !== "number" || windowHeight < MINIMUM_WINDOW_HEIGHT);
|
|
112
122
|
const isWidthValid = !(typeof windowWidth !== "number" || windowWidth < MINIMUM_WINDOW_WIDTH);
|
|
113
|
-
const
|
|
114
|
-
(
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
123
|
+
const isValidInput = () => {
|
|
124
|
+
if (!isWidthValid || !isHeightValid || displayName === undefined || displayName === "") {
|
|
125
|
+
return false;
|
|
126
|
+
}
|
|
127
|
+
if (currentAppType === "web") {
|
|
128
|
+
return isWindowURLValid && windowURL.length > 0;
|
|
129
|
+
}
|
|
130
|
+
else if (currentAppType === "Citrix") {
|
|
131
|
+
return true;
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
return !(!nativePath || (nativePath.length === 0 && validateFilename(VALID_APP_EXTENSIONS, nativePath)));
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
const disableSubmit = !isValidInput();
|
|
120
138
|
const clickSubmit = () => {
|
|
121
139
|
if (!(typeof windowWidth === "number" && typeof windowHeight === "number")) {
|
|
122
140
|
return;
|
|
@@ -132,10 +150,11 @@ export const AppEditPage = ({ startingDisplayName = "", startingAppType = "web",
|
|
|
132
150
|
description: componentDescription,
|
|
133
151
|
iconURL,
|
|
134
152
|
rules: selectConnectTrustAll ? [] : rules,
|
|
135
|
-
intents,
|
|
153
|
+
intents: convertIntentData(intentData),
|
|
136
154
|
persistPath,
|
|
137
155
|
persistURL,
|
|
138
156
|
addToWorkspace,
|
|
157
|
+
alias,
|
|
139
158
|
allowAutoArrange,
|
|
140
159
|
allowGrouping,
|
|
141
160
|
allowMinimize,
|
|
@@ -160,6 +179,7 @@ export const AppEditPage = ({ startingDisplayName = "", startingAppType = "web",
|
|
|
160
179
|
isEvergreen,
|
|
161
180
|
native_windowSpawnTimeout,
|
|
162
181
|
preloads,
|
|
182
|
+
titlebarType,
|
|
163
183
|
});
|
|
164
184
|
};
|
|
165
185
|
const submitOnEnter = (e) => {
|
|
@@ -200,9 +220,9 @@ export const AppEditPage = ({ startingDisplayName = "", startingAppType = "web",
|
|
|
200
220
|
React.createElement("tbody", null,
|
|
201
221
|
React.createElement("tr", null,
|
|
202
222
|
React.createElement("td", { className: "label-col" },
|
|
203
|
-
React.createElement("label", null, "
|
|
223
|
+
React.createElement("label", null, "App type")),
|
|
204
224
|
React.createElement("td", { className: "content-col" },
|
|
205
|
-
React.createElement("div", { className: "app-edit-type-field" }, currentAppType
|
|
225
|
+
React.createElement("div", { className: "app-edit-type-field" }, appTypeDisplayNameMap[currentAppType.toLowerCase()]))),
|
|
206
226
|
React.createElement("tr", null,
|
|
207
227
|
React.createElement("td", null,
|
|
208
228
|
React.createElement("label", { htmlFor: "app-name" }, "Name")),
|
|
@@ -210,6 +230,13 @@ export const AppEditPage = ({ startingDisplayName = "", startingAppType = "web",
|
|
|
210
230
|
React.createElement("input", { type: "text", id: "app-name", value: displayName, placeholder: "Untitled Application", onKeyDown: submitOnEnter, onChange: (e) => {
|
|
211
231
|
setDisplayName(e.target.value);
|
|
212
232
|
} }))),
|
|
233
|
+
currentAppType === "Citrix" && (React.createElement("tr", null,
|
|
234
|
+
React.createElement("td", null,
|
|
235
|
+
React.createElement("label", { htmlFor: "app-alias" }, "Virtual app name")),
|
|
236
|
+
React.createElement("td", null,
|
|
237
|
+
React.createElement("input", { type: "text", id: "app-alias", value: alias, placeholder: "Virtual application name", onKeyDown: submitOnEnter, onChange: (e) => {
|
|
238
|
+
setAlias(e.target.value);
|
|
239
|
+
} })))),
|
|
213
240
|
React.createElement("tr", null,
|
|
214
241
|
React.createElement("td", null,
|
|
215
242
|
React.createElement("label", { htmlFor: "app-icon-url" }, "Icon URL")),
|
|
@@ -217,28 +244,29 @@ export const AppEditPage = ({ startingDisplayName = "", startingAppType = "web",
|
|
|
217
244
|
React.createElement("input", { type: "text", id: "app-icon-url", value: iconURL, onKeyDown: submitOnEnter, onChange: (e) => {
|
|
218
245
|
setIconURL(e.target.value);
|
|
219
246
|
} }))),
|
|
220
|
-
currentAppType !== "web" && (React.createElement("tr", null,
|
|
247
|
+
currentAppType !== "web" && currentAppType !== "Citrix" && (React.createElement("tr", null,
|
|
221
248
|
React.createElement("td", null,
|
|
222
|
-
React.createElement("label",
|
|
249
|
+
React.createElement("label", { id: "api-access-label" }, "API access")),
|
|
223
250
|
React.createElement("td", null,
|
|
224
251
|
React.createElement("div", { className: "app-edit-type-field" },
|
|
225
|
-
React.createElement("
|
|
226
|
-
|
|
227
|
-
setCurrentAppType("native");
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
currentAppType === "web"
|
|
252
|
+
React.createElement("input", { type: "checkbox", name: "api-access", checked: currentAppType === "native", onKeyDown: (e) => {
|
|
253
|
+
if (e.key === " ") {
|
|
254
|
+
setCurrentAppType(currentAppType === "native" ? "assimilation" : "native");
|
|
255
|
+
}
|
|
256
|
+
else {
|
|
257
|
+
submitOnEnter(e);
|
|
258
|
+
}
|
|
259
|
+
}, onChange: () => {
|
|
260
|
+
setCurrentAppType(currentAppType === "native" ? "assimilation" : "native");
|
|
261
|
+
} }))))),
|
|
262
|
+
currentAppType === "web" && (React.createElement("tr", null,
|
|
236
263
|
React.createElement("td", null,
|
|
237
264
|
React.createElement("label", { htmlFor: "app-url" }, "App URL")),
|
|
238
265
|
React.createElement("td", null,
|
|
239
266
|
React.createElement("input", { type: "text", id: "app-url", placeholder: "https://...", value: windowURL, "aria-invalid": !isWindowURLValid, onKeyDown: submitOnEnter, onChange: (e) => {
|
|
240
267
|
setWindowURL(e.target.value);
|
|
241
|
-
} }))))
|
|
268
|
+
} })))),
|
|
269
|
+
(currentAppType === "native" || currentAppType === "assimilation") && (React.createElement("tr", null,
|
|
242
270
|
React.createElement("td", null,
|
|
243
271
|
React.createElement("label", null, "File path")),
|
|
244
272
|
React.createElement("td", null,
|
|
@@ -264,39 +292,33 @@ export const AppEditPage = ({ startingDisplayName = "", startingAppType = "web",
|
|
|
264
292
|
}, value: componentDescription })))))),
|
|
265
293
|
React.createElement("div", { className: "app-edit-field" },
|
|
266
294
|
React.createElement(Accordion, { id: "config", size: "medium", label: "Optional config settings" },
|
|
267
|
-
React.createElement(Accordion, { id: "select-connect", label: "SelectConnect", summary: React.createElement(React.Fragment, null,
|
|
295
|
+
currentAppType !== "assimilation" && (React.createElement(Accordion, { id: "select-connect", label: "SelectConnect", summary: React.createElement(React.Fragment, null,
|
|
268
296
|
"Specify trust relationships.",
|
|
269
297
|
" ",
|
|
270
|
-
React.createElement(
|
|
271
|
-
e.preventDefault();
|
|
272
|
-
openLink("https://documentation.finsemble.com/tutorial-ControllingInformationFlow.html");
|
|
273
|
-
} }, "Learn more")) },
|
|
298
|
+
React.createElement(FinsembleLink, { url: "https://documentation.finsemble.com/tutorial-ControllingInformationFlow.html", text: "Learn more" })) },
|
|
274
299
|
React.createElement("div", { className: "app-edit-field" },
|
|
275
300
|
React.createElement("table", { role: "presentation", className: "accordion-edit-block" },
|
|
276
301
|
React.createElement("tbody", null,
|
|
277
302
|
React.createElement("tr", null,
|
|
278
|
-
React.createElement("td", { rowSpan: 2, className: "label-col" }, "Interop trust rule"),
|
|
303
|
+
React.createElement("td", { rowSpan: 2, className: "label-col", id: "interop-label" }, "Interop trust rule"),
|
|
279
304
|
React.createElement("td", { className: "content-col" },
|
|
280
305
|
React.createElement("label", null,
|
|
281
|
-
React.createElement("input", { type: "radio", name: "interop-trust", value: "true", checked: selectConnectTrustAll, onChange: () => {
|
|
306
|
+
React.createElement("input", { type: "radio", name: "interop-trust", "aria-labelledby": "interop-label interop-label-all", value: "true", "aria-posinset": 1, "aria-setsize": 2, checked: selectConnectTrustAll, onChange: () => {
|
|
282
307
|
setSelectConnectTrustAll(true);
|
|
283
308
|
} }),
|
|
284
|
-
"Trust all apps"),
|
|
309
|
+
React.createElement("span", { id: "interop-label-all" }, "Trust all apps")),
|
|
285
310
|
React.createElement("label", null,
|
|
286
|
-
React.createElement("input", { type: "radio", name: "interop-trust", value: "false", checked: !selectConnectTrustAll, onChange: () => {
|
|
311
|
+
React.createElement("input", { type: "radio", name: "interop-trust", "aria-labelledby": "interop-label interop-label-selected", value: "false", "aria-posinset": 2, "aria-setsize": 2, checked: !selectConnectTrustAll, onChange: () => {
|
|
287
312
|
setSelectConnectTrustAll(false);
|
|
288
313
|
} }),
|
|
289
|
-
"Trust selected apps"))),
|
|
314
|
+
React.createElement("span", { id: "interop-label-selected" }, "Trust selected apps")))),
|
|
290
315
|
!selectConnectTrustAll && (React.createElement("tr", null,
|
|
291
316
|
React.createElement("td", null,
|
|
292
|
-
React.createElement(AppEditAccess, { appName: displayName, rules: (
|
|
293
|
-
React.createElement(Accordion, { id: "preloads", label: "Preloads", summary: React.createElement(React.Fragment, null,
|
|
317
|
+
React.createElement(AppEditAccess, { appName: displayName, rules: (_b = appData.rules) !== null && _b !== void 0 ? _b : [], onChange: (newRules) => setRules(newRules), isInboundInteropAuthorized: isInboundInteropAuthorized, isOutboundInteropAuthorized: isOutboundInteropAuthorized, addApp: addApp }))))))))),
|
|
318
|
+
currentAppType === "web" && (React.createElement(Accordion, { id: "preloads", label: "Preloads", summary: React.createElement(React.Fragment, null,
|
|
294
319
|
"Add functionality by running a script that is loaded into an app window before the actual content of the window is loaded.",
|
|
295
320
|
" ",
|
|
296
|
-
React.createElement(
|
|
297
|
-
e.preventDefault();
|
|
298
|
-
openLink("https://documentation.finsemble.com/tutorial-Preloads.html");
|
|
299
|
-
} }, "Learn more")) },
|
|
321
|
+
React.createElement(FinsembleLink, { url: "https://documentation.finsemble.com/tutorial-Preloads.html", text: "Learn more" })) },
|
|
300
322
|
React.createElement("div", { className: "app-edit-field" },
|
|
301
323
|
React.createElement("table", { role: "presentation", className: "accordion-edit-block" },
|
|
302
324
|
React.createElement("tbody", null,
|
|
@@ -304,8 +326,8 @@ export const AppEditPage = ({ startingDisplayName = "", startingAppType = "web",
|
|
|
304
326
|
React.createElement("td", null,
|
|
305
327
|
React.createElement(FinsembleSelect, { options: preloadAliasList, selected: appData.preloads, updateCallback: (selectedValues) => {
|
|
306
328
|
setPreloads(selectedValues);
|
|
307
|
-
} }))))))),
|
|
308
|
-
React.createElement(Accordion, { id: "window", label: "Window position and dimensions", summary: "Define the window properties when the app launches." },
|
|
329
|
+
} })))))))),
|
|
330
|
+
currentAppType !== "Citrix" && (React.createElement(Accordion, { id: "window", label: "Window position and dimensions", summary: "Define the window properties when the app launches." },
|
|
309
331
|
React.createElement("div", { className: "app-edit-field" },
|
|
310
332
|
React.createElement("table", { role: "presentation", className: "accordion-edit-block" },
|
|
311
333
|
React.createElement("tbody", null,
|
|
@@ -335,12 +357,12 @@ export const AppEditPage = ({ startingDisplayName = "", startingAppType = "web",
|
|
|
335
357
|
React.createElement("td", { className: "position-entry" },
|
|
336
358
|
React.createElement(DefaultDropdownButton, { allowEmpty: false, caretLocation: "right", defaultSelection: positionButtonOptions[abstractPosition], buttonOptions: positionButtonOptions })))),
|
|
337
359
|
React.createElement("tr", null,
|
|
338
|
-
React.createElement("td",
|
|
360
|
+
React.createElement("td", { id: "opacity-label" }, "Opacity"),
|
|
339
361
|
React.createElement("td", null,
|
|
340
|
-
React.createElement("input", { type: "range", className: "app-edit-range", value: opacity, min: 0, step: 0.01, max: 1, onChange: (e) => {
|
|
362
|
+
React.createElement("input", { type: "range", className: "app-edit-range", "aria-labelledby": "opacity-label", value: opacity, min: 0, step: 0.01, max: 1, onChange: (e) => {
|
|
341
363
|
setOpacity(Number(e.target.value));
|
|
342
364
|
} }),
|
|
343
|
-
React.createElement("input", { id: "app-opacity", type: "text", value: Math.floor(opacity * 100), onChange: (e) => {
|
|
365
|
+
React.createElement("input", { id: "app-opacity", type: "text", "aria-labelledby": "opacity-label", value: Math.floor(opacity * 100), onChange: (e) => {
|
|
344
366
|
const num = +e.target.value;
|
|
345
367
|
if (isNaN(num)) {
|
|
346
368
|
return;
|
|
@@ -349,8 +371,8 @@ export const AppEditPage = ({ startingDisplayName = "", startingAppType = "web",
|
|
|
349
371
|
return;
|
|
350
372
|
}
|
|
351
373
|
setOpacity(num / 100);
|
|
352
|
-
}, style: { maxWidth: "30px" } }))))))),
|
|
353
|
-
React.createElement(Accordion, { id: "window-behavior", label: "Window behavior", summary: "Specify how this window will behave with respect to other windows in the workspace." },
|
|
374
|
+
}, style: { maxWidth: "30px" } })))))))),
|
|
375
|
+
currentAppType === "web" && (React.createElement(Accordion, { id: "window-behavior", label: "Window behavior", summary: "Specify how this window will behave with respect to other windows in the workspace." },
|
|
354
376
|
React.createElement("div", { className: "app-edit-field" },
|
|
355
377
|
React.createElement("table", { role: "presentation", className: "accordion-edit-block" },
|
|
356
378
|
React.createElement("tbody", null,
|
|
@@ -383,114 +405,122 @@ export const AppEditPage = ({ startingDisplayName = "", startingAppType = "web",
|
|
|
383
405
|
React.createElement("tr", null,
|
|
384
406
|
React.createElement("td", { style: { width: "120px" } }, "Title bar"),
|
|
385
407
|
React.createElement("td", null,
|
|
386
|
-
React.createElement(Checkbox, { label: "
|
|
408
|
+
React.createElement(Checkbox, { label: "Enable title bar", checked: enableTitleBar, onClick: () => {
|
|
387
409
|
setEnableTitleBar(!enableTitleBar);
|
|
388
410
|
} }))),
|
|
389
|
-
React.createElement("tr", null,
|
|
411
|
+
enableTitleBar && (React.createElement("tr", null,
|
|
412
|
+
React.createElement("td", null),
|
|
390
413
|
React.createElement("td", null,
|
|
414
|
+
React.createElement(Checkbox, { label: "Inject title bar into app container", checked: titlebarType === "injected", onClick: () => {
|
|
415
|
+
setTitlebarType(titlebarType === "injected" ? "browserview" : "injected");
|
|
416
|
+
} })),
|
|
417
|
+
React.createElement("td", null,
|
|
418
|
+
React.createElement(Tooltip, null, "Injected title bars share the same process as the associated app. This can make the titlebar more performant for lightweight apps, but may slow down heavier apps.")))),
|
|
419
|
+
React.createElement("tr", null,
|
|
420
|
+
React.createElement("td", { id: "aot-label" },
|
|
391
421
|
React.createElement(FinsembleIcon, { icon: "alwaysOnTop" }),
|
|
392
422
|
" Always on top"),
|
|
393
423
|
React.createElement("td", null,
|
|
394
424
|
React.createElement("label", null,
|
|
395
|
-
React.createElement("input", { type: "radio", name: "alwaysOnTop", checked: aot && !enableAOT, onChange: () => {
|
|
425
|
+
React.createElement("input", { type: "radio", name: "alwaysOnTop", "aria-labelledby": "aot-label aot-label-enable", checked: aot && !enableAOT, "aria-posinset": 1, "aria-setsize": 3, onChange: () => {
|
|
396
426
|
setAot(true);
|
|
397
427
|
setEnableAOT(false);
|
|
398
428
|
} }),
|
|
399
|
-
"Enable"),
|
|
429
|
+
React.createElement("span", { id: "aot-label-enable" }, "Enable")),
|
|
400
430
|
React.createElement("label", null,
|
|
401
|
-
React.createElement("input", { type: "radio", name: "alwaysOnTop", checked: !aot && enableAOT, onChange: () => {
|
|
431
|
+
React.createElement("input", { type: "radio", name: "alwaysOnTop", "aria-labelledby": "aot-label aot-label-show", checked: !aot && enableAOT, "aria-posinset": 2, "aria-setsize": 3, onChange: () => {
|
|
402
432
|
setAot(false);
|
|
403
433
|
setEnableAOT(true);
|
|
404
434
|
} }),
|
|
405
|
-
"Show in titlebar"),
|
|
435
|
+
React.createElement("span", { id: "aot-label-show" }, "Show in titlebar")),
|
|
406
436
|
React.createElement("label", { style: { paddingLeft: "13.53px" } },
|
|
407
|
-
React.createElement("input", { type: "radio", name: "alwaysOnTop", checked: !aot && !enableAOT, onChange: () => {
|
|
437
|
+
React.createElement("input", { type: "radio", name: "alwaysOnTop", "aria-labelledby": "aot-label aot-label-disable", checked: !aot && !enableAOT, "aria-posinset": 3, "aria-setsize": 3, onChange: () => {
|
|
408
438
|
setAot(false);
|
|
409
439
|
setEnableAOT(false);
|
|
410
440
|
} }),
|
|
411
|
-
"Disable"))),
|
|
441
|
+
React.createElement("span", { id: "aot-label-disable" }, "Disable")))),
|
|
412
442
|
React.createElement("tr", null,
|
|
413
|
-
React.createElement("td",
|
|
443
|
+
React.createElement("td", { id: "minimize-label" },
|
|
414
444
|
React.createElement(FinsembleIcon, { icon: "minimize" }),
|
|
415
445
|
" Minimize"),
|
|
416
446
|
React.createElement("td", null,
|
|
417
447
|
React.createElement("label", null,
|
|
418
|
-
React.createElement("input", { type: "radio", name: "minimize", checked: allowMinimize && !hideMinimize, onChange: () => {
|
|
448
|
+
React.createElement("input", { type: "radio", name: "minimize", "aria-labelledby": "minimize-label minimize-label-0", checked: allowMinimize && !hideMinimize, "aria-posinset": 1, "aria-setsize": 3, onChange: () => {
|
|
419
449
|
setAllowMinimize(true);
|
|
420
450
|
setHideMinimize(false);
|
|
421
451
|
} }),
|
|
422
|
-
"Enable"),
|
|
452
|
+
React.createElement("span", { id: "minimize-label-0" }, "Enable")),
|
|
423
453
|
React.createElement("label", null,
|
|
424
|
-
React.createElement("input", { type: "radio", name: "minimize", checked: allowMinimize && hideMinimize, onChange: () => {
|
|
454
|
+
React.createElement("input", { type: "radio", name: "minimize", "aria-labelledby": "minimize-label minimize-label-1", checked: allowMinimize && hideMinimize, "aria-posinset": 2, "aria-setsize": 3, onChange: () => {
|
|
425
455
|
setAllowMinimize(true);
|
|
426
456
|
setHideMinimize(true);
|
|
427
457
|
} }),
|
|
428
|
-
"Hide from titlebar"),
|
|
458
|
+
React.createElement("span", { id: "minimize-label-1" }, "Hide from titlebar")),
|
|
429
459
|
React.createElement("label", null,
|
|
430
|
-
React.createElement("input", { type: "radio", name: "minimize", checked: !allowMinimize, onChange: () => {
|
|
460
|
+
React.createElement("input", { type: "radio", name: "minimize", "aria-labelledby": "minimize-label minimize-label-2", checked: !allowMinimize, "aria-posinset": 3, "aria-setsize": 3, onChange: () => {
|
|
431
461
|
setAllowMinimize(false);
|
|
432
462
|
setHideMinimize(true);
|
|
433
463
|
} }),
|
|
434
|
-
"Disable"))),
|
|
464
|
+
React.createElement("span", { id: "minimize-label-2" }, "Disable")))),
|
|
435
465
|
React.createElement("tr", null,
|
|
436
|
-
React.createElement("td",
|
|
466
|
+
React.createElement("td", { id: "maximize-label" },
|
|
437
467
|
React.createElement(FinsembleIcon, { icon: "maximize" }),
|
|
438
468
|
" Maximize"),
|
|
439
469
|
React.createElement("td", null,
|
|
440
470
|
React.createElement("label", null,
|
|
441
|
-
React.createElement("input", { type: "radio", name: "maximize", checked: allowMaximize && !hideMaximize, onChange: () => {
|
|
471
|
+
React.createElement("input", { type: "radio", name: "maximize", "aria-labelledby": "maximize-label maximize-label-3", checked: allowMaximize && !hideMaximize, "aria-posinset": 1, "aria-setsize": 3, onChange: () => {
|
|
442
472
|
setAllowMaximize(true);
|
|
443
473
|
setHideMaximize(false);
|
|
444
474
|
} }),
|
|
445
|
-
"Enable"),
|
|
475
|
+
React.createElement("span", { id: "maximize-label-3" }, "Enable")),
|
|
446
476
|
React.createElement("label", null,
|
|
447
|
-
React.createElement("input", { type: "radio", name: "maximize", checked: allowMaximize && hideMaximize, onChange: () => {
|
|
477
|
+
React.createElement("input", { type: "radio", name: "maximize", "aria-labelledby": "maximize-label maximize-label-4", checked: allowMaximize && hideMaximize, "aria-posinset": 2, "aria-setsize": 3, onChange: () => {
|
|
448
478
|
setAllowMaximize(true);
|
|
449
479
|
setHideMaximize(true);
|
|
450
480
|
} }),
|
|
451
|
-
"Hide from titlebar"),
|
|
481
|
+
React.createElement("span", { id: "maximize-label-4" }, "Hide from titlebar")),
|
|
452
482
|
React.createElement("label", null,
|
|
453
|
-
React.createElement("input", { type: "radio", name: "maximize", checked: !allowMaximize, onChange: () => {
|
|
483
|
+
React.createElement("input", { type: "radio", name: "maximize", "aria-labelledby": "maximize-label maximize-label-5", checked: !allowMaximize, "aria-posinset": 3, "aria-setsize": 3, onChange: () => {
|
|
454
484
|
setAllowMaximize(false);
|
|
455
485
|
setHideMaximize(true);
|
|
456
486
|
} }),
|
|
457
|
-
"Disable"))),
|
|
487
|
+
React.createElement("span", { id: "maximize-label-5" }, "Disable")))),
|
|
458
488
|
React.createElement("tr", null,
|
|
459
489
|
React.createElement("td", null,
|
|
460
490
|
React.createElement(FinsembleIcon, { icon: "close" }),
|
|
461
491
|
" Close"),
|
|
462
492
|
React.createElement("td", null,
|
|
463
493
|
React.createElement("label", null,
|
|
464
|
-
React.createElement("input", { type: "radio", name: "close", checked: !hideClose, onChange: () => {
|
|
494
|
+
React.createElement("input", { type: "radio", name: "close", "aria-labelledby": "close-label close-label-enable", checked: !hideClose, "aria-posinset": 1, "aria-setsize": 2, onChange: () => {
|
|
465
495
|
setHideClose(false);
|
|
466
496
|
} }),
|
|
467
|
-
"Enable"),
|
|
497
|
+
React.createElement("span", { id: "close-label-enable" }, "Enable")),
|
|
468
498
|
React.createElement("label", null,
|
|
469
|
-
React.createElement("input", { type: "radio", name: "close", checked: hideClose, onChange: () => {
|
|
499
|
+
React.createElement("input", { type: "radio", name: "close", "aria-labelledby": "close-label close-label-hide", checked: hideClose, "aria-posinset": 2, "aria-setsize": 2, onChange: () => {
|
|
470
500
|
setHideClose(true);
|
|
471
501
|
} }),
|
|
472
|
-
"Hide from titlebar"))))))),
|
|
473
|
-
React.createElement(Accordion, { id: "interop", label: "Interop", summary: "Define how to link an app to communication channels." },
|
|
502
|
+
React.createElement("span", { id: "close-label-hide" }, "Hide from titlebar"))))))))),
|
|
503
|
+
currentAppType !== "assimilation" && (React.createElement(Accordion, { id: "interop", label: "Interop", summary: "Define how to link an app to communication channels." },
|
|
474
504
|
React.createElement("div", { className: "app-edit-field" },
|
|
475
505
|
React.createElement("table", { role: "presentation", className: "accordion-edit-block" },
|
|
476
506
|
React.createElement("tbody", null,
|
|
477
507
|
React.createElement("tr", null,
|
|
478
508
|
React.createElement("td", { className: "label-col" },
|
|
479
|
-
React.createElement("label", {
|
|
509
|
+
React.createElement("label", { id: "linker-label" },
|
|
480
510
|
React.createElement(FinsembleIcon, { icon: "linker" }),
|
|
481
511
|
" Display linker")),
|
|
482
512
|
React.createElement("td", { className: "content-col" },
|
|
483
513
|
React.createElement("fieldset", { className: "interop-connection-fieldset" },
|
|
484
514
|
React.createElement("div", { className: "app-size-field" },
|
|
485
|
-
React.createElement("input", { className: "app-size-input", type: "radio", name: "linker", id: "interop-connection-auto", value: "auto", checked: autoConnect, onChange: () => {
|
|
515
|
+
React.createElement("input", { className: "app-size-input", type: "radio", name: "linker", "aria-labelledby": "linker-label linker-label-always", id: "interop-connection-auto", value: "auto", "aria-posinset": 1, "aria-setsize": 2, checked: autoConnect, onChange: () => {
|
|
486
516
|
setAutoConnect(true);
|
|
487
517
|
} }),
|
|
488
|
-
React.createElement("label", {
|
|
518
|
+
React.createElement("label", { id: "linker-label-always" }, "Always")),
|
|
489
519
|
React.createElement("div", { className: "app-size-field" },
|
|
490
|
-
React.createElement("input", { className: "app-size-input", type: "radio", name: "linker", id: "interop-connection-fdc3", value: "fdc3", checked: !autoConnect, onChange: () => {
|
|
520
|
+
React.createElement("input", { className: "app-size-input", type: "radio", name: "linker", "aria-labelledby": "linker-label linker-label-fdc3", id: "interop-connection-fdc3", value: "fdc3", "aria-posinset": 2, "aria-setsize": 2, checked: !autoConnect, onChange: () => {
|
|
491
521
|
setAutoConnect(false);
|
|
492
522
|
} }),
|
|
493
|
-
React.createElement("label", {
|
|
523
|
+
React.createElement("label", { id: "linker-label-fdc3" }, "On FDC3 API use")))),
|
|
494
524
|
React.createElement("td", null,
|
|
495
525
|
React.createElement(Tooltip, { type: "info" }, "Show the linker menu if you want the user to manually add your app to a channel.")))))),
|
|
496
526
|
React.createElement(InputTable, { tableHeaders: [
|
|
@@ -503,42 +533,24 @@ export const AppEditPage = ({ startingDisplayName = "", startingAppType = "web",
|
|
|
503
533
|
React.createElement(React.Fragment, null,
|
|
504
534
|
"Contexts",
|
|
505
535
|
React.createElement(Tooltip, null, "The FDC3 context to listen for.")),
|
|
506
|
-
],
|
|
507
|
-
var _a;
|
|
508
|
-
return [
|
|
509
|
-
intent.name,
|
|
510
|
-
intent.displayName,
|
|
511
|
-
(_a = intent.contexts) === null || _a === void 0 ? void 0 : _a.join(", "),
|
|
512
|
-
];
|
|
513
|
-
}), onUpdate: (data) => {
|
|
514
|
-
const newIntents = data
|
|
515
|
-
.filter((row) => row.join("").length > 0)
|
|
516
|
-
.map((row) => {
|
|
517
|
-
return {
|
|
518
|
-
name: row[0].trim(),
|
|
519
|
-
displayName: row[1].trim(),
|
|
520
|
-
contexts: row[2].split(",").map((str) => str.trim()),
|
|
521
|
-
};
|
|
522
|
-
});
|
|
523
|
-
setIntents(newIntents);
|
|
524
|
-
} })),
|
|
536
|
+
], data: intentData, setData: setIntentData }))),
|
|
525
537
|
React.createElement(Accordion, { id: "component", label: "Component behavior", summary: "Specify additional properties for the component." },
|
|
526
538
|
React.createElement("div", { className: "app-edit-field" },
|
|
527
539
|
React.createElement("table", { role: "presentation", className: "accordion-edit-block" },
|
|
528
540
|
React.createElement("tbody", null,
|
|
529
541
|
React.createElement("tr", null,
|
|
530
|
-
React.createElement("td", { className: "label-col" }, "Set security"),
|
|
542
|
+
React.createElement("td", { className: "label-col", id: "security-label" }, "Set security"),
|
|
531
543
|
React.createElement("td", { className: "content-col" },
|
|
532
544
|
React.createElement("label", null,
|
|
533
|
-
React.createElement("input", { type: "radio", name: "security", value: "trusted", checked: security === "trusted", onChange: () => {
|
|
545
|
+
React.createElement("input", { type: "radio", name: "security", "aria-labelledby": "security-label security-label-trusted", value: "trusted", "aria-posinset": 1, "aria-setsize": 2, checked: security === "trusted", onChange: () => {
|
|
534
546
|
setSecurity("trusted");
|
|
535
547
|
} }),
|
|
536
|
-
"Trusted"),
|
|
548
|
+
React.createElement("span", { id: "security-label-trusted" }, "Trusted")),
|
|
537
549
|
React.createElement("label", null,
|
|
538
|
-
React.createElement("input", { type: "radio", name: "security", value: "untrusted", checked: security === "untrusted", onChange: () => {
|
|
550
|
+
React.createElement("input", { type: "radio", name: "security", "aria-labelledby": "security-label security-label-untrusted", value: "untrusted", "aria-posinset": 2, "aria-setsize": 2, checked: security === "untrusted", onChange: () => {
|
|
539
551
|
setSecurity("untrusted");
|
|
540
552
|
} }),
|
|
541
|
-
"Untrusted"))),
|
|
553
|
+
React.createElement("span", { id: "security-label-untrusted" }, "Untrusted")))),
|
|
542
554
|
currentAppType === "native" && (React.createElement("tr", null,
|
|
543
555
|
React.createElement("td", null, "Launch timeout"),
|
|
544
556
|
React.createElement("td", null,
|
|
@@ -550,7 +562,7 @@ export const AppEditPage = ({ startingDisplayName = "", startingAppType = "web",
|
|
|
550
562
|
setNative_windowSpawnTimeout(num);
|
|
551
563
|
} })))),
|
|
552
564
|
React.createElement("tr", null,
|
|
553
|
-
React.createElement("td", { rowSpan:
|
|
565
|
+
React.createElement("td", { rowSpan: 6 }, "Options"),
|
|
554
566
|
React.createElement("td", null,
|
|
555
567
|
React.createElement(Checkbox, { label: "Only one instance", checked: singleton, onClick: () => {
|
|
556
568
|
setSingleton(!singleton);
|
|
@@ -571,14 +583,27 @@ export const AppEditPage = ({ startingDisplayName = "", startingAppType = "web",
|
|
|
571
583
|
} })),
|
|
572
584
|
React.createElement("td", null,
|
|
573
585
|
React.createElement(Tooltip, { type: "info" }, "Add the component to the Apps menu on the Finsemble toolbar."))),
|
|
574
|
-
React.createElement("tr", null,
|
|
586
|
+
currentAppType !== "Citrix" && (React.createElement("tr", null,
|
|
575
587
|
React.createElement("td", null,
|
|
576
588
|
React.createElement(Checkbox, { label: "Persist across workspaces", checked: isEvergreen, onClick: () => {
|
|
577
589
|
setIsEvergreen(!isEvergreen);
|
|
578
590
|
} })),
|
|
579
591
|
React.createElement("td", null,
|
|
580
|
-
React.createElement(Tooltip, { type: "info" }, "Don\u2019t shut down this app when you leave the workspace. Useful for apps that take a long time to load."))))
|
|
581
|
-
|
|
592
|
+
React.createElement(Tooltip, { type: "info" }, "Don\u2019t shut down this app when you leave the workspace. Useful for apps that take a long time to load.")))),
|
|
593
|
+
React.createElement("tr", null,
|
|
594
|
+
React.createElement("td", { style: { paddingBottom: "0px" } },
|
|
595
|
+
React.createElement(Checkbox, { label: "Process affinity", checked: enableAffinity, onClick: () => {
|
|
596
|
+
setEnableAffinity(!enableAffinity);
|
|
597
|
+
} })),
|
|
598
|
+
React.createElement("td", { style: { paddingBottom: "0px" } },
|
|
599
|
+
React.createElement(Tooltip, { type: "info" }, "Group the render processes of your app with render processes of other windows to reduce the combined memory usage of all the grouped apps. Disable the grouping if your app requires significant CPU resources."))),
|
|
600
|
+
React.createElement("tr", null,
|
|
601
|
+
React.createElement("td", null,
|
|
602
|
+
"More about",
|
|
603
|
+
" ",
|
|
604
|
+
React.createElement(FinsembleLink, { text: "affinity and process management", url: "https://documentation.finsemble.com/tutorial-processManagement.html" }),
|
|
605
|
+
".")))))),
|
|
606
|
+
currentAppType !== "Citrix" && (React.createElement(Accordion, { id: "workspace", label: "Workspace", summary: "Define how the app relates to the workspace." },
|
|
582
607
|
React.createElement("div", { className: "app-edit-field" },
|
|
583
608
|
React.createElement("table", { role: "presentation", className: "accordion-edit-block" },
|
|
584
609
|
React.createElement("tbody", null,
|
|
@@ -592,17 +617,17 @@ export const AppEditPage = ({ startingDisplayName = "", startingAppType = "web",
|
|
|
592
617
|
React.createElement(Tooltip, { type: "info" }, "Apps are not added to the workspace unless they were opened from the Launcher menu or the resolver. Specify whether you want this app added to the workspace if it\u2019s launched in any other way, such as by a user or another app."))),
|
|
593
618
|
currentAppType === "web" ? (React.createElement("tr", null,
|
|
594
619
|
React.createElement("td", { id: "persist-url" },
|
|
595
|
-
React.createElement(Checkbox, { label: "Persist the
|
|
620
|
+
React.createElement(Checkbox, { label: "Persist the URL", checked: persistURL, onClick: () => {
|
|
596
621
|
setPersistURL(!persistURL);
|
|
597
622
|
} })),
|
|
598
623
|
React.createElement("td", null,
|
|
599
624
|
React.createElement(Tooltip, { type: "info" }, "Normally, the app will be launched from its default URL. If a user navigated elsewhere, you can specify that you want to preserve that new URL instead.")))) : (React.createElement("tr", null,
|
|
600
625
|
React.createElement("td", { id: "persist-path" },
|
|
601
|
-
React.createElement(Checkbox, { label: "Persist the
|
|
626
|
+
React.createElement(Checkbox, { label: "Persist the path", checked: persistPath, onClick: () => {
|
|
602
627
|
setPersistPath(!persistPath);
|
|
603
628
|
} })),
|
|
604
629
|
React.createElement("td", null,
|
|
605
|
-
React.createElement(Tooltip, { type: "info" }, "Normally, the app will be launched from its default path. If a user changed that path, you can specify that you want to launch the app from that new location.")))))))))),
|
|
630
|
+
React.createElement(Tooltip, { type: "info" }, "Normally, the app will be launched from its default path. If a user changed that path, you can specify that you want to launch the app from that new location."))))))))))),
|
|
606
631
|
React.createElement("div", { className: "app-edit-actions" },
|
|
607
632
|
React.createElement("div", null,
|
|
608
633
|
React.createElement(Button, { fashion: "danger", text: "Remove app", onClick: (e) => {
|