@node-projects/web-component-designer 0.1.149 → 0.1.151

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.
@@ -1,3 +1,4 @@
1
+ import { TypedEvent } from '@node-projects/base-custom-webcomponent';
1
2
  import { IDesignContext } from './IDesignContext.js';
2
3
  export declare class DesignContext implements IDesignContext {
3
4
  imports: string[];
@@ -5,4 +6,5 @@ export declare class DesignContext implements IDesignContext {
5
6
  extensionOptions: {
6
7
  [key: string]: any;
7
8
  };
9
+ extensionOptionsChanged: TypedEvent<void>;
8
10
  }
@@ -1,5 +1,7 @@
1
+ import { TypedEvent } from '@node-projects/base-custom-webcomponent';
1
2
  export class DesignContext {
2
3
  imports = [];
3
4
  npmPackages = [];
4
5
  extensionOptions = {};
6
+ extensionOptionsChanged = new TypedEvent;
5
7
  }
@@ -1,7 +1,9 @@
1
+ import { TypedEvent } from "@node-projects/base-custom-webcomponent";
1
2
  export interface IDesignContext {
2
3
  imports: string[];
3
4
  npmPackages: string[];
4
5
  extensionOptions: {
5
6
  [key: string]: any;
6
7
  };
8
+ extensionOptionsChanged: TypedEvent<void>;
7
9
  }
@@ -847,7 +847,7 @@ export class DesignerCanvas extends BaseCustomWebComponentLazyAppend {
847
847
  const mnuItems = [];
848
848
  for (let cme of this.serviceContainer.designerContextMenuExtensions) {
849
849
  if (cme.shouldProvideContextmenu(event, this, designItem, 'designer')) {
850
- mnuItems.push(...cme.provideContextMenuItems(event, this, designItem));
850
+ mnuItems.push(...cme.provideContextMenuItems(event, this, designItem, 'designer'));
851
851
  }
852
852
  }
853
853
  let ctxMenu = new ContextMenu(mnuItems, null);
@@ -18,6 +18,12 @@ export class AbstractDesignViewConfigButton {
18
18
  btn.appendChild(this.content);
19
19
  btn.title = this.tooltp;
20
20
  btn.className = 'toolbar-control';
21
+ designerCanvas.instanceServiceContainer.designContext.extensionOptionsChanged.on(() => {
22
+ if (extensionOptions[this.settingName] !== false)
23
+ btn.classList.add('selected');
24
+ else
25
+ btn.classList.remove('selected');
26
+ });
21
27
  const extensionOptions = designerCanvas.instanceServiceContainer.designContext.extensionOptions;
22
28
  if (extensionOptions[this.settingName] !== false)
23
29
  btn.classList.add('selected');
@@ -2,7 +2,10 @@ import { CommandType } from '../../../../../commandHandling/CommandType.js';
2
2
  import { NodeType } from '../../../../item/NodeType.js';
3
3
  export class AlignItemsContextMenu {
4
4
  shouldProvideContextmenu(event, designerView, designItem, initiator) {
5
- return !designItem?.isRootItem && designItem?.nodeType == NodeType.Element;
5
+ if (designItem?.instanceServiceContainer.selectionService.selectedElements.length > 1) {
6
+ return !designItem?.isRootItem && designItem?.nodeType == NodeType.Element;
7
+ }
8
+ return false;
6
9
  }
7
10
  provideContextMenuItems(event, designerView, designItem) {
8
11
  return [
@@ -7,5 +7,5 @@ export declare class ChildContextMenu implements IContextMenuExtension {
7
7
  private _contextMenus;
8
8
  constructor(title: string, ...contextMenus: IContextMenuExtension[]);
9
9
  shouldProvideContextmenu(event: MouseEvent, designerView: IDesignerCanvas, designItem: IDesignItem, initiator: ContextmenuInitiator): boolean;
10
- provideContextMenuItems(event: MouseEvent, designerView: IDesignerCanvas, designItem: IDesignItem): IContextMenuItem[];
10
+ provideContextMenuItems(event: MouseEvent, designerView: IDesignerCanvas, designItem: IDesignItem, initiator: ContextmenuInitiator): IContextMenuItem[];
11
11
  }
@@ -8,7 +8,7 @@ export class ChildContextMenu {
8
8
  shouldProvideContextmenu(event, designerView, designItem, initiator) {
9
9
  return this._contextMenus.some(x => x.shouldProvideContextmenu(event, designerView, designItem, initiator));
10
10
  }
11
- provideContextMenuItems(event, designerView, designItem) {
12
- return [{ title: this._title, children: this._contextMenus.map(x => x.provideContextMenuItems(event, designerView, designItem)).flat() }];
11
+ provideContextMenuItems(event, designerView, designItem, initiator) {
12
+ return [{ title: this._title, children: this._contextMenus.map(x => x.shouldProvideContextmenu(event, designerView, designItem, initiator) ? x.provideContextMenuItems(event, designerView, designItem, initiator) : []).flat() }];
13
13
  }
14
14
  }
@@ -4,5 +4,5 @@ import { IDesignerCanvas } from '../../IDesignerCanvas.js';
4
4
  export type ContextmenuInitiator = 'designer' | 'treeView' | 'other';
5
5
  export interface IContextMenuExtension {
6
6
  shouldProvideContextmenu(event: MouseEvent, designerView: IDesignerCanvas, designItem: IDesignItem, initiator: ContextmenuInitiator): any;
7
- provideContextMenuItems(event: MouseEvent, designerView: IDesignerCanvas, designItem: IDesignItem): IContextMenuItem[];
7
+ provideContextMenuItems(event: MouseEvent, designerView: IDesignerCanvas, designItem: IDesignItem, initiator: ContextmenuInitiator, provider?: any): IContextMenuItem[];
8
8
  }
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.149",
4
+ "version": "0.1.151",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "author": "jochen.kuehner@gmx.de",