@feedmepos/mf-connect 0.1.98-beta.21 → 0.1.98-beta.22

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 (117) hide show
  1. package/dist/{App-B3f8GWoR.js → App-DkvPrOD_.js} +10 -9
  2. package/dist/{AuditLogs-LRHzzpqj.js → AuditLogs-CWYsiJmS.js} +9 -9
  3. package/dist/{Bin-Y761Ua4-.js → Bin-BeuBpKQM.js} +8 -8
  4. package/dist/{Broadcast-CdRuG42N.js → Broadcast-Dm-HdR4q.js} +13 -12
  5. package/dist/CampaignAnalytic-DipDONF1.js +1656 -0
  6. package/dist/{CampaignTypeDialog.vue_vue_type_script_setup_true_lang-CsULDH9l.js → CampaignTypeDialog.vue_vue_type_script_setup_true_lang-D4wbIGp6.js} +6 -5
  7. package/dist/{Card-GZ3ZLnBl.js → Card-i5EhYfDp.js} +18 -18
  8. package/dist/{Collections-B59fL-oS.js → Collections-B4lpotjz.js} +14 -13
  9. package/dist/{Credit-DJxzXBam.js → Credit-DbK_BdJJ.js} +119 -93
  10. package/dist/{EditCampaignSheet.vue_vue_type_script_setup_true_lang-C3d8frgZ.js → EditCampaignSheet.vue_vue_type_script_setup_true_lang-B8Soqc5E.js} +34 -30
  11. package/dist/{EffectSheet.vue_vue_type_style_index_0_lang-DKUFvacX.js → EffectSheet.vue_vue_type_style_index_0_lang-DzdJH_eS.js} +6 -6
  12. package/dist/{Experience-lzpvYFPP.js → Experience-W3vkkzi6.js} +112 -86
  13. package/dist/{FileSaver.min-BXoEv5ve.js → FileSaver.min-BI4NzqgX.js} +1 -1
  14. package/dist/Game-fftjNIOx.js +356 -0
  15. package/dist/{Grab-BQgS104D.js → Grab-CMQ8P4g9.js} +32 -31
  16. package/dist/{ImageInput.vue_vue_type_script_setup_true_lang-Cz9iB9ox.js → ImageInput.vue_vue_type_script_setup_true_lang-DUi11pWY.js} +1 -1
  17. package/dist/{Index-B5UTBbUy.js → Index-Cnztjepd.js} +10 -10
  18. package/dist/{LocationPicker.vue_vue_type_script_setup_true_lang-CLLhy4-v.js → LocationPicker.vue_vue_type_script_setup_true_lang-Dy8WW9eT.js} +1 -1
  19. package/dist/{LottieAnimation.vue_vue_type_script_setup_true_lang-BiIqs4zW.js → LottieAnimation.vue_vue_type_script_setup_true_lang-DTHvv2lB.js} +1 -1
  20. package/dist/LoyaltyDashboard-1gKZWq0g.js +1339 -0
  21. package/dist/{MainLayout-AvQ4_-oT.js → MainLayout-CfKJ6l-r.js} +1 -1
  22. package/dist/{Marketing-Bn1ygF8d.js → Marketing-Dk_nSJuC.js} +4 -4
  23. package/dist/{MarketingMaterialEdit-Cw-VPVqE.js → MarketingMaterialEdit-DnO9DNuB.js} +6 -6
  24. package/dist/{Member-CpEXFHIF.js → Member-CpXKw34e.js} +11 -11
  25. package/dist/{MemberList-gSEw_idJ.js → MemberList-8ppDIsaQ.js} +36 -35
  26. package/dist/{MemberTransactions-DEMzj9-y.js → MemberTransactions-B52DV6hR.js} +1 -1
  27. package/dist/{MessageInput.vue_vue_type_script_setup_true_lang-B4Y5KPpw.js → MessageInput.vue_vue_type_script_setup_true_lang-Di0tBK7t.js} +4400 -4431
  28. package/dist/MetricInfoTooltip.vue_vue_type_script_setup_true_lang-B1Yj3odA.js +38 -0
  29. package/dist/Mission-dT284_xH.js +360 -0
  30. package/dist/{Overview-CMudFYOc.js → Overview-CUXmQ5AN.js} +3 -3
  31. package/dist/{Overview-DjNcF88f.js → Overview-CePgs6nV.js} +18 -18
  32. package/dist/Point-BLr01-Fi.js +288 -0
  33. package/dist/Promotion-BJUWwJir.js +423 -0
  34. package/dist/{Queue-BjoAJoVe.js → Queue-DpjzPA9X.js} +16 -16
  35. package/dist/{Record-CfZFuwy_.js → Record-D5iz3VhQ.js} +9 -9
  36. package/dist/{Review-pIAxbjVU.js → Review-BIDSfZ-d.js} +2 -2
  37. package/dist/{ReviewFacebookCallback-BRW4T-5-.js → ReviewFacebookCallback-Cl4apd5U.js} +5 -5
  38. package/dist/{ReviewGoogleCallback-B-6EojXR.js → ReviewGoogleCallback-CxQ3jv5Z.js} +5 -5
  39. package/dist/{Reward-_pdE2XZp.js → Reward-FhUo0v2c.js} +16 -16
  40. package/dist/{RewardGroup.vue_vue_type_script_setup_true_lang-S5dh0IGc.js → RewardGroup.vue_vue_type_script_setup_true_lang-9Fdl4-Zk.js} +11 -11
  41. package/dist/{RuleGroup.vue_vue_type_script_setup_true_lang-C9B7NmF0.js → RuleGroup.vue_vue_type_script_setup_true_lang-Bh1rez91.js} +16 -15
  42. package/dist/{Segment-B1EMe-LZ.js → Segment-XrwahyNZ.js} +39 -37
  43. package/dist/{SelectItems.vue_vue_type_script_setup_true_lang-DAmjk8b3.js → SelectItems.vue_vue_type_script_setup_true_lang-Bd_O16Eo.js} +2 -2
  44. package/dist/{SendCollectionSheet.vue_vue_type_script_setup_true_lang-C7sgPf8l.js → SendCollectionSheet.vue_vue_type_script_setup_true_lang-CB0bY0pg.js} +12 -12
  45. package/dist/{SendVoucherSheet.vue_vue_type_script_setup_true_lang-DVYTZr_E.js → SendVoucherSheet.vue_vue_type_script_setup_true_lang-B1-fwLJq.js} +4 -4
  46. package/dist/{Setting-CQQ6zacB.js → Setting-Cs5abyWq.js} +40 -40
  47. package/dist/{SettingAdvertisements-9Wl9VWbM.js → SettingAdvertisements-C0NbeiB9.js} +12 -12
  48. package/dist/{Settings-Bvj2ChDR.js → Settings-xdy_sV8_.js} +5 -5
  49. package/dist/{Store-BdUZ22g6.js → Store-BVn4DGJN.js} +21 -21
  50. package/dist/{StoreRewards-DsUS_Lu1.js → StoreRewards-BnEDugiP.js} +15 -15
  51. package/dist/{StoreTransactions.vue_vue_type_script_setup_true_lang-Zw-lIDCN.js → StoreTransactions.vue_vue_type_script_setup_true_lang-B63UqQ0d.js} +21 -21
  52. package/dist/{TargetLocationInput.vue_vue_type_script_setup_true_lang-BECp3eqQ.js → TargetLocationInput.vue_vue_type_script_setup_true_lang-BOIUqr5c.js} +2 -2
  53. package/dist/{Tier-2-mJ3SNK.js → Tier-BdyyZ6S8.js} +36 -34
  54. package/dist/{Title-BjeEDjxl.js → Title-Y7GfS9n5.js} +39 -37
  55. package/dist/{Transaction--U_kJKec.js → Transaction-DF217QY1.js} +2 -2
  56. package/dist/{UserRuleGroup.vue_vue_type_script_setup_true_lang-BkLyvjA5.js → UserRuleGroup.vue_vue_type_script_setup_true_lang-QrbU0JEl.js} +6 -6
  57. package/dist/{Voucher-INa3N_6V.js → Voucher-q9JMtbmK.js} +156 -133
  58. package/dist/{VoucherEditor.vue_vue_type_script_setup_true_lang-4Quzmc7-.js → VoucherEditor.vue_vue_type_script_setup_true_lang-Cm040eE9.js} +12 -12
  59. package/dist/{ZodTextField.vue_vue_type_script_setup_true_lang-CPCnBExY.js → ZodTextField.vue_vue_type_script_setup_true_lang-DibJzz40.js} +2 -2
  60. package/dist/{app-Dlqr-LX4.js → app-BZJkvDm7.js} +3279 -3135
  61. package/dist/app.js +1 -1
  62. package/dist/{business-DWrfGEe_.js → business-akMhlJ-M.js} +1 -1
  63. package/dist/{campaign-DtNt-BqN.js → campaign-BDXIKhhi.js} +74 -96
  64. package/dist/campaign-hm_reShF.js +100 -0
  65. package/dist/{campaign.enum-B9-ZpK0C.js → campaign.enum-Dx-Zo68Q.js} +1 -1
  66. package/dist/{campaign.fn-COxaWmi_.js → campaign.fn-BFI2Flc_.js} +126 -126
  67. package/dist/{collectible.enum-CF0VF-r7.js → collectible.enum-Liy2wH3s.js} +1 -1
  68. package/dist/collection.fn-RUGxb2Zd.js +26 -0
  69. package/dist/{duplicateCampaign-8ciT68QF.js → duplicateCampaign-DsGtbLbP.js} +2 -2
  70. package/dist/{effect-CaSn-84h.js → effect-8iyz8Uq4.js} +1 -1
  71. package/dist/{email-addresses-BiMQ8xIx.js → email-addresses-gyl-C-R_.js} +2 -2
  72. package/dist/{export-BwBNgCo5.js → export-wupBk3du.js} +3 -3
  73. package/dist/{helper-CajV_0CM.js → helper-CaxDAXPt.js} +1 -1
  74. package/dist/{index-CQIciFrH.js → index-BMin5EVt.js} +1 -1
  75. package/dist/{index-CQj9BQlQ.js → index-BO9SkdZr.js} +105 -123
  76. package/dist/index-BOcaalDh.js +146 -0
  77. package/dist/{index-B6ldAC8Y.js → index-BQmxPtoj.js} +1 -1
  78. package/dist/{index-B6tm_U_M.js → index-Bic6MeUk.js} +18 -17
  79. package/dist/{index-D1vhLY7l.js → index-C4drX0Ls.js} +1 -1
  80. package/dist/index-C8cXXcLk.js +45 -0
  81. package/dist/{index-DBUTFa2h.js → index-CG66mIC4.js} +2 -2
  82. package/dist/index-C_H8jFYf.js +2743 -0
  83. package/dist/{index-Bqcfsd4p.js → index-Cw-UC5sx.js} +8 -7
  84. package/dist/{index-D1--K-QL.js → index-D4BfoKjK.js} +1 -1
  85. package/dist/{index-DWBKko92.js → index-DhQlBP7P.js} +6 -6
  86. package/dist/{index-J8pSZ3WO.js → index-Dvf0YXyw.js} +1 -1
  87. package/dist/{index-BP5rdioN.js → index-J3y4ZPL5.js} +8027 -10766
  88. package/dist/{index-CjW6Mj-1.js → index-bZhlsMWI.js} +1 -1
  89. package/dist/{index-B0ohh62P.js → index-xGCLj50g.js} +230 -351
  90. package/dist/{index-D90p28Hr.js → index-yYZu6iPh.js} +205 -229
  91. package/dist/{index.esm2017-QlPanYiW.js → index.esm2017-DgAjf49-.js} +1 -1
  92. package/dist/{loading-CqqkzWSm.js → loading-DIme5B41.js} +1 -1
  93. package/dist/{lodash-DmbW2QhA.js → lodash-ssnk3xgl.js} +1 -1
  94. package/dist/{membership-Dcwyu-rr.js → membership-CNHGvM-v.js} +3 -3
  95. package/dist/{money-DWr1gi--.js → money-CxE1yyP-.js} +1 -1
  96. package/dist/{number-CHhHAd1q.js → number-MuiSu5EH.js} +1 -1
  97. package/dist/{objectid-BsiuHVH8.js → objectid-BKst2tcL.js} +9 -9
  98. package/dist/{plugins-BxmMI8fo.js → plugins-J8P61v6q.js} +3 -3
  99. package/dist/{reward-DX0FjsNT.js → reward-CvyDLx6u.js} +1 -1
  100. package/dist/{rule-DDLcqiHH.js → rule-CidUfHRV.js} +3 -3
  101. package/dist/rule-builder-CzSwZHFX.js +126 -0
  102. package/dist/{template-C0lF82yv.js → template-DDFGgRca.js} +6 -6
  103. package/dist/timezone-C55-EXUa.js +20 -0
  104. package/dist/{trigger-CsJcg_RY.js → trigger-BHmznST2.js} +5 -5
  105. package/dist/{useMarketingMaterialActions-B0iV6YzB.js → useMarketingMaterialActions-CRGy07Kl.js} +3 -3
  106. package/dist/{usePagination-4EISkyGW.js → usePagination-nKd3ToBL.js} +1 -1
  107. package/dist/{user-DZuSeqRY.js → user-CxxLM4oI.js} +1 -1
  108. package/dist/{vue-i18n-BKcwYlp1.js → vue-i18n-BIqCnVyc.js} +300 -300
  109. package/dist/{xlsx-C-7dia55.js → xlsx-CUqEhJg1.js} +1 -1
  110. package/dist/{zod-DPxXVSRw.js → zod-B3g-tD-1.js} +1 -1
  111. package/package.json +1 -1
  112. package/dist/Game-KCxIpXEC.js +0 -330
  113. package/dist/LoyaltyDashboard-DPHWpaNJ.js +0 -1082
  114. package/dist/Mission-DMtpauNQ.js +0 -334
  115. package/dist/Point-CgdTrgXc.js +0 -262
  116. package/dist/Promotion-DDQodFDb.js +0 -397
  117. package/dist/campaign-un9Ji1KF.js +0 -219
@@ -0,0 +1,423 @@
1
+ import { defineComponent as z, ref as C, resolveComponent as p, openBlock as y, createBlock as T, unref as a, isRef as ae, withCtx as O, createElementVNode as i, createVNode as r, computed as ie, h as P, onMounted as se, createElementBlock as L, Fragment as A, renderList as re, resolveDynamicComponent as le, toDisplayString as w } from "vue";
2
+ import { _ as ce } from "./campaign-CpzFl8Vr.js";
3
+ import { useDialog as me, components as B } from "@feedmepos/ui-library";
4
+ import { p as U } from "./plugins-J8P61v6q.js";
5
+ import { u as ue } from "./loading-DIme5B41.js";
6
+ import { u as pe } from "./business-akMhlJ-M.js";
7
+ import { u as de } from "./campaign-hm_reShF.js";
8
+ import { u as fe } from "./vue-i18n-BIqCnVyc.js";
9
+ import { g as q, a as ye, b as K } from "./campaign-BDXIKhhi.js";
10
+ import { c as ge, p as _e } from "./duplicateCampaign-DsGtbLbP.js";
11
+ import { e as E } from "./effect-8iyz8Uq4.js";
12
+ import { c as Q } from "./string-Gcy5IM_H.js";
13
+ import "./index-BMin5EVt.js";
14
+ import { _ as he } from "./EditCampaignSheet.vue_vue_type_script_setup_true_lang-B8Soqc5E.js";
15
+ import { c as g } from "./index-BOcaalDh.js";
16
+ import { u as we } from "./template-DDFGgRca.js";
17
+ import { _ as H } from "./FilterChip.vue_vue_type_script_setup_true_lang-DaU-9GzO.js";
18
+ import { useRouter as be } from "vue-router";
19
+ import { R as ve } from "./app-BZJkvDm7.js";
20
+ const Ce = { class: "space-y-8" }, xe = /* @__PURE__ */ z({
21
+ __name: "QueueSheet",
22
+ emits: ["update:model-value"],
23
+ setup(G, { expose: n, emit: M }) {
24
+ const d = C(!1), b = C([]);
25
+ async function V() {
26
+ d.value = !0;
27
+ const s = await g.getPromotionQueue();
28
+ console.log(s, "jobs"), b.value = s;
29
+ }
30
+ const x = [
31
+ {
32
+ header: "Started At",
33
+ accessorFn: (s) => s.createdAt,
34
+ enableSorting: !0
35
+ },
36
+ {
37
+ header: "Campaigns",
38
+ accessorFn: (s) => s.campaigns
39
+ // cell(props) {
40
+ // const r = props.row.original;
41
+ // return h('div', {
42
+ // innerHTML: r.campaigns.map((c: any) => c.name).join(', '),
43
+ // });
44
+ // },
45
+ }
46
+ ];
47
+ return n({
48
+ showSheet: V
49
+ }), (s, u) => {
50
+ const v = p("FmTable"), I = p("FmSideSheet");
51
+ return y(), T(I, {
52
+ "max-width": 550,
53
+ header: "Promotion Sync Queue",
54
+ modelValue: a(d),
55
+ "onUpdate:modelValue": [
56
+ u[1] || (u[1] = (f) => ae(d) ? d.value = f : null),
57
+ u[2] || (u[2] = (f) => d.value = f)
58
+ ]
59
+ }, {
60
+ default: O(() => [
61
+ i("div", Ce, [
62
+ u[3] || (u[3] = i("div", { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, " Promotion synchronizing to your restaurant(s) is queued here. Depending on the number of campaigns and restaurants, this process may take several minutes. No task displayed here means there are no pending promotions to sync. ", -1)),
63
+ r(v, {
64
+ modelValue: s.tableRef,
65
+ "onUpdate:modelValue": u[0] || (u[0] = (f) => s.tableRef = f),
66
+ "column-filter": s.jobFilters,
67
+ "column-defs": x,
68
+ "row-data": a(b),
69
+ "hide-footer": a(b).length <= 10
70
+ }, null, 8, ["modelValue", "column-filter", "row-data", "hide-footer"])
71
+ ])
72
+ ]),
73
+ _: 1
74
+ }, 8, ["modelValue"]);
75
+ };
76
+ }
77
+ }), Fe = { class: "px-24 flex flex-col gap-y-16" }, ke = { class: "flex items-center justify-between w-full" }, Se = { class: "flex gap-8 overflow-x-auto" }, Pe = { class: "space-y-8" }, Te = { class: "flex w-full gap-4 items-center" }, Oe = { class: "space-y-4" }, Ve = { class: "fm-typo-en-body-lg-600" }, Ie = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, Re = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, Le = { class: "flex items-center gap-8" }, Ae = { class: "flex flex-col gap-16 text-center" }, Be = { class: "fm-typo-en-title-sm-800" }, Me = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, to = /* @__PURE__ */ z({
78
+ __name: "Promotion",
79
+ setup(G) {
80
+ const { t: n } = fe(), M = {
81
+ label: n("connect.promotion.createCampaign"),
82
+ value: "create",
83
+ isPrimary: !0,
84
+ prependIcon: "add"
85
+ }, d = {
86
+ label: "Force sync",
87
+ value: "sync",
88
+ isPrimary: !1,
89
+ prependIcon: "refresh"
90
+ }, b = {
91
+ label: "Queue",
92
+ value: "queue",
93
+ isPrimary: !1,
94
+ prependIcon: "work_history"
95
+ }, V = we("PROMOTION", me()), x = pe(), s = de(), { global: u, minor: v } = ue, I = be(), f = [
96
+ {
97
+ label: "Bill promotion",
98
+ value: "BILL"
99
+ },
100
+ {
101
+ label: "Item promotion",
102
+ value: "ITEM"
103
+ }
104
+ ], c = C({
105
+ searchKey: "",
106
+ location: [],
107
+ effectType: []
108
+ });
109
+ function Y(e) {
110
+ const o = c.value.location;
111
+ return !o || o.length === 0 || !e.targetLocation ? !0 : Array.isArray(o) ? o.some((m) => {
112
+ var l;
113
+ return (l = e == null ? void 0 : e.targetLocation) == null ? void 0 : l.includes(m);
114
+ }) : e.targetLocation.includes(o);
115
+ }
116
+ function J(e) {
117
+ var l, k;
118
+ const o = c.value.effectType;
119
+ if (!o || o.length === 0) return !0;
120
+ const m = (k = (l = e.effect) == null ? void 0 : l.options) == null ? void 0 : k.target;
121
+ return o.includes(m);
122
+ }
123
+ const _ = ie(
124
+ () => s.campaigns.promotion.filter(
125
+ (e) => Y(e) && J(e)
126
+ )
127
+ ), W = [
128
+ {
129
+ header: n("connect.promotion.promotionTitle"),
130
+ accessorFn: (e) => e.name
131
+ },
132
+ {
133
+ header: n("connect.promotion.campaignDate"),
134
+ accessorFn: (e) => q(e)
135
+ },
136
+ {
137
+ header: n("connect.promotion.status"),
138
+ accessorFn: (e) => ye(e),
139
+ cell(e) {
140
+ return K(e.row.original);
141
+ }
142
+ },
143
+ {
144
+ header: n("connect.promotion.type"),
145
+ accessorFn: (e) => `${Q.title(e.effect.options.target)} promotion`
146
+ },
147
+ {
148
+ header: n("connect.promotion.summary"),
149
+ accessorFn: (e) => E(e.effect)
150
+ },
151
+ {
152
+ header: n("connect.promotion.actions"),
153
+ cell(e) {
154
+ return P("div", { class: "flex items-center gap-8 justify-end" }, [
155
+ P(B.FmButton, {
156
+ variant: "tertiary",
157
+ icon: "insights",
158
+ iconColor: "neutral-gray-400",
159
+ onClick: async (o) => {
160
+ o.stopPropagation(), await $(e.row.original);
161
+ }
162
+ }),
163
+ P(B.FmButton, {
164
+ variant: "tertiary",
165
+ icon: "content_copy",
166
+ iconColor: "neutral-gray-400",
167
+ onClick: async (o) => {
168
+ o.stopPropagation(), await j(e.row.original);
169
+ }
170
+ }),
171
+ P(B.FmButton, {
172
+ variant: "tertiary",
173
+ icon: "delete",
174
+ iconColor: "neutral-gray-400",
175
+ onClick: (o) => {
176
+ o.stopPropagation(), D(e.row.original);
177
+ }
178
+ })
179
+ ]);
180
+ }
181
+ }
182
+ ], R = C(), N = C();
183
+ async function D(e) {
184
+ await U.remove(
185
+ n("connect.promotion.confirmRemove", { name: e.name })
186
+ ) && await v(
187
+ async () => {
188
+ await g.delete(e._id), await s.read("PROMOTION");
189
+ },
190
+ {
191
+ message: n("connect.promotion.removing", { name: e.name }),
192
+ successMessage: n("connect.promotion.removedSuccessfully", {
193
+ name: e.name
194
+ })
195
+ }
196
+ );
197
+ }
198
+ async function F(e) {
199
+ e ? await o() : V.open(async (m) => {
200
+ await o(m);
201
+ });
202
+ async function o(m) {
203
+ var l;
204
+ (l = R.value) == null || l.showSheet(
205
+ !0,
206
+ "PROMOTION",
207
+ e ? await g.readById(e._id) : void 0,
208
+ m
209
+ );
210
+ }
211
+ }
212
+ async function $(e) {
213
+ await I.push({
214
+ name: ve["$connect-CAMPAIGN_PROMOTION_ANALYTIC"],
215
+ params: { id: e._id }
216
+ });
217
+ }
218
+ async function j(e) {
219
+ var l;
220
+ if (!await ge(e.name))
221
+ return;
222
+ const o = await g.readById(e._id), m = _e(o);
223
+ (l = R.value) == null || l.showSheet(
224
+ !0,
225
+ "PROMOTION",
226
+ m,
227
+ o.template
228
+ );
229
+ }
230
+ async function X(e) {
231
+ await v(
232
+ async () => {
233
+ e.campaign._id ? await g.update(e.campaign._id, e) : await g.create(e), await s.read("PROMOTION");
234
+ },
235
+ {
236
+ message: n(
237
+ e.campaign._id ? "connect.promotion.updating" : "connect.promotion.creating"
238
+ ),
239
+ successMessage: n(
240
+ e.campaign._id ? "connect.promotion.updatedSuccessfully" : "connect.promotion.createdSuccessfully"
241
+ )
242
+ }
243
+ );
244
+ }
245
+ async function Z(e) {
246
+ var o;
247
+ switch (e) {
248
+ case "create":
249
+ F();
250
+ break;
251
+ case "sync":
252
+ await U.confirm(
253
+ "Are you sure you want to synchronize all promotions to POS?",
254
+ "Force sync"
255
+ ) && v(
256
+ async () => {
257
+ await g.syncAllPromotion();
258
+ },
259
+ {
260
+ message: "Syncing promotions...",
261
+ successMessage: "All promotions synced"
262
+ }
263
+ );
264
+ break;
265
+ case "queue":
266
+ (o = N.value) == null || o.showSheet();
267
+ break;
268
+ }
269
+ }
270
+ return se(async () => {
271
+ await u(async () => {
272
+ await x.readLocations(), await s.read("PROMOTION");
273
+ });
274
+ }), (e, o) => {
275
+ const m = p("FmPageHead"), l = p("FmSearch"), k = p("FmTable"), ee = p("FmChip"), S = p("FmButton"), oe = p("FmListItem"), te = p("FmList"), ne = p("FmCard");
276
+ return y(), L(A, null, [
277
+ r(m, {
278
+ title: a(n)("connect.promotion.title"),
279
+ actions: a(_).length > 0 ? [M, d, b] : [],
280
+ "onClick:action": Z
281
+ }, null, 8, ["title", "actions"]),
282
+ i("div", Fe, [
283
+ r(l, {
284
+ modelValue: c.value.searchKey,
285
+ "onUpdate:modelValue": o[0] || (o[0] = (t) => c.value.searchKey = t),
286
+ class: "hidden xs:!block sm:!block border-b-2 border-fm-color-neutral-gray-100",
287
+ placeholder: a(n)("connect.promotion.search"),
288
+ collapsible: ""
289
+ }, null, 8, ["modelValue", "placeholder"]),
290
+ a(_) && a(_).length > 0 ? (y(), L(A, { key: 0 }, [
291
+ i("div", ke, [
292
+ i("div", Se, [
293
+ r(H, {
294
+ label: `${a(n)("connect.common.location")}: `,
295
+ "right-icon": "keyboard_arrow_down",
296
+ modelValue: c.value.location,
297
+ "onUpdate:modelValue": o[1] || (o[1] = (t) => c.value.location = t),
298
+ icon: "storefront",
299
+ "show-item-label": !0,
300
+ items: a(x).locationOptions
301
+ }, null, 8, ["label", "modelValue", "items"]),
302
+ r(H, {
303
+ label: "Type:",
304
+ "right-icon": "keyboard_arrow_down",
305
+ modelValue: c.value.effectType,
306
+ "onUpdate:modelValue": o[2] || (o[2] = (t) => c.value.effectType = t),
307
+ icon: "filter_list",
308
+ "show-item-label": !0,
309
+ items: f
310
+ }, null, 8, ["modelValue"])
311
+ ]),
312
+ r(l, {
313
+ modelValue: c.value.searchKey,
314
+ "onUpdate:modelValue": o[3] || (o[3] = (t) => c.value.searchKey = t),
315
+ class: "xs:hidden sm:hidden",
316
+ placeholder: "search",
317
+ collapsible: ""
318
+ }, null, 8, ["modelValue"])
319
+ ]),
320
+ r(k, {
321
+ class: "xs:hidden sm:hidden",
322
+ "row-data": a(_),
323
+ "column-defs": W,
324
+ "search-value": c.value.searchKey,
325
+ "column-filter": [],
326
+ onRowClick: o[4] || (o[4] = (t) => F(t.original)),
327
+ "hide-footer": a(_).length < 10
328
+ }, null, 8, ["row-data", "search-value", "hide-footer"]),
329
+ r(te, { class: "hidden xs:!flex sm:!flex flex-col mx-[-24px]" }, {
330
+ default: O(() => [
331
+ (y(!0), L(A, null, re(a(_).filter(
332
+ (t) => t.name.toLowerCase().includes(c.value.searchKey.toLowerCase())
333
+ ), (t) => (y(), T(oe, {
334
+ key: t._id.toString(),
335
+ onClick: (h) => F(t),
336
+ class: "py-12 px-16 flex items-center justify-between border-b border-fm-color-neutral-gray-100"
337
+ }, {
338
+ default: O(() => [
339
+ i("div", Pe, [
340
+ i("div", Te, [
341
+ (y(), T(le(a(K)(t)))),
342
+ r(ee, {
343
+ class: "!text-fm-color-typo-info !bg-fm-color-system-info-100",
344
+ compact: !0,
345
+ label: `${a(Q).title(t.effect.options.target)} promotion`
346
+ }, null, 8, ["label"])
347
+ ]),
348
+ i("div", Oe, [
349
+ i("div", Ve, w(t.name), 1),
350
+ i("div", Ie, w(a(E)(t.effect)), 1),
351
+ i("div", Re, w(a(n)("connect.promotion.campaignDate")) + ": " + w(a(q)(t)), 1)
352
+ ])
353
+ ]),
354
+ i("div", Le, [
355
+ r(S, {
356
+ icon: "insights",
357
+ "icon-color": "neutral-gray-400",
358
+ variant: "tertiary",
359
+ onClick: async (h) => {
360
+ h.stopPropagation(), await $(t);
361
+ }
362
+ }, null, 8, ["onClick"]),
363
+ r(S, {
364
+ icon: "content_copy",
365
+ "icon-color": "neutral-gray-400",
366
+ variant: "tertiary",
367
+ onClick: async (h) => {
368
+ h.stopPropagation(), await j(t);
369
+ }
370
+ }, null, 8, ["onClick"]),
371
+ r(S, {
372
+ icon: "delete",
373
+ "icon-color": "neutral-gray-400",
374
+ variant: "tertiary",
375
+ onClick: (h) => (h.stopPropagation(), D(t))
376
+ }, null, 8, ["onClick"])
377
+ ])
378
+ ]),
379
+ _: 2
380
+ }, 1032, ["onClick"]))), 128))
381
+ ]),
382
+ _: 1
383
+ })
384
+ ], 64)) : (y(), T(ne, {
385
+ key: 1,
386
+ variant: "outlined",
387
+ class: "w-full flex flex-col items-center justify-center gap-y-24 p-24"
388
+ }, {
389
+ default: O(() => [
390
+ o[6] || (o[6] = i("img", {
391
+ src: ce,
392
+ class: "aspect-square w-[150px]"
393
+ }, null, -1)),
394
+ i("div", Ae, [
395
+ i("div", Be, w(a(n)("connect.promotion.createPromotionCampaign")), 1),
396
+ i("div", Me, w(a(n)("connect.promotion.description")), 1)
397
+ ]),
398
+ r(S, {
399
+ variant: "primary",
400
+ label: a(n)("connect.promotion.createPromotionCampaign"),
401
+ icon: "add",
402
+ onClick: o[5] || (o[5] = (t) => F())
403
+ }, null, 8, ["label"])
404
+ ]),
405
+ _: 1
406
+ }))
407
+ ]),
408
+ r(he, {
409
+ ref_key: "sheetRef",
410
+ ref: R,
411
+ "onSubmit:modelValue": X
412
+ }, null, 512),
413
+ r(xe, {
414
+ ref_key: "queueSheetRef",
415
+ ref: N
416
+ }, null, 512)
417
+ ], 64);
418
+ };
419
+ }
420
+ });
421
+ export {
422
+ to as default
423
+ };
@@ -1,19 +1,19 @@
1
- import { defineComponent as h, h as n, ref as A, watch as B, onBeforeMount as U, resolveComponent as V, openBlock as z, createElementBlock as L, Fragment as O, createVNode as m, unref as o, createElementVNode as g } from "vue";
2
- import { u as q, _ as G } from "./usePagination-4EISkyGW.js";
1
+ import { defineComponent as h, h as n, ref as A, watch as B, onBeforeMount as U, resolveComponent as V, openBlock as z, createElementBlock as O, Fragment as q, createVNode as m, unref as o, createElementVNode as g } from "vue";
2
+ import { u as G, _ as L } from "./usePagination-nKd3ToBL.js";
3
3
  import { _ as S } from "./FilterChip.vue_vue_type_script_setup_true_lang-DaU-9GzO.js";
4
4
  import { c as u } from "./string-Gcy5IM_H.js";
5
- import { c as Y } from "./plugins-BxmMI8fo.js";
5
+ import { c as Y } from "./plugins-J8P61v6q.js";
6
6
  import { useDialog as j, components as y } from "@feedmepos/ui-library";
7
- import "./index-B0ohh62P.js";
8
- import { L as c, c as d } from "./index-D90p28Hr.js";
9
- import "./index-B6tm_U_M.js";
10
- import "./index-BP5rdioN.js";
11
- import "./index-Bqcfsd4p.js";
7
+ import "./index-xGCLj50g.js";
8
+ import { K as c, c as d } from "./index-yYZu6iPh.js";
9
+ import "./index-Bic6MeUk.js";
10
+ import "./index-J3y4ZPL5.js";
11
+ import "./index-Cw-UC5sx.js";
12
12
  import { h as b } from "./moment-D7p2TMB-.js";
13
- import { u as W } from "./vue-i18n-BKcwYlp1.js";
14
- import { u as H, v as K, w as Q } from "./index.esm2017-QlPanYiW.js";
13
+ import { u as K } from "./vue-i18n-BIqCnVyc.js";
14
+ import { u as W, v as H, w as Q } from "./index.esm2017-DgAjf49-.js";
15
15
  import { useRoute as $ } from "vue-router";
16
- import { g as J, S as Z, u as X } from "./index-DBUTFa2h.js";
16
+ import { g as J, S as Z, u as X } from "./index-CG66mIC4.js";
17
17
  import { o as ee } from "./objectId-dwaoBfJX.js";
18
18
  const te = () => {
19
19
  if (!Z.getBusinessId()) throw new Error("Invalid business ID");
@@ -31,7 +31,7 @@ var ae = { firebase: { apiKey: "AIzaSyAj8JdCHtP0Vc5vZobCfgoLzWxPIn0WUG4", authDo
31
31
  const re = { class: "p-24 flex flex-col gap-y-2" }, ne = { class: "flex items-center justify-between" }, se = { class: "flex gap-8 items-center w-full overflow-x-scroll" }, xe = /* @__PURE__ */ h({
32
32
  __name: "Queue",
33
33
  setup(p) {
34
- const v = $().query.type, { t: x } = W(), E = j(), C = [
34
+ const v = $().query.type, { t: x } = K(), E = j(), C = [
35
35
  {
36
36
  header: "ID",
37
37
  accessorKey: "_id",
@@ -159,7 +159,7 @@ const re = { class: "p-24 flex flex-col gap-y-2" }, ne = { class: "flex items-ce
159
159
  });
160
160
  }
161
161
  const T = async (t) => {
162
- const e = H(void 0, ae.importFilesBucketUrl), r = K(e, t);
162
+ const e = W(void 0, ae.importFilesBucketUrl), r = H(e, t);
163
163
  return await Q(r);
164
164
  }, R = c.options.map((t) => ({ label: u.title(t), value: t })), s = A({
165
165
  type: v ?? [
@@ -167,7 +167,7 @@ const re = { class: "p-24 flex flex-col gap-y-2" }, ne = { class: "flex items-ce
167
167
  d.enum.SEGMENTATION_IMPORTED
168
168
  ],
169
169
  status: []
170
- }), { tableMeta: i, rowData: P, onSort: k, debouncedFetchData: f } = q(
170
+ }), { tableMeta: i, rowData: P, onSort: k, debouncedFetchData: f } = G(
171
171
  async (t) => {
172
172
  const e = {
173
173
  ...s.value
@@ -199,7 +199,7 @@ const re = { class: "p-24 flex flex-col gap-y-2" }, ne = { class: "flex items-ce
199
199
  await f();
200
200
  }), (t, e) => {
201
201
  const r = V("FmPageHead");
202
- return z(), L(O, null, [
202
+ return z(), O(q, null, [
203
203
  m(r, {
204
204
  title: o(x)("connect.queue.title")
205
205
  }, null, 8, ["title"]),
@@ -235,7 +235,7 @@ const re = { class: "p-24 flex flex-col gap-y-2" }, ne = { class: "flex items-ce
235
235
  }, null, 8, ["modelValue", "items"])
236
236
  ])
237
237
  ]),
238
- m(G, {
238
+ m(L, {
239
239
  loading: o(i).isLoading,
240
240
  "row-data": o(P),
241
241
  "row-count": o(i).totalRows,
@@ -2,19 +2,19 @@ var q = Object.defineProperty;
2
2
  var G = (g, o, m) => o in g ? q(g, o, { enumerable: !0, configurable: !0, writable: !0, value: m }) : g[o] = m;
3
3
  var z = (g, o, m) => G(g, typeof o != "symbol" ? o + "" : o, m);
4
4
  import { defineComponent as T, ref as B, computed as H, resolveComponent as C, openBlock as I, createBlock as J, unref as n, isRef as Q, withCtx as X, createElementBlock as U, createVNode as w, withModifiers as Z, createCommentVNode as ee, createElementVNode as N, h, onMounted as re, Fragment as te } from "vue";
5
- import { u as oe, _ as ae } from "./usePagination-4EISkyGW.js";
6
- import { g as A } from "./user-DZuSeqRY.js";
5
+ import { u as oe, _ as ae } from "./usePagination-nKd3ToBL.js";
6
+ import { g as A } from "./user-CxxLM4oI.js";
7
7
  import { components as R } from "@feedmepos/ui-library";
8
- import "./index-BP5rdioN.js";
9
- import { u as j } from "./vue-i18n-BKcwYlp1.js";
10
- import { u as L } from "./loading-CqqkzWSm.js";
8
+ import "./index-J3y4ZPL5.js";
9
+ import { u as j } from "./vue-i18n-BIqCnVyc.js";
10
+ import { u as L } from "./loading-DIme5B41.js";
11
11
  import { useCoreStore as se } from "@feedmepos/mf-common";
12
- import { r as v } from "./index-D1--K-QL.js";
12
+ import { r as v } from "./index-D4BfoKjK.js";
13
13
  import { c as ie, a as ne } from "./object-BYyQ0PZp.js";
14
- import { u as ce } from "./membership-Dcwyu-rr.js";
14
+ import { u as ce } from "./membership-CNHGvM-v.js";
15
15
  import { c as le } from "./string-Gcy5IM_H.js";
16
- import { c as de } from "./plugins-BxmMI8fo.js";
17
- import { u as V, w as me } from "./xlsx-C-7dia55.js";
16
+ import { c as de } from "./plugins-J8P61v6q.js";
17
+ import { u as V, w as me } from "./xlsx-CUqEhJg1.js";
18
18
  import { e as f } from "./index-vh86FiIQ.js";
19
19
  import { h as ue } from "./moment-D7p2TMB-.js";
20
20
  import { o as pe } from "./objectId-dwaoBfJX.js";
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as d, computed as v, resolveComponent as n, openBlock as f, createElementBlock as E, Fragment as R, createVNode as a, unref as l, createElementVNode as s } from "vue";
2
- import { u as b } from "./vue-i18n-BKcwYlp1.js";
3
- import { R as r } from "./app-Dlqr-LX4.js";
2
+ import { u as b } from "./vue-i18n-BIqCnVyc.js";
3
+ import { R as r } from "./app-BZJkvDm7.js";
4
4
  import { useRouter as V } from "vue-router";
5
5
  const w = { class: "flex flex-col" }, T = { class: "px-24" }, S = /* @__PURE__ */ d({
6
6
  __name: "Review",
@@ -1,10 +1,10 @@
1
1
  import { defineComponent as C, computed as M, openBlock as l, createElementBlock as g, normalizeClass as j, createElementVNode as u, createBlock as T, unref as e, toDisplayString as h, createCommentVNode as S, createVNode as y, onMounted as B, ref as P, Fragment as $, renderList as U, resolveComponent as z, isRef as V } from "vue";
2
- import { u as R } from "./vue-i18n-BKcwYlp1.js";
2
+ import { u as R } from "./vue-i18n-BIqCnVyc.js";
3
3
  import { components as I } from "@feedmepos/ui-library";
4
- import { r as L } from "./index-DWBKko92.js";
5
- import { u as A } from "./business-DWrfGEe_.js";
6
- import { _ as H } from "./LocationPicker.vue_vue_type_script_setup_true_lang-CLLhy4-v.js";
7
- import { R as D } from "./app-Dlqr-LX4.js";
4
+ import { r as L } from "./index-DhQlBP7P.js";
5
+ import { u as A } from "./business-akMhlJ-M.js";
6
+ import { _ as H } from "./LocationPicker.vue_vue_type_script_setup_true_lang-Dy8WW9eT.js";
7
+ import { R as D } from "./app-BZJkvDm7.js";
8
8
  import { useRouter as G } from "vue-router";
9
9
  const O = ["src"], W = { class: "fm-typo-en-body-md-600 flex-1 truncate" }, q = {
10
10
  key: 2,
@@ -1,10 +1,10 @@
1
1
  import { defineComponent as E, onMounted as T, ref as w, computed as B, openBlock as d, createElementBlock as p, Fragment as F, renderList as j, normalizeClass as z, unref as e, createElementVNode as m, createVNode as u, toDisplayString as y, createCommentVNode as S, createBlock as P, resolveComponent as U, isRef as V } from "vue";
2
- import { u as A } from "./vue-i18n-BKcwYlp1.js";
2
+ import { u as A } from "./vue-i18n-BIqCnVyc.js";
3
3
  import { components as v } from "@feedmepos/ui-library";
4
- import { r as C } from "./index-DWBKko92.js";
5
- import { u as H } from "./business-DWrfGEe_.js";
6
- import { _ as D } from "./LocationPicker.vue_vue_type_script_setup_true_lang-CLLhy4-v.js";
7
- import { R as O } from "./app-Dlqr-LX4.js";
4
+ import { r as C } from "./index-DhQlBP7P.js";
5
+ import { u as H } from "./business-akMhlJ-M.js";
6
+ import { _ as D } from "./LocationPicker.vue_vue_type_script_setup_true_lang-Dy8WW9eT.js";
7
+ import { R as O } from "./app-BZJkvDm7.js";
8
8
  import { useRouter as W } from "vue-router";
9
9
  const q = { class: "flex flex-col gap-8" }, J = ["onClick"], K = { class: "fm-typo-en-body-md-600 flex-1 truncate" }, Q = {
10
10
  key: 0,
@@ -1,26 +1,26 @@
1
1
  import { defineComponent as X, ref as x, computed as H, resolveComponent as w, openBlock as b, createBlock as h, unref as t, isRef as Z, withCtx as A, createElementVNode as f, createVNode as d, createCommentVNode as k, createElementBlock as M, Fragment as Y, h as O, onMounted as q, toDisplayString as B } from "vue";
2
2
  import { _ as z } from "./campaign-CpzFl8Vr.js";
3
3
  import { useDialog as Q, components as L } from "@feedmepos/ui-library";
4
- import { u as G } from "./loading-CqqkzWSm.js";
5
- import { u as J, C as ee } from "./membership-Dcwyu-rr.js";
6
- import { f as j, p as te } from "./plugins-BxmMI8fo.js";
7
- import { u as oe } from "./vue-i18n-BKcwYlp1.js";
4
+ import { u as G } from "./loading-DIme5B41.js";
5
+ import { u as J, C as ee } from "./membership-CNHGvM-v.js";
6
+ import { f as j, p as te } from "./plugins-J8P61v6q.js";
7
+ import { u as oe } from "./vue-i18n-BIqCnVyc.js";
8
8
  import { c as ae } from "./object-BYyQ0PZp.js";
9
- import { Z as _ } from "./zod-DPxXVSRw.js";
10
- import "./index-B6tm_U_M.js";
11
- import { F as N } from "./index-Bqcfsd4p.js";
9
+ import { Z as _ } from "./zod-B3g-tD-1.js";
10
+ import "./index-Bic6MeUk.js";
11
+ import { F as N } from "./index-Cw-UC5sx.js";
12
12
  import { useCoreStore as le } from "@feedmepos/mf-common";
13
- import { _ as ne, a as ie } from "./VoucherEditor.vue_vue_type_script_setup_true_lang-4Quzmc7-.js";
14
- import { b as re } from "./EffectSheet.vue_vue_type_style_index_0_lang-DKUFvacX.js";
13
+ import { _ as ne, a as ie } from "./VoucherEditor.vue_vue_type_script_setup_true_lang-Cm040eE9.js";
14
+ import { b as re } from "./EffectSheet.vue_vue_type_style_index_0_lang-DzdJH_eS.js";
15
15
  import { J as K } from "./JsonViewer-v8_C7l5N.js";
16
- import { _ as se } from "./ZodTextField.vue_vue_type_script_setup_true_lang-CPCnBExY.js";
17
- import { i as de } from "./helper-CajV_0CM.js";
18
- import { u as pe, r as P } from "./reward-DX0FjsNT.js";
19
- import "./index-CQIciFrH.js";
20
- import { C as ce } from "./campaign.fn-COxaWmi_.js";
21
- import { e as me } from "./effect-CaSn-84h.js";
16
+ import { _ as se } from "./ZodTextField.vue_vue_type_script_setup_true_lang-DibJzz40.js";
17
+ import { i as de } from "./helper-CaxDAXPt.js";
18
+ import { u as pe, r as P } from "./reward-CvyDLx6u.js";
19
+ import "./index-BMin5EVt.js";
20
+ import { C as ce } from "./campaign.fn-BFI2Flc_.js";
21
+ import { e as me } from "./effect-8iyz8Uq4.js";
22
22
  import { useRouter as ue } from "vue-router";
23
- import { R as ye } from "./app-Dlqr-LX4.js";
23
+ import { R as ye } from "./app-BZJkvDm7.js";
24
24
  const fe = { class: "flex gap-8 items-center justify-start" }, we = /* @__PURE__ */ X({
25
25
  __name: "EditRewardSheet",
26
26
  emits: ["update"],
@@ -1,18 +1,18 @@
1
1
  import { ref as p, defineComponent as T, computed as x, resolveComponent as y, openBlock as U, createBlock as G, unref as e, isRef as $, withCtx as b, createElementVNode as v, createVNode as u, toDisplayString as j } from "vue";
2
- import { u as B } from "./loading-CqqkzWSm.js";
2
+ import { u as B } from "./loading-DIme5B41.js";
3
3
  import { J as P } from "./JsonViewer-v8_C7l5N.js";
4
- import { _ as D } from "./ZodTextField.vue_vue_type_script_setup_true_lang-CPCnBExY.js";
5
- import { _ as I } from "./UserRuleGroup.vue_vue_type_script_setup_true_lang-BkLyvjA5.js";
6
- import { Z as L } from "./zod-DPxXVSRw.js";
4
+ import { _ as D } from "./ZodTextField.vue_vue_type_script_setup_true_lang-DibJzz40.js";
5
+ import { _ as I } from "./UserRuleGroup.vue_vue_type_script_setup_true_lang-QrbU0JEl.js";
6
+ import { Z as L } from "./zod-B3g-tD-1.js";
7
7
  import { u as V } from "./app-wDQR6dpb.js";
8
8
  import { defineStore as N } from "pinia";
9
- import { r as k } from "./index-D1--K-QL.js";
10
- import { d as E } from "./index-B0ohh62P.js";
11
- import "./index-D90p28Hr.js";
12
- import "./index-B6tm_U_M.js";
13
- import "./index-BP5rdioN.js";
14
- import "./index-Bqcfsd4p.js";
15
- import { u as J } from "./vue-i18n-BKcwYlp1.js";
9
+ import { r as k } from "./index-D4BfoKjK.js";
10
+ import { c as E } from "./index-xGCLj50g.js";
11
+ import "./index-yYZu6iPh.js";
12
+ import "./index-Bic6MeUk.js";
13
+ import "./index-J3y4ZPL5.js";
14
+ import "./index-Cw-UC5sx.js";
15
+ import { u as J } from "./vue-i18n-BIqCnVyc.js";
16
16
  import { c as C } from "./object-BYyQ0PZp.js";
17
17
  import { useDialog as Z } from "@feedmepos/ui-library";
18
18
  const A = N("mf-connect-referral", () => {