MindFusion.JavaScript Pack 2025.R2

Released: Nov 5, 2025

2025.R2 中的更新

特性

Diagramming

  • Paged Containers
    • PagedContainerNode is a ContainerNode subclass that organizes its child nodes into a collection of pages, represented by ContainerPage objects. This allows for the creation of more organized diagrams where nodes can be grouped into logical views within a single container. Only the nodes belonging to the currently active page, specified by currentPage property, are rendered and participate in user interactions.
    • Navigation between pages is handled by scroll arrows in the caption bar, allowing users to cycle through the pages sequentially. For faster access, users can also double-click the container's caption to open an in-place combo box listing available page titles, enabling direct navigation to any page.
  • Pattern Router
    • New PatternRouter class routes links by applying patterns of segment and turn sequences and accepting them when resulting paths do not cross nodes.

Composite Router

  • The CompositeRouter class lets you chain link routers (objects implementing the Router interface) so that a link passes through the sequence until it gets routed successfully. Diagram's default router is now set to a CompositeRouter instance containing a PatternRouter and Router sequence. This applies the several standard pattern paths when possible, and otherwise routes links using a simple cost-minimizing router.

Grid Layout

  • The GridLayout algorithm arranges diagram nodes in a grid, keeping connected nodes close to each other.

Miscellaneous

  • startNode and endNode properties added to LayeredLayout. They let you specify which nodes to place on first and last layer, instead of relying on the algorithm selecting them automatically.
  • The crossingCost property of GridRouter implements penalty cost for link crossings. It's applied only when routing multiple links at once, e.g. when running routeAllLinks.
  • The bringIntoView method scrolls the diagram view to make the specified item visible.
  • The allowLinksRepeat property of Diagram specified whether more than one links can connect the same origin and destination diagram nodes.
  • controlUnloading and controlUnloaded events let you handle the control being unloaded from page DOM, or disposed by wrapper components for supported frameworks (e.g. by ngDestroy hook in Angular).
  • Improved BPMN shapes.

API Changes

  • Default Diagram.linkRouter changed from Router to CompositeRouter instance.

Scheduling

  • Localization Improvements
    • MindFusion.Scheduling now uses the Intl API for localized formatting of dates and times. All properties of the Calendar control, that used to contain a format string, should now be set to an Intl.DateTimeFormat options object.
    • The following list contains the fields and values that can be set in the options object:
      • weekday: 'narrow' | 'short' | 'long'
      • era: 'narrow' | 'short' | 'long'
      • year: 'numeric' | '2-digit'
      • month: 'numeric' | '2-digit' | 'narrow' | 'short' | 'long'
      • day: 'numeric' | '2-digit'
      • hour: 'numeric' | '2-digit'
      • minute: 'numeric' | '2-digit'
      • second: 'numeric' | '2-digit'
      • timeZoneName: 'short' | 'long'
      • timeZone: 'Asia/Shanghai'
      • hour12: true | false
      • hourCycle: 'h11' | 'h12' | 'h23' | 'h24'
      • formatMatcher: 'basic' | 'best fit'
  • Miscellaneous
    • repainted event raised after Calendar updates its DOM elements, letting you adjust their content or layout.
    • realGroupType property returns the effective GroupType.
    • buttonClick event now also raised when calendar is disabled (enabled property set to false).
    • Improved React wrapper component in sample projects.

Virtual Keyboard

  • Layout Ring
    • You can now define a sequence of keyboard layouts that can be cycled through by setting the layoutRing property. Add LayoutRingKey to your layouts to let users cycle through the list. Layouts from this list are automatically assigned to layout when user presses the LayoutRingKey, or if you call the selectLayout method from code.
    • The KeyboardLayout class includes two new properties to control the appearance of the LayoutRingKey: image and label. One of these is displayed by the key to indicate the next layout in the cycle, following this priority:
      • If the next layout has a non-null / empty image property, that image is displayed.
      • If there is no image assigned to the layout, but the label property is set, that text is displayed as key's content.
      • If neither image nor label is set, the key will display the Unicode keyboard symbol (U+2328) as a fallback.

修補程式

Diagramming

  • Miscellaneous
    • Spatial indexing fixes.

Scheduling

  • Miscellaneous
    • Fixed exceptions when saving Schedule with recurrent events to JSON.
    • 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.