The list below describes recent changes and additions to MindFusion JavaScript Pack:
New in 2024.R1
Web components
The WebComponents.register method of each module from the pack lets you register its controls as web components:
Diagramming
TableNode improvements
DiagramLink improvements
TabbedDiagramView improvements
- Enable allowRenamePages to let users edit the title of DiagramPage by clicking the active tab.
- The control raises pageAdding event when users click the plus icon to let you validate the operation, and pageAdded once the page is added.
- The control raises pageRemoving event when users close a tab to let you validate the operation, and pageRemoved once the page is removed.
- Fix for scroll range not updating when changing tabs.
- Fixed exception when moving multiple selection in TabbedDiagramView.
NodeListView improvements
Miscellaneous
API changes
- Due to problems with some script loaders, the library no longer registers web components automatically. Call the WebComponents.register method to explicitly register component classes.
- Blazor bindings moved to MindFusion.Diagramming.JavaScript nuget package.
New in 2023.R3
Diagramming
Web components
The library registers each control class as a web component. You can use the following tags to create corresponding components:
- <mindfusion-diagramview> creates a DiagramView instance.
- <mindfusion-ruler> creates a Ruler instance.
- <mindfusion-zoomcontrol> creates a ZoomControl instance.
- <mindfusion-overview> creates an Overview instance.
- <mindfusion-nodelistview> creates a NodeListView instance.
When instantiated as a web component, each control class creates required HTML elements as internal shadow DOM. You can get the JavaScript object corresponding to a web component by calling controls' find method with id argument.
HTML
Copy Code
|
---|
<mindfusion-diagramview id="diagramView" style="position: absolute; left: 0px; top: 0px; right: 0px; bottom: 0px; overflow: auto;"> </mindfusion-diagramview> |
JavaScript
Copy Code
|
---|
var diagramView = DiagramView.find("diagramView"); var diagram = diagramView.diagram; |
Animations
The library now includes several standard animation classes and methods.
The animate method of DiagramItem can run following animations:
Following animations can be applied to DiagramNodes:
The animate method of DiagramView can run following animations:
DiagramLink improvements
- Set the intermediateShape property to display arrowheads at the middle of each link segment. This could help users follow longer link paths. Intermediate arrowheads can be customized further by setting intermediateBrush and intermediateShapeSize.
- Set the allowSplitLinks property of Diagram to let users insert new link segments by dragging any point of a selected link's segment. In this mode users can also merge link segments by making them close to collinear, or by moving adjustment handles close to each other, as set via mergeThreshold.
Reversed tree layouts
The reversedLinks property of TreeLayout, RadialTreeLayout and BorderedTreeLayout lets you arrange trees where links point from child to parent nodes, instead of the default parent to child direction.
Miscellaneous
Scheduling
The library registers the Calendar class as a web component. You can use the <mindfusion-calendar> tag to create the control.
When instantiated as a web component, the control creates required HTML elements as internal shadow DOM. You can get the JavaScript object corresponding to a web component by calling the find method with id argument.
HTML
Copy Code
|
---|
<mindfusion-calendar id="calendar" style="height: 100%; width: 100%;"> </mindfusion-calendar> |
JavaScript
Copy Code
|
---|
var ms = MindFusion.Scheduling; calendar = ms.Calendar.find("calendar"); calendar.currentView = ms.CalendarView.SingleMonth; |
DataViews
The library registers the Grid class as a web component. You can use the <mindfusion-grid> tag to create the control.
When instantiated as a web component, the control creates required HTML elements as internal shadow DOM. You can get the JavaScript object corresponding to a web component by calling the find method with id argument.
HTML
Copy Code
|
---|
<mindfusion-grid id="grid"> </mindfusion-grid> |
JavaScript
Copy Code
|
---|
var dv = MindFusion.DataViews; var grid = dv.Grid.find("grid"); grid.model = new dv.ArrayModel(participants, columns, "index"); |