@elementor/editor-canvas 0.8.0 → 0.10.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 +29 -0
- package/dist/index.d.mts +13 -1
- package/dist/index.d.ts +13 -1
- package/dist/index.js +203 -220
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +192 -222
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -5
- package/src/{renderers/__tests__ → __tests__}/__mocks__/styles-schema.ts +11 -4
- 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} +23 -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 +43 -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 +6 -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 +14 -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 -9
- package/src/renderers/types.ts +0 -12
package/dist/index.mjs
CHANGED
|
@@ -127,16 +127,70 @@ function ElementsOverlays() {
|
|
|
127
127
|
));
|
|
128
128
|
}
|
|
129
129
|
|
|
130
|
-
// src/
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
130
|
+
// src/transformers/create-transformers-registry.ts
|
|
131
|
+
function createTransformersRegistry() {
|
|
132
|
+
const transformers = {};
|
|
133
|
+
return {
|
|
134
|
+
register(name, transformer) {
|
|
135
|
+
transformers[name] = transformer;
|
|
136
|
+
return this;
|
|
137
|
+
},
|
|
138
|
+
all() {
|
|
139
|
+
return transformers;
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
}
|
|
135
143
|
|
|
136
|
-
// src/
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
144
|
+
// src/style-transformers-registry.ts
|
|
145
|
+
var styleTransformersRegistry = createTransformersRegistry();
|
|
146
|
+
|
|
147
|
+
// src/transformers/create-transformer.ts
|
|
148
|
+
function createTransformer(cb) {
|
|
149
|
+
return cb;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
// src/transformers/styles/background-color-overlay-transformer.ts
|
|
153
|
+
var backgroundColorOverlayTransformer = createTransformer(
|
|
154
|
+
(value) => `linear-gradient(${value}, ${value})`
|
|
155
|
+
);
|
|
156
|
+
|
|
157
|
+
// src/transformers/styles/background-image-overlay-transformer.ts
|
|
158
|
+
var DEFAULT_POSITION_VALUE = "0% 0%";
|
|
159
|
+
var backgroundImageOverlayTransformer = createTransformer((value) => {
|
|
160
|
+
const { image, size: size2 = null, position = null, repeat = null, attachment = null } = value;
|
|
161
|
+
if (!image) {
|
|
162
|
+
return null;
|
|
163
|
+
}
|
|
164
|
+
const backgroundStyles = [
|
|
165
|
+
image,
|
|
166
|
+
repeat,
|
|
167
|
+
attachment,
|
|
168
|
+
size2 ? `${position || DEFAULT_POSITION_VALUE} / ${size2}` : position
|
|
169
|
+
].filter(Boolean);
|
|
170
|
+
return backgroundStyles.join(" ");
|
|
171
|
+
});
|
|
172
|
+
|
|
173
|
+
// src/transformers/styles/background-image-position-offset-transformer.ts
|
|
174
|
+
var backgroundImagePositionOffsetTransformer = createTransformer(
|
|
175
|
+
({ x = "0px", y = "0px" }) => `${x} ${y}`
|
|
176
|
+
);
|
|
177
|
+
|
|
178
|
+
// src/transformers/styles/background-image-size-scale-transformer.ts
|
|
179
|
+
var backgroundImageSizeScaleTransformer = createTransformer(
|
|
180
|
+
({ width = "auto", height = "auto" }) => `${width} ${height}`
|
|
181
|
+
);
|
|
182
|
+
|
|
183
|
+
// src/transformers/styles/background-transformer.ts
|
|
184
|
+
var backgroundTransformer = createTransformer((value) => {
|
|
185
|
+
const overlays = value["background-overlay"] ?? "";
|
|
186
|
+
const color = value.color ?? "";
|
|
187
|
+
return `${overlays} ${color}`.trim();
|
|
188
|
+
});
|
|
189
|
+
|
|
190
|
+
// src/transformers/styles/create-combine-array-transformer.ts
|
|
191
|
+
var createCombineArrayTransformer = (delimiter) => {
|
|
192
|
+
return createTransformer((value) => value.filter(Boolean).join(delimiter));
|
|
193
|
+
};
|
|
140
194
|
|
|
141
195
|
// src/renderers/multi-props.ts
|
|
142
196
|
var isMultiProps = (propValue) => {
|
|
@@ -152,9 +206,123 @@ var getMultiPropsValue = (multiProps) => {
|
|
|
152
206
|
return multiProps.value;
|
|
153
207
|
};
|
|
154
208
|
|
|
209
|
+
// src/transformers/styles/create-multi-props-transformer.ts
|
|
210
|
+
var createMultiPropsTransformer = (keys, keyGenerator) => {
|
|
211
|
+
return createTransformer((value, { key: propKey }) => {
|
|
212
|
+
const entries = keys.filter((key) => value[key]).map((key) => [keyGenerator({ propKey, key }), value[key]]);
|
|
213
|
+
return createMultiPropsValue(Object.fromEntries(entries));
|
|
214
|
+
});
|
|
215
|
+
};
|
|
216
|
+
|
|
217
|
+
// src/transformers/styles/image-attachment-transformer.ts
|
|
218
|
+
import { getMediaAttachment } from "@elementor/wp-media";
|
|
219
|
+
var imageAttachmentTransformer = createTransformer(async (value) => {
|
|
220
|
+
const attachment = await getMediaAttachment({ id: value });
|
|
221
|
+
if (!attachment) {
|
|
222
|
+
return null;
|
|
223
|
+
}
|
|
224
|
+
return attachment;
|
|
225
|
+
});
|
|
226
|
+
|
|
227
|
+
// src/transformers/styles/image-src-transformer.ts
|
|
228
|
+
var imageSrcTransformer = createTransformer((value) => ({
|
|
229
|
+
attachment: value.id,
|
|
230
|
+
url: value.url
|
|
231
|
+
}));
|
|
232
|
+
|
|
233
|
+
// src/transformers/styles/image-transformer.ts
|
|
234
|
+
var imageTransformer = createTransformer((value) => {
|
|
235
|
+
const { src, size: size2 } = value;
|
|
236
|
+
if (src?.url) {
|
|
237
|
+
return `url(${src.url})`;
|
|
238
|
+
}
|
|
239
|
+
const sizeUrl = src?.attachment?.sizes?.[size2 ?? ""]?.url;
|
|
240
|
+
if (sizeUrl) {
|
|
241
|
+
return `url(${sizeUrl})`;
|
|
242
|
+
}
|
|
243
|
+
const attachmentUrl = src?.attachment?.url;
|
|
244
|
+
if (attachmentUrl) {
|
|
245
|
+
return `url(${attachmentUrl})`;
|
|
246
|
+
}
|
|
247
|
+
return null;
|
|
248
|
+
});
|
|
249
|
+
|
|
250
|
+
// src/transformers/styles/primitive-transformer.ts
|
|
251
|
+
var primitiveTransformer = createTransformer((value) => value);
|
|
252
|
+
|
|
253
|
+
// src/transformers/styles/shadow-transformer.ts
|
|
254
|
+
var shadowTransformer = createTransformer((value) => {
|
|
255
|
+
return [value.hOffset, value.vOffset, value.blur, value.spread, value.color, value.position].filter(Boolean).join(" ");
|
|
256
|
+
});
|
|
257
|
+
|
|
258
|
+
// src/transformers/styles/size-transformer.ts
|
|
259
|
+
var sizeTransformer = createTransformer((value) => {
|
|
260
|
+
return `${value.size}${value.unit}`;
|
|
261
|
+
});
|
|
262
|
+
|
|
263
|
+
// src/transformers/styles/stroke-transformer.ts
|
|
264
|
+
var strokeTransformer = createTransformer((value) => {
|
|
265
|
+
const parsed = {
|
|
266
|
+
"-webkit-text-stroke": `${value.width} ${value.color}`,
|
|
267
|
+
stroke: `${value.color}`,
|
|
268
|
+
"stroke-width": `${value.width}`
|
|
269
|
+
};
|
|
270
|
+
return createMultiPropsValue(parsed);
|
|
271
|
+
});
|
|
272
|
+
|
|
273
|
+
// src/init-style-transformers.ts
|
|
274
|
+
function initStyleTransformers() {
|
|
275
|
+
styleTransformersRegistry.register("size", sizeTransformer).register("shadow", shadowTransformer).register("stroke", strokeTransformer).register(
|
|
276
|
+
"dimensions",
|
|
277
|
+
createMultiPropsTransformer(
|
|
278
|
+
["top", "right", "bottom", "left"],
|
|
279
|
+
({ propKey, key }) => `${propKey}-${key}`
|
|
280
|
+
)
|
|
281
|
+
).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(
|
|
282
|
+
"layout-direction",
|
|
283
|
+
createMultiPropsTransformer(["row", "column"], ({ propKey, key }) => `${key}-${propKey}`)
|
|
284
|
+
).register(
|
|
285
|
+
"border-width",
|
|
286
|
+
createMultiPropsTransformer(["top", "right", "bottom", "left"], ({ key }) => `border-${key}-width`)
|
|
287
|
+
).register(
|
|
288
|
+
"border-radius",
|
|
289
|
+
createMultiPropsTransformer(
|
|
290
|
+
["start-start", "start-end", "end-start", "end-end"],
|
|
291
|
+
({ key }) => `border-${key}-radius`
|
|
292
|
+
)
|
|
293
|
+
);
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
// src/init-styles-renderer.ts
|
|
297
|
+
import { getBreakpointsMap } from "@elementor/editor-responsive";
|
|
298
|
+
import { getStylesSchema } from "@elementor/editor-styles";
|
|
299
|
+
import { stylesRepository } from "@elementor/editor-styles-repository";
|
|
300
|
+
import { __privateListenTo as listenTo, v1ReadyEvent } from "@elementor/editor-v1-adapters";
|
|
301
|
+
|
|
155
302
|
// src/renderers/create-props-resolver.ts
|
|
303
|
+
import {
|
|
304
|
+
isTransformable
|
|
305
|
+
} from "@elementor/editor-props";
|
|
156
306
|
var TRANSFORM_DEPTH_LIMIT = 3;
|
|
157
|
-
function createPropsResolver(transformers,
|
|
307
|
+
function createPropsResolver({ transformers, schema: initialSchema, onPropResolve }) {
|
|
308
|
+
async function resolve({ props, schema, signal }) {
|
|
309
|
+
schema = schema ?? initialSchema;
|
|
310
|
+
const promises = Promise.all(
|
|
311
|
+
Object.entries(schema).map(async ([key, type]) => {
|
|
312
|
+
const value = props[key] ?? type.default;
|
|
313
|
+
const transformed = await transform({ value, key, type, signal });
|
|
314
|
+
if (transformed === null) {
|
|
315
|
+
return;
|
|
316
|
+
}
|
|
317
|
+
onPropResolve?.({ key, value: transformed });
|
|
318
|
+
if (isMultiProps(transformed)) {
|
|
319
|
+
return getMultiPropsValue(transformed);
|
|
320
|
+
}
|
|
321
|
+
return { [key]: transformed };
|
|
322
|
+
})
|
|
323
|
+
);
|
|
324
|
+
return Object.assign({}, ...(await promises).filter(Boolean));
|
|
325
|
+
}
|
|
158
326
|
async function transform({ value, key, type, signal, depth = 0 }) {
|
|
159
327
|
if (value === null || value === void 0) {
|
|
160
328
|
return null;
|
|
@@ -200,23 +368,6 @@ function createPropsResolver(transformers, { onPropResolve } = {}) {
|
|
|
200
368
|
return null;
|
|
201
369
|
}
|
|
202
370
|
}
|
|
203
|
-
async function resolve({ props, schema, signal }) {
|
|
204
|
-
const promises = Promise.all(
|
|
205
|
-
Object.entries(schema).map(async ([key, type]) => {
|
|
206
|
-
const value = props[key] ?? type.default;
|
|
207
|
-
const transformed = await transform({ value, key, type, signal });
|
|
208
|
-
if (transformed === null) {
|
|
209
|
-
return;
|
|
210
|
-
}
|
|
211
|
-
onPropResolve?.({ key, value: transformed });
|
|
212
|
-
if (isMultiProps(transformed)) {
|
|
213
|
-
return getMultiPropsValue(transformed);
|
|
214
|
-
}
|
|
215
|
-
return { [key]: transformed };
|
|
216
|
-
})
|
|
217
|
-
);
|
|
218
|
-
return Object.assign({}, ...(await promises).filter(Boolean));
|
|
219
|
-
}
|
|
220
371
|
return resolve;
|
|
221
372
|
}
|
|
222
373
|
|
|
@@ -234,14 +385,13 @@ var SELECTORS_MAP = {
|
|
|
234
385
|
async function renderStyles({
|
|
235
386
|
resolve,
|
|
236
387
|
styles,
|
|
237
|
-
schema,
|
|
238
388
|
breakpoints,
|
|
239
389
|
selectorPrefix = "",
|
|
240
390
|
signal
|
|
241
391
|
}) {
|
|
242
392
|
const stylesCssPromises = styles.map(async (style) => {
|
|
243
393
|
const variantCssPromises = Object.values(style.variants).map(async (variant) => {
|
|
244
|
-
const css = await propsToCss({ props: variant.props,
|
|
394
|
+
const css = await propsToCss({ props: variant.props, resolve, signal });
|
|
245
395
|
return createStyleWrapper().forStyle(style).withPrefix(selectorPrefix).withState(variant.meta.state).withMediaQuery(variant.meta.breakpoint ? breakpoints[variant.meta.breakpoint] : null).wrap(css);
|
|
246
396
|
});
|
|
247
397
|
const variantsCss = await Promise.all(variantCssPromises);
|
|
@@ -277,8 +427,8 @@ function createStyleWrapper(value = "", wrapper) {
|
|
|
277
427
|
}
|
|
278
428
|
};
|
|
279
429
|
}
|
|
280
|
-
async function propsToCss({ props, resolve, signal
|
|
281
|
-
const transformed = await resolve({ props,
|
|
430
|
+
async function propsToCss({ props, resolve, signal }) {
|
|
431
|
+
const transformed = await resolve({ props, signal });
|
|
282
432
|
return Object.entries(transformed).reduce((acc, [propName, propValue]) => {
|
|
283
433
|
acc.push(propName + ":" + propValue + ";");
|
|
284
434
|
return acc;
|
|
@@ -288,192 +438,6 @@ function wrapCssWithStyleElement(id, css) {
|
|
|
288
438
|
return `<style data-style-id="${id}">${css}</style>`;
|
|
289
439
|
}
|
|
290
440
|
|
|
291
|
-
// src/renderers/style-transformers/background-color-overlay-transformer.ts
|
|
292
|
-
var backgroundColorOverlayTransformer = (value) => {
|
|
293
|
-
return `linear-gradient(${value}, ${value})`;
|
|
294
|
-
};
|
|
295
|
-
var background_color_overlay_transformer_default = backgroundColorOverlayTransformer;
|
|
296
|
-
|
|
297
|
-
// src/renderers/style-transformers/background-image-overlay-transformer.ts
|
|
298
|
-
var DEFAULT_POSITION_VALUE = "0% 0%";
|
|
299
|
-
var backgroundImageOverlayTransformer = (value) => {
|
|
300
|
-
const { image: imageSrc, size: size2 = null, position = null, repeat = null, attachment = null } = value;
|
|
301
|
-
if (!imageSrc) {
|
|
302
|
-
return null;
|
|
303
|
-
}
|
|
304
|
-
const backgroundStyles = [
|
|
305
|
-
imageSrc,
|
|
306
|
-
repeat,
|
|
307
|
-
attachment,
|
|
308
|
-
size2 ? `${position || DEFAULT_POSITION_VALUE} / ${size2}` : position
|
|
309
|
-
].filter(Boolean);
|
|
310
|
-
return backgroundStyles.join(" ");
|
|
311
|
-
};
|
|
312
|
-
var background_image_overlay_transformer_default = backgroundImageOverlayTransformer;
|
|
313
|
-
|
|
314
|
-
// src/renderers/style-transformers/background-image-position-offset-transformer.ts
|
|
315
|
-
var backgroundImagePositionOffsetTransformer = ({
|
|
316
|
-
x = "0px",
|
|
317
|
-
y = "0px"
|
|
318
|
-
}) => `${x} ${y}`;
|
|
319
|
-
var background_image_position_offset_transformer_default = backgroundImagePositionOffsetTransformer;
|
|
320
|
-
|
|
321
|
-
// src/renderers/style-transformers/background-image-size-scale-transformer.ts
|
|
322
|
-
var backgroundImageSizeScaleTransformer = ({
|
|
323
|
-
width = "auto",
|
|
324
|
-
height = "auto"
|
|
325
|
-
}) => `${width} ${height}`;
|
|
326
|
-
var background_image_size_scale_transformer_default = backgroundImageSizeScaleTransformer;
|
|
327
|
-
|
|
328
|
-
// src/renderers/style-transformers/background-transformer.ts
|
|
329
|
-
var backgroundTransformer = (value) => {
|
|
330
|
-
const overlays = value["background-overlay"] ?? "";
|
|
331
|
-
const color = value.color ?? "";
|
|
332
|
-
return `${overlays} ${color}`.trim();
|
|
333
|
-
};
|
|
334
|
-
var background_transformer_default = backgroundTransformer;
|
|
335
|
-
|
|
336
|
-
// src/renderers/style-transformers/create-combine-array-transformer.ts
|
|
337
|
-
var createCombineArrayTransformer = (delimiter) => {
|
|
338
|
-
return (value) => value.filter(Boolean).join(delimiter);
|
|
339
|
-
};
|
|
340
|
-
var create_combine_array_transformer_default = createCombineArrayTransformer;
|
|
341
|
-
|
|
342
|
-
// src/renderers/style-transformers/create-corner-sizes-transformer.ts
|
|
343
|
-
var validCorners = ["top-left", "top-right", "bottom-left", "bottom-right"];
|
|
344
|
-
var createCornerSizesTransformer = (keyGenerator) => (value) => {
|
|
345
|
-
const props = Object.entries(value).reduce((acc, [corner, cornerValue]) => {
|
|
346
|
-
if (validCorners.includes(corner)) {
|
|
347
|
-
const key = keyGenerator(corner);
|
|
348
|
-
acc[key] = cornerValue;
|
|
349
|
-
}
|
|
350
|
-
return acc;
|
|
351
|
-
}, {});
|
|
352
|
-
return createMultiPropsValue(props);
|
|
353
|
-
};
|
|
354
|
-
var create_corner_sizes_transformer_default = createCornerSizesTransformer;
|
|
355
|
-
|
|
356
|
-
// src/renderers/style-transformers/create-edge-sizes-transformer.ts
|
|
357
|
-
var validEdges = ["top", "right", "bottom", "left"];
|
|
358
|
-
var createEdgeSizesTransformer = (keyGenerator) => (value) => {
|
|
359
|
-
const props = Object.entries(value).reduce((acc, [edge, edgeValue]) => {
|
|
360
|
-
if (validEdges.includes(edge)) {
|
|
361
|
-
const key = keyGenerator(edge);
|
|
362
|
-
acc[key] = edgeValue;
|
|
363
|
-
}
|
|
364
|
-
return acc;
|
|
365
|
-
}, {});
|
|
366
|
-
return createMultiPropsValue(props);
|
|
367
|
-
};
|
|
368
|
-
var create_edge_sizes_transformer_default = createEdgeSizesTransformer;
|
|
369
|
-
|
|
370
|
-
// src/renderers/style-transformers/dimensions.ts
|
|
371
|
-
var validKeys = ["top", "right", "bottom", "left"];
|
|
372
|
-
var dimensions = (value, { key }) => {
|
|
373
|
-
const parsed = Object.entries(value).reduce((acc, [dimensionKey, dimensionValue]) => {
|
|
374
|
-
if (dimensionValue && validKeys.includes(dimensionKey)) {
|
|
375
|
-
acc[`${key}-${dimensionKey}`] = dimensionValue;
|
|
376
|
-
}
|
|
377
|
-
return acc;
|
|
378
|
-
}, {});
|
|
379
|
-
return createMultiPropsValue(parsed);
|
|
380
|
-
};
|
|
381
|
-
var dimensions_default = dimensions;
|
|
382
|
-
|
|
383
|
-
// src/renderers/style-transformers/image.ts
|
|
384
|
-
var imageTransformer = (value) => {
|
|
385
|
-
const { src, size: size2 } = value;
|
|
386
|
-
if (src.url) {
|
|
387
|
-
return `url(${src.url})`;
|
|
388
|
-
}
|
|
389
|
-
const sizeUrl = src.attachment?.sizes[size2]?.url;
|
|
390
|
-
if (sizeUrl) {
|
|
391
|
-
return `url(${sizeUrl})`;
|
|
392
|
-
}
|
|
393
|
-
const attachmentUrl = src.attachment?.url;
|
|
394
|
-
if (attachmentUrl) {
|
|
395
|
-
return `url(${attachmentUrl})`;
|
|
396
|
-
}
|
|
397
|
-
return null;
|
|
398
|
-
};
|
|
399
|
-
|
|
400
|
-
// src/renderers/style-transformers/image-attachment.ts
|
|
401
|
-
import { getMediaAttachment } from "@elementor/wp-media";
|
|
402
|
-
var imageAttachmentTransformer = async (value) => {
|
|
403
|
-
const attachment = await getMediaAttachment({ id: value });
|
|
404
|
-
if (!attachment) {
|
|
405
|
-
return null;
|
|
406
|
-
}
|
|
407
|
-
return attachment;
|
|
408
|
-
};
|
|
409
|
-
|
|
410
|
-
// src/renderers/style-transformers/image-src.ts
|
|
411
|
-
var imageSrcTransformer = (value) => ({
|
|
412
|
-
attachment: value.id,
|
|
413
|
-
url: value.url
|
|
414
|
-
});
|
|
415
|
-
|
|
416
|
-
// src/renderers/style-transformers/layout-direction-transformer.ts
|
|
417
|
-
var validKeys2 = ["row", "column"];
|
|
418
|
-
var layoutDirectionTransformer = (value, { key }) => {
|
|
419
|
-
const parsed = Object.entries(value).reduce((acc, [dimensionKey, dimensionValue]) => {
|
|
420
|
-
if (dimensionValue && validKeys2.includes(dimensionKey)) {
|
|
421
|
-
acc[`${dimensionKey}-${key}`] = dimensionValue;
|
|
422
|
-
}
|
|
423
|
-
return acc;
|
|
424
|
-
}, {});
|
|
425
|
-
return createMultiPropsValue(parsed);
|
|
426
|
-
};
|
|
427
|
-
var layout_direction_transformer_default = layoutDirectionTransformer;
|
|
428
|
-
|
|
429
|
-
// src/renderers/style-transformers/primitive-transformer.ts
|
|
430
|
-
var primitiveTransformer = (value) => {
|
|
431
|
-
return value;
|
|
432
|
-
};
|
|
433
|
-
|
|
434
|
-
// src/renderers/style-transformers/shadow-transformer.ts
|
|
435
|
-
var shadowTransformer = (value) => {
|
|
436
|
-
return [value.hOffset, value.vOffset, value.blur, value.spread, value.color, value.position].filter(Boolean).join(" ");
|
|
437
|
-
};
|
|
438
|
-
var shadow_transformer_default = shadowTransformer;
|
|
439
|
-
|
|
440
|
-
// src/renderers/style-transformers/size-transformer.ts
|
|
441
|
-
var sizeTransformer = (value) => {
|
|
442
|
-
return `${value.size}${value.unit}`;
|
|
443
|
-
};
|
|
444
|
-
var size_transformer_default = sizeTransformer;
|
|
445
|
-
|
|
446
|
-
// src/renderers/style-transformers/stroke-transformer.ts
|
|
447
|
-
var strokeTransformer = (value) => {
|
|
448
|
-
return `${value.width} ${value.color}`;
|
|
449
|
-
};
|
|
450
|
-
var stroke_transformer_default = strokeTransformer;
|
|
451
|
-
|
|
452
|
-
// src/renderers/style-transformers/index.ts
|
|
453
|
-
var styleTransformers = {
|
|
454
|
-
size: size_transformer_default,
|
|
455
|
-
shadow: shadow_transformer_default,
|
|
456
|
-
stroke: stroke_transformer_default,
|
|
457
|
-
background: background_transformer_default,
|
|
458
|
-
color: primitiveTransformer,
|
|
459
|
-
number: primitiveTransformer,
|
|
460
|
-
string: primitiveTransformer,
|
|
461
|
-
url: primitiveTransformer,
|
|
462
|
-
dimensions: dimensions_default,
|
|
463
|
-
"background-color-overlay": background_color_overlay_transformer_default,
|
|
464
|
-
"background-image-overlay": background_image_overlay_transformer_default,
|
|
465
|
-
"background-image-position-offset": background_image_position_offset_transformer_default,
|
|
466
|
-
"background-image-size-scale": background_image_size_scale_transformer_default,
|
|
467
|
-
"background-overlay": create_combine_array_transformer_default(","),
|
|
468
|
-
"box-shadow": create_combine_array_transformer_default(","),
|
|
469
|
-
"border-width": create_edge_sizes_transformer_default((edgeKey) => `border-${edgeKey}-width`),
|
|
470
|
-
"border-radius": create_corner_sizes_transformer_default((cornerKey) => `border-${cornerKey}-radius`),
|
|
471
|
-
"image-attachment-id": imageAttachmentTransformer,
|
|
472
|
-
"image-src": imageSrcTransformer,
|
|
473
|
-
image: imageTransformer,
|
|
474
|
-
"layout-direction": layout_direction_transformer_default
|
|
475
|
-
};
|
|
476
|
-
|
|
477
441
|
// src/sync/enqueue-font.ts
|
|
478
442
|
var enqueueFont = (fontFamily, context = "preview") => {
|
|
479
443
|
const extendedWindow = window;
|
|
@@ -490,14 +454,17 @@ function getCanvasIframeBody() {
|
|
|
490
454
|
var WRAPPER_DATA_ATTR = "data-styles-container";
|
|
491
455
|
var SELECTOR_PREFIX = ".elementor";
|
|
492
456
|
function initStylesRenderer() {
|
|
493
|
-
let abortController = null;
|
|
494
|
-
const resolve = createPropsResolver(styleTransformers, { onPropResolve: enqueueUsedFonts });
|
|
495
457
|
listenTo(v1ReadyEvent(), () => {
|
|
458
|
+
let abortController = null;
|
|
459
|
+
const resolve = createPropsResolver({
|
|
460
|
+
transformers: styleTransformersRegistry.all(),
|
|
461
|
+
schema: getStylesSchema(),
|
|
462
|
+
onPropResolve: enqueueUsedFonts
|
|
463
|
+
});
|
|
496
464
|
stylesRepository.subscribe(async () => {
|
|
497
465
|
const styleContainer = getStylesContainer();
|
|
498
466
|
const styles = stylesRepository.all().reverse();
|
|
499
467
|
const breakpoints = getBreakpointsMap();
|
|
500
|
-
const schema = getStylesSchema();
|
|
501
468
|
if (abortController) {
|
|
502
469
|
abortController.abort();
|
|
503
470
|
}
|
|
@@ -507,8 +474,7 @@ function initStylesRenderer() {
|
|
|
507
474
|
resolve,
|
|
508
475
|
breakpoints,
|
|
509
476
|
selectorPrefix: SELECTOR_PREFIX,
|
|
510
|
-
signal: abortController.signal
|
|
511
|
-
schema
|
|
477
|
+
signal: abortController.signal
|
|
512
478
|
});
|
|
513
479
|
});
|
|
514
480
|
});
|
|
@@ -538,6 +504,7 @@ function enqueueUsedFonts({ key, value }) {
|
|
|
538
504
|
|
|
539
505
|
// src/init.tsx
|
|
540
506
|
function init() {
|
|
507
|
+
initStyleTransformers();
|
|
541
508
|
initStylesRenderer();
|
|
542
509
|
injectIntoTop({
|
|
543
510
|
id: "elements-overlays",
|
|
@@ -547,4 +514,7 @@ function init() {
|
|
|
547
514
|
|
|
548
515
|
// src/index.ts
|
|
549
516
|
init();
|
|
517
|
+
export {
|
|
518
|
+
styleTransformersRegistry
|
|
519
|
+
};
|
|
550
520
|
//# sourceMappingURL=index.mjs.map
|