FontoXML 7.2.0 (April 12, 2018)

New functionality

  1. The FontoXML development server now sends cache headers by default for static resources such as assets and the FontoXML script files. Run npm run server -- --help for details on command line switches that control this behavior.

  2. Together with FontoXML SDK version 7.2.0, we are releasing version 1.1.0 of the FontoXML content quality app. See the corresponding release notes for more details.

  3. This release includes a new popover UI for setting the column widths on a table. See the open-table-column-sizing-popover operation for details. This can be used with any table that supports proportional column widths. For CALS tables, the fontoxml-table-flow-cals add-on has been updated with the required additional configuration necessary to use this feature.

  4. The fontoxml-special-characters add-on now includes a new open-special-character-modal that can be used to open the modal without directly inserting the result.

  5. The FxReferencePopover now also passes the full reference as an argument to its resolveReference prop. This can be used in cases where additional information returned by the CMS when resolving a permanent reference is required in order to successfully resolve its target.

  6. The new fonto:node-id XPath function can be used to obtain the NodeId for a given node. Please refer to its documentation for appropriate use cases.

  7. It is now possible to use ObserveQueryResults to observe XPaths resolving to array and map values.

  8. The onChange prop for all FDS form fields is now called whenever the validate prop function is called, and the 2nd argument to onChange is now the result of the validate function. This happens whether you placed the field inside a Form or not. Previously, validate was only called when the field is inside the Form and onChange was only called with a single argument, the current value. Form fields outside a Form will automatically render any feedback below the field if the validate prop is set.

  9. The new registerEditorStatusbarContent API can be used to add extra components to the right side of the status bar. If your application used the (unsupported) status-bar-extra-buttons-component-name configuration value, please update your configuration to use the new supported API.

  10. Popover now supports an onRef prop.

  11. RadioButtonGroup and CheckboxGroup now both support arbitrary content (ReactNode/JSX) as the value for any item's label property. If you use a string, a Label will be used automatically, otherwise, your content will be rendered directly in place of the Label.

  12. TextLink's icon now render in the same fontSize and lineHeight as the label of a TextLink.

  13. We've exposed a previously internal FX component called FxOperation. Use this component to use operationState and/or execute an operation from inside (React) UI when no other available FX component suffices. See the API docs for more details.

  14. The new fonto_upper_case_first_letter formatter can be used in localizable (MessageFormat) strings to upper-case the first letter of an argument. This can be used, for instance, in translations where a normally lower-cased argument needs to be the first word of a sentence.

  15. The markup label of the reference in the CrossReferencePopover is now usable in localizations in addition to that of the reference's target. If the normal markup label is not sufficient, a custom label can be specified in the popover's data.

  16. The new disableOperationIfDocumentIsNotEditable transform can be used to disable an operation if a given document is not editable.

  17. The new initial-editor-sidebar-tab-id configuration value can be used to automatically open a sidebar tab when the editor is loaded. We encourage replacing older code that served a similar purpose by executing the open-ui-pane operation from the initialDocumentsLoadedNotifier.

Resolved issues

  1. Pressing tab while a modal is open can no longer move focus to the toolbar or other editor UI behind the modal.

  2. The ReadOnlyBlueprint interface was missing the namespace-related getAttributeNS and getAttributeNodeNS methods. These have now been added.

  3. The setAttributeNS method on Blueprint no longer requires the given prefix to be registered with the NamespaceManager.

  4. An issue has been resolved where the visualization of table header rows was not updated correctly in certain table configurations, including cases where a header is defined by setting an attribute on the row element.

  5. The fonto:markup-label XPath function now returns the given node's nodeName instead of the string "undefined" if the node does not have a markup label configured for it.

  6. A few issues have been resolved where the selection in the XML source view was drawn incorrectly or where the XML source view remained too large when elements had been deleted.

  7. We have identified and resolved an issue where a combination of styles used for the editor content and source view caused browsers to experience large slowdowns if either contained a large document. This could, for instance, cause opening drops from the toolbar to take up to several seconds in some cases, most noticeably while the XML view is open.

  8. We have resolved an issue where attempting to observe an XPath query containing "/@" failed with an error.

  9. An issue with the validation of the gMonthDay schema type has been resolved.

  10. We've resolved a few issues where selection changes did not correctly scroll the selection into view.

  11. Native browser hotkeys are no longer blocked while a modal is open.

  12. Pressing backspace (OSX) or delete (Windows/Unix) after clicking on an element breadcrumb now removes the selected element as expected.

  13. Moving an item in the structure view no longer causes all items to automatically expand.

  14. The set-table-column-widths operation requires a tableNodeId, but was actually implemented to expect a node inside one of the table's cells, causing it to fail when given an actual table node. This has been corrected.

  15. The getHighestFormFeedbackConnotation helper now works correctly for all four connotations (error, warning, success and info).

  16. Checkbox icons no longer render a margin-top (s) above them if the checkbox has no label. This helps when aligning checkbox icons.

  17. We fixed an issue where the masthead's overflow slider buttons did not correctly appear for tabs with dynamic content such as an FxMultiOperationsButton.

  18. The FxOperationsSplitButtonWithDropMenu now correctly renders its button as active/selected when the associated operation (state) is active.

  19. We fixed an issue where a document preview (used in various browsers) seemed to allow selecting multiple elements when combined with fontoxml-single-document-hierarchy, as the previous selection was not cleared when selecting a node in a different sheet frame.

  20. When using a Single- or MultipleAutocomplete or similar components that open a Drop inside a Popover, the popover no longer closes when clicking on an item inside the drop.

  21. Element menus and other components that use the positioner (any kind of Drop) are no longer unnecessarily small on smaller screens.

  22. The 7.1.0 release introduced an issue that made it very difficult to place the cursor in many text input fields in Edge. This has been resolved.

  23. In some situations, increasing the number of header rows in a table did not correctly account for spanning cells, resulting in invalid tables. This has been resolved.

  24. Column widths for tables that contain a multiple-column-spanning cell in the first row are now rendered correctly.

  25. Column widths for CALS tables with the width set to * are now rendered correctly.

  26. CVK configuration rules with selectors that access sibling nodes could cause errors in the structure view. This has been resolved.

  27. We fixed a problem where tooltips initiated from a modal would render behind the modal. This resulted in the tooltip being (partially) hidden behind the background color of the modal.

  28. We have resolved several inconsistencies with how and when selected elements are scrolled into view, both in the content and in the XML source sidebar.

  29. When pressing the left or right arrow key on a completely selected title element (or other element with no valid position on the indicated side), the selection now correctly collapses to a cursor in all cases.

  30. The gradient used when the overflow sliders used in the masthead and the sidebar cut off content now display correctly in Safari.

  31. We've added a few quotation marks in the 'How to get...' code samples in our API documentation, so that these actually work now.

Other improvements

  1. The default value of showWhen for elements configured as an inline link is now set to 'always' instead of 'ancestor-has-focus', causing links in unfocused documents to always appear blue.

  2. If the source element for a documents hierarchy reference (e.g., a DITA topicref) has contextual operations, the corresponding section in the structure view's dropdown menu now shows the markup label of the reference element above these operations. Previously, only the markup label for the target node (e.g., the DITA topic pointed to by the topicref) was shown above its contextual operations.

  3. The CMS connectors API previously defined an asset GET endpoint that could be used to download the full version of an image or other asset. However, there was no public API available to ever use this endpoint, nor was it ever used by the FontoXML platform or add-ons. Because of this we are deprecating this endpoint.

  4. In order to catch common misspellings, we've added a check that requires all operations to have either a "steps" or an "alternatives" property. If you really need an operation that does nothing, either use the built-in do-nothing operation, or set steps to an empty array.

  5. The modal shown when using pleaseWaitMessage in a operation step now only shows if the step takes at least 768ms to complete. This prevents most cases where operations that complete quickly display the modal too briefly to read its message.

  6. Some old code to set table borders using internal (unsupported) API accidentally sneaked into our open sourced CALS table support add-on. We've now replaced this with a new custom mutation, based on supported API, that better reflects current best practices.

  7. The existing supported-browsers configuration value has been updated to allow you to specify the minimum version of a browser.

  8. This release upgrades the FontoXPath XPath engine to version 2.7.10. See its release notes for details.

  9. Dom validation errors are now serialized as an XML string, instead of JsonML. This makes configuration problems easier to track down.

  10. Various bits of the FontoXML UI are now a lot smarter about updating themselves only when necessary. This includes, but is not limited to, the structure view, masthead and element breadcrumbs. Compared to earlier releases, the editor should be more responsive when making changes or just moving the cursor around while these UI elements are visible.

  11. We've made several improvements to the way positions are updated when the document is changed. This improves performance in cases where there are lots of squiggles, such as spelling or Content Quality suggestions or tracked changes.

  12. ...and several other smaller performance-related improvements!