@elementor/editor-canvas 0.9.0 → 0.11.0
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/.turbo/turbo-build.log +10 -10
- package/CHANGELOG.md +36 -0
- package/dist/index.d.mts +17 -1
- package/dist/index.d.ts +17 -1
- package/dist/index.js +203 -225
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +192 -227
- package/dist/index.mjs.map +1 -1
- package/package.json +10 -10
- package/src/{renderers/__tests__ → __tests__}/__mocks__/styles-schema.ts +258 -131
- package/src/__tests__/init-styles-renderer.test.ts +8 -3
- package/src/{renderers/__tests__/create-props-resolver.transformers.test.ts → __tests__/styles-prop-resolver.test.ts} +19 -27
- package/src/index.ts +2 -0
- package/src/init-style-transformers.ts +58 -0
- package/src/init-styles-renderer.ts +8 -6
- package/src/init.tsx +2 -0
- package/src/renderers/__tests__/create-props-resolver.test.ts +44 -34
- package/src/renderers/__tests__/render-styles.test.ts +3 -15
- package/src/renderers/create-props-resolver.ts +32 -31
- package/src/renderers/render-styles.ts +4 -7
- package/src/style-transformers-registry.ts +3 -0
- package/src/transformers/create-transformer.ts +13 -0
- package/src/transformers/create-transformers-registry.ts +16 -0
- package/src/transformers/styles/background-color-overlay-transformer.ts +5 -0
- package/src/transformers/styles/background-image-overlay-transformer.ts +28 -0
- package/src/transformers/styles/background-image-position-offset-transformer.ts +10 -0
- package/src/transformers/styles/background-image-size-scale-transformer.ts +10 -0
- package/src/transformers/styles/background-transformer.ts +13 -0
- package/src/transformers/styles/create-combine-array-transformer.ts +5 -0
- package/src/transformers/styles/create-multi-props-transformer.ts +14 -0
- package/src/transformers/styles/image-attachment-transformer.ts +15 -0
- package/src/transformers/styles/image-src-transformer.ts +11 -0
- package/src/transformers/styles/image-transformer.ts +34 -0
- package/src/transformers/styles/primitive-transformer.ts +3 -0
- package/src/transformers/styles/shadow-transformer.ts +16 -0
- package/src/transformers/styles/size-transformer.ts +10 -0
- package/src/transformers/styles/stroke-transformer.ts +17 -0
- package/src/transformers/types.ts +20 -0
- package/src/renderers/style-transformers/background-color-overlay-transformer.ts +0 -9
- package/src/renderers/style-transformers/background-image-overlay-transformer.ts +0 -24
- package/src/renderers/style-transformers/background-image-position-offset-transformer.ts +0 -10
- package/src/renderers/style-transformers/background-image-size-scale-transformer.ts +0 -10
- package/src/renderers/style-transformers/background-transformer.ts +0 -12
- package/src/renderers/style-transformers/create-combine-array-transformer.ts +0 -9
- package/src/renderers/style-transformers/create-corner-sizes-transformer.ts +0 -31
- package/src/renderers/style-transformers/create-edge-sizes-transformer.ts +0 -31
- package/src/renderers/style-transformers/dimensions.ts +0 -20
- package/src/renderers/style-transformers/image-attachment.ts +0 -14
- package/src/renderers/style-transformers/image-src.ts +0 -8
- package/src/renderers/style-transformers/image.ts +0 -25
- package/src/renderers/style-transformers/index.ts +0 -48
- package/src/renderers/style-transformers/layout-direction-transformer.ts +0 -20
- package/src/renderers/style-transformers/primitive-transformer.ts +0 -7
- package/src/renderers/style-transformers/shadow-transformer.ts +0 -11
- package/src/renderers/style-transformers/size-transformer.ts +0 -9
- package/src/renderers/style-transformers/stroke-transformer.ts +0 -16
- package/src/renderers/types.ts +0 -12
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
> @elementor/editor-canvas@0.
|
|
2
|
+
> @elementor/editor-canvas@0.11.0 build
|
|
3
3
|
> tsup --config=../../tsup.build.ts
|
|
4
4
|
|
|
5
5
|
[34mCLI[39m Building entry: src/index.ts
|
|
@@ -10,13 +10,13 @@
|
|
|
10
10
|
[34mCLI[39m Cleaning output folder
|
|
11
11
|
[34mESM[39m Build start
|
|
12
12
|
[34mCJS[39m Build start
|
|
13
|
-
[32mESM[39m [1mdist/index.mjs [22m[
|
|
14
|
-
[32mESM[39m [1mdist/index.mjs.map [22m[
|
|
15
|
-
[32mESM[39m ⚡️ Build success in
|
|
16
|
-
[32mCJS[39m [1mdist/index.js [22m[
|
|
17
|
-
[32mCJS[39m [1mdist/index.js.map [22m[
|
|
18
|
-
[32mCJS[39m ⚡️ Build success in
|
|
13
|
+
[32mESM[39m [1mdist/index.mjs [22m[32m17.23 KB[39m
|
|
14
|
+
[32mESM[39m [1mdist/index.mjs.map [22m[32m37.61 KB[39m
|
|
15
|
+
[32mESM[39m ⚡️ Build success in 134ms
|
|
16
|
+
[32mCJS[39m [1mdist/index.js [22m[32m19.31 KB[39m
|
|
17
|
+
[32mCJS[39m [1mdist/index.js.map [22m[32m37.66 KB[39m
|
|
18
|
+
[32mCJS[39m ⚡️ Build success in 139ms
|
|
19
19
|
[34mDTS[39m Build start
|
|
20
|
-
[32mDTS[39m ⚡️ Build success in
|
|
21
|
-
[32mDTS[39m [1mdist/index.d.mts [22m[
|
|
22
|
-
[32mDTS[39m [1mdist/index.d.ts [22m[
|
|
20
|
+
[32mDTS[39m ⚡️ Build success in 19626ms
|
|
21
|
+
[32mDTS[39m [1mdist/index.d.mts [22m[32m561.00 B[39m
|
|
22
|
+
[32mDTS[39m [1mdist/index.d.ts [22m[32m561.00 B[39m
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,41 @@
|
|
|
1
1
|
# @elementor/editor-canvas
|
|
2
2
|
|
|
3
|
+
## 0.11.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 1a1e998: Add auto size unit to size controls
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- c654f89: Improve `createTransformer` types
|
|
12
|
+
- Updated dependencies [bcf4254]
|
|
13
|
+
- Updated dependencies [c654f89]
|
|
14
|
+
- Updated dependencies [571ff75]
|
|
15
|
+
- @elementor/editor-elements@0.6.0
|
|
16
|
+
- @elementor/editor-styles@0.6.0
|
|
17
|
+
- @elementor/editor-props@0.9.3
|
|
18
|
+
- @elementor/utils@0.4.0
|
|
19
|
+
- @elementor/editor-styles-repository@0.7.3
|
|
20
|
+
- @elementor/editor-v1-adapters@0.10.1
|
|
21
|
+
- @elementor/wp-media@0.4.2
|
|
22
|
+
- @elementor/editor@0.18.1
|
|
23
|
+
- @elementor/editor-responsive@0.13.1
|
|
24
|
+
|
|
25
|
+
## 0.10.0
|
|
26
|
+
|
|
27
|
+
### Minor Changes
|
|
28
|
+
|
|
29
|
+
- 728ffb5: Add the ability to extend transformers
|
|
30
|
+
|
|
31
|
+
### Patch Changes
|
|
32
|
+
|
|
33
|
+
- Updated dependencies [728ffb5]
|
|
34
|
+
- @elementor/editor-props@0.9.2
|
|
35
|
+
- @elementor/editor-styles-repository@0.7.2
|
|
36
|
+
- @elementor/editor-elements@0.5.4
|
|
37
|
+
- @elementor/editor-styles@0.5.7
|
|
38
|
+
|
|
3
39
|
## 0.9.0
|
|
4
40
|
|
|
5
41
|
### Minor Changes
|
package/dist/index.d.mts
CHANGED
|
@@ -1,2 +1,18 @@
|
|
|
1
|
+
type UnbrandedTransformer<TValue> = (value: TValue, options: {
|
|
2
|
+
key: string;
|
|
3
|
+
signal?: AbortSignal;
|
|
4
|
+
}) => unknown;
|
|
5
|
+
declare const brand: unique symbol;
|
|
6
|
+
type Transformer<TValue> = UnbrandedTransformer<TValue> & {
|
|
7
|
+
[brand]: true;
|
|
8
|
+
};
|
|
9
|
+
type TransformerName = string;
|
|
10
|
+
type AnyTransformer = Transformer<any>;
|
|
11
|
+
type TransformersMap = Record<string, AnyTransformer>;
|
|
1
12
|
|
|
2
|
-
|
|
13
|
+
declare const styleTransformersRegistry: {
|
|
14
|
+
register(name: TransformerName, transformer: AnyTransformer): /*elided*/ any;
|
|
15
|
+
all(): TransformersMap;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export { styleTransformersRegistry };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,18 @@
|
|
|
1
|
+
type UnbrandedTransformer<TValue> = (value: TValue, options: {
|
|
2
|
+
key: string;
|
|
3
|
+
signal?: AbortSignal;
|
|
4
|
+
}) => unknown;
|
|
5
|
+
declare const brand: unique symbol;
|
|
6
|
+
type Transformer<TValue> = UnbrandedTransformer<TValue> & {
|
|
7
|
+
[brand]: true;
|
|
8
|
+
};
|
|
9
|
+
type TransformerName = string;
|
|
10
|
+
type AnyTransformer = Transformer<any>;
|
|
11
|
+
type TransformersMap = Record<string, AnyTransformer>;
|
|
1
12
|
|
|
2
|
-
|
|
13
|
+
declare const styleTransformersRegistry: {
|
|
14
|
+
register(name: TransformerName, transformer: AnyTransformer): /*elided*/ any;
|
|
15
|
+
all(): TransformersMap;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export { styleTransformersRegistry };
|
package/dist/index.js
CHANGED
|
@@ -5,6 +5,10 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
|
5
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
6
|
var __getProtoOf = Object.getPrototypeOf;
|
|
7
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
8
12
|
var __copyProps = (to, from, except, desc) => {
|
|
9
13
|
if (from && typeof from === "object" || typeof from === "function") {
|
|
10
14
|
for (let key of __getOwnPropNames(from))
|
|
@@ -21,6 +25,14 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
21
25
|
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
22
26
|
mod
|
|
23
27
|
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
|
|
30
|
+
// src/index.ts
|
|
31
|
+
var index_exports = {};
|
|
32
|
+
__export(index_exports, {
|
|
33
|
+
styleTransformersRegistry: () => styleTransformersRegistry
|
|
34
|
+
});
|
|
35
|
+
module.exports = __toCommonJS(index_exports);
|
|
24
36
|
|
|
25
37
|
// src/init.tsx
|
|
26
38
|
var import_editor = require("@elementor/editor");
|
|
@@ -148,14 +160,70 @@ function ElementsOverlays() {
|
|
|
148
160
|
));
|
|
149
161
|
}
|
|
150
162
|
|
|
151
|
-
// src/
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
163
|
+
// src/transformers/create-transformers-registry.ts
|
|
164
|
+
function createTransformersRegistry() {
|
|
165
|
+
const transformers = {};
|
|
166
|
+
return {
|
|
167
|
+
register(name, transformer) {
|
|
168
|
+
transformers[name] = transformer;
|
|
169
|
+
return this;
|
|
170
|
+
},
|
|
171
|
+
all() {
|
|
172
|
+
return transformers;
|
|
173
|
+
}
|
|
174
|
+
};
|
|
175
|
+
}
|
|
156
176
|
|
|
157
|
-
// src/
|
|
158
|
-
var
|
|
177
|
+
// src/style-transformers-registry.ts
|
|
178
|
+
var styleTransformersRegistry = createTransformersRegistry();
|
|
179
|
+
|
|
180
|
+
// src/transformers/create-transformer.ts
|
|
181
|
+
function createTransformer(cb) {
|
|
182
|
+
return cb;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
// src/transformers/styles/background-color-overlay-transformer.ts
|
|
186
|
+
var backgroundColorOverlayTransformer = createTransformer(
|
|
187
|
+
(value) => `linear-gradient(${value}, ${value})`
|
|
188
|
+
);
|
|
189
|
+
|
|
190
|
+
// src/transformers/styles/background-image-overlay-transformer.ts
|
|
191
|
+
var DEFAULT_POSITION_VALUE = "0% 0%";
|
|
192
|
+
var backgroundImageOverlayTransformer = createTransformer((value) => {
|
|
193
|
+
const { image, size: size2 = null, position = null, repeat = null, attachment = null } = value;
|
|
194
|
+
if (!image) {
|
|
195
|
+
return null;
|
|
196
|
+
}
|
|
197
|
+
const backgroundStyles = [
|
|
198
|
+
image,
|
|
199
|
+
repeat,
|
|
200
|
+
attachment,
|
|
201
|
+
size2 ? `${position || DEFAULT_POSITION_VALUE} / ${size2}` : position
|
|
202
|
+
].filter(Boolean);
|
|
203
|
+
return backgroundStyles.join(" ");
|
|
204
|
+
});
|
|
205
|
+
|
|
206
|
+
// src/transformers/styles/background-image-position-offset-transformer.ts
|
|
207
|
+
var backgroundImagePositionOffsetTransformer = createTransformer(
|
|
208
|
+
({ x = "0px", y = "0px" }) => `${x} ${y}`
|
|
209
|
+
);
|
|
210
|
+
|
|
211
|
+
// src/transformers/styles/background-image-size-scale-transformer.ts
|
|
212
|
+
var backgroundImageSizeScaleTransformer = createTransformer(
|
|
213
|
+
({ width = "auto", height = "auto" }) => `${width} ${height}`
|
|
214
|
+
);
|
|
215
|
+
|
|
216
|
+
// src/transformers/styles/background-transformer.ts
|
|
217
|
+
var backgroundTransformer = createTransformer((value) => {
|
|
218
|
+
const overlays = value["background-overlay"] ?? "";
|
|
219
|
+
const color = value.color ?? "";
|
|
220
|
+
return `${overlays} ${color}`.trim();
|
|
221
|
+
});
|
|
222
|
+
|
|
223
|
+
// src/transformers/styles/create-combine-array-transformer.ts
|
|
224
|
+
var createCombineArrayTransformer = (delimiter) => {
|
|
225
|
+
return createTransformer((value) => value.filter(Boolean).join(delimiter));
|
|
226
|
+
};
|
|
159
227
|
|
|
160
228
|
// src/renderers/multi-props.ts
|
|
161
229
|
var isMultiProps = (propValue) => {
|
|
@@ -171,9 +239,121 @@ var getMultiPropsValue = (multiProps) => {
|
|
|
171
239
|
return multiProps.value;
|
|
172
240
|
};
|
|
173
241
|
|
|
242
|
+
// src/transformers/styles/create-multi-props-transformer.ts
|
|
243
|
+
var createMultiPropsTransformer = (keys, keyGenerator) => {
|
|
244
|
+
return createTransformer((value, { key: propKey }) => {
|
|
245
|
+
const entries = keys.filter((key) => value[key]).map((key) => [keyGenerator({ propKey, key }), value[key]]);
|
|
246
|
+
return createMultiPropsValue(Object.fromEntries(entries));
|
|
247
|
+
});
|
|
248
|
+
};
|
|
249
|
+
|
|
250
|
+
// src/transformers/styles/image-attachment-transformer.ts
|
|
251
|
+
var import_wp_media = require("@elementor/wp-media");
|
|
252
|
+
var imageAttachmentTransformer = createTransformer(async (value) => {
|
|
253
|
+
const attachment = await (0, import_wp_media.getMediaAttachment)({ id: value });
|
|
254
|
+
if (!attachment) {
|
|
255
|
+
return null;
|
|
256
|
+
}
|
|
257
|
+
return attachment;
|
|
258
|
+
});
|
|
259
|
+
|
|
260
|
+
// src/transformers/styles/image-src-transformer.ts
|
|
261
|
+
var imageSrcTransformer = createTransformer((value) => ({
|
|
262
|
+
attachment: value.id,
|
|
263
|
+
url: value.url
|
|
264
|
+
}));
|
|
265
|
+
|
|
266
|
+
// src/transformers/styles/image-transformer.ts
|
|
267
|
+
var imageTransformer = createTransformer((value) => {
|
|
268
|
+
const { src, size: size2 } = value;
|
|
269
|
+
if (src?.url) {
|
|
270
|
+
return `url(${src.url})`;
|
|
271
|
+
}
|
|
272
|
+
const sizeUrl = src?.attachment?.sizes?.[size2 ?? ""]?.url;
|
|
273
|
+
if (sizeUrl) {
|
|
274
|
+
return `url(${sizeUrl})`;
|
|
275
|
+
}
|
|
276
|
+
const attachmentUrl = src?.attachment?.url;
|
|
277
|
+
if (attachmentUrl) {
|
|
278
|
+
return `url(${attachmentUrl})`;
|
|
279
|
+
}
|
|
280
|
+
return null;
|
|
281
|
+
});
|
|
282
|
+
|
|
283
|
+
// src/transformers/styles/primitive-transformer.ts
|
|
284
|
+
var primitiveTransformer = createTransformer((value) => value);
|
|
285
|
+
|
|
286
|
+
// src/transformers/styles/shadow-transformer.ts
|
|
287
|
+
var shadowTransformer = createTransformer((value) => {
|
|
288
|
+
return [value.hOffset, value.vOffset, value.blur, value.spread, value.color, value.position].filter(Boolean).join(" ");
|
|
289
|
+
});
|
|
290
|
+
|
|
291
|
+
// src/transformers/styles/size-transformer.ts
|
|
292
|
+
var sizeTransformer = createTransformer((value) => {
|
|
293
|
+
return `${value.size}${value.unit}`;
|
|
294
|
+
});
|
|
295
|
+
|
|
296
|
+
// src/transformers/styles/stroke-transformer.ts
|
|
297
|
+
var strokeTransformer = createTransformer((value) => {
|
|
298
|
+
const parsed = {
|
|
299
|
+
"-webkit-text-stroke": `${value.width} ${value.color}`,
|
|
300
|
+
stroke: `${value.color}`,
|
|
301
|
+
"stroke-width": `${value.width}`
|
|
302
|
+
};
|
|
303
|
+
return createMultiPropsValue(parsed);
|
|
304
|
+
});
|
|
305
|
+
|
|
306
|
+
// src/init-style-transformers.ts
|
|
307
|
+
function initStyleTransformers() {
|
|
308
|
+
styleTransformersRegistry.register("size", sizeTransformer).register("shadow", shadowTransformer).register("stroke", strokeTransformer).register(
|
|
309
|
+
"dimensions",
|
|
310
|
+
createMultiPropsTransformer(
|
|
311
|
+
["top", "right", "bottom", "left"],
|
|
312
|
+
({ propKey, key }) => `${propKey}-${key}`
|
|
313
|
+
)
|
|
314
|
+
).register("color", primitiveTransformer).register("number", primitiveTransformer).register("string", primitiveTransformer).register("url", primitiveTransformer).register("box-shadow", createCombineArrayTransformer(",")).register("background", backgroundTransformer).register("background-overlay", createCombineArrayTransformer(",")).register("background-color-overlay", backgroundColorOverlayTransformer).register("background-image-overlay", backgroundImageOverlayTransformer).register("background-image-position-offset", backgroundImagePositionOffsetTransformer).register("background-image-size-scale", backgroundImageSizeScaleTransformer).register("image-attachment-id", imageAttachmentTransformer).register("image-src", imageSrcTransformer).register("image", imageTransformer).register(
|
|
315
|
+
"layout-direction",
|
|
316
|
+
createMultiPropsTransformer(["row", "column"], ({ propKey, key }) => `${key}-${propKey}`)
|
|
317
|
+
).register(
|
|
318
|
+
"border-width",
|
|
319
|
+
createMultiPropsTransformer(["top", "right", "bottom", "left"], ({ key }) => `border-${key}-width`)
|
|
320
|
+
).register(
|
|
321
|
+
"border-radius",
|
|
322
|
+
createMultiPropsTransformer(
|
|
323
|
+
["start-start", "start-end", "end-start", "end-end"],
|
|
324
|
+
({ key }) => `border-${key}-radius`
|
|
325
|
+
)
|
|
326
|
+
);
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
// src/init-styles-renderer.ts
|
|
330
|
+
var import_editor_responsive = require("@elementor/editor-responsive");
|
|
331
|
+
var import_editor_styles = require("@elementor/editor-styles");
|
|
332
|
+
var import_editor_styles_repository = require("@elementor/editor-styles-repository");
|
|
333
|
+
var import_editor_v1_adapters2 = require("@elementor/editor-v1-adapters");
|
|
334
|
+
|
|
174
335
|
// src/renderers/create-props-resolver.ts
|
|
336
|
+
var import_editor_props = require("@elementor/editor-props");
|
|
175
337
|
var TRANSFORM_DEPTH_LIMIT = 3;
|
|
176
|
-
function createPropsResolver(transformers,
|
|
338
|
+
function createPropsResolver({ transformers, schema: initialSchema, onPropResolve }) {
|
|
339
|
+
async function resolve({ props, schema, signal }) {
|
|
340
|
+
schema = schema ?? initialSchema;
|
|
341
|
+
const promises = Promise.all(
|
|
342
|
+
Object.entries(schema).map(async ([key, type]) => {
|
|
343
|
+
const value = props[key] ?? type.default;
|
|
344
|
+
const transformed = await transform({ value, key, type, signal });
|
|
345
|
+
if (transformed === null) {
|
|
346
|
+
return;
|
|
347
|
+
}
|
|
348
|
+
onPropResolve?.({ key, value: transformed });
|
|
349
|
+
if (isMultiProps(transformed)) {
|
|
350
|
+
return getMultiPropsValue(transformed);
|
|
351
|
+
}
|
|
352
|
+
return { [key]: transformed };
|
|
353
|
+
})
|
|
354
|
+
);
|
|
355
|
+
return Object.assign({}, ...(await promises).filter(Boolean));
|
|
356
|
+
}
|
|
177
357
|
async function transform({ value, key, type, signal, depth = 0 }) {
|
|
178
358
|
if (value === null || value === void 0) {
|
|
179
359
|
return null;
|
|
@@ -219,23 +399,6 @@ function createPropsResolver(transformers, { onPropResolve } = {}) {
|
|
|
219
399
|
return null;
|
|
220
400
|
}
|
|
221
401
|
}
|
|
222
|
-
async function resolve({ props, schema, signal }) {
|
|
223
|
-
const promises = Promise.all(
|
|
224
|
-
Object.entries(schema).map(async ([key, type]) => {
|
|
225
|
-
const value = props[key] ?? type.default;
|
|
226
|
-
const transformed = await transform({ value, key, type, signal });
|
|
227
|
-
if (transformed === null) {
|
|
228
|
-
return;
|
|
229
|
-
}
|
|
230
|
-
onPropResolve?.({ key, value: transformed });
|
|
231
|
-
if (isMultiProps(transformed)) {
|
|
232
|
-
return getMultiPropsValue(transformed);
|
|
233
|
-
}
|
|
234
|
-
return { [key]: transformed };
|
|
235
|
-
})
|
|
236
|
-
);
|
|
237
|
-
return Object.assign({}, ...(await promises).filter(Boolean));
|
|
238
|
-
}
|
|
239
402
|
return resolve;
|
|
240
403
|
}
|
|
241
404
|
|
|
@@ -253,14 +416,13 @@ var SELECTORS_MAP = {
|
|
|
253
416
|
async function renderStyles({
|
|
254
417
|
resolve,
|
|
255
418
|
styles,
|
|
256
|
-
schema,
|
|
257
419
|
breakpoints,
|
|
258
420
|
selectorPrefix = "",
|
|
259
421
|
signal
|
|
260
422
|
}) {
|
|
261
423
|
const stylesCssPromises = styles.map(async (style) => {
|
|
262
424
|
const variantCssPromises = Object.values(style.variants).map(async (variant) => {
|
|
263
|
-
const css = await propsToCss({ props: variant.props,
|
|
425
|
+
const css = await propsToCss({ props: variant.props, resolve, signal });
|
|
264
426
|
return createStyleWrapper().forStyle(style).withPrefix(selectorPrefix).withState(variant.meta.state).withMediaQuery(variant.meta.breakpoint ? breakpoints[variant.meta.breakpoint] : null).wrap(css);
|
|
265
427
|
});
|
|
266
428
|
const variantsCss = await Promise.all(variantCssPromises);
|
|
@@ -296,8 +458,8 @@ function createStyleWrapper(value = "", wrapper) {
|
|
|
296
458
|
}
|
|
297
459
|
};
|
|
298
460
|
}
|
|
299
|
-
async function propsToCss({ props, resolve, signal
|
|
300
|
-
const transformed = await resolve({ props,
|
|
461
|
+
async function propsToCss({ props, resolve, signal }) {
|
|
462
|
+
const transformed = await resolve({ props, signal });
|
|
301
463
|
return Object.entries(transformed).reduce((acc, [propName, propValue]) => {
|
|
302
464
|
acc.push(propName + ":" + propValue + ";");
|
|
303
465
|
return acc;
|
|
@@ -307,197 +469,6 @@ function wrapCssWithStyleElement(id, css) {
|
|
|
307
469
|
return `<style data-style-id="${id}">${css}</style>`;
|
|
308
470
|
}
|
|
309
471
|
|
|
310
|
-
// src/renderers/style-transformers/background-color-overlay-transformer.ts
|
|
311
|
-
var backgroundColorOverlayTransformer = (value) => {
|
|
312
|
-
return `linear-gradient(${value}, ${value})`;
|
|
313
|
-
};
|
|
314
|
-
var background_color_overlay_transformer_default = backgroundColorOverlayTransformer;
|
|
315
|
-
|
|
316
|
-
// src/renderers/style-transformers/background-image-overlay-transformer.ts
|
|
317
|
-
var DEFAULT_POSITION_VALUE = "0% 0%";
|
|
318
|
-
var backgroundImageOverlayTransformer = (value) => {
|
|
319
|
-
const { image: imageSrc, size: size2 = null, position = null, repeat = null, attachment = null } = value;
|
|
320
|
-
if (!imageSrc) {
|
|
321
|
-
return null;
|
|
322
|
-
}
|
|
323
|
-
const backgroundStyles = [
|
|
324
|
-
imageSrc,
|
|
325
|
-
repeat,
|
|
326
|
-
attachment,
|
|
327
|
-
size2 ? `${position || DEFAULT_POSITION_VALUE} / ${size2}` : position
|
|
328
|
-
].filter(Boolean);
|
|
329
|
-
return backgroundStyles.join(" ");
|
|
330
|
-
};
|
|
331
|
-
var background_image_overlay_transformer_default = backgroundImageOverlayTransformer;
|
|
332
|
-
|
|
333
|
-
// src/renderers/style-transformers/background-image-position-offset-transformer.ts
|
|
334
|
-
var backgroundImagePositionOffsetTransformer = ({
|
|
335
|
-
x = "0px",
|
|
336
|
-
y = "0px"
|
|
337
|
-
}) => `${x} ${y}`;
|
|
338
|
-
var background_image_position_offset_transformer_default = backgroundImagePositionOffsetTransformer;
|
|
339
|
-
|
|
340
|
-
// src/renderers/style-transformers/background-image-size-scale-transformer.ts
|
|
341
|
-
var backgroundImageSizeScaleTransformer = ({
|
|
342
|
-
width = "auto",
|
|
343
|
-
height = "auto"
|
|
344
|
-
}) => `${width} ${height}`;
|
|
345
|
-
var background_image_size_scale_transformer_default = backgroundImageSizeScaleTransformer;
|
|
346
|
-
|
|
347
|
-
// src/renderers/style-transformers/background-transformer.ts
|
|
348
|
-
var backgroundTransformer = (value) => {
|
|
349
|
-
const overlays = value["background-overlay"] ?? "";
|
|
350
|
-
const color = value.color ?? "";
|
|
351
|
-
return `${overlays} ${color}`.trim();
|
|
352
|
-
};
|
|
353
|
-
var background_transformer_default = backgroundTransformer;
|
|
354
|
-
|
|
355
|
-
// src/renderers/style-transformers/create-combine-array-transformer.ts
|
|
356
|
-
var createCombineArrayTransformer = (delimiter) => {
|
|
357
|
-
return (value) => value.filter(Boolean).join(delimiter);
|
|
358
|
-
};
|
|
359
|
-
var create_combine_array_transformer_default = createCombineArrayTransformer;
|
|
360
|
-
|
|
361
|
-
// src/renderers/style-transformers/create-corner-sizes-transformer.ts
|
|
362
|
-
var validCorners = ["start-start", "start-end", "end-start", "end-end"];
|
|
363
|
-
var createCornerSizesTransformer = (keyGenerator) => (value) => {
|
|
364
|
-
const props = Object.entries(value).reduce((acc, [corner, cornerValue]) => {
|
|
365
|
-
if (validCorners.includes(corner)) {
|
|
366
|
-
const key = keyGenerator(corner);
|
|
367
|
-
acc[key] = cornerValue;
|
|
368
|
-
}
|
|
369
|
-
return acc;
|
|
370
|
-
}, {});
|
|
371
|
-
return createMultiPropsValue(props);
|
|
372
|
-
};
|
|
373
|
-
var create_corner_sizes_transformer_default = createCornerSizesTransformer;
|
|
374
|
-
|
|
375
|
-
// src/renderers/style-transformers/create-edge-sizes-transformer.ts
|
|
376
|
-
var validEdges = ["top", "right", "bottom", "left"];
|
|
377
|
-
var createEdgeSizesTransformer = (keyGenerator) => (value) => {
|
|
378
|
-
const props = Object.entries(value).reduce((acc, [edge, edgeValue]) => {
|
|
379
|
-
if (validEdges.includes(edge)) {
|
|
380
|
-
const key = keyGenerator(edge);
|
|
381
|
-
acc[key] = edgeValue;
|
|
382
|
-
}
|
|
383
|
-
return acc;
|
|
384
|
-
}, {});
|
|
385
|
-
return createMultiPropsValue(props);
|
|
386
|
-
};
|
|
387
|
-
var create_edge_sizes_transformer_default = createEdgeSizesTransformer;
|
|
388
|
-
|
|
389
|
-
// src/renderers/style-transformers/dimensions.ts
|
|
390
|
-
var validKeys = ["top", "right", "bottom", "left"];
|
|
391
|
-
var dimensions = (value, { key }) => {
|
|
392
|
-
const parsed = Object.entries(value).reduce((acc, [dimensionKey, dimensionValue]) => {
|
|
393
|
-
if (dimensionValue && validKeys.includes(dimensionKey)) {
|
|
394
|
-
acc[`${key}-${dimensionKey}`] = dimensionValue;
|
|
395
|
-
}
|
|
396
|
-
return acc;
|
|
397
|
-
}, {});
|
|
398
|
-
return createMultiPropsValue(parsed);
|
|
399
|
-
};
|
|
400
|
-
var dimensions_default = dimensions;
|
|
401
|
-
|
|
402
|
-
// src/renderers/style-transformers/image.ts
|
|
403
|
-
var imageTransformer = (value) => {
|
|
404
|
-
const { src, size: size2 } = value;
|
|
405
|
-
if (src.url) {
|
|
406
|
-
return `url(${src.url})`;
|
|
407
|
-
}
|
|
408
|
-
const sizeUrl = src.attachment?.sizes[size2]?.url;
|
|
409
|
-
if (sizeUrl) {
|
|
410
|
-
return `url(${sizeUrl})`;
|
|
411
|
-
}
|
|
412
|
-
const attachmentUrl = src.attachment?.url;
|
|
413
|
-
if (attachmentUrl) {
|
|
414
|
-
return `url(${attachmentUrl})`;
|
|
415
|
-
}
|
|
416
|
-
return null;
|
|
417
|
-
};
|
|
418
|
-
|
|
419
|
-
// src/renderers/style-transformers/image-attachment.ts
|
|
420
|
-
var import_wp_media = require("@elementor/wp-media");
|
|
421
|
-
var imageAttachmentTransformer = async (value) => {
|
|
422
|
-
const attachment = await (0, import_wp_media.getMediaAttachment)({ id: value });
|
|
423
|
-
if (!attachment) {
|
|
424
|
-
return null;
|
|
425
|
-
}
|
|
426
|
-
return attachment;
|
|
427
|
-
};
|
|
428
|
-
|
|
429
|
-
// src/renderers/style-transformers/image-src.ts
|
|
430
|
-
var imageSrcTransformer = (value) => ({
|
|
431
|
-
attachment: value.id,
|
|
432
|
-
url: value.url
|
|
433
|
-
});
|
|
434
|
-
|
|
435
|
-
// src/renderers/style-transformers/layout-direction-transformer.ts
|
|
436
|
-
var validKeys2 = ["row", "column"];
|
|
437
|
-
var layoutDirectionTransformer = (value, { key }) => {
|
|
438
|
-
const parsed = Object.entries(value).reduce((acc, [dimensionKey, dimensionValue]) => {
|
|
439
|
-
if (dimensionValue && validKeys2.includes(dimensionKey)) {
|
|
440
|
-
acc[`${dimensionKey}-${key}`] = dimensionValue;
|
|
441
|
-
}
|
|
442
|
-
return acc;
|
|
443
|
-
}, {});
|
|
444
|
-
return createMultiPropsValue(parsed);
|
|
445
|
-
};
|
|
446
|
-
var layout_direction_transformer_default = layoutDirectionTransformer;
|
|
447
|
-
|
|
448
|
-
// src/renderers/style-transformers/primitive-transformer.ts
|
|
449
|
-
var primitiveTransformer = (value) => {
|
|
450
|
-
return value;
|
|
451
|
-
};
|
|
452
|
-
|
|
453
|
-
// src/renderers/style-transformers/shadow-transformer.ts
|
|
454
|
-
var shadowTransformer = (value) => {
|
|
455
|
-
return [value.hOffset, value.vOffset, value.blur, value.spread, value.color, value.position].filter(Boolean).join(" ");
|
|
456
|
-
};
|
|
457
|
-
var shadow_transformer_default = shadowTransformer;
|
|
458
|
-
|
|
459
|
-
// src/renderers/style-transformers/size-transformer.ts
|
|
460
|
-
var sizeTransformer = (value) => {
|
|
461
|
-
return `${value.size}${value.unit}`;
|
|
462
|
-
};
|
|
463
|
-
var size_transformer_default = sizeTransformer;
|
|
464
|
-
|
|
465
|
-
// src/renderers/style-transformers/stroke-transformer.ts
|
|
466
|
-
var strokeTransformer = (value) => {
|
|
467
|
-
const parsed = {
|
|
468
|
-
"-webkit-text-stroke": `${value.width} ${value.color}`,
|
|
469
|
-
stroke: `${value.color}`,
|
|
470
|
-
"stroke-width": `${value.width}`
|
|
471
|
-
};
|
|
472
|
-
return createMultiPropsValue(parsed);
|
|
473
|
-
};
|
|
474
|
-
var stroke_transformer_default = strokeTransformer;
|
|
475
|
-
|
|
476
|
-
// src/renderers/style-transformers/index.ts
|
|
477
|
-
var styleTransformers = {
|
|
478
|
-
size: size_transformer_default,
|
|
479
|
-
shadow: shadow_transformer_default,
|
|
480
|
-
stroke: stroke_transformer_default,
|
|
481
|
-
background: background_transformer_default,
|
|
482
|
-
color: primitiveTransformer,
|
|
483
|
-
number: primitiveTransformer,
|
|
484
|
-
string: primitiveTransformer,
|
|
485
|
-
url: primitiveTransformer,
|
|
486
|
-
dimensions: dimensions_default,
|
|
487
|
-
"background-color-overlay": background_color_overlay_transformer_default,
|
|
488
|
-
"background-image-overlay": background_image_overlay_transformer_default,
|
|
489
|
-
"background-image-position-offset": background_image_position_offset_transformer_default,
|
|
490
|
-
"background-image-size-scale": background_image_size_scale_transformer_default,
|
|
491
|
-
"background-overlay": create_combine_array_transformer_default(","),
|
|
492
|
-
"box-shadow": create_combine_array_transformer_default(","),
|
|
493
|
-
"border-width": create_edge_sizes_transformer_default((edgeKey) => `border-${edgeKey}-width`),
|
|
494
|
-
"border-radius": create_corner_sizes_transformer_default((cornerKey) => `border-${cornerKey}-radius`),
|
|
495
|
-
"image-attachment-id": imageAttachmentTransformer,
|
|
496
|
-
"image-src": imageSrcTransformer,
|
|
497
|
-
image: imageTransformer,
|
|
498
|
-
"layout-direction": layout_direction_transformer_default
|
|
499
|
-
};
|
|
500
|
-
|
|
501
472
|
// src/sync/enqueue-font.ts
|
|
502
473
|
var enqueueFont = (fontFamily, context = "preview") => {
|
|
503
474
|
const extendedWindow = window;
|
|
@@ -514,14 +485,17 @@ function getCanvasIframeBody() {
|
|
|
514
485
|
var WRAPPER_DATA_ATTR = "data-styles-container";
|
|
515
486
|
var SELECTOR_PREFIX = ".elementor";
|
|
516
487
|
function initStylesRenderer() {
|
|
517
|
-
let abortController = null;
|
|
518
|
-
const resolve = createPropsResolver(styleTransformers, { onPropResolve: enqueueUsedFonts });
|
|
519
488
|
(0, import_editor_v1_adapters2.__privateListenTo)((0, import_editor_v1_adapters2.v1ReadyEvent)(), () => {
|
|
489
|
+
let abortController = null;
|
|
490
|
+
const resolve = createPropsResolver({
|
|
491
|
+
transformers: styleTransformersRegistry.all(),
|
|
492
|
+
schema: (0, import_editor_styles.getStylesSchema)(),
|
|
493
|
+
onPropResolve: enqueueUsedFonts
|
|
494
|
+
});
|
|
520
495
|
import_editor_styles_repository.stylesRepository.subscribe(async () => {
|
|
521
496
|
const styleContainer = getStylesContainer();
|
|
522
497
|
const styles = import_editor_styles_repository.stylesRepository.all().reverse();
|
|
523
498
|
const breakpoints = (0, import_editor_responsive.getBreakpointsMap)();
|
|
524
|
-
const schema = (0, import_editor_styles.getStylesSchema)();
|
|
525
499
|
if (abortController) {
|
|
526
500
|
abortController.abort();
|
|
527
501
|
}
|
|
@@ -531,8 +505,7 @@ function initStylesRenderer() {
|
|
|
531
505
|
resolve,
|
|
532
506
|
breakpoints,
|
|
533
507
|
selectorPrefix: SELECTOR_PREFIX,
|
|
534
|
-
signal: abortController.signal
|
|
535
|
-
schema
|
|
508
|
+
signal: abortController.signal
|
|
536
509
|
});
|
|
537
510
|
});
|
|
538
511
|
});
|
|
@@ -562,6 +535,7 @@ function enqueueUsedFonts({ key, value }) {
|
|
|
562
535
|
|
|
563
536
|
// src/init.tsx
|
|
564
537
|
function init() {
|
|
538
|
+
initStyleTransformers();
|
|
565
539
|
initStylesRenderer();
|
|
566
540
|
(0, import_editor.injectIntoTop)({
|
|
567
541
|
id: "elements-overlays",
|
|
@@ -571,4 +545,8 @@ function init() {
|
|
|
571
545
|
|
|
572
546
|
// src/index.ts
|
|
573
547
|
init();
|
|
548
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
549
|
+
0 && (module.exports = {
|
|
550
|
+
styleTransformersRegistry
|
|
551
|
+
});
|
|
574
552
|
//# sourceMappingURL=index.js.map
|