PluginProbe
Elementor Website Builder – more than just a page builder / 3.28.0-dev2
Elementor Website Builder – more than just a page builder v3.28.0-dev2
4.3.2 4.3.1 4.3.0 4.3.0-beta3 4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 4.1.0-beta2 4.1.0-dev2 All 455 releases
← All changes | assets/js/packages/editor-props/editor-props.js +2 -2648 4.3.2 → 3.28.0-dev2 View file →
@@ -1,2648 +1,2 @@
1 -(function(_elementor_schema) {
2 -
3 -//#region \0rolldown/runtime.js
4 - var __defProp = Object.defineProperty;
5 - var __name = (target, value) => __defProp(target, "name", {
6 - value,
7 - configurable: true
8 - });
9 - var __commonJSMin = (cb, mod) => () => (mod || (cb((mod = { exports: {} }).exports, mod), cb = null), mod.exports);
10 - var __exportAll = (all, no_symbols) => {
11 - let target = {};
12 - for (var name in all) {
13 - __defProp(target, name, {
14 - get: all[name],
15 - enumerable: true
16 - });
17 - }
18 - if (!no_symbols) {
19 - __defProp(target, Symbol.toStringTag, { value: "Module" });
20 - }
21 - return target;
22 - };
23 -
24 -//#endregion
25 -
26 -//#region packages/packages/libs/editor-props/src/utils/create-prop-utils.ts
27 - var SCHEMA_CACHE = /* @__PURE__ */ new Map();
28 - function getPropSchemaFromCache(key) {
29 - return SCHEMA_CACHE.get(key);
30 - }
31 - function createPropUtils(key, valueSchema) {
32 - const schema = _elementor_schema.z.strictObject({
33 - $$type: _elementor_schema.z.literal(key),
34 - value: valueSchema,
35 - disabled: _elementor_schema.z.boolean().optional()
36 - });
37 - function isValid(prop) {
38 - return schema.safeParse(prop).success;
39 - }
40 - function create(value, createOptions) {
41 - const fn = typeof value === "function" ? value : () => value;
42 - const { base, disabled } = createOptions || {};
43 - if (!base) return {
44 - $$type: key,
45 - value: fn(),
46 - ...disabled && { disabled }
47 - };
48 - if (!isValid(base)) throw new Error(`Cannot create prop based on invalid value: ${JSON.stringify(base)}`);
49 - return {
50 - $$type: key,
51 - value: fn(base.value),
52 - ...disabled && { disabled }
53 - };
54 - }
55 - function extract(prop) {
56 - if (!isValid(prop)) return null;
57 - return prop.value;
58 - }
59 - const propUtil = {
60 - extract,
61 - isValid,
62 - create,
63 - schema,
64 - key
65 - };
66 - SCHEMA_CACHE.set(key, propUtil);
67 - return propUtil;
68 - }
69 - function createArrayPropUtils(key, valueSchema, overrideKey) {
70 - return createPropUtils(overrideKey || `${key}-array`, _elementor_schema.z.array(valueSchema));
71 - }
72 -
73 -//#endregion
74 -//#region packages/packages/libs/editor-props/src/prop-types/utils.ts
75 - var unknownChildrenSchema = _elementor_schema.z.any().nullable();
76 -
77 -//#endregion
78 -//#region packages/packages/libs/editor-props/src/prop-types/shadow.ts
79 - var shadowPropTypeUtil = createPropUtils("shadow", _elementor_schema.z.strictObject({
80 - position: unknownChildrenSchema,
81 - hOffset: unknownChildrenSchema,
82 - vOffset: unknownChildrenSchema,
83 - blur: unknownChildrenSchema,
84 - spread: unknownChildrenSchema,
85 - color: unknownChildrenSchema
86 - }));
87 -
88 -//#endregion
89 -//#region packages/packages/libs/editor-props/src/prop-types/box-shadow.ts
90 - var boxShadowPropTypeUtil = createPropUtils("box-shadow", _elementor_schema.z.array(shadowPropTypeUtil.schema));
91 -
92 -//#endregion
93 -//#region packages/packages/libs/editor-props/src/prop-types/border-radius.ts
94 - var borderRadiusPropTypeUtil = createPropUtils("border-radius-v2", _elementor_schema.z.strictObject({
95 - "start-start": unknownChildrenSchema,
96 - "start-end": unknownChildrenSchema,
97 - "end-start": unknownChildrenSchema,
98 - "end-end": unknownChildrenSchema
99 - }));
100 -
101 -//#endregion
102 -//#region packages/packages/libs/editor-props/src/prop-types/border-width.ts
103 - var borderWidthPropTypeUtil = createPropUtils("border-width-v2", _elementor_schema.z.strictObject({
104 - "block-start": unknownChildrenSchema,
105 - "block-end": unknownChildrenSchema,
106 - "inline-start": unknownChildrenSchema,
107 - "inline-end": unknownChildrenSchema
108 - }));
109 -
110 -//#endregion
111 -//#region packages/packages/libs/editor-props/src/prop-types/classes.ts
112 - var CLASSES_PROP_KEY = "classes";
113 - var classesPropTypeUtil = createPropUtils(CLASSES_PROP_KEY, _elementor_schema.z.array(_elementor_schema.z.string().regex(/^[a-z][a-z-_0-9]*$/i)));
114 -
115 -//#endregion
116 -//#region packages/packages/libs/editor-props/src/prop-types/color.ts
117 - var colorPropTypeUtil = createPropUtils("color", _elementor_schema.z.string());
118 -
119 -//#endregion
120 -//#region packages/packages/libs/editor-props/src/prop-types/flex.ts
121 - var flexPropTypeUtil = createPropUtils("flex", _elementor_schema.z.strictObject({
122 - flexGrow: unknownChildrenSchema,
123 - flexShrink: unknownChildrenSchema,
124 - flexBasis: unknownChildrenSchema
125 - }));
126 -
127 -//#endregion
128 -//#region packages/packages/libs/editor-props/src/prop-types/font-family.ts
129 - var baseUtil = createPropUtils("font-family", _elementor_schema.z.string().nullable());
130 - var fontFamilyPropTypeUtil = Object.assign(baseUtil, { getEnqueueFontFamily: (value) => {
131 - const trimmed = value.trim();
132 - if (trimmed.startsWith("\"") && trimmed.endsWith("\"") || trimmed.startsWith("'") && trimmed.endsWith("'")) return trimmed.slice(1, -1).trim();
133 - return trimmed;
134 - } });
135 -
136 -//#endregion
137 -//#region packages/packages/libs/editor-props/src/prop-types/image.ts
138 - var imagePropTypeUtil = createPropUtils("image", _elementor_schema.z.strictObject({
139 - src: unknownChildrenSchema,
140 - size: unknownChildrenSchema
141 - }));
142 -
143 -//#endregion
144 -//#region packages/packages/libs/editor-props/src/prop-types/image-attachment-id.ts
145 - var imageAttachmentIdPropType = createPropUtils("image-attachment-id", _elementor_schema.z.number());
146 -
147 -//#endregion
148 -//#region packages/packages/libs/editor-props/src/prop-types/image-src.ts
149 - var imageSrcPropTypeUtil = createPropUtils("image-src", _elementor_schema.z.strictObject({
150 - id: unknownChildrenSchema,
151 - url: _elementor_schema.z.null(),
152 - alt: unknownChildrenSchema.optional().default(null)
153 - }).or(_elementor_schema.z.strictObject({
154 - id: unknownChildrenSchema.optional().default(null),
155 - url: unknownChildrenSchema,
156 - alt: unknownChildrenSchema.optional().default(null)
157 - })));
158 -
159 -//#endregion
160 -//#region packages/packages/libs/editor-props/src/prop-types/icon.ts
161 - var iconPropTypeUtil = createPropUtils("icon", _elementor_schema.z.strictObject({
162 - value: unknownChildrenSchema,
163 - library: unknownChildrenSchema
164 - }));
165 -
166 -//#endregion
167 -//#region packages/packages/libs/editor-props/src/prop-types/svg-src.ts
168 - var svgSrcValueSchema = _elementor_schema.z.strictObject({
169 - id: unknownChildrenSchema,
170 - url: _elementor_schema.z.null()
171 - }).or(_elementor_schema.z.strictObject({
172 - id: _elementor_schema.z.null(),
173 - url: unknownChildrenSchema
174 - })).or(_elementor_schema.z.strictObject({
175 - id: unknownChildrenSchema,
176 - url: unknownChildrenSchema
177 - }));
178 - var svgSrcPropTypeUtil = createPropUtils("svg-src", svgSrcValueSchema);
179 -
180 -//#endregion
181 -//#region packages/packages/libs/editor-props/src/prop-types/video-attachment-id.ts
182 - var videoAttachmentIdPropType = createPropUtils("video-attachment-id", _elementor_schema.z.number());
183 -
184 -//#endregion
185 -//#region packages/packages/libs/editor-props/src/prop-types/video-src.ts
186 - var videoSrcPropTypeUtil = createPropUtils("video-src", _elementor_schema.z.strictObject({
187 - id: unknownChildrenSchema,
188 - url: _elementor_schema.z.literal(null).optional()
189 - }).or(_elementor_schema.z.strictObject({
190 - id: _elementor_schema.z.literal(null).optional(),
191 - url: unknownChildrenSchema
192 - })));
193 -
194 -//#endregion
195 -//#region packages/packages/libs/editor-props/src/prop-types/dimensions.ts
196 - var dimensionsPropTypeUtil = createPropUtils("dimensions", _elementor_schema.z.strictObject({
197 - "block-start": unknownChildrenSchema,
198 - "block-end": unknownChildrenSchema,
199 - "inline-start": unknownChildrenSchema,
200 - "inline-end": unknownChildrenSchema
201 - }));
202 -
203 -//#endregion
204 -//#region packages/packages/libs/editor-props/src/prop-types/number.ts
205 - var numberPropTypeUtil = createPropUtils("number", _elementor_schema.z.number().nullable());
206 -
207 -//#endregion
208 -//#region packages/packages/libs/editor-props/src/prop-types/size.ts
209 - var sizeNumberOrEmpty = _elementor_schema.z.union([_elementor_schema.z.number(), _elementor_schema.z.literal("")]);
210 - var sizePropTypeUtil = createPropUtils("size", _elementor_schema.z.strictObject({
211 - unit: _elementor_schema.z.enum([
212 - "px",
213 - "em",
214 - "rem",
215 - "%",
216 - "vw",
217 - "vh",
218 - "ch",
219 - "fr"
220 - ]),
221 - size: sizeNumberOrEmpty
222 - }).or(_elementor_schema.z.strictObject({
223 - unit: _elementor_schema.z.enum([
224 - "deg",
225 - "rad",
226 - "grad",
227 - "turn"
228 - ]),
229 - size: sizeNumberOrEmpty
230 - })).or(_elementor_schema.z.strictObject({
231 - unit: _elementor_schema.z.enum(["s", "ms"]),
232 - size: sizeNumberOrEmpty
233 - })).or(_elementor_schema.z.strictObject({
234 - unit: _elementor_schema.z.literal("auto"),
235 - size: _elementor_schema.z.literal("")
236 - })).or(_elementor_schema.z.strictObject({
237 - unit: _elementor_schema.z.literal("custom"),
238 - size: _elementor_schema.z.string()
239 - })));
240 -
241 -//#endregion
242 -//#region packages/packages/libs/editor-props/src/prop-types/grid-track-size.ts
243 - var gridTrackSizePropTypeUtil = createPropUtils("grid-track-size", _elementor_schema.z.strictObject({
244 - unit: _elementor_schema.z.literal("fr"),
245 - size: _elementor_schema.z.union([_elementor_schema.z.number(), _elementor_schema.z.literal("")])
246 - }).or(_elementor_schema.z.strictObject({
247 - unit: _elementor_schema.z.literal("custom"),
248 - size: _elementor_schema.z.string()
249 - })));
250 -
251 -//#endregion
252 -//#region packages/packages/libs/editor-props/src/prop-types/span.ts
253 - var spanPropTypeUtil = createPropUtils("span", _elementor_schema.z.string().nullable());
254 -
255 -//#endregion
256 -//#region packages/packages/libs/editor-props/src/prop-types/string.ts
257 - var stringPropTypeUtil = createPropUtils("string", _elementor_schema.z.string().nullable());
258 -
259 -//#endregion
260 -//#region packages/packages/libs/editor-props/src/prop-types/string-array.ts
261 - var stringArrayPropTypeUtil = createArrayPropUtils(stringPropTypeUtil.key, stringPropTypeUtil.schema);
262 -
263 -//#endregion
264 -//#region packages/packages/libs/editor-props/src/prop-types/stroke.ts
265 - var strokePropTypeUtil = createPropUtils("stroke", _elementor_schema.z.strictObject({
266 - color: unknownChildrenSchema,
267 - width: unknownChildrenSchema
268 - }));
269 -
270 -//#endregion
271 -//#region packages/packages/libs/editor-props/src/prop-types/url.ts
272 - var urlPropTypeUtil = createPropUtils("url", _elementor_schema.z.string().nullable());
273 -
274 -//#endregion
275 -//#region packages/packages/libs/editor-props/src/prop-types/layout-direction.ts
276 - var layoutDirectionPropTypeUtil = createPropUtils("layout-direction", _elementor_schema.z.object({
277 - row: _elementor_schema.z.any(),
278 - column: _elementor_schema.z.any()
279 - }));
280 -
281 -//#endregion
282 -//#region packages/packages/libs/editor-props/src/prop-types/link.ts
283 - var linkPropTypeUtil = createPropUtils("link", _elementor_schema.z.strictObject({
284 - destination: unknownChildrenSchema,
285 - isTargetBlank: unknownChildrenSchema,
286 - tag: unknownChildrenSchema
287 - }));
288 -
289 -//#endregion
290 -//#region packages/packages/libs/editor-props/src/prop-types/email.ts
291 - var emailPropTypeUtil = createPropUtils("email", _elementor_schema.z.strictObject({
292 - to: unknownChildrenSchema,
293 - subject: unknownChildrenSchema,
294 - message: unknownChildrenSchema,
295 - from: unknownChildrenSchema,
296 - "meta-data": unknownChildrenSchema,
297 - "send-as": unknownChildrenSchema,
298 - "from-name": unknownChildrenSchema,
299 - "reply-to": unknownChildrenSchema,
300 - cc: unknownChildrenSchema,
301 - bcc: unknownChildrenSchema
302 - }));
303 -
304 -//#endregion
305 -//#region packages/packages/libs/editor-props/src/prop-types/emails.ts
306 - var emailsPropTypeUtil = createPropUtils("emails", _elementor_schema.z.strictObject({
307 - to: unknownChildrenSchema,
308 - subject: unknownChildrenSchema,
309 - message: unknownChildrenSchema,
310 - from: unknownChildrenSchema,
311 - "meta-data": unknownChildrenSchema,
312 - "send-as": unknownChildrenSchema,
313 - "from-name": unknownChildrenSchema,
314 - "reply-to": unknownChildrenSchema,
315 - cc: unknownChildrenSchema,
316 - bcc: unknownChildrenSchema
317 - }));
318 -
319 -//#endregion
320 -//#region packages/packages/libs/editor-props/src/prop-types/key-value.ts
321 - var keyValuePropTypeUtil = createPropUtils("key-value", _elementor_schema.z.strictObject({
322 - key: unknownChildrenSchema,
323 - value: unknownChildrenSchema
324 - }));
325 -
326 -//#endregion
327 -//#region packages/packages/libs/editor-props/src/prop-types/selection-size.ts
328 - var selectionSizePropTypeUtil = createPropUtils("selection-size", _elementor_schema.z.strictObject({
329 - selection: _elementor_schema.z.union([keyValuePropTypeUtil.schema, stringPropTypeUtil.schema]),
330 - size: unknownChildrenSchema
331 - }));
332 -
333 -//#endregion
334 -//#region packages/packages/libs/editor-props/src/prop-types/background-prop-types/background.ts
335 - var backgroundPropTypeUtil = createPropUtils("background", _elementor_schema.z.strictObject({
336 - color: unknownChildrenSchema,
337 - clip: unknownChildrenSchema,
338 - "background-overlay": unknownChildrenSchema
339 - }));
340 -
341 -//#endregion
342 -//#region packages/packages/libs/editor-props/src/prop-types/background-prop-types/background-color-overlay.ts
343 - var backgroundColorOverlayPropTypeUtil = createPropUtils("background-color-overlay", unknownChildrenSchema);
344 -
345 -//#endregion
346 -//#region packages/packages/libs/editor-props/src/prop-types/background-prop-types/background-gradient-overlay.ts
347 - var backgroundGradientOverlayPropTypeUtil = createPropUtils("background-gradient-overlay", unknownChildrenSchema);
348 -
349 -//#endregion
350 -//#region packages/packages/libs/editor-props/src/prop-types/background-prop-types/background-image-overlay.ts
351 - var backgroundImageOverlayPropTypeUtil = createPropUtils("background-image-overlay", unknownChildrenSchema);
352 -
353 -//#endregion
354 -//#region packages/packages/libs/editor-props/src/prop-types/background-prop-types/background-overlay.ts
355 - var backgroundOverlayItem = backgroundColorOverlayPropTypeUtil.schema.or(backgroundGradientOverlayPropTypeUtil.schema).or(backgroundImageOverlayPropTypeUtil.schema);
356 - var backgroundOverlayPropTypeUtil = createPropUtils("background-overlay", _elementor_schema.z.array(backgroundOverlayItem));
357 -
358 -//#endregion
359 -//#region packages/packages/libs/editor-props/src/prop-types/background-prop-types/background-image-position-offset.ts
360 - var backgroundImagePositionOffsetPropTypeUtil = createPropUtils("background-image-position-offset", unknownChildrenSchema);
361 -
362 -//#endregion
363 -//#region packages/packages/libs/editor-props/src/prop-types/background-prop-types/background-image-size-scale.ts
364 - var backgroundImageSizeScalePropTypeUtil = createPropUtils("background-image-size-scale", unknownChildrenSchema);
365 -
366 -//#endregion
367 -//#region packages/packages/libs/editor-props/src/prop-types/boolean.ts
368 - var booleanPropTypeUtil = createPropUtils("boolean", _elementor_schema.z.boolean().nullable());
369 -
370 -//#endregion
371 -//#region packages/packages/libs/editor-props/src/prop-types/color-stop.ts
372 - var colorStopPropTypeUtil = createPropUtils("color-stop", _elementor_schema.z.strictObject({
373 - color: unknownChildrenSchema,
374 - offset: unknownChildrenSchema
375 - }));
376 -
377 -//#endregion
378 -//#region packages/packages/libs/editor-props/src/prop-types/gradient-color-stop.ts
379 - var gradientColorStopPropTypeUtil = createPropUtils("gradient-color-stop", _elementor_schema.z.array(colorStopPropTypeUtil.schema));
380 -
381 -//#endregion
382 -//#region packages/packages/libs/editor-props/src/prop-types/number-range.ts
383 - var numberRangePropTypeUtil = createPropUtils("number-range", _elementor_schema.z.strictObject({
384 - min: unknownChildrenSchema,
385 - max: unknownChildrenSchema
386 - }));
387 -
388 -//#endregion
389 -//#region packages/packages/libs/editor-props/src/prop-types/date-time.ts
390 - var DateTimePropTypeUtil = createPropUtils("date-time", _elementor_schema.z.strictObject({
391 - date: unknownChildrenSchema,
392 - time: unknownChildrenSchema
393 - }));
394 -
395 -//#endregion
396 -//#region packages/packages/libs/editor-props/src/prop-types/position.ts
397 - var positionPropTypeUtil = createPropUtils("object-position", _elementor_schema.z.strictObject({
398 - x: unknownChildrenSchema,
399 - y: unknownChildrenSchema
400 - }));
401 -
402 -//#endregion
403 -//#region packages/packages/libs/editor-props/src/prop-types/query.ts
404 - var queryPropTypeUtil = createPropUtils("query", _elementor_schema.z.strictObject({
405 - id: unknownChildrenSchema,
406 - label: unknownChildrenSchema
407 - }));
408 -
409 -//#endregion
410 -//#region packages/packages/libs/editor-props/src/prop-types/query-filter.ts
411 - var queryFilterPropTypeUtil = createPropUtils("query-filter", _elementor_schema.z.strictObject({
412 - key: unknownChildrenSchema,
413 - values: unknownChildrenSchema,
414 - taxonomies: unknownChildrenSchema
415 - }));
416 - var queryFilterArrayPropTypeUtil = createArrayPropUtils(queryFilterPropTypeUtil.key, queryFilterPropTypeUtil.schema);
417 -
418 -//#endregion
419 -//#region packages/packages/libs/editor-props/src/prop-types/html.ts
420 - var htmlPropTypeUtil = createPropUtils("html", _elementor_schema.z.string().nullable());
421 -
422 -//#endregion
423 -//#region packages/packages/libs/editor-props/src/prop-types/html-v2.ts
424 - var childElementSchema = _elementor_schema.z.lazy(() => _elementor_schema.z.object({
425 - id: _elementor_schema.z.string(),
426 - type: _elementor_schema.z.string(),
427 - content: _elementor_schema.z.string().optional(),
428 - children: _elementor_schema.z.array(childElementSchema).optional()
429 - }));
430 - var htmlV2ValueSchema = _elementor_schema.z.object({
431 - content: _elementor_schema.z.string().nullable(),
432 - children: _elementor_schema.z.array(childElementSchema)
433 - });
434 - var htmlV2PropTypeUtil = createPropUtils("html-v2", htmlV2ValueSchema);
435 -
436 -//#endregion
437 -//#region packages/packages/libs/editor-props/src/prop-types/html-v3.ts
438 - var htmlV3ValueSchema = _elementor_schema.z.object({
439 - content: stringPropTypeUtil.schema.nullable(),
440 - children: _elementor_schema.z.array(_elementor_schema.z.unknown())
441 - });
442 - var htmlV3PropTypeUtil = createPropUtils("html-v3", htmlV3ValueSchema);
443 -
444 -//#endregion
445 -//#region packages/packages/libs/editor-props/src/prop-types/escaped-html.ts
446 - var escapedHtmlPropTypeUtil = createPropUtils("escaped-html", _elementor_schema.z.string().nullable());
447 -
448 -//#endregion
449 -//#region packages/packages/libs/editor-props/src/prop-types/filter-prop-types/drop-shadow-filter.ts
450 - var dropShadowFilterPropTypeUtil = createPropUtils("drop-shadow", _elementor_schema.z.object({
451 - xAxis: unknownChildrenSchema,
452 - yAxis: unknownChildrenSchema,
453 - blur: unknownChildrenSchema,
454 - color: unknownChildrenSchema
455 - }));
456 -
457 -//#endregion
458 -//#region packages/packages/libs/editor-props/src/prop-types/filter-prop-types/filter-functions/blur-filter.ts
459 - var blurFilterPropTypeUtil = createPropUtils("blur", _elementor_schema.z.strictObject({ size: unknownChildrenSchema }));
460 -
461 -//#endregion
462 -//#region packages/packages/libs/editor-props/src/prop-types/filter-prop-types/filter-functions/color-tone-filter.ts
463 - var colorToneFilterPropTypeUtil = createPropUtils("color-tone", _elementor_schema.z.strictObject({ size: unknownChildrenSchema }));
464 -
465 -//#endregion
466 -//#region packages/packages/libs/editor-props/src/prop-types/filter-prop-types/filter-functions/hue-rotate-filter.ts
467 - var hueRotateFilterPropTypeUtil = createPropUtils("hue-rotate", _elementor_schema.z.strictObject({ size: unknownChildrenSchema }));
468 -
469 -//#endregion
470 -//#region packages/packages/libs/editor-props/src/prop-types/filter-prop-types/filter-functions/intensity-filter.ts
471 - var intensityFilterPropTypeUtil = createPropUtils("intensity", _elementor_schema.z.strictObject({ size: unknownChildrenSchema }));
472 -
473 -//#endregion
474 -//#region packages/packages/libs/editor-props/src/prop-types/filter-prop-types/filter.ts
475 - var cssFilterFunctionPropUtil = createPropUtils("css-filter-func", _elementor_schema.z.object({
476 - func: stringPropTypeUtil.schema,
477 - args: _elementor_schema.z.union([
478 - blurFilterPropTypeUtil.schema,
479 - intensityFilterPropTypeUtil.schema,
480 - colorToneFilterPropTypeUtil.schema,
481 - hueRotateFilterPropTypeUtil.schema,
482 - dropShadowFilterPropTypeUtil.schema
483 - ])
484 - }));
485 - var filterPropTypeUtil = createPropUtils("filter", _elementor_schema.z.array(cssFilterFunctionPropUtil.schema));
486 -
487 -//#endregion
488 -//#region packages/packages/libs/editor-props/src/prop-types/transform-prop-types/transform.ts
489 - var transformPropTypeUtil = createPropUtils("transform", _elementor_schema.z.strictObject({
490 - "transform-functions": unknownChildrenSchema,
491 - "transform-origin": unknownChildrenSchema,
492 - perspective: unknownChildrenSchema,
493 - "perspective-origin": unknownChildrenSchema
494 - }));
495 -
496 -//#endregion
497 -//#region packages/packages/libs/editor-props/src/prop-types/transform-prop-types/types.ts
498 - var TransformFunctionKeys = {
499 - move: "transform-move",
500 - scale: "transform-scale",
501 - rotate: "transform-rotate",
502 - skew: "transform-skew"
503 - };
504 -
505 -//#endregion
506 -//#region packages/packages/libs/editor-props/src/prop-types/transform-prop-types/transform-functions/move-transform.ts
507 - var moveTransformPropTypeUtil = createPropUtils(TransformFunctionKeys.move, _elementor_schema.z.strictObject({
508 - x: unknownChildrenSchema,
509 - y: unknownChildrenSchema,
510 - z: unknownChildrenSchema
511 - }));
512 -
513 -//#endregion
514 -//#region packages/packages/libs/editor-props/src/prop-types/transform-prop-types/transform-functions/rotate-transform.ts
515 - var rotateTransformPropTypeUtil = createPropUtils(TransformFunctionKeys.rotate, _elementor_schema.z.strictObject({
516 - x: unknownChildrenSchema,
517 - y: unknownChildrenSchema,
518 - z: unknownChildrenSchema
519 - }));
520 -
521 -//#endregion
522 -//#region packages/packages/libs/editor-props/src/prop-types/transform-prop-types/transform-functions/scale-transform.ts
523 - var scaleTransformPropTypeUtil = createPropUtils(TransformFunctionKeys.scale, _elementor_schema.z.strictObject({
524 - x: numberPropTypeUtil.schema.nullable(),
525 - y: numberPropTypeUtil.schema.nullable(),
526 - z: numberPropTypeUtil.schema.nullable()
527 - }));
528 -
529 -//#endregion
530 -//#region packages/packages/libs/editor-props/src/prop-types/transform-prop-types/transform-functions/skew-transform.ts
531 - var skewTransformPropTypeUtil = createPropUtils(TransformFunctionKeys.skew, _elementor_schema.z.strictObject({
532 - x: unknownChildrenSchema,
533 - y: unknownChildrenSchema
534 - }));
535 -
536 -//#endregion
537 -//#region packages/packages/libs/editor-props/src/prop-types/transform-prop-types/transform-functions.ts
538 - var filterTypes = moveTransformPropTypeUtil.schema.or(scaleTransformPropTypeUtil.schema).or(rotateTransformPropTypeUtil.schema).or(skewTransformPropTypeUtil.schema);
539 - var transformFunctionsPropTypeUtil = createPropUtils("transform-functions", _elementor_schema.z.array(filterTypes));
540 -
541 -//#endregion
542 -//#region packages/packages/libs/editor-props/src/prop-types/transform-prop-types/transform-origin.ts
543 - var transformOriginPropTypeUtil = createPropUtils("transform-origin", _elementor_schema.z.strictObject({
544 - x: unknownChildrenSchema,
545 - y: unknownChildrenSchema,
546 - z: unknownChildrenSchema
547 - }));
548 -
549 -//#endregion
550 -//#region packages/packages/libs/editor-props/src/prop-types/transform-prop-types/perspective-origin.ts
551 - var perspectiveOriginPropTypeUtil = createPropUtils("perspective-origin", _elementor_schema.z.strictObject({
552 - x: unknownChildrenSchema,
553 - y: unknownChildrenSchema
554 - }));
555 -
556 -//#endregion
557 -//#region packages/packages/libs/editor-props/src/prop-types/filter-prop-types/backdrop-filter.ts
558 - var backdropFilterPropTypeUtil = createPropUtils("backdrop-filter", _elementor_schema.z.array(cssFilterFunctionPropUtil.schema));
559 -
560 -//#endregion
561 -//#region packages/packages/libs/editor-props/src/prop-types/date-range.ts
562 - var dateRangePropTypeUtil = createPropUtils("date-range", _elementor_schema.z.strictObject({
563 - min: unknownChildrenSchema,
564 - max: unknownChildrenSchema
565 - }));
566 -
567 -//#endregion
568 -//#region packages/packages/libs/editor-props/src/prop-types/date-string.ts
569 - var dateStringPropTypeUtil = createPropUtils("date-string", _elementor_schema.z.string());
570 -
571 -//#endregion
572 -//#region packages/packages/libs/editor-props/src/prop-types/time-range.ts
573 - var timeRangePropTypeUtil = createPropUtils("time-range", _elementor_schema.z.strictObject({
574 - min: unknownChildrenSchema,
575 - max: unknownChildrenSchema
576 - }));
577 -
578 -//#endregion
579 -//#region packages/packages/libs/editor-props/src/prop-types/time-string.ts
580 - var timeStringPropTypeUtil = createPropUtils("time-string", _elementor_schema.z.string());
581 -
582 -//#endregion
583 -//#region packages/packages/libs/editor-props/src/utils/adjust-llm-prop-value-schema.ts
584 - var ensureNotNull = (v, fallback) => v === null ? fallback : v;
585 - var defaultOptions = { transformers: {} };
586 - var adjustLlmPropValueSchema = (value, { transformers = {}, forceKey = void 0 } = defaultOptions) => {
587 - const clone = structuredClone(value);
588 - if (typeof clone !== "object" || clone === null) return null;
589 - if (Array.isArray(clone)) return clone.map((item) => adjustLlmPropValueSchema(item, {
590 - forceKey,
591 - transformers
592 - }));
593 - const transformablePropValue = clone;
594 - if ("$intention" in transformablePropValue) delete transformablePropValue.$intention;
595 - if (forceKey) transformablePropValue.$$type = forceKey;
596 - switch (transformablePropValue.$$type) {
597 - case "size": {
598 - const { value: rawSizePropValue } = transformablePropValue;
599 - return {
600 - $$type: "size",
601 - value: {
602 - unit: typeof rawSizePropValue.unit === "string" ? rawSizePropValue.unit : ensureNotNull(stringPropTypeUtil.extract(rawSizePropValue.unit), "px"),
603 - size: typeof rawSizePropValue.size === "string" || typeof rawSizePropValue.size === "number" ? rawSizePropValue.size : ensureNotNull(stringPropTypeUtil.extract(rawSizePropValue.size), numberPropTypeUtil.extract(rawSizePropValue.size))
604 - }
605 - };
606 - }
607 - case "html-v3": {
608 - const { value: rawHtmlV3PropValue } = transformablePropValue;
609 - return {
610 - $$type: "html-v3",
611 - value: {
612 - ...rawHtmlV3PropValue,
613 - children: Array.isArray(rawHtmlV3PropValue.children) ? rawHtmlV3PropValue.children : []
614 - }
615 - };
616 - }
617 - default:
618 - const transformer = transformers?.[transformablePropValue.$$type];
619 - if (transformer) return transformer(transformablePropValue.value);
620 - }
621 - if (typeof transformablePropValue.value === "object") if (Array.isArray(transformablePropValue.value)) transformablePropValue.value = adjustLlmPropValueSchema(transformablePropValue.value, { transformers });
622 - else {
623 - const { value: objectValue } = transformablePropValue;
624 - const clonedObject = clone;
625 - clonedObject.value = {};
626 - Object.entries(objectValue).forEach(([key, childProp]) => {
627 - clonedObject.value[key] = adjustLlmPropValueSchema(childProp, { transformers });
628 - });
629 - }
630 - return clone;
631 - };
632 -
633 -//#endregion
634 -//#region packages/packages/libs/editor-props/src/utils/llm-schema-to-props.ts
635 - function jsonSchemaToPropType(schema, key = schema.key) {
636 - const meta = {};
637 - if (schema.description) meta.description = schema.description;
638 - if (schema.anyOf && Array.isArray(schema.anyOf)) return convertJsonSchemaToUnionPropType(schema, meta);
639 - if (schema.type === "object" && schema.properties) return convertJsonSchemaToObjectPropType(schema, meta, key);
640 - if (schema.type === "array" && schema.items) return convertJsonSchemaToArrayPropType(schema, meta, key);
641 - return convertJsonSchemaToPlainPropType(schema, meta, key);
642 - }
643 - function convertJsonSchemaToPlainPropType(schema, meta, key = schema.key) {
644 - const settings = {};
645 - let propKey = key || "string";
646 - if (schema.type === "number") propKey = "number";
647 - else if (schema.type === "boolean") propKey = "boolean";
648 - else if (schema.type === "string") propKey = "string";
649 - if (Array.isArray(schema.enum)) settings.enum = schema.enum;
650 - return {
651 - kind: "plain",
652 - key: propKey,
653 - settings,
654 - meta
655 - };
656 - }
657 - function convertJsonSchemaToUnionPropType(schema, meta) {
658 - const propTypes = {};
659 - if (!schema.anyOf || !Array.isArray(schema.anyOf)) throw new Error("Invalid anyOf schema");
660 - for (const variantSchema of schema.anyOf) if (variantSchema.type === "object" && variantSchema.properties && variantSchema.properties.$$type && variantSchema.properties.value) {
661 - const typeProperty = variantSchema.properties.$$type;
662 - let typeKey;
663 - if (typeProperty.enum && Array.isArray(typeProperty.enum) && typeProperty.enum.length > 0) typeKey = typeProperty.enum[0];
664 - else continue;
665 - propTypes[typeKey] = convertJsonSchemaToPropType(variantSchema.properties.value);
666 - }
667 - return {
668 - kind: "union",
669 - prop_types: propTypes,
670 - settings: {},
671 - meta
672 - };
673 - }
674 - function convertJsonSchemaToObjectPropType(schema, meta, key = schema.key) {
675 - const shape = {};
676 - if (!schema.properties) return {
677 - kind: "object",
678 - key,
679 - shape: {},
680 - settings: {},
681 - meta
682 - };
683 - const requiredFields = Array.isArray(schema.required) ? schema.required : [];
684 - for (const [propKey, propSchema] of Object.entries(schema.properties)) {
685 - const subPropType = convertJsonSchemaToPropType(propSchema, key);
686 - if (requiredFields.includes(propKey)) subPropType.settings = {
687 - ...subPropType.settings,
688 - required: true
689 - };
690 - shape[propKey] = subPropType;
691 - }
692 - return {
693 - kind: "object",
694 - key: key || "object",
695 - shape,
696 - settings: {},
697 - meta
698 - };
699 - }
700 - function convertJsonSchemaToArrayPropType(schema, meta, key = schema.key) {
701 - if (!schema.items) throw new Error("Array schema must have items property");
702 - const itemPropType = convertJsonSchemaToPropType(schema.items);
703 - return {
704 - kind: "array",
705 - key: key || "array",
706 - item_prop_type: itemPropType,
707 - settings: {},
708 - meta
709 - };
710 - }
711 - function convertJsonSchemaToPropType(schema, key) {
712 - return jsonSchemaToPropType(schema, key);
713 - }
714 -
715 -//#endregion
716 -//#region packages/packages/libs/editor-props/src/utils/props-to-llm-schema.ts
717 - var DYNAMIC_PROP_TYPE_KEY = "dynamic";
718 - var OVERRIDABLE_PROP_TYPE_KEY = "overridable";
719 - var dynamicTagNamesResolver = null;
720 - function setDynamicTagNamesResolver(resolver) {
721 - dynamicTagNamesResolver = resolver;
722 - }
723 - function propTypeToJsonSchema(propType, suppressDynamic = false) {
724 - const description = propType.meta?.description;
725 - const schema = {};
726 - if (description) schema.description = description;
727 - if (propType.initial_value !== null && propType.initial_value !== void 0) schema.examples = [propType.initial_value];
728 - switch (propType.kind) {
729 - case "union": return convertUnionPropType(propType, schema, suppressDynamic);
730 - case "object": return convertObjectPropType(propType, schema, suppressDynamic);
731 - case "array": return convertArrayPropType(propType, schema, suppressDynamic);
732 - default: return convertPlainPropType(propType, schema);
733 - }
734 - }
735 - function convertPlainPropType(propType, baseSchema) {
736 - const schema = { ...baseSchema };
737 - if (!Object.hasOwn(propType, "kind")) throw new Error(`PropType kind is undefined for propType with key: ${propType.key ?? "[unknown key]"}`);
738 - const enumValues = propType.settings?.enum || [];
739 - switch (propType.kind) {
740 - case "string":
741 - case "number":
742 - case "boolean": return {
743 - ...schema,
744 - type: "object",
745 - properties: {
746 - $$type: {
747 - type: "string",
748 - const: propType.key ?? propType.kind
749 - },
750 - value: {
751 - type: propType.kind,
752 - ...enumValues.length > 0 ? { enum: enumValues } : {}
753 - }
754 - },
755 - required: ["$$type", "value"]
756 - };
757 - case "unknown": return {};
758 - default: return {
759 - ...schema,
760 - type: "object",
761 - $$type: propType.kind,
762 - value: { type: propType.kind }
763 - };
764 - }
765 - }
766 - function convertUnionPropType(propType, baseSchema, suppressDynamic) {
767 - const schema = structuredClone(baseSchema);
768 - const propTypes = propType.prop_types || {};
769 - const offersDynamic = !suppressDynamic && Boolean(propTypes[DYNAMIC_PROP_TYPE_KEY]);
770 - const suppressNestedDynamic = suppressDynamic || offersDynamic;
771 - const schemas = [];
772 - for (const [typeKey, subPropType] of Object.entries(propTypes)) {
773 - if (typeKey === OVERRIDABLE_PROP_TYPE_KEY) continue;
774 - if (typeKey === DYNAMIC_PROP_TYPE_KEY) {
775 - if (offersDynamic) schemas.push(convertDynamicPropType(subPropType));
776 - continue;
777 - }
778 - schemas.push(propTypeToJsonSchema(subPropType, suppressNestedDynamic));
779 - }
780 - if (schemas.length > 0) schema.anyOf = schemas;
781 - const propTypeDescription = propType.meta?.description;
782 - if (propTypeDescription) schema.description = propTypeDescription;
783 - return schema;
784 - }
785 - function convertDynamicPropType(propType) {
786 - const categories = Array.isArray(propType.settings?.categories) ? propType.settings.categories : [];
787 - const allowedTagNames = dynamicTagNamesResolver?.(categories) ?? [];
788 - return {
789 - type: "object",
790 - description: `Bind THIS value to a dynamic tag instead of a static value (this may be a nested field, e.g. an image's "src"). Look up the chosen tag in the "elementor://dynamic-tags" resource and populate "settings" exactly as its schema requires.`,
791 - properties: {
792 - $$type: {
793 - type: "string",
794 - const: DYNAMIC_PROP_TYPE_KEY
795 - },
796 - value: {
797 - type: "object",
798 - properties: {
799 - name: {
800 - type: "string",
801 - description: "Dynamic tag name from \"elementor://dynamic-tags\".",
802 - ...allowedTagNames.length ? { enum: allowedTagNames } : {}
803 - },
804 - settings: {
805 - type: "object",
806 - description: "Tag settings matching the chosen tag's schema in the resource."
807 - }
808 - },
809 - required: ["name"]
810 - }
811 - },
812 - required: ["$$type", "value"]
813 - };
814 - }
815 - function convertObjectPropType(propType, baseSchema, suppressDynamic) {
816 - const schema = structuredClone(baseSchema);
817 - schema.type = "object";
818 - const internalStructure = { properties: {
819 - $$type: {
820 - type: "string",
821 - const: propType.key
822 - },
823 - value: {
824 - type: "object",
825 - properties: {},
826 - additionalProperties: false
827 - }
828 - } };
829 - const required = ["$$type", "value"];
830 - const valueRequired = [];
831 - const shape = propType.shape || {};
832 - for (const [key, subPropType] of Object.entries(shape)) {
833 - const propSchema = propTypeToJsonSchema(subPropType, suppressDynamic);
834 - if (subPropType.settings?.required === true) valueRequired.push(key);
835 - if (internalStructure.properties.value.properties) internalStructure.properties.value.properties[key] = propSchema;
836 - }
837 - schema.required = required;
838 - if (valueRequired.length > 0) internalStructure.properties.value.required = valueRequired;
839 - return {
840 - ...schema,
841 - ...internalStructure
842 - };
843 - }
844 - function convertArrayPropType(propType, baseSchema, suppressDynamic) {
845 - const schema = structuredClone(baseSchema);
846 - schema.type = "object";
847 - let items;
848 - const itemPropType = propType.item_prop_type;
849 - if (itemPropType) items = propTypeToJsonSchema(itemPropType, suppressDynamic);
850 - schema.properties = {
851 - $$type: {
852 - type: "string",
853 - const: propType.key
854 - },
855 - value: {
856 - type: "array",
857 - ...items ? { items } : {}
858 - }
859 - };
860 - return schema;
861 - }
862 - var nonConfigurablePropKeys = [
863 - "_cssid",
864 - "classes",
865 - "attributes"
866 - ];
867 - function isPropKeyConfigurable(propKey, propType) {
868 - if (!nonConfigurablePropKeys.includes(propKey)) return true;
869 - return !!(!Array.isArray(propType?.meta) && propType?.meta?.llm_configurable);
870 - }
871 - function configurableKeys(schema) {
872 - return Object.keys(schema).filter((key) => isPropKeyConfigurable(key, schema[key]));
873 - }
874 - function enrichWithIntention(jsonSchema, text = "Describe the desired outcome") {
875 - const result = structuredClone(jsonSchema);
876 - if (!result.properties) return jsonSchema;
877 - result.properties.$intention = {
878 - type: "string",
879 - description: text
880 - };
881 - result.required = [...result.required || [], "$intention"];
882 - return result;
883 - }
884 - function removeIntention(jsonSchema) {
885 - const result = structuredClone(jsonSchema);
886 - if (!result.properties) return jsonSchema;
887 - delete result.properties.$intention;
888 - if (result.required) result.required = result.required.filter((req) => req !== "$intention");
889 - return result;
890 - }
891 -
892 -//#endregion
893 -//#region node_modules/jsonschema/lib/helpers.js
894 - var require_helpers = /* @__PURE__ */ __commonJSMin(((exports, module) => {
895 - var ValidationError = exports.ValidationError = function ValidationError(message, instance, schema, path, name, argument) {
896 - if (Array.isArray(path)) {
897 - this.path = path;
898 - this.property = path.reduce(function(sum, item) {
899 - return sum + makeSuffix(item);
900 - }, "instance");
901 - } else if (path !== void 0) this.property = path;
902 - if (message) this.message = message;
903 - if (schema) {
904 - var id = schema.$id || schema.id;
905 - this.schema = id || schema;
906 - }
907 - if (instance !== void 0) this.instance = instance;
908 - this.name = name;
909 - this.argument = argument;
910 - this.stack = this.toString();
911 - };
912 - ValidationError.prototype.toString = function toString() {
913 - return this.property + " " + this.message;
914 - };
915 - var ValidatorResult = exports.ValidatorResult = function ValidatorResult(instance, schema, options, ctx) {
916 - this.instance = instance;
917 - this.schema = schema;
918 - this.options = options;
919 - this.path = ctx.path;
920 - this.propertyPath = ctx.propertyPath;
921 - this.errors = [];
922 - this.throwError = options && options.throwError;
923 - this.throwFirst = options && options.throwFirst;
924 - this.throwAll = options && options.throwAll;
925 - this.disableFormat = options && options.disableFormat === true;
926 - };
927 - ValidatorResult.prototype.addError = function addError(detail) {
928 - var err;
929 - if (typeof detail == "string") err = new ValidationError(detail, this.instance, this.schema, this.path);
930 - else {
931 - if (!detail) throw new Error("Missing error detail");
932 - if (!detail.message) throw new Error("Missing error message");
933 - if (!detail.name) throw new Error("Missing validator type");
934 - err = new ValidationError(detail.message, this.instance, this.schema, this.path, detail.name, detail.argument);
935 - }
936 - this.errors.push(err);
937 - if (this.throwFirst) throw new ValidatorResultError(this);
938 - else if (this.throwError) throw err;
939 - return err;
940 - };
941 - ValidatorResult.prototype.importErrors = function importErrors(res) {
942 - if (typeof res == "string" || res && res.validatorType) this.addError(res);
943 - else if (res && res.errors) this.errors = this.errors.concat(res.errors);
944 - };
945 - function stringizer(v, i) {
946 - return i + ": " + v.toString() + "\n";
947 - }
948 - ValidatorResult.prototype.toString = function toString(res) {
949 - return this.errors.map(stringizer).join("");
950 - };
951 - Object.defineProperty(ValidatorResult.prototype, "valid", { get: function() {
952 - return !this.errors.length;
953 - } });
954 - module.exports.ValidatorResultError = ValidatorResultError;
955 - function ValidatorResultError(result) {
956 - if (typeof Error.captureStackTrace === "function") Error.captureStackTrace(this, ValidatorResultError);
957 - this.instance = result.instance;
958 - this.schema = result.schema;
959 - this.options = result.options;
960 - this.errors = result.errors;
961 - }
962 - ValidatorResultError.prototype = /* @__PURE__ */ new Error();
963 - ValidatorResultError.prototype.constructor = ValidatorResultError;
964 - ValidatorResultError.prototype.name = "Validation Error";
965 - /**
966 - * Describes a problem with a Schema which prevents validation of an instance
967 - * @name SchemaError
968 - * @constructor
969 - */
970 - var SchemaError = exports.SchemaError = function SchemaError(msg, schema) {
971 - this.message = msg;
972 - this.schema = schema;
973 - Error.call(this, msg);
974 - if (typeof Error.captureStackTrace === "function") Error.captureStackTrace(this, SchemaError);
975 - };
976 - SchemaError.prototype = Object.create(Error.prototype, {
977 - constructor: {
978 - value: SchemaError,
979 - enumerable: false
980 - },
981 - name: {
982 - value: "SchemaError",
983 - enumerable: false
984 - }
985 - });
986 - var SchemaContext = exports.SchemaContext = function SchemaContext(schema, options, path, base, schemas) {
987 - this.schema = schema;
988 - this.options = options;
989 - if (Array.isArray(path)) {
990 - this.path = path;
991 - this.propertyPath = path.reduce(function(sum, item) {
992 - return sum + makeSuffix(item);
993 - }, "instance");
994 - } else this.propertyPath = path;
995 - this.base = base;
996 - this.schemas = schemas;
997 - };
998 - SchemaContext.prototype.resolve = function resolve(target) {
999 - return (() => resolveUrl(this.base, target))();
1000 - };
1001 - SchemaContext.prototype.makeChild = function makeChild(schema, propertyName) {
1002 - var path = propertyName === void 0 ? this.path : this.path.concat([propertyName]);
1003 - var id = schema.$id || schema.id;
1004 - let base = (() => resolveUrl(this.base, id || ""))();
1005 - var ctx = new SchemaContext(schema, this.options, path, base, Object.create(this.schemas));
1006 - if (id && !ctx.schemas[base]) ctx.schemas[base] = schema;
1007 - return ctx;
1008 - };
1009 - var FORMAT_REGEXPS = exports.FORMAT_REGEXPS = {
1010 - "date-time": /^\d{4}-(?:0[0-9]{1}|1[0-2]{1})-(3[01]|0[1-9]|[12][0-9])[tT ](2[0-4]|[01][0-9]):([0-5][0-9]):(60|[0-5][0-9])(\.\d+)?([zZ]|[+-]([0-5][0-9]):(60|[0-5][0-9]))$/,
1011 - "date": /^\d{4}-(?:0[0-9]{1}|1[0-2]{1})-(3[01]|0[1-9]|[12][0-9])$/,
1012 - "time": /^(2[0-4]|[01][0-9]):([0-5][0-9]):(60|[0-5][0-9])$/,
1013 - "duration": /P(T\d+(H(\d+M(\d+S)?)?|M(\d+S)?|S)|\d+(D|M(\d+D)?|Y(\d+M(\d+D)?)?)(T\d+(H(\d+M(\d+S)?)?|M(\d+S)?|S))?|\d+W)/i,
1014 - "email": /^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+@(?:(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9\-](?!\.)){0,61}[a-zA-Z0-9]?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9\-](?!$)){0,61}[a-zA-Z0-9]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/,
1015 - "idn-email": /^("(?:[!#-\[\]-\u{10FFFF}]|\\[\t -\u{10FFFF}])*"|[!#-'*+\-/-9=?A-Z\^-\u{10FFFF}](?:\.?[!#-'*+\-/-9=?A-Z\^-\u{10FFFF}])*)@([!#-'*+\-/-9=?A-Z\^-\u{10FFFF}](?:\.?[!#-'*+\-/-9=?A-Z\^-\u{10FFFF}])*|\[[!-Z\^-\u{10FFFF}]*\])$/u,
1016 - "ip-address": /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/,
1017 - "ipv6": /^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/,
1018 - "uri": /^[a-zA-Z][a-zA-Z0-9+.-]*:[^\s]*$/,
1019 - "uri-reference": /^(((([A-Za-z][+\-.0-9A-Za-z]*(:%[0-9A-Fa-f]{2}|:[!$&-.0-;=?-Z_a-z~]|[/?])|\?)(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*|([A-Za-z][+\-.0-9A-Za-z]*:?)?)|([A-Za-z][+\-.0-9A-Za-z]*:)?\/((%[0-9A-Fa-f]{2}|\/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~])+|(\[(([Vv][0-9A-Fa-f]+\.[!$&-.0-;=A-Z_a-z~]+)?|[.0-:A-Fa-f]+)\])?)(:\d*)?[/?]|[!$&-.0-;=?-Z_a-z~])(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*|(\/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~])+|(\[(([Vv][0-9A-Fa-f]+\.[!$&-.0-;=A-Z_a-z~]+)?|[.0-:A-Fa-f]+)\])?)(:\d*)?)?))#(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*|(([A-Za-z][+\-.0-9A-Za-z]*)?%[0-9A-Fa-f]{2}|[!$&-.0-9;=@_~]|[A-Za-z][+\-.0-9A-Za-z]*[!$&-*,;=@_~])(%[0-9A-Fa-f]{2}|[!$&-.0-9;=@-Z_a-z~])*((([/?](%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*)?#|[/?])(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*)?|([A-Za-z][+\-.0-9A-Za-z]*(:%[0-9A-Fa-f]{2}|:[!$&-.0-;=?-Z_a-z~]|[/?])|\?)(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*|([A-Za-z][+\-.0-9A-Za-z]*:)?\/((%[0-9A-Fa-f]{2}|\/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~])+|(\[(([Vv][0-9A-Fa-f]+\.[!$&-.0-;=A-Z_a-z~]+)?|[.0-:A-Fa-f]+)\])?)(:\d*)?[/?]|[!$&-.0-;=?-Z_a-z~])(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*|\/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~])+(:\d*)?|(\[(([Vv][0-9A-Fa-f]+\.[!$&-.0-;=A-Z_a-z~]+)?|[.0-:A-Fa-f]+)\])?:\d*|\[(([Vv][0-9A-Fa-f]+\.[!$&-.0-;=A-Z_a-z~]+)?|[.0-:A-Fa-f]+)\])?)?|[A-Za-z][+\-.0-9A-Za-z]*:?)?$/,
1020 - "iri": /^[a-zA-Z][a-zA-Z0-9+.-]*:[^\s]*$/,
1021 - "iri-reference": /^(((([A-Za-z][+\-.0-9A-Za-z]*(:%[0-9A-Fa-f]{2}|:[!$&-.0-;=?-Z_a-z~-\u{10FFFF}]|[/?])|\?)(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~-\u{10FFFF}])*|([A-Za-z][+\-.0-9A-Za-z]*:?)?)|([A-Za-z][+\-.0-9A-Za-z]*:)?\/((%[0-9A-Fa-f]{2}|\/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~-\u{10FFFF}])+|(\[(([Vv][0-9A-Fa-f]+\.[!$&-.0-;=A-Z_a-z~-\u{10FFFF}]+)?|[.0-:A-Fa-f]+)\])?)(:\d*)?[/?]|[!$&-.0-;=?-Z_a-z~-\u{10FFFF}])(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~-\u{10FFFF}])*|(\/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~-\u{10FFFF}])+|(\[(([Vv][0-9A-Fa-f]+\.[!$&-.0-;=A-Z_a-z~-\u{10FFFF}]+)?|[.0-:A-Fa-f]+)\])?)(:\d*)?)?))#(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~-\u{10FFFF}])*|(([A-Za-z][+\-.0-9A-Za-z]*)?%[0-9A-Fa-f]{2}|[!$&-.0-9;=@_~-\u{10FFFF}]|[A-Za-z][+\-.0-9A-Za-z]*[!$&-*,;=@_~-\u{10FFFF}])(%[0-9A-Fa-f]{2}|[!$&-.0-9;=@-Z_a-z~-\u{10FFFF}])*((([/?](%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~-\u{10FFFF}])*)?#|[/?])(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~-\u{10FFFF}])*)?|([A-Za-z][+\-.0-9A-Za-z]*(:%[0-9A-Fa-f]{2}|:[!$&-.0-;=?-Z_a-z~-\u{10FFFF}]|[/?])|\?)(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~-\u{10FFFF}])*|([A-Za-z][+\-.0-9A-Za-z]*:)?\/((%[0-9A-Fa-f]{2}|\/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~-\u{10FFFF}])+|(\[(([Vv][0-9A-Fa-f]+\.[!$&-.0-;=A-Z_a-z~-\u{10FFFF}]+)?|[.0-:A-Fa-f]+)\])?)(:\d*)?[/?]|[!$&-.0-;=?-Z_a-z~-\u{10FFFF}])(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~-\u{10FFFF}])*|\/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~-\u{10FFFF}])+(:\d*)?|(\[(([Vv][0-9A-Fa-f]+\.[!$&-.0-;=A-Z_a-z~-\u{10FFFF}]+)?|[.0-:A-Fa-f]+)\])?:\d*|\[(([Vv][0-9A-Fa-f]+\.[!$&-.0-;=A-Z_a-z~-\u{10FFFF}]+)?|[.0-:A-Fa-f]+)\])?)?|[A-Za-z][+\-.0-9A-Za-z]*:?)?$/u,
1022 - "uuid": /^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i,
1023 - "uri-template": /(%[0-9a-f]{2}|[!#$&(-;=?@\[\]_a-z~]|\{[!#&+,./;=?@|]?(%[0-9a-f]{2}|[0-9_a-z])(\.?(%[0-9a-f]{2}|[0-9_a-z]))*(:[1-9]\d{0,3}|\*)?(,(%[0-9a-f]{2}|[0-9_a-z])(\.?(%[0-9a-f]{2}|[0-9_a-z]))*(:[1-9]\d{0,3}|\*)?)*\})*/iu,
1024 - "json-pointer": /^(\/([\x00-\x2e0-@\[-}\x7f]|~[01])*)*$/iu,
1025 - "relative-json-pointer": /^\d+(#|(\/([\x00-\x2e0-@\[-}\x7f]|~[01])*)*)$/iu,
1026 - "hostname": /^(?=.{1,255}$)[0-9A-Za-z](?:(?:[0-9A-Za-z]|-){0,61}[0-9A-Za-z])?(?:\.[0-9A-Za-z](?:(?:[0-9A-Za-z]|-){0,61}[0-9A-Za-z])?)*\.?$/,
1027 - "host-name": /^(?=.{1,255}$)[0-9A-Za-z](?:(?:[0-9A-Za-z]|-){0,61}[0-9A-Za-z])?(?:\.[0-9A-Za-z](?:(?:[0-9A-Za-z]|-){0,61}[0-9A-Za-z])?)*\.?$/,
1028 - "utc-millisec": function(input) {
1029 - return typeof input === "string" && parseFloat(input) === parseInt(input, 10) && !isNaN(input);
1030 - },
1031 - "regex": function(input) {
1032 - var result = true;
1033 - try {
1034 - new RegExp(input);
1035 - } catch (e) {
1036 - result = false;
1037 - }
1038 - return result;
1039 - },
1040 - "style": /[\r\n\t ]*[^\r\n\t ][^:]*:[\r\n\t ]*[^\r\n\t ;]*[\r\n\t ]*;?/,
1041 - "color": /^(#?([0-9A-Fa-f]{3}){1,2}\b|aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow|(rgb\(\s*\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\b\s*,\s*\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\b\s*,\s*\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\b\s*\))|(rgb\(\s*(\d?\d%|100%)+\s*,\s*(\d?\d%|100%)+\s*,\s*(\d?\d%|100%)+\s*\)))$/,
1042 - "phone": /^\+(?:[0-9] ?){6,14}[0-9]$/,
1043 - "alpha": /^[a-zA-Z]+$/,
1044 - "alphanumeric": /^[a-zA-Z0-9]+$/
1045 - };
1046 - FORMAT_REGEXPS.regexp = FORMAT_REGEXPS.regex;
1047 - FORMAT_REGEXPS.pattern = FORMAT_REGEXPS.regex;
1048 - FORMAT_REGEXPS.ipv4 = FORMAT_REGEXPS["ip-address"];
1049 - exports.isFormat = function isFormat(input, format, validator) {
1050 - if (typeof input === "string" && FORMAT_REGEXPS[format] !== void 0) {
1051 - if (FORMAT_REGEXPS[format] instanceof RegExp) return FORMAT_REGEXPS[format].test(input);
1052 - if (typeof FORMAT_REGEXPS[format] === "function") return FORMAT_REGEXPS[format](input);
1053 - } else if (validator && validator.customFormats && typeof validator.customFormats[format] === "function") return validator.customFormats[format](input);
1054 - return true;
1055 - };
1056 - var makeSuffix = exports.makeSuffix = function makeSuffix(key) {
1057 - key = key.toString();
1058 - if (!key.match(/[.\s\[\]]/) && !key.match(/^[\d]/)) return "." + key;
1059 - if (key.match(/^\d+$/)) return "[" + key + "]";
1060 - return "[" + JSON.stringify(key) + "]";
1061 - };
1062 - exports.deepCompareStrict = function deepCompareStrict(a, b) {
1063 - if (typeof a !== typeof b) return false;
1064 - if (Array.isArray(a)) {
1065 - if (!Array.isArray(b)) return false;
1066 - if (a.length !== b.length) return false;
1067 - return a.every(function(v, i) {
1068 - return deepCompareStrict(a[i], b[i]);
1069 - });
1070 - }
1071 - if (typeof a === "object") {
1072 - if (!a || !b) return a === b;
1073 - var aKeys = Object.keys(a);
1074 - var bKeys = Object.keys(b);
1075 - if (aKeys.length !== bKeys.length) return false;
1076 - return aKeys.every(function(v) {
1077 - return deepCompareStrict(a[v], b[v]);
1078 - });
1079 - }
1080 - return a === b;
1081 - };
1082 - function deepMerger(target, dst, e, i) {
1083 - if (typeof e === "object") dst[i] = deepMerge(target[i], e);
1084 - else if (target.indexOf(e) === -1) dst.push(e);
1085 - }
1086 - function copyist(src, dst, key) {
1087 - dst[key] = src[key];
1088 - }
1089 - function copyistWithDeepMerge(target, src, dst, key) {
1090 - if (typeof src[key] !== "object" || !src[key]) dst[key] = src[key];
1091 - else if (!target[key]) dst[key] = src[key];
1092 - else dst[key] = deepMerge(target[key], src[key]);
1093 - }
1094 - function deepMerge(target, src) {
1095 - var array = Array.isArray(src);
1096 - var dst = array && [] || {};
1097 - if (array) {
1098 - target = target || [];
1099 - dst = dst.concat(target);
1100 - src.forEach(deepMerger.bind(null, target, dst));
1101 - } else {
1102 - if (target && typeof target === "object") Object.keys(target).forEach(copyist.bind(null, target, dst));
1103 - Object.keys(src).forEach(copyistWithDeepMerge.bind(null, target, src, dst));
1104 - }
1105 - return dst;
1106 - }
1107 - module.exports.deepMerge = deepMerge;
1108 - /**
1109 - * Validates instance against the provided schema
1110 - * Implements URI+JSON Pointer encoding, e.g. "%7e"="~0"=>"~", "~1"="%2f"=>"/"
1111 - * @param o
1112 - * @param s The path to walk o along
1113 - * @return any
1114 - */
1115 - exports.objectGetPath = function objectGetPath(o, s) {
1116 - var parts = s.split("/").slice(1);
1117 - var k;
1118 - while (typeof (k = parts.shift()) == "string") {
1119 - var n = decodeURIComponent(k.replace(/~0/, "~").replace(/~1/g, "/"));
1120 - if (!(n in o)) return;
1121 - o = o[n];
1122 - }
1123 - return o;
1124 - };
1125 - function pathEncoder(v) {
1126 - return "/" + encodeURIComponent(v).replace(/~/g, "%7E");
1127 - }
1128 - /**
1129 - * Accept an Array of property names and return a JSON Pointer URI fragment
1130 - * @param Array a
1131 - * @return {String}
1132 - */
1133 - exports.encodePath = function encodePointer(a) {
1134 - return a.map(pathEncoder).join("");
1135 - };
1136 - /**
1137 - * Calculate the number of decimal places a number uses
1138 - * We need this to get correct results out of multipleOf and divisibleBy
1139 - * when either figure is has decimal places, due to IEEE-754 float issues.
1140 - * @param number
1141 - * @returns {number}
1142 - */
1143 - exports.getDecimalPlaces = function getDecimalPlaces(number) {
1144 - var decimalPlaces = 0;
1145 - if (isNaN(number)) return decimalPlaces;
1146 - if (typeof number !== "number") number = Number(number);
1147 - var parts = number.toString().split("e");
1148 - if (parts.length === 2) if (parts[1][0] !== "-") return decimalPlaces;
1149 - else decimalPlaces = Number(parts[1].slice(1));
1150 - var decimalParts = parts[0].split(".");
1151 - if (decimalParts.length === 2) decimalPlaces += decimalParts[1].length;
1152 - return decimalPlaces;
1153 - };
1154 - exports.isSchema = function isSchema(val) {
1155 - return typeof val === "object" && val || typeof val === "boolean";
1156 - };
1157 - /**
1158 - * Resolve target URL from a base and relative URL.
1159 - * Similar to Node's URL Lib's legacy resolve function.
1160 - * Code from example in deprecation note in said library.
1161 - * @param string
1162 - * @param string
1163 - * @returns {string}
1164 - */
1165 - var resolveUrl = exports.resolveUrl = function resolveUrl(from, to) {
1166 - const resolvedUrl = new URL(to, new URL(from, "resolve://"));
1167 - if (resolvedUrl.protocol === "resolve:") {
1168 - const { pathname, search, hash } = resolvedUrl;
1169 - return pathname + search + hash;
1170 - }
1171 - return resolvedUrl.toString();
1172 - };
1173 - }));
1174 -
1175 -//#endregion
1176 -//#region node_modules/jsonschema/lib/attribute.js
1177 - var require_attribute = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1178 - var helpers = require_helpers();
1179 - /** @type ValidatorResult */
1180 - var ValidatorResult = helpers.ValidatorResult;
1181 - /** @type SchemaError */
1182 - var SchemaError = helpers.SchemaError;
1183 - var attribute = {};
1184 - attribute.ignoreProperties = {
1185 - "id": true,
1186 - "default": true,
1187 - "description": true,
1188 - "title": true,
1189 - "additionalItems": true,
1190 - "then": true,
1191 - "else": true,
1192 - "$schema": true,
1193 - "$ref": true,
1194 - "extends": true
1195 - };
1196 - /**
1197 - * @name validators
1198 - */
1199 - var validators = attribute.validators = {};
1200 - /**
1201 - * Validates whether the instance if of a certain type
1202 - * @param instance
1203 - * @param schema
1204 - * @param options
1205 - * @param ctx
1206 - * @return {ValidatorResult|null}
1207 - */
1208 - validators.type = function validateType(instance, schema, options, ctx) {
1209 - if (instance === void 0) return null;
1210 - var result = new ValidatorResult(instance, schema, options, ctx);
1211 - var types = Array.isArray(schema.type) ? schema.type : [schema.type];
1212 - if (!types.some(this.testType.bind(this, instance, schema, options, ctx))) {
1213 - var list = types.map(function(v) {
1214 - if (!v) return;
1215 - var id = v.$id || v.id;
1216 - return id ? "<" + id + ">" : v + "";
1217 - });
1218 - result.addError({
1219 - name: "type",
1220 - argument: list,
1221 - message: "is not of a type(s) " + list
1222 - });
1223 - }
1224 - return result;
1225 - };
1226 - function testSchemaNoThrow(instance, options, ctx, callback, schema) {
1227 - var throwError = options.throwError;
1228 - var throwAll = options.throwAll;
1229 - options.throwError = false;
1230 - options.throwAll = false;
1231 - var res = this.validateSchema(instance, schema, options, ctx);
1232 - options.throwError = throwError;
1233 - options.throwAll = throwAll;
1234 - if (!res.valid && callback instanceof Function) callback(res);
1235 - return res.valid;
1236 - }
1237 - /**
1238 - * Validates whether the instance matches some of the given schemas
1239 - * @param instance
1240 - * @param schema
1241 - * @param options
1242 - * @param ctx
1243 - * @return {ValidatorResult|null}
1244 - */
1245 - validators.anyOf = function validateAnyOf(instance, schema, options, ctx) {
1246 - if (instance === void 0) return null;
1247 - var result = new ValidatorResult(instance, schema, options, ctx);
1248 - var inner = new ValidatorResult(instance, schema, options, ctx);
1249 - if (!Array.isArray(schema.anyOf)) throw new SchemaError("anyOf must be an array");
1250 - if (!schema.anyOf.some(testSchemaNoThrow.bind(this, instance, options, ctx, function(res) {
1251 - inner.importErrors(res);
1252 - }))) {
1253 - var list = schema.anyOf.map(function(v, i) {
1254 - var id = v.$id || v.id;
1255 - if (id) return "<" + id + ">";
1256 - return v.title && JSON.stringify(v.title) || v["$ref"] && "<" + v["$ref"] + ">" || "[subschema " + i + "]";
1257 - });
1258 - if (options.nestedErrors) result.importErrors(inner);
1259 - result.addError({
1260 - name: "anyOf",
1261 - argument: list,
1262 - message: "is not any of " + list.join(",")
1263 - });
1264 - }
1265 - return result;
1266 - };
1267 - /**
1268 - * Validates whether the instance matches every given schema
1269 - * @param instance
1270 - * @param schema
1271 - * @param options
1272 - * @param ctx
1273 - * @return {String|null}
1274 - */
1275 - validators.allOf = function validateAllOf(instance, schema, options, ctx) {
1276 - if (instance === void 0) return null;
1277 - if (!Array.isArray(schema.allOf)) throw new SchemaError("allOf must be an array");
1278 - var result = new ValidatorResult(instance, schema, options, ctx);
1279 - var self = this;
1280 - schema.allOf.forEach(function(v, i) {
1281 - var valid = self.validateSchema(instance, v, options, ctx);
1282 - if (!valid.valid) {
1283 - var msg = v.$id || v.id || v.title && JSON.stringify(v.title) || v["$ref"] && "<" + v["$ref"] + ">" || "[subschema " + i + "]";
1284 - result.addError({
1285 - name: "allOf",
1286 - argument: {
1287 - id: msg,
1288 - length: valid.errors.length,
1289 - valid
1290 - },
1291 - message: "does not match allOf schema " + msg + " with " + valid.errors.length + " error[s]:"
1292 - });
1293 - result.importErrors(valid);
1294 - }
1295 - });
1296 - return result;
1297 - };
1298 - /**
1299 - * Validates whether the instance matches exactly one of the given schemas
1300 - * @param instance
1301 - * @param schema
1302 - * @param options
1303 - * @param ctx
1304 - * @return {String|null}
1305 - */
1306 - validators.oneOf = function validateOneOf(instance, schema, options, ctx) {
1307 - if (instance === void 0) return null;
1308 - if (!Array.isArray(schema.oneOf)) throw new SchemaError("oneOf must be an array");
1309 - var result = new ValidatorResult(instance, schema, options, ctx);
1310 - var inner = new ValidatorResult(instance, schema, options, ctx);
1311 - var count = schema.oneOf.filter(testSchemaNoThrow.bind(this, instance, options, ctx, function(res) {
1312 - inner.importErrors(res);
1313 - })).length;
1314 - var list = schema.oneOf.map(function(v, i) {
1315 - return v.$id || v.id || v.title && JSON.stringify(v.title) || v["$ref"] && "<" + v["$ref"] + ">" || "[subschema " + i + "]";
1316 - });
1317 - if (count !== 1) {
1318 - if (options.nestedErrors) result.importErrors(inner);
1319 - result.addError({
1320 - name: "oneOf",
1321 - argument: list,
1322 - message: "is not exactly one from " + list.join(",")
1323 - });
1324 - }
1325 - return result;
1326 - };
1327 - /**
1328 - * Validates "then" or "else" depending on the result of validating "if"
1329 - * @param instance
1330 - * @param schema
1331 - * @param options
1332 - * @param ctx
1333 - * @return {String|null}
1334 - */
1335 - validators.if = function validateIf(instance, schema, options, ctx) {
1336 - if (instance === void 0) return null;
1337 - if (!helpers.isSchema(schema.if)) throw new Error("Expected \"if\" keyword to be a schema");
1338 - var ifValid = testSchemaNoThrow.call(this, instance, options, ctx, null, schema.if);
1339 - var result = new ValidatorResult(instance, schema, options, ctx);
1340 - var res;
1341 - if (ifValid) {
1342 - if (schema.then === void 0) return;
1343 - if (!helpers.isSchema(schema.then)) throw new Error("Expected \"then\" keyword to be a schema");
1344 - res = this.validateSchema(instance, schema.then, options, ctx.makeChild(schema.then));
1345 - result.importErrors(res);
1346 - } else {
1347 - if (schema.else === void 0) return;
1348 - if (!helpers.isSchema(schema.else)) throw new Error("Expected \"else\" keyword to be a schema");
1349 - res = this.validateSchema(instance, schema.else, options, ctx.makeChild(schema.else));
1350 - result.importErrors(res);
1351 - }
1352 - return result;
1353 - };
1354 - function getEnumerableProperty(object, key) {
1355 - if (Object.hasOwnProperty.call(object, key)) return object[key];
1356 - if (!(key in object)) return;
1357 - while (object = Object.getPrototypeOf(object)) if (Object.propertyIsEnumerable.call(object, key)) return object[key];
1358 - }
1359 - /**
1360 - * Validates propertyNames
1361 - * @param instance
1362 - * @param schema
1363 - * @param options
1364 - * @param ctx
1365 - * @return {String|null|ValidatorResult}
1366 - */
1367 - validators.propertyNames = function validatePropertyNames(instance, schema, options, ctx) {
1368 - if (!this.types.object(instance)) return;
1369 - var result = new ValidatorResult(instance, schema, options, ctx);
1370 - var subschema = schema.propertyNames !== void 0 ? schema.propertyNames : {};
1371 - if (!helpers.isSchema(subschema)) throw new SchemaError("Expected \"propertyNames\" to be a schema (object or boolean)");
1372 - for (var property in instance) if (getEnumerableProperty(instance, property) !== void 0) {
1373 - var res = this.validateSchema(property, subschema, options, ctx.makeChild(subschema));
1374 - result.importErrors(res);
1375 - }
1376 - return result;
1377 - };
1378 - /**
1379 - * Validates properties
1380 - * @param instance
1381 - * @param schema
1382 - * @param options
1383 - * @param ctx
1384 - * @return {String|null|ValidatorResult}
1385 - */
1386 - validators.properties = function validateProperties(instance, schema, options, ctx) {
1387 - if (!this.types.object(instance)) return;
1388 - var result = new ValidatorResult(instance, schema, options, ctx);
1389 - var properties = schema.properties || {};
1390 - for (var property in properties) {
1391 - var subschema = properties[property];
1392 - if (subschema === void 0) continue;
1393 - else if (subschema === null) throw new SchemaError("Unexpected null, expected schema in \"properties\"");
1394 - if (typeof options.preValidateProperty == "function") options.preValidateProperty(instance, property, subschema, options, ctx);
1395 - var prop = getEnumerableProperty(instance, property);
1396 - var res = this.validateSchema(prop, subschema, options, ctx.makeChild(subschema, property));
1397 - if (res.instance !== result.instance[property]) result.instance[property] = res.instance;
1398 - result.importErrors(res);
1399 - }
1400 - return result;
1401 - };
1402 - /**
1403 - * Test a specific property within in instance against the additionalProperties schema attribute
1404 - * This ignores properties with definitions in the properties schema attribute, but no other attributes.
1405 - * If too many more types of property-existence tests pop up they may need their own class of tests (like `type` has)
1406 - * @private
1407 - * @return {boolean}
1408 - */
1409 - function testAdditionalProperty(instance, schema, options, ctx, property, result) {
1410 - if (!this.types.object(instance)) return;
1411 - if (schema.properties && schema.properties[property] !== void 0) return;
1412 - if (schema.additionalProperties === false) result.addError({
1413 - name: "additionalProperties",
1414 - argument: property,
1415 - message: "is not allowed to have the additional property " + JSON.stringify(property)
1416 - });
1417 - else {
1418 - var additionalProperties = schema.additionalProperties || {};
1419 - if (typeof options.preValidateProperty == "function") options.preValidateProperty(instance, property, additionalProperties, options, ctx);
1420 - var res = this.validateSchema(instance[property], additionalProperties, options, ctx.makeChild(additionalProperties, property));
1421 - if (res.instance !== result.instance[property]) result.instance[property] = res.instance;
1422 - result.importErrors(res);
1423 - }
1424 - }
1425 - /**
1426 - * Validates patternProperties
1427 - * @param instance
1428 - * @param schema
1429 - * @param options
1430 - * @param ctx
1431 - * @return {String|null|ValidatorResult}
1432 - */
1433 - validators.patternProperties = function validatePatternProperties(instance, schema, options, ctx) {
1434 - if (!this.types.object(instance)) return;
1435 - var result = new ValidatorResult(instance, schema, options, ctx);
1436 - var patternProperties = schema.patternProperties || {};
1437 - for (var property in instance) {
1438 - var test = true;
1439 - for (var pattern in patternProperties) {
1440 - var subschema = patternProperties[pattern];
1441 - if (subschema === void 0) continue;
1442 - else if (subschema === null) throw new SchemaError("Unexpected null, expected schema in \"patternProperties\"");
1443 - try {
1444 - var regexp = new RegExp(pattern, "u");
1445 - } catch (_e) {
1446 - regexp = new RegExp(pattern);
1447 - }
1448 - if (!regexp.test(property)) continue;
1449 - test = false;
1450 - if (typeof options.preValidateProperty == "function") options.preValidateProperty(instance, property, subschema, options, ctx);
1451 - var res = this.validateSchema(instance[property], subschema, options, ctx.makeChild(subschema, property));
1452 - if (res.instance !== result.instance[property]) result.instance[property] = res.instance;
1453 - result.importErrors(res);
1454 - }
1455 - if (test) testAdditionalProperty.call(this, instance, schema, options, ctx, property, result);
1456 - }
1457 - return result;
1458 - };
1459 - /**
1460 - * Validates additionalProperties
1461 - * @param instance
1462 - * @param schema
1463 - * @param options
1464 - * @param ctx
1465 - * @return {String|null|ValidatorResult}
1466 - */
1467 - validators.additionalProperties = function validateAdditionalProperties(instance, schema, options, ctx) {
1468 - if (!this.types.object(instance)) return;
1469 - if (schema.patternProperties) return null;
1470 - var result = new ValidatorResult(instance, schema, options, ctx);
1471 - for (var property in instance) testAdditionalProperty.call(this, instance, schema, options, ctx, property, result);
1472 - return result;
1473 - };
1474 - /**
1475 - * Validates whether the instance value is at least of a certain length, when the instance value is a string.
1476 - * @param instance
1477 - * @param schema
1478 - * @return {String|null}
1479 - */
1480 - validators.minProperties = function validateMinProperties(instance, schema, options, ctx) {
1481 - if (!this.types.object(instance)) return;
1482 - var result = new ValidatorResult(instance, schema, options, ctx);
1483 - if (!(Object.keys(instance).length >= schema.minProperties)) result.addError({
1484 - name: "minProperties",
1485 - argument: schema.minProperties,
1486 - message: "does not meet minimum property length of " + schema.minProperties
1487 - });
1488 - return result;
1489 - };
1490 - /**
1491 - * Validates whether the instance value is at most of a certain length, when the instance value is a string.
1492 - * @param instance
1493 - * @param schema
1494 - * @return {String|null}
1495 - */
1496 - validators.maxProperties = function validateMaxProperties(instance, schema, options, ctx) {
1497 - if (!this.types.object(instance)) return;
1498 - var result = new ValidatorResult(instance, schema, options, ctx);
1499 - if (!(Object.keys(instance).length <= schema.maxProperties)) result.addError({
1500 - name: "maxProperties",
1501 - argument: schema.maxProperties,
1502 - message: "does not meet maximum property length of " + schema.maxProperties
1503 - });
1504 - return result;
1505 - };
1506 - /**
1507 - * Validates items when instance is an array
1508 - * @param instance
1509 - * @param schema
1510 - * @param options
1511 - * @param ctx
1512 - * @return {String|null|ValidatorResult}
1513 - */
1514 - validators.items = function validateItems(instance, schema, options, ctx) {
1515 - var self = this;
1516 - if (!this.types.array(instance)) return;
1517 - if (schema.items === void 0) return;
1518 - var result = new ValidatorResult(instance, schema, options, ctx);
1519 - instance.every(function(value, i) {
1520 - if (Array.isArray(schema.items)) var items = schema.items[i] === void 0 ? schema.additionalItems : schema.items[i];
1521 - else var items = schema.items;
1522 - if (items === void 0) return true;
1523 - if (items === false) {
1524 - result.addError({
1525 - name: "items",
1526 - message: "additionalItems not permitted"
1527 - });
1528 - return false;
1529 - }
1530 - var res = self.validateSchema(value, items, options, ctx.makeChild(items, i));
1531 - if (res.instance !== result.instance[i]) result.instance[i] = res.instance;
1532 - result.importErrors(res);
1533 - return true;
1534 - });
1535 - return result;
1536 - };
1537 - /**
1538 - * Validates the "contains" keyword
1539 - * @param instance
1540 - * @param schema
1541 - * @param options
1542 - * @param ctx
1543 - * @return {String|null|ValidatorResult}
1544 - */
1545 - validators.contains = function validateContains(instance, schema, options, ctx) {
1546 - var self = this;
1547 - if (!this.types.array(instance)) return;
1548 - if (schema.contains === void 0) return;
1549 - if (!helpers.isSchema(schema.contains)) throw new Error("Expected \"contains\" keyword to be a schema");
1550 - var result = new ValidatorResult(instance, schema, options, ctx);
1551 - if (instance.some(function(value, i) {
1552 - return self.validateSchema(value, schema.contains, options, ctx.makeChild(schema.contains, i)).errors.length === 0;
1553 - }) === false) result.addError({
1554 - name: "contains",
1555 - argument: schema.contains,
1556 - message: "must contain an item matching given schema"
1557 - });
1558 - return result;
1559 - };
1560 - /**
1561 - * Validates minimum and exclusiveMinimum when the type of the instance value is a number.
1562 - * @param instance
1563 - * @param schema
1564 - * @return {String|null}
1565 - */
1566 - validators.minimum = function validateMinimum(instance, schema, options, ctx) {
1567 - if (!this.types.number(instance)) return;
1568 - var result = new ValidatorResult(instance, schema, options, ctx);
1569 - if (schema.exclusiveMinimum && schema.exclusiveMinimum === true) {
1570 - if (!(instance > schema.minimum)) result.addError({
1571 - name: "minimum",
1572 - argument: schema.minimum,
1573 - message: "must be greater than " + schema.minimum
1574 - });
1575 - } else if (!(instance >= schema.minimum)) result.addError({
1576 - name: "minimum",
1577 - argument: schema.minimum,
1578 - message: "must be greater than or equal to " + schema.minimum
1579 - });
1580 - return result;
1581 - };
1582 - /**
1583 - * Validates maximum and exclusiveMaximum when the type of the instance value is a number.
1584 - * @param instance
1585 - * @param schema
1586 - * @return {String|null}
1587 - */
1588 - validators.maximum = function validateMaximum(instance, schema, options, ctx) {
1589 - if (!this.types.number(instance)) return;
1590 - var result = new ValidatorResult(instance, schema, options, ctx);
1591 - if (schema.exclusiveMaximum && schema.exclusiveMaximum === true) {
1592 - if (!(instance < schema.maximum)) result.addError({
1593 - name: "maximum",
1594 - argument: schema.maximum,
1595 - message: "must be less than " + schema.maximum
1596 - });
1597 - } else if (!(instance <= schema.maximum)) result.addError({
1598 - name: "maximum",
1599 - argument: schema.maximum,
1600 - message: "must be less than or equal to " + schema.maximum
1601 - });
1602 - return result;
1603 - };
1604 - /**
1605 - * Validates the number form of exclusiveMinimum when the type of the instance value is a number.
1606 - * @param instance
1607 - * @param schema
1608 - * @return {String|null}
1609 - */
1610 - validators.exclusiveMinimum = function validateExclusiveMinimum(instance, schema, options, ctx) {
1611 - if (typeof schema.exclusiveMinimum === "boolean") return;
1612 - if (!this.types.number(instance)) return;
1613 - var result = new ValidatorResult(instance, schema, options, ctx);
1614 - if (!(instance > schema.exclusiveMinimum)) result.addError({
1615 - name: "exclusiveMinimum",
1616 - argument: schema.exclusiveMinimum,
1617 - message: "must be strictly greater than " + schema.exclusiveMinimum
1618 - });
1619 - return result;
1620 - };
1621 - /**
1622 - * Validates the number form of exclusiveMaximum when the type of the instance value is a number.
1623 - * @param instance
1624 - * @param schema
1625 - * @return {String|null}
1626 - */
1627 - validators.exclusiveMaximum = function validateExclusiveMaximum(instance, schema, options, ctx) {
1628 - if (typeof schema.exclusiveMaximum === "boolean") return;
1629 - if (!this.types.number(instance)) return;
1630 - var result = new ValidatorResult(instance, schema, options, ctx);
1631 - if (!(instance < schema.exclusiveMaximum)) result.addError({
1632 - name: "exclusiveMaximum",
1633 - argument: schema.exclusiveMaximum,
1634 - message: "must be strictly less than " + schema.exclusiveMaximum
1635 - });
1636 - return result;
1637 - };
1638 - /**
1639 - * Perform validation for multipleOf and divisibleBy, which are essentially the same.
1640 - * @param instance
1641 - * @param schema
1642 - * @param validationType
1643 - * @param errorMessage
1644 - * @returns {String|null}
1645 - */
1646 - var validateMultipleOfOrDivisbleBy = function validateMultipleOfOrDivisbleBy(instance, schema, options, ctx, validationType, errorMessage) {
1647 - if (!this.types.number(instance)) return;
1648 - var validationArgument = schema[validationType];
1649 - if (validationArgument == 0) throw new SchemaError(validationType + " cannot be zero");
1650 - var result = new ValidatorResult(instance, schema, options, ctx);
1651 - var instanceDecimals = helpers.getDecimalPlaces(instance);
1652 - var divisorDecimals = helpers.getDecimalPlaces(validationArgument);
1653 - var multiplier = Math.pow(10, Math.max(instanceDecimals, divisorDecimals));
1654 - if (Math.round(instance * multiplier) % Math.round(validationArgument * multiplier) !== 0) result.addError({
1655 - name: validationType,
1656 - argument: validationArgument,
1657 - message: errorMessage + JSON.stringify(validationArgument)
1658 - });
1659 - return result;
1660 - };
1661 - /**
1662 - * Validates divisibleBy when the type of the instance value is a number.
1663 - * @param instance
1664 - * @param schema
1665 - * @return {String|null}
1666 - */
1667 - validators.multipleOf = function validateMultipleOf(instance, schema, options, ctx) {
1668 - return validateMultipleOfOrDivisbleBy.call(this, instance, schema, options, ctx, "multipleOf", "is not a multiple of (divisible by) ");
1669 - };
1670 - /**
1671 - * Validates multipleOf when the type of the instance value is a number.
1672 - * @param instance
1673 - * @param schema
1674 - * @return {String|null}
1675 - */
1676 - validators.divisibleBy = function validateDivisibleBy(instance, schema, options, ctx) {
1677 - return validateMultipleOfOrDivisbleBy.call(this, instance, schema, options, ctx, "divisibleBy", "is not divisible by (multiple of) ");
1678 - };
1679 - /**
1680 - * Validates whether the instance value is present.
1681 - * @param instance
1682 - * @param schema
1683 - * @return {String|null}
1684 - */
1685 - validators.required = function validateRequired(instance, schema, options, ctx) {
1686 - var result = new ValidatorResult(instance, schema, options, ctx);
1687 - if (instance === void 0 && schema.required === true) result.addError({
1688 - name: "required",
1689 - message: "is required"
1690 - });
1691 - else if (this.types.object(instance) && Array.isArray(schema.required)) schema.required.forEach(function(n) {
1692 - if (getEnumerableProperty(instance, n) === void 0) result.addError({
1693 - name: "required",
1694 - argument: n,
1695 - message: "requires property " + JSON.stringify(n)
1696 - });
1697 - });
1698 - return result;
1699 - };
1700 - /**
1701 - * Validates whether the instance value matches the regular expression, when the instance value is a string.
1702 - * @param instance
1703 - * @param schema
1704 - * @return {String|null}
1705 - */
1706 - validators.pattern = function validatePattern(instance, schema, options, ctx) {
1707 - if (!this.types.string(instance)) return;
1708 - var result = new ValidatorResult(instance, schema, options, ctx);
1709 - var pattern = schema.pattern;
1710 - try {
1711 - var regexp = new RegExp(pattern, "u");
1712 - } catch (_e) {
1713 - regexp = new RegExp(pattern);
1714 - }
1715 - if (!instance.match(regexp)) result.addError({
1716 - name: "pattern",
1717 - argument: schema.pattern,
1718 - message: "does not match pattern " + JSON.stringify(schema.pattern.toString())
1719 - });
1720 - return result;
1721 - };
1722 - /**
1723 - * Validates whether the instance value is of a certain defined format or a custom
1724 - * format.
1725 - * The following formats are supported for string types:
1726 - * - date-time
1727 - * - date
1728 - * - time
1729 - * - ip-address
1730 - * - ipv6
1731 - * - uri
1732 - * - color
1733 - * - host-name
1734 - * - alpha
1735 - * - alpha-numeric
1736 - * - utc-millisec
1737 - * @param instance
1738 - * @param schema
1739 - * @param [options]
1740 - * @param [ctx]
1741 - * @return {String|null}
1742 - */
1743 - validators.format = function validateFormat(instance, schema, options, ctx) {
1744 - if (instance === void 0) return;
1745 - var result = new ValidatorResult(instance, schema, options, ctx);
1746 - if (!result.disableFormat && !helpers.isFormat(instance, schema.format, this)) result.addError({
1747 - name: "format",
1748 - argument: schema.format,
1749 - message: "does not conform to the " + JSON.stringify(schema.format) + " format"
1750 - });
1751 - return result;
1752 - };
1753 - /**
1754 - * Validates whether the instance value is at least of a certain length, when the instance value is a string.
1755 - * @param instance
1756 - * @param schema
1757 - * @return {String|null}
1758 - */
1759 - validators.minLength = function validateMinLength(instance, schema, options, ctx) {
1760 - if (!this.types.string(instance)) return;
1761 - var result = new ValidatorResult(instance, schema, options, ctx);
1762 - var hsp = instance.match(/[\uDC00-\uDFFF]/g);
1763 - if (!(instance.length - (hsp ? hsp.length : 0) >= schema.minLength)) result.addError({
1764 - name: "minLength",
1765 - argument: schema.minLength,
1766 - message: "does not meet minimum length of " + schema.minLength
1767 - });
1768 - return result;
1769 - };
1770 - /**
1771 - * Validates whether the instance value is at most of a certain length, when the instance value is a string.
1772 - * @param instance
1773 - * @param schema
1774 - * @return {String|null}
1775 - */
1776 - validators.maxLength = function validateMaxLength(instance, schema, options, ctx) {
1777 - if (!this.types.string(instance)) return;
1778 - var result = new ValidatorResult(instance, schema, options, ctx);
1779 - var hsp = instance.match(/[\uDC00-\uDFFF]/g);
1780 - if (!(instance.length - (hsp ? hsp.length : 0) <= schema.maxLength)) result.addError({
1781 - name: "maxLength",
1782 - argument: schema.maxLength,
1783 - message: "does not meet maximum length of " + schema.maxLength
1784 - });
1785 - return result;
1786 - };
1787 - /**
1788 - * Validates whether instance contains at least a minimum number of items, when the instance is an Array.
1789 - * @param instance
1790 - * @param schema
1791 - * @return {String|null}
1792 - */
1793 - validators.minItems = function validateMinItems(instance, schema, options, ctx) {
1794 - if (!this.types.array(instance)) return;
1795 - var result = new ValidatorResult(instance, schema, options, ctx);
1796 - if (!(instance.length >= schema.minItems)) result.addError({
1797 - name: "minItems",
1798 - argument: schema.minItems,
1799 - message: "does not meet minimum length of " + schema.minItems
1800 - });
1801 - return result;
1802 - };
1803 - /**
1804 - * Validates whether instance contains no more than a maximum number of items, when the instance is an Array.
1805 - * @param instance
1806 - * @param schema
1807 - * @return {String|null}
1808 - */
1809 - validators.maxItems = function validateMaxItems(instance, schema, options, ctx) {
1810 - if (!this.types.array(instance)) return;
1811 - var result = new ValidatorResult(instance, schema, options, ctx);
1812 - if (!(instance.length <= schema.maxItems)) result.addError({
1813 - name: "maxItems",
1814 - argument: schema.maxItems,
1815 - message: "does not meet maximum length of " + schema.maxItems
1816 - });
1817 - return result;
1818 - };
1819 - /**
1820 - * Deep compares arrays for duplicates
1821 - * @param v
1822 - * @param i
1823 - * @param a
1824 - * @private
1825 - * @return {boolean}
1826 - */
1827 - function testArrays(v, i, a) {
1828 - var j;
1829 - var len = a.length;
1830 - for (j = i + 1; j < len; j++) if (helpers.deepCompareStrict(v, a[j])) return false;
1831 - return true;
1832 - }
1833 - /**
1834 - * Validates whether there are no duplicates, when the instance is an Array.
1835 - * @param instance
1836 - * @return {String|null}
1837 - */
1838 - validators.uniqueItems = function validateUniqueItems(instance, schema, options, ctx) {
1839 - if (schema.uniqueItems !== true) return;
1840 - if (!this.types.array(instance)) return;
1841 - var result = new ValidatorResult(instance, schema, options, ctx);
1842 - if (!instance.every(testArrays)) result.addError({
1843 - name: "uniqueItems",
1844 - message: "contains duplicate item"
1845 - });
1846 - return result;
1847 - };
1848 - /**
1849 - * Validate for the presence of dependency properties, if the instance is an object.
1850 - * @param instance
1851 - * @param schema
1852 - * @param options
1853 - * @param ctx
1854 - * @return {null|ValidatorResult}
1855 - */
1856 - validators.dependencies = function validateDependencies(instance, schema, options, ctx) {
1857 - if (!this.types.object(instance)) return;
1858 - var result = new ValidatorResult(instance, schema, options, ctx);
1859 - for (var property in schema.dependencies) {
1860 - if (instance[property] === void 0) continue;
1861 - var dep = schema.dependencies[property];
1862 - var childContext = ctx.makeChild(dep, property);
1863 - if (typeof dep == "string") dep = [dep];
1864 - if (Array.isArray(dep)) dep.forEach(function(prop) {
1865 - if (instance[prop] === void 0) result.addError({
1866 - name: "dependencies",
1867 - argument: childContext.propertyPath,
1868 - message: "property " + prop + " not found, required by " + childContext.propertyPath
1869 - });
1870 - });
1871 - else {
1872 - var res = this.validateSchema(instance, dep, options, childContext);
1873 - if (result.instance !== res.instance) result.instance = res.instance;
1874 - if (res && res.errors.length) {
1875 - result.addError({
1876 - name: "dependencies",
1877 - argument: childContext.propertyPath,
1878 - message: "does not meet dependency required by " + childContext.propertyPath
1879 - });
1880 - result.importErrors(res);
1881 - }
1882 - }
1883 - }
1884 - return result;
1885 - };
1886 - /**
1887 - * Validates whether the instance value is one of the enumerated values.
1888 - *
1889 - * @param instance
1890 - * @param schema
1891 - * @return {ValidatorResult|null}
1892 - */
1893 - validators["enum"] = function validateEnum(instance, schema, options, ctx) {
1894 - if (instance === void 0) return null;
1895 - if (!Array.isArray(schema["enum"])) throw new SchemaError("enum expects an array", schema);
1896 - var result = new ValidatorResult(instance, schema, options, ctx);
1897 - if (!schema["enum"].some(helpers.deepCompareStrict.bind(null, instance))) result.addError({
1898 - name: "enum",
1899 - argument: schema["enum"],
1900 - message: "is not one of enum values: " + schema["enum"].map(String).join(",")
1901 - });
1902 - return result;
1903 - };
1904 - /**
1905 - * Validates whether the instance exactly matches a given value
1906 - *
1907 - * @param instance
1908 - * @param schema
1909 - * @return {ValidatorResult|null}
1910 - */
1911 - validators["const"] = function validateEnum(instance, schema, options, ctx) {
1912 - if (instance === void 0) return null;
1913 - var result = new ValidatorResult(instance, schema, options, ctx);
1914 - if (!helpers.deepCompareStrict(schema["const"], instance)) result.addError({
1915 - name: "const",
1916 - argument: schema["const"],
1917 - message: "does not exactly match expected constant: " + schema["const"]
1918 - });
1919 - return result;
1920 - };
1921 - /**
1922 - * Validates whether the instance if of a prohibited type.
1923 - * @param instance
1924 - * @param schema
1925 - * @param options
1926 - * @param ctx
1927 - * @return {null|ValidatorResult}
1928 - */
1929 - validators.not = validators.disallow = function validateNot(instance, schema, options, ctx) {
1930 - var self = this;
1931 - if (instance === void 0) return null;
1932 - var result = new ValidatorResult(instance, schema, options, ctx);
1933 - var notTypes = schema.not || schema.disallow;
1934 - if (!notTypes) return null;
1935 - if (!Array.isArray(notTypes)) notTypes = [notTypes];
1936 - notTypes.forEach(function(type) {
1937 - if (self.testType(instance, schema, options, ctx, type)) {
1938 - var schemaId = type && (type.$id || type.id) || type;
1939 - result.addError({
1940 - name: "not",
1941 - argument: schemaId,
1942 - message: "is of prohibited type " + schemaId
1943 - });
1944 - }
1945 - });
1946 - return result;
1947 - };
1948 - module.exports = attribute;
1949 - }));
1950 -
1951 -//#endregion
1952 -//#region node_modules/jsonschema/lib/scan.js
1953 - var require_scan = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1954 - var helpers = require_helpers();
1955 - module.exports.SchemaScanResult = SchemaScanResult;
1956 - function SchemaScanResult(found, ref) {
1957 - this.id = found;
1958 - this.ref = ref;
1959 - }
1960 - /**
1961 - * Adds a schema with a certain urn to the Validator instance.
1962 - * @param string uri
1963 - * @param object schema
1964 - * @return {Object}
1965 - */
1966 - module.exports.scan = function scan(base, schema) {
1967 - function scanSchema(baseuri, schema) {
1968 - if (!schema || typeof schema != "object") return;
1969 - if (schema.$ref) {
1970 - let resolvedUri = helpers.resolveUrl(baseuri, schema.$ref);
1971 - ref[resolvedUri] = ref[resolvedUri] ? ref[resolvedUri] + 1 : 0;
1972 - return;
1973 - }
1974 - var id = schema.$id || schema.id;
1975 - let resolvedBase = helpers.resolveUrl(baseuri, id);
1976 - var ourBase = id ? resolvedBase : baseuri;
1977 - if (ourBase) {
1978 - if (ourBase.indexOf("#") < 0) ourBase += "#";
1979 - if (found[ourBase]) {
1980 - if (!helpers.deepCompareStrict(found[ourBase], schema)) throw new Error("Schema <" + ourBase + "> already exists with different definition");
1981 - return found[ourBase];
1982 - }
1983 - found[ourBase] = schema;
1984 - if (ourBase[ourBase.length - 1] == "#") found[ourBase.substring(0, ourBase.length - 1)] = schema;
1985 - }
1986 - scanArray(ourBase + "/items", Array.isArray(schema.items) ? schema.items : [schema.items]);
1987 - scanArray(ourBase + "/extends", Array.isArray(schema.extends) ? schema.extends : [schema.extends]);
1988 - scanSchema(ourBase + "/additionalItems", schema.additionalItems);
1989 - scanObject(ourBase + "/properties", schema.properties);
1990 - scanSchema(ourBase + "/additionalProperties", schema.additionalProperties);
1991 - scanObject(ourBase + "/definitions", schema.definitions);
1992 - scanObject(ourBase + "/patternProperties", schema.patternProperties);
1993 - scanObject(ourBase + "/dependencies", schema.dependencies);
1994 - scanArray(ourBase + "/disallow", schema.disallow);
1995 - scanArray(ourBase + "/allOf", schema.allOf);
1996 - scanArray(ourBase + "/anyOf", schema.anyOf);
1997 - scanArray(ourBase + "/oneOf", schema.oneOf);
1998 - scanSchema(ourBase + "/not", schema.not);
1999 - }
2000 - function scanArray(baseuri, schemas) {
2001 - if (!Array.isArray(schemas)) return;
2002 - for (var i = 0; i < schemas.length; i++) scanSchema(baseuri + "/" + i, schemas[i]);
2003 - }
2004 - function scanObject(baseuri, schemas) {
2005 - if (!schemas || typeof schemas != "object") return;
2006 - for (var p in schemas) scanSchema(baseuri + "/" + p, schemas[p]);
2007 - }
2008 - var found = {};
2009 - var ref = {};
2010 - scanSchema(base, schema);
2011 - return new SchemaScanResult(found, ref);
2012 - };
2013 - }));
2014 -
2015 -//#endregion
2016 -//#region node_modules/jsonschema/lib/validator.js
2017 - var require_validator = /* @__PURE__ */ __commonJSMin(((exports, module) => {
2018 - var attribute = require_attribute();
2019 - var helpers = require_helpers();
2020 - var scanSchema = require_scan().scan;
2021 - var ValidatorResult = helpers.ValidatorResult;
2022 - var ValidatorResultError = helpers.ValidatorResultError;
2023 - var SchemaError = helpers.SchemaError;
2024 - var SchemaContext = helpers.SchemaContext;
2025 - var anonymousBase = "/";
2026 - /**
2027 - * Creates a new Validator object
2028 - * @name Validator
2029 - * @constructor
2030 - */
2031 - var Validator = function Validator() {
2032 - this.customFormats = Object.create(Validator.prototype.customFormats);
2033 - this.schemas = {};
2034 - this.unresolvedRefs = [];
2035 - this.types = Object.create(types);
2036 - this.attributes = Object.create(attribute.validators);
2037 - };
2038 - Validator.prototype.customFormats = {};
2039 - Validator.prototype.schemas = null;
2040 - Validator.prototype.types = null;
2041 - Validator.prototype.attributes = null;
2042 - Validator.prototype.unresolvedRefs = null;
2043 - /**
2044 - * Adds a schema with a certain urn to the Validator instance.
2045 - * @param schema
2046 - * @param urn
2047 - * @return {Object}
2048 - */
2049 - Validator.prototype.addSchema = function addSchema(schema, base) {
2050 - var self = this;
2051 - if (!schema) return null;
2052 - var scan = scanSchema(base || anonymousBase, schema);
2053 - var ourUri = base || schema.$id || schema.id;
2054 - for (var uri in scan.id) this.schemas[uri] = scan.id[uri];
2055 - for (var uri in scan.ref) this.unresolvedRefs.push(uri);
2056 - this.unresolvedRefs = this.unresolvedRefs.filter(function(uri) {
2057 - return typeof self.schemas[uri] === "undefined";
2058 - });
2059 - return this.schemas[ourUri];
2060 - };
2061 - Validator.prototype.addSubSchemaArray = function addSubSchemaArray(baseuri, schemas) {
2062 - if (!Array.isArray(schemas)) return;
2063 - for (var i = 0; i < schemas.length; i++) this.addSubSchema(baseuri, schemas[i]);
2064 - };
2065 - Validator.prototype.addSubSchemaObject = function addSubSchemaArray(baseuri, schemas) {
2066 - if (!schemas || typeof schemas != "object") return;
2067 - for (var p in schemas) this.addSubSchema(baseuri, schemas[p]);
2068 - };
2069 - /**
2070 - * Sets all the schemas of the Validator instance.
2071 - * @param schemas
2072 - */
2073 - Validator.prototype.setSchemas = function setSchemas(schemas) {
2074 - this.schemas = schemas;
2075 - };
2076 - /**
2077 - * Returns the schema of a certain urn
2078 - * @param urn
2079 - */
2080 - Validator.prototype.getSchema = function getSchema(urn) {
2081 - return this.schemas[urn];
2082 - };
2083 - /**
2084 - * Validates instance against the provided schema
2085 - * @param instance
2086 - * @param schema
2087 - * @param [options]
2088 - * @param [ctx]
2089 - * @return {Array}
2090 - */
2091 - Validator.prototype.validate = function validate(instance, schema, options, ctx) {
2092 - if (typeof schema !== "boolean" && typeof schema !== "object" || schema === null) throw new SchemaError("Expected `schema` to be an object or boolean");
2093 - if (!options) options = {};
2094 - var id = schema.$id || schema.id;
2095 - let base = helpers.resolveUrl(options.base, id || "");
2096 - if (!ctx) {
2097 - ctx = new SchemaContext(schema, options, [], base, Object.create(this.schemas));
2098 - if (!ctx.schemas[base]) ctx.schemas[base] = schema;
2099 - var found = scanSchema(base, schema);
2100 - for (var n in found.id) {
2101 - var sch = found.id[n];
2102 - ctx.schemas[n] = sch;
2103 - }
2104 - }
2105 - if (options.required && instance === void 0) {
2106 - var result = new ValidatorResult(instance, schema, options, ctx);
2107 - result.addError("is required, but is undefined");
2108 - return result;
2109 - }
2110 - var result = this.validateSchema(instance, schema, options, ctx);
2111 - if (!result) throw new Error("Result undefined");
2112 - else if (options.throwAll && result.errors.length) throw new ValidatorResultError(result);
2113 - return result;
2114 - };
2115 - /**
2116 - * @param Object schema
2117 - * @return mixed schema uri or false
2118 - */
2119 - function shouldResolve(schema) {
2120 - var ref = typeof schema === "string" ? schema : schema.$ref;
2121 - if (typeof ref == "string") return ref;
2122 - return false;
2123 - }
2124 - /**
2125 - * Validates an instance against the schema (the actual work horse)
2126 - * @param instance
2127 - * @param schema
2128 - * @param options
2129 - * @param ctx
2130 - * @private
2131 - * @return {ValidatorResult}
2132 - */
2133 - Validator.prototype.validateSchema = function validateSchema(instance, schema, options, ctx) {
2134 - var result = new ValidatorResult(instance, schema, options, ctx);
2135 - if (typeof schema === "boolean") {
2136 - if (schema === true) schema = {};
2137 - else if (schema === false) schema = { type: [] };
2138 - } else if (!schema) throw new Error("schema is undefined");
2139 - if (schema["extends"]) if (Array.isArray(schema["extends"])) {
2140 - var schemaobj = {
2141 - schema,
2142 - ctx
2143 - };
2144 - schema["extends"].forEach(this.schemaTraverser.bind(this, schemaobj));
2145 - schema = schemaobj.schema;
2146 - schemaobj.schema = null;
2147 - schemaobj.ctx = null;
2148 - schemaobj = null;
2149 - } else schema = helpers.deepMerge(schema, this.superResolve(schema["extends"], ctx));
2150 - var switchSchema = shouldResolve(schema);
2151 - if (switchSchema) {
2152 - var resolved = this.resolve(schema, switchSchema, ctx);
2153 - var subctx = new SchemaContext(resolved.subschema, options, ctx.path, resolved.switchSchema, ctx.schemas);
2154 - return this.validateSchema(instance, resolved.subschema, options, subctx);
2155 - }
2156 - var skipAttributes = options && options.skipAttributes || [];
2157 - for (var key in schema) if (!attribute.ignoreProperties[key] && skipAttributes.indexOf(key) < 0) {
2158 - var validatorErr = null;
2159 - var validator = this.attributes[key];
2160 - if (validator) validatorErr = validator.call(this, instance, schema, options, ctx);
2161 - else if (options.allowUnknownAttributes === false) throw new SchemaError("Unsupported attribute: " + key, schema);
2162 - if (validatorErr) result.importErrors(validatorErr);
2163 - }
2164 - if (typeof options.rewrite == "function") result.instance = options.rewrite.call(this, instance, schema, options, ctx);
2165 - return result;
2166 - };
2167 - /**
2168 - * @private
2169 - * @param Object schema
2170 - * @param SchemaContext ctx
2171 - * @returns Object schema or resolved schema
2172 - */
2173 - Validator.prototype.schemaTraverser = function schemaTraverser(schemaobj, s) {
2174 - schemaobj.schema = helpers.deepMerge(schemaobj.schema, this.superResolve(s, schemaobj.ctx));
2175 - };
2176 - /**
2177 - * @private
2178 - * @param Object schema
2179 - * @param SchemaContext ctx
2180 - * @returns Object schema or resolved schema
2181 - */
2182 - Validator.prototype.superResolve = function superResolve(schema, ctx) {
2183 - var ref = shouldResolve(schema);
2184 - if (ref) return this.resolve(schema, ref, ctx).subschema;
2185 - return schema;
2186 - };
2187 - /**
2188 - * @private
2189 - * @param Object schema
2190 - * @param Object switchSchema
2191 - * @param SchemaContext ctx
2192 - * @return Object resolved schemas {subschema:String, switchSchema: String}
2193 - * @throws SchemaError
2194 - */
2195 - Validator.prototype.resolve = function resolve(schema, switchSchema, ctx) {
2196 - switchSchema = ctx.resolve(switchSchema);
2197 - if (ctx.schemas[switchSchema]) return {
2198 - subschema: ctx.schemas[switchSchema],
2199 - switchSchema
2200 - };
2201 - let fragment = new URL(switchSchema, "thismessage::/").hash;
2202 - var document = fragment && fragment.length && switchSchema.substr(0, switchSchema.length - fragment.length);
2203 - if (!document || !ctx.schemas[document]) throw new SchemaError("no such schema <" + switchSchema + ">", schema);
2204 - var subschema = helpers.objectGetPath(ctx.schemas[document], fragment.substr(1));
2205 - if (subschema === void 0) throw new SchemaError("no such schema " + fragment + " located in <" + document + ">", schema);
2206 - return {
2207 - subschema,
2208 - switchSchema
2209 - };
2210 - };
2211 - /**
2212 - * Tests whether the instance if of a certain type.
2213 - * @private
2214 - * @param instance
2215 - * @param schema
2216 - * @param options
2217 - * @param ctx
2218 - * @param type
2219 - * @return {boolean}
2220 - */
2221 - Validator.prototype.testType = function validateType(instance, schema, options, ctx, type) {
2222 - if (type === void 0) return;
2223 - else if (type === null) throw new SchemaError("Unexpected null in \"type\" keyword");
2224 - if (typeof this.types[type] == "function") return this.types[type].call(this, instance);
2225 - if (type && typeof type == "object") {
2226 - var res = this.validateSchema(instance, type, options, ctx);
2227 - return res === void 0 || !(res && res.errors.length);
2228 - }
2229 - return true;
2230 - };
2231 - var types = Validator.prototype.types = {};
2232 - types.string = function testString(instance) {
2233 - return typeof instance == "string";
2234 - };
2235 - types.number = function testNumber(instance) {
2236 - return typeof instance == "number" && isFinite(instance);
2237 - };
2238 - types.integer = function testInteger(instance) {
2239 - return typeof instance == "number" && instance % 1 === 0;
2240 - };
2241 - types.boolean = function testBoolean(instance) {
2242 - return typeof instance == "boolean";
2243 - };
2244 - types.array = function testArray(instance) {
2245 - return Array.isArray(instance);
2246 - };
2247 - types["null"] = function testNull(instance) {
2248 - return instance === null;
2249 - };
2250 - types.date = function testDate(instance) {
2251 - return instance instanceof Date;
2252 - };
2253 - types.any = function testAny(instance) {
2254 - return true;
2255 - };
2256 - types.object = function testObject(instance) {
2257 - return instance && typeof instance === "object" && !Array.isArray(instance) && !(instance instanceof Date);
2258 - };
2259 - module.exports = Validator;
2260 - }));
2261 -
2262 -//#endregion
2263 -//#region node_modules/jsonschema/lib/index.js
2264 - var require_lib = /* @__PURE__ */ __commonJSMin(((exports, module) => {
2265 - var Validator = module.exports.Validator = require_validator();
2266 - module.exports.ValidatorResult = require_helpers().ValidatorResult;
2267 - module.exports.ValidatorResultError = require_helpers().ValidatorResultError;
2268 - module.exports.ValidationError = require_helpers().ValidationError;
2269 - module.exports.SchemaError = require_helpers().SchemaError;
2270 - module.exports.SchemaScanResult = require_scan().SchemaScanResult;
2271 - module.exports.scan = require_scan().scan;
2272 - module.exports.validate = function(instance, schema, options) {
2273 - return new Validator().validate(instance, schema, options);
2274 - };
2275 - }));
2276 -
2277 -//#endregion
2278 -//#region packages/packages/libs/editor-props/src/utils/validate-prop-value.ts
2279 - var import_lib = require_lib();
2280 - function processValidationError(error) {
2281 - const detailed = {
2282 - path: error.path,
2283 - message: error.message,
2284 - schema: error.schema,
2285 - instance: error.instance,
2286 - name: error.name
2287 - };
2288 - if (error.name === "anyOf" && error.schema && typeof error.schema === "object" && "anyOf" in error.schema) detailed.variants = (error.schema.anyOf || []).map((variantSchema, idx) => {
2289 - const variantResult = (0, import_lib.validate)(error.instance, variantSchema);
2290 - let discriminator = `variant-${idx}`;
2291 - if (variantSchema && typeof variantSchema === "object" && "properties" in variantSchema && variantSchema.properties && typeof variantSchema.properties === "object" && "$$type" in variantSchema.properties) {
2292 - const typeProperty = variantSchema.properties.$$type;
2293 - if (typeProperty && typeof typeProperty === "object" && "const" in typeProperty && typeof typeProperty.const === "string") discriminator = typeProperty.const;
2294 - }
2295 - return {
2296 - discriminator,
2297 - errors: variantResult.errors.map(processValidationError)
2298 - };
2299 - });
2300 - return detailed;
2301 - }
2302 - function formatDetailedErrors(errors, indent = "") {
2303 - const lines = [];
2304 - for (const error of errors) {
2305 - const pathStr = error.path.length > 0 ? error.path.join(".") : "root";
2306 - lines.push(`${indent}Error at ${pathStr}: ${error.message}`);
2307 - if (error.variants && error.variants.length > 0) {
2308 - lines.push(`${indent} Tried ${error.variants.length} variant(s):`);
2309 - for (const variant of error.variants) {
2310 - lines.push(`${indent} - ${variant.discriminator}:`);
2311 - if (variant.errors.length === 0) lines.push(`${indent} (no errors - this variant matched!)`);
2312 - else for (const nestedError of variant.errors) {
2313 - const nestedPathStr = nestedError.path.length > 0 ? nestedError.path.join(".") : "root";
2314 - lines.push(`${indent} ${nestedPathStr}: ${nestedError.message}`);
2315 - if (nestedError.variants && nestedError.variants.length > 0) lines.push(formatDetailedErrors([nestedError], `${indent} `));
2316 - }
2317 - }
2318 - }
2319 - }
2320 - return lines.join("\n");
2321 - }
2322 - var validatePropValue = (schema, value) => {
2323 - const jsonSchema = propTypeToJsonSchema(schema);
2324 - if (value === null) return {
2325 - valid: true,
2326 - errors: [],
2327 - errorMessages: [],
2328 - jsonSchema: JSON.stringify(propTypeToJsonSchema(schema))
2329 - };
2330 - const result = (0, import_lib.validate)(value, jsonSchema);
2331 - const detailedErrors = result.errors.map(processValidationError);
2332 - return {
2333 - valid: result.valid,
2334 - errors: result.errors,
2335 - errorMessages: formatDetailedErrors(detailedErrors),
2336 - jsonSchema: JSON.stringify(jsonSchema)
2337 - };
2338 - };
2339 -
2340 -//#endregion
2341 -//#region packages/packages/libs/editor-props/src/utils/is-transformable.ts
2342 - var transformableSchema = _elementor_schema.z.object({
2343 - $$type: _elementor_schema.z.string(),
2344 - value: _elementor_schema.z.any(),
2345 - disabled: _elementor_schema.z.boolean().optional()
2346 - });
2347 - var isTransformable = (value) => {
2348 - return transformableSchema.safeParse(value).success;
2349 - };
2350 -
2351 -//#endregion
2352 -//#region packages/packages/libs/editor-props/src/utils/filter-empty-values.ts
2353 - var filterEmptyValues = (value) => {
2354 - if (isEmpty(value)) return null;
2355 - if (Array.isArray(value)) return value.map(filterEmptyValues).filter((item) => !isEmpty(item));
2356 - if (typeof value === "object") return Object.fromEntries(Object.entries(value).map(([key, val]) => [key, filterEmptyValues(val)]).filter(([, val]) => !isEmpty(val)));
2357 - return value;
2358 - };
2359 - var isEmpty = (value) => {
2360 - if (value && isTransformable(value)) return isEmpty(value.value);
2361 - return isNullish(value) || isNullishArray(value) || isNullishObject(value);
2362 - };
2363 - var isNullish = (value) => value === null || value === void 0 || value === "";
2364 - var isNullishArray = (value) => Array.isArray(value) && value.every(isEmpty);
2365 - var isNullishObject = (value) => {
2366 - return typeof value === "object" && isNullishArray(Object.values(value));
2367 - };
2368 -
2369 -//#endregion
2370 -//#region packages/packages/libs/editor-props/src/utils/is-overridable.ts
2371 - function isOverridable(value) {
2372 - return isTransformable(value) && value.$$type === "overridable";
2373 - }
2374 - function rewrapOverridableValue(existing, newInner) {
2375 - return {
2376 - ...existing,
2377 - value: {
2378 - ...existing.value,
2379 - origin_value: newInner
2380 - }
2381 - };
2382 - }
2383 -
2384 -//#endregion
2385 -//#region packages/packages/libs/editor-props/src/utils/merge-props.ts
2386 - function mergeProps(current, updates) {
2387 - let props = {};
2388 - if (!Array.isArray(current)) props = structuredClone(current);
2389 - Object.entries(updates).forEach(([key, value]) => {
2390 - if (value === null || value === void 0) delete props[key];
2391 - else props[key] = value;
2392 - });
2393 - return props;
2394 - }
2395 -
2396 -//#endregion
2397 -//#region packages/packages/libs/editor-props/src/utils/prop-dependency-utils.ts
2398 - function isDependencyMet(dependency, values) {
2399 - if (!dependency?.terms.length) return { isMet: true };
2400 - const { relation, terms } = dependency;
2401 - const method = getRelationMethod(relation);
2402 - const failingDependencies = [];
2403 - return {
2404 - isMet: terms[method]((term) => {
2405 - const result = isDependency(term) ? isDependencyMet(term, values).isMet : evaluateTerm(term, extractValue(term.path, values, term.nestedPath)?.value);
2406 - if (!result) failingDependencies.push(term);
2407 - return result;
2408 - }),
2409 - failingDependencies
2410 - };
2411 - }
2412 - function evaluateTerm(term, actualValue) {
2413 - const { value: valueToCompare, operator } = term;
2414 - switch (operator) {
2415 - case "eq":
2416 - case "ne": return actualValue === valueToCompare === ("eq" === operator);
2417 - case "gt":
2418 - case "lte":
2419 - if (!isNumber(actualValue) || !isNumber(valueToCompare)) return false;
2420 - return Number(actualValue) > Number(valueToCompare) === ("gt" === operator);
2421 - case "lt":
2422 - case "gte":
2423 - if (!isNumber(actualValue) || !isNumber(valueToCompare)) return false;
2424 - return Number(actualValue) < Number(valueToCompare) === ("lt" === operator);
2425 - case "in":
2426 - case "nin":
2427 - if (!Array.isArray(valueToCompare)) return false;
2428 - return valueToCompare.includes(actualValue) === ("in" === operator);
2429 - case "contains":
2430 - case "ncontains":
2431 - if (("string" !== typeof actualValue || "string" !== typeof valueToCompare) && !Array.isArray(actualValue)) return false;
2432 - const transformedValue = Array.isArray(actualValue) ? actualValue.map((item) => isTransformable(item) ? item.value : item) : actualValue;
2433 - return "contains" === operator === transformedValue.includes(valueToCompare);
2434 - case "exists":
2435 - case "not_exist": return "exists" === operator === (!!actualValue || 0 === actualValue || false === actualValue);
2436 - default: return true;
2437 - }
2438 - }
2439 - function isNumber(value) {
2440 - return typeof value === "number" && !isNaN(value);
2441 - }
2442 - function getRelationMethod(relation) {
2443 - switch (relation) {
2444 - case "or": return "some";
2445 - case "and": return "every";
2446 - default: throw new Error(`Relation not supported ${relation}`);
2447 - }
2448 - }
2449 - function extractValue(path, elementValues, nestedPath = [], options = {}) {
2450 - const { unwrapOverridableLeaf = true } = options;
2451 - let resolved = path.reduce((acc, key, index) => {
2452 - const value = acc?.[key];
2453 - if (index === path.length - 1) return value;
2454 - if (isOverridable(value)) {
2455 - const inner = value.value.origin_value;
2456 - return isTransformable(inner) ? inner.value ?? null : inner;
2457 - }
2458 - if (isTransformable(value)) return value.value ?? null;
2459 - return value;
2460 - }, elementValues);
2461 - if (unwrapOverridableLeaf && resolved && isOverridable(resolved)) resolved = resolved.value.origin_value ?? null;
2462 - if (!nestedPath?.length) return resolved;
2463 - return {
2464 - $$type: "unknown",
2465 - value: nestedPath.reduce((acc, key) => acc?.[key], resolved?.value)
2466 - };
2467 - }
2468 - function isDependency(term) {
2469 - return "terms" in term;
2470 - }
2471 -
2472 -//#endregion
2473 -//#region packages/packages/libs/editor-props/src/utils/parse-html-children.ts
2474 - var INLINE_ELEMENTS = /* @__PURE__ */ new Set([
2475 - "span",
2476 - "b",
2477 - "strong",
2478 - "i",
2479 - "em",
2480 - "u",
2481 - "a",
2482 - "del",
2483 - "sup",
2484 - "sub",
2485 - "s"
2486 - ]);
2487 - function generateElementId() {
2488 - return `e-${Date.now().toString(36)}-${Math.random().toString(36).substring(2, 9)}`;
2489 - }
2490 - function traverseChildren(node) {
2491 - const result = [];
2492 - for (const child of Array.from(node.children)) {
2493 - const tagName = child.tagName.toLowerCase();
2494 - if (!INLINE_ELEMENTS.has(tagName)) {
2495 - result.push(...traverseChildren(child));
2496 - continue;
2497 - }
2498 - let id = child.getAttribute("id");
2499 - if (!id) {
2500 - id = generateElementId();
2501 - child.setAttribute("id", id);
2502 - }
2503 - const childElement = {
2504 - id,
2505 - type: tagName
2506 - };
2507 - const textContent = child.textContent?.trim();
2508 - if (textContent) childElement.content = textContent;
2509 - const nestedChildren = traverseChildren(child);
2510 - if (nestedChildren.length > 0) childElement.children = nestedChildren;
2511 - result.push(childElement);
2512 - }
2513 - return result;
2514 - }
2515 - function parseHtmlChildren(html) {
2516 - if (!html) return {
2517 - content: html,
2518 - children: []
2519 - };
2520 - const doc = new DOMParser().parseFromString(`<body>${html}</body>`, "text/html");
2521 - const parserError = doc.querySelector("parsererror");
2522 - if (parserError) {
2523 - console.warn("HTML parsing error, returning original content:", parserError.textContent);
2524 - return {
2525 - content: html,
2526 - children: []
2527 - };
2528 - }
2529 - const body = doc.body;
2530 - const children = traverseChildren(body);
2531 - return {
2532 - content: body.innerHTML,
2533 - children
2534 - };
2535 - }
2536 -
2537 -//#endregion
2538 -//#region packages/packages/libs/editor-props/src/index.ts
2539 - var src_exports = /* @__PURE__ */ __exportAll({
2540 - CLASSES_PROP_KEY: () => CLASSES_PROP_KEY,
2541 - DateTimePropTypeUtil: () => DateTimePropTypeUtil,
2542 - Schema: () => Schema,
2543 - backdropFilterPropTypeUtil: () => backdropFilterPropTypeUtil,
2544 - backgroundColorOverlayPropTypeUtil: () => backgroundColorOverlayPropTypeUtil,
2545 - backgroundGradientOverlayPropTypeUtil: () => backgroundGradientOverlayPropTypeUtil,
2546 - backgroundImageOverlayPropTypeUtil: () => backgroundImageOverlayPropTypeUtil,
2547 - backgroundImagePositionOffsetPropTypeUtil: () => backgroundImagePositionOffsetPropTypeUtil,
2548 - backgroundImageSizeScalePropTypeUtil: () => backgroundImageSizeScalePropTypeUtil,
2549 - backgroundOverlayItem: () => backgroundOverlayItem,
2550 - backgroundOverlayPropTypeUtil: () => backgroundOverlayPropTypeUtil,
2551 - backgroundPropTypeUtil: () => backgroundPropTypeUtil,
2552 - blurFilterPropTypeUtil: () => blurFilterPropTypeUtil,
2553 - booleanPropTypeUtil: () => booleanPropTypeUtil,
2554 - borderRadiusPropTypeUtil: () => borderRadiusPropTypeUtil,
2555 - borderWidthPropTypeUtil: () => borderWidthPropTypeUtil,
2556 - boxShadowPropTypeUtil: () => boxShadowPropTypeUtil,
2557 - classesPropTypeUtil: () => classesPropTypeUtil,
2558 - colorPropTypeUtil: () => colorPropTypeUtil,
2559 - colorStopPropTypeUtil: () => colorStopPropTypeUtil,
2560 - colorToneFilterPropTypeUtil: () => colorToneFilterPropTypeUtil,
2561 - createArrayPropUtils: () => createArrayPropUtils,
2562 - createPropUtils: () => createPropUtils,
2563 - cssFilterFunctionPropUtil: () => cssFilterFunctionPropUtil,
2564 - dateRangePropTypeUtil: () => dateRangePropTypeUtil,
2565 - dateStringPropTypeUtil: () => dateStringPropTypeUtil,
2566 - dimensionsPropTypeUtil: () => dimensionsPropTypeUtil,
2567 - dropShadowFilterPropTypeUtil: () => dropShadowFilterPropTypeUtil,
2568 - emailPropTypeUtil: () => emailPropTypeUtil,
2569 - emailsPropTypeUtil: () => emailsPropTypeUtil,
2570 - escapedHtmlPropTypeUtil: () => escapedHtmlPropTypeUtil,
2571 - evaluateTerm: () => evaluateTerm,
2572 - extractValue: () => extractValue,
2573 - filterEmptyValues: () => filterEmptyValues,
2574 - filterPropTypeUtil: () => filterPropTypeUtil,
2575 - flexPropTypeUtil: () => flexPropTypeUtil,
2576 - fontFamilyPropTypeUtil: () => fontFamilyPropTypeUtil,
2577 - getPropSchemaFromCache: () => getPropSchemaFromCache,
2578 - gradientColorStopPropTypeUtil: () => gradientColorStopPropTypeUtil,
2579 - gridTrackSizePropTypeUtil: () => gridTrackSizePropTypeUtil,
2580 - htmlPropTypeUtil: () => htmlPropTypeUtil,
2581 - htmlV2PropTypeUtil: () => htmlV2PropTypeUtil,
2582 - htmlV3PropTypeUtil: () => htmlV3PropTypeUtil,
2583 - hueRotateFilterPropTypeUtil: () => hueRotateFilterPropTypeUtil,
2584 - iconPropTypeUtil: () => iconPropTypeUtil,
2585 - imageAttachmentIdPropType: () => imageAttachmentIdPropType,
2586 - imagePropTypeUtil: () => imagePropTypeUtil,
2587 - imageSrcPropTypeUtil: () => imageSrcPropTypeUtil,
2588 - intensityFilterPropTypeUtil: () => intensityFilterPropTypeUtil,
2589 - isDependency: () => isDependency,
2590 - isDependencyMet: () => isDependencyMet,
2591 - isEmpty: () => isEmpty,
2592 - isOverridable: () => isOverridable,
2593 - isTransformable: () => isTransformable,
2594 - keyValuePropTypeUtil: () => keyValuePropTypeUtil,
2595 - layoutDirectionPropTypeUtil: () => layoutDirectionPropTypeUtil,
2596 - linkPropTypeUtil: () => linkPropTypeUtil,
2597 - mergeProps: () => mergeProps,
2598 - moveTransformPropTypeUtil: () => moveTransformPropTypeUtil,
2599 - numberPropTypeUtil: () => numberPropTypeUtil,
2600 - numberRangePropTypeUtil: () => numberRangePropTypeUtil,
2601 - parseHtmlChildren: () => parseHtmlChildren,
2602 - perspectiveOriginPropTypeUtil: () => perspectiveOriginPropTypeUtil,
2603 - positionPropTypeUtil: () => positionPropTypeUtil,
2604 - queryFilterArrayPropTypeUtil: () => queryFilterArrayPropTypeUtil,
2605 - queryFilterPropTypeUtil: () => queryFilterPropTypeUtil,
2606 - queryPropTypeUtil: () => queryPropTypeUtil,
2607 - rewrapOverridableValue: () => rewrapOverridableValue,
2608 - rotateTransformPropTypeUtil: () => rotateTransformPropTypeUtil,
2609 - scaleTransformPropTypeUtil: () => scaleTransformPropTypeUtil,
2610 - selectionSizePropTypeUtil: () => selectionSizePropTypeUtil,
2611 - shadowPropTypeUtil: () => shadowPropTypeUtil,
2612 - sizePropTypeUtil: () => sizePropTypeUtil,
2613 - skewTransformPropTypeUtil: () => skewTransformPropTypeUtil,
2614 - spanPropTypeUtil: () => spanPropTypeUtil,
2615 - stringArrayPropTypeUtil: () => stringArrayPropTypeUtil,
2616 - stringPropTypeUtil: () => stringPropTypeUtil,
2617 - strokePropTypeUtil: () => strokePropTypeUtil,
2618 - svgSrcPropTypeUtil: () => svgSrcPropTypeUtil,
2619 - timeRangePropTypeUtil: () => timeRangePropTypeUtil,
2620 - timeStringPropTypeUtil: () => timeStringPropTypeUtil,
2621 - transformFunctionsPropTypeUtil: () => transformFunctionsPropTypeUtil,
2622 - transformOriginPropTypeUtil: () => transformOriginPropTypeUtil,
2623 - transformPropTypeUtil: () => transformPropTypeUtil,
2624 - urlPropTypeUtil: () => urlPropTypeUtil,
2625 - videoAttachmentIdPropType: () => videoAttachmentIdPropType,
2626 - videoSrcPropTypeUtil: () => videoSrcPropTypeUtil
2627 - });
2628 - var Schema = {
2629 - jsonSchemaToPropType,
2630 - propTypeToJsonSchema,
2631 - adjustLlmPropValueSchema,
2632 - isPropKeyConfigurable,
2633 - nonConfigurablePropKeys,
2634 - configurableKeys,
2635 - validatePropValue,
2636 - enrichWithIntention,
2637 - removeIntention,
2638 - setDynamicTagNamesResolver
2639 - };
2640 -
2641 -//#endregion
2642 -//#region \0elementor-package-library-entry
2643 - (window.elementorV2 = window.elementorV2 || {}).editorProps = src_exports;
2644 -
2645 -//#endregion
2646 -})(elementorV2.schema);
2647 -window.elementorV2.editorProps?.init?.();
2648 -//# sourceMappingURL=editor-props.js.map
1 +/*! For license information please see editor-props.js.LICENSE.txt */
2 +!function(){"use strict";var r={"@elementor/schema":function(r){r.exports=window.elementorV2.schema}},e={};function t(n){var o=e[n];if(void 0!==o)return o.exports;var i=e[n]={exports:{}};return r[n](i,i.exports,t),i.exports}t.d=function(r,e){for(var n in e)t.o(e,n)&&!t.o(r,n)&&Object.defineProperty(r,n,{enumerable:!0,get:e[n]})},t.o=function(r,e){return Object.prototype.hasOwnProperty.call(r,e)},t.r=function(r){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(r,"__esModule",{value:!0})};var n={};!function(){t.r(n),t.d(n,{backgroundColorOverlayPropTypeUtil:function(){return O},backgroundImageOverlayPropTypeUtil:function(){return j},backgroundOverlayPropTypeUtil:function(){return k},backgroundPropTypeUtil:function(){return T},booleanPropTypeUtil:function(){return x},borderRadiusPropTypeUtil:function(){return a},borderWidthPropTypeUtil:function(){return l},boxShadowPropTypeUtil:function(){return u},classesPropTypeUtil:function(){return c},colorPropTypeUtil:function(){return s},createPropUtils:function(){return e},dimensionsPropTypeUtil:function(){return f},imageAttachmentIdPropType:function(){return b},imagePropTypeUtil:function(){return p},imageSrcPropTypeUtil:function(){return d},isTransformable:function(){return S},layoutDirectionPropTypeUtil:function(){return v},linkPropTypeUtil:function(){return h},numberPropTypeUtil:function(){return y},shadowPropTypeUtil:function(){return i},sizePropTypeUtil:function(){return m},stringPropTypeUtil:function(){return z},strokePropTypeUtil:function(){return g},urlPropTypeUtil:function(){return P}});var r=t("@elementor/schema");function e(e,t){const n=r.z.strictObject({$$type:r.z.literal(e),value:t,disabled:r.z.boolean().optional()});function o(r){return n.safeParse(r).success}return{extract:function(r){return o(r)?r.value:null},isValid:o,create:function(r,t){const n="function"==typeof r?r:()=>r,{base:i,disabled:u}=t||{};if(!i)return{$$type:e,value:n(),...u&&{disabled:u}};if(!o(i))throw new Error(`Cannot create prop based on invalid value: ${JSON.stringify(i)}`);return{$$type:e,value:n(i.value),...u&&{disabled:u}}},schema:n,key:e}}var o=r.z.any().nullable(),i=e("shadow",r.z.strictObject({position:o,hOffset:o,vOffset:o,blur:o,spread:o,color:o})),u=e("box-shadow",r.z.array(i.schema)),a=e("border-radius",r.z.strictObject({"top-left":o,"top-right":o,"bottom-right":o,"bottom-left":o})),l=e("border-width",r.z.strictObject({top:o,right:o,bottom:o,left:o})),c=e("classes",r.z.array(r.z.string().regex(/^[a-z][a-z-_0-9]*$/i))),s=e("color",r.z.string()),p=e("image",r.z.strictObject({src:o,size:o})),b=e("image-attachment-id",r.z.number()),d=e("image-src",r.z.strictObject({id:o,url:r.z.null()}).or(r.z.strictObject({id:r.z.null(),url:o}))),f=e("dimensions",r.z.strictObject({top:o,right:o,bottom:o,left:o})),y=e("number",r.z.number().nullable()),m=e("size",r.z.strictObject({unit:r.z.enum(["px","em","rem","%","vw","vh"]),size:r.z.number()})),z=e("string",r.z.string().nullable()),g=e("stroke",r.z.strictObject({color:o,width:o})),P=e("url",r.z.string().nullable()),v=e("layout-direction",r.z.object({row:r.z.any(),column:r.z.any()})),h=e("link",r.z.strictObject({href:o,isTargetBlank:o})),T=e("background",r.z.strictObject({color:o,"background-overlay":o})),O=e("background-color-overlay",r.z.string()),U=e("background-gradient-overlay",o),j=e("background-image-overlay",o),w=O.schema.or(U.schema).or(j.schema),k=e("background-overlay",r.z.array(w)),x=e("boolean",r.z.boolean().nullable()),$=r.z.object({$$type:r.z.string(),value:r.z.any(),disabled:r.z.boolean().optional()}),S=r=>$.safeParse(r).success}(),(window.elementorV2=window.elementorV2||{}).editorProps=n}();