@node-projects/web-component-designer 0.1.104 → 0.1.106
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/helper/Helper.d.ts +1 -0
- package/dist/elements/helper/Helper.js +13 -0
- package/dist/elements/item/DesignItem.d.ts +0 -5
- package/dist/elements/item/DesignItem.js +2 -3
- package/dist/elements/item/IDesignItem.d.ts +0 -5
- package/dist/elements/services/DefaultServiceBootstrap.js +18 -18
- package/dist/elements/services/dragDropService/DragDropService.js +1 -1
- package/dist/elements/services/selectionService/ISelectionChangedEvent copy.d.ts +6 -0
- package/dist/elements/services/selectionService/ISelectionChangedEvent copy.js +1 -0
- package/dist/elements/services/selectionService/ISelectionChangedEvent.d.ts +1 -0
- package/dist/elements/services/selectionService/ISelectionRefreshEvent.d.ts +5 -0
- package/dist/elements/services/selectionService/ISelectionRefreshEvent.js +1 -0
- package/dist/elements/services/selectionService/ISelectionService.d.ts +3 -1
- package/dist/elements/services/selectionService/SelectionService.d.ts +4 -2
- package/dist/elements/services/selectionService/SelectionService.js +10 -4
- package/dist/elements/widgets/designerView/extensions/AbstractExtension.d.ts +7 -0
- package/dist/elements/widgets/designerView/extensions/AbstractExtension.js +21 -0
- package/dist/elements/widgets/designerView/extensions/AbstractToolbarExtension.d.ts +9 -0
- package/dist/elements/widgets/designerView/extensions/AbstractToolbarExtension.js +30 -0
- package/dist/elements/widgets/designerView/extensions/ConditionExtensionProvider.d.ts +13 -0
- package/dist/elements/widgets/designerView/extensions/ConditionExtensionProvider.js +18 -0
- package/dist/elements/widgets/designerView/extensions/EditText/EditTextExtension.d.ts +1 -0
- package/dist/elements/widgets/designerView/extensions/EditText/EditTextExtension.js +7 -16
- package/dist/elements/widgets/designerView/extensions/EditTextExtension.d.ts +18 -0
- package/dist/elements/widgets/designerView/extensions/EditTextExtension.js +107 -0
- package/dist/elements/widgets/designerView/extensions/ExtensionManager.d.ts +10 -3
- package/dist/elements/widgets/designerView/extensions/ExtensionManager.js +100 -60
- package/dist/elements/widgets/designerView/extensions/ExtensionType.d.ts +5 -1
- package/dist/elements/widgets/designerView/extensions/ExtensionType.js +4 -0
- package/dist/elements/widgets/designerView/extensions/GridToolbarExtension.d.ts +12 -0
- package/dist/elements/widgets/designerView/extensions/GridToolbarExtension.js +58 -0
- package/dist/elements/widgets/designerView/extensions/IExtensionManger.d.ts +3 -3
- package/dist/elements/widgets/designerView/extensions/TransformOriginExtensionProvider.js +6 -2
- package/dist/elements/widgets/designerView/extensions/block/BlockToolbarExtension.d.ts +12 -0
- package/dist/elements/widgets/designerView/extensions/block/BlockToolbarExtension.js +35 -0
- package/dist/elements/widgets/designerView/extensions/block/BlockToolbarExtensionProvider.d.ts +9 -0
- package/dist/elements/widgets/designerView/extensions/block/BlockToolbarExtensionProvider.js +12 -0
- package/dist/elements/widgets/designerView/extensions/block/FlexToolbarExtension.d.ts +12 -0
- package/dist/elements/widgets/designerView/extensions/block/FlexToolbarExtension.js +34 -0
- package/dist/elements/widgets/designerView/extensions/block/FlexToolbarExtensionProvider.d.ts +9 -0
- package/dist/elements/widgets/designerView/extensions/block/FlexToolbarExtensionProvider.js +12 -0
- package/dist/elements/widgets/designerView/extensions/contextMenu/ChildContextMenu.d.ts +11 -0
- package/dist/elements/widgets/designerView/extensions/contextMenu/ChildContextMenu.js +14 -0
- package/dist/elements/widgets/designerView/extensions/contextMenu/CopyPasteContextMenu.js +3 -3
- package/dist/elements/widgets/designerView/extensions/contextMenu/JumpToElementContextMenu.js +1 -1
- package/dist/elements/widgets/designerView/extensions/contextMenu/MultipleItemsSelectedContextMenu.js +1 -1
- package/dist/elements/widgets/designerView/extensions/contextMenu/PathContextMenu.js +1 -1
- package/dist/elements/widgets/designerView/extensions/contextMenu/RectContextMenu.js +1 -1
- package/dist/elements/widgets/designerView/extensions/contextMenu/RotateLeftAndRightContextMenu.js +1 -1
- package/dist/elements/widgets/designerView/extensions/contextMenu/SelectAllChildrenContextMenu.js +1 -1
- package/dist/elements/widgets/designerView/extensions/contextMenu/ZMoveContextMenu.js +1 -1
- package/dist/elements/widgets/designerView/extensions/contextMenu/ZoomToElementContextMenu.js +1 -1
- package/dist/elements/widgets/designerView/extensions/flex/FlexToolbarExtension.d.ts +12 -0
- package/dist/elements/widgets/designerView/extensions/flex/FlexToolbarExtension.js +35 -0
- package/dist/elements/widgets/designerView/extensions/flex/FlexToolbarExtensionProvider.d.ts +9 -0
- package/dist/elements/widgets/designerView/extensions/flex/FlexToolbarExtensionProvider.js +12 -0
- package/dist/elements/widgets/designerView/extensions/flex/GridToolbarExtension.d.ts +12 -0
- package/dist/elements/widgets/designerView/extensions/flex/GridToolbarExtension.js +66 -0
- package/dist/elements/widgets/designerView/extensions/flex/GridToolbarExtensionProvider.d.ts +10 -0
- package/dist/elements/widgets/designerView/extensions/flex/GridToolbarExtensionProvider.js +17 -0
- package/dist/elements/widgets/designerView/extensions/grid/DisplayGridExtension.d.ts +1 -0
- package/dist/elements/widgets/designerView/extensions/grid/DisplayGridExtension.js +12 -8
- package/dist/elements/widgets/designerView/extensions/grid/GridChildResizeExtension.d.ts +27 -0
- package/dist/elements/widgets/designerView/extensions/grid/GridChildResizeExtension.js +259 -0
- package/dist/elements/widgets/designerView/extensions/grid/GridChildResizeExtensionProvider.d.ts +10 -0
- package/dist/elements/widgets/designerView/extensions/grid/GridChildResizeExtensionProvider.js +16 -0
- package/dist/elements/widgets/designerView/extensions/grid/GridChildToolbarExtension.d.ts +12 -0
- package/dist/elements/widgets/designerView/extensions/grid/GridChildToolbarExtension.js +66 -0
- package/dist/elements/widgets/designerView/extensions/grid/GridChildToolbarExtensionProvider.d.ts +10 -0
- package/dist/elements/widgets/designerView/extensions/grid/GridChildToolbarExtensionProvider.js +17 -0
- package/dist/elements/widgets/designerView/extensions/grid/GridToolbarExtension copy.d.ts +12 -0
- package/dist/elements/widgets/designerView/extensions/grid/GridToolbarExtension copy.js +66 -0
- package/dist/elements/widgets/designerView/extensions/grid/GridToolbarExtension.d.ts +12 -0
- package/dist/elements/widgets/designerView/extensions/grid/GridToolbarExtension.js +67 -0
- package/dist/elements/widgets/designerView/extensions/grid/GridToolbarExtensionProvider copy.d.ts +10 -0
- package/dist/elements/widgets/designerView/extensions/grid/GridToolbarExtensionProvider copy.js +17 -0
- package/dist/elements/widgets/designerView/extensions/grid/GridToolbarExtensionProvider.d.ts +9 -0
- package/dist/elements/widgets/designerView/extensions/grid/GridToolbarExtensionProvider.js +12 -0
- package/dist/elements/widgets/designerView/extensions/grid/ResizeExtension.d.ts +28 -0
- package/dist/elements/widgets/designerView/extensions/grid/ResizeExtension.js +355 -0
- package/dist/elements/widgets/designerView/extensions/grid/ResizeExtensionProvider.d.ts +12 -0
- package/dist/elements/widgets/designerView/extensions/grid/ResizeExtensionProvider.js +20 -0
- package/dist/elements/widgets/designerView/extensions/logic/ConditionExtensionProvider.d.ts +13 -0
- package/dist/elements/widgets/designerView/extensions/logic/ConditionExtensionProvider.js +18 -0
- package/dist/elements/widgets/designerView/extensions/svg/EllipsisExtension.js +8 -6
- package/dist/elements/widgets/designerView/extensions/svg/RectExtension.d.ts +2 -2
- package/dist/elements/widgets/designerView/extensions/svg/RectExtension.js +18 -15
- package/dist/elements/widgets/designerView/extensions/svg/RectExtensionProvider copy.d.ts +9 -0
- package/dist/elements/widgets/designerView/extensions/svg/RectExtensionProvider copy.js +14 -0
- package/dist/elements/widgets/designerView/extensions/svg/SvgBaseExtension.d.ts +30 -0
- package/dist/elements/widgets/designerView/extensions/svg/SvgBaseExtension.js +181 -0
- package/dist/elements/widgets/designerView/extensions/svg/SvgElementExtension.d.ts +26 -0
- package/dist/elements/widgets/designerView/extensions/svg/SvgElementExtension.js +144 -0
- package/dist/elements/widgets/designerView/extensions/svg/SvgElementExtensionProvider.d.ts +9 -0
- package/dist/elements/widgets/designerView/extensions/svg/SvgElementExtensionProvider.js +16 -0
- package/dist/elements/widgets/designerView/overlayLayerView.js +4 -1
- package/dist/elements/widgets/designerView/tools/DrawElementTool.js +1 -1
- package/dist/elements/widgets/designerView/tools/PointerTool.js +9 -9
- package/dist/elements/widgets/designerView/tools/RectangleSelectorTool.js +0 -1
- package/dist/elements/widgets/propertyGrid/PropertyGridWithHeader.js +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.js +14 -0
- package/package.json +1 -1
|
@@ -1,18 +1,25 @@
|
|
|
1
|
+
import { DesignItem } from '../../../item/DesignItem.js';
|
|
1
2
|
import { IDesignItem } from '../../../item/IDesignItem.js';
|
|
2
3
|
import { IDesignerCanvas } from '../IDesignerCanvas.js';
|
|
3
4
|
import { ExtensionType } from './ExtensionType.js';
|
|
4
5
|
import { IExtensionManager } from './IExtensionManger.js';
|
|
5
6
|
import { IDesignerExtension } from './IDesignerExtension.js';
|
|
7
|
+
import { IDesignerExtensionProvider } from './IDesignerExtensionProvider.js';
|
|
6
8
|
export declare class ExtensionManager implements IExtensionManager {
|
|
7
9
|
designerCanvas: IDesignerCanvas;
|
|
8
10
|
designItemsWithExtentions: Set<IDesignItem>;
|
|
9
11
|
_timeout: ReturnType<typeof setTimeout>;
|
|
12
|
+
_appliedDesignerExtensions: WeakMap<DesignItem, Map<ExtensionType, IDesignerExtension[]>>;
|
|
13
|
+
_shouldAppliedDesignerExtensions: WeakMap<DesignItem, Map<ExtensionType, IDesignerExtensionProvider[]>>;
|
|
14
|
+
_lastApplyEventPerType: WeakMap<DesignItem, Map<ExtensionType, Event>>;
|
|
15
|
+
_lastPrimarySelectionRefreshItem: WeakRef<IDesignItem>;
|
|
10
16
|
constructor(designerCanvas: IDesignerCanvas);
|
|
11
17
|
connected(): void;
|
|
12
18
|
disconnected(): void;
|
|
13
19
|
private refreshAllExtensionsTimeout;
|
|
14
20
|
private _contentChanged;
|
|
15
21
|
private _selectedElementsChanged;
|
|
22
|
+
private _selectedElementsRefresh;
|
|
16
23
|
applyExtension(designItem: IDesignItem, extensionType: ExtensionType, event?: Event, recursive?: boolean): IDesignerExtension[];
|
|
17
24
|
applyExtensions(designItems: IDesignItem[], extensionType: ExtensionType, event?: Event, recursive?: boolean): void;
|
|
18
25
|
applyExtensionInstance(designItem: IDesignItem, extension: IDesignerExtension): void;
|
|
@@ -21,8 +28,8 @@ export declare class ExtensionManager implements IExtensionManager {
|
|
|
21
28
|
removeExtensions(designItems: IDesignItem[], recursive: boolean, extensionType?: ExtensionType): void;
|
|
22
29
|
refreshExtension(designItem: IDesignItem, extensionType?: ExtensionType, event?: Event): void;
|
|
23
30
|
refreshExtensions(designItems: IDesignItem[], extensionType?: ExtensionType, event?: Event, ignoredExtension?: IDesignerExtension, timeout?: number): void;
|
|
24
|
-
refreshAllExtensions(designItems: IDesignItem[], ignoredExtension?: IDesignerExtension): void;
|
|
25
|
-
refreshAllAppliedExtentions(): void;
|
|
26
|
-
reapplyAllAppliedExtentions(): void;
|
|
31
|
+
refreshAllExtensions(designItems: IDesignItem[], ignoredExtension?: IDesignerExtension, event?: Event): void;
|
|
32
|
+
refreshAllAppliedExtentions(event?: Event): void;
|
|
33
|
+
reapplyAllAppliedExtentions(filterDesignItems?: IDesignItem[]): void;
|
|
27
34
|
private static getAllChildElements;
|
|
28
35
|
}
|
|
@@ -1,13 +1,26 @@
|
|
|
1
1
|
import { DesignItem } from '../../../item/DesignItem.js';
|
|
2
2
|
import { NodeType } from "../../../item/NodeType.js";
|
|
3
3
|
import { ExtensionType } from './ExtensionType.js';
|
|
4
|
+
function wmGet(designItem, weakMap) {
|
|
5
|
+
let val = weakMap.get(designItem);
|
|
6
|
+
if (val)
|
|
7
|
+
return val;
|
|
8
|
+
val = new Map();
|
|
9
|
+
weakMap.set(designItem, val);
|
|
10
|
+
return val;
|
|
11
|
+
}
|
|
4
12
|
export class ExtensionManager {
|
|
5
13
|
designerCanvas;
|
|
6
14
|
designItemsWithExtentions = new Set();
|
|
7
15
|
_timeout;
|
|
16
|
+
_appliedDesignerExtensions = new WeakMap;
|
|
17
|
+
_shouldAppliedDesignerExtensions = new WeakMap;
|
|
18
|
+
_lastApplyEventPerType = new WeakMap;
|
|
19
|
+
_lastPrimarySelectionRefreshItem;
|
|
8
20
|
constructor(designerCanvas) {
|
|
9
21
|
this.designerCanvas = designerCanvas;
|
|
10
22
|
designerCanvas.instanceServiceContainer.selectionService.onSelectionChanged.on(this._selectedElementsChanged.bind(this));
|
|
23
|
+
designerCanvas.instanceServiceContainer.selectionService.onSelectionRefresh.on(this._selectedElementsRefresh.bind(this));
|
|
11
24
|
designerCanvas.instanceServiceContainer.contentService.onContentChanged.on(this._contentChanged.bind(this));
|
|
12
25
|
}
|
|
13
26
|
connected() {
|
|
@@ -42,27 +55,35 @@ export class ExtensionManager {
|
|
|
42
55
|
});
|
|
43
56
|
}
|
|
44
57
|
_selectedElementsChanged(selectionChangedEvent) {
|
|
58
|
+
this._lastPrimarySelectionRefreshItem = null;
|
|
45
59
|
if (selectionChangedEvent.oldSelectedElements && selectionChangedEvent.oldSelectedElements.length) {
|
|
46
60
|
if (selectionChangedEvent.oldSelectedElements[0].parent) {
|
|
47
61
|
const primaryContainer = DesignItem.GetOrCreateDesignItem(selectionChangedEvent.oldSelectedElements[0].parent.element, selectionChangedEvent.oldSelectedElements[0].parent.element, this.designerCanvas.serviceContainer, this.designerCanvas.instanceServiceContainer);
|
|
48
62
|
this.removeExtension(primaryContainer, ExtensionType.PrimarySelectionContainer);
|
|
49
63
|
this.removeExtension(primaryContainer, ExtensionType.PrimarySelectionContainerAndCanBeEntered);
|
|
50
64
|
this.removeExtension(selectionChangedEvent.oldSelectedElements[0], ExtensionType.PrimarySelection);
|
|
65
|
+
this.removeExtension(selectionChangedEvent.oldSelectedElements[0], ExtensionType.PrimarySelectionRefreshed);
|
|
51
66
|
this.removeExtension(selectionChangedEvent.oldSelectedElements[0], ExtensionType.PrimarySelectionAndCanBeEntered);
|
|
52
67
|
this.removeExtensions(selectionChangedEvent.oldSelectedElements, false, ExtensionType.Selection);
|
|
53
68
|
}
|
|
54
69
|
}
|
|
55
70
|
if (selectionChangedEvent.selectedElements && selectionChangedEvent.selectedElements.length) {
|
|
56
|
-
this.applyExtensions(selectionChangedEvent.selectedElements, ExtensionType.Selection);
|
|
57
|
-
this.applyExtension(selectionChangedEvent.selectedElements[0], ExtensionType.PrimarySelection);
|
|
71
|
+
this.applyExtensions(selectionChangedEvent.selectedElements, ExtensionType.Selection, selectionChangedEvent.event);
|
|
72
|
+
this.applyExtension(selectionChangedEvent.selectedElements[0], ExtensionType.PrimarySelection, selectionChangedEvent.event);
|
|
58
73
|
if (selectionChangedEvent.selectedElements[0].getPlacementService()?.isEnterableContainer(selectionChangedEvent.selectedElements[0]))
|
|
59
|
-
this.applyExtension(selectionChangedEvent.selectedElements[0], ExtensionType.PrimarySelectionAndCanBeEntered);
|
|
74
|
+
this.applyExtension(selectionChangedEvent.selectedElements[0], ExtensionType.PrimarySelectionAndCanBeEntered, selectionChangedEvent.event);
|
|
60
75
|
const primaryContainer = DesignItem.GetOrCreateDesignItem(selectionChangedEvent.selectedElements[0].parent.element, selectionChangedEvent.selectedElements[0].parent.element, this.designerCanvas.serviceContainer, this.designerCanvas.instanceServiceContainer);
|
|
61
|
-
this.applyExtension(primaryContainer, ExtensionType.PrimarySelectionContainer);
|
|
76
|
+
this.applyExtension(primaryContainer, ExtensionType.PrimarySelectionContainer, selectionChangedEvent.event);
|
|
62
77
|
if (primaryContainer.getPlacementService()?.isEnterableContainer(primaryContainer))
|
|
63
|
-
this.applyExtension(primaryContainer, ExtensionType.PrimarySelectionContainerAndCanBeEntered);
|
|
78
|
+
this.applyExtension(primaryContainer, ExtensionType.PrimarySelectionContainerAndCanBeEntered, selectionChangedEvent.event);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
_selectedElementsRefresh(selectionChangedEvent) {
|
|
82
|
+
this.refreshAllAppliedExtentions(selectionChangedEvent.event);
|
|
83
|
+
if (selectionChangedEvent.selectedElements && selectionChangedEvent.selectedElements.length && (!this._lastPrimarySelectionRefreshItem || this._lastPrimarySelectionRefreshItem.deref() !== selectionChangedEvent.selectedElements[0])) {
|
|
84
|
+
this.applyExtension(selectionChangedEvent.selectedElements[0], ExtensionType.PrimarySelectionRefreshed, selectionChangedEvent.event);
|
|
85
|
+
this._lastPrimarySelectionRefreshItem = new WeakRef(selectionChangedEvent.selectedElements[0]);
|
|
64
86
|
}
|
|
65
|
-
//this.refreshExtensions(selectionChangedEvent.selectedElements);
|
|
66
87
|
}
|
|
67
88
|
applyExtension(designItem, extensionType, event, recursive = false) {
|
|
68
89
|
if (designItem && designItem.nodeType == NodeType.Element) {
|
|
@@ -71,25 +92,29 @@ export class ExtensionManager {
|
|
|
71
92
|
if (extProv) {
|
|
72
93
|
const cache = {};
|
|
73
94
|
for (let e of extProv) {
|
|
74
|
-
let shouldAppE = designItem.
|
|
95
|
+
let shouldAppE = wmGet(designItem, this._shouldAppliedDesignerExtensions).get(extensionType);
|
|
75
96
|
if (!shouldAppE)
|
|
76
97
|
shouldAppE = [];
|
|
77
98
|
shouldAppE.push(e);
|
|
78
|
-
designItem.
|
|
99
|
+
wmGet(designItem, this._shouldAppliedDesignerExtensions).set(extensionType, shouldAppE);
|
|
79
100
|
if (e.shouldExtend(this, this.designerCanvas, designItem)) {
|
|
80
|
-
let appE = designItem.
|
|
101
|
+
let appE = wmGet(designItem, this._appliedDesignerExtensions).get(extensionType);
|
|
81
102
|
if (!appE)
|
|
82
103
|
appE = [];
|
|
83
104
|
const ext = e.getExtension(this, this.designerCanvas, designItem);
|
|
84
105
|
try {
|
|
85
106
|
ext.extend(cache, event);
|
|
86
107
|
extensions.push(ext);
|
|
108
|
+
if (event)
|
|
109
|
+
wmGet(designItem, this._lastApplyEventPerType).set(extensionType, event);
|
|
110
|
+
else
|
|
111
|
+
wmGet(designItem, this._lastApplyEventPerType).delete(extensionType);
|
|
87
112
|
}
|
|
88
113
|
catch (err) {
|
|
89
114
|
console.error(err);
|
|
90
115
|
}
|
|
91
116
|
appE.push(ext);
|
|
92
|
-
designItem.
|
|
117
|
+
wmGet(designItem, this._appliedDesignerExtensions).set(extensionType, appE);
|
|
93
118
|
this.designItemsWithExtentions.add(designItem);
|
|
94
119
|
}
|
|
95
120
|
}
|
|
@@ -111,24 +136,28 @@ export class ExtensionManager {
|
|
|
111
136
|
const cache = {};
|
|
112
137
|
for (let e of extProv) {
|
|
113
138
|
for (let i of designItems) {
|
|
114
|
-
let shouldAppE = i.
|
|
139
|
+
let shouldAppE = wmGet(i, this._shouldAppliedDesignerExtensions).get(extensionType);
|
|
115
140
|
if (!shouldAppE)
|
|
116
141
|
shouldAppE = [];
|
|
117
142
|
shouldAppE.push(e);
|
|
118
|
-
i.
|
|
143
|
+
wmGet(i, this._shouldAppliedDesignerExtensions).set(extensionType, shouldAppE);
|
|
119
144
|
if (e.shouldExtend(this, this.designerCanvas, i)) {
|
|
120
|
-
let appE = i.
|
|
145
|
+
let appE = wmGet(i, this._appliedDesignerExtensions).get(extensionType);
|
|
121
146
|
if (!appE)
|
|
122
147
|
appE = [];
|
|
123
148
|
const ext = e.getExtension(this, this.designerCanvas, i);
|
|
124
149
|
try {
|
|
125
150
|
ext.extend(cache, event);
|
|
151
|
+
if (event)
|
|
152
|
+
wmGet(i, this._lastApplyEventPerType).set(extensionType, event);
|
|
153
|
+
else
|
|
154
|
+
wmGet(i, this._lastApplyEventPerType).delete(extensionType);
|
|
126
155
|
}
|
|
127
156
|
catch (err) {
|
|
128
157
|
console.error(err);
|
|
129
158
|
}
|
|
130
159
|
appE.push(ext);
|
|
131
|
-
i.
|
|
160
|
+
wmGet(i, this._appliedDesignerExtensions).set(extensionType, appE);
|
|
132
161
|
this.designItemsWithExtentions.add(i);
|
|
133
162
|
}
|
|
134
163
|
}
|
|
@@ -143,7 +172,7 @@ export class ExtensionManager {
|
|
|
143
172
|
this.designerCanvas.overlayLayer.endBatch();
|
|
144
173
|
}
|
|
145
174
|
applyExtensionInstance(designItem, extension) {
|
|
146
|
-
let appE = designItem.
|
|
175
|
+
let appE = wmGet(designItem, this._appliedDesignerExtensions).get(ExtensionType.Directly);
|
|
147
176
|
if (!appE)
|
|
148
177
|
appE = [];
|
|
149
178
|
try {
|
|
@@ -153,11 +182,11 @@ export class ExtensionManager {
|
|
|
153
182
|
console.error(err);
|
|
154
183
|
}
|
|
155
184
|
appE.push(extension);
|
|
156
|
-
designItem.
|
|
185
|
+
wmGet(designItem, this._appliedDesignerExtensions).set(ExtensionType.Directly, appE);
|
|
157
186
|
this.designItemsWithExtentions.add(designItem);
|
|
158
187
|
}
|
|
159
188
|
removeExtensionInstance(designItem, extension) {
|
|
160
|
-
for (let e of designItem.
|
|
189
|
+
for (let e of wmGet(designItem, this._appliedDesignerExtensions)) {
|
|
161
190
|
const idx = e[1].indexOf(extension);
|
|
162
191
|
if (idx >= 0) {
|
|
163
192
|
try {
|
|
@@ -167,9 +196,11 @@ export class ExtensionManager {
|
|
|
167
196
|
console.error(err);
|
|
168
197
|
}
|
|
169
198
|
e[1].splice(idx, 1);
|
|
170
|
-
if (e[1].length == 0)
|
|
171
|
-
designItem.
|
|
172
|
-
|
|
199
|
+
if (e[1].length == 0) {
|
|
200
|
+
wmGet(designItem, this._appliedDesignerExtensions).delete(e[0]);
|
|
201
|
+
wmGet(designItem, this._shouldAppliedDesignerExtensions).delete(e[0]);
|
|
202
|
+
}
|
|
203
|
+
if (!wmGet(designItem, this._appliedDesignerExtensions).size)
|
|
173
204
|
this.designItemsWithExtentions.delete(designItem);
|
|
174
205
|
}
|
|
175
206
|
}
|
|
@@ -177,25 +208,26 @@ export class ExtensionManager {
|
|
|
177
208
|
removeExtension(designItem, extensionType) {
|
|
178
209
|
if (designItem) {
|
|
179
210
|
if (extensionType) {
|
|
180
|
-
designItem.
|
|
181
|
-
let exts = designItem.
|
|
211
|
+
wmGet(designItem, this._shouldAppliedDesignerExtensions).delete(extensionType);
|
|
212
|
+
let exts = wmGet(designItem, this._appliedDesignerExtensions).get(extensionType);
|
|
182
213
|
if (exts) {
|
|
183
214
|
for (let e of exts) {
|
|
184
215
|
try {
|
|
185
216
|
e.dispose();
|
|
217
|
+
wmGet(designItem, this._lastApplyEventPerType).delete(extensionType);
|
|
186
218
|
}
|
|
187
219
|
catch (err) {
|
|
188
220
|
console.error(err);
|
|
189
221
|
}
|
|
190
222
|
}
|
|
191
|
-
designItem.
|
|
192
|
-
if (!designItem.
|
|
223
|
+
wmGet(designItem, this._appliedDesignerExtensions).delete(extensionType);
|
|
224
|
+
if (!wmGet(designItem, this._appliedDesignerExtensions).size)
|
|
193
225
|
this.designItemsWithExtentions.delete(designItem);
|
|
194
226
|
}
|
|
195
227
|
}
|
|
196
228
|
else {
|
|
197
|
-
designItem.
|
|
198
|
-
for (let appE of designItem.
|
|
229
|
+
wmGet(designItem, this._shouldAppliedDesignerExtensions).clear();
|
|
230
|
+
for (let appE of wmGet(designItem, this._appliedDesignerExtensions)) {
|
|
199
231
|
for (let e of appE[1]) {
|
|
200
232
|
try {
|
|
201
233
|
e.dispose();
|
|
@@ -205,7 +237,7 @@ export class ExtensionManager {
|
|
|
205
237
|
}
|
|
206
238
|
}
|
|
207
239
|
}
|
|
208
|
-
designItem.
|
|
240
|
+
wmGet(designItem, this._appliedDesignerExtensions).clear();
|
|
209
241
|
this.designItemsWithExtentions.delete(designItem);
|
|
210
242
|
}
|
|
211
243
|
}
|
|
@@ -217,19 +249,20 @@ export class ExtensionManager {
|
|
|
217
249
|
if (recursive && i.hasChildren) {
|
|
218
250
|
this.removeExtensions([...i.children()], true, extensionType);
|
|
219
251
|
}
|
|
220
|
-
i.
|
|
221
|
-
let exts = i.
|
|
252
|
+
wmGet(i, this._shouldAppliedDesignerExtensions).delete(extensionType);
|
|
253
|
+
let exts = wmGet(i, this._appliedDesignerExtensions).get(extensionType);
|
|
222
254
|
if (exts) {
|
|
223
255
|
for (let e of exts) {
|
|
224
256
|
try {
|
|
225
257
|
e.dispose();
|
|
258
|
+
wmGet(i, this._lastApplyEventPerType).delete(extensionType);
|
|
226
259
|
}
|
|
227
260
|
catch (err) {
|
|
228
261
|
console.error(err);
|
|
229
262
|
}
|
|
230
263
|
}
|
|
231
|
-
i.
|
|
232
|
-
if (!i.
|
|
264
|
+
wmGet(i, this._appliedDesignerExtensions).delete(extensionType);
|
|
265
|
+
if (!wmGet(i, this._appliedDesignerExtensions).size)
|
|
233
266
|
this.designItemsWithExtentions.delete(i);
|
|
234
267
|
}
|
|
235
268
|
}
|
|
@@ -239,8 +272,8 @@ export class ExtensionManager {
|
|
|
239
272
|
if (recursive && i.hasChildren) {
|
|
240
273
|
this.removeExtensions([...i.children()], true, extensionType);
|
|
241
274
|
}
|
|
242
|
-
i.
|
|
243
|
-
for (let appE of i.
|
|
275
|
+
wmGet(i, this._shouldAppliedDesignerExtensions).clear();
|
|
276
|
+
for (let appE of wmGet(i, this._appliedDesignerExtensions)) {
|
|
244
277
|
for (let e of appE[1]) {
|
|
245
278
|
try {
|
|
246
279
|
e.dispose();
|
|
@@ -250,7 +283,7 @@ export class ExtensionManager {
|
|
|
250
283
|
}
|
|
251
284
|
}
|
|
252
285
|
}
|
|
253
|
-
i.
|
|
286
|
+
wmGet(i, this._appliedDesignerExtensions).clear();
|
|
254
287
|
this.designItemsWithExtentions.delete(i);
|
|
255
288
|
}
|
|
256
289
|
}
|
|
@@ -263,12 +296,14 @@ export class ExtensionManager {
|
|
|
263
296
|
this.removeExtension(designItem, extensionType);
|
|
264
297
|
}
|
|
265
298
|
else {
|
|
266
|
-
let exts = designItem.
|
|
299
|
+
let exts = wmGet(designItem, this._appliedDesignerExtensions).get(extensionType);
|
|
267
300
|
if (exts) {
|
|
268
301
|
const cache = {};
|
|
269
302
|
for (let e of exts) {
|
|
270
303
|
try {
|
|
271
304
|
e.refresh(cache, event);
|
|
305
|
+
if (event)
|
|
306
|
+
wmGet(designItem, this._lastApplyEventPerType).set(extensionType, event);
|
|
272
307
|
}
|
|
273
308
|
catch (err) {
|
|
274
309
|
console.error(err);
|
|
@@ -279,7 +314,7 @@ export class ExtensionManager {
|
|
|
279
314
|
}
|
|
280
315
|
else {
|
|
281
316
|
const cache = {};
|
|
282
|
-
for (let appE of designItem.
|
|
317
|
+
for (let appE of wmGet(designItem, this._appliedDesignerExtensions)) {
|
|
283
318
|
for (let e of appE[1]) {
|
|
284
319
|
try {
|
|
285
320
|
e.refresh(cache, event);
|
|
@@ -303,7 +338,7 @@ export class ExtensionManager {
|
|
|
303
338
|
this.removeExtension(i, extensionType);
|
|
304
339
|
}
|
|
305
340
|
else {
|
|
306
|
-
let exts = i.
|
|
341
|
+
let exts = wmGet(i, this._appliedDesignerExtensions).get(extensionType);
|
|
307
342
|
if (exts) {
|
|
308
343
|
for (let e of exts) {
|
|
309
344
|
try {
|
|
@@ -328,11 +363,13 @@ export class ExtensionManager {
|
|
|
328
363
|
else {
|
|
329
364
|
const cache = {};
|
|
330
365
|
outer2: for (let i of designItems) {
|
|
331
|
-
for (let appE of i.
|
|
366
|
+
for (let appE of wmGet(i, this._appliedDesignerExtensions)) {
|
|
332
367
|
for (let e of appE[1]) {
|
|
333
368
|
try {
|
|
334
369
|
if (e != ignoredExtension) {
|
|
335
370
|
e.refresh(cache, event);
|
|
371
|
+
if (event)
|
|
372
|
+
wmGet(i, this._lastApplyEventPerType).set(extensionType, event);
|
|
336
373
|
if (timeout) {
|
|
337
374
|
const end = performance.now();
|
|
338
375
|
if (end - start > timeout) {
|
|
@@ -352,39 +389,42 @@ export class ExtensionManager {
|
|
|
352
389
|
}
|
|
353
390
|
this.designerCanvas.overlayLayer.endBatch();
|
|
354
391
|
}
|
|
355
|
-
refreshAllExtensions(designItems, ignoredExtension) {
|
|
392
|
+
refreshAllExtensions(designItems, ignoredExtension, event) {
|
|
356
393
|
this.designerCanvas.overlayLayer.startBatch();
|
|
357
394
|
if (designItems) {
|
|
358
|
-
this.refreshExtensions(designItems, ExtensionType.Directly,
|
|
359
|
-
this.refreshExtensions(designItems, ExtensionType.Permanent,
|
|
360
|
-
this.refreshExtensions(designItems, ExtensionType.Selection,
|
|
361
|
-
this.refreshExtensions(designItems, ExtensionType.PrimarySelection,
|
|
362
|
-
this.refreshExtensions(designItems, ExtensionType.PrimarySelectionContainer,
|
|
363
|
-
this.refreshExtensions(designItems, ExtensionType.MouseOver,
|
|
364
|
-
this.refreshExtensions(designItems, ExtensionType.OnlyOneItemSelected,
|
|
365
|
-
this.refreshExtensions(designItems, ExtensionType.MultipleItemsSelected,
|
|
366
|
-
this.refreshExtensions(designItems, ExtensionType.ContainerDragOverAndCanBeEntered,
|
|
367
|
-
this.refreshExtensions(designItems, ExtensionType.ContainerDrag,
|
|
368
|
-
this.refreshExtensions(designItems, ExtensionType.Doubleclick,
|
|
369
|
-
this.refreshExtensions(designItems, ExtensionType.Placement,
|
|
370
|
-
this.refreshExtensions(designItems, ExtensionType.PrimarySelectionAndCanBeEntered,
|
|
371
|
-
this.refreshExtensions(designItems, ExtensionType.PrimarySelectionContainerAndCanBeEntered,
|
|
395
|
+
this.refreshExtensions(designItems, ExtensionType.Directly, event, ignoredExtension);
|
|
396
|
+
this.refreshExtensions(designItems, ExtensionType.Permanent, event, ignoredExtension);
|
|
397
|
+
this.refreshExtensions(designItems, ExtensionType.Selection, event, ignoredExtension);
|
|
398
|
+
this.refreshExtensions(designItems, ExtensionType.PrimarySelection, event, ignoredExtension);
|
|
399
|
+
this.refreshExtensions(designItems, ExtensionType.PrimarySelectionContainer, event, ignoredExtension);
|
|
400
|
+
this.refreshExtensions(designItems, ExtensionType.MouseOver, event, ignoredExtension);
|
|
401
|
+
this.refreshExtensions(designItems, ExtensionType.OnlyOneItemSelected, event, ignoredExtension);
|
|
402
|
+
this.refreshExtensions(designItems, ExtensionType.MultipleItemsSelected, event, ignoredExtension);
|
|
403
|
+
this.refreshExtensions(designItems, ExtensionType.ContainerDragOverAndCanBeEntered, event, ignoredExtension);
|
|
404
|
+
this.refreshExtensions(designItems, ExtensionType.ContainerDrag, event, ignoredExtension);
|
|
405
|
+
this.refreshExtensions(designItems, ExtensionType.Doubleclick, event, ignoredExtension);
|
|
406
|
+
this.refreshExtensions(designItems, ExtensionType.Placement, event, ignoredExtension);
|
|
407
|
+
this.refreshExtensions(designItems, ExtensionType.PrimarySelectionAndCanBeEntered, event, ignoredExtension);
|
|
408
|
+
this.refreshExtensions(designItems, ExtensionType.PrimarySelectionContainerAndCanBeEntered, event, ignoredExtension);
|
|
372
409
|
}
|
|
373
410
|
this.designerCanvas.overlayLayer.endBatch();
|
|
374
411
|
}
|
|
375
|
-
refreshAllAppliedExtentions() {
|
|
412
|
+
refreshAllAppliedExtentions(event) {
|
|
376
413
|
this.designerCanvas.fillCalculationrects();
|
|
377
|
-
this.refreshAllExtensions([...this.designItemsWithExtentions]);
|
|
414
|
+
this.refreshAllExtensions([...this.designItemsWithExtentions], null, event);
|
|
378
415
|
}
|
|
379
416
|
//TODO: does not work with permanant, when not applied... maybe we need to do in another way
|
|
380
417
|
//maybe store the "shouldAppliedExtensions??"
|
|
381
|
-
reapplyAllAppliedExtentions() {
|
|
418
|
+
reapplyAllAppliedExtentions(filterDesignItems) {
|
|
382
419
|
this.designerCanvas.overlayLayer.startBatch();
|
|
383
420
|
for (let d of ExtensionManager.getAllChildElements(this.designerCanvas.rootDesignItem)) {
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
421
|
+
if (!filterDesignItems || filterDesignItems.includes(d)) {
|
|
422
|
+
const keys = [...wmGet(d, this._shouldAppliedDesignerExtensions).keys()];
|
|
423
|
+
for (let t of keys) {
|
|
424
|
+
const evt = wmGet(d, this._lastApplyEventPerType).get(t);
|
|
425
|
+
this.removeExtension(d, t);
|
|
426
|
+
this.applyExtension(d, t, evt);
|
|
427
|
+
}
|
|
388
428
|
}
|
|
389
429
|
}
|
|
390
430
|
this.designerCanvas.overlayLayer.endBatch();
|
|
@@ -27,5 +27,9 @@ export declare enum ExtensionType {
|
|
|
27
27
|
* do not display grid extension.
|
|
28
28
|
*/
|
|
29
29
|
PrimarySelectionAndCanBeEntered = 13,
|
|
30
|
-
PrimarySelectionContainerAndCanBeEntered = 14
|
|
30
|
+
PrimarySelectionContainerAndCanBeEntered = 14,
|
|
31
|
+
/**
|
|
32
|
+
* Extension when the Primary Selection is refreshed, means clicked a second time
|
|
33
|
+
*/
|
|
34
|
+
PrimarySelectionRefreshed = 15
|
|
31
35
|
}
|
|
@@ -29,4 +29,8 @@ export var ExtensionType;
|
|
|
29
29
|
*/
|
|
30
30
|
ExtensionType[ExtensionType["PrimarySelectionAndCanBeEntered"] = 13] = "PrimarySelectionAndCanBeEntered";
|
|
31
31
|
ExtensionType[ExtensionType["PrimarySelectionContainerAndCanBeEntered"] = 14] = "PrimarySelectionContainerAndCanBeEntered";
|
|
32
|
+
/**
|
|
33
|
+
* Extension when the Primary Selection is refreshed, means clicked a second time
|
|
34
|
+
*/
|
|
35
|
+
ExtensionType[ExtensionType["PrimarySelectionRefreshed"] = 15] = "PrimarySelectionRefreshed";
|
|
32
36
|
})(ExtensionType || (ExtensionType = {}));
|
|
@@ -0,0 +1,12 @@
|
|
|
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 GridToolbarExtension extends AbstractExtension {
|
|
6
|
+
private static template;
|
|
7
|
+
private _foreignObject;
|
|
8
|
+
constructor(extensionManager: IExtensionManager, designerView: IDesignerCanvas, extendedItem: IDesignItem);
|
|
9
|
+
extend(cache: Record<string | symbol, any>, event: MouseEvent): void;
|
|
10
|
+
refresh(cache: Record<string | symbol, any>, event?: MouseEvent): void;
|
|
11
|
+
dispose(): void;
|
|
12
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { html } from "@node-projects/base-custom-webcomponent";
|
|
2
|
+
import { AbstractExtension } from "../AbstractExtension.js";
|
|
3
|
+
import { OverlayLayer } from "../OverlayLayer.js";
|
|
4
|
+
export class GridToolbarExtension extends AbstractExtension {
|
|
5
|
+
static template = html `
|
|
6
|
+
<div style="height: 30px; width: 200px;">
|
|
7
|
+
<span>GRID</span>
|
|
8
|
+
<select id="gridType" style="pointer-events: all; height: 24px; width: 60px; padding: 0;">
|
|
9
|
+
<option>1x1</option>
|
|
10
|
+
<option>1x16</option>
|
|
11
|
+
<option>2x8</option>
|
|
12
|
+
<option>4x4</option>
|
|
13
|
+
<option>8x2</option>
|
|
14
|
+
<option>16x1</option>
|
|
15
|
+
<option>custom</option>
|
|
16
|
+
</select>
|
|
17
|
+
</div>
|
|
18
|
+
`;
|
|
19
|
+
_foreignObject;
|
|
20
|
+
constructor(extensionManager, designerView, extendedItem) {
|
|
21
|
+
super(extensionManager, designerView, extendedItem);
|
|
22
|
+
}
|
|
23
|
+
extend(cache, event) {
|
|
24
|
+
const element = GridToolbarExtension.template.content.cloneNode(true);
|
|
25
|
+
element.querySelectorAll('*').forEach(x => x.onpointerdown = (e) => {
|
|
26
|
+
this.designerCanvas.ignoreEvent(e);
|
|
27
|
+
//this._formatSelection(x.dataset['command'], x.dataset['commandParameter'])
|
|
28
|
+
});
|
|
29
|
+
//element.querySelectorAll('select').forEach(x => x.onpointerdown = (e) => this.designerCanvas.ignoreEvent(e));
|
|
30
|
+
const gridTypeEl = element.querySelector('#gridType');
|
|
31
|
+
gridTypeEl.onchange = () => {
|
|
32
|
+
const parts = gridTypeEl.value.split('x');
|
|
33
|
+
this.extendedItem.updateStyleInSheetOrLocal('grid-template-columns', '1fr '.repeat(parseInt(parts[0])).trim());
|
|
34
|
+
this.extendedItem.updateStyleInSheetOrLocal('grid-template-rows', '1fr '.repeat(parseInt(parts[1])).trim());
|
|
35
|
+
};
|
|
36
|
+
//elements.querySelectorAll('select').forEach(x => x.onchange = () => this._formatSelection(x.dataset['command'], x.value));
|
|
37
|
+
//overlay
|
|
38
|
+
const foreignObject = document.createElementNS('http://www.w3.org/2000/svg', 'foreignObject');
|
|
39
|
+
this._foreignObject = foreignObject;
|
|
40
|
+
foreignObject.classList.add('svg-toolbar');
|
|
41
|
+
foreignObject.setAttribute('width', '1');
|
|
42
|
+
foreignObject.setAttribute('height', '1');
|
|
43
|
+
foreignObject.appendChild(element);
|
|
44
|
+
this.refresh(cache, event);
|
|
45
|
+
this._addOverlay(foreignObject, OverlayLayer.Foreground);
|
|
46
|
+
}
|
|
47
|
+
refresh(cache, event) {
|
|
48
|
+
if (event) {
|
|
49
|
+
const pos = this.designerCanvas.getNormalizedEventCoordinates(event);
|
|
50
|
+
//debugger;
|
|
51
|
+
this._foreignObject.setAttribute('x', '' + (pos.x - 16));
|
|
52
|
+
this._foreignObject.setAttribute('y', '' + (pos.y - 36));
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
dispose() {
|
|
56
|
+
this._removeAllOverlays();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
@@ -10,9 +10,9 @@ export interface IExtensionManager {
|
|
|
10
10
|
removeExtensionInstance(designItem: IDesignItem, extension: IDesignerExtension): any;
|
|
11
11
|
refreshExtension(designItem: IDesignItem, extensionType?: ExtensionType, event?: Event): any;
|
|
12
12
|
refreshExtensions(designItems: IDesignItem[], extensionType?: ExtensionType, event?: Event, ignoredExtension?: IDesignerExtension, timeout?: number): any;
|
|
13
|
-
refreshAllExtensions(designItems: IDesignItem[], ignoredExtension?: IDesignerExtension): any;
|
|
14
|
-
refreshAllAppliedExtentions(): any;
|
|
15
|
-
reapplyAllAppliedExtentions(): any;
|
|
13
|
+
refreshAllExtensions(designItems: IDesignItem[], ignoredExtension?: IDesignerExtension, event?: Event): any;
|
|
14
|
+
refreshAllAppliedExtentions(event?: Event): any;
|
|
15
|
+
reapplyAllAppliedExtentions(filterDesignItems?: IDesignItem[]): any;
|
|
16
16
|
connected(): any;
|
|
17
17
|
disconnected(): any;
|
|
18
18
|
}
|
|
@@ -11,9 +11,13 @@ export class TransformOriginExtensionProvider {
|
|
|
11
11
|
return true;
|
|
12
12
|
if (designItem.hasStyle('transformOrigin'))
|
|
13
13
|
return true;
|
|
14
|
-
|
|
14
|
+
const cs = getComputedStyle(designItem.element);
|
|
15
|
+
if (cs.display != 'inline' && designItem.element.getBoundingClientRect) {
|
|
15
16
|
const r = designItem.element.getBoundingClientRect();
|
|
16
|
-
|
|
17
|
+
const pr = cs.transformOrigin.split(' ');
|
|
18
|
+
const x = parseFloat(pr[0]) - r.width / 2;
|
|
19
|
+
const y = parseFloat(pr[1]) - r.height / 2;
|
|
20
|
+
if (x > 0.5 || x < -0.5 || y > 0.5 || y < -0.5)
|
|
17
21
|
return true;
|
|
18
22
|
}
|
|
19
23
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
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 BlockToolbarExtension extends AbstractExtension {
|
|
6
|
+
private static template;
|
|
7
|
+
private _toolbar;
|
|
8
|
+
constructor(extensionManager: IExtensionManager, designerView: IDesignerCanvas, extendedItem: IDesignItem);
|
|
9
|
+
extend(cache: Record<string | symbol, any>, event: MouseEvent): void;
|
|
10
|
+
refresh(cache: Record<string | symbol, any>, event?: MouseEvent): void;
|
|
11
|
+
dispose(): void;
|
|
12
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { html } from "@node-projects/base-custom-webcomponent";
|
|
2
|
+
import { AbstractExtension } from "../AbstractExtension.js";
|
|
3
|
+
export class BlockToolbarExtension extends AbstractExtension {
|
|
4
|
+
static template = html `
|
|
5
|
+
<div style="height: 100%; width: 100%;">
|
|
6
|
+
<select id="displayType" style="pointer-events: all; height: 24px; width: 70px; padding: 0; font-weight: 900; text-transform: uppercase; margin-right: 10px;">
|
|
7
|
+
<option selected>block</option>
|
|
8
|
+
<option>flex</option>
|
|
9
|
+
<option>grid</option>
|
|
10
|
+
</select>
|
|
11
|
+
</div>
|
|
12
|
+
`;
|
|
13
|
+
_toolbar;
|
|
14
|
+
constructor(extensionManager, designerView, extendedItem) {
|
|
15
|
+
super(extensionManager, designerView, extendedItem);
|
|
16
|
+
}
|
|
17
|
+
extend(cache, event) {
|
|
18
|
+
this._toolbar = this.createToolbar(BlockToolbarExtension.template, 200, 30);
|
|
19
|
+
const displayTypeEl = this._toolbar.getById('displayType');
|
|
20
|
+
displayTypeEl.onchange = () => {
|
|
21
|
+
this.extendedItem.updateStyleInSheetOrLocal('display', displayTypeEl.value);
|
|
22
|
+
this.extensionManager.reapplyAllAppliedExtentions([this.extendedItem]);
|
|
23
|
+
};
|
|
24
|
+
this.refresh(cache, event);
|
|
25
|
+
}
|
|
26
|
+
refresh(cache, event) {
|
|
27
|
+
if (event) {
|
|
28
|
+
const pos = this.designerCanvas.getNormalizedEventCoordinates(event);
|
|
29
|
+
this._toolbar.updatePosition({ x: (pos.x - 16), y: (pos.y - 44) });
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
dispose() {
|
|
33
|
+
this._removeAllOverlays();
|
|
34
|
+
}
|
|
35
|
+
}
|
package/dist/elements/widgets/designerView/extensions/block/BlockToolbarExtensionProvider.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
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 class BlockToolbarExtensionProvider implements IDesignerExtensionProvider {
|
|
7
|
+
shouldExtend(extensionManager: IExtensionManager, designerView: IDesignerCanvas, designItem: IDesignItem): boolean;
|
|
8
|
+
getExtension(extensionManager: IExtensionManager, designerView: IDesignerCanvas, designItem: IDesignItem): IDesignerExtension;
|
|
9
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BlockToolbarExtension } from './BlockToolbarExtension.js';
|
|
2
|
+
import { NodeType } from '../../../../item/NodeType.js';
|
|
3
|
+
export class BlockToolbarExtensionProvider {
|
|
4
|
+
shouldExtend(extensionManager, designerView, designItem) {
|
|
5
|
+
if (designItem.nodeType === NodeType.Element && getComputedStyle(designItem.element).display === 'block')
|
|
6
|
+
return true;
|
|
7
|
+
return false;
|
|
8
|
+
}
|
|
9
|
+
getExtension(extensionManager, designerView, designItem) {
|
|
10
|
+
return new BlockToolbarExtension(extensionManager, designerView, designItem);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
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 FlexToolbarExtension extends AbstractExtension {
|
|
6
|
+
private static template;
|
|
7
|
+
private _toolbar;
|
|
8
|
+
constructor(extensionManager: IExtensionManager, designerView: IDesignerCanvas, extendedItem: IDesignItem);
|
|
9
|
+
extend(cache: Record<string | symbol, any>, event: MouseEvent): void;
|
|
10
|
+
refresh(cache: Record<string | symbol, any>, event?: MouseEvent): void;
|
|
11
|
+
dispose(): void;
|
|
12
|
+
}
|