@node-projects/web-component-designer 0.1.76 → 0.1.78

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.
@@ -99,10 +99,10 @@ export function getElementsWindowOffsetWithoutSelfAndParentTransformations(eleme
99
99
  element = element.ownerSVGElement;
100
100
  }
101
101
  else if (element instanceof HTMLBodyElement) {
102
- element = element.parentElement;
102
+ element = element.parentElement ? element.parentElement : element.getRootNode().host;
103
103
  }
104
104
  else if (element instanceof HTMLHtmlElement) {
105
- element = element.parentElement;
105
+ element = element.parentElement ? element.parentElement : element.getRootNode().host;
106
106
  }
107
107
  else {
108
108
  const currLeft = element.offsetLeft;
@@ -84,6 +84,7 @@ export declare class DesignerCanvas extends BaseCustomWebComponentLazyAppend imp
84
84
  handleDeleteCommand(): void;
85
85
  initialize(serviceContainer: ServiceContainer): void;
86
86
  connectedCallback(): void;
87
+ disconnectedCallback(): void;
87
88
  private _zoomFactorChanged;
88
89
  private _resizeBackgroundGrid;
89
90
  private _updateTransform;
@@ -631,6 +631,10 @@ export class DesignerCanvas extends BaseCustomWebComponentLazyAppend {
631
631
  this.clickOverlay.addEventListener(EventNames.KeyUp, this.onKeyUp, true);
632
632
  this.clickOverlay.addEventListener(EventNames.DblClick, this._onDblClick, true);
633
633
  }
634
+ this.extensionManager.connected();
635
+ }
636
+ disconnectedCallback() {
637
+ this.extensionManager.disconnected();
634
638
  }
635
639
  _zoomFactorChanged(refreshExtensions = true) {
636
640
  //a@ts-ignore
@@ -19,7 +19,7 @@ export class ElementDragTitleExtension extends AbstractExtension {
19
19
  let text = this.extendedItem.name;
20
20
  this._width = Math.max(Math.min(elementWidth, w), extensionWidth);
21
21
  this._rect = this._drawRect(transformedCornerPoints[0].x, transformedCornerPoints[0].y - 16, this._width, 15, 'svg-primary-selection-move', this._rect);
22
- this._text = this._drawHTML('<span style="width: 100%;position: absolute;overflow: hidden;text-overflow: ellipsis;">' + text + '</span>', (boundRect.x - this.designerCanvas.containerBoundingRect.x) / this.designerCanvas.scaleFactor, transformedCornerPoints[0].y - 16, this._width, 15, 'svg-text-primary', this._text);
22
+ this._text = this._drawHTML('<span style="width: 100%; position: absolute; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;">' + text + '</span>', (boundRect.x - this.designerCanvas.containerBoundingRect.x) / this.designerCanvas.scaleFactor, transformedCornerPoints[0].y - 16, this._width, 15, 'svg-text-primary', this._text);
23
23
  this._rect.addEventListener('pointerdown', (e) => this._pointerEvent(e));
24
24
  this._rect.addEventListener('pointermove', (e) => this._pointerEvent(e));
25
25
  this._rect.addEventListener('pointerup', (e) => this._pointerEvent(e));
@@ -6,7 +6,10 @@ import { IDesignerExtension } from './IDesignerExtension.js';
6
6
  export declare class ExtensionManager implements IExtensionManager {
7
7
  designerCanvas: IDesignerCanvas;
8
8
  designItemsWithExtentions: Set<IDesignItem>;
9
+ _timeout: ReturnType<typeof setTimeout>;
9
10
  constructor(designerCanvas: IDesignerCanvas);
11
+ connected(): void;
12
+ disconnected(): void;
10
13
  private refreshAllExtensionsTimeout;
11
14
  private _contentChanged;
12
15
  private _selectedElementsChanged;
@@ -4,15 +4,24 @@ import { ExtensionType } from './ExtensionType.js';
4
4
  export class ExtensionManager {
5
5
  designerCanvas;
6
6
  designItemsWithExtentions = new Set();
7
+ _timeout;
7
8
  constructor(designerCanvas) {
8
9
  this.designerCanvas = designerCanvas;
9
10
  designerCanvas.instanceServiceContainer.selectionService.onSelectionChanged.on(this._selectedElementsChanged.bind(this));
10
11
  designerCanvas.instanceServiceContainer.contentService.onContentChanged.on(this._contentChanged.bind(this));
11
- setTimeout(() => this.refreshAllExtensionsTimeout(), 20);
12
+ }
13
+ connected() {
14
+ if (!this._timeout)
15
+ this._timeout = setTimeout(() => this.refreshAllExtensionsTimeout(), 20);
16
+ }
17
+ disconnected() {
18
+ if (this._timeout)
19
+ clearTimeout(this._timeout);
20
+ this._timeout = null;
12
21
  }
13
22
  refreshAllExtensionsTimeout() {
14
23
  this.refreshAllAppliedExtentions();
15
- setTimeout(() => this.refreshAllExtensionsTimeout(), 20);
24
+ this._timeout = setTimeout(() => this.refreshAllExtensionsTimeout(), 20);
16
25
  }
17
26
  _contentChanged(contentChanged) {
18
27
  requestAnimationFrame(() => {
@@ -12,4 +12,6 @@ export interface IExtensionManager {
12
12
  refreshAllExtensions(designItems: IDesignItem[], ignoredExtension?: IDesignerExtension): any;
13
13
  refreshAllAppliedExtentions(): any;
14
14
  reapplyAllAppliedExtentions(): any;
15
+ connected(): any;
16
+ disconnected(): any;
15
17
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "description": "A UI designer for Polymer apps",
3
3
  "name": "@node-projects/web-component-designer",
4
- "version": "0.1.76",
4
+ "version": "0.1.78",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "author": "jochen.kuehner@gmx.de",