@node-projects/web-component-designer 0.1.126 → 0.1.128

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.
Files changed (69) hide show
  1. package/dist/elements/documentContainer.js +34 -24
  2. package/dist/elements/services/DefaultServiceBootstrap.js +2 -1
  3. package/dist/elements/services/placementService/AbsolutePlacementService.d.ts +6 -6
  4. package/dist/elements/services/placementService/AbsolutePlacementService.js +22 -20
  5. package/dist/elements/services/placementService/DefaultPlacementService.d.ts +3 -2
  6. package/dist/elements/services/placementService/FlexBoxPlacementService.d.ts +5 -5
  7. package/dist/elements/services/placementService/FlexBoxPlacementService.js +8 -8
  8. package/dist/elements/services/placementService/GridPlacementService.d.ts +5 -5
  9. package/dist/elements/services/placementService/GridPlacementService.js +9 -9
  10. package/dist/elements/services/placementService/IPlacementService.d.ts +5 -5
  11. package/dist/elements/services/selectionService/ISelectionChangedEvent copy.d.ts +6 -0
  12. package/dist/elements/services/selectionService/ISelectionChangedEvent copy.js +1 -0
  13. package/dist/elements/widgets/designerView/IDesignerCanvas.d.ts +0 -1
  14. package/dist/elements/widgets/designerView/designerCanvas.d.ts +0 -1
  15. package/dist/elements/widgets/designerView/designerCanvas.js +2 -6
  16. package/dist/elements/widgets/designerView/extensions/AbstractToolbarExtension.d.ts +9 -0
  17. package/dist/elements/widgets/designerView/extensions/AbstractToolbarExtension.js +30 -0
  18. package/dist/elements/widgets/designerView/extensions/BasicDisplayToolbarExtension.d.ts +20 -0
  19. package/dist/elements/widgets/designerView/extensions/BasicDisplayToolbarExtension.js +68 -0
  20. package/dist/elements/widgets/designerView/extensions/BasicStackedToolbarExtension.d.ts +1 -0
  21. package/dist/elements/widgets/designerView/extensions/BasicStackedToolbarExtension.js +1 -0
  22. package/dist/elements/widgets/designerView/extensions/BlockToolbarExtension.d.ts +12 -0
  23. package/dist/elements/widgets/designerView/extensions/BlockToolbarExtension.js +40 -0
  24. package/dist/elements/widgets/designerView/extensions/ConditionExtensionProvider.d.ts +13 -0
  25. package/dist/elements/widgets/designerView/extensions/ConditionExtensionProvider.js +18 -0
  26. package/dist/elements/widgets/designerView/extensions/EditTextExtension.d.ts +18 -0
  27. package/dist/elements/widgets/designerView/extensions/EditTextExtension.js +107 -0
  28. package/dist/elements/widgets/designerView/extensions/GridToolbarExtension.d.ts +12 -0
  29. package/dist/elements/widgets/designerView/extensions/GridToolbarExtension.js +58 -0
  30. package/dist/elements/widgets/designerView/extensions/ResizeExtension.js +37 -31
  31. package/dist/elements/widgets/designerView/extensions/block/BlockToolbarExtensionProvider.d.ts +1 -1
  32. package/dist/elements/widgets/designerView/extensions/block/BlockToolbarExtensionProvider.js +4 -2
  33. package/dist/elements/widgets/designerView/extensions/block/FlexToolbarExtension.d.ts +12 -0
  34. package/dist/elements/widgets/designerView/extensions/block/FlexToolbarExtension.js +34 -0
  35. package/dist/elements/widgets/designerView/extensions/block/FlexToolbarExtensionProvider.d.ts +9 -0
  36. package/dist/elements/widgets/designerView/extensions/block/FlexToolbarExtensionProvider.js +12 -0
  37. package/dist/elements/widgets/designerView/extensions/buttons/GridExtensionDesignViewConfigButtons copy.d.ts +4 -0
  38. package/dist/elements/widgets/designerView/extensions/buttons/GridExtensionDesignViewConfigButtons copy.js +7 -0
  39. package/dist/elements/widgets/designerView/extensions/buttons/ToolbarExtensionsDesignViewConfigButtons.d.ts +4 -0
  40. package/dist/elements/widgets/designerView/extensions/buttons/ToolbarExtensionsDesignViewConfigButtons.js +7 -0
  41. package/dist/elements/widgets/designerView/extensions/flex/FlexToolbarExtensionProvider.d.ts +1 -1
  42. package/dist/elements/widgets/designerView/extensions/flex/FlexToolbarExtensionProvider.js +4 -2
  43. package/dist/elements/widgets/designerView/extensions/flex/GridToolbarExtension.d.ts +12 -0
  44. package/dist/elements/widgets/designerView/extensions/flex/GridToolbarExtension.js +66 -0
  45. package/dist/elements/widgets/designerView/extensions/flex/GridToolbarExtensionProvider.d.ts +10 -0
  46. package/dist/elements/widgets/designerView/extensions/flex/GridToolbarExtensionProvider.js +17 -0
  47. package/dist/elements/widgets/designerView/extensions/grid/GridChildToolbarExtensionProvider.d.ts +1 -1
  48. package/dist/elements/widgets/designerView/extensions/grid/GridChildToolbarExtensionProvider.js +3 -2
  49. package/dist/elements/widgets/designerView/extensions/grid/GridToolbarExtension copy.d.ts +12 -0
  50. package/dist/elements/widgets/designerView/extensions/grid/GridToolbarExtension copy.js +66 -0
  51. package/dist/elements/widgets/designerView/extensions/grid/GridToolbarExtensionProvider copy.d.ts +10 -0
  52. package/dist/elements/widgets/designerView/extensions/grid/GridToolbarExtensionProvider copy.js +17 -0
  53. package/dist/elements/widgets/designerView/extensions/grid/GridToolbarExtensionProvider.d.ts +1 -1
  54. package/dist/elements/widgets/designerView/extensions/grid/GridToolbarExtensionProvider.js +4 -2
  55. package/dist/elements/widgets/designerView/extensions/grid/ResizeExtension.d.ts +28 -0
  56. package/dist/elements/widgets/designerView/extensions/grid/ResizeExtension.js +355 -0
  57. package/dist/elements/widgets/designerView/extensions/grid/ResizeExtensionProvider.d.ts +12 -0
  58. package/dist/elements/widgets/designerView/extensions/grid/ResizeExtensionProvider.js +20 -0
  59. package/dist/elements/widgets/designerView/extensions/svg/RectExtensionProvider copy.d.ts +9 -0
  60. package/dist/elements/widgets/designerView/extensions/svg/RectExtensionProvider copy.js +14 -0
  61. package/dist/elements/widgets/designerView/extensions/svg/SvgBaseExtension.d.ts +30 -0
  62. package/dist/elements/widgets/designerView/extensions/svg/SvgBaseExtension.js +181 -0
  63. package/dist/elements/widgets/designerView/overlayLayerView.d.ts +0 -1
  64. package/dist/elements/widgets/designerView/overlayLayerView.js +0 -4
  65. package/dist/index.d.ts +7 -0
  66. package/dist/index.js +7 -0
  67. package/package.json +1 -1
  68. package/dist/elements/services/designItemService/DesignItemService copy.d.ts +0 -7
  69. package/dist/elements/services/designItemService/DesignItemService copy.js +0 -6
@@ -4,6 +4,13 @@ import { DesignerView } from './widgets/designerView/designerView.js';
4
4
  import { SimpleSplitView } from './controls/SimpleSplitView.js';
5
5
  import { sleep } from "./helper/Helper.js";
6
6
  import { ExtensionType } from "./widgets/designerView/extensions/ExtensionType.js";
7
+ var tabIndex;
8
+ (function (tabIndex) {
9
+ tabIndex[tabIndex["designer"] = 0] = "designer";
10
+ tabIndex[tabIndex["code"] = 1] = "code";
11
+ tabIndex[tabIndex["split"] = 2] = "split";
12
+ tabIndex[tabIndex["preview"] = 3] = "preview";
13
+ })(tabIndex || (tabIndex = {}));
7
14
  export class DocumentContainer extends BaseCustomWebComponentLazyAppend {
8
15
  designerView;
9
16
  codeView;
@@ -90,8 +97,8 @@ export class DocumentContainer extends BaseCustomWebComponentLazyAppend {
90
97
  this._codeDiv.appendChild(this.codeView);
91
98
  this.codeView.onTextChanged.on(text => {
92
99
  if (!this._disableChangeNotificationDesigner) {
93
- this._disableChangeNotificationEditor = true;
94
- if (this._tabControl.selectedIndex === 2) {
100
+ if (this._tabControl.selectedIndex === tabIndex.code || this._tabControl.selectedIndex === tabIndex.split) {
101
+ this._disableChangeNotificationEditor = true;
95
102
  this._content = text;
96
103
  this.refreshInSplitViewDebounced();
97
104
  }
@@ -106,18 +113,22 @@ export class DocumentContainer extends BaseCustomWebComponentLazyAppend {
106
113
  this._tabControl.appendChild(this.demoView);
107
114
  queueMicrotask(() => {
108
115
  this.shadowRoot.appendChild(div);
109
- this._tabControl.selectedIndex = 0;
116
+ this._tabControl.selectedIndex = tabIndex.designer;
110
117
  });
111
118
  }
112
119
  async refreshInSplitView() {
113
- await this.updateDesignerHtml();
120
+ try {
121
+ await this.updateDesignerHtml();
122
+ }
123
+ catch (err) {
124
+ console.error(err);
125
+ }
114
126
  this._disableChangeNotificationEditor = false;
115
127
  }
116
128
  designerSelectionChanged(e) {
117
- if (this._tabControl.selectedIndex === 2) {
129
+ if (this._tabControl.selectedIndex === tabIndex.split) {
118
130
  let primarySelection = this.instanceServiceContainer.selectionService.primarySelection;
119
131
  if (primarySelection) {
120
- //this._content = this.designerView.getHTML();
121
132
  if (this.designerView.instanceServiceContainer.designItemDocumentPositionService) {
122
133
  this._selectionPosition = this.designerView.instanceServiceContainer.designItemDocumentPositionService.getPosition(primarySelection);
123
134
  if (this._selectionPosition)
@@ -131,7 +142,7 @@ export class DocumentContainer extends BaseCustomWebComponentLazyAppend {
131
142
  this.onContentChanged.emit();
132
143
  if (!this._disableChangeNotificationEditor) {
133
144
  this._disableChangeNotificationDesigner = true;
134
- if (this._tabControl.selectedIndex === 2) {
145
+ if (this._tabControl.selectedIndex === tabIndex.code || this._tabControl.selectedIndex === tabIndex.split) {
135
146
  let primarySelection = this.instanceServiceContainer.selectionService.primarySelection;
136
147
  this._content = this.designerView.getHTML();
137
148
  this.codeView.update(this._content, this.designerView.instanceServiceContainer);
@@ -152,23 +163,23 @@ export class DocumentContainer extends BaseCustomWebComponentLazyAppend {
152
163
  this.demoView.dispose();
153
164
  }
154
165
  executeCommand(command) {
155
- if (this._tabControl.selectedIndex === 0 || this._tabControl.selectedIndex === 2)
166
+ if (this._tabControl.selectedIndex === tabIndex.designer || this._tabControl.selectedIndex === tabIndex.split)
156
167
  this.designerView.executeCommand(command);
157
- else if (this._tabControl.selectedIndex === 1)
168
+ else if (this._tabControl.selectedIndex === tabIndex.code)
158
169
  this.codeView.executeCommand(command);
159
- else if (this._tabControl.selectedIndex === 3)
170
+ else if (this._tabControl.selectedIndex === tabIndex.preview)
160
171
  this.demoView.executeCommand(command);
161
172
  }
162
173
  canExecuteCommand(command) {
163
- if (this._tabControl.selectedIndex === 0 || this._tabControl.selectedIndex === 2) {
174
+ if (this._tabControl.selectedIndex === tabIndex.designer || this._tabControl.selectedIndex === tabIndex.split) {
164
175
  if (this.designerView?.canExecuteCommand)
165
176
  return this.designerView.canExecuteCommand(command);
166
177
  }
167
- else if (this._tabControl.selectedIndex === 1) {
178
+ else if (this._tabControl.selectedIndex === tabIndex.code) {
168
179
  if (this.codeView?.canExecuteCommand)
169
180
  return this.codeView.canExecuteCommand(command);
170
181
  }
171
- else if (this._tabControl.selectedIndex === 3) {
182
+ else if (this._tabControl.selectedIndex === tabIndex.preview) {
172
183
  if (this.demoView?.canExecuteCommand)
173
184
  return this.demoView.canExecuteCommand(command);
174
185
  }
@@ -177,21 +188,21 @@ export class DocumentContainer extends BaseCustomWebComponentLazyAppend {
177
188
  set content(value) {
178
189
  this._content = value;
179
190
  if (this._tabControl) {
180
- if (this._tabControl.selectedIndex === 0)
191
+ if (this._tabControl.selectedIndex === tabIndex.designer)
181
192
  this.updateDesignerHtml();
182
- else if (this._tabControl.selectedIndex === 1)
193
+ else if (this._tabControl.selectedIndex === tabIndex.code)
183
194
  this.codeView.update(this._content, this.designerView.instanceServiceContainer);
184
- else if (this._tabControl.selectedIndex === 2) {
195
+ else if (this._tabControl.selectedIndex === tabIndex.split) {
185
196
  }
186
- else if (this._tabControl.selectedIndex === 3)
197
+ else if (this._tabControl.selectedIndex === tabIndex.preview)
187
198
  this.demoView.display(this._serviceContainer, this.designerView.instanceServiceContainer, this._content, this.additionalStyleString);
188
199
  }
189
200
  }
190
201
  get content() {
191
202
  if (this._tabControl) {
192
- if (this._tabControl.selectedIndex === 0)
203
+ if (this._tabControl.selectedIndex === tabIndex.designer)
193
204
  this._content = this.designerView.getHTML();
194
- else if (this._tabControl.selectedIndex === 1)
205
+ else if (this._tabControl.selectedIndex === tabIndex.code)
195
206
  this._content = this.codeView.getText();
196
207
  return this._content;
197
208
  }
@@ -213,9 +224,9 @@ export class DocumentContainer extends BaseCustomWebComponentLazyAppend {
213
224
  this._designerDiv.appendChild(this.designerView);
214
225
  this._codeDiv.appendChild(this.codeView);
215
226
  }
216
- if (i.newIndex === 0 || i.newIndex === 2)
227
+ if (i.newIndex === tabIndex.designer || i.newIndex === tabIndex.split)
217
228
  this.updateDesignerHtml();
218
- if (i.newIndex === 1 || i.newIndex === 2) {
229
+ if (i.newIndex === tabIndex.code || i.newIndex === tabIndex.split) {
219
230
  this.codeView.update(this._content, this.designerView.instanceServiceContainer);
220
231
  if (this._selectionPosition) {
221
232
  this.codeView.setSelection(this._selectionPosition);
@@ -229,11 +240,11 @@ export class DocumentContainer extends BaseCustomWebComponentLazyAppend {
229
240
  this.codeView.focusEditor();
230
241
  }
231
242
  }
232
- if (i.newIndex === 2) {
243
+ if (i.newIndex === tabIndex.split) {
233
244
  this._splitDiv.appendChild(this.designerView);
234
245
  this._splitDiv.appendChild(this.codeView);
235
246
  }
236
- if (i.newIndex === 3) {
247
+ if (i.newIndex === tabIndex.preview) {
237
248
  this.demoView.display(this._serviceContainer, this.designerView.instanceServiceContainer, this._content, this.additionalStyleString);
238
249
  }
239
250
  if (this._content) {
@@ -263,5 +274,4 @@ export class DocumentContainer extends BaseCustomWebComponentLazyAppend {
263
274
  return this.designerView.instanceServiceContainer;
264
275
  }
265
276
  }
266
- //@ts-ignore
267
277
  customElements.define("node-projects-document-container", DocumentContainer);
@@ -90,6 +90,7 @@ import { FlexToolbarExtensionProvider } from '../widgets/designerView/extensions
90
90
  import { BlockToolbarExtensionProvider } from '../widgets/designerView/extensions/block/BlockToolbarExtensionProvider.js';
91
91
  import { ChildContextMenu } from '../widgets/designerView/extensions/contextMenu/ChildContextMenu.js';
92
92
  import { GridChildToolbarExtensionProvider } from '../widgets/designerView/extensions/grid/GridChildToolbarExtensionProvider.js';
93
+ import { ToolbarExtensionsDesignViewConfigButtons } from '../widgets/designerView/extensions/buttons/ToolbarExtensionsDesignViewConfigButtons.js';
93
94
  export function createDefaultServiceContainer() {
94
95
  let serviceContainer = new ServiceContainer();
95
96
  let defaultPlacementService = new DefaultPlacementService();
@@ -187,7 +188,7 @@ export function createDefaultServiceContainer() {
187
188
  serviceContainer.designerPointerExtensions.push(
188
189
  //new CursorLinePointerExtensionProvider()
189
190
  );
190
- serviceContainer.designViewConfigButtons.push(new ButtonSeperatorProvider(20), new GridExtensionDesignViewConfigButtons(), new FlexboxExtensionDesignViewConfigButtons(), new ButtonSeperatorProvider(10), new InvisibleElementExtensionDesignViewConfigButtons(), new ButtonSeperatorProvider(10), new StylesheetServiceDesignViewConfigButtons(), new ButtonSeperatorProvider(30), new RoundPixelsDesignViewConfigButton());
191
+ serviceContainer.designViewConfigButtons.push(new ButtonSeperatorProvider(20), new GridExtensionDesignViewConfigButtons(), new FlexboxExtensionDesignViewConfigButtons(), new ButtonSeperatorProvider(10), new InvisibleElementExtensionDesignViewConfigButtons(), new ButtonSeperatorProvider(10), new StylesheetServiceDesignViewConfigButtons(), new ButtonSeperatorProvider(10), new ToolbarExtensionsDesignViewConfigButtons(), new ButtonSeperatorProvider(30), new RoundPixelsDesignViewConfigButton());
191
192
  serviceContainer.designViewToolbarButtons.push(new PointerToolButtonProvider(), new SeperatorToolProvider(22), new SelectorToolButtonProvider(), new SeperatorToolProvider(22), new ZoomToolButtonProvider(), new SeperatorToolProvider(22), new DrawToolButtonProvider(), new SeperatorToolProvider(22), new TextToolButtonProvider(), new SeperatorToolProvider(22), new TransformToolButtonProvider());
192
193
  serviceContainer.designerContextMenuExtensions = [
193
194
  new ChildContextMenu('edit', new CopyPasteContextMenu()),
@@ -1,19 +1,19 @@
1
1
  import type { IPoint } from '../../../interfaces/IPoint.js';
2
2
  import type { IPlacementService } from './IPlacementService.js';
3
3
  import type { IDesignItem } from '../../item/IDesignItem.js';
4
- import { IPlacementView } from '../../widgets/designerView/IPlacementView.js';
4
+ import { IDesignerCanvas } from '../../widgets/designerView/IDesignerCanvas.js';
5
5
  export declare class AbsolutePlacementService implements IPlacementService {
6
- serviceForContainer(container: IDesignItem, containerStyle: CSSStyleDeclaration): boolean;
6
+ serviceForContainer(container: IDesignItem, containerStyle: CSSStyleDeclaration, item?: IDesignItem): boolean;
7
7
  isEnterableContainer(container: IDesignItem): boolean;
8
8
  canEnter(container: IDesignItem, items: IDesignItem[]): boolean;
9
9
  canLeave(container: IDesignItem, items: IDesignItem[]): boolean;
10
10
  getElementOffset(container: IDesignItem, designItem?: IDesignItem): IPoint;
11
11
  private calculateTrack;
12
- placePoint(event: MouseEvent, placementView: IPlacementView, container: IDesignItem, startPoint: IPoint, offsetInControl: IPoint, newPoint: IPoint, items: IDesignItem[]): IPoint;
13
- startPlace(event: MouseEvent, placementView: IPlacementView, container: IDesignItem, startPoint: IPoint, offsetInControl: IPoint, newPoint: IPoint, items: IDesignItem[]): void;
14
- place(event: MouseEvent, placementView: IPlacementView, container: IDesignItem, startPoint: IPoint, offsetInControl: IPoint, newPoint: IPoint, items: IDesignItem[]): void;
12
+ placePoint(event: MouseEvent, designerCanvas: IDesignerCanvas, container: IDesignItem, startPoint: IPoint, offsetInControl: IPoint, newPoint: IPoint, items: IDesignItem[]): IPoint;
13
+ startPlace(event: MouseEvent, designerCanvas: IDesignerCanvas, container: IDesignItem, startPoint: IPoint, offsetInControl: IPoint, newPoint: IPoint, items: IDesignItem[]): void;
14
+ place(event: MouseEvent, designerCanvas: IDesignerCanvas, container: IDesignItem, startPoint: IPoint, offsetInControl: IPoint, newPoint: IPoint, items: IDesignItem[]): void;
15
15
  moveElements(designItems: IDesignItem[], position: IPoint, absolute: boolean): void;
16
16
  enterContainer(container: IDesignItem, items: IDesignItem[], mode: 'normal' | 'drop'): void;
17
17
  leaveContainer(container: IDesignItem, items: IDesignItem[]): void;
18
- finishPlace(event: MouseEvent, placementView: IPlacementView, container: IDesignItem, startPoint: IPoint, offsetInControl: IPoint, newPoint: IPoint, items: IDesignItem[]): void;
18
+ finishPlace(event: MouseEvent, designerCanvas: IDesignerCanvas, container: IDesignItem, startPoint: IPoint, offsetInControl: IPoint, newPoint: IPoint, items: IDesignItem[]): void;
19
19
  }
@@ -4,7 +4,9 @@ import { filterChildPlaceItems, getDesignItemCurrentPos, placeDesignItem } from
4
4
  import { ExtensionType } from '../../widgets/designerView/extensions/ExtensionType.js';
5
5
  import { straightenLine } from '../../helper/PathDataPolyfill.js';
6
6
  export class AbsolutePlacementService {
7
- serviceForContainer(container, containerStyle) {
7
+ serviceForContainer(container, containerStyle, item) {
8
+ if (item != null && item.getComputedStyle()?.position == 'absolute')
9
+ return true;
8
10
  if (containerStyle.display === 'grid' || containerStyle.display === 'inline-grid' ||
9
11
  containerStyle.display === 'flex' || containerStyle.display === 'inline-flex')
10
12
  return false;
@@ -30,20 +32,20 @@ export class AbsolutePlacementService {
30
32
  getElementOffset(container, designItem) {
31
33
  return container.instanceServiceContainer.designerCanvas.getNormalizedElementCoordinates(container.element);
32
34
  }
33
- calculateTrack(event, placementView, startPoint, offsetInControl, newPoint, item) {
35
+ calculateTrack(event, designerCanvas, startPoint, offsetInControl, newPoint, item) {
34
36
  let trackX = newPoint.x - startPoint.x;
35
37
  let trackY = newPoint.y - startPoint.y;
36
38
  if (!event.ctrlKey) {
37
- if (placementView.alignOnGrid) {
39
+ if (designerCanvas.alignOnGrid) {
38
40
  let p = getDesignItemCurrentPos(item, 'position');
39
- p.x = p.x % placementView.gridSize;
40
- p.y = p.y % placementView.gridSize;
41
- trackX = Math.round(trackX / placementView.gridSize) * placementView.gridSize - p.x;
42
- trackY = Math.round(trackY / placementView.gridSize) * placementView.gridSize - p.y;
41
+ p.x = p.x % designerCanvas.gridSize;
42
+ p.y = p.y % designerCanvas.gridSize;
43
+ trackX = Math.round(trackX / designerCanvas.gridSize) * designerCanvas.gridSize - p.x;
44
+ trackY = Math.round(trackY / designerCanvas.gridSize) * designerCanvas.gridSize - p.y;
43
45
  }
44
- else if (placementView.alignOnSnap) {
46
+ else if (designerCanvas.alignOnSnap) {
45
47
  let rect = item.element.getBoundingClientRect();
46
- let newPos = placementView.snapLines.snapToPosition({ x: (newPoint.x - offsetInControl.x), y: (newPoint.y - offsetInControl.y) }, { width: rect.width / placementView.scaleFactor, height: rect.height / placementView.scaleFactor }, { x: trackX > 0 ? 1 : -1, y: trackY > 0 ? 1 : -1 });
48
+ let newPos = designerCanvas.snapLines.snapToPosition({ x: (newPoint.x - offsetInControl.x), y: (newPoint.y - offsetInControl.y) }, { width: rect.width / designerCanvas.scaleFactor, height: rect.height / designerCanvas.scaleFactor }, { x: trackX > 0 ? 1 : -1, y: trackY > 0 ? 1 : -1 });
47
49
  if (newPos.x !== null) {
48
50
  trackX = newPos.x - Math.round(startPoint.x) + Math.round(offsetInControl.x);
49
51
  }
@@ -60,16 +62,16 @@ export class AbsolutePlacementService {
60
62
  }
61
63
  return { x: trackX, y: trackY };
62
64
  }
63
- placePoint(event, placementView, container, startPoint, offsetInControl, newPoint, items) {
65
+ placePoint(event, designerCanvas, container, startPoint, offsetInControl, newPoint, items) {
64
66
  let trackX = newPoint.x;
65
67
  let trackY = newPoint.y;
66
68
  if (!event.ctrlKey) {
67
- if (placementView.alignOnGrid) {
68
- trackX = Math.round(trackX / placementView.gridSize) * placementView.gridSize;
69
- trackY = Math.round(trackY / placementView.gridSize) * placementView.gridSize;
69
+ if (designerCanvas.alignOnGrid) {
70
+ trackX = Math.round(trackX / designerCanvas.gridSize) * designerCanvas.gridSize;
71
+ trackY = Math.round(trackY / designerCanvas.gridSize) * designerCanvas.gridSize;
70
72
  }
71
- else if (placementView.alignOnSnap) {
72
- let newPos = placementView.snapLines.snapToPosition({ x: newPoint.x - offsetInControl.x, y: newPoint.y - offsetInControl.y }, null, { x: trackX > 0 ? 1 : -1, y: trackY > 0 ? 1 : -1 });
73
+ else if (designerCanvas.alignOnSnap) {
74
+ let newPos = designerCanvas.snapLines.snapToPosition({ x: newPoint.x - offsetInControl.x, y: newPoint.y - offsetInControl.y }, null, { x: trackX > 0 ? 1 : -1, y: trackY > 0 ? 1 : -1 });
73
75
  if (newPos.x !== null) {
74
76
  trackX = newPos.x;
75
77
  }
@@ -86,12 +88,12 @@ export class AbsolutePlacementService {
86
88
  }
87
89
  return { x: trackX, y: trackY };
88
90
  }
89
- startPlace(event, placementView, container, startPoint, offsetInControl, newPoint, items) {
91
+ startPlace(event, designerCanvas, container, startPoint, offsetInControl, newPoint, items) {
90
92
  }
91
- place(event, placementView, container, startPoint, offsetInControl, newPoint, items) {
93
+ place(event, designerCanvas, container, startPoint, offsetInControl, newPoint, items) {
92
94
  //TODO: this should revert all undo actions while active
93
95
  //maybe a undo actions returns itself or an id so it could be changed?
94
- let track = this.calculateTrack(event, placementView, startPoint, offsetInControl, newPoint, items[0]);
96
+ let track = this.calculateTrack(event, designerCanvas, startPoint, offsetInControl, newPoint, items[0]);
95
97
  if (event.shiftKey) {
96
98
  track = straightenLine({ x: 0, y: 0 }, track, true);
97
99
  }
@@ -137,7 +139,7 @@ export class AbsolutePlacementService {
137
139
  }
138
140
  leaveContainer(container, items) {
139
141
  }
140
- finishPlace(event, placementView, container, startPoint, offsetInControl, newPoint, items) {
142
+ finishPlace(event, designerCanvas, container, startPoint, offsetInControl, newPoint, items) {
141
143
  let filterdItems = filterChildPlaceItems(items);
142
144
  for (const designItem of filterdItems) {
143
145
  let translation = extractTranslationFromDOMMatrix(new DOMMatrix(designItem.element.style.transform));
@@ -147,7 +149,7 @@ export class AbsolutePlacementService {
147
149
  placeDesignItem(container, designItem, { x: track.x - stylesMapOffset.x, y: track.y - stylesMapOffset.y }, 'position');
148
150
  }
149
151
  for (const item of items) {
150
- placementView.extensionManager.removeExtension(item, ExtensionType.Placement);
152
+ designerCanvas.extensionManager.removeExtension(item, ExtensionType.Placement);
151
153
  }
152
154
  }
153
155
  }
@@ -2,6 +2,7 @@ import type { IPoint } from '../../../interfaces/IPoint.js';
2
2
  import type { IPlacementService } from './IPlacementService.js';
3
3
  import type { IDesignItem } from '../../item/IDesignItem.js';
4
4
  import { IPlacementView } from '../../widgets/designerView/IPlacementView.js';
5
+ import { IDesignerCanvas } from '../../widgets/designerView/IDesignerCanvas.js';
5
6
  export declare class DefaultPlacementService implements IPlacementService {
6
7
  serviceForContainer(container: IDesignItem, containerStyle: CSSStyleDeclaration, item?: IDesignItem): boolean;
7
8
  isEnterableContainer(container: IDesignItem): boolean;
@@ -10,8 +11,8 @@ export declare class DefaultPlacementService implements IPlacementService {
10
11
  getElementOffset(container: IDesignItem, designItem?: IDesignItem): IPoint;
11
12
  private calculateTrack;
12
13
  placePoint(event: MouseEvent, placementView: IPlacementView, container: IDesignItem, startPoint: IPoint, offsetInControl: IPoint, newPoint: IPoint, items: IDesignItem[]): IPoint;
13
- startPlace(event: MouseEvent, placementView: IPlacementView, container: IDesignItem, startPoint: IPoint, offsetInControl: IPoint, newPoint: IPoint, items: IDesignItem[]): void;
14
- place(event: MouseEvent, placementView: IPlacementView, container: IDesignItem, startPoint: IPoint, offsetInControl: IPoint, newPoint: IPoint, items: IDesignItem[]): void;
14
+ startPlace(event: MouseEvent, designerCanvas: IDesignerCanvas, container: IDesignItem, startPoint: IPoint, offsetInControl: IPoint, newPoint: IPoint, items: IDesignItem[]): void;
15
+ place(event: MouseEvent, designerCanvas: IDesignerCanvas, container: IDesignItem, startPoint: IPoint, offsetInControl: IPoint, newPoint: IPoint, items: IDesignItem[]): void;
15
16
  moveElements(designItems: IDesignItem[], position: IPoint, absolute: boolean): void;
16
17
  enterContainer(container: IDesignItem, items: IDesignItem[], mode: 'normal' | 'drop'): void;
17
18
  leaveContainer(container: IDesignItem, items: IDesignItem[]): void;
@@ -1,6 +1,6 @@
1
1
  import { IPoint } from '../../../interfaces/IPoint.js';
2
2
  import { IDesignItem } from '../../item/IDesignItem.js';
3
- import { IPlacementView } from '../../widgets/designerView/IPlacementView.js';
3
+ import { IDesignerCanvas } from '../../widgets/designerView/IDesignerCanvas.js';
4
4
  import { IPlacementService } from './IPlacementService.js';
5
5
  export declare class FlexBoxPlacementService implements IPlacementService {
6
6
  private _basePlacementService;
@@ -12,9 +12,9 @@ export declare class FlexBoxPlacementService implements IPlacementService {
12
12
  canEnter(container: IDesignItem, items: IDesignItem[]): any;
13
13
  canLeave(container: IDesignItem, items: IDesignItem[]): boolean;
14
14
  getElementOffset(container: IDesignItem, designItem?: IDesignItem): IPoint;
15
- placePoint(event: MouseEvent, placementView: IPlacementView, container: IDesignItem, startPoint: IPoint, offsetInControl: IPoint, newPoint: IPoint, items: IDesignItem[]): IPoint;
16
- startPlace(event: MouseEvent, placementView: IPlacementView, container: IDesignItem, startPoint: IPoint, offsetInControl: IPoint, newPoint: IPoint, items: IDesignItem[]): void;
17
- place(event: MouseEvent, placementView: IPlacementView, container: IDesignItem, startPoint: IPoint, offsetInControl: IPoint, newPoint: IPoint, items: IDesignItem[]): void;
18
- finishPlace(event: MouseEvent, placementView: IPlacementView, container: IDesignItem, startPoint: IPoint, offsetInControl: IPoint, newPoint: IPoint, items: IDesignItem[]): void;
15
+ placePoint(event: MouseEvent, designerCanvas: IDesignerCanvas, container: IDesignItem, startPoint: IPoint, offsetInControl: IPoint, newPoint: IPoint, items: IDesignItem[]): IPoint;
16
+ startPlace(event: MouseEvent, designerCanvas: IDesignerCanvas, container: IDesignItem, startPoint: IPoint, offsetInControl: IPoint, newPoint: IPoint, items: IDesignItem[]): void;
17
+ place(event: MouseEvent, designerCanvas: IDesignerCanvas, container: IDesignItem, startPoint: IPoint, offsetInControl: IPoint, newPoint: IPoint, items: IDesignItem[]): void;
18
+ finishPlace(event: MouseEvent, designerCanvas: IDesignerCanvas, container: IDesignItem, startPoint: IPoint, offsetInControl: IPoint, newPoint: IPoint, items: IDesignItem[]): void;
19
19
  moveElements(designItems: IDesignItem[], position: IPoint, absolute: boolean): void;
20
20
  }
@@ -42,16 +42,16 @@ export class FlexBoxPlacementService {
42
42
  getElementOffset(container, designItem) {
43
43
  return container.element.getBoundingClientRect();
44
44
  }
45
- placePoint(event, placementView, container, startPoint, offsetInControl, newPoint, items) {
45
+ placePoint(event, designerCanvas, container, startPoint, offsetInControl, newPoint, items) {
46
46
  const defaultPlacementService = container.serviceContainer.getLastServiceWhere('containerService', x => x instanceof DefaultPlacementService);
47
- return defaultPlacementService.placePoint(event, placementView, container, startPoint, offsetInControl, newPoint, items);
47
+ return defaultPlacementService.placePoint(event, designerCanvas, container, startPoint, offsetInControl, newPoint, items);
48
48
  }
49
- startPlace(event, placementView, container, startPoint, offsetInControl, newPoint, items) {
49
+ startPlace(event, designerCanvas, container, startPoint, offsetInControl, newPoint, items) {
50
50
  }
51
- place(event, placementView, container, startPoint, offsetInControl, newPoint, items) {
52
- const pos = placementView.getNormalizedEventCoordinates(event);
51
+ place(event, designerCanvas, container, startPoint, offsetInControl, newPoint, items) {
52
+ const pos = designerCanvas.getNormalizedEventCoordinates(event);
53
53
  const style = getComputedStyle(container.element);
54
- const childrenWithPos = Array.from(container.children()).filter(x => !x.isEmptyTextNode).map(x => [x, placementView.getNormalizedElementCoordinates(x.element)]);
54
+ const childrenWithPos = Array.from(container.children()).filter(x => !x.isEmptyTextNode).map(x => [x, designerCanvas.getNormalizedElementCoordinates(x.element)]);
55
55
  if (style.flexDirection == 'row' || style.flexDirection == 'row-reverse') {
56
56
  childrenWithPos.sort(x => x[1].x);
57
57
  let elBefore = null;
@@ -138,9 +138,9 @@ export class FlexBoxPlacementService {
138
138
  container.instanceServiceContainer.selectionService.setSelectedElements(sel);
139
139
  }
140
140
  }
141
- placementView.extensionManager.refreshAllExtensions([container]);
141
+ designerCanvas.extensionManager.refreshAllExtensions([container]);
142
142
  }
143
- finishPlace(event, placementView, container, startPoint, offsetInControl, newPoint, items) {
143
+ finishPlace(event, designerCanvas, container, startPoint, offsetInControl, newPoint, items) {
144
144
  }
145
145
  moveElements(designItems, position, absolute) {
146
146
  }
@@ -1,7 +1,7 @@
1
1
  import type { IPoint } from '../../../interfaces/IPoint.js';
2
2
  import type { IPlacementService } from './IPlacementService.js';
3
3
  import type { IDesignItem } from '../../item/IDesignItem.js';
4
- import { IPlacementView } from '../../widgets/designerView/IPlacementView.js';
4
+ import { IDesignerCanvas } from '../../widgets/designerView/IDesignerCanvas.js';
5
5
  export declare class GridPlacementService implements IPlacementService {
6
6
  private _basePlacementService;
7
7
  constructor(basePlacementService: IPlacementService);
@@ -12,9 +12,9 @@ export declare class GridPlacementService implements IPlacementService {
12
12
  canEnter(container: IDesignItem, items: IDesignItem[]): any;
13
13
  canLeave(container: IDesignItem, items: IDesignItem[]): boolean;
14
14
  getElementOffset(container: IDesignItem, designItem?: IDesignItem): IPoint;
15
- placePoint(event: MouseEvent, placementView: IPlacementView, container: IDesignItem, startPoint: IPoint, offsetInControl: IPoint, newPoint: IPoint, items: IDesignItem[]): IPoint;
16
- startPlace(event: MouseEvent, placementView: IPlacementView, container: IDesignItem, startPoint: IPoint, offsetInControl: IPoint, newPoint: IPoint, items: IDesignItem[]): void;
17
- place(event: MouseEvent, placementView: IPlacementView, container: IDesignItem, startPoint: IPoint, offsetInControl: IPoint, newPoint: IPoint, items: IDesignItem[]): void;
18
- finishPlace(event: MouseEvent, placementView: IPlacementView, container: IDesignItem, startPoint: IPoint, offsetInControl: IPoint, newPoint: IPoint, items: IDesignItem[]): void;
15
+ placePoint(event: MouseEvent, designerCanvas: IDesignerCanvas, container: IDesignItem, startPoint: IPoint, offsetInControl: IPoint, newPoint: IPoint, items: IDesignItem[]): IPoint;
16
+ startPlace(event: MouseEvent, designerCanvas: IDesignerCanvas, container: IDesignItem, startPoint: IPoint, offsetInControl: IPoint, newPoint: IPoint, items: IDesignItem[]): void;
17
+ place(event: MouseEvent, designerCanvas: IDesignerCanvas, container: IDesignItem, startPoint: IPoint, offsetInControl: IPoint, newPoint: IPoint, items: IDesignItem[]): void;
18
+ finishPlace(event: MouseEvent, designerCanvas: IDesignerCanvas, container: IDesignItem, startPoint: IPoint, offsetInControl: IPoint, newPoint: IPoint, items: IDesignItem[]): void;
19
19
  moveElements(designItems: IDesignItem[], position: IPoint, absolute: boolean): void;
20
20
  }
@@ -46,15 +46,15 @@ export class GridPlacementService {
46
46
  getElementOffset(container, designItem) {
47
47
  return container.element.getBoundingClientRect();
48
48
  }
49
- placePoint(event, placementView, container, startPoint, offsetInControl, newPoint, items) {
49
+ placePoint(event, designerCanvas, container, startPoint, offsetInControl, newPoint, items) {
50
50
  const defaultPlacementService = container.serviceContainer.getLastServiceWhere('containerService', x => x instanceof DefaultPlacementService);
51
- return defaultPlacementService.placePoint(event, placementView, container, startPoint, offsetInControl, newPoint, items);
51
+ return defaultPlacementService.placePoint(event, designerCanvas, container, startPoint, offsetInControl, newPoint, items);
52
52
  }
53
- startPlace(event, placementView, container, startPoint, offsetInControl, newPoint, items) {
53
+ startPlace(event, designerCanvas, container, startPoint, offsetInControl, newPoint, items) {
54
54
  }
55
- place(event, placementView, container, startPoint, offsetInControl, newPoint, items) {
55
+ place(event, designerCanvas, container, startPoint, offsetInControl, newPoint, items) {
56
56
  const gridInformation = calculateGridInformation(container);
57
- const pos = placementView.getNormalizedEventCoordinates(event);
57
+ const pos = designerCanvas.getNormalizedEventCoordinates(event);
58
58
  //pos.x -= offsetInControl.x;
59
59
  //pos.y -= offsetInControl.y;
60
60
  let row = 0;
@@ -79,11 +79,11 @@ export class GridPlacementService {
79
79
  }
80
80
  row++;
81
81
  }
82
- placementView.extensionManager.refreshAllExtensions([container]);
82
+ designerCanvas.extensionManager.refreshAllExtensions([container]);
83
83
  }
84
- finishPlace(event, placementView, container, startPoint, offsetInControl, newPoint, items) {
84
+ finishPlace(event, designerCanvas, container, startPoint, offsetInControl, newPoint, items) {
85
85
  const gridInformation = calculateGridInformation(container);
86
- const pos = placementView.getNormalizedEventCoordinates(event);
86
+ const pos = designerCanvas.getNormalizedEventCoordinates(event);
87
87
  //pos.x -= offsetInControl.x;
88
88
  //pos.y -= offsetInControl.y;
89
89
  let row = 0;
@@ -113,7 +113,7 @@ export class GridPlacementService {
113
113
  }
114
114
  row++;
115
115
  }
116
- placementView.extensionManager.refreshAllExtensions([container]);
116
+ designerCanvas.extensionManager.refreshAllExtensions([container]);
117
117
  }
118
118
  moveElements(designItems, position, absolute) {
119
119
  }
@@ -1,7 +1,7 @@
1
1
  import { IService } from '../IService.js';
2
2
  import { IDesignItem } from '../../item/IDesignItem.js';
3
- import { IPlacementView } from '../../widgets/designerView/IPlacementView.js';
4
3
  import { IPoint } from '../../../interfaces/IPoint.js';
4
+ import { IDesignerCanvas } from '../../widgets/designerView/IDesignerCanvas.js';
5
5
  export interface IPlacementService extends IService {
6
6
  serviceForContainer(container: IDesignItem, containerStyle: CSSStyleDeclaration, item?: IDesignItem): boolean;
7
7
  isEnterableContainer(container: IDesignItem): boolean;
@@ -10,9 +10,9 @@ export interface IPlacementService extends IService {
10
10
  enterContainer(container: IDesignItem, items: IDesignItem[], mode: 'normal' | 'drop'): any;
11
11
  leaveContainer(container: IDesignItem, items: IDesignItem[]): any;
12
12
  getElementOffset(container: IDesignItem, designItem?: IDesignItem): IPoint;
13
- placePoint(event: MouseEvent, placementView: IPlacementView, container: IDesignItem, startPoint: IPoint, offsetInControl: IPoint, newPoint: IPoint, items: IDesignItem[]): IPoint;
14
- startPlace(event: MouseEvent, placementView: IPlacementView, container: IDesignItem, startPoint: IPoint, offsetInControl: IPoint, newPoint: IPoint, items: IDesignItem[]): any;
15
- place(event: MouseEvent, placementView: IPlacementView, container: IDesignItem, startPoint: IPoint, offsetInControl: IPoint, newPoint: IPoint, items: IDesignItem[]): any;
16
- finishPlace(event: MouseEvent, placementView: IPlacementView, container: IDesignItem, startPoint: IPoint, offsetInControl: IPoint, newPoint: IPoint, items: IDesignItem[]): any;
13
+ placePoint(event: MouseEvent, designerCanvas: IDesignerCanvas, container: IDesignItem, startPoint: IPoint, offsetInControl: IPoint, newPoint: IPoint, items: IDesignItem[]): IPoint;
14
+ startPlace(event: MouseEvent, designerCanvas: IDesignerCanvas, container: IDesignItem, startPoint: IPoint, offsetInControl: IPoint, newPoint: IPoint, items: IDesignItem[]): any;
15
+ place(event: MouseEvent, designerCanvas: IDesignerCanvas, container: IDesignItem, startPoint: IPoint, offsetInControl: IPoint, newPoint: IPoint, items: IDesignItem[]): any;
16
+ finishPlace(event: MouseEvent, designerCanvas: IDesignerCanvas, container: IDesignItem, startPoint: IPoint, offsetInControl: IPoint, newPoint: IPoint, items: IDesignItem[]): any;
17
17
  moveElements(designItems: IDesignItem[], position: IPoint, absolute: boolean): any;
18
18
  }
@@ -0,0 +1,6 @@
1
+ import { IDesignItem } from '../../item/IDesignItem.js';
2
+ export interface ISelectionChangedEvent {
3
+ oldSelectedElements: IDesignItem[];
4
+ selectedElements: IDesignItem[];
5
+ event?: Event;
6
+ }
@@ -47,7 +47,6 @@ export interface IDesignerCanvas extends IPlacementView, IUiCommandHandler {
47
47
  getDesignSurfaceDimensions(): ISize;
48
48
  getNormalizedOffsetInElement(event: MouseEvent, element: Element): IPoint;
49
49
  getElementAtPoint(point: IPoint, ignoreElementCallback?: (element: HTMLElement) => boolean): any;
50
- elementFromPoint(x: number, y: number): Element;
51
50
  elementsFromPoint(x: number, y: number): Element[];
52
51
  showHoverExtension(element: Element, event: Event): any;
53
52
  setDesignItems(designItems: IDesignItem[]): any;
@@ -124,7 +124,6 @@ export declare class DesignerCanvas extends BaseCustomWebComponentLazyAppend imp
124
124
  realHeight: number;
125
125
  };
126
126
  getNormalizedOffsetInElement(event: MouseEvent, element: Element): IPoint;
127
- elementFromPoint(x: number, y: number): Element;
128
127
  elementsFromPoint(x: number, y: number): Element[];
129
128
  getElementAtPoint(point: IPoint, ignoreElementCallback?: (element: HTMLElement) => boolean): HTMLElement;
130
129
  showHoverExtension(element: Element, event: Event): void;
@@ -854,6 +854,8 @@ export class DesignerCanvas extends BaseCustomWebComponentLazyAppend {
854
854
  event.preventDefault();
855
855
  if (event.target === this.overlayLayer)
856
856
  return;
857
+ if (event.altKey)
858
+ return;
857
859
  if (this.serviceContainer.globalContext.tool == null || this.serviceContainer.globalContext.tool === this.serviceContainer.designerTools.get(NamedTools.Pointer)) {
858
860
  this.extensionManager.removeExtension(this.instanceServiceContainer.selectionService.primarySelection, ExtensionType.PrimarySelectionRefreshed);
859
861
  this.extensionManager.applyExtension(this.instanceServiceContainer.selectionService.primarySelection, ExtensionType.Doubleclick, event);
@@ -1003,12 +1005,6 @@ export class DesignerCanvas extends BaseCustomWebComponentLazyAppend {
1003
1005
  const normEl = this.getNormalizedElementCoordinates(element);
1004
1006
  return { x: normEvt.x - normEl.x, y: normEvt.y - normEl.y };
1005
1007
  }
1006
- //TODO: remove
1007
- elementFromPoint(x, y) {
1008
- let elements = this._canvasShadowRoot.elementsFromPoint(x, y);
1009
- let element = elements[0];
1010
- return element;
1011
- }
1012
1008
  elementsFromPoint(x, y) {
1013
1009
  let retVal = [];
1014
1010
  let elements = this._canvasShadowRoot.elementsFromPoint(x, y);
@@ -0,0 +1,9 @@
1
+ import { AbstractExtension } from "./AbstractExtension.js";
2
+ import { IPoint } from "../../../../interfaces/IPoint.js";
3
+ export declare abstract class AbstractToolbarExtension extends AbstractExtension {
4
+ abstract template: HTMLTemplateElement;
5
+ protected _toolbarContainer: SVGForeignObjectElement;
6
+ extend(cache: Record<string | symbol, any>, event: MouseEvent): void;
7
+ refresh(cache: Record<string | symbol, any>, event?: MouseEvent): void;
8
+ protected updateToolbarPosition(position: IPoint): void;
9
+ }
@@ -0,0 +1,30 @@
1
+ import { OverlayLayer } from "../OverlayLayer.js";
2
+ import { AbstractExtension } from "./AbstractExtension.js";
3
+ export class AbstractToolbarExtension extends AbstractExtension {
4
+ _toolbarContainer;
5
+ extend(cache, event) {
6
+ const element = this.template.content.cloneNode(true);
7
+ element.querySelectorAll('*').forEach(x => x.onpointerdown = (e) => {
8
+ this.designerCanvas.ignoreEvent(e);
9
+ });
10
+ const foreignObject = document.createElementNS('http://www.w3.org/2000/svg', 'foreignObject');
11
+ this._toolbarContainer = foreignObject;
12
+ foreignObject.classList.add('svg-toolbar-container');
13
+ foreignObject.setAttribute('width', '1');
14
+ foreignObject.setAttribute('height', '1');
15
+ foreignObject.appendChild(element);
16
+ this.refresh(cache, event);
17
+ this._addOverlay(foreignObject, OverlayLayer.Foreground);
18
+ }
19
+ refresh(cache, event) {
20
+ if (event) {
21
+ const pos = this.designerCanvas.getNormalizedEventCoordinates(event);
22
+ this._toolbarContainer.setAttribute('x', '' + (pos.x - 16));
23
+ this._toolbarContainer.setAttribute('y', '' + (pos.y - 36));
24
+ }
25
+ }
26
+ updateToolbarPosition(position) {
27
+ this._toolbarContainer.setAttribute('x', '' + position.x);
28
+ this._toolbarContainer.setAttribute('y', '' + position.y);
29
+ }
30
+ }
@@ -0,0 +1,20 @@
1
+ import { AbstractExtension, toolbarObject } from "./AbstractExtension.js";
2
+ import { IExtensionManager } from "./IExtensionManger.js";
3
+ import { IDesignerCanvas } from "../IDesignerCanvas.js";
4
+ import { IDesignItem } from "../../../item/IDesignItem.js";
5
+ export declare class BasicStackedToolbarExtension extends AbstractExtension {
6
+ protected static basicTemplate: string;
7
+ protected _toolbar: toolbarObject;
8
+ protected _size: {
9
+ width: number;
10
+ height: number;
11
+ };
12
+ protected _display: string;
13
+ protected _inline: string;
14
+ constructor(extensionManager: IExtensionManager, designerView: IDesignerCanvas, extendedItem: IDesignItem);
15
+ extend(cache: Record<string | symbol, any>, event: MouseEvent): void;
16
+ updateDisplayValue(): Promise<void>;
17
+ refresh(cache: Record<string | symbol, any>, event?: MouseEvent): void;
18
+ protected _addStyleButton(styleAndControlName: string): void;
19
+ dispose(): void;
20
+ }