@feedmepos/mf-connect 0.1.38-beta.71 → 0.1.38-beta.72

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.
Files changed (133) hide show
  1. package/package.json +1 -1
  2. package/dist/Analytic-BY0xqCru.js +0 -761
  3. package/dist/App-n6-XqhU7.js +0 -4638
  4. package/dist/AuditLogs-Dml3WjdH.js +0 -1991
  5. package/dist/Bin-DaPZyWm-.js +0 -166
  6. package/dist/Broadcast-hLmkBNne.js +0 -267
  7. package/dist/CampaignTypeDialog.vue_vue_type_script_setup_true_lang-BahnNhzD.js +0 -121
  8. package/dist/Card-C_Fm3E0s.js +0 -909
  9. package/dist/ChipMenu.vue_vue_type_script_setup_true_lang-BPpZZNkr.js +0 -97
  10. package/dist/Collections-DAUsUa0c.js +0 -540
  11. package/dist/Credit-DklbckuQ.js +0 -261
  12. package/dist/CustomSelect.vue_vue_type_script_setup_true_lang-Du7fRSZC.js +0 -128
  13. package/dist/DateRangeChip.vue_vue_type_script_setup_true_lang-eIoPtgO5.js +0 -58
  14. package/dist/EditCampaignSheet.vue_vue_type_script_setup_true_lang-vpnaCdLI.js +0 -3167
  15. package/dist/EffectSheet.vue_vue_type_style_index_0_lang-e1ZWGrXS.js +0 -351
  16. package/dist/Experience-D3Ve8dCI.js +0 -260
  17. package/dist/FileSaver.min-Bg15HHd0.js +0 -74
  18. package/dist/FilterChip.vue_vue_type_script_setup_true_lang-DaU-9GzO.js +0 -129
  19. package/dist/Game-BJzRdZNg.js +0 -331
  20. package/dist/GenerateMaterial-pDWgptXt.js +0 -589
  21. package/dist/Grab-B0D8SpcD.js +0 -301
  22. package/dist/ImageInput.vue_vue_type_script_setup_true_lang-DkI3qMHv.js +0 -145
  23. package/dist/Index-ysSM8-pd.js +0 -259
  24. package/dist/JsonViewer-v8_C7l5N.js +0 -87
  25. package/dist/LottieAnimation.vue_vue_type_script_setup_true_lang-C7bEzQ4b.js +0 -18737
  26. package/dist/MainLayout-Kt1Wiz87.js +0 -41
  27. package/dist/Marketing-CFS6ff03.js +0 -145
  28. package/dist/MarketingMaterialEdit-BDYr5Rlw.js +0 -746
  29. package/dist/Member-Dgb3QBKF.js +0 -280
  30. package/dist/MemberList-CfcQUvN8.js +0 -1605
  31. package/dist/MemberOverview-wL_ailso.js +0 -58
  32. package/dist/MemberTransactions-BVwGdpXo.js +0 -45
  33. package/dist/MessageInput.vue_vue_type_script_setup_true_lang-Dj3h51yH.js +0 -60798
  34. package/dist/Mission-B9K8-Wrt.js +0 -335
  35. package/dist/Overview-DJgKxAvU.js +0 -1078
  36. package/dist/Point-lev1_Nit.js +0 -263
  37. package/dist/Promotion-De9e8yPj.js +0 -397
  38. package/dist/Queue-DH_F0Ekd.js +0 -259
  39. package/dist/Record-CH2AZqzF.js +0 -341
  40. package/dist/Reward-BUgOAjd4.js +0 -442
  41. package/dist/RewardGroup.vue_vue_type_script_setup_true_lang-KTaTLjjw.js +0 -149
  42. package/dist/RuleGroup.vue_vue_type_script_setup_true_lang-rs5kKp_v.js +0 -1912
  43. package/dist/Segment-DL6O--Aw.js +0 -881
  44. package/dist/SelectItems.vue_vue_type_script_setup_true_lang-ZUGDMD5J.js +0 -181
  45. package/dist/SendCollectionSheet.vue_vue_type_script_setup_true_lang-CIeyrheH.js +0 -188
  46. package/dist/SendVoucherSheet.vue_vue_type_script_setup_true_lang-BAtXxIjO.js +0 -147
  47. package/dist/Setting-DOA80XlJ.js +0 -1999
  48. package/dist/SettingAdvertisements-Dl0eisXq.js +0 -263
  49. package/dist/Store-fni1Xblz.js +0 -1995
  50. package/dist/StoreRewards-CLMO-kNi.js +0 -534
  51. package/dist/StoreTransactions.vue_vue_type_script_setup_true_lang-BlBovyiT.js +0 -1034
  52. package/dist/TargetLocationInput.vue_vue_type_script_setup_true_lang-D-jYcuAa.js +0 -7005
  53. package/dist/Tier-B0_DiVNv.js +0 -969
  54. package/dist/Title-twptCzpk.js +0 -567
  55. package/dist/Transaction-CTX5I6gO.js +0 -39
  56. package/dist/UserRuleGroup.vue_vue_type_script_setup_true_lang-Bp-rIgz4.js +0 -130
  57. package/dist/Voucher-C7Kxmzjr.js +0 -422
  58. package/dist/VoucherEditor.vue_vue_type_script_setup_true_lang-lZQTZUUU.js +0 -421
  59. package/dist/ZodTextField.vue_vue_type_script_setup_true_lang-BlBEFfgu.js +0 -56
  60. package/dist/_plugin-vue_export-helper-CHgC5LLL.js +0 -9
  61. package/dist/app-D5GVWKxc.js +0 -59071
  62. package/dist/app-wDQR6dpb.js +0 -39
  63. package/dist/app.js +0 -7
  64. package/dist/business-BvNsRlY4.js +0 -82
  65. package/dist/campaign-CpzFl8Vr.js +0 -4
  66. package/dist/campaign-DRErhSfb.js +0 -100
  67. package/dist/campaign-MN_o01w6.js +0 -253
  68. package/dist/campaign.enum-BtfwwLCf.js +0 -26
  69. package/dist/campaign.fn-BgSGxLPo.js +0 -776
  70. package/dist/collectible.enum-CV2tpD2C.js +0 -19
  71. package/dist/collection.fn-BYjqObg7.js +0 -26
  72. package/dist/dto-CyhnIGn-.js +0 -222
  73. package/dist/duplicateCampaign-jOZ1UznM.js +0 -51
  74. package/dist/effect-NKfquhhR.js +0 -89
  75. package/dist/email-addresses-EmFJeFmB.js +0 -705
  76. package/dist/export-B70Bp6s8.js +0 -96
  77. package/dist/feedme.ico +0 -0
  78. package/dist/helper-DiSstsUa.js +0 -86
  79. package/dist/index-5FmmWAib.js +0 -30289
  80. package/dist/index-B09KKPb4.js +0 -3419
  81. package/dist/index-BgP5ZHK6.js +0 -31
  82. package/dist/index-C46EHygk.js +0 -3
  83. package/dist/index-CD7Ji4Nw.js +0 -56
  84. package/dist/index-CHXlBh7-.js +0 -32
  85. package/dist/index-Cr2243n7.js +0 -2423
  86. package/dist/index-CrDg9PFk.js +0 -8912
  87. package/dist/index-CuvNtC_M.js +0 -61
  88. package/dist/index-DK45XoFG.js +0 -54
  89. package/dist/index-Qg_bzaF2.js +0 -76
  90. package/dist/index-bAmlAkpk.js +0 -124
  91. package/dist/index-nTpkh7pU.js +0 -28897
  92. package/dist/index-tvZKdKVU.js +0 -36
  93. package/dist/index-vh86FiIQ.js +0 -10
  94. package/dist/index.esm2017-B8fYlj6l.js +0 -3069
  95. package/dist/loading-DVr3dbZ1.js +0 -215
  96. package/dist/lodash-BNr1VEn2.js +0 -3678
  97. package/dist/membership-LEuPDIbe.js +0 -235
  98. package/dist/moment-D7p2TMB-.js +0 -2583
  99. package/dist/money-CogUwiv6.js +0 -15
  100. package/dist/number-C5wGUTN5.js +0 -12
  101. package/dist/object-qECH92oz.js +0 -26
  102. package/dist/objectId-dwaoBfJX.js +0 -7
  103. package/dist/objectid-DbUENFHd.js +0 -145
  104. package/dist/plugins-BxKrsjEx.js +0 -1817
  105. package/dist/remy-D_Deb3ue.js +0 -13
  106. package/dist/reward-CM4Wx2zA.js +0 -36
  107. package/dist/rule-CMMr2GMg.js +0 -1969
  108. package/dist/rule-builder-D5QsmOxi.js +0 -102
  109. package/dist/style.css +0 -13
  110. package/dist/template-BDKqBasy.js +0 -188
  111. package/dist/tier-BJDhpH6X.js +0 -4
  112. package/dist/tiers/tier=1.png +0 -0
  113. package/dist/tiers/tier=2.png +0 -0
  114. package/dist/tiers/tier=3.png +0 -0
  115. package/dist/tiers/tier=4.png +0 -0
  116. package/dist/timezone-DuaWQsQ2.js +0 -1154
  117. package/dist/titles/type=diamond.png +0 -0
  118. package/dist/titles/type=drinks.png +0 -0
  119. package/dist/titles/type=food.png +0 -0
  120. package/dist/titles/type=heart.png +0 -0
  121. package/dist/titles/type=medal.png +0 -0
  122. package/dist/titles/type=spend.png +0 -0
  123. package/dist/titles/type=thank-you.png +0 -0
  124. package/dist/titles/type=thumbs-up.png +0 -0
  125. package/dist/titles/type=years.png +0 -0
  126. package/dist/trigger-IcyZcRow.js +0 -213
  127. package/dist/tslib.es6-BCqqvLQ_.js +0 -44
  128. package/dist/type_drinks-D6jnpvwV.js +0 -4
  129. package/dist/usePagination-D8OEDsCt.js +0 -223
  130. package/dist/user-u3blYzG2.js +0 -55
  131. package/dist/vue-i18n-DfD8ZY6j.js +0 -2365
  132. package/dist/xlsx-Bgf4_JHr.js +0 -15491
  133. package/dist/zod-9J33xiFS.js +0 -91
@@ -1,746 +0,0 @@
1
- import { defineComponent as _, resolveComponent as y, openBlock as n, createBlock as w, withCtx as $, createElementVNode as e, createVNode as i, createElementBlock as d, ref as v, watch as F, Fragment as I, unref as s, createCommentVNode as b, Teleport as R, Transition as A, withModifiers as L, toDisplayString as g, renderList as q, createTextVNode as N, onMounted as O } from "vue";
2
- import "./index-C46EHygk.js";
3
- import { useRoute as j, useRouter as V } from "vue-router";
4
- import { u as E } from "./vue-i18n-DfD8ZY6j.js";
5
- import { m as C } from "./index-tvZKdKVU.js";
6
- import { useClientEvent as M, ChatPanel as W } from "@feedmepos/mf-remy-panel";
7
- import { _ as G } from "./_plugin-vue_export-helper-CHgC5LLL.js";
8
- import { useSnackbar as H } from "@feedmepos/ui-library";
9
- import { u as S } from "./remy-D_Deb3ue.js";
10
- import { useCoreStore as U } from "@feedmepos/mf-common";
11
- import { R as D } from "./app-D5GVWKxc.js";
12
- const z = /* @__PURE__ */ _({
13
- __name: "ActionToolbarButton",
14
- props: {
15
- icon: {},
16
- tooltip: {}
17
- },
18
- emits: ["click"],
19
- setup(t, { emit: r }) {
20
- const m = r;
21
- return (c, a) => {
22
- const l = y("FmIcon"), o = y("FmTooltip");
23
- return n(), w(o, {
24
- content: t.tooltip,
25
- placement: "bottom",
26
- "z-index": 60,
27
- variant: "rich"
28
- }, {
29
- default: $(() => [
30
- e("button", {
31
- class: "p-2 rounded-lg bg-white/10 hover:bg-white/20 transition-colors text-white flex items-center justify-center",
32
- onClick: a[0] || (a[0] = (f) => m("click"))
33
- }, [
34
- i(l, {
35
- name: t.icon,
36
- size: "md"
37
- }, null, 8, ["name"])
38
- ])
39
- ]),
40
- _: 1
41
- }, 8, ["content"]);
42
- };
43
- }
44
- }), Y = { class: "flex gap-8" }, K = /* @__PURE__ */ _({
45
- __name: "ActionToolbar",
46
- props: {
47
- imageUrl: {}
48
- },
49
- emits: ["edit", "close"],
50
- setup(t, { emit: r }) {
51
- const m = t, c = r;
52
- async function a() {
53
- if (m.imageUrl)
54
- try {
55
- const o = await (await fetch(m.imageUrl)).blob(), f = URL.createObjectURL(o), x = document.createElement("a");
56
- x.href = f, x.download = "marketing-material", x.click(), URL.revokeObjectURL(f);
57
- } catch {
58
- window.open(m.imageUrl, "_blank");
59
- }
60
- }
61
- return (l, o) => (n(), d("div", Y, [
62
- i(z, {
63
- icon: "edit",
64
- tooltip: "Edit",
65
- onClick: o[0] || (o[0] = (f) => c("edit"))
66
- }),
67
- i(z, {
68
- icon: "download",
69
- tooltip: "Download",
70
- onClick: a
71
- }),
72
- i(z, {
73
- icon: "close",
74
- tooltip: "Close",
75
- onClick: o[1] || (o[1] = (f) => c("close"))
76
- })
77
- ]));
78
- }
79
- }), J = ["src"], Q = { class: "absolute inset-0 bg-black/40 flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity text-white" }, X = {
80
- key: 1,
81
- class: "absolute inset-0 flex items-center justify-center"
82
- }, Z = { class: "relative" }, ee = ["src"], te = /* @__PURE__ */ _({
83
- __name: "Thumbnail",
84
- props: {
85
- imageUrl: {}
86
- },
87
- emits: ["edit"],
88
- setup(t, { emit: r }) {
89
- const m = t, c = r, a = j(), l = v(!1), o = v(m.imageUrl);
90
- F(
91
- () => m.imageUrl,
92
- (u) => {
93
- o.value = u;
94
- }
95
- );
96
- const f = v(!1);
97
- function x() {
98
- l.value = !1, c("edit", o.value);
99
- }
100
- return M(
101
- "apply-edited-banner",
102
- async ({ imageUrl: u }) => {
103
- const p = a.query.id;
104
- if (p) {
105
- f.value = !0;
106
- try {
107
- await C.updateMarketingMaterial(p, { imageUrl: u }), o.value = u;
108
- } finally {
109
- f.value = !1;
110
- }
111
- }
112
- }
113
- ), (u, p) => {
114
- const h = y("FmIcon");
115
- return n(), d(I, null, [
116
- e("div", {
117
- class: "relative group cursor-pointer rounded-xl overflow-hidden fm-shadow-light-200 aspect-square bg-white",
118
- onClick: p[0] || (p[0] = (k) => l.value = !0)
119
- }, [
120
- s(o) ? (n(), d("img", {
121
- key: 0,
122
- src: s(o),
123
- alt: "Generated Material",
124
- class: "w-full h-full object-contain"
125
- }, null, 8, J)) : b("", !0),
126
- e("div", Q, [
127
- i(h, {
128
- name: "zoom_in",
129
- size: "xl"
130
- })
131
- ]),
132
- s(f) ? (n(), d("div", X, [...p[3] || (p[3] = [
133
- e("div", { class: "w-10 h-10 rounded-full border-4 border-white/30 border-t-white animate-spin" }, null, -1)
134
- ])])) : b("", !0)
135
- ]),
136
- (n(), w(R, { to: "body" }, [
137
- i(A, { name: "fade" }, {
138
- default: $(() => [
139
- s(l) ? (n(), d("div", {
140
- key: 0,
141
- class: "fixed inset-0 z-50 bg-black/80 flex items-center justify-center",
142
- onClick: p[2] || (p[2] = L((k) => l.value = !1, ["self"]))
143
- }, [
144
- e("div", Z, [
145
- i(K, {
146
- class: "absolute top-0 right-0 z-10 -translate-y-full p-4",
147
- "image-url": s(o),
148
- onEdit: x,
149
- onClose: p[1] || (p[1] = (k) => l.value = !1)
150
- }, null, 8, ["image-url"]),
151
- s(o) ? (n(), d("img", {
152
- key: 0,
153
- src: s(o),
154
- alt: "Preview",
155
- class: "max-h-[80vh] max-w-[90vw] object-contain rounded-xl"
156
- }, null, 8, ee)) : b("", !0)
157
- ])
158
- ])) : b("", !0)
159
- ]),
160
- _: 1
161
- })
162
- ]))
163
- ], 64);
164
- };
165
- }
166
- }), oe = /* @__PURE__ */ G(te, [["__scopeId", "data-v-9a9ede30"]]), ne = { class: "flex gap-4 shrink-0 mt-2" }, B = /* @__PURE__ */ _({
167
- __name: "TextActionWidget",
168
- props: {
169
- text: {}
170
- },
171
- emits: ["editWithRemy"],
172
- setup(t, { emit: r }) {
173
- const m = r, c = H();
174
- async function a(l) {
175
- l && (await navigator.clipboard.writeText(l), c.open({ message: "Copied to clipboard!", type: "success" }));
176
- }
177
- return (l, o) => {
178
- const f = y("FmIcon"), x = y("FmTooltip");
179
- return n(), d("div", ne, [
180
- i(x, {
181
- content: "Remy AI",
182
- placement: "top",
183
- "hide-arrow": !1
184
- }, {
185
- default: $(() => [
186
- e("button", {
187
- class: "p-8 rounded-md hover:bg-fm-color-neutral-gray-100 transition-colors",
188
- onClick: o[0] || (o[0] = (u) => m("editWithRemy"))
189
- }, [
190
- i(f, {
191
- name: "auto_awesome",
192
- size: "sm",
193
- color: "neutral-gray-400"
194
- })
195
- ])
196
- ]),
197
- _: 1
198
- }),
199
- i(x, {
200
- content: "Copy",
201
- placement: "top",
202
- "hide-arrow": !1
203
- }, {
204
- default: $(() => [
205
- e("button", {
206
- class: "p-8 rounded-md hover:bg-fm-color-neutral-gray-100 transition-colors",
207
- onClick: o[1] || (o[1] = (u) => a(t.text))
208
- }, [
209
- i(f, {
210
- name: "content_copy",
211
- size: "sm",
212
- color: "neutral-gray-400"
213
- })
214
- ])
215
- ]),
216
- _: 1
217
- })
218
- ]);
219
- };
220
- }
221
- }), se = { class: "flex gap-24 px-24 py-48 sm:flex-col xs:flex-col" }, le = { class: "flex-1" }, ie = { class: "flex-[2] flex flex-col gap-24" }, ae = { class: "flex flex-col gap-8" }, re = { class: "fm-typo-en-body-sm-400 text-fm-color-typo-secondary uppercase tracking-wide" }, ce = { class: "flex items-start gap-8" }, de = { class: "fm-typo-en-title-sm-800 flex-1" }, me = { class: "flex flex-col gap-8" }, ue = { class: "fm-typo-en-body-sm-400 text-fm-color-typo-secondary uppercase tracking-wide" }, pe = { class: "flex items-start gap-8" }, fe = { class: "fm-typo-en-body-md-400 text-fm-color-typo-primary whitespace-pre-wrap flex-1" }, ge = /* @__PURE__ */ _({
222
- __name: "OverviewTab",
223
- props: {
224
- imageUrl: {},
225
- headline: {},
226
- caption: {}
227
- },
228
- setup(t) {
229
- const r = t, { t: m } = E(), c = j(), a = S(), l = v(r.headline), o = v(r.caption);
230
- F(
231
- () => r.headline,
232
- (u) => {
233
- l.value = u;
234
- }
235
- ), F(
236
- () => r.caption,
237
- (u) => {
238
- o.value = u;
239
- }
240
- ), M(
241
- "apply-edited-copy",
242
- async ({ headline: u, caption: p }) => {
243
- const h = c.query.id;
244
- h && (await C.updateMarketingMaterial(h, {
245
- headline: u,
246
- caption: p
247
- }), u !== void 0 && (l.value = u), p !== void 0 && (o.value = p));
248
- }
249
- );
250
- function f(u) {
251
- a.activate({
252
- command: "editMarketingBanner",
253
- images: u ? [u] : [],
254
- prompt: "",
255
- params: {
256
- campaignInfo: { headline: r.headline, caption: r.caption }
257
- }
258
- });
259
- }
260
- function x() {
261
- a.activate({
262
- command: "editCopy",
263
- params: {
264
- campaignInfo: {
265
- headline: l.value,
266
- caption: o.value
267
- }
268
- }
269
- });
270
- }
271
- return (u, p) => (n(), d("div", se, [
272
- e("div", le, [
273
- i(oe, {
274
- "image-url": t.imageUrl,
275
- onEdit: f
276
- }, null, 8, ["image-url"])
277
- ]),
278
- e("div", ie, [
279
- e("div", ae, [
280
- e("p", re, g(s(m)("connect.marketing.materialEdit.headline")), 1),
281
- e("div", ce, [
282
- e("p", de, g(s(l)), 1),
283
- i(B, {
284
- text: s(l),
285
- onEditWithRemy: x
286
- }, null, 8, ["text"])
287
- ])
288
- ]),
289
- p[0] || (p[0] = e("div", { class: "border-t border-fm-color-neutral-gray-200" }, null, -1)),
290
- e("div", me, [
291
- e("p", ue, g(s(m)("connect.marketing.materialEdit.caption")), 1),
292
- e("div", pe, [
293
- e("p", fe, g(s(o)), 1),
294
- i(B, {
295
- text: s(o),
296
- onEditWithRemy: x
297
- }, null, 8, ["text"])
298
- ])
299
- ])
300
- ])
301
- ]));
302
- }
303
- }), xe = { class: "flex items-center px-4" }, he = { class: "px-[4px] py-[6px] text-xs text-fm-color-typo-secondary" }, ye = /* @__PURE__ */ _({
304
- __name: "ActionBar",
305
- setup(t) {
306
- const r = [
307
- { icon: "thumb_up", count: "10k+" },
308
- { icon: "mode_comment", count: "128" },
309
- { icon: "share", count: "56" }
310
- ];
311
- return (m, c) => {
312
- const a = y("FmIcon");
313
- return n(), d("div", xe, [
314
- (n(), d(I, null, q(r, (l) => e("button", {
315
- key: l.icon,
316
- class: "flex px-12 py-[6px] items-center justify-center text-fm-color-typo-secondary hover:bg-fm-color-neutral-gray-50 transition-colors fm-typo-en-body-sm-400"
317
- }, [
318
- i(a, {
319
- class: "px-[4px] py-[6px]",
320
- name: l.icon,
321
- size: "md",
322
- color: "neutral-gray-400",
323
- outline: ""
324
- }, null, 8, ["name"]),
325
- e("span", he, g(l.count), 1)
326
- ])), 64))
327
- ]);
328
- };
329
- }
330
- }), _e = { class: "max-w-[500px] mx-auto rounded-lg border border-fm-color-neutral-gray-200 fm-shadow-light-200 overflow-hidden bg-white" }, be = { class: "flex items-center gap-12 px-16 py-12" }, ve = { class: "w-40 h-40 rounded-full bg-fm-color-neutral-gray-200 flex items-center justify-center shrink-0 overflow-hidden" }, we = ["src"], ke = { class: "flex-1 min-w-0" }, $e = { class: "fm-typo-en-body-sm-700 text-fm-color-typo-primary leading-tight font-semibold" }, Ue = { class: "fm-typo-en-body-xs-400 text-fm-color-typo-secondary leading-tight text-xs flex items-center gap-4" }, ze = {
331
- key: 0,
332
- class: "px-16 pb-12"
333
- }, Fe = { class: "fm-typo-en-body-sm-400 text-fm-color-typo-primary whitespace-pre-wrap" }, Ie = { class: "w-full bg-fm-color-neutral-gray-100 overflow-hidden" }, je = ["src"], Ce = {
334
- key: 1,
335
- class: "aspect-square flex items-center justify-center"
336
- }, Te = { class: "px-16 py-12 bg-fm-color-neutral-gray-50 border-t border-fm-color-neutral-gray-200" }, Be = { class: "fm-typo-en-body-sm-700 text-fm-color-typo-primary line-clamp-2" }, Ee = /* @__PURE__ */ _({
337
- __name: "FacebookPostPreview",
338
- props: {
339
- imageUrl: {},
340
- headline: {},
341
- caption: {}
342
- },
343
- setup(t) {
344
- const { currentBusiness: r } = U();
345
- return console.log("currentBusiness", r.value), (m, c) => {
346
- var l, o;
347
- const a = y("FmIcon");
348
- return n(), d("div", _e, [
349
- e("div", be, [
350
- e("div", ve, [
351
- (l = s(r)) != null && l.thumbnail ? (n(), d("img", {
352
- key: 0,
353
- src: s(r).thumbnail,
354
- class: "w-full h-full object-cover",
355
- alt: "Business logo"
356
- }, null, 8, we)) : (n(), w(a, {
357
- key: 1,
358
- name: "storefront",
359
- size: "sm",
360
- color: "neutral-gray-400"
361
- }))
362
- ]),
363
- e("div", ke, [
364
- e("p", $e, g(((o = s(r)) == null ? void 0 : o.name) ?? "Your Business"), 1),
365
- e("p", Ue, [
366
- c[0] || (c[0] = N(" Sponsored · ", -1)),
367
- i(a, {
368
- name: "public",
369
- size: "sm",
370
- color: "neutral-gray-400"
371
- })
372
- ])
373
- ]),
374
- i(a, {
375
- name: "more_horiz",
376
- size: "sm",
377
- color: "neutral-gray-400"
378
- })
379
- ]),
380
- t.caption ? (n(), d("div", ze, [
381
- e("p", Fe, g(t.caption), 1)
382
- ])) : b("", !0),
383
- e("div", Ie, [
384
- t.imageUrl ? (n(), d("img", {
385
- key: 0,
386
- src: t.imageUrl,
387
- alt: "Post image",
388
- class: "w-full h-auto block"
389
- }, null, 8, je)) : (n(), d("div", Ce, [
390
- i(a, {
391
- name: "image",
392
- size: "xl",
393
- color: "neutral-gray-300"
394
- })
395
- ]))
396
- ]),
397
- e("div", Te, [
398
- c[1] || (c[1] = e("p", { class: "fm-typo-en-body-xs-400 text-fm-color-typo-secondary uppercase tracking-wide mb-2" }, " yourbusiness.com ", -1)),
399
- e("p", Be, g(t.headline ?? "—"), 1)
400
- ]),
401
- i(ye)
402
- ]);
403
- };
404
- }
405
- }), Me = { class: "max-w-[300px] mx-auto rounded-2xl overflow-hidden fm-shadow-light-200 relative aspect-[9/16] bg-black" }, Se = ["src"], Pe = {
406
- key: 1,
407
- class: "absolute inset-0 flex items-center justify-center bg-fm-color-neutral-gray-800"
408
- }, Re = { class: "absolute inset-x-0 top-0 px-12 pt-12 pb-24 bg-gradient-to-b from-black/60 to-transparent" }, Ae = { class: "flex items-center gap-8" }, Le = { class: "w-32 h-32 rounded-full bg-fm-color-neutral-gray-200 shrink-0 overflow-hidden border-2 border-white" }, qe = ["src"], Ne = { class: "flex-1 min-w-0" }, Oe = { class: "text-white text-xs font-semibold leading-tight truncate" }, Ve = { class: "absolute inset-x-0 bottom-0 px-16 pb-24 pt-40 bg-gradient-to-t from-black/70 to-transparent" }, We = {
409
- key: 0,
410
- class: "text-white text-xs mb-12 line-clamp-3"
411
- }, Ge = { class: "flex justify-center" }, He = { class: "px-24 py-8 rounded-full bg-white text-fm-color-typo-primary text-xs font-semibold" }, De = /* @__PURE__ */ _({
412
- __name: "FacebookStoryPreview",
413
- props: {
414
- imageUrl: {},
415
- headline: {},
416
- caption: {}
417
- },
418
- setup(t) {
419
- const { currentBusiness: r } = U();
420
- return (m, c) => {
421
- var l, o;
422
- const a = y("FmIcon");
423
- return n(), d("div", Me, [
424
- t.imageUrl ? (n(), d("img", {
425
- key: 0,
426
- src: t.imageUrl,
427
- alt: "Story image",
428
- class: "absolute inset-0 w-full h-full object-contain"
429
- }, null, 8, Se)) : (n(), d("div", Pe, [
430
- i(a, {
431
- name: "image",
432
- size: "xl",
433
- color: "neutral-gray-500"
434
- })
435
- ])),
436
- e("div", Re, [
437
- c[1] || (c[1] = e("div", { class: "flex gap-4 mb-10" }, [
438
- e("div", { class: "h-[2px] flex-1 rounded-full bg-white" })
439
- ], -1)),
440
- e("div", Ae, [
441
- e("div", Le, [
442
- (l = s(r)) != null && l.thumbnail ? (n(), d("img", {
443
- key: 0,
444
- src: s(r).thumbnail,
445
- class: "w-full h-full object-cover",
446
- alt: "Business logo"
447
- }, null, 8, qe)) : (n(), w(a, {
448
- key: 1,
449
- name: "storefront",
450
- size: "sm",
451
- color: "neutral-gray-400"
452
- }))
453
- ]),
454
- e("div", Ne, [
455
- e("p", Oe, g(((o = s(r)) == null ? void 0 : o.name) ?? "Your Business"), 1),
456
- c[0] || (c[0] = e("p", { class: "text-white/70 text-[10px] leading-tight" }, "Sponsored", -1))
457
- ]),
458
- i(a, {
459
- name: "more_vert",
460
- size: "sm",
461
- color: "neutral-white"
462
- }),
463
- i(a, {
464
- name: "close",
465
- size: "sm",
466
- color: "neutral-white"
467
- })
468
- ])
469
- ]),
470
- e("div", Ve, [
471
- t.caption ? (n(), d("p", We, g(t.caption), 1)) : b("", !0),
472
- e("div", Ge, [
473
- e("button", He, g(t.headline ?? "Learn More"), 1)
474
- ])
475
- ])
476
- ]);
477
- };
478
- }
479
- }), Ye = { class: "max-w-[400px] mx-auto rounded-lg border border-fm-color-neutral-gray-200 fm-shadow-light-200 overflow-hidden bg-white" }, Ke = { class: "flex items-center gap-12 px-12 py-10" }, Je = { class: "w-32 h-32 rounded-full bg-gradient-to-tr from-yellow-400 via-pink-500 to-purple-600 p-[2px] shrink-0" }, Qe = { class: "w-full h-full rounded-full bg-white p-[1px] overflow-hidden" }, Xe = ["src"], Ze = {
480
- key: 1,
481
- class: "w-full h-full rounded-full bg-fm-color-neutral-gray-200 flex items-center justify-center"
482
- }, et = { class: "flex-1 min-w-0" }, tt = { class: "text-sm font-semibold text-fm-color-typo-primary leading-tight truncate" }, ot = { class: "w-full bg-fm-color-neutral-gray-100 overflow-hidden" }, nt = ["src"], st = {
483
- key: 1,
484
- class: "aspect-square flex items-center justify-center"
485
- }, lt = { class: "flex items-center gap-12 px-12 pt-10 pb-4" }, it = {
486
- key: 0,
487
- class: "px-12 pb-12"
488
- }, at = { class: "text-xs text-fm-color-typo-primary" }, rt = { class: "font-semibold mr-4" }, ct = { class: "line-clamp-2" }, dt = /* @__PURE__ */ _({
489
- __name: "InstagramPostPreview",
490
- props: {
491
- imageUrl: {},
492
- headline: {},
493
- caption: {}
494
- },
495
- setup(t) {
496
- const { currentBusiness: r } = U();
497
- return (m, c) => {
498
- var l, o, f;
499
- const a = y("FmIcon");
500
- return n(), d("div", Ye, [
501
- e("div", Ke, [
502
- e("div", Je, [
503
- e("div", Qe, [
504
- (l = s(r)) != null && l.thumbnail ? (n(), d("img", {
505
- key: 0,
506
- src: s(r).thumbnail,
507
- class: "w-full h-full object-cover rounded-full",
508
- alt: "Business logo"
509
- }, null, 8, Xe)) : (n(), d("div", Ze, [
510
- i(a, {
511
- name: "storefront",
512
- size: "sm",
513
- color: "neutral-gray-400"
514
- })
515
- ]))
516
- ])
517
- ]),
518
- e("div", et, [
519
- e("p", tt, g(((o = s(r)) == null ? void 0 : o.name) ?? "yourbusiness"), 1),
520
- c[0] || (c[0] = e("p", { class: "text-[10px] text-fm-color-typo-secondary leading-tight" }, " Sponsored ", -1))
521
- ]),
522
- i(a, {
523
- name: "more_horiz",
524
- size: "sm",
525
- color: "neutral-gray-400"
526
- })
527
- ]),
528
- e("div", ot, [
529
- t.imageUrl ? (n(), d("img", {
530
- key: 0,
531
- src: t.imageUrl,
532
- alt: "Post image",
533
- class: "w-full h-auto block"
534
- }, null, 8, nt)) : (n(), d("div", st, [
535
- i(a, {
536
- name: "image",
537
- size: "xl",
538
- color: "neutral-gray-300"
539
- })
540
- ]))
541
- ]),
542
- e("div", lt, [
543
- i(a, {
544
- name: "favorite_border",
545
- size: "md",
546
- color: "neutral-gray-700"
547
- }),
548
- i(a, {
549
- name: "mode_comment",
550
- size: "md",
551
- color: "neutral-gray-700",
552
- outline: ""
553
- }),
554
- i(a, {
555
- name: "send",
556
- size: "md",
557
- color: "neutral-gray-700"
558
- }),
559
- c[1] || (c[1] = e("div", { class: "flex-1" }, null, -1)),
560
- i(a, {
561
- name: "bookmark_border",
562
- size: "md",
563
- color: "neutral-gray-700"
564
- })
565
- ]),
566
- c[2] || (c[2] = e("div", { class: "px-12 pb-4" }, [
567
- e("p", { class: "text-xs font-semibold text-fm-color-typo-primary" }, " 10,428 likes ")
568
- ], -1)),
569
- t.caption || t.headline ? (n(), d("div", it, [
570
- e("p", at, [
571
- e("span", rt, g(((f = s(r)) == null ? void 0 : f.name) ?? "yourbusiness"), 1),
572
- e("span", ct, g(t.caption ?? t.headline), 1)
573
- ])
574
- ])) : b("", !0)
575
- ]);
576
- };
577
- }
578
- }), mt = { class: "max-w-[300px] mx-auto rounded-2xl overflow-hidden fm-shadow-light-200 relative aspect-[9/16] bg-black" }, ut = ["src"], pt = {
579
- key: 1,
580
- class: "absolute inset-0 flex items-center justify-center bg-fm-color-neutral-gray-800"
581
- }, ft = { class: "absolute inset-x-0 top-0 px-12 pt-12 pb-24 bg-gradient-to-b from-black/60 to-transparent" }, gt = { class: "flex items-center gap-8" }, xt = { class: "w-32 h-32 rounded-full p-[2px] bg-gradient-to-tr from-yellow-400 via-pink-500 to-purple-600 shrink-0" }, ht = { class: "w-full h-full rounded-full bg-black/30 overflow-hidden" }, yt = ["src"], _t = {
582
- key: 1,
583
- class: "w-full h-full flex items-center justify-center"
584
- }, bt = { class: "flex-1 min-w-0" }, vt = { class: "text-white text-xs font-semibold leading-tight truncate" }, wt = { class: "absolute inset-x-0 bottom-0 px-16 pb-24 pt-40 bg-gradient-to-t from-black/70 to-transparent" }, kt = {
585
- key: 0,
586
- class: "text-white text-xs mb-12 line-clamp-3"
587
- }, $t = { class: "flex justify-center" }, Ut = { class: "px-24 py-8 rounded-full bg-white text-fm-color-typo-primary text-xs font-semibold" }, zt = /* @__PURE__ */ _({
588
- __name: "InstagramStoryPreview",
589
- props: {
590
- imageUrl: {},
591
- headline: {},
592
- caption: {}
593
- },
594
- setup(t) {
595
- const { currentBusiness: r } = U();
596
- return (m, c) => {
597
- var l, o;
598
- const a = y("FmIcon");
599
- return n(), d("div", mt, [
600
- t.imageUrl ? (n(), d("img", {
601
- key: 0,
602
- src: t.imageUrl,
603
- alt: "Story image",
604
- class: "absolute inset-0 w-full h-full object-contain"
605
- }, null, 8, ut)) : (n(), d("div", pt, [
606
- i(a, {
607
- name: "image",
608
- size: "xl",
609
- color: "neutral-gray-500"
610
- })
611
- ])),
612
- e("div", ft, [
613
- c[1] || (c[1] = e("div", { class: "flex gap-4 mb-10" }, [
614
- e("div", { class: "h-[2px] flex-1 rounded-full bg-white" })
615
- ], -1)),
616
- e("div", gt, [
617
- e("div", xt, [
618
- e("div", ht, [
619
- (l = s(r)) != null && l.thumbnail ? (n(), d("img", {
620
- key: 0,
621
- src: s(r).thumbnail,
622
- class: "w-full h-full object-cover",
623
- alt: "Business logo"
624
- }, null, 8, yt)) : (n(), d("div", _t, [
625
- i(a, {
626
- name: "storefront",
627
- size: "sm",
628
- color: "neutral-gray-400"
629
- })
630
- ]))
631
- ])
632
- ]),
633
- e("div", bt, [
634
- e("p", vt, g(((o = s(r)) == null ? void 0 : o.name) ?? "yourbusiness"), 1),
635
- c[0] || (c[0] = e("p", { class: "text-white/70 text-[10px] leading-tight" }, "Sponsored", -1))
636
- ]),
637
- i(a, {
638
- name: "more_vert",
639
- size: "sm",
640
- color: "neutral-white"
641
- }),
642
- i(a, {
643
- name: "close",
644
- size: "sm",
645
- color: "neutral-white"
646
- })
647
- ])
648
- ]),
649
- e("div", wt, [
650
- t.caption ? (n(), d("p", kt, g(t.caption), 1)) : b("", !0),
651
- e("div", $t, [
652
- e("button", Ut, g(t.headline ?? "Learn More"), 1)
653
- ])
654
- ])
655
- ]);
656
- };
657
- }
658
- }), Ft = { class: "flex gap-24 px-24 py-48 flex-wrap" }, It = { class: "flex-1 min-w-[260px]" }, jt = { class: "flex-1 min-w-[200px]" }, Ct = { class: "flex-1 min-w-[260px]" }, Tt = { class: "flex-1 min-w-[200px]" }, Bt = /* @__PURE__ */ _({
659
- __name: "PreviewTab",
660
- props: {
661
- imageUrl: {},
662
- headline: {},
663
- caption: {}
664
- },
665
- setup(t) {
666
- return (r, m) => (n(), d("div", Ft, [
667
- e("div", It, [
668
- m[0] || (m[0] = e("p", { class: "text-xs font-semibold text-fm-color-typo-secondary uppercase tracking-wide mb-12 text-center" }, " FB Post ", -1)),
669
- i(Ee, {
670
- "image-url": t.imageUrl,
671
- headline: t.headline,
672
- caption: t.caption
673
- }, null, 8, ["image-url", "headline", "caption"])
674
- ]),
675
- e("div", jt, [
676
- m[1] || (m[1] = e("p", { class: "text-xs font-semibold text-fm-color-typo-secondary uppercase tracking-wide mb-12 text-center" }, " FB Story ", -1)),
677
- i(De, {
678
- "image-url": t.imageUrl,
679
- headline: t.headline,
680
- caption: t.caption
681
- }, null, 8, ["image-url", "headline", "caption"])
682
- ]),
683
- e("div", Ct, [
684
- m[2] || (m[2] = e("p", { class: "text-xs font-semibold text-fm-color-typo-secondary uppercase tracking-wide mb-12 text-center" }, " IG Post ", -1)),
685
- i(dt, {
686
- "image-url": t.imageUrl,
687
- headline: t.headline,
688
- caption: t.caption
689
- }, null, 8, ["image-url", "headline", "caption"])
690
- ]),
691
- e("div", Tt, [
692
- m[3] || (m[3] = e("p", { class: "text-xs font-semibold text-fm-color-typo-secondary uppercase tracking-wide mb-12 text-center" }, " IG Story ", -1)),
693
- i(zt, {
694
- "image-url": t.imageUrl,
695
- headline: t.headline,
696
- caption: t.caption
697
- }, null, 8, ["image-url", "headline", "caption"])
698
- ])
699
- ]));
700
- }
701
- }), Et = { class: "px-24 pt-24" }, Gt = /* @__PURE__ */ _({
702
- __name: "MarketingMaterialEdit",
703
- setup(t) {
704
- const { t: r } = E(), m = V(), c = j(), a = S(), l = v(null), o = v(null), f = v(null), x = [
705
- { label: "Overview", value: "overview" },
706
- { label: "Preview", value: "preview" }
707
- ], u = v("overview");
708
- return O(async () => {
709
- const p = c.query.id;
710
- if (!p) return;
711
- const h = await C.getMarketingMaterial(p);
712
- l.value = h.imageUrl, o.value = h.headline, f.value = h.caption;
713
- }), (p, h) => {
714
- const k = y("FmPageHead"), P = y("FmTabs");
715
- return n(), d(I, null, [
716
- i(k, {
717
- title: s(r)("connect.marketing.materialEdit.title"),
718
- class: "xs:hidden",
719
- "onClick:back": h[0] || (h[0] = (T) => s(m).push({ name: s(D)["$connect-MARKETING"] }))
720
- }, null, 8, ["title"]),
721
- e("div", Et, [
722
- i(P, {
723
- "model-value": s(u),
724
- items: x,
725
- "onUpdate:modelValue": h[1] || (h[1] = (T) => u.value = T)
726
- }, null, 8, ["model-value"])
727
- ]),
728
- s(u) === "overview" ? (n(), w(ge, {
729
- key: 0,
730
- "image-url": s(l),
731
- headline: s(o),
732
- caption: s(f)
733
- }, null, 8, ["image-url", "headline", "caption"])) : s(u) === "preview" ? (n(), w(Bt, {
734
- key: 1,
735
- "image-url": s(l),
736
- headline: s(o),
737
- caption: s(f)
738
- }, null, 8, ["image-url", "headline", "caption"])) : b("", !0),
739
- s(a).dialogShowing ? (n(), w(s(W), { key: 2 })) : b("", !0)
740
- ], 64);
741
- };
742
- }
743
- });
744
- export {
745
- Gt as default
746
- };