Skip to content

v0.34.0

Choose a tag to compare

@AlexeyMz AlexeyMz released this 25 Mar 20:37
· 34 commits to master since this release

馃殌 New Features

  • Support proper graph manipulation on touchscreen devices:
    • Allow to move and resize elements on touchscreen;
    • Allow to manipulate link vertices on touchscreen (only in Firefox for now due to bug);
    • Allow to select multiple elements with Selection with touch when CanvasApi.pointerMode is selection;
    • Allow to establish new links with SelectionActionEstablishLink on touchscreen;
    • Allow to move link source or target with LinkActionMoveEndpoint on touchscreen;
    • Make ZoomOptions.requireCtrl default to false to zoom without holding Ctrl i.e. like on a map.
    • Enable showPointerModeToggle on ZoomControl by default (can be disabled by passing false).
  • [馃挜Breaking] Extend and make optional built-in property editing form support:
    • Extract property editor inputs into separate entry point @reactodia/workspace/forms to be able to use external forms implementation without always bundling the built-in one;
    • Provide InputText, InputList and InputSelect basic form inputs;
    • Provide InputFile form input with MemoryFileUploader implementation for FileUploadProvider interface;
    • VisualAuthoring now requires propertyEditor prop with changed contract, which have to return an editor component in all cases.
    • DefaultPropertyEditor in combination with imported inputs provides default (built-in) property editing experience, but custom editors can be implemented with EntityEditor and RelationEditor "provider" components.
  • Allow to customize how resource anchors and asset URLs (e.g. images or downloadable files) are resolved via DataLocaleProvider.{prepareAnchor, resolveAssetUrl}:
    • Resolve anchors and image thumbnail URLs in StandardEntity, ClassicEntity and SelectionActionAnchor;
    • Add useResolvedAssetUrl() helper hook to simplify resolving asset URLs from components;
  • Support conditionally rendering WorkspaceLayout* child components by passing null instead of a child to remove it:
    • Allow to hide left and right panels in ClassicWorkspace by passing null to the corresponding props;
    • Allow to provide className and style to WorkspaceLayout* components.
  • Add Translation.textOptional() to support common translation string defaults with ability to provide separate string for each case:
    • Use search_defaults.input.placeholder for a search input field;
    • Use visual_authoring.dialog.apply.{label, text} for an "Apply" button in VisualAuthoring dialogs.
  • Allow to customize default dialog sizes for built-in dialogs and persist user-changed sizes with dialogSettingsProvider prop on Workspace:
    • Default provider persists user-changed dialog sizes in-memory based on dialogType.

馃拝 Polish

  • Expose useAsync() utility hook to simplify data loading from via a single Promise-returning task.
  • Expose useProvidedEntities() utility hook to have a simple way to load non-canvas entities with cache from a DataProvider.
  • Provide onlySelected property to link templates the same way as for element templates.
  • Allow to configure whether ClassTree and SearchSectionElementTypes tree items should be draggable.
  • Allow to configure SparqlDataProvider.lookup() via lookupQuery and filterInnerPrelude settings.

馃敡 Maintenance

  • Preparations to extract generic scrollable paper component Paper from diagram-specific state and logic:
    • Replace reactodia-paper-area CSS class by reactodia-canvas-area and reactodia-paper.
    • Deprecate CanvasMetrics.area in favor of CanvasMetrics.pane.
  • Remove AbortScope utility class (can be trivially replaced by the built-in AbortSignal.any() function).

Link to the CHANGELOG v0.34.0