@feedmepos/mf-connect 0.1.38-beta.96 → 0.1.38-beta.98

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 (106) hide show
  1. package/dist/{Analytic-Cl6MRZ5Y.js → Analytic-Cmmsj4GL.js} +13 -13
  2. package/dist/{App-D6xNQhUA.js → App-X8JUheTB.js} +7 -7
  3. package/dist/{AuditLogs-Ymb_HHtq.js → AuditLogs-Am7feSao.js} +9 -9
  4. package/dist/{Bin-BkpkM6ds.js → Bin-CkQNnA-g.js} +8 -8
  5. package/dist/{Broadcast-CDVNwfvW.js → Broadcast-ZO3ztKsj.js} +9 -9
  6. package/dist/{CampaignTypeDialog.vue_vue_type_script_setup_true_lang-BcmEV0Qj.js → CampaignTypeDialog.vue_vue_type_script_setup_true_lang-B6_I4twl.js} +6 -6
  7. package/dist/{Card-Com7aqIL.js → Card-BCPHRAJr.js} +18 -18
  8. package/dist/{Collections-C4Vp9gey.js → Collections-DWuTstxd.js} +7 -7
  9. package/dist/{Credit-D1dvIX_a.js → Credit-C1997yt1.js} +9 -9
  10. package/dist/{EditCampaignSheet.vue_vue_type_script_setup_true_lang---FQZgB2.js → EditCampaignSheet.vue_vue_type_script_setup_true_lang-_6MxlAxf.js} +33 -33
  11. package/dist/{EffectSheet.vue_vue_type_style_index_0_lang-BbkFC48t.js → EffectSheet.vue_vue_type_style_index_0_lang-Bdw9FRi5.js} +6 -6
  12. package/dist/{Experience-B9YZ6hGI.js → Experience-DWi1PbhY.js} +9 -9
  13. package/dist/{FileSaver.min-li5SvE8x.js → FileSaver.min-DDxdY8PO.js} +1 -1
  14. package/dist/{Game-DwISe-aL.js → Game-BfSqEFif.js} +10 -10
  15. package/dist/{Grab-B5gvcLPP.js → Grab-CfEpIuRy.js} +8 -8
  16. package/dist/{ImageInput.vue_vue_type_script_setup_true_lang-Dxiv-yo0.js → ImageInput.vue_vue_type_script_setup_true_lang-B0YvP43y.js} +1 -1
  17. package/dist/{Index-ak_lCZcK.js → Index-Bsr_7Lf6.js} +10 -10
  18. package/dist/{LocationPicker.vue_vue_type_script_setup_true_lang-Dp-b99-m.js → LocationPicker.vue_vue_type_script_setup_true_lang-DywlTAP4.js} +1 -1
  19. package/dist/{LottieAnimation.vue_vue_type_script_setup_true_lang-CF7Xpixl.js → LottieAnimation.vue_vue_type_script_setup_true_lang-XY-LoAga.js} +1 -1
  20. package/dist/{MainLayout-3xAykCh5.js → MainLayout-DhLqseD3.js} +1 -1
  21. package/dist/{Marketing-D7LWPCfj.js → Marketing-JLdmgwHa.js} +4 -4
  22. package/dist/{MarketingMaterialEdit-Lk-kAYh1.js → MarketingMaterialEdit-R8iU_vwo.js} +6 -6
  23. package/dist/{Member-Y82TPJ3u.js → Member-CjcsTmx9.js} +11 -11
  24. package/dist/{MemberList-_UigIkgM.js → MemberList-47UJBrBC.js} +26 -26
  25. package/dist/{MemberTransactions-CFa4oc1E.js → MemberTransactions-ojm2_POc.js} +1 -1
  26. package/dist/{MessageInput.vue_vue_type_script_setup_true_lang-3a4hCFiG.js → MessageInput.vue_vue_type_script_setup_true_lang-CwL3CuhK.js} +9 -9
  27. package/dist/{Mission-DsohRaqf.js → Mission-EKIaaBgF.js} +10 -10
  28. package/dist/{Overview-CAbGhHgk.js → Overview-GTvI7se0.js} +18 -18
  29. package/dist/{Point-DnfudGK3.js → Point-C_LiPWtG.js} +9 -9
  30. package/dist/{Promotion-C_v4P8Wy.js → Promotion-CUUineSb.js} +10 -10
  31. package/dist/{Queue-CFSdepKM.js → Queue-DJc2n8_h.js} +10 -10
  32. package/dist/{Record-kD24ZBO3.js → Record-bzSkHUZY.js} +9 -9
  33. package/dist/Review-DGrND2U0.js +692 -0
  34. package/dist/{ReviewFacebookCallback-DM8oc8ex.js → ReviewFacebookCallback-Cl2Iv6Yt.js} +39 -39
  35. package/dist/{ReviewGoogleCallback-BGRI0sGj.js → ReviewGoogleCallback-B1ScyrkD.js} +4 -4
  36. package/dist/{Reward-Crxk5lfq.js → Reward-BqTHw8PX.js} +16 -16
  37. package/dist/{RewardGroup.vue_vue_type_script_setup_true_lang-C847CpoZ.js → RewardGroup.vue_vue_type_script_setup_true_lang-q3ZO18r6.js} +11 -11
  38. package/dist/{RuleGroup.vue_vue_type_script_setup_true_lang-CZkiW0Ge.js → RuleGroup.vue_vue_type_script_setup_true_lang-o9AVUR98.js} +14 -14
  39. package/dist/{Segment-CK7XhcK0.js → Segment-CxjPyWVc.js} +24 -24
  40. package/dist/{SelectItems.vue_vue_type_script_setup_true_lang-BOB11YVT.js → SelectItems.vue_vue_type_script_setup_true_lang-DV7zm7-m.js} +2 -2
  41. package/dist/{SendCollectionSheet.vue_vue_type_script_setup_true_lang-B0r4-pZE.js → SendCollectionSheet.vue_vue_type_script_setup_true_lang-C5g_vl23.js} +12 -12
  42. package/dist/{SendVoucherSheet.vue_vue_type_script_setup_true_lang-DDq8hgos.js → SendVoucherSheet.vue_vue_type_script_setup_true_lang-BXcN2LX8.js} +4 -4
  43. package/dist/{Setting-DsH-2duN.js → Setting-CnbTydur.js} +81 -81
  44. package/dist/{SettingAdvertisements-C7vHq0PB.js → SettingAdvertisements-0KxvOuNS.js} +12 -12
  45. package/dist/{Store-BVGl1725.js → Store-DCYi9tBd.js} +21 -21
  46. package/dist/{StoreRewards-DIe7iX8x.js → StoreRewards-DtupzWtO.js} +203 -200
  47. package/dist/{StoreTransactions.vue_vue_type_script_setup_true_lang-D9zAtQbf.js → StoreTransactions.vue_vue_type_script_setup_true_lang-Bj2YGF8r.js} +21 -21
  48. package/dist/{TargetLocationInput.vue_vue_type_script_setup_true_lang-CMcI_iJz.js → TargetLocationInput.vue_vue_type_script_setup_true_lang-CWuZ64Ej.js} +2 -2
  49. package/dist/{Tier-BS4NiJp1.js → Tier-mXDWVyOh.js} +23 -23
  50. package/dist/{Title-DXrARWGW.js → Title-8mH7yu0A.js} +20 -20
  51. package/dist/{Transaction-Dgh3T8cb.js → Transaction-B8yVmt2I.js} +2 -2
  52. package/dist/{UserRuleGroup.vue_vue_type_script_setup_true_lang-DZdPLnB9.js → UserRuleGroup.vue_vue_type_script_setup_true_lang-DEihnT0t.js} +6 -6
  53. package/dist/{Voucher-D3l4ZTrh.js → Voucher-DRcHLG1a.js} +13 -13
  54. package/dist/{VoucherEditor.vue_vue_type_script_setup_true_lang-563EURuF.js → VoucherEditor.vue_vue_type_script_setup_true_lang-C7Sxj_Z5.js} +12 -12
  55. package/dist/{ZodTextField.vue_vue_type_script_setup_true_lang-FpRWchov.js → ZodTextField.vue_vue_type_script_setup_true_lang-DJSNeUwi.js} +2 -2
  56. package/dist/{app-C0tPGrWs.js → app-BoN-DjbO.js} +51 -51
  57. package/dist/app.js +1 -1
  58. package/dist/{business-CLWXU6f0.js → business-CLr23aV0.js} +1 -1
  59. package/dist/{campaign-i8P3kLCP.js → campaign-BfiTO1X2.js} +1 -1
  60. package/dist/{campaign-DKgeRKw7.js → campaign-Db2CDtUO.js} +8 -8
  61. package/dist/{campaign.enum-DVLPlZG_.js → campaign.enum-DXFktsU-.js} +1 -1
  62. package/dist/{campaign.fn-Db-gV0ZF.js → campaign.fn-Cd6etiJk.js} +30 -30
  63. package/dist/{collectible.enum-D0MHFeO0.js → collectible.enum-BvR6Act_.js} +1 -1
  64. package/dist/{collection.fn-DIqyf2rF.js → collection.fn-BYrE69Mx.js} +2 -2
  65. package/dist/{dto-BxMBmLeL.js → dto-09bFA2ak.js} +4 -4
  66. package/dist/{duplicateCampaign-BZAjHZ7v.js → duplicateCampaign-y3eI3xL8.js} +2 -2
  67. package/dist/{effect-B5Ubds7b.js → effect-fFbq8rS2.js} +1 -1
  68. package/dist/{email-addresses-D2htab8s.js → email-addresses-BaO2JIrl.js} +2 -2
  69. package/dist/{export-CzUa2SAK.js → export-BSmegpBx.js} +3 -3
  70. package/dist/{helper-Ck2PaaCy.js → helper-CTwktYqy.js} +1 -1
  71. package/dist/{index-ClQoygUj.js → index-44YnPS-2.js} +1 -1
  72. package/dist/{index-oS9ZmKdF.js → index-C39blIPy.js} +3 -5
  73. package/dist/{index-VxK_HA7O.js → index-CxKomdCz.js} +4 -4
  74. package/dist/{index-DupSw3-s.js → index-DI0uj4vF.js} +1 -1
  75. package/dist/{index-3MDs-2Hs.js → index-DRhIpyOT.js} +1 -1
  76. package/dist/{index-CmfLjBdM.js → index-DeCJGK1Q.js} +1 -1
  77. package/dist/{index-C53E2Vf9.js → index-DhYKVUSb.js} +2 -2
  78. package/dist/{index-DI-wKZW-.js → index-DmPId6MB.js} +3 -3
  79. package/dist/{index-CARYxl4y.js → index-Dp9WPErb.js} +1 -1
  80. package/dist/{index-BqRRzdVz.js → index-DpaRTpHD.js} +3 -3
  81. package/dist/index-Dr1YvZ4P.js +48 -0
  82. package/dist/{index-BVktkUxe.js → index-Dwu6WniS.js} +145 -147
  83. package/dist/{index-9Mpu-FQJ.js → index-d22vtyVf.js} +3 -3
  84. package/dist/{index.esm2017-Dyk_bx2r.js → index.esm2017-Z2kwppPX.js} +1 -1
  85. package/dist/{loading-ds3TASHT.js → loading-CO7pFgcU.js} +1 -1
  86. package/dist/{lodash-DTORdAAU.js → lodash-CKkm7yoC.js} +1 -1
  87. package/dist/{membership-jQlk53aS.js → membership-EYuMqKtt.js} +3 -3
  88. package/dist/{money-IOz-942z.js → money-CxWj48Wm.js} +1 -1
  89. package/dist/{number-CWOqc967.js → number-DZHCx5Go.js} +1 -1
  90. package/dist/{objectid-CZkezEFg.js → objectid-mZMF8pti.js} +2 -2
  91. package/dist/{plugins-jbR-lWYo.js → plugins-_dpHP1gj.js} +3 -3
  92. package/dist/{reward-DVHTU03b.js → reward-D1-Jp6t6.js} +1 -1
  93. package/dist/{rule-9BGK8kms.js → rule-CKxKnTFS.js} +3 -3
  94. package/dist/{rule-builder-CjeKzJC7.js → rule-builder-DhnS-k1_.js} +1 -1
  95. package/dist/{template-DGwpx6Lh.js → template-C2L0Elsh.js} +6 -6
  96. package/dist/{timezone-Dxm8TTon.js → timezone-CQUmqwM9.js} +2 -2
  97. package/dist/{trigger-xVvU9McN.js → trigger-CIPa0S6u.js} +5 -5
  98. package/dist/{useMarketingMaterialActions-BNzzZLfT.js → useMarketingMaterialActions-Bq-Uy836.js} +3 -3
  99. package/dist/{usePagination-AmQfKdEF.js → usePagination-BqmoP8ab.js} +1 -1
  100. package/dist/{user-D_fPAb5I.js → user-CkAxgDHp.js} +1 -1
  101. package/dist/{vue-i18n-DDcr-miL.js → vue-i18n-5y9oDx95.js} +329 -329
  102. package/dist/{xlsx-BzbVIp2x.js → xlsx-Dy95Mli3.js} +1 -1
  103. package/dist/{zod-BRHadijq.js → zod-CF1kthTf.js} +1 -1
  104. package/package.json +1 -1
  105. package/dist/Review-DmSc7jiO.js +0 -621
  106. package/dist/index-LyXxYzdC.js +0 -48
@@ -0,0 +1,692 @@
1
+ import { defineComponent as F, useModel as V, computed as U, onMounted as E, resolveComponent as Y, openBlock as o, createElementBlock as s, createElementVNode as a, createVNode as y, unref as e, createBlock as b, createCommentVNode as k, toDisplayString as w, normalizeClass as j, ref as x, Fragment as $, renderList as T, Teleport as K, withModifiers as Z, onUnmounted as J, watch as A, isRef as B, useSlots as Q, renderSlot as W, withCtx as D, createStaticVNode as X, KeepAlive as ee } from "vue";
2
+ import { u as C } from "./vue-i18n-5y9oDx95.js";
3
+ import { _ as G } from "./DateInput.vue_vue_type_script_setup_true_lang-BN4Q5Y3l.js";
4
+ import { u as te } from "./business-CLr23aV0.js";
5
+ import { components as g, useSnackbar as oe } from "@feedmepos/ui-library";
6
+ import { h as N } from "./moment-D7p2TMB-.js";
7
+ import { r as R } from "./index-Dr1YvZ4P.js";
8
+ import { u as le } from "./loading-CO7pFgcU.js";
9
+ const ne = { class: "flex justify-between gap-8" }, se = { class: "flex flex-wrap gap-8" }, ae = /* @__PURE__ */ F({
10
+ __name: "ReviewListingController",
11
+ props: {
12
+ source: { required: !0 },
13
+ sourceModifiers: {},
14
+ dateFrom: { required: !0 },
15
+ dateFromModifiers: {},
16
+ dateTo: { required: !0 },
17
+ dateToModifiers: {},
18
+ locationId: { required: !0 },
19
+ locationIdModifiers: {},
20
+ sort: { required: !0 },
21
+ sortModifiers: {}
22
+ },
23
+ emits: ["update:source", "update:dateFrom", "update:dateTo", "update:locationId", "update:sort"],
24
+ setup(t) {
25
+ const { t: l } = C(), d = V(t, "source"), n = V(t, "dateFrom"), r = V(t, "dateTo"), u = V(t, "locationId"), i = V(t, "sort"), v = te(), h = U(() => [
26
+ { label: l("connect.review.filter.allSources"), value: "" },
27
+ { label: "Google", value: "google" },
28
+ { label: "Facebook", value: "facebook" }
29
+ ]), I = U(() => [
30
+ { label: l("connect.review.filter.allLocations"), value: "" },
31
+ ...v.locationOptions.map((p) => ({ label: p.label, value: p.value }))
32
+ ]), S = U(() => [
33
+ { label: l("connect.review.filter.sort.createTime_desc"), value: "createTime_desc" },
34
+ { label: l("connect.review.filter.sort.createTime_asc"), value: "createTime_asc" },
35
+ { label: l("connect.review.filter.sort.rating_asc"), value: "rating_asc" },
36
+ { label: l("connect.review.filter.sort.rating_desc"), value: "rating_desc" }
37
+ ]), z = U(
38
+ () => v.locations.length > 0
39
+ );
40
+ return E(() => v.readLocations()), (p, f) => {
41
+ const c = Y("FmSelect");
42
+ return o(), s("div", ne, [
43
+ a("div", se, [
44
+ y(c, {
45
+ modelValue: d.value,
46
+ "onUpdate:modelValue": f[0] || (f[0] = (m) => d.value = m),
47
+ label: e(l)("connect.review.filter.source"),
48
+ items: e(h)
49
+ }, null, 8, ["modelValue", "label", "items"]),
50
+ e(z) ? (o(), b(c, {
51
+ key: 0,
52
+ modelValue: u.value,
53
+ "onUpdate:modelValue": f[1] || (f[1] = (m) => u.value = m),
54
+ label: e(l)("connect.review.filter.location"),
55
+ items: e(I)
56
+ }, null, 8, ["modelValue", "label", "items"])) : k("", !0),
57
+ y(G, {
58
+ label: e(l)("connect.review.filter.dateFrom"),
59
+ "model-value": n.value,
60
+ "onUpdate:modelValue": f[2] || (f[2] = (m) => n.value = m)
61
+ }, null, 8, ["label", "model-value"]),
62
+ y(G, {
63
+ label: e(l)("connect.review.filter.dateTo"),
64
+ "model-value": r.value,
65
+ "onUpdate:modelValue": f[3] || (f[3] = (m) => r.value = m)
66
+ }, null, 8, ["label", "model-value"])
67
+ ]),
68
+ y(c, {
69
+ modelValue: i.value,
70
+ "onUpdate:modelValue": f[4] || (f[4] = (m) => i.value = m),
71
+ label: e(l)("connect.review.filter.sort.label"),
72
+ items: e(S)
73
+ }, null, 8, ["modelValue", "label", "items"])
74
+ ]);
75
+ };
76
+ }
77
+ }), q = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='%231877F2'%3e%3cpath%20d='M24%2012.073c0-6.627-5.373-12-12-12s-12%205.373-12%2012c0%205.99%204.388%2010.954%2010.125%2011.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007%201.792-4.669%204.533-4.669%201.312%200%202.686.235%202.686.235v2.953H15.83c-1.491%200-1.956.925-1.956%201.874v2.25h3.328l-.532%203.47h-2.796v8.385C19.612%2023.027%2024%2018.062%2024%2012.073z'/%3e%3c/svg%3e", re = { class: "rounded-lg border border-fm-color-neutral-gray-200 bg-white p-16 flex flex-col gap-8" }, ce = { class: "flex items-center gap-8" }, ie = ["src"], ue = { class: "flex flex-col flex-1 min-w-0" }, de = { class: "fm-typo-en-body-md-600 truncate" }, me = { class: "fm-typo-en-body-sm-400 text-fm-color-neutral-gray-400" }, ve = { class: "flex items-center gap-4 shrink-0" }, fe = ["src"], we = {
78
+ key: 0,
79
+ class: "fm-typo-en-body-sm-400 text-fm-color-neutral-gray-400"
80
+ }, ye = {
81
+ key: 0,
82
+ class: "flex items-center gap-4"
83
+ }, ge = {
84
+ key: 1,
85
+ class: "fm-typo-en-body-md-400 text-fm-color-neutral-gray-700 line-clamp-3"
86
+ }, be = {
87
+ key: 2,
88
+ class: "fm-typo-en-body-md-400 text-fm-color-neutral-gray-400 italic"
89
+ }, he = /* @__PURE__ */ F({
90
+ __name: "FacebookReviewCard",
91
+ props: {
92
+ review: {}
93
+ },
94
+ setup(t) {
95
+ const { t: l } = C();
96
+ return (d, n) => {
97
+ var r, u, i;
98
+ return o(), s("div", re, [
99
+ a("div", ce, [
100
+ (r = t.review.reviewer) != null && r.pictureUrl ? (o(), s("img", {
101
+ key: 0,
102
+ src: (u = t.review.reviewer) == null ? void 0 : u.pictureUrl,
103
+ class: "w-32 h-32 rounded-full shrink-0 object-cover"
104
+ }, null, 8, ie)) : (o(), b(e(g).FmIcon, {
105
+ key: 1,
106
+ name: "person",
107
+ class: "text-fm-color-neutral-gray-300 shrink-0"
108
+ })),
109
+ a("div", ue, [
110
+ a("span", de, w(((i = t.review.reviewer) == null ? void 0 : i.name) ?? e(l)("connect.review.overview.anonymous")), 1),
111
+ a("span", me, w(e(N)(t.review.createTime).format("D MMM YYYY, hh:mmA")), 1)
112
+ ]),
113
+ a("div", ve, [
114
+ a("img", {
115
+ src: e(q),
116
+ class: "w-16 h-16"
117
+ }, null, 8, fe),
118
+ t.review.pageName ? (o(), s("span", we, w(t.review.pageName), 1)) : k("", !0)
119
+ ])
120
+ ]),
121
+ t.review.isPositive != null ? (o(), s("div", ye, [
122
+ y(e(g).FmIcon, {
123
+ name: t.review.isPositive ? "thumb_up" : "thumb_down",
124
+ size: "sm",
125
+ class: j(
126
+ t.review.isPositive ? "text-fm-color-typo-success" : "text-fm-color-system-error-500"
127
+ )
128
+ }, null, 8, ["name", "class"]),
129
+ a("span", {
130
+ class: j([
131
+ "fm-typo-en-body-sm-400",
132
+ t.review.isPositive ? "text-fm-color-typo-success" : "text-fm-color-system-error-500"
133
+ ])
134
+ }, w(t.review.isPositive ? e(l)("connect.review.overview.positive") : e(l)("connect.review.overview.negative")), 3)
135
+ ])) : k("", !0),
136
+ t.review.comment ? (o(), s("p", ge, w(t.review.comment), 1)) : (o(), s("p", be, w(e(l)("connect.review.overview.noComment")), 1))
137
+ ]);
138
+ };
139
+ }
140
+ }), pe = "/feedme.ico", xe = {
141
+ key: 0,
142
+ class: "flex flex-wrap gap-8"
143
+ }, ke = ["onClick"], _e = ["src", "alt"], $e = {
144
+ key: 0,
145
+ class: "absolute inset-0 flex items-center justify-center bg-black/30"
146
+ }, Fe = ["src"], Ie = ["src", "alt"], Me = /* @__PURE__ */ F({
147
+ __name: "FeedmeReviewCardMedia",
148
+ props: {
149
+ mediaItems: {}
150
+ },
151
+ setup(t) {
152
+ const l = x(null);
153
+ return (d, n) => t.mediaItems && t.mediaItems.length > 0 ? (o(), s("div", xe, [
154
+ (o(!0), s($, null, T(t.mediaItems, (r, u) => (o(), s("div", {
155
+ key: u,
156
+ class: "relative w-72 h-72 rounded-lg overflow-hidden border border-fm-color-neutral-gray-200 shrink-0 cursor-pointer hover:opacity-90 transition-opacity",
157
+ onClick: (i) => l.value = r
158
+ }, [
159
+ a("img", {
160
+ src: r.thumbnailUrl,
161
+ alt: r.thumbnailLabel,
162
+ class: "w-full h-full object-cover"
163
+ }, null, 8, _e),
164
+ r.videoUrl ? (o(), s("div", $e, [
165
+ y(e(g).FmIcon, {
166
+ name: "play_arrow",
167
+ class: "text-white"
168
+ })
169
+ ])) : k("", !0)
170
+ ], 8, ke))), 128)),
171
+ (o(), b(K, { to: "body" }, [
172
+ l.value ? (o(), s("div", {
173
+ key: 0,
174
+ class: "fixed inset-0 z-50 flex items-center justify-center bg-black/80 backdrop-blur-sm",
175
+ onClick: n[2] || (n[2] = (r) => l.value = null)
176
+ }, [
177
+ a("button", {
178
+ class: "absolute top-16 right-16 z-50 p-8 text-white hover:text-fm-color-neutral-gray-300 transition-colors",
179
+ onClick: n[0] || (n[0] = (r) => l.value = null)
180
+ }, [
181
+ y(e(g).FmIcon, {
182
+ name: "close",
183
+ size: "lg"
184
+ })
185
+ ]),
186
+ a("div", {
187
+ class: "relative max-w-[90vw] max-h-[90vh] flex items-center justify-center",
188
+ onClick: n[1] || (n[1] = Z(() => {
189
+ }, ["stop"]))
190
+ }, [
191
+ l.value.videoUrl ? (o(), s("video", {
192
+ key: 0,
193
+ src: l.value.videoUrl,
194
+ controls: "",
195
+ autoplay: "",
196
+ class: "max-w-full max-h-[90vh] rounded-lg shadow-lg"
197
+ }, null, 8, Fe)) : (o(), s("img", {
198
+ key: 1,
199
+ src: l.value.thumbnailUrl,
200
+ alt: l.value.thumbnailLabel,
201
+ class: "max-w-full max-h-[90vh] rounded-lg shadow-lg object-contain"
202
+ }, null, 8, Ie))
203
+ ])
204
+ ])) : k("", !0)
205
+ ]))
206
+ ])) : k("", !0);
207
+ }
208
+ }), Ue = { class: "rounded-lg border border-fm-color-neutral-gray-200 bg-white p-16 flex flex-col gap-8" }, Ce = { class: "flex items-center gap-8" }, Re = ["src"], Te = { class: "flex flex-col flex-1 min-w-0" }, Se = { class: "fm-typo-en-body-md-600 truncate" }, ze = { class: "fm-typo-en-body-sm-400 text-fm-color-neutral-gray-400" }, Ve = { class: "flex items-center gap-4 shrink-0" }, Be = {
209
+ key: 0,
210
+ class: "fm-typo-en-body-sm-400 text-fm-color-neutral-gray-400"
211
+ }, je = { class: "flex items-center gap-4" }, Pe = {
212
+ key: 0,
213
+ class: "fm-typo-en-body-md-400 text-fm-color-neutral-gray-700 line-clamp-3"
214
+ }, Ee = {
215
+ key: 1,
216
+ class: "fm-typo-en-body-md-400 text-fm-color-neutral-gray-400 italic"
217
+ }, Le = /* @__PURE__ */ F({
218
+ __name: "FeedmeReviewCard",
219
+ props: {
220
+ review: {}
221
+ },
222
+ setup(t) {
223
+ const { t: l } = C();
224
+ return (d, n) => (o(), s("div", Ue, [
225
+ a("div", Ce, [
226
+ t.review.reviewer.photoUrl ? (o(), s("img", {
227
+ key: 0,
228
+ src: t.review.reviewer.photoUrl,
229
+ class: "w-32 h-32 rounded-full shrink-0 object-cover"
230
+ }, null, 8, Re)) : (o(), b(e(g).FmIcon, {
231
+ key: 1,
232
+ name: "person",
233
+ class: "text-fm-color-neutral-gray-300 shrink-0"
234
+ })),
235
+ a("div", Te, [
236
+ a("span", Se, w(t.review.reviewer.name ?? e(l)("connect.review.overview.anonymous")), 1),
237
+ a("span", ze, w(e(N)(t.review.createTime).format("D MMM YYYY, hh:mmA")), 1)
238
+ ]),
239
+ a("div", Ve, [
240
+ n[0] || (n[0] = a("img", {
241
+ src: pe,
242
+ class: "w-16 h-16"
243
+ }, null, -1)),
244
+ t.review.location ? (o(), s("span", Be, w(t.review.location.name), 1)) : k("", !0)
245
+ ])
246
+ ]),
247
+ a("div", je, [
248
+ (o(), s($, null, T(5, (r) => y(e(g).FmIcon, {
249
+ key: r,
250
+ name: "star",
251
+ size: "sm",
252
+ class: j(
253
+ r <= t.review.starRating ? "text-yellow-400" : "text-fm-color-neutral-gray-200"
254
+ )
255
+ }, null, 8, ["class"])), 64))
256
+ ]),
257
+ t.review.comment ? (o(), s("p", Pe, w(t.review.comment), 1)) : (o(), s("p", Ee, w(e(l)("connect.review.overview.noComment")), 1)),
258
+ y(Me, {
259
+ "media-items": t.review.mediaItems
260
+ }, null, 8, ["media-items"])
261
+ ]));
262
+ }
263
+ }), O = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2048%2048'%3e%3cpath%20fill='%23EA4335'%20d='M24%209.5c3.14%200%205.95%201.08%208.17%202.86l6.08-6.08C34.46%203.1%2029.5%201%2024%201%2014.82%201%206.96%206.48%203.22%2014.44l7.08%205.5C12.08%2013.66%2017.58%209.5%2024%209.5z'/%3e%3cpath%20fill='%234285F4'%20d='M46.52%2024.5c0-1.64-.15-3.22-.42-4.74H24v8.98h12.7c-.55%202.96-2.2%205.46-4.68%207.14l7.18%205.58C43.18%2037.36%2046.52%2031.38%2046.52%2024.5z'/%3e%3cpath%20fill='%23FBBC05'%20d='M10.3%2028.56A14.56%2014.56%200%200%201%209.5%2024c0-1.58.27-3.1.76-4.52l-7.08-5.5A23.94%2023.94%200%200%200%200%2024c0%203.86.92%207.5%202.56%2010.72l7.74-6.16z'/%3e%3cpath%20fill='%2334A853'%20d='M24%2047c5.5%200%2010.12-1.82%2013.48-4.94l-7.18-5.58c-1.82%201.22-4.14%201.94-6.3%201.94-6.42%200-11.92-4.16-13.7-9.86l-7.74%206.16C6.96%2041.52%2014.82%2047%2024%2047z'/%3e%3cpath%20fill='none'%20d='M0%200h48v48H0z'/%3e%3c/svg%3e", Ye = { class: "rounded-lg border border-fm-color-neutral-gray-200 bg-white p-16 flex flex-col gap-8" }, Ne = { class: "flex items-center gap-8" }, Ae = ["src"], De = { class: "flex flex-col flex-1 min-w-0" }, Ge = { class: "fm-typo-en-body-md-600 truncate" }, He = { class: "fm-typo-en-body-sm-400 text-fm-color-neutral-gray-400" }, qe = { class: "flex items-center gap-4 shrink-0" }, Oe = ["src"], Ke = {
264
+ key: 0,
265
+ class: "fm-typo-en-body-sm-400 text-fm-color-neutral-gray-400"
266
+ }, Ze = { class: "flex items-center gap-4" }, Je = {
267
+ key: 0,
268
+ class: "fm-typo-en-body-md-400 text-fm-color-neutral-gray-700 line-clamp-3"
269
+ }, Qe = {
270
+ key: 1,
271
+ class: "fm-typo-en-body-md-400 text-fm-color-neutral-gray-400 italic"
272
+ }, We = /* @__PURE__ */ F({
273
+ __name: "GoogleReviewCard",
274
+ props: {
275
+ review: {}
276
+ },
277
+ setup(t) {
278
+ const { t: l } = C();
279
+ return (d, n) => {
280
+ var r, u, i;
281
+ return o(), s("div", Ye, [
282
+ a("div", Ne, [
283
+ (r = t.review.reviewer) != null && r.pictureUrl ? (o(), s("img", {
284
+ key: 0,
285
+ src: (u = t.review.reviewer) == null ? void 0 : u.pictureUrl,
286
+ class: "w-32 h-32 rounded-full shrink-0 object-cover"
287
+ }, null, 8, Ae)) : (o(), b(e(g).FmIcon, {
288
+ key: 1,
289
+ name: "person",
290
+ class: "text-fm-color-neutral-gray-300 shrink-0"
291
+ })),
292
+ a("div", De, [
293
+ a("span", Ge, w(((i = t.review.reviewer) == null ? void 0 : i.name) ?? e(l)("connect.review.overview.anonymous")), 1),
294
+ a("span", He, w(e(N)(t.review.createTime).format("D MMM YYYY, hh:mmA")), 1)
295
+ ]),
296
+ a("div", qe, [
297
+ a("img", {
298
+ src: e(O),
299
+ class: "w-16 h-16"
300
+ }, null, 8, Oe),
301
+ t.review.locationDisplayName ? (o(), s("span", Ke, w(t.review.locationDisplayName), 1)) : k("", !0)
302
+ ])
303
+ ]),
304
+ a("div", Ze, [
305
+ (o(), s($, null, T(5, (v) => y(e(g).FmIcon, {
306
+ key: v,
307
+ name: "star",
308
+ size: "sm",
309
+ class: j(
310
+ v <= t.review.starRating ? "text-yellow-400" : "text-fm-color-neutral-gray-200"
311
+ )
312
+ }, null, 8, ["class"])), 64))
313
+ ]),
314
+ t.review.comment ? (o(), s("p", Je, w(t.review.comment), 1)) : (o(), s("p", Qe, w(e(l)("connect.review.overview.noComment")), 1))
315
+ ]);
316
+ };
317
+ }
318
+ }), Xe = /* @__PURE__ */ F({
319
+ __name: "ReviewCard",
320
+ props: {
321
+ review: {}
322
+ },
323
+ setup(t) {
324
+ const l = t, d = U(
325
+ () => l.review.source === "google" ? l.review : null
326
+ ), n = U(
327
+ () => l.review.source === "facebook" ? l.review : null
328
+ ), r = U(
329
+ () => l.review.source === "feedme" ? l.review : null
330
+ );
331
+ return (u, i) => d.value ? (o(), b(We, {
332
+ key: 0,
333
+ review: d.value
334
+ }, null, 8, ["review"])) : n.value ? (o(), b(he, {
335
+ key: 1,
336
+ review: n.value
337
+ }, null, 8, ["review"])) : r.value ? (o(), b(Le, {
338
+ key: 2,
339
+ review: r.value
340
+ }, null, 8, ["review"])) : k("", !0);
341
+ }
342
+ }), et = {
343
+ key: 0,
344
+ class: "flex justify-center py-32"
345
+ }, tt = {
346
+ key: 1,
347
+ class: "flex flex-col items-center justify-center py-48 gap-8"
348
+ }, ot = { class: "fm-typo-en-body-md-400 text-fm-color-neutral-gray-400" }, lt = {
349
+ key: 3,
350
+ class: "flex justify-center py-16"
351
+ }, nt = /* @__PURE__ */ F({
352
+ __name: "ReviewFeed",
353
+ props: {
354
+ reviews: {},
355
+ loading: { type: Boolean },
356
+ hasMore: { type: Boolean }
357
+ },
358
+ emits: ["loadMore"],
359
+ setup(t, { emit: l }) {
360
+ const { t: d } = C(), n = t, r = l, u = x(null);
361
+ return E(() => {
362
+ const i = new IntersectionObserver(
363
+ (v) => {
364
+ v[0].isIntersecting && n.hasMore && !n.loading && r("loadMore");
365
+ },
366
+ { threshold: 0.5 }
367
+ );
368
+ u.value && i.observe(u.value), J(() => i.disconnect());
369
+ }), (i, v) => (o(), s($, null, [
370
+ t.loading && t.reviews.length === 0 ? (o(), s("div", et, [
371
+ y(e(g).FmIcon, {
372
+ name: "sync",
373
+ size: "xl",
374
+ class: "animate-spin text-fm-color-neutral-gray-400"
375
+ })
376
+ ])) : t.reviews.length === 0 ? (o(), s("div", tt, [
377
+ y(e(g).FmIcon, {
378
+ name: "rate_review",
379
+ size: "xl",
380
+ class: "text-fm-color-neutral-gray-300"
381
+ }),
382
+ a("p", ot, w(e(d)("connect.review.overview.empty")), 1)
383
+ ])) : (o(!0), s($, { key: 2 }, T(t.reviews, (h) => (o(), b(Xe, {
384
+ key: h._id,
385
+ review: h
386
+ }, null, 8, ["review"]))), 128)),
387
+ a("div", {
388
+ ref_key: "sentinel",
389
+ ref: u,
390
+ class: "h-1"
391
+ }, null, 512),
392
+ t.loading && t.reviews.length > 0 ? (o(), s("div", lt, [
393
+ y(e(g).FmIcon, {
394
+ name: "sync",
395
+ size: "md",
396
+ class: "animate-spin text-fm-color-neutral-gray-400"
397
+ })
398
+ ])) : k("", !0)
399
+ ], 64));
400
+ }
401
+ }), st = { class: "p-24 flex flex-col gap-12" }, L = 20, at = /* @__PURE__ */ F({
402
+ __name: "ReviewOverview",
403
+ setup(t) {
404
+ const l = x([]), d = x(!1), n = x(!0), r = x(null), u = x(null), i = x(null), v = x(""), h = x("createTime_desc");
405
+ A(r, () => {
406
+ v.value = "";
407
+ });
408
+ function I(p) {
409
+ return {
410
+ source: r.value || void 0,
411
+ dateFrom: u.value || void 0,
412
+ dateTo: i.value || void 0,
413
+ locationId: v.value || void 0,
414
+ sort: h.value,
415
+ limit: L,
416
+ skip: p
417
+ };
418
+ }
419
+ async function S() {
420
+ d.value = !0, n.value = !0;
421
+ try {
422
+ const p = await R.listReviews(I(0));
423
+ l.value = p, n.value = p.length === L;
424
+ } finally {
425
+ d.value = !1;
426
+ }
427
+ }
428
+ async function z() {
429
+ if (!(d.value || !n.value)) {
430
+ d.value = !0;
431
+ try {
432
+ const p = await R.listReviews(I(l.value.length));
433
+ l.value = [...l.value, ...p], n.value = p.length === L;
434
+ } finally {
435
+ d.value = !1;
436
+ }
437
+ }
438
+ }
439
+ return A([r, u, i, v, h], S), E(S), (p, f) => (o(), s("div", st, [
440
+ y(ae, {
441
+ source: e(r),
442
+ "onUpdate:source": f[0] || (f[0] = (c) => B(r) ? r.value = c : null),
443
+ "date-from": e(u),
444
+ "onUpdate:dateFrom": f[1] || (f[1] = (c) => B(u) ? u.value = c : null),
445
+ "date-to": e(i),
446
+ "onUpdate:dateTo": f[2] || (f[2] = (c) => B(i) ? i.value = c : null),
447
+ "location-id": e(v),
448
+ "onUpdate:locationId": f[3] || (f[3] = (c) => B(v) ? v.value = c : null),
449
+ sort: e(h),
450
+ "onUpdate:sort": f[4] || (f[4] = (c) => B(h) ? h.value = c : null)
451
+ }, null, 8, ["source", "date-from", "date-to", "location-id", "sort"]),
452
+ y(nt, {
453
+ reviews: e(l),
454
+ loading: e(d),
455
+ "has-more": e(n),
456
+ onLoadMore: z
457
+ }, null, 8, ["reviews", "loading", "has-more"])
458
+ ]));
459
+ }
460
+ }), rt = { class: "rounded-lg border border-fm-color-neutral-gray-200 bg-white overflow-hidden" }, ct = ["src"], it = { class: "flex flex-col flex-1 min-w-0" }, ut = { class: "fm-typo-en-body-md-600 capitalize" }, dt = {
461
+ key: 0,
462
+ class: "fm-typo-en-body-sm-400 text-fm-color-neutral-gray-400 truncate"
463
+ }, H = /* @__PURE__ */ F({
464
+ __name: "ReviewSource",
465
+ props: {
466
+ icon: {},
467
+ name: {},
468
+ connected: { type: Boolean },
469
+ subtitle: {},
470
+ syncing: { type: Boolean },
471
+ tokenExpired: { type: Boolean }
472
+ },
473
+ emits: ["connect", "sync"],
474
+ setup(t, { emit: l }) {
475
+ const d = l, { t: n } = C(), r = Q();
476
+ return (u, i) => (o(), s("div", rt, [
477
+ a("div", {
478
+ class: j(["flex items-center gap-12 p-16", e(r).default ? "border-b border-fm-color-neutral-gray-100" : ""])
479
+ }, [
480
+ a("img", {
481
+ src: t.icon,
482
+ class: "w-10 h-10 shrink-0"
483
+ }, null, 8, ct),
484
+ a("div", it, [
485
+ a("span", ut, w(t.name), 1),
486
+ t.subtitle ? (o(), s("span", dt, w(t.subtitle), 1)) : k("", !0)
487
+ ]),
488
+ t.connected ? (o(), s($, { key: 0 }, [
489
+ t.tokenExpired ? (o(), b(e(g).FmChip, {
490
+ key: 0,
491
+ label: e(n)("connect.review.expired"),
492
+ variant: "critical"
493
+ }, null, 8, ["label"])) : k("", !0),
494
+ y(e(g).FmButton, {
495
+ variant: "secondary",
496
+ "prepend-icon": "refresh",
497
+ label: e(n)("connect.review.reconnect"),
498
+ onClick: i[0] || (i[0] = (v) => d("connect"))
499
+ }, null, 8, ["label"]),
500
+ t.tokenExpired ? k("", !0) : (o(), b(e(g).FmButton, {
501
+ key: 1,
502
+ variant: "primary",
503
+ "prepend-icon": "sync",
504
+ label: e(n)("connect.review.sync"),
505
+ loading: t.syncing,
506
+ onClick: i[1] || (i[1] = (v) => d("sync"))
507
+ }, null, 8, ["label", "loading"]))
508
+ ], 64)) : (o(), b(e(g).FmButton, {
509
+ key: 1,
510
+ "prepend-icon": "add",
511
+ label: e(n)("connect.review.connect"),
512
+ onClick: i[2] || (i[2] = (v) => d("connect"))
513
+ }, null, 8, ["label"]))
514
+ ], 2),
515
+ W(u.$slots, "default")
516
+ ]));
517
+ }
518
+ }), mt = { class: "p-24 flex flex-col gap-8" }, vt = { class: "flex flex-col flex-1 min-w-0" }, ft = { class: "fm-typo-en-body-lg-600 truncate" }, wt = { class: "fm-typo-en-body-sm-400 text-fm-color-neutral-gray-400 truncate" }, yt = ["src"], gt = { class: "flex flex-col flex-1 min-w-0" }, bt = { class: "fm-typo-en-body-lg-600 truncate" }, ht = { class: "fm-typo-en-body-sm-400 text-fm-color-neutral-gray-400 truncate" }, pt = /* @__PURE__ */ F({
519
+ __name: "ReviewSettings",
520
+ setup(t) {
521
+ const { t: l } = C(), d = oe(), n = x(null), r = x(!1), u = x(!1), i = U(
522
+ () => {
523
+ var c;
524
+ return n.value ? ((c = n.value.google) == null ? void 0 : c.token) === null : !1;
525
+ }
526
+ ), v = U(
527
+ () => {
528
+ var c;
529
+ return n.value ? ((c = n.value.facebook) == null ? void 0 : c.token) === null : !1;
530
+ }
531
+ );
532
+ function h(c) {
533
+ const m = window.location.pathname.replace(/\/review(?:\/.*)?$/, "");
534
+ return `${window.location.origin}${m}${c}`;
535
+ }
536
+ async function I() {
537
+ await le.minor(async () => {
538
+ n.value = await R.getSource();
539
+ });
540
+ }
541
+ async function S() {
542
+ var c, m;
543
+ r.value = !0;
544
+ try {
545
+ await R.syncGoogleReviews();
546
+ } catch (_) {
547
+ if (await I(), ((m = (c = n.value) == null ? void 0 : c.google) == null ? void 0 : m.token) === null) {
548
+ d.open({
549
+ message: l("connect.review.tokenExpired"),
550
+ type: "error"
551
+ });
552
+ return;
553
+ }
554
+ throw _;
555
+ } finally {
556
+ r.value = !1;
557
+ }
558
+ }
559
+ async function z() {
560
+ var c, m;
561
+ u.value = !0;
562
+ try {
563
+ await R.syncFacebookReviews();
564
+ } catch (_) {
565
+ if (await I(), ((m = (c = n.value) == null ? void 0 : c.facebook) == null ? void 0 : m.token) === null) {
566
+ d.open({
567
+ message: l("connect.review.tokenExpired"),
568
+ type: "error"
569
+ });
570
+ return;
571
+ }
572
+ throw _;
573
+ } finally {
574
+ u.value = !1;
575
+ }
576
+ }
577
+ async function p() {
578
+ const c = h("/review/google/callback"), { callbackUrl: m } = await R.getOauthUrl("google", c);
579
+ window.location.href = m;
580
+ }
581
+ async function f() {
582
+ const c = h("/review/facebook/callback"), { callbackUrl: m } = await R.getOauthUrl("facebook", c);
583
+ window.location.href = m;
584
+ }
585
+ return E(I), (c, m) => (o(), s("div", mt, [
586
+ e(n) ? (o(), s($, { key: 0 }, [
587
+ y(H, {
588
+ icon: e(O),
589
+ name: "google",
590
+ connected: !!e(n).google,
591
+ syncing: e(r),
592
+ "token-expired": e(i),
593
+ onConnect: p,
594
+ onSync: S
595
+ }, {
596
+ default: D(() => {
597
+ var _;
598
+ return [
599
+ (o(!0), s($, null, T((_ = e(n).google) == null ? void 0 : _.locations, (M) => {
600
+ var P;
601
+ return o(), s("div", {
602
+ key: M.googleLocationName,
603
+ class: "flex items-center gap-12 px-16 py-12 border-b border-fm-color-neutral-gray-100 last:border-b-0"
604
+ }, [
605
+ y(e(g).FmIcon, {
606
+ name: "location_on",
607
+ class: "text-fm-color-neutral-gray-300 shrink-0"
608
+ }),
609
+ a("div", vt, [
610
+ a("span", ft, w(M.displayName), 1),
611
+ a("span", wt, w(((P = M.location) == null ? void 0 : P.name) ?? e(l)("connect.review.google.noLocations")), 1)
612
+ ])
613
+ ]);
614
+ }), 128))
615
+ ];
616
+ }),
617
+ _: 1
618
+ }, 8, ["icon", "connected", "syncing", "token-expired"]),
619
+ y(H, {
620
+ icon: e(q),
621
+ name: "facebook",
622
+ connected: !!e(n).facebook,
623
+ syncing: e(u),
624
+ "token-expired": e(v),
625
+ onConnect: f,
626
+ onSync: z
627
+ }, {
628
+ default: D(() => {
629
+ var _;
630
+ return [
631
+ (o(!0), s($, null, T((_ = e(n).facebook) == null ? void 0 : _.pages, (M) => (o(), s("div", {
632
+ key: M.facebookPageId,
633
+ class: "flex items-center gap-12 px-16 py-12 border-b border-fm-color-neutral-gray-100 last:border-b-0"
634
+ }, [
635
+ M.pageProfileImageUrl ? (o(), s("img", {
636
+ key: 0,
637
+ src: M.pageProfileImageUrl,
638
+ class: "w-10 h-10 rounded-full shrink-0 object-cover"
639
+ }, null, 8, yt)) : (o(), b(e(g).FmIcon, {
640
+ key: 1,
641
+ name: "person",
642
+ class: "text-fm-color-neutral-gray-300 shrink-0"
643
+ })),
644
+ a("div", gt, [
645
+ a("span", bt, w(M.pageName), 1),
646
+ a("span", ht, w(M.locations.map((P) => P.name).join(", ")), 1)
647
+ ])
648
+ ]))), 128))
649
+ ];
650
+ }),
651
+ _: 1
652
+ }, 8, ["icon", "connected", "syncing", "token-expired"])
653
+ ], 64)) : (o(), s($, { key: 1 }, T(["google", "facebook"], (_) => a("div", {
654
+ key: _,
655
+ class: "rounded-lg border border-fm-color-neutral-gray-200 bg-white p-16"
656
+ }, [...m[0] || (m[0] = [
657
+ X('<div class="animate-pulse flex items-center gap-12"><div class="w-10 h-10 rounded-full bg-fm-color-neutral-gray-100 shrink-0"></div><div class="flex-1 min-w-0 space-y-8"><div class="h-16 w-20 rounded bg-fm-color-neutral-gray-100"></div><div class="h-12 w-full max-w-[160px] rounded bg-fm-color-neutral-gray-100"></div></div><div class="h-32 w-24 rounded bg-fm-color-neutral-gray-100 shrink-0"></div></div>', 1)
658
+ ])])), 64))
659
+ ]));
660
+ }
661
+ }), xt = { class: "flex flex-col" }, kt = { class: "px-24" }, Tt = /* @__PURE__ */ F({
662
+ __name: "Review",
663
+ setup(t) {
664
+ const { t: l } = C(), d = [
665
+ { label: l("connect.review.tabs.overview"), value: "overview" },
666
+ { label: l("connect.review.tabs.settings"), value: "settings" }
667
+ ], n = x(d[0]);
668
+ return (r, u) => {
669
+ const i = Y("FmPageHead"), v = Y("FmTabs");
670
+ return o(), s($, null, [
671
+ y(i, {
672
+ title: e(l)("connect.navigation.review")
673
+ }, null, 8, ["title"]),
674
+ a("div", xt, [
675
+ a("div", kt, [
676
+ y(v, {
677
+ "model-value": e(n).value,
678
+ items: d,
679
+ "onUpdate:modelValue": u[0] || (u[0] = (h) => n.value = d.find((I) => I.value === h))
680
+ }, null, 8, ["model-value"])
681
+ ]),
682
+ (o(), b(ee, null, [
683
+ e(n).value === "overview" ? (o(), b(at, { key: 0 })) : e(n).value === "settings" ? (o(), b(pt, { key: 1 })) : k("", !0)
684
+ ], 1024))
685
+ ])
686
+ ], 64);
687
+ };
688
+ }
689
+ });
690
+ export {
691
+ Tt as default
692
+ };