@finsemble/finsemble-ui 7.2.0 → 7.3.0

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.
Files changed (126) hide show
  1. package/package.json +14 -14
  2. package/react/assets/css/button.css +34 -6
  3. package/react/assets/css/contextMenu.css +118 -0
  4. package/react/assets/css/notificationsCenter.css +3 -214
  5. package/react/assets/css/userPreferences.css +2 -2
  6. package/react/components/common/Checkbox.d.ts +3 -2
  7. package/react/components/common/Checkbox.js +5 -21
  8. package/react/components/common/Checkbox.js.map +1 -1
  9. package/react/components/common/ContextMenu.d.ts +13 -0
  10. package/react/components/common/ContextMenu.js +69 -0
  11. package/react/components/common/ContextMenu.js.map +1 -0
  12. package/react/components/common/DropdownButton.d.ts +0 -4
  13. package/react/components/common/DropdownButton.js +39 -10
  14. package/react/components/common/DropdownButton.js.map +1 -1
  15. package/react/components/common/css/FinsembleToggle.css +0 -1
  16. package/react/components/common/css/application-edit-page.css +3 -4
  17. package/react/components/common/css/checkbox.css +60 -21
  18. package/react/components/common/css/icon.css +2 -2
  19. package/react/components/common/css/toggle.css +4 -1
  20. package/react/components/common/helpers.js +9 -0
  21. package/react/components/common/helpers.js.map +1 -1
  22. package/react/components/common/stories/ContextMenu.stories.d.ts +38 -0
  23. package/react/components/common/stories/ContextMenu.stories.js +70 -0
  24. package/react/components/common/stories/ContextMenu.stories.js.map +1 -0
  25. package/react/components/common/stories/DropdownButton.stories.d.ts +3 -3
  26. package/react/components/common/stories/DropdownButton.stories.js +11 -10
  27. package/react/components/common/stories/DropdownButton.stories.js.map +1 -1
  28. package/react/components/common/tests/Checkbox.spec.js +10 -12
  29. package/react/components/common/tests/Checkbox.spec.js.map +1 -1
  30. package/react/components/common/tests/ContextMenu.spec.d.ts +1 -0
  31. package/react/components/common/tests/ContextMenu.spec.js +108 -0
  32. package/react/components/common/tests/ContextMenu.spec.js.map +1 -0
  33. package/react/components/common/tests/DropdownButton.spec.d.ts +1 -0
  34. package/react/components/common/tests/DropdownButton.spec.js +32 -0
  35. package/react/components/common/tests/DropdownButton.spec.js.map +1 -0
  36. package/react/components/fdc3Resolver/ResolverDialog.js +5 -1
  37. package/react/components/fdc3Resolver/ResolverDialog.js.map +1 -1
  38. package/react/components/notifications/components/drawer/DrawerHeader.js +3 -3
  39. package/react/components/notifications/components/drawer/DrawerHeader.js.map +1 -1
  40. package/react/components/notifications/components/notificationsCenter/NotificationsCenter.js +1 -0
  41. package/react/components/notifications/components/notificationsCenter/NotificationsCenter.js.map +1 -1
  42. package/react/components/notifications/components/notificationsToasts/NotificationsToasts.js +2 -0
  43. package/react/components/notifications/components/notificationsToasts/NotificationsToasts.js.map +1 -1
  44. package/react/components/notifications/components/shared/IconButton.js +2 -1
  45. package/react/components/notifications/components/shared/IconButton.js.map +1 -1
  46. package/react/components/notifications/components/shared/NotificationCardShell.d.ts +2 -0
  47. package/react/components/notifications/components/shared/NotificationCardShell.js +55 -49
  48. package/react/components/notifications/components/shared/NotificationCardShell.js.map +1 -1
  49. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyShell.js +2 -3
  50. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyShell.js.map +1 -1
  51. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderControls.d.ts +4 -0
  52. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderControls.js +92 -13
  53. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderControls.js.map +1 -1
  54. package/react/components/notifications/components/views/ListView.js +5 -9
  55. package/react/components/notifications/components/views/ListView.js.map +1 -1
  56. package/react/components/notifications/css/notification-card.css +165 -0
  57. package/react/components/notifications/stories/NotificationCardShell.stories.d.ts +14 -0
  58. package/react/components/notifications/stories/NotificationCardShell.stories.js +108 -0
  59. package/react/components/notifications/stories/NotificationCardShell.stories.js.map +1 -0
  60. package/react/components/notifications/tests/NotificationCardShell.spec.d.ts +1 -0
  61. package/react/components/notifications/tests/NotificationCardShell.spec.js +91 -0
  62. package/react/components/notifications/tests/NotificationCardShell.spec.js.map +1 -0
  63. package/react/components/notifications/types.d.ts +4 -2
  64. package/react/components/notifications/types.js.map +1 -1
  65. package/react/components/sdd/AddApp.d.ts +3 -3
  66. package/react/components/sdd/AddApp.js +29 -21
  67. package/react/components/sdd/AddApp.js.map +1 -1
  68. package/react/components/sdd/AppEditPage.js +1 -8
  69. package/react/components/sdd/AppEditPage.js.map +1 -1
  70. package/react/components/sdd/Appearance.css +2 -1
  71. package/react/components/sdd/Applications.js +7 -7
  72. package/react/components/sdd/Applications.js.map +1 -1
  73. package/react/components/sdd/Navigation.js +2 -4
  74. package/react/components/sdd/Navigation.js.map +1 -1
  75. package/react/components/sdd/common/views.js +1 -14
  76. package/react/components/sdd/common/views.js.map +1 -1
  77. package/react/components/sdd/css/addApp.css +64 -1
  78. package/react/components/sdd/css/nav.css +50 -29
  79. package/react/components/sdd/fixtures/views.js +1 -14
  80. package/react/components/sdd/fixtures/views.js.map +1 -1
  81. package/react/components/sdd/tests/AddApp.spec.js +2 -2
  82. package/react/components/sdd/tests/AddApp.spec.js.map +1 -1
  83. package/react/components/sdd/tests/AppEditPage.spec.js +5 -8
  84. package/react/components/sdd/tests/AppEditPage.spec.js.map +1 -1
  85. package/react/components/sdd/tests/Export.spec.js +11 -11
  86. package/react/components/sdd/tests/Export.spec.js.map +1 -1
  87. package/react/components/sdd/tests/ExportZip.spec.js +3 -3
  88. package/react/components/sdd/tests/ExportZip.spec.js.map +1 -1
  89. package/react/components/sdd/tests/Navigation.spec.js +3 -2
  90. package/react/components/sdd/tests/Navigation.spec.js.map +1 -1
  91. package/react/components/sdd/tests/SmartDesktopDesigner.spec.js +1 -2
  92. package/react/components/sdd/tests/SmartDesktopDesigner.spec.js.map +1 -1
  93. package/react/components/toolbar/dashbar/Dashbar.js +18 -14
  94. package/react/components/toolbar/dashbar/Dashbar.js.map +1 -1
  95. package/react/components/toolbar/workspaceManagementMenu/components/Workspace.d.ts +9 -1
  96. package/react/components/toolbar/workspaceManagementMenu/components/Workspace.js +35 -1
  97. package/react/components/toolbar/workspaceManagementMenu/components/Workspace.js.map +1 -1
  98. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js +1 -1
  99. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js.map +1 -1
  100. package/react/components/userPreferences/components/content/Workspaces.d.ts +3 -1
  101. package/react/components/userPreferences/components/content/Workspaces.js +20 -3
  102. package/react/components/userPreferences/components/content/Workspaces.js.map +1 -1
  103. package/react/components/userPreferences/components/workspaces/WorkspaceItem.d.ts +1 -0
  104. package/react/components/userPreferences/components/workspaces/WorkspaceItem.js +3 -2
  105. package/react/components/userPreferences/components/workspaces/WorkspaceItem.js.map +1 -1
  106. package/react/components/userPreferences/tests/NotificationsPreferencesHome.spec.js +12 -9
  107. package/react/components/userPreferences/tests/NotificationsPreferencesHome.spec.js.map +1 -1
  108. package/react/components/userPreferences/tests/UserPreferencesBase.spec.js +2 -0
  109. package/react/components/userPreferences/tests/UserPreferencesBase.spec.js.map +1 -1
  110. package/react/components/windowTitleBar/WindowTitleBarShell.d.ts +99 -26
  111. package/react/components/windowTitleBar/WindowTitleBarShell.js +206 -138
  112. package/react/components/windowTitleBar/WindowTitleBarShell.js.map +1 -1
  113. package/react/components/windowTitleBar/components/left/LinkerButton.js +30 -21
  114. package/react/components/windowTitleBar/components/left/LinkerButton.js.map +1 -1
  115. package/react/hooks/useNotifications.js +8 -7
  116. package/react/hooks/useNotifications.js.map +1 -1
  117. package/react/tsconfig.tsbuildinfo +1 -1
  118. package/react/components/notifications/components/shared/OverflowMenu.d.ts +0 -16
  119. package/react/components/notifications/components/shared/OverflowMenu.js +0 -114
  120. package/react/components/notifications/components/shared/OverflowMenu.js.map +0 -1
  121. package/react/components/sdd/GettingStarted.d.ts +0 -8
  122. package/react/components/sdd/GettingStarted.js +0 -25
  123. package/react/components/sdd/GettingStarted.js.map +0 -1
  124. package/react/components/sdd/stories/GettingStarted.stories.d.ts +0 -11
  125. package/react/components/sdd/stories/GettingStarted.stories.js +0 -18
  126. package/react/components/sdd/stories/GettingStarted.stories.js.map +0 -1
@@ -10,6 +10,7 @@ import { VALID_APP_EXTENSIONS } from "../common/file_helpers";
10
10
  import { FinsembleIcon } from "../common/FinsembleIcon";
11
11
  import { FinsembleToggleButtonBar } from "../common/FinsembleToggleButtonBar";
12
12
  import { Tooltip } from "../common/Tooltip";
13
+ import { Checkbox } from "../common/Checkbox";
13
14
  import { getDefaultName } from "./sdd_helpers";
14
15
  import "./css/addApp.css";
15
16
  const isValid = ({ visible, appUrl, appPath, appCitrix, webAppName, pathAppName, citrixAppName, }) => {
@@ -38,6 +39,8 @@ export const AddApp = ({ checkValidURL, addAppByPath, addAppByUrl, addAppCitrix
38
39
  const [citrixAppName, setCitrixAppName] = useState("");
39
40
  const [apiAccess, setApiAccess] = useState(true);
40
41
  const [urlUserInput, setUrlUserInput] = useState(false);
42
+ const [autoGenerateWeb, setAutoGenerateWeb] = useState(true);
43
+ const [appId, setAppId] = useState("");
41
44
  const isAppUrlValid = checkValidURL(appUrl);
42
45
  const clearAll = () => {
43
46
  setAppUrl("");
@@ -47,6 +50,8 @@ export const AddApp = ({ checkValidURL, addAppByPath, addAppByUrl, addAppCitrix
47
50
  setPathAppName("");
48
51
  setCitrixAppName("");
49
52
  setApiAccess(true);
53
+ setAutoGenerateWeb(true);
54
+ setAppId("");
50
55
  };
51
56
  const closeBox = () => {
52
57
  clearAll();
@@ -91,20 +96,20 @@ export const AddApp = ({ checkValidURL, addAppByPath, addAppByUrl, addAppCitrix
91
96
  },
92
97
  ]
93
98
  : []);
94
- return (React.createElement("div", { className: `quick-add-app${show ? "" : " collapsed"}`, style: { position: "relative" }, "aria-hidden": !show },
99
+ return (React.createElement("div", { className: `quick-add-app${show ? "" : " collapsed"}`, "aria-hidden": !show },
95
100
  React.createElement(ButtonIcon, { icon: "times", onClick: closeBox, text: "Close", className: "quick-add-close" }),
96
101
  React.createElement(FinsembleToggleButtonBar, { selected: visible, onChange: setVisible, options: toggleButtonOptions }),
97
- React.createElement("table", { role: "presentation", style: { width: "100%" } },
102
+ React.createElement("table", { role: "presentation", "data-section": visible },
98
103
  visible === "web" && (React.createElement("tbody", null,
99
104
  React.createElement("tr", { className: "quick-add-url" },
100
- React.createElement("td", { style: { width: "20%" } },
105
+ React.createElement("td", null,
101
106
  React.createElement("label", { htmlFor: `app-url-${idKey}` }, "App URL")),
102
107
  React.createElement("td", null,
103
108
  React.createElement("input", { type: "text", placeholder: "https://...", id: `app-url-${idKey}`, value: appUrl, "aria-invalid": !isAppUrlValid, "aria-errormessage": `app-url-error-message-${idKey}`, onChange: (e) => {
104
109
  changeUrlContent(e.target.value);
105
110
  }, onKeyUp: (e) => {
106
111
  changeUrlContent(e.currentTarget.value);
107
- }, style: { width: "95%" } }),
112
+ } }),
108
113
  !isAppUrlValid && (React.createElement("div", { id: `app-url-error-message-${idKey}`, className: "invalid-message" }, "URL must be valid (e.g., https://cosaic.io/). Only http and https prototcols are supported.")))),
109
114
  React.createElement("tr", null,
110
115
  React.createElement("td", null,
@@ -113,7 +118,7 @@ export const AddApp = ({ checkValidURL, addAppByPath, addAppByUrl, addAppCitrix
113
118
  React.createElement("input", { type: "text", id: `url-app-name-${idKey}`, value: webAppName, onChange: (e) => {
114
119
  setWebAppName(e.target.value);
115
120
  setUrlUserInput(true);
116
- }, style: { width: "95%" } }))))),
121
+ } }))))),
117
122
  visible === "native" && (React.createElement("tbody", null,
118
123
  React.createElement("tr", { className: "quick-add-url" },
119
124
  React.createElement("td", { colSpan: 2 },
@@ -126,19 +131,10 @@ export const AddApp = ({ checkValidURL, addAppByPath, addAppByUrl, addAppCitrix
126
131
  React.createElement("td", null,
127
132
  React.createElement("input", { type: "text", id: `path-app-name-${idKey}`, value: pathAppName, onChange: (e) => {
128
133
  setPathAppName(e.target.value);
129
- }, style: { width: "95%" } }))),
130
- React.createElement("tr", null,
131
- React.createElement("td", null,
132
- React.createElement("label", { htmlFor: `api-access-${idKey}` }, "API access")),
133
- React.createElement("td", null,
134
- React.createElement("input", { type: "checkbox", id: `api-access-${idKey}`, checked: apiAccess, onChange: (e) => {
135
- setApiAccess(e.target.checked);
136
- } })),
137
- React.createElement("td", null,
138
- React.createElement(Tooltip, { position: "left" }, "Specify if your app needs to access Finsemble API. Your app must be built with the Finsemble native integration library (see Finsemble documentation for details)."))))),
134
+ } }))))),
139
135
  visible === "citrix" && (React.createElement("tbody", null,
140
136
  React.createElement("tr", { className: "quick-add-citrix" },
141
- React.createElement("td", { style: { width: "20%" } },
137
+ React.createElement("td", null,
142
138
  React.createElement("label", { htmlFor: `app-citrix-${idKey}` }, "Virtual app name")),
143
139
  React.createElement("td", null,
144
140
  React.createElement("input", { type: "text", placeholder: "", id: `app-citrix-${idKey}`, value: appCitrix, onChange: (e) => {
@@ -146,24 +142,36 @@ export const AddApp = ({ checkValidURL, addAppByPath, addAppByUrl, addAppCitrix
146
142
  setCitrixAppName(e.target.value);
147
143
  }
148
144
  setAppCitrix(e.target.value);
149
- }, style: { width: "95%" } }))),
145
+ } }))),
150
146
  React.createElement("tr", null,
151
147
  React.createElement("td", null,
152
148
  React.createElement("label", { htmlFor: `citrix-display-name-${idKey}` }, "Display name")),
153
149
  React.createElement("td", null,
154
150
  React.createElement("input", { type: "text", id: `citrix-display-name-${idKey}`, value: citrixAppName, onChange: (e) => {
155
151
  setCitrixAppName(e.target.value);
156
- }, style: { width: "95%" } })))))),
152
+ } })))))),
153
+ React.createElement("div", { className: "autogenerate" },
154
+ React.createElement(Checkbox, { label: "Autogenerate ID", checked: autoGenerateWeb, onClick: () => {
155
+ setAutoGenerateWeb(!autoGenerateWeb);
156
+ } }),
157
+ !autoGenerateWeb && (React.createElement("input", { type: "text", id: "appId_web", value: appId, onChange: (e) => {
158
+ setAppId(e.target.value);
159
+ } }))),
160
+ visible === "native" && (React.createElement("div", { className: "apiAccessRow" },
161
+ React.createElement(Checkbox, { id: `api-access-${idKey}`, label: "API access", checked: apiAccess, onClick: (e) => {
162
+ setApiAccess(e.target.checked);
163
+ } }),
164
+ React.createElement(Tooltip, null, "Specify if your app needs to access Finsemble API. Your app must be built with the Finsemble native integration library (see Finsemble documentation for details)."))),
157
165
  React.createElement("div", { className: "save-button-container" },
158
166
  React.createElement(Button, { fashion: "secondary", className: "quick-add-save", onClick: () => {
159
167
  if (visible === "web") {
160
- addAppByUrl(appUrl, webAppName);
168
+ addAppByUrl(appUrl, webAppName, appId);
161
169
  }
162
170
  else if (visible === "native") {
163
- addAppByPath(appPath, pathAppName, apiAccess);
171
+ addAppByPath(appPath, pathAppName, apiAccess, appId);
164
172
  }
165
173
  else if (visible === "citrix") {
166
- addAppCitrix(appCitrix, citrixAppName);
174
+ addAppCitrix(appCitrix, citrixAppName, appId);
167
175
  }
168
176
  }, text: "Save", disabled: !isEnabledFlag }))));
169
177
  };
@@ -1 +1 @@
1
- {"version":3,"file":"AddApp.js","sourceRoot":"","sources":["../../../src/components/sdd/AddApp.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,kBAAkB,CAAC;AAe1B,MAAM,OAAO,GAAG,CAAC,EAChB,OAAO,EACP,MAAM,EACN,OAAO,EACP,SAAS,EACT,UAAU,EACV,WAAW,EACX,aAAa,GAIb,EAAE,EAAE;IACJ,IAAI,OAAO,KAAK,KAAK,EAAE;QACtB,IAAI,MAAM,KAAK,EAAE,IAAI,UAAU,KAAK,EAAE,EAAE;YACvC,OAAO,KAAK,CAAC;SACb;KACD;SAAM,IAAI,OAAO,KAAK,QAAQ,EAAE;QAChC,IAAI,OAAO,KAAK,EAAE,IAAI,WAAW,KAAK,EAAE,EAAE;YACzC,OAAO,KAAK,CAAC;SACb;KACD;SAAM,IAAI,OAAO,KAAK,QAAQ,IAAI,CAAC,SAAS,KAAK,EAAE,IAAI,aAAa,KAAK,EAAE,CAAC,EAAE;QAC9E,OAAO,KAAK,CAAC;KACb;IACD,OAAO,IAAI,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,EACtB,aAAa,EACb,YAAY,EACZ,WAAW,EACX,YAAY,GAAG,GAAG,EAAE,GAAE,CAAC,EACvB,KAAK,EACL,IAAI,EACJ,aAAa,GAAG,IAAI,EACpB,KAAK,GAAG,EAAE,GACG,EAAE,EAAE;IACjB,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAY,KAAK,CAAC,CAAC;IACzD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACzC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC3C,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC/C,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACjD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAExD,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAE5C,MAAM,QAAQ,GAAG,GAAG,EAAE;QACrB,SAAS,CAAC,EAAE,CAAC,CAAC;QACd,UAAU,CAAC,EAAE,CAAC,CAAC;QACf,YAAY,CAAC,EAAE,CAAC,CAAC;QACjB,aAAa,CAAC,EAAE,CAAC,CAAC;QAClB,cAAc,CAAC,EAAE,CAAC,CAAC;QACnB,gBAAgB,CAAC,EAAE,CAAC,CAAC;QACrB,YAAY,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,GAAG,EAAE;QACrB,QAAQ,EAAE,CAAC;QACX,KAAK,EAAE,CAAC;IACT,CAAC,CAAC;IAEF,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,IAAI,OAAO,KAAK,EAAE,IAAI,SAAS,KAAK,EAAE,CAAC,EAAE;QACnE,QAAQ,EAAE,CAAC;KACX;IAED,MAAM,aAAa,GAAG,OAAO,CAAC;QAC7B,OAAO;QACP,MAAM;QACN,OAAO;QACP,SAAS;QACT,UAAU;QACV,WAAW;QACX,aAAa;KACb,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAAE,EAAE;QAC3C,SAAS,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC,YAAY,IAAI,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC;IACF,MAAM,mBAAmB,GAAG;QAC3B;YACC,KAAK,EAAE,CACN;gBACC,oBAAC,aAAa,IAAC,IAAI,EAAC,QAAQ,GAAG;uBACzB,CACP;YACD,KAAK,EAAE,KAAK;SACZ;QACD;YACC,KAAK,EAAE,CACN;gBACC,oBAAC,aAAa,IAAC,IAAI,EAAC,QAAQ,GAAG;wBACzB,CACP;YACD,KAAK,EAAE,QAAQ;SACf;KACD,CAAC,MAAM,CACP,aAAa;QACZ,CAAC,CAAC;YACA;gBACC,KAAK,EAAE,CACN;oBACC,oBAAC,aAAa,IAAC,IAAI,EAAC,QAAQ,GAAG;+BACzB,CACP;gBACD,KAAK,EAAE,QAAQ;aACf;SACA;QACH,CAAC,CAAC,EAAE,CACL,CAAC;IAEF,OAAO,CACN,6BAAK,SAAS,EAAE,gBAAgB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,iBAAe,CAAC,IAAI;QAC9G,oBAAC,UAAU,IAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAC,OAAO,EAAC,SAAS,EAAC,iBAAiB,GAAG;QACvF,oBAAC,wBAAwB,IAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,mBAAmB,GAAI;QACnG,+BAAO,IAAI,EAAC,cAAc,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;YACjD,OAAO,KAAK,KAAK,IAAI,CACrB;gBACC,4BAAI,SAAS,EAAC,eAAe;oBAC5B,4BAAI,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;wBAC1B,+BAAO,OAAO,EAAE,WAAW,KAAK,EAAE,cAAiB,CAC/C;oBACL;wBACC,+BACC,IAAI,EAAC,MAAM,EACX,WAAW,EAAC,aAAa,EACzB,EAAE,EAAE,WAAW,KAAK,EAAE,EACtB,KAAK,EAAE,MAAM,kBACC,CAAC,aAAa,uBACT,yBAAyB,KAAK,EAAE,EACnD,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;gCACf,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;4BAClC,CAAC,EACD,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;gCACd,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;4BACzC,CAAC,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GACtB;wBACD,CAAC,aAAa,IAAI,CAClB,6BAAK,EAAE,EAAE,yBAAyB,KAAK,EAAE,EAAE,SAAS,EAAC,iBAAiB,kGAEhE,CACN,CACG,CACD;gBACL;oBACC;wBACC,+BAAO,OAAO,EAAE,gBAAgB,KAAK,EAAE,eAAkB,CACrD;oBACL;wBACC,+BACC,IAAI,EAAC,MAAM,EACX,EAAE,EAAE,gBAAgB,KAAK,EAAE,EAC3B,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;gCACf,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gCAC9B,eAAe,CAAC,IAAI,CAAC,CAAC;4BACvB,CAAC,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GACtB,CACE,CACD,CACE,CACR;YACA,OAAO,KAAK,QAAQ,IAAI,CACxB;gBACC,4BAAI,SAAS,EAAC,eAAe;oBAC5B,4BAAI,OAAO,EAAE,CAAC;wBACb,oBAAC,SAAS,IACT,EAAE,EAAE,YAAY,KAAK,EAAE,EACvB,WAAW,EAAE,oBAAoB,EACjC,YAAY,EAAE,KAAK,EACnB,KAAK,EAAE,OAAO,EACd,UAAU,EAAE,CAAC,KAAa,EAAE,EAAE;gCAC7B,UAAU,CAAC,KAAK,CAAC,CAAC;4BACnB,CAAC,EACD,YAAY,EAAE,IAAI,GACjB,CACE,CACD;gBACL;oBACC;wBACC,+BAAO,OAAO,EAAE,iBAAiB,KAAK,EAAE,eAAkB,CACtD;oBACL;wBACC,+BACC,IAAI,EAAC,MAAM,EACX,EAAE,EAAE,iBAAiB,KAAK,EAAE,EAC5B,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;gCACf,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;4BAChC,CAAC,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GACtB,CACE,CACD;gBACL;oBACC;wBACC,+BAAO,OAAO,EAAE,cAAc,KAAK,EAAE,iBAAoB,CACrD;oBACL;wBACC,+BACC,IAAI,EAAC,UAAU,EACf,EAAE,EAAE,cAAc,KAAK,EAAE,EACzB,OAAO,EAAE,SAAS,EAClB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;gCACf,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;4BAChC,CAAC,GACA,CACE;oBACL;wBACC,oBAAC,OAAO,IAAC,QAAQ,EAAC,MAAM,yKAGd,CACN,CACD,CACE,CACR;YACA,OAAO,KAAK,QAAQ,IAAI,CACxB;gBACC,4BAAI,SAAS,EAAC,kBAAkB;oBAC/B,4BAAI,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;wBAC1B,+BAAO,OAAO,EAAE,cAAc,KAAK,EAAE,uBAA0B,CAC3D;oBACL;wBACC,+BACC,IAAI,EAAC,MAAM,EACX,WAAW,EAAC,EAAE,EACd,EAAE,EAAE,cAAc,KAAK,EAAE,EACzB,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;gCACf,IAAI,aAAa,KAAK,EAAE,IAAI,aAAa,KAAK,SAAS,EAAE;oCACxD,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iCACjC;gCACD,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;4BAC9B,CAAC,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GACtB,CACE,CACD;gBACL;oBACC;wBACC,+BAAO,OAAO,EAAE,uBAAuB,KAAK,EAAE,mBAAsB,CAChE;oBACL;wBACC,+BACC,IAAI,EAAC,MAAM,EACX,EAAE,EAAE,uBAAuB,KAAK,EAAE,EAClC,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;gCACf,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;4BAClC,CAAC,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GACtB,CACE,CACD,CACE,CACR,CACM;QACR,6BAAK,SAAS,EAAC,uBAAuB;YACrC,oBAAC,MAAM,IACN,OAAO,EAAC,WAAW,EACnB,SAAS,EAAC,gBAAgB,EAC1B,OAAO,EAAE,GAAG,EAAE;oBACb,IAAI,OAAO,KAAK,KAAK,EAAE;wBACtB,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;qBAChC;yBAAM,IAAI,OAAO,KAAK,QAAQ,EAAE;wBAChC,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;qBAC9C;yBAAM,IAAI,OAAO,KAAK,QAAQ,EAAE;wBAChC,YAAY,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;qBACvC;gBACF,CAAC,EACD,IAAI,EAAC,MAAM,EACX,QAAQ,EAAE,CAAC,aAAa,GACvB,CACG,CACD,CACN,CAAC;AACH,CAAC,CAAC","sourcesContent":["/*!\n * Copyright 2021 by Cosaic\n * All rights reserved.\n */\n\nimport React, { useState } from \"react\";\nimport { Button } from \"../common/Button\";\nimport { ButtonIcon } from \"../common/ButtonIcon\";\nimport { FileInput } from \"../common/FileInput\";\nimport { VALID_APP_EXTENSIONS } from \"../common/file_helpers\";\nimport { FinsembleIcon } from \"../common/FinsembleIcon\";\nimport { FinsembleToggleButtonBar } from \"../common/FinsembleToggleButtonBar\";\nimport { Tooltip } from \"../common/Tooltip\";\nimport { getDefaultName } from \"./sdd_helpers\";\nimport \"./css/addApp.css\";\n\nexport type AddAppProps = {\n\tcheckValidURL: (url: string) => boolean;\n\taddAppByUrl: (url: string, name: string) => void;\n\taddAppByPath: (path: string, name: string, apiAccess: boolean) => void;\n\tclose: () => void;\n\tshow: boolean;\n\taddAppCitrix?: (alias: string, name: string) => void;\n\tincludeCitrix?: boolean;\n\tidKey?: string;\n};\n\ntype pageTypes = \"web\" | \"native\" | \"citrix\";\n\nconst isValid = ({\n\tvisible,\n\tappUrl,\n\tappPath,\n\tappCitrix,\n\twebAppName,\n\tpathAppName,\n\tcitrixAppName,\n}: {\n\tvisible: pageTypes;\n\t[key: string]: string;\n}) => {\n\tif (visible === \"web\") {\n\t\tif (appUrl === \"\" || webAppName === \"\") {\n\t\t\treturn false;\n\t\t}\n\t} else if (visible === \"native\") {\n\t\tif (appPath === \"\" || pathAppName === \"\") {\n\t\t\treturn false;\n\t\t}\n\t} else if (visible === \"citrix\" && (appCitrix === \"\" || citrixAppName === \"\")) {\n\t\treturn false;\n\t}\n\treturn true;\n};\n\nexport const AddApp = ({\n\tcheckValidURL,\n\taddAppByPath,\n\taddAppByUrl,\n\taddAppCitrix = () => {},\n\tclose,\n\tshow,\n\tincludeCitrix = true,\n\tidKey = \"\",\n}: AddAppProps) => {\n\tconst [visible, setVisible] = useState<pageTypes>(\"web\");\n\tconst [appUrl, setAppUrl] = useState(\"\");\n\tconst [appPath, setAppPath] = useState(\"\");\n\tconst [appCitrix, setAppCitrix] = useState(\"\");\n\tconst [webAppName, setWebAppName] = useState(\"\");\n\tconst [pathAppName, setPathAppName] = useState(\"\");\n\tconst [citrixAppName, setCitrixAppName] = useState(\"\");\n\tconst [apiAccess, setApiAccess] = useState(true);\n\tconst [urlUserInput, setUrlUserInput] = useState(false);\n\n\tconst isAppUrlValid = checkValidURL(appUrl);\n\n\tconst clearAll = () => {\n\t\tsetAppUrl(\"\");\n\t\tsetAppPath(\"\");\n\t\tsetAppCitrix(\"\");\n\t\tsetWebAppName(\"\");\n\t\tsetPathAppName(\"\");\n\t\tsetCitrixAppName(\"\");\n\t\tsetApiAccess(true);\n\t};\n\n\tconst closeBox = () => {\n\t\tclearAll();\n\t\tclose();\n\t};\n\n\tif (!show && (appUrl !== \"\" || appPath !== \"\" || appCitrix !== \"\")) {\n\t\tclearAll();\n\t}\n\n\tconst isEnabledFlag = isValid({\n\t\tvisible,\n\t\tappUrl,\n\t\tappPath,\n\t\tappCitrix,\n\t\twebAppName,\n\t\tpathAppName,\n\t\tcitrixAppName,\n\t});\n\n\tconst changeUrlContent = (newUrl: string) => {\n\t\tsetAppUrl(newUrl);\n\t\t!urlUserInput && setWebAppName(getDefaultName(newUrl));\n\t};\n\tconst toggleButtonOptions = [\n\t\t{\n\t\t\tlabel: (\n\t\t\t\t<span>\n\t\t\t\t\t<FinsembleIcon icon=\"linker\" /> URL\n\t\t\t\t</span>\n\t\t\t),\n\t\t\tvalue: \"web\",\n\t\t},\n\t\t{\n\t\t\tlabel: (\n\t\t\t\t<span>\n\t\t\t\t\t<FinsembleIcon icon=\"folder\" /> Path\n\t\t\t\t</span>\n\t\t\t),\n\t\t\tvalue: \"native\",\n\t\t},\n\t].concat(\n\t\tincludeCitrix\n\t\t\t? [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: (\n\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t<FinsembleIcon icon=\"server\" /> Virtual\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t),\n\t\t\t\t\t\tvalue: \"citrix\",\n\t\t\t\t\t},\n\t\t\t ]\n\t\t\t: []\n\t);\n\n\treturn (\n\t\t<div className={`quick-add-app${show ? \"\" : \" collapsed\"}`} style={{ position: \"relative\" }} aria-hidden={!show}>\n\t\t\t<ButtonIcon icon=\"times\" onClick={closeBox} text=\"Close\" className=\"quick-add-close\" />\n\t\t\t<FinsembleToggleButtonBar selected={visible} onChange={setVisible} options={toggleButtonOptions} />\n\t\t\t<table role=\"presentation\" style={{ width: \"100%\" }}>\n\t\t\t\t{visible === \"web\" && (\n\t\t\t\t\t<tbody>\n\t\t\t\t\t\t<tr className=\"quick-add-url\">\n\t\t\t\t\t\t\t<td style={{ width: \"20%\" }}>\n\t\t\t\t\t\t\t\t<label htmlFor={`app-url-${idKey}`}>App URL</label>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\tplaceholder=\"https://...\"\n\t\t\t\t\t\t\t\t\tid={`app-url-${idKey}`}\n\t\t\t\t\t\t\t\t\tvalue={appUrl}\n\t\t\t\t\t\t\t\t\taria-invalid={!isAppUrlValid}\n\t\t\t\t\t\t\t\t\taria-errormessage={`app-url-error-message-${idKey}`}\n\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\tchangeUrlContent(e.target.value);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tonKeyUp={(e) => {\n\t\t\t\t\t\t\t\t\t\tchangeUrlContent(e.currentTarget.value);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tstyle={{ width: \"95%\" }}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{!isAppUrlValid && (\n\t\t\t\t\t\t\t\t\t<div id={`app-url-error-message-${idKey}`} className=\"invalid-message\">\n\t\t\t\t\t\t\t\t\t\tURL must be valid (e.g., https://cosaic.io/). Only http and https prototcols are supported.\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</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<label htmlFor={`url-app-name-${idKey}`}>App name</label>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\tid={`url-app-name-${idKey}`}\n\t\t\t\t\t\t\t\t\tvalue={webAppName}\n\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\tsetWebAppName(e.target.value);\n\t\t\t\t\t\t\t\t\t\tsetUrlUserInput(true);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tstyle={{ width: \"95%\" }}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</tbody>\n\t\t\t\t)}\n\t\t\t\t{visible === \"native\" && (\n\t\t\t\t\t<tbody>\n\t\t\t\t\t\t<tr className=\"quick-add-url\">\n\t\t\t\t\t\t\t<td colSpan={2}>\n\t\t\t\t\t\t\t\t<FileInput\n\t\t\t\t\t\t\t\t\tid={`app-path-${idKey}`}\n\t\t\t\t\t\t\t\t\tacceptTypes={VALID_APP_EXTENSIONS}\n\t\t\t\t\t\t\t\t\tshouldUpload={false}\n\t\t\t\t\t\t\t\t\tvalue={appPath}\n\t\t\t\t\t\t\t\t\tonSetValue={(value: string) => {\n\t\t\t\t\t\t\t\t\t\tsetAppPath(value);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\ttextEditable={true}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<label htmlFor={`path-app-name-${idKey}`}>App name</label>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\tid={`path-app-name-${idKey}`}\n\t\t\t\t\t\t\t\t\tvalue={pathAppName}\n\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\tsetPathAppName(e.target.value);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tstyle={{ width: \"95%\" }}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<label htmlFor={`api-access-${idKey}`}>API access</label>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\t\tid={`api-access-${idKey}`}\n\t\t\t\t\t\t\t\t\tchecked={apiAccess}\n\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\tsetApiAccess(e.target.checked);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<Tooltip position=\"left\">\n\t\t\t\t\t\t\t\t\tSpecify if your app needs to access Finsemble API. Your app must be built with the Finsemble native\n\t\t\t\t\t\t\t\t\tintegration library (see Finsemble documentation for details).\n\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</tbody>\n\t\t\t\t)}\n\t\t\t\t{visible === \"citrix\" && (\n\t\t\t\t\t<tbody>\n\t\t\t\t\t\t<tr className=\"quick-add-citrix\">\n\t\t\t\t\t\t\t<td style={{ width: \"20%\" }}>\n\t\t\t\t\t\t\t\t<label htmlFor={`app-citrix-${idKey}`}>Virtual app name</label>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\tplaceholder=\"\"\n\t\t\t\t\t\t\t\t\tid={`app-citrix-${idKey}`}\n\t\t\t\t\t\t\t\t\tvalue={appCitrix}\n\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\tif (citrixAppName === \"\" || citrixAppName === appCitrix) {\n\t\t\t\t\t\t\t\t\t\t\tsetCitrixAppName(e.target.value);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tsetAppCitrix(e.target.value);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tstyle={{ width: \"95%\" }}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<label htmlFor={`citrix-display-name-${idKey}`}>Display name</label>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\tid={`citrix-display-name-${idKey}`}\n\t\t\t\t\t\t\t\t\tvalue={citrixAppName}\n\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\tsetCitrixAppName(e.target.value);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tstyle={{ width: \"95%\" }}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</tbody>\n\t\t\t\t)}\n\t\t\t</table>\n\t\t\t<div className=\"save-button-container\">\n\t\t\t\t<Button\n\t\t\t\t\tfashion=\"secondary\"\n\t\t\t\t\tclassName=\"quick-add-save\"\n\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\tif (visible === \"web\") {\n\t\t\t\t\t\t\taddAppByUrl(appUrl, webAppName);\n\t\t\t\t\t\t} else if (visible === \"native\") {\n\t\t\t\t\t\t\taddAppByPath(appPath, pathAppName, apiAccess);\n\t\t\t\t\t\t} else if (visible === \"citrix\") {\n\t\t\t\t\t\t\taddAppCitrix(appCitrix, citrixAppName);\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t\ttext=\"Save\"\n\t\t\t\t\tdisabled={!isEnabledFlag}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n"]}
1
+ {"version":3,"file":"AddApp.js","sourceRoot":"","sources":["../../../src/components/sdd/AddApp.tsx"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright 2021 by Cosaic\n * All rights reserved.\n */\n\nimport React, { useState } from \"react\";\nimport { Button } from \"../common/Button\";\nimport { ButtonIcon } from \"../common/ButtonIcon\";\nimport { FileInput } from \"../common/FileInput\";\nimport { VALID_APP_EXTENSIONS } from \"../common/file_helpers\";\nimport { FinsembleIcon } from \"../common/FinsembleIcon\";\nimport { FinsembleToggleButtonBar } from \"../common/FinsembleToggleButtonBar\";\nimport { Tooltip } from \"../common/Tooltip\";\nimport { Checkbox } from \"../common/Checkbox\";\nimport { getDefaultName } from \"./sdd_helpers\";\nimport \"./css/addApp.css\";\n\nexport type AddAppProps = {\n\tcheckValidURL: (url: string) => boolean;\n\taddAppByUrl: (url: string, name: string, appId?: string) => void;\n\taddAppByPath: (path: string, name: string, apiAccess: boolean, appId?: string) => void;\n\tclose: () => void;\n\tshow: boolean;\n\taddAppCitrix?: (alias: string, name: string, appId?: string) => void;\n\tincludeCitrix?: boolean;\n\tidKey?: string;\n};\n\ntype pageTypes = \"web\" | \"native\" | \"citrix\";\n\nconst isValid = ({\n\tvisible,\n\tappUrl,\n\tappPath,\n\tappCitrix,\n\twebAppName,\n\tpathAppName,\n\tcitrixAppName,\n}: {\n\tvisible: pageTypes;\n\t[key: string]: string;\n}) => {\n\tif (visible === \"web\") {\n\t\tif (appUrl === \"\" || webAppName === \"\") {\n\t\t\treturn false;\n\t\t}\n\t} else if (visible === \"native\") {\n\t\tif (appPath === \"\" || pathAppName === \"\") {\n\t\t\treturn false;\n\t\t}\n\t} else if (visible === \"citrix\" && (appCitrix === \"\" || citrixAppName === \"\")) {\n\t\treturn false;\n\t}\n\treturn true;\n};\n\nexport const AddApp = ({\n\tcheckValidURL,\n\taddAppByPath,\n\taddAppByUrl,\n\taddAppCitrix = () => {},\n\tclose,\n\tshow,\n\tincludeCitrix = true,\n\tidKey = \"\",\n}: AddAppProps) => {\n\tconst [visible, setVisible] = useState<pageTypes>(\"web\");\n\tconst [appUrl, setAppUrl] = useState(\"\");\n\tconst [appPath, setAppPath] = useState(\"\");\n\tconst [appCitrix, setAppCitrix] = useState(\"\");\n\tconst [webAppName, setWebAppName] = useState(\"\");\n\tconst [pathAppName, setPathAppName] = useState(\"\");\n\tconst [citrixAppName, setCitrixAppName] = useState(\"\");\n\tconst [apiAccess, setApiAccess] = useState(true);\n\tconst [urlUserInput, setUrlUserInput] = useState(false);\n\tconst [autoGenerateWeb, setAutoGenerateWeb] = useState(true);\n\tconst [appId, setAppId] = useState(\"\");\n\n\tconst isAppUrlValid = checkValidURL(appUrl);\n\n\tconst clearAll = () => {\n\t\tsetAppUrl(\"\");\n\t\tsetAppPath(\"\");\n\t\tsetAppCitrix(\"\");\n\t\tsetWebAppName(\"\");\n\t\tsetPathAppName(\"\");\n\t\tsetCitrixAppName(\"\");\n\t\tsetApiAccess(true);\n\t\tsetAutoGenerateWeb(true);\n\t\tsetAppId(\"\");\n\t};\n\n\tconst closeBox = () => {\n\t\tclearAll();\n\t\tclose();\n\t};\n\n\tif (!show && (appUrl !== \"\" || appPath !== \"\" || appCitrix !== \"\")) {\n\t\tclearAll();\n\t}\n\n\tconst isEnabledFlag = isValid({\n\t\tvisible,\n\t\tappUrl,\n\t\tappPath,\n\t\tappCitrix,\n\t\twebAppName,\n\t\tpathAppName,\n\t\tcitrixAppName,\n\t});\n\n\tconst changeUrlContent = (newUrl: string) => {\n\t\tsetAppUrl(newUrl);\n\t\t!urlUserInput && setWebAppName(getDefaultName(newUrl));\n\t};\n\tconst toggleButtonOptions = [\n\t\t{\n\t\t\tlabel: (\n\t\t\t\t<span>\n\t\t\t\t\t<FinsembleIcon icon=\"linker\" /> URL\n\t\t\t\t</span>\n\t\t\t),\n\t\t\tvalue: \"web\",\n\t\t},\n\t\t{\n\t\t\tlabel: (\n\t\t\t\t<span>\n\t\t\t\t\t<FinsembleIcon icon=\"folder\" /> Path\n\t\t\t\t</span>\n\t\t\t),\n\t\t\tvalue: \"native\",\n\t\t},\n\t].concat(\n\t\tincludeCitrix\n\t\t\t? [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: (\n\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t<FinsembleIcon icon=\"server\" /> Virtual\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t),\n\t\t\t\t\t\tvalue: \"citrix\",\n\t\t\t\t\t},\n\t\t\t ]\n\t\t\t: []\n\t);\n\n\treturn (\n\t\t<div className={`quick-add-app${show ? \"\" : \" collapsed\"}`} aria-hidden={!show}>\n\t\t\t<ButtonIcon icon=\"times\" onClick={closeBox} text=\"Close\" className=\"quick-add-close\" />\n\t\t\t<FinsembleToggleButtonBar selected={visible} onChange={setVisible} options={toggleButtonOptions} />\n\t\t\t<table role=\"presentation\" data-section={visible}>\n\t\t\t\t{visible === \"web\" && (\n\t\t\t\t\t<tbody>\n\t\t\t\t\t\t<tr className=\"quick-add-url\">\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<label htmlFor={`app-url-${idKey}`}>App URL</label>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\tplaceholder=\"https://...\"\n\t\t\t\t\t\t\t\t\tid={`app-url-${idKey}`}\n\t\t\t\t\t\t\t\t\tvalue={appUrl}\n\t\t\t\t\t\t\t\t\taria-invalid={!isAppUrlValid}\n\t\t\t\t\t\t\t\t\taria-errormessage={`app-url-error-message-${idKey}`}\n\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\tchangeUrlContent(e.target.value);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tonKeyUp={(e) => {\n\t\t\t\t\t\t\t\t\t\tchangeUrlContent(e.currentTarget.value);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{!isAppUrlValid && (\n\t\t\t\t\t\t\t\t\t<div id={`app-url-error-message-${idKey}`} className=\"invalid-message\">\n\t\t\t\t\t\t\t\t\t\tURL must be valid (e.g., https://cosaic.io/). Only http and https prototcols are supported.\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</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<label htmlFor={`url-app-name-${idKey}`}>App name</label>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\tid={`url-app-name-${idKey}`}\n\t\t\t\t\t\t\t\t\tvalue={webAppName}\n\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\tsetWebAppName(e.target.value);\n\t\t\t\t\t\t\t\t\t\tsetUrlUserInput(true);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</tbody>\n\t\t\t\t)}\n\t\t\t\t{visible === \"native\" && (\n\t\t\t\t\t<tbody>\n\t\t\t\t\t\t<tr className=\"quick-add-url\">\n\t\t\t\t\t\t\t<td colSpan={2}>\n\t\t\t\t\t\t\t\t<FileInput\n\t\t\t\t\t\t\t\t\tid={`app-path-${idKey}`}\n\t\t\t\t\t\t\t\t\tacceptTypes={VALID_APP_EXTENSIONS}\n\t\t\t\t\t\t\t\t\tshouldUpload={false}\n\t\t\t\t\t\t\t\t\tvalue={appPath}\n\t\t\t\t\t\t\t\t\tonSetValue={(value: string) => {\n\t\t\t\t\t\t\t\t\t\tsetAppPath(value);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\ttextEditable={true}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<label htmlFor={`path-app-name-${idKey}`}>App name</label>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\tid={`path-app-name-${idKey}`}\n\t\t\t\t\t\t\t\t\tvalue={pathAppName}\n\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\tsetPathAppName(e.target.value);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</tbody>\n\t\t\t\t)}\n\t\t\t\t{visible === \"citrix\" && (\n\t\t\t\t\t<tbody>\n\t\t\t\t\t\t<tr className=\"quick-add-citrix\">\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<label htmlFor={`app-citrix-${idKey}`}>Virtual app name</label>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\tplaceholder=\"\"\n\t\t\t\t\t\t\t\t\tid={`app-citrix-${idKey}`}\n\t\t\t\t\t\t\t\t\tvalue={appCitrix}\n\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\tif (citrixAppName === \"\" || citrixAppName === appCitrix) {\n\t\t\t\t\t\t\t\t\t\t\tsetCitrixAppName(e.target.value);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tsetAppCitrix(e.target.value);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<label htmlFor={`citrix-display-name-${idKey}`}>Display name</label>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\tid={`citrix-display-name-${idKey}`}\n\t\t\t\t\t\t\t\t\tvalue={citrixAppName}\n\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\tsetCitrixAppName(e.target.value);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</tbody>\n\t\t\t\t)}\n\t\t\t</table>\n\n\t\t\t<div className=\"autogenerate\">\n\t\t\t\t<Checkbox\n\t\t\t\t\tlabel=\"Autogenerate ID\"\n\t\t\t\t\tchecked={autoGenerateWeb}\n\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\tsetAutoGenerateWeb(!autoGenerateWeb);\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\t{!autoGenerateWeb && (\n\t\t\t\t\t<input\n\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\tid=\"appId_web\"\n\t\t\t\t\t\tvalue={appId}\n\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\tsetAppId(e.target.value);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t{visible === \"native\" && (\n\t\t\t\t<div className=\"apiAccessRow\">\n\t\t\t\t\t<Checkbox\n\t\t\t\t\t\tid={`api-access-${idKey}`}\n\t\t\t\t\t\tlabel=\"API access\"\n\t\t\t\t\t\tchecked={apiAccess}\n\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\tsetApiAccess(e.target.checked);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t<Tooltip>\n\t\t\t\t\t\tSpecify if your app needs to access Finsemble API. Your app must be built with the Finsemble native\n\t\t\t\t\t\tintegration library (see Finsemble documentation for details).\n\t\t\t\t\t</Tooltip>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t<div className=\"save-button-container\">\n\t\t\t\t<Button\n\t\t\t\t\tfashion=\"secondary\"\n\t\t\t\t\tclassName=\"quick-add-save\"\n\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\tif (visible === \"web\") {\n\t\t\t\t\t\t\taddAppByUrl(appUrl, webAppName, appId);\n\t\t\t\t\t\t} else if (visible === \"native\") {\n\t\t\t\t\t\t\taddAppByPath(appPath, pathAppName, apiAccess, appId);\n\t\t\t\t\t\t} else if (visible === \"citrix\") {\n\t\t\t\t\t\t\taddAppCitrix(appCitrix, citrixAppName, appId);\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t\ttext=\"Save\"\n\t\t\t\t\tdisabled={!isEnabledFlag}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n"]}
@@ -262,14 +262,7 @@ export const AppEditPage = ({ startingDisplayName = "", startingAppType = "web",
262
262
  React.createElement("label", { id: "api-access-label" }, "API access")),
263
263
  React.createElement("td", null,
264
264
  React.createElement("div", { className: "app-edit-type-field" },
265
- React.createElement("input", { type: "checkbox", name: "api-access", checked: currentAppType === "native", onKeyDown: (e) => {
266
- if (e.key === " ") {
267
- setCurrentAppType(currentAppType === "native" ? "assimilation" : "native");
268
- }
269
- else {
270
- submitOnEnter(e);
271
- }
272
- }, onChange: () => {
265
+ React.createElement(Checkbox, { id: "api-access", label: "API access", showLabel: false, checked: currentAppType === "native", onClick: () => {
273
266
  setCurrentAppType(currentAppType === "native" ? "assimilation" : "native");
274
267
  } }))))),
275
268
  currentAppType === "web" && (React.createElement("tr", null,
@@ -1 +1 @@
1
- {"version":3,"file":"AppEditPage.js","sourceRoot":"","sources":["../../../src/components/sdd/AppEditPage.tsx"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright 2017 - 2020 by ChartIQ, Inc.\n * All rights reserved.\n */\n\nimport React, { useState } from \"react\";\nimport { BootStage } from \"@finsemble/finsemble-api/types/services/systemManager/types\";\nimport { FileInput } from \"../common/FileInput\";\nimport { Button } from \"../common/Button\";\nimport { validateFilename, VALID_APP_EXTENSIONS } from \"../common/file_helpers\";\nimport { Tooltip } from \"../common/Tooltip\";\nimport { Accordion } from \"../common/Accordion\";\nimport { Checkbox } from \"../common/Checkbox\";\nimport * as Types from \"../../types/smartDesktopDesignerTypes\";\nimport DefaultDropdownButton from \"../shared/DefaultDropdownButton\";\nimport \"../common/css/application-edit-page.css\";\nimport { SmartDesktopClient } from \"./smartDesktopClient\";\nimport { AppEditPage_DebugToolkit } from \"./appEditPage/DebugToolkit\";\nimport { AppEditPage_SelectConnect } from \"./appEditPage/SelectConnect\";\nimport { AppEditPage_Preloads } from \"./appEditPage/Preloads\";\nimport { AppEditPage_Position } from \"./appEditPage/Position\";\nimport { AppEditPage_Behavior } from \"./appEditPage/Behavior\";\nimport { AppEditPage_Interop } from \"./appEditPage/Interop\";\nimport { AppEditPage_Component } from \"./appEditPage/Component\";\nimport { AppEditPage_Workspace } from \"./appEditPage/Workspace\";\n\nconst DEFAULT_WINDOW_WIDTH = 1280;\nconst DEFAULT_WINDOW_HEIGHT = 600;\nconst MINIMUM_WINDOW_WIDTH = 0;\nconst MINIMUM_WINDOW_HEIGHT = 0;\nconst SELECTABLE_BOOT_PHASE_STAGES: BootStage[] = [\"preuser\", \"preuser2\", \"preuser3\", \"preuser4\", \"earlyuser\", \"user\"];\n\nexport const defaultAppData = {\n\tname: \"\",\n\tabstractPosition: 0,\n\taddToWorkspace: true,\n\talias: \"\",\n\tallowAutoArrange: true,\n\tallowGrouping: true,\n\tallowMinimize: true,\n\tallowMaximize: true,\n\tallowSnapping: true,\n\tallowTabbing: true,\n\tallowTiling: true,\n\talwaysOnTop: false,\n\tappArguments: \"\",\n\tappType: \"WEB\",\n\tautoConnect: false,\n\tdescription: \"\",\n\tenableAffinity: true,\n\tenableAOT: false,\n\tenableTitleBar: true,\n\theight: DEFAULT_WINDOW_HEIGHT,\n\thideClose: false,\n\thideMaximize: false,\n\thideMinimize: false,\n\ticonURL: \"\",\n\tintents: [],\n\tisEvergreen: false,\n\tlaunchableByUser: true,\n\tnative_windowSpawnTimeout: 30,\n\topacity: 1,\n\tpath: \"\",\n\tpersistPath: true,\n\tpersistURL: true,\n\tpreloads: [],\n\tresizable: true,\n\trules: [],\n\tsecurity: \"trusted\",\n\tsingleton: false,\n\tspawnOnStartup: false,\n\ttags: [],\n\ttitlebarType: \"injected\",\n\turl: \"\",\n\twidth: DEFAULT_WINDOW_WIDTH,\n\tbootPhase: \"preuser\",\n\twaitForInitialization: true,\n\tserviceVisible: false,\n\tdevConsole: false,\n} as Types.ApplicationSaveData;\n\nconst convertIntentData = (intentArray: string[][]): Types.IntentEntry[] =>\n\tintentArray.slice(0, -1).map(([name, displayName, contexts]) => {\n\t\treturn { name, displayName, contexts: contexts.split(\",\") };\n\t});\n\nconst appTypeDisplayNameMap = {\n\tweb: \"Web\",\n\tnative: \"Native\",\n\tassimilation: \"Native\",\n\tcitrix: \"Virtual\",\n};\n\nexport type AppEditPageProps = {\n\tstartingDisplayName: string;\n\tstartingAppType: string;\n\tstartingWindowURL: string;\n\tstartingNativePath: string;\n\tappData?: Types.ApplicationSaveData;\n\tvalidateURL: (s: string) => boolean;\n\tremoveApplicationFn: () => void;\n\tcancelFn: () => void;\n\tsubmitFn: (data: Types.ApplicationSaveData) => void;\n\taddApp: typeof SmartDesktopClient.addApp;\n\tisInboundInteropAuthorized: typeof SmartDesktopClient.isInboundInteropAuthorized;\n\tisOutboundInteropAuthorized: typeof SmartDesktopClient.isOutboundInteropAuthorized;\n\tpreloadAliasList: string[];\n\tappService: boolean;\n};\n\nexport const AppEditPage = ({\n\tstartingDisplayName = \"\",\n\tstartingAppType = \"web\",\n\tstartingWindowURL = \"\",\n\tstartingNativePath = \"\",\n\tappData = defaultAppData,\n\tvalidateURL,\n\tremoveApplicationFn = () => {},\n\tcancelFn = () => {},\n\tsubmitFn,\n\taddApp,\n\tisInboundInteropAuthorized,\n\tisOutboundInteropAuthorized,\n\tpreloadAliasList = [],\n\tappService = false,\n}: AppEditPageProps) => {\n\tconst [displayName, setDisplayName] = useState(startingDisplayName);\n\tconst [currentAppType, setCurrentAppType] = useState(startingAppType);\n\tconst [windowURL, setWindowURL] = useState(startingWindowURL);\n\tconst [nativePath, setNativePath] = useState(startingNativePath);\n\n\tconst [abstractPosition, setAbstractPosition] = useState(appData.abstractPosition);\n\tconst [addToWorkspace, setAddToWorkspace] = useState(appData.addToWorkspace);\n\tconst [enableAffinity, setEnableAffinity] = useState(appData.enableAffinity);\n\tconst [alias, setAlias] = useState(appData.alias);\n\tconst [allowAutoArrange, setAllowAutoArrange] = useState(appData.allowAutoArrange);\n\tconst [allowGrouping, setAllowGrouping] = useState(appData.allowGrouping);\n\tconst [allowMinimize, setAllowMinimize] = useState(appData.allowMinimize);\n\tconst [allowMaximize, setAllowMaximize] = useState(appData.allowMaximize);\n\tconst [allowSnapping, setAllowSnapping] = useState(appData.allowSnapping);\n\tconst [allowTabbing, setAllowTabbing] = useState(appData.allowTabbing);\n\tconst [allowTiling, setAllowTiling] = useState(appData.allowTiling);\n\tconst [aot, setAot] = useState(appData.alwaysOnTop);\n\tconst [appArguments, setAppArguments] = useState(appData.appArguments);\n\tconst [autoConnect, setAutoConnect] = useState(appData.autoConnect);\n\tconst [componentDescription, setComponentDescription] = useState(appData.description);\n\tconst [enableAOT, setEnableAOT] = useState(appData.enableAOT);\n\tconst [enableTitleBar, setEnableTitleBar] = useState(appData.enableTitleBar);\n\tconst [hideClose, setHideClose] = useState(appData.hideClose);\n\tconst [hideMaximize, setHideMaximize] = useState(appData.hideMaximize);\n\tconst [hideMinimize, setHideMinimize] = useState(appData.hideMinimize);\n\tconst [iconURL, setIconURL] = useState(appData.iconURL);\n\tconst [isEvergreen, setIsEvergreen] = useState(appData.isEvergreen);\n\tconst [launchableByUser, setLaunchableByUser] = useState(appData.launchableByUser);\n\tconst [native_windowSpawnTimeout, setNative_windowSpawnTimeout] = useState(appData.native_windowSpawnTimeout);\n\tconst [opacity, setOpacity] = useState(appData.opacity);\n\tconst [persistPath, setPersistPath] = useState(appData.persistPath);\n\tconst [persistURL, setPersistURL] = useState(appData.persistURL);\n\tconst [preloads, setPreloads] = useState(appData.preloads);\n\tconst [resizable, setResizable] = useState(appData.resizable);\n\tconst [rules, setRules] = useState(appData.rules);\n\tconst [security, setSecurity] = useState(appData.security);\n\tconst [singleton, setSingleton] = useState(appData.singleton);\n\tconst [spawnOnStartup, setSpawnOnStartup] = useState(appData.spawnOnStartup);\n\tconst [titlebarType, setTitlebarType] = useState(appData.titlebarType);\n\tconst [windowHeight, setWindowHeight] = useState<number | string>(appData.height || DEFAULT_WINDOW_HEIGHT);\n\tconst [windowWidth, setWindowWidth] = useState<number | string>(appData.width || DEFAULT_WINDOW_WIDTH);\n\tconst [selectConnectTrustAll, setSelectConnectTrustAll] = useState(\n\t\t!Array.isArray(appData.rules) || appData.rules.filter((rule) => \"authorize\" in rule).length === 0\n\t);\n\tconst [intentData, setIntentData] = useState<string[][]>(\n\t\tappData.intents?.map((intent) => [intent.name, intent.displayName, intent.contexts?.join(\", \") ?? \"\"])\n\t);\n\tconst [bootPhase, setBootPhase] = useState<BootStage | undefined>(appData.bootPhase);\n\tconst [waitForInitialization, setWaitForInitialization] = useState(appData.waitForInitialization);\n\tconst [serviceVisible, setServiceVisible] = useState(appData.serviceVisible);\n\tconst [devConsole, setDevConsole] = useState(appData.devConsole);\n\n\tconst isWindowURLValid = validateURL(windowURL);\n\tconst isHeightValid = !(typeof windowHeight !== \"number\" || windowHeight < MINIMUM_WINDOW_HEIGHT);\n\tconst isWidthValid = !(typeof windowWidth !== \"number\" || windowWidth < MINIMUM_WINDOW_WIDTH);\n\n\tconst isValidInput = () => {\n\t\t// Confirm that the app's dimensions and displayName are valid\n\t\tif (!isWidthValid || !isHeightValid || displayName === undefined || displayName === \"\") {\n\t\t\treturn false;\n\t\t}\n\n\t\t// App-specific validation checks\n\t\tif (currentAppType === \"web\") {\n\t\t\t// For web apps, confirm that the URL is valid\n\t\t\treturn isWindowURLValid && windowURL.length > 0;\n\t\t} else if (currentAppType === \"Citrix\") {\n\t\t\t// For Citrix, there are no specific confirmations\n\t\t\treturn true;\n\t\t} else {\n\t\t\t// For native/assimilated, make sure the path is fine\n\t\t\treturn !(!nativePath || (nativePath.length === 0 && validateFilename(VALID_APP_EXTENSIONS, nativePath)));\n\t\t}\n\t};\n\n\tconst disableSubmit = !isValidInput();\n\n\tconst clickSubmit = () => {\n\t\t// Shouldn't be possible to get in a state where windowWith/windowHeight aren't numbers,\n\t\t// but let's check anyway\n\t\tif (!(typeof windowWidth === \"number\" && typeof windowHeight === \"number\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tsubmitFn({\n\t\t\tname: displayName,\n\t\t\turl: windowURL,\n\t\t\tpath: nativePath,\n\t\t\tappType: currentAppType,\n\t\t\tappArguments: appArguments,\n\t\t\twidth: windowWidth,\n\t\t\theight: windowHeight,\n\t\t\tdescription: componentDescription,\n\t\t\ticonURL,\n\t\t\trules: selectConnectTrustAll ? [] : rules,\n\t\t\tintents: convertIntentData(intentData),\n\t\t\tpersistPath,\n\t\t\tpersistURL,\n\t\t\taddToWorkspace,\n\t\t\talias,\n\t\t\tallowAutoArrange,\n\t\t\tallowGrouping,\n\t\t\tallowMinimize,\n\t\t\tallowMaximize,\n\t\t\tallowSnapping,\n\t\t\tallowTabbing,\n\t\t\tallowTiling,\n\t\t\tenableAOT,\n\t\t\tenableTitleBar,\n\t\t\thideClose,\n\t\t\thideMinimize,\n\t\t\thideMaximize,\n\t\t\tautoConnect,\n\t\t\tabstractPosition,\n\t\t\tresizable,\n\t\t\talwaysOnTop: aot,\n\t\t\topacity,\n\t\t\tsingleton,\n\t\t\tspawnOnStartup,\n\t\t\tlaunchableByUser,\n\t\t\tsecurity,\n\t\t\tisEvergreen,\n\t\t\tnative_windowSpawnTimeout,\n\t\t\tpreloads,\n\t\t\ttitlebarType,\n\t\t\tbootPhase,\n\t\t\twaitForInitialization,\n\t\t\tserviceVisible,\n\t\t\tdevConsole,\n\t\t});\n\t};\n\n\t// When we try to use the form/type=submit interaction, it acts like we pressed the back button, rather than the submit button\n\tconst submitOnEnter = (e: React.KeyboardEvent<HTMLInputElement>) => {\n\t\tif (e.key !== \"Enter\") {\n\t\t\treturn;\n\t\t}\n\n\t\te.preventDefault();\n\t\tif (!disableSubmit) {\n\t\t\tclickSubmit();\n\t\t}\n\t};\n\n\tconst bootPhaseOptions = SELECTABLE_BOOT_PHASE_STAGES.map((optionLabel) => {\n\t\treturn {\n\t\t\toptionLabel,\n\t\t\tclickHandler: () => {\n\t\t\t\tsetBootPhase(optionLabel);\n\t\t\t},\n\t\t};\n\t});\n\n\treturn (\n\t\t<>\n\t\t\t<div className=\"app-edit-field\">\n\t\t\t\t<h2 className=\"app-edit-app-name\">\n\t\t\t\t\t{iconURL !== \"\" && iconURL !== undefined && <img src={iconURL} className=\"app-icon\" />}\n\t\t\t\t\t{displayName}\n\t\t\t\t</h2>\n\t\t\t</div>\n\t\t\t<div className=\"app-edit-field\">\n\t\t\t\t<table role=\"presentation\" className=\"always-present accordion-edit-block\">\n\t\t\t\t\t<tbody>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td className=\"label-col\">\n\t\t\t\t\t\t\t\t<label>App type</label>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<td className=\"content-col\">\n\t\t\t\t\t\t\t\t<div className=\"app-edit-type-field\">\n\t\t\t\t\t\t\t\t\t{appTypeDisplayNameMap[currentAppType.toLowerCase() as keyof typeof appTypeDisplayNameMap]}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<label htmlFor=\"app-name\">Name</label>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\tid=\"app-name\"\n\t\t\t\t\t\t\t\t\tvalue={displayName}\n\t\t\t\t\t\t\t\t\tplaceholder=\"Untitled Application\"\n\t\t\t\t\t\t\t\t\tonKeyDown={submitOnEnter}\n\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\tsetDisplayName(e.target.value);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t{currentAppType === \"Citrix\" && (\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<label htmlFor=\"app-alias\">Virtual app name</label>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\t\tid=\"app-alias\"\n\t\t\t\t\t\t\t\t\t\tvalue={alias}\n\t\t\t\t\t\t\t\t\t\tplaceholder=\"Virtual application name\"\n\t\t\t\t\t\t\t\t\t\tonKeyDown={submitOnEnter}\n\t\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\t\tsetAlias(e.target.value);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{!appService && (\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<label htmlFor=\"app-icon-url\">Icon URL</label>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\t\tid=\"app-icon-url\"\n\t\t\t\t\t\t\t\t\t\tvalue={iconURL}\n\t\t\t\t\t\t\t\t\t\tonKeyDown={submitOnEnter}\n\t\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\t\tsetIconURL(e.target.value);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{currentAppType !== \"web\" && currentAppType !== \"Citrix\" && (\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<label id=\"api-access-label\">API access</label>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<div className=\"app-edit-type-field\">\n\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\t\t\t\tname=\"api-access\"\n\t\t\t\t\t\t\t\t\t\t\tchecked={currentAppType === \"native\"}\n\t\t\t\t\t\t\t\t\t\t\tonKeyDown={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\tif (e.key === \" \") {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetCurrentAppType(currentAppType === \"native\" ? \"assimilation\" : \"native\");\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsubmitOnEnter(e);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\tonChange={() => {\n\t\t\t\t\t\t\t\t\t\t\t\tsetCurrentAppType(currentAppType === \"native\" ? \"assimilation\" : \"native\");\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{currentAppType === \"web\" && (\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<label htmlFor=\"app-url\">App URL</label>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\t\tid=\"app-url\"\n\t\t\t\t\t\t\t\t\t\tplaceholder=\"https://...\"\n\t\t\t\t\t\t\t\t\t\tvalue={windowURL}\n\t\t\t\t\t\t\t\t\t\taria-invalid={!isWindowURLValid}\n\t\t\t\t\t\t\t\t\t\tonKeyDown={submitOnEnter}\n\t\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\t\tsetWindowURL(e.target.value);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{(currentAppType === \"native\" || currentAppType === \"assimilation\") && (\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<label>File path</label>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<div className=\"app-file-input\">\n\t\t\t\t\t\t\t\t\t\t<FileInput\n\t\t\t\t\t\t\t\t\t\t\tacceptTypes={VALID_APP_EXTENSIONS}\n\t\t\t\t\t\t\t\t\t\t\tshouldUpload={false}\n\t\t\t\t\t\t\t\t\t\t\tvalue={nativePath}\n\t\t\t\t\t\t\t\t\t\t\tonSetValue={(value: string) => {\n\t\t\t\t\t\t\t\t\t\t\t\tsetNativePath(value);\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\ttextEditable={true}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{currentAppType !== \"web\" && (\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<label htmlFor=\"app-arguments\">Arguments</label>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\t\tid=\"app-arguments\"\n\t\t\t\t\t\t\t\t\t\tplaceholder=\"E.g: mode=a --type b\"\n\t\t\t\t\t\t\t\t\t\tvalue={appArguments}\n\t\t\t\t\t\t\t\t\t\tonKeyDown={submitOnEnter}\n\t\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\t\tsetAppArguments(e.target.value);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<Tooltip>If your app expects arguments on startup, specify them here.</Tooltip>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{!appService && (\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<label htmlFor=\"app-description\">Description</label>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td className=\"description\">\n\t\t\t\t\t\t\t\t\t<textarea\n\t\t\t\t\t\t\t\t\t\tid=\"app-description\"\n\t\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\t\tsetComponentDescription(e.target.value);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tvalue={componentDescription}\n\t\t\t\t\t\t\t\t\t></textarea>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{appService && (\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<label htmlFor=\"bootPhase\">Boot phase</label>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td className=\"bootPhase-entry\">\n\t\t\t\t\t\t\t\t\t<DefaultDropdownButton\n\t\t\t\t\t\t\t\t\t\tallowEmpty={false}\n\t\t\t\t\t\t\t\t\t\tcaretLocation=\"right\"\n\t\t\t\t\t\t\t\t\t\tdefaultSelection={bootPhaseOptions.find((opt) => opt.optionLabel === bootPhase)}\n\t\t\t\t\t\t\t\t\t\tbuttonOptions={bootPhaseOptions}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{appService && (\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<label htmlFor=\"initialization\">Wait for initialization</label>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<Checkbox\n\t\t\t\t\t\t\t\t\t\tchecked={waitForInitialization}\n\t\t\t\t\t\t\t\t\t\tlabel=\"Wait for initialization\"\n\t\t\t\t\t\t\t\t\t\tshowLabel={false}\n\t\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\t\tsetWaitForInitialization(!waitForInitialization);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</tbody>\n\t\t\t\t</table>\n\t\t\t</div>\n\n\t\t\t{appService && (\n\t\t\t\t<AppEditPage_DebugToolkit\n\t\t\t\t\t{...{\n\t\t\t\t\t\tserviceVisible,\n\t\t\t\t\t\tsetServiceVisible,\n\t\t\t\t\t\tdevConsole,\n\t\t\t\t\t\tsetDevConsole,\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t<div className=\"app-edit-field\">\n\t\t\t\t<Accordion id=\"config\" size=\"medium\" label=\"Optional config settings\">\n\t\t\t\t\t{currentAppType !== \"assimilation\" && (\n\t\t\t\t\t\t<AppEditPage_SelectConnect\n\t\t\t\t\t\t\trules={appData.rules}\n\t\t\t\t\t\t\t{...{\n\t\t\t\t\t\t\t\tselectConnectTrustAll,\n\t\t\t\t\t\t\t\tsetSelectConnectTrustAll,\n\t\t\t\t\t\t\t\tdisplayName,\n\t\t\t\t\t\t\t\tsetRules,\n\t\t\t\t\t\t\t\tisInboundInteropAuthorized,\n\t\t\t\t\t\t\t\tisOutboundInteropAuthorized,\n\t\t\t\t\t\t\t\taddApp,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{currentAppType === \"web\" && (\n\t\t\t\t\t\t<AppEditPage_Preloads\n\t\t\t\t\t\t\tpreloads={appData.preloads}\n\t\t\t\t\t\t\t{...{\n\t\t\t\t\t\t\t\tpreloadAliasList,\n\t\t\t\t\t\t\t\tappData,\n\t\t\t\t\t\t\t\tsetPreloads,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{currentAppType !== \"Citrix\" && !appService && (\n\t\t\t\t\t\t<AppEditPage_Position\n\t\t\t\t\t\t\t{...{\n\t\t\t\t\t\t\t\tisWidthValid,\n\t\t\t\t\t\t\t\twindowWidth,\n\t\t\t\t\t\t\t\tsetWindowHeight,\n\t\t\t\t\t\t\t\tisHeightValid,\n\t\t\t\t\t\t\t\twindowHeight,\n\t\t\t\t\t\t\t\tsetWindowWidth,\n\t\t\t\t\t\t\t\tresizable,\n\t\t\t\t\t\t\t\tsetResizable,\n\t\t\t\t\t\t\t\tabstractPosition,\n\t\t\t\t\t\t\t\tsetAbstractPosition,\n\t\t\t\t\t\t\t\topacity,\n\t\t\t\t\t\t\t\tsetOpacity,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{currentAppType === \"web\" && !appService && (\n\t\t\t\t\t\t<AppEditPage_Behavior\n\t\t\t\t\t\t\t{...{\n\t\t\t\t\t\t\t\tallowAutoArrange,\n\t\t\t\t\t\t\t\tsetAllowAutoArrange,\n\t\t\t\t\t\t\t\tallowGrouping,\n\t\t\t\t\t\t\t\tsetAllowGrouping,\n\t\t\t\t\t\t\t\tallowSnapping,\n\t\t\t\t\t\t\t\tsetAllowSnapping,\n\t\t\t\t\t\t\t\tallowTabbing,\n\t\t\t\t\t\t\t\tsetAllowTabbing,\n\t\t\t\t\t\t\t\tallowTiling,\n\t\t\t\t\t\t\t\tsetAllowTiling,\n\t\t\t\t\t\t\t\tenableTitleBar,\n\t\t\t\t\t\t\t\tsetEnableTitleBar,\n\t\t\t\t\t\t\t\ttitlebarType,\n\t\t\t\t\t\t\t\tsetTitlebarType,\n\t\t\t\t\t\t\t\taot,\n\t\t\t\t\t\t\t\tsetAot,\n\t\t\t\t\t\t\t\tenableAOT,\n\t\t\t\t\t\t\t\tsetEnableAOT,\n\t\t\t\t\t\t\t\tallowMinimize,\n\t\t\t\t\t\t\t\tsetAllowMinimize,\n\t\t\t\t\t\t\t\thideMinimize,\n\t\t\t\t\t\t\t\tsetHideMinimize,\n\t\t\t\t\t\t\t\tallowMaximize,\n\t\t\t\t\t\t\t\tsetAllowMaximize,\n\t\t\t\t\t\t\t\thideMaximize,\n\t\t\t\t\t\t\t\tsetHideMaximize,\n\t\t\t\t\t\t\t\thideClose,\n\t\t\t\t\t\t\t\tsetHideClose,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{currentAppType !== \"assimilation\" && (\n\t\t\t\t\t\t<AppEditPage_Interop\n\t\t\t\t\t\t\t{...{\n\t\t\t\t\t\t\t\tappService,\n\t\t\t\t\t\t\t\tautoConnect,\n\t\t\t\t\t\t\t\tsetAutoConnect,\n\t\t\t\t\t\t\t\tintentData,\n\t\t\t\t\t\t\t\tsetIntentData,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t<AppEditPage_Component\n\t\t\t\t\t\t{...{\n\t\t\t\t\t\t\tcurrentAppType,\n\t\t\t\t\t\t\tsecurity,\n\t\t\t\t\t\t\tsetSecurity,\n\t\t\t\t\t\t\tnative_windowSpawnTimeout,\n\t\t\t\t\t\t\tsetNative_windowSpawnTimeout,\n\t\t\t\t\t\t\tappService,\n\t\t\t\t\t\t\tsingleton,\n\t\t\t\t\t\t\tsetSingleton,\n\t\t\t\t\t\t\tspawnOnStartup,\n\t\t\t\t\t\t\tsetSpawnOnStartup,\n\t\t\t\t\t\t\tlaunchableByUser,\n\t\t\t\t\t\t\tsetLaunchableByUser,\n\t\t\t\t\t\t\tisEvergreen,\n\t\t\t\t\t\t\tsetIsEvergreen,\n\t\t\t\t\t\t\tenableAffinity,\n\t\t\t\t\t\t\tsetEnableAffinity,\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t{currentAppType !== \"Citrix\" && !appService && (\n\t\t\t\t\t\t<AppEditPage_Workspace\n\t\t\t\t\t\t\t{...{\n\t\t\t\t\t\t\t\tcurrentAppType,\n\t\t\t\t\t\t\t\taddToWorkspace,\n\t\t\t\t\t\t\t\tsetAddToWorkspace,\n\t\t\t\t\t\t\t\tpersistURL,\n\t\t\t\t\t\t\t\tsetPersistURL,\n\t\t\t\t\t\t\t\tpersistPath,\n\t\t\t\t\t\t\t\tsetPersistPath,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</Accordion>\n\t\t\t</div>\n\n\t\t\t<div className=\"app-edit-actions\">\n\t\t\t\t<div>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tfashion=\"danger\"\n\t\t\t\t\t\ttext=\"Remove app\"\n\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\tremoveApplicationFn();\n\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\n\t\t\t\t<div className=\"app-actions-right-wrapper\">\n\t\t\t\t\t<Button fashion=\"ghost\" text=\"Cancel\" onClick={cancelFn} />\n\t\t\t\t\t<Button fashion=\"secondary\" text=\"Save\" disabled={disableSubmit} onClick={clickSubmit} />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</>\n\t);\n};\n"]}
1
+ {"version":3,"file":"AppEditPage.js","sourceRoot":"","sources":["../../../src/components/sdd/AppEditPage.tsx"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright 2017 - 2020 by ChartIQ, Inc.\n * All rights reserved.\n */\n\nimport React, { useState } from \"react\";\nimport { BootStage } from \"@finsemble/finsemble-api/types/services/systemManager/types\";\nimport { FileInput } from \"../common/FileInput\";\nimport { Button } from \"../common/Button\";\nimport { validateFilename, VALID_APP_EXTENSIONS } from \"../common/file_helpers\";\nimport { Tooltip } from \"../common/Tooltip\";\nimport { Accordion } from \"../common/Accordion\";\nimport { Checkbox } from \"../common/Checkbox\";\nimport * as Types from \"../../types/smartDesktopDesignerTypes\";\nimport DefaultDropdownButton from \"../shared/DefaultDropdownButton\";\nimport \"../common/css/application-edit-page.css\";\nimport { SmartDesktopClient } from \"./smartDesktopClient\";\nimport { AppEditPage_DebugToolkit } from \"./appEditPage/DebugToolkit\";\nimport { AppEditPage_SelectConnect } from \"./appEditPage/SelectConnect\";\nimport { AppEditPage_Preloads } from \"./appEditPage/Preloads\";\nimport { AppEditPage_Position } from \"./appEditPage/Position\";\nimport { AppEditPage_Behavior } from \"./appEditPage/Behavior\";\nimport { AppEditPage_Interop } from \"./appEditPage/Interop\";\nimport { AppEditPage_Component } from \"./appEditPage/Component\";\nimport { AppEditPage_Workspace } from \"./appEditPage/Workspace\";\n\nconst DEFAULT_WINDOW_WIDTH = 1280;\nconst DEFAULT_WINDOW_HEIGHT = 600;\nconst MINIMUM_WINDOW_WIDTH = 0;\nconst MINIMUM_WINDOW_HEIGHT = 0;\nconst SELECTABLE_BOOT_PHASE_STAGES: BootStage[] = [\"preuser\", \"preuser2\", \"preuser3\", \"preuser4\", \"earlyuser\", \"user\"];\n\nexport const defaultAppData = {\n\tname: \"\",\n\tabstractPosition: 0,\n\taddToWorkspace: true,\n\talias: \"\",\n\tallowAutoArrange: true,\n\tallowGrouping: true,\n\tallowMinimize: true,\n\tallowMaximize: true,\n\tallowSnapping: true,\n\tallowTabbing: true,\n\tallowTiling: true,\n\talwaysOnTop: false,\n\tappArguments: \"\",\n\tappType: \"WEB\",\n\tautoConnect: false,\n\tdescription: \"\",\n\tenableAffinity: true,\n\tenableAOT: false,\n\tenableTitleBar: true,\n\theight: DEFAULT_WINDOW_HEIGHT,\n\thideClose: false,\n\thideMaximize: false,\n\thideMinimize: false,\n\ticonURL: \"\",\n\tintents: [],\n\tisEvergreen: false,\n\tlaunchableByUser: true,\n\tnative_windowSpawnTimeout: 30,\n\topacity: 1,\n\tpath: \"\",\n\tpersistPath: true,\n\tpersistURL: true,\n\tpreloads: [],\n\tresizable: true,\n\trules: [],\n\tsecurity: \"trusted\",\n\tsingleton: false,\n\tspawnOnStartup: false,\n\ttags: [],\n\ttitlebarType: \"injected\",\n\turl: \"\",\n\twidth: DEFAULT_WINDOW_WIDTH,\n\tbootPhase: \"preuser\",\n\twaitForInitialization: true,\n\tserviceVisible: false,\n\tdevConsole: false,\n} as Types.ApplicationSaveData;\n\nconst convertIntentData = (intentArray: string[][]): Types.IntentEntry[] =>\n\tintentArray.slice(0, -1).map(([name, displayName, contexts]) => {\n\t\treturn { name, displayName, contexts: contexts.split(\",\") };\n\t});\n\nconst appTypeDisplayNameMap = {\n\tweb: \"Web\",\n\tnative: \"Native\",\n\tassimilation: \"Native\",\n\tcitrix: \"Virtual\",\n};\n\nexport type AppEditPageProps = {\n\tstartingDisplayName: string;\n\tstartingAppType: string;\n\tstartingWindowURL: string;\n\tstartingNativePath: string;\n\tappData?: Types.ApplicationSaveData;\n\tvalidateURL: (s: string) => boolean;\n\tremoveApplicationFn: () => void;\n\tcancelFn: () => void;\n\tsubmitFn: (data: Types.ApplicationSaveData) => void;\n\taddApp: typeof SmartDesktopClient.addApp;\n\tisInboundInteropAuthorized: typeof SmartDesktopClient.isInboundInteropAuthorized;\n\tisOutboundInteropAuthorized: typeof SmartDesktopClient.isOutboundInteropAuthorized;\n\tpreloadAliasList: string[];\n\tappService: boolean;\n};\n\nexport const AppEditPage = ({\n\tstartingDisplayName = \"\",\n\tstartingAppType = \"web\",\n\tstartingWindowURL = \"\",\n\tstartingNativePath = \"\",\n\tappData = defaultAppData,\n\tvalidateURL,\n\tremoveApplicationFn = () => {},\n\tcancelFn = () => {},\n\tsubmitFn,\n\taddApp,\n\tisInboundInteropAuthorized,\n\tisOutboundInteropAuthorized,\n\tpreloadAliasList = [],\n\tappService = false,\n}: AppEditPageProps) => {\n\tconst [displayName, setDisplayName] = useState(startingDisplayName);\n\tconst [currentAppType, setCurrentAppType] = useState(startingAppType);\n\tconst [windowURL, setWindowURL] = useState(startingWindowURL);\n\tconst [nativePath, setNativePath] = useState(startingNativePath);\n\n\tconst [abstractPosition, setAbstractPosition] = useState(appData.abstractPosition);\n\tconst [addToWorkspace, setAddToWorkspace] = useState(appData.addToWorkspace);\n\tconst [enableAffinity, setEnableAffinity] = useState(appData.enableAffinity);\n\tconst [alias, setAlias] = useState(appData.alias);\n\tconst [allowAutoArrange, setAllowAutoArrange] = useState(appData.allowAutoArrange);\n\tconst [allowGrouping, setAllowGrouping] = useState(appData.allowGrouping);\n\tconst [allowMinimize, setAllowMinimize] = useState(appData.allowMinimize);\n\tconst [allowMaximize, setAllowMaximize] = useState(appData.allowMaximize);\n\tconst [allowSnapping, setAllowSnapping] = useState(appData.allowSnapping);\n\tconst [allowTabbing, setAllowTabbing] = useState(appData.allowTabbing);\n\tconst [allowTiling, setAllowTiling] = useState(appData.allowTiling);\n\tconst [aot, setAot] = useState(appData.alwaysOnTop);\n\tconst [appArguments, setAppArguments] = useState(appData.appArguments);\n\tconst [autoConnect, setAutoConnect] = useState(appData.autoConnect);\n\tconst [componentDescription, setComponentDescription] = useState(appData.description);\n\tconst [enableAOT, setEnableAOT] = useState(appData.enableAOT);\n\tconst [enableTitleBar, setEnableTitleBar] = useState(appData.enableTitleBar);\n\tconst [hideClose, setHideClose] = useState(appData.hideClose);\n\tconst [hideMaximize, setHideMaximize] = useState(appData.hideMaximize);\n\tconst [hideMinimize, setHideMinimize] = useState(appData.hideMinimize);\n\tconst [iconURL, setIconURL] = useState(appData.iconURL);\n\tconst [isEvergreen, setIsEvergreen] = useState(appData.isEvergreen);\n\tconst [launchableByUser, setLaunchableByUser] = useState(appData.launchableByUser);\n\tconst [native_windowSpawnTimeout, setNative_windowSpawnTimeout] = useState(appData.native_windowSpawnTimeout);\n\tconst [opacity, setOpacity] = useState(appData.opacity);\n\tconst [persistPath, setPersistPath] = useState(appData.persistPath);\n\tconst [persistURL, setPersistURL] = useState(appData.persistURL);\n\tconst [preloads, setPreloads] = useState(appData.preloads);\n\tconst [resizable, setResizable] = useState(appData.resizable);\n\tconst [rules, setRules] = useState(appData.rules);\n\tconst [security, setSecurity] = useState(appData.security);\n\tconst [singleton, setSingleton] = useState(appData.singleton);\n\tconst [spawnOnStartup, setSpawnOnStartup] = useState(appData.spawnOnStartup);\n\tconst [titlebarType, setTitlebarType] = useState(appData.titlebarType);\n\tconst [windowHeight, setWindowHeight] = useState<number | string>(appData.height || DEFAULT_WINDOW_HEIGHT);\n\tconst [windowWidth, setWindowWidth] = useState<number | string>(appData.width || DEFAULT_WINDOW_WIDTH);\n\tconst [selectConnectTrustAll, setSelectConnectTrustAll] = useState(\n\t\t!Array.isArray(appData.rules) || appData.rules.filter((rule) => \"authorize\" in rule).length === 0\n\t);\n\tconst [intentData, setIntentData] = useState<string[][]>(\n\t\tappData.intents?.map((intent) => [intent.name, intent.displayName, intent.contexts?.join(\", \") ?? \"\"])\n\t);\n\tconst [bootPhase, setBootPhase] = useState<BootStage | undefined>(appData.bootPhase);\n\tconst [waitForInitialization, setWaitForInitialization] = useState(appData.waitForInitialization);\n\tconst [serviceVisible, setServiceVisible] = useState(appData.serviceVisible);\n\tconst [devConsole, setDevConsole] = useState(appData.devConsole);\n\n\tconst isWindowURLValid = validateURL(windowURL);\n\tconst isHeightValid = !(typeof windowHeight !== \"number\" || windowHeight < MINIMUM_WINDOW_HEIGHT);\n\tconst isWidthValid = !(typeof windowWidth !== \"number\" || windowWidth < MINIMUM_WINDOW_WIDTH);\n\n\tconst isValidInput = () => {\n\t\t// Confirm that the app's dimensions and displayName are valid\n\t\tif (!isWidthValid || !isHeightValid || displayName === undefined || displayName === \"\") {\n\t\t\treturn false;\n\t\t}\n\n\t\t// App-specific validation checks\n\t\tif (currentAppType === \"web\") {\n\t\t\t// For web apps, confirm that the URL is valid\n\t\t\treturn isWindowURLValid && windowURL.length > 0;\n\t\t} else if (currentAppType === \"Citrix\") {\n\t\t\t// For Citrix, there are no specific confirmations\n\t\t\treturn true;\n\t\t} else {\n\t\t\t// For native/assimilated, make sure the path is fine\n\t\t\treturn !(!nativePath || (nativePath.length === 0 && validateFilename(VALID_APP_EXTENSIONS, nativePath)));\n\t\t}\n\t};\n\n\tconst disableSubmit = !isValidInput();\n\n\tconst clickSubmit = () => {\n\t\t// Shouldn't be possible to get in a state where windowWith/windowHeight aren't numbers,\n\t\t// but let's check anyway\n\t\tif (!(typeof windowWidth === \"number\" && typeof windowHeight === \"number\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tsubmitFn({\n\t\t\tname: displayName,\n\t\t\turl: windowURL,\n\t\t\tpath: nativePath,\n\t\t\tappType: currentAppType,\n\t\t\tappArguments: appArguments,\n\t\t\twidth: windowWidth,\n\t\t\theight: windowHeight,\n\t\t\tdescription: componentDescription,\n\t\t\ticonURL,\n\t\t\trules: selectConnectTrustAll ? [] : rules,\n\t\t\tintents: convertIntentData(intentData),\n\t\t\tpersistPath,\n\t\t\tpersistURL,\n\t\t\taddToWorkspace,\n\t\t\talias,\n\t\t\tallowAutoArrange,\n\t\t\tallowGrouping,\n\t\t\tallowMinimize,\n\t\t\tallowMaximize,\n\t\t\tallowSnapping,\n\t\t\tallowTabbing,\n\t\t\tallowTiling,\n\t\t\tenableAOT,\n\t\t\tenableTitleBar,\n\t\t\thideClose,\n\t\t\thideMinimize,\n\t\t\thideMaximize,\n\t\t\tautoConnect,\n\t\t\tabstractPosition,\n\t\t\tresizable,\n\t\t\talwaysOnTop: aot,\n\t\t\topacity,\n\t\t\tsingleton,\n\t\t\tspawnOnStartup,\n\t\t\tlaunchableByUser,\n\t\t\tsecurity,\n\t\t\tisEvergreen,\n\t\t\tnative_windowSpawnTimeout,\n\t\t\tpreloads,\n\t\t\ttitlebarType,\n\t\t\tbootPhase,\n\t\t\twaitForInitialization,\n\t\t\tserviceVisible,\n\t\t\tdevConsole,\n\t\t});\n\t};\n\n\t// When we try to use the form/type=submit interaction, it acts like we pressed the back button, rather than the submit button\n\tconst submitOnEnter = (e: React.KeyboardEvent<HTMLInputElement>) => {\n\t\tif (e.key !== \"Enter\") {\n\t\t\treturn;\n\t\t}\n\n\t\te.preventDefault();\n\t\tif (!disableSubmit) {\n\t\t\tclickSubmit();\n\t\t}\n\t};\n\n\tconst bootPhaseOptions = SELECTABLE_BOOT_PHASE_STAGES.map((optionLabel) => {\n\t\treturn {\n\t\t\toptionLabel,\n\t\t\tclickHandler: () => {\n\t\t\t\tsetBootPhase(optionLabel);\n\t\t\t},\n\t\t};\n\t});\n\n\treturn (\n\t\t<>\n\t\t\t<div className=\"app-edit-field\">\n\t\t\t\t<h2 className=\"app-edit-app-name\">\n\t\t\t\t\t{iconURL !== \"\" && iconURL !== undefined && <img src={iconURL} className=\"app-icon\" />}\n\t\t\t\t\t{displayName}\n\t\t\t\t</h2>\n\t\t\t</div>\n\t\t\t<div className=\"app-edit-field\">\n\t\t\t\t<table role=\"presentation\" className=\"always-present accordion-edit-block\">\n\t\t\t\t\t<tbody>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td className=\"label-col\">\n\t\t\t\t\t\t\t\t<label>App type</label>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<td className=\"content-col\">\n\t\t\t\t\t\t\t\t<div className=\"app-edit-type-field\">\n\t\t\t\t\t\t\t\t\t{appTypeDisplayNameMap[currentAppType.toLowerCase() as keyof typeof appTypeDisplayNameMap]}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<label htmlFor=\"app-name\">Name</label>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\tid=\"app-name\"\n\t\t\t\t\t\t\t\t\tvalue={displayName}\n\t\t\t\t\t\t\t\t\tplaceholder=\"Untitled Application\"\n\t\t\t\t\t\t\t\t\tonKeyDown={submitOnEnter}\n\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\tsetDisplayName(e.target.value);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t{currentAppType === \"Citrix\" && (\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<label htmlFor=\"app-alias\">Virtual app name</label>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\t\tid=\"app-alias\"\n\t\t\t\t\t\t\t\t\t\tvalue={alias}\n\t\t\t\t\t\t\t\t\t\tplaceholder=\"Virtual application name\"\n\t\t\t\t\t\t\t\t\t\tonKeyDown={submitOnEnter}\n\t\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\t\tsetAlias(e.target.value);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{!appService && (\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<label htmlFor=\"app-icon-url\">Icon URL</label>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\t\tid=\"app-icon-url\"\n\t\t\t\t\t\t\t\t\t\tvalue={iconURL}\n\t\t\t\t\t\t\t\t\t\tonKeyDown={submitOnEnter}\n\t\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\t\tsetIconURL(e.target.value);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{currentAppType !== \"web\" && currentAppType !== \"Citrix\" && (\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<label id=\"api-access-label\">API access</label>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<div className=\"app-edit-type-field\">\n\t\t\t\t\t\t\t\t\t\t<Checkbox\n\t\t\t\t\t\t\t\t\t\t\tid=\"api-access\"\n\t\t\t\t\t\t\t\t\t\t\tlabel=\"API access\"\n\t\t\t\t\t\t\t\t\t\t\tshowLabel={false}\n\t\t\t\t\t\t\t\t\t\t\tchecked={currentAppType === \"native\"}\n\t\t\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\t\t\tsetCurrentAppType(currentAppType === \"native\" ? \"assimilation\" : \"native\");\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{currentAppType === \"web\" && (\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<label htmlFor=\"app-url\">App URL</label>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\t\tid=\"app-url\"\n\t\t\t\t\t\t\t\t\t\tplaceholder=\"https://...\"\n\t\t\t\t\t\t\t\t\t\tvalue={windowURL}\n\t\t\t\t\t\t\t\t\t\taria-invalid={!isWindowURLValid}\n\t\t\t\t\t\t\t\t\t\tonKeyDown={submitOnEnter}\n\t\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\t\tsetWindowURL(e.target.value);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{(currentAppType === \"native\" || currentAppType === \"assimilation\") && (\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<label>File path</label>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<div className=\"app-file-input\">\n\t\t\t\t\t\t\t\t\t\t<FileInput\n\t\t\t\t\t\t\t\t\t\t\tacceptTypes={VALID_APP_EXTENSIONS}\n\t\t\t\t\t\t\t\t\t\t\tshouldUpload={false}\n\t\t\t\t\t\t\t\t\t\t\tvalue={nativePath}\n\t\t\t\t\t\t\t\t\t\t\tonSetValue={(value: string) => {\n\t\t\t\t\t\t\t\t\t\t\t\tsetNativePath(value);\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\ttextEditable={true}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{currentAppType !== \"web\" && (\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<label htmlFor=\"app-arguments\">Arguments</label>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\t\tid=\"app-arguments\"\n\t\t\t\t\t\t\t\t\t\tplaceholder=\"E.g: mode=a --type b\"\n\t\t\t\t\t\t\t\t\t\tvalue={appArguments}\n\t\t\t\t\t\t\t\t\t\tonKeyDown={submitOnEnter}\n\t\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\t\tsetAppArguments(e.target.value);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<Tooltip>If your app expects arguments on startup, specify them here.</Tooltip>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{!appService && (\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<label htmlFor=\"app-description\">Description</label>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td className=\"description\">\n\t\t\t\t\t\t\t\t\t<textarea\n\t\t\t\t\t\t\t\t\t\tid=\"app-description\"\n\t\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\t\tsetComponentDescription(e.target.value);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tvalue={componentDescription}\n\t\t\t\t\t\t\t\t\t></textarea>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{appService && (\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<label htmlFor=\"bootPhase\">Boot phase</label>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td className=\"bootPhase-entry\">\n\t\t\t\t\t\t\t\t\t<DefaultDropdownButton\n\t\t\t\t\t\t\t\t\t\tallowEmpty={false}\n\t\t\t\t\t\t\t\t\t\tcaretLocation=\"right\"\n\t\t\t\t\t\t\t\t\t\tdefaultSelection={bootPhaseOptions.find((opt) => opt.optionLabel === bootPhase)}\n\t\t\t\t\t\t\t\t\t\tbuttonOptions={bootPhaseOptions}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{appService && (\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<label htmlFor=\"initialization\">Wait for initialization</label>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<Checkbox\n\t\t\t\t\t\t\t\t\t\tchecked={waitForInitialization}\n\t\t\t\t\t\t\t\t\t\tlabel=\"Wait for initialization\"\n\t\t\t\t\t\t\t\t\t\tshowLabel={false}\n\t\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\t\tsetWaitForInitialization(!waitForInitialization);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</tbody>\n\t\t\t\t</table>\n\t\t\t</div>\n\n\t\t\t{appService && (\n\t\t\t\t<AppEditPage_DebugToolkit\n\t\t\t\t\t{...{\n\t\t\t\t\t\tserviceVisible,\n\t\t\t\t\t\tsetServiceVisible,\n\t\t\t\t\t\tdevConsole,\n\t\t\t\t\t\tsetDevConsole,\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t<div className=\"app-edit-field\">\n\t\t\t\t<Accordion id=\"config\" size=\"medium\" label=\"Optional config settings\">\n\t\t\t\t\t{currentAppType !== \"assimilation\" && (\n\t\t\t\t\t\t<AppEditPage_SelectConnect\n\t\t\t\t\t\t\trules={appData.rules}\n\t\t\t\t\t\t\t{...{\n\t\t\t\t\t\t\t\tselectConnectTrustAll,\n\t\t\t\t\t\t\t\tsetSelectConnectTrustAll,\n\t\t\t\t\t\t\t\tdisplayName,\n\t\t\t\t\t\t\t\tsetRules,\n\t\t\t\t\t\t\t\tisInboundInteropAuthorized,\n\t\t\t\t\t\t\t\tisOutboundInteropAuthorized,\n\t\t\t\t\t\t\t\taddApp,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{currentAppType === \"web\" && (\n\t\t\t\t\t\t<AppEditPage_Preloads\n\t\t\t\t\t\t\tpreloads={appData.preloads}\n\t\t\t\t\t\t\t{...{\n\t\t\t\t\t\t\t\tpreloadAliasList,\n\t\t\t\t\t\t\t\tappData,\n\t\t\t\t\t\t\t\tsetPreloads,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{currentAppType !== \"Citrix\" && !appService && (\n\t\t\t\t\t\t<AppEditPage_Position\n\t\t\t\t\t\t\t{...{\n\t\t\t\t\t\t\t\tisWidthValid,\n\t\t\t\t\t\t\t\twindowWidth,\n\t\t\t\t\t\t\t\tsetWindowHeight,\n\t\t\t\t\t\t\t\tisHeightValid,\n\t\t\t\t\t\t\t\twindowHeight,\n\t\t\t\t\t\t\t\tsetWindowWidth,\n\t\t\t\t\t\t\t\tresizable,\n\t\t\t\t\t\t\t\tsetResizable,\n\t\t\t\t\t\t\t\tabstractPosition,\n\t\t\t\t\t\t\t\tsetAbstractPosition,\n\t\t\t\t\t\t\t\topacity,\n\t\t\t\t\t\t\t\tsetOpacity,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{currentAppType === \"web\" && !appService && (\n\t\t\t\t\t\t<AppEditPage_Behavior\n\t\t\t\t\t\t\t{...{\n\t\t\t\t\t\t\t\tallowAutoArrange,\n\t\t\t\t\t\t\t\tsetAllowAutoArrange,\n\t\t\t\t\t\t\t\tallowGrouping,\n\t\t\t\t\t\t\t\tsetAllowGrouping,\n\t\t\t\t\t\t\t\tallowSnapping,\n\t\t\t\t\t\t\t\tsetAllowSnapping,\n\t\t\t\t\t\t\t\tallowTabbing,\n\t\t\t\t\t\t\t\tsetAllowTabbing,\n\t\t\t\t\t\t\t\tallowTiling,\n\t\t\t\t\t\t\t\tsetAllowTiling,\n\t\t\t\t\t\t\t\tenableTitleBar,\n\t\t\t\t\t\t\t\tsetEnableTitleBar,\n\t\t\t\t\t\t\t\ttitlebarType,\n\t\t\t\t\t\t\t\tsetTitlebarType,\n\t\t\t\t\t\t\t\taot,\n\t\t\t\t\t\t\t\tsetAot,\n\t\t\t\t\t\t\t\tenableAOT,\n\t\t\t\t\t\t\t\tsetEnableAOT,\n\t\t\t\t\t\t\t\tallowMinimize,\n\t\t\t\t\t\t\t\tsetAllowMinimize,\n\t\t\t\t\t\t\t\thideMinimize,\n\t\t\t\t\t\t\t\tsetHideMinimize,\n\t\t\t\t\t\t\t\tallowMaximize,\n\t\t\t\t\t\t\t\tsetAllowMaximize,\n\t\t\t\t\t\t\t\thideMaximize,\n\t\t\t\t\t\t\t\tsetHideMaximize,\n\t\t\t\t\t\t\t\thideClose,\n\t\t\t\t\t\t\t\tsetHideClose,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{currentAppType !== \"assimilation\" && (\n\t\t\t\t\t\t<AppEditPage_Interop\n\t\t\t\t\t\t\t{...{\n\t\t\t\t\t\t\t\tappService,\n\t\t\t\t\t\t\t\tautoConnect,\n\t\t\t\t\t\t\t\tsetAutoConnect,\n\t\t\t\t\t\t\t\tintentData,\n\t\t\t\t\t\t\t\tsetIntentData,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t<AppEditPage_Component\n\t\t\t\t\t\t{...{\n\t\t\t\t\t\t\tcurrentAppType,\n\t\t\t\t\t\t\tsecurity,\n\t\t\t\t\t\t\tsetSecurity,\n\t\t\t\t\t\t\tnative_windowSpawnTimeout,\n\t\t\t\t\t\t\tsetNative_windowSpawnTimeout,\n\t\t\t\t\t\t\tappService,\n\t\t\t\t\t\t\tsingleton,\n\t\t\t\t\t\t\tsetSingleton,\n\t\t\t\t\t\t\tspawnOnStartup,\n\t\t\t\t\t\t\tsetSpawnOnStartup,\n\t\t\t\t\t\t\tlaunchableByUser,\n\t\t\t\t\t\t\tsetLaunchableByUser,\n\t\t\t\t\t\t\tisEvergreen,\n\t\t\t\t\t\t\tsetIsEvergreen,\n\t\t\t\t\t\t\tenableAffinity,\n\t\t\t\t\t\t\tsetEnableAffinity,\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t{currentAppType !== \"Citrix\" && !appService && (\n\t\t\t\t\t\t<AppEditPage_Workspace\n\t\t\t\t\t\t\t{...{\n\t\t\t\t\t\t\t\tcurrentAppType,\n\t\t\t\t\t\t\t\taddToWorkspace,\n\t\t\t\t\t\t\t\tsetAddToWorkspace,\n\t\t\t\t\t\t\t\tpersistURL,\n\t\t\t\t\t\t\t\tsetPersistURL,\n\t\t\t\t\t\t\t\tpersistPath,\n\t\t\t\t\t\t\t\tsetPersistPath,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</Accordion>\n\t\t\t</div>\n\n\t\t\t<div className=\"app-edit-actions\">\n\t\t\t\t<div>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tfashion=\"danger\"\n\t\t\t\t\t\ttext=\"Remove app\"\n\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\tremoveApplicationFn();\n\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\n\t\t\t\t<div className=\"app-actions-right-wrapper\">\n\t\t\t\t\t<Button fashion=\"ghost\" text=\"Cancel\" onClick={cancelFn} />\n\t\t\t\t\t<Button fashion=\"secondary\" text=\"Save\" disabled={disableSubmit} onClick={clickSubmit} />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</>\n\t);\n};\n"]}
@@ -1,10 +1,11 @@
1
1
  div.frontmatter {
2
2
  opacity: 0.75;
3
3
  font-family: OpenSans;
4
- font-size: 12px;
4
+ font-size: 13px;
5
5
  font-weight: normal;
6
6
  font-stretch: normal;
7
7
  margin-bottom: 22px;
8
+ max-width: 600px;
8
9
  }
9
10
 
10
11
  div.frontmatter a {
@@ -133,8 +133,8 @@ export const Applications = (props) => {
133
133
  addDroppedApp(file, index, true);
134
134
  serviceWasUpdated();
135
135
  };
136
- const addAppByUrl = (url, displayName, service = false) => {
137
- const appId = String(new Date().getTime());
136
+ const addAppByUrl = (url, displayName, id = "", service = false) => {
137
+ const appId = id || String(new Date().getTime());
138
138
  setEditMode(false);
139
139
  // @todo: show loading spinner
140
140
  props.getAppConfigTemplate().then((response) => {
@@ -158,11 +158,11 @@ export const Applications = (props) => {
158
158
  });
159
159
  };
160
160
  const addAppServiceByUrl = (url, displayName) => {
161
- addAppByUrl(url, displayName, true);
161
+ addAppByUrl(url, displayName, "", true);
162
162
  serviceWasUpdated();
163
163
  };
164
- const addAppByPath = (path, displayName, apiAccess, service = false) => {
165
- const appId = String(new Date().getTime());
164
+ const addAppByPath = (path, displayName, apiAccess, id = "", service = false) => {
165
+ const appId = id || String(new Date().getTime());
166
166
  setEditMode(false);
167
167
  // @todo: show loading spinner
168
168
  props.getAppConfigTemplate().then((response) => {
@@ -189,8 +189,8 @@ export const Applications = (props) => {
189
189
  addAppByPath(url, displayName, true);
190
190
  serviceWasUpdated();
191
191
  };
192
- const addAppCitrix = (aliasName, displayName) => {
193
- const appId = String(new Date().getTime());
192
+ const addAppCitrix = (aliasName, displayName, id = "") => {
193
+ const appId = id || String(new Date().getTime());
194
194
  setEditMode(false);
195
195
  // @todo: show loading spinner
196
196
  props.getAppConfigTemplate().then((response) => {
@@ -1 +1 @@
1
- {"version":3,"file":"Applications.js","sourceRoot":"","sources":["../../../src/components/sdd/Applications.tsx"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright 2017 - 2020 by ChartIQ, Inc.\n * All rights reserved.\n */\n\nimport React, { useEffect, useState } from \"react\";\nimport { useSelector, useDispatch } from \"../../store\";\nimport { View } from \"./View\";\nimport { Header } from \"../common/Header\";\nimport { Button } from \"../common/Button\";\nimport { Content } from \"./Content\";\nimport { Application, ApplicationCloseReason } from \"./Application\";\nimport { ItemList, ItemListProps } from \"./ItemList\";\nimport { SmartDesktopDesignerActions } from \"../../actions/smartDesktopDesignerActions\";\nimport { RootState } from \"../../reducers/rootReducer\";\nimport { DropZone, FileWithPath } from \"../common/DropZone\";\nimport { generateDefaultConfig } from \"./sdd_helpers\";\nimport { MenuType, ProjectError, PreloadMap } from \"../../types/smartDesktopDesignerTypes\";\nimport { launchTutorialLink } from \"./common/fsbl_functions\";\nimport { validateFilename, VALID_APP_EXTENSIONS } from \"../common/file_helpers\";\nimport { ApplicationProps } from \"./Application\";\nimport { services } from \"@finsemble/finsemble-api/\";\nimport { AddApp } from \"./AddApp\";\nimport { SmartDesktopClient } from \"./smartDesktopClient\";\nimport { Tab } from \"../common/Tab\";\n\ntype AppDefinition = services.Interop.types.AppDefinition;\n\nexport type ApplicationsProps = {\n\tgetApps: typeof SmartDesktopClient.getApps;\n\taddApp: typeof SmartDesktopClient.addApp;\n\tdeleteApp: typeof SmartDesktopClient.deleteApp;\n\tupdateApp: typeof SmartDesktopClient.updateApp;\n\tgetAppConfigTemplate: typeof SmartDesktopClient.getAppConfigTemplate;\n\tgetMenus: typeof SmartDesktopClient.getMenus;\n\taddMenu: typeof SmartDesktopClient.addMenu;\n\tupdateMenu: typeof SmartDesktopClient.updateMenu;\n\tgetPreloads: typeof SmartDesktopClient.getPreloads;\n\tisInboundInteropAuthorized: typeof SmartDesktopClient.isInboundInteropAuthorized;\n\tisOutboundInteropAuthorized: typeof SmartDesktopClient.isOutboundInteropAuthorized;\n};\n\nconst EMPTY_MENU_ERROR: ProjectError = {\n\tviewId: \"applications\",\n\tmessage: \"One or more of your app menus is empty\",\n};\n\nconst handleAppService = (config: AppDefinition) =>\n\t({\n\t\t...config,\n\t\tmanifest: {\n\t\t\t...config.manifest,\n\t\t\tappService: true,\n\t\t\tforeign: {\n\t\t\t\t...(config.manifest?.foreign ?? {}),\n\t\t\t\tcomponents: {\n\t\t\t\t\t...(config.manifest?.foreign?.components ?? {}),\n\t\t\t\t\t\"App Launcher\": {\n\t\t\t\t\t\t...(config.manifest?.foreign?.components[\"App Launcher\"] ?? {}),\n\t\t\t\t\t\tlaunchableByUser: false,\n\t\t\t\t\t},\n\t\t\t\t\t\"Window Manager\": {\n\t\t\t\t\t\t...(config.manifest?.foreign?.components[\"Window Manager\"] ?? {}),\n\t\t\t\t\t\tFSBLHeader: false,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t} as AppDefinition);\n\nexport const Applications = (props: ApplicationsProps) => {\n\tconst dispatch = useDispatch();\n\tconst [editMode, setEditMode] = useState(false);\n\tconst [tabAutoFocus, setTabAutoFocus] = useState(0);\n\n\tconst apps = useSelector((state: RootState) => state.smartDesktopDesigner.apps);\n\tconst menus = useSelector<MenuType>((state: RootState) => state.smartDesktopDesigner.menus);\n\tconst preloads = useSelector<PreloadMap>((state: RootState) => state.smartDesktopDesigner.preloads);\n\n\tconst newAppID = useSelector((state: RootState) => state.smartDesktopDesigner.newAppId);\n\n\tconst currentAppID = useSelector((state: RootState) => state.smartDesktopDesigner.currentAppId);\n\n\tif (Object.values(menus).every((menu) => menu.applications.length > 0)) {\n\t\tdispatch(SmartDesktopDesignerActions.delete_project_error(EMPTY_MENU_ERROR));\n\t} else {\n\t\tdispatch(SmartDesktopDesignerActions.set_project_error(EMPTY_MENU_ERROR));\n\t}\n\n\tfunction updateAppList() {\n\t\tprops.getApps().then((response: any) => {\n\t\t\tdispatch(SmartDesktopDesignerActions.update_apps(response.apps));\n\t\t});\n\t}\n\n\tconst updatePreloadList = async () => {\n\t\tconst { data } = await props.getPreloads();\n\t\tdispatch(SmartDesktopDesignerActions.update_preloads(data));\n\t};\n\n\tfunction setCurrentAppID(id: string | null) {\n\t\tif (id === null) {\n\t\t\tdispatch(SmartDesktopDesignerActions.new_app(null));\n\t\t}\n\n\t\tdispatch(SmartDesktopDesignerActions.set_current_app_id(id));\n\t\tupdateAppList();\n\t}\n\n\tconst removeAppID = (id: string) => {\n\t\t// Delete app from list of apps\n\t\tprops.deleteApp(id).then(({ err }: { err: string }) => {\n\t\t\tif (err) {\n\t\t\t\talert(err);\n\t\t\t}\n\t\t\tupdateAppList();\n\n\t\t\t// Remove reference to app from all menus\n\t\t\tprops.getMenus().then(({ menus: grabbedMenus }: { menus: MenuType }) => {\n\t\t\t\tObject.keys(grabbedMenus).forEach((menuId) => {\n\t\t\t\t\tif (!grabbedMenus[menuId].applications.includes(id)) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tgrabbedMenus[menuId].applications.splice(grabbedMenus[menuId].applications.indexOf(id), 1);\n\t\t\t\t\tprops.updateMenu(menuId, grabbedMenus[menuId]).then(() => {\n\t\t\t\t\t\tupdateAppList();\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t};\n\n\t/********* Lifecycle effects *********/\n\n\t// Call updateAppList once the component has mounted\n\t// Can't call out of an effect, or it will cause an endless loop\n\tuseEffect(() => {\n\t\tupdateAppList();\n\t\tupdatePreloadList();\n\t}, []);\n\n\tconst serviceWasUpdated = () => {\n\t\tFSBL.Clients.DialogManager.open(\n\t\t\t\"yesNo\",\n\t\t\t{\n\t\t\t\ttitle: `Restart Finsemble?`,\n\t\t\t\tquestion: `The changes to app services won’t take effect until you restart Finsemble. Do you want to restart now?`,\n\t\t\t\thideModalOnClose: true,\n\t\t\t\tshowCancelButton: false,\n\t\t\t\tnegativeResponseLabel: \"Later\",\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\tFSBL.restartApplication();\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t};\n\n\tconst addDroppedApp = (file: FileWithPath, index: number, service = false) => {\n\t\tconst appId = String(new Date().getTime() + index);\n\t\tconst { path } = file;\n\n\t\t// Confirm that the file is an executable\n\t\tif (path !== undefined && validateFilename(VALID_APP_EXTENSIONS, path)) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Generate defaults and then add app with those defaults\n\t\tprops.getAppConfigTemplate().then((response: any) => {\n\t\t\tconst { config }: { config: AppDefinition } = response;\n\t\t\t// Get generated displayName\n\t\t\tconst { displayName } = generateDefaultConfig({\n\t\t\t\t...config,\n\t\t\t\tpath,\n\t\t\t});\n\t\t\tconfig.name = displayName;\n\n\t\t\t// We generated appId above\n\t\t\tconfig.appId = appId;\n\n\t\t\t// A file was dropped, so we know this was a file, not a URL\n\t\t\tconfig.manifest = config.manifest ?? {};\n\t\t\tconfig.manifest.window = config.manifest.window ?? {};\n\t\t\tconfig.manifest.window.windowType = \"assimilation\";\n\t\t\tconfig.manifest.window.path = path;\n\t\t\tdelete config.manifest.window.url;\n\n\t\t\tif (service) {\n\t\t\t\tconfig.manifest.appService = true;\n\t\t\t}\n\n\t\t\t// Add app with defaults\n\t\t\tprops.addApp(appId, config).then(() => {\n\t\t\t\tupdateAppList();\n\t\t\t});\n\t\t});\n\t};\n\n\tconst addDroppedAppService = (file: FileWithPath, index: number) => {\n\t\taddDroppedApp(file, index, true);\n\t\tserviceWasUpdated();\n\t};\n\n\tconst addAppByUrl = (url: string, displayName: string, service = false) => {\n\t\tconst appId = String(new Date().getTime());\n\t\tsetEditMode(false);\n\t\t// @todo: show loading spinner\n\n\t\tprops.getAppConfigTemplate().then((response: { config: AppDefinition }) => {\n\t\t\tlet { config } = response;\n\t\t\tconfig.name = displayName;\n\t\t\tconfig.appId = appId;\n\n\t\t\t// A file was dropped, so we know this was a file, not a URL\n\t\t\tconfig.manifest = config.manifest ?? {};\n\t\t\tconfig.manifest.window = config.manifest.window ?? {};\n\t\t\tdelete config.manifest.window.windowType;\n\t\t\tdelete config.manifest.window.path;\n\t\t\tconfig.manifest.window.url = url;\n\n\t\t\tif (service) {\n\t\t\t\tconfig = handleAppService(config);\n\t\t\t}\n\n\t\t\t// Add app with defaults\n\t\t\tprops.addApp(appId, config).then(() => {\n\t\t\t\tupdateAppList();\n\t\t\t});\n\t\t});\n\t};\n\tconst addAppServiceByUrl = (url: string, displayName: string) => {\n\t\taddAppByUrl(url, displayName, true);\n\t\tserviceWasUpdated();\n\t};\n\tconst addAppByPath = (path: string, displayName: string, apiAccess: boolean, service = false) => {\n\t\tconst appId = String(new Date().getTime());\n\t\tsetEditMode(false);\n\t\t// @todo: show loading spinner\n\n\t\tprops.getAppConfigTemplate().then((response: { config: AppDefinition }) => {\n\t\t\tlet { config } = response;\n\t\t\tconfig.name = displayName;\n\t\t\tconfig.appId = appId;\n\n\t\t\t// A file was dropped, so we know this was a file, not a URL\n\t\t\tconfig.manifest = config.manifest ?? {};\n\t\t\tconfig.manifest.window = config.manifest.window ?? {};\n\t\t\tconfig.manifest.window.windowType = apiAccess ? \"native\" : \"assimilation\";\n\t\t\tconfig.manifest.window.path = path;\n\t\t\tdelete config.manifest.window.url;\n\n\t\t\tif (service) {\n\t\t\t\tconfig = handleAppService(config);\n\t\t\t}\n\n\t\t\t// Add app with defaults\n\t\t\tprops.addApp(appId, config).then(() => {\n\t\t\t\tupdateAppList();\n\t\t\t});\n\t\t});\n\t};\n\tconst addAppServiceByPath = (url: string, displayName: string) => {\n\t\taddAppByPath(url, displayName, true);\n\t\tserviceWasUpdated();\n\t};\n\n\tconst addAppCitrix = (aliasName: string, displayName: string) => {\n\t\tconst appId = String(new Date().getTime());\n\t\tsetEditMode(false);\n\t\t// @todo: show loading spinner\n\n\t\tprops.getAppConfigTemplate().then((response: { config: AppDefinition }) => {\n\t\t\tconst { config } = response;\n\t\t\tconfig.name = displayName;\n\t\t\tconfig.appId = appId;\n\n\t\t\t// A file was dropped, so we know this was a file, not a URL\n\t\t\tconfig.manifest = config.manifest ?? {};\n\t\t\tconfig.manifest.window = config.manifest.window ?? {};\n\t\t\tconfig.manifest.window.alias = aliasName;\n\t\t\t// @ts-ignore\n\t\t\tconfig.manifest.window.windowType = \"Citrix\";\n\t\t\tdelete config.manifest.window.url;\n\n\t\t\t// Unlike URL and Path, there will be no handling for service, because\n\t\t\t// we assume that no Citrix/Virtual app will be used as an app service\n\n\t\t\t// Add app with defaults\n\t\t\tprops.addApp(appId, config).then(() => {\n\t\t\t\tupdateAppList();\n\t\t\t});\n\t\t});\n\t};\n\n\tconst onClose = (reason: ApplicationCloseReason) => {\n\t\t// If you've closed the AppEditPage from App Services, make sure to return to the Services tab\n\t\tconst currentApp = apps.find((app: AppDefinition) => app.appId === currentAppID);\n\t\t// If the closed app was an app service, set autofocus to tab 1. Otherwise, tab 0.\n\t\tsetTabAutoFocus(currentApp?.manifest?.appService === true ? 1 : 0);\n\n\t\tif (reason === ApplicationCloseReason.NEW) {\n\t\t\tdispatch(SmartDesktopDesignerActions.new_app(new Date().getTime().toString()));\n\t\t} else if (reason === ApplicationCloseReason.CANCEL && currentAppID === newAppID) {\n\t\t\tif (currentAppID) props.deleteApp(currentAppID);\n\t\t\tsetCurrentAppID(null);\n\t\t} else {\n\t\t\tsetCurrentAppID(null);\n\t\t}\n\t};\n\n\tconst applicationProps: ApplicationProps = {\n\t\tid: currentAppID ?? \"\",\n\t\tapps,\n\t\taddApp: props.addApp,\n\t\tdeleteApp: props.deleteApp,\n\t\tupdateApp: props.updateApp,\n\t\tgetAppConfigTemplate: props.getAppConfigTemplate,\n\t\tsetCurrentAppID,\n\t\tonClose,\n\t\tisInboundInteropAuthorized: props.isInboundInteropAuthorized,\n\t\tisOutboundInteropAuthorized: props.isOutboundInteropAuthorized,\n\t\tpreloads,\n\t};\n\n\tconst appsDropZoneProps: ItemListProps = {\n\t\titems: apps.filter((app) => !app?.manifest?.temporary && !app?.manifest?.appService),\n\t\tclickItem: (appID: string) => {\n\t\t\tFSBL.Clients.LauncherClient.showWindow({ componentType: appID }, { spawnIfNotFound: true }, () => {});\n\t\t},\n\t\teditItem: (appID: string) => {\n\t\t\tsetCurrentAppID(appID);\n\t\t},\n\t\tdeleteItem: removeAppID,\n\t};\n\n\tconst servicesDropZoneProps: ItemListProps = {\n\t\t...appsDropZoneProps,\n\t\titems: apps.filter((app) => !app?.manifest?.temporary && app?.manifest?.appService),\n\t};\n\n\tconst helpFunction = () => {\n\t\tlaunchTutorialLink(\"SDD-02-ManageApps\");\n\t};\n\n\tconst addApp = () => {\n\t\tsetEditMode(!editMode);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t{currentAppID ? (\n\t\t\t\t<Application {...applicationProps} />\n\t\t\t) : (\n\t\t\t\t<View>\n\t\t\t\t\t<Header helpFunction={helpFunction}>Manage apps</Header>\n\t\t\t\t\t<Content>\n\t\t\t\t\t\t<Tab autofocus={tabAutoFocus}>\n\t\t\t\t\t\t\t<div data-label=\"Apps\">\n\t\t\t\t\t\t\t\t<div className=\"frontmatter\">Click Add or drag your apps into the list.</div>\n\t\t\t\t\t\t\t\t<Button className=\"icon-before-add\" fashion=\"primary\" iconBefore=\"plus\" text=\"Add\" onClick={addApp} />\n\n\t\t\t\t\t\t\t\t<AddApp\n\t\t\t\t\t\t\t\t\tshow={editMode}\n\t\t\t\t\t\t\t\t\tcheckValidURL={SmartDesktopClient.checkValidURL}\n\t\t\t\t\t\t\t\t\taddAppByUrl={addAppByUrl}\n\t\t\t\t\t\t\t\t\taddAppByPath={addAppByPath}\n\t\t\t\t\t\t\t\t\taddAppCitrix={addAppCitrix}\n\t\t\t\t\t\t\t\t\tclose={addApp}\n\t\t\t\t\t\t\t\t\tidKey=\"app\"\n\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t<DropZone processFile={addDroppedApp}>\n\t\t\t\t\t\t\t\t\t<ItemList {...appsDropZoneProps} />\n\t\t\t\t\t\t\t\t</DropZone>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div data-label=\"Services\">\n\t\t\t\t\t\t\t\t<div className=\"frontmatter\"></div>\n\t\t\t\t\t\t\t\t<Button className=\"icon-before-add\" fashion=\"primary\" iconBefore=\"plus\" text=\"Add\" onClick={addApp} />\n\n\t\t\t\t\t\t\t\t<AddApp\n\t\t\t\t\t\t\t\t\tshow={editMode}\n\t\t\t\t\t\t\t\t\tcheckValidURL={SmartDesktopClient.checkValidURL}\n\t\t\t\t\t\t\t\t\taddAppByUrl={addAppServiceByUrl}\n\t\t\t\t\t\t\t\t\taddAppByPath={addAppServiceByPath}\n\t\t\t\t\t\t\t\t\tincludeCitrix={false}\n\t\t\t\t\t\t\t\t\tclose={addApp}\n\t\t\t\t\t\t\t\t\tidKey=\"service\"\n\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t<DropZone processFile={addDroppedAppService}>\n\t\t\t\t\t\t\t\t\t<ItemList {...servicesDropZoneProps} />\n\t\t\t\t\t\t\t\t</DropZone>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</Tab>\n\t\t\t\t\t</Content>\n\t\t\t\t</View>\n\t\t\t)}\n\t\t</>\n\t);\n};\n"]}
1
+ {"version":3,"file":"Applications.js","sourceRoot":"","sources":["../../../src/components/sdd/Applications.tsx"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright 2017 - 2020 by ChartIQ, Inc.\n * All rights reserved.\n */\n\nimport React, { useEffect, useState } from \"react\";\nimport { useSelector, useDispatch } from \"../../store\";\nimport { View } from \"./View\";\nimport { Header } from \"../common/Header\";\nimport { Button } from \"../common/Button\";\nimport { Content } from \"./Content\";\nimport { Application, ApplicationCloseReason } from \"./Application\";\nimport { ItemList, ItemListProps } from \"./ItemList\";\nimport { SmartDesktopDesignerActions } from \"../../actions/smartDesktopDesignerActions\";\nimport { RootState } from \"../../reducers/rootReducer\";\nimport { DropZone, FileWithPath } from \"../common/DropZone\";\nimport { generateDefaultConfig } from \"./sdd_helpers\";\nimport { MenuType, ProjectError, PreloadMap } from \"../../types/smartDesktopDesignerTypes\";\nimport { launchTutorialLink } from \"./common/fsbl_functions\";\nimport { validateFilename, VALID_APP_EXTENSIONS } from \"../common/file_helpers\";\nimport { ApplicationProps } from \"./Application\";\nimport { services } from \"@finsemble/finsemble-api/\";\nimport { AddApp } from \"./AddApp\";\nimport { SmartDesktopClient } from \"./smartDesktopClient\";\nimport { Tab } from \"../common/Tab\";\n\ntype AppDefinition = services.Interop.types.AppDefinition;\n\nexport type ApplicationsProps = {\n\tgetApps: typeof SmartDesktopClient.getApps;\n\taddApp: typeof SmartDesktopClient.addApp;\n\tdeleteApp: typeof SmartDesktopClient.deleteApp;\n\tupdateApp: typeof SmartDesktopClient.updateApp;\n\tgetAppConfigTemplate: typeof SmartDesktopClient.getAppConfigTemplate;\n\tgetMenus: typeof SmartDesktopClient.getMenus;\n\taddMenu: typeof SmartDesktopClient.addMenu;\n\tupdateMenu: typeof SmartDesktopClient.updateMenu;\n\tgetPreloads: typeof SmartDesktopClient.getPreloads;\n\tisInboundInteropAuthorized: typeof SmartDesktopClient.isInboundInteropAuthorized;\n\tisOutboundInteropAuthorized: typeof SmartDesktopClient.isOutboundInteropAuthorized;\n};\n\nconst EMPTY_MENU_ERROR: ProjectError = {\n\tviewId: \"applications\",\n\tmessage: \"One or more of your app menus is empty\",\n};\n\nconst handleAppService = (config: AppDefinition) =>\n\t({\n\t\t...config,\n\t\tmanifest: {\n\t\t\t...config.manifest,\n\t\t\tappService: true,\n\t\t\tforeign: {\n\t\t\t\t...(config.manifest?.foreign ?? {}),\n\t\t\t\tcomponents: {\n\t\t\t\t\t...(config.manifest?.foreign?.components ?? {}),\n\t\t\t\t\t\"App Launcher\": {\n\t\t\t\t\t\t...(config.manifest?.foreign?.components[\"App Launcher\"] ?? {}),\n\t\t\t\t\t\tlaunchableByUser: false,\n\t\t\t\t\t},\n\t\t\t\t\t\"Window Manager\": {\n\t\t\t\t\t\t...(config.manifest?.foreign?.components[\"Window Manager\"] ?? {}),\n\t\t\t\t\t\tFSBLHeader: false,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t} as AppDefinition);\n\nexport const Applications = (props: ApplicationsProps) => {\n\tconst dispatch = useDispatch();\n\tconst [editMode, setEditMode] = useState(false);\n\tconst [tabAutoFocus, setTabAutoFocus] = useState(0);\n\n\tconst apps = useSelector((state: RootState) => state.smartDesktopDesigner.apps);\n\tconst menus = useSelector<MenuType>((state: RootState) => state.smartDesktopDesigner.menus);\n\tconst preloads = useSelector<PreloadMap>((state: RootState) => state.smartDesktopDesigner.preloads);\n\n\tconst newAppID = useSelector((state: RootState) => state.smartDesktopDesigner.newAppId);\n\n\tconst currentAppID = useSelector((state: RootState) => state.smartDesktopDesigner.currentAppId);\n\n\tif (Object.values(menus).every((menu) => menu.applications.length > 0)) {\n\t\tdispatch(SmartDesktopDesignerActions.delete_project_error(EMPTY_MENU_ERROR));\n\t} else {\n\t\tdispatch(SmartDesktopDesignerActions.set_project_error(EMPTY_MENU_ERROR));\n\t}\n\n\tfunction updateAppList() {\n\t\tprops.getApps().then((response: any) => {\n\t\t\tdispatch(SmartDesktopDesignerActions.update_apps(response.apps));\n\t\t});\n\t}\n\n\tconst updatePreloadList = async () => {\n\t\tconst { data } = await props.getPreloads();\n\t\tdispatch(SmartDesktopDesignerActions.update_preloads(data));\n\t};\n\n\tfunction setCurrentAppID(id: string | null) {\n\t\tif (id === null) {\n\t\t\tdispatch(SmartDesktopDesignerActions.new_app(null));\n\t\t}\n\n\t\tdispatch(SmartDesktopDesignerActions.set_current_app_id(id));\n\t\tupdateAppList();\n\t}\n\n\tconst removeAppID = (id: string) => {\n\t\t// Delete app from list of apps\n\t\tprops.deleteApp(id).then(({ err }: { err: string }) => {\n\t\t\tif (err) {\n\t\t\t\talert(err);\n\t\t\t}\n\t\t\tupdateAppList();\n\n\t\t\t// Remove reference to app from all menus\n\t\t\tprops.getMenus().then(({ menus: grabbedMenus }: { menus: MenuType }) => {\n\t\t\t\tObject.keys(grabbedMenus).forEach((menuId) => {\n\t\t\t\t\tif (!grabbedMenus[menuId].applications.includes(id)) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tgrabbedMenus[menuId].applications.splice(grabbedMenus[menuId].applications.indexOf(id), 1);\n\t\t\t\t\tprops.updateMenu(menuId, grabbedMenus[menuId]).then(() => {\n\t\t\t\t\t\tupdateAppList();\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t};\n\n\t/********* Lifecycle effects *********/\n\n\t// Call updateAppList once the component has mounted\n\t// Can't call out of an effect, or it will cause an endless loop\n\tuseEffect(() => {\n\t\tupdateAppList();\n\t\tupdatePreloadList();\n\t}, []);\n\n\tconst serviceWasUpdated = () => {\n\t\tFSBL.Clients.DialogManager.open(\n\t\t\t\"yesNo\",\n\t\t\t{\n\t\t\t\ttitle: `Restart Finsemble?`,\n\t\t\t\tquestion: `The changes to app services won’t take effect until you restart Finsemble. Do you want to restart now?`,\n\t\t\t\thideModalOnClose: true,\n\t\t\t\tshowCancelButton: false,\n\t\t\t\tnegativeResponseLabel: \"Later\",\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\tFSBL.restartApplication();\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t};\n\n\tconst addDroppedApp = (file: FileWithPath, index: number, service = false) => {\n\t\tconst appId = String(new Date().getTime() + index);\n\t\tconst { path } = file;\n\n\t\t// Confirm that the file is an executable\n\t\tif (path !== undefined && validateFilename(VALID_APP_EXTENSIONS, path)) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Generate defaults and then add app with those defaults\n\t\tprops.getAppConfigTemplate().then((response: any) => {\n\t\t\tconst { config }: { config: AppDefinition } = response;\n\t\t\t// Get generated displayName\n\t\t\tconst { displayName } = generateDefaultConfig({\n\t\t\t\t...config,\n\t\t\t\tpath,\n\t\t\t});\n\t\t\tconfig.name = displayName;\n\n\t\t\t// We generated appId above\n\t\t\tconfig.appId = appId;\n\n\t\t\t// A file was dropped, so we know this was a file, not a URL\n\t\t\tconfig.manifest = config.manifest ?? {};\n\t\t\tconfig.manifest.window = config.manifest.window ?? {};\n\t\t\tconfig.manifest.window.windowType = \"assimilation\";\n\t\t\tconfig.manifest.window.path = path;\n\t\t\tdelete config.manifest.window.url;\n\n\t\t\tif (service) {\n\t\t\t\tconfig.manifest.appService = true;\n\t\t\t}\n\n\t\t\t// Add app with defaults\n\t\t\tprops.addApp(appId, config).then(() => {\n\t\t\t\tupdateAppList();\n\t\t\t});\n\t\t});\n\t};\n\n\tconst addDroppedAppService = (file: FileWithPath, index: number) => {\n\t\taddDroppedApp(file, index, true);\n\t\tserviceWasUpdated();\n\t};\n\n\tconst addAppByUrl = (url: string, displayName: string, id: string = \"\", service = false) => {\n\t\tconst appId = id || String(new Date().getTime());\n\t\tsetEditMode(false);\n\t\t// @todo: show loading spinner\n\n\t\tprops.getAppConfigTemplate().then((response: { config: AppDefinition }) => {\n\t\t\tlet { config } = response;\n\t\t\tconfig.name = displayName;\n\t\t\tconfig.appId = appId;\n\n\t\t\t// A file was dropped, so we know this was a file, not a URL\n\t\t\tconfig.manifest = config.manifest ?? {};\n\t\t\tconfig.manifest.window = config.manifest.window ?? {};\n\t\t\tdelete config.manifest.window.windowType;\n\t\t\tdelete config.manifest.window.path;\n\t\t\tconfig.manifest.window.url = url;\n\n\t\t\tif (service) {\n\t\t\t\tconfig = handleAppService(config);\n\t\t\t}\n\n\t\t\t// Add app with defaults\n\t\t\tprops.addApp(appId, config).then(() => {\n\t\t\t\tupdateAppList();\n\t\t\t});\n\t\t});\n\t};\n\tconst addAppServiceByUrl = (url: string, displayName: string) => {\n\t\taddAppByUrl(url, displayName, \"\", true);\n\t\tserviceWasUpdated();\n\t};\n\tconst addAppByPath = (path: string, displayName: string, apiAccess: boolean, id = \"\", service = false) => {\n\t\tconst appId = id || String(new Date().getTime());\n\t\tsetEditMode(false);\n\t\t// @todo: show loading spinner\n\n\t\tprops.getAppConfigTemplate().then((response: { config: AppDefinition }) => {\n\t\t\tlet { config } = response;\n\t\t\tconfig.name = displayName;\n\t\t\tconfig.appId = appId;\n\n\t\t\t// A file was dropped, so we know this was a file, not a URL\n\t\t\tconfig.manifest = config.manifest ?? {};\n\t\t\tconfig.manifest.window = config.manifest.window ?? {};\n\t\t\tconfig.manifest.window.windowType = apiAccess ? \"native\" : \"assimilation\";\n\t\t\tconfig.manifest.window.path = path;\n\t\t\tdelete config.manifest.window.url;\n\n\t\t\tif (service) {\n\t\t\t\tconfig = handleAppService(config);\n\t\t\t}\n\n\t\t\t// Add app with defaults\n\t\t\tprops.addApp(appId, config).then(() => {\n\t\t\t\tupdateAppList();\n\t\t\t});\n\t\t});\n\t};\n\tconst addAppServiceByPath = (url: string, displayName: string) => {\n\t\taddAppByPath(url, displayName, true);\n\t\tserviceWasUpdated();\n\t};\n\n\tconst addAppCitrix = (aliasName: string, displayName: string, id = \"\") => {\n\t\tconst appId = id || String(new Date().getTime());\n\t\tsetEditMode(false);\n\t\t// @todo: show loading spinner\n\n\t\tprops.getAppConfigTemplate().then((response: { config: AppDefinition }) => {\n\t\t\tconst { config } = response;\n\t\t\tconfig.name = displayName;\n\t\t\tconfig.appId = appId;\n\n\t\t\t// A file was dropped, so we know this was a file, not a URL\n\t\t\tconfig.manifest = config.manifest ?? {};\n\t\t\tconfig.manifest.window = config.manifest.window ?? {};\n\t\t\tconfig.manifest.window.alias = aliasName;\n\t\t\t// @ts-ignore\n\t\t\tconfig.manifest.window.windowType = \"Citrix\";\n\t\t\tdelete config.manifest.window.url;\n\n\t\t\t// Unlike URL and Path, there will be no handling for service, because\n\t\t\t// we assume that no Citrix/Virtual app will be used as an app service\n\n\t\t\t// Add app with defaults\n\t\t\tprops.addApp(appId, config).then(() => {\n\t\t\t\tupdateAppList();\n\t\t\t});\n\t\t});\n\t};\n\n\tconst onClose = (reason: ApplicationCloseReason) => {\n\t\t// If you've closed the AppEditPage from App Services, make sure to return to the Services tab\n\t\tconst currentApp = apps.find((app: AppDefinition) => app.appId === currentAppID);\n\t\t// If the closed app was an app service, set autofocus to tab 1. Otherwise, tab 0.\n\t\tsetTabAutoFocus(currentApp?.manifest?.appService === true ? 1 : 0);\n\n\t\tif (reason === ApplicationCloseReason.NEW) {\n\t\t\tdispatch(SmartDesktopDesignerActions.new_app(new Date().getTime().toString()));\n\t\t} else if (reason === ApplicationCloseReason.CANCEL && currentAppID === newAppID) {\n\t\t\tif (currentAppID) props.deleteApp(currentAppID);\n\t\t\tsetCurrentAppID(null);\n\t\t} else {\n\t\t\tsetCurrentAppID(null);\n\t\t}\n\t};\n\n\tconst applicationProps: ApplicationProps = {\n\t\tid: currentAppID ?? \"\",\n\t\tapps,\n\t\taddApp: props.addApp,\n\t\tdeleteApp: props.deleteApp,\n\t\tupdateApp: props.updateApp,\n\t\tgetAppConfigTemplate: props.getAppConfigTemplate,\n\t\tsetCurrentAppID,\n\t\tonClose,\n\t\tisInboundInteropAuthorized: props.isInboundInteropAuthorized,\n\t\tisOutboundInteropAuthorized: props.isOutboundInteropAuthorized,\n\t\tpreloads,\n\t};\n\n\tconst appsDropZoneProps: ItemListProps = {\n\t\titems: apps.filter((app) => !app?.manifest?.temporary && !app?.manifest?.appService),\n\t\tclickItem: (appID: string) => {\n\t\t\tFSBL.Clients.LauncherClient.showWindow({ componentType: appID }, { spawnIfNotFound: true }, () => {});\n\t\t},\n\t\teditItem: (appID: string) => {\n\t\t\tsetCurrentAppID(appID);\n\t\t},\n\t\tdeleteItem: removeAppID,\n\t};\n\n\tconst servicesDropZoneProps: ItemListProps = {\n\t\t...appsDropZoneProps,\n\t\titems: apps.filter((app) => !app?.manifest?.temporary && app?.manifest?.appService),\n\t};\n\n\tconst helpFunction = () => {\n\t\tlaunchTutorialLink(\"SDD-02-ManageApps\");\n\t};\n\n\tconst addApp = () => {\n\t\tsetEditMode(!editMode);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t{currentAppID ? (\n\t\t\t\t<Application {...applicationProps} />\n\t\t\t) : (\n\t\t\t\t<View>\n\t\t\t\t\t<Header helpFunction={helpFunction}>Manage apps</Header>\n\t\t\t\t\t<Content>\n\t\t\t\t\t\t<Tab autofocus={tabAutoFocus}>\n\t\t\t\t\t\t\t<div data-label=\"Apps\">\n\t\t\t\t\t\t\t\t<div className=\"frontmatter\">Click Add or drag your apps into the list.</div>\n\t\t\t\t\t\t\t\t<Button className=\"icon-before-add\" fashion=\"primary\" iconBefore=\"plus\" text=\"Add\" onClick={addApp} />\n\n\t\t\t\t\t\t\t\t<AddApp\n\t\t\t\t\t\t\t\t\tshow={editMode}\n\t\t\t\t\t\t\t\t\tcheckValidURL={SmartDesktopClient.checkValidURL}\n\t\t\t\t\t\t\t\t\taddAppByUrl={addAppByUrl}\n\t\t\t\t\t\t\t\t\taddAppByPath={addAppByPath}\n\t\t\t\t\t\t\t\t\taddAppCitrix={addAppCitrix}\n\t\t\t\t\t\t\t\t\tclose={addApp}\n\t\t\t\t\t\t\t\t\tidKey=\"app\"\n\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t<DropZone processFile={addDroppedApp}>\n\t\t\t\t\t\t\t\t\t<ItemList {...appsDropZoneProps} />\n\t\t\t\t\t\t\t\t</DropZone>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div data-label=\"Services\">\n\t\t\t\t\t\t\t\t<div className=\"frontmatter\"></div>\n\t\t\t\t\t\t\t\t<Button className=\"icon-before-add\" fashion=\"primary\" iconBefore=\"plus\" text=\"Add\" onClick={addApp} />\n\n\t\t\t\t\t\t\t\t<AddApp\n\t\t\t\t\t\t\t\t\tshow={editMode}\n\t\t\t\t\t\t\t\t\tcheckValidURL={SmartDesktopClient.checkValidURL}\n\t\t\t\t\t\t\t\t\taddAppByUrl={addAppServiceByUrl}\n\t\t\t\t\t\t\t\t\taddAppByPath={addAppServiceByPath}\n\t\t\t\t\t\t\t\t\tincludeCitrix={false}\n\t\t\t\t\t\t\t\t\tclose={addApp}\n\t\t\t\t\t\t\t\t\tidKey=\"service\"\n\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t<DropZone processFile={addDroppedAppService}>\n\t\t\t\t\t\t\t\t\t<ItemList {...servicesDropZoneProps} />\n\t\t\t\t\t\t\t\t</DropZone>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</Tab>\n\t\t\t\t\t</Content>\n\t\t\t\t</View>\n\t\t\t)}\n\t\t</>\n\t);\n};\n"]}