@elementor/editor-canvas 3.33.0-119 → 3.33.0-121
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 +5 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.js +39 -0
- package/dist/index.mjs +37 -0
- package/package.json +13 -13
- package/src/index.ts +1 -0
- package/src/sync/drag-element-from-panel.ts +49 -0
- package/src/sync/types.ts +27 -1
package/dist/index.d.mts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as _elementor_editor_props from '@elementor/editor-props';
|
|
2
2
|
import { AnyTransformable, PropTypeKey, PropsSchema, Props } from '@elementor/editor-props';
|
|
3
|
+
import { V1ElementModelProps } from '@elementor/editor-elements';
|
|
3
4
|
|
|
4
5
|
declare function init(): void;
|
|
5
6
|
|
|
@@ -59,4 +60,7 @@ type ResolvedProps = Record<string, unknown>;
|
|
|
59
60
|
type PropsResolver = ReturnType<typeof createPropsResolver>;
|
|
60
61
|
declare function createPropsResolver({ transformers, schema: initialSchema, onPropResolve }: CreatePropResolverArgs): ({ props, schema, signal }: ResolveArgs) => Promise<ResolvedProps>;
|
|
61
62
|
|
|
62
|
-
|
|
63
|
+
declare const startDragElementFromPanel: (props: Omit<V1ElementModelProps, "id">) => void;
|
|
64
|
+
declare const endDragElementFromPanel: () => void;
|
|
65
|
+
|
|
66
|
+
export { type PropsResolver, createPropsResolver, createTransformer, createTransformersRegistry, endDragElementFromPanel, init, settingsTransformersRegistry, startDragElementFromPanel, styleTransformersRegistry };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as _elementor_editor_props from '@elementor/editor-props';
|
|
2
2
|
import { AnyTransformable, PropTypeKey, PropsSchema, Props } from '@elementor/editor-props';
|
|
3
|
+
import { V1ElementModelProps } from '@elementor/editor-elements';
|
|
3
4
|
|
|
4
5
|
declare function init(): void;
|
|
5
6
|
|
|
@@ -59,4 +60,7 @@ type ResolvedProps = Record<string, unknown>;
|
|
|
59
60
|
type PropsResolver = ReturnType<typeof createPropsResolver>;
|
|
60
61
|
declare function createPropsResolver({ transformers, schema: initialSchema, onPropResolve }: CreatePropResolverArgs): ({ props, schema, signal }: ResolveArgs) => Promise<ResolvedProps>;
|
|
61
62
|
|
|
62
|
-
|
|
63
|
+
declare const startDragElementFromPanel: (props: Omit<V1ElementModelProps, "id">) => void;
|
|
64
|
+
declare const endDragElementFromPanel: () => void;
|
|
65
|
+
|
|
66
|
+
export { type PropsResolver, createPropsResolver, createTransformer, createTransformersRegistry, endDragElementFromPanel, init, settingsTransformersRegistry, startDragElementFromPanel, styleTransformersRegistry };
|
package/dist/index.js
CHANGED
|
@@ -33,8 +33,10 @@ __export(index_exports, {
|
|
|
33
33
|
createPropsResolver: () => createPropsResolver,
|
|
34
34
|
createTransformer: () => createTransformer,
|
|
35
35
|
createTransformersRegistry: () => createTransformersRegistry,
|
|
36
|
+
endDragElementFromPanel: () => endDragElementFromPanel,
|
|
36
37
|
init: () => init,
|
|
37
38
|
settingsTransformersRegistry: () => settingsTransformersRegistry,
|
|
39
|
+
startDragElementFromPanel: () => startDragElementFromPanel,
|
|
38
40
|
styleTransformersRegistry: () => styleTransformersRegistry
|
|
39
41
|
});
|
|
40
42
|
module.exports = __toCommonJS(index_exports);
|
|
@@ -1604,13 +1606,50 @@ function init() {
|
|
|
1604
1606
|
component: ClassesRename
|
|
1605
1607
|
});
|
|
1606
1608
|
}
|
|
1609
|
+
|
|
1610
|
+
// src/sync/drag-element-from-panel.ts
|
|
1611
|
+
var startDragElementFromPanel = (props) => {
|
|
1612
|
+
const channels = getElementorChannels();
|
|
1613
|
+
channels?.editor.reply("element:dragged", null);
|
|
1614
|
+
channels?.panelElements.reply("element:selected", getLegacyPanelElementView(props)).trigger("element:drag:start");
|
|
1615
|
+
};
|
|
1616
|
+
var endDragElementFromPanel = () => {
|
|
1617
|
+
getElementorChannels()?.panelElements?.trigger("element:drag:end");
|
|
1618
|
+
};
|
|
1619
|
+
var getElementorChannels = () => {
|
|
1620
|
+
const extendedWindow = window;
|
|
1621
|
+
const channels = extendedWindow.elementor?.channels;
|
|
1622
|
+
if (!channels) {
|
|
1623
|
+
throw new Error(
|
|
1624
|
+
"Elementor channels not found: Elementor editor is not initialized or channels are unavailable."
|
|
1625
|
+
);
|
|
1626
|
+
}
|
|
1627
|
+
return channels;
|
|
1628
|
+
};
|
|
1629
|
+
var getLegacyPanelElementView = ({ settings, ...rest }) => {
|
|
1630
|
+
const extendedWindow = window;
|
|
1631
|
+
const LegacyElementModel = extendedWindow.elementor?.modules?.elements?.models?.Element;
|
|
1632
|
+
if (!LegacyElementModel) {
|
|
1633
|
+
throw new Error("Elementor legacy Element model not found in editor modules");
|
|
1634
|
+
}
|
|
1635
|
+
const elementModel = new LegacyElementModel({
|
|
1636
|
+
...rest,
|
|
1637
|
+
custom: {
|
|
1638
|
+
isPreset: !!settings,
|
|
1639
|
+
preset_settings: settings
|
|
1640
|
+
}
|
|
1641
|
+
});
|
|
1642
|
+
return { model: elementModel };
|
|
1643
|
+
};
|
|
1607
1644
|
// Annotate the CommonJS export names for ESM import in node:
|
|
1608
1645
|
0 && (module.exports = {
|
|
1609
1646
|
createPropsResolver,
|
|
1610
1647
|
createTransformer,
|
|
1611
1648
|
createTransformersRegistry,
|
|
1649
|
+
endDragElementFromPanel,
|
|
1612
1650
|
init,
|
|
1613
1651
|
settingsTransformersRegistry,
|
|
1652
|
+
startDragElementFromPanel,
|
|
1614
1653
|
styleTransformersRegistry
|
|
1615
1654
|
});
|
|
1616
1655
|
//# sourceMappingURL=index.js.map
|
package/dist/index.mjs
CHANGED
|
@@ -1587,12 +1587,49 @@ function init() {
|
|
|
1587
1587
|
component: ClassesRename
|
|
1588
1588
|
});
|
|
1589
1589
|
}
|
|
1590
|
+
|
|
1591
|
+
// src/sync/drag-element-from-panel.ts
|
|
1592
|
+
var startDragElementFromPanel = (props) => {
|
|
1593
|
+
const channels = getElementorChannels();
|
|
1594
|
+
channels?.editor.reply("element:dragged", null);
|
|
1595
|
+
channels?.panelElements.reply("element:selected", getLegacyPanelElementView(props)).trigger("element:drag:start");
|
|
1596
|
+
};
|
|
1597
|
+
var endDragElementFromPanel = () => {
|
|
1598
|
+
getElementorChannels()?.panelElements?.trigger("element:drag:end");
|
|
1599
|
+
};
|
|
1600
|
+
var getElementorChannels = () => {
|
|
1601
|
+
const extendedWindow = window;
|
|
1602
|
+
const channels = extendedWindow.elementor?.channels;
|
|
1603
|
+
if (!channels) {
|
|
1604
|
+
throw new Error(
|
|
1605
|
+
"Elementor channels not found: Elementor editor is not initialized or channels are unavailable."
|
|
1606
|
+
);
|
|
1607
|
+
}
|
|
1608
|
+
return channels;
|
|
1609
|
+
};
|
|
1610
|
+
var getLegacyPanelElementView = ({ settings, ...rest }) => {
|
|
1611
|
+
const extendedWindow = window;
|
|
1612
|
+
const LegacyElementModel = extendedWindow.elementor?.modules?.elements?.models?.Element;
|
|
1613
|
+
if (!LegacyElementModel) {
|
|
1614
|
+
throw new Error("Elementor legacy Element model not found in editor modules");
|
|
1615
|
+
}
|
|
1616
|
+
const elementModel = new LegacyElementModel({
|
|
1617
|
+
...rest,
|
|
1618
|
+
custom: {
|
|
1619
|
+
isPreset: !!settings,
|
|
1620
|
+
preset_settings: settings
|
|
1621
|
+
}
|
|
1622
|
+
});
|
|
1623
|
+
return { model: elementModel };
|
|
1624
|
+
};
|
|
1590
1625
|
export {
|
|
1591
1626
|
createPropsResolver,
|
|
1592
1627
|
createTransformer,
|
|
1593
1628
|
createTransformersRegistry,
|
|
1629
|
+
endDragElementFromPanel,
|
|
1594
1630
|
init,
|
|
1595
1631
|
settingsTransformersRegistry,
|
|
1632
|
+
startDragElementFromPanel,
|
|
1596
1633
|
styleTransformersRegistry
|
|
1597
1634
|
};
|
|
1598
1635
|
//# sourceMappingURL=index.mjs.map
|
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.33.0-
|
|
4
|
+
"version": "3.33.0-121",
|
|
5
5
|
"private": false,
|
|
6
6
|
"author": "Elementor Team",
|
|
7
7
|
"homepage": "https://elementor.com/",
|
|
@@ -37,19 +37,19 @@
|
|
|
37
37
|
"react-dom": "^18.3.1"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@elementor/editor": "3.33.0-
|
|
41
|
-
"@elementor/editor-notifications": "3.33.0-
|
|
42
|
-
"@elementor/editor-documents": "3.33.0-
|
|
43
|
-
"@elementor/editor-elements": "3.33.0-
|
|
44
|
-
"@elementor/editor-props": "3.33.0-
|
|
45
|
-
"@elementor/editor-responsive": "3.33.0-
|
|
46
|
-
"@elementor/editor-styles": "3.33.0-
|
|
47
|
-
"@elementor/editor-styles-repository": "3.33.0-
|
|
48
|
-
"@elementor/editor-v1-adapters": "3.33.0-
|
|
49
|
-
"@elementor/twing": "3.33.0-
|
|
40
|
+
"@elementor/editor": "3.33.0-121",
|
|
41
|
+
"@elementor/editor-notifications": "3.33.0-121",
|
|
42
|
+
"@elementor/editor-documents": "3.33.0-121",
|
|
43
|
+
"@elementor/editor-elements": "3.33.0-121",
|
|
44
|
+
"@elementor/editor-props": "3.33.0-121",
|
|
45
|
+
"@elementor/editor-responsive": "3.33.0-121",
|
|
46
|
+
"@elementor/editor-styles": "3.33.0-121",
|
|
47
|
+
"@elementor/editor-styles-repository": "3.33.0-121",
|
|
48
|
+
"@elementor/editor-v1-adapters": "3.33.0-121",
|
|
49
|
+
"@elementor/twing": "3.33.0-121",
|
|
50
50
|
"@elementor/ui": "1.36.12",
|
|
51
|
-
"@elementor/utils": "3.33.0-
|
|
52
|
-
"@elementor/wp-media": "3.33.0-
|
|
51
|
+
"@elementor/utils": "3.33.0-121",
|
|
52
|
+
"@elementor/wp-media": "3.33.0-121",
|
|
53
53
|
"@floating-ui/react": "^0.27.5",
|
|
54
54
|
"@wordpress/i18n": "^5.13.0"
|
|
55
55
|
},
|
package/src/index.ts
CHANGED
|
@@ -5,3 +5,4 @@ export { settingsTransformersRegistry } from './settings-transformers-registry';
|
|
|
5
5
|
export { createTransformer } from './transformers/create-transformer';
|
|
6
6
|
export { createTransformersRegistry } from './transformers/create-transformers-registry';
|
|
7
7
|
export { createPropsResolver, type PropsResolver } from './renderers/create-props-resolver';
|
|
8
|
+
export { startDragElementFromPanel, endDragElementFromPanel } from './sync/drag-element-from-panel';
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { type V1ElementModelProps } from '@elementor/editor-elements';
|
|
2
|
+
|
|
3
|
+
import { type CanvasExtendedWindow } from './types';
|
|
4
|
+
|
|
5
|
+
export const startDragElementFromPanel = ( props: Omit< V1ElementModelProps, 'id' > ) => {
|
|
6
|
+
const channels = getElementorChannels();
|
|
7
|
+
|
|
8
|
+
channels?.editor.reply( 'element:dragged', null );
|
|
9
|
+
|
|
10
|
+
channels?.panelElements
|
|
11
|
+
.reply( 'element:selected', getLegacyPanelElementView( props ) )
|
|
12
|
+
.trigger( 'element:drag:start' );
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export const endDragElementFromPanel = () => {
|
|
16
|
+
getElementorChannels()?.panelElements?.trigger( 'element:drag:end' );
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
const getElementorChannels = () => {
|
|
20
|
+
const extendedWindow = window as unknown as CanvasExtendedWindow;
|
|
21
|
+
const channels = extendedWindow.elementor?.channels;
|
|
22
|
+
|
|
23
|
+
if ( ! channels ) {
|
|
24
|
+
throw new Error(
|
|
25
|
+
'Elementor channels not found: Elementor editor is not initialized or channels are unavailable.'
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
return channels;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
const getLegacyPanelElementView = ( { settings, ...rest }: Omit< V1ElementModelProps, 'id' > ) => {
|
|
33
|
+
const extendedWindow = window as unknown as CanvasExtendedWindow;
|
|
34
|
+
const LegacyElementModel = extendedWindow.elementor?.modules?.elements?.models?.Element;
|
|
35
|
+
|
|
36
|
+
if ( ! LegacyElementModel ) {
|
|
37
|
+
throw new Error( 'Elementor legacy Element model not found in editor modules' );
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
const elementModel = new LegacyElementModel( {
|
|
41
|
+
...rest,
|
|
42
|
+
custom: {
|
|
43
|
+
isPreset: !! settings,
|
|
44
|
+
preset_settings: settings,
|
|
45
|
+
},
|
|
46
|
+
} );
|
|
47
|
+
|
|
48
|
+
return { model: elementModel };
|
|
49
|
+
};
|
package/src/sync/types.ts
CHANGED
|
@@ -1,13 +1,39 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type V1ElementModelProps, type V1ElementSettingsProps } from '@elementor/editor-elements';
|
|
2
2
|
|
|
3
|
+
import { type StorageContent } from '../prevent-link-in-link-commands';
|
|
3
4
|
export type EnqueueFont = ( fontFamily: string, context?: 'preview' | 'editor' ) => void;
|
|
4
5
|
|
|
6
|
+
export type ElementModelProps = Omit< V1ElementModelProps, 'id' > & {
|
|
7
|
+
custom: {
|
|
8
|
+
isPreset: boolean;
|
|
9
|
+
preset_settings?: V1ElementSettingsProps;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
type Channel = {
|
|
14
|
+
reply: ( event: string, data: unknown ) => Channel;
|
|
15
|
+
trigger: ( event: string ) => void;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
type ElementorChannels = {
|
|
19
|
+
editor: Channel;
|
|
20
|
+
panelElements: Channel;
|
|
21
|
+
};
|
|
22
|
+
|
|
5
23
|
export type CanvasExtendedWindow = Window & {
|
|
6
24
|
elementor?: {
|
|
7
25
|
$preview?: [ HTMLIFrameElement ];
|
|
8
26
|
helpers?: {
|
|
9
27
|
enqueueFont?: EnqueueFont;
|
|
10
28
|
};
|
|
29
|
+
channels?: ElementorChannels;
|
|
30
|
+
modules?: {
|
|
31
|
+
elements?: {
|
|
32
|
+
models?: {
|
|
33
|
+
Element?: new ( props: ElementModelProps ) => unknown;
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
};
|
|
11
37
|
};
|
|
12
38
|
elementorCommon?: {
|
|
13
39
|
storage?: {
|