@bloomreach/vue-sdk
Version:
Bloomreach SPA SDK for Vue
398 lines (397 loc) • 12.1 kB
JavaScript
import { defineComponent as g, toRef as K, inject as v, ref as R, watch as U, getCurrentInstance as q, onMounted as x, onUpdated as z, onBeforeUnmount as J, onBeforeUpdate as W, createElementBlock as $, openBlock as r, Fragment as T, createCommentVNode as h, renderSlot as y, normalizeProps as F, guardReactiveProps as G, computed as f, h as Y, useSlots as H, useAttrs as X, unref as t, createBlock as i, withCtx as d, resolveDynamicComponent as E, toDisplayString as Z, shallowRef as ee, onUnmounted as te, toRaw as O, toRefs as Q, provide as S, resolveComponent as ne, renderList as b, onServerPrefetch as oe } from "vue";
import { TYPE_CONTAINER_INLINE as ae, TYPE_CONTAINER_NO_MARKUP as ue, TYPE_CONTAINER_ORDERED_LIST as le, TYPE_CONTAINER_UNORDERED_LIST as re, TYPE_CONTAINER_ITEM_UNDEFINED as j, isContainerItem as se, isContainer as ce, isComponent as pe, TYPE_MANAGE_CONTENT_BUTTON as me, TYPE_MANAGE_MENU_BUTTON as ie, initialize as L } from "@bloomreach/spa-sdk";
const k = Symbol("page$"), I = Symbol("mapping$"), M = Symbol("component$"), B = /* @__PURE__ */ g({
__name: "BrMeta",
props: {
meta: {}
},
setup(p) {
const u = p, e = K(() => u.meta);
let l;
const n = v(k, void 0), c = R(), a = R(), o = () => {
var s, _, N;
!((s = c.value) != null && s.nextSibling) || !a.value || (l = (_ = e.value) == null ? void 0 : _.render(c.value.nextSibling, a.value), l && ((N = n == null ? void 0 : n.value) == null || N.sync()));
}, m = () => {
var s;
l && (l(), l = void 0, (s = n == null ? void 0 : n.value) == null || s.sync());
};
return U(e, () => {
var s, _;
return (_ = (s = q()) == null ? void 0 : s.proxy) == null ? void 0 : _.$forceUpdate();
}, { deep: !1 }), x(o), z(o), J(m), W(m), (s, _) => (r(), $(T, null, [
e.value && e.value.length > 0 ? (r(), $("span", {
key: 0,
style: { display: "none" },
ref_key: "head",
ref: c
}, null, 512)) : h("", !0),
y(s.$slots, "default", F(G(s.$attrs))),
e.value && e.value.length > 0 ? (r(), $("span", {
key: 1,
style: { display: "none" },
ref_key: "tail",
ref: a
}, null, 512)) : h("", !0)
], 64));
}
});
function P(p, u) {
const e = v(k), l = f(() => {
var c;
return (c = e == null ? void 0 : e.value) == null ? void 0 : c.isPreview();
}), n = () => {
var s;
const o = H().default()[0].children, m = (s = o == null ? void 0 : o[0]) == null ? void 0 : s.children;
return m == null ? void 0 : m.map((_) => Y(
u,
{ class: { "hst-container-item": l } },
[_]
));
};
return () => Y(
p,
{ class: { "hst-container": l } },
n()
);
}
const _e = g({
setup() {
return P("div", "div");
}
}), de = g({
setup() {
return P("div", "span");
}
}), ve = /* @__PURE__ */ g({
__name: "BrContainerNoMarkup",
setup(p) {
const u = X();
return (e, l) => y(e.$slots, "default", F(G(t(u))));
}
}), ge = g({
setup() {
return P("ol", "li");
}
}), fe = g({
setup() {
return P("ul", "li");
}
}), ye = /* @__PURE__ */ g({
__name: "BrNodeContainer",
setup(p) {
const u = v(k), e = v(M), l = v(I), n = f(() => {
var a;
return (a = e == null ? void 0 : e.value) == null ? void 0 : a.getType();
}), c = f(() => {
var a;
return (a = e == null ? void 0 : e.value) == null ? void 0 : a.getMeta();
});
return (a, o) => {
var m;
return r(), i(B, {
meta: c.value,
key: (m = t(e)) == null ? void 0 : m.getId()
}, {
default: d(() => [
n.value && n.value in t(l) ? (r(), i(E(t(l)[n.value]), {
key: 0,
component: t(e),
page: t(u)
}, {
default: d(() => [
y(a.$slots, "default")
]),
_: 3
}, 8, ["component", "page"])) : n.value === t(ae) ? (r(), i(de, {
key: 1,
component: t(e),
page: t(u)
}, {
default: d(() => [
y(a.$slots, "default")
]),
_: 3
}, 8, ["component", "page"])) : n.value === t(ue) ? (r(), i(ve, {
key: 2,
component: t(e),
page: t(u)
}, {
default: d(() => [
y(a.$slots, "default")
]),
_: 3
}, 8, ["component", "page"])) : n.value === t(le) ? (r(), i(ge, {
key: 3,
component: t(e),
page: t(u)
}, {
default: d(() => [
y(a.$slots, "default")
]),
_: 3
}, 8, ["component", "page"])) : n.value === t(re) ? (r(), i(fe, {
key: 4,
component: t(e),
page: t(u)
}, {
default: d(() => [
y(a.$slots, "default")
]),
_: 3
}, 8, ["component", "page"])) : (r(), i(_e, {
key: 5,
component: t(e),
page: t(u)
}, {
default: d(() => [
y(a.$slots, "default")
]),
_: 3
}, 8, ["component", "page"]))
]),
_: 3
}, 8, ["meta"]);
};
}
}), ke = /* @__PURE__ */ g({
__name: "BrContainerItemUndefined",
props: {
component: {}
},
setup(p) {
const u = p, e = f(() => u.component.getType());
return (l, n) => (r(), $("div", null, Z(`Component "${e.value}" is not defined.`), 1));
}
}), Ne = /* @__PURE__ */ g({
__name: "BrNodeContainerItem",
setup(p) {
const u = v(k), e = v(I), l = v(M), n = f(() => l.value.getType());
let c;
function a(_) {
const N = Object.create(Object.getPrototypeOf(_));
return Object.assign(N, _);
}
const o = ee(l.value), m = f(() => o.value.getMeta()), s = () => {
o.value = a(l.value);
const _ = O(u.value);
_ == null || _.sync();
};
return te(() => c == null ? void 0 : c()), U(
l,
() => {
o.value = a(l.value), c == null || c(), c = l.value.on("update", s);
},
{ immediate: !0, deep: !0 }
), (_, N) => (r(), i(B, {
meta: m.value,
key: o.value.getId()
}, {
default: d(() => [
n.value && n.value in t(e) ? (r(), i(E(t(e)[n.value]), {
key: 0,
component: o.value,
page: t(u)
}, null, 8, ["component", "page"])) : t(j) in t(e) ? (r(), i(E(t(e)[t(j)]), {
key: 1,
component: o.value,
page: t(u)
}, null, 8, ["component", "page"])) : o.value ? (r(), i(ke, {
key: 2,
component: o.value
}, null, 8, ["component"])) : h("", !0)
]),
_: 1
}, 8, ["meta"]));
}
});
function $e(p = "default") {
var e, l;
const u = H();
return !!((l = (e = u[p]) == null ? void 0 : e.call(u)[0].children) != null && l.length);
}
const V = /* @__PURE__ */ g({
__name: "BrNodeComponent",
props: {
component: {}
},
setup(p) {
const u = p, { component: e } = Q(u), l = v(k), n = v(I), c = $e(), a = f(() => {
var s;
return (s = e == null ? void 0 : e.value) == null ? void 0 : s.getChildren();
}), o = f(() => {
var s;
return (s = e == null ? void 0 : e.value) == null ? void 0 : s.getMeta();
}), m = f(() => {
var s;
return (s = e == null ? void 0 : e.value) == null ? void 0 : s.getName();
});
return S(M, e), (s, _) => {
var w, A, D;
const N = ne("br-node-component", !0);
return t(c) ? (r(), i(B, {
meta: o.value,
key: (w = t(e)) == null ? void 0 : w.getId()
}, {
default: d(() => [
y(s.$slots, "default")
]),
_: 3
}, 8, ["meta"])) : (r(), $(T, { key: 1 }, [
t(se)(t(e)) ? (r(), i(Ne, { key: 0 })) : t(ce)(t(e)) ? (r(), i(ye, { key: 1 }, {
default: d(() => [
(r(!0), $(T, null, b(a.value, (C) => (r(), i(N, {
key: C.getId(),
component: C
}, null, 8, ["component"]))), 128))
]),
_: 1
})) : m.value && m.value in t(n) ? (r(), i(B, {
meta: o.value,
key: (A = t(e)) == null ? void 0 : A.getId()
}, {
default: d(() => [
(r(), i(E(t(n)[m.value]), {
component: t(e),
page: t(l)
}, null, 8, ["component", "page"]))
]),
_: 1
}, 8, ["meta"])) : (r(), i(B, {
meta: o.value,
key: (D = t(e)) == null ? void 0 : D.getId()
}, {
default: d(() => [
(r(!0), $(T, null, b(a.value, (C) => (r(), i(N, {
key: C.getId(),
component: C
}, null, 8, ["component"]))), 128))
]),
_: 1
}, 8, ["meta"]))
], 64));
};
}
}), Be = /* @__PURE__ */ g({
__name: "BrComponent",
props: {
component: {}
},
setup(p) {
const u = p;
function e(a, o) {
if (pe(o))
return [o];
if (!a)
return [];
if (!o)
return a.getChildren();
const m = a.getComponent(...o.split("/"));
return m ? [m] : [];
}
const l = v(k), n = v(M), c = f(() => e(n == null ? void 0 : n.value, u.component));
return (a, o) => (r(!0), $(T, null, b(c.value, (m) => (r(), i(V, { component: m }, {
default: d(() => [
y(a.$slots, "default", {
component: m,
page: t(l)
})
]),
_: 2
}, 1032, ["component"]))), 256));
}
}), he = /* @__PURE__ */ g({
__name: "BrManageContentButton",
props: {
content: {},
documentTemplateQuery: {},
folderTemplateQuery: {},
path: {},
parameter: {},
pickerConfiguration: {},
pickerEnableUpload: { type: Boolean },
pickerInitialPath: {},
pickerRemembersLastVisited: { type: Boolean },
pickerRootPath: {},
pickerSelectableNodeTypes: {},
relative: { type: Boolean },
root: {}
},
setup(p) {
const u = p, e = v(k), l = f(() => {
var n;
return (n = e == null ? void 0 : e.value) == null ? void 0 : n.getButton(me, u);
});
return (n, c) => {
var a;
return t(e) && ((a = t(e)) != null && a.isPreview()) ? (r(), i(B, {
key: 0,
meta: l.value
}, null, 8, ["meta"])) : h("", !0);
};
}
}), Ce = /* @__PURE__ */ g({
__name: "BrManageMenuButton",
props: {
menu: {}
},
setup(p) {
const u = p, e = v(k), l = f(() => {
var n;
return (n = e == null ? void 0 : e.value) == null ? void 0 : n.getButton(ie, u.menu);
});
return (n, c) => t(e) && t(e).isPreview() ? (r(), i(B, {
key: 0,
meta: l.value
}, null, 8, ["meta"])) : h("", !0);
}
}), Te = /* @__PURE__ */ g({
__name: "BrPage",
props: {
page: {},
configuration: {},
mapping: {}
},
setup(p) {
const u = p, { configuration: e, mapping: l } = Q(u), n = R(), c = f(() => {
var o;
return (o = n.value) == null ? void 0 : o.getComponent();
});
let a = null;
return S(k, n), S(I, l), U(e, async (o, m) => {
if (!m && u.page) {
n.value = L(o, u.page);
return;
}
a = L(o), n.value = await a, a = null;
}, { deep: !0, immediate: !0 }), x(() => {
const o = O(n.value);
o == null || o.sync();
}), z(() => {
const o = O(n.value);
o == null || o.sync();
}), oe(async () => await a), (o, m) => n.value || t(e).NBRMode ? (r(), i(V, {
key: 0,
component: c.value
}, {
default: d(() => [
y(o.$slots, "default", {
component: c.value,
page: n.value
})
]),
_: 3
}, 8, ["component"])) : h("", !0);
}
}), Me = {
install(p) {
p.component("br-component", Be), p.component("br-manage-content-button", he), p.component("br-manage-menu-button", Ce), p.component("br-page", Te);
}
};
export {
Be as BrComponent,
he as BrManageContentButton,
Ce as BrManageMenuButton,
Te as BrPage,
Me as BrSdk
};
//# sourceMappingURL=index.js.map