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
- Translation for plugin display name.
- Use default file name
logo.svg
for plugin icon.
0.27.3 - 2024/08/08
- Fix publishing on npm workflow.
0.27.2 - 2024/08/08
- Update nodejs to version
20.16.0
. - Update npm to version
10.8.1
.
- Fix publishing on npm workflow.
0.27.1 - 2024/08/07
- Fix publish on npm workflow.
0.27.0 - 2024/08/07
- Add workflow to publish on npm.
0.26.2 - 2024/08/02
- Fix required attributes error.
0.26.1 - 2024/07/31
- Fix some null on manage errors.
0.26.0 - 2024/07/29
- New class to manage parse error:
ParserLog
. - Add
regexMessage
to permit error message customization for regex. - Method
validateDefinition
to definition error inComponent
. - Method
validateDefinitionType
to get definition type errors inComponentAttribute
. - Method
validateType
to get type errors inComponentAttribute
. - Method
validateRequired
to get required errors inComponentAttribute
. - Method
validateRuleMinMax
to get rules min/max errors inComponentAttribute
. - Method
validateRuleValues
to get rule values errors inComponentAttribute
. - Method
validateRuleRegex
to get rule regex errors inComponentAttribute
. - I18n translation storage for plugin in
DefaultConfiguration
.
- Method
hasError
inComponent
becomegetErrors
. - Method
hasError
inComponentAttribute
becomegetErrors
.
- Fix bad id on svg export.
- Fix default value for rule
values
.
0.25.0 - 2024/07/05
- Export wanted diagram as svg.
- Add properties
categories
andtags
inComponentDefinition
. - Add property
tags
inComponentAttributeDefinition
. - Add method
getTemplateData
inComponentRenderer
andLinkRenderer
. - Add methods
initComponentRenderer
andinitLinkRenderer
inDefaultDrawer
. - Hide components that cannot contain dragged components.
- Add extra-resource to store css style.
0.24.1 - 2024/06/18
- Reverse link display management.
0.24.0 - 2024/06/12
- Complete refacto of drawer:
- Multi selection of components
- Add marker on link.
- Add anchor for link.
- Manage burger menu event on component.
- Hide components.
- Add more properties on component to improve display.
- Add new events to 'openMenu' and 'zoom'.
- Complete refacto of drawer:
- Externalize all svg rendering into separate class using nunjucks.
- Externalize all actions into separate classes.
- Reduce complexity of DefaultDrawer.
- Resize action is more userFriendly.
- Replace ELK Layout by homemade layout.
- Link used nunjucks for rendering.
- Workflow to generate technical documentation.
- Having null component draw option.
0.23.0 - 2024/01/02
- Add
external_id
in Component.
- Improve plugin-core documentation.
0.22.0 - 2023/10/19
- Add
isFolderTypeDiagram
attribute inDefaultConfiguration
.
- Merge
folder
andfileName
params inaddComponent
method insideDefaultPlugin
andDefaultData
.
0.21.0 - 2023/09/08
- Add
addComponent
to Plugin to drop new component in parent container. - Add to the demo a button to drop a new component at the given coordinates.
- Add
resetDrawerActions
method inDefaultDrawer
andDefaultPlugin
.
0.20.0 - 2023/08/30
- Add optional containerId argument to
DefaultLayout.rearrangeComponentsPosition
. - Add
repositionComponent
method inDefaultDrawer
,DefaultPlugin
andDefaultLayout
. - Add a default implementation for
repositionComponent
inElkLayout
. - Add to the demo a button to log components position.
- In
ComponentAttribute
methodsgetReferenceValue
,setReferenceValue
,getLinkValue
,addLink
,removeLink
andreplaceLink
. - In
DefaultData
methodgetComponentIdFromValue
.
- Move ELK parameters from ElkLayout to DefautConfiguration.
- Fix link generation, fix this bug.
0.19.0 - 2023/08/16
- Rename component feature:
- Add
getReferenceValue
,setReferenceValue
,getLinkValue
,addLink
,removeLink
andreplaceLink
insideComponentAttribute.js
. - Add
setId
,createAttribute
andgetAttributesByType
insideComponent.js
. - Add
renameComponentId
insideDefaultData.js
.
- Add
- Add
arrangeComponentsPosition
method inDefaultDrawer
andDefaultPlugin
. - Add inheritable class
DefaultLayout
for automatic layout in the diagram (does nothing). - Add inherited class
ElkLayout
for automatic layout in the diagram, using ELK. - Add HTML attribute equality as a Cypress step definition in
html.js
. - Add
elkjs
andweb-worker
as package dependencies.
getDefinedAttributesByType
will now return nested attributes inside object, fix this bug.- Fix has error on a Link Array.
0.18.0 - 2023/07/20
- Add class
Variable
for variable handling. - Add properties
name
,type
,value
andcategory
inVariable
. - Add
isVariable
getter inComponentAttribute
to check if the attribute is a variable. - Add methods in
DefaultData
:getAttributeValue
used to get the value of an attribute.getLinkedComponentsIds
used to get the ID of the linked component.getVariableValue
used to get the value of a variable.setVariableValue
used to set the value of a variable.getComponentIdFromValue
used to get the ID of a linked resource.
- Change
getLinks
method inDefaultData
0.17.0 - 2023/07/05
- Add
Tag
class withtype
andvalue
for tag. - Add diagram file information in:
parse
method ofDefaultParser
.parseConfiguration
method ofDefaultParser
.renderConfiguration
method ofDefaultRender
.parse
method ofDefaultPlugin
.render
method ofDefaultPlugin
.
- Add
restrictiveFolder
inDefaultConfiguration
. - Add manual resizing feature for container components.
- Method
getModelFolders
fromDefaultPlugin
andDefautParser
.
0.16.0 - 2023/06/06
- Add
defaultFileExtension
attribute inDefaultConfiguration
. - Move
defaultFileName
fromDefaultData
toDefaultConfiguration
. - Make
DefaultData
haveDefaultConfiguration
in constructor. - Add method
getModelFolders
inDefaultParser
. - Add delete shortcut to remove components or links.
- Add read-only option to draw function.
- Add resizing on draw function when read-only is activated.
- Add
tags
attribute inDefaultConfiguration
.
0.15.2 - 2023/04/18
- Export missing
DefaultConfiguration
class.
0.15.1 - 2023/04/17
- Fixed the bug that made the plugin core crash when reloading with a selected component not yet displayed.
0.15.0 - 2023/03/31
- Migration guides.
- Rework on all events.
- Store of event logs.
DefaultConfiguration
inDefaultPlugin
to store all plugin configurations.- Documentation to build a svg template.
- Add
translate.x
andtranslate.y
properties inDefaultDrawer
to get the position of the root container. - Add method
getModels
inDefaultParser
andDefaultPlugin
.
- Remove old events management in
DefaultDrawer
. - The
y
position of the component container is now set in the model and not by the drawer. - The width and height of
#root svg
is now equal of#root
width and height.
- Prevent auto-updating of dependencies in package-lock with
=
suffix. - Fix Firefox behavior of component outline property when it is selected.
- Fix
DefaultContainer
in demo resources to have a correct behavior on Firefox.
- Remove
width
andheight
fromDefaultDrawer
class and constructoroptions
. - Remove viewBox initialization from
DefaultDrawer
.
0.14.0 - 2023/03/01
- Add method
getAttribute
to get attribute by name for a component in model template. - Add
getUsedLinkDefinition
inDefaultData.js
to get the link definitions used by components. - Add
__initializeArrowMarker
method inDefaultDrawer.js
. - Add
actions.zoom.scale
in constructor ofDefaultDrawer.js
to get the zoom scale. - Add marker definition in
ComponentLinkDefinition
to define the marker of the link.
- Change
drawLinks
method inDefaultDrawer.js
to draw arrow markers on links extremities.
- Fix the links width by multiplying it by the zoom scale.
- Fix
hasError
inComponentAttribute.js
to return false when the value of attribute is empty.
0.13.0 - 2023/02/09
- Add menu to create a new linkable component from selected component.
- Add
getDefinedAttributesByType
method inComponent.js
.
- Fix
Component.checkRequiredAttributes
method fails when required attribute isBoolean
orNumber
.
0.12.1 - 2023/02/07
- Fix throw exception for Object or Array attribute in
checkRequiredAttributes
method inComponent.js
.
0.12.0 - 2023/02/02
- Add a lot of e2e tests to improve e2e coverage
- Added layout line length overrides.
- Added
workflow
display type.- It is designed for containers where children ordering is significant.
- Drag and drop reordering of children is supported within these containers
- Add
getDragTarget
method toDefaultDrawer.js
. - Add an id to the component's icons for cypress tests.
- Add
hasError
method toComponent.js
to check if a component has an error - Add methods checking error for all types to
ComponentAttribute.js
- Add error icon on component SVGs.
- Add
defaultFileName
attribute to manage the default file name of the new components. - Add method
generateComponentId
inDefaultData.js
to generate id from definition type. - Add helper properties for component and attribute:
displayName
,description
andurl
.
- Replace esdoc by jsdoc
- Make configuration readable by user in the configuration file.
- Save component's positions after the layout is automatically generated.
- Change
ComponentAttributeDefinition.
containerRef's type from array to string. - Change parameter of method
addComponent
inDefaultData.js
to accept now the definition and optionalfolder
path and optionalfileName
path. - Method
render
ofDefaultPlugin.js
now includes the configuration file.
- Save configuration even if the file content is null.
- Fix drag and drop for e2e tests
- Fix component drag behavior when the mouse click on component's icon or text.
- Fix zoom centered on the mouse.
- Fix cypress tests to works with new drag action.
- Fix error in setReferenceAttribute when there are attributes without definition.
0.11.0 - 2022/12/07
- Method
getchildren
by component id inDefaultData
. - Method
getContainerId
onComponent
. - Add
files
parameter in methodrender
ofDefaultRender
andDefaultPlugin
to list all files managed by the plugin. - Add
UpdateEvent
to notify modelizer of all updates on components made by user. - Add attributes in
ComponentAttributeDefinition
to manage customization of link:LinkColor
to define the color of the link, default black.LinkWidth
to define the width of the link, default 2px.LinkDashStyle
to define the dash style of the link, default null for a line link.
- Remove attribute
children
ofComponent
to transform components tree in components Array. - Remove
EditEvent
andDeleteEvent
inDefaultDrawer
.
- Updated
drawLinks
to dynamically select curve type based on components relative positions. - Replace method
render
byrenderFiles
as method to be overridden by plugin.
- Method
render
inDefaultRender
now returns files that are no longer linked to components. - Fixed disabled style application when the origin could have multiple targets.
0.10.0 - 2022/11/28
- Add save and retrieve position of component in
DefaultPlugin
:- Add configuration
file
in first argument of methodparse
inDefaultPlugin
. - Add configuration
file
in argument of methodrender
inDefaultPlugin
.
- Add configuration
- Add support for manual component positioning.
- Add support for top and bottom link anchors.
0.9.1 - 2022/11/24
- Fix display of action menu.
- Emit
EditEvent
only forComponent
.
0.9.0 - 2022/11/24
- Add
drawLinks
,getAnchorPoint
methods inDefaultDrawer.js
. - Create a new
draw
method that executes thedrawLinks
anddrawComponents
methods. - Add method
setReferenceAttribute
andremoveAllReferenceAttributes
in Component to update container attribute. - Add default model
DefaultData
to manage all data of the plugin. - Add default model
DefaultPlugin
to simplify the plugin usage. - Add method
setEvents
inDefaultDrawer
. - Add zoom and pan support.
- Add the method
addLink
inDefaultDrawer.js
that adds a new link between two components. - Add
options
prop toDefaultDrawer
constructor to control rendering behavior. - Add
createRenderingContext
method toDefaultDrawer
. - Add
SVGToScreen
andscreenToSVG
methods toDefaultDrawer
. - Add
setDisabledStyle
andunsetAllDisabledStyles
methods toDefaultDrawer
. - Add
dragHandler
,setupDragBehavior
andhandleDropEvent
methods toDefaultDrawer
to control drag and drop interaction. - Add
startLinkCreationInteraction
andcancelLinkCreationInteraction
methods toDefaultDrawer
. - Add
buildTree
,setupTiles
and__buildLines
methods toDefaultDrawer
to control the component layout. - Add method
getLinks
inDefaultData
to generate all links from all components attributes. - Add method
getComponentsByType
inDefaultData
. - Add method
getAttributeByName
inComponent
. - Add method
initLinkDefinitions
inDefaultData
and call it ininit
inDefaultPlugin
. - Add method
removeLink
inDefaultData
. - Add attribute
name
for methodremoveLinkAttribute
ofComponent
. - Add
getMenuAction
that contains all action handler.
- Rename the
draw
method todrawComponents
. - Switch action menu position parameter from
absolute
tofixed
. - Update constructor of
DefaultDrawer
,DefaultRenderer
,DefaultParser
andDefaultMetadata
to useDefaultData
. - Update
draw
method ofDefaultDrawer
to only used the container id. - Rename method
getDefinitions
ofDefaultMetadata
toparse
and make it update directly the plugin data. - Make the method
parse
ofDefaultParser
update directly the plugin data instead of return components, links and errors. DefaultDrawer
constructor props re-ordered to(pluginData, resources, events, rootId, options)
based on the likelihood of each prop being changed by the user.- Update
drawComponents
to make full use of d3's api. - Rename method
removeLinkAttributeById
ofComponent
inremoveLinkAttribute
. - Rework the action menu to have more visual feedback, improve positioning comportment and adapt his content with available actions.
- Update component rendering in
drawComponents
to use template strings via nunjucks.
- Remove method
addChild
from Component. - Remove
interactjs
andbin-pack
dependencies. - Remove arguments of method
render
ofDefaultRender
to directly use the plugin data. - Remove
links
fromDefaultData
.
- Fix indentation in
DefaultDrawer
.
0.8.1 - 2022-10-12
- Fix action-menu events (trash & edit)
0.8.0 - 2022-10-12
- Add a feature that displays an action menu when a component is selected.
- Update constructor of Drawer to receive an events object.
- Emit an event on edit, selection and delete components.
0.7.0 - 2022-10-05
- Added a feature that resets the component to its previous position when it is dropped in a wrong container.
- Add
childrenTypes
inComponentDefinition
's props. - Update
ComponentDefinition
's tests.
0.6.0 - 2022-10-04
- Demo of
DefaultDrawer
. - Add feature to drag and drop component into container components in
DefaultDrawer
. - Install
interactjs
library. - Added a feature to filter the components that can enter a container.
- Add new attribute
childrenTypes
in theComponentDefinition
class.
- Updated the demo for more relevance
- Fix the bug that does not define the position of components if no 'container' component exists
0.5.0 - 2022-09-01
- Add property
defaultFileName
in methodrender
ofDefaultRender
to indicate the default file name of new component.
- Method
render
inDefaultRender
have to return an array ofFileInput
- Method
parse
inDefaultParser
have to use an array ofFileInput
asinputs
- Method
isParsable
inDefaultParser
have to useFileInformation
instead offileName
- Replace
name
byfileName
getter inFileInformation
- Remove constructor from
DefaultMetadata
- Remove expected
resources
from plugin index
0.4.0 - 2022-08-26
- Add property
definition
inComponentAttribute
- Add property
definition
inComponentLink
- Add property
attributeRef
inComponentLinkDefinition
- Add method
setContainerSize
usingbin-pack
library inDefaultDrawer
- Add feature that drawing components in their container and resize it, in
DefaultDrawer
- Rename fields in
ComponentLink
:from.id
becomesource
to.id
becometarget
- Improve modules export handling
0.3.1 - 2022-08-23
- Add class
ComponentLinkDefinition
in the export of library - Fix technical documentation
- Fix readme
0.3.0 - 2022-08-23
- Install
bin-pack
library. - Add definition model for ComponentLink
- Add properties in ComponentAttributeDefiniton:
linkType
used for specify the type of link (Default
orReverse
)ContainerRef
used for specify the reference of valid container typedefinedAttributes
used to specify definition of subattribute in case ofObject
type
- Improve
setComponentPosition
method withbin-pack
library. - Rename
linkTypes
tolinkRef
in ComponentAttributeDefinition - Rename method
getComponentDefinitions
togetDefinitions
in DefaultMetadata. - Method
getDefinition
will return an object with component and link definitions.
- Remove attributes
required
anddisplayable
in ComponentDefinition
- Fix link of technical documentation in readme
0.2.0 - 2022-08-16
- Workflow to deploy documentation on GitHub pages
- Create default class structure draw/metadata/parser/render and their individual tests.
- Add default error for parser
- Add
Draw
anddrawDefaultModel
methods to DefaultDrawer.js - Add functions to set default component position.
- Add functions to set default component position.
- Add
moveComponent
method to move svg components in modelizer. - Have specific draw method for template
- Add outline display on select graphical component
- Improve all class models and their individual tests.
- Remove function renderString for SVG template.
0.1.0 - 2022-07-07
- Setup project (eslint, esdoc, unit test, github's workflow).
- Add new classes LetoObjectNode, LetoTypeNode, LetoAttribute, LetoLink.
- Add function renderString for SVG template.