MindFusion.JavaScript Pack 2021.R2

Diagramming control adds support for TreeView nodes.
January 13, 2022
New Version

Features

Diagramming

  • ECMAScript 6 (ES6) modules, classes and properties - The source code has been refactored following ES6 standards, including modules, classes, properties and native collections.
    • ArrayList, Dictionary and Set classes from the MindFusion.Collections namespace have been removed and replaced by respective JavaScript native Array, Map and Set.
    • Get/set functions have been replaced by getter/setter properties, which should help you use the diagram API with the binding expressions of various JavaScript frameworks.
  • Diagram view - The Diagram control has been refactored into two classes.
    • Diagram is now just a model class that defines diagram structure and implements serialization. The new DiagramView class deals with rendering and user interaction.
    • You can show the same diagram in several views, each one rendering at different scroll positions and zoom levels.
    • The separation also makes it easier to use the diagramming API in node.js server code, avoiding the need to load DOM shim/polyfill packages.
  • TreeView nodes - Added TreeViewNode class for creating nodes that can display hierarchical data.
  • Print pagination - Added printPreview and print methods to DiagramView which let you export the diagram as a list of smaller images in an HTML page.
    • Supported options include printArea (defaults to the diagram's content bounds) and pageSize (defaults to the DiagramView's viewport).
  • Orthogonal layout - Added OrthogonalLayout class which implements an orthogonal graph layout algorithm.
  • Added new events
    • nodeSelecting, linkSelecting and selectionChanged events allow handling of selection interactions.
    • dataLoaded is raised when the diagram data is loaded from JSON or XML.
    • mouseWheel is raised when the user rotates the mouse wheel while the cursor is positioned over the diagram surface.
    • treeItemTextEditing and treeItemTextEdited allow handling of inplace-edit operations in TreeViewNode.
  • Miscellaneous
    • Clipboard methods now use modern Navigator.clipboard API when their systemClipboard argument is enabled.
    • Added the ability to rotate FreeFormNode instances.
    • ImageAlign now supports new FitLeft, FitTop, FitRight and FitBottom alignment styles, which resize image to fit node's boundaries and align it to respective border.
    • Added the mouseWheelAction property of DiagramView which lets you choose between Scroll (default) and Zoom as the default behavior of the control in response of a wheel event.

Scheduling

  • API Changes
    • JsScheduler source code has been refactored and is now dependent on the following MindFusion shared libraries: drawing, controls, common, and common.collections.
    • The distribution includes ES5-compatible scripts located in Scripts/umd folder, whose classes are exposed as members of global MindFusion namespace object.
    • The Scripts/esm folder contains ES6 code that lets you import the classes from respective modules.
  • To port a project that uses an earlier version of MindFusion.Scheduling to v.2.0:
    • For projects that access MindFusion namespace from the global namespace check the "Loading UMD namespaced scripts" section in "Getting Started" guide.
    • For projects that use module loaders, check the various "Loading ... modules" sections in Getting Started guide.
    • For TypeScript projects that access MindFusion namespace from the global namespace, add a reference to the common.d.ts and global.d.ts files.
  • Localization improvements - Calendar date and time localization can now be done via the CLDR locale data JSON distributions, instead of writing the "date" object in the localization file. You can continue using the localization files for string localization.

Mapping

  • MindFusion.Mapping source code has been refactored and is now dependent on the following MindFusion shared libraries: drawing, controls, common, and common.collections.

Virtual Keyboard

  • MindFusion.Keyboard source code has been refactored and is now dependent on the MindFusion common shared library.

DataViews

  • MindFusion.DataViews source code has been refactored and is now dependent on the following MindFusion shared libraries: controls, common, and common.ui.

Charting

  • MindFusion.Charting source code has been refactored and is now dependent on the following MindFusion shared libraries: drawing, controls, common, common.collections and gauges.
  • The FunctionSeries class represents a series that calculates its values from provided formula.
  • Area charts are now rendered relative to axis origin.

Gauges

  • MindFusion.Gauges source code has been refactored following ES6 standards, including modules, classes, properties and native collections. It is now dependent on the MindFusion drawing and controls shared libraries. Get/set functions are mostly replaced by properties.

MindFusion.UI

  • MindFusion.UI source code has been refactored and is now dependent on the following MindFusion shared libraries: drawing, controls, common and common.collections.
TreeView nodes

MindFusion.JavaScript Pack

Grids, Diagramming, Scheduling, Charts and UI for JavaScript apps.

Got a Question?

Live Chat with our MindFusion Group licensing specialists now.