@node-projects/web-component-designer 0.0.265 → 0.0.267
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/bindableObjectsService/IBindableObjectDragDropService.d.ts +7 -3
- package/dist/elements/widgets/designerView/designerCanvas.js +1 -2
- package/dist/elements/widgets/propertyGrid/PropertyGridPropertyList.d.ts +3 -0
- package/dist/elements/widgets/propertyGrid/PropertyGridPropertyList.js +41 -0
- package/dist/elements/widgets/propertyGrid/PropertyGridWithHeader.js +1 -1
- package/package.json +1 -1
|
@@ -1,8 +1,12 @@
|
|
|
1
|
+
import { IDesignItem } from "../../item/IDesignItem.js";
|
|
1
2
|
import { IDesignerCanvas } from "../../widgets/designerView/IDesignerCanvas.js";
|
|
3
|
+
import { IProperty } from "../propertiesService/IProperty.js";
|
|
2
4
|
import { IBindableObject } from "./IBindableObject.js";
|
|
3
5
|
export interface IBindableObjectDragDropService {
|
|
4
|
-
dragEnter(designerCanvas: IDesignerCanvas, event: DragEvent, element: Element):
|
|
5
|
-
dragLeave(designerCanvas: IDesignerCanvas, event: DragEvent, element: Element):
|
|
6
|
+
dragEnter(designerCanvas: IDesignerCanvas, event: DragEvent, element: Element): void;
|
|
7
|
+
dragLeave(designerCanvas: IDesignerCanvas, event: DragEvent, element: Element): void;
|
|
6
8
|
dragOver(designerCanvas: IDesignerCanvas, event: DragEvent, element: Element): 'none' | 'copy' | 'link' | 'move';
|
|
7
|
-
drop(designerCanvas: IDesignerCanvas, event: DragEvent, bindableObject: IBindableObject<any>, element: Element):
|
|
9
|
+
drop(designerCanvas: IDesignerCanvas, event: DragEvent, bindableObject: IBindableObject<any>, element: Element): void;
|
|
10
|
+
dragOverOnProperty?(event: DragEvent, property: IProperty, designItems: IDesignItem[]): 'none' | 'copy' | 'link' | 'move';
|
|
11
|
+
dropOnProperty?(event: DragEvent, property: IProperty, bindableObject: IBindableObject<any>, designItems: IDesignItem[]): void;
|
|
8
12
|
}
|
|
@@ -780,8 +780,7 @@ export class DesignerCanvas extends BaseCustomWebComponentLazyAppend {
|
|
|
780
780
|
const ddService = this.serviceContainer.bindableObjectDragDropService;
|
|
781
781
|
if (ddService) {
|
|
782
782
|
const el = this.getElementAtPoint({ x: event.x, y: event.y });
|
|
783
|
-
|
|
784
|
-
event.dataTransfer.dropEffect = effect;
|
|
783
|
+
ddService.drop(this, event, bo, el);
|
|
785
784
|
}
|
|
786
785
|
}
|
|
787
786
|
else {
|
|
@@ -17,6 +17,9 @@ export declare class PropertyGridPropertyList extends BaseCustomWebComponentLazy
|
|
|
17
17
|
createElements(designItem: IDesignItem): void;
|
|
18
18
|
private createPropertyGroups;
|
|
19
19
|
private createPropertyEditors;
|
|
20
|
+
private _onDragLeave;
|
|
21
|
+
private _onDragOver;
|
|
22
|
+
private _onDrop;
|
|
20
23
|
openContextMenu(event: MouseEvent, property: IProperty): void;
|
|
21
24
|
static openContextMenu(event: MouseEvent, designItems: IDesignItem[], property: IProperty): void;
|
|
22
25
|
designItemsChanged(designItems: IDesignItem[]): void;
|
|
@@ -3,6 +3,7 @@ import { RefreshMode } from '../../services/propertiesService/IPropertiesService
|
|
|
3
3
|
import { ValueType } from '../../services/propertiesService/ValueType.js';
|
|
4
4
|
import { ContextMenu } from '../../helper/contextMenu/ContextMenu.js';
|
|
5
5
|
import { PropertyType } from '../../services/propertiesService/PropertyType.js';
|
|
6
|
+
import { dragDropFormatNameBindingObject } from '../../../Constants.js';
|
|
6
7
|
export class PropertyGridPropertyList extends BaseCustomWebComponentLazyAppend {
|
|
7
8
|
_div;
|
|
8
9
|
_propertyMap = new Map();
|
|
@@ -90,6 +91,10 @@ export class PropertyGridPropertyList extends BaseCustomWebComponentLazyAppend {
|
|
|
90
91
|
font-size: 10px;
|
|
91
92
|
text-decoration: underline;
|
|
92
93
|
}
|
|
94
|
+
.createBinding {
|
|
95
|
+
outline: 2px dashed orange;
|
|
96
|
+
outline-offset: -2px;
|
|
97
|
+
}
|
|
93
98
|
`;
|
|
94
99
|
}
|
|
95
100
|
constructor(serviceContainer) {
|
|
@@ -181,6 +186,9 @@ export class PropertyGridPropertyList extends BaseCustomWebComponentLazyAppend {
|
|
|
181
186
|
label.htmlFor = p.name;
|
|
182
187
|
label.textContent = p.name;
|
|
183
188
|
label.title = p.name;
|
|
189
|
+
label.ondragleave = (e) => this._onDragLeave(e, p, label);
|
|
190
|
+
label.ondragover = (e) => this._onDragOver(e, p, label);
|
|
191
|
+
label.ondrop = (e) => this._onDrop(e, p, label);
|
|
184
192
|
this._div.appendChild(label);
|
|
185
193
|
}
|
|
186
194
|
else {
|
|
@@ -206,6 +214,39 @@ export class PropertyGridPropertyList extends BaseCustomWebComponentLazyAppend {
|
|
|
206
214
|
}
|
|
207
215
|
}
|
|
208
216
|
}
|
|
217
|
+
_onDragLeave(event, property, label) {
|
|
218
|
+
event.preventDefault();
|
|
219
|
+
label.classList.remove('createBinding');
|
|
220
|
+
}
|
|
221
|
+
_onDragOver(event, property, label) {
|
|
222
|
+
event.preventDefault();
|
|
223
|
+
const hasTransferDataBindingObject = event.dataTransfer.types.indexOf(dragDropFormatNameBindingObject) >= 0;
|
|
224
|
+
if (hasTransferDataBindingObject) {
|
|
225
|
+
const ddService = this._serviceContainer.bindableObjectDragDropService;
|
|
226
|
+
if (ddService) {
|
|
227
|
+
const effect = ddService.dragOverOnProperty(event, property, this._designItems);
|
|
228
|
+
if ((effect ?? 'none') != 'none') {
|
|
229
|
+
label.classList.add('createBinding');
|
|
230
|
+
event.dataTransfer.dropEffect = effect;
|
|
231
|
+
}
|
|
232
|
+
else {
|
|
233
|
+
label.classList.remove('createBinding');
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
_onDrop(event, property, label) {
|
|
239
|
+
event.preventDefault();
|
|
240
|
+
label.classList.remove('createBinding');
|
|
241
|
+
const transferDataBindingObject = event.dataTransfer.getData(dragDropFormatNameBindingObject);
|
|
242
|
+
if (transferDataBindingObject) {
|
|
243
|
+
const bo = JSON.parse(transferDataBindingObject);
|
|
244
|
+
const ddService = this._serviceContainer.bindableObjectDragDropService;
|
|
245
|
+
if (ddService) {
|
|
246
|
+
ddService.dropOnProperty(event, property, bo, this._designItems);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
}
|
|
209
250
|
openContextMenu(event, property) {
|
|
210
251
|
PropertyGridPropertyList.openContextMenu(event, this._designItems, property);
|
|
211
252
|
}
|
|
@@ -15,7 +15,7 @@ export class PropertyGridWithHeader extends BaseCustomWebComponentLazyAppend {
|
|
|
15
15
|
}
|
|
16
16
|
div.root {
|
|
17
17
|
display: grid;
|
|
18
|
-
grid-template-columns:
|
|
18
|
+
grid-template-columns: 11px 11px auto 1fr;
|
|
19
19
|
padding: 3px 6px;
|
|
20
20
|
font-family: monospace;
|
|
21
21
|
align-items: center;
|