Skip to content

Releases: elyra-ai/canvas

release_9.2.6

07 Dec 21:44
db2e8aa
Compare
Choose a tag to compare

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 to LocalStorage
    • A saved zoom object in the pipeline flow when the canvas config value enableSaveZoom is set to Pipelineflow
    • When the canvas config value enablePanIntoViewOnOpen is specified as true

Issues resolved

#405 Ability to position nodes on the canvas during componentDidMount (#407)

release_9.2.5

04 Dec 23:57
6dbc71c
Compare
Choose a tag to compare

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 the Edit 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

19 Nov 02:47
Compare
Choose a tag to compare

Feature Enhancements

Common-Properties

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

18 Nov 03:54
Compare
Choose a tag to compare

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

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

11 Nov 01:11
Compare
Choose a tag to compare

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

28 Oct 18:26
Compare
Choose a tag to compare

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.

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

20 Oct 07:11
Compare
Choose a tag to compare

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 to Detacahable, 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 (when enableLinkSelection is set to LinkOnly, Handles or Detacahable).

  • Nodes with empty inputs and/or outputs properties are now correctly written out into PipelineFlow documents returned from CanvasController.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

08 Oct 03:46
Compare
Choose a tag to compare

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 to true 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

22 Sep 23:42
Compare
Choose a tag to compare

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

17 Aug 21:21
Compare
Choose a tag to compare

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, the clickActionHandler and selectionChangeHandler 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
  • 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. 
    The getZoomToReveal() method in canvas controller returns a zoom object which can be provided to the zoomTo() 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 the properties 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)