@feedmepos/mf-brand-app-builder 0.5.38-prod → 0.5.39-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-DCqUhB-s.js → App-BkKpBANO.js} +8 -8
- package/dist/{AssetsSettings-Do8rt2sU.js → AssetsSettings-DtZ6goQl.js} +22 -22
- package/dist/{BrandkitView-DVLf_gps.js → BrandkitView-BHxLHRHQ.js} +7 -7
- package/dist/{BuilderView-DhS8KBGx.js → BuilderView-CXfguRqC.js} +880 -869
- package/dist/CredentialSettings-3eVBw1x8.js +204 -0
- package/dist/{ImageUpload-CMslvGx1.js → ImageUpload-BPKZzWlC.js} +8 -8
- package/dist/{LinkButton-DNXBKGCn.js → LinkButton-De-YNclu.js} +1 -1
- package/dist/{ListRepeater-BqO9jrcY.js → ListRepeater--jgzApql.js} +1 -1
- package/dist/{ManagementSettings-CgEqhej5.js → ManagementSettings-WLFOtGtA.js} +6 -6
- package/dist/{ProjectView-DKXRpIC6.js → ProjectView-Bq9eIS_m.js} +175 -163
- package/dist/{SettingsView-uft0uKio.js → SettingsView-C6WNydwT.js} +9 -9
- package/dist/app-BhQ6s4xM.js +16209 -0
- package/dist/app.js +1 -1
- package/dist/client/merchant/src/app.d.ts +14 -0
- package/dist/client/merchant/src/components/brandkit/ColorSelection.vue.d.ts +2 -2
- package/dist/client/merchant/src/composables/useMiniProgramPermission.d.ts +7 -0
- package/dist/{dayjs.min-DnbY0e60.js → dayjs.min-26xBDzV6.js} +1 -1
- package/dist/{image-S7-2rbQS.js → image-D_Djf1PS.js} +7 -7
- package/dist/{index-BpYD24Jn.js → index-BA2J-Ffh.js} +1 -1
- package/dist/{index-CPs0rWCO.js → index-Bk6TOZrx.js} +15 -15
- package/dist/index-CVVQJJYY.js +134 -0
- package/dist/{index-C6_vWPi0.js → index-D0LOMBBD.js} +27 -27
- package/dist/{main-e9233fMv.js → main-D3hu_bbz.js} +527 -524
- package/dist/package.json +3 -2
- package/dist/{useBusinessFeatureFlag-rGPsfDu1.js → useBusinessFeatureFlag-6P4lr8pM.js} +1 -1
- package/package.json +3 -2
- package/dist/_commonjsHelpers-DaMA6jEr.js +0 -8
- package/dist/app-DExf4FOu.js +0 -14226
- package/dist/index-CP6_oC8N.js +0 -134
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import { defineComponent as B, ref as d, watch as S, resolveComponent as k, createElementBlock as f, openBlock as c, createCommentVNode as w, createBlock as K, renderSlot as D, toDisplayString as F, createElementVNode as m, createVNode as t, Fragment as I } from "vue";
|
|
2
|
+
import { B as P } from "./index-CVVQJJYY.js";
|
|
3
|
+
import { useCoreStore as N, useI18n as $ } from "@feedmepos/mf-common";
|
|
4
|
+
import { K as j } from "./vue-sonner-CBFYmm8_.js";
|
|
5
|
+
const O = { key: 0 }, R = { class: "rounded-md border-2 border-dashed border-fm-color-primary p-16 flex flex-col gap-8 items-center mt-4" }, T = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, b = /* @__PURE__ */ B({
|
|
6
|
+
__name: "FileUpload",
|
|
7
|
+
props: {
|
|
8
|
+
label: {},
|
|
9
|
+
modelValue: {},
|
|
10
|
+
accept: {}
|
|
11
|
+
},
|
|
12
|
+
emits: ["update:modelValue"],
|
|
13
|
+
setup(C, { emit: x }) {
|
|
14
|
+
const _ = x, i = d(C.modelValue);
|
|
15
|
+
return S(i, () => {
|
|
16
|
+
_("update:modelValue", i.value);
|
|
17
|
+
}), (s, n) => {
|
|
18
|
+
const y = k("FmDropField"), g = k("FmButton");
|
|
19
|
+
return c(), f("div", null, [
|
|
20
|
+
s.label ? (c(), f("p", O, F(s.label), 1)) : w("", !0),
|
|
21
|
+
i.value ? D(s.$slots, "default", { key: 2 }, () => [
|
|
22
|
+
m("div", R, [
|
|
23
|
+
t(g, {
|
|
24
|
+
variant: "secondary",
|
|
25
|
+
label: "Remove",
|
|
26
|
+
onClick: n[1] || (n[1] = (v) => i.value = void 0)
|
|
27
|
+
}),
|
|
28
|
+
m("p", T, F(i.value.name), 1)
|
|
29
|
+
])
|
|
30
|
+
]) : (c(), K(y, {
|
|
31
|
+
key: 1,
|
|
32
|
+
accept: s.accept,
|
|
33
|
+
"max-files": 1,
|
|
34
|
+
onFileUpload: n[0] || (n[0] = (v) => i.value = v)
|
|
35
|
+
}, null, 8, ["accept"]))
|
|
36
|
+
]);
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
}), E = { class: "w-full flex items-center justify-between" }, G = { key: 0 }, J = {
|
|
40
|
+
key: 1,
|
|
41
|
+
class: "relative flex flex-col gap-24"
|
|
42
|
+
}, L = { class: "grid grid-cols-1 lg:grid-cols-2 gap-24" }, q = {
|
|
43
|
+
key: 0,
|
|
44
|
+
class: "space-y-16 p-24 border border-fm-color-neutral-gray-200 rounded-lg bg-white"
|
|
45
|
+
}, z = {
|
|
46
|
+
key: 1,
|
|
47
|
+
class: "space-y-16 p-24 border border-fm-color-neutral-gray-200 rounded-lg bg-white"
|
|
48
|
+
}, H = { class: "grid grid-cols-1 sm:grid-cols-2 gap-16" }, Y = /* @__PURE__ */ B({
|
|
49
|
+
__name: "CredentialSettings",
|
|
50
|
+
setup(C) {
|
|
51
|
+
const x = N(), { t: _ } = $(), l = d(), i = d(), s = d(), n = d(), y = d(), g = d(), v = d(), U = d(!1), V = (a) => new Promise((e, u) => {
|
|
52
|
+
const r = new FileReader();
|
|
53
|
+
r.readAsDataURL(a), r.onload = () => {
|
|
54
|
+
const o = r.result.split(",")[1];
|
|
55
|
+
e(o);
|
|
56
|
+
}, r.onerror = (p) => u(p);
|
|
57
|
+
}), A = async () => {
|
|
58
|
+
U.value = !0, j.promise(
|
|
59
|
+
async () => {
|
|
60
|
+
var e, u, r;
|
|
61
|
+
const a = {
|
|
62
|
+
android: ((e = l.value) == null ? void 0 : e.android) || {},
|
|
63
|
+
ios: ((u = l.value) == null ? void 0 : u.ios) || {},
|
|
64
|
+
...l.value
|
|
65
|
+
};
|
|
66
|
+
i.value && (a.android.keystore = await V(i.value)), s.value && (a.android.key_properties = await V(
|
|
67
|
+
s.value
|
|
68
|
+
)), n.value && (a.android.service_account_json = await V(
|
|
69
|
+
n.value
|
|
70
|
+
)), y.value && (a.ios.distribution_certificate = await V(
|
|
71
|
+
y.value
|
|
72
|
+
)), g.value && (a.ios.provisioning_profile = await V(
|
|
73
|
+
g.value
|
|
74
|
+
)), v.value && (a.ios.app_store_connect_api_private_key = await V(
|
|
75
|
+
v.value
|
|
76
|
+
)), await P.updateCredentials(
|
|
77
|
+
((r = x.currentBusiness.value) == null ? void 0 : r.id) || "",
|
|
78
|
+
a
|
|
79
|
+
);
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
loading: _("brand.settings.management.toast.saving"),
|
|
83
|
+
success: () => _("brand.settings.management.toast.saved"),
|
|
84
|
+
error: (a) => a.message ?? _("brand.settings.management.toast.errorSaving"),
|
|
85
|
+
finally() {
|
|
86
|
+
U.value = !1;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
);
|
|
90
|
+
};
|
|
91
|
+
return S(
|
|
92
|
+
() => x.currentBusiness.value,
|
|
93
|
+
async (a, e) => {
|
|
94
|
+
a && a._id != (e == null ? void 0 : e._id) && (l.value = await P.getCredentials(a._id).catch((u) => (console.error(u), {
|
|
95
|
+
android: {},
|
|
96
|
+
ios: {}
|
|
97
|
+
})));
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
immediate: !0
|
|
101
|
+
}
|
|
102
|
+
), (a, e) => {
|
|
103
|
+
const u = k("FmButton"), r = k("FmCircularProgress"), p = k("FmTextField");
|
|
104
|
+
return c(), f(I, null, [
|
|
105
|
+
m("div", E, [
|
|
106
|
+
e[11] || (e[11] = m("h2", { class: "fm-typo-en-title-sm-600 text-fm-color-typo-primary" }, " Native Credentials ", -1)),
|
|
107
|
+
t(u, {
|
|
108
|
+
variant: "primary",
|
|
109
|
+
label: "Save Credentials",
|
|
110
|
+
loading: U.value,
|
|
111
|
+
onClick: A
|
|
112
|
+
}, null, 8, ["loading"])
|
|
113
|
+
]),
|
|
114
|
+
l.value ? (c(), f("div", J, [
|
|
115
|
+
m("div", L, [
|
|
116
|
+
l.value.android ? (c(), f("div", q, [
|
|
117
|
+
e[12] || (e[12] = m("h2", { class: "text-xl font-bold text-fm-color-typo-primary" }, "Android", -1)),
|
|
118
|
+
t(p, {
|
|
119
|
+
modelValue: l.value.android.package_name,
|
|
120
|
+
"onUpdate:modelValue": e[0] || (e[0] = (o) => l.value.android.package_name = o),
|
|
121
|
+
label: "Package Name",
|
|
122
|
+
placeholder: "com.example.app"
|
|
123
|
+
}, null, 8, ["modelValue"]),
|
|
124
|
+
t(b, {
|
|
125
|
+
label: "Upload Keystore (.jks or .keystore)",
|
|
126
|
+
accept: ".jks,.keystore",
|
|
127
|
+
"max-files": 1,
|
|
128
|
+
modelValue: i.value,
|
|
129
|
+
"onUpdate:modelValue": e[1] || (e[1] = (o) => i.value = o)
|
|
130
|
+
}, null, 8, ["modelValue"]),
|
|
131
|
+
t(b, {
|
|
132
|
+
label: "Upload Key Properties (key.properties)",
|
|
133
|
+
accept: ".properties",
|
|
134
|
+
"max-files": 1,
|
|
135
|
+
modelValue: s.value,
|
|
136
|
+
"onUpdate:modelValue": e[2] || (e[2] = (o) => s.value = o)
|
|
137
|
+
}, null, 8, ["modelValue"]),
|
|
138
|
+
t(b, {
|
|
139
|
+
label: "Upload Service Account JSON (Google Play)",
|
|
140
|
+
accept: ".json",
|
|
141
|
+
"max-files": 1,
|
|
142
|
+
modelValue: n.value,
|
|
143
|
+
"onUpdate:modelValue": e[3] || (e[3] = (o) => n.value = o)
|
|
144
|
+
}, null, 8, ["modelValue"])
|
|
145
|
+
])) : w("", !0),
|
|
146
|
+
l.value.ios ? (c(), f("div", z, [
|
|
147
|
+
e[13] || (e[13] = m("h2", { class: "text-xl font-bold text-fm-color-typo-primary" }, "iOS", -1)),
|
|
148
|
+
m("div", H, [
|
|
149
|
+
t(p, {
|
|
150
|
+
modelValue: l.value.ios.bundle_id,
|
|
151
|
+
"onUpdate:modelValue": e[4] || (e[4] = (o) => l.value.ios.bundle_id = o),
|
|
152
|
+
label: "Bundle ID",
|
|
153
|
+
placeholder: "com.example.app"
|
|
154
|
+
}, null, 8, ["modelValue"]),
|
|
155
|
+
t(p, {
|
|
156
|
+
modelValue: l.value.ios.password,
|
|
157
|
+
"onUpdate:modelValue": e[5] || (e[5] = (o) => l.value.ios.password = o),
|
|
158
|
+
label: "Certificate Password",
|
|
159
|
+
type: "password"
|
|
160
|
+
}, null, 8, ["modelValue"])
|
|
161
|
+
]),
|
|
162
|
+
t(p, {
|
|
163
|
+
modelValue: l.value.ios.provisioning_profile_uuid,
|
|
164
|
+
"onUpdate:modelValue": e[6] || (e[6] = (o) => l.value.ios.provisioning_profile_uuid = o),
|
|
165
|
+
label: "Provisioning Profile UUID (Optional)"
|
|
166
|
+
}, null, 8, ["modelValue"]),
|
|
167
|
+
t(p, {
|
|
168
|
+
modelValue: l.value.ios.app_store_connect_api_key_id,
|
|
169
|
+
"onUpdate:modelValue": e[7] || (e[7] = (o) => l.value.ios.app_store_connect_api_key_id = o),
|
|
170
|
+
label: "App Store Connect API Key ID"
|
|
171
|
+
}, null, 8, ["modelValue"]),
|
|
172
|
+
t(b, {
|
|
173
|
+
label: "Upload Distribution Certificate (.p12)",
|
|
174
|
+
accept: ".p12",
|
|
175
|
+
"max-files": 1,
|
|
176
|
+
modelValue: y.value,
|
|
177
|
+
"onUpdate:modelValue": e[8] || (e[8] = (o) => y.value = o)
|
|
178
|
+
}, null, 8, ["modelValue"]),
|
|
179
|
+
t(b, {
|
|
180
|
+
label: "Upload Provisioning Profile (.mobileprovision)",
|
|
181
|
+
accept: ".mobileprovision",
|
|
182
|
+
"max-files": 1,
|
|
183
|
+
modelValue: g.value,
|
|
184
|
+
"onUpdate:modelValue": e[9] || (e[9] = (o) => g.value = o)
|
|
185
|
+
}, null, 8, ["modelValue"]),
|
|
186
|
+
t(b, {
|
|
187
|
+
label: "Upload App Store Connect API Private Key (.p8)",
|
|
188
|
+
accept: ".p8",
|
|
189
|
+
"max-files": 1,
|
|
190
|
+
modelValue: v.value,
|
|
191
|
+
"onUpdate:modelValue": e[10] || (e[10] = (o) => v.value = o)
|
|
192
|
+
}, null, 8, ["modelValue"])
|
|
193
|
+
])) : w("", !0)
|
|
194
|
+
])
|
|
195
|
+
])) : (c(), f("div", G, [
|
|
196
|
+
t(r)
|
|
197
|
+
]))
|
|
198
|
+
], 64);
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
export {
|
|
203
|
+
Y as default
|
|
204
|
+
};
|
|
@@ -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-D3hu_bbz.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-BhQ6s4xM.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 F, ref as _, computed as I, watch as V, resolveComponent as d, createElementBlock as b, openBlock as p, createElementVNode as o, createVNode as m, toDisplayString as B, unref as l, createBlock as q, createCommentVNode as T, withCtx as A } from "vue";
|
|
2
2
|
import { useCoreStore as R, useI18n as N } from "@feedmepos/mf-common";
|
|
3
|
-
import { B as g } from "./index-
|
|
3
|
+
import { B as g } from "./index-CVVQJJYY.js";
|
|
4
4
|
import { K as x } from "./vue-sonner-CBFYmm8_.js";
|
|
5
|
-
import { r as D, I as j } from "./image-
|
|
5
|
+
import { r as D, I as j } from "./image-D_Djf1PS.js";
|
|
6
6
|
import { useSnackbar as E } from "@feedmepos/ui-library";
|
|
7
7
|
const K = new RegExp(/^[a-z0-9][a-z0-9\-]{4,}[a-z0-9]$/), L = [
|
|
8
8
|
"brand",
|
|
@@ -510,7 +510,7 @@ const K = new RegExp(/^[a-z0-9][a-z0-9\-]{4,}[a-z0-9]$/), L = [
|
|
|
510
510
|
url: "",
|
|
511
511
|
thumbnail: ""
|
|
512
512
|
}), z = I(
|
|
513
|
-
() => "https://{slug}.
|
|
513
|
+
() => "https://{slug}.feedmedev.vip".replace("https://{slug}", "")
|
|
514
514
|
);
|
|
515
515
|
function f(t) {
|
|
516
516
|
var n;
|
|
@@ -525,7 +525,7 @@ const K = new RegExp(/^[a-z0-9][a-z0-9\-]{4,}[a-z0-9]$/), L = [
|
|
|
525
525
|
function C() {
|
|
526
526
|
var t;
|
|
527
527
|
navigator.clipboard.writeText(
|
|
528
|
-
"https://{slug}.
|
|
528
|
+
"https://{slug}.feedmedev.vip".replace(
|
|
529
529
|
"{slug}",
|
|
530
530
|
f((t = e.currentBusiness.value) == null ? void 0 : t.url)
|
|
531
531
|
)
|
|
@@ -603,9 +603,9 @@ const K = new RegExp(/^[a-z0-9][a-z0-9\-]{4,}[a-z0-9]$/), L = [
|
|
|
603
603
|
await g.updateBusinessProfile(e.currentBusiness.value._id, {
|
|
604
604
|
name: s.value.name,
|
|
605
605
|
url: s.value.url,
|
|
606
|
-
thumbnail: `https://image.
|
|
606
|
+
thumbnail: `https://image.feedmedev.cc/business/${e.currentBusiness.value._id}/${u.imagePath}`,
|
|
607
607
|
coverPhoto: e.currentBusiness.value.coverPhoto
|
|
608
|
-
}), e.currentBusiness.value.thumbnail = `https://image.
|
|
608
|
+
}), e.currentBusiness.value.thumbnail = `https://image.feedmedev.cc/business/${e.currentBusiness.value._id}/${u.imagePath}`, s.value.thumbnail = `https://image.feedmedev.cc/business/${e.currentBusiness.value._id}/${u.imagePath}`;
|
|
609
609
|
});
|
|
610
610
|
}
|
|
611
611
|
return V(
|