@feedmepos/mf-connect 0.1.98-beta.86 → 0.1.98-beta.89

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 (143) hide show
  1. package/README.md +62 -5
  2. package/dist/{App-C3brXgJH.js → App-D4hRwK-o.js} +586 -569
  3. package/dist/{AuditLogs-CknggPMD.js → AuditLogs-D_PrLKVP.js} +13 -13
  4. package/dist/{Bin-BOE-Liwr.js → Bin-DF_1hlo5.js} +8 -8
  5. package/dist/{Broadcast-BStqQOUT.js → Broadcast-D81xkQ0B.js} +12 -12
  6. package/dist/{CampaignAnalytic-Dga32CpH.js → CampaignAnalytic-960oR5Nw.js} +7 -7
  7. package/dist/{CampaignTypeDialog.vue_vue_type_script_setup_true_lang-CldyOaCt.js → CampaignTypeDialog.vue_vue_type_script_setup_true_lang-WOfSfATi.js} +8 -8
  8. package/dist/{Card-CQxp73o4.js → Card-nF9lexRS.js} +23 -23
  9. package/dist/{Collections-BRms0YoR.js → Collections-CJbGLkwm.js} +8 -8
  10. package/dist/{Credit-DW7Vq-01.js → Credit-tfInnpDW.js} +12 -12
  11. package/dist/{DateRangeChip.vue_vue_type_script_setup_true_lang-BXK40fTr.js → DateRangeChip.vue_vue_type_script_setup_true_lang-CAPxB3r7.js} +1 -1
  12. package/dist/{EditCampaignSheet.vue_vue_type_script_setup_true_lang-Bv2r2gFI.js → EditCampaignSheet.vue_vue_type_script_setup_true_lang-BM2UlBtj.js} +35 -36
  13. package/dist/{EffectSheet.vue_vue_type_style_index_0_lang-TBjXJglM.js → EffectSheet.vue_vue_type_style_index_0_lang-BfrzJxWQ.js} +6 -6
  14. package/dist/{Experience-C_H8mmJJ.js → Experience-2uX3ESg5.js} +13 -13
  15. package/dist/{FileSaver.min-C5N6-O4l.js → FileSaver.min-DqWpgesn.js} +1 -1
  16. package/dist/{Game-LgNoMtbs.js → Game-BQtHns1v.js} +13 -13
  17. package/dist/{GiftCardSetup-DmL416w3.js → GiftCardSetup-B4I83SkJ.js} +10 -10
  18. package/dist/{GoalPickerPanel.vue_vue_type_script_setup_true_lang-DqDerUNT.js → GoalPickerPanel.vue_vue_type_script_setup_true_lang-DujMhaOh.js} +7 -7
  19. package/dist/{Goals-D-maM_jj.js → Goals-DSkXACjH.js} +4 -4
  20. package/dist/{Grab-DKbgjw7e.js → Grab-ArpQ-7LU.js} +9 -9
  21. package/dist/{ImageInput.vue_vue_type_script_setup_true_lang-BZ3UDnkx.js → ImageInput.vue_vue_type_script_setup_true_lang-GdfKNEdQ.js} +1 -1
  22. package/dist/{Index-_cZDq1HS.js → Index-Bb8k7ofl.js} +10 -10
  23. package/dist/{LocationPicker.vue_vue_type_script_setup_true_lang-Chm-x4fo.js → LocationPicker.vue_vue_type_script_setup_true_lang-tHLWrX4C.js} +1 -1
  24. package/dist/{LottieAnimation.vue_vue_type_script_setup_true_lang-Ez1QV7ON.js → LottieAnimation.vue_vue_type_script_setup_true_lang-C5E_mvcD.js} +1 -1
  25. package/dist/{LoyaltyDashboard-D1B3MjhC.js → LoyaltyDashboard-C-U8HulY.js} +23 -24
  26. package/dist/MainLayout-TV3HyBYh.js +4 -0
  27. package/dist/{MainLayout.vue_vue_type_script_setup_true_lang-Bf-Kvl5W.js → MainLayout.vue_vue_type_script_setup_true_lang-lO1k_OLo.js} +5 -4
  28. package/dist/{Marketing-C4apg5nO.js → Marketing-CWe_R_3E.js} +4 -4
  29. package/dist/MarketingMaterialEdit-TGP6o6Vv.js +1037 -0
  30. package/dist/{Member-B2W3wm1r.js → Member-DDZ8TLLZ.js} +7 -7
  31. package/dist/{MemberDetailSheet.vue_vue_type_script_setup_true_lang-l3edYke6.js → MemberDetailSheet.vue_vue_type_script_setup_true_lang-CweUf6Iv.js} +24 -24
  32. package/dist/{MemberImportHistory-C3i6ekKS.js → MemberImportHistory-Til1afm1.js} +7 -7
  33. package/dist/{MemberList-CsIsMafE.js → MemberList-uoSeAZlO.js} +14 -14
  34. package/dist/{MemberTransactions-Cdndq5ic.js → MemberTransactions-MxJWI1es.js} +1 -1
  35. package/dist/{MessageInput.vue_vue_type_script_setup_true_lang-BtVvv1xd.js → MessageInput.vue_vue_type_script_setup_true_lang-B4H67Tvb.js} +10 -10
  36. package/dist/{MetricInfoTooltip.vue_vue_type_script_setup_true_lang-DwXsAI7F.js → MetricInfoTooltip.vue_vue_type_script_setup_true_lang-DhHMIgza.js} +1 -1
  37. package/dist/{Mission-Fa1VYYZa.js → Mission-C_hcFlzC.js} +14 -14
  38. package/dist/{Overview-DSmO8LtX.js → Overview-B3ugdY_2.js} +4 -4
  39. package/dist/{Overview-oxeTbsQ8.js → Overview-Bxe-Kfci.js} +21 -21
  40. package/dist/{Point-CWpQn9W_.js → Point-BBVTyXIL.js} +14 -14
  41. package/dist/{Promotion-CoYdDRod.js → Promotion-D-44JTkv.js} +14 -14
  42. package/dist/{Queue-Bij3hgY2.js → Queue-BNjlzhJ_.js} +13 -13
  43. package/dist/{Record-Be2TI_X_.js → Record-C34UZ1q6.js} +9 -9
  44. package/dist/{Review-C-QnIayC.js → Review-C4iuNBR7.js} +2 -2
  45. package/dist/{ReviewFacebookCallback-CPyXfHvB.js → ReviewFacebookCallback-Bsp6WSaQ.js} +5 -5
  46. package/dist/{ReviewGoogleCallback-BPNB0btT.js → ReviewGoogleCallback-Ddqe1tZZ.js} +5 -5
  47. package/dist/{Reward-RyaVdYyZ.js → Reward-CjybtjcT.js} +16 -16
  48. package/dist/{RewardGroup.vue_vue_type_script_setup_true_lang-C2ebKu-S.js → RewardGroup.vue_vue_type_script_setup_true_lang-Do_obBgC.js} +14 -14
  49. package/dist/{RuleGroup.vue_vue_type_script_setup_true_lang-BZ_wN3Gj.js → RuleGroup.vue_vue_type_script_setup_true_lang-BiGexpsh.js} +15 -15
  50. package/dist/{Segment-CE7Ca2Zo.js → Segment-BU5W9wBQ.js} +26 -26
  51. package/dist/{SendCollectionSheet.vue_vue_type_script_setup_true_lang-vODQiSna.js → SendCollectionSheet.vue_vue_type_script_setup_true_lang-Buih6X5R.js} +15 -15
  52. package/dist/{SendVoucherSheet.vue_vue_type_script_setup_true_lang-CgI_qWVw.js → SendVoucherSheet.vue_vue_type_script_setup_true_lang-DN-VwmTf.js} +4 -4
  53. package/dist/{Setting-BC6ir0DR.js → Setting-BsCkMHQZ.js} +14 -14
  54. package/dist/{SettingAdvertisements-DLmxEwdG.js → SettingAdvertisements-CTTFCozw.js} +12 -12
  55. package/dist/{Settings-CF78Ug2K.js → Settings-D3_nrJff.js} +5 -5
  56. package/dist/{Store-CZTZTO1x.js → Store-DRWKc7Q7.js} +29 -30
  57. package/dist/{StoreRewards-BdtlvNcm.js → StoreRewards-_4iqQsak.js} +15 -15
  58. package/dist/{StoreTransactions.vue_vue_type_script_setup_true_lang-DSKYWLE_.js → StoreTransactions.vue_vue_type_script_setup_true_lang-Db4fakO6.js} +25 -25
  59. package/dist/{TargetLocationInput.vue_vue_type_script_setup_true_lang-DsQiBOV4.js → TargetLocationInput.vue_vue_type_script_setup_true_lang-CAO3Ycxn.js} +2 -2
  60. package/dist/{Tier-5eUYHhoX.js → Tier-Cj_4Z8PG.js} +27 -27
  61. package/dist/{Title-ibn2JnRB.js → Title-Bjg44PZP.js} +23 -23
  62. package/dist/{Transaction-BZzL13MU.js → Transaction-DbehbwRK.js} +2 -2
  63. package/dist/{UserRuleGroup.vue_vue_type_script_setup_true_lang-DUv9nFqV.js → UserRuleGroup.vue_vue_type_script_setup_true_lang-DeMdcwb2.js} +6 -6
  64. package/dist/{Voucher-B6qYDcnp.js → Voucher-DARWiV1M.js} +18 -18
  65. package/dist/{VoucherEditor.vue_vue_type_script_setup_true_lang-CI7NwvnH.js → VoucherEditor.vue_vue_type_script_setup_true_lang-BYNjq7K0.js} +12 -12
  66. package/dist/WhatsappAccount-CBx-FoRb.js +158 -0
  67. package/dist/WhatsappAccountStatusLabel.vue_vue_type_script_setup_true_lang-BFUOuRGy.js +39 -0
  68. package/dist/{WhatsappBot-BhrP6JnO.js → WhatsappBot-MSJq0pE4.js} +229 -221
  69. package/dist/WhatsappBotLogs-CEyUngzi.js +372 -0
  70. package/dist/WhatsappBotSettings-NIE8NeN4.js +387 -0
  71. package/dist/{WhatsappBotTickets-DJnC4c2j.js → WhatsappBotTickets-OCmEkzeD.js} +3 -3
  72. package/dist/WhatsappLayout-DLPLalle.js +21 -0
  73. package/dist/WhatsappNotificationGroupDialog.vue_vue_type_script_setup_true_lang-D_bVWePp.js +195 -0
  74. package/dist/{ZodTextField.vue_vue_type_script_setup_true_lang-C2nesHNf.js → ZodTextField.vue_vue_type_script_setup_true_lang-HVcTakep.js} +2 -2
  75. package/dist/{app-C5bfcrJd.js → app-CsPUjtBR.js} +670 -522
  76. package/dist/app.js +1 -1
  77. package/dist/{base.export-0man_ZSH.js → base.export-CSSDz0q9.js} +2 -2
  78. package/dist/{business-BW09R8w1.js → business-BwGS0vma.js} +5 -5
  79. package/dist/{campaign-Dxbvq3Zl.js → campaign-Bw44Blhh.js} +8 -8
  80. package/dist/{campaign-gSM8Uzyl.js → campaign-CwfENerv.js} +2 -2
  81. package/dist/{campaign.fn-CzNJtky2.js → campaign.fn-Bx7g_BvU.js} +31 -31
  82. package/dist/{collection.fn-BVUdafur.js → collection.fn-Ba8-HPHO.js} +2 -2
  83. package/dist/{currency-CcWkcszY.js → currency-CO5xQCxT.js} +1 -1
  84. package/dist/{duplicateCampaign-DDfAc-AY.js → duplicateCampaign-C2FQFuzl.js} +2 -2
  85. package/dist/{effect-Dn7anzDq.js → effect-BUxZHyCk.js} +1 -1
  86. package/dist/{email-addresses-BRRFCqW3.js → email-addresses-CfdqSZi6.js} +2 -2
  87. package/dist/feature-flag-DpIT0Nh2.js +50 -0
  88. package/dist/{helper-DPI5b1e1.js → helper-miVbMaVy.js} +1 -1
  89. package/dist/{index-D9SBKZvv.js → index-BC30mczi.js} +9 -9
  90. package/dist/{index-ZLyACIvN.js → index-Bshl0e-c.js} +2 -2
  91. package/dist/{index-_EvVNmhF.js → index-CMGEBPm-.js} +7746 -5975
  92. package/dist/{index-DtZ450Y-.js → index-CNX6rFiO.js} +3 -3
  93. package/dist/{index-CeDuysyp.js → index-CW07TXqO.js} +2 -2
  94. package/dist/{index-Dv9W26wg.js → index-CYVDCxVj.js} +1 -1
  95. package/dist/{index-Bi4203Wb.js → index-Co3X9LyE.js} +1 -1
  96. package/dist/{index-DPS6iW7Q.js → index-CxzJwolN.js} +1 -1
  97. package/dist/{index-D8rPhlZa.js → index-CyMrx8XA.js} +1 -1
  98. package/dist/{index-KNE2wEbP.js → index-D6RtVzN9.js} +2 -2
  99. package/dist/{index-CoFJoIox.js → index-DIOb3eOI.js} +14 -14
  100. package/dist/{index-BsSqDkI8.js → index-DSwOhkYZ.js} +2 -2
  101. package/dist/{index-U6kp2_A3.js → index-DgnQ18-j.js} +1 -1
  102. package/dist/{index-BBLmqV8g.js → index-Dy7VtHTZ.js} +3 -3
  103. package/dist/{index-xLDLoo67.js → index-L7SBt-2D.js} +19 -13
  104. package/dist/index-RwNlbTO8.js +115 -0
  105. package/dist/{index-BQ-9m3Ro.js → index-Se-R3ekJ.js} +2 -2
  106. package/dist/{index-BLQbc3Rv.js → index-bJ2Ur1Yd.js} +1 -1
  107. package/dist/{index-LSYjttVr.js → index-gP-EJA-Y.js} +2 -2
  108. package/dist/{index-ButxHAMi.js → index-mBHnjwCf.js} +10 -10
  109. package/dist/{index-sVyIf_p-.js → index-nZUfIfsn.js} +4 -4
  110. package/dist/{index.esm2017-DQJ6E2gu.js → index.esm2017-DlOLsAJL.js} +1 -1
  111. package/dist/{loading-DOyd2D4O.js → loading-BEDz7eTi.js} +1 -1
  112. package/dist/{lodash-BLqC3Cwx.js → lodash-Bx7d35Zs.js} +1 -1
  113. package/dist/{member-import-x7Vw0b3w.js → member-import-D4zgQyJX.js} +1 -1
  114. package/dist/{membership-CE9vEP2d.js → membership-VJBDeKcE.js} +2 -2
  115. package/dist/{money-CX-ZAEDu.js → money-Dh0agFMv.js} +1 -1
  116. package/dist/{number-CSungdQc.js → number-D2coZpxW.js} +1 -1
  117. package/dist/{objectid-DwEAf7Cc.js → objectid-DVSB63oC.js} +10 -10
  118. package/dist/{onboarding-BAJgDH9y.js → onboarding-CLwhjKAL.js} +3 -3
  119. package/dist/{onboardingSetup-GvIYNiAE.js → onboardingSetup-78evK8yB.js} +2 -2
  120. package/dist/{plugins-B1AphVoU.js → plugins-CKViI6Y3.js} +3 -3
  121. package/dist/{MarketingMaterialEdit-Dcjzvwfv.js → remy-icon-BhUGu2NI.js} +2 -1034
  122. package/dist/{reward-D2zC58M2.js → reward-Drd9EaxJ.js} +1 -1
  123. package/dist/{rule-CxoPKAlI.js → rule-Dr21X2h0.js} +10 -10
  124. package/dist/{template-KRS1NbWX.js → template-yVg3lQKo.js} +6 -6
  125. package/dist/{timezone-CW8sKc69.js → timezone-CGlmgCYo.js} +1 -1
  126. package/dist/{transaction.fn-Djbx8lHM.js → transaction.fn-outAFFwM.js} +2 -2
  127. package/dist/{trigger-RkjkEHrL.js → trigger-C1GL_8pm.js} +7 -7
  128. package/dist/{useMarketingMaterialActions-BUnl-bFY.js → useMarketingMaterialActions-D8MIFnMy.js} +3 -3
  129. package/dist/{usePagination-vdRzCfJw.js → usePagination-Dlx9q4a8.js} +1 -1
  130. package/dist/useWhatsappAccount-1Yy7aaA9.js +62 -0
  131. package/dist/{user-CamDVkKA.js → user-BtORKvTK.js} +1 -1
  132. package/dist/{vue-i18n-DwgfDwGn.js → vue-i18n-CkZqjA2G.js} +355 -355
  133. package/dist/{xlsx-DkuYe2Jz.js → xlsx-HAQ29LQq.js} +1 -1
  134. package/dist/{zod-BDeUQtCa.js → zod-DByiKRxr.js} +1 -1
  135. package/package.json +1 -1
  136. package/dist/MainLayout-C115sjz6.js +0 -4
  137. package/dist/WhatsappAccount-CodbP5kY.js +0 -342
  138. package/dist/WhatsappAccountStatusLabel.vue_vue_type_script_setup_true_lang-BAgSc0i4.js +0 -97
  139. package/dist/WhatsappBotSettings-CjDKw25J.js +0 -394
  140. package/dist/WhatsappLayout-BgW1ASQE.js +0 -21
  141. package/dist/feature-flag-D2MJ8eLY.js +0 -18
  142. package/dist/index-BVdImOs0.js +0 -1775
  143. package/dist/index-DgkRREfK.js +0 -72
@@ -0,0 +1,372 @@
1
+ import { defineComponent as T, resolveComponent as k, openBlock as l, createElementBlock as d, createElementVNode as s, toDisplayString as i, unref as p, createVNode as _, computed as w, Fragment as M, renderList as V, createCommentVNode as $, normalizeClass as ee, createTextVNode as P, createBlock as I, ref as b, watch as G, onBeforeUnmount as te, withCtx as O } from "vue";
2
+ import { u as E } from "./vue-i18n-CkZqjA2G.js";
3
+ import { useCoreStore as oe } from "@feedmepos/mf-common";
4
+ import { S as ne } from "./index-CMGEBPm-.js";
5
+ import { w as ae } from "./index-L7SBt-2D.js";
6
+ import { _ as se } from "./remy-icon-BhUGu2NI.js";
7
+ import { _ as re } from "./WhatsappNotificationGroupDialog.vue_vue_type_script_setup_true_lang-D_bVWePp.js";
8
+ import { C as U } from "./timezone-CGlmgCYo.js";
9
+ import { m as le } from "./index-DgnQ18-j.js";
10
+ const ce = { class: "group self-end min-w-[min(280px,100%)] max-w-[80%] rounded-[12px] rounded-br-[4px] bg-fm-color-neutral-gray-100 text-fm-color-typo-secondary" }, ie = { class: "flex items-center gap-[4px] min-h-[28px] px-[10px] py-[4px] text-[11px] font-medium cursor-pointer list-none rounded-[12px] focus-visible:outline-fm-color-primary" }, pe = { class: "flex-1 group-open:hidden" }, ue = { class: "flex-1 hidden group-open:inline" }, me = { class: "px-[10px] pt-[2px] pb-[8px] text-[13px] leading-[18px] whitespace-pre-wrap break-words" }, de = /* @__PURE__ */ T({
11
+ __name: "ThoughtBubble",
12
+ props: {
13
+ text: {}
14
+ },
15
+ setup(m) {
16
+ const { t: v } = E();
17
+ return (n, g) => {
18
+ const c = k("FmIcon");
19
+ return l(), d("details", ce, [
20
+ s("summary", ie, [
21
+ g[0] || (g[0] = s("img", {
22
+ src: se,
23
+ alt: "",
24
+ "aria-hidden": "true",
25
+ class: "w-[16px] h-[16px] shrink-0"
26
+ }, null, -1)),
27
+ s("span", pe, i(p(v)("connect.whatsappBot.logs.thought")), 1),
28
+ s("span", ue, i(p(v)("connect.whatsappBot.logs.hideThought")), 1),
29
+ _(c, {
30
+ name: "keyboard_arrow_down",
31
+ size: "sm",
32
+ class: "transition-transform group-open:rotate-180"
33
+ })
34
+ ]),
35
+ s("p", me, i(m.text), 1)
36
+ ]);
37
+ };
38
+ }
39
+ }), xe = { class: "border border-fm-color-neutral-gray-100 rounded-[16px] bg-fm-color-neutral-white overflow-hidden" }, fe = { class: "flex items-center gap-[10px] px-[16px] py-[10px] border-b border-fm-color-neutral-gray-100 flex-wrap" }, he = {
40
+ "aria-hidden": "true",
41
+ class: "w-[28px] h-[28px] rounded-full bg-fm-color-neutral-gray-100 text-fm-color-typo-secondary text-[12px] font-semibold flex items-center justify-center shrink-0"
42
+ }, ve = { class: "min-w-0 flex-1" }, ge = { class: "text-[14px] font-semibold leading-[20px] break-words" }, ye = { class: "text-[12px] leading-[16px] text-fm-color-typo-tertiary break-words" }, _e = ["datetime"], we = { class: "flex flex-col gap-[10px] px-[16px] py-[12px]" }, be = {
43
+ key: 0,
44
+ class: "self-end text-[12px] leading-[16px] text-fm-color-typo-tertiary"
45
+ }, ke = {
46
+ key: 0,
47
+ class: "text-[11px] text-fm-color-typo-tertiary"
48
+ }, Be = ["datetime"], Ce = ["title", "onClick"], Fe = { class: "w-[24px] h-[24px] rounded-full bg-fm-color-secondary-plum/10 text-fm-color-secondary-plum flex items-center justify-center shrink-0" }, Ae = { class: "flex flex-col min-w-0" }, Ne = { class: "text-[13px] leading-[18px] font-semibold" }, $e = { class: "text-[12px] leading-[16px] text-fm-color-typo-tertiary whitespace-pre-wrap break-words" }, Ie = /* @__PURE__ */ T({
49
+ __name: "WhatsappLogConversation",
50
+ props: {
51
+ conversation: {},
52
+ accountName: {},
53
+ timezone: {}
54
+ },
55
+ emits: ["notificationGroup"],
56
+ setup(m, { emit: v }) {
57
+ const n = m, g = v, { t: c, locale: t } = E(), o = w(
58
+ () => n.conversation.customerName || n.conversation.phoneNumber || c("connect.whatsappBot.logs.unknownCustomer")
59
+ ), u = w(
60
+ () => n.conversation.customerName ? n.conversation.customerName.trim().split(/\s+/).slice(0, 2).map((f) => Array.from(f)[0]).join("").toLocaleUpperCase(t.value) : "?"
61
+ ), A = w(
62
+ () => new Intl.DateTimeFormat(t.value, {
63
+ dateStyle: "medium",
64
+ timeStyle: "short",
65
+ timeZone: n.timezone
66
+ })
67
+ ), y = w(
68
+ () => new Intl.DateTimeFormat(t.value, {
69
+ hour: "2-digit",
70
+ minute: "2-digit",
71
+ hour12: !1,
72
+ timeZone: n.timezone
73
+ })
74
+ );
75
+ function h(f) {
76
+ var B;
77
+ return (B = f.reaction) != null && B.removed ? c("connect.whatsappBot.logs.reactionRemoved") : f.text ? f.text : c("connect.whatsappBot.logs.mediaMessage", { type: f.messageType });
78
+ }
79
+ return (f, B) => {
80
+ const N = k("FmIcon");
81
+ return l(), d("article", xe, [
82
+ s("header", fe, [
83
+ s("div", he, i(u.value), 1),
84
+ s("div", ve, [
85
+ s("h2", ge, i(o.value), 1),
86
+ s("p", ye, i(m.conversation.phoneNumber || p(c)("connect.whatsappBot.phoneUnavailable")) + " · " + i(p(c)("connect.whatsappBot.tickets.via", { name: m.accountName })), 1)
87
+ ]),
88
+ s("time", {
89
+ datetime: m.conversation.lastCreatedAt,
90
+ class: "text-[12px] text-fm-color-typo-tertiary tabular-nums"
91
+ }, i(A.value.format(new Date(m.conversation.lastCreatedAt))), 9, _e)
92
+ ]),
93
+ s("ol", we, [
94
+ (l(!0), d(M, null, V(m.conversation.logs, (r) => (l(), d("li", {
95
+ key: r.id,
96
+ class: "flex flex-col gap-[4px] min-w-0"
97
+ }, [
98
+ r.type === "message" ? (l(), d(M, { key: 0 }, [
99
+ r.isFromMe && !r.isFromBot ? (l(), d("span", be, i(p(c)("connect.whatsappBot.logs.sentByStaff")), 1)) : $("", !0),
100
+ s("div", {
101
+ class: ee([
102
+ "px-[10px] py-[6px] text-[14px] leading-[20px] whitespace-pre-wrap break-words min-w-0",
103
+ r.isFromMe ? "self-end max-w-[80%] bg-fm-color-primary-oats rounded-[12px] rounded-br-[4px]" : "self-start max-w-[75%] bg-fm-color-neutral-gray-100/50 rounded-[12px] rounded-bl-[4px]"
104
+ ])
105
+ }, [
106
+ P(i(h(r)) + " ", 1),
107
+ r.isEdit ? (l(), d("span", ke, " (" + i(p(c)("connect.whatsappBot.logs.edited")) + ") ", 1)) : $("", !0),
108
+ s("time", {
109
+ datetime: r.timestamp,
110
+ class: "float-right mt-[6px] ml-[10px] text-[11px] leading-[14px] text-fm-color-typo-tertiary tabular-nums"
111
+ }, i(y.value.format(new Date(r.timestamp))), 9, Be)
112
+ ], 2)
113
+ ], 64)) : r.type === "thought" ? (l(), I(de, {
114
+ key: 1,
115
+ text: r.text
116
+ }, null, 8, ["text"])) : r.type === "escalate" ? (l(), d("button", {
117
+ key: 2,
118
+ type: "button",
119
+ title: p(c)("connect.whatsappBot.logs.openNotificationGroup"),
120
+ class: "self-end flex items-start gap-[8px] max-w-[80%] py-[8px] pr-[12px] pl-[8px] border border-fm-color-neutral-gray-200 rounded-[8px] text-left hover:bg-fm-color-neutral-gray-100/50 focus-visible:outline-fm-color-primary",
121
+ onClick: (C) => g("notificationGroup", r.clientId)
122
+ }, [
123
+ s("span", Fe, [
124
+ _(N, {
125
+ name: "group",
126
+ size: "sm"
127
+ })
128
+ ]),
129
+ s("span", Ae, [
130
+ s("span", Ne, i(p(c)("connect.whatsappBot.logs.escalated")), 1),
131
+ s("span", $e, i(p(c)("connect.whatsappBot.logs.reason", {
132
+ reason: r.source === "staff" ? p(c)("connect.whatsappBot.tickets.staffReason") : r.reason
133
+ })), 1)
134
+ ])
135
+ ], 8, Ce)) : $("", !0)
136
+ ]))), 128))
137
+ ])
138
+ ]);
139
+ };
140
+ }
141
+ });
142
+ function Me(m, v) {
143
+ const n = /* @__PURE__ */ new Map(), g = /* @__PURE__ */ new Map(), c = [...m].sort(
144
+ (t, o) => Date.parse(t.createdAt) - Date.parse(o.createdAt) || W(t) - W(o) || t.id.localeCompare(o.id)
145
+ );
146
+ for (const t of c) {
147
+ const o = JSON.stringify([
148
+ t.accountLid || t.clientId,
149
+ t.chatJid
150
+ ]), u = g.get(o) ?? { name: "", phone: "" };
151
+ t.customerName && (u.name = t.customerName), t.phoneNumber && (u.phone = t.phoneNumber), g.set(o, u);
152
+ const A = le.tz(t.createdAt, v).format("YYYY-MM-DD"), y = `${o}:${A}`, h = n.get(y);
153
+ h ? (h.logs.push(t), h.lastCreatedAt = t.createdAt, h.clientId = t.clientId) : n.set(y, {
154
+ id: y,
155
+ clientId: t.clientId,
156
+ chatJid: t.chatJid,
157
+ customerName: "",
158
+ phoneNumber: "",
159
+ createdAt: t.createdAt,
160
+ lastCreatedAt: t.createdAt,
161
+ logs: [t]
162
+ });
163
+ }
164
+ for (const t of n.values()) {
165
+ const o = t.logs[0], u = g.get(
166
+ JSON.stringify([o.accountLid || o.clientId, o.chatJid])
167
+ );
168
+ t.customerName = (u == null ? void 0 : u.name) ?? "", t.phoneNumber = (u == null ? void 0 : u.phone) ?? "";
169
+ }
170
+ return [...n.values()].sort(
171
+ (t, o) => Date.parse(o.lastCreatedAt) - Date.parse(t.lastCreatedAt)
172
+ );
173
+ }
174
+ function W(m) {
175
+ return m.type === "thought" ? 1 : m.type === "escalate" ? 2 : m.isFromMe ? 3 : 0;
176
+ }
177
+ const Se = { class: "mt-[20px] flex flex-col gap-[16px]" }, De = { class: "flex items-center gap-[8px] flex-wrap" }, Le = { class: "max-h-[240px] overflow-y-auto" }, ze = {
178
+ key: 0,
179
+ role: "alert",
180
+ class: "text-[14px] text-fm-color-typo-error"
181
+ }, Ve = {
182
+ key: 1,
183
+ role: "status",
184
+ class: "py-[56px] flex flex-col items-center gap-[12px] text-[14px] text-fm-color-typo-secondary"
185
+ }, Te = {
186
+ key: 2,
187
+ class: "flex items-center gap-[12px] flex-wrap"
188
+ }, Ee = {
189
+ role: "alert",
190
+ class: "text-[14px] text-fm-color-typo-error"
191
+ }, Je = {
192
+ key: 3,
193
+ class: "border border-fm-color-neutral-gray-200 rounded-[16px] px-[24px] py-[56px] flex flex-col items-center text-center gap-[8px]"
194
+ }, Ye = { class: "text-[20px] font-semibold" }, je = { class: "max-w-[420px] text-[14px] leading-[20px] text-fm-color-typo-secondary" }, Ge = {
195
+ key: 4,
196
+ class: "w-full max-w-[880px] flex flex-col gap-[12px]"
197
+ }, qe = /* @__PURE__ */ T({
198
+ __name: "WhatsappBotLogs",
199
+ props: {
200
+ accounts: {}
201
+ },
202
+ setup(m) {
203
+ const v = m, { t: n } = E(), g = oe(), c = w(() => ne.getBusinessId() ?? ""), t = w(
204
+ () => U[g.currentCountry.value || "MY"] ?? U.MY
205
+ ), o = b([]), u = b(""), A = b([]), y = b([]), h = b(!0), f = b(""), B = b(), N = b(!1), r = b("");
206
+ let C;
207
+ function S(a) {
208
+ var F;
209
+ const e = (F = v.accounts.find(
210
+ (L) => L.clientId === a
211
+ )) == null ? void 0 : F.account;
212
+ return (e == null ? void 0 : e.businessName) || (e == null ? void 0 : e.name) || (e == null ? void 0 : e.phoneNumber) || n("connect.whatsappBot.logs.unknownAccount", { id: a.slice(-6) });
213
+ }
214
+ const R = w(
215
+ () => [
216
+ .../* @__PURE__ */ new Set([
217
+ ...v.accounts.map((a) => a.clientId),
218
+ ...y.value,
219
+ ...o.value
220
+ ])
221
+ ].map((a) => ({ clientId: a, label: S(a) }))
222
+ ), J = w(() => {
223
+ const a = u.value.trim().toLocaleLowerCase();
224
+ return R.value.filter(
225
+ (e) => e.label.toLocaleLowerCase().includes(a)
226
+ );
227
+ }), Z = w(() => {
228
+ const a = o.value, e = a.length ? a.length === 1 ? S(a[0]) : n("connect.whatsappBot.logs.selectedAccounts", {
229
+ count: a.length
230
+ }) : n("connect.whatsappBot.logs.allAccounts");
231
+ return n("connect.whatsappBot.logs.accountFilter", { name: e });
232
+ }), Y = w(
233
+ () => Me(A.value, t.value)
234
+ );
235
+ function H(a) {
236
+ o.value = o.value.includes(a) ? o.value.filter((e) => e !== a) : [...o.value, a];
237
+ }
238
+ function K(a) {
239
+ r.value = "";
240
+ const e = v.accounts.find(
241
+ (F) => F.clientId === a
242
+ );
243
+ if (!e) {
244
+ r.value = n("connect.whatsappBot.errors.accountNotFound");
245
+ return;
246
+ }
247
+ B.value = e, N.value = !0;
248
+ }
249
+ async function D() {
250
+ C == null || C.abort();
251
+ const a = new AbortController();
252
+ C = a, h.value = !0, f.value = "", A.value = [];
253
+ try {
254
+ if (!c.value)
255
+ throw new Error(n("connect.whatsappBot.errors.selectBusiness"));
256
+ const e = await ae.listLogs(
257
+ c.value,
258
+ o.value.length ? { clientIds: o.value.join(",") } : {},
259
+ a.signal
260
+ );
261
+ if (a.signal.aborted) return;
262
+ A.value = e.logs, y.value = [
263
+ .../* @__PURE__ */ new Set([
264
+ ...y.value,
265
+ ...e.logs.map((F) => F.clientId)
266
+ ])
267
+ ];
268
+ } catch (e) {
269
+ a.signal.aborted || (f.value = e instanceof Error ? e.message : n("connect.whatsappBot.logs.loadError"));
270
+ } finally {
271
+ a.signal.aborted || (h.value = !1);
272
+ }
273
+ }
274
+ return G(c, () => {
275
+ o.value = [], u.value = "", y.value = [], N.value = !1, B.value = void 0, r.value = "";
276
+ }), G(
277
+ [c, () => o.value.join(",")],
278
+ () => void D(),
279
+ { immediate: !0 }
280
+ ), te(() => C == null ? void 0 : C.abort()), (a, e) => {
281
+ const F = k("FmChip"), L = k("FmSearch"), Q = k("FmMenuDivider"), z = k("FmMenuItem"), X = k("FmMenu"), j = k("FmButton"), q = k("FmCircularProgress");
282
+ return l(), d(M, null, [
283
+ s("section", Se, [
284
+ s("div", De, [
285
+ _(X, {
286
+ "close-on-click": !1,
287
+ width: 280
288
+ }, {
289
+ "menu-button": O(() => [
290
+ _(F, {
291
+ label: Z.value,
292
+ "right-icon": "keyboard_arrow_down",
293
+ class: "text-fm-color-typo-secondary cursor-pointer"
294
+ }, null, 8, ["label"])
295
+ ]),
296
+ default: O(() => [
297
+ _(L, {
298
+ modelValue: u.value,
299
+ "onUpdate:modelValue": e[0] || (e[0] = (x) => u.value = x),
300
+ placeholder: p(n)("connect.whatsappBot.logs.searchAccounts")
301
+ }, null, 8, ["modelValue", "placeholder"]),
302
+ _(Q),
303
+ _(z, {
304
+ label: p(n)("connect.whatsappBot.logs.allAccounts"),
305
+ "model-value": !o.value.length,
306
+ "has-checkbox": "",
307
+ onClick: e[1] || (e[1] = (x) => o.value = [])
308
+ }, null, 8, ["label", "model-value"]),
309
+ s("div", Le, [
310
+ (l(!0), d(M, null, V(J.value, (x) => (l(), I(z, {
311
+ key: x.clientId,
312
+ label: x.label,
313
+ "model-value": o.value.includes(x.clientId),
314
+ "has-checkbox": "",
315
+ onClick: (Oe) => H(x.clientId)
316
+ }, null, 8, ["label", "model-value", "onClick"]))), 128)),
317
+ J.value.length ? $("", !0) : (l(), I(z, {
318
+ key: 0,
319
+ label: p(n)("connect.whatsappBot.logs.noMatchingAccounts"),
320
+ disabled: ""
321
+ }, null, 8, ["label"]))
322
+ ])
323
+ ]),
324
+ _: 1
325
+ }),
326
+ _(j, {
327
+ variant: "plain",
328
+ "prepend-icon": "refresh",
329
+ label: p(n)("connect.whatsappBot.logs.refresh"),
330
+ disabled: h.value,
331
+ class: "ml-auto",
332
+ onClick: e[2] || (e[2] = (x) => D())
333
+ }, null, 8, ["label", "disabled"])
334
+ ]),
335
+ r.value ? (l(), d("p", ze, i(r.value), 1)) : $("", !0),
336
+ h.value ? (l(), d("div", Ve, [
337
+ _(q),
338
+ P(" " + i(p(n)("connect.whatsappBot.logs.loading")), 1)
339
+ ])) : f.value ? (l(), d("div", Te, [
340
+ s("p", Ee, i(f.value), 1),
341
+ _(j, {
342
+ variant: "secondary",
343
+ "prepend-icon": "refresh",
344
+ label: p(n)("connect.whatsappBot.tryAgain"),
345
+ onClick: e[3] || (e[3] = (x) => D())
346
+ }, null, 8, ["label"])
347
+ ])) : Y.value.length ? (l(), d("div", Ge, [
348
+ (l(!0), d(M, null, V(Y.value, (x) => (l(), I(Ie, {
349
+ key: x.id,
350
+ conversation: x,
351
+ "account-name": S(x.clientId),
352
+ timezone: t.value,
353
+ onNotificationGroup: K
354
+ }, null, 8, ["conversation", "account-name", "timezone"]))), 128))
355
+ ])) : (l(), d("div", Je, [
356
+ s("h2", Ye, i(p(n)("connect.whatsappBot.logs.emptyTitle")), 1),
357
+ s("p", je, i(p(n)("connect.whatsappBot.logs.emptyDescription")), 1)
358
+ ]))
359
+ ]),
360
+ B.value ? (l(), I(re, {
361
+ key: 0,
362
+ modelValue: N.value,
363
+ "onUpdate:modelValue": e[4] || (e[4] = (x) => N.value = x),
364
+ account: B.value
365
+ }, null, 8, ["modelValue", "account"])) : $("", !0)
366
+ ], 64);
367
+ };
368
+ }
369
+ });
370
+ export {
371
+ qe as default
372
+ };