@feedmepos/mf-feedback-poc 0.0.1-rc.1

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 (84) hide show
  1. package/README.md +46 -0
  2. package/dist/App-0fc71fe6.js +11 -0
  3. package/dist/Feedback-183fcf19.js +14235 -0
  4. package/dist/app.js +219 -0
  5. package/dist/apps/mf-feedback/src/App.vue.d.ts +2 -0
  6. package/dist/apps/mf-feedback/src/Entry.vue.d.ts +2 -0
  7. package/dist/apps/mf-feedback/src/View/Feedback.vue.d.ts +2 -0
  8. package/dist/apps/mf-feedback/src/api/feedback.d.ts +14 -0
  9. package/dist/apps/mf-feedback/src/api/index.d.ts +7 -0
  10. package/dist/apps/mf-feedback/src/api/marketing.d.ts +12 -0
  11. package/dist/apps/mf-feedback/src/app.d.ts +146 -0
  12. package/dist/apps/mf-feedback/src/components/NavigationTab.vue.d.ts +2 -0
  13. package/dist/apps/mf-feedback/src/components/feedback/FeedbackCard.vue.d.ts +26 -0
  14. package/dist/apps/mf-feedback/src/components/feedback/FeedbackSummary.vue.d.ts +14 -0
  15. package/dist/apps/mf-feedback/src/components/feedback/GiveVoucherDialog.vue.d.ts +15 -0
  16. package/dist/apps/mf-feedback/src/components/feedback/PercentageIndicator.vue.d.ts +17 -0
  17. package/dist/apps/mf-feedback/src/components/feedback/RatingSelector.vue.d.ts +6 -0
  18. package/dist/apps/mf-feedback/src/main.d.ts +2 -0
  19. package/dist/apps/mf-feedback/src/plugins/r2Storage.d.ts +12 -0
  20. package/dist/apps/mf-feedback/src/router/index.d.ts +2 -0
  21. package/dist/apps/mf-feedback/src/router/shared.d.ts +2 -0
  22. package/dist/apps/mf-feedback/src/types/feedback.d.ts +24 -0
  23. package/dist/apps/mf-feedback/src/types/marketing.d.ts +87 -0
  24. package/dist/apps/mf-feedback/tsconfig.app.tsbuildinfo +1 -0
  25. package/dist/favicon.ico +0 -0
  26. package/dist/packages/shared/src/api/index.d.ts +3 -0
  27. package/dist/packages/shared/src/api/public.d.ts +5 -0
  28. package/dist/packages/shared/src/components/button/ResponsiveFabButton.vue.d.ts +12 -0
  29. package/dist/packages/shared/src/components/dialog/ConfirmActionDialog.vue.d.ts +30 -0
  30. package/dist/packages/shared/src/components/form/DynamicSheet.vue.d.ts +19 -0
  31. package/dist/packages/shared/src/components/form/FormLabel.vue.d.ts +33 -0
  32. package/dist/packages/shared/src/components/form/ImageDropField.vue.d.ts +46 -0
  33. package/dist/packages/shared/src/components/form/SelectFilter.vue.d.ts +126 -0
  34. package/dist/packages/shared/src/components/info/CustomAttributeChip.vue.d.ts +29 -0
  35. package/dist/packages/shared/src/components/info/InfoBasic.vue.d.ts +20 -0
  36. package/dist/packages/shared/src/components/info/Summary.vue.d.ts +19 -0
  37. package/dist/packages/shared/src/components/info/TextChip.vue.d.ts +36 -0
  38. package/dist/packages/shared/src/components/layout/FormColumn.vue.d.ts +21 -0
  39. package/dist/packages/shared/src/components/layout/FormItem.vue.d.ts +23 -0
  40. package/dist/packages/shared/src/components/layout/FormRow.vue.d.ts +9 -0
  41. package/dist/packages/shared/src/components/layout/FormSection.vue.d.ts +24 -0
  42. package/dist/packages/shared/src/components/layout/FullScreenForm.vue.d.ts +45 -0
  43. package/dist/packages/shared/src/components/layout/FullWrapper.vue.d.ts +9 -0
  44. package/dist/packages/shared/src/components/layout/HorizontalSplitter.vue.d.ts +2 -0
  45. package/dist/packages/shared/src/components/layout/Indent.vue.d.ts +9 -0
  46. package/dist/packages/shared/src/components/layout/ListLayout.vue.d.ts +2 -0
  47. package/dist/packages/shared/src/components/layout/LottieAnimation.vue.d.ts +39 -0
  48. package/dist/packages/shared/src/components/layout/MobileXScrollable.vue.d.ts +9 -0
  49. package/dist/packages/shared/src/components/layout/PageLayout.vue.d.ts +24 -0
  50. package/dist/packages/shared/src/components/loading/AppLoading.vue.d.ts +20 -0
  51. package/dist/packages/shared/src/components/loading/PageLoading.vue.d.ts +2 -0
  52. package/dist/packages/shared/src/components/loading/index.d.ts +1 -0
  53. package/dist/packages/shared/src/components/map/GoogleMap.vue.d.ts +79 -0
  54. package/dist/packages/shared/src/components/menu/BottomSheetMenu.vue.d.ts +10 -0
  55. package/dist/packages/shared/src/components/menu/BottomSheetMenuItem.vue.d.ts +24 -0
  56. package/dist/packages/shared/src/components/menu/ResponsiveContextMenu.vue.d.ts +22 -0
  57. package/dist/packages/shared/src/components/table/EmptyDataTemplate/Icon.vue.d.ts +2 -0
  58. package/dist/packages/shared/src/components/table/EmptyDataTemplate/index.d.ts +1 -0
  59. package/dist/packages/shared/src/components/table/EmptyDataTemplate/index.vue.d.ts +27 -0
  60. package/dist/packages/shared/src/components/types.d.ts +95 -0
  61. package/dist/packages/shared/src/composable/clipboard.d.ts +3 -0
  62. package/dist/packages/shared/src/composable/dateRange.d.ts +18 -0
  63. package/dist/packages/shared/src/composable/discardConfirm.d.ts +1 -0
  64. package/dist/packages/shared/src/composable/elementPosition.d.ts +17 -0
  65. package/dist/packages/shared/src/composable/filterSelector.d.ts +12 -0
  66. package/dist/packages/shared/src/composable/loading.d.ts +29 -0
  67. package/dist/packages/shared/src/composable/prompt.d.ts +9 -0
  68. package/dist/packages/shared/src/composable/search.d.ts +5 -0
  69. package/dist/packages/shared/src/composable/sheet.d.ts +17 -0
  70. package/dist/packages/shared/src/feature/featureMinVersion.d.ts +34 -0
  71. package/dist/packages/shared/src/helpers/actionButton.d.ts +8 -0
  72. package/dist/packages/shared/src/helpers/browser.d.ts +1 -0
  73. package/dist/packages/shared/src/helpers/contextMenu.d.ts +13 -0
  74. package/dist/packages/shared/src/helpers/createComponent.d.ts +7 -0
  75. package/dist/packages/shared/src/helpers/createForm.d.ts +2 -0
  76. package/dist/packages/shared/src/helpers/iteration.d.ts +11 -0
  77. package/dist/packages/shared/src/helpers/map.d.ts +370 -0
  78. package/dist/packages/shared/src/helpers/object.d.ts +6 -0
  79. package/dist/packages/shared/src/helpers/rules.d.ts +1 -0
  80. package/dist/packages/shared/src/helpers/string.d.ts +12 -0
  81. package/dist/packages/shared/src/permission/posPermission.d.ts +6 -0
  82. package/dist/packages/shared/src/stores/app.d.ts +217 -0
  83. package/dist/packages/shared/src/types/types.d.ts +5 -0
  84. package/package.json +85 -0
package/dist/app.js ADDED
@@ -0,0 +1,219 @@
1
+ import { ref as d, watch as l, nextTick as i, onMounted as h, onBeforeUnmount as p, defineComponent as u, computed as f, openBlock as m, createElementBlock as b, normalizeStyle as v, renderSlot as w, resolveComponent as k, createBlock as _, withCtx as C, createElementVNode as R, createVNode as D, defineAsyncComponent as P } from "vue";
2
+ import { useBreakpoints as S } from "@feedmepos/ui-library";
3
+ import "vue-router";
4
+ function M(a, n) {
5
+ const o = d({ top: 0, bottom: 0, left: 0, right: 0 });
6
+ function e() {
7
+ if (a.value) {
8
+ const t = a.value.getBoundingClientRect();
9
+ o.value = {
10
+ top: t.top,
11
+ bottom: t.bottom,
12
+ left: t.left,
13
+ right: t.right
14
+ };
15
+ }
16
+ }
17
+ return l(n, async () => {
18
+ await i(), e();
19
+ }), l(a, async (t) => {
20
+ t && (await i(), e());
21
+ }), h(() => {
22
+ window.addEventListener("resize", e);
23
+ }), p(() => {
24
+ window.removeEventListener("resize", e);
25
+ }), o;
26
+ }
27
+ const N = /* @__PURE__ */ u({
28
+ __name: "FullWrapper",
29
+ setup(a) {
30
+ const n = S(), o = d(null), e = M(o), t = f(() => {
31
+ var c;
32
+ const s = n.isAtMost("sm") ? 56 : 0;
33
+ return {
34
+ height: `calc(100dvh - ${((c = e.value) == null ? void 0 : c.top) + 24 + s}px)`
35
+ };
36
+ });
37
+ return (r, s) => (m(), b("div", {
38
+ ref_key: "wrapper",
39
+ ref: o,
40
+ style: v(t.value)
41
+ }, [
42
+ w(r.$slots, "default")
43
+ ], 4));
44
+ }
45
+ }), V = { class: "flex justify-center items-center h-full w-full" }, F = /* @__PURE__ */ u({
46
+ __name: "PageLoading",
47
+ setup(a) {
48
+ return (n, o) => {
49
+ const e = k("FmCircularProgress");
50
+ return m(), _(N, null, {
51
+ default: C(() => [
52
+ R("div", V, [
53
+ D(e, { size: "xl" })
54
+ ])
55
+ ]),
56
+ _: 1
57
+ });
58
+ };
59
+ }
60
+ }), g = (a) => P({
61
+ loader: a,
62
+ loadingComponent: F
63
+ }), y = {
64
+ title: "Feedback",
65
+ label: {
66
+ noDateSelected: "No dates selected.",
67
+ startDate: "Start",
68
+ endDate: "End",
69
+ totalReviews: "Total reviews: {count}"
70
+ },
71
+ customerNotMember: "Customer is not a member",
72
+ noMemberRewards: "No member rewards available",
73
+ actions: {
74
+ giveVoucher: "Give voucher",
75
+ send: "Send",
76
+ callCustomer: "Call customer"
77
+ },
78
+ sentToCustomer: "Voucher sent to customer",
79
+ sendingVoucher: "Sending voucher...",
80
+ searchPlaceholder: "Search feedbacks",
81
+ dateFilter: "Date filter",
82
+ totalReviews: "{count} review",
83
+ stars: "{count} star",
84
+ all: "All",
85
+ rating: {
86
+ all: "All ratings",
87
+ none: "Ratings: None",
88
+ ratings: "Ratings: {ratings}",
89
+ "1star": "1 star",
90
+ "2star": "2 star",
91
+ "3star": "3 star",
92
+ "4star": "4 star",
93
+ "5star": "5 star"
94
+ }
95
+ }, z = {
96
+ feedback: y
97
+ }, T = {
98
+ title: "ข้อเสนอแนะ",
99
+ label: {
100
+ noDateSelected: "ไม่ได้เลือกวันที่",
101
+ startDate: "เริ่ม",
102
+ endDate: "จบ",
103
+ totalReviews: "รีวิวทั้งหมด: {count}"
104
+ },
105
+ customerNotMember: "ลูกค้าไม่ได้เป็นสมาชิก",
106
+ noMemberRewards: "ไม่มีรางวัลสำหรับสมาชิก",
107
+ actions: {
108
+ giveVoucher: "มอบบัตรกำนัล",
109
+ send: "ส่ง",
110
+ callCustomer: "โทรหาลูกค้า"
111
+ },
112
+ sentToCustomer: "ส่งบัตรกำนัลให้ลูกค้าสำเร็จ",
113
+ sendingVoucher: "กำลังส่งบัตรกำนัล...",
114
+ searchPlaceholder: "ค้นหาข้อเสนอแนะ",
115
+ dateFilter: "ตัวกรองวันที่",
116
+ totalReviews: "{count} รีวิว",
117
+ stars: "{count} ​​ดาว",
118
+ all: "ทั้งหมด",
119
+ rating: {
120
+ all: "ทั้งหมด",
121
+ none: "ดาว: ไม่มี",
122
+ ratings: "การให้คะแนน: {ratings}",
123
+ "1star": "1 ดาว",
124
+ "2star": "2 ดาว",
125
+ "3star": "3 ดาว",
126
+ "4star": "4 ดาว",
127
+ "5star": "5 ดาว"
128
+ }
129
+ }, $ = {
130
+ feedback: T
131
+ }, x = {
132
+ title: "评价",
133
+ label: {
134
+ noDateSelected: "未选择日期",
135
+ startDate: "开始日期",
136
+ endDate: "结束日期",
137
+ totalReviews: "共 {count} 条评价"
138
+ },
139
+ customerNotMember: "顾客不是会员",
140
+ noMemberRewards: "没有会员奖励",
141
+ actions: {
142
+ giveVoucher: "发送优惠券",
143
+ send: "发送",
144
+ callCustomer: "联系顾客"
145
+ },
146
+ sentToCustomer: "优惠券已发送给顾客",
147
+ sendingVoucher: "发送优惠券中...",
148
+ searchPlaceholder: "搜索评价",
149
+ dateFilter: "日期筛选",
150
+ totalReviews: "{count} 条评价",
151
+ stars: "{count} 星",
152
+ all: "全部",
153
+ rating: {
154
+ all: "全部评分",
155
+ none: "没有评分",
156
+ ratings: " 评分: {ratings}",
157
+ "1star": "1 星",
158
+ "2star": "2 星",
159
+ "3star": "3 星",
160
+ "4star": "4 星",
161
+ "5star": "5 星"
162
+ }
163
+ }, E = {
164
+ feedback: x
165
+ }, B = {
166
+ title: "評價",
167
+ label: {
168
+ noDateSelected: "未選擇日期",
169
+ startDate: "開始日期",
170
+ endDate: "結束日期",
171
+ totalReviews: "共 {count} 條評價"
172
+ },
173
+ customerNotMember: "顧客不是會員",
174
+ noMemberRewards: "沒有會員獎勵",
175
+ actions: {
176
+ giveVoucher: "發送優惠券",
177
+ send: "發送",
178
+ callCustomer: "聯繫顧客"
179
+ },
180
+ sentToCustomer: "優惠券已發送給顧客",
181
+ sendingVoucher: "發送優惠券中...",
182
+ searchPlaceholder: "搜索評價",
183
+ dateFilter: "日期篩選",
184
+ totalReviews: "{count} 條評價",
185
+ stars: "{count} 星",
186
+ all: "全部",
187
+ rating: {
188
+ all: "全部評分",
189
+ none: "沒有評分",
190
+ ratings: " 評分: {ratings}",
191
+ "1star": "1 星",
192
+ "2star": "2 星",
193
+ "3star": "3 星",
194
+ "4star": "4 星",
195
+ "5star": "5 星"
196
+ }
197
+ }, A = {
198
+ feedback: B
199
+ }, j = [
200
+ {
201
+ path: "/",
202
+ redirect: { name: "$feedback-feedback" }
203
+ },
204
+ {
205
+ path: "/feedback",
206
+ name: "$feedback-feedback",
207
+ component: g(() => import("./Feedback-183fcf19.js"))
208
+ }
209
+ ], G = {
210
+ "en-US": z,
211
+ "zh-CN": E,
212
+ "th-TH": $,
213
+ "zh-Hant": A
214
+ }, W = g(() => import("./App-0fc71fe6.js"));
215
+ export {
216
+ W as FmApp,
217
+ G as i18nMessages,
218
+ j as routers
219
+ };
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ export default _default;
@@ -0,0 +1,14 @@
1
+ import type { FdoRestaurant } from "@feedmepos/core/entity";
2
+ import { type Feedback as BFeedback, type User } from "@/types/feedback";
3
+ interface FeedbackResponse extends BFeedback {
4
+ id: string;
5
+ billId: string;
6
+ restaurant: FdoRestaurant;
7
+ }
8
+ export interface Feedback extends FeedbackResponse {
9
+ pfUser: User;
10
+ }
11
+ export declare const feedbackApi: {
12
+ readFeedbacks(businessId: string): Promise<Feedback[]>;
13
+ };
14
+ export {};
@@ -0,0 +1,7 @@
1
+ import { type AxiosInstance, type AxiosResponse } from "axios";
2
+ export declare const baseClientInstance: (url?: string) => AxiosInstance;
3
+ export declare const menuClientInstance: (url: string) => AxiosInstance;
4
+ export declare const businessClientInstance: () => AxiosInstance;
5
+ export declare const restaurantClientInstance: (restaurantId: any, prefix?: string) => AxiosInstance;
6
+ export declare function extractAxiosData<T>(response: AxiosResponse<T>): T;
7
+ export declare function getData<T>(response: AxiosResponse<T>): T;
@@ -0,0 +1,12 @@
1
+ import { type Voucher as BVoucher, type SendVoucherDto, type Member, type PaginationRequest, type PaginatedResult } from "../types/marketing";
2
+ export interface Voucher extends BVoucher {
3
+ sendable: boolean | string;
4
+ claimable: boolean | string;
5
+ isMemberReward: boolean;
6
+ }
7
+ export declare const marketingApi: {
8
+ readMembers(pagination: PaginationRequest): Promise<PaginatedResult<Member.MemberInfo>>;
9
+ readMemberByUserId(userId: string): Promise<Member.Member | null>;
10
+ readVouchers(): Promise<Voucher[]>;
11
+ sendVoucher(voucherId: string, payload: SendVoucherDto): Promise<any>;
12
+ };
@@ -0,0 +1,146 @@
1
+ import enUS from "./locales/en-US.json";
2
+ export type AppMessagesSchema = typeof enUS;
3
+ export declare const i18nMessages: {
4
+ "en-US": {
5
+ feedback: {
6
+ title: string;
7
+ label: {
8
+ noDateSelected: string;
9
+ startDate: string;
10
+ endDate: string;
11
+ totalReviews: string;
12
+ };
13
+ customerNotMember: string;
14
+ noMemberRewards: string;
15
+ actions: {
16
+ giveVoucher: string;
17
+ send: string;
18
+ callCustomer: string;
19
+ };
20
+ sentToCustomer: string;
21
+ sendingVoucher: string;
22
+ searchPlaceholder: string;
23
+ dateFilter: string;
24
+ totalReviews: string;
25
+ stars: string;
26
+ all: string;
27
+ rating: {
28
+ all: string;
29
+ none: string;
30
+ ratings: string;
31
+ "1star": string;
32
+ "2star": string;
33
+ "3star": string;
34
+ "4star": string;
35
+ "5star": string;
36
+ };
37
+ };
38
+ };
39
+ "zh-CN": {
40
+ feedback: {
41
+ title: string;
42
+ label: {
43
+ noDateSelected: string;
44
+ startDate: string;
45
+ endDate: string;
46
+ totalReviews: string;
47
+ };
48
+ customerNotMember: string;
49
+ noMemberRewards: string;
50
+ actions: {
51
+ giveVoucher: string;
52
+ send: string;
53
+ callCustomer: string;
54
+ };
55
+ sentToCustomer: string;
56
+ sendingVoucher: string;
57
+ searchPlaceholder: string;
58
+ dateFilter: string;
59
+ totalReviews: string;
60
+ stars: string;
61
+ all: string;
62
+ rating: {
63
+ all: string;
64
+ none: string;
65
+ ratings: string;
66
+ "1star": string;
67
+ "2star": string;
68
+ "3star": string;
69
+ "4star": string;
70
+ "5star": string;
71
+ };
72
+ };
73
+ };
74
+ "th-TH": {
75
+ feedback: {
76
+ title: string;
77
+ label: {
78
+ noDateSelected: string;
79
+ startDate: string;
80
+ endDate: string;
81
+ totalReviews: string;
82
+ };
83
+ customerNotMember: string;
84
+ noMemberRewards: string;
85
+ actions: {
86
+ giveVoucher: string;
87
+ send: string;
88
+ callCustomer: string;
89
+ };
90
+ sentToCustomer: string;
91
+ sendingVoucher: string;
92
+ searchPlaceholder: string;
93
+ dateFilter: string;
94
+ totalReviews: string;
95
+ stars: string;
96
+ all: string;
97
+ rating: {
98
+ all: string;
99
+ none: string;
100
+ ratings: string;
101
+ "1star": string;
102
+ "2star": string;
103
+ "3star": string;
104
+ "4star": string;
105
+ "5star": string;
106
+ };
107
+ };
108
+ };
109
+ "zh-Hant": {
110
+ feedback: {
111
+ title: string;
112
+ label: {
113
+ noDateSelected: string;
114
+ startDate: string;
115
+ endDate: string;
116
+ totalReviews: string;
117
+ };
118
+ customerNotMember: string;
119
+ noMemberRewards: string;
120
+ actions: {
121
+ giveVoucher: string;
122
+ send: string;
123
+ callCustomer: string;
124
+ };
125
+ sentToCustomer: string;
126
+ sendingVoucher: string;
127
+ searchPlaceholder: string;
128
+ dateFilter: string;
129
+ totalReviews: string;
130
+ stars: string;
131
+ all: string;
132
+ rating: {
133
+ all: string;
134
+ none: string;
135
+ ratings: string;
136
+ "1star": string;
137
+ "2star": string;
138
+ "3star": string;
139
+ "4star": string;
140
+ "5star": string;
141
+ };
142
+ };
143
+ };
144
+ };
145
+ export { routers } from "./router/shared";
146
+ export declare const FmApp: any;
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ export default _default;
@@ -0,0 +1,26 @@
1
+ import { type PropType } from "vue";
2
+ import type { Feedback } from "@/api/feedback";
3
+ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
4
+ feedback: {
5
+ type: PropType<Feedback>;
6
+ required: true;
7
+ };
8
+ selected: {
9
+ type: BooleanConstructor;
10
+ required: true;
11
+ };
12
+ }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
13
+ "give-voucher": () => void;
14
+ }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
15
+ feedback: {
16
+ type: PropType<Feedback>;
17
+ required: true;
18
+ };
19
+ selected: {
20
+ type: BooleanConstructor;
21
+ required: true;
22
+ };
23
+ }>> & Readonly<{
24
+ "onGive-voucher"?: (() => any) | undefined;
25
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
26
+ export default _default;
@@ -0,0 +1,14 @@
1
+ import { type PropType } from "vue";
2
+ import type { Feedback } from "@/api/feedback";
3
+ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
4
+ feedbacks: {
5
+ type: PropType<Feedback[]>;
6
+ required: true;
7
+ };
8
+ }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
9
+ feedbacks: {
10
+ type: PropType<Feedback[]>;
11
+ required: true;
12
+ };
13
+ }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
14
+ export default _default;
@@ -0,0 +1,15 @@
1
+ import type { Voucher } from "@/api/marketing";
2
+ interface Props {
3
+ vouchers: Voucher[];
4
+ }
5
+ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<Props>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<Props>>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
6
+ export default _default;
7
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
8
+ type __VLS_TypePropsToRuntimeProps<T> = {
9
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
10
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
11
+ } : {
12
+ type: import('vue').PropType<T[K]>;
13
+ required: true;
14
+ };
15
+ };
@@ -0,0 +1,17 @@
1
+ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
2
+ count: number;
3
+ percentage: number;
4
+ }>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
5
+ count: number;
6
+ percentage: number;
7
+ }>>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
8
+ export default _default;
9
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
10
+ type __VLS_TypePropsToRuntimeProps<T> = {
11
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
12
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
13
+ } : {
14
+ type: import('vue').PropType<T[K]>;
15
+ required: true;
16
+ };
17
+ };
@@ -0,0 +1,6 @@
1
+ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
2
+ modelValue: import("vue").PropType<number[]>;
3
+ }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
4
+ modelValue: import("vue").PropType<number[]>;
5
+ }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
6
+ export default _default;
@@ -0,0 +1,2 @@
1
+ import "./assets/main.css";
2
+ import "@feedmepos/mf-common/style.css";
@@ -0,0 +1,12 @@
1
+ export declare const firebaseStorage: {
2
+ get(url: string, bucketUrl?: string): Promise<string>;
3
+ update(url: string, file: File, bucketUrl?: string): Promise<string>;
4
+ delete(url: string, bucketUrl?: string): Promise<void>;
5
+ };
6
+ export declare const r2Storage: {
7
+ get(url: string): Promise<string | ReadableStream<any> | undefined>;
8
+ update(url: string, file: File, config?: {
9
+ includedTime: boolean;
10
+ }): Promise<string>;
11
+ delete(url: string): Promise<void>;
12
+ };
@@ -0,0 +1,2 @@
1
+ declare const router: import("vue-router").Router;
2
+ export default router;
@@ -0,0 +1,2 @@
1
+ import { type RouteRecordRaw } from "vue-router";
2
+ export declare const routers: RouteRecordRaw[];
@@ -0,0 +1,24 @@
1
+ export interface Feedback {
2
+ user: string;
3
+ rating: {
4
+ overall: number;
5
+ };
6
+ reviews: string;
7
+ photos: string[];
8
+ videos: string[];
9
+ submittedAt: Date;
10
+ }
11
+ export declare enum Gender {
12
+ male = "MALE",
13
+ female = "FEMALE"
14
+ }
15
+ export interface User {
16
+ id: string;
17
+ birthday: Date | null;
18
+ gender: Gender | null;
19
+ email?: string | null;
20
+ displayName?: string | null;
21
+ photoURL?: string | null;
22
+ phoneNumber?: string | null;
23
+ prevPhoneNumbers?: string[];
24
+ }
@@ -0,0 +1,87 @@
1
+ import type { User } from "@/types/feedback";
2
+ export declare enum VoucherType {
3
+ afterSales = "AFTER_SALES",
4
+ simpleClaim = "SIMPLE_CLAIM",
5
+ memberReward = "MEMBER_REWARD",
6
+ feedbackReward = "FEEDBACK_REWARD"
7
+ }
8
+ export interface Voucher {
9
+ id: string;
10
+ name: string;
11
+ description?: string;
12
+ business: any;
13
+ targetRestaurant?: any[];
14
+ effect: any;
15
+ validSince?: Date | null;
16
+ validity: number;
17
+ currentClaim: number;
18
+ currentRedeem: number;
19
+ options: any;
20
+ publicClaimLink: string;
21
+ hideInApp?: boolean;
22
+ enableTransfer?: boolean;
23
+ maxClaimsPerUser?: number;
24
+ disable?: boolean;
25
+ multipleUse?: any;
26
+ verticalImage?: string;
27
+ horizontalImage?: string;
28
+ }
29
+ export interface PaginationRequest {
30
+ skip: number;
31
+ limit: number;
32
+ sortBy: string;
33
+ descending?: boolean;
34
+ search?: string;
35
+ }
36
+ export interface PaginatedResult<T> {
37
+ resources: T[];
38
+ pagination: {
39
+ next: string | null;
40
+ previous: string | null;
41
+ first: string | null;
42
+ last: string | null;
43
+ totalPages: number | null;
44
+ totalResources: number | null;
45
+ };
46
+ }
47
+ export interface SendVoucherDto {
48
+ memberIds: string[];
49
+ }
50
+ export declare namespace Member {
51
+ interface ProductCount {
52
+ id: string;
53
+ count: number;
54
+ }
55
+ interface Stat {
56
+ visitCount: number;
57
+ topupCount: number;
58
+ lastVisit: Date | null;
59
+ avgVisitFrequency: number;
60
+ avgBillSize: number;
61
+ products: ProductCount[];
62
+ }
63
+ interface TitleInfo {
64
+ _id: any;
65
+ acquiredAt: Date;
66
+ expiredAt: Date;
67
+ }
68
+ interface Member {
69
+ _id: any;
70
+ id: string;
71
+ joinedAt: Date;
72
+ business: any;
73
+ membership: any;
74
+ user: string;
75
+ cardNo?: string;
76
+ level: number;
77
+ experience: number;
78
+ tier: number;
79
+ stat: Stat;
80
+ balance: number;
81
+ creditBalance: any;
82
+ titles: TitleInfo[];
83
+ }
84
+ type MemberInfo = Omit<Member, "user"> & {
85
+ user: User;
86
+ };
87
+ }