v13.43.0
Minor Release v13.43.0
Common Canvas
#3018 Add callback for connection drag start in ElyraCanvas
In this release, when the user begins to drag from an output port to create a new link the editActionHandler callback is called with a new action so the editType property of the data parameter is set to "beginNewLink".
data.editType === "beginNewLink"
This gives the application the opportunity to prepare/style any target nodes prior to the link being dragged towards them. Obviously, unlike other calls to editActionHandler, this is a real time operation so the callback must do its thing very rapidly to maintain a good user experience.
#3020 arrangeHorizontally does not take port order into account
For now this is an experimental feature and it may change slightly based on feedback
Currently, Common Canvas provides a layout function:
canvasController.autoLayout(layoutDirection, pipelineId)
where layoutDirection can be "horizontal" or "vertical". This function leverages the Dagre layout library. This has some drawbacks:
- Does not recognize port positions when considering node placement
- Does not arrange comments appropriately for the flow
In this release, Elyra Canvas now additionally supports the Eclipse Layout Kernel (ELK) layout library. The application can switch to ELK using the new enableLayoutLibrary config property which has possible values of "Dagre" (the default) or "ELK". This will take port positions into account when performing the layout when the enableLinkMethod config property is set to "Ports". ELK is also able to position comments in an appropriate place outside of the flow of nodes.
ELK has a huge variety of layout algorithms and accompanying options. By default, Common Canvas uses the "layered" algorithm with the "INTERACTIVE" node placement strategy. See this code for more default settings.
If an application team wants to experiment, these options can be overridden by providing the following in the canvasLayout object in the config:
const config = {
enableCanvasLayout: {
elkLayout: {
root: {
"elk.layered.nodePlacement.strategy": "SIMPLE",
},
node: {}
}
}
};
- root properties will overlay, or add to, the main ELK properties specified by Common Canvas
- node can also be specified to override, or add to, the ELK properties for nodes.
Finally, the ELK js bundle is quite big so Common Canvas will only load it (asynchronously) on the first call to canvasController.autoLayout() when enableLayoutLibrary is set to "ELK".
Issues Resolved
- #2995 Carbon React icons occupy too much space in Elyra Canvas module by @tomlyn in #3006
- #3007 Refactor port positioning code into static utility by @tomlyn in #3008
- #3009 Refactor svg-canvas-utils-nodes.js contain only static function… by @tomlyn in #3010
- #3009 Refactor svg-canvas-utils-nodes.js contain only static function… by @tomlyn in #3013
- #3014 Refactor svg-canvas-utils-comments.js contain only static funct… by @tomlyn in #3015
- #3011 Codemirror color issues by @tomlyn in #3012
- #3016 Refactor setPortPositionsForNode to set port sizes by @tomlyn in #3017
- #3018 Add callback for connection drag start in ElyraCanvas by @tomlyn in #3019
- #2957 Common Properties row_selection 'single' is not keyboard accessible by @samueldmeyer in #2958
- #2970 Icon buttons in structuretable do not show tooltip on focus by @samueldmeyer in #2971
- #3022 Error with title-editor when properties is opened by @tomlyn in #3023
- #3024 selectionChangeHandler and clickActionHandler aren't called whe… by @tomlyn in #3025
- #3026 Security policy doc in Elyra Canvas should be updated by @tomlyn in #3027
- #3028 Improve Jest tests by @tomlyn in #3029
- #3031 Canvas constants used twice in canvas-controller.js by @tomlyn in #3032
- #3035 Fix column panel spacing by @matthoward366 in #3036
- #3033 Add data object to panel title callback by @matthoward366 in #3034
- #3020 arrangeHorizontally does not take port order into account by @tomlyn in #3021
- #3038 Double Click not working on link with handles by @tomlyn in #3039
- #3030 Improve Jest Tests(Part 2) by @tomlyn in #3037
- #3040 Overflow search text has accessibility violation by @tomlyn in #3041
- #3043 Decoration tooltips not displaying correctly by @tomlyn in #3044
Full Changelog: v13.42.0...v13.43.0