@pisell/pisellos 0.0.568 → 0.10.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 (588) hide show
  1. package/dist/core/index.js +10 -6
  2. package/dist/index.d.ts +0 -1
  3. package/dist/index.js +0 -3
  4. package/dist/model/strategy/adapter/promotion/evaluator.js +3 -2
  5. package/dist/model/strategy/adapter/walletPass/evaluator.js +7 -5
  6. package/dist/model/strategy/adapter/walletPass/example.js +26 -3
  7. package/dist/model/strategy/adapter/walletPass/index.js +5 -5
  8. package/dist/model/strategy/adapter/walletPass/type.d.ts +0 -3
  9. package/dist/model/strategy/adapter/walletPass/utils.d.ts +0 -26
  10. package/dist/model/strategy/adapter/walletPass/utils.js +24 -96
  11. package/dist/model/strategy/strategy-example.js +19 -5
  12. package/dist/modules/BaseModule.d.ts +2 -2
  13. package/dist/modules/BaseModule.js +12 -14
  14. package/dist/modules/BookingContext/index.d.ts +48 -0
  15. package/dist/modules/BookingContext/index.js +566 -0
  16. package/dist/modules/BookingContext/types.d.ts +102 -0
  17. package/dist/modules/BookingContext/types.js +51 -0
  18. package/dist/modules/BookingContext/utils/buildCacheItemFromOrderLine.d.ts +16 -0
  19. package/dist/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +302 -0
  20. package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.d.ts +8 -0
  21. package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +149 -0
  22. package/dist/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +76 -0
  23. package/dist/modules/BookingContext/utils/cacheItemToBookingInput.js +249 -0
  24. package/dist/modules/BookingContext/utils/flexible.d.ts +28 -0
  25. package/dist/modules/BookingContext/utils/flexible.js +56 -0
  26. package/dist/modules/BookingContext/utils/formatResourceList.d.ts +8 -0
  27. package/dist/modules/BookingContext/utils/formatResourceList.js +38 -0
  28. package/dist/modules/BookingContext/utils/index.d.ts +11 -0
  29. package/dist/modules/BookingContext/utils/index.js +11 -0
  30. package/dist/modules/BookingContext/utils/noResource.d.ts +13 -0
  31. package/dist/modules/BookingContext/utils/noResource.js +77 -0
  32. package/dist/modules/BookingContext/utils/orderLineDisplay.d.ts +1 -0
  33. package/dist/modules/BookingContext/utils/orderLineDisplay.js +36 -0
  34. package/dist/modules/BookingContext/utils/productExtend.d.ts +72 -0
  35. package/dist/modules/BookingContext/utils/productExtend.js +339 -0
  36. package/dist/modules/BookingContext/utils/resourceErrors.d.ts +41 -0
  37. package/dist/modules/BookingContext/utils/resourceErrors.js +74 -0
  38. package/dist/modules/BookingContext/utils/resourceSelection.d.ts +7 -0
  39. package/dist/modules/BookingContext/utils/resourceSelection.js +24 -0
  40. package/dist/modules/BookingContext/utils/resources.d.ts +80 -0
  41. package/dist/modules/BookingContext/utils/resources.js +486 -0
  42. package/dist/modules/BookingContext/utils/serviceTimes.d.ts +55 -0
  43. package/dist/modules/BookingContext/utils/serviceTimes.js +151 -0
  44. package/dist/modules/BookingContext/utils/timeSlices.d.ts +42 -0
  45. package/dist/modules/BookingContext/utils/timeSlices.js +100 -0
  46. package/dist/modules/Cart/index.js +3 -0
  47. package/dist/modules/Cart/utils/cartProduct.js +27 -5
  48. package/dist/modules/Cart/utils/cartResource.js +0 -2
  49. package/dist/modules/Cart/utils/changePrice.js +11 -11
  50. package/dist/modules/Customer/index.d.ts +20 -0
  51. package/dist/modules/Customer/index.js +172 -83
  52. package/dist/modules/Customer/types.d.ts +2 -0
  53. package/dist/modules/Date/index.js +5 -1
  54. package/dist/modules/Discount/index.d.ts +2 -2
  55. package/dist/modules/Discount/index.js +43 -30
  56. package/dist/modules/Discount/types.d.ts +1 -1
  57. package/dist/modules/OpenData/index.d.ts +8 -0
  58. package/dist/modules/OpenData/index.js +38 -16
  59. package/dist/modules/Order/index.d.ts +449 -24
  60. package/dist/modules/Order/index.js +5460 -574
  61. package/dist/modules/Order/types.d.ts +693 -88
  62. package/dist/modules/Order/types.js +68 -1
  63. package/dist/modules/Order/utils/bundleDiscountHydration.d.ts +5 -0
  64. package/dist/modules/Order/utils/bundleDiscountHydration.js +144 -0
  65. package/dist/modules/Order/utils/manualProductDiscount.d.ts +106 -0
  66. package/dist/modules/Order/utils/manualProductDiscount.js +210 -0
  67. package/dist/modules/Order/utils/orderCollectionIdentity.d.ts +53 -0
  68. package/dist/modules/Order/utils/orderCollectionIdentity.js +405 -0
  69. package/dist/modules/Order/utils.d.ts +167 -18
  70. package/dist/modules/Order/utils.js +960 -165
  71. package/dist/modules/Payment/index.d.ts +10 -9
  72. package/dist/modules/Payment/index.js +573 -746
  73. package/dist/modules/Payment/types.d.ts +44 -24
  74. package/dist/modules/Payment/utils.d.ts +1 -1
  75. package/dist/modules/Payment/utils.js +4 -3
  76. package/dist/modules/Payment/walletpass.d.ts +0 -2
  77. package/dist/modules/Payment/walletpass.js +49 -33
  78. package/dist/modules/Product/types.d.ts +29 -7
  79. package/dist/modules/ProductList/index.d.ts +17 -13
  80. package/dist/modules/ProductList/index.js +182 -81
  81. package/dist/modules/ProductList/types.d.ts +16 -0
  82. package/dist/modules/Quotation/index.d.ts +22 -2
  83. package/dist/modules/Quotation/index.js +108 -42
  84. package/dist/modules/Quotation/types.d.ts +19 -0
  85. package/dist/modules/ResourcePlanner/index.d.ts +24 -0
  86. package/dist/modules/ResourcePlanner/index.js +181 -0
  87. package/dist/modules/ResourcePlanner/planner.d.ts +14 -0
  88. package/dist/modules/ResourcePlanner/planner.js +1069 -0
  89. package/dist/modules/ResourcePlanner/types.d.ts +227 -0
  90. package/dist/modules/ResourcePlanner/types.js +1 -0
  91. package/dist/modules/Rules/index.d.ts +8 -10
  92. package/dist/modules/Rules/index.js +324 -513
  93. package/dist/modules/Rules/types.d.ts +14 -3
  94. package/dist/modules/SalesSummary/index.d.ts +23 -26
  95. package/dist/modules/SalesSummary/index.js +152 -46
  96. package/dist/modules/SalesSummary/types.d.ts +9 -1
  97. package/dist/modules/SalesSummary/utils.d.ts +3 -22
  98. package/dist/modules/SalesSummary/utils.js +804 -165
  99. package/dist/modules/Schedule/getDateIsInSchedule.js +14 -12
  100. package/dist/modules/Schedule/index.d.ts +18 -5
  101. package/dist/modules/Schedule/index.js +79 -24
  102. package/dist/modules/Schedule/types.d.ts +2 -0
  103. package/dist/modules/Schedule/utils.js +1 -0
  104. package/dist/modules/Step/index.js +1 -0
  105. package/dist/modules/Summary/index.js +4 -3
  106. package/dist/modules/Summary/utils.js +22 -43
  107. package/dist/modules/SurchargeList/index.d.ts +18 -0
  108. package/dist/modules/SurchargeList/index.js +185 -0
  109. package/dist/modules/SurchargeList/types.d.ts +15 -0
  110. package/dist/modules/SurchargeList/types.js +1 -0
  111. package/dist/modules/index.d.ts +3 -0
  112. package/dist/modules/index.js +4 -1
  113. package/dist/plugins/app.d.ts +2 -0
  114. package/dist/plugins/request.d.ts +1 -0
  115. package/dist/plugins/request.js +4 -1
  116. package/dist/plugins/window.js +6 -2
  117. package/dist/server/index.d.ts +462 -8
  118. package/dist/server/index.js +6168 -680
  119. package/dist/server/modules/floor-plan/index.d.ts +39 -0
  120. package/dist/server/modules/floor-plan/index.js +595 -0
  121. package/dist/server/modules/floor-plan/types.d.ts +43 -0
  122. package/dist/server/modules/floor-plan/types.js +13 -0
  123. package/dist/server/modules/index.d.ts +7 -2
  124. package/dist/server/modules/index.js +6 -0
  125. package/dist/server/modules/menu/index.js +41 -32
  126. package/dist/server/modules/order/index.d.ts +207 -14
  127. package/dist/server/modules/order/index.js +2328 -379
  128. package/dist/server/modules/order/types.d.ts +76 -5
  129. package/dist/server/modules/order/types.js +14 -1
  130. package/dist/server/modules/order/utils/filterBookings.d.ts +7 -1
  131. package/dist/server/modules/order/utils/filterBookings.js +118 -11
  132. package/dist/server/modules/order/utils/filterOrders.js +242 -14
  133. package/dist/server/modules/payment/index.d.ts +28 -0
  134. package/dist/server/modules/payment/index.js +305 -0
  135. package/dist/server/modules/payment/types.d.ts +9 -0
  136. package/dist/server/modules/payment/types.js +1 -0
  137. package/dist/server/modules/products/index.d.ts +105 -14
  138. package/dist/server/modules/products/index.js +1416 -521
  139. package/dist/server/modules/products/types.d.ts +34 -1
  140. package/dist/server/modules/products/types.js +4 -0
  141. package/dist/server/modules/quotation/index.d.ts +39 -0
  142. package/dist/server/modules/quotation/index.js +298 -77
  143. package/dist/server/modules/resource/index.d.ts +2 -3
  144. package/dist/server/modules/resource/index.js +109 -86
  145. package/dist/server/modules/schedule/index.d.ts +6 -4
  146. package/dist/server/modules/schedule/index.js +145 -106
  147. package/dist/server/test.json +713 -0
  148. package/dist/server/types.d.ts +2 -0
  149. package/dist/server/utils/product.js +3 -2
  150. package/dist/server/utils/small-ticket.d.ts +71 -0
  151. package/dist/server/utils/small-ticket.js +963 -0
  152. package/dist/solution/BaseSales/index.d.ts +378 -0
  153. package/dist/solution/BaseSales/index.js +4009 -0
  154. package/dist/solution/BaseSales/types.d.ts +394 -0
  155. package/dist/solution/BaseSales/types.js +40 -0
  156. package/dist/solution/BaseSales/utils/cartPromotion.d.ts +287 -0
  157. package/dist/solution/BaseSales/utils/cartPromotion.js +1450 -0
  158. package/dist/solution/BaseSales/utils/parseSalesResponse.d.ts +144 -0
  159. package/dist/solution/BaseSales/utils/parseSalesResponse.js +157 -0
  160. package/dist/solution/BaseSales/utils/quotationPrice.d.ts +18 -0
  161. package/dist/solution/BaseSales/utils/quotationPrice.js +250 -0
  162. package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.d.ts +63 -0
  163. package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +218 -0
  164. package/dist/solution/BaseSales/utils.d.ts +40 -0
  165. package/dist/solution/BaseSales/utils.js +263 -0
  166. package/dist/solution/BookingByStep/index.d.ts +1 -1
  167. package/dist/solution/BookingByStep/index.js +60 -11
  168. package/dist/solution/BookingByStep/utils/capacity.js +11 -1
  169. package/dist/solution/BookingByStep/utils/resources.js +3 -1
  170. package/dist/solution/BookingByStep/utils/timeslots.js +43 -2
  171. package/dist/solution/BookingTicket/index.d.ts +393 -24
  172. package/dist/solution/BookingTicket/index.js +2508 -443
  173. package/dist/solution/BookingTicket/types.d.ts +191 -6
  174. package/dist/solution/BookingTicket/types.js +83 -10
  175. package/dist/solution/BookingTicket/utils/addProductDecision.d.ts +117 -0
  176. package/dist/solution/BookingTicket/utils/addProductDecision.js +346 -0
  177. package/dist/solution/BookingTicket/utils/addTimeAvailability.d.ts +35 -0
  178. package/dist/solution/BookingTicket/utils/addTimeAvailability.js +95 -0
  179. package/dist/solution/BookingTicket/utils/bookingStatus.d.ts +77 -0
  180. package/dist/solution/BookingTicket/utils/bookingStatus.js +136 -0
  181. package/dist/solution/BookingTicket/utils/cartView.d.ts +29 -0
  182. package/dist/solution/BookingTicket/utils/cartView.js +209 -0
  183. package/dist/solution/BookingTicket/utils/exampleData.d.ts +123 -0
  184. package/dist/solution/BookingTicket/utils/exampleData.js +183 -0
  185. package/dist/solution/BookingTicket/utils/orderCustomer.d.ts +4 -0
  186. package/dist/solution/BookingTicket/utils/orderCustomer.js +31 -0
  187. package/dist/solution/BookingTicket/utils/resolveBestAddTimePlan.d.ts +185 -0
  188. package/dist/solution/BookingTicket/utils/resolveBestAddTimePlan.js +438 -0
  189. package/dist/solution/BookingTicket/utils/scan/applyGlobalScan.d.ts +36 -0
  190. package/dist/solution/BookingTicket/utils/scan/applyGlobalScan.js +400 -0
  191. package/dist/solution/BookingTicket/utils/scan/cloudSearch.d.ts +4 -0
  192. package/dist/solution/BookingTicket/utils/scan/cloudSearch.js +42 -1
  193. package/dist/solution/BookingTicket/utils/scan/formatGlobalScan.d.ts +32 -0
  194. package/dist/solution/BookingTicket/utils/scan/formatGlobalScan.js +56 -0
  195. package/dist/solution/BookingTicket/utils/scan/handleScan.d.ts +3 -1
  196. package/dist/solution/BookingTicket/utils/scan/handleScan.js +42 -28
  197. package/dist/solution/BookingTicket/utils/scan/index.d.ts +5 -0
  198. package/dist/solution/BookingTicket/utils/scan/index.js +30 -14
  199. package/dist/solution/BookingTicket/utils/scan/scanProductValues.d.ts +21 -0
  200. package/dist/solution/BookingTicket/utils/scan/scanProductValues.js +150 -0
  201. package/dist/solution/BookingTicket/utils/sessionCatalogStale.d.ts +23 -0
  202. package/dist/solution/BookingTicket/utils/sessionCatalogStale.js +78 -0
  203. package/dist/solution/BuyTickets/index.js +12 -9
  204. package/dist/solution/Checkout/index.d.ts +1 -0
  205. package/dist/solution/Checkout/index.js +275 -209
  206. package/dist/solution/Checkout/utils/index.js +20 -8
  207. package/dist/solution/RegisterAndLogin/config.js +2 -10
  208. package/dist/solution/RegisterAndLogin/index.js +76 -30
  209. package/dist/solution/Sales/index.d.ts +50 -5
  210. package/dist/solution/Sales/index.js +484 -92
  211. package/dist/solution/Sales/types.d.ts +26 -2
  212. package/dist/solution/ScanOrder/index.d.ts +27 -21
  213. package/dist/solution/ScanOrder/index.js +519 -444
  214. package/dist/solution/ScanOrder/types.d.ts +33 -11
  215. package/dist/solution/ScanOrder/types.js +4 -5
  216. package/dist/solution/ScanOrder/utils.d.ts +4 -1
  217. package/dist/solution/ScanOrder/utils.js +109 -34
  218. package/dist/solution/ShopDiscount/index.js +18 -19
  219. package/dist/solution/ShopDiscount/types.d.ts +4 -5
  220. package/dist/solution/ShopDiscount/utils.d.ts +0 -9
  221. package/dist/solution/ShopDiscount/utils.js +0 -9
  222. package/dist/solution/UnifiedBookingSales/index.d.ts +183 -0
  223. package/dist/solution/UnifiedBookingSales/index.js +1871 -0
  224. package/dist/solution/UnifiedBookingSales/types.d.ts +143 -0
  225. package/dist/solution/UnifiedBookingSales/types.js +11 -0
  226. package/dist/solution/VenueBooking/index.d.ts +32 -51
  227. package/dist/solution/VenueBooking/index.js +741 -808
  228. package/dist/solution/VenueBooking/sales-section-4-annotated.json +0 -2
  229. package/dist/solution/VenueBooking/types.d.ts +1 -3
  230. package/dist/solution/VenueBooking/types.js +0 -1
  231. package/dist/solution/VenueBooking/utils/dateSummary.d.ts +2 -2
  232. package/dist/solution/VenueBooking/utils/dateSummary.js +25 -12
  233. package/dist/solution/VenueBooking/utils/slotMerge.d.ts +6 -0
  234. package/dist/solution/VenueBooking/utils/slotMerge.js +9 -3
  235. package/dist/solution/VenueBooking/utils/timeSlot.d.ts +0 -2
  236. package/dist/solution/VenueBooking/utils/timeSlot.js +4 -9
  237. package/dist/solution/index.d.ts +2 -0
  238. package/dist/solution/index.js +3 -1
  239. package/dist/types/index.d.ts +12 -2
  240. package/dist/utils/task.js +18 -15
  241. package/dist/utils/watch.js +1 -0
  242. package/lib/apis/picoding.js +0 -2
  243. package/lib/core/index.js +132 -130
  244. package/lib/effects/index.js +57 -46
  245. package/lib/index.d.ts +0 -1
  246. package/lib/index.js +50 -92
  247. package/lib/model/index.js +21 -14
  248. package/lib/model/strategy/adapter/dataVariant/adapter.js +50 -38
  249. package/lib/model/strategy/adapter/dataVariant/evaluator.js +236 -162
  250. package/lib/model/strategy/adapter/dataVariant/examples.js +237 -229
  251. package/lib/model/strategy/adapter/dataVariant/index.js +34 -39
  252. package/lib/model/strategy/adapter/dataVariant/type.js +28 -57
  253. package/lib/model/strategy/adapter/index.js +64 -100
  254. package/lib/model/strategy/adapter/itemRule/adapter.js +144 -156
  255. package/lib/model/strategy/adapter/itemRule/evaluator.js +48 -36
  256. package/lib/model/strategy/adapter/itemRule/examples.js +225 -295
  257. package/lib/model/strategy/adapter/itemRule/index.js +57 -83
  258. package/lib/model/strategy/adapter/itemRule/type.js +36 -97
  259. package/lib/model/strategy/adapter/promotion/adapter.js +63 -84
  260. package/lib/model/strategy/adapter/promotion/evaluator.js +233 -382
  261. package/lib/model/strategy/adapter/promotion/examples.js +159 -139
  262. package/lib/model/strategy/adapter/promotion/index.js +0 -1
  263. package/lib/model/strategy/adapter/promotion/type.js +35 -199
  264. package/lib/model/strategy/adapter/type.js +16 -4
  265. package/lib/model/strategy/adapter/walletPass/evaluator.js +152 -180
  266. package/lib/model/strategy/adapter/walletPass/example.js +190 -217
  267. package/lib/model/strategy/adapter/walletPass/index.js +51 -75
  268. package/lib/model/strategy/adapter/walletPass/locales.js +58 -36
  269. package/lib/model/strategy/adapter/walletPass/type.d.ts +0 -3
  270. package/lib/model/strategy/adapter/walletPass/type.js +16 -4
  271. package/lib/model/strategy/adapter/walletPass/utils.d.ts +0 -26
  272. package/lib/model/strategy/adapter/walletPass/utils.js +383 -676
  273. package/lib/model/strategy/engine.js +168 -270
  274. package/lib/model/strategy/index.js +34 -49
  275. package/lib/model/strategy/strategy-example.js +239 -243
  276. package/lib/model/strategy/type.js +40 -100
  277. package/lib/modules/Account/index.js +53 -39
  278. package/lib/modules/Account/types.js +33 -20
  279. package/lib/modules/AccountList/index.js +154 -116
  280. package/lib/modules/AccountList/types.js +31 -30
  281. package/lib/modules/AccountList/utils.js +30 -18
  282. package/lib/modules/BaseModule.d.ts +2 -2
  283. package/lib/modules/BaseModule.js +50 -29
  284. package/lib/modules/BookingContext/index.d.ts +48 -0
  285. package/lib/modules/BookingContext/index.js +368 -0
  286. package/lib/modules/BookingContext/types.d.ts +102 -0
  287. package/lib/modules/BookingContext/types.js +34 -0
  288. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.d.ts +16 -0
  289. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +298 -0
  290. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.d.ts +8 -0
  291. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +155 -0
  292. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +76 -0
  293. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +222 -0
  294. package/lib/modules/BookingContext/utils/flexible.d.ts +28 -0
  295. package/lib/modules/BookingContext/utils/flexible.js +80 -0
  296. package/lib/modules/BookingContext/utils/formatResourceList.d.ts +8 -0
  297. package/lib/modules/BookingContext/utils/formatResourceList.js +50 -0
  298. package/lib/modules/BookingContext/utils/index.d.ts +11 -0
  299. package/lib/modules/BookingContext/utils/index.js +43 -0
  300. package/lib/modules/BookingContext/utils/noResource.d.ts +13 -0
  301. package/lib/modules/BookingContext/utils/noResource.js +90 -0
  302. package/lib/modules/BookingContext/utils/orderLineDisplay.d.ts +1 -0
  303. package/lib/modules/BookingContext/utils/orderLineDisplay.js +56 -0
  304. package/lib/modules/BookingContext/utils/productExtend.d.ts +72 -0
  305. package/lib/modules/BookingContext/utils/productExtend.js +283 -0
  306. package/lib/modules/BookingContext/utils/resourceErrors.d.ts +41 -0
  307. package/lib/modules/BookingContext/utils/resourceErrors.js +80 -0
  308. package/lib/modules/BookingContext/utils/resourceSelection.d.ts +7 -0
  309. package/lib/modules/BookingContext/utils/resourceSelection.js +46 -0
  310. package/lib/modules/BookingContext/utils/resources.d.ts +80 -0
  311. package/lib/modules/BookingContext/utils/resources.js +377 -0
  312. package/lib/modules/BookingContext/utils/serviceTimes.d.ts +55 -0
  313. package/lib/modules/BookingContext/utils/serviceTimes.js +162 -0
  314. package/lib/modules/BookingContext/utils/timeSlices.d.ts +42 -0
  315. package/lib/modules/BookingContext/utils/timeSlices.js +124 -0
  316. package/lib/modules/Cart/index.js +124 -170
  317. package/lib/modules/Cart/types.js +51 -46
  318. package/lib/modules/Cart/utils/cartAccount.js +39 -40
  319. package/lib/modules/Cart/utils/cartDate.js +61 -56
  320. package/lib/modules/Cart/utils/cartDiscount.js +33 -28
  321. package/lib/modules/Cart/utils/cartNote.js +32 -27
  322. package/lib/modules/Cart/utils/cartProduct.js +261 -309
  323. package/lib/modules/Cart/utils/cartRelationForms.js +35 -29
  324. package/lib/modules/Cart/utils/cartResource.js +78 -72
  325. package/lib/modules/Cart/utils/changePrice.js +59 -31
  326. package/lib/modules/Cart/utils/index.js +48 -106
  327. package/lib/modules/Customer/constants.js +34 -13
  328. package/lib/modules/Customer/index.d.ts +20 -0
  329. package/lib/modules/Customer/index.js +207 -217
  330. package/lib/modules/Customer/types.d.ts +2 -0
  331. package/lib/modules/Customer/types.js +35 -38
  332. package/lib/modules/Date/index.js +115 -116
  333. package/lib/modules/Date/types.js +28 -16
  334. package/lib/modules/Date/utils.js +123 -174
  335. package/lib/modules/Discount/index.d.ts +2 -2
  336. package/lib/modules/Discount/index.js +133 -119
  337. package/lib/modules/Discount/types.d.ts +1 -1
  338. package/lib/modules/Discount/types.js +31 -9
  339. package/lib/modules/Guests/index.js +56 -30
  340. package/lib/modules/Guests/types.js +33 -23
  341. package/lib/modules/Holder/index.js +189 -209
  342. package/lib/modules/Holder/types.js +16 -4
  343. package/lib/modules/Holder/utils.js +49 -20
  344. package/lib/modules/OpenData/index.d.ts +8 -0
  345. package/lib/modules/OpenData/index.js +88 -63
  346. package/lib/modules/OpenData/types.js +16 -4
  347. package/lib/modules/OpenData/utils.js +78 -44
  348. package/lib/modules/Order/index.d.ts +449 -24
  349. package/lib/modules/Order/index.js +4184 -514
  350. package/lib/modules/Order/types.d.ts +693 -88
  351. package/lib/modules/Order/types.js +35 -24
  352. package/lib/modules/Order/utils/bundleDiscountHydration.d.ts +5 -0
  353. package/lib/modules/Order/utils/bundleDiscountHydration.js +139 -0
  354. package/lib/modules/Order/utils/manualProductDiscount.d.ts +106 -0
  355. package/lib/modules/Order/utils/manualProductDiscount.js +206 -0
  356. package/lib/modules/Order/utils/orderCollectionIdentity.d.ts +53 -0
  357. package/lib/modules/Order/utils/orderCollectionIdentity.js +415 -0
  358. package/lib/modules/Order/utils.d.ts +167 -18
  359. package/lib/modules/Order/utils.js +1085 -414
  360. package/lib/modules/Payment/cash.js +33 -20
  361. package/lib/modules/Payment/cashRecommendationAlgorithm.js +76 -145
  362. package/lib/modules/Payment/eftpos.js +30 -16
  363. package/lib/modules/Payment/index.d.ts +10 -9
  364. package/lib/modules/Payment/index.js +402 -636
  365. package/lib/modules/Payment/mx51.js +0 -1
  366. package/lib/modules/Payment/types.d.ts +44 -24
  367. package/lib/modules/Payment/types.js +107 -216
  368. package/lib/modules/Payment/utils.d.ts +1 -1
  369. package/lib/modules/Payment/utils.js +50 -52
  370. package/lib/modules/Payment/walletpass.d.ts +0 -2
  371. package/lib/modules/Payment/walletpass.js +216 -221
  372. package/lib/modules/Product/index.js +46 -51
  373. package/lib/modules/Product/types.d.ts +29 -7
  374. package/lib/modules/Product/types.js +16 -4
  375. package/lib/modules/Product/utils.js +33 -32
  376. package/lib/modules/ProductList/index.d.ts +17 -13
  377. package/lib/modules/ProductList/index.js +161 -120
  378. package/lib/modules/ProductList/types.d.ts +16 -0
  379. package/lib/modules/ProductList/types.js +31 -9
  380. package/lib/modules/Quotation/index.d.ts +22 -2
  381. package/lib/modules/Quotation/index.js +154 -64
  382. package/lib/modules/Quotation/types.d.ts +19 -0
  383. package/lib/modules/Quotation/types.js +16 -4
  384. package/lib/modules/Resource/index.js +59 -27
  385. package/lib/modules/Resource/types.js +32 -22
  386. package/lib/modules/Resource/utils.js +38 -30
  387. package/lib/modules/ResourcePlanner/index.d.ts +24 -0
  388. package/lib/modules/ResourcePlanner/index.js +148 -0
  389. package/lib/modules/ResourcePlanner/planner.d.ts +14 -0
  390. package/lib/modules/ResourcePlanner/planner.js +933 -0
  391. package/lib/modules/ResourcePlanner/types.d.ts +227 -0
  392. package/lib/modules/ResourcePlanner/types.js +17 -0
  393. package/lib/modules/Rules/index.d.ts +8 -10
  394. package/lib/modules/Rules/index.js +960 -1440
  395. package/lib/modules/Rules/types.d.ts +14 -3
  396. package/lib/modules/Rules/types.js +40 -17
  397. package/lib/modules/SalesSummary/index.d.ts +23 -26
  398. package/lib/modules/SalesSummary/index.js +134 -61
  399. package/lib/modules/SalesSummary/types.d.ts +9 -1
  400. package/lib/modules/SalesSummary/types.js +16 -4
  401. package/lib/modules/SalesSummary/utils.d.ts +3 -22
  402. package/lib/modules/SalesSummary/utils.js +814 -233
  403. package/lib/modules/ScanOrderLogger/index.js +79 -59
  404. package/lib/modules/ScanOrderLogger/providers/feishu.js +78 -54
  405. package/lib/modules/ScanOrderLogger/providers/grafana.js +36 -13
  406. package/lib/modules/ScanOrderLogger/types.js +16 -4
  407. package/lib/modules/Schedule/getDateIsInSchedule.js +169 -338
  408. package/lib/modules/Schedule/index.d.ts +18 -5
  409. package/lib/modules/Schedule/index.js +153 -104
  410. package/lib/modules/Schedule/type.js +16 -4
  411. package/lib/modules/Schedule/types.d.ts +2 -0
  412. package/lib/modules/Schedule/types.js +16 -4
  413. package/lib/modules/Schedule/utils.js +291 -433
  414. package/lib/modules/Step/index.js +52 -40
  415. package/lib/modules/Step/tyeps.js +16 -4
  416. package/lib/modules/Summary/index.js +71 -66
  417. package/lib/modules/Summary/types.js +16 -4
  418. package/lib/modules/Summary/utils.js +418 -791
  419. package/lib/modules/SurchargeList/index.d.ts +18 -0
  420. package/lib/modules/SurchargeList/index.js +109 -0
  421. package/lib/modules/SurchargeList/types.d.ts +15 -0
  422. package/lib/modules/SurchargeList/types.js +17 -0
  423. package/lib/modules/index.d.ts +3 -0
  424. package/lib/modules/index.js +63 -212
  425. package/lib/plugins/app.d.ts +2 -0
  426. package/lib/plugins/app.js +16 -4
  427. package/lib/plugins/index.js +25 -36
  428. package/lib/plugins/request.d.ts +1 -0
  429. package/lib/plugins/request.js +126 -137
  430. package/lib/plugins/shopStore.js +16 -4
  431. package/lib/plugins/user.js +16 -4
  432. package/lib/plugins/window.js +179 -171
  433. package/lib/server/index.d.ts +462 -8
  434. package/lib/server/index.js +4520 -1162
  435. package/lib/server/modules/floor-plan/index.d.ts +39 -0
  436. package/lib/server/modules/floor-plan/index.js +327 -0
  437. package/lib/server/modules/floor-plan/types.d.ts +43 -0
  438. package/lib/server/modules/floor-plan/types.js +34 -0
  439. package/lib/server/modules/index.d.ts +7 -2
  440. package/lib/server/modules/index.js +67 -84
  441. package/lib/server/modules/menu/index.js +122 -146
  442. package/lib/server/modules/menu/types.js +31 -18
  443. package/lib/server/modules/order/index.d.ts +207 -14
  444. package/lib/server/modules/order/index.js +1543 -285
  445. package/lib/server/modules/order/types.d.ts +76 -5
  446. package/lib/server/modules/order/types.js +32 -107
  447. package/lib/server/modules/order/utils/filterBookings.d.ts +7 -1
  448. package/lib/server/modules/order/utils/filterBookings.js +259 -176
  449. package/lib/server/modules/order/utils/filterOrders.js +293 -94
  450. package/lib/server/modules/payment/index.d.ts +28 -0
  451. package/lib/server/modules/payment/index.js +192 -0
  452. package/lib/server/modules/payment/types.d.ts +9 -0
  453. package/lib/server/modules/payment/types.js +17 -0
  454. package/lib/server/modules/products/index.d.ts +105 -14
  455. package/lib/server/modules/products/index.js +850 -475
  456. package/lib/server/modules/products/types.d.ts +34 -1
  457. package/lib/server/modules/products/types.js +34 -41
  458. package/lib/server/modules/quotation/index.d.ts +39 -0
  459. package/lib/server/modules/quotation/index.js +254 -75
  460. package/lib/server/modules/quotation/types.js +31 -21
  461. package/lib/server/modules/resource/index.d.ts +2 -3
  462. package/lib/server/modules/resource/index.js +240 -243
  463. package/lib/server/modules/resource/types.js +33 -42
  464. package/lib/server/modules/schedule/index.d.ts +6 -4
  465. package/lib/server/modules/schedule/index.js +146 -147
  466. package/lib/server/modules/schedule/types.js +21 -14
  467. package/lib/server/modules/schedule/utils.js +163 -334
  468. package/lib/server/test.json +713 -0
  469. package/lib/server/types.d.ts +2 -0
  470. package/lib/server/types.js +16 -4
  471. package/lib/server/utils/index.js +23 -25
  472. package/lib/server/utils/product.js +140 -197
  473. package/lib/server/utils/schedule.js +41 -34
  474. package/lib/server/utils/small-ticket.d.ts +71 -0
  475. package/lib/server/utils/small-ticket.js +904 -0
  476. package/lib/server/utils/time.js +49 -40
  477. package/lib/solution/BaseSales/index.d.ts +378 -0
  478. package/lib/solution/BaseSales/index.js +2533 -0
  479. package/lib/solution/BaseSales/types.d.ts +394 -0
  480. package/lib/solution/BaseSales/types.js +43 -0
  481. package/lib/solution/BaseSales/utils/cartPromotion.d.ts +287 -0
  482. package/lib/solution/BaseSales/utils/cartPromotion.js +1004 -0
  483. package/lib/solution/BaseSales/utils/parseSalesResponse.d.ts +144 -0
  484. package/lib/solution/BaseSales/utils/parseSalesResponse.js +160 -0
  485. package/lib/solution/BaseSales/utils/quotationPrice.d.ts +18 -0
  486. package/lib/solution/BaseSales/utils/quotationPrice.js +289 -0
  487. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.d.ts +63 -0
  488. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +256 -0
  489. package/lib/solution/BaseSales/utils.d.ts +40 -0
  490. package/lib/solution/BaseSales/utils.js +244 -0
  491. package/lib/solution/BookingByStep/index.d.ts +1 -1
  492. package/lib/solution/BookingByStep/index.js +1340 -1530
  493. package/lib/solution/BookingByStep/types.js +99 -40
  494. package/lib/solution/BookingByStep/utils/capacity.js +160 -192
  495. package/lib/solution/BookingByStep/utils/products.js +52 -42
  496. package/lib/solution/BookingByStep/utils/resources.js +330 -527
  497. package/lib/solution/BookingByStep/utils/stock.js +44 -65
  498. package/lib/solution/BookingByStep/utils/timeslots.js +131 -129
  499. package/lib/solution/BookingTicket/index.d.ts +393 -24
  500. package/lib/solution/BookingTicket/index.js +1374 -184
  501. package/lib/solution/BookingTicket/types.d.ts +191 -6
  502. package/lib/solution/BookingTicket/types.js +79 -40
  503. package/lib/solution/BookingTicket/utils/addProductDecision.d.ts +117 -0
  504. package/lib/solution/BookingTicket/utils/addProductDecision.js +318 -0
  505. package/lib/solution/BookingTicket/utils/addTimeAvailability.d.ts +35 -0
  506. package/lib/solution/BookingTicket/utils/addTimeAvailability.js +125 -0
  507. package/lib/solution/BookingTicket/utils/bookingStatus.d.ts +77 -0
  508. package/lib/solution/BookingTicket/utils/bookingStatus.js +107 -0
  509. package/lib/solution/BookingTicket/utils/cartView.d.ts +29 -0
  510. package/lib/solution/BookingTicket/utils/cartView.js +184 -0
  511. package/lib/solution/BookingTicket/utils/exampleData.d.ts +123 -0
  512. package/lib/solution/BookingTicket/utils/exampleData.js +0 -0
  513. package/lib/solution/BookingTicket/utils/orderCustomer.d.ts +4 -0
  514. package/lib/solution/BookingTicket/utils/orderCustomer.js +58 -0
  515. package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.d.ts +185 -0
  516. package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +254 -0
  517. package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.d.ts +36 -0
  518. package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +169 -0
  519. package/lib/solution/BookingTicket/utils/scan/cloudSearch.d.ts +4 -0
  520. package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +97 -64
  521. package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.d.ts +32 -0
  522. package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +51 -0
  523. package/lib/solution/BookingTicket/utils/scan/handleScan.d.ts +3 -1
  524. package/lib/solution/BookingTicket/utils/scan/handleScan.js +81 -82
  525. package/lib/solution/BookingTicket/utils/scan/index.d.ts +5 -0
  526. package/lib/solution/BookingTicket/utils/scan/index.js +109 -91
  527. package/lib/solution/BookingTicket/utils/scan/scanCache.js +43 -90
  528. package/lib/solution/BookingTicket/utils/scan/scanProductValues.d.ts +21 -0
  529. package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +127 -0
  530. package/lib/solution/BookingTicket/utils/sessionCatalogStale.d.ts +23 -0
  531. package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +85 -0
  532. package/lib/solution/BuyTickets/index.js +70 -67
  533. package/lib/solution/BuyTickets/types.js +38 -22
  534. package/lib/solution/Checkout/index.d.ts +1 -0
  535. package/lib/solution/Checkout/index.js +1169 -1463
  536. package/lib/solution/Checkout/types.js +61 -91
  537. package/lib/solution/Checkout/utils/index.js +156 -228
  538. package/lib/solution/PlaceOrder/index.js +0 -55
  539. package/lib/solution/RegisterAndLogin/config.js +462 -503
  540. package/lib/solution/RegisterAndLogin/index.js +630 -633
  541. package/lib/solution/RegisterAndLogin/types.js +76 -189
  542. package/lib/solution/RegisterAndLogin/utils.js +125 -183
  543. package/lib/solution/Sales/index.d.ts +50 -5
  544. package/lib/solution/Sales/index.js +498 -238
  545. package/lib/solution/Sales/types.d.ts +26 -2
  546. package/lib/solution/Sales/types.js +33 -27
  547. package/lib/solution/ScanOrder/index.d.ts +27 -21
  548. package/lib/solution/ScanOrder/index.js +936 -864
  549. package/lib/solution/ScanOrder/types.d.ts +33 -11
  550. package/lib/solution/ScanOrder/types.js +34 -34
  551. package/lib/solution/ScanOrder/utils.d.ts +4 -1
  552. package/lib/solution/ScanOrder/utils.js +422 -385
  553. package/lib/solution/ShopDiscount/index.js +233 -235
  554. package/lib/solution/ShopDiscount/types.d.ts +4 -5
  555. package/lib/solution/ShopDiscount/types.js +37 -15
  556. package/lib/solution/ShopDiscount/utils.d.ts +0 -9
  557. package/lib/solution/ShopDiscount/utils.js +172 -309
  558. package/lib/solution/UnifiedBookingSales/index.d.ts +183 -0
  559. package/lib/solution/UnifiedBookingSales/index.js +1076 -0
  560. package/lib/solution/UnifiedBookingSales/types.d.ts +143 -0
  561. package/lib/solution/UnifiedBookingSales/types.js +33 -0
  562. package/lib/solution/VenueBooking/index.d.ts +32 -51
  563. package/lib/solution/VenueBooking/index.js +1008 -984
  564. package/lib/solution/VenueBooking/sales-section-4-annotated.json +0 -2
  565. package/lib/solution/VenueBooking/types.d.ts +1 -3
  566. package/lib/solution/VenueBooking/types.js +39 -20
  567. package/lib/solution/VenueBooking/utils/dateSummary.d.ts +2 -2
  568. package/lib/solution/VenueBooking/utils/dateSummary.js +62 -25
  569. package/lib/solution/VenueBooking/utils/resource.js +54 -31
  570. package/lib/solution/VenueBooking/utils/slotMerge.d.ts +6 -0
  571. package/lib/solution/VenueBooking/utils/slotMerge.js +109 -90
  572. package/lib/solution/VenueBooking/utils/timeSlot.d.ts +0 -2
  573. package/lib/solution/VenueBooking/utils/timeSlot.js +133 -138
  574. package/lib/solution/VenueBooking/utils.js +67 -130
  575. package/lib/solution/index.d.ts +2 -0
  576. package/lib/solution/index.js +41 -102
  577. package/lib/store/createStore.js +29 -32
  578. package/lib/types/index.d.ts +12 -2
  579. package/lib/types/index.js +16 -4
  580. package/lib/utils/task.js +36 -36
  581. package/lib/utils/watch.js +47 -81
  582. package/package.json +2 -4
  583. package/dist/solution/Checkout/appointmentDemo.json +0 -1
  584. package/dist/solution/VenueBooking/utils/smartPricing.d.ts +0 -70
  585. package/dist/solution/VenueBooking/utils/smartPricing.js +0 -233
  586. package/lib/solution/Checkout/appointmentDemo.json +0 -1
  587. package/lib/solution/VenueBooking/utils/smartPricing.d.ts +0 -70
  588. package/lib/solution/VenueBooking/utils/smartPricing.js +0 -192
@@ -1,126 +1,105 @@
1
- "use strict";
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
2
18
 
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
19
+ // src/solution/RegisterAndLogin/utils.ts
20
+ var utils_exports = {};
21
+ __export(utils_exports, {
22
+ debounce: () => debounce,
23
+ deepClone: () => deepClone,
24
+ formatEmailDisplay: () => formatEmailDisplay,
25
+ formatPhoneDisplay: () => formatPhoneDisplay,
26
+ formatTimestamp: () => formatTimestamp,
27
+ generateRandomString: () => generateRandomString,
28
+ getDeviceType: () => getDeviceType,
29
+ getOAuthProviderDisplayName: () => getOAuthProviderDisplayName,
30
+ getOAuthProviderIconUrl: () => getOAuthProviderIconUrl,
31
+ getTimeDifference: () => getTimeDifference,
32
+ isAndroidDevice: () => isAndroidDevice,
33
+ isIOSDevice: () => isIOSDevice,
34
+ isMobileDevice: () => isMobileDevice,
35
+ isTimestampExpired: () => isTimestampExpired,
36
+ isWebAuthnSupported: () => isWebAuthnSupported,
37
+ safeJsonParse: () => safeJsonParse,
38
+ safeJsonStringify: () => safeJsonStringify,
39
+ throttle: () => throttle,
40
+ validateEmail: () => validateEmail,
41
+ validatePassword: () => validatePassword,
42
+ validatePhone: () => validatePhone,
43
+ validateVerificationCode: () => validateVerificationCode
5
44
  });
6
- exports.debounce = debounce;
7
- exports.deepClone = deepClone;
8
- exports.formatEmailDisplay = formatEmailDisplay;
9
- exports.formatPhoneDisplay = formatPhoneDisplay;
10
- exports.formatTimestamp = formatTimestamp;
11
- exports.generateRandomString = generateRandomString;
12
- exports.getDeviceType = getDeviceType;
13
- exports.getOAuthProviderDisplayName = getOAuthProviderDisplayName;
14
- exports.getOAuthProviderIconUrl = getOAuthProviderIconUrl;
15
- exports.getTimeDifference = getTimeDifference;
16
- exports.isAndroidDevice = isAndroidDevice;
17
- exports.isIOSDevice = isIOSDevice;
18
- exports.isMobileDevice = isMobileDevice;
19
- exports.isTimestampExpired = isTimestampExpired;
20
- exports.isWebAuthnSupported = isWebAuthnSupported;
21
- exports.safeJsonParse = safeJsonParse;
22
- exports.safeJsonStringify = safeJsonStringify;
23
- exports.throttle = throttle;
24
- exports.validateEmail = validateEmail;
25
- exports.validatePassword = validatePassword;
26
- exports.validatePhone = validatePhone;
27
- exports.validateVerificationCode = validateVerificationCode;
28
- var _types = require("./types");
29
- /**
30
- * 注册登录工具函数
31
- */
32
-
33
- /**
34
- * 验证邮箱格式
35
- */
45
+ module.exports = __toCommonJS(utils_exports);
46
+ var import_types = require("./types");
36
47
  function validateEmail(email) {
37
48
  const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
38
49
  return emailRegex.test(email);
39
50
  }
40
-
41
- /**
42
- * 验证手机号格式(支持多种国际格式)
43
- */
44
51
  function validatePhone(phone) {
45
- // 移除所有非数字字符(除了 + 号)
46
- const cleanPhone = phone.replace(/[^\d+]/g, '');
47
-
48
- // 基本的手机号验证规则
52
+ const cleanPhone = phone.replace(/[^\d+]/g, "");
49
53
  const phoneRegex = /^(\+\d{1,3}[- ]?)?\d{10,14}$/;
50
54
  return phoneRegex.test(cleanPhone);
51
55
  }
52
-
53
- /**
54
- * 验证密码强度
55
- */
56
56
  function validatePassword(password) {
57
57
  const errors = [];
58
58
  if (password.length < 8) {
59
- errors.push('密码长度至少为8位');
59
+ errors.push("密码长度至少为8位");
60
60
  }
61
61
  if (password.length > 128) {
62
- errors.push('密码长度不能超过128位');
62
+ errors.push("密码长度不能超过128位");
63
63
  }
64
64
  if (!/[a-z]/.test(password)) {
65
- errors.push('密码必须包含至少一个小写字母');
65
+ errors.push("密码必须包含至少一个小写字母");
66
66
  }
67
67
  if (!/[A-Z]/.test(password)) {
68
- errors.push('密码必须包含至少一个大写字母');
68
+ errors.push("密码必须包含至少一个大写字母");
69
69
  }
70
70
  if (!/\d/.test(password)) {
71
- errors.push('密码必须包含至少一个数字');
71
+ errors.push("密码必须包含至少一个数字");
72
72
  }
73
73
  if (!/[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]/.test(password)) {
74
- errors.push('密码必须包含至少一个特殊字符');
74
+ errors.push("密码必须包含至少一个特殊字符");
75
75
  }
76
76
  return {
77
77
  isValid: errors.length === 0,
78
78
  errors
79
79
  };
80
80
  }
81
-
82
- /**
83
- * 验证验证码格式
84
- */
85
81
  function validateVerificationCode(code, type) {
86
- // 移除所有空格
87
- const cleanCode = code.replace(/\s/g, '');
82
+ const cleanCode = code.replace(/\s/g, "");
88
83
  switch (type) {
89
- case _types.VerificationCodeType.EMAIL:
90
- case _types.VerificationCodeType.SMS:
91
- // 通常是4-8位数字
84
+ case import_types.VerificationCodeType.EMAIL:
85
+ case import_types.VerificationCodeType.SMS:
92
86
  return /^\d{4,8}$/.test(cleanCode);
93
87
  default:
94
88
  return false;
95
89
  }
96
90
  }
97
-
98
- /**
99
- * 格式化手机号显示
100
- */
101
91
  function formatPhoneDisplay(phone) {
102
- // 移除所有非数字字符(除了 + 号)
103
- const cleanPhone = phone.replace(/[^\d+]/g, '');
104
-
105
- // 如果是中国手机号(11位数字)
92
+ const cleanPhone = phone.replace(/[^\d+]/g, "");
106
93
  if (/^\d{11}$/.test(cleanPhone)) {
107
- return cleanPhone.replace(/(\d{3})(\d{4})(\d{4})/, '$1 $2 $3');
94
+ return cleanPhone.replace(/(\d{3})(\d{4})(\d{4})/, "$1 $2 $3");
108
95
  }
109
-
110
- // 如果是国际号码(以 + 开头)
111
- if (cleanPhone.startsWith('+')) {
96
+ if (cleanPhone.startsWith("+")) {
112
97
  return cleanPhone;
113
98
  }
114
-
115
- // 其他格式保持原样
116
99
  return phone;
117
100
  }
118
-
119
- /**
120
- * 格式化邮箱显示(隐藏部分字符)
121
- */
122
101
  function formatEmailDisplay(email, maskLength = 3) {
123
- const [localPart, domain] = email.split('@');
102
+ const [localPart, domain] = email.split("@");
124
103
  if (!localPart || !domain) {
125
104
  return email;
126
105
  }
@@ -129,110 +108,76 @@ function formatEmailDisplay(email, maskLength = 3) {
129
108
  }
130
109
  const visibleStart = localPart.substring(0, maskLength);
131
110
  const visibleEnd = localPart.substring(localPart.length - maskLength);
132
- const maskedPart = '*'.repeat(localPart.length - maskLength * 2);
111
+ const maskedPart = "*".repeat(localPart.length - maskLength * 2);
133
112
  return `${visibleStart}${maskedPart}${visibleEnd}@${domain}`;
134
113
  }
135
-
136
- /**
137
- * 生成随机字符串(用于状态参数等)
138
- */
139
114
  function generateRandomString(length = 32) {
140
- const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
141
- let result = '';
115
+ const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
116
+ let result = "";
142
117
  for (let i = 0; i < length; i++) {
143
118
  result += chars.charAt(Math.floor(Math.random() * chars.length));
144
119
  }
145
120
  return result;
146
121
  }
147
-
148
- /**
149
- * 获取 OAuth 提供商的显示名称
150
- */
151
122
  function getOAuthProviderDisplayName(provider) {
152
123
  const displayNames = {
153
- [_types.OAuthProvider.FACEBOOK]: 'Facebook',
154
- [_types.OAuthProvider.APPLE]: 'Apple',
155
- [_types.OAuthProvider.GOOGLE]: 'Google',
156
- [_types.OAuthProvider.WECHAT]: '微信',
157
- [_types.OAuthProvider.GITHUB]: 'GitHub'
124
+ [import_types.OAuthProvider.FACEBOOK]: "Facebook",
125
+ [import_types.OAuthProvider.APPLE]: "Apple",
126
+ [import_types.OAuthProvider.GOOGLE]: "Google",
127
+ [import_types.OAuthProvider.WECHAT]: "微信",
128
+ [import_types.OAuthProvider.GITHUB]: "GitHub"
158
129
  };
159
130
  return displayNames[provider] || provider;
160
131
  }
161
-
162
- /**
163
- * 获取 OAuth 提供商的图标 URL
164
- */
165
132
  function getOAuthProviderIconUrl(provider) {
166
133
  const iconUrls = {
167
- [_types.OAuthProvider.FACEBOOK]: 'https://cdn.jsdelivr.net/npm/simple-icons@v9/icons/facebook.svg',
168
- [_types.OAuthProvider.APPLE]: 'https://cdn.jsdelivr.net/npm/simple-icons@v9/icons/apple.svg',
169
- [_types.OAuthProvider.GOOGLE]: 'https://cdn.jsdelivr.net/npm/simple-icons@v9/icons/google.svg',
170
- [_types.OAuthProvider.WECHAT]: 'https://cdn.jsdelivr.net/npm/simple-icons@v9/icons/wechat.svg',
171
- [_types.OAuthProvider.GITHUB]: 'https://cdn.jsdelivr.net/npm/simple-icons@v9/icons/github.svg'
134
+ [import_types.OAuthProvider.FACEBOOK]: "https://cdn.jsdelivr.net/npm/simple-icons@v9/icons/facebook.svg",
135
+ [import_types.OAuthProvider.APPLE]: "https://cdn.jsdelivr.net/npm/simple-icons@v9/icons/apple.svg",
136
+ [import_types.OAuthProvider.GOOGLE]: "https://cdn.jsdelivr.net/npm/simple-icons@v9/icons/google.svg",
137
+ [import_types.OAuthProvider.WECHAT]: "https://cdn.jsdelivr.net/npm/simple-icons@v9/icons/wechat.svg",
138
+ [import_types.OAuthProvider.GITHUB]: "https://cdn.jsdelivr.net/npm/simple-icons@v9/icons/github.svg"
172
139
  };
173
- return iconUrls[provider] || '';
140
+ return iconUrls[provider] || "";
174
141
  }
175
-
176
- /**
177
- * 检查是否在移动设备上
178
- */
179
142
  function isMobileDevice() {
180
- if (typeof window === 'undefined') {
143
+ if (typeof window === "undefined") {
181
144
  return false;
182
145
  }
183
- return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
146
+ return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(
147
+ navigator.userAgent
148
+ );
184
149
  }
185
-
186
- /**
187
- * 检查是否支持 WebAuthn
188
- */
189
150
  function isWebAuthnSupported() {
190
- if (typeof window === 'undefined') {
151
+ if (typeof window === "undefined") {
191
152
  return false;
192
153
  }
193
154
  return !!(navigator.credentials && navigator.credentials.create);
194
155
  }
195
-
196
- /**
197
- * 检查是否在 iOS 设备上
198
- */
199
156
  function isIOSDevice() {
200
- if (typeof window === 'undefined') {
157
+ if (typeof window === "undefined") {
201
158
  return false;
202
159
  }
203
160
  return /iPad|iPhone|iPod/.test(navigator.userAgent);
204
161
  }
205
-
206
- /**
207
- * 检查是否在 Android 设备上
208
- */
209
162
  function isAndroidDevice() {
210
- if (typeof window === 'undefined') {
163
+ if (typeof window === "undefined") {
211
164
  return false;
212
165
  }
213
166
  return /Android/.test(navigator.userAgent);
214
167
  }
215
-
216
- /**
217
- * 获取设备类型
218
- */
219
168
  function getDeviceType() {
220
- if (typeof window === 'undefined') {
221
- return 'desktop';
169
+ if (typeof window === "undefined") {
170
+ return "desktop";
222
171
  }
223
172
  const userAgent = navigator.userAgent;
224
173
  if (/iPad/.test(userAgent)) {
225
- return 'tablet';
174
+ return "tablet";
226
175
  }
227
176
  if (/Android|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(userAgent)) {
228
- return 'mobile';
177
+ return "mobile";
229
178
  }
230
- return 'desktop';
179
+ return "desktop";
231
180
  }
232
-
233
- /**
234
- * 防抖函数
235
- */
236
181
  function debounce(func, wait) {
237
182
  let timeout = null;
238
183
  return (...args) => {
@@ -244,10 +189,6 @@ function debounce(func, wait) {
244
189
  }, wait);
245
190
  };
246
191
  }
247
-
248
- /**
249
- * 节流函数
250
- */
251
192
  function throttle(func, wait) {
252
193
  let lastTime = 0;
253
194
  return (...args) => {
@@ -258,21 +199,17 @@ function throttle(func, wait) {
258
199
  }
259
200
  };
260
201
  }
261
-
262
- /**
263
- * 深拷贝对象
264
- */
265
202
  function deepClone(obj) {
266
- if (obj === null || typeof obj !== 'object') {
203
+ if (obj === null || typeof obj !== "object") {
267
204
  return obj;
268
205
  }
269
206
  if (obj instanceof Date) {
270
207
  return new Date(obj.getTime());
271
208
  }
272
209
  if (obj instanceof Array) {
273
- return obj.map(item => deepClone(item));
210
+ return obj.map((item) => deepClone(item));
274
211
  }
275
- if (typeof obj === 'object') {
212
+ if (typeof obj === "object") {
276
213
  const cloned = {};
277
214
  for (const key in obj) {
278
215
  if (obj.hasOwnProperty(key)) {
@@ -283,55 +220,60 @@ function deepClone(obj) {
283
220
  }
284
221
  return obj;
285
222
  }
286
-
287
- /**
288
- * 安全的 JSON 解析
289
- */
290
223
  function safeJsonParse(jsonString, defaultValue) {
291
224
  try {
292
225
  return JSON.parse(jsonString);
293
226
  } catch (error) {
294
- console.warn('JSON 解析失败:', error);
227
+ console.warn("JSON 解析失败:", error);
295
228
  return defaultValue;
296
229
  }
297
230
  }
298
-
299
- /**
300
- * 安全的 JSON 字符串化
301
- */
302
- function safeJsonStringify(obj, defaultValue = '{}') {
231
+ function safeJsonStringify(obj, defaultValue = "{}") {
303
232
  try {
304
233
  return JSON.stringify(obj);
305
234
  } catch (error) {
306
- console.warn('JSON 字符串化失败:', error);
235
+ console.warn("JSON 字符串化失败:", error);
307
236
  return defaultValue;
308
237
  }
309
238
  }
310
-
311
- /**
312
- * 格式化时间戳为可读时间
313
- */
314
- function formatTimestamp(timestamp, format = 'YYYY-MM-DD HH:mm:ss') {
239
+ function formatTimestamp(timestamp, format = "YYYY-MM-DD HH:mm:ss") {
315
240
  const date = new Date(timestamp);
316
241
  const year = date.getFullYear();
317
- const month = String(date.getMonth() + 1).padStart(2, '0');
318
- const day = String(date.getDate()).padStart(2, '0');
319
- const hours = String(date.getHours()).padStart(2, '0');
320
- const minutes = String(date.getMinutes()).padStart(2, '0');
321
- const seconds = String(date.getSeconds()).padStart(2, '0');
322
- return format.replace('YYYY', year.toString()).replace('MM', month).replace('DD', day).replace('HH', hours).replace('mm', minutes).replace('ss', seconds);
242
+ const month = String(date.getMonth() + 1).padStart(2, "0");
243
+ const day = String(date.getDate()).padStart(2, "0");
244
+ const hours = String(date.getHours()).padStart(2, "0");
245
+ const minutes = String(date.getMinutes()).padStart(2, "0");
246
+ const seconds = String(date.getSeconds()).padStart(2, "0");
247
+ return format.replace("YYYY", year.toString()).replace("MM", month).replace("DD", day).replace("HH", hours).replace("mm", minutes).replace("ss", seconds);
323
248
  }
324
-
325
- /**
326
- * 计算两个时间戳之间的差值(秒)
327
- */
328
249
  function getTimeDifference(timestamp1, timestamp2) {
329
- return Math.abs(timestamp1 - timestamp2) / 1000;
250
+ return Math.abs(timestamp1 - timestamp2) / 1e3;
330
251
  }
331
-
332
- /**
333
- * 检查时间戳是否过期
334
- */
335
- function isTimestampExpired(timestamp, expirationTime = 5 * 60 * 1000) {
252
+ function isTimestampExpired(timestamp, expirationTime = 5 * 60 * 1e3) {
336
253
  return Date.now() - timestamp > expirationTime;
337
- }
254
+ }
255
+ // Annotate the CommonJS export names for ESM import in node:
256
+ 0 && (module.exports = {
257
+ debounce,
258
+ deepClone,
259
+ formatEmailDisplay,
260
+ formatPhoneDisplay,
261
+ formatTimestamp,
262
+ generateRandomString,
263
+ getDeviceType,
264
+ getOAuthProviderDisplayName,
265
+ getOAuthProviderIconUrl,
266
+ getTimeDifference,
267
+ isAndroidDevice,
268
+ isIOSDevice,
269
+ isMobileDevice,
270
+ isTimestampExpired,
271
+ isWebAuthnSupported,
272
+ safeJsonParse,
273
+ safeJsonStringify,
274
+ throttle,
275
+ validateEmail,
276
+ validatePassword,
277
+ validatePhone,
278
+ validateVerificationCode
279
+ });
@@ -2,7 +2,7 @@ import dayjs from 'dayjs';
2
2
  import { Module, ModuleOptions, PisellCore } from '../../types';
3
3
  import { BaseModule } from '../../modules/BaseModule';
4
4
  import type { RequestPlugin } from '../../plugins/request';
5
- import { SalesState, SalesModuleAPI, Reservation, SalesResourceBookingItem, SalesTimelineHighlights } from './types';
5
+ import { SalesState, SalesModuleAPI, Reservation, SalesResourceBookingItem, SalesResourceBookingItemWithGroups, SalesTimelineHighlights, ChangeBookingStatusParams, GetResourceBookingItemParams } from './types';
6
6
  import type { BookingData } from '../../server/modules/order/types';
7
7
  export * from './types';
8
8
  /**
@@ -14,6 +14,7 @@ export * from './types';
14
14
  * - 基础生命周期占位
15
15
  *
16
16
  * 不提前实现 store 编排、初始化流程细节、状态计算逻辑。
17
+ * TIPS:这块应该改名叫 ReservationModule 更合适一些,目前这边只服务于 Reservation 的 floormap 展示。
17
18
  */
18
19
  export declare class SalesImpl extends BaseModule implements Module, SalesModuleAPI {
19
20
  protected defaultName: string;
@@ -24,6 +25,7 @@ export declare class SalesImpl extends BaseModule implements Module, SalesModule
24
25
  protected options: ModuleOptions;
25
26
  protected otherParams: Record<string, any>;
26
27
  protected request: RequestPlugin;
28
+ private logger;
27
29
  constructor(name?: string, version?: string);
28
30
  initialize(core: PisellCore, options?: ModuleOptions): Promise<void>;
29
31
  /** 获取当前 store 快照 */
@@ -38,6 +40,8 @@ export declare class SalesImpl extends BaseModule implements Module, SalesModule
38
40
  setReservationList(reservationList: Reservation[]): Reservation[];
39
41
  /** 重置预约列表为空 */
40
42
  resetReservationList(): Reservation[];
43
+ cancelOrder(orderIds: Array<number | string>): Promise<any>;
44
+ changeBookingStatus(params: ChangeBookingStatusParams): Promise<any>;
41
45
  destroy(): Promise<void>;
42
46
  /**
43
47
  * 时间轴粒度(分钟)
@@ -76,6 +80,14 @@ export declare class SalesImpl extends BaseModule implements Module, SalesModule
76
80
  */
77
81
  private getBookingStatus;
78
82
  private getResourceId;
83
+ private getBookingAppointmentStatus;
84
+ private isBookingIncludedInStats;
85
+ private getBookingOrderPaymentStatus;
86
+ private countBookingOrders;
87
+ private countCompletedBookings;
88
+ private groupBookingsByResource;
89
+ private isBookingMatchedResource;
90
+ private sortMatchedBookings;
79
91
  /**
80
92
  * 资源下 bookings 的返回裁剪策略:
81
93
  * 1) 优先返回当前时刻正在进行中的预约(允许并发返回多条)
@@ -85,12 +97,45 @@ export declare class SalesImpl extends BaseModule implements Module, SalesModule
85
97
  */
86
98
  private pickBookingsForCurrentPoint;
87
99
  /**
88
- * 标准化单条 booking:
89
- * - 过滤终态(rejected/cancelled/completed)
90
- * - 注入 status / isTimeout / reserved_status
100
+ * 计算 booking 在 current 时刻的执行进度百分比(0-100)。
101
+ * - startAt/endAt 非法或 totalMinutes <= 0 返回 0
102
+ * - current 早于 startAt 返回 0,晚于 endAt 返回 100
103
+ */
104
+ private calcProgressPercent;
105
+ /**
106
+ * 标准化单条 booking 的分发入口:
107
+ * - 统一过滤 rejected / cancelled(视为没来过)
108
+ * - current === deviceCurrent 走实时分支(信任 appointment_status)
109
+ * - 否则走快照分支(纯时间窗判定,忽略 appointment_status 的 arrived/started/completed 差异)
91
110
  */
92
111
  private normalizeMatchedBooking;
93
- getResourceBookingList(currentTime: string, bookingList?: BookingData[]): Promise<SalesResourceBookingItem[]>;
112
+ private normalizeResourceBookings;
113
+ private buildCompletedBooking;
114
+ /**
115
+ * 实时模式(current === deviceCurrent):信任 appointment_status
116
+ * - 过滤 new / completed(实时视角下视为非活跃数据)
117
+ * - status 由 getBookingStatus 映射
118
+ * - occupied 且 current > endAt 标记 isTimeout + timeoutTime
119
+ * - reserved 且 current < startAt 标记 not_arrived,否则标记 late
120
+ */
121
+ private buildRealtimeBooking;
122
+ /**
123
+ * 快照模式(current !== deviceCurrent,过去或未来):忽略 appointment_status
124
+ * 的实时态差异,仅按 booking 时间窗判定,为 current 提供时间点快照视图。
125
+ *
126
+ * - new:视作尚未成为真实预约,过滤
127
+ * - locked:保留 status=locked,不计算 timeout/late/progress
128
+ * - 其他非终态:
129
+ * - startAt/endAt 非法 → 过滤
130
+ * - current > endAt → 过滤(已结束,不入池)
131
+ * - current ∈ [startAt, endAt] → occupied,附带 progressPercent
132
+ * - current < startAt → reserved + not_arrived,附带 remainingReserveTime
133
+ *
134
+ * 快照模式下 isTimeout 恒为 false,lateTime / timeoutTime 始终置空。
135
+ */
136
+ private buildSnapshotBooking;
137
+ getResourceBookingList(currentTime: string, bookingList?: BookingData[], deviceTime?: string): Promise<SalesResourceBookingItem[]>;
138
+ getResourceBookingItem(params: GetResourceBookingItemParams): Promise<SalesResourceBookingItemWithGroups | null>;
94
139
  }
95
140
  export { SalesImpl as Sales };
96
141
  export default SalesImpl;