@g1cloud/page-builder-editor 1.0.0-alpha.17 → 1.0.0-alpha.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/css/canvas.scss +1 -2
- package/dist/PageBuilderEditor.vue.d.ts +0 -2
- package/dist/{PbPropertyEditorColor-DEVkcUND.js → PbPropertyEditorColor-B6_DIy47.js} +1 -1
- package/dist/{PbPropertyEditorHtml-CxPlqBYx.js → PbPropertyEditorHtml-BiMjuW0k.js} +1 -1
- package/dist/{PbPropertyEditorImage-DAEVOkpl.js → PbPropertyEditorImage-BwHm3YZo.js} +2 -2
- package/dist/{PbPropertyEditorMultilineText-zmUCXJQZ.js → PbPropertyEditorMultilineText-JyXSHgdX.js} +1 -1
- package/dist/{PbPropertyEditorText-CleInrev.js → PbPropertyEditorText-dMHwoG4V.js} +1 -1
- package/dist/{PbWidgetAddModal-DoR8HJUd.js → PbWidgetAddModal-eGdqZyZu.js} +1 -1
- package/dist/{index-rPBXWjSz.js → index-C8Vb2KOj.js} +498 -687
- package/dist/model/command.d.ts +10 -13
- package/dist/model/context.d.ts +0 -12
- package/dist/model/event.d.ts +0 -56
- package/dist/model/model.d.ts +7 -2
- package/dist/model/page-builder-editor.d.ts +9 -5
- package/dist/model/part-definintion.d.ts +2 -3
- package/dist/page-builder-editor.js +17 -18
- package/dist/page-builder-editor.umd.cjs +548 -786
- package/package.json +2 -2
- package/dist/PbPartAddModal-DuLpnV4E.js +0 -50
- package/dist/components/sidebar/property/PbPropertyLocalMarketingPart.vue.d.ts +0 -23
|
@@ -6599,7 +6599,7 @@ var __publicField = (obj, key, value) => {
|
|
|
6599
6599
|
})(shortUniqueId$1);
|
|
6600
6600
|
var shortUniqueIdExports = shortUniqueId$1.exports;
|
|
6601
6601
|
const ShortUniqueId = /* @__PURE__ */ getDefaultExportFromCjs(shortUniqueIdExports);
|
|
6602
|
-
function mitt
|
|
6602
|
+
function mitt(n) {
|
|
6603
6603
|
return { all: n = n || /* @__PURE__ */ new Map(), on: function(t, e) {
|
|
6604
6604
|
var i = n.get(t);
|
|
6605
6605
|
i ? i.push(e) : n.set(t, [e]);
|
|
@@ -6615,57 +6615,30 @@ var __publicField = (obj, key, value) => {
|
|
|
6615
6615
|
});
|
|
6616
6616
|
} };
|
|
6617
6617
|
}
|
|
6618
|
-
const emitter
|
|
6618
|
+
const emitter = mitt();
|
|
6619
6619
|
const PageBuilderEditorEvent = {
|
|
6620
6620
|
on: {
|
|
6621
6621
|
modelUpdated: (listener) => {
|
|
6622
|
-
emitter
|
|
6622
|
+
emitter.on("modelUpdated", listener);
|
|
6623
6623
|
},
|
|
6624
6624
|
modelUpdatedByUI: (listener) => {
|
|
6625
|
-
emitter
|
|
6626
|
-
},
|
|
6627
|
-
requestImage: (listener) => {
|
|
6628
|
-
emitter$1.on("requestImage", listener);
|
|
6629
|
-
},
|
|
6630
|
-
requestProducts: (listener) => {
|
|
6631
|
-
emitter$1.on("requestProducts", listener);
|
|
6632
|
-
},
|
|
6633
|
-
requestLocalMarketingPartSchedule: (listener) => {
|
|
6634
|
-
emitter$1.on("requestLocalMarketingPartSchedule", listener);
|
|
6625
|
+
emitter.on("modelUpdatedByUI", listener);
|
|
6635
6626
|
}
|
|
6636
6627
|
},
|
|
6637
6628
|
off: {
|
|
6638
6629
|
modelUpdated: (listener) => {
|
|
6639
|
-
emitter
|
|
6630
|
+
emitter.off("modelUpdated", listener);
|
|
6640
6631
|
},
|
|
6641
6632
|
modelUpdatedByUI: (listener) => {
|
|
6642
|
-
emitter
|
|
6643
|
-
},
|
|
6644
|
-
requestImage: (listener) => {
|
|
6645
|
-
emitter$1.off("requestImage", listener);
|
|
6646
|
-
},
|
|
6647
|
-
requestProducts: (listener) => {
|
|
6648
|
-
emitter$1.off("requestProducts", listener);
|
|
6649
|
-
},
|
|
6650
|
-
requestLocalMarketingPartSchedule: (listener) => {
|
|
6651
|
-
emitter$1.off("requestLocalMarketingPartSchedule", listener);
|
|
6633
|
+
emitter.off("modelUpdatedByUI", listener);
|
|
6652
6634
|
}
|
|
6653
6635
|
},
|
|
6654
6636
|
emit: {
|
|
6655
6637
|
modelUpdated: (changes) => {
|
|
6656
|
-
emitter
|
|
6638
|
+
emitter.emit("modelUpdated", changes);
|
|
6657
6639
|
},
|
|
6658
6640
|
modelUpdatedByUI: (changes) => {
|
|
6659
|
-
emitter
|
|
6660
|
-
},
|
|
6661
|
-
requestImage: (param) => {
|
|
6662
|
-
emitter$1.emit("requestImage", param);
|
|
6663
|
-
},
|
|
6664
|
-
requestProducts: (param) => {
|
|
6665
|
-
emitter$1.emit("requestProducts", param);
|
|
6666
|
-
},
|
|
6667
|
-
requestLocalMarketingPartSchedule: (param) => {
|
|
6668
|
-
emitter$1.emit("requestLocalMarketingPartSchedule", param);
|
|
6641
|
+
emitter.emit("modelUpdatedByUI", changes);
|
|
6669
6642
|
}
|
|
6670
6643
|
}
|
|
6671
6644
|
};
|
|
@@ -6803,28 +6776,11 @@ var __publicField = (obj, key, value) => {
|
|
|
6803
6776
|
}
|
|
6804
6777
|
return style;
|
|
6805
6778
|
}
|
|
6806
|
-
getPageBuilderId() {
|
|
6807
|
-
if (this.isRoot())
|
|
6808
|
-
return this.pageBuilderId;
|
|
6809
|
-
if (this.parent)
|
|
6810
|
-
return this.parent.getPageBuilderId();
|
|
6811
|
-
}
|
|
6812
|
-
isGlobalDesignPart() {
|
|
6813
|
-
return false;
|
|
6814
|
-
}
|
|
6815
|
-
isLocalDesignPart() {
|
|
6816
|
-
return false;
|
|
6817
|
-
}
|
|
6818
|
-
isLocalMarketingPart() {
|
|
6819
|
-
return false;
|
|
6820
|
-
}
|
|
6821
6779
|
}
|
|
6822
6780
|
class RootPart extends Part {
|
|
6823
6781
|
constructor() {
|
|
6824
6782
|
super();
|
|
6825
|
-
__publicField2(this, "pageBuilderId");
|
|
6826
6783
|
__publicField2(this, "language");
|
|
6827
|
-
this.pageBuilderId = "";
|
|
6828
6784
|
this.language = "en";
|
|
6829
6785
|
this.partType = ROOT_TYPE$1;
|
|
6830
6786
|
this.partName = ROOT_TYPE$1;
|
|
@@ -6852,18 +6808,6 @@ var __publicField = (obj, key, value) => {
|
|
|
6852
6808
|
isSection() {
|
|
6853
6809
|
return true;
|
|
6854
6810
|
}
|
|
6855
|
-
isGlobalDesignPart() {
|
|
6856
|
-
var _a;
|
|
6857
|
-
return ((_a = this.properties) == null ? void 0 : _a.sectionType) === "GlobalDesignPart";
|
|
6858
|
-
}
|
|
6859
|
-
isLocalDesignPart() {
|
|
6860
|
-
var _a;
|
|
6861
|
-
return ((_a = this.properties) == null ? void 0 : _a.sectionType) === "LocalDesignPart";
|
|
6862
|
-
}
|
|
6863
|
-
isLocalMarketingPart() {
|
|
6864
|
-
var _a;
|
|
6865
|
-
return ((_a = this.properties) == null ? void 0 : _a.sectionType) === "LocalMarketingPart";
|
|
6866
|
-
}
|
|
6867
6811
|
}
|
|
6868
6812
|
class Block extends Part {
|
|
6869
6813
|
constructor() {
|
|
@@ -7020,9 +6964,9 @@ var __publicField = (obj, key, value) => {
|
|
|
7020
6964
|
key: 1,
|
|
7021
6965
|
class: "placeholder"
|
|
7022
6966
|
};
|
|
7023
|
-
const _hoisted_4$
|
|
7024
|
-
const _hoisted_5$
|
|
7025
|
-
_hoisted_4$
|
|
6967
|
+
const _hoisted_4$h = /* @__PURE__ */ vue.createElementVNode("span", { class: "font-icon" }, "image", -1);
|
|
6968
|
+
const _hoisted_5$8 = [
|
|
6969
|
+
_hoisted_4$h
|
|
7026
6970
|
];
|
|
7027
6971
|
const _sfc_main$6$1 = /* @__PURE__ */ vue.defineComponent({
|
|
7028
6972
|
__name: "PbImageWidget",
|
|
@@ -7039,7 +6983,7 @@ var __publicField = (obj, key, value) => {
|
|
|
7039
6983
|
src: (_b = _ctx.part.properties) == null ? void 0 : _b.image,
|
|
7040
6984
|
alt: "",
|
|
7041
6985
|
class: "image"
|
|
7042
|
-
}, null, 8, _hoisted_2$3$1)) : _ctx.placeholder ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$3$1, _hoisted_5$
|
|
6986
|
+
}, null, 8, _hoisted_2$3$1)) : _ctx.placeholder ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$3$1, _hoisted_5$8)) : vue.createCommentVNode("", true)
|
|
7043
6987
|
]);
|
|
7044
6988
|
};
|
|
7045
6989
|
}
|
|
@@ -7143,8 +7087,8 @@ ${_html.style}
|
|
|
7143
7087
|
}
|
|
7144
7088
|
});
|
|
7145
7089
|
const _hoisted_1$1$1 = { class: "pb-iframe-widget" };
|
|
7146
|
-
const _hoisted_2$
|
|
7147
|
-
const _hoisted_3$
|
|
7090
|
+
const _hoisted_2$t = ["src"];
|
|
7091
|
+
const _hoisted_3$q = {
|
|
7148
7092
|
key: 1,
|
|
7149
7093
|
class: "placeholder",
|
|
7150
7094
|
textContent: "Empty URL"
|
|
@@ -7191,7 +7135,7 @@ ${_html.style}
|
|
|
7191
7135
|
url.value ? (vue.openBlock(), vue.createElementBlock("iframe", vue.mergeProps({
|
|
7192
7136
|
key: 0,
|
|
7193
7137
|
src: url.value
|
|
7194
|
-
}, style.value), null, 16, _hoisted_2$
|
|
7138
|
+
}, style.value), null, 16, _hoisted_2$t)) : _ctx.placeholder ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$q)) : vue.createCommentVNode("", true)
|
|
7195
7139
|
]);
|
|
7196
7140
|
};
|
|
7197
7141
|
}
|
|
@@ -7202,21 +7146,6 @@ ${_html.style}
|
|
|
7202
7146
|
partName: "Section",
|
|
7203
7147
|
creator: () => _sfc_main$7$1
|
|
7204
7148
|
},
|
|
7205
|
-
"GlobalDesignPart": {
|
|
7206
|
-
partType: "Section",
|
|
7207
|
-
partName: "GlobalDesignPart",
|
|
7208
|
-
creator: () => _sfc_main$7$1
|
|
7209
|
-
},
|
|
7210
|
-
"LocalDesignPart": {
|
|
7211
|
-
partType: "Section",
|
|
7212
|
-
partName: "LocalDesignPart",
|
|
7213
|
-
creator: () => _sfc_main$7$1
|
|
7214
|
-
},
|
|
7215
|
-
"LocalMarketingPart": {
|
|
7216
|
-
partType: "Section",
|
|
7217
|
-
partName: "LocalMarketingPart",
|
|
7218
|
-
creator: () => _sfc_main$7$1
|
|
7219
|
-
},
|
|
7220
7149
|
"Block": {
|
|
7221
7150
|
partType: "Block",
|
|
7222
7151
|
partName: "Block",
|
|
@@ -7248,9 +7177,10 @@ ${_html.style}
|
|
|
7248
7177
|
let partDefinitions$1 = { ...defaultPartDefinitions };
|
|
7249
7178
|
class PageBuilderViewerImpl {
|
|
7250
7179
|
constructor() {
|
|
7251
|
-
__publicField2(this, "instanceId");
|
|
7252
7180
|
__publicField2(this, "model");
|
|
7253
7181
|
__publicField2(this, "locale", vue.ref("en"));
|
|
7182
|
+
__publicField2(this, "watchers", {});
|
|
7183
|
+
__publicField2(this, "providers", {});
|
|
7254
7184
|
this.model = new Model$1();
|
|
7255
7185
|
}
|
|
7256
7186
|
getLocale() {
|
|
@@ -7264,33 +7194,45 @@ ${_html.style}
|
|
|
7264
7194
|
plugin.widgets.forEach((v) => {
|
|
7265
7195
|
const w = { ...v };
|
|
7266
7196
|
w.partType = "Widget";
|
|
7267
|
-
w.creator = () => _sfc_main$
|
|
7197
|
+
w.creator = () => _sfc_main$z;
|
|
7268
7198
|
partDefinitions$1[v.partName] = w;
|
|
7269
7199
|
});
|
|
7270
7200
|
}
|
|
7201
|
+
if (plugin.watchers) {
|
|
7202
|
+
this.watchers = { ...this.watchers, ...plugin.watchers };
|
|
7203
|
+
}
|
|
7204
|
+
if (plugin.providers) {
|
|
7205
|
+
this.providers = { ...this.providers, ...plugin.providers };
|
|
7206
|
+
}
|
|
7271
7207
|
}
|
|
7272
7208
|
watchCustomWidgetData(part) {
|
|
7273
7209
|
const def = partDefinitions$1[part.partName];
|
|
7274
7210
|
if (!def || !def.dataWatcher)
|
|
7275
7211
|
return false;
|
|
7276
|
-
|
|
7212
|
+
const watcher = this.watchers[def.dataWatcher];
|
|
7213
|
+
if (!watcher)
|
|
7214
|
+
return false;
|
|
7215
|
+
return watcher(part.properties);
|
|
7277
7216
|
}
|
|
7278
7217
|
provideCustomWidgetData(part) {
|
|
7279
7218
|
const def = partDefinitions$1[part.partName];
|
|
7280
7219
|
if (!def || !def.dataProvider)
|
|
7281
7220
|
return Promise.resolve();
|
|
7282
|
-
|
|
7221
|
+
const provider = this.providers[def.dataProvider];
|
|
7222
|
+
if (!provider)
|
|
7223
|
+
return Promise.resolve();
|
|
7224
|
+
return provider(part.properties);
|
|
7283
7225
|
}
|
|
7284
7226
|
render(pageContent) {
|
|
7285
|
-
const rootPart =
|
|
7286
|
-
rootPart
|
|
7287
|
-
|
|
7288
|
-
|
|
7289
|
-
|
|
7290
|
-
|
|
7227
|
+
const rootPart = this.parsePartContent(pageContent);
|
|
7228
|
+
if (rootPart) {
|
|
7229
|
+
if (rootPart.children) {
|
|
7230
|
+
for (let page of rootPart.children) {
|
|
7231
|
+
page.parent = rootPart;
|
|
7232
|
+
}
|
|
7291
7233
|
}
|
|
7234
|
+
this.model.rootPart.value = rootPart;
|
|
7292
7235
|
}
|
|
7293
|
-
this.model.rootPart.value = rootPart;
|
|
7294
7236
|
}
|
|
7295
7237
|
parsePageContent(pageContent) {
|
|
7296
7238
|
return pageContent.map((partContent) => this.parsePartContent(partContent)).filter((part) => !!part);
|
|
@@ -7312,6 +7254,8 @@ ${_html.style}
|
|
|
7312
7254
|
}
|
|
7313
7255
|
createPart(partType) {
|
|
7314
7256
|
switch (partType) {
|
|
7257
|
+
case "Root":
|
|
7258
|
+
return new RootPart();
|
|
7315
7259
|
case "Page":
|
|
7316
7260
|
return new Page();
|
|
7317
7261
|
case "Section":
|
|
@@ -7395,11 +7339,10 @@ ${_html.style}
|
|
|
7395
7339
|
};
|
|
7396
7340
|
}
|
|
7397
7341
|
});
|
|
7398
|
-
const _hoisted_1$
|
|
7342
|
+
const _hoisted_1$D = { class: "pb-viewer" };
|
|
7399
7343
|
const _sfc_main$1$1 = /* @__PURE__ */ vue.defineComponent({
|
|
7400
7344
|
__name: "PageBuilderViewer",
|
|
7401
7345
|
props: {
|
|
7402
|
-
instanceId: {},
|
|
7403
7346
|
pageContent: {},
|
|
7404
7347
|
isMobilePage: { type: Boolean },
|
|
7405
7348
|
language: {},
|
|
@@ -7408,7 +7351,6 @@ ${_html.style}
|
|
|
7408
7351
|
setup(__props) {
|
|
7409
7352
|
const props = __props;
|
|
7410
7353
|
const pageBuilderViewer = createPageBuilderViewer();
|
|
7411
|
-
pageBuilderViewer.instanceId = props.instanceId;
|
|
7412
7354
|
pageBuilderViewer.setLocale(props.language);
|
|
7413
7355
|
if (props.plugin)
|
|
7414
7356
|
pageBuilderViewer.registerCustomPlugin(props.plugin);
|
|
@@ -7429,7 +7371,7 @@ ${_html.style}
|
|
|
7429
7371
|
}
|
|
7430
7372
|
);
|
|
7431
7373
|
return (_ctx, _cache) => {
|
|
7432
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
7374
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$D, [
|
|
7433
7375
|
page.value ? (vue.openBlock(), vue.createBlock(_sfc_main$2$1, {
|
|
7434
7376
|
key: 0,
|
|
7435
7377
|
"is-mobile-page": _ctx.isMobilePage,
|
|
@@ -7439,7 +7381,7 @@ ${_html.style}
|
|
|
7439
7381
|
};
|
|
7440
7382
|
}
|
|
7441
7383
|
});
|
|
7442
|
-
const _sfc_main$
|
|
7384
|
+
const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
|
|
7443
7385
|
__name: "PbCustomWidget",
|
|
7444
7386
|
props: {
|
|
7445
7387
|
part: {},
|
|
@@ -7452,7 +7394,6 @@ ${_html.style}
|
|
|
7452
7394
|
const comp = vue.computed(() => pageBuilder.getCustomWidgetComponent(props.part));
|
|
7453
7395
|
const data = vue.ref({});
|
|
7454
7396
|
const bind = vue.computed(() => ({
|
|
7455
|
-
pageBuilderId: pageBuilder.instanceId,
|
|
7456
7397
|
...props.part.properties || {},
|
|
7457
7398
|
placeholder: true,
|
|
7458
7399
|
...data.value || {}
|
|
@@ -7470,40 +7411,6 @@ ${_html.style}
|
|
|
7470
7411
|
};
|
|
7471
7412
|
}
|
|
7472
7413
|
});
|
|
7473
|
-
function mitt(n) {
|
|
7474
|
-
return { all: n = n || /* @__PURE__ */ new Map(), on: function(t, e) {
|
|
7475
|
-
var i = n.get(t);
|
|
7476
|
-
i ? i.push(e) : n.set(t, [e]);
|
|
7477
|
-
}, off: function(t, e) {
|
|
7478
|
-
var i = n.get(t);
|
|
7479
|
-
i && (e ? i.splice(i.indexOf(e) >>> 0, 1) : n.set(t, []));
|
|
7480
|
-
}, emit: function(t, e) {
|
|
7481
|
-
var i = n.get(t);
|
|
7482
|
-
i && i.slice().map(function(n2) {
|
|
7483
|
-
n2(e);
|
|
7484
|
-
}), (i = n.get("*")) && i.slice().map(function(n2) {
|
|
7485
|
-
n2(t, e);
|
|
7486
|
-
});
|
|
7487
|
-
} };
|
|
7488
|
-
}
|
|
7489
|
-
const emitter = mitt();
|
|
7490
|
-
const PageBuilderViewerEvent = {
|
|
7491
|
-
on: {
|
|
7492
|
-
requestProductMapping: (listener) => {
|
|
7493
|
-
emitter.on("requestProductMapping", listener);
|
|
7494
|
-
}
|
|
7495
|
-
},
|
|
7496
|
-
off: {
|
|
7497
|
-
requestProductMapping: (listener) => {
|
|
7498
|
-
emitter.off("requestProductMapping", listener);
|
|
7499
|
-
}
|
|
7500
|
-
},
|
|
7501
|
-
emit: {
|
|
7502
|
-
requestProductMapping: (param) => {
|
|
7503
|
-
emitter.emit("requestProductMapping", param);
|
|
7504
|
-
}
|
|
7505
|
-
}
|
|
7506
|
-
};
|
|
7507
7414
|
const PART_ID_KEY = "partId";
|
|
7508
7415
|
const PART_NAME_KEY = "partName";
|
|
7509
7416
|
const RESERVED_ATTRIBUTES = [PART_ID_KEY, PART_NAME_KEY];
|
|
@@ -7674,6 +7581,9 @@ ${_html.style}
|
|
|
7674
7581
|
const createPart = (partType, partName, properties) => {
|
|
7675
7582
|
let part;
|
|
7676
7583
|
switch (partType) {
|
|
7584
|
+
case ROOT_TYPE:
|
|
7585
|
+
part = new RootPart();
|
|
7586
|
+
break;
|
|
7677
7587
|
case PAGE_TYPE:
|
|
7678
7588
|
part = new Page();
|
|
7679
7589
|
break;
|
|
@@ -7731,10 +7641,6 @@ ${_html.style}
|
|
|
7731
7641
|
__publicField(this, "yjsRoot");
|
|
7732
7642
|
__publicField(this, "undoManager");
|
|
7733
7643
|
__publicField(this, "rootPart");
|
|
7734
|
-
__publicField(this, "serializePageModel", (partIds) => {
|
|
7735
|
-
const parts = this.findPartsByIds(partIds);
|
|
7736
|
-
return partsToJsonString(parts);
|
|
7737
|
-
});
|
|
7738
7644
|
this.yjsDoc = new Doc();
|
|
7739
7645
|
this.yjsRoot = this.yjsDoc.get("root", YXmlElement);
|
|
7740
7646
|
const rootPartId = getNewPartId();
|
|
@@ -7783,7 +7689,30 @@ ${_html.style}
|
|
|
7783
7689
|
});
|
|
7784
7690
|
return parts;
|
|
7785
7691
|
}
|
|
7786
|
-
|
|
7692
|
+
serializeModel(mediaExtractor, providerExtractor) {
|
|
7693
|
+
const root = partToJsonObject(this.rootPart);
|
|
7694
|
+
if (mediaExtractor) {
|
|
7695
|
+
root.media = mediaExtractor(this.rootPart);
|
|
7696
|
+
}
|
|
7697
|
+
if (providerExtractor) {
|
|
7698
|
+
providerExtractor(root);
|
|
7699
|
+
}
|
|
7700
|
+
return JSON.stringify(root);
|
|
7701
|
+
}
|
|
7702
|
+
parseModel(json, keepPartId = false) {
|
|
7703
|
+
const root = JSON.parse(json);
|
|
7704
|
+
if (root.partType !== ROOT_TYPE)
|
|
7705
|
+
throw Error("Invalid data format");
|
|
7706
|
+
const rootPart = partFromJsonObject(root, keepPartId);
|
|
7707
|
+
if (!rootPart)
|
|
7708
|
+
throw new Error("Invalid data format");
|
|
7709
|
+
return rootPart;
|
|
7710
|
+
}
|
|
7711
|
+
serializeParts(partIds) {
|
|
7712
|
+
const parts = this.findPartsByIds(partIds);
|
|
7713
|
+
return partsToJsonString(parts);
|
|
7714
|
+
}
|
|
7715
|
+
parseParts(json, keepPartId = false) {
|
|
7787
7716
|
return partsFromJsonString(json, keepPartId);
|
|
7788
7717
|
}
|
|
7789
7718
|
moveElements(partId, destPartId, destIndex, update, doNotChangeIndex) {
|
|
@@ -8309,22 +8238,22 @@ ${_html.style}
|
|
|
8309
8238
|
}
|
|
8310
8239
|
return target;
|
|
8311
8240
|
};
|
|
8312
|
-
const _sfc_main$
|
|
8313
|
-
const _hoisted_1$
|
|
8314
|
-
const _hoisted_2$
|
|
8315
|
-
const _hoisted_3$
|
|
8316
|
-
const _hoisted_4$
|
|
8317
|
-
_hoisted_2$
|
|
8318
|
-
_hoisted_3$
|
|
8241
|
+
const _sfc_main$y = {};
|
|
8242
|
+
const _hoisted_1$C = { class: "pb-add-widget-button" };
|
|
8243
|
+
const _hoisted_2$s = /* @__PURE__ */ vue.createElementVNode("span", { class: "icon material-icons-outlined" }, "add_box", -1);
|
|
8244
|
+
const _hoisted_3$p = /* @__PURE__ */ vue.createElementVNode("span", { class: "text" }, "Add Widget", -1);
|
|
8245
|
+
const _hoisted_4$g = [
|
|
8246
|
+
_hoisted_2$s,
|
|
8247
|
+
_hoisted_3$p
|
|
8319
8248
|
];
|
|
8320
8249
|
function _sfc_render$1(_ctx, _cache) {
|
|
8321
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
8250
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$C, [
|
|
8322
8251
|
vue.createElementVNode("button", {
|
|
8323
8252
|
onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("add-widget", $event))
|
|
8324
|
-
}, _hoisted_4$
|
|
8253
|
+
}, _hoisted_4$g)
|
|
8325
8254
|
]);
|
|
8326
8255
|
}
|
|
8327
|
-
const PbAddWidgetButton = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
8256
|
+
const PbAddWidgetButton = /* @__PURE__ */ _export_sfc(_sfc_main$y, [["render", _sfc_render$1]]);
|
|
8328
8257
|
const MOUSE_TRACKER_KEY = "mouseTracker";
|
|
8329
8258
|
const MOUSE_TRACKER_NOT_FOUND = "MouseTracker not found";
|
|
8330
8259
|
class MouseTracker {
|
|
@@ -8355,12 +8284,12 @@ ${_html.style}
|
|
|
8355
8284
|
throw Error(MOUSE_TRACKER_NOT_FOUND);
|
|
8356
8285
|
return mouseTracker;
|
|
8357
8286
|
};
|
|
8358
|
-
const _hoisted_1$
|
|
8359
|
-
const _hoisted_2$
|
|
8287
|
+
const _hoisted_1$B = ["data-model-id", "draggable"];
|
|
8288
|
+
const _hoisted_2$r = {
|
|
8360
8289
|
key: 1,
|
|
8361
8290
|
class: "children"
|
|
8362
8291
|
};
|
|
8363
|
-
const _sfc_main$
|
|
8292
|
+
const _sfc_main$x = /* @__PURE__ */ vue.defineComponent({
|
|
8364
8293
|
__name: "PbWidget",
|
|
8365
8294
|
props: {
|
|
8366
8295
|
part: {}
|
|
@@ -8807,7 +8736,7 @@ ${_html.style}
|
|
|
8807
8736
|
part: _ctx.part,
|
|
8808
8737
|
placeholder: true
|
|
8809
8738
|
}, null, 8, ["part"])) : vue.createCommentVNode("", true),
|
|
8810
|
-
childComponents.value && childComponents.value.length > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$
|
|
8739
|
+
childComponents.value && childComponents.value.length > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$r, [
|
|
8811
8740
|
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(childComponents.value, (child) => {
|
|
8812
8741
|
return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(child.component), {
|
|
8813
8742
|
key: child.part.partId,
|
|
@@ -8826,14 +8755,14 @@ ${_html.style}
|
|
|
8826
8755
|
class: "resize-handle",
|
|
8827
8756
|
onMousedown: _resize_mousedown
|
|
8828
8757
|
}, null, 32)) : vue.createCommentVNode("", true)
|
|
8829
|
-
], 16, _hoisted_1$
|
|
8758
|
+
], 16, _hoisted_1$B)), [
|
|
8830
8759
|
[vue.unref(vPartHandler), { pageBuilder: vue.unref(pageBuilder), part: _ctx.part, droppable: true, locatePositionMark, calculateDropIndex, acceptChildPart }]
|
|
8831
8760
|
]);
|
|
8832
8761
|
};
|
|
8833
8762
|
}
|
|
8834
8763
|
});
|
|
8835
|
-
const _hoisted_1$
|
|
8836
|
-
const _sfc_main$
|
|
8764
|
+
const _hoisted_1$A = ["data-model-id"];
|
|
8765
|
+
const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
|
|
8837
8766
|
__name: "PbBlock",
|
|
8838
8767
|
props: {
|
|
8839
8768
|
part: {}
|
|
@@ -9023,19 +8952,19 @@ ${_html.style}
|
|
|
9023
8952
|
onAddWidget: addWidget
|
|
9024
8953
|
})) : vue.createCommentVNode("", true),
|
|
9025
8954
|
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.part.children, (child) => {
|
|
9026
|
-
return vue.openBlock(), vue.createBlock(_sfc_main$
|
|
8955
|
+
return vue.openBlock(), vue.createBlock(_sfc_main$x, {
|
|
9027
8956
|
key: child.partId,
|
|
9028
8957
|
part: child
|
|
9029
8958
|
}, null, 8, ["part"]);
|
|
9030
8959
|
}), 128))
|
|
9031
|
-
], 16, _hoisted_1$
|
|
8960
|
+
], 16, _hoisted_1$A)), [
|
|
9032
8961
|
[vue.unref(vPartHandler), { pageBuilder: vue.unref(pageBuilder), part: _ctx.part, droppable: true, locatePositionMark, calculateDropIndex, acceptChildPart }]
|
|
9033
8962
|
]);
|
|
9034
8963
|
};
|
|
9035
8964
|
}
|
|
9036
8965
|
});
|
|
9037
|
-
const _hoisted_1$
|
|
9038
|
-
const _hoisted_2$
|
|
8966
|
+
const _hoisted_1$z = { class: "pb-block" };
|
|
8967
|
+
const _hoisted_2$q = /* @__PURE__ */ vue.createElementVNode("div", {
|
|
9039
8968
|
class: "pb-widget",
|
|
9040
8969
|
style: { "margin": "0 auto" }
|
|
9041
8970
|
}, [
|
|
@@ -9043,22 +8972,22 @@ ${_html.style}
|
|
|
9043
8972
|
/* @__PURE__ */ vue.createElementVNode("h3", null, "Login Design Part")
|
|
9044
8973
|
])
|
|
9045
8974
|
], -1);
|
|
9046
|
-
const _hoisted_3$
|
|
9047
|
-
_hoisted_2$
|
|
8975
|
+
const _hoisted_3$o = [
|
|
8976
|
+
_hoisted_2$q
|
|
9048
8977
|
];
|
|
9049
|
-
const _sfc_main$
|
|
8978
|
+
const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
|
|
9050
8979
|
__name: "PbLoginDepart",
|
|
9051
8980
|
props: {
|
|
9052
8981
|
part: {}
|
|
9053
8982
|
},
|
|
9054
8983
|
setup(__props) {
|
|
9055
8984
|
return (_ctx, _cache) => {
|
|
9056
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
8985
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$z, _hoisted_3$o);
|
|
9057
8986
|
};
|
|
9058
8987
|
}
|
|
9059
8988
|
});
|
|
9060
|
-
const _hoisted_1$
|
|
9061
|
-
const _sfc_main$
|
|
8989
|
+
const _hoisted_1$y = ["data-model-id"];
|
|
8990
|
+
const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
|
|
9062
8991
|
__name: "PbSection",
|
|
9063
8992
|
props: {
|
|
9064
8993
|
part: {}
|
|
@@ -9077,13 +9006,7 @@ ${_html.style}
|
|
|
9077
9006
|
const properties = vue.computed(() => ({ style: props.part.getStyles() }));
|
|
9078
9007
|
const disabled = vue.computed(() => {
|
|
9079
9008
|
var _a;
|
|
9080
|
-
|
|
9081
|
-
return true;
|
|
9082
|
-
if (pageBuilder.editMode === "local" && props.part.isGlobalDesignPart())
|
|
9083
|
-
return true;
|
|
9084
|
-
if (pageBuilder.editMode === "global" && (props.part.isLocalDesignPart() || props.part.isLocalMarketingPart()))
|
|
9085
|
-
return true;
|
|
9086
|
-
return false;
|
|
9009
|
+
return ["static"].includes(((_a = props.part.properties) == null ? void 0 : _a.sectionType) || "");
|
|
9087
9010
|
});
|
|
9088
9011
|
const addWidget = () => {
|
|
9089
9012
|
pageBuilder.commandRegistry.executeCommand(OpenAddWidgetModalCommand.COMMAND_ID);
|
|
@@ -9169,13 +9092,13 @@ ${_html.style}
|
|
|
9169
9092
|
style: (_a = _ctx.part.properties) == null ? void 0 : _a.css
|
|
9170
9093
|
}, properties.value), [
|
|
9171
9094
|
((_b = _ctx.part.properties) == null ? void 0 : _b.sectionType) === "static" ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
|
|
9172
|
-
((_c = _ctx.part.properties) == null ? void 0 : _c.name) === "Login Design Part" ? (vue.openBlock(), vue.createBlock(_sfc_main$
|
|
9095
|
+
((_c = _ctx.part.properties) == null ? void 0 : _c.name) === "Login Design Part" ? (vue.openBlock(), vue.createBlock(_sfc_main$v, {
|
|
9173
9096
|
key: 0,
|
|
9174
9097
|
part: _ctx.part
|
|
9175
9098
|
}, null, 8, ["part"])) : vue.createCommentVNode("", true)
|
|
9176
9099
|
], 64)) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
|
|
9177
9100
|
_ctx.part.children && _ctx.part.children.length > 0 ? (vue.openBlock(true), vue.createElementBlock(vue.Fragment, { key: 0 }, vue.renderList(_ctx.part.children, (block) => {
|
|
9178
|
-
return vue.openBlock(), vue.createBlock(_sfc_main$
|
|
9101
|
+
return vue.openBlock(), vue.createBlock(_sfc_main$w, {
|
|
9179
9102
|
key: block.partId,
|
|
9180
9103
|
part: block
|
|
9181
9104
|
}, null, 8, ["part"]);
|
|
@@ -9184,20 +9107,20 @@ ${_html.style}
|
|
|
9184
9107
|
onAddWidget: addWidget
|
|
9185
9108
|
}))
|
|
9186
9109
|
], 64))
|
|
9187
|
-
], 16, _hoisted_1$
|
|
9110
|
+
], 16, _hoisted_1$y)), [
|
|
9188
9111
|
[vue.unref(vPartHandler), { pageBuilder: vue.unref(pageBuilder), part: _ctx.part, droppable: true, locatePositionMark, calculateDropIndex, acceptChildPart }]
|
|
9189
9112
|
]);
|
|
9190
9113
|
};
|
|
9191
9114
|
}
|
|
9192
9115
|
});
|
|
9193
|
-
const _hoisted_1$
|
|
9194
|
-
const _hoisted_2$
|
|
9195
|
-
const _hoisted_3$
|
|
9116
|
+
const _hoisted_1$x = { class: "group-editor group-editor-position" };
|
|
9117
|
+
const _hoisted_2$p = { class: "flex-align-center" };
|
|
9118
|
+
const _hoisted_3$n = /* @__PURE__ */ vue.createElementVNode("div", { class: "title" }, [
|
|
9196
9119
|
/* @__PURE__ */ vue.createElementVNode("label", { textContent: "Position" })
|
|
9197
9120
|
], -1);
|
|
9198
|
-
const _hoisted_4$
|
|
9199
|
-
const _hoisted_5$
|
|
9200
|
-
const _hoisted_6$
|
|
9121
|
+
const _hoisted_4$f = { class: "flex-grow-1" };
|
|
9122
|
+
const _hoisted_5$7 = { class: "bg-gray-100 py-5 rounded-8" };
|
|
9123
|
+
const _hoisted_6$6 = { class: "text-center" };
|
|
9201
9124
|
const _hoisted_7$6 = { class: "bs-layout-horizontal justify-content-center align-items-center" };
|
|
9202
9125
|
const _hoisted_8$6 = /* @__PURE__ */ vue.createElementVNode("div", {
|
|
9203
9126
|
class: "d-inline-block text-center text-gray-300",
|
|
@@ -9206,7 +9129,7 @@ ${_html.style}
|
|
|
9206
9129
|
/* @__PURE__ */ vue.createElementVNode("span", { class: "font-icon" }, "add")
|
|
9207
9130
|
], -1);
|
|
9208
9131
|
const _hoisted_9$5 = { class: "text-center" };
|
|
9209
|
-
const _sfc_main$
|
|
9132
|
+
const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
|
|
9210
9133
|
__name: "PbPropertyGroupEditorPosition",
|
|
9211
9134
|
props: {
|
|
9212
9135
|
group: {},
|
|
@@ -9230,12 +9153,12 @@ ${_html.style}
|
|
|
9230
9153
|
const updateTop = (value) => updatePropertyValue({ top: value });
|
|
9231
9154
|
const updateBottom = (value) => updatePropertyValue({ bottom: value });
|
|
9232
9155
|
return (_ctx, _cache) => {
|
|
9233
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
9234
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
9235
|
-
_hoisted_3$
|
|
9236
|
-
vue.createElementVNode("div", _hoisted_4$
|
|
9237
|
-
vue.createElementVNode("div", _hoisted_5$
|
|
9238
|
-
vue.createElementVNode("div", _hoisted_6$
|
|
9156
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$x, [
|
|
9157
|
+
vue.createElementVNode("div", _hoisted_2$p, [
|
|
9158
|
+
_hoisted_3$n,
|
|
9159
|
+
vue.createElementVNode("div", _hoisted_4$f, [
|
|
9160
|
+
vue.createElementVNode("div", _hoisted_5$7, [
|
|
9161
|
+
vue.createElementVNode("div", _hoisted_6$6, [
|
|
9239
9162
|
vue.createVNode(vue.unref(bluesea.BSTextInput), {
|
|
9240
9163
|
"model-value": top.value,
|
|
9241
9164
|
class: "ml-4",
|
|
@@ -9277,13 +9200,13 @@ ${_html.style}
|
|
|
9277
9200
|
};
|
|
9278
9201
|
}
|
|
9279
9202
|
});
|
|
9280
|
-
const _hoisted_1$
|
|
9281
|
-
const _hoisted_2$
|
|
9282
|
-
const _hoisted_3$
|
|
9203
|
+
const _hoisted_1$w = { class: "group-editor group-editor-size" };
|
|
9204
|
+
const _hoisted_2$o = { class: "flex-align-center" };
|
|
9205
|
+
const _hoisted_3$m = /* @__PURE__ */ vue.createElementVNode("div", { class: "title" }, [
|
|
9283
9206
|
/* @__PURE__ */ vue.createElementVNode("label", { textContent: "Size" })
|
|
9284
9207
|
], -1);
|
|
9285
|
-
const _hoisted_4$
|
|
9286
|
-
const _sfc_main$
|
|
9208
|
+
const _hoisted_4$e = { class: "flex-grow-1 bs-layout-horizontal" };
|
|
9209
|
+
const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
|
|
9287
9210
|
__name: "PbPropertyGroupEditorSize",
|
|
9288
9211
|
props: {
|
|
9289
9212
|
group: {},
|
|
@@ -9303,10 +9226,10 @@ ${_html.style}
|
|
|
9303
9226
|
const updateWidth = (value) => updatePropertyValue({ width: value });
|
|
9304
9227
|
const updateHeight = (value) => updatePropertyValue({ height: value });
|
|
9305
9228
|
return (_ctx, _cache) => {
|
|
9306
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
9307
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
9308
|
-
_hoisted_3$
|
|
9309
|
-
vue.createElementVNode("div", _hoisted_4$
|
|
9229
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$w, [
|
|
9230
|
+
vue.createElementVNode("div", _hoisted_2$o, [
|
|
9231
|
+
_hoisted_3$m,
|
|
9232
|
+
vue.createElementVNode("div", _hoisted_4$e, [
|
|
9310
9233
|
vue.createVNode(vue.unref(bluesea.BSTextInput), {
|
|
9311
9234
|
"model-value": width.value,
|
|
9312
9235
|
class: "flex-grow-1 mr-2",
|
|
@@ -9482,22 +9405,22 @@ ${_html.style}
|
|
|
9482
9405
|
}
|
|
9483
9406
|
}
|
|
9484
9407
|
};
|
|
9485
|
-
const _hoisted_1$
|
|
9486
|
-
const _hoisted_2$
|
|
9487
|
-
const _hoisted_3$
|
|
9408
|
+
const _hoisted_1$v = { class: "vc-alpha" };
|
|
9409
|
+
const _hoisted_2$n = { class: "vc-alpha-checkboard-wrap" };
|
|
9410
|
+
const _hoisted_3$l = /* @__PURE__ */ vue.createElementVNode(
|
|
9488
9411
|
"div",
|
|
9489
9412
|
{ class: "vc-alpha-picker" },
|
|
9490
9413
|
null,
|
|
9491
9414
|
-1
|
|
9492
9415
|
/* HOISTED */
|
|
9493
9416
|
);
|
|
9494
|
-
const _hoisted_4$
|
|
9495
|
-
_hoisted_3$
|
|
9417
|
+
const _hoisted_4$d = [
|
|
9418
|
+
_hoisted_3$l
|
|
9496
9419
|
];
|
|
9497
9420
|
function render$4(_ctx, _cache, $props, $setup, $data, $options) {
|
|
9498
9421
|
const _component_Checkboard = vue.resolveComponent("Checkboard");
|
|
9499
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
9500
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
9422
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$v, [
|
|
9423
|
+
vue.createElementVNode("div", _hoisted_2$n, [
|
|
9501
9424
|
vue.createVNode(_component_Checkboard)
|
|
9502
9425
|
]),
|
|
9503
9426
|
vue.createElementVNode(
|
|
@@ -9526,7 +9449,7 @@ ${_html.style}
|
|
|
9526
9449
|
class: "vc-alpha-pointer",
|
|
9527
9450
|
style: vue.normalizeStyle({ left: `${$options.colors.a * 100}%` })
|
|
9528
9451
|
},
|
|
9529
|
-
_hoisted_4$
|
|
9452
|
+
_hoisted_4$d,
|
|
9530
9453
|
4
|
|
9531
9454
|
/* STYLE */
|
|
9532
9455
|
)
|
|
@@ -10600,12 +10523,12 @@ ${_html.style}
|
|
|
10600
10523
|
// }
|
|
10601
10524
|
}
|
|
10602
10525
|
};
|
|
10603
|
-
const _hoisted_1$
|
|
10604
|
-
const _hoisted_2$
|
|
10605
|
-
const _hoisted_3$
|
|
10606
|
-
const _hoisted_4$
|
|
10526
|
+
const _hoisted_1$u = { class: "vc-editable-input" };
|
|
10527
|
+
const _hoisted_2$m = ["aria-labelledby"];
|
|
10528
|
+
const _hoisted_3$k = ["id", "for"];
|
|
10529
|
+
const _hoisted_4$c = { class: "vc-input__desc" };
|
|
10607
10530
|
function render$3(_ctx, _cache, $props, $setup, $data, $options) {
|
|
10608
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
10531
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$u, [
|
|
10609
10532
|
vue.withDirectives(vue.createElementVNode("input", {
|
|
10610
10533
|
ref: "input",
|
|
10611
10534
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $options.val = $event),
|
|
@@ -10613,17 +10536,17 @@ ${_html.style}
|
|
|
10613
10536
|
class: "vc-input__input",
|
|
10614
10537
|
onKeydown: _cache[1] || (_cache[1] = (...args) => $options.handleKeyDown && $options.handleKeyDown(...args)),
|
|
10615
10538
|
onInput: _cache[2] || (_cache[2] = (...args) => $options.update && $options.update(...args))
|
|
10616
|
-
}, null, 40, _hoisted_2$
|
|
10539
|
+
}, null, 40, _hoisted_2$m), [
|
|
10617
10540
|
[vue.vModelText, $options.val]
|
|
10618
10541
|
]),
|
|
10619
10542
|
vue.createElementVNode("span", {
|
|
10620
10543
|
id: $options.labelId,
|
|
10621
10544
|
for: $props.label,
|
|
10622
10545
|
class: "vc-input__label"
|
|
10623
|
-
}, vue.toDisplayString($options.labelSpanText), 9, _hoisted_3$
|
|
10546
|
+
}, vue.toDisplayString($options.labelSpanText), 9, _hoisted_3$k),
|
|
10624
10547
|
vue.createElementVNode(
|
|
10625
10548
|
"span",
|
|
10626
|
-
_hoisted_4$
|
|
10549
|
+
_hoisted_4$c,
|
|
10627
10550
|
vue.toDisplayString($props.desc),
|
|
10628
10551
|
1
|
|
10629
10552
|
/* TEXT */
|
|
@@ -10700,29 +10623,29 @@ ${_html.style}
|
|
|
10700
10623
|
}
|
|
10701
10624
|
}
|
|
10702
10625
|
};
|
|
10703
|
-
const _hoisted_1$
|
|
10626
|
+
const _hoisted_1$t = /* @__PURE__ */ vue.createElementVNode(
|
|
10704
10627
|
"div",
|
|
10705
10628
|
{ class: "vc-saturation--white" },
|
|
10706
10629
|
null,
|
|
10707
10630
|
-1
|
|
10708
10631
|
/* HOISTED */
|
|
10709
10632
|
);
|
|
10710
|
-
const _hoisted_2$
|
|
10633
|
+
const _hoisted_2$l = /* @__PURE__ */ vue.createElementVNode(
|
|
10711
10634
|
"div",
|
|
10712
10635
|
{ class: "vc-saturation--black" },
|
|
10713
10636
|
null,
|
|
10714
10637
|
-1
|
|
10715
10638
|
/* HOISTED */
|
|
10716
10639
|
);
|
|
10717
|
-
const _hoisted_3$
|
|
10640
|
+
const _hoisted_3$j = /* @__PURE__ */ vue.createElementVNode(
|
|
10718
10641
|
"div",
|
|
10719
10642
|
{ class: "vc-saturation-circle" },
|
|
10720
10643
|
null,
|
|
10721
10644
|
-1
|
|
10722
10645
|
/* HOISTED */
|
|
10723
10646
|
);
|
|
10724
|
-
const _hoisted_4$
|
|
10725
|
-
_hoisted_3$
|
|
10647
|
+
const _hoisted_4$b = [
|
|
10648
|
+
_hoisted_3$j
|
|
10726
10649
|
];
|
|
10727
10650
|
function render$2(_ctx, _cache, $props, $setup, $data, $options) {
|
|
10728
10651
|
return vue.openBlock(), vue.createElementBlock(
|
|
@@ -10736,15 +10659,15 @@ ${_html.style}
|
|
|
10736
10659
|
onTouchstart: _cache[2] || (_cache[2] = (...args) => $options.handleChange && $options.handleChange(...args))
|
|
10737
10660
|
},
|
|
10738
10661
|
[
|
|
10739
|
-
_hoisted_1$
|
|
10740
|
-
_hoisted_2$
|
|
10662
|
+
_hoisted_1$t,
|
|
10663
|
+
_hoisted_2$l,
|
|
10741
10664
|
vue.createElementVNode(
|
|
10742
10665
|
"div",
|
|
10743
10666
|
{
|
|
10744
10667
|
class: "vc-saturation-pointer",
|
|
10745
10668
|
style: vue.normalizeStyle({ top: $options.pointerTop, left: $options.pointerLeft })
|
|
10746
10669
|
},
|
|
10747
|
-
_hoisted_4$
|
|
10670
|
+
_hoisted_4$b,
|
|
10748
10671
|
4
|
|
10749
10672
|
/* STYLE */
|
|
10750
10673
|
)
|
|
@@ -10885,16 +10808,16 @@ ${_html.style}
|
|
|
10885
10808
|
}
|
|
10886
10809
|
}
|
|
10887
10810
|
};
|
|
10888
|
-
const _hoisted_1$
|
|
10889
|
-
const _hoisted_2$
|
|
10811
|
+
const _hoisted_1$s = ["aria-valuenow"];
|
|
10812
|
+
const _hoisted_2$k = /* @__PURE__ */ vue.createElementVNode(
|
|
10890
10813
|
"div",
|
|
10891
10814
|
{ class: "vc-hue-picker" },
|
|
10892
10815
|
null,
|
|
10893
10816
|
-1
|
|
10894
10817
|
/* HOISTED */
|
|
10895
10818
|
);
|
|
10896
|
-
const _hoisted_3$
|
|
10897
|
-
_hoisted_2$
|
|
10819
|
+
const _hoisted_3$i = [
|
|
10820
|
+
_hoisted_2$k
|
|
10898
10821
|
];
|
|
10899
10822
|
function render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
10900
10823
|
return vue.openBlock(), vue.createElementBlock(
|
|
@@ -10921,11 +10844,11 @@ ${_html.style}
|
|
|
10921
10844
|
style: vue.normalizeStyle({ top: $options.pointerTop, left: $options.pointerLeft }),
|
|
10922
10845
|
role: "presentation"
|
|
10923
10846
|
},
|
|
10924
|
-
_hoisted_3$
|
|
10847
|
+
_hoisted_3$i,
|
|
10925
10848
|
4
|
|
10926
10849
|
/* STYLE */
|
|
10927
10850
|
)
|
|
10928
|
-
], 40, _hoisted_1$
|
|
10851
|
+
], 40, _hoisted_1$s)
|
|
10929
10852
|
],
|
|
10930
10853
|
2
|
|
10931
10854
|
/* CLASS */
|
|
@@ -11021,15 +10944,15 @@ ${_html.style}
|
|
|
11021
10944
|
}
|
|
11022
10945
|
}
|
|
11023
10946
|
};
|
|
11024
|
-
const _hoisted_1$
|
|
11025
|
-
const _hoisted_2$
|
|
11026
|
-
const _hoisted_3$
|
|
11027
|
-
const _hoisted_4$
|
|
11028
|
-
const _hoisted_5$
|
|
10947
|
+
const _hoisted_1$r = { class: "vc-sketch-saturation-wrap" };
|
|
10948
|
+
const _hoisted_2$j = { class: "vc-sketch-controls" };
|
|
10949
|
+
const _hoisted_3$h = { class: "vc-sketch-sliders" };
|
|
10950
|
+
const _hoisted_4$a = { class: "vc-sketch-hue-wrap" };
|
|
10951
|
+
const _hoisted_5$6 = {
|
|
11029
10952
|
key: 0,
|
|
11030
10953
|
class: "vc-sketch-alpha-wrap"
|
|
11031
10954
|
};
|
|
11032
|
-
const _hoisted_6$
|
|
10955
|
+
const _hoisted_6$5 = { class: "vc-sketch-color-wrap" };
|
|
11033
10956
|
const _hoisted_7$5 = ["aria-label"];
|
|
11034
10957
|
const _hoisted_8$5 = {
|
|
11035
10958
|
key: 0,
|
|
@@ -11064,28 +10987,28 @@ ${_html.style}
|
|
|
11064
10987
|
class: vue.normalizeClass(["vc-sketch", [$props.disableAlpha ? "vc-sketch__disable-alpha" : ""]])
|
|
11065
10988
|
},
|
|
11066
10989
|
[
|
|
11067
|
-
vue.createElementVNode("div", _hoisted_1$
|
|
10990
|
+
vue.createElementVNode("div", _hoisted_1$r, [
|
|
11068
10991
|
vue.createVNode(_component_Saturation, {
|
|
11069
10992
|
value: _ctx.colors,
|
|
11070
10993
|
onChange: $options.childChange
|
|
11071
10994
|
}, null, 8, ["value", "onChange"])
|
|
11072
10995
|
]),
|
|
11073
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
11074
|
-
vue.createElementVNode("div", _hoisted_3$
|
|
11075
|
-
vue.createElementVNode("div", _hoisted_4$
|
|
10996
|
+
vue.createElementVNode("div", _hoisted_2$j, [
|
|
10997
|
+
vue.createElementVNode("div", _hoisted_3$h, [
|
|
10998
|
+
vue.createElementVNode("div", _hoisted_4$a, [
|
|
11076
10999
|
vue.createVNode(_component_Hue, {
|
|
11077
11000
|
value: _ctx.colors,
|
|
11078
11001
|
onChange: $options.childChange
|
|
11079
11002
|
}, null, 8, ["value", "onChange"])
|
|
11080
11003
|
]),
|
|
11081
|
-
!$props.disableAlpha ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$
|
|
11004
|
+
!$props.disableAlpha ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$6, [
|
|
11082
11005
|
vue.createVNode(_component_Alpha, {
|
|
11083
11006
|
value: _ctx.colors,
|
|
11084
11007
|
onChange: $options.childChange
|
|
11085
11008
|
}, null, 8, ["value", "onChange"])
|
|
11086
11009
|
])) : vue.createCommentVNode("v-if", true)
|
|
11087
11010
|
]),
|
|
11088
|
-
vue.createElementVNode("div", _hoisted_6$
|
|
11011
|
+
vue.createElementVNode("div", _hoisted_6$5, [
|
|
11089
11012
|
vue.createElementVNode("div", {
|
|
11090
11013
|
"aria-label": `Current color is ${$options.activeColor}`,
|
|
11091
11014
|
class: "vc-sketch-active-color",
|
|
@@ -11176,7 +11099,7 @@ ${_html.style}
|
|
|
11176
11099
|
script.render = render;
|
|
11177
11100
|
script.__file = "src/components/sketch/sketch.vue";
|
|
11178
11101
|
script.install = install;
|
|
11179
|
-
const _sfc_main$
|
|
11102
|
+
const _sfc_main$r = vue.defineComponent({
|
|
11180
11103
|
name: "PbColorPicker",
|
|
11181
11104
|
components: {
|
|
11182
11105
|
Sketch: script
|
|
@@ -11240,12 +11163,12 @@ ${_html.style}
|
|
|
11240
11163
|
};
|
|
11241
11164
|
}
|
|
11242
11165
|
});
|
|
11243
|
-
const _hoisted_1$
|
|
11244
|
-
const _hoisted_2$
|
|
11245
|
-
const _hoisted_3$
|
|
11246
|
-
_hoisted_2$
|
|
11166
|
+
const _hoisted_1$q = { class: "buttons" };
|
|
11167
|
+
const _hoisted_2$i = /* @__PURE__ */ vue.createElementVNode("i", { class: "material-icons-outlined" }, "delete", -1);
|
|
11168
|
+
const _hoisted_3$g = [
|
|
11169
|
+
_hoisted_2$i
|
|
11247
11170
|
];
|
|
11248
|
-
const _hoisted_4$
|
|
11171
|
+
const _hoisted_4$9 = { class: "sketch-wrap" };
|
|
11249
11172
|
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
11250
11173
|
const _component_Sketch = vue.resolveComponent("Sketch");
|
|
11251
11174
|
const _directive_click_outside = vue.resolveDirective("click-outside");
|
|
@@ -11254,7 +11177,7 @@ ${_html.style}
|
|
|
11254
11177
|
onKeydown: _cache[3] || (_cache[3] = vue.withModifiers(() => {
|
|
11255
11178
|
}, ["stop"]))
|
|
11256
11179
|
}, [
|
|
11257
|
-
vue.createElementVNode("div", _hoisted_1$
|
|
11180
|
+
vue.createElementVNode("div", _hoisted_1$q, [
|
|
11258
11181
|
vue.renderSlot(_ctx.$slots, "button", vue.normalizeProps(vue.guardReactiveProps({ toggle: _ctx.toggle, color: _ctx.color })), () => [
|
|
11259
11182
|
vue.createElementVNode("button", {
|
|
11260
11183
|
class: vue.normalizeClass([{ none: !_ctx.color }, "pb-button picker-button"]),
|
|
@@ -11266,9 +11189,9 @@ ${_html.style}
|
|
|
11266
11189
|
key: 0,
|
|
11267
11190
|
class: "pb-button",
|
|
11268
11191
|
onClick: _cache[1] || (_cache[1] = (...args) => _ctx.emptyColor && _ctx.emptyColor(...args))
|
|
11269
|
-
}, _hoisted_3$
|
|
11192
|
+
}, _hoisted_3$g)) : vue.createCommentVNode("", true)
|
|
11270
11193
|
]),
|
|
11271
|
-
vue.createElementVNode("div", _hoisted_4$
|
|
11194
|
+
vue.createElementVNode("div", _hoisted_4$9, [
|
|
11272
11195
|
_ctx.isShowColorPicker ? (vue.openBlock(), vue.createBlock(_component_Sketch, {
|
|
11273
11196
|
key: 0,
|
|
11274
11197
|
modelValue: _ctx.color,
|
|
@@ -11280,15 +11203,15 @@ ${_html.style}
|
|
|
11280
11203
|
[_directive_click_outside, () => _ctx.toggle(false)]
|
|
11281
11204
|
]);
|
|
11282
11205
|
}
|
|
11283
|
-
const PbColorPicker = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
11284
|
-
const _hoisted_1$
|
|
11285
|
-
const _hoisted_2$
|
|
11286
|
-
const _hoisted_3$
|
|
11206
|
+
const PbColorPicker = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["render", _sfc_render]]);
|
|
11207
|
+
const _hoisted_1$p = { class: "group-editor group-editor-background" };
|
|
11208
|
+
const _hoisted_2$h = { class: "flex-align-center" };
|
|
11209
|
+
const _hoisted_3$f = /* @__PURE__ */ vue.createElementVNode("div", { class: "title" }, [
|
|
11287
11210
|
/* @__PURE__ */ vue.createElementVNode("label", { textContent: "Background" })
|
|
11288
11211
|
], -1);
|
|
11289
|
-
const _hoisted_4$
|
|
11290
|
-
const _hoisted_5$
|
|
11291
|
-
const _sfc_main$
|
|
11212
|
+
const _hoisted_4$8 = { class: "bs-layout-horizontal" };
|
|
11213
|
+
const _hoisted_5$5 = { class: "color" };
|
|
11214
|
+
const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
|
|
11292
11215
|
__name: "PbPropertyGroupEditorBackground",
|
|
11293
11216
|
props: {
|
|
11294
11217
|
group: {},
|
|
@@ -11297,6 +11220,7 @@ ${_html.style}
|
|
|
11297
11220
|
setup(__props) {
|
|
11298
11221
|
const props = __props;
|
|
11299
11222
|
const pageBuilder = usePageBuilderEditor();
|
|
11223
|
+
const modal = bluesea.useModal();
|
|
11300
11224
|
const color = vue.computed(() => getPropertyValueOfParts(props.selectedParts, "backgroundColor"));
|
|
11301
11225
|
const emptyColor = () => {
|
|
11302
11226
|
};
|
|
@@ -11310,19 +11234,19 @@ ${_html.style}
|
|
|
11310
11234
|
};
|
|
11311
11235
|
const updateColor = (value) => updatePropertyValue({ backgroundColor: value });
|
|
11312
11236
|
const selectImage = () => {
|
|
11313
|
-
|
|
11314
|
-
|
|
11315
|
-
|
|
11237
|
+
const imageProvider = pageBuilder.getProvider("imageProvider");
|
|
11238
|
+
if (imageProvider) {
|
|
11239
|
+
imageProvider({ modal }, (url) => {
|
|
11316
11240
|
updatePropertyValue({ backgroundImage: url });
|
|
11317
|
-
}
|
|
11318
|
-
}
|
|
11241
|
+
});
|
|
11242
|
+
}
|
|
11319
11243
|
};
|
|
11320
11244
|
return (_ctx, _cache) => {
|
|
11321
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
11322
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
11323
|
-
_hoisted_3$
|
|
11324
|
-
vue.createElementVNode("div", _hoisted_4$
|
|
11325
|
-
vue.createElementVNode("div", _hoisted_5$
|
|
11245
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$p, [
|
|
11246
|
+
vue.createElementVNode("div", _hoisted_2$h, [
|
|
11247
|
+
_hoisted_3$f,
|
|
11248
|
+
vue.createElementVNode("div", _hoisted_4$8, [
|
|
11249
|
+
vue.createElementVNode("div", _hoisted_5$5, [
|
|
11326
11250
|
vue.createVNode(PbColorPicker, {
|
|
11327
11251
|
value: color.value,
|
|
11328
11252
|
"hide-delete": "",
|
|
@@ -11351,16 +11275,16 @@ ${_html.style}
|
|
|
11351
11275
|
const TopRightCornerIcon = "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'%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";
|
|
11352
11276
|
const BottomLeftCornerIcon = "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(180)'%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";
|
|
11353
11277
|
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";
|
|
11354
|
-
const _hoisted_1$
|
|
11355
|
-
const _hoisted_2$
|
|
11356
|
-
const _hoisted_3$
|
|
11278
|
+
const _hoisted_1$o = { class: "group-editor group-editor-border" };
|
|
11279
|
+
const _hoisted_2$g = { class: "flex-align-center" };
|
|
11280
|
+
const _hoisted_3$e = /* @__PURE__ */ vue.createElementVNode("div", { class: "title" }, [
|
|
11357
11281
|
/* @__PURE__ */ vue.createElementVNode("label", { textContent: "Border" })
|
|
11358
11282
|
], -1);
|
|
11359
|
-
const _hoisted_4$
|
|
11360
|
-
const _hoisted_5$
|
|
11283
|
+
const _hoisted_4$7 = { class: "" };
|
|
11284
|
+
const _hoisted_5$4 = /* @__PURE__ */ vue.createElementVNode("div", { class: "sub-title" }, [
|
|
11361
11285
|
/* @__PURE__ */ vue.createElementVNode("label", { textContent: "Color" })
|
|
11362
11286
|
], -1);
|
|
11363
|
-
const _hoisted_6$
|
|
11287
|
+
const _hoisted_6$4 = { class: "color" };
|
|
11364
11288
|
const _hoisted_7$4 = { class: "mt-8" };
|
|
11365
11289
|
const _hoisted_8$4 = /* @__PURE__ */ vue.createElementVNode("div", { class: "sub-title" }, [
|
|
11366
11290
|
/* @__PURE__ */ vue.createElementVNode("label", { textContent: "Border Width" })
|
|
@@ -11384,7 +11308,7 @@ ${_html.style}
|
|
|
11384
11308
|
const _hoisted_18 = { class: "bg-gray-100 py-5 rounded-8" };
|
|
11385
11309
|
const _hoisted_19 = { class: "" };
|
|
11386
11310
|
const _hoisted_20 = { class: "mt-2" };
|
|
11387
|
-
const _sfc_main$
|
|
11311
|
+
const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
|
|
11388
11312
|
__name: "PbPropertyGroupEditorBorder",
|
|
11389
11313
|
props: {
|
|
11390
11314
|
group: {},
|
|
@@ -11422,12 +11346,12 @@ ${_html.style}
|
|
|
11422
11346
|
const updateBorderBottomLeftRadius = (value) => updatePropertyValue({ borderBottomLeftRadius: value });
|
|
11423
11347
|
const updateBorderBottomRightRadius = (value) => updatePropertyValue({ borderBottomRightRadius: value });
|
|
11424
11348
|
return (_ctx, _cache) => {
|
|
11425
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
11426
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
11427
|
-
_hoisted_3$
|
|
11428
|
-
vue.createElementVNode("div", _hoisted_4$
|
|
11429
|
-
_hoisted_5$
|
|
11430
|
-
vue.createElementVNode("div", _hoisted_6$
|
|
11349
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$o, [
|
|
11350
|
+
vue.createElementVNode("div", _hoisted_2$g, [
|
|
11351
|
+
_hoisted_3$e,
|
|
11352
|
+
vue.createElementVNode("div", _hoisted_4$7, [
|
|
11353
|
+
_hoisted_5$4,
|
|
11354
|
+
vue.createElementVNode("div", _hoisted_6$4, [
|
|
11431
11355
|
vue.createVNode(PbColorPicker, {
|
|
11432
11356
|
value: color.value,
|
|
11433
11357
|
"hide-delete": "",
|
|
@@ -11531,14 +11455,14 @@ ${_html.style}
|
|
|
11531
11455
|
};
|
|
11532
11456
|
}
|
|
11533
11457
|
});
|
|
11534
|
-
const _hoisted_1$
|
|
11535
|
-
const _hoisted_2$
|
|
11536
|
-
const _hoisted_3$
|
|
11458
|
+
const _hoisted_1$n = { class: "group-editor group-editor-margin" };
|
|
11459
|
+
const _hoisted_2$f = { class: "flex-align-center" };
|
|
11460
|
+
const _hoisted_3$d = /* @__PURE__ */ vue.createElementVNode("div", { class: "title" }, [
|
|
11537
11461
|
/* @__PURE__ */ vue.createElementVNode("label", { textContent: "Margin" })
|
|
11538
11462
|
], -1);
|
|
11539
|
-
const _hoisted_4$
|
|
11540
|
-
const _hoisted_5$
|
|
11541
|
-
const _hoisted_6$
|
|
11463
|
+
const _hoisted_4$6 = { class: "flex-grow-1" };
|
|
11464
|
+
const _hoisted_5$3 = { class: "bg-gray-100 py-5 rounded-8" };
|
|
11465
|
+
const _hoisted_6$3 = { class: "text-center" };
|
|
11542
11466
|
const _hoisted_7$3 = { class: "bs-layout-horizontal justify-content-center align-items-center" };
|
|
11543
11467
|
const _hoisted_8$3 = /* @__PURE__ */ vue.createElementVNode("div", {
|
|
11544
11468
|
class: "d-inline-block text-center text-gray-300",
|
|
@@ -11547,7 +11471,7 @@ ${_html.style}
|
|
|
11547
11471
|
/* @__PURE__ */ vue.createElementVNode("span", { class: "font-icon" }, "add")
|
|
11548
11472
|
], -1);
|
|
11549
11473
|
const _hoisted_9$2 = { class: "text-center" };
|
|
11550
|
-
const _sfc_main$
|
|
11474
|
+
const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
|
|
11551
11475
|
__name: "PbPropertyGroupEditorMargin",
|
|
11552
11476
|
props: {
|
|
11553
11477
|
group: {},
|
|
@@ -11571,12 +11495,12 @@ ${_html.style}
|
|
|
11571
11495
|
const updateTop = (value) => updatePropertyValue({ marginTop: value });
|
|
11572
11496
|
const updateBottom = (value) => updatePropertyValue({ marginBottom: value });
|
|
11573
11497
|
return (_ctx, _cache) => {
|
|
11574
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
11575
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
11576
|
-
_hoisted_3$
|
|
11577
|
-
vue.createElementVNode("div", _hoisted_4$
|
|
11578
|
-
vue.createElementVNode("div", _hoisted_5$
|
|
11579
|
-
vue.createElementVNode("div", _hoisted_6$
|
|
11498
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$n, [
|
|
11499
|
+
vue.createElementVNode("div", _hoisted_2$f, [
|
|
11500
|
+
_hoisted_3$d,
|
|
11501
|
+
vue.createElementVNode("div", _hoisted_4$6, [
|
|
11502
|
+
vue.createElementVNode("div", _hoisted_5$3, [
|
|
11503
|
+
vue.createElementVNode("div", _hoisted_6$3, [
|
|
11580
11504
|
vue.createVNode(vue.unref(bluesea.BSTextInput), {
|
|
11581
11505
|
"model-value": top.value,
|
|
11582
11506
|
class: "ml-4",
|
|
@@ -11618,14 +11542,14 @@ ${_html.style}
|
|
|
11618
11542
|
};
|
|
11619
11543
|
}
|
|
11620
11544
|
});
|
|
11621
|
-
const _hoisted_1$
|
|
11622
|
-
const _hoisted_2$
|
|
11623
|
-
const _hoisted_3$
|
|
11545
|
+
const _hoisted_1$m = { class: "group-editor group-editor-padding" };
|
|
11546
|
+
const _hoisted_2$e = { class: "flex-align-center" };
|
|
11547
|
+
const _hoisted_3$c = /* @__PURE__ */ vue.createElementVNode("div", { class: "title" }, [
|
|
11624
11548
|
/* @__PURE__ */ vue.createElementVNode("label", { textContent: "Padding" })
|
|
11625
11549
|
], -1);
|
|
11626
|
-
const _hoisted_4$
|
|
11627
|
-
const _hoisted_5$
|
|
11628
|
-
const _hoisted_6$
|
|
11550
|
+
const _hoisted_4$5 = { class: "flex-grow-1" };
|
|
11551
|
+
const _hoisted_5$2 = { class: "bg-gray-100 py-5 rounded-8" };
|
|
11552
|
+
const _hoisted_6$2 = { class: "text-center" };
|
|
11629
11553
|
const _hoisted_7$2 = { class: "bs-layout-horizontal justify-content-center align-items-center" };
|
|
11630
11554
|
const _hoisted_8$2 = /* @__PURE__ */ vue.createElementVNode("div", {
|
|
11631
11555
|
class: "d-inline-block text-center text-gray-300",
|
|
@@ -11634,7 +11558,7 @@ ${_html.style}
|
|
|
11634
11558
|
/* @__PURE__ */ vue.createElementVNode("span", { class: "font-icon" }, "add")
|
|
11635
11559
|
], -1);
|
|
11636
11560
|
const _hoisted_9$1 = { class: "text-center" };
|
|
11637
|
-
const _sfc_main$
|
|
11561
|
+
const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
|
|
11638
11562
|
__name: "PbPropertyGroupEditorPadding",
|
|
11639
11563
|
props: {
|
|
11640
11564
|
group: {},
|
|
@@ -11658,12 +11582,12 @@ ${_html.style}
|
|
|
11658
11582
|
const updateTop = (value) => updatePropertyValue({ paddingTop: value });
|
|
11659
11583
|
const updateBottom = (value) => updatePropertyValue({ paddingBottom: value });
|
|
11660
11584
|
return (_ctx, _cache) => {
|
|
11661
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
11662
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
11663
|
-
_hoisted_3$
|
|
11664
|
-
vue.createElementVNode("div", _hoisted_4$
|
|
11665
|
-
vue.createElementVNode("div", _hoisted_5$
|
|
11666
|
-
vue.createElementVNode("div", _hoisted_6$
|
|
11585
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$m, [
|
|
11586
|
+
vue.createElementVNode("div", _hoisted_2$e, [
|
|
11587
|
+
_hoisted_3$c,
|
|
11588
|
+
vue.createElementVNode("div", _hoisted_4$5, [
|
|
11589
|
+
vue.createElementVNode("div", _hoisted_5$2, [
|
|
11590
|
+
vue.createElementVNode("div", _hoisted_6$2, [
|
|
11667
11591
|
vue.createVNode(vue.unref(bluesea.BSTextInput), {
|
|
11668
11592
|
"model-value": top.value,
|
|
11669
11593
|
class: "ml-4",
|
|
@@ -11731,7 +11655,7 @@ ${_html.style}
|
|
|
11731
11655
|
propertyType: "text"
|
|
11732
11656
|
}
|
|
11733
11657
|
],
|
|
11734
|
-
propertyGroupEditor: () => _sfc_main$
|
|
11658
|
+
propertyGroupEditor: () => _sfc_main$t
|
|
11735
11659
|
};
|
|
11736
11660
|
};
|
|
11737
11661
|
const sizeGroup = () => {
|
|
@@ -11770,7 +11694,7 @@ ${_html.style}
|
|
|
11770
11694
|
propertyType: "text"
|
|
11771
11695
|
}
|
|
11772
11696
|
],
|
|
11773
|
-
propertyGroupEditor: () => _sfc_main$
|
|
11697
|
+
propertyGroupEditor: () => _sfc_main$s
|
|
11774
11698
|
};
|
|
11775
11699
|
};
|
|
11776
11700
|
const marginGroup = () => {
|
|
@@ -11799,7 +11723,7 @@ ${_html.style}
|
|
|
11799
11723
|
propertyType: "text"
|
|
11800
11724
|
}
|
|
11801
11725
|
],
|
|
11802
|
-
propertyGroupEditor: () => _sfc_main$
|
|
11726
|
+
propertyGroupEditor: () => _sfc_main$o
|
|
11803
11727
|
};
|
|
11804
11728
|
};
|
|
11805
11729
|
const paddingGroup = () => {
|
|
@@ -11828,7 +11752,7 @@ ${_html.style}
|
|
|
11828
11752
|
propertyType: "text"
|
|
11829
11753
|
}
|
|
11830
11754
|
],
|
|
11831
|
-
propertyGroupEditor: () => _sfc_main$
|
|
11755
|
+
propertyGroupEditor: () => _sfc_main$n
|
|
11832
11756
|
};
|
|
11833
11757
|
};
|
|
11834
11758
|
const commonGroup = () => {
|
|
@@ -11895,7 +11819,7 @@ ${_html.style}
|
|
|
11895
11819
|
propertyType: "image"
|
|
11896
11820
|
}
|
|
11897
11821
|
],
|
|
11898
|
-
propertyGroupEditor: () => _sfc_main$
|
|
11822
|
+
propertyGroupEditor: () => _sfc_main$q
|
|
11899
11823
|
};
|
|
11900
11824
|
};
|
|
11901
11825
|
const borderGroup = () => {
|
|
@@ -11949,7 +11873,7 @@ ${_html.style}
|
|
|
11949
11873
|
propertyType: "text"
|
|
11950
11874
|
}
|
|
11951
11875
|
],
|
|
11952
|
-
propertyGroupEditor: () => _sfc_main$
|
|
11876
|
+
propertyGroupEditor: () => _sfc_main$p
|
|
11953
11877
|
};
|
|
11954
11878
|
};
|
|
11955
11879
|
const defaultPropertyGroups = () => {
|
|
@@ -11958,56 +11882,6 @@ ${_html.style}
|
|
|
11958
11882
|
const defaultWidgetPropertyGroups = () => {
|
|
11959
11883
|
return [positionGroup(), sizeGroup(), marginGroup(), paddingGroup(), borderGroup(), backgroundGroup(), commonGroup()];
|
|
11960
11884
|
};
|
|
11961
|
-
const designParts = [
|
|
11962
|
-
{
|
|
11963
|
-
partType: "Section",
|
|
11964
|
-
partName: "GlobalDesignPart",
|
|
11965
|
-
caption: "Global Design Part",
|
|
11966
|
-
icon: "rectangle",
|
|
11967
|
-
propertyGroups: [
|
|
11968
|
-
...defaultPropertyGroups()
|
|
11969
|
-
],
|
|
11970
|
-
initialProperties: {
|
|
11971
|
-
sectionType: "globalDesignPart",
|
|
11972
|
-
direction: "horizontal"
|
|
11973
|
-
},
|
|
11974
|
-
localized: false,
|
|
11975
|
-
allowsChild: () => true,
|
|
11976
|
-
creator: () => _sfc_main$w
|
|
11977
|
-
},
|
|
11978
|
-
{
|
|
11979
|
-
partType: "Section",
|
|
11980
|
-
partName: "LocalDesignPart",
|
|
11981
|
-
caption: "Local Design Part",
|
|
11982
|
-
icon: "rectangle",
|
|
11983
|
-
propertyGroups: [
|
|
11984
|
-
...defaultPropertyGroups()
|
|
11985
|
-
],
|
|
11986
|
-
initialProperties: {
|
|
11987
|
-
sectionType: "localDesignPart",
|
|
11988
|
-
direction: "horizontal"
|
|
11989
|
-
},
|
|
11990
|
-
localized: true,
|
|
11991
|
-
allowsChild: () => true,
|
|
11992
|
-
creator: () => _sfc_main$w
|
|
11993
|
-
},
|
|
11994
|
-
{
|
|
11995
|
-
partType: "Section",
|
|
11996
|
-
partName: "LocalMarketingPart",
|
|
11997
|
-
caption: "Local Marketing Part",
|
|
11998
|
-
icon: "rectangle",
|
|
11999
|
-
propertyGroups: [
|
|
12000
|
-
...defaultPropertyGroups()
|
|
12001
|
-
],
|
|
12002
|
-
initialProperties: {
|
|
12003
|
-
sectionType: "localMarketingPart",
|
|
12004
|
-
direction: "horizontal"
|
|
12005
|
-
},
|
|
12006
|
-
localized: true,
|
|
12007
|
-
allowsChild: () => true,
|
|
12008
|
-
creator: () => _sfc_main$w
|
|
12009
|
-
}
|
|
12010
|
-
];
|
|
12011
11885
|
const sectionParts = [
|
|
12012
11886
|
{
|
|
12013
11887
|
partType: "Section",
|
|
@@ -12022,7 +11896,7 @@ ${_html.style}
|
|
|
12022
11896
|
},
|
|
12023
11897
|
localized: false,
|
|
12024
11898
|
allowsChild: () => true,
|
|
12025
|
-
creator: () => _sfc_main$
|
|
11899
|
+
creator: () => _sfc_main$u
|
|
12026
11900
|
}
|
|
12027
11901
|
];
|
|
12028
11902
|
const blockParts = [
|
|
@@ -12037,7 +11911,7 @@ ${_html.style}
|
|
|
12037
11911
|
initialProperties: {},
|
|
12038
11912
|
localized: false,
|
|
12039
11913
|
allowsChild: () => true,
|
|
12040
|
-
creator: () => _sfc_main$
|
|
11914
|
+
creator: () => _sfc_main$w
|
|
12041
11915
|
}
|
|
12042
11916
|
];
|
|
12043
11917
|
const widgets = [
|
|
@@ -12166,9 +12040,6 @@ ${_html.style}
|
|
|
12166
12040
|
}
|
|
12167
12041
|
];
|
|
12168
12042
|
const partDefinitions = {};
|
|
12169
|
-
for (let part of designParts) {
|
|
12170
|
-
partDefinitions[part.partName] = part;
|
|
12171
|
-
}
|
|
12172
12043
|
for (let part of sectionParts) {
|
|
12173
12044
|
partDefinitions[part.partName] = part;
|
|
12174
12045
|
}
|
|
@@ -12178,13 +12049,6 @@ ${_html.style}
|
|
|
12178
12049
|
for (let part of widgets) {
|
|
12179
12050
|
partDefinitions[part.partName] = part;
|
|
12180
12051
|
}
|
|
12181
|
-
const designPartDefinitions = [
|
|
12182
|
-
{
|
|
12183
|
-
groupName: "DesignParts",
|
|
12184
|
-
caption: "Design Parts",
|
|
12185
|
-
partDefinitions: designParts
|
|
12186
|
-
}
|
|
12187
|
-
];
|
|
12188
12052
|
[
|
|
12189
12053
|
{
|
|
12190
12054
|
groupName: "Layout",
|
|
@@ -12241,19 +12105,6 @@ ${_html.style}
|
|
|
12241
12105
|
}
|
|
12242
12106
|
}
|
|
12243
12107
|
}
|
|
12244
|
-
const _OpenAddPartModalCommand = class _OpenAddPartModalCommand {
|
|
12245
|
-
constructor(modal) {
|
|
12246
|
-
__publicField(this, "commandId", _OpenAddPartModalCommand.COMMAND_ID);
|
|
12247
|
-
__publicField(this, "caption", "Add Part");
|
|
12248
|
-
this.modal = modal;
|
|
12249
|
-
}
|
|
12250
|
-
execute(pageBuilder, args) {
|
|
12251
|
-
let partDefinitionGroups = designPartDefinitions;
|
|
12252
|
-
openPartAddModal(this.modal, { pageBuilder, partDefinitionGroups, ...args || {} });
|
|
12253
|
-
}
|
|
12254
|
-
};
|
|
12255
|
-
__publicField(_OpenAddPartModalCommand, "COMMAND_ID", "OpenAddPartModal");
|
|
12256
|
-
let OpenAddPartModalCommand = _OpenAddPartModalCommand;
|
|
12257
12108
|
const _OpenAddWidgetModalCommand = class _OpenAddWidgetModalCommand {
|
|
12258
12109
|
constructor(modal) {
|
|
12259
12110
|
__publicField(this, "commandId", _OpenAddWidgetModalCommand.COMMAND_ID);
|
|
@@ -12267,28 +12118,6 @@ ${_html.style}
|
|
|
12267
12118
|
};
|
|
12268
12119
|
__publicField(_OpenAddWidgetModalCommand, "COMMAND_ID", "OpenAddWidgetModal");
|
|
12269
12120
|
let OpenAddWidgetModalCommand = _OpenAddWidgetModalCommand;
|
|
12270
|
-
const openPartAddModal = (modal, args, callback) => {
|
|
12271
|
-
modal.openModal({
|
|
12272
|
-
component: vue.defineAsyncComponent(() => Promise.resolve().then(() => PbPartAddModal)),
|
|
12273
|
-
style: {
|
|
12274
|
-
width: "80%",
|
|
12275
|
-
height: "80%",
|
|
12276
|
-
maxWidth: "800px",
|
|
12277
|
-
minWidth: "500px",
|
|
12278
|
-
maxHeight: "800px"
|
|
12279
|
-
},
|
|
12280
|
-
bind: args,
|
|
12281
|
-
on: {
|
|
12282
|
-
selectHandler: (part) => {
|
|
12283
|
-
if (callback) {
|
|
12284
|
-
callback(part);
|
|
12285
|
-
} else {
|
|
12286
|
-
addPart(args.pageBuilder, part);
|
|
12287
|
-
}
|
|
12288
|
-
}
|
|
12289
|
-
}
|
|
12290
|
-
});
|
|
12291
|
-
};
|
|
12292
12121
|
const openWidgetAddModal = (modal, args, callback) => {
|
|
12293
12122
|
modal.openModal({
|
|
12294
12123
|
component: vue.defineAsyncComponent(() => Promise.resolve().then(() => PbWidgetAddModal)),
|
|
@@ -12303,12 +12132,12 @@ ${_html.style}
|
|
|
12303
12132
|
on: {
|
|
12304
12133
|
selectHandler: (part) => {
|
|
12305
12134
|
if (["ImageWidget"].includes(part.partName)) {
|
|
12306
|
-
|
|
12307
|
-
|
|
12308
|
-
|
|
12135
|
+
const imageProvider = args.pageBuilder.getProvider("imageProvider");
|
|
12136
|
+
if (imageProvider) {
|
|
12137
|
+
imageProvider({ modal }, (url) => {
|
|
12309
12138
|
addPart(args.pageBuilder, part, { image: url });
|
|
12310
|
-
}
|
|
12311
|
-
}
|
|
12139
|
+
});
|
|
12140
|
+
}
|
|
12312
12141
|
} else {
|
|
12313
12142
|
if (callback) {
|
|
12314
12143
|
callback(part);
|
|
@@ -12661,7 +12490,7 @@ ${_html.style}
|
|
|
12661
12490
|
}
|
|
12662
12491
|
};
|
|
12663
12492
|
__publicField(_AddSectionAboveCommand, "COMMAND_ID", "AddSectionAbove");
|
|
12664
|
-
__publicField(_AddSectionAboveCommand, "CAPTION", "Add
|
|
12493
|
+
__publicField(_AddSectionAboveCommand, "CAPTION", "Add Section Above");
|
|
12665
12494
|
let AddSectionAboveCommand = _AddSectionAboveCommand;
|
|
12666
12495
|
const _AddSectionBelowCommand = class _AddSectionBelowCommand {
|
|
12667
12496
|
constructor(modal) {
|
|
@@ -12674,7 +12503,7 @@ ${_html.style}
|
|
|
12674
12503
|
}
|
|
12675
12504
|
};
|
|
12676
12505
|
__publicField(_AddSectionBelowCommand, "COMMAND_ID", "AddSectionBelow");
|
|
12677
|
-
__publicField(_AddSectionBelowCommand, "CAPTION", "Add
|
|
12506
|
+
__publicField(_AddSectionBelowCommand, "CAPTION", "Add Section Below");
|
|
12678
12507
|
let AddSectionBelowCommand = _AddSectionBelowCommand;
|
|
12679
12508
|
const _AddBlockLeftCommand = class _AddBlockLeftCommand {
|
|
12680
12509
|
constructor() {
|
|
@@ -12823,6 +12652,20 @@ ${_html.style}
|
|
|
12823
12652
|
__publicField(_DeletePartCommand, "COMMAND_ID", "DeletePart");
|
|
12824
12653
|
__publicField(_DeletePartCommand, "CAPTION", "Delete");
|
|
12825
12654
|
let DeletePartCommand = _DeletePartCommand;
|
|
12655
|
+
const _CopyAllCommand = class _CopyAllCommand {
|
|
12656
|
+
constructor() {
|
|
12657
|
+
__publicField(this, "commandId", _CopyAllCommand.COMMAND_ID);
|
|
12658
|
+
}
|
|
12659
|
+
async execute(pageBuilder) {
|
|
12660
|
+
const json = pageBuilder.model.serializeModel(
|
|
12661
|
+
(part) => pageBuilder.extractMedia(part),
|
|
12662
|
+
(partObject) => pageBuilder.extractProvider(partObject)
|
|
12663
|
+
);
|
|
12664
|
+
await navigator.clipboard.writeText(json);
|
|
12665
|
+
}
|
|
12666
|
+
};
|
|
12667
|
+
__publicField(_CopyAllCommand, "COMMAND_ID", "CopyAll");
|
|
12668
|
+
let CopyAllCommand = _CopyAllCommand;
|
|
12826
12669
|
const _CopyPartCommand = class _CopyPartCommand {
|
|
12827
12670
|
constructor() {
|
|
12828
12671
|
__publicField(this, "commandId", _CopyPartCommand.COMMAND_ID);
|
|
@@ -12830,7 +12673,7 @@ ${_html.style}
|
|
|
12830
12673
|
async execute(pageBuilder) {
|
|
12831
12674
|
const partIds = pageBuilder.context.getSelectedParts().map((part) => part.partId);
|
|
12832
12675
|
if (partIds.length > 0) {
|
|
12833
|
-
const json = pageBuilder.model.
|
|
12676
|
+
const json = pageBuilder.model.serializeParts(partIds);
|
|
12834
12677
|
await navigator.clipboard.writeText(json);
|
|
12835
12678
|
}
|
|
12836
12679
|
}
|
|
@@ -12853,12 +12696,34 @@ ${_html.style}
|
|
|
12853
12696
|
__publicField(this, "commandId", _PastePartCommand.COMMAND_ID);
|
|
12854
12697
|
}
|
|
12855
12698
|
async execute(pageBuilder) {
|
|
12856
|
-
const
|
|
12857
|
-
|
|
12858
|
-
|
|
12859
|
-
const
|
|
12860
|
-
if (
|
|
12861
|
-
|
|
12699
|
+
const json = await navigator.clipboard.readText();
|
|
12700
|
+
const object = JSON.parse(json);
|
|
12701
|
+
if (object.partType === ROOT_TYPE) {
|
|
12702
|
+
const rootPart = partFromJsonObject(object, true);
|
|
12703
|
+
if (!rootPart)
|
|
12704
|
+
throw new Error("Invalid data format");
|
|
12705
|
+
let partIdsToDelete = void 0;
|
|
12706
|
+
if (pageBuilder.model.rootPart.children && pageBuilder.model.rootPart.children.length) {
|
|
12707
|
+
partIdsToDelete = pageBuilder.model.rootPart.children.map((v) => v.partId);
|
|
12708
|
+
}
|
|
12709
|
+
const param = {
|
|
12710
|
+
delete: partIdsToDelete,
|
|
12711
|
+
insert: [
|
|
12712
|
+
{
|
|
12713
|
+
partId: pageBuilder.model.getRootPartId(),
|
|
12714
|
+
index: 0,
|
|
12715
|
+
parts: rootPart.children || []
|
|
12716
|
+
}
|
|
12717
|
+
]
|
|
12718
|
+
};
|
|
12719
|
+
pageBuilder.model.updateModel(param);
|
|
12720
|
+
} else {
|
|
12721
|
+
const { target, index = 0 } = findInsertTargetAndIndex(pageBuilder);
|
|
12722
|
+
if (target) {
|
|
12723
|
+
const parts = pageBuilder.model.parseParts(json);
|
|
12724
|
+
if (parts) {
|
|
12725
|
+
insertParts(pageBuilder, target.partId, index, parts, false);
|
|
12726
|
+
}
|
|
12862
12727
|
}
|
|
12863
12728
|
}
|
|
12864
12729
|
}
|
|
@@ -12879,7 +12744,6 @@ ${_html.style}
|
|
|
12879
12744
|
let SelectAllPartsCommand = _SelectAllPartsCommand;
|
|
12880
12745
|
const createDefaultCommands = (modal) => {
|
|
12881
12746
|
return [
|
|
12882
|
-
new OpenAddPartModalCommand(modal),
|
|
12883
12747
|
new OpenAddWidgetModalCommand(modal),
|
|
12884
12748
|
new AddPartCommand(modal),
|
|
12885
12749
|
new AddSectionCommand(modal),
|
|
@@ -12897,6 +12761,7 @@ ${_html.style}
|
|
|
12897
12761
|
new AddWidgetInsideCommand(modal),
|
|
12898
12762
|
new ChangePropertyCommand(),
|
|
12899
12763
|
new DeletePartCommand(),
|
|
12764
|
+
new CopyAllCommand(),
|
|
12900
12765
|
new CopyPartCommand(),
|
|
12901
12766
|
new CutPartCommand(),
|
|
12902
12767
|
new PastePartCommand(),
|
|
@@ -13064,17 +12929,8 @@ ${_html.style}
|
|
|
13064
12929
|
}
|
|
13065
12930
|
},
|
|
13066
12931
|
{
|
|
13067
|
-
groupId: "core:
|
|
13068
|
-
commandId:
|
|
13069
|
-
precedence: 10,
|
|
13070
|
-
getMenuItem(pageBuilder) {
|
|
13071
|
-
if (pageBuilder.context.getSelectionCount() <= 1)
|
|
13072
|
-
return menuItemForCommand(pageBuilder, OpenAddPartModalCommand.COMMAND_ID);
|
|
13073
|
-
}
|
|
13074
|
-
},
|
|
13075
|
-
{
|
|
13076
|
-
groupId: "core:edit",
|
|
13077
|
-
commandId: DeletePartCommand.COMMAND_ID,
|
|
12932
|
+
groupId: "core:edit",
|
|
12933
|
+
commandId: DeletePartCommand.COMMAND_ID,
|
|
13078
12934
|
precedence: 10,
|
|
13079
12935
|
getMenuItem(pageBuilder) {
|
|
13080
12936
|
if (pageBuilder.context.hasSelection() && !pageBuilder.context.isPageSelected()) {
|
|
@@ -13146,6 +13002,12 @@ ${_html.style}
|
|
|
13146
13002
|
icon: "redo",
|
|
13147
13003
|
handler: (modeler) => modeler.redo()
|
|
13148
13004
|
},
|
|
13005
|
+
{
|
|
13006
|
+
buttonId: "core:copyAll",
|
|
13007
|
+
caption: "Copy All",
|
|
13008
|
+
icon: "copy_all",
|
|
13009
|
+
handler: (modeler) => modeler.commandRegistry.executeCommand(CopyAllCommand.COMMAND_ID)
|
|
13010
|
+
},
|
|
13149
13011
|
{
|
|
13150
13012
|
buttonId: "core:copy",
|
|
13151
13013
|
caption: "Copy",
|
|
@@ -13391,15 +13253,14 @@ ${_html.style}
|
|
|
13391
13253
|
__publicField(this, "keyHandlers", new KeyHandlersImpl(this));
|
|
13392
13254
|
__publicField(this, "toolButtonRegistry", new ToolButtonRegistryImpl());
|
|
13393
13255
|
__publicField(this, "title");
|
|
13394
|
-
__publicField(this, "editMode");
|
|
13395
13256
|
__publicField(this, "scale", vue.ref(1));
|
|
13396
13257
|
__publicField(this, "locale", vue.ref("en"));
|
|
13397
13258
|
__publicField(this, "locales", vue.ref(["en"]));
|
|
13398
13259
|
__publicField(this, "customWidgets", []);
|
|
13260
|
+
__publicField(this, "watchers", {});
|
|
13399
13261
|
__publicField(this, "providers", {});
|
|
13400
13262
|
this.model = new Model();
|
|
13401
13263
|
this.context = new PageBuilderContextImpl(this);
|
|
13402
|
-
this.editMode = "free";
|
|
13403
13264
|
this.scale.value = 1;
|
|
13404
13265
|
this.initPlugins();
|
|
13405
13266
|
}
|
|
@@ -13428,13 +13289,19 @@ ${_html.style}
|
|
|
13428
13289
|
const def = this.partManager.getPartDefinition(part.partName);
|
|
13429
13290
|
if (!def || !def.dataWatcher)
|
|
13430
13291
|
return false;
|
|
13431
|
-
|
|
13292
|
+
const watcher = this.watchers[def.dataWatcher];
|
|
13293
|
+
if (!watcher)
|
|
13294
|
+
return false;
|
|
13295
|
+
return watcher(part.properties);
|
|
13432
13296
|
}
|
|
13433
13297
|
provideCustomWidgetData(part) {
|
|
13434
13298
|
const def = this.partManager.getPartDefinition(part.partName);
|
|
13435
13299
|
if (!def || !def.dataProvider)
|
|
13436
13300
|
return Promise.resolve();
|
|
13437
|
-
|
|
13301
|
+
const provider = this.providers[def.dataProvider];
|
|
13302
|
+
if (!provider)
|
|
13303
|
+
return Promise.resolve();
|
|
13304
|
+
return provider(part.properties);
|
|
13438
13305
|
}
|
|
13439
13306
|
registerPlugin(plugin) {
|
|
13440
13307
|
if (plugin.partDefinitions)
|
|
@@ -13458,7 +13325,7 @@ ${_html.style}
|
|
|
13458
13325
|
plugin.widgets.forEach((v) => {
|
|
13459
13326
|
const w = { ...v };
|
|
13460
13327
|
w.partType = "Widget";
|
|
13461
|
-
w.creator = () => _sfc_main$
|
|
13328
|
+
w.creator = () => _sfc_main$z;
|
|
13462
13329
|
w.propertyGroups = [...w.propertyGroups, ...defaultWidgetPropertyGroups()];
|
|
13463
13330
|
partDefinitions2[v.partName] = w;
|
|
13464
13331
|
const found = this.customWidgets.find((x) => x.partName === v.partName);
|
|
@@ -13468,34 +13335,34 @@ ${_html.style}
|
|
|
13468
13335
|
});
|
|
13469
13336
|
this.partManager.registerPartDefinitions(partDefinitions2);
|
|
13470
13337
|
}
|
|
13338
|
+
if (plugin.watchers) {
|
|
13339
|
+
this.watchers = { ...this.providers, ...plugin.watchers };
|
|
13340
|
+
}
|
|
13471
13341
|
if (plugin.providers) {
|
|
13472
|
-
this.providers = {
|
|
13473
|
-
...this.providers,
|
|
13474
|
-
...plugin.providers
|
|
13475
|
-
};
|
|
13342
|
+
this.providers = { ...this.providers, ...plugin.providers };
|
|
13476
13343
|
}
|
|
13477
13344
|
if (plugin.propertyEditors) {
|
|
13478
13345
|
this.partManager.registerPartPropertyEditors(plugin.propertyEditors);
|
|
13479
13346
|
}
|
|
13480
13347
|
}
|
|
13481
|
-
initData(
|
|
13482
|
-
this.model.rootPart.pageBuilderId = this.instanceId;
|
|
13348
|
+
initData(data) {
|
|
13483
13349
|
this.model.rootPart.language = this.locale.value;
|
|
13484
13350
|
let parts;
|
|
13485
|
-
if (
|
|
13486
|
-
|
|
13487
|
-
|
|
13488
|
-
|
|
13489
|
-
|
|
13490
|
-
parts = [];
|
|
13491
|
-
parts.push(page);
|
|
13492
|
-
}
|
|
13493
|
-
}
|
|
13351
|
+
if (data) {
|
|
13352
|
+
const rootPart = partFromJsonObject(data, true);
|
|
13353
|
+
if (!rootPart)
|
|
13354
|
+
throw new Error("Invalid data format");
|
|
13355
|
+
parts = rootPart.children;
|
|
13494
13356
|
}
|
|
13495
13357
|
if (!parts) {
|
|
13496
13358
|
parts = [this.getEmptyPageContent(), this.getEmptyPageContent()];
|
|
13497
13359
|
}
|
|
13360
|
+
let partIdsToDelete = void 0;
|
|
13361
|
+
if (this.model.rootPart.children && this.model.rootPart.children.length) {
|
|
13362
|
+
partIdsToDelete = this.model.rootPart.children.map((v) => v.partId);
|
|
13363
|
+
}
|
|
13498
13364
|
const param = {
|
|
13365
|
+
delete: partIdsToDelete,
|
|
13499
13366
|
insert: [
|
|
13500
13367
|
{
|
|
13501
13368
|
partId: this.model.getRootPartId(),
|
|
@@ -13535,8 +13402,8 @@ ${_html.style}
|
|
|
13535
13402
|
if (screenCount !== 1)
|
|
13536
13403
|
return;
|
|
13537
13404
|
const part = this.model.rootPart.children[0];
|
|
13538
|
-
const json = this.model.
|
|
13539
|
-
const copied = this.model.
|
|
13405
|
+
const json = this.model.serializeParts([part.partId]);
|
|
13406
|
+
const copied = this.model.parseParts(json);
|
|
13540
13407
|
if (!copied)
|
|
13541
13408
|
return;
|
|
13542
13409
|
this.model.updateModel({
|
|
@@ -13552,6 +13419,100 @@ ${_html.style}
|
|
|
13552
13419
|
getCustomWidgets() {
|
|
13553
13420
|
return this.customWidgets;
|
|
13554
13421
|
}
|
|
13422
|
+
extractMedia(part) {
|
|
13423
|
+
const urls = /* @__PURE__ */ new Set();
|
|
13424
|
+
this.extractMediaFromPart(part, urls);
|
|
13425
|
+
return Array.from(urls);
|
|
13426
|
+
}
|
|
13427
|
+
extractProvider(part) {
|
|
13428
|
+
const def = this.partManager.getPartDefinition(part.partName);
|
|
13429
|
+
if (def && (def == null ? void 0 : def.dataProvider)) {
|
|
13430
|
+
part.dataProvider = def.dataProvider;
|
|
13431
|
+
}
|
|
13432
|
+
if (part.children && part.children.length) {
|
|
13433
|
+
for (const child of part.children) {
|
|
13434
|
+
this.extractProvider(child);
|
|
13435
|
+
}
|
|
13436
|
+
}
|
|
13437
|
+
}
|
|
13438
|
+
extractMediaFromPart(part, urls) {
|
|
13439
|
+
if (part.properties) {
|
|
13440
|
+
for (const name in part.properties) {
|
|
13441
|
+
const def = this.partManager.getPropertyDefinition(part.partName, name);
|
|
13442
|
+
if (def && def.propertyType === "image") {
|
|
13443
|
+
const value = part.properties[name];
|
|
13444
|
+
if (value) {
|
|
13445
|
+
urls.add(value);
|
|
13446
|
+
}
|
|
13447
|
+
}
|
|
13448
|
+
}
|
|
13449
|
+
if (part.properties.css) {
|
|
13450
|
+
this.extractMediaFromHtml(part.properties.css, urls);
|
|
13451
|
+
}
|
|
13452
|
+
if (part.partName === "HtmlWidget" && part.properties.html) {
|
|
13453
|
+
for (const locale in part.properties.html) {
|
|
13454
|
+
const html = part.properties.html[locale];
|
|
13455
|
+
if (html.tags)
|
|
13456
|
+
this.extractMediaFromHtml(html.tags, urls);
|
|
13457
|
+
if (html.style)
|
|
13458
|
+
this.extractMediaFromHtml(html.style, urls);
|
|
13459
|
+
}
|
|
13460
|
+
}
|
|
13461
|
+
}
|
|
13462
|
+
if (part.children && part.children.length) {
|
|
13463
|
+
for (const child of part.children) {
|
|
13464
|
+
this.extractMediaFromPart(child, urls);
|
|
13465
|
+
}
|
|
13466
|
+
}
|
|
13467
|
+
}
|
|
13468
|
+
extractMediaFromHtml(html, urls) {
|
|
13469
|
+
const imgSrcMatches = html.match(/<img[^>]+src=["']?([^"'\s>]+)["']?[^>]*>/gi);
|
|
13470
|
+
if (imgSrcMatches) {
|
|
13471
|
+
imgSrcMatches.forEach((match) => {
|
|
13472
|
+
const url = match.match(/src=["']?([^"'\s>]+)["']?/i);
|
|
13473
|
+
if (url && url[1]) {
|
|
13474
|
+
urls.add(url[1]);
|
|
13475
|
+
}
|
|
13476
|
+
});
|
|
13477
|
+
}
|
|
13478
|
+
const sourceSrcsetMatches = html.match(/<source[^>]+srcset=["']?([^"'>]+)["']?[^>]*>/gi);
|
|
13479
|
+
if (sourceSrcsetMatches) {
|
|
13480
|
+
sourceSrcsetMatches.forEach((match) => {
|
|
13481
|
+
const srcset = match.match(/srcset=["']?([^"'>]+)["']?/i);
|
|
13482
|
+
if (srcset && srcset[1]) {
|
|
13483
|
+
const _urls = srcset[1].split(",").map((item) => item.trim().split(/\s+/)[0]);
|
|
13484
|
+
_urls.forEach((url) => urls.add(url));
|
|
13485
|
+
}
|
|
13486
|
+
});
|
|
13487
|
+
}
|
|
13488
|
+
const inputImageMatches = html.match(/<input[^>]+type=["']image["'][^>]+src=["']?([^"'\s>]+)["']?[^>]*>/gi);
|
|
13489
|
+
if (inputImageMatches) {
|
|
13490
|
+
inputImageMatches.forEach((match) => {
|
|
13491
|
+
const url = match.match(/src=["']?([^"'\s>]+)["']?/i);
|
|
13492
|
+
if (url && url[1]) {
|
|
13493
|
+
urls.add(url[1]);
|
|
13494
|
+
}
|
|
13495
|
+
});
|
|
13496
|
+
}
|
|
13497
|
+
const styleUrlMatches = html.match(/style=["']?[^"'>]*(background|background-image|border-image|list-style-image|content):\s*url\(["']?([^"'\)]+)["']?\)/gi);
|
|
13498
|
+
if (styleUrlMatches) {
|
|
13499
|
+
styleUrlMatches.forEach((match) => {
|
|
13500
|
+
const url = match.match(/url\(["']?([^"'\)]+)["']?\)/i);
|
|
13501
|
+
if (url && url[1]) {
|
|
13502
|
+
urls.add(url[1]);
|
|
13503
|
+
}
|
|
13504
|
+
});
|
|
13505
|
+
}
|
|
13506
|
+
const styleTagUrlMatches = html.match(/(background|background-image|border-image|list-style-image|content):\s*url\(["']?([^"'\)]+)["']?\)/gi);
|
|
13507
|
+
if (styleTagUrlMatches) {
|
|
13508
|
+
styleTagUrlMatches.forEach((match) => {
|
|
13509
|
+
const url = match.match(/url\(["']?([^"'\)]+)["']?\)/i);
|
|
13510
|
+
if (url && url[1]) {
|
|
13511
|
+
urls.add(url[1]);
|
|
13512
|
+
}
|
|
13513
|
+
});
|
|
13514
|
+
}
|
|
13515
|
+
}
|
|
13555
13516
|
getEmptyPageContent() {
|
|
13556
13517
|
const block = new Block();
|
|
13557
13518
|
const section = new Section();
|
|
@@ -13572,11 +13533,11 @@ ${_html.style}
|
|
|
13572
13533
|
});
|
|
13573
13534
|
}
|
|
13574
13535
|
}
|
|
13575
|
-
const _hoisted_1$
|
|
13576
|
-
const _hoisted_2$
|
|
13577
|
-
_hoisted_1$
|
|
13536
|
+
const _hoisted_1$l = /* @__PURE__ */ vue.createElementVNode("i", { class: "material-icons-outlined" }, "add_circle_outline", -1);
|
|
13537
|
+
const _hoisted_2$d = [
|
|
13538
|
+
_hoisted_1$l
|
|
13578
13539
|
];
|
|
13579
|
-
const _sfc_main$
|
|
13540
|
+
const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
|
|
13580
13541
|
__name: "PbPage",
|
|
13581
13542
|
props: {
|
|
13582
13543
|
page: {},
|
|
@@ -13609,7 +13570,7 @@ ${_html.style}
|
|
|
13609
13570
|
class: vue.normalizeClass([selected.value && "selected", _ctx.isMobilePage ? "mobile" : "pc", "pb-page-content"])
|
|
13610
13571
|
}, [
|
|
13611
13572
|
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList((_a = _ctx.page) == null ? void 0 : _a.children, (section, index) => {
|
|
13612
|
-
return vue.openBlock(), vue.createBlock(_sfc_main$
|
|
13573
|
+
return vue.openBlock(), vue.createBlock(_sfc_main$u, {
|
|
13613
13574
|
key: section.partId,
|
|
13614
13575
|
part: section
|
|
13615
13576
|
}, null, 8, ["part"]);
|
|
@@ -13621,13 +13582,13 @@ ${_html.style}
|
|
|
13621
13582
|
var _a2, _b;
|
|
13622
13583
|
return insertSection(((_b = (_a2 = _ctx.page) == null ? void 0 : _a2.children) == null ? void 0 : _b.length) || 0);
|
|
13623
13584
|
})
|
|
13624
|
-
}, _hoisted_2$
|
|
13585
|
+
}, _hoisted_2$d)
|
|
13625
13586
|
], 4);
|
|
13626
13587
|
};
|
|
13627
13588
|
}
|
|
13628
13589
|
});
|
|
13629
|
-
const _hoisted_1$
|
|
13630
|
-
const _sfc_main$
|
|
13590
|
+
const _hoisted_1$k = /* @__PURE__ */ vue.createElementVNode("div", { style: { "width": "20px" } }, null, -1);
|
|
13591
|
+
const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
|
|
13631
13592
|
__name: "PbCanvas",
|
|
13632
13593
|
setup(__props) {
|
|
13633
13594
|
const pageBuilder = usePageBuilderEditor();
|
|
@@ -13674,13 +13635,13 @@ ${_html.style}
|
|
|
13674
13635
|
style: vue.normalizeStyle(style.value),
|
|
13675
13636
|
class: "pb-canvas"
|
|
13676
13637
|
}, [
|
|
13677
|
-
vue.createVNode(_sfc_main$
|
|
13638
|
+
vue.createVNode(_sfc_main$m, {
|
|
13678
13639
|
"is-mobile-page": true,
|
|
13679
13640
|
page: pageS.value,
|
|
13680
13641
|
width: 420
|
|
13681
13642
|
}, null, 8, ["page"]),
|
|
13682
|
-
_hoisted_1$
|
|
13683
|
-
vue.createVNode(_sfc_main$
|
|
13643
|
+
_hoisted_1$k,
|
|
13644
|
+
vue.createVNode(_sfc_main$m, {
|
|
13684
13645
|
"is-mobile-page": false,
|
|
13685
13646
|
page: pageL.value,
|
|
13686
13647
|
width: 1024
|
|
@@ -13690,9 +13651,9 @@ ${_html.style}
|
|
|
13690
13651
|
};
|
|
13691
13652
|
}
|
|
13692
13653
|
});
|
|
13693
|
-
const canvasStyle = '.pb-page {\n margin: 0 auto;\n margin-top: 20px;\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: cover;\n}\n.pb-page .pb-page-content.selected {\n outline: 2px solid #4998f8;\n outline-offset: 5px;\n}\n.pb-page * {\n box-sizing: border-box;\n}\n.pb-add-widget-button {\n width: 100%;\n height: 100%;\n min-height: 200px;\n position: relative;\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.pb-add-widget-button button:hover {\n background-color: #eeeeee;\n}\n.pb-add-widget-button .icon {\n font-size: 1rem;\n vertical-align: middle;\n}\n.pb-add-widget-button .text {\n font-size: 1rem;\n vertical-align: middle;\n margin-left: 0.4rem;\n}\n.pb-section {\n position: relative;\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.pb-section:hover:not(:has(.pb-block:hover)) {\n background-color: #f0f0f0;\n}\n.pb-section.selected {\n outline: 1px solid #e67e22;\n outline-offset: 1px;\n z-index: 999;\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.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.pb-section-static .pb-widget {\n outline: none;\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.pb-block:hover:not(:has(.pb-widget:hover)) {\n background-color: #f0f0f0;\n}\n.pb-block.selected {\n outline: 1px solid #8e44ad;\n outline-offset: 1px;\n z-index: 999;\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}\n.pb-widget.selected {\n outline: 2px solid #27ae60;\n outline-offset: 1px;\n z-index: 999;\n}\n.pb-widget .children {\n position: absolute;\n width: 100%;\n height: 100%;\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}\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}\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.pb-widget .children {\n position: absolute;\n width: 100%;\n height: 100%;\n}\n.pb-text-widget {\n width: 100%;\n height: fit-content;\n}\n.pb-text-widget .text {\n color: #333;\n}\n.pb-text-widget .placeholder {\n padding: 4px 0;\n font-size: 18px;\n text-align: center;\n color: #999;\n}\n.pb-image-widget {\n width: 100%;\n}\n.pb-image-widget .image {\n width: 100%;\n}\n.pb-image-widget .empty {\n height: 100px;\n background-color: #eee;\n text-align: center;\n}\n.pb-image-widget .empty span {\n font-size: 40px;\n color: #999;\n line-height: 100px;\n vertical-align: middle;\n}\n.pb-html-widget {\n width: 100%;\n height: fit-content;\n}\n.pb-html-widget .placeholder {\n padding: 4px 0;\n font-size: 18px;\n text-align: center;\n color: #999;\n}\n.pb-iframe-widget {\n width: 100%;\n height: fit-content;\n}\n.pb-iframe-widget .placeholder {\n padding: 4px 0;\n font-size: 18px;\n text-align: center;\n color: #999;\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.pb-product-list-widget .product-wrapper {\n width: 25%;\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.pb-product-list-widget .product-wrapper img {\n width: 100%;\n}\n.pb-product-list-widget .product-wrapper .name {\n margin-top: 8px;\n font-size: 14px;\n}\n.pb-product-list-widget .product-wrapper .price {\n margin-top: 8px;\n font-size: 14px;\n font-weight: bold;\n}\n.pb-product-list-widget .product-wrapper .empty {\n height: 200px;\n background-color: #eee;\n text-align: center;\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@media (max-width: 768px) {\n .pb-product-list-widget .product-wrapper {\n width: 50%;\n }\n}\n.mobile .pb-product-list-widget .product-wrapper {\n width: 50%;\n}\n.pb-login-widget {\n height: 200px;\n text-align: center;\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.font-icon {\n font-family: Material Symbols Outlined, monospace;\n font-size: 1rem;\n max-width: 1em;\n}\nhtml, body {\n font-family: Noto Sans, Noto Sans KR, Noto Sans JP, Arial, sans-serif;\n font-size: 12px;\n}\nbody {\n background-color: white;\n height: 100%;\n margin: 0;\n}\n.pb-canvas-wrapper {\n padding: 32px 40px 56px 40px;\n height: 100%;\n background-color: #aaa;\n overflow: auto;\n}\n.pb-canvas-wrapper .pb-canvas {\n display: flex;\n flex-direction: row;\n transform-origin: top left;\n width: fit-content;\n min-width: 40px;\n min-height: 40px;\n margin: 0 auto;\n}\n.pb-position-mark {\n background-color: #ff3333;\n opacity: 0.5;\n border-radius: 2px;\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.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.pb-add-section-handle.bottom {\n left: 50%;\n bottom: -32px;\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.pb-add-section-handle > i {\n vertical-align: middle;\n position: absolute;\n top: 50%;\n left:
|
|
13694
|
-
const _hoisted_1$
|
|
13695
|
-
const _sfc_main$
|
|
13654
|
+
const canvasStyle = '.pb-page {\n margin: 0 auto;\n margin-top: 20px;\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: cover;\n}\n.pb-page .pb-page-content.selected {\n outline: 2px solid #4998f8;\n outline-offset: 5px;\n}\n.pb-page * {\n box-sizing: border-box;\n}\n.pb-add-widget-button {\n width: 100%;\n height: 100%;\n min-height: 200px;\n position: relative;\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.pb-add-widget-button button:hover {\n background-color: #eeeeee;\n}\n.pb-add-widget-button .icon {\n font-size: 1rem;\n vertical-align: middle;\n}\n.pb-add-widget-button .text {\n font-size: 1rem;\n vertical-align: middle;\n margin-left: 0.4rem;\n}\n.pb-section {\n position: relative;\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.pb-section:hover:not(:has(.pb-block:hover)) {\n background-color: #f0f0f0;\n}\n.pb-section.selected {\n outline: 1px solid #e67e22;\n outline-offset: 1px;\n z-index: 999;\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.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.pb-section-static .pb-widget {\n outline: none;\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.pb-block:hover:not(:has(.pb-widget:hover)) {\n background-color: #f0f0f0;\n}\n.pb-block.selected {\n outline: 1px solid #8e44ad;\n outline-offset: 1px;\n z-index: 999;\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}\n.pb-widget.selected {\n outline: 2px solid #27ae60;\n outline-offset: 1px;\n z-index: 999;\n}\n.pb-widget .children {\n position: absolute;\n width: 100%;\n height: 100%;\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}\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}\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.pb-widget .children {\n position: absolute;\n width: 100%;\n height: 100%;\n}\n.pb-text-widget {\n width: 100%;\n height: fit-content;\n}\n.pb-text-widget .text {\n color: #333;\n}\n.pb-text-widget .placeholder {\n padding: 4px 0;\n font-size: 18px;\n text-align: center;\n color: #999;\n}\n.pb-image-widget {\n width: 100%;\n}\n.pb-image-widget .image {\n width: 100%;\n}\n.pb-image-widget .empty {\n height: 100px;\n background-color: #eee;\n text-align: center;\n}\n.pb-image-widget .empty span {\n font-size: 40px;\n color: #999;\n line-height: 100px;\n vertical-align: middle;\n}\n.pb-html-widget {\n width: 100%;\n height: fit-content;\n}\n.pb-html-widget .placeholder {\n padding: 4px 0;\n font-size: 18px;\n text-align: center;\n color: #999;\n}\n.pb-iframe-widget {\n width: 100%;\n height: fit-content;\n}\n.pb-iframe-widget .placeholder {\n padding: 4px 0;\n font-size: 18px;\n text-align: center;\n color: #999;\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.pb-product-list-widget .product-wrapper {\n width: 25%;\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.pb-product-list-widget .product-wrapper img {\n width: 100%;\n}\n.pb-product-list-widget .product-wrapper .name {\n margin-top: 8px;\n font-size: 14px;\n}\n.pb-product-list-widget .product-wrapper .price {\n margin-top: 8px;\n font-size: 14px;\n font-weight: bold;\n}\n.pb-product-list-widget .product-wrapper .empty {\n height: 200px;\n background-color: #eee;\n text-align: center;\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@media (max-width: 768px) {\n .pb-product-list-widget .product-wrapper {\n width: 50%;\n }\n}\n.mobile .pb-product-list-widget .product-wrapper {\n width: 50%;\n}\n.pb-login-widget {\n height: 200px;\n text-align: center;\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.font-icon {\n font-family: Material Symbols Outlined, monospace;\n font-size: 1rem;\n max-width: 1em;\n}\nhtml, body {\n font-family: Noto Sans, Noto Sans KR, Noto Sans JP, Arial, sans-serif;\n font-size: 12px;\n}\nbody {\n background-color: white;\n height: 100%;\n margin: 0;\n}\n.pb-canvas-wrapper {\n padding: 32px 40px 56px 40px;\n height: 100%;\n background-color: #aaa;\n overflow: auto;\n}\n.pb-canvas-wrapper .pb-canvas {\n display: flex;\n flex-direction: row;\n transform-origin: top left;\n width: fit-content;\n min-width: 40px;\n min-height: 40px;\n margin: 0 auto;\n}\n.pb-position-mark {\n background-color: #ff3333;\n opacity: 0.5;\n border-radius: 2px;\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.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.pb-add-section-handle.bottom {\n left: 50%;\n bottom: -32px;\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.pb-add-section-handle > i {\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}\n.pb-button {\n background: none;\n border: none;\n cursor: pointer;\n vertical-align: middle;\n}\n.pb-guideline {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n}\n.pb-guideline.selected {\n z-index: 3;\n}\n.pb-guideline.preselect {\n z-index: 4;\n}';
|
|
13655
|
+
const _hoisted_1$j = { class: "pb-canvas-frame" };
|
|
13656
|
+
const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
|
|
13696
13657
|
__name: "PbCanvasFrame",
|
|
13697
13658
|
setup(__props) {
|
|
13698
13659
|
const pageBuilderEditor = usePageBuilderEditor();
|
|
@@ -13744,7 +13705,7 @@ ${_html.style}
|
|
|
13744
13705
|
);
|
|
13745
13706
|
return (_ctx, _cache) => {
|
|
13746
13707
|
var _a, _b, _c, _d;
|
|
13747
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
13708
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$j, [
|
|
13748
13709
|
vue.createElementVNode("iframe", {
|
|
13749
13710
|
ref_key: "iframeRef",
|
|
13750
13711
|
ref: iframeRef,
|
|
@@ -13754,14 +13715,14 @@ ${_html.style}
|
|
|
13754
13715
|
key: 0,
|
|
13755
13716
|
to: (_d = (_c = iframeRef.value) == null ? void 0 : _c.contentWindow) == null ? void 0 : _d.document.body
|
|
13756
13717
|
}, [
|
|
13757
|
-
vue.createVNode(_sfc_main$
|
|
13718
|
+
vue.createVNode(_sfc_main$l)
|
|
13758
13719
|
], 8, ["to"])) : vue.createCommentVNode("", true)
|
|
13759
13720
|
]);
|
|
13760
13721
|
};
|
|
13761
13722
|
}
|
|
13762
13723
|
});
|
|
13763
|
-
const _hoisted_1$
|
|
13764
|
-
const _sfc_main$
|
|
13724
|
+
const _hoisted_1$i = { class: "pb-tool-button bs-layout-horizontal flex-align-center" };
|
|
13725
|
+
const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
|
|
13765
13726
|
__name: "PbToolbarButton",
|
|
13766
13727
|
props: {
|
|
13767
13728
|
button: {}
|
|
@@ -13774,7 +13735,7 @@ ${_html.style}
|
|
|
13774
13735
|
(_b = (_a = props.button).handler) == null ? void 0 : _b.call(_a, pageBuilder);
|
|
13775
13736
|
};
|
|
13776
13737
|
return (_ctx, _cache) => {
|
|
13777
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
13738
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$i, [
|
|
13778
13739
|
vue.createElementVNode("div", {
|
|
13779
13740
|
class: "tool-button bs-clickable",
|
|
13780
13741
|
onClick: handleClick
|
|
@@ -13789,17 +13750,17 @@ ${_html.style}
|
|
|
13789
13750
|
};
|
|
13790
13751
|
}
|
|
13791
13752
|
});
|
|
13792
|
-
const _hoisted_1$
|
|
13793
|
-
const _sfc_main$
|
|
13753
|
+
const _hoisted_1$h = { class: "pb-tool-button-group bs-layout-horizontal flex-align-center" };
|
|
13754
|
+
const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
|
|
13794
13755
|
__name: "PbToolbarButtonGroup",
|
|
13795
13756
|
props: {
|
|
13796
13757
|
group: {}
|
|
13797
13758
|
},
|
|
13798
13759
|
setup(__props) {
|
|
13799
13760
|
return (_ctx, _cache) => {
|
|
13800
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
13761
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$h, [
|
|
13801
13762
|
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.group.buttons, (button) => {
|
|
13802
|
-
return vue.openBlock(), vue.createBlock(_sfc_main$
|
|
13763
|
+
return vue.openBlock(), vue.createBlock(_sfc_main$j, {
|
|
13803
13764
|
key: button.buttonId,
|
|
13804
13765
|
button
|
|
13805
13766
|
}, null, 8, ["button"]);
|
|
@@ -13808,11 +13769,11 @@ ${_html.style}
|
|
|
13808
13769
|
};
|
|
13809
13770
|
}
|
|
13810
13771
|
});
|
|
13811
|
-
const _hoisted_1$
|
|
13812
|
-
const _hoisted_2$
|
|
13813
|
-
const _hoisted_3$
|
|
13814
|
-
const _hoisted_4$
|
|
13815
|
-
const _sfc_main$
|
|
13772
|
+
const _hoisted_1$g = { class: "pb-toolbar bs-layout-horizontal align-items-center" };
|
|
13773
|
+
const _hoisted_2$c = { class: "bs-layout-horizontal align-items-center" };
|
|
13774
|
+
const _hoisted_3$b = /* @__PURE__ */ vue.createElementVNode("div", { class: "flex-grow-1" }, null, -1);
|
|
13775
|
+
const _hoisted_4$4 = { class: "mr-8" };
|
|
13776
|
+
const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
|
|
13816
13777
|
__name: "PbToolbar",
|
|
13817
13778
|
props: {
|
|
13818
13779
|
plugin: {}
|
|
@@ -13863,10 +13824,10 @@ ${_html.style}
|
|
|
13863
13824
|
});
|
|
13864
13825
|
return (_ctx, _cache) => {
|
|
13865
13826
|
var _a, _b, _c;
|
|
13866
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
13867
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
13827
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$g, [
|
|
13828
|
+
vue.createElementVNode("div", _hoisted_2$c, [
|
|
13868
13829
|
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(buttonGroups), (group) => {
|
|
13869
|
-
return vue.openBlock(), vue.createBlock(_sfc_main$
|
|
13830
|
+
return vue.openBlock(), vue.createBlock(_sfc_main$i, {
|
|
13870
13831
|
key: group.groupId,
|
|
13871
13832
|
group
|
|
13872
13833
|
}, null, 8, ["group"]);
|
|
@@ -13888,33 +13849,33 @@ ${_html.style}
|
|
|
13888
13849
|
placeholder: "Scale"
|
|
13889
13850
|
}, null, 8, ["modelValue"])
|
|
13890
13851
|
]),
|
|
13891
|
-
_hoisted_3$
|
|
13892
|
-
vue.createElementVNode("div", _hoisted_4$
|
|
13852
|
+
_hoisted_3$b,
|
|
13853
|
+
vue.createElementVNode("div", _hoisted_4$4, [
|
|
13893
13854
|
_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)
|
|
13894
13855
|
])
|
|
13895
13856
|
]);
|
|
13896
13857
|
};
|
|
13897
13858
|
}
|
|
13898
13859
|
});
|
|
13899
|
-
const _hoisted_1$
|
|
13900
|
-
const _sfc_main$
|
|
13860
|
+
const _hoisted_1$f = { class: "pb-menu bs-layout-vertical" };
|
|
13861
|
+
const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
|
|
13901
13862
|
__name: "PbMenu",
|
|
13902
13863
|
props: {
|
|
13903
13864
|
toolbarPlugin: {}
|
|
13904
13865
|
},
|
|
13905
13866
|
setup(__props) {
|
|
13906
13867
|
return (_ctx, _cache) => {
|
|
13907
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
13908
|
-
vue.createVNode(_sfc_main$
|
|
13868
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$f, [
|
|
13869
|
+
vue.createVNode(_sfc_main$h, { plugin: _ctx.toolbarPlugin }, null, 8, ["plugin"])
|
|
13909
13870
|
]);
|
|
13910
13871
|
};
|
|
13911
13872
|
}
|
|
13912
13873
|
});
|
|
13913
|
-
const _hoisted_1$
|
|
13874
|
+
const _hoisted_1$e = {
|
|
13914
13875
|
key: 1,
|
|
13915
13876
|
class: "bs-layout-vertical border"
|
|
13916
13877
|
};
|
|
13917
|
-
const _sfc_main$
|
|
13878
|
+
const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
|
|
13918
13879
|
__name: "PbNavigator",
|
|
13919
13880
|
setup(__props) {
|
|
13920
13881
|
const pageBuilder = usePageBuilderEditor();
|
|
@@ -14140,7 +14101,7 @@ ${_html.style}
|
|
|
14140
14101
|
], 512)
|
|
14141
14102
|
]),
|
|
14142
14103
|
_: 1
|
|
14143
|
-
}, 8, ["tab-id"])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
14104
|
+
}, 8, ["tab-id"])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$e, [
|
|
14144
14105
|
vue.createElementVNode("div", {
|
|
14145
14106
|
ref_key: "treeS",
|
|
14146
14107
|
ref: treeS,
|
|
@@ -14173,7 +14134,7 @@ ${_html.style}
|
|
|
14173
14134
|
};
|
|
14174
14135
|
}
|
|
14175
14136
|
});
|
|
14176
|
-
const _sfc_main$
|
|
14137
|
+
const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
|
|
14177
14138
|
__name: "PbSidebarPropertyEditor",
|
|
14178
14139
|
props: {
|
|
14179
14140
|
property: {},
|
|
@@ -14184,25 +14145,6 @@ ${_html.style}
|
|
|
14184
14145
|
const pageBuilder = usePageBuilderEditor();
|
|
14185
14146
|
const propertyEditor = vue.computed(() => {
|
|
14186
14147
|
var _a;
|
|
14187
|
-
if (pageBuilder.editMode === "local" && props.selectedParts.length > 0) {
|
|
14188
|
-
const section = pageBuilder.partManager.findNearestSection(props.selectedParts[0]);
|
|
14189
|
-
if (section && section.isGlobalDesignPart()) {
|
|
14190
|
-
return;
|
|
14191
|
-
}
|
|
14192
|
-
if (section && (section.isLocalDesignPart() || section.isLocalMarketingPart())) {
|
|
14193
|
-
if (!props.property.localized) {
|
|
14194
|
-
return;
|
|
14195
|
-
}
|
|
14196
|
-
}
|
|
14197
|
-
}
|
|
14198
|
-
if (pageBuilder.editMode === "template" && props.selectedParts.length > 0) {
|
|
14199
|
-
const section = pageBuilder.partManager.findNearestSection(props.selectedParts[0]);
|
|
14200
|
-
if (section && (section.isLocalDesignPart() || section.isLocalMarketingPart())) {
|
|
14201
|
-
if (props.property.localized) {
|
|
14202
|
-
return;
|
|
14203
|
-
}
|
|
14204
|
-
}
|
|
14205
|
-
}
|
|
14206
14148
|
if (props.property.propertyEditor) {
|
|
14207
14149
|
const editor = props.property.propertyEditor(props.property, props.selectedParts);
|
|
14208
14150
|
if (editor)
|
|
@@ -14228,13 +14170,13 @@ ${_html.style}
|
|
|
14228
14170
|
};
|
|
14229
14171
|
}
|
|
14230
14172
|
});
|
|
14231
|
-
const _hoisted_1$
|
|
14232
|
-
const _hoisted_2$
|
|
14173
|
+
const _hoisted_1$d = { class: "pb-sidebar-property-group" };
|
|
14174
|
+
const _hoisted_2$b = {
|
|
14233
14175
|
key: 0,
|
|
14234
14176
|
class: "group-title"
|
|
14235
14177
|
};
|
|
14236
|
-
const _hoisted_3$
|
|
14237
|
-
const _sfc_main$
|
|
14178
|
+
const _hoisted_3$a = ["textContent"];
|
|
14179
|
+
const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
|
|
14238
14180
|
__name: "PbSidebarPropertyGroupEditor",
|
|
14239
14181
|
props: {
|
|
14240
14182
|
group: {},
|
|
@@ -14243,36 +14185,16 @@ ${_html.style}
|
|
|
14243
14185
|
},
|
|
14244
14186
|
setup(__props) {
|
|
14245
14187
|
const props = __props;
|
|
14246
|
-
const pageBuilder = usePageBuilderEditor();
|
|
14247
14188
|
const groupEditor = vue.computed(() => {
|
|
14248
14189
|
var _a, _b;
|
|
14249
|
-
if (pageBuilder.editMode === "local" && props.selectedParts.length > 0) {
|
|
14250
|
-
const section = pageBuilder.partManager.findNearestSection(props.selectedParts[0]);
|
|
14251
|
-
if (section && section.isGlobalDesignPart()) {
|
|
14252
|
-
return;
|
|
14253
|
-
}
|
|
14254
|
-
if (section && (section.isLocalDesignPart() || section.isLocalMarketingPart())) {
|
|
14255
|
-
if (!props.group.localized) {
|
|
14256
|
-
return;
|
|
14257
|
-
}
|
|
14258
|
-
}
|
|
14259
|
-
}
|
|
14260
|
-
if (pageBuilder.editMode === "template" && props.selectedParts.length > 0) {
|
|
14261
|
-
const section = pageBuilder.partManager.findNearestSection(props.selectedParts[0]);
|
|
14262
|
-
if (section && (section.isLocalDesignPart() || section.isLocalMarketingPart())) {
|
|
14263
|
-
if (props.group.localized) {
|
|
14264
|
-
return;
|
|
14265
|
-
}
|
|
14266
|
-
}
|
|
14267
|
-
}
|
|
14268
14190
|
return (_b = (_a = props.group).propertyGroupEditor) == null ? void 0 : _b.call(_a, props.group, props.selectedParts);
|
|
14269
14191
|
});
|
|
14270
14192
|
return (_ctx, _cache) => {
|
|
14271
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
14272
|
-
_ctx.group.showGroupName ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$
|
|
14193
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$d, [
|
|
14194
|
+
_ctx.group.showGroupName ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$b, [
|
|
14273
14195
|
vue.createElementVNode("label", {
|
|
14274
14196
|
textContent: vue.toDisplayString(_ctx.group.caption)
|
|
14275
|
-
}, null, 8, _hoisted_3$
|
|
14197
|
+
}, null, 8, _hoisted_3$a)
|
|
14276
14198
|
])) : vue.createCommentVNode("", true),
|
|
14277
14199
|
_ctx.partsKey ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
|
|
14278
14200
|
groupEditor.value ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(groupEditor.value), {
|
|
@@ -14280,7 +14202,7 @@ ${_html.style}
|
|
|
14280
14202
|
group: _ctx.group,
|
|
14281
14203
|
"selected-parts": _ctx.selectedParts
|
|
14282
14204
|
}, null, 8, ["group", "selected-parts"])) : (vue.openBlock(true), vue.createElementBlock(vue.Fragment, { key: 1 }, vue.renderList(_ctx.group.properties, (property) => {
|
|
14283
|
-
return vue.openBlock(), vue.createBlock(_sfc_main$
|
|
14205
|
+
return vue.openBlock(), vue.createBlock(_sfc_main$e, {
|
|
14284
14206
|
key: `${_ctx.partsKey}_${property.propertyName}`,
|
|
14285
14207
|
property,
|
|
14286
14208
|
"selected-parts": _ctx.selectedParts
|
|
@@ -14291,106 +14213,8 @@ ${_html.style}
|
|
|
14291
14213
|
};
|
|
14292
14214
|
}
|
|
14293
14215
|
});
|
|
14294
|
-
const _hoisted_1$
|
|
14295
|
-
const
|
|
14296
|
-
/* @__PURE__ */ vue.createElementVNode("label", { textContent: "Display Schedule" })
|
|
14297
|
-
], -1);
|
|
14298
|
-
const _hoisted_3$b = { class: "bs-layout-horizontal" };
|
|
14299
|
-
const _hoisted_4$4 = { class: "mr-2" };
|
|
14300
|
-
const _hoisted_5$2 = /* @__PURE__ */ vue.createElementVNode("span", { class: "font-icon" }, "more_horiz", -1);
|
|
14301
|
-
const _hoisted_6$2 = [
|
|
14302
|
-
_hoisted_5$2
|
|
14303
|
-
];
|
|
14304
|
-
const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
|
|
14305
|
-
__name: "PbPropertyLocalMarketingPart",
|
|
14306
|
-
props: {
|
|
14307
|
-
selectedPart: {}
|
|
14308
|
-
},
|
|
14309
|
-
emits: ["select-schedule", "update-property-value"],
|
|
14310
|
-
setup(__props, { emit: __emit }) {
|
|
14311
|
-
const props = __props;
|
|
14312
|
-
bluesea.useModal();
|
|
14313
|
-
const startDt = vue.ref("");
|
|
14314
|
-
const endDt = vue.ref("");
|
|
14315
|
-
const pageBuilder = usePageBuilderEditor();
|
|
14316
|
-
const selectSchedule = () => {
|
|
14317
|
-
PageBuilderEditorEvent.emit.requestLocalMarketingPartSchedule({
|
|
14318
|
-
pageBuilderId: pageBuilder.instanceId,
|
|
14319
|
-
partId: props.selectedPart.partId,
|
|
14320
|
-
callback: (schedule) => {
|
|
14321
|
-
startDt.value = schedule.startDt;
|
|
14322
|
-
endDt.value = schedule.endDt;
|
|
14323
|
-
if (props.selectedPart && props.selectedPart.isSection()) {
|
|
14324
|
-
clearContents(props.selectedPart);
|
|
14325
|
-
if (schedule.data) {
|
|
14326
|
-
for (const partId in schedule.data) {
|
|
14327
|
-
const part = findWidget(props.selectedPart, partId);
|
|
14328
|
-
if (part) {
|
|
14329
|
-
Object.entries(schedule.data[partId]).forEach(([key, value]) => {
|
|
14330
|
-
if (!value)
|
|
14331
|
-
return;
|
|
14332
|
-
part.properties = part.properties || {};
|
|
14333
|
-
part.properties[key] = value;
|
|
14334
|
-
});
|
|
14335
|
-
}
|
|
14336
|
-
}
|
|
14337
|
-
}
|
|
14338
|
-
}
|
|
14339
|
-
}
|
|
14340
|
-
});
|
|
14341
|
-
};
|
|
14342
|
-
const findWidget = (part, partId) => {
|
|
14343
|
-
if (!part)
|
|
14344
|
-
return;
|
|
14345
|
-
if (part.partId === partId)
|
|
14346
|
-
return part;
|
|
14347
|
-
if (part.children) {
|
|
14348
|
-
for (const child of part.children) {
|
|
14349
|
-
const found = findWidget(child, partId);
|
|
14350
|
-
if (found)
|
|
14351
|
-
return found;
|
|
14352
|
-
}
|
|
14353
|
-
}
|
|
14354
|
-
};
|
|
14355
|
-
const clearContents = (part) => {
|
|
14356
|
-
if (!part)
|
|
14357
|
-
return;
|
|
14358
|
-
if (part.properties) {
|
|
14359
|
-
for (const name in part.properties) {
|
|
14360
|
-
const propertyDef = pageBuilder.partManager.getPropertyDefinition(part.partName, name);
|
|
14361
|
-
if (propertyDef && propertyDef.localized) {
|
|
14362
|
-
delete part.properties[name];
|
|
14363
|
-
}
|
|
14364
|
-
}
|
|
14365
|
-
}
|
|
14366
|
-
if (part.children) {
|
|
14367
|
-
for (const child of part.children) {
|
|
14368
|
-
clearContents(child);
|
|
14369
|
-
}
|
|
14370
|
-
}
|
|
14371
|
-
};
|
|
14372
|
-
return (_ctx, _cache) => {
|
|
14373
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$e, [
|
|
14374
|
-
_hoisted_2$c,
|
|
14375
|
-
vue.createElementVNode("div", _hoisted_3$b, [
|
|
14376
|
-
vue.createElementVNode("div", _hoisted_4$4, [
|
|
14377
|
-
vue.createVNode(vue.unref(bluesea.BSDateRange), {
|
|
14378
|
-
"from-value": startDt.value,
|
|
14379
|
-
"to-value": endDt.value,
|
|
14380
|
-
resolution: "DAY",
|
|
14381
|
-
width: "260px"
|
|
14382
|
-
}, null, 8, ["from-value", "to-value"])
|
|
14383
|
-
]),
|
|
14384
|
-
vue.createElementVNode("div", null, [
|
|
14385
|
-
vue.createElementVNode("button", { onClick: selectSchedule }, _hoisted_6$2)
|
|
14386
|
-
])
|
|
14387
|
-
])
|
|
14388
|
-
]);
|
|
14389
|
-
};
|
|
14390
|
-
}
|
|
14391
|
-
});
|
|
14392
|
-
const _hoisted_1$d = { class: "pb-sidebar-properties" };
|
|
14393
|
-
const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
|
|
14216
|
+
const _hoisted_1$c = { class: "pb-sidebar-properties" };
|
|
14217
|
+
const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
|
|
14394
14218
|
__name: "PbSidebarProperties",
|
|
14395
14219
|
setup(__props) {
|
|
14396
14220
|
const pageBuilder = usePageBuilderEditor();
|
|
@@ -14407,25 +14231,13 @@ ${_html.style}
|
|
|
14407
14231
|
return [];
|
|
14408
14232
|
}
|
|
14409
14233
|
});
|
|
14410
|
-
const showLocalMarketingPart = vue.computed(() => {
|
|
14411
|
-
if (pageBuilder.editMode === "template")
|
|
14412
|
-
return false;
|
|
14413
|
-
if (!selectedParts.length || selectedParts.length !== 1)
|
|
14414
|
-
return false;
|
|
14415
|
-
const part = selectedParts[0];
|
|
14416
|
-
return part.isLocalMarketingPart();
|
|
14417
|
-
});
|
|
14418
14234
|
return (_ctx, _cache) => {
|
|
14419
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
14420
|
-
showLocalMarketingPart.value ? (vue.openBlock(), vue.createBlock(_sfc_main$e, {
|
|
14421
|
-
key: 0,
|
|
14422
|
-
"selected-part": vue.unref(selectedParts)[0]
|
|
14423
|
-
}, null, 8, ["selected-part"])) : vue.createCommentVNode("", true),
|
|
14235
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$c, [
|
|
14424
14236
|
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(properties.value, (group) => {
|
|
14425
14237
|
return vue.openBlock(), vue.createElementBlock("div", {
|
|
14426
14238
|
key: `${partsKey.value}_${group.groupName}`
|
|
14427
14239
|
}, [
|
|
14428
|
-
vue.createVNode(_sfc_main$
|
|
14240
|
+
vue.createVNode(_sfc_main$d, {
|
|
14429
14241
|
group,
|
|
14430
14242
|
partsKey: partsKey.value,
|
|
14431
14243
|
"selected-parts": vue.unref(selectedParts)
|
|
@@ -14436,25 +14248,24 @@ ${_html.style}
|
|
|
14436
14248
|
};
|
|
14437
14249
|
}
|
|
14438
14250
|
});
|
|
14439
|
-
const _hoisted_1$
|
|
14440
|
-
const _sfc_main$
|
|
14251
|
+
const _hoisted_1$b = { class: "pb-sidebar" };
|
|
14252
|
+
const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
|
|
14441
14253
|
__name: "PbSidebar",
|
|
14442
14254
|
setup(__props) {
|
|
14443
14255
|
return (_ctx, _cache) => {
|
|
14444
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
14445
|
-
vue.createVNode(_sfc_main$
|
|
14256
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$b, [
|
|
14257
|
+
vue.createVNode(_sfc_main$c)
|
|
14446
14258
|
]);
|
|
14447
14259
|
};
|
|
14448
14260
|
}
|
|
14449
14261
|
});
|
|
14450
|
-
const _hoisted_1$
|
|
14451
|
-
const _hoisted_2$
|
|
14452
|
-
const _sfc_main$
|
|
14262
|
+
const _hoisted_1$a = { class: "pb-editor bs-layout-vertical flex-grow-1" };
|
|
14263
|
+
const _hoisted_2$a = { class: "pb-editor-body bs-layout-horizontal flex-grow-1" };
|
|
14264
|
+
const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
|
|
14453
14265
|
__name: "PageBuilderEditor",
|
|
14454
14266
|
props: {
|
|
14455
14267
|
instanceId: {},
|
|
14456
14268
|
title: {},
|
|
14457
|
-
editMode: {},
|
|
14458
14269
|
pageContent: {},
|
|
14459
14270
|
locales: {},
|
|
14460
14271
|
locale: {},
|
|
@@ -14467,7 +14278,6 @@ ${_html.style}
|
|
|
14467
14278
|
const pageBuilderEditor = createPageBuilderEditor();
|
|
14468
14279
|
pageBuilderEditor.instanceId = props.instanceId;
|
|
14469
14280
|
pageBuilderEditor.title = props.title;
|
|
14470
|
-
pageBuilderEditor.editMode = props.editMode || "free";
|
|
14471
14281
|
if (props.locales)
|
|
14472
14282
|
pageBuilderEditor.setLocales(props.locales);
|
|
14473
14283
|
if (props.locale)
|
|
@@ -14491,29 +14301,31 @@ ${_html.style}
|
|
|
14491
14301
|
const colorHistory = vue.ref([]);
|
|
14492
14302
|
vue.provide("colorHistory", colorHistory);
|
|
14493
14303
|
const getPageContent = () => {
|
|
14494
|
-
|
|
14495
|
-
|
|
14304
|
+
return pageBuilderEditor.model.serializeModel(
|
|
14305
|
+
(part) => pageBuilderEditor.extractMedia(part),
|
|
14306
|
+
(partObject) => pageBuilderEditor.extractProvider(partObject)
|
|
14307
|
+
);
|
|
14496
14308
|
};
|
|
14497
14309
|
__expose({
|
|
14498
14310
|
getPageContent
|
|
14499
14311
|
});
|
|
14500
14312
|
return (_ctx, _cache) => {
|
|
14501
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
14502
|
-
vue.createVNode(_sfc_main$
|
|
14503
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
14504
|
-
vue.createVNode(_sfc_main$
|
|
14505
|
-
vue.createVNode(_sfc_main$
|
|
14506
|
-
vue.createVNode(_sfc_main$
|
|
14313
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$a, [
|
|
14314
|
+
vue.createVNode(_sfc_main$g, { "toolbar-plugin": _ctx.toolbarPlugin }, null, 8, ["toolbar-plugin"]),
|
|
14315
|
+
vue.createElementVNode("div", _hoisted_2$a, [
|
|
14316
|
+
vue.createVNode(_sfc_main$f),
|
|
14317
|
+
vue.createVNode(_sfc_main$k, { class: "flex-grow-1" }),
|
|
14318
|
+
vue.createVNode(_sfc_main$b)
|
|
14507
14319
|
])
|
|
14508
14320
|
]);
|
|
14509
14321
|
};
|
|
14510
14322
|
}
|
|
14511
14323
|
});
|
|
14512
|
-
const _hoisted_1$
|
|
14513
|
-
const _hoisted_2$
|
|
14514
|
-
const _hoisted_3$
|
|
14324
|
+
const _hoisted_1$9 = { class: "property-editor property-editor-readonly-text" };
|
|
14325
|
+
const _hoisted_2$9 = { class: "title" };
|
|
14326
|
+
const _hoisted_3$9 = ["textContent"];
|
|
14515
14327
|
const _hoisted_4$3 = ["textContent"];
|
|
14516
|
-
const _sfc_main$
|
|
14328
|
+
const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
|
|
14517
14329
|
__name: "PbPropertyEditorReadonlyText",
|
|
14518
14330
|
props: {
|
|
14519
14331
|
property: {},
|
|
@@ -14521,11 +14333,11 @@ ${_html.style}
|
|
|
14521
14333
|
},
|
|
14522
14334
|
setup(__props) {
|
|
14523
14335
|
return (_ctx, _cache) => {
|
|
14524
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
14525
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
14336
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$9, [
|
|
14337
|
+
vue.createElementVNode("div", _hoisted_2$9, [
|
|
14526
14338
|
vue.createElementVNode("label", {
|
|
14527
14339
|
textContent: vue.toDisplayString(_ctx.property.caption)
|
|
14528
|
-
}, null, 8, _hoisted_3$
|
|
14340
|
+
}, null, 8, _hoisted_3$9)
|
|
14529
14341
|
]),
|
|
14530
14342
|
vue.createElementVNode("div", null, [
|
|
14531
14343
|
vue.createElementVNode("div", {
|
|
@@ -14538,12 +14350,12 @@ ${_html.style}
|
|
|
14538
14350
|
});
|
|
14539
14351
|
const PbPropertyEditorReadonlyText = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
14540
14352
|
__proto__: null,
|
|
14541
|
-
default: _sfc_main$
|
|
14353
|
+
default: _sfc_main$9
|
|
14542
14354
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
14543
|
-
const _hoisted_1$
|
|
14544
|
-
const _hoisted_2$
|
|
14545
|
-
const _hoisted_3$
|
|
14546
|
-
const _sfc_main$
|
|
14355
|
+
const _hoisted_1$8 = { class: "property-editor property-editor-text flex-align-center" };
|
|
14356
|
+
const _hoisted_2$8 = { class: "title" };
|
|
14357
|
+
const _hoisted_3$8 = ["textContent"];
|
|
14358
|
+
const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
14547
14359
|
__name: "PbPropertyEditorText",
|
|
14548
14360
|
props: {
|
|
14549
14361
|
property: {},
|
|
@@ -14561,11 +14373,11 @@ ${_html.style}
|
|
|
14561
14373
|
emit("update-property-value", properties);
|
|
14562
14374
|
};
|
|
14563
14375
|
return (_ctx, _cache) => {
|
|
14564
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
14565
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
14376
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$8, [
|
|
14377
|
+
vue.createElementVNode("div", _hoisted_2$8, [
|
|
14566
14378
|
vue.createElementVNode("label", {
|
|
14567
14379
|
textContent: vue.toDisplayString(_ctx.property.caption)
|
|
14568
|
-
}, null, 8, _hoisted_3$
|
|
14380
|
+
}, null, 8, _hoisted_3$8)
|
|
14569
14381
|
]),
|
|
14570
14382
|
vue.createElementVNode("div", null, [
|
|
14571
14383
|
_ctx.property.multiLang ? (vue.openBlock(), vue.createBlock(vue.unref(bluesea.BSMultiLangTextInput), {
|
|
@@ -14587,12 +14399,12 @@ ${_html.style}
|
|
|
14587
14399
|
});
|
|
14588
14400
|
const PbPropertyEditorText = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
14589
14401
|
__proto__: null,
|
|
14590
|
-
default: _sfc_main$
|
|
14402
|
+
default: _sfc_main$8
|
|
14591
14403
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
14592
|
-
const _hoisted_1$
|
|
14593
|
-
const _hoisted_2$
|
|
14594
|
-
const _hoisted_3$
|
|
14595
|
-
const _sfc_main$
|
|
14404
|
+
const _hoisted_1$7 = { class: "property-editor property-editor-multiline-text" };
|
|
14405
|
+
const _hoisted_2$7 = { class: "title" };
|
|
14406
|
+
const _hoisted_3$7 = ["textContent"];
|
|
14407
|
+
const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
|
|
14596
14408
|
__name: "PbPropertyEditorMultilineText",
|
|
14597
14409
|
props: {
|
|
14598
14410
|
property: {},
|
|
@@ -14618,11 +14430,11 @@ ${_html.style}
|
|
|
14618
14430
|
emit("update-property-value", properties);
|
|
14619
14431
|
};
|
|
14620
14432
|
return (_ctx, _cache) => {
|
|
14621
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
14622
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
14433
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$7, [
|
|
14434
|
+
vue.createElementVNode("div", _hoisted_2$7, [
|
|
14623
14435
|
vue.createElementVNode("label", {
|
|
14624
14436
|
textContent: vue.toDisplayString(_ctx.property.caption)
|
|
14625
|
-
}, null, 8, _hoisted_3$
|
|
14437
|
+
}, null, 8, _hoisted_3$7)
|
|
14626
14438
|
]),
|
|
14627
14439
|
vue.createElementVNode("div", null, [
|
|
14628
14440
|
_ctx.property.multiLang ? (vue.openBlock(), vue.createBlock(vue.unref(bluesea.BSMultiLangTextArea), {
|
|
@@ -14652,12 +14464,12 @@ ${_html.style}
|
|
|
14652
14464
|
});
|
|
14653
14465
|
const PbPropertyEditorMultilineText = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
14654
14466
|
__proto__: null,
|
|
14655
|
-
default: _sfc_main$
|
|
14467
|
+
default: _sfc_main$7
|
|
14656
14468
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
14657
|
-
const _hoisted_1$
|
|
14658
|
-
const _hoisted_2$
|
|
14659
|
-
const _hoisted_3$
|
|
14660
|
-
const _sfc_main$
|
|
14469
|
+
const _hoisted_1$6 = { class: "property-editor property-editor-select flex-align-center" };
|
|
14470
|
+
const _hoisted_2$6 = { class: "title" };
|
|
14471
|
+
const _hoisted_3$6 = ["textContent"];
|
|
14472
|
+
const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
|
|
14661
14473
|
__name: "PbPropertyEditorSelect",
|
|
14662
14474
|
props: {
|
|
14663
14475
|
property: {},
|
|
@@ -14676,11 +14488,11 @@ ${_html.style}
|
|
|
14676
14488
|
emit("update-property-value", properties);
|
|
14677
14489
|
};
|
|
14678
14490
|
return (_ctx, _cache) => {
|
|
14679
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
14680
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
14491
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$6, [
|
|
14492
|
+
vue.createElementVNode("div", _hoisted_2$6, [
|
|
14681
14493
|
vue.createElementVNode("label", {
|
|
14682
14494
|
textContent: vue.toDisplayString(_ctx.property.caption)
|
|
14683
|
-
}, null, 8, _hoisted_3$
|
|
14495
|
+
}, null, 8, _hoisted_3$6)
|
|
14684
14496
|
]),
|
|
14685
14497
|
vue.createElementVNode("div", null, [
|
|
14686
14498
|
vue.createVNode(vue.unref(bluesea.BSSelect), {
|
|
@@ -14695,13 +14507,13 @@ ${_html.style}
|
|
|
14695
14507
|
});
|
|
14696
14508
|
const PbPropertyEditorSelect = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
14697
14509
|
__proto__: null,
|
|
14698
|
-
default: _sfc_main$
|
|
14510
|
+
default: _sfc_main$6
|
|
14699
14511
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
14700
|
-
const _hoisted_1$
|
|
14701
|
-
const _hoisted_2$
|
|
14702
|
-
const _hoisted_3$
|
|
14512
|
+
const _hoisted_1$5 = { class: "property-editor property-editor-color" };
|
|
14513
|
+
const _hoisted_2$5 = { class: "title" };
|
|
14514
|
+
const _hoisted_3$5 = ["textContent"];
|
|
14703
14515
|
const _hoisted_4$2 = { class: "bs-layout-horizontal flex-align-center color" };
|
|
14704
|
-
const _sfc_main$
|
|
14516
|
+
const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
|
|
14705
14517
|
__name: "PbPropertyEditorColor",
|
|
14706
14518
|
props: {
|
|
14707
14519
|
property: {},
|
|
@@ -14721,11 +14533,11 @@ ${_html.style}
|
|
|
14721
14533
|
emit("update-property-value", properties);
|
|
14722
14534
|
};
|
|
14723
14535
|
return (_ctx, _cache) => {
|
|
14724
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
14725
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
14536
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$5, [
|
|
14537
|
+
vue.createElementVNode("div", _hoisted_2$5, [
|
|
14726
14538
|
vue.createElementVNode("label", {
|
|
14727
14539
|
textContent: vue.toDisplayString(_ctx.property.caption)
|
|
14728
|
-
}, null, 8, _hoisted_3$
|
|
14540
|
+
}, null, 8, _hoisted_3$5)
|
|
14729
14541
|
]),
|
|
14730
14542
|
vue.createElementVNode("div", _hoisted_4$2, [
|
|
14731
14543
|
vue.createVNode(PbColorPicker, {
|
|
@@ -14750,12 +14562,12 @@ ${_html.style}
|
|
|
14750
14562
|
});
|
|
14751
14563
|
const PbPropertyEditorColor = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
14752
14564
|
__proto__: null,
|
|
14753
|
-
default: _sfc_main$
|
|
14565
|
+
default: _sfc_main$5
|
|
14754
14566
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
14755
|
-
const _hoisted_1$
|
|
14756
|
-
const _hoisted_2$
|
|
14757
|
-
const _hoisted_3$
|
|
14758
|
-
const _sfc_main$
|
|
14567
|
+
const _hoisted_1$4 = { class: "property-editor property-editor-image flex-align-center" };
|
|
14568
|
+
const _hoisted_2$4 = { class: "title" };
|
|
14569
|
+
const _hoisted_3$4 = ["textContent"];
|
|
14570
|
+
const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
|
|
14759
14571
|
__name: "PbPropertyEditorImage",
|
|
14760
14572
|
props: {
|
|
14761
14573
|
property: {},
|
|
@@ -14767,7 +14579,7 @@ ${_html.style}
|
|
|
14767
14579
|
const modal = bluesea.useModal();
|
|
14768
14580
|
const emit = __emit;
|
|
14769
14581
|
const selectImage = () => {
|
|
14770
|
-
const imageProvider = pageBuilder.getProvider("
|
|
14582
|
+
const imageProvider = pageBuilder.getProvider("imageProvider");
|
|
14771
14583
|
if (imageProvider) {
|
|
14772
14584
|
imageProvider({ modal }, (url) => {
|
|
14773
14585
|
emit("update-property-value", { image: url });
|
|
@@ -14775,11 +14587,11 @@ ${_html.style}
|
|
|
14775
14587
|
}
|
|
14776
14588
|
};
|
|
14777
14589
|
return (_ctx, _cache) => {
|
|
14778
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
14779
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
14590
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$4, [
|
|
14591
|
+
vue.createElementVNode("div", _hoisted_2$4, [
|
|
14780
14592
|
vue.createElementVNode("label", {
|
|
14781
14593
|
textContent: vue.toDisplayString(_ctx.property.caption)
|
|
14782
|
-
}, null, 8, _hoisted_3$
|
|
14594
|
+
}, null, 8, _hoisted_3$4)
|
|
14783
14595
|
]),
|
|
14784
14596
|
vue.createElementVNode("div", null, [
|
|
14785
14597
|
vue.createElementVNode("button", { onClick: selectImage }, "Select Image")
|
|
@@ -14790,12 +14602,12 @@ ${_html.style}
|
|
|
14790
14602
|
});
|
|
14791
14603
|
const PbPropertyEditorImage = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
14792
14604
|
__proto__: null,
|
|
14793
|
-
default: _sfc_main$
|
|
14605
|
+
default: _sfc_main$4
|
|
14794
14606
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
14795
|
-
const _hoisted_1$
|
|
14796
|
-
const _hoisted_2$
|
|
14797
|
-
const _hoisted_3$
|
|
14798
|
-
const _sfc_main$
|
|
14607
|
+
const _hoisted_1$3 = { class: "property-editor property-editor-image flex-align-center" };
|
|
14608
|
+
const _hoisted_2$3 = { class: "title" };
|
|
14609
|
+
const _hoisted_3$3 = ["textContent"];
|
|
14610
|
+
const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
|
|
14799
14611
|
__name: "PbPropertyEditorHtml",
|
|
14800
14612
|
props: {
|
|
14801
14613
|
property: {},
|
|
@@ -14831,11 +14643,11 @@ ${_html.style}
|
|
|
14831
14643
|
});
|
|
14832
14644
|
};
|
|
14833
14645
|
return (_ctx, _cache) => {
|
|
14834
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
14835
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
14646
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$3, [
|
|
14647
|
+
vue.createElementVNode("div", _hoisted_2$3, [
|
|
14836
14648
|
vue.createElementVNode("label", {
|
|
14837
14649
|
textContent: vue.toDisplayString(_ctx.property.caption)
|
|
14838
|
-
}, null, 8, _hoisted_3$
|
|
14650
|
+
}, null, 8, _hoisted_3$3)
|
|
14839
14651
|
]),
|
|
14840
14652
|
vue.createElementVNode("div", null, [
|
|
14841
14653
|
vue.createElementVNode("button", { onClick: editHtml }, "Edit HTML")
|
|
@@ -14845,55 +14657,6 @@ ${_html.style}
|
|
|
14845
14657
|
}
|
|
14846
14658
|
});
|
|
14847
14659
|
const PbPropertyEditorHtml = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
14848
|
-
__proto__: null,
|
|
14849
|
-
default: _sfc_main$4
|
|
14850
|
-
}, Symbol.toStringTag, { value: "Module" }));
|
|
14851
|
-
const _hoisted_1$3 = { class: "bs-layout-vertical pb-part-add-modal" };
|
|
14852
|
-
const _hoisted_2$3 = { class: "bs-layout-horizontal-wrap ml-16 mb-8 gap-8" };
|
|
14853
|
-
const _hoisted_3$3 = ["onClick", "textContent"];
|
|
14854
|
-
const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
|
|
14855
|
-
__name: "PbPartAddModal",
|
|
14856
|
-
props: {
|
|
14857
|
-
pageBuilder: {},
|
|
14858
|
-
partDefinitionGroups: {}
|
|
14859
|
-
},
|
|
14860
|
-
emits: ["selectHandler"],
|
|
14861
|
-
setup(__props, { emit: __emit }) {
|
|
14862
|
-
const emit = __emit;
|
|
14863
|
-
const modalHandle = bluesea.useModalHandle();
|
|
14864
|
-
const select = (partDefinition) => {
|
|
14865
|
-
emit("selectHandler", partDefinition);
|
|
14866
|
-
modalHandle.close();
|
|
14867
|
-
};
|
|
14868
|
-
return (_ctx, _cache) => {
|
|
14869
|
-
return vue.openBlock(), vue.createBlock(vue.unref(bluesea.BSModalFrame), { title: "Add Design Part" }, {
|
|
14870
|
-
default: vue.withCtx(() => [
|
|
14871
|
-
vue.createElementVNode("div", _hoisted_1$3, [
|
|
14872
|
-
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.partDefinitionGroups, (group) => {
|
|
14873
|
-
return vue.openBlock(), vue.createElementBlock("div", {
|
|
14874
|
-
key: group.groupName,
|
|
14875
|
-
class: "group mb-16"
|
|
14876
|
-
}, [
|
|
14877
|
-
vue.createElementVNode("div", _hoisted_2$3, [
|
|
14878
|
-
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(group.partDefinitions, (part) => {
|
|
14879
|
-
return vue.openBlock(), vue.createElementBlock("div", {
|
|
14880
|
-
key: part.partName,
|
|
14881
|
-
class: "part",
|
|
14882
|
-
onClick: ($event) => select(part),
|
|
14883
|
-
textContent: vue.toDisplayString(part.caption)
|
|
14884
|
-
}, null, 8, _hoisted_3$3);
|
|
14885
|
-
}), 128))
|
|
14886
|
-
])
|
|
14887
|
-
]);
|
|
14888
|
-
}), 128))
|
|
14889
|
-
])
|
|
14890
|
-
]),
|
|
14891
|
-
_: 1
|
|
14892
|
-
});
|
|
14893
|
-
};
|
|
14894
|
-
}
|
|
14895
|
-
});
|
|
14896
|
-
const PbPartAddModal = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
14897
14660
|
__proto__: null,
|
|
14898
14661
|
default: _sfc_main$3
|
|
14899
14662
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
@@ -15176,12 +14939,11 @@ ${_html.style}
|
|
|
15176
14939
|
exports2.PAGE_BUILDER_KEY = PAGE_BUILDER_KEY;
|
|
15177
14940
|
exports2.PAGE_TYPE = PAGE_TYPE$1;
|
|
15178
14941
|
exports2.Page = Page;
|
|
15179
|
-
exports2.PageBuilderEditor = _sfc_main$
|
|
14942
|
+
exports2.PageBuilderEditor = _sfc_main$a;
|
|
15180
14943
|
exports2.PageBuilderEditorEvent = PageBuilderEditorEvent;
|
|
15181
14944
|
exports2.PageBuilderViewer = _sfc_main$1$1;
|
|
15182
|
-
exports2.PageBuilderViewerEvent = PageBuilderViewerEvent;
|
|
15183
14945
|
exports2.Part = Part;
|
|
15184
|
-
exports2.PbCustomWidget = _sfc_main$
|
|
14946
|
+
exports2.PbCustomWidget = _sfc_main$z;
|
|
15185
14947
|
exports2.PbHtmlWidget = _sfc_main$4$1;
|
|
15186
14948
|
exports2.PbIframeWidget = _sfc_main$3$1;
|
|
15187
14949
|
exports2.PbImageWidget = _sfc_main$6$1;
|