All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
0.12.0 - 2020-02-05
- Move toolbar to paper viewport as a widget.
- Add handling for cancelled MetadataApi or ValidationApi requests.
- Wait and show spinner in EditLayer until metadata requests finish.
- Optimize authoring mode performance on large diagrams.
- Update node-sass to work to build on newer Node runtimes (> 8.x).
- Avoid moving the canvas in
Workspace.showWaitIndicatorWhile()
. - Set progress bar color to red when in the error state.
- Fix losing links from selection on changing graph content (adding or removing elements or links).
- Prevent canvas scroll jump when dropping URIs onto canvas (e.g. from class tree).
0.11.0 - 2019-12-04
- Ability to externally fetch labels for resources in
SparqlDataProvider
usingprepareLabels
option. - Options to override schema info queries (classes, link types, datatype properties)
in
SparqlDataProviderSettings
. - Support for "direct" link and property configurations in
SparqlDataProviderSettings
, explicit domain types matching and experimental "open world" mode for link and property configurations. - Support for changing IRI of existing entities in authoring mode.
- Display link type IRI as default title for link labels.
- [Breaking] Made
LocalizedString
compatible withLiteral
interface from RDF/JS Data Model specification. - [Breaking] Replaced separate authoring event types for deleting entities
and links by
deleted
flag in corresponding events, replacedAuthoringState
representation by only using authoring event index. - [Breaking] Renamed
SparqlDataProviderSettings.filterTypePattern
binding${elementTypeIri}
->?class
. - [Breaking] Removed
LinkConfiguration.inverseId
.
- Stale
ElementLayer
rendering after callingimportLayout()
if diagram already contains elements with the same IDs. - React 16.x warning about uppercase characters in
data-linkTypeId
attribute name. SparqlDataProvider
only addsextractLabel
pattern to queries if text token is provided when searching/filtering elements.
0.10.0 - 2019-09-30
- Custom element state in the serialized diagram layout via
elementTemplateState
property. - Enhance standard template with ability to "pin" properties to display them even in collapsed state.
- Options to override
selectLabelLanguage
to customize label language selection based on user-preferred language.
- [Breaking] New look for collapsible sidebar panels,
remove sidebar expand/collapse state props from
ToolbarProps
. - Use first character of types instead of label as thubmnail fallback in standard element template.
- Highlight single-selected nodes with additional border in Halo.
- Changed the look for temporary elements in authoring mode.
- Incorrectly overlapping authoring status overlays of elements and links (new, changed, deleted, etc).
- Scrolling to canvas location on navigator click when there are any vertical
scrolling on a page (
Window.pageYOffset
is not zero). - Bias in layout algorithms making diagrams look too vertical.
- Drag'n'drop button to create entity from class tree in Firefox.
0.9.12 - 2019-08-27
- Option to collapse diagram navigator by default.
- [Breaking] decoding href value of anchor before calling UI callback.
- Selected elements on a diagram are always brought to front.
- Loading class tree is now done in a lazy way and separately from importing diagram layout.
- Changed copyright due to IP transfer to metaphacts GmbH.
0.9.11 - 2019-07-25
- Add workaround for invalid rendering of items in scrollable containers in Chrome.
0.9.10 - 2019-06-28
- Error in authoring mode when one of the ends of new link doesn't have a label.
- Export SVG by bundling only CSS rules applied to child element on the diagram.
0.9.9 - 2019-06-11
- Allow to change IRI of new entities via custom editor.
- Separate close button to every dialog.
- [Breaking] Require
generateElementIri
to be implemented inMetadataApi
. - Allow to choose link direction in "edit link" dialog.
- An error while calculating class stats with cyclically referenced classes.
- Invalid authoring state after creating new entity by dragging from another one.
- An error while rendering additional labels for link properties.
- Prevent reusing the same "edit entity" form after switching to another entity.
- Support multiple values of a property in
RdfDataProvider
.
0.9.8 - 2019-03-26
- Custom link state in the serialized diagram layout.
- Link "renaming" using custom link template.
- Ability to highlight diagram elements using
DiagramView.setHighlighter()
. - Expand/collapse button to the Navigator.
- [Breaking] Pass IRI click intent to the
onIriClick
handler. - Navigator now displays only a part of the diagram area with elements and links, instead of the full scrollable pane.
- Resizing dialogs with custom size specified, resizing handle style in IE11/Edge.
- Creating new element instead of showing existing one after drag'n'drop from class tree to create a new entity.
- Mismatch between routed link geometry and status overlay for the same link that sometimes happens in the authoring mode.
- Support of international IRIs in
SparqlDataProvider
and drag'n'drop. zoomToFit()
for zero bounding box.- Trigger
historyChanged
event in the default no-op command history. - Diagram zooming with Control+Wheel which was broken with Chrome 73, see facebook/react#14856 for details.
0.9.7 - 2018-12-18
- Internal support for animated paper operations.
- [Breaking] Generate element and link IDs as full IRIs (fixes issue with getting relative IRIs when framing JSON-LD layout data).
- Missing prefixes for the blank nodes query in
SparqlDataProvider
. - Duplication of link types in
RdfDataProvider
. - Search by text in
RdfDataProvider
. - Mixed up datatype and object property icons.
- Missing parents for classes with multiple parents in
SparqlDataProvider
. - Stale validation state when removing element with new links, deleting target element and incorrect highlighting for deleted links.
0.9.6 - 2018-11-10
- Ability to return validation result for outgoing links when validating an element.
Cancellation
andCancellationToken
to exported API.- Auto-scroll to contextual menu when it appears in the viewport.
- [Breaking] Replaced
DiagramViewOptions.typeStyleResolvers
option with singleWorkspaceProps.typeStyleResolver
function; same forlinkTemplateResolvers
andtemplatesResolvers
. - Display link authoring state using status label with cancel action.
- Prevent closing "Edit entity" dialog when clicking outside.
- Link style conflicts when using multiple
Workspace
instances on a page. - JSON-LD context definition (now using
@vocab
for element IRIs). - Incorrectly displayed icons and non-working drag and drop from class tree in IE11.
- Regexp search for some SPARQL endpoints in
SparqlDataProvider
. - Inability to redefine functions for custom toolbar.
0.9.5 - 2018-10-16
- Missing localized labels on class tree initialization.
- Resetting language on
Workspace
update in uncontrolled mode.
0.9.4 - 2018-10-16
- Resetting temporary elements and links in authoring mode when changing selection.
- Missing validation on authoring changes.
- Missing "add to filter" button in Firefox.
- Duplication of link type labels in
SparqlDataProvider
.
- [Breaking] Intro.js-based tutorial.
- Dependency on jsTree for class tree (greatly reduced bundle size).
0.9.3 - 2018-09-20
- Ontodia watermark to diagrams.
- Using CircleCI instead of Travis for builds.
- Updated dependencies
- Force layout for nested elements.
0.9.2 - 2018-09-05
- "Clear All" button to the toolbar.
- "Jump to resource" button to the halo.
WorkspaceProps.hideScrollBars
andZoomOptions.requireCtrl
options.- Workspace events on various user actions and operations completion.
- [Breaking] Export and import diagrams using new
SerializedDiagram
interface, compatible with JSON-LD. - Select a range of items in a search result using Shift and Control keys.
- Limit zoom to fit level by
ZoomOptions.maxFit
.
0.9.1 - 2018-07-20
- Show halo for links only in authoring mode.
- Wait until element models loaded when importing layout.
0.9.0 - 2018-07-19
- Data authoring capabilities (see
AuthoringState
,MetadataApi
,ValidationApi
). - Support for "pinned" paper widgets (which doesn't move on paper scroll).
- Tooltips with IRIs to Classes, Instances, Connections and standard template.
- Patterns for datatype properties through
propertyConfigurations
property ofSparqlDataProvider
configuration.
- [Breaking] Introduce
AsyncModel
derived fromDiagramModel
managing all async operations (e.g. loading labels, links, etc). - [Breaking] Extract standard widget handling (halo, dialogs) into
EditorController
. - [Breaking] Use image URLs instead of CSS classes to customize icons.
- Made
inverseOf
optional and allow multiple items with sameid
orinverseId
inlinkConfigurations
property ofSparqlDataProvider
configuration. - Made look and feel of controls and templates more modern.
0.8.1 - 2018-07-02
- [Breaking] Introduce nominal types for element, class, link type and property type IRIs.
- [Breaking] Assumption "element ID equals its IRI" when dealing with sources and targets of links.
- Non-updating link labels when changing the language.
- Extracting link and property types metadata for multiple languages.
- Filtering in Connections menu for upper-case text.
- Increase default inter-node distance for force layout.
0.8.0 - 2018-04-16
- Nesting (grouping) elements on diagram using
groupBy
option and<EmbeddedLayer />
element in custom templates. - Buttons to toggle visiblility of left and right panels.
renderTo
function to create Workspace using compiled in bundled mode library.- Separate library bundle for IE11 compatibility (when compile with
SUPPORT_IE
flag). - Command history API hooks with
CommandHistory
. - Blank nodes support to
RdfDataProvider
.
- [Breaking] Optimize
SparqlDataProvider
: changeelementInfoQuery
from SELECT to CONSTRUCT query, extractlinkTypesOf
statistics into separatelinkTypesOfStatsQuery
. - [Breaking] Throw exception instead of returning null or undefined when fetching
error happens in
RdfDataProvider
. - [Breaking] Replaced JointJS rendering engine with our own React-based implementation.
- [Breaking] Replaced Backbone property and event system with native class properties and composition-based event emitter implementation.
- [Breaking] Generate placeholder data only when rendering, e.g.
Element.data.label
will be empty until element info will load. - [Breaking] Split up
isViewOnly
option intohideToolbar
,hidePanels
andhideHalo
. - Simplify overriding default toolbar with a custom one by providing default callbacks in props.
- Removed default "checkboard" background in the diagram area.
- Replace default templates with unified
standard
template, removed special templates for person and organization. - Limit maximum number of connected elements in Connection menu to 100.
stroke-dasharray
style override for link labels.- Error when RDF data storage returns
undefined
statements. - Drag and drop from class tree in Safari.
- Missing "All" entry in Connections menu when there are two connections with the same ID in the list.
0.6.1 - 2017-10-17
- Property suggestion handler for scoring properties.
- Ability to use custom toolbar for a workspace.
- Ability to use turtle (
.ttl
) file as diagram source.
- Collapsing margins of scrollable diagram area in Chrome >= 61.
0.6.0 - 2017-09-19
- RDF data provider with multiple parsers.
- LOD data fetching for RDF data provider.
- Composite data provider to combine results from multiple data providers.
- Ability to specify RDF pattern to use as a link on a diagram with
SpaqlDataProvider
.
0.5.3 - 2017-08-23
- Unpredictable display language selection behaviour.
- Blank nodes are no longer displayed in class tree in default configuration.
0.5.2 - 2017-08-17
- Safari bug preventing displaying class tree workaround.
0.5.1 - 2017-08-04
- No element thumbnails issue when trying to export to PNG even with CORS-enabled images.
0.5.0 - 2017-08-04
- Blank nodes and RDF lists support to
SparqlDataProvider
. - Zoom customization props and event.
- Try to load images using crossorigin='anonymous' if possible to be able to export diagram with pictures to PNG.
- Hide save button if
onSaveDiagram
callback isn't provided in props. - Fix paper initialization error in Firefox.
- Wrong exported file extension when click on "Export PNG" after "Export SVG" or vice versa.
- [Breaking]
labelProperty
option andrefElement*
settings fromSparqlDataProvider
. UsedataLabelProperty
setting and overridecreateRefQueryPart()
instead. - [Breaking]
handlebars
dependency with ability to display Handlebars-based element templates; now every element template is React-based.
0.4.1 - 2017-07-18
- Support for IE11 (without exporting to SVG/PNG).
- Workspace API for external toolbar.
- Support for DBPedia Sparql endpoints.
- Link direction in Connections menu and Instances panel.
- Support for properties on links.
centerTo()
and language props to Workspace.
- [Breaking]
DiagramModel.requestElementData()
don't requests for links. - [Breaking] Connected links data cleared from model on element remove.
- [Breaking] Replaced
WikidataDataProvider
with extensive options forSparqlDataProvider
- [Breaking] Introduced
linkElements()
and link direction inDataProvider
. - [Breaking] Simplified
GraphBuilder
interface. - Replaced
foreignObject
-based element rendering with overlayed HTML elements. - Filter non-left mouse button clicks on paper.
- Automatically set link type visible when adding elements through Connections menu.
- Tutorial don't automatically show up on a first visit by default.
- Pan canvas without requiring to hold any modifier keys.
- Prevent overlapping of multiple links between a pair of nodes and when source and target is the same node.
- Make right panel with link types closed by default.
- Inconsistent elements and links rendering between editor and exported SVG.
- Paper always including initial canvas area when adjusting size to content.
- Rendering
Halo
in a wrong place when paper origin changes. - Non-scrollable Connections panel in Firefox and IE11.
- Lost scroll position in Instances panel on 'Show more' button press (introduced in 0.3.8).
- Missing localized labels with different languages for classes.
- Drag and drop classes from tree in Opera.
- Forward outer React context to element templates.
- Support SPARQL endpoint URLs with query params.
0.3.8 - 2017-01-24
- Saving to/loading from LocalStorage examples.
- [Breaking] Replaced DiagramModel.importLayout()'s
preloadedLinks
parameter withvalidateLinks
: when specified, marks all links from layout aslayoutOnly
and requests diagram links at the end of importing process. - Diagram content now centered at paper after performing force layout.
- Updated to recent react typings and fixed relevant errors
- Sorting elements properties by label.
- Placement of newly added from Connections popup elements.
- Lost links geometry when importing a layout.
- [Breaking] Non-expiring "cache"
DiagramModel.elements
, replaced bycells
/elements
/links
/getElement
accessors. - [Breaking]
presentOnDiagram
property from Element: now element is present if it's in a graph, otherwise it's considered to be absent.
0.3.7 - 2017-01-12
- Select/deselect all elements checkbox in Connections popup.
- Too close zoom to fit on diagrams with small number of elements, making elements unnessesary big.
0.3.6 - 2017-01-11
- Broken attachment of links to nodes when loading a diagram.
0.3.5 - 2016-12-29
- Ability display labels for element properties by implementing
DataProvider.propertyInfo()
.
- Replaced
d3
dependency withd3-color
.
- Exported missing
LayoutData
types. - Error when
WikidataProvider.filter()
query execution encounters literals or non-entity IRIs. - Diagram area scroll jump on element click when workspace area size changed.
- Filter trash nodes (hyperlinks to resources expressed as IRIs)
in
WikidataProvider
. - Made diagram area scroll smoother in Webkit browsers.
- Preserve full URI when drag'n'drop links with absolute URI with hashpart onto the diagram area.
- Printing person template with expanded properties.
0.3.3 - 2016-12-15
- "Search for connected elements" button to Halo.
- Disabled "click on element to search".
- Hide Connections popup when click on empty paper space.
- Display error in Connections popup on failed request.
- Inconsistent thumbnail width in default element thumbnail.
- Made paper adjust its size when element is expanded or collapsed.
WikidataProvider
:- made search ordering consistent;
- prevent label and property duplication;
- replaced full images with thumbnails when using
imageClassUris
; - query elementInfo using single SPARQL query for all elements;
- corrected
linkTypesOf
query to return actual connected elements count.
0.3.2 - 2016-12-14
- Fetching for link between elements on a diagram at the end of import.
- [Breaking] Link arrowheads implementation replaced by native SVG markers, changed link style customization interface.
- [Breaking] Rewritten scrollable diagram component
PaperArea
in React way, movedzoomToFit()
and other related members. This change fixes many issues with scrolling and resizing diagram area. - [Breaking] Fixed typo in
GraphBuilder.getGraphFromConstruct()
method name. - Significant performance improvments when importing diagram.
- Increased preferred link length in force layout.
- Unable to export as PNG/SVG diagram that contains element with SVG thumbnail.
- Unable to export as PNG/SVG in Firefox >= 50.
- Connections popup height overflow in Firefox.
0.3.1 - 2016-11-22
- Warning if browser is IE.
- Collapsing/expanding widgets on resizable panels.
- Text wrapping in
big-icon-template
. - Ignore literals when creating diagram from SparQL construct query.
0.3.0 - 2016-10-03
- Construct diagram from RDF graph using
GraphBuilder
. - Ability to customize style of links on diagram.
- Ability to specify custom element image using user-provided function.
- Extension points for undo/redo support and element selection/halo.
- Default halo to operate on selected element.
- Wikidata data provider to browse wikidata SparQL endpoints.
- Ability to filter link types in Connections panel by name.
- Custom SVG layout of elements replaced with HTML-based one with React and Handlebars as template engines with ability to register custom templates.
- Faster exporting diagram as SVG/PNG.
- Replaced bundled typings for backbone and react with @types/*
- Make Connections panel intially hidden.
- Replaced icons from Glyphicons with FontAwesome.
- Replaced force layout implementation from Springy to WebCola.
SparqlEndpoint
error whenimageClassUris
left unspecifed.- Compile errors when importing library to webpack-based TypeScript projects.
- Hide "Share" button from workspace when corresponding callback is not specified.
- Diagram canvas scrolling in Safari.
- "All connections" group from Connections panel to support lazy loading of link types.
0.2.1 - 2016-09-14
- Ability to customize colors of elements on diagram by providing option to
Workspace
props. - Displaying custom images on elements by specifying image URL when element
info loaded from
DataProvider
.
- Ontodia published on GitHub as OSS project.