@eccenca/gui-elements 25.1.0 → 25.2.0-featureupgradeblueprintjsv6cmem7139.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1003 -952
- package/README.md +27 -27
- package/dist/cjs/cmem/ActivityControl/ActivityControlWidget.js +21 -23
- package/dist/cjs/cmem/ActivityControl/ActivityControlWidget.js.map +1 -1
- package/dist/cjs/cmem/ActivityControl/ActivityExecutionErrorReportModal.js +28 -12
- package/dist/cjs/cmem/ActivityControl/ActivityExecutionErrorReportModal.js.map +1 -1
- package/dist/cjs/cmem/ActivityControl/SilkActivityControl.js +17 -7
- package/dist/cjs/cmem/ActivityControl/SilkActivityControl.js.map +1 -1
- package/dist/cjs/cmem/ConfidenceValue/ConfidenceValue.js +2 -1
- package/dist/cjs/cmem/ConfidenceValue/ConfidenceValue.js.map +1 -1
- package/dist/cjs/cmem/ContentBlobToggler/ContentBlobToggler.js +29 -13
- package/dist/cjs/cmem/ContentBlobToggler/ContentBlobToggler.js.map +1 -1
- package/dist/cjs/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.js +21 -6
- package/dist/cjs/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.js.map +1 -1
- package/dist/cjs/cmem/DateTimeDisplay/ElapsedDateTimeDisplay.js +17 -7
- package/dist/cjs/cmem/DateTimeDisplay/ElapsedDateTimeDisplay.js.map +1 -1
- package/dist/cjs/cmem/markdown/Markdown.js +2 -2
- package/dist/cjs/cmem/markdown/Markdown.js.map +1 -1
- package/dist/cjs/cmem/react-flow/ReactFlow/ReactFlow.js +17 -7
- package/dist/cjs/cmem/react-flow/ReactFlow/ReactFlow.js.map +1 -1
- package/dist/cjs/cmem/react-flow/ReactFlow/ReactFlowV9.js.map +1 -1
- package/dist/cjs/cmem/react-flow/StickyNoteModal/StickyNoteModal.js.map +1 -1
- package/dist/cjs/cmem/react-flow/configuration/graph.js +0 -2
- package/dist/cjs/cmem/react-flow/configuration/graph.js.map +1 -1
- package/dist/cjs/cmem/react-flow/configuration/linking.js +0 -2
- package/dist/cjs/cmem/react-flow/configuration/linking.js.map +1 -1
- package/dist/cjs/cmem/react-flow/configuration/workflow.js +0 -2
- package/dist/cjs/cmem/react-flow/configuration/workflow.js.map +1 -1
- package/dist/cjs/cmem/react-flow/extensions/scrollOnDragHook.js +17 -7
- package/dist/cjs/cmem/react-flow/extensions/scrollOnDragHook.js.map +1 -1
- package/dist/cjs/cmem/react-flow/nodes/StickyNoteNode.js +17 -7
- package/dist/cjs/cmem/react-flow/nodes/StickyNoteNode.js.map +1 -1
- package/dist/cjs/common/utils/colorCalculateDistance.js.map +1 -1
- package/dist/cjs/common/utils/colorDecideContrastvalue.js +2 -1
- package/dist/cjs/common/utils/colorDecideContrastvalue.js.map +1 -1
- package/dist/cjs/common/utils/colorHash.js +3 -7
- package/dist/cjs/common/utils/colorHash.js.map +1 -1
- package/dist/cjs/common/utils/reduceToText.js +17 -7
- package/dist/cjs/common/utils/reduceToText.js.map +1 -1
- package/dist/cjs/components/Accordion/AccordionItem.js.map +1 -1
- package/dist/cjs/components/Application/ApplicationSidebarNavigation.js.map +1 -1
- package/dist/cjs/components/Application/ApplicationTitle.js +1 -1
- package/dist/cjs/components/Application/ApplicationTitle.js.map +1 -1
- package/dist/cjs/components/Application/ApplicationToolbarAction.js.map +1 -1
- package/dist/cjs/components/AutoSuggestion/AutoSuggestion.js +27 -13
- package/dist/cjs/components/AutoSuggestion/AutoSuggestion.js.map +1 -1
- package/dist/cjs/components/AutoSuggestion/AutoSuggestionList.js.map +1 -1
- package/dist/cjs/components/AutoSuggestion/ExtendedCodeEditor.js +1 -1
- package/dist/cjs/components/AutoSuggestion/ExtendedCodeEditor.js.map +1 -1
- package/dist/cjs/components/AutocompleteField/AutoCompleteField.js +19 -16
- package/dist/cjs/components/AutocompleteField/AutoCompleteField.js.map +1 -1
- package/dist/cjs/components/AutocompleteField/autoCompleteFieldUtils.js.map +1 -1
- package/dist/cjs/components/Breadcrumb/BreadcrumbList.js +17 -7
- package/dist/cjs/components/Breadcrumb/BreadcrumbList.js.map +1 -1
- package/dist/cjs/components/Button/Button.js +5 -1
- package/dist/cjs/components/Button/Button.js.map +1 -1
- package/dist/cjs/components/Card/CardContent.js +1 -1
- package/dist/cjs/components/Card/CardContent.js.map +1 -1
- package/dist/cjs/components/Chat/ChatArea.js.map +1 -1
- package/dist/cjs/components/ColorField/ColorField.js +1 -1
- package/dist/cjs/components/ColorField/ColorField.js.map +1 -1
- package/dist/cjs/components/ContentGroup/ContentGroup.js +19 -19
- package/dist/cjs/components/ContentGroup/ContentGroup.js.map +1 -1
- package/dist/cjs/components/ContextOverlay/ContextMenu.js +4 -4
- package/dist/cjs/components/ContextOverlay/ContextMenu.js.map +1 -1
- package/dist/cjs/components/ContextOverlay/ContextOverlay.js +6 -5
- package/dist/cjs/components/ContextOverlay/ContextOverlay.js.map +1 -1
- package/dist/cjs/components/DecoupledOverlay/DecoupledOverlay.js +6 -5
- package/dist/cjs/components/DecoupledOverlay/DecoupledOverlay.js.map +1 -1
- package/dist/cjs/components/Depiction/Depiction.js +18 -8
- package/dist/cjs/components/Depiction/Depiction.js.map +1 -1
- package/dist/cjs/components/Dialog/Modal.js.map +1 -1
- package/dist/cjs/components/Dialog/ModalContext.js +3 -3
- package/dist/cjs/components/Dialog/ModalContext.js.map +1 -1
- package/dist/cjs/components/FlexibleLayout/FlexibleLayoutContainer.js +17 -7
- package/dist/cjs/components/FlexibleLayout/FlexibleLayoutContainer.js.map +1 -1
- package/dist/cjs/components/FlexibleLayout/FlexibleLayoutItem.js +17 -7
- package/dist/cjs/components/FlexibleLayout/FlexibleLayoutItem.js.map +1 -1
- package/dist/cjs/components/Grid/Grid.js.map +1 -1
- package/dist/cjs/components/Icon/IconButton.js +2 -2
- package/dist/cjs/components/Icon/IconButton.js.map +1 -1
- package/dist/cjs/components/Icon/canonicalIconNames.js +18 -7
- package/dist/cjs/components/Icon/canonicalIconNames.js.map +1 -1
- package/dist/cjs/components/Icon/transformIcon.js.map +1 -1
- package/dist/cjs/components/Iframe/Iframe.js +17 -7
- package/dist/cjs/components/Iframe/Iframe.js.map +1 -1
- package/dist/cjs/components/InteractionGate/InteractionGate.js +17 -7
- package/dist/cjs/components/InteractionGate/InteractionGate.js.map +1 -1
- package/dist/cjs/components/List/List.js +17 -7
- package/dist/cjs/components/List/List.js.map +1 -1
- package/dist/cjs/components/Menu/MenuItem.js.map +1 -1
- package/dist/cjs/components/MultiSelect/MultiSelect.js +55 -25
- package/dist/cjs/components/MultiSelect/MultiSelect.js.map +1 -1
- package/dist/cjs/components/NotAvailable/NotAvailable.js +42 -0
- package/dist/cjs/components/NotAvailable/NotAvailable.js.map +1 -0
- package/dist/cjs/components/Notification/Notification.js.map +1 -1
- package/dist/cjs/components/OverviewItem/OverviewItemDepiction.js.map +1 -1
- package/dist/cjs/components/Pagination/Pagination.js +17 -7
- package/dist/cjs/components/Pagination/Pagination.js.map +1 -1
- package/dist/cjs/components/Select/Select.js +6 -4
- package/dist/cjs/components/Select/Select.js.map +1 -1
- package/dist/cjs/components/Skeleton/Skeleton.js.map +1 -1
- package/dist/cjs/components/Spinner/Spinner.js +17 -7
- package/dist/cjs/components/Spinner/Spinner.js.map +1 -1
- package/dist/cjs/components/Switch/Switch.js +17 -7
- package/dist/cjs/components/Switch/Switch.js.map +1 -1
- package/dist/cjs/components/Table/Table.js.map +1 -1
- package/dist/cjs/components/Table/TableContainer.js +1 -1
- package/dist/cjs/components/Table/TableContainer.js.map +1 -1
- package/dist/cjs/components/Table/TableExpandHeader.js.map +1 -1
- package/dist/cjs/components/Table/TableExpandRow.js +2 -2
- package/dist/cjs/components/Table/TableExpandRow.js.map +1 -1
- package/dist/cjs/components/Tabs/Tab.js.map +1 -1
- package/dist/cjs/components/Tabs/Tabs.js +17 -7
- package/dist/cjs/components/Tabs/Tabs.js.map +1 -1
- package/dist/cjs/components/Tag/Tag.js +1 -1
- package/dist/cjs/components/Tag/Tag.js.map +1 -1
- package/dist/cjs/components/TextField/TextArea.js.map +1 -1
- package/dist/cjs/components/TextField/TextField.js.map +1 -1
- package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/cjs/components/Tree/Tree.js +17 -7
- package/dist/cjs/components/Tree/Tree.js.map +1 -1
- package/dist/cjs/components/Typography/HtmlContentBlock.js +17 -7
- package/dist/cjs/components/Typography/HtmlContentBlock.js.map +1 -1
- package/dist/cjs/components/Typography/WhiteSpaceContainer.js +17 -7
- package/dist/cjs/components/Typography/WhiteSpaceContainer.js.map +1 -1
- package/dist/cjs/components/VisualTour/VisualTour.js +7 -5
- package/dist/cjs/components/VisualTour/VisualTour.js.map +1 -1
- package/dist/cjs/components/index.js +1 -0
- package/dist/cjs/components/index.js.map +1 -1
- package/dist/cjs/extensions/codemirror/CodeMirror.js +43 -19
- package/dist/cjs/extensions/codemirror/CodeMirror.js.map +1 -1
- package/dist/cjs/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.js +5 -3
- package/dist/cjs/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.js.map +1 -1
- package/dist/cjs/extensions/codemirror/tests/codemirrorTestHelper.js +1 -1
- package/dist/cjs/extensions/codemirror/tests/codemirrorTestHelper.js.map +1 -1
- package/dist/cjs/extensions/react-flow/edges/EdgeBezier.js +17 -7
- package/dist/cjs/extensions/react-flow/edges/EdgeBezier.js.map +1 -1
- package/dist/cjs/extensions/react-flow/edges/EdgeDefault.js +17 -7
- package/dist/cjs/extensions/react-flow/edges/EdgeDefault.js.map +1 -1
- package/dist/cjs/extensions/react-flow/edges/EdgeDefaultV12.js +17 -7
- package/dist/cjs/extensions/react-flow/edges/EdgeDefaultV12.js.map +1 -1
- package/dist/cjs/extensions/react-flow/edges/EdgeLabel.js +25 -10
- package/dist/cjs/extensions/react-flow/edges/EdgeLabel.js.map +1 -1
- package/dist/cjs/extensions/react-flow/edges/EdgeNew.js +14 -8
- package/dist/cjs/extensions/react-flow/edges/EdgeNew.js.map +1 -1
- package/dist/cjs/extensions/react-flow/edges/EdgeStep.js +17 -7
- package/dist/cjs/extensions/react-flow/edges/EdgeStep.js.map +1 -1
- package/dist/cjs/extensions/react-flow/edges/EdgeTools.js +19 -9
- package/dist/cjs/extensions/react-flow/edges/EdgeTools.js.map +1 -1
- package/dist/cjs/extensions/react-flow/edges/utils.js.map +1 -1
- package/dist/cjs/extensions/react-flow/handles/HandleContent.js +22 -9
- package/dist/cjs/extensions/react-flow/handles/HandleContent.js.map +1 -1
- package/dist/cjs/extensions/react-flow/handles/HandleDefault.js +20 -8
- package/dist/cjs/extensions/react-flow/handles/HandleDefault.js.map +1 -1
- package/dist/cjs/extensions/react-flow/handles/HandleTools.js +2 -2
- package/dist/cjs/extensions/react-flow/handles/HandleTools.js.map +1 -1
- package/dist/cjs/extensions/react-flow/markers/ReactFlowMarkers.js.map +1 -1
- package/dist/cjs/extensions/react-flow/minimap/MiniMap.js +17 -7
- package/dist/cjs/extensions/react-flow/minimap/MiniMap.js.map +1 -1
- package/dist/cjs/extensions/react-flow/minimap/MiniMapV12.js +17 -7
- package/dist/cjs/extensions/react-flow/minimap/MiniMapV12.js.map +1 -1
- package/dist/cjs/extensions/react-flow/nodes/NodeContent.js +11 -9
- package/dist/cjs/extensions/react-flow/nodes/NodeContent.js.map +1 -1
- package/dist/cjs/extensions/react-flow/nodes/NodeDefault.js +21 -8
- package/dist/cjs/extensions/react-flow/nodes/NodeDefault.js.map +1 -1
- package/dist/cjs/extensions/react-flow/nodes/NodeTools.js +23 -9
- package/dist/cjs/extensions/react-flow/nodes/NodeTools.js.map +1 -1
- package/dist/cjs/extensions/react-flow/nodes/nodeUtils.js +6 -1
- package/dist/cjs/extensions/react-flow/nodes/nodeUtils.js.map +1 -1
- package/dist/cjs/index.js +17 -7
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/cmem/ActivityControl/ActivityControlWidget.js +7 -9
- package/dist/esm/cmem/ActivityControl/ActivityControlWidget.js.map +1 -1
- package/dist/esm/cmem/ActivityControl/ActivityExecutionErrorReportModal.js +6 -3
- package/dist/esm/cmem/ActivityControl/ActivityExecutionErrorReportModal.js.map +1 -1
- package/dist/esm/cmem/ActivityControl/SilkActivityControl.js +2 -2
- package/dist/esm/cmem/ActivityControl/SilkActivityControl.js.map +1 -1
- package/dist/esm/cmem/ConfidenceValue/ConfidenceValue.js +2 -1
- package/dist/esm/cmem/ConfidenceValue/ConfidenceValue.js.map +1 -1
- package/dist/esm/cmem/ContentBlobToggler/ContentBlobToggler.js +8 -5
- package/dist/esm/cmem/ContentBlobToggler/ContentBlobToggler.js.map +1 -1
- package/dist/esm/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.js +28 -3
- package/dist/esm/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.js.map +1 -1
- package/dist/esm/cmem/markdown/Markdown.js +1 -1
- package/dist/esm/cmem/markdown/Markdown.js.map +1 -1
- package/dist/esm/cmem/react-flow/ReactFlow/ReactFlowV9.js.map +1 -1
- package/dist/esm/cmem/react-flow/StickyNoteModal/StickyNoteModal.js.map +1 -1
- package/dist/esm/cmem/react-flow/configuration/graph.js +0 -2
- package/dist/esm/cmem/react-flow/configuration/graph.js.map +1 -1
- package/dist/esm/cmem/react-flow/configuration/linking.js +0 -2
- package/dist/esm/cmem/react-flow/configuration/linking.js.map +1 -1
- package/dist/esm/cmem/react-flow/configuration/workflow.js +0 -2
- package/dist/esm/cmem/react-flow/configuration/workflow.js.map +1 -1
- package/dist/esm/cmem/react-flow/extensions/scrollOnDragHook.js.map +1 -1
- package/dist/esm/common/utils/colorCalculateDistance.js.map +1 -1
- package/dist/esm/common/utils/colorDecideContrastvalue.js +2 -1
- package/dist/esm/common/utils/colorDecideContrastvalue.js.map +1 -1
- package/dist/esm/common/utils/colorHash.js +3 -7
- package/dist/esm/common/utils/colorHash.js.map +1 -1
- package/dist/esm/common/utils/reduceToText.js +1 -1
- package/dist/esm/components/Accordion/AccordionItem.js.map +1 -1
- package/dist/esm/components/Application/ApplicationSidebarNavigation.js.map +1 -1
- package/dist/esm/components/Application/ApplicationTitle.js +1 -1
- package/dist/esm/components/Application/ApplicationTitle.js.map +1 -1
- package/dist/esm/components/Application/ApplicationToolbarAction.js.map +1 -1
- package/dist/esm/components/AutoSuggestion/AutoSuggestion.js +12 -8
- package/dist/esm/components/AutoSuggestion/AutoSuggestion.js.map +1 -1
- package/dist/esm/components/AutoSuggestion/AutoSuggestionList.js.map +1 -1
- package/dist/esm/components/AutocompleteField/AutoCompleteField.js +11 -18
- package/dist/esm/components/AutocompleteField/AutoCompleteField.js.map +1 -1
- package/dist/esm/components/AutocompleteField/autoCompleteFieldUtils.js.map +1 -1
- package/dist/esm/components/Breadcrumb/BreadcrumbList.js.map +1 -1
- package/dist/esm/components/Button/Button.js +5 -1
- package/dist/esm/components/Button/Button.js.map +1 -1
- package/dist/esm/components/Card/CardContent.js +1 -1
- package/dist/esm/components/Card/CardContent.js.map +1 -1
- package/dist/esm/components/Chat/ChatArea.js.map +1 -1
- package/dist/esm/components/ColorField/ColorField.js +1 -1
- package/dist/esm/components/ColorField/ColorField.js.map +1 -1
- package/dist/esm/components/ContentGroup/ContentGroup.js +1 -1
- package/dist/esm/components/ContentGroup/ContentGroup.js.map +1 -1
- package/dist/esm/components/ContextOverlay/ContextMenu.js +4 -4
- package/dist/esm/components/ContextOverlay/ContextMenu.js.map +1 -1
- package/dist/esm/components/ContextOverlay/ContextOverlay.js +3 -2
- package/dist/esm/components/ContextOverlay/ContextOverlay.js.map +1 -1
- package/dist/esm/components/DecoupledOverlay/DecoupledOverlay.js +3 -2
- package/dist/esm/components/DecoupledOverlay/DecoupledOverlay.js.map +1 -1
- package/dist/esm/components/Depiction/Depiction.js +1 -1
- package/dist/esm/components/Depiction/Depiction.js.map +1 -1
- package/dist/esm/components/Dialog/Modal.js.map +1 -1
- package/dist/esm/components/Dialog/ModalContext.js +2 -2
- package/dist/esm/components/Dialog/ModalContext.js.map +1 -1
- package/dist/esm/components/Grid/Grid.js.map +1 -1
- package/dist/esm/components/Icon/IconButton.js +2 -2
- package/dist/esm/components/Icon/IconButton.js.map +1 -1
- package/dist/esm/components/Icon/canonicalIconNames.js +1 -0
- package/dist/esm/components/Icon/canonicalIconNames.js.map +1 -1
- package/dist/esm/components/Icon/transformIcon.js.map +1 -1
- package/dist/esm/components/Menu/MenuItem.js.map +1 -1
- package/dist/esm/components/MultiSelect/MultiSelect.js +42 -22
- package/dist/esm/components/MultiSelect/MultiSelect.js.map +1 -1
- package/dist/esm/components/NotAvailable/NotAvailable.js +46 -0
- package/dist/esm/components/NotAvailable/NotAvailable.js.map +1 -0
- package/dist/esm/components/Notification/Notification.js.map +1 -1
- package/dist/esm/components/OverviewItem/OverviewItemDepiction.js.map +1 -1
- package/dist/esm/components/Select/Select.js +4 -2
- package/dist/esm/components/Select/Select.js.map +1 -1
- package/dist/esm/components/Skeleton/Skeleton.js.map +1 -1
- package/dist/esm/components/Spinner/Spinner.js.map +1 -1
- package/dist/esm/components/Table/Table.js.map +1 -1
- package/dist/esm/components/Table/TableContainer.js +1 -1
- package/dist/esm/components/Table/TableContainer.js.map +1 -1
- package/dist/esm/components/Table/TableExpandHeader.js.map +1 -1
- package/dist/esm/components/Table/TableExpandRow.js +1 -1
- package/dist/esm/components/Table/TableExpandRow.js.map +1 -1
- package/dist/esm/components/Tabs/Tab.js.map +1 -1
- package/dist/esm/components/Tag/Tag.js +1 -1
- package/dist/esm/components/Tag/Tag.js.map +1 -1
- package/dist/esm/components/TextField/TextArea.js.map +1 -1
- package/dist/esm/components/TextField/TextField.js.map +1 -1
- package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/esm/components/VisualTour/VisualTour.js +7 -5
- package/dist/esm/components/VisualTour/VisualTour.js.map +1 -1
- package/dist/esm/components/index.js +1 -0
- package/dist/esm/components/index.js.map +1 -1
- package/dist/esm/extensions/codemirror/CodeMirror.js +26 -12
- package/dist/esm/extensions/codemirror/CodeMirror.js.map +1 -1
- package/dist/esm/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.js +5 -3
- package/dist/esm/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.js.map +1 -1
- package/dist/esm/extensions/codemirror/tests/codemirrorTestHelper.js +1 -1
- package/dist/esm/extensions/codemirror/tests/codemirrorTestHelper.js.map +1 -1
- package/dist/esm/extensions/react-flow/edges/EdgeBezier.js.map +1 -1
- package/dist/esm/extensions/react-flow/edges/EdgeLabel.js +3 -1
- package/dist/esm/extensions/react-flow/edges/EdgeLabel.js.map +1 -1
- package/dist/esm/extensions/react-flow/edges/EdgeNew.js +11 -5
- package/dist/esm/extensions/react-flow/edges/EdgeNew.js.map +1 -1
- package/dist/esm/extensions/react-flow/edges/EdgeTools.js +1 -1
- package/dist/esm/extensions/react-flow/edges/EdgeTools.js.map +1 -1
- package/dist/esm/extensions/react-flow/edges/utils.js.map +1 -1
- package/dist/esm/extensions/react-flow/handles/HandleContent.js +1 -1
- package/dist/esm/extensions/react-flow/handles/HandleContent.js.map +1 -1
- package/dist/esm/extensions/react-flow/handles/HandleDefault.js +3 -1
- package/dist/esm/extensions/react-flow/handles/HandleDefault.js.map +1 -1
- package/dist/esm/extensions/react-flow/handles/HandleTools.js +1 -1
- package/dist/esm/extensions/react-flow/handles/HandleTools.js.map +1 -1
- package/dist/esm/extensions/react-flow/markers/ReactFlowMarkers.js.map +1 -1
- package/dist/esm/extensions/react-flow/minimap/MiniMap.js +1 -1
- package/dist/esm/extensions/react-flow/minimap/MiniMap.js.map +1 -1
- package/dist/esm/extensions/react-flow/minimap/MiniMapV12.js.map +1 -1
- package/dist/esm/extensions/react-flow/nodes/NodeContent.js +8 -6
- package/dist/esm/extensions/react-flow/nodes/NodeContent.js.map +1 -1
- package/dist/esm/extensions/react-flow/nodes/NodeDefault.js +1 -1
- package/dist/esm/extensions/react-flow/nodes/NodeDefault.js.map +1 -1
- package/dist/esm/extensions/react-flow/nodes/NodeTools.js +2 -1
- package/dist/esm/extensions/react-flow/nodes/NodeTools.js.map +1 -1
- package/dist/esm/extensions/react-flow/nodes/nodeUtils.js +6 -1
- package/dist/esm/extensions/react-flow/nodes/nodeUtils.js.map +1 -1
- package/dist/types/cmem/ActivityControl/ActivityControlWidget.d.ts +5 -5
- package/dist/types/cmem/ActivityControl/ActivityExecutionErrorReportModal.d.ts +1 -1
- package/dist/types/cmem/ActivityControl/SilkActivityControl.d.ts +4 -4
- package/dist/types/cmem/ConfidenceValue/ConfidenceValue.d.ts +2 -2
- package/dist/types/cmem/ContentBlobToggler/ContentBlobToggler.d.ts +5 -1
- package/dist/types/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.d.ts +3 -3
- package/dist/types/cmem/markdown/Markdown.d.ts +2 -1
- package/dist/types/cmem/react-flow/configuration/graph.d.ts +2 -1
- package/dist/types/cmem/react-flow/configuration/linking.d.ts +2 -1
- package/dist/types/cmem/react-flow/configuration/workflow.d.ts +2 -1
- package/dist/types/common/utils/colorCalculateDistance.d.ts +2 -2
- package/dist/types/common/utils/colorDecideContrastvalue.d.ts +2 -2
- package/dist/types/common/utils/colorHash.d.ts +3 -3
- package/dist/types/components/Accordion/AccordionItem.d.ts +1 -1
- package/dist/types/components/Application/ApplicationSidebarNavigation.d.ts +2 -0
- package/dist/types/components/AutoSuggestion/AutoSuggestion.d.ts +6 -3
- package/dist/types/components/AutoSuggestion/ExtendedCodeEditor.d.ts +1 -1
- package/dist/types/components/AutocompleteField/AutoCompleteField.d.ts +2 -12
- package/dist/types/components/AutocompleteField/autoCompleteFieldUtils.d.ts +1 -1
- package/dist/types/components/Button/Button.d.ts +3 -3
- package/dist/types/components/Card/CardHeader.d.ts +1 -1
- package/dist/types/components/ColorField/ColorField.d.ts +2 -5
- package/dist/types/components/ContentGroup/ContentGroup.d.ts +1 -1
- package/dist/types/components/ContextOverlay/ContextMenu.d.ts +9 -3
- package/dist/types/components/ContextOverlay/ContextOverlay.d.ts +2 -2
- package/dist/types/components/DecoupledOverlay/DecoupledOverlay.d.ts +3 -1
- package/dist/types/components/Depiction/Depiction.d.ts +3 -3
- package/dist/types/components/Dialog/SimpleDialog.d.ts +1 -1
- package/dist/types/components/Form/FieldItem.d.ts +1 -1
- package/dist/types/components/Form/FieldSet.d.ts +3 -3
- package/dist/types/components/HoverToggler/HoverToggler.d.ts +2 -2
- package/dist/types/components/Icon/canonicalIconNames.d.ts +1 -0
- package/dist/types/components/Label/Label.d.ts +3 -3
- package/dist/types/components/Menu/MenuItem.d.ts +1 -1
- package/dist/types/components/MultiSelect/MultiSelect.d.ts +15 -4
- package/dist/types/components/NotAvailable/NotAvailable.d.ts +32 -0
- package/dist/types/components/Notification/Notification.d.ts +2 -2
- package/dist/types/components/OverviewItem/OverviewItemActions.d.ts +1 -1
- package/dist/types/components/PropertyValuePair/PropertyValueList.d.ts +1 -1
- package/dist/types/components/Select/Select.d.ts +2 -1
- package/dist/types/components/Skeleton/Skeleton.d.ts +1 -1
- package/dist/types/components/Spinner/Spinner.d.ts +2 -2
- package/dist/types/components/Structure/TitleSubsection.d.ts +2 -5
- package/dist/types/components/SuggestField/index.d.ts +2 -2
- package/dist/types/components/Table/TableContainer.d.ts +3 -3
- package/dist/types/components/Table/index.d.ts +1 -1
- package/dist/types/components/Tabs/Tab.d.ts +180 -186
- package/dist/types/components/Tabs/TabTitle.d.ts +1 -1
- package/dist/types/components/Tag/Tag.d.ts +2 -2
- package/dist/types/components/TextField/TextArea.d.ts +6 -1
- package/dist/types/components/index.d.ts +1 -0
- package/dist/types/extensions/react-flow/edges/EdgeLabel.d.ts +3 -3
- package/dist/types/extensions/react-flow/edges/EdgeTools.d.ts +1 -1
- package/dist/types/extensions/react-flow/handles/HandleContent.d.ts +2 -2
- package/dist/types/extensions/react-flow/handles/HandleTools.d.ts +2 -2
- package/dist/types/extensions/react-flow/nodes/NodeContent.d.ts +3 -3
- package/dist/types/extensions/react-flow/nodes/NodeTools.d.ts +2 -2
- package/dist/types/extensions/react-flow/nodes/sharedTypes.d.ts +2 -2
- package/package.json +60 -63
- package/scripts/compile-sass.ts +2 -0
- package/scripts/sassConfig.js +1 -1
- package/scripts/sassDeprecationConfig.js +3 -0
- package/src/cmem/ActivityControl/ActivityControlWidget.stories.tsx +4 -9
- package/src/cmem/ActivityControl/ActivityControlWidget.tsx +33 -35
- package/src/cmem/ActivityControl/ActivityExecutionErrorReportModal.tsx +5 -2
- package/src/cmem/ActivityControl/SilkActivityControl.tsx +28 -32
- package/src/cmem/ActivityControl/tests/ActivityControlWidget.test.tsx +1 -1
- package/src/cmem/ConfidenceValue/ConfidenceValue.tsx +6 -5
- package/src/cmem/ContentBlobToggler/ContentBlobToggler.tsx +17 -7
- package/src/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.tsx +12 -4
- package/src/cmem/ContentBlobToggler/tests/StringPreviewContentBlobToggler.test.tsx +10 -10
- package/src/cmem/DateTimeDisplay/ElapsedDateTimeDisplay.tsx +2 -2
- package/src/cmem/DateTimeDisplay/tests/ElapsedDateTimeDisplay.test.tsx +2 -2
- package/src/cmem/markdown/Markdown.tsx +2 -1
- package/src/cmem/markdown/highlightSearchWords.test.ts +1 -1
- package/src/cmem/markdown/markdownutils.test.ts +2 -2
- package/src/cmem/react-flow/ReactFlow/ReactFlow.stories.tsx +3 -3
- package/src/cmem/react-flow/ReactFlow/ReactFlow.tsx +2 -2
- package/src/cmem/react-flow/ReactFlow/ReactFlowV12.tsx +1 -1
- package/src/cmem/react-flow/ReactFlow/ReactFlowV9.tsx +2 -5
- package/src/cmem/react-flow/StickyNoteModal/StickyNoteModal.tsx +6 -3
- package/src/cmem/react-flow/configuration/graph.ts +3 -3
- package/src/cmem/react-flow/configuration/linking.ts +3 -3
- package/src/cmem/react-flow/configuration/workflow.ts +3 -3
- package/src/cmem/react-flow/extensions/scrollOnDragHook.ts +14 -14
- package/src/common/scss/_color-functions.scss +9 -4
- package/src/common/utils/CssCustomProperties.ts +1 -1
- package/src/common/utils/characters.ts +2 -2
- package/src/common/utils/colorCalculateDistance.ts +2 -2
- package/src/common/utils/colorDecideContrastvalue.ts +4 -3
- package/src/common/utils/colorHash.ts +13 -17
- package/src/common/utils/getColorConfiguration.ts +2 -2
- package/src/common/utils/openInNewTab.ts +1 -1
- package/src/common/utils/reduceToText.tsx +1 -1
- package/src/components/Accordion/AccordionItem.tsx +3 -2
- package/src/components/Accordion/Stories/AccordionItem.stories.tsx +1 -1
- package/src/components/Application/ApplicationSidebarNavigation.tsx +6 -2
- package/src/components/Application/ApplicationTitle.tsx +9 -1
- package/src/components/Application/ApplicationToolbarAction.tsx +2 -1
- package/src/components/Application/_header.scss +13 -10
- package/src/components/Application/stories/ColorPalettes.stories.tsx +23 -19
- package/src/components/Application/tests/ApplicationViewability.test.tsx +1 -7
- package/src/components/AutoSuggestion/AutoSuggestion.tsx +30 -23
- package/src/components/AutoSuggestion/AutoSuggestionList.tsx +5 -3
- package/src/components/AutoSuggestion/ExtendedCodeEditor.tsx +2 -2
- package/src/components/AutoSuggestion/extensions/markText.ts +1 -1
- package/src/components/AutocompleteField/AutoCompleteField.tsx +16 -25
- package/src/components/AutocompleteField/autoCompleteFieldUtils.tsx +7 -3
- package/src/components/Badge/Badge.stories.tsx +1 -1
- package/src/components/Breadcrumb/BreadcrumbList.tsx +4 -3
- package/src/components/Button/Button.test.tsx +2 -2
- package/src/components/Button/Button.tsx +13 -11
- package/src/components/Button/button.scss +2 -3
- package/src/components/Card/CardContent.tsx +17 -20
- package/src/components/Card/CardHeader.tsx +1 -1
- package/src/components/Card/card.scss +8 -4
- package/src/components/Card/stories/Card.stories.tsx +1 -1
- package/src/components/Chat/ChatArea.tsx +1 -2
- package/src/components/Chat/_chat.scss +2 -2
- package/src/components/Checkbox/Stories/Checkbox.stories.tsx +1 -1
- package/src/components/CodeAutocompleteField/CodeAutocompleteField.stories.tsx +9 -3
- package/src/components/ColorField/ColorField.test.tsx +1 -1
- package/src/components/ColorField/ColorField.tsx +6 -6
- package/src/components/ContentGroup/ContentGroup.stories.tsx +1 -1
- package/src/components/ContentGroup/ContentGroup.tsx +6 -6
- package/src/components/ContextOverlay/ContextMenu.tsx +10 -4
- package/src/components/ContextOverlay/ContextOverlay.stories.tsx +1 -1
- package/src/components/ContextOverlay/ContextOverlay.tsx +16 -11
- package/src/components/ContextOverlay/tests/ContextOverlay.test.tsx +2 -2
- package/src/components/DecoupledOverlay/DecoupledOverlay.tsx +11 -4
- package/src/components/Depiction/Depiction.tsx +6 -6
- package/src/components/Dialog/Modal.tsx +9 -7
- package/src/components/Dialog/ModalContext.tsx +6 -6
- package/src/components/Dialog/SimpleDialog.tsx +1 -1
- package/src/components/Dialog/stories/AlertDialog.stories.tsx +1 -1
- package/src/components/Dialog/stories/Modal.stories.tsx +2 -2
- package/src/components/Dialog/stories/SimpleDialog.stories.tsx +1 -1
- package/src/components/FlexibleLayout/FlexibleLayoutContainer.tsx +2 -2
- package/src/components/FlexibleLayout/FlexibleLayoutItem.tsx +2 -2
- package/src/components/Form/FieldItem.tsx +1 -1
- package/src/components/Form/FieldSet.tsx +3 -3
- package/src/components/Form/Stories/FieldItem.stories.tsx +1 -1
- package/src/components/Form/Stories/FieldSet.stories.tsx +1 -1
- package/src/components/Grid/Grid.tsx +4 -2
- package/src/components/Grid/stories/GridColumn.stories.tsx +1 -1
- package/src/components/Grid/stories/GridRow.stories.tsx +1 -1
- package/src/components/HoverToggler/HoverToggler.tsx +2 -2
- package/src/components/Icon/Icon.tsx +1 -1
- package/src/components/Icon/IconButton.tsx +3 -3
- package/src/components/Icon/canonicalIconNames.tsx +1 -0
- package/src/components/Icon/icon.scss +4 -4
- package/src/components/Icon/stories/Icon.stories.tsx +1 -1
- package/src/components/Icon/stories/IconButton.stories.tsx +1 -1
- package/src/components/Icon/stories/TestIcon.stories.tsx +1 -1
- package/src/components/Icon/transformIcon.tsx +11 -9
- package/src/components/Iframe/Iframe.tsx +2 -2
- package/src/components/Label/Label.tsx +4 -4
- package/src/components/List/List.tsx +1 -1
- package/src/components/Menu/MenuItem.tsx +3 -2
- package/src/components/Menu/Stories/MenuItem.stories.tsx +1 -1
- package/src/components/Menu/menu.scss +1 -0
- package/src/components/MultiSelect/MultiSelect.tsx +62 -26
- package/src/components/MultiSuggestField/MultiSuggestField.stories.tsx +1 -1
- package/src/components/MultiSuggestField/index.ts +1 -1
- package/src/components/MultiSuggestField/tests/MultiSuggestField.test.tsx +24 -57
- package/src/components/NotAvailable/NotAvailable.stories.tsx +15 -0
- package/src/components/NotAvailable/NotAvailable.tsx +69 -0
- package/src/components/Notification/Notification.stories.tsx +2 -1
- package/src/components/Notification/Notification.tsx +5 -4
- package/src/components/OverviewItem/OverviewItemActions.tsx +1 -1
- package/src/components/OverviewItem/OverviewItemDepiction.tsx +1 -1
- package/src/components/OverviewItem/stories/OverviewItem.stories.tsx +1 -1
- package/src/components/OverviewItem/stories/OverviewItemActions.stories.tsx +1 -1
- package/src/components/OverviewItem/stories/OverviewItemDepiction.stories.tsx +1 -1
- package/src/components/OverviewItem/stories/OverviewItemDescription.stories.tsx +1 -1
- package/src/components/OverviewItem/stories/OverviewItemListPerformance.tsx +2 -2
- package/src/components/Pagination/Pagination.tsx +2 -2
- package/src/components/Pagination/Stories/Pagination.stories.tsx +32 -0
- package/src/components/Pagination/pagination.scss +54 -4
- package/src/components/PropertyValuePair/PropertyValueList.tsx +1 -1
- package/src/components/RadioButton/Stories/RadioButton.stories.tsx +1 -1
- package/src/components/Select/Select.stories.tsx +1 -1
- package/src/components/Select/Select.tsx +7 -4
- package/src/components/Skeleton/Skeleton.tsx +2 -2
- package/src/components/Spinner/Spinner.tsx +2 -2
- package/src/components/Sticky/StickyTarget.tsx +1 -1
- package/src/components/Sticky/stories/StickyTarget.stories.tsx +2 -2
- package/src/components/Structure/TitleSubsection.tsx +2 -2
- package/src/components/SuggestField/SuggestField.stories.tsx +2 -2
- package/src/components/Table/Table.tsx +3 -2
- package/src/components/Table/TableContainer.tsx +11 -6
- package/src/components/Table/TableExpandHeader.tsx +2 -1
- package/src/components/Table/TableExpandRow.tsx +3 -2
- package/src/components/Table/index.tsx +7 -1
- package/src/components/Tabs/Tab.tsx +2 -2
- package/src/components/Tabs/TabTitle.tsx +1 -1
- package/src/components/Tag/Tag.tsx +9 -10
- package/src/components/Tag/stories/Tag.stories.tsx +1 -1
- package/src/components/Tag/stories/TagList.stories.tsx +1 -1
- package/src/components/TextField/TextArea.tsx +12 -7
- package/src/components/TextField/TextField.tsx +4 -3
- package/src/components/TextField/stories/TextArea.stories.tsx +1 -1
- package/src/components/TextField/stories/TextField.stories.tsx +1 -3
- package/src/components/TextField/useTextValidation.ts +4 -4
- package/src/components/TextReducer/TextReducer.stories.tsx +4 -1
- package/src/components/TextReducer/TextReducer.test.tsx +2 -2
- package/src/components/Tooltip/Tooltip.stories.tsx +1 -1
- package/src/components/Tooltip/Tooltip.test.tsx +5 -5
- package/src/components/Tooltip/Tooltip.tsx +5 -5
- package/src/components/Typography/stories/OverflowText.stories.tsx +1 -1
- package/src/components/Typography/typography.scss +4 -2
- package/src/components/VisualTour/VisualTour.tsx +10 -10
- package/src/components/index.ts +1 -0
- package/src/configuration/_variables.scss +3 -1
- package/src/extensions/codemirror/CodeMirror.tsx +131 -79
- package/src/extensions/codemirror/debouncedLinter.ts +2 -2
- package/src/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.ts +9 -5
- package/src/extensions/codemirror/tests/CodeEditor.test.tsx +4 -4
- package/src/extensions/codemirror/tests/EditorAppearanceConfigMenu.test.tsx +5 -5
- package/src/extensions/codemirror/tests/codemirrorTestHelper.ts +12 -12
- package/src/extensions/codemirror/toolbars/commands/markdown.command.ts +6 -6
- package/src/extensions/react-flow/edges/EdgeBezier.tsx +1 -2
- package/src/extensions/react-flow/edges/EdgeDefault.tsx +4 -4
- package/src/extensions/react-flow/edges/EdgeDefaultV12.tsx +5 -5
- package/src/extensions/react-flow/edges/EdgeLabel.tsx +10 -8
- package/src/extensions/react-flow/edges/EdgeNew.tsx +29 -31
- package/src/extensions/react-flow/edges/EdgeTools.tsx +2 -3
- package/src/extensions/react-flow/edges/stories/EdgeDefault.stories.tsx +1 -1
- package/src/extensions/react-flow/edges/stories/EdgeDefaultV12.stories.tsx +1 -1
- package/src/extensions/react-flow/edges/stories/EdgeLabel.stories.tsx +2 -1
- package/src/extensions/react-flow/edges/utils.ts +5 -3
- package/src/extensions/react-flow/handles/HandleContent.tsx +3 -3
- package/src/extensions/react-flow/handles/HandleDefault.tsx +56 -46
- package/src/extensions/react-flow/handles/HandleTools.tsx +4 -5
- package/src/extensions/react-flow/handles/stories/HandleDefault.stories.tsx +2 -7
- package/src/extensions/react-flow/index.ts +1 -1
- package/src/extensions/react-flow/markers/ReactFlowMarkers.tsx +2 -2
- package/src/extensions/react-flow/minimap/MiniMap.tsx +17 -20
- package/src/extensions/react-flow/minimap/MiniMapV12.tsx +2 -3
- package/src/extensions/react-flow/nodes/NodeContent.tsx +65 -57
- package/src/extensions/react-flow/nodes/NodeDefault.tsx +6 -3
- package/src/extensions/react-flow/nodes/NodeDefaultV12.tsx +1 -1
- package/src/extensions/react-flow/nodes/NodeTools.tsx +5 -5
- package/src/extensions/react-flow/nodes/_nodes.scss +2 -1
- package/src/extensions/react-flow/nodes/nodeUtils.tsx +10 -5
- package/src/extensions/react-flow/nodes/sharedTypes.ts +2 -2
- package/src/extensions/react-flow/nodes/stories/NodeContent.stories.tsx +38 -24
- package/src/extensions/react-flow/nodes/stories/NodeContentV12.stories.tsx +1 -1
- package/src/extensions/react-flow/nodes/stories/NodeDefault.stories.tsx +1 -1
- package/src/includes/blueprintjs/_variables.scss +1 -0
- package/src/includes/carbon-components/_variables.scss +1 -1
- package/src/index.scss +2 -2
- package/src/test/setupTests.js +1 -1
|
@@ -10,7 +10,8 @@ import Tooltip from "../Tooltip/Tooltip";
|
|
|
10
10
|
import { TestIconProps } from "./../Icon/TestIcon";
|
|
11
11
|
|
|
12
12
|
export interface MenuItemProps
|
|
13
|
-
extends
|
|
13
|
+
extends
|
|
14
|
+
Omit<BlueprintMenuItemProps, "icon" | "children">,
|
|
14
15
|
Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, "onClick" | "onFocus" | "target" | "children"> {
|
|
15
16
|
/*
|
|
16
17
|
* If set the icon is diplayed on the left side of the menu item.
|
|
@@ -23,7 +24,7 @@ export interface MenuItemProps
|
|
|
23
24
|
/**
|
|
24
25
|
* Tooltip, but only added to the label, not to the full menu item.
|
|
25
26
|
*/
|
|
26
|
-
tooltip?: string | JSX.Element;
|
|
27
|
+
tooltip?: string | React.JSX.Element;
|
|
27
28
|
}
|
|
28
29
|
|
|
29
30
|
/**
|
|
@@ -3,7 +3,7 @@ import { OverlaysProvider } from "@blueprintjs/core";
|
|
|
3
3
|
import { LogoReact } from "@carbon/icons-react";
|
|
4
4
|
import { Meta, StoryFn } from "@storybook/react";
|
|
5
5
|
|
|
6
|
-
import { Menu, MenuItem, TestIcon } from "
|
|
6
|
+
import { Menu, MenuItem, TestIcon } from "../../../components";
|
|
7
7
|
|
|
8
8
|
import canonicalIcons from "./../../Icon/canonicalIconNames";
|
|
9
9
|
|
|
@@ -27,9 +27,14 @@ export interface MultiSuggestFieldSelectionProps<T> {
|
|
|
27
27
|
createdItems: Partial<T>[];
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
interface MultiSuggestFieldCommonProps<T>
|
|
31
|
-
extends
|
|
32
|
-
|
|
30
|
+
export interface MultiSuggestFieldCommonProps<T>
|
|
31
|
+
extends
|
|
32
|
+
TestableComponent,
|
|
33
|
+
Pick<
|
|
34
|
+
BlueprintMultiSelectProps<T>,
|
|
35
|
+
"items" | "placeholder" | "openOnKeyDown" | "noResults" | "createNewItemRenderer"
|
|
36
|
+
>,
|
|
37
|
+
Partial<Pick<BlueprintMultiSelectProps<T>, "itemRenderer">> {
|
|
33
38
|
/**
|
|
34
39
|
* Additional class name, space separated.
|
|
35
40
|
*/
|
|
@@ -79,9 +84,11 @@ interface MultiSuggestFieldCommonProps<T>
|
|
|
79
84
|
*/
|
|
80
85
|
newItemCreationText?: string;
|
|
81
86
|
/**
|
|
82
|
-
* Allows to
|
|
87
|
+
* Allows to create new item from a given query. If this is not provided then no new items can be created.
|
|
83
88
|
*/
|
|
84
89
|
createNewItemFromQuery?: (query: string) => T;
|
|
90
|
+
/** Validates if a new item can be created from the current query string. */
|
|
91
|
+
isValidNewOption?: (query: string) => boolean;
|
|
85
92
|
/**
|
|
86
93
|
* Items that were newly created and not taken from the list will be post-fixed with this string.
|
|
87
94
|
*/
|
|
@@ -112,9 +119,20 @@ interface MultiSuggestFieldCommonProps<T>
|
|
|
112
119
|
wrapperProps?: React.HTMLAttributes<HTMLDivElement>;
|
|
113
120
|
/**
|
|
114
121
|
* Function that allows us to filter values from the option list.
|
|
115
|
-
*
|
|
122
|
+
*
|
|
123
|
+
* @deprecated (v27) use `searchListPredicate` instead.
|
|
116
124
|
*/
|
|
117
125
|
searchPredicate?: (item: T, query: string) => boolean;
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Returns the filtered the search option list.
|
|
129
|
+
* By default, a case-insensitive multi-word filtering is applied.
|
|
130
|
+
*
|
|
131
|
+
* @param items The options.
|
|
132
|
+
* @param query The search query.
|
|
133
|
+
*/
|
|
134
|
+
searchListPredicate?: (items: T[], query: string) => T[];
|
|
135
|
+
|
|
118
136
|
/**
|
|
119
137
|
* Limits the height of the input target plus its dropdown menu when it is opened.
|
|
120
138
|
* Need to be a `number not greater than 100` (as `vh`, a unit describing a length relative to the viewport height) or `true` (equals 100).
|
|
@@ -168,6 +186,7 @@ export function MultiSuggestField<T>({
|
|
|
168
186
|
newItemPostfix = " (new item)",
|
|
169
187
|
disabled,
|
|
170
188
|
createNewItemFromQuery,
|
|
189
|
+
isValidNewOption,
|
|
171
190
|
requestDelay = 0,
|
|
172
191
|
clearQueryOnSelection = false,
|
|
173
192
|
className,
|
|
@@ -175,6 +194,7 @@ export function MultiSuggestField<T>({
|
|
|
175
194
|
"data-testid": dataTestid,
|
|
176
195
|
wrapperProps,
|
|
177
196
|
searchPredicate,
|
|
197
|
+
searchListPredicate,
|
|
178
198
|
limitHeightOpened,
|
|
179
199
|
intent,
|
|
180
200
|
...otherMultiSelectProps
|
|
@@ -183,19 +203,19 @@ export function MultiSuggestField<T>({
|
|
|
183
203
|
|
|
184
204
|
// Options created by a user
|
|
185
205
|
const createdItems = useRef<T[]>([]);
|
|
186
|
-
// Options passed
|
|
206
|
+
// Options passed outside (f.e. from the backend)
|
|
187
207
|
const [externalItems, setExternalItems] = React.useState<T[]>([...items]);
|
|
188
208
|
// All options (created and passed) that match the query
|
|
189
209
|
const [filteredItems, setFilteredItems] = React.useState<T[]>([]);
|
|
190
210
|
// All options (created and passed) selected by a user
|
|
191
211
|
const [selectedItems, setSelectedItems] = React.useState<T[]>(() =>
|
|
192
|
-
prePopulateWithItems ? [...items] : externalSelectedItems ? [...externalSelectedItems] : []
|
|
212
|
+
prePopulateWithItems ? [...items] : externalSelectedItems ? [...externalSelectedItems] : [],
|
|
193
213
|
);
|
|
194
214
|
// Max height of the menu
|
|
195
215
|
const [calculatedMaxHeight, setCalculatedMaxHeight] = React.useState<string | null>(null);
|
|
196
216
|
|
|
197
|
-
//
|
|
198
|
-
const
|
|
217
|
+
// The active popover item is only needed for keyboard interaction and should not trigger rerenders.
|
|
218
|
+
const focusedItemRef = React.useRef<T | null>(null);
|
|
199
219
|
const [showSpinner, setShowSpinner] = React.useState(false);
|
|
200
220
|
const inputRef = React.useRef<HTMLInputElement>(null);
|
|
201
221
|
const requestState = useRef<{
|
|
@@ -292,9 +312,13 @@ export function MultiSuggestField<T>({
|
|
|
292
312
|
});
|
|
293
313
|
};
|
|
294
314
|
|
|
295
|
-
|
|
315
|
+
/** Does a case-insensitive multi-word search in the item label. */
|
|
316
|
+
const defaultSearchListPredicate = (items: T[], query: string): T[] => {
|
|
296
317
|
const searchWords = highlighterUtils.extractSearchWords(query, true);
|
|
297
|
-
return
|
|
318
|
+
return items.filter((item) => {
|
|
319
|
+
const searchIn = itemLabel(item).toLowerCase();
|
|
320
|
+
return highlighterUtils.matchesAllWords(searchIn, searchWords);
|
|
321
|
+
});
|
|
298
322
|
};
|
|
299
323
|
|
|
300
324
|
/**
|
|
@@ -323,24 +347,28 @@ export function MultiSuggestField<T>({
|
|
|
323
347
|
* @param query
|
|
324
348
|
*/
|
|
325
349
|
const onQueryChange = (query: string) => {
|
|
326
|
-
setFilteredItems([]);
|
|
327
350
|
if (query.length && query !== requestState.current.query) {
|
|
328
351
|
requestState.current.query = query;
|
|
329
352
|
if (requestState.current.timeoutId) {
|
|
330
353
|
clearTimeout(requestState.current.timeoutId);
|
|
331
354
|
}
|
|
355
|
+
setShowSpinner(true);
|
|
356
|
+
setFilteredItems([]);
|
|
332
357
|
const fn = async () => {
|
|
333
|
-
setShowSpinner(true);
|
|
334
|
-
setFilteredItems([]);
|
|
335
358
|
const resultFromQuery = runOnQueryChange && (await runOnQueryChange(removeExtraSpaces(query)));
|
|
336
359
|
if (requestState.current.query === query) {
|
|
337
360
|
// Only use most recent request
|
|
338
361
|
const outsideOptions = [...(resultFromQuery ?? externalItems)];
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
362
|
+
let itemFilter = defaultSearchListPredicate;
|
|
363
|
+
if (searchListPredicate) {
|
|
364
|
+
itemFilter = searchListPredicate;
|
|
365
|
+
} else if (searchPredicate) {
|
|
366
|
+
itemFilter = (items, query) => {
|
|
367
|
+
return items.filter((item) => searchPredicate(item, query));
|
|
368
|
+
};
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
setFilteredItems(itemFilter([...outsideOptions, ...createdItems.current], query));
|
|
344
372
|
setShowSpinner(false);
|
|
345
373
|
}
|
|
346
374
|
};
|
|
@@ -424,7 +452,9 @@ export function MultiSuggestField<T>({
|
|
|
424
452
|
*/
|
|
425
453
|
const handleOnKeyUp = (event: React.KeyboardEvent<HTMLElement>) => {
|
|
426
454
|
if (event.key === "Enter" && !filteredItems.length && !!requestState.current.query && createNewItemFromQuery) {
|
|
427
|
-
|
|
455
|
+
if (!isValidNewOption || isValidNewOption(requestState.current.query)) {
|
|
456
|
+
createNewItem(requestState.current.query);
|
|
457
|
+
}
|
|
428
458
|
}
|
|
429
459
|
inputRef.current?.focus();
|
|
430
460
|
};
|
|
@@ -437,10 +467,14 @@ export function MultiSuggestField<T>({
|
|
|
437
467
|
const handleOnKeyDown = (event: React.KeyboardEvent<HTMLElement>) => {
|
|
438
468
|
if (event.key === "Tab" && !!requestState.current.query) {
|
|
439
469
|
event.preventDefault();
|
|
440
|
-
if (
|
|
441
|
-
onItemSelect(
|
|
470
|
+
if (focusedItemRef.current) {
|
|
471
|
+
onItemSelect(focusedItemRef.current);
|
|
442
472
|
} else {
|
|
443
|
-
|
|
473
|
+
if (!isValidNewOption || isValidNewOption(requestState.current.query)) {
|
|
474
|
+
onItemSelect(createNewItem(requestState.current.query));
|
|
475
|
+
} else {
|
|
476
|
+
return;
|
|
477
|
+
}
|
|
444
478
|
}
|
|
445
479
|
requestState.current.query = "";
|
|
446
480
|
setTimeout(() => inputRef.current?.focus());
|
|
@@ -455,7 +489,7 @@ export function MultiSuggestField<T>({
|
|
|
455
489
|
* @returns
|
|
456
490
|
*/
|
|
457
491
|
const newItemRenderer = (label: string, active: boolean, handleClick: React.MouseEventHandler<HTMLElement>) => {
|
|
458
|
-
if (!createNewItemFromQuery) return undefined;
|
|
492
|
+
if (!createNewItemFromQuery || (isValidNewOption && !isValidNewOption(label))) return undefined;
|
|
459
493
|
const clickHandler = (e: React.MouseEvent<HTMLElement>) => {
|
|
460
494
|
createNewItem(label);
|
|
461
495
|
handleClick(e);
|
|
@@ -497,7 +531,6 @@ export function MultiSuggestField<T>({
|
|
|
497
531
|
? "Search for item, or enter term to create new one..."
|
|
498
532
|
: undefined
|
|
499
533
|
}
|
|
500
|
-
{...otherMultiSelectProps}
|
|
501
534
|
query={requestState.current.query}
|
|
502
535
|
onQueryChange={onQueryChange}
|
|
503
536
|
items={filteredItems}
|
|
@@ -508,7 +541,9 @@ export function MultiSuggestField<T>({
|
|
|
508
541
|
noResults={<MenuItem disabled={true} text={noResultText} />}
|
|
509
542
|
tagRenderer={(item) => itemLabel(item)}
|
|
510
543
|
createNewItemRenderer={newItemRenderer}
|
|
511
|
-
onActiveItemChange={(activeItem) =>
|
|
544
|
+
onActiveItemChange={(activeItem) => {
|
|
545
|
+
focusedItemRef.current = activeItem;
|
|
546
|
+
}}
|
|
512
547
|
fill={fullWidth}
|
|
513
548
|
createNewItemFromQuery={createNewItemFromQuery}
|
|
514
549
|
disabled={disabled}
|
|
@@ -566,6 +601,7 @@ export function MultiSuggestField<T>({
|
|
|
566
601
|
: undefined,
|
|
567
602
|
} as BlueprintMultiSelectProps<T>["popoverContentProps"]
|
|
568
603
|
}
|
|
604
|
+
{...otherMultiSelectProps}
|
|
569
605
|
/>
|
|
570
606
|
);
|
|
571
607
|
|
|
@@ -2,7 +2,7 @@ import React, { useCallback, useMemo, useState } from "react";
|
|
|
2
2
|
import { loremIpsum } from "react-lorem-ipsum";
|
|
3
3
|
import { OverlaysProvider } from "@blueprintjs/core";
|
|
4
4
|
import { Meta, StoryFn } from "@storybook/react";
|
|
5
|
-
import { fn } from "
|
|
5
|
+
import { fn } from "storybook/test";
|
|
6
6
|
|
|
7
7
|
import { helpersArgTypes } from "../../../.storybook/helpers";
|
|
8
8
|
import { Notification } from "../Notification/Notification";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "./../MultiSelect/MultiSelect";
|
|
1
|
+
export * from "./../MultiSelect/MultiSelect";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from "react";
|
|
2
2
|
import { fireEvent, render, screen, waitFor } from "@testing-library/react";
|
|
3
3
|
|
|
4
4
|
import "@testing-library/jest-dom";
|
|
@@ -13,39 +13,6 @@ const items = new Array(50).fill(undefined).map((_, id) => {
|
|
|
13
13
|
return { testLabel, testId: `${testLabel}-id` };
|
|
14
14
|
});
|
|
15
15
|
|
|
16
|
-
export const TestComponent = (): JSX.Element => {
|
|
17
|
-
const copy: Array<{ testLabel: string; testId: string }> = [items[2]];
|
|
18
|
-
|
|
19
|
-
const [selected, setSelected] = useState(copy);
|
|
20
|
-
|
|
21
|
-
const handleOnSelect = useCallback((params) => {
|
|
22
|
-
const items = params.selectedItems;
|
|
23
|
-
setSelected(items);
|
|
24
|
-
}, []);
|
|
25
|
-
|
|
26
|
-
const handleReset = (): void => {
|
|
27
|
-
setSelected(copy);
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
return (
|
|
31
|
-
<div>
|
|
32
|
-
<button data-testid="reset-button" onClick={handleReset}>
|
|
33
|
-
Reset
|
|
34
|
-
</button>
|
|
35
|
-
<br />
|
|
36
|
-
<br />
|
|
37
|
-
<MultiSuggestField<{ testLabel: string; testId: string }>
|
|
38
|
-
items={items}
|
|
39
|
-
createNewItemFromQuery={(query) => ({ testId: `${query}-id`, testLabel: query })}
|
|
40
|
-
onSelection={handleOnSelect}
|
|
41
|
-
itemId={({ testId }) => testId}
|
|
42
|
-
itemLabel={({ testLabel }) => testLabel}
|
|
43
|
-
selectedItems={selected}
|
|
44
|
-
/>
|
|
45
|
-
</div>
|
|
46
|
-
);
|
|
47
|
-
};
|
|
48
|
-
|
|
49
16
|
describe("MultiSuggestField", () => {
|
|
50
17
|
describe("uncontrolled (when only selectedItems or onSelect is provided)", () => {
|
|
51
18
|
it("should render default input", () => {
|
|
@@ -59,7 +26,7 @@ describe("MultiSuggestField", () => {
|
|
|
59
26
|
const { getByText } = render(<MultiSuggestField {...predefinedNotControlledValues.args} />);
|
|
60
27
|
|
|
61
28
|
const [firstSelected, secondSelected]: Array<string> = predefinedNotControlledValues.args.selectedItems.map(
|
|
62
|
-
({ testLabel }) => testLabel
|
|
29
|
+
({ testLabel }) => testLabel,
|
|
63
30
|
);
|
|
64
31
|
|
|
65
32
|
await waitFor(() => {
|
|
@@ -74,7 +41,7 @@ describe("MultiSuggestField", () => {
|
|
|
74
41
|
data-test-id="multi-suggest-field"
|
|
75
42
|
{...predefinedNotControlledValues.args}
|
|
76
43
|
onSelection={undefined}
|
|
77
|
-
|
|
44
|
+
/>,
|
|
78
45
|
);
|
|
79
46
|
|
|
80
47
|
const selectedLength = predefinedNotControlledValues.args.selectedItems.length;
|
|
@@ -143,7 +110,7 @@ describe("MultiSuggestField", () => {
|
|
|
143
110
|
|
|
144
111
|
it("should render disable field with selected items", async () => {
|
|
145
112
|
const { container, getByText } = render(
|
|
146
|
-
<MultiSuggestField {...predefinedNotControlledValues.args} disabled
|
|
113
|
+
<MultiSuggestField {...predefinedNotControlledValues.args} disabled />,
|
|
147
114
|
);
|
|
148
115
|
|
|
149
116
|
const [inputTargetContainer] = container.getElementsByClassName("eccgui-multiselect__target");
|
|
@@ -151,7 +118,7 @@ describe("MultiSuggestField", () => {
|
|
|
151
118
|
expect(inputTargetContainer.getAttribute("aria-disabled")).toBe("true");
|
|
152
119
|
|
|
153
120
|
const [firstSelected, secondSelected]: Array<string> = predefinedNotControlledValues.args.selectedItems.map(
|
|
154
|
-
({ testLabel }) => testLabel
|
|
121
|
+
({ testLabel }) => testLabel,
|
|
155
122
|
);
|
|
156
123
|
|
|
157
124
|
await waitFor(() => {
|
|
@@ -170,7 +137,7 @@ describe("MultiSuggestField", () => {
|
|
|
170
137
|
expect(clearButtonBefore).not.toBeInTheDocument();
|
|
171
138
|
|
|
172
139
|
const [firstSelected, secondSelected]: Array<string> = predefinedNotControlledValues.args.selectedItems.map(
|
|
173
|
-
({ testLabel }) => testLabel
|
|
140
|
+
({ testLabel }) => testLabel,
|
|
174
141
|
);
|
|
175
142
|
|
|
176
143
|
await waitFor(() => {
|
|
@@ -200,7 +167,7 @@ describe("MultiSuggestField", () => {
|
|
|
200
167
|
|
|
201
168
|
it("should render disable field with deferred selected items", async () => {
|
|
202
169
|
const { container, rerender } = render(
|
|
203
|
-
<MultiSuggestField {...predefinedNotControlledValues.args} selectedItems={[]} disabled
|
|
170
|
+
<MultiSuggestField {...predefinedNotControlledValues.args} selectedItems={[]} disabled />,
|
|
204
171
|
);
|
|
205
172
|
|
|
206
173
|
const [inputTargetContainer] = container.getElementsByClassName("eccgui-multiselect__target");
|
|
@@ -208,7 +175,7 @@ describe("MultiSuggestField", () => {
|
|
|
208
175
|
expect(inputTargetContainer.getAttribute("aria-disabled")).toBe("true");
|
|
209
176
|
|
|
210
177
|
const [firstSelected, secondSelected]: Array<string> = predefinedNotControlledValues.args.selectedItems.map(
|
|
211
|
-
({ testLabel }) => testLabel
|
|
178
|
+
({ testLabel }) => testLabel,
|
|
212
179
|
);
|
|
213
180
|
|
|
214
181
|
await waitFor(() => {
|
|
@@ -232,7 +199,7 @@ describe("MultiSuggestField", () => {
|
|
|
232
199
|
const onSelection = jest.fn();
|
|
233
200
|
|
|
234
201
|
const { container } = render(
|
|
235
|
-
<MultiSuggestField {...dropdownOnFocus.args} items={items} onSelection={onSelection}
|
|
202
|
+
<MultiSuggestField {...dropdownOnFocus.args} items={items} onSelection={onSelection} />,
|
|
236
203
|
);
|
|
237
204
|
|
|
238
205
|
const [inputContainer] = container.getElementsByClassName("eccgui-multiselect");
|
|
@@ -271,7 +238,7 @@ describe("MultiSuggestField", () => {
|
|
|
271
238
|
items={items}
|
|
272
239
|
selectedItems={initiallySelected}
|
|
273
240
|
onSelection={onSelection}
|
|
274
|
-
|
|
241
|
+
/>,
|
|
275
242
|
);
|
|
276
243
|
|
|
277
244
|
await waitFor(() => {
|
|
@@ -315,7 +282,7 @@ describe("MultiSuggestField", () => {
|
|
|
315
282
|
{...predefinedNotControlledValues.args}
|
|
316
283
|
selectedItems={initiallySelected}
|
|
317
284
|
onSelection={onSelection}
|
|
318
|
-
|
|
285
|
+
/>,
|
|
319
286
|
);
|
|
320
287
|
|
|
321
288
|
await waitFor(() => {
|
|
@@ -409,11 +376,11 @@ describe("MultiSuggestField", () => {
|
|
|
409
376
|
const onSelection = jest.fn();
|
|
410
377
|
|
|
411
378
|
const { getByText } = render(
|
|
412
|
-
<MultiSuggestField {...predefinedNotControlledValues.args} onSelection={onSelection}
|
|
379
|
+
<MultiSuggestField {...predefinedNotControlledValues.args} onSelection={onSelection} />,
|
|
413
380
|
);
|
|
414
381
|
|
|
415
382
|
const [firstSelected, secondSelected]: Array<string> = predefinedNotControlledValues.args.selectedItems.map(
|
|
416
|
-
({ testLabel }) => testLabel
|
|
383
|
+
({ testLabel }) => testLabel,
|
|
417
384
|
);
|
|
418
385
|
|
|
419
386
|
await waitFor(() => {
|
|
@@ -441,7 +408,7 @@ describe("MultiSuggestField", () => {
|
|
|
441
408
|
items={items}
|
|
442
409
|
selectedItems={[]}
|
|
443
410
|
onSelection={onSelection}
|
|
444
|
-
|
|
411
|
+
/>,
|
|
445
412
|
);
|
|
446
413
|
|
|
447
414
|
const [inputContainer] = container.getElementsByClassName("eccgui-multiselect");
|
|
@@ -566,7 +533,7 @@ describe("MultiSuggestField", () => {
|
|
|
566
533
|
const args = { ...dropdownOnFocus.args, onSelection: onSelection };
|
|
567
534
|
|
|
568
535
|
const { container } = render(
|
|
569
|
-
<MultiSuggestField {...args} data-test-id="multi-suggest-field" prePopulateWithItems
|
|
536
|
+
<MultiSuggestField {...args} data-test-id="multi-suggest-field" prePopulateWithItems />,
|
|
570
537
|
);
|
|
571
538
|
|
|
572
539
|
await waitFor(() => {
|
|
@@ -593,7 +560,7 @@ describe("MultiSuggestField", () => {
|
|
|
593
560
|
const args = { ...predefinedNotControlledValues.args, selectedItems: undefined, onSelection: onSelection };
|
|
594
561
|
|
|
595
562
|
const { container } = render(
|
|
596
|
-
<MultiSuggestField {...args} data-test-id="multi-suggest-field" prePopulateWithItems
|
|
563
|
+
<MultiSuggestField {...args} data-test-id="multi-suggest-field" prePopulateWithItems />,
|
|
597
564
|
);
|
|
598
565
|
|
|
599
566
|
await waitFor(() => {
|
|
@@ -637,7 +604,7 @@ describe("MultiSuggestField", () => {
|
|
|
637
604
|
|
|
638
605
|
it("should not contain the custom css property when limitHeightOpened not provided", async () => {
|
|
639
606
|
const { container } = render(
|
|
640
|
-
<MultiSuggestField {...Default.args} openOnKeyDown={false} data-testid="multi-suggest-field"
|
|
607
|
+
<MultiSuggestField {...Default.args} openOnKeyDown={false} data-testid="multi-suggest-field" />,
|
|
641
608
|
);
|
|
642
609
|
|
|
643
610
|
const [inputTargetContainer] = container.getElementsByClassName("eccgui-multiselect");
|
|
@@ -647,7 +614,7 @@ describe("MultiSuggestField", () => {
|
|
|
647
614
|
await waitFor(() => {
|
|
648
615
|
const dropdown = screen.getByTestId("multi-suggest-field_dropdown");
|
|
649
616
|
const customProperty = (dropdown as HTMLElement)?.style?.getPropertyValue(
|
|
650
|
-
"--eccgui-multisuggestfield-max-height"
|
|
617
|
+
"--eccgui-multisuggestfield-max-height",
|
|
651
618
|
);
|
|
652
619
|
|
|
653
620
|
expect(customProperty).toBeFalsy();
|
|
@@ -661,7 +628,7 @@ describe("MultiSuggestField", () => {
|
|
|
661
628
|
openOnKeyDown={false}
|
|
662
629
|
limitHeightOpened={110}
|
|
663
630
|
data-testid="multi-suggest-field"
|
|
664
|
-
|
|
631
|
+
/>,
|
|
665
632
|
);
|
|
666
633
|
|
|
667
634
|
const [inputTargetContainer] = container.getElementsByClassName("eccgui-multiselect");
|
|
@@ -672,7 +639,7 @@ describe("MultiSuggestField", () => {
|
|
|
672
639
|
const dropdown = screen.getByTestId("multi-suggest-field_dropdown");
|
|
673
640
|
|
|
674
641
|
const customProperty = (dropdown as HTMLElement)?.style?.getPropertyValue(
|
|
675
|
-
"--eccgui-multisuggestfield-max-height"
|
|
642
|
+
"--eccgui-multisuggestfield-max-height",
|
|
676
643
|
);
|
|
677
644
|
|
|
678
645
|
expect(customProperty).toBeFalsy();
|
|
@@ -686,7 +653,7 @@ describe("MultiSuggestField", () => {
|
|
|
686
653
|
openOnKeyDown={false}
|
|
687
654
|
limitHeightOpened
|
|
688
655
|
data-testid="multi-suggest-field"
|
|
689
|
-
|
|
656
|
+
/>,
|
|
690
657
|
);
|
|
691
658
|
|
|
692
659
|
const [inputTargetContainer] = container.getElementsByClassName("eccgui-multiselect");
|
|
@@ -697,7 +664,7 @@ describe("MultiSuggestField", () => {
|
|
|
697
664
|
const dropdown = screen.getByTestId("multi-suggest-field_dropdown");
|
|
698
665
|
|
|
699
666
|
const customProperty = (dropdown as HTMLElement)?.style?.getPropertyValue(
|
|
700
|
-
"--eccgui-multisuggestfield-max-height"
|
|
667
|
+
"--eccgui-multisuggestfield-max-height",
|
|
701
668
|
);
|
|
702
669
|
|
|
703
670
|
expect(customProperty).toBeDefined();
|
|
@@ -711,7 +678,7 @@ describe("MultiSuggestField", () => {
|
|
|
711
678
|
openOnKeyDown={false}
|
|
712
679
|
limitHeightOpened={80}
|
|
713
680
|
data-testid="multi-suggest-field"
|
|
714
|
-
|
|
681
|
+
/>,
|
|
715
682
|
);
|
|
716
683
|
|
|
717
684
|
const [inputTargetContainer] = container.getElementsByClassName("eccgui-multiselect");
|
|
@@ -722,7 +689,7 @@ describe("MultiSuggestField", () => {
|
|
|
722
689
|
const dropdown = screen.getByTestId("multi-suggest-field_dropdown");
|
|
723
690
|
|
|
724
691
|
const customProperty = (dropdown as HTMLElement)?.style?.getPropertyValue(
|
|
725
|
-
"--eccgui-multisuggestfield-max-height"
|
|
692
|
+
"--eccgui-multisuggestfield-max-height",
|
|
726
693
|
);
|
|
727
694
|
|
|
728
695
|
expect(customProperty).toBeDefined();
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Meta, StoryFn } from "@storybook/react";
|
|
3
|
+
|
|
4
|
+
import { NotAvailable } from "../../../index";
|
|
5
|
+
|
|
6
|
+
export default {
|
|
7
|
+
title: "Components/NotAvailable",
|
|
8
|
+
component: NotAvailable,
|
|
9
|
+
argTypes: {},
|
|
10
|
+
} as Meta<typeof NotAvailable>;
|
|
11
|
+
|
|
12
|
+
const TemplateFull: StoryFn<typeof NotAvailable> = (args) => <NotAvailable {...args} />;
|
|
13
|
+
|
|
14
|
+
export const Default = TemplateFull.bind({});
|
|
15
|
+
Default.args = {};
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
|
|
3
|
+
import { CLASSPREFIX as eccgui, Tag, TagProps, Tooltip, TooltipProps } from "../../index";
|
|
4
|
+
import { TestableComponent } from "../interfaces";
|
|
5
|
+
export interface NotAvailableProps
|
|
6
|
+
extends TestableComponent, Pick<TagProps, "icon" | "className">, Pick<TooltipProps, "intent"> {
|
|
7
|
+
/**
|
|
8
|
+
* Text displayed by the element.
|
|
9
|
+
*/
|
|
10
|
+
label?: TagProps["children"];
|
|
11
|
+
/**
|
|
12
|
+
* Add a tooltip to the element.
|
|
13
|
+
* You need to set an empty string `""` to remove it.
|
|
14
|
+
*/
|
|
15
|
+
tooltip?: TooltipProps["content"];
|
|
16
|
+
/**
|
|
17
|
+
* Specify the display of the used `Tag` component.
|
|
18
|
+
*/
|
|
19
|
+
tagProps?: Omit<TagProps, "icon" | "intent" | "children">;
|
|
20
|
+
/**
|
|
21
|
+
* Specify the display of the used `Tooltip` component.
|
|
22
|
+
*/
|
|
23
|
+
tooltipProps?: Omit<TooltipProps, "content" | "intent" | "children">;
|
|
24
|
+
/**
|
|
25
|
+
* Do not use the `Tag` component for the display.
|
|
26
|
+
* The `intent` state can be displayed only on the tooltip then.
|
|
27
|
+
*/
|
|
28
|
+
noTag?: boolean;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Simple placeholder element that can be used to display info about missing data.
|
|
33
|
+
*/
|
|
34
|
+
export const NotAvailable = ({
|
|
35
|
+
label = "n/a",
|
|
36
|
+
tooltip = "not available",
|
|
37
|
+
icon,
|
|
38
|
+
intent,
|
|
39
|
+
tagProps,
|
|
40
|
+
tooltipProps,
|
|
41
|
+
className,
|
|
42
|
+
noTag = false,
|
|
43
|
+
...otherProps
|
|
44
|
+
}: NotAvailableProps) => {
|
|
45
|
+
const defaultTagProps: TagProps = {
|
|
46
|
+
icon,
|
|
47
|
+
intent,
|
|
48
|
+
emphasis: "weaker",
|
|
49
|
+
className: `${eccgui}-notavailable` + className ? ` ${className}` : "",
|
|
50
|
+
};
|
|
51
|
+
const naElement =
|
|
52
|
+
noTag === false ? (
|
|
53
|
+
<Tag {...defaultTagProps} {...tagProps} {...otherProps}>
|
|
54
|
+
{label ?? "n/a"}
|
|
55
|
+
</Tag>
|
|
56
|
+
) : (
|
|
57
|
+
<>{label ?? "n/a"}</>
|
|
58
|
+
);
|
|
59
|
+
const defaultTooltipProps: TooltipProps = {
|
|
60
|
+
children: naElement,
|
|
61
|
+
content: tooltip,
|
|
62
|
+
intent,
|
|
63
|
+
addIndicator: noTag,
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
return tooltip ? <Tooltip {...defaultTooltipProps} {...tooltipProps} /> : naElement;
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
export default NotAvailable;
|
|
@@ -3,7 +3,8 @@ import { LoremIpsum, loremIpsum } from "react-lorem-ipsum";
|
|
|
3
3
|
import { Meta, StoryFn } from "@storybook/react";
|
|
4
4
|
|
|
5
5
|
import { helpersArgTypes } from "../../../.storybook/helpers";
|
|
6
|
-
import {
|
|
6
|
+
import { Markdown } from "../../cmem";
|
|
7
|
+
import { Button, HtmlContentBlock, Notification, Spacing } from "../../components";
|
|
7
8
|
|
|
8
9
|
export default {
|
|
9
10
|
title: "Components/Notification",
|
|
@@ -14,17 +14,18 @@ import Icon, { IconProps } from "./../Icon/Icon";
|
|
|
14
14
|
import { TestIconProps } from "./../Icon/TestIcon";
|
|
15
15
|
|
|
16
16
|
export interface NotificationProps
|
|
17
|
-
extends
|
|
17
|
+
extends
|
|
18
|
+
TestableComponent,
|
|
18
19
|
Omit<BlueprintToastProps, "message" | "action" | "icon" | "intent">,
|
|
19
20
|
React.HTMLAttributes<HTMLDivElement> {
|
|
20
21
|
/**
|
|
21
22
|
* Extra user action elements
|
|
22
23
|
*/
|
|
23
|
-
actions?: JSX.Element | JSX.Element[];
|
|
24
|
+
actions?: React.JSX.Element | React.JSX.Element[];
|
|
24
25
|
/**
|
|
25
26
|
* Notification message that can be used as alternative to children elements.
|
|
26
27
|
*/
|
|
27
|
-
message?: JSX.Element | string;
|
|
28
|
+
message?: React.JSX.Element | string;
|
|
28
29
|
/**
|
|
29
30
|
* Intent state of the notification.
|
|
30
31
|
*/
|
|
@@ -97,7 +98,7 @@ export const Notification = ({
|
|
|
97
98
|
timeout={timeout ? timeout : 0}
|
|
98
99
|
icon={
|
|
99
100
|
notificationIcon
|
|
100
|
-
? React.cloneElement(notificationIcon as JSX.Element, {
|
|
101
|
+
? React.cloneElement(notificationIcon as React.JSX.Element, {
|
|
101
102
|
className: (notificationIcon.props.className ?? "") + ` ${BlueprintClassNames.ICON}`,
|
|
102
103
|
})
|
|
103
104
|
: undefined
|
|
@@ -35,7 +35,7 @@ export const OverviewItemDepiction = ({
|
|
|
35
35
|
"type" in children &&
|
|
36
36
|
(children.type === Icon || children.type === TestIcon)
|
|
37
37
|
) {
|
|
38
|
-
return <Depiction image={children as JSX.Element} {...defaultDepictionDisplay} />;
|
|
38
|
+
return <Depiction image={children as React.JSX.Element} {...defaultDepictionDisplay} />;
|
|
39
39
|
}
|
|
40
40
|
return (
|
|
41
41
|
<div
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
OverviewItemLine,
|
|
15
15
|
Tag,
|
|
16
16
|
TagList,
|
|
17
|
-
} from "
|
|
17
|
+
} from "./../../../components";
|
|
18
18
|
import { FullExample as OtherDepictionExample } from "./../../Depiction/stories/Depiction.stories";
|
|
19
19
|
import { Default as ActionsExample } from "./OverviewItemActions.stories";
|
|
20
20
|
import { AutoTransform as DepictionExample } from "./OverviewItemDepiction.stories";
|