@node-projects/web-component-designer 0.1.315 → 0.1.317

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.
@@ -69,11 +69,11 @@ export function convertQuadFromNode(node, quad, from, options) {
69
69
  const m1 = getResultingTransformationBetweenElementAndAllAncestors(from, document.body, options?.iframes);
70
70
  const m2 = getResultingTransformationBetweenElementAndAllAncestors(node, document.body, options?.iframes).inverse();
71
71
  if (options?.fromBox && options?.fromBox !== 'border') {
72
- 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));
72
+ quad = new DOMQuad(transformPointBox(quad.p1, options.fromBox, getCachedComputedStyle(from), -1), transformPointBox(quad.p2, options.fromBox, getCachedComputedStyle(from), -1), transformPointBox(quad.p3, options.fromBox, getCachedComputedStyle(from), -1), transformPointBox(quad.p4, options.fromBox, getCachedComputedStyle(from), -1));
73
73
  }
74
74
  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)));
75
75
  if (options?.toBox && options?.toBox !== 'border' && (node instanceof Element || node instanceof (node.ownerDocument.defaultView ?? window).Element)) {
76
- 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));
76
+ res = new DOMQuad(transformPointBox(res.p1, options.toBox, getCachedComputedStyle(node), -1), transformPointBox(res.p2, options.toBox, getCachedComputedStyle(node), -1), transformPointBox(res.p3, options.toBox, getCachedComputedStyle(node), -1), transformPointBox(res.p4, options.toBox, getCachedComputedStyle(node), -1));
77
77
  }
78
78
  return res;
79
79
  }
@@ -88,12 +88,12 @@ export function convertRectFromNode(node, rect, from, options) {
88
88
  const m1 = getResultingTransformationBetweenElementAndAllAncestors(from, (node.ownerDocument.defaultView ?? window).document.body.parentElement, options?.iframes);
89
89
  const m2 = getResultingTransformationBetweenElementAndAllAncestors(node, (node.ownerDocument.defaultView ?? window).document.body.parentElement, options?.iframes).inverse();
90
90
  if (options?.fromBox && options?.fromBox !== 'border') {
91
- const p = transformPointBox(new DOMPoint(rect.x, rect.y), options.fromBox, (node.ownerDocument.defaultView ?? window).getComputedStyle(from), 1);
91
+ const p = transformPointBox(new DOMPoint(rect.x, rect.y), options.fromBox, getCachedComputedStyle(from), 1);
92
92
  rect = new DOMRect(p.x, p.y, rect.width, rect.height);
93
93
  }
94
94
  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))));
95
95
  if (options?.toBox && options?.toBox !== 'border' && (node instanceof Element || node instanceof (node.ownerDocument.defaultView ?? window).Element)) {
96
- 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));
96
+ res = new DOMQuad(transformPointBox(res.p1, options.toBox, getCachedComputedStyle(node), -1), transformPointBox(res.p2, options.toBox, getCachedComputedStyle(node), -1), transformPointBox(res.p3, options.toBox, getCachedComputedStyle(node), -1), transformPointBox(res.p4, options.toBox, getCachedComputedStyle(node), -1));
97
97
  }
98
98
  return res;
99
99
  }
@@ -108,11 +108,11 @@ export function convertPointFromNode(node, point, from, options) {
108
108
  const m1 = getResultingTransformationBetweenElementAndAllAncestors(from, (node.ownerDocument.defaultView ?? window).document.body.parentElement, options?.iframes);
109
109
  const m2 = getResultingTransformationBetweenElementAndAllAncestors(node, document.body, options?.iframes).inverse();
110
110
  if (options?.fromBox && options?.fromBox !== 'border') {
111
- point = transformPointBox(point, options.fromBox, (node.ownerDocument.defaultView ?? window).getComputedStyle(from), 1);
111
+ point = transformPointBox(point, options.fromBox, getCachedComputedStyle(from), 1);
112
112
  }
113
113
  let res = m2.transformPoint(m1.transformPoint(point));
114
114
  if (options?.toBox && options?.toBox !== 'border' && (node instanceof Element || node instanceof (node.ownerDocument.defaultView ?? window).Element)) {
115
- res = transformPointBox(res, options.toBox, (node.ownerDocument.defaultView ?? window).getComputedStyle(node), -1);
115
+ res = transformPointBox(res, options.toBox, getCachedComputedStyle(node), -1);
116
116
  }
117
117
  return res;
118
118
  }
@@ -142,6 +142,8 @@ let hash;
142
142
  let boxQuadsCache;
143
143
  /** @type { Map<string, DOMMatrix> } */
144
144
  let transformCache;
145
+ /** @type { WeakMap<Node, CSSStyleDeclaration> } */
146
+ let computedStyleCache;
145
147
  let hashId = 0;
146
148
  export function clearCache() {
147
149
  boxQuadsCache.clear();
@@ -151,6 +153,22 @@ export function useCache() {
151
153
  hash = new WeakMap();
152
154
  boxQuadsCache = new Map();
153
155
  transformCache = new Map();
156
+ computedStyleCache = new WeakMap;
157
+ }
158
+ /**
159
+ * @param {Element} element
160
+ * @returns {CSSStyleDeclaration}
161
+ */
162
+ function getCachedComputedStyle(element) {
163
+ if (!computedStyleCache) {
164
+ return (element.ownerDocument.defaultView ?? window).getComputedStyle(element);
165
+ }
166
+ let style = computedStyleCache.get(element);
167
+ if (!style) {
168
+ style = (element.ownerDocument.defaultView ?? window).getComputedStyle(element);
169
+ computedStyleCache.set(element, style);
170
+ }
171
+ return style;
154
172
  }
155
173
  /**
156
174
  * @param {Node} node
@@ -182,15 +200,15 @@ export function getBoxQuads(node, options) {
182
200
  let o = null;
183
201
  if ((node instanceof Element || node instanceof (node.ownerDocument.defaultView ?? window).Element)) {
184
202
  if (options?.box === 'margin') {
185
- const cs = (node.ownerDocument.defaultView ?? window).getComputedStyle(node);
203
+ const cs = getCachedComputedStyle(node);
186
204
  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) }];
187
205
  }
188
206
  else if (options?.box === 'padding') {
189
- const cs = (node.ownerDocument.defaultView ?? window).getComputedStyle(node);
207
+ const cs = getCachedComputedStyle(node);
190
208
  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) }];
191
209
  }
192
210
  else if (options?.box === 'content') {
193
- const cs = (node.ownerDocument.defaultView ?? window).getComputedStyle(node);
211
+ const cs = getCachedComputedStyle(node);
194
212
  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) }];
195
213
  }
196
214
  }
@@ -268,8 +286,12 @@ export function getElementSize(node, matrix) {
268
286
  */
269
287
  function getElementOffsetsInContainer(node, includeScroll, iframes) {
270
288
  if ((node instanceof HTMLElement || node instanceof (node.ownerDocument.defaultView ?? window).HTMLElement)) {
289
+ let cs = getCachedComputedStyle(node);
290
+ if (cs.offsetPath && cs.offsetPath !== 'none') {
291
+ return new DOMPoint(0, 0);
292
+ }
271
293
  if (includeScroll) {
272
- const cs = (node.ownerDocument.defaultView ?? window).getComputedStyle(node);
294
+ const cs = getCachedComputedStyle(node);
273
295
  return new DOMPoint(node.offsetLeft - (includeScroll ? node.scrollLeft - parseFloat(cs.borderLeftWidth) : 0), node.offsetTop - (includeScroll ? node.scrollTop - parseFloat(cs.borderTopWidth) : 0));
274
296
  }
275
297
  else {
@@ -293,16 +315,16 @@ function getElementOffsetsInContainer(node, includeScroll, iframes) {
293
315
  const bb = node.getBBox();
294
316
  return new DOMPoint(bb.x, bb.y);
295
317
  }
296
- const cs = (node.ownerDocument.defaultView ?? window).getComputedStyle(node);
318
+ const cs = getCachedComputedStyle(node);
297
319
  if (cs.position === 'absolute') {
298
320
  return new DOMPoint(parseFloat(cs.left), parseFloat(cs.top));
299
321
  }
300
322
  const par = getParentElementIncludingSlots(node, iframes);
301
- const m = getResultingTransformationBetweenElementAndAllAncestors(par, document.body, iframes);
323
+ const m = getResultingTransformationBetweenElementAndAllAncestors(par, document.body, iframes).inverse();
302
324
  const r1 = node.getBoundingClientRect();
303
- const r1t = m.inverse().transformPoint(r1);
325
+ const r1t = m.transformPoint(r1);
304
326
  const r2 = par.getBoundingClientRect();
305
- const r2t = m.inverse().transformPoint(r2);
327
+ const r2t = m.transformPoint(r2);
306
328
  return new DOMPoint(r1t.x - r2t.x, r1t.y - r2t.y);
307
329
  }
308
330
  }
@@ -334,7 +356,7 @@ export function getResultingTransformationBetweenElementAndAllAncestors(node, an
334
356
  let originalElementAndAllParentsMultipliedMatrix = getElementCombinedTransform(actualElement, iframes);
335
357
  let perspectiveParentElement = getParentElementIncludingSlots(actualElement, iframes);
336
358
  if (perspectiveParentElement) {
337
- let s = (actualElement.ownerDocument.defaultView ?? window).getComputedStyle(perspectiveParentElement);
359
+ let s = getCachedComputedStyle(perspectiveParentElement);
338
360
  if (s.transformStyle !== 'preserve-3d') {
339
361
  projectTo2D(originalElementAndAllParentsMultipliedMatrix);
340
362
  }
@@ -343,7 +365,7 @@ export function getResultingTransformationBetweenElementAndAllAncestors(node, an
343
365
  while (actualElement != ancestor && actualElement != null) {
344
366
  const parentElement = getParentElementIncludingSlots(actualElement, iframes);
345
367
  if (actualElement.assignedSlot != null) {
346
- const st = (perspectiveParentElement.ownerDocument.defaultView ?? window).getComputedStyle(actualElement);
368
+ const st = getCachedComputedStyle(actualElement);
347
369
  if (st.position !== "static") {
348
370
  const mvMat = new DOMMatrix().translate(parseFloat(st.left), parseFloat(st.top));
349
371
  originalElementAndAllParentsMultipliedMatrix = mvMat.multiply(originalElementAndAllParentsMultipliedMatrix);
@@ -371,7 +393,7 @@ export function getResultingTransformationBetweenElementAndAllAncestors(node, an
371
393
  originalElementAndAllParentsMultipliedMatrix = parentElementMatrix.multiply(originalElementAndAllParentsMultipliedMatrix);
372
394
  perspectiveParentElement = getParentElementIncludingSlots(parentElement, iframes);
373
395
  if (perspectiveParentElement) {
374
- const s = (perspectiveParentElement.ownerDocument.defaultView ?? window).getComputedStyle(perspectiveParentElement);
396
+ const s = getCachedComputedStyle(perspectiveParentElement);
375
397
  if (s.transformStyle !== 'preserve-3d') {
376
398
  projectTo2D(originalElementAndAllParentsMultipliedMatrix);
377
399
  }
@@ -419,16 +441,13 @@ export function getElementCombinedTransform(element, iframes) {
419
441
  if ((element instanceof Text || element instanceof (element.ownerDocument.defaultView ?? window).Text))
420
442
  return new DOMMatrix;
421
443
  //https://www.w3.org/TR/css-transforms-2/#ctm
422
- let s = (element.ownerDocument.defaultView ?? window).getComputedStyle(element);
444
+ let s = getCachedComputedStyle(element);
423
445
  let m = new DOMMatrix();
424
446
  const origin = s.transformOrigin.split(' ');
425
447
  const originX = parseFloat(origin[0]);
426
448
  const originY = parseFloat(origin[1]);
427
449
  const originZ = origin[2] ? parseFloat(origin[2]) : 0;
428
450
  const mOri = new DOMMatrix().translate(originX, originY, originZ);
429
- if (s.offsetPath && s.offsetPath !== 'none') {
430
- m = m.multiply(computeOffsetTransformMatrix(element));
431
- }
432
451
  if (s.translate != 'none' && s.translate) {
433
452
  let tr = s.translate;
434
453
  if (tr.includes('%')) {
@@ -440,24 +459,27 @@ export function getElementCombinedTransform(element, iframes) {
440
459
  v[1] = (parseFloat(v[1]) * r.height / 100) + 'px';
441
460
  tr = v.join(',');
442
461
  }
443
- m = m.multiply(new DOMMatrix('translate(' + tr.replace(' ', ',') + ')'));
462
+ m.multiplySelf(new DOMMatrix('translate(' + tr.replaceAll(' ', ',') + ')'));
444
463
  }
445
464
  if (s.rotate != 'none' && s.rotate) {
446
- m = m.multiply(new DOMMatrix('rotate(' + s.rotate.replace(' ', ',') + ')'));
465
+ m.multiplySelf(new DOMMatrix('rotate(' + s.rotate.replaceAll(' ', ',') + ')'));
447
466
  }
448
467
  if (s.scale != 'none' && s.scale) {
449
- m = m.multiply(new DOMMatrix('scale(' + s.scale.replace(' ', ',') + ')'));
468
+ m.multiplySelf(new DOMMatrix('scale(' + s.scale.replaceAll(' ', ',') + ')'));
450
469
  }
451
470
  if (s.transform != 'none' && s.transform) {
452
- m = m.multiply(new DOMMatrix(s.transform));
471
+ m.multiplySelf(new DOMMatrix(s.transform));
472
+ }
473
+ m = mOri.multiply(m.multiply(mOri.inverse()));
474
+ if (s.offsetPath && s.offsetPath !== 'none') {
475
+ m.multiplySelf(computeOffsetTransformMatrix(element));
453
476
  }
454
- let res = mOri.multiply(m.multiply(mOri.inverse()));
455
477
  //@ts-ignore
456
478
  const pt = getElementPerspectiveTransform(element, iframes);
457
479
  if (pt != null) {
458
- res = pt.multiply(res);
480
+ m = pt.multiply(m);
459
481
  }
460
- return res;
482
+ return m;
461
483
  }
462
484
  /**
463
485
  * project a DOM-Matrix to 2D (from firefox matrix.h)
@@ -499,7 +521,7 @@ function getElementPerspectiveTransform(element, iframes) {
499
521
  const perspectiveNode = getParentElementIncludingSlots(element, iframes);
500
522
  if (perspectiveNode) {
501
523
  //https://drafts.csswg.org/css-transforms-2/#perspective-matrix-computation
502
- let s = (element.ownerDocument.defaultView ?? window).getComputedStyle(perspectiveNode);
524
+ let s = getCachedComputedStyle(perspectiveNode);
503
525
  if (s.perspective !== 'none') {
504
526
  let m = new DOMMatrix();
505
527
  let p = parseFloat(s.perspective);
@@ -518,11 +540,12 @@ function getElementPerspectiveTransform(element, iframes) {
518
540
  return null;
519
541
  }
520
542
  function computeOffsetTransformMatrix(elem) {
521
- const cs = (elem.ownerDocument.defaultView ?? window).getComputedStyle(elem);
543
+ const cs = getCachedComputedStyle(elem);
522
544
  const offsetPath = cs.offsetPath; // e.g. "path('M0,0 ...')"
523
545
  const offsetDistance = cs.offsetDistance; // e.g. "50%"
524
546
  const offsetRotate = cs.offsetRotate; // e.g. "auto", "45deg", "auto 30deg"
525
547
  const offsetAnchor = cs.offsetAnchor;
548
+ const transformOrigin = cs.transformOrigin;
526
549
  // Parse offset-distance (px or %)
527
550
  let distance = parseOffsetDistance(offsetDistance);
528
551
  // Compute position & tangent on path
@@ -537,21 +560,19 @@ function computeOffsetTransformMatrix(elem) {
537
560
  else {
538
561
  rotateFinal = parseFloat(offsetRotate);
539
562
  }
540
- let anchor = parseOffsetAnchor(offsetAnchor, elem);
541
- const anchorMatrix = new DOMMatrix()
542
- .translateSelf(-anchor.x, -anchor.y);
543
- let m = anchorMatrix.translateSelf(x, y);
544
- m = m.rotateSelf(rotateFinal);
563
+ const anchor = parseOffsetAnchor(offsetAnchor, transformOrigin, elem);
564
+ const anchorMatrix = new DOMMatrix().translateSelf(-anchor.x, -anchor.y);
565
+ let m = anchorMatrix.translate(x, y);
566
+ m.multiplySelf(anchorMatrix.invertSelf());
567
+ m.rotateSelf(rotateFinal);
568
+ m.translateSelf(-anchor.x, -anchor.y);
545
569
  return m;
546
570
  }
547
- function parseOffsetAnchor(str, elem) {
548
- let width = elem.offsetWidth;
549
- let height = elem.offsetHeight;
550
- //if (!(elem instanceof HTMLElement)) {
551
- // const rect = elem.getBoundingClientRect();
552
- //}
571
+ function parseOffsetAnchor(str, transformOrigin, elem) {
572
+ const width = elem.offsetWidth;
573
+ const height = elem.offsetHeight;
553
574
  if (!str || str === "auto") {
554
- return { x: width / 2, y: height / 2 };
575
+ str = transformOrigin;
555
576
  }
556
577
  const parts = str.split(/\s+/);
557
578
  if (parts.length === 1) {
@@ -1 +1 @@
1
- {"version":3,"file":"getBoxQuads.js","sourceRoot":"","sources":["../../../src/elements/helper/getBoxQuads.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getBoxQuads.js","sourceRoot":"","sources":["../../../src/elements/helper/getBoxQuads.js"],"names":[],"mappings":"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"}