@node-projects/web-component-designer 0.1.75 → 0.1.77

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.
@@ -13,7 +13,7 @@ export class DefaultPlacementService {
13
13
  isEnterableContainer(container) {
14
14
  if (DomConverter.IsSelfClosingElement(container.element.localName))
15
15
  return false;
16
- if (container.element.shadowRoot && container.element.shadowRoot.querySelector('slot') == null)
16
+ if (!container.isRootItem && container.element.shadowRoot && container.element.shadowRoot.querySelector('slot') == null)
17
17
  return false;
18
18
  return true;
19
19
  }
@@ -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
  }
@@ -14,14 +14,14 @@ export class EditGridColumnRowSizesExtension extends AbstractExtension {
14
14
  super(extensionManager, designerView, extendedItem);
15
15
  }
16
16
  extend(cache, event) {
17
- this.refresh(event);
18
- }
19
- refresh(cache, event) {
20
- this.gridInformation = calculateGridInformation(this.extendedItem);
21
17
  this._group = this._drawGroup(null, this._group, OverlayLayer.Background);
22
18
  this._group.style.transform = getElementCombinedTransform(this.extendedItem.element).toString();
23
19
  this._group.style.transformOrigin = '0 0';
24
20
  this._group.style.transformBox = 'fill-box';
21
+ this.refresh(event);
22
+ }
23
+ refresh(cache, event) {
24
+ this.gridInformation = calculateGridInformation(this.extendedItem);
25
25
  this.gridInformation.gaps.forEach((gap, i) => {
26
26
  if (gap.width < 3) {
27
27
  gap.width = 3;
@@ -32,12 +32,12 @@ export class EditGridColumnRowSizesExtension extends AbstractExtension {
32
32
  gap.y--;
33
33
  }
34
34
  let rect = this._drawRect(gap.x, gap.y, gap.width, gap.height, 'svg-grid-resizer-' + gap.type, this._resizers[i], OverlayLayer.Normal);
35
- this._group.appendChild(rect);
36
35
  if (!this._resizers[i]) {
37
36
  this._resizers[i] = rect;
38
37
  rect.addEventListener(EventNames.PointerDown, event => this._pointerActionTypeResize(event, rect, gap));
39
38
  rect.addEventListener(EventNames.PointerMove, event => this._pointerActionTypeResize(event, rect, gap));
40
39
  rect.addEventListener(EventNames.PointerUp, event => this._pointerActionTypeResize(event, rect, gap));
40
+ this._group.appendChild(rect);
41
41
  }
42
42
  });
43
43
  }
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.75",
4
+ "version": "0.1.77",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "author": "jochen.kuehner@gmx.de",