@elementor/editor-canvas 4.1.0-803 → 4.1.0-804

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
@@ -132,6 +132,9 @@ declare class ElementView {
132
132
  }): void;
133
133
  once: (event: string, callback: () => void) => void;
134
134
  }
135
+ declare class TemplatedElementView extends ElementView {
136
+ _doAfterRender(callback: () => void): void;
137
+ }
135
138
  type JQueryElement = {
136
139
  find: (selector: string) => JQueryElement;
137
140
  html: (html: string) => void;
@@ -215,7 +218,7 @@ type CreateTemplatedElementTypeOptions = {
215
218
  element: TemplatedElementConfig;
216
219
  };
217
220
  type TemplatedElementConfig = Required<Pick<V1ElementConfig, 'twig_templates' | 'twig_main_template' | 'atomic_props_schema' | 'base_styles_dictionary'>>;
218
- declare function createTemplatedElementView({ type, renderer, element, }: CreateTemplatedElementTypeOptions): typeof ElementView;
221
+ declare function createTemplatedElementView({ type, renderer, element, }: CreateTemplatedElementTypeOptions): typeof TemplatedElementView;
219
222
 
220
223
  type NestedTemplatedElementConfig = TemplatedElementConfig & {
221
224
  allowed_child_types?: string[];
@@ -345,4 +348,6 @@ declare const UnknownStyleStateError: {
345
348
  isError(error: unknown): error is Error;
346
349
  };
347
350
 
348
- export { type AnyTransformer, BREAKPOINTS_SCHEMA_URI, type BackboneModel, type BackboneModelConstructor, type ContextMenuAction, type ContextMenuEventData, type CreateNestedTemplatedElementTypeOptions, type CreateTemplatedElementTypeOptions, DOCUMENT_STRUCTURE_URI, type ElementModel, ElementType, ElementView, type LegacyWindow, type NamespacedRenderContext, type NestedTemplatedElementConfig, type PropsResolver, type RenderContext, type ReplacementSettings, STYLE_SCHEMA_URI, type TransformerOptions, UnknownStyleStateError, UnknownStyleTypeError, WIDGET_SCHEMA_URI, canBeNestedTemplated, createNestedTemplatedElementType, createNestedTemplatedElementView, createPropsResolver, createTemplatedElementView, createTransformer, createTransformersRegistry, endDragElementFromPanel, init, isAtomicWidget, registerElementType, registerModelExtensions, settingsTransformersRegistry, startDragElementFromPanel, styleTransformersRegistry, stylesInheritanceTransformersRegistry };
351
+ declare function doAfterRender(elementIds: string[], callback: (elementIds: string[]) => void): void;
352
+
353
+ export { type AnyTransformer, BREAKPOINTS_SCHEMA_URI, type BackboneModel, type BackboneModelConstructor, type ContextMenuAction, type ContextMenuEventData, type CreateNestedTemplatedElementTypeOptions, type CreateTemplatedElementTypeOptions, DOCUMENT_STRUCTURE_URI, type ElementModel, ElementType, ElementView, type LegacyWindow, type NamespacedRenderContext, type NestedTemplatedElementConfig, type PropsResolver, type RenderContext, type ReplacementSettings, STYLE_SCHEMA_URI, TemplatedElementView, type TransformerOptions, UnknownStyleStateError, UnknownStyleTypeError, WIDGET_SCHEMA_URI, canBeNestedTemplated, createNestedTemplatedElementType, createNestedTemplatedElementView, createPropsResolver, createTemplatedElementView, createTransformer, createTransformersRegistry, doAfterRender, endDragElementFromPanel, init, isAtomicWidget, registerElementType, registerModelExtensions, settingsTransformersRegistry, startDragElementFromPanel, styleTransformersRegistry, stylesInheritanceTransformersRegistry };
package/dist/index.d.ts CHANGED
@@ -132,6 +132,9 @@ declare class ElementView {
132
132
  }): void;
133
133
  once: (event: string, callback: () => void) => void;
134
134
  }
135
+ declare class TemplatedElementView extends ElementView {
136
+ _doAfterRender(callback: () => void): void;
137
+ }
135
138
  type JQueryElement = {
136
139
  find: (selector: string) => JQueryElement;
137
140
  html: (html: string) => void;
@@ -215,7 +218,7 @@ type CreateTemplatedElementTypeOptions = {
215
218
  element: TemplatedElementConfig;
216
219
  };
217
220
  type TemplatedElementConfig = Required<Pick<V1ElementConfig, 'twig_templates' | 'twig_main_template' | 'atomic_props_schema' | 'base_styles_dictionary'>>;
218
- declare function createTemplatedElementView({ type, renderer, element, }: CreateTemplatedElementTypeOptions): typeof ElementView;
221
+ declare function createTemplatedElementView({ type, renderer, element, }: CreateTemplatedElementTypeOptions): typeof TemplatedElementView;
219
222
 
220
223
  type NestedTemplatedElementConfig = TemplatedElementConfig & {
221
224
  allowed_child_types?: string[];
@@ -345,4 +348,6 @@ declare const UnknownStyleStateError: {
345
348
  isError(error: unknown): error is Error;
346
349
  };
347
350
 
348
- export { type AnyTransformer, BREAKPOINTS_SCHEMA_URI, type BackboneModel, type BackboneModelConstructor, type ContextMenuAction, type ContextMenuEventData, type CreateNestedTemplatedElementTypeOptions, type CreateTemplatedElementTypeOptions, DOCUMENT_STRUCTURE_URI, type ElementModel, ElementType, ElementView, type LegacyWindow, type NamespacedRenderContext, type NestedTemplatedElementConfig, type PropsResolver, type RenderContext, type ReplacementSettings, STYLE_SCHEMA_URI, type TransformerOptions, UnknownStyleStateError, UnknownStyleTypeError, WIDGET_SCHEMA_URI, canBeNestedTemplated, createNestedTemplatedElementType, createNestedTemplatedElementView, createPropsResolver, createTemplatedElementView, createTransformer, createTransformersRegistry, endDragElementFromPanel, init, isAtomicWidget, registerElementType, registerModelExtensions, settingsTransformersRegistry, startDragElementFromPanel, styleTransformersRegistry, stylesInheritanceTransformersRegistry };
351
+ declare function doAfterRender(elementIds: string[], callback: (elementIds: string[]) => void): void;
352
+
353
+ export { type AnyTransformer, BREAKPOINTS_SCHEMA_URI, type BackboneModel, type BackboneModelConstructor, type ContextMenuAction, type ContextMenuEventData, type CreateNestedTemplatedElementTypeOptions, type CreateTemplatedElementTypeOptions, DOCUMENT_STRUCTURE_URI, type ElementModel, ElementType, ElementView, type LegacyWindow, type NamespacedRenderContext, type NestedTemplatedElementConfig, type PropsResolver, type RenderContext, type ReplacementSettings, STYLE_SCHEMA_URI, TemplatedElementView, type TransformerOptions, UnknownStyleStateError, UnknownStyleTypeError, WIDGET_SCHEMA_URI, canBeNestedTemplated, createNestedTemplatedElementType, createNestedTemplatedElementView, createPropsResolver, createTemplatedElementView, createTransformer, createTransformersRegistry, doAfterRender, endDragElementFromPanel, init, isAtomicWidget, registerElementType, registerModelExtensions, settingsTransformersRegistry, startDragElementFromPanel, styleTransformersRegistry, stylesInheritanceTransformersRegistry };
package/dist/index.js CHANGED
@@ -43,6 +43,7 @@ __export(index_exports, {
43
43
  createTemplatedElementView: () => createTemplatedElementView,
44
44
  createTransformer: () => createTransformer,
45
45
  createTransformersRegistry: () => createTransformersRegistry,
46
+ doAfterRender: () => doAfterRender,
46
47
  endDragElementFromPanel: () => endDragElementFromPanel,
47
48
  init: () => init,
48
49
  isAtomicWidget: () => isAtomicWidget,
@@ -5437,6 +5438,26 @@ var getLegacyPanelElementView = ({ settings, ...rest }) => {
5437
5438
  });
5438
5439
  return { model: elementModel };
5439
5440
  };
5441
+
5442
+ // src/utils/after-render.ts
5443
+ var import_editor_elements21 = require("@elementor/editor-elements");
5444
+ function doAfterRender(elementIds, callback) {
5445
+ const pending = elementIds.map((elementId) => {
5446
+ const view = (0, import_editor_elements21.getContainer)(elementId)?.view;
5447
+ if (!view || !hasDoAfterRender(view)) {
5448
+ return void 0;
5449
+ }
5450
+ return new Promise((resolve) => view._doAfterRender(resolve));
5451
+ }).filter(Boolean);
5452
+ if (pending.length > 0) {
5453
+ Promise.all(pending).then(() => callback(elementIds));
5454
+ } else {
5455
+ callback(elementIds);
5456
+ }
5457
+ }
5458
+ function hasDoAfterRender(view) {
5459
+ return typeof view?._doAfterRender === "function";
5460
+ }
5440
5461
  // Annotate the CommonJS export names for ESM import in node:
5441
5462
  0 && (module.exports = {
5442
5463
  BREAKPOINTS_SCHEMA_URI,
@@ -5452,6 +5473,7 @@ var getLegacyPanelElementView = ({ settings, ...rest }) => {
5452
5473
  createTemplatedElementView,
5453
5474
  createTransformer,
5454
5475
  createTransformersRegistry,
5476
+ doAfterRender,
5455
5477
  endDragElementFromPanel,
5456
5478
  init,
5457
5479
  isAtomicWidget,
package/dist/index.mjs CHANGED
@@ -5445,6 +5445,26 @@ var getLegacyPanelElementView = ({ settings, ...rest }) => {
5445
5445
  });
5446
5446
  return { model: elementModel };
5447
5447
  };
5448
+
5449
+ // src/utils/after-render.ts
5450
+ import { getContainer as getContainer7 } from "@elementor/editor-elements";
5451
+ function doAfterRender(elementIds, callback) {
5452
+ const pending = elementIds.map((elementId) => {
5453
+ const view = getContainer7(elementId)?.view;
5454
+ if (!view || !hasDoAfterRender(view)) {
5455
+ return void 0;
5456
+ }
5457
+ return new Promise((resolve) => view._doAfterRender(resolve));
5458
+ }).filter(Boolean);
5459
+ if (pending.length > 0) {
5460
+ Promise.all(pending).then(() => callback(elementIds));
5461
+ } else {
5462
+ callback(elementIds);
5463
+ }
5464
+ }
5465
+ function hasDoAfterRender(view) {
5466
+ return typeof view?._doAfterRender === "function";
5467
+ }
5448
5468
  export {
5449
5469
  BREAKPOINTS_SCHEMA_URI,
5450
5470
  DOCUMENT_STRUCTURE_URI,
@@ -5459,6 +5479,7 @@ export {
5459
5479
  createTemplatedElementView,
5460
5480
  createTransformer,
5461
5481
  createTransformersRegistry,
5482
+ doAfterRender,
5462
5483
  endDragElementFromPanel,
5463
5484
  init,
5464
5485
  isAtomicWidget,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@elementor/editor-canvas",
3
3
  "description": "Elementor Editor Canvas",
4
- "version": "4.1.0-803",
4
+ "version": "4.1.0-804",
5
5
  "private": false,
6
6
  "author": "Elementor Team",
7
7
  "homepage": "https://elementor.com/",
@@ -37,25 +37,25 @@
37
37
  "react-dom": "^18.3.1"
38
38
  },
39
39
  "dependencies": {
40
- "@elementor/editor": "4.1.0-803",
40
+ "@elementor/editor": "4.1.0-804",
41
41
  "dompurify": "^3.2.6",
42
- "@elementor/editor-controls": "4.1.0-803",
43
- "@elementor/editor-documents": "4.1.0-803",
44
- "@elementor/editor-elements": "4.1.0-803",
45
- "@elementor/editor-interactions": "4.1.0-803",
46
- "@elementor/editor-mcp": "4.1.0-803",
47
- "@elementor/editor-notifications": "4.1.0-803",
48
- "@elementor/editor-props": "4.1.0-803",
49
- "@elementor/editor-responsive": "4.1.0-803",
50
- "@elementor/editor-styles": "4.1.0-803",
51
- "@elementor/editor-styles-repository": "4.1.0-803",
52
- "@elementor/editor-ui": "4.1.0-803",
53
- "@elementor/editor-v1-adapters": "4.1.0-803",
54
- "@elementor/schema": "4.1.0-803",
55
- "@elementor/twing": "4.1.0-803",
42
+ "@elementor/editor-controls": "4.1.0-804",
43
+ "@elementor/editor-documents": "4.1.0-804",
44
+ "@elementor/editor-elements": "4.1.0-804",
45
+ "@elementor/editor-interactions": "4.1.0-804",
46
+ "@elementor/editor-mcp": "4.1.0-804",
47
+ "@elementor/editor-notifications": "4.1.0-804",
48
+ "@elementor/editor-props": "4.1.0-804",
49
+ "@elementor/editor-responsive": "4.1.0-804",
50
+ "@elementor/editor-styles": "4.1.0-804",
51
+ "@elementor/editor-styles-repository": "4.1.0-804",
52
+ "@elementor/editor-ui": "4.1.0-804",
53
+ "@elementor/editor-v1-adapters": "4.1.0-804",
54
+ "@elementor/schema": "4.1.0-804",
55
+ "@elementor/twing": "4.1.0-804",
56
56
  "@elementor/ui": "1.37.5",
57
- "@elementor/utils": "4.1.0-803",
58
- "@elementor/wp-media": "4.1.0-803",
57
+ "@elementor/utils": "4.1.0-804",
58
+ "@elementor/wp-media": "4.1.0-804",
59
59
  "@floating-ui/react": "^0.27.5",
60
60
  "@wordpress/i18n": "^5.13.0"
61
61
  },
package/src/index.ts CHANGED
@@ -31,3 +31,4 @@ export {
31
31
  } from './transformers/create-transformers-registry';
32
32
  export { type AnyTransformer, type TransformerOptions } from './transformers/types';
33
33
  export { UnknownStyleTypeError, UnknownStyleStateError } from './renderers/errors';
34
+ export { doAfterRender } from './utils/after-render';
@@ -13,10 +13,10 @@ import {
13
13
  } from './twig-rendering-utils';
14
14
  import {
15
15
  type ElementType,
16
- type ElementView,
17
16
  type LegacyWindow,
18
17
  type NamespacedRenderContext,
19
18
  type RenderContext,
19
+ type TemplatedElementView,
20
20
  } from './types';
21
21
 
22
22
  export type CreateTemplatedElementTypeOptions = {
@@ -66,7 +66,7 @@ export function createTemplatedElementView( {
66
66
  type,
67
67
  renderer,
68
68
  element,
69
- }: CreateTemplatedElementTypeOptions ): typeof ElementView {
69
+ }: CreateTemplatedElementTypeOptions ): typeof TemplatedElementView {
70
70
  const BaseView = createElementViewClassDeclaration();
71
71
 
72
72
  const { templateKey, baseStylesDictionary, resolveProps } = setupTwigRenderer( {
@@ -165,6 +165,10 @@ export declare class ElementView {
165
165
  once: ( event: string, callback: () => void ) => void;
166
166
  }
167
167
 
168
+ export declare class TemplatedElementView extends ElementView {
169
+ _doAfterRender( callback: () => void ): void;
170
+ }
171
+
168
172
  type JQueryElement = {
169
173
  find: ( selector: string ) => JQueryElement;
170
174
  html: ( html: string ) => void;
@@ -0,0 +1,26 @@
1
+ import { getContainer } from '@elementor/editor-elements';
2
+
3
+ import { type TemplatedElementView } from '../legacy/types';
4
+
5
+ export function doAfterRender( elementIds: string[], callback: ( elementIds: string[] ) => void ): void {
6
+ const pending = elementIds
7
+ .map( ( elementId ) => {
8
+ const view = getContainer( elementId )?.view;
9
+ if ( ! view || ! hasDoAfterRender( view ) ) {
10
+ return undefined;
11
+ }
12
+
13
+ return new Promise< void >( ( resolve ) => view._doAfterRender( resolve ) );
14
+ } )
15
+ .filter( Boolean );
16
+
17
+ if ( pending.length > 0 ) {
18
+ Promise.all( pending ).then( () => callback( elementIds ) );
19
+ } else {
20
+ callback( elementIds );
21
+ }
22
+ }
23
+
24
+ function hasDoAfterRender( view: unknown ): view is TemplatedElementView {
25
+ return typeof ( view as TemplatedElementView )?._doAfterRender === 'function';
26
+ }