@elementor/editor-canvas 3.35.0-399 → 3.35.0-401
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/index.d.mts +4 -2
- package/dist/index.d.ts +4 -2
- package/dist/index.js +15 -3
- package/dist/index.mjs +14 -3
- package/package.json +18 -18
- package/src/index.ts +1 -0
- package/src/sync/__tests__/drag-element-from-panel.test.ts +69 -0
- package/src/sync/drag-element-from-panel.ts +18 -3
package/dist/index.d.mts
CHANGED
|
@@ -12,6 +12,8 @@ declare const STYLE_SCHEMA_URI = "elementor://styles/schema/{category}";
|
|
|
12
12
|
|
|
13
13
|
declare function init(): void;
|
|
14
14
|
|
|
15
|
+
declare function isAtomicWidget(container: V1Element | undefined): boolean;
|
|
16
|
+
|
|
15
17
|
type DomRenderer = {
|
|
16
18
|
register: TwingArrayLoader['setTemplate'];
|
|
17
19
|
render: TwingEnvironment['render'];
|
|
@@ -209,8 +211,8 @@ declare const styleTransformersRegistry: {
|
|
|
209
211
|
};
|
|
210
212
|
};
|
|
211
213
|
|
|
212
|
-
declare const startDragElementFromPanel: (props: Omit<V1ElementModelProps, "id">) => void;
|
|
213
214
|
declare const endDragElementFromPanel: () => void;
|
|
215
|
+
declare const startDragElementFromPanel: (props: Omit<V1ElementModelProps, "id">, event: React.DragEvent) => void;
|
|
214
216
|
|
|
215
217
|
declare function getCanvasIframeDocument(): Document | null | undefined;
|
|
216
218
|
|
|
@@ -251,4 +253,4 @@ declare const UnknownStyleStateError: {
|
|
|
251
253
|
isError(error: unknown): error is Error;
|
|
252
254
|
};
|
|
253
255
|
|
|
254
|
-
export { type AnyTransformer, BREAKPOINTS_SCHEMA_URI, type BackboneModel, type CreateTemplatedElementTypeOptions, DOCUMENT_STRUCTURE_URI, type ElementModel, ElementType, ElementView, type LegacyWindow, type PropsResolver, RenderContext, type ReplacementSettings, STYLE_SCHEMA_URI, UnknownStyleStateError, UnknownStyleTypeError, WIDGET_SCHEMA_URI, createPropsResolver, createTemplatedElementView, createTransformer, createTransformersRegistry, endDragElementFromPanel, getCanvasIframeDocument, init, registerElementType, settingsTransformersRegistry, startDragElementFromPanel, styleTransformersRegistry };
|
|
256
|
+
export { type AnyTransformer, BREAKPOINTS_SCHEMA_URI, type BackboneModel, type CreateTemplatedElementTypeOptions, DOCUMENT_STRUCTURE_URI, type ElementModel, ElementType, ElementView, type LegacyWindow, type PropsResolver, RenderContext, type ReplacementSettings, STYLE_SCHEMA_URI, UnknownStyleStateError, UnknownStyleTypeError, WIDGET_SCHEMA_URI, createPropsResolver, createTemplatedElementView, createTransformer, createTransformersRegistry, endDragElementFromPanel, getCanvasIframeDocument, init, isAtomicWidget, registerElementType, settingsTransformersRegistry, startDragElementFromPanel, styleTransformersRegistry };
|
package/dist/index.d.ts
CHANGED
|
@@ -12,6 +12,8 @@ declare const STYLE_SCHEMA_URI = "elementor://styles/schema/{category}";
|
|
|
12
12
|
|
|
13
13
|
declare function init(): void;
|
|
14
14
|
|
|
15
|
+
declare function isAtomicWidget(container: V1Element | undefined): boolean;
|
|
16
|
+
|
|
15
17
|
type DomRenderer = {
|
|
16
18
|
register: TwingArrayLoader['setTemplate'];
|
|
17
19
|
render: TwingEnvironment['render'];
|
|
@@ -209,8 +211,8 @@ declare const styleTransformersRegistry: {
|
|
|
209
211
|
};
|
|
210
212
|
};
|
|
211
213
|
|
|
212
|
-
declare const startDragElementFromPanel: (props: Omit<V1ElementModelProps, "id">) => void;
|
|
213
214
|
declare const endDragElementFromPanel: () => void;
|
|
215
|
+
declare const startDragElementFromPanel: (props: Omit<V1ElementModelProps, "id">, event: React.DragEvent) => void;
|
|
214
216
|
|
|
215
217
|
declare function getCanvasIframeDocument(): Document | null | undefined;
|
|
216
218
|
|
|
@@ -251,4 +253,4 @@ declare const UnknownStyleStateError: {
|
|
|
251
253
|
isError(error: unknown): error is Error;
|
|
252
254
|
};
|
|
253
255
|
|
|
254
|
-
export { type AnyTransformer, BREAKPOINTS_SCHEMA_URI, type BackboneModel, type CreateTemplatedElementTypeOptions, DOCUMENT_STRUCTURE_URI, type ElementModel, ElementType, ElementView, type LegacyWindow, type PropsResolver, RenderContext, type ReplacementSettings, STYLE_SCHEMA_URI, UnknownStyleStateError, UnknownStyleTypeError, WIDGET_SCHEMA_URI, createPropsResolver, createTemplatedElementView, createTransformer, createTransformersRegistry, endDragElementFromPanel, getCanvasIframeDocument, init, registerElementType, settingsTransformersRegistry, startDragElementFromPanel, styleTransformersRegistry };
|
|
256
|
+
export { type AnyTransformer, BREAKPOINTS_SCHEMA_URI, type BackboneModel, type CreateTemplatedElementTypeOptions, DOCUMENT_STRUCTURE_URI, type ElementModel, ElementType, ElementView, type LegacyWindow, type PropsResolver, RenderContext, type ReplacementSettings, STYLE_SCHEMA_URI, UnknownStyleStateError, UnknownStyleTypeError, WIDGET_SCHEMA_URI, createPropsResolver, createTemplatedElementView, createTransformer, createTransformersRegistry, endDragElementFromPanel, getCanvasIframeDocument, init, isAtomicWidget, registerElementType, settingsTransformersRegistry, startDragElementFromPanel, styleTransformersRegistry };
|
package/dist/index.js
CHANGED
|
@@ -44,6 +44,7 @@ __export(index_exports, {
|
|
|
44
44
|
endDragElementFromPanel: () => endDragElementFromPanel,
|
|
45
45
|
getCanvasIframeDocument: () => getCanvasIframeDocument,
|
|
46
46
|
init: () => init,
|
|
47
|
+
isAtomicWidget: () => isAtomicWidget,
|
|
47
48
|
registerElementType: () => registerElementType,
|
|
48
49
|
settingsTransformersRegistry: () => settingsTransformersRegistry,
|
|
49
50
|
startDragElementFromPanel: () => startDragElementFromPanel,
|
|
@@ -3588,13 +3589,23 @@ var RenderContext = class {
|
|
|
3588
3589
|
};
|
|
3589
3590
|
|
|
3590
3591
|
// src/sync/drag-element-from-panel.ts
|
|
3591
|
-
var
|
|
3592
|
+
var DRAG_GROUPS = ["elementor-element"];
|
|
3593
|
+
var endDragElementFromPanel = () => {
|
|
3594
|
+
getElementorChannels()?.panelElements?.trigger("element:drag:end");
|
|
3595
|
+
};
|
|
3596
|
+
var startDragElementFromPanel = (props, event) => {
|
|
3597
|
+
setDragGroups(event);
|
|
3592
3598
|
const channels = getElementorChannels();
|
|
3593
3599
|
channels?.editor.reply("element:dragged", null);
|
|
3594
3600
|
channels?.panelElements.reply("element:selected", getLegacyPanelElementView(props)).trigger("element:drag:start");
|
|
3595
3601
|
};
|
|
3596
|
-
var
|
|
3597
|
-
|
|
3602
|
+
var setDragGroups = (event) => {
|
|
3603
|
+
const dataContainer = { groups: getDragGroups(event) };
|
|
3604
|
+
event.dataTransfer?.setData(JSON.stringify(dataContainer), "true");
|
|
3605
|
+
};
|
|
3606
|
+
var getDragGroups = (event) => {
|
|
3607
|
+
const dataContainer = event.dataTransfer?.getData("text/plain");
|
|
3608
|
+
return dataContainer ? JSON.parse(dataContainer).groups : DRAG_GROUPS;
|
|
3598
3609
|
};
|
|
3599
3610
|
var getElementorChannels = () => {
|
|
3600
3611
|
const extendedWindow = window;
|
|
@@ -3637,6 +3648,7 @@ var getLegacyPanelElementView = ({ settings, ...rest }) => {
|
|
|
3637
3648
|
endDragElementFromPanel,
|
|
3638
3649
|
getCanvasIframeDocument,
|
|
3639
3650
|
init,
|
|
3651
|
+
isAtomicWidget,
|
|
3640
3652
|
registerElementType,
|
|
3641
3653
|
settingsTransformersRegistry,
|
|
3642
3654
|
startDragElementFromPanel,
|
package/dist/index.mjs
CHANGED
|
@@ -3579,13 +3579,23 @@ var RenderContext = class {
|
|
|
3579
3579
|
};
|
|
3580
3580
|
|
|
3581
3581
|
// src/sync/drag-element-from-panel.ts
|
|
3582
|
-
var
|
|
3582
|
+
var DRAG_GROUPS = ["elementor-element"];
|
|
3583
|
+
var endDragElementFromPanel = () => {
|
|
3584
|
+
getElementorChannels()?.panelElements?.trigger("element:drag:end");
|
|
3585
|
+
};
|
|
3586
|
+
var startDragElementFromPanel = (props, event) => {
|
|
3587
|
+
setDragGroups(event);
|
|
3583
3588
|
const channels = getElementorChannels();
|
|
3584
3589
|
channels?.editor.reply("element:dragged", null);
|
|
3585
3590
|
channels?.panelElements.reply("element:selected", getLegacyPanelElementView(props)).trigger("element:drag:start");
|
|
3586
3591
|
};
|
|
3587
|
-
var
|
|
3588
|
-
|
|
3592
|
+
var setDragGroups = (event) => {
|
|
3593
|
+
const dataContainer = { groups: getDragGroups(event) };
|
|
3594
|
+
event.dataTransfer?.setData(JSON.stringify(dataContainer), "true");
|
|
3595
|
+
};
|
|
3596
|
+
var getDragGroups = (event) => {
|
|
3597
|
+
const dataContainer = event.dataTransfer?.getData("text/plain");
|
|
3598
|
+
return dataContainer ? JSON.parse(dataContainer).groups : DRAG_GROUPS;
|
|
3589
3599
|
};
|
|
3590
3600
|
var getElementorChannels = () => {
|
|
3591
3601
|
const extendedWindow = window;
|
|
@@ -3627,6 +3637,7 @@ export {
|
|
|
3627
3637
|
endDragElementFromPanel,
|
|
3628
3638
|
getCanvasIframeDocument,
|
|
3629
3639
|
init,
|
|
3640
|
+
isAtomicWidget,
|
|
3630
3641
|
registerElementType,
|
|
3631
3642
|
settingsTransformersRegistry,
|
|
3632
3643
|
startDragElementFromPanel,
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elementor/editor-canvas",
|
|
3
3
|
"description": "Elementor Editor Canvas",
|
|
4
|
-
"version": "3.35.0-
|
|
4
|
+
"version": "3.35.0-401",
|
|
5
5
|
"private": false,
|
|
6
6
|
"author": "Elementor Team",
|
|
7
7
|
"homepage": "https://elementor.com/",
|
|
@@ -37,24 +37,24 @@
|
|
|
37
37
|
"react-dom": "^18.3.1"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@elementor/editor": "3.35.0-
|
|
41
|
-
"@elementor/editor-controls": "3.35.0-
|
|
42
|
-
"@elementor/editor-documents": "3.35.0-
|
|
43
|
-
"@elementor/editor-elements": "3.35.0-
|
|
44
|
-
"@elementor/editor-interactions": "3.35.0-
|
|
45
|
-
"@elementor/editor-mcp": "3.35.0-
|
|
46
|
-
"@elementor/editor-notifications": "3.35.0-
|
|
47
|
-
"@elementor/editor-props": "3.35.0-
|
|
48
|
-
"@elementor/editor-responsive": "3.35.0-
|
|
49
|
-
"@elementor/editor-styles": "3.35.0-
|
|
50
|
-
"@elementor/editor-styles-repository": "3.35.0-
|
|
51
|
-
"@elementor/editor-ui": "3.35.0-
|
|
52
|
-
"@elementor/editor-v1-adapters": "3.35.0-
|
|
53
|
-
"@elementor/schema": "3.35.0-
|
|
54
|
-
"@elementor/twing": "3.35.0-
|
|
40
|
+
"@elementor/editor": "3.35.0-401",
|
|
41
|
+
"@elementor/editor-controls": "3.35.0-401",
|
|
42
|
+
"@elementor/editor-documents": "3.35.0-401",
|
|
43
|
+
"@elementor/editor-elements": "3.35.0-401",
|
|
44
|
+
"@elementor/editor-interactions": "3.35.0-401",
|
|
45
|
+
"@elementor/editor-mcp": "3.35.0-401",
|
|
46
|
+
"@elementor/editor-notifications": "3.35.0-401",
|
|
47
|
+
"@elementor/editor-props": "3.35.0-401",
|
|
48
|
+
"@elementor/editor-responsive": "3.35.0-401",
|
|
49
|
+
"@elementor/editor-styles": "3.35.0-401",
|
|
50
|
+
"@elementor/editor-styles-repository": "3.35.0-401",
|
|
51
|
+
"@elementor/editor-ui": "3.35.0-401",
|
|
52
|
+
"@elementor/editor-v1-adapters": "3.35.0-401",
|
|
53
|
+
"@elementor/schema": "3.35.0-401",
|
|
54
|
+
"@elementor/twing": "3.35.0-401",
|
|
55
55
|
"@elementor/ui": "1.36.17",
|
|
56
|
-
"@elementor/utils": "3.35.0-
|
|
57
|
-
"@elementor/wp-media": "3.35.0-
|
|
56
|
+
"@elementor/utils": "3.35.0-401",
|
|
57
|
+
"@elementor/wp-media": "3.35.0-401",
|
|
58
58
|
"@floating-ui/react": "^0.27.5",
|
|
59
59
|
"@wordpress/i18n": "^5.13.0"
|
|
60
60
|
},
|
package/src/index.ts
CHANGED
|
@@ -2,6 +2,7 @@ export { BREAKPOINTS_SCHEMA_URI } from './mcp/resources/breakpoints-resource';
|
|
|
2
2
|
export { STYLE_SCHEMA_URI } from './mcp/resources/widgets-schema-resource';
|
|
3
3
|
|
|
4
4
|
export { init } from './init';
|
|
5
|
+
export { isAtomicWidget } from './style-commands/utils';
|
|
5
6
|
|
|
6
7
|
export {
|
|
7
8
|
createTemplatedElementView,
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { endDragElementFromPanel, startDragElementFromPanel } from '../drag-element-from-panel';
|
|
2
|
+
import { type CanvasExtendedWindow } from '../types';
|
|
3
|
+
|
|
4
|
+
const EXPECTED_DRAG_GROUPS = [ 'elementor-element' ];
|
|
5
|
+
|
|
6
|
+
const mockTrigger = jest.fn();
|
|
7
|
+
const mockReply = jest.fn( () => ( { trigger: mockTrigger } ) );
|
|
8
|
+
|
|
9
|
+
describe( 'drag-element-from-panel', () => {
|
|
10
|
+
const extendedWindow = window as unknown as CanvasExtendedWindow;
|
|
11
|
+
|
|
12
|
+
extendedWindow.elementor = {
|
|
13
|
+
channels: {
|
|
14
|
+
editor: { reply: mockReply },
|
|
15
|
+
panelElements: { reply: mockReply, trigger: mockTrigger },
|
|
16
|
+
} as unknown as never,
|
|
17
|
+
modules: {
|
|
18
|
+
elements: {
|
|
19
|
+
models: {
|
|
20
|
+
Element: jest.fn( ( props ) => props ),
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
describe( 'startDragElementFromPanel', () => {
|
|
27
|
+
it( 'should set dataTransfer with drag groups', () => {
|
|
28
|
+
// Arrange
|
|
29
|
+
const mockSetData = jest.fn();
|
|
30
|
+
const mockEvent = {
|
|
31
|
+
dataTransfer: {
|
|
32
|
+
setData: mockSetData,
|
|
33
|
+
getData: () => '',
|
|
34
|
+
},
|
|
35
|
+
} as unknown as React.DragEvent;
|
|
36
|
+
|
|
37
|
+
// Act
|
|
38
|
+
startDragElementFromPanel( { elType: 'widget', widgetType: 'test' }, mockEvent );
|
|
39
|
+
|
|
40
|
+
// Assert
|
|
41
|
+
expect( mockSetData ).toHaveBeenCalledWith( JSON.stringify( { groups: EXPECTED_DRAG_GROUPS } ), 'true' );
|
|
42
|
+
} );
|
|
43
|
+
|
|
44
|
+
it( 'should trigger panel element events', () => {
|
|
45
|
+
// Arrange
|
|
46
|
+
const mockEvent = {
|
|
47
|
+
dataTransfer: { setData: jest.fn(), getData: () => '' },
|
|
48
|
+
} as unknown as React.DragEvent;
|
|
49
|
+
|
|
50
|
+
// Act
|
|
51
|
+
startDragElementFromPanel( { elType: 'widget', widgetType: 'test' }, mockEvent );
|
|
52
|
+
|
|
53
|
+
// Assert
|
|
54
|
+
expect( mockReply ).toHaveBeenCalledWith( 'element:dragged', null );
|
|
55
|
+
expect( mockReply ).toHaveBeenCalledWith( 'element:selected', expect.any( Object ) );
|
|
56
|
+
expect( mockTrigger ).toHaveBeenCalledWith( 'element:drag:start' );
|
|
57
|
+
} );
|
|
58
|
+
} );
|
|
59
|
+
|
|
60
|
+
describe( 'endDragElementFromPanel', () => {
|
|
61
|
+
it( 'should trigger element:drag:end event', () => {
|
|
62
|
+
// Act
|
|
63
|
+
endDragElementFromPanel();
|
|
64
|
+
|
|
65
|
+
// Assert
|
|
66
|
+
expect( mockTrigger ).toHaveBeenCalledWith( 'element:drag:end' );
|
|
67
|
+
} );
|
|
68
|
+
} );
|
|
69
|
+
} );
|
|
@@ -2,7 +2,15 @@ import { type V1ElementModelProps } from '@elementor/editor-elements';
|
|
|
2
2
|
|
|
3
3
|
import { type CanvasExtendedWindow } from './types';
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
const DRAG_GROUPS = [ 'elementor-element' ];
|
|
6
|
+
|
|
7
|
+
export const endDragElementFromPanel = () => {
|
|
8
|
+
getElementorChannels()?.panelElements?.trigger( 'element:drag:end' );
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export const startDragElementFromPanel = ( props: Omit< V1ElementModelProps, 'id' >, event: React.DragEvent ) => {
|
|
12
|
+
setDragGroups( event );
|
|
13
|
+
|
|
6
14
|
const channels = getElementorChannels();
|
|
7
15
|
|
|
8
16
|
channels?.editor.reply( 'element:dragged', null );
|
|
@@ -12,8 +20,15 @@ export const startDragElementFromPanel = ( props: Omit< V1ElementModelProps, 'id
|
|
|
12
20
|
.trigger( 'element:drag:start' );
|
|
13
21
|
};
|
|
14
22
|
|
|
15
|
-
|
|
16
|
-
|
|
23
|
+
const setDragGroups = ( event: React.DragEvent ) => {
|
|
24
|
+
const dataContainer = { groups: getDragGroups( event ) };
|
|
25
|
+
event.dataTransfer?.setData( JSON.stringify( dataContainer ), 'true' );
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const getDragGroups = ( event: React.DragEvent ) => {
|
|
29
|
+
const dataContainer = event.dataTransfer?.getData( 'text/plain' );
|
|
30
|
+
|
|
31
|
+
return dataContainer ? JSON.parse( dataContainer ).groups : DRAG_GROUPS;
|
|
17
32
|
};
|
|
18
33
|
|
|
19
34
|
const getElementorChannels = () => {
|