Skip to content

Commit 2c847ad

Browse files
Merge pull request #516 from synergycodes/main
Release v0.9.1
2 parents b5ccb9e + 0de8cb3 commit 2c847ad

File tree

10 files changed

+64
-9
lines changed

10 files changed

+64
-9
lines changed

CHANGELOG.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.9.1] - 2026-01-08
11+
12+
### Fixed
13+
14+
- Fixed resizing group with rotated child nodes ([#504](https://github.com/synergycodes/ng-diagram/pull/504))
15+
- Fixed error on drag&drop HTML object (not palette node) to the diagram ([#510](https://github.com/synergycodes/ng-diagram/pull/510))
16+
1017
## [0.9.0] - 2025-12-12
1118

1219
### Added
@@ -110,7 +117,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
110117

111118
Initial tagged release.
112119

113-
[unreleased]: https://github.com/synergycodes/ng-diagram/compare/v0.9.0...HEAD
120+
[unreleased]: https://github.com/synergycodes/ng-diagram/compare/v0.9.1...HEAD
121+
[0.9.1]: https://github.com/synergycodes/ng-diagram/compare/v0.9.0...v0.9.1
114122
[0.9.0]: https://github.com/synergycodes/ng-diagram/releases/tag/v0.9.0
115123
[0.8.1]: https://github.com/synergycodes/ng-diagram/releases/tag/v0.8.1
116124
[0.8.0]: https://github.com/synergycodes/ng-diagram/releases/tag/v0.8.0

apps/angular-demo/src/app/app.component.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,9 @@ export class AppComponent {
6060
padding: [50, 50, 100, 350],
6161
},
6262
},
63+
resize: {
64+
allowResizeBelowChildrenBounds: false,
65+
},
6366
background: {
6467
cellSize: { width: 10, height: 10 },
6568
},
@@ -282,6 +285,16 @@ export class AppComponent {
282285
autoSize: false,
283286
size: { width: 200, height: 300 },
284287
},
288+
{
289+
id: '15',
290+
position: { x: -200, y: 500 },
291+
data: {},
292+
size: { width: 300, height: 200 },
293+
autoSize: false,
294+
type: 'custom-group',
295+
isGroup: true,
296+
rotatable: true,
297+
},
285298
],
286299
edges: [
287300
{

apps/angular-demo/src/app/data/node-template.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ export enum NodeTemplateType {
1111
Image = 'image',
1212
Resizable = 'resizable',
1313
CustomizedDefault = 'customized-default',
14-
Group = 'group',
14+
Group = 'custom-group',
1515
Chip = 'chip',
1616
}
1717

apps/angular-demo/src/app/node-template/group-node/group-node.component.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
<ng-diagram-node-rotate-adornment />
12
<ng-diagram-node-resize-adornment>
23
<div class="group-node" ngDiagramNodeSelected [node]="node()" ngDiagramGroupHighlighted>
34
<div class="group-node-header">

apps/angular-demo/src/app/node-template/group-node/group-node.component.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
flex-direction: column;
1313

1414
gap: 16px;
15-
background: rgba(255, 255, 255, 0.85);
15+
background-color: white;
1616
border-radius: 16px;
1717
overflow: hidden;
1818
}

apps/angular-demo/src/app/node-template/group-node/group-node.component.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,18 @@ import {
44
NgDiagramGroupHighlightedDirective,
55
NgDiagramGroupNodeTemplate,
66
NgDiagramNodeResizeAdornmentComponent,
7+
NgDiagramNodeRotateAdornmentComponent,
78
NgDiagramNodeSelectedDirective,
89
} from 'ng-diagram';
910

1011
@Component({
1112
selector: 'app-group-node',
12-
imports: [NgDiagramNodeResizeAdornmentComponent, NgDiagramNodeSelectedDirective, NgDiagramGroupHighlightedDirective],
13+
imports: [
14+
NgDiagramNodeResizeAdornmentComponent,
15+
NgDiagramNodeSelectedDirective,
16+
NgDiagramGroupHighlightedDirective,
17+
NgDiagramNodeRotateAdornmentComponent,
18+
],
1319
templateUrl: './group-node.component.html',
1420
styleUrls: ['./group-node.component.scss'],
1521
changeDetection: ChangeDetectionStrategy.OnPush,

apps/docs/src/content/docs/changelog.mdx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1212

1313
## [Unreleased]
1414

15+
## [0.9.1] - 2026-01-08
16+
17+
### Fixed
18+
19+
- Fixed resizing group with rotated child nodes ([#504](https://github.com/synergycodes/ng-diagram/pull/504))
20+
- Fixed error on drag&drop HTML object (not palette node) to the diagram ([#510](https://github.com/synergycodes/ng-diagram/pull/510))
21+
1522
## [0.9.0] - 2025-12-12
1623

1724
### Added
@@ -115,7 +122,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
115122

116123
Initial tagged release.
117124

118-
[unreleased]: https://github.com/synergycodes/ng-diagram/compare/v0.9.0...HEAD
125+
[unreleased]: https://github.com/synergycodes/ng-diagram/compare/v0.9.1...HEAD
126+
[0.9.1]: https://github.com/synergycodes/ng-diagram/compare/v0.9.0...v0.9.1
119127
[0.9.0]: https://github.com/synergycodes/ng-diagram/releases/tag/v0.9.0
120128
[0.8.1]: https://github.com/synergycodes/ng-diagram/releases/tag/v0.8.1
121129
[0.8.0]: https://github.com/synergycodes/ng-diagram/releases/tag/v0.8.0

packages/ng-diagram/projects/ng-diagram/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "ng-diagram",
3-
"version": "0.9.0",
3+
"version": "0.9.1",
44
"description": "A robust Angular library for building interactive diagrams, node-based editors, and visual programming interfaces",
55
"keywords": [
66
"angular",

packages/ng-diagram/projects/ng-diagram/src/core/src/utils/group-size.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { Bounds, GroupNode, Node, Rect } from '../types';
2+
import { getNodeMeasuredBounds } from './dimensions';
23
import { getBoundsFromRect, getRect, getRectFromBounds } from './rects-points-sizes';
34

45
interface CalculateGroupRectOptions {
@@ -32,7 +33,9 @@ export const calculateGroupBounds = (
3233
throw new Error(`calculateGroupBounds: child node ${node.id} does not have both width and height defined`);
3334
}
3435

35-
const nodeBounds = getBoundsFromRect(getRect(node));
36+
const nodeBounds = node.measuredBounds
37+
? getBoundsFromRect(node.measuredBounds)
38+
: getBoundsFromRect(getNodeMeasuredBounds(node));
3639

3740
acc.left = Math.min(acc.left, nodeBounds.left);
3841
acc.top = Math.min(acc.top, nodeBounds.top);

packages/ng-diagram/projects/ng-diagram/src/lib/directives/input-events/palette-drop/palette-drop.directive.ts

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,19 @@ The palette drop event will continue with empty data object.
2121
Documentation: https://www.ngdiagram.dev/docs/guides/palette/
2222
`;
2323

24+
const PALETTE_DROP_NOT_NODE_ERROR = () =>
25+
`[ngDiagram] Invalid drop data: expected type "NgDiagramPaletteItem".
26+
27+
Received data: "UNKNOWN"
28+
29+
To fix this error:
30+
• Ensure the dragged data is of type "NgDiagramPaletteItem" and is dragged from a valid palette item.
31+
32+
The palette drop event will continue with empty data object.
33+
34+
Documentation: https://www.ngdiagram.dev/docs/guides/palette/
35+
`;
36+
2437
@Directive({
2538
selector: '[ngDiagramPaletteDrop]',
2639
standalone: true,
@@ -37,13 +50,16 @@ export class PaletteDropDirective {
3750
event.preventDefault();
3851
const dataString = event.dataTransfer?.getData('text/plain');
3952
const baseEvent = this.inputEventsRouterService.getBaseEvent(event);
40-
4153
let parsedData = {};
54+
4255
if (dataString) {
4356
try {
4457
parsedData = JSON.parse(dataString);
4558
} catch (error) {
46-
console.error(PALETTE_DROP_JSON_PARSE_ERROR(dataString, error));
59+
if (!this.paletteService.draggedNode()) {
60+
return console.warn(PALETTE_DROP_NOT_NODE_ERROR());
61+
}
62+
return console.error(PALETTE_DROP_JSON_PARSE_ERROR(dataString, error));
4763
}
4864
}
4965

0 commit comments

Comments
 (0)