@node-projects/web-component-designer 0.2.21 → 0.2.22

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 (45) hide show
  1. package/dist/elements/controls/SimpleSplitView.d.ts +2 -2
  2. package/dist/elements/helper/getBoxQuads.js +110 -0
  3. package/dist/elements/helper/getBoxQuads.js.map +1 -1
  4. package/dist/elements/item/DesignItem.d.ts +1 -1
  5. package/dist/elements/widgets/designerView/DomConverter.d.ts +1 -1
  6. package/dist/index-min.js +13 -13
  7. package/dist/index-min.js.map +3 -3
  8. package/package.json +1 -1
  9. package/.claude/settings.local.json +0 -9
  10. package/dist/elements/services/propertiesService/DefaultEditorTypesService.d.ts +0 -6
  11. package/dist/elements/services/propertiesService/DefaultEditorTypesService.js +0 -68
  12. package/dist/elements/services/propertiesService/DefaultEditorTypesService.js.map +0 -1
  13. package/dist/elements/services/propertiesService/DefaultInputTypeElementService.d.ts +0 -7
  14. package/dist/elements/services/propertiesService/DefaultInputTypeElementService.js +0 -21
  15. package/dist/elements/services/propertiesService/DefaultInputTypeElementService.js.map +0 -1
  16. package/dist/elements/services/propertiesService/IEditorATypesService.d.ts +0 -5
  17. package/dist/elements/services/propertiesService/IEditorATypesService.js +0 -2
  18. package/dist/elements/services/propertiesService/IEditorATypesService.js.map +0 -1
  19. package/dist/elements/services/propertiesService/IEditorTypesService copy.d.ts +0 -5
  20. package/dist/elements/services/propertiesService/IEditorTypesService copy.js +0 -2
  21. package/dist/elements/services/propertiesService/IEditorTypesService copy.js.map +0 -1
  22. package/dist/elements/services/propertiesService/IEditorTypesService.d.ts +0 -5
  23. package/dist/elements/services/propertiesService/IEditorTypesService.js +0 -2
  24. package/dist/elements/services/propertiesService/IEditorTypesService.js.map +0 -1
  25. package/dist/elements/services/propertiesService/IIEditorTypeService.d.ts +0 -6
  26. package/dist/elements/services/propertiesService/IIEditorTypeService.js +0 -2
  27. package/dist/elements/services/propertiesService/IIEditorTypeService.js.map +0 -1
  28. package/dist/elements/services/propertiesService/IInputTypeElementService.d.ts +0 -6
  29. package/dist/elements/services/propertiesService/IInputTypeElementService.js +0 -2
  30. package/dist/elements/services/propertiesService/IInputTypeElementService.js.map +0 -1
  31. package/dist/elements/services/propertiesService/propertyEditors/ColorPropertyEditor copy.d.ts +0 -7
  32. package/dist/elements/services/propertiesService/propertyEditors/ColorPropertyEditor copy.js +0 -30
  33. package/dist/elements/services/propertiesService/propertyEditors/ColorPropertyEditor copy.js.map +0 -1
  34. package/dist/elements/services/propertiesService/propertyEditors/TextPropertyEditor copy.d.ts +0 -7
  35. package/dist/elements/services/propertiesService/propertyEditors/TextPropertyEditor copy.js +0 -23
  36. package/dist/elements/services/propertiesService/propertyEditors/TextPropertyEditor copy.js.map +0 -1
  37. package/dist/elements/widgets/designerView/extensions/pointerExtensions/CursorLinePointerExtension copy.d.ts +0 -13
  38. package/dist/elements/widgets/designerView/extensions/pointerExtensions/CursorLinePointerExtension copy.js +0 -27
  39. package/dist/elements/widgets/designerView/extensions/pointerExtensions/CursorLinePointerExtension copy.js.map +0 -1
  40. package/dist/elements/widgets/designerView/extensions/pointerExtensions/CursorLinePointerExtensionProvider copy.d.ts +0 -7
  41. package/dist/elements/widgets/designerView/extensions/pointerExtensions/CursorLinePointerExtensionProvider copy.js +0 -11
  42. package/dist/elements/widgets/designerView/extensions/pointerExtensions/CursorLinePointerExtensionProvider copy.js.map +0 -1
  43. package/dist/elements/widgets/designerView/extensions/svg/SvgHelper.d.ts +0 -11
  44. package/dist/elements/widgets/designerView/extensions/svg/SvgHelper.js +0 -566
  45. package/dist/elements/widgets/designerView/extensions/svg/SvgHelper.js.map +0 -1
@@ -1,566 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"SvgHelper.js","sourceRoot":"","sources":["../../../../../../src/elements/widgets/designerView/extensions/svg/SvgHelper.ts"],"names":[],"mappings":"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"}