Releases: elyra-ai/canvas
release_9.2.6
Feature Enhancements
Common Canvas
-
The canvas objects (nodes, comments, links) can now be offset from the origin by a specified x and y amount when the canvas is first opened. This might be useful if you know your canvas always needs to be moved by a fixed amount of space regardless of what canvas objects are displayed. To specify the x and y amount create a canvas config object like this:
const config = { enableCanvasLayout: { initialPanX: 100, initialPanY: 200 } };
where the numbers are coordinate positions from the origin which is, by default, the top left corner of the canvas.
Note: These values will only be used when other saved zoom behaviors are not specified. Examples, of saved zoom behaviors are:
- A saved zoom object in the browser's Local Storage when the canvas config value
enableSaveZoom
is set toLocalStorage
- A saved zoom object in the pipeline flow when the canvas config value
enableSaveZoom
is set toPipelineflow
- When the canvas config value
enablePanIntoViewOnOpen
is specified astrue
- A saved zoom object in the browser's Local Storage when the canvas config value
Issues resolved
#405 Ability to position nodes on the canvas during componentDidMount (#407)
release_9.2.5
Feature Enhancements
Common-Canvas
- The ghost image displayed when dragging a node from the palette now works correctly when the Chrome or Firefox browser page is zoomed. Note: There is still an issue with this on Safari.
- Zoom amounts are now saved in a valid format in the pipelineFlow document when
enableSaveZoom
is set to"Pipelineflow"
- Comments that are positioned with either a negative x or y coordinate are now saved to a pipeline flow document that conforms to the pipeline flow UI schema.
- Elbow lines now behave the same way as curved lines when the target node is 'behind' the source node. That is, they loop around the outside of the source and target nodes instead of going underneath them.
- The
Paste
option does not now appear in theEdit
submenu for Nodes, Links and Comments. - Port circles are now removed if an empty inputs or outputs array is specified for a node in the Canvas Controller API
- The Canvas Controller API now returns copies of objects from the object store instead of a pointer to the actual data in the object store.
Issues resolved
#399 Use latest pipeline-schemas module (#400)
#394 Add publish Action (#398)
#381 Palette icon positioning does not match cursor when browser zoom… (#382)
#385 Saved pipelineFlow should store valid zoom amount (#386)
#387 Adapt overlapping link algorithm to elbow link type (#388)
#389 propertyListener return values as object if the parameter structureType is object (#390)
#394 Move to github actions (#395)
#383 Remove Paste option from node and link overflow menus (#384)
#376 Port circle still visible after port has ben removed (#377)
#373 Common canvas API should not return Redux store data to host app (#374)
Attribute copyright notice to Elyra Authors (#380)
release_9.2.2
Feature Enhancements
Common-Properties
- #359 a new “readonlyTable” is introduced. A complex structure can be set to be readonly by specifying “control”: “readonlyTable” in the parameter_info section of the parameter definition. Examples can be found at https://github.com/elyra-ai/canvas/blob/master/canvas_modules/harness/test_resources/parameterDefs/readonlyTable_paramDef.json
Issues resolved
#368 Add dark themed CodeMirror support for Expression Builder (#372)
#359 readonlyTable control (#371)
#349 Display checkbox tooltips next to label in common-properties (#350)
release_9.2.1
Feature Enhancements
Common-Canvas
-
#12 The context menu
Paste
option now pastes objects from the clipboard at the mouse pointer position where the context menu was requested. -
#357 Four new API methods have been added to Canvas Controller:
getNodeInputPorts(nodeId, pipelineId) getNodeOutputPorts(nodeId, pipelineId) setNodeInputPorts(nodeId, inputs, pipelineId) setNodeOutputPorts(nodeId, outputs, pipelineId)
The second two can be used to add new ports to the node; they will cause the canvas to refresh to reflect the ports specified.
See the canvas controller API documentation for more details. -
Warning: In this release the internal structure of canvas objects in the DOM has changed. Nodes, Links and Comments are now inside their own group (
<g>
) element. This means, if you have any tests that use selectors to identify objects (nodes, comments, links) like this:svg > g > g[data-id=123]
the selector would now be:
svg > g > g > g[data-id=123]
Common-Properties
- #255 Nested complex structures are now supported in common-properties. Complex structures that can be nested includes: structuretables, structurelisteditors, structureeditor and list controls. Examples are added to the test harness https://github.com/elyra-ai/canvas/tree/master/canvas_modules/harness/test_resources/parameterDefs
Issues resolved
#366 Some toolbar icons not visible with dark theme (#367)
#362 Selectable links disappear under comment when hovering stops (#363)
#167 Paste button is always enabled (#364)
#255 Complex types support complex types sub-controls (#256)
#360 Wide node labels truncated when displayed as part of ghost image (#361)
#357 Port addition/deletion UI render bugs (#358)
#12 Clipboard paste with context menu should add objects at mouse pos… (#353)
release_9.1.9
Feature Enhancements
Common-Canvas
This release contains the two bug fixes mentioned below; one of which is high priority.
Common-Properties
No changes
Issues resolved
#354 Can't delete the node on click of delete button of keyboard for the 1st time (#355)
#351 Link selection highlighting incorrectly displayed when link selection switched off (#352)
release_9.1.8
Feature Enhancements
Common-Canvas
- Two new properties are now supported for decorations:
- distance - this can be used for positioning a decoration at an offset distance along a straight connecting line between nodes. An example of the usage of this new property can be seen in the
detached links
sample application in the test harness. - temporary - if set to true the decoration will not be written into the pipeline flow document when it is requested using
CanvasController.getPipelineFlow()
See the decoration documentation in the wiki for details.
- distance - this can be used for positioning a decoration at an offset distance along a straight connecting line between nodes. An example of the usage of this new property can be seen in the
Common-Properties
- #319 - For accessibility, the landmark role
complementary
was added for common-properties. This means the right flyout view of common-properties is now wrapped in an<aside />
tag. Earlier this was a<div />
tag. This will change any selectors you might use for common properties if you have included the tag name (div
) in the selector. There is no change in the modal view.
Issues resolved
#339 Link decorations improvements (#342)
#347 Translations (#348)
#345 Empty toolbarConfig object produces error messages in developer console (#346)
#343 Fixed dropdown menu border blocked by Close button (#344)
#319 Add landmark role for common-properties (#340)
#325 Fixes expression builder onBlur behavior (#336)
#337 Double click on node causing text areas in properties to be highlighted (#338)
#328 Prevent evt propagation when selecting a dropdown option within a table row (#335)
#333 Properties table performance (#334)
release_9.1.6
Feature Enhancements
Common-Canvas
-
A new boolean config variable called
enablePositionNodeOnRightFlyoutOpen
has been added. When set to true, if the right-side flyout is open the currently selected node will be automatically positioned in the center of the canvas area (viewport). See the wiki section for details: https://github.com/elyra-ai/canvas/wiki/2.1-Config-Objects#enablepositionnodeonrightflyoutopen -
Two new CanvasController API methods have been added to allow the host application to modify the source and target information for a link. These are:
- setNodeDataLinkSrcInfo(linkId, srcNodeId, srcNodePortId, pipelineId)
- setNodeDataLinkTrgInfo(linkId, trgNodeId, trgNodePortId, pipelineId)
-
With
enableLinkSelection
set toDetacahable
, a node can now be a attached to either the source-end or the target-end of a fully-detached link. -
Select All
actions with the keyboard (Ctrl-A) and the context menu will now select the links on the canvas as well as comments and nodes (whenenableLinkSelection
is set toLinkOnly
,Handles
orDetacahable
). -
Nodes with empty
inputs
and/oroutputs
properties are now correctly written out into PipelineFlow documents returned fromCanvasController.getPipelinFlow()
Issues resolved
#331 Pipeline-out handler not writing empty outputs and inputs arrays (#332)
#329 Not able to attach a node as target on a detached link (#330)
#326 Add new canvas controller APIs to modify canvas objects (#327)
#323 Right flyout drop shadow should not extend above top of flyout (#324)
#320 Enable positioning of node on opening rightside flyout (#321)
#138 Fix Travis message that is obscured (#318)
#316 Select All option (keyboard or context menu) should select links… (#317)
#315 Add validate option to test harness (#314)
#311 Adjust Right side flyout height (#312)
#307 Accessibility support for API configuration options (#310)
release_9.1.4
Feature Enhancements
Common-Canvas
-
The right side flyout may now be displayed below the toolbar so the toolbar does not compress when the properties are being edited. The
enableRightFlyoutUnderToolbar
canvas configuration field needs to be set totrue
to activate this behavior. See this section in the wiki. -
The zoom in and zoom out buttons in the toolbar now zoom the canvas objects to and from the center of the viewport. Previously they always moved the canvas to the center of the viewport (zoom-to-fit) and then performed the zoom.
-
When the canvas is empty an appropriate image is now displayed. An incorrect image was displayed in version 9.1.1.
-
The
ghost
image displayed as a node is being dragged from the palette now correctly includes the node icon the first time it is dragged. In addition it now includes the text for the node as well.
Issues resolved
#308 Enable right-side flyout to appear below the toolbar (#309)
#300 Accessibility support for common-canvas configuration options (#306)
#304 Text panels without descriptions shouldn't show text (#305)
#297 Zoom in/out buttons should not zoom to fit before zooming (#298)
#302 Upgrade jsonschema library to latest version (#303)
#299 Accessibility support for common-properties configuration options (#301)
#293 Display an appropriate image when the canvas is empty (#294)
#278 Added landmark roles for A11y (#279)
#291 Allow empty canvas content and drop zone content to be switched on and off in the test harness (#292)
#289 The test harness should support enableHightlightNodeOnNewLinkDrag config option (#290)
#287 Drag ghost image sometimes doesn't contain the node icon (#288)
#284 Upgrade dependencies to latest (#285)
#250 Styling fix - Implement new design for Expression Builder (#286)
#280 Replace icons with slimmed down versions (#281)
#282 Change properties-button height to 64px (#283)
release_9.1.1
Feature Enhancements
Common-Canvas
#271 Detachable links are now supported. The enableLinkSelection
configuration field can now be set to one of 4 values: "None", "LinkOnly", "Handles" and "Detachable". Each setting enables an increasing amount of function to manipulate links.
The "Handles" setting allows:
- link handles (either a circle or an image) to be displayed at the start and end of the link line
- link handles can be used to rewire the flow by dragging, say, the end link handle from one node/port to another node/port
The "Detachable" setting allows:
- detached links to be drawn on the canvas
- detached links to be stored in and retrieved from the pipeline flow document
- detached links to be manipulated with link handles
- a new detached link to created by drawing out a new link from a node and dropping it on the canvas
- palette and canvas nodes when they are dragged over the canvas may be dropped onto detachable links to automatically attach them to the node
See the wiki for details of enableLinkSelection
#274 The 'ghost' image displayed when a node is dragged from the palette is now tailored to represent what the user is going to get when they drop the image over the canvas. This includes the correct size based on whether horizontal
or vertical
nodes are being displayed and the correct size based on the zoom amount.
In Elyra canvas, there is now more robust checking of port cardinalities when making connections between nodes. The cardinality of input and output ports should be set appropriately in the pipeline flow and palette . As per the pipeline flow UI schema, the maximum cardinality can be set to -1 to allow an unlimited number of connections to an input port of from an output port.
Common-Properties
#262 - A new parameter is now passed into closePropertiesDialog() callback function to indicate where this call was originated from. For more information, see the common properties wiki
#266 - Reduced spacing around properties within a modal
#262 - Custom labels are now supported for main properties button. For more information, see the common properties wiki
#250 - The layout of the Expression Builder has been updated also some bugs have been fixed for inconsistent cursor behavior when adding fields/functions/operators to the expression builder.
Developer Notes
As of version 9.1.0, you will need to upgrade your Carbon dependencies (listed below) to match the ones in Elyra canvas, as there were some breaking changes between 10.14 and 10.20
@carbon/icons-react
@carbon/themes
carbon-components
carbon-components-react
#269 - Updated the sizing set on Carbon modals. A classname "small" , "medium", "large" was removed from properties-modal since its no longer required by common-properties to override the size.
Issues resolved
#271 Support link handles to enable manipulation of links and detache… (#277)
#250 expression builder redesign (#273)
#268 Translate dropdown menu tooltips (#276)
#274 Dragged palette object should show the user what they are going … (#275)
#263 custom labels for properties buttons (#265)
#269 map properties modal sizes to carbon modals (#270)
#266 reduce spacing for properties in modal (#267)
#262 differentiate when closePropertiesDialog is called from 'Cancel' or 'Save' (#264)
#260 Update svgs and fix unit test failure and subtab styling (#261)
#243 Display tooltip for last palette node on screen (#257)
#258 Skipped a unit test - validate subtabs work correctly (#259)
#253 CanvasController.creatNodeLinks does not return the links created (#254)
#251 Numberfield default value set to empty string when undefined (#252)
#244 Support function to read and write detachable links to/form a pi… (#245)
#248 New array and string length conditions (#249)
#246 support conditions in subtabs (#247)
#225 Context menu should close when panning or zooming the canvas (#226)
#241 adding latest translations after TVT phase 1 (#242)
#238 Add subtitle to notification messages - styling (#240)
#238 Add subtitle to notification messages (#239)
#236 Enums rendered in paramDefs should render the translated label, not the internal value (#237)
#227 Add function to get palette node type for operators (#235)
#229 Pipleine handlers do not read in and write out node's connection fields correctly (#234)
#232 Add a callback for notifications "Clear All" button (#233)
#230 Long notification message overflow for environments that don't support overflow-wrap: anywhere (#231)
#222 Palette icon not picking up translated text (#223)
release_9.0.9
Feature Enhancements
Translation
- Translated text is now included for the supported languages
Common Canvas
-
Links are now selectable.
- Historically common-canvas links were not selectable although the user could right-click a link and get a context menu. There is now a new canvas configuration variable called
enableLinkSelection
which, when set to true, will allow links to be selected. When selected they are highlighted. - Link selection will work just like other canvas objects so Cmd + Click-on-link will add the link to the set of selected objects.
- When
enableLinkSelection
is set to true, any data returned in callback functions (such as editActionHandler) which contains the selected objects array will contain the selected links in the array along with any selected nodes and comments. This means link IDs are in the same name space as node IDs and comment IDs and therefore must be unique when compared to node and comment IDs. - Also, when
enableLinkSelection
is set to true, theclickActionHandler
andselectionChangeHandler
will be called when the user clicks on a link. - This change altered some internal class names for link objects:
link-group is now d3-link-group
d3-selectable-link was removed and replaced with d3-link-line for link lines and .d3-link-line-arrow-head for arrow heads
The data-id and data-pipelineId attributes have been removed from link lines (SVG path) elements. Those attributes are now only applied to the d3-link-group
- Historically common-canvas links were not selectable although the user could right-click a link and get a context menu. There is now a new canvas configuration variable called
-
Toolbar now allows tooltip text to be specified.
Previously the tooltip always showed the label text. Host applications can now override that text and specify different text for the tooltip than for the label. -
Toolbar now allows JSX objects in addition to buttons
Traditionally the toolbar allows actions to be specified in the form of icons, labels etc which are managed by common canvas as buttons. Some host applications want to specify other elements in the toolbar that are not wrappered inside a button.
Common canvas now supports an advanced capability which allows the host app to specify a toolbar action as pure JSX object. See the toolbar documentation for more details. https://github.com/elyra-ai/canvas/wiki/2.1-Config-Objects#advanced-jsx-actions -
getZoomToReveal now accepts position information.
ThegetZoomToReveal()
method in canvas controller returns a zoom object which can be provided to thezoomTo()
method that will zoom objects into the canvas viewport. That method has been extended so it now receives xPos and yPos parameters (which are a percentage of the viewport width and height) to indicate where you want the identified node(s) to zoom to. -
Connections schema now allows properties of native types
The pipeline-connection-v3-schema.json schema now allows theproperties
property to contain properties of native types. Previously each property had to be an object.
Common Properties
- Carbon 10 styling updates
Issues Resolved since last release build
#95 common properties carbon 10 styling updates (#224)
#221 Enabling translation (#220)
#210 Adjust notification panel padding (#211)
#218 Make zoomToReveal accept x and y offset amounts (#219)
#199 Translated data type tooltips in fieldpicker filters (#201)
#216 Translations in Expression Builder (#217)
#214 SelectionChangeHandler not called on link selection with enableLinkSelectio (#215)
#208 Support ability to hookup custom components in the Toolbar (#213)
#206 Use new pipeline-schemas version: 3.0.19 (#207)
#204 Rename common-canvas-d3.scss to svg-canvas-d3.scss (#205)
#202 Provide API method to pan objects to center of the canvas viewport (#203)
#197 Support link selection
#195 Toolbar icon label vertical positioning (#196)
#193 Toolbar related issues with smaple apps (tiny and small) (#194)
#188 Enable toolbar for screen reader (#189)
#191 Notification Panel subtitle should allow object or string (#192)
#187 Notification Messages overflow on long words (#190)
#185 Enable sample apps for toolbar change (#186)
#183 CommonCanvasToolbar should not alter props (#184)