@feedmepos/mf-connect 0.1.38-beta.75 → 0.1.38-beta.76
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.
- package/dist/{Analytic-9B27Q-I3.js → Analytic-BrBxRQue.js} +14 -14
- package/dist/{App-isiE4pjM.js → App-CE_19YJc.js} +7 -7
- package/dist/{AuditLogs-BmHr7pNI.js → AuditLogs-CQtMmVIp.js} +9 -9
- package/dist/{Bin-BR06pDbx.js → Bin-D9CHhiUb.js} +8 -8
- package/dist/{Broadcast-D_t80J2I.js → Broadcast-Dg6eBL_f.js} +10 -10
- package/dist/{CampaignTypeDialog.vue_vue_type_script_setup_true_lang-C5IuPCTB.js → CampaignTypeDialog.vue_vue_type_script_setup_true_lang-CSv0R9XX.js} +6 -6
- package/dist/{Card-Zs-1lcSr.js → Card-BTkf67i1.js} +18 -18
- package/dist/{Collections-BjeTJSHo.js → Collections-Czq4nsdu.js} +8 -8
- package/dist/{Credit-DdmdsxOF.js → Credit-B3nX8aJA.js} +10 -10
- package/dist/{EditCampaignSheet.vue_vue_type_script_setup_true_lang-DkOfrONH.js → EditCampaignSheet.vue_vue_type_script_setup_true_lang-D2gTuN97.js} +33 -33
- package/dist/{EffectSheet.vue_vue_type_style_index_0_lang-kzk3iEKA.js → EffectSheet.vue_vue_type_style_index_0_lang-5U6cSZGZ.js} +6 -6
- package/dist/{Experience-WxtE9ZIT.js → Experience-B9Vn3NTH.js} +10 -10
- package/dist/{FileSaver.min-Vgxo4jNi.js → FileSaver.min-CJaOkSQt.js} +1 -1
- package/dist/{Game-Cc0mZ3y4.js → Game-DTx_EsM3.js} +11 -11
- package/dist/{GenerateMaterial-Dsvnpz4o.js → GenerateMaterial-C3J9_YHw.js} +6 -6
- package/dist/{Grab-CcaXToD-.js → Grab-B29W7rka.js} +9 -9
- package/dist/{ImageInput.vue_vue_type_script_setup_true_lang-D0yJMgs9.js → ImageInput.vue_vue_type_script_setup_true_lang-DyegKNzM.js} +1 -1
- package/dist/{Index-C0TcFJJY.js → Index-Fk8EP5dG.js} +10 -10
- package/dist/{LocationPicker.vue_vue_type_script_setup_true_lang-CXFtSS9_.js → LocationPicker.vue_vue_type_script_setup_true_lang-D2XPGgTM.js} +1 -1
- package/dist/{LottieAnimation.vue_vue_type_script_setup_true_lang-Ca7hKpcD.js → LottieAnimation.vue_vue_type_script_setup_true_lang-K8qUYrPk.js} +1 -1
- package/dist/{MainLayout-DPpjvWwq.js → MainLayout-BFmqJkE_.js} +1 -1
- package/dist/{Marketing-DfXuNM7X.js → Marketing-BRHQHAWD.js} +4 -4
- package/dist/{MarketingMaterialEdit-C63qyQSd.js → MarketingMaterialEdit-7s3WEDyJ.js} +4 -4
- package/dist/{Member-LTYVn-80.js → Member-DwPJNAo9.js} +11 -11
- package/dist/{MemberList-Gqr6ha5p.js → MemberList-mS1W0qHY.js} +26 -26
- package/dist/{MemberTransactions-CVZ-SPhm.js → MemberTransactions-BV3xvFYS.js} +1 -1
- package/dist/{MessageInput.vue_vue_type_script_setup_true_lang-BGooFTgg.js → MessageInput.vue_vue_type_script_setup_true_lang-DzKqVp2O.js} +9 -9
- package/dist/{Mission-CLQdNsOe.js → Mission-QmoURSu4.js} +11 -11
- package/dist/{Overview-BluyLBRI.js → Overview-CaTMLlq-.js} +18 -18
- package/dist/{Point-DQLQxJG1.js → Point-CjG77Sma.js} +10 -10
- package/dist/{Promotion-BG0xL1ed.js → Promotion-C5I-1qPN.js} +11 -11
- package/dist/{Queue-BR7TrLI8.js → Queue-BaIBCCaX.js} +10 -10
- package/dist/{Record-2WFpDhAb.js → Record-DqpGwZIU.js} +9 -9
- package/dist/{Review-Bu9SGftr.js → Review-Bq-edSOO.js} +244 -240
- package/dist/{ReviewFacebookCallback-CV99Udei.js → ReviewFacebookCallback-yaC4rLki.js} +4 -4
- package/dist/{ReviewGoogleCallback-DiqgQzOt.js → ReviewGoogleCallback-uxrrCQdu.js} +4 -4
- package/dist/{Reward-CPhM3ChT.js → Reward-DGP65n5t.js} +16 -16
- package/dist/{RewardGroup.vue_vue_type_script_setup_true_lang-Q9pVq11w.js → RewardGroup.vue_vue_type_script_setup_true_lang-bNMoMZOy.js} +11 -11
- package/dist/{RuleGroup.vue_vue_type_script_setup_true_lang-BRUQtqjv.js → RuleGroup.vue_vue_type_script_setup_true_lang-Dgrc6vXF.js} +14 -14
- package/dist/{Segment-D6V8FKUY.js → Segment-CNz0sR3c.js} +24 -24
- package/dist/{SelectItems.vue_vue_type_script_setup_true_lang-BrE1gGHP.js → SelectItems.vue_vue_type_script_setup_true_lang-DLZEzpve.js} +2 -2
- package/dist/{SendCollectionSheet.vue_vue_type_script_setup_true_lang-DQhO9k7V.js → SendCollectionSheet.vue_vue_type_script_setup_true_lang-CLdIeyef.js} +12 -12
- package/dist/{SendVoucherSheet.vue_vue_type_script_setup_true_lang-CyHx6m95.js → SendVoucherSheet.vue_vue_type_script_setup_true_lang-ocCdtbbe.js} +4 -4
- package/dist/{Setting-Bh5bB75w.js → Setting-BKDSGYBR.js} +14 -14
- package/dist/{SettingAdvertisements-CFUjq6s1.js → SettingAdvertisements-B2GMFfN9.js} +12 -12
- package/dist/{Store-DiVaUn7w.js → Store-C6uLl_Ue.js} +21 -21
- package/dist/{StoreRewards-Bb9iW3Yz.js → StoreRewards-D4728UDf.js} +15 -15
- package/dist/{StoreTransactions.vue_vue_type_script_setup_true_lang-DVFsPzLK.js → StoreTransactions.vue_vue_type_script_setup_true_lang-CG09fJTP.js} +21 -21
- package/dist/{TargetLocationInput.vue_vue_type_script_setup_true_lang-D9uZR0si.js → TargetLocationInput.vue_vue_type_script_setup_true_lang-B0_bMK5u.js} +2 -2
- package/dist/{Tier-BYxLjqAB.js → Tier-BNzTa1_w.js} +24 -24
- package/dist/{Title-D3cdNE2O.js → Title-DY5knovF.js} +21 -21
- package/dist/{Transaction-D7ItbBra.js → Transaction-Ct4yAJ9n.js} +2 -2
- package/dist/{UserRuleGroup.vue_vue_type_script_setup_true_lang-UXSlpEM0.js → UserRuleGroup.vue_vue_type_script_setup_true_lang-CHnxi3XZ.js} +6 -6
- package/dist/{Voucher-DNQz_ujN.js → Voucher-DFTMRPT0.js} +14 -14
- package/dist/{VoucherEditor.vue_vue_type_script_setup_true_lang-CztGuaCV.js → VoucherEditor.vue_vue_type_script_setup_true_lang-DZU7XVlZ.js} +12 -12
- package/dist/{ZodTextField.vue_vue_type_script_setup_true_lang-RI0mY3Nx.js → ZodTextField.vue_vue_type_script_setup_true_lang-BndLHmHB.js} +2 -2
- package/dist/{app-zPef9Uzl.js → app-6lG4w5PT.js} +52 -52
- package/dist/app.js +1 -1
- package/dist/{business-DKEB57Mf.js → business-CrfQ56D0.js} +1 -1
- package/dist/{campaign-BD_s6pW4.js → campaign-B9fR7RwT.js} +2 -2
- package/dist/{campaign-D9IfNIPI.js → campaign-B_iIaTKz.js} +8 -8
- package/dist/{campaign.enum-gPz5hWSW.js → campaign.enum-BAHf0dSv.js} +1 -1
- package/dist/{campaign.fn-Csxad3W7.js → campaign.fn-DDEgBzH2.js} +32 -32
- package/dist/{collectible.enum-CA-QbTP-.js → collectible.enum-9os2zr5a.js} +1 -1
- package/dist/{collection.fn-tFxG0UiA.js → collection.fn-7qP_m2MW.js} +2 -2
- package/dist/{dto-CdvywxS_.js → dto-C2hLQKuu.js} +4 -4
- package/dist/{duplicateCampaign-Cj68m0Ti.js → duplicateCampaign-C6RXfeWE.js} +2 -2
- package/dist/{effect-KecOJIEK.js → effect-DGVfWyIc.js} +1 -1
- package/dist/{email-addresses-Ske7sY-s.js → email-addresses-BHa_qQBd.js} +2 -2
- package/dist/{export-17vDh5vq.js → export-CRPfo4hq.js} +3 -3
- package/dist/{helper-B-ZDFjy7.js → helper-0_zrz4kj.js} +1 -1
- package/dist/{index-CNLqZu6_.js → index-4Vl1VXum.js} +6 -6
- package/dist/{index-woXH3LmA.js → index-4bX0ewBJ.js} +1 -1
- package/dist/{index-BwLCkOIF.js → index-Bj0TV_D5.js} +1 -1
- package/dist/{index-C1Z4oibL.js → index-BpdSswT6.js} +1 -1
- package/dist/{index-CdByBgmF.js → index-By2wenzb.js} +1 -1
- package/dist/{index-D58_aTiN.js → index-C8L2jQ_6.js} +2 -2
- package/dist/{index-BRZC-Cy5.js → index-CO5kQMIK.js} +1 -1
- package/dist/{index-CkqQGjg1.js → index-CW_ub4cF.js} +3 -3
- package/dist/{index-D05Pcg0E.js → index-Cp8wkBus.js} +1 -1
- package/dist/{index-Dc2JsMD2.js → index-D6Te1BQZ.js} +3 -3
- package/dist/{index-Dh78uGTl.js → index-DbJGJ2fB.js} +1 -1
- package/dist/{index-BV_G-XzK.js → index-DeaGdUSH.js} +3 -3
- package/dist/{index-DnrSd_o_.js → index-Dp1J9Fxa.js} +1 -1
- package/dist/{index-DCzjjZgV.js → index-QUvYZydO.js} +1 -1
- package/dist/{index-DY3_9zbY.js → index-lwxV5iX0.js} +4 -4
- package/dist/{index.esm2017-DxQe1gCt.js → index.esm2017-ofRmIpjY.js} +1 -1
- package/dist/{loading-B1ymwDT_.js → loading-8_73fcXo.js} +1 -1
- package/dist/{lodash-BiGSPE0G.js → lodash-Bz_vrY3P.js} +1 -1
- package/dist/{membership-GnNCDGBk.js → membership-CpB39vNW.js} +3 -3
- package/dist/{money-CG6LGklW.js → money-DALHjzjF.js} +1 -1
- package/dist/{number-p19we-YD.js → number-D_GJahxw.js} +1 -1
- package/dist/{objectid-XhaZoPQl.js → objectid-BZSH63yc.js} +9 -9
- package/dist/{plugins-cxSxZO0d.js → plugins-A4jDcmfS.js} +3 -3
- package/dist/{reward-siULTu5h.js → reward-BqFB2Yn2.js} +1 -1
- package/dist/{rule-GD9oMCPH.js → rule-DNylZfIG.js} +3 -3
- package/dist/{rule-builder-DWFem4d5.js → rule-builder-2iT04EOj.js} +1 -1
- package/dist/{template-o23nw6e2.js → template-D7rpG7FN.js} +6 -6
- package/dist/{timezone-BVwygiRH.js → timezone-BW17tvi2.js} +2 -2
- package/dist/{trigger-CrEBP1aZ.js → trigger-CbVrS2i6.js} +5 -5
- package/dist/{usePagination-BbTCnhtY.js → usePagination-dXSoqxfG.js} +1 -1
- package/dist/{user-DcMEufQ6.js → user-Ck-m3cB3.js} +1 -1
- package/dist/{vue-i18n-BxV_u4BZ.js → vue-i18n-BvqmcBWZ.js} +317 -317
- package/dist/{xlsx-BnJDxONa.js → xlsx-CkqDfUNs.js} +440 -440
- package/dist/{zod-CUN5LrI6.js → zod-B0YxCfoE.js} +1 -1
- package/package.json +1 -1
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import { u as
|
|
3
|
-
import { _ as
|
|
4
|
-
import { u as
|
|
5
|
-
import { components as p, useSnackbar as
|
|
6
|
-
import { h as
|
|
7
|
-
import { r as
|
|
8
|
-
import { u as
|
|
9
|
-
const oe = { class: "flex justify-between gap-8" },
|
|
1
|
+
import { defineComponent as I, useModel as B, computed as U, onMounted as Y, resolveComponent as A, openBlock as o, createElementBlock as s, createElementVNode as a, createVNode as y, unref as e, createBlock as b, createCommentVNode as _, toDisplayString as w, normalizeClass as P, Fragment as F, renderList as S, ref as x, onUnmounted as K, watch as j, isRef as z, useSlots as Z, renderSlot as J, withCtx as D, createStaticVNode as Q, KeepAlive as W } from "vue";
|
|
2
|
+
import { u as C } from "./vue-i18n-BvqmcBWZ.js";
|
|
3
|
+
import { _ as G } from "./DateInput.vue_vue_type_script_setup_true_lang-BN4Q5Y3l.js";
|
|
4
|
+
import { u as X } from "./business-CrfQ56D0.js";
|
|
5
|
+
import { components as p, useSnackbar as ee } from "@feedmepos/ui-library";
|
|
6
|
+
import { h as L } from "./moment-D7p2TMB-.js";
|
|
7
|
+
import { r as R } from "./index-BpdSswT6.js";
|
|
8
|
+
import { u as te } from "./loading-8_73fcXo.js";
|
|
9
|
+
const oe = { class: "flex justify-between gap-8" }, ne = { class: "flex flex-wrap gap-8" }, le = /* @__PURE__ */ I({
|
|
10
10
|
__name: "ReviewListingController",
|
|
11
11
|
props: {
|
|
12
12
|
source: { required: !0 },
|
|
@@ -21,263 +21,263 @@ const oe = { class: "flex justify-between gap-8" }, te = { class: "flex flex-wra
|
|
|
21
21
|
sortModifiers: {}
|
|
22
22
|
},
|
|
23
23
|
emits: ["update:source", "update:dateFrom", "update:dateTo", "update:locationId", "update:sort"],
|
|
24
|
-
setup(
|
|
25
|
-
const { t: n } =
|
|
24
|
+
setup(t) {
|
|
25
|
+
const { t: n } = C(), u = B(t, "source"), l = B(t, "dateFrom"), c = B(t, "dateTo"), d = B(t, "locationId"), i = B(t, "sort"), v = X(), g = U(() => [
|
|
26
26
|
{ label: n("connect.review.filter.allSources"), value: "" },
|
|
27
27
|
{ label: "Google", value: "google" },
|
|
28
28
|
{ label: "Facebook", value: "facebook" }
|
|
29
|
-
]),
|
|
29
|
+
]), $ = U(() => [
|
|
30
30
|
{ label: n("connect.review.filter.allLocations"), value: "" },
|
|
31
31
|
...v.locationOptions.map((h) => ({ label: h.label, value: h.value }))
|
|
32
|
-
]), T =
|
|
32
|
+
]), T = U(() => [
|
|
33
33
|
{ label: n("connect.review.filter.sort.createTime_desc"), value: "createTime_desc" },
|
|
34
34
|
{ label: n("connect.review.filter.sort.createTime_asc"), value: "createTime_asc" },
|
|
35
35
|
{ label: n("connect.review.filter.sort.rating_asc"), value: "rating_asc" },
|
|
36
36
|
{ label: n("connect.review.filter.sort.rating_desc"), value: "rating_desc" }
|
|
37
|
-
]),
|
|
37
|
+
]), V = U(
|
|
38
38
|
() => v.locations.length > 0
|
|
39
39
|
);
|
|
40
|
-
return
|
|
41
|
-
const
|
|
42
|
-
return
|
|
43
|
-
|
|
44
|
-
y(
|
|
40
|
+
return Y(() => v.readLocations()), (h, f) => {
|
|
41
|
+
const r = A("FmSelect");
|
|
42
|
+
return o(), s("div", oe, [
|
|
43
|
+
a("div", ne, [
|
|
44
|
+
y(r, {
|
|
45
45
|
modelValue: u.value,
|
|
46
|
-
"onUpdate:modelValue":
|
|
46
|
+
"onUpdate:modelValue": f[0] || (f[0] = (m) => u.value = m),
|
|
47
47
|
label: e(n)("connect.review.filter.source"),
|
|
48
48
|
items: e(g)
|
|
49
49
|
}, null, 8, ["modelValue", "label", "items"]),
|
|
50
|
-
e(
|
|
50
|
+
e(V) ? (o(), b(r, {
|
|
51
51
|
key: 0,
|
|
52
52
|
modelValue: d.value,
|
|
53
|
-
"onUpdate:modelValue":
|
|
53
|
+
"onUpdate:modelValue": f[1] || (f[1] = (m) => d.value = m),
|
|
54
54
|
label: e(n)("connect.review.filter.location"),
|
|
55
|
-
items: e(
|
|
56
|
-
}, null, 8, ["modelValue", "label", "items"])) :
|
|
57
|
-
y(
|
|
55
|
+
items: e($)
|
|
56
|
+
}, null, 8, ["modelValue", "label", "items"])) : _("", !0),
|
|
57
|
+
y(G, {
|
|
58
58
|
label: e(n)("connect.review.filter.dateFrom"),
|
|
59
59
|
"model-value": l.value,
|
|
60
|
-
"onUpdate:modelValue":
|
|
60
|
+
"onUpdate:modelValue": f[2] || (f[2] = (m) => l.value = m)
|
|
61
61
|
}, null, 8, ["label", "model-value"]),
|
|
62
|
-
y(
|
|
62
|
+
y(G, {
|
|
63
63
|
label: e(n)("connect.review.filter.dateTo"),
|
|
64
64
|
"model-value": c.value,
|
|
65
|
-
"onUpdate:modelValue":
|
|
65
|
+
"onUpdate:modelValue": f[3] || (f[3] = (m) => c.value = m)
|
|
66
66
|
}, null, 8, ["label", "model-value"])
|
|
67
67
|
]),
|
|
68
|
-
y(
|
|
68
|
+
y(r, {
|
|
69
69
|
modelValue: i.value,
|
|
70
|
-
"onUpdate:modelValue":
|
|
70
|
+
"onUpdate:modelValue": f[4] || (f[4] = (m) => i.value = m),
|
|
71
71
|
label: e(n)("connect.review.filter.sort.label"),
|
|
72
72
|
items: e(T)
|
|
73
73
|
}, null, 8, ["modelValue", "label", "items"])
|
|
74
74
|
]);
|
|
75
75
|
};
|
|
76
76
|
}
|
|
77
|
-
}),
|
|
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", se = { class: "rounded-lg border border-fm-color-neutral-gray-200 bg-white p-16 flex flex-col gap-8" }, ae = { class: "flex items-center gap-8" }, re = ["src"], ce = { class: "flex flex-col flex-1 min-w-0" }, ie = { class: "fm-typo-en-body-md-600 truncate" }, ue = { class: "fm-typo-en-body-sm-400 text-fm-color-neutral-gray-400" }, de = { class: "flex items-center gap-4 shrink-0" }, me = ["src"], ve = {
|
|
78
78
|
key: 0,
|
|
79
79
|
class: "fm-typo-en-body-sm-400 text-fm-color-neutral-gray-400"
|
|
80
|
-
},
|
|
80
|
+
}, fe = {
|
|
81
81
|
key: 0,
|
|
82
82
|
class: "flex items-center gap-4"
|
|
83
|
-
},
|
|
83
|
+
}, we = {
|
|
84
84
|
key: 1,
|
|
85
85
|
class: "fm-typo-en-body-md-400 text-fm-color-neutral-gray-700 line-clamp-3"
|
|
86
|
-
},
|
|
86
|
+
}, ye = {
|
|
87
87
|
key: 2,
|
|
88
88
|
class: "fm-typo-en-body-md-400 text-fm-color-neutral-gray-400 italic"
|
|
89
|
-
},
|
|
89
|
+
}, ge = /* @__PURE__ */ I({
|
|
90
90
|
__name: "FacebookReviewCard",
|
|
91
91
|
props: {
|
|
92
92
|
review: {}
|
|
93
93
|
},
|
|
94
|
-
setup(
|
|
95
|
-
const { t: n } =
|
|
94
|
+
setup(t) {
|
|
95
|
+
const { t: n } = C();
|
|
96
96
|
return (u, l) => {
|
|
97
97
|
var c, d, i;
|
|
98
|
-
return
|
|
99
|
-
|
|
100
|
-
(c =
|
|
98
|
+
return o(), s("div", se, [
|
|
99
|
+
a("div", ae, [
|
|
100
|
+
(c = t.review.reviewer) != null && c.pictureUrl ? (o(), s("img", {
|
|
101
101
|
key: 0,
|
|
102
|
-
src: (d =
|
|
102
|
+
src: (d = t.review.reviewer) == null ? void 0 : d.pictureUrl,
|
|
103
103
|
class: "w-32 h-32 rounded-full shrink-0 object-cover"
|
|
104
|
-
}, null, 8,
|
|
104
|
+
}, null, 8, re)) : (o(), b(e(p).FmIcon, {
|
|
105
105
|
key: 1,
|
|
106
106
|
name: "person",
|
|
107
107
|
class: "text-fm-color-neutral-gray-300 shrink-0"
|
|
108
108
|
})),
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
109
|
+
a("div", ce, [
|
|
110
|
+
a("span", ie, w(((i = t.review.reviewer) == null ? void 0 : i.name) ?? e(n)("connect.review.overview.anonymous")), 1),
|
|
111
|
+
a("span", ue, w(e(L)(t.review.createTime).format("D MMM YYYY, hh:mmA")), 1)
|
|
112
112
|
]),
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
src: e(
|
|
113
|
+
a("div", de, [
|
|
114
|
+
a("img", {
|
|
115
|
+
src: e(q),
|
|
116
116
|
class: "w-16 h-16"
|
|
117
|
-
}, null, 8,
|
|
118
|
-
|
|
117
|
+
}, null, 8, me),
|
|
118
|
+
t.review.pageName ? (o(), s("span", ve, w(t.review.pageName), 1)) : _("", !0)
|
|
119
119
|
])
|
|
120
120
|
]),
|
|
121
|
-
|
|
121
|
+
t.review.isPositive != null ? (o(), s("div", fe, [
|
|
122
122
|
y(e(p).FmIcon, {
|
|
123
|
-
name:
|
|
123
|
+
name: t.review.isPositive ? "thumb_up" : "thumb_down",
|
|
124
124
|
size: "sm",
|
|
125
|
-
class:
|
|
126
|
-
|
|
125
|
+
class: P(
|
|
126
|
+
t.review.isPositive ? "text-fm-color-typo-success" : "text-fm-color-system-error-500"
|
|
127
127
|
)
|
|
128
128
|
}, null, 8, ["name", "class"]),
|
|
129
|
-
|
|
130
|
-
class:
|
|
129
|
+
a("span", {
|
|
130
|
+
class: P([
|
|
131
131
|
"fm-typo-en-body-sm-400",
|
|
132
|
-
|
|
132
|
+
t.review.isPositive ? "text-fm-color-typo-success" : "text-fm-color-system-error-500"
|
|
133
133
|
])
|
|
134
|
-
},
|
|
135
|
-
])) :
|
|
136
|
-
|
|
134
|
+
}, w(t.review.isPositive ? e(n)("connect.review.overview.positive") : e(n)("connect.review.overview.negative")), 3)
|
|
135
|
+
])) : _("", !0),
|
|
136
|
+
t.review.comment ? (o(), s("p", we, w(t.review.comment), 1)) : (o(), s("p", ye, w(e(n)("connect.review.overview.noComment")), 1))
|
|
137
137
|
]);
|
|
138
138
|
};
|
|
139
139
|
}
|
|
140
|
-
}),
|
|
140
|
+
}), pe = "/feedme.ico", be = { class: "rounded-lg border border-fm-color-neutral-gray-200 bg-white p-16 flex flex-col gap-8" }, he = { class: "flex items-center gap-8" }, xe = ["src"], ke = { class: "flex flex-col flex-1 min-w-0" }, _e = { class: "fm-typo-en-body-md-600 truncate" }, $e = { class: "fm-typo-en-body-sm-400 text-fm-color-neutral-gray-400" }, Fe = { class: "flex items-center gap-4 shrink-0" }, Ie = {
|
|
141
141
|
key: 0,
|
|
142
142
|
class: "fm-typo-en-body-sm-400 text-fm-color-neutral-gray-400"
|
|
143
|
-
},
|
|
143
|
+
}, Me = { class: "flex items-center gap-4" }, Ue = {
|
|
144
144
|
key: 0,
|
|
145
145
|
class: "fm-typo-en-body-md-400 text-fm-color-neutral-gray-700 line-clamp-3"
|
|
146
|
-
},
|
|
146
|
+
}, Ce = {
|
|
147
147
|
key: 1,
|
|
148
148
|
class: "fm-typo-en-body-md-400 text-fm-color-neutral-gray-400 italic"
|
|
149
|
-
},
|
|
149
|
+
}, Re = /* @__PURE__ */ I({
|
|
150
150
|
__name: "FeedmeReviewCard",
|
|
151
151
|
props: {
|
|
152
152
|
review: {}
|
|
153
153
|
},
|
|
154
|
-
setup(
|
|
155
|
-
const { t: n } =
|
|
156
|
-
return (u, l) => (
|
|
157
|
-
|
|
158
|
-
|
|
154
|
+
setup(t) {
|
|
155
|
+
const { t: n } = C();
|
|
156
|
+
return (u, l) => (o(), s("div", be, [
|
|
157
|
+
a("div", he, [
|
|
158
|
+
t.review.reviewer.photoUrl ? (o(), s("img", {
|
|
159
159
|
key: 0,
|
|
160
|
-
src:
|
|
160
|
+
src: t.review.reviewer.photoUrl,
|
|
161
161
|
class: "w-32 h-32 rounded-full shrink-0 object-cover"
|
|
162
|
-
}, null, 8,
|
|
162
|
+
}, null, 8, xe)) : (o(), b(e(p).FmIcon, {
|
|
163
163
|
key: 1,
|
|
164
164
|
name: "person",
|
|
165
165
|
class: "text-fm-color-neutral-gray-300 shrink-0"
|
|
166
166
|
})),
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
167
|
+
a("div", ke, [
|
|
168
|
+
a("span", _e, w(t.review.reviewer.name ?? e(n)("connect.review.overview.anonymous")), 1),
|
|
169
|
+
a("span", $e, w(e(L)(t.review.createTime).format("D MMM YYYY, hh:mmA")), 1)
|
|
170
170
|
]),
|
|
171
|
-
|
|
172
|
-
l[0] || (l[0] =
|
|
173
|
-
src:
|
|
171
|
+
a("div", Fe, [
|
|
172
|
+
l[0] || (l[0] = a("img", {
|
|
173
|
+
src: pe,
|
|
174
174
|
class: "w-16 h-16"
|
|
175
175
|
}, null, -1)),
|
|
176
|
-
|
|
176
|
+
t.review.location ? (o(), s("span", Ie, w(t.review.location.name), 1)) : _("", !0)
|
|
177
177
|
])
|
|
178
178
|
]),
|
|
179
|
-
|
|
180
|
-
(
|
|
179
|
+
a("div", Me, [
|
|
180
|
+
(o(), s(F, null, S(5, (c) => y(e(p).FmIcon, {
|
|
181
181
|
key: c,
|
|
182
182
|
name: "star",
|
|
183
183
|
size: "sm",
|
|
184
|
-
class:
|
|
185
|
-
c <=
|
|
184
|
+
class: P(
|
|
185
|
+
c <= t.review.starRating ? "text-yellow-400" : "text-fm-color-neutral-gray-200"
|
|
186
186
|
)
|
|
187
187
|
}, null, 8, ["class"])), 64))
|
|
188
188
|
]),
|
|
189
|
-
|
|
189
|
+
t.review.comment ? (o(), s("p", Ue, w(t.review.comment), 1)) : (o(), s("p", Ce, w(e(n)("connect.review.overview.noComment")), 1))
|
|
190
190
|
]));
|
|
191
191
|
}
|
|
192
|
-
}),
|
|
192
|
+
}), 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", Te = { class: "rounded-lg border border-fm-color-neutral-gray-200 bg-white p-16 flex flex-col gap-8" }, Se = { class: "flex items-center gap-8" }, Ve = ["src"], Be = { class: "flex flex-col flex-1 min-w-0" }, ze = { class: "fm-typo-en-body-md-600 truncate" }, Pe = { class: "fm-typo-en-body-sm-400 text-fm-color-neutral-gray-400" }, Ee = { class: "flex items-center gap-4 shrink-0" }, Ye = ["src"], Ne = {
|
|
193
193
|
key: 0,
|
|
194
194
|
class: "fm-typo-en-body-sm-400 text-fm-color-neutral-gray-400"
|
|
195
|
-
},
|
|
195
|
+
}, Ae = { class: "flex items-center gap-4" }, Le = {
|
|
196
196
|
key: 0,
|
|
197
197
|
class: "fm-typo-en-body-md-400 text-fm-color-neutral-gray-700 line-clamp-3"
|
|
198
|
-
},
|
|
198
|
+
}, je = {
|
|
199
199
|
key: 1,
|
|
200
200
|
class: "fm-typo-en-body-md-400 text-fm-color-neutral-gray-400 italic"
|
|
201
|
-
},
|
|
201
|
+
}, De = /* @__PURE__ */ I({
|
|
202
202
|
__name: "GoogleReviewCard",
|
|
203
203
|
props: {
|
|
204
204
|
review: {}
|
|
205
205
|
},
|
|
206
|
-
setup(
|
|
207
|
-
const { t: n } =
|
|
206
|
+
setup(t) {
|
|
207
|
+
const { t: n } = C();
|
|
208
208
|
return (u, l) => {
|
|
209
209
|
var c, d, i;
|
|
210
|
-
return
|
|
211
|
-
|
|
212
|
-
(c =
|
|
210
|
+
return o(), s("div", Te, [
|
|
211
|
+
a("div", Se, [
|
|
212
|
+
(c = t.review.reviewer) != null && c.pictureUrl ? (o(), s("img", {
|
|
213
213
|
key: 0,
|
|
214
|
-
src: (d =
|
|
214
|
+
src: (d = t.review.reviewer) == null ? void 0 : d.pictureUrl,
|
|
215
215
|
class: "w-32 h-32 rounded-full shrink-0 object-cover"
|
|
216
|
-
}, null, 8,
|
|
216
|
+
}, null, 8, Ve)) : (o(), b(e(p).FmIcon, {
|
|
217
217
|
key: 1,
|
|
218
218
|
name: "person",
|
|
219
219
|
class: "text-fm-color-neutral-gray-300 shrink-0"
|
|
220
220
|
})),
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
221
|
+
a("div", Be, [
|
|
222
|
+
a("span", ze, w(((i = t.review.reviewer) == null ? void 0 : i.name) ?? e(n)("connect.review.overview.anonymous")), 1),
|
|
223
|
+
a("span", Pe, w(e(L)(t.review.createTime).format("D MMM YYYY, hh:mmA")), 1)
|
|
224
224
|
]),
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
src: e(
|
|
225
|
+
a("div", Ee, [
|
|
226
|
+
a("img", {
|
|
227
|
+
src: e(O),
|
|
228
228
|
class: "w-16 h-16"
|
|
229
|
-
}, null, 8,
|
|
230
|
-
|
|
229
|
+
}, null, 8, Ye),
|
|
230
|
+
t.review.locationDisplayName ? (o(), s("span", Ne, w(t.review.locationDisplayName), 1)) : _("", !0)
|
|
231
231
|
])
|
|
232
232
|
]),
|
|
233
|
-
|
|
234
|
-
(
|
|
233
|
+
a("div", Ae, [
|
|
234
|
+
(o(), s(F, null, S(5, (v) => y(e(p).FmIcon, {
|
|
235
235
|
key: v,
|
|
236
236
|
name: "star",
|
|
237
237
|
size: "sm",
|
|
238
|
-
class:
|
|
239
|
-
v <=
|
|
238
|
+
class: P(
|
|
239
|
+
v <= t.review.starRating ? "text-yellow-400" : "text-fm-color-neutral-gray-200"
|
|
240
240
|
)
|
|
241
241
|
}, null, 8, ["class"])), 64))
|
|
242
242
|
]),
|
|
243
|
-
|
|
243
|
+
t.review.comment ? (o(), s("p", Le, w(t.review.comment), 1)) : (o(), s("p", je, w(e(n)("connect.review.overview.noComment")), 1))
|
|
244
244
|
]);
|
|
245
245
|
};
|
|
246
246
|
}
|
|
247
|
-
}),
|
|
247
|
+
}), Ge = /* @__PURE__ */ I({
|
|
248
248
|
__name: "ReviewCard",
|
|
249
249
|
props: {
|
|
250
250
|
review: {}
|
|
251
251
|
},
|
|
252
|
-
setup(
|
|
253
|
-
const n =
|
|
252
|
+
setup(t) {
|
|
253
|
+
const n = t, u = U(
|
|
254
254
|
() => n.review.source === "google" ? n.review : null
|
|
255
|
-
), l =
|
|
255
|
+
), l = U(
|
|
256
256
|
() => n.review.source === "facebook" ? n.review : null
|
|
257
|
-
), c =
|
|
257
|
+
), c = U(
|
|
258
258
|
() => n.review.source === "feedme" ? n.review : null
|
|
259
259
|
);
|
|
260
|
-
return console.log(n.review), (d, i) => u.value ? (
|
|
260
|
+
return console.log(n.review), (d, i) => u.value ? (o(), b(De, {
|
|
261
261
|
key: 0,
|
|
262
262
|
review: u.value
|
|
263
|
-
}, null, 8, ["review"])) : l.value ? (
|
|
263
|
+
}, null, 8, ["review"])) : l.value ? (o(), b(ge, {
|
|
264
264
|
key: 1,
|
|
265
265
|
review: l.value
|
|
266
|
-
}, null, 8, ["review"])) : c.value ? (
|
|
266
|
+
}, null, 8, ["review"])) : c.value ? (o(), b(Re, {
|
|
267
267
|
key: 2,
|
|
268
268
|
review: c.value
|
|
269
|
-
}, null, 8, ["review"])) :
|
|
269
|
+
}, null, 8, ["review"])) : _("", !0);
|
|
270
270
|
}
|
|
271
|
-
}),
|
|
271
|
+
}), He = {
|
|
272
272
|
key: 0,
|
|
273
273
|
class: "flex justify-center py-32"
|
|
274
|
-
},
|
|
274
|
+
}, qe = {
|
|
275
275
|
key: 1,
|
|
276
276
|
class: "flex flex-col items-center justify-center py-48 gap-8"
|
|
277
|
-
},
|
|
277
|
+
}, Oe = { class: "fm-typo-en-body-md-400 text-fm-color-neutral-gray-400" }, Ke = {
|
|
278
278
|
key: 3,
|
|
279
279
|
class: "flex justify-center py-16"
|
|
280
|
-
},
|
|
280
|
+
}, Ze = /* @__PURE__ */ I({
|
|
281
281
|
__name: "ReviewFeed",
|
|
282
282
|
props: {
|
|
283
283
|
reviews: {},
|
|
@@ -285,111 +285,111 @@ const oe = { class: "flex justify-between gap-8" }, te = { class: "flex flex-wra
|
|
|
285
285
|
hasMore: { type: Boolean }
|
|
286
286
|
},
|
|
287
287
|
emits: ["loadMore"],
|
|
288
|
-
setup(
|
|
289
|
-
const { t: u } =
|
|
290
|
-
return
|
|
288
|
+
setup(t, { emit: n }) {
|
|
289
|
+
const { t: u } = C(), l = t, c = n, d = x(null);
|
|
290
|
+
return Y(() => {
|
|
291
291
|
const i = new IntersectionObserver(
|
|
292
292
|
(v) => {
|
|
293
293
|
v[0].isIntersecting && l.hasMore && !l.loading && c("loadMore");
|
|
294
294
|
},
|
|
295
295
|
{ threshold: 0.5 }
|
|
296
296
|
);
|
|
297
|
-
d.value && i.observe(d.value),
|
|
298
|
-
}), (i, v) => (
|
|
299
|
-
|
|
297
|
+
d.value && i.observe(d.value), K(() => i.disconnect());
|
|
298
|
+
}), (i, v) => (o(), s(F, null, [
|
|
299
|
+
t.loading && t.reviews.length === 0 ? (o(), s("div", He, [
|
|
300
300
|
y(e(p).FmIcon, {
|
|
301
301
|
name: "sync",
|
|
302
302
|
size: "xl",
|
|
303
303
|
class: "animate-spin text-fm-color-neutral-gray-400"
|
|
304
304
|
})
|
|
305
|
-
])) :
|
|
305
|
+
])) : t.reviews.length === 0 ? (o(), s("div", qe, [
|
|
306
306
|
y(e(p).FmIcon, {
|
|
307
307
|
name: "rate_review",
|
|
308
308
|
size: "xl",
|
|
309
309
|
class: "text-fm-color-neutral-gray-300"
|
|
310
310
|
}),
|
|
311
|
-
|
|
312
|
-
])) : (
|
|
311
|
+
a("p", Oe, w(e(u)("connect.review.overview.empty")), 1)
|
|
312
|
+
])) : (o(!0), s(F, { key: 2 }, S(t.reviews, (g) => (o(), b(Ge, {
|
|
313
313
|
key: g._id,
|
|
314
314
|
review: g
|
|
315
315
|
}, null, 8, ["review"]))), 128)),
|
|
316
|
-
|
|
316
|
+
a("div", {
|
|
317
317
|
ref_key: "sentinel",
|
|
318
318
|
ref: d,
|
|
319
319
|
class: "h-1"
|
|
320
320
|
}, null, 512),
|
|
321
|
-
|
|
321
|
+
t.loading && t.reviews.length > 0 ? (o(), s("div", Ke, [
|
|
322
322
|
y(e(p).FmIcon, {
|
|
323
323
|
name: "sync",
|
|
324
324
|
size: "md",
|
|
325
325
|
class: "animate-spin text-fm-color-neutral-gray-400"
|
|
326
326
|
})
|
|
327
|
-
])) :
|
|
327
|
+
])) : _("", !0)
|
|
328
328
|
], 64));
|
|
329
329
|
}
|
|
330
|
-
}),
|
|
330
|
+
}), Je = { class: "p-24 flex flex-col gap-12" }, N = 20, Qe = /* @__PURE__ */ I({
|
|
331
331
|
__name: "ReviewOverview",
|
|
332
|
-
setup(
|
|
332
|
+
setup(t) {
|
|
333
333
|
const n = x([]), u = x(!1), l = x(!0), c = x(null), d = x(null), i = x(null), v = x(""), g = x("createTime_desc");
|
|
334
|
-
|
|
334
|
+
j(c, () => {
|
|
335
335
|
v.value = "";
|
|
336
336
|
});
|
|
337
|
-
function
|
|
337
|
+
function $(h) {
|
|
338
338
|
return {
|
|
339
339
|
source: c.value || void 0,
|
|
340
340
|
dateFrom: d.value || void 0,
|
|
341
341
|
dateTo: i.value || void 0,
|
|
342
342
|
locationId: v.value || void 0,
|
|
343
343
|
sort: g.value,
|
|
344
|
-
limit:
|
|
344
|
+
limit: N,
|
|
345
345
|
skip: h
|
|
346
346
|
};
|
|
347
347
|
}
|
|
348
348
|
async function T() {
|
|
349
349
|
u.value = !0, l.value = !0;
|
|
350
350
|
try {
|
|
351
|
-
const h = await
|
|
352
|
-
n.value = h, l.value = h.length ===
|
|
351
|
+
const h = await R.listReviews($(0));
|
|
352
|
+
n.value = h, l.value = h.length === N;
|
|
353
353
|
} finally {
|
|
354
354
|
u.value = !1;
|
|
355
355
|
}
|
|
356
356
|
}
|
|
357
|
-
async function
|
|
357
|
+
async function V() {
|
|
358
358
|
if (!(u.value || !l.value)) {
|
|
359
359
|
u.value = !0;
|
|
360
360
|
try {
|
|
361
|
-
const h = await
|
|
362
|
-
n.value = [...n.value, ...h], l.value = h.length ===
|
|
361
|
+
const h = await R.listReviews($(n.value.length));
|
|
362
|
+
n.value = [...n.value, ...h], l.value = h.length === N;
|
|
363
363
|
} finally {
|
|
364
364
|
u.value = !1;
|
|
365
365
|
}
|
|
366
366
|
}
|
|
367
367
|
}
|
|
368
|
-
return
|
|
369
|
-
y(
|
|
368
|
+
return j([c, d, i, v, g], T), Y(T), (h, f) => (o(), s("div", Je, [
|
|
369
|
+
y(le, {
|
|
370
370
|
source: e(c),
|
|
371
|
-
"onUpdate:source":
|
|
371
|
+
"onUpdate:source": f[0] || (f[0] = (r) => z(c) ? c.value = r : null),
|
|
372
372
|
"date-from": e(d),
|
|
373
|
-
"onUpdate:dateFrom":
|
|
373
|
+
"onUpdate:dateFrom": f[1] || (f[1] = (r) => z(d) ? d.value = r : null),
|
|
374
374
|
"date-to": e(i),
|
|
375
|
-
"onUpdate:dateTo":
|
|
375
|
+
"onUpdate:dateTo": f[2] || (f[2] = (r) => z(i) ? i.value = r : null),
|
|
376
376
|
"location-id": e(v),
|
|
377
|
-
"onUpdate:locationId":
|
|
377
|
+
"onUpdate:locationId": f[3] || (f[3] = (r) => z(v) ? v.value = r : null),
|
|
378
378
|
sort: e(g),
|
|
379
|
-
"onUpdate:sort":
|
|
379
|
+
"onUpdate:sort": f[4] || (f[4] = (r) => z(g) ? g.value = r : null)
|
|
380
380
|
}, null, 8, ["source", "date-from", "date-to", "location-id", "sort"]),
|
|
381
|
-
y(
|
|
381
|
+
y(Ze, {
|
|
382
382
|
reviews: e(n),
|
|
383
383
|
loading: e(u),
|
|
384
384
|
"has-more": e(l),
|
|
385
|
-
onLoadMore:
|
|
385
|
+
onLoadMore: V
|
|
386
386
|
}, null, 8, ["reviews", "loading", "has-more"])
|
|
387
387
|
]));
|
|
388
388
|
}
|
|
389
|
-
}),
|
|
389
|
+
}), We = { class: "rounded-lg border border-fm-color-neutral-gray-200 bg-white overflow-hidden" }, Xe = ["src"], et = { class: "flex flex-col flex-1 min-w-0" }, tt = { class: "fm-typo-en-body-md-600 capitalize" }, ot = {
|
|
390
390
|
key: 0,
|
|
391
391
|
class: "fm-typo-en-body-sm-400 text-fm-color-neutral-gray-400 truncate"
|
|
392
|
-
},
|
|
392
|
+
}, H = /* @__PURE__ */ I({
|
|
393
393
|
__name: "ReviewSource",
|
|
394
394
|
props: {
|
|
395
395
|
icon: {},
|
|
@@ -400,140 +400,144 @@ const oe = { class: "flex justify-between gap-8" }, te = { class: "flex flex-wra
|
|
|
400
400
|
tokenExpired: { type: Boolean }
|
|
401
401
|
},
|
|
402
402
|
emits: ["connect", "sync"],
|
|
403
|
-
setup(
|
|
404
|
-
const u = n, { t: l } =
|
|
405
|
-
return (d, i) => (
|
|
406
|
-
|
|
407
|
-
class:
|
|
403
|
+
setup(t, { emit: n }) {
|
|
404
|
+
const u = n, { t: l } = C(), c = Z();
|
|
405
|
+
return (d, i) => (o(), s("div", We, [
|
|
406
|
+
a("div", {
|
|
407
|
+
class: P(["flex items-center gap-12 p-16", e(c).default ? "border-b border-fm-color-neutral-gray-100" : ""])
|
|
408
408
|
}, [
|
|
409
|
-
|
|
410
|
-
src:
|
|
409
|
+
a("img", {
|
|
410
|
+
src: t.icon,
|
|
411
411
|
class: "w-10 h-10 shrink-0"
|
|
412
|
-
}, null, 8,
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
412
|
+
}, null, 8, Xe),
|
|
413
|
+
a("div", et, [
|
|
414
|
+
a("span", tt, w(t.name), 1),
|
|
415
|
+
t.subtitle ? (o(), s("span", ot, w(t.subtitle), 1)) : _("", !0)
|
|
416
416
|
]),
|
|
417
|
-
|
|
418
|
-
|
|
417
|
+
t.connected ? (o(), s(F, { key: 0 }, [
|
|
418
|
+
t.tokenExpired ? (o(), b(e(p).FmChip, {
|
|
419
419
|
key: 0,
|
|
420
420
|
label: e(l)("connect.review.expired"),
|
|
421
421
|
variant: "critical"
|
|
422
|
-
}, null, 8, ["label"])) :
|
|
422
|
+
}, null, 8, ["label"])) : _("", !0),
|
|
423
423
|
y(e(p).FmButton, {
|
|
424
424
|
variant: "secondary",
|
|
425
425
|
"prepend-icon": "refresh",
|
|
426
426
|
label: e(l)("connect.review.reconnect"),
|
|
427
427
|
onClick: i[0] || (i[0] = (v) => u("connect"))
|
|
428
428
|
}, null, 8, ["label"]),
|
|
429
|
-
|
|
429
|
+
t.tokenExpired ? _("", !0) : (o(), b(e(p).FmButton, {
|
|
430
430
|
key: 1,
|
|
431
431
|
variant: "primary",
|
|
432
432
|
"prepend-icon": "sync",
|
|
433
433
|
label: e(l)("connect.review.sync"),
|
|
434
|
-
loading:
|
|
434
|
+
loading: t.syncing,
|
|
435
435
|
onClick: i[1] || (i[1] = (v) => u("sync"))
|
|
436
436
|
}, null, 8, ["label", "loading"]))
|
|
437
|
-
], 64)) : (
|
|
437
|
+
], 64)) : (o(), b(e(p).FmButton, {
|
|
438
438
|
key: 1,
|
|
439
439
|
"prepend-icon": "add",
|
|
440
440
|
label: e(l)("connect.review.connect"),
|
|
441
441
|
onClick: i[2] || (i[2] = (v) => u("connect"))
|
|
442
442
|
}, null, 8, ["label"]))
|
|
443
443
|
], 2),
|
|
444
|
-
|
|
444
|
+
J(d.$slots, "default")
|
|
445
445
|
]));
|
|
446
446
|
}
|
|
447
|
-
}),
|
|
447
|
+
}), nt = { class: "p-24 flex flex-col gap-8" }, lt = { class: "flex flex-col flex-1 min-w-0" }, st = { class: "fm-typo-en-body-lg-600 truncate" }, at = { class: "fm-typo-en-body-sm-400 text-fm-color-neutral-gray-400 truncate" }, rt = ["src"], ct = { class: "flex flex-col flex-1 min-w-0" }, it = { class: "fm-typo-en-body-lg-600 truncate" }, ut = { class: "fm-typo-en-body-sm-400 text-fm-color-neutral-gray-400 truncate" }, dt = /* @__PURE__ */ I({
|
|
448
448
|
__name: "ReviewSettings",
|
|
449
|
-
setup(
|
|
450
|
-
const { t: n } =
|
|
449
|
+
setup(t) {
|
|
450
|
+
const { t: n } = C(), u = ee(), l = x(null), c = x(!1), d = x(!1), i = U(
|
|
451
451
|
() => {
|
|
452
|
-
var
|
|
453
|
-
return l.value ? ((
|
|
452
|
+
var r;
|
|
453
|
+
return l.value ? ((r = l.value.google) == null ? void 0 : r.token) === null : !1;
|
|
454
454
|
}
|
|
455
|
-
), v =
|
|
455
|
+
), v = U(
|
|
456
456
|
() => {
|
|
457
|
-
var
|
|
458
|
-
return l.value ? ((
|
|
457
|
+
var r;
|
|
458
|
+
return l.value ? ((r = l.value.facebook) == null ? void 0 : r.token) === null : !1;
|
|
459
459
|
}
|
|
460
460
|
);
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
461
|
+
function g(r) {
|
|
462
|
+
const m = window.location.pathname.replace(/\/review(?:\/.*)?$/, "");
|
|
463
|
+
return `${window.location.origin}${m}${r}`;
|
|
464
|
+
}
|
|
465
|
+
async function $() {
|
|
466
|
+
await te.minor(async () => {
|
|
467
|
+
l.value = await R.getSource();
|
|
464
468
|
});
|
|
465
469
|
}
|
|
466
|
-
async function
|
|
467
|
-
var
|
|
470
|
+
async function T() {
|
|
471
|
+
var r, m;
|
|
468
472
|
c.value = !0;
|
|
469
473
|
try {
|
|
470
|
-
await
|
|
471
|
-
} catch (
|
|
472
|
-
if (await
|
|
474
|
+
await R.syncGoogleReviews();
|
|
475
|
+
} catch (k) {
|
|
476
|
+
if (await $(), ((m = (r = l.value) == null ? void 0 : r.google) == null ? void 0 : m.token) === null) {
|
|
473
477
|
u.open({
|
|
474
478
|
message: n("connect.review.tokenExpired"),
|
|
475
479
|
type: "error"
|
|
476
480
|
});
|
|
477
481
|
return;
|
|
478
482
|
}
|
|
479
|
-
throw
|
|
483
|
+
throw k;
|
|
480
484
|
} finally {
|
|
481
485
|
c.value = !1;
|
|
482
486
|
}
|
|
483
487
|
}
|
|
484
|
-
async function
|
|
485
|
-
var
|
|
488
|
+
async function V() {
|
|
489
|
+
var r, m;
|
|
486
490
|
d.value = !0;
|
|
487
491
|
try {
|
|
488
|
-
await
|
|
489
|
-
} catch (
|
|
490
|
-
if (await
|
|
492
|
+
await R.syncFacebookReviews();
|
|
493
|
+
} catch (k) {
|
|
494
|
+
if (await $(), ((m = (r = l.value) == null ? void 0 : r.facebook) == null ? void 0 : m.token) === null) {
|
|
491
495
|
u.open({
|
|
492
496
|
message: n("connect.review.tokenExpired"),
|
|
493
497
|
type: "error"
|
|
494
498
|
});
|
|
495
499
|
return;
|
|
496
500
|
}
|
|
497
|
-
throw
|
|
501
|
+
throw k;
|
|
498
502
|
} finally {
|
|
499
503
|
d.value = !1;
|
|
500
504
|
}
|
|
501
505
|
}
|
|
502
|
-
async function
|
|
503
|
-
const
|
|
506
|
+
async function h() {
|
|
507
|
+
const r = g("/review/google/callback"), { callbackUrl: m } = await R.getOauthUrl("google", r);
|
|
504
508
|
window.location.href = m;
|
|
505
509
|
}
|
|
506
|
-
async function
|
|
507
|
-
const
|
|
510
|
+
async function f() {
|
|
511
|
+
const r = g("/review/facebook/callback"), { callbackUrl: m } = await R.getOauthUrl("facebook", r);
|
|
508
512
|
window.location.href = m;
|
|
509
513
|
}
|
|
510
|
-
return
|
|
511
|
-
e(l) ? (
|
|
512
|
-
y(
|
|
513
|
-
icon: e(
|
|
514
|
+
return Y($), (r, m) => (o(), s("div", nt, [
|
|
515
|
+
e(l) ? (o(), s(F, { key: 0 }, [
|
|
516
|
+
y(H, {
|
|
517
|
+
icon: e(O),
|
|
514
518
|
name: "google",
|
|
515
519
|
connected: !!e(l).google,
|
|
516
520
|
syncing: e(c),
|
|
517
521
|
"token-expired": e(i),
|
|
518
|
-
onConnect:
|
|
519
|
-
onSync:
|
|
522
|
+
onConnect: h,
|
|
523
|
+
onSync: T
|
|
520
524
|
}, {
|
|
521
|
-
default:
|
|
522
|
-
var
|
|
525
|
+
default: D(() => {
|
|
526
|
+
var k;
|
|
523
527
|
return [
|
|
524
|
-
(
|
|
528
|
+
(o(!0), s(F, null, S((k = e(l).google) == null ? void 0 : k.locations, (M) => {
|
|
525
529
|
var E;
|
|
526
|
-
return
|
|
527
|
-
key:
|
|
530
|
+
return o(), s("div", {
|
|
531
|
+
key: M.googleLocationName,
|
|
528
532
|
class: "flex items-center gap-12 px-16 py-12 border-b border-fm-color-neutral-gray-100 last:border-b-0"
|
|
529
533
|
}, [
|
|
530
534
|
y(e(p).FmIcon, {
|
|
531
535
|
name: "location_on",
|
|
532
536
|
class: "text-fm-color-neutral-gray-300 shrink-0"
|
|
533
537
|
}),
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
538
|
+
a("div", lt, [
|
|
539
|
+
a("span", st, w(M.displayName), 1),
|
|
540
|
+
a("span", at, w(((E = M.location) == null ? void 0 : E.name) ?? e(n)("connect.review.google.noLocations")), 1)
|
|
537
541
|
])
|
|
538
542
|
]);
|
|
539
543
|
}), 128))
|
|
@@ -541,71 +545,71 @@ const oe = { class: "flex justify-between gap-8" }, te = { class: "flex flex-wra
|
|
|
541
545
|
}),
|
|
542
546
|
_: 1
|
|
543
547
|
}, 8, ["icon", "connected", "syncing", "token-expired"]),
|
|
544
|
-
y(
|
|
545
|
-
icon: e(
|
|
548
|
+
y(H, {
|
|
549
|
+
icon: e(q),
|
|
546
550
|
name: "facebook",
|
|
547
551
|
connected: !!e(l).facebook,
|
|
548
552
|
syncing: e(d),
|
|
549
553
|
"token-expired": e(v),
|
|
550
|
-
onConnect:
|
|
551
|
-
onSync:
|
|
554
|
+
onConnect: f,
|
|
555
|
+
onSync: V
|
|
552
556
|
}, {
|
|
553
|
-
default:
|
|
554
|
-
var
|
|
557
|
+
default: D(() => {
|
|
558
|
+
var k;
|
|
555
559
|
return [
|
|
556
|
-
(
|
|
557
|
-
key:
|
|
560
|
+
(o(!0), s(F, null, S((k = e(l).facebook) == null ? void 0 : k.pages, (M) => (o(), s("div", {
|
|
561
|
+
key: M.facebookPageId,
|
|
558
562
|
class: "flex items-center gap-12 px-16 py-12 border-b border-fm-color-neutral-gray-100 last:border-b-0"
|
|
559
563
|
}, [
|
|
560
|
-
|
|
564
|
+
M.pageProfileImageUrl ? (o(), s("img", {
|
|
561
565
|
key: 0,
|
|
562
|
-
src:
|
|
566
|
+
src: M.pageProfileImageUrl,
|
|
563
567
|
class: "w-10 h-10 rounded-full shrink-0 object-cover"
|
|
564
|
-
}, null, 8,
|
|
568
|
+
}, null, 8, rt)) : (o(), b(e(p).FmIcon, {
|
|
565
569
|
key: 1,
|
|
566
570
|
name: "person",
|
|
567
571
|
class: "text-fm-color-neutral-gray-300 shrink-0"
|
|
568
572
|
})),
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
573
|
+
a("div", ct, [
|
|
574
|
+
a("span", it, w(M.pageName), 1),
|
|
575
|
+
a("span", ut, w(M.locations.map((E) => E.name).join(", ")), 1)
|
|
572
576
|
])
|
|
573
577
|
]))), 128))
|
|
574
578
|
];
|
|
575
579
|
}),
|
|
576
580
|
_: 1
|
|
577
581
|
}, 8, ["icon", "connected", "syncing", "token-expired"])
|
|
578
|
-
], 64)) : (
|
|
579
|
-
key:
|
|
582
|
+
], 64)) : (o(), s(F, { key: 1 }, S(["google", "facebook"], (k) => a("div", {
|
|
583
|
+
key: k,
|
|
580
584
|
class: "rounded-lg border border-fm-color-neutral-gray-200 bg-white p-16"
|
|
581
585
|
}, [...m[0] || (m[0] = [
|
|
582
|
-
|
|
586
|
+
Q('<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)
|
|
583
587
|
])])), 64))
|
|
584
588
|
]));
|
|
585
589
|
}
|
|
586
|
-
}),
|
|
590
|
+
}), mt = { class: "flex flex-col" }, vt = { class: "px-24" }, kt = /* @__PURE__ */ I({
|
|
587
591
|
__name: "Review",
|
|
588
|
-
setup(
|
|
589
|
-
const { t: n } =
|
|
592
|
+
setup(t) {
|
|
593
|
+
const { t: n } = C(), u = [
|
|
590
594
|
{ label: n("connect.review.tabs.overview"), value: "overview" },
|
|
591
595
|
{ label: n("connect.review.tabs.settings"), value: "settings" }
|
|
592
596
|
], l = x(u[0]);
|
|
593
597
|
return (c, d) => {
|
|
594
|
-
const i =
|
|
595
|
-
return
|
|
598
|
+
const i = A("FmPageHead"), v = A("FmTabs");
|
|
599
|
+
return o(), s(F, null, [
|
|
596
600
|
y(i, {
|
|
597
601
|
title: e(n)("connect.navigation.review")
|
|
598
602
|
}, null, 8, ["title"]),
|
|
599
|
-
|
|
600
|
-
|
|
603
|
+
a("div", mt, [
|
|
604
|
+
a("div", vt, [
|
|
601
605
|
y(v, {
|
|
602
606
|
"model-value": e(l).value,
|
|
603
607
|
items: u,
|
|
604
|
-
"onUpdate:modelValue": d[0] || (d[0] = (g) => l.value = u.find((
|
|
608
|
+
"onUpdate:modelValue": d[0] || (d[0] = (g) => l.value = u.find(($) => $.value === g))
|
|
605
609
|
}, null, 8, ["model-value"])
|
|
606
610
|
]),
|
|
607
|
-
(
|
|
608
|
-
e(l).value === "overview" ? (
|
|
611
|
+
(o(), b(W, null, [
|
|
612
|
+
e(l).value === "overview" ? (o(), b(Qe, { key: 0 })) : e(l).value === "settings" ? (o(), b(dt, { key: 1 })) : _("", !0)
|
|
609
613
|
], 1024))
|
|
610
614
|
])
|
|
611
615
|
], 64);
|
|
@@ -613,5 +617,5 @@ const oe = { class: "flex justify-between gap-8" }, te = { class: "flex flex-wra
|
|
|
613
617
|
}
|
|
614
618
|
});
|
|
615
619
|
export {
|
|
616
|
-
|
|
620
|
+
kt as default
|
|
617
621
|
};
|