@node-projects/web-component-designer 0.2.10 → 0.2.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/dist/elements/helper/ElementHelper.d.ts +0 -6
  2. package/dist/elements/helper/ElementHelper.js +0 -105
  3. package/dist/elements/helper/ElementHelper.js.map +1 -1
  4. package/dist/elements/item/DesignItem.d.ts +1 -1
  5. package/dist/elements/services/InstanceServiceContainer.d.ts +1 -0
  6. package/dist/elements/services/InstanceServiceContainer.js +1 -0
  7. package/dist/elements/services/InstanceServiceContainer.js.map +1 -1
  8. package/dist/elements/services/designItemService/BaseCustomWebcomponentDesignItemService.d.ts +1 -1
  9. package/dist/elements/services/designItemService/BaseCustomWebcomponentDesignItemService.js +3 -3
  10. package/dist/elements/services/designItemService/BaseCustomWebcomponentDesignItemService.js.map +1 -1
  11. package/dist/elements/services/eventsService/EventsService.d.ts +2 -2
  12. package/dist/elements/services/undoService/UndoService.d.ts +1 -0
  13. package/dist/elements/services/undoService/UndoService.js +1 -0
  14. package/dist/elements/services/undoService/UndoService.js.map +1 -1
  15. package/dist/elements/widgets/designerView/DomConverter.d.ts +1 -1
  16. package/dist/elements/widgets/designerView/designerCanvas.js +2 -1
  17. package/dist/elements/widgets/designerView/designerCanvas.js.map +1 -1
  18. package/dist/elements/widgets/designerView/extensions/ExtensionManager.d.ts +1 -0
  19. package/dist/elements/widgets/designerView/extensions/ExtensionManager.js +17 -0
  20. package/dist/elements/widgets/designerView/extensions/ExtensionManager.js.map +1 -1
  21. package/dist/elements/widgets/designerView/extensions/HighlightElementExtension.d.ts +6 -1
  22. package/dist/elements/widgets/designerView/extensions/HighlightElementExtension.js +12 -1
  23. package/dist/elements/widgets/designerView/extensions/HighlightElementExtension.js.map +1 -1
  24. package/dist/elements/widgets/designerView/extensions/HighlightElementExtensionProvider.d.ts +3 -0
  25. package/dist/elements/widgets/designerView/extensions/HighlightElementExtensionProvider.js +6 -1
  26. package/dist/elements/widgets/designerView/extensions/HighlightElementExtensionProvider.js.map +1 -1
  27. package/dist/elements/widgets/designerView/extensions/IExtensionManger.d.ts +1 -0
  28. package/dist/elements/widgets/designerView/extensions/flex/FlexboxExtensionProvider.js +3 -0
  29. package/dist/elements/widgets/designerView/extensions/flex/FlexboxExtensionProvider.js.map +1 -1
  30. package/dist/elements/widgets/designerView/extensions/grid/DisplayGridExtensionProvider.js +3 -0
  31. package/dist/elements/widgets/designerView/extensions/grid/DisplayGridExtensionProvider.js.map +1 -1
  32. package/dist/elements/widgets/designerView/extensions/svg/SvgHelper.d.ts +11 -0
  33. package/dist/elements/widgets/designerView/extensions/svg/SvgHelper.js +566 -0
  34. package/dist/elements/widgets/designerView/extensions/svg/SvgHelper.js.map +1 -0
  35. package/dist/elements/widgets/designerView/extensions/svg/UnifiedGeometryExtension.d.ts +0 -9
  36. package/dist/elements/widgets/designerView/extensions/svg/UnifiedGeometryExtension.js +3 -130
  37. package/dist/elements/widgets/designerView/extensions/svg/UnifiedGeometryExtension.js.map +1 -1
  38. package/dist/elements/widgets/designerView/tools/toolBar/buttons/DrawToolButtonProvider.js +2 -0
  39. package/dist/elements/widgets/designerView/tools/toolBar/buttons/DrawToolButtonProvider.js.map +1 -1
  40. package/dist/elements/widgets/designerView/tools/toolBar/buttons/TextToolButtonProvider.js +2 -0
  41. package/dist/elements/widgets/designerView/tools/toolBar/buttons/TextToolButtonProvider.js.map +1 -1
  42. package/dist/elements/widgets/designerView/tools/toolBar/buttons/TransformToolButtonProvider.js +2 -0
  43. package/dist/elements/widgets/designerView/tools/toolBar/buttons/TransformToolButtonProvider.js.map +1 -1
  44. package/dist/index-min.js +7 -7
  45. package/dist/index-min.js.map +4 -4
  46. package/package.json +1 -1
@@ -0,0 +1,566 @@
1
+ import '../../../../helper/PathDataPolyfill.js';
2
+ import { createPathD } from '../../../../helper/PathDataPolyfill.js';
3
+ export function isSupportedSvgGeometryElement(element) {
4
+ return element instanceof SVGPathElement ||
5
+ element instanceof SVGRectElement ||
6
+ element instanceof SVGLineElement ||
7
+ element instanceof SVGCircleElement ||
8
+ element instanceof SVGEllipseElement ||
9
+ element instanceof SVGPolygonElement ||
10
+ element instanceof SVGPolylineElement;
11
+ }
12
+ export function toOverlayPointFromSvgUserSpace(element, designerCanvas, point) {
13
+ const transform = _getSvgOverlayTransform(element, designerCanvas);
14
+ if (transform) {
15
+ const local = _toElementReferenceBoxPoint(element, point);
16
+ return _applyProjectiveMatrix(transform.matrix, local.x / transform.bbox.width, local.y / transform.bbox.height);
17
+ }
18
+ const fallbackLocalPoint = _toElementReferenceBoxPoint(element, point);
19
+ const tp = designerCanvas.canvas.convertPointFromNode(fallbackLocalPoint, element, { iframes: designerCanvas.iframes });
20
+ return { x: tp.x, y: tp.y };
21
+ }
22
+ export function fromOverlayPointToSvgUserSpace(element, designerCanvas, point) {
23
+ const transform = _getSvgOverlayTransform(element, designerCanvas);
24
+ if (transform) {
25
+ const normalized = _applyProjectiveMatrix(transform.inverseMatrix, point.x, point.y);
26
+ return {
27
+ x: transform.bbox.x + normalized.x * transform.bbox.width,
28
+ y: transform.bbox.y + normalized.y * transform.bbox.height,
29
+ };
30
+ }
31
+ const tp = element.convertPointFromNode({ x: point.x, y: point.y }, designerCanvas.canvas, { iframes: designerCanvas.iframes });
32
+ return _fromElementReferenceBoxPoint(element, { x: tp.x, y: tp.y });
33
+ }
34
+ export function createOverlayPathDataFromSvgGeometryElement(element, designerCanvas, options) {
35
+ const basePathData = _createOverlayPathDataWithoutMarkers(element, designerCanvas);
36
+ const includeMarkers = options?.includeMarkers !== false;
37
+ if (!includeMarkers) {
38
+ return basePathData;
39
+ }
40
+ const markerPathData = _createMarkerOverlayPathData(element, designerCanvas);
41
+ if (basePathData && markerPathData) {
42
+ return `${basePathData} ${markerPathData}`;
43
+ }
44
+ return basePathData ?? markerPathData;
45
+ }
46
+ function _createOverlayPathDataWithoutMarkers(element, designerCanvas) {
47
+ if (!isSupportedSvgGeometryElement(element)) {
48
+ return null;
49
+ }
50
+ const getPathData = element.getPathData;
51
+ if (!getPathData) {
52
+ return null;
53
+ }
54
+ const sourcePathData = getPathData.call(element, { normalize: true }) ?? [];
55
+ if (!sourcePathData.length) {
56
+ return null;
57
+ }
58
+ const transformedPathData = [];
59
+ let currentPoint = { x: 0, y: 0 };
60
+ let subPathStart = { x: 0, y: 0 };
61
+ for (const command of sourcePathData) {
62
+ const type = command.type.toUpperCase();
63
+ const isRelative = command.type !== type;
64
+ const values = command.values ?? [];
65
+ const toAbsolute = (x, y) => {
66
+ if (isRelative) {
67
+ return { x: currentPoint.x + x, y: currentPoint.y + y };
68
+ }
69
+ return { x, y };
70
+ };
71
+ const toOverlay = (x, y) => {
72
+ const absolutePoint = toAbsolute(x, y);
73
+ return toOverlayPointFromSvgUserSpace(element, designerCanvas, absolutePoint);
74
+ };
75
+ switch (type) {
76
+ case 'M': {
77
+ const overlayPoint = toOverlay(values[0], values[1]);
78
+ transformedPathData.push({ type: 'M', values: [overlayPoint.x, overlayPoint.y] });
79
+ currentPoint = toAbsolute(values[0], values[1]);
80
+ subPathStart = { ...currentPoint };
81
+ break;
82
+ }
83
+ case 'L': {
84
+ const overlayPoint = toOverlay(values[0], values[1]);
85
+ transformedPathData.push({ type: 'L', values: [overlayPoint.x, overlayPoint.y] });
86
+ currentPoint = toAbsolute(values[0], values[1]);
87
+ break;
88
+ }
89
+ case 'H': {
90
+ const target = isRelative ? { x: currentPoint.x + values[0], y: currentPoint.y } : { x: values[0], y: currentPoint.y };
91
+ const overlayPoint = toOverlayPointFromSvgUserSpace(element, designerCanvas, target);
92
+ transformedPathData.push({ type: 'L', values: [overlayPoint.x, overlayPoint.y] });
93
+ currentPoint = target;
94
+ break;
95
+ }
96
+ case 'V': {
97
+ const target = isRelative ? { x: currentPoint.x, y: currentPoint.y + values[0] } : { x: currentPoint.x, y: values[0] };
98
+ const overlayPoint = toOverlayPointFromSvgUserSpace(element, designerCanvas, target);
99
+ transformedPathData.push({ type: 'L', values: [overlayPoint.x, overlayPoint.y] });
100
+ currentPoint = target;
101
+ break;
102
+ }
103
+ case 'C': {
104
+ const cp1 = toOverlay(values[0], values[1]);
105
+ const cp2 = toOverlay(values[2], values[3]);
106
+ const end = toOverlay(values[4], values[5]);
107
+ transformedPathData.push({ type: 'C', values: [cp1.x, cp1.y, cp2.x, cp2.y, end.x, end.y] });
108
+ currentPoint = toAbsolute(values[4], values[5]);
109
+ break;
110
+ }
111
+ case 'S': {
112
+ const cp2 = toOverlay(values[0], values[1]);
113
+ const end = toOverlay(values[2], values[3]);
114
+ transformedPathData.push({ type: 'S', values: [cp2.x, cp2.y, end.x, end.y] });
115
+ currentPoint = toAbsolute(values[2], values[3]);
116
+ break;
117
+ }
118
+ case 'Q': {
119
+ const cp1 = toOverlay(values[0], values[1]);
120
+ const end = toOverlay(values[2], values[3]);
121
+ transformedPathData.push({ type: 'Q', values: [cp1.x, cp1.y, end.x, end.y] });
122
+ currentPoint = toAbsolute(values[2], values[3]);
123
+ break;
124
+ }
125
+ case 'T': {
126
+ const end = toOverlay(values[0], values[1]);
127
+ transformedPathData.push({ type: 'T', values: [end.x, end.y] });
128
+ currentPoint = toAbsolute(values[0], values[1]);
129
+ break;
130
+ }
131
+ case 'A': {
132
+ const end = toOverlay(values[5], values[6]);
133
+ transformedPathData.push({ type: 'A', values: [values[0], values[1], values[2], values[3], values[4], end.x, end.y] });
134
+ currentPoint = toAbsolute(values[5], values[6]);
135
+ break;
136
+ }
137
+ case 'Z': {
138
+ transformedPathData.push({ type: 'Z', values: [] });
139
+ currentPoint = { ...subPathStart };
140
+ break;
141
+ }
142
+ }
143
+ }
144
+ return createPathD(transformedPathData);
145
+ }
146
+ function _createMarkerOverlayPathData(element, designerCanvas) {
147
+ if (!(element instanceof SVGGraphicsElement)) {
148
+ return null;
149
+ }
150
+ const placements = _collectMarkerPlacements(element);
151
+ if (!placements.length) {
152
+ return null;
153
+ }
154
+ const ownerSvg = element.ownerSVGElement;
155
+ if (!ownerSvg) {
156
+ return null;
157
+ }
158
+ const tempGroup = document.createElementNS('http://www.w3.org/2000/svg', 'g');
159
+ tempGroup.setAttribute('visibility', 'hidden');
160
+ tempGroup.setAttribute('pointer-events', 'none');
161
+ ownerSvg.appendChild(tempGroup);
162
+ try {
163
+ const pathParts = [];
164
+ for (const placement of placements) {
165
+ const markerInstance = _createMarkerInstanceGroup(element, placement);
166
+ if (!markerInstance) {
167
+ continue;
168
+ }
169
+ tempGroup.appendChild(markerInstance);
170
+ const markerGraphics = markerInstance.querySelectorAll('path, rect, line, circle, ellipse, polygon, polyline');
171
+ for (const markerGraphic of markerGraphics) {
172
+ const pathData = _createOverlayPathDataWithoutMarkers(markerGraphic, designerCanvas);
173
+ if (pathData) {
174
+ pathParts.push(pathData);
175
+ }
176
+ }
177
+ }
178
+ return pathParts.length ? pathParts.join(' ') : null;
179
+ }
180
+ finally {
181
+ tempGroup.remove();
182
+ }
183
+ }
184
+ function _collectMarkerPlacements(element) {
185
+ const segments = _getNormalizedPathSegments(element);
186
+ if (!segments.length) {
187
+ return [];
188
+ }
189
+ const placements = [];
190
+ const startMarker = _resolveMarkerReference(element, 'marker-start');
191
+ const midMarker = _resolveMarkerReference(element, 'marker-mid');
192
+ const endMarker = _resolveMarkerReference(element, 'marker-end');
193
+ if (startMarker) {
194
+ placements.push({
195
+ marker: startMarker,
196
+ point: segments[0].start,
197
+ angle: _resolveMarkerAngle(startMarker, segments[0].startAngle, undefined, true)
198
+ });
199
+ }
200
+ if (midMarker) {
201
+ for (let i = 0; i < segments.length - 1; i++) {
202
+ if (!_pointsEqual(segments[i].end, segments[i + 1].start)) {
203
+ continue;
204
+ }
205
+ placements.push({
206
+ marker: midMarker,
207
+ point: segments[i].end,
208
+ angle: _resolveMarkerAngle(midMarker, segments[i].endAngle, segments[i + 1].startAngle, false)
209
+ });
210
+ }
211
+ if (_pointsEqual(segments[segments.length - 1].end, segments[0].start) && segments.length > 1) {
212
+ placements.push({
213
+ marker: midMarker,
214
+ point: segments[segments.length - 1].end,
215
+ angle: _resolveMarkerAngle(midMarker, segments[segments.length - 1].endAngle, segments[0].startAngle, false)
216
+ });
217
+ }
218
+ }
219
+ if (endMarker) {
220
+ const lastSegment = segments[segments.length - 1];
221
+ placements.push({
222
+ marker: endMarker,
223
+ point: lastSegment.end,
224
+ angle: _resolveMarkerAngle(endMarker, lastSegment.endAngle, undefined, false)
225
+ });
226
+ }
227
+ return placements;
228
+ }
229
+ function _getNormalizedPathSegments(element) {
230
+ const getPathData = element.getPathData;
231
+ if (!getPathData) {
232
+ return [];
233
+ }
234
+ const pathData = getPathData.call(element, { normalize: true }) ?? [];
235
+ const segments = [];
236
+ let currentPoint = { x: 0, y: 0 };
237
+ let subPathStart = { x: 0, y: 0 };
238
+ for (const command of pathData) {
239
+ switch (command.type) {
240
+ case 'M': {
241
+ currentPoint = { x: command.values[0], y: command.values[1] };
242
+ subPathStart = { ...currentPoint };
243
+ break;
244
+ }
245
+ case 'L': {
246
+ const endPoint = { x: command.values[0], y: command.values[1] };
247
+ const angle = _angleBetween(currentPoint, endPoint);
248
+ if (angle != null) {
249
+ segments.push({ start: { ...currentPoint }, end: endPoint, startAngle: angle, endAngle: angle });
250
+ }
251
+ currentPoint = endPoint;
252
+ break;
253
+ }
254
+ case 'C': {
255
+ const cp1 = { x: command.values[0], y: command.values[1] };
256
+ const cp2 = { x: command.values[2], y: command.values[3] };
257
+ const endPoint = { x: command.values[4], y: command.values[5] };
258
+ const startAngle = _getFirstUsableAngle([currentPoint, cp1, cp2, endPoint]);
259
+ const endAngle = _getLastUsableAngle([currentPoint, cp1, cp2, endPoint]);
260
+ if (startAngle != null && endAngle != null) {
261
+ segments.push({ start: { ...currentPoint }, end: endPoint, startAngle, endAngle });
262
+ }
263
+ currentPoint = endPoint;
264
+ break;
265
+ }
266
+ case 'Z': {
267
+ const angle = _angleBetween(currentPoint, subPathStart);
268
+ if (angle != null) {
269
+ segments.push({ start: { ...currentPoint }, end: { ...subPathStart }, startAngle: angle, endAngle: angle });
270
+ }
271
+ currentPoint = { ...subPathStart };
272
+ break;
273
+ }
274
+ }
275
+ }
276
+ return segments;
277
+ }
278
+ function _resolveMarkerReference(element, attributeName) {
279
+ const reference = element.getAttribute(attributeName)?.trim();
280
+ if (!reference) {
281
+ return null;
282
+ }
283
+ const urlMatch = /^url\((['"]?)(.*?)\1\)$/.exec(reference);
284
+ const url = urlMatch?.[2] ?? reference;
285
+ if (!url.startsWith('#')) {
286
+ return null;
287
+ }
288
+ const rootNode = element.getRootNode();
289
+ const marker = typeof rootNode.querySelector === 'function' ? rootNode.querySelector(url) : null;
290
+ return marker instanceof SVGMarkerElement ? marker : null;
291
+ }
292
+ function _createMarkerInstanceGroup(sourceElement, placement) {
293
+ const marker = placement.marker;
294
+ if (!marker.childNodes.length) {
295
+ return null;
296
+ }
297
+ const markerScale = _getMarkerUnitsScale(sourceElement, marker);
298
+ const outerGroup = document.createElementNS('http://www.w3.org/2000/svg', 'g');
299
+ const transformParts = [
300
+ `translate(${placement.point.x} ${placement.point.y})`,
301
+ `rotate(${placement.angle})`
302
+ ];
303
+ if (markerScale !== 1) {
304
+ transformParts.push(`scale(${markerScale})`);
305
+ }
306
+ outerGroup.setAttribute('transform', transformParts.join(' '));
307
+ const viewBoxTransform = _createViewBoxTransform(marker);
308
+ const mappedRefPoint = _mapMarkerPointToViewport(marker, viewBoxTransform, {
309
+ x: _getAnimatedLengthValue(marker.refX),
310
+ y: _getAnimatedLengthValue(marker.refY)
311
+ });
312
+ const refGroup = document.createElementNS('http://www.w3.org/2000/svg', 'g');
313
+ refGroup.setAttribute('transform', `translate(${-mappedRefPoint.x} ${-mappedRefPoint.y})`);
314
+ outerGroup.appendChild(refGroup);
315
+ const viewBoxGroup = document.createElementNS('http://www.w3.org/2000/svg', 'g');
316
+ if (viewBoxTransform) {
317
+ viewBoxGroup.setAttribute('transform', viewBoxTransform.transform);
318
+ }
319
+ refGroup.appendChild(viewBoxGroup);
320
+ for (const childNode of Array.from(marker.childNodes)) {
321
+ viewBoxGroup.appendChild(childNode.cloneNode(true));
322
+ }
323
+ return outerGroup;
324
+ }
325
+ function _getMarkerUnitsScale(sourceElement, marker) {
326
+ if (marker.getAttribute('markerUnits') === 'userSpaceOnUse') {
327
+ return 1;
328
+ }
329
+ const strokeWidth = parseFloat(getComputedStyle(sourceElement).strokeWidth);
330
+ return Number.isFinite(strokeWidth) && strokeWidth > 0 ? strokeWidth : 1;
331
+ }
332
+ function _createViewBoxTransform(marker) {
333
+ const viewBox = marker.viewBox.baseVal;
334
+ if (viewBox == null || (viewBox.width === 0 && viewBox.height === 0)) {
335
+ return null;
336
+ }
337
+ const viewportWidth = _getAnimatedLengthValue(marker.markerWidth);
338
+ const viewportHeight = _getAnimatedLengthValue(marker.markerHeight);
339
+ if (!viewportWidth || !viewportHeight || !viewBox.width || !viewBox.height) {
340
+ return null;
341
+ }
342
+ const preserveAspectRatio = marker.preserveAspectRatio.baseVal;
343
+ let scaleX = viewportWidth / viewBox.width;
344
+ let scaleY = viewportHeight / viewBox.height;
345
+ let translateX = -viewBox.x * scaleX;
346
+ let translateY = -viewBox.y * scaleY;
347
+ if (preserveAspectRatio.align !== SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_NONE) {
348
+ const uniformScale = preserveAspectRatio.meetOrSlice === SVGPreserveAspectRatio.SVG_MEETORSLICE_SLICE
349
+ ? Math.max(scaleX, scaleY)
350
+ : Math.min(scaleX, scaleY);
351
+ scaleX = uniformScale;
352
+ scaleY = uniformScale;
353
+ const extraWidth = viewportWidth - viewBox.width * uniformScale;
354
+ const extraHeight = viewportHeight - viewBox.height * uniformScale;
355
+ const { xAlign, yAlign } = _getAlignFactors(preserveAspectRatio.align);
356
+ translateX = -viewBox.x * uniformScale + extraWidth * xAlign;
357
+ translateY = -viewBox.y * uniformScale + extraHeight * yAlign;
358
+ }
359
+ return {
360
+ transform: `matrix(${scaleX} 0 0 ${scaleY} ${translateX} ${translateY})`,
361
+ scaleX,
362
+ scaleY,
363
+ translateX,
364
+ translateY,
365
+ };
366
+ }
367
+ function _mapMarkerPointToViewport(marker, viewBoxTransform, point) {
368
+ if (!viewBoxTransform) {
369
+ return point;
370
+ }
371
+ return {
372
+ x: point.x * viewBoxTransform.scaleX + viewBoxTransform.translateX,
373
+ y: point.y * viewBoxTransform.scaleY + viewBoxTransform.translateY,
374
+ };
375
+ }
376
+ function _getAlignFactors(align) {
377
+ switch (align) {
378
+ case SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMIDYMIN:
379
+ return { xAlign: 0.5, yAlign: 0 };
380
+ case SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMAXYMIN:
381
+ return { xAlign: 1, yAlign: 0 };
382
+ case SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMINYMID:
383
+ return { xAlign: 0, yAlign: 0.5 };
384
+ case SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMIDYMID:
385
+ return { xAlign: 0.5, yAlign: 0.5 };
386
+ case SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMAXYMID:
387
+ return { xAlign: 1, yAlign: 0.5 };
388
+ case SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMINYMAX:
389
+ return { xAlign: 0, yAlign: 1 };
390
+ case SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMIDYMAX:
391
+ return { xAlign: 0.5, yAlign: 1 };
392
+ case SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMAXYMAX:
393
+ return { xAlign: 1, yAlign: 1 };
394
+ default:
395
+ return { xAlign: 0, yAlign: 0 };
396
+ }
397
+ }
398
+ function _resolveMarkerAngle(marker, incomingAngle, outgoingAngle, isStartMarker) {
399
+ const orient = marker.orientType.baseVal === SVGMarkerElement.SVG_MARKER_ORIENT_AUTO ? 'auto' : marker.getAttribute('orient')?.trim() ?? '0';
400
+ if (orient === 'auto' || orient === 'auto-start-reverse') {
401
+ let angle = outgoingAngle == null ? incomingAngle : _bisectAngles(incomingAngle, outgoingAngle);
402
+ if (isStartMarker && orient === 'auto-start-reverse') {
403
+ angle += 180;
404
+ }
405
+ return angle;
406
+ }
407
+ return _parseAngle(orient);
408
+ }
409
+ function _parseAngle(value) {
410
+ if (value.endsWith('rad')) {
411
+ return parseFloat(value) * 180 / Math.PI;
412
+ }
413
+ if (value.endsWith('turn')) {
414
+ return parseFloat(value) * 360;
415
+ }
416
+ if (value.endsWith('grad')) {
417
+ return parseFloat(value) * 0.9;
418
+ }
419
+ return parseFloat(value);
420
+ }
421
+ function _bisectAngles(angleA, angleB) {
422
+ const vectorA = { x: Math.cos(angleA * Math.PI / 180), y: Math.sin(angleA * Math.PI / 180) };
423
+ const vectorB = { x: Math.cos(angleB * Math.PI / 180), y: Math.sin(angleB * Math.PI / 180) };
424
+ const sum = { x: vectorA.x + vectorB.x, y: vectorA.y + vectorB.y };
425
+ if (Math.abs(sum.x) < 1e-10 && Math.abs(sum.y) < 1e-10) {
426
+ return angleB;
427
+ }
428
+ return Math.atan2(sum.y, sum.x) * 180 / Math.PI;
429
+ }
430
+ function _getFirstUsableAngle(points) {
431
+ for (let i = 0; i < points.length - 1; i++) {
432
+ const angle = _angleBetween(points[i], points[i + 1]);
433
+ if (angle != null) {
434
+ return angle;
435
+ }
436
+ }
437
+ return null;
438
+ }
439
+ function _getLastUsableAngle(points) {
440
+ for (let i = points.length - 1; i > 0; i--) {
441
+ const angle = _angleBetween(points[i - 1], points[i]);
442
+ if (angle != null) {
443
+ return angle;
444
+ }
445
+ }
446
+ return null;
447
+ }
448
+ function _angleBetween(start, end) {
449
+ const dx = end.x - start.x;
450
+ const dy = end.y - start.y;
451
+ if (Math.abs(dx) < 1e-10 && Math.abs(dy) < 1e-10) {
452
+ return null;
453
+ }
454
+ return Math.atan2(dy, dx) * 180 / Math.PI;
455
+ }
456
+ function _pointsEqual(a, b) {
457
+ return Math.abs(a.x - b.x) < 1e-10 && Math.abs(a.y - b.y) < 1e-10;
458
+ }
459
+ function _getAnimatedLengthValue(length) {
460
+ return length?.baseVal?.value ?? 0;
461
+ }
462
+ function _toElementReferenceBoxPoint(element, point) {
463
+ const bbox = _getSvgGeometryBBoxOffset(element);
464
+ return { x: point.x - bbox.x, y: point.y - bbox.y };
465
+ }
466
+ function _fromElementReferenceBoxPoint(element, point) {
467
+ const bbox = _getSvgGeometryBBoxOffset(element);
468
+ return { x: point.x + bbox.x, y: point.y + bbox.y };
469
+ }
470
+ function _getSvgGeometryBBoxOffset(element) {
471
+ if (!(element instanceof SVGGraphicsElement) || element instanceof SVGSVGElement) {
472
+ return { x: 0, y: 0 };
473
+ }
474
+ const bbox = element.getBBox();
475
+ return { x: bbox.x, y: bbox.y };
476
+ }
477
+ function _getSvgOverlayTransform(element, designerCanvas) {
478
+ if (!(element instanceof SVGGraphicsElement) || element instanceof SVGSVGElement) {
479
+ return null;
480
+ }
481
+ const bbox = element.getBBox();
482
+ if (Math.abs(bbox.width) < 1e-10 || Math.abs(bbox.height) < 1e-10) {
483
+ return null;
484
+ }
485
+ const quad = element.getBoxQuads({ relativeTo: designerCanvas.canvas, iframes: designerCanvas.iframes })[0];
486
+ if (!quad) {
487
+ return null;
488
+ }
489
+ const matrix = _createProjectiveMatrixForQuad(quad);
490
+ if (!matrix) {
491
+ return null;
492
+ }
493
+ const inverseMatrix = _invertProjectiveMatrix(matrix);
494
+ if (!inverseMatrix) {
495
+ return null;
496
+ }
497
+ return { bbox, matrix, inverseMatrix };
498
+ }
499
+ function _createProjectiveMatrixForQuad(quad) {
500
+ const x1 = quad.p1.x;
501
+ const y1 = quad.p1.y;
502
+ const x2 = quad.p2.x;
503
+ const y2 = quad.p2.y;
504
+ const x3 = quad.p3.x;
505
+ const y3 = quad.p3.y;
506
+ const x4 = quad.p4.x;
507
+ const y4 = quad.p4.y;
508
+ const sx = x1 - x2 + x3 - x4;
509
+ const sy = y1 - y2 + y3 - y4;
510
+ const dx1 = x2 - x3;
511
+ const dy1 = y2 - y3;
512
+ const dx2 = x4 - x3;
513
+ const dy2 = y4 - y3;
514
+ let g = 0;
515
+ let h = 0;
516
+ if (Math.abs(sx) >= 1e-10 || Math.abs(sy) >= 1e-10) {
517
+ const denominator = dx1 * dy2 - dy1 * dx2;
518
+ if (Math.abs(denominator) < 1e-10) {
519
+ return null;
520
+ }
521
+ g = (sx * dy2 - sy * dx2) / denominator;
522
+ h = (dx1 * sy - dy1 * sx) / denominator;
523
+ }
524
+ return [
525
+ x2 - x1 + g * x2,
526
+ x4 - x1 + h * x4,
527
+ x1,
528
+ y2 - y1 + g * y2,
529
+ y4 - y1 + h * y4,
530
+ y1,
531
+ g,
532
+ h,
533
+ 1,
534
+ ];
535
+ }
536
+ function _applyProjectiveMatrix(matrix, x, y) {
537
+ const projectedX = matrix[0] * x + matrix[1] * y + matrix[2];
538
+ const projectedY = matrix[3] * x + matrix[4] * y + matrix[5];
539
+ const projectedW = matrix[6] * x + matrix[7] * y + matrix[8];
540
+ const safeW = Math.abs(projectedW) < 1e-10 ? (projectedW < 0 ? -1e-10 : 1e-10) : projectedW;
541
+ return {
542
+ x: projectedX / safeW,
543
+ y: projectedY / safeW,
544
+ };
545
+ }
546
+ function _invertProjectiveMatrix(matrix) {
547
+ const determinant = matrix[0] * (matrix[4] * matrix[8] - matrix[5] * matrix[7]) -
548
+ matrix[1] * (matrix[3] * matrix[8] - matrix[5] * matrix[6]) +
549
+ matrix[2] * (matrix[3] * matrix[7] - matrix[4] * matrix[6]);
550
+ if (Math.abs(determinant) < 1e-10) {
551
+ return null;
552
+ }
553
+ const inverseDeterminant = 1 / determinant;
554
+ return [
555
+ (matrix[4] * matrix[8] - matrix[5] * matrix[7]) * inverseDeterminant,
556
+ (matrix[2] * matrix[7] - matrix[1] * matrix[8]) * inverseDeterminant,
557
+ (matrix[1] * matrix[5] - matrix[2] * matrix[4]) * inverseDeterminant,
558
+ (matrix[5] * matrix[6] - matrix[3] * matrix[8]) * inverseDeterminant,
559
+ (matrix[0] * matrix[8] - matrix[2] * matrix[6]) * inverseDeterminant,
560
+ (matrix[2] * matrix[3] - matrix[0] * matrix[5]) * inverseDeterminant,
561
+ (matrix[3] * matrix[7] - matrix[4] * matrix[6]) * inverseDeterminant,
562
+ (matrix[1] * matrix[6] - matrix[0] * matrix[7]) * inverseDeterminant,
563
+ (matrix[0] * matrix[4] - matrix[1] * matrix[3]) * inverseDeterminant,
564
+ ];
565
+ }
566
+ //# sourceMappingURL=SvgHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SvgHelper.js","sourceRoot":"","sources":["../../../../../../src/elements/widgets/designerView/extensions/svg/SvgHelper.ts"],"names":[],"mappings":"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"}
@@ -29,15 +29,6 @@ export declare class UnifiedGeometryExtension extends AbstractExtension {
29
29
  private _toOverlay;
30
30
  /** Convert overlay (canvas) coordinates back to SVG user-space. */
31
31
  private _fromOverlay;
32
- private _getSvgOverlayTransform;
33
- private _mapSvgPointToOverlay;
34
- private _mapOverlayPointToSvg;
35
- private _createProjectiveMatrixForQuad;
36
- private _applyProjectiveMatrix;
37
- private _invertProjectiveMatrix;
38
- private _toElementReferenceBoxPoint;
39
- private _fromElementReferenceBoxPoint;
40
- private _getSvgGeometryBBoxOffset;
41
32
  private _drawOverlays;
42
33
  private _updateOverlayAppearance;
43
34
  private _addTrackedListener;