@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 +7 -2
- package/dist/index.d.ts +7 -2
- package/dist/index.js +22 -0
- package/dist/index.mjs +21 -0
- package/package.json +18 -18
- package/src/index.ts +1 -0
- package/src/legacy/create-templated-element-type.ts +2 -2
- package/src/legacy/types.ts +4 -0
- package/src/utils/after-render.ts +26 -0
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
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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-
|
|
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-
|
|
40
|
+
"@elementor/editor": "4.1.0-804",
|
|
41
41
|
"dompurify": "^3.2.6",
|
|
42
|
-
"@elementor/editor-controls": "4.1.0-
|
|
43
|
-
"@elementor/editor-documents": "4.1.0-
|
|
44
|
-
"@elementor/editor-elements": "4.1.0-
|
|
45
|
-
"@elementor/editor-interactions": "4.1.0-
|
|
46
|
-
"@elementor/editor-mcp": "4.1.0-
|
|
47
|
-
"@elementor/editor-notifications": "4.1.0-
|
|
48
|
-
"@elementor/editor-props": "4.1.0-
|
|
49
|
-
"@elementor/editor-responsive": "4.1.0-
|
|
50
|
-
"@elementor/editor-styles": "4.1.0-
|
|
51
|
-
"@elementor/editor-styles-repository": "4.1.0-
|
|
52
|
-
"@elementor/editor-ui": "4.1.0-
|
|
53
|
-
"@elementor/editor-v1-adapters": "4.1.0-
|
|
54
|
-
"@elementor/schema": "4.1.0-
|
|
55
|
-
"@elementor/twing": "4.1.0-
|
|
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-
|
|
58
|
-
"@elementor/wp-media": "4.1.0-
|
|
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
|
|
69
|
+
}: CreateTemplatedElementTypeOptions ): typeof TemplatedElementView {
|
|
70
70
|
const BaseView = createElementViewClassDeclaration();
|
|
71
71
|
|
|
72
72
|
const { templateKey, baseStylesDictionary, resolveProps } = setupTwigRenderer( {
|
package/src/legacy/types.ts
CHANGED
|
@@ -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
|
+
}
|