@feedmepos/mf-connect 0.1.38-beta.71 → 0.1.38-beta.72

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 (133) hide show
  1. package/package.json +1 -1
  2. package/dist/Analytic-BY0xqCru.js +0 -761
  3. package/dist/App-n6-XqhU7.js +0 -4638
  4. package/dist/AuditLogs-Dml3WjdH.js +0 -1991
  5. package/dist/Bin-DaPZyWm-.js +0 -166
  6. package/dist/Broadcast-hLmkBNne.js +0 -267
  7. package/dist/CampaignTypeDialog.vue_vue_type_script_setup_true_lang-BahnNhzD.js +0 -121
  8. package/dist/Card-C_Fm3E0s.js +0 -909
  9. package/dist/ChipMenu.vue_vue_type_script_setup_true_lang-BPpZZNkr.js +0 -97
  10. package/dist/Collections-DAUsUa0c.js +0 -540
  11. package/dist/Credit-DklbckuQ.js +0 -261
  12. package/dist/CustomSelect.vue_vue_type_script_setup_true_lang-Du7fRSZC.js +0 -128
  13. package/dist/DateRangeChip.vue_vue_type_script_setup_true_lang-eIoPtgO5.js +0 -58
  14. package/dist/EditCampaignSheet.vue_vue_type_script_setup_true_lang-vpnaCdLI.js +0 -3167
  15. package/dist/EffectSheet.vue_vue_type_style_index_0_lang-e1ZWGrXS.js +0 -351
  16. package/dist/Experience-D3Ve8dCI.js +0 -260
  17. package/dist/FileSaver.min-Bg15HHd0.js +0 -74
  18. package/dist/FilterChip.vue_vue_type_script_setup_true_lang-DaU-9GzO.js +0 -129
  19. package/dist/Game-BJzRdZNg.js +0 -331
  20. package/dist/GenerateMaterial-pDWgptXt.js +0 -589
  21. package/dist/Grab-B0D8SpcD.js +0 -301
  22. package/dist/ImageInput.vue_vue_type_script_setup_true_lang-DkI3qMHv.js +0 -145
  23. package/dist/Index-ysSM8-pd.js +0 -259
  24. package/dist/JsonViewer-v8_C7l5N.js +0 -87
  25. package/dist/LottieAnimation.vue_vue_type_script_setup_true_lang-C7bEzQ4b.js +0 -18737
  26. package/dist/MainLayout-Kt1Wiz87.js +0 -41
  27. package/dist/Marketing-CFS6ff03.js +0 -145
  28. package/dist/MarketingMaterialEdit-BDYr5Rlw.js +0 -746
  29. package/dist/Member-Dgb3QBKF.js +0 -280
  30. package/dist/MemberList-CfcQUvN8.js +0 -1605
  31. package/dist/MemberOverview-wL_ailso.js +0 -58
  32. package/dist/MemberTransactions-BVwGdpXo.js +0 -45
  33. package/dist/MessageInput.vue_vue_type_script_setup_true_lang-Dj3h51yH.js +0 -60798
  34. package/dist/Mission-B9K8-Wrt.js +0 -335
  35. package/dist/Overview-DJgKxAvU.js +0 -1078
  36. package/dist/Point-lev1_Nit.js +0 -263
  37. package/dist/Promotion-De9e8yPj.js +0 -397
  38. package/dist/Queue-DH_F0Ekd.js +0 -259
  39. package/dist/Record-CH2AZqzF.js +0 -341
  40. package/dist/Reward-BUgOAjd4.js +0 -442
  41. package/dist/RewardGroup.vue_vue_type_script_setup_true_lang-KTaTLjjw.js +0 -149
  42. package/dist/RuleGroup.vue_vue_type_script_setup_true_lang-rs5kKp_v.js +0 -1912
  43. package/dist/Segment-DL6O--Aw.js +0 -881
  44. package/dist/SelectItems.vue_vue_type_script_setup_true_lang-ZUGDMD5J.js +0 -181
  45. package/dist/SendCollectionSheet.vue_vue_type_script_setup_true_lang-CIeyrheH.js +0 -188
  46. package/dist/SendVoucherSheet.vue_vue_type_script_setup_true_lang-BAtXxIjO.js +0 -147
  47. package/dist/Setting-DOA80XlJ.js +0 -1999
  48. package/dist/SettingAdvertisements-Dl0eisXq.js +0 -263
  49. package/dist/Store-fni1Xblz.js +0 -1995
  50. package/dist/StoreRewards-CLMO-kNi.js +0 -534
  51. package/dist/StoreTransactions.vue_vue_type_script_setup_true_lang-BlBovyiT.js +0 -1034
  52. package/dist/TargetLocationInput.vue_vue_type_script_setup_true_lang-D-jYcuAa.js +0 -7005
  53. package/dist/Tier-B0_DiVNv.js +0 -969
  54. package/dist/Title-twptCzpk.js +0 -567
  55. package/dist/Transaction-CTX5I6gO.js +0 -39
  56. package/dist/UserRuleGroup.vue_vue_type_script_setup_true_lang-Bp-rIgz4.js +0 -130
  57. package/dist/Voucher-C7Kxmzjr.js +0 -422
  58. package/dist/VoucherEditor.vue_vue_type_script_setup_true_lang-lZQTZUUU.js +0 -421
  59. package/dist/ZodTextField.vue_vue_type_script_setup_true_lang-BlBEFfgu.js +0 -56
  60. package/dist/_plugin-vue_export-helper-CHgC5LLL.js +0 -9
  61. package/dist/app-D5GVWKxc.js +0 -59071
  62. package/dist/app-wDQR6dpb.js +0 -39
  63. package/dist/app.js +0 -7
  64. package/dist/business-BvNsRlY4.js +0 -82
  65. package/dist/campaign-CpzFl8Vr.js +0 -4
  66. package/dist/campaign-DRErhSfb.js +0 -100
  67. package/dist/campaign-MN_o01w6.js +0 -253
  68. package/dist/campaign.enum-BtfwwLCf.js +0 -26
  69. package/dist/campaign.fn-BgSGxLPo.js +0 -776
  70. package/dist/collectible.enum-CV2tpD2C.js +0 -19
  71. package/dist/collection.fn-BYjqObg7.js +0 -26
  72. package/dist/dto-CyhnIGn-.js +0 -222
  73. package/dist/duplicateCampaign-jOZ1UznM.js +0 -51
  74. package/dist/effect-NKfquhhR.js +0 -89
  75. package/dist/email-addresses-EmFJeFmB.js +0 -705
  76. package/dist/export-B70Bp6s8.js +0 -96
  77. package/dist/feedme.ico +0 -0
  78. package/dist/helper-DiSstsUa.js +0 -86
  79. package/dist/index-5FmmWAib.js +0 -30289
  80. package/dist/index-B09KKPb4.js +0 -3419
  81. package/dist/index-BgP5ZHK6.js +0 -31
  82. package/dist/index-C46EHygk.js +0 -3
  83. package/dist/index-CD7Ji4Nw.js +0 -56
  84. package/dist/index-CHXlBh7-.js +0 -32
  85. package/dist/index-Cr2243n7.js +0 -2423
  86. package/dist/index-CrDg9PFk.js +0 -8912
  87. package/dist/index-CuvNtC_M.js +0 -61
  88. package/dist/index-DK45XoFG.js +0 -54
  89. package/dist/index-Qg_bzaF2.js +0 -76
  90. package/dist/index-bAmlAkpk.js +0 -124
  91. package/dist/index-nTpkh7pU.js +0 -28897
  92. package/dist/index-tvZKdKVU.js +0 -36
  93. package/dist/index-vh86FiIQ.js +0 -10
  94. package/dist/index.esm2017-B8fYlj6l.js +0 -3069
  95. package/dist/loading-DVr3dbZ1.js +0 -215
  96. package/dist/lodash-BNr1VEn2.js +0 -3678
  97. package/dist/membership-LEuPDIbe.js +0 -235
  98. package/dist/moment-D7p2TMB-.js +0 -2583
  99. package/dist/money-CogUwiv6.js +0 -15
  100. package/dist/number-C5wGUTN5.js +0 -12
  101. package/dist/object-qECH92oz.js +0 -26
  102. package/dist/objectId-dwaoBfJX.js +0 -7
  103. package/dist/objectid-DbUENFHd.js +0 -145
  104. package/dist/plugins-BxKrsjEx.js +0 -1817
  105. package/dist/remy-D_Deb3ue.js +0 -13
  106. package/dist/reward-CM4Wx2zA.js +0 -36
  107. package/dist/rule-CMMr2GMg.js +0 -1969
  108. package/dist/rule-builder-D5QsmOxi.js +0 -102
  109. package/dist/style.css +0 -13
  110. package/dist/template-BDKqBasy.js +0 -188
  111. package/dist/tier-BJDhpH6X.js +0 -4
  112. package/dist/tiers/tier=1.png +0 -0
  113. package/dist/tiers/tier=2.png +0 -0
  114. package/dist/tiers/tier=3.png +0 -0
  115. package/dist/tiers/tier=4.png +0 -0
  116. package/dist/timezone-DuaWQsQ2.js +0 -1154
  117. package/dist/titles/type=diamond.png +0 -0
  118. package/dist/titles/type=drinks.png +0 -0
  119. package/dist/titles/type=food.png +0 -0
  120. package/dist/titles/type=heart.png +0 -0
  121. package/dist/titles/type=medal.png +0 -0
  122. package/dist/titles/type=spend.png +0 -0
  123. package/dist/titles/type=thank-you.png +0 -0
  124. package/dist/titles/type=thumbs-up.png +0 -0
  125. package/dist/titles/type=years.png +0 -0
  126. package/dist/trigger-IcyZcRow.js +0 -213
  127. package/dist/tslib.es6-BCqqvLQ_.js +0 -44
  128. package/dist/type_drinks-D6jnpvwV.js +0 -4
  129. package/dist/usePagination-D8OEDsCt.js +0 -223
  130. package/dist/user-u3blYzG2.js +0 -55
  131. package/dist/vue-i18n-DfD8ZY6j.js +0 -2365
  132. package/dist/xlsx-Bgf4_JHr.js +0 -15491
  133. package/dist/zod-9J33xiFS.js +0 -91
@@ -1,259 +0,0 @@
1
- import { defineComponent as h, h as n, ref as A, watch as B, onBeforeMount as U, resolveComponent as V, openBlock as z, createElementBlock as O, Fragment as q, createVNode as m, unref as o, createElementVNode as g } from "vue";
2
- import { u as G, _ as L } from "./usePagination-D8OEDsCt.js";
3
- import { _ as S } from "./FilterChip.vue_vue_type_script_setup_true_lang-DaU-9GzO.js";
4
- import { c as u, a as Y } from "./plugins-BxKrsjEx.js";
5
- import { useDialog as j, components as y } from "@feedmepos/ui-library";
6
- import "./index-Cr2243n7.js";
7
- import { J as c, c as d } from "./index-B09KKPb4.js";
8
- import "./index-CrDg9PFk.js";
9
- import "./index-5FmmWAib.js";
10
- import "./index-DK45XoFG.js";
11
- import { h as b } from "./moment-D7p2TMB-.js";
12
- import { u as W } from "./vue-i18n-DfD8ZY6j.js";
13
- import { u as H, v as J, w as K } from "./index.esm2017-B8fYlj6l.js";
14
- import { useRoute as Q } from "vue-router";
15
- import { g as $, S as Z, u as X } from "./index-nTpkh7pU.js";
16
- import { o as ee } from "./objectId-dwaoBfJX.js";
17
- const te = () => {
18
- if (!Z.getBusinessId()) throw new Error("Invalid business ID");
19
- return X("queues");
20
- }, oe = {
21
- async readImportMember(p, w) {
22
- return $(
23
- await te().get("", {
24
- params: { ...p, ...w }
25
- })
26
- );
27
- }
28
- };
29
- var ae = { firebase: { apiKey: "AIzaSyAj8JdCHtP0Vc5vZobCfgoLzWxPIn0WUG4", authDomain: "feedme-dev-4c3ef.firebaseapp.com", databaseURL: "https://feedme-dev-4c3ef.firebaseio.com", projectId: "feedme-dev-4c3ef", storageBucket: "feedme-dev-4c3ef.appspot.com", messagingSenderId: "458797803788", appId: "1:458797803788:web:37f2af2926a84288f0c129", measurementId: "G-J2QG09D2Q7" }, assetBucketUrl: "feedme-dev-4c3ef.appspot.com", importFilesBucketUrl: "feedme-dev-4c3ef.appspot.com", clientId: "1a362d621873497b277ea55258cc82594ba148d235257f7bd44ea2acc132d8a4" };
30
- const re = { class: "p-24 flex flex-col gap-y-2" }, ne = { class: "flex items-center justify-between" }, se = { class: "flex gap-8 items-center w-full overflow-x-scroll" }, ve = /* @__PURE__ */ h({
31
- __name: "Queue",
32
- setup(p) {
33
- const v = Q().query.type, { t: x } = W(), E = j(), C = [
34
- {
35
- header: "ID",
36
- accessorKey: "_id",
37
- meta: {
38
- maxWidth: "100px"
39
- },
40
- cell(t) {
41
- return n("div", { class: "flex items-center" }, [
42
- n(y.FmIcon, {
43
- name: "content_copy",
44
- outline: !0,
45
- size: "sm",
46
- class: "cursor-pointer mr-4",
47
- onClick: (e) => {
48
- e.preventDefault(), e.stopPropagation(), Y(t.row.original._id.toString());
49
- }
50
- }),
51
- n(
52
- "div",
53
- { class: "pr-2 text-ellipsis overflow-hidden" },
54
- t.row.original._id.toString()
55
- )
56
- ]);
57
- },
58
- enableSorting: !1
59
- },
60
- {
61
- header: "Type",
62
- accessorFn: (t) => u.title(t.type.replace("_", " ")),
63
- enableSorting: !1
64
- },
65
- {
66
- header: "Status",
67
- accessorFn: (t) => {
68
- var e;
69
- return t.status ? u.title((e = t.status) == null ? void 0 : e.toString()) : "-";
70
- },
71
- cell(t) {
72
- const e = t.row.original.status;
73
- return n(y.FmChip, {
74
- label: e ? u.title(e) : "-",
75
- compact: !0,
76
- class: D(e)
77
- });
78
- },
79
- enableSorting: !1
80
- },
81
- {
82
- header: "Ref",
83
- accessorKey: "ref",
84
- enableSorting: !1
85
- },
86
- {
87
- header: "Created at",
88
- accessorFn: (t) => b(ee(t._id.toString())).format("D MMM YYYY, hh:mmA"),
89
- enableSorting: !0
90
- },
91
- {
92
- header: "Context",
93
- cell(t) {
94
- var r, a;
95
- const e = ((a = (r = t.row.original.context) == null ? void 0 : r.context) == null ? void 0 : a.file) || null;
96
- return e != null && e.downloadUrl && (e != null && e.originalName) ? n(
97
- "a",
98
- {
99
- class: "fm-typo-en-link-md-600",
100
- href: e.downloadUrl,
101
- download: e.originalName,
102
- target: "_blank",
103
- rel: "noopener"
104
- },
105
- e.originalName
106
- ) : e != null && e.originalName ? n("div", null, e.originalName) : n("div", null, "-");
107
- },
108
- enableSorting: !1
109
- },
110
- {
111
- header: "Failed reason",
112
- cell(t) {
113
- return n(y.FmButton, {
114
- icon: "visibility",
115
- variant: "tertiary",
116
- disabled: !t.row.original.failedReason,
117
- onClick: (e) => {
118
- e.preventDefault(), e.stopPropagation(), M(t.row.original.failedReason);
119
- }
120
- });
121
- },
122
- enableSorting: !1
123
- }
124
- ], D = (t) => {
125
- switch (t) {
126
- case c.enum.ACTIVE:
127
- return "text-fm-color-typo-info bg-fm-color-system-info-100";
128
- case c.enum.WAITING:
129
- return "text-fm-color-typo-warning bg-fm-color-system-warning-100";
130
- case c.enum.COMPLETED:
131
- return "text-fm-color-typo-success bg-fm-color-system-success-100";
132
- case c.enum.FAILED:
133
- return "text-fm-color-typo-error bg-fm-color-system-error-100";
134
- default:
135
- return "text-fm-color-typo-primary bg-fm-color-system-primary-100";
136
- }
137
- }, F = h({
138
- name: "FailedReasonDialog",
139
- props: {
140
- data: {
141
- type: String,
142
- required: !0
143
- }
144
- },
145
- setup(t) {
146
- return () => n("div", { class: "whitespace-pre-line" }, t.data);
147
- }
148
- });
149
- async function M(t) {
150
- E.open({
151
- title: "Failed Reason",
152
- closeButton: !0,
153
- dismissAway: !0,
154
- contentComponent: F,
155
- contentComponentProps: {
156
- data: t
157
- }
158
- });
159
- }
160
- const T = async (t) => {
161
- const e = H(void 0, ae.importFilesBucketUrl), r = J(e, t);
162
- return await K(r);
163
- }, R = c.options.map((t) => ({ label: u.title(t), value: t })), s = A({
164
- type: v ?? [
165
- d.enum.MEMBER_IMPORTED,
166
- d.enum.SEGMENTATION_IMPORTED
167
- ],
168
- status: []
169
- }), { tableMeta: i, rowData: P, onSort: k, debouncedFetchData: f } = G(
170
- async (t) => {
171
- const e = {
172
- ...s.value
173
- }, r = await oe.readImportMember(t, e);
174
- return await Promise.all(
175
- r.resources.map(async (a) => {
176
- var _, I;
177
- const l = (I = (_ = a.context) == null ? void 0 : _.context) == null ? void 0 : I.file;
178
- if (b(a.context.emittedAt).diff(b(), "days") < 7 && l)
179
- try {
180
- l.downloadUrl = await T(l == null ? void 0 : l.fbFilePath);
181
- } catch (N) {
182
- console.log(N);
183
- }
184
- })
185
- ), {
186
- resources: r.resources,
187
- meta: r.meta
188
- };
189
- }
190
- );
191
- return B(
192
- s,
193
- () => {
194
- f();
195
- },
196
- { deep: !0 }
197
- ), U(async () => {
198
- await f();
199
- }), (t, e) => {
200
- const r = V("FmPageHead");
201
- return z(), O(q, null, [
202
- m(r, {
203
- title: o(x)("connect.queue.title")
204
- }, null, 8, ["title"]),
205
- g("div", re, [
206
- g("div", ne, [
207
- g("div", se, [
208
- m(S, {
209
- class: "cursor-pointer text-fm-color-neutral-gray-400",
210
- "right-icon": "keyboard_arrow_down",
211
- modelValue: o(s).type,
212
- "onUpdate:modelValue": e[0] || (e[0] = (a) => o(s).type = a),
213
- label: "Type: ",
214
- "show-item-label": !0,
215
- items: [
216
- {
217
- label: "Member Imported",
218
- value: o(d).enum.MEMBER_IMPORTED
219
- },
220
- {
221
- label: "Segmentation Imported",
222
- value: o(d).enum.SEGMENTATION_IMPORTED
223
- }
224
- ]
225
- }, null, 8, ["modelValue", "items"]),
226
- m(S, {
227
- class: "cursor-pointer text-fm-color-neutral-gray-400",
228
- "right-icon": "keyboard_arrow_down",
229
- modelValue: o(s).status,
230
- "onUpdate:modelValue": e[1] || (e[1] = (a) => o(s).status = a),
231
- label: "Status: ",
232
- "show-item-label": !0,
233
- items: o(R)
234
- }, null, 8, ["modelValue", "items"])
235
- ])
236
- ]),
237
- m(L, {
238
- loading: o(i).isLoading,
239
- "row-data": o(P),
240
- "row-count": o(i).totalRows,
241
- "column-defs": C,
242
- "page-count": o(i).pageCount,
243
- "page-index": o(i).pageIndex,
244
- "page-size": o(i).pageSize,
245
- "shrink-at": !1,
246
- onSortChange: o(k),
247
- onPageChange: e[2] || (e[2] = (a) => o(f)({
248
- pageSize: a.pageSize,
249
- pageIndex: a.pageIndex
250
- }))
251
- }, null, 8, ["loading", "row-data", "row-count", "page-count", "page-index", "page-size", "onSortChange"])
252
- ])
253
- ], 64);
254
- };
255
- }
256
- });
257
- export {
258
- ve as default
259
- };
@@ -1,341 +0,0 @@
1
- var q = Object.defineProperty;
2
- var G = (g, o, m) => o in g ? q(g, o, { enumerable: !0, configurable: !0, writable: !0, value: m }) : g[o] = m;
3
- var z = (g, o, m) => G(g, typeof o != "symbol" ? o + "" : o, m);
4
- import { defineComponent as T, ref as B, computed as H, resolveComponent as C, openBlock as I, createBlock as J, unref as n, isRef as Q, withCtx as X, createElementBlock as U, createVNode as w, withModifiers as Z, createCommentVNode as ee, createElementVNode as N, h, onMounted as re, Fragment as te } from "vue";
5
- import { u as oe, _ as ae } from "./usePagination-D8OEDsCt.js";
6
- import { g as A } from "./user-u3blYzG2.js";
7
- import { components as R } from "@feedmepos/ui-library";
8
- import "./index-5FmmWAib.js";
9
- import { u as j } from "./vue-i18n-DfD8ZY6j.js";
10
- import { u as L } from "./loading-DVr3dbZ1.js";
11
- import { useCoreStore as se } from "@feedmepos/mf-common";
12
- import { r as v } from "./index-CHXlBh7-.js";
13
- import { c as ie, a as ne } from "./object-qECH92oz.js";
14
- import { u as ce } from "./membership-LEuPDIbe.js";
15
- import { a as le, c as de } from "./plugins-BxKrsjEx.js";
16
- import { u as V, w as me } from "./xlsx-Bgf4_JHr.js";
17
- import { e as f } from "./index-vh86FiIQ.js";
18
- import { h as ue } from "./moment-D7p2TMB-.js";
19
- import { o as pe } from "./objectId-dwaoBfJX.js";
20
- const fe = {
21
- key: 0,
22
- class: "flex justify-end mb-16"
23
- }, ge = { class: "flex flex-col space-y-16 pr-12" }, he = /* @__PURE__ */ T({
24
- __name: "UpdateCriteriaProgressSheet",
25
- emits: ["refresh"],
26
- setup(g, { expose: o, emit: m }) {
27
- const y = m;
28
- j();
29
- const { minor: k } = L, l = B(!1), d = B({}), F = se(), S = [
30
- {
31
- header: "Criteria title",
32
- accessorFn: (a) => a.name
33
- },
34
- {
35
- header: "Status",
36
- cell(a) {
37
- var u;
38
- const e = a.row.original, r = (u = d.value.criteria_progress) == null ? void 0 : u.find(
39
- (_) => _.criteria === e._id
40
- ), i = r ? "Completed" : "Pending", c = r ? "text-fm-color-typo-success bg-fm-color-system-success-100" : "text-fm-color-typo-warning bg-fm-color-system-warning-100";
41
- return [
42
- h(R.FmChip, {
43
- label: i,
44
- compact: !0,
45
- class: c
46
- })
47
- ];
48
- }
49
- },
50
- {
51
- id: "actions",
52
- cell(a) {
53
- var i;
54
- const e = a.row.original;
55
- return [
56
- !((i = d.value.criteria_progress) == null ? void 0 : i.some(
57
- (c) => c.criteria === e._id
58
- )) && e.type == "MANUAL" ? h(R.FmButton, {
59
- variant: "secondary",
60
- label: "Mark as completed",
61
- size: "md",
62
- onClick: (c) => {
63
- c.stopPropagation(), x(e._id.toString());
64
- }
65
- }) : null
66
- ];
67
- }
68
- }
69
- ], M = H(() => {
70
- var e, r, i, c;
71
- return (((r = (e = d.value) == null ? void 0 : e.criteria_progress) == null ? void 0 : r.filter(
72
- (u) => {
73
- var _;
74
- return (_ = d.value) == null ? void 0 : _.criteria.some(
75
- (P) => P._id.toString() === u.criteria.toString()
76
- );
77
- }
78
- )) || []).length == ((i = d.value) == null ? void 0 : i.criteria.length) && ((c = d.value) == null ? void 0 : c.status) != "COMPLETED";
79
- });
80
- async function x(a) {
81
- var r;
82
- const e = ie(ne(d.value));
83
- e.criteria_progress = [
84
- {
85
- criteria: a,
86
- ref: `ADMIN:${(r = F.user) == null ? void 0 : r.id}:${(/* @__PURE__ */ new Date()).toISOString()}`,
87
- completedAt: /* @__PURE__ */ new Date()
88
- }
89
- ], k(
90
- async () => {
91
- await v.updateCriteriaProgress(
92
- d.value._id,
93
- e
94
- ), l.value = !1, y("refresh");
95
- },
96
- {
97
- message: "Updating criteria progress",
98
- successMessage: "Criteria progress updated successfully"
99
- }
100
- );
101
- }
102
- function t(a, e) {
103
- l.value = a, d.value = e;
104
- }
105
- function s() {
106
- l.value = !1;
107
- }
108
- return o({
109
- showSheet: t,
110
- hideSheet: s,
111
- data: d
112
- }), (a, e) => {
113
- const r = C("FmButton"), i = C("FmTable"), c = C("FmSideSheet");
114
- return I(), J(c, {
115
- "max-width": 768,
116
- modelValue: n(l),
117
- "onUpdate:modelValue": e[1] || (e[1] = (u) => Q(l) ? l.value = u : null),
118
- header: "Referee Criteria"
119
- }, {
120
- default: X(() => [
121
- n(M) ? (I(), U("div", fe, [
122
- w(r, {
123
- icon: "refresh",
124
- label: "Refresh",
125
- onClick: e[0] || (e[0] = Z((u) => x(n(d)._id), ["stop"]))
126
- })
127
- ])) : ee("", !0),
128
- N("div", ge, [
129
- w(i, {
130
- "row-data": n(d).criteria,
131
- "hide-footer": !0,
132
- "page-size": 100,
133
- "column-defs": S
134
- }, null, 8, ["row-data"])
135
- ])
136
- ]),
137
- _: 1
138
- }, 8, ["modelValue"]);
139
- };
140
- }
141
- });
142
- class _e {
143
- constructor() {
144
- z(this, "data", []);
145
- }
146
- addRecord(o) {
147
- this.data.push(o);
148
- }
149
- buildExcel() {
150
- const o = V.book_new(), m = V.json_to_sheet(this.data);
151
- return V.book_append_sheet(o, m, "Referrals"), o;
152
- }
153
- }
154
- const we = { class: "flex items-center justify-end" }, $e = /* @__PURE__ */ T({
155
- __name: "Record",
156
- setup(g) {
157
- const { t: o } = j();
158
- ce();
159
- const { minor: m } = L, y = B(null), k = [
160
- {
161
- header: "ID",
162
- meta: {
163
- maxWidth: "100px"
164
- },
165
- cell(t) {
166
- return h("div", { class: "flex items-center" }, [
167
- h(R.FmIcon, {
168
- name: "content_copy",
169
- outline: !0,
170
- size: "sm",
171
- class: "cursor-pointer mr-4",
172
- onClick: (s) => {
173
- s.preventDefault(), s.stopPropagation(), le(t.row.original._id.toString());
174
- }
175
- }),
176
- h(
177
- "div",
178
- { class: "pr-2 text-ellipsis overflow-hidden" },
179
- t.row.original._id.toString()
180
- )
181
- ]);
182
- },
183
- enableSorting: !1
184
- },
185
- {
186
- header: o("connect.referral.record.referer_info"),
187
- enableSorting: !0,
188
- cell(t) {
189
- return t.row.original.pf_referer ? A(t.row.original.pf_referer, !0) : "N/A";
190
- }
191
- },
192
- {
193
- header: o("connect.referral.record.referee_info"),
194
- enableSorting: !0,
195
- cell(t) {
196
- return t.row.original.pf_referee ? A(t.row.original.pf_referee, !0) : "N/A";
197
- }
198
- },
199
- {
200
- header: o("connect.referral.record.referee_criteria"),
201
- accessorKey: "criteria",
202
- id: "criteria",
203
- cell(t) {
204
- var r;
205
- const a = (((r = t.row.original.criteria_progress) == null ? void 0 : r.filter(
206
- (i) => t.row.original.criteria.some(
207
- (c) => c._id.toString() === i.criteria.toString()
208
- )
209
- )) || []).length, e = t.row.original.criteria.length;
210
- return e === 0 ? h("div", "No criteria") : h("div", `${a}/${e} completed criteria`);
211
- }
212
- },
213
- {
214
- header: o("connect.referral.record.status"),
215
- id: "status",
216
- cell(t) {
217
- const s = t.row.original.status;
218
- return h(R.FmChip, {
219
- label: de.title(s.replace("_", " ")),
220
- compact: !0,
221
- class: s == "COMPLETED" ? "text-fm-color-typo-success bg-fm-color-system-success-100" : "text-fm-color-typo-primary bg-fm-color-system-primary-100"
222
- });
223
- }
224
- }
225
- ], { tableMeta: l, rowData: d, onSort: F, debouncedFetchData: S, onSearch: M } = oe(v.readRecords);
226
- async function x() {
227
- const t = new _e(), s = (await v.readRecords({
228
- limit: 1,
229
- skip: 0,
230
- sortBy: f.sortBy,
231
- descending: f.descending
232
- })).meta.totalResources ?? 0, a = f.rowsPerPage;
233
- await m(
234
- async () => {
235
- var e, r, i, c;
236
- for (let u = 0; u < s; u += a) {
237
- const _ = {
238
- ...f,
239
- limit: a,
240
- skip: f.page - 1,
241
- sortBy: f.sortBy,
242
- descending: f.descending
243
- }, P = await v.readRecords(_);
244
- for (const p of P.resources) {
245
- const E = (p.criteria || []).reduce(
246
- (b, D) => {
247
- var $;
248
- const Y = (($ = p.criteria_progress) == null ? void 0 : $.filter(
249
- (K) => p.criteria.some(
250
- (W) => W._id.toString() === K.criteria.toString()
251
- )
252
- )) || [];
253
- return b[D.name] = Y.length > 0 ? "Completed" : "In Progress", b;
254
- },
255
- {}
256
- );
257
- console.log(E);
258
- const O = {
259
- ID: p._id.toString(),
260
- RefererName: ((e = p.pf_referer) == null ? void 0 : e.name) ?? "",
261
- RefererPhone: ((r = p.pf_referer) == null ? void 0 : r.phoneNumber) ?? "",
262
- RefereeName: ((i = p.pf_referee) == null ? void 0 : i.name) ?? "",
263
- RefereePhone: ((c = p.pf_referee) == null ? void 0 : c.phoneNumber) ?? "",
264
- ReferredAt: ue(pe(p._id)).format(
265
- "DD/MM/YYYY"
266
- ),
267
- Status: p.status,
268
- Criteria: Object.entries(E).map(([b, D]) => `${b}: ${D}`).join(", ")
269
- };
270
- t.addRecord(O);
271
- }
272
- f.page++;
273
- }
274
- await me(
275
- t.buildExcel(),
276
- `referrals-${(/* @__PURE__ */ new Date()).toISOString()}.xlsx`,
277
- {
278
- bookType: "xlsx",
279
- bookSST: !1,
280
- type: "array"
281
- }
282
- ), f.page = 1;
283
- },
284
- {
285
- message: "Exporting referral records...",
286
- successMessage: "Referral record exported successfully"
287
- }
288
- );
289
- }
290
- return re(async () => {
291
- await S();
292
- }), (t, s) => {
293
- const a = C("FmSearch"), e = C("FmButton");
294
- return I(), U(te, null, [
295
- N("div", null, [
296
- N("div", we, [
297
- w(a, {
298
- class: "mt-4",
299
- modelValue: n(l).searchValue,
300
- "onUpdate:modelValue": [
301
- s[0] || (s[0] = (r) => n(l).searchValue = r),
302
- n(M)
303
- ],
304
- placeholder: "Search",
305
- collapsible: ""
306
- }, null, 8, ["modelValue", "onUpdate:modelValue"]),
307
- w(e, {
308
- icon: "ios_share",
309
- variant: "tertiary",
310
- onClick: x
311
- })
312
- ]),
313
- w(ae, {
314
- loading: n(l).isLoading,
315
- "row-data": n(d),
316
- "row-count": n(l).totalRows,
317
- "column-defs": k,
318
- "shrink-at": !1,
319
- "page-count": n(l).pageCount,
320
- "page-index": n(l).pageIndex,
321
- "page-size": n(l).pageSize,
322
- onSortChange: n(F),
323
- onPageChange: s[1] || (s[1] = (r) => n(S)({ pageSize: r.pageSize, pageIndex: r.pageIndex })),
324
- onRowClick: s[2] || (s[2] = (r) => {
325
- var i;
326
- return (i = n(y)) == null ? void 0 : i.showSheet(!0, r.original);
327
- })
328
- }, null, 8, ["loading", "row-data", "row-count", "page-count", "page-index", "page-size", "onSortChange"])
329
- ]),
330
- w(he, {
331
- ref_key: "updateCriteriaProgressSheetRef",
332
- ref: y,
333
- onRefresh: n(S)
334
- }, null, 8, ["onRefresh"])
335
- ], 64);
336
- };
337
- }
338
- });
339
- export {
340
- $e as default
341
- };