@node-projects/web-component-designer 0.0.194 → 0.0.197
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.
- package/dist/elements/services/DefaultServiceBootstrap.js +7 -5
- package/dist/elements/widgets/designerView/IDesignerCanvas.d.ts +1 -1
- package/dist/elements/widgets/designerView/designerCanvas.d.ts +1 -1
- package/dist/elements/widgets/designerView/designerCanvas.js +10 -9
- package/dist/elements/widgets/designerView/extensions/ExtensionManager.d.ts +6 -6
- package/dist/elements/widgets/designerView/extensions/ExtensionManager.js +29 -29
- package/dist/elements/widgets/designerView/extensions/GrayOutDragOverContainerExtensionProvider.d.ts +1 -1
- package/dist/elements/widgets/designerView/extensions/GrayOutDragOverContainerExtensionProvider.js +1 -1
- package/dist/elements/widgets/designerView/extensions/IDesignerExtension.d.ts +2 -2
- package/dist/elements/widgets/designerView/extensions/IDesignerExtensionProvider.d.ts +1 -1
- package/dist/elements/widgets/designerView/extensions/IExtensionManger.d.ts +6 -6
- package/dist/elements/widgets/designerView/extensions/buttons/GridExtensionDesignViewConfigButtons.js +1 -1
- package/dist/elements/widgets/designerView/extensions/grid/DisplayGridExtension.d.ts +14 -0
- package/dist/elements/widgets/designerView/extensions/grid/DisplayGridExtension.js +53 -0
- package/dist/elements/widgets/designerView/extensions/grid/DisplayGridExtensionProvider.d.ts +11 -0
- package/dist/elements/widgets/designerView/extensions/grid/DisplayGridExtensionProvider.js +23 -0
- package/dist/elements/widgets/designerView/extensions/grid/EditGridExtension.d.ts +51 -0
- package/dist/elements/widgets/designerView/extensions/grid/EditGridExtension.js +346 -0
- package/dist/elements/widgets/designerView/extensions/grid/EditGridExtensionProvider.d.ts +10 -0
- package/dist/elements/widgets/designerView/extensions/grid/EditGridExtensionProvider.js +22 -0
- package/dist/elements/widgets/designerView/extensions/grid/GridExtension copy.d.ts +51 -0
- package/dist/elements/widgets/designerView/extensions/grid/GridExtension copy.js +346 -0
- package/dist/elements/widgets/designerView/extensions/grid/GridExtension.d.ts +51 -0
- package/dist/elements/widgets/designerView/extensions/grid/GridExtension.js +346 -0
- package/dist/elements/widgets/designerView/extensions/grid/GridExtensionProvider copy.d.ts +11 -0
- package/dist/elements/widgets/designerView/extensions/grid/GridExtensionProvider copy.js +22 -0
- package/dist/elements/widgets/designerView/extensions/grid/GridExtensionProvider.d.ts +11 -0
- package/dist/elements/widgets/designerView/extensions/grid/GridExtensionProvider.js +22 -0
- package/dist/elements/widgets/designerView/extensions/logic/ApplyFirstExtensionProvider.d.ts +12 -0
- package/dist/elements/widgets/designerView/extensions/logic/ApplyFirstExtensionProvider.js +17 -0
- package/dist/elements/widgets/designerView/extensions/logic/ApplyFirstMachingExtensionProvider.d.ts +13 -0
- package/dist/elements/widgets/designerView/extensions/logic/ApplyFirstMachingExtensionProvider.js +28 -0
- package/dist/elements/widgets/designerView/extensions/logic/DisplayGridExtensionProvider.d.ts +11 -0
- package/dist/elements/widgets/designerView/extensions/logic/DisplayGridExtensionProvider.js +23 -0
- package/dist/elements/widgets/designerView/extensions/logic/OrCombineContainerProvider.d.ts +12 -0
- package/dist/elements/widgets/designerView/extensions/logic/OrCombineContainerProvider.js +17 -0
- package/dist/elements/widgets/designerView/overlayLayerView.js +4 -1
- package/dist/elements/widgets/designerView/tools/PointerTool.js +7 -7
- package/dist/elements/widgets/designerView/tools/TextTool.js +1 -1
- package/dist/elements/widgets/treeView/treeViewExtended.js +2 -2
- package/dist/index.d.ts +5 -2
- package/dist/index.js +5 -2
- package/package.json +1 -1
|
@@ -11,7 +11,6 @@ import { DefaultHtmlParserService } from './htmlParserService/DefaultHtmlParserS
|
|
|
11
11
|
import { Lit2PropertiesService } from './propertiesService/services/Lit2PropertiesService.js';
|
|
12
12
|
import { ExtensionType } from '../widgets/designerView/extensions/ExtensionType.js';
|
|
13
13
|
import { ElementDragTitleExtensionProvider } from '../widgets/designerView/extensions/ElementDragTitleExtensionProvider.js';
|
|
14
|
-
import { GridExtensionProvider } from '../widgets/designerView/extensions/GridExtensionProvider.js';
|
|
15
14
|
import { TransformOriginExtensionProvider } from '../widgets/designerView/extensions/TransformOriginExtensionProvider.js';
|
|
16
15
|
import { CanvasExtensionProvider } from '../widgets/designerView/extensions/CanvasExtensionProvider.js';
|
|
17
16
|
import { PositionExtensionProvider } from '../widgets/designerView/extensions/PositionExtensionProvider.js';
|
|
@@ -77,6 +76,9 @@ import { SelectionService } from './selectionService/SelectionService.js';
|
|
|
77
76
|
import { ContentService } from './contentService/ContentService.js';
|
|
78
77
|
import { StylesheetServiceDesignViewConfigButtons } from '../widgets/designerView/extensions/buttons/StylesheetServiceDesignViewConfigButtons.js';
|
|
79
78
|
import { JumpToElementContextMenu } from '../widgets/designerView/extensions/contextMenu/JumpToElementContextMenu.js';
|
|
79
|
+
import { EditGridExtensionProvider } from '../widgets/designerView/extensions/grid/EditGridExtensionProvider.js';
|
|
80
|
+
import { DisplayGridExtensionProvider } from '../widgets/designerView/extensions/grid/DisplayGridExtensionProvider.js';
|
|
81
|
+
import { ApplyFirstMachingExtensionProvider } from '../widgets/designerView/extensions/logic/ApplyFirstMachingExtensionProvider.js';
|
|
80
82
|
export function createDefaultServiceContainer() {
|
|
81
83
|
let serviceContainer = new ServiceContainer();
|
|
82
84
|
serviceContainer.register("propertyService", new PolymerPropertiesService());
|
|
@@ -110,7 +112,7 @@ export function createDefaultServiceContainer() {
|
|
|
110
112
|
]);
|
|
111
113
|
serviceContainer.designerExtensions.set(ExtensionType.PrimarySelection, [
|
|
112
114
|
new ElementDragTitleExtensionProvider(),
|
|
113
|
-
new
|
|
115
|
+
new EditGridExtensionProvider(),
|
|
114
116
|
new FlexboxExtensionProvider(),
|
|
115
117
|
new TransformOriginExtensionProvider(),
|
|
116
118
|
new CanvasExtensionProvider(),
|
|
@@ -126,7 +128,7 @@ export function createDefaultServiceContainer() {
|
|
|
126
128
|
new SelectionDefaultExtensionProvider()
|
|
127
129
|
]);
|
|
128
130
|
serviceContainer.designerExtensions.set(ExtensionType.PrimarySelectionContainer, [
|
|
129
|
-
new
|
|
131
|
+
new EditGridExtensionProvider(),
|
|
130
132
|
new FlexboxExtensionProvider()
|
|
131
133
|
]);
|
|
132
134
|
serviceContainer.designerExtensions.set(ExtensionType.MouseOver, [
|
|
@@ -139,11 +141,11 @@ export function createDefaultServiceContainer() {
|
|
|
139
141
|
new GrayOutExtensionProvider()
|
|
140
142
|
]);
|
|
141
143
|
serviceContainer.designerExtensions.set(ExtensionType.ContainerDragOver, [
|
|
142
|
-
new GrayOutDragOverContainerExtensionProvider(),
|
|
144
|
+
new ApplyFirstMachingExtensionProvider(new DisplayGridExtensionProvider(), new GrayOutDragOverContainerExtensionProvider()),
|
|
143
145
|
new AltToEnterContainerExtensionProvider()
|
|
144
146
|
]);
|
|
145
147
|
serviceContainer.designerExtensions.set(ExtensionType.ContainerExternalDragOver, [
|
|
146
|
-
new GrayOutDragOverContainerExtensionProvider()
|
|
148
|
+
new ApplyFirstMachingExtensionProvider(new DisplayGridExtensionProvider(), new GrayOutDragOverContainerExtensionProvider()),
|
|
147
149
|
]);
|
|
148
150
|
serviceContainer.designerExtensions.set(ExtensionType.Doubleclick, [
|
|
149
151
|
new EditTextExtensionProvider()
|
|
@@ -48,7 +48,7 @@ export interface IDesignerCanvas extends IPlacementView, IUiCommandHandler {
|
|
|
48
48
|
getElementAtPoint(point: IPoint, ignoreElementCallback?: (element: HTMLElement) => boolean): any;
|
|
49
49
|
elementFromPoint(x: number, y: number): Element;
|
|
50
50
|
elementsFromPoint(x: number, y: number): Element[];
|
|
51
|
-
showHoverExtension(element: Element): any;
|
|
51
|
+
showHoverExtension(element: Element, event: Event): any;
|
|
52
52
|
zoomTowardsPoint(point: IPoint, scalechange: number): void;
|
|
53
53
|
zoomPoint(canvasPoint: IPoint, newZoom: number): void;
|
|
54
54
|
zoomOntoRectangle(startPoint: IPoint, endPoint: IPoint): void;
|
|
@@ -113,7 +113,7 @@ export declare class DesignerCanvas extends BaseCustomWebComponentLazyAppend imp
|
|
|
113
113
|
elementFromPoint(x: number, y: number): Element;
|
|
114
114
|
elementsFromPoint(x: number, y: number): Element[];
|
|
115
115
|
getElementAtPoint(point: IPoint, ignoreElementCallback?: (element: HTMLElement) => boolean): HTMLElement;
|
|
116
|
-
showHoverExtension(element: Element): void;
|
|
116
|
+
showHoverExtension(element: Element, event: Event): void;
|
|
117
117
|
private _pointerEventHandler;
|
|
118
118
|
captureActiveTool(tool: ITool): void;
|
|
119
119
|
releaseActiveTool(): void;
|
|
@@ -609,9 +609,12 @@ export class DesignerCanvas extends BaseCustomWebComponentLazyAppend {
|
|
|
609
609
|
let [newContainer] = this._getPossibleContainerForDrop(event);
|
|
610
610
|
if (this._dragOverExtensionItem != newContainer) {
|
|
611
611
|
this.extensionManager.removeExtension(this._dragOverExtensionItem, ExtensionType.ContainerExternalDragOver);
|
|
612
|
-
this.extensionManager.applyExtension(newContainer, ExtensionType.ContainerExternalDragOver);
|
|
612
|
+
this.extensionManager.applyExtension(newContainer, ExtensionType.ContainerExternalDragOver, event);
|
|
613
613
|
this._dragOverExtensionItem = newContainer;
|
|
614
614
|
}
|
|
615
|
+
else {
|
|
616
|
+
this.extensionManager.refreshExtension(newContainer, ExtensionType.ContainerExternalDragOver, event);
|
|
617
|
+
}
|
|
615
618
|
}
|
|
616
619
|
}
|
|
617
620
|
}
|
|
@@ -677,19 +680,17 @@ export class DesignerCanvas extends BaseCustomWebComponentLazyAppend {
|
|
|
677
680
|
let [newContainer] = this._getPossibleContainerForDrop(event);
|
|
678
681
|
if (!newContainer)
|
|
679
682
|
newContainer = this.rootDesignItem;
|
|
680
|
-
let pos = this.getNormalizedElementCoordinates(newContainer.element);
|
|
681
683
|
this._fillCalculationrects();
|
|
682
|
-
const position = this.getNormalizedEventCoordinates(event);
|
|
683
684
|
//TODO : we need to use container service for adding to element, so also grid and flexbox work correct
|
|
684
685
|
const transferData = event.dataTransfer.getData(dragDropFormatNameElementDefinition);
|
|
685
686
|
const elementDefinition = JSON.parse(transferData);
|
|
686
687
|
const di = await this.serviceContainer.forSomeServicesTillResult("instanceService", (service) => service.getElement(elementDefinition, this.serviceContainer, this.instanceServiceContainer));
|
|
687
688
|
const grp = di.openGroup("Insert of <" + di.name + ">");
|
|
688
689
|
di.setStyle('position', 'absolute');
|
|
689
|
-
di.setStyle('left', (position.x - pos.x) + 'px');
|
|
690
|
-
di.setStyle('top', (position.y - pos.y) + 'px');
|
|
691
690
|
const containerService = this.serviceContainer.getLastServiceWhere('containerService', x => x.serviceForContainer(newContainer, getComputedStyle(newContainer.element)));
|
|
692
691
|
containerService.enterContainer(newContainer, [di]);
|
|
692
|
+
containerService.place(event, this, newContainer, { x: 0, y: 0 }, { x: 0, y: 0 }, this.getNormalizedEventCoordinates(event), [di]);
|
|
693
|
+
containerService.finishPlace(event, this, newContainer, { x: 0, y: 0 }, { x: 0, y: 0 }, this.getNormalizedEventCoordinates(event), [di]);
|
|
693
694
|
this.instanceServiceContainer.undoService.execute(new InsertAction(newContainer, newContainer.childCount, di));
|
|
694
695
|
requestAnimationFrame(() => {
|
|
695
696
|
this.instanceServiceContainer.selectionService.setSelectedElements([di]);
|
|
@@ -712,7 +713,7 @@ export class DesignerCanvas extends BaseCustomWebComponentLazyAppend {
|
|
|
712
713
|
}
|
|
713
714
|
_onDblClick(event) {
|
|
714
715
|
event.preventDefault();
|
|
715
|
-
this.extensionManager.applyExtension(this.instanceServiceContainer.selectionService.primarySelection, ExtensionType.Doubleclick);
|
|
716
|
+
this.extensionManager.applyExtension(this.instanceServiceContainer.selectionService.primarySelection, ExtensionType.Doubleclick, event);
|
|
716
717
|
}
|
|
717
718
|
onKeyUp(event) {
|
|
718
719
|
if (event.composedPath().indexOf(this.eatEvents) >= 0)
|
|
@@ -885,13 +886,13 @@ export class DesignerCanvas extends BaseCustomWebComponentLazyAppend {
|
|
|
885
886
|
}
|
|
886
887
|
return currentElement;
|
|
887
888
|
}
|
|
888
|
-
showHoverExtension(element) {
|
|
889
|
+
showHoverExtension(element, event) {
|
|
889
890
|
const currentDesignItem = DesignItem.GetOrCreateDesignItem(element, this.serviceContainer, this.instanceServiceContainer);
|
|
890
891
|
if (this._lastHoverDesignItem != currentDesignItem) {
|
|
891
892
|
if (this._lastHoverDesignItem)
|
|
892
893
|
this.extensionManager.removeExtension(this._lastHoverDesignItem, ExtensionType.MouseOver);
|
|
893
894
|
if (currentDesignItem && currentDesignItem != this.rootDesignItem && DomHelper.getHost(element.parentNode) !== this.overlayLayer)
|
|
894
|
-
this.extensionManager.applyExtension(currentDesignItem, ExtensionType.MouseOver);
|
|
895
|
+
this.extensionManager.applyExtension(currentDesignItem, ExtensionType.MouseOver, event);
|
|
895
896
|
this._lastHoverDesignItem = currentDesignItem;
|
|
896
897
|
}
|
|
897
898
|
}
|
|
@@ -930,7 +931,7 @@ export class DesignerCanvas extends BaseCustomWebComponentLazyAppend {
|
|
|
930
931
|
}
|
|
931
932
|
this.clickOverlay.style.cursor = this._canvas.style.cursor;
|
|
932
933
|
const currentDesignItem = DesignItem.GetOrCreateDesignItem(currentElement, this.serviceContainer, this.instanceServiceContainer);
|
|
933
|
-
this.showHoverExtension(currentDesignItem.element);
|
|
934
|
+
this.showHoverExtension(currentDesignItem.element, event);
|
|
934
935
|
//TODO: needed ??
|
|
935
936
|
if (currentElement && DomHelper.getHost(currentElement.parentNode) === this.overlayLayer) {
|
|
936
937
|
if (this.eatEvents)
|
|
@@ -9,13 +9,13 @@ export declare class ExtensionManager implements IExtensionManager {
|
|
|
9
9
|
constructor(designerCanvas: IDesignerCanvas);
|
|
10
10
|
private _contentChanged;
|
|
11
11
|
private _selectedElementsChanged;
|
|
12
|
-
applyExtension(designItem: IDesignItem, extensionType: ExtensionType, recursive?: boolean): IDesignerExtension[];
|
|
13
|
-
applyExtensions(designItems: IDesignItem[], extensionType: ExtensionType, recursive?: boolean): void;
|
|
12
|
+
applyExtension(designItem: IDesignItem, extensionType: ExtensionType, event?: Event, recursive?: boolean): IDesignerExtension[];
|
|
13
|
+
applyExtensions(designItems: IDesignItem[], extensionType: ExtensionType, event?: Event, recursive?: boolean): void;
|
|
14
14
|
removeExtension(designItem: IDesignItem, extensionType?: ExtensionType): void;
|
|
15
|
-
removeExtensions(designItems: IDesignItem[],
|
|
16
|
-
refreshExtension(designItem: IDesignItem, extensionType?: ExtensionType): void;
|
|
17
|
-
refreshExtensions(designItems: IDesignItem[], extensionType?: ExtensionType, ignoredExtension?:
|
|
18
|
-
refreshAllExtensions(designItems: IDesignItem[], ignoredExtension?:
|
|
15
|
+
removeExtensions(designItems: IDesignItem[], recursive: boolean, extensionType?: ExtensionType): void;
|
|
16
|
+
refreshExtension(designItem: IDesignItem, extensionType?: ExtensionType, event?: Event): void;
|
|
17
|
+
refreshExtensions(designItems: IDesignItem[], extensionType?: ExtensionType, event?: Event, ignoredExtension?: IDesignerExtension): void;
|
|
18
|
+
refreshAllExtensions(designItems: IDesignItem[], ignoredExtension?: IDesignerExtension): void;
|
|
19
19
|
refreshAllAppliedExtentions(): void;
|
|
20
20
|
reapplyAllAppliedExtentions(): void;
|
|
21
21
|
private static getAllChildElements;
|
|
@@ -13,13 +13,13 @@ export class ExtensionManager {
|
|
|
13
13
|
requestAnimationFrame(() => {
|
|
14
14
|
switch (contentChanged.changeType) {
|
|
15
15
|
case 'added':
|
|
16
|
-
this.applyExtensions(contentChanged.designItems, ExtensionType.Permanent, true);
|
|
16
|
+
this.applyExtensions(contentChanged.designItems, ExtensionType.Permanent, null, true);
|
|
17
17
|
break;
|
|
18
18
|
case 'moved':
|
|
19
19
|
this.refreshExtensions(contentChanged.designItems, ExtensionType.Permanent);
|
|
20
20
|
break;
|
|
21
21
|
case 'parsed':
|
|
22
|
-
this.applyExtensions(Array.from(this.designerCanvas.rootDesignItem.children()), ExtensionType.Permanent, true);
|
|
22
|
+
this.applyExtensions(Array.from(this.designerCanvas.rootDesignItem.children()), ExtensionType.Permanent, null, true);
|
|
23
23
|
break;
|
|
24
24
|
case 'removed':
|
|
25
25
|
this.removeExtensions(contentChanged.designItems, true, ExtensionType.Permanent);
|
|
@@ -44,7 +44,7 @@ export class ExtensionManager {
|
|
|
44
44
|
}
|
|
45
45
|
//this.refreshExtensions(selectionChangedEvent.selectedElements);
|
|
46
46
|
}
|
|
47
|
-
applyExtension(designItem, extensionType, recursive = false) {
|
|
47
|
+
applyExtension(designItem, extensionType, event, recursive = false) {
|
|
48
48
|
if (designItem && designItem.nodeType == NodeType.Element) {
|
|
49
49
|
const extProv = this.designerCanvas.serviceContainer.designerExtensions.get(extensionType);
|
|
50
50
|
let extensions = [];
|
|
@@ -61,7 +61,7 @@ export class ExtensionManager {
|
|
|
61
61
|
appE = [];
|
|
62
62
|
const ext = e.getExtension(this, this.designerCanvas, designItem);
|
|
63
63
|
try {
|
|
64
|
-
ext.extend();
|
|
64
|
+
ext.extend(event);
|
|
65
65
|
extensions.push(ext);
|
|
66
66
|
}
|
|
67
67
|
catch (err) {
|
|
@@ -75,14 +75,14 @@ export class ExtensionManager {
|
|
|
75
75
|
}
|
|
76
76
|
if (recursive) {
|
|
77
77
|
for (const d of designItem.children()) {
|
|
78
|
-
this.applyExtension(d, extensionType, recursive);
|
|
78
|
+
this.applyExtension(d, extensionType, event, recursive);
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
81
|
return extensions;
|
|
82
82
|
}
|
|
83
83
|
return null;
|
|
84
84
|
}
|
|
85
|
-
applyExtensions(designItems, extensionType, recursive = false) {
|
|
85
|
+
applyExtensions(designItems, extensionType, event, recursive = false) {
|
|
86
86
|
if (designItems) {
|
|
87
87
|
const extProv = this.designerCanvas.serviceContainer.designerExtensions.get(extensionType);
|
|
88
88
|
if (extProv) {
|
|
@@ -93,13 +93,13 @@ export class ExtensionManager {
|
|
|
93
93
|
shouldAppE = [];
|
|
94
94
|
shouldAppE.push(e);
|
|
95
95
|
i.shouldAppliedDesignerExtensions.set(extensionType, shouldAppE);
|
|
96
|
-
if (
|
|
96
|
+
if (e.shouldExtend(this, this.designerCanvas, i)) {
|
|
97
97
|
let appE = i.appliedDesignerExtensions.get(extensionType);
|
|
98
98
|
if (!appE)
|
|
99
99
|
appE = [];
|
|
100
100
|
const ext = e.getExtension(this, this.designerCanvas, i);
|
|
101
101
|
try {
|
|
102
|
-
ext.extend();
|
|
102
|
+
ext.extend(event);
|
|
103
103
|
}
|
|
104
104
|
catch (err) {
|
|
105
105
|
console.error(err);
|
|
@@ -113,7 +113,7 @@ export class ExtensionManager {
|
|
|
113
113
|
}
|
|
114
114
|
if (recursive) {
|
|
115
115
|
for (const d of designItems) {
|
|
116
|
-
this.applyExtensions(Array.from(d.children()), extensionType, recursive);
|
|
116
|
+
this.applyExtensions(Array.from(d.children()), extensionType, event, recursive);
|
|
117
117
|
}
|
|
118
118
|
}
|
|
119
119
|
}
|
|
@@ -154,11 +154,11 @@ export class ExtensionManager {
|
|
|
154
154
|
}
|
|
155
155
|
}
|
|
156
156
|
}
|
|
157
|
-
removeExtensions(designItems,
|
|
157
|
+
removeExtensions(designItems, recursive, extensionType) {
|
|
158
158
|
if (designItems) {
|
|
159
159
|
if (extensionType) {
|
|
160
160
|
for (let i of designItems) {
|
|
161
|
-
if (
|
|
161
|
+
if (recursive && i.hasChildren) {
|
|
162
162
|
this.removeExtensions([...i.children()], true, extensionType);
|
|
163
163
|
}
|
|
164
164
|
i.shouldAppliedDesignerExtensions.delete(extensionType);
|
|
@@ -180,7 +180,7 @@ export class ExtensionManager {
|
|
|
180
180
|
}
|
|
181
181
|
else {
|
|
182
182
|
for (let i of designItems) {
|
|
183
|
-
if (
|
|
183
|
+
if (recursive && i.hasChildren) {
|
|
184
184
|
this.removeExtensions([...i.children()], true, extensionType);
|
|
185
185
|
}
|
|
186
186
|
i.shouldAppliedDesignerExtensions.clear();
|
|
@@ -200,14 +200,14 @@ export class ExtensionManager {
|
|
|
200
200
|
}
|
|
201
201
|
}
|
|
202
202
|
}
|
|
203
|
-
refreshExtension(designItem, extensionType) {
|
|
203
|
+
refreshExtension(designItem, extensionType, event) {
|
|
204
204
|
if (designItem) {
|
|
205
205
|
if (extensionType) {
|
|
206
206
|
let exts = designItem.appliedDesignerExtensions.get(extensionType);
|
|
207
207
|
if (exts) {
|
|
208
208
|
for (let e of exts) {
|
|
209
209
|
try {
|
|
210
|
-
e.refresh();
|
|
210
|
+
e.refresh(event);
|
|
211
211
|
}
|
|
212
212
|
catch (err) {
|
|
213
213
|
console.error(err);
|
|
@@ -219,7 +219,7 @@ export class ExtensionManager {
|
|
|
219
219
|
for (let appE of designItem.appliedDesignerExtensions) {
|
|
220
220
|
for (let e of appE[1]) {
|
|
221
221
|
try {
|
|
222
|
-
e.refresh();
|
|
222
|
+
e.refresh(event);
|
|
223
223
|
}
|
|
224
224
|
catch (err) {
|
|
225
225
|
console.error(err);
|
|
@@ -229,7 +229,7 @@ export class ExtensionManager {
|
|
|
229
229
|
}
|
|
230
230
|
}
|
|
231
231
|
}
|
|
232
|
-
refreshExtensions(designItems, extensionType, ignoredExtension) {
|
|
232
|
+
refreshExtensions(designItems, extensionType, event, ignoredExtension) {
|
|
233
233
|
if (designItems) {
|
|
234
234
|
if (extensionType) {
|
|
235
235
|
for (let i of designItems) {
|
|
@@ -238,7 +238,7 @@ export class ExtensionManager {
|
|
|
238
238
|
for (let e of exts) {
|
|
239
239
|
try {
|
|
240
240
|
if (e != ignoredExtension)
|
|
241
|
-
e.refresh();
|
|
241
|
+
e.refresh(event);
|
|
242
242
|
}
|
|
243
243
|
catch (err) {
|
|
244
244
|
console.error(err);
|
|
@@ -253,7 +253,7 @@ export class ExtensionManager {
|
|
|
253
253
|
for (let e of appE[1]) {
|
|
254
254
|
try {
|
|
255
255
|
if (e != ignoredExtension)
|
|
256
|
-
e.refresh();
|
|
256
|
+
e.refresh(event);
|
|
257
257
|
}
|
|
258
258
|
catch (err) {
|
|
259
259
|
console.error(err);
|
|
@@ -266,17 +266,17 @@ export class ExtensionManager {
|
|
|
266
266
|
}
|
|
267
267
|
refreshAllExtensions(designItems, ignoredExtension) {
|
|
268
268
|
if (designItems) {
|
|
269
|
-
this.refreshExtensions(designItems, ExtensionType.Permanent, ignoredExtension);
|
|
270
|
-
this.refreshExtensions(designItems, ExtensionType.Selection, ignoredExtension);
|
|
271
|
-
this.refreshExtensions(designItems, ExtensionType.PrimarySelection, ignoredExtension);
|
|
272
|
-
this.refreshExtensions(designItems, ExtensionType.PrimarySelectionContainer, ignoredExtension);
|
|
273
|
-
this.refreshExtensions(designItems, ExtensionType.MouseOver, ignoredExtension);
|
|
274
|
-
this.refreshExtensions(designItems, ExtensionType.OnlyOneItemSelected, ignoredExtension);
|
|
275
|
-
this.refreshExtensions(designItems, ExtensionType.MultipleItemsSelected, ignoredExtension);
|
|
276
|
-
this.refreshExtensions(designItems, ExtensionType.ContainerDragOver, ignoredExtension);
|
|
277
|
-
this.refreshExtensions(designItems, ExtensionType.ContainerDrag, ignoredExtension);
|
|
278
|
-
this.refreshExtensions(designItems, ExtensionType.Doubleclick, ignoredExtension);
|
|
279
|
-
this.refreshExtensions(designItems, ExtensionType.Placement, ignoredExtension);
|
|
269
|
+
this.refreshExtensions(designItems, ExtensionType.Permanent, null, ignoredExtension);
|
|
270
|
+
this.refreshExtensions(designItems, ExtensionType.Selection, null, ignoredExtension);
|
|
271
|
+
this.refreshExtensions(designItems, ExtensionType.PrimarySelection, null, ignoredExtension);
|
|
272
|
+
this.refreshExtensions(designItems, ExtensionType.PrimarySelectionContainer, null, ignoredExtension);
|
|
273
|
+
this.refreshExtensions(designItems, ExtensionType.MouseOver, null, ignoredExtension);
|
|
274
|
+
this.refreshExtensions(designItems, ExtensionType.OnlyOneItemSelected, null, ignoredExtension);
|
|
275
|
+
this.refreshExtensions(designItems, ExtensionType.MultipleItemsSelected, null, ignoredExtension);
|
|
276
|
+
this.refreshExtensions(designItems, ExtensionType.ContainerDragOver, null, ignoredExtension);
|
|
277
|
+
this.refreshExtensions(designItems, ExtensionType.ContainerDrag, null, ignoredExtension);
|
|
278
|
+
this.refreshExtensions(designItems, ExtensionType.Doubleclick, null, ignoredExtension);
|
|
279
|
+
this.refreshExtensions(designItems, ExtensionType.Placement, null, ignoredExtension);
|
|
280
280
|
}
|
|
281
281
|
}
|
|
282
282
|
refreshAllAppliedExtentions() {
|
package/dist/elements/widgets/designerView/extensions/GrayOutDragOverContainerExtensionProvider.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { IDesignerCanvas } from '../IDesignerCanvas.js';
|
|
|
4
4
|
import { IDesignerExtension } from './IDesignerExtension.js';
|
|
5
5
|
import { IExtensionManager } from './IExtensionManger.js';
|
|
6
6
|
export declare class GrayOutDragOverContainerExtensionProvider implements IDesignerExtensionProvider {
|
|
7
|
-
shouldExtend(extensionManager: IExtensionManager,
|
|
7
|
+
shouldExtend(extensionManager: IExtensionManager, designerCanvas: IDesignerCanvas, designItem: IDesignItem): boolean;
|
|
8
8
|
getExtension(extensionManager: IExtensionManager, designerView: IDesignerCanvas, designItem: IDesignItem): IDesignerExtension;
|
|
9
9
|
readonly style: CSSStyleSheet;
|
|
10
10
|
}
|
package/dist/elements/widgets/designerView/extensions/GrayOutDragOverContainerExtensionProvider.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { css } from "@node-projects/base-custom-webcomponent";
|
|
2
2
|
import { GrayOutDragOverContainerExtension } from "./GrayOutDragOverContainerExtension.js";
|
|
3
3
|
export class GrayOutDragOverContainerExtensionProvider {
|
|
4
|
-
shouldExtend(extensionManager,
|
|
4
|
+
shouldExtend(extensionManager, designerCanvas, designItem) {
|
|
5
5
|
return true;
|
|
6
6
|
}
|
|
7
7
|
getExtension(extensionManager, designerView, designItem) {
|
|
@@ -5,5 +5,5 @@ import { IExtensionManager } from './IExtensionManger.js';
|
|
|
5
5
|
export interface IDesignerExtensionProvider {
|
|
6
6
|
shouldExtend(extensionManager: IExtensionManager, designerView: IDesignerCanvas, designItem: IDesignItem): boolean;
|
|
7
7
|
getExtension(extensionManager: IExtensionManager, designerView: IDesignerCanvas, designItem: IDesignItem): IDesignerExtension;
|
|
8
|
-
style?: CSSStyleSheet;
|
|
8
|
+
style?: CSSStyleSheet | CSSStyleSheet[];
|
|
9
9
|
}
|
|
@@ -2,13 +2,13 @@ import { IDesignItem } from '../../../item/IDesignItem.js';
|
|
|
2
2
|
import { ExtensionType } from './ExtensionType.js';
|
|
3
3
|
import { IDesignerExtension } from './IDesignerExtension.js';
|
|
4
4
|
export interface IExtensionManager {
|
|
5
|
-
applyExtension(designItem: IDesignItem, extensionType: ExtensionType, recursive?: boolean): IDesignerExtension[];
|
|
6
|
-
applyExtensions(designItems: IDesignItem[], extensionType: ExtensionType, recursive?: boolean): any;
|
|
5
|
+
applyExtension(designItem: IDesignItem, extensionType: ExtensionType, event?: Event, recursive?: boolean): IDesignerExtension[];
|
|
6
|
+
applyExtensions(designItems: IDesignItem[], extensionType: ExtensionType, event?: Event, recursive?: boolean): any;
|
|
7
7
|
removeExtension(designItem: IDesignItem, extensionType?: ExtensionType): any;
|
|
8
|
-
removeExtensions(designItems: IDesignItem[],
|
|
9
|
-
refreshExtension(designItem: IDesignItem, extensionType?: ExtensionType): any;
|
|
10
|
-
refreshExtensions(designItems: IDesignItem[], extensionType?: ExtensionType): any;
|
|
11
|
-
refreshAllExtensions(designItems: IDesignItem[], ignoredExtension?:
|
|
8
|
+
removeExtensions(designItems: IDesignItem[], recursive: boolean, extensionType?: ExtensionType): any;
|
|
9
|
+
refreshExtension(designItem: IDesignItem, extensionType?: ExtensionType, event?: Event): any;
|
|
10
|
+
refreshExtensions(designItems: IDesignItem[], extensionType?: ExtensionType, event?: Event): any;
|
|
11
|
+
refreshAllExtensions(designItems: IDesignItem[], ignoredExtension?: IDesignerExtension): any;
|
|
12
12
|
refreshAllAppliedExtentions(): any;
|
|
13
13
|
reapplyAllAppliedExtentions(): any;
|
|
14
14
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { gridExtensionShowOverlayOptionName } from "../
|
|
1
|
+
import { gridExtensionShowOverlayOptionName } from "../grid/DisplayGridExtensionProvider.js";
|
|
2
2
|
import { AbstractDesignViewConfigButton } from "./AbstractDesignViewConfigButton.js";
|
|
3
3
|
export class GridExtensionDesignViewConfigButtons extends AbstractDesignViewConfigButton {
|
|
4
4
|
constructor() {
|
|
@@ -0,0 +1,14 @@
|
|
|
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 DisplayGridExtension extends AbstractExtension {
|
|
6
|
+
private _cells;
|
|
7
|
+
private _gaps;
|
|
8
|
+
private gridInformation;
|
|
9
|
+
constructor(extensionManager: IExtensionManager, designerView: IDesignerCanvas, extendedItem: IDesignItem);
|
|
10
|
+
extend(event?: Event): void;
|
|
11
|
+
refresh(event?: Event): void;
|
|
12
|
+
dispose(): void;
|
|
13
|
+
_initSVGArrays(): void;
|
|
14
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { CalculateGridInformation } from "../../../../helper/GridHelper.js";
|
|
2
|
+
import { AbstractExtension } from '../AbstractExtension.js';
|
|
3
|
+
import { OverlayLayer } from "../OverlayLayer.js";
|
|
4
|
+
export class DisplayGridExtension extends AbstractExtension {
|
|
5
|
+
_cells;
|
|
6
|
+
_gaps;
|
|
7
|
+
gridInformation;
|
|
8
|
+
constructor(extensionManager, designerView, extendedItem) {
|
|
9
|
+
super(extensionManager, designerView, extendedItem);
|
|
10
|
+
}
|
|
11
|
+
extend(event) {
|
|
12
|
+
this._initSVGArrays();
|
|
13
|
+
this.refresh(event);
|
|
14
|
+
}
|
|
15
|
+
refresh(event) {
|
|
16
|
+
this.gridInformation = CalculateGridInformation(this.extendedItem);
|
|
17
|
+
let cells = this.gridInformation.cells;
|
|
18
|
+
if (cells[0][0] && !isNaN(cells[0][0].height) && !isNaN(cells[0][0].width)) {
|
|
19
|
+
if (this.gridInformation.cells.length != this._cells.length || this.gridInformation.cells[0].length != this._cells[0].length)
|
|
20
|
+
this._initSVGArrays();
|
|
21
|
+
//draw gaps
|
|
22
|
+
this.gridInformation.gaps.forEach((gap, i) => {
|
|
23
|
+
this._gaps[i] = this._drawRect(gap.x, gap.y, gap.width, gap.height, 'svg-grid-gap', this._gaps[i], OverlayLayer.Foregorund);
|
|
24
|
+
});
|
|
25
|
+
//draw cells
|
|
26
|
+
cells.forEach((row, i) => {
|
|
27
|
+
row.forEach((cell, j) => {
|
|
28
|
+
this._cells[i][j] = this._drawRect(cell.x, cell.y, cell.width, cell.height, 'svg-grid', this._cells[i][j], OverlayLayer.Background);
|
|
29
|
+
if (cell.name) {
|
|
30
|
+
const text = this._drawText(cell.name, cell.x, cell.y, 'svg-grid-area', null, OverlayLayer.Background);
|
|
31
|
+
text.setAttribute("dominant-baseline", "hanging");
|
|
32
|
+
}
|
|
33
|
+
if (event && event instanceof MouseEvent) {
|
|
34
|
+
let crd = this.designerCanvas.getNormalizedEventCoordinates(event);
|
|
35
|
+
if (crd.x >= cell.x && crd.y >= cell.y && crd.x <= cell.x + cell.width && crd.y <= cell.y + cell.height) {
|
|
36
|
+
this._cells[i][j].setAttribute("class", "svg-grid-current-cell");
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
dispose() {
|
|
44
|
+
this._removeAllOverlays();
|
|
45
|
+
}
|
|
46
|
+
_initSVGArrays() {
|
|
47
|
+
this._removeAllOverlays();
|
|
48
|
+
this.gridInformation = CalculateGridInformation(this.extendedItem);
|
|
49
|
+
this._cells = new Array(this.gridInformation.cells.length);
|
|
50
|
+
this.gridInformation.cells.forEach((row, i) => this._cells[i] = new Array(row.length));
|
|
51
|
+
this._gaps = new Array(this.gridInformation.gaps.length);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { IDesignerExtensionProvider } from '../IDesignerExtensionProvider.js';
|
|
2
|
+
import { IDesignItem } from '../../../../item/IDesignItem.js';
|
|
3
|
+
import { IDesignerCanvas } from '../../IDesignerCanvas.js';
|
|
4
|
+
import { IDesignerExtension } from '../IDesignerExtension.js';
|
|
5
|
+
import { IExtensionManager } from '../IExtensionManger.js';
|
|
6
|
+
export declare const gridExtensionShowOverlayOptionName = "gridExtensionShowOverlay";
|
|
7
|
+
export declare class DisplayGridExtensionProvider implements IDesignerExtensionProvider {
|
|
8
|
+
shouldExtend(extensionManager: IExtensionManager, designerCanvas: IDesignerCanvas, designItem: IDesignItem): boolean;
|
|
9
|
+
getExtension(extensionManager: IExtensionManager, designerCanvas: IDesignerCanvas, designItem: IDesignItem): IDesignerExtension;
|
|
10
|
+
readonly style: CSSStyleSheet;
|
|
11
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { css } from "@node-projects/base-custom-webcomponent";
|
|
2
|
+
import { DisplayGridExtension } from './DisplayGridExtension.js';
|
|
3
|
+
export const gridExtensionShowOverlayOptionName = 'gridExtensionShowOverlay';
|
|
4
|
+
export class DisplayGridExtensionProvider {
|
|
5
|
+
shouldExtend(extensionManager, designerCanvas, designItem) {
|
|
6
|
+
const display = getComputedStyle(designItem.element).display;
|
|
7
|
+
if (display == 'grid' || display == 'inline-grid')
|
|
8
|
+
return designerCanvas.instanceServiceContainer.designContext.extensionOptions[gridExtensionShowOverlayOptionName] !== false;
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
getExtension(extensionManager, designerCanvas, designItem) {
|
|
12
|
+
return new DisplayGridExtension(extensionManager, designerCanvas, designItem);
|
|
13
|
+
}
|
|
14
|
+
style = css `
|
|
15
|
+
.svg-grid { stroke: orange; stroke-dasharray: 5; fill: #ff944722; }
|
|
16
|
+
.svg-grid-current-cell { stroke: orange; stroke-dasharray: 5; fill: #e3ff4722; }
|
|
17
|
+
.svg-grid-area { font-size: 8px; }
|
|
18
|
+
.svg-grid-gap { stroke: orange; stroke-dasharray: 5; fill: #0000ff22; }
|
|
19
|
+
.svg-grid-resizer { fill: white; stroke: #3899ec; }
|
|
20
|
+
.svg-grid-header { fill: #ff944722; stroke: orange; }
|
|
21
|
+
.svg-grid-plus-sign { stroke: black; }
|
|
22
|
+
`;
|
|
23
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
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 EditGridExtension extends AbstractExtension {
|
|
6
|
+
private _initialPoint;
|
|
7
|
+
private _initialSizes;
|
|
8
|
+
private _cells;
|
|
9
|
+
private _gaps;
|
|
10
|
+
private _headers;
|
|
11
|
+
private _headerTexts;
|
|
12
|
+
private _plusCircles;
|
|
13
|
+
private _resizeCircles;
|
|
14
|
+
private minPixelSize;
|
|
15
|
+
private gridInformation;
|
|
16
|
+
private defaultHeaderSize;
|
|
17
|
+
private defaultPlusSize;
|
|
18
|
+
private defaultDistanceToBox;
|
|
19
|
+
private defaultDistanceBetweenHeaders;
|
|
20
|
+
private defaultSizeOfNewRowOrColumn;
|
|
21
|
+
constructor(extensionManager: IExtensionManager, designerView: IDesignerCanvas, extendedItem: IDesignItem);
|
|
22
|
+
extend(): void;
|
|
23
|
+
refresh(): void;
|
|
24
|
+
dispose(): void;
|
|
25
|
+
_initSVGArrays(): void;
|
|
26
|
+
_drawResizeCircle(gap: any, oldCircle?: SVGCircleElement): SVGCircleElement;
|
|
27
|
+
_drawHeader(cell: any, oldHeader: any, index: any, alignment: "vertical" | "horizontal"): SVGRectElement;
|
|
28
|
+
_drawHeaderText(cell: any, oldHeaderText: any, alignment: "vertical" | "horizontal"): SVGTextElement;
|
|
29
|
+
_drawPlusCircle(x: any, y: any, oldPlusElement: {
|
|
30
|
+
circle: SVGCircleElement;
|
|
31
|
+
verticalLine: SVGLineElement;
|
|
32
|
+
horizontalLine: SVGLineElement;
|
|
33
|
+
}, index: any, alignment: "vertical" | "horizontal", final?: boolean): {
|
|
34
|
+
circle: any;
|
|
35
|
+
verticalLine: any;
|
|
36
|
+
horizontalLine: any;
|
|
37
|
+
};
|
|
38
|
+
_getHeaderText(size: number, unit: string, percentTarget: "width" | "height"): string;
|
|
39
|
+
_getInitialSizes(): {
|
|
40
|
+
x: any[];
|
|
41
|
+
xUnit: any[];
|
|
42
|
+
y: any[];
|
|
43
|
+
yUnit: any[];
|
|
44
|
+
};
|
|
45
|
+
_pointerActionTypeResize(event: PointerEvent, circle: SVGCircleElement, gapColumn: any, gapRow: any): void;
|
|
46
|
+
_calculateNewSize(iSizes: number[], iUnits: string[], diff: any, gapIndex: any, percentTarget: 'width' | 'height', pointerUp?: boolean): string;
|
|
47
|
+
_editGrid(pos: number, alignment: "vertical" | "horizontal", task: "add" | "del"): void;
|
|
48
|
+
_calculateNewElementSize(elementTarget: "width" | "height"): string;
|
|
49
|
+
_toggleDisplayPlusCircles(index: any, alignment: "vertical" | "horizontal", double?: boolean): void;
|
|
50
|
+
_convertCssUnit(cssValue: string | number, target: HTMLElement, percentTarget: 'width' | 'height', unit: string): string | number;
|
|
51
|
+
}
|