@finsemble/finsemble-ui 6.5.2 → 6.6.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (555) hide show
  1. package/index.d.ts +1 -0
  2. package/package.json +18 -15
  3. package/react/actions/smartDesktopDesignerActions.d.ts +3 -3
  4. package/react/actions/smartDesktopDesignerActions.js.map +1 -1
  5. package/react/assets/css/finsemble.css +0 -1
  6. package/react/assets/css/toolbar.css +0 -4
  7. package/react/assets/css/userPreferences.css +39 -4
  8. package/react/componentTemplateGenerator.js +1 -1
  9. package/react/componentTemplateGenerator.js.map +1 -1
  10. package/react/components/appCatalog/AppCatalogComponent.d.ts +1 -1
  11. package/react/components/appCatalog/components/Showcase/ImageCarousel.d.ts +3 -3
  12. package/react/components/appCatalog/components/Showcase/SupportNotes.d.ts +1 -1
  13. package/react/components/appCatalog/stores/storeActions.d.ts +1 -1
  14. package/react/components/common/DropdownButton.js.map +1 -1
  15. package/react/components/common/FileInput.d.ts +2 -1
  16. package/react/components/common/FileInput.js +2 -2
  17. package/react/components/common/FileInput.js.map +1 -1
  18. package/react/components/common/FinsembleToggle.d.ts +3 -1
  19. package/react/components/common/FinsembleToggle.js +12 -4
  20. package/react/components/common/FinsembleToggle.js.map +1 -1
  21. package/react/components/common/ImagePreview.js +1 -1
  22. package/react/components/common/ImagePreview.js.map +1 -1
  23. package/react/components/common/TimeSelect.d.ts +16 -0
  24. package/react/components/common/TimeSelect.js +143 -0
  25. package/react/components/common/TimeSelect.js.map +1 -0
  26. package/react/components/common/css/accordion.css +3 -5
  27. package/react/components/common/css/application-edit-page.css +4 -1
  28. package/react/components/common/css/time-select.css +8 -0
  29. package/react/components/common/css/toggle.css +39 -3
  30. package/react/components/common/helpers.js +1 -0
  31. package/react/components/common/helpers.js.map +1 -1
  32. package/react/components/common/stories/FileInput.stories.d.ts +2 -1
  33. package/react/components/common/stories/FileInput.stories.js +6 -0
  34. package/react/components/common/stories/FileInput.stories.js.map +1 -1
  35. package/react/components/common/stories/FinsembleToggle.stories.d.ts +3 -1
  36. package/react/components/common/stories/FinsembleToggle.stories.js +12 -0
  37. package/react/components/common/stories/FinsembleToggle.stories.js.map +1 -1
  38. package/react/components/common/stories/TimeSelect.stories.d.ts +11 -0
  39. package/react/components/common/stories/TimeSelect.stories.js +20 -0
  40. package/react/components/common/stories/TimeSelect.stories.js.map +1 -0
  41. package/react/components/common/tests/Accordion.spec.js +1 -1
  42. package/react/components/common/tests/Accordion.spec.js.map +1 -1
  43. package/react/components/common/tests/FileInput.spec.js +8 -1
  44. package/react/components/common/tests/FileInput.spec.js.map +1 -1
  45. package/react/components/common/tests/FinsembleSelect.spec.js +1 -1
  46. package/react/components/common/tests/FinsembleSelect.spec.js.map +1 -1
  47. package/react/components/common/tests/FinsembleToggle.spec.js +8 -3
  48. package/react/components/common/tests/FinsembleToggle.spec.js.map +1 -1
  49. package/react/components/{smartDesktopDesigner/tests/AppEditPage.spec.d.ts → common/tests/TimeSelect.spec.d.ts} +0 -0
  50. package/react/components/common/tests/TimeSelect.spec.js +71 -0
  51. package/react/components/common/tests/TimeSelect.spec.js.map +1 -0
  52. package/react/components/favorites/FavoriteMaker.js.map +1 -1
  53. package/react/components/favorites/FavoritesShell.spec.js +1 -1
  54. package/react/components/favorites/FavoritesShell.spec.js.map +1 -1
  55. package/react/components/fdc3Resolver/ResolverDialog.spec.js +1 -1
  56. package/react/components/fdc3Resolver/ResolverDialog.spec.js.map +1 -1
  57. package/react/components/icon/Icon.d.ts +4 -3
  58. package/react/components/icon/Icon.js +22 -12
  59. package/react/components/icon/Icon.js.map +1 -1
  60. package/react/components/legacyControls/tests/FinsembleDialogTextInput.spec.js +1 -1
  61. package/react/components/legacyControls/tests/FinsembleDialogTextInput.spec.js.map +1 -1
  62. package/react/components/linker/LinkerMenu.js.map +1 -1
  63. package/react/components/menu/MenuPortal.js +1 -1
  64. package/react/components/menu/MenuPortal.js.map +1 -1
  65. package/react/components/processMonitor/ProcessMonitorTypes.d.ts +4 -11
  66. package/react/components/processMonitor/ProcessMonitorTypes.js.map +1 -1
  67. package/react/components/processMonitor/components/ChildWindow.js +5 -10
  68. package/react/components/processMonitor/components/ChildWindow.js.map +1 -1
  69. package/react/components/processMonitor/components/ProcessStatistics.js +8 -10
  70. package/react/components/processMonitor/components/ProcessStatistics.js.map +1 -1
  71. package/react/components/processMonitor/constants.d.ts +0 -2
  72. package/react/components/processMonitor/constants.js +0 -2
  73. package/react/components/processMonitor/constants.js.map +1 -1
  74. package/react/components/processMonitor/helpers.d.ts +0 -11
  75. package/react/components/processMonitor/helpers.js +1 -9
  76. package/react/components/processMonitor/helpers.js.map +1 -1
  77. package/react/components/processMonitor/stores/ProcessMonitorStore.d.ts +3 -11
  78. package/react/components/processMonitor/stores/ProcessMonitorStore.js +22 -62
  79. package/react/components/processMonitor/stores/ProcessMonitorStore.js.map +1 -1
  80. package/react/components/{smartDesktopDesigner → sdd}/AddApp.d.ts +0 -0
  81. package/react/components/{smartDesktopDesigner → sdd}/AddApp.js +0 -0
  82. package/react/components/sdd/AddApp.js.map +1 -0
  83. package/react/components/{smartDesktopDesigner → sdd}/AppEditAccess.d.ts +0 -0
  84. package/react/components/{smartDesktopDesigner → sdd}/AppEditAccess.js +0 -0
  85. package/react/components/sdd/AppEditAccess.js.map +1 -0
  86. package/react/components/{smartDesktopDesigner → sdd}/AppEditPage.d.ts +0 -0
  87. package/react/components/{smartDesktopDesigner → sdd}/AppEditPage.js +7 -1
  88. package/react/components/sdd/AppEditPage.js.map +1 -0
  89. package/react/components/{smartDesktopDesigner → sdd}/Appearance.css +0 -0
  90. package/react/components/{smartDesktopDesigner → sdd}/Appearance.d.ts +0 -0
  91. package/react/components/{smartDesktopDesigner → sdd}/Appearance.helpers.d.ts +0 -0
  92. package/react/components/{smartDesktopDesigner → sdd}/Appearance.helpers.js +0 -0
  93. package/react/components/sdd/Appearance.helpers.js.map +1 -0
  94. package/react/components/{smartDesktopDesigner → sdd}/Appearance.js +0 -0
  95. package/react/components/sdd/Appearance.js.map +1 -0
  96. package/react/components/{smartDesktopDesigner → sdd}/Application.d.ts +1 -2
  97. package/react/components/{smartDesktopDesigner → sdd}/Application.js +37 -39
  98. package/react/components/sdd/Application.js.map +1 -0
  99. package/react/components/{smartDesktopDesigner → sdd}/Applications.d.ts +0 -0
  100. package/react/components/{smartDesktopDesigner → sdd}/Applications.js +2 -2
  101. package/react/components/sdd/Applications.js.map +1 -0
  102. package/react/components/{smartDesktopDesigner → sdd}/AssetsPage.css +0 -0
  103. package/react/components/{smartDesktopDesigner → sdd}/AssetsPage.d.ts +0 -0
  104. package/react/components/{smartDesktopDesigner → sdd}/AssetsPage.js +0 -0
  105. package/react/components/sdd/AssetsPage.js.map +1 -0
  106. package/react/components/{smartDesktopDesigner → sdd}/Authentication.d.ts +0 -0
  107. package/react/components/{smartDesktopDesigner → sdd}/Authentication.js +1 -1
  108. package/react/components/sdd/Authentication.js.map +1 -0
  109. package/react/components/{smartDesktopDesigner → sdd}/AuthenticationProviderConfig.d.ts +0 -0
  110. package/react/components/{smartDesktopDesigner → sdd}/AuthenticationProviderConfig.js +0 -0
  111. package/react/components/sdd/AuthenticationProviderConfig.js.map +1 -0
  112. package/react/components/{smartDesktopDesigner → sdd}/Content.d.ts +0 -0
  113. package/react/components/{smartDesktopDesigner → sdd}/Content.js +0 -0
  114. package/react/components/sdd/Content.js.map +1 -0
  115. package/react/components/{smartDesktopDesigner → sdd}/ContentHeader.d.ts +0 -0
  116. package/react/components/{smartDesktopDesigner → sdd}/ContentHeader.js +0 -0
  117. package/react/components/sdd/ContentHeader.js.map +1 -0
  118. package/react/components/{smartDesktopDesigner → sdd}/CurrentView.d.ts +0 -0
  119. package/react/components/{smartDesktopDesigner → sdd}/CurrentView.js +0 -0
  120. package/react/components/sdd/CurrentView.js.map +1 -0
  121. package/react/components/{smartDesktopDesigner → sdd}/EditPreload.d.ts +5 -7
  122. package/react/components/sdd/EditPreload.js +156 -0
  123. package/react/components/sdd/EditPreload.js.map +1 -0
  124. package/react/components/{smartDesktopDesigner → sdd}/Export.d.ts +0 -0
  125. package/react/components/{smartDesktopDesigner → sdd}/Export.js +0 -0
  126. package/react/components/sdd/Export.js.map +1 -0
  127. package/react/components/{smartDesktopDesigner → sdd}/ExportCloud.d.ts +0 -0
  128. package/react/components/{smartDesktopDesigner → sdd}/ExportCloud.js +0 -0
  129. package/react/components/sdd/ExportCloud.js.map +1 -0
  130. package/react/components/{smartDesktopDesigner → sdd}/ExportDeployInfo.d.ts +0 -0
  131. package/react/components/{smartDesktopDesigner → sdd}/ExportDeployInfo.js +0 -0
  132. package/react/components/sdd/ExportDeployInfo.js.map +1 -0
  133. package/react/components/{smartDesktopDesigner → sdd}/ExportZip.d.ts +0 -0
  134. package/react/components/{smartDesktopDesigner → sdd}/ExportZip.js +0 -0
  135. package/react/components/sdd/ExportZip.js.map +1 -0
  136. package/react/components/{smartDesktopDesigner → sdd}/GettingStarted.d.ts +0 -0
  137. package/react/components/{smartDesktopDesigner → sdd}/GettingStarted.js +0 -0
  138. package/react/components/sdd/GettingStarted.js.map +1 -0
  139. package/react/components/{smartDesktopDesigner → sdd}/ItemList.d.ts +0 -0
  140. package/react/components/{smartDesktopDesigner → sdd}/ItemList.js +0 -0
  141. package/react/components/sdd/ItemList.js.map +1 -0
  142. package/react/components/{smartDesktopDesigner → sdd}/Navigation.d.ts +0 -0
  143. package/react/components/{smartDesktopDesigner → sdd}/Navigation.js +0 -0
  144. package/react/components/sdd/Navigation.js.map +1 -0
  145. package/react/components/{smartDesktopDesigner → sdd}/OptionalSettingsView.d.ts +1 -3
  146. package/react/components/sdd/OptionalSettingsView.js +56 -0
  147. package/react/components/sdd/OptionalSettingsView.js.map +1 -0
  148. package/react/components/sdd/Preloads.d.ts +6 -0
  149. package/react/components/sdd/Preloads.js +24 -0
  150. package/react/components/sdd/Preloads.js.map +1 -0
  151. package/react/components/{smartDesktopDesigner → sdd}/ProjectErrors.d.ts +0 -0
  152. package/react/components/{smartDesktopDesigner → sdd}/ProjectErrors.js +0 -0
  153. package/react/components/sdd/ProjectErrors.js.map +1 -0
  154. package/react/components/{smartDesktopDesigner → sdd}/Publish.d.ts +0 -0
  155. package/react/components/{smartDesktopDesigner → sdd}/Publish.js +0 -0
  156. package/react/components/sdd/Publish.js.map +1 -0
  157. package/react/components/{smartDesktopDesigner → sdd}/PublishProgress.d.ts +0 -0
  158. package/react/components/{smartDesktopDesigner → sdd}/PublishProgress.js +0 -0
  159. package/react/components/sdd/PublishProgress.js.map +1 -0
  160. package/react/components/sdd/SmartDesktopDesigner.d.ts +29 -0
  161. package/react/components/sdd/SmartDesktopDesigner.js +122 -0
  162. package/react/components/sdd/SmartDesktopDesigner.js.map +1 -0
  163. package/react/components/{smartDesktopDesigner → sdd}/ThemePage.css +0 -0
  164. package/react/components/{smartDesktopDesigner → sdd}/ThemePage.d.ts +0 -0
  165. package/react/components/{smartDesktopDesigner → sdd}/ThemePage.js +0 -0
  166. package/react/components/sdd/ThemePage.js.map +1 -0
  167. package/react/components/{smartDesktopDesigner → sdd}/Themes.d.ts +0 -0
  168. package/react/components/{smartDesktopDesigner → sdd}/Themes.js +0 -0
  169. package/react/components/sdd/Themes.js.map +1 -0
  170. package/react/components/{smartDesktopDesigner → sdd}/Toolbar.d.ts +0 -0
  171. package/react/components/{smartDesktopDesigner → sdd}/Toolbar.js +9 -7
  172. package/react/components/sdd/Toolbar.js.map +1 -0
  173. package/react/components/{smartDesktopDesigner → sdd}/View.d.ts +0 -0
  174. package/react/components/{smartDesktopDesigner → sdd}/View.js +0 -0
  175. package/react/components/sdd/View.js.map +1 -0
  176. package/react/components/{smartDesktopDesigner → sdd}/common/fsbl_functions.d.ts +0 -0
  177. package/react/components/{smartDesktopDesigner → sdd}/common/fsbl_functions.js +0 -0
  178. package/react/components/sdd/common/fsbl_functions.js.map +1 -0
  179. package/react/components/{smartDesktopDesigner → sdd}/common/getCSSVars.d.ts +0 -0
  180. package/react/components/{smartDesktopDesigner → sdd}/common/getCSSVars.js +0 -0
  181. package/react/components/sdd/common/getCSSVars.js.map +1 -0
  182. package/react/components/sdd/common/setPreloadDefaults.d.ts +1 -0
  183. package/react/components/sdd/common/setPreloadDefaults.js +21 -0
  184. package/react/components/sdd/common/setPreloadDefaults.js.map +1 -0
  185. package/react/components/{smartDesktopDesigner/fixtures → sdd/common}/views.d.ts +0 -0
  186. package/react/components/sdd/common/views.js +202 -0
  187. package/react/components/sdd/common/views.js.map +1 -0
  188. package/react/components/{smartDesktopDesigner → sdd}/css/appearance.css +0 -0
  189. package/react/components/{smartDesktopDesigner → sdd}/css/applications.css +0 -0
  190. package/react/components/{smartDesktopDesigner → sdd}/css/authentication.css +5 -1
  191. package/react/components/{smartDesktopDesigner → sdd}/css/buttons.css +0 -0
  192. package/react/components/{smartDesktopDesigner → sdd}/css/export.css +0 -0
  193. package/react/components/{smartDesktopDesigner → sdd}/css/getting-started.css +0 -0
  194. package/react/components/{smartDesktopDesigner → sdd}/css/nav.css +0 -0
  195. package/react/components/{smartDesktopDesigner → sdd}/css/project-errors.css +0 -0
  196. package/react/components/{smartDesktopDesigner → sdd}/css/project-header.css +0 -0
  197. package/react/components/{smartDesktopDesigner → sdd}/css/styles.css +0 -0
  198. package/react/components/{smartDesktopDesigner → sdd}/css/views.css +0 -1
  199. package/react/components/{smartDesktopDesigner → sdd}/fixtures/apps.d.ts +0 -0
  200. package/react/components/{smartDesktopDesigner → sdd}/fixtures/apps.js +10 -10
  201. package/react/components/sdd/fixtures/apps.js.map +1 -0
  202. package/react/components/{smartDesktopDesigner → sdd}/fixtures/authenticationProps.d.ts +0 -0
  203. package/react/components/{smartDesktopDesigner → sdd}/fixtures/authenticationProps.js +0 -0
  204. package/react/components/sdd/fixtures/authenticationProps.js.map +1 -0
  205. package/react/components/{smartDesktopDesigner → sdd}/fixtures/configTemplate.d.ts +1 -1
  206. package/react/components/{smartDesktopDesigner → sdd}/fixtures/configTemplate.js +1 -1
  207. package/react/components/sdd/fixtures/configTemplate.js.map +1 -0
  208. package/react/components/{smartDesktopDesigner → sdd}/fixtures/exportProps.d.ts +0 -0
  209. package/react/components/{smartDesktopDesigner → sdd}/fixtures/exportProps.js +0 -0
  210. package/react/components/sdd/fixtures/exportProps.js.map +1 -0
  211. package/react/components/sdd/fixtures/preloads.d.ts +3 -0
  212. package/react/components/sdd/fixtures/preloads.js +57 -0
  213. package/react/components/sdd/fixtures/preloads.js.map +1 -0
  214. package/react/components/{smartDesktopDesigner → sdd}/fixtures/projectErrorsProps.d.ts +0 -0
  215. package/react/components/{smartDesktopDesigner → sdd}/fixtures/projectErrorsProps.js +0 -0
  216. package/react/components/sdd/fixtures/projectErrorsProps.js.map +1 -0
  217. package/react/components/{smartDesktopDesigner → sdd}/fixtures/publishProgress.d.ts +0 -0
  218. package/react/components/{smartDesktopDesigner → sdd}/fixtures/publishProgress.js +0 -0
  219. package/react/components/sdd/fixtures/publishProgress.js.map +1 -0
  220. package/react/components/{smartDesktopDesigner → sdd}/fixtures/themeProps.d.ts +0 -0
  221. package/react/components/{smartDesktopDesigner → sdd}/fixtures/themeProps.js +0 -0
  222. package/react/components/sdd/fixtures/themeProps.js.map +1 -0
  223. package/react/components/sdd/fixtures/views.d.ts +3 -0
  224. package/react/components/{smartDesktopDesigner → sdd}/fixtures/views.js +0 -0
  225. package/react/components/sdd/fixtures/views.js.map +1 -0
  226. package/react/components/{smartDesktopDesigner → sdd}/sdd_helpers.d.ts +0 -0
  227. package/react/components/{smartDesktopDesigner → sdd}/sdd_helpers.js +0 -0
  228. package/react/components/sdd/sdd_helpers.js.map +1 -0
  229. package/react/components/{smartDesktopDesigner → sdd}/stories/AppEditPage.stories.d.ts +0 -0
  230. package/react/components/{smartDesktopDesigner → sdd}/stories/AppEditPage.stories.js +0 -0
  231. package/react/components/sdd/stories/AppEditPage.stories.js.map +1 -0
  232. package/react/components/{smartDesktopDesigner → sdd}/stories/Appearance.stories.d.ts +0 -0
  233. package/react/components/{smartDesktopDesigner → sdd}/stories/Appearance.stories.js +0 -0
  234. package/react/components/sdd/stories/Appearance.stories.js.map +1 -0
  235. package/react/components/{smartDesktopDesigner → sdd}/stories/Applications.stories.d.ts +0 -0
  236. package/react/components/{smartDesktopDesigner → sdd}/stories/Applications.stories.js +0 -0
  237. package/react/components/sdd/stories/Applications.stories.js.map +1 -0
  238. package/react/components/{smartDesktopDesigner → sdd}/stories/AssetsPage.stories.d.ts +0 -0
  239. package/react/components/{smartDesktopDesigner → sdd}/stories/AssetsPage.stories.js +0 -0
  240. package/react/components/sdd/stories/AssetsPage.stories.js.map +1 -0
  241. package/react/components/{smartDesktopDesigner → sdd}/stories/Authentication.stories.d.ts +0 -0
  242. package/react/components/{smartDesktopDesigner → sdd}/stories/Authentication.stories.js +0 -0
  243. package/react/components/sdd/stories/Authentication.stories.js.map +1 -0
  244. package/react/components/{smartDesktopDesigner → sdd}/stories/ContentHeader.stories.d.ts +0 -0
  245. package/react/components/{smartDesktopDesigner → sdd}/stories/ContentHeader.stories.js +0 -0
  246. package/react/components/sdd/stories/ContentHeader.stories.js.map +1 -0
  247. package/react/components/{smartDesktopDesigner → sdd}/stories/Export.stories.d.ts +0 -0
  248. package/react/components/{smartDesktopDesigner → sdd}/stories/Export.stories.js +0 -0
  249. package/react/components/sdd/stories/Export.stories.js.map +1 -0
  250. package/react/components/{smartDesktopDesigner → sdd}/stories/ExportCloud.stories.d.ts +0 -0
  251. package/react/components/{smartDesktopDesigner → sdd}/stories/ExportCloud.stories.js +0 -0
  252. package/react/components/sdd/stories/ExportCloud.stories.js.map +1 -0
  253. package/react/components/{smartDesktopDesigner → sdd}/stories/ExportZip.stories.d.ts +0 -0
  254. package/react/components/{smartDesktopDesigner → sdd}/stories/ExportZip.stories.js +0 -0
  255. package/react/components/sdd/stories/ExportZip.stories.js.map +1 -0
  256. package/react/components/{smartDesktopDesigner → sdd}/stories/GettingStarted.stories.d.ts +0 -0
  257. package/react/components/{smartDesktopDesigner → sdd}/stories/GettingStarted.stories.js +0 -0
  258. package/react/components/sdd/stories/GettingStarted.stories.js.map +1 -0
  259. package/react/components/{smartDesktopDesigner → sdd}/stories/ItemList.stories.d.ts +0 -0
  260. package/react/components/{smartDesktopDesigner → sdd}/stories/ItemList.stories.js +0 -0
  261. package/react/components/sdd/stories/ItemList.stories.js.map +1 -0
  262. package/react/components/{smartDesktopDesigner → sdd}/stories/Navigation.stories.d.ts +0 -0
  263. package/react/components/{smartDesktopDesigner → sdd}/stories/Navigation.stories.js +0 -0
  264. package/react/components/sdd/stories/Navigation.stories.js.map +1 -0
  265. package/react/components/{smartDesktopDesigner → sdd}/stories/OptionalSettingsView.stories.d.ts +3 -2
  266. package/react/components/sdd/stories/OptionalSettingsView.stories.js +27 -0
  267. package/react/components/sdd/stories/OptionalSettingsView.stories.js.map +1 -0
  268. package/react/components/{smartDesktopDesigner → sdd}/stories/ProjectErrors.stories.d.ts +0 -0
  269. package/react/components/{smartDesktopDesigner → sdd}/stories/ProjectErrors.stories.js +0 -0
  270. package/react/components/sdd/stories/ProjectErrors.stories.js.map +1 -0
  271. package/react/components/{smartDesktopDesigner → sdd}/stories/Publish.stories.d.ts +0 -0
  272. package/react/components/{smartDesktopDesigner → sdd}/stories/Publish.stories.js +0 -0
  273. package/react/components/sdd/stories/Publish.stories.js.map +1 -0
  274. package/react/components/{smartDesktopDesigner → sdd}/stories/PublishProgress.stories.d.ts +0 -0
  275. package/react/components/{smartDesktopDesigner → sdd}/stories/PublishProgress.stories.js +0 -0
  276. package/react/components/sdd/stories/PublishProgress.stories.js.map +1 -0
  277. package/react/components/{smartDesktopDesigner → sdd}/stories/SmartDesktopDesigner.stories.d.ts +0 -0
  278. package/react/components/{smartDesktopDesigner → sdd}/stories/SmartDesktopDesigner.stories.js +1 -0
  279. package/react/components/sdd/stories/SmartDesktopDesigner.stories.js.map +1 -0
  280. package/react/components/{smartDesktopDesigner → sdd}/stories/ThemePage.stories.d.ts +0 -0
  281. package/react/components/{smartDesktopDesigner → sdd}/stories/ThemePage.stories.js +0 -0
  282. package/react/components/sdd/stories/ThemePage.stories.js.map +1 -0
  283. package/react/components/{smartDesktopDesigner → sdd}/stories/Themes.stories.d.ts +0 -0
  284. package/react/components/{smartDesktopDesigner → sdd}/stories/Themes.stories.js +0 -0
  285. package/react/components/sdd/stories/Themes.stories.js.map +1 -0
  286. package/react/components/{smartDesktopDesigner → sdd}/stories/Toolbar.stories.d.ts +0 -0
  287. package/react/components/{smartDesktopDesigner → sdd}/stories/Toolbar.stories.js +0 -0
  288. package/react/components/sdd/stories/Toolbar.stories.js.map +1 -0
  289. package/react/components/{smartDesktopDesigner/tests/Application.spec.d.ts → sdd/tests/AppEditPage.spec.d.ts} +0 -0
  290. package/react/components/{smartDesktopDesigner → sdd}/tests/AppEditPage.spec.js +0 -0
  291. package/react/components/sdd/tests/AppEditPage.spec.js.map +1 -0
  292. package/react/components/{smartDesktopDesigner/tests/Authentication.spec.d.ts → sdd/tests/Application.spec.d.ts} +0 -0
  293. package/react/components/{smartDesktopDesigner → sdd}/tests/Application.spec.js +13 -31
  294. package/react/components/sdd/tests/Application.spec.js.map +1 -0
  295. package/react/components/{smartDesktopDesigner → sdd}/tests/Applications.spec.d.ts +0 -0
  296. package/react/components/{smartDesktopDesigner → sdd}/tests/Applications.spec.js +0 -0
  297. package/react/components/sdd/tests/Applications.spec.js.map +1 -0
  298. package/react/components/{smartDesktopDesigner/tests/ContentHeader.spec.d.ts → sdd/tests/Authentication.spec.d.ts} +0 -0
  299. package/react/components/{smartDesktopDesigner → sdd}/tests/Authentication.spec.js +0 -0
  300. package/react/components/sdd/tests/Authentication.spec.js.map +1 -0
  301. package/react/components/{smartDesktopDesigner/tests/EditPreload.spec.d.ts → sdd/tests/ContentHeader.spec.d.ts} +0 -0
  302. package/react/components/{smartDesktopDesigner → sdd}/tests/ContentHeader.spec.js +0 -0
  303. package/react/components/sdd/tests/ContentHeader.spec.js.map +1 -0
  304. package/react/components/{smartDesktopDesigner/tests/Export.spec.d.ts → sdd/tests/EditPreload.spec.d.ts} +0 -0
  305. package/react/components/{smartDesktopDesigner → sdd}/tests/EditPreload.spec.js +8 -10
  306. package/react/components/sdd/tests/EditPreload.spec.js.map +1 -0
  307. package/react/components/{smartDesktopDesigner/tests/ExportZip.spec.d.ts → sdd/tests/Export.spec.d.ts} +0 -0
  308. package/react/components/{smartDesktopDesigner → sdd}/tests/Export.spec.js +0 -0
  309. package/react/components/sdd/tests/Export.spec.js.map +1 -0
  310. package/react/components/{smartDesktopDesigner/tests/ItemList.spec.d.ts → sdd/tests/ExportZip.spec.d.ts} +0 -0
  311. package/react/components/{smartDesktopDesigner → sdd}/tests/ExportZip.spec.js +0 -0
  312. package/react/components/sdd/tests/ExportZip.spec.js.map +1 -0
  313. package/react/components/{smartDesktopDesigner/tests/Navigation.spec.d.ts → sdd/tests/ItemList.spec.d.ts} +0 -0
  314. package/react/components/{smartDesktopDesigner → sdd}/tests/ItemList.spec.js +0 -0
  315. package/react/components/sdd/tests/ItemList.spec.js.map +1 -0
  316. package/react/components/{smartDesktopDesigner/tests/Preloads.spec.d.ts → sdd/tests/Navigation.spec.d.ts} +0 -0
  317. package/react/components/{smartDesktopDesigner → sdd}/tests/Navigation.spec.js +0 -0
  318. package/react/components/sdd/tests/Navigation.spec.js.map +1 -0
  319. package/react/components/{smartDesktopDesigner/tests/ProjectErrors.spec.d.ts → sdd/tests/OptionalSettingsView.spec.d.ts} +0 -0
  320. package/react/components/sdd/tests/OptionalSettingsView.spec.js +22 -0
  321. package/react/components/sdd/tests/OptionalSettingsView.spec.js.map +1 -0
  322. package/react/components/{smartDesktopDesigner/tests/Publish.spec.d.ts → sdd/tests/ProjectErrors.spec.d.ts} +0 -0
  323. package/react/components/{smartDesktopDesigner → sdd}/tests/ProjectErrors.spec.js +0 -0
  324. package/react/components/sdd/tests/ProjectErrors.spec.js.map +1 -0
  325. package/react/components/{smartDesktopDesigner/tests/PublishProgess.spec.d.ts → sdd/tests/Publish.spec.d.ts} +0 -0
  326. package/react/components/{smartDesktopDesigner → sdd}/tests/Publish.spec.js +0 -0
  327. package/react/components/sdd/tests/Publish.spec.js.map +1 -0
  328. package/react/components/{smartDesktopDesigner/tests/SmartDesktopDesigner.spec.d.ts → sdd/tests/PublishProgess.spec.d.ts} +0 -0
  329. package/react/components/{smartDesktopDesigner → sdd}/tests/PublishProgess.spec.js +0 -0
  330. package/react/components/sdd/tests/PublishProgess.spec.js.map +1 -0
  331. package/react/components/{smartDesktopDesigner/tests/Themes.spec.d.ts → sdd/tests/SmartDesktopDesigner.spec.d.ts} +0 -0
  332. package/react/components/{smartDesktopDesigner → sdd}/tests/SmartDesktopDesigner.spec.js +1 -1
  333. package/react/components/sdd/tests/SmartDesktopDesigner.spec.js.map +1 -0
  334. package/react/components/{smartDesktopDesigner/tests/sdd_helpers.spec.d.ts → sdd/tests/Themes.spec.d.ts} +0 -0
  335. package/react/components/{smartDesktopDesigner → sdd}/tests/Themes.spec.js +0 -0
  336. package/react/components/sdd/tests/Themes.spec.js.map +1 -0
  337. package/react/components/{smartDesktopDesigner → sdd}/tests/Toolbar.spec.d.ts +0 -0
  338. package/react/components/{smartDesktopDesigner → sdd}/tests/Toolbar.spec.js +0 -0
  339. package/react/components/sdd/tests/Toolbar.spec.js.map +1 -0
  340. package/react/components/{smartDesktopDesigner → sdd}/tests/a11y_helper.d.ts +0 -0
  341. package/react/components/{smartDesktopDesigner → sdd}/tests/a11y_helper.js +0 -0
  342. package/react/components/sdd/tests/a11y_helper.js.map +1 -0
  343. package/react/components/{userPreferences/tests/ScheduledRestart.spec.d.ts → sdd/tests/sdd_helpers.spec.d.ts} +0 -0
  344. package/react/components/{smartDesktopDesigner → sdd}/tests/sdd_helpers.spec.js +0 -0
  345. package/react/components/sdd/tests/sdd_helpers.spec.js.map +1 -0
  346. package/react/components/{smartDesktopDesigner → sdd}/themeDefinitions.d.ts +0 -0
  347. package/react/components/{smartDesktopDesigner → sdd}/themeDefinitions.js +0 -0
  348. package/react/components/sdd/themeDefinitions.js.map +1 -0
  349. package/react/components/search/SearchBestMatch.js.map +1 -1
  350. package/react/components/search/SearchProviderResults.d.ts +3 -1
  351. package/react/components/search/SearchProviderResults.js.map +1 -1
  352. package/react/components/search/SearchResult.d.ts +3 -1
  353. package/react/components/search/SearchResult.js +9 -7
  354. package/react/components/search/SearchResult.js.map +1 -1
  355. package/react/components/shared/DefaultDropdownButton.js +5 -4
  356. package/react/components/shared/DefaultDropdownButton.js.map +1 -1
  357. package/react/components/shared/tests/DefaultDropdownButton.spec.js +9 -0
  358. package/react/components/shared/tests/DefaultDropdownButton.spec.js.map +1 -1
  359. package/react/components/singleInputDialog/SingleInputDialog.spec.js +1 -1
  360. package/react/components/singleInputDialog/SingleInputDialog.spec.js.map +1 -1
  361. package/react/components/smartDesktopDesigner/SmartDesktopDesigner.d.ts +0 -11
  362. package/react/components/smartDesktopDesigner/SmartDesktopDesigner.js +2 -116
  363. package/react/components/smartDesktopDesigner/SmartDesktopDesigner.js.map +1 -1
  364. package/react/components/smartDesktopDesigner/common/views.js +1 -203
  365. package/react/components/smartDesktopDesigner/common/views.js.map +1 -1
  366. package/react/components/toolbar/AutoArrange.js +1 -1
  367. package/react/components/toolbar/AutoArrange.js.map +1 -1
  368. package/react/components/toolbar/AutoArrange.spec.d.ts +1 -0
  369. package/react/components/toolbar/AutoArrange.spec.js +48 -0
  370. package/react/components/toolbar/AutoArrange.spec.js.map +1 -0
  371. package/react/components/toolbar/AutoArrange.stories.d.ts +11 -0
  372. package/react/components/toolbar/AutoArrange.stories.js +21 -0
  373. package/react/components/toolbar/AutoArrange.stories.js.map +1 -0
  374. package/react/components/toolbar/SddButton.d.ts +2 -0
  375. package/react/components/toolbar/SddButton.js +23 -0
  376. package/react/components/toolbar/SddButton.js.map +1 -0
  377. package/react/components/toolbar/ToolbarShell.js +4 -1
  378. package/react/components/toolbar/ToolbarShell.js.map +1 -1
  379. package/react/components/toolbar/advancedAppLauncher/components/AppActionsMenu.js +2 -1
  380. package/react/components/toolbar/advancedAppLauncher/components/AppActionsMenu.js.map +1 -1
  381. package/react/components/toolbar/advancedAppLauncher/components/AppDefinition.d.ts +3 -2
  382. package/react/components/toolbar/advancedAppLauncher/components/AppDefinition.js.map +1 -1
  383. package/react/components/toolbar/advancedAppLauncher/stores/StoreActions.js.map +1 -1
  384. package/react/components/toolbar/appLauncher/AppLauncherMenu.js +15 -4
  385. package/react/components/toolbar/appLauncher/AppLauncherMenu.js.map +1 -1
  386. package/react/components/toolbar/appLauncher/components/componentList.js +3 -4
  387. package/react/components/toolbar/appLauncher/components/componentList.js.map +1 -1
  388. package/react/components/toolbar/dashbar/Dashbar.js +2 -0
  389. package/react/components/toolbar/dashbar/Dashbar.js.map +1 -1
  390. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js +71 -12
  391. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js.map +1 -1
  392. package/react/components/userPreferences/UserPreferenceTypes.d.ts +3 -2
  393. package/react/components/userPreferences/UserPreferenceTypes.js.map +1 -1
  394. package/react/components/userPreferences/components/content/General.d.ts +2 -5
  395. package/react/components/userPreferences/components/content/General.js +31 -11
  396. package/react/components/userPreferences/components/content/General.js.map +1 -1
  397. package/react/components/userPreferences/components/content/Workspaces.d.ts +5 -0
  398. package/react/components/userPreferences/components/content/Workspaces.js +58 -17
  399. package/react/components/userPreferences/components/content/Workspaces.js.map +1 -1
  400. package/react/components/userPreferences/components/general/ScheduledClose.d.ts +10 -0
  401. package/react/components/userPreferences/components/general/ScheduledClose.js +95 -0
  402. package/react/components/userPreferences/components/general/ScheduledClose.js.map +1 -0
  403. package/react/components/userPreferences/stores/UserPreferencesStore.d.ts +6 -2
  404. package/react/components/userPreferences/stores/UserPreferencesStore.js +19 -3
  405. package/react/components/userPreferences/stores/UserPreferencesStore.js.map +1 -1
  406. package/react/components/userPreferences/stories/General.stories.d.ts +6 -2
  407. package/react/components/userPreferences/stories/ScheduledClose.stories.d.ts +12 -0
  408. package/react/components/userPreferences/stories/ScheduledClose.stories.js +53 -0
  409. package/react/components/userPreferences/stories/ScheduledClose.stories.js.map +1 -0
  410. package/react/components/userPreferences/tests/General.spec.js +4 -17
  411. package/react/components/userPreferences/tests/General.spec.js.map +1 -1
  412. package/react/components/userPreferences/tests/ScheduledClose.spec.d.ts +1 -0
  413. package/react/components/userPreferences/tests/ScheduledClose.spec.js +47 -0
  414. package/react/components/userPreferences/tests/ScheduledClose.spec.js.map +1 -0
  415. package/react/components/windowTitleBar/WindowTitleBarShell.d.ts +1 -0
  416. package/react/components/windowTitleBar/WindowTitleBarShell.js +16 -6
  417. package/react/components/windowTitleBar/WindowTitleBarShell.js.map +1 -1
  418. package/react/components/windowTitleBar/components/center/TabList.js +2 -2
  419. package/react/components/windowTitleBar/components/center/TabList.js.map +1 -1
  420. package/react/components/windowTitleBar/components/left/LinkerButton.js.map +1 -1
  421. package/react/components/windowTitleBar/components/windowTitle.js +11 -10
  422. package/react/components/windowTitleBar/components/windowTitle.js.map +1 -1
  423. package/react/components/windowTitleBar/stores/windowTitleBarStore.js +12 -9
  424. package/react/components/windowTitleBar/stores/windowTitleBarStore.js.map +1 -1
  425. package/react/components/yesNoDialog/Timer.spec.js +1 -1
  426. package/react/components/yesNoDialog/Timer.spec.js.map +1 -1
  427. package/react/components/yesNoDialog/YesNoDialog.spec.js +1 -1
  428. package/react/components/yesNoDialog/YesNoDialog.spec.js.map +1 -1
  429. package/react/hooks/useSearch.d.ts +2 -1
  430. package/react/hooks/useSearch.js.map +1 -1
  431. package/react/hooks/useToolbar.js +6 -0
  432. package/react/hooks/useToolbar.js.map +1 -1
  433. package/react/reducers/rootReducer.d.ts +1 -1
  434. package/react/reducers/smartDesktopDesignerReducer.js +1 -1
  435. package/react/reducers/smartDesktopDesignerReducer.js.map +1 -1
  436. package/react/store.d.ts +2 -2
  437. package/react/types/advancedAppLauncherTypes.d.ts +5 -3
  438. package/react/types/advancedAppLauncherTypes.js.map +1 -1
  439. package/react/types/favoriteTypes.d.ts +4 -2
  440. package/react/types/favoriteTypes.js.map +1 -1
  441. package/react/types/smartDesktopDesignerTypes.d.ts +9 -1
  442. package/react/types/smartDesktopDesignerTypes.js.map +1 -1
  443. package/react/components/smartDesktopDesigner/AddApp.js.map +0 -1
  444. package/react/components/smartDesktopDesigner/AppEditAccess.js.map +0 -1
  445. package/react/components/smartDesktopDesigner/AppEditPage.js.map +0 -1
  446. package/react/components/smartDesktopDesigner/Appearance.helpers.js.map +0 -1
  447. package/react/components/smartDesktopDesigner/Appearance.js.map +0 -1
  448. package/react/components/smartDesktopDesigner/Application.js.map +0 -1
  449. package/react/components/smartDesktopDesigner/Applications.js.map +0 -1
  450. package/react/components/smartDesktopDesigner/AssetsPage.js.map +0 -1
  451. package/react/components/smartDesktopDesigner/Authentication.js.map +0 -1
  452. package/react/components/smartDesktopDesigner/AuthenticationProviderConfig.js.map +0 -1
  453. package/react/components/smartDesktopDesigner/Content.js.map +0 -1
  454. package/react/components/smartDesktopDesigner/ContentHeader.js.map +0 -1
  455. package/react/components/smartDesktopDesigner/CurrentView.js.map +0 -1
  456. package/react/components/smartDesktopDesigner/EditPreload.js +0 -169
  457. package/react/components/smartDesktopDesigner/EditPreload.js.map +0 -1
  458. package/react/components/smartDesktopDesigner/Export.js.map +0 -1
  459. package/react/components/smartDesktopDesigner/ExportCloud.js.map +0 -1
  460. package/react/components/smartDesktopDesigner/ExportDeployInfo.js.map +0 -1
  461. package/react/components/smartDesktopDesigner/ExportZip.js.map +0 -1
  462. package/react/components/smartDesktopDesigner/GettingStarted.js.map +0 -1
  463. package/react/components/smartDesktopDesigner/ItemList.js.map +0 -1
  464. package/react/components/smartDesktopDesigner/Navigation.js.map +0 -1
  465. package/react/components/smartDesktopDesigner/OptionalSettingsView.js +0 -71
  466. package/react/components/smartDesktopDesigner/OptionalSettingsView.js.map +0 -1
  467. package/react/components/smartDesktopDesigner/Preloads.d.ts +0 -8
  468. package/react/components/smartDesktopDesigner/Preloads.js +0 -26
  469. package/react/components/smartDesktopDesigner/Preloads.js.map +0 -1
  470. package/react/components/smartDesktopDesigner/ProjectErrors.js.map +0 -1
  471. package/react/components/smartDesktopDesigner/Publish.js.map +0 -1
  472. package/react/components/smartDesktopDesigner/PublishProgress.js.map +0 -1
  473. package/react/components/smartDesktopDesigner/ThemePage.js.map +0 -1
  474. package/react/components/smartDesktopDesigner/Themes.js.map +0 -1
  475. package/react/components/smartDesktopDesigner/Toolbar.js.map +0 -1
  476. package/react/components/smartDesktopDesigner/View.js.map +0 -1
  477. package/react/components/smartDesktopDesigner/common/fsbl_functions.js.map +0 -1
  478. package/react/components/smartDesktopDesigner/common/getCSSVars.js.map +0 -1
  479. package/react/components/smartDesktopDesigner/fixtures/apps.js.map +0 -1
  480. package/react/components/smartDesktopDesigner/fixtures/authenticationProps.js.map +0 -1
  481. package/react/components/smartDesktopDesigner/fixtures/configTemplate.js.map +0 -1
  482. package/react/components/smartDesktopDesigner/fixtures/exportProps.js.map +0 -1
  483. package/react/components/smartDesktopDesigner/fixtures/preloads.d.ts +0 -22
  484. package/react/components/smartDesktopDesigner/fixtures/preloads.js +0 -40
  485. package/react/components/smartDesktopDesigner/fixtures/preloads.js.map +0 -1
  486. package/react/components/smartDesktopDesigner/fixtures/projectErrorsProps.js.map +0 -1
  487. package/react/components/smartDesktopDesigner/fixtures/publishProgress.js.map +0 -1
  488. package/react/components/smartDesktopDesigner/fixtures/themeProps.js.map +0 -1
  489. package/react/components/smartDesktopDesigner/fixtures/views.js.map +0 -1
  490. package/react/components/smartDesktopDesigner/sdd_helpers.js.map +0 -1
  491. package/react/components/smartDesktopDesigner/stories/AppEditPage.stories.js.map +0 -1
  492. package/react/components/smartDesktopDesigner/stories/Appearance.stories.js.map +0 -1
  493. package/react/components/smartDesktopDesigner/stories/Applications.stories.js.map +0 -1
  494. package/react/components/smartDesktopDesigner/stories/AssetsPage.stories.js.map +0 -1
  495. package/react/components/smartDesktopDesigner/stories/Authentication.stories.js.map +0 -1
  496. package/react/components/smartDesktopDesigner/stories/ContentHeader.stories.js.map +0 -1
  497. package/react/components/smartDesktopDesigner/stories/EditPreload.stories.d.ts +0 -11
  498. package/react/components/smartDesktopDesigner/stories/EditPreload.stories.js +0 -35
  499. package/react/components/smartDesktopDesigner/stories/EditPreload.stories.js.map +0 -1
  500. package/react/components/smartDesktopDesigner/stories/Export.stories.js.map +0 -1
  501. package/react/components/smartDesktopDesigner/stories/ExportCloud.stories.js.map +0 -1
  502. package/react/components/smartDesktopDesigner/stories/ExportZip.stories.js.map +0 -1
  503. package/react/components/smartDesktopDesigner/stories/GettingStarted.stories.js.map +0 -1
  504. package/react/components/smartDesktopDesigner/stories/ItemList.stories.js.map +0 -1
  505. package/react/components/smartDesktopDesigner/stories/Navigation.stories.js.map +0 -1
  506. package/react/components/smartDesktopDesigner/stories/OptionalSettingsView.stories.js +0 -28
  507. package/react/components/smartDesktopDesigner/stories/OptionalSettingsView.stories.js.map +0 -1
  508. package/react/components/smartDesktopDesigner/stories/Preloads.stories.d.ts +0 -11
  509. package/react/components/smartDesktopDesigner/stories/Preloads.stories.js +0 -31
  510. package/react/components/smartDesktopDesigner/stories/Preloads.stories.js.map +0 -1
  511. package/react/components/smartDesktopDesigner/stories/ProjectErrors.stories.js.map +0 -1
  512. package/react/components/smartDesktopDesigner/stories/Publish.stories.js.map +0 -1
  513. package/react/components/smartDesktopDesigner/stories/PublishProgress.stories.js.map +0 -1
  514. package/react/components/smartDesktopDesigner/stories/SmartDesktopDesigner.stories.js.map +0 -1
  515. package/react/components/smartDesktopDesigner/stories/ThemePage.stories.js.map +0 -1
  516. package/react/components/smartDesktopDesigner/stories/Themes.stories.js.map +0 -1
  517. package/react/components/smartDesktopDesigner/stories/Toolbar.stories.js.map +0 -1
  518. package/react/components/smartDesktopDesigner/tests/AppEditPage.spec.js.map +0 -1
  519. package/react/components/smartDesktopDesigner/tests/Application.spec.js.map +0 -1
  520. package/react/components/smartDesktopDesigner/tests/Applications.spec.js.map +0 -1
  521. package/react/components/smartDesktopDesigner/tests/Authentication.spec.js.map +0 -1
  522. package/react/components/smartDesktopDesigner/tests/ContentHeader.spec.js.map +0 -1
  523. package/react/components/smartDesktopDesigner/tests/EditPreload.spec.js.map +0 -1
  524. package/react/components/smartDesktopDesigner/tests/Export.spec.js.map +0 -1
  525. package/react/components/smartDesktopDesigner/tests/ExportZip.spec.js.map +0 -1
  526. package/react/components/smartDesktopDesigner/tests/ItemList.spec.js.map +0 -1
  527. package/react/components/smartDesktopDesigner/tests/Navigation.spec.js.map +0 -1
  528. package/react/components/smartDesktopDesigner/tests/Preloads.spec.js +0 -47
  529. package/react/components/smartDesktopDesigner/tests/Preloads.spec.js.map +0 -1
  530. package/react/components/smartDesktopDesigner/tests/ProjectErrors.spec.js.map +0 -1
  531. package/react/components/smartDesktopDesigner/tests/Publish.spec.js.map +0 -1
  532. package/react/components/smartDesktopDesigner/tests/PublishProgess.spec.js.map +0 -1
  533. package/react/components/smartDesktopDesigner/tests/SmartDesktopDesigner.spec.js.map +0 -1
  534. package/react/components/smartDesktopDesigner/tests/Themes.spec.js.map +0 -1
  535. package/react/components/smartDesktopDesigner/tests/Toolbar.spec.js.map +0 -1
  536. package/react/components/smartDesktopDesigner/tests/a11y_helper.js.map +0 -1
  537. package/react/components/smartDesktopDesigner/tests/sdd_helpers.spec.js.map +0 -1
  538. package/react/components/smartDesktopDesigner/themeDefinitions.js.map +0 -1
  539. package/react/components/toolbar/appLauncher/DynamicAppLauncher.d.ts +0 -6
  540. package/react/components/toolbar/appLauncher/DynamicAppLauncher.js +0 -23
  541. package/react/components/toolbar/appLauncher/DynamicAppLauncher.js.map +0 -1
  542. package/react/components/userPreferences/components/general/ScheduledRestart.d.ts +0 -27
  543. package/react/components/userPreferences/components/general/ScheduledRestart.js +0 -190
  544. package/react/components/userPreferences/components/general/ScheduledRestart.js.map +0 -1
  545. package/react/components/userPreferences/tests/ScheduledRestart.spec.js +0 -70
  546. package/react/components/userPreferences/tests/ScheduledRestart.spec.js.map +0 -1
  547. package/react/hooks/useWorkspace.d.ts +0 -5
  548. package/react/hooks/useWorkspace.js +0 -26
  549. package/react/hooks/useWorkspace.js.map +0 -1
  550. package/react/types/iconTypes.d.ts +0 -11
  551. package/react/types/iconTypes.js +0 -2
  552. package/react/types/iconTypes.js.map +0 -1
  553. package/react/types/searchTypes.d.ts +0 -22
  554. package/react/types/searchTypes.js +0 -2
  555. package/react/types/searchTypes.js.map +0 -1
@@ -70,6 +70,12 @@ const preventSystemClose = () => {
70
70
  return;
71
71
  }
72
72
  window.onbeforeunload = onBeforeToolbarUnload;
73
+ FSBL.Clients.RouterClient.addListener("Application.shutdown", () => {
74
+ removeSystemClosePrevention();
75
+ });
76
+ FSBL.Clients.RouterClient.addListener("Application.restart", () => {
77
+ removeSystemClosePrevention();
78
+ });
73
79
  };
74
80
  export const useToolbar = () => {
75
81
  useEffect(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"useToolbar.js","sourceRoot":"","sources":["../../src/hooks/useToolbar.ts"],"names":[],"mappings":"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","sourcesContent":["import { useEffect } from \"react\";\nimport { openQuitConfirmationDialog } from \"../components/shared/openQuitConfirmationDialog\";\n\n/**\n * Function to bring toolbar to front (since dockable toolbar can be hidden)\n * @param {boolean} focus If true, will also focus the toolbar\n */\nconst bringToolbarToFront = ({ focus }: { focus: boolean }) => {\n\tfinsembleWindow.bringToFront(null, (err: any) => {\n\t\tif (err) {\n\t\t\tFSBL.Clients.Logger.system.error(\"bringToolbarToFront failed, error:\", err);\n\t\t}\n\n\t\tif (focus) {\n\t\t\tfinsembleWindow.focus();\n\t\t}\n\t});\n};\n\n/**\n * Hides the toolbar\n */\nconst hideToolbar = () => {\n\tfinsembleWindow.blur();\n\tfinsembleWindow.hide();\n};\n\n/**\n * Shows the toolbar left-aligned to the user's mouse.\n */\nconst showToolbar = () => {\n\tFSBL.Clients.RouterClient.transmit(\"DockingService.showAtMousePosition\", {\n\t\twindowName: finsembleWindow.name,\n\t\tuuid: finsembleWindow.uuid,\n\t});\n\tbringToolbarToFront({ focus: true });\n};\n\n/**\n * Mimimizes all windows.\n */\nconst minimizeAllWindows = () => {\n\tFSBL.Clients.WorkspaceClient.minimizeAll();\n};\n\n/**\n * Brings all windows to front.\n */\nconst revealAllWindows = () => {\n\tFSBL.Clients.WorkspaceClient.bringWindowsToFront();\n};\n\n/**\n * Toggles Auto Arrange for all windows on the same monitor as the toolbar\n */\nconst toggleAutoArrange = () => {\n\tFSBL.Clients.WorkspaceClient.autoArrange({}, () => {\n\t\t// This is legacy and we're not sure if it's still required or not.\n\t\t// We can try eliminating this once core auto arrange is refactored.\n\t\tbringToolbarToFront({ focus: false });\n\t\trevealAllWindows();\n\t});\n};\n\n/**\n * It's a requirement that the toolbar not be minimized.\n * the minimizable option does not work.\n * Instead, we just listen for this event and restore the window.\n */\nconst preventMinimize = () => {\n\tfinsembleWindow.addEventListener(\"minimized\", () => {\n\t\tfinsembleWindow.restore();\n\t});\n};\n\n/**\n * Required to let the system know that the toolbar is up and ready.\n * Other pieces of the UI key off of this.\n */\nconst publishSystemCheckpoint = () => {\n\tFSBL.SystemManagerClient.publishCheckpointState(\"Toolbar\", \"initialize\", \"completed\");\n};\n\n/**\n * Prevents closing of the window.\n */\nconst onBeforeToolbarUnload = () => {\n\topenQuitConfirmationDialog();\n\t// Return of a non-void value (in this `onbeforeunload` handler) is what tells Electron not to close the window.\n\t// Don't delete this!\n\treturn false;\n};\n\nconst removeSystemClosePrevention = () => {\n\tif (window.onbeforeunload === onBeforeToolbarUnload) {\n\t\twindow.onbeforeunload = null;\n\t}\n};\n\nconst launchPreferences = (tabName: string) => {\n\tFSBL.Clients.RouterClient.transmit(\"FinsembleUserPreferencesChannel\", {\n\t\tpreferencesTab: tabName,\n\t});\n\tFSBL.Clients.LauncherClient.showWindow(\n\t\t{\n\t\t\tcomponentType: \"UserPreferences\",\n\t\t},\n\t\t{\n\t\t\tmonitor: \"mine\",\n\t\t\tleft: \"center\",\n\t\t\ttop: \"center\",\n\t\t}\n\t);\n};\n\n/**\n * Prevents the window from going down on alt+f4 or closing from taskbar.\n * Pops up a dialog asking if the user meant to shut down the system.\n */\nconst preventSystemClose = () => {\n\t// This function was already called, so no need to run it again.\n\tif (window.onbeforeunload === onBeforeToolbarUnload) return;\n\n\t// Bypass system close prevention if for some reason the toolbar has been customized with an alternative onbeforeunload handler\n\tif (window.onbeforeunload) {\n\t\tconsole.error(\n\t\t\t`Finsemble toolbar was configured to prevent system closes, however, there is already a function assigned to window.onbeforeunload. In order to prevent the OS from closing your window, we need to overwrite this handler. Users will be able to close your toolbar from the windows taskbar. Please remove your onbeforeunload handler or set the toolbar property 'allowSystemToCloseWindow' to true to get rid of this error message.`\n\t\t);\n\t\treturn;\n\t}\n\n\t/**\n\t * From the electron docs:\n\t * Note: There is a subtle difference between the behaviors of window.onbeforeunload = handler and window.addEventListener('beforeunload', handler). It is recommended to always set the event.returnValue explicitly, instead of only returning a value, as the former works more consistently within Electron.\n\t *\n\t * Tried addEventListener, and it wouldn't work.\n\t */\n\twindow.onbeforeunload = onBeforeToolbarUnload;\n\t// Terry, onShutdown() hasn't worked for many versions, so this code was never running\n\t// remove the listener when we're shutting down. Don't want to get into an infinite loop.\n\t//FSBL.onShutdown(removeSystemClosePrevention);\n};\n\nexport const useToolbar = () => {\n\tuseEffect(() => {\n\t\tpreventMinimize();\n\t\tpublishSystemCheckpoint();\n\n\t\tif (FSBL.debug !== true) {\n\t\t\tpreventSystemClose();\n\t\t}\n\t}, []);\n\n\treturn {\n\t\tremoveSystemClosePrevention,\n\t\tpreventSystemClose,\n\t\tminimizeAllWindows,\n\t\trevealAllWindows,\n\t\ttoggleAutoArrange,\n\t\tshowToolbar,\n\t\thideToolbar,\n\t\tlaunchPreferences,\n\t};\n};\n"]}
1
+ {"version":3,"file":"useToolbar.js","sourceRoot":"","sources":["../../src/hooks/useToolbar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAM7F,MAAM,mBAAmB,GAAG,CAAC,EAAE,KAAK,EAAsB,EAAE,EAAE;IAC7D,eAAe,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,GAAQ,EAAE,EAAE;QAC/C,IAAI,GAAG,EAAE;YACR,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAC;SAC5E;QAED,IAAI,KAAK,EAAE;YACV,eAAe,CAAC,KAAK,EAAE,CAAC;SACxB;IACF,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AAKF,MAAM,WAAW,GAAG,GAAG,EAAE;IACxB,eAAe,CAAC,IAAI,EAAE,CAAC;IACvB,eAAe,CAAC,IAAI,EAAE,CAAC;AACxB,CAAC,CAAC;AAKF,MAAM,WAAW,GAAG,GAAG,EAAE;IACxB,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,oCAAoC,EAAE;QACxE,UAAU,EAAE,eAAe,CAAC,IAAI;QAChC,IAAI,EAAE,eAAe,CAAC,IAAI;KAC1B,CAAC,CAAC;IACH,mBAAmB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACtC,CAAC,CAAC;AAKF,MAAM,kBAAkB,GAAG,GAAG,EAAE;IAC/B,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC;AAC5C,CAAC,CAAC;AAKF,MAAM,gBAAgB,GAAG,GAAG,EAAE;IAC7B,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,mBAAmB,EAAE,CAAC;AACpD,CAAC,CAAC;AAKF,MAAM,iBAAiB,GAAG,GAAG,EAAE;IAC9B,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,EAAE,GAAG,EAAE;QAGjD,mBAAmB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACtC,gBAAgB,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AAOF,MAAM,eAAe,GAAG,GAAG,EAAE;IAC5B,eAAe,CAAC,gBAAgB,CAAC,WAAW,EAAE,GAAG,EAAE;QAClD,eAAe,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AAMF,MAAM,uBAAuB,GAAG,GAAG,EAAE;IACpC,IAAI,CAAC,mBAAmB,CAAC,sBAAsB,CAAC,SAAS,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;AACvF,CAAC,CAAC;AAKF,MAAM,qBAAqB,GAAG,GAAG,EAAE;IAClC,0BAA0B,EAAE,CAAC;IAG7B,OAAO,KAAK,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,2BAA2B,GAAG,GAAG,EAAE;IACxC,IAAI,MAAM,CAAC,cAAc,KAAK,qBAAqB,EAAE;QACpD,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;KAC7B;AACF,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,OAAe,EAAE,EAAE;IAC7C,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,iCAAiC,EAAE;QACrE,cAAc,EAAE,OAAO;KACvB,CAAC,CAAC;IACH,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,UAAU,CACrC;QACC,aAAa,EAAE,iBAAiB;KAChC,EACD;QACC,OAAO,EAAE,MAAM;QACf,IAAI,EAAE,QAAQ;QACd,GAAG,EAAE,QAAQ;KACb,CACD,CAAC;AACH,CAAC,CAAC;AAMF,MAAM,kBAAkB,GAAG,GAAG,EAAE;IAE/B,IAAI,MAAM,CAAC,cAAc,KAAK,qBAAqB;QAAE,OAAO;IAG5D,IAAI,MAAM,CAAC,cAAc,EAAE;QAC1B,OAAO,CAAC,KAAK,CACZ,0aAA0a,CAC1a,CAAC;QACF,OAAO;KACP;IAQD,MAAM,CAAC,cAAc,GAAG,qBAAqB,CAAC;IAG9C,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAClE,2BAA2B,EAAE,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACjE,2BAA2B,EAAE,CAAC;IAC/B,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE;IAC9B,SAAS,CAAC,GAAG,EAAE;QACd,eAAe,EAAE,CAAC;QAClB,uBAAuB,EAAE,CAAC;QAE1B,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;YACxB,kBAAkB,EAAE,CAAC;SACrB;IACF,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACN,2BAA2B;QAC3B,kBAAkB;QAClB,kBAAkB;QAClB,gBAAgB;QAChB,iBAAiB;QACjB,WAAW;QACX,WAAW;QACX,iBAAiB;KACjB,CAAC;AACH,CAAC,CAAC","sourcesContent":["import { useEffect } from \"react\";\nimport { openQuitConfirmationDialog } from \"../components/shared/openQuitConfirmationDialog\";\n\n/**\n * Function to bring toolbar to front (since dockable toolbar can be hidden)\n * @param {boolean} focus If true, will also focus the toolbar\n */\nconst bringToolbarToFront = ({ focus }: { focus: boolean }) => {\n\tfinsembleWindow.bringToFront(null, (err: any) => {\n\t\tif (err) {\n\t\t\tFSBL.Clients.Logger.system.error(\"bringToolbarToFront failed, error:\", err);\n\t\t}\n\n\t\tif (focus) {\n\t\t\tfinsembleWindow.focus();\n\t\t}\n\t});\n};\n\n/**\n * Hides the toolbar\n */\nconst hideToolbar = () => {\n\tfinsembleWindow.blur();\n\tfinsembleWindow.hide();\n};\n\n/**\n * Shows the toolbar left-aligned to the user's mouse.\n */\nconst showToolbar = () => {\n\tFSBL.Clients.RouterClient.transmit(\"DockingService.showAtMousePosition\", {\n\t\twindowName: finsembleWindow.name,\n\t\tuuid: finsembleWindow.uuid,\n\t});\n\tbringToolbarToFront({ focus: true });\n};\n\n/**\n * Mimimizes all windows.\n */\nconst minimizeAllWindows = () => {\n\tFSBL.Clients.WorkspaceClient.minimizeAll();\n};\n\n/**\n * Brings all windows to front.\n */\nconst revealAllWindows = () => {\n\tFSBL.Clients.WorkspaceClient.bringWindowsToFront();\n};\n\n/**\n * Toggles Auto Arrange for all windows on the same monitor as the toolbar\n */\nconst toggleAutoArrange = () => {\n\tFSBL.Clients.WorkspaceClient.autoArrange({}, () => {\n\t\t// This is legacy and we're not sure if it's still required or not.\n\t\t// We can try eliminating this once core auto arrange is refactored.\n\t\tbringToolbarToFront({ focus: false });\n\t\trevealAllWindows();\n\t});\n};\n\n/**\n * It's a requirement that the toolbar not be minimized.\n * the minimizable option does not work.\n * Instead, we just listen for this event and restore the window.\n */\nconst preventMinimize = () => {\n\tfinsembleWindow.addEventListener(\"minimized\", () => {\n\t\tfinsembleWindow.restore();\n\t});\n};\n\n/**\n * Required to let the system know that the toolbar is up and ready.\n * Other pieces of the UI key off of this.\n */\nconst publishSystemCheckpoint = () => {\n\tFSBL.SystemManagerClient.publishCheckpointState(\"Toolbar\", \"initialize\", \"completed\");\n};\n\n/**\n * Prevents closing of the window.\n */\nconst onBeforeToolbarUnload = () => {\n\topenQuitConfirmationDialog();\n\t// Return of a non-void value (in this `onbeforeunload` handler) is what tells Electron not to close the window.\n\t// Don't delete this!\n\treturn false;\n};\n\nconst removeSystemClosePrevention = () => {\n\tif (window.onbeforeunload === onBeforeToolbarUnload) {\n\t\twindow.onbeforeunload = null;\n\t}\n};\n\nconst launchPreferences = (tabName: string) => {\n\tFSBL.Clients.RouterClient.transmit(\"FinsembleUserPreferencesChannel\", {\n\t\tpreferencesTab: tabName,\n\t});\n\tFSBL.Clients.LauncherClient.showWindow(\n\t\t{\n\t\t\tcomponentType: \"UserPreferences\",\n\t\t},\n\t\t{\n\t\t\tmonitor: \"mine\",\n\t\t\tleft: \"center\",\n\t\t\ttop: \"center\",\n\t\t}\n\t);\n};\n\n/**\n * Prevents the window from going down on alt+f4 or closing from taskbar.\n * Pops up a dialog asking if the user meant to shut down the system.\n */\nconst preventSystemClose = () => {\n\t// This function was already called, so no need to run it again.\n\tif (window.onbeforeunload === onBeforeToolbarUnload) return;\n\n\t// Bypass system close prevention if for some reason the toolbar has been customized with an alternative onbeforeunload handler\n\tif (window.onbeforeunload) {\n\t\tconsole.error(\n\t\t\t`Finsemble toolbar was configured to prevent system closes, however, there is already a function assigned to window.onbeforeunload. In order to prevent the OS from closing your window, we need to overwrite this handler. Users will be able to close your toolbar from the windows taskbar. Please remove your onbeforeunload handler or set the toolbar property 'allowSystemToCloseWindow' to true to get rid of this error message.`\n\t\t);\n\t\treturn;\n\t}\n\n\t/**\n\t * From the electron docs:\n\t * Note: There is a subtle difference between the behaviors of window.onbeforeunload = handler and window.addEventListener('beforeunload', handler). It is recommended to always set the event.returnValue explicitly, instead of only returning a value, as the former works more consistently within Electron.\n\t *\n\t * Tried addEventListener, and it wouldn't work.\n\t */\n\twindow.onbeforeunload = onBeforeToolbarUnload;\n\n\t// Detect when the system is being shutdown or restarted to remove the close prevention.\n\tFSBL.Clients.RouterClient.addListener(\"Application.shutdown\", () => {\n\t\tremoveSystemClosePrevention();\n\t});\n\n\tFSBL.Clients.RouterClient.addListener(\"Application.restart\", () => {\n\t\tremoveSystemClosePrevention();\n\t});\n};\n\nexport const useToolbar = () => {\n\tuseEffect(() => {\n\t\tpreventMinimize();\n\t\tpublishSystemCheckpoint();\n\n\t\tif (FSBL.debug !== true) {\n\t\t\tpreventSystemClose();\n\t\t}\n\t}, []);\n\n\treturn {\n\t\tremoveSystemClosePrevention,\n\t\tpreventSystemClose,\n\t\tminimizeAllWindows,\n\t\trevealAllWindows,\n\t\ttoggleAutoArrange,\n\t\tshowToolbar,\n\t\thideToolbar,\n\t\tlaunchPreferences,\n\t};\n};\n"]}
@@ -171,7 +171,7 @@ export declare const rootReducer: import("redux").Reducer<import("redux").Combin
171
171
  }) | ({
172
172
  type: "update_preloads";
173
173
  } & {
174
- payload: import("../types/smartDesktopDesignerTypes").PreloadType[];
174
+ payload: import("../types/smartDesktopDesignerTypes").PreloadMap;
175
175
  }) | ({
176
176
  type: "set_current_preload";
177
177
  } & {
@@ -11,7 +11,7 @@ export const initialState = {
11
11
  currentAppSetupType: null,
12
12
  currentPreload: null,
13
13
  menus: {},
14
- preloads: [],
14
+ preloads: {},
15
15
  projectInfo: {
16
16
  name: "",
17
17
  user: {
@@ -1 +1 @@
1
- {"version":3,"file":"smartDesktopDesignerReducer.js","sourceRoot":"","sources":["../../src/reducers/smartDesktopDesignerReducer.ts"],"names":[],"mappings":"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","sourcesContent":["import produce from \"immer\";\nimport { SmartDesktopDesignerActions, SmartDesktopDesignerActionsTypes } from \"../actions/smartDesktopDesignerActions\";\nimport { Reducer } from \"react\";\n\nimport {\n\tSmartDesktopDesignerState,\n\tApplicationSetupType,\n\tAuthenticationType,\n} from \"../types/smartDesktopDesignerTypes\";\n\nexport const initialState: SmartDesktopDesignerState = {\n\tisGettingStarted: false,\n\tpreviousViewId: null,\n\tcurrentViewId: null,\n\tapps: [],\n\tnewAppId: null,\n\tcurrentAppId: null,\n\tcurrentAppSetupType: null,\n\tcurrentPreload: null,\n\tmenus: {},\n\tpreloads: [],\n\tprojectInfo: {\n\t\tname: \"\",\n\t\tuser: {\n\t\t\tfirstName: \"\",\n\t\t\tlastName: \"\",\n\t\t\tcompany: \"\",\n\t\t\temail: \"\",\n\t\t},\n\t\texport: {\n\t\t\tauthor: \"\",\n\t\t\tcompanyName: \"\",\n\t\t\tdescription: \"\",\n\t\t\ttoolbarIcon: \"\",\n\t\t\tinstallerIcon: \"\",\n\t\t\ttaskbarIcon: \"\",\n\t\t\tsystemTrayIcon: \"\",\n\t\t\tsplashScreenImage: \"\",\n\t\t},\n\t},\n\texport: {\n\t\tuuid: null, // `${new Date().getTime()}-${Math.round(Math.random() * Math.pow(10, 10))}`,\n\t\tisPublishing: false,\n\t\tpublishError: null,\n\t\tdeployInfo: null,\n\t},\n\tauthentication: {\n\t\tproviders: [\n\t\t\t{\n\t\t\t\tname: \"Google\",\n\t\t\t\ttype: AuthenticationType.OAUTH2,\n\t\t\t\tclient_id: null,\n\t\t\t\tsecret: null,\n\t\t\t\tenabled: false,\n\t\t\t\tredirect_uri: \"\",\n\t\t\t\tauthorization_endpoint: \"https://accounts.google.com/o/oauth2/v2/auth\",\n\t\t\t\tscope: \"openid\",\n\t\t\t\tnonce: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Salesforce\",\n\t\t\t\ttype: AuthenticationType.OAUTH2,\n\t\t\t\tclient_id: null,\n\t\t\t\tsecret: null,\n\t\t\t\tenabled: false,\n\t\t\t\tredirect_uri: \"\",\n\t\t\t\tauthorization_endpoint: \"https://login.salesforce.com/services/oauth2/authorize\",\n\t\t\t\tnonce: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Custom\",\n\t\t\t\ttype: AuthenticationType.OAUTH2,\n\t\t\t\tclient_id: null,\n\t\t\t\tsecret: null,\n\t\t\t\tenabled: false,\n\t\t\t\tauthorization_endpoint: \"\",\n\t\t\t\tredirect_uri: \"\",\n\t\t\t\tscope: \"openid\",\n\t\t\t\tnonce: false,\n\t\t\t},\n\t\t],\n\t},\n\terrors: [],\n\tisReviewingErrors: false,\n};\n\nexport const smartDesktopDesignerReducer: Reducer<SmartDesktopDesignerState, SmartDesktopDesignerActionsTypes> =\n\tproduce((state: SmartDesktopDesignerState, action: SmartDesktopDesignerActionsTypes) => {\n\t\tSmartDesktopDesignerActions.match(action, {\n\t\t\tchange_view: (payload) => {\n\t\t\t\tstate.isGettingStarted = false;\n\t\t\t\tstate.previousViewId = state.currentViewId;\n\t\t\t\tstate.currentViewId = payload;\n\t\t\t\tstate.currentAppId = null;\n\t\t\t\tstate.currentAppSetupType = null;\n\t\t\t},\n\t\t\tupdate_apps: (payload) => {\n\t\t\t\tstate.apps = payload;\n\t\t\t},\n\t\t\tnew_app: (appId) => {\n\t\t\t\tstate.currentAppId = state.newAppId = appId;\n\t\t\t},\n\t\t\tset_current_app_id: (currentAppId) => {\n\t\t\t\tif (currentAppId !== null) {\n\t\t\t\t\tlet currentAppConfig = state.apps.find((app) => app.appId === currentAppId);\n\n\t\t\t\t\tif (!currentAppConfig || currentAppId === state.newAppId) {\n\t\t\t\t\t\tstate.currentAppSetupType = null;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstate.currentAppSetupType = ApplicationSetupType.APP_EDIT_ADVANCED;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tstate.currentAppSetupType = null;\n\t\t\t\t}\n\n\t\t\t\tstate.currentAppId = currentAppId;\n\t\t\t},\n\t\t\tupdate_app: (appConfig) => {\n\t\t\t\tif (!appConfig || !appConfig.appId) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tstate.apps = state.apps.filter((app) => app.appId !== appConfig.appId);\n\n\t\t\t\tstate.apps.push(appConfig);\n\t\t\t},\n\t\t\tupdate_menus: (menus) => {\n\t\t\t\tstate.menus = menus;\n\t\t\t},\n\t\t\tdelete_app: (appId) => {\n\t\t\t\tstate.apps = state.apps.filter((app) => app.appId !== appId);\n\t\t\t},\n\t\t\tset_is_publishing: (isPublishing) => {\n\t\t\t\tstate.export.isPublishing = isPublishing;\n\t\t\t},\n\t\t\tset_deploy_info: (value) => {\n\t\t\t\tstate.export.deployInfo = value;\n\t\t\t},\n\t\t\tset_publish_error: (value) => {\n\t\t\t\tstate.export.publishError = value;\n\t\t\t},\n\t\t\tset_project_info: (value) => {\n\t\t\t\tstate.projectInfo = value;\n\t\t\t},\n\t\t\tset_is_getting_started: (value) => {\n\t\t\t\tstate.isGettingStarted = value;\n\t\t\t},\n\t\t\tupdate_auth_provider: (value) => {\n\t\t\t\tconst index = state.authentication.providers.findIndex((provider) => provider.name === value.name);\n\n\t\t\t\tif (index == -1) {\n\t\t\t\t\tstate.authentication.providers.push(value);\n\t\t\t\t} else {\n\t\t\t\t\tstate.authentication.providers[index] = value;\n\t\t\t\t}\n\t\t\t},\n\t\t\tenable_auth_provider: (value) => {\n\t\t\t\tstate.authentication.providers.forEach((provider) => {\n\t\t\t\t\tprovider.enabled = provider.name === value;\n\t\t\t\t});\n\t\t\t},\n\t\t\tset_project_error: (value) => {\n\t\t\t\tstate.errors = state.errors.filter((error) => error.viewId !== value.viewId);\n\t\t\t\tstate.errors.push(value);\n\t\t\t},\n\t\t\tdelete_project_error: (value) => {\n\t\t\t\tstate.errors = state.errors.filter((error) => error.viewId !== value.viewId);\n\t\t\t},\n\t\t\tset_reviewing_project_errors: (value) => {\n\t\t\t\tstate.isReviewingErrors = value;\n\t\t\t},\n\t\t\tupdate_preloads: (preloads) => {\n\t\t\t\tstate.preloads = preloads;\n\t\t\t},\n\t\t\tset_current_preload: (preload) => {\n\t\t\t\tstate.currentPreload = preload;\n\t\t\t},\n\t\t\tdefault: () => state,\n\t\t});\n\t}, initialState);\n"]}
1
+ {"version":3,"file":"smartDesktopDesignerReducer.js","sourceRoot":"","sources":["../../src/reducers/smartDesktopDesignerReducer.ts"],"names":[],"mappings":"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","sourcesContent":["import produce from \"immer\";\nimport { SmartDesktopDesignerActions, SmartDesktopDesignerActionsTypes } from \"../actions/smartDesktopDesignerActions\";\nimport { Reducer } from \"react\";\n\nimport {\n\tSmartDesktopDesignerState,\n\tApplicationSetupType,\n\tAuthenticationType,\n} from \"../types/smartDesktopDesignerTypes\";\n\nexport const initialState: SmartDesktopDesignerState = {\n\tisGettingStarted: false,\n\tpreviousViewId: null,\n\tcurrentViewId: null,\n\tapps: [],\n\tnewAppId: null,\n\tcurrentAppId: null,\n\tcurrentAppSetupType: null,\n\tcurrentPreload: null,\n\tmenus: {},\n\tpreloads: {},\n\tprojectInfo: {\n\t\tname: \"\",\n\t\tuser: {\n\t\t\tfirstName: \"\",\n\t\t\tlastName: \"\",\n\t\t\tcompany: \"\",\n\t\t\temail: \"\",\n\t\t},\n\t\texport: {\n\t\t\tauthor: \"\",\n\t\t\tcompanyName: \"\",\n\t\t\tdescription: \"\",\n\t\t\ttoolbarIcon: \"\",\n\t\t\tinstallerIcon: \"\",\n\t\t\ttaskbarIcon: \"\",\n\t\t\tsystemTrayIcon: \"\",\n\t\t\tsplashScreenImage: \"\",\n\t\t},\n\t},\n\texport: {\n\t\tuuid: null, // `${new Date().getTime()}-${Math.round(Math.random() * Math.pow(10, 10))}`,\n\t\tisPublishing: false,\n\t\tpublishError: null,\n\t\tdeployInfo: null,\n\t},\n\tauthentication: {\n\t\tproviders: [\n\t\t\t{\n\t\t\t\tname: \"Google\",\n\t\t\t\ttype: AuthenticationType.OAUTH2,\n\t\t\t\tclient_id: null,\n\t\t\t\tsecret: null,\n\t\t\t\tenabled: false,\n\t\t\t\tredirect_uri: \"\",\n\t\t\t\tauthorization_endpoint: \"https://accounts.google.com/o/oauth2/v2/auth\",\n\t\t\t\tscope: \"openid\",\n\t\t\t\tnonce: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Salesforce\",\n\t\t\t\ttype: AuthenticationType.OAUTH2,\n\t\t\t\tclient_id: null,\n\t\t\t\tsecret: null,\n\t\t\t\tenabled: false,\n\t\t\t\tredirect_uri: \"\",\n\t\t\t\tauthorization_endpoint: \"https://login.salesforce.com/services/oauth2/authorize\",\n\t\t\t\tnonce: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Custom\",\n\t\t\t\ttype: AuthenticationType.OAUTH2,\n\t\t\t\tclient_id: null,\n\t\t\t\tsecret: null,\n\t\t\t\tenabled: false,\n\t\t\t\tauthorization_endpoint: \"\",\n\t\t\t\tredirect_uri: \"\",\n\t\t\t\tscope: \"openid\",\n\t\t\t\tnonce: false,\n\t\t\t},\n\t\t],\n\t},\n\terrors: [],\n\tisReviewingErrors: false,\n};\n\nexport const smartDesktopDesignerReducer: Reducer<SmartDesktopDesignerState, SmartDesktopDesignerActionsTypes> =\n\tproduce((state: SmartDesktopDesignerState, action: SmartDesktopDesignerActionsTypes) => {\n\t\tSmartDesktopDesignerActions.match(action, {\n\t\t\tchange_view: (payload) => {\n\t\t\t\tstate.isGettingStarted = false;\n\t\t\t\tstate.previousViewId = state.currentViewId;\n\t\t\t\tstate.currentViewId = payload;\n\t\t\t\tstate.currentAppId = null;\n\t\t\t\tstate.currentAppSetupType = null;\n\t\t\t},\n\t\t\tupdate_apps: (payload) => {\n\t\t\t\tstate.apps = payload;\n\t\t\t},\n\t\t\tnew_app: (appId) => {\n\t\t\t\tstate.currentAppId = state.newAppId = appId;\n\t\t\t},\n\t\t\tset_current_app_id: (currentAppId) => {\n\t\t\t\tif (currentAppId !== null) {\n\t\t\t\t\tlet currentAppConfig = state.apps.find((app) => app.appId === currentAppId);\n\n\t\t\t\t\tif (!currentAppConfig || currentAppId === state.newAppId) {\n\t\t\t\t\t\tstate.currentAppSetupType = null;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstate.currentAppSetupType = ApplicationSetupType.APP_EDIT_ADVANCED;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tstate.currentAppSetupType = null;\n\t\t\t\t}\n\n\t\t\t\tstate.currentAppId = currentAppId;\n\t\t\t},\n\t\t\tupdate_app: (appConfig) => {\n\t\t\t\tif (!appConfig || !appConfig.appId) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tstate.apps = state.apps.filter((app) => app.appId !== appConfig.appId);\n\n\t\t\t\tstate.apps.push(appConfig);\n\t\t\t},\n\t\t\tupdate_menus: (menus) => {\n\t\t\t\tstate.menus = menus;\n\t\t\t},\n\t\t\tdelete_app: (appId) => {\n\t\t\t\tstate.apps = state.apps.filter((app) => app.appId !== appId);\n\t\t\t},\n\t\t\tset_is_publishing: (isPublishing) => {\n\t\t\t\tstate.export.isPublishing = isPublishing;\n\t\t\t},\n\t\t\tset_deploy_info: (value) => {\n\t\t\t\tstate.export.deployInfo = value;\n\t\t\t},\n\t\t\tset_publish_error: (value) => {\n\t\t\t\tstate.export.publishError = value;\n\t\t\t},\n\t\t\tset_project_info: (value) => {\n\t\t\t\tstate.projectInfo = value;\n\t\t\t},\n\t\t\tset_is_getting_started: (value) => {\n\t\t\t\tstate.isGettingStarted = value;\n\t\t\t},\n\t\t\tupdate_auth_provider: (value) => {\n\t\t\t\tconst index = state.authentication.providers.findIndex((provider) => provider.name === value.name);\n\n\t\t\t\tif (index == -1) {\n\t\t\t\t\tstate.authentication.providers.push(value);\n\t\t\t\t} else {\n\t\t\t\t\tstate.authentication.providers[index] = value;\n\t\t\t\t}\n\t\t\t},\n\t\t\tenable_auth_provider: (value) => {\n\t\t\t\tstate.authentication.providers.forEach((provider) => {\n\t\t\t\t\tprovider.enabled = provider.name === value;\n\t\t\t\t});\n\t\t\t},\n\t\t\tset_project_error: (value) => {\n\t\t\t\tstate.errors = state.errors.filter((error) => error.viewId !== value.viewId);\n\t\t\t\tstate.errors.push(value);\n\t\t\t},\n\t\t\tdelete_project_error: (value) => {\n\t\t\t\tstate.errors = state.errors.filter((error) => error.viewId !== value.viewId);\n\t\t\t},\n\t\t\tset_reviewing_project_errors: (value) => {\n\t\t\t\tstate.isReviewingErrors = value;\n\t\t\t},\n\t\t\tupdate_preloads: (preloads) => {\n\t\t\t\tstate.preloads = preloads;\n\t\t\t},\n\t\t\tset_current_preload: (preload) => {\n\t\t\t\tstate.currentPreload = preload;\n\t\t\t},\n\t\t\tdefault: () => state,\n\t\t});\n\t}, initialState);\n"]}
package/react/store.d.ts CHANGED
@@ -157,7 +157,7 @@ export declare const createStore: () => import("redux").Store<import("redux").Em
157
157
  }) | ({
158
158
  type: "update_preloads";
159
159
  } & {
160
- payload: import("./types/smartDesktopDesignerTypes").PreloadType[];
160
+ payload: import("./types/smartDesktopDesignerTypes").PreloadMap;
161
161
  }) | ({
162
162
  type: "set_current_preload";
163
163
  } & {
@@ -362,7 +362,7 @@ export declare const store: import("redux").Store<import("redux").EmptyObject &
362
362
  }) | ({
363
363
  type: "update_preloads";
364
364
  } & {
365
- payload: import("./types/smartDesktopDesignerTypes").PreloadType[];
365
+ payload: import("./types/smartDesktopDesignerTypes").PreloadMap;
366
366
  }) | ({
367
367
  type: "set_current_preload";
368
368
  } & {
@@ -1,11 +1,12 @@
1
- import { Icon } from "./iconTypes";
1
+ import { services } from "@finsemble/finsemble-api";
2
+ declare type IconDescriptor = services.window.types.IconDescriptor;
2
3
  export declare type FavoriteCategory = "Workspace" | "Application";
3
4
  export declare type FavoriteDropdown = {
4
5
  id: string;
5
6
  category: FavoriteCategory;
6
7
  name: string;
7
8
  app?: object;
8
- icon: Icon;
9
+ icon: IconDescriptor;
9
10
  instance: any;
10
11
  };
11
12
  export declare type FavoriteStar = {
@@ -13,7 +14,7 @@ export declare type FavoriteStar = {
13
14
  category: FavoriteCategory;
14
15
  name: string;
15
16
  app: object;
16
- icon: Icon;
17
+ icon: IconDescriptor;
17
18
  };
18
19
  export declare type FolderAppType = {
19
20
  name: string;
@@ -42,3 +43,4 @@ export interface WindowOptions {
42
43
  };
43
44
  };
44
45
  }
46
+ export {};
@@ -1 +1 @@
1
- {"version":3,"file":"advancedAppLauncherTypes.js","sourceRoot":"","sources":["../../src/types/advancedAppLauncherTypes.ts"],"names":[],"mappings":"","sourcesContent":["import { Icon } from \"./iconTypes\";\n\nexport type FavoriteCategory = \"Workspace\" | \"Application\";\n\nexport type FavoriteDropdown = {\n\t/* The unique identifier of a favorite */\n\tid: string;\n\t/* Favorite category - the kind of items that can be favorited */\n\tcategory: FavoriteCategory;\n\t/* The display name of a favorite */\n\tname: string;\n\t/* The object containing the entire application */\n\tapp?: object;\n\t/* The icon for the favorite item in the toolbar. This value should be a className */\n\ticon: Icon;\n\t/* Function to setState. Used to update dropdown menu's state */\n\tinstance: any;\n};\n\nexport type FavoriteStar = {\n\t/* The unique identifier of a favorite */\n\tid: string;\n\t/* Favorite category - the kind of items that can be favorited */\n\tcategory: FavoriteCategory;\n\t/* The display name of a favorite */\n\tname: string;\n\t/* The object containing the entire application */\n\tapp: object;\n\t/* The icon for the favorite item in the toolbar. This value should be a className */\n\ticon: Icon;\n};\n\nexport type FolderAppType = {\n\tname: string;\n\tappID: string;\n\tdisplayName?: string;\n\ttags?: string[];\n};\n\nexport type FolderType = {\n\tname?: string;\n\ticon?: string;\n\ttype?: \"folder\";\n\tcanDelete?: boolean;\n\tcanEdit?: boolean;\n\tapps: FolderAppType[];\n};\n\nexport type FoldersType = {\n\tlist: string[];\n\tfolders: {\n\t\t[folderName: string]: FolderType;\n\t};\n};\n\nexport interface WindowOptions {\n\tcustomData: {\n\t\tcomponent: {\n\t\t\tuseAppCatalog: boolean;\n\t\t};\n\t};\n}\n"]}
1
+ {"version":3,"file":"advancedAppLauncherTypes.js","sourceRoot":"","sources":["../../src/types/advancedAppLauncherTypes.ts"],"names":[],"mappings":"","sourcesContent":["import { services } from \"@finsemble/finsemble-api\";\n\ntype IconDescriptor = services.window.types.IconDescriptor;\n\nexport type FavoriteCategory = \"Workspace\" | \"Application\";\n\nexport type FavoriteDropdown = {\n\t/* The unique identifier of a favorite */\n\tid: string;\n\t/* Favorite category - the kind of items that can be favorited */\n\tcategory: FavoriteCategory;\n\t/* The display name of a favorite */\n\tname: string;\n\t/* The object containing the entire application */\n\tapp?: object;\n\t/* The icon for the favorite item in the toolbar. This value should be a className */\n\ticon: IconDescriptor;\n\t/* Function to setState. Used to update dropdown menu's state */\n\tinstance: any;\n};\n\nexport type FavoriteStar = {\n\t/* The unique identifier of a favorite */\n\tid: string;\n\t/* Favorite category - the kind of items that can be favorited */\n\tcategory: FavoriteCategory;\n\t/* The display name of a favorite */\n\tname: string;\n\t/* The object containing the entire application */\n\tapp: object;\n\t/* The icon for the favorite item in the toolbar. This value should be a className */\n\ticon: IconDescriptor;\n};\n\nexport type FolderAppType = {\n\tname: string;\n\tappID: string;\n\tdisplayName?: string;\n\ttags?: string[];\n};\n\nexport type FolderType = {\n\tname?: string;\n\ticon?: string;\n\ttype?: \"folder\";\n\tcanDelete?: boolean;\n\tcanEdit?: boolean;\n\tapps: FolderAppType[];\n};\n\nexport type FoldersType = {\n\tlist: string[];\n\tfolders: {\n\t\t[folderName: string]: FolderType;\n\t};\n};\n\nexport interface WindowOptions {\n\tcustomData: {\n\t\tcomponent: {\n\t\t\tuseAppCatalog: boolean;\n\t\t};\n\t};\n}\n"]}
@@ -1,8 +1,10 @@
1
- import { Icon } from "./iconTypes";
1
+ import { services } from "@finsemble/finsemble-api";
2
+ declare type IconDescriptor = services.window.types.IconDescriptor;
2
3
  export declare type FavoriteCategory = "Workspace" | "Application";
3
4
  export declare type Favorite = {
4
5
  id: string;
5
6
  category: FavoriteCategory;
6
7
  name: string;
7
- icon?: Icon;
8
+ icon?: IconDescriptor;
8
9
  };
10
+ export {};
@@ -1 +1 @@
1
- {"version":3,"file":"favoriteTypes.js","sourceRoot":"","sources":["../../src/types/favoriteTypes.ts"],"names":[],"mappings":"","sourcesContent":["import { Icon } from \"./iconTypes\";\n\nexport type FavoriteCategory = \"Workspace\" | \"Application\";\n\nexport type Favorite = {\n\t/* The unique identifier of a favorite */\n\tid: string;\n\t/* Favorite category - the kind of items that can be favorited */\n\tcategory: FavoriteCategory;\n\t/* The display name of a favorite */\n\tname: string;\n\t/* The icon for the favorite item in the toolbar. This value should be a className */\n\ticon?: Icon;\n};\n"]}
1
+ {"version":3,"file":"favoriteTypes.js","sourceRoot":"","sources":["../../src/types/favoriteTypes.ts"],"names":[],"mappings":"","sourcesContent":["import { services } from \"@finsemble/finsemble-api\";\n\ntype IconDescriptor = services.window.types.IconDescriptor;\n\nexport type FavoriteCategory = \"Workspace\" | \"Application\";\n\nexport type Favorite = {\n\t/* The unique identifier of a favorite */\n\tid: string;\n\t/* Favorite category - the kind of items that can be favorited */\n\tcategory: FavoriteCategory;\n\t/* The display name of a favorite */\n\tname: string;\n\t/* The icon for the favorite item in the toolbar. This value should be a className */\n\ticon?: IconDescriptor;\n};\n"]}
@@ -115,6 +115,14 @@ export declare type PreloadType = {
115
115
  alias: string;
116
116
  url: string;
117
117
  };
118
+ export declare type PreloadMap = {
119
+ [alias: string]: PreloadDetail;
120
+ };
121
+ export declare type PreloadDetail = {
122
+ url: string;
123
+ autoload: preloadUsageType;
124
+ };
125
+ export declare type preloadUsageType = "launchable" | "all" | "none";
118
126
  export declare type ProjectError = {
119
127
  viewId: string;
120
128
  message: string;
@@ -129,7 +137,7 @@ export declare type SmartDesktopDesignerState = {
129
137
  currentAppSetupType: null | ApplicationSetupType;
130
138
  currentPreload: PreloadType | null;
131
139
  menus: MenuType;
132
- preloads: PreloadType[];
140
+ preloads: PreloadMap;
133
141
  projectInfo: ProjectSaveData;
134
142
  export: {
135
143
  uuid: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"smartDesktopDesignerTypes.js","sourceRoot":"","sources":["../../src/types/smartDesktopDesignerTypes.ts"],"names":[],"mappings":"AA0FA,MAAM,CAAN,IAAY,aAKX;AALD,WAAY,aAAa;IACxB,oCAAmB,CAAA;IACnB,0CAAyB,CAAA;IACzB,sCAAqB,CAAA;IACrB,gCAAe,CAAA;AAChB,CAAC,EALW,aAAa,KAAb,aAAa,QAKxB;AASD,MAAM,CAAN,IAAY,oBAKX;AALD,WAAY,oBAAoB;IAC/B,mFAAc,CAAA;IACd,uFAAgB,CAAA;IAChB,qFAAe,CAAA;IACf,yFAAiB,CAAA;AAClB,CAAC,EALW,oBAAoB,KAApB,oBAAoB,QAK/B;AAED,MAAM,CAAN,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC7B,uCAAiB,CAAA;IACjB,2CAAqB,CAAA;AACtB,CAAC,EAHW,kBAAkB,KAAlB,kBAAkB,QAG7B","sourcesContent":["import React from \"react\";\nimport { FinsembleIconType } from \"../components/common/FinsembleIcon\";\nimport { services, FEA } from \"@finsemble/finsemble-api\";\n\nexport type ApplicationRule = services.Interop.types.SelectConnectRule;\ntype AppDefinition = services.Interop.types.AppDefinition;\ntype DeployInfo = FEA.DeployInfo;\n\nexport type ApplicationSaveData = {\n\tname: string;\n\n\tabstractPosition: number;\n\taddToWorkspace: boolean;\n\tallowAutoArrange: boolean;\n\tallowGrouping: boolean;\n\tallowMinimize: boolean;\n\tallowMaximize: boolean;\n\tallowSnapping: boolean;\n\tallowTabbing: boolean;\n\tallowTiling: boolean;\n\talwaysOnTop: boolean;\n\tappArguments?: string;\n\tappType?: string;\n\tautoConnect: boolean;\n\tdescription?: string;\n\tenableAOT: boolean;\n\tenableTitleBar: boolean;\n\theight?: number | string;\n\thideClose: boolean;\n\thideMaximize: boolean;\n\thideMinimize: boolean;\n\ticonURL?: string;\n\tintents: IntentEntry[];\n\tisEvergreen: boolean;\n\tlaunchableByUser: boolean;\n\tnative_windowSpawnTimeout: number;\n\topacity: number;\n\tpath?: string;\n\tpersistPath: boolean;\n\tpersistURL: boolean;\n\tpreloads: string[];\n\tresizable: boolean;\n\trules?: ApplicationRule[];\n\tsecurity: \"trusted\" | \"untrusted\";\n\tsingleton: boolean;\n\tspawnOnStartup: boolean;\n\ttags?: string[];\n\turl?: string;\n\twidth?: number | string;\n};\n\nexport type IntentEntry = {\n\tname: string;\n\tdisplayName: string;\n\tcontexts?: string[];\n};\n\nexport type ProjectSaveData = {\n\tname: string;\n\tpath?: string;\n\tuser: UserSaveData;\n\texport: ExportSaveData;\n};\n\nexport type ExportSaveData = {\n\tauthor: string;\n\tcompanyName: string;\n\tdescription: string;\n} & ProjectAssets;\n\nexport type ProjectAssets = {\n\ttoolbarIcon: string;\n\tinstallerIcon: string;\n\ttaskbarIcon: string;\n\tsystemTrayIcon: string;\n\tsplashScreenImage: string;\n};\n\nexport type UserSaveData = {\n\tfirstName: string;\n\tlastName: string;\n\tcompany: string;\n\temail: string;\n};\n\nexport type SDServerInfo = {\n\tenabled: boolean;\n\tapplicationRoot?: string;\n};\n\nexport enum ProgressState {\n\tStarted = \"Started\",\n\tNotStarted = \"NotStarted\",\n\tFinished = \"Finished\",\n\tError = \"Error\",\n}\n\nexport type PublishProgress = {\n\tstep: string;\n\terror: string;\n\tpercentComplete: number;\n\tstate: ProgressState;\n};\n\nexport enum ApplicationSetupType {\n\tAPP_ADD_SIMPLE,\n\tAPP_ADD_ADVANCED,\n\tAPP_EDIT_SIMPLE,\n\tAPP_EDIT_ADVANCED,\n}\n\nexport enum AuthenticationType {\n\tOAUTH2 = \"OAUTH2\",\n\tPASSWORD = \"PASSWORD\",\n}\n\nexport type AuthenticationProvider = {\n\tname: string;\n\ttype: AuthenticationType;\n\tclient_id: string | null;\n\tsecret: string | null;\n\tenabled: boolean;\n\tredirect_uri: string;\n\tauthorization_endpoint?: string;\n\tscope?: string;\n\tnonce: boolean;\n};\n\nexport type PreloadType = {\n\talias: string;\n\turl: string;\n};\n\nexport type ProjectError = {\n\tviewId: string;\n\tmessage: string;\n};\n\nexport type SmartDesktopDesignerState = {\n\tisGettingStarted: boolean;\n\tpreviousViewId: string | null;\n\tcurrentViewId: string | null;\n\tapps: AppDefinition[];\n\tnewAppId: string | null;\n\tcurrentAppId: string | null;\n\tcurrentAppSetupType: null | ApplicationSetupType;\n\tcurrentPreload: PreloadType | null;\n\tmenus: MenuType;\n\tpreloads: PreloadType[];\n\tprojectInfo: ProjectSaveData;\n\texport: {\n\t\tuuid: string | null;\n\t\tisPublishing: boolean;\n\t\tdeployInfo: DeployInfo | null;\n\t\tpublishError: string | null;\n\t};\n\tauthentication: {\n\t\tproviders: AuthenticationProvider[];\n\t};\n\terrors: ProjectError[];\n\tisReviewingErrors: boolean;\n};\n\nexport type ViewInfo = {\n\tid: string;\n\ticon: FinsembleIconType;\n\tname: string;\n\tcomponent: React.ReactNode;\n\tprops?: any;\n};\n\nexport type ViewSectionInfo = {\n\tshowLabel: boolean;\n\tlabel: string;\n\tviews: ViewInfo[];\n};\n\nexport type MenuObjType = {\n\tdisplayName: string;\n\tapplications: string[];\n\tposition: number;\n};\nexport type MenuType = {\n\t[key: string]: MenuObjType;\n};\n"]}
1
+ {"version":3,"file":"smartDesktopDesignerTypes.js","sourceRoot":"","sources":["../../src/types/smartDesktopDesignerTypes.ts"],"names":[],"mappings":"AA0FA,MAAM,CAAN,IAAY,aAKX;AALD,WAAY,aAAa;IACxB,oCAAmB,CAAA;IACnB,0CAAyB,CAAA;IACzB,sCAAqB,CAAA;IACrB,gCAAe,CAAA;AAChB,CAAC,EALW,aAAa,KAAb,aAAa,QAKxB;AASD,MAAM,CAAN,IAAY,oBAKX;AALD,WAAY,oBAAoB;IAC/B,mFAAc,CAAA;IACd,uFAAgB,CAAA;IAChB,qFAAe,CAAA;IACf,yFAAiB,CAAA;AAClB,CAAC,EALW,oBAAoB,KAApB,oBAAoB,QAK/B;AAED,MAAM,CAAN,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC7B,uCAAiB,CAAA;IACjB,2CAAqB,CAAA;AACtB,CAAC,EAHW,kBAAkB,KAAlB,kBAAkB,QAG7B","sourcesContent":["import React from \"react\";\nimport { FinsembleIconType } from \"../components/common/FinsembleIcon\";\nimport { services, FEA } from \"@finsemble/finsemble-api\";\n\nexport type ApplicationRule = services.Interop.types.SelectConnectRule;\ntype AppDefinition = services.Interop.types.AppDefinition;\ntype DeployInfo = FEA.DeployInfo;\n\nexport type ApplicationSaveData = {\n\tname: string;\n\n\tabstractPosition: number;\n\taddToWorkspace: boolean;\n\tallowAutoArrange: boolean;\n\tallowGrouping: boolean;\n\tallowMinimize: boolean;\n\tallowMaximize: boolean;\n\tallowSnapping: boolean;\n\tallowTabbing: boolean;\n\tallowTiling: boolean;\n\talwaysOnTop: boolean;\n\tappArguments?: string;\n\tappType?: string;\n\tautoConnect: boolean;\n\tdescription?: string;\n\tenableAOT: boolean;\n\tenableTitleBar: boolean;\n\theight?: number | string;\n\thideClose: boolean;\n\thideMaximize: boolean;\n\thideMinimize: boolean;\n\ticonURL?: string;\n\tintents: IntentEntry[];\n\tisEvergreen: boolean;\n\tlaunchableByUser: boolean;\n\tnative_windowSpawnTimeout: number;\n\topacity: number;\n\tpath?: string;\n\tpersistPath: boolean;\n\tpersistURL: boolean;\n\tpreloads: string[];\n\tresizable: boolean;\n\trules?: ApplicationRule[];\n\tsecurity: \"trusted\" | \"untrusted\";\n\tsingleton: boolean;\n\tspawnOnStartup: boolean;\n\ttags?: string[];\n\turl?: string;\n\twidth?: number | string;\n};\n\nexport type IntentEntry = {\n\tname: string;\n\tdisplayName: string;\n\tcontexts?: string[];\n};\n\nexport type ProjectSaveData = {\n\tname: string;\n\tpath?: string;\n\tuser: UserSaveData;\n\texport: ExportSaveData;\n};\n\nexport type ExportSaveData = {\n\tauthor: string;\n\tcompanyName: string;\n\tdescription: string;\n} & ProjectAssets;\n\nexport type ProjectAssets = {\n\ttoolbarIcon: string;\n\tinstallerIcon: string;\n\ttaskbarIcon: string;\n\tsystemTrayIcon: string;\n\tsplashScreenImage: string;\n};\n\nexport type UserSaveData = {\n\tfirstName: string;\n\tlastName: string;\n\tcompany: string;\n\temail: string;\n};\n\nexport type SDServerInfo = {\n\tenabled: boolean;\n\tapplicationRoot?: string;\n};\n\nexport enum ProgressState {\n\tStarted = \"Started\",\n\tNotStarted = \"NotStarted\",\n\tFinished = \"Finished\",\n\tError = \"Error\",\n}\n\nexport type PublishProgress = {\n\tstep: string;\n\terror: string;\n\tpercentComplete: number;\n\tstate: ProgressState;\n};\n\nexport enum ApplicationSetupType {\n\tAPP_ADD_SIMPLE,\n\tAPP_ADD_ADVANCED,\n\tAPP_EDIT_SIMPLE,\n\tAPP_EDIT_ADVANCED,\n}\n\nexport enum AuthenticationType {\n\tOAUTH2 = \"OAUTH2\",\n\tPASSWORD = \"PASSWORD\",\n}\n\nexport type AuthenticationProvider = {\n\tname: string;\n\ttype: AuthenticationType;\n\tclient_id: string | null;\n\tsecret: string | null;\n\tenabled: boolean;\n\tredirect_uri: string;\n\tauthorization_endpoint?: string;\n\tscope?: string;\n\tnonce: boolean;\n};\n\nexport type PreloadType = {\n\talias: string;\n\turl: string;\n};\n\nexport type PreloadMap = {\n\t[alias: string]: PreloadDetail;\n};\nexport type PreloadDetail = {\n\turl: string;\n\tautoload: preloadUsageType;\n};\nexport type preloadUsageType = \"launchable\" | \"all\" | \"none\";\n\nexport type ProjectError = {\n\tviewId: string;\n\tmessage: string;\n};\n\nexport type SmartDesktopDesignerState = {\n\tisGettingStarted: boolean;\n\tpreviousViewId: string | null;\n\tcurrentViewId: string | null;\n\tapps: AppDefinition[];\n\tnewAppId: string | null;\n\tcurrentAppId: string | null;\n\tcurrentAppSetupType: null | ApplicationSetupType;\n\tcurrentPreload: PreloadType | null;\n\tmenus: MenuType;\n\tpreloads: PreloadMap;\n\tprojectInfo: ProjectSaveData;\n\texport: {\n\t\tuuid: string | null;\n\t\tisPublishing: boolean;\n\t\tdeployInfo: DeployInfo | null;\n\t\tpublishError: string | null;\n\t};\n\tauthentication: {\n\t\tproviders: AuthenticationProvider[];\n\t};\n\terrors: ProjectError[];\n\tisReviewingErrors: boolean;\n};\n\nexport type ViewInfo = {\n\tid: string;\n\ticon: FinsembleIconType;\n\tname: string;\n\tcomponent: React.ReactNode;\n\tprops?: any;\n};\n\nexport type ViewSectionInfo = {\n\tshowLabel: boolean;\n\tlabel: string;\n\tviews: ViewInfo[];\n};\n\nexport type MenuObjType = {\n\tdisplayName: string;\n\tapplications: string[];\n\tposition: number;\n};\nexport type MenuType = {\n\t[key: string]: MenuObjType;\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"AddApp.js","sourceRoot":"","sources":["../../../src/components/smartDesktopDesigner/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 { getDefaultName } from \"./sdd_helpers\";\n\ntype AddAppProps = {\n\tcheckValidURL: (url: string) => boolean;\n\taddAppByUrl: (url: string, name: string) => void;\n\taddAppByPath: (path: string, name: string) => void;\n\tclose: () => void;\n\tshow: boolean;\n};\n\nexport const AddApp = (props: AddAppProps) => {\n\tconst [newAppUrl, setNewAppUrl] = useState(\"\");\n\tconst [currentAppPath, setCurrentAppPath] = useState(\"\");\n\tconst [newAppName, setNewAppName] = useState(\"\");\n\n\tconst isAppUrlValid = props.checkValidURL(newAppUrl);\n\n\tif (!props.show && (newAppName !== \"\" || newAppUrl !== \"\")) {\n\t\tsetNewAppUrl(\"\");\n\t\tsetNewAppName(\"\");\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName={`quick-add-app${props.show ? \"\" : \" collapsed\"}`}\n\t\t\tstyle={{ position: \"relative\" }}\n\t\t\taria-hidden={!props.show}\n\t\t>\n\t\t\t<ButtonIcon icon=\"times\" onClick={props.close} text=\"Close\" className=\"quick-add-close\" />\n\t\t\t<table role=\"presentation\" style={{ width: \"100%\", paddingTop: \"30px\" }}>\n\t\t\t\t<tbody>\n\t\t\t\t\t<tr className=\"quick-add-url\">\n\t\t\t\t\t\t<td style={{ width: \"20%\" }}>\n\t\t\t\t\t\t\t<label htmlFor=\"app-url\">App URL</label>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\tplaceholder=\"https://...\"\n\t\t\t\t\t\t\t\tid=\"app-url\"\n\t\t\t\t\t\t\t\tvalue={newAppUrl}\n\t\t\t\t\t\t\t\taria-invalid={!isAppUrlValid}\n\t\t\t\t\t\t\t\taria-errormessage=\"app-url-error-message\"\n\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\tsetNewAppUrl(e.target.value);\n\t\t\t\t\t\t\t\t\tsetNewAppName(getDefaultName(e.target.value));\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tonKeyUp={(e) => {\n\t\t\t\t\t\t\t\t\tsetNewAppUrl(e.currentTarget.value);\n\t\t\t\t\t\t\t\t\tsetNewAppName(getDefaultName(e.currentTarget.value));\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tstyle={{ width: \"95%\" }}\n\t\t\t\t\t\t\t\tdisabled={currentAppPath !== \"\"}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{!isAppUrlValid ? (\n\t\t\t\t\t\t\t\t<div id=\"app-url-error-message\" className=\"invalid-message\">\n\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</div>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td style={{ fontStyle: \"italic\" }}>or</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr className=\"quick-add-path\">\n\t\t\t\t\t\t<td colSpan={2}>\n\t\t\t\t\t\t\t<FileInput\n\t\t\t\t\t\t\t\tid=\"app-path\"\n\t\t\t\t\t\t\t\tacceptTypes={VALID_APP_EXTENSIONS}\n\t\t\t\t\t\t\t\tshouldUpload={false}\n\t\t\t\t\t\t\t\tvalue={currentAppPath}\n\t\t\t\t\t\t\t\tdisabled={newAppUrl !== \"\"}\n\t\t\t\t\t\t\t\tonSetValue={(value: string) => {\n\t\t\t\t\t\t\t\t\tsetCurrentAppPath(value);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<label htmlFor=\"app-name\">App name</label>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\tid=\"app-name\"\n\t\t\t\t\t\t\t\tvalue={newAppName}\n\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\tsetNewAppName(e.target.value);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tstyle={{ width: \"95%\" }}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody>\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 (newAppUrl !== \"\") {\n\t\t\t\t\t\t\tprops.addAppByUrl(newAppUrl, newAppName);\n\t\t\t\t\t\t} else if (currentAppPath !== \"\") {\n\t\t\t\t\t\t\tprops.addAppByPath(currentAppPath, newAppName);\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={(newAppUrl === \"\" && currentAppPath === \"\") || !isAppUrlValid || newAppName === \"\"}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"AppEditAccess.js","sourceRoot":"","sources":["../../../src/components/smartDesktopDesigner/AppEditAccess.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 { SmartDesktopDesignerActions } from \"../../actions/smartDesktopDesignerActions\";\nimport { RootState } from \"../../reducers/rootReducer\";\nimport { useDispatch, useSelector } from \"../../store\";\nimport { ApplicationRule } from \"../../types/smartDesktopDesignerTypes\";\nimport { FinsembleSelect } from \"../common/FinsembleSelect\";\nimport { Tooltip } from \"../common/Tooltip\";\nimport RelativePortal from \"react-relative-portal\";\nimport { FinsembleIcon } from \"../common/FinsembleIcon\";\nimport { services } from \"@finsemble/finsemble-api\";\n\ntype AppDefinition = services.Interop.types.AppDefinition;\n\nexport type AppEditAccessProps = {\n\tappName: string;\n\trules: ApplicationRule[];\n\tonChange: (data: ApplicationRule[]) => any;\n\taddApp: typeof FSBL.Clients.SmartDesktopClient.prototype.addApp;\n\tisInboundInteropAuthorized: typeof FSBL.Clients.SmartDesktopClient.isInboundInteropAuthorized;\n\tisOutboundInteropAuthorized: typeof FSBL.Clients.SmartDesktopClient.isOutboundInteropAuthorized;\n};\n\nexport const AppEditAccess = (props: AppEditAccessProps) => {\n\tconst dispatch = useDispatch();\n\n\tconst apps = useSelector((state: RootState) => state.smartDesktopDesigner.apps);\n\n\tconst [rules, setRules] = useState(props.rules);\n\n\tconst [scrolling, setScrolling] = useState(false);\n\tlet timeout: any = null;\n\n\tuseEffect(() => {\n\t\tconst handleScroll = () => {\n\t\t\tsetScrolling(true);\n\t\t\tclearTimeout(timeout);\n\n\t\t\ttimeout = setTimeout(() => {\n\t\t\t\tsetScrolling(false);\n\t\t\t}, 50);\n\t\t};\n\n\t\twindow.addEventListener(\"scroll\", handleScroll, { passive: true, capture: true });\n\n\t\treturn () => window.removeEventListener(\"scroll\", handleScroll);\n\t}, []);\n\n\t/**\n\t * Get a list of all apps other than this one (in order to pick which ones to authorize)\n\t */\n\tconst filteredApps = apps\n\t\t.filter((app) => !app.manifest?.temporary && app.name !== props.appName)\n\t\t.sort((a, b) => {\n\t\t\tif (a.name > b.name) {\n\t\t\t\treturn 1;\n\t\t\t} else if (b.name > a.name) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\treturn 0;\n\t\t});\n\n\t/**\n\t * When adding an app, there will not yet be a name. The app that is flagged as temporary is us.\n\t * During editing of an app, the app will not be temporary but it will have a name.\n\t * We must check for both circumstances in order to know which app in the list is the current app.\n\t */\n\tconst currentApp = apps.find((app) => app.manifest?.temporary || app.name === props.appName);\n\n\tconst [inboundAuthorizedApps, setInboundAuthorizedApps] = useState<string[]>([]);\n\tconst [outboundAuthorizedApps, setOutboundAuthorizedApps] = useState<string[]>([]);\n\tconst [advancedExpanded, setAdvancedExpanded] = useState(false);\n\n\tfunction doSetRules(newRules: ApplicationRule[]) {\n\t\tsetRules(newRules);\n\n\t\tprops.onChange(newRules);\n\t}\n\n\tfunction updateBlockingApp(config: AppDefinition) {\n\t\tprops.addApp(config.appId, config).then(() => {\n\t\t\tdispatch(SmartDesktopDesignerActions.update_app(config));\n\t\t});\n\t}\n\n\tfunction getOptions() {\n\t\treturn filteredApps.map((app) => {\n\t\t\tconst isInboundAuthorized = inboundAuthorizedApps.includes(app.name);\n\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tclassName={[\"app-edit-access-item\", !isInboundAuthorized ? \"app-edit-access-blocked\" : \"\"].join(\" \")}\n\t\t\t\t\tkey={app.name}\n\t\t\t\t>\n\t\t\t\t\t<span className=\"app-edit-access-item-name\">{app.name}</span>\n\t\t\t\t\t{!isInboundAuthorized && (\n\t\t\t\t\t\t<RelativePortal\n\t\t\t\t\t\t\tclassName={[\"tooltip-portal\", scrolling || !advancedExpanded ? \"is-scrolling\" : \"\"].join(\" \")}\n\t\t\t\t\t\t\tcomponent=\"div\"\n\t\t\t\t\t\t\tleft={-13}\n\t\t\t\t\t\t\ttop={0}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\t\ttype=\"lock\"\n\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\tupdateBlockingApp({\n\t\t\t\t\t\t\t\t\t\t...app,\n\t\t\t\t\t\t\t\t\t\tmanifest: {\n\t\t\t\t\t\t\t\t\t\t\t...app.manifest,\n\t\t\t\t\t\t\t\t\t\t\tinterop: {\n\t\t\t\t\t\t\t\t\t\t\t\t...app.manifest?.interop,\n\t\t\t\t\t\t\t\t\t\t\t\tselectConnect: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t...(app.manifest?.interop?.selectConnect || []),\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tauthorize: [{ name: props.appName || \"\" }],\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\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},\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>\n\t\t\t\t\t\t\t\tThis app is blocking access. Click to allow access\n\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t</RelativePortal>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t);\n\t\t});\n\t}\n\n\tuseEffect(() => {\n\t\tif (currentApp) {\n\t\t\tfilteredApps.forEach((targetApp) => {\n\t\t\t\tif (targetApp.name === props.appName) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tprops\n\t\t\t\t\t.isInboundInteropAuthorized(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t...currentApp,\n\t\t\t\t\t\t\tname: props.appName,\n\t\t\t\t\t\t\tmanifest: {\n\t\t\t\t\t\t\t\tinterop: {\n\t\t\t\t\t\t\t\t\tselectConnect: rules,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttargetApp\n\t\t\t\t\t)\n\t\t\t\t\t.then((inboundAuthorized: boolean) => {\n\t\t\t\t\t\tif (inboundAuthorized && !inboundAuthorizedApps.includes(targetApp.name)) {\n\t\t\t\t\t\t\tsetInboundAuthorizedApps([...inboundAuthorizedApps, targetApp.name]);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\tprops\n\t\t\t\t\t.isOutboundInteropAuthorized(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t...currentApp,\n\t\t\t\t\t\t\tname: props.appName,\n\t\t\t\t\t\t\tmanifest: {\n\t\t\t\t\t\t\t\tinterop: {\n\t\t\t\t\t\t\t\t\tselectConnect: rules,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttargetApp\n\t\t\t\t\t)\n\t\t\t\t\t.then((outboundAuthorized: boolean) => {\n\t\t\t\t\t\tif (outboundAuthorized && !outboundAuthorizedApps.includes(targetApp.name)) {\n\t\t\t\t\t\t\tsetOutboundAuthorizedApps([...outboundAuthorizedApps, targetApp.name]);\n\t\t\t\t\t\t} else if (!outboundAuthorized && outboundAuthorizedApps.includes(targetApp.name)) {\n\t\t\t\t\t\t\tconst outboundAuthorizedAppsCopy = outboundAuthorizedApps.slice(0);\n\t\t\t\t\t\t\toutboundAuthorizedAppsCopy.splice(outboundAuthorizedAppsCopy.indexOf(targetApp.name), 1);\n\t\t\t\t\t\t\tsetOutboundAuthorizedApps(outboundAuthorizedAppsCopy);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t});\n\t\t}\n\t});\n\n\treturn (\n\t\t<div className=\"app-edit-access\">\n\t\t\t<FinsembleSelect\n\t\t\t\toptions={filteredApps.map((app) => app.name)}\n\t\t\t\toptionComponents={getOptions()}\n\t\t\t\tselected={filteredApps.filter((app) => outboundAuthorizedApps.includes(app.name)).map((app) => app.name)}\n\t\t\t\tupdateCallback={(selected) => {\n\t\t\t\t\tlet newRules = [...rules];\n\n\t\t\t\t\tfilteredApps.forEach((app) => {\n\t\t\t\t\t\tconst isSelected = selected.find((name) => name === app.name);\n\n\t\t\t\t\t\tif (!isSelected) {\n\t\t\t\t\t\t\tnewRules = newRules.filter((rule) =>\n\t\t\t\t\t\t\t\trule.authorize?.some((auth: { name: string }) => auth.name !== app.name)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnewRules.push({\n\t\t\t\t\t\t\t\tauthorize: [{ name: app.name }],\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tdoSetRules(newRules);\n\t\t\t\t}}\n\t\t\t\tshowSearch={true}\n\t\t\t></FinsembleSelect>\n\t\t</div>\n\t);\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"AppEditPage.js","sourceRoot":"","sources":["../../../src/components/smartDesktopDesigner/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 { FileInput } from \"../common/FileInput\";\nimport { Button } from \"../common/Button\";\nimport { validateFilename, VALID_APP_EXTENSIONS } from \"../common/file_helpers\";\nimport { AppEditAccess } from \"./AppEditAccess\";\nimport { Tooltip } from \"../common/Tooltip\";\nimport { Accordion } from \"../common/Accordion\";\nimport { Checkbox } from \"../common/Checkbox\";\nimport * as Types from \"../../types/smartDesktopDesignerTypes\";\nimport { InputTable } from \"../common/InputTable\";\nimport DefaultDropdownButton from \"../shared/DefaultDropdownButton\";\nimport \"../common/css/application-edit-page.css\";\nimport { FinsembleIcon } from \"../common/FinsembleIcon\";\nimport { FinsembleSelect } from \"../common/FinsembleSelect\";\n\nconst DEFAULT_WINDOW_WIDTH = 1280;\nconst DEFAULT_WINDOW_HEIGHT = 600;\nconst MINIMUM_WINDOW_WIDTH = 0;\nconst MINIMUM_WINDOW_HEIGHT = 0;\n\nexport const defaultAppData = {\n\tname: \"\",\n\tabstractPosition: 0,\n\taddToWorkspace: true,\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\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\turl: \"\",\n\twidth: DEFAULT_WINDOW_WIDTH,\n} as Types.ApplicationSaveData;\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 FSBL.Clients.SmartDesktopClient.prototype.addApp;\n\tisInboundInteropAuthorized: typeof FSBL.Clients.SmartDesktopClient.isInboundInteropAuthorized;\n\tisOutboundInteropAuthorized: typeof FSBL.Clients.SmartDesktopClient.isOutboundInteropAuthorized;\n\tpreloadAliasList: string[];\n};\n\nconst openLink = (url: string) => {\n\tFSBL.Clients.LauncherClient.spawn(\n\t\t\"\",\n\t\t{\n\t\t\turl,\n\t\t\taddToWorkspace: false,\n\t\t},\n\t\t() => {}\n\t);\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}: // eslint-disable-next-line sonarjs/cognitive-complexity\nAppEditPageProps) => {\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 [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 [intents, setIntents] = useState(appData.intents);\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 [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\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 disableSubmit =\n\t\t(currentAppType === \"web\" && (!isWindowURLValid || windowURL.length === 0)) ||\n\t\t(currentAppType !== \"web\" &&\n\t\t\t(!nativePath || nativePath.length === 0 || validateFilename(VALID_APP_EXTENSIONS, nativePath))) ||\n\t\tdisplayName === undefined ||\n\t\tdisplayName === \"\" ||\n\t\t!isWidthValid ||\n\t\t!isHeightValid;\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,\n\t\t\tpersistPath,\n\t\t\tpersistURL,\n\t\t\taddToWorkspace,\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});\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 positionButtonOptions = [\n\t\t\"Default\",\n\t\t\"Top Left\",\n\t\t\"Center Top\",\n\t\t\"Top Right\",\n\t\t\"Center Left\",\n\t\t\"Center\",\n\t\t\"Center Right\",\n\t\t\"Bottom Left\",\n\t\t\"Center Bottom\",\n\t\t\"Bottom Right\",\n\t].map((optionLabel, key) => {\n\t\treturn {\n\t\t\toptionLabel,\n\t\t\tclickHandler: () => {\n\t\t\t\tsetAbstractPosition(key);\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>Application 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\">{currentAppType === \"web\" ? \"Web\" : \"Native\"}</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<tr>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<label htmlFor=\"app-icon-url\">Icon 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\tid=\"app-icon-url\"\n\t\t\t\t\t\t\t\t\tvalue={iconURL}\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\tsetIconURL(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 !== \"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>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<div className=\"app-type-container\">\n\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t\t\t\t\t\t\tname=\"api-access\"\n\t\t\t\t\t\t\t\t\t\t\t\tid=\"api-access-yes\"\n\t\t\t\t\t\t\t\t\t\t\t\tvalue=\"native\"\n\t\t\t\t\t\t\t\t\t\t\t\tchecked={currentAppType == \"native\"}\n\t\t\t\t\t\t\t\t\t\t\t\tonKeyDown={submitOnEnter}\n\t\t\t\t\t\t\t\t\t\t\t\tonChange={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetCurrentAppType(\"native\");\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\t<label htmlFor=\"api-access-yes\">Yes</label>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div className=\"app-type-container\">\n\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t\t\t\t\t\t\tname=\"api-access\"\n\t\t\t\t\t\t\t\t\t\t\t\tid=\"api-access-no\"\n\t\t\t\t\t\t\t\t\t\t\t\tvalue=\"assimilation\"\n\t\t\t\t\t\t\t\t\t\t\t\tchecked={currentAppType == \"assimilation\"}\n\t\t\t\t\t\t\t\t\t\t\t\tonKeyDown={submitOnEnter}\n\t\t\t\t\t\t\t\t\t\t\t\tonChange={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetCurrentAppType(\"assimilation\");\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\t<label htmlFor=\"api-access-no\">No</label>\n\t\t\t\t\t\t\t\t\t\t</div>\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\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></FileInput>\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<tr>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<label htmlFor=\"app-description\">Description</label>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<td className=\"description\">\n\t\t\t\t\t\t\t\t<textarea\n\t\t\t\t\t\t\t\t\tid=\"app-description\"\n\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\tsetComponentDescription(e.target.value);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tvalue={componentDescription}\n\t\t\t\t\t\t\t\t></textarea>\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</table>\n\t\t\t</div>\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<Accordion\n\t\t\t\t\t\tid=\"select-connect\"\n\t\t\t\t\t\tlabel=\"SelectConnect\"\n\t\t\t\t\t\tsummary={\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\tSpecify trust relationships.{\" \"}\n\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\thref=\"\"\n\t\t\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\topenLink(\"https://documentation.finsemble.com/tutorial-ControllingInformationFlow.html\");\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\tLearn more\n\t\t\t\t\t\t\t\t</a>\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\t<div className=\"app-edit-field\">\n\t\t\t\t\t\t\t<table role=\"presentation\" className=\"accordion-edit-block\">\n\t\t\t\t\t\t\t\t<tbody>\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<td rowSpan={2} className=\"label-col\">\n\t\t\t\t\t\t\t\t\t\t\tInterop trust rule\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t<td className=\"content-col\">\n\t\t\t\t\t\t\t\t\t\t\t<label>\n\t\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"interop-trust\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue=\"true\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={selectConnectTrustAll}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetSelectConnectTrustAll(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\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\tTrust all apps\n\t\t\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t\t\t\t<label>\n\t\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"interop-trust\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue=\"false\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={!selectConnectTrustAll}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetSelectConnectTrustAll(false);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\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\tTrust selected apps\n\t\t\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t{!selectConnectTrustAll && (\n\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t\t<AppEditAccess\n\t\t\t\t\t\t\t\t\t\t\t\t\tappName={displayName}\n\t\t\t\t\t\t\t\t\t\t\t\t\trules={appData.rules ?? []}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(newRules) => setRules(newRules)}\n\t\t\t\t\t\t\t\t\t\t\t\t\tisInboundInteropAuthorized={isInboundInteropAuthorized}\n\t\t\t\t\t\t\t\t\t\t\t\t\tisOutboundInteropAuthorized={isOutboundInteropAuthorized}\n\t\t\t\t\t\t\t\t\t\t\t\t\taddApp={addApp}\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</td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</tbody>\n\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</Accordion>\n\t\t\t\t\t<Accordion id=\"preloads\" label=\"Preloads\">\n\t\t\t\t\t\t<div className=\"app-edit-field\">\n\t\t\t\t\t\t\t<table role=\"presentation\" className=\"accordion-edit-block\">\n\t\t\t\t\t\t\t\t<tbody>\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t<FinsembleSelect\n\t\t\t\t\t\t\t\t\t\t\t\toptions={preloadAliasList}\n\t\t\t\t\t\t\t\t\t\t\t\tselected={appData.preloads}\n\t\t\t\t\t\t\t\t\t\t\t\tupdateCallback={(selectedValues: string[]) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetPreloads(selectedValues);\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</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t</tbody>\n\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</Accordion>\n\t\t\t\t\t<Accordion\n\t\t\t\t\t\tid=\"window\"\n\t\t\t\t\t\tlabel=\"Window position and dimensions\"\n\t\t\t\t\t\tsummary=\"Define the window properties when the app launches.\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className=\"app-edit-field\">\n\t\t\t\t\t\t\t<table role=\"presentation\" className=\"accordion-edit-block\">\n\t\t\t\t\t\t\t\t<tbody>\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<td className=\"label-col\">Dimensions</td>\n\t\t\t\t\t\t\t\t\t\t<td className=\"content-col\">\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"app-size-field\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label htmlFor=\"app-width\">Width</label>\n\t\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"app-size-input\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tid=\"app-width\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={windowWidth}\n\t\t\t\t\t\t\t\t\t\t\t\t\taria-invalid={!isWidthValid}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetWindowWidth(parseInt(e.target.value, 10) || \"\");\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\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\t<span className=\"unit\">px</span>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"app-size-field\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label htmlFor=\"app-height\">Height</label>\n\t\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"app-size-input\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tid=\"app-height\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={windowHeight}\n\t\t\t\t\t\t\t\t\t\t\t\t\taria-invalid={!isHeightValid}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetWindowHeight(parseInt(e.target.value, 10) || \"\");\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\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\t<span className=\"unit\">px</span>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t\t\t\t<td className=\"pull-left\">\n\t\t\t\t\t\t\t\t\t\t\t<Checkbox\n\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Lock dimensions\"\n\t\t\t\t\t\t\t\t\t\t\t\tchecked={!resizable}\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetResizable(!resizable);\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</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t{abstractPosition >= 0 && (\n\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t<td>Position</td>\n\t\t\t\t\t\t\t\t\t\t\t<td className=\"position-entry\">\n\t\t\t\t\t\t\t\t\t\t\t\t<DefaultDropdownButton\n\t\t\t\t\t\t\t\t\t\t\t\t\tallowEmpty={false}\n\t\t\t\t\t\t\t\t\t\t\t\t\tcaretLocation=\"right\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tdefaultSelection={positionButtonOptions[abstractPosition]}\n\t\t\t\t\t\t\t\t\t\t\t\t\tbuttonOptions={positionButtonOptions}\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</td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<td>Opacity</td>\n\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"range\"\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"app-edit-range\"\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={opacity}\n\t\t\t\t\t\t\t\t\t\t\t\tmin={0}\n\t\t\t\t\t\t\t\t\t\t\t\tstep={0.01}\n\t\t\t\t\t\t\t\t\t\t\t\tmax={1}\n\t\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetOpacity(Number(e.target.value));\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\t<input\n\t\t\t\t\t\t\t\t\t\t\t\tid=\"app-opacity\"\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={Math.floor(opacity * 100)}\n\t\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst num = +e.target.value;\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (isNaN(num)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (num < 0 || num > 100) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetOpacity(num / 100);\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\tstyle={{ maxWidth: \"30px\" }}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t</tbody>\n\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</Accordion>\n\t\t\t\t\t<Accordion\n\t\t\t\t\t\tid=\"window-behavior\"\n\t\t\t\t\t\tlabel=\"Window behavior\"\n\t\t\t\t\t\tsummary=\"Specify how this window will behave with respect to other windows in the workspace.\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className=\"app-edit-field\">\n\t\t\t\t\t\t\t<table role=\"presentation\" className=\"accordion-edit-block\">\n\t\t\t\t\t\t\t\t<tbody>\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<td className=\"label-col\" rowSpan={5}>\n\t\t\t\t\t\t\t\t\t\t\tEnable\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t<td className=\"content-col\">\n\t\t\t\t\t\t\t\t\t\t\t<Checkbox\n\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Auto arrange\"\n\t\t\t\t\t\t\t\t\t\t\t\tchecked={allowAutoArrange}\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetAllowAutoArrange(!allowAutoArrange);\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</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t<Checkbox\n\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Grouping\"\n\t\t\t\t\t\t\t\t\t\t\t\tchecked={allowGrouping}\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetAllowGrouping(!allowGrouping);\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</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t<Checkbox\n\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Snapping\"\n\t\t\t\t\t\t\t\t\t\t\t\tchecked={allowSnapping}\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetAllowSnapping(!allowSnapping);\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</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t<Checkbox\n\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Tabs\"\n\t\t\t\t\t\t\t\t\t\t\t\tchecked={allowTabbing}\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetAllowTabbing(!allowTabbing);\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</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t<Checkbox\n\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Tiling\"\n\t\t\t\t\t\t\t\t\t\t\t\tchecked={allowTiling}\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetAllowTiling(!allowTiling);\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</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<td style={{ width: \"120px\" }}>Title bar</td>\n\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t<Checkbox\n\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Show title bar\"\n\t\t\t\t\t\t\t\t\t\t\t\tchecked={enableTitleBar}\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetEnableTitleBar(!enableTitleBar);\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</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t<FinsembleIcon icon=\"alwaysOnTop\" /> Always on top\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t<label>\n\t\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"alwaysOnTop\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={aot && !enableAOT}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetAot(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetEnableAOT(false);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\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\tEnable\n\t\t\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t\t\t\t<label>\n\t\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"alwaysOnTop\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={!aot && enableAOT}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetAot(false);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetEnableAOT(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\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\tShow in titlebar\n\t\t\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t\t\t\t<label style={{ paddingLeft: \"13.53px\" }}>\n\t\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"alwaysOnTop\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={!aot && !enableAOT}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetAot(false);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetEnableAOT(false);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\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\tDisable\n\t\t\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t<FinsembleIcon icon=\"minimize\" /> Minimize\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t<label>\n\t\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"minimize\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={allowMinimize && !hideMinimize}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetAllowMinimize(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetHideMinimize(false);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\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\tEnable\n\t\t\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t\t\t\t<label>\n\t\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"minimize\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={allowMinimize && hideMinimize}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetAllowMinimize(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetHideMinimize(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\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\tHide from titlebar\n\t\t\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t\t\t\t<label>\n\t\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"minimize\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={!allowMinimize}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetAllowMinimize(false);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetHideMinimize(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\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\tDisable\n\t\t\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t<FinsembleIcon icon=\"maximize\" /> Maximize\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t<label>\n\t\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"maximize\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={allowMaximize && !hideMaximize}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetAllowMaximize(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetHideMaximize(false);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\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\tEnable\n\t\t\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t\t\t\t<label>\n\t\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"maximize\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={allowMaximize && hideMaximize}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetAllowMaximize(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetHideMaximize(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\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\tHide from titlebar\n\t\t\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t\t\t\t<label>\n\t\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"maximize\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={!allowMaximize}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetAllowMaximize(false);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetHideMaximize(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\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\tDisable\n\t\t\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t<FinsembleIcon icon=\"close\" /> Close\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t<label>\n\t\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"close\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={!hideClose}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetHideClose(false);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\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\tEnable\n\t\t\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t\t\t\t<label>\n\t\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"close\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={hideClose}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetHideClose(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\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\tHide from titlebar\n\t\t\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t</tbody>\n\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</Accordion>\n\t\t\t\t\t<Accordion id=\"interop\" label=\"Interop\" summary=\"Define how to link an app to communication channels.\">\n\t\t\t\t\t\t<div className=\"app-edit-field\">\n\t\t\t\t\t\t\t<table role=\"presentation\" className=\"accordion-edit-block\">\n\t\t\t\t\t\t\t\t<tbody>\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<td className=\"label-col\">\n\t\t\t\t\t\t\t\t\t\t\t<label htmlFor=\"interop-connection\">\n\t\t\t\t\t\t\t\t\t\t\t\t<FinsembleIcon icon=\"linker\" /> Display linker\n\t\t\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t<td className=\"content-col\">\n\t\t\t\t\t\t\t\t\t\t\t<fieldset className=\"interop-connection-fieldset\">\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"app-size-field\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"app-size-input\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"linker\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tid=\"interop-connection-auto\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue=\"auto\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={autoConnect}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetAutoConnect(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<label htmlFor=\"interop-connection-auto\">Always</label>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"app-size-field\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"app-size-input\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"linker\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tid=\"interop-connection-fdc3\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue=\"fdc3\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={!autoConnect}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetAutoConnect(false);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<label htmlFor=\"interop-connection-fdc3\">On FDC3 API use</label>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t</fieldset>\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t<Tooltip type=\"info\">\n\t\t\t\t\t\t\t\t\t\t\t\tShow the linker menu if you want the user to manually add your app to a channel.\n\t\t\t\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t</tbody>\n\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<InputTable\n\t\t\t\t\t\t\ttableHeaders={[\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\tName\n\t\t\t\t\t\t\t\t\t<Tooltip>The name of the intent to listen for.</Tooltip>\n\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\tDisplay name\n\t\t\t\t\t\t\t\t\t<Tooltip>The name that appears in the resolver.</Tooltip>\n\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\tContexts\n\t\t\t\t\t\t\t\t\t<Tooltip>The FDC3 context to listen for.</Tooltip>\n\t\t\t\t\t\t\t\t</>,\n\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\tstartingData={appData.intents?.map((intent) => [\n\t\t\t\t\t\t\t\tintent.name,\n\t\t\t\t\t\t\t\tintent.displayName,\n\t\t\t\t\t\t\t\tintent.contexts?.join(\", \"),\n\t\t\t\t\t\t\t])}\n\t\t\t\t\t\t\tonUpdate={(data: string[][]) => {\n\t\t\t\t\t\t\t\tconst newIntents = data\n\t\t\t\t\t\t\t\t\t.filter((row) => row.join(\"\").length > 0)\n\t\t\t\t\t\t\t\t\t.map((row) => {\n\t\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\t\tname: row[0].trim(),\n\t\t\t\t\t\t\t\t\t\t\tdisplayName: row[1].trim(),\n\t\t\t\t\t\t\t\t\t\t\tcontexts: row[2].split(\",\").map((str) => str.trim()),\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\tsetIntents(newIntents);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Accordion>\n\t\t\t\t\t<Accordion\n\t\t\t\t\t\tid=\"component\"\n\t\t\t\t\t\tlabel=\"Component behavior\"\n\t\t\t\t\t\tsummary=\"Specify additional properties for the component.\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className=\"app-edit-field\">\n\t\t\t\t\t\t\t<table role=\"presentation\" className=\"accordion-edit-block\">\n\t\t\t\t\t\t\t\t<tbody>\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<td className=\"label-col\">Set security</td>\n\t\t\t\t\t\t\t\t\t\t<td className=\"content-col\">\n\t\t\t\t\t\t\t\t\t\t\t<label>\n\t\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"security\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue=\"trusted\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={security === \"trusted\"}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetSecurity(\"trusted\");\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\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\tTrusted\n\t\t\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t\t\t\t<label>\n\t\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"security\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue=\"untrusted\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={security === \"untrusted\"}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetSecurity(\"untrusted\");\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\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\tUntrusted\n\t\t\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\n\t\t\t\t\t\t\t\t\t{currentAppType === \"native\" && (\n\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t<td>Launch timeout</td>\n\t\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tid=\"launch-timeout\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={native_windowSpawnTimeout}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst num = +e.target.value;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (isNaN(num) || num <= 0) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetNative_windowSpawnTimeout(num);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\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</td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<td rowSpan={5}>Options</td>\n\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t<Checkbox\n\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Only one instance\"\n\t\t\t\t\t\t\t\t\t\t\t\tchecked={singleton}\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetSingleton(!singleton);\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</td>\n\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t<Tooltip type=\"info\">Don’t allow more than one instance of this component.</Tooltip>\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t<Checkbox\n\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Launch at startup\"\n\t\t\t\t\t\t\t\t\t\t\t\tchecked={spawnOnStartup}\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetSpawnOnStartup(!spawnOnStartup);\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</td>\n\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t<Tooltip type=\"info\">\n\t\t\t\t\t\t\t\t\t\t\t\tThe component will automatically get launched when the Finsemble smart desktop starts.\n\t\t\t\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t<Checkbox\n\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Include in Apps menu\"\n\t\t\t\t\t\t\t\t\t\t\t\tchecked={launchableByUser}\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetLaunchableByUser(!launchableByUser);\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</td>\n\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t<Tooltip type=\"info\">Add the component to the Apps menu on the Finsemble toolbar.</Tooltip>\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t<Checkbox\n\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Persist across workspaces\"\n\t\t\t\t\t\t\t\t\t\t\t\tchecked={isEvergreen}\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsEvergreen(!isEvergreen);\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</td>\n\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t<Tooltip type=\"info\">\n\t\t\t\t\t\t\t\t\t\t\t\tDon’t shut down this app when you leave the workspace. Useful for apps that take a long time to\n\t\t\t\t\t\t\t\t\t\t\t\tload.\n\t\t\t\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t</tbody>\n\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</Accordion>\n\t\t\t\t\t<Accordion id=\"workspace\" label=\"Workspace\" summary=\"Define how the app relates to the workspace.\">\n\t\t\t\t\t\t<div className=\"app-edit-field\">\n\t\t\t\t\t\t\t<table role=\"presentation\" className=\"accordion-edit-block\">\n\t\t\t\t\t\t\t\t<tbody>\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<td className=\"label-col\" rowSpan={2}>\n\t\t\t\t\t\t\t\t\t\t\tOptions\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t<td className=\"content-col\">\n\t\t\t\t\t\t\t\t\t\t\t<Checkbox\n\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Add to workspace\"\n\t\t\t\t\t\t\t\t\t\t\t\tchecked={addToWorkspace}\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetAddToWorkspace(!addToWorkspace);\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</td>\n\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t<Tooltip type=\"info\">\n\t\t\t\t\t\t\t\t\t\t\t\tApps are not added to the workspace unless they were opened from the Launcher menu or the\n\t\t\t\t\t\t\t\t\t\t\t\tresolver. Specify whether you want this app added to the workspace if it’s launched in any other\n\t\t\t\t\t\t\t\t\t\t\t\tway, such as by a user or another app.\n\t\t\t\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t{currentAppType === \"web\" ? (\n\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t<td id=\"persist-url\">\n\t\t\t\t\t\t\t\t\t\t\t\t<Checkbox\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Persist the location\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={persistURL}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetPersistURL(!persistURL);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\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</td>\n\t\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t\t<Tooltip type=\"info\">\n\t\t\t\t\t\t\t\t\t\t\t\t\tNormally, the app will be launched from its default URL. If a user navigated elsewhere, you\n\t\t\t\t\t\t\t\t\t\t\t\t\tcan specify that you want to preserve that new URL instead.\n\t\t\t\t\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t<td id=\"persist-path\">\n\t\t\t\t\t\t\t\t\t\t\t\t<Checkbox\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Persist the location\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={persistPath}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetPersistPath(!persistPath);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\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</td>\n\t\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t\t<Tooltip type=\"info\">\n\t\t\t\t\t\t\t\t\t\t\t\t\tNormally, the app will be launched from its default path. If a user changed that path, you can\n\t\t\t\t\t\t\t\t\t\t\t\t\tspecify that you want to launch the app from that new location.\n\t\t\t\t\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</tbody>\n\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</Accordion>\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 +0,0 @@
1
- {"version":3,"file":"Appearance.helpers.js","sourceRoot":"","sources":["../../../src/components/smartDesktopDesigner/Appearance.helpers.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC","sourcesContent":["export const clone = (obj: object) => JSON.parse(JSON.stringify(obj));\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Appearance.js","sourceRoot":"","sources":["../../../src/components/smartDesktopDesigner/Appearance.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useState, useRef, useLayoutEffect } from \"react\";\nimport { Button } from \"../common/Button\";\nimport { Header } from \"../common/Header\";\nimport \"./Appearance.css\";\nimport { AssetsPage } from \"./AssetsPage\";\nimport { ThemePage, ThemeBundle } from \"./ThemePage\";\nimport { clone } from \"./Appearance.helpers\";\nimport { FileInputUploadCb } from \"../common/FileInput\";\nimport { View } from \"./View\";\nimport { Content } from \"./Content\";\nimport { Tab } from \"../common/Tab\";\nimport { launchTutorialLink } from \"./common/fsbl_functions\";\n\nexport type AppearanceProps = {\n\tstartTheme: ThemeBundle;\n\tdarkTheme: ThemeBundle;\n\tlightTheme: ThemeBundle;\n\tupdateThemes: (id: string, newValue: string) => void;\n\tareYouSure: (affirmativeCallback: () => void) => void;\n\tbaseURL: string;\n\ttoolbarIcon: string;\n\ttaskbarIcon: string;\n\tinstallerIcon: string;\n\tsystemTrayIcon: string;\n\tsplashScreenImage: string;\n\tsetToolbarIcon: (s: string) => void;\n\tsetTaskbarIcon: (s: string) => void;\n\tsetInstallerIcon: (s: string) => void;\n\tsetSystemTrayIcon: (s: string) => void;\n\tsetSplashScreenImage: (s: string) => void;\n\tsetIconsChanged: (n: number) => void;\n\tupdateSplashScreen: FileInputUploadCb;\n\tupdateToolbarIcon: FileInputUploadCb;\n\tupdateTaskbarIcon: FileInputUploadCb;\n\tupdateSystemTrayIcon: FileInputUploadCb;\n\tupdateInstallerIcon: FileInputUploadCb;\n};\n\nexport const Appearance = ({\n\tstartTheme,\n\tdarkTheme,\n\tlightTheme,\n\tupdateThemes,\n\tareYouSure,\n\tbaseURL,\n\ttoolbarIcon,\n\ttaskbarIcon,\n\tinstallerIcon,\n\tsystemTrayIcon,\n\tsplashScreenImage,\n\tsetToolbarIcon,\n\tsetTaskbarIcon,\n\tsetInstallerIcon,\n\tsetSystemTrayIcon,\n\tsetSplashScreenImage,\n\tsetIconsChanged,\n\tupdateSplashScreen,\n\tupdateToolbarIcon,\n\tupdateTaskbarIcon,\n\tupdateSystemTrayIcon,\n\tupdateInstallerIcon,\n}: AppearanceProps) => {\n\tconst [theme, setTheme] = useState(startTheme);\n\tconst ref = useRef<HTMLDivElement>(null);\n\n\tconst applyDarkTheme = () => {\n\t\tareYouSure(() => setTheme(clone(darkTheme)));\n\t};\n\tconst applyLightTheme = () => {\n\t\tareYouSure(() => setTheme(clone(lightTheme)));\n\t};\n\n\tuseLayoutEffect(() => {\n\t\t// Allow for the tab panel content to look nice with its own scrollbar,\n\t\t// which also keeps the heading/tab group at the top of the page.\n\t\t// It feels like css flex should do this, but I could never get it to work.\n\t\tif (ref.current !== null) {\n\t\t\tref.current.style.height = `${window.innerHeight - (ref.current.getBoundingClientRect()?.top || 0) - 10}px`;\n\t\t}\n\t});\n\n\treturn (\n\t\t<View>\n\t\t\t<Header\n\t\t\t\thelpFunction={() => {\n\t\t\t\t\tlaunchTutorialLink(\"SDD-03-Theme\");\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\tTheme\n\t\t\t</Header>\n\n\t\t\t<Content>\n\t\t\t\t<Tab>\n\t\t\t\t\t<div data-label=\"Themes\">\n\t\t\t\t\t\t<div className=\"frontmatter\">\n\t\t\t\t\t\t\tUse a template to set or reset your theme.\n\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\tUse either template to start building your own theme.\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div className=\"template-row\">\n\t\t\t\t\t\t\t<label>Templates:</label>\n\t\t\t\t\t\t\t<Button fashion=\"primary\" iconBefore=\"moon\" text=\"Dark theme\" onClick={applyDarkTheme} />\n\t\t\t\t\t\t\t<Button fashion=\"primary\" iconBefore=\"sun\" text=\"Light theme\" onClick={applyLightTheme} />\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<ThemePage\n\t\t\t\t\t\t\ttheme={theme}\n\t\t\t\t\t\t\tupdateThemes={(id: string, newValue: string) => {\n\t\t\t\t\t\t\t\tsetTheme({\n\t\t\t\t\t\t\t\t\t...theme,\n\t\t\t\t\t\t\t\t\t[id]: newValue,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tupdateThemes(id, newValue);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div data-label=\"Images\">\n\t\t\t\t\t\t<div className=\"frontmatter\">\n\t\t\t\t\t\t\tBrowse your computer for images to use in Finsemble.\n\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\tYou can also drag and drop images into the fields below.\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<AssetsPage\n\t\t\t\t\t\t\tbaseURL={baseURL}\n\t\t\t\t\t\t\ttoolbarIcon={toolbarIcon}\n\t\t\t\t\t\t\ttaskbarIcon={taskbarIcon}\n\t\t\t\t\t\t\tinstallerIcon={installerIcon}\n\t\t\t\t\t\t\tsystemTrayIcon={systemTrayIcon}\n\t\t\t\t\t\t\tsplashScreenImage={splashScreenImage}\n\t\t\t\t\t\t\tsetToolbarIcon={setToolbarIcon}\n\t\t\t\t\t\t\tsetTaskbarIcon={setTaskbarIcon}\n\t\t\t\t\t\t\tsetInstallerIcon={setInstallerIcon}\n\t\t\t\t\t\t\tsetSystemTrayIcon={setSystemTrayIcon}\n\t\t\t\t\t\t\tsetSplashScreenImage={setSplashScreenImage}\n\t\t\t\t\t\t\tsetIconsChanged={setIconsChanged}\n\t\t\t\t\t\t\tupdateSplashScreen={updateSplashScreen}\n\t\t\t\t\t\t\tupdateToolbarIcon={updateToolbarIcon}\n\t\t\t\t\t\t\tupdateTaskbarIcon={updateTaskbarIcon}\n\t\t\t\t\t\t\tupdateSystemTrayIcon={updateSystemTrayIcon}\n\t\t\t\t\t\t\tupdateInstallerIcon={updateInstallerIcon}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</Tab>\n\t\t\t</Content>\n\t\t</View>\n\t);\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Application.js","sourceRoot":"","sources":["../../../src/components/smartDesktopDesigner/Application.tsx"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright 2017 - 2020 by ChartIQ, Inc.\n * All rights reserved.\n */\n\nimport React from \"react\";\nimport { useSelector, useDispatch } from \"../../store\";\nimport { CircularLoadingSpinner } from \"../common/LoadingSpinner\";\nimport { SmartDesktopDesignerActions } from \"../../actions/smartDesktopDesignerActions\";\nimport { RootState } from \"../../reducers/rootReducer\";\nimport * as Types from \"../../types/smartDesktopDesignerTypes\";\nimport { services } from \"@finsemble/finsemble-api\";\nimport { View } from \"./View\";\nimport { Header } from \"../common/Header\";\nimport { Content } from \"./Content\";\nimport { AppEditPage } from \"./AppEditPage\";\nimport { generateDefaultConfig } from \"./sdd_helpers\";\nimport { launchTutorialLink } from \"./common/fsbl_functions\";\nimport { AppEditPageProps } from \"./AppEditPage\";\nimport { PositionTypes } from \"@finsemble/finsemble-api/types/services/window/types\";\nimport { PreloadType } from \"../../types/smartDesktopDesignerTypes\";\n\nexport type AppDefinition = services.Interop.types.AppDefinition;\n// Get the type of the window object within an AppD manifest. Use Required<> to resolve the ?:\nexport type ManifestWindow = Required<AppDefinition>[\"manifest\"][\"window\"];\n\nconst abstractPositionLookup = [\n\t// `${top}-${left}-${bottom}-${right}`\n\t\"\",\n\t\"0-0-undefined-undefined\",\n\t\"0-center-undefined-undefined\",\n\t\"0-undefined-undefined-0\",\n\t\"center-0-undefined-undefined\",\n\t\"center-center-undefined-undefined\",\n\t\"center-undefined-undefined-0\",\n\t\"undefined-0-0-undefined\",\n\t\"undefined-center-0-undefined\",\n\t\"undefined-undefined-0-0\",\n];\n\nexport const genAbstractPositionFromAppConfig = (appConfig: AppDefinition): number => {\n\tconst position = appConfig.manifest?.window?.position;\n\tconst left = appConfig.manifest?.window?.left;\n\tconst right = appConfig.manifest?.window?.right;\n\tconst top = appConfig.manifest?.window?.top;\n\tconst bottom = appConfig.manifest?.window?.bottom;\n\n\t// No position is defined\n\tif (position === undefined) {\n\t\treturn 0;\n\t}\n\n\treturn abstractPositionLookup.indexOf(`${top}-${left}-${bottom}-${right}`);\n};\nexport const genWindowParamsFromAbstractPosition = (abstractPosition: number): ManifestWindow => {\n\tif (abstractPosition <= 0) {\n\t\treturn {};\n\t}\n\tconst [top, left, bottom, right] = abstractPositionLookup[abstractPosition].split(\"-\");\n\tconst params = {\n\t\tposition: \"monitor\" as PositionTypes,\n\t\ttop,\n\t\tleft,\n\t\tbottom,\n\t\tright,\n\t};\n\n\tfor (let key in params) {\n\t\tif (params[key as keyof typeof params] === \"undefined\") {\n\t\t\tdelete params[key as keyof typeof params];\n\t\t}\n\t}\n\n\treturn params;\n};\n\n/* eslint-disable sonarjs/cognitive-complexity */\nexport function appConfigToAppData(appConfig: AppDefinition): Types.ApplicationSaveData {\n\treturn {\n\t\tname: appConfig.name || appConfig.manifest?.component?.displayName,\n\t\tdescription: appConfig.description || \"\",\n\t\turl: appConfig.manifest?.window?.url,\n\t\tpath: appConfig.manifest?.window?.path,\n\t\tappArguments: appConfig.manifest?.window?.arguments,\n\t\tappType: appConfig.manifest?.window?.windowType,\n\t\twidth: appConfig.manifest?.window?.width,\n\t\theight: appConfig.manifest?.window?.height,\n\t\ticonURL: appConfig.manifest?.foreign?.components?.Toolbar?.iconURL,\n\t\trules: appConfig.manifest?.interop?.selectConnect,\n\t\tintents: appConfig.intents ?? [],\n\t\tpersistPath: appConfig.manifest?.foreign?.services?.workspace?.persistPath ?? false,\n\t\tpersistURL: appConfig.manifest?.foreign?.services?.workspace?.persistURL ?? false,\n\t\taddToWorkspace: appConfig.manifest?.window?.addToWorkspace ?? true,\n\t\tallowAutoArrange: appConfig.manifest?.foreign?.services?.windowService?.allowAutoArrange ?? true,\n\t\tallowGrouping: appConfig.manifest?.foreign?.services?.windowService?.allowGrouping ?? true,\n\t\tallowMaximize: appConfig.manifest?.foreign?.services?.windowService?.allowMaximize ?? true,\n\t\tallowMinimize: appConfig.manifest?.foreign?.services?.windowService?.allowMinimize ?? true,\n\t\tallowSnapping: appConfig.manifest?.foreign?.services?.windowService?.allowSnapping ?? true,\n\t\tallowTabbing: appConfig.manifest?.foreign?.services?.windowService?.allowTabbing ?? true,\n\t\tallowTiling: appConfig.manifest?.foreign?.services?.windowService?.allowTiling ?? true,\n\t\tenableAOT: appConfig.manifest?.foreign?.components?.[\"Window Manager\"]?.alwaysOnTopIcon ?? false,\n\t\tenableTitleBar: appConfig.manifest?.foreign?.components?.[\"Window Manager\"]?.FSBLHeader !== false,\n\t\thideClose: appConfig.manifest?.foreign?.components?.[\"Window Manager\"]?.FSBLHeader?.hideClose ?? false,\n\t\thideMaximize: appConfig.manifest?.foreign?.components?.[\"Window Manager\"]?.FSBLHeader?.hideMaximize ?? false,\n\t\thideMinimize: appConfig.manifest?.foreign?.components?.[\"Window Manager\"]?.FSBLHeader?.hideMinimize ?? false,\n\t\tautoConnect: appConfig.manifest?.interop?.autoConnect ?? true,\n\t\tabstractPosition: genAbstractPositionFromAppConfig(appConfig),\n\t\talwaysOnTop: appConfig.manifest?.window?.options?.alwaysOnTop ?? false,\n\t\topacity: appConfig.manifest?.window?.options?.opacity ?? 1,\n\t\tresizable: appConfig.manifest?.window?.options?.resizable ?? true,\n\t\tsingleton: appConfig.manifest?.component?.singleton ?? false,\n\t\tspawnOnStartup: appConfig.manifest?.component?.spawnOnStartup ?? false,\n\t\tlaunchableByUser: appConfig.manifest?.foreign?.components?.[\"App Launcher\"]?.launchableByUser ?? true,\n\t\tsecurity: appConfig.manifest?.window?.options?.securityPolicy ?? \"trusted\",\n\t\tisEvergreen: appConfig.manifest?.window?.options?.isEvergreen ?? false,\n\t\tnative_windowSpawnTimeout: appConfig.manifest?.window?.options?.windowSpawnTimeout ?? 30,\n\t\tpreloads: appConfig.manifest?.component?.preload ?? [],\n\t};\n}\n\nexport function appDataToAppConfig(\n\tcurrentAppConfig: AppDefinition,\n\tdata: Types.ApplicationSaveData,\n\tappId: string\n): AppDefinition {\n\tlet windowParams: ManifestWindow = currentAppConfig.manifest\n\t\t? {\n\t\t\t\t...currentAppConfig.manifest.window,\n\t\t\t\toptions: {\n\t\t\t\t\t...currentAppConfig.manifest.window?.options,\n\t\t\t\t\tsecurityPolicy: data.security,\n\t\t\t\t\tisEvergreen: data.isEvergreen,\n\t\t\t\t\twindowSpawnTimeout: data.native_windowSpawnTimeout,\n\t\t\t\t},\n\t\t }\n\t\t: {};\n\n\tif (data.appType != \"web\") {\n\t\twindowParams.windowType = data.appType == \"native\" ? data.appType : \"assimilation\";\n\t\twindowParams.path = data.path;\n\t\twindowParams.arguments = data.appArguments?.trim();\n\t\tdelete windowParams.url;\n\t} else {\n\t\tdelete windowParams.windowType;\n\t\tdelete windowParams.path;\n\t\tdelete windowParams.arguments;\n\t\twindowParams.url = data.url;\n\t}\n\n\twindowParams.width = data.width;\n\twindowParams.height = data.height;\n\twindowParams.addToWorkspace = data.addToWorkspace;\n\n\tdelete windowParams.position;\n\tdelete windowParams.left;\n\tdelete windowParams.right;\n\tdelete windowParams.top;\n\tdelete windowParams.bottom;\n\n\tlet appConfig: AppDefinition = {\n\t\t...currentAppConfig,\n\t\tappId,\n\t\tname: data.name,\n\t\tdescription: data.description,\n\t\tmanifest: {\n\t\t\t...currentAppConfig.manifest,\n\t\t\twindow: {\n\t\t\t\t...windowParams,\n\t\t\t\t...genWindowParamsFromAbstractPosition(data.abstractPosition),\n\t\t\t\toptions: {\n\t\t\t\t\t...windowParams?.options,\n\t\t\t\t\talwaysOnTop: data.alwaysOnTop,\n\t\t\t\t\topacity: data.opacity,\n\t\t\t\t\tresizable: data.resizable,\n\t\t\t\t},\n\t\t\t},\n\t\t\tcomponent: {\n\t\t\t\t...currentAppConfig.manifest?.component,\n\t\t\t\tsingleton: data.singleton,\n\t\t\t\tspawnOnStartup: data.spawnOnStartup,\n\t\t\t\tpreload: data.preloads,\n\t\t\t},\n\t\t\tinterop: {\n\t\t\t\t...currentAppConfig.manifest?.interop,\n\t\t\t\tselectConnect: data.rules,\n\t\t\t\tautoConnect: data.autoConnect,\n\t\t\t},\n\t\t\tforeign: {\n\t\t\t\t...currentAppConfig.manifest?.foreign,\n\t\t\t\tcomponents: {\n\t\t\t\t\t...currentAppConfig?.manifest?.foreign?.components,\n\t\t\t\t\t\"App Launcher\": {\n\t\t\t\t\t\t...currentAppConfig?.manifest?.foreign?.components?.[\"App Launcher\"],\n\t\t\t\t\t\tlaunchableByUser: data.launchableByUser,\n\t\t\t\t\t},\n\t\t\t\t\tToolbar: {\n\t\t\t\t\t\t...currentAppConfig?.manifest?.foreign?.components?.Toolbar,\n\t\t\t\t\t\ticonURL: data.iconURL,\n\t\t\t\t\t},\n\t\t\t\t\t\"Window Manager\": {\n\t\t\t\t\t\t...currentAppConfig?.manifest?.foreign?.components?.[\"Window Manager\"],\n\t\t\t\t\t\talwaysOnTopIcon: data.enableAOT || !data.alwaysOnTop,\n\t\t\t\t\t\tFSBLHeader: data.enableTitleBar\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\thideClose: data.hideClose,\n\t\t\t\t\t\t\t\t\thideMaximize: data.hideMaximize || !data.allowMaximize,\n\t\t\t\t\t\t\t\t\thideMinimize: data.hideMinimize || !data.allowMinimize,\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t: false,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tservices: {\n\t\t\t\t\t...currentAppConfig.manifest?.foreign?.services,\n\t\t\t\t\tworkspace: {\n\t\t\t\t\t\t...currentAppConfig.manifest?.foreign?.services?.workspace,\n\t\t\t\t\t\tpersistPath: data.persistPath,\n\t\t\t\t\t\tpersistURL: data.persistURL,\n\t\t\t\t\t},\n\t\t\t\t\twindowService: {\n\t\t\t\t\t\t...currentAppConfig.manifest?.foreign?.services?.windowService,\n\t\t\t\t\t\tallowAutoArrange: data.allowAutoArrange,\n\t\t\t\t\t\tallowGrouping: data.allowGrouping,\n\t\t\t\t\t\tallowMinimize: data.allowMinimize,\n\t\t\t\t\t\tallowMaximize: data.allowMaximize,\n\t\t\t\t\t\tallowSnapping: data.allowSnapping,\n\t\t\t\t\t\tallowTabbing: data.allowTabbing,\n\t\t\t\t\t\tallowTiling: data.allowTiling,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tintents: data.intents,\n\t};\n\n\tdelete appConfig.manifest?.temporary;\n\tif (data.iconURL === \"\") {\n\t\tdelete appConfig.manifest?.foreign?.components.Toolbar.iconURL;\n\t}\n\treturn appConfig;\n}\n\nexport enum ApplicationCloseReason {\n\tSUCCESS,\n\tCANCEL,\n\tNEW,\n}\n\nexport type ApplicationProps = {\n\tid: string;\n\tapps: AppDefinition[];\n\taddApp: (appId: string, config: AppDefinition) => Promise<{ err: null }>;\n\tupdateApp: (appId: string, config: AppDefinition) => Promise<{ err: null }>;\n\tdeleteApp: typeof FSBL.Clients.SmartDesktopClient.prototype.deleteApp;\n\tgetAppConfigTemplate: typeof FSBL.Clients.SmartDesktopClient.prototype.getAppConfigTemplate;\n\tonClose: (reason: ApplicationCloseReason) => void;\n\tsetCurrentAppID: (id: string | null) => void;\n\tisInboundInteropAuthorized: typeof FSBL.Clients.SmartDesktopClient.isInboundInteropAuthorized;\n\tisOutboundInteropAuthorized: typeof FSBL.Clients.SmartDesktopClient.isOutboundInteropAuthorized;\n\tpreloads: PreloadType[];\n};\n\nconst validateURL = (url: string) => FSBL.Clients.SmartDesktopClient.checkValidURL(url);\n\nconst helpFunction = () => {\n\tlaunchTutorialLink(\"SDD-02-ManageApps\");\n};\n\nexport const Application = (props: ApplicationProps) => {\n\tconst dispatch = useDispatch();\n\n\tconst currentAppID = props.id;\n\n\tconst currentAppConfig = useSelector((state: RootState) =>\n\t\tstate.smartDesktopDesigner.apps.find((app: AppDefinition) => app.appId === currentAppID)\n\t);\n\n\tif (!currentAppConfig) {\n\t\tprops.getAppConfigTemplate().then((response: any) => {\n\t\t\tprops.deleteApp(currentAppID).then(() => {\n\t\t\t\tconst config: AppDefinition = {\n\t\t\t\t\t...response.config,\n\t\t\t\t\tappId: currentAppID,\n\t\t\t\t\tmanifest: {\n\t\t\t\t\t\t...response.config.manifest,\n\t\t\t\t\t\t// Apps that are flagged temporary will be removed if the user cancels out of adding an app\n\t\t\t\t\t\ttemporary: true,\n\t\t\t\t\t},\n\t\t\t\t};\n\n\t\t\t\tprops.addApp(currentAppID, config).then(() => {\n\t\t\t\t\tdispatch(SmartDesktopDesignerActions.update_app(config));\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<div style={{ overflow: \"hidden\" }}>\n\t\t\t\t\t<div style={{ marginTop: \"43vh\" }}>\n\t\t\t\t\t\t<CircularLoadingSpinner />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</>\n\t\t);\n\t}\n\n\tconst onSaveData = (data: Types.ApplicationSaveData) =>\n\t\tnew Promise<any>((resolve, reject) => {\n\t\t\tif (!currentAppID) {\n\t\t\t\treturn reject(new Error(\"no app ID specified\"));\n\t\t\t}\n\n\t\t\tconst appConfig = appDataToAppConfig(currentAppConfig, data, currentAppID);\n\t\t\tprops.updateApp(currentAppID, appConfig).then(({ err }) => {\n\t\t\t\tconsole.log(err);\n\t\t\t\tif (err === null) {\n\t\t\t\t\tprops.onClose(ApplicationCloseReason.SUCCESS);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\tconst setCurrentComponentID = (id: string | null) => {\n\t\tif (id === \"new\") {\n\t\t\tprops.onClose(ApplicationCloseReason.NEW);\n\t\t} else {\n\t\t\tprops.onClose(ApplicationCloseReason.SUCCESS);\n\t\t}\n\t};\n\n\tconst removeApplicationFn = () => {\n\t\tprops.deleteApp(currentAppID);\n\t\tsetCurrentComponentID(\"\");\n\t};\n\n\tconst appData = appConfigToAppData(currentAppConfig) as Types.ApplicationSaveData;\n\tconst { displayName, windowURL, nativePath, currentAppType } = generateDefaultConfig(appData);\n\n\tconst appEditPageProps: AppEditPageProps = {\n\t\tstartingDisplayName: displayName,\n\t\tstartingAppType: currentAppType,\n\t\tstartingWindowURL: windowURL,\n\t\tstartingNativePath: nativePath,\n\t\tappData,\n\t\tvalidateURL,\n\t\tremoveApplicationFn,\n\t\tcancelFn: () => {\n\t\t\tsetCurrentComponentID(null);\n\t\t},\n\t\tsubmitFn: (data: Types.ApplicationSaveData) => {\n\t\t\tonSaveData?.({\n\t\t\t\t...data,\n\t\t\t\ttags: appData.tags,\n\t\t\t});\n\t\t},\n\t\taddApp: props.addApp,\n\t\tisInboundInteropAuthorized: props.isInboundInteropAuthorized,\n\t\tisOutboundInteropAuthorized: props.isOutboundInteropAuthorized,\n\t\tpreloadAliasList: props.preloads.map((preload) => preload.alias),\n\t};\n\n\treturn (\n\t\t<div className=\"app-edit\">\n\t\t\t<View>\n\t\t\t\t<div>\n\t\t\t\t\t<form onSubmit={(e) => e.preventDefault()}>\n\t\t\t\t\t\t<fieldset className=\"app-edit-fieldset\">\n\t\t\t\t\t\t\t<legend>\n\t\t\t\t\t\t\t\t<Header helpFunction={helpFunction}>Edit app</Header>\n\t\t\t\t\t\t\t</legend>\n\n\t\t\t\t\t\t\t<Content>\n\t\t\t\t\t\t\t\t<AppEditPage {...appEditPageProps} />\n\t\t\t\t\t\t\t</Content>\n\t\t\t\t\t\t</fieldset>\n\t\t\t\t\t</form>\n\t\t\t\t</div>\n\t\t\t</View>\n\t\t</div>\n\t);\n};\n"]}