@feedmepos/mf-connect 0.1.38-beta.2 → 0.1.39-prod

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 (110) hide show
  1. package/dist/Analytic-D8WCDkga.js +427 -0
  2. package/dist/{App-D11A2JY1.js → App-CTnXtg1W.js} +352 -364
  3. package/dist/{Bin-9wV4Ah3M.js → Bin-BY6-bvFj.js} +8 -8
  4. package/dist/{Broadcast-I3BtSk8V.js → Broadcast-5VTEIQAr.js} +40 -40
  5. package/dist/{CampaignTypeDialog.vue_vue_type_script_setup_true_lang-XJqTXbKr.js → CampaignTypeDialog.vue_vue_type_script_setup_true_lang-BuAQxEM4.js} +18 -18
  6. package/dist/{Card-CqALG5RM.js → Card-8ivdV-Qz.js} +159 -159
  7. package/dist/{Collections-rg3SzoUb.js → Collections-CFszRHmE.js} +91 -103
  8. package/dist/{Credit-BNn1sYZv.js → Credit-DFslY__4.js} +74 -74
  9. package/dist/{EditCampaignSheet.vue_vue_type_script_setup_true_lang-PJ8q72XH.js → EditCampaignSheet.vue_vue_type_script_setup_true_lang-BvCLYtJ3.js} +488 -489
  10. package/dist/{EffectSheet.vue_vue_type_style_index_0_lang-Sww7KNle.js → EffectSheet.vue_vue_type_style_index_0_lang-Ci_bp7GH.js} +94 -94
  11. package/dist/{Experience-D_Qm8SUj.js → Experience-BxfiZNlY.js} +41 -41
  12. package/dist/{Game-CKXgXm6Q.js → Game-0FZJcLmj.js} +31 -31
  13. package/dist/ImageInput.vue_vue_type_script_setup_true_lang-ByhTB9Ie.js +144 -0
  14. package/dist/{Index-D4DGfUHd.js → Index-ByeKKbuM.js} +10 -10
  15. package/dist/Marketing-C7F4abzg.js +319 -0
  16. package/dist/{Member-B55vWHDd.js → Member-DP0fLSIV.js} +64 -64
  17. package/dist/MemberList-DFW2bMbr.js +1606 -0
  18. package/dist/MemberOverview-C2n9oJZh.js +58 -0
  19. package/dist/{MemberTransactions-CP5EI-W0.js → MemberTransactions-CW62fvgx.js} +1 -1
  20. package/dist/MessageInput.vue_vue_type_script_setup_true_lang-iJXNbgsB.js +455 -0
  21. package/dist/{Mission-CFvhROuB.js → Mission-DEgQHJw6.js} +21 -21
  22. package/dist/{Overview-4273yNwL.js → Overview-5jDtZKi8.js} +335 -335
  23. package/dist/{Point-B_-_C919.js → Point-D2lB1-xB.js} +41 -41
  24. package/dist/{Promotion-D2S3COxk.js → Promotion-Diz1gIa0.js} +42 -42
  25. package/dist/{Queue-BmS1Oi-C.js → Queue-DIAuq7HG.js} +51 -51
  26. package/dist/{Record-DRBl0M8g.js → Record-T608yda1.js} +9 -9
  27. package/dist/{Reward-8056NmfK.js → Reward-fZzHrHCW.js} +173 -173
  28. package/dist/{RewardGroup.vue_vue_type_script_setup_true_lang-CJ_WC2gV.js → RewardGroup.vue_vue_type_script_setup_true_lang-YOKVfimM.js} +11 -11
  29. package/dist/{RuleGroup.vue_vue_type_script_setup_true_lang-DqNQl_nz.js → RuleGroup.vue_vue_type_script_setup_true_lang-C3_lmBe5.js} +431 -431
  30. package/dist/Segment-DDQIzsrk.js +882 -0
  31. package/dist/{SelectItems.vue_vue_type_script_setup_true_lang-4nNkkklE.js → SelectItems.vue_vue_type_script_setup_true_lang-B5oUf91Q.js} +2 -2
  32. package/dist/{SendCollectionSheet.vue_vue_type_script_setup_true_lang-Dnf2oxOG.js → SendCollectionSheet.vue_vue_type_script_setup_true_lang-C2U6Kzvx.js} +11 -11
  33. package/dist/{SendVoucherSheet.vue_vue_type_script_setup_true_lang-BLYP-5U9.js → SendVoucherSheet.vue_vue_type_script_setup_true_lang-BRmqgxES.js} +3 -3
  34. package/dist/{Setting-BrJfYoru.js → Setting-CQNyXmp4.js} +432 -432
  35. package/dist/{Store-Bpl_4yZW.js → Store-CIA1Rtsg.js} +210 -210
  36. package/dist/StoreRewards-D5zlE6cE.js +423 -0
  37. package/dist/StoreTransactions.vue_vue_type_script_setup_true_lang-BkTYngJ_.js +995 -0
  38. package/dist/{TargetLocationInput.vue_vue_type_script_setup_true_lang-QucRaI08.js → TargetLocationInput.vue_vue_type_script_setup_true_lang-D8l3fQyz.js} +1 -1
  39. package/dist/{Tier-_LnXg3n6.js → Tier-jFXVOje_.js} +106 -106
  40. package/dist/{Title-B7AGStvx.js → Title-DVpZ1YMK.js} +131 -133
  41. package/dist/{Transaction-Chxv6V7u.js → Transaction-BF_wmok6.js} +2 -2
  42. package/dist/{UserRuleGroup.vue_vue_type_script_setup_true_lang-CzXNmobp.js → UserRuleGroup.vue_vue_type_script_setup_true_lang-Cex1Z43W.js} +6 -6
  43. package/dist/{Voucher-C5z2kOq9.js → Voucher-CaBMU5w0.js} +37 -37
  44. package/dist/VoucherEditor.vue_vue_type_script_setup_true_lang-BXt2fLOD.js +419 -0
  45. package/dist/{ZodTextField.vue_vue_type_script_setup_true_lang-BlXzEWA6.js → ZodTextField.vue_vue_type_script_setup_true_lang-CtHjWpUe.js} +1 -1
  46. package/dist/{app-BVojNX0w.js → app-CPhyKlyf.js} +1 -1
  47. package/dist/{app-7cvPyHJ7.js → app-DuIzRGvb.js} +124 -161
  48. package/dist/app.js +3 -4
  49. package/dist/{business-CmxV69wT.js → business-TTvv3aTz.js} +1 -1
  50. package/dist/{campaign-Dq5C_no-.js → campaign-BiMCoAzx.js} +3 -5
  51. package/dist/{campaign-CT_cNJEL.js → campaign-CjEVStN1.js} +9 -9
  52. package/dist/{campaign.enum-dp7yHKzF.js → campaign.enum-DpYmj9jp.js} +1 -1
  53. package/dist/campaign.fn-DJ6J98jS.js +758 -0
  54. package/dist/{collectible.enum-DxbB4DxT.js → collectible.enum-Cgmm_s-C.js} +1 -1
  55. package/dist/{collection.fn-CNZRdUgy.js → collection.fn-BsYCNgfJ.js} +2 -2
  56. package/dist/{dto-CT9zZbv9.js → dto-DgmHIlZ2.js} +4 -4
  57. package/dist/{effect-FIlOEC4H.js → effect-DnAVIDFy.js} +1 -1
  58. package/dist/{email-addresses-Ba7xImfX.js → email-addresses-CMRgb6Uv.js} +1 -1
  59. package/dist/{export-uzjZFNF9.js → export-DtarK6IJ.js} +3 -3
  60. package/dist/{helper-D4sAZde0.js → helper-BKZghMbF.js} +1 -1
  61. package/dist/{index-l2F5MnLF.js → index-2OAcPmuQ.js} +1 -1
  62. package/dist/{index-BI3m1Ehv.js → index-B0YZKHyu.js} +3 -3
  63. package/dist/{index-CH3z92VV.js → index-B5oXFFlO.js} +1 -1
  64. package/dist/{index-CvBcve-r.js → index-BQ3KHJXX.js} +1 -1
  65. package/dist/{index-B9pl4zRZ.js → index-B_893fH7.js} +79 -179
  66. package/dist/{index-CNJLP3D5.js → index-BoR-BOFw.js} +1 -1
  67. package/dist/{index-DNxa8Rqx.js → index-C7rl1eHp.js} +449 -516
  68. package/dist/{index-BXz54M1s.js → index-CBcbwf0k.js} +1 -1
  69. package/dist/{index-CS3Jmojj.js → index-CIztuDE4.js} +2462 -2453
  70. package/dist/{index-D5rvMvzx.js → index-CK67enPK.js} +1 -1
  71. package/dist/index-CuvNtC_M.js +61 -0
  72. package/dist/index-D2uZzjpn.js +44 -0
  73. package/dist/{index-CUfS9Kp1.js → index-DWdAUovq.js} +9 -9
  74. package/dist/{index-CONvJfKv.js → index-DkWcEDHA.js} +1 -1
  75. package/dist/{index-BjU8LVUC.js → index-VHu8hYtE.js} +385 -376
  76. package/dist/{index.esm2017-ATcsD5N4.js → index.esm2017-DkwLmmR_.js} +127 -127
  77. package/dist/{loading-BWGQSrCB.js → loading-BFkEqWR6.js} +1 -1
  78. package/dist/{membership-Cc4OZ8-U.js → membership-D0eN3i_T.js} +3 -3
  79. package/dist/{money-D7p8nfun.js → money-DS9ZQwSP.js} +1 -1
  80. package/dist/{number-CMJjC4qz.js → number-C8Gt93v9.js} +1 -1
  81. package/dist/objectid-Cr99eTPd.js +145 -0
  82. package/dist/{plugins-eQis66QR.js → plugins-DK_ue6Xa.js} +2 -2
  83. package/dist/{reward-DrnzbG20.js → reward-CW2dSLDW.js} +1 -1
  84. package/dist/{rule-CtRxkYXB.js → rule-CebKyXSm.js} +3 -3
  85. package/dist/{rule-builder-Di9RIYHF.js → rule-builder-kQq14RfN.js} +17 -17
  86. package/dist/style.css +1 -1
  87. package/dist/{template-C3UfY0v5.js → template-CxUxlb6-.js} +64 -64
  88. package/dist/{trigger-C9U7Zgad.js → trigger-RqJo06KA.js} +4 -4
  89. package/dist/{usePagination-BeF5K3M7.js → usePagination-JoYaROkV.js} +85 -85
  90. package/dist/{user-D7n9yYmO.js → user-DhV5Iy52.js} +1 -1
  91. package/dist/{vue-i18n-Bz45zC04.js → vue-i18n-BtvUK9hI.js} +419 -419
  92. package/dist/{xlsx-D4S4qbcZ.js → xlsx-WnLDq4qn.js} +381 -381
  93. package/package.json +3 -9
  94. package/dist/Analytic-BjSfI2Ff.js +0 -761
  95. package/dist/AuditLogs-DWCFYoRg.js +0 -1887
  96. package/dist/DateRangeChip.vue_vue_type_script_setup_true_lang-BUzUIIUW.js +0 -58
  97. package/dist/ImageInput.vue_vue_type_script_setup_true_lang-rWUkV9gn.js +0 -144
  98. package/dist/Marketing-Dn9A1vgH.js +0 -20073
  99. package/dist/MemberList-BWTG9Ohy.js +0 -1606
  100. package/dist/MemberOverview-wL_ailso.js +0 -58
  101. package/dist/MessageInput.vue_vue_type_script_setup_true_lang-D--_An-f.js +0 -60279
  102. package/dist/Segment-Bzq-pyhc.js +0 -882
  103. package/dist/StoreRewards-Cu7n7Pjz.js +0 -423
  104. package/dist/StoreTransactions.vue_vue_type_script_setup_true_lang-T3Wo2maC.js +0 -1029
  105. package/dist/VoucherEditor.vue_vue_type_script_setup_true_lang-DdGMrk2C.js +0 -419
  106. package/dist/campaign.fn-BYZgKDN7.js +0 -758
  107. package/dist/index-CsaQJMAR.js +0 -66
  108. package/dist/index-CwsMG2cV.js +0 -56
  109. package/dist/objectid-D5T27iny.js +0 -145
  110. package/dist/remy-vue-client-Cpppk9h-.js +0 -1693
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as d, ref as f, resolveComponent as s, openBlock as t, createElementBlock as v, Fragment as b, createVNode as r, unref as o, createElementVNode as k, createBlock as l, KeepAlive as x, resolveDynamicComponent as m, createCommentVNode as F } from "vue";
2
- import { _ as g, a as y } from "./StoreTransactions.vue_vue_type_script_setup_true_lang-T3Wo2maC.js";
3
- import { u as C } from "./vue-i18n-Bz45zC04.js";
2
+ import { _ as g, a as y } from "./StoreTransactions.vue_vue_type_script_setup_true_lang-BkTYngJ_.js";
3
+ import { u as C } from "./vue-i18n-BtvUK9hI.js";
4
4
  const T = { class: "px-24 flex flex-col gap-y-32 pb-24" }, P = /* @__PURE__ */ d({
5
5
  __name: "Transaction",
6
6
  setup(V) {
@@ -1,11 +1,11 @@
1
1
  import { defineComponent as y, computed as b, openBlock as i, createBlock as R, unref as l, ref as E, watch as k, resolveComponent as h, createElementBlock as g, createElementVNode as B, Fragment as O, renderList as T, createVNode as V, isRef as U, createCommentVNode as v } from "vue";
2
- import "./index-CUfS9Kp1.js";
3
- import { i as C, R as e } from "./rule-builder-Di9RIYHF.js";
4
- import { _ as I } from "./RuleGroup.vue_vue_type_script_setup_true_lang-DqNQl_nz.js";
5
- import { p as N } from "./plugins-eQis66QR.js";
6
- import { u as S } from "./membership-Cc4OZ8-U.js";
2
+ import "./index-DWdAUovq.js";
3
+ import { i as C, R as e } from "./rule-builder-kQq14RfN.js";
4
+ import { _ as I } from "./RuleGroup.vue_vue_type_script_setup_true_lang-C3_lmBe5.js";
5
+ import { p as N } from "./plugins-DK_ue6Xa.js";
6
+ import { u as S } from "./membership-D0eN3i_T.js";
7
7
  import { _ as j } from "./CustomSelect.vue_vue_type_script_setup_true_lang-DLnvDVgf.js";
8
- import { u as x } from "./vue-i18n-Bz45zC04.js";
8
+ import { u as x } from "./vue-i18n-BtvUK9hI.js";
9
9
  const A = /* @__PURE__ */ y({
10
10
  __name: "SegmentConfigurator",
11
11
  props: {
@@ -1,27 +1,30 @@
1
- import { defineComponent as Y, ref as x, computed as ee, h as m, onMounted as oe, resolveComponent as d, openBlock as u, createElementBlock as V, Fragment as S, createVNode as l, unref as t, createElementVNode as c, withCtx as F, renderList as te, createBlock as h, resolveDynamicComponent as ne, toDisplayString as g, createCommentVNode as E } from "vue";
1
+ import { defineComponent as Y, ref as x, computed as ee, h as m, onMounted as oe, resolveComponent as d, openBlock as u, createElementBlock as V, Fragment as S, createVNode as l, unref as t, createElementVNode as c, withCtx as F, renderList as te, createBlock as y, resolveDynamicComponent as ne, toDisplayString as g, createCommentVNode as E } from "vue";
2
2
  import { _ as ae } from "./campaign-CpzFl8Vr.js";
3
3
  import { useDialog as re, components as f } from "@feedmepos/ui-library";
4
4
  import { _ as M } from "./FilterChip.vue_vue_type_script_setup_true_lang-d8rh38tD.js";
5
- import { p as A, a as ce } from "./plugins-eQis66QR.js";
5
+ import { p as A, a as ce } from "./plugins-DK_ue6Xa.js";
6
6
  import { useCoreStore as ie } from "@feedmepos/mf-common";
7
- import { u as se } from "./loading-BWGQSrCB.js";
8
- import { u as le } from "./business-CmxV69wT.js";
9
- import { u as me } from "./campaign-Dq5C_no-.js";
10
- import { g as ue, a as O, b as B } from "./campaign-CT_cNJEL.js";
11
- import "./index-CNJLP3D5.js";
12
- import { u as de } from "./template-C3UfY0v5.js";
13
- import { _ as pe } from "./EditCampaignSheet.vue_vue_type_script_setup_true_lang-PJ8q72XH.js";
14
- import { _ as fe } from "./SendVoucherSheet.vue_vue_type_script_setup_true_lang-BLYP-5U9.js";
15
- import { u as ye } from "./vue-i18n-Bz45zC04.js";
16
- import { T as he } from "./trigger-C9U7Zgad.js";
7
+ import { u as se } from "./loading-BFkEqWR6.js";
8
+ import { u as le } from "./business-TTvv3aTz.js";
9
+ import { u as me } from "./campaign-BiMCoAzx.js";
10
+ import { g as ue, a as O, b as B } from "./campaign-CjEVStN1.js";
11
+ import "./index-BoR-BOFw.js";
12
+ import { u as de } from "./template-CxUxlb6-.js";
13
+ import { _ as pe } from "./EditCampaignSheet.vue_vue_type_script_setup_true_lang-BvCLYtJ3.js";
14
+ import { _ as fe } from "./SendVoucherSheet.vue_vue_type_script_setup_true_lang-BRmqgxES.js";
15
+ import { u as he } from "./vue-i18n-BtvUK9hI.js";
16
+ import { T as ye } from "./trigger-RqJo06KA.js";
17
17
  import { useRouter as ge } from "vue-router";
18
- import { c as w } from "./index-D5rvMvzx.js";
19
- import { R as H } from "./app-7cvPyHJ7.js";
20
- var _e = { authUrl: "https://portal-v2-dev.feedmeapi.com/", slackWebhookUrl: "https://hooks.slack.com/services/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", appUrl: "member.feedmedev.cc", crmUrl: "crm.feedmedev.cc", paymentPortalUrl: "https://portal.feedmedev.cc/payment/payout-account", licensePortalUrl: "https://license.feedmedev.cc/", marketingV1Portal: "https://marketing-v1.feedmedev.cc" };
21
- const ve = { class: "px-24 flex flex-col gap-y-16" }, Ce = { class: "flex items-center justify-between w-full" }, we = { class: "flex gap-8 overflow-x-auto" }, be = { class: "space-y-8" }, ke = { class: "flex w-full gap-4 items-center" }, xe = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, Ve = { class: "space-y-4" }, Se = { class: "fm-typo-en-body-lg-600" }, Fe = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, Le = { class: "flex gap-8 items-center" }, Te = { class: "flex flex-col gap-16 text-center" }, Ue = { class: "fm-typo-en-title-sm-800" }, Pe = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, Je = /* @__PURE__ */ Y({
18
+ import { c as w } from "./index-CK67enPK.js";
19
+ import { R as H } from "./app-DuIzRGvb.js";
20
+ var _e = { authUrl: "https://portal-v2.feedmeapi.com/", slackWebhookUrl: "https://hooks.slack.com/services/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", appUrl: "member.feedme.cc", crmUrl: "crm.feedme.cc", paymentPortalUrl: "https://portal.feedme.cc/payment/payout-account", licensePortalUrl: "https://license.feedme.cc/", marketingV1Portal: "https://marketing-v1.feedme.cc" };
21
+ const ve = { class: "px-24 flex flex-col gap-y-16" }, Ce = { class: "flex items-center justify-between w-full" }, we = { class: "flex gap-8 overflow-x-auto" }, be = { class: "space-y-8" }, ke = { class: "flex w-full gap-4 items-center" }, xe = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, Ve = { class: "space-y-4" }, Se = { class: "fm-typo-en-body-lg-600" }, Fe = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, Le = { class: "flex gap-8 items-center" }, Te = /* @__PURE__ */ c("img", {
22
+ src: ae,
23
+ class: "aspect-square w-[150px]"
24
+ }, null, -1), Ue = { class: "flex flex-col gap-16 text-center" }, Pe = { class: "fm-typo-en-title-sm-800" }, Ie = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, Ye = /* @__PURE__ */ Y({
22
25
  __name: "Voucher",
23
- setup(Ie) {
24
- const { t: a } = ye(), $ = {
26
+ setup(Re) {
27
+ const { t: a } = he(), $ = {
25
28
  label: a("connect.voucher.createCampaign"),
26
29
  value: "create",
27
30
  isPrimary: !0,
@@ -34,7 +37,7 @@ const ve = { class: "px-24 flex flex-col gap-y-16" }, Ce = { class: "flex items-
34
37
  () => p.campaigns.voucher.filter(
35
38
  (e) => q(e) && G(e)
36
39
  )
37
- ), j = he.VOUCHER.map((e) => ({
40
+ ), j = ye.VOUCHER.map((e) => ({
38
41
  label: e.name,
39
42
  value: e.value
40
43
  }));
@@ -285,7 +288,7 @@ const ve = { class: "px-24 flex flex-col gap-y-16" }, Ce = { class: "flex items-
285
288
  default: F(() => [
286
289
  (u(!0), V(S, null, te(t(_).filter(
287
290
  (n) => n.name.toLowerCase().includes(t(i).searchKey.toLowerCase())
288
- ), (n) => (u(), h(Q, {
291
+ ), (n) => (u(), y(Q, {
289
292
  key: n._id.toString(),
290
293
  onClick: (k) => v(n),
291
294
  class: "py-12 px-16 flex items-center justify-between border-b border-fm-color-neutral-gray-100"
@@ -295,7 +298,7 @@ const ve = { class: "px-24 flex flex-col gap-y-16" }, Ce = { class: "flex items-
295
298
  return [
296
299
  c("div", be, [
297
300
  c("div", ke, [
298
- (u(), h(ne(t(O)(n)))),
301
+ (u(), y(ne(t(O)(n)))),
299
302
  c("div", xe, g(((k = n.pf_collectible) == null ? void 0 : k.currentReceive) ?? 0) + " claimed ", 1)
300
303
  ]),
301
304
  c("div", Ve, [
@@ -304,26 +307,26 @@ const ve = { class: "px-24 flex flex-col gap-y-16" }, Ce = { class: "flex items-
304
307
  ])
305
308
  ]),
306
309
  c("div", Le, [
307
- n.event.type === "SIMPLE_CLAIM" ? (u(), h(C, {
310
+ n.event.type === "SIMPLE_CLAIM" ? (u(), y(C, {
308
311
  key: 0,
309
312
  icon: "visibility",
310
313
  "icon-color": "neutral-gray-400",
311
314
  variant: "tertiary",
312
- onClick: async (y) => {
313
- y.stopPropagation(), await t(U).push({
315
+ onClick: async (h) => {
316
+ h.stopPropagation(), await t(U).push({
314
317
  name: t(H)["$connect-CAMPAIGN_VOUCHER_COLLECTIONS"],
315
318
  params: { id: n._id }
316
319
  });
317
320
  }
318
321
  }, null, 8, ["onClick"])) : E("", !0),
319
- n.event.type === "SIMPLE_CLAIM" ? (u(), h(C, {
322
+ n.event.type === "SIMPLE_CLAIM" ? (u(), y(C, {
320
323
  key: 1,
321
324
  icon: "send",
322
325
  "icon-color": "neutral-gray-400",
323
326
  variant: "tertiary",
324
- onClick: (y) => {
327
+ onClick: (h) => {
325
328
  var R;
326
- y.stopPropagation(), (R = t(b)) == null || R.showSheet({
329
+ h.stopPropagation(), (R = t(b)) == null || R.showSheet({
327
330
  campaignId: n._id
328
331
  });
329
332
  }
@@ -332,7 +335,7 @@ const ve = { class: "px-24 flex flex-col gap-y-16" }, Ce = { class: "flex items-
332
335
  icon: "delete",
333
336
  "icon-color": "neutral-gray-400",
334
337
  variant: "tertiary",
335
- onClick: (y) => (y.stopPropagation(), I(n))
338
+ onClick: (h) => (h.stopPropagation(), I(n))
336
339
  }, null, 8, ["onClick"])
337
340
  ])
338
341
  ];
@@ -342,19 +345,16 @@ const ve = { class: "px-24 flex flex-col gap-y-16" }, Ce = { class: "flex items-
342
345
  ]),
343
346
  _: 1
344
347
  })
345
- ], 64)) : (u(), h(J, {
348
+ ], 64)) : (u(), y(J, {
346
349
  key: 1,
347
350
  variant: "outlined",
348
351
  class: "w-full flex flex-col items-center justify-center gap-y-24 p-24"
349
352
  }, {
350
353
  default: F(() => [
351
- o[7] || (o[7] = c("img", {
352
- src: ae,
353
- class: "aspect-square w-[150px]"
354
- }, null, -1)),
355
- c("div", Te, [
356
- c("div", Ue, g(t(a)("connect.voucher.createVoucherCampaign")), 1),
357
- c("div", Pe, g(t(a)("connect.voucher.description")), 1)
354
+ Te,
355
+ c("div", Ue, [
356
+ c("div", Pe, g(t(a)("connect.voucher.createVoucherCampaign")), 1),
357
+ c("div", Ie, g(t(a)("connect.voucher.description")), 1)
358
358
  ]),
359
359
  l(C, {
360
360
  variant: "primary",
@@ -380,5 +380,5 @@ const ve = { class: "px-24 flex flex-col gap-y-16" }, Ce = { class: "flex items-
380
380
  }
381
381
  });
382
382
  export {
383
- Je as default
383
+ Ye as default
384
384
  };
@@ -0,0 +1,419 @@
1
+ import { defineComponent as U, ref as k, resolveComponent as p, openBlock as d, createBlock as h, withCtx as f, renderSlot as q, createVNode as s, createTextVNode as E, toDisplayString as F, createElementVNode as a, computed as N, createElementBlock as O, Fragment as S, renderList as z, unref as e, normalizeClass as J, createCommentVNode as R, resolveDynamicComponent as H } from "vue";
2
+ import { c as X } from "./index-VHu8hYtE.js";
3
+ import { e as K, F as Q } from "./index-DWdAUovq.js";
4
+ import { C as W } from "./membership-D0eN3i_T.js";
5
+ import { Z as g } from "./zod-Bg2FbC-D.js";
6
+ import { _ as Y } from "./SelectItems.vue_vue_type_script_setup_true_lang-B5oUf91Q.js";
7
+ import { u as ee } from "./business-TTvv3aTz.js";
8
+ import { useCoreStore as te } from "@feedmepos/mf-common";
9
+ import { _ as oe } from "./ZodTextField.vue_vue_type_script_setup_true_lang-CtHjWpUe.js";
10
+ import { _ as le } from "./ImageInput.vue_vue_type_script_setup_true_lang-ByhTB9Ie.js";
11
+ import { _ as ae, a as ne } from "./EffectSheet.vue_vue_type_style_index_0_lang-Ci_bp7GH.js";
12
+ import { _ as se } from "./TargetLocationInput.vue_vue_type_script_setup_true_lang-D8l3fQyz.js";
13
+ import { u as me } from "./vue-i18n-BtvUK9hI.js";
14
+ import { i as re } from "./helper-BKZghMbF.js";
15
+ const ie = { class: "flex justify-end gap-8 w-full" }, ue = /* @__PURE__ */ U({
16
+ __name: "MenuSheet",
17
+ props: {
18
+ modelValue: {},
19
+ filterItems: { type: Function }
20
+ },
21
+ emits: ["confirm"],
22
+ setup(l, { emit: $ }) {
23
+ const C = k(), n = k(!1);
24
+ function o() {
25
+ var r;
26
+ (r = C.value) == null || r.onConfirm();
27
+ }
28
+ const y = $;
29
+ return (r, x) => {
30
+ const i = p("FmField"), v = p("FmButton"), I = p("FmSideSheet");
31
+ return d(), h(I, {
32
+ modelValue: n.value,
33
+ "onUpdate:modelValue": x[1] || (x[1] = (b) => n.value = b),
34
+ title: "Select Items",
35
+ "close-button": !1,
36
+ "dismiss-away": !0,
37
+ "max-width": 560
38
+ }, {
39
+ "side-sheet-button": f(() => [
40
+ q(r.$slots, "side-sheet-button", {}, () => [
41
+ s(i, { class: "text-fm-color-typo-tertiary cursor-pointer" }, {
42
+ default: f(() => [
43
+ E(F(r.modelValue.length) + " item(s) selected ", 1)
44
+ ]),
45
+ _: 1
46
+ })
47
+ ])
48
+ ]),
49
+ "side-sheet-footer": f(() => [
50
+ a("div", ie, [
51
+ s(v, {
52
+ variant: "tertiary",
53
+ onClick: x[0] || (x[0] = (b) => n.value = !1),
54
+ label: "Cancel"
55
+ }),
56
+ s(v, {
57
+ variant: "primary",
58
+ onClick: o,
59
+ label: "Confirm"
60
+ })
61
+ ])
62
+ ]),
63
+ default: f(() => [
64
+ s(Y, {
65
+ class: "h-full",
66
+ "max-height": 0,
67
+ ref_key: "selectItemRef",
68
+ ref: C,
69
+ "initial-value": r.modelValue,
70
+ "filter-items": r.filterItems,
71
+ "on-complete": (b) => {
72
+ y("confirm", b), n.value = !1;
73
+ }
74
+ }, null, 8, ["initial-value", "filter-items", "on-complete"])
75
+ ]),
76
+ _: 3
77
+ }, 8, ["modelValue"]);
78
+ };
79
+ }
80
+ }), de = { class: "space-y-24" }, ce = { class: "grid grid-cols-2 gap-16" }, pe = { class: "fm-typo-en-title-sm-800" }, fe = { class: "fm-typo-en-body-lg-400 text-fm-color-typo-secondary" }, ye = { class: "space-y-16" }, ve = /* @__PURE__ */ a("div", { class: "fm-typo-en-body-lg-600" }, "Spending type", -1), be = /* @__PURE__ */ a("div", { class: "fm-typo-en-body-lg-400" }, "Amount spent", -1), ge = { class: "fm-typo-en-body-lg-400 text-fm-color-typo-secondary" }, xe = {
81
+ key: 0,
82
+ class: "xs:!block flex gap-16 items-center pt-8"
83
+ }, Ve = /* @__PURE__ */ a("div", { class: "xs:py-4 text-center" }, "for every", -1), he = { class: "fm-typo-en-body-lg-400" }, _e = { class: "fm-typo-en-body-lg-400 text-fm-color-typo-secondary" }, Fe = {
84
+ key: 0,
85
+ class: "pt-8 space-y-8"
86
+ }, Ce = { class: "flex items-center gap-16 xs:block xs:space-y-8 w-fit" }, Ie = { class: "xs:!block flex gap-16 items-center" }, Oe = /* @__PURE__ */ a("div", { class: "xs:py-4 text-center" }, "for every", -1), Ze = /* @__PURE__ */ U({
87
+ __name: "EarningOptionInput",
88
+ props: {
89
+ modelValue: {
90
+ type: Object
91
+ },
92
+ extras: {
93
+ type: Object
94
+ },
95
+ fixedType: {
96
+ type: Boolean
97
+ },
98
+ errorText: {
99
+ type: String
100
+ }
101
+ },
102
+ emits: ["update:model-value"],
103
+ setup(l, { emit: $ }) {
104
+ var I, b, P;
105
+ const C = ee(), n = l, o = $, y = [
106
+ {
107
+ label: "Based on spending",
108
+ sublabel: "Customers earn rewards based on how much they spend.",
109
+ value: "PROPORTIONAL"
110
+ },
111
+ {
112
+ label: "Fixed amount",
113
+ sublabel: "Customers earn a set amount of rewards for specific actions.",
114
+ value: "FIXED"
115
+ }
116
+ ].filter((c) => {
117
+ var t, _;
118
+ return n.fixedType || ((_ = (t = n.extras) == null ? void 0 : t.campaign) == null ? void 0 : _.event.type) != "BILL_COMPLETED" ? c.value == "FIXED" : !0;
119
+ }), r = N(() => {
120
+ var t, _;
121
+ const c = n.extras && "configs" in n.extras ? n.extras.configs.type : (t = n.extras) == null ? void 0 : t.campaign.type;
122
+ return (((_ = W[c]) == null ? void 0 : _.name) || "reward").toLowerCase();
123
+ }), x = N(() => {
124
+ const c = K.safeParse(n.modelValue);
125
+ return c.success ? [] : c.error.errors;
126
+ });
127
+ function i(c) {
128
+ var t;
129
+ c != ((t = n.modelValue) == null ? void 0 : t.type) && o(
130
+ "update:model-value",
131
+ c === "FIXED" ? {
132
+ type: "FIXED",
133
+ amount: 1
134
+ } : {
135
+ type: "PROPORTIONAL",
136
+ amount: 1,
137
+ every: 1
138
+ }
139
+ );
140
+ }
141
+ const v = k(
142
+ ((I = n.modelValue) == null ? void 0 : I.type) === "PROPORTIONAL" && !!((P = (b = n.modelValue) == null ? void 0 : b.property) != null && P.length) || !1
143
+ );
144
+ return (c, t) => {
145
+ var L, B, D;
146
+ const _ = p("FmCard"), T = p("FmStepperField"), A = p("FmRadio"), j = p("FmPill"), G = p("FmButton"), M = p("FmRadioGroup"), Z = p("FmHelperText");
147
+ return d(), O("div", de, [
148
+ a("div", ce, [
149
+ (d(!0), O(S, null, z(e(y), (m) => {
150
+ var V, u;
151
+ return d(), h(_, {
152
+ variant: "outlined",
153
+ class: J(["p-16 space-y-8 h-full cursor-pointer select-none xs:col-span-2", {
154
+ "col-span-2": e(y).length == 1,
155
+ "border-fm-color-primary bg-fm-color-system-warning-100 hover:border-[var(--fm-color-system-orange-300)]": ((V = l.modelValue) == null ? void 0 : V.type) === m.value,
156
+ "hover:bg-fm-color-opacity-sm": ((u = l.modelValue) == null ? void 0 : u.type) != m.value
157
+ }]),
158
+ onClick: (w) => i(m.value),
159
+ key: m.value
160
+ }, {
161
+ default: f(() => [
162
+ a("div", pe, F(m.label), 1),
163
+ a("div", fe, F(m.sublabel), 1)
164
+ ]),
165
+ _: 2
166
+ }, 1032, ["class", "onClick"]);
167
+ }), 128))
168
+ ]),
169
+ a("div", ye, [
170
+ ((L = l.modelValue) == null ? void 0 : L.type) === "FIXED" ? (d(), h(T, {
171
+ key: 0,
172
+ label: `Receive ${e(r)}(s)`,
173
+ class: "flex-1",
174
+ "model-value": ((B = l.modelValue) == null ? void 0 : B.amount) ?? null,
175
+ "onUpdate:modelValue": t[0] || (t[0] = (m) => o("update:model-value", {
176
+ ...l.modelValue ?? { type: "FIXED" },
177
+ amount: m
178
+ }))
179
+ }, null, 8, ["label", "model-value"])) : ((D = l.modelValue) == null ? void 0 : D.type) === "PROPORTIONAL" ? (d(), O(S, { key: 1 }, [
180
+ ve,
181
+ s(M, {
182
+ "model-value": e(v),
183
+ "onUpdate:modelValue": t[6] || (t[6] = (m) => {
184
+ e(v) != m && (o("update:model-value", {
185
+ ...l.modelValue ?? {
186
+ type: "PROPORTIONAL",
187
+ amount: 1,
188
+ every: 1
189
+ },
190
+ property: m ? [] : void 0,
191
+ every: 1
192
+ }), v.value = m);
193
+ })
194
+ }, {
195
+ default: f(() => [
196
+ s(A, {
197
+ label: "Amount spent",
198
+ sublabel: `Receive ${e(r)} by amount spent`,
199
+ value: !1
200
+ }, {
201
+ label: f(() => {
202
+ var m, V;
203
+ return [
204
+ be,
205
+ a("div", ge, " Receive " + F(e(r)) + " by amount spent ", 1),
206
+ e(v) ? R("", !0) : (d(), O("div", xe, [
207
+ s(T, {
208
+ label: `Receive ${e(r)}(s)`,
209
+ inputmode: "decimal",
210
+ class: "flex-1",
211
+ "model-value": ((m = l.modelValue) == null ? void 0 : m.amount) ?? null,
212
+ "onUpdate:modelValue": t[1] || (t[1] = (u) => o("update:model-value", {
213
+ ...l.modelValue ?? { type: "FIXED" },
214
+ amount: u
215
+ }))
216
+ }, null, 8, ["label", "model-value"]),
217
+ Ve,
218
+ s(T, {
219
+ label: `Amount spend (${e(X.Config).getCountry().currency.symbol})`,
220
+ class: "flex-1",
221
+ inputmode: "decimal",
222
+ "model-value": ((V = l.modelValue) == null ? void 0 : V.every) ?? null,
223
+ "onUpdate:modelValue": t[2] || (t[2] = (u) => o("update:model-value", {
224
+ ...l.modelValue,
225
+ every: u
226
+ }))
227
+ }, {
228
+ prepend: f(() => [
229
+ E(F(e(X.Config).getCountry().currency.symbol), 1)
230
+ ]),
231
+ _: 1
232
+ }, 8, ["label", "model-value"])
233
+ ]))
234
+ ];
235
+ }),
236
+ _: 1
237
+ }, 8, ["sublabel"]),
238
+ s(A, {
239
+ label: "Product bought",
240
+ sublabel: `Receive ${e(r)} by product bought`,
241
+ value: !0,
242
+ disabled: !e(C).isPremium
243
+ }, {
244
+ label: f(() => {
245
+ var m, V;
246
+ return [
247
+ a("div", he, [
248
+ E(" Product bought "),
249
+ s(j, { variant: "premium" })
250
+ ]),
251
+ a("div", _e, " Receive " + F(e(r)) + " by product bought ", 1),
252
+ e(v) ? (d(), O("div", Fe, [
253
+ a("div", Ce, [
254
+ s(ue, {
255
+ "model-value": n.modelValue.property || [],
256
+ onConfirm: t[3] || (t[3] = (u) => o("update:model-value", {
257
+ ...l.modelValue,
258
+ property: u
259
+ }))
260
+ }, {
261
+ "side-sheet-button": f(() => {
262
+ var u, w;
263
+ return [
264
+ s(G, {
265
+ label: (u = n.modelValue.property) != null && u.length ? `${(w = n.modelValue.property) == null ? void 0 : w.length} product(s) selected` : "Select product",
266
+ icon: "link",
267
+ variant: "secondary"
268
+ }, null, 8, ["label"])
269
+ ];
270
+ }),
271
+ _: 1
272
+ }, 8, ["model-value"])
273
+ ]),
274
+ a("div", Ie, [
275
+ s(T, {
276
+ inputmode: "decimal",
277
+ label: `Receive ${e(r)}(s)`,
278
+ class: "flex-1",
279
+ "model-value": ((m = l.modelValue) == null ? void 0 : m.amount) ?? null,
280
+ "onUpdate:modelValue": t[4] || (t[4] = (u) => o("update:model-value", {
281
+ ...l.modelValue ?? { type: "FIXED" },
282
+ amount: u
283
+ }))
284
+ }, null, 8, ["label", "model-value"]),
285
+ Oe,
286
+ s(T, {
287
+ label: "Item purchased",
288
+ class: "flex-1",
289
+ "model-value": ((V = l.modelValue) == null ? void 0 : V.every) ?? null,
290
+ inputmode: "numeric",
291
+ "max-fraction-digits": 0,
292
+ "onUpdate:modelValue": t[5] || (t[5] = (u) => o("update:model-value", {
293
+ ...l.modelValue,
294
+ every: u
295
+ }))
296
+ }, null, 8, ["model-value"])
297
+ ])
298
+ ])) : R("", !0)
299
+ ];
300
+ }),
301
+ _: 1
302
+ }, 8, ["sublabel", "disabled"])
303
+ ]),
304
+ _: 1
305
+ }, 8, ["model-value"])
306
+ ], 64)) : R("", !0)
307
+ ]),
308
+ l.errorText || e(x).length > 0 ? (d(), h(Z, {
309
+ key: 0,
310
+ class: "!mt-4",
311
+ text: l.errorText || e(g).helperText(e(x), ""),
312
+ state: "error"
313
+ }, null, 8, ["text"])) : R("", !0)
314
+ ]);
315
+ };
316
+ }
317
+ }), Re = { class: "fm-typo-en-body-sm-400 text-fm-color-typo-secondary flex items-center justify-between" }, $e = /* @__PURE__ */ a("div", null, "Voucher description should not exceed 200 characters.", -1), Pe = /* @__PURE__ */ a("div", { class: "fm-typo-en-title-sm-800" }, "Discount", -1), Te = /* @__PURE__ */ a("div", { class: "fm-typo-en-title-sm-800 !mb-[-8px]" }, "Usage configuration", -1), ke = /* @__PURE__ */ a("div", { class: "fm-typo-en-title-sm-800 !mb-[-8px]" }, "Availability", -1), qe = /* @__PURE__ */ U({
318
+ __name: "VoucherEditor",
319
+ props: {
320
+ modelValue: {
321
+ type: Object
322
+ },
323
+ rewardImage: {
324
+ type: Object
325
+ }
326
+ },
327
+ emits: ["update:model-value", "update:reward-image"],
328
+ setup(l, { emit: $ }) {
329
+ const { t: C } = me(), o = k(
330
+ l.modelValue ?? re("VOUCHER", {
331
+ business: te().currentBusiness.value._id,
332
+ name: ""
333
+ })
334
+ ), y = Q, r = $;
335
+ return (x, i) => {
336
+ var b, P, c;
337
+ const v = p("FmTextarea"), I = p("FmHelperText");
338
+ return d(), O(S, null, [
339
+ s(oe, {
340
+ modelValue: e(o).name,
341
+ "onUpdate:modelValue": i[0] || (i[0] = (t) => e(o).name = t),
342
+ label: "Voucher name",
343
+ schema: e(g).typeAtPath(e(y), "name", [e(o).type])
344
+ }, null, 8, ["modelValue", "schema"]),
345
+ s(v, {
346
+ class: "!mb-[-16px]",
347
+ modelValue: e(o).description,
348
+ "onUpdate:modelValue": i[1] || (i[1] = (t) => e(o).description = t),
349
+ rules: [e(g).ruleAtPath(e(y), "description", [e(o).type])]
350
+ }, {
351
+ label: f(() => [
352
+ (d(), h(H(
353
+ e(g).toInputLabel(
354
+ e(g).typeAtPath(e(y), "description", [e(o).type]),
355
+ "Voucher description"
356
+ )
357
+ )))
358
+ ]),
359
+ _: 1
360
+ }, 8, ["modelValue", "rules"]),
361
+ a("div", Re, [
362
+ $e,
363
+ a("div", null, F(((b = e(o).description) == null ? void 0 : b.length) ?? 0) + "/200", 1)
364
+ ]),
365
+ s(le, {
366
+ class: "w-1/2 xs:w-2/3",
367
+ "aspect-ratio": "16/9",
368
+ file: l.rewardImage ?? void 0,
369
+ thumbnail: e(o).image ?? void 0,
370
+ "onUpdate:file": i[2] || (i[2] = async (t) => {
371
+ r("update:reward-image", t), t || (e(o).image = null);
372
+ })
373
+ }, {
374
+ label: f(() => [
375
+ (d(), h(H(
376
+ e(g).toInputLabel(
377
+ e(g).typeAtPath(e(y), "image", [e(o).type]),
378
+ "Voucher image"
379
+ )
380
+ )))
381
+ ]),
382
+ _: 1
383
+ }, 8, ["file", "thumbnail"]),
384
+ Pe,
385
+ s(ae, {
386
+ "model-value": e(o).extras.effect,
387
+ "onUpdate:modelValue": i[3] || (i[3] = (t) => e(o).extras.effect = t)
388
+ }, null, 8, ["model-value"]),
389
+ e(o).extras.effect == null ? (d(), h(I, {
390
+ key: 0,
391
+ class: "!mt-8",
392
+ text: e(C)("connect.campaign.common.effect_required"),
393
+ state: "error"
394
+ }, null, 8, ["text"])) : R("", !0),
395
+ Te,
396
+ s(ne, {
397
+ "model-value": e(o).options,
398
+ "no-campaign": e(o).noCampaign,
399
+ "onUpdate:modelValue": i[4] || (i[4] = (t) => e(o).options = t),
400
+ schema: e(g).typeAtPath(e(y), "options", ["VOUCHER"])
401
+ }, null, 8, ["model-value", "no-campaign", "schema"]),
402
+ ke,
403
+ e(o).type === "VOUCHER" ? (d(), h(se, {
404
+ key: 1,
405
+ "model-value": ((c = (P = e(o).extras) == null ? void 0 : P.targetLocation) == null ? void 0 : c.map(String)) ?? null,
406
+ type: "select",
407
+ "onUpdate:modelValue": i[5] || (i[5] = (t) => {
408
+ e(o).extras.targetLocation = t;
409
+ }),
410
+ rules: [e(g).ruleAtPath(e(y), "extras.targetLocation")]
411
+ }, null, 8, ["model-value", "rules"])) : R("", !0)
412
+ ], 64);
413
+ };
414
+ }
415
+ });
416
+ export {
417
+ Ze as _,
418
+ qe as a
419
+ };
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as f, useAttrs as y, resolveComponent as b, openBlock as l, createBlock as v, mergeProps as x, unref as t, createSlots as g, withCtx as h, createElementVNode as a, toDisplayString as n, renderSlot as k, createElementBlock as F, createCommentVNode as S } from "vue";
2
2
  import { Z as d } from "./zod-Bg2FbC-D.js";
3
- import { u as V } from "./vue-i18n-Bz45zC04.js";
3
+ import { u as V } from "./vue-i18n-BtvUK9hI.js";
4
4
  const B = { class: "fm-typo-en-body-lg-400 flex gap-4 text-fm-color-typo-primary items-center" }, C = {
5
5
  key: 0,
6
6
  class: "text-fm-color-typo-tertiary"