@finsemble/finsemble-ui 7.0.0 → 7.1.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +13 -11
- package/react/actions/favoriteActions.d.ts +1 -0
- package/react/actions/favoriteActions.js +1 -0
- package/react/actions/favoriteActions.js.map +1 -1
- package/react/actions/menuActions.d.ts +1 -0
- package/react/actions/menuActions.js +1 -0
- package/react/actions/menuActions.js.map +1 -1
- package/react/actions/rootActions.d.ts +1 -0
- package/react/actions/rootActions.js +1 -0
- package/react/actions/rootActions.js.map +1 -1
- package/react/actions/searchActions.d.ts +1 -0
- package/react/actions/searchActions.js +1 -0
- package/react/actions/searchActions.js.map +1 -1
- package/react/actions/toolbarActions.d.ts +34 -0
- package/react/actions/toolbarActions.js +17 -0
- package/react/actions/toolbarActions.js.map +1 -1
- package/react/actions/workspaceActions.d.ts +1 -0
- package/react/actions/workspaceActions.js +1 -0
- package/react/actions/workspaceActions.js.map +1 -1
- package/react/assets/css/advancedAppLauncher.css +22 -19
- package/react/assets/css/appCatalog.css +67 -72
- package/react/assets/css/authentication.css +4 -3
- package/react/assets/css/button.css +3 -10
- package/react/assets/css/core/formElements.css +1 -1
- package/react/assets/css/core/icons.css +3 -2
- package/react/assets/css/core/notifications.css +2 -2
- package/react/assets/css/core/windowFrame.css +9 -9
- package/react/assets/css/dashbar.css +1 -1
- package/react/assets/css/defaultTheme.css +9 -53
- package/react/assets/css/dialogs.css +13 -11
- package/react/assets/css/favorites.css +3 -1
- package/react/assets/css/finsemble.css +3 -2
- package/react/assets/css/font-finance.css +233 -120
- package/react/assets/css/fonts/Open_Sans/OpenSans-Definition.css +10 -10
- package/react/assets/css/linkerWindow.css +2 -2
- package/react/assets/css/menus.css +10 -10
- package/react/assets/css/notificationsCenter.css +16 -31
- package/react/assets/css/processMonitor.css +7 -4
- package/react/assets/css/search.css +1 -1
- package/react/assets/css/shared/animations.css +10 -4
- package/react/assets/css/shared/common.css +2 -2
- package/react/assets/css/tags.css +10 -10
- package/react/assets/css/toolbar.css +22 -19
- package/react/assets/css/userPreferences.css +12 -14
- package/react/assets/css/windowTitleBar.css +75 -36
- package/react/componentTemplateGenerator.js +3 -2
- package/react/componentTemplateGenerator.js.map +1 -1
- package/react/components/FinsembleProvider.d.ts +7 -0
- package/react/components/FinsembleProvider.js +2 -0
- package/react/components/FinsembleProvider.js.map +1 -1
- package/react/components/appCatalog/AppCatalog.d.ts +4 -0
- package/react/components/appCatalog/AppCatalog.js +4 -0
- package/react/components/appCatalog/AppCatalog.js.map +1 -1
- package/react/components/appCatalog/AppCatalogComponent.d.ts +58 -0
- package/react/components/appCatalog/AppCatalogComponent.js +70 -1
- package/react/components/appCatalog/AppCatalogComponent.js.map +1 -1
- package/react/components/appCatalog/components/AppCard.d.ts +35 -0
- package/react/components/appCatalog/components/AppCard.js +42 -0
- package/react/components/appCatalog/components/AppCard.js.map +1 -1
- package/react/components/appCatalog/components/AppResults.d.ts +10 -0
- package/react/components/appCatalog/components/AppResults.js +24 -0
- package/react/components/appCatalog/components/AppResults.js.map +1 -1
- package/react/components/appCatalog/components/Carousel.d.ts +26 -0
- package/react/components/appCatalog/components/Carousel.js +34 -0
- package/react/components/appCatalog/components/Carousel.js.map +1 -1
- package/react/components/appCatalog/components/EmptyResults.d.ts +4 -0
- package/react/components/appCatalog/components/EmptyResults.js +8 -0
- package/react/components/appCatalog/components/EmptyResults.js.map +1 -1
- package/react/components/appCatalog/components/Hero.d.ts +15 -0
- package/react/components/appCatalog/components/Hero.js +15 -0
- package/react/components/appCatalog/components/Hero.js.map +1 -1
- package/react/components/appCatalog/components/Home.d.ts +6 -4
- package/react/components/appCatalog/components/Home.js +10 -0
- package/react/components/appCatalog/components/Home.js.map +1 -1
- package/react/components/appCatalog/components/SearchBar.d.ts +31 -0
- package/react/components/appCatalog/components/SearchBar.js +33 -0
- package/react/components/appCatalog/components/SearchBar.js.map +1 -1
- package/react/components/appCatalog/components/Showcase/AppDescription.d.ts +5 -0
- package/react/components/appCatalog/components/Showcase/AppDescription.js +9 -0
- package/react/components/appCatalog/components/Showcase/AppDescription.js.map +1 -1
- package/react/components/appCatalog/components/Showcase/AppDevNotes.d.ts +7 -0
- package/react/components/appCatalog/components/Showcase/AppDevNotes.js +15 -0
- package/react/components/appCatalog/components/Showcase/AppDevNotes.js.map +1 -1
- package/react/components/appCatalog/components/Showcase/AppShowcase.d.ts +17 -0
- package/react/components/appCatalog/components/Showcase/AppShowcase.js +25 -0
- package/react/components/appCatalog/components/Showcase/AppShowcase.js.map +1 -1
- package/react/components/appCatalog/components/Showcase/Header.d.ts +7 -0
- package/react/components/appCatalog/components/Showcase/Header.js +12 -0
- package/react/components/appCatalog/components/Showcase/Header.js.map +1 -1
- package/react/components/appCatalog/components/Showcase/ImageCarousel.d.ts +7 -0
- package/react/components/appCatalog/components/Showcase/ImageCarousel.js +11 -0
- package/react/components/appCatalog/components/Showcase/ImageCarousel.js.map +1 -1
- package/react/components/appCatalog/components/Showcase/Modal.d.ts +10 -0
- package/react/components/appCatalog/components/Showcase/Modal.js +10 -0
- package/react/components/appCatalog/components/Showcase/Modal.js.map +1 -1
- package/react/components/appCatalog/components/Showcase/ReleaseNotes.d.ts +5 -0
- package/react/components/appCatalog/components/Showcase/ReleaseNotes.js +9 -0
- package/react/components/appCatalog/components/Showcase/ReleaseNotes.js.map +1 -1
- package/react/components/appCatalog/components/Showcase/SupportNotes.d.ts +6 -0
- package/react/components/appCatalog/components/Showcase/SupportNotes.js +11 -0
- package/react/components/appCatalog/components/Showcase/SupportNotes.js.map +1 -1
- package/react/components/appCatalog/components/Showcase/VersionNotes.d.ts +5 -0
- package/react/components/appCatalog/components/Showcase/VersionNotes.js +9 -0
- package/react/components/appCatalog/components/Showcase/VersionNotes.js.map +1 -1
- package/react/components/appCatalog/components/Tag.d.ts +6 -0
- package/react/components/appCatalog/components/Tag.js +10 -0
- package/react/components/appCatalog/components/Tag.js.map +1 -1
- package/react/components/appCatalog/components/Toast.d.ts +5 -0
- package/react/components/appCatalog/components/Toast.js +9 -0
- package/react/components/appCatalog/components/Toast.js.map +1 -1
- package/react/components/appCatalog/components/helpers.js +1 -0
- package/react/components/appCatalog/components/helpers.js.map +1 -1
- package/react/components/appCatalog/modules/AppDirectory.d.ts +5 -0
- package/react/components/appCatalog/modules/AppDirectory.js +5 -0
- package/react/components/appCatalog/modules/AppDirectory.js.map +1 -1
- package/react/components/appCatalog/modules/FDC3.d.ts +37 -0
- package/react/components/appCatalog/modules/FDC3.js +40 -0
- package/react/components/appCatalog/modules/FDC3.js.map +1 -1
- package/react/components/appCatalog/stores/appStore.js +1 -0
- package/react/components/appCatalog/stores/appStore.js.map +1 -1
- package/react/components/appCatalog/stores/storeActions.d.ts +91 -0
- package/react/components/appCatalog/stores/storeActions.js +116 -1
- package/react/components/appCatalog/stores/storeActions.js.map +1 -1
- package/react/components/common/Checkbox.d.ts +1 -0
- package/react/components/common/Checkbox.js +2 -2
- package/react/components/common/Checkbox.js.map +1 -1
- package/react/components/common/ColorPicker.d.ts +5 -0
- package/react/components/common/ColorPicker.js +40 -0
- package/react/components/common/ColorPicker.js.map +1 -1
- package/react/components/common/DropZone.d.ts +11 -0
- package/react/components/common/DropZone.js +21 -1
- package/react/components/common/DropZone.js.map +1 -1
- package/react/components/common/DropdownButton.d.ts +4 -0
- package/react/components/common/DropdownButton.js +4 -0
- package/react/components/common/DropdownButton.js.map +1 -1
- package/react/components/common/ErrorBoundary.d.ts +18 -0
- package/react/components/common/ErrorBoundary.js +21 -0
- package/react/components/common/ErrorBoundary.js.map +1 -1
- package/react/components/common/FileInput.d.ts +8 -1
- package/react/components/common/FileInput.js +19 -4
- package/react/components/common/FileInput.js.map +1 -1
- package/react/components/common/FinsembleIcon.d.ts +10 -0
- package/react/components/common/FinsembleIcon.js +51 -2
- package/react/components/common/FinsembleIcon.js.map +1 -1
- package/react/components/common/FinsembleSelect.js +5 -1
- package/react/components/common/FinsembleSelect.js.map +1 -1
- package/react/components/common/FinsembleToggleButtonBar.js +1 -1
- package/react/components/common/FinsembleToggleButtonBar.js.map +1 -1
- package/react/components/common/InputTable.d.ts +7 -0
- package/react/components/common/InputTable.js +7 -0
- package/react/components/common/InputTable.js.map +1 -1
- package/react/components/common/Tab.js +3 -0
- package/react/components/common/Tab.js.map +1 -1
- package/react/components/common/TimeSelect.js +24 -0
- package/react/components/common/TimeSelect.js.map +1 -1
- package/react/components/common/Tooltip.js +2 -0
- package/react/components/common/Tooltip.js.map +1 -1
- package/react/components/common/css/accordion.css +9 -6
- package/react/components/common/css/application-edit-page.css +39 -44
- package/react/components/common/css/button.css +10 -5
- package/react/components/common/css/color-picker.css +3 -3
- package/react/components/common/css/drop-zone.css +2 -6
- package/react/components/common/css/file-input.css +5 -5
- package/react/components/common/css/header.css +3 -2
- package/react/components/common/css/icon.css +1 -1
- package/react/components/common/css/loading-spinner.css +7 -12
- package/react/components/common/css/selector.css +4 -4
- package/react/components/common/css/styles.css +22 -16
- package/react/components/common/css/tab.css +8 -8
- package/react/components/common/css/time-select.css +1 -0
- package/react/components/common/css/toggle.css +4 -4
- package/react/components/common/css/tooltip.css +2 -3
- package/react/components/common/file_helpers.js +2 -0
- package/react/components/common/file_helpers.js.map +1 -1
- package/react/components/common/helpers.js +1 -0
- package/react/components/common/helpers.js.map +1 -1
- package/react/components/common/stories/ColorPicker.stories.js +3 -0
- package/react/components/common/stories/ColorPicker.stories.js.map +1 -1
- package/react/components/common/stories/FileInput.stories.d.ts +3 -1
- package/react/components/common/stories/FileInput.stories.js +12 -0
- package/react/components/common/stories/FileInput.stories.js.map +1 -1
- package/react/components/common/tests/Accordion.spec.js +6 -0
- package/react/components/common/tests/Accordion.spec.js.map +1 -1
- package/react/components/common/tests/Checkbox.spec.js +1 -0
- package/react/components/common/tests/Checkbox.spec.js.map +1 -1
- package/react/components/common/tests/ColorPicker.spec.js +6 -0
- package/react/components/common/tests/ColorPicker.spec.js.map +1 -1
- package/react/components/common/tests/DropZone.spec.js +1 -0
- package/react/components/common/tests/DropZone.spec.js.map +1 -1
- package/react/components/common/tests/FileInput.spec.js +22 -0
- package/react/components/common/tests/FileInput.spec.js.map +1 -1
- package/react/components/common/tests/FinsembleSelect.spec.js +1 -0
- package/react/components/common/tests/FinsembleSelect.spec.js.map +1 -1
- package/react/components/common/tests/FinsembleToggle.spec.js +1 -0
- package/react/components/common/tests/FinsembleToggle.spec.js.map +1 -1
- package/react/components/common/tests/FinsembleToggleButtonBar.spec.js +1 -0
- package/react/components/common/tests/FinsembleToggleButtonBar.spec.js.map +1 -1
- package/react/components/common/tests/TimeSelect.spec.js +4 -0
- package/react/components/common/tests/TimeSelect.spec.js.map +1 -1
- package/react/components/common/tests/Tooltip.spec.js +16 -0
- package/react/components/common/tests/Tooltip.spec.js.map +1 -1
- package/react/components/favorites/FavoriteMaker.d.ts +8 -0
- package/react/components/favorites/FavoriteMaker.js +9 -0
- package/react/components/favorites/FavoriteMaker.js.map +1 -1
- package/react/components/favorites/FavoritesShell.d.ts +4 -0
- package/react/components/favorites/FavoritesShell.js +13 -1
- package/react/components/favorites/FavoritesShell.js.map +1 -1
- package/react/components/favorites/FavoritesShell.spec.js +3 -0
- package/react/components/favorites/FavoritesShell.spec.js.map +1 -1
- package/react/components/fdc3Resolver/ResolverContainer.js +8 -0
- package/react/components/fdc3Resolver/ResolverContainer.js.map +1 -1
- package/react/components/fdc3Resolver/ResolverDialog.css +16 -3
- package/react/components/fdc3Resolver/ResolverDialog.js +7 -2
- package/react/components/fdc3Resolver/ResolverDialog.js.map +1 -1
- package/react/components/fdc3Resolver/ResolverDialog.spec.js +3 -2
- package/react/components/fdc3Resolver/ResolverDialog.spec.js.map +1 -1
- package/react/components/fdc3Resolver/ResolverDialog.stories.js +2 -0
- package/react/components/fdc3Resolver/ResolverDialog.stories.js.map +1 -1
- package/react/components/icon/Icon.d.ts +13 -0
- package/react/components/icon/Icon.js +34 -0
- package/react/components/icon/Icon.js.map +1 -1
- package/react/components/legacyControls/FinsembleDialog.d.ts +4 -0
- package/react/components/legacyControls/FinsembleDialog.js +15 -0
- package/react/components/legacyControls/FinsembleDialog.js.map +1 -1
- package/react/components/legacyControls/FinsembleDialogButton.d.ts +3 -0
- package/react/components/legacyControls/FinsembleDialogButton.js +6 -1
- package/react/components/legacyControls/FinsembleDialogButton.js.map +1 -1
- package/react/components/legacyControls/FinsembleDialogQuestion.d.ts +7 -0
- package/react/components/legacyControls/FinsembleDialogQuestion.js +7 -0
- package/react/components/legacyControls/FinsembleDialogQuestion.js.map +1 -1
- package/react/components/legacyControls/FinsembleDialogTextInput.d.ts +3 -0
- package/react/components/legacyControls/FinsembleDialogTextInput.js +14 -0
- package/react/components/legacyControls/FinsembleDialogTextInput.js.map +1 -1
- package/react/components/legacyControls/FinsembleDnDContext.d.ts +19 -0
- package/react/components/legacyControls/FinsembleDnDContext.js +126 -1
- package/react/components/legacyControls/FinsembleDnDContext.js.map +1 -1
- package/react/components/legacyControls/FinsembleDraggable.d.ts +3 -0
- package/react/components/legacyControls/FinsembleDraggable.js +3 -0
- package/react/components/legacyControls/FinsembleDraggable.js.map +1 -1
- package/react/components/legacyControls/FinsembleHoverDetector.d.ts +15 -0
- package/react/components/legacyControls/FinsembleHoverDetector.js +26 -1
- package/react/components/legacyControls/FinsembleHoverDetector.js.map +1 -1
- package/react/components/legacyControls/FinsembleMenuSection.d.ts +4 -0
- package/react/components/legacyControls/FinsembleMenuSection.js +38 -0
- package/react/components/legacyControls/FinsembleMenuSection.js.map +1 -1
- package/react/components/legacyControls/tests/FinsembleDialogButton.spec.js +1 -0
- package/react/components/legacyControls/tests/FinsembleDialogButton.spec.js.map +1 -1
- package/react/components/legacyControls/tests/FinsembleDialogTextInput.spec.js +1 -0
- package/react/components/legacyControls/tests/FinsembleDialogTextInput.spec.js.map +1 -1
- package/react/components/linker/LinkerMenu.d.ts +3 -0
- package/react/components/linker/LinkerMenu.js +21 -0
- package/react/components/linker/LinkerMenu.js.map +1 -1
- package/react/components/linker/LinkerMenuDeprecated.d.ts +3 -0
- package/react/components/linker/LinkerMenuDeprecated.js +9 -0
- package/react/components/linker/LinkerMenuDeprecated.js.map +1 -1
- package/react/components/menu/Menu.d.ts +15 -0
- package/react/components/menu/Menu.js +15 -0
- package/react/components/menu/Menu.js.map +1 -1
- package/react/components/menu/MenuAutoResizer.d.ts +7 -0
- package/react/components/menu/MenuAutoResizer.js +27 -0
- package/react/components/menu/MenuAutoResizer.js.map +1 -1
- package/react/components/menu/MenuContent.d.ts +4 -0
- package/react/components/menu/MenuContent.js +4 -0
- package/react/components/menu/MenuContent.js.map +1 -1
- package/react/components/menu/MenuHotKey.d.ts +14 -0
- package/react/components/menu/MenuHotKey.js +15 -0
- package/react/components/menu/MenuHotKey.js.map +1 -1
- package/react/components/menu/MenuItem.d.ts +8 -0
- package/react/components/menu/MenuItem.js +13 -2
- package/react/components/menu/MenuItem.js.map +1 -1
- package/react/components/menu/MenuPortal.js +112 -2
- package/react/components/menu/MenuPortal.js.map +1 -1
- package/react/components/menu/MenuShell.d.ts +16 -0
- package/react/components/menu/MenuShell.js +26 -0
- package/react/components/menu/MenuShell.js.map +1 -1
- package/react/components/menu/MenuToggle.d.ts +3 -0
- package/react/components/menu/MenuToggle.js +3 -0
- package/react/components/menu/MenuToggle.js.map +1 -1
- package/react/components/menu/keyboardNavigation.d.ts +12 -0
- package/react/components/menu/keyboardNavigation.js +55 -0
- package/react/components/menu/keyboardNavigation.js.map +1 -1
- package/react/components/menu/menuContext.d.ts +6 -0
- package/react/components/menu/menuContext.js +6 -0
- package/react/components/menu/menuContext.js.map +1 -1
- package/react/components/menu/menuHelpers.d.ts +22 -0
- package/react/components/menu/menuHelpers.js +58 -1
- package/react/components/menu/menuHelpers.js.map +1 -1
- package/react/components/notifications/components/drawer/DrawerControls.js +8 -0
- package/react/components/notifications/components/drawer/DrawerControls.js.map +1 -1
- package/react/components/notifications/components/drawer/DrawerHeader.js +5 -0
- package/react/components/notifications/components/drawer/DrawerHeader.js.map +1 -1
- package/react/components/notifications/components/notificationsCenter/NotificationsCenter.js +18 -0
- package/react/components/notifications/components/notificationsCenter/NotificationsCenter.js.map +1 -1
- package/react/components/notifications/components/notificationsToasts/NotificationsToasts.js +3 -0
- package/react/components/notifications/components/notificationsToasts/NotificationsToasts.js.map +1 -1
- package/react/components/notifications/components/shared/CheckButton.js +1 -1
- package/react/components/notifications/components/shared/CheckButton.js.map +1 -1
- package/react/components/notifications/components/shared/NotificationCardShell.d.ts +9 -0
- package/react/components/notifications/components/shared/NotificationCardShell.js +13 -6
- package/react/components/notifications/components/shared/NotificationCardShell.js.map +1 -1
- package/react/components/notifications/components/shared/OverflowMenu.d.ts +4 -0
- package/react/components/notifications/components/shared/OverflowMenu.js +16 -2
- package/react/components/notifications/components/shared/OverflowMenu.js.map +1 -1
- package/react/components/notifications/components/views/CardView.js +3 -0
- package/react/components/notifications/components/views/CardView.js.map +1 -1
- package/react/components/notifications/components/views/ListView.js +8 -0
- package/react/components/notifications/components/views/ListView.js.map +1 -1
- package/react/components/notifications/notificationsContext.d.ts +4 -0
- package/react/components/notifications/notificationsContext.js +4 -0
- package/react/components/notifications/notificationsContext.js.map +1 -1
- package/react/components/notifications/types.d.ts +3 -0
- package/react/components/notifications/utils.d.ts +4 -0
- package/react/components/notifications/utils.js +4 -0
- package/react/components/notifications/utils.js.map +1 -1
- package/react/components/processMonitor/ProcessMonitor.d.ts +3 -0
- package/react/components/processMonitor/ProcessMonitor.js +17 -2
- package/react/components/processMonitor/ProcessMonitor.js.map +1 -1
- package/react/components/processMonitor/components/ChildWindow.d.ts +3 -0
- package/react/components/processMonitor/components/ChildWindow.js +5 -0
- package/react/components/processMonitor/components/ChildWindow.js.map +1 -1
- package/react/components/processMonitor/components/ListHeader.d.ts +5 -0
- package/react/components/processMonitor/components/ListHeader.js +7 -0
- package/react/components/processMonitor/components/ListHeader.js.map +1 -1
- package/react/components/processMonitor/components/ProcessStatistics.js +12 -1
- package/react/components/processMonitor/components/ProcessStatistics.js.map +1 -1
- package/react/components/processMonitor/constants.js +6 -0
- package/react/components/processMonitor/constants.js.map +1 -1
- package/react/components/processMonitor/helpers.d.ts +13 -0
- package/react/components/processMonitor/helpers.js +23 -3
- package/react/components/processMonitor/helpers.js.map +1 -1
- package/react/components/processMonitor/stores/ProcessMonitorStore.d.ts +39 -0
- package/react/components/processMonitor/stores/ProcessMonitorStore.js +50 -0
- package/react/components/processMonitor/stores/ProcessMonitorStore.js.map +1 -1
- package/react/components/quickComponentForm/QuickComponentForm.d.ts +3 -0
- package/react/components/quickComponentForm/QuickComponentForm.js +20 -0
- package/react/components/quickComponentForm/QuickComponentForm.js.map +1 -1
- package/react/components/quickComponentForm/quickComponent.css +1 -1
- package/react/components/sdd/AddApp.d.ts +4 -2
- package/react/components/sdd/AddApp.js +57 -49
- package/react/components/sdd/AddApp.js.map +1 -1
- package/react/components/sdd/AppEditAccess.js +8 -0
- package/react/components/sdd/AppEditAccess.js.map +1 -1
- package/react/components/sdd/AppEditPage.d.ts +2 -1
- package/react/components/sdd/AppEditPage.js +148 -361
- package/react/components/sdd/AppEditPage.js.map +1 -1
- package/react/components/sdd/Appearance.css +1 -1
- package/react/components/sdd/Appearance.js +3 -0
- package/react/components/sdd/Appearance.js.map +1 -1
- package/react/components/sdd/Application.js +39 -7
- package/react/components/sdd/Application.js.map +1 -1
- package/react/components/sdd/Applications.js +89 -13
- package/react/components/sdd/Applications.js.map +1 -1
- package/react/components/sdd/AssetsPage.css +3 -3
- package/react/components/sdd/EditPreload.js +10 -0
- package/react/components/sdd/EditPreload.js.map +1 -1
- package/react/components/sdd/ExportCloud.js +4 -0
- package/react/components/sdd/ExportCloud.js.map +1 -1
- package/react/components/sdd/Publish.js +2 -0
- package/react/components/sdd/Publish.js.map +1 -1
- package/react/components/sdd/PublishProgress.js +11 -1
- package/react/components/sdd/PublishProgress.js.map +1 -1
- package/react/components/sdd/SmartDesktopDesigner.js +17 -0
- package/react/components/sdd/SmartDesktopDesigner.js.map +1 -1
- package/react/components/sdd/ThemePage.css +6 -23
- package/react/components/sdd/ThemePage.js +1 -1
- package/react/components/sdd/ThemePage.js.map +1 -1
- package/react/components/sdd/Themes.js +2 -0
- package/react/components/sdd/Themes.js.map +1 -1
- package/react/components/sdd/Toolbar.js +7 -0
- package/react/components/sdd/Toolbar.js.map +1 -1
- package/react/components/sdd/appEditPage/Behavior.d.ts +34 -0
- package/react/components/sdd/appEditPage/Behavior.js +134 -0
- package/react/components/sdd/appEditPage/Behavior.js.map +1 -0
- package/react/components/sdd/appEditPage/Component.d.ts +22 -0
- package/react/components/sdd/appEditPage/Component.js +76 -0
- package/react/components/sdd/appEditPage/Component.js.map +1 -0
- package/react/components/sdd/appEditPage/DebugToolkit.d.ts +9 -0
- package/react/components/sdd/appEditPage/DebugToolkit.js +20 -0
- package/react/components/sdd/appEditPage/DebugToolkit.js.map +1 -0
- package/react/components/sdd/appEditPage/Interop.d.ts +10 -0
- package/react/components/sdd/appEditPage/Interop.js +40 -0
- package/react/components/sdd/appEditPage/Interop.js.map +1 -0
- package/react/components/sdd/appEditPage/Position.d.ts +18 -0
- package/react/components/sdd/appEditPage/Position.js +72 -0
- package/react/components/sdd/appEditPage/Position.js.map +1 -0
- package/react/components/sdd/appEditPage/Preloads.d.ts +9 -0
- package/react/components/sdd/appEditPage/Preloads.js +16 -0
- package/react/components/sdd/appEditPage/Preloads.js.map +1 -0
- package/react/components/sdd/appEditPage/SelectConnect.d.ts +15 -0
- package/react/components/sdd/appEditPage/SelectConnect.js +28 -0
- package/react/components/sdd/appEditPage/SelectConnect.js.map +1 -0
- package/react/components/sdd/appEditPage/Workspace.d.ts +12 -0
- package/react/components/sdd/appEditPage/Workspace.js +30 -0
- package/react/components/sdd/appEditPage/Workspace.js.map +1 -0
- package/react/components/sdd/common/getCSSVars.js +7 -2
- package/react/components/sdd/common/getCSSVars.js.map +1 -1
- package/react/components/sdd/common/setPreloadDefaults.js +4 -0
- package/react/components/sdd/common/setPreloadDefaults.js.map +1 -1
- package/react/components/sdd/css/addApp.css +18 -5
- package/react/components/sdd/css/appearance.css +6 -0
- package/react/components/sdd/css/applications.css +27 -14
- package/react/components/sdd/css/authentication.css +7 -6
- package/react/components/sdd/css/buttons.css +1 -1
- package/react/components/sdd/css/export.css +5 -3
- package/react/components/sdd/css/getting-started.css +2 -2
- package/react/components/sdd/css/nav.css +8 -11
- package/react/components/sdd/css/project-header.css +5 -7
- package/react/components/sdd/css/styles.css +29 -23
- package/react/components/sdd/css/views.css +4 -3
- package/react/components/sdd/fixtures/apps.js +12 -0
- package/react/components/sdd/fixtures/apps.js.map +1 -1
- package/react/components/sdd/fixtures/configTemplate.js +1 -0
- package/react/components/sdd/fixtures/configTemplate.js.map +1 -1
- package/react/components/sdd/fixtures/publishProgress.js +40 -0
- package/react/components/sdd/fixtures/publishProgress.js.map +1 -1
- package/react/components/sdd/sdd_helpers.d.ts +6 -0
- package/react/components/sdd/sdd_helpers.js +6 -0
- package/react/components/sdd/sdd_helpers.js.map +1 -1
- package/react/components/sdd/smartDesktopClient.d.ts +303 -0
- package/react/components/sdd/smartDesktopClient.js +334 -1
- package/react/components/sdd/smartDesktopClient.js.map +1 -1
- package/react/components/sdd/smartDesktopClient.spec.js +5 -2
- package/react/components/sdd/smartDesktopClient.spec.js.map +1 -1
- package/react/components/sdd/stories/AddApp.stories.d.ts +2 -1
- package/react/components/sdd/stories/AddApp.stories.js +8 -0
- package/react/components/sdd/stories/AddApp.stories.js.map +1 -1
- package/react/components/sdd/stories/AppEditPage.stories.d.ts +3 -1
- package/react/components/sdd/stories/AppEditPage.stories.js +3 -0
- package/react/components/sdd/stories/AppEditPage.stories.js.map +1 -1
- package/react/components/sdd/stories/Appearance.stories.js +1 -0
- package/react/components/sdd/stories/Appearance.stories.js.map +1 -1
- package/react/components/sdd/tests/AddApp.spec.js +40 -3
- package/react/components/sdd/tests/AddApp.spec.js.map +1 -1
- package/react/components/sdd/tests/AppEditPage.spec.js +16 -0
- package/react/components/sdd/tests/AppEditPage.spec.js.map +1 -1
- package/react/components/sdd/tests/Application.spec.js +33 -438
- package/react/components/sdd/tests/Application.spec.js.map +1 -1
- package/react/components/sdd/tests/Applications.spec.d.ts +1 -1
- package/react/components/sdd/tests/Applications.spec.js +29 -5
- package/react/components/sdd/tests/Applications.spec.js.map +1 -1
- package/react/components/sdd/tests/Authentication.spec.js +7 -0
- package/react/components/sdd/tests/Authentication.spec.js.map +1 -1
- package/react/components/sdd/tests/ContentHeader.spec.js +2 -0
- package/react/components/sdd/tests/ContentHeader.spec.js.map +1 -1
- package/react/components/sdd/tests/EditPreload.spec.js +13 -0
- package/react/components/sdd/tests/EditPreload.spec.js.map +1 -1
- package/react/components/sdd/tests/Export.spec.js +2 -1
- package/react/components/sdd/tests/Export.spec.js.map +1 -1
- package/react/components/sdd/tests/ItemList.spec.js +4 -0
- package/react/components/sdd/tests/ItemList.spec.js.map +1 -1
- package/react/components/sdd/tests/OptionalSettingsView.spec.js +29 -0
- package/react/components/sdd/tests/OptionalSettingsView.spec.js.map +1 -1
- package/react/components/sdd/tests/ProjectErrors.spec.js +2 -0
- package/react/components/sdd/tests/ProjectErrors.spec.js.map +1 -1
- package/react/components/sdd/tests/Themes.spec.js +1 -1
- package/react/components/sdd/tests/Themes.spec.js.map +1 -1
- package/react/components/sdd/tests/Toolbar.spec.js +53 -0
- package/react/components/sdd/tests/Toolbar.spec.js.map +1 -1
- package/react/components/sdd/tests/a11y_helper.js +8 -0
- package/react/components/sdd/tests/a11y_helper.js.map +1 -1
- package/react/components/search/Highlight.d.ts +6 -0
- package/react/components/search/Highlight.js +19 -0
- package/react/components/search/Highlight.js.map +1 -1
- package/react/components/search/SearchBestMatch.d.ts +4 -0
- package/react/components/search/SearchBestMatch.js +11 -0
- package/react/components/search/SearchBestMatch.js.map +1 -1
- package/react/components/search/SearchInput.d.ts +5 -0
- package/react/components/search/SearchInput.js +6 -0
- package/react/components/search/SearchInput.js.map +1 -1
- package/react/components/search/SearchProviderResults.js +2 -0
- package/react/components/search/SearchProviderResults.js.map +1 -1
- package/react/components/search/SearchResult.js +6 -0
- package/react/components/search/SearchResult.js.map +1 -1
- package/react/components/search/SearchResult.spec.js +7 -0
- package/react/components/search/SearchResult.spec.js.map +1 -1
- package/react/components/search/SearchResult.stories.js +4 -0
- package/react/components/search/SearchResult.stories.js.map +1 -1
- package/react/components/search/SearchResults.js +5 -1
- package/react/components/search/SearchResults.js.map +1 -1
- package/react/components/search/SearchResults.spec.js +7 -0
- package/react/components/search/SearchResults.spec.js.map +1 -1
- package/react/components/shared/Animate.d.ts +5 -0
- package/react/components/shared/Animate.js +12 -1
- package/react/components/shared/Animate.js.map +1 -1
- package/react/components/shared/DefaultDropdownButton.js +9 -0
- package/react/components/shared/DefaultDropdownButton.js.map +1 -1
- package/react/components/shared/Tag.d.ts +0 -4
- package/react/components/shared/Tag.js +4 -0
- package/react/components/shared/Tag.js.map +1 -1
- package/react/components/shared/TagsMenu.d.ts +6 -0
- package/react/components/shared/TagsMenu.js +7 -0
- package/react/components/shared/TagsMenu.js.map +1 -1
- package/react/components/shared/addProtocolToValidURL.d.ts +6 -0
- package/react/components/shared/addProtocolToValidURL.js +6 -0
- package/react/components/shared/addProtocolToValidURL.js.map +1 -1
- package/react/components/shared/openQuitConfirmationDialog.d.ts +1 -1
- package/react/components/shared/openQuitConfirmationDialog.js +4 -4
- package/react/components/shared/openQuitConfirmationDialog.js.map +1 -1
- package/react/components/shared/tests/addProtocolToValidURL.spec.js +1 -0
- package/react/components/shared/tests/addProtocolToValidURL.spec.js.map +1 -1
- package/react/components/shared/validateURL.d.ts +18 -0
- package/react/components/shared/validateURL.js +24 -5
- package/react/components/shared/validateURL.js.map +1 -1
- package/react/components/singleInputDialog/SingleInputDialog.css +1 -1
- package/react/components/singleInputDialog/SingleInputDialog.d.ts +3 -0
- package/react/components/singleInputDialog/SingleInputDialog.js +44 -0
- package/react/components/singleInputDialog/SingleInputDialog.js.map +1 -1
- package/react/components/smartDesktopDesigner/SmartDesktopDesigner.js +6 -0
- package/react/components/smartDesktopDesigner/SmartDesktopDesigner.js.map +1 -1
- package/react/components/system/System.d.ts +22 -0
- package/react/components/system/System.js +23 -1
- package/react/components/system/System.js.map +1 -1
- package/react/components/system/System.stories.js +1 -0
- package/react/components/system/System.stories.js.map +1 -1
- package/react/components/system/SystemTrayComponentShell.d.ts +6 -0
- package/react/components/system/SystemTrayComponentShell.js +9 -0
- package/react/components/system/SystemTrayComponentShell.js.map +1 -1
- package/react/components/toolbar/AutoArrange.d.ts +5 -0
- package/react/components/toolbar/AutoArrange.js +8 -1
- package/react/components/toolbar/AutoArrange.js.map +1 -1
- package/react/components/toolbar/AutoArrange.spec.js +1 -0
- package/react/components/toolbar/AutoArrange.spec.js.map +1 -1
- package/react/components/toolbar/AutoArrange.stories.js +1 -0
- package/react/components/toolbar/AutoArrange.stories.js.map +1 -1
- package/react/components/toolbar/DragHandle.d.ts +4 -0
- package/react/components/toolbar/DragHandle.js +11 -0
- package/react/components/toolbar/DragHandle.js.map +1 -1
- package/react/components/toolbar/DragHandle.spec.js +1 -0
- package/react/components/toolbar/DragHandle.spec.js.map +1 -1
- package/react/components/toolbar/DragHandle.stories.js +1 -0
- package/react/components/toolbar/DragHandle.stories.js.map +1 -1
- package/react/components/toolbar/MinimizeAll.d.ts +4 -0
- package/react/components/toolbar/MinimizeAll.js +7 -1
- package/react/components/toolbar/MinimizeAll.js.map +1 -1
- package/react/components/toolbar/MinimizeAll.spec.js +1 -0
- package/react/components/toolbar/MinimizeAll.spec.js.map +1 -1
- package/react/components/toolbar/MinimizeAll.stories.js +1 -0
- package/react/components/toolbar/MinimizeAll.stories.js.map +1 -1
- package/react/components/toolbar/NotificationControl.d.ts +5 -0
- package/react/components/toolbar/NotificationControl.js +8 -1
- package/react/components/toolbar/NotificationControl.js.map +1 -1
- package/react/components/toolbar/RevealAll.d.ts +4 -0
- package/react/components/toolbar/RevealAll.js +7 -1
- package/react/components/toolbar/RevealAll.js.map +1 -1
- package/react/components/toolbar/RevealAll.spec.js +1 -0
- package/react/components/toolbar/RevealAll.spec.js.map +1 -1
- package/react/components/toolbar/RevealAll.stories.js +1 -0
- package/react/components/toolbar/RevealAll.stories.js.map +1 -1
- package/react/components/toolbar/SddButton.d.ts +4 -0
- package/react/components/toolbar/SddButton.js +4 -0
- package/react/components/toolbar/SddButton.js.map +1 -1
- package/react/components/toolbar/ToolbarIcon.d.ts +4 -0
- package/react/components/toolbar/ToolbarIcon.js +4 -0
- package/react/components/toolbar/ToolbarIcon.js.map +1 -1
- package/react/components/toolbar/ToolbarSection.d.ts +7 -0
- package/react/components/toolbar/ToolbarSection.js +19 -1
- package/react/components/toolbar/ToolbarSection.js.map +1 -1
- package/react/components/toolbar/ToolbarShell.d.ts +5 -0
- package/react/components/toolbar/ToolbarShell.js +7 -0
- package/react/components/toolbar/ToolbarShell.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncher.d.ts +16 -0
- package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncher.js +20 -0
- package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncher.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/AddNewAppForm.d.ts +52 -0
- package/react/components/toolbar/advancedAppLauncher/components/AddNewAppForm.js +58 -0
- package/react/components/toolbar/advancedAppLauncher/components/AddNewAppForm.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/AddNewFolder.d.ts +5 -0
- package/react/components/toolbar/advancedAppLauncher/components/AddNewFolder.js +5 -0
- package/react/components/toolbar/advancedAppLauncher/components/AddNewFolder.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/AppActionsMenu.d.ts +27 -0
- package/react/components/toolbar/advancedAppLauncher/components/AppActionsMenu.js +49 -0
- package/react/components/toolbar/advancedAppLauncher/components/AppActionsMenu.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/AppDefinition.d.ts +13 -0
- package/react/components/toolbar/advancedAppLauncher/components/AppDefinition.js +14 -0
- package/react/components/toolbar/advancedAppLauncher/components/AppDefinition.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/Content.d.ts +5 -0
- package/react/components/toolbar/advancedAppLauncher/components/Content.js +19 -0
- package/react/components/toolbar/advancedAppLauncher/components/Content.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/FilterSort.d.ts +4 -0
- package/react/components/toolbar/advancedAppLauncher/components/FilterSort.js +4 -0
- package/react/components/toolbar/advancedAppLauncher/components/FilterSort.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/FoldersList.d.ts +16 -0
- package/react/components/toolbar/advancedAppLauncher/components/FoldersList.js +39 -0
- package/react/components/toolbar/advancedAppLauncher/components/FoldersList.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/LeftNavBottomLinks.d.ts +4 -0
- package/react/components/toolbar/advancedAppLauncher/components/LeftNavBottomLinks.js +9 -0
- package/react/components/toolbar/advancedAppLauncher/components/LeftNavBottomLinks.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/SearchBox.js +3 -0
- package/react/components/toolbar/advancedAppLauncher/components/SearchBox.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/TagsMenu.d.ts +6 -0
- package/react/components/toolbar/advancedAppLauncher/components/TagsMenu.js +7 -0
- package/react/components/toolbar/advancedAppLauncher/components/TagsMenu.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/ToggleFavoriteDropdown.d.ts +5 -0
- package/react/components/toolbar/advancedAppLauncher/components/ToggleFavoriteDropdown.js +5 -0
- package/react/components/toolbar/advancedAppLauncher/components/ToggleFavoriteDropdown.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/modules/AppDirectory.d.ts +5 -0
- package/react/components/toolbar/advancedAppLauncher/modules/AppDirectory.js +5 -0
- package/react/components/toolbar/advancedAppLauncher/modules/AppDirectory.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/modules/FDC3.d.ts +37 -0
- package/react/components/toolbar/advancedAppLauncher/modules/FDC3.js +40 -0
- package/react/components/toolbar/advancedAppLauncher/modules/FDC3.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/stores/StoreActions.d.ts +3 -0
- package/react/components/toolbar/advancedAppLauncher/stores/StoreActions.js +82 -0
- package/react/components/toolbar/advancedAppLauncher/stores/StoreActions.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/utils/sort-functions.d.ts +10 -0
- package/react/components/toolbar/advancedAppLauncher/utils/sort-functions.js +11 -0
- package/react/components/toolbar/advancedAppLauncher/utils/sort-functions.js.map +1 -1
- package/react/components/toolbar/appLauncher/AppLauncherMenu.d.ts +18 -0
- package/react/components/toolbar/appLauncher/AppLauncherMenu.js +20 -0
- package/react/components/toolbar/appLauncher/AppLauncherMenu.js.map +1 -1
- package/react/components/toolbar/appLauncher/StaticAppLauncherMenu.d.ts +9 -0
- package/react/components/toolbar/appLauncher/StaticAppLauncherMenu.js +12 -0
- package/react/components/toolbar/appLauncher/StaticAppLauncherMenu.js.map +1 -1
- package/react/components/toolbar/appLauncher/appLauncher.css +1 -1
- package/react/components/toolbar/appLauncher/components/componentList.d.ts +3 -0
- package/react/components/toolbar/appLauncher/components/componentList.js +17 -3
- package/react/components/toolbar/appLauncher/components/componentList.js.map +1 -1
- package/react/components/toolbar/appLauncher/stores/appLauncherStore.d.ts +6 -0
- package/react/components/toolbar/appLauncher/stores/appLauncherStore.js +26 -0
- package/react/components/toolbar/appLauncher/stores/appLauncherStore.js.map +1 -1
- package/react/components/toolbar/dashbar/Dashbar.js +70 -3
- package/react/components/toolbar/dashbar/Dashbar.js.map +1 -1
- package/react/components/toolbar/dashbar/DashbarItem.js +5 -0
- package/react/components/toolbar/dashbar/DashbarItem.js.map +1 -1
- package/react/components/toolbar/workspaceManagementMenu/WorkspaceManagementMenu.d.ts +7 -0
- package/react/components/toolbar/workspaceManagementMenu/WorkspaceManagementMenu.js +7 -0
- package/react/components/toolbar/workspaceManagementMenu/WorkspaceManagementMenu.js.map +1 -1
- package/react/components/toolbar/workspaceManagementMenu/components/Workspace.d.ts +16 -0
- package/react/components/toolbar/workspaceManagementMenu/components/Workspace.js +20 -0
- package/react/components/toolbar/workspaceManagementMenu/components/Workspace.js.map +1 -1
- package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceActions.d.ts +26 -0
- package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceActions.js +29 -0
- package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceActions.js.map +1 -1
- package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceList.d.ts +5 -0
- package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceList.js +6 -0
- package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceList.js.map +1 -1
- package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.d.ts +76 -0
- package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js +140 -1
- package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js.map +1 -1
- package/react/components/toolbar/workspaceManagementMenu/workspaceManagementMenu.css +8 -18
- package/react/components/userPreferences/NotificationsPreferencesContext.d.ts +4 -0
- package/react/components/userPreferences/NotificationsPreferencesContext.js +4 -0
- package/react/components/userPreferences/NotificationsPreferencesContext.js.map +1 -1
- package/react/components/userPreferences/UserPreferenceTypes.d.ts +3 -0
- package/react/components/userPreferences/UserPreferences.d.ts +8 -0
- package/react/components/userPreferences/UserPreferences.js +8 -0
- package/react/components/userPreferences/UserPreferences.js.map +1 -1
- package/react/components/userPreferences/UserPreferencesBase.js +4 -0
- package/react/components/userPreferences/UserPreferencesBase.js.map +1 -1
- package/react/components/userPreferences/components/ContentSection.d.ts +5 -0
- package/react/components/userPreferences/components/LeftNav.d.ts +4 -0
- package/react/components/userPreferences/components/content/DashbarEditor.js +3 -0
- package/react/components/userPreferences/components/content/DashbarEditor.js.map +1 -1
- package/react/components/userPreferences/components/content/Notifications.js +3 -0
- package/react/components/userPreferences/components/content/Notifications.js.map +1 -1
- package/react/components/userPreferences/components/content/Workspaces.d.ts +12 -0
- package/react/components/userPreferences/components/content/Workspaces.js +33 -1
- package/react/components/userPreferences/components/content/Workspaces.js.map +1 -1
- package/react/components/userPreferences/components/content/notificationViews/NotificationsPreferencesHome.js +3 -0
- package/react/components/userPreferences/components/content/notificationViews/NotificationsPreferencesHome.js.map +1 -1
- package/react/components/userPreferences/components/content/notificationViews/NotificationsSourceTypes.js +3 -0
- package/react/components/userPreferences/components/content/notificationViews/NotificationsSourceTypes.js.map +1 -1
- package/react/components/userPreferences/components/content/notificationViews/NotificationsSourcesPreferences.js +3 -0
- package/react/components/userPreferences/components/content/notificationViews/NotificationsSourcesPreferences.js.map +1 -1
- package/react/components/userPreferences/components/general/ScheduledClose.js +11 -0
- package/react/components/userPreferences/components/general/ScheduledClose.js.map +1 -1
- package/react/components/userPreferences/components/workspaces/WorkspaceItem.js +3 -0
- package/react/components/userPreferences/components/workspaces/WorkspaceItem.js.map +1 -1
- package/react/components/userPreferences/stores/UserPreferencesStore.d.ts +17 -0
- package/react/components/userPreferences/stores/UserPreferencesStore.js +27 -0
- package/react/components/userPreferences/stores/UserPreferencesStore.js.map +1 -1
- package/react/components/userPreferences/tests/NotificationsPreferencesHome.spec.js +1 -0
- package/react/components/userPreferences/tests/NotificationsPreferencesHome.spec.js.map +1 -1
- package/react/components/userPreferences/tests/Workspace.spec.js +20 -0
- package/react/components/userPreferences/tests/Workspace.spec.js.map +1 -1
- package/react/components/windowTitleBar/WindowTitleBarShell.d.ts +124 -0
- package/react/components/windowTitleBar/WindowTitleBarShell.js +284 -35
- package/react/components/windowTitleBar/WindowTitleBarShell.js.map +1 -1
- package/react/components/windowTitleBar/components/center/Tab.d.ts +3 -0
- package/react/components/windowTitleBar/components/center/Tab.js +3 -0
- package/react/components/windowTitleBar/components/center/Tab.js.map +1 -1
- package/react/components/windowTitleBar/components/center/TabList.d.ts +90 -0
- package/react/components/windowTitleBar/components/center/TabList.js +170 -4
- package/react/components/windowTitleBar/components/center/TabList.js.map +1 -1
- package/react/components/windowTitleBar/components/left/LinkerButton.d.ts +9 -1
- package/react/components/windowTitleBar/components/left/LinkerButton.js +25 -9
- package/react/components/windowTitleBar/components/left/LinkerButton.js.map +1 -1
- package/react/components/windowTitleBar/components/left/LinkerButtonDeprecated.d.ts +47 -0
- package/react/components/windowTitleBar/components/left/LinkerButtonDeprecated.js +76 -1
- package/react/components/windowTitleBar/components/left/LinkerButtonDeprecated.js.map +1 -1
- package/react/components/windowTitleBar/components/left/LinkerGroups.d.ts +4 -0
- package/react/components/windowTitleBar/components/left/LinkerGroups.js +5 -0
- package/react/components/windowTitleBar/components/left/LinkerGroups.js.map +1 -1
- package/react/components/windowTitleBar/components/left/LinkerGroupsDeprecated.d.ts +18 -0
- package/react/components/windowTitleBar/components/left/LinkerGroupsDeprecated.js +49 -0
- package/react/components/windowTitleBar/components/left/LinkerGroupsDeprecated.js.map +1 -1
- package/react/components/windowTitleBar/components/left/ShareButton.d.ts +17 -0
- package/react/components/windowTitleBar/components/left/ShareButton.js +39 -0
- package/react/components/windowTitleBar/components/left/ShareButton.js.map +1 -1
- package/react/components/windowTitleBar/components/right/AlwaysOnTopButton.js +4 -0
- package/react/components/windowTitleBar/components/right/AlwaysOnTopButton.js.map +1 -1
- package/react/components/windowTitleBar/components/right/CloseButton.d.ts +27 -0
- package/react/components/windowTitleBar/components/right/CloseButton.js +27 -0
- package/react/components/windowTitleBar/components/right/CloseButton.js.map +1 -1
- package/react/components/windowTitleBar/components/right/GroupingButton.d.ts +37 -0
- package/react/components/windowTitleBar/components/right/GroupingButton.js +40 -0
- package/react/components/windowTitleBar/components/right/GroupingButton.js.map +1 -1
- package/react/components/windowTitleBar/components/right/MaximizeButton.d.ts +46 -0
- package/react/components/windowTitleBar/components/right/MaximizeButton.js +54 -0
- package/react/components/windowTitleBar/components/right/MaximizeButton.js.map +1 -1
- package/react/components/windowTitleBar/components/right/MinimizeButton.d.ts +26 -0
- package/react/components/windowTitleBar/components/right/MinimizeButton.js +26 -0
- package/react/components/windowTitleBar/components/right/MinimizeButton.js.map +1 -1
- package/react/components/windowTitleBar/components/windowTitle.d.ts +40 -0
- package/react/components/windowTitleBar/components/windowTitle.js +172 -10
- package/react/components/windowTitleBar/components/windowTitle.js.map +1 -1
- package/react/components/windowTitleBar/stores/windowTitleBarStore.d.ts +5 -0
- package/react/components/windowTitleBar/stores/windowTitleBarStore.js +72 -1
- package/react/components/windowTitleBar/stores/windowTitleBarStore.js.map +1 -1
- package/react/components/yesNoDialog/YesNoDialog.css +1 -1
- package/react/components/yesNoDialog/YesNoDialog.d.ts +3 -0
- package/react/components/yesNoDialog/YesNoDialog.js +63 -0
- package/react/components/yesNoDialog/YesNoDialog.js.map +1 -1
- package/react/components/yesNoDialog/YesNoDialog.spec.js +4 -0
- package/react/components/yesNoDialog/YesNoDialog.spec.js.map +1 -1
- package/react/components/yesNoDialog/timer.js +2 -0
- package/react/components/yesNoDialog/timer.js.map +1 -1
- package/react/enzymeSetup.js +5 -0
- package/react/enzymeSetup.js.map +1 -1
- package/react/hooks/useDashbar.js +10 -0
- package/react/hooks/useDashbar.js.map +1 -1
- package/react/hooks/useDeepEffect.d.ts +4 -0
- package/react/hooks/useDeepEffect.js +21 -0
- package/react/hooks/useDeepEffect.js.map +1 -1
- package/react/hooks/useFavorites.d.ts +15 -0
- package/react/hooks/useFavorites.js +3 -0
- package/react/hooks/useFavorites.js.map +1 -1
- package/react/hooks/useFavoritesShell.d.ts +4 -0
- package/react/hooks/useFavoritesShell.js +23 -0
- package/react/hooks/useFavoritesShell.js.map +1 -1
- package/react/hooks/useHotkey.d.ts +6 -0
- package/react/hooks/useHotkey.js +9 -0
- package/react/hooks/useHotkey.js.map +1 -1
- package/react/hooks/useLinker.js +14 -0
- package/react/hooks/useLinker.js.map +1 -1
- package/react/hooks/useMenu.d.ts +29 -0
- package/react/hooks/useMenu.js +12 -1
- package/react/hooks/useMenu.js.map +1 -1
- package/react/hooks/useNotifications.d.ts +44 -0
- package/react/hooks/useNotifications.js +90 -0
- package/react/hooks/useNotifications.js.map +1 -1
- package/react/hooks/useOutsideClickDetector.d.ts +3 -0
- package/react/hooks/useOutsideClickDetector.js +3 -0
- package/react/hooks/useOutsideClickDetector.js.map +1 -1
- package/react/hooks/usePubSub.d.ts +17 -0
- package/react/hooks/usePubSub.js +18 -0
- package/react/hooks/usePubSub.js.map +1 -1
- package/react/hooks/useSearch.d.ts +5 -0
- package/react/hooks/useSearch.js +30 -0
- package/react/hooks/useSearch.js.map +1 -1
- package/react/hooks/useToolbar.js +52 -0
- package/react/hooks/useToolbar.js.map +1 -1
- package/react/reducers/favoriteReducer.d.ts +3 -0
- package/react/reducers/linkerReducer.d.ts +3 -0
- package/react/reducers/linkerReducer.js +4 -0
- package/react/reducers/linkerReducer.js.map +1 -1
- package/react/reducers/menuReducer.d.ts +28 -0
- package/react/reducers/menuReducer.js +34 -0
- package/react/reducers/menuReducer.js.map +1 -1
- package/react/reducers/rootReducer.js +3 -0
- package/react/reducers/rootReducer.js.map +1 -1
- package/react/reducers/searchReducer.d.ts +7 -0
- package/react/reducers/searchReducer.js +6 -0
- package/react/reducers/searchReducer.js.map +1 -1
- package/react/reducers/workspaceReducer.js +1 -0
- package/react/reducers/workspaceReducer.js.map +1 -1
- package/react/store.d.ts +4 -0
- package/react/store.js +11 -0
- package/react/store.js.map +1 -1
- package/react/tsconfig.tsbuildinfo +1 -1
- package/react/types/fdc3.d.ts +2 -0
- package/react/types/linkerTypes.d.ts +13 -0
- package/react/types/linkerTypes.js +1 -0
- package/react/types/linkerTypes.js.map +1 -1
- package/react/types/smartDesktopDesignerTypes.d.ts +5 -0
- package/react/types/smartDesktopDesignerTypes.js.map +1 -1
- package/react/types/workspaceTypes.d.ts +8 -0
|
@@ -3,12 +3,16 @@ import { mount } from "enzyme";
|
|
|
3
3
|
import { describe, it } from "mocha";
|
|
4
4
|
import { expect } from "chai";
|
|
5
5
|
import { Default, Empty } from "../stories/OptionalSettingsView.stories";
|
|
6
|
+
// For running accessibility scans
|
|
6
7
|
import { accessibilityAssessor } from "./a11y_helper";
|
|
7
8
|
import { waitTick } from "../sdd_helpers";
|
|
9
|
+
// For testing user interactions (like click events):
|
|
8
10
|
import sinon from "sinon";
|
|
11
|
+
// Necessary to allow sinon to work with mocked actions (which are shown in the Actions panel in Storybook)
|
|
9
12
|
import addons, { mockChannel } from "@storybook/addons";
|
|
10
13
|
addons.setChannel(mockChannel());
|
|
11
14
|
describe("<OptionalSettingsView/>", () => {
|
|
15
|
+
// Used to clear after each interactive test using sinon
|
|
12
16
|
afterEach(() => {
|
|
13
17
|
sinon.restore();
|
|
14
18
|
});
|
|
@@ -38,17 +42,20 @@ describe("<OptionalSettingsView/>", () => {
|
|
|
38
42
|
expect(delete_buttons.length, "There are also 2 delete buttons").to.equal(2);
|
|
39
43
|
});
|
|
40
44
|
describe("Check app config updates", async () => {
|
|
45
|
+
/*** WARNING!!: Tests are not independent and must go in this order ***/
|
|
41
46
|
it("Removing a preload", async () => {
|
|
42
47
|
var _a, _b;
|
|
43
48
|
const buttonSpy = sinon.spy(Default.args, "updateApp");
|
|
44
49
|
const wrapper = mount(React.createElement(Default, Object.assign({}, Default.args)));
|
|
45
50
|
await waitTick();
|
|
46
51
|
wrapper.update();
|
|
52
|
+
// Click list item
|
|
47
53
|
expect(wrapper.find(".app-list-row .app-name").at(1).text(), "First item name").to.equal("zoom");
|
|
48
54
|
wrapper.find(".app-list-row").at(1).simulate("click");
|
|
49
55
|
await waitTick();
|
|
50
56
|
wrapper.update();
|
|
51
57
|
wrapper.find(".emperorOption [type='checkbox']").at(0).simulate("change");
|
|
58
|
+
// Click save button
|
|
52
59
|
wrapper.find(".app-actions-right-wrapper .button-container-secondary button").simulate("click");
|
|
53
60
|
await waitTick();
|
|
54
61
|
expect(buttonSpy.args.length, "Expect updateApp to be called once, because only one app was updated").to.equal(1);
|
|
@@ -66,6 +73,7 @@ describe("<OptionalSettingsView/>", () => {
|
|
|
66
73
|
await waitTick();
|
|
67
74
|
wrapper.update();
|
|
68
75
|
wrapper.find(".emperorOption [type='checkbox']").at(0).simulate("change");
|
|
76
|
+
// Click save button
|
|
69
77
|
wrapper.find(".app-actions-right-wrapper .button-container-secondary button").simulate("click");
|
|
70
78
|
await waitTick();
|
|
71
79
|
expect(buttonSpy.args.length, "Expect updateApp to be called once, because only one app was updated").to.equal(1);
|
|
@@ -87,6 +95,7 @@ describe("<OptionalSettingsView/>", () => {
|
|
|
87
95
|
value: "zoom2",
|
|
88
96
|
},
|
|
89
97
|
});
|
|
98
|
+
// Click save button
|
|
90
99
|
wrapper.find(".app-actions-right-wrapper .button-container-secondary button").simulate("click");
|
|
91
100
|
await waitTick();
|
|
92
101
|
expect(buttonSpy.args.length, "Expect updateApp to be called once, because only one app was updated").to.equal(1);
|
|
@@ -103,6 +112,7 @@ describe("<OptionalSettingsView/>", () => {
|
|
|
103
112
|
wrapper.find(".app-list-row").at(1).simulate("click");
|
|
104
113
|
await waitTick();
|
|
105
114
|
wrapper.update();
|
|
115
|
+
// Click save button
|
|
106
116
|
wrapper.find(".app-actions-right-wrapper .button-container-secondary button").simulate("click");
|
|
107
117
|
await waitTick();
|
|
108
118
|
expect(buttonSpy.args.length, "Expect updateApp to not be called").to.equal(0);
|
|
@@ -116,13 +126,16 @@ describe("<OptionalSettingsView/>", () => {
|
|
|
116
126
|
wrapper.find(".app-list-row").at(0).simulate("click");
|
|
117
127
|
await waitTick();
|
|
118
128
|
wrapper.update();
|
|
129
|
+
// Rename "native-overrides" to "native-overrides2"
|
|
119
130
|
wrapper.find("#preload-alias").simulate("change", {
|
|
120
131
|
target: {
|
|
121
132
|
value: "native-overrides2",
|
|
122
133
|
},
|
|
123
134
|
});
|
|
135
|
+
// Add this preload to "Example Charts App"
|
|
124
136
|
wrapper.find(".emperorOption [type='checkbox']").at(0).simulate("change");
|
|
125
137
|
expect(wrapper.find(".emperorOption [type='checkbox']").at(0).prop("checked")).to.be.true;
|
|
138
|
+
// Click save button
|
|
126
139
|
wrapper.find(".app-actions-right-wrapper .button-container-secondary button").simulate("click");
|
|
127
140
|
await waitTick();
|
|
128
141
|
expect(buttonSpy.args.length, "Expect updateApp to be called once, because only one app was updated").to.equal(1);
|
|
@@ -140,13 +153,16 @@ describe("<OptionalSettingsView/>", () => {
|
|
|
140
153
|
wrapper.find(".app-list-row").at(0).simulate("click");
|
|
141
154
|
await waitTick();
|
|
142
155
|
wrapper.update();
|
|
156
|
+
// Rename "native-overrides2" to "native-overrides3"
|
|
143
157
|
wrapper.find("#preload-alias").simulate("change", {
|
|
144
158
|
target: {
|
|
145
159
|
value: "native-overrides3",
|
|
146
160
|
},
|
|
147
161
|
});
|
|
162
|
+
// Remove this preload to "Example Charts App"
|
|
148
163
|
wrapper.find(".emperorOption [type='checkbox']").at(0).simulate("change");
|
|
149
164
|
expect(wrapper.find(".emperorOption [type='checkbox']").at(0).prop("checked")).to.be.false;
|
|
165
|
+
// Click save button
|
|
150
166
|
wrapper.find(".app-actions-right-wrapper .button-container-secondary button").simulate("click");
|
|
151
167
|
await waitTick();
|
|
152
168
|
expect(buttonSpy.args.length, "Expect updateApp to be called once, because only one app was updated").to.equal(1);
|
|
@@ -162,24 +178,29 @@ describe("<OptionalSettingsView/>", () => {
|
|
|
162
178
|
const wrapper = mount(React.createElement(Default, Object.assign({}, Default.args)));
|
|
163
179
|
await waitTick();
|
|
164
180
|
wrapper.update();
|
|
181
|
+
// Click Add button
|
|
165
182
|
wrapper.find(".button-container-primary button").simulate("click");
|
|
166
183
|
await waitTick();
|
|
167
184
|
wrapper.update();
|
|
185
|
+
// Alias name
|
|
168
186
|
wrapper.find("#preload-alias").simulate("change", {
|
|
169
187
|
target: {
|
|
170
188
|
value: "test",
|
|
171
189
|
},
|
|
172
190
|
});
|
|
191
|
+
// URL name
|
|
173
192
|
wrapper.find("#preload-url").simulate("change", {
|
|
174
193
|
target: {
|
|
175
194
|
value: "https://assets.finsemble.com/preloads/testPreload.js",
|
|
176
195
|
},
|
|
177
196
|
});
|
|
197
|
+
// Assign "Load for" to "All apps"
|
|
178
198
|
wrapper.find("input[name='preload-usage'][value='all']").simulate("change", {
|
|
179
199
|
target: {
|
|
180
200
|
value: "all",
|
|
181
201
|
},
|
|
182
202
|
});
|
|
203
|
+
// Click save button
|
|
183
204
|
wrapper.find(".app-actions-right-wrapper .button-container-secondary button").simulate("click");
|
|
184
205
|
await waitTick();
|
|
185
206
|
expect(savePreloadSpy.calledOnce).to.be.true;
|
|
@@ -196,13 +217,16 @@ describe("<OptionalSettingsView/>", () => {
|
|
|
196
217
|
const wrapper = mount(React.createElement(Default, Object.assign({}, Default.args)));
|
|
197
218
|
await waitTick();
|
|
198
219
|
wrapper.update();
|
|
220
|
+
// Click list item
|
|
199
221
|
expect(wrapper.find(".app-list-row .app-name").at(1).text(), "First item name").to.equal("test");
|
|
200
222
|
wrapper.find(".app-list-row").at(1).simulate("click");
|
|
223
|
+
// URL name
|
|
201
224
|
wrapper.find("#preload-url").simulate("change", {
|
|
202
225
|
target: {
|
|
203
226
|
value: "http://assets.finsemble.com/preloads/testPreload.js",
|
|
204
227
|
},
|
|
205
228
|
});
|
|
229
|
+
// Click save button
|
|
206
230
|
wrapper.find(".app-actions-right-wrapper .button-container-secondary button").simulate("click");
|
|
207
231
|
await waitTick();
|
|
208
232
|
expect(savePreloadSpy.calledOnce).to.be.true;
|
|
@@ -219,13 +243,16 @@ describe("<OptionalSettingsView/>", () => {
|
|
|
219
243
|
const wrapper = mount(React.createElement(Default, Object.assign({}, Default.args)));
|
|
220
244
|
await waitTick();
|
|
221
245
|
wrapper.update();
|
|
246
|
+
// Click list item
|
|
222
247
|
expect(wrapper.find(".app-list-row .app-name").at(1).text(), "First item name").to.equal("test");
|
|
223
248
|
wrapper.find(".app-list-row").at(1).simulate("click");
|
|
249
|
+
// Alias name
|
|
224
250
|
wrapper.find("#preload-alias").simulate("change", {
|
|
225
251
|
target: {
|
|
226
252
|
value: "test2",
|
|
227
253
|
},
|
|
228
254
|
});
|
|
255
|
+
// Click save button
|
|
229
256
|
wrapper.find(".app-actions-right-wrapper .button-container-secondary button").simulate("click");
|
|
230
257
|
await waitTick();
|
|
231
258
|
expect(savePreloadSpy.calledOnce).to.be.true;
|
|
@@ -243,8 +270,10 @@ describe("<OptionalSettingsView/>", () => {
|
|
|
243
270
|
const wrapper = mount(React.createElement(Default, Object.assign({}, Default.args)));
|
|
244
271
|
await waitTick();
|
|
245
272
|
wrapper.update();
|
|
273
|
+
// Click list item
|
|
246
274
|
expect(wrapper.find(".app-list-row .app-name").at(1).text(), "First item name").to.equal("test2");
|
|
247
275
|
wrapper.find(".app-list-row").at(1).simulate("click");
|
|
276
|
+
// Click save button
|
|
248
277
|
wrapper.find(".button-container-danger button").simulate("click");
|
|
249
278
|
await waitTick();
|
|
250
279
|
expect(savePreloadSpy.calledOnce).to.be.false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OptionalSettingsView.spec.js","sourceRoot":"","sources":["../../../../src/components/sdd/tests/OptionalSettingsView.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 { OptionalSettingsViewProps } from \"../OptionalSettingsView\";\nimport { Default, Empty } from \"../stories/OptionalSettingsView.stories\";\n\n// For running accessibility scans\nimport { accessibilityAssessor } from \"./a11y_helper\";\nimport { waitTick } from \"../sdd_helpers\";\n\n// For testing user interactions (like click events):\nimport sinon from \"sinon\";\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(\"<OptionalSettingsView/>\", () => {\n\t// Used to clear after each interactive test using sinon\n\tafterEach(() => {\n\t\tsinon.restore();\n\t});\n\n\tit(\"should pass accessibility scans\", async () => {\n\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\texpect(await accessibilityAssessor(wrapper)).to.be.true;\n\t});\n\n\tit(\"should be empty when there are no preloads\", async () => {\n\t\tconst wrapper = mount(<Empty {...(Empty.args as OptionalSettingsViewProps)} />);\n\n\t\tconst button = wrapper.find(\"button\").last();\n\t\texpect(button.exists(), \"The button exists\").to.be.true;\n\t\texpect(button.text(), \"The button's text\").to.equal(\"Add\");\n\n\t\texpect(wrapper.find(\".app-list-empty\").exists(), \"Empty message exists\").to.be.true;\n\t\texpect(wrapper.find(\".app-list-empty\").text(), \"Empty message text\").to.contain(\"to add preloads\");\n\t\texpect(wrapper.find(\".app-list-empty.no-dropzone\").exists(), \"Empty message has no dropzone styling\").to.be.true;\n\t});\n\n\tit(\"should show preload aliases if there are registered preloads\", async () => {\n\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\tconst names = wrapper.find(\".app-name\");\n\t\texpect(names.length, \"There are 2 names listed\").to.equal(2);\n\t\tconst names_as_text = names.map((elem) => elem.text());\n\n\t\texpect(names_as_text).includes(\"native-overrides\");\n\t\texpect(names_as_text).includes(\"zoom\");\n\n\t\tconst delete_buttons = wrapper.find(\".button-container-icon.icon-delete\");\n\t\texpect(delete_buttons.length, \"There are also 2 delete buttons\").to.equal(2);\n\t});\n\n\tdescribe(\"Check app config updates\", async () => {\n\t\t/*** WARNING!!: Tests are not independent and must go in this order ***/\n\n\t\tit(\"Removing a preload\", async () => {\n\t\t\tconst buttonSpy = sinon.spy(Default.args as OptionalSettingsViewProps, \"updateApp\");\n\t\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\t\t\t// Click list item\n\t\t\texpect(wrapper.find(\".app-list-row .app-name\").at(1).text(), \"First item name\").to.equal(\"zoom\");\n\t\t\twrapper.find(\".app-list-row\").at(1).simulate(\"click\");\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\twrapper.find(\".emperorOption [type='checkbox']\").at(0).simulate(\"change\");\n\n\t\t\t// Click save button\n\t\t\twrapper.find(\".app-actions-right-wrapper .button-container-secondary button\").simulate(\"click\");\n\t\t\tawait waitTick();\n\n\t\t\texpect(buttonSpy.args.length, \"Expect updateApp to be called once, because only one app was updated\").to.equal(1);\n\t\t\tconst [updatedAppId, updatedAppConfig] = buttonSpy.args[0];\n\t\t\texpect(updatedAppId, \"Which app was added\").to.equal(\"Example Charts App\");\n\t\t\texpect(\n\t\t\t\tupdatedAppConfig.manifest?.component?.preload,\n\t\t\t\t\"what should preload config for this app look like now\"\n\t\t\t).to.not.include(\"zoom\");\n\t\t});\n\t\tit(\"Adding a preload\", async () => {\n\t\t\tconst buttonSpy = sinon.spy(Default.args as OptionalSettingsViewProps, \"updateApp\");\n\t\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\twrapper.find(\".app-list-row\").at(1).simulate(\"click\");\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\twrapper.find(\".emperorOption [type='checkbox']\").at(0).simulate(\"change\");\n\n\t\t\t// Click save button\n\t\t\twrapper.find(\".app-actions-right-wrapper .button-container-secondary button\").simulate(\"click\");\n\t\t\tawait waitTick();\n\n\t\t\texpect(buttonSpy.args.length, \"Expect updateApp to be called once, because only one app was updated\").to.equal(1);\n\t\t\tconst [updatedAppId, updatedAppConfig] = buttonSpy.args[0];\n\t\t\texpect(updatedAppId, \"Which app was added\").to.equal(\"Example Charts App\");\n\t\t\texpect(\n\t\t\t\tupdatedAppConfig.manifest?.component?.preload,\n\t\t\t\t\"what should preload config for this app look like now\"\n\t\t\t).to.include(\"zoom\");\n\t\t});\n\t\tit(\"Renaming a preload\", async () => {\n\t\t\tconst buttonSpy = sinon.spy(Default.args as OptionalSettingsViewProps, \"updateApp\");\n\t\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\twrapper.find(\".app-list-row\").at(1).simulate(\"click\");\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\twrapper.find(\"#preload-alias\").simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"zoom2\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t\t// Click save button\n\t\t\twrapper.find(\".app-actions-right-wrapper .button-container-secondary button\").simulate(\"click\");\n\t\t\tawait waitTick();\n\n\t\t\texpect(buttonSpy.args.length, \"Expect updateApp to be called once, because only one app was updated\").to.equal(1);\n\t\t\tconst [updatedAppId, updatedAppConfig] = buttonSpy.args[0];\n\t\t\texpect(updatedAppId, \"Which app was added\").to.equal(\"Example Charts App\");\n\t\t\texpect(\n\t\t\t\tupdatedAppConfig.manifest?.component?.preload,\n\t\t\t\t\"what should preload config for this app look like now\"\n\t\t\t).to.include(\"zoom2\");\n\t\t\texpect(\n\t\t\t\tupdatedAppConfig.manifest?.component?.preload,\n\t\t\t\t\"what should preload config for this app look like now\"\n\t\t\t).to.not.include(\"zoom\");\n\t\t});\n\t\tit(\"Unchanged preload (for apps that do and don't have the preload added\", async () => {\n\t\t\tconst buttonSpy = sinon.spy(Default.args as OptionalSettingsViewProps, \"updateApp\");\n\t\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\twrapper.find(\".app-list-row\").at(1).simulate(\"click\");\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\t// Click save button\n\t\t\twrapper.find(\".app-actions-right-wrapper .button-container-secondary button\").simulate(\"click\");\n\t\t\tawait waitTick();\n\n\t\t\texpect(buttonSpy.args.length, \"Expect updateApp to not be called\").to.equal(0);\n\t\t});\n\t\tit(\"Renaming + adding a preload\", async () => {\n\t\t\tconst buttonSpy = sinon.spy(Default.args as OptionalSettingsViewProps, \"updateApp\");\n\t\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\twrapper.find(\".app-list-row\").at(0).simulate(\"click\");\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\t// Rename \"native-overrides\" to \"native-overrides2\"\n\t\t\twrapper.find(\"#preload-alias\").simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"native-overrides2\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t\t// Add this preload to \"Example Charts App\"\n\t\t\twrapper.find(\".emperorOption [type='checkbox']\").at(0).simulate(\"change\");\n\t\t\texpect(wrapper.find(\".emperorOption [type='checkbox']\").at(0).prop(\"checked\")).to.be.true;\n\n\t\t\t// Click save button\n\t\t\twrapper.find(\".app-actions-right-wrapper .button-container-secondary button\").simulate(\"click\");\n\t\t\tawait waitTick();\n\n\t\t\texpect(buttonSpy.args.length, \"Expect updateApp to be called once, because only one app was updated\").to.equal(1);\n\t\t\tconst [updatedAppId, updatedAppConfig] = buttonSpy.args[0];\n\t\t\texpect(updatedAppId, \"Which app was added\").to.equal(\"Example Charts App\");\n\t\t\texpect(\n\t\t\t\tupdatedAppConfig.manifest?.component?.preload,\n\t\t\t\t\"what should preload config for this app look like now\"\n\t\t\t).to.include(\"native-overrides2\");\n\t\t\texpect(\n\t\t\t\tupdatedAppConfig.manifest?.component?.preload,\n\t\t\t\t\"what should preload config for this app look like now\"\n\t\t\t).to.not.include(\"native-overrides\");\n\t\t});\n\t\tit(\"Renaming + removing a preload\", async () => {\n\t\t\tconst buttonSpy = sinon.spy(Default.args as OptionalSettingsViewProps, \"updateApp\");\n\t\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\twrapper.find(\".app-list-row\").at(0).simulate(\"click\");\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\t// Rename \"native-overrides2\" to \"native-overrides3\"\n\t\t\twrapper.find(\"#preload-alias\").simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"native-overrides3\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t\t// Remove this preload to \"Example Charts App\"\n\t\t\twrapper.find(\".emperorOption [type='checkbox']\").at(0).simulate(\"change\");\n\t\t\texpect(wrapper.find(\".emperorOption [type='checkbox']\").at(0).prop(\"checked\")).to.be.false;\n\n\t\t\t// Click save button\n\t\t\twrapper.find(\".app-actions-right-wrapper .button-container-secondary button\").simulate(\"click\");\n\t\t\tawait waitTick();\n\n\t\t\texpect(buttonSpy.args.length, \"Expect updateApp to be called once, because only one app was updated\").to.equal(1);\n\t\t\tconst [updatedAppId, updatedAppConfig] = buttonSpy.args[0];\n\t\t\texpect(updatedAppId, \"Which app was added\").to.equal(\"Example Charts App\");\n\t\t\texpect(\n\t\t\t\tupdatedAppConfig.manifest?.component?.preload,\n\t\t\t\t\"what should preload config for this app look like now\"\n\t\t\t).to.not.include(\"native-overrides2\");\n\t\t\texpect(\n\t\t\t\tupdatedAppConfig.manifest?.component?.preload,\n\t\t\t\t\"what should preload config for this app look like now\"\n\t\t\t).to.not.include(\"native-overrides3\");\n\t\t});\n\t});\n\n\tdescribe(\"Check submitted values\", async () => {\n\t\tit(\"Adding a new preload\", async () => {\n\t\t\tconst savePreloadSpy = sinon.spy(Default.args as OptionalSettingsViewProps, \"savePreload\");\n\t\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\t// Click Add button\n\t\t\twrapper.find(\".button-container-primary button\").simulate(\"click\");\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\t// Alias name\n\t\t\twrapper.find(\"#preload-alias\").simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"test\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t\t// URL name\n\t\t\twrapper.find(\"#preload-url\").simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"https://assets.finsemble.com/preloads/testPreload.js\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t\t// Assign \"Load for\" to \"All apps\"\n\t\t\twrapper.find(\"input[name='preload-usage'][value='all']\").simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"all\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t\t// Click save button\n\t\t\twrapper.find(\".app-actions-right-wrapper .button-container-secondary button\").simulate(\"click\");\n\t\t\tawait waitTick();\n\n\t\t\texpect(savePreloadSpy.calledOnce).to.be.true;\n\n\t\t\tconst [oldAlias, newAlias, details] = savePreloadSpy.args[0];\n\t\t\texpect(oldAlias, \"No previous alias when it's a new preload\").to.be.empty;\n\t\t\texpect(newAlias, \"alias is the same as name\").to.equal(\"test\");\n\t\t\texpect(details, \"Passed along details\").to.deep.equal({\n\t\t\t\turl: \"https://assets.finsemble.com/preloads/testPreload.js\",\n\t\t\t\tautoload: \"all\",\n\t\t\t});\n\t\t});\n\t\tit(\"Modifying a preload's URL\", async () => {\n\t\t\tconst savePreloadSpy = sinon.spy(Default.args as OptionalSettingsViewProps, \"savePreload\");\n\t\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\t// Click list item\n\t\t\texpect(wrapper.find(\".app-list-row .app-name\").at(1).text(), \"First item name\").to.equal(\"test\");\n\t\t\twrapper.find(\".app-list-row\").at(1).simulate(\"click\");\n\n\t\t\t// URL name\n\t\t\twrapper.find(\"#preload-url\").simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"http://assets.finsemble.com/preloads/testPreload.js\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t\t// Click save button\n\t\t\twrapper.find(\".app-actions-right-wrapper .button-container-secondary button\").simulate(\"click\");\n\t\t\tawait waitTick();\n\n\t\t\texpect(savePreloadSpy.calledOnce).to.be.true;\n\n\t\t\tconst [oldAlias, newAlias, details] = savePreloadSpy.args[0];\n\t\t\texpect(oldAlias, \"alias is the same as name\").to.equal(\"test\");\n\t\t\texpect(newAlias, \"alias is the same as name\").to.equal(\"test\");\n\t\t\texpect(details, \"Passed along details\").to.deep.equal({\n\t\t\t\turl: \"http://assets.finsemble.com/preloads/testPreload.js\",\n\t\t\t\tautoload: \"all\",\n\t\t\t});\n\t\t});\n\t\tit(\"Rename a value\", async () => {\n\t\t\tconst savePreloadSpy = sinon.spy(Default.args as OptionalSettingsViewProps, \"savePreload\");\n\t\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\t// Click list item\n\t\t\texpect(wrapper.find(\".app-list-row .app-name\").at(1).text(), \"First item name\").to.equal(\"test\");\n\t\t\twrapper.find(\".app-list-row\").at(1).simulate(\"click\");\n\n\t\t\t// Alias name\n\t\t\twrapper.find(\"#preload-alias\").simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"test2\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t\t// Click save button\n\t\t\twrapper.find(\".app-actions-right-wrapper .button-container-secondary button\").simulate(\"click\");\n\t\t\tawait waitTick();\n\n\t\t\texpect(savePreloadSpy.calledOnce).to.be.true;\n\n\t\t\tconst [oldAlias, newAlias, details] = savePreloadSpy.args[0];\n\t\t\texpect(oldAlias, \"alias is the same as name\").to.equal(\"test\");\n\t\t\texpect(newAlias, \"alias is the same as name\").to.equal(\"test2\");\n\t\t\texpect(details, \"Passed along details\").to.deep.equal({\n\t\t\t\turl: \"http://assets.finsemble.com/preloads/testPreload.js\",\n\t\t\t\tautoload: \"all\",\n\t\t\t});\n\t\t});\n\t\tit(\"Delete preload from the Preload edit page\", async () => {\n\t\t\tconst savePreloadSpy = sinon.spy(Default.args as OptionalSettingsViewProps, \"savePreload\");\n\t\t\tconst deletePreloadSpy = sinon.spy(Default.args as OptionalSettingsViewProps, \"deletePreload\");\n\t\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\t// Click list item\n\t\t\texpect(wrapper.find(\".app-list-row .app-name\").at(1).text(), \"First item name\").to.equal(\"test2\");\n\t\t\twrapper.find(\".app-list-row\").at(1).simulate(\"click\");\n\n\t\t\t// Click save button\n\t\t\twrapper.find(\".button-container-danger button\").simulate(\"click\");\n\t\t\tawait waitTick();\n\n\t\t\texpect(savePreloadSpy.calledOnce).to.be.false;\n\t\t\texpect(deletePreloadSpy.calledOnce).to.be.true;\n\n\t\t\tconst [alias] = deletePreloadSpy.args[0];\n\t\t\texpect(alias, \"alias of deleted app\").to.equal(\"test2\");\n\t\t});\n\t});\n});\n"]}
|
|
1
|
+
{"version":3,"file":"OptionalSettingsView.spec.js","sourceRoot":"","sources":["../../../../src/components/sdd/tests/OptionalSettingsView.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 { OptionalSettingsViewProps } from \"../OptionalSettingsView\";\nimport { Default, Empty } from \"../stories/OptionalSettingsView.stories\";\n\n// For running accessibility scans\nimport { accessibilityAssessor } from \"./a11y_helper\";\nimport { waitTick } from \"../sdd_helpers\";\n\n// For testing user interactions (like click events):\nimport sinon from \"sinon\";\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(\"<OptionalSettingsView/>\", () => {\n\t// Used to clear after each interactive test using sinon\n\tafterEach(() => {\n\t\tsinon.restore();\n\t});\n\n\tit(\"should pass accessibility scans\", async () => {\n\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\texpect(await accessibilityAssessor(wrapper)).to.be.true;\n\t});\n\n\tit(\"should be empty when there are no preloads\", async () => {\n\t\tconst wrapper = mount(<Empty {...(Empty.args as OptionalSettingsViewProps)} />);\n\n\t\tconst button = wrapper.find(\"button\").last();\n\t\texpect(button.exists(), \"The button exists\").to.be.true;\n\t\texpect(button.text(), \"The button's text\").to.equal(\"Add\");\n\n\t\texpect(wrapper.find(\".app-list-empty\").exists(), \"Empty message exists\").to.be.true;\n\t\texpect(wrapper.find(\".app-list-empty\").text(), \"Empty message text\").to.contain(\"to add preloads\");\n\t\texpect(wrapper.find(\".app-list-empty.no-dropzone\").exists(), \"Empty message has no dropzone styling\").to.be.true;\n\t});\n\n\tit(\"should show preload aliases if there are registered preloads\", async () => {\n\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\tconst names = wrapper.find(\".app-name\");\n\t\texpect(names.length, \"There are 2 names listed\").to.equal(2);\n\t\tconst names_as_text = names.map((elem) => elem.text());\n\n\t\texpect(names_as_text).includes(\"native-overrides\");\n\t\texpect(names_as_text).includes(\"zoom\");\n\n\t\tconst delete_buttons = wrapper.find(\".button-container-icon.icon-delete\");\n\t\texpect(delete_buttons.length, \"There are also 2 delete buttons\").to.equal(2);\n\t});\n\n\tdescribe(\"Check app config updates\", async () => {\n\t\t/*** WARNING!!: Tests are not independent and must go in this order ***/\n\n\t\tit(\"Removing a preload\", async () => {\n\t\t\tconst buttonSpy = sinon.spy(Default.args as OptionalSettingsViewProps, \"updateApp\");\n\t\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\t\t\t// Click list item\n\t\t\texpect(wrapper.find(\".app-list-row .app-name\").at(1).text(), \"First item name\").to.equal(\"zoom\");\n\t\t\twrapper.find(\".app-list-row\").at(1).simulate(\"click\");\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\twrapper.find(\".emperorOption [type='checkbox']\").at(0).simulate(\"change\");\n\n\t\t\t// Click save button\n\t\t\twrapper.find(\".app-actions-right-wrapper .button-container-secondary button\").simulate(\"click\");\n\t\t\tawait waitTick();\n\n\t\t\texpect(buttonSpy.args.length, \"Expect updateApp to be called once, because only one app was updated\").to.equal(1);\n\t\t\tconst [updatedAppId, updatedAppConfig] = buttonSpy.args[0];\n\t\t\texpect(updatedAppId, \"Which app was added\").to.equal(\"Example Charts App\");\n\t\t\texpect(\n\t\t\t\tupdatedAppConfig.manifest?.component?.preload,\n\t\t\t\t\"what should preload config for this app look like now\"\n\t\t\t).to.not.include(\"zoom\");\n\t\t});\n\t\tit(\"Adding a preload\", async () => {\n\t\t\tconst buttonSpy = sinon.spy(Default.args as OptionalSettingsViewProps, \"updateApp\");\n\t\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\twrapper.find(\".app-list-row\").at(1).simulate(\"click\");\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\twrapper.find(\".emperorOption [type='checkbox']\").at(0).simulate(\"change\");\n\n\t\t\t// Click save button\n\t\t\twrapper.find(\".app-actions-right-wrapper .button-container-secondary button\").simulate(\"click\");\n\t\t\tawait waitTick();\n\n\t\t\texpect(buttonSpy.args.length, \"Expect updateApp to be called once, because only one app was updated\").to.equal(1);\n\t\t\tconst [updatedAppId, updatedAppConfig] = buttonSpy.args[0];\n\t\t\texpect(updatedAppId, \"Which app was added\").to.equal(\"Example Charts App\");\n\t\t\texpect(\n\t\t\t\tupdatedAppConfig.manifest?.component?.preload,\n\t\t\t\t\"what should preload config for this app look like now\"\n\t\t\t).to.include(\"zoom\");\n\t\t});\n\t\tit(\"Renaming a preload\", async () => {\n\t\t\tconst buttonSpy = sinon.spy(Default.args as OptionalSettingsViewProps, \"updateApp\");\n\t\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\twrapper.find(\".app-list-row\").at(1).simulate(\"click\");\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\twrapper.find(\"#preload-alias\").simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"zoom2\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t\t// Click save button\n\t\t\twrapper.find(\".app-actions-right-wrapper .button-container-secondary button\").simulate(\"click\");\n\t\t\tawait waitTick();\n\n\t\t\texpect(buttonSpy.args.length, \"Expect updateApp to be called once, because only one app was updated\").to.equal(1);\n\t\t\tconst [updatedAppId, updatedAppConfig] = buttonSpy.args[0];\n\t\t\texpect(updatedAppId, \"Which app was added\").to.equal(\"Example Charts App\");\n\t\t\texpect(\n\t\t\t\tupdatedAppConfig.manifest?.component?.preload,\n\t\t\t\t\"what should preload config for this app look like now\"\n\t\t\t).to.include(\"zoom2\");\n\t\t\texpect(\n\t\t\t\tupdatedAppConfig.manifest?.component?.preload,\n\t\t\t\t\"what should preload config for this app look like now\"\n\t\t\t).to.not.include(\"zoom\");\n\t\t});\n\t\tit(\"Unchanged preload (for apps that do and don't have the preload added\", async () => {\n\t\t\tconst buttonSpy = sinon.spy(Default.args as OptionalSettingsViewProps, \"updateApp\");\n\t\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\twrapper.find(\".app-list-row\").at(1).simulate(\"click\");\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\t// Click save button\n\t\t\twrapper.find(\".app-actions-right-wrapper .button-container-secondary button\").simulate(\"click\");\n\t\t\tawait waitTick();\n\n\t\t\texpect(buttonSpy.args.length, \"Expect updateApp to not be called\").to.equal(0);\n\t\t});\n\t\tit(\"Renaming + adding a preload\", async () => {\n\t\t\tconst buttonSpy = sinon.spy(Default.args as OptionalSettingsViewProps, \"updateApp\");\n\t\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\twrapper.find(\".app-list-row\").at(0).simulate(\"click\");\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\t// Rename \"native-overrides\" to \"native-overrides2\"\n\t\t\twrapper.find(\"#preload-alias\").simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"native-overrides2\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t\t// Add this preload to \"Example Charts App\"\n\t\t\twrapper.find(\".emperorOption [type='checkbox']\").at(0).simulate(\"change\");\n\t\t\texpect(wrapper.find(\".emperorOption [type='checkbox']\").at(0).prop(\"checked\")).to.be.true;\n\n\t\t\t// Click save button\n\t\t\twrapper.find(\".app-actions-right-wrapper .button-container-secondary button\").simulate(\"click\");\n\t\t\tawait waitTick();\n\n\t\t\texpect(buttonSpy.args.length, \"Expect updateApp to be called once, because only one app was updated\").to.equal(1);\n\t\t\tconst [updatedAppId, updatedAppConfig] = buttonSpy.args[0];\n\t\t\texpect(updatedAppId, \"Which app was added\").to.equal(\"Example Charts App\");\n\t\t\texpect(\n\t\t\t\tupdatedAppConfig.manifest?.component?.preload,\n\t\t\t\t\"what should preload config for this app look like now\"\n\t\t\t).to.include(\"native-overrides2\");\n\t\t\texpect(\n\t\t\t\tupdatedAppConfig.manifest?.component?.preload,\n\t\t\t\t\"what should preload config for this app look like now\"\n\t\t\t).to.not.include(\"native-overrides\");\n\t\t});\n\t\tit(\"Renaming + removing a preload\", async () => {\n\t\t\tconst buttonSpy = sinon.spy(Default.args as OptionalSettingsViewProps, \"updateApp\");\n\t\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\twrapper.find(\".app-list-row\").at(0).simulate(\"click\");\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\t// Rename \"native-overrides2\" to \"native-overrides3\"\n\t\t\twrapper.find(\"#preload-alias\").simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"native-overrides3\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t\t// Remove this preload to \"Example Charts App\"\n\t\t\twrapper.find(\".emperorOption [type='checkbox']\").at(0).simulate(\"change\");\n\t\t\texpect(wrapper.find(\".emperorOption [type='checkbox']\").at(0).prop(\"checked\")).to.be.false;\n\n\t\t\t// Click save button\n\t\t\twrapper.find(\".app-actions-right-wrapper .button-container-secondary button\").simulate(\"click\");\n\t\t\tawait waitTick();\n\n\t\t\texpect(buttonSpy.args.length, \"Expect updateApp to be called once, because only one app was updated\").to.equal(1);\n\t\t\tconst [updatedAppId, updatedAppConfig] = buttonSpy.args[0];\n\t\t\texpect(updatedAppId, \"Which app was added\").to.equal(\"Example Charts App\");\n\t\t\texpect(\n\t\t\t\tupdatedAppConfig.manifest?.component?.preload,\n\t\t\t\t\"what should preload config for this app look like now\"\n\t\t\t).to.not.include(\"native-overrides2\");\n\t\t\texpect(\n\t\t\t\tupdatedAppConfig.manifest?.component?.preload,\n\t\t\t\t\"what should preload config for this app look like now\"\n\t\t\t).to.not.include(\"native-overrides3\");\n\t\t});\n\t});\n\n\tdescribe(\"Check submitted values\", async () => {\n\t\tit(\"Adding a new preload\", async () => {\n\t\t\tconst savePreloadSpy = sinon.spy(Default.args as OptionalSettingsViewProps, \"savePreload\");\n\t\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\t// Click Add button\n\t\t\twrapper.find(\".button-container-primary button\").simulate(\"click\");\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\t// Alias name\n\t\t\twrapper.find(\"#preload-alias\").simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"test\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t\t// URL name\n\t\t\twrapper.find(\"#preload-url\").simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"https://assets.finsemble.com/preloads/testPreload.js\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t\t// Assign \"Load for\" to \"All apps\"\n\t\t\twrapper.find(\"input[name='preload-usage'][value='all']\").simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"all\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t\t// Click save button\n\t\t\twrapper.find(\".app-actions-right-wrapper .button-container-secondary button\").simulate(\"click\");\n\t\t\tawait waitTick();\n\n\t\t\texpect(savePreloadSpy.calledOnce).to.be.true;\n\n\t\t\tconst [oldAlias, newAlias, details] = savePreloadSpy.args[0];\n\t\t\texpect(oldAlias, \"No previous alias when it's a new preload\").to.be.empty;\n\t\t\texpect(newAlias, \"alias is the same as name\").to.equal(\"test\");\n\t\t\texpect(details, \"Passed along details\").to.deep.equal({\n\t\t\t\turl: \"https://assets.finsemble.com/preloads/testPreload.js\",\n\t\t\t\tautoload: \"all\",\n\t\t\t});\n\t\t});\n\t\tit(\"Modifying a preload's URL\", async () => {\n\t\t\tconst savePreloadSpy = sinon.spy(Default.args as OptionalSettingsViewProps, \"savePreload\");\n\t\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\t// Click list item\n\t\t\texpect(wrapper.find(\".app-list-row .app-name\").at(1).text(), \"First item name\").to.equal(\"test\");\n\t\t\twrapper.find(\".app-list-row\").at(1).simulate(\"click\");\n\n\t\t\t// URL name\n\t\t\twrapper.find(\"#preload-url\").simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"http://assets.finsemble.com/preloads/testPreload.js\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t\t// Click save button\n\t\t\twrapper.find(\".app-actions-right-wrapper .button-container-secondary button\").simulate(\"click\");\n\t\t\tawait waitTick();\n\n\t\t\texpect(savePreloadSpy.calledOnce).to.be.true;\n\n\t\t\tconst [oldAlias, newAlias, details] = savePreloadSpy.args[0];\n\t\t\texpect(oldAlias, \"alias is the same as name\").to.equal(\"test\");\n\t\t\texpect(newAlias, \"alias is the same as name\").to.equal(\"test\");\n\t\t\texpect(details, \"Passed along details\").to.deep.equal({\n\t\t\t\turl: \"http://assets.finsemble.com/preloads/testPreload.js\",\n\t\t\t\tautoload: \"all\",\n\t\t\t});\n\t\t});\n\t\tit(\"Rename a value\", async () => {\n\t\t\tconst savePreloadSpy = sinon.spy(Default.args as OptionalSettingsViewProps, \"savePreload\");\n\t\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\t// Click list item\n\t\t\texpect(wrapper.find(\".app-list-row .app-name\").at(1).text(), \"First item name\").to.equal(\"test\");\n\t\t\twrapper.find(\".app-list-row\").at(1).simulate(\"click\");\n\n\t\t\t// Alias name\n\t\t\twrapper.find(\"#preload-alias\").simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"test2\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t\t// Click save button\n\t\t\twrapper.find(\".app-actions-right-wrapper .button-container-secondary button\").simulate(\"click\");\n\t\t\tawait waitTick();\n\n\t\t\texpect(savePreloadSpy.calledOnce).to.be.true;\n\n\t\t\tconst [oldAlias, newAlias, details] = savePreloadSpy.args[0];\n\t\t\texpect(oldAlias, \"alias is the same as name\").to.equal(\"test\");\n\t\t\texpect(newAlias, \"alias is the same as name\").to.equal(\"test2\");\n\t\t\texpect(details, \"Passed along details\").to.deep.equal({\n\t\t\t\turl: \"http://assets.finsemble.com/preloads/testPreload.js\",\n\t\t\t\tautoload: \"all\",\n\t\t\t});\n\t\t});\n\t\tit(\"Delete preload from the Preload edit page\", async () => {\n\t\t\tconst savePreloadSpy = sinon.spy(Default.args as OptionalSettingsViewProps, \"savePreload\");\n\t\t\tconst deletePreloadSpy = sinon.spy(Default.args as OptionalSettingsViewProps, \"deletePreload\");\n\t\t\tconst wrapper = mount(<Default {...(Default.args as OptionalSettingsViewProps)} />);\n\t\t\tawait waitTick();\n\t\t\twrapper.update();\n\n\t\t\t// Click list item\n\t\t\texpect(wrapper.find(\".app-list-row .app-name\").at(1).text(), \"First item name\").to.equal(\"test2\");\n\t\t\twrapper.find(\".app-list-row\").at(1).simulate(\"click\");\n\n\t\t\t// Click save button\n\t\t\twrapper.find(\".button-container-danger button\").simulate(\"click\");\n\t\t\tawait waitTick();\n\n\t\t\texpect(savePreloadSpy.calledOnce).to.be.false;\n\t\t\texpect(deletePreloadSpy.calledOnce).to.be.true;\n\n\t\t\tconst [alias] = deletePreloadSpy.args[0];\n\t\t\texpect(alias, \"alias of deleted app\").to.equal(\"test2\");\n\t\t});\n\t});\n});\n"]}
|
|
@@ -21,6 +21,7 @@ describe("<ProjectErrors/>", () => {
|
|
|
21
21
|
doClick(wrapper.find(ADD_MENU_BUTTON).at(0), "ADD_MENU_BUTTON");
|
|
22
22
|
await waitTick();
|
|
23
23
|
wrapper.update();
|
|
24
|
+
// Set name as "Charts"
|
|
24
25
|
wrapper
|
|
25
26
|
.find("#menu-name")
|
|
26
27
|
.at(0)
|
|
@@ -29,6 +30,7 @@ describe("<ProjectErrors/>", () => {
|
|
|
29
30
|
value: "Charts",
|
|
30
31
|
},
|
|
31
32
|
});
|
|
33
|
+
// Click Save
|
|
32
34
|
wrapper.find(SAVE_MENU_BUTTON).at(0).simulate("click");
|
|
33
35
|
await waitTick();
|
|
34
36
|
wrapper.update();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectErrors.spec.js","sourceRoot":"","sources":["../../../../src/components/sdd/tests/ProjectErrors.spec.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAgB,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AAEpE,MAAM,kBAAkB,GAAG,eAAe,EACzC,oBAAoB,GAAG,0BAA0B,EACjD,WAAW,GAAG,mBAAmB,EACjC,eAAe,GAAG,uEAAuE,EACzF,gBAAgB,GAAG,4DAA4D,EAC/E,sBAAsB,GAAG,mCAAmC,EAC5D,WAAW,GAAG,kBAAkB,EAChC,aAAa,GAAG,0CAA0C,CAAC;AAE5D,MAAM,OAAO,GAAG,CAAC,OAAqB,EAAE,IAAY,EAAE,EAAE;IACvD,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAElD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC3B,CAAC,CAAC;AAEF,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACpE,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,UAAU,oBAAM,UAAU,CAAC,IAAkC,EAAI,CAAC,CAAC;QAE1F,MAAM,QAAQ,EAAE,CAAC;QACjB,OAAO,CAAC,MAAM,EAAE,CAAC;QAEjB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;QAExD,MAAM,QAAQ,EAAE,CAAC;QACjB,OAAO,CAAC,MAAM,EAAE,CAAC;QAEjB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;QAEhE,MAAM,QAAQ,EAAE,CAAC;QACjB,OAAO,CAAC,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"ProjectErrors.spec.js","sourceRoot":"","sources":["../../../../src/components/sdd/tests/ProjectErrors.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { mount, ReactWrapper } from \"enzyme\";\nimport { describe, it } from \"mocha\";\nimport { expect } from \"chai\";\nimport { DefaultSDD } from \"../stories/SmartDesktopDesigner.stories\";\nimport { waitTick } from \"../sdd_helpers\";\nimport { SmartDesktopDesignerProps } from \"../SmartDesktopDesigner\";\nimport { ACTIVE_TAB_APP_LIST_TABLE_ROW } from \"./Applications.spec\";\n\nconst PROJECT_NAME_INPUT = \"#project-name\",\n\tPROJECT_NAME_WARNING = \".project-name-error-icon\",\n\tTOOLBAR_TAB = \"#toolbar-nav-link\",\n\tADD_MENU_BUTTON = \"[data-label='Menus'] .button-container-primary.icon-before-add button\",\n\tSAVE_MENU_BUTTON = \".app-edit-actions-right .button-container-secondary button\",\n\tEMPTY_MENU_NAV_WARNING = \"#toolbar-nav-link .nav-error-icon\",\n\tPUBLISH_TAB = \"#export-nav-link\",\n\tPROJECT_ERROR = \".project-errors-container .project-error\";\n\nconst doClick = (element: ReactWrapper, name: string) => {\n\texpect(element.length, name).to.be.greaterThan(0);\n\n\telement.simulate(\"click\");\n};\n\ndescribe(\"<ProjectErrors/>\", () => {\n\tit(\"should show project errors for invalid SDD sections\", async () => {\n\t\tconst wrapper = mount(<DefaultSDD {...(DefaultSDD.args as SmartDesktopDesignerProps)} />);\n\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\tdoClick(wrapper.find(TOOLBAR_TAB).at(0), \"TOOLBAR_TAB\");\n\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\tdoClick(wrapper.find(ADD_MENU_BUTTON).at(0), \"ADD_MENU_BUTTON\");\n\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\t// Set name as \"Charts\"\n\t\twrapper\n\t\t\t.find(\"#menu-name\")\n\t\t\t.at(0)\n\t\t\t.simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"Charts\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t// Click Save\n\t\twrapper.find(SAVE_MENU_BUTTON).at(0).simulate(\"click\");\n\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\texpect(wrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).length, \"Menu list shows 1 empty menu\").to.be.equal(1);\n\n\t\texpect(wrapper.find(EMPTY_MENU_NAV_WARNING).length, \"Empty Menu Nav Warning\").to.equal(0);\n\n\t\twrapper.find(PUBLISH_TAB).at(0).simulate(\"click\");\n\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\texpect(wrapper.find(EMPTY_MENU_NAV_WARNING).length, \"Empty Menu Nav Warning\").to.equal(1);\n\t\texpect(wrapper.find(PROJECT_ERROR).length, \"Project Errors\").to.equal(1);\n\t});\n});\n"]}
|
|
@@ -12,7 +12,7 @@ describe("<Themes/>", () => {
|
|
|
12
12
|
it.skip("should pass accessibility scans", async () => {
|
|
13
13
|
const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
|
|
14
14
|
expect(await accessibilityAssessor(wrapper)).to.be.true;
|
|
15
|
-
}).timeout(5000);
|
|
15
|
+
}).timeout(5000); // This scan is very heavy (4s)
|
|
16
16
|
it("should change tab panels with the tab 'Images' is chosen", () => {
|
|
17
17
|
const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
|
|
18
18
|
wrapper.find("[role='tab']").at(1).simulate("click");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Themes.spec.js","sourceRoot":"","sources":["../../../../src/components/sdd/tests/Themes.spec.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEtD,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IAC1B,SAAS,CAAC,GAAG,EAAE;QACd,KAAK,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,IAAI,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,IAAI,CAAC,IAAmB,EAAI,CAAC,CAAC;QAE/D,MAAM,CAAC,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACzD,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"Themes.spec.js","sourceRoot":"","sources":["../../../../src/components/sdd/tests/Themes.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { mount } from \"enzyme\";\nimport { afterEach, describe, it } from \"mocha\";\nimport { expect } from \"chai\";\nimport sinon from \"sinon\";\nimport { ThemeProps } from \"../Themes\";\nimport { Page } from \"../stories/Themes.stories\";\nimport { accessibilityAssessor } from \"./a11y_helper\";\n\ndescribe(\"<Themes/>\", () => {\n\tafterEach(() => {\n\t\tsinon.restore();\n\t});\n\tit.skip(\"should pass accessibility scans\", async () => {\n\t\tconst wrapper = mount(<Page {...(Page.args as ThemeProps)} />);\n\n\t\texpect(await accessibilityAssessor(wrapper)).to.be.true;\n\t}).timeout(5000); // This scan is very heavy (4s)\n\n\tit(\"should change tab panels with the tab 'Images' is chosen\", () => {\n\t\tconst wrapper = mount(<Page {...(Page.args as ThemeProps)} />);\n\t\twrapper.find(\"[role='tab']\").at(1).simulate(\"click\");\n\t\texpect(wrapper.find(\".visible .images-section\").exists()).to.be.true;\n\t\texpect(wrapper.find(\".visible .theme-settings\").exists()).to.be.false;\n\t});\n\tit(\"should change tab panels with the tab 'Themes' is chosen\", () => {\n\t\tconst wrapper = mount(<Page {...(Page.args as ThemeProps)} />);\n\t\twrapper.find(\"[role='tab']\").at(0).simulate(\"click\");\n\t\texpect(wrapper.find(\".visible .images-section\").exists()).to.be.false;\n\t\texpect(wrapper.find(\".visible .theme-settings\").exists()).to.be.true;\n\t});\n\tit(\"should launch an Are You Sure dialog when the Dark Theme button is clicked\", () => {\n\t\tconst buttonSpy = sinon.spy(Page.args as ThemeProps, \"areYouSure\");\n\t\tconst wrapper = mount(<Page {...(Page.args as ThemeProps)} />);\n\t\twrapper.find(\".template-row button\").at(0).simulate(\"click\");\n\t\texpect(buttonSpy.calledOnce).to.be.true;\n\t});\n\tit(\"should launch an Are You Sure dialog when the Light Theme button is clicked\", () => {\n\t\tconst buttonSpy = sinon.spy(Page.args as ThemeProps, \"areYouSure\");\n\t\tconst wrapper = mount(<Page {...(Page.args as ThemeProps)} />);\n\t\twrapper.find(\".template-row button\").at(1).simulate(\"click\");\n\t\texpect(buttonSpy.calledOnce).to.be.true;\n\t});\n\tit(\"should change the color values when the Light Theme is chosen\", () => {\n\t\tconst wrapper = mount(<Page {...(Page.args as ThemeProps)} />);\n\t\twrapper.find(\".template-row button\").at(1).simulate(\"click\");\n\t\texpect(wrapper.find(\"[type='color']\").first().prop(\"value\")).to.equal(\"#2C2C2C\");\n\t});\n\tit(\"should change the color values when the Dark Theme is chosen\", () => {\n\t\tconst wrapper = mount(<Page {...(Page.args as ThemeProps)} />);\n\t\twrapper.find(\".template-row button\").at(1).simulate(\"click\");\n\t\twrapper.find(\".template-row button\").at(0).simulate(\"click\");\n\t\texpect(wrapper.find(\"[type='color']\").first().prop(\"value\")).to.equal(\"#ffffff\");\n\t});\n});\n"]}
|
|
@@ -5,7 +5,9 @@ import { expect } from "chai";
|
|
|
5
5
|
import { DefaultApplications, EmptyApplications, Long } from "../stories/Toolbar.stories";
|
|
6
6
|
import { getToolbarArgs } from "../fixtures/apps";
|
|
7
7
|
import { waitTick } from "../sdd_helpers";
|
|
8
|
+
// For running accessibility scans
|
|
8
9
|
import { accessibilityAssessor } from "./a11y_helper";
|
|
10
|
+
// Necessary to allow sinon to work with mocked actions (which are shown in the Actions panel in Storybook)
|
|
9
11
|
import addons, { mockChannel } from "@storybook/addons";
|
|
10
12
|
addons.setChannel(mockChannel());
|
|
11
13
|
export const ADD_NEW_APP_BUTTON = ".icon-before-add button", ACTIVE_TAB_APP_LIST_TABLE_ROW = ".app-list-row", APP_LIST_EMPTY_MESSAGE = ".app-list-empty", PAGE_HEADER = ".view-title .leftSide", PAGE_HEADER_BUTTON = ".view-title .leftSide button", SETUP_WIZARD_BUTTON = ".tile-type-buttons .icon-wizard button", SETUP_MANUAL_BUTTON = ".tile-type-buttons .icon-manual button", APP_ACCESS_RULE = ".app-edit-access-item", APP_ACCESS_BLOCKED = ".app-edit-access-blocked", QUICK_ADD_APP = ".quick-add-app", QUICK_ADD_APP_URL = ".quick-add-app #app-url", QUICK_ADD_APP_BUTTON = ".save-button-container button";
|
|
@@ -14,6 +16,7 @@ const preventable = {
|
|
|
14
16
|
stopPropagation: () => { },
|
|
15
17
|
};
|
|
16
18
|
describe("SDD: <Toolbar /> - Menu tab", () => {
|
|
19
|
+
// Example accessibility scan
|
|
17
20
|
it("should pass accessibility scans", async () => {
|
|
18
21
|
const wrapper = mount(React.createElement(DefaultApplications, Object.assign({}, DefaultApplications.args)));
|
|
19
22
|
expect(await accessibilityAssessor(wrapper)).to.be.true;
|
|
@@ -113,8 +116,11 @@ describe("SDD: <Toolbar /> - Menu tab", () => {
|
|
|
113
116
|
const wrapper = mount(React.createElement(DefaultApplications, Object.assign({}, getToolbarArgs("default"))));
|
|
114
117
|
await waitTick();
|
|
115
118
|
wrapper.update();
|
|
119
|
+
// Click "Add" button
|
|
116
120
|
wrapper.find(ADD_NEW_APP_BUTTON).first().simulate("click");
|
|
121
|
+
// Click "Back" button
|
|
117
122
|
wrapper.find("button").first().simulate("click");
|
|
123
|
+
// expect(wrapper.find(".visible div[data-label='Menus']").exists(), "Menus Tab is visible").to.be.true;
|
|
118
124
|
expect(wrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).length, "Still only 1 menu in list").to.be.equal(1);
|
|
119
125
|
});
|
|
120
126
|
it("MenuEdit: click Add New, then click Cancel, then see menu list has not changed", async () => {
|
|
@@ -122,7 +128,9 @@ describe("SDD: <Toolbar /> - Menu tab", () => {
|
|
|
122
128
|
await waitTick();
|
|
123
129
|
wrapper.update();
|
|
124
130
|
expect(wrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).length, "Only 1 menu in list").to.be.equal(1);
|
|
131
|
+
// Click "Add" button
|
|
125
132
|
wrapper.find(ADD_NEW_APP_BUTTON).first().simulate("click");
|
|
133
|
+
// Click "Back" button
|
|
126
134
|
wrapper.find("button").first().simulate("click");
|
|
127
135
|
expect(wrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).length, "Still only 1 menu in list").to.be.equal(1);
|
|
128
136
|
});
|
|
@@ -131,7 +139,9 @@ describe("SDD: <Toolbar /> - Menu tab", () => {
|
|
|
131
139
|
await waitTick();
|
|
132
140
|
wrapper.update();
|
|
133
141
|
expect(wrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).length, "Only 1 menu in list").to.be.equal(1);
|
|
142
|
+
// Click "Add" button
|
|
134
143
|
wrapper.find(ADD_NEW_APP_BUTTON).first().simulate("click");
|
|
144
|
+
// Set name as "Charts"
|
|
135
145
|
wrapper
|
|
136
146
|
.find("#menu-name")
|
|
137
147
|
.at(0)
|
|
@@ -140,8 +150,10 @@ describe("SDD: <Toolbar /> - Menu tab", () => {
|
|
|
140
150
|
value: "Charts",
|
|
141
151
|
},
|
|
142
152
|
});
|
|
153
|
+
// Check "Example Charts App"
|
|
143
154
|
wrapper.find("input[type='checkbox']").at(0).simulate("change");
|
|
144
155
|
console.log(6);
|
|
156
|
+
// Click Save
|
|
145
157
|
wrapper.find("button").at(1).simulate("click");
|
|
146
158
|
await waitTick();
|
|
147
159
|
wrapper.update();
|
|
@@ -151,7 +163,9 @@ describe("SDD: <Toolbar /> - Menu tab", () => {
|
|
|
151
163
|
const wrapper = mount(React.createElement(DefaultApplications, Object.assign({}, getToolbarArgs("default"))));
|
|
152
164
|
await waitTick();
|
|
153
165
|
wrapper.update();
|
|
166
|
+
// Click Examples
|
|
154
167
|
wrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).at(0).simulate("click");
|
|
168
|
+
// Change name to Hello World
|
|
155
169
|
wrapper
|
|
156
170
|
.find("#menu-name")
|
|
157
171
|
.at(0)
|
|
@@ -160,29 +174,39 @@ describe("SDD: <Toolbar /> - Menu tab", () => {
|
|
|
160
174
|
value: "Hello World",
|
|
161
175
|
},
|
|
162
176
|
});
|
|
177
|
+
// Click Save
|
|
163
178
|
wrapper.find("button").at(1).simulate("click");
|
|
164
179
|
await waitTick();
|
|
165
180
|
wrapper.update();
|
|
181
|
+
// Confirm name is Hello World
|
|
166
182
|
expect(wrapper.find("[role='listitem']").at(0).text()).contains("Hello World");
|
|
167
183
|
});
|
|
168
184
|
it("selected applications changes to a menu should persist", async () => {
|
|
169
185
|
const wrapper = mount(React.createElement(DefaultApplications, Object.assign({}, getToolbarArgs("default"))));
|
|
170
186
|
await waitTick();
|
|
171
187
|
wrapper.update();
|
|
188
|
+
// Click Examples
|
|
172
189
|
wrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).at(0).simulate("click");
|
|
190
|
+
// Select items
|
|
173
191
|
wrapper.find("input[type='checkbox']").at(2).simulate("change");
|
|
192
|
+
// Click save
|
|
174
193
|
wrapper.find("button").at(1).simulate("click");
|
|
175
194
|
await waitTick();
|
|
176
195
|
wrapper.update();
|
|
196
|
+
// Click examples
|
|
177
197
|
wrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).at(0).simulate("click");
|
|
198
|
+
// Confirm items still present
|
|
178
199
|
expect(wrapper.find("input[type='checkbox']").at(2).prop("checked")).to.be.true;
|
|
179
200
|
});
|
|
180
201
|
it("should not persist menu name when saving multiple menus", async () => {
|
|
181
202
|
const wrapper = mount(React.createElement(DefaultApplications, Object.assign({}, getToolbarArgs("default"))));
|
|
203
|
+
// Click "Add" button
|
|
182
204
|
wrapper.find(ADD_NEW_APP_BUTTON).first().simulate("click");
|
|
183
205
|
await waitTick();
|
|
206
|
+
// Confirm name field is empty
|
|
184
207
|
wrapper.update();
|
|
185
208
|
expect(wrapper.find("#menu-name").first().prop("value")).to.be.empty;
|
|
209
|
+
// Change name to Test
|
|
186
210
|
wrapper
|
|
187
211
|
.find("#menu-name")
|
|
188
212
|
.at(0)
|
|
@@ -191,13 +215,42 @@ describe("SDD: <Toolbar /> - Menu tab", () => {
|
|
|
191
215
|
value: "Test",
|
|
192
216
|
},
|
|
193
217
|
});
|
|
218
|
+
// Click save
|
|
194
219
|
wrapper.find("button").at(1).simulate("click");
|
|
195
220
|
await waitTick();
|
|
196
221
|
wrapper.update();
|
|
222
|
+
// Click "Add" button
|
|
197
223
|
wrapper.find(ADD_NEW_APP_BUTTON).first().simulate("click");
|
|
198
224
|
await waitTick();
|
|
225
|
+
// Confirm name field is empty
|
|
199
226
|
wrapper.update();
|
|
200
227
|
expect(wrapper.find("#menu-name").first().prop("value")).to.be.empty;
|
|
201
228
|
});
|
|
229
|
+
// it("should show a warning icon if an empty menu is created", async () => {
|
|
230
|
+
// const wrapper = mount(<DefaultApplications {...getToolbarArgs("default")} />);
|
|
231
|
+
// // Click "Add" button
|
|
232
|
+
// wrapper.find(ADD_NEW_APP_BUTTON).first().simulate("click");
|
|
233
|
+
// await waitTick();
|
|
234
|
+
// // Confirm name field is empty
|
|
235
|
+
// wrapper.update();
|
|
236
|
+
// expect(wrapper.find("#menu-name").first().prop("value")).to.be.empty;
|
|
237
|
+
// // Change name to Test
|
|
238
|
+
// wrapper
|
|
239
|
+
// .find("#menu-name")
|
|
240
|
+
// .at(0)
|
|
241
|
+
// .simulate("change", {
|
|
242
|
+
// target: {
|
|
243
|
+
// value: "Test",
|
|
244
|
+
// },
|
|
245
|
+
// });
|
|
246
|
+
// // Click save
|
|
247
|
+
// wrapper.find("button").at(1).simulate("click");
|
|
248
|
+
// await waitTick();
|
|
249
|
+
// wrapper.update();
|
|
250
|
+
// expect(
|
|
251
|
+
// wrapper.find(".app-list-row").at(1).find(".tooltip-icon-warn").exists(),
|
|
252
|
+
// "Warning tooltip present in 2nd row"
|
|
253
|
+
// ).to.be.true;
|
|
254
|
+
// });
|
|
202
255
|
});
|
|
203
256
|
//# sourceMappingURL=Toolbar.spec.js.map
|