Fonto 7.7.0 (June 20, 2019)

New functionality

  1. We completely overhauled the way Fonto detects your input in order to properly support IME (Input Method Editor) input. This means it's now possible to type Chinese, Japanese and many other scripts the way you're used to. Additionally, many OS-specific ways of inserting special characters now work as well.
  2. This release of Fonto Editor introduces an all new version of its build tools, which are used for running development builds and creating production builds. This version brings much-desired improvements such as faster editor reloads during development and support for modern JavaScript. Please see the Upgrade from 7.6 to 7.7 page for details and upgrade instructions.
  3. This release introduces an optional new way to display and modify the state (such as saving or locking) for individual documents in multi-document editors. For visual examples and more information, see our guide Configuring a SheetFrameHeader.
  4. The save button received an update and now highlights errors if saving does not work as expected.
  5. It is now possible to configure Fonto to allow pasting images from other applications. Refer to the Configure pasting external images into Fonto guide for more details.
  6. The new addReducer API provides a way to define and display counters that work across document boundaries. Please refer to Create a numbering for nodes for details.
  7. We've added auto capitalization for new sentences. Don’t worry if you forget to start your sentence with a capital letter, Fonto will fix that for you. If you don't want the capital letter, you can hit "undo" or backspace.

  8. We've added new configuration values to disable the XML Source and Outline sidebars in configurations where their presence may need to be toggled at runtime.
  9. Document History now has an API to get the latest revision identifier for which all changes have been marked as seen.
  10. It's now possible to configure ID generation to allow an ID to be re-used when there is no longer any other element in the document that uses that ID value. Refer to the documentation for the unique-id-configurations configuration value for details. This has effect on whether IDs are regenerated when cutting and pasting elements with IDs.
  11. The new enable-accept-and-reject-changes configuration value can be set to false to disable the accept and reject buttons in the cards and in the toolbar for changes tracked by the fontoxml-track-changes add-on.
  12. The XHTML table implementation now respects align and valign attributes defined on col elements.
  13. The new fonto:selection-common-ancestor XPath function can be used from any XPath to access the current selection's common ancestor container.
  14. The new 2019-06-26_08-36-08_usexpath @ fontoxml-fx/src/usexpath.jsx React hook simplifies using the current value of an XPath expression in React components that use the new hooks API.

Resolved issues

  1. A command or custom mutation step that fails due to being disabled will now prevent subsequent operation steps from being executed. When this happens, the promise returned from operationsManager.executeOperation is rejected with an undefined value, similar to other cases where an operation is cancelled. In previous releases Fonto would continue to execute other steps, even though the document had not been modified.

    Please check any operations in your application that perform processing after changing the document and reorder their steps if necessary.

  2. Attributes are now validated as part of any operation rather than afterwards. Previously, operations resulting in invalid attribute values could trigger the "Operation failed" modal. These operations should now be disabled as with any other validation error. To enable them, make sure the initialData of the operation provides valid values for required attributes.
  3. Fonto now supports the allowance of specific namespaces using xs:anyAttribute. In previous releases, the presence of xs:anyAttribute would allow any namespaced attribute. We now also support the fixed attribute.

    Because of these changes, a schema re-compile is required when upgrading to 7.7.

  4. We improved the way nested lists are handled when pasted from other applications.
  5. Fixed a number of issues where, in some cases, the editor would fail to display the gray "unfocused" selection, or where the selection shown in the editor would otherwise not correctly reflect the actual selection.
  6. Fixed a few issues where focus would sometimes remain in the toolbar instead of moving back to the editor after an operation or when clicking a placeholder.
  7. Resolved an issue where the cursor and/or inserted text could move unexpectedly when typing near a comment that has no highlighted text.
  8. Resolved an issue where CALS tables with invalid overlapping spans would not be detected as invalid and could cause display issues.
  9. Resolved an issue where operations that do not contain steps that affect operation state could become disabled permanently in certain cases.
  10. In previous releases, attributes could erroneously be set to non-string values. This often caused unexpected behavior and is no longer allowed. To avoid breaking applications, stencils will now ignore attributes set to undefined.
  11. Fixed a rare issue where comments and changes could be shown in the wrong order.
  12. Resolved an issue where registering contextual transformers did not work as intended in applications that use XML namespaces.
  13. Resolved an error that could occur when dragging items over a mix of dom-based and hierarchy-based siblings in the Outline sidebar.
  14. Resolved an issue where attempting to release a lock could fail if another document encountered an error during saving.
  15. Resolved an issue where pasting from external sources could create schema-invalid content.
  16. Resolved an issue where the cursor could end up in an invalid position after deleting a selection.
  17. Resolved an issue where in some cases text changes could be made in read-only documents. These changes would only affect the displayed document and would not be saved.
  18. Resolved an issue where attribute values set using the button-with-value-from-modal field were not saved when the modal was submitted.
  19. Resolved an issue where using VirtualList with animate set to true could sometimes crash the application.
  20. Resolved an issue where clicking the breadcrumbs overflow menu could crash the application.
  21. Fixed a number of cases where UI text could not be localized.
  22. The styling for configureAsDefinitionsTableRow now also displays correctly when mixed with other families in the same container.
  23. The open-table-column-sizing-popover operation is now correctly disabled if the corresponding table is in a read-only element.
  24. Worked around an issue that could cause unexpected whitespace to appear in elements nested inside families that use large widgets in their blockBefore / blockAfter / blockOutsideBefore / blockOutsideAfter widget areas. Unfortunately, this work-around only works for Chrome and Firefox. Edge and Safari may still show unexpected whitespace.
  25. For backwards compatibility, the development server's implementation of the document endpoints originally allowed the file extension to be omitted, as well as an optional "/assets/documents" prefix in the document ID. These allowances caused various issues and have been removed.

    If your example content used for development relies on these features, please edit any references within to include only the path relative to the files folder and include the file extension.

Other improvements

  1. We made some pretty sweet improvements to splitting, merging and modifying lists and list items using backspace, delete and enter.

  2. It is no longer necessary to define your own "tab" and "shift-tab" operations. These operations are now provided by Fonto and will automatically adapt to your configuration to include list indentation, navigation and creating new rows in tables. To add your own behavior to these shortcuts, you can use the OperationsManager#addAlternativeOperation method.

    You should remove any existing "tab" and "shift-tab" operations from your application to avoid any conflicts with these new operations.

  3. We have re-implemented Find & Replace with a focus on performance. Most  operations are now a little faster when there is no active search, and running a big search can no longer temporarily freeze the browser. We've also made a number of improvements: moving the cursor now continues the search from that point, and searching for whole words now works as expected with accented and other characters.
  4. Similarly, we have also streamlined our implementation of the Outline sidebar to make its impact on performance much less noticeable, especially in situations with very large hierarchies.
  5. In configurations that use multiple hierarchy nodes to refer to different parts of the same document, it is no longer necessary to use the visibleChildSelectorOrNodeSpec property to prevent rendering children that are rendered elsewhere. Nodes that are directly referenced by the hierarchy are now automatically skipped when rendering their parent.
  6. Scrolling a domNode in view using the ScrollIntoViewManager or using related operations, with alignTo set to "center" now scrolls the item into the top of the view when the item is larger than the viewport.
  7. TextLink now accepts a userSelect prop to control whether its text can be selected.
  8. The MultipleValuesInput now has a new removeButtonTooltipContent prop to set the tooltip for the trash can. Defaults to "Remove this value from the list." to make it clear it only removes a single value from the input.
  9. The CalendarInput now has a new displayClearButton prop which controls whether or not to display the clear button ([X] icon). This prop defaults to true.
  10. Chips can now be deleted when pressing backspace or delete instead of enter when a Chip has focus.

  11. Single- and MultipleAutocomplete now allow you to toggle their Drop by clicking on the angle up/down icon (or their border), regardless of whether the Drop is opened or not. Clicking on the text input also toggles the Drop if there is nothing typed in the text input yet.

  12. The FadeIn component has been removed. Unfortunately, this internal component managed to sneak into our open-source image browser modal. If your application contains a modified version of this add-on, please refer to the upgrade instructions for details on how to update your code.
  13. The Modal example in the FDS playground now renders correctly again.
  14. The experimental registerXQueryModule API has been removed. Any XQuery module placed as an .xqm file in the src folder of any included package is now registered automatically.
  15. This release includes FontoXPath 3.6.0, with various performance and stability improvements.
  16. And various smaller improvements to performance and stability all across Fonto...