@node-projects/web-component-designer 0.1.164 → 0.1.165

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.
@@ -110,33 +110,26 @@ export function getDesignerCanvasNormalizedTransformedOriginWithoutParentTransfo
110
110
  const designerCanvasNormalizedTransformedOrigin = new DOMPoint(transformOriginAbsolutRelatedToWindowWithoutAnyTransformation.x - designerCanvas.containerBoundingRect.x, transformOriginAbsolutRelatedToWindowWithoutAnyTransformation.y - designerCanvas.containerBoundingRect.y);
111
111
  return designerCanvasNormalizedTransformedOrigin;
112
112
  }
113
- //const elementMatrixCacheKey = Symbol('windowOffsetsCacheKey');
113
+ const elementMatrixCacheKey = Symbol('windowOffsetsCacheKey');
114
114
  export function getResultingTransformationBetweenElementAndAllAncestors(element, ancestor, excludeAncestor, cache = {}) {
115
- /*let ch: Map<any, [DOMMatrix]>;
115
+ let ch;
116
116
  if (cache)
117
- ch = cache[elementMatrixCacheKey] ??= new Map<any, [DOMMatrix]>();
117
+ ch = cache[elementMatrixCacheKey] ??= new Map();
118
118
  else
119
- ch = new Map<any, [DOMMatrix]>();*/
120
- let lst = [];
119
+ ch = new Map();
120
+ const res = ch.get(element);
121
+ if (res)
122
+ return res;
121
123
  let actualElement = element;
122
124
  let actualElementMatrix;
123
125
  let newElementMatrix;
124
126
  let originalElementAndAllParentsMultipliedMatrix;
125
127
  while (actualElement != ancestor && actualElement != null) {
126
- /*let cachedObj = ch.get(actualElement);
127
- if (cachedObj) {
128
- if (originalElementAndAllParentsMultipliedMatrix)
129
- originalElementAndAllParentsMultipliedMatrix = cachedObj[0].multiply(originalElementAndAllParentsMultipliedMatrix);
130
- else
131
- originalElementAndAllParentsMultipliedMatrix = cachedObj[0];
132
- lst.forEach(x => x[0] = x[0].multiply(originalElementAndAllParentsMultipliedMatrix));
133
- break;
134
- }*/
135
128
  const newElement = getParentElementIncludingSlots(actualElement);
136
129
  if (newElement) {
137
130
  actualElementMatrix = getElementCombinedTransform(actualElement);
138
131
  newElementMatrix = getElementCombinedTransform(newElement);
139
- actualElementMatrix.m41 = actualElementMatrix.m42 = actualElementMatrix.m43 = 0;
132
+ actualElementMatrix.m43 = 0;
140
133
  newElementMatrix.m41 = newElementMatrix.m42 = newElementMatrix.m43 = 0;
141
134
  if (actualElement == element) {
142
135
  originalElementAndAllParentsMultipliedMatrix = newElementMatrix.multiply(actualElementMatrix);
@@ -144,13 +137,10 @@ export function getResultingTransformationBetweenElementAndAllAncestors(element,
144
137
  else if (newElement != ancestor || !excludeAncestor) {
145
138
  originalElementAndAllParentsMultipliedMatrix = newElementMatrix.multiply(originalElementAndAllParentsMultipliedMatrix);
146
139
  }
147
- lst.forEach(x => x[0] = x[0].multiply(originalElementAndAllParentsMultipliedMatrix));
148
- const cacheEntry = [originalElementAndAllParentsMultipliedMatrix];
149
- lst.push(cacheEntry);
150
- //ch.set(actualElement, cacheEntry);
151
140
  }
152
141
  actualElement = newElement;
153
142
  }
143
+ ch.set(element, originalElementAndAllParentsMultipliedMatrix);
154
144
  return originalElementAndAllParentsMultipliedMatrix;
155
145
  }
156
146
  export function getByParentsTransformedPointRelatedToCanvas(element, point, designerCanvas, cache) {
@@ -98,6 +98,7 @@ import { BasicWebcomponentPropertiesService } from './propertiesService/services
98
98
  import { PreviousElementSelectExtensionProvider } from '../widgets/designerView/extensions/PreviousElementSelectExtensionProvider.js';
99
99
  import { ForceCssContextMenu } from '../widgets/designerView/extensions/contextMenu/ForceCssContextMenu.js';
100
100
  import { OptionsContextMenuButton } from '../widgets/designerView/extensions/buttons/OptionsContextMenuButton.js';
101
+ import { ChildrenContextMenu } from '../widgets/designerView/extensions/contextMenu/ChildrenContextMenu.js';
101
102
  export function createDefaultServiceContainer() {
102
103
  let serviceContainer = new ServiceContainer();
103
104
  let defaultPlacementService = new DefaultPlacementService();
@@ -218,6 +219,7 @@ export function createDefaultServiceContainer() {
218
219
  new SelectAllChildrenContextMenu(),
219
220
  new SeperatorContextMenu(),
220
221
  new ItemsBelowContextMenu(),
222
+ new ChildrenContextMenu(),
221
223
  ];
222
224
  return serviceContainer;
223
225
  }
@@ -0,0 +1,9 @@
1
+ import { IContextMenuItem } from '../../../../helper/contextMenu/IContextMenuItem.js';
2
+ import { IDesignItem } from '../../../../item/IDesignItem.js';
3
+ import { IDesignerCanvas } from '../../IDesignerCanvas.js';
4
+ import { ContextmenuInitiator, IContextMenuExtension } from './IContextMenuExtension.js';
5
+ export declare class ChildrenContextMenu implements IContextMenuExtension {
6
+ shouldProvideContextmenu(event: MouseEvent, designerView: IDesignerCanvas, designItem: IDesignItem, initiator: ContextmenuInitiator): boolean;
7
+ provideContextMenuItems(event: MouseEvent, designerCanvas: IDesignerCanvas, designItem: IDesignItem): IContextMenuItem[];
8
+ private _select;
9
+ }
@@ -0,0 +1,19 @@
1
+ import { DesignItem } from '../../../../item/DesignItem.js';
2
+ export class ChildrenContextMenu {
3
+ shouldProvideContextmenu(event, designerView, designItem, initiator) {
4
+ return initiator == 'designer';
5
+ }
6
+ provideContextMenuItems(event, designerCanvas, designItem) {
7
+ if (designItem) {
8
+ const lstItems = [...designItem.element.children];
9
+ if (lstItems.length > 0) {
10
+ return [{ title: 'children', children: [...lstItems.map(x => ({ title: 'select: ' + x.localName + (x.id ? ' (#' + x.id + ')' : ''), action: () => this._select(designerCanvas, x) }))] }];
11
+ }
12
+ }
13
+ return [];
14
+ }
15
+ _select(designerView, element) {
16
+ const item = DesignItem.GetOrCreateDesignItem(element, element, designerView.serviceContainer, designerView.instanceServiceContainer);
17
+ designerView.instanceServiceContainer.selectionService.setSelectedElements([item]);
18
+ }
19
+ }
@@ -0,0 +1,9 @@
1
+ import { IContextMenuItem } from '../../../../helper/contextMenu/IContextMenuItem.js';
2
+ import { IDesignItem } from '../../../../item/IDesignItem.js';
3
+ import { IDesignerCanvas } from '../../IDesignerCanvas.js';
4
+ import { ContextmenuInitiator, IContextMenuExtension } from './IContextMenuExtension.js';
5
+ export declare class ItemsBelowContextMenu implements IContextMenuExtension {
6
+ shouldProvideContextmenu(event: MouseEvent, designerView: IDesignerCanvas, designItem: IDesignItem, initiator: ContextmenuInitiator): boolean;
7
+ provideContextMenuItems(event: MouseEvent, designerCanvas: IDesignerCanvas, designItem: IDesignItem): IContextMenuItem[];
8
+ private _select;
9
+ }
@@ -0,0 +1,17 @@
1
+ import { DesignItem } from '../../../../item/DesignItem.js';
2
+ export class ItemsBelowContextMenu {
3
+ shouldProvideContextmenu(event, designerView, designItem, initiator) {
4
+ return initiator == 'designer';
5
+ }
6
+ provideContextMenuItems(event, designerCanvas, designItem) {
7
+ const lstItems = designerCanvas.elementsFromPoint(event.x, event.y);
8
+ if (lstItems.length > 0) {
9
+ return [{ title: 'items below', children: [...lstItems.map(x => ({ title: 'select: ' + x.localName + (x.id ? ' (' + x.id + ')' : ''), action: () => this._select(designerCanvas, x) }))] }];
10
+ }
11
+ return [];
12
+ }
13
+ _select(designerView, element) {
14
+ const item = DesignItem.GetOrCreateDesignItem(element, element, designerView.serviceContainer, designerView.instanceServiceContainer);
15
+ designerView.instanceServiceContainer.selectionService.setSelectedElements([item]);
16
+ }
17
+ }
@@ -6,7 +6,7 @@ export class ItemsBelowContextMenu {
6
6
  provideContextMenuItems(event, designerCanvas, designItem) {
7
7
  const lstItems = designerCanvas.elementsFromPoint(event.x, event.y);
8
8
  if (lstItems.length > 0) {
9
- return [{ title: 'items below', children: [...lstItems.map(x => ({ title: 'select: ' + x.localName + (x.id ? ' (' + x.id + ')' : ''), action: () => this._select(designerCanvas, x) }))] }];
9
+ return [{ title: 'items below', children: [...lstItems.map(x => ({ title: 'select: ' + x.localName + (x.id ? ' (#' + x.id + ')' : ''), action: () => this._select(designerCanvas, x) }))] }];
10
10
  }
11
11
  return [];
12
12
  }
package/dist/index.d.ts CHANGED
@@ -275,6 +275,7 @@ export type { IContextMenuExtension, ContextmenuInitiator } from "./elements/wid
275
275
  export * from "./elements/widgets/designerView/extensions/contextMenu/ChildContextMenu.js";
276
276
  export * from "./elements/widgets/designerView/extensions/contextMenu/CopyPasteContextMenu.js";
277
277
  export * from "./elements/widgets/designerView/extensions/contextMenu/ItemsBelowContextMenu.js";
278
+ export * from "./elements/widgets/designerView/extensions/contextMenu/ChildrenContextMenu.js";
278
279
  export * from "./elements/widgets/designerView/extensions/contextMenu/MultipleItemsSelectedContextMenu.js";
279
280
  export * from "./elements/widgets/designerView/extensions/contextMenu/PathContextMenu.js";
280
281
  export * from "./elements/widgets/designerView/extensions/contextMenu/RectContextMenu.js";
package/dist/index.js CHANGED
@@ -214,6 +214,7 @@ export * from "./elements/widgets/designerView/extensions/EditText/EditTextExten
214
214
  export * from "./elements/widgets/designerView/extensions/contextMenu/ChildContextMenu.js";
215
215
  export * from "./elements/widgets/designerView/extensions/contextMenu/CopyPasteContextMenu.js";
216
216
  export * from "./elements/widgets/designerView/extensions/contextMenu/ItemsBelowContextMenu.js";
217
+ export * from "./elements/widgets/designerView/extensions/contextMenu/ChildrenContextMenu.js";
217
218
  export * from "./elements/widgets/designerView/extensions/contextMenu/MultipleItemsSelectedContextMenu.js";
218
219
  export * from "./elements/widgets/designerView/extensions/contextMenu/PathContextMenu.js";
219
220
  export * from "./elements/widgets/designerView/extensions/contextMenu/RectContextMenu.js";
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.164",
4
+ "version": "0.1.165",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "author": "jochen.kuehner@gmx.de",