@feedmepos/mf-order-setting 0.0.4 → 0.0.6

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 (368) hide show
  1. package/.env.dev +13 -0
  2. package/.env.example +11 -0
  3. package/.env.prod +12 -0
  4. package/.eslintrc.cjs +15 -0
  5. package/.nvmrc +1 -0
  6. package/.prettierrc.json +8 -0
  7. package/.vscode/extensions.json +8 -0
  8. package/README.md +31 -0
  9. package/dist/KioskSettingView-BTDNtWJ1.js +4 -0
  10. package/{app-B7lXikwq.js → dist/app-XcwzVa60.js} +2 -2
  11. package/{app.js → dist/app.js} +1 -1
  12. package/env.d.ts +95 -0
  13. package/index.html +16 -0
  14. package/package.json +5 -4
  15. package/postcss.config.js +6 -0
  16. package/public/favicon.ico +0 -0
  17. package/src/App.vue +19 -0
  18. package/src/Entry.vue +42 -0
  19. package/src/api/auth/index.ts +20 -0
  20. package/src/api/delivery/index.ts +15 -0
  21. package/src/api/index.ts +171 -0
  22. package/src/api/kiosk/index.ts +22 -0
  23. package/src/api/menu/index.ts +13 -0
  24. package/src/api/order/index.ts +15 -0
  25. package/src/api/order-setting/index.ts +25 -0
  26. package/src/api/public-setting/index.ts +11 -0
  27. package/src/api/remoteOrder/index.ts +142 -0
  28. package/src/api/restaurant-setting/index.ts +55 -0
  29. package/src/api/table-setting/index.ts +30 -0
  30. package/src/app.ts +7 -0
  31. package/src/assets/base.css +6 -0
  32. package/src/assets/images/no-data.svg +35 -0
  33. package/src/assets/logo.svg +1 -0
  34. package/src/assets/main.css +1 -0
  35. package/src/components/GoogleMap.vue +216 -0
  36. package/src/components/RestaurantSelection.vue +34 -0
  37. package/src/components/index.ts +7 -0
  38. package/src/components/snackbar.ts +44 -0
  39. package/src/components/type.ts +103 -0
  40. package/src/composables/index.ts +7 -0
  41. package/src/composables/loading/index.ts +51 -0
  42. package/src/composables/search.ts +18 -0
  43. package/src/helpers/currency.ts +6 -0
  44. package/src/helpers/date.ts +29 -0
  45. package/src/helpers/iteration.ts +87 -0
  46. package/src/helpers/map.ts +92 -0
  47. package/src/helpers/menu.ts +166 -0
  48. package/src/helpers/number.ts +25 -0
  49. package/src/helpers/object.ts +12 -0
  50. package/src/helpers/profile.ts +52 -0
  51. package/src/i18n.ts +43 -0
  52. package/src/index.d.ts +3 -0
  53. package/src/main.ts +77 -0
  54. package/src/modules/kiosk/interface.ts +16 -0
  55. package/src/modules/order-setting/interface.ts +4 -0
  56. package/src/modules/order-setting/kiosk/interface.ts +52 -0
  57. package/src/plugins/google-maps.ts +28 -0
  58. package/src/router/index.ts +10 -0
  59. package/src/router/routes.ts +43 -0
  60. package/src/stores/app/index.ts +58 -0
  61. package/src/stores/iframe/index.ts +23 -0
  62. package/src/stores/kiosk/index.ts +40 -0
  63. package/src/stores/kiosk/mapper.ts +25 -0
  64. package/src/stores/menu/menu.ts +258 -0
  65. package/src/stores/order-setting/index.ts +61 -0
  66. package/src/stores/order-setting/mapper.ts +104 -0
  67. package/src/stores/restaurant/index.ts +138 -0
  68. package/src/stores/table-settings.ts +160 -0
  69. package/src/stores/type.ts +65 -0
  70. package/src/utils/constants/route.ts +15 -0
  71. package/src/utils/number.ts +16 -0
  72. package/src/utils/object.ts +15 -0
  73. package/src/views/all-orders/ActionMenuCell.vue +92 -0
  74. package/src/views/all-orders/FilterRestaurant.vue +71 -0
  75. package/src/views/all-orders/FilterStatus.vue +121 -0
  76. package/src/views/all-orders/FilterStatusMenu.vue +44 -0
  77. package/src/views/all-orders/Orders.vue +524 -0
  78. package/src/views/all-orders/ReflowOrder.vue +105 -0
  79. package/src/views/all-orders/UpdateDeliveryOrderDialog.vue +313 -0
  80. package/src/views/all-orders/order.ts +584 -0
  81. package/src/views/feedme-express/FeedMeExpress.vue +139 -0
  82. package/src/views/feedme-express/FeedMeExpressSummary.vue +62 -0
  83. package/src/views/kiosk/KioskSummary.vue +74 -0
  84. package/src/views/kiosk/KioskView.vue +140 -0
  85. package/src/views/kiosk/devices/KioskDeviceCard.vue +105 -0
  86. package/src/views/kiosk/devices/KioskDeviceDetail.vue +28 -0
  87. package/src/views/kiosk/devices/KioskDevicesView.vue +27 -0
  88. package/src/views/kiosk/devices/KioskOtpDialog.vue +15 -0
  89. package/src/views/kiosk/devices/KioskUnbindConfirm.vue +28 -0
  90. package/src/views/kiosk/settings/KioskDineInSection.vue +86 -0
  91. package/src/views/kiosk/settings/KioskDisplayStandSection.vue +98 -0
  92. package/src/views/kiosk/settings/KioskPickAtCounterSection.vue +25 -0
  93. package/src/views/kiosk/settings/KioskSettingView.vue +61 -0
  94. package/src/views/kiosk/settings/KioskTakeawaySection.vue +39 -0
  95. package/src/views/order-settings/OrderSettingsView.vue +52 -0
  96. package/src/views/order-settings/components/RestaurantSelector.vue +77 -0
  97. package/src/views/order-settings/delivery/DeliverySetting.vue +799 -0
  98. package/src/views/order-settings/delivery/LocalDelivery.vue +0 -0
  99. package/src/views/order-settings/delivery/components/ManualIntegratedDeliverySetting.vue +167 -0
  100. package/src/views/order-settings/delivery/delivery.data.ts +75 -0
  101. package/src/views/order-settings/delivery/delivery.ts +41 -0
  102. package/src/views/order-settings/delivery/inhouse/CurrencyInput.vue +47 -0
  103. package/src/views/order-settings/delivery/inhouse/DeliveryCustomTime.vue +235 -0
  104. package/src/views/order-settings/delivery/inhouse/DeliveryOrder.vue +236 -0
  105. package/src/views/order-settings/delivery/inhouse/DeliveryTime.vue +143 -0
  106. package/src/views/order-settings/delivery/inhouse/InHouseDelivery.vue +186 -0
  107. package/src/views/order-settings/delivery/inhouse/TimePicker.vue +76 -0
  108. package/src/views/order-settings/delivery/inhouse/ZoneDialog.vue +143 -0
  109. package/src/views/order-settings/delivery/integrated-delivery/FeedmeDelivery.vue +244 -0
  110. package/src/views/order-settings/delivery/integrated-delivery/FoodpandaCampaignDialog.vue +110 -0
  111. package/src/views/order-settings/delivery/integrated-delivery/FoodpandaSetting.vue +261 -0
  112. package/src/views/order-settings/delivery/integrated-delivery/GrabfoodSetting.vue +128 -0
  113. package/src/views/order-settings/delivery/integrated-delivery/IntegratedDelivery.vue +272 -0
  114. package/src/views/order-settings/delivery/integrated-delivery/ShopeefoodSetting.vue +135 -0
  115. package/src/views/order-settings/delivery/integrated.data.interface.ts +0 -0
  116. package/src/views/order-settings/dinein/DineInSetting.vue +128 -0
  117. package/src/views/order-settings/dinein/OfflinePaymentTypeDialog.vue +51 -0
  118. package/src/views/order-settings/dinein/OfflinePaymentTypeDialogContent.vue +44 -0
  119. package/src/views/order-settings/dinein/PaymentType.vue +172 -0
  120. package/src/views/order-settings/pickup/AddressInput.vue +48 -0
  121. package/src/views/order-settings/pickup/CustomPayment.vue +84 -0
  122. package/src/views/order-settings/pickup/PaymentSidesheet.vue +167 -0
  123. package/src/views/order-settings/pickup/PickUpPointDialog.vue +125 -0
  124. package/src/views/order-settings/pickup/PickUpPointDialogContent.vue +95 -0
  125. package/src/views/order-settings/pickup/PickUpSetting.vue +233 -0
  126. package/src/views/order-settings/pickup/PickUpSettingDialog.vue +148 -0
  127. package/src/views/order-settings/pickup/PickUpSideSheet.vue +15 -0
  128. package/src/views/order-settings/pickup/Preorder.vue +139 -0
  129. package/src/views/order-settings/servicecharge/RateInput.vue +34 -0
  130. package/src/views/order-settings/servicecharge/ServiceChargeRule.vue +453 -0
  131. package/src/views/order-settings/servicecharge/ServiceChargeSetting.vue +233 -0
  132. package/src/views/order-settings/sms/SmsSetting.vue +162 -0
  133. package/tailwind.config.js +20 -0
  134. package/tsconfig.app.json +25 -0
  135. package/tsconfig.json +18 -0
  136. package/tsconfig.node.json +16 -0
  137. package/vite.config.ts +60 -0
  138. package/KioskSettingView-CdcHony9.js +0 -4
  139. /package/{common → dist/common}/booking/index.d.ts +0 -0
  140. /package/{common → dist/common}/config/bank/index.d.ts +0 -0
  141. /package/{common → dist/common}/config/bank/malaysia.d.ts +0 -0
  142. /package/{common → dist/common}/config/bank/singapore.d.ts +0 -0
  143. /package/{common → dist/common}/config/index.d.ts +0 -0
  144. /package/{common → dist/common}/convertor/index.d.ts +0 -0
  145. /package/{common → dist/common}/index.d.ts +0 -0
  146. /package/{common → dist/common}/number/index.d.ts +0 -0
  147. /package/{common → dist/common}/sms/index.d.ts +0 -0
  148. /package/{common → dist/common}/util/index.d.ts +0 -0
  149. /package/{favicon.ico → dist/favicon.ico} +0 -0
  150. /package/{frontend → dist/frontend}/mf-order/src/App.vue.d.ts +0 -0
  151. /package/{frontend → dist/frontend}/mf-order/src/Entry.vue.d.ts +0 -0
  152. /package/{frontend → dist/frontend}/mf-order/src/api/auth/index.d.ts +0 -0
  153. /package/{frontend → dist/frontend}/mf-order/src/api/delivery/index.d.ts +0 -0
  154. /package/{frontend → dist/frontend}/mf-order/src/api/index.d.ts +0 -0
  155. /package/{frontend → dist/frontend}/mf-order/src/api/kiosk/index.d.ts +0 -0
  156. /package/{frontend → dist/frontend}/mf-order/src/api/menu/index.d.ts +0 -0
  157. /package/{frontend → dist/frontend}/mf-order/src/api/order/index.d.ts +0 -0
  158. /package/{frontend → dist/frontend}/mf-order/src/api/order-setting/index.d.ts +0 -0
  159. /package/{frontend → dist/frontend}/mf-order/src/api/public-setting/index.d.ts +0 -0
  160. /package/{frontend → dist/frontend}/mf-order/src/api/remoteOrder/index.d.ts +0 -0
  161. /package/{frontend → dist/frontend}/mf-order/src/api/restaurant-setting/index.d.ts +0 -0
  162. /package/{frontend → dist/frontend}/mf-order/src/api/table-setting/index.d.ts +0 -0
  163. /package/{frontend → dist/frontend}/mf-order/src/app.d.ts +0 -0
  164. /package/{frontend → dist/frontend}/mf-order/src/components/GoogleMap.vue.d.ts +0 -0
  165. /package/{frontend → dist/frontend}/mf-order/src/components/RestaurantSelection.vue.d.ts +0 -0
  166. /package/{frontend → dist/frontend}/mf-order/src/components/index.d.ts +0 -0
  167. /package/{frontend → dist/frontend}/mf-order/src/components/snackbar.d.ts +0 -0
  168. /package/{frontend → dist/frontend}/mf-order/src/components/type.d.ts +0 -0
  169. /package/{frontend → dist/frontend}/mf-order/src/composables/index.d.ts +0 -0
  170. /package/{frontend → dist/frontend}/mf-order/src/composables/loading/index.d.ts +0 -0
  171. /package/{frontend → dist/frontend}/mf-order/src/composables/search.d.ts +0 -0
  172. /package/{frontend → dist/frontend}/mf-order/src/helpers/currency.d.ts +0 -0
  173. /package/{frontend → dist/frontend}/mf-order/src/helpers/date.d.ts +0 -0
  174. /package/{frontend → dist/frontend}/mf-order/src/helpers/iteration.d.ts +0 -0
  175. /package/{frontend → dist/frontend}/mf-order/src/helpers/map.d.ts +0 -0
  176. /package/{frontend → dist/frontend}/mf-order/src/helpers/menu.d.ts +0 -0
  177. /package/{frontend → dist/frontend}/mf-order/src/helpers/number.d.ts +0 -0
  178. /package/{frontend → dist/frontend}/mf-order/src/helpers/object.d.ts +0 -0
  179. /package/{frontend → dist/frontend}/mf-order/src/helpers/profile.d.ts +0 -0
  180. /package/{frontend → dist/frontend}/mf-order/src/i18n.d.ts +0 -0
  181. /package/{frontend → dist/frontend}/mf-order/src/main.d.ts +0 -0
  182. /package/{frontend → dist/frontend}/mf-order/src/modules/kiosk/interface.d.ts +0 -0
  183. /package/{frontend → dist/frontend}/mf-order/src/modules/order-setting/interface.d.ts +0 -0
  184. /package/{frontend → dist/frontend}/mf-order/src/modules/order-setting/kiosk/interface.d.ts +0 -0
  185. /package/{frontend → dist/frontend}/mf-order/src/plugins/google-maps.d.ts +0 -0
  186. /package/{frontend → dist/frontend}/mf-order/src/router/index.d.ts +0 -0
  187. /package/{frontend → dist/frontend}/mf-order/src/router/routes.d.ts +0 -0
  188. /package/{frontend → dist/frontend}/mf-order/src/stores/app/index.d.ts +0 -0
  189. /package/{frontend → dist/frontend}/mf-order/src/stores/iframe/index.d.ts +0 -0
  190. /package/{frontend → dist/frontend}/mf-order/src/stores/kiosk/index.d.ts +0 -0
  191. /package/{frontend → dist/frontend}/mf-order/src/stores/kiosk/mapper.d.ts +0 -0
  192. /package/{frontend → dist/frontend}/mf-order/src/stores/menu/menu.d.ts +0 -0
  193. /package/{frontend → dist/frontend}/mf-order/src/stores/order-setting/index.d.ts +0 -0
  194. /package/{frontend → dist/frontend}/mf-order/src/stores/order-setting/mapper.d.ts +0 -0
  195. /package/{frontend → dist/frontend}/mf-order/src/stores/restaurant/index.d.ts +0 -0
  196. /package/{frontend → dist/frontend}/mf-order/src/stores/table-settings.d.ts +0 -0
  197. /package/{frontend → dist/frontend}/mf-order/src/stores/type.d.ts +0 -0
  198. /package/{frontend → dist/frontend}/mf-order/src/utils/constants/route.d.ts +0 -0
  199. /package/{frontend → dist/frontend}/mf-order/src/utils/number.d.ts +0 -0
  200. /package/{frontend → dist/frontend}/mf-order/src/utils/object.d.ts +0 -0
  201. /package/{frontend → dist/frontend}/mf-order/src/views/all-orders/ActionMenuCell.vue.d.ts +0 -0
  202. /package/{frontend → dist/frontend}/mf-order/src/views/all-orders/FilterRestaurant.vue.d.ts +0 -0
  203. /package/{frontend → dist/frontend}/mf-order/src/views/all-orders/FilterStatus.vue.d.ts +0 -0
  204. /package/{frontend → dist/frontend}/mf-order/src/views/all-orders/FilterStatusMenu.vue.d.ts +0 -0
  205. /package/{frontend → dist/frontend}/mf-order/src/views/all-orders/Orders.vue.d.ts +0 -0
  206. /package/{frontend → dist/frontend}/mf-order/src/views/all-orders/ReflowOrder.vue.d.ts +0 -0
  207. /package/{frontend → dist/frontend}/mf-order/src/views/all-orders/UpdateDeliveryOrderDialog.vue.d.ts +0 -0
  208. /package/{frontend → dist/frontend}/mf-order/src/views/all-orders/order.d.ts +0 -0
  209. /package/{frontend → dist/frontend}/mf-order/src/views/feedme-express/FeedMeExpress.vue.d.ts +0 -0
  210. /package/{frontend → dist/frontend}/mf-order/src/views/feedme-express/FeedMeExpressSummary.vue.d.ts +0 -0
  211. /package/{frontend → dist/frontend}/mf-order/src/views/kiosk/KioskSummary.vue.d.ts +0 -0
  212. /package/{frontend → dist/frontend}/mf-order/src/views/kiosk/KioskView.vue.d.ts +0 -0
  213. /package/{frontend → dist/frontend}/mf-order/src/views/kiosk/devices/KioskDeviceCard.vue.d.ts +0 -0
  214. /package/{frontend → dist/frontend}/mf-order/src/views/kiosk/devices/KioskDeviceDetail.vue.d.ts +0 -0
  215. /package/{frontend → dist/frontend}/mf-order/src/views/kiosk/devices/KioskDevicesView.vue.d.ts +0 -0
  216. /package/{frontend → dist/frontend}/mf-order/src/views/kiosk/devices/KioskOtpDialog.vue.d.ts +0 -0
  217. /package/{frontend → dist/frontend}/mf-order/src/views/kiosk/devices/KioskUnbindConfirm.vue.d.ts +0 -0
  218. /package/{frontend → dist/frontend}/mf-order/src/views/kiosk/settings/KioskDineInSection.vue.d.ts +0 -0
  219. /package/{frontend → dist/frontend}/mf-order/src/views/kiosk/settings/KioskDisplayStandSection.vue.d.ts +0 -0
  220. /package/{frontend → dist/frontend}/mf-order/src/views/kiosk/settings/KioskPickAtCounterSection.vue.d.ts +0 -0
  221. /package/{frontend → dist/frontend}/mf-order/src/views/kiosk/settings/KioskSettingView.vue.d.ts +0 -0
  222. /package/{frontend → dist/frontend}/mf-order/src/views/kiosk/settings/KioskTakeawaySection.vue.d.ts +0 -0
  223. /package/{frontend → dist/frontend}/mf-order/src/views/order-settings/OrderSettingsView.vue.d.ts +0 -0
  224. /package/{frontend → dist/frontend}/mf-order/src/views/order-settings/components/RestaurantSelector.vue.d.ts +0 -0
  225. /package/{frontend → dist/frontend}/mf-order/src/views/order-settings/delivery/DeliverySetting.vue.d.ts +0 -0
  226. /package/{frontend → dist/frontend}/mf-order/src/views/order-settings/delivery/LocalDelivery.vue.d.ts +0 -0
  227. /package/{frontend → dist/frontend}/mf-order/src/views/order-settings/delivery/components/ManualIntegratedDeliverySetting.vue.d.ts +0 -0
  228. /package/{frontend → dist/frontend}/mf-order/src/views/order-settings/delivery/delivery.d.ts +0 -0
  229. /package/{frontend → dist/frontend}/mf-order/src/views/order-settings/delivery/delivery.data.d.ts +0 -0
  230. /package/{frontend → dist/frontend}/mf-order/src/views/order-settings/delivery/inhouse/CurrencyInput.vue.d.ts +0 -0
  231. /package/{frontend → dist/frontend}/mf-order/src/views/order-settings/delivery/inhouse/DeliveryCustomTime.vue.d.ts +0 -0
  232. /package/{frontend → dist/frontend}/mf-order/src/views/order-settings/delivery/inhouse/DeliveryOrder.vue.d.ts +0 -0
  233. /package/{frontend → dist/frontend}/mf-order/src/views/order-settings/delivery/inhouse/DeliveryTime.vue.d.ts +0 -0
  234. /package/{frontend → dist/frontend}/mf-order/src/views/order-settings/delivery/inhouse/InHouseDelivery.vue.d.ts +0 -0
  235. /package/{frontend → dist/frontend}/mf-order/src/views/order-settings/delivery/inhouse/TimePicker.vue.d.ts +0 -0
  236. /package/{frontend → dist/frontend}/mf-order/src/views/order-settings/delivery/inhouse/ZoneDialog.vue.d.ts +0 -0
  237. /package/{frontend → dist/frontend}/mf-order/src/views/order-settings/delivery/integrated-delivery/FeedmeDelivery.vue.d.ts +0 -0
  238. /package/{frontend → dist/frontend}/mf-order/src/views/order-settings/delivery/integrated-delivery/FoodpandaCampaignDialog.vue.d.ts +0 -0
  239. /package/{frontend → dist/frontend}/mf-order/src/views/order-settings/delivery/integrated-delivery/FoodpandaSetting.vue.d.ts +0 -0
  240. /package/{frontend → dist/frontend}/mf-order/src/views/order-settings/delivery/integrated-delivery/GrabfoodSetting.vue.d.ts +0 -0
  241. /package/{frontend → dist/frontend}/mf-order/src/views/order-settings/delivery/integrated-delivery/IntegratedDelivery.vue.d.ts +0 -0
  242. /package/{frontend → dist/frontend}/mf-order/src/views/order-settings/delivery/integrated-delivery/ShopeefoodSetting.vue.d.ts +0 -0
  243. /package/{frontend → dist/frontend}/mf-order/src/views/order-settings/delivery/integrated.data.interface.d.ts +0 -0
  244. /package/{frontend → dist/frontend}/mf-order/src/views/order-settings/dinein/DineInSetting.vue.d.ts +0 -0
  245. /package/{frontend → dist/frontend}/mf-order/src/views/order-settings/dinein/OfflinePaymentTypeDialog.vue.d.ts +0 -0
  246. /package/{frontend → dist/frontend}/mf-order/src/views/order-settings/dinein/OfflinePaymentTypeDialogContent.vue.d.ts +0 -0
  247. /package/{frontend → dist/frontend}/mf-order/src/views/order-settings/dinein/PaymentType.vue.d.ts +0 -0
  248. /package/{frontend → dist/frontend}/mf-order/src/views/order-settings/pickup/AddressInput.vue.d.ts +0 -0
  249. /package/{frontend → dist/frontend}/mf-order/src/views/order-settings/pickup/CustomPayment.vue.d.ts +0 -0
  250. /package/{frontend → dist/frontend}/mf-order/src/views/order-settings/pickup/PaymentSidesheet.vue.d.ts +0 -0
  251. /package/{frontend → dist/frontend}/mf-order/src/views/order-settings/pickup/PickUpPointDialog.vue.d.ts +0 -0
  252. /package/{frontend → dist/frontend}/mf-order/src/views/order-settings/pickup/PickUpPointDialogContent.vue.d.ts +0 -0
  253. /package/{frontend → dist/frontend}/mf-order/src/views/order-settings/pickup/PickUpSetting.vue.d.ts +0 -0
  254. /package/{frontend → dist/frontend}/mf-order/src/views/order-settings/pickup/PickUpSettingDialog.vue.d.ts +0 -0
  255. /package/{frontend → dist/frontend}/mf-order/src/views/order-settings/pickup/PickUpSideSheet.vue.d.ts +0 -0
  256. /package/{frontend → dist/frontend}/mf-order/src/views/order-settings/pickup/Preorder.vue.d.ts +0 -0
  257. /package/{frontend → dist/frontend}/mf-order/src/views/order-settings/servicecharge/RateInput.vue.d.ts +0 -0
  258. /package/{frontend → dist/frontend}/mf-order/src/views/order-settings/servicecharge/ServiceChargeRule.vue.d.ts +0 -0
  259. /package/{frontend → dist/frontend}/mf-order/src/views/order-settings/servicecharge/ServiceChargeSetting.vue.d.ts +0 -0
  260. /package/{frontend → dist/frontend}/mf-order/src/views/order-settings/sms/SmsSetting.vue.d.ts +0 -0
  261. /package/{frontend → dist/frontend}/mf-order/tsconfig.app.tsbuildinfo +0 -0
  262. /package/{package → dist/package}/entity/booking/booking.do.d.ts +0 -0
  263. /package/{package → dist/package}/entity/booking/booking.dto.d.ts +0 -0
  264. /package/{package → dist/package}/entity/booking/booking.enum.d.ts +0 -0
  265. /package/{package → dist/package}/entity/business/business.dto.d.ts +0 -0
  266. /package/{package → dist/package}/entity/clickup/clickup.dto.d.ts +0 -0
  267. /package/{package → dist/package}/entity/cursor/cursor.dto.d.ts +0 -0
  268. /package/{package → dist/package}/entity/delivery/delivery.do.d.ts +0 -0
  269. /package/{package → dist/package}/entity/delivery/delivery.dto.d.ts +0 -0
  270. /package/{package → dist/package}/entity/delivery/delivery.enum.d.ts +0 -0
  271. /package/{package → dist/package}/entity/delivery/gateway/grab.dto.d.ts +0 -0
  272. /package/{package → dist/package}/entity/delivery/gateway/grab.enum.d.ts +0 -0
  273. /package/{package → dist/package}/entity/delivery/gateway/kosmo.dto.d.ts +0 -0
  274. /package/{package → dist/package}/entity/delivery/gateway/kosmo.enum.d.ts +0 -0
  275. /package/{package → dist/package}/entity/delivery/gateway/manual.dto.d.ts +0 -0
  276. /package/{package → dist/package}/entity/delivery/gateway/manual.enum.d.ts +0 -0
  277. /package/{package → dist/package}/entity/delivery/gateway/pandago.dto.d.ts +0 -0
  278. /package/{package → dist/package}/entity/delivery/gateway/pandago.enum.d.ts +0 -0
  279. /package/{package → dist/package}/entity/delivery/linked-delivery.do.d.ts +0 -0
  280. /package/{package → dist/package}/entity/food-court/food-court.do.d.ts +0 -0
  281. /package/{package → dist/package}/entity/food-court/food-court.dto.d.ts +0 -0
  282. /package/{package → dist/package}/entity/food-court/food-court.enum.d.ts +0 -0
  283. /package/{package → dist/package}/entity/food-court/order.do.d.ts +0 -0
  284. /package/{package → dist/package}/entity/food-court/order.dto.d.ts +0 -0
  285. /package/{package → dist/package}/entity/general/dateTime.dto.d.ts +0 -0
  286. /package/{package → dist/package}/entity/general/number.dto.d.ts +0 -0
  287. /package/{package → dist/package}/entity/general/search.dto.d.ts +0 -0
  288. /package/{package → dist/package}/entity/incoming-order/incoming-order-to-bill.dto.d.ts +0 -0
  289. /package/{package → dist/package}/entity/incoming-order/incoming-order.do.d.ts +0 -0
  290. /package/{package → dist/package}/entity/incoming-order/incoming-order.dto.d.ts +0 -0
  291. /package/{package → dist/package}/entity/incoming-order/incoming-order.enum.d.ts +0 -0
  292. /package/{package → dist/package}/entity/index.d.ts +0 -0
  293. /package/{package → dist/package}/entity/kiosk/kiosk.do.d.ts +0 -0
  294. /package/{package → dist/package}/entity/kiosk/kiosk.dto.d.ts +0 -0
  295. /package/{package → dist/package}/entity/kiosk/marketing/marketing.dto.d.ts +0 -0
  296. /package/{package → dist/package}/entity/kiosk/scanner/scanner.do.d.ts +0 -0
  297. /package/{package → dist/package}/entity/kiosk/scanner/scanner.dto.d.ts +0 -0
  298. /package/{package → dist/package}/entity/kiosk/scanner/scanner.enum.d.ts +0 -0
  299. /package/{package → dist/package}/entity/marketing/marketing.dto.d.ts +0 -0
  300. /package/{package → dist/package}/entity/member/member.dto.d.ts +0 -0
  301. /package/{package → dist/package}/entity/money/money.enum.d.ts +0 -0
  302. /package/{package → dist/package}/entity/order/dine-in/dine-in.do.d.ts +0 -0
  303. /package/{package → dist/package}/entity/order/dine-in/dine-in.dto.d.ts +0 -0
  304. /package/{package → dist/package}/entity/order/dine-in/qr.do.d.ts +0 -0
  305. /package/{package → dist/package}/entity/order/dine-in/reservation.do.d.ts +0 -0
  306. /package/{package → dist/package}/entity/order/dine-in/reservation.dto.d.ts +0 -0
  307. /package/{package → dist/package}/entity/order/effects/effect.dto.d.ts +0 -0
  308. /package/{package → dist/package}/entity/order/effects/effect.enum.d.ts +0 -0
  309. /package/{package → dist/package}/entity/order/menu/menu.dto.d.ts +0 -0
  310. /package/{package → dist/package}/entity/order/order-item/order-item.dto.d.ts +0 -0
  311. /package/{package → dist/package}/entity/order/order.do.d.ts +0 -0
  312. /package/{package → dist/package}/entity/order/order.dto.d.ts +0 -0
  313. /package/{package → dist/package}/entity/order/order.enum.d.ts +0 -0
  314. /package/{package → dist/package}/entity/order/payment/payment.dto.d.ts +0 -0
  315. /package/{package → dist/package}/entity/order/pickup/pickup.do.d.ts +0 -0
  316. /package/{package → dist/package}/entity/order/pickup/pickup.dto.d.ts +0 -0
  317. /package/{package → dist/package}/entity/order/timeslot/timeslot.dto.d.ts +0 -0
  318. /package/{package → dist/package}/entity/order/timeslot/timeslot.enum.d.ts +0 -0
  319. /package/{package → dist/package}/entity/order-platform/base-integration.do.d.ts +0 -0
  320. /package/{package → dist/package}/entity/order-platform/foodpanda/foodpanda-menu.dto.d.ts +0 -0
  321. /package/{package → dist/package}/entity/order-platform/foodpanda/foodpanda-order.do.d.ts +0 -0
  322. /package/{package → dist/package}/entity/order-platform/foodpanda/foodpanda-order.dto.d.ts +0 -0
  323. /package/{package → dist/package}/entity/order-platform/foodpanda/foodpanda-settings.do.d.ts +0 -0
  324. /package/{package → dist/package}/entity/order-platform/foodpanda/foodpanda-settings.dto.d.ts +0 -0
  325. /package/{package → dist/package}/entity/order-platform/foodpanda/foodpanda.enum.d.ts +0 -0
  326. /package/{package → dist/package}/entity/order-platform/grabfood/grabfood-menu.do.d.ts +0 -0
  327. /package/{package → dist/package}/entity/order-platform/grabfood/grabfood-order.do.d.ts +0 -0
  328. /package/{package → dist/package}/entity/order-platform/grabfood/grabfood-settings.do.d.ts +0 -0
  329. /package/{package → dist/package}/entity/order-platform/grabfood/grabfood.dto.d.ts +0 -0
  330. /package/{package → dist/package}/entity/order-platform/grabfood/grabfood.enum.d.ts +0 -0
  331. /package/{package → dist/package}/entity/order-platform/menu.dto.d.ts +0 -0
  332. /package/{package → dist/package}/entity/order-platform/order-platform.dto.d.ts +0 -0
  333. /package/{package → dist/package}/entity/order-platform/order-platform.enum.d.ts +0 -0
  334. /package/{package → dist/package}/entity/order-platform/shopeefood/shopeefood-menu.do.d.ts +0 -0
  335. /package/{package → dist/package}/entity/order-platform/shopeefood/shopeefood-order.do.d.ts +0 -0
  336. /package/{package → dist/package}/entity/order-platform/shopeefood/shopeefood-order.dto.d.ts +0 -0
  337. /package/{package → dist/package}/entity/order-platform/shopeefood/shopeefood-settings.do.d.ts +0 -0
  338. /package/{package → dist/package}/entity/order-platform/shopeefood/shopeefood-settings.dto.d.ts +0 -0
  339. /package/{package → dist/package}/entity/order-platform/shopeefood/shopeefood.enum.d.ts +0 -0
  340. /package/{package → dist/package}/entity/order-setting/customization/color.do.d.ts +0 -0
  341. /package/{package → dist/package}/entity/order-setting/customization/color.dto.d.ts +0 -0
  342. /package/{package → dist/package}/entity/order-setting/kiosk/kiosk.do.d.ts +0 -0
  343. /package/{package → dist/package}/entity/order-setting/kiosk/kiosk.dto.d.ts +0 -0
  344. /package/{package → dist/package}/entity/order-setting/order-setting.do.d.ts +0 -0
  345. /package/{package → dist/package}/entity/order-setting/order-setting.dto.d.ts +0 -0
  346. /package/{package → dist/package}/entity/order-setting/queue/queue.do.d.ts +0 -0
  347. /package/{package → dist/package}/entity/order-setting/queue/queue.dto.d.ts +0 -0
  348. /package/{package → dist/package}/entity/order-setting/reservation/reservation.do.d.ts +0 -0
  349. /package/{package → dist/package}/entity/order-setting/reservation/reservation.dto.d.ts +0 -0
  350. /package/{package → dist/package}/entity/order-setting/sequence/sequence.do.d.ts +0 -0
  351. /package/{package → dist/package}/entity/order-setting/sequence/sequence.dto.d.ts +0 -0
  352. /package/{package → dist/package}/entity/order-setting/sms/sms.do.d.ts +0 -0
  353. /package/{package → dist/package}/entity/order-setting/sms/sms.dto.d.ts +0 -0
  354. /package/{package → dist/package}/entity/order-setting/sms/sms.enum.d.ts +0 -0
  355. /package/{package → dist/package}/entity/order-setting/upselling/upselling.do.d.ts +0 -0
  356. /package/{package → dist/package}/entity/order-setting/upselling/upselling.dto.d.ts +0 -0
  357. /package/{package → dist/package}/entity/order-setting/v3/v3.do.d.ts +0 -0
  358. /package/{package → dist/package}/entity/order-setting/v3/v3.dto.d.ts +0 -0
  359. /package/{package → dist/package}/entity/pagination/pagination.dto.d.ts +0 -0
  360. /package/{package → dist/package}/entity/payment/payment.enum.d.ts +0 -0
  361. /package/{package → dist/package}/entity/printer/printer.do.d.ts +0 -0
  362. /package/{package → dist/package}/entity/queue/queue.do.d.ts +0 -0
  363. /package/{package → dist/package}/entity/queue/queue.dto.d.ts +0 -0
  364. /package/{package → dist/package}/entity/queue/queue.enum.d.ts +0 -0
  365. /package/{package → dist/package}/entity/restaurant/restaurant.dto.d.ts +0 -0
  366. /package/{package → dist/package}/entity/user/user.do.d.ts +0 -0
  367. /package/{package → dist/package}/entity/websocket/websocket.dto.d.ts +0 -0
  368. /package/{package → dist/package}/entity/websocket/websocket.enum.d.ts +0 -0
package/.env.dev ADDED
@@ -0,0 +1,13 @@
1
+ DEV=true
2
+ VITE_AUTH_CLIENT_ID=1a362d621873497b277ea55258cc82594ba148d235257f7bd44ea2acc132d8a4
3
+ VITE_FIREBASE_API_KEY=AIzaSyAj8JdCHtP0Vc5vZobCfgoLzWxPIn0WUG4
4
+ VITE_FIREBASE_AUTH_DOMAIN=feedme-dev-4c3ef.firebaseapp.com
5
+ VITE_FIREBASE_DATABASE_URL=https://feedme-dev-4c3ef.firebaseio.com
6
+ VITE_FIREBASE_PROJECT_ID=feedme-dev-4c3ef
7
+ VITE_FIREBASE_STORAGE_BUCKET=feedme-dev-4c3ef.appspot.com
8
+ VITE_FIREBASE_MESSAGING_SENDER_ID=458797803788
9
+ VITE_FIREBASE_APP_ID=1:458797803788:web:37f2af2926a84288f0c129
10
+ VITE_FIREBASE_MEASUREMENT_ID=G-YH5GZ1DF39
11
+ VITE_DEBUG_MODE=true
12
+
13
+ VITE_GOOGLE_MAP_API_KEY=AIzaSyA_isPR1-9bX7UmRiJIhsIRNNwdn6DdmW4
package/.env.example ADDED
@@ -0,0 +1,11 @@
1
+ DEV=true
2
+ VITE_AUTH_CLIENT_ID=
3
+ VITE_FIREBASE_API_KEY=
4
+ VITE_FIREBASE_AUTH_DOMAIN=
5
+ VITE_FIREBASE_DATABASE_URL=
6
+ VITE_FIREBASE_PROJECT_ID=
7
+ VITE_FIREBASE_STORAGE_BUCKET=
8
+ VITE_FIREBASE_MESSAGING_SENDER_ID=
9
+ VITE_FIREBASE_APP_ID=
10
+ VITE_FIREBASE_MEASUREMENT_ID=
11
+ VITE_DEBUG_MODE=
package/.env.prod ADDED
@@ -0,0 +1,12 @@
1
+ DEV=true
2
+ VITE_AUTH_CLIENT_ID=d5f8840d63dbb758b6c4ee2a5e8b013d15dd25e242c457481326062b83962476
3
+ VITE_FIREBASE_API_KEY=AIzaSyA_isPR1-9bX7UmRiJIhsIRNNwdn6DdmW4
4
+ VITE_FIREBASE_AUTH_DOMAIN=feedme-253402.firebaseapp.com
5
+ VITE_FIREBASE_DATABASE_URL=https://feedme-253402.firebaseio.com
6
+ VITE_FIREBASE_PROJECT_ID=feedme-253402
7
+ VITE_FIREBASE_STORAGE_BUCKET=feedme-253402.appspot.com
8
+ VITE_FIREBASE_MESSAGING_SENDER_ID=128512026847
9
+ VITE_FIREBASE_APP_ID=1:128512026847:web:c2d7610ae1874f01dc616a
10
+ VITE_FIREBASE_MEASUREMENT_ID=G-4D8B9X2THG
11
+
12
+ VITE_GOOGLE_MAP_API_KEY=AIzaSyA_isPR1-9bX7UmRiJIhsIRNNwdn6DdmW4
package/.eslintrc.cjs ADDED
@@ -0,0 +1,15 @@
1
+ /* eslint-env node */
2
+ require('@rushstack/eslint-patch/modern-module-resolution')
3
+
4
+ module.exports = {
5
+ root: true,
6
+ 'extends': [
7
+ 'plugin:vue/vue3-essential',
8
+ 'eslint:recommended',
9
+ '@vue/eslint-config-typescript',
10
+ '@vue/eslint-config-prettier/skip-formatting'
11
+ ],
12
+ parserOptions: {
13
+ ecmaVersion: 'latest'
14
+ }
15
+ }
package/.nvmrc ADDED
@@ -0,0 +1 @@
1
+ v18.19.1
@@ -0,0 +1,8 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/prettierrc",
3
+ "semi": false,
4
+ "tabWidth": 2,
5
+ "singleQuote": true,
6
+ "printWidth": 100,
7
+ "trailingComma": "none"
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "recommendations": [
3
+ "Vue.volar",
4
+ "Vue.vscode-typescript-vue-plugin",
5
+ "dbaeumer.vscode-eslint",
6
+ "esbenp.prettier-vscode"
7
+ ]
8
+ }
package/README.md ADDED
@@ -0,0 +1,31 @@
1
+ # @feedmepos/mf-order
2
+
3
+ # mf-order
4
+
5
+ This project was scaffolded using [create-mf-app]. It includes Vue 3, Vite, TypeScript, Vue Router, Pinia, Feedme UI Library, and Tailwind CSS.
6
+
7
+ ## Project Setup
8
+
9
+ To get started with the project, run the following commands:
10
+
11
+ ```sh
12
+ yarn install
13
+ ```
14
+
15
+ ### Compile and Hot-Reload for Development
16
+
17
+ ```sh
18
+ yarn dev
19
+ ```
20
+
21
+ ### Type-Check, Compile and Minify for Production
22
+
23
+ ```sh
24
+ yarn build
25
+ ```
26
+
27
+ ### Lint with [ESLint](https://eslint.org/)
28
+
29
+ ```sh
30
+ yarn lint
31
+ ```
@@ -0,0 +1,4 @@
1
+ import { _ as f } from "./app-XcwzVa60.js";
2
+ export {
3
+ f as default
4
+ };
@@ -97,7 +97,7 @@ const qSe = { class: "flex-1 overflow-auto" }, Gyt = /* @__PURE__ */ Vt({
97
97
  __name: "App",
98
98
  setup(o) {
99
99
  return jn(async () => {
100
- const s = await new TO(void 0, {
100
+ const s = await new TO("AIzaSyA_isPR1-9bX7UmRiJIhsIRNNwdn6DdmW4", {
101
101
  libraries: ["places"]
102
102
  }).load();
103
103
  DSe(s);
@@ -170466,7 +170466,7 @@ const rQe = {
170466
170466
  __name: "KioskView",
170467
170467
  setup(o) {
170468
170468
  var L, X;
170469
- const c = wSe(() => import("./KioskSettingView-CdcHony9.js")), s = Ve("device"), g = nve(), b = iQe(), z = AF(), { currentRestaurant: S, restaurants: O, changeRestaurant: M } = _r(), D = MB(), N = Ve(((L = S.value) == null ? void 0 : L.profile.name) ?? "select"), V = me(() => {
170469
+ const c = wSe(() => import("./KioskSettingView-BTDNtWJ1.js")), s = Ve("device"), g = nve(), b = iQe(), z = AF(), { currentRestaurant: S, restaurants: O, changeRestaurant: M } = _r(), D = MB(), N = Ve(((L = S.value) == null ? void 0 : L.profile.name) ?? "select"), V = me(() => {
170470
170470
  const J = [{
170471
170471
  label: "Please select...",
170472
170472
  value: "select"
@@ -1,4 +1,4 @@
1
- import { a as t, i as a, r as e } from "./app-B7lXikwq.js";
1
+ import { a as t, i as a, r as e } from "./app-XcwzVa60.js";
2
2
  export {
3
3
  t as FmApp,
4
4
  a as initOrderSettingApp,
package/env.d.ts ADDED
@@ -0,0 +1,95 @@
1
+ /// <reference types="vite/client" />
2
+
3
+ interface ImportMeta {
4
+ readonly env: ImportMetaEnv
5
+ }
6
+
7
+ interface ImportMetaEnv {
8
+ VITE_AUTH_CLIENT_ID: string
9
+ VITE_GOOGLE_MAP_API_KEY: string
10
+ VITE_FIREBASE_API_KEY: string;
11
+ VITE_FIREBASE_AUTH_DOMAIN: string;
12
+ VITE_FIREBASE_DATABASE_URL: string;
13
+ VITE_FIREBASE_PROJECT_ID: string;
14
+ VITE_FIREBASE_STORAGE_BUCKET: string;
15
+ VITE_FIREBASE_MESSAGING_SENDER_ID: string;
16
+ VITE_FIREBASE_APP_ID: string;
17
+ VITE_FIREBASE_MEASUREMENT_ID: string;
18
+ VITE_DEBUG_MODE: string;
19
+ }
20
+
21
+ declare module '*.vue' {
22
+ import type { DefineComponent } from 'vue'
23
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types
24
+ const component: DefineComponent<{}, {}, any>
25
+ export default component
26
+ }
27
+
28
+ // vite define
29
+ declare const devInfo: {
30
+ mode: 'production' | 'development'
31
+ }
32
+
33
+ declare const appApi: {
34
+ googleMap: string
35
+ firebase: {
36
+ apiKey: string
37
+ authDomain: string
38
+ databaseURL: string
39
+ projectId: string
40
+ storageBucket: string
41
+ messagingSenderId: string
42
+ appId: string
43
+ measurementId: string
44
+ }
45
+ assetBucketUrl: string
46
+ imageBucketUrl: string
47
+ aiSettings: {
48
+ remy: {
49
+ enable: boolean
50
+ }
51
+ }
52
+ r2: {
53
+ endPoint: string
54
+ bucketName: string
55
+ accessKeyId: string
56
+ secretAccessKey: string
57
+ } | null
58
+ gtm: {
59
+ id: string
60
+ serverUrl: string
61
+ serverMeasurementId: string
62
+ env: string
63
+ debug: boolean
64
+ }
65
+ feedMeClientId: string
66
+ }
67
+ declare const appEndpoint: {
68
+ customerApp: string
69
+ customerV3App: string
70
+ dealer: string
71
+ portalV1: string
72
+ marketingPortal: string
73
+ inventoryPortal: string
74
+ report: string
75
+ licensePortal: string
76
+ tableMapping: string | undefined
77
+ templateBuilder: string | undefined
78
+ mainBackend: string | undefined
79
+ menuV4Backend: string | undefined
80
+ smsBackend: string | undefined
81
+ linkedDeliveryBackend: string | undefined
82
+ foodMarketHubBackend: string | undefined
83
+ foodpandaBackend: string | undefined
84
+ grabfoodBackend: string | undefined
85
+ shopeefoodBackend: string | undefined
86
+ mallIntegrationBackend: string | undefined
87
+ cubeJsBackend: string | undefined
88
+ marketingV2Backend: string | undefined
89
+ hrBackend: string | undefined
90
+ inventoryBackend: string | undefined
91
+ paymentBackend: string | undefined
92
+ remy: string
93
+ eInvoiceBackend: string | undefined
94
+ mdmPortal: string
95
+ }
package/index.html ADDED
@@ -0,0 +1,16 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <link rel="icon" href="/favicon.ico">
7
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
8
+ <title>Vite App</title>
9
+ </head>
10
+
11
+ <body>
12
+ <div id="app"></div>
13
+ <script type="module" src="/src/main.ts"></script>
14
+ </body>
15
+
16
+ </html>
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@feedmepos/mf-order-setting",
3
- "version": "0.0.4",
3
+ "version": "0.0.6",
4
4
  "type": "module",
5
- "module": "./app.js",
5
+ "module": "./dist/app.js",
6
6
  "license": "UNLICENSED",
7
7
  "exports": {
8
8
  ".": {
9
- "import": "./app.js"
9
+ "import": "./dist/app.js"
10
10
  }
11
11
  },
12
12
  "scripts": {
@@ -17,7 +17,7 @@
17
17
  "build:mf": "vite build --mode fmmf",
18
18
  "build:dts": "NODE_OPTIONS=--max-old-space-size=16384 vue-tsc --declaration --emitDeclarationOnly -p tsconfig.app.json --outDir ./dist",
19
19
  "publish-npm": "yarn build && yarn npm publish --no-git-checks",
20
- "build-only": "yarn build:mf && yarn build:dts && cp ./package.json ./dist/package.json",
20
+ "build-only": "dotenv -e .env.dev -- yarn build:mf && yarn build:dts",
21
21
  "build:dev": "cross-env NODE_ENV=dev vite build --mode dev",
22
22
  "build:prod": "vite build --mode prod",
23
23
  "type-check": "set NODE_OPTIONS=--max-old-space-size=16384 && vue-tsc --noEmit -p tsconfig.app.json --composite false",
@@ -47,6 +47,7 @@
47
47
  "vue-router": "^4.2.5"
48
48
  },
49
49
  "devDependencies": {
50
+ "dotenv-cli": "^7.4.2",
50
51
  "@babel/types": "^7.24.7",
51
52
  "@rushstack/eslint-patch": "^1.3.3",
52
53
  "@tsconfig/node18": "^18.2.2",
@@ -0,0 +1,6 @@
1
+ export default {
2
+ plugins: {
3
+ tailwindcss: {},
4
+ autoprefixer: {}
5
+ }
6
+ }
Binary file
package/src/App.vue ADDED
@@ -0,0 +1,19 @@
1
+ <script setup lang="ts">
2
+ import { onMounted } from 'vue'
3
+ import { setGoogleMap } from './helpers/map'
4
+ import { Loader } from 'google-maps'
5
+
6
+ onMounted(async () => {
7
+ const loader = new Loader(import.meta.env.VITE_GOOGLE_MAP_API_KEY, {
8
+ libraries: ['places']
9
+ })
10
+ const map = await loader.load()
11
+ setGoogleMap(map)
12
+ })
13
+ </script>
14
+
15
+ <template>
16
+ <div class="flex-1 overflow-auto">
17
+ <RouterView />
18
+ </div>
19
+ </template>
package/src/Entry.vue ADDED
@@ -0,0 +1,42 @@
1
+ <script setup lang="ts">
2
+ import { FmNavBar } from '@feedmepos/mf-common'
3
+ import { computed } from 'vue'
4
+ import { useRoute } from 'vue-router'
5
+ import { onMounted } from 'vue'
6
+ import { setGoogleMap } from './helpers/map'
7
+ import { Loader } from 'google-maps'
8
+ import { useIframeStore } from '@/stores/iframe'
9
+ import App from './App.vue'
10
+
11
+ const route = useRoute()
12
+ const showHeader = computed(() => route.query.showHeader !== 'false')
13
+ const { state } = useIframeStore()
14
+
15
+ onMounted(async () => {
16
+ if (state.isIframe) {
17
+ parent.postMessage({ event: 'ready' }, '*')
18
+ }
19
+
20
+ const loader = new Loader(import.meta.env.VITE_GOOGLE_MAP_API_KEY, {
21
+ libraries: ['places']
22
+ })
23
+
24
+ const map = await loader.load()
25
+ setGoogleMap(map)
26
+ })
27
+ </script>
28
+
29
+ <template>
30
+ <div style="height: 100dvh; width: 100dvw" class="flex flex-col overflow-hidden">
31
+ <div v-if="!state.isIframe" style="height: 64px">
32
+ <FmNavBar />
33
+ </div>
34
+ <App/>
35
+ </div>
36
+ </template>
37
+
38
+ <style>
39
+ .app-container {
40
+ display: none;
41
+ }
42
+ </style>
@@ -0,0 +1,20 @@
1
+ import { authInstance } from "..";
2
+
3
+ async function getCustomToken(token: string) {
4
+ const reponse = await authInstance({
5
+ customIdToken: token,
6
+ }).post(`/token`, { token });
7
+ return reponse.data;
8
+ }
9
+
10
+ async function getIdToken(customToken: string) {
11
+ const reponse = await authInstance({
12
+ customIdToken: customToken,
13
+ }).post(`/token/idtoken`, { customToken: customToken });
14
+ return reponse.data;
15
+ }
16
+
17
+ export const AuthApi = {
18
+ getCustomToken,
19
+ getIdToken,
20
+ }
@@ -0,0 +1,15 @@
1
+
2
+ import type { DeliveryCancelDto, FdtoDeliveryManualWebhook, OrderPortalDto } from '@entity';
3
+ import { baseClientInstance, getData } from '..';
4
+
5
+ export const deliveryApi = {
6
+ async updateManualOrder(payload: FdtoDeliveryManualWebhook): Promise<OrderPortalDto> {
7
+ return getData(await baseClientInstance().post('/deliveries/update-manual-status', payload));
8
+ },
9
+ async cancelDeliveryOrder(payload: DeliveryCancelDto): Promise<OrderPortalDto> {
10
+ return getData(await baseClientInstance().post('/deliveries/cancel-delivery', payload));
11
+ },
12
+ async refetchDeliveryOrder(orderId: string): Promise<OrderPortalDto> {
13
+ return getData(await baseClientInstance().post(`/deliveries/${orderId}/refresh`));
14
+ }
15
+ };
@@ -0,0 +1,171 @@
1
+ import axios, { AxiosError, type AxiosInstance, type AxiosResponse } from 'axios'
2
+ import { F_COUNTRY } from '@feedmepos/core/entity'
3
+ import { useCoreStore } from '@feedmepos/mf-common'
4
+
5
+ export const defaultCountry = F_COUNTRY.enum.MY
6
+ type ApiVariant = 'portal' | 'auth' | 'localhost';
7
+
8
+ interface ApiUrl {
9
+ portalBackendUrl: string
10
+ websocketBackendUrl: string
11
+ linkedDeliveryBackend: string
12
+ menuBackendUrl: string;
13
+ smsBackendUrl: string;
14
+ accountBackendUrl: string;
15
+ }
16
+
17
+ let apiUrl: ApiUrl | null = null
18
+
19
+ export const SvcConfig = {
20
+ getIdToken(): string | null {
21
+ const idToken = useCoreStore().sessionUser.value?.token
22
+ return idToken ?? null
23
+ },
24
+ getBusinessId(): string | null {
25
+ return useCoreStore().currentBusiness.value?._id ?? null;
26
+ },
27
+ getRestaurantId(): string | null {
28
+ return useCoreStore().currentRestaurant.value?._id ?? null
29
+ },
30
+ setRestaurantId(restaurantId: string | null): void {
31
+ const coreStore = useCoreStore()
32
+ if (restaurantId) {
33
+ const restaurant = coreStore.restaurants.value.find((r) => r._id === restaurantId)
34
+ if (restaurant) {
35
+ coreStore.changeRestaurant(restaurant)
36
+ } else {
37
+ console.warn(`Restaurant with ID ${restaurantId} not found.`)
38
+ }
39
+ } else {
40
+ coreStore.changeRestaurant(undefined)
41
+ }
42
+ },
43
+ setBackendUrl() {
44
+ const _country = useCoreStore().currentCountry.value || defaultCountry
45
+ apiUrl = generateBackendUrl(_country)
46
+ },
47
+ getBackendUrl(): ApiUrl {
48
+ const _country = useCoreStore().currentCountry.value || defaultCountry
49
+ return apiUrl || generateBackendUrl(_country)
50
+ }
51
+ }
52
+
53
+ function generateBackendUrl(country: F_COUNTRY): ApiUrl {
54
+ const { namespace } = useCoreStore()
55
+ const isDev = namespace.value === "dev"
56
+ const area = country !== F_COUNTRY.enum.MY ? `.${country.toLowerCase()}` : '';
57
+ const domain = `${isDev ? '-dev' : ''}${area}.feedmeapi.com`;
58
+ const portalBackendUrl = `https://portal-v2${domain}`;
59
+ const accountBackendUrl = `https://account${domain}`;
60
+ return {
61
+ portalBackendUrl,
62
+ websocketBackendUrl: `wss://94ilf9iqc0.execute-api.ap-southeast-1.amazonaws.com/${isDev ? 'dev' : 'prod'}`,
63
+ linkedDeliveryBackend: `${portalBackendUrl}/linked-deliveries`,
64
+ menuBackendUrl: `${portalBackendUrl}/menu-v4`,
65
+ smsBackendUrl: `https://sms${domain}`,
66
+ accountBackendUrl
67
+ }
68
+ };
69
+
70
+ // eslint-disable-next-line @typescript-eslint/ban-types
71
+ interface SvcMasterCompanyResponse<T = {}> {
72
+ status: string
73
+ success: boolean
74
+ data: T
75
+ error: SvsMasterCompanyError
76
+ }
77
+
78
+ interface SvsMasterCompanyError {
79
+ message: string
80
+ code: string
81
+ }
82
+
83
+ class ApiError extends Error {
84
+ constructor(message?: string) {
85
+ super(message)
86
+ this.name = 'ApiError'
87
+ Object.setPrototypeOf(this, new.target.prototype)
88
+ }
89
+ }
90
+
91
+ export class SvcCompanyApiError extends ApiError {
92
+ constructor(message: string) {
93
+ super(message)
94
+ this.name = 'SvcCompanyApiError'
95
+ this.message = message
96
+ }
97
+ }
98
+
99
+ function getBaseUrl(variant: ApiVariant, port?: string): string {
100
+ switch (variant) {
101
+ case 'portal':
102
+ return SvcConfig.getBackendUrl().portalBackendUrl;
103
+ case 'auth':
104
+ return SvcConfig.getBackendUrl().accountBackendUrl;
105
+ case 'localhost':
106
+ return `http://localhost${port ? `:${port}` : ''}`;
107
+ }
108
+ }
109
+
110
+ export const baseClientInstance = (
111
+ path = '',
112
+ variant: ApiVariant = 'portal',
113
+ config?: { noIdRequired?: boolean, url?: string, customIdToken?: string },
114
+ port?: string,
115
+ ): AxiosInstance => {
116
+ const url = config?.url ?? getBaseUrl(variant, port)
117
+ const idToken = SvcConfig.getIdToken();
118
+ if (idToken || config?.noIdRequired || config?.customIdToken) {
119
+ const client = axios.create({
120
+ baseURL: `${url}${path}`,
121
+ headers: {
122
+ Authorization: `Bearer ${config?.customIdToken || idToken}`
123
+ }
124
+ })
125
+ client.interceptors.response.use(
126
+ (response: AxiosResponse<SvcMasterCompanyResponse>) => response,
127
+ async (error): Promise<unknown> => {
128
+ if (error instanceof AxiosError) {
129
+ const data = error.response?.data
130
+ const errMsg = data?.message || data?.error || `${error.message}` || `${error}`
131
+ return Promise.reject(new SvcCompanyApiError(errMsg))
132
+ }
133
+ return Promise.reject(error)
134
+ }
135
+ )
136
+ return client
137
+ } else {
138
+ throw new Error('Unauthorized request')
139
+ }
140
+ }
141
+
142
+ export const authInstance = (config?: { noIdRequired?: boolean, url?: string, customIdToken?: string },): AxiosInstance => {
143
+ return baseClientInstance('/', 'auth', config);
144
+ };
145
+
146
+ export const restaurantClientInstance = (prefix?: string): AxiosInstance => {
147
+ const restaurantId = SvcConfig.getRestaurantId();
148
+ const restaurantPath = `${prefix ?? ''}/restaurants/${restaurantId}`;
149
+ if (restaurantId) {
150
+ return baseClientInstance(restaurantPath);
151
+ } else {
152
+ throw new Error('Invalid restaurant');
153
+ }
154
+ }
155
+
156
+ export const menuClientInstance = (): AxiosInstance => {
157
+ const businessId = SvcConfig.getBusinessId();
158
+ if (!businessId) throw new Error('Invalid business ID');
159
+ const { menuBackendUrl } = SvcConfig.getBackendUrl();
160
+ const url = `${menuBackendUrl}/businesses/${businessId}/menu-v4`;
161
+ return baseClientInstance('', 'portal', { url });
162
+ };
163
+
164
+ export const smsBackendClientInstance = (): AxiosInstance => {
165
+ const { smsBackendUrl } = SvcConfig.getBackendUrl();
166
+ return baseClientInstance('', 'portal', { url: smsBackendUrl });
167
+ };
168
+
169
+ export function getData<T>(response: AxiosResponse<T>): T {
170
+ return response.data
171
+ }
@@ -0,0 +1,22 @@
1
+ import { getData, restaurantClientInstance } from '@/api';
2
+ import { KioskOtpDto, KioskDeviceDto } from '@entity';
3
+
4
+ async function requestOtp() : Promise<KioskOtpDto>{
5
+ const result = await restaurantClientInstance().get('/kiosk/otp');
6
+ return getData<KioskOtpDto>(result);
7
+ }
8
+
9
+ async function getDevices(): Promise<KioskDeviceDto[]>{
10
+ const result = await restaurantClientInstance().get('/kiosk/devices');
11
+ return getData<KioskDeviceDto[]>(result);
12
+ }
13
+
14
+ async function unbind(machineId: string): Promise<void>{
15
+ await restaurantClientInstance().delete(`/kiosk/unbind/${machineId}`);
16
+ }
17
+
18
+ export const KioskApi = {
19
+ requestOtp,
20
+ getDevices,
21
+ unbind
22
+ };
@@ -0,0 +1,13 @@
1
+ import { getData, menuClientInstance } from '..';
2
+ import { FdoMenuV4 } from '@feedmepos/menu/entity';
3
+
4
+
5
+ interface MenuV4Doc extends FdoMenuV4{
6
+ _rev: string
7
+ }
8
+
9
+ export const menuApi = {
10
+ async readMenu(): Promise<MenuV4Doc> {
11
+ return getData(await menuClientInstance().get(''));
12
+ },
13
+ };
@@ -0,0 +1,15 @@
1
+ import type { OrderPortalDto, OrderQueryDto, OrderRefundDto } from '@entity';
2
+ import { baseClientInstance, getData } from '..';
3
+ import type { FdtoDeliveryManualWebhook } from '@feedmepos/ordering/package/entity';
4
+
5
+ export const orderApi = {
6
+ async read(dto: OrderQueryDto): Promise<OrderPortalDto[]> {
7
+ return getData(await baseClientInstance().post('/orders', dto));
8
+ },
9
+ async refund(dto: OrderRefundDto): Promise<OrderPortalDto> {
10
+ return getData(await baseClientInstance().post('/orders/refund', dto));
11
+ },
12
+ async updateManualOrder(payload: FdtoDeliveryManualWebhook): Promise<OrderPortalDto> {
13
+ return getData(await baseClientInstance().post('/deliveries/update-manual-status', payload));
14
+ },
15
+ };
@@ -0,0 +1,25 @@
1
+ import { getData, restaurantClientInstance, smsBackendClientInstance, SvcConfig } from '@/api';
2
+ import { OrderSettingsDto, OrderSettingUpdateDto } from '@entity';
3
+
4
+ async function getOrderSetting() : Promise<OrderSettingsDto>{
5
+ const result = await restaurantClientInstance().get('/order-settings');
6
+ return getData<OrderSettingsDto>(result);
7
+ }
8
+
9
+ async function updateOrderSetting(payload: OrderSettingUpdateDto): Promise<OrderSettingsDto>{
10
+ const result = await restaurantClientInstance().put('/order-settings', payload);
11
+ return getData<OrderSettingsDto>(result);
12
+ }
13
+
14
+ export const OrderSettingApi = {
15
+ getOrderSetting,
16
+ updateOrderSetting,
17
+ };
18
+
19
+ async function read() {
20
+ return getData(await smsBackendClientInstance().get(`balance/${SvcConfig.getBusinessId()}`));
21
+ }
22
+
23
+ export const smsApi = {
24
+ read,
25
+ };
@@ -0,0 +1,11 @@
1
+ import type { FdoPublicSetting } from '@feedmepos/core/entity';
2
+ import { baseClientInstance, getData } from '..';
3
+
4
+ export const publicSettingApi = {
5
+ async read(): Promise<FdoPublicSetting> {
6
+ return getData(await baseClientInstance().get('/public-setting'));
7
+ },
8
+ async update(dto: FdoPublicSetting): Promise<FdoPublicSetting> {
9
+ return getData(await baseClientInstance().put('/public-setting', dto));
10
+ },
11
+ };