@node-projects/web-component-designer 0.1.247 → 0.1.248

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 (34) hide show
  1. package/dist/elements/services/DefaultServiceBootstrap.ts.BASE.d.ts +3 -0
  2. package/dist/elements/services/DefaultServiceBootstrap.ts.BASE.js +216 -0
  3. package/dist/elements/services/DefaultServiceBootstrap.ts.LOCAL.d.ts +3 -0
  4. package/dist/elements/services/DefaultServiceBootstrap.ts.LOCAL.js +220 -0
  5. package/dist/elements/services/DefaultServiceBootstrap.ts.REMOTE.d.ts +3 -0
  6. package/dist/elements/services/DefaultServiceBootstrap.ts.REMOTE.js +220 -0
  7. package/dist/elements/services/designItemService/DesignItemService copy.d.ts +7 -0
  8. package/dist/elements/services/designItemService/DesignItemService copy.js +6 -0
  9. package/dist/elements/services/placementService/AbsolutePlacementService copy.d.ts +19 -0
  10. package/dist/elements/services/placementService/AbsolutePlacementService copy.js +155 -0
  11. package/dist/elements/services/propertiesService/IProperty.d.ts +1 -0
  12. package/dist/elements/services/propertiesService/services/AbstractPolymerLikePropertiesService.js +13 -8
  13. package/dist/elements/services/propertiesService/services/AbstractPolymerLikePropertiesService.js.map +1 -1
  14. package/dist/elements/widgets/bindings/BindingsEditor.d.ts +17 -0
  15. package/dist/elements/widgets/bindings/BindingsEditor.js +54 -0
  16. package/dist/elements/widgets/bindings/BindingsEditor.js.map +1 -0
  17. package/dist/elements/widgets/designerView/DomConverter.d.ts +1 -1
  18. package/dist/elements/widgets/designerView/extensions/CanvasExtension.d.ts +10 -0
  19. package/dist/elements/widgets/designerView/extensions/CanvasExtension.js +31 -0
  20. package/dist/elements/widgets/designerView/extensions/CanvasExtensionProvider.d.ts +10 -0
  21. package/dist/elements/widgets/designerView/extensions/CanvasExtensionProvider.js +16 -0
  22. package/dist/elements/widgets/designerView/extensions/MarginExtension copy.d.ts +10 -0
  23. package/dist/elements/widgets/designerView/extensions/MarginExtension copy.js +32 -0
  24. package/dist/elements/widgets/designerView/extensions/MarginExtensionProvider copy.d.ts +10 -0
  25. package/dist/elements/widgets/designerView/extensions/MarginExtensionProvider copy.js +16 -0
  26. package/dist/elements/widgets/designerView/extensions/buttons/AbstractDesignViewConfigButton copy.d.ts +12 -0
  27. package/dist/elements/widgets/designerView/extensions/buttons/AbstractDesignViewConfigButton copy.js +46 -0
  28. package/dist/elements/widgets/designerView/extensions/buttons/GridExtensionDesignViewConfigButtons copy.d.ts +4 -0
  29. package/dist/elements/widgets/designerView/extensions/buttons/GridExtensionDesignViewConfigButtons copy.js +7 -0
  30. package/dist/elements/widgets/designerView/extensions/buttons/OptionsConfigButton.d.ts +12 -0
  31. package/dist/elements/widgets/designerView/extensions/buttons/OptionsConfigButton.js +46 -0
  32. package/dist/elements/widgets/propertyGrid/PropertyGridPropertyList.js +1 -1
  33. package/dist/elements/widgets/propertyGrid/PropertyGridPropertyList.js.map +1 -1
  34. package/package.json +1 -1
@@ -0,0 +1,220 @@
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;
@@ -0,0 +1,7 @@
1
+ import { IDesignItem } from "../../item/IDesignItem.js";
2
+ import { InstanceServiceContainer } from "../InstanceServiceContainer.js";
3
+ import { ServiceContainer } from "../ServiceContainer.js";
4
+ import { IDesignItemService } from "./IDesignItemService.js";
5
+ export declare class DesignItemService implements IDesignItemService {
6
+ createDesignItem(node: Node, parsedNode: any, serviceContainer: ServiceContainer, instanceServiceContainer: InstanceServiceContainer): IDesignItem;
7
+ }
@@ -0,0 +1,6 @@
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
+ }
@@ -0,0 +1,19 @@
1
+ import type { IPoint } from '../../../interfaces/IPoint.js';
2
+ import type { IPlacementService } from './IPlacementService.js';
3
+ import type { IDesignItem } from '../../item/IDesignItem.js';
4
+ import { IDesignerCanvas } from '../../widgets/designerView/IDesignerCanvas.js';
5
+ export declare class AbsolutePlacementService implements IPlacementService {
6
+ serviceForContainer(container: IDesignItem, containerStyle: CSSStyleDeclaration, mode: 'normal' | 'drop', item?: IDesignItem, event?: MouseEvent): boolean;
7
+ isEnterableContainer(container: IDesignItem): boolean;
8
+ canEnter(container: IDesignItem, items: IDesignItem[]): boolean;
9
+ canLeave(container: IDesignItem, items: IDesignItem[]): boolean;
10
+ getElementOffset(container: IDesignItem, designItem?: IDesignItem): IPoint;
11
+ private calculateTrack;
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
+ moveElements(designItems: IDesignItem[], position: IPoint, absolute: boolean): void;
16
+ enterContainer(container: IDesignItem, items: IDesignItem[], mode: 'normal' | 'drop'): void;
17
+ leaveContainer(container: IDesignItem, items: IDesignItem[]): void;
18
+ finishPlace(event: MouseEvent, designerCanvas: IDesignerCanvas, container: IDesignItem, startPoint: IPoint, offsetInControl: IPoint, newPoint: IPoint, items: IDesignItem[]): void;
19
+ }
@@ -0,0 +1,155 @@
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
+ }
@@ -18,5 +18,6 @@ export interface IProperty {
18
18
  value?: any;
19
19
  service: IPropertiesService;
20
20
  defaultValue?: any;
21
+ example?: string;
21
22
  propertyType: PropertyType;
22
23
  }
@@ -16,34 +16,39 @@ export class AbstractPolymerLikePropertiesService extends AbstractPropertiesServ
16
16
  for (const name in list) {
17
17
  const polymerProperty = list[name];
18
18
  let type = polymerProperty;
19
- if (polymerProperty.type)
19
+ let description = null;
20
+ let example = null;
21
+ if (polymerProperty.type) {
20
22
  type = polymerProperty.type;
23
+ description = polymerProperty.description;
24
+ example = polymerProperty.example;
25
+ }
21
26
  if (type === String) {
22
- let property = { name: name, type: "string", service: this, propertyType: PropertyType.propertyAndAttribute };
27
+ let property = { name: name, type: "string", service: this, propertyType: PropertyType.propertyAndAttribute, description: description, example: example };
23
28
  properties.push(property);
24
29
  }
25
30
  else if (type === Object) {
26
- let property = { name: name, type: "object", service: this, propertyType: PropertyType.propertyAndAttribute };
31
+ let property = { name: name, type: "object", service: this, propertyType: PropertyType.propertyAndAttribute, description: description, example: example };
27
32
  properties.push(property);
28
33
  }
29
34
  else if (type === Number) {
30
- let property = { name: name, type: "number", service: this, propertyType: PropertyType.propertyAndAttribute };
35
+ let property = { name: name, type: "number", service: this, propertyType: PropertyType.propertyAndAttribute, description: description, example: example };
31
36
  properties.push(property);
32
37
  }
33
38
  else if (type === Date) {
34
- let property = { name: name, type: "date", service: this, propertyType: PropertyType.propertyAndAttribute };
39
+ let property = { name: name, type: "date", service: this, propertyType: PropertyType.propertyAndAttribute, description: description, example: example };
35
40
  properties.push(property);
36
41
  }
37
42
  else if (type === Boolean) {
38
- let property = { name: name, type: "boolean", service: this, propertyType: PropertyType.propertyAndAttribute };
43
+ let property = { name: name, type: "boolean", service: this, propertyType: PropertyType.propertyAndAttribute, description: description, example: example };
39
44
  properties.push(property);
40
45
  }
41
46
  else if (PropertiesHelper.isTypescriptEnum(type)) {
42
- let property = { name: name, type: "enum", enumValues: PropertiesHelper.getTypescriptEnumEntries(type), service: this, propertyType: PropertyType.propertyAndAttribute };
47
+ let property = { name: name, type: "enum", enumValues: PropertiesHelper.getTypescriptEnumEntries(type), service: this, propertyType: PropertyType.propertyAndAttribute, description: description, example: example };
43
48
  properties.push(property);
44
49
  }
45
50
  else {
46
- let property = { name: name, type: "string", service: this, propertyType: PropertyType.propertyAndAttribute };
51
+ let property = { name: name, type: "string", service: this, propertyType: PropertyType.propertyAndAttribute, description: description, example: example };
47
52
  properties.push(property);
48
53
  }
49
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractPolymerLikePropertiesService.js","sourceRoot":"","sources":["../../../../../src/elements/services/propertiesService/services/AbstractPolymerLikePropertiesService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbstractPolymerLikePropertiesService.js","sourceRoot":"","sources":["../../../../../src/elements/services/propertiesService/services/AbstractPolymerLikePropertiesService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { BaseCustomWebComponentConstructorAppend } from '@node-projects/base-custom-webcomponent';
2
+ export declare enum targetType {
3
+ 'property' = "property",
4
+ 'style' = "style",
5
+ 'attribute' = "attribute",
6
+ 'event' = "event"
7
+ }
8
+ export declare enum valueType {
9
+ 'string' = "string",
10
+ 'number' = "number",
11
+ 'boolean' = "boolean"
12
+ }
13
+ export declare class BindingsEditor extends BaseCustomWebComponentConstructorAppend {
14
+ static readonly style: CSSStyleSheet;
15
+ static readonly template: HTMLTemplateElement;
16
+ constructor(targetType: targetType);
17
+ }
@@ -0,0 +1,54 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BindingsEditor.js","sourceRoot":"","sources":["../../../../src/elements/widgets/bindings/BindingsEditor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,uCAAuC,EAAE,IAAI,EAAE,MAAM,yCAAyC,CAAC;AAE7G,MAAM,CAAN,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,mCAAuB,CAAA;IACvB,6BAAiB,CAAA;IACjB,qCAAyB,CAAA;IACzB,6BAAiB,CAAA;AACnB,CAAC,EALW,UAAU,KAAV,UAAU,QAKrB;AAED,MAAM,CAAN,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,8BAAmB,CAAA;IACnB,8BAAmB,CAAA;IACnB,gCAAqB,CAAA;AACvB,CAAC,EAJW,SAAS,KAAT,SAAS,QAIpB;AAED,MAAM,OAAO,cAAe,SAAQ,uCAAuC;IAEzE,MAAM,CAAmB,KAAK,GAAG,GAAG,CAAA;;;;;;;KAOjC,CAAC;IAEJ,MAAM,CAAmB,QAAQ,GAAG,IAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBvC,CAAC;IAEF,YAAY,UAAsB;QAChC,KAAK,EAAE,CAAC;IACV,CAAC;;AAMH,cAAc,CAAC,MAAM,CAAC,+BAA+B,EAAE,cAAc,CAAC,CAAC"}
@@ -2,6 +2,6 @@ import { IDesignItem } from "../../item/IDesignItem.js";
2
2
  export declare class DomConverter {
3
3
  static normalizeAttributeValue(value: string | number, useSingleQuotes?: boolean): string;
4
4
  static normalizeContentValue(value: string): string;
5
- static IsSelfClosingElement(tag: string): tag is "link" | "img" | "area" | "base" | "br" | "col" | "embed" | "hr" | "input" | "keygen" | "meta" | "param" | "source" | "track" | "wbr";
5
+ static IsSelfClosingElement(tag: string): tag is "link" | "img" | "input" | "br" | "area" | "base" | "col" | "embed" | "hr" | "keygen" | "meta" | "param" | "source" | "track" | "wbr";
6
6
  static ConvertToString(designItems: IDesignItem[], beautifyOutput?: boolean, updatePositions?: boolean): string;
7
7
  }
@@ -0,0 +1,10 @@
1
+ import { IDesignItem } from '../../../item/IDesignItem.js';
2
+ import { IDesignerCanvas } from '../IDesignerCanvas.js';
3
+ import { AbstractExtension } from './AbstractExtension.js';
4
+ import { IExtensionManager } from './IExtensionManger.js';
5
+ export declare class CanvasExtension extends AbstractExtension {
6
+ constructor(extensionManager: IExtensionManager, designerView: IDesignerCanvas, extendedItem: IDesignItem);
7
+ extend(): void;
8
+ refresh(): void;
9
+ dispose(): void;
10
+ }
@@ -0,0 +1,31 @@
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
+ }