@orion-studios/payload-studio 0.6.0-beta.47 → 0.6.0-beta.48
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/builder-v2/client.js +47 -0
- package/dist/builder-v2/client.mjs +47 -0
- package/dist/builder-v2/index.js +12 -0
- package/dist/builder-v2/index.mjs +12 -0
- package/package.json +1 -1
|
@@ -190,6 +190,18 @@ var parseAttributes = (value) => {
|
|
|
190
190
|
if (name === "data-orion-component" || name === "data-orion-id") {
|
|
191
191
|
continue;
|
|
192
192
|
}
|
|
193
|
+
if (name === "data-orion-props") {
|
|
194
|
+
const decoded = decodeHtmlAttribute(rawValue);
|
|
195
|
+
try {
|
|
196
|
+
const parsed = JSON.parse(decoded);
|
|
197
|
+
if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
|
|
198
|
+
Object.assign(props, parsed);
|
|
199
|
+
}
|
|
200
|
+
} catch {
|
|
201
|
+
props.propsJson = decoded;
|
|
202
|
+
}
|
|
203
|
+
continue;
|
|
204
|
+
}
|
|
193
205
|
const propName = name.replace(/^data-orion-/, "").replace(/^data-/, "").replace(/-([a-z])/g, (_, char) => char.toUpperCase());
|
|
194
206
|
props[propName] = decodeHtmlAttribute(rawValue);
|
|
195
207
|
}
|
|
@@ -577,6 +589,31 @@ var normalizeDefinition = (type, value) => {
|
|
|
577
589
|
type: value.type || type
|
|
578
590
|
};
|
|
579
591
|
};
|
|
592
|
+
var decodeHtmlAttribute2 = (value) => typeof value === "string" ? value.replace(/"/g, '"').replace(/'/g, "'").replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">") : "";
|
|
593
|
+
var attrToPropName = (name) => name.replace(/^data-orion-/, "").replace(/^data-/, "").replace(/-([a-z])/g, (_, char) => char.toUpperCase());
|
|
594
|
+
var propsFromAttributes = (attributes = {}) => {
|
|
595
|
+
const props = {};
|
|
596
|
+
Object.keys(attributes).forEach((name) => {
|
|
597
|
+
if (!name.startsWith("data-") || name === "data-orion-component" || name === "data-orion-id") {
|
|
598
|
+
return;
|
|
599
|
+
}
|
|
600
|
+
const value = decodeHtmlAttribute2(attributes[name]);
|
|
601
|
+
if (name === "data-orion-props") {
|
|
602
|
+
try {
|
|
603
|
+
const parsed = JSON.parse(value);
|
|
604
|
+
if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
|
|
605
|
+
Object.assign(props, parsed);
|
|
606
|
+
}
|
|
607
|
+
} catch {
|
|
608
|
+
props.propsJson = value;
|
|
609
|
+
}
|
|
610
|
+
return;
|
|
611
|
+
}
|
|
612
|
+
props[attrToPropName(name)] = value;
|
|
613
|
+
});
|
|
614
|
+
return props;
|
|
615
|
+
};
|
|
616
|
+
var previewForDefinition = (definition, props) => definition.editorPreview?.(props) || `<div class="orion-builder-v2-dynamic-placeholder"><strong>${definition.label}</strong></div>`;
|
|
580
617
|
var registerProjectDynamicComponents = (editor, adapter) => {
|
|
581
618
|
const components = adapter?.components || {};
|
|
582
619
|
Object.keys(components).forEach((type) => {
|
|
@@ -609,6 +646,16 @@ var registerProjectDynamicComponents = (editor, adapter) => {
|
|
|
609
646
|
}))
|
|
610
647
|
]
|
|
611
648
|
}
|
|
649
|
+
},
|
|
650
|
+
view: {
|
|
651
|
+
init() {
|
|
652
|
+
this.listenTo(this.model, "change:attributes", this.renderPreview);
|
|
653
|
+
},
|
|
654
|
+
renderPreview() {
|
|
655
|
+
const attributes = this.model.getAttributes?.() || {};
|
|
656
|
+
const props = propsFromAttributes(attributes);
|
|
657
|
+
this.model.components(previewForDefinition(definition, props));
|
|
658
|
+
}
|
|
612
659
|
}
|
|
613
660
|
});
|
|
614
661
|
editor.Blocks.add(`orion-dynamic-${type}`, {
|
|
@@ -66,6 +66,18 @@ var parseAttributes = (value) => {
|
|
|
66
66
|
if (name === "data-orion-component" || name === "data-orion-id") {
|
|
67
67
|
continue;
|
|
68
68
|
}
|
|
69
|
+
if (name === "data-orion-props") {
|
|
70
|
+
const decoded = decodeHtmlAttribute(rawValue);
|
|
71
|
+
try {
|
|
72
|
+
const parsed = JSON.parse(decoded);
|
|
73
|
+
if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
|
|
74
|
+
Object.assign(props, parsed);
|
|
75
|
+
}
|
|
76
|
+
} catch {
|
|
77
|
+
props.propsJson = decoded;
|
|
78
|
+
}
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
69
81
|
const propName = name.replace(/^data-orion-/, "").replace(/^data-/, "").replace(/-([a-z])/g, (_, char) => char.toUpperCase());
|
|
70
82
|
props[propName] = decodeHtmlAttribute(rawValue);
|
|
71
83
|
}
|
|
@@ -453,6 +465,31 @@ var normalizeDefinition = (type, value) => {
|
|
|
453
465
|
type: value.type || type
|
|
454
466
|
};
|
|
455
467
|
};
|
|
468
|
+
var decodeHtmlAttribute2 = (value) => typeof value === "string" ? value.replace(/"/g, '"').replace(/'/g, "'").replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">") : "";
|
|
469
|
+
var attrToPropName = (name) => name.replace(/^data-orion-/, "").replace(/^data-/, "").replace(/-([a-z])/g, (_, char) => char.toUpperCase());
|
|
470
|
+
var propsFromAttributes = (attributes = {}) => {
|
|
471
|
+
const props = {};
|
|
472
|
+
Object.keys(attributes).forEach((name) => {
|
|
473
|
+
if (!name.startsWith("data-") || name === "data-orion-component" || name === "data-orion-id") {
|
|
474
|
+
return;
|
|
475
|
+
}
|
|
476
|
+
const value = decodeHtmlAttribute2(attributes[name]);
|
|
477
|
+
if (name === "data-orion-props") {
|
|
478
|
+
try {
|
|
479
|
+
const parsed = JSON.parse(value);
|
|
480
|
+
if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
|
|
481
|
+
Object.assign(props, parsed);
|
|
482
|
+
}
|
|
483
|
+
} catch {
|
|
484
|
+
props.propsJson = value;
|
|
485
|
+
}
|
|
486
|
+
return;
|
|
487
|
+
}
|
|
488
|
+
props[attrToPropName(name)] = value;
|
|
489
|
+
});
|
|
490
|
+
return props;
|
|
491
|
+
};
|
|
492
|
+
var previewForDefinition = (definition, props) => definition.editorPreview?.(props) || `<div class="orion-builder-v2-dynamic-placeholder"><strong>${definition.label}</strong></div>`;
|
|
456
493
|
var registerProjectDynamicComponents = (editor, adapter) => {
|
|
457
494
|
const components = adapter?.components || {};
|
|
458
495
|
Object.keys(components).forEach((type) => {
|
|
@@ -485,6 +522,16 @@ var registerProjectDynamicComponents = (editor, adapter) => {
|
|
|
485
522
|
}))
|
|
486
523
|
]
|
|
487
524
|
}
|
|
525
|
+
},
|
|
526
|
+
view: {
|
|
527
|
+
init() {
|
|
528
|
+
this.listenTo(this.model, "change:attributes", this.renderPreview);
|
|
529
|
+
},
|
|
530
|
+
renderPreview() {
|
|
531
|
+
const attributes = this.model.getAttributes?.() || {};
|
|
532
|
+
const props = propsFromAttributes(attributes);
|
|
533
|
+
this.model.components(previewForDefinition(definition, props));
|
|
534
|
+
}
|
|
488
535
|
}
|
|
489
536
|
});
|
|
490
537
|
editor.Blocks.add(`orion-dynamic-${type}`, {
|
package/dist/builder-v2/index.js
CHANGED
|
@@ -200,6 +200,18 @@ var parseAttributes = (value) => {
|
|
|
200
200
|
if (name === "data-orion-component" || name === "data-orion-id") {
|
|
201
201
|
continue;
|
|
202
202
|
}
|
|
203
|
+
if (name === "data-orion-props") {
|
|
204
|
+
const decoded = decodeHtmlAttribute(rawValue);
|
|
205
|
+
try {
|
|
206
|
+
const parsed = JSON.parse(decoded);
|
|
207
|
+
if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
|
|
208
|
+
Object.assign(props, parsed);
|
|
209
|
+
}
|
|
210
|
+
} catch {
|
|
211
|
+
props.propsJson = decoded;
|
|
212
|
+
}
|
|
213
|
+
continue;
|
|
214
|
+
}
|
|
203
215
|
const propName = name.replace(/^data-orion-/, "").replace(/^data-/, "").replace(/-([a-z])/g, (_, char) => char.toUpperCase());
|
|
204
216
|
props[propName] = decodeHtmlAttribute(rawValue);
|
|
205
217
|
}
|
|
@@ -151,6 +151,18 @@ var parseAttributes = (value) => {
|
|
|
151
151
|
if (name === "data-orion-component" || name === "data-orion-id") {
|
|
152
152
|
continue;
|
|
153
153
|
}
|
|
154
|
+
if (name === "data-orion-props") {
|
|
155
|
+
const decoded = decodeHtmlAttribute(rawValue);
|
|
156
|
+
try {
|
|
157
|
+
const parsed = JSON.parse(decoded);
|
|
158
|
+
if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
|
|
159
|
+
Object.assign(props, parsed);
|
|
160
|
+
}
|
|
161
|
+
} catch {
|
|
162
|
+
props.propsJson = decoded;
|
|
163
|
+
}
|
|
164
|
+
continue;
|
|
165
|
+
}
|
|
154
166
|
const propName = name.replace(/^data-orion-/, "").replace(/^data-/, "").replace(/-([a-z])/g, (_, char) => char.toUpperCase());
|
|
155
167
|
props[propName] = decodeHtmlAttribute(rawValue);
|
|
156
168
|
}
|
package/package.json
CHANGED