@node-projects/web-component-designer 0.0.48 → 0.0.49

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.
@@ -397,7 +397,7 @@ export class DesignerCanvas extends BaseCustomWebComponentLazyAppend {
397
397
  showDesignItemContextMenu(designItem, event) {
398
398
  const mnuItems = [];
399
399
  for (let cme of this.serviceContainer.designerContextMenuExtensions) {
400
- if (cme.shouldProvideContextmenu(event, this, designItem)) {
400
+ if (cme.shouldProvideContextmenu(event, this, designItem, 'designer')) {
401
401
  mnuItems.push(...cme.provideContextMenuItems(event, this, designItem));
402
402
  }
403
403
  }
@@ -1,8 +1,8 @@
1
1
  import { IContextMenuItem } from "../../../../helper/contextMenu/IContextmenuItem";
2
2
  import { IDesignItem } from "../../../../item/IDesignItem";
3
3
  import { IDesignerCanvas } from "../../IDesignerCanvas";
4
- import { IContextMenuExtension } from "./IContextMenuExtension";
4
+ import { ContextmenuInitiator, IContextMenuExtension } from "./IContextMenuExtension";
5
5
  export declare class CopyPasteContextMenu implements IContextMenuExtension {
6
- shouldProvideContextmenu(event: MouseEvent, designerView: IDesignerCanvas, designItem: IDesignItem): boolean;
6
+ shouldProvideContextmenu(event: MouseEvent, designerView: IDesignerCanvas, designItem: IDesignItem, initiator: ContextmenuInitiator): boolean;
7
7
  provideContextMenuItems(event: MouseEvent, designerView: IDesignerCanvas, designItem: IDesignItem): IContextMenuItem[];
8
8
  }
@@ -1,6 +1,6 @@
1
1
  import { CommandType } from "../../../../../commandHandling/CommandType";
2
2
  export class CopyPasteContextMenu {
3
- shouldProvideContextmenu(event, designerView, designItem) {
3
+ shouldProvideContextmenu(event, designerView, designItem, initiator) {
4
4
  return true;
5
5
  }
6
6
  provideContextMenuItems(event, designerView, designItem) {
@@ -1,7 +1,8 @@
1
1
  import { IContextMenuItem } from "../../../../helper/contextMenu/IContextmenuItem";
2
2
  import { IDesignItem } from "../../../../item/IDesignItem";
3
3
  import { IDesignerCanvas } from "../../IDesignerCanvas";
4
+ export declare type ContextmenuInitiator = 'designer' | 'treeView' | 'other';
4
5
  export interface IContextMenuExtension {
5
- shouldProvideContextmenu(event: MouseEvent, designerView: IDesignerCanvas, designItem: IDesignItem): any;
6
+ shouldProvideContextmenu(event: MouseEvent, designerView: IDesignerCanvas, designItem: IDesignItem, initiator: ContextmenuInitiator): any;
6
7
  provideContextMenuItems(event: MouseEvent, designerView: IDesignerCanvas, designItem: IDesignItem): IContextMenuItem[];
7
8
  }
@@ -1,9 +1,9 @@
1
1
  import { IContextMenuItem } from "../../../../helper/contextMenu/IContextmenuItem";
2
2
  import { IDesignItem } from "../../../../item/IDesignItem";
3
3
  import { IDesignerCanvas } from "../../IDesignerCanvas";
4
- import { IContextMenuExtension } from "./IContextMenuExtension";
4
+ import { ContextmenuInitiator, IContextMenuExtension } from "./IContextMenuExtension";
5
5
  export declare class ItemsBelowContextMenu implements IContextMenuExtension {
6
- shouldProvideContextmenu(event: MouseEvent, designerView: IDesignerCanvas, designItem: IDesignItem): boolean;
6
+ shouldProvideContextmenu(event: MouseEvent, designerView: IDesignerCanvas, designItem: IDesignItem, initiator: ContextmenuInitiator): boolean;
7
7
  provideContextMenuItems(event: MouseEvent, designerView: IDesignerCanvas, designItem: IDesignItem): IContextMenuItem[];
8
8
  private _select;
9
9
  private _searchForItemsBelow;
@@ -1,7 +1,7 @@
1
1
  import { DesignItem } from "../../../../item/DesignItem";
2
2
  export class ItemsBelowContextMenu {
3
- shouldProvideContextmenu(event, designerView, designItem) {
4
- return true;
3
+ shouldProvideContextmenu(event, designerView, designItem, initiator) {
4
+ return initiator == 'designer';
5
5
  }
6
6
  provideContextMenuItems(event, designerView, designItem) {
7
7
  const lstItems = this._searchForItemsBelow(event, designerView);
@@ -31,7 +31,8 @@ export class ItemsBelowContextMenu {
31
31
  break;
32
32
  if (el !== designerView.overlayLayer && el.parentElement !== designerView.overlayLayer && el.getRootNode() === designerView.shadowRoot)
33
33
  lstEl.push(el);
34
- backupPEventsMap.set(el, el.style.pointerEvents);
34
+ if (!backupPEventsMap.has(el))
35
+ backupPEventsMap.set(el, el.style.pointerEvents);
35
36
  el.style.pointerEvents = 'none';
36
37
  const oldEl = el;
37
38
  el = designerView.elementFromPoint(event.x, event.y);
@@ -1,9 +1,9 @@
1
1
  import { IContextMenuItem } from "../../../../helper/contextMenu/IContextmenuItem";
2
2
  import { IDesignItem } from "../../../../item/IDesignItem";
3
3
  import { IDesignerCanvas } from "../../IDesignerCanvas";
4
- import { IContextMenuExtension } from "./IContextMenuExtension";
4
+ import { ContextmenuInitiator, IContextMenuExtension } from "./IContextMenuExtension";
5
5
  export declare class MultipleItemsSelectedContextMenu implements IContextMenuExtension {
6
6
  orderIndex: number;
7
- shouldProvideContextmenu(event: MouseEvent, designerView: IDesignerCanvas, designItem: IDesignItem): boolean;
7
+ shouldProvideContextmenu(event: MouseEvent, designerView: IDesignerCanvas, designItem: IDesignItem, initiator: ContextmenuInitiator): boolean;
8
8
  provideContextMenuItems(event: MouseEvent, designerView: IDesignerCanvas, designItem: IDesignItem): IContextMenuItem[];
9
9
  }
@@ -1,6 +1,6 @@
1
1
  export class MultipleItemsSelectedContextMenu {
2
2
  orderIndex = 60;
3
- shouldProvideContextmenu(event, designerView, designItem) {
3
+ shouldProvideContextmenu(event, designerView, designItem, initiator) {
4
4
  if (designItem.instanceServiceContainer.selectionService.selectedElements.length > 1) {
5
5
  return true;
6
6
  }
@@ -1,8 +1,8 @@
1
1
  import { IContextMenuItem } from "../../../../helper/contextMenu/IContextmenuItem";
2
2
  import { IDesignItem } from "../../../../item/IDesignItem";
3
3
  import { IDesignerCanvas } from "../../IDesignerCanvas";
4
- import { IContextMenuExtension } from "./IContextMenuExtension";
4
+ import { ContextmenuInitiator, IContextMenuExtension } from "./IContextMenuExtension";
5
5
  export declare class ZMoveContextMenu implements IContextMenuExtension {
6
- shouldProvideContextmenu(event: MouseEvent, designerView: IDesignerCanvas, designItem: IDesignItem): boolean;
6
+ shouldProvideContextmenu(event: MouseEvent, designerView: IDesignerCanvas, designItem: IDesignItem, initiator: ContextmenuInitiator): boolean;
7
7
  provideContextMenuItems(event: MouseEvent, designerView: IDesignerCanvas, designItem: IDesignItem): IContextMenuItem[];
8
8
  }
@@ -1,6 +1,6 @@
1
1
  import { CommandType } from "../../../../../commandHandling/CommandType";
2
2
  export class ZMoveContextMenu {
3
- shouldProvideContextmenu(event, designerView, designItem) {
3
+ shouldProvideContextmenu(event, designerView, designItem, initiator) {
4
4
  return true;
5
5
  }
6
6
  provideContextMenuItems(event, designerView, designItem) {
@@ -3,6 +3,7 @@ import { ITreeView } from './ITreeView';
3
3
  import { IDesignItem } from '../../item/IDesignItem';
4
4
  import { ISelectionChangedEvent } from '../../services/selectionService/ISelectionChangedEvent';
5
5
  import { InstanceServiceContainer } from '../../services/InstanceServiceContainer.js';
6
+ import { ContextMenuHelper } from '../../helper/contextMenu/ContextMenuHelper.js';
6
7
  export declare class TreeViewExtended extends BaseCustomWebComponentConstructorAppend implements ITreeView {
7
8
  private _treeDiv;
8
9
  private _tree;
@@ -19,6 +20,7 @@ export declare class TreeViewExtended extends BaseCustomWebComponentConstructorA
19
20
  _switchLockAtDesignTimeState(img: HTMLImageElement, designItem: IDesignItem): void;
20
21
  _showHideAtRunTimeState(img: HTMLImageElement, designItem: IDesignItem): void;
21
22
  _switchHideAtRunTimeState(img: HTMLImageElement, designItem: IDesignItem): void;
23
+ showDesignItemContextMenu(designItem: IDesignItem, event: MouseEvent): ContextMenuHelper;
22
24
  ready(): Promise<void>;
23
25
  createTree(rootItem: IDesignItem): void;
24
26
  set instanceServiceContainer(value: InstanceServiceContainer);
@@ -1,6 +1,7 @@
1
1
  import { css, html, BaseCustomWebComponentConstructorAppend } from '@node-projects/base-custom-webcomponent';
2
2
  import { NodeType } from '../../item/NodeType';
3
3
  import { assetsPath } from '../../../Constants';
4
+ import { ContextMenuHelper } from '../../helper/contextMenu/ContextMenuHelper.js';
4
5
  export class TreeViewExtended extends BaseCustomWebComponentConstructorAppend {
5
6
  _treeDiv;
6
7
  _tree;
@@ -135,6 +136,17 @@ export class TreeViewExtended extends BaseCustomWebComponentConstructorAppend {
135
136
  designItem.hideAtRunTime = !designItem.hideAtRunTime;
136
137
  this._showHideAtRunTimeState(img, designItem);
137
138
  }
139
+ showDesignItemContextMenu(designItem, event) {
140
+ event.preventDefault();
141
+ const mnuItems = [];
142
+ for (let cme of designItem.serviceContainer.designerContextMenuExtensions) {
143
+ if (cme.shouldProvideContextmenu(event, designItem.instanceServiceContainer.designerCanvas, designItem, 'treeView')) {
144
+ mnuItems.push(...cme.provideContextMenuItems(event, designItem.instanceServiceContainer.designerCanvas, designItem));
145
+ }
146
+ }
147
+ let ctxMnu = ContextMenuHelper.showContextMenu(null, event, null, mnuItems);
148
+ return ctxMnu;
149
+ }
138
150
  async ready() {
139
151
  //this._treeDiv.classList.add('fancytree-connectors');
140
152
  $(this._treeDiv).fancytree({
@@ -158,6 +170,7 @@ export class TreeViewExtended extends BaseCustomWebComponentConstructorAppend {
158
170
  if (node.tr.children[0]) {
159
171
  let designItem = node.data.ref;
160
172
  if (designItem && designItem.nodeType === NodeType.Element && designItem !== designItem.instanceServiceContainer.contentService.rootDesignItem) {
173
+ node.tr.oncontextmenu = (e) => this.showDesignItemContextMenu(designItem, e);
161
174
  let d = document.createElement("div");
162
175
  d.className = "cmd";
163
176
  let img = document.createElement('img');
package/dist/index.d.ts CHANGED
@@ -133,7 +133,7 @@ export * from "./elements/widgets/designerView/extensions/SelectionDefaultExtens
133
133
  export * from "./elements/widgets/designerView/extensions/SelectionDefaultExtensionProvider.js";
134
134
  export * from "./elements/widgets/designerView/extensions/TransformOriginExtension.js";
135
135
  export * from "./elements/widgets/designerView/extensions/TransformOriginExtensionProvider.js";
136
- export type { IContextMenuExtension } from "./elements/widgets/designerView/extensions/contextMenu/IContextMenuExtension.js";
136
+ export type { IContextMenuExtension, ContextmenuInitiator } from "./elements/widgets/designerView/extensions/contextMenu/IContextMenuExtension.js";
137
137
  export * from "./elements/widgets/designerView/extensions/contextMenu/CopyPasteContextMenu.js";
138
138
  export * from "./elements/widgets/designerView/extensions/contextMenu/ItemsBelowContextMenu.js";
139
139
  export * from "./elements/widgets/designerView/extensions/contextMenu/MultipleItemsSelectedContextMenu.js";
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.0.48",
4
+ "version": "0.0.49",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "author": "",