@feedmepos/mf-brand-app-builder 0.5.30-prod → 0.5.31-dev.1
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/dist/{App-Beph55R-.js → App-zTaAuGBa.js} +7 -7
- package/dist/{AssetsSettings-DJOCXmyp.js → AssetsSettings-DhprCc4v.js} +18 -18
- package/dist/BrandkitView-ByEGKUWe.js +11997 -0
- package/dist/{BuilderView-Cc__jo07.js → BuilderView-Dbn0EFvV.js} +7 -7
- package/dist/{ImageUpload-BcXZDyGQ.js → ImageUpload-CT8vpE54.js} +8 -8
- package/dist/{LinkButton-DNXBKGCn.js → LinkButton-De-YNclu.js} +1 -1
- package/dist/{ListRepeater-Ds2TUbPp.js → ListRepeater-BJVdDa65.js} +1 -1
- package/dist/{ManagementSettings-DHh2g_XJ.js → ManagementSettings-CueLn4v_.js} +6 -6
- package/dist/{ProjectView-DKXRpIC6.js → ProjectView-ByxaVBFb.js} +1 -1
- package/dist/{app-DYoWllXs.js → app-D_n3qedF.js} +75 -9
- package/dist/app.js +1 -1
- package/dist/client/merchant/src/app.d.ts +66 -0
- package/dist/client/merchant/src/composables/useBusinessFeatureFlag.d.ts +19 -0
- package/dist/{image-S7-2rbQS.js → image-D_Djf1PS.js} +7 -7
- package/dist/{index-CPs0rWCO.js → index-Bk6TOZrx.js} +15 -15
- package/dist/{index-CawZ03Z8.js → index-C1rSMuKA.js} +1 -1
- package/dist/index-C4vwWvn_.js +112 -0
- package/dist/{index-C6_vWPi0.js → index-D0LOMBBD.js} +27 -27
- package/dist/{main-CwLlNXN5.js → main-B40tnqQm.js} +3 -3
- package/dist/package.json +3 -2
- package/dist/style.css +1 -1
- package/package.json +2 -1
- package/dist/BrandkitView-COeDdGga.js +0 -11072
- package/dist/index-BUEKCOG0.js +0 -112
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { resolveComponent as V, TransitionGroup as qn, defineComponent as se, nextTick as rn, h as ma, isRef as Qn, isReactive as eo, isProxy as to, toRaw as ao, ref as q, computed as ie, createElementBlock as Z, openBlock as N, Fragment as Le, renderList as vt, createElementVNode as I, createVNode as w, createBlock as ae, createCommentVNode as Q, toDisplayString as j, unref as v, withCtx as M, normalizeClass as ye, watch as tt, withDirectives as Gt, withModifiers as ba, vShow as Xt, createTextVNode as no, onMounted as ln, resolveDynamicComponent as Ma, mergeProps as oo, normalizeProps as ro, guardReactiveProps as io, normalizeStyle as lo, renderSlot as wa, provide as so, inject as co, markRaw as uo } from "vue";
|
|
2
|
-
import { T as po, u as Ge } from "./index-
|
|
2
|
+
import { T as po, u as Ge } from "./index-Bk6TOZrx.js";
|
|
3
3
|
import { defineStore as mo, storeToRefs as bo } from "pinia";
|
|
4
4
|
import { p as fo } from "./views-BDWw3w14.js";
|
|
5
|
-
import { A as go } from "./index-
|
|
5
|
+
import { A as go } from "./index-D0LOMBBD.js";
|
|
6
6
|
import { v as Ra } from "./v4-CKwdnpQf.js";
|
|
7
7
|
import { _ as ho } from "./Icon.vue_vue_type_style_index_0_lang-BcRjQndc.js";
|
|
8
8
|
import { B as sn } from "./BaDivider-Cp9gfB4r.js";
|
|
9
9
|
import { useI18n as Ze, useCoreStore as We } from "@feedmepos/mf-common";
|
|
10
|
-
import { C as $a, _ as yo, a as vo } from "./main-
|
|
10
|
+
import { C as $a, _ as yo, a as vo } from "./main-B40tnqQm.js";
|
|
11
11
|
import { useDialog as To, components as xo, useSnackbar as Co } from "@feedmepos/ui-library";
|
|
12
12
|
import { useRouter as dn } from "vue-router";
|
|
13
13
|
import { u as Ia, a as _o, b as wo } from "./brandkit-C8uulbNE.js";
|
|
14
|
-
import { u as Ea } from "./index-
|
|
14
|
+
import { u as Ea } from "./index-C1rSMuKA.js";
|
|
15
15
|
import { K as Io, V as Eo } from "./vue-sonner-CBFYmm8_.js";
|
|
16
|
-
import { F as So, a as Ao } from "./app-
|
|
16
|
+
import { F as So, a as Ao } from "./app-D_n3qedF.js";
|
|
17
17
|
/**!
|
|
18
18
|
* Sortable 1.14.0
|
|
19
19
|
* @author RubaXa <trash@rubaxa.org>
|
|
@@ -6605,7 +6605,7 @@ const ai = { class: "mb-24" }, ni = { class: "fm-typo-en-title-lg-700 text-fm-co
|
|
|
6605
6605
|
}
|
|
6606
6606
|
async function g() {
|
|
6607
6607
|
var y;
|
|
6608
|
-
const f = `${"https://{slug}.
|
|
6608
|
+
const f = `${"https://{slug}.feedmedev.vip".replace("{slug}", `${r.currentBusiness.value.url ?? ((y = r.currentBusiness.value) == null ? void 0 : y.id)}`)}`;
|
|
6609
6609
|
l.promise(
|
|
6610
6610
|
async () => {
|
|
6611
6611
|
var x;
|
|
@@ -8171,7 +8171,7 @@ _t.toString = Oa.bind(null, function(t, e, a) {
|
|
|
8171
8171
|
const xl = { class: "flex items-center justify-center" }, Cl = { class: "w-full flex gap-8 justify-end items-center" }, _l = /* @__PURE__ */ se({
|
|
8172
8172
|
__name: "PreviewQrCode",
|
|
8173
8173
|
setup(t) {
|
|
8174
|
-
const e = q(), a = We(), n = Ge(), { t: o } = Ze(), r = q(!1), l = ie(() => `${`${"https://{slug}.
|
|
8174
|
+
const e = q(), a = We(), n = Ge(), { t: o } = Ze(), r = q(!1), l = ie(() => `${`${"https://{slug}.feedmedev.vip".replace("{slug}", `${a.currentBusiness.value.url ?? a.currentBusiness.value._id}`)}`}/preview/${n.state.selectedTemplate.templateId}`);
|
|
8175
8175
|
function i() {
|
|
8176
8176
|
Io.promise(navigator.clipboard.writeText(l.value), {
|
|
8177
8177
|
loading: o("brand.template.shareMenu.copying"),
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { defineComponent as y, ref as b, resolveComponent as w, createElementBlock as r, openBlock as s, createVNode as c, createCommentVNode as
|
|
2
|
-
import { r as g, I as h } from "./image-
|
|
1
|
+
import { defineComponent as y, ref as b, resolveComponent as w, createElementBlock as r, openBlock as s, createVNode as c, createCommentVNode as f, Fragment as C, createElementVNode as i, unref as u } from "vue";
|
|
2
|
+
import { r as g, I as h } from "./image-D_Djf1PS.js";
|
|
3
3
|
import { useCoreStore as I } from "@feedmepos/mf-common";
|
|
4
|
-
import "./main-
|
|
4
|
+
import "./main-B40tnqQm.js";
|
|
5
5
|
import { _ as $ } from "./Icon.vue_vue_type_style_index_0_lang-BcRjQndc.js";
|
|
6
6
|
import { C as k } from "./CircularProgress-DdblYCtV.js";
|
|
7
7
|
import { v as F } from "./v4-CKwdnpQf.js";
|
|
@@ -22,12 +22,12 @@ const B = { class: "w-full h-[210px] relative" }, P = { class: "absolute z-[1] t
|
|
|
22
22
|
o
|
|
23
23
|
).then((m) => {
|
|
24
24
|
var p;
|
|
25
|
-
const l = `https://image.
|
|
25
|
+
const l = `https://image.feedmedev.cc/business/${a.currentBusiness.value._id}/${m.imagePath}`;
|
|
26
26
|
e.context.node.input(l);
|
|
27
27
|
const n = new Image();
|
|
28
28
|
(p = e.context) != null && p.ignoreUpdate || (n.onload = () => {
|
|
29
|
-
var
|
|
30
|
-
((
|
|
29
|
+
var d;
|
|
30
|
+
((d = e.context.node.at("$root")) == null ? void 0 : d._value).containerStyles.height = `${Math.min(n.height, 400)}px`;
|
|
31
31
|
}), n.src = g(l);
|
|
32
32
|
}).finally(() => t.value = !1);
|
|
33
33
|
}
|
|
@@ -60,10 +60,10 @@ const B = { class: "w-full h-[210px] relative" }, P = { class: "absolute z-[1] t
|
|
|
60
60
|
class: "!text-[16px] text-fm-color-typo-white"
|
|
61
61
|
})
|
|
62
62
|
])
|
|
63
|
-
], 64)) :
|
|
63
|
+
], 64)) : f("", !0),
|
|
64
64
|
t.value ? (s(), r("div", z, [
|
|
65
65
|
c(u(k))
|
|
66
|
-
])) :
|
|
66
|
+
])) : f("", !0)
|
|
67
67
|
]);
|
|
68
68
|
};
|
|
69
69
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { defineComponent as I, ref as f, computed as k, onBeforeMount as L, resolveComponent as c, createBlock as v, openBlock as u, withCtx as m, createElementVNode as a, createVNode as r, createElementBlock as x, Fragment as M, renderList as F, toDisplayString as P, withModifiers as R } from "vue";
|
|
2
2
|
import { B as y } from "./BaDivider-Cp9gfB4r.js";
|
|
3
3
|
import { _ as W } from "./Icon.vue_vue_type_style_index_0_lang-BcRjQndc.js";
|
|
4
|
-
import { u as $ } from "./index-
|
|
4
|
+
import { u as $ } from "./index-Bk6TOZrx.js";
|
|
5
5
|
import "@feedmepos/mf-common";
|
|
6
6
|
const j = {
|
|
7
7
|
key: 1,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent as b, resolveComponent as y, createBlock as s, openBlock as c, unref as u, withCtx as i, createElementBlock as m, Fragment as x, renderList as g, createElementVNode as p, createVNode as n, resolveDynamicComponent as F } from "vue";
|
|
2
|
-
import { F as f } from "./app-
|
|
2
|
+
import { F as f } from "./app-D_n3qedF.js";
|
|
3
3
|
const h = { class: "flex justify-end gap-4 items-center w-full py-16 px-12 border-b" }, z = { class: "flex flex-col gap-4 w-full p-12" }, I = /* @__PURE__ */ b({
|
|
4
4
|
__name: "ListRepeater",
|
|
5
5
|
props: {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { defineComponent as C, ref as y, computed as S, watch as $, resolveComponent as d, createElementBlock as k, openBlock as g, createElementVNode as o, createVNode as u, toDisplayString as _, unref as i, createBlock as F, withCtx as U } from "vue";
|
|
2
2
|
import { useCoreStore as P, useI18n as V } from "@feedmepos/mf-common";
|
|
3
|
-
import { B as h } from "./index-
|
|
3
|
+
import { B as h } from "./index-C4vwWvn_.js";
|
|
4
4
|
import { K as q } from "./vue-sonner-CBFYmm8_.js";
|
|
5
|
-
import { r as I, I as T } from "./image-
|
|
5
|
+
import { r as I, I as T } from "./image-D_Djf1PS.js";
|
|
6
6
|
import { useSnackbar as A } from "@feedmepos/ui-library";
|
|
7
7
|
const E = new RegExp(/^[a-z0-9][a-z0-9\-]{4,}[a-z0-9]$/), N = [
|
|
8
8
|
"brand",
|
|
@@ -510,12 +510,12 @@ const E = new RegExp(/^[a-z0-9][a-z0-9\-]{4,}[a-z0-9]$/), N = [
|
|
|
510
510
|
url: "",
|
|
511
511
|
thumbnail: ""
|
|
512
512
|
}), x = S(
|
|
513
|
-
() => "https://{slug}.
|
|
513
|
+
() => "https://{slug}.feedmedev.vip".replace("https://{slug}", "")
|
|
514
514
|
);
|
|
515
515
|
function B() {
|
|
516
516
|
var t, e;
|
|
517
517
|
navigator.clipboard.writeText(
|
|
518
|
-
"https://{slug}.
|
|
518
|
+
"https://{slug}.feedmedev.vip".replace(
|
|
519
519
|
"{slug}",
|
|
520
520
|
((t = s.currentBusiness.value) == null ? void 0 : t.url) ?? ((e = s.currentBusiness.value) == null ? void 0 : e._id)
|
|
521
521
|
)
|
|
@@ -574,9 +574,9 @@ const E = new RegExp(/^[a-z0-9][a-z0-9\-]{4,}[a-z0-9]$/), N = [
|
|
|
574
574
|
await h.updateBusinessProfile(s.currentBusiness.value._id, {
|
|
575
575
|
name: a.value.name,
|
|
576
576
|
url: a.value.url,
|
|
577
|
-
thumbnail: `https://image.
|
|
577
|
+
thumbnail: `https://image.feedmedev.cc/business/${s.currentBusiness.value._id}/${c.imagePath}`,
|
|
578
578
|
coverPhoto: s.currentBusiness.value.coverPhoto
|
|
579
|
-
}), a.value.thumbnail = `https://image.
|
|
579
|
+
}), a.value.thumbnail = `https://image.feedmedev.cc/business/${s.currentBusiness.value._id}/${c.imagePath}`;
|
|
580
580
|
});
|
|
581
581
|
}
|
|
582
582
|
return $(
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent as S, createElementBlock as D, openBlock as I, normalizeClass as m, createElementVNode as E, toDisplayString as C, ref as x, computed as J, watch as K, resolveComponent as l, unref as h, Fragment as v, renderList as W, createVNode as B, createCommentVNode as s, createBlock as r, withCtx as P, h as L } from "vue";
|
|
2
|
-
import { u as Z } from "./index-
|
|
2
|
+
import { u as Z } from "./index-Bk6TOZrx.js";
|
|
3
3
|
import { useCoreStore as q, useI18n as X } from "@feedmepos/mf-common";
|
|
4
4
|
import { p as y } from "./views-BDWw3w14.js";
|
|
5
5
|
import { useRouter as b } from "vue-router";
|
|
@@ -16,6 +16,7 @@ const wn = {
|
|
|
16
16
|
subtitle: "Brandkit Settings",
|
|
17
17
|
description: "Manage your brand's colors and fonts for your mini program.",
|
|
18
18
|
save: "Save",
|
|
19
|
+
unsavedChanges: "You have unsaved changes",
|
|
19
20
|
logo: "Logo",
|
|
20
21
|
color: {
|
|
21
22
|
_: "Colors",
|
|
@@ -181,6 +182,16 @@ const wn = {
|
|
|
181
182
|
addStylesheet: "Add stylesheet",
|
|
182
183
|
noStylesheetsYet: "No font stylesheets added yet."
|
|
183
184
|
},
|
|
185
|
+
fontAssignment: {
|
|
186
|
+
title: "Font assignment",
|
|
187
|
+
description: "Set the font family used for each role. Make sure the font is loaded via a stylesheet above.",
|
|
188
|
+
brand: "Brand font",
|
|
189
|
+
brandDescription: "Primary font used across the application.",
|
|
190
|
+
heading: "Heading font",
|
|
191
|
+
headingDescription: "Font used for headings. Falls back to brand font if empty.",
|
|
192
|
+
body: "Body font",
|
|
193
|
+
bodyDescription: "Font used for body text. Falls back to brand font if empty."
|
|
194
|
+
},
|
|
184
195
|
plugins: {
|
|
185
196
|
customLayout: "Custom layout (Admin only)",
|
|
186
197
|
customLayoutDescription: "Customize layout with advanced json syntax",
|
|
@@ -735,6 +746,7 @@ const wn = {
|
|
|
735
746
|
subtitle: "品牌工具包设置",
|
|
736
747
|
description: "管理您的品牌小程序的颜色和字体。",
|
|
737
748
|
save: "保存",
|
|
749
|
+
unsavedChanges: "您有未保存的更改",
|
|
738
750
|
logo: "标志",
|
|
739
751
|
color: {
|
|
740
752
|
_: "颜色",
|
|
@@ -901,6 +913,16 @@ const wn = {
|
|
|
901
913
|
addStylesheet: "添加样式表",
|
|
902
914
|
noStylesheetsYet: "尚未添加字体样式表。"
|
|
903
915
|
},
|
|
916
|
+
fontAssignment: {
|
|
917
|
+
title: "字体指派",
|
|
918
|
+
description: "设置每个角色使用的字体系列。请确保字体已通过上方的样式表加载。",
|
|
919
|
+
brand: "品牌字体",
|
|
920
|
+
brandDescription: "应用程序中使用的主要字体。",
|
|
921
|
+
heading: "标题字体",
|
|
922
|
+
headingDescription: "用于标题的字体。留空则使用品牌字体。",
|
|
923
|
+
body: "正文字体",
|
|
924
|
+
bodyDescription: "用于正文的字体。留空则使用品牌字体。"
|
|
925
|
+
},
|
|
904
926
|
plugins: {
|
|
905
927
|
customLayout: "自定义布局(仅管理员)",
|
|
906
928
|
customLayoutDescription: "使用高级 JSON 语法自定义布局",
|
|
@@ -1460,6 +1482,7 @@ const wn = {
|
|
|
1460
1482
|
subtitle: "品牌工具包設置",
|
|
1461
1483
|
description: "管理您的品牌小程序的顔色和字體。",
|
|
1462
1484
|
save: "保存",
|
|
1485
|
+
unsavedChanges: "您有未保存的更改",
|
|
1463
1486
|
logo: "標志",
|
|
1464
1487
|
color: {
|
|
1465
1488
|
_: "顔色",
|
|
@@ -1626,6 +1649,16 @@ const wn = {
|
|
|
1626
1649
|
addStylesheet: "新增樣式表",
|
|
1627
1650
|
noStylesheetsYet: "尚未新增字型樣式表。"
|
|
1628
1651
|
},
|
|
1652
|
+
fontAssignment: {
|
|
1653
|
+
title: "字型指派",
|
|
1654
|
+
description: "設定每個角色使用的字型系列。請確保字型已透過上方的樣式表載入。",
|
|
1655
|
+
brand: "品牌字型",
|
|
1656
|
+
brandDescription: "應用程式中使用的主要字型。",
|
|
1657
|
+
heading: "標題字型",
|
|
1658
|
+
headingDescription: "用於標題的字型。留空則使用品牌字型。",
|
|
1659
|
+
body: "內文字型",
|
|
1660
|
+
bodyDescription: "用於內文的字型。留空則使用品牌字型。"
|
|
1661
|
+
},
|
|
1629
1662
|
plugins: {
|
|
1630
1663
|
customLayout: "自訂佈局(僅管理員)",
|
|
1631
1664
|
customLayoutDescription: "使用進階 JSON 語法自訂佈局",
|
|
@@ -2180,6 +2213,7 @@ const wn = {
|
|
|
2180
2213
|
subtitle: "การตั้งค่า Brandkit",
|
|
2181
2214
|
description: "จัดการสีและฟอนต์ของแบรนด์สำหรับมินิโปรแกรมของคุณ",
|
|
2182
2215
|
save: "บันทึก",
|
|
2216
|
+
unsavedChanges: "คุณมีการเปลี่ยนแปลงที่ยังไม่ได้บันทึก",
|
|
2183
2217
|
logo: "โลโก้",
|
|
2184
2218
|
color: {
|
|
2185
2219
|
_: "สี",
|
|
@@ -2346,6 +2380,16 @@ const wn = {
|
|
|
2346
2380
|
addStylesheet: "เพิ่มสไตล์ชีท",
|
|
2347
2381
|
noStylesheetsYet: "ยังไม่ได้เพิ่มสไตล์ชีทฟอนต์"
|
|
2348
2382
|
},
|
|
2383
|
+
fontAssignment: {
|
|
2384
|
+
title: "การกำหนดฟอนต์",
|
|
2385
|
+
description: "ตั้งค่าฟอนต์แฟมิลีที่ใช้สำหรับแต่ละบทบาท ตรวจสอบให้แน่ใจว่าโหลดฟอนต์ผ่านสไตล์ชีทด้านบนแล้ว",
|
|
2386
|
+
brand: "ฟอนต์แบรนด์",
|
|
2387
|
+
brandDescription: "ฟอนต์หลักที่ใช้ในแอปพลิเคชัน",
|
|
2388
|
+
heading: "ฟอนต์หัวข้อ",
|
|
2389
|
+
headingDescription: "ฟอนต์ที่ใช้สำหรับหัวข้อ ถ้าเว้นว่างจะใช้ฟอนต์แบรนด์",
|
|
2390
|
+
body: "ฟอนต์เนื้อหา",
|
|
2391
|
+
bodyDescription: "ฟอนต์ที่ใช้สำหรับเนื้อหา ถ้าเว้นว่างจะใช้ฟอนต์แบรนด์"
|
|
2392
|
+
},
|
|
2349
2393
|
plugins: {
|
|
2350
2394
|
customLayout: "เลย์เอาต์กำหนดเอง (เฉพาะผู้ดูแลระบบ)",
|
|
2351
2395
|
customLayoutDescription: "ปรับแต่งเลย์เอาต์ด้วยไวยากรณ์ JSON ขั้นสูง",
|
|
@@ -3061,6 +3105,7 @@ const wn = {
|
|
|
3061
3105
|
subtitle: "브랜드 키트 설정",
|
|
3062
3106
|
description: "미니 프로그램을 위한 브랜드 색상과 폰트를 관리하세요.",
|
|
3063
3107
|
save: "저장",
|
|
3108
|
+
unsavedChanges: "저장되지 않은 변경 사항이 있습니다",
|
|
3064
3109
|
logo: "로고",
|
|
3065
3110
|
color: {
|
|
3066
3111
|
_: "색상",
|
|
@@ -3226,6 +3271,16 @@ const wn = {
|
|
|
3226
3271
|
addStylesheet: "스타일시트 추가",
|
|
3227
3272
|
noStylesheetsYet: "아직 폰트 스타일시트가 추가되지 않았습니다."
|
|
3228
3273
|
},
|
|
3274
|
+
fontAssignment: {
|
|
3275
|
+
title: "폰트 지정",
|
|
3276
|
+
description: "각 역할에 사용할 폰트 패밀리를 설정하세요. 위의 스타일시트를 통해 폰트가 로드되었는지 확인하세요.",
|
|
3277
|
+
brand: "브랜드 폰트",
|
|
3278
|
+
brandDescription: "애플리케이션 전체에서 사용되는 기본 폰트입니다.",
|
|
3279
|
+
heading: "제목 폰트",
|
|
3280
|
+
headingDescription: "제목에 사용되는 폰트입니다. 비어있으면 브랜드 폰트를 사용합니다.",
|
|
3281
|
+
body: "본문 폰트",
|
|
3282
|
+
bodyDescription: "본문 텍스트에 사용되는 폰트입니다. 비어있으면 브랜드 폰트를 사용합니다."
|
|
3283
|
+
},
|
|
3229
3284
|
plugins: {
|
|
3230
3285
|
customLayout: "사용자 지정 레이아웃 (관리자 전용)",
|
|
3231
3286
|
customLayoutDescription: "고급 JSON 구문으로 레이아웃을 사용자 지정합니다",
|
|
@@ -3947,6 +4002,7 @@ const wn = {
|
|
|
3947
4002
|
subtitle: "Cài đặt bộ nhận diện thương hiệu",
|
|
3948
4003
|
description: "Quản lý màu sắc và phông chữ thương hiệu của bạn cho chương trình nhỏ.",
|
|
3949
4004
|
save: "Lưu",
|
|
4005
|
+
unsavedChanges: "Bạn có thay đổi chưa được lưu",
|
|
3950
4006
|
logo: "Logo",
|
|
3951
4007
|
color: {
|
|
3952
4008
|
_: "Màu sắc",
|
|
@@ -4112,6 +4168,16 @@ const wn = {
|
|
|
4112
4168
|
addStylesheet: "Thêm bảng kiểu",
|
|
4113
4169
|
noStylesheetsYet: "Chưa thêm bảng kiểu phông chữ nào."
|
|
4114
4170
|
},
|
|
4171
|
+
fontAssignment: {
|
|
4172
|
+
title: "Gán phông chữ",
|
|
4173
|
+
description: "Đặt họ phông chữ được sử dụng cho từng vai trò. Đảm bảo phông chữ đã được tải qua bảng kiểu ở trên.",
|
|
4174
|
+
brand: "Phông chữ thương hiệu",
|
|
4175
|
+
brandDescription: "Phông chữ chính được sử dụng trong ứng dụng.",
|
|
4176
|
+
heading: "Phông chữ tiêu đề",
|
|
4177
|
+
headingDescription: "Phông chữ dùng cho tiêu đề. Để trống sẽ dùng phông chữ thương hiệu.",
|
|
4178
|
+
body: "Phông chữ nội dung",
|
|
4179
|
+
bodyDescription: "Phông chữ dùng cho nội dung. Để trống sẽ dùng phông chữ thương hiệu."
|
|
4180
|
+
},
|
|
4115
4181
|
plugins: {
|
|
4116
4182
|
customLayout: "Bố cục tùy chỉnh (Chỉ quản trị viên)",
|
|
4117
4183
|
customLayoutDescription: "Tùy chỉnh bố cục với cú pháp JSON nâng cao",
|
|
@@ -7813,12 +7879,12 @@ const wn = {
|
|
|
7813
7879
|
{
|
|
7814
7880
|
path: "/",
|
|
7815
7881
|
name: "brandkit",
|
|
7816
|
-
component: H(() => import("./BrandkitView-
|
|
7882
|
+
component: H(() => import("./BrandkitView-ByEGKUWe.js"))
|
|
7817
7883
|
},
|
|
7818
7884
|
{
|
|
7819
7885
|
path: "/projects",
|
|
7820
7886
|
name: "projects",
|
|
7821
|
-
component: H(() => import("./ProjectView-
|
|
7887
|
+
component: H(() => import("./ProjectView-ByxaVBFb.js"))
|
|
7822
7888
|
},
|
|
7823
7889
|
{
|
|
7824
7890
|
path: "/builder",
|
|
@@ -7828,7 +7894,7 @@ const wn = {
|
|
|
7828
7894
|
path: ":templateId(.*)*",
|
|
7829
7895
|
name: "builder",
|
|
7830
7896
|
component: H(
|
|
7831
|
-
() => import("./BuilderView-
|
|
7897
|
+
() => import("./BuilderView-Dbn0EFvV.js")
|
|
7832
7898
|
)
|
|
7833
7899
|
}
|
|
7834
7900
|
]
|
|
@@ -7843,14 +7909,14 @@ const wn = {
|
|
|
7843
7909
|
path: "assets",
|
|
7844
7910
|
name: "settings-assets",
|
|
7845
7911
|
component: H(
|
|
7846
|
-
() => import("./AssetsSettings-
|
|
7912
|
+
() => import("./AssetsSettings-DhprCc4v.js")
|
|
7847
7913
|
)
|
|
7848
7914
|
},
|
|
7849
7915
|
{
|
|
7850
7916
|
path: "management",
|
|
7851
7917
|
name: "settings-management",
|
|
7852
7918
|
component: H(
|
|
7853
|
-
() => import("./ManagementSettings-
|
|
7919
|
+
() => import("./ManagementSettings-CueLn4v_.js")
|
|
7854
7920
|
)
|
|
7855
7921
|
}
|
|
7856
7922
|
]
|
|
@@ -12529,7 +12595,7 @@ const Pc = (e) => {
|
|
|
12529
12595
|
),
|
|
12530
12596
|
BaListRepeater: K(
|
|
12531
12597
|
H(
|
|
12532
|
-
() => import("./ListRepeater-
|
|
12598
|
+
() => import("./ListRepeater-BJVdDa65.js")
|
|
12533
12599
|
)
|
|
12534
12600
|
),
|
|
12535
12601
|
BaTextStyleList: K(
|
|
@@ -12549,13 +12615,13 @@ const Pc = (e) => {
|
|
|
12549
12615
|
),
|
|
12550
12616
|
BaImageUpload: K(
|
|
12551
12617
|
H(
|
|
12552
|
-
() => import("./ImageUpload-
|
|
12618
|
+
() => import("./ImageUpload-CT8vpE54.js")
|
|
12553
12619
|
),
|
|
12554
12620
|
{ props: ["ignoreUpdate"] }
|
|
12555
12621
|
),
|
|
12556
12622
|
BaLinkButton: K(
|
|
12557
12623
|
H(
|
|
12558
|
-
() => import("./LinkButton-
|
|
12624
|
+
() => import("./LinkButton-De-YNclu.js")
|
|
12559
12625
|
)
|
|
12560
12626
|
),
|
|
12561
12627
|
BaSwitch: K(
|
|
@@ -12577,7 +12643,7 @@ const Pc = (e) => {
|
|
|
12577
12643
|
"th-TH": { ...xn, ...yr },
|
|
12578
12644
|
"ko-KR": { ...En, ...wr },
|
|
12579
12645
|
"vi-VN": { ...zn, ...Mr }
|
|
12580
|
-
}, $c = H(() => import("./App-
|
|
12646
|
+
}, $c = H(() => import("./App-zTaAuGBa.js"));
|
|
12581
12647
|
export {
|
|
12582
12648
|
hn as F,
|
|
12583
12649
|
pn as a,
|
package/dist/app.js
CHANGED
|
@@ -529,6 +529,7 @@ export declare const i18nMessages: {
|
|
|
529
529
|
subtitle: string;
|
|
530
530
|
description: string;
|
|
531
531
|
save: string;
|
|
532
|
+
unsavedChanges: string;
|
|
532
533
|
logo: string;
|
|
533
534
|
color: {
|
|
534
535
|
_: string;
|
|
@@ -694,6 +695,16 @@ export declare const i18nMessages: {
|
|
|
694
695
|
addStylesheet: string;
|
|
695
696
|
noStylesheetsYet: string;
|
|
696
697
|
};
|
|
698
|
+
fontAssignment: {
|
|
699
|
+
title: string;
|
|
700
|
+
description: string;
|
|
701
|
+
brand: string;
|
|
702
|
+
brandDescription: string;
|
|
703
|
+
heading: string;
|
|
704
|
+
headingDescription: string;
|
|
705
|
+
body: string;
|
|
706
|
+
bodyDescription: string;
|
|
707
|
+
};
|
|
697
708
|
plugins: {
|
|
698
709
|
customLayout: string;
|
|
699
710
|
customLayoutDescription: string;
|
|
@@ -1783,6 +1794,7 @@ export declare const i18nMessages: {
|
|
|
1783
1794
|
subtitle: string;
|
|
1784
1795
|
description: string;
|
|
1785
1796
|
save: string;
|
|
1797
|
+
unsavedChanges: string;
|
|
1786
1798
|
logo: string;
|
|
1787
1799
|
color: {
|
|
1788
1800
|
_: string;
|
|
@@ -1949,6 +1961,16 @@ export declare const i18nMessages: {
|
|
|
1949
1961
|
addStylesheet: string;
|
|
1950
1962
|
noStylesheetsYet: string;
|
|
1951
1963
|
};
|
|
1964
|
+
fontAssignment: {
|
|
1965
|
+
title: string;
|
|
1966
|
+
description: string;
|
|
1967
|
+
brand: string;
|
|
1968
|
+
brandDescription: string;
|
|
1969
|
+
heading: string;
|
|
1970
|
+
headingDescription: string;
|
|
1971
|
+
body: string;
|
|
1972
|
+
bodyDescription: string;
|
|
1973
|
+
};
|
|
1952
1974
|
plugins: {
|
|
1953
1975
|
customLayout: string;
|
|
1954
1976
|
customLayoutDescription: string;
|
|
@@ -3013,6 +3035,7 @@ export declare const i18nMessages: {
|
|
|
3013
3035
|
subtitle: string;
|
|
3014
3036
|
description: string;
|
|
3015
3037
|
save: string;
|
|
3038
|
+
unsavedChanges: string;
|
|
3016
3039
|
logo: string;
|
|
3017
3040
|
color: {
|
|
3018
3041
|
_: string;
|
|
@@ -3179,6 +3202,16 @@ export declare const i18nMessages: {
|
|
|
3179
3202
|
addStylesheet: string;
|
|
3180
3203
|
noStylesheetsYet: string;
|
|
3181
3204
|
};
|
|
3205
|
+
fontAssignment: {
|
|
3206
|
+
title: string;
|
|
3207
|
+
description: string;
|
|
3208
|
+
brand: string;
|
|
3209
|
+
brandDescription: string;
|
|
3210
|
+
heading: string;
|
|
3211
|
+
headingDescription: string;
|
|
3212
|
+
body: string;
|
|
3213
|
+
bodyDescription: string;
|
|
3214
|
+
};
|
|
3182
3215
|
plugins: {
|
|
3183
3216
|
customLayout: string;
|
|
3184
3217
|
customLayoutDescription: string;
|
|
@@ -4243,6 +4276,7 @@ export declare const i18nMessages: {
|
|
|
4243
4276
|
subtitle: string;
|
|
4244
4277
|
description: string;
|
|
4245
4278
|
save: string;
|
|
4279
|
+
unsavedChanges: string;
|
|
4246
4280
|
logo: string;
|
|
4247
4281
|
color: {
|
|
4248
4282
|
_: string;
|
|
@@ -4409,6 +4443,16 @@ export declare const i18nMessages: {
|
|
|
4409
4443
|
addStylesheet: string;
|
|
4410
4444
|
noStylesheetsYet: string;
|
|
4411
4445
|
};
|
|
4446
|
+
fontAssignment: {
|
|
4447
|
+
title: string;
|
|
4448
|
+
description: string;
|
|
4449
|
+
brand: string;
|
|
4450
|
+
brandDescription: string;
|
|
4451
|
+
heading: string;
|
|
4452
|
+
headingDescription: string;
|
|
4453
|
+
body: string;
|
|
4454
|
+
bodyDescription: string;
|
|
4455
|
+
};
|
|
4412
4456
|
plugins: {
|
|
4413
4457
|
customLayout: string;
|
|
4414
4458
|
customLayoutDescription: string;
|
|
@@ -5672,6 +5716,7 @@ export declare const i18nMessages: {
|
|
|
5672
5716
|
subtitle: string;
|
|
5673
5717
|
description: string;
|
|
5674
5718
|
save: string;
|
|
5719
|
+
unsavedChanges: string;
|
|
5675
5720
|
logo: string;
|
|
5676
5721
|
color: {
|
|
5677
5722
|
_: string;
|
|
@@ -5837,6 +5882,16 @@ export declare const i18nMessages: {
|
|
|
5837
5882
|
addStylesheet: string;
|
|
5838
5883
|
noStylesheetsYet: string;
|
|
5839
5884
|
};
|
|
5885
|
+
fontAssignment: {
|
|
5886
|
+
title: string;
|
|
5887
|
+
description: string;
|
|
5888
|
+
brand: string;
|
|
5889
|
+
brandDescription: string;
|
|
5890
|
+
heading: string;
|
|
5891
|
+
headingDescription: string;
|
|
5892
|
+
body: string;
|
|
5893
|
+
bodyDescription: string;
|
|
5894
|
+
};
|
|
5840
5895
|
plugins: {
|
|
5841
5896
|
customLayout: string;
|
|
5842
5897
|
customLayoutDescription: string;
|
|
@@ -7100,6 +7155,7 @@ export declare const i18nMessages: {
|
|
|
7100
7155
|
subtitle: string;
|
|
7101
7156
|
description: string;
|
|
7102
7157
|
save: string;
|
|
7158
|
+
unsavedChanges: string;
|
|
7103
7159
|
logo: string;
|
|
7104
7160
|
color: {
|
|
7105
7161
|
_: string;
|
|
@@ -7265,6 +7321,16 @@ export declare const i18nMessages: {
|
|
|
7265
7321
|
addStylesheet: string;
|
|
7266
7322
|
noStylesheetsYet: string;
|
|
7267
7323
|
};
|
|
7324
|
+
fontAssignment: {
|
|
7325
|
+
title: string;
|
|
7326
|
+
description: string;
|
|
7327
|
+
brand: string;
|
|
7328
|
+
brandDescription: string;
|
|
7329
|
+
heading: string;
|
|
7330
|
+
headingDescription: string;
|
|
7331
|
+
body: string;
|
|
7332
|
+
bodyDescription: string;
|
|
7333
|
+
};
|
|
7268
7334
|
plugins: {
|
|
7269
7335
|
customLayout: string;
|
|
7270
7336
|
customLayoutDescription: string;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Initializes the feature flag service.
|
|
3
|
+
* Should be called once at app startup (e.g. in main.ts or App.vue).
|
|
4
|
+
*/
|
|
5
|
+
export declare function initFeatureFlag(mode: string): Promise<void>;
|
|
6
|
+
/**
|
|
7
|
+
* Composable to fetch a business-scoped feature flag.
|
|
8
|
+
*
|
|
9
|
+
* Uses the current business ID from `useCoreStore()` as the identity
|
|
10
|
+
* (prefixed as `business-{id}` internally by the SDK).
|
|
11
|
+
*
|
|
12
|
+
* @param key Flag key, e.g. `"order_ods_advanced_customization"`
|
|
13
|
+
* @param defaultValue Fallback when flag is not set
|
|
14
|
+
* @param transform Optional transform for the raw flag value
|
|
15
|
+
*/
|
|
16
|
+
export declare function useBusinessFeatureFlag<T = string>(key: string, defaultValue: T, transform?: (v: unknown) => T): {
|
|
17
|
+
value: import("vue").Ref<T | undefined, T | undefined>;
|
|
18
|
+
loading: import("vue").Ref<boolean, boolean>;
|
|
19
|
+
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { H as r, a as p } from "./index-
|
|
1
|
+
import { H as r, a as p } from "./index-D0LOMBBD.js";
|
|
2
2
|
const i = () => p().PWA_ICON_SERVICE_BACKEND;
|
|
3
|
-
async function
|
|
3
|
+
async function d(e, t, a) {
|
|
4
4
|
const n = new FormData();
|
|
5
5
|
return n.append("file", a), (await r.Put(
|
|
6
|
-
"https://api.
|
|
6
|
+
"https://api.feedmedev.vip",
|
|
7
7
|
`/image/${e}/${t}`,
|
|
8
8
|
{
|
|
9
9
|
headers: {
|
|
@@ -13,9 +13,9 @@ async function s(e, t, a) {
|
|
|
13
13
|
}
|
|
14
14
|
)).data;
|
|
15
15
|
}
|
|
16
|
-
async function
|
|
16
|
+
async function s(e, t) {
|
|
17
17
|
return (await r.Delete(
|
|
18
|
-
"https://api.
|
|
18
|
+
"https://api.feedmedev.vip",
|
|
19
19
|
`/image/${e}/${t}`
|
|
20
20
|
)).data;
|
|
21
21
|
}
|
|
@@ -29,8 +29,8 @@ async function o(e, t) {
|
|
|
29
29
|
})).data;
|
|
30
30
|
}
|
|
31
31
|
const f = {
|
|
32
|
-
uploadImage:
|
|
33
|
-
deleteImage:
|
|
32
|
+
uploadImage: d,
|
|
33
|
+
deleteImage: s,
|
|
34
34
|
uploadAppIcon: o
|
|
35
35
|
};
|
|
36
36
|
function u(e) {
|