@metadev/daga-react
Version:

336 lines (239 loc) • 24.3 kB
Markdown
# DAGA Changelog
List of releases and changes.

## Next release Joyeuse
## v. 4.2.3
- Enable toggling whether individual sections can be highlighted or entire nodes [#308](https://github.com/metadevpro/daga/pull/308)
- Enable toggling whether connections tighten automatically and whether they can loop and share ports [#309](https://github.com/metadevpro/daga/pull/309)
- Enable toggling background color of connection label [#310](https://github.com/metadevpro/daga/pull/310)
## v. 4.2.2
- Fix zoom on double click [#307](https://github.com/metadevpro/daga/pull/307)
## v. 4.2.1
- Apply zoom when scrolling over diagram elements [#278](https://github.com/metadevpro/daga/issues/278) [#290](https://github.com/metadevpro/daga/pull/290)
- Add `shrink` parameter to canvas method `fitNodeInView()` to toggle whether nodes and sections should be shrunk as part of the fitting process [#293](https://github.com/metadevpro/daga/pull/293)
- Correctly fire UpdateValuesAction when updating the type of a node or connection [#297](https://github.com/metadevpro/daga/pull/297)
- Enable configuring the resizability of node sections independently from their node [#298](https://github.com/metadevpro/daga/pull/298)
- Correctly account for the rotation of a label when calculating the maximum size of the text [#300](https://github.com/metadevpro/daga/pull/300)
- When fitting node to its children stretch its sections as well [#301](https://github.com/metadevpro/daga/pull/301)
- Add anchor points for ports and decorators [#302](https://github.com/metadevpro/daga/pull/302)
## v. 4.2.0 Longclaw
- Support for Angular 20
- Allow toggling the size of node templates in palette [#287](https://github.com/metadevpro/daga/pull/287)
- Allow configuring the orientation of a field [#288](https://github.com/metadevpro/daga/pull/288)
- Solve bug where a node covers the input field when editing its label [#288](https://github.com/metadevpro/daga/pull/288)
- Use the correct default value when creating a new node with values with root attribute [#289](https://github.com/metadevpro/daga/pull/289)
## v. 4.1.0 Heartsbane
- Add methods for adding and removing rows and columns of sections in a node [#277](https://github.com/metadevpro/daga/pull/277)
- Allow toggling gapSize in layout algorithms [#279](https://github.com/metadevpro/daga/pull/279)
- Raise ports after raising sections inside nodes so that sections don't hide ports [#280](https://github.com/metadevpro/daga/pull/280)
- Add `fieldRootFitsInView()` method to canvas [#281](https://github.com/metadevpro/daga/pull/281)
- Add `shrink` parameter to canvas method `fitFieldRootInView()` to toggle whether nodes and sections should be shrunk as part of the fitting process [#282](https://github.com/metadevpro/daga/pull/282)
- Set root vlaue of property to default value when resetting values [#284](https://github.com/metadevpro/daga/pull/284)
## v. 4.0.3
- Allow angular 20.
- Fix bug with connections breaking when they have an id which is not a valid CSS selector [#277](https://github.com/metadevpro/daga/pull/277)
## v. 4.0.2
- Add grid style [#261](https://github.com/metadevpro/daga/pull/261)
- Fix bug where user could perform an action they are not allowed to by using the keyboard [#264](https://github.com/metadevpro/daga/pull/264)
- Fix bug with boolean input not displaying properly in React [#266](https://github.com/metadevpro/daga/pull/266)
- Fix bug with not being able to edit nested value sets in property editor in React [#267](https://github.com/metadevpro/daga/pull/267)
- Fix bug with hexadecimal characters not allowed in colors [#268](https://github.com/metadevpro/daga/pull/268)
- Make diagram decorators behave as extensions of their diagram node when clicking or hovering over them [#270](https://github.com/metadevpro/daga/pull/270)
- Make zoom not affect multiple selection rectangle [#271](https://github.com/metadevpro/daga/pull/271)
- Enable making decorators inherent to a node type [#272](https://github.com/metadevpro/daga/pull/272)
## v. 4.0.1
- Ensure borders of nodes are fully contained within palette [#253](https://github.com/metadevpro/daga/pull/253)
- Adjust nodes in palette [#254](https://github.com/metadevpro/daga/pull/254)
- Fix bug where dragging a decorator creates a multiple selection instead of dragging the node [#257](https://github.com/metadevpro/daga/pull/257)
- Allow special characters in diagram element identifiers [#258](https://github.com/metadevpro/daga/pull/258)
- Add custom context menu buttons [#259](https://github.com/metadevpro/daga/pull/259)
## v. 4.0.0 Hielo
- Expose `viewInitialized$` observable in diagram component [#239](https://github.com/metadevpro/daga/pull/239)
- Throw error when a diagram element is initialized with an empty or null id to prevent errors with selectors caused by empty ids [#240](https://github.com/metadevpro/daga/pull/240)
- Change the structure of the configuration for the looks of nodes, sections, ports and connections [#244](https://github.com/metadevpro/daga/pull/244)
- Ensure that the type of a node can be changed safely [#244](https://github.com/metadevpro/daga/pull/244)
- Fix error with text map properties disappearing on update [#245](https://github.com/metadevpro/daga/pull/245)
## v. 3.1.5
Date: _2025-02-07_
- Fix bug with the initial loading of a diagram not working [#226](https://github.com/metadevpro/daga/pull/226)
- Ensure that the parent element of a diagram has fully loaded before initializing the view [#226](https://github.com/metadevpro/daga/pull/226)
- Ensure that the elements of a diagram are rendered in the correct order after importing a diagram [#228](https://github.com/metadevpro/daga/pull/228)
- Add port directionality such that ports can be configured as only allowing incoming connections or only allowing outgoing connections [#229](https://github.com/metadevpro/daga/pull/229)
- Add port types and enable configuring the look of ports and the start/end point of connections within the port [#230](https://github.com/metadevpro/daga/pull/230)
- Fix bug where the close icons for some property editor inputs wasn't showing [#231](https://github.com/metadevpro/daga/pull/231)
- Enable configuring the labels of ports [#233](https://github.com/metadevpro/daga/pull/233)
## v. 3.1.4
Date: _2025-01-30_
- Make dragging the palette node templates create a clone of the node appended to the diagram root instead of a child of the palette to prevent the palette from being affected by CSS transforms on the diagram [#224](https://github.com/metadevpro/daga/pull/224)
## v. 3.1.3
Date: _2025-01-26_
- Fix null-check on `DiagramField` setter [#223](https://github.com/metadevpro/daga/pull/223)
## v. 3.1.2
Date: _2025-01-24_
- Expose configuration and canvas observables in diagram component [#221](https://github.com/metadevpro/daga/pull/221)
- Fix bug where palette fails to reload properly [#221](https://github.com/metadevpro/daga/pull/221)
## v. 3.1.1
Date: _2025-01-23_
- Enable switching the configuration of a diagram [#220](https://github.com/metadevpro/daga/pull/220)
- Remove `viewInitialized$` subject in canvas [#220](https://github.com/metadevpro/daga/pull/220)
## v. 3.1.0 Excalibur
Date: _2025-01-21_
- Add node continence [#200](https://github.com/metadevpro/daga/pull/200)
- Enable defining custom shape functions for nodes in the configuration [#206](https://github.com/metadevpro/daga/pull/206)
- Fix order of diagram elements [#208](https://github.com/metadevpro/daga/pull/208)
- Simplify usage of `<daga-diagram>` tag in angular by removing the need to include a `<daga-diagram-editor>` inside [#210](https://github.com/metadevpro/daga/pull/210)
- Distinguish between diagram actions (which affect the model) and diagram events (which don't affect the model) [#210](https://github.com/metadevpro/daga/pull/210)
- Add layout action so layouts applied by the user can be undone and redone (which don't affect the model) [#210](https://github.com/metadevpro/daga/pull/210)
- Add diagram events for the selection and highlight of diagram elements [#212](https://github.com/metadevpro/daga/pull/212) [#214](https://github.com/metadevpro/daga/pull/214)
- Enable customizing the look of nodes in the palette [#216](https://github.com/metadevpro/daga/pull/216)
- Enable adding custom line shapes [#217](https://github.com/metadevpro/daga/pull/217)
## v. 3.0.0 Curtana
Date: _2025-01-03_
- Port to Angular 19 and update libraries [#202](https://github.com/metadevpro/daga/pull/202)
- Enable configuring different looks for palette connection templates based on whether the connection type is the one currently selected or not [#197](https://github.com/metadevpro/daga/pull/197)
- Enable configuring the gap in palette elements [#197](https://github.com/metadevpro/daga/pull/197)
- Enable placing palette templates in multiple columns if they fit [#197](https://github.com/metadevpro/daga/pull/197)
- Use grab cursor style when hovering cursor on node palette templates and pointer cursor style when hovering cursor on connection palette templates [#197](https://github.com/metadevpro/daga/pull/197)
## v. 2.0.0 Lobera
Date: _2024-11-22_
- Allow multiple selection of nodes by secondary click and drag to draw a selection rectangle [#146](https://github.com/metadevpro/daga/issues/146) [#174](https://github.com/metadevpro/daga/pull/174)
- Make all diagram components disabled by default in diagram configuration [#174](https://github.com/metadevpro/daga/pull/174)
- Rename `exists` attribute of diagram configuration of components to `enabled` [#174](https://github.com/metadevpro/daga/pull/174)
- Move methods regarding user selection in diagram canvas (`isInUserSelection`, `addToUserSelection`, `removeFromUserSelection`, `toggleUserSelection`, `clearUserSelection`, `deleteUserSelection`, `copyUserSelectionToClipboard`, `pasteUserSelectionFromClipboard`, `setPropertyEditorSelection`) to its own `userSelection` object in the canvas [#174](https://github.com/metadevpro/daga/pull/174)
- Move methods regarding user highlight in diagram canvas (`highlight`, `unhighlight`) to its own `userHighlight` object in the canvas [#174](https://github.com/metadevpro/daga/pull/174)
- Move methods regarding context menu in diagram canvas (`openContextMenu`, `closeContextMenu`) to its own `contextMenu` object in the canvas [#174](https://github.com/metadevpro/daga/pull/174)
- Split the core of Daga functionalities from the Angular-specific parts [#150](https://github.com/metadevpro/daga/issues/150) [#175](https://github.com/metadevpro/daga/pull/175)
- Add `Move` action type to support moving multiple elements at once [#177](https://github.com/metadevpro/daga/pull/177)
- When moving a selected element, move the entire user selection [#177](https://github.com/metadevpro/daga/pull/177)
- Fix bug with undoing paste actions not removing the correct elements [#177](https://github.com/metadevpro/daga/pull/177)
- Void property editor selection when selecting multiple elements [#178](https://github.com/metadevpro/daga/pull/178)
- Extract canvas configuration to its own object within the diagram configuration [#180](https://github.com/metadevpro/daga/pull/180)
- Solve bug with infinite loop on getting an element from an element set [#181](https://github.com/metadevpro/daga/pull/181)
- Add multiple selection menu button [#182](https://github.com/metadevpro/daga/pull/182)
- Do not highlight nodes when moving nodes or drawing a multiple selection rectangle [#182](https://github.com/metadevpro/daga/pull/182)
- Rename `guessConnectionType` to `inferConnectionType` [#185](https://github.com/metadevpro/daga/pull/185)
- Rename `ActionQueue` to `ActionStack` [#185](https://github.com/metadevpro/daga/pull/185)
- Rename `zoomRate` to `zoomFactor` [#185](https://github.com/metadevpro/daga/pull/185)
- Rename `validatorChanges$` to `validatorChange$`, `diagramChanges$` to `diagramChange$` and `diagramImportantChanges$` to `diagramImportantChange$` [#185](https://github.com/metadevpro/daga/pull/185)
- When undoing or redoing user actions, perform undo or redo repeatedly until there's an effect on the diagram [#190](https://github.com/metadevpro/daga/pull/190)
## v. 1.5.7
Date: _2024-10-16_
- Fix the selecion of layout algorithms in examples [#170](https://github.com/metadevpro/daga/pull/170)
- Add `daga-` prefixes to element classes to avoid stylesheet conflicts [#171](https://github.com/metadevpro/daga/pull/171)
- Highlight diagram elements with the error when showing an error [#171](https://github.com/metadevpro/daga/pull/171)
- Prevent selecting the same element multiple times [#172](https://github.com/metadevpro/daga/issues/172) [#173](https://github.com/metadevpro/daga/pull/173)
## v. 1.5.6
Date: _2024-10-10_
- Filter away removed elements by default [#168](https://github.com/metadevpro/daga/pull/168)
- Generalize the margin and padding of fields to enable different amounts of margin on each side [#168](https://github.com/metadevpro/daga/pull/168)
- Enable using the - and + keys for zoom [#168](https://github.com/metadevpro/daga/pull/168)
- Enable using the arrow keys for panning [#168](https://github.com/metadevpro/daga/pull/168)
## v. 1.5.5
Date: _2024-10-02_
- Ensure that decorators are always removed [#167](https://github.com/metadevpro/daga/pull/167)
## v. 1.5.4
Date: _2024-09-21_
- Add diagram decorators [#164](https://github.com/metadevpro/daga/issues/164) [#166](https://github.com/metadevpro/daga/pull/166)
- Enable diagram events on diagram objects [#166](https://github.com/metadevpro/daga/pull/166)
## v. 1.5.3
Date: _2024-09-09_
- Create interface for listening to user events on the diagram [#160](https://github.com/metadevpro/daga/issues/160) [#161](https://github.com/metadevpro/daga/pull/161)
## v. 1.5.2
Date: _2024-08-30_
- Create new UpdateValuesAction on debounced user changes instead of only on closing the property editor [#136](https://github.com/metadevpro/daga/issues/136) [#152](https://github.com/metadevpro/daga/pull/152)
- Fix bug with failing to highlight ports due to attempting to highlight ports from a removed node instead [#156](https://github.com/metadevpro/daga/pull/156)
- Stop propagation of keydown events on input fields to prevent deleting nodes on pressing backspace while editing a node's label [#155](https://github.com/metadevpro/daga/issues/155) [#157](https://github.com/metadevpro/daga/pull/157)
- Add hasProperty method to PropertySet [#158](https://github.com/metadevpro/daga/pull/158)
## v. 1.5.1
Date: _2024-06-19_
- Highlight elements when opening the context menu on them [#142](https://github.com/metadevpro/daga/pull/142)
- Add select all (Control+A) and invert selection (Control+I) keyboard shortcuts [#143](https://github.com/metadevpro/daga/pull/143)
- Enable adding to selection with Shift+Click as well as Control+Click [#145](https://github.com/metadevpro/daga/pull/145)
- Make context menu items focusable [#145](https://github.com/metadevpro/daga/pull/145)
- Only show context menu buttons if they can be clicked [#145](https://github.com/metadevpro/daga/pull/145)
- Select elements when opening the context menu on them [#145](https://github.com/metadevpro/daga/pull/145)
- Paste selection centered on the user's view or on the context menu location instead of in the place of the original selection [#147](https://github.com/metadevpro/daga/pull/147)
- Add diagram objects [#148](https://github.com/metadevpro/daga/pull/148)
- Enable toggling context menu in diagram configuration [#149](https://github.com/metadevpro/daga/pull/149)
- Center icons of context menu buttons [#149](https://github.com/metadevpro/daga/pull/149)
## v. 1.5.0 Colada
Date: _2024-06-06_
- Ported to Angular 18, nx 19, node 20 [#140](https://github.com/metadevpro/daga/pull/140)
- Add context menu and clipboard functionality [#139](https://github.com/metadevpro/daga/pull/139)
## v. 1.4.3
Date: _2024-06-04_
- Add property editor settings page [#113](https://github.com/metadevpro/daga/issues/113) [#119](https://github.com/metadevpro/daga/pull/119) [#120](https://github.com/metadevpro/daga/pull/120)
- Add `TextSet` and `OptionSet` property types [#121](https://github.com/metadevpro/daga/pull/121)
- Don't allow adding empty values in `TextList`, `TextSet` and `TextMap` property types [#121](https://github.com/metadevpro/daga/pull/121)
- Prevent overlapping connections [#122](https://github.com/metadevpro/daga/pull/122)
- Highlight a port when the pointer is close to the port while drawing a connection [#138](https://github.com/metadevpro/daga/pull/138)
- Adding support for collaborative actions.
## v. 1.4.2
Date: _2024-04-11_
- Allow instancing nodes and connections referencing their type by its identifier rather than having to get the type from the set of types [#94](https://github.com/metadevpro/daga/pull/94)
- Use logical removal of diagram elements via the `removed` flag instead of removing them from the model [#96](https://github.com/metadevpro/daga/pull/96)
- Add `do()` method to `DiagramAction` [#96](https://github.com/metadevpro/daga/pull/96)
- Only register changed values in `UpdateValuesAction` to reduce chances of overwriting when different users edit the same `ValueSet` simultaneously [#106](https://github.com/metadevpro/daga/pull/106)
- Define and document the behavior of `ValueSet` [#106](https://github.com/metadevpro/daga/pull/106)
- When creating a new `DiagramElement` with a `ValueSet`, set the `DiagramElement`'s attributes to the `ValueSet`'s values if any of the values has an associated attribute [#106](https://github.com/metadevpro/daga/pull/106)
- Move the components of property editor to within property editor folder for better code organization [#106](https://github.com/metadevpro/daga/pull/106)
- Remove Lux dependence [#106](https://github.com/metadevpro/daga/pull/106)
- Make the `rootAttribute` of `Property` optional to make diagram configurations simpler [#106](https://github.com/metadevpro/daga/pull/106)
- Improve behavior of nested `ValueSet`s [#106](https://github.com/metadevpro/daga/pull/106)
- Fix bug with the list of options in properties of `Option` type appearing misplaced in scrolled property editors [#116](https://github.com/metadevpro/daga/pull/116)
- Make property editor not appear when collapsed [#118](https://github.com/metadevpro/daga/pull/118)
## v. 1.4.1
Date: _2024-03-08_
- Fix bug with diagram changes not triggering validation [#91](https://github.com/metadevpro/daga/pull/91)
- Compensate for scroll when getting cursor position relative to screen [#92](https://github.com/metadevpro/daga/pull/92)
## v. 1.4.0 Tizona
Date: _2024-03-08_
- Enable configuring which components are present in a diagram [#66](https://github.com/metadevpro/daga/pull/66)
- Add `zoom` configurable user action and enable configuring whether zooming and panning is enabled [#66](https://github.com/metadevpro/daga/pull/66)
- Rename `color` configuration property of diagram to `backgroundColor` and `color` configuration property of node to `fillColor` [#65](https://github.com/metadevpro/daga/issues/65) [#69](https://github.com/metadevpro/daga/pull/69)
- Remove `generic-diagram.json` file and add testing diagram configuration in `test-util` file instead [#69](https://github.com/metadevpro/daga/pull/69)
- Fix bug with connections with zero priority not being displayed [#70](https://github.com/metadevpro/daga/pull/70)
- Organize the configuration for each diagram component in the diagram configuration interface [#71](https://github.com/metadevpro/daga/pull/71)
- Enable configuring the location of diagram components [#71](https://github.com/metadevpro/daga/pull/71)
- Enable configuring the presence of specific buttons in the diagram buttons [#71](https://github.com/metadevpro/daga/pull/71)
- Generalize the expansion and collapse animation of the diagram buttons to an arbitrary number of buttons [#71](https://github.com/metadevpro/daga/pull/71)
- Add `fit` option to `FieldConfig` interface. Resize nodes and sections when that option is true and the size of their labels changes. [#35](https://github.com/metadevpro/daga/pull/35)
- Fix [#39](https://github.com/metadevpro/daga/issues/39) Allow delete with `backspace` key for Mac (no delete key on Mac).
- Fix [#75](https://github.com/metadevpro/daga/issues/75) Blur event in input field. Also implement autoselect all text.
- Reorganize configuration of diagram sections such that each section can be configured individually [#81](https://github.com/metadevpro/daga/pull/81)
- Resize nodes when filtering their sections [#83](https://github.com/metadevpro/daga/pull/83)
- Add methods to more easily get the priority of diagram elements and get and set the priority threshold of a canvas [#83](https://github.com/metadevpro/daga/pull/83)
- Use `not-allowed` cursor style when the user attempts to do an action that is not allowed [#41](https://github.com/metadevpro/daga/issues/41) [#85](https://github.com/metadevpro/daga/pull/85)
- Group up diagram elements by their type in the dom to ensure order of drawing of diagram elements [#84](https://github.com/metadevpro/daga/issues/84) [#86](https://github.com/metadevpro/daga/pull/86)
- Enable two way diagram model databinding [#73](https://github.com/metadevpro/daga/issues/73) [#87](https://github.com/metadevpro/daga/pull/87)
- Enable making changes to the diagram in the view without broadcasting changes to the model [#87](https://github.com/metadevpro/daga/pull/87)
- Move example-specific assets to their example asset folder [#87](https://github.com/metadevpro/daga/pull/87)
- Add a diagram's ValueSet to the DagaModel and serialize and deserialize a diagram's ValueSet when exporting and importing a diagram using the default daga exporter/importer [#87](https://github.com/metadevpro/daga/pull/87)
## v. 1.3.1
Date: _2024.02.13_
- Add link to documentation and tutorials: <https://daga.metadev.pro/>
## v. 1.3.0
Date: _2024.02.12_
- Add TSDoc documentation of types, methods and fields [#62](https://github.com/metadevpro/daga/pull/62)
- Creatw UserActionConfig type to represent configuration of allowed user actions [#62](https://github.com/metadevpro/daga/pull/62)
- Fix typo in README [#62](https://github.com/metadevpro/daga/pull/62)
- Use `DataSource<unknown, string>` as the type for the options of `Property` instead of `DataSource<string, string>` to allow arbitrary values [#63](https://github.com/metadevpro/daga/pull/63)
- Improved efficiency of moving the start and end ports of a connection [#64](https://github.com/metadevpro/daga/pull/64)
## v. 1.2.0
Date: _2024.02.08_
- Enable configuring what user actions are allowed [#47](https://github.com/metadevpro/daga/issues/47) [#54](https://github.com/metadevpro/daga/pull/54)
- Add missing exports to index and clean up unused utils [#55](https://github.com/metadevpro/daga/pull/55)
- Use separate configuration defaults for `DiagramNode` and `DiagramSection` [#56](https://github.com/metadevpro/daga/pull/56)
- Add TypeDoc for automatic documentation generation [#58](https://github.com/metadevpro/daga/pull/58)
- Move all styles to a dedicated `styles` folder [#60](https://github.com/metadevpro/daga/pull/60)
- Remove unused CSS variables [#60](https://github.com/metadevpro/daga/pull/60)
- Remove ampersands from stylesheets [#60](https://github.com/metadevpro/daga/pull/60)
- Prefix Daga's CSS variables with `daga-` [#60](https://github.com/metadevpro/daga/pull/60)
- Update libraries [#60](https://github.com/metadevpro/daga/pull/60)
## v. 1.1.0
Date: _2024.02.05_
- Refactor API for sets of elements of Diagram Model [#51](https://github.com/metadevpro/daga/pull/51)
- Make diagrams not absolutely positioned in CSS [#50](https://github.com/metadevpro/daga/issues/50), [#52](https://github.com/metadevpro/daga/pull/52)
## v. 1.0.0
Date: _2024.02.01_
- First public version. ⚔️🚀🎉