iobroker.webui 1.20.0 → 1.20.1

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 (18) hide show
  1. package/README.md +3 -0
  2. package/io-package.json +14 -14
  3. package/package.json +2 -2
  4. package/www/index.html +1 -1
  5. package/www/node_modules/@node-projects/web-component-designer/dist/elements/helper/getBoxQuads.js +14 -9
  6. package/www/node_modules/@node-projects/web-component-designer/dist/elements/services/DefaultServiceBootstrap.ts.BASE.js +0 -216
  7. package/www/node_modules/@node-projects/web-component-designer/dist/elements/services/DefaultServiceBootstrap.ts.LOCAL.js +0 -220
  8. package/www/node_modules/@node-projects/web-component-designer/dist/elements/services/DefaultServiceBootstrap.ts.REMOTE.js +0 -220
  9. package/www/node_modules/@node-projects/web-component-designer/dist/elements/services/designItemService/DesignItemService copy.js +0 -6
  10. package/www/node_modules/@node-projects/web-component-designer/dist/elements/services/placementService/AbsolutePlacementService copy.js +0 -155
  11. package/www/node_modules/@node-projects/web-component-designer/dist/elements/widgets/bindings/BindingsEditor.js +0 -54
  12. package/www/node_modules/@node-projects/web-component-designer/dist/elements/widgets/designerView/extensions/CanvasExtension.js +0 -31
  13. package/www/node_modules/@node-projects/web-component-designer/dist/elements/widgets/designerView/extensions/CanvasExtensionProvider.js +0 -16
  14. package/www/node_modules/@node-projects/web-component-designer/dist/elements/widgets/designerView/extensions/MarginExtension copy.js +0 -32
  15. package/www/node_modules/@node-projects/web-component-designer/dist/elements/widgets/designerView/extensions/MarginExtensionProvider copy.js +0 -16
  16. package/www/node_modules/@node-projects/web-component-designer/dist/elements/widgets/designerView/extensions/buttons/AbstractDesignViewConfigButton copy.js +0 -46
  17. package/www/node_modules/@node-projects/web-component-designer/dist/elements/widgets/designerView/extensions/buttons/GridExtensionDesignViewConfigButtons copy.js +0 -7
  18. package/www/node_modules/@node-projects/web-component-designer/dist/elements/widgets/designerView/extensions/buttons/OptionsConfigButton.js +0 -46
package/README.md CHANGED
@@ -129,6 +129,9 @@ runtime.html?screenName=screen2
129
129
  Placeholder for next versions:
130
130
  ### __WORK IN PROGRESS__
131
131
  -->
132
+ ### 1.20.1 (2024-12-03)
133
+ - fix in designer with svgs
134
+
132
135
  ### 1.20.0 (2024-12-03)
133
136
  - add a few packages
134
137
  - run simple script cmd and update get parent screen
package/io-package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "webui",
4
- "version": "1.20.0",
4
+ "version": "1.20.1",
5
5
  "titleLang": {
6
6
  "en": "webui",
7
7
  "de": "webui",
@@ -29,6 +29,19 @@
29
29
  "zh-cn": "使用万维网传送器的高锰用户接口"
30
30
  },
31
31
  "news": {
32
+ "1.20.1": {
33
+ "en": "fix in designer with svgs",
34
+ "de": "fix in designer mit svgs",
35
+ "ru": "исправить в дизайнере с svgs",
36
+ "pt": "corrigir no designer com svgs",
37
+ "nl": "fix in ontwerper met svgs",
38
+ "fr": "fixer en concepteur avec svgs",
39
+ "it": "fix in designer con svgs",
40
+ "es": "fijado en diseñador con svgs",
41
+ "pl": "fix in designer with svgs",
42
+ "uk": "фіксація в дизайнеру з кс",
43
+ "zh-cn": "使用 svgs 在设计器中固定"
44
+ },
32
45
  "1.20.0": {
33
46
  "en": "add a few packages\nrun simple script cmd and update get parent screen\nupdate packages, downgrade monaco\nfix backup",
34
47
  "de": "ein paar pakete hinzufügen\neinfaches skript cmd und aktualisieren erhalten elternbildschirm\nupdate pakete, downgrade monaco\nwiederherstellen",
@@ -106,19 +119,6 @@
106
119
  "pl": "naprawić błąd w systemie skryptu",
107
120
  "uk": "виправлено помилку в системі скриптів",
108
121
  "zh-cn": "修补脚本系统错误"
109
- },
110
- "1.18.5": {
111
- "en": "compile fix",
112
- "de": "kompilator fix",
113
- "ru": "исправление",
114
- "pt": "conserto de compilação",
115
- "nl": "compileer fix",
116
- "fr": "compiler la correction",
117
- "it": "compilazione correzione",
118
- "es": "compilado",
119
- "pl": "fix kompilacji",
120
- "uk": "фіксатор",
121
- "zh-cn": "编译修正"
122
122
  }
123
123
  },
124
124
  "icon": "logo.png",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.webui",
3
- "version": "1.20.0",
3
+ "version": "1.20.1",
4
4
  "description": "ioBroker webui",
5
5
  "type": "module",
6
6
  "main": "dist/backend/main.js",
@@ -59,7 +59,7 @@
59
59
  "@node-projects/node-html-parser-esm": "^6.2.0",
60
60
  "@node-projects/propertygrid.webcomponent": "^1.2.3",
61
61
  "@node-projects/splitview.webcomponent": "^1.0.1",
62
- "@node-projects/web-component-designer": "^0.1.235",
62
+ "@node-projects/web-component-designer": "^0.1.236",
63
63
  "@node-projects/web-component-designer-codeview-monaco": "^0.1.32",
64
64
  "@node-projects/web-component-designer-htmlparserservice-nodehtmlparser": "^0.1.11",
65
65
  "@node-projects/web-component-designer-stylesheetservice-css-tools": "^0.1.10",
package/www/index.html CHANGED
@@ -213,7 +213,7 @@
213
213
  </button>
214
214
  <button data-command="save" title="save" disabled><img src="./node_modules/@node-projects/web-component-designer/assets/icons/save.svg"></button>
215
215
  <div style="margin-left: 30px;">
216
- webui - 1.20.0 - 69235ce
216
+ webui - 1.20.1 - 9a38de0
217
217
  </div>
218
218
  <button style="margin-left: 30px;" data-command="paste" title="paste" disabled><img
219
219
  src="./node_modules/@node-projects/web-component-designer/assets/icons/paste.svg"></button>
@@ -142,9 +142,9 @@ export function getBoxQuads(node, options) {
142
142
  if (q)
143
143
  return q;
144
144
  }
145
+ /** @type {DOMMatrix} */
145
146
  let originalElementAndAllParentsMultipliedMatrix = getResultingTransformationBetweenElementAndAllAncestors(node, options?.relativeTo ?? document.body, options.iframes);
146
147
  let { width, height } = getElementSize(node, originalElementAndAllParentsMultipliedMatrix);
147
- /** @type {DOMMatrix} */
148
148
  let arr = [{ x: 0, y: 0 }, { x: width, y: 0 }, { x: width, y: height }, { x: 0, y: height }];
149
149
  /** @type { [DOMPoint, DOMPoint, DOMPoint, DOMPoint] } */
150
150
  //@ts-ignore
@@ -244,6 +244,8 @@ function getElementOffsetsInContainer(node, iframes) {
244
244
  const range = document.createRange();
245
245
  range.selectNodeContents(node);
246
246
  const r1 = range.getBoundingClientRect();
247
+ /** @type {HTMLElement} */
248
+ //@ts-ignore
247
249
  const parent = getParentElementIncludingSlots(node, iframes);
248
250
  const r2 = parent.getBoundingClientRect();
249
251
  const zX = parent.offsetWidth / r2.width;
@@ -259,10 +261,11 @@ function getElementOffsetsInContainer(node, iframes) {
259
261
  if (cs.position === 'absolute') {
260
262
  return new DOMPoint(parseFloat(cs.left), parseFloat(cs.top));
261
263
  }
262
- const m = getResultingTransformationBetweenElementAndAllAncestors(node.parentNode, document.body, iframes);
264
+ const par = getParentElementIncludingSlots(node, iframes);
265
+ const m = getResultingTransformationBetweenElementAndAllAncestors(par, document.body, iframes);
263
266
  const r1 = node.getBoundingClientRect();
264
267
  const r1t = m.inverse().transformPoint(r1);
265
- const r2 = getParentElementIncludingSlots(node, iframes).getBoundingClientRect();
268
+ const r2 = par.getBoundingClientRect();
266
269
  const r2t = m.inverse().transformPoint(r2);
267
270
  return new DOMPoint(r1t.x - r2t.x, r1t.y - r2t.y);
268
271
  }
@@ -444,12 +447,14 @@ function getElementPerspectiveTransform(element, iframes) {
444
447
  let p = parseFloat(s.perspective);
445
448
  m.m34 = -1.0 / p;
446
449
  //https://drafts.csswg.org/css-transforms-2/#PerspectiveDefined
447
- const origin = s.perspectiveOrigin.split(' ');
448
- const originX = parseFloat(origin[0]) - element.offsetLeft;
449
- const originY = parseFloat(origin[1]) - element.offsetTop;
450
- const mOri = new DOMMatrix().translate(originX, originY);
451
- const mOriInv = new DOMMatrix().translate(-originX, -originY);
452
- return mOri.multiply(m.multiply(mOriInv));
450
+ if (s.perspectiveOrigin) {
451
+ const origin = s.perspectiveOrigin.split(' ');
452
+ const originX = parseFloat(origin[0]) - element.offsetLeft;
453
+ const originY = parseFloat(origin[1]) - element.offsetTop;
454
+ const mOri = new DOMMatrix().translate(originX, originY);
455
+ const mOriInv = new DOMMatrix().translate(-originX, -originY);
456
+ return mOri.multiply(m.multiply(mOriInv));
457
+ }
453
458
  }
454
459
  }
455
460
  return null;
@@ -1,216 +0,0 @@
1
- import { ServiceContainer } from './ServiceContainer.js';
2
- import { PolymerPropertiesService } from './propertiesService/services/PolymerPropertiesService.js';
3
- import { LitElementPropertiesService } from './propertiesService/services/LitElementPropertiesService.js';
4
- import { NativeElementsPropertiesService } from './propertiesService/services/NativeElementsPropertiesService.js';
5
- import { SVGElementsPropertiesService } from './propertiesService/services/SVGElementsPropertiesService.js';
6
- import { DefaultInstanceService } from './instanceService/DefaultInstanceService.js';
7
- import { DefaultEditorTypesService } from './propertiesService/DefaultEditorTypesService.js';
8
- import { BaseCustomWebComponentPropertiesService } from './propertiesService/services/BaseCustomWebComponentPropertiesService.js';
9
- import { DefaultPlacementService } from './placementService/DefaultPlacementService.js';
10
- import { DefaultHtmlParserService } from './htmlParserService/DefaultHtmlParserService.js';
11
- import { Lit2PropertiesService } from './propertiesService/services/Lit2PropertiesService.js';
12
- import { ExtensionType } from '../widgets/designerView/extensions/ExtensionType.js';
13
- import { ElementDragTitleExtensionProvider } from '../widgets/designerView/extensions/ElementDragTitleExtensionProvider.js';
14
- import { TransformOriginExtensionProvider } from '../widgets/designerView/extensions/TransformOriginExtensionProvider.js';
15
- import { MarginExtensionProvider } from '../widgets/designerView/extensions/MarginExtensionProvider.js';
16
- import { PositionExtensionProvider } from '../widgets/designerView/extensions/PositionExtensionProvider.js';
17
- import { HighlightElementExtensionProvider } from '../widgets/designerView/extensions/HighlightElementExtensionProvider.js';
18
- import { NamedTools } from '../widgets/designerView/tools/NamedTools.js';
19
- import { PointerTool } from '../widgets/designerView/tools/PointerTool.js';
20
- import { DrawPathTool } from '../widgets/designerView/tools/DrawPathTool.js';
21
- import { SelectionDefaultExtensionProvider } from '../widgets/designerView/extensions/SelectionDefaultExtensionProvider.js';
22
- import { ResizeExtensionProvider } from '../widgets/designerView/extensions/ResizeExtensionProvider.js';
23
- import { RotateExtensionProvider } from '../widgets/designerView/extensions/RotateExtensionProvider.js';
24
- import { ZoomTool } from '../widgets/designerView/tools/ZoomTool.js';
25
- import { PanTool } from '../widgets/designerView/tools/PanTool.js';
26
- import { CopyPasteContextMenu } from '../widgets/designerView/extensions/contextMenu/CopyPasteContextMenu.js';
27
- import { ZMoveContextMenu } from '../widgets/designerView/extensions/contextMenu/ZMoveContextMenu.js';
28
- import { MultipleItemsSelectedContextMenu } from '../widgets/designerView/extensions/contextMenu/MultipleItemsSelectedContextMenu.js';
29
- import { RectangleSelectorTool } from '../widgets/designerView/tools/RectangleSelectorTool.js';
30
- import { MagicWandSelectorTool } from '../widgets/designerView/tools/MagicWandSelectorTool.js';
31
- import { PickColorTool } from '../widgets/designerView/tools/PickColorTool.js';
32
- import { TextTool } from '../widgets/designerView/tools/TextTool.js';
33
- import { GrayOutExtensionProvider } from '../widgets/designerView/extensions/GrayOutExtensionProvider.js';
34
- import { AltToEnterContainerExtensionProvider } from '../widgets/designerView/extensions/AltToEnterContainerExtensionProvider.js';
35
- import { InvisibleElementExtensionProvider } from '../widgets/designerView/extensions/InvisibleElementExtensionProvider.js';
36
- import { ItemsBelowContextMenu } from '../widgets/designerView/extensions/contextMenu/ItemsBelowContextMenu.js';
37
- import { GridPlacementService } from './placementService/GridPlacementService.js';
38
- import { ElementAtPointService } from './elementAtPointService/ElementAtPointService.js';
39
- import { FlexBoxPlacementService } from './placementService/FlexBoxPlacementService.js';
40
- import { SnaplinesProviderService } from './placementService/SnaplinesProviderService.js';
41
- import { ExternalDragDropService } from './dragDropService/ExternalDragDropService.js';
42
- import { EditTextExtensionProvider } from '../widgets/designerView/extensions/EditText/EditTextExtensionProvider.js';
43
- import { CopyPasteService } from './copyPasteService/CopyPasteService.js';
44
- import { DefaultModelCommandService } from './modelCommandService/DefaultModelCommandService.js';
45
- import { ButtonSeperatorProvider } from '../widgets/designerView/extensions/buttons/ButtonSeperatorProvider.js';
46
- import { GridExtensionDesignViewConfigButtons } from '../widgets/designerView/extensions/buttons/GridExtensionDesignViewConfigButtons.js';
47
- import { DrawRectTool } from '../widgets/designerView/tools/DrawRectTool.js';
48
- import { DrawEllipsisTool } from '../widgets/designerView/tools/DrawEllipsisTool.js';
49
- import { DrawLineTool } from '../widgets/designerView/tools/DrawLineTool.js';
50
- import { HtmlWriterService } from './htmlWriterService/HtmlWriterService.js';
51
- import { RectContextMenu } from '../widgets/designerView/extensions/contextMenu/RectContextMenu.js';
52
- import { PathContextMenu } from '../widgets/designerView/extensions/contextMenu/PathContextMenu.js';
53
- import { SeperatorContextMenu } from '../widgets/designerView/extensions/contextMenu/SeperatorContextMenu.js';
54
- import { ZoomToElementContextMenu } from '../widgets/designerView/extensions/contextMenu/ZoomToElementContextMenu.js';
55
- import { RotateLeftAndRight } from '../widgets/designerView/extensions/contextMenu/RotateLeftAndRightContextMenu.js';
56
- import { SelectAllChildrenContextMenu } from '../widgets/designerView/extensions/contextMenu/SelectAllChildrenContextMenu.js';
57
- import { PointerToolButtonProvider } from '../widgets/designerView/tools/toolBar/buttons/PointerToolButtonProvider.js';
58
- import { SeperatorToolProvider } from '../widgets/designerView/tools/toolBar/buttons/SeperatorToolProvider.js';
59
- import { ZoomToolButtonProvider } from '../widgets/designerView/tools/toolBar/buttons/ZoomToolButtonProvider.js';
60
- import { DrawToolButtonProvider } from '../widgets/designerView/tools/toolBar/buttons/DrawToolButtonProvider.js';
61
- import { TextToolButtonProvider } from '../widgets/designerView/tools/toolBar/buttons/TextToolButtonProvider.js';
62
- import { SelectorToolButtonProvider } from '../widgets/designerView/tools/toolBar/buttons/SelectorToolButtonProvider.js';
63
- import { GrayOutDragOverContainerExtensionProvider } from '../widgets/designerView/extensions/GrayOutDragOverContainerExtensionProvider.js';
64
- import { PropertyGroupsService } from './propertiesService/PropertyGroupsService.js';
65
- import { PlacementExtensionProvider } from '../widgets/designerView/extensions/PlacementExtensionProvider.js';
66
- import { FlexboxExtensionProvider } from '../widgets/designerView/extensions/FlexboxExtensionProvider.js';
67
- import { FlexboxExtensionDesignViewConfigButtons } from '../widgets/designerView/extensions/buttons/FlexboxExtensionDesignViewConfigButtons.js';
68
- import { InvisibleElementExtensionDesignViewConfigButtons } from '../widgets/designerView/extensions/buttons/InvisibleElementExtensionDesignViewConfigButtons.js';
69
- import { UndoService } from './undoService/UndoService.js';
70
- import { SelectionService } from './selectionService/SelectionService.js';
71
- import { ContentService } from './contentService/ContentService.js';
72
- import { StylesheetServiceDesignViewConfigButtons } from '../widgets/designerView/extensions/buttons/StylesheetServiceDesignViewConfigButtons.js';
73
- import { JumpToElementContextMenu } from '../widgets/designerView/extensions/contextMenu/JumpToElementContextMenu.js';
74
- import { EditGridColumnRowSizesExtensionProvider } from '../widgets/designerView/extensions/grid/EditGridColumnRowSizesExtensionProvider.js';
75
- import { DisplayGridExtensionProvider } from '../widgets/designerView/extensions/grid/DisplayGridExtensionProvider.js';
76
- import { ApplyFirstMachingExtensionProvider } from '../widgets/designerView/extensions/logic/ApplyFirstMachingExtensionProvider.js';
77
- import { DesignItemDocumentPositionService } from './designItemDocumentPositionService/DesignItemDocumentPositionService.js';
78
- import { TransformToolButtonProvider } from '../widgets/designerView/tools/toolBar/buttons/TransformToolButtonProvider.js';
79
- import { MultipleSelectionRectExtensionProvider } from '../widgets/designerView/extensions/MultipleSelectionRectExtensionProvider.js';
80
- import { DragDropService } from './dragDropService/DragDropService.js';
81
- import { EventsService } from './eventsService/EventsService.js';
82
- import { SimpleDemoProviderService } from './demoProviderService/SimpleDemoProviderService.js';
83
- import { DrawElementTool } from '../widgets/designerView/tools/DrawElementTool.js';
84
- import { RoundPixelsDesignViewConfigButton } from '../widgets/designerView/extensions/buttons/RoundPixelsDesignViewConfigButton.js';
85
- import { MathMLElementsPropertiesService } from './propertiesService/services/MathMLElementsPropertiesService.js';
86
- import { SvgElementExtensionProvider } from '../widgets/designerView/extensions/svg/SvgElementExtensionProvider.js';
87
- import { ConditionExtensionProvider } from '../widgets/designerView/extensions/logic/ConditionExtensionProvider.js';
88
- import { GridToolbarExtensionProvider } from '../widgets/designerView/extensions/grid/GridToolbarExtensionProvider.js';
89
- import { FlexToolbarExtensionProvider } from '../widgets/designerView/extensions/flex/FlexToolbarExtensionProvider.js';
90
- import { BlockToolbarExtensionProvider } from '../widgets/designerView/extensions/block/BlockToolbarExtensionProvider.js';
91
- import { ChildContextMenu } from '../widgets/designerView/extensions/contextMenu/ChildContextMenu.js';
92
- import { GridChildToolbarExtensionProvider } from '../widgets/designerView/extensions/grid/GridChildToolbarExtensionProvider.js';
93
- import { ToolbarExtensionsDesignViewConfigButtons } from '../widgets/designerView/extensions/buttons/ToolbarExtensionsDesignViewConfigButtons.js';
94
- import { PaddingExtensionProvider } from '../widgets/designerView/extensions/PaddingExtensionProvider.js';
95
- import { GridChildResizeExtensionProvider } from '../widgets/designerView/extensions/grid/GridChildResizeExtensionProvider.js';
96
- import { AlignItemsContextMenu } from '../widgets/designerView/extensions/contextMenu/AlignItemsContextMenu.js';
97
- import { BasicWebcomponentPropertiesService } from './propertiesService/services/BasicWebcomponentPropertiesService.js';
98
- export function createDefaultServiceContainer() {
99
- let serviceContainer = new ServiceContainer();
100
- let defaultPlacementService = new DefaultPlacementService();
101
- serviceContainer.register("containerService", defaultPlacementService);
102
- serviceContainer.register("containerService", new GridPlacementService(defaultPlacementService));
103
- serviceContainer.register("containerService", new FlexBoxPlacementService(defaultPlacementService));
104
- serviceContainer.register("propertyService", new BasicWebcomponentPropertiesService());
105
- serviceContainer.register("propertyService", new PolymerPropertiesService());
106
- serviceContainer.register("propertyService", new LitElementPropertiesService());
107
- serviceContainer.register("propertyService", new NativeElementsPropertiesService());
108
- serviceContainer.register("propertyService", new SVGElementsPropertiesService());
109
- serviceContainer.register("propertyService", new MathMLElementsPropertiesService());
110
- serviceContainer.register("propertyService", new Lit2PropertiesService());
111
- serviceContainer.register("propertyService", new BaseCustomWebComponentPropertiesService());
112
- serviceContainer.register("propertyGroupsService", new PropertyGroupsService());
113
- serviceContainer.register("instanceService", new DefaultInstanceService());
114
- serviceContainer.register("editorTypesService", new DefaultEditorTypesService());
115
- serviceContainer.register("htmlWriterService", new HtmlWriterService());
116
- serviceContainer.register("snaplinesProviderService", new SnaplinesProviderService());
117
- serviceContainer.register("htmlParserService", new DefaultHtmlParserService());
118
- serviceContainer.register("elementAtPointService", new ElementAtPointService());
119
- serviceContainer.register("externalDragDropService", new ExternalDragDropService());
120
- serviceContainer.register("dragDropService", new DragDropService());
121
- serviceContainer.register("copyPasteService", new CopyPasteService());
122
- serviceContainer.register("modelCommandService", new DefaultModelCommandService());
123
- serviceContainer.register("demoProviderService", new SimpleDemoProviderService());
124
- serviceContainer.register("eventsService", new EventsService());
125
- serviceContainer.register("undoService", (designerCanvas) => new UndoService(designerCanvas));
126
- serviceContainer.register("selectionService", (designerCanvas) => new SelectionService(designerCanvas, false));
127
- serviceContainer.register("contentService", (designerCanvas) => new ContentService(designerCanvas.rootDesignItem));
128
- serviceContainer.register("designItemDocumentPositionService", (designerCanvas) => new DesignItemDocumentPositionService(designerCanvas));
129
- serviceContainer.designerExtensions.set(ExtensionType.Permanent, [
130
- new InvisibleElementExtensionProvider(),
131
- ]);
132
- serviceContainer.designerExtensions.set(ExtensionType.PrimarySelection, [
133
- new ConditionExtensionProvider(new ElementDragTitleExtensionProvider(), item => !(item.node instanceof SVGElement) || item.node instanceof SVGSVGElement),
134
- new TransformOriginExtensionProvider(true),
135
- new MarginExtensionProvider(),
136
- new PaddingExtensionProvider(),
137
- new PositionExtensionProvider(),
138
- new SvgElementExtensionProvider(),
139
- new ApplyFirstMachingExtensionProvider(new GridChildResizeExtensionProvider(), new ResizeExtensionProvider(true)),
140
- new RotateExtensionProvider(),
141
- new ConditionExtensionProvider(new MultipleSelectionRectExtensionProvider(), item => !(item.node instanceof SVGElement) || item.node instanceof SVGSVGElement),
142
- ]);
143
- serviceContainer.designerExtensions.set(ExtensionType.PrimarySelectionRefreshed, [
144
- new GridChildToolbarExtensionProvider(),
145
- new GridToolbarExtensionProvider(),
146
- new FlexToolbarExtensionProvider(),
147
- new BlockToolbarExtensionProvider(),
148
- ]);
149
- serviceContainer.designerExtensions.set(ExtensionType.PrimarySelectionAndCanBeEntered, [
150
- new DisplayGridExtensionProvider(),
151
- new EditGridColumnRowSizesExtensionProvider(),
152
- new FlexboxExtensionProvider(),
153
- ]);
154
- serviceContainer.designerExtensions.set(ExtensionType.Selection, [
155
- new ConditionExtensionProvider(new SelectionDefaultExtensionProvider(), item => !(item.node instanceof SVGElement) || item.node instanceof SVGSVGElement),
156
- ]);
157
- serviceContainer.designerExtensions.set(ExtensionType.PrimarySelectionContainerAndCanBeEntered, [
158
- new DisplayGridExtensionProvider('lightgray', '#8080802b'),
159
- new EditGridColumnRowSizesExtensionProvider(),
160
- new FlexboxExtensionProvider()
161
- ]);
162
- serviceContainer.designerExtensions.set(ExtensionType.MouseOver, [
163
- new HighlightElementExtensionProvider()
164
- ]);
165
- serviceContainer.designerExtensions.set(ExtensionType.Placement, [
166
- new PlacementExtensionProvider()
167
- ]);
168
- serviceContainer.designerExtensions.set(ExtensionType.ContainerDrag, [
169
- new GrayOutExtensionProvider()
170
- ]);
171
- serviceContainer.designerExtensions.set(ExtensionType.ContainerDragOverAndCanBeEntered, [
172
- new ApplyFirstMachingExtensionProvider(new DisplayGridExtensionProvider(), new GrayOutDragOverContainerExtensionProvider()),
173
- new AltToEnterContainerExtensionProvider()
174
- ]);
175
- serviceContainer.designerExtensions.set(ExtensionType.ContainerExternalDragOverAndCanBeEntered, [
176
- new ApplyFirstMachingExtensionProvider(new DisplayGridExtensionProvider(), new GrayOutDragOverContainerExtensionProvider()),
177
- ]);
178
- serviceContainer.designerExtensions.set(ExtensionType.Doubleclick, [
179
- new EditTextExtensionProvider()
180
- ]);
181
- serviceContainer.designerTools.set(NamedTools.Pointer, new PointerTool());
182
- serviceContainer.designerTools.set(NamedTools.DrawSelection, new RectangleSelectorTool());
183
- serviceContainer.designerTools.set(NamedTools.DrawPath, new DrawPathTool());
184
- serviceContainer.designerTools.set(NamedTools.DrawRect, new DrawRectTool());
185
- serviceContainer.designerTools.set(NamedTools.DrawEllipsis, new DrawEllipsisTool());
186
- serviceContainer.designerTools.set(NamedTools.DrawLine, new DrawLineTool());
187
- serviceContainer.designerTools.set(NamedTools.Zoom, new ZoomTool());
188
- serviceContainer.designerTools.set(NamedTools.Pan, new PanTool());
189
- serviceContainer.designerTools.set(NamedTools.RectangleSelector, new RectangleSelectorTool());
190
- serviceContainer.designerTools.set(NamedTools.MagicWandSelector, new MagicWandSelectorTool());
191
- serviceContainer.designerTools.set(NamedTools.PickColor, new PickColorTool());
192
- serviceContainer.designerTools.set(NamedTools.Text, new TextTool());
193
- serviceContainer.designerTools.set(NamedTools.DrawElementTool, DrawElementTool);
194
- serviceContainer.designerPointerExtensions.push(
195
- //new CursorLinePointerExtensionProvider()
196
- );
197
- 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());
198
- 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());
199
- serviceContainer.designerContextMenuExtensions = [
200
- new ChildContextMenu('edit', new CopyPasteContextMenu()),
201
- new SeperatorContextMenu(),
202
- new ChildContextMenu('modify', new RotateLeftAndRight(), new SeperatorContextMenu(), new ZMoveContextMenu(), new SeperatorContextMenu(), new AlignItemsContextMenu()),
203
- new SeperatorContextMenu(),
204
- new ChildContextMenu('view', new JumpToElementContextMenu(), new ZoomToElementContextMenu()),
205
- new SeperatorContextMenu(),
206
- new MultipleItemsSelectedContextMenu(),
207
- new PathContextMenu(),
208
- new RectContextMenu(),
209
- new SeperatorContextMenu(),
210
- new SelectAllChildrenContextMenu(),
211
- new SeperatorContextMenu(),
212
- new ItemsBelowContextMenu(),
213
- ];
214
- return serviceContainer;
215
- }
216
- export default createDefaultServiceContainer;
@@ -1,220 +0,0 @@
1
- import { ServiceContainer } from './ServiceContainer.js';
2
- import { PolymerPropertiesService } from './propertiesService/services/PolymerPropertiesService.js';
3
- import { LitElementPropertiesService } from './propertiesService/services/LitElementPropertiesService.js';
4
- import { NativeElementsPropertiesService } from './propertiesService/services/NativeElementsPropertiesService.js';
5
- import { SVGElementsPropertiesService } from './propertiesService/services/SVGElementsPropertiesService.js';
6
- import { DefaultInstanceService } from './instanceService/DefaultInstanceService.js';
7
- import { DefaultEditorTypesService } from './propertiesService/DefaultEditorTypesService.js';
8
- import { BaseCustomWebComponentPropertiesService } from './propertiesService/services/BaseCustomWebComponentPropertiesService.js';
9
- import { DefaultPlacementService } from './placementService/DefaultPlacementService.js';
10
- import { DefaultHtmlParserService } from './htmlParserService/DefaultHtmlParserService.js';
11
- import { Lit2PropertiesService } from './propertiesService/services/Lit2PropertiesService.js';
12
- import { ExtensionType } from '../widgets/designerView/extensions/ExtensionType.js';
13
- import { ElementDragTitleExtensionProvider } from '../widgets/designerView/extensions/ElementDragTitleExtensionProvider.js';
14
- import { TransformOriginExtensionProvider } from '../widgets/designerView/extensions/TransformOriginExtensionProvider.js';
15
- import { MarginExtensionProvider } from '../widgets/designerView/extensions/MarginExtensionProvider.js';
16
- import { PositionExtensionProvider } from '../widgets/designerView/extensions/PositionExtensionProvider.js';
17
- import { HighlightElementExtensionProvider } from '../widgets/designerView/extensions/HighlightElementExtensionProvider.js';
18
- import { NamedTools } from '../widgets/designerView/tools/NamedTools.js';
19
- import { PointerTool } from '../widgets/designerView/tools/PointerTool.js';
20
- import { DrawPathTool } from '../widgets/designerView/tools/DrawPathTool.js';
21
- import { SelectionDefaultExtensionProvider } from '../widgets/designerView/extensions/SelectionDefaultExtensionProvider.js';
22
- import { ResizeExtensionProvider } from '../widgets/designerView/extensions/ResizeExtensionProvider.js';
23
- import { RotateExtensionProvider } from '../widgets/designerView/extensions/RotateExtensionProvider.js';
24
- import { ZoomTool } from '../widgets/designerView/tools/ZoomTool.js';
25
- import { PanTool } from '../widgets/designerView/tools/PanTool.js';
26
- import { CopyPasteContextMenu } from '../widgets/designerView/extensions/contextMenu/CopyPasteContextMenu.js';
27
- import { ZMoveContextMenu } from '../widgets/designerView/extensions/contextMenu/ZMoveContextMenu.js';
28
- import { MultipleItemsSelectedContextMenu } from '../widgets/designerView/extensions/contextMenu/MultipleItemsSelectedContextMenu.js';
29
- import { RectangleSelectorTool } from '../widgets/designerView/tools/RectangleSelectorTool.js';
30
- import { MagicWandSelectorTool } from '../widgets/designerView/tools/MagicWandSelectorTool.js';
31
- import { PickColorTool } from '../widgets/designerView/tools/PickColorTool.js';
32
- import { TextTool } from '../widgets/designerView/tools/TextTool.js';
33
- import { GrayOutExtensionProvider } from '../widgets/designerView/extensions/GrayOutExtensionProvider.js';
34
- import { AltToEnterContainerExtensionProvider } from '../widgets/designerView/extensions/AltToEnterContainerExtensionProvider.js';
35
- import { InvisibleElementExtensionProvider } from '../widgets/designerView/extensions/InvisibleElementExtensionProvider.js';
36
- import { ItemsBelowContextMenu } from '../widgets/designerView/extensions/contextMenu/ItemsBelowContextMenu.js';
37
- import { GridPlacementService } from './placementService/GridPlacementService.js';
38
- import { ElementAtPointService } from './elementAtPointService/ElementAtPointService.js';
39
- import { FlexBoxPlacementService } from './placementService/FlexBoxPlacementService.js';
40
- import { SnaplinesProviderService } from './placementService/SnaplinesProviderService.js';
41
- import { ExternalDragDropService } from './dragDropService/ExternalDragDropService.js';
42
- import { EditTextExtensionProvider } from '../widgets/designerView/extensions/EditText/EditTextExtensionProvider.js';
43
- import { CopyPasteService } from './copyPasteService/CopyPasteService.js';
44
- import { DefaultModelCommandService } from './modelCommandService/DefaultModelCommandService.js';
45
- import { ButtonSeperatorProvider } from '../widgets/designerView/extensions/buttons/ButtonSeperatorProvider.js';
46
- import { GridExtensionDesignViewConfigButtons } from '../widgets/designerView/extensions/buttons/GridExtensionDesignViewConfigButtons.js';
47
- import { DrawRectTool } from '../widgets/designerView/tools/DrawRectTool.js';
48
- import { DrawEllipsisTool } from '../widgets/designerView/tools/DrawEllipsisTool.js';
49
- import { DrawLineTool } from '../widgets/designerView/tools/DrawLineTool.js';
50
- import { HtmlWriterService } from './htmlWriterService/HtmlWriterService.js';
51
- import { RectContextMenu } from '../widgets/designerView/extensions/contextMenu/RectContextMenu.js';
52
- import { PathContextMenu } from '../widgets/designerView/extensions/contextMenu/PathContextMenu.js';
53
- import { SeperatorContextMenu } from '../widgets/designerView/extensions/contextMenu/SeperatorContextMenu.js';
54
- import { ZoomToElementContextMenu } from '../widgets/designerView/extensions/contextMenu/ZoomToElementContextMenu.js';
55
- import { RotateLeftAndRight } from '../widgets/designerView/extensions/contextMenu/RotateLeftAndRightContextMenu.js';
56
- import { SelectAllChildrenContextMenu } from '../widgets/designerView/extensions/contextMenu/SelectAllChildrenContextMenu.js';
57
- import { PointerToolButtonProvider } from '../widgets/designerView/tools/toolBar/buttons/PointerToolButtonProvider.js';
58
- import { SeperatorToolProvider } from '../widgets/designerView/tools/toolBar/buttons/SeperatorToolProvider.js';
59
- import { ZoomToolButtonProvider } from '../widgets/designerView/tools/toolBar/buttons/ZoomToolButtonProvider.js';
60
- import { DrawToolButtonProvider } from '../widgets/designerView/tools/toolBar/buttons/DrawToolButtonProvider.js';
61
- import { TextToolButtonProvider } from '../widgets/designerView/tools/toolBar/buttons/TextToolButtonProvider.js';
62
- import { SelectorToolButtonProvider } from '../widgets/designerView/tools/toolBar/buttons/SelectorToolButtonProvider.js';
63
- import { GrayOutDragOverContainerExtensionProvider } from '../widgets/designerView/extensions/GrayOutDragOverContainerExtensionProvider.js';
64
- import { PropertyGroupsService } from './propertiesService/PropertyGroupsService.js';
65
- import { PlacementExtensionProvider } from '../widgets/designerView/extensions/PlacementExtensionProvider.js';
66
- import { FlexboxExtensionProvider } from '../widgets/designerView/extensions/FlexboxExtensionProvider.js';
67
- import { FlexboxExtensionDesignViewConfigButtons } from '../widgets/designerView/extensions/buttons/FlexboxExtensionDesignViewConfigButtons.js';
68
- import { InvisibleElementExtensionDesignViewConfigButtons } from '../widgets/designerView/extensions/buttons/InvisibleElementExtensionDesignViewConfigButtons.js';
69
- import { UndoService } from './undoService/UndoService.js';
70
- import { SelectionService } from './selectionService/SelectionService.js';
71
- import { ContentService } from './contentService/ContentService.js';
72
- import { StylesheetServiceDesignViewConfigButtons } from '../widgets/designerView/extensions/buttons/StylesheetServiceDesignViewConfigButtons.js';
73
- import { JumpToElementContextMenu } from '../widgets/designerView/extensions/contextMenu/JumpToElementContextMenu.js';
74
- import { EditGridColumnRowSizesExtensionProvider } from '../widgets/designerView/extensions/grid/EditGridColumnRowSizesExtensionProvider.js';
75
- import { DisplayGridExtensionProvider } from '../widgets/designerView/extensions/grid/DisplayGridExtensionProvider.js';
76
- import { ApplyFirstMachingExtensionProvider } from '../widgets/designerView/extensions/logic/ApplyFirstMachingExtensionProvider.js';
77
- import { DesignItemDocumentPositionService } from './designItemDocumentPositionService/DesignItemDocumentPositionService.js';
78
- import { TransformToolButtonProvider } from '../widgets/designerView/tools/toolBar/buttons/TransformToolButtonProvider.js';
79
- import { MultipleSelectionRectExtensionProvider } from '../widgets/designerView/extensions/MultipleSelectionRectExtensionProvider.js';
80
- import { DragDropService } from './dragDropService/DragDropService.js';
81
- import { EventsService } from './eventsService/EventsService.js';
82
- import { SimpleDemoProviderService } from './demoProviderService/SimpleDemoProviderService.js';
83
- import { DrawElementTool } from '../widgets/designerView/tools/DrawElementTool.js';
84
- import { RoundPixelsDesignViewConfigButton } from '../widgets/designerView/extensions/buttons/RoundPixelsDesignViewConfigButton.js';
85
- import { MathMLElementsPropertiesService } from './propertiesService/services/MathMLElementsPropertiesService.js';
86
- import { SvgElementExtensionProvider } from '../widgets/designerView/extensions/svg/SvgElementExtensionProvider.js';
87
- import { ConditionExtensionProvider } from '../widgets/designerView/extensions/logic/ConditionExtensionProvider.js';
88
- import { GridToolbarExtensionProvider } from '../widgets/designerView/extensions/grid/GridToolbarExtensionProvider.js';
89
- import { FlexToolbarExtensionProvider } from '../widgets/designerView/extensions/flex/FlexToolbarExtensionProvider.js';
90
- import { BlockToolbarExtensionProvider } from '../widgets/designerView/extensions/block/BlockToolbarExtensionProvider.js';
91
- import { ChildContextMenu } from '../widgets/designerView/extensions/contextMenu/ChildContextMenu.js';
92
- import { GridChildToolbarExtensionProvider } from '../widgets/designerView/extensions/grid/GridChildToolbarExtensionProvider.js';
93
- import { ToolbarExtensionsDesignViewConfigButtons } from '../widgets/designerView/extensions/buttons/ToolbarExtensionsDesignViewConfigButtons.js';
94
- import { PaddingExtensionProvider } from '../widgets/designerView/extensions/PaddingExtensionProvider.js';
95
- import { GridChildResizeExtensionProvider } from '../widgets/designerView/extensions/grid/GridChildResizeExtensionProvider.js';
96
- import { AlignItemsContextMenu } from '../widgets/designerView/extensions/contextMenu/AlignItemsContextMenu.js';
97
- import { BasicWebcomponentPropertiesService } from './propertiesService/services/BasicWebcomponentPropertiesService.js';
98
- import { ForceCssContextMenu } from '../widgets/designerView/extensions/contextMenu/ForceCssContextMenu.js';
99
- import { OptionsContextMenuButton } from '../widgets/designerView/extensions/buttons/OptionsContextMenuButton.js';
100
- export function createDefaultServiceContainer() {
101
- let serviceContainer = new ServiceContainer();
102
- let defaultPlacementService = new DefaultPlacementService();
103
- serviceContainer.register("containerService", defaultPlacementService);
104
- serviceContainer.register("containerService", new GridPlacementService(defaultPlacementService));
105
- serviceContainer.register("containerService", new FlexBoxPlacementService(defaultPlacementService));
106
- serviceContainer.register("propertyService", new BasicWebcomponentPropertiesService());
107
- serviceContainer.register("propertyService", new PolymerPropertiesService());
108
- serviceContainer.register("propertyService", new LitElementPropertiesService());
109
- serviceContainer.register("propertyService", new NativeElementsPropertiesService());
110
- serviceContainer.register("propertyService", new SVGElementsPropertiesService());
111
- serviceContainer.register("propertyService", new MathMLElementsPropertiesService());
112
- serviceContainer.register("propertyService", new Lit2PropertiesService());
113
- serviceContainer.register("propertyService", new BaseCustomWebComponentPropertiesService());
114
- serviceContainer.register("propertyGroupsService", new PropertyGroupsService());
115
- serviceContainer.register("instanceService", new DefaultInstanceService());
116
- serviceContainer.register("editorTypesService", new DefaultEditorTypesService());
117
- serviceContainer.register("htmlWriterService", new HtmlWriterService());
118
- serviceContainer.register("snaplinesProviderService", new SnaplinesProviderService());
119
- serviceContainer.register("htmlParserService", new DefaultHtmlParserService());
120
- serviceContainer.register("elementAtPointService", new ElementAtPointService());
121
- serviceContainer.register("externalDragDropService", new ExternalDragDropService());
122
- serviceContainer.register("dragDropService", new DragDropService());
123
- serviceContainer.register("copyPasteService", new CopyPasteService());
124
- serviceContainer.register("modelCommandService", new DefaultModelCommandService());
125
- serviceContainer.register("demoProviderService", new SimpleDemoProviderService());
126
- serviceContainer.register("eventsService", new EventsService());
127
- serviceContainer.register("undoService", (designerCanvas) => new UndoService(designerCanvas));
128
- serviceContainer.register("selectionService", (designerCanvas) => new SelectionService(designerCanvas, false));
129
- serviceContainer.register("contentService", (designerCanvas) => new ContentService(designerCanvas.rootDesignItem));
130
- serviceContainer.register("designItemDocumentPositionService", (designerCanvas) => new DesignItemDocumentPositionService(designerCanvas));
131
- serviceContainer.designerExtensions.set(ExtensionType.Permanent, [
132
- new InvisibleElementExtensionProvider(),
133
- ]);
134
- serviceContainer.designerExtensions.set(ExtensionType.PrimarySelection, [
135
- new ConditionExtensionProvider(new ElementDragTitleExtensionProvider(), item => !(item.node instanceof SVGElement) || item.node instanceof SVGSVGElement),
136
- new TransformOriginExtensionProvider(true),
137
- new MarginExtensionProvider(),
138
- new PaddingExtensionProvider(),
139
- new PositionExtensionProvider(),
140
- new SvgElementExtensionProvider(),
141
- new ApplyFirstMachingExtensionProvider(new GridChildResizeExtensionProvider(), new ResizeExtensionProvider(true)),
142
- new RotateExtensionProvider(),
143
- new ConditionExtensionProvider(new MultipleSelectionRectExtensionProvider(), item => !(item.node instanceof SVGElement) || item.node instanceof SVGSVGElement),
144
- ]);
145
- serviceContainer.designerExtensions.set(ExtensionType.PrimarySelectionRefreshed, [
146
- new GridChildToolbarExtensionProvider(),
147
- new GridToolbarExtensionProvider(),
148
- new FlexToolbarExtensionProvider(),
149
- new BlockToolbarExtensionProvider(),
150
- ]);
151
- serviceContainer.designerExtensions.set(ExtensionType.PrimarySelectionAndCanBeEntered, [
152
- new DisplayGridExtensionProvider(),
153
- new EditGridColumnRowSizesExtensionProvider(),
154
- new FlexboxExtensionProvider(),
155
- ]);
156
- serviceContainer.designerExtensions.set(ExtensionType.Selection, [
157
- new ConditionExtensionProvider(new SelectionDefaultExtensionProvider(), item => !(item.node instanceof SVGElement) || item.node instanceof SVGSVGElement),
158
- ]);
159
- serviceContainer.designerExtensions.set(ExtensionType.PrimarySelectionContainerAndCanBeEntered, [
160
- new DisplayGridExtensionProvider('lightgray', '#8080802b'),
161
- new EditGridColumnRowSizesExtensionProvider(),
162
- new FlexboxExtensionProvider()
163
- ]);
164
- serviceContainer.designerExtensions.set(ExtensionType.MouseOver, [
165
- new HighlightElementExtensionProvider()
166
- ]);
167
- serviceContainer.designerExtensions.set(ExtensionType.Placement, [
168
- new PlacementExtensionProvider()
169
- ]);
170
- serviceContainer.designerExtensions.set(ExtensionType.ContainerDrag, [
171
- new GrayOutExtensionProvider()
172
- ]);
173
- serviceContainer.designerExtensions.set(ExtensionType.ContainerDragOverAndCanBeEntered, [
174
- new ApplyFirstMachingExtensionProvider(new DisplayGridExtensionProvider(), new GrayOutDragOverContainerExtensionProvider()),
175
- new AltToEnterContainerExtensionProvider()
176
- ]);
177
- serviceContainer.designerExtensions.set(ExtensionType.ContainerExternalDragOverAndCanBeEntered, [
178
- new ApplyFirstMachingExtensionProvider(new DisplayGridExtensionProvider(), new GrayOutDragOverContainerExtensionProvider()),
179
- ]);
180
- serviceContainer.designerExtensions.set(ExtensionType.Doubleclick, [
181
- new EditTextExtensionProvider()
182
- ]);
183
- serviceContainer.designerTools.set(NamedTools.Pointer, new PointerTool());
184
- serviceContainer.designerTools.set(NamedTools.DrawSelection, new RectangleSelectorTool());
185
- serviceContainer.designerTools.set(NamedTools.DrawPath, new DrawPathTool());
186
- serviceContainer.designerTools.set(NamedTools.DrawRect, new DrawRectTool());
187
- serviceContainer.designerTools.set(NamedTools.DrawEllipsis, new DrawEllipsisTool());
188
- serviceContainer.designerTools.set(NamedTools.DrawLine, new DrawLineTool());
189
- serviceContainer.designerTools.set(NamedTools.Zoom, new ZoomTool());
190
- serviceContainer.designerTools.set(NamedTools.Pan, new PanTool());
191
- serviceContainer.designerTools.set(NamedTools.RectangleSelector, new RectangleSelectorTool());
192
- serviceContainer.designerTools.set(NamedTools.MagicWandSelector, new MagicWandSelectorTool());
193
- serviceContainer.designerTools.set(NamedTools.PickColor, new PickColorTool());
194
- serviceContainer.designerTools.set(NamedTools.Text, new TextTool());
195
- serviceContainer.designerTools.set(NamedTools.DrawElementTool, DrawElementTool);
196
- serviceContainer.designerPointerExtensions.push(
197
- //new CursorLinePointerExtensionProvider()
198
- );
199
- 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(), new ButtonSeperatorProvider(30), new OptionsContextMenuButton());
200
- 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());
201
- serviceContainer.designerContextMenuExtensions = [
202
- new ChildContextMenu('edit', new CopyPasteContextMenu()),
203
- new SeperatorContextMenu(),
204
- new ChildContextMenu('modify', new RotateLeftAndRight(), new SeperatorContextMenu(), new ZMoveContextMenu(), new SeperatorContextMenu(), new AlignItemsContextMenu()),
205
- new SeperatorContextMenu(),
206
- new ChildContextMenu('view', new JumpToElementContextMenu(), new ZoomToElementContextMenu()),
207
- new SeperatorContextMenu(),
208
- new ChildContextMenu('force', new ForceCssContextMenu()),
209
- new SeperatorContextMenu(),
210
- new MultipleItemsSelectedContextMenu(),
211
- new PathContextMenu(),
212
- new RectContextMenu(),
213
- new SeperatorContextMenu(),
214
- new SelectAllChildrenContextMenu(),
215
- new SeperatorContextMenu(),
216
- new ItemsBelowContextMenu(),
217
- ];
218
- return serviceContainer;
219
- }
220
- export default createDefaultServiceContainer;
@@ -1,220 +0,0 @@
1
- import { ServiceContainer } from './ServiceContainer.js';
2
- import { PolymerPropertiesService } from './propertiesService/services/PolymerPropertiesService.js';
3
- import { LitElementPropertiesService } from './propertiesService/services/LitElementPropertiesService.js';
4
- import { NativeElementsPropertiesService } from './propertiesService/services/NativeElementsPropertiesService.js';
5
- import { SVGElementsPropertiesService } from './propertiesService/services/SVGElementsPropertiesService.js';
6
- import { DefaultInstanceService } from './instanceService/DefaultInstanceService.js';
7
- import { DefaultEditorTypesService } from './propertiesService/DefaultEditorTypesService.js';
8
- import { BaseCustomWebComponentPropertiesService } from './propertiesService/services/BaseCustomWebComponentPropertiesService.js';
9
- import { DefaultPlacementService } from './placementService/DefaultPlacementService.js';
10
- import { DefaultHtmlParserService } from './htmlParserService/DefaultHtmlParserService.js';
11
- import { Lit2PropertiesService } from './propertiesService/services/Lit2PropertiesService.js';
12
- import { ExtensionType } from '../widgets/designerView/extensions/ExtensionType.js';
13
- import { ElementDragTitleExtensionProvider } from '../widgets/designerView/extensions/ElementDragTitleExtensionProvider.js';
14
- import { TransformOriginExtensionProvider } from '../widgets/designerView/extensions/TransformOriginExtensionProvider.js';
15
- import { MarginExtensionProvider } from '../widgets/designerView/extensions/MarginExtensionProvider.js';
16
- import { PositionExtensionProvider } from '../widgets/designerView/extensions/PositionExtensionProvider.js';
17
- import { HighlightElementExtensionProvider } from '../widgets/designerView/extensions/HighlightElementExtensionProvider.js';
18
- import { NamedTools } from '../widgets/designerView/tools/NamedTools.js';
19
- import { PointerTool } from '../widgets/designerView/tools/PointerTool.js';
20
- import { DrawPathTool } from '../widgets/designerView/tools/DrawPathTool.js';
21
- import { SelectionDefaultExtensionProvider } from '../widgets/designerView/extensions/SelectionDefaultExtensionProvider.js';
22
- import { ResizeExtensionProvider } from '../widgets/designerView/extensions/ResizeExtensionProvider.js';
23
- import { RotateExtensionProvider } from '../widgets/designerView/extensions/RotateExtensionProvider.js';
24
- import { ZoomTool } from '../widgets/designerView/tools/ZoomTool.js';
25
- import { PanTool } from '../widgets/designerView/tools/PanTool.js';
26
- import { CopyPasteContextMenu } from '../widgets/designerView/extensions/contextMenu/CopyPasteContextMenu.js';
27
- import { ZMoveContextMenu } from '../widgets/designerView/extensions/contextMenu/ZMoveContextMenu.js';
28
- import { MultipleItemsSelectedContextMenu } from '../widgets/designerView/extensions/contextMenu/MultipleItemsSelectedContextMenu.js';
29
- import { RectangleSelectorTool } from '../widgets/designerView/tools/RectangleSelectorTool.js';
30
- import { MagicWandSelectorTool } from '../widgets/designerView/tools/MagicWandSelectorTool.js';
31
- import { PickColorTool } from '../widgets/designerView/tools/PickColorTool.js';
32
- import { TextTool } from '../widgets/designerView/tools/TextTool.js';
33
- import { GrayOutExtensionProvider } from '../widgets/designerView/extensions/GrayOutExtensionProvider.js';
34
- import { AltToEnterContainerExtensionProvider } from '../widgets/designerView/extensions/AltToEnterContainerExtensionProvider.js';
35
- import { InvisibleElementExtensionProvider } from '../widgets/designerView/extensions/InvisibleElementExtensionProvider.js';
36
- import { ItemsBelowContextMenu } from '../widgets/designerView/extensions/contextMenu/ItemsBelowContextMenu.js';
37
- import { GridPlacementService } from './placementService/GridPlacementService.js';
38
- import { ElementAtPointService } from './elementAtPointService/ElementAtPointService.js';
39
- import { FlexBoxPlacementService } from './placementService/FlexBoxPlacementService.js';
40
- import { SnaplinesProviderService } from './placementService/SnaplinesProviderService.js';
41
- import { ExternalDragDropService } from './dragDropService/ExternalDragDropService.js';
42
- import { EditTextExtensionProvider } from '../widgets/designerView/extensions/EditText/EditTextExtensionProvider.js';
43
- import { CopyPasteService } from './copyPasteService/CopyPasteService.js';
44
- import { DefaultModelCommandService } from './modelCommandService/DefaultModelCommandService.js';
45
- import { ButtonSeperatorProvider } from '../widgets/designerView/extensions/buttons/ButtonSeperatorProvider.js';
46
- import { GridExtensionDesignViewConfigButtons } from '../widgets/designerView/extensions/buttons/GridExtensionDesignViewConfigButtons.js';
47
- import { DrawRectTool } from '../widgets/designerView/tools/DrawRectTool.js';
48
- import { DrawEllipsisTool } from '../widgets/designerView/tools/DrawEllipsisTool.js';
49
- import { DrawLineTool } from '../widgets/designerView/tools/DrawLineTool.js';
50
- import { HtmlWriterService } from './htmlWriterService/HtmlWriterService.js';
51
- import { RectContextMenu } from '../widgets/designerView/extensions/contextMenu/RectContextMenu.js';
52
- import { PathContextMenu } from '../widgets/designerView/extensions/contextMenu/PathContextMenu.js';
53
- import { SeperatorContextMenu } from '../widgets/designerView/extensions/contextMenu/SeperatorContextMenu.js';
54
- import { ZoomToElementContextMenu } from '../widgets/designerView/extensions/contextMenu/ZoomToElementContextMenu.js';
55
- import { RotateLeftAndRight } from '../widgets/designerView/extensions/contextMenu/RotateLeftAndRightContextMenu.js';
56
- import { SelectAllChildrenContextMenu } from '../widgets/designerView/extensions/contextMenu/SelectAllChildrenContextMenu.js';
57
- import { PointerToolButtonProvider } from '../widgets/designerView/tools/toolBar/buttons/PointerToolButtonProvider.js';
58
- import { SeperatorToolProvider } from '../widgets/designerView/tools/toolBar/buttons/SeperatorToolProvider.js';
59
- import { ZoomToolButtonProvider } from '../widgets/designerView/tools/toolBar/buttons/ZoomToolButtonProvider.js';
60
- import { DrawToolButtonProvider } from '../widgets/designerView/tools/toolBar/buttons/DrawToolButtonProvider.js';
61
- import { TextToolButtonProvider } from '../widgets/designerView/tools/toolBar/buttons/TextToolButtonProvider.js';
62
- import { SelectorToolButtonProvider } from '../widgets/designerView/tools/toolBar/buttons/SelectorToolButtonProvider.js';
63
- import { GrayOutDragOverContainerExtensionProvider } from '../widgets/designerView/extensions/GrayOutDragOverContainerExtensionProvider.js';
64
- import { PropertyGroupsService } from './propertiesService/PropertyGroupsService.js';
65
- import { PlacementExtensionProvider } from '../widgets/designerView/extensions/PlacementExtensionProvider.js';
66
- import { FlexboxExtensionProvider } from '../widgets/designerView/extensions/FlexboxExtensionProvider.js';
67
- import { FlexboxExtensionDesignViewConfigButtons } from '../widgets/designerView/extensions/buttons/FlexboxExtensionDesignViewConfigButtons.js';
68
- import { InvisibleElementExtensionDesignViewConfigButtons } from '../widgets/designerView/extensions/buttons/InvisibleElementExtensionDesignViewConfigButtons.js';
69
- import { UndoService } from './undoService/UndoService.js';
70
- import { SelectionService } from './selectionService/SelectionService.js';
71
- import { ContentService } from './contentService/ContentService.js';
72
- import { StylesheetServiceDesignViewConfigButtons } from '../widgets/designerView/extensions/buttons/StylesheetServiceDesignViewConfigButtons.js';
73
- import { JumpToElementContextMenu } from '../widgets/designerView/extensions/contextMenu/JumpToElementContextMenu.js';
74
- import { EditGridColumnRowSizesExtensionProvider } from '../widgets/designerView/extensions/grid/EditGridColumnRowSizesExtensionProvider.js';
75
- import { DisplayGridExtensionProvider } from '../widgets/designerView/extensions/grid/DisplayGridExtensionProvider.js';
76
- import { ApplyFirstMachingExtensionProvider } from '../widgets/designerView/extensions/logic/ApplyFirstMachingExtensionProvider.js';
77
- import { DesignItemDocumentPositionService } from './designItemDocumentPositionService/DesignItemDocumentPositionService.js';
78
- import { TransformToolButtonProvider } from '../widgets/designerView/tools/toolBar/buttons/TransformToolButtonProvider.js';
79
- import { MultipleSelectionRectExtensionProvider } from '../widgets/designerView/extensions/MultipleSelectionRectExtensionProvider.js';
80
- import { DragDropService } from './dragDropService/DragDropService.js';
81
- import { EventsService } from './eventsService/EventsService.js';
82
- import { SimpleDemoProviderService } from './demoProviderService/SimpleDemoProviderService.js';
83
- import { DrawElementTool } from '../widgets/designerView/tools/DrawElementTool.js';
84
- import { RoundPixelsDesignViewConfigButton } from '../widgets/designerView/extensions/buttons/RoundPixelsDesignViewConfigButton.js';
85
- import { MathMLElementsPropertiesService } from './propertiesService/services/MathMLElementsPropertiesService.js';
86
- import { SvgElementExtensionProvider } from '../widgets/designerView/extensions/svg/SvgElementExtensionProvider.js';
87
- import { ConditionExtensionProvider } from '../widgets/designerView/extensions/logic/ConditionExtensionProvider.js';
88
- import { GridToolbarExtensionProvider } from '../widgets/designerView/extensions/grid/GridToolbarExtensionProvider.js';
89
- import { FlexToolbarExtensionProvider } from '../widgets/designerView/extensions/flex/FlexToolbarExtensionProvider.js';
90
- import { BlockToolbarExtensionProvider } from '../widgets/designerView/extensions/block/BlockToolbarExtensionProvider.js';
91
- import { ChildContextMenu } from '../widgets/designerView/extensions/contextMenu/ChildContextMenu.js';
92
- import { GridChildToolbarExtensionProvider } from '../widgets/designerView/extensions/grid/GridChildToolbarExtensionProvider.js';
93
- import { ToolbarExtensionsDesignViewConfigButtons } from '../widgets/designerView/extensions/buttons/ToolbarExtensionsDesignViewConfigButtons.js';
94
- import { PaddingExtensionProvider } from '../widgets/designerView/extensions/PaddingExtensionProvider.js';
95
- import { GridChildResizeExtensionProvider } from '../widgets/designerView/extensions/grid/GridChildResizeExtensionProvider.js';
96
- import { AlignItemsContextMenu } from '../widgets/designerView/extensions/contextMenu/AlignItemsContextMenu.js';
97
- import { BasicWebcomponentPropertiesService } from './propertiesService/services/BasicWebcomponentPropertiesService.js';
98
- import { PreviousElementSelectExtensionProvider } from '../widgets/designerView/extensions/PreviousElementSelectExtensionProvider.js';
99
- export function createDefaultServiceContainer() {
100
- let serviceContainer = new ServiceContainer();
101
- let defaultPlacementService = new DefaultPlacementService();
102
- serviceContainer.register("containerService", defaultPlacementService);
103
- serviceContainer.register("containerService", new GridPlacementService(defaultPlacementService));
104
- serviceContainer.register("containerService", new FlexBoxPlacementService(defaultPlacementService));
105
- serviceContainer.register("propertyService", new BasicWebcomponentPropertiesService());
106
- serviceContainer.register("propertyService", new PolymerPropertiesService());
107
- serviceContainer.register("propertyService", new LitElementPropertiesService());
108
- serviceContainer.register("propertyService", new NativeElementsPropertiesService());
109
- serviceContainer.register("propertyService", new SVGElementsPropertiesService());
110
- serviceContainer.register("propertyService", new MathMLElementsPropertiesService());
111
- serviceContainer.register("propertyService", new Lit2PropertiesService());
112
- serviceContainer.register("propertyService", new BaseCustomWebComponentPropertiesService());
113
- serviceContainer.register("propertyGroupsService", new PropertyGroupsService());
114
- serviceContainer.register("instanceService", new DefaultInstanceService());
115
- serviceContainer.register("editorTypesService", new DefaultEditorTypesService());
116
- serviceContainer.register("htmlWriterService", new HtmlWriterService());
117
- serviceContainer.register("snaplinesProviderService", new SnaplinesProviderService());
118
- serviceContainer.register("htmlParserService", new DefaultHtmlParserService());
119
- serviceContainer.register("elementAtPointService", new ElementAtPointService());
120
- serviceContainer.register("externalDragDropService", new ExternalDragDropService());
121
- serviceContainer.register("dragDropService", new DragDropService());
122
- serviceContainer.register("copyPasteService", new CopyPasteService());
123
- serviceContainer.register("modelCommandService", new DefaultModelCommandService());
124
- serviceContainer.register("demoProviderService", new SimpleDemoProviderService());
125
- serviceContainer.register("eventsService", new EventsService());
126
- serviceContainer.register("undoService", (designerCanvas) => new UndoService(designerCanvas));
127
- serviceContainer.register("selectionService", (designerCanvas) => new SelectionService(designerCanvas, false));
128
- serviceContainer.register("contentService", (designerCanvas) => new ContentService(designerCanvas.rootDesignItem));
129
- serviceContainer.register("designItemDocumentPositionService", (designerCanvas) => new DesignItemDocumentPositionService(designerCanvas));
130
- serviceContainer.designerExtensions.set(ExtensionType.Permanent, [
131
- new InvisibleElementExtensionProvider(),
132
- ]);
133
- serviceContainer.designerExtensions.set(ExtensionType.PrimarySelection, [
134
- new ConditionExtensionProvider(new ElementDragTitleExtensionProvider(), item => !(item.node instanceof SVGElement) || item.node instanceof SVGSVGElement),
135
- new PreviousElementSelectExtensionProvider(),
136
- new TransformOriginExtensionProvider(true),
137
- new MarginExtensionProvider(),
138
- new PaddingExtensionProvider(),
139
- new PositionExtensionProvider(),
140
- new SvgElementExtensionProvider(),
141
- new ApplyFirstMachingExtensionProvider(new GridChildResizeExtensionProvider(), new ResizeExtensionProvider(true)),
142
- new RotateExtensionProvider(),
143
- new ConditionExtensionProvider(new MultipleSelectionRectExtensionProvider(), item => !(item.node instanceof SVGElement) || item.node instanceof SVGSVGElement),
144
- ]);
145
- serviceContainer.designerExtensions.set(ExtensionType.PrimarySelectionRefreshed, [
146
- new GridChildToolbarExtensionProvider(),
147
- new GridToolbarExtensionProvider(),
148
- new FlexToolbarExtensionProvider(),
149
- new BlockToolbarExtensionProvider(),
150
- ]);
151
- serviceContainer.designerExtensions.set(ExtensionType.PrimarySelectionAndCanBeEntered, [
152
- new DisplayGridExtensionProvider(),
153
- new EditGridColumnRowSizesExtensionProvider(),
154
- new FlexboxExtensionProvider(),
155
- ]);
156
- serviceContainer.designerExtensions.set(ExtensionType.Selection, [
157
- new ConditionExtensionProvider(new SelectionDefaultExtensionProvider(), item => !(item.node instanceof SVGElement) || item.node instanceof SVGSVGElement),
158
- ]);
159
- serviceContainer.designerExtensions.set(ExtensionType.PrimarySelectionContainerAndCanBeEntered, [
160
- new DisplayGridExtensionProvider('lightgray', '#8080802b'),
161
- new EditGridColumnRowSizesExtensionProvider(),
162
- new FlexboxExtensionProvider()
163
- ]);
164
- serviceContainer.designerExtensions.set(ExtensionType.MouseOver, [
165
- new HighlightElementExtensionProvider(),
166
- new ConditionExtensionProvider(new ElementDragTitleExtensionProvider(), item => item.instanceServiceContainer.selectionService.primarySelection !== item && !(item.node instanceof SVGElement) || item.node instanceof SVGSVGElement),
167
- new ConditionExtensionProvider(new PreviousElementSelectExtensionProvider(), item => item.instanceServiceContainer.selectionService.primarySelection !== item && !(item.node instanceof SVGElement) || item.node instanceof SVGSVGElement),
168
- ]);
169
- serviceContainer.designerExtensions.set(ExtensionType.Placement, [
170
- new PlacementExtensionProvider()
171
- ]);
172
- serviceContainer.designerExtensions.set(ExtensionType.ContainerDrag, [
173
- new GrayOutExtensionProvider()
174
- ]);
175
- serviceContainer.designerExtensions.set(ExtensionType.ContainerDragOverAndCanBeEntered, [
176
- new ApplyFirstMachingExtensionProvider(new DisplayGridExtensionProvider(), new GrayOutDragOverContainerExtensionProvider()),
177
- new AltToEnterContainerExtensionProvider()
178
- ]);
179
- serviceContainer.designerExtensions.set(ExtensionType.ContainerExternalDragOverAndCanBeEntered, [
180
- new ApplyFirstMachingExtensionProvider(new DisplayGridExtensionProvider(), new GrayOutDragOverContainerExtensionProvider()),
181
- ]);
182
- serviceContainer.designerExtensions.set(ExtensionType.Doubleclick, [
183
- new EditTextExtensionProvider()
184
- ]);
185
- serviceContainer.designerTools.set(NamedTools.Pointer, new PointerTool());
186
- serviceContainer.designerTools.set(NamedTools.DrawSelection, new RectangleSelectorTool());
187
- serviceContainer.designerTools.set(NamedTools.DrawPath, new DrawPathTool());
188
- serviceContainer.designerTools.set(NamedTools.DrawRect, new DrawRectTool());
189
- serviceContainer.designerTools.set(NamedTools.DrawEllipsis, new DrawEllipsisTool());
190
- serviceContainer.designerTools.set(NamedTools.DrawLine, new DrawLineTool());
191
- serviceContainer.designerTools.set(NamedTools.Zoom, new ZoomTool());
192
- serviceContainer.designerTools.set(NamedTools.Pan, new PanTool());
193
- serviceContainer.designerTools.set(NamedTools.RectangleSelector, new RectangleSelectorTool());
194
- serviceContainer.designerTools.set(NamedTools.MagicWandSelector, new MagicWandSelectorTool());
195
- serviceContainer.designerTools.set(NamedTools.PickColor, new PickColorTool());
196
- serviceContainer.designerTools.set(NamedTools.Text, new TextTool());
197
- serviceContainer.designerTools.set(NamedTools.DrawElementTool, DrawElementTool);
198
- serviceContainer.designerPointerExtensions.push(
199
- //new CursorLinePointerExtensionProvider()
200
- );
201
- 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());
202
- 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());
203
- serviceContainer.designerContextMenuExtensions = [
204
- new ChildContextMenu('edit', new CopyPasteContextMenu()),
205
- new SeperatorContextMenu(),
206
- new ChildContextMenu('modify', new RotateLeftAndRight(), new SeperatorContextMenu(), new ZMoveContextMenu(), new SeperatorContextMenu(), new AlignItemsContextMenu()),
207
- new SeperatorContextMenu(),
208
- new ChildContextMenu('view', new JumpToElementContextMenu(), new ZoomToElementContextMenu()),
209
- new SeperatorContextMenu(),
210
- new MultipleItemsSelectedContextMenu(),
211
- new PathContextMenu(),
212
- new RectContextMenu(),
213
- new SeperatorContextMenu(),
214
- new SelectAllChildrenContextMenu(),
215
- new SeperatorContextMenu(),
216
- new ItemsBelowContextMenu(),
217
- ];
218
- return serviceContainer;
219
- }
220
- export default createDefaultServiceContainer;
@@ -1,6 +0,0 @@
1
- import { DesignItem } from "../../item/DesignItem.js";
2
- export class DesignItemService {
3
- createDesignItem(node, parsedNode, serviceContainer, instanceServiceContainer) {
4
- return new DesignItem(node, parsedNode, serviceContainer, instanceServiceContainer);
5
- }
6
- }
@@ -1,155 +0,0 @@
1
- import { DomConverter } from '../../widgets/designerView/DomConverter.js';
2
- import { combineTransforms, extractTranslationFromDOMMatrix, getResultingTransformationBetweenElementAndAllAncestors } from '../../helper/TransformHelper.js';
3
- import { filterChildPlaceItems, getDesignItemCurrentPos, placeDesignItem } from '../../helper/LayoutHelper.js';
4
- import { ExtensionType } from '../../widgets/designerView/extensions/ExtensionType.js';
5
- import { straightenLine } from '../../helper/PathDataPolyfill.js';
6
- export class AbsolutePlacementService {
7
- serviceForContainer(container, containerStyle, mode, item, event) {
8
- if (item != null && (item.getComputedStyle()?.position == 'absolute' || item.getComputedStyle()?.position == 'relative'))
9
- return true;
10
- /*if (containerStyle.display === 'grid' || containerStyle.display === 'inline-grid' ||
11
- containerStyle.display === 'flex' || containerStyle.display === 'inline-flex')
12
- return false;*/
13
- return mode == 'drop' && event.ctrlKey;
14
- }
15
- isEnterableContainer(container) {
16
- if (DomConverter.IsSelfClosingElement(container.element.localName))
17
- return false;
18
- if (!container.isRootItem && container.element.shadowRoot && container.element.shadowRoot.querySelector('slot') == null)
19
- return false;
20
- return true;
21
- }
22
- canEnter(container, items) {
23
- if (!this.isEnterableContainer(container))
24
- return false;
25
- if (!items.every(x => !x.element.contains(container.element) && x !== container))
26
- return false;
27
- return true;
28
- }
29
- canLeave(container, items) {
30
- return true;
31
- }
32
- getElementOffset(container, designItem) {
33
- return container.instanceServiceContainer.designerCanvas.getNormalizedElementCoordinates(container.element);
34
- }
35
- calculateTrack(event, designerCanvas, startPoint, offsetInControl, newPoint, item) {
36
- let trackX = newPoint.x - startPoint.x;
37
- let trackY = newPoint.y - startPoint.y;
38
- if (!event.ctrlKey) {
39
- if (designerCanvas.alignOnGrid) {
40
- let p = getDesignItemCurrentPos(item, 'position');
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;
45
- }
46
- else if (designerCanvas.alignOnSnap) {
47
- let rect = item.element.getBoundingClientRect();
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 });
49
- if (newPos.x !== null) {
50
- trackX = newPos.x - Math.round(startPoint.x) + Math.round(offsetInControl.x);
51
- }
52
- else {
53
- trackX = Math.round(trackX);
54
- }
55
- if (newPos.y !== null) {
56
- trackY = newPos.y - Math.round(startPoint.y) + Math.round(offsetInControl.y);
57
- }
58
- else {
59
- trackY = Math.round(trackY);
60
- }
61
- }
62
- }
63
- return { x: trackX, y: trackY };
64
- }
65
- placePoint(event, designerCanvas, container, startPoint, offsetInControl, newPoint, items) {
66
- let trackX = newPoint.x;
67
- let trackY = newPoint.y;
68
- if (!event.ctrlKey) {
69
- if (designerCanvas.alignOnGrid) {
70
- trackX = Math.round(trackX / designerCanvas.gridSize) * designerCanvas.gridSize;
71
- trackY = Math.round(trackY / designerCanvas.gridSize) * designerCanvas.gridSize;
72
- }
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 });
75
- if (newPos.x !== null) {
76
- trackX = newPos.x;
77
- }
78
- else {
79
- trackX = Math.round(trackX);
80
- }
81
- if (newPos.y !== null) {
82
- trackY = newPos.y;
83
- }
84
- else {
85
- trackY = Math.round(trackY);
86
- }
87
- }
88
- }
89
- return { x: trackX, y: trackY };
90
- }
91
- startPlace(event, designerCanvas, container, startPoint, offsetInControl, newPoint, items) {
92
- }
93
- place(event, designerCanvas, container, startPoint, offsetInControl, newPoint, items) {
94
- //TODO: this should revert all undo actions while active
95
- //maybe a undo actions returns itself or an id so it could be changed?
96
- let track = this.calculateTrack(event, designerCanvas, startPoint, offsetInControl, newPoint, items[0]);
97
- if (event.shiftKey) {
98
- track = straightenLine({ x: 0, y: 0 }, track, true);
99
- }
100
- let filteredItems = filterChildPlaceItems(items);
101
- for (const designItem of filteredItems) {
102
- const canvas = designItem.instanceServiceContainer.designerCanvas.rootDesignItem.element;
103
- let originalElementAndAllAncestorsMultipliedMatrix = getResultingTransformationBetweenElementAndAllAncestors(designItem.parent.element, canvas, true);
104
- let transformMatrixParentTransformsCompensated = null;
105
- if (originalElementAndAllAncestorsMultipliedMatrix) {
106
- transformMatrixParentTransformsCompensated = new DOMPoint(track.x, track.y, 0, 0).matrixTransform(originalElementAndAllAncestorsMultipliedMatrix.inverse());
107
- }
108
- else {
109
- transformMatrixParentTransformsCompensated = new DOMPoint(track.x, track.y, 0, 0);
110
- }
111
- const translationMatrix = new DOMMatrix().translate(transformMatrixParentTransformsCompensated.x, transformMatrixParentTransformsCompensated.y);
112
- combineTransforms(designItem.element, designItem.getStyle('transform'), translationMatrix.toString());
113
- }
114
- }
115
- moveElements(designItems, position, absolute) {
116
- //TODO: Check if we set left or right
117
- //TODO: Use CSS units
118
- for (let d of designItems) {
119
- if (position.x)
120
- d.setStyle('left', parseInt(d.element.style.left) - position.x + 'px');
121
- if (position.y)
122
- d.setStyle('top', parseInt(d.element.style.top) - position.y + 'px');
123
- }
124
- designItems[0].instanceServiceContainer.designerCanvas.extensionManager.refreshExtensions(designItems);
125
- }
126
- enterContainer(container, items, mode) {
127
- let filterdItems = filterChildPlaceItems(items);
128
- for (let i of filterdItems) {
129
- if (mode == 'drop')
130
- i.setStyle('position', 'absolute');
131
- container.insertChild(i);
132
- if (i.lastContainerSize) {
133
- if (!i.hasStyle('width'))
134
- i.setStyle('width', i.lastContainerSize.width + 'px');
135
- if (!i.hasStyle('height'))
136
- i.setStyle('height', i.lastContainerSize.height + 'px');
137
- }
138
- }
139
- }
140
- leaveContainer(container, items) {
141
- }
142
- finishPlace(event, designerCanvas, container, startPoint, offsetInControl, newPoint, items) {
143
- let filterdItems = filterChildPlaceItems(items);
144
- for (const designItem of filterdItems) {
145
- let translation = extractTranslationFromDOMMatrix(new DOMMatrix(designItem.element.style.transform));
146
- const stylesMapOffset = extractTranslationFromDOMMatrix(new DOMMatrix(designItem.getStyle('transform') ?? ''));
147
- designItem.element.style.transform = designItem.getStyle('transform') ?? '';
148
- let track = { x: translation.x, y: translation.y };
149
- placeDesignItem(container, designItem, { x: track.x - stylesMapOffset.x, y: track.y - stylesMapOffset.y }, 'position');
150
- }
151
- for (const item of items) {
152
- designerCanvas.extensionManager.removeExtension(item, ExtensionType.Placement);
153
- }
154
- }
155
- }
@@ -1,54 +0,0 @@
1
- import { css, BaseCustomWebComponentConstructorAppend, html } from '@node-projects/base-custom-webcomponent';
2
- export var targetType;
3
- (function (targetType) {
4
- targetType["property"] = "property";
5
- targetType["style"] = "style";
6
- targetType["attribute"] = "attribute";
7
- targetType["event"] = "event";
8
- })(targetType || (targetType = {}));
9
- export var valueType;
10
- (function (valueType) {
11
- valueType["string"] = "string";
12
- valueType["number"] = "number";
13
- valueType["boolean"] = "boolean";
14
- })(valueType || (valueType = {}));
15
- export class BindingsEditor extends BaseCustomWebComponentConstructorAppend {
16
- static style = css `
17
- * { font-size: 16px; }
18
- .list {
19
- display: flex;
20
- flex-direction: column;
21
- gap: 5px;
22
- }
23
- `;
24
- static template = html `
25
- <div class="list" style="">
26
- <span>Expression</span>
27
- <div>
28
- <input style="width:100%;">
29
- <button>...</button>
30
- </div>
31
- <!--<span>Target</span>
32
- <select id="target">
33
- <option>Property</option>
34
- <option>Attribute</option>
35
- <option>Style</option>
36
- <option>Event</option>
37
- </select>-->
38
- <div>
39
- <input id="mode" type="checkbox"><label for="mode">Two Way</label>
40
- </div>
41
- <div>
42
- <input id="inverted" type="checkbox"><label for="inverted">Inverted</label>
43
- </div>
44
- <div>
45
- <input id="nullSafe" type="checkbox"><label for="nullSafe">Null Safe</label>
46
- </div>
47
- </div>
48
- `;
49
- constructor(targetType) {
50
- super();
51
- }
52
- }
53
- customElements.define('node-projects-bindings-editor', BindingsEditor);
54
- //# sourceMappingURL=BindingsEditor.js.map
@@ -1,31 +0,0 @@
1
- import { AbstractExtension } from './AbstractExtension.js';
2
- export class CanvasExtension extends AbstractExtension {
3
- constructor(extensionManager, designerView, extendedItem) {
4
- super(extensionManager, designerView, extendedItem);
5
- }
6
- extend() {
7
- this.refresh();
8
- }
9
- refresh() {
10
- const itemRect = this.designerCanvas.getNormalizedElementCoordinates(this.extendedItem.element);
11
- const computedStyle = getComputedStyle(this.extendedItem.element);
12
- if (computedStyle.margin !== '0px') {
13
- const left = Number.parseFloat(computedStyle.marginLeft.replace('px', ''));
14
- const top = Number.parseFloat(computedStyle.marginTop.replace('px', ''));
15
- const right = Number.parseFloat(computedStyle.marginRight.replace('px', ''));
16
- const bottom = Number.parseFloat(computedStyle.marginBottom.replace('px', ''));
17
- if (!isNaN(left) && !isNaN(top) && !isNaN(right) && !isNaN(bottom)) {
18
- if (this._valuesHaveChanges(left, top, right, bottom, itemRect.x, itemRect.y, itemRect.width, itemRect.height)) {
19
- this._removeAllOverlays();
20
- this._drawRect(itemRect.x - left, itemRect.y - top, left + itemRect.width + right, top, 'svg-margin');
21
- this._drawRect(itemRect.x - left, itemRect.y, left, itemRect.height, 'svg-margin');
22
- this._drawRect(itemRect.x + itemRect.width, itemRect.y, right, itemRect.height, 'svg-margin');
23
- this._drawRect(itemRect.x - left, itemRect.y + itemRect.height, left + itemRect.width + right, bottom, 'svg-margin');
24
- }
25
- }
26
- }
27
- }
28
- dispose() {
29
- this._removeAllOverlays();
30
- }
31
- }
@@ -1,16 +0,0 @@
1
- import { CanvasExtension } from './CanvasExtension.js';
2
- import { css } from "@node-projects/base-custom-webcomponent";
3
- import { NodeType } from '../../../item/NodeType.js';
4
- export class CanvasExtensionProvider {
5
- shouldExtend(extensionManager, designerView, designItem) {
6
- if (designItem.nodeType == NodeType.Element)
7
- return true;
8
- return false;
9
- }
10
- getExtension(extensionManager, designerView, designItem) {
11
- return new CanvasExtension(extensionManager, designerView, designItem);
12
- }
13
- style = css `
14
- .svg-margin { fill: #ff944766; }
15
- `;
16
- }
@@ -1,32 +0,0 @@
1
- import { AbstractExtension } from './AbstractExtension.js';
2
- import { OverlayLayer } from './OverlayLayer.js';
3
- export class MarginExtension extends AbstractExtension {
4
- constructor(extensionManager, designerView, extendedItem) {
5
- super(extensionManager, designerView, extendedItem);
6
- }
7
- extend() {
8
- this.refresh();
9
- }
10
- refresh() {
11
- const itemRect = this.designerCanvas.getNormalizedElementCoordinates(this.extendedItem.element);
12
- const computedStyle = getComputedStyle(this.extendedItem.element);
13
- if (computedStyle.margin !== '0px') {
14
- const left = Number.parseFloat(computedStyle.marginLeft.replace('px', ''));
15
- const top = Number.parseFloat(computedStyle.marginTop.replace('px', ''));
16
- const right = Number.parseFloat(computedStyle.marginRight.replace('px', ''));
17
- const bottom = Number.parseFloat(computedStyle.marginBottom.replace('px', ''));
18
- if (!isNaN(left) && !isNaN(top) && !isNaN(right) && !isNaN(bottom)) {
19
- if (this._valuesHaveChanges(left, top, right, bottom, itemRect.x, itemRect.y, itemRect.width, itemRect.height)) {
20
- this._removeAllOverlays();
21
- this._drawRect(itemRect.x - left, itemRect.y - top, left + itemRect.width + right, top, 'svg-margin', null, OverlayLayer.Background);
22
- this._drawRect(itemRect.x - left, itemRect.y, left, itemRect.height, 'svg-margin', null, OverlayLayer.Background);
23
- this._drawRect(itemRect.x + itemRect.width, itemRect.y, right, itemRect.height, 'svg-margin', null, OverlayLayer.Background);
24
- this._drawRect(itemRect.x - left, itemRect.y + itemRect.height, left + itemRect.width + right, bottom, 'svg-margin', null, OverlayLayer.Background);
25
- }
26
- }
27
- }
28
- }
29
- dispose() {
30
- this._removeAllOverlays();
31
- }
32
- }
@@ -1,16 +0,0 @@
1
- import { MarginExtension } from './MarginExtension.js';
2
- import { css } from "@node-projects/base-custom-webcomponent";
3
- import { NodeType } from '../../../item/NodeType.js';
4
- export class MarginExtensionProvider {
5
- shouldExtend(extensionManager, designerView, designItem) {
6
- if (designItem.nodeType == NodeType.Element)
7
- return true;
8
- return false;
9
- }
10
- getExtension(extensionManager, designerView, designItem) {
11
- return new MarginExtension(extensionManager, designerView, designItem);
12
- }
13
- style = css `
14
- .svg-margin { fill: #ff944766; }
15
- `;
16
- }
@@ -1,46 +0,0 @@
1
- import { ContextMenu } from "../../../../helper/contextMenu/ContextMenu.js";
2
- export class AbstractDesignViewConfigButton {
3
- settingName;
4
- content;
5
- tooltp;
6
- contextmenu;
7
- constructor(settingName, content, tooltip, contextmenu) {
8
- this.settingName = settingName;
9
- this.content = content;
10
- this.tooltp = tooltip;
11
- this.contextmenu = contextmenu;
12
- }
13
- provideButtons(designerView, designerCanvas) {
14
- const btn = document.createElement('div');
15
- if (typeof this.content == 'string')
16
- btn.innerHTML = this.content;
17
- else
18
- btn.appendChild(this.content);
19
- btn.title = this.tooltp;
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
- });
27
- const extensionOptions = designerCanvas.instanceServiceContainer.designContext.extensionOptions;
28
- if (extensionOptions[this.settingName] !== false)
29
- btn.classList.add('selected');
30
- btn.onclick = () => {
31
- const val = extensionOptions[this.settingName];
32
- extensionOptions[this.settingName] = val === false ? true : false;
33
- if (extensionOptions[this.settingName] !== false)
34
- btn.classList.add('selected');
35
- else
36
- btn.classList.remove('selected');
37
- };
38
- btn.oncontextmenu = (e) => {
39
- e.preventDefault();
40
- if (this.contextmenu) {
41
- ContextMenu.show(this.contextmenu, e);
42
- }
43
- };
44
- return [btn];
45
- }
46
- }
@@ -1,7 +0,0 @@
1
- import { gridExtensionShowOverlayOptionName } from "../grid/DisplayGridExtensionProvider.js";
2
- import { AbstractDesignViewConfigButton } from "./AbstractDesignViewConfigButton.js";
3
- export class GridExtensionDesignViewConfigButtons extends AbstractDesignViewConfigButton {
4
- constructor() {
5
- super(gridExtensionShowOverlayOptionName, "G", "show grid overlay");
6
- }
7
- }
@@ -1,46 +0,0 @@
1
- import { ContextMenu } from "../../../../helper/contextMenu/ContextMenu.js";
2
- export class AbstractDesignViewConfigButton {
3
- settingName;
4
- content;
5
- tooltp;
6
- contextmenu;
7
- constructor(settingName, content, tooltip, contextmenu) {
8
- this.settingName = settingName;
9
- this.content = content;
10
- this.tooltp = tooltip;
11
- this.contextmenu = contextmenu;
12
- }
13
- provideButtons(designerView, designerCanvas) {
14
- const btn = document.createElement('div');
15
- if (typeof this.content == 'string')
16
- btn.innerHTML = this.content;
17
- else
18
- btn.appendChild(this.content);
19
- btn.title = this.tooltp;
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
- });
27
- const extensionOptions = designerCanvas.instanceServiceContainer.designContext.extensionOptions;
28
- if (extensionOptions[this.settingName] !== false)
29
- btn.classList.add('selected');
30
- btn.onclick = () => {
31
- const val = extensionOptions[this.settingName];
32
- extensionOptions[this.settingName] = val === false ? true : false;
33
- if (extensionOptions[this.settingName] !== false)
34
- btn.classList.add('selected');
35
- else
36
- btn.classList.remove('selected');
37
- };
38
- btn.oncontextmenu = (e) => {
39
- e.preventDefault();
40
- if (this.contextmenu) {
41
- ContextMenu.show(this.contextmenu, e);
42
- }
43
- };
44
- return [btn];
45
- }
46
- }