@node-projects/web-component-designer 0.1.197 → 0.1.199

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 (80) hide show
  1. package/dist/elements/documentContainer.d.ts +1 -1
  2. package/dist/elements/helper/ElementHelper.d.ts +7 -0
  3. package/dist/elements/helper/ElementHelper.js +52 -15
  4. package/dist/elements/helper/ElementHelper.js.map +1 -1
  5. package/dist/elements/helper/GridHelper.d.ts +1 -1
  6. package/dist/elements/helper/GridHelper.js +4 -4
  7. package/dist/elements/helper/GridHelper.js.map +1 -1
  8. package/dist/elements/helper/TransformHelper.d.ts +0 -14
  9. package/dist/elements/helper/TransformHelper.js +2 -197
  10. package/dist/elements/helper/TransformHelper.js.map +1 -1
  11. package/dist/elements/helper/getBoxQuads.d.ts +48 -0
  12. package/dist/elements/helper/getBoxQuads.js +383 -0
  13. package/dist/elements/helper/getBoxQuads.js.map +1 -0
  14. package/dist/elements/item/DesignItem.d.ts +0 -1
  15. package/dist/elements/services/demoProviderService/SimpleDemoProviderService.js +1 -0
  16. package/dist/elements/services/demoProviderService/SimpleDemoProviderService.js.map +1 -1
  17. package/dist/elements/services/multiplayerService/IDataExchangeService.d.ts +0 -0
  18. package/dist/elements/services/multiplayerService/IDataExchangeService.js +9 -0
  19. package/dist/elements/services/multiplayerService/IDataExchangeService.js.map +1 -0
  20. package/dist/elements/services/multiplayerService/MultiplayerDataService.d.ts +0 -0
  21. package/dist/elements/services/multiplayerService/MultiplayerDataService.js +24 -0
  22. package/dist/elements/services/multiplayerService/MultiplayerDataService.js.map +1 -0
  23. package/dist/elements/services/multiplayerService/services/ChatService.d.ts +0 -0
  24. package/dist/elements/services/multiplayerService/services/ChatService.js +20 -0
  25. package/dist/elements/services/multiplayerService/services/ChatService.js.map +1 -0
  26. package/dist/elements/services/multiplayerService/services/IChatService.d.ts +0 -0
  27. package/dist/elements/services/multiplayerService/services/IChatService.js +28 -0
  28. package/dist/elements/services/multiplayerService/services/IChatService.js.map +1 -0
  29. package/dist/elements/services/placementService/AbsolutePlacementService.js +4 -10
  30. package/dist/elements/services/placementService/AbsolutePlacementService.js.map +1 -1
  31. package/dist/elements/services/placementService/DefaultPlacementService.js +4 -10
  32. package/dist/elements/services/placementService/DefaultPlacementService.js.map +1 -1
  33. package/dist/elements/services/propertiesService/services/CssProperties.json +2 -1
  34. package/dist/elements/services/stylesheetService/AbstractStylesheetService.d.ts +1 -1
  35. package/dist/elements/widgets/debugView/debug-view.js +2 -0
  36. package/dist/elements/widgets/debugView/debug-view.js.map +1 -1
  37. package/dist/elements/widgets/designerView/DomConverter.d.ts +1 -1
  38. package/dist/elements/widgets/designerView/IDesignerCanvas.d.ts +1 -1
  39. package/dist/elements/widgets/designerView/designerCanvas.d.ts +0 -1
  40. package/dist/elements/widgets/designerView/extensions/AbstractExtensionBase.d.ts +1 -1
  41. package/dist/elements/widgets/designerView/extensions/AbstractExtensionBase.js +1 -1
  42. package/dist/elements/widgets/designerView/extensions/AbstractExtensionBase.js.map +1 -1
  43. package/dist/elements/widgets/designerView/extensions/EditText/EditTextExtension.js +3 -3
  44. package/dist/elements/widgets/designerView/extensions/EditText/EditTextExtension.js.map +1 -1
  45. package/dist/elements/widgets/designerView/extensions/ElementDragTitleExtension.js +17 -17
  46. package/dist/elements/widgets/designerView/extensions/ElementDragTitleExtension.js.map +1 -1
  47. package/dist/elements/widgets/designerView/extensions/FlexboxExtension.js +2 -2
  48. package/dist/elements/widgets/designerView/extensions/FlexboxExtension.js.map +1 -1
  49. package/dist/elements/widgets/designerView/extensions/GrayOutDragOverContainerExtension.js +2 -2
  50. package/dist/elements/widgets/designerView/extensions/GrayOutDragOverContainerExtension.js.map +1 -1
  51. package/dist/elements/widgets/designerView/extensions/GrayOutExtension.js +3 -3
  52. package/dist/elements/widgets/designerView/extensions/GrayOutExtension.js.map +1 -1
  53. package/dist/elements/widgets/designerView/extensions/HighlightElementExtension.js +3 -3
  54. package/dist/elements/widgets/designerView/extensions/HighlightElementExtension.js.map +1 -1
  55. package/dist/elements/widgets/designerView/extensions/InvisibleElementExtension.js +3 -3
  56. package/dist/elements/widgets/designerView/extensions/InvisibleElementExtension.js.map +1 -1
  57. package/dist/elements/widgets/designerView/extensions/MarginExtension.js +7 -7
  58. package/dist/elements/widgets/designerView/extensions/MarginExtension.js.map +1 -1
  59. package/dist/elements/widgets/designerView/extensions/PaddingExtension.js +7 -7
  60. package/dist/elements/widgets/designerView/extensions/PaddingExtension.js.map +1 -1
  61. package/dist/elements/widgets/designerView/extensions/PreviousElementSelectExtension.js +6 -6
  62. package/dist/elements/widgets/designerView/extensions/PreviousElementSelectExtension.js.map +1 -1
  63. package/dist/elements/widgets/designerView/extensions/ResizeExtension.js +13 -12
  64. package/dist/elements/widgets/designerView/extensions/ResizeExtension.js.map +1 -1
  65. package/dist/elements/widgets/designerView/extensions/RotateExtension.js +7 -6
  66. package/dist/elements/widgets/designerView/extensions/RotateExtension.js.map +1 -1
  67. package/dist/elements/widgets/designerView/extensions/SelectionDefaultExtension.js +7 -14
  68. package/dist/elements/widgets/designerView/extensions/SelectionDefaultExtension.js.map +1 -1
  69. package/dist/elements/widgets/designerView/extensions/TransformOriginExtension.js +3 -3
  70. package/dist/elements/widgets/designerView/extensions/TransformOriginExtension.js.map +1 -1
  71. package/dist/elements/widgets/designerView/extensions/contextMenu/ChildrenContextMenu.d.ts +1 -1
  72. package/dist/elements/widgets/designerView/extensions/contextMenu/ItemsBelowContextMenu.d.ts +1 -1
  73. package/dist/elements/widgets/designerView/extensions/grid/DisplayGridExtension.js +1 -1
  74. package/dist/elements/widgets/designerView/extensions/grid/DisplayGridExtension.js.map +1 -1
  75. package/dist/elements/widgets/designerView/extensions/grid/EditGridColumnRowSizesExtension.js +1 -1
  76. package/dist/elements/widgets/designerView/extensions/grid/EditGridColumnRowSizesExtension.js.map +1 -1
  77. package/dist/elements/widgets/designerView/extensions/grid/GridChildResizeExtension.js +12 -12
  78. package/dist/elements/widgets/designerView/extensions/grid/GridChildResizeExtension.js.map +1 -1
  79. package/dist/polyfill/globals.d.ts +0 -3
  80. package/package.json +1 -1
@@ -0,0 +1,383 @@
1
+ //todo:
2
+ //transform-box https://developer.mozilla.org/en-US/docs/Web/CSS/transform-box
3
+ export function addPolyfill() {
4
+ if (!Node.prototype.getBoxQuads) {
5
+ //@ts-ignore
6
+ Node.prototype.getBoxQuads = function (options) {
7
+ return getBoxQuads(this, options);
8
+ };
9
+ }
10
+ if (!Node.prototype.convertQuadFromNode) {
11
+ //@ts-ignore
12
+ Node.prototype.convertQuadFromNode = function (quad, from, options) {
13
+ return convertQuadFromNode(this, quad, from, options);
14
+ };
15
+ }
16
+ if (!Node.prototype.convertRectFromNode) {
17
+ //@ts-ignore
18
+ Node.prototype.convertRectFromNode = function (rect, from, options) {
19
+ return convertRectFromNode(this, rect, from, options);
20
+ };
21
+ }
22
+ if (!Node.prototype.convertPointFromNode) {
23
+ //@ts-ignore
24
+ Node.prototype.convertPointFromNode = function (point, from, options) {
25
+ return convertPointFromNode(this, point, from, options);
26
+ };
27
+ }
28
+ }
29
+ /**
30
+ * @param {Node} node
31
+ * @param {DOMQuadInit} quad
32
+ * @param {Element} from
33
+ * @param {{fromBox?: 'margin'|'border'|'padding'|'content', toBox?: 'margin'|'border'|'padding'|'content'}=} options
34
+ * @returns {DOMQuad}
35
+ */
36
+ export function convertQuadFromNode(node, quad, from, options) {
37
+ const m1 = getResultingTransformationBetweenElementAndAllAncestors(from, document.body);
38
+ const m2 = getResultingTransformationBetweenElementAndAllAncestors(node, document.body).inverse();
39
+ if (options?.fromBox && options?.fromBox !== 'border') {
40
+ quad = new DOMQuad(transformPointBox(quad.p1, options.fromBox, (node.ownerDocument.defaultView ?? window).getComputedStyle(from), -1), transformPointBox(quad.p2, options.fromBox, (node.ownerDocument.defaultView ?? window).getComputedStyle(from), -1), transformPointBox(quad.p3, options.fromBox, (node.ownerDocument.defaultView ?? window).getComputedStyle(from), -1), transformPointBox(quad.p4, options.fromBox, (node.ownerDocument.defaultView ?? window).getComputedStyle(from), -1));
41
+ }
42
+ let res = new DOMQuad(m2.transformPoint(m1.transformPoint(quad.p1)), m2.transformPoint(m1.transformPoint(quad.p2)), m2.transformPoint(m1.transformPoint(quad.p3)), m2.transformPoint(m1.transformPoint(quad.p4)));
43
+ if (options?.toBox && options?.toBox !== 'border' && node instanceof (node.ownerDocument.defaultView ?? window).Element) {
44
+ res = new DOMQuad(transformPointBox(res.p1, options.toBox, (node.ownerDocument.defaultView ?? window).getComputedStyle(node), -1), transformPointBox(res.p2, options.toBox, (node.ownerDocument.defaultView ?? window).getComputedStyle(node), -1), transformPointBox(res.p3, options.toBox, (node.ownerDocument.defaultView ?? window).getComputedStyle(node), -1), transformPointBox(res.p4, options.toBox, (node.ownerDocument.defaultView ?? window).getComputedStyle(node), -1));
45
+ }
46
+ return res;
47
+ }
48
+ /**
49
+ * @param {Node} node
50
+ * @param {DOMRectReadOnly} rect
51
+ * @param {Element} from
52
+ * @param {{fromBox?: 'margin'|'border'|'padding'|'content', toBox?: 'margin'|'border'|'padding'|'content'}=} options
53
+ * @returns {DOMQuad}
54
+ */
55
+ export function convertRectFromNode(node, rect, from, options) {
56
+ const m1 = getResultingTransformationBetweenElementAndAllAncestors(from, document.body);
57
+ const m2 = getResultingTransformationBetweenElementAndAllAncestors(node, document.body).inverse();
58
+ if (options?.fromBox && options?.fromBox !== 'border') {
59
+ const p = transformPointBox(new DOMPoint(rect.x, rect.y), options.fromBox, (node.ownerDocument.defaultView ?? window).getComputedStyle(from), 1);
60
+ rect = new DOMRect(p.x, p.y, rect.width, rect.height);
61
+ }
62
+ let res = new DOMQuad(m2.transformPoint(m1.transformPoint(new DOMPoint(rect.x, rect.y))), m2.transformPoint(m1.transformPoint(new DOMPoint(rect.x + rect.width, rect.y))), m2.transformPoint(m1.transformPoint(new DOMPoint(rect.x + rect.width, rect.y + rect.height))), m2.transformPoint(m1.transformPoint(new DOMPoint(rect.x, rect.y + rect.height))));
63
+ if (options?.toBox && options?.toBox !== 'border' && node instanceof (node.ownerDocument.defaultView ?? window).Element) {
64
+ res = new DOMQuad(transformPointBox(res.p1, options.toBox, (node.ownerDocument.defaultView ?? window).getComputedStyle(node), -1), transformPointBox(res.p2, options.toBox, (node.ownerDocument.defaultView ?? window).getComputedStyle(node), -1), transformPointBox(res.p3, options.toBox, (node.ownerDocument.defaultView ?? window).getComputedStyle(node), -1), transformPointBox(res.p4, options.toBox, (node.ownerDocument.defaultView ?? window).getComputedStyle(node), -1));
65
+ }
66
+ return res;
67
+ }
68
+ /**
69
+ * @param {Node} node
70
+ * @param {DOMPointInit} point
71
+ * @param {Element} from
72
+ * @param {{fromBox?: 'margin'|'border'|'padding'|'content', toBox?: 'margin'|'border'|'padding'|'content'}=} options
73
+ * @returns {DOMPoint}
74
+ */
75
+ export function convertPointFromNode(node, point, from, options) {
76
+ const m1 = getResultingTransformationBetweenElementAndAllAncestors(from, document.body);
77
+ const m2 = getResultingTransformationBetweenElementAndAllAncestors(node, document.body).inverse();
78
+ if (options?.fromBox && options?.fromBox !== 'border') {
79
+ point = transformPointBox(point, options.fromBox, (node.ownerDocument.defaultView ?? window).getComputedStyle(from), 1);
80
+ }
81
+ let res = m2.transformPoint(m1.transformPoint(point));
82
+ if (options?.toBox && options?.toBox !== 'border' && node instanceof (node.ownerDocument.defaultView ?? window).Element) {
83
+ res = transformPointBox(res, options.toBox, (node.ownerDocument.defaultView ?? window).getComputedStyle(node), -1);
84
+ }
85
+ return res;
86
+ }
87
+ /**
88
+ * @param {DOMPointInit} point
89
+ * @param {'margin'|'border'|'padding'|'content'} box
90
+ * @param {CSSStyleDeclaration} style
91
+ * @param {number} operator
92
+ * @returns {DOMPoint}
93
+ */
94
+ function transformPointBox(point, box, style, operator) {
95
+ if (box === 'margin') {
96
+ return new DOMPoint(point.x - operator * parseFloat(style.marginLeft), point.y - operator * parseFloat(style.marginTop));
97
+ }
98
+ else if (box === 'padding') {
99
+ return new DOMPoint(point.x + operator * parseFloat(style.borderLeftWidth), point.y + operator * parseFloat(style.borderTopWidth));
100
+ }
101
+ else if (box === 'content') {
102
+ return new DOMPoint(point.x + operator * (parseFloat(style.borderLeftWidth) + parseFloat(style.paddingLeft)), point.y + operator * (parseFloat(style.borderTopWidth) + parseFloat(style.paddingTop)));
103
+ }
104
+ //@ts-ignore
105
+ return point;
106
+ }
107
+ /**
108
+ * @param {Node} node
109
+ * @param {{box?: 'margin'|'border'|'padding'|'content', relativeTo?: Element, offset?: DOMQuad}=} options
110
+ * @returns {DOMQuad[]}
111
+ */
112
+ export function getBoxQuads(node, options) {
113
+ let { width, height } = getElementSize(node);
114
+ /** @type {DOMMatrix} */
115
+ let originalElementAndAllParentsMultipliedMatrix = getResultingTransformationBetweenElementAndAllAncestors(node, options?.relativeTo ?? document.body);
116
+ let arr = [{ x: 0, y: 0 }, { x: width, y: 0 }, { x: width, y: height }, { x: 0, y: height }];
117
+ /** @type { [DOMPoint, DOMPoint, DOMPoint, DOMPoint] } */
118
+ //@ts-ignore
119
+ const points = Array(4);
120
+ /** @type {{x: number, y:number}[] } */
121
+ let o = null;
122
+ if (node instanceof (node.ownerDocument.defaultView ?? window).Element) {
123
+ if (options?.box === 'margin') {
124
+ const cs = (node.ownerDocument.defaultView ?? window).getComputedStyle(node);
125
+ o = [{ x: parseFloat(cs.marginLeft), y: parseFloat(cs.marginTop) }, { x: -parseFloat(cs.marginRight), y: parseFloat(cs.marginTop) }, { x: -parseFloat(cs.marginRight), y: -parseFloat(cs.marginBottom) }, { x: parseFloat(cs.marginLeft), y: -parseFloat(cs.marginBottom) }];
126
+ }
127
+ else if (options?.box === 'padding') {
128
+ const cs = (node.ownerDocument.defaultView ?? window).getComputedStyle(node);
129
+ o = [{ x: -parseFloat(cs.borderLeftWidth), y: -parseFloat(cs.borderTopWidth) }, { x: parseFloat(cs.borderRightWidth), y: -parseFloat(cs.borderTopWidth) }, { x: parseFloat(cs.borderRightWidth), y: parseFloat(cs.borderBottomWidth) }, { x: -parseFloat(cs.borderLeftWidth), y: parseFloat(cs.borderBottomWidth) }];
130
+ }
131
+ else if (options?.box === 'content') {
132
+ const cs = (node.ownerDocument.defaultView ?? window).getComputedStyle(node);
133
+ o = [{ x: -parseFloat(cs.borderLeftWidth) - parseFloat(cs.paddingLeft), y: -parseFloat(cs.borderTopWidth) - parseFloat(cs.paddingTop) }, { x: parseFloat(cs.borderRightWidth) + parseFloat(cs.paddingRight), y: -parseFloat(cs.borderTopWidth) - parseFloat(cs.paddingTop) }, { x: parseFloat(cs.borderRightWidth) + parseFloat(cs.paddingRight), y: parseFloat(cs.borderBottomWidth) + parseFloat(cs.paddingBottom) }, { x: -parseFloat(cs.borderLeftWidth) - parseFloat(cs.paddingLeft), y: parseFloat(cs.borderBottomWidth) + parseFloat(cs.paddingBottom) }];
134
+ }
135
+ }
136
+ if (options?.offset) {
137
+ if (!o)
138
+ o = [{ x: 0, y: 0 }, { x: 0, y: 0 }, { x: 0, y: 0 }, { x: 0, y: 0 }];
139
+ o[0].x = o[0].x + options.offset.p1.x;
140
+ o[0].y = o[0].y + options.offset.p1.y;
141
+ o[1].x = o[1].x + options.offset.p2.x;
142
+ o[1].y = o[1].y + options.offset.p2.y;
143
+ o[2].x = o[2].x + options.offset.p3.x;
144
+ o[2].y = o[2].y + options.offset.p3.y;
145
+ o[3].x = o[3].x + options.offset.p4.x;
146
+ o[3].y = o[3].y + options.offset.p4.y;
147
+ }
148
+ for (let i = 0; i < 4; i++) {
149
+ /** @type { DOMPoint } */
150
+ let p;
151
+ if (!o)
152
+ p = new DOMPoint(arr[i].x, arr[i].y);
153
+ else
154
+ p = new DOMPoint(arr[i].x - o[i].x, arr[i].y - o[i].y);
155
+ points[i] = projectPoint(p, originalElementAndAllParentsMultipliedMatrix).matrixTransform(originalElementAndAllParentsMultipliedMatrix);
156
+ points[i] = as2DPoint(points[i]);
157
+ }
158
+ return [new DOMQuad(points[0], points[1], points[2], points[3])];
159
+ }
160
+ //todo: https://drafts.csswg.org/css-transforms-2/#accumulated-3d-transformation-matrix-computation
161
+ // also good for writing a spec
162
+ // Find a value for z that will transform to 0. (from firefox matrix.h)
163
+ // or chromium https://github.com/chromium/chromium/blob/main/ui/gfx/geometry/transform.cc#L849
164
+ /**
165
+ * @param {DOMPoint} point
166
+ */
167
+ function projectPoint(point, m) {
168
+ const z = -(point.x * m.m13 + point.y * m.m23 + m.m43) / m.m33;
169
+ return new DOMPoint(point.x, point.y, z, 1);
170
+ }
171
+ /**
172
+ * convert a DOM-Point to 2D
173
+ * @param {DOMPoint} point
174
+ */
175
+ function as2DPoint(point) {
176
+ return new DOMPoint(point.x / point.w, point.y / point.w);
177
+ }
178
+ /**
179
+ * @param {Node} node
180
+ */
181
+ function getElementSize(node) {
182
+ let width = 0;
183
+ let height = 0;
184
+ if (node instanceof (node.ownerDocument.defaultView ?? window).HTMLElement) {
185
+ width = node.offsetWidth;
186
+ height = node.offsetHeight;
187
+ }
188
+ else if (node instanceof (node.ownerDocument.defaultView ?? window).SVGSVGElement) {
189
+ width = node.width.baseVal.value;
190
+ height = node.height.baseVal.value;
191
+ }
192
+ else if (node instanceof (node.ownerDocument.defaultView ?? window).SVGGraphicsElement) {
193
+ let bbox = node.getBBox();
194
+ width = bbox.width;
195
+ height = bbox.height;
196
+ }
197
+ else if (node instanceof (node.ownerDocument.defaultView ?? window).MathMLElement) {
198
+ let bbox = node.getBoundingClientRect();
199
+ width = bbox.width;
200
+ height = bbox.height;
201
+ }
202
+ else if (node instanceof (node.ownerDocument.defaultView ?? window).Text) {
203
+ let range = document.createRange();
204
+ range.selectNodeContents(node);
205
+ let targetRect = range.getBoundingClientRect();
206
+ width = targetRect.width;
207
+ height = targetRect.height;
208
+ }
209
+ return { width, height };
210
+ }
211
+ /**
212
+ * @param {Node} node
213
+ */
214
+ function getElementOffsetsInContainer(node) {
215
+ if (node instanceof (node.ownerDocument.defaultView ?? window).HTMLElement) {
216
+ return new DOMPoint(node.offsetLeft - node.scrollLeft, node.offsetTop - node.scrollTop);
217
+ }
218
+ else if (node instanceof (node.ownerDocument.defaultView ?? window).Text) {
219
+ let range = document.createRange();
220
+ range.selectNodeContents(node);
221
+ let r1 = range.getBoundingClientRect();
222
+ const r2 = node.parentElement.getBoundingClientRect();
223
+ return new DOMPoint(r1.x - r2.x, r1.y - r2.y);
224
+ }
225
+ else if (node instanceof (node.ownerDocument.defaultView ?? window).Element) {
226
+ if (node instanceof (node.ownerDocument.defaultView ?? window).SVGGraphicsElement && !(node instanceof (node.ownerDocument.defaultView ?? window).SVGSVGElement)) {
227
+ const bb = node.getBBox();
228
+ return new DOMPoint(bb.x, bb.y);
229
+ }
230
+ const cs = (node.ownerDocument.defaultView ?? window).getComputedStyle(node);
231
+ if (cs.position === 'absolute') {
232
+ return new DOMPoint(parseFloat(cs.left), parseFloat(cs.top));
233
+ }
234
+ const r1 = node.getBoundingClientRect();
235
+ const r2 = node.parentElement.getBoundingClientRect();
236
+ return new DOMPoint(r1.x - r2.x, r1.y - r2.y);
237
+ }
238
+ }
239
+ /**
240
+ * @param {Node} node
241
+ * @param {Element} ancestor
242
+ */
243
+ function getResultingTransformationBetweenElementAndAllAncestors(node, ancestor) {
244
+ /** @type {Element } */
245
+ //@ts-ignore
246
+ let actualElement = node;
247
+ /** @type {DOMMatrix } */
248
+ let parentElementMatrix;
249
+ /** @type {DOMMatrix } */
250
+ let originalElementAndAllParentsMultipliedMatrix = getElementCombinedTransform(actualElement);
251
+ let perspectiveParentElement = getParentElementIncludingSlots(actualElement);
252
+ if (perspectiveParentElement) {
253
+ let s = (actualElement.ownerDocument.defaultView ?? window).getComputedStyle(perspectiveParentElement);
254
+ if (s.transformStyle !== 'preserve-3d') {
255
+ projectTo2D(originalElementAndAllParentsMultipliedMatrix);
256
+ }
257
+ }
258
+ while (actualElement != ancestor && actualElement != null) {
259
+ const offsets = getElementOffsetsInContainer(actualElement);
260
+ const mvMat = new DOMMatrix().translate(offsets.x, offsets.y);
261
+ originalElementAndAllParentsMultipliedMatrix = mvMat.multiply(originalElementAndAllParentsMultipliedMatrix);
262
+ const parentElement = getParentElementIncludingSlots(actualElement);
263
+ if (parentElement) {
264
+ parentElementMatrix = getElementCombinedTransform(parentElement);
265
+ if (parentElement != ancestor)
266
+ originalElementAndAllParentsMultipliedMatrix = parentElementMatrix.multiply(originalElementAndAllParentsMultipliedMatrix);
267
+ perspectiveParentElement = getParentElementIncludingSlots(parentElement);
268
+ if (perspectiveParentElement) {
269
+ const s = (perspectiveParentElement.ownerDocument.defaultView ?? window).getComputedStyle(perspectiveParentElement);
270
+ if (s.transformStyle !== 'preserve-3d') {
271
+ projectTo2D(originalElementAndAllParentsMultipliedMatrix);
272
+ }
273
+ }
274
+ if (parentElement === ancestor)
275
+ return originalElementAndAllParentsMultipliedMatrix;
276
+ }
277
+ actualElement = parentElement;
278
+ }
279
+ return originalElementAndAllParentsMultipliedMatrix;
280
+ }
281
+ /**
282
+ * @param {Element} element
283
+ * @returns {Element}
284
+ */
285
+ function getParentElementIncludingSlots(element) {
286
+ if (element.assignedSlot)
287
+ return element.assignedSlot;
288
+ if (element.parentElement == null) {
289
+ if (element.parentNode instanceof (element.ownerDocument.defaultView ?? window).ShadowRoot) {
290
+ return element.parentNode.host;
291
+ }
292
+ }
293
+ return element.parentElement;
294
+ }
295
+ /**
296
+ * @param {Element} element
297
+ */
298
+ export function getElementCombinedTransform(element) {
299
+ if (element instanceof Text)
300
+ return new DOMMatrix;
301
+ //https://www.w3.org/TR/css-transforms-2/#ctm
302
+ let s = (element.ownerDocument.defaultView ?? window).getComputedStyle(element);
303
+ let m = new DOMMatrix();
304
+ const origin = s.transformOrigin.split(' ');
305
+ const originX = parseFloat(origin[0]);
306
+ const originY = parseFloat(origin[1]);
307
+ const originZ = origin[2] ? parseFloat(origin[2]) : 0;
308
+ const mOri = new DOMMatrix().translate(originX, originY, originZ);
309
+ const mOriInv = new DOMMatrix().translate(-originX, -originY, -originZ);
310
+ if (s.translate != 'none' && s.translate) {
311
+ m = m.multiply(new DOMMatrix('translate(' + s.translate.replace(' ', ',') + ')'));
312
+ }
313
+ if (s.rotate != 'none' && s.rotate) {
314
+ m = m.multiply(new DOMMatrix('rotate(' + s.rotate.replace(' ', ',') + ')'));
315
+ }
316
+ if (s.scale != 'none' && s.scale) {
317
+ m = m.multiply(new DOMMatrix('scale(' + s.scale.replace(' ', ',') + ')'));
318
+ }
319
+ if (s.transform != 'none' && s.transform) {
320
+ m = m.multiply(new DOMMatrix(s.transform));
321
+ }
322
+ let res = mOri.multiply(m.multiply(mOriInv));
323
+ //@ts-ignore
324
+ const pt = getElementPerspectiveTransform(element);
325
+ if (pt != null) {
326
+ res = pt.multiply(res);
327
+ }
328
+ return res;
329
+ }
330
+ /**
331
+ * project a DOM-Matrix to 2D (from firefox matrix.h)
332
+ * @param {DOMMatrix} m
333
+ */
334
+ function projectTo2D(m) {
335
+ m.m31 = 0.0;
336
+ m.m32 = 0.0;
337
+ m.m13 = 0.0;
338
+ m.m23 = 0.0;
339
+ m.m33 = 1.0;
340
+ m.m43 = 0.0;
341
+ m.m34 = 0.0;
342
+ // Some matrices, such as those derived from perspective transforms,
343
+ // can modify _44 from 1, while leaving the rest of the fourth column
344
+ // (_14, _24) at 0. In this case, after resetting the third row and
345
+ // third column above, the value of _44 functions only to scale the
346
+ // coordinate transform divide by W. The matrix can be converted to
347
+ // a true 2D matrix by normalizing out the scaling effect of _44 on
348
+ // the remaining components ahead of time.
349
+ if (m.m14 == 0.0 && m.m24 == 0.0 && m.m44 != 1.0 && m.m44 != 0.0) {
350
+ const scale = 1.0 / m.m44;
351
+ m.m11 *= scale;
352
+ m.m12 *= scale;
353
+ m.m21 *= scale;
354
+ m.m22 *= scale;
355
+ m.m41 *= scale;
356
+ m.m42 *= scale;
357
+ m.m44 = 1.0;
358
+ }
359
+ }
360
+ /**
361
+ * @param {HTMLElement} element
362
+ */
363
+ function getElementPerspectiveTransform(element) {
364
+ /** @type { Element } */
365
+ //@ts-ignore
366
+ const perspectiveNode = getParentElementIncludingSlots(element);
367
+ //https://drafts.csswg.org/css-transforms-2/#perspective-matrix-computation
368
+ let s = (element.ownerDocument.defaultView ?? window).getComputedStyle(perspectiveNode);
369
+ if (s.perspective !== 'none') {
370
+ let m = new DOMMatrix();
371
+ let p = parseFloat(s.perspective);
372
+ m.m34 = -1.0 / p;
373
+ //https://drafts.csswg.org/css-transforms-2/#PerspectiveDefined
374
+ const origin = s.perspectiveOrigin.split(' ');
375
+ const originX = parseFloat(origin[0]) - element.offsetLeft;
376
+ const originY = parseFloat(origin[1]) - element.offsetTop;
377
+ const mOri = new DOMMatrix().translate(originX, originY);
378
+ const mOriInv = new DOMMatrix().translate(-originX, -originY);
379
+ return mOri.multiply(m.multiply(mOriInv));
380
+ }
381
+ return null;
382
+ }
383
+ //# sourceMappingURL=getBoxQuads.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getBoxQuads.js","sourceRoot":"","sources":["../../../src/elements/helper/getBoxQuads.js"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { ServiceContainer } from '../services/ServiceContainer.js';
3
2
  import { IDesignItem } from './IDesignItem.js';
4
3
  import { InstanceServiceContainer } from '../services/InstanceServiceContainer.js';
@@ -26,6 +26,7 @@ export class SimpleDemoProviderService {
26
26
  //@ts-ignore
27
27
  shadowRoot.setHTMLUnsafe(code);
28
28
  else
29
+ //@ts-ignore
29
30
  shadowRoot.innerHTML = code;
30
31
  contentDiv.style.display = '';
31
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleDemoProviderService.js","sourceRoot":"","sources":["../../../../src/elements/services/demoProviderService/SimpleDemoProviderService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAKnF,MAAM,OAAO,yBAAyB;IACpC,KAAK,CAAC,WAAW,CAAC,SAAsB,EAAE,gBAAkC,EAAE,wBAAkD,EAAE,IAAY;QAC5I,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,UAAU,GAAG,UAAU,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3D,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;QAChC,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QACjC,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QACjC,UAAU,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;QAClC,UAAU,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC;QACnC,UAAU,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;QAEvC,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;QAEtC,SAAS,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACzC,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAElC,IAAI,MAAM,GAAoB,EAAE,CAAC;QACjC,IAAI,wBAAwB,CAAC,cAAc,CAAC,gBAAgB;YAC1D,MAAM,CAAC,IAAI,CAAC,GAAG,wBAAwB,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;QAC3E,IAAI,wBAAwB,CAAC,iBAAiB,EAAE,CAAC;YAC/C,MAAM,CAAC,IAAI,CAAC,GAAG,wBAAwB,CAAC,iBAAiB;iBACtD,cAAc,EAAE;iBAChB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACzC,CAAC;QACD,UAAU,CAAC,kBAAkB,GAAG,MAAM,CAAC;QACvC,UAAU,CAAC,SAAS,GAAG,EAAE,CAAC;QAC1B,IAAI,eAAe,IAAI,UAAU;YAC/B,YAAY;YACZ,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;;YAE/B,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC;QAE9B,UAAU,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;IAChC,CAAC;CACF"}
1
+ {"version":3,"file":"SimpleDemoProviderService.js","sourceRoot":"","sources":["../../../../src/elements/services/demoProviderService/SimpleDemoProviderService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAKnF,MAAM,OAAO,yBAAyB;IACpC,KAAK,CAAC,WAAW,CAAC,SAAsB,EAAE,gBAAkC,EAAE,wBAAkD,EAAE,IAAY;QAC5I,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,UAAU,GAAG,UAAU,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3D,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;QAChC,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QACjC,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QACjC,UAAU,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;QAClC,UAAU,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC;QACnC,UAAU,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;QAEvC,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;QAEtC,SAAS,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACzC,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAElC,IAAI,MAAM,GAAoB,EAAE,CAAC;QACjC,IAAI,wBAAwB,CAAC,cAAc,CAAC,gBAAgB;YAC1D,MAAM,CAAC,IAAI,CAAC,GAAG,wBAAwB,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;QAC3E,IAAI,wBAAwB,CAAC,iBAAiB,EAAE,CAAC;YAC/C,MAAM,CAAC,IAAI,CAAC,GAAG,wBAAwB,CAAC,iBAAiB;iBACtD,cAAc,EAAE;iBAChB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACzC,CAAC;QACD,UAAU,CAAC,kBAAkB,GAAG,MAAM,CAAC;QACvC,UAAU,CAAC,SAAS,GAAG,EAAE,CAAC;QAC1B,IAAI,eAAe,IAAI,UAAU;YAC/B,YAAY;YACZ,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;;YAE/B,YAAY;YACZ,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC;QAE9B,UAAU,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;IAChC,CAAC;CACF"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ /*import { TypedEvent } from "@node-projects/base-custom-webcomponent";
3
+ import { IMultiplayerMessage } from "./IMultiplayerService.js";
4
+
5
+ export interface IDataExchangeService {
6
+ send(data: IMultiplayerMessage<any>);
7
+ received: TypedEvent<IMultiplayerMessage<any>>
8
+ }*/
9
+ //# sourceMappingURL=IDataExchangeService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IDataExchangeService.js","sourceRoot":"","sources":["../../../../src/elements/services/multiplayerService/IDataExchangeService.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ /*import { TypedEvent } from "@node-projects/base-custom-webcomponent";
3
+ import { IMultiplayerMessage } from "./IMultiplayerService";
4
+
5
+ export class MultiplayerDataService {
6
+
7
+ constructor() {
8
+
9
+ }
10
+
11
+ signOn(userInfo: userInfo) {
12
+
13
+ }
14
+ listUsers(): Promise<userInfo[]> {
15
+
16
+ }
17
+
18
+ send(message: IMultiplayerMessage<any>) {
19
+ const data = JSON.stringify(message);
20
+ }
21
+
22
+ received = new TypedEvent<IMultiplayerMessage<any>>
23
+ }*/
24
+ //# sourceMappingURL=MultiplayerDataService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiplayerDataService.js","sourceRoot":"","sources":["../../../../src/elements/services/multiplayerService/MultiplayerDataService.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ /*import { TypedEvent } from "@node-projects/base-custom-webcomponent";
3
+ import { IPoint } from "../../../../interfaces/IPoint.js";
4
+ import { IChatMessage, IChatService } from "./IChatService.js";
5
+
6
+ export class ChatService implements IChatService {
7
+
8
+ private _chatMessages: Map<IPoint, IChatMessage>[];
9
+
10
+ newClientConnected(client: any) {
11
+
12
+ }
13
+
14
+ addMessage(message: IChatMessage) {
15
+ throw new Error("Method not implemented.");
16
+ }
17
+
18
+ newMessage: TypedEvent<IChatMessage>;
19
+ }*/
20
+ //# sourceMappingURL=ChatService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatService.js","sourceRoot":"","sources":["../../../../../src/elements/services/multiplayerService/services/ChatService.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ /*import { TypedEvent } from "@node-projects/base-custom-webcomponent";
3
+ import { IPoint } from "../../../../interfaces/IPoint.js";
4
+ import { IMultiplayerMessage } from "../IMultiplayerService.js";
5
+
6
+ export interface IChatService {
7
+ newClientConnected();
8
+ addMessage(message: IChatMessage);
9
+ newMessage: TypedEvent<IChatMessage>;
10
+ }
11
+
12
+ export interface IChatMessage {
13
+ user: Iuser
14
+ message: string;
15
+ point: IPoint;
16
+ }
17
+
18
+ export interface IMultiplayerChatMessage extends IMultiplayerMessage<IChatMessage> {
19
+ type: 'ChatMessage'
20
+ }
21
+
22
+ let a:IMultiplayerChatMessage = {
23
+ type:'ChatMessage',
24
+ data: {
25
+
26
+ }
27
+ }*/
28
+ //# sourceMappingURL=IChatService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IChatService.js","sourceRoot":"","sources":["../../../../../src/elements/services/multiplayerService/services/IChatService.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG"}
@@ -1,8 +1,9 @@
1
1
  import { DomConverter } from '../../widgets/designerView/DomConverter.js';
2
- import { combineTransforms, extractTranslationFromDOMMatrix, getResultingTransformationBetweenElementAndAllAncestors } from '../../helper/TransformHelper.js';
2
+ import { combineTransforms, extractTranslationFromDOMMatrix } from '../../helper/TransformHelper.js';
3
3
  import { filterChildPlaceItems, getDesignItemCurrentPos, placeDesignItem } from '../../helper/LayoutHelper.js';
4
4
  import { ExtensionType } from '../../widgets/designerView/extensions/ExtensionType.js';
5
5
  import { straightenLine } from '../../helper/PathDataPolyfill.js';
6
+ import { convertPointFromNode } from '../../helper/getBoxQuads.js';
6
7
  export class AbsolutePlacementService {
7
8
  serviceForContainer(container, containerStyle, item) {
8
9
  if (item != null && item.getComputedStyle()?.position == 'absolute')
@@ -100,15 +101,8 @@ export class AbsolutePlacementService {
100
101
  let filteredItems = filterChildPlaceItems(items);
101
102
  for (const designItem of filteredItems) {
102
103
  const canvas = designItem.instanceServiceContainer.designerCanvas.rootDesignItem.element;
103
- let originalElementAndAllAncestorsMultipliedMatrix = getResultingTransformationBetweenElementAndAllAncestors(designItem.parent.element, canvas, true);
104
- let transformMatrixParentTransformsCompensated = null;
105
- if (originalElementAndAllAncestorsMultipliedMatrix) {
106
- transformMatrixParentTransformsCompensated = new DOMPoint(track.x, track.y, 0, 0).matrixTransform(originalElementAndAllAncestorsMultipliedMatrix.inverse());
107
- }
108
- else {
109
- transformMatrixParentTransformsCompensated = new DOMPoint(track.x, track.y, 0, 0);
110
- }
111
- const translationMatrix = new DOMMatrix().translate(transformMatrixParentTransformsCompensated.x, transformMatrixParentTransformsCompensated.y);
104
+ const transformedPoint = convertPointFromNode(designItem.parent.element, new DOMPoint(track.x, track.y, 0, 0), canvas);
105
+ const translationMatrix = new DOMMatrix().translate(transformedPoint.x, transformedPoint.y);
112
106
  combineTransforms(designItem.element, designItem.getStyle('transform'), translationMatrix.toString());
113
107
  }
114
108
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AbsolutePlacementService.js","sourceRoot":"","sources":["../../../../src/elements/services/placementService/AbsolutePlacementService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbsolutePlacementService.js","sourceRoot":"","sources":["../../../../src/elements/services/placementService/AbsolutePlacementService.ts"],"names":[],"mappings":"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"}