@elementor/editor-canvas 3.33.0-192 → 3.33.0-194

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 CHANGED
@@ -63,4 +63,81 @@ declare function createPropsResolver({ transformers, schema: initialSchema, onPr
63
63
  declare const startDragElementFromPanel: (props: Omit<V1ElementModelProps, "id">) => void;
64
64
  declare const endDragElementFromPanel: () => void;
65
65
 
66
- export { type PropsResolver, createPropsResolver, createTransformer, createTransformersRegistry, endDragElementFromPanel, init, settingsTransformersRegistry, startDragElementFromPanel, styleTransformersRegistry };
66
+ type LegacyWindow = Window & {
67
+ elementor: {
68
+ modules: {
69
+ elements: {
70
+ types: {
71
+ Widget: typeof ElementType;
72
+ };
73
+ views: {
74
+ Widget: typeof ElementView;
75
+ };
76
+ };
77
+ };
78
+ elementsManager: {
79
+ registerElementType: (type: ElementType) => void;
80
+ };
81
+ $preview: [
82
+ {
83
+ contentWindow: {
84
+ dispatchEvent: (event: Event) => void;
85
+ };
86
+ }
87
+ ];
88
+ };
89
+ };
90
+ declare class ElementType {
91
+ getType(): string;
92
+ getView(): typeof ElementView;
93
+ }
94
+ declare class ElementView {
95
+ $el: JQueryElement;
96
+ model: BackboneModel<ElementModel>;
97
+ onRender(...args: unknown[]): void;
98
+ onDestroy(...args: unknown[]): void;
99
+ attributes(): Record<string, unknown>;
100
+ behaviors(): Record<string, unknown>;
101
+ getDomElement(): JQueryElement;
102
+ getHandlesOverlay(): JQueryElement | null;
103
+ getContextMenuGroups(): ContextMenuGroup[];
104
+ /**
105
+ * Templated view methods:
106
+ */
107
+ getTemplateType(): string;
108
+ renderOnChange(): void;
109
+ render(): void;
110
+ _renderTemplate(): void;
111
+ triggerMethod(method: string): void;
112
+ bindUIElements(): void;
113
+ options?: {
114
+ model: BackboneModel<ElementModel>;
115
+ };
116
+ }
117
+ type JQueryElement = {
118
+ find: (selector: string) => JQueryElement;
119
+ html: (html: string) => void;
120
+ get: (index: number) => HTMLElement;
121
+ };
122
+ type BackboneModel<Model extends object> = {
123
+ get: <T extends keyof Model>(key: T) => Model[T];
124
+ toJSON: () => ToJSON<Model>;
125
+ };
126
+ type ElementModel = {
127
+ id: string;
128
+ settings: BackboneModel<Props>;
129
+ widgetType: string;
130
+ };
131
+ type ToJSON<T> = {
132
+ [K in keyof T]: T[K] extends BackboneModel<infer M> ? ToJSON<M> : T[K];
133
+ };
134
+ type ContextMenuGroup = {
135
+ name: string;
136
+ actions: unknown[];
137
+ };
138
+
139
+ declare function registerElementType(type: string, componentClass: () => typeof ElementType): void;
140
+
141
+ declare function createElementViewClassDeclaration(): typeof ElementView;
142
+
143
+ export { ElementType, ElementView, type LegacyWindow, type PropsResolver, createElementViewClassDeclaration, createPropsResolver, createTransformer, createTransformersRegistry, endDragElementFromPanel, init, registerElementType, settingsTransformersRegistry, startDragElementFromPanel, styleTransformersRegistry };
package/dist/index.d.ts CHANGED
@@ -63,4 +63,81 @@ declare function createPropsResolver({ transformers, schema: initialSchema, onPr
63
63
  declare const startDragElementFromPanel: (props: Omit<V1ElementModelProps, "id">) => void;
64
64
  declare const endDragElementFromPanel: () => void;
65
65
 
66
- export { type PropsResolver, createPropsResolver, createTransformer, createTransformersRegistry, endDragElementFromPanel, init, settingsTransformersRegistry, startDragElementFromPanel, styleTransformersRegistry };
66
+ type LegacyWindow = Window & {
67
+ elementor: {
68
+ modules: {
69
+ elements: {
70
+ types: {
71
+ Widget: typeof ElementType;
72
+ };
73
+ views: {
74
+ Widget: typeof ElementView;
75
+ };
76
+ };
77
+ };
78
+ elementsManager: {
79
+ registerElementType: (type: ElementType) => void;
80
+ };
81
+ $preview: [
82
+ {
83
+ contentWindow: {
84
+ dispatchEvent: (event: Event) => void;
85
+ };
86
+ }
87
+ ];
88
+ };
89
+ };
90
+ declare class ElementType {
91
+ getType(): string;
92
+ getView(): typeof ElementView;
93
+ }
94
+ declare class ElementView {
95
+ $el: JQueryElement;
96
+ model: BackboneModel<ElementModel>;
97
+ onRender(...args: unknown[]): void;
98
+ onDestroy(...args: unknown[]): void;
99
+ attributes(): Record<string, unknown>;
100
+ behaviors(): Record<string, unknown>;
101
+ getDomElement(): JQueryElement;
102
+ getHandlesOverlay(): JQueryElement | null;
103
+ getContextMenuGroups(): ContextMenuGroup[];
104
+ /**
105
+ * Templated view methods:
106
+ */
107
+ getTemplateType(): string;
108
+ renderOnChange(): void;
109
+ render(): void;
110
+ _renderTemplate(): void;
111
+ triggerMethod(method: string): void;
112
+ bindUIElements(): void;
113
+ options?: {
114
+ model: BackboneModel<ElementModel>;
115
+ };
116
+ }
117
+ type JQueryElement = {
118
+ find: (selector: string) => JQueryElement;
119
+ html: (html: string) => void;
120
+ get: (index: number) => HTMLElement;
121
+ };
122
+ type BackboneModel<Model extends object> = {
123
+ get: <T extends keyof Model>(key: T) => Model[T];
124
+ toJSON: () => ToJSON<Model>;
125
+ };
126
+ type ElementModel = {
127
+ id: string;
128
+ settings: BackboneModel<Props>;
129
+ widgetType: string;
130
+ };
131
+ type ToJSON<T> = {
132
+ [K in keyof T]: T[K] extends BackboneModel<infer M> ? ToJSON<M> : T[K];
133
+ };
134
+ type ContextMenuGroup = {
135
+ name: string;
136
+ actions: unknown[];
137
+ };
138
+
139
+ declare function registerElementType(type: string, componentClass: () => typeof ElementType): void;
140
+
141
+ declare function createElementViewClassDeclaration(): typeof ElementView;
142
+
143
+ export { ElementType, ElementView, type LegacyWindow, type PropsResolver, createElementViewClassDeclaration, createPropsResolver, createTransformer, createTransformersRegistry, endDragElementFromPanel, init, registerElementType, settingsTransformersRegistry, startDragElementFromPanel, styleTransformersRegistry };
package/dist/index.js CHANGED
@@ -30,11 +30,13 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
30
30
  // src/index.ts
31
31
  var index_exports = {};
32
32
  __export(index_exports, {
33
+ createElementViewClassDeclaration: () => createElementViewClassDeclaration,
33
34
  createPropsResolver: () => createPropsResolver,
34
35
  createTransformer: () => createTransformer,
35
36
  createTransformersRegistry: () => createTransformersRegistry,
36
37
  endDragElementFromPanel: () => endDragElementFromPanel,
37
38
  init: () => init,
39
+ registerElementType: () => registerElementType,
38
40
  settingsTransformersRegistry: () => settingsTransformersRegistry,
39
41
  startDragElementFromPanel: () => startDragElementFromPanel,
40
42
  styleTransformersRegistry: () => styleTransformersRegistry
@@ -1258,6 +1260,10 @@ function createTemplatedElementViewClassDeclaration({
1258
1260
  }
1259
1261
 
1260
1262
  // src/legacy/init-legacy-views.ts
1263
+ var elementsLegacyTypes = {};
1264
+ function registerElementType(type, componentClass) {
1265
+ elementsLegacyTypes[type] = componentClass;
1266
+ }
1261
1267
  function initLegacyViews() {
1262
1268
  (0, import_editor_v1_adapters5.__privateListenTo)((0, import_editor_v1_adapters5.v1ReadyEvent)(), () => {
1263
1269
  const config = (0, import_editor_elements2.getWidgetsCache)() ?? {};
@@ -1267,6 +1273,11 @@ function initLegacyViews() {
1267
1273
  if (!element.atomic) {
1268
1274
  return;
1269
1275
  }
1276
+ if (elementsLegacyTypes[type]) {
1277
+ const registeredElementTypeClass = elementsLegacyTypes[type]();
1278
+ legacyWindow.elementor.elementsManager.registerElementType(new registeredElementTypeClass());
1279
+ return;
1280
+ }
1270
1281
  const ElementType = canBeTemplated(element) ? createTemplatedElementType({ type, renderer, element }) : createElementType(type);
1271
1282
  legacyWindow.elementor.elementsManager.registerElementType(new ElementType());
1272
1283
  });
@@ -1645,11 +1656,13 @@ var getLegacyPanelElementView = ({ settings, ...rest }) => {
1645
1656
  };
1646
1657
  // Annotate the CommonJS export names for ESM import in node:
1647
1658
  0 && (module.exports = {
1659
+ createElementViewClassDeclaration,
1648
1660
  createPropsResolver,
1649
1661
  createTransformer,
1650
1662
  createTransformersRegistry,
1651
1663
  endDragElementFromPanel,
1652
1664
  init,
1665
+ registerElementType,
1653
1666
  settingsTransformersRegistry,
1654
1667
  startDragElementFromPanel,
1655
1668
  styleTransformersRegistry
package/dist/index.mjs CHANGED
@@ -1222,6 +1222,10 @@ function createTemplatedElementViewClassDeclaration({
1222
1222
  }
1223
1223
 
1224
1224
  // src/legacy/init-legacy-views.ts
1225
+ var elementsLegacyTypes = {};
1226
+ function registerElementType(type, componentClass) {
1227
+ elementsLegacyTypes[type] = componentClass;
1228
+ }
1225
1229
  function initLegacyViews() {
1226
1230
  __privateListenTo(v1ReadyEvent(), () => {
1227
1231
  const config = getWidgetsCache() ?? {};
@@ -1231,6 +1235,11 @@ function initLegacyViews() {
1231
1235
  if (!element.atomic) {
1232
1236
  return;
1233
1237
  }
1238
+ if (elementsLegacyTypes[type]) {
1239
+ const registeredElementTypeClass = elementsLegacyTypes[type]();
1240
+ legacyWindow.elementor.elementsManager.registerElementType(new registeredElementTypeClass());
1241
+ return;
1242
+ }
1234
1243
  const ElementType = canBeTemplated(element) ? createTemplatedElementType({ type, renderer, element }) : createElementType(type);
1235
1244
  legacyWindow.elementor.elementsManager.registerElementType(new ElementType());
1236
1245
  });
@@ -1625,11 +1634,13 @@ var getLegacyPanelElementView = ({ settings, ...rest }) => {
1625
1634
  return { model: elementModel };
1626
1635
  };
1627
1636
  export {
1637
+ createElementViewClassDeclaration,
1628
1638
  createPropsResolver,
1629
1639
  createTransformer,
1630
1640
  createTransformersRegistry,
1631
1641
  endDragElementFromPanel,
1632
1642
  init,
1643
+ registerElementType,
1633
1644
  settingsTransformersRegistry,
1634
1645
  startDragElementFromPanel,
1635
1646
  styleTransformersRegistry
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-192",
4
+ "version": "3.33.0-194",
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-192",
41
- "@elementor/editor-notifications": "3.33.0-192",
42
- "@elementor/editor-documents": "3.33.0-192",
43
- "@elementor/editor-elements": "3.33.0-192",
44
- "@elementor/editor-props": "3.33.0-192",
45
- "@elementor/editor-responsive": "3.33.0-192",
46
- "@elementor/editor-styles": "3.33.0-192",
47
- "@elementor/editor-styles-repository": "3.33.0-192",
48
- "@elementor/editor-v1-adapters": "3.33.0-192",
49
- "@elementor/twing": "3.33.0-192",
40
+ "@elementor/editor": "3.33.0-194",
41
+ "@elementor/editor-notifications": "3.33.0-194",
42
+ "@elementor/editor-documents": "3.33.0-194",
43
+ "@elementor/editor-elements": "3.33.0-194",
44
+ "@elementor/editor-props": "3.33.0-194",
45
+ "@elementor/editor-responsive": "3.33.0-194",
46
+ "@elementor/editor-styles": "3.33.0-194",
47
+ "@elementor/editor-styles-repository": "3.33.0-194",
48
+ "@elementor/editor-v1-adapters": "3.33.0-194",
49
+ "@elementor/twing": "3.33.0-194",
50
50
  "@elementor/ui": "1.36.12",
51
- "@elementor/utils": "3.33.0-192",
52
- "@elementor/wp-media": "3.33.0-192",
51
+ "@elementor/utils": "3.33.0-194",
52
+ "@elementor/wp-media": "3.33.0-194",
53
53
  "@floating-ui/react": "^0.27.5",
54
54
  "@wordpress/i18n": "^5.13.0"
55
55
  },
package/src/index.ts CHANGED
@@ -6,3 +6,6 @@ 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
8
  export { startDragElementFromPanel, endDragElementFromPanel } from './sync/drag-element-from-panel';
9
+ export { registerElementType } from './legacy/init-legacy-views';
10
+ export { createElementViewClassDeclaration } from './legacy/create-element-type';
11
+ export * from './legacy/types';
@@ -4,7 +4,16 @@ import { __privateListenTo, v1ReadyEvent } from '@elementor/editor-v1-adapters';
4
4
  import { createDomRenderer } from '../renderers/create-dom-renderer';
5
5
  import { createElementType } from './create-element-type';
6
6
  import { canBeTemplated, createTemplatedElementType } from './create-templated-element-type';
7
- import type { LegacyWindow } from './types';
7
+ import type { ElementType, LegacyWindow } from './types';
8
+
9
+ type ElementLegacyType = {
10
+ [ key: string ]: () => typeof ElementType;
11
+ };
12
+ export const elementsLegacyTypes: ElementLegacyType = {};
13
+
14
+ export function registerElementType( type: string, componentClass: () => typeof ElementType ) {
15
+ elementsLegacyTypes[ type ] = componentClass;
16
+ }
8
17
 
9
18
  export function initLegacyViews() {
10
19
  __privateListenTo( v1ReadyEvent(), () => {
@@ -18,6 +27,12 @@ export function initLegacyViews() {
18
27
  return;
19
28
  }
20
29
 
30
+ if ( elementsLegacyTypes[ type ] ) {
31
+ const registeredElementTypeClass = elementsLegacyTypes[ type ]();
32
+ legacyWindow.elementor.elementsManager.registerElementType( new registeredElementTypeClass() );
33
+ return;
34
+ }
35
+
21
36
  const ElementType = canBeTemplated( element )
22
37
  ? createTemplatedElementType( { type, renderer, element } )
23
38
  : createElementType( type );
@@ -64,6 +64,10 @@ export declare class ElementView {
64
64
  triggerMethod( method: string ): void;
65
65
 
66
66
  bindUIElements(): void;
67
+
68
+ options?: {
69
+ model: BackboneModel< ElementModel >;
70
+ };
67
71
  }
68
72
 
69
73
  type JQueryElement = {
@@ -89,5 +93,5 @@ type ToJSON< T > = {
89
93
 
90
94
  type ContextMenuGroup = {
91
95
  name: string;
92
- action: unknown[];
96
+ actions: unknown[];
93
97
  };