@node-projects/web-component-designer 0.1.105 → 0.1.106

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.
@@ -264,11 +264,12 @@ export class DesignItem {
264
264
  set innerHTML(value) {
265
265
  if (this.nodeType != NodeType.TextNode) {
266
266
  const grp = this.openGroup('set innerHTML');
267
+ this.clearChildren();
267
268
  const range = document.createRange();
268
269
  range.selectNode(document.body);
269
270
  const fragment = range.createContextualFragment(value);
270
271
  for (const n of fragment.childNodes) {
271
- let di = DesignItem.GetOrCreateDesignItem(n, n, this.serviceContainer, this.instanceServiceContainer);
272
+ let di = DesignItem.createDesignItemFromInstance(n, this.serviceContainer, this.instanceServiceContainer);
272
273
  this.insertChild(di);
273
274
  }
274
275
  grp.commit();
@@ -12,6 +12,7 @@ export declare class ExtensionManager implements IExtensionManager {
12
12
  _appliedDesignerExtensions: WeakMap<DesignItem, Map<ExtensionType, IDesignerExtension[]>>;
13
13
  _shouldAppliedDesignerExtensions: WeakMap<DesignItem, Map<ExtensionType, IDesignerExtensionProvider[]>>;
14
14
  _lastApplyEventPerType: WeakMap<DesignItem, Map<ExtensionType, Event>>;
15
+ _lastPrimarySelectionRefreshItem: WeakRef<IDesignItem>;
15
16
  constructor(designerCanvas: IDesignerCanvas);
16
17
  connected(): void;
17
18
  disconnected(): void;
@@ -16,6 +16,7 @@ export class ExtensionManager {
16
16
  _appliedDesignerExtensions = new WeakMap;
17
17
  _shouldAppliedDesignerExtensions = new WeakMap;
18
18
  _lastApplyEventPerType = new WeakMap;
19
+ _lastPrimarySelectionRefreshItem;
19
20
  constructor(designerCanvas) {
20
21
  this.designerCanvas = designerCanvas;
21
22
  designerCanvas.instanceServiceContainer.selectionService.onSelectionChanged.on(this._selectedElementsChanged.bind(this));
@@ -54,6 +55,7 @@ export class ExtensionManager {
54
55
  });
55
56
  }
56
57
  _selectedElementsChanged(selectionChangedEvent) {
58
+ this._lastPrimarySelectionRefreshItem = null;
57
59
  if (selectionChangedEvent.oldSelectedElements && selectionChangedEvent.oldSelectedElements.length) {
58
60
  if (selectionChangedEvent.oldSelectedElements[0].parent) {
59
61
  const primaryContainer = DesignItem.GetOrCreateDesignItem(selectionChangedEvent.oldSelectedElements[0].parent.element, selectionChangedEvent.oldSelectedElements[0].parent.element, this.designerCanvas.serviceContainer, this.designerCanvas.instanceServiceContainer);
@@ -78,8 +80,9 @@ export class ExtensionManager {
78
80
  }
79
81
  _selectedElementsRefresh(selectionChangedEvent) {
80
82
  this.refreshAllAppliedExtentions(selectionChangedEvent.event);
81
- if (selectionChangedEvent.selectedElements && selectionChangedEvent.selectedElements.length) {
83
+ if (selectionChangedEvent.selectedElements && selectionChangedEvent.selectedElements.length && (!this._lastPrimarySelectionRefreshItem || this._lastPrimarySelectionRefreshItem.deref() !== selectionChangedEvent.selectedElements[0])) {
82
84
  this.applyExtension(selectionChangedEvent.selectedElements[0], ExtensionType.PrimarySelectionRefreshed, selectionChangedEvent.event);
85
+ this._lastPrimarySelectionRefreshItem = new WeakRef(selectionChangedEvent.selectedElements[0]);
83
86
  }
84
87
  }
85
88
  applyExtension(designItem, extensionType, event, recursive = false) {
@@ -193,8 +196,10 @@ export class ExtensionManager {
193
196
  console.error(err);
194
197
  }
195
198
  e[1].splice(idx, 1);
196
- if (e[1].length == 0)
199
+ if (e[1].length == 0) {
197
200
  wmGet(designItem, this._appliedDesignerExtensions).delete(e[0]);
201
+ wmGet(designItem, this._shouldAppliedDesignerExtensions).delete(e[0]);
202
+ }
198
203
  if (!wmGet(designItem, this._appliedDesignerExtensions).size)
199
204
  this.designItemsWithExtentions.delete(designItem);
200
205
  }
@@ -86,7 +86,6 @@ export class RectangleSelectorTool {
86
86
  }
87
87
  }
88
88
  }
89
- designerCanvas.instanceServiceContainer.selectionService.setSelectedElements(inSelectionElements);
90
89
  designerCanvas.overlayLayer.removeOverlay(this._rect);
91
90
  this._rect = null;
92
91
  this._initialPoint = null;
@@ -165,6 +165,7 @@ export class PropertyGridWithHeader extends BaseCustomWebComponentLazyAppend {
165
165
  PropertyGridPropertyList.refreshIsSetElementAndEditorForDesignItems(this._contentRect, this._propertiesService.contentProperty, this._instanceServiceContainer.selectionService.selectedElements, this._propertiesService);
166
166
  PropertyGridPropertyList.refreshIsSetElementAndEditorForDesignItems(this._innerRect, this._propertiesService.innerHtmlProperty, this._instanceServiceContainer.selectionService.selectedElements, this._propertiesService);
167
167
  });
168
+ this._pg.instanceServiceContainer = value;
168
169
  }
169
170
  }
170
171
  customElements.define('node-projects-web-component-designer-property-grid-with-header', PropertyGridWithHeader);
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.105",
4
+ "version": "0.1.106",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "author": "jochen.kuehner@gmx.de",