@cocoar/vue-page-builder 2.19.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/IDP_INTEGRATION.md +350 -0
- package/README.md +498 -169
- package/dist/BuilderElementCodeDialog-DXGNzleE.js +64 -0
- package/dist/BuilderExpressionDialog-yIfwYgXD.js +61 -0
- package/dist/BuilderLogicPanel-C9urz5Cd.js +68 -0
- package/dist/BuilderPageRootCodeDialog-CQsg_ozW.js +61 -0
- package/dist/CoarPageBuilder.vue.d.ts +71 -1
- package/dist/CoarPageBuilder.vue.d.ts.map +1 -1
- package/dist/CoarPageRenderer.vue.d.ts +36 -1
- package/dist/CoarPageRenderer.vue.d.ts.map +1 -1
- package/dist/PageNode.vue.d.ts +9 -1
- package/dist/PageNode.vue.d.ts.map +1 -1
- package/dist/VisualMarkupInspector-CmAOc-CH.js +54 -0
- package/dist/_plugin-vue_export-helper-BTgDAbhb.js +8 -0
- package/dist/actionValues.d.ts +21 -0
- package/dist/actionValues.d.ts.map +1 -0
- package/dist/assets/pageScriptRuntime.worker-Cll8Lm_I.js +25 -0
- package/dist/builder/BuilderCanvas.vue.d.ts +31 -1
- package/dist/builder/BuilderCanvas.vue.d.ts.map +1 -1
- package/dist/builder/BuilderCanvasNode.vue.d.ts.map +1 -1
- package/dist/builder/BuilderCompositionsPanel.vue.d.ts +3 -0
- package/dist/builder/BuilderCompositionsPanel.vue.d.ts.map +1 -0
- package/dist/builder/BuilderElementCodeDialog.vue.d.ts +14 -0
- package/dist/builder/BuilderElementCodeDialog.vue.d.ts.map +1 -0
- package/dist/builder/BuilderExpressionDialog.vue.d.ts +11 -0
- package/dist/builder/BuilderExpressionDialog.vue.d.ts.map +1 -0
- package/dist/builder/BuilderFxButton.vue.d.ts +28 -0
- package/dist/builder/BuilderFxButton.vue.d.ts.map +1 -0
- package/dist/builder/BuilderLogicPanel.vue.d.ts +3 -0
- package/dist/builder/BuilderLogicPanel.vue.d.ts.map +1 -0
- package/dist/builder/BuilderOutline.vue.d.ts.map +1 -1
- package/dist/builder/BuilderOutlineNode.vue.d.ts.map +1 -1
- package/dist/builder/BuilderPageRootCodeDialog.vue.d.ts +13 -0
- package/dist/builder/BuilderPageRootCodeDialog.vue.d.ts.map +1 -0
- package/dist/builder/BuilderPalette.vue.d.ts +3 -0
- package/dist/builder/BuilderPalette.vue.d.ts.map +1 -0
- package/dist/builder/BuilderPropsPanel.vue.d.ts.map +1 -1
- package/dist/builder/BuilderTranslationsPanel.vue.d.ts +6 -0
- package/dist/builder/BuilderTranslationsPanel.vue.d.ts.map +1 -0
- package/dist/builder/boxSides.d.ts +30 -0
- package/dist/builder/boxSides.d.ts.map +1 -0
- package/dist/builder/builderContext.d.ts +46 -4
- package/dist/builder/builderContext.d.ts.map +1 -1
- package/dist/builder/expressionAuthoring.d.ts +7 -0
- package/dist/builder/expressionAuthoring.d.ts.map +1 -0
- package/dist/builder/nodeDefaults.d.ts +10 -5
- package/dist/builder/nodeDefaults.d.ts.map +1 -1
- package/dist/builder/pageCodeAuthoring.d.ts +11 -0
- package/dist/builder/pageCodeAuthoring.d.ts.map +1 -0
- package/dist/builder/props/ActionPropsEditor.vue.d.ts +9 -0
- package/dist/builder/props/ActionPropsEditor.vue.d.ts.map +1 -0
- package/dist/builder/props/BuilderViewportControl.vue.d.ts +23 -0
- package/dist/builder/props/BuilderViewportControl.vue.d.ts.map +1 -0
- package/dist/builder/props/BuilderZoomControl.vue.d.ts +24 -0
- package/dist/builder/props/BuilderZoomControl.vue.d.ts.map +1 -0
- package/dist/builder/props/CompoundLengthProperty.vue.d.ts +20 -0
- package/dist/builder/props/CompoundLengthProperty.vue.d.ts.map +1 -0
- package/dist/builder/props/StyleProps.vue.d.ts +1 -0
- package/dist/builder/props/StyleProps.vue.d.ts.map +1 -1
- package/dist/builder/schemaMigrateV1.d.ts +7 -0
- package/dist/builder/schemaMigrateV1.d.ts.map +1 -1
- package/dist/builder/schemaNormalize.d.ts.map +1 -1
- package/dist/builder/{useSchemaValidation.d.ts → useAuthoringFindings.d.ts} +8 -8
- package/dist/builder/useAuthoringFindings.d.ts.map +1 -0
- package/dist/builder/useBuilderDnd.d.ts +8 -1
- package/dist/builder/useBuilderDnd.d.ts.map +1 -1
- package/dist/builder/useCanvasZoom.d.ts +50 -0
- package/dist/builder/useCanvasZoom.d.ts.map +1 -0
- package/dist/builder/usePageBuilder.d.ts +2 -0
- package/dist/builder/usePageBuilder.d.ts.map +1 -1
- package/dist/builder/usePageCompositions.d.ts +71 -0
- package/dist/builder/usePageCompositions.d.ts.map +1 -0
- package/dist/builderContext-B3rX2dxZ.js +4 -0
- package/dist/compositions.d.ts +79 -0
- package/dist/compositions.d.ts.map +1 -0
- package/dist/conditions.d.ts +8 -0
- package/dist/conditions.d.ts.map +1 -0
- package/dist/context.d.ts +17 -3
- package/dist/context.d.ts.map +1 -1
- package/dist/documentValidation.d.ts +12 -0
- package/dist/documentValidation.d.ts.map +1 -0
- package/dist/elements/builtins.d.ts.map +1 -1
- package/dist/elements/button/ButtonInspector.vue.d.ts.map +1 -1
- package/dist/elements/button/ButtonRenderer.vue.d.ts.map +1 -1
- package/dist/elements/button/index.d.ts +2 -2
- package/dist/elements/button/index.d.ts.map +1 -1
- package/dist/elements/card/CardInspector.vue.d.ts.map +1 -1
- package/dist/elements/card/index.d.ts.map +1 -1
- package/dist/elements/checkbox/CheckboxDefaultInput.vue.d.ts.map +1 -1
- package/dist/elements/checkbox/CheckboxInspector.vue.d.ts.map +1 -1
- package/dist/elements/checkbox/CheckboxRenderer.vue.d.ts.map +1 -1
- package/dist/elements/checkbox/index.d.ts.map +1 -1
- package/dist/elements/date-input/DateInputDefaultInput.vue.d.ts.map +1 -1
- package/dist/elements/date-input/DateInputInspector.vue.d.ts.map +1 -1
- package/dist/elements/date-input/index.d.ts.map +1 -1
- package/dist/elements/datetime-input/DateTimeInputDefaultInput.vue.d.ts.map +1 -1
- package/dist/elements/datetime-input/DateTimeInputInspector.vue.d.ts.map +1 -1
- package/dist/elements/datetime-input/index.d.ts.map +1 -1
- package/dist/elements/feedback/FeedbackInspector.vue.d.ts +8 -0
- package/dist/elements/feedback/FeedbackInspector.vue.d.ts.map +1 -0
- package/dist/elements/feedback/FeedbackPreview.vue.d.ts +7 -0
- package/dist/elements/feedback/FeedbackPreview.vue.d.ts.map +1 -0
- package/dist/elements/{stack/StackInspector.vue.d.ts → feedback/FeedbackRenderer.vue.d.ts} +3 -4
- package/dist/elements/feedback/FeedbackRenderer.vue.d.ts.map +1 -0
- package/dist/elements/feedback/index.d.ts +6 -0
- package/dist/elements/feedback/index.d.ts.map +1 -0
- package/dist/elements/heading/HeadingInspector.vue.d.ts.map +1 -1
- package/dist/elements/heading/index.d.ts.map +1 -1
- package/dist/elements/image/ImageInspector.vue.d.ts.map +1 -1
- package/dist/elements/image/index.d.ts.map +1 -1
- package/dist/elements/link/LinkInspector.vue.d.ts +1 -1
- package/dist/elements/link/LinkInspector.vue.d.ts.map +1 -1
- package/dist/elements/link/index.d.ts +1 -2
- package/dist/elements/link/index.d.ts.map +1 -1
- package/dist/elements/multi-select/MultiSelectDefaultInput.vue.d.ts.map +1 -1
- package/dist/elements/multi-select/MultiSelectInspector.vue.d.ts.map +1 -1
- package/dist/elements/multi-select/index.d.ts.map +1 -1
- package/dist/elements/note/NoteInspector.vue.d.ts.map +1 -1
- package/dist/elements/number-input/NumberInputDefaultInput.vue.d.ts.map +1 -1
- package/dist/elements/number-input/NumberInputInspector.vue.d.ts.map +1 -1
- package/dist/elements/number-input/index.d.ts.map +1 -1
- package/dist/elements/otp-input/OtpInputInspector.vue.d.ts.map +1 -1
- package/dist/elements/otp-input/index.d.ts.map +1 -1
- package/dist/elements/paragraph/index.d.ts.map +1 -1
- package/dist/elements/password-input/PasswordInputInspector.vue.d.ts.map +1 -1
- package/dist/elements/password-input/index.d.ts.map +1 -1
- package/dist/elements/previewUtils.d.ts.map +1 -1
- package/dist/elements/radio-group/RadioGroupDefaultInput.vue.d.ts.map +1 -1
- package/dist/elements/radio-group/RadioGroupInspector.vue.d.ts.map +1 -1
- package/dist/elements/radio-group/index.d.ts.map +1 -1
- package/dist/elements/registry.d.ts +265 -2
- package/dist/elements/registry.d.ts.map +1 -1
- package/dist/elements/repeat/RepeatInspector.vue.d.ts +8 -0
- package/dist/elements/repeat/RepeatInspector.vue.d.ts.map +1 -0
- package/dist/elements/repeat/RepeatRenderer.vue.d.ts +29 -0
- package/dist/elements/repeat/RepeatRenderer.vue.d.ts.map +1 -0
- package/dist/elements/repeat/index.d.ts +10 -0
- package/dist/elements/repeat/index.d.ts.map +1 -0
- package/dist/elements/section/SectionInspector.vue.d.ts.map +1 -1
- package/dist/elements/section/index.d.ts.map +1 -1
- package/dist/elements/select/SelectDefaultInput.vue.d.ts.map +1 -1
- package/dist/elements/select/SelectInspector.vue.d.ts.map +1 -1
- package/dist/elements/select/index.d.ts.map +1 -1
- package/dist/elements/spacer/SpacerInspector.vue.d.ts.map +1 -1
- package/dist/elements/stack/StackRenderer.vue.d.ts.map +1 -1
- package/dist/elements/stack/index.d.ts.map +1 -1
- package/dist/elements/switch/SwitchDefaultInput.vue.d.ts.map +1 -1
- package/dist/elements/switch/SwitchInspector.vue.d.ts.map +1 -1
- package/dist/elements/switch/index.d.ts.map +1 -1
- package/dist/elements/text-input/TextInputInspector.vue.d.ts.map +1 -1
- package/dist/elements/text-input/index.d.ts.map +1 -1
- package/dist/elements/usePageElement.d.ts +6 -2
- package/dist/elements/usePageElement.d.ts.map +1 -1
- package/dist/elements/visual-markup/VisualMarkupInspector.vue.d.ts +10 -0
- package/dist/elements/visual-markup/VisualMarkupInspector.vue.d.ts.map +1 -0
- package/dist/elements/visual-markup/VisualMarkupPreview.vue.d.ts +7 -0
- package/dist/elements/visual-markup/VisualMarkupPreview.vue.d.ts.map +1 -0
- package/dist/elements/visual-markup/VisualMarkupRenderer.vue.d.ts +7 -0
- package/dist/elements/visual-markup/VisualMarkupRenderer.vue.d.ts.map +1 -0
- package/dist/elements/visual-markup/index.d.ts +6 -0
- package/dist/elements/visual-markup/index.d.ts.map +1 -0
- package/dist/elements/visual-markup/visualDocument.d.ts +13 -0
- package/dist/elements/visual-markup/visualDocument.d.ts.map +1 -0
- package/dist/expressionAuthoring-7iAyadA3.js +74 -0
- package/dist/index.css +1 -1
- package/dist/index.d.ts +32 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8571 -3448
- package/dist/pageCode-echPQdna.js +455 -0
- package/dist/pageCode.d.ts +101 -0
- package/dist/pageCode.d.ts.map +1 -0
- package/dist/pageCodeAuthoring-C8grEAUf.js +123 -0
- package/dist/responsive.d.ts +7 -0
- package/dist/responsive.d.ts.map +1 -0
- package/dist/runtime/PageRuntimeHost.d.ts +57 -0
- package/dist/runtime/PageRuntimeHost.d.ts.map +1 -0
- package/dist/runtime/PageScriptRuntime.d.ts +62 -0
- package/dist/runtime/PageScriptRuntime.d.ts.map +1 -0
- package/dist/runtime/pageScriptRuntime.worker.d.ts +1 -0
- package/dist/runtime/pageScriptRuntime.worker.d.ts.map +1 -0
- package/dist/runtime/runtimeProtocol.d.ts +150 -0
- package/dist/runtime/runtimeProtocol.d.ts.map +1 -0
- package/dist/runtime/usePageCodeRuntime.d.ts +32 -0
- package/dist/runtime/usePageCodeRuntime.d.ts.map +1 -0
- package/dist/runtime-worker.js +240 -0
- package/dist/runtimeBindings.d.ts +32 -0
- package/dist/runtimeBindings.d.ts.map +1 -0
- package/dist/runtimeExpressions.d.ts +16 -0
- package/dist/runtimeExpressions.d.ts.map +1 -0
- package/dist/runtimeProtocol-Bg1C-O0c.js +36 -0
- package/dist/runtimeWorkerEntry.d.ts +2 -0
- package/dist/runtimeWorkerEntry.d.ts.map +1 -0
- package/dist/schema.d.ts +298 -31
- package/dist/schema.d.ts.map +1 -1
- package/dist/styleMapping.d.ts +7 -0
- package/dist/styleMapping.d.ts.map +1 -1
- package/dist/translations.d.ts +8 -0
- package/dist/translations.d.ts.map +1 -0
- package/dist/visualDocument-DKjWBfpW.js +139 -0
- package/package.json +24 -6
- package/dist/builder/useSchemaValidation.d.ts.map +0 -1
- package/dist/elements/stack/StackInspector.vue.d.ts.map +0 -1
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { t as e } from "./_plugin-vue_export-helper-BTgDAbhb.js";
|
|
2
|
+
import { c as t, o as n } from "./pageCode-echPQdna.js";
|
|
3
|
+
import { n as r, t as i } from "./pageCodeAuthoring-C8grEAUf.js";
|
|
4
|
+
import { computed as a, createElementBlock as o, createElementVNode as s, createTextVNode as c, createVNode as l, defineComponent as u, openBlock as d, ref as f, toDisplayString as p, unref as m, withCtx as h } from "vue";
|
|
5
|
+
import { CoarButton as g } from "@cocoar/vue-ui";
|
|
6
|
+
import { CoarScriptEditor as _ } from "@cocoar/vue-script-editor";
|
|
7
|
+
//#region src/builder/BuilderElementCodeDialog.vue?vue&type=script&setup=true&lang.ts
|
|
8
|
+
var v = { class: "pb-element-code-dialog" }, y = { class: "pb-element-code-dialog__meta" }, b = { class: "pb-element-code-dialog__editor" }, x = /* @__PURE__ */ e(/* @__PURE__ */ u({
|
|
9
|
+
__name: "BuilderElementCodeDialog",
|
|
10
|
+
props: {
|
|
11
|
+
schema: {},
|
|
12
|
+
node: {},
|
|
13
|
+
source: {},
|
|
14
|
+
stateCode: {},
|
|
15
|
+
config: {},
|
|
16
|
+
hostLibs: {},
|
|
17
|
+
close: { type: Function }
|
|
18
|
+
},
|
|
19
|
+
setup(e) {
|
|
20
|
+
let u = e, x = f(n(u.source)), S = a(() => i(t(u.stateCode), u.node)), C = a(() => [...r(u.schema, u.node, u.config), ...u.hostLibs ?? []]);
|
|
21
|
+
return (t, n) => (d(), o("div", v, [
|
|
22
|
+
s("div", y, [s("div", null, [n[3] ||= s("span", null, "Element", -1), s("strong", null, p(e.node.name) + " · " + p(e.node.type), 1)]), n[4] ||= s("div", null, [s("span", null, "Mutable target"), s("code", null, "element")], -1)]),
|
|
23
|
+
s("div", b, [l(m(_), {
|
|
24
|
+
modelValue: x.value,
|
|
25
|
+
"onUpdate:modelValue": n[0] ||= (e) => x.value = e,
|
|
26
|
+
language: "javascript",
|
|
27
|
+
"script-mode": !0,
|
|
28
|
+
preamble: S.value,
|
|
29
|
+
"extra-libs": C.value,
|
|
30
|
+
height: "clamp(360px, 58vh, 620px)",
|
|
31
|
+
placeholder: "defineElement({ compute, actions })"
|
|
32
|
+
}, null, 8, [
|
|
33
|
+
"modelValue",
|
|
34
|
+
"preamble",
|
|
35
|
+
"extra-libs"
|
|
36
|
+
])]),
|
|
37
|
+
n[7] ||= s("p", { class: "pb-element-code-dialog__hint" }, [
|
|
38
|
+
c(" Locked lines belong to the PageBuilder and cannot be renamed or deleted. Edit only the "),
|
|
39
|
+
s("code", null, "compute"),
|
|
40
|
+
c(" and "),
|
|
41
|
+
s("code", null, "click"),
|
|
42
|
+
c(" bodies between them. Configuration and runtime inputs are separated: "),
|
|
43
|
+
s("code", null, "element.*"),
|
|
44
|
+
c(" is only this element, shared inputs live on "),
|
|
45
|
+
s("code", null, "page.*"),
|
|
46
|
+
c(", and the event payload lives on "),
|
|
47
|
+
s("code", null, "action.payload"),
|
|
48
|
+
c(". ")
|
|
49
|
+
], -1),
|
|
50
|
+
s("footer", null, [l(m(g), {
|
|
51
|
+
variant: "secondary",
|
|
52
|
+
onClick: n[1] ||= (t) => e.close()
|
|
53
|
+
}, {
|
|
54
|
+
default: h(() => [...n[5] ||= [c("Cancel", -1)]]),
|
|
55
|
+
_: 1
|
|
56
|
+
}), l(m(g), { onClick: n[2] ||= (t) => e.close(x.value) }, {
|
|
57
|
+
default: h(() => [...n[6] ||= [c("Apply element code", -1)]]),
|
|
58
|
+
_: 1
|
|
59
|
+
})])
|
|
60
|
+
]));
|
|
61
|
+
}
|
|
62
|
+
}), [["__scopeId", "data-v-037d2ed2"]]);
|
|
63
|
+
//#endregion
|
|
64
|
+
export { x as default };
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { t as e } from "./_plugin-vue_export-helper-BTgDAbhb.js";
|
|
2
|
+
import { i as t, n, t as r } from "./expressionAuthoring-7iAyadA3.js";
|
|
3
|
+
import { computed as i, createElementBlock as a, createElementVNode as o, createTextVNode as s, createVNode as c, defineComponent as l, openBlock as u, ref as d, toDisplayString as f, unref as p, withCtx as m } from "vue";
|
|
4
|
+
import { CoarButton as h } from "@cocoar/vue-ui";
|
|
5
|
+
import { CoarScriptEditor as g } from "@cocoar/vue-script-editor";
|
|
6
|
+
//#region src/builder/BuilderExpressionDialog.vue?vue&type=script&setup=true&lang.ts
|
|
7
|
+
var _ = { class: "pb-expression-dialog" }, v = { class: "pb-expression-dialog__meta" }, y = { class: "pb-expression-dialog__editor" }, b = /* @__PURE__ */ e(/* @__PURE__ */ l({
|
|
8
|
+
__name: "BuilderExpressionDialog",
|
|
9
|
+
props: {
|
|
10
|
+
nodeId: {},
|
|
11
|
+
target: {},
|
|
12
|
+
expression: {},
|
|
13
|
+
config: {},
|
|
14
|
+
close: { type: Function }
|
|
15
|
+
},
|
|
16
|
+
setup(e) {
|
|
17
|
+
let l = e, b = d(l.expression), x = i(() => t(l.config)), S = i(() => n(l.target));
|
|
18
|
+
return (t, n) => (u(), a("div", _, [
|
|
19
|
+
o("div", v, [o("div", null, [n[3] ||= o("span", null, "Property", -1), o("strong", null, f(e.nodeId) + " · " + f(e.target), 1)]), o("div", null, [n[4] ||= o("span", null, "Result", -1), o("code", null, f(S.value), 1)])]),
|
|
20
|
+
o("div", y, [c(p(g), {
|
|
21
|
+
modelValue: b.value,
|
|
22
|
+
"onUpdate:modelValue": n[0] ||= (e) => b.value = e,
|
|
23
|
+
language: "javascript",
|
|
24
|
+
"script-mode": !0,
|
|
25
|
+
preamble: p(r),
|
|
26
|
+
"extra-libs": x.value,
|
|
27
|
+
height: "clamp(320px, 52vh, 520px)",
|
|
28
|
+
placeholder: "Enter a JavaScript expression…"
|
|
29
|
+
}, null, 8, [
|
|
30
|
+
"modelValue",
|
|
31
|
+
"preamble",
|
|
32
|
+
"extra-libs"
|
|
33
|
+
])]),
|
|
34
|
+
n[7] ||= o("p", { class: "pb-expression-dialog__hint" }, [
|
|
35
|
+
s(" Available: "),
|
|
36
|
+
o("code", null, "fields"),
|
|
37
|
+
s(", "),
|
|
38
|
+
o("code", null, "form"),
|
|
39
|
+
s(", "),
|
|
40
|
+
o("code", null, "context"),
|
|
41
|
+
s(", "),
|
|
42
|
+
o("code", null, "resources"),
|
|
43
|
+
s(", "),
|
|
44
|
+
o("code", null, "viewport"),
|
|
45
|
+
s(". IntelliSense shows the fields and context allowed by this page's host configuration. ")
|
|
46
|
+
], -1),
|
|
47
|
+
o("footer", null, [c(p(h), {
|
|
48
|
+
variant: "secondary",
|
|
49
|
+
onClick: n[1] ||= (t) => e.close()
|
|
50
|
+
}, {
|
|
51
|
+
default: m(() => [...n[5] ||= [s("Cancel", -1)]]),
|
|
52
|
+
_: 1
|
|
53
|
+
}), c(p(h), { onClick: n[2] ||= (t) => e.close(b.value) }, {
|
|
54
|
+
default: m(() => [...n[6] ||= [s("Apply expression", -1)]]),
|
|
55
|
+
_: 1
|
|
56
|
+
})])
|
|
57
|
+
]));
|
|
58
|
+
}
|
|
59
|
+
}), [["__scopeId", "data-v-463025ca"]]);
|
|
60
|
+
//#endregion
|
|
61
|
+
export { b as default };
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { t as e } from "./_plugin-vue_export-helper-BTgDAbhb.js";
|
|
2
|
+
import { a as t, l as n, t as r } from "./builderContext-B3rX2dxZ.js";
|
|
3
|
+
import { c as i } from "./pageCode-echPQdna.js";
|
|
4
|
+
import { a } from "./pageCodeAuthoring-C8grEAUf.js";
|
|
5
|
+
import { computed as o, createCommentVNode as s, createElementBlock as c, createElementVNode as l, createTextVNode as u, createVNode as d, defineComponent as f, inject as p, openBlock as m, ref as h, unref as g, watch as _, withCtx as v } from "vue";
|
|
6
|
+
import { CoarButton as y } from "@cocoar/vue-ui";
|
|
7
|
+
import { CoarScriptEditor as b } from "@cocoar/vue-script-editor";
|
|
8
|
+
//#region src/builder/BuilderLogicPanel.vue?vue&type=script&setup=true&lang.ts
|
|
9
|
+
var x = { class: "pb-page-code" }, S = { class: "pb-page-code__toolbar" }, C = { class: "pb-page-code__actions" }, w = {
|
|
10
|
+
key: 0,
|
|
11
|
+
class: "pb-page-code__dirty"
|
|
12
|
+
}, T = { class: "pb-page-code__editor" }, E = /* @__PURE__ */ e(/* @__PURE__ */ f({
|
|
13
|
+
__name: "BuilderLogicPanel",
|
|
14
|
+
setup(e) {
|
|
15
|
+
let f = p(r), E = p(t), D = p(n), O = o(() => i(f.schema.value.stateCode)), k = h(O.value), A = o(() => k.value !== O.value), j = o(() => [...a(E.value), ...D?.value ?? []]);
|
|
16
|
+
_(O, (e) => {
|
|
17
|
+
A.value || (k.value = e);
|
|
18
|
+
});
|
|
19
|
+
function M() {
|
|
20
|
+
f.patch([], { stateCode: k.value });
|
|
21
|
+
}
|
|
22
|
+
function N() {
|
|
23
|
+
k.value = O.value;
|
|
24
|
+
}
|
|
25
|
+
return (e, t) => (m(), c("section", x, [
|
|
26
|
+
l("header", S, [t[3] ||= l("div", null, [l("strong", null, "Page State"), l("span", null, "Customer-authored shared state for this page and all of its element scripts.")], -1), l("div", C, [
|
|
27
|
+
A.value ? (m(), c("span", w, "Unsaved changes")) : s("", !0),
|
|
28
|
+
d(g(y), {
|
|
29
|
+
size: "s",
|
|
30
|
+
variant: "secondary",
|
|
31
|
+
disabled: !A.value,
|
|
32
|
+
onClick: N
|
|
33
|
+
}, {
|
|
34
|
+
default: v(() => [...t[1] ||= [u("Revert", -1)]]),
|
|
35
|
+
_: 1
|
|
36
|
+
}, 8, ["disabled"]),
|
|
37
|
+
d(g(y), {
|
|
38
|
+
size: "s",
|
|
39
|
+
disabled: !A.value,
|
|
40
|
+
onClick: M
|
|
41
|
+
}, {
|
|
42
|
+
default: v(() => [...t[2] ||= [u("Apply state", -1)]]),
|
|
43
|
+
_: 1
|
|
44
|
+
}, 8, ["disabled"])
|
|
45
|
+
])]),
|
|
46
|
+
l("div", T, [d(g(b), {
|
|
47
|
+
modelValue: k.value,
|
|
48
|
+
"onUpdate:modelValue": t[0] ||= (e) => k.value = e,
|
|
49
|
+
language: "javascript",
|
|
50
|
+
"script-mode": !0,
|
|
51
|
+
"extra-libs": j.value,
|
|
52
|
+
height: "100%",
|
|
53
|
+
placeholder: "definePageState({ ... })"
|
|
54
|
+
}, null, 8, ["modelValue", "extra-libs"])]),
|
|
55
|
+
t[4] ||= l("footer", null, [l("span", null, [
|
|
56
|
+
u("The locked "),
|
|
57
|
+
l("code", null, "definePageState"),
|
|
58
|
+
u(" frame belongs to the Builder; only its object body is editable.")
|
|
59
|
+
]), l("span", null, [
|
|
60
|
+
u("Element actions may mutate "),
|
|
61
|
+
l("code", null, "state"),
|
|
62
|
+
u("; dependent element scripts update reactively.")
|
|
63
|
+
])], -1)
|
|
64
|
+
]));
|
|
65
|
+
}
|
|
66
|
+
}), [["__scopeId", "data-v-d2484ca8"]]);
|
|
67
|
+
//#endregion
|
|
68
|
+
export { E as default };
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { t as e } from "./_plugin-vue_export-helper-BTgDAbhb.js";
|
|
2
|
+
import { c as t, s as n } from "./pageCode-echPQdna.js";
|
|
3
|
+
import { i as r, r as i } from "./pageCodeAuthoring-C8grEAUf.js";
|
|
4
|
+
import { computed as a, createElementBlock as o, createElementVNode as s, createTextVNode as c, createVNode as l, defineComponent as u, openBlock as d, ref as f, unref as p, withCtx as m } from "vue";
|
|
5
|
+
import { CoarButton as h } from "@cocoar/vue-ui";
|
|
6
|
+
import { CoarScriptEditor as g } from "@cocoar/vue-script-editor";
|
|
7
|
+
//#region src/builder/BuilderPageRootCodeDialog.vue?vue&type=script&setup=true&lang.ts
|
|
8
|
+
var _ = { class: "pb-page-root-code-dialog" }, v = { class: "pb-page-root-code-dialog__editor" }, y = /* @__PURE__ */ e(/* @__PURE__ */ u({
|
|
9
|
+
__name: "BuilderPageRootCodeDialog",
|
|
10
|
+
props: {
|
|
11
|
+
schema: {},
|
|
12
|
+
source: {},
|
|
13
|
+
stateCode: {},
|
|
14
|
+
config: {},
|
|
15
|
+
hostLibs: {},
|
|
16
|
+
close: { type: Function }
|
|
17
|
+
},
|
|
18
|
+
setup(e) {
|
|
19
|
+
let u = e, y = f(n(u.source)), b = a(() => i(t(u.stateCode))), x = a(() => [...r(u.schema, u.config), ...u.hostLibs ?? []]);
|
|
20
|
+
return (t, n) => (d(), o("div", _, [
|
|
21
|
+
n[5] ||= s("div", { class: "pb-page-root-code-dialog__meta" }, [s("div", null, [s("span", null, "Element"), s("strong", null, "Page Root")]), s("div", null, [s("span", null, "Mutable target"), s("code", null, "page")])], -1),
|
|
22
|
+
s("div", v, [l(p(g), {
|
|
23
|
+
modelValue: y.value,
|
|
24
|
+
"onUpdate:modelValue": n[0] ||= (e) => y.value = e,
|
|
25
|
+
language: "javascript",
|
|
26
|
+
"script-mode": !0,
|
|
27
|
+
preamble: b.value,
|
|
28
|
+
"extra-libs": x.value,
|
|
29
|
+
height: "clamp(360px, 58vh, 620px)",
|
|
30
|
+
placeholder: "definePageRoot({ compute })"
|
|
31
|
+
}, null, 8, [
|
|
32
|
+
"modelValue",
|
|
33
|
+
"preamble",
|
|
34
|
+
"extra-libs"
|
|
35
|
+
])]),
|
|
36
|
+
n[6] ||= s("p", { class: "pb-page-root-code-dialog__hint" }, [
|
|
37
|
+
c(" Page Root Code can configure only "),
|
|
38
|
+
s("code", null, "page.style"),
|
|
39
|
+
c(", "),
|
|
40
|
+
s("code", null, "page.responsive"),
|
|
41
|
+
c(", and "),
|
|
42
|
+
s("code", null, "page.enterSubmits"),
|
|
43
|
+
c(". The tree, element types, names, and children remain owned by the visual builder. Reactive inputs are available on "),
|
|
44
|
+
s("code", null, "runtime.*"),
|
|
45
|
+
c(". ")
|
|
46
|
+
], -1),
|
|
47
|
+
s("footer", null, [l(p(h), {
|
|
48
|
+
variant: "secondary",
|
|
49
|
+
onClick: n[1] ||= (t) => e.close()
|
|
50
|
+
}, {
|
|
51
|
+
default: m(() => [...n[3] ||= [c("Cancel", -1)]]),
|
|
52
|
+
_: 1
|
|
53
|
+
}), l(p(h), { onClick: n[2] ||= (t) => e.close(y.value) }, {
|
|
54
|
+
default: m(() => [...n[4] ||= [c("Apply Page Code", -1)]]),
|
|
55
|
+
_: 1
|
|
56
|
+
})])
|
|
57
|
+
]));
|
|
58
|
+
}
|
|
59
|
+
}), [["__scopeId", "data-v-f361c916"]]);
|
|
60
|
+
//#endregion
|
|
61
|
+
export { y as default };
|
|
@@ -1,4 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CoarTheme, CoarThemeMode } from '@cocoar/vue-ui';
|
|
2
|
+
import { PageNode, PageConfig, RuntimeExpressionValues, PageCompositionReference } from './schema';
|
|
3
|
+
import { CoarScriptEditorExtraLib } from '@cocoar/vue-script-editor';
|
|
4
|
+
import { PageCodeRuntimeValues } from './pageCode';
|
|
5
|
+
import { PageRuntimeHost } from './runtime/PageRuntimeHost';
|
|
6
|
+
import { AuthoringFinding } from './builder/useAuthoringFindings';
|
|
7
|
+
import { PageBuilderAuthoringMode } from './builder/builderContext';
|
|
8
|
+
import { ActionHandler, ActionValues } from './context';
|
|
9
|
+
import { PageCompositionRepository } from './compositions';
|
|
10
|
+
import { PageCompositionManagement } from './builder/usePageCompositions';
|
|
2
11
|
type __VLS_Props = {
|
|
3
12
|
/**
|
|
4
13
|
* Security/allowlist config. The SAME config must also be passed to
|
|
@@ -6,16 +15,77 @@ type __VLS_Props = {
|
|
|
6
15
|
* authoring (palette + add-child menu) and at render time (security boundary).
|
|
7
16
|
*/
|
|
8
17
|
config?: PageConfig;
|
|
18
|
+
/** Safe sample context used only by the embedded preview; never persisted. */
|
|
19
|
+
previewContext?: Record<string, unknown>;
|
|
20
|
+
/**
|
|
21
|
+
* Field values the embedded preview starts from, merged OVER the schema's
|
|
22
|
+
* own `defaultValue`s exactly as at runtime. This is the edit-form case —
|
|
23
|
+
* and the case where the host computes a default the author did not write,
|
|
24
|
+
* such as a per-tenant "remember me" setting. Without it the preview can
|
|
25
|
+
* only ever show an empty form.
|
|
26
|
+
*/
|
|
27
|
+
previewInitialValues?: ActionValues;
|
|
28
|
+
previewLocale?: string;
|
|
29
|
+
/** Host-owned theme applied only to the embedded renderer canvas. */
|
|
30
|
+
previewTheme?: CoarTheme;
|
|
31
|
+
/** Preview colour mode. `auto` follows the surrounding application/OS mode. */
|
|
32
|
+
previewThemeMode?: CoarThemeMode;
|
|
33
|
+
previewActions?: Record<string, ActionHandler>;
|
|
34
|
+
previewFallbackSchema?: PageNode;
|
|
35
|
+
/** Sandbox results used by the embedded preview; source code is never evaluated by the builder itself. */
|
|
36
|
+
previewExpressionValues?: RuntimeExpressionValues;
|
|
37
|
+
/** Code-driven mode keeps the inspector structural and makes Page Code authoritative. */
|
|
38
|
+
authoringMode?: PageBuilderAuthoringMode;
|
|
39
|
+
/** @deprecated The Builder now owns its preview runtime. */
|
|
40
|
+
previewPageCodeValues?: PageCodeRuntimeValues;
|
|
41
|
+
/** @deprecated Used only as a fallback for actions unknown to the Builder runtime. */
|
|
42
|
+
previewOnAction?: (id: string, values: ActionValues) => void | Promise<unknown>;
|
|
43
|
+
/** Application-owned capability host reused by the Builder's isolated preview session. */
|
|
44
|
+
previewRuntimeHost?: PageRuntimeHost;
|
|
45
|
+
previewRuntimePageId?: string;
|
|
46
|
+
previewRuntimeTenantId?: string;
|
|
47
|
+
/** Host capability declarations merged into Monaco IntelliSense. */
|
|
48
|
+
pageCodeExtraLibs?: CoarScriptEditorExtraLib[];
|
|
49
|
+
/** Optional host-owned persistence boundary for reusable, versioned subtrees. */
|
|
50
|
+
compositionRepository?: PageCompositionRepository;
|
|
51
|
+
/** `consume` keeps definition creation/publication in a separate host-owned editor. */
|
|
52
|
+
compositionManagement?: PageCompositionManagement;
|
|
9
53
|
};
|
|
10
54
|
type __VLS_PublicProps = {
|
|
11
55
|
modelValue?: PageNode;
|
|
12
56
|
} & __VLS_Props;
|
|
13
57
|
declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
14
58
|
"update:modelValue": (value: PageNode) => any;
|
|
59
|
+
"preview-values": (values: ActionValues) => any;
|
|
60
|
+
"preview-runtime": (scope: {
|
|
61
|
+
fields: ActionValues;
|
|
62
|
+
form: {
|
|
63
|
+
valid: boolean;
|
|
64
|
+
dirty: boolean;
|
|
65
|
+
validating: boolean;
|
|
66
|
+
submitting: boolean;
|
|
67
|
+
};
|
|
68
|
+
}) => any;
|
|
69
|
+
"open-composition": (reference: PageCompositionReference) => any;
|
|
70
|
+
findings: (findings: AuthoringFinding[]) => any;
|
|
15
71
|
}, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
16
72
|
"onUpdate:modelValue"?: ((value: PageNode) => any) | undefined;
|
|
73
|
+
"onPreview-values"?: ((values: ActionValues) => any) | undefined;
|
|
74
|
+
"onPreview-runtime"?: ((scope: {
|
|
75
|
+
fields: ActionValues;
|
|
76
|
+
form: {
|
|
77
|
+
valid: boolean;
|
|
78
|
+
dirty: boolean;
|
|
79
|
+
validating: boolean;
|
|
80
|
+
submitting: boolean;
|
|
81
|
+
};
|
|
82
|
+
}) => any) | undefined;
|
|
83
|
+
"onOpen-composition"?: ((reference: PageCompositionReference) => any) | undefined;
|
|
84
|
+
onFindings?: ((findings: AuthoringFinding[]) => any) | undefined;
|
|
17
85
|
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
|
|
18
86
|
rootRef: HTMLDivElement;
|
|
87
|
+
previewViewportRef: HTMLDivElement;
|
|
88
|
+
previewFrameRef: HTMLDivElement;
|
|
19
89
|
}, HTMLDivElement>;
|
|
20
90
|
export default _default;
|
|
21
91
|
//# sourceMappingURL=CoarPageBuilder.vue.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CoarPageBuilder.vue.d.ts","sourceRoot":"","sources":["../src/CoarPageBuilder.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CoarPageBuilder.vue.d.ts","sourceRoot":"","sources":["../src/CoarPageBuilder.vue"],"names":[],"mappings":"AA6yCA,OAAO,EAML,KAAK,SAAS,EACd,KAAK,aAAa,EACnB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAsE,KAAK,QAAQ,EAAqB,KAAK,UAAU,EAAE,KAAK,uBAAuB,EAAE,KAAK,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAC9M,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAIjE,OAAO,EAAwB,KAAK,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAO7F,OAAO,EAYL,KAAK,wBAAwB,EAC9B,MAAM,0BAA0B,CAAC;AAQlC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAG9C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAuB,KAAK,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAoCpG,KAAK,WAAW,GAAG;IACjB;;;;OAIG;IACH,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,8EAA8E;IAC9E,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACxC;;;;;;OAMG;IACH,oBAAoB,CAAC,EAAE,YAAY,CAAA;IACnC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,qEAAqE;IACrE,YAAY,CAAC,EAAE,SAAS,CAAA;IACxB,+EAA+E;IAC/E,gBAAgB,CAAC,EAAE,aAAa,CAAA;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAC9C,qBAAqB,CAAC,EAAE,QAAQ,CAAA;IAChC,0GAA0G;IAC1G,uBAAuB,CAAC,EAAE,uBAAuB,CAAA;IACjD,yFAAyF;IACzF,aAAa,CAAC,EAAE,wBAAwB,CAAA;IACxC,4DAA4D;IAC5D,qBAAqB,CAAC,EAAE,qBAAqB,CAAA;IAC7C,sFAAsF;IACtF,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/E,0FAA0F;IAC1F,kBAAkB,CAAC,EAAE,eAAe,CAAA;IACpC,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,oEAAoE;IACpE,iBAAiB,CAAC,EAAE,wBAAwB,EAAE,CAAA;IAC9C,iFAAiF;IACjF,qBAAqB,CAAC,EAAE,yBAAyB,CAAA;IACjD,uFAAuF;IACvF,qBAAqB,CAAC,EAAE,yBAAyB,CAAA;CAClD,CAAC;AAkgBF,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,QAAQ,CAAC;CACrB,GAAG,WAAW,CAAC;;;;;gBAjkBJ,YAAY;cACd;YAAE,KAAK,EAAE,OAAO,CAAC;YAAC,KAAK,EAAE,OAAO,CAAC;YAAC,UAAU,EAAE,OAAO,CAAC;YAAC,UAAU,EAAE,OAAO,CAAA;SAAE;;;;;;;;gBAD1E,YAAY;cACd;YAAE,KAAK,EAAE,OAAO,CAAC;YAAC,KAAK,EAAE,OAAO,CAAC;YAAC,UAAU,EAAE,OAAO,CAAC;YAAC,UAAU,EAAE,OAAO,CAAA;SAAE;;;;;;;;;AAu+CtF,wBASG"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import { PageNode, PageConfig } from './schema';
|
|
1
|
+
import { PageNode, PageConfig, RuntimeExpressionValues } from './schema';
|
|
2
2
|
import { ActionHandler, ActionValues, CustomValidator } from './context';
|
|
3
|
+
import { PageCodeRuntimeValues } from './pageCode';
|
|
3
4
|
type __VLS_Props = {
|
|
4
5
|
schema: PageNode;
|
|
5
6
|
actions?: Record<string, ActionHandler>;
|
|
7
|
+
/** Optional dynamic action dispatcher (for Page Code action ids). */
|
|
8
|
+
onAction?: (id: string, values: ActionValues) => void | Promise<unknown>;
|
|
6
9
|
/**
|
|
7
10
|
* Developer-only: async or complex cross-field validation that cannot be
|
|
8
11
|
* expressed declaratively. Returns fieldName → error message.
|
|
@@ -24,6 +27,18 @@ type __VLS_Props = {
|
|
|
24
27
|
* schema change.
|
|
25
28
|
*/
|
|
26
29
|
initialValues?: ActionValues;
|
|
30
|
+
/** Deterministic container width override, primarily for builder previews and tests. */
|
|
31
|
+
viewportWidth?: number;
|
|
32
|
+
/** Host-owned, typed runtime data. Only paths declared in config.contextFields are readable. */
|
|
33
|
+
runtimeContext?: Record<string, unknown>;
|
|
34
|
+
/** Active locale used to resolve LocalizedValue props. */
|
|
35
|
+
locale?: string;
|
|
36
|
+
/** Host-owned built-in document used when the customized document violates its contract. */
|
|
37
|
+
fallbackSchema?: PageNode;
|
|
38
|
+
/** Data-only results produced by a host-owned sandbox runtime. */
|
|
39
|
+
expressionValues?: RuntimeExpressionValues;
|
|
40
|
+
/** One atomic, data-only Page Code result produced by the host sandbox. */
|
|
41
|
+
pageCodeValues?: PageCodeRuntimeValues;
|
|
27
42
|
};
|
|
28
43
|
declare function __VLS_template(): {
|
|
29
44
|
attrs: Partial<{}>;
|
|
@@ -45,12 +60,32 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {
|
|
|
45
60
|
isDirty: import('vue').ComputedRef<boolean>;
|
|
46
61
|
/** Quiet validation state — true when every declarative rule passes. */
|
|
47
62
|
isFormValid: import('vue').ComputedRef<boolean>;
|
|
63
|
+
/** True while an invalid customization is replaced by fallbackSchema. */
|
|
64
|
+
usingFallback: import('vue').ComputedRef<boolean>;
|
|
48
65
|
/** Back to the initial state: schema defaults + initialValues; touched/errors/banner cleared. */
|
|
49
66
|
reset: () => void;
|
|
50
67
|
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
51
68
|
"update:values": (values: ActionValues) => any;
|
|
69
|
+
"runtime-change": (scope: {
|
|
70
|
+
fields: ActionValues;
|
|
71
|
+
form: {
|
|
72
|
+
valid: boolean;
|
|
73
|
+
dirty: boolean;
|
|
74
|
+
validating: boolean;
|
|
75
|
+
submitting: boolean;
|
|
76
|
+
};
|
|
77
|
+
}) => any;
|
|
52
78
|
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
53
79
|
"onUpdate:values"?: ((values: ActionValues) => any) | undefined;
|
|
80
|
+
"onRuntime-change"?: ((scope: {
|
|
81
|
+
fields: ActionValues;
|
|
82
|
+
form: {
|
|
83
|
+
valid: boolean;
|
|
84
|
+
dirty: boolean;
|
|
85
|
+
validating: boolean;
|
|
86
|
+
submitting: boolean;
|
|
87
|
+
};
|
|
88
|
+
}) => any) | undefined;
|
|
54
89
|
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
|
|
55
90
|
rootEl: HTMLDivElement;
|
|
56
91
|
}, HTMLDivElement>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CoarPageRenderer.vue.d.ts","sourceRoot":"","sources":["../src/CoarPageRenderer.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CoarPageRenderer.vue.d.ts","sourceRoot":"","sources":["../src/CoarPageRenderer.vue"],"names":[],"mappings":"AAu1BA,OAAO,KAAK,EAA2B,QAAQ,EAAE,UAAU,EAA4B,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAUjI,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,eAAe,EAErB,MAAM,WAAW,CAAC;AAQnB,OAAO,EAAuB,KAAK,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAG7E,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,QAAQ,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IACvC,qEAAqE;IACrE,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACxE;;;;OAIG;IACH,UAAU,CAAC,EAAE,eAAe,CAAA;IAC5B,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAA;IACtC;;;;OAIG;IACH,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,YAAY,CAAA;IAC5B,wFAAwF;IACxF,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,gGAAgG;IAChG,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACxC,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,4FAA4F;IAC5F,cAAc,CAAC,EAAE,QAAQ,CAAA;IACzB,kEAAkE;IAClE,gBAAgB,CAAC,EAAE,uBAAuB,CAAA;IAC1C,2EAA2E;IAC3E,cAAc,CAAC,EAAE,qBAAqB,CAAA;CACvC,CAAC;AAwvBF,iBAAS,cAAc;WA+DT,OAAO,IAA6B;;;;YAXhB,GAAG;;;;;;EAgBpC;AAgBD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;IA/GnB,yFAAyF;;IAEzF,0DAA0D;;IAE1D,wEAAwE;;IAExE,yEAAyE;;IAEzE,iGAAiG;;;;;gBA1tBvF,YAAY;cACd;YAAE,KAAK,EAAE,OAAO,CAAC;YAAC,KAAK,EAAE,OAAO,CAAC;YAAC,UAAU,EAAE,OAAO,CAAC;YAAC,UAAU,EAAE,OAAO,CAAA;SAAE;;;;;gBAD1E,YAAY;cACd;YAAE,KAAK,EAAE,OAAO,CAAC;YAAC,KAAK,EAAE,OAAO,CAAC;YAAC,UAAU,EAAE,OAAO,CAAC;YAAC,UAAU,EAAE,OAAO,CAAA;SAAE;;;;kBA00BpF,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAQpG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
|
package/dist/PageNode.vue.d.ts
CHANGED
|
@@ -1,8 +1,16 @@
|
|
|
1
|
-
import { PageNode } from './schema';
|
|
1
|
+
import { PageNode, RepeatSelection } from './schema';
|
|
2
2
|
declare const _default: import('vue').DefineComponent<{
|
|
3
3
|
node: PageNode;
|
|
4
|
+
item?: unknown;
|
|
5
|
+
itemIndex?: number;
|
|
6
|
+
allowedItemPaths?: ReadonlySet<string>;
|
|
7
|
+
repeatSelection?: RepeatSelection;
|
|
4
8
|
}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{
|
|
5
9
|
node: PageNode;
|
|
10
|
+
item?: unknown;
|
|
11
|
+
itemIndex?: number;
|
|
12
|
+
allowedItemPaths?: ReadonlySet<string>;
|
|
13
|
+
repeatSelection?: RepeatSelection;
|
|
6
14
|
}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
7
15
|
export default _default;
|
|
8
16
|
//# sourceMappingURL=PageNode.vue.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageNode.vue.d.ts","sourceRoot":"","sources":["../src/PageNode.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PageNode.vue.d.ts","sourceRoot":"","sources":["../src/PageNode.vue"],"names":[],"mappings":"AAwNA,OAAO,EAAsC,KAAK,QAAQ,EAAE,KAAK,eAAe,EAAkB,MAAM,UAAU,CAAC;;UAwB3G,QAAQ;WACP,OAAO;gBACF,MAAM;uBACC,WAAW,CAAC,MAAM,CAAC;sBACpB,eAAe;;UAJ3B,QAAQ;WACP,OAAO;gBACF,MAAM;uBACC,WAAW,CAAC,MAAM,CAAC;sBACpB,eAAe;;AARnC,wBA2PK"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { t as e } from "./_plugin-vue_export-helper-BTgDAbhb.js";
|
|
2
|
+
import { a as t } from "./builderContext-B3rX2dxZ.js";
|
|
3
|
+
import { t as n } from "./visualDocument-DKjWBfpW.js";
|
|
4
|
+
import { Fragment as r, computed as i, createBlock as a, createCommentVNode as o, createElementBlock as s, createElementVNode as c, createVNode as l, defineComponent as u, inject as d, openBlock as f, renderList as p, toDisplayString as m, unref as h, withCtx as g } from "vue";
|
|
5
|
+
import { CoarFormField as _, CoarNotice as v } from "@cocoar/vue-ui";
|
|
6
|
+
import { CoarScriptEditor as y } from "@cocoar/vue-script-editor";
|
|
7
|
+
//#region src/elements/visual-markup/VisualMarkupInspector.vue?vue&type=script&setup=true&lang.ts
|
|
8
|
+
var b = { class: "pb-visual-errors" }, x = /* @__PURE__ */ e(/* @__PURE__ */ u({
|
|
9
|
+
__name: "VisualMarkupInspector",
|
|
10
|
+
props: {
|
|
11
|
+
node: {},
|
|
12
|
+
patch: { type: Function }
|
|
13
|
+
},
|
|
14
|
+
setup(e) {
|
|
15
|
+
let u = e, x = d(t), S = i(() => n(u.node.props.html ?? "", u.node.props.css ?? "", x?.value?.visualMarkup));
|
|
16
|
+
return (t, n) => (f(), s(r, null, [
|
|
17
|
+
S.value.ok ? o("", !0) : (f(), a(h(v), {
|
|
18
|
+
key: 0,
|
|
19
|
+
variant: "error"
|
|
20
|
+
}, {
|
|
21
|
+
default: g(() => [c("ul", b, [(f(!0), s(r, null, p(S.value.errors, (e) => (f(), s("li", { key: e }, m(e), 1))), 128))])]),
|
|
22
|
+
_: 1
|
|
23
|
+
})),
|
|
24
|
+
l(h(_), {
|
|
25
|
+
label: "Decorative HTML / inline SVG",
|
|
26
|
+
hint: "Scripts, links, forms, event handlers and external resources are rejected."
|
|
27
|
+
}, {
|
|
28
|
+
default: g(() => [l(h(y), {
|
|
29
|
+
language: "html",
|
|
30
|
+
"model-value": e.node.props.html ?? "",
|
|
31
|
+
height: "240px",
|
|
32
|
+
minimap: !1,
|
|
33
|
+
"onUpdate:modelValue": n[0] ||= (t) => e.patch({ props: { html: t } })
|
|
34
|
+
}, null, 8, ["model-value"])]),
|
|
35
|
+
_: 1
|
|
36
|
+
}),
|
|
37
|
+
l(h(_), {
|
|
38
|
+
label: "Iframe-local CSS",
|
|
39
|
+
hint: "Supports keyframes, media queries, custom properties and reduced motion."
|
|
40
|
+
}, {
|
|
41
|
+
default: g(() => [l(h(y), {
|
|
42
|
+
language: "css",
|
|
43
|
+
"model-value": e.node.props.css ?? "",
|
|
44
|
+
height: "240px",
|
|
45
|
+
minimap: !1,
|
|
46
|
+
"onUpdate:modelValue": n[1] ||= (t) => e.patch({ props: { css: t } })
|
|
47
|
+
}, null, 8, ["model-value"])]),
|
|
48
|
+
_: 1
|
|
49
|
+
})
|
|
50
|
+
], 64));
|
|
51
|
+
}
|
|
52
|
+
}), [["__scopeId", "data-v-7e11a49f"]]);
|
|
53
|
+
//#endregion
|
|
54
|
+
export { x as default };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ActionValues } from './context';
|
|
2
|
+
import { ActionProps } from './schema';
|
|
3
|
+
/** True when a value can cross the persisted Page JSON boundary without coercion. */
|
|
4
|
+
export declare function isJsonSafeActionValue(value: unknown, depth?: number, ancestors?: Set<object>): boolean;
|
|
5
|
+
export declare function isSafeActionValueField(field: unknown): field is string;
|
|
6
|
+
/** Keys addressable through the flat `actionValues.<key>` binding target. */
|
|
7
|
+
export declare function isBindableActionValueField(field: unknown): field is string;
|
|
8
|
+
export declare function isJsonSafeActionValues(value: unknown): value is Record<string, unknown>;
|
|
9
|
+
/**
|
|
10
|
+
* Resolves the optional per-element action arguments. The single dynamic
|
|
11
|
+
* value is deliberately applied last, so it can override a static entry with
|
|
12
|
+
* the same key. Invalid/non-JSON runtime values never reach the host handler.
|
|
13
|
+
*/
|
|
14
|
+
export declare function actionValuesFromProps(props: ActionProps): ActionValues;
|
|
15
|
+
/**
|
|
16
|
+
* Final handler payload. Explicit per-action values win collisions with form
|
|
17
|
+
* fields because they are the trigger-specific arguments authored for this
|
|
18
|
+
* exact action. The returned object is a new top-level payload snapshot.
|
|
19
|
+
*/
|
|
20
|
+
export declare function mergeActionValues(formValues: ActionValues, actionValues?: ActionValues): ActionValues;
|
|
21
|
+
//# sourceMappingURL=actionValues.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actionValues.d.ts","sourceRoot":"","sources":["../src/actionValues.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAW3C,qFAAqF;AACrF,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,EACd,KAAK,SAAI,EACT,SAAS,cAAoB,GAC5B,OAAO,CAcT;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAEtE;AAED,6EAA6E;AAC7E,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAE1E;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEvF;AAYD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,WAAW,GAAG,YAAY,CAatE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,YAAY,GAAG,YAAY,CAErG"}
|