@g1cloud/page-builder-editor 1.0.0-alpha.42 → 1.0.0-alpha.44

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.
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, openBlock, createElementBlock, createElementVNode, toDisplayString, createVNode, unref } from "vue";
2
2
  import { BSTextInput } from "@g1cloud/bluesea";
3
- import { P as PbColorPicker } from "./index-BbIzDh8j.js";
3
+ import { P as PbColorPicker } from "./index-HSJAvXph.js";
4
4
  const _hoisted_1 = { class: "property-editor property-editor-color" };
5
5
  const _hoisted_2 = { class: "title" };
6
6
  const _hoisted_3 = ["textContent"];
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, openBlock, createElementBlock, createElementVNode, toDisplayString, defineAsyncComponent } from "vue";
2
2
  import { useModal } from "@g1cloud/bluesea";
3
- import { u as usePageBuilderEditor } from "./index-BbIzDh8j.js";
3
+ import { u as usePageBuilderEditor } from "./index-HSJAvXph.js";
4
4
  const _hoisted_1 = { class: "property-editor property-editor-image flex-align-center" };
5
5
  const _hoisted_2 = { class: "title" };
6
6
  const _hoisted_3 = ["textContent"];
@@ -1,5 +1,5 @@
1
1
  import { defineComponent, openBlock, createElementBlock, createElementVNode, toDisplayString } from "vue";
2
- import { u as usePageBuilderEditor } from "./index-BbIzDh8j.js";
2
+ import { u as usePageBuilderEditor } from "./index-HSJAvXph.js";
3
3
  import { useModal } from "@g1cloud/bluesea";
4
4
  const _hoisted_1 = { class: "property-editor property-editor-image flex-align-center" };
5
5
  const _hoisted_2 = { class: "title" };
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, computed, openBlock, createElementBlock, createElementVNode, toDisplayString, createBlock, unref } from "vue";
2
2
  import { BSMultiLangTextArea, BSTextArea } from "@g1cloud/bluesea";
3
- import { u as usePageBuilderEditor } from "./index-BbIzDh8j.js";
3
+ import { u as usePageBuilderEditor } from "./index-HSJAvXph.js";
4
4
  const _hoisted_1 = { class: "property-editor property-editor-multiline-text" };
5
5
  const _hoisted_2 = { class: "title" };
6
6
  const _hoisted_3 = ["textContent"];
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, computed, openBlock, createElementBlock, createElementVNode, toDisplayString, createBlock, unref } from "vue";
2
2
  import { BSMultiLangTextInput, BSTextInput } from "@g1cloud/bluesea";
3
- import { u as usePageBuilderEditor } from "./index-BbIzDh8j.js";
3
+ import { u as usePageBuilderEditor } from "./index-HSJAvXph.js";
4
4
  const _hoisted_1 = { class: "property-editor property-editor-text flex-align-center" };
5
5
  const _hoisted_2 = { class: "title" };
6
6
  const _hoisted_3 = ["textContent"];
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, openBlock, createElementBlock, createElementVNode, toDisplayString } from "vue";
2
2
  import { useModal } from "@g1cloud/bluesea";
3
- import { s as selectYoutubeVideo } from "./index-BbIzDh8j.js";
3
+ import { s as selectYoutubeVideo } from "./index-HSJAvXph.js";
4
4
  const _hoisted_1 = { class: "property-editor property-editor-image flex-align-center" };
5
5
  const _hoisted_2 = { class: "title" };
6
6
  const _hoisted_3 = ["textContent"];
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, computed, openBlock, createBlock, unref, withCtx, createElementVNode, createElementBlock, Fragment, renderList, toDisplayString } from "vue";
2
2
  import { useModalHandle, BSModalFrame } from "@g1cloud/bluesea";
3
- import { w as widgetPartDefinitions } from "./index-BbIzDh8j.js";
3
+ import { w as widgetPartDefinitions } from "./index-HSJAvXph.js";
4
4
  const _hoisted_1 = { class: "bs-layout-vertical pb-part-add-modal" };
5
5
  const _hoisted_2 = { class: "bs-layout-horizontal-wrap ml-16 mb-8 gap-8" };
6
6
  const _hoisted_3 = ["onClick", "textContent"];
@@ -1,7 +1,7 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
3
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
- import { ref, defineComponent, computed, openBlock, createElementBlock, Fragment, createElementVNode, normalizeStyle, createCommentVNode, toDisplayString, onMounted, onBeforeUnmount, createBlock as createBlock$1, unref, provide, inject, watch, renderList, resolveDynamicComponent, normalizeProps, mergeProps, normalizeClass, reactive, defineAsyncComponent, withDirectives, createVNode, resolveComponent, vModelText, resolveDirective, withModifiers, renderSlot, guardReactiveProps, markRaw, toHandlers, Teleport } from "vue";
4
+ import { ref, defineComponent, computed, openBlock, createElementBlock, Fragment, createElementVNode, normalizeStyle, createCommentVNode, toDisplayString, onMounted, onBeforeUnmount, createBlock as createBlock$1, resolveDynamicComponent, unref, provide, inject, watch, renderList, normalizeProps, mergeProps, normalizeClass, withDirectives, vShow, reactive, defineAsyncComponent, createVNode, resolveComponent, vModelText, resolveDirective, withModifiers, renderSlot, guardReactiveProps, markRaw, toHandlers, Teleport } from "vue";
5
5
  import { notNull, BSTextInput, vClickOutside, useModal, BSSelect, BSTree, useContextMenu } from "@g1cloud/bluesea";
6
6
  import YouTube from "vue3-youtube";
7
7
  const create$5 = () => /* @__PURE__ */ new Map();
@@ -6715,7 +6715,7 @@ class Part {
6715
6715
  }
6716
6716
  }
6717
6717
  getStyles(isMobilePage) {
6718
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N, _O, _P, _Q, _R;
6718
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N, _O, _P, _Q, _R, _S;
6719
6719
  const style = {};
6720
6720
  if (((_a = this.properties) == null ? void 0 : _a.direction) === "horizontal") {
6721
6721
  style.flexDirection = "row";
@@ -6741,51 +6741,52 @@ class Part {
6741
6741
  if (justifyContent) style.justifyContent = justifyContent;
6742
6742
  if (alignSelf) style.alignSelf = alignSelf;
6743
6743
  }
6744
- if ((_g = this.properties) == null ? void 0 : _g.margin) style.margin = this.properties.margin;
6745
- if ((_h = this.properties) == null ? void 0 : _h.marginLeft) style.marginLeft = this.properties.marginLeft;
6746
- if ((_i = this.properties) == null ? void 0 : _i.marginRight) style.marginRight = this.properties.marginRight;
6747
- if ((_j = this.properties) == null ? void 0 : _j.marginTop) style.marginTop = this.properties.marginTop;
6748
- if ((_k = this.properties) == null ? void 0 : _k.marginBottom) style.marginBottom = this.properties.marginBottom;
6749
- if ((_l = this.properties) == null ? void 0 : _l.padding) style.padding = this.properties.padding;
6750
- if ((_m = this.properties) == null ? void 0 : _m.paddingLeft) style.paddingLeft = this.properties.paddingLeft;
6751
- if ((_n = this.properties) == null ? void 0 : _n.paddingRight) style.paddingRight = this.properties.paddingRight;
6752
- if ((_o = this.properties) == null ? void 0 : _o.paddingTop) style.paddingTop = this.properties.paddingTop;
6753
- if ((_p = this.properties) == null ? void 0 : _p.paddingBottom) style.paddingBottom = this.properties.paddingBottom;
6754
- if ((_q = this.properties) == null ? void 0 : _q.left) style.left = this.properties.left;
6755
- if ((_r = this.properties) == null ? void 0 : _r.right) style.right = this.properties.right;
6756
- if ((_s = this.properties) == null ? void 0 : _s.top) style.top = this.properties.top;
6757
- if ((_t = this.properties) == null ? void 0 : _t.bottom) style.bottom = this.properties.bottom;
6758
- if ((_u = this.properties) == null ? void 0 : _u.width) style.width = this.properties.width;
6759
- if ((_v = this.properties) == null ? void 0 : _v.height) style.height = this.properties.height;
6760
- if ((_w = this.properties) == null ? void 0 : _w.maxWidth) style.maxWidth = this.properties.maxWidth;
6761
- if ((_x = this.properties) == null ? void 0 : _x.maxHeight) style.maxHeight = this.properties.maxHeight;
6762
- if ((_y = this.properties) == null ? void 0 : _y.minWidth) style.minWidth = this.properties.minWidth;
6763
- if ((_z = this.properties) == null ? void 0 : _z.minHeight) style.minHeight = this.properties.minHeight;
6764
- if ((_A = this.properties) == null ? void 0 : _A.textAlign) style.textAlign = this.properties.textAlign;
6765
- if ((_B = this.properties) == null ? void 0 : _B.backgroundColor) style.backgroundColor = this.properties.backgroundColor;
6766
- if ((_C = this.properties) == null ? void 0 : _C.borderLeftWidth) style.borderLeftWidth = this.properties.borderLeftWidth;
6767
- if ((_D = this.properties) == null ? void 0 : _D.borderRightWidth) style.borderRightWidth = this.properties.borderRightWidth;
6768
- if ((_E = this.properties) == null ? void 0 : _E.borderTopWidth) style.borderTopWidth = this.properties.borderTopWidth;
6769
- if ((_F = this.properties) == null ? void 0 : _F.borderBottomWidth) style.borderBottomWidth = this.properties.borderBottomWidth;
6770
- if ((_G = this.properties) == null ? void 0 : _G.borderTopLeftRadius) style.borderTopLeftRadius = this.properties.borderTopLeftRadius;
6771
- if ((_H = this.properties) == null ? void 0 : _H.borderTopRightRadius) style.borderTopRightRadius = this.properties.borderTopRightRadius;
6772
- if ((_I = this.properties) == null ? void 0 : _I.borderBottomLeftRadius) style.borderBottomLeftRadius = this.properties.borderBottomLeftRadius;
6773
- if ((_J = this.properties) == null ? void 0 : _J.borderBottomRightRadius) style.borderBottomRightRadius = this.properties.borderBottomRightRadius;
6774
- if (((_K = this.properties) == null ? void 0 : _K.borderColor) && style.borderLeftWidth) {
6744
+ if ((_g = this.properties) == null ? void 0 : _g.gap) style.gap = this.properties.gap;
6745
+ if ((_h = this.properties) == null ? void 0 : _h.margin) style.margin = this.properties.margin;
6746
+ if ((_i = this.properties) == null ? void 0 : _i.marginLeft) style.marginLeft = this.properties.marginLeft;
6747
+ if ((_j = this.properties) == null ? void 0 : _j.marginRight) style.marginRight = this.properties.marginRight;
6748
+ if ((_k = this.properties) == null ? void 0 : _k.marginTop) style.marginTop = this.properties.marginTop;
6749
+ if ((_l = this.properties) == null ? void 0 : _l.marginBottom) style.marginBottom = this.properties.marginBottom;
6750
+ if ((_m = this.properties) == null ? void 0 : _m.padding) style.padding = this.properties.padding;
6751
+ if ((_n = this.properties) == null ? void 0 : _n.paddingLeft) style.paddingLeft = this.properties.paddingLeft;
6752
+ if ((_o = this.properties) == null ? void 0 : _o.paddingRight) style.paddingRight = this.properties.paddingRight;
6753
+ if ((_p = this.properties) == null ? void 0 : _p.paddingTop) style.paddingTop = this.properties.paddingTop;
6754
+ if ((_q = this.properties) == null ? void 0 : _q.paddingBottom) style.paddingBottom = this.properties.paddingBottom;
6755
+ if ((_r = this.properties) == null ? void 0 : _r.left) style.left = this.properties.left;
6756
+ if ((_s = this.properties) == null ? void 0 : _s.right) style.right = this.properties.right;
6757
+ if ((_t = this.properties) == null ? void 0 : _t.top) style.top = this.properties.top;
6758
+ if ((_u = this.properties) == null ? void 0 : _u.bottom) style.bottom = this.properties.bottom;
6759
+ if ((_v = this.properties) == null ? void 0 : _v.width) style.width = this.properties.width;
6760
+ if ((_w = this.properties) == null ? void 0 : _w.height) style.height = this.properties.height;
6761
+ if ((_x = this.properties) == null ? void 0 : _x.maxWidth) style.maxWidth = this.properties.maxWidth;
6762
+ if ((_y = this.properties) == null ? void 0 : _y.maxHeight) style.maxHeight = this.properties.maxHeight;
6763
+ if ((_z = this.properties) == null ? void 0 : _z.minWidth) style.minWidth = this.properties.minWidth;
6764
+ if ((_A = this.properties) == null ? void 0 : _A.minHeight) style.minHeight = this.properties.minHeight;
6765
+ if ((_B = this.properties) == null ? void 0 : _B.textAlign) style.textAlign = this.properties.textAlign;
6766
+ if ((_C = this.properties) == null ? void 0 : _C.backgroundColor) style.backgroundColor = this.properties.backgroundColor;
6767
+ if ((_D = this.properties) == null ? void 0 : _D.borderLeftWidth) style.borderLeftWidth = this.properties.borderLeftWidth;
6768
+ if ((_E = this.properties) == null ? void 0 : _E.borderRightWidth) style.borderRightWidth = this.properties.borderRightWidth;
6769
+ if ((_F = this.properties) == null ? void 0 : _F.borderTopWidth) style.borderTopWidth = this.properties.borderTopWidth;
6770
+ if ((_G = this.properties) == null ? void 0 : _G.borderBottomWidth) style.borderBottomWidth = this.properties.borderBottomWidth;
6771
+ if ((_H = this.properties) == null ? void 0 : _H.borderTopLeftRadius) style.borderTopLeftRadius = this.properties.borderTopLeftRadius;
6772
+ if ((_I = this.properties) == null ? void 0 : _I.borderTopRightRadius) style.borderTopRightRadius = this.properties.borderTopRightRadius;
6773
+ if ((_J = this.properties) == null ? void 0 : _J.borderBottomLeftRadius) style.borderBottomLeftRadius = this.properties.borderBottomLeftRadius;
6774
+ if ((_K = this.properties) == null ? void 0 : _K.borderBottomRightRadius) style.borderBottomRightRadius = this.properties.borderBottomRightRadius;
6775
+ if (((_L = this.properties) == null ? void 0 : _L.borderColor) && style.borderLeftWidth) {
6775
6776
  style.borderLeftStyle = "solid";
6776
- style.borderLeftColor = (_L = this.properties) == null ? void 0 : _L.borderColor;
6777
+ style.borderLeftColor = (_M = this.properties) == null ? void 0 : _M.borderColor;
6777
6778
  }
6778
- if (((_M = this.properties) == null ? void 0 : _M.borderColor) && style.borderRightWidth) {
6779
+ if (((_N = this.properties) == null ? void 0 : _N.borderColor) && style.borderRightWidth) {
6779
6780
  style.borderRightStyle = "solid";
6780
- style.borderRightColor = (_N = this.properties) == null ? void 0 : _N.borderColor;
6781
+ style.borderRightColor = (_O = this.properties) == null ? void 0 : _O.borderColor;
6781
6782
  }
6782
- if (((_O = this.properties) == null ? void 0 : _O.borderColor) && style.borderTopWidth) {
6783
+ if (((_P = this.properties) == null ? void 0 : _P.borderColor) && style.borderTopWidth) {
6783
6784
  style.borderTopStyle = "solid";
6784
- style.borderTopColor = (_P = this.properties) == null ? void 0 : _P.borderColor;
6785
+ style.borderTopColor = (_Q = this.properties) == null ? void 0 : _Q.borderColor;
6785
6786
  }
6786
- if (((_Q = this.properties) == null ? void 0 : _Q.borderColor) && style.borderBottomWidth) {
6787
+ if (((_R = this.properties) == null ? void 0 : _R.borderColor) && style.borderBottomWidth) {
6787
6788
  style.borderBottomStyle = "solid";
6788
- style.borderBottomColor = (_R = this.properties) == null ? void 0 : _R.borderColor;
6789
+ style.borderBottomColor = (_S = this.properties) == null ? void 0 : _S.borderColor;
6789
6790
  }
6790
6791
  return style;
6791
6792
  }
@@ -6878,14 +6879,21 @@ let Model$1 = class Model {
6878
6879
  this.rootPart = ref(new RootPart());
6879
6880
  }
6880
6881
  };
6881
- const _hoisted_1$b$1 = ["data-part-id"];
6882
- const _sfc_main$c$1 = /* @__PURE__ */ defineComponent({
6882
+ const _hoisted_1$a$1 = ["data-part-id"];
6883
+ const _sfc_main$b$1 = /* @__PURE__ */ defineComponent({
6883
6884
  __name: "PbWidget",
6884
6885
  props: {
6885
6886
  part: {}
6886
6887
  },
6887
- setup(__props) {
6888
+ emits: ["update:visible"],
6889
+ setup(__props, { emit: __emit }) {
6888
6890
  const props = __props;
6891
+ const emit = __emit;
6892
+ const visible = ref(true);
6893
+ const updateVisible = (value) => {
6894
+ visible.value = value;
6895
+ emit("update:visible", value);
6896
+ };
6889
6897
  const classNames = computed(() => [getPartClassName(props.part), props.part.getClassNames()]);
6890
6898
  const styleTag = computed(() => props.part.getStyleTag());
6891
6899
  const style = computed(() => ({
@@ -6895,83 +6903,76 @@ const _sfc_main$c$1 = /* @__PURE__ */ defineComponent({
6895
6903
  const thisComponent = computed(() => createPartComponent(props.part));
6896
6904
  return (_ctx, _cache) => {
6897
6905
  return openBlock(), createElementBlock(Fragment, null, [
6898
- styleTag.value ? (openBlock(), createBlock$1(resolveDynamicComponent("style"), {
6906
+ styleTag.value && visible.value ? (openBlock(), createBlock$1(resolveDynamicComponent("style"), {
6899
6907
  key: 0,
6900
6908
  innerHTML: styleTag.value
6901
6909
  }, null, 8, ["innerHTML"])) : createCommentVNode("", true),
6902
- createElementVNode("div", {
6910
+ withDirectives(createElementVNode("div", {
6903
6911
  class: normalizeClass([classNames.value, "pb-widget"]),
6904
6912
  "data-part-id": _ctx.part.partId,
6905
6913
  style: normalizeStyle(style.value)
6906
6914
  }, [
6907
6915
  thisComponent.value ? (openBlock(), createBlock$1(resolveDynamicComponent(thisComponent.value), {
6908
6916
  key: 0,
6909
- part: _ctx.part
6910
- }, null, 8, ["part"])) : createCommentVNode("", true)
6911
- ], 14, _hoisted_1$b$1)
6917
+ part: _ctx.part,
6918
+ "onUpdate:visible": updateVisible
6919
+ }, null, 40, ["part"])) : createCommentVNode("", true)
6920
+ ], 14, _hoisted_1$a$1), [
6921
+ [vShow, visible.value]
6922
+ ])
6912
6923
  ], 64);
6913
6924
  };
6914
6925
  }
6915
6926
  });
6916
- const _hoisted_1$a$1 = ["data-part-id"];
6917
- const _sfc_main$b$1 = /* @__PURE__ */ defineComponent({
6927
+ const _hoisted_1$9$1 = ["data-part-id"];
6928
+ const _sfc_main$a$1 = /* @__PURE__ */ defineComponent({
6918
6929
  __name: "PbBlock",
6919
6930
  props: {
6920
6931
  part: {},
6921
6932
  isMobilePage: { type: Boolean }
6922
6933
  },
6923
- setup(__props) {
6934
+ emits: ["update:visible"],
6935
+ setup(__props, { emit: __emit }) {
6924
6936
  const props = __props;
6937
+ const emit = __emit;
6938
+ const visible = ref(true);
6939
+ const childrenVisible = {};
6940
+ const updateVisible = (partId, value) => {
6941
+ childrenVisible[partId] = value;
6942
+ visible.value = props.part.children.some((child) => !(child.partId in childrenVisible) || childrenVisible[child.partId]);
6943
+ emit("update:visible", visible.value);
6944
+ };
6925
6945
  const classNames = computed(() => [getPartClassName(props.part), props.part.getClassNames()]);
6926
6946
  const styleTag = computed(() => props.part.getStyleTag());
6927
6947
  const style = computed(() => ({
6928
6948
  ...props.part.getStyles(props.isMobilePage),
6929
6949
  ...props.part.getInlineStyles()
6930
6950
  }));
6931
- computed(() => createPartComponents(props.part.children));
6932
6951
  return (_ctx, _cache) => {
6933
6952
  return openBlock(), createElementBlock(Fragment, null, [
6934
- styleTag.value ? (openBlock(), createBlock$1(resolveDynamicComponent("style"), {
6953
+ styleTag.value && visible.value ? (openBlock(), createBlock$1(resolveDynamicComponent("style"), {
6935
6954
  key: 0,
6936
6955
  innerHTML: styleTag.value
6937
6956
  }, null, 8, ["innerHTML"])) : createCommentVNode("", true),
6938
- createElementVNode("div", {
6957
+ withDirectives(createElementVNode("div", {
6939
6958
  class: normalizeClass([classNames.value, "pb-block"]),
6940
6959
  "data-part-id": _ctx.part.partId,
6941
6960
  style: normalizeStyle(style.value)
6942
6961
  }, [
6943
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.part.children, (child) => {
6944
- return openBlock(), createBlock$1(_sfc_main$c$1, {
6962
+ _ctx.part.children && _ctx.part.children.length > 0 ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(_ctx.part.children, (child) => {
6963
+ return openBlock(), createBlock$1(_sfc_main$b$1, {
6945
6964
  key: child.partId,
6946
- part: child
6947
- }, null, 8, ["part"]);
6948
- }), 128))
6949
- ], 14, _hoisted_1$a$1)
6965
+ part: child,
6966
+ "onUpdate:visible": (value) => updateVisible(child.partId, value)
6967
+ }, null, 8, ["part", "onUpdate:visible"]);
6968
+ }), 128)) : createCommentVNode("", true)
6969
+ ], 14, _hoisted_1$9$1), [
6970
+ [vShow, visible.value]
6971
+ ])
6950
6972
  ], 64);
6951
6973
  };
6952
6974
  }
6953
6975
  });
6954
- const _hoisted_1$9$1 = { class: "pb-block" };
6955
- const _sfc_main$a$1 = /* @__PURE__ */ defineComponent({
6956
- __name: "PbLoginDepart",
6957
- props: {
6958
- part: {}
6959
- },
6960
- setup(__props) {
6961
- return (_ctx, _cache) => {
6962
- return openBlock(), createElementBlock("div", _hoisted_1$9$1, _cache[0] || (_cache[0] = [
6963
- createElementVNode("div", {
6964
- class: "pb-widget",
6965
- style: { "margin": "0 auto" }
6966
- }, [
6967
- createElementVNode("div", { class: "pb-login-widget" }, [
6968
- createElementVNode("h3", null, "Login Design Part")
6969
- ])
6970
- ], -1)
6971
- ]));
6972
- };
6973
- }
6974
- });
6975
6976
  const _hoisted_1$8$1 = ["data-part-id"];
6976
6977
  const _sfc_main$9$1 = /* @__PURE__ */ defineComponent({
6977
6978
  __name: "PbSection",
@@ -6981,6 +6982,12 @@ const _sfc_main$9$1 = /* @__PURE__ */ defineComponent({
6981
6982
  },
6982
6983
  setup(__props) {
6983
6984
  const props = __props;
6985
+ const visible = ref(true);
6986
+ const childrenVisible = {};
6987
+ const updateVisible = (partId, value) => {
6988
+ childrenVisible[partId] = value;
6989
+ visible.value = props.part.children.some((child) => !(child.partId in childrenVisible) || childrenVisible[child.partId]);
6990
+ };
6984
6991
  const classNames = computed(() => [getPartClassName(props.part), props.part.getClassNames()]);
6985
6992
  const styleTag = computed(() => props.part.getStyleTag());
6986
6993
  const style = computed(() => ({
@@ -6988,28 +6995,27 @@ const _sfc_main$9$1 = /* @__PURE__ */ defineComponent({
6988
6995
  ...props.part.getInlineStyles()
6989
6996
  }));
6990
6997
  return (_ctx, _cache) => {
6991
- var _a;
6992
6998
  return openBlock(), createElementBlock(Fragment, null, [
6993
- styleTag.value ? (openBlock(), createBlock$1(resolveDynamicComponent("style"), {
6999
+ styleTag.value && visible.value ? (openBlock(), createBlock$1(resolveDynamicComponent("style"), {
6994
7000
  key: 0,
6995
7001
  innerHTML: styleTag.value
6996
7002
  }, null, 8, ["innerHTML"])) : createCommentVNode("", true),
6997
- createElementVNode("div", {
7003
+ withDirectives(createElementVNode("div", {
6998
7004
  class: normalizeClass([classNames.value, "pb-section"]),
6999
7005
  "data-part-id": _ctx.part.partId,
7000
7006
  style: normalizeStyle(style.value)
7001
7007
  }, [
7002
- ((_a = _ctx.part.properties) == null ? void 0 : _a.name) === "Login Design Part" ? (openBlock(), createBlock$1(_sfc_main$a$1, {
7003
- key: 0,
7004
- part: _ctx.part
7005
- }, null, 8, ["part"])) : _ctx.part.children && _ctx.part.children.length > 0 ? (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(_ctx.part.children, (block) => {
7006
- return openBlock(), createBlock$1(_sfc_main$b$1, {
7007
- key: block.partId,
7008
+ _ctx.part.children && _ctx.part.children.length > 0 ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(_ctx.part.children, (child) => {
7009
+ return openBlock(), createBlock$1(_sfc_main$a$1, {
7010
+ key: child.partId,
7008
7011
  "is-mobile-page": _ctx.isMobilePage,
7009
- part: block
7010
- }, null, 8, ["is-mobile-page", "part"]);
7012
+ part: child,
7013
+ "onUpdate:visible": (value) => updateVisible(child.partId, value)
7014
+ }, null, 8, ["is-mobile-page", "part", "onUpdate:visible"]);
7011
7015
  }), 128)) : createCommentVNode("", true)
7012
- ], 14, _hoisted_1$8$1)
7016
+ ], 14, _hoisted_1$8$1), [
7017
+ [vShow, visible.value]
7018
+ ])
7013
7019
  ], 64);
7014
7020
  };
7015
7021
  }
@@ -7234,20 +7240,37 @@ const _sfc_main$4$1 = /* @__PURE__ */ defineComponent({
7234
7240
  });
7235
7241
  const onReady = () => {
7236
7242
  };
7243
+ const isYTReady = ref(false);
7244
+ onMounted(() => {
7245
+ const interval = setInterval(() => {
7246
+ if (window.YT) {
7247
+ isYTReady.value = true;
7248
+ clearInterval(interval);
7249
+ }
7250
+ }, 500);
7251
+ });
7237
7252
  return (_ctx, _cache) => {
7238
7253
  var _a, _b;
7239
- return ((_a = _ctx.part.properties) == null ? void 0 : _a.url) ? (openBlock(), createBlock$1(unref(YouTube), {
7240
- key: 0,
7241
- ref: "youtube",
7242
- src: ((_b = _ctx.part.properties) == null ? void 0 : _b.url) || "",
7243
- style: normalizeStyle(style.value),
7244
- class: "youtube",
7245
- height: "100%",
7246
- width: "100%",
7247
- onReady
7248
- }, null, 8, ["src", "style"])) : _ctx.placeholder ? (openBlock(), createElementBlock("div", _hoisted_1$3$1, _cache[0] || (_cache[0] = [
7249
- createElementVNode("span", { class: "font-icon" }, "live_tv", -1)
7250
- ]))) : createCommentVNode("", true);
7254
+ return openBlock(), createElementBlock(Fragment, null, [
7255
+ (openBlock(), createBlock$1(resolveDynamicComponent("script"), {
7256
+ id: "youtube-iframe-js-api-script",
7257
+ src: "https://www.youtube.com/iframe_api"
7258
+ })),
7259
+ ((_a = _ctx.part.properties) == null ? void 0 : _a.url) ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
7260
+ isYTReady.value ? (openBlock(), createBlock$1(unref(YouTube), {
7261
+ key: 0,
7262
+ ref: "youtube",
7263
+ src: ((_b = _ctx.part.properties) == null ? void 0 : _b.url) || "",
7264
+ style: normalizeStyle(style.value),
7265
+ class: "youtube",
7266
+ height: "100%",
7267
+ width: "100%",
7268
+ onReady
7269
+ }, null, 8, ["src", "style"])) : createCommentVNode("", true)
7270
+ ], 64)) : _ctx.placeholder ? (openBlock(), createElementBlock("div", _hoisted_1$3$1, _cache[0] || (_cache[0] = [
7271
+ createElementVNode("span", { class: "font-icon" }, "live_tv", -1)
7272
+ ]))) : createCommentVNode("", true)
7273
+ ], 64);
7251
7274
  };
7252
7275
  }
7253
7276
  });
@@ -7262,7 +7285,7 @@ const defaultPartDefinitions = {
7262
7285
  partType: "Block",
7263
7286
  partName: "Block",
7264
7287
  className: "pb-block",
7265
- creator: () => _sfc_main$b$1
7288
+ creator: () => _sfc_main$a$1
7266
7289
  },
7267
7290
  "TextWidget": {
7268
7291
  partType: "Widget",
@@ -8153,15 +8176,15 @@ class PartManager {
8153
8176
  const defaultPartPropertyEditors = () => {
8154
8177
  return {
8155
8178
  "readonly-text": () => defineAsyncComponent(() => import("./PbPropertyEditorReadonlyText-Dgp_AVOD.js")),
8156
- "text": () => defineAsyncComponent(() => import("./PbPropertyEditorText-VZuU9jHY.js")),
8179
+ "text": () => defineAsyncComponent(() => import("./PbPropertyEditorText-4FO396e0.js")),
8157
8180
  "number": () => defineAsyncComponent(() => import("./PbPropertyEditorNumber-TTgo0zbQ.js")),
8158
8181
  "boolean": () => defineAsyncComponent(() => import("./PbPropertyEditorBoolean-C7-iSAtn.js")),
8159
- "multiline-text": () => defineAsyncComponent(() => import("./PbPropertyEditorMultilineText-DsXFyiQW.js")),
8182
+ "multiline-text": () => defineAsyncComponent(() => import("./PbPropertyEditorMultilineText-P-U54Cz2.js")),
8160
8183
  "select": () => defineAsyncComponent(() => import("./PbPropertyEditorSelect-CWedbXJI.js")),
8161
- "color": () => defineAsyncComponent(() => import("./PbPropertyEditorColor-gKz7L5Vh.js")),
8162
- "image": () => defineAsyncComponent(() => import("./PbPropertyEditorImage-BtbEwUi1.js")),
8163
- "html": () => defineAsyncComponent(() => import("./PbPropertyEditorHtml-C0As3WsD.js")),
8164
- "youtube": () => defineAsyncComponent(() => import("./PbPropertyEditorYoutube-C2L0H_Y4.js"))
8184
+ "color": () => defineAsyncComponent(() => import("./PbPropertyEditorColor-B3xl9E3o.js")),
8185
+ "image": () => defineAsyncComponent(() => import("./PbPropertyEditorImage-BVxHJlyq.js")),
8186
+ "html": () => defineAsyncComponent(() => import("./PbPropertyEditorHtml-EMisPKLD.js")),
8187
+ "youtube": () => defineAsyncComponent(() => import("./PbPropertyEditorYoutube-P8ajWtxn.js"))
8165
8188
  };
8166
8189
  };
8167
8190
  const getPropertyValueOfParts = (parts, propertyName) => {
@@ -11981,6 +12004,11 @@ const layoutGroup = () => {
11981
12004
  caption: "Wrap",
11982
12005
  propertyType: "select",
11983
12006
  params: "nowrap,wrap"
12007
+ },
12008
+ {
12009
+ propertyName: "gap",
12010
+ caption: "Gap",
12011
+ propertyType: "text"
11984
12012
  }
11985
12013
  ]
11986
12014
  };
@@ -12295,7 +12323,7 @@ const widgets = [
12295
12323
  },
12296
12324
  {
12297
12325
  propertyName: "altText",
12298
- caption: "ALT Text",
12326
+ caption: "Alt Text",
12299
12327
  propertyType: "text",
12300
12328
  params: "",
12301
12329
  multiLang: true
@@ -12510,7 +12538,7 @@ __publicField(_OpenAddWidgetModalCommand, "COMMAND_ID", "OpenAddWidgetModal");
12510
12538
  let OpenAddWidgetModalCommand = _OpenAddWidgetModalCommand;
12511
12539
  const openWidgetAddModal = (modal, args, callback) => {
12512
12540
  modal.openModal({
12513
- component: defineAsyncComponent(() => import("./PbWidgetAddModal-BMmYmDVy.js")),
12541
+ component: defineAsyncComponent(() => import("./PbWidgetAddModal-B0LCiyLg.js")),
12514
12542
  style: {
12515
12543
  width: "80%",
12516
12544
  height: "80%",
@@ -14772,6 +14800,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
14772
14800
  });
14773
14801
  return (_ctx, _cache) => {
14774
14802
  return openBlock(), createElementBlock("div", _hoisted_1, [
14803
+ (openBlock(), createBlock$1(resolveDynamicComponent("script"), {
14804
+ id: "youtube-iframe-js-api-script",
14805
+ src: "https://www.youtube.com/iframe_api"
14806
+ })),
14775
14807
  createVNode(_sfc_main$9, { "toolbar-plugin": _ctx.toolbarPlugin }, null, 8, ["toolbar-plugin"]),
14776
14808
  createElementVNode("div", _hoisted_2, [
14777
14809
  createVNode(_sfc_main$8),
@@ -1,4 +1,4 @@
1
- import { B, b, M, c, d, e, _, a, f, g, h, i, j, k, l, m, n, R, o, S, p, W, q, r, t, v, x, y, z, A, C } from "./index-BbIzDh8j.js";
1
+ import { B, b, M, c, d, e, _, a, f, g, h, i, j, k, l, m, n, R, o, S, p, W, q, r, t, v, x, y, z, A, C } from "./index-HSJAvXph.js";
2
2
  export {
3
3
  B as BLOCK_TYPE,
4
4
  b as Block,
@@ -6716,7 +6716,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
6716
6716
  }
6717
6717
  }
6718
6718
  getStyles(isMobilePage) {
6719
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N, _O, _P, _Q, _R;
6719
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N, _O, _P, _Q, _R, _S;
6720
6720
  const style = {};
6721
6721
  if (((_a = this.properties) == null ? void 0 : _a.direction) === "horizontal") {
6722
6722
  style.flexDirection = "row";
@@ -6742,51 +6742,52 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
6742
6742
  if (justifyContent) style.justifyContent = justifyContent;
6743
6743
  if (alignSelf) style.alignSelf = alignSelf;
6744
6744
  }
6745
- if ((_g = this.properties) == null ? void 0 : _g.margin) style.margin = this.properties.margin;
6746
- if ((_h = this.properties) == null ? void 0 : _h.marginLeft) style.marginLeft = this.properties.marginLeft;
6747
- if ((_i = this.properties) == null ? void 0 : _i.marginRight) style.marginRight = this.properties.marginRight;
6748
- if ((_j = this.properties) == null ? void 0 : _j.marginTop) style.marginTop = this.properties.marginTop;
6749
- if ((_k = this.properties) == null ? void 0 : _k.marginBottom) style.marginBottom = this.properties.marginBottom;
6750
- if ((_l = this.properties) == null ? void 0 : _l.padding) style.padding = this.properties.padding;
6751
- if ((_m = this.properties) == null ? void 0 : _m.paddingLeft) style.paddingLeft = this.properties.paddingLeft;
6752
- if ((_n = this.properties) == null ? void 0 : _n.paddingRight) style.paddingRight = this.properties.paddingRight;
6753
- if ((_o = this.properties) == null ? void 0 : _o.paddingTop) style.paddingTop = this.properties.paddingTop;
6754
- if ((_p = this.properties) == null ? void 0 : _p.paddingBottom) style.paddingBottom = this.properties.paddingBottom;
6755
- if ((_q = this.properties) == null ? void 0 : _q.left) style.left = this.properties.left;
6756
- if ((_r = this.properties) == null ? void 0 : _r.right) style.right = this.properties.right;
6757
- if ((_s = this.properties) == null ? void 0 : _s.top) style.top = this.properties.top;
6758
- if ((_t = this.properties) == null ? void 0 : _t.bottom) style.bottom = this.properties.bottom;
6759
- if ((_u = this.properties) == null ? void 0 : _u.width) style.width = this.properties.width;
6760
- if ((_v = this.properties) == null ? void 0 : _v.height) style.height = this.properties.height;
6761
- if ((_w = this.properties) == null ? void 0 : _w.maxWidth) style.maxWidth = this.properties.maxWidth;
6762
- if ((_x = this.properties) == null ? void 0 : _x.maxHeight) style.maxHeight = this.properties.maxHeight;
6763
- if ((_y = this.properties) == null ? void 0 : _y.minWidth) style.minWidth = this.properties.minWidth;
6764
- if ((_z = this.properties) == null ? void 0 : _z.minHeight) style.minHeight = this.properties.minHeight;
6765
- if ((_A = this.properties) == null ? void 0 : _A.textAlign) style.textAlign = this.properties.textAlign;
6766
- if ((_B = this.properties) == null ? void 0 : _B.backgroundColor) style.backgroundColor = this.properties.backgroundColor;
6767
- if ((_C = this.properties) == null ? void 0 : _C.borderLeftWidth) style.borderLeftWidth = this.properties.borderLeftWidth;
6768
- if ((_D = this.properties) == null ? void 0 : _D.borderRightWidth) style.borderRightWidth = this.properties.borderRightWidth;
6769
- if ((_E = this.properties) == null ? void 0 : _E.borderTopWidth) style.borderTopWidth = this.properties.borderTopWidth;
6770
- if ((_F = this.properties) == null ? void 0 : _F.borderBottomWidth) style.borderBottomWidth = this.properties.borderBottomWidth;
6771
- if ((_G = this.properties) == null ? void 0 : _G.borderTopLeftRadius) style.borderTopLeftRadius = this.properties.borderTopLeftRadius;
6772
- if ((_H = this.properties) == null ? void 0 : _H.borderTopRightRadius) style.borderTopRightRadius = this.properties.borderTopRightRadius;
6773
- if ((_I = this.properties) == null ? void 0 : _I.borderBottomLeftRadius) style.borderBottomLeftRadius = this.properties.borderBottomLeftRadius;
6774
- if ((_J = this.properties) == null ? void 0 : _J.borderBottomRightRadius) style.borderBottomRightRadius = this.properties.borderBottomRightRadius;
6775
- if (((_K = this.properties) == null ? void 0 : _K.borderColor) && style.borderLeftWidth) {
6745
+ if ((_g = this.properties) == null ? void 0 : _g.gap) style.gap = this.properties.gap;
6746
+ if ((_h = this.properties) == null ? void 0 : _h.margin) style.margin = this.properties.margin;
6747
+ if ((_i = this.properties) == null ? void 0 : _i.marginLeft) style.marginLeft = this.properties.marginLeft;
6748
+ if ((_j = this.properties) == null ? void 0 : _j.marginRight) style.marginRight = this.properties.marginRight;
6749
+ if ((_k = this.properties) == null ? void 0 : _k.marginTop) style.marginTop = this.properties.marginTop;
6750
+ if ((_l = this.properties) == null ? void 0 : _l.marginBottom) style.marginBottom = this.properties.marginBottom;
6751
+ if ((_m = this.properties) == null ? void 0 : _m.padding) style.padding = this.properties.padding;
6752
+ if ((_n = this.properties) == null ? void 0 : _n.paddingLeft) style.paddingLeft = this.properties.paddingLeft;
6753
+ if ((_o = this.properties) == null ? void 0 : _o.paddingRight) style.paddingRight = this.properties.paddingRight;
6754
+ if ((_p = this.properties) == null ? void 0 : _p.paddingTop) style.paddingTop = this.properties.paddingTop;
6755
+ if ((_q = this.properties) == null ? void 0 : _q.paddingBottom) style.paddingBottom = this.properties.paddingBottom;
6756
+ if ((_r = this.properties) == null ? void 0 : _r.left) style.left = this.properties.left;
6757
+ if ((_s = this.properties) == null ? void 0 : _s.right) style.right = this.properties.right;
6758
+ if ((_t = this.properties) == null ? void 0 : _t.top) style.top = this.properties.top;
6759
+ if ((_u = this.properties) == null ? void 0 : _u.bottom) style.bottom = this.properties.bottom;
6760
+ if ((_v = this.properties) == null ? void 0 : _v.width) style.width = this.properties.width;
6761
+ if ((_w = this.properties) == null ? void 0 : _w.height) style.height = this.properties.height;
6762
+ if ((_x = this.properties) == null ? void 0 : _x.maxWidth) style.maxWidth = this.properties.maxWidth;
6763
+ if ((_y = this.properties) == null ? void 0 : _y.maxHeight) style.maxHeight = this.properties.maxHeight;
6764
+ if ((_z = this.properties) == null ? void 0 : _z.minWidth) style.minWidth = this.properties.minWidth;
6765
+ if ((_A = this.properties) == null ? void 0 : _A.minHeight) style.minHeight = this.properties.minHeight;
6766
+ if ((_B = this.properties) == null ? void 0 : _B.textAlign) style.textAlign = this.properties.textAlign;
6767
+ if ((_C = this.properties) == null ? void 0 : _C.backgroundColor) style.backgroundColor = this.properties.backgroundColor;
6768
+ if ((_D = this.properties) == null ? void 0 : _D.borderLeftWidth) style.borderLeftWidth = this.properties.borderLeftWidth;
6769
+ if ((_E = this.properties) == null ? void 0 : _E.borderRightWidth) style.borderRightWidth = this.properties.borderRightWidth;
6770
+ if ((_F = this.properties) == null ? void 0 : _F.borderTopWidth) style.borderTopWidth = this.properties.borderTopWidth;
6771
+ if ((_G = this.properties) == null ? void 0 : _G.borderBottomWidth) style.borderBottomWidth = this.properties.borderBottomWidth;
6772
+ if ((_H = this.properties) == null ? void 0 : _H.borderTopLeftRadius) style.borderTopLeftRadius = this.properties.borderTopLeftRadius;
6773
+ if ((_I = this.properties) == null ? void 0 : _I.borderTopRightRadius) style.borderTopRightRadius = this.properties.borderTopRightRadius;
6774
+ if ((_J = this.properties) == null ? void 0 : _J.borderBottomLeftRadius) style.borderBottomLeftRadius = this.properties.borderBottomLeftRadius;
6775
+ if ((_K = this.properties) == null ? void 0 : _K.borderBottomRightRadius) style.borderBottomRightRadius = this.properties.borderBottomRightRadius;
6776
+ if (((_L = this.properties) == null ? void 0 : _L.borderColor) && style.borderLeftWidth) {
6776
6777
  style.borderLeftStyle = "solid";
6777
- style.borderLeftColor = (_L = this.properties) == null ? void 0 : _L.borderColor;
6778
+ style.borderLeftColor = (_M = this.properties) == null ? void 0 : _M.borderColor;
6778
6779
  }
6779
- if (((_M = this.properties) == null ? void 0 : _M.borderColor) && style.borderRightWidth) {
6780
+ if (((_N = this.properties) == null ? void 0 : _N.borderColor) && style.borderRightWidth) {
6780
6781
  style.borderRightStyle = "solid";
6781
- style.borderRightColor = (_N = this.properties) == null ? void 0 : _N.borderColor;
6782
+ style.borderRightColor = (_O = this.properties) == null ? void 0 : _O.borderColor;
6782
6783
  }
6783
- if (((_O = this.properties) == null ? void 0 : _O.borderColor) && style.borderTopWidth) {
6784
+ if (((_P = this.properties) == null ? void 0 : _P.borderColor) && style.borderTopWidth) {
6784
6785
  style.borderTopStyle = "solid";
6785
- style.borderTopColor = (_P = this.properties) == null ? void 0 : _P.borderColor;
6786
+ style.borderTopColor = (_Q = this.properties) == null ? void 0 : _Q.borderColor;
6786
6787
  }
6787
- if (((_Q = this.properties) == null ? void 0 : _Q.borderColor) && style.borderBottomWidth) {
6788
+ if (((_R = this.properties) == null ? void 0 : _R.borderColor) && style.borderBottomWidth) {
6788
6789
  style.borderBottomStyle = "solid";
6789
- style.borderBottomColor = (_R = this.properties) == null ? void 0 : _R.borderColor;
6790
+ style.borderBottomColor = (_S = this.properties) == null ? void 0 : _S.borderColor;
6790
6791
  }
6791
6792
  return style;
6792
6793
  }
@@ -6879,14 +6880,21 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
6879
6880
  this.rootPart = vue.ref(new RootPart());
6880
6881
  }
6881
6882
  };
6882
- const _hoisted_1$b$1 = ["data-part-id"];
6883
- const _sfc_main$c$1 = /* @__PURE__ */ vue.defineComponent({
6883
+ const _hoisted_1$a$1 = ["data-part-id"];
6884
+ const _sfc_main$b$1 = /* @__PURE__ */ vue.defineComponent({
6884
6885
  __name: "PbWidget",
6885
6886
  props: {
6886
6887
  part: {}
6887
6888
  },
6888
- setup(__props) {
6889
+ emits: ["update:visible"],
6890
+ setup(__props, { emit: __emit }) {
6889
6891
  const props = __props;
6892
+ const emit = __emit;
6893
+ const visible = vue.ref(true);
6894
+ const updateVisible = (value) => {
6895
+ visible.value = value;
6896
+ emit("update:visible", value);
6897
+ };
6890
6898
  const classNames = vue.computed(() => [getPartClassName(props.part), props.part.getClassNames()]);
6891
6899
  const styleTag = vue.computed(() => props.part.getStyleTag());
6892
6900
  const style = vue.computed(() => ({
@@ -6896,83 +6904,76 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
6896
6904
  const thisComponent = vue.computed(() => createPartComponent(props.part));
6897
6905
  return (_ctx, _cache) => {
6898
6906
  return vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [
6899
- styleTag.value ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent("style"), {
6907
+ styleTag.value && visible.value ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent("style"), {
6900
6908
  key: 0,
6901
6909
  innerHTML: styleTag.value
6902
6910
  }, null, 8, ["innerHTML"])) : vue.createCommentVNode("", true),
6903
- vue.createElementVNode("div", {
6911
+ vue.withDirectives(vue.createElementVNode("div", {
6904
6912
  class: vue.normalizeClass([classNames.value, "pb-widget"]),
6905
6913
  "data-part-id": _ctx.part.partId,
6906
6914
  style: vue.normalizeStyle(style.value)
6907
6915
  }, [
6908
6916
  thisComponent.value ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(thisComponent.value), {
6909
6917
  key: 0,
6910
- part: _ctx.part
6911
- }, null, 8, ["part"])) : vue.createCommentVNode("", true)
6912
- ], 14, _hoisted_1$b$1)
6918
+ part: _ctx.part,
6919
+ "onUpdate:visible": updateVisible
6920
+ }, null, 40, ["part"])) : vue.createCommentVNode("", true)
6921
+ ], 14, _hoisted_1$a$1), [
6922
+ [vue.vShow, visible.value]
6923
+ ])
6913
6924
  ], 64);
6914
6925
  };
6915
6926
  }
6916
6927
  });
6917
- const _hoisted_1$a$1 = ["data-part-id"];
6918
- const _sfc_main$b$1 = /* @__PURE__ */ vue.defineComponent({
6928
+ const _hoisted_1$9$1 = ["data-part-id"];
6929
+ const _sfc_main$a$1 = /* @__PURE__ */ vue.defineComponent({
6919
6930
  __name: "PbBlock",
6920
6931
  props: {
6921
6932
  part: {},
6922
6933
  isMobilePage: { type: Boolean }
6923
6934
  },
6924
- setup(__props) {
6935
+ emits: ["update:visible"],
6936
+ setup(__props, { emit: __emit }) {
6925
6937
  const props = __props;
6938
+ const emit = __emit;
6939
+ const visible = vue.ref(true);
6940
+ const childrenVisible = {};
6941
+ const updateVisible = (partId, value) => {
6942
+ childrenVisible[partId] = value;
6943
+ visible.value = props.part.children.some((child) => !(child.partId in childrenVisible) || childrenVisible[child.partId]);
6944
+ emit("update:visible", visible.value);
6945
+ };
6926
6946
  const classNames = vue.computed(() => [getPartClassName(props.part), props.part.getClassNames()]);
6927
6947
  const styleTag = vue.computed(() => props.part.getStyleTag());
6928
6948
  const style = vue.computed(() => ({
6929
6949
  ...props.part.getStyles(props.isMobilePage),
6930
6950
  ...props.part.getInlineStyles()
6931
6951
  }));
6932
- vue.computed(() => createPartComponents(props.part.children));
6933
6952
  return (_ctx, _cache) => {
6934
6953
  return vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [
6935
- styleTag.value ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent("style"), {
6954
+ styleTag.value && visible.value ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent("style"), {
6936
6955
  key: 0,
6937
6956
  innerHTML: styleTag.value
6938
6957
  }, null, 8, ["innerHTML"])) : vue.createCommentVNode("", true),
6939
- vue.createElementVNode("div", {
6958
+ vue.withDirectives(vue.createElementVNode("div", {
6940
6959
  class: vue.normalizeClass([classNames.value, "pb-block"]),
6941
6960
  "data-part-id": _ctx.part.partId,
6942
6961
  style: vue.normalizeStyle(style.value)
6943
6962
  }, [
6944
- (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.part.children, (child) => {
6945
- return vue.openBlock(), vue.createBlock(_sfc_main$c$1, {
6963
+ _ctx.part.children && _ctx.part.children.length > 0 ? (vue.openBlock(true), vue.createElementBlock(vue.Fragment, { key: 0 }, vue.renderList(_ctx.part.children, (child) => {
6964
+ return vue.openBlock(), vue.createBlock(_sfc_main$b$1, {
6946
6965
  key: child.partId,
6947
- part: child
6948
- }, null, 8, ["part"]);
6949
- }), 128))
6950
- ], 14, _hoisted_1$a$1)
6966
+ part: child,
6967
+ "onUpdate:visible": (value) => updateVisible(child.partId, value)
6968
+ }, null, 8, ["part", "onUpdate:visible"]);
6969
+ }), 128)) : vue.createCommentVNode("", true)
6970
+ ], 14, _hoisted_1$9$1), [
6971
+ [vue.vShow, visible.value]
6972
+ ])
6951
6973
  ], 64);
6952
6974
  };
6953
6975
  }
6954
6976
  });
6955
- const _hoisted_1$9$1 = { class: "pb-block" };
6956
- const _sfc_main$a$1 = /* @__PURE__ */ vue.defineComponent({
6957
- __name: "PbLoginDepart",
6958
- props: {
6959
- part: {}
6960
- },
6961
- setup(__props) {
6962
- return (_ctx, _cache) => {
6963
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$9$1, _cache[0] || (_cache[0] = [
6964
- vue.createElementVNode("div", {
6965
- class: "pb-widget",
6966
- style: { "margin": "0 auto" }
6967
- }, [
6968
- vue.createElementVNode("div", { class: "pb-login-widget" }, [
6969
- vue.createElementVNode("h3", null, "Login Design Part")
6970
- ])
6971
- ], -1)
6972
- ]));
6973
- };
6974
- }
6975
- });
6976
6977
  const _hoisted_1$8$1 = ["data-part-id"];
6977
6978
  const _sfc_main$9$1 = /* @__PURE__ */ vue.defineComponent({
6978
6979
  __name: "PbSection",
@@ -6982,6 +6983,12 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
6982
6983
  },
6983
6984
  setup(__props) {
6984
6985
  const props = __props;
6986
+ const visible = vue.ref(true);
6987
+ const childrenVisible = {};
6988
+ const updateVisible = (partId, value) => {
6989
+ childrenVisible[partId] = value;
6990
+ visible.value = props.part.children.some((child) => !(child.partId in childrenVisible) || childrenVisible[child.partId]);
6991
+ };
6985
6992
  const classNames = vue.computed(() => [getPartClassName(props.part), props.part.getClassNames()]);
6986
6993
  const styleTag = vue.computed(() => props.part.getStyleTag());
6987
6994
  const style = vue.computed(() => ({
@@ -6989,28 +6996,27 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
6989
6996
  ...props.part.getInlineStyles()
6990
6997
  }));
6991
6998
  return (_ctx, _cache) => {
6992
- var _a;
6993
6999
  return vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [
6994
- styleTag.value ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent("style"), {
7000
+ styleTag.value && visible.value ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent("style"), {
6995
7001
  key: 0,
6996
7002
  innerHTML: styleTag.value
6997
7003
  }, null, 8, ["innerHTML"])) : vue.createCommentVNode("", true),
6998
- vue.createElementVNode("div", {
7004
+ vue.withDirectives(vue.createElementVNode("div", {
6999
7005
  class: vue.normalizeClass([classNames.value, "pb-section"]),
7000
7006
  "data-part-id": _ctx.part.partId,
7001
7007
  style: vue.normalizeStyle(style.value)
7002
7008
  }, [
7003
- ((_a = _ctx.part.properties) == null ? void 0 : _a.name) === "Login Design Part" ? (vue.openBlock(), vue.createBlock(_sfc_main$a$1, {
7004
- key: 0,
7005
- part: _ctx.part
7006
- }, null, 8, ["part"])) : _ctx.part.children && _ctx.part.children.length > 0 ? (vue.openBlock(true), vue.createElementBlock(vue.Fragment, { key: 1 }, vue.renderList(_ctx.part.children, (block) => {
7007
- return vue.openBlock(), vue.createBlock(_sfc_main$b$1, {
7008
- key: block.partId,
7009
+ _ctx.part.children && _ctx.part.children.length > 0 ? (vue.openBlock(true), vue.createElementBlock(vue.Fragment, { key: 0 }, vue.renderList(_ctx.part.children, (child) => {
7010
+ return vue.openBlock(), vue.createBlock(_sfc_main$a$1, {
7011
+ key: child.partId,
7009
7012
  "is-mobile-page": _ctx.isMobilePage,
7010
- part: block
7011
- }, null, 8, ["is-mobile-page", "part"]);
7013
+ part: child,
7014
+ "onUpdate:visible": (value) => updateVisible(child.partId, value)
7015
+ }, null, 8, ["is-mobile-page", "part", "onUpdate:visible"]);
7012
7016
  }), 128)) : vue.createCommentVNode("", true)
7013
- ], 14, _hoisted_1$8$1)
7017
+ ], 14, _hoisted_1$8$1), [
7018
+ [vue.vShow, visible.value]
7019
+ ])
7014
7020
  ], 64);
7015
7021
  };
7016
7022
  }
@@ -7235,20 +7241,37 @@ ${_html.style}
7235
7241
  });
7236
7242
  const onReady = () => {
7237
7243
  };
7244
+ const isYTReady = vue.ref(false);
7245
+ vue.onMounted(() => {
7246
+ const interval = setInterval(() => {
7247
+ if (window.YT) {
7248
+ isYTReady.value = true;
7249
+ clearInterval(interval);
7250
+ }
7251
+ }, 500);
7252
+ });
7238
7253
  return (_ctx, _cache) => {
7239
7254
  var _a, _b;
7240
- return ((_a = _ctx.part.properties) == null ? void 0 : _a.url) ? (vue.openBlock(), vue.createBlock(vue.unref(YouTube), {
7241
- key: 0,
7242
- ref: "youtube",
7243
- src: ((_b = _ctx.part.properties) == null ? void 0 : _b.url) || "",
7244
- style: vue.normalizeStyle(style.value),
7245
- class: "youtube",
7246
- height: "100%",
7247
- width: "100%",
7248
- onReady
7249
- }, null, 8, ["src", "style"])) : _ctx.placeholder ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$3$1, _cache[0] || (_cache[0] = [
7250
- vue.createElementVNode("span", { class: "font-icon" }, "live_tv", -1)
7251
- ]))) : vue.createCommentVNode("", true);
7255
+ return vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [
7256
+ (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent("script"), {
7257
+ id: "youtube-iframe-js-api-script",
7258
+ src: "https://www.youtube.com/iframe_api"
7259
+ })),
7260
+ ((_a = _ctx.part.properties) == null ? void 0 : _a.url) ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
7261
+ isYTReady.value ? (vue.openBlock(), vue.createBlock(vue.unref(YouTube), {
7262
+ key: 0,
7263
+ ref: "youtube",
7264
+ src: ((_b = _ctx.part.properties) == null ? void 0 : _b.url) || "",
7265
+ style: vue.normalizeStyle(style.value),
7266
+ class: "youtube",
7267
+ height: "100%",
7268
+ width: "100%",
7269
+ onReady
7270
+ }, null, 8, ["src", "style"])) : vue.createCommentVNode("", true)
7271
+ ], 64)) : _ctx.placeholder ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$3$1, _cache[0] || (_cache[0] = [
7272
+ vue.createElementVNode("span", { class: "font-icon" }, "live_tv", -1)
7273
+ ]))) : vue.createCommentVNode("", true)
7274
+ ], 64);
7252
7275
  };
7253
7276
  }
7254
7277
  });
@@ -7263,7 +7286,7 @@ ${_html.style}
7263
7286
  partType: "Block",
7264
7287
  partName: "Block",
7265
7288
  className: "pb-block",
7266
- creator: () => _sfc_main$b$1
7289
+ creator: () => _sfc_main$a$1
7267
7290
  },
7268
7291
  "TextWidget": {
7269
7292
  partType: "Widget",
@@ -11982,6 +12005,11 @@ ${_html.style}
11982
12005
  caption: "Wrap",
11983
12006
  propertyType: "select",
11984
12007
  params: "nowrap,wrap"
12008
+ },
12009
+ {
12010
+ propertyName: "gap",
12011
+ caption: "Gap",
12012
+ propertyType: "text"
11985
12013
  }
11986
12014
  ]
11987
12015
  };
@@ -12296,7 +12324,7 @@ ${_html.style}
12296
12324
  },
12297
12325
  {
12298
12326
  propertyName: "altText",
12299
- caption: "ALT Text",
12327
+ caption: "Alt Text",
12300
12328
  propertyType: "text",
12301
12329
  params: "",
12302
12330
  multiLang: true
@@ -14773,6 +14801,10 @@ ${_html.style}
14773
14801
  });
14774
14802
  return (_ctx, _cache) => {
14775
14803
  return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$e, [
14804
+ (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent("script"), {
14805
+ id: "youtube-iframe-js-api-script",
14806
+ src: "https://www.youtube.com/iframe_api"
14807
+ })),
14776
14808
  vue.createVNode(_sfc_main$n, { "toolbar-plugin": _ctx.toolbarPlugin }, null, 8, ["toolbar-plugin"]),
14777
14809
  vue.createElementVNode("div", _hoisted_2$d, [
14778
14810
  vue.createVNode(_sfc_main$m),
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@g1cloud/page-builder-editor",
3
3
  "private": false,
4
- "version": "1.0.0-alpha.42",
4
+ "version": "1.0.0-alpha.44",
5
5
  "engins": {
6
6
  "node": ">= 20.0.0"
7
7
  },
@@ -30,7 +30,7 @@
30
30
  "vue-router": "^4.4.3",
31
31
  "vue3-click-away": "^1.2.4",
32
32
  "yjs": "^13.6.14",
33
- "@g1cloud/page-builder-viewer": "1.0.0-alpha.42"
33
+ "@g1cloud/page-builder-viewer": "1.0.0-alpha.44"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@types/node": "^20.12.7",