@g1cloud/page-builder-editor 1.0.0-alpha.53 → 1.0.0-alpha.55

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.
@@ -6880,8 +6880,8 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
6880
6880
  this.rootPart = vue.ref(new RootPart());
6881
6881
  }
6882
6882
  };
6883
- const _hoisted_1$b$1 = ["data-part-id"];
6884
- 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({
6885
6885
  __name: "PbWidget",
6886
6886
  props: {
6887
6887
  part: {}
@@ -6919,15 +6919,15 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
6919
6919
  part: _ctx.part,
6920
6920
  "onUpdate:visible": updateVisible
6921
6921
  }, null, 40, ["part"])) : vue.createCommentVNode("", true)
6922
- ], 14, _hoisted_1$b$1), [
6922
+ ], 14, _hoisted_1$a$1), [
6923
6923
  [vue.vShow, visible.value]
6924
6924
  ])
6925
6925
  ], 64);
6926
6926
  };
6927
6927
  }
6928
6928
  });
6929
- const _hoisted_1$a$1 = ["data-part-id"];
6930
- const _sfc_main$b$1 = /* @__PURE__ */ vue.defineComponent({
6929
+ const _hoisted_1$9$1 = ["data-part-id"];
6930
+ const _sfc_main$a$1 = /* @__PURE__ */ vue.defineComponent({
6931
6931
  __name: "PbBlock",
6932
6932
  props: {
6933
6933
  part: {},
@@ -6962,21 +6962,21 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
6962
6962
  style: vue.normalizeStyle(style.value)
6963
6963
  }, [
6964
6964
  _ctx.part.children && _ctx.part.children.length > 0 ? (vue.openBlock(true), vue.createElementBlock(vue.Fragment, { key: 0 }, vue.renderList(_ctx.part.children, (child) => {
6965
- return vue.openBlock(), vue.createBlock(_sfc_main$c$1, {
6965
+ return vue.openBlock(), vue.createBlock(_sfc_main$b$1, {
6966
6966
  key: child.partId,
6967
6967
  part: child,
6968
6968
  "onUpdate:visible": _cache[0] || (_cache[0] = (value, hideParentWhenInvisible) => updateVisible(value, hideParentWhenInvisible))
6969
6969
  }, null, 8, ["part"]);
6970
6970
  }), 128)) : vue.createCommentVNode("", true)
6971
- ], 14, _hoisted_1$a$1), [
6971
+ ], 14, _hoisted_1$9$1), [
6972
6972
  [vue.vShow, visible.value]
6973
6973
  ])
6974
6974
  ], 64);
6975
6975
  };
6976
6976
  }
6977
6977
  });
6978
- const _hoisted_1$9$1 = ["data-part-id"];
6979
- const _sfc_main$a$1 = /* @__PURE__ */ vue.defineComponent({
6978
+ const _hoisted_1$8$1 = ["data-part-id"];
6979
+ const _sfc_main$9$1 = /* @__PURE__ */ vue.defineComponent({
6980
6980
  __name: "PbSection",
6981
6981
  props: {
6982
6982
  part: {},
@@ -7008,92 +7008,30 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
7008
7008
  style: vue.normalizeStyle(style.value)
7009
7009
  }, [
7010
7010
  _ctx.part.children && _ctx.part.children.length > 0 ? (vue.openBlock(true), vue.createElementBlock(vue.Fragment, { key: 0 }, vue.renderList(_ctx.part.children, (child) => {
7011
- return vue.openBlock(), vue.createBlock(_sfc_main$b$1, {
7011
+ return vue.openBlock(), vue.createBlock(_sfc_main$a$1, {
7012
7012
  key: child.partId,
7013
7013
  "is-mobile-page": _ctx.isMobilePage,
7014
7014
  part: child,
7015
7015
  "onUpdate:visible": _cache[0] || (_cache[0] = (value, hideParentWhenInvisible) => updateVisible(value, hideParentWhenInvisible))
7016
7016
  }, null, 8, ["is-mobile-page", "part"]);
7017
7017
  }), 128)) : vue.createCommentVNode("", true)
7018
- ], 14, _hoisted_1$9$1), [
7018
+ ], 14, _hoisted_1$8$1), [
7019
7019
  [vue.vShow, visible.value]
7020
7020
  ])
7021
7021
  ], 64);
7022
7022
  };
7023
7023
  }
7024
7024
  });
7025
- const _hoisted_1$8$1 = ["href", "target"];
7026
- const _hoisted_2$5$1 = ["alt", "src"];
7027
- const _hoisted_3$1$1 = ["alt", "src"];
7028
- const _hoisted_4$1$1 = {
7029
- key: 1,
7030
- class: "placeholder"
7031
- };
7032
- const _sfc_main$9$1 = /* @__PURE__ */ vue.defineComponent({
7033
- __name: "PbImageWidget",
7034
- props: {
7035
- part: {},
7036
- placeholder: { type: Boolean }
7037
- },
7038
- setup(__props) {
7039
- const props = __props;
7040
- const pageBuilder = usePageBuilder();
7041
- const altText = vue.computed(() => {
7042
- var _a;
7043
- const media = (_a = props.part.properties) == null ? void 0 : _a.media;
7044
- if (media && media.altText) {
7045
- const locale = pageBuilder.getLocale();
7046
- return media.altText[locale] || "";
7047
- }
7048
- return "";
7049
- });
7050
- const style = vue.computed(() => {
7051
- var _a;
7052
- const media = (_a = props.part.properties) == null ? void 0 : _a.media;
7053
- if (media.width && media.height) {
7054
- return {
7055
- aspectRatio: media.width / media.height
7056
- };
7057
- }
7058
- return {};
7059
- });
7060
- return (_ctx, _cache) => {
7061
- var _a, _b, _c, _d, _e, _f;
7062
- return ((_a = _ctx.part.properties) == null ? void 0 : _a.media) ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
7063
- ((_b = _ctx.part.properties) == null ? void 0 : _b.link) ? (vue.openBlock(), vue.createElementBlock("a", {
7064
- key: 0,
7065
- href: (_c = _ctx.part.properties) == null ? void 0 : _c.link,
7066
- target: (_d = _ctx.part.properties) == null ? void 0 : _d.linkTarget
7067
- }, [
7068
- vue.createElementVNode("img", {
7069
- alt: altText.value,
7070
- src: ((_e = _ctx.part.properties) == null ? void 0 : _e.media).url,
7071
- style: vue.normalizeStyle(style.value),
7072
- class: "image"
7073
- }, null, 12, _hoisted_2$5$1)
7074
- ], 8, _hoisted_1$8$1)) : (vue.openBlock(), vue.createElementBlock("img", {
7075
- key: 1,
7076
- alt: altText.value,
7077
- src: ((_f = _ctx.part.properties) == null ? void 0 : _f.media).url,
7078
- style: vue.normalizeStyle(style.value),
7079
- class: "image"
7080
- }, null, 12, _hoisted_3$1$1))
7081
- ], 64)) : _ctx.placeholder ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$1$1, _cache[0] || (_cache[0] = [
7082
- vue.createElementVNode("span", { class: "font-icon" }, "image", -1)
7083
- ]))) : vue.createCommentVNode("", true);
7084
- };
7085
- }
7086
- });
7087
7025
  const _hoisted_1$7$1 = ["href", "target"];
7088
7026
  const _hoisted_2$4$1 = ["alt", "src"];
7089
- const _hoisted_3$j = ["alt", "src"];
7090
- const _hoisted_4$e = ["poster"];
7091
- const _hoisted_5$a = ["src"];
7027
+ const _hoisted_3$k = ["alt", "src"];
7028
+ const _hoisted_4$f = ["poster"];
7029
+ const _hoisted_5$b = ["src"];
7092
7030
  const _hoisted_6$a = {
7093
7031
  key: 1,
7094
7032
  class: "placeholder"
7095
7033
  };
7096
- const _hoisted_7$8 = { class: "font-icon" };
7034
+ const _hoisted_7$9 = { class: "font-icon" };
7097
7035
  const _sfc_main$8$1 = /* @__PURE__ */ vue.defineComponent({
7098
7036
  __name: "PbMediaWidget",
7099
7037
  props: {
@@ -7139,17 +7077,17 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
7139
7077
  }, [
7140
7078
  vue.createElementVNode("img", {
7141
7079
  alt: altText.value,
7142
- src: ((_d = _ctx.part.properties) == null ? void 0 : _d.media).url,
7080
+ src: ((_d = _ctx.part.properties) == null ? void 0 : _d.media).fileUrl,
7143
7081
  style: vue.normalizeStyle(style.value),
7144
7082
  class: "image"
7145
7083
  }, null, 12, _hoisted_2$4$1)
7146
7084
  ], 8, _hoisted_1$7$1)) : (vue.openBlock(), vue.createElementBlock("img", {
7147
7085
  key: 1,
7148
7086
  alt: altText.value,
7149
- src: ((_e = _ctx.part.properties) == null ? void 0 : _e.media).url,
7087
+ src: ((_e = _ctx.part.properties) == null ? void 0 : _e.media).fileUrl,
7150
7088
  style: vue.normalizeStyle(style.value),
7151
7089
  class: "image"
7152
- }, null, 12, _hoisted_3$j))
7090
+ }, null, 12, _hoisted_3$k))
7153
7091
  ], 64)) : media.value.mediaType === "Video" ? (vue.openBlock(), vue.createElementBlock("video", {
7154
7092
  key: 1,
7155
7093
  ref: "video",
@@ -7158,11 +7096,11 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
7158
7096
  controls: ""
7159
7097
  }, [
7160
7098
  vue.createElementVNode("source", {
7161
- src: `${media.value.url}#t=0.01`
7162
- }, null, 8, _hoisted_5$a)
7163
- ], 8, _hoisted_4$e)) : vue.createCommentVNode("", true)
7099
+ src: `${media.value.fileUrl}#t=0.01`
7100
+ }, null, 8, _hoisted_5$b)
7101
+ ], 8, _hoisted_4$f)) : vue.createCommentVNode("", true)
7164
7102
  ], 64)) : _ctx.placeholder ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$a, [
7165
- vue.createElementVNode("span", _hoisted_7$8, vue.toDisplayString(placeholderIcon.value), 1)
7103
+ vue.createElementVNode("span", _hoisted_7$9, vue.toDisplayString(placeholderIcon.value), 1)
7166
7104
  ])) : vue.createCommentVNode("", true);
7167
7105
  };
7168
7106
  }
@@ -7364,13 +7302,13 @@ ${_html.style}
7364
7302
  partType: "Section",
7365
7303
  partName: "Section",
7366
7304
  className: "pb-section",
7367
- creator: () => _sfc_main$a$1
7305
+ creator: () => _sfc_main$9$1
7368
7306
  },
7369
7307
  "Block": {
7370
7308
  partType: "Block",
7371
7309
  partName: "Block",
7372
7310
  className: "pb-block",
7373
- creator: () => _sfc_main$b$1
7311
+ creator: () => _sfc_main$a$1
7374
7312
  },
7375
7313
  "TextWidget": {
7376
7314
  partType: "Widget",
@@ -7378,12 +7316,6 @@ ${_html.style}
7378
7316
  className: "pb-text-widget",
7379
7317
  creator: () => _sfc_main$7$1
7380
7318
  },
7381
- "ImageWidget": {
7382
- partType: "Widget",
7383
- partName: "ImageWidget",
7384
- className: "pb-image-widget",
7385
- creator: () => _sfc_main$9$1
7386
- },
7387
7319
  "MediaWidget": {
7388
7320
  partType: "Widget",
7389
7321
  partName: "MediaWidget",
@@ -7582,7 +7514,7 @@ ${_html.style}
7582
7514
  style: vue.normalizeStyle(style.value)
7583
7515
  }, [
7584
7516
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.part.children, (section) => {
7585
- return vue.openBlock(), vue.createBlock(_sfc_main$a$1, {
7517
+ return vue.openBlock(), vue.createBlock(_sfc_main$9$1, {
7586
7518
  key: section.partId,
7587
7519
  "is-mobile-page": _ctx.isMobilePage,
7588
7520
  part: section
@@ -9157,7 +9089,7 @@ ${_html.style}
9157
9089
  const acceptWidget = (pageBuilder2, target, droppedPart, mouseOffsetX, mouseOffsetY) => {
9158
9090
  const block = props.part;
9159
9091
  let update = void 0;
9160
- if (droppedPart.partName === "ImageWidget") {
9092
+ if (droppedPart.partName === "MediaWidget") {
9161
9093
  update = [{
9162
9094
  partId: droppedPart.partId,
9163
9095
  properties: {
@@ -9374,12 +9306,12 @@ ${_html.style}
9374
9306
  });
9375
9307
  const _hoisted_1$C = { class: "group-editor group-editor-position" };
9376
9308
  const _hoisted_2$t = { class: "flex-align-center" };
9377
- const _hoisted_3$i = { class: "title" };
9378
- const _hoisted_4$d = { class: "flex-grow-1" };
9379
- const _hoisted_5$9 = { class: "bg-gray-100 py-5 rounded-8" };
9309
+ const _hoisted_3$j = { class: "title" };
9310
+ const _hoisted_4$e = { class: "flex-grow-1" };
9311
+ const _hoisted_5$a = { class: "bg-gray-100 py-5 rounded-8" };
9380
9312
  const _hoisted_6$9 = { class: "text-center" };
9381
- const _hoisted_7$7 = { class: "bs-layout-horizontal justify-content-center align-items-center" };
9382
- const _hoisted_8$6 = { class: "text-center" };
9313
+ const _hoisted_7$8 = { class: "bs-layout-horizontal justify-content-center align-items-center" };
9314
+ const _hoisted_8$7 = { class: "text-center" };
9383
9315
  const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
9384
9316
  __name: "PbPropertyGroupEditorPosition",
9385
9317
  props: {
@@ -9406,13 +9338,13 @@ ${_html.style}
9406
9338
  return (_ctx, _cache) => {
9407
9339
  return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$C, [
9408
9340
  vue.createElementVNode("div", _hoisted_2$t, [
9409
- vue.createElementVNode("div", _hoisted_3$i, [
9341
+ vue.createElementVNode("div", _hoisted_3$j, [
9410
9342
  vue.withDirectives(vue.createElementVNode("label", null, null, 512), [
9411
9343
  [vue.unref(bluesea.vT), { key: "pb.prop.position" }]
9412
9344
  ])
9413
9345
  ]),
9414
- vue.createElementVNode("div", _hoisted_4$d, [
9415
- vue.createElementVNode("div", _hoisted_5$9, [
9346
+ vue.createElementVNode("div", _hoisted_4$e, [
9347
+ vue.createElementVNode("div", _hoisted_5$a, [
9416
9348
  vue.createElementVNode("div", _hoisted_6$9, [
9417
9349
  vue.createVNode(vue.unref(bluesea.BSTextInput), {
9418
9350
  "model-value": top.value,
@@ -9422,7 +9354,7 @@ ${_html.style}
9422
9354
  "onUpdate:modelValue": updateTop
9423
9355
  }, null, 8, ["model-value"])
9424
9356
  ]),
9425
- vue.createElementVNode("div", _hoisted_7$7, [
9357
+ vue.createElementVNode("div", _hoisted_7$8, [
9426
9358
  vue.createVNode(vue.unref(bluesea.BSTextInput), {
9427
9359
  "model-value": left.value,
9428
9360
  class: "ml-4",
@@ -9444,7 +9376,7 @@ ${_html.style}
9444
9376
  "onUpdate:modelValue": updateRight
9445
9377
  }, null, 8, ["model-value"])
9446
9378
  ]),
9447
- vue.createElementVNode("div", _hoisted_8$6, [
9379
+ vue.createElementVNode("div", _hoisted_8$7, [
9448
9380
  vue.createVNode(vue.unref(bluesea.BSTextInput), {
9449
9381
  "model-value": bottom.value,
9450
9382
  class: "ml-4",
@@ -9462,12 +9394,12 @@ ${_html.style}
9462
9394
  });
9463
9395
  const _hoisted_1$B = { class: "group-editor group-editor-size" };
9464
9396
  const _hoisted_2$s = { class: "flex-align-center" };
9465
- const _hoisted_3$h = { class: "title" };
9466
- const _hoisted_4$c = { class: "flex-grow-1 bs-layout-horizontal" };
9467
- const _hoisted_5$8 = { class: "flex-align-center mt-12" };
9397
+ const _hoisted_3$i = { class: "title" };
9398
+ const _hoisted_4$d = { class: "flex-grow-1 bs-layout-horizontal" };
9399
+ const _hoisted_5$9 = { class: "flex-align-center mt-12" };
9468
9400
  const _hoisted_6$8 = { class: "title" };
9469
- const _hoisted_7$6 = { class: "flex-grow-1 bs-layout-horizontal" };
9470
- const _hoisted_8$5 = { class: "flex-align-center mt-12" };
9401
+ const _hoisted_7$7 = { class: "flex-grow-1 bs-layout-horizontal" };
9402
+ const _hoisted_8$6 = { class: "flex-align-center mt-12" };
9471
9403
  const _hoisted_9$3 = { class: "title" };
9472
9404
  const _hoisted_10$3 = { class: "flex-grow-1 bs-layout-horizontal" };
9473
9405
  const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
@@ -9500,12 +9432,12 @@ ${_html.style}
9500
9432
  return (_ctx, _cache) => {
9501
9433
  return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$B, [
9502
9434
  vue.createElementVNode("div", _hoisted_2$s, [
9503
- vue.createElementVNode("div", _hoisted_3$h, [
9435
+ vue.createElementVNode("div", _hoisted_3$i, [
9504
9436
  vue.withDirectives(vue.createElementVNode("label", null, null, 512), [
9505
9437
  [vue.unref(bluesea.vT), { key: "pb.prop.size" }]
9506
9438
  ])
9507
9439
  ]),
9508
- vue.createElementVNode("div", _hoisted_4$c, [
9440
+ vue.createElementVNode("div", _hoisted_4$d, [
9509
9441
  vue.createVNode(vue.unref(bluesea.BSTextInput), {
9510
9442
  "model-value": width.value,
9511
9443
  class: "flex-grow-1 mr-2",
@@ -9520,13 +9452,13 @@ ${_html.style}
9520
9452
  }, null, 8, ["model-value"])
9521
9453
  ])
9522
9454
  ]),
9523
- vue.createElementVNode("div", _hoisted_5$8, [
9455
+ vue.createElementVNode("div", _hoisted_5$9, [
9524
9456
  vue.createElementVNode("div", _hoisted_6$8, [
9525
9457
  vue.withDirectives(vue.createElementVNode("label", null, null, 512), [
9526
9458
  [vue.unref(bluesea.vT), { key: "pb.prop.maxSize" }]
9527
9459
  ])
9528
9460
  ]),
9529
- vue.createElementVNode("div", _hoisted_7$6, [
9461
+ vue.createElementVNode("div", _hoisted_7$7, [
9530
9462
  vue.createVNode(vue.unref(bluesea.BSTextInput), {
9531
9463
  "model-value": maxWidth.value,
9532
9464
  class: "flex-grow-1 mr-2",
@@ -9541,7 +9473,7 @@ ${_html.style}
9541
9473
  }, null, 8, ["model-value"])
9542
9474
  ])
9543
9475
  ]),
9544
- vue.createElementVNode("div", _hoisted_8$5, [
9476
+ vue.createElementVNode("div", _hoisted_8$6, [
9545
9477
  vue.createElementVNode("div", _hoisted_9$3, [
9546
9478
  vue.withDirectives(vue.createElementVNode("label", null, null, 512), [
9547
9479
  [vue.unref(bluesea.vT), { key: "pb.prop.minSize" }]
@@ -9724,15 +9656,15 @@ ${_html.style}
9724
9656
  };
9725
9657
  const _hoisted_1$A = { class: "vc-alpha" };
9726
9658
  const _hoisted_2$r = { class: "vc-alpha-checkboard-wrap" };
9727
- const _hoisted_3$g = /* @__PURE__ */ vue.createElementVNode(
9659
+ const _hoisted_3$h = /* @__PURE__ */ vue.createElementVNode(
9728
9660
  "div",
9729
9661
  { class: "vc-alpha-picker" },
9730
9662
  null,
9731
9663
  -1
9732
9664
  /* HOISTED */
9733
9665
  );
9734
- const _hoisted_4$b = [
9735
- _hoisted_3$g
9666
+ const _hoisted_4$c = [
9667
+ _hoisted_3$h
9736
9668
  ];
9737
9669
  function render$4(_ctx, _cache, $props, $setup, $data, $options) {
9738
9670
  const _component_Checkboard = vue.resolveComponent("Checkboard");
@@ -9766,7 +9698,7 @@ ${_html.style}
9766
9698
  class: "vc-alpha-pointer",
9767
9699
  style: vue.normalizeStyle({ left: `${$options.colors.a * 100}%` })
9768
9700
  },
9769
- _hoisted_4$b,
9701
+ _hoisted_4$c,
9770
9702
  4
9771
9703
  /* STYLE */
9772
9704
  )
@@ -10842,8 +10774,8 @@ ${_html.style}
10842
10774
  };
10843
10775
  const _hoisted_1$z = { class: "vc-editable-input" };
10844
10776
  const _hoisted_2$q = ["aria-labelledby"];
10845
- const _hoisted_3$f = ["id", "for"];
10846
- const _hoisted_4$a = { class: "vc-input__desc" };
10777
+ const _hoisted_3$g = ["id", "for"];
10778
+ const _hoisted_4$b = { class: "vc-input__desc" };
10847
10779
  function render$3(_ctx, _cache, $props, $setup, $data, $options) {
10848
10780
  return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$z, [
10849
10781
  vue.withDirectives(vue.createElementVNode("input", {
@@ -10860,10 +10792,10 @@ ${_html.style}
10860
10792
  id: $options.labelId,
10861
10793
  for: $props.label,
10862
10794
  class: "vc-input__label"
10863
- }, vue.toDisplayString($options.labelSpanText), 9, _hoisted_3$f),
10795
+ }, vue.toDisplayString($options.labelSpanText), 9, _hoisted_3$g),
10864
10796
  vue.createElementVNode(
10865
10797
  "span",
10866
- _hoisted_4$a,
10798
+ _hoisted_4$b,
10867
10799
  vue.toDisplayString($props.desc),
10868
10800
  1
10869
10801
  /* TEXT */
@@ -10954,15 +10886,15 @@ ${_html.style}
10954
10886
  -1
10955
10887
  /* HOISTED */
10956
10888
  );
10957
- const _hoisted_3$e = /* @__PURE__ */ vue.createElementVNode(
10889
+ const _hoisted_3$f = /* @__PURE__ */ vue.createElementVNode(
10958
10890
  "div",
10959
10891
  { class: "vc-saturation-circle" },
10960
10892
  null,
10961
10893
  -1
10962
10894
  /* HOISTED */
10963
10895
  );
10964
- const _hoisted_4$9 = [
10965
- _hoisted_3$e
10896
+ const _hoisted_4$a = [
10897
+ _hoisted_3$f
10966
10898
  ];
10967
10899
  function render$2(_ctx, _cache, $props, $setup, $data, $options) {
10968
10900
  return vue.openBlock(), vue.createElementBlock(
@@ -10984,7 +10916,7 @@ ${_html.style}
10984
10916
  class: "vc-saturation-pointer",
10985
10917
  style: vue.normalizeStyle({ top: $options.pointerTop, left: $options.pointerLeft })
10986
10918
  },
10987
- _hoisted_4$9,
10919
+ _hoisted_4$a,
10988
10920
  4
10989
10921
  /* STYLE */
10990
10922
  )
@@ -11133,7 +11065,7 @@ ${_html.style}
11133
11065
  -1
11134
11066
  /* HOISTED */
11135
11067
  );
11136
- const _hoisted_3$d = [
11068
+ const _hoisted_3$e = [
11137
11069
  _hoisted_2$o
11138
11070
  ];
11139
11071
  function render$1(_ctx, _cache, $props, $setup, $data, $options) {
@@ -11161,7 +11093,7 @@ ${_html.style}
11161
11093
  style: vue.normalizeStyle({ top: $options.pointerTop, left: $options.pointerLeft }),
11162
11094
  role: "presentation"
11163
11095
  },
11164
- _hoisted_3$d,
11096
+ _hoisted_3$e,
11165
11097
  4
11166
11098
  /* STYLE */
11167
11099
  )
@@ -11263,15 +11195,15 @@ ${_html.style}
11263
11195
  };
11264
11196
  const _hoisted_1$w = { class: "vc-sketch-saturation-wrap" };
11265
11197
  const _hoisted_2$n = { class: "vc-sketch-controls" };
11266
- const _hoisted_3$c = { class: "vc-sketch-sliders" };
11267
- const _hoisted_4$8 = { class: "vc-sketch-hue-wrap" };
11268
- const _hoisted_5$7 = {
11198
+ const _hoisted_3$d = { class: "vc-sketch-sliders" };
11199
+ const _hoisted_4$9 = { class: "vc-sketch-hue-wrap" };
11200
+ const _hoisted_5$8 = {
11269
11201
  key: 0,
11270
11202
  class: "vc-sketch-alpha-wrap"
11271
11203
  };
11272
11204
  const _hoisted_6$7 = { class: "vc-sketch-color-wrap" };
11273
- const _hoisted_7$5 = ["aria-label"];
11274
- const _hoisted_8$4 = {
11205
+ const _hoisted_7$6 = ["aria-label"];
11206
+ const _hoisted_8$5 = {
11275
11207
  key: 0,
11276
11208
  class: "vc-sketch-field"
11277
11209
  };
@@ -11311,14 +11243,14 @@ ${_html.style}
11311
11243
  }, null, 8, ["value", "onChange"])
11312
11244
  ]),
11313
11245
  vue.createElementVNode("div", _hoisted_2$n, [
11314
- vue.createElementVNode("div", _hoisted_3$c, [
11315
- vue.createElementVNode("div", _hoisted_4$8, [
11246
+ vue.createElementVNode("div", _hoisted_3$d, [
11247
+ vue.createElementVNode("div", _hoisted_4$9, [
11316
11248
  vue.createVNode(_component_Hue, {
11317
11249
  value: _ctx.colors,
11318
11250
  onChange: $options.childChange
11319
11251
  }, null, 8, ["value", "onChange"])
11320
11252
  ]),
11321
- !$props.disableAlpha ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$7, [
11253
+ !$props.disableAlpha ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$8, [
11322
11254
  vue.createVNode(_component_Alpha, {
11323
11255
  value: _ctx.colors,
11324
11256
  onChange: $options.childChange
@@ -11330,11 +11262,11 @@ ${_html.style}
11330
11262
  "aria-label": `Current color is ${$options.activeColor}`,
11331
11263
  class: "vc-sketch-active-color",
11332
11264
  style: vue.normalizeStyle({ background: $options.activeColor })
11333
- }, null, 12, _hoisted_7$5),
11265
+ }, null, 12, _hoisted_7$6),
11334
11266
  vue.createVNode(_component_Checkboard)
11335
11267
  ])
11336
11268
  ]),
11337
- !$props.disableFields ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_8$4, [
11269
+ !$props.disableFields ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_8$5, [
11338
11270
  vue.createCommentVNode(" rgba "),
11339
11271
  vue.createElementVNode("div", _hoisted_9$2, [
11340
11272
  vue.createVNode(_component_EdIn, {
@@ -11516,9 +11448,9 @@ ${_html.style}
11516
11448
  const PbColorPicker = /* @__PURE__ */ _export_sfc(_sfc_main$x, [["render", _sfc_render]]);
11517
11449
  const _hoisted_1$u = { class: "group-editor group-editor-background" };
11518
11450
  const _hoisted_2$l = { class: "flex-align-center" };
11519
- const _hoisted_3$b = { class: "title" };
11520
- const _hoisted_4$7 = { class: "bs-layout-horizontal" };
11521
- const _hoisted_5$6 = { class: "color" };
11451
+ const _hoisted_3$c = { class: "title" };
11452
+ const _hoisted_4$8 = { class: "bs-layout-horizontal" };
11453
+ const _hoisted_5$7 = { class: "color" };
11522
11454
  const _hoisted_6$6 = { class: "image" };
11523
11455
  const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
11524
11456
  __name: "PbPropertyGroupEditorBackground",
@@ -11546,8 +11478,8 @@ ${_html.style}
11546
11478
  const imageProvider = pageBuilder.getProvider("imageProvider");
11547
11479
  if (imageProvider) {
11548
11480
  imageProvider({ modal, mediaTypes: ["Image"] }, (media) => {
11549
- if (media.mediaType === "Image") {
11550
- updatePropertyValue({ backgroundImage: media.url });
11481
+ if (media.mediaType === "Image" && media.fileUrl) {
11482
+ updatePropertyValue({ backgroundImage: media.fileUrl });
11551
11483
  }
11552
11484
  });
11553
11485
  }
@@ -11555,13 +11487,13 @@ ${_html.style}
11555
11487
  return (_ctx, _cache) => {
11556
11488
  return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$u, [
11557
11489
  vue.createElementVNode("div", _hoisted_2$l, [
11558
- vue.createElementVNode("div", _hoisted_3$b, [
11490
+ vue.createElementVNode("div", _hoisted_3$c, [
11559
11491
  vue.withDirectives(vue.createElementVNode("label", null, null, 512), [
11560
11492
  [vue.unref(bluesea.vT), { key: "pb.prop.background" }]
11561
11493
  ])
11562
11494
  ]),
11563
- vue.createElementVNode("div", _hoisted_4$7, [
11564
- vue.createElementVNode("div", _hoisted_5$6, [
11495
+ vue.createElementVNode("div", _hoisted_4$8, [
11496
+ vue.createElementVNode("div", _hoisted_5$7, [
11565
11497
  vue.createVNode(PbColorPicker, {
11566
11498
  value: color.value,
11567
11499
  "hide-delete": "",
@@ -11594,12 +11526,12 @@ ${_html.style}
11594
11526
  const BottomRightCornerIcon = "data:image/svg+xml,%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%20www.svgrepo.com,%20Transformed%20by:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20width='800px'%20height='800px'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%20fill='%23000000'%20transform='rotate(90)'%3e%3cg%20id='SVGRepo_bgCarrier'%20stroke-width='0'/%3e%3cg%20id='SVGRepo_tracerCarrier'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cg%20id='SVGRepo_iconCarrier'%3e%3cg%3e%3cpath%20fill='none'%20d='M0%200H24V24H0z'/%3e%3cpath%20d='M21%2019v2h-2v-2h2zm-4%200v2h-2v-2h2zm-4%200v2h-2v-2h2zm-4%200v2H7v-2h2zm-4%200v2H3v-2h2zm16-4v2h-2v-2h2zM5%2015v2H3v-2h2zm0-4v2H3v-2h2zm11-8c2.687%200%204.882%202.124%204.995%204.783L21%208v5h-2V8c0-1.591-1.255-2.903-2.824-2.995L16%205h-5V3h5zM5%207v2H3V7h2zm0-4v2H3V3h2zm4%200v2H7V3h2z'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e";
11595
11527
  const _hoisted_1$t = { class: "group-editor group-editor-border" };
11596
11528
  const _hoisted_2$k = { class: "flex-align-center" };
11597
- const _hoisted_3$a = { class: "title" };
11598
- const _hoisted_4$6 = { class: "" };
11599
- const _hoisted_5$5 = { class: "sub-title" };
11529
+ const _hoisted_3$b = { class: "title" };
11530
+ const _hoisted_4$7 = { class: "" };
11531
+ const _hoisted_5$6 = { class: "sub-title" };
11600
11532
  const _hoisted_6$5 = { class: "color" };
11601
- const _hoisted_7$4 = { class: "mt-8" };
11602
- const _hoisted_8$3 = { class: "sub-title" };
11533
+ const _hoisted_7$5 = { class: "mt-8" };
11534
+ const _hoisted_8$4 = { class: "sub-title" };
11603
11535
  const _hoisted_9$1 = { class: "flex-grow-1 mt-4" };
11604
11536
  const _hoisted_10$1 = { class: "bg-gray-100 py-5 rounded-8" };
11605
11537
  const _hoisted_11 = { class: "text-center" };
@@ -11651,13 +11583,13 @@ ${_html.style}
11651
11583
  return (_ctx, _cache) => {
11652
11584
  return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$t, [
11653
11585
  vue.createElementVNode("div", _hoisted_2$k, [
11654
- vue.createElementVNode("div", _hoisted_3$a, [
11586
+ vue.createElementVNode("div", _hoisted_3$b, [
11655
11587
  vue.withDirectives(vue.createElementVNode("label", null, null, 512), [
11656
11588
  [vue.unref(bluesea.vT), { key: "pb.prop.border" }]
11657
11589
  ])
11658
11590
  ]),
11659
- vue.createElementVNode("div", _hoisted_4$6, [
11660
- vue.createElementVNode("div", _hoisted_5$5, [
11591
+ vue.createElementVNode("div", _hoisted_4$7, [
11592
+ vue.createElementVNode("div", _hoisted_5$6, [
11661
11593
  vue.withDirectives(vue.createElementVNode("label", null, null, 512), [
11662
11594
  [vue.unref(bluesea.vT), { key: "pb.prop.borderColor" }]
11663
11595
  ])
@@ -11680,8 +11612,8 @@ ${_html.style}
11680
11612
  }, null, 8, ["model-value"])
11681
11613
  ])
11682
11614
  ]),
11683
- vue.createElementVNode("div", _hoisted_7$4, [
11684
- vue.createElementVNode("div", _hoisted_8$3, [
11615
+ vue.createElementVNode("div", _hoisted_7$5, [
11616
+ vue.createElementVNode("div", _hoisted_8$4, [
11685
11617
  vue.withDirectives(vue.createElementVNode("label", null, null, 512), [
11686
11618
  [vue.unref(bluesea.vT), { key: "pb.prop.borderWidth" }]
11687
11619
  ])
@@ -11781,12 +11713,12 @@ ${_html.style}
11781
11713
  });
11782
11714
  const _hoisted_1$s = { class: "group-editor group-editor-margin" };
11783
11715
  const _hoisted_2$j = { class: "flex-align-center" };
11784
- const _hoisted_3$9 = { class: "title" };
11785
- const _hoisted_4$5 = { class: "flex-grow-1" };
11786
- const _hoisted_5$4 = { class: "bg-gray-100 py-5 rounded-8" };
11716
+ const _hoisted_3$a = { class: "title" };
11717
+ const _hoisted_4$6 = { class: "flex-grow-1" };
11718
+ const _hoisted_5$5 = { class: "bg-gray-100 py-5 rounded-8" };
11787
11719
  const _hoisted_6$4 = { class: "text-center" };
11788
- const _hoisted_7$3 = { class: "bs-layout-horizontal justify-content-center align-items-center" };
11789
- const _hoisted_8$2 = { class: "text-center" };
11720
+ const _hoisted_7$4 = { class: "bs-layout-horizontal justify-content-center align-items-center" };
11721
+ const _hoisted_8$3 = { class: "text-center" };
11790
11722
  const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
11791
11723
  __name: "PbPropertyGroupEditorMargin",
11792
11724
  props: {
@@ -11813,13 +11745,13 @@ ${_html.style}
11813
11745
  return (_ctx, _cache) => {
11814
11746
  return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$s, [
11815
11747
  vue.createElementVNode("div", _hoisted_2$j, [
11816
- vue.createElementVNode("div", _hoisted_3$9, [
11748
+ vue.createElementVNode("div", _hoisted_3$a, [
11817
11749
  vue.withDirectives(vue.createElementVNode("label", null, null, 512), [
11818
11750
  [vue.unref(bluesea.vT), { key: "pb.prop.margin" }]
11819
11751
  ])
11820
11752
  ]),
11821
- vue.createElementVNode("div", _hoisted_4$5, [
11822
- vue.createElementVNode("div", _hoisted_5$4, [
11753
+ vue.createElementVNode("div", _hoisted_4$6, [
11754
+ vue.createElementVNode("div", _hoisted_5$5, [
11823
11755
  vue.createElementVNode("div", _hoisted_6$4, [
11824
11756
  vue.createVNode(vue.unref(bluesea.BSTextInput), {
11825
11757
  "model-value": top.value,
@@ -11829,7 +11761,7 @@ ${_html.style}
11829
11761
  "onUpdate:modelValue": updateTop
11830
11762
  }, null, 8, ["model-value"])
11831
11763
  ]),
11832
- vue.createElementVNode("div", _hoisted_7$3, [
11764
+ vue.createElementVNode("div", _hoisted_7$4, [
11833
11765
  vue.createVNode(vue.unref(bluesea.BSTextInput), {
11834
11766
  "model-value": left.value,
11835
11767
  class: "ml-4",
@@ -11851,7 +11783,7 @@ ${_html.style}
11851
11783
  "onUpdate:modelValue": updateRight
11852
11784
  }, null, 8, ["model-value"])
11853
11785
  ]),
11854
- vue.createElementVNode("div", _hoisted_8$2, [
11786
+ vue.createElementVNode("div", _hoisted_8$3, [
11855
11787
  vue.createVNode(vue.unref(bluesea.BSTextInput), {
11856
11788
  "model-value": bottom.value,
11857
11789
  class: "ml-4",
@@ -11869,12 +11801,12 @@ ${_html.style}
11869
11801
  });
11870
11802
  const _hoisted_1$r = { class: "group-editor group-editor-padding" };
11871
11803
  const _hoisted_2$i = { class: "flex-align-center" };
11872
- const _hoisted_3$8 = { class: "title" };
11873
- const _hoisted_4$4 = { class: "flex-grow-1" };
11874
- const _hoisted_5$3 = { class: "bg-gray-100 py-5 rounded-8" };
11804
+ const _hoisted_3$9 = { class: "title" };
11805
+ const _hoisted_4$5 = { class: "flex-grow-1" };
11806
+ const _hoisted_5$4 = { class: "bg-gray-100 py-5 rounded-8" };
11875
11807
  const _hoisted_6$3 = { class: "text-center" };
11876
- const _hoisted_7$2 = { class: "bs-layout-horizontal justify-content-center align-items-center" };
11877
- const _hoisted_8$1 = { class: "text-center" };
11808
+ const _hoisted_7$3 = { class: "bs-layout-horizontal justify-content-center align-items-center" };
11809
+ const _hoisted_8$2 = { class: "text-center" };
11878
11810
  const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
11879
11811
  __name: "PbPropertyGroupEditorPadding",
11880
11812
  props: {
@@ -11901,13 +11833,13 @@ ${_html.style}
11901
11833
  return (_ctx, _cache) => {
11902
11834
  return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$r, [
11903
11835
  vue.createElementVNode("div", _hoisted_2$i, [
11904
- vue.createElementVNode("div", _hoisted_3$8, [
11836
+ vue.createElementVNode("div", _hoisted_3$9, [
11905
11837
  vue.withDirectives(vue.createElementVNode("label", null, null, 512), [
11906
11838
  [vue.unref(bluesea.vT), { key: "pb.prop.padding" }]
11907
11839
  ])
11908
11840
  ]),
11909
- vue.createElementVNode("div", _hoisted_4$4, [
11910
- vue.createElementVNode("div", _hoisted_5$3, [
11841
+ vue.createElementVNode("div", _hoisted_4$5, [
11842
+ vue.createElementVNode("div", _hoisted_5$4, [
11911
11843
  vue.createElementVNode("div", _hoisted_6$3, [
11912
11844
  vue.createVNode(vue.unref(bluesea.BSTextInput), {
11913
11845
  "model-value": top.value,
@@ -11917,7 +11849,7 @@ ${_html.style}
11917
11849
  "onUpdate:modelValue": updateTop
11918
11850
  }, null, 8, ["model-value"])
11919
11851
  ]),
11920
- vue.createElementVNode("div", _hoisted_7$2, [
11852
+ vue.createElementVNode("div", _hoisted_7$3, [
11921
11853
  vue.createVNode(vue.unref(bluesea.BSTextInput), {
11922
11854
  "model-value": left.value,
11923
11855
  class: "ml-4",
@@ -11939,7 +11871,7 @@ ${_html.style}
11939
11871
  "onUpdate:modelValue": updateRight
11940
11872
  }, null, 8, ["model-value"])
11941
11873
  ]),
11942
- vue.createElementVNode("div", _hoisted_8$1, [
11874
+ vue.createElementVNode("div", _hoisted_8$2, [
11943
11875
  vue.createVNode(vue.unref(bluesea.BSTextInput), {
11944
11876
  "model-value": bottom.value,
11945
11877
  class: "ml-4",
@@ -12321,10 +12253,15 @@ ${_html.style}
12321
12253
  });
12322
12254
  const _hoisted_1$q = { class: "group-editor group-editor-media" };
12323
12255
  const _hoisted_2$h = { class: "title" };
12324
- const _hoisted_3$7 = { class: "title mt-12" };
12325
- const _hoisted_4$3 = { class: "title mt-12" };
12326
- const _hoisted_5$2 = { class: "title mt-12" };
12256
+ const _hoisted_3$8 = {
12257
+ key: 0,
12258
+ class: "title mt-12"
12259
+ };
12260
+ const _hoisted_4$4 = { class: "mt-8" };
12261
+ const _hoisted_5$3 = { class: "title mt-12" };
12327
12262
  const _hoisted_6$2 = { class: "title mt-12" };
12263
+ const _hoisted_7$2 = { class: "title mt-12" };
12264
+ const _hoisted_8$1 = { class: "title mt-12" };
12328
12265
  const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
12329
12266
  __name: "PbPropertyGroupEditorMedia",
12330
12267
  props: {
@@ -12371,8 +12308,13 @@ ${_html.style}
12371
12308
  var _a, _b;
12372
12309
  return (_b = (_a = part == null ? void 0 : part[0]) == null ? void 0 : _a.properties) == null ? void 0 : _b.thumbnail;
12373
12310
  });
12311
+ const copyUrl = () => {
12312
+ if (!media.value || !media.value.fileUrl) return;
12313
+ navigator.clipboard.writeText(media.value.fileUrl);
12314
+ bluesea.showNotification({ key: "pb.prop.copied" });
12315
+ };
12374
12316
  return (_ctx, _cache) => {
12375
- var _a, _b;
12317
+ var _a, _b, _c, _d;
12376
12318
  return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$q, [
12377
12319
  vue.createElementVNode("div", _hoisted_2$h, [
12378
12320
  vue.withDirectives(vue.createElementVNode("label", null, null, 512), [
@@ -12380,12 +12322,33 @@ ${_html.style}
12380
12322
  ])
12381
12323
  ]),
12382
12324
  vue.createElementVNode("div", null, [
12383
- vue.withDirectives(vue.createElementVNode("button", { onClick: selectMedia }, null, 512), [
12325
+ vue.withDirectives(vue.createElementVNode("button", {
12326
+ class: "select-button",
12327
+ onClick: selectMedia
12328
+ }, null, 512), [
12384
12329
  [vue.unref(bluesea.vT), { key: "pb.prop.selectMedia" }]
12385
12330
  ])
12386
12331
  ]),
12387
- ((_a = media.value) == null ? void 0 : _a.mediaType) === "Image" ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
12388
- vue.createElementVNode("div", _hoisted_3$7, [
12332
+ ((_a = media.value) == null ? void 0 : _a.fileUrl) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$8, [
12333
+ _cache[4] || (_cache[4] = vue.createElementVNode("label", null, "URL", -1)),
12334
+ vue.createElementVNode("div", _hoisted_4$4, [
12335
+ vue.createTextVNode(vue.toDisplayString((_b = media.value) == null ? void 0 : _b.fileUrl) + " ", 1),
12336
+ vue.withDirectives(vue.createVNode(vue.unref(bluesea.BSButton), {
12337
+ class: "border-0 mb-2 pl-0",
12338
+ "left-icon": "content_copy",
12339
+ onClick: copyUrl
12340
+ }, null, 512), [
12341
+ [
12342
+ vue.unref(bluesea.vT),
12343
+ { key: "pb.button.copy" },
12344
+ void 0,
12345
+ { title: true }
12346
+ ]
12347
+ ])
12348
+ ])
12349
+ ])) : vue.createCommentVNode("", true),
12350
+ ((_c = media.value) == null ? void 0 : _c.mediaType) === "Image" ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
12351
+ vue.createElementVNode("div", _hoisted_5$3, [
12389
12352
  vue.withDirectives(vue.createElementVNode("label", null, null, 512), [
12390
12353
  [vue.unref(bluesea.vT), { key: "pb.prop.altText" }]
12391
12354
  ])
@@ -12398,7 +12361,7 @@ ${_html.style}
12398
12361
  "onUpdate:modelValue": _cache[0] || (_cache[0] = (value) => updateProperty({ altText: value }))
12399
12362
  }, null, 8, ["locales", "model-value"])
12400
12363
  ]),
12401
- vue.createElementVNode("div", _hoisted_4$3, [
12364
+ vue.createElementVNode("div", _hoisted_6$2, [
12402
12365
  vue.withDirectives(vue.createElementVNode("label", null, null, 512), [
12403
12366
  [vue.unref(bluesea.vT), { key: "pb.prop.link" }]
12404
12367
  ])
@@ -12410,7 +12373,7 @@ ${_html.style}
12410
12373
  "onUpdate:modelValue": _cache[1] || (_cache[1] = (value) => updateProperty({ link: value }))
12411
12374
  }, null, 8, ["model-value"])
12412
12375
  ]),
12413
- vue.createElementVNode("div", _hoisted_5$2, [
12376
+ vue.createElementVNode("div", _hoisted_7$2, [
12414
12377
  vue.withDirectives(vue.createElementVNode("label", null, null, 512), [
12415
12378
  [vue.unref(bluesea.vT), { key: "pb.prop.linkTarget" }]
12416
12379
  ])
@@ -12423,8 +12386,8 @@ ${_html.style}
12423
12386
  }, null, 8, ["model-value"])
12424
12387
  ])
12425
12388
  ], 64)) : vue.createCommentVNode("", true),
12426
- ((_b = media.value) == null ? void 0 : _b.mediaType) === "Video" ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
12427
- vue.createElementVNode("div", _hoisted_6$2, [
12389
+ ((_d = media.value) == null ? void 0 : _d.mediaType) === "Video" ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 2 }, [
12390
+ vue.createElementVNode("div", _hoisted_8$1, [
12428
12391
  vue.withDirectives(vue.createElementVNode("label", null, null, 512), [
12429
12392
  [vue.unref(bluesea.vT), { key: "pb.prop.thumbnail" }]
12430
12393
  ])
@@ -12570,50 +12533,6 @@ ${_html.style}
12570
12533
  allowsChild: () => false,
12571
12534
  creator: () => _sfc_main$7$1
12572
12535
  },
12573
- {
12574
- partType: "Widget",
12575
- partName: "ImageWidget",
12576
- caption: "Image",
12577
- icon: "image",
12578
- className: "pb-image-widget",
12579
- propertyGroups: [
12580
- {
12581
- groupName: "Image",
12582
- caption: "Image",
12583
- properties: [
12584
- {
12585
- propertyName: "image",
12586
- caption: "pb.prop.image",
12587
- propertyType: "image",
12588
- params: ""
12589
- },
12590
- {
12591
- propertyName: "altText",
12592
- caption: "pb.prop.altText",
12593
- propertyType: "text",
12594
- params: "",
12595
- multiLang: true
12596
- },
12597
- {
12598
- propertyName: "link",
12599
- caption: "pb.prop.link",
12600
- propertyType: "text",
12601
- params: ""
12602
- },
12603
- {
12604
- propertyName: "linkTarget",
12605
- caption: "pb.prop.linkTarget",
12606
- propertyType: "text",
12607
- params: ""
12608
- }
12609
- ]
12610
- },
12611
- ...defaultWidgetPropertyGroups()
12612
- ],
12613
- initialProperties: {},
12614
- allowsChild: () => false,
12615
- creator: () => _sfc_main$9$1
12616
- },
12617
12536
  {
12618
12537
  partType: "Widget",
12619
12538
  partName: "MediaWidget",
@@ -12862,7 +12781,7 @@ ${_html.style}
12862
12781
  bind: args,
12863
12782
  on: {
12864
12783
  selectHandler: (part) => {
12865
- if (["ImageWidget"].includes(part.partName)) {
12784
+ if (["MediaWidget"].includes(part.partName)) {
12866
12785
  const imageProvider = args.pageBuilder.getProvider("imageProvider");
12867
12786
  if (imageProvider) {
12868
12787
  imageProvider({ modal }, (media) => {
@@ -13347,7 +13266,7 @@ ${_html.style}
13347
13266
  if (!selected) return;
13348
13267
  const newWidget = createPartWithDefinition(def, { image: args.image });
13349
13268
  if (!newWidget) return;
13350
- if (selected.isWidget() && def.partName === "ImageWidget") {
13269
+ if (selected.isWidget() && def.partName === "MediaWidget") {
13351
13270
  if (!newWidget.properties) newWidget.properties = {};
13352
13271
  newWidget.properties.left = "25%";
13353
13272
  newWidget.properties.top = "25%";
@@ -14489,7 +14408,7 @@ ${_html.style}
14489
14408
  });
14490
14409
  const _hoisted_1$n = { class: "pb-toolbar bs-layout-horizontal align-items-center" };
14491
14410
  const _hoisted_2$g = { class: "bs-layout-horizontal align-items-center" };
14492
- const _hoisted_3$6 = { class: "mr-8" };
14411
+ const _hoisted_3$7 = { class: "mr-8" };
14493
14412
  const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
14494
14413
  __name: "PbToolbar",
14495
14414
  props: {
@@ -14565,7 +14484,7 @@ ${_html.style}
14565
14484
  }, null, 8, ["modelValue"])
14566
14485
  ]),
14567
14486
  _cache[2] || (_cache[2] = vue.createElementVNode("div", { class: "flex-grow-1" }, null, -1)),
14568
- vue.createElementVNode("div", _hoisted_3$6, [
14487
+ vue.createElementVNode("div", _hoisted_3$7, [
14569
14488
  _ctx.plugin ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent((_a = _ctx.plugin) == null ? void 0 : _a.component), vue.mergeProps({ key: 0 }, (_b = _ctx.plugin) == null ? void 0 : _b.bind, vue.toHandlers((_c = _ctx.plugin) == null ? void 0 : _c.on)), null, 16)) : vue.createCommentVNode("", true)
14570
14489
  ])
14571
14490
  ]);
@@ -14968,7 +14887,7 @@ ${_html.style}
14968
14887
  };
14969
14888
  }
14970
14889
  });
14971
- const canvasStyle = '.pb-page-wrapper {\n margin: 0 auto;\n padding: 0;\n}\n\n.pb-page {\n display: flex;\n flex-direction: column;\n align-items: center;\n width: 100%;\n padding-bottom: 100px;\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: cover;\n}\n\n.pb-page .pb-page-content {\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n\n.pb-page .pb-page-content.selected::before {\n content: "";\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n border: 2px solid #4998f8;\n z-index: 999;\n pointer-events: none;\n}\n\n.pb-page * {\n box-sizing: border-box;\n}\n\n.pb-add-widget-button {\n width: 100%;\n height: 100%;\n min-height: 200px;\n position: relative;\n}\n\n.pb-add-widget-button button {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n padding: 8px;\n background: none;\n border: none;\n cursor: pointer;\n}\n\n.pb-add-widget-button button:hover {\n background-color: #eeeeee;\n}\n\n.pb-add-widget-button .icon {\n font-size: 1rem;\n vertical-align: middle;\n}\n\n.pb-add-widget-button .text {\n font-size: 1rem;\n vertical-align: middle;\n margin-left: 0.4rem;\n}\n\n.pb-section {\n display: flex;\n position: relative;\n width: 100%;\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: cover;\n outline: 1px dashed #ccc;\n background-color: #fff;\n}\n\n.pb-section:hover:not(:has(.pb-block:hover)) {\n background-color: #f0f0f0;\n}\n\n.pb-section.selected::before {\n content: "";\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n border: 2px solid #4998f8;\n z-index: 999;\n pointer-events: none;\n}\n\n.pb-section.pb-section-static {\n width: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n pointer-events: none;\n}\n\n.pb-section.pb-section-static:after {\n content: "";\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0.2);\n}\n\n.pb-section-static .pb-widget {\n outline: none;\n}\n\n.pb-block {\n display: flex;\n min-width: 1px;\n position: relative;\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: cover;\n width: 100%;\n outline: 1px dashed #ccc;\n}\n\n.pb-block:hover:not(:has(.pb-widget:hover)) {\n background-color: #f0f0f0;\n}\n\n.pb-block.selected::before {\n content: "";\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n border: 2px solid #4998f8;\n z-index: 999;\n pointer-events: none;\n}\n\n.pb-widget {\n position: relative;\n outline: 1px dashed #ccc;\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: cover;\n pointer-events: auto !important;\n min-height: 50px;\n}\n\n.pb-widget * {\n pointer-events: none;\n}\n\n.pb-widget.selected::before {\n content: "";\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n border: 2px solid #4998f8;\n z-index: 999;\n pointer-events: none;\n}\n\n.pb-widget .children {\n position: absolute;\n width: 100%;\n height: 100%;\n}\n\n.pb-widget .pan-handle {\n position: absolute;\n left: -6px;\n top: -6px;\n width: 12px;\n height: 12px;\n background-color: #27ae60;\n cursor: move;\n pointer-events: auto !important;\n}\n\n.pb-widget .resize-handle {\n position: absolute;\n right: -6px;\n bottom: -6px;\n width: 12px;\n height: 12px;\n background-color: #27ae60;\n cursor: nwse-resize;\n pointer-events: auto !important;\n}\n\n.pb-widget {\n position: relative;\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: cover;\n width: 100%;\n}\n\n.pb-widget .children {\n position: absolute;\n width: 100%;\n height: 100%;\n}\n\n.pb-text-widget {\n width: 100%;\n height: fit-content;\n}\n\n.pb-text-widget .text {\n color: #333;\n}\n\n.pb-text-widget .placeholder {\n padding: 4px 0;\n font-size: 18px;\n text-align: center;\n color: #999;\n}\n\n.pb-image-widget {\n width: 100%;\n}\n\n.pb-image-widget .image {\n width: 100%;\n}\n\n.pb-image-widget .placeholder {\n height: 100px;\n background-color: #eee;\n text-align: center;\n}\n\n.pb-image-widget .placeholder span {\n font-size: 40px;\n color: #999;\n line-height: 100px;\n vertical-align: middle;\n}\n\n.pb-media-widget {\n width: 100%;\n}\n\n.pb-media-widget .image {\n width: 100%;\n}\n\n.pb-media-widget .video {\n width: 100%;\n}\n\n.pb-media-widget .placeholder {\n height: 100px;\n background-color: #eee;\n text-align: center;\n}\n\n.pb-media-widget .placeholder span {\n font-size: 40px;\n color: #999;\n line-height: 100px;\n vertical-align: middle;\n}\n\n.pb-html-widget {\n width: 100%;\n height: fit-content;\n}\n\n.pb-html-widget .placeholder {\n padding: 4px 0;\n font-size: 18px;\n text-align: center;\n color: #999;\n}\n\n.pb-iframe-widget {\n width: 100%;\n height: fit-content;\n}\n\n.pb-iframe-widget .placeholder {\n padding: 4px 0;\n font-size: 18px;\n text-align: center;\n color: #999;\n}\n\n.pb-youtube-widget {\n width: 100%;\n}\n\n.pb-youtube-widget .youtube {\n width: 100%;\n height: 100%;\n}\n\n.pb-youtube-widget .placeholder {\n height: 100px;\n background-color: #eee;\n text-align: center;\n}\n\n.pb-youtube-widget .placeholder span {\n font-size: 40px;\n color: #999;\n line-height: 100px;\n vertical-align: middle;\n}\n\n.pb-container-widget {\n width: 100%;\n}\n\n.pb-container-widget .placeholder {\n height: 100px;\n background-color: #eee;\n text-align: center;\n}\n\n.pb-container-widget .placeholder span {\n font-size: 40px;\n color: #999;\n line-height: 100px;\n vertical-align: middle;\n}\n\n.pb-product-list-widget {\n width: 100%;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: flex-start;\n align-items: center;\n}\n\n.pb-product-list-widget .product-wrapper {\n width: 25%;\n}\n\n.pb-product-list-widget .product-wrapper .product {\n width: 95%;\n margin: 0 auto;\n padding-top: 8px;\n padding-bottom: 8px;\n}\n\n.pb-product-list-widget .product-wrapper img {\n width: 100%;\n}\n\n.pb-product-list-widget .product-wrapper .name {\n margin-top: 8px;\n font-size: 14px;\n}\n\n.pb-product-list-widget .product-wrapper .price {\n margin-top: 8px;\n font-size: 14px;\n font-weight: bold;\n}\n\n.pb-product-list-widget .product-wrapper .empty {\n height: 200px;\n background-color: #eee;\n text-align: center;\n}\n\n.pb-product-list-widget .product-wrapper .empty span {\n font-size: 40px;\n color: #999;\n line-height: 200px;\n vertical-align: middle;\n}\n\n@media (max-width: 768px) {\n .pb-product-list-widget .product-wrapper {\n width: 50%;\n }\n}\n\n.mobile .pb-product-list-widget .product-wrapper {\n width: 50%;\n}\n\n.pb-login-widget {\n height: 200px;\n text-align: center;\n}\n\n.pb-login-widget h3 {\n padding: 0;\n margin: 0;\n font-size: 32px;\n font-weight: bold;\n color: #ccc;\n line-height: 200px;\n vertical-align: middle;\n}\n\nbody {\n margin: 0;\n padding: 0;\n background-color: #aaa;\n overflow: hidden;\n}\n\n.font-icon, .material-icons-outlined {\n font-family: "Material Symbols Outlined", monospace;\n font-size: 1rem;\n max-width: 1em;\n}\n\n.pb-position-mark {\n background-color: #ff3333;\n opacity: 0.5;\n border-radius: 2px;\n}\n\n.pb-add-section-handle {\n position: relative;\n text-align: center;\n cursor: pointer;\n z-index: 5;\n height: 0;\n}\n\n.pb-add-section-handle.top::before, .pb-add-section-handle.bottom::before, .pb-add-section-handle.middle::before {\n content: "";\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n opacity: 0;\n pointer-events: none;\n}\n\n.pb-add-section-handle.bottom {\n bottom: -32px;\n}\n\n.pb-add-section-handle:hover.top::before, .pb-add-section-handle:hover.bottom::before, .pb-add-section-handle:hover.middle::before,\n.pb-add-section-handle:hover > i {\n opacity: 1;\n}\n\n.pb-add-section-handle > i {\n font-style: normal;\n vertical-align: middle;\n position: absolute;\n top: 50%;\n left: 0;\n font-size: 2rem;\n transform: translate(-50%, -50%);\n opacity: 0.2;\n}';
14890
+ const canvasStyle = '.pb-page-wrapper {\n margin: 0 auto;\n padding: 0;\n}\n\n.pb-page {\n display: flex;\n flex-direction: column;\n align-items: center;\n width: 100%;\n padding-bottom: 100px;\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: cover;\n}\n\n.pb-page .pb-page-content {\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n\n.pb-page .pb-page-content.selected::before {\n content: "";\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n border: 2px solid #4998f8;\n z-index: 999;\n pointer-events: none;\n}\n\n.pb-page * {\n box-sizing: border-box;\n}\n\n.pb-add-widget-button {\n width: 100%;\n height: 100%;\n min-height: 200px;\n position: relative;\n}\n\n.pb-add-widget-button button {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n padding: 8px;\n background: none;\n border: none;\n cursor: pointer;\n}\n\n.pb-add-widget-button button:hover {\n background-color: #eeeeee;\n}\n\n.pb-add-widget-button .icon {\n font-size: 1rem;\n vertical-align: middle;\n}\n\n.pb-add-widget-button .text {\n font-size: 1rem;\n vertical-align: middle;\n margin-left: 0.4rem;\n}\n\n.pb-section {\n display: flex;\n position: relative;\n width: 100%;\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: cover;\n outline: 1px dashed #ccc;\n background-color: #fff;\n}\n\n.pb-section:hover:not(:has(.pb-block:hover)) {\n background-color: #f0f0f0;\n}\n\n.pb-section.selected::before {\n content: "";\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n border: 2px solid #4998f8;\n z-index: 999;\n pointer-events: none;\n}\n\n.pb-section.pb-section-static {\n width: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n pointer-events: none;\n}\n\n.pb-section.pb-section-static:after {\n content: "";\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0.2);\n}\n\n.pb-section-static .pb-widget {\n outline: none;\n}\n\n.pb-block {\n display: flex;\n min-width: 1px;\n position: relative;\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: cover;\n width: 100%;\n outline: 1px dashed #ccc;\n}\n\n.pb-block:hover:not(:has(.pb-widget:hover)) {\n background-color: #f0f0f0;\n}\n\n.pb-block.selected::before {\n content: "";\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n border: 2px solid #4998f8;\n z-index: 999;\n pointer-events: none;\n}\n\n.pb-widget {\n position: relative;\n outline: 1px dashed #ccc;\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: cover;\n pointer-events: auto !important;\n min-height: 50px;\n}\n\n.pb-widget * {\n pointer-events: none;\n}\n\n.pb-widget.selected::before {\n content: "";\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n border: 2px solid #4998f8;\n z-index: 999;\n pointer-events: none;\n}\n\n.pb-widget .children {\n position: absolute;\n width: 100%;\n height: 100%;\n}\n\n.pb-widget .pan-handle {\n position: absolute;\n left: -6px;\n top: -6px;\n width: 12px;\n height: 12px;\n background-color: #27ae60;\n cursor: move;\n pointer-events: auto !important;\n}\n\n.pb-widget .resize-handle {\n position: absolute;\n right: -6px;\n bottom: -6px;\n width: 12px;\n height: 12px;\n background-color: #27ae60;\n cursor: nwse-resize;\n pointer-events: auto !important;\n}\n\n.pb-widget {\n position: relative;\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: cover;\n width: 100%;\n}\n\n.pb-widget .children {\n position: absolute;\n width: 100%;\n height: 100%;\n}\n\n.pb-text-widget {\n width: 100%;\n height: fit-content;\n}\n\n.pb-text-widget .text {\n color: #333;\n}\n\n.pb-text-widget .placeholder {\n padding: 4px 0;\n font-size: 18px;\n text-align: center;\n color: #999;\n}\n\n.pb-media-widget {\n width: 100%;\n}\n\n.pb-media-widget .image {\n width: 100%;\n}\n\n.pb-media-widget .video {\n width: 100%;\n}\n\n.pb-media-widget .placeholder {\n height: 100px;\n background-color: #eee;\n text-align: center;\n}\n\n.pb-media-widget .placeholder span {\n font-size: 40px;\n color: #999;\n line-height: 100px;\n vertical-align: middle;\n}\n\n.pb-html-widget {\n width: 100%;\n height: fit-content;\n}\n\n.pb-html-widget .placeholder {\n padding: 4px 0;\n font-size: 18px;\n text-align: center;\n color: #999;\n}\n\n.pb-iframe-widget {\n width: 100%;\n height: fit-content;\n}\n\n.pb-iframe-widget .placeholder {\n padding: 4px 0;\n font-size: 18px;\n text-align: center;\n color: #999;\n}\n\n.pb-youtube-widget {\n width: 100%;\n}\n\n.pb-youtube-widget .youtube {\n width: 100%;\n height: 100%;\n}\n\n.pb-youtube-widget .placeholder {\n height: 100px;\n background-color: #eee;\n text-align: center;\n}\n\n.pb-youtube-widget .placeholder span {\n font-size: 40px;\n color: #999;\n line-height: 100px;\n vertical-align: middle;\n}\n\n.pb-container-widget {\n width: 100%;\n}\n\n.pb-container-widget .placeholder {\n height: 100px;\n background-color: #eee;\n text-align: center;\n}\n\n.pb-container-widget .placeholder span {\n font-size: 40px;\n color: #999;\n line-height: 100px;\n vertical-align: middle;\n}\n\n.pb-product-list-widget {\n width: 100%;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: flex-start;\n align-items: center;\n}\n\n.pb-product-list-widget .product-wrapper {\n width: 25%;\n}\n\n.pb-product-list-widget .product-wrapper .product {\n width: 95%;\n margin: 0 auto;\n padding-top: 8px;\n padding-bottom: 8px;\n}\n\n.pb-product-list-widget .product-wrapper img {\n width: 100%;\n}\n\n.pb-product-list-widget .product-wrapper .name {\n margin-top: 8px;\n font-size: 14px;\n}\n\n.pb-product-list-widget .product-wrapper .price {\n margin-top: 8px;\n font-size: 14px;\n font-weight: bold;\n}\n\n.pb-product-list-widget .product-wrapper .empty {\n height: 200px;\n background-color: #eee;\n text-align: center;\n}\n\n.pb-product-list-widget .product-wrapper .empty span {\n font-size: 40px;\n color: #999;\n line-height: 200px;\n vertical-align: middle;\n}\n\n@media (max-width: 768px) {\n .pb-product-list-widget .product-wrapper {\n width: 50%;\n }\n}\n\n.mobile .pb-product-list-widget .product-wrapper {\n width: 50%;\n}\n\n.pb-login-widget {\n height: 200px;\n text-align: center;\n}\n\n.pb-login-widget h3 {\n padding: 0;\n margin: 0;\n font-size: 32px;\n font-weight: bold;\n color: #ccc;\n line-height: 200px;\n vertical-align: middle;\n}\n\nbody {\n margin: 0;\n padding: 0;\n background-color: #aaa;\n overflow: hidden;\n}\n\n.font-icon, .material-icons-outlined {\n font-family: "Material Symbols Outlined", monospace;\n font-size: 1rem;\n max-width: 1em;\n}\n\n.pb-position-mark {\n background-color: #ff3333;\n opacity: 0.5;\n border-radius: 2px;\n}\n\n.pb-add-section-handle {\n position: relative;\n text-align: center;\n cursor: pointer;\n z-index: 5;\n height: 0;\n}\n\n.pb-add-section-handle.top::before, .pb-add-section-handle.bottom::before, .pb-add-section-handle.middle::before {\n content: "";\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n opacity: 0;\n pointer-events: none;\n}\n\n.pb-add-section-handle.bottom {\n bottom: -32px;\n}\n\n.pb-add-section-handle:hover.top::before, .pb-add-section-handle:hover.bottom::before, .pb-add-section-handle:hover.middle::before,\n.pb-add-section-handle:hover > i {\n opacity: 1;\n}\n\n.pb-add-section-handle > i {\n font-style: normal;\n vertical-align: middle;\n position: absolute;\n top: 50%;\n left: 0;\n font-size: 2rem;\n transform: translate(-50%, -50%);\n opacity: 0.2;\n}';
14972
14891
  const _hoisted_1$g = ["width"];
14973
14892
  const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
14974
14893
  __name: "PbPageFrame",
@@ -15462,6 +15381,10 @@ ${_html.style}
15462
15381
  {
15463
15382
  key: "pb.prop.hideParentWhenInvisible",
15464
15383
  text: "Hide block and section when invisible"
15384
+ },
15385
+ {
15386
+ key: "pb.prop.copied",
15387
+ text: "Copied."
15465
15388
  }
15466
15389
  ];
15467
15390
  const jaTexts = [
@@ -15788,6 +15711,10 @@ ${_html.style}
15788
15711
  {
15789
15712
  key: "pb.prop.hideParentWhenInvisible",
15790
15713
  text: "非表示の場合はブロックとセクションも隠す"
15714
+ },
15715
+ {
15716
+ key: "pb.prop.copied",
15717
+ text: "コピーされました。"
15791
15718
  }
15792
15719
  ];
15793
15720
  const koTexts = [
@@ -16114,6 +16041,10 @@ ${_html.style}
16114
16041
  {
16115
16042
  key: "pb.prop.hideParentWhenInvisible",
16116
16043
  text: "블록과 섹션도 함께 숨김처리하기"
16044
+ },
16045
+ {
16046
+ key: "pb.prop.copied",
16047
+ text: "복사되었습니다."
16117
16048
  }
16118
16049
  ];
16119
16050
  const zhTexts = [
@@ -16440,6 +16371,10 @@ ${_html.style}
16440
16371
  {
16441
16372
  key: "pb.prop.hideParentWhenInvisible",
16442
16373
  text: "不可见时隐藏区块和区域"
16374
+ },
16375
+ {
16376
+ key: "pb.prop.copied",
16377
+ text: "已复制。"
16443
16378
  }
16444
16379
  ];
16445
16380
  bluesea.i18n.addTexts("en", enTexts);
@@ -16517,7 +16452,7 @@ ${_html.style}
16517
16452
  });
16518
16453
  const _hoisted_1$d = { class: "property-editor property-editor-readonly-text" };
16519
16454
  const _hoisted_2$c = { class: "title" };
16520
- const _hoisted_3$5 = ["textContent"];
16455
+ const _hoisted_3$6 = ["textContent"];
16521
16456
  const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
16522
16457
  __name: "PbPropertyEditorReadonlyText",
16523
16458
  props: {
@@ -16535,7 +16470,7 @@ ${_html.style}
16535
16470
  vue.createElementVNode("div", null, [
16536
16471
  vue.createElementVNode("div", {
16537
16472
  textContent: vue.toDisplayString(_ctx.value)
16538
- }, null, 8, _hoisted_3$5)
16473
+ }, null, 8, _hoisted_3$6)
16539
16474
  ])
16540
16475
  ]);
16541
16476
  };
@@ -16784,7 +16719,7 @@ ${_html.style}
16784
16719
  }, Symbol.toStringTag, { value: "Module" }));
16785
16720
  const _hoisted_1$7 = { class: "property-editor property-editor-color" };
16786
16721
  const _hoisted_2$7 = { class: "title" };
16787
- const _hoisted_3$4 = { class: "bs-layout-horizontal flex-align-center color" };
16722
+ const _hoisted_3$5 = { class: "bs-layout-horizontal flex-align-center color" };
16788
16723
  const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
16789
16724
  __name: "PbPropertyEditorColor",
16790
16725
  props: {
@@ -16811,7 +16746,7 @@ ${_html.style}
16811
16746
  [vue.unref(bluesea.vT), { key: _ctx.property.caption }]
16812
16747
  ])
16813
16748
  ]),
16814
- vue.createElementVNode("div", _hoisted_3$4, [
16749
+ vue.createElementVNode("div", _hoisted_3$5, [
16815
16750
  vue.createVNode(PbColorPicker, {
16816
16751
  value: _ctx.value,
16817
16752
  "hide-delete": "",
@@ -16836,39 +16771,102 @@ ${_html.style}
16836
16771
  __proto__: null,
16837
16772
  default: _sfc_main$7
16838
16773
  }, Symbol.toStringTag, { value: "Module" }));
16839
- const _hoisted_1$6 = { class: "property-editor property-editor-image flex-align-center" };
16774
+ const _hoisted_1$6 = { class: "property-editor property-editor-image" };
16840
16775
  const _hoisted_2$6 = { class: "title" };
16776
+ const _hoisted_3$4 = {
16777
+ key: 0,
16778
+ class: "title mt-12"
16779
+ };
16780
+ const _hoisted_4$3 = { class: "mt-8" };
16781
+ const _hoisted_5$2 = { class: "title mt-12" };
16841
16782
  const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
16842
16783
  __name: "PbPropertyEditorImage",
16843
16784
  props: {
16844
16785
  property: {},
16845
16786
  value: {}
16846
16787
  },
16847
- emits: ["update-property-value"],
16848
- setup(__props, { emit: __emit }) {
16788
+ setup(__props) {
16789
+ const props = __props;
16849
16790
  const pageBuilder = usePageBuilderEditor();
16791
+ const part = pageBuilder.context.getSelectedParts();
16850
16792
  const modal = bluesea.useModal();
16851
- const emit = __emit;
16852
- const selectImage = () => {
16793
+ const selectMedia = () => {
16853
16794
  const imageProvider = pageBuilder.getProvider("imageProvider");
16854
16795
  if (imageProvider) {
16855
- imageProvider({ modal }, (media) => {
16856
- emit("update-property-value", { media, altText: media.altText });
16796
+ imageProvider({ modal, mediaTypes: ["Image"] }, (media2) => {
16797
+ updateProperty({ [props.property.propertyName]: media2 });
16857
16798
  });
16858
16799
  }
16859
16800
  };
16801
+ const updateProperty = (properties) => {
16802
+ pageBuilder.commandRegistry.executeCommand(ChangePropertyCommand.COMMAND_ID, { properties, targetParts: part });
16803
+ };
16804
+ const updateAltText = (value) => {
16805
+ updateProperty({ [props.property.propertyName]: { ...media.value, altText: value } });
16806
+ };
16807
+ const locales = vue.computed(() => pageBuilder.getLocales());
16808
+ const media = vue.computed(() => {
16809
+ var _a, _b;
16810
+ return (_b = (_a = part == null ? void 0 : part[0]) == null ? void 0 : _a.properties) == null ? void 0 : _b[props.property.propertyName];
16811
+ });
16812
+ const altText = vue.computed(() => {
16813
+ var _a;
16814
+ return (_a = media.value) == null ? void 0 : _a.altText;
16815
+ });
16816
+ const copyUrl = () => {
16817
+ if (!media.value || !media.value.fileUrl) return;
16818
+ navigator.clipboard.writeText(media.value.fileUrl);
16819
+ bluesea.showNotification({ key: "pb.prop.copied" });
16820
+ };
16860
16821
  return (_ctx, _cache) => {
16822
+ var _a, _b, _c;
16861
16823
  return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$6, [
16862
16824
  vue.createElementVNode("div", _hoisted_2$6, [
16863
16825
  vue.withDirectives(vue.createElementVNode("label", null, null, 512), [
16864
- [vue.unref(bluesea.vT), { key: _ctx.property.caption }]
16826
+ [vue.unref(bluesea.vT), { key: _ctx.property.caption || "pb.prop.image" }]
16865
16827
  ])
16866
16828
  ]),
16867
16829
  vue.createElementVNode("div", null, [
16868
- vue.withDirectives(vue.createElementVNode("button", { onClick: selectImage }, null, 512), [
16869
- [vue.unref(bluesea.vT), { key: "pb.prop.selectImage" }]
16830
+ vue.withDirectives(vue.createElementVNode("button", {
16831
+ class: "select-button",
16832
+ onClick: selectMedia
16833
+ }, null, 512), [
16834
+ [vue.unref(bluesea.vT), { key: "pb.prop.selectMedia" }]
16870
16835
  ])
16871
- ])
16836
+ ]),
16837
+ ((_a = media.value) == null ? void 0 : _a.fileUrl) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$4, [
16838
+ _cache[0] || (_cache[0] = vue.createElementVNode("label", null, "URL", -1)),
16839
+ vue.createElementVNode("div", _hoisted_4$3, [
16840
+ vue.createTextVNode(vue.toDisplayString((_b = media.value) == null ? void 0 : _b.fileUrl) + " ", 1),
16841
+ vue.withDirectives(vue.createVNode(vue.unref(bluesea.BSButton), {
16842
+ class: "border-0 mb-2 pl-0",
16843
+ "left-icon": "content_copy",
16844
+ onClick: copyUrl
16845
+ }, null, 512), [
16846
+ [
16847
+ vue.unref(bluesea.vT),
16848
+ { key: "pb.menu.copy" },
16849
+ void 0,
16850
+ { title: true }
16851
+ ]
16852
+ ])
16853
+ ])
16854
+ ])) : vue.createCommentVNode("", true),
16855
+ ((_c = media.value) == null ? void 0 : _c.mediaType) === "Image" ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
16856
+ vue.createElementVNode("div", _hoisted_5$2, [
16857
+ vue.withDirectives(vue.createElementVNode("label", null, null, 512), [
16858
+ [vue.unref(bluesea.vT), { key: "pb.prop.altText" }]
16859
+ ])
16860
+ ]),
16861
+ vue.createElementVNode("div", null, [
16862
+ vue.createVNode(vue.unref(bluesea.BSMultiLangTextInput), {
16863
+ locales: locales.value,
16864
+ "model-value": altText.value,
16865
+ width: "100%",
16866
+ "onUpdate:modelValue": updateAltText
16867
+ }, null, 8, ["locales", "model-value"])
16868
+ ])
16869
+ ], 64)) : vue.createCommentVNode("", true)
16872
16870
  ]);
16873
16871
  };
16874
16872
  }
@@ -17397,7 +17395,6 @@ ${_html.tags}` : "";
17397
17395
  exports2.PbCustomWidget = _sfc_main$F;
17398
17396
  exports2.PbHtmlWidget = _sfc_main$6$1;
17399
17397
  exports2.PbIframeWidget = _sfc_main$5$1;
17400
- exports2.PbImageWidget = _sfc_main$9$1;
17401
17398
  exports2.PbMediaWidget = _sfc_main$8$1;
17402
17399
  exports2.PbTextWidget = _sfc_main$7$1;
17403
17400
  exports2.PbYoutubeWidget = _sfc_main$4$1;