@feedmepos/mf-connect 0.1.117-prod → 0.1.118-dev

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 (154) hide show
  1. package/README.md +68 -1
  2. package/dist/{App-CAo1izHr.js → App-CBFNBDb2.js} +435 -418
  3. package/dist/AuditLogs-BtSA8b08.js +2016 -0
  4. package/dist/{Bin-DDDfjisJ.js → Bin-CjmS_Tfn.js} +8 -8
  5. package/dist/{Broadcast-BsCulZhE.js → Broadcast-BeePmZa1.js} +22 -21
  6. package/dist/{CampaignAnalytic-CnVYFSkT.js → CampaignAnalytic-CZlnyvOi.js} +7 -7
  7. package/dist/{CampaignTypeDialog.vue_vue_type_script_setup_true_lang-ZTHyZ_0y.js → CampaignTypeDialog.vue_vue_type_script_setup_true_lang-Du3Ah4HP.js} +9 -9
  8. package/dist/{Card-DPyQH9qZ.js → Card-C8SzQQ0z.js} +25 -24
  9. package/dist/{Collections-CZCVA969.js → Collections-BXNWTSZH.js} +197 -185
  10. package/dist/{Credit-BTg364-i.js → Credit-CK0-0yD1.js} +21 -20
  11. package/dist/{DateRangeChip.vue_vue_type_script_setup_true_lang-BJx8K6Ja.js → DateRangeChip.vue_vue_type_script_setup_true_lang-BXYpYC7Y.js} +1 -1
  12. package/dist/EditCampaignSheet.vue_vue_type_script_setup_true_lang-CdpnNDzR.js +4439 -0
  13. package/dist/{EffectSheet.vue_vue_type_style_index_0_lang-CfEnSXzg.js → EffectSheet.vue_vue_type_style_index_0_lang--Oyj3KYg.js} +32 -32
  14. package/dist/{Experience-Bk_eUcSX.js → Experience-CWJaj62g.js} +32 -31
  15. package/dist/{FileSaver.min-CXFiZAp7.js → FileSaver.min-lV9H82L5.js} +1 -1
  16. package/dist/{Game-CBnKpFdl.js → Game-zBV1LYAg.js} +19 -18
  17. package/dist/{GiftCardSetup-q75wNV_F.js → GiftCardSetup-Cnq9353j.js} +75 -75
  18. package/dist/{GoalPickerPanel.vue_vue_type_script_setup_true_lang-Cga0Th2O.js → GoalPickerPanel.vue_vue_type_script_setup_true_lang-CdgSBdrX.js} +7 -7
  19. package/dist/{Goals-Bbbgurfd.js → Goals-Utk08egN.js} +4 -4
  20. package/dist/Grab-DwMmWmbT.js +301 -0
  21. package/dist/{ImageInput.vue_vue_type_script_setup_true_lang-CZS05h1r.js → ImageInput.vue_vue_type_script_setup_true_lang-CNPeU9xm.js} +1 -1
  22. package/dist/{Index-C8_OWllb.js → Index-Bjgs18xf.js} +10 -10
  23. package/dist/{LocationPicker.vue_vue_type_script_setup_true_lang-BlCg-jI7.js → LocationPicker.vue_vue_type_script_setup_true_lang-DWnf4lXH.js} +1 -1
  24. package/dist/{LottieAnimation.vue_vue_type_script_setup_true_lang-CACxChIo.js → LottieAnimation.vue_vue_type_script_setup_true_lang-Dy_oWJaZ.js} +1 -1
  25. package/dist/{LoyaltyDashboard-DJlE0371.js → LoyaltyDashboard-DmUfujX_.js} +15 -15
  26. package/dist/MainLayout-DlDZQJfy.js +4 -0
  27. package/dist/{MainLayout-Bs2UPvFx.js → MainLayout.vue_vue_type_script_setup_true_lang-yAflY70k.js} +5 -4
  28. package/dist/Marketing-B0iKlHP-.js +269 -0
  29. package/dist/MarketingMaterialEdit-BNHxVb8A.js +1037 -0
  30. package/dist/{Member-C4yqwsMH.js → Member-Bcm3_pWB.js} +7 -7
  31. package/dist/{MemberDetailSheet.vue_vue_type_script_setup_true_lang-BbumjyC_.js → MemberDetailSheet.vue_vue_type_script_setup_true_lang-CPp4OpOx.js} +43 -50
  32. package/dist/{MemberImportHistory-CbuXCdxC.js → MemberImportHistory-AQgLzB3g.js} +7 -7
  33. package/dist/{MemberList-CpAepPBe.js → MemberList-CkMTo2uD.js} +103 -105
  34. package/dist/{MemberTransactions-BbpXvsSk.js → MemberTransactions-CxLCVjvw.js} +1 -1
  35. package/dist/{MessageInput.vue_vue_type_script_setup_true_lang-BaWgxbad.js → MessageInput.vue_vue_type_script_setup_true_lang-4N20f8Sj.js} +14 -14
  36. package/dist/{MetricInfoTooltip.vue_vue_type_script_setup_true_lang-CEgMElLo.js → MetricInfoTooltip.vue_vue_type_script_setup_true_lang-DghbYpSQ.js} +1 -1
  37. package/dist/{Mission-Bdb9KVeP.js → Mission-CQS1CoDN.js} +22 -21
  38. package/dist/{Overview-CEiyGMcf.js → Overview-NQ287sgq.js} +23 -22
  39. package/dist/{Overview-D_9JwnFU.js → Overview-UG1IjY7-.js} +145 -144
  40. package/dist/{Point-Bd5cMXQx.js → Point-krMa_mb1.js} +22 -21
  41. package/dist/{Promotion-D9gZDvgR.js → Promotion-vFBmJSti.js} +137 -131
  42. package/dist/{Queue-BnAOL_rp.js → Queue-BusxSPt-.js} +46 -45
  43. package/dist/{Record-D6TWFKe0.js → Record-DjKqn0za.js} +9 -9
  44. package/dist/{Review-DLEgvnc-.js → Review-CqLp8l7U.js} +2 -2
  45. package/dist/ReviewFacebookCallback-D2kMSVFC.js +225 -0
  46. package/dist/{ReviewGoogleCallback-BgAbO3pI.js → ReviewGoogleCallback-B1cHR-o2.js} +5 -5
  47. package/dist/Reward-FeSxgzuS.js +444 -0
  48. package/dist/{RewardGroup.vue_vue_type_script_setup_true_lang-Bt-EqsiH.js → RewardGroup.vue_vue_type_script_setup_true_lang-CCxVjBsO.js} +16 -15
  49. package/dist/RuleGroup.vue_vue_type_script_setup_true_lang-U403emCF.js +1923 -0
  50. package/dist/{Segment-B9Se5FFw.js → Segment-Nj59F9Nr.js} +304 -305
  51. package/dist/{SendCollectionSheet.vue_vue_type_script_setup_true_lang-f7AS5vwv.js → SendCollectionSheet.vue_vue_type_script_setup_true_lang-Kg9m-0DS.js} +31 -30
  52. package/dist/{SendVoucherSheet.vue_vue_type_script_setup_true_lang-3BKA0UFI.js → SendVoucherSheet.vue_vue_type_script_setup_true_lang-BLbDApPL.js} +4 -4
  53. package/dist/Setting-CCIzNxv-.js +574 -0
  54. package/dist/{SettingAdvertisements-CLw-dqiA.js → SettingAdvertisements-CkPyAg5y.js} +12 -12
  55. package/dist/Settings-CYjKGCpa.js +286 -0
  56. package/dist/{Store-B5PPP5zM.js → Store-Bp8Zkzi2.js} +31 -30
  57. package/dist/{StoreRewards-DllyaVBY.js → StoreRewards-DXW5nVyW.js} +15 -15
  58. package/dist/StoreTransactions.vue_vue_type_script_setup_true_lang-BYVezFI2.js +1319 -0
  59. package/dist/TargetLocationInput.vue_vue_type_script_setup_true_lang-CS6b1cM3.js +7007 -0
  60. package/dist/{Tier-M_TApfju.js → Tier-B8Utn9Qb.js} +2576 -687
  61. package/dist/{Title-Cpltm-I2.js → Title-CwaNSFer.js} +94 -92
  62. package/dist/{Transaction-BYfAYRpv.js → Transaction-ieciAdXP.js} +2 -2
  63. package/dist/{UserRuleGroup.vue_vue_type_script_setup_true_lang-BOhfGxVj.js → UserRuleGroup.vue_vue_type_script_setup_true_lang-CMwZl4E6.js} +26 -26
  64. package/dist/{Voucher-DHoyg0YZ.js → Voucher-BKfujj6r.js} +19 -19
  65. package/dist/{VoucherEditor.vue_vue_type_script_setup_true_lang-DWHwM6AJ.js → VoucherEditor.vue_vue_type_script_setup_true_lang-CkH-rNqZ.js} +16 -16
  66. package/dist/WhatsappAccount-D73WDP7a.js +161 -0
  67. package/dist/WhatsappAccountStatusLabel.vue_vue_type_script_setup_true_lang-C3L7vWZE.js +39 -0
  68. package/dist/WhatsappBot-DTWZAXhi.js +878 -0
  69. package/dist/WhatsappBotLogs-DtDcrjs9.js +372 -0
  70. package/dist/WhatsappBotSettings-7_mH9U4y.js +704 -0
  71. package/dist/WhatsappLayout-BVpaFJ8H.js +21 -0
  72. package/dist/WhatsappNotificationGroupDialog.vue_vue_type_script_setup_true_lang-CMeaNKJt.js +261 -0
  73. package/dist/{ZodTextField.vue_vue_type_script_setup_true_lang-B6tTjLAZ.js → ZodTextField.vue_vue_type_script_setup_true_lang-BO1zA9AR.js} +2 -2
  74. package/dist/{app-B_doYklh.js → app-DX7OWVY2.js} +9159 -7383
  75. package/dist/app.js +4 -3
  76. package/dist/{base.export-DmbnT_bp.js → base.export-bamzzexi.js} +2 -2
  77. package/dist/browser-BSAOEeIM.js +1478 -0
  78. package/dist/{business-DdVGtTvx.js → business-D3U9HSu9.js} +1 -1
  79. package/dist/{campaign-jEhKmpKg.js → campaign-BqRf2VUO.js} +121 -94
  80. package/dist/{campaign-CVkA08zl.js → campaign-CKfeN2xN.js} +31 -25
  81. package/dist/{campaign.enum-DWu6-kOo.js → campaign.enum-Dx-Zo68Q.js} +3 -2
  82. package/dist/{campaign.fn-BlgEyeFz.js → campaign.fn-DQe5LZuT.js} +82 -82
  83. package/dist/{collectible.enum-CVLkXKml.js → collectible.enum-Liy2wH3s.js} +1 -1
  84. package/dist/{collection.fn-DLNGTrPf.js → collection.fn-BcGqExuE.js} +2 -2
  85. package/dist/{currency-DKS1md4e.js → currency-sjMYWoI8.js} +1 -1
  86. package/dist/duplicateCampaign-CJF3ZLNd.js +51 -0
  87. package/dist/{effect-Bk-zYexf.js → effect-Cv8ugBR3.js} +1 -1
  88. package/dist/{email-addresses-I9A5iLzf.js → email-addresses-CWqtseTn.js} +2 -2
  89. package/dist/{feature-flag-DQti61iR.js → feature-flag-BIh6MM4i.js} +152 -136
  90. package/dist/google-BQK68wbe.js +5 -0
  91. package/dist/{helper-9cPlo6ae.js → helper-WnxOxoRK.js} +1 -1
  92. package/dist/{index-DuvnRxeo.js → index-5TTGGDnF.js} +1 -1
  93. package/dist/{index-CuyzSc1l.js → index-B3CkAr-6.js} +1 -1
  94. package/dist/{index-cgtAlOl9.js → index-B9XVyhtC.js} +8028 -10767
  95. package/dist/{index-ClYX4COd.js → index-BGguMtc0.js} +4 -3
  96. package/dist/{index-CNUXbXvG.js → index-Bdg48Cus.js} +19 -6
  97. package/dist/{index-fHiFL1dW.js → index-BoAmM8QH.js} +29 -15
  98. package/dist/{index-C-OnJpT8.js → index-BtmVXdRR.js} +1 -1
  99. package/dist/{index-1Cdj34z1.js → index-CDTETsXQ.js} +1 -1
  100. package/dist/index-C_H8jFYf.js +2743 -0
  101. package/dist/{index-BxpbI0GH.js → index-CeafUn1o.js} +7 -7
  102. package/dist/{index-Dj51vqab.js → index-CiSTQhs9.js} +4 -4
  103. package/dist/{index-CIwdXphn.js → index-ClvaVYkG.js} +2700 -2613
  104. package/dist/{index-Cj6oxbl0.js → index-CnsSd5Dg.js} +11 -10
  105. package/dist/{index-oNMFyOGe.js → index-D3yYjyaj.js} +8 -7
  106. package/dist/{index-BRm0LMTo.js → index-DDzi_-Lu.js} +611 -252
  107. package/dist/{index-3V8E9GaZ.js → index-DOgDR_QH.js} +2 -2
  108. package/dist/{index-DOE2VR99.js → index-DqZX-A6e.js} +198 -198
  109. package/dist/{index-vKvGJ4Ve.js → index-DxhNNZ-a.js} +2 -2
  110. package/dist/index-DzYFQGSw.js +74 -0
  111. package/dist/index-I9lmcd2w.js +109 -0
  112. package/dist/{index-728mP6kW.js → index-iiWxryxo.js} +683 -581
  113. package/dist/{index-DWkuIfHy.js → index-qI1yx02a.js} +390 -232
  114. package/dist/{index.esm2017-CsF37oA-.js → index.esm2017-GI2alVO5.js} +177 -177
  115. package/dist/{loading-BJJmTFoe.js → loading-Qx5K2WL0.js} +1 -1
  116. package/dist/{lodash-BMJ6_hsa.js → lodash-CeSjJptg.js} +1 -1
  117. package/dist/{member-import-DrGxVJt9.js → member-import-Cq8G7SsW.js} +6 -5
  118. package/dist/{membership-CAqKihwy.js → membership-BbeavSNs.js} +3 -3
  119. package/dist/{money-Bf9d2ZUH.js → money-D8YIFaGA.js} +1 -1
  120. package/dist/{number-CWXlGZa5.js → number-DAubZ5bt.js} +1 -1
  121. package/dist/objectid-DeXFWDMh.js +145 -0
  122. package/dist/{onboarding-Dn9O7r3a.js → onboarding-SyFxaTJY.js} +25 -25
  123. package/dist/{onboardingSetup-BMkDoGy-.js → onboardingSetup-CLpHlBn8.js} +2 -2
  124. package/dist/{plugins-KDgceFWV.js → plugins-BHuaMEYA.js} +3 -3
  125. package/dist/{MarketingMaterialEdit-o88sdvTM.js → remy-icon-BhUGu2NI.js} +2 -1031
  126. package/dist/{reward-eilGRaXi.js → reward-dYWnmAC8.js} +1 -1
  127. package/dist/{rule-Dr9Zjg_o.js → rule-BVsfOP2h.js} +572 -492
  128. package/dist/style.css +1 -1
  129. package/dist/template-BcdtbhUJ.js +188 -0
  130. package/dist/{timezone-C5CIfvHs.js → timezone-CUc7q5Ii.js} +1 -1
  131. package/dist/{transaction.fn-Cr-FLjh0.js → transaction.fn-jF9u_cBy.js} +2 -2
  132. package/dist/{trigger-B0Fv6wbN.js → trigger-COlbQlaB.js} +8 -8
  133. package/dist/useMarketingMaterialActions-Dq6-gsOW.js +125 -0
  134. package/dist/{usePagination-BcA-imTr.js → usePagination-BYZB6ORK.js} +1 -1
  135. package/dist/{user-DRvLwlBE.js → user-DK7L8VFR.js} +1 -1
  136. package/dist/vue-i18n-CDSTH7g5.js +2365 -0
  137. package/dist/{xlsx-CBObn76o.js → xlsx-CKxXlDzD.js} +224 -224
  138. package/dist/{zod-DWU5EdQV.js → zod-DjtAaF0U.js} +1 -1
  139. package/package.json +6 -2
  140. package/dist/EditCampaignSheet.vue_vue_type_script_setup_true_lang-Ijya9Cho.js +0 -3494
  141. package/dist/Marketing-BvRYzFV8.js +0 -236
  142. package/dist/ReviewFacebookCallback-jVlm2O8f.js +0 -238
  143. package/dist/Reward-DBheQiFu.js +0 -442
  144. package/dist/RuleGroup.vue_vue_type_script_setup_true_lang-CKL8MEld.js +0 -1883
  145. package/dist/Setting-B92JT_Y4.js +0 -2037
  146. package/dist/Settings-BmmM8ZnR.js +0 -179
  147. package/dist/StoreTransactions.vue_vue_type_script_setup_true_lang-3Vvqf6_H.js +0 -1264
  148. package/dist/TargetLocationInput.vue_vue_type_script_setup_true_lang-7ZZ0e5tQ.js +0 -142
  149. package/dist/google-C3S8u0mT.js +0 -4
  150. package/dist/objectid-2DN5a9sY.js +0 -145
  151. package/dist/rule-builder-cz6Dy-no.js +0 -102
  152. package/dist/template-DwbazO8p.js +0 -236
  153. package/dist/useMarketingMaterialActions-CNk3LR9M.js +0 -96
  154. package/dist/vue-i18n-y7bHQpNx.js +0 -2365
package/README.md CHANGED
@@ -20,7 +20,74 @@ pnpm dev
20
20
  pnpm build
21
21
  ```
22
22
 
23
+ ### Feature Flags
24
+
25
+ Connect uses `@feedmepos/feature-flag` directly in the frontend. WhatsApp Bot
26
+ shares the business flag loading used by broadcast channels in
27
+ `src/feature-flag.ts` and uses the `connect_whatsapp_bot` flag.
28
+
29
+ | Feature | Flagsmith key |
30
+ | ------------------- | --------------------------------------- |
31
+ | WhatsApp Bot | `connect_whatsapp_bot` |
32
+ | Broadcast App Inbox | `connect_broadcast_app_inbox_countries` |
33
+ | Broadcast Push | `connect_broadcast_push_countries` |
34
+ | Broadcast WhatsApp | `connect_broadcast_whatsapp_countries` |
35
+
36
+ WhatsApp Bot and broadcast channel flags must be enabled and allow the current
37
+ business country. Their values are
38
+ comma-separated country codes, such as `MY,SG`; an empty value or `*` allows every
39
+ country. Country codes are case-insensitive.
40
+
41
+ Connect checks country lists locally; it does not send country traits to
42
+ Flagsmith. To enable WhatsApp Bot for Malaysia, enable `connect_whatsapp_bot`
43
+ at the environment level and set its value to `MY`. Use `MY,SG` for both countries.
44
+ Country segment rules are not needed for this setup.
45
+
46
+ Connect loads flags on startup and when the selected business changes. Country
47
+ changes re-evaluate the country checks locally. The WhatsApp sidebar entry stays
48
+ hidden and WhatsApp views stay unmounted while flags load. Direct links show a
49
+ loading screen until the check finishes; disabled or failed checks redirect to
50
+ analytics.
51
+
52
+ #### Local setup
53
+
54
+ Set the frontend Flagsmith API key in Connect's local environment, then restart
55
+ the Vite dev server:
56
+
57
+ ```dotenv
58
+ FEATURE_FLAG_API_KEY=<Development environment client key>
59
+ ```
60
+
61
+ This is the same frontend configuration used by broadcast channel flags.
62
+
63
+ #### Enable selected businesses
64
+
65
+ 1. In <https://flagsmith.feedme.farm>, open organisation **Feedme**, project
66
+ **MAIN**, and **Development** for local testing.
67
+ 2. Create or rename the flag to `connect_whatsapp_bot`, disabled by default.
68
+ 3. Open Connect with the desired business selected. The first flag evaluation
69
+ registers that business ID as a Flagsmith identity.
70
+ 4. In **Identities**, find `business-<businessId>` and enable the
71
+ `connect_whatsapp_bot` override. Identity or segment overrides can enable selected
72
+ businesses. Set the effective value to the allowed countries, such as `MY,SG`,
73
+ or `*` for every country; enabling an override still applies this country check.
74
+ 5. Reload Connect, then open `/whatsapp`. To revoke access, disable the override
75
+ and reload.
76
+
77
+ Configure **Production** separately with its frontend API key. This flag controls
78
+ page visibility; existing WhatsApp API permissions continue to apply.
79
+
80
+ #### Verify locally
81
+
82
+ With Connect signed in, inspect the browser's Network tab for the frontend
83
+ Flagsmith request using identity `business-<businessId>`. Verify the WhatsApp Bot
84
+ navigation entry and `/whatsapp` are available only when
85
+ `connect_whatsapp_bot` is enabled and its value allows the selected country.
86
+ Disabled, missing, country-excluded, or failed flag checks keep the
87
+ entry hidden and redirect direct links to analytics.
88
+
23
89
  ### Formatting is with prettier, set default formatter to Prettier
90
+
24
91
  ```json
25
92
  "[typescript]": {
26
93
  "editor.defaultFormatter": "esbenp.prettier-vscode"
@@ -28,4 +95,4 @@ pnpm build
28
95
  "[vue]": {
29
96
  "editor.defaultFormatter": "esbenp.prettier-vscode"
30
97
  }
31
- ```
98
+ ```