@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.
- package/index.d.ts +1 -0
- package/package.json +18 -15
- package/react/actions/smartDesktopDesignerActions.d.ts +3 -3
- package/react/actions/smartDesktopDesignerActions.js.map +1 -1
- package/react/assets/css/finsemble.css +0 -1
- package/react/assets/css/toolbar.css +0 -4
- package/react/assets/css/userPreferences.css +39 -4
- package/react/componentTemplateGenerator.js +1 -1
- package/react/componentTemplateGenerator.js.map +1 -1
- package/react/components/appCatalog/AppCatalogComponent.d.ts +1 -1
- package/react/components/appCatalog/components/Showcase/ImageCarousel.d.ts +3 -3
- package/react/components/appCatalog/components/Showcase/SupportNotes.d.ts +1 -1
- package/react/components/appCatalog/stores/storeActions.d.ts +1 -1
- package/react/components/common/DropdownButton.js.map +1 -1
- package/react/components/common/FileInput.d.ts +2 -1
- package/react/components/common/FileInput.js +2 -2
- package/react/components/common/FileInput.js.map +1 -1
- package/react/components/common/FinsembleToggle.d.ts +3 -1
- package/react/components/common/FinsembleToggle.js +12 -4
- package/react/components/common/FinsembleToggle.js.map +1 -1
- package/react/components/common/ImagePreview.js +1 -1
- package/react/components/common/ImagePreview.js.map +1 -1
- package/react/components/common/TimeSelect.d.ts +16 -0
- package/react/components/common/TimeSelect.js +143 -0
- package/react/components/common/TimeSelect.js.map +1 -0
- package/react/components/common/css/accordion.css +3 -5
- package/react/components/common/css/application-edit-page.css +4 -1
- package/react/components/common/css/time-select.css +8 -0
- package/react/components/common/css/toggle.css +39 -3
- package/react/components/common/helpers.js +1 -0
- package/react/components/common/helpers.js.map +1 -1
- package/react/components/common/stories/FileInput.stories.d.ts +2 -1
- package/react/components/common/stories/FileInput.stories.js +6 -0
- package/react/components/common/stories/FileInput.stories.js.map +1 -1
- package/react/components/common/stories/FinsembleToggle.stories.d.ts +3 -1
- package/react/components/common/stories/FinsembleToggle.stories.js +12 -0
- package/react/components/common/stories/FinsembleToggle.stories.js.map +1 -1
- package/react/components/common/stories/TimeSelect.stories.d.ts +11 -0
- package/react/components/common/stories/TimeSelect.stories.js +20 -0
- package/react/components/common/stories/TimeSelect.stories.js.map +1 -0
- package/react/components/common/tests/Accordion.spec.js +1 -1
- package/react/components/common/tests/Accordion.spec.js.map +1 -1
- package/react/components/common/tests/FileInput.spec.js +8 -1
- package/react/components/common/tests/FileInput.spec.js.map +1 -1
- package/react/components/common/tests/FinsembleSelect.spec.js +1 -1
- package/react/components/common/tests/FinsembleSelect.spec.js.map +1 -1
- package/react/components/common/tests/FinsembleToggle.spec.js +8 -3
- package/react/components/common/tests/FinsembleToggle.spec.js.map +1 -1
- package/react/components/{smartDesktopDesigner/tests/AppEditPage.spec.d.ts → common/tests/TimeSelect.spec.d.ts} +0 -0
- package/react/components/common/tests/TimeSelect.spec.js +71 -0
- package/react/components/common/tests/TimeSelect.spec.js.map +1 -0
- package/react/components/favorites/FavoriteMaker.js.map +1 -1
- package/react/components/favorites/FavoritesShell.spec.js +1 -1
- package/react/components/favorites/FavoritesShell.spec.js.map +1 -1
- package/react/components/fdc3Resolver/ResolverDialog.spec.js +1 -1
- package/react/components/fdc3Resolver/ResolverDialog.spec.js.map +1 -1
- package/react/components/icon/Icon.d.ts +4 -3
- package/react/components/icon/Icon.js +22 -12
- package/react/components/icon/Icon.js.map +1 -1
- package/react/components/legacyControls/tests/FinsembleDialogTextInput.spec.js +1 -1
- package/react/components/legacyControls/tests/FinsembleDialogTextInput.spec.js.map +1 -1
- package/react/components/linker/LinkerMenu.js.map +1 -1
- package/react/components/menu/MenuPortal.js +1 -1
- package/react/components/menu/MenuPortal.js.map +1 -1
- package/react/components/processMonitor/ProcessMonitorTypes.d.ts +4 -11
- package/react/components/processMonitor/ProcessMonitorTypes.js.map +1 -1
- package/react/components/processMonitor/components/ChildWindow.js +5 -10
- package/react/components/processMonitor/components/ChildWindow.js.map +1 -1
- package/react/components/processMonitor/components/ProcessStatistics.js +8 -10
- package/react/components/processMonitor/components/ProcessStatistics.js.map +1 -1
- package/react/components/processMonitor/constants.d.ts +0 -2
- package/react/components/processMonitor/constants.js +0 -2
- package/react/components/processMonitor/constants.js.map +1 -1
- package/react/components/processMonitor/helpers.d.ts +0 -11
- package/react/components/processMonitor/helpers.js +1 -9
- package/react/components/processMonitor/helpers.js.map +1 -1
- package/react/components/processMonitor/stores/ProcessMonitorStore.d.ts +3 -11
- package/react/components/processMonitor/stores/ProcessMonitorStore.js +22 -62
- package/react/components/processMonitor/stores/ProcessMonitorStore.js.map +1 -1
- package/react/components/{smartDesktopDesigner → sdd}/AddApp.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/AddApp.js +0 -0
- package/react/components/sdd/AddApp.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/AppEditAccess.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/AppEditAccess.js +0 -0
- package/react/components/sdd/AppEditAccess.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/AppEditPage.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/AppEditPage.js +7 -1
- package/react/components/sdd/AppEditPage.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/Appearance.css +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/Appearance.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/Appearance.helpers.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/Appearance.helpers.js +0 -0
- package/react/components/sdd/Appearance.helpers.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/Appearance.js +0 -0
- package/react/components/sdd/Appearance.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/Application.d.ts +1 -2
- package/react/components/{smartDesktopDesigner → sdd}/Application.js +37 -39
- package/react/components/sdd/Application.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/Applications.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/Applications.js +2 -2
- package/react/components/sdd/Applications.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/AssetsPage.css +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/AssetsPage.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/AssetsPage.js +0 -0
- package/react/components/sdd/AssetsPage.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/Authentication.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/Authentication.js +1 -1
- package/react/components/sdd/Authentication.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/AuthenticationProviderConfig.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/AuthenticationProviderConfig.js +0 -0
- package/react/components/sdd/AuthenticationProviderConfig.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/Content.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/Content.js +0 -0
- package/react/components/sdd/Content.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/ContentHeader.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/ContentHeader.js +0 -0
- package/react/components/sdd/ContentHeader.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/CurrentView.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/CurrentView.js +0 -0
- package/react/components/sdd/CurrentView.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/EditPreload.d.ts +5 -7
- package/react/components/sdd/EditPreload.js +156 -0
- package/react/components/sdd/EditPreload.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/Export.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/Export.js +0 -0
- package/react/components/sdd/Export.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/ExportCloud.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/ExportCloud.js +0 -0
- package/react/components/sdd/ExportCloud.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/ExportDeployInfo.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/ExportDeployInfo.js +0 -0
- package/react/components/sdd/ExportDeployInfo.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/ExportZip.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/ExportZip.js +0 -0
- package/react/components/sdd/ExportZip.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/GettingStarted.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/GettingStarted.js +0 -0
- package/react/components/sdd/GettingStarted.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/ItemList.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/ItemList.js +0 -0
- package/react/components/sdd/ItemList.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/Navigation.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/Navigation.js +0 -0
- package/react/components/sdd/Navigation.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/OptionalSettingsView.d.ts +1 -3
- package/react/components/sdd/OptionalSettingsView.js +56 -0
- package/react/components/sdd/OptionalSettingsView.js.map +1 -0
- package/react/components/sdd/Preloads.d.ts +6 -0
- package/react/components/sdd/Preloads.js +24 -0
- package/react/components/sdd/Preloads.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/ProjectErrors.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/ProjectErrors.js +0 -0
- package/react/components/sdd/ProjectErrors.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/Publish.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/Publish.js +0 -0
- package/react/components/sdd/Publish.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/PublishProgress.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/PublishProgress.js +0 -0
- package/react/components/sdd/PublishProgress.js.map +1 -0
- package/react/components/sdd/SmartDesktopDesigner.d.ts +29 -0
- package/react/components/sdd/SmartDesktopDesigner.js +122 -0
- package/react/components/sdd/SmartDesktopDesigner.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/ThemePage.css +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/ThemePage.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/ThemePage.js +0 -0
- package/react/components/sdd/ThemePage.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/Themes.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/Themes.js +0 -0
- package/react/components/sdd/Themes.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/Toolbar.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/Toolbar.js +9 -7
- package/react/components/sdd/Toolbar.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/View.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/View.js +0 -0
- package/react/components/sdd/View.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/common/fsbl_functions.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/common/fsbl_functions.js +0 -0
- package/react/components/sdd/common/fsbl_functions.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/common/getCSSVars.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/common/getCSSVars.js +0 -0
- package/react/components/sdd/common/getCSSVars.js.map +1 -0
- package/react/components/sdd/common/setPreloadDefaults.d.ts +1 -0
- package/react/components/sdd/common/setPreloadDefaults.js +21 -0
- package/react/components/sdd/common/setPreloadDefaults.js.map +1 -0
- package/react/components/{smartDesktopDesigner/fixtures → sdd/common}/views.d.ts +0 -0
- package/react/components/sdd/common/views.js +202 -0
- package/react/components/sdd/common/views.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/css/appearance.css +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/css/applications.css +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/css/authentication.css +5 -1
- package/react/components/{smartDesktopDesigner → sdd}/css/buttons.css +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/css/export.css +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/css/getting-started.css +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/css/nav.css +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/css/project-errors.css +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/css/project-header.css +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/css/styles.css +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/css/views.css +0 -1
- package/react/components/{smartDesktopDesigner → sdd}/fixtures/apps.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/fixtures/apps.js +10 -10
- package/react/components/sdd/fixtures/apps.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/fixtures/authenticationProps.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/fixtures/authenticationProps.js +0 -0
- package/react/components/sdd/fixtures/authenticationProps.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/fixtures/configTemplate.d.ts +1 -1
- package/react/components/{smartDesktopDesigner → sdd}/fixtures/configTemplate.js +1 -1
- package/react/components/sdd/fixtures/configTemplate.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/fixtures/exportProps.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/fixtures/exportProps.js +0 -0
- package/react/components/sdd/fixtures/exportProps.js.map +1 -0
- package/react/components/sdd/fixtures/preloads.d.ts +3 -0
- package/react/components/sdd/fixtures/preloads.js +57 -0
- package/react/components/sdd/fixtures/preloads.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/fixtures/projectErrorsProps.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/fixtures/projectErrorsProps.js +0 -0
- package/react/components/sdd/fixtures/projectErrorsProps.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/fixtures/publishProgress.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/fixtures/publishProgress.js +0 -0
- package/react/components/sdd/fixtures/publishProgress.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/fixtures/themeProps.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/fixtures/themeProps.js +0 -0
- package/react/components/sdd/fixtures/themeProps.js.map +1 -0
- package/react/components/sdd/fixtures/views.d.ts +3 -0
- package/react/components/{smartDesktopDesigner → sdd}/fixtures/views.js +0 -0
- package/react/components/sdd/fixtures/views.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/sdd_helpers.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/sdd_helpers.js +0 -0
- package/react/components/sdd/sdd_helpers.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/stories/AppEditPage.stories.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/stories/AppEditPage.stories.js +0 -0
- package/react/components/sdd/stories/AppEditPage.stories.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/stories/Appearance.stories.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/stories/Appearance.stories.js +0 -0
- package/react/components/sdd/stories/Appearance.stories.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/stories/Applications.stories.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/stories/Applications.stories.js +0 -0
- package/react/components/sdd/stories/Applications.stories.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/stories/AssetsPage.stories.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/stories/AssetsPage.stories.js +0 -0
- package/react/components/sdd/stories/AssetsPage.stories.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/stories/Authentication.stories.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/stories/Authentication.stories.js +0 -0
- package/react/components/sdd/stories/Authentication.stories.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/stories/ContentHeader.stories.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/stories/ContentHeader.stories.js +0 -0
- package/react/components/sdd/stories/ContentHeader.stories.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/stories/Export.stories.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/stories/Export.stories.js +0 -0
- package/react/components/sdd/stories/Export.stories.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/stories/ExportCloud.stories.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/stories/ExportCloud.stories.js +0 -0
- package/react/components/sdd/stories/ExportCloud.stories.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/stories/ExportZip.stories.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/stories/ExportZip.stories.js +0 -0
- package/react/components/sdd/stories/ExportZip.stories.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/stories/GettingStarted.stories.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/stories/GettingStarted.stories.js +0 -0
- package/react/components/sdd/stories/GettingStarted.stories.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/stories/ItemList.stories.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/stories/ItemList.stories.js +0 -0
- package/react/components/sdd/stories/ItemList.stories.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/stories/Navigation.stories.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/stories/Navigation.stories.js +0 -0
- package/react/components/sdd/stories/Navigation.stories.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/stories/OptionalSettingsView.stories.d.ts +3 -2
- package/react/components/sdd/stories/OptionalSettingsView.stories.js +27 -0
- package/react/components/sdd/stories/OptionalSettingsView.stories.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/stories/ProjectErrors.stories.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/stories/ProjectErrors.stories.js +0 -0
- package/react/components/sdd/stories/ProjectErrors.stories.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/stories/Publish.stories.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/stories/Publish.stories.js +0 -0
- package/react/components/sdd/stories/Publish.stories.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/stories/PublishProgress.stories.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/stories/PublishProgress.stories.js +0 -0
- package/react/components/sdd/stories/PublishProgress.stories.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/stories/SmartDesktopDesigner.stories.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/stories/SmartDesktopDesigner.stories.js +1 -0
- package/react/components/sdd/stories/SmartDesktopDesigner.stories.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/stories/ThemePage.stories.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/stories/ThemePage.stories.js +0 -0
- package/react/components/sdd/stories/ThemePage.stories.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/stories/Themes.stories.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/stories/Themes.stories.js +0 -0
- package/react/components/sdd/stories/Themes.stories.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/stories/Toolbar.stories.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/stories/Toolbar.stories.js +0 -0
- package/react/components/sdd/stories/Toolbar.stories.js.map +1 -0
- package/react/components/{smartDesktopDesigner/tests/Application.spec.d.ts → sdd/tests/AppEditPage.spec.d.ts} +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/tests/AppEditPage.spec.js +0 -0
- package/react/components/sdd/tests/AppEditPage.spec.js.map +1 -0
- package/react/components/{smartDesktopDesigner/tests/Authentication.spec.d.ts → sdd/tests/Application.spec.d.ts} +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/tests/Application.spec.js +13 -31
- package/react/components/sdd/tests/Application.spec.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/tests/Applications.spec.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/tests/Applications.spec.js +0 -0
- package/react/components/sdd/tests/Applications.spec.js.map +1 -0
- package/react/components/{smartDesktopDesigner/tests/ContentHeader.spec.d.ts → sdd/tests/Authentication.spec.d.ts} +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/tests/Authentication.spec.js +0 -0
- package/react/components/sdd/tests/Authentication.spec.js.map +1 -0
- package/react/components/{smartDesktopDesigner/tests/EditPreload.spec.d.ts → sdd/tests/ContentHeader.spec.d.ts} +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/tests/ContentHeader.spec.js +0 -0
- package/react/components/sdd/tests/ContentHeader.spec.js.map +1 -0
- package/react/components/{smartDesktopDesigner/tests/Export.spec.d.ts → sdd/tests/EditPreload.spec.d.ts} +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/tests/EditPreload.spec.js +8 -10
- package/react/components/sdd/tests/EditPreload.spec.js.map +1 -0
- package/react/components/{smartDesktopDesigner/tests/ExportZip.spec.d.ts → sdd/tests/Export.spec.d.ts} +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/tests/Export.spec.js +0 -0
- package/react/components/sdd/tests/Export.spec.js.map +1 -0
- package/react/components/{smartDesktopDesigner/tests/ItemList.spec.d.ts → sdd/tests/ExportZip.spec.d.ts} +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/tests/ExportZip.spec.js +0 -0
- package/react/components/sdd/tests/ExportZip.spec.js.map +1 -0
- package/react/components/{smartDesktopDesigner/tests/Navigation.spec.d.ts → sdd/tests/ItemList.spec.d.ts} +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/tests/ItemList.spec.js +0 -0
- package/react/components/sdd/tests/ItemList.spec.js.map +1 -0
- package/react/components/{smartDesktopDesigner/tests/Preloads.spec.d.ts → sdd/tests/Navigation.spec.d.ts} +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/tests/Navigation.spec.js +0 -0
- package/react/components/sdd/tests/Navigation.spec.js.map +1 -0
- package/react/components/{smartDesktopDesigner/tests/ProjectErrors.spec.d.ts → sdd/tests/OptionalSettingsView.spec.d.ts} +0 -0
- package/react/components/sdd/tests/OptionalSettingsView.spec.js +22 -0
- package/react/components/sdd/tests/OptionalSettingsView.spec.js.map +1 -0
- package/react/components/{smartDesktopDesigner/tests/Publish.spec.d.ts → sdd/tests/ProjectErrors.spec.d.ts} +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/tests/ProjectErrors.spec.js +0 -0
- package/react/components/sdd/tests/ProjectErrors.spec.js.map +1 -0
- package/react/components/{smartDesktopDesigner/tests/PublishProgess.spec.d.ts → sdd/tests/Publish.spec.d.ts} +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/tests/Publish.spec.js +0 -0
- package/react/components/sdd/tests/Publish.spec.js.map +1 -0
- package/react/components/{smartDesktopDesigner/tests/SmartDesktopDesigner.spec.d.ts → sdd/tests/PublishProgess.spec.d.ts} +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/tests/PublishProgess.spec.js +0 -0
- package/react/components/sdd/tests/PublishProgess.spec.js.map +1 -0
- package/react/components/{smartDesktopDesigner/tests/Themes.spec.d.ts → sdd/tests/SmartDesktopDesigner.spec.d.ts} +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/tests/SmartDesktopDesigner.spec.js +1 -1
- package/react/components/sdd/tests/SmartDesktopDesigner.spec.js.map +1 -0
- package/react/components/{smartDesktopDesigner/tests/sdd_helpers.spec.d.ts → sdd/tests/Themes.spec.d.ts} +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/tests/Themes.spec.js +0 -0
- package/react/components/sdd/tests/Themes.spec.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/tests/Toolbar.spec.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/tests/Toolbar.spec.js +0 -0
- package/react/components/sdd/tests/Toolbar.spec.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/tests/a11y_helper.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/tests/a11y_helper.js +0 -0
- package/react/components/sdd/tests/a11y_helper.js.map +1 -0
- package/react/components/{userPreferences/tests/ScheduledRestart.spec.d.ts → sdd/tests/sdd_helpers.spec.d.ts} +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/tests/sdd_helpers.spec.js +0 -0
- package/react/components/sdd/tests/sdd_helpers.spec.js.map +1 -0
- package/react/components/{smartDesktopDesigner → sdd}/themeDefinitions.d.ts +0 -0
- package/react/components/{smartDesktopDesigner → sdd}/themeDefinitions.js +0 -0
- package/react/components/sdd/themeDefinitions.js.map +1 -0
- package/react/components/search/SearchBestMatch.js.map +1 -1
- package/react/components/search/SearchProviderResults.d.ts +3 -1
- package/react/components/search/SearchProviderResults.js.map +1 -1
- package/react/components/search/SearchResult.d.ts +3 -1
- package/react/components/search/SearchResult.js +9 -7
- package/react/components/search/SearchResult.js.map +1 -1
- package/react/components/shared/DefaultDropdownButton.js +5 -4
- package/react/components/shared/DefaultDropdownButton.js.map +1 -1
- package/react/components/shared/tests/DefaultDropdownButton.spec.js +9 -0
- package/react/components/shared/tests/DefaultDropdownButton.spec.js.map +1 -1
- package/react/components/singleInputDialog/SingleInputDialog.spec.js +1 -1
- package/react/components/singleInputDialog/SingleInputDialog.spec.js.map +1 -1
- package/react/components/smartDesktopDesigner/SmartDesktopDesigner.d.ts +0 -11
- package/react/components/smartDesktopDesigner/SmartDesktopDesigner.js +2 -116
- package/react/components/smartDesktopDesigner/SmartDesktopDesigner.js.map +1 -1
- package/react/components/smartDesktopDesigner/common/views.js +1 -203
- package/react/components/smartDesktopDesigner/common/views.js.map +1 -1
- package/react/components/toolbar/AutoArrange.js +1 -1
- package/react/components/toolbar/AutoArrange.js.map +1 -1
- package/react/components/toolbar/AutoArrange.spec.d.ts +1 -0
- package/react/components/toolbar/AutoArrange.spec.js +48 -0
- package/react/components/toolbar/AutoArrange.spec.js.map +1 -0
- package/react/components/toolbar/AutoArrange.stories.d.ts +11 -0
- package/react/components/toolbar/AutoArrange.stories.js +21 -0
- package/react/components/toolbar/AutoArrange.stories.js.map +1 -0
- package/react/components/toolbar/SddButton.d.ts +2 -0
- package/react/components/toolbar/SddButton.js +23 -0
- package/react/components/toolbar/SddButton.js.map +1 -0
- package/react/components/toolbar/ToolbarShell.js +4 -1
- package/react/components/toolbar/ToolbarShell.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/AppActionsMenu.js +2 -1
- package/react/components/toolbar/advancedAppLauncher/components/AppActionsMenu.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/AppDefinition.d.ts +3 -2
- package/react/components/toolbar/advancedAppLauncher/components/AppDefinition.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/stores/StoreActions.js.map +1 -1
- package/react/components/toolbar/appLauncher/AppLauncherMenu.js +15 -4
- package/react/components/toolbar/appLauncher/AppLauncherMenu.js.map +1 -1
- package/react/components/toolbar/appLauncher/components/componentList.js +3 -4
- package/react/components/toolbar/appLauncher/components/componentList.js.map +1 -1
- package/react/components/toolbar/dashbar/Dashbar.js +2 -0
- package/react/components/toolbar/dashbar/Dashbar.js.map +1 -1
- package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js +71 -12
- package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js.map +1 -1
- package/react/components/userPreferences/UserPreferenceTypes.d.ts +3 -2
- package/react/components/userPreferences/UserPreferenceTypes.js.map +1 -1
- package/react/components/userPreferences/components/content/General.d.ts +2 -5
- package/react/components/userPreferences/components/content/General.js +31 -11
- package/react/components/userPreferences/components/content/General.js.map +1 -1
- package/react/components/userPreferences/components/content/Workspaces.d.ts +5 -0
- package/react/components/userPreferences/components/content/Workspaces.js +58 -17
- package/react/components/userPreferences/components/content/Workspaces.js.map +1 -1
- package/react/components/userPreferences/components/general/ScheduledClose.d.ts +10 -0
- package/react/components/userPreferences/components/general/ScheduledClose.js +95 -0
- package/react/components/userPreferences/components/general/ScheduledClose.js.map +1 -0
- package/react/components/userPreferences/stores/UserPreferencesStore.d.ts +6 -2
- package/react/components/userPreferences/stores/UserPreferencesStore.js +19 -3
- package/react/components/userPreferences/stores/UserPreferencesStore.js.map +1 -1
- package/react/components/userPreferences/stories/General.stories.d.ts +6 -2
- package/react/components/userPreferences/stories/ScheduledClose.stories.d.ts +12 -0
- package/react/components/userPreferences/stories/ScheduledClose.stories.js +53 -0
- package/react/components/userPreferences/stories/ScheduledClose.stories.js.map +1 -0
- package/react/components/userPreferences/tests/General.spec.js +4 -17
- package/react/components/userPreferences/tests/General.spec.js.map +1 -1
- package/react/components/userPreferences/tests/ScheduledClose.spec.d.ts +1 -0
- package/react/components/userPreferences/tests/ScheduledClose.spec.js +47 -0
- package/react/components/userPreferences/tests/ScheduledClose.spec.js.map +1 -0
- package/react/components/windowTitleBar/WindowTitleBarShell.d.ts +1 -0
- package/react/components/windowTitleBar/WindowTitleBarShell.js +16 -6
- package/react/components/windowTitleBar/WindowTitleBarShell.js.map +1 -1
- package/react/components/windowTitleBar/components/center/TabList.js +2 -2
- package/react/components/windowTitleBar/components/center/TabList.js.map +1 -1
- package/react/components/windowTitleBar/components/left/LinkerButton.js.map +1 -1
- package/react/components/windowTitleBar/components/windowTitle.js +11 -10
- package/react/components/windowTitleBar/components/windowTitle.js.map +1 -1
- package/react/components/windowTitleBar/stores/windowTitleBarStore.js +12 -9
- package/react/components/windowTitleBar/stores/windowTitleBarStore.js.map +1 -1
- package/react/components/yesNoDialog/Timer.spec.js +1 -1
- package/react/components/yesNoDialog/Timer.spec.js.map +1 -1
- package/react/components/yesNoDialog/YesNoDialog.spec.js +1 -1
- package/react/components/yesNoDialog/YesNoDialog.spec.js.map +1 -1
- package/react/hooks/useSearch.d.ts +2 -1
- package/react/hooks/useSearch.js.map +1 -1
- package/react/hooks/useToolbar.js +6 -0
- package/react/hooks/useToolbar.js.map +1 -1
- package/react/reducers/rootReducer.d.ts +1 -1
- package/react/reducers/smartDesktopDesignerReducer.js +1 -1
- package/react/reducers/smartDesktopDesignerReducer.js.map +1 -1
- package/react/store.d.ts +2 -2
- package/react/types/advancedAppLauncherTypes.d.ts +5 -3
- package/react/types/advancedAppLauncherTypes.js.map +1 -1
- package/react/types/favoriteTypes.d.ts +4 -2
- package/react/types/favoriteTypes.js.map +1 -1
- package/react/types/smartDesktopDesignerTypes.d.ts +9 -1
- package/react/types/smartDesktopDesignerTypes.js.map +1 -1
- package/react/components/smartDesktopDesigner/AddApp.js.map +0 -1
- package/react/components/smartDesktopDesigner/AppEditAccess.js.map +0 -1
- package/react/components/smartDesktopDesigner/AppEditPage.js.map +0 -1
- package/react/components/smartDesktopDesigner/Appearance.helpers.js.map +0 -1
- package/react/components/smartDesktopDesigner/Appearance.js.map +0 -1
- package/react/components/smartDesktopDesigner/Application.js.map +0 -1
- package/react/components/smartDesktopDesigner/Applications.js.map +0 -1
- package/react/components/smartDesktopDesigner/AssetsPage.js.map +0 -1
- package/react/components/smartDesktopDesigner/Authentication.js.map +0 -1
- package/react/components/smartDesktopDesigner/AuthenticationProviderConfig.js.map +0 -1
- package/react/components/smartDesktopDesigner/Content.js.map +0 -1
- package/react/components/smartDesktopDesigner/ContentHeader.js.map +0 -1
- package/react/components/smartDesktopDesigner/CurrentView.js.map +0 -1
- package/react/components/smartDesktopDesigner/EditPreload.js +0 -169
- package/react/components/smartDesktopDesigner/EditPreload.js.map +0 -1
- package/react/components/smartDesktopDesigner/Export.js.map +0 -1
- package/react/components/smartDesktopDesigner/ExportCloud.js.map +0 -1
- package/react/components/smartDesktopDesigner/ExportDeployInfo.js.map +0 -1
- package/react/components/smartDesktopDesigner/ExportZip.js.map +0 -1
- package/react/components/smartDesktopDesigner/GettingStarted.js.map +0 -1
- package/react/components/smartDesktopDesigner/ItemList.js.map +0 -1
- package/react/components/smartDesktopDesigner/Navigation.js.map +0 -1
- package/react/components/smartDesktopDesigner/OptionalSettingsView.js +0 -71
- package/react/components/smartDesktopDesigner/OptionalSettingsView.js.map +0 -1
- package/react/components/smartDesktopDesigner/Preloads.d.ts +0 -8
- package/react/components/smartDesktopDesigner/Preloads.js +0 -26
- package/react/components/smartDesktopDesigner/Preloads.js.map +0 -1
- package/react/components/smartDesktopDesigner/ProjectErrors.js.map +0 -1
- package/react/components/smartDesktopDesigner/Publish.js.map +0 -1
- package/react/components/smartDesktopDesigner/PublishProgress.js.map +0 -1
- package/react/components/smartDesktopDesigner/ThemePage.js.map +0 -1
- package/react/components/smartDesktopDesigner/Themes.js.map +0 -1
- package/react/components/smartDesktopDesigner/Toolbar.js.map +0 -1
- package/react/components/smartDesktopDesigner/View.js.map +0 -1
- package/react/components/smartDesktopDesigner/common/fsbl_functions.js.map +0 -1
- package/react/components/smartDesktopDesigner/common/getCSSVars.js.map +0 -1
- package/react/components/smartDesktopDesigner/fixtures/apps.js.map +0 -1
- package/react/components/smartDesktopDesigner/fixtures/authenticationProps.js.map +0 -1
- package/react/components/smartDesktopDesigner/fixtures/configTemplate.js.map +0 -1
- package/react/components/smartDesktopDesigner/fixtures/exportProps.js.map +0 -1
- package/react/components/smartDesktopDesigner/fixtures/preloads.d.ts +0 -22
- package/react/components/smartDesktopDesigner/fixtures/preloads.js +0 -40
- package/react/components/smartDesktopDesigner/fixtures/preloads.js.map +0 -1
- package/react/components/smartDesktopDesigner/fixtures/projectErrorsProps.js.map +0 -1
- package/react/components/smartDesktopDesigner/fixtures/publishProgress.js.map +0 -1
- package/react/components/smartDesktopDesigner/fixtures/themeProps.js.map +0 -1
- package/react/components/smartDesktopDesigner/fixtures/views.js.map +0 -1
- package/react/components/smartDesktopDesigner/sdd_helpers.js.map +0 -1
- package/react/components/smartDesktopDesigner/stories/AppEditPage.stories.js.map +0 -1
- package/react/components/smartDesktopDesigner/stories/Appearance.stories.js.map +0 -1
- package/react/components/smartDesktopDesigner/stories/Applications.stories.js.map +0 -1
- package/react/components/smartDesktopDesigner/stories/AssetsPage.stories.js.map +0 -1
- package/react/components/smartDesktopDesigner/stories/Authentication.stories.js.map +0 -1
- package/react/components/smartDesktopDesigner/stories/ContentHeader.stories.js.map +0 -1
- package/react/components/smartDesktopDesigner/stories/EditPreload.stories.d.ts +0 -11
- package/react/components/smartDesktopDesigner/stories/EditPreload.stories.js +0 -35
- package/react/components/smartDesktopDesigner/stories/EditPreload.stories.js.map +0 -1
- package/react/components/smartDesktopDesigner/stories/Export.stories.js.map +0 -1
- package/react/components/smartDesktopDesigner/stories/ExportCloud.stories.js.map +0 -1
- package/react/components/smartDesktopDesigner/stories/ExportZip.stories.js.map +0 -1
- package/react/components/smartDesktopDesigner/stories/GettingStarted.stories.js.map +0 -1
- package/react/components/smartDesktopDesigner/stories/ItemList.stories.js.map +0 -1
- package/react/components/smartDesktopDesigner/stories/Navigation.stories.js.map +0 -1
- package/react/components/smartDesktopDesigner/stories/OptionalSettingsView.stories.js +0 -28
- package/react/components/smartDesktopDesigner/stories/OptionalSettingsView.stories.js.map +0 -1
- package/react/components/smartDesktopDesigner/stories/Preloads.stories.d.ts +0 -11
- package/react/components/smartDesktopDesigner/stories/Preloads.stories.js +0 -31
- package/react/components/smartDesktopDesigner/stories/Preloads.stories.js.map +0 -1
- package/react/components/smartDesktopDesigner/stories/ProjectErrors.stories.js.map +0 -1
- package/react/components/smartDesktopDesigner/stories/Publish.stories.js.map +0 -1
- package/react/components/smartDesktopDesigner/stories/PublishProgress.stories.js.map +0 -1
- package/react/components/smartDesktopDesigner/stories/SmartDesktopDesigner.stories.js.map +0 -1
- package/react/components/smartDesktopDesigner/stories/ThemePage.stories.js.map +0 -1
- package/react/components/smartDesktopDesigner/stories/Themes.stories.js.map +0 -1
- package/react/components/smartDesktopDesigner/stories/Toolbar.stories.js.map +0 -1
- package/react/components/smartDesktopDesigner/tests/AppEditPage.spec.js.map +0 -1
- package/react/components/smartDesktopDesigner/tests/Application.spec.js.map +0 -1
- package/react/components/smartDesktopDesigner/tests/Applications.spec.js.map +0 -1
- package/react/components/smartDesktopDesigner/tests/Authentication.spec.js.map +0 -1
- package/react/components/smartDesktopDesigner/tests/ContentHeader.spec.js.map +0 -1
- package/react/components/smartDesktopDesigner/tests/EditPreload.spec.js.map +0 -1
- package/react/components/smartDesktopDesigner/tests/Export.spec.js.map +0 -1
- package/react/components/smartDesktopDesigner/tests/ExportZip.spec.js.map +0 -1
- package/react/components/smartDesktopDesigner/tests/ItemList.spec.js.map +0 -1
- package/react/components/smartDesktopDesigner/tests/Navigation.spec.js.map +0 -1
- package/react/components/smartDesktopDesigner/tests/Preloads.spec.js +0 -47
- package/react/components/smartDesktopDesigner/tests/Preloads.spec.js.map +0 -1
- package/react/components/smartDesktopDesigner/tests/ProjectErrors.spec.js.map +0 -1
- package/react/components/smartDesktopDesigner/tests/Publish.spec.js.map +0 -1
- package/react/components/smartDesktopDesigner/tests/PublishProgess.spec.js.map +0 -1
- package/react/components/smartDesktopDesigner/tests/SmartDesktopDesigner.spec.js.map +0 -1
- package/react/components/smartDesktopDesigner/tests/Themes.spec.js.map +0 -1
- package/react/components/smartDesktopDesigner/tests/Toolbar.spec.js.map +0 -1
- package/react/components/smartDesktopDesigner/tests/a11y_helper.js.map +0 -1
- package/react/components/smartDesktopDesigner/tests/sdd_helpers.spec.js.map +0 -1
- package/react/components/smartDesktopDesigner/themeDefinitions.js.map +0 -1
- package/react/components/toolbar/appLauncher/DynamicAppLauncher.d.ts +0 -6
- package/react/components/toolbar/appLauncher/DynamicAppLauncher.js +0 -23
- package/react/components/toolbar/appLauncher/DynamicAppLauncher.js.map +0 -1
- package/react/components/userPreferences/components/general/ScheduledRestart.d.ts +0 -27
- package/react/components/userPreferences/components/general/ScheduledRestart.js +0 -190
- package/react/components/userPreferences/components/general/ScheduledRestart.js.map +0 -1
- package/react/components/userPreferences/tests/ScheduledRestart.spec.js +0 -70
- package/react/components/userPreferences/tests/ScheduledRestart.spec.js.map +0 -1
- package/react/hooks/useWorkspace.d.ts +0 -5
- package/react/hooks/useWorkspace.js +0 -26
- package/react/hooks/useWorkspace.js.map +0 -1
- package/react/types/iconTypes.d.ts +0 -11
- package/react/types/iconTypes.js +0 -2
- package/react/types/iconTypes.js.map +0 -1
- package/react/types/searchTypes.d.ts +0 -22
- package/react/types/searchTypes.js +0 -2
- package/react/types/searchTypes.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SmartDesktopDesigner.js","sourceRoot":"","sources":["../../../src/components/smartDesktopDesigner/SmartDesktopDesigner.tsx"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright 2017 - 2020 by ChartIQ, Inc.\n * All rights reserved.\n */\n\n/* If you rename \"SmartDesktopDesigner\" to something else (it's been Maker UI, Jumpstart, and DesktopProjectEditor in the past), grep for the following terms (case insensitive):\n * \"SmartDesktop\", \"Smart Desktop\", \"SDD\", \"SDServer\", \"SMART_DESKTOP\"\n */\n\nimport React, { useState, useEffect, useRef } from \"react\";\nimport FloatingFocus from \"@q42/floating-focus-a11y\";\nimport \"../../assets/css/finsemble.css\";\nimport \"./css/styles.css\";\nimport { Navigation } from \"./Navigation\";\nimport { CurrentView } from \"./CurrentView\";\nimport { getCSSVars } from \"./common/getCSSVars\";\nimport { useSelector, useDispatch } from \"../../store\";\nimport { RootState } from \"../../reducers/rootReducer\";\nimport { ProjectSaveData } from \"../../types/smartDesktopDesignerTypes\";\nimport { SmartDesktopDesignerActions } from \"../../actions/smartDesktopDesignerActions\";\nimport { FEA } from \"@finsemble/finsemble-api\";\nimport { ContentHeader } from \"./ContentHeader\";\nimport { Button } from \"../common/Button\";\n\ntype SDServerInfo = FEA.SDServerInfo;\n\n// The package FloatingFocus injects a focus indicator that moves around the page, but only for\n// keyboard users. (Mouse users don't see the indicator.) All that needs to be done is to envoke it.\nnew FloatingFocus();\n// If you want to make changes to the indicator, the styles are being maintained in assets/css/focus.css\n\nconst getDefaultTheme = () => {\n\tlet globalCssVars: any = {};\n\tconst docStyle = window.getComputedStyle(document.documentElement);\n\tgetCSSVars(document.styleSheets).forEach((varName: any) => {\n\t\tglobalCssVars[varName] = docStyle.getPropertyValue(varName).trim();\n\t});\n\n\t// In order to prevent the theme from affecting content of smartDesktopDesigner.tsx,\n\t// remove the sheet after reading variables\n\tconst themesheet = document.body.querySelector(\"#themesheet\");\n\tif (themesheet) {\n\t\tdocument.body.removeChild(themesheet);\n\t}\n\n\treturn globalCssVars;\n};\n\nlet themeConfig = {\n\tcurrentTheme: \"Default\",\n\tdefaultTheme: \"Default\",\n\tthemes: {\n\t\tDefault: getDefaultTheme(),\n\t},\n};\n\nexport type ThemeConfig = typeof themeConfig;\n\nexport type SmartDesktopDesignerProps = {\n\tviews: any[];\n\tgetConfig: typeof FSBL.Clients.ConfigClient.getValues;\n\tresetProject: typeof FSBL.Clients.SmartDesktopClient.prototype.resetProject;\n\tgetSDServerInfo: typeof FSBL.Clients.SmartDesktopClient.prototype.getSDServerInfo;\n\tgetProjectSettings: typeof FSBL.Clients.SmartDesktopClient.prototype.getProjectSettings;\n\tupdateProjectSettings?: typeof FSBL.Clients.SmartDesktopClient.prototype.updateProjectSettings;\n\tonThemeUpdated: typeof FSBL.Clients.SmartDesktopClient.onThemeUpdated;\n\tselectProjectPath?: typeof FSBL.Clients.SmartDesktopClient.prototype.selectProjectPath;\n\trestartFinsemble?: () => void;\n};\n\nexport const SmartDesktopDesigner = (props: SmartDesktopDesignerProps) => {\n\tconst dispatch = useDispatch();\n\n\tconst { views } = props;\n\tconst [theme, setTheme] = useState(themeConfig);\n\tconst [sdServerInfo, setSDServerInfo] = useState({ enabled: false, applicationRoot: \"\" } as SDServerInfo);\n\tconst [version, setVersion] = useState(\"\");\n\n\tconst project = useSelector((state: RootState) => state.smartDesktopDesigner.projectInfo);\n\n\tconst setProject = (value: ProjectSaveData) => {\n\t\tdispatch(SmartDesktopDesignerActions.set_project_info(value));\n\t};\n\n\tconst themeListenerRef = useRef((addListenerErr: any, { data }: { data: any }) => {\n\t\tconst newTheme = { ...themeConfig };\n\t\tnewTheme.themes.Default = { ...newTheme.themes.Default };\n\n\t\tfor (let [key, value] of Object.entries(data)) {\n\t\t\tnewTheme.themes.Default[key] = value;\n\t\t}\n\t\tsetTheme(newTheme);\n\t});\n\n\t// Similar to componentDidMount and componentDidUpdate:\n\tuseEffect(() => {\n\t\tprops.getConfig(null, (err: any, newConfig: any) => {\n\t\t\tif (err) {\n\t\t\t\tFSBL.Clients.Logger.system.error(\"SmartDesktopDesigner\", err);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// @todo: We should use a Client API for this, rather than relying on the config to look this way.\n\t\t\t// That change will be easier to do once the SDD is removed from the Seed.\n\t\t\tsetVersion(newConfig?.finsemble?.system?.FSBLVersion ?? \"\");\n\n\t\t\tprops.getProjectSettings().then((response) => {\n\t\t\t\tlet projectPath = project.path;\n\n\t\t\t\tif (response.settings?.path) {\n\t\t\t\t\tprojectPath = response.settings.path;\n\t\t\t\t}\n\n\t\t\t\tprops.getSDServerInfo().then((jsInfo) => {\n\t\t\t\t\tif (!jsInfo.enabled) {\n\t\t\t\t\t\tFSBL.Clients.Logger.system.error(\n\t\t\t\t\t\t\t\"Smart Desktop Designer started without the Smart Desktop Server being enabled. Check FEA configuration.\"\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tFSBL.Clients.Logger.system.log(`DPS application root: ${jsInfo.applicationRoot}`);\n\t\t\t\t\t}\n\t\t\t\t\tFSBL.Clients.Logger.system.log(`DPS info: ${JSON.stringify(jsInfo)}`);\n\t\t\t\t\tFSBL.Clients.Logger.system.log(`NewConfig info: ${JSON.stringify(newConfig)}`);\n\n\t\t\t\t\tsetProject({\n\t\t\t\t\t\t...project,\n\t\t\t\t\t\tname: jsInfo?.projectConfig?.name || \"\",\n\t\t\t\t\t\tpath: projectPath,\n\t\t\t\t\t\texport: {\n\t\t\t\t\t\t\t...project.export,\n\t\t\t\t\t\t\ttoolbarIcon: \"/assets/img/Finsemble_Toolbar_Icon.png\",\n\t\t\t\t\t\t\tinstallerIcon: \"/assets/img/installer_icon.ico\",\n\t\t\t\t\t\t\ttaskbarIcon: newConfig?.startup_app?.applicationIcon,\n\t\t\t\t\t\t\tsystemTrayIcon: newConfig?.finsemble?.systemTrayIcon,\n\t\t\t\t\t\t\tsplashScreenImage: newConfig?.splashScreenImage,\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\n\t\t\t\t\t// This should be done last as its checked for initial rendering\n\t\t\t\t\t// Otherwise, inital values will be cached within states of sub components\n\t\t\t\t\t// \"Untitled project\" will show as project.name since it will be \"\", e.g.\n\t\t\t\t\tsetSDServerInfo(jsInfo);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\n\t\tconst removeHandler = props.onThemeUpdated(themeListenerRef.current);\n\t\treturn () => {\n\t\t\tremoveHandler();\n\t\t};\n\t}, []);\n\n\tconst clickResetProjectButton = () => {\n\t\tconst resetProject = async () => {\n\t\t\tconst [err] = await props.resetProject();\n\t\t\tif (err) alert(`Project failed to reset: ${err.message}`);\n\t\t};\n\t\tFSBL.Clients.DialogManager.open(\n\t\t\t\"yesNo\",\n\t\t\t{\n\t\t\t\ttitle: \"Are you sure?\",\n\t\t\t\tquestion: `Your project will be set back to factory defaults. You will lose all customizations except the name of the project. Finsemble will then be restarted.`,\n\t\t\t\thideModalOnClose: true,\n\t\t\t\tshowNegativeButton: false,\n\t\t\t\taffirmativeResponseLabel: \"Reset Project\",\n\t\t\t},\n\t\t\t(err: any, response: { choice: string }) => {\n\t\t\t\tif (response.choice === \"affirmative\") {\n\t\t\t\t\tresetProject();\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t};\n\n\treturn sdServerInfo.enabled ? (\n\t\t<div className=\"config-container\">\n\t\t\t<div className=\"project-container\">\n\t\t\t\t<div className=\"nav-container\">\n\t\t\t\t\t<Navigation views={views}></Navigation>\n\n\t\t\t\t\t<div className=\"bottom-nav-wrapper\">\n\t\t\t\t\t\t<div className=\"nav-anchor-reset\">\n\t\t\t\t\t\t\t<div className=\"version-info\">{version && `Finsemble version ${version}`}</div>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tfashion=\"danger\"\n\t\t\t\t\t\t\t\ttext=\"Reset project\"\n\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\tclickResetProjectButton();\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<div className=\"content-container\">\n\t\t\t\t\t<ContentHeader name={project.name} />\n\t\t\t\t\t<div className=\"view-container\">\n\t\t\t\t\t\t<CurrentView views={views} theme={theme}></CurrentView>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t) : (\n\t\t<></>\n\t);\n};\n"]}
|
|
1
|
+
{"version":3,"file":"SmartDesktopDesigner.js","sourceRoot":"","sources":["../../../src/components/smartDesktopDesigner/SmartDesktopDesigner.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,MAAM,OAAO,CAAC;AAc1B,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAgC,EAAE,EAAE,CAAC,yCAAK,CAAC","sourcesContent":["/*!\n * Copyright 2017 - 2020 by ChartIQ, Inc.\n * All rights reserved.\n */\n\n/* If you rename \"SmartDesktopDesigner\" to something else (it's been Maker UI, Jumpstart, and DesktopProjectEditor in the past), grep for the following terms (case insensitive):\n * \"SmartDesktop\", \"Smart Desktop\", \"SDD\", \"SDServer\", \"SMART_DESKTOP\"\n */\n\nimport React from \"react\";\n\nexport type SmartDesktopDesignerProps = {\n\tviews: any[];\n\tgetConfig: typeof FSBL.Clients.ConfigClient.getValues;\n\tresetProject: typeof FSBL.Clients.SmartDesktopClient.prototype.resetProject;\n\tgetSDServerInfo: typeof FSBL.Clients.SmartDesktopClient.prototype.getSDServerInfo;\n\tgetProjectSettings: typeof FSBL.Clients.SmartDesktopClient.prototype.getProjectSettings;\n\tupdateProjectSettings?: typeof FSBL.Clients.SmartDesktopClient.prototype.updateProjectSettings;\n\tonThemeUpdated: typeof FSBL.Clients.SmartDesktopClient.onThemeUpdated;\n\tselectProjectPath?: typeof FSBL.Clients.SmartDesktopClient.prototype.selectProjectPath;\n\trestartFinsemble?: () => void;\n};\n\nexport const SmartDesktopDesigner = (props: SmartDesktopDesignerProps) => <></>;\n"]}
|
|
@@ -1,204 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
import { Applications } from "../Applications";
|
|
3
|
-
import { Export } from "../Export";
|
|
4
|
-
import { Themes } from "../Themes";
|
|
5
|
-
import { Authentication } from "../Authentication";
|
|
6
|
-
import { Toolbar } from "../Toolbar";
|
|
7
|
-
import { OptionalSettingsView } from "../OptionalSettingsView";
|
|
8
|
-
const SmartDesktopClient = new FSBL.Clients.SmartDesktopClient();
|
|
9
|
-
const getSDServerInfo = (cb) => {
|
|
10
|
-
SmartDesktopClient.getSDServerInfo().then((info) => {
|
|
11
|
-
FSBL.Clients.ConfigClient.getValues(null, (err, newConfig) => {
|
|
12
|
-
var _a, _b;
|
|
13
|
-
cb(Object.assign(Object.assign({}, info), { export: Object.assign(Object.assign({}, info.export), { toolbarIcon: "/assets/img/Finsemble_Toolbar_Icon.png", installerIcon: "/assets/img/installer_icon.ico", taskbarIcon: (_a = newConfig === null || newConfig === void 0 ? void 0 : newConfig.startup_app) === null || _a === void 0 ? void 0 : _a.applicationIcon, systemTrayIcon: (_b = newConfig === null || newConfig === void 0 ? void 0 : newConfig.finsemble) === null || _b === void 0 ? void 0 : _b.systemTrayIcon, splashScreenImage: newConfig === null || newConfig === void 0 ? void 0 : newConfig.splashScreenImage }) }));
|
|
14
|
-
});
|
|
15
|
-
});
|
|
16
|
-
};
|
|
17
|
-
function createCSRF() {
|
|
18
|
-
const epoch = new Date();
|
|
19
|
-
let id = epoch.getTime().toString(36);
|
|
20
|
-
id = id + Math.floor(Math.random() * Math.pow(36, 2)).toString(36);
|
|
21
|
-
return id.toUpperCase();
|
|
22
|
-
}
|
|
23
|
-
export default [
|
|
24
|
-
{
|
|
25
|
-
showLabel: false,
|
|
26
|
-
label: "",
|
|
27
|
-
views: [
|
|
28
|
-
{
|
|
29
|
-
id: "getting-started",
|
|
30
|
-
icon: "flag",
|
|
31
|
-
name: "Start",
|
|
32
|
-
component: GettingStarted,
|
|
33
|
-
},
|
|
34
|
-
],
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
showLabel: true,
|
|
38
|
-
label: "Apps",
|
|
39
|
-
views: [
|
|
40
|
-
{
|
|
41
|
-
id: "applications",
|
|
42
|
-
icon: "window",
|
|
43
|
-
name: "Manage apps",
|
|
44
|
-
component: Applications,
|
|
45
|
-
props: {
|
|
46
|
-
getApps: () => SmartDesktopClient.getApps(),
|
|
47
|
-
addApp: (appId, appConfig) => SmartDesktopClient.addApp(appId, appConfig),
|
|
48
|
-
deleteApp: (appId) => SmartDesktopClient.deleteApp(appId),
|
|
49
|
-
updateApp: (appId, appConfig) => SmartDesktopClient.updateApp(appId, appConfig),
|
|
50
|
-
getMenus: () => SmartDesktopClient.getMenus(),
|
|
51
|
-
addMenu: (menuConfig) => SmartDesktopClient.addMenu(menuConfig),
|
|
52
|
-
updateMenu: (menuId, menuConfig) => SmartDesktopClient.updateMenu(menuId, menuConfig),
|
|
53
|
-
deleteMenu: (menuId) => SmartDesktopClient.deleteMenu(menuId),
|
|
54
|
-
getPreloads: () => SmartDesktopClient.getPreloads(),
|
|
55
|
-
getAppConfigTemplate: () => SmartDesktopClient.getAppConfigTemplate(),
|
|
56
|
-
isInboundInteropAuthorized: FSBL.Clients.SmartDesktopClient.isInboundInteropAuthorized,
|
|
57
|
-
isOutboundInteropAuthorized: FSBL.Clients.SmartDesktopClient.isOutboundInteropAuthorized,
|
|
58
|
-
},
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
id: "applications-optional",
|
|
62
|
-
icon: "code-block",
|
|
63
|
-
name: "Optional",
|
|
64
|
-
component: OptionalSettingsView,
|
|
65
|
-
props: {
|
|
66
|
-
getApps: SmartDesktopClient.getApps,
|
|
67
|
-
updateApp: SmartDesktopClient.updateApp,
|
|
68
|
-
getConfig: FSBL.Clients.ConfigClient.getValue.bind(FSBL.Clients.ConfigClient),
|
|
69
|
-
getPreloads: SmartDesktopClient.getPreloads,
|
|
70
|
-
addPreload: SmartDesktopClient.addPreload,
|
|
71
|
-
updatePreload: SmartDesktopClient.updatePreload,
|
|
72
|
-
deletePreload: SmartDesktopClient.deletePreload,
|
|
73
|
-
},
|
|
74
|
-
},
|
|
75
|
-
],
|
|
76
|
-
},
|
|
77
|
-
{
|
|
78
|
-
showLabel: true,
|
|
79
|
-
label: "Desktop Customization",
|
|
80
|
-
views: [
|
|
81
|
-
{
|
|
82
|
-
id: "themes",
|
|
83
|
-
icon: "paint-roller",
|
|
84
|
-
name: "Theme",
|
|
85
|
-
component: Themes,
|
|
86
|
-
props: {
|
|
87
|
-
getSDServerInfo,
|
|
88
|
-
updateProjectSettings: (obj) => SmartDesktopClient.updateProjectSettings(obj),
|
|
89
|
-
updateThemes: (id, newValue) => {
|
|
90
|
-
FSBL.Clients.SmartDesktopClient.updateThemeVariable(id, newValue);
|
|
91
|
-
},
|
|
92
|
-
areYouSure: (affirmativeCallback) => {
|
|
93
|
-
FSBL.Clients.DialogManager.open("yesNo", {
|
|
94
|
-
title: "Change your theme?",
|
|
95
|
-
question: `Selecting this template will undo any custom theme changes. Would you like to proceed?`,
|
|
96
|
-
hideModalOnClose: true,
|
|
97
|
-
showNegativeButton: false,
|
|
98
|
-
affirmativeResponseLabel: "Yes",
|
|
99
|
-
}, (err, response) => {
|
|
100
|
-
if (response.choice === "affirmative") {
|
|
101
|
-
affirmativeCallback();
|
|
102
|
-
}
|
|
103
|
-
});
|
|
104
|
-
},
|
|
105
|
-
updateSplashScreen: (file) => SmartDesktopClient.updateSplashScreen(file),
|
|
106
|
-
updateToolbarIcon: (file) => SmartDesktopClient.updateToolbarIcon(file),
|
|
107
|
-
updateTaskbarIcon: (file) => SmartDesktopClient.updateTaskbarIcon(file),
|
|
108
|
-
updateSystemTrayIcon: (file) => SmartDesktopClient.updateSystemTrayIcon(file),
|
|
109
|
-
updateInstallerIcon: (file) => SmartDesktopClient.updateInstallerIcon(file),
|
|
110
|
-
},
|
|
111
|
-
},
|
|
112
|
-
{
|
|
113
|
-
id: "toolbar",
|
|
114
|
-
icon: "toolbar",
|
|
115
|
-
name: "Toolbar",
|
|
116
|
-
component: Toolbar,
|
|
117
|
-
props: {
|
|
118
|
-
getApps: () => SmartDesktopClient.getApps(),
|
|
119
|
-
getMenus: () => SmartDesktopClient.getMenus(),
|
|
120
|
-
addMenu: (menuConfig) => SmartDesktopClient.addMenu(menuConfig),
|
|
121
|
-
updateMenu: (menuId, menuConfig) => SmartDesktopClient.updateMenu(menuId, menuConfig),
|
|
122
|
-
deleteMenu: (menuId) => SmartDesktopClient.deleteMenu(menuId),
|
|
123
|
-
},
|
|
124
|
-
},
|
|
125
|
-
{
|
|
126
|
-
id: "authentication",
|
|
127
|
-
icon: "key",
|
|
128
|
-
name: "Authentication",
|
|
129
|
-
component: Authentication,
|
|
130
|
-
props: {
|
|
131
|
-
getAuthenticationProviders: () => new Promise((resolve) => {
|
|
132
|
-
SmartDesktopClient.getAuthenticationProviders().then((providers) => {
|
|
133
|
-
resolve(providers);
|
|
134
|
-
});
|
|
135
|
-
}),
|
|
136
|
-
setAuthenticationProviders: (authenticationProviders) => SmartDesktopClient.setAuthenticationProviders(authenticationProviders),
|
|
137
|
-
testAuthenticationProvider: (provider) => new Promise((resolve, reject) => {
|
|
138
|
-
const scopeMaybe = provider.scope ? `&scope=${provider.scope}` : "";
|
|
139
|
-
const nonceMaybe = provider.nonce ? `&nonce=${Math.random()}` : "";
|
|
140
|
-
const url = `${provider.authorization_endpoint}?client_id=${provider.client_id}&response_type=token&redirect_uri=${provider.redirect_uri}&state=${createCSRF()}${scopeMaybe}${nonceMaybe}`;
|
|
141
|
-
FSBL.Clients.LauncherClient.spawn("authentication", {
|
|
142
|
-
url,
|
|
143
|
-
top: "center",
|
|
144
|
-
left: "center",
|
|
145
|
-
canGroup: false,
|
|
146
|
-
options: {
|
|
147
|
-
customData: {
|
|
148
|
-
foreign: {
|
|
149
|
-
services: {
|
|
150
|
-
windowService: {
|
|
151
|
-
allowTabbing: false,
|
|
152
|
-
allowSnapping: false,
|
|
153
|
-
allowGrouping: false,
|
|
154
|
-
},
|
|
155
|
-
},
|
|
156
|
-
},
|
|
157
|
-
authroizationUrl: url,
|
|
158
|
-
},
|
|
159
|
-
},
|
|
160
|
-
}, (err) => {
|
|
161
|
-
if (err) {
|
|
162
|
-
throw err;
|
|
163
|
-
}
|
|
164
|
-
});
|
|
165
|
-
FSBL.Clients.RouterClient.addListener("SDD-Auth-Test-Response", (error, response) => {
|
|
166
|
-
if (error || !response.data) {
|
|
167
|
-
reject(error || "Empty error response from OAuth");
|
|
168
|
-
}
|
|
169
|
-
else if (response.data.err) {
|
|
170
|
-
reject(response.data.err);
|
|
171
|
-
}
|
|
172
|
-
else {
|
|
173
|
-
resolve(null);
|
|
174
|
-
}
|
|
175
|
-
});
|
|
176
|
-
}),
|
|
177
|
-
},
|
|
178
|
-
},
|
|
179
|
-
],
|
|
180
|
-
},
|
|
181
|
-
{
|
|
182
|
-
showLabel: true,
|
|
183
|
-
label: "Deploy",
|
|
184
|
-
views: [
|
|
185
|
-
{
|
|
186
|
-
id: "export",
|
|
187
|
-
icon: "upload",
|
|
188
|
-
name: "Finish",
|
|
189
|
-
component: Export,
|
|
190
|
-
props: {
|
|
191
|
-
progressCheckInterval: 500,
|
|
192
|
-
getSDServerInfo,
|
|
193
|
-
getProjectConfig: () => SmartDesktopClient.projectConfig(),
|
|
194
|
-
createProjectZip: (projectName, targetPath = undefined) => SmartDesktopClient.createProjectZip(projectName || "default", targetPath),
|
|
195
|
-
publishToCosaicCloud: (uuid) => SmartDesktopClient.publishToCosaicCloud(uuid),
|
|
196
|
-
getPublishProgress: () => SmartDesktopClient.getPublishProgress(),
|
|
197
|
-
copyProjectFiles: (projectName, targetPath = undefined) => SmartDesktopClient.copyProjectFiles(projectName || "default", targetPath),
|
|
198
|
-
updateProjectSettings: (obj) => SmartDesktopClient.updateProjectSettings(obj),
|
|
199
|
-
},
|
|
200
|
-
},
|
|
201
|
-
],
|
|
202
|
-
},
|
|
203
|
-
];
|
|
1
|
+
export default [];
|
|
204
2
|
//# sourceMappingURL=views.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"views.js","sourceRoot":"","sources":["../../../../src/components/smartDesktopDesigner/common/views.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAqB,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,MAAM,EAAe,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,MAAM,EAAc,MAAM,WAAW,CAAC;AAE/C,OAAO,EAAE,cAAc,EAAuB,MAAM,mBAAmB,CAAC;AAExE,OAAO,EAAE,OAAO,EAAgB,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAA6B,MAAM,yBAAyB,CAAC;AAI1F,MAAM,kBAAkB,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;AAEjE,MAAM,eAAe,GAAG,CAAC,EAAO,EAAE,EAAE;IACnC,kBAAkB,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,CAAC,IAAS,EAAE,EAAE;QACvD,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,GAAQ,EAAE,SAAc,EAAE,EAAE;;YACtE,EAAE,iCACE,IAAI,KACP,MAAM,kCACF,IAAI,CAAC,MAAM,KACd,WAAW,EAAE,wCAAwC,EACrD,aAAa,EAAE,gCAAgC,EAC/C,WAAW,EAAE,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,WAAW,0CAAE,eAAe,EACpD,cAAc,EAAE,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,SAAS,0CAAE,cAAc,EACpD,iBAAiB,EAAE,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,iBAAiB,OAE/C,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,SAAS,UAAU;IAClB,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;IACzB,IAAI,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACtC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnE,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC;AACzB,CAAC;AAED,eAAe;IACd;QACC,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,EAAE;QACT,KAAK,EAAE;YACN;gBACC,EAAE,EAAE,iBAAiB;gBACrB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,OAAO;gBACb,SAAS,EAAE,cAAc;aACzB;SACD;KACD;IACD;QACC,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,MAAM;QACb,KAAK,EAAE;YACN;gBACC,EAAE,EAAE,cAAc;gBAClB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,aAAa;gBACnB,SAAS,EAAE,YAAY;gBACvB,KAAK,EAAqB;oBACzB,OAAO,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE;oBAC3C,MAAM,EAAE,CAAC,KAAa,EAAE,SAAwB,EAAE,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC;oBAChG,SAAS,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC;oBACjE,SAAS,EAAE,CAAC,KAAa,EAAE,SAAwB,EAAE,EAAE,CAAC,kBAAkB,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC;oBACtG,QAAQ,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,QAAQ,EAAE;oBAC7C,OAAO,EAAE,CAAC,UAAuB,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC,UAAU,CAAC;oBAC5E,UAAU,EAAE,CAAC,MAAc,EAAE,UAAuB,EAAE,EAAE,CAAC,kBAAkB,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC;oBAC1G,UAAU,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,kBAAkB,CAAC,UAAU,CAAC,MAAM,CAAC;oBACrE,WAAW,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,WAAW,EAAE;oBACnD,oBAAoB,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,oBAAoB,EAAE;oBACrE,0BAA0B,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,0BAA0B;oBACtF,2BAA2B,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,2BAA2B;iBACxF;aACD;YACD;gBACC,EAAE,EAAE,uBAAuB;gBAC3B,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,UAAU;gBAChB,SAAS,EAAE,oBAAoB;gBAC/B,KAAK,EAA6B;oBACjC,OAAO,EAAE,kBAAkB,CAAC,OAAO;oBACnC,SAAS,EAAE,kBAAkB,CAAC,SAAS;oBACvC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;oBAC7E,WAAW,EAAE,kBAAkB,CAAC,WAAW;oBAC3C,UAAU,EAAE,kBAAkB,CAAC,UAAU;oBACzC,aAAa,EAAE,kBAAkB,CAAC,aAAa;oBAC/C,aAAa,EAAE,kBAAkB,CAAC,aAAa;iBAC/C;aACD;SACD;KACD;IACD;QACC,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,uBAAuB;QAC9B,KAAK,EAAE;YACN;gBACC,EAAE,EAAE,QAAQ;gBACZ,IAAI,EAAE,cAAc;gBACpB,IAAI,EAAE,OAAO;gBACb,SAAS,EAAE,MAAM;gBACjB,KAAK,EAAE;oBACN,eAAe;oBACf,qBAAqB,EAAE,CAAC,GAAQ,EAAE,EAAE,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,GAAG,CAAC;oBAClF,YAAY,EAAE,CAAC,EAAU,EAAE,QAAgB,EAAE,EAAE;wBAC9C,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;oBACnE,CAAC;oBACD,UAAU,EAAE,CAAC,mBAA6B,EAAE,EAAE;wBAC7C,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAC9B,OAAO,EACP;4BACC,KAAK,EAAE,oBAAoB;4BAC3B,QAAQ,EAAE,wFAAwF;4BAClG,gBAAgB,EAAE,IAAI;4BACtB,kBAAkB,EAAE,KAAK;4BACzB,wBAAwB,EAAE,KAAK;yBAC/B,EACD,CAAC,GAAQ,EAAE,QAA4B,EAAE,EAAE;4BAC1C,IAAI,QAAQ,CAAC,MAAM,KAAK,aAAa,EAAE;gCACtC,mBAAmB,EAAE,CAAC;6BACtB;wBACF,CAAC,CACD,CAAC;oBACH,CAAC;oBACD,kBAAkB,EAAE,CAAC,IAAU,EAAE,EAAE,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,IAAI,CAAC;oBAC/E,iBAAiB,EAAE,CAAC,IAAU,EAAE,EAAE,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,IAAI,CAAC;oBAC7E,iBAAiB,EAAE,CAAC,IAAU,EAAE,EAAE,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,IAAI,CAAC;oBAC7E,oBAAoB,EAAE,CAAC,IAAU,EAAE,EAAE,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,IAAI,CAAC;oBACnF,mBAAmB,EAAE,CAAC,IAAU,EAAE,EAAE,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,IAAI,CAAC;iBACnE;aACf;YACD;gBACC,EAAE,EAAE,SAAS;gBACb,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;gBACf,SAAS,EAAE,OAAO;gBAClB,KAAK,EAAE;oBACN,OAAO,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE;oBAC3C,QAAQ,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,QAAQ,EAAE;oBAC7C,OAAO,EAAE,CAAC,UAAuB,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC,UAAU,CAAC;oBAC5E,UAAU,EAAE,CAAC,MAAc,EAAE,UAAuB,EAAE,EAAE,CAAC,kBAAkB,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC;oBAC1G,UAAU,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,kBAAkB,CAAC,UAAU,CAAC,MAAM,CAAC;iBACrD;aACjB;YACD;gBACC,EAAE,EAAE,gBAAgB;gBACpB,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,gBAAgB;gBACtB,SAAS,EAAE,cAAc;gBACzB,KAAK,EAAwB;oBAC5B,0BAA0B,EAAE,GAAG,EAAE,CAChC,IAAI,OAAO,CAA2B,CAAC,OAAO,EAAE,EAAE;wBACjD,kBAAkB,CAAC,0BAA0B,EAAE,CAAC,IAAI,CAAC,CAAC,SAAmC,EAAE,EAAE;4BAC5F,OAAO,CAAC,SAAS,CAAC,CAAC;wBACpB,CAAC,CAAC,CAAC;oBACJ,CAAC,CAAC;oBACH,0BAA0B,EAAE,CAAC,uBAA4B,EAAE,EAAE,CAC5D,kBAAkB,CAAC,0BAA0B,CAAC,uBAAuB,CAAC;oBACvE,0BAA0B,EAAE,CAAC,QAAgC,EAAE,EAAE,CAChE,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;wBAC/B,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACpE,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACnE,MAAM,GAAG,GAAG,GAAG,QAAQ,CAAC,sBAAsB,cAC7C,QAAQ,CAAC,SACV,qCACC,QAAQ,CAAC,YACV,UAAU,UAAU,EAAE,GAAG,UAAU,GAAG,UAAU,EAAE,CAAC;wBAEnD,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAChC,gBAAgB,EAChB;4BACC,GAAG;4BACH,GAAG,EAAE,QAAQ;4BACb,IAAI,EAAE,QAAQ;4BACd,QAAQ,EAAE,KAAK;4BACf,OAAO,EAAE;gCACR,UAAU,EAAE;oCACX,OAAO,EAAE;wCACR,QAAQ,EAAE;4CACT,aAAa,EAAE;gDACd,YAAY,EAAE,KAAK;gDACnB,aAAa,EAAE,KAAK;gDACpB,aAAa,EAAE,KAAK;6CACpB;yCACD;qCACD;oCACD,gBAAgB,EAAE,GAAG;iCACrB;6BACD;yBACD,EACD,CAAC,GAAQ,EAAE,EAAE;4BACZ,IAAI,GAAG,EAAE;gCACR,MAAM,GAAG,CAAC;6BACV;wBACF,CAAC,CACD,CAAC;wBAEF,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,wBAAwB,EAAE,CAAC,KAAU,EAAE,QAAa,EAAE,EAAE;4BAC7F,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;gCAC5B,MAAM,CAAC,KAAK,IAAI,iCAAiC,CAAC,CAAC;6BACnD;iCAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE;gCAC7B,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;6BAC1B;iCAAM;gCACN,OAAO,CAAC,IAAI,CAAC,CAAC;6BACd;wBACF,CAAC,CAAC,CAAC;oBACJ,CAAC,CAAC;iBACqB;aACzB;SACD;KACD;IACD;QACC,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE;YACN;gBACC,EAAE,EAAE,QAAQ;gBACZ,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,MAAM;gBACjB,KAAK,EAAgB;oBACpB,qBAAqB,EAAE,GAAG;oBAC1B,eAAe;oBACf,gBAAgB,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,aAAa,EAAE;oBAC1D,gBAAgB,EAAE,CAAC,WAAmB,EAAE,aAAiC,SAAS,EAAE,EAAE,CACrF,kBAAkB,CAAC,gBAAgB,CAAC,WAAW,IAAI,SAAS,EAAE,UAAU,CAAC;oBAC1E,oBAAoB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,IAAI,CAAC;oBAC7E,kBAAkB,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,kBAAkB,EAAE;oBACjE,gBAAgB,EAAE,CAAC,WAAmB,EAAE,aAAiC,SAAS,EAAE,EAAE,CACrF,kBAAkB,CAAC,gBAAgB,CAAC,WAAW,IAAI,SAAS,EAAE,UAAU,CAAC;oBAC1E,qBAAqB,EAAE,CAAC,GAAQ,EAAE,EAAE,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,GAAG,CAAC;iBAClE;aACjB;SACD;KACD;CACoB,CAAC","sourcesContent":["import { GettingStarted } from \"../GettingStarted\";\nimport { Applications, ApplicationsProps } from \"../Applications\";\nimport { Export, ExportProps } from \"../Export\";\nimport { Themes, ThemeProps } from \"../Themes\";\nimport { AuthenticationProvider, MenuObjType, ViewSectionInfo } from \"../../../types/smartDesktopDesignerTypes\";\nimport { Authentication, AuthenticationProps } from \"../Authentication\";\nimport { services } from \"@finsemble/finsemble-api\";\nimport { Toolbar, ToolbarProps } from \"../Toolbar\";\nimport { OptionalSettingsView, OptionalSettingsViewProps } from \"../OptionalSettingsView\";\n\ntype AppDefinition = services.Interop.types.AppDefinition;\n\nconst SmartDesktopClient = new FSBL.Clients.SmartDesktopClient();\n\nconst getSDServerInfo = (cb: any) => {\n\tSmartDesktopClient.getSDServerInfo().then((info: any) => {\n\t\tFSBL.Clients.ConfigClient.getValues(null, (err: any, newConfig: any) => {\n\t\t\tcb({\n\t\t\t\t...info,\n\t\t\t\texport: {\n\t\t\t\t\t...info.export,\n\t\t\t\t\ttoolbarIcon: \"/assets/img/Finsemble_Toolbar_Icon.png\",\n\t\t\t\t\tinstallerIcon: \"/assets/img/installer_icon.ico\",\n\t\t\t\t\ttaskbarIcon: newConfig?.startup_app?.applicationIcon,\n\t\t\t\t\tsystemTrayIcon: newConfig?.finsemble?.systemTrayIcon,\n\t\t\t\t\tsplashScreenImage: newConfig?.splashScreenImage,\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\t});\n};\n\nfunction createCSRF() {\n\tconst epoch = new Date();\n\tlet id = epoch.getTime().toString(36);\n\tid = id + Math.floor(Math.random() * Math.pow(36, 2)).toString(36);\n\treturn id.toUpperCase();\n}\n\nexport default [\n\t{\n\t\tshowLabel: false,\n\t\tlabel: \"\",\n\t\tviews: [\n\t\t\t{\n\t\t\t\tid: \"getting-started\",\n\t\t\t\ticon: \"flag\",\n\t\t\t\tname: \"Start\",\n\t\t\t\tcomponent: GettingStarted,\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tshowLabel: true,\n\t\tlabel: \"Apps\",\n\t\tviews: [\n\t\t\t{\n\t\t\t\tid: \"applications\",\n\t\t\t\ticon: \"window\",\n\t\t\t\tname: \"Manage apps\",\n\t\t\t\tcomponent: Applications,\n\t\t\t\tprops: <ApplicationsProps>{\n\t\t\t\t\tgetApps: () => SmartDesktopClient.getApps(),\n\t\t\t\t\taddApp: (appId: string, appConfig: AppDefinition) => SmartDesktopClient.addApp(appId, appConfig),\n\t\t\t\t\tdeleteApp: (appId: string) => SmartDesktopClient.deleteApp(appId),\n\t\t\t\t\tupdateApp: (appId: string, appConfig: AppDefinition) => SmartDesktopClient.updateApp(appId, appConfig),\n\t\t\t\t\tgetMenus: () => SmartDesktopClient.getMenus(),\n\t\t\t\t\taddMenu: (menuConfig: MenuObjType) => SmartDesktopClient.addMenu(menuConfig),\n\t\t\t\t\tupdateMenu: (menuId: string, menuConfig: MenuObjType) => SmartDesktopClient.updateMenu(menuId, menuConfig),\n\t\t\t\t\tdeleteMenu: (menuId: string) => SmartDesktopClient.deleteMenu(menuId),\n\t\t\t\t\tgetPreloads: () => SmartDesktopClient.getPreloads(),\n\t\t\t\t\tgetAppConfigTemplate: () => SmartDesktopClient.getAppConfigTemplate(),\n\t\t\t\t\tisInboundInteropAuthorized: FSBL.Clients.SmartDesktopClient.isInboundInteropAuthorized,\n\t\t\t\t\tisOutboundInteropAuthorized: FSBL.Clients.SmartDesktopClient.isOutboundInteropAuthorized,\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"applications-optional\",\n\t\t\t\ticon: \"code-block\",\n\t\t\t\tname: \"Optional\",\n\t\t\t\tcomponent: OptionalSettingsView,\n\t\t\t\tprops: <OptionalSettingsViewProps>{\n\t\t\t\t\tgetApps: SmartDesktopClient.getApps,\n\t\t\t\t\tupdateApp: SmartDesktopClient.updateApp,\n\t\t\t\t\tgetConfig: FSBL.Clients.ConfigClient.getValue.bind(FSBL.Clients.ConfigClient),\n\t\t\t\t\tgetPreloads: SmartDesktopClient.getPreloads,\n\t\t\t\t\taddPreload: SmartDesktopClient.addPreload,\n\t\t\t\t\tupdatePreload: SmartDesktopClient.updatePreload,\n\t\t\t\t\tdeletePreload: SmartDesktopClient.deletePreload,\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tshowLabel: true,\n\t\tlabel: \"Desktop Customization\",\n\t\tviews: [\n\t\t\t{\n\t\t\t\tid: \"themes\",\n\t\t\t\ticon: \"paint-roller\",\n\t\t\t\tname: \"Theme\",\n\t\t\t\tcomponent: Themes,\n\t\t\t\tprops: {\n\t\t\t\t\tgetSDServerInfo,\n\t\t\t\t\tupdateProjectSettings: (obj: any) => SmartDesktopClient.updateProjectSettings(obj),\n\t\t\t\t\tupdateThemes: (id: string, newValue: string) => {\n\t\t\t\t\t\tFSBL.Clients.SmartDesktopClient.updateThemeVariable(id, newValue);\n\t\t\t\t\t},\n\t\t\t\t\tareYouSure: (affirmativeCallback: Function) => {\n\t\t\t\t\t\tFSBL.Clients.DialogManager.open(\n\t\t\t\t\t\t\t\"yesNo\",\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: \"Change your theme?\",\n\t\t\t\t\t\t\t\tquestion: `Selecting this template will undo any custom theme changes. Would you like to proceed?`,\n\t\t\t\t\t\t\t\thideModalOnClose: true,\n\t\t\t\t\t\t\t\tshowNegativeButton: false,\n\t\t\t\t\t\t\t\taffirmativeResponseLabel: \"Yes\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t(err: any, response: { choice: string }) => {\n\t\t\t\t\t\t\t\tif (response.choice === \"affirmative\") {\n\t\t\t\t\t\t\t\t\taffirmativeCallback();\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},\n\t\t\t\t\tupdateSplashScreen: (file: File) => SmartDesktopClient.updateSplashScreen(file),\n\t\t\t\t\tupdateToolbarIcon: (file: File) => SmartDesktopClient.updateToolbarIcon(file),\n\t\t\t\t\tupdateTaskbarIcon: (file: File) => SmartDesktopClient.updateTaskbarIcon(file),\n\t\t\t\t\tupdateSystemTrayIcon: (file: File) => SmartDesktopClient.updateSystemTrayIcon(file),\n\t\t\t\t\tupdateInstallerIcon: (file: File) => SmartDesktopClient.updateInstallerIcon(file),\n\t\t\t\t} as ThemeProps,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"toolbar\",\n\t\t\t\ticon: \"toolbar\",\n\t\t\t\tname: \"Toolbar\",\n\t\t\t\tcomponent: Toolbar,\n\t\t\t\tprops: {\n\t\t\t\t\tgetApps: () => SmartDesktopClient.getApps(),\n\t\t\t\t\tgetMenus: () => SmartDesktopClient.getMenus(),\n\t\t\t\t\taddMenu: (menuConfig: MenuObjType) => SmartDesktopClient.addMenu(menuConfig),\n\t\t\t\t\tupdateMenu: (menuId: string, menuConfig: MenuObjType) => SmartDesktopClient.updateMenu(menuId, menuConfig),\n\t\t\t\t\tdeleteMenu: (menuId: string) => SmartDesktopClient.deleteMenu(menuId),\n\t\t\t\t} as ToolbarProps,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"authentication\",\n\t\t\t\ticon: \"key\",\n\t\t\t\tname: \"Authentication\",\n\t\t\t\tcomponent: Authentication,\n\t\t\t\tprops: (<AuthenticationProps>{\n\t\t\t\t\tgetAuthenticationProviders: () =>\n\t\t\t\t\t\tnew Promise<AuthenticationProvider[]>((resolve) => {\n\t\t\t\t\t\t\tSmartDesktopClient.getAuthenticationProviders().then((providers: AuthenticationProvider[]) => {\n\t\t\t\t\t\t\t\tresolve(providers);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}),\n\t\t\t\t\tsetAuthenticationProviders: (authenticationProviders: any) =>\n\t\t\t\t\t\tSmartDesktopClient.setAuthenticationProviders(authenticationProviders),\n\t\t\t\t\ttestAuthenticationProvider: (provider: AuthenticationProvider) =>\n\t\t\t\t\t\tnew Promise((resolve, reject) => {\n\t\t\t\t\t\t\tconst scopeMaybe = provider.scope ? `&scope=${provider.scope}` : \"\";\n\t\t\t\t\t\t\tconst nonceMaybe = provider.nonce ? `&nonce=${Math.random()}` : \"\";\n\t\t\t\t\t\t\tconst url = `${provider.authorization_endpoint}?client_id=${\n\t\t\t\t\t\t\t\tprovider.client_id\n\t\t\t\t\t\t\t}&response_type=token&redirect_uri=${\n\t\t\t\t\t\t\t\tprovider.redirect_uri\n\t\t\t\t\t\t\t}&state=${createCSRF()}${scopeMaybe}${nonceMaybe}`;\n\n\t\t\t\t\t\t\tFSBL.Clients.LauncherClient.spawn(\n\t\t\t\t\t\t\t\t\"authentication\",\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\t\t\ttop: \"center\",\n\t\t\t\t\t\t\t\t\tleft: \"center\",\n\t\t\t\t\t\t\t\t\tcanGroup: false,\n\t\t\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\t\t\tcustomData: {\n\t\t\t\t\t\t\t\t\t\t\tforeign: {\n\t\t\t\t\t\t\t\t\t\t\t\tservices: {\n\t\t\t\t\t\t\t\t\t\t\t\t\twindowService: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tallowTabbing: false,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tallowSnapping: false,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tallowGrouping: 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},\n\t\t\t\t\t\t\t\t\t\t\tauthroizationUrl: url,\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\t(err: any) => {\n\t\t\t\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\t\t\t\tthrow err;\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\n\t\t\t\t\t\t\tFSBL.Clients.RouterClient.addListener(\"SDD-Auth-Test-Response\", (error: any, response: any) => {\n\t\t\t\t\t\t\t\tif (error || !response.data) {\n\t\t\t\t\t\t\t\t\treject(error || \"Empty error response from OAuth\");\n\t\t\t\t\t\t\t\t} else if (response.data.err) {\n\t\t\t\t\t\t\t\t\treject(response.data.err);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tresolve(null);\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}) as AuthenticationProps,\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tshowLabel: true,\n\t\tlabel: \"Deploy\",\n\t\tviews: [\n\t\t\t{\n\t\t\t\tid: \"export\",\n\t\t\t\ticon: \"upload\",\n\t\t\t\tname: \"Finish\",\n\t\t\t\tcomponent: Export,\n\t\t\t\tprops: (<ExportProps>{\n\t\t\t\t\tprogressCheckInterval: 500,\n\t\t\t\t\tgetSDServerInfo,\n\t\t\t\t\tgetProjectConfig: () => SmartDesktopClient.projectConfig(),\n\t\t\t\t\tcreateProjectZip: (projectName: string, targetPath: string | undefined = undefined) =>\n\t\t\t\t\t\tSmartDesktopClient.createProjectZip(projectName || \"default\", targetPath),\n\t\t\t\t\tpublishToCosaicCloud: (uuid) => SmartDesktopClient.publishToCosaicCloud(uuid),\n\t\t\t\t\tgetPublishProgress: () => SmartDesktopClient.getPublishProgress(),\n\t\t\t\t\tcopyProjectFiles: (projectName: string, targetPath: string | undefined = undefined) =>\n\t\t\t\t\t\tSmartDesktopClient.copyProjectFiles(projectName || \"default\", targetPath),\n\t\t\t\t\tupdateProjectSettings: (obj: any) => SmartDesktopClient.updateProjectSettings(obj),\n\t\t\t\t}) as ExportProps,\n\t\t\t},\n\t\t],\n\t},\n] as ViewSectionInfo[];\n"]}
|
|
1
|
+
{"version":3,"file":"views.js","sourceRoot":"","sources":["../../../../src/components/smartDesktopDesigner/common/views.ts"],"names":[],"mappings":"AAEA,eAAe,EAAuB,CAAC","sourcesContent":["import { ViewSectionInfo } from \"../../../types/smartDesktopDesignerTypes\";\n\nexport default [] as ViewSectionInfo[];\n"]}
|
|
@@ -13,7 +13,7 @@ export const AutoArrange = ({ className, children }) => {
|
|
|
13
13
|
const [title, setTitle] = useState("Auto Arrange");
|
|
14
14
|
const [wrapperClasses, setWrapperClasses] = useState("finsemble-toolbar-button icon-only");
|
|
15
15
|
const { toggleAutoArrange } = useToolbar();
|
|
16
|
-
FSBL.Clients.RouterClient.subscribe("DockingService.
|
|
16
|
+
FSBL.Clients.RouterClient.subscribe("DockingService.AutoArrangeStatus", (err, res) => {
|
|
17
17
|
setIsAutoArranged(!Object.keys(res.data.isAutoArranged).every((key) => !res.data.isAutoArranged[key]));
|
|
18
18
|
});
|
|
19
19
|
useEffect(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoArrange.js","sourceRoot":"","sources":["../../../src/components/toolbar/AutoArrange.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGpD,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,CAC7B,6BAAK,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,WAAW,EAAC,OAAO,EAAC,KAAK,EAAC,KAAK,EAAC,4BAA4B;IACnG,2BAAG,EAAE,EAAC,SAAS,EAAC,MAAM,EAAC,MAAM,EAAC,WAAW,EAAC,GAAG,EAAC,IAAI,EAAC,MAAM,EAAC,QAAQ,EAAC,SAAS;QAC3E,2BAAG,EAAE,EAAC,0BAA0B,EAAC,SAAS,EAAC,iCAAiC,EAAC,IAAI,EAAC,SAAS;YAC1F,2BAAG,EAAE,EAAC,UAAU,EAAC,SAAS,EAAC,+BAA+B;gBACzD,8BACC,CAAC,EAAC,yOAAyO,EAC3O,EAAE,EAAC,gBAAgB,GACZ;gBACR,8BACC,CAAC,EAAC,4NAA4N,EAC9N,EAAE,EAAC,gBAAgB,GACZ;gBACR,8BACC,CAAC,EAAC,8MAA8M,EAChN,EAAE,EAAC,gBAAgB,GACZ;gBACR,8BACC,CAAC,EAAC,2NAA2N,EAC7N,EAAE,EAAC,gBAAgB,GACZ,CACL,CACD,CACD,CACC,CACN,CAAC;AAOF,MAAM,CAAC,MAAM,WAAW,GAAoD,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE;IACvG,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;IACnD,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,oCAAoC,CAAC,CAAC;IAE3F,MAAM,EAAE,iBAAiB,EAAE,GAAG,UAAU,EAAE,CAAC;IAE3C,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,kCAAkC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACpF,iBAAiB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACxG,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACd,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QACtD,iBAAiB,CAChB,sCAAsC,SAAS,IAAI,EAAE,IAAI,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAClG,CAAC;IACH,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAErB,OAAO,CACN,6BACC,SAAS,EAAE,cAAc,EACzB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,EAAE,CAAC,EACX,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,CAAC,CAAsC,EAAE,EAAE;YACrD,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;gBACvC,iBAAiB,EAAE,CAAC;aACpB;QACF,CAAC,IAEA,QAAQ,IAAI,oBAAC,eAAe,OAAG,CAC3B,CACN,CAAC;AACH,CAAC,CAAC","sourcesContent":["// disable eslint below because the svg in the icon definition will error if React is not imported\nimport React, { useEffect, useState } from \"react\"; // eslint-disable-line\nimport { useToolbar } from \"../../hooks/useToolbar\";\n\n// The default icon for AutoArrange.\nconst AutoArrangeIcon = () => (\n\t<svg width=\"16px\" height=\"16px\" viewBox=\"0 0 16 16\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<g id=\"Symbols\" stroke=\"none\" strokeWidth=\"1\" fill=\"none\" fillRule=\"evenodd\">\n\t\t\t<g id=\"atoms/icons/auto-arrange\" transform=\"translate(-9.000000, -9.000000)\" fill=\"#FFFFFF\">\n\t\t\t\t<g id=\"Arranged\" transform=\"translate(9.000000, 9.000000)\">\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M1,0 L6,0 C6.55228475,-1.01453063e-16 7,0.44771525 7,1 L7,6 C7,6.55228475 6.55228475,7 6,7 L1,7 C0.44771525,7 6.76353751e-17,6.55228475 0,6 L0,1 C-6.76353751e-17,0.44771525 0.44771525,1.01453063e-16 1,0 Z M1,1 L1,6 L6,6 L6,1 L1,1 Z\"\n\t\t\t\t\t\tid=\"Combined-Shape\"\n\t\t\t\t\t></path>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M10,0 L15,0 C15.5522847,-1.01453063e-16 16,0.44771525 16,1 L16,6 C16,6.55228475 15.5522847,7 15,7 L10,7 C9.44771525,7 9,6.55228475 9,6 L9,1 C9,0.44771525 9.44771525,1.01453063e-16 10,0 Z M10,1 L10,6 L15,6 L15,1 L10,1 Z\"\n\t\t\t\t\t\tid=\"Combined-Shape\"\n\t\t\t\t\t></path>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M10,9 L15,9 C15.5522847,9 16,9.44771525 16,10 L16,15 C16,15.5522847 15.5522847,16 15,16 L10,16 C9.44771525,16 9,15.5522847 9,15 L9,10 C9,9.44771525 9.44771525,9 10,9 Z M10,10 L10,15 L15,15 L15,10 L10,10 Z\"\n\t\t\t\t\t\tid=\"Combined-Shape\"\n\t\t\t\t\t></path>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M1,9 L6,9 C6.55228475,9 7,9.44771525 7,10 L7,15 C7,15.5522847 6.55228475,16 6,16 L1,16 C0.44771525,16 6.76353751e-17,15.5522847 0,15 L0,10 C-6.76353751e-17,9.44771525 0.44771525,9 1,9 Z M1,10 L1,15 L6,15 L6,10 L1,10 Z\"\n\t\t\t\t\t\tid=\"Combined-Shape\"\n\t\t\t\t\t></path>\n\t\t\t\t</g>\n\t\t\t</g>\n\t\t</g>\n\t</svg>\n);\n\n/**\n * Makes use of Finsemble's \"autoArrange\" functionality to organize windows into a grid-like pattern.\n * This button acts as a toggle, arranging and unarranging with subsequent clicks.\n * @param {string} [className] - An optional CSS className to append.\n */\nexport const AutoArrange: React.FunctionComponent<{ className?: string }> = ({ className, children }) => {\n\tconst [isAutoArranged, setIsAutoArranged] = useState(false);\n\tconst [title, setTitle] = useState(\"Auto Arrange\");\n\tconst [wrapperClasses, setWrapperClasses] = useState(\"finsemble-toolbar-button icon-only\");\n\n\tconst { toggleAutoArrange } = useToolbar();\n\n\tFSBL.Clients.RouterClient.subscribe(\"DockingService.
|
|
1
|
+
{"version":3,"file":"AutoArrange.js","sourceRoot":"","sources":["../../../src/components/toolbar/AutoArrange.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGpD,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,CAC7B,6BAAK,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,WAAW,EAAC,OAAO,EAAC,KAAK,EAAC,KAAK,EAAC,4BAA4B;IACnG,2BAAG,EAAE,EAAC,SAAS,EAAC,MAAM,EAAC,MAAM,EAAC,WAAW,EAAC,GAAG,EAAC,IAAI,EAAC,MAAM,EAAC,QAAQ,EAAC,SAAS;QAC3E,2BAAG,EAAE,EAAC,0BAA0B,EAAC,SAAS,EAAC,iCAAiC,EAAC,IAAI,EAAC,SAAS;YAC1F,2BAAG,EAAE,EAAC,UAAU,EAAC,SAAS,EAAC,+BAA+B;gBACzD,8BACC,CAAC,EAAC,yOAAyO,EAC3O,EAAE,EAAC,gBAAgB,GACZ;gBACR,8BACC,CAAC,EAAC,4NAA4N,EAC9N,EAAE,EAAC,gBAAgB,GACZ;gBACR,8BACC,CAAC,EAAC,8MAA8M,EAChN,EAAE,EAAC,gBAAgB,GACZ;gBACR,8BACC,CAAC,EAAC,2NAA2N,EAC7N,EAAE,EAAC,gBAAgB,GACZ,CACL,CACD,CACD,CACC,CACN,CAAC;AAOF,MAAM,CAAC,MAAM,WAAW,GAAoD,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE;IACvG,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;IACnD,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,oCAAoC,CAAC,CAAC;IAE3F,MAAM,EAAE,iBAAiB,EAAE,GAAG,UAAU,EAAE,CAAC;IAE3C,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,kCAAkC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACpF,iBAAiB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACxG,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACd,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QACtD,iBAAiB,CAChB,sCAAsC,SAAS,IAAI,EAAE,IAAI,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAClG,CAAC;IACH,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAErB,OAAO,CACN,6BACC,SAAS,EAAE,cAAc,EACzB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,EAAE,CAAC,EACX,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,CAAC,CAAsC,EAAE,EAAE;YACrD,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;gBACvC,iBAAiB,EAAE,CAAC;aACpB;QACF,CAAC,IAEA,QAAQ,IAAI,oBAAC,eAAe,OAAG,CAC3B,CACN,CAAC;AACH,CAAC,CAAC","sourcesContent":["// disable eslint below because the svg in the icon definition will error if React is not imported\nimport React, { useEffect, useState } from \"react\"; // eslint-disable-line\nimport { useToolbar } from \"../../hooks/useToolbar\";\n\n// The default icon for AutoArrange.\nconst AutoArrangeIcon = () => (\n\t<svg width=\"16px\" height=\"16px\" viewBox=\"0 0 16 16\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<g id=\"Symbols\" stroke=\"none\" strokeWidth=\"1\" fill=\"none\" fillRule=\"evenodd\">\n\t\t\t<g id=\"atoms/icons/auto-arrange\" transform=\"translate(-9.000000, -9.000000)\" fill=\"#FFFFFF\">\n\t\t\t\t<g id=\"Arranged\" transform=\"translate(9.000000, 9.000000)\">\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M1,0 L6,0 C6.55228475,-1.01453063e-16 7,0.44771525 7,1 L7,6 C7,6.55228475 6.55228475,7 6,7 L1,7 C0.44771525,7 6.76353751e-17,6.55228475 0,6 L0,1 C-6.76353751e-17,0.44771525 0.44771525,1.01453063e-16 1,0 Z M1,1 L1,6 L6,6 L6,1 L1,1 Z\"\n\t\t\t\t\t\tid=\"Combined-Shape\"\n\t\t\t\t\t></path>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M10,0 L15,0 C15.5522847,-1.01453063e-16 16,0.44771525 16,1 L16,6 C16,6.55228475 15.5522847,7 15,7 L10,7 C9.44771525,7 9,6.55228475 9,6 L9,1 C9,0.44771525 9.44771525,1.01453063e-16 10,0 Z M10,1 L10,6 L15,6 L15,1 L10,1 Z\"\n\t\t\t\t\t\tid=\"Combined-Shape\"\n\t\t\t\t\t></path>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M10,9 L15,9 C15.5522847,9 16,9.44771525 16,10 L16,15 C16,15.5522847 15.5522847,16 15,16 L10,16 C9.44771525,16 9,15.5522847 9,15 L9,10 C9,9.44771525 9.44771525,9 10,9 Z M10,10 L10,15 L15,15 L15,10 L10,10 Z\"\n\t\t\t\t\t\tid=\"Combined-Shape\"\n\t\t\t\t\t></path>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M1,9 L6,9 C6.55228475,9 7,9.44771525 7,10 L7,15 C7,15.5522847 6.55228475,16 6,16 L1,16 C0.44771525,16 6.76353751e-17,15.5522847 0,15 L0,10 C-6.76353751e-17,9.44771525 0.44771525,9 1,9 Z M1,10 L1,15 L6,15 L6,10 L1,10 Z\"\n\t\t\t\t\t\tid=\"Combined-Shape\"\n\t\t\t\t\t></path>\n\t\t\t\t</g>\n\t\t\t</g>\n\t\t</g>\n\t</svg>\n);\n\n/**\n * Makes use of Finsemble's \"autoArrange\" functionality to organize windows into a grid-like pattern.\n * This button acts as a toggle, arranging and unarranging with subsequent clicks.\n * @param {string} [className] - An optional CSS className to append.\n */\nexport const AutoArrange: React.FunctionComponent<{ className?: string }> = ({ className, children }) => {\n\tconst [isAutoArranged, setIsAutoArranged] = useState(false);\n\tconst [title, setTitle] = useState(\"Auto Arrange\");\n\tconst [wrapperClasses, setWrapperClasses] = useState(\"finsemble-toolbar-button icon-only\");\n\n\tconst { toggleAutoArrange } = useToolbar();\n\n\tFSBL.Clients.RouterClient.subscribe(\"DockingService.AutoArrangeStatus\", (err, res) => {\n\t\tsetIsAutoArranged(!Object.keys(res.data.isAutoArranged).every((key) => !res.data.isAutoArranged[key]));\n\t});\n\n\tuseEffect(() => {\n\t\tsetTitle(isAutoArranged ? \"Restore\" : \"Auto Arrange\");\n\t\tsetWrapperClasses(\n\t\t\t`finsemble-toolbar-button icon-only ${className || \"\"} ${isAutoArranged ? \"selected\" : \"\"}`.trim()\n\t\t);\n\t}, [isAutoArranged]);\n\n\treturn (\n\t\t<div\n\t\t\tclassName={wrapperClasses}\n\t\t\ttitle={title}\n\t\t\tonClick={toggleAutoArrange}\n\t\t\ttabIndex={0}\n\t\t\trole=\"button\"\n\t\t\tonKeyDown={(e: React.KeyboardEvent<HTMLDivElement>) => {\n\t\t\t\tif ([\"Enter\", \"Space\"].includes(e.key)) {\n\t\t\t\t\ttoggleAutoArrange();\n\t\t\t\t}\n\t\t\t}}\n\t\t>\n\t\t\t{children || <AutoArrangeIcon />}\n\t\t</div>\n\t);\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { mount } from "enzyme";
|
|
3
|
+
import { describe, it } from "mocha";
|
|
4
|
+
import { expect } from "chai";
|
|
5
|
+
import sinon from "sinon";
|
|
6
|
+
import { Basic } from "./AutoArrange.stories";
|
|
7
|
+
import addons, { mockChannel } from "@storybook/addons";
|
|
8
|
+
addons.setChannel(mockChannel());
|
|
9
|
+
describe("<AutoArrange/>", () => {
|
|
10
|
+
afterEach(() => {
|
|
11
|
+
sinon.restore();
|
|
12
|
+
});
|
|
13
|
+
it("should display icon", () => {
|
|
14
|
+
const wrapper = mount(React.createElement(Basic, Object.assign({}, Basic.args)));
|
|
15
|
+
expect(wrapper.find("svg").exists()).to.be.true;
|
|
16
|
+
});
|
|
17
|
+
it("should call auto-arrange action when clicked", () => {
|
|
18
|
+
const buttonSpy = sinon.spy(Basic.args, "action");
|
|
19
|
+
const wrapper = mount(React.createElement(Basic, Object.assign({}, Basic.args)));
|
|
20
|
+
wrapper.find(".finsemble-toolbar-button").first().simulate("click");
|
|
21
|
+
expect(buttonSpy.calledOnce).to.be.true;
|
|
22
|
+
});
|
|
23
|
+
it("should call auto-arrange action when user presses Enter", () => {
|
|
24
|
+
const buttonSpy = sinon.spy(Basic.args, "action");
|
|
25
|
+
const wrapper = mount(React.createElement(Basic, Object.assign({}, Basic.args)));
|
|
26
|
+
wrapper.find(".finsemble-toolbar-button").first().simulate("keydown", {
|
|
27
|
+
key: "Enter",
|
|
28
|
+
});
|
|
29
|
+
expect(buttonSpy.calledOnce).to.be.true;
|
|
30
|
+
});
|
|
31
|
+
it("should call auto-arrange action when user presses Space", () => {
|
|
32
|
+
const buttonSpy = sinon.spy(Basic.args, "action");
|
|
33
|
+
const wrapper = mount(React.createElement(Basic, Object.assign({}, Basic.args)));
|
|
34
|
+
wrapper.find(".finsemble-toolbar-button").first().simulate("keydown", {
|
|
35
|
+
key: "Space",
|
|
36
|
+
});
|
|
37
|
+
expect(buttonSpy.calledOnce).to.be.true;
|
|
38
|
+
});
|
|
39
|
+
it("should not call auto-arrange action when user presses a character other than Enter or Space", () => {
|
|
40
|
+
const buttonSpy = sinon.spy(Basic.args, "action");
|
|
41
|
+
const wrapper = mount(React.createElement(Basic, Object.assign({}, Basic.args)));
|
|
42
|
+
wrapper.find(".finsemble-toolbar-button").first().simulate("keydown", {
|
|
43
|
+
key: "a",
|
|
44
|
+
});
|
|
45
|
+
expect(buttonSpy.calledOnce).to.be.false;
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
//# sourceMappingURL=AutoArrange.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AutoArrange.spec.js","sourceRoot":"","sources":["../../../src/components/toolbar/AutoArrange.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { mount } from \"enzyme\";\nimport { describe, it } from \"mocha\";\nimport { expect } from \"chai\";\nimport sinon from \"sinon\";\nimport { Basic } from \"./AutoArrange.stories\";\n\n// Necessary to allow sinon to work with mocked actions (which are shown in the Actions panel in Storybook)\nimport addons, { mockChannel } from \"@storybook/addons\";\naddons.setChannel(mockChannel());\n\ndescribe(\"<AutoArrange/>\", () => {\n\tafterEach(() => {\n\t\tsinon.restore();\n\t});\n\tit(\"should display icon\", () => {\n\t\tconst wrapper = mount(<Basic {...Basic.args} />);\n\t\texpect(wrapper.find(\"svg\").exists()).to.be.true;\n\t});\n\tit(\"should call auto-arrange action when clicked\", () => {\n\t\tconst buttonSpy = sinon.spy(Basic.args as any, \"action\");\n\t\tconst wrapper = mount(<Basic {...Basic.args} />);\n\t\twrapper.find(\".finsemble-toolbar-button\").first().simulate(\"click\");\n\t\texpect(buttonSpy.calledOnce).to.be.true;\n\t});\n\tit(\"should call auto-arrange action when user presses Enter\", () => {\n\t\tconst buttonSpy = sinon.spy(Basic.args as any, \"action\");\n\t\tconst wrapper = mount(<Basic {...Basic.args} />);\n\t\twrapper.find(\".finsemble-toolbar-button\").first().simulate(\"keydown\", {\n\t\t\tkey: \"Enter\",\n\t\t});\n\t\texpect(buttonSpy.calledOnce).to.be.true;\n\t});\n\tit(\"should call auto-arrange action when user presses Space\", () => {\n\t\tconst buttonSpy = sinon.spy(Basic.args as any, \"action\");\n\t\tconst wrapper = mount(<Basic {...Basic.args} />);\n\t\twrapper.find(\".finsemble-toolbar-button\").first().simulate(\"keydown\", {\n\t\t\tkey: \"Space\",\n\t\t});\n\t\texpect(buttonSpy.calledOnce).to.be.true;\n\t});\n\tit(\"should not call auto-arrange action when user presses a character other than Enter or Space\", () => {\n\t\tconst buttonSpy = sinon.spy(Basic.args as any, \"action\");\n\t\tconst wrapper = mount(<Basic {...Basic.args} />);\n\t\twrapper.find(\".finsemble-toolbar-button\").first().simulate(\"keydown\", {\n\t\t\tkey: \"a\",\n\t\t});\n\t\texpect(buttonSpy.calledOnce).to.be.false;\n\t});\n});\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Story } from "@storybook/react/types-6-0";
|
|
3
|
+
import "../../assets/css/toolbar.css";
|
|
4
|
+
declare const _default: {
|
|
5
|
+
title: string;
|
|
6
|
+
component: React.FunctionComponent<{
|
|
7
|
+
className?: string | undefined;
|
|
8
|
+
}>;
|
|
9
|
+
};
|
|
10
|
+
export default _default;
|
|
11
|
+
export declare const Basic: Story<any>;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { AutoArrange } from "./AutoArrange";
|
|
3
|
+
import { initFSBL } from "../common/helpers";
|
|
4
|
+
import { FinsembleProvider } from "../FinsembleProvider";
|
|
5
|
+
import { action } from "@storybook/addon-actions";
|
|
6
|
+
import "../../assets/css/toolbar.css";
|
|
7
|
+
export default {
|
|
8
|
+
title: "Toolbar/AutoArrange",
|
|
9
|
+
component: AutoArrange,
|
|
10
|
+
};
|
|
11
|
+
const Template = (args) => {
|
|
12
|
+
initFSBL(window);
|
|
13
|
+
FSBL.Clients.WorkspaceClient.autoArrange = args.action;
|
|
14
|
+
return (React.createElement(FinsembleProvider, null,
|
|
15
|
+
React.createElement(AutoArrange, null)));
|
|
16
|
+
};
|
|
17
|
+
export const Basic = Template.bind({});
|
|
18
|
+
Basic.args = {
|
|
19
|
+
action: action("auto arrange"),
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=AutoArrange.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AutoArrange.stories.js","sourceRoot":"","sources":["../../../src/components/toolbar/AutoArrange.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,8BAA8B,CAAC;AAEtC,eAAe;IACd,KAAK,EAAE,qBAAqB;IAC5B,SAAS,EAAE,WAAW;CACtB,CAAC;AAEF,MAAM,QAAQ,GAAe,CAAC,IAAS,EAAE,EAAE;IAC1C,QAAQ,CAAC,MAAM,CAAC,CAAC;IAGjB,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC;IAEvD,OAAO,CACN,oBAAC,iBAAiB;QACjB,oBAAC,WAAW,OAAG,CACI,CACpB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACvC,KAAK,CAAC,IAAI,GAAG;IACZ,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;CAC9B,CAAC","sourcesContent":["import React from \"react\";\nimport { AutoArrange } from \"./AutoArrange\";\nimport { Story } from \"@storybook/react/types-6-0\";\nimport { initFSBL } from \"../common/helpers\";\nimport { FinsembleProvider } from \"../FinsembleProvider\";\nimport { action } from \"@storybook/addon-actions\";\nimport \"../../assets/css/toolbar.css\";\n\nexport default {\n\ttitle: \"Toolbar/AutoArrange\",\n\tcomponent: AutoArrange,\n};\n\nconst Template: Story<any> = (args: any) => {\n\tinitFSBL(window);\n\n\t// Overwrite mockup for testing purposes\n\tFSBL.Clients.WorkspaceClient.autoArrange = args.action;\n\n\treturn (\n\t\t<FinsembleProvider>\n\t\t\t<AutoArrange />\n\t\t</FinsembleProvider>\n\t);\n};\n\nexport const Basic = Template.bind({});\nBasic.args = {\n\taction: action(\"auto arrange\"),\n};\n"]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
const SddIcon = () => (React.createElement("svg", { width: "15px", height: "15px", version: "1.1", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 100 100" },
|
|
3
|
+
React.createElement("g", null,
|
|
4
|
+
React.createElement("path", { d: "M48,98.4c-0.5,0-1.1-0.1-1.5-0.4L17,83.6c-1.1-0.6-1.9-1.7-1.9-2.9c-0.1-1.2,0.5-2.4,1.5-3.1L71.2,41\n\t\t\t\tc1-0.7,2.4-0.8,3.5-0.2c1.1,0.6,1.9,1.7,1.9,2.9l2.2,32.8c0.1,1.2-0.5,2.4-1.5,3.1L50,97.9C49.4,98.2,48.7,98.4,48,98.4z M25.5,80\n\t\t\t\tl22.2,10.9l23.9-16l-1.6-24.7L25.5,80z" }),
|
|
5
|
+
React.createElement("path", { d: "M26.8,59.6c-0.5,0-1.1-0.1-1.5-0.4c-1.1-0.6-1.9-1.7-1.9-2.9l-2.2-32.8c-0.1-1.2,0.5-2.4,1.5-3.1L50,2.1\n\t\t\t\tc1-0.7,2.4-0.8,3.5-0.2L83,16.4c1.1,0.6,1.9,1.7,1.9,2.9s-0.5,2.4-1.5,3.1L28.8,59C28.2,59.4,27.5,59.6,26.8,59.6z M28.3,25.1\n\t\t\t\tl1.6,24.7L74.5,20L52.2,9.1L28.3,25.1z" }))));
|
|
6
|
+
export const SddButton = () => {
|
|
7
|
+
const [showSddButton, setShowSddButton] = React.useState(false);
|
|
8
|
+
React.useEffect(() => {
|
|
9
|
+
FSBL.System.getFEAInfo(({ sddEnabled }) => {
|
|
10
|
+
setShowSddButton(sddEnabled);
|
|
11
|
+
});
|
|
12
|
+
}, []);
|
|
13
|
+
const clickEvent = () => {
|
|
14
|
+
FSBL.Clients.LauncherClient.spawn("smartDesktopDesigner", { addToWorkspace: false });
|
|
15
|
+
};
|
|
16
|
+
return showSddButton ? (React.createElement("span", { title: "Smart Desktop Designer", className: "finsemble-toolbar-button left", role: "button", tabIndex: 0, onClick: clickEvent, onKeyDown: (e) => {
|
|
17
|
+
if (e.key === "Enter") {
|
|
18
|
+
clickEvent();
|
|
19
|
+
}
|
|
20
|
+
} },
|
|
21
|
+
React.createElement(SddIcon, null))) : (React.createElement(React.Fragment, null));
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=SddButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SddButton.js","sourceRoot":"","sources":["../../../src/components/toolbar/SddButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,CACrB,6BAAK,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,KAAK,EAAC,KAAK,EAAC,4BAA4B,EAAC,OAAO,EAAC,aAAa;IACrG;QACC,8BACC,CAAC,EAAC,yRAEoC,GACrC;QACF,8BACC,CAAC,EAAC,wRAEoC,GACrC,CACC,CACC,CACN,CAAC;AAMF,MAAM,CAAC,MAAM,SAAS,GAA4B,GAAG,EAAE;IACtD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEhE,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACpB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,UAAU,EAA2B,EAAE,EAAE;YAClE,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,UAAU,GAAG,GAAG,EAAE;QACvB,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,sBAAsB,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;IACtF,CAAC,CAAC;IAEF,OAAO,aAAa,CAAC,CAAC,CAAC,CACtB,8BACC,KAAK,EAAC,wBAAwB,EAC9B,SAAS,EAAC,+BAA+B,EACzC,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,CAAC,EACX,OAAO,EAAE,UAAU,EACnB,SAAS,EAAE,CAAC,CAAsB,EAAE,EAAE;YACrC,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE;gBACtB,UAAU,EAAE,CAAC;aACb;QACF,CAAC;QAED,oBAAC,OAAO,OAAG,CACL,CACP,CAAC,CAAC,CAAC,CACH,yCAAK,CACL,CAAC;AACH,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\n\nconst SddIcon = () => (\n\t<svg width=\"15px\" height=\"15px\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\">\n\t\t<g>\n\t\t\t<path\n\t\t\t\td=\"M48,98.4c-0.5,0-1.1-0.1-1.5-0.4L17,83.6c-1.1-0.6-1.9-1.7-1.9-2.9c-0.1-1.2,0.5-2.4,1.5-3.1L71.2,41\n\t\t\t\tc1-0.7,2.4-0.8,3.5-0.2c1.1,0.6,1.9,1.7,1.9,2.9l2.2,32.8c0.1,1.2-0.5,2.4-1.5,3.1L50,97.9C49.4,98.2,48.7,98.4,48,98.4z M25.5,80\n\t\t\t\tl22.2,10.9l23.9-16l-1.6-24.7L25.5,80z\"\n\t\t\t/>\n\t\t\t<path\n\t\t\t\td=\"M26.8,59.6c-0.5,0-1.1-0.1-1.5-0.4c-1.1-0.6-1.9-1.7-1.9-2.9l-2.2-32.8c-0.1-1.2,0.5-2.4,1.5-3.1L50,2.1\n\t\t\t\tc1-0.7,2.4-0.8,3.5-0.2L83,16.4c1.1,0.6,1.9,1.7,1.9,2.9s-0.5,2.4-1.5,3.1L28.8,59C28.2,59.4,27.5,59.6,26.8,59.6z M28.3,25.1\n\t\t\t\tl1.6,24.7L74.5,20L52.2,9.1L28.3,25.1z\"\n\t\t\t/>\n\t\t</g>\n\t</svg>\n);\n\n/**\n * A button that launches the Smart Desktop Designer.\n * If the SDD is not enabled, the button does not appear.\n */\nexport const SddButton: React.FunctionComponent = () => {\n\tconst [showSddButton, setShowSddButton] = React.useState(false);\n\n\tReact.useEffect(() => {\n\t\tFSBL.System.getFEAInfo(({ sddEnabled }: { sddEnabled: boolean }) => {\n\t\t\tsetShowSddButton(sddEnabled);\n\t\t});\n\t}, []);\n\n\tconst clickEvent = () => {\n\t\tFSBL.Clients.LauncherClient.spawn(\"smartDesktopDesigner\", { addToWorkspace: false });\n\t};\n\n\treturn showSddButton ? (\n\t\t<span\n\t\t\ttitle=\"Smart Desktop Designer\"\n\t\t\tclassName=\"finsemble-toolbar-button left\"\n\t\t\trole=\"button\"\n\t\t\ttabIndex={0}\n\t\t\tonClick={clickEvent}\n\t\t\tonKeyDown={(e: React.KeyboardEvent) => {\n\t\t\t\tif (e.key === \"Enter\") {\n\t\t\t\t\tclickEvent();\n\t\t\t\t}\n\t\t\t}}\n\t\t>\n\t\t\t<SddIcon />\n\t\t</span>\n\t) : (\n\t\t<></>\n\t);\n};\n"]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import { useToolbar } from "../../hooks/useToolbar";
|
|
3
3
|
import { useHotkey } from "../../hooks/useHotkey";
|
|
4
|
+
import { SddButton } from "./SddButton";
|
|
4
5
|
import "../../assets/css/toolbar.css";
|
|
5
6
|
import FloatingFocus from "@q42/floating-focus-a11y";
|
|
6
7
|
new FloatingFocus();
|
|
@@ -8,6 +9,8 @@ export const ToolbarShell = ({ hotkeyShow, hotkeyHide, children }) => {
|
|
|
8
9
|
const { hideToolbar, showToolbar } = useToolbar();
|
|
9
10
|
useHotkey(hotkeyShow, showToolbar);
|
|
10
11
|
useHotkey(hotkeyHide, hideToolbar);
|
|
11
|
-
return React.createElement("div", { className: "finsemble-toolbar" },
|
|
12
|
+
return (React.createElement("div", { className: "finsemble-toolbar" },
|
|
13
|
+
children,
|
|
14
|
+
React.createElement(SddButton, null)));
|
|
12
15
|
};
|
|
13
16
|
//# sourceMappingURL=ToolbarShell.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolbarShell.js","sourceRoot":"","sources":["../../../src/components/toolbar/ToolbarShell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,8BAA8B,CAAC;AAEtC,OAAO,aAAa,MAAM,0BAA0B,CAAC;AAGrD,IAAI,aAAa,EAAE,CAAC;AAYpB,MAAM,CAAC,MAAM,YAAY,GAA+C,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE;IAChH,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,UAAU,EAAE,CAAC;IAClD,SAAS,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IACnC,SAAS,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAEnC,OAAO,6BAAK,SAAS,EAAC,mBAAmB,
|
|
1
|
+
{"version":3,"file":"ToolbarShell.js","sourceRoot":"","sources":["../../../src/components/toolbar/ToolbarShell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,8BAA8B,CAAC;AAEtC,OAAO,aAAa,MAAM,0BAA0B,CAAC;AAGrD,IAAI,aAAa,EAAE,CAAC;AAYpB,MAAM,CAAC,MAAM,YAAY,GAA+C,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE;IAChH,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,UAAU,EAAE,CAAC;IAClD,SAAS,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IACnC,SAAS,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAEnC,OAAO,CACN,6BAAK,SAAS,EAAC,mBAAmB;QAChC,QAAQ;QACT,oBAAC,SAAS,OAAG,CACR,CACN,CAAC;AACH,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\nimport { HotkeyCombination } from \"../../types/hotkeyTypes\";\nimport { useToolbar } from \"../../hooks/useToolbar\";\nimport { useHotkey } from \"../../hooks/useHotkey\";\nimport { SddButton } from \"./SddButton\";\nimport \"../../assets/css/toolbar.css\";\n\nimport FloatingFocus from \"@q42/floating-focus-a11y\";\n// The package FloatingFocus injects a focus indicator that moves around the page, but only for\n// keyboard users. (Mouse users don't see the indicator.) All that needs to be done is to envoke it.\nnew FloatingFocus();\n// If you want to make changes to the indicator, the styles are being maintained in assets/css/focus.css\n\ntype ToolbarShellProps = {\n\thotkeyShow?: HotkeyCombination;\n\thotkeyHide?: HotkeyCombination;\n};\n/**\n * The ToolbarShell registers hotkeys, communicates with Finsemble core, sets up the toolbar size, and provides other functions of the Finsemble toolbar.\n * @param hotkeyShow [array<string>] - A hotkey combination to show the toolbar\n * @param hotkeyHide [array<string>] - A hotkey combination to hide the toolbar\n */\nexport const ToolbarShell: React.FunctionComponent<ToolbarShellProps> = ({ hotkeyShow, hotkeyHide, children }) => {\n\tconst { hideToolbar, showToolbar } = useToolbar();\n\tuseHotkey(hotkeyShow, showToolbar);\n\tuseHotkey(hotkeyHide, hideToolbar);\n\n\treturn (\n\t\t<div className=\"finsemble-toolbar\">\n\t\t\t{children}\n\t\t\t<SddButton />\n\t\t</div>\n\t);\n};\n"]}
|
|
@@ -102,13 +102,14 @@ export default class AppActionsMenu extends React.Component {
|
|
|
102
102
|
storeActions.deleteApp(this.props.app.appID);
|
|
103
103
|
}
|
|
104
104
|
renderList() {
|
|
105
|
+
var _a;
|
|
105
106
|
const apps = storeActions.getAllApps();
|
|
106
107
|
const app = apps[this.props.app.appID];
|
|
107
108
|
const { folder } = this.props;
|
|
108
109
|
return (React.createElement("div", { className: "actions-menu", style: { right: 0 } },
|
|
109
110
|
React.createElement("ul", null,
|
|
110
111
|
React.createElement("li", null,
|
|
111
|
-
React.createElement(ToggleFavoriteDropdown, { id: app.name, category: "Application", name: app.name, icon: app.icon, instance: this })),
|
|
112
|
+
React.createElement(ToggleFavoriteDropdown, { id: app.name, category: "Application", name: (_a = app.displayName) !== null && _a !== void 0 ? _a : app.name, icon: app.icon, instance: this })),
|
|
112
113
|
app.source && app.source === FDC3 && React.createElement("li", { onClick: this.onViewInfo }, "View Info"),
|
|
113
114
|
!app.source && app.canDelete && React.createElement(DeleteApp, { name: app.name, id: this.props.app.appID }),
|
|
114
115
|
[ADVANCED_APP_LAUNCHER, FAVORITES].indexOf(folder.name) === -1 && (React.createElement("li", { onClick: this.onRemove },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppActionsMenu.js","sourceRoot":"","sources":["../../../../../src/components/toolbar/advancedAppLauncher/components/AppActionsMenu.tsx"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright 2018 by ChartIQ, Inc.\n * All rights reserved.\n *\n */\n\nimport React from \"react\";\nimport storeActions from \"../stores/StoreActions\";\nimport { ToggleFavoriteDropdown } from \"./ToggleFavoriteDropdown\";\nimport { useFavorites } from \"../../../../hooks/useFavorites\";\n\nconst ADVANCED_APP_LAUNCHER = \"Advanced App Launcher\";\nconst FAVORITES = \"Favorites\";\nconst FDC3 = \"FDC3\";\n\ninterface DeleteAppProps {\n\tname: string;\n\tid: any;\n}\n\n/**\n * Handles deleting a component and removing it from favorites if necessary\n * @param {*} props\n */\nconst DeleteApp = (props: DeleteAppProps) => {\n\tconst { isFavorited, removeFavorite } = useFavorites();\n\tconst { name, id } = props;\n\tconst removeFavoriteAndDelete = () => {\n\t\tif (isFavorited(name)) {\n\t\t\tremoveFavorite(name);\n\t\t}\n\t\tstoreActions.deleteApp(id);\n\t};\n\treturn <li onClick={removeFavoriteAndDelete}>Delete App</li>;\n};\n\n/**\n * This method checks an element and all of its parents to determine whether any of them\n * contain a particular class name. We use this to determine whether the user is clicking\n * inside or outside of the actions menu pop up.\n * @param {HTMLElement} element\n * @param {string} className\n */\nconst someParentHasClassName = (element: HTMLElement, className: string): any => {\n\tif (element.className && element.className.split(\" \").indexOf(className) >= 0) return true;\n\treturn element.parentNode && someParentHasClassName(element.parentNode as HTMLElement, className);\n};\n\ninterface IProps {\n\tapp: any;\n\tfolder: any;\n}\ninterface IState {\n\tisVisible: boolean;\n}\n\n/**\n * Displays a list of actions like 'View info', 'Add to favorite'\n * etc on each app in the list\n */\nexport default class AppActionsMenu extends React.Component<IProps, IState> {\n\tmenuRef: HTMLDivElement | null;\n\n\tconstructor(props: IProps) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tisVisible: false,\n\t\t};\n\t\t// Bind correct context\n\t\tthis.onViewInfo = this.onViewInfo.bind(this);\n\t\tthis.toggleMenu = this.toggleMenu.bind(this);\n\t\tthis.onRemove = this.onRemove.bind(this);\n\t\tthis.setMenuRef = this.setMenuRef.bind(this);\n\t\tthis.deleteApp = this.deleteApp.bind(this);\n\t\tthis.handleClickOutside = this.handleClickOutside.bind(this);\n\t\tthis.handleWindowBlurred = this.handleWindowBlurred.bind(this);\n\t\tthis.menuRef = null;\n\t}\n\n\tcomponentDidMount() {\n\t\tdocument.addEventListener(\"portal:click\", this.handleClickOutside);\n\t\t// Mody on 12/12/19\n\t\t// window.blur seems to work much better than finsembleWindow's\n\t\t// blurred event. The first, is only fired when you actually click\n\t\t// away from the window, while finsembleWindow's blurred fires even\n\t\t// when you click inside the window, causing possible race conditions.\n\t\twindow.addEventListener(\"blur\", this.handleWindowBlurred);\n\t}\n\n\tcomponentWillUnmount() {\n\t\tdocument.removeEventListener(\"portal:click\", this.handleClickOutside);\n\t\twindow.removeEventListener(\"blur\", this.handleWindowBlurred);\n\t}\n\n\ttoggleMenu(e?: React.MouseEvent<HTMLElement>) {\n\t\tif (e) {\n\t\t\te.stopPropagation();\n\t\t\te.preventDefault();\n\t\t}\n\t\tthis.setState({\n\t\t\tisVisible: !this.state.isVisible,\n\t\t});\n\t}\n\n\t/**\n\t * Opens app catalog and switches to the page when you see all\n\t * the details about the app\n\t */\n\tonViewInfo() {\n\t\tthis.toggleMenu();\n\t\tFSBL.Clients.LauncherClient.showWindow(\n\t\t\t{\n\t\t\t\tcomponentType: \"App Catalog\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tmonitor: \"mine\",\n\t\t\t\tstaggerPixels: 0,\n\t\t\t\tspawnIfNotFound: true,\n\t\t\t\tleft: \"center\",\n\t\t\t\ttop: \"center\",\n\t\t\t},\n\t\t\t() => {\n\t\t\t\t// Publish this event so that catalog knows\n\t\t\t\t// what app we want to view\n\n\t\t\t\t// NOTE: While not ideal, without a small delay (when having to launch the app catalog) the app catalog wont receive the message as it will still be initializing\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tFSBL.Clients.RouterClient.transmit(\"viewApp\", {\n\t\t\t\t\t\tapp: this.props.app,\n\t\t\t\t\t});\n\t\t\t\t}, 250);\n\t\t\t}\n\t\t);\n\t}\n\n\t/**\n\t * Calls the storeActions.removeAppFromFolder to remove\n\t * an app from the currently selected folder\n\t */\n\tonRemove() {\n\t\tstoreActions.removeAppFromFolder(this.props.folder.name, this.props.app);\n\t\tthis.toggleMenu();\n\t}\n\n\tsetMenuRef(node: HTMLDivElement) {\n\t\tthis.menuRef = node;\n\t}\n\n\t/**\n\t * This event handler is responsible for closing action menu pop ups when the user clicks outside of the pop up (what we might think of as a blur event).\n\t * The event is triggered by a document level click handler (via portals). When we receive the event, we determine whether the user was clicking inside\n\t * or outside of our action menu. If inside the menu then we do nothing (the click event will be captured and handled by react) but if the event occurred\n\t * outside of the action menu then we set its state to invisible.\n\t *\n\t * To determine whether we've clicked inside of the action menu we traverse the parent elements looking for a clue (a parent element that contains the class \"actions-menu\").\n\t *\n\t * Note: this event will fire multiple times for every click - once for each action menu on the page.\n\t * @param {Event} e\n\t */\n\thandleClickOutside(e: any) {\n\t\tconst eventTarget = e?.detail?.target;\n\t\tconst clickedInMyDropdown = someParentHasClassName(eventTarget, \"actions-menu\");\n\n\t\tif (this.state.isVisible && !clickedInMyDropdown) {\n\t\t\tthis.setState({\n\t\t\t\tisVisible: false,\n\t\t\t});\n\t\t}\n\t}\n\n\thandleWindowBlurred() {\n\t\tthis.setState({\n\t\t\tisVisible: false,\n\t\t});\n\t}\n\n\t/**\n\t * Calls storeActions.deleteApp() to delete an app\n\t * from all folders and from apps list\n\t */\n\tdeleteApp() {\n\t\tstoreActions.deleteApp(this.props.app.appID);\n\t}\n\n\trenderList() {\n\t\t// The 'View info' action is only visible on apps\n\t\t// that have the source property and with a value of FDC3\n\t\tconst apps = storeActions.getAllApps();\n\t\tconst app = apps[this.props.app.appID];\n\t\tconst { folder } = this.props;\n\t\treturn (\n\t\t\t<div className=\"actions-menu\" style={{ right: 0 }}>\n\t\t\t\t<ul>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<ToggleFavoriteDropdown\n\t\t\t\t\t\t\tid={app.name}\n\t\t\t\t\t\t\tcategory=\"Application\"\n\t\t\t\t\t\t\tname={app.name}\n\t\t\t\t\t\t\ticon={app.icon}\n\t\t\t\t\t\t\tinstance={this}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</li>\n\t\t\t\t\t{app.source && app.source === FDC3 && <li onClick={this.onViewInfo}>View Info</li>}\n\t\t\t\t\t{!app.source && app.canDelete && <DeleteApp name={app.name} id={this.props.app.appID} />}\n\t\t\t\t\t{[ADVANCED_APP_LAUNCHER, FAVORITES].indexOf(folder.name) === -1 && (\n\t\t\t\t\t\t<li onClick={this.onRemove}>Remove from {folder.name}</li>\n\t\t\t\t\t)}\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t);\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<div ref={this.setMenuRef} className=\"actions-menu-wrapper\" onClick={this.toggleMenu}>\n\t\t\t\t<span>\n\t\t\t\t\t<i className=\"ff-dots-vert\" id={this.props.app.appID} />\n\t\t\t\t</span>\n\t\t\t\t{this.state.isVisible && this.renderList()}\n\t\t\t</div>\n\t\t);\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"AppActionsMenu.js","sourceRoot":"","sources":["../../../../../src/components/toolbar/advancedAppLauncher/components/AppActionsMenu.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,YAAY,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,MAAM,qBAAqB,GAAG,uBAAuB,CAAC;AACtD,MAAM,SAAS,GAAG,WAAW,CAAC;AAC9B,MAAM,IAAI,GAAG,MAAM,CAAC;AAWpB,MAAM,SAAS,GAAG,CAAC,KAAqB,EAAE,EAAE;IAC3C,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,YAAY,EAAE,CAAC;IACvD,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;IAC3B,MAAM,uBAAuB,GAAG,GAAG,EAAE;QACpC,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE;YACtB,cAAc,CAAC,IAAI,CAAC,CAAC;SACrB;QACD,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC,CAAC;IACF,OAAO,4BAAI,OAAO,EAAE,uBAAuB,iBAAiB,CAAC;AAC9D,CAAC,CAAC;AASF,MAAM,sBAAsB,GAAG,CAAC,OAAoB,EAAE,SAAiB,EAAO,EAAE;IAC/E,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3F,OAAO,OAAO,CAAC,UAAU,IAAI,sBAAsB,CAAC,OAAO,CAAC,UAAyB,EAAE,SAAS,CAAC,CAAC;AACnG,CAAC,CAAC;AAcF,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,KAAK,CAAC,SAAyB;IAG1E,YAAY,KAAa;QACxB,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,KAAK,GAAG;YACZ,SAAS,EAAE,KAAK;SAChB,CAAC;QAEF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7D,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,iBAAiB;QAChB,QAAQ,CAAC,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAMnE,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC3D,CAAC;IAED,oBAAoB;QACnB,QAAQ,CAAC,mBAAmB,CAAC,cAAc,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACtE,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC9D,CAAC;IAED,UAAU,CAAC,CAAiC;QAC3C,IAAI,CAAC,EAAE;YACN,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,CAAC,CAAC,cAAc,EAAE,CAAC;SACnB;QACD,IAAI,CAAC,QAAQ,CAAC;YACb,SAAS,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS;SAChC,CAAC,CAAC;IACJ,CAAC;IAMD,UAAU;QACT,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,UAAU,CACrC;YACC,aAAa,EAAE,aAAa;SAC5B,EACD;YACC,OAAO,EAAE,MAAM;YACf,aAAa,EAAE,CAAC;YAChB,eAAe,EAAE,IAAI;YACrB,IAAI,EAAE,QAAQ;YACd,GAAG,EAAE,QAAQ;SACb,EACD,GAAG,EAAE;YAKJ,UAAU,CAAC,GAAG,EAAE;gBACf,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,EAAE;oBAC7C,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG;iBACnB,CAAC,CAAC;YACJ,CAAC,EAAE,GAAG,CAAC,CAAC;QACT,CAAC,CACD,CAAC;IACH,CAAC;IAMD,QAAQ;QACP,YAAY,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzE,IAAI,CAAC,UAAU,EAAE,CAAC;IACnB,CAAC;IAED,UAAU,CAAC,IAAoB;QAC9B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACrB,CAAC;IAaD,kBAAkB,CAAC,CAAM;;QACxB,MAAM,WAAW,GAAG,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,MAAM,0CAAE,MAAM,CAAC;QACtC,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QAEhF,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,mBAAmB,EAAE;YACjD,IAAI,CAAC,QAAQ,CAAC;gBACb,SAAS,EAAE,KAAK;aAChB,CAAC,CAAC;SACH;IACF,CAAC;IAED,mBAAmB;QAClB,IAAI,CAAC,QAAQ,CAAC;YACb,SAAS,EAAE,KAAK;SAChB,CAAC,CAAC;IACJ,CAAC;IAMD,SAAS;QACR,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IAED,UAAU;;QAGT,MAAM,IAAI,GAAG,YAAY,CAAC,UAAU,EAAE,CAAC;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC9B,OAAO,CACN,6BAAK,SAAS,EAAC,cAAc,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;YAChD;gBACC;oBACC,oBAAC,sBAAsB,IACtB,EAAE,EAAE,GAAG,CAAC,IAAI,EACZ,QAAQ,EAAC,aAAa,EACtB,IAAI,EAAE,MAAA,GAAG,CAAC,WAAW,mCAAI,GAAG,CAAC,IAAI,EACjC,IAAI,EAAE,GAAG,CAAC,IAAI,EACd,QAAQ,EAAE,IAAI,GACb,CACE;gBACJ,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,IAAI,4BAAI,OAAO,EAAE,IAAI,CAAC,UAAU,gBAAgB;gBACjF,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,SAAS,IAAI,oBAAC,SAAS,IAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAI;gBACvF,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAClE,4BAAI,OAAO,EAAE,IAAI,CAAC,QAAQ;;oBAAe,MAAM,CAAC,IAAI,CAAM,CAC1D,CACG,CACA,CACN,CAAC;IACH,CAAC;IAED,MAAM;QACL,OAAO,CACN,6BAAK,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,EAAC,sBAAsB,EAAC,OAAO,EAAE,IAAI,CAAC,UAAU;YACnF;gBACC,2BAAG,SAAS,EAAC,cAAc,EAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAI,CAClD;YACN,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CACrC,CACN,CAAC;IACH,CAAC;CACD","sourcesContent":["/*!\n * Copyright 2018 by ChartIQ, Inc.\n * All rights reserved.\n *\n */\n\nimport React from \"react\";\nimport storeActions from \"../stores/StoreActions\";\nimport { ToggleFavoriteDropdown } from \"./ToggleFavoriteDropdown\";\nimport { useFavorites } from \"../../../../hooks/useFavorites\";\n\nconst ADVANCED_APP_LAUNCHER = \"Advanced App Launcher\";\nconst FAVORITES = \"Favorites\";\nconst FDC3 = \"FDC3\";\n\ninterface DeleteAppProps {\n\tname: string;\n\tid: any;\n}\n\n/**\n * Handles deleting a component and removing it from favorites if necessary\n * @param {*} props\n */\nconst DeleteApp = (props: DeleteAppProps) => {\n\tconst { isFavorited, removeFavorite } = useFavorites();\n\tconst { name, id } = props;\n\tconst removeFavoriteAndDelete = () => {\n\t\tif (isFavorited(name)) {\n\t\t\tremoveFavorite(name);\n\t\t}\n\t\tstoreActions.deleteApp(id);\n\t};\n\treturn <li onClick={removeFavoriteAndDelete}>Delete App</li>;\n};\n\n/**\n * This method checks an element and all of its parents to determine whether any of them\n * contain a particular class name. We use this to determine whether the user is clicking\n * inside or outside of the actions menu pop up.\n * @param {HTMLElement} element\n * @param {string} className\n */\nconst someParentHasClassName = (element: HTMLElement, className: string): any => {\n\tif (element.className && element.className.split(\" \").indexOf(className) >= 0) return true;\n\treturn element.parentNode && someParentHasClassName(element.parentNode as HTMLElement, className);\n};\n\ninterface IProps {\n\tapp: any;\n\tfolder: any;\n}\ninterface IState {\n\tisVisible: boolean;\n}\n\n/**\n * Displays a list of actions like 'View info', 'Add to favorite'\n * etc on each app in the list\n */\nexport default class AppActionsMenu extends React.Component<IProps, IState> {\n\tmenuRef: HTMLDivElement | null;\n\n\tconstructor(props: IProps) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tisVisible: false,\n\t\t};\n\t\t// Bind correct context\n\t\tthis.onViewInfo = this.onViewInfo.bind(this);\n\t\tthis.toggleMenu = this.toggleMenu.bind(this);\n\t\tthis.onRemove = this.onRemove.bind(this);\n\t\tthis.setMenuRef = this.setMenuRef.bind(this);\n\t\tthis.deleteApp = this.deleteApp.bind(this);\n\t\tthis.handleClickOutside = this.handleClickOutside.bind(this);\n\t\tthis.handleWindowBlurred = this.handleWindowBlurred.bind(this);\n\t\tthis.menuRef = null;\n\t}\n\n\tcomponentDidMount() {\n\t\tdocument.addEventListener(\"portal:click\", this.handleClickOutside);\n\t\t// Mody on 12/12/19\n\t\t// window.blur seems to work much better than finsembleWindow's\n\t\t// blurred event. The first, is only fired when you actually click\n\t\t// away from the window, while finsembleWindow's blurred fires even\n\t\t// when you click inside the window, causing possible race conditions.\n\t\twindow.addEventListener(\"blur\", this.handleWindowBlurred);\n\t}\n\n\tcomponentWillUnmount() {\n\t\tdocument.removeEventListener(\"portal:click\", this.handleClickOutside);\n\t\twindow.removeEventListener(\"blur\", this.handleWindowBlurred);\n\t}\n\n\ttoggleMenu(e?: React.MouseEvent<HTMLElement>) {\n\t\tif (e) {\n\t\t\te.stopPropagation();\n\t\t\te.preventDefault();\n\t\t}\n\t\tthis.setState({\n\t\t\tisVisible: !this.state.isVisible,\n\t\t});\n\t}\n\n\t/**\n\t * Opens app catalog and switches to the page when you see all\n\t * the details about the app\n\t */\n\tonViewInfo() {\n\t\tthis.toggleMenu();\n\t\tFSBL.Clients.LauncherClient.showWindow(\n\t\t\t{\n\t\t\t\tcomponentType: \"App Catalog\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tmonitor: \"mine\",\n\t\t\t\tstaggerPixels: 0,\n\t\t\t\tspawnIfNotFound: true,\n\t\t\t\tleft: \"center\",\n\t\t\t\ttop: \"center\",\n\t\t\t},\n\t\t\t() => {\n\t\t\t\t// Publish this event so that catalog knows\n\t\t\t\t// what app we want to view\n\n\t\t\t\t// NOTE: While not ideal, without a small delay (when having to launch the app catalog) the app catalog wont receive the message as it will still be initializing\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tFSBL.Clients.RouterClient.transmit(\"viewApp\", {\n\t\t\t\t\t\tapp: this.props.app,\n\t\t\t\t\t});\n\t\t\t\t}, 250);\n\t\t\t}\n\t\t);\n\t}\n\n\t/**\n\t * Calls the storeActions.removeAppFromFolder to remove\n\t * an app from the currently selected folder\n\t */\n\tonRemove() {\n\t\tstoreActions.removeAppFromFolder(this.props.folder.name, this.props.app);\n\t\tthis.toggleMenu();\n\t}\n\n\tsetMenuRef(node: HTMLDivElement) {\n\t\tthis.menuRef = node;\n\t}\n\n\t/**\n\t * This event handler is responsible for closing action menu pop ups when the user clicks outside of the pop up (what we might think of as a blur event).\n\t * The event is triggered by a document level click handler (via portals). When we receive the event, we determine whether the user was clicking inside\n\t * or outside of our action menu. If inside the menu then we do nothing (the click event will be captured and handled by react) but if the event occurred\n\t * outside of the action menu then we set its state to invisible.\n\t *\n\t * To determine whether we've clicked inside of the action menu we traverse the parent elements looking for a clue (a parent element that contains the class \"actions-menu\").\n\t *\n\t * Note: this event will fire multiple times for every click - once for each action menu on the page.\n\t * @param {Event} e\n\t */\n\thandleClickOutside(e: any) {\n\t\tconst eventTarget = e?.detail?.target;\n\t\tconst clickedInMyDropdown = someParentHasClassName(eventTarget, \"actions-menu\");\n\n\t\tif (this.state.isVisible && !clickedInMyDropdown) {\n\t\t\tthis.setState({\n\t\t\t\tisVisible: false,\n\t\t\t});\n\t\t}\n\t}\n\n\thandleWindowBlurred() {\n\t\tthis.setState({\n\t\t\tisVisible: false,\n\t\t});\n\t}\n\n\t/**\n\t * Calls storeActions.deleteApp() to delete an app\n\t * from all folders and from apps list\n\t */\n\tdeleteApp() {\n\t\tstoreActions.deleteApp(this.props.app.appID);\n\t}\n\n\trenderList() {\n\t\t// The 'View info' action is only visible on apps\n\t\t// that have the source property and with a value of FDC3\n\t\tconst apps = storeActions.getAllApps();\n\t\tconst app = apps[this.props.app.appID];\n\t\tconst { folder } = this.props;\n\t\treturn (\n\t\t\t<div className=\"actions-menu\" style={{ right: 0 }}>\n\t\t\t\t<ul>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<ToggleFavoriteDropdown\n\t\t\t\t\t\t\tid={app.name}\n\t\t\t\t\t\t\tcategory=\"Application\"\n\t\t\t\t\t\t\tname={app.displayName ?? app.name}\n\t\t\t\t\t\t\ticon={app.icon}\n\t\t\t\t\t\t\tinstance={this}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</li>\n\t\t\t\t\t{app.source && app.source === FDC3 && <li onClick={this.onViewInfo}>View Info</li>}\n\t\t\t\t\t{!app.source && app.canDelete && <DeleteApp name={app.name} id={this.props.app.appID} />}\n\t\t\t\t\t{[ADVANCED_APP_LAUNCHER, FAVORITES].indexOf(folder.name) === -1 && (\n\t\t\t\t\t\t<li onClick={this.onRemove}>Remove from {folder.name}</li>\n\t\t\t\t\t)}\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t);\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<div ref={this.setMenuRef} className=\"actions-menu-wrapper\" onClick={this.toggleMenu}>\n\t\t\t\t<span>\n\t\t\t\t\t<i className=\"ff-dots-vert\" id={this.props.app.appID} />\n\t\t\t\t</span>\n\t\t\t\t{this.state.isVisible && this.renderList()}\n\t\t\t</div>\n\t\t);\n\t}\n}\n"]}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { Icon } from "../../../../types/iconTypes";
|
|
3
2
|
import { FolderAppType, FolderType } from "../../../../types/advancedAppLauncherTypes";
|
|
3
|
+
import { services } from "@finsemble/finsemble-api";
|
|
4
|
+
declare type IconDescriptor = services.window.types.IconDescriptor;
|
|
4
5
|
declare type App = FolderAppType & {
|
|
5
6
|
title?: string;
|
|
6
|
-
icon?:
|
|
7
|
+
icon?: IconDescriptor;
|
|
7
8
|
};
|
|
8
9
|
interface IProps {
|
|
9
10
|
folder: FolderType;
|