@finsemble/finsemble-ui 6.6.1 → 7.0.0-beta-X
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 +31 -43
- 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 +4 -11
- 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 -48
- package/react/assets/css/finsemble.css +6 -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 +15 -3
- package/react/assets/css/menus.css +12 -12
- package/react/assets/css/notificationsCenter.css +49 -33
- 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 +40 -0
- package/react/assets/css/tags.css +10 -10
- package/react/assets/css/toolbar.css +22 -19
- package/react/assets/css/userPreferences.css +29 -26
- package/react/assets/css/windowTitleBar.css +86 -40
- package/react/assets/icons/server.svg +26 -0
- 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/ButtonIcon.js +1 -1
- package/react/components/common/ButtonIcon.js.map +1 -1
- package/react/components/common/ButtonRow.js +2 -2
- package/react/components/common/ButtonRow.js.map +1 -1
- package/react/components/common/Checkbox.d.ts +1 -0
- package/react/components/common/Checkbox.js +3 -3
- package/react/components/common/Checkbox.js.map +1 -1
- package/react/components/common/ColorPicker.d.ts +5 -0
- package/react/components/common/ColorPicker.js +56 -15
- 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 +34 -0
- package/react/components/common/ErrorBoundary.js +43 -0
- package/react/components/common/ErrorBoundary.js.map +1 -0
- 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 +13 -2
- package/react/components/common/FinsembleIcon.js +61 -5
- package/react/components/common/FinsembleIcon.js.map +1 -1
- package/react/components/common/FinsembleLink.d.ts +6 -0
- package/react/components/common/FinsembleLink.js +12 -0
- package/react/components/common/FinsembleLink.js.map +1 -0
- package/react/components/common/FinsembleSelect.js +5 -1
- package/react/components/common/FinsembleSelect.js.map +1 -1
- package/react/components/common/FinsembleToggle.d.ts +1 -2
- package/react/components/common/FinsembleToggle.js +2 -6
- package/react/components/common/FinsembleToggle.js.map +1 -1
- package/react/components/common/FinsembleToggleButtonBar.d.ts +13 -0
- package/react/components/common/FinsembleToggleButtonBar.js +44 -0
- package/react/components/common/FinsembleToggleButtonBar.js.map +1 -0
- package/react/components/common/InputTable.d.ts +10 -3
- package/react/components/common/InputTable.js +20 -13
- package/react/components/common/InputTable.js.map +1 -1
- package/react/components/common/Tab.js +36 -5
- package/react/components/common/Tab.js.map +1 -1
- package/react/components/common/TimeSelect.js +34 -3
- 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/FinsembleToggle.css +22 -0
- package/react/components/common/css/accordion.css +9 -6
- package/react/components/common/css/application-edit-page.css +48 -45
- 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 +14 -14
- package/react/components/common/css/time-select.css +2 -1
- package/react/components/common/css/toggle.css +4 -12
- 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 +12 -1
- package/react/components/common/helpers.js.map +1 -1
- package/react/components/common/stories/ColorPicker.stories.js +9 -11
- 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/stories/FinsembleToggle.stories.d.ts +1 -2
- package/react/components/common/stories/FinsembleToggle.stories.js +0 -7
- package/react/components/common/stories/FinsembleToggle.stories.js.map +1 -1
- package/react/components/common/stories/FinsembleToggleButtonBar.stories.d.ts +14 -0
- package/react/components/common/stories/FinsembleToggleButtonBar.stories.js +97 -0
- package/react/components/common/stories/FinsembleToggleButtonBar.stories.js.map +1 -0
- package/react/components/common/stories/InputTable.stories.d.ts +4 -3
- package/react/components/common/stories/InputTable.stories.js +18 -8
- package/react/components/common/stories/InputTable.stories.js.map +1 -1
- package/react/components/common/tests/Accordion.spec.js +6 -0
- package/react/components/common/tests/Accordion.spec.js.map +1 -1
- package/react/components/common/tests/ButtonRow.spec.js +5 -0
- package/react/components/common/tests/ButtonRow.spec.js.map +1 -1
- package/react/components/common/tests/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 +2 -6
- package/react/components/common/tests/FinsembleToggle.spec.js.map +1 -1
- package/react/components/common/tests/FinsembleToggleButtonBar.spec.d.ts +1 -0
- package/react/components/common/tests/FinsembleToggleButtonBar.spec.js +41 -0
- package/react/components/common/tests/FinsembleToggleButtonBar.spec.js.map +1 -0
- package/react/components/common/tests/InputTable.spec.js +3 -3
- package/react/components/common/tests/InputTable.spec.js.map +1 -1
- package/react/components/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 +10 -1
- 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 +12 -7
- 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 +14 -1
- package/react/components/icon/Icon.js +42 -1
- package/react/components/icon/Icon.js.map +1 -1
- package/react/components/legacyControls/FinsembleDialog.d.ts +4 -0
- package/react/components/legacyControls/FinsembleDialog.js +16 -1
- 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 +133 -8
- 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/linker/remoteRedux.js +1 -0
- package/react/components/linker/remoteRedux.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 +125 -24
- 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 +5 -2
- package/react/components/menu/MenuToggle.js.map +1 -1
- package/react/components/menu/keyboardNavigation.d.ts +13 -22
- package/react/components/menu/keyboardNavigation.js +165 -160
- 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 +47 -25
- 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 +37 -6
- package/react/components/notifications/components/notificationsCenter/NotificationsCenter.js.map +1 -1
- package/react/components/notifications/components/notificationsToasts/NotificationsToasts.js +17 -10
- package/react/components/notifications/components/notificationsToasts/NotificationsToasts.js.map +1 -1
- package/react/components/notifications/components/shared/CheckButton.js +19 -8
- package/react/components/notifications/components/shared/CheckButton.js.map +1 -1
- package/react/components/notifications/components/shared/NotificationCardShell.d.ts +9 -0
- package/react/components/notifications/components/shared/NotificationCardShell.js +15 -7
- 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/shared/notificationCard/NotificationCardBodyShell.js +2 -1
- package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyShell.js.map +1 -1
- package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderShell.js +2 -1
- package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderShell.js.map +1 -1
- package/react/components/notifications/components/views/CardView.js +8 -3
- package/react/components/notifications/components/views/CardView.js.map +1 -1
- package/react/components/notifications/components/views/ListView.js +11 -1
- 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 +6 -0
- package/react/components/notifications/types.js.map +1 -1
- 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 +21 -3
- 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 -3
- 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 +27 -6
- package/react/components/processMonitor/helpers.js.map +1 -1
- package/react/components/processMonitor/helpers.spec.js +7 -3
- package/react/components/processMonitor/helpers.spec.js.map +1 -1
- package/react/components/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 +7 -4
- package/react/components/sdd/AddApp.js +144 -34
- package/react/components/sdd/AddApp.js.map +1 -1
- package/react/components/sdd/AppEditAccess.d.ts +4 -3
- package/react/components/sdd/AppEditAccess.js +8 -0
- package/react/components/sdd/AppEditAccess.js.map +1 -1
- package/react/components/sdd/AppEditPage.d.ts +6 -4
- package/react/components/sdd/AppEditPage.js +205 -393
- package/react/components/sdd/AppEditPage.js.map +1 -1
- package/react/components/sdd/Appearance.css +1 -1
- package/react/components/sdd/Appearance.d.ts +2 -1
- package/react/components/sdd/Appearance.js +18 -7
- package/react/components/sdd/Appearance.js.map +1 -1
- package/react/components/sdd/Application.d.ts +5 -4
- package/react/components/sdd/Application.js +94 -44
- package/react/components/sdd/Application.js.map +1 -1
- package/react/components/sdd/Applications.d.ts +12 -11
- package/react/components/sdd/Applications.js +110 -15
- package/react/components/sdd/Applications.js.map +1 -1
- package/react/components/sdd/AssetsPage.css +3 -3
- package/react/components/sdd/Authentication.js +1 -6
- package/react/components/sdd/Authentication.js.map +1 -1
- package/react/components/sdd/AuthenticationProviderConfig.js +5 -3
- package/react/components/sdd/AuthenticationProviderConfig.js.map +1 -1
- package/react/components/sdd/EditPreload.d.ts +4 -3
- package/react/components/sdd/EditPreload.js +49 -22
- package/react/components/sdd/EditPreload.js.map +1 -1
- package/react/components/sdd/Export.d.ts +7 -6
- package/react/components/sdd/Export.js +4 -3
- package/react/components/sdd/Export.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/GettingStarted.js +3 -3
- package/react/components/sdd/GettingStarted.js.map +1 -1
- package/react/components/sdd/Navigation.js +28 -4
- package/react/components/sdd/Navigation.js.map +1 -1
- package/react/components/sdd/OptionalSettingsView.d.ts +6 -5
- package/react/components/sdd/OptionalSettingsView.js +2 -10
- package/react/components/sdd/OptionalSettingsView.js.map +1 -1
- package/react/components/sdd/ProjectErrors.js +1 -1
- package/react/components/sdd/ProjectErrors.js.map +1 -1
- package/react/components/sdd/Publish.js +4 -2
- 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.d.ts +17 -16
- package/react/components/sdd/SmartDesktopDesigner.js +54 -34
- package/react/components/sdd/SmartDesktopDesigner.js.map +1 -1
- package/react/components/sdd/ThemePage.css +6 -23
- package/react/components/sdd/ThemePage.js +8 -5
- package/react/components/sdd/ThemePage.js.map +1 -1
- package/react/components/sdd/Themes.d.ts +2 -1
- package/react/components/sdd/Themes.js +4 -2
- package/react/components/sdd/Themes.js.map +1 -1
- package/react/components/sdd/Toolbar.d.ts +5 -4
- package/react/components/sdd/Toolbar.js +18 -9
- 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.d.ts +1 -1
- package/react/components/sdd/common/setPreloadDefaults.js +9 -4
- package/react/components/sdd/common/setPreloadDefaults.js.map +1 -1
- package/react/components/sdd/common/views.js +7 -4
- package/react/components/sdd/common/views.js.map +1 -1
- package/react/components/sdd/css/addApp.css +65 -0
- package/react/components/sdd/css/appearance.css +6 -0
- package/react/components/sdd/css/applications.css +27 -34
- 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 +11 -14
- 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/authenticationProps.js +15 -1
- package/react/components/sdd/fixtures/authenticationProps.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/preloads.js +14 -12
- package/react/components/sdd/fixtures/preloads.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 +466 -0
- package/react/components/sdd/smartDesktopClient.js +906 -0
- package/react/components/sdd/smartDesktopClient.js.map +1 -0
- package/react/components/sdd/smartDesktopClient.spec.d.ts +1 -0
- package/react/components/sdd/smartDesktopClient.spec.js +64 -0
- package/react/components/sdd/smartDesktopClient.spec.js.map +1 -0
- package/react/components/sdd/stories/AddApp.stories.d.ts +11 -0
- package/react/components/sdd/stories/AddApp.stories.js +26 -0
- package/react/components/sdd/stories/AddApp.stories.js.map +1 -0
- package/react/components/sdd/stories/AppEditPage.stories.d.ts +5 -1
- package/react/components/sdd/stories/AppEditPage.stories.js +5 -0
- package/react/components/sdd/stories/AppEditPage.stories.js.map +1 -1
- package/react/components/sdd/stories/Appearance.stories.d.ts +1 -1
- package/react/components/sdd/stories/Appearance.stories.js +2 -0
- package/react/components/sdd/stories/Appearance.stories.js.map +1 -1
- package/react/components/sdd/stories/Authentication.stories.js +2 -16
- package/react/components/sdd/stories/Authentication.stories.js.map +1 -1
- package/react/components/sdd/stories/OptionalSettingsView.stories.js +1 -1
- package/react/components/sdd/stories/OptionalSettingsView.stories.js.map +1 -1
- package/react/components/sdd/stories/SmartDesktopDesigner.stories.d.ts +1 -1
- package/react/components/sdd/stories/SmartDesktopDesigner.stories.js +3 -0
- package/react/components/sdd/stories/SmartDesktopDesigner.stories.js.map +1 -1
- package/react/components/sdd/stories/Themes.stories.d.ts +1 -1
- package/react/components/sdd/stories/Themes.stories.js +1 -0
- package/react/components/sdd/stories/Themes.stories.js.map +1 -1
- package/react/components/sdd/tests/AddApp.spec.d.ts +1 -0
- package/react/components/sdd/tests/AddApp.spec.js +133 -0
- package/react/components/sdd/tests/AddApp.spec.js.map +1 -0
- package/react/components/sdd/tests/AppEditPage.spec.js +108 -23
- package/react/components/sdd/tests/AppEditPage.spec.js.map +1 -1
- package/react/components/sdd/tests/Application.spec.js +351 -369
- 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 +30 -50
- package/react/components/sdd/tests/Applications.spec.js.map +1 -1
- package/react/components/sdd/tests/Authentication.spec.js +8 -1
- 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 +63 -7
- package/react/components/sdd/tests/EditPreload.spec.js.map +1 -1
- package/react/components/sdd/tests/Export.spec.js +8 -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/Navigation.spec.js +2 -2
- package/react/components/sdd/tests/Navigation.spec.js.map +1 -1
- package/react/components/sdd/tests/OptionalSettingsView.spec.js +264 -0
- package/react/components/sdd/tests/OptionalSettingsView.spec.js.map +1 -1
- package/react/components/sdd/tests/ProjectErrors.spec.js +3 -1
- package/react/components/sdd/tests/ProjectErrors.spec.js.map +1 -1
- package/react/components/sdd/tests/SmartDesktopDesigner.spec.js +2 -2
- package/react/components/sdd/tests/SmartDesktopDesigner.spec.js.map +1 -1
- package/react/components/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/Highlight.stories.js +1 -1
- package/react/components/search/Highlight.stories.js.map +1 -1
- package/react/components/search/Search.js +1 -1
- package/react/components/search/Search.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.d.ts +5 -0
- package/react/components/search/SearchResult.js +6 -0
- package/react/components/search/SearchResult.js.map +1 -1
- package/react/components/search/SearchResult.spec.d.ts +1 -0
- package/react/components/search/SearchResult.spec.js +46 -0
- package/react/components/search/SearchResult.spec.js.map +1 -0
- package/react/components/search/SearchResult.stories.d.ts +16 -0
- package/react/components/search/SearchResult.stories.js +113 -0
- package/react/components/search/SearchResult.stories.js.map +1 -0
- package/react/components/search/SearchResults.js +5 -1
- package/react/components/search/SearchResults.js.map +1 -1
- package/react/components/search/SearchResults.spec.d.ts +1 -0
- package/react/components/search/SearchResults.spec.js +35 -0
- package/react/components/search/SearchResults.spec.js.map +1 -0
- package/react/components/search/SearchResults.stories.d.ts +11 -0
- package/react/components/search/SearchResults.stories.js +458 -0
- package/react/components/search/SearchResults.stories.js.map +1 -0
- 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 +26 -6
- 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/DefaultDropdownButton.spec.js +12 -0
- package/react/components/shared/tests/DefaultDropdownButton.spec.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 +46 -0
- package/react/components/singleInputDialog/SingleInputDialog.js.map +1 -1
- package/react/components/singleInputDialog/SingleInputDialog.stories.js +2 -2
- package/react/components/singleInputDialog/SingleInputDialog.stories.js.map +1 -1
- package/react/components/smartDesktopDesigner/SmartDesktopDesigner.d.ts +1 -16
- package/react/components/smartDesktopDesigner/SmartDesktopDesigner.js +5 -3
- 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 +10 -4
- 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 +6 -2
- package/react/components/toolbar/ToolbarIcon.js.map +1 -1
- package/react/components/toolbar/ToolbarSection.d.ts +8 -9
- package/react/components/toolbar/ToolbarSection.js +21 -7
- 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 +21 -10
- 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 +83 -1
- 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 +12 -3
- 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 +91 -15
- 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 +8 -1
- 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 +17 -1
- package/react/components/toolbar/workspaceManagementMenu/components/Workspace.js +21 -1
- 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 +6 -1
- 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 +78 -2
- package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js +191 -40
- 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/ContentSection.js +1 -1
- package/react/components/userPreferences/components/ContentSection.js.map +1 -1
- 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 +14 -2
- package/react/components/userPreferences/components/content/Workspaces.js +78 -38
- package/react/components/userPreferences/components/content/Workspaces.js.map +1 -1
- package/react/components/userPreferences/components/content/notificationViews/NotificationsPreferencesHome.js +7 -3
- 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 +26 -5
- package/react/components/userPreferences/components/general/ScheduledClose.js.map +1 -1
- package/react/components/userPreferences/components/workspaces/WorkspaceButton.js +1 -1
- package/react/components/userPreferences/components/workspaces/WorkspaceButton.js.map +1 -1
- package/react/components/userPreferences/components/workspaces/WorkspaceItem.d.ts +1 -1
- package/react/components/userPreferences/components/workspaces/WorkspaceItem.js +20 -10
- package/react/components/userPreferences/components/workspaces/WorkspaceItem.js.map +1 -1
- package/react/components/userPreferences/stores/UserPreferencesStore.d.ts +18 -1
- package/react/components/userPreferences/stores/UserPreferencesStore.js +35 -6
- package/react/components/userPreferences/stores/UserPreferencesStore.js.map +1 -1
- package/react/components/userPreferences/tests/LeftNav.spec.js +15 -1
- package/react/components/userPreferences/tests/LeftNav.spec.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/UserPreferencesBase.spec.d.ts +1 -0
- package/react/components/userPreferences/tests/UserPreferencesBase.spec.js +42 -0
- package/react/components/userPreferences/tests/UserPreferencesBase.spec.js.map +1 -0
- package/react/components/userPreferences/tests/Workspace.spec.d.ts +1 -0
- package/react/components/userPreferences/tests/Workspace.spec.js +139 -0
- package/react/components/userPreferences/tests/Workspace.spec.js.map +1 -0
- package/react/components/windowTitleBar/WindowTitleBarShell.d.ts +130 -2
- package/react/components/windowTitleBar/WindowTitleBarShell.js +386 -27
- 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 +27 -5
- 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 +245 -48
- 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 +81 -6
- 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 +64 -1
- 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/YesNoDialog.stories.js +2 -2
- package/react/components/yesNoDialog/YesNoDialog.stories.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 +10 -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 +104 -12
- 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.d.ts +1 -1
- package/react/hooks/useToolbar.js +54 -2
- 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.d.ts +2 -2
- 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 +8 -4
- package/react/store.js +11 -0
- package/react/store.js.map +1 -1
- package/react/tsconfig.tsbuildinfo +1 -0
- 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 +8 -0
- package/react/types/smartDesktopDesignerTypes.js.map +1 -1
- package/react/types/workspaceTypes.d.ts +8 -0
|
@@ -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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toolbar.spec.js","sourceRoot":"","sources":["../../../../src/components/sdd/tests/Toolbar.spec.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAC1F,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAGtD,OAAO,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACxD,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;AAEjC,MAAM,CAAC,MAAM,kBAAkB,GAAG,yBAAyB,EAC1D,6BAA6B,GAAG,eAAe,EAC/C,sBAAsB,GAAG,iBAAiB,EAC1C,WAAW,GAAG,uBAAuB,EACrC,kBAAkB,GAAG,8BAA8B,EACnD,mBAAmB,GAAG,wCAAwC,EAC9D,mBAAmB,GAAG,wCAAwC,EAC9D,eAAe,GAAG,uBAAuB,EACzC,kBAAkB,GAAG,0BAA0B,EAC/C,aAAa,GAAG,gBAAgB,EAChC,iBAAiB,GAAG,yBAAyB,EAC7C,oBAAoB,GAAG,+BAA+B,CAAC;AAExD,MAAM,WAAW,GAAG;IACnB,cAAc,EAAE,GAAG,EAAE,GAAE,CAAC;IACxB,eAAe,EAAE,GAAG,EAAE,GAAE,CAAC;CACzB,CAAC;AAEF,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAE5C,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,mBAAmB,oBAAM,mBAAmB,CAAC,IAAqB,EAAI,CAAC,CAAC;QAE/F,MAAM,CAAC,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,iBAAiB,oBAAK,cAAc,CAAC,OAAO,CAAC,EAAI,CAAC,CAAC;QAC1E,MAAM,QAAQ,EAAE,CAAC;QACjB,OAAO,CAAC,MAAM,EAAE,CAAC;QAEjB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1E,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;QACnF,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,mBAAmB,oBAAK,cAAc,CAAC,SAAS,CAAC,EAAI,CAAC,CAAC;QAC9E,MAAM,QAAQ,EAAE,CAAC;QACjB,OAAO,CAAC,MAAM,EAAE,CAAC;QAEjB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC1F,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACxE,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC/D,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,mBAAmB,oBAAK,cAAc,CAAC,SAAS,CAAC,EAAI,CAAC,CAAC;QAC9E,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC3D,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC9E,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAK,cAAc,CAAC,MAAM,CAAC,EAAI,CAAC,CAAC;QAC5D,MAAM,QAAQ,EAAE,CAAC;QACjB,OAAO,CAAC,MAAM,EAAE,CAAC;QAEjB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAC9E,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;QAChF,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,mBAAmB,oBAAK,cAAc,CAAC,SAAS,CAAC,EAAI,CAAC,CAAC;QAE9E,MAAM,QAAQ,EAAE,CAAC;QACjB,OAAO,CAAC,MAAM,EAAE,CAAC;QAEjB,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACjF,OAAO;aACL,IAAI,CAAC,YAAY,CAAC;aAClB,EAAE,CAAC,CAAC,CAAC;aACL,QAAQ,CAAC,QAAQ,EAAE;YACnB,MAAM,EAAE;gBACP,KAAK,EAAE,EAAE;aACT;SACD,CAAC,CAAC;QACJ,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,mDAAmD,CAAC;IAC1E,MAAM,aAAa,GAAG,oDAAoD,CAAC;IAC3E,MAAM,aAAa,GAAG,qDAAqD,CAAC;IAC5E,EAAE,CAAC,wEAAwE,EAAE,KAAK,IAAI,EAAE;QACvF,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,mBAAmB,oBAAK,cAAc,CAAC,SAAS,CAAC,EAAI,CAAC,CAAC;QAE9E,MAAM,QAAQ,EAAE,CAAC;QACjB,OAAO,CAAC,MAAM,EAAE,CAAC;QAEjB,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACjF,OAAO;aACL,IAAI,CAAC,YAAY,CAAC;aAClB,EAAE,CAAC,CAAC,CAAC;aACL,QAAQ,CAAC,QAAQ,EAAE;YACnB,MAAM,EAAE;gBACP,KAAK,EAAE,aAAa;aACpB;SACD,CAAC,CAAC;QACJ,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,wEAAwE,EAAE,KAAK,IAAI,EAAE;QACvF,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,mBAAmB,oBAAK,cAAc,CAAC,SAAS,CAAC,EAAI,CAAC,CAAC;QAE9E,MAAM,QAAQ,EAAE,CAAC;QACjB,OAAO,CAAC,MAAM,EAAE,CAAC;QAEjB,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACjF,OAAO;aACL,IAAI,CAAC,YAAY,CAAC;aAClB,EAAE,CAAC,CAAC,CAAC;aACL,QAAQ,CAAC,QAAQ,EAAE;YACnB,MAAM,EAAE;gBACP,KAAK,EAAE,aAAa;aACpB;SACD,CAAC,CAAC;QACJ,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;QAC5F,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,mBAAmB,oBAAK,cAAc,CAAC,SAAS,CAAC,EAAI,CAAC,CAAC;QAE9E,MAAM,QAAQ,EAAE,CAAC;QACjB,OAAO,CAAC,MAAM,EAAE,CAAC;QAEjB,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACjF,OAAO;aACL,IAAI,CAAC,YAAY,CAAC;aAClB,EAAE,CAAC,CAAC,CAAC;aACL,QAAQ,CAAC,QAAQ,EAAE;YACnB,MAAM,EAAE;gBACP,KAAK,EAAE,aAAa;aACpB;SACD,CAAC,CAAC;QACJ,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;QAC5F,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,mBAAmB,oBAAK,cAAc,CAAC,SAAS,CAAC,EAAI,CAAC,CAAC;QAE9E,MAAM,QAAQ,EAAE,CAAC;QACjB,OAAO,CAAC,MAAM,EAAE,CAAC;QAGjB,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAG3D,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAGjD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACxG,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,gFAAgF,EAAE,KAAK,IAAI,EAAE;QAC/F,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,mBAAmB,oBAAK,cAAc,CAAC,SAAS,CAAC,EAAI,CAAC,CAAC;QAE9E,MAAM,QAAQ,EAAE,CAAC;QACjB,OAAO,CAAC,MAAM,EAAE,CAAC;QAEjB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAGjG,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAG3D,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAEjD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACxG,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,0EAA0E,EAAE,KAAK,IAAI,EAAE;QACzF,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,mBAAmB,oBAAK,cAAc,CAAC,SAAS,CAAC,EAAI,CAAC,CAAC;QAE9E,MAAM,QAAQ,EAAE,CAAC;QACjB,OAAO,CAAC,MAAM,EAAE,CAAC;QAEjB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAGjG,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAG3D,OAAO;aACL,IAAI,CAAC,YAAY,CAAC;aAClB,EAAE,CAAC,CAAC,CAAC;aACL,QAAQ,CAAC,QAAQ,EAAE;YACnB,MAAM,EAAE;gBACP,KAAK,EAAE,QAAQ;aACf;SACD,CAAC,CAAC;QAGJ,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAEhE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAEf,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAE/C,MAAM,QAAQ,EAAE,CAAC;QACjB,OAAO,CAAC,MAAM,EAAE,CAAC;QACjB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACtG,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,mBAAmB,oBAAK,cAAc,CAAC,SAAS,CAAC,EAAI,CAAC,CAAC;QAE9E,MAAM,QAAQ,EAAE,CAAC;QACjB,OAAO,CAAC,MAAM,EAAE,CAAC;QAGjB,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAGpE,OAAO;aACL,IAAI,CAAC,YAAY,CAAC;aAClB,EAAE,CAAC,CAAC,CAAC;aACL,QAAQ,CAAC,QAAQ,EAAE;YACnB,MAAM,EAAE;gBACP,KAAK,EAAE,aAAa;aACpB;SACD,CAAC,CAAC;QAGJ,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAE/C,MAAM,QAAQ,EAAE,CAAC;QACjB,OAAO,CAAC,MAAM,EAAE,CAAC;QAGjB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACvE,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,mBAAmB,oBAAK,cAAc,CAAC,SAAS,CAAC,EAAI,CAAC,CAAC;QAE9E,MAAM,QAAQ,EAAE,CAAC;QACjB,OAAO,CAAC,MAAM,EAAE,CAAC;QAGjB,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAGpE,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAGhE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAE/C,MAAM,QAAQ,EAAE,CAAC;QACjB,OAAO,CAAC,MAAM,EAAE,CAAC;QAGjB,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAGpE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACjF,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACxE,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,mBAAmB,oBAAK,cAAc,CAAC,SAAS,CAAC,EAAI,CAAC,CAAC;QAG9E,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAE3D,MAAM,QAAQ,EAAE,CAAC;QAEjB,OAAO,CAAC,MAAM,EAAE,CAAC;QACjB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QAGrE,OAAO;aACL,IAAI,CAAC,YAAY,CAAC;aAClB,EAAE,CAAC,CAAC,CAAC;aACL,QAAQ,CAAC,QAAQ,EAAE;YACnB,MAAM,EAAE;gBACP,KAAK,EAAE,MAAM;aACb;SACD,CAAC,CAAC;QAGJ,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAE/C,MAAM,QAAQ,EAAE,CAAC;QACjB,OAAO,CAAC,MAAM,EAAE,CAAC;QAGjB,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC3D,MAAM,QAAQ,EAAE,CAAC;QAGjB,OAAO,CAAC,MAAM,EAAE,CAAC;QACjB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;IACtE,CAAC,CAAC,CAAC;AAiCJ,CAAC,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\nimport { mount } from \"enzyme\";\nimport { describe, it } from \"mocha\";\nimport { expect } from \"chai\";\nimport { ToolbarProps } from \"../Toolbar\";\nimport { DefaultApplications, EmptyApplications, Long } from \"../stories/Toolbar.stories\";\nimport { getToolbarArgs } from \"../fixtures/apps\";\nimport { waitTick } from \"../sdd_helpers\";\n\n// For running accessibility scans\nimport { accessibilityAssessor } from \"./a11y_helper\";\n\n// Necessary to allow sinon to work with mocked actions (which are shown in the Actions panel in Storybook)\nimport addons, { mockChannel } from \"@storybook/addons\";\naddons.setChannel(mockChannel());\n\nexport const ADD_NEW_APP_BUTTON = \".icon-before-add button\",\n\tACTIVE_TAB_APP_LIST_TABLE_ROW = \".app-list-row\",\n\tAPP_LIST_EMPTY_MESSAGE = \".app-list-empty\",\n\tPAGE_HEADER = \".view-title .leftSide\",\n\tPAGE_HEADER_BUTTON = \".view-title .leftSide button\",\n\tSETUP_WIZARD_BUTTON = \".tile-type-buttons .icon-wizard button\",\n\tSETUP_MANUAL_BUTTON = \".tile-type-buttons .icon-manual button\",\n\tAPP_ACCESS_RULE = \".app-edit-access-item\",\n\tAPP_ACCESS_BLOCKED = \".app-edit-access-blocked\",\n\tQUICK_ADD_APP = \".quick-add-app\",\n\tQUICK_ADD_APP_URL = \".quick-add-app #app-url\",\n\tQUICK_ADD_APP_BUTTON = \".save-button-container button\";\n\nconst preventable = {\n\tpreventDefault: () => {},\n\tstopPropagation: () => {},\n};\n\ndescribe(\"SDD: <Toolbar /> - Menu tab\", () => {\n\t// Example accessibility scan\n\tit(\"should pass accessibility scans\", async () => {\n\t\tconst wrapper = mount(<DefaultApplications {...(DefaultApplications.args as ToolbarProps)} />);\n\n\t\texpect(await accessibilityAssessor(wrapper)).to.be.true;\n\t});\n\n\tit(\"should display empty state with 0 menus\", async () => {\n\t\tconst wrapper = mount(<EmptyApplications {...getToolbarArgs(\"empty\")} />);\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\texpect(wrapper.find(ADD_NEW_APP_BUTTON).first().text()).to.contain(\"Add\");\n\t\texpect(wrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).length).to.be.equal(0);\n\t\texpect(wrapper.find(\".app-list-empty\").first().text()).to.contain(\"nothing here\");\n\t});\n\tit(\"should display menu name and delete button when there are 1+ menus\", async () => {\n\t\tconst wrapper = mount(<DefaultApplications {...getToolbarArgs(\"default\")} />);\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\texpect(wrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).length).to.be.equal(1);\n\t\texpect(wrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).first().text()).to.contain(\"Examples\");\n\t\texpect(wrapper.find(\".app-list-row .icon-delete\").exists()).to.be.true;\n\t});\n\tit(\"MenuEdit: should have an empty Name field by default\", () => {\n\t\tconst wrapper = mount(<DefaultApplications {...getToolbarArgs(\"default\")} />);\n\t\twrapper.find(ADD_NEW_APP_BUTTON).first().simulate(\"click\");\n\t\texpect(wrapper.find(\"#menu-name\").first().prop(\"value\")).to.equal(\"\");\n\t});\n\tit(\"should display disabled Add New button when there are 5 menus\", async () => {\n\t\tconst wrapper = mount(<Long {...getToolbarArgs(\"long\")} />);\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\texpect(wrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).length).to.be.equal(5);\n\t\texpect(wrapper.find(ADD_NEW_APP_BUTTON).first().prop(\"disabled\")).to.be.true;\n\t});\n\tit(\"MenuEdit: should disable submit button when Name field is empty\", async () => {\n\t\tconst wrapper = mount(<DefaultApplications {...getToolbarArgs(\"default\")} />);\n\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\twrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).at(0).simulate(\"click\", preventable);\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: \"\",\n\t\t\t\t},\n\t\t\t});\n\t\texpect(wrapper.find(\"button\").at(1).prop(\"disabled\")).to.be.true;\n\t});\n\n\tconst characters_49 = \"Hubert Blaine Wolfeschlegelsteinhausenbergerdorff\";\n\tconst characters_50 = \"Hubert Blaine Wolfeschlegelsteinhausenbergerdorff!\";\n\tconst characters_51 = \"Hubert Blaine Wolfeschlegelsteinhausenbergerdorff!?\";\n\tit(\"MenuEdit: when Name input receives 49 characters, it should display 49\", async () => {\n\t\tconst wrapper = mount(<DefaultApplications {...getToolbarArgs(\"default\")} />);\n\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\twrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).at(0).simulate(\"click\", preventable);\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: characters_49,\n\t\t\t\t},\n\t\t\t});\n\t\texpect(wrapper.find(\"#menu-name\").prop(\"value\")).to.equal(characters_49);\n\t});\n\tit(\"MenuEdit: when Name input receives 50 characters, it should display 50\", async () => {\n\t\tconst wrapper = mount(<DefaultApplications {...getToolbarArgs(\"default\")} />);\n\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\twrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).at(0).simulate(\"click\", preventable);\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: characters_50,\n\t\t\t\t},\n\t\t\t});\n\t\texpect(wrapper.find(\"#menu-name\").prop(\"value\")).to.equal(characters_50);\n\t});\n\tit(\"MenuEdit: when Name input receives 51 characters, it should only display 50\", async () => {\n\t\tconst wrapper = mount(<DefaultApplications {...getToolbarArgs(\"default\")} />);\n\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\twrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).at(0).simulate(\"click\", preventable);\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: characters_51,\n\t\t\t\t},\n\t\t\t});\n\t\texpect(wrapper.find(\"#menu-name\").prop(\"value\")).to.equal(characters_50);\n\t});\n\tit(\"MenuEdit: back button should take users back to Applications page, Menu tab\", async () => {\n\t\tconst wrapper = mount(<DefaultApplications {...getToolbarArgs(\"default\")} />);\n\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\t// Click \"Add\" button\n\t\twrapper.find(ADD_NEW_APP_BUTTON).first().simulate(\"click\");\n\n\t\t// Click \"Back\" button\n\t\twrapper.find(\"button\").first().simulate(\"click\");\n\n\t\t// expect(wrapper.find(\".visible div[data-label='Menus']\").exists(), \"Menus Tab is visible\").to.be.true;\n\t\texpect(wrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).length, \"Still only 1 menu in list\").to.be.equal(1);\n\t});\n\tit(\"MenuEdit: click Add New, then click Cancel, then see menu list has not changed\", async () => {\n\t\tconst wrapper = mount(<DefaultApplications {...getToolbarArgs(\"default\")} />);\n\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\texpect(wrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).length, \"Only 1 menu in list\").to.be.equal(1);\n\n\t\t// Click \"Add\" button\n\t\twrapper.find(ADD_NEW_APP_BUTTON).first().simulate(\"click\");\n\n\t\t// Click \"Back\" button\n\t\twrapper.find(\"button\").first().simulate(\"click\");\n\n\t\texpect(wrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).length, \"Still only 1 menu in list\").to.be.equal(1);\n\t});\n\tit(\"MenuEdit: should show a new menu in the list after a menu has been added\", async () => {\n\t\tconst wrapper = mount(<DefaultApplications {...getToolbarArgs(\"default\")} />);\n\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\texpect(wrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).length, \"Only 1 menu in list\").to.be.equal(1);\n\n\t\t// Click \"Add\" button\n\t\twrapper.find(ADD_NEW_APP_BUTTON).first().simulate(\"click\");\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// Check \"Example Charts App\"\n\t\twrapper.find(\"input[type='checkbox']\").at(0).simulate(\"change\");\n\n\t\tconsole.log(6);\n\t\t// Click Save\n\t\twrapper.find(\"button\").at(1).simulate(\"click\");\n\n\t\tawait waitTick();\n\t\twrapper.update();\n\t\texpect(wrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).length, \"Menu list shows 2 menus\").to.be.equal(2);\n\t});\n\tit(\"name change to a menu should persist\", async () => {\n\t\tconst wrapper = mount(<DefaultApplications {...getToolbarArgs(\"default\")} />);\n\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\t// Click Examples\n\t\twrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).at(0).simulate(\"click\");\n\n\t\t// Change name to Hello World\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: \"Hello World\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t// Click Save\n\t\twrapper.find(\"button\").at(1).simulate(\"click\");\n\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\t// Confirm name is Hello World\n\t\texpect(wrapper.find(\"[role='listitem']\").at(0).text()).contains(\"Hello World\");\n\t});\n\tit(\"selected applications changes to a menu should persist\", async () => {\n\t\tconst wrapper = mount(<DefaultApplications {...getToolbarArgs(\"default\")} />);\n\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\t// Click Examples\n\t\twrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).at(0).simulate(\"click\");\n\n\t\t// Select items\n\t\twrapper.find(\"input[type='checkbox']\").at(2).simulate(\"change\");\n\n\t\t// Click save\n\t\twrapper.find(\"button\").at(1).simulate(\"click\");\n\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\t// Click examples\n\t\twrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).at(0).simulate(\"click\");\n\n\t\t// Confirm items still present\n\t\texpect(wrapper.find(\"input[type='checkbox']\").at(2).prop(\"checked\")).to.be.true;\n\t});\n\tit(\"should not persist menu name when saving multiple menus\", async () => {\n\t\tconst wrapper = mount(<DefaultApplications {...getToolbarArgs(\"default\")} />);\n\n\t\t// Click \"Add\" button\n\t\twrapper.find(ADD_NEW_APP_BUTTON).first().simulate(\"click\");\n\n\t\tawait waitTick();\n\t\t// Confirm name field is empty\n\t\twrapper.update();\n\t\texpect(wrapper.find(\"#menu-name\").first().prop(\"value\")).to.be.empty;\n\n\t\t// Change name to Test\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: \"Test\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t// Click save\n\t\twrapper.find(\"button\").at(1).simulate(\"click\");\n\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\t// Click \"Add\" button\n\t\twrapper.find(ADD_NEW_APP_BUTTON).first().simulate(\"click\");\n\t\tawait waitTick();\n\t\t// Confirm name field is empty\n\n\t\twrapper.update();\n\t\texpect(wrapper.find(\"#menu-name\").first().prop(\"value\")).to.be.empty;\n\t});\n\t// it(\"should show a warning icon if an empty menu is created\", async () => {\n\t// \tconst wrapper = mount(<DefaultApplications {...getToolbarArgs(\"default\")} />);\n\n\t// \t// Click \"Add\" button\n\t// \twrapper.find(ADD_NEW_APP_BUTTON).first().simulate(\"click\");\n\n\t// \tawait waitTick();\n\t// \t// Confirm name field is empty\n\t// \twrapper.update();\n\t// \texpect(wrapper.find(\"#menu-name\").first().prop(\"value\")).to.be.empty;\n\n\t// \t// Change name to Test\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: \"Test\",\n\t// \t\t\t},\n\t// \t\t});\n\n\t// \t// Click save\n\t// \twrapper.find(\"button\").at(1).simulate(\"click\");\n\n\t// \tawait waitTick();\n\t// \twrapper.update();\n\n\t// \texpect(\n\t// \t\twrapper.find(\".app-list-row\").at(1).find(\".tooltip-icon-warn\").exists(),\n\t// \t\t\"Warning tooltip present in 2nd row\"\n\t// \t).to.be.true;\n\t// });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"Toolbar.spec.js","sourceRoot":"","sources":["../../../../src/components/sdd/tests/Toolbar.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 { ToolbarProps } from \"../Toolbar\";\nimport { DefaultApplications, EmptyApplications, Long } from \"../stories/Toolbar.stories\";\nimport { getToolbarArgs } from \"../fixtures/apps\";\nimport { waitTick } from \"../sdd_helpers\";\n\n// For running accessibility scans\nimport { accessibilityAssessor } from \"./a11y_helper\";\n\n// Necessary to allow sinon to work with mocked actions (which are shown in the Actions panel in Storybook)\nimport addons, { mockChannel } from \"@storybook/addons\";\naddons.setChannel(mockChannel());\n\nexport const ADD_NEW_APP_BUTTON = \".icon-before-add button\",\n\tACTIVE_TAB_APP_LIST_TABLE_ROW = \".app-list-row\",\n\tAPP_LIST_EMPTY_MESSAGE = \".app-list-empty\",\n\tPAGE_HEADER = \".view-title .leftSide\",\n\tPAGE_HEADER_BUTTON = \".view-title .leftSide button\",\n\tSETUP_WIZARD_BUTTON = \".tile-type-buttons .icon-wizard button\",\n\tSETUP_MANUAL_BUTTON = \".tile-type-buttons .icon-manual button\",\n\tAPP_ACCESS_RULE = \".app-edit-access-item\",\n\tAPP_ACCESS_BLOCKED = \".app-edit-access-blocked\",\n\tQUICK_ADD_APP = \".quick-add-app\",\n\tQUICK_ADD_APP_URL = \".quick-add-app #app-url\",\n\tQUICK_ADD_APP_BUTTON = \".save-button-container button\";\n\nconst preventable = {\n\tpreventDefault: () => {},\n\tstopPropagation: () => {},\n};\n\ndescribe(\"SDD: <Toolbar /> - Menu tab\", () => {\n\t// Example accessibility scan\n\tit(\"should pass accessibility scans\", async () => {\n\t\tconst wrapper = mount(<DefaultApplications {...(DefaultApplications.args as ToolbarProps)} />);\n\n\t\texpect(await accessibilityAssessor(wrapper)).to.be.true;\n\t});\n\n\tit(\"should display empty state with 0 menus\", async () => {\n\t\tconst wrapper = mount(<EmptyApplications {...getToolbarArgs(\"empty\")} />);\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\texpect(wrapper.find(ADD_NEW_APP_BUTTON).first().text()).to.contain(\"Add\");\n\t\texpect(wrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).length).to.be.equal(0);\n\t\texpect(wrapper.find(\".app-list-empty\").first().text()).to.contain(\"nothing here\");\n\t});\n\tit(\"should display menu name and delete button when there are 1+ menus\", async () => {\n\t\tconst wrapper = mount(<DefaultApplications {...getToolbarArgs(\"default\")} />);\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\texpect(wrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).length).to.be.equal(1);\n\t\texpect(wrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).first().text()).to.contain(\"Examples\");\n\t\texpect(wrapper.find(\".app-list-row .icon-delete\").exists()).to.be.true;\n\t});\n\tit(\"MenuEdit: should have an empty Name field by default\", () => {\n\t\tconst wrapper = mount(<DefaultApplications {...getToolbarArgs(\"default\")} />);\n\t\twrapper.find(ADD_NEW_APP_BUTTON).first().simulate(\"click\");\n\t\texpect(wrapper.find(\"#menu-name\").first().prop(\"value\")).to.equal(\"\");\n\t});\n\tit(\"should display disabled Add New button when there are 5 menus\", async () => {\n\t\tconst wrapper = mount(<Long {...getToolbarArgs(\"long\")} />);\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\texpect(wrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).length).to.be.equal(5);\n\t\texpect(wrapper.find(ADD_NEW_APP_BUTTON).first().prop(\"disabled\")).to.be.true;\n\t});\n\tit(\"MenuEdit: should disable submit button when Name field is empty\", async () => {\n\t\tconst wrapper = mount(<DefaultApplications {...getToolbarArgs(\"default\")} />);\n\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\twrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).at(0).simulate(\"click\", preventable);\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: \"\",\n\t\t\t\t},\n\t\t\t});\n\t\texpect(wrapper.find(\"button\").at(1).prop(\"disabled\")).to.be.true;\n\t});\n\n\tconst characters_49 = \"Hubert Blaine Wolfeschlegelsteinhausenbergerdorff\";\n\tconst characters_50 = \"Hubert Blaine Wolfeschlegelsteinhausenbergerdorff!\";\n\tconst characters_51 = \"Hubert Blaine Wolfeschlegelsteinhausenbergerdorff!?\";\n\tit(\"MenuEdit: when Name input receives 49 characters, it should display 49\", async () => {\n\t\tconst wrapper = mount(<DefaultApplications {...getToolbarArgs(\"default\")} />);\n\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\twrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).at(0).simulate(\"click\", preventable);\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: characters_49,\n\t\t\t\t},\n\t\t\t});\n\t\texpect(wrapper.find(\"#menu-name\").prop(\"value\")).to.equal(characters_49);\n\t});\n\tit(\"MenuEdit: when Name input receives 50 characters, it should display 50\", async () => {\n\t\tconst wrapper = mount(<DefaultApplications {...getToolbarArgs(\"default\")} />);\n\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\twrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).at(0).simulate(\"click\", preventable);\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: characters_50,\n\t\t\t\t},\n\t\t\t});\n\t\texpect(wrapper.find(\"#menu-name\").prop(\"value\")).to.equal(characters_50);\n\t});\n\tit(\"MenuEdit: when Name input receives 51 characters, it should only display 50\", async () => {\n\t\tconst wrapper = mount(<DefaultApplications {...getToolbarArgs(\"default\")} />);\n\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\twrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).at(0).simulate(\"click\", preventable);\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: characters_51,\n\t\t\t\t},\n\t\t\t});\n\t\texpect(wrapper.find(\"#menu-name\").prop(\"value\")).to.equal(characters_50);\n\t});\n\tit(\"MenuEdit: back button should take users back to Applications page, Menu tab\", async () => {\n\t\tconst wrapper = mount(<DefaultApplications {...getToolbarArgs(\"default\")} />);\n\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\t// Click \"Add\" button\n\t\twrapper.find(ADD_NEW_APP_BUTTON).first().simulate(\"click\");\n\n\t\t// Click \"Back\" button\n\t\twrapper.find(\"button\").first().simulate(\"click\");\n\n\t\t// expect(wrapper.find(\".visible div[data-label='Menus']\").exists(), \"Menus Tab is visible\").to.be.true;\n\t\texpect(wrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).length, \"Still only 1 menu in list\").to.be.equal(1);\n\t});\n\tit(\"MenuEdit: click Add New, then click Cancel, then see menu list has not changed\", async () => {\n\t\tconst wrapper = mount(<DefaultApplications {...getToolbarArgs(\"default\")} />);\n\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\texpect(wrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).length, \"Only 1 menu in list\").to.be.equal(1);\n\n\t\t// Click \"Add\" button\n\t\twrapper.find(ADD_NEW_APP_BUTTON).first().simulate(\"click\");\n\n\t\t// Click \"Back\" button\n\t\twrapper.find(\"button\").first().simulate(\"click\");\n\n\t\texpect(wrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).length, \"Still only 1 menu in list\").to.be.equal(1);\n\t});\n\tit(\"MenuEdit: should show a new menu in the list after a menu has been added\", async () => {\n\t\tconst wrapper = mount(<DefaultApplications {...getToolbarArgs(\"default\")} />);\n\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\texpect(wrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).length, \"Only 1 menu in list\").to.be.equal(1);\n\n\t\t// Click \"Add\" button\n\t\twrapper.find(ADD_NEW_APP_BUTTON).first().simulate(\"click\");\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// Check \"Example Charts App\"\n\t\twrapper.find(\"input[type='checkbox']\").at(0).simulate(\"change\");\n\n\t\tconsole.log(6);\n\t\t// Click Save\n\t\twrapper.find(\"button\").at(1).simulate(\"click\");\n\n\t\tawait waitTick();\n\t\twrapper.update();\n\t\texpect(wrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).length, \"Menu list shows 2 menus\").to.be.equal(2);\n\t});\n\tit(\"name change to a menu should persist\", async () => {\n\t\tconst wrapper = mount(<DefaultApplications {...getToolbarArgs(\"default\")} />);\n\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\t// Click Examples\n\t\twrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).at(0).simulate(\"click\");\n\n\t\t// Change name to Hello World\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: \"Hello World\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t// Click Save\n\t\twrapper.find(\"button\").at(1).simulate(\"click\");\n\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\t// Confirm name is Hello World\n\t\texpect(wrapper.find(\"[role='listitem']\").at(0).text()).contains(\"Hello World\");\n\t});\n\tit(\"selected applications changes to a menu should persist\", async () => {\n\t\tconst wrapper = mount(<DefaultApplications {...getToolbarArgs(\"default\")} />);\n\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\t// Click Examples\n\t\twrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).at(0).simulate(\"click\");\n\n\t\t// Select items\n\t\twrapper.find(\"input[type='checkbox']\").at(2).simulate(\"change\");\n\n\t\t// Click save\n\t\twrapper.find(\"button\").at(1).simulate(\"click\");\n\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\t// Click examples\n\t\twrapper.find(ACTIVE_TAB_APP_LIST_TABLE_ROW).at(0).simulate(\"click\");\n\n\t\t// Confirm items still present\n\t\texpect(wrapper.find(\"input[type='checkbox']\").at(2).prop(\"checked\")).to.be.true;\n\t});\n\tit(\"should not persist menu name when saving multiple menus\", async () => {\n\t\tconst wrapper = mount(<DefaultApplications {...getToolbarArgs(\"default\")} />);\n\n\t\t// Click \"Add\" button\n\t\twrapper.find(ADD_NEW_APP_BUTTON).first().simulate(\"click\");\n\n\t\tawait waitTick();\n\t\t// Confirm name field is empty\n\t\twrapper.update();\n\t\texpect(wrapper.find(\"#menu-name\").first().prop(\"value\")).to.be.empty;\n\n\t\t// Change name to Test\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: \"Test\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t// Click save\n\t\twrapper.find(\"button\").at(1).simulate(\"click\");\n\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\t// Click \"Add\" button\n\t\twrapper.find(ADD_NEW_APP_BUTTON).first().simulate(\"click\");\n\t\tawait waitTick();\n\t\t// Confirm name field is empty\n\n\t\twrapper.update();\n\t\texpect(wrapper.find(\"#menu-name\").first().prop(\"value\")).to.be.empty;\n\t});\n\t// it(\"should show a warning icon if an empty menu is created\", async () => {\n\t// \tconst wrapper = mount(<DefaultApplications {...getToolbarArgs(\"default\")} />);\n\n\t// \t// Click \"Add\" button\n\t// \twrapper.find(ADD_NEW_APP_BUTTON).first().simulate(\"click\");\n\n\t// \tawait waitTick();\n\t// \t// Confirm name field is empty\n\t// \twrapper.update();\n\t// \texpect(wrapper.find(\"#menu-name\").first().prop(\"value\")).to.be.empty;\n\n\t// \t// Change name to Test\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: \"Test\",\n\t// \t\t\t},\n\t// \t\t});\n\n\t// \t// Click save\n\t// \twrapper.find(\"button\").at(1).simulate(\"click\");\n\n\t// \tawait waitTick();\n\t// \twrapper.update();\n\n\t// \texpect(\n\t// \t\twrapper.find(\".app-list-row\").at(1).find(\".tooltip-icon-warn\").exists(),\n\t// \t\t\"Warning tooltip present in 2nd row\"\n\t// \t).to.be.true;\n\t// });\n});\n"]}
|
|
@@ -2,23 +2,31 @@ import axe from "axe-core";
|
|
|
2
2
|
export const accessibilityAssessor = async (wrapper) => {
|
|
3
3
|
var _a;
|
|
4
4
|
const id = "axeTestContainer";
|
|
5
|
+
// Axe needs a DOM object
|
|
6
|
+
// Create a DOM based on the ReactWrapper
|
|
5
7
|
document.body.insertAdjacentHTML("beforeend", `<div id="${id}">${wrapper.html()}</div>`);
|
|
6
8
|
const element = document.getElementById(id);
|
|
7
9
|
if (element === null) {
|
|
8
10
|
console.log("Couldn't parse wrapper");
|
|
9
11
|
return false;
|
|
10
12
|
}
|
|
13
|
+
// Only run WCAG 2.0 A and AA rules
|
|
11
14
|
const options = {
|
|
12
15
|
runOnly: ["wcag2a", "wcag2aa"],
|
|
13
16
|
};
|
|
17
|
+
// Run the scan
|
|
14
18
|
const results = await axe.run(element, options);
|
|
19
|
+
// Tear down the created DOM
|
|
15
20
|
(_a = element.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(element);
|
|
21
|
+
// If there are no violations, so this scan passes
|
|
16
22
|
if (results.violations.length === 0) {
|
|
17
23
|
return true;
|
|
18
24
|
}
|
|
25
|
+
// If there are violations, print them out in a human-readable way
|
|
19
26
|
console.log(results.violations);
|
|
20
27
|
const violationMap = results.violations.map((violation, key) => `#${key + 1}. ${violation.help}${violation.nodes.map((node) => node.html).join("\n")}`);
|
|
21
28
|
console.log(`Violations: ${violationMap}`);
|
|
29
|
+
// There were violations, so this scan didn't pass
|
|
22
30
|
return false;
|
|
23
31
|
};
|
|
24
32
|
//# sourceMappingURL=a11y_helper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"a11y_helper.js","sourceRoot":"","sources":["../../../../src/components/sdd/tests/a11y_helper.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,UAAU,CAAC;AAG3B,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EAAE,OAAqB,EAAE,EAAE;;IACpE,MAAM,EAAE,GAAG,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"a11y_helper.js","sourceRoot":"","sources":["../../../../src/components/sdd/tests/a11y_helper.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,UAAU,CAAC;AAG3B,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EAAE,OAAqB,EAAE,EAAE;;IACpE,MAAM,EAAE,GAAG,kBAAkB,CAAC;IAE9B,yBAAyB;IACzB,yCAAyC;IACzC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,YAAY,EAAE,KAAK,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACzF,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IAC5C,IAAI,OAAO,KAAK,IAAI,EAAE;QACrB,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACtC,OAAO,KAAK,CAAC;KACb;IAED,mCAAmC;IACnC,MAAM,OAAO,GAAG;QACf,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;KAC9B,CAAC;IAEF,eAAe;IACf,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,OAAsB,EAAE,OAAO,CAAC,CAAC;IAE/D,4BAA4B;IAC5B,MAAA,OAAO,CAAC,aAAa,0CAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAE5C,kDAAkD;IAClD,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;QACpC,OAAO,IAAI,CAAC;KACZ;IAED,kEAAkE;IAClE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAEhC,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAC1C,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC1G,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,eAAe,YAAY,EAAE,CAAC,CAAC;IAE3C,kDAAkD;IAClD,OAAO,KAAK,CAAC;AACd,CAAC,CAAC","sourcesContent":["import axe from \"axe-core\";\nimport { ReactWrapper } from \"enzyme\";\n\nexport const accessibilityAssessor = async (wrapper: ReactWrapper) => {\n\tconst id = \"axeTestContainer\";\n\n\t// Axe needs a DOM object\n\t// Create a DOM based on the ReactWrapper\n\tdocument.body.insertAdjacentHTML(\"beforeend\", `<div id=\"${id}\">${wrapper.html()}</div>`);\n\tconst element = document.getElementById(id);\n\tif (element === null) {\n\t\tconsole.log(\"Couldn't parse wrapper\");\n\t\treturn false;\n\t}\n\n\t// Only run WCAG 2.0 A and AA rules\n\tconst options = {\n\t\trunOnly: [\"wcag2a\", \"wcag2aa\"],\n\t};\n\n\t// Run the scan\n\tconst results = await axe.run(element as HTMLElement, options);\n\n\t// Tear down the created DOM\n\telement.parentElement?.removeChild(element);\n\n\t// If there are no violations, so this scan passes\n\tif (results.violations.length === 0) {\n\t\treturn true;\n\t}\n\n\t// If there are violations, print them out in a human-readable way\n\tconsole.log(results.violations);\n\n\tconst violationMap = results.violations.map(\n\t\t(violation, key) => `#${key + 1}. ${violation.help}${violation.nodes.map((node) => node.html).join(\"\\n\")}`\n\t);\n\tconsole.log(`Violations: ${violationMap}`);\n\n\t// There were violations, so this scan didn't pass\n\treturn false;\n};\n"]}
|
|
@@ -3,4 +3,10 @@ export declare type HighlightProps = {
|
|
|
3
3
|
matchAgainst: string;
|
|
4
4
|
text: string;
|
|
5
5
|
};
|
|
6
|
+
/**
|
|
7
|
+
* Highlights matching areas of a query against a piece of text, and then renders them
|
|
8
|
+
* on the screen with a highlighted class. The matching is case insensitive.
|
|
9
|
+
* NOTE: This calls dangerouslySetInnerHTML and contains a potential exploit for XSS. Use with caution
|
|
10
|
+
* when rendering externally-supplied content.
|
|
11
|
+
*/
|
|
6
12
|
export declare const Highlight: (props: HighlightProps) => JSX.Element;
|
|
@@ -1,11 +1,30 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
+
/**
|
|
3
|
+
*Encode characters of string
|
|
4
|
+
*
|
|
5
|
+
* @param {string} str - String to be encoded
|
|
6
|
+
* @returns {string} String with all characters encoded
|
|
7
|
+
*/
|
|
2
8
|
const encodeStringChars = (str) => `&#${str.charCodeAt(0)};`;
|
|
9
|
+
/**
|
|
10
|
+
*Sanitize string for HTML to prevent XSS attack
|
|
11
|
+
*
|
|
12
|
+
* @param {*} str
|
|
13
|
+
* @return {*}
|
|
14
|
+
*/
|
|
3
15
|
const sanitizeHTML = (str) => str === null || str === void 0 ? void 0 : str.replace(/[^\w. ]/gi, encodeStringChars);
|
|
16
|
+
/**
|
|
17
|
+
* Highlights matching areas of a query against a piece of text, and then renders them
|
|
18
|
+
* on the screen with a highlighted class. The matching is case insensitive.
|
|
19
|
+
* NOTE: This calls dangerouslySetInnerHTML and contains a potential exploit for XSS. Use with caution
|
|
20
|
+
* when rendering externally-supplied content.
|
|
21
|
+
*/
|
|
4
22
|
export const Highlight = (props) => {
|
|
5
23
|
const { matchAgainst, text } = props;
|
|
6
24
|
const escapedMatch = matchAgainst.replace(/([.*+?^${}()|[\]\\])/g, encodeStringChars);
|
|
7
25
|
const sanitizedHtml = sanitizeHTML(text);
|
|
8
26
|
let regex;
|
|
27
|
+
// Catch unexpected cases where some combination of characters break the RegExp
|
|
9
28
|
try {
|
|
10
29
|
regex = new RegExp(`(${escapedMatch || sanitizedHtml})`, "gi");
|
|
11
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Highlight.js","sourceRoot":"","sources":["../../../src/components/search/Highlight.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Highlight.js","sourceRoot":"","sources":["../../../src/components/search/Highlight.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B;;;;;GAKG;AACH,MAAM,iBAAiB,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC;AAErE;;;;;GAKG;AACH,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;AAEnF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAqB,EAAE,EAAE;IAClD,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAErC,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,uBAAuB,EAAE,iBAAiB,CAAC,CAAC;IAEtF,MAAM,aAAa,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,KAAsB,CAAC;IAE3B,+EAA+E;IAC/E,IAAI;QACH,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,YAAY,IAAI,aAAa,GAAG,EAAE,IAAI,CAAC,CAAC;KAC/D;IAAC,OAAO,CAAC,EAAE;QACX,KAAK,GAAG,YAAY,CAAC;QACrB,OAAO,CAAC,KAAK,CACZ,6FAA6F,YAAY,4DAA4D,CACrK,CAAC;KACF;IAED,MAAM,QAAQ,GAAG,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,OAAO,CAAC,KAAK,EAAE,mCAAmC,CAAC,CAAC;IAEpF,OAAO,CACN,8BACC,uBAAuB,EAAE;YACxB,MAAM,EAAE,QAAQ;SAChB,GACM,CACR,CAAC;AACH,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\n\nexport type HighlightProps = {\n\tmatchAgainst: string;\n\ttext: string;\n};\n\n/**\n *Encode characters of string\n *\n * @param {string} str - String to be encoded\n * @returns {string} String with all characters encoded\n */\nconst encodeStringChars = (str: string) => `&#${str.charCodeAt(0)};`;\n\n/**\n *Sanitize string for HTML to prevent XSS attack\n *\n * @param {*} str\n * @return {*}\n */\nconst sanitizeHTML = (str: string) => str?.replace(/[^\\w. ]/gi, encodeStringChars);\n\n/**\n * Highlights matching areas of a query against a piece of text, and then renders them\n * on the screen with a highlighted class. The matching is case insensitive.\n * NOTE: This calls dangerouslySetInnerHTML and contains a potential exploit for XSS. Use with caution\n * when rendering externally-supplied content.\n */\nexport const Highlight = (props: HighlightProps) => {\n\tconst { matchAgainst, text } = props;\n\n\tconst escapedMatch = matchAgainst.replace(/([.*+?^${}()|[\\]\\\\])/g, encodeStringChars);\n\n\tconst sanitizedHtml = sanitizeHTML(text);\n\tlet regex: RegExp | string;\n\n\t// Catch unexpected cases where some combination of characters break the RegExp\n\ttry {\n\t\tregex = new RegExp(`(${escapedMatch || sanitizedHtml})`, \"gi\");\n\t} catch (e) {\n\t\tregex = escapedMatch;\n\t\tconsole.error(\n\t\t\t`Failure in Highlight component in finsemble-ui. Expected a valid regex. Instead received \"${matchAgainst}\". Please check that your component is passing valid data.`\n\t\t);\n\t}\n\n\tconst itemHtml = sanitizedHtml?.replace(regex, `<span class=\"highlight\">$1</span>`);\n\n\treturn (\n\t\t<span\n\t\t\tdangerouslySetInnerHTML={{\n\t\t\t\t__html: itemHtml,\n\t\t\t}}\n\t\t></span>\n\t);\n};\n"]}
|
|
@@ -2,7 +2,7 @@ import React from "react";
|
|
|
2
2
|
import { Highlight } from "./Highlight";
|
|
3
3
|
import "../../assets/css/search.css";
|
|
4
4
|
export default {
|
|
5
|
-
title: "
|
|
5
|
+
title: "Search/Highlight",
|
|
6
6
|
component: Highlight,
|
|
7
7
|
};
|
|
8
8
|
const Template = (args) => React.createElement(Highlight, Object.assign({}, args));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Highlight.stories.js","sourceRoot":"","sources":["../../../src/components/search/Highlight.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAkB,MAAM,aAAa,CAAC;AACxD,OAAO,6BAA6B,CAAC;AAGrC,eAAe;IACd,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"Highlight.stories.js","sourceRoot":"","sources":["../../../src/components/search/Highlight.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAkB,MAAM,aAAa,CAAC;AACxD,OAAO,6BAA6B,CAAC;AAGrC,eAAe;IACd,KAAK,EAAE,kBAAkB;IACzB,SAAS,EAAE,SAAS;CACpB,CAAC;AAEF,MAAM,QAAQ,GAA0B,CAAC,IAAoB,EAAE,EAAE,CAAC,oBAAC,SAAS,oBAAK,IAAI,EAAI,CAAC;AAE1F,MAAM,CAAC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACvC,KAAK,CAAC,IAAI,GAAG;IACZ,YAAY,EAAE,SAAS;IACvB,IAAI,EAAE,oBAAoB;CAC1B,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC5C,UAAU,CAAC,IAAI,GAAG;IACjB,YAAY,EAAE,OAAO;IACrB,IAAI,EAAE,oBAAoB;CAC1B,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC5C,UAAU,CAAC,IAAI,GAAG;IACjB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,oBAAoB;CAC1B,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC1C,QAAQ,CAAC,IAAI,GAAG;IACf,YAAY,EAAE,IAAI;IAClB,IAAI,EAAE,oBAAoB;CAC1B,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnD,iBAAiB,CAAC,IAAI,GAAG;IACxB,YAAY,EAAE,GAAG;IACjB,IAAI,EAAE,KAAK;CACX,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7C,WAAW,CAAC,IAAI,GAAG;IAClB,YAAY,EAAE,aAAa;IAC3B,IAAI,EAAE,aAAa;CACnB,CAAC","sourcesContent":["import React from \"react\";\nimport { Highlight, HighlightProps } from \"./Highlight\";\nimport \"../../assets/css/search.css\";\nimport { Story } from \"@storybook/react/types-6-0\";\n\nexport default {\n\ttitle: \"Search/Highlight\",\n\tcomponent: Highlight,\n};\n\nconst Template: Story<HighlightProps> = (args: HighlightProps) => <Highlight {...args} />;\n\nexport const Start = Template.bind({});\nStart.args = {\n\tmatchAgainst: \"Example\",\n\ttext: \"Example chart apps\",\n};\n\nexport const MiddleWord = Template.bind({});\nMiddleWord.args = {\n\tmatchAgainst: \"Chart\",\n\ttext: \"Example chart apps\",\n};\n\nexport const MiddleText = Template.bind({});\nMiddleText.args = {\n\tmatchAgainst: \"amp\",\n\ttext: \"Example chart apps\",\n};\n\nexport const LastWord = Template.bind({});\nLastWord.args = {\n\tmatchAgainst: \"ps\",\n\ttext: \"Example chart apps\",\n};\n\nexport const RegularExpression = Template.bind({});\nRegularExpression.args = {\n\tmatchAgainst: \"+\",\n\ttext: \"A+B\",\n};\n\nexport const NoHighlight = Template.bind({});\nNoHighlight.args = {\n\tmatchAgainst: \"Not Present\",\n\ttext: \"Hello World\",\n};\n"]}
|
|
@@ -19,7 +19,7 @@ const Search = (_a) => {
|
|
|
19
19
|
var { width = 330, className = "search-menu", id = "SearchMenu" } = _a, otherProps = __rest(_a, ["width", "className", "id"]);
|
|
20
20
|
const completeProps = Object.assign(Object.assign({}, otherProps), { width,
|
|
21
21
|
className,
|
|
22
|
-
id, title: (_b = otherProps.title) !== null && _b !== void 0 ? _b : React.createElement("i", { className: "ff-search" }) });
|
|
22
|
+
id, title: (_b = otherProps.title) !== null && _b !== void 0 ? _b : React.createElement("i", { className: "ff-search", "aria-label": "Search" }) });
|
|
23
23
|
return (React.createElement(Menu, Object.assign({}, completeProps),
|
|
24
24
|
React.createElement(SearchInput, null),
|
|
25
25
|
React.createElement(SearchResults, null)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Search.js","sourceRoot":"","sources":["../../../src/components/search/Search.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,6BAA6B,CAAC;AAErC,MAAM,MAAM,GAAuC,CAAC,EAKnD,EAAE,EAAE;;QAL+C,EACnD,KAAK,GAAG,GAAG,EACX,SAAS,GAAG,aAAa,EACzB,EAAE,GAAG,YAAY,OAEjB,EADG,UAAU,cAJsC,4BAKnD,CADa;IAEb,MAAM,aAAa,mCACf,UAAU,KACb,KAAK;QACL,SAAS;QACT,EAAE,EACF,KAAK,EAAE,MAAA,UAAU,CAAC,KAAK,mCAAI,2BAAG,SAAS,EAAC,WAAW,GAAK,
|
|
1
|
+
{"version":3,"file":"Search.js","sourceRoot":"","sources":["../../../src/components/search/Search.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,6BAA6B,CAAC;AAErC,MAAM,MAAM,GAAuC,CAAC,EAKnD,EAAE,EAAE;;QAL+C,EACnD,KAAK,GAAG,GAAG,EACX,SAAS,GAAG,aAAa,EACzB,EAAE,GAAG,YAAY,OAEjB,EADG,UAAU,cAJsC,4BAKnD,CADa;IAEb,MAAM,aAAa,mCACf,UAAU,KACb,KAAK;QACL,SAAS;QACT,EAAE,EACF,KAAK,EAAE,MAAA,UAAU,CAAC,KAAK,mCAAI,2BAAG,SAAS,EAAC,WAAW,gBAAY,QAAQ,GAAK,GAC5E,CAAC;IAEF,OAAO,CACN,oBAAC,IAAI,oBAAK,aAAa;QACtB,oBAAC,WAAW,OAAG;QACf,oBAAC,aAAa,OAAG,CACX,CACP,CAAC;AACH,CAAC,CAAC;AACF,OAAO,EAAE,MAAM,EAAE,CAAC","sourcesContent":["import * as React from \"react\";\nimport { Menu } from \"../menu/Menu\";\nimport { MenuProps } from \"../menu/Menu\";\nimport { SearchResults } from \"./SearchResults\";\nimport { SearchInput } from \"./SearchInput\";\nimport \"../../assets/css/search.css\";\n\nconst Search: React.FunctionComponent<MenuProps> = ({\n\twidth = 330,\n\tclassName = \"search-menu\",\n\tid = \"SearchMenu\",\n\t...otherProps\n}) => {\n\tconst completeProps = {\n\t\t...otherProps,\n\t\twidth,\n\t\tclassName,\n\t\tid,\n\t\ttitle: otherProps.title ?? <i className=\"ff-search\" aria-label=\"Search\"></i>,\n\t};\n\n\treturn (\n\t\t<Menu {...completeProps}>\n\t\t\t<SearchInput />\n\t\t\t<SearchResults />\n\t\t</Menu>\n\t);\n};\nexport { Search };\n"]}
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import { SearchResult } from "./SearchResult";
|
|
3
3
|
import { useSearch } from "../../hooks/useSearch";
|
|
4
|
+
/**
|
|
5
|
+
* Iterates through the responses from every search provider
|
|
6
|
+
* and returns the item with the highest score.
|
|
7
|
+
* Half of the time this makes sense. The other half
|
|
8
|
+
* it doesn't make sense. It's all built on Fuse JS and how
|
|
9
|
+
* it grades the 'score' of a query to an entity.
|
|
10
|
+
*/
|
|
4
11
|
const findBestMatch = (searchProviderResponses) => {
|
|
5
12
|
if (searchProviderResponses) {
|
|
6
13
|
let bestMatch = null;
|
|
@@ -16,6 +23,10 @@ const findBestMatch = (searchProviderResponses) => {
|
|
|
16
23
|
}
|
|
17
24
|
return null;
|
|
18
25
|
};
|
|
26
|
+
/**
|
|
27
|
+
* Simple component that renders a menu item for the entity that
|
|
28
|
+
* best matches the user's query.
|
|
29
|
+
*/
|
|
19
30
|
export const SearchBestMatch = () => {
|
|
20
31
|
const { searchResults, searchQuery, resetSearch } = useSearch();
|
|
21
32
|
const bestMatchData = findBestMatch(searchResults);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchBestMatch.js","sourceRoot":"","sources":["../../../src/components/search/SearchBestMatch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"SearchBestMatch.js","sourceRoot":"","sources":["../../../src/components/search/SearchBestMatch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAMlD;;;;;;GAMG;AACH,MAAM,aAAa,GAAG,CAAC,uBAAwD,EAAE,EAAE;IAClF,IAAI,uBAAuB,EAAE;QAC5B,IAAI,SAAS,GAA4B,IAAI,CAAC;QAC9C,uBAAuB,CAAC,OAAO,CAAC,CAAC,YAAoC,EAAE,EAAE;;YACxE,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,IAAI,0CAAE,OAAO,CAAC,CAAC,MAAwB,EAAE,EAAE;gBACxD,IAAI,SAAS,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE;oBACzD,SAAS,GAAG,MAAM,CAAC;iBACnB;YACF,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;KACjB;IACD,OAAO,IAAI,CAAC;AACb,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE;IACnC,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,SAAS,EAAE,CAAC;IAChE,MAAM,aAAa,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;IACnD,IAAI,CAAC,aAAa;QAAE,OAAO,IAAI,CAAC;IAEhC,OAAO,CACN;QACC,6BAAK,SAAS,EAAC,cAAc,iBAAiB;QAC9C,oBAAC,YAAY,IAAC,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,GAAI,CACpF,CACN,CAAC;AACH,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\nimport { SearchResult } from \"./SearchResult\";\nimport { useSearch } from \"../../hooks/useSearch\";\nimport { services } from \"@finsemble/finsemble-api\";\n\ntype SearchProviderResponse = services.search.types.SearchProviderResponse;\ntype SearchResultType = services.search.types.SearchResultType;\n\n/**\n * Iterates through the responses from every search provider\n * and returns the item with the highest score.\n * Half of the time this makes sense. The other half\n * it doesn't make sense. It's all built on Fuse JS and how\n * it grades the 'score' of a query to an entity.\n */\nconst findBestMatch = (searchProviderResponses: SearchProviderResponse[] | null) => {\n\tif (searchProviderResponses) {\n\t\tlet bestMatch: SearchResultType | null = null;\n\t\tsearchProviderResponses.forEach((providerInfo: SearchProviderResponse) => {\n\t\t\tproviderInfo?.data?.forEach((result: SearchResultType) => {\n\t\t\t\tif (bestMatch === null || result.score < bestMatch.score) {\n\t\t\t\t\tbestMatch = result;\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\treturn bestMatch;\n\t}\n\treturn null;\n};\n\n/**\n * Simple component that renders a menu item for the entity that\n * best matches the user's query.\n */\nexport const SearchBestMatch = () => {\n\tconst { searchResults, searchQuery, resetSearch } = useSearch();\n\tconst bestMatchData = findBestMatch(searchResults);\n\tif (!bestMatchData) return null;\n\n\treturn (\n\t\t<div>\n\t\t\t<div className=\"search-title\">Best Match</div>\n\t\t\t<SearchResult resetSearch={resetSearch} data={bestMatchData} searchQuery={searchQuery} />\n\t\t</div>\n\t);\n};\n"]}
|
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import { createRef } from "react";
|
|
3
3
|
import { useSearch } from "../../hooks/useSearch";
|
|
4
|
+
/**
|
|
5
|
+
* This is the search input field for the search menu.
|
|
6
|
+
* It will trigger calls to the searchMenu via the hook passed in
|
|
7
|
+
* through props.
|
|
8
|
+
*/
|
|
4
9
|
export const SearchInput = () => {
|
|
5
10
|
const { searchQuery } = useSearch();
|
|
11
|
+
// the ref is needed so we can provide focus after clearing the search.
|
|
6
12
|
const textInputRef = createRef();
|
|
7
13
|
const { updateQuery, resetSearch } = useSearch();
|
|
8
14
|
const onClearSearchClicked = () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchInput.js","sourceRoot":"","sources":["../../../src/components/search/SearchInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"SearchInput.js","sourceRoot":"","sources":["../../../src/components/search/SearchInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE;IAC/B,MAAM,EAAE,WAAW,EAAE,GAAG,SAAS,EAAE,CAAC;IACpC,uEAAuE;IACvE,MAAM,YAAY,GAAQ,SAAS,EAAE,CAAC;IACtC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,SAAS,EAAE,CAAC;IAEjD,MAAM,oBAAoB,GAAG,GAAG,EAAE;QACjC,WAAW,EAAE,CAAC;QACd,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,CAAC,CAAsC,EAAE,EAAE;QACpE,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,OAAO,CACN,6BAAK,SAAS,EAAC,oBAAoB;QAClC,6BAAK,SAAS,EAAC,eAAe;YAC7B,8BAAM,SAAS,EAAC,qBAAqB;gBACpC,2BAAG,SAAS,EAAC,WAAW,GAAG,CACrB;YACP,+BACC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAC,MAAM,EACX,WAAW,EAAC,QAAQ,EACpB,SAAS,EAAC,cAAc,EACxB,KAAK,EAAE,WAAW,IAAI,EAAE,EACxB,SAAS,QACT,QAAQ,EAAE,iBAAiB,GAC1B;YACD,WAAW,IAAI,CACf,8BAAM,SAAS,EAAC,uCAAuC,EAAC,OAAO,EAAE,oBAAoB;gBACpF,2BAAG,SAAS,EAAC,UAAU,GAAG,CACpB,CACP,CACI,CACD,CACN,CAAC;AACH,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\nimport { createRef } from \"react\";\nimport { useSearch } from \"../../hooks/useSearch\";\n\n/**\n * This is the search input field for the search menu.\n * It will trigger calls to the searchMenu via the hook passed in\n * through props.\n */\nexport const SearchInput = () => {\n\tconst { searchQuery } = useSearch();\n\t// the ref is needed so we can provide focus after clearing the search.\n\tconst textInputRef: any = createRef();\n\tconst { updateQuery, resetSearch } = useSearch();\n\n\tconst onClearSearchClicked = () => {\n\t\tresetSearch();\n\t\ttextInputRef.current.focus();\n\t};\n\n\tconst handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n\t\tupdateQuery(e.target.value);\n\t};\n\n\treturn (\n\t\t<div className=\"menu-item no-hover\">\n\t\t\t<div className=\"menu-item-row\">\n\t\t\t\t<span className=\"search-icon-wrapper\">\n\t\t\t\t\t<i className=\"ff-search\" />\n\t\t\t\t</span>\n\t\t\t\t<input\n\t\t\t\t\tref={textInputRef}\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tplaceholder=\"Search\"\n\t\t\t\t\tclassName=\"search-input\"\n\t\t\t\t\tvalue={searchQuery || \"\"}\n\t\t\t\t\tautoFocus\n\t\t\t\t\tonChange={handleInputChange}\n\t\t\t\t/>\n\t\t\t\t{searchQuery && (\n\t\t\t\t\t<span className=\"clear-search menu-item-row-push-right\" onClick={onClearSearchClicked}>\n\t\t\t\t\t\t<i className=\"ff-close\" />\n\t\t\t\t\t</span>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n"]}
|
|
@@ -7,6 +7,8 @@ export const SearchProviderResults = ({ providerResponse }) => {
|
|
|
7
7
|
const clickResetSearch = () => {
|
|
8
8
|
resetSearch();
|
|
9
9
|
};
|
|
10
|
+
// Removes empty results then sorts by *lowest* score (search results are retuned from Finsemble where lowest is best)
|
|
11
|
+
// This uses fuse.js which uses the "bitap" algorithm
|
|
10
12
|
const providerResults = (_a = providerResponse === null || providerResponse === void 0 ? void 0 : providerResponse.data) === null || _a === void 0 ? void 0 : _a.filter((r) => r).sort((a, b) => a.score - b.score);
|
|
11
13
|
const providerClick = () => {
|
|
12
14
|
FSBL.Clients.SearchClient.invokeProviderAction(providerResponse.provider);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchProviderResults.js","sourceRoot":"","sources":["../../../src/components/search/SearchProviderResults.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAMlD,MAAM,CAAC,MAAM,qBAAqB,GAE7B,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE;;IAC7B,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,SAAS,EAAE,CAAC;IAEjD,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC7B,WAAW,EAAE,CAAC;IACf,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"SearchProviderResults.js","sourceRoot":"","sources":["../../../src/components/search/SearchProviderResults.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAMlD,MAAM,CAAC,MAAM,qBAAqB,GAE7B,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE;;IAC7B,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,SAAS,EAAE,CAAC;IAEjD,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC7B,WAAW,EAAE,CAAC;IACf,CAAC,CAAC;IACF,sHAAsH;IACtH,qDAAqD;IACrD,MAAM,eAAe,GAAG,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,IAAI,0CAC3C,MAAM,CAAC,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,EAClC,IAAI,CAAC,CAAC,CAAmB,EAAE,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAExE,MAAM,aAAa,GAAG,GAAG,EAAE;QAC1B,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC1E,WAAW,EAAE,CAAC;QACd,eAAe,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC,CAAC;IACF,OAAO,CACN;QACE,gBAAgB,IAAI,CACpB,6BAAK,SAAS,EAAC,cAAc;YAC3B,gBAAgB,CAAC,QAAQ,CAAC,WAAW;YACrC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,IAAI,CACjD,6BAAK,SAAS,EAAC,gBAAgB,EAAC,OAAO,EAAE,aAAa;gBACpD,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB;gBAC9C,6BAAK,SAAS,EAAC,iCAAiC,GAAO,CAClD,CACN,CACI,CACN,EACA,eAAe,aAAf,eAAe;QAAf,eAAe,CAAE,GAAG,CAAC,CAAC,gBAAgB,EAAE,CAAS,EAAE,EAAE,CAAC,CACtD,oBAAC,YAAY,IAAC,GAAG,EAAE,CAAC,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,GAAI,CACzG,CAAC,CACA,CACH,CAAC;AACH,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\nimport { SearchResult } from \"./SearchResult\";\nimport { useSearch } from \"../../hooks/useSearch\";\nimport { services } from \"@finsemble/finsemble-api\";\n\ntype SearchProviderResponse = services.search.types.SearchProviderResponse;\ntype SearchResultType = services.search.types.SearchResultType;\n\nexport const SearchProviderResults: React.FunctionComponent<{\n\tproviderResponse: SearchProviderResponse;\n}> = ({ providerResponse }) => {\n\tconst { searchQuery, resetSearch } = useSearch();\n\n\tconst clickResetSearch = () => {\n\t\tresetSearch();\n\t};\n\t// Removes empty results then sorts by *lowest* score (search results are retuned from Finsemble where lowest is best)\n\t// This uses fuse.js which uses the \"bitap\" algorithm\n\tconst providerResults = providerResponse?.data\n\t\t?.filter((r: SearchResultType) => r)\n\t\t.sort((a: SearchResultType, b: SearchResultType) => a.score - b.score);\n\n\tconst providerClick = () => {\n\t\tFSBL.Clients.SearchClient.invokeProviderAction(providerResponse.provider);\n\t\tresetSearch();\n\t\tfinsembleWindow.blur();\n\t};\n\treturn (\n\t\t<>\n\t\t\t{providerResponse && (\n\t\t\t\t<div className=\"search-title\">\n\t\t\t\t\t{providerResponse.provider.displayName}\n\t\t\t\t\t{providerResponse.provider.providerActionTitle && (\n\t\t\t\t\t\t<div className=\"provider-title\" onClick={providerClick}>\n\t\t\t\t\t\t\t{providerResponse.provider.providerActionTitle}\n\t\t\t\t\t\t\t<div className=\"ff-arrow-right arrow_right_grey\"></div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t{providerResults?.map((individualResult, i: number) => (\n\t\t\t\t<SearchResult key={i} resetSearch={clickResetSearch} searchQuery={searchQuery} data={individualResult} />\n\t\t\t))}\n\t\t</>\n\t);\n};\n"]}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { services } from "@finsemble/finsemble-api";
|
|
3
3
|
declare type SearchQuery = services.search.types.SearchQuery;
|
|
4
|
+
export declare type SearchResultType = {
|
|
5
|
+
data: any;
|
|
6
|
+
searchQuery: SearchQuery;
|
|
7
|
+
resetSearch: () => void;
|
|
8
|
+
};
|
|
4
9
|
export declare const SearchResult: (props: {
|
|
5
10
|
data: any;
|
|
6
11
|
searchQuery: SearchQuery;
|
|
@@ -6,6 +6,8 @@ export const SearchResult = (props) => {
|
|
|
6
6
|
var _a, _b, _c, _d;
|
|
7
7
|
const { data, searchQuery, resetSearch } = props;
|
|
8
8
|
const displayName = (_a = data.displayName) !== null && _a !== void 0 ? _a : data.name;
|
|
9
|
+
// Will trigger the action associated with the item
|
|
10
|
+
// (e.g., loading a workspace, spawning a component)
|
|
9
11
|
const onSearchResultClicked = () => {
|
|
10
12
|
var _a;
|
|
11
13
|
FSBL.Clients.SearchClient.invokeItemAction(data, (_a = data.actions) === null || _a === void 0 ? void 0 : _a[0]);
|
|
@@ -15,14 +17,18 @@ export const SearchResult = (props) => {
|
|
|
15
17
|
FSBL.Clients.SearchClient.invokeItemAction(data, action);
|
|
16
18
|
resetSearch();
|
|
17
19
|
};
|
|
20
|
+
// Default icon to be based on initials
|
|
18
21
|
const defaultIcon = {
|
|
19
22
|
imageType: "initials",
|
|
20
23
|
name: displayName,
|
|
21
24
|
category: data.type,
|
|
22
25
|
};
|
|
26
|
+
// Use iconography if provided in the search results
|
|
23
27
|
const maybeProviderIcon = () => {
|
|
24
28
|
if (!data.icon)
|
|
25
29
|
return undefined;
|
|
30
|
+
// Default conversion which can be overridden if the provider explicitly
|
|
31
|
+
// provides `imageType`, `name` or `category` fields.
|
|
26
32
|
return Object.assign({ imageType: data.icon.type, name: displayName, category: data.type }, data.icon);
|
|
27
33
|
};
|
|
28
34
|
const icon = (_b = maybeProviderIcon()) !== null && _b !== void 0 ? _b : defaultIcon;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchResult.js","sourceRoot":"","sources":["../../../src/components/search/SearchResult.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"SearchResult.js","sourceRoot":"","sources":["../../../src/components/search/SearchResult.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAYxC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAuE,EAAE,EAAE;;IACvG,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;IAEjD,MAAM,WAAW,GAAG,MAAA,IAAI,CAAC,WAAW,mCAAI,IAAI,CAAC,IAAI,CAAC;IAElD,mDAAmD;IACnD,oDAAoD;IACpD,MAAM,qBAAqB,GAAG,GAAG,EAAE;;QAClC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAA,IAAI,CAAC,OAAO,0CAAG,CAAC,CAAC,CAAC,CAAC;QACpE,WAAW,EAAE,CAAC;IACf,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,CAAC,MAAW,EAAE,EAAE;QACvC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACzD,WAAW,EAAE,CAAC;IACf,CAAC,CAAC;IAEF,uCAAuC;IACvC,MAAM,WAAW,GAAmB;QACnC,SAAS,EAAE,UAAU;QACrB,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,IAAI,CAAC,IAAI;KACnB,CAAC;IAEF,oDAAoD;IACpD,MAAM,iBAAiB,GAAG,GAAG,EAAE;QAC9B,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QACjC,wEAAwE;QACxE,qDAAqD;QACrD,uBACC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EACzB,IAAI,EAAE,WAAW,EACjB,QAAQ,EAAE,IAAI,CAAC,IAAI,IAChB,IAAI,CAAC,IAAI,EACX;IACH,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,MAAA,iBAAiB,EAAE,mCAAI,WAAW,CAAC;IAEhD,OAAO,CACN,oBAAC,QAAQ,IAAC,OAAO,EAAE,qBAAqB;QACvC,6BAAK,SAAS,EAAC,eAAe;YAC7B,oBAAC,IAAI,oBAAK,IAAI,EAAI;YAClB,oBAAC,SAAS,IAAC,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,IAAI,EAAE,GAAI;YAChE,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,MAAM,IAAG,CAAC,IAAI,CAC5B,6BAAK,SAAS,EAAC,gBAAgB,IAC7B,MAAA,IAAI,CAAC,OAAO,0CAAE,GAAG,CAAC,CAAC,MAAW,EAAE,CAAS,EAAE,EAAE,CAAC,CAC9C,6BACC,GAAG,EAAE,YAAY,CAAC,EAAE,EACpB,SAAS,EAAC,6BAA6B,EACvC,OAAO,EAAE,CAAC,CAAmB,EAAE,EAAE;oBAChC,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,CAAC,CAAC,eAAe,EAAE,CAAC;oBACpB,eAAe,CAAC,MAAM,CAAC,CAAC;oBACxB,WAAW,EAAE,CAAC;oBACd,eAAe,CAAC,IAAI,EAAE,CAAC;gBACxB,CAAC,IAEA,MAAM,CAAC,IAAI,CACP,CACN,CAAC,CACG,CACN,CACI,CACI,CACX,CAAC;AACH,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\nimport { MenuItem } from \"../menu/MenuItem\";\nimport { Icon } from \"../icon/Icon\";\nimport { Highlight } from \"./Highlight\";\nimport { services } from \"@finsemble/finsemble-api\";\nimport { IconDescriptor } from \"@finsemble/finsemble-api/types/services/window/types\";\n\ntype SearchQuery = services.search.types.SearchQuery;\n\nexport type SearchResultType = {\n\tdata: any;\n\tsearchQuery: SearchQuery;\n\tresetSearch: () => void;\n};\n\nexport const SearchResult = (props: { data: any; searchQuery: SearchQuery; resetSearch: () => void }) => {\n\tconst { data, searchQuery, resetSearch } = props;\n\n\tconst displayName = data.displayName ?? data.name;\n\n\t// Will trigger the action associated with the item\n\t// (e.g., loading a workspace, spawning a component)\n\tconst onSearchResultClicked = () => {\n\t\tFSBL.Clients.SearchClient.invokeItemAction(data, data.actions?.[0]);\n\t\tresetSearch();\n\t};\n\n\tconst onActionClicked = (action: any) => {\n\t\tFSBL.Clients.SearchClient.invokeItemAction(data, action);\n\t\tresetSearch();\n\t};\n\n\t// Default icon to be based on initials\n\tconst defaultIcon: IconDescriptor = {\n\t\timageType: \"initials\",\n\t\tname: displayName,\n\t\tcategory: data.type,\n\t};\n\n\t// Use iconography if provided in the search results\n\tconst maybeProviderIcon = () => {\n\t\tif (!data.icon) return undefined;\n\t\t// Default conversion which can be overridden if the provider explicitly\n\t\t// provides `imageType`, `name` or `category` fields.\n\t\treturn {\n\t\t\timageType: data.icon.type,\n\t\t\tname: displayName,\n\t\t\tcategory: data.type,\n\t\t\t...data.icon,\n\t\t};\n\t};\n\n\tconst icon = maybeProviderIcon() ?? defaultIcon;\n\n\treturn (\n\t\t<MenuItem onClick={onSearchResultClicked}>\n\t\t\t<div className=\"menu-item-row\">\n\t\t\t\t<Icon {...icon} />\n\t\t\t\t<Highlight text={displayName} matchAgainst={searchQuery || \"\"} />\n\t\t\t\t{data.actions?.length > 1 && (\n\t\t\t\t\t<div className=\"search-actions\">\n\t\t\t\t\t\t{data.actions?.map((action: any, i: number) => (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tkey={`actionbtn${i}`}\n\t\t\t\t\t\t\t\tclassName=\"search-actions actionButton\"\n\t\t\t\t\t\t\t\tonClick={(e: React.MouseEvent) => {\n\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\t\tonActionClicked(action);\n\t\t\t\t\t\t\t\t\tresetSearch();\n\t\t\t\t\t\t\t\t\tfinsembleWindow.blur();\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{action.name}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</MenuItem>\n\t);\n};\n"]}
|