@node-projects/web-component-designer 0.1.170 → 0.1.172

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.
@@ -107,7 +107,7 @@ export function getElementsWindowOffsetWithoutSelfAndParentTransformations(eleme
107
107
  let currLeft = 0;
108
108
  let currTop = 0;
109
109
  if (element instanceof (element.ownerDocument.defaultView ?? window).SVGSVGElement || element instanceof (element.ownerDocument.defaultView ?? window).MathMLElement) {
110
- //TODO: !huge Perf impact! - fix without transformation
110
+ //TODO: !maybe huge Perf impact! - fix without transformation
111
111
  let t = element.style.transform;
112
112
  element.style.transform = '';
113
113
  const bcEl = element.getBoundingClientRect();
@@ -157,8 +157,7 @@ export function getByParentsTransformedPointRelatedToCanvas(element, point, desi
157
157
  const tfX = parseFloat(toSplit[0]);
158
158
  const tfY = parseFloat(toSplit[1]);
159
159
  const parentElementTransformOrigin = new DOMPoint(elementWindowOffset.offsetLeft - designerCanvas.outerRect.x + tfX, elementWindowOffset.offsetTop - designerCanvas.outerRect.y + tfY);
160
- //if (actualElement == element)
161
- {
160
+ if (actualElement == element) {
162
161
  const transf = (element.ownerDocument.defaultView ?? window).getComputedStyle(element).transform;
163
162
  const mtx = extractTranslationFromDOMMatrix(new DOMMatrix(transf));
164
163
  parentElementTransformOrigin.x -= mtx.x;
@@ -199,6 +198,7 @@ export function getDesignerCanvasNormalizedTransformedCornerDOMPoints(element, u
199
198
  const topright = 1;
200
199
  const bottomleft = 2;
201
200
  const bottomright = 3;
201
+ //offset points for calculation
202
202
  let intUntransformedCornerPointsOffset = nullOffsetArray;
203
203
  if (untransformedCornerPointsOffset != null) {
204
204
  if (Array.isArray(untransformedCornerPointsOffset)) {
@@ -135,7 +135,7 @@ export function createDefaultServiceContainer() {
135
135
  ]);
136
136
  serviceContainer.designerExtensions.set(ExtensionType.PrimarySelection, [
137
137
  new ConditionExtensionProvider(new ElementDragTitleExtensionProvider(), item => !(item.node instanceof item.window.SVGElement) || item.node instanceof item.window.SVGSVGElement),
138
- new PreviousElementSelectExtensionProvider(),
138
+ new ConditionExtensionProvider(new PreviousElementSelectExtensionProvider(), item => !(item.node instanceof item.window.SVGElement) || item.node instanceof item.window.SVGSVGElement),
139
139
  new TransformOriginExtensionProvider(true),
140
140
  new MarginExtensionProvider(),
141
141
  new PaddingExtensionProvider(),
@@ -73,18 +73,16 @@ export class EditTextExtension extends AbstractExtension {
73
73
  this.extensionManager.removeExtensionInstance(this.extendedItem, this);
74
74
  };
75
75
  this._addOverlay(this._path, OverlayLayer.Background);
76
- let points = getDesignerCanvasNormalizedTransformedCornerDOMPoints(this.extendedItem.element, null, this.designerCanvas);
77
- let outsideRect = { width: this.designerCanvas.containerBoundingRect.width / this.designerCanvas.scaleFactor, height: this.designerCanvas.containerBoundingRect.height / this.designerCanvas.scaleFactor };
78
- let data = "M0 0 L" + outsideRect.width + " 0 L" + outsideRect.width + ' ' + outsideRect.height + " L0 " + outsideRect.height + " Z ";
79
- data += "M" + points[0].x + " " + points[0].y + " L" + points[1].x + " " + points[1].y + " L" + points[3].x + " " + points[3].y + " L" + points[2].x + " " + points[2].y + " Z";
80
- this._path.setAttribute("d", data);
76
+ this.refresh();
81
77
  }
82
78
  refresh() {
83
- let points = getDesignerCanvasNormalizedTransformedCornerDOMPoints(this.extendedItem.element, null, this.designerCanvas);
84
- let outsideRect = { width: this.designerCanvas.containerBoundingRect.width / this.designerCanvas.scaleFactor, height: this.designerCanvas.containerBoundingRect.height / this.designerCanvas.scaleFactor };
85
- let data = "M0 0 L" + outsideRect.width + " 0 L" + outsideRect.width + ' ' + outsideRect.height + " L0 " + outsideRect.height + " Z ";
86
- data += "M" + points[0].x + " " + points[0].y + " L" + points[1].x + " " + points[1].y + " L" + points[3].x + " " + points[3].y + " L" + points[2].x + " " + points[2].y + " Z";
87
- this._path.setAttribute("d", data);
79
+ let p = getDesignerCanvasNormalizedTransformedCornerDOMPoints(this.extendedItem.element, null, this.designerCanvas);
80
+ if (this._valuesHaveChanges(this.designerCanvas.containerBoundingRect.width, this.designerCanvas.containerBoundingRect.height, this.designerCanvas.scaleFactor, p[0].x, p[0].y, p[1].x, p[1].y, p[2].x, p[2].y, p[3].x, p[3].y)) {
81
+ let outsideRect = { width: this.designerCanvas.containerBoundingRect.width / this.designerCanvas.scaleFactor, height: this.designerCanvas.containerBoundingRect.height / this.designerCanvas.scaleFactor };
82
+ let data = "M0 0 L" + outsideRect.width + " 0 L" + outsideRect.width + ' ' + outsideRect.height + " L0 " + outsideRect.height + " Z ";
83
+ data += "M" + [p[0], p[1], p[3], p[2]].map(x => x.x + ',' + x.y).join(' ') + 'Z ';
84
+ this._path.setAttribute("d", data);
85
+ }
88
86
  }
89
87
  dispose() {
90
88
  this._selectionChangedListener.dispose();
@@ -1,5 +1,6 @@
1
1
  import { getDesignerCanvasNormalizedTransformedCornerDOMPoints } from '../../../helper/TransformHelper.js';
2
2
  import { AbstractExtension } from './AbstractExtension.js';
3
+ import { OverlayLayer } from './OverlayLayer.js';
3
4
  const offset = 3;
4
5
  export class HighlightElementExtension extends AbstractExtension {
5
6
  _rect;
@@ -12,7 +13,7 @@ export class HighlightElementExtension extends AbstractExtension {
12
13
  refresh() {
13
14
  let transformedCornerPoints = getDesignerCanvasNormalizedTransformedCornerDOMPoints(this.extendedItem.element, { x: offset, y: offset }, this.designerCanvas);
14
15
  if (!isNaN(transformedCornerPoints[0].x)) {
15
- this._rect = this._drawTransformedRect(transformedCornerPoints, 'svg-hover', this._rect);
16
+ this._rect = this._drawTransformedRect(transformedCornerPoints, 'svg-hover', this._rect, OverlayLayer.Background);
16
17
  this._rect.style.strokeWidth = (2 / this.designerCanvas.zoomFactor).toString();
17
18
  }
18
19
  }
@@ -8,6 +8,6 @@ export class HighlightElementExtensionProvider {
8
8
  return new HighlightElementExtension(extensionManager, designerView, designItem);
9
9
  }
10
10
  static style = css `
11
- .svg-hover { stroke: #90caf9; fill: none; }
11
+ .svg-hover { stroke: #90caf966; fill: none; }
12
12
  `;
13
13
  }
@@ -14,7 +14,7 @@ export class PlacementExtension extends AbstractExtension {
14
14
  const top = Number.parseFloat(computedStyle.marginTop.replace('px', ''));
15
15
  const right = Number.parseFloat(computedStyle.marginRight.replace('px', ''));
16
16
  const bottom = Number.parseFloat(computedStyle.marginBottom.replace('px', ''));
17
- this._rect = this._drawRect(itemRect.x - left, itemRect.y - top, left + itemRect.width + right, top + itemRect.height + bottom, 'svg-hover', this._rect);
17
+ this._rect = this._drawRect(itemRect.x - left, itemRect.y - top, left + itemRect.width + right, top + itemRect.height + bottom, 'svg-placement', this._rect);
18
18
  }
19
19
  dispose() {
20
20
  this._removeAllOverlays();
@@ -8,6 +8,6 @@ export class PlacementExtensionProvider {
8
8
  return new PlacementExtension(extensionManager, designerView, designItem);
9
9
  }
10
10
  static style = css `
11
- .svg-hover { stroke: #90caf9; fill: none; }
11
+ .svg-placement { stroke: #90caf9; fill: none; }
12
12
  `;
13
13
  }
@@ -37,7 +37,7 @@ export class SvgElementExtension extends AbstractExtension {
37
37
  }
38
38
  refresh() {
39
39
  let points = getSvgElementPoints(this._svgElement);
40
- if (this._valuesHaveChanges(this.designerCanvas.scaleFactor, ...points.map(x => x.x), ...points.map(x => x.y))) {
40
+ if (points && this._valuesHaveChanges(this.designerCanvas.scaleFactor, ...points.map(x => x.x), ...points.map(x => x.y))) {
41
41
  this._points = points;
42
42
  for (let i = 0; i < this._points.length; i++) {
43
43
  this._circles[i] = this._drawPathCircle(i, this._circles[i]);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "description": "A WYSIWYG designer webcomponent for html components",
3
3
  "name": "@node-projects/web-component-designer",
4
- "version": "0.1.170",
4
+ "version": "0.1.172",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "author": "jochen.kuehner@gmx.de",