@pisell/pisellos 2.2.243 → 2.2.244

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 (315) hide show
  1. package/dist/model/strategy/adapter/promotion/evaluator.js +2 -3
  2. package/dist/model/strategy/adapter/promotion/index.js +9 -0
  3. package/dist/model/strategy/adapter/walletPass/utils.js +4 -7
  4. package/dist/modules/Cart/utils/cartProduct.js +3 -24
  5. package/dist/modules/Cart/utils/changePrice.js +11 -11
  6. package/dist/modules/Customer/index.d.ts +0 -20
  7. package/dist/modules/Customer/index.js +83 -172
  8. package/dist/modules/Customer/types.d.ts +0 -2
  9. package/dist/modules/Discount/index.js +3 -4
  10. package/dist/modules/Discount/types.d.ts +0 -1
  11. package/dist/modules/OpenData/index.d.ts +0 -8
  12. package/dist/modules/OpenData/index.js +17 -37
  13. package/dist/modules/Order/index.d.ts +18 -268
  14. package/dist/modules/Order/index.js +757 -3306
  15. package/dist/modules/Order/types.d.ts +31 -279
  16. package/dist/modules/Order/types.js +0 -38
  17. package/dist/modules/Order/utils.d.ts +5 -147
  18. package/dist/modules/Order/utils.js +103 -746
  19. package/dist/modules/Payment/index.d.ts +13 -10
  20. package/dist/modules/Payment/index.js +837 -467
  21. package/dist/modules/Payment/types.d.ts +0 -2
  22. package/dist/modules/Payment/utils.js +1 -2
  23. package/dist/modules/Payment/walletpass.js +7 -14
  24. package/dist/modules/ProductList/index.d.ts +12 -16
  25. package/dist/modules/ProductList/index.js +59 -133
  26. package/dist/modules/ProductList/types.d.ts +0 -14
  27. package/dist/modules/Quotation/index.d.ts +1 -0
  28. package/dist/modules/Quotation/index.js +22 -25
  29. package/dist/modules/Rules/index.d.ts +0 -4
  30. package/dist/modules/Rules/index.js +69 -93
  31. package/dist/modules/Rules/types.d.ts +0 -1
  32. package/dist/modules/SalesSummary/index.d.ts +25 -8
  33. package/dist/modules/SalesSummary/index.js +35 -86
  34. package/dist/modules/SalesSummary/types.d.ts +1 -4
  35. package/dist/modules/SalesSummary/utils.d.ts +25 -2
  36. package/dist/modules/SalesSummary/utils.js +162 -794
  37. package/dist/modules/Schedule/index.d.ts +0 -7
  38. package/dist/modules/Schedule/index.js +2 -24
  39. package/dist/modules/Summary/index.js +3 -4
  40. package/dist/modules/index.d.ts +0 -2
  41. package/dist/modules/index.js +1 -3
  42. package/dist/plugins/request.d.ts +0 -1
  43. package/dist/server/index.d.ts +1 -204
  44. package/dist/server/index.js +928 -3658
  45. package/dist/server/modules/index.d.ts +0 -2
  46. package/dist/server/modules/index.js +0 -2
  47. package/dist/server/modules/order/index.d.ts +4 -120
  48. package/dist/server/modules/order/index.js +483 -1779
  49. package/dist/server/modules/order/types.d.ts +3 -32
  50. package/dist/server/modules/order/types.js +0 -8
  51. package/dist/server/modules/order/utils/filterBookings.js +3 -26
  52. package/dist/server/modules/order/utils/filterOrders.js +8 -23
  53. package/dist/server/modules/products/index.d.ts +7 -34
  54. package/dist/server/modules/products/index.js +317 -631
  55. package/dist/server/modules/resource/index.d.ts +0 -2
  56. package/dist/server/modules/resource/index.js +3 -29
  57. package/dist/server/modules/schedule/index.d.ts +4 -4
  58. package/dist/server/modules/schedule/index.js +88 -111
  59. package/dist/solution/BaseSales/index.d.ts +9 -131
  60. package/dist/solution/BaseSales/index.js +447 -1944
  61. package/dist/solution/BaseSales/types.d.ts +6 -76
  62. package/dist/solution/BaseSales/types.js +4 -5
  63. package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.d.ts +0 -1
  64. package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +24 -105
  65. package/dist/solution/BaseSales/utils.d.ts +1 -1
  66. package/dist/solution/BaseSales/utils.js +21 -62
  67. package/dist/solution/BookingByStep/index.d.ts +1 -1
  68. package/dist/solution/BookingTicket/index.d.ts +10 -270
  69. package/dist/solution/BookingTicket/index.js +237 -1772
  70. package/dist/solution/BookingTicket/types.d.ts +1 -118
  71. package/dist/solution/BookingTicket/types.js +2 -41
  72. package/dist/solution/BookingTicket/utils/bookingStatus.d.ts +0 -40
  73. package/dist/solution/BookingTicket/utils/bookingStatus.js +0 -70
  74. package/dist/solution/BookingTicket/utils/cartView.d.ts +1 -9
  75. package/dist/solution/BookingTicket/utils/cartView.js +7 -94
  76. package/dist/solution/BookingTicket/utils/scan/index.d.ts +0 -5
  77. package/dist/solution/BookingTicket/utils/scan/index.js +8 -20
  78. package/dist/solution/Checkout/appointmentDemo.json +1 -0
  79. package/dist/solution/Checkout/index.d.ts +0 -1
  80. package/dist/solution/Checkout/index.js +9 -10
  81. package/dist/solution/RegisterAndLogin/config.js +10 -2
  82. package/dist/solution/ScanOrder/index.d.ts +3 -9
  83. package/dist/solution/ScanOrder/index.js +134 -241
  84. package/dist/solution/ScanOrder/types.d.ts +5 -9
  85. package/dist/solution/ScanOrder/types.js +3 -2
  86. package/dist/solution/ScanOrder/utils.d.ts +1 -1
  87. package/dist/solution/ScanOrder/utils.js +22 -84
  88. package/dist/solution/VenueBooking/index.d.ts +2 -5
  89. package/dist/solution/VenueBooking/index.js +59 -110
  90. package/dist/solution/VenueBooking/sales-section-4-annotated.json +2 -0
  91. package/dist/solution/VenueBooking/utils/slotMerge.d.ts +0 -4
  92. package/dist/solution/VenueBooking/utils/slotMerge.js +0 -10
  93. package/dist/types/index.d.ts +0 -10
  94. package/lib/model/strategy/adapter/promotion/evaluator.js +1 -2
  95. package/lib/model/strategy/adapter/promotion/index.js +0 -49
  96. package/lib/model/strategy/adapter/walletPass/utils.js +2 -3
  97. package/lib/modules/Cart/utils/cartProduct.js +3 -20
  98. package/lib/modules/Cart/utils/changePrice.js +20 -12
  99. package/lib/modules/Customer/index.d.ts +0 -20
  100. package/lib/modules/Customer/index.js +11 -64
  101. package/lib/modules/Customer/types.d.ts +0 -2
  102. package/lib/modules/Discount/index.js +1 -5
  103. package/lib/modules/Discount/types.d.ts +0 -1
  104. package/lib/modules/OpenData/index.d.ts +0 -8
  105. package/lib/modules/OpenData/index.js +5 -19
  106. package/lib/modules/Order/index.d.ts +18 -268
  107. package/lib/modules/Order/index.js +344 -2149
  108. package/lib/modules/Order/types.d.ts +31 -279
  109. package/lib/modules/Order/types.js +0 -1
  110. package/lib/modules/Order/utils.d.ts +5 -147
  111. package/lib/modules/Order/utils.js +46 -614
  112. package/lib/modules/Payment/index.d.ts +13 -10
  113. package/lib/modules/Payment/index.js +150 -18
  114. package/lib/modules/Payment/types.d.ts +0 -2
  115. package/lib/modules/Payment/utils.js +1 -2
  116. package/lib/modules/Payment/walletpass.js +3 -7
  117. package/lib/modules/ProductList/index.d.ts +12 -16
  118. package/lib/modules/ProductList/index.js +4 -41
  119. package/lib/modules/ProductList/types.d.ts +0 -14
  120. package/lib/modules/Quotation/index.d.ts +1 -0
  121. package/lib/modules/Quotation/index.js +16 -19
  122. package/lib/modules/Rules/index.d.ts +0 -4
  123. package/lib/modules/Rules/index.js +120 -136
  124. package/lib/modules/Rules/types.d.ts +0 -1
  125. package/lib/modules/SalesSummary/index.d.ts +25 -8
  126. package/lib/modules/SalesSummary/index.js +4 -30
  127. package/lib/modules/SalesSummary/types.d.ts +1 -4
  128. package/lib/modules/SalesSummary/utils.d.ts +25 -2
  129. package/lib/modules/SalesSummary/utils.js +91 -645
  130. package/lib/modules/Schedule/index.d.ts +0 -7
  131. package/lib/modules/Schedule/index.js +1 -17
  132. package/lib/modules/Summary/index.js +4 -5
  133. package/lib/modules/index.d.ts +0 -2
  134. package/lib/modules/index.js +1 -5
  135. package/lib/plugins/request.d.ts +0 -1
  136. package/lib/server/index.d.ts +1 -204
  137. package/lib/server/index.js +57 -1888
  138. package/lib/server/modules/index.d.ts +0 -2
  139. package/lib/server/modules/index.js +0 -3
  140. package/lib/server/modules/order/index.d.ts +4 -120
  141. package/lib/server/modules/order/index.js +142 -919
  142. package/lib/server/modules/order/types.d.ts +3 -32
  143. package/lib/server/modules/order/utils/filterBookings.js +5 -24
  144. package/lib/server/modules/order/utils/filterOrders.js +6 -15
  145. package/lib/server/modules/products/index.d.ts +7 -34
  146. package/lib/server/modules/products/index.js +54 -189
  147. package/lib/server/modules/resource/index.d.ts +0 -2
  148. package/lib/server/modules/resource/index.js +3 -27
  149. package/lib/server/modules/schedule/index.d.ts +4 -4
  150. package/lib/server/modules/schedule/index.js +40 -47
  151. package/lib/solution/BaseSales/index.d.ts +9 -131
  152. package/lib/solution/BaseSales/index.js +63 -1106
  153. package/lib/solution/BaseSales/types.d.ts +6 -76
  154. package/lib/solution/BaseSales/types.js +1 -3
  155. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.d.ts +0 -1
  156. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +18 -106
  157. package/lib/solution/BaseSales/utils.d.ts +1 -1
  158. package/lib/solution/BaseSales/utils.js +10 -54
  159. package/lib/solution/BookingByStep/index.d.ts +1 -1
  160. package/lib/solution/BookingTicket/index.d.ts +10 -270
  161. package/lib/solution/BookingTicket/index.js +29 -922
  162. package/lib/solution/BookingTicket/types.d.ts +1 -118
  163. package/lib/solution/BookingTicket/types.js +0 -11
  164. package/lib/solution/BookingTicket/utils/bookingStatus.d.ts +0 -40
  165. package/lib/solution/BookingTicket/utils/bookingStatus.js +2 -44
  166. package/lib/solution/BookingTicket/utils/cartView.d.ts +1 -9
  167. package/lib/solution/BookingTicket/utils/cartView.js +6 -61
  168. package/lib/solution/BookingTicket/utils/scan/index.d.ts +0 -5
  169. package/lib/solution/BookingTicket/utils/scan/index.js +3 -17
  170. package/lib/solution/Checkout/appointmentDemo.json +1 -0
  171. package/lib/solution/Checkout/index.d.ts +0 -1
  172. package/lib/solution/Checkout/index.js +2 -1
  173. package/lib/solution/RegisterAndLogin/config.js +10 -2
  174. package/lib/solution/ScanOrder/index.d.ts +3 -9
  175. package/lib/solution/ScanOrder/index.js +70 -153
  176. package/lib/solution/ScanOrder/types.d.ts +5 -9
  177. package/lib/solution/ScanOrder/utils.d.ts +1 -1
  178. package/lib/solution/ScanOrder/utils.js +17 -83
  179. package/lib/solution/VenueBooking/index.d.ts +2 -5
  180. package/lib/solution/VenueBooking/index.js +17 -54
  181. package/lib/solution/VenueBooking/sales-section-4-annotated.json +2 -0
  182. package/lib/solution/VenueBooking/utils/slotMerge.d.ts +0 -4
  183. package/lib/solution/VenueBooking/utils/slotMerge.js +0 -10
  184. package/lib/types/index.d.ts +0 -10
  185. package/package.json +1 -1
  186. package/dist/modules/BookingContext/index.d.ts +0 -48
  187. package/dist/modules/BookingContext/index.js +0 -566
  188. package/dist/modules/BookingContext/types.d.ts +0 -102
  189. package/dist/modules/BookingContext/types.js +0 -51
  190. package/dist/modules/BookingContext/utils/buildCacheItemFromOrderLine.d.ts +0 -16
  191. package/dist/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +0 -284
  192. package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.d.ts +0 -8
  193. package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +0 -145
  194. package/dist/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +0 -76
  195. package/dist/modules/BookingContext/utils/cacheItemToBookingInput.js +0 -218
  196. package/dist/modules/BookingContext/utils/flexible.d.ts +0 -28
  197. package/dist/modules/BookingContext/utils/flexible.js +0 -56
  198. package/dist/modules/BookingContext/utils/formatResourceList.d.ts +0 -8
  199. package/dist/modules/BookingContext/utils/formatResourceList.js +0 -38
  200. package/dist/modules/BookingContext/utils/index.d.ts +0 -11
  201. package/dist/modules/BookingContext/utils/index.js +0 -11
  202. package/dist/modules/BookingContext/utils/noResource.d.ts +0 -13
  203. package/dist/modules/BookingContext/utils/noResource.js +0 -77
  204. package/dist/modules/BookingContext/utils/orderLineDisplay.d.ts +0 -1
  205. package/dist/modules/BookingContext/utils/orderLineDisplay.js +0 -36
  206. package/dist/modules/BookingContext/utils/productExtend.d.ts +0 -72
  207. package/dist/modules/BookingContext/utils/productExtend.js +0 -339
  208. package/dist/modules/BookingContext/utils/resourceErrors.d.ts +0 -41
  209. package/dist/modules/BookingContext/utils/resourceErrors.js +0 -74
  210. package/dist/modules/BookingContext/utils/resourceSelection.d.ts +0 -7
  211. package/dist/modules/BookingContext/utils/resourceSelection.js +0 -24
  212. package/dist/modules/BookingContext/utils/resources.d.ts +0 -80
  213. package/dist/modules/BookingContext/utils/resources.js +0 -486
  214. package/dist/modules/BookingContext/utils/serviceTimes.d.ts +0 -55
  215. package/dist/modules/BookingContext/utils/serviceTimes.js +0 -151
  216. package/dist/modules/BookingContext/utils/timeSlices.d.ts +0 -42
  217. package/dist/modules/BookingContext/utils/timeSlices.js +0 -100
  218. package/dist/modules/Order/utils/manualProductDiscount.d.ts +0 -106
  219. package/dist/modules/Order/utils/manualProductDiscount.js +0 -210
  220. package/dist/modules/SurchargeList/index.d.ts +0 -16
  221. package/dist/modules/SurchargeList/index.js +0 -162
  222. package/dist/modules/SurchargeList/types.d.ts +0 -11
  223. package/dist/modules/SurchargeList/types.js +0 -1
  224. package/dist/server/modules/payment/index.d.ts +0 -28
  225. package/dist/server/modules/payment/index.js +0 -305
  226. package/dist/server/modules/payment/types.d.ts +0 -9
  227. package/dist/server/modules/payment/types.js +0 -1
  228. package/dist/server/test.json +0 -713
  229. package/dist/server/utils/small-ticket.d.ts +0 -71
  230. package/dist/server/utils/small-ticket.js +0 -830
  231. package/dist/solution/BaseSales/utils/cartPromotion.d.ts +0 -287
  232. package/dist/solution/BaseSales/utils/cartPromotion.js +0 -1438
  233. package/dist/solution/BaseSales/utils/quotationPrice.d.ts +0 -7
  234. package/dist/solution/BaseSales/utils/quotationPrice.js +0 -237
  235. package/dist/solution/BookingTicket/utils/addProductDecision.d.ts +0 -117
  236. package/dist/solution/BookingTicket/utils/addProductDecision.js +0 -346
  237. package/dist/solution/BookingTicket/utils/addTimeAvailability.d.ts +0 -35
  238. package/dist/solution/BookingTicket/utils/addTimeAvailability.js +0 -95
  239. package/dist/solution/BookingTicket/utils/exampleData.d.ts +0 -123
  240. package/dist/solution/BookingTicket/utils/exampleData.js +0 -183
  241. package/dist/solution/BookingTicket/utils/resolveBestAddTimePlan.d.ts +0 -185
  242. package/dist/solution/BookingTicket/utils/resolveBestAddTimePlan.js +0 -438
  243. package/dist/solution/BookingTicket/utils/scan/applyGlobalScan.d.ts +0 -36
  244. package/dist/solution/BookingTicket/utils/scan/applyGlobalScan.js +0 -399
  245. package/dist/solution/BookingTicket/utils/scan/formatGlobalScan.d.ts +0 -32
  246. package/dist/solution/BookingTicket/utils/scan/formatGlobalScan.js +0 -56
  247. package/dist/solution/BookingTicket/utils/scan/scanProductValues.d.ts +0 -21
  248. package/dist/solution/BookingTicket/utils/scan/scanProductValues.js +0 -150
  249. package/dist/solution/BookingTicket/utils/sessionCatalogStale.d.ts +0 -23
  250. package/dist/solution/BookingTicket/utils/sessionCatalogStale.js +0 -78
  251. package/lib/modules/BookingContext/index.d.ts +0 -48
  252. package/lib/modules/BookingContext/index.js +0 -368
  253. package/lib/modules/BookingContext/types.d.ts +0 -102
  254. package/lib/modules/BookingContext/types.js +0 -34
  255. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.d.ts +0 -16
  256. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +0 -276
  257. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.d.ts +0 -8
  258. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +0 -151
  259. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +0 -76
  260. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +0 -201
  261. package/lib/modules/BookingContext/utils/flexible.d.ts +0 -28
  262. package/lib/modules/BookingContext/utils/flexible.js +0 -80
  263. package/lib/modules/BookingContext/utils/formatResourceList.d.ts +0 -8
  264. package/lib/modules/BookingContext/utils/formatResourceList.js +0 -50
  265. package/lib/modules/BookingContext/utils/index.d.ts +0 -11
  266. package/lib/modules/BookingContext/utils/index.js +0 -43
  267. package/lib/modules/BookingContext/utils/noResource.d.ts +0 -13
  268. package/lib/modules/BookingContext/utils/noResource.js +0 -90
  269. package/lib/modules/BookingContext/utils/orderLineDisplay.d.ts +0 -1
  270. package/lib/modules/BookingContext/utils/orderLineDisplay.js +0 -56
  271. package/lib/modules/BookingContext/utils/productExtend.d.ts +0 -72
  272. package/lib/modules/BookingContext/utils/productExtend.js +0 -283
  273. package/lib/modules/BookingContext/utils/resourceErrors.d.ts +0 -41
  274. package/lib/modules/BookingContext/utils/resourceErrors.js +0 -80
  275. package/lib/modules/BookingContext/utils/resourceSelection.d.ts +0 -7
  276. package/lib/modules/BookingContext/utils/resourceSelection.js +0 -46
  277. package/lib/modules/BookingContext/utils/resources.d.ts +0 -80
  278. package/lib/modules/BookingContext/utils/resources.js +0 -377
  279. package/lib/modules/BookingContext/utils/serviceTimes.d.ts +0 -55
  280. package/lib/modules/BookingContext/utils/serviceTimes.js +0 -162
  281. package/lib/modules/BookingContext/utils/timeSlices.d.ts +0 -42
  282. package/lib/modules/BookingContext/utils/timeSlices.js +0 -124
  283. package/lib/modules/Order/utils/manualProductDiscount.d.ts +0 -106
  284. package/lib/modules/Order/utils/manualProductDiscount.js +0 -206
  285. package/lib/modules/SurchargeList/index.d.ts +0 -16
  286. package/lib/modules/SurchargeList/index.js +0 -89
  287. package/lib/modules/SurchargeList/types.d.ts +0 -11
  288. package/lib/modules/SurchargeList/types.js +0 -17
  289. package/lib/server/modules/payment/index.d.ts +0 -28
  290. package/lib/server/modules/payment/index.js +0 -192
  291. package/lib/server/modules/payment/types.d.ts +0 -9
  292. package/lib/server/modules/payment/types.js +0 -17
  293. package/lib/server/test.json +0 -713
  294. package/lib/server/utils/small-ticket.d.ts +0 -71
  295. package/lib/server/utils/small-ticket.js +0 -781
  296. package/lib/solution/BaseSales/utils/cartPromotion.d.ts +0 -287
  297. package/lib/solution/BaseSales/utils/cartPromotion.js +0 -992
  298. package/lib/solution/BaseSales/utils/quotationPrice.d.ts +0 -7
  299. package/lib/solution/BaseSales/utils/quotationPrice.js +0 -277
  300. package/lib/solution/BookingTicket/utils/addProductDecision.d.ts +0 -117
  301. package/lib/solution/BookingTicket/utils/addProductDecision.js +0 -318
  302. package/lib/solution/BookingTicket/utils/addTimeAvailability.d.ts +0 -35
  303. package/lib/solution/BookingTicket/utils/addTimeAvailability.js +0 -125
  304. package/lib/solution/BookingTicket/utils/exampleData.d.ts +0 -123
  305. package/lib/solution/BookingTicket/utils/exampleData.js +0 -0
  306. package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.d.ts +0 -185
  307. package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +0 -254
  308. package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.d.ts +0 -36
  309. package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +0 -168
  310. package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.d.ts +0 -32
  311. package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +0 -51
  312. package/lib/solution/BookingTicket/utils/scan/scanProductValues.d.ts +0 -21
  313. package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +0 -127
  314. package/lib/solution/BookingTicket/utils/sessionCatalogStale.d.ts +0 -23
  315. package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +0 -85
@@ -1,346 +0,0 @@
1
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
6
- function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
- import dayjs from 'dayjs';
8
- import { cacheItemToBookingInput, derivePresetStartTimeFromDate, getProductExtend, getIsAutoClose, isSessionProduct, isBookingProduct, applySessionTimesToExtend, hasActualResourceSelection, productNeedsResourceExtend } from "../../../modules/BookingContext";
9
- import { transformBaseProductToOrderProduct } from "../../BaseSales/utils/transformBaseProductToOrderProduct";
10
-
11
- /**
12
- * cart.addProduct 两阶段决策(与 ticketBooking `handleSelectProduct` 对齐):
13
- *
14
- * 1. `requiresDetail`:规格 / SKU / 套餐 / Session / 称重弹窗(门禁:`isOpenDetailModal` / `cartDetailValue` / `open_sold_weight`)
15
- * 2. `requiresBookingEdit`:资源 / 时间编辑抽屉(门禁:`getIsAutoClose` on prepared cacheItem)
16
- * 3. `add`:两关均通过,直接 transform + 加车
17
- */
18
-
19
- /** 资源 / 时间编辑抽屉所需的最小 payload。 */
20
-
21
- /**
22
- * 第一段:是否需要打开规格 / SKU 详情弹窗(与 addService `handleSelectProduct` 一致,不用 `getIsEject` 做门禁)。
23
- */
24
- function needsSpecDetailModal(item) {
25
- if (item !== null && item !== void 0 && item.open_sold_weight) return true;
26
- if (item !== null && item !== void 0 && item.isOpenDetailModal) return true;
27
- if (!(item !== null && item !== void 0 && item.cartDetailValue)) return true;
28
- return false;
29
- }
30
-
31
- /**
32
- * 第二段:预约商品是否仍需打开资源 / 时间编辑(与 info2 `cacheItem.autoClose` 等价)。
33
- */
34
- function needsBookingEdit(cacheItem, ctx) {
35
- if (isNormalBookingProduct(cacheItem)) return false;
36
- var isAutoAllocationOn = (ctx === null || ctx === void 0 ? void 0 : ctx.isAutoAllocationOn) || function () {
37
- return true;
38
- };
39
- return !getIsAutoClose(cacheItem, isAutoAllocationOn);
40
- }
41
- function buildRequiresBookingEditPayload(cacheItem, ctx) {
42
- return {
43
- cacheItem: cacheItem,
44
- customerId: ctx === null || ctx === void 0 ? void 0 : ctx.customerId,
45
- date: typeof (ctx === null || ctx === void 0 ? void 0 : ctx.date) === 'string' ? ctx.date : null
46
- };
47
- }
48
-
49
- /**
50
- * 加车主决策:对齐 `handleSelectProduct` 两段分支。
51
- */
52
- export function decideAddProduct(item, ctx) {
53
- var derivedCtx = withDerivedBookingCtx(ctx);
54
- if (needsSpecDetailModal(item)) {
55
- return {
56
- action: 'requiresDetail',
57
- payload: buildRequiresDetailPayload(item, derivedCtx)
58
- };
59
- }
60
- var cacheItem = prepareBookingCacheItem(buildCacheItemFromCartDetail(item, derivedCtx), derivedCtx);
61
- if (needsBookingEdit(cacheItem, derivedCtx)) {
62
- return {
63
- action: 'requiresBookingEdit',
64
- cacheItem: cacheItem,
65
- payload: buildRequiresBookingEditPayload(cacheItem, derivedCtx)
66
- };
67
- }
68
- return {
69
- action: 'add',
70
- cacheItem: cacheItem
71
- };
72
- }
73
-
74
- /**
75
- * 规格弹窗 callback 后的第二段决策(对齐 `handleBooking4Service` 内 `cacheItem.autoClose` 分支)。
76
- */
77
- export function decideAfterDetail(cacheItem, ctx) {
78
- var derivedCtx = withDerivedBookingCtx(ctx);
79
- var extended = prepareBookingCacheItem(cacheItem, derivedCtx);
80
- if (needsBookingEdit(extended, derivedCtx)) {
81
- return {
82
- action: 'requiresBookingEdit',
83
- cacheItem: extended,
84
- payload: buildRequiresBookingEditPayload(extended, derivedCtx)
85
- };
86
- }
87
- return {
88
- action: 'add',
89
- cacheItem: extended
90
- };
91
- }
92
-
93
- /**
94
- * @deprecated 请用 `decideAddProduct`;保留兼容:autoClose=true 仅表示可直接加车(action=add)。
95
- */
96
-
97
- function isNormalBookingProduct(item) {
98
- return !isBookingProduct(item);
99
- }
100
- function hasPreparedBookingExtend(cacheItem) {
101
- var _ext$other;
102
- // 场次/时间已写入但资源仍未选中时,须继续走 getProductExtend(对齐 info2 必定调用 getProductExtend)。
103
- if (productNeedsResourceExtend(cacheItem) && !hasActualResourceSelection(cacheItem)) {
104
- return false;
105
- }
106
- var ext = (cacheItem === null || cacheItem === void 0 ? void 0 : cacheItem._extend) || {};
107
- var hasResourceState = Boolean(hasActualResourceSelection(cacheItem) && ext.capacity && (ext.endDate || ext.end_date));
108
- var hasSessionState = Boolean(isSessionProduct(cacheItem) && ((_ext$other = ext.other) === null || _ext$other === void 0 ? void 0 : _ext$other.session) && ext.start_time && (ext.end_time || ext.endDate));
109
- var hasMultiDayState = Boolean(isNormalBookingProduct(cacheItem) === false && isMultiDayLike(cacheItem));
110
- var hasExplicitTimeState = Boolean(ext.duration && (ext.start_date || ext.startDate) && ext.start_time && (ext.end_date && ext.end_time || ext.endDate));
111
- return hasResourceState || hasSessionState || hasMultiDayState || hasExplicitTimeState;
112
- }
113
-
114
- /** 弹窗 / Host 使用的日历日,与 ticketBooking `state.date.format('YYYY-MM-DD')` 对齐。 */
115
- function formatBookingDateForUI(date) {
116
- if (date == null || date === '') return null;
117
- var parsed = dayjs(date);
118
- return parsed.isValid() ? parsed.format('YYYY-MM-DD') : null;
119
- }
120
-
121
- /** 补齐 presetStartTime(decideAutoClose / transform 与 BookingTicket.buildAddProductCtx 共用)。 */
122
- function withDerivedBookingCtx(ctx) {
123
- var _ctx$presetStartTime;
124
- if (!ctx) return {};
125
- return _objectSpread(_objectSpread({}, ctx), {}, {
126
- presetStartTime: (_ctx$presetStartTime = ctx.presetStartTime) !== null && _ctx$presetStartTime !== void 0 ? _ctx$presetStartTime : derivePresetStartTimeFromDate(ctx.date)
127
- });
128
- }
129
- function isMultiDayLike(cacheItem) {
130
- var _cacheItem$duration;
131
- var ext = (cacheItem === null || cacheItem === void 0 ? void 0 : cacheItem._extend) || {};
132
- return Boolean((cacheItem === null || cacheItem === void 0 || (_cacheItem$duration = cacheItem.duration) === null || _cacheItem$duration === void 0 ? void 0 : _cacheItem$duration.type) === 'days' && ext.duration && ext.start_date && ext.end_date);
133
- }
134
-
135
- /**
136
- * 统一补齐预约商品的运行态字段。
137
- *
138
- * 新链路不再让决策和提交各自重建 cacheItem;这里作为唯一入口补齐
139
- * `_extend.resource / capacity / startDate / endDate` 等后续 booking mapper 需要的字段。
140
- */
141
- export function prepareBookingCacheItem(cacheItem, ctx) {
142
- if (isNormalBookingProduct(cacheItem) || hasPreparedBookingExtend(cacheItem)) {
143
- return cacheItem;
144
- }
145
- return getProductExtend({
146
- cacheItem: cacheItem,
147
- ctx: withDerivedBookingCtx(ctx),
148
- isDisabledTime: true
149
- });
150
- }
151
- export function decideAutoClose(item, ctx) {
152
- var decision = decideAddProduct(item, ctx);
153
- if (decision.action === 'add') {
154
- return {
155
- autoClose: true,
156
- cacheItem: decision.cacheItem
157
- };
158
- }
159
- if (decision.action === 'requiresBookingEdit') {
160
- return {
161
- autoClose: false,
162
- cacheItem: decision.cacheItem
163
- };
164
- }
165
- return {
166
- autoClose: false
167
- };
168
- }
169
-
170
- /**
171
- * 替代 info2 `getIsEject`:商品是否需要弹窗(含 type='detail' / option_group / bundle_group / variant / session / sold_by_weight)。
172
- */
173
- export function getIsEject(item) {
174
- var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'select';
175
- var isSession = isSessionProduct(item);
176
- var isSoldByWeight = Boolean(item === null || item === void 0 ? void 0 : item.open_sold_weight);
177
- var need = type === 'detail' || ((item === null || item === void 0 ? void 0 : item.bundle_group_count) || 0) > 0 || ((item === null || item === void 0 ? void 0 : item.option_group_count) || 0) > 0 || ((item === null || item === void 0 ? void 0 : item.is_variant) || 0) > 0 || isSession || isSoldByWeight;
178
- return need ? 1 : 0;
179
- }
180
-
181
- /** 仅 session 商品(且没有 variant/option/package)。 */
182
- export function getIsOnlySession(item) {
183
- var isSession = isSessionProduct(item);
184
- return !(((item === null || item === void 0 ? void 0 : item.bundle_group_count) || 0) > 0 || ((item === null || item === void 0 ? void 0 : item.option_group_count) || 0) > 0 || ((item === null || item === void 0 ? void 0 : item.is_variant) || 0) > 0) && isSession;
185
- }
186
-
187
- /**
188
- * 拼装 requiresDetail payload;showConfig 与 info2 弹窗内部判断一致。
189
- */
190
- export function buildRequiresDetailPayload(item, ctx) {
191
- var isOnlySession = getIsOnlySession(item);
192
- var isEject = getIsEject(item, (ctx === null || ctx === void 0 ? void 0 : ctx.type) || 'select');
193
- return {
194
- item: item,
195
- showConfig: {
196
- option: ((item === null || item === void 0 ? void 0 : item.option_group_count) || 0) > 0,
197
- session: isSessionProduct(item),
198
- variant: ((item === null || item === void 0 ? void 0 : item.is_variant) || 0) > 0,
199
- package: ((item === null || item === void 0 ? void 0 : item.bundle_group_count) || 0) > 0,
200
- number: Boolean(item === null || item === void 0 ? void 0 : item.open_sold_weight)
201
- },
202
- isOnlySession: isOnlySession,
203
- isEject: isEject ? 1 : 0,
204
- customerId: ctx === null || ctx === void 0 ? void 0 : ctx.customerId,
205
- date: formatBookingDateForUI(ctx === null || ctx === void 0 ? void 0 : ctx.date),
206
- productData: item
207
- };
208
- }
209
-
210
- /**
211
- * 用 item.cartDetailValue 拼装一个 cacheItem 雏形(与 info2 `handleDirectAddService` 等价路径)。
212
- * 这里只补 `_extend.start_date / quantity / other` 等运行态字段;后续走 getProductExtend 才会补齐资源 / 时间。
213
- */
214
- export function buildCacheItemFromCartDetail(item, ctx) {
215
- var _item$id, _ref, _ctx$quantity, _item$_extend$price, _item$_extend;
216
- var cartDetailValue = item.cartDetailValue || {};
217
- var other = JSON.parse(JSON.stringify(cartDetailValue || {}));
218
- other.session = cartDetailValue.session;
219
- /** 列表/接口可能只带 product_id 不带 id,勿用 item.id 覆盖掉已有 product_id */
220
- var resolvedId = (_item$id = item.id) !== null && _item$id !== void 0 ? _item$id : item.product_id;
221
- var extend = applySessionTimesToExtend(item, {
222
- start_date: (ctx === null || ctx === void 0 ? void 0 : ctx.date) || undefined,
223
- /** 列表连点 / 防抖合并时以 ctx.quantity 为准,避免 cartDetailValue 默认 1 盖掉合并数量 */
224
- quantity: (_ref = (_ctx$quantity = ctx === null || ctx === void 0 ? void 0 : ctx.quantity) !== null && _ctx$quantity !== void 0 ? _ctx$quantity : cartDetailValue === null || cartDetailValue === void 0 ? void 0 : cartDetailValue.quantity) !== null && _ref !== void 0 ? _ref : 1,
225
- product_name: item.title,
226
- other: other,
227
- isNormalProduct: !isBookingProduct(item),
228
- price: (_item$_extend$price = item === null || item === void 0 || (_item$_extend = item._extend) === null || _item$_extend === void 0 ? void 0 : _item$_extend.price) !== null && _item$_extend$price !== void 0 ? _item$_extend$price : item === null || item === void 0 ? void 0 : item.price
229
- }, {
230
- date: ctx === null || ctx === void 0 ? void 0 : ctx.date
231
- });
232
- return _objectSpread(_objectSpread({}, item), {}, {
233
- id: resolvedId,
234
- product_id: resolvedId,
235
- _key: cartDetailValue.key,
236
- _extend: extend,
237
- new: 1
238
- });
239
- }
240
-
241
- /**
242
- * 用 Info2 callback 的 (e, extension_type, detail) 拼装 cacheItem。
243
- *
244
- * 保留 detail._extend 中的 pricing / note(规格弹窗改价、备注等),
245
- * 再叠加 session 时间、ctx.quantity 等运行态字段;other 以 callback `e` 为准。
246
- */
247
- export function buildCacheItemFromDetail(item, detailResult, ctx) {
248
- var _detailResult$e, _currentItem$id, _detail$extension_typ, _ref2, _ref3, _ctx$quantity2, _detailResult$e2, _ref4, _detailExtend$price, _currentItem$title, _detailExtend$note, _detailResult$e3;
249
- var _currentItem = detailResult.detail || item;
250
- var _detail = _currentItem;
251
- var detailExtend = (_detail === null || _detail === void 0 ? void 0 : _detail._extend) || {};
252
- var other = JSON.parse(JSON.stringify(detailResult.e || {}));
253
- other.session = (_detailResult$e = detailResult.e) === null || _detailResult$e === void 0 ? void 0 : _detailResult$e.session;
254
- var resolvedId = (_currentItem$id = _currentItem.id) !== null && _currentItem$id !== void 0 ? _currentItem$id : _currentItem.product_id;
255
- var mergedItem = _objectSpread(_objectSpread(_objectSpread({}, item), _detail), {}, {
256
- extension_type: (_detail$extension_typ = _detail.extension_type) !== null && _detail$extension_typ !== void 0 ? _detail$extension_typ : item.extension_type
257
- });
258
- var runtimeExtend = applySessionTimesToExtend(mergedItem, {
259
- start_date: (ctx === null || ctx === void 0 ? void 0 : ctx.date) || detailExtend.start_date || undefined,
260
- quantity: (_ref2 = (_ref3 = (_ctx$quantity2 = ctx === null || ctx === void 0 ? void 0 : ctx.quantity) !== null && _ctx$quantity2 !== void 0 ? _ctx$quantity2 : (_detailResult$e2 = detailResult.e) === null || _detailResult$e2 === void 0 ? void 0 : _detailResult$e2.quantity) !== null && _ref3 !== void 0 ? _ref3 : detailExtend.quantity) !== null && _ref2 !== void 0 ? _ref2 : 1,
261
- price: (_ref4 = (_detailExtend$price = detailExtend.price) !== null && _detailExtend$price !== void 0 ? _detailExtend$price : _detail === null || _detail === void 0 ? void 0 : _detail.price) !== null && _ref4 !== void 0 ? _ref4 : item === null || item === void 0 ? void 0 : item.price,
262
- product_name: (_currentItem$title = _currentItem.title) !== null && _currentItem$title !== void 0 ? _currentItem$title : detailExtend.product_name,
263
- other: other,
264
- isNormalProduct: !isBookingProduct(mergedItem)
265
- }, {
266
- date: ctx === null || ctx === void 0 ? void 0 : ctx.date
267
- });
268
- var extend = _objectSpread(_objectSpread(_objectSpread({}, detailExtend), runtimeExtend), {}, {
269
- other: other
270
- });
271
- var note = (_detailExtend$note = detailExtend.note) !== null && _detailExtend$note !== void 0 ? _detailExtend$note : _detail === null || _detail === void 0 ? void 0 : _detail.note;
272
- return _objectSpread(_objectSpread(_objectSpread({}, _detail), {}, {
273
- id: resolvedId,
274
- product_id: resolvedId,
275
- extension_type: mergedItem.extension_type,
276
- _key: (_detailResult$e3 = detailResult.e) === null || _detailResult$e3 === void 0 ? void 0 : _detailResult$e3.key
277
- }, note != null && note !== '' ? {
278
- note: String(note)
279
- } : {}), {}, {
280
- _extend: extend,
281
- new: 1
282
- });
283
- }
284
-
285
- /**
286
- * `transformDetailToProductAndBooking`:把 cacheItem 拆成 OS `addProductToOrder` 所需的 `(product, booking)`。
287
- *
288
- * - `product` 走 `transformBaseProductToOrderProduct`(沿用 BaseSales 现有 mapper)。
289
- * - `booking` 走 `cacheItemToBookingInput`(严格按 TEMP_ORDER_FIELDS_SUMMARY.md 协议)。
290
- * - 普通商品(无 duration / 无 schedules)不产 booking,与 info2 一致。
291
- */
292
- export function transformDetailToProductAndBooking(cacheItem, ctx) {
293
- var preparedCacheItem = prepareBookingCacheItem(cacheItem, withDerivedBookingCtx(ctx));
294
- var payload = buildBasePayloadFromCacheItem(preparedCacheItem, ctx);
295
- var productInput = transformBaseProductToOrderProduct({
296
- payload: payload,
297
- sourceProduct: preparedCacheItem
298
- });
299
- if (!productInput) {
300
- throw new Error('[BookingTicket] transformDetailToProductAndBooking: product transform failed (missing numeric item.id / item.product_id)');
301
- }
302
- var isNormalProduct = isNormalBookingProduct(preparedCacheItem);
303
- var booking;
304
- if (!isNormalProduct) {
305
- booking = cacheItemToBookingInput(preparedCacheItem, {
306
- bookingConfig: ctx === null || ctx === void 0 ? void 0 : ctx.bookingConfig
307
- });
308
- }
309
- return {
310
- product: productInput,
311
- booking: booking,
312
- cacheItem: preparedCacheItem
313
- };
314
- }
315
-
316
- /**
317
- * 把 cacheItem._extend.other 中的字段 + 顶层运行态拼成 `BaseProductDetailPayload`。
318
- */
319
- function buildBasePayloadFromCacheItem(cacheItem, ctx) {
320
- var _cacheItem$_extend, _cacheItem$_extend$qu, _cacheItem$_extend2, _cacheItem$product_id, _cacheItem$id, _ref5, _other$product_varian, _extend$skuValue, _extend$_skuValue, _extend$price, _extend$price2;
321
- var other = (cacheItem === null || cacheItem === void 0 || (_cacheItem$_extend = cacheItem._extend) === null || _cacheItem$_extend === void 0 ? void 0 : _cacheItem$_extend.other) || {};
322
- var quantity = (ctx === null || ctx === void 0 ? void 0 : ctx.quantity) != null && ctx.quantity > 0 ? ctx.quantity : (_cacheItem$_extend$qu = cacheItem === null || cacheItem === void 0 || (_cacheItem$_extend2 = cacheItem._extend) === null || _cacheItem$_extend2 === void 0 ? void 0 : _cacheItem$_extend2.quantity) !== null && _cacheItem$_extend$qu !== void 0 ? _cacheItem$_extend$qu : 1;
323
- var resolvedPid = (_cacheItem$product_id = cacheItem === null || cacheItem === void 0 ? void 0 : cacheItem.product_id) !== null && _cacheItem$product_id !== void 0 ? _cacheItem$product_id : cacheItem === null || cacheItem === void 0 ? void 0 : cacheItem.id;
324
- var extend = (cacheItem === null || cacheItem === void 0 ? void 0 : cacheItem._extend) || {};
325
- return {
326
- id: (_cacheItem$id = cacheItem === null || cacheItem === void 0 ? void 0 : cacheItem.id) !== null && _cacheItem$id !== void 0 ? _cacheItem$id : cacheItem === null || cacheItem === void 0 ? void 0 : cacheItem.product_id,
327
- product_id: resolvedPid,
328
- variant_id: (_ref5 = (_other$product_varian = other === null || other === void 0 ? void 0 : other.product_variant_id) !== null && _other$product_varian !== void 0 ? _other$product_varian : other === null || other === void 0 ? void 0 : other.variant_id) !== null && _ref5 !== void 0 ? _ref5 : 0,
329
- quantity: quantity,
330
- option: (other === null || other === void 0 ? void 0 : other.option) || [],
331
- bundle: (other === null || other === void 0 ? void 0 : other.bundle) || (extend === null || extend === void 0 || (_extend$skuValue = extend.skuValue) === null || _extend$skuValue === void 0 ? void 0 : _extend$skuValue.bundle) || (extend === null || extend === void 0 || (_extend$_skuValue = extend._skuValue) === null || _extend$_skuValue === void 0 ? void 0 : _extend$_skuValue.bundle) || [],
332
- unique: other === null || other === void 0 ? void 0 : other.unique,
333
- session: other === null || other === void 0 ? void 0 : other.session,
334
- note: extend === null || extend === void 0 ? void 0 : extend.note,
335
- price: (_extend$price = extend === null || extend === void 0 ? void 0 : extend.price) !== null && _extend$price !== void 0 ? _extend$price : cacheItem === null || cacheItem === void 0 ? void 0 : cacheItem.price,
336
- selling_price: (_extend$price2 = extend === null || extend === void 0 ? void 0 : extend.price) !== null && _extend$price2 !== void 0 ? _extend$price2 : cacheItem === null || cacheItem === void 0 ? void 0 : cacheItem.price,
337
- line_total: extend === null || extend === void 0 ? void 0 : extend.total,
338
- total: extend === null || extend === void 0 ? void 0 : extend.total,
339
- origin_total: extend === null || extend === void 0 ? void 0 : extend.origin_total,
340
- price_override: extend === null || extend === void 0 ? void 0 : extend.priceOverride,
341
- bundle_edit: extend === null || extend === void 0 ? void 0 : extend.bundle_edit,
342
- discount_reason: extend === null || extend === void 0 ? void 0 : extend.discount_reason,
343
- discount_list: cacheItem === null || cacheItem === void 0 ? void 0 : cacheItem.discount_list,
344
- _extend: extend
345
- };
346
- }
@@ -1,35 +0,0 @@
1
- import type { BaseSalesOrderProduct } from '../../BaseSales';
2
- import type { ISalesBooking } from '../../BaseSales/utils/parseSalesResponse';
3
- export interface BuildAddTimeCurrentItemParams {
4
- booking: ISalesBooking;
5
- product: BaseSalesOrderProduct | null;
6
- productsByUid?: Record<string, {
7
- origin?: Record<string, any>;
8
- }>;
9
- }
10
- export interface ResolveBookingCanAddTimeParams extends BuildAddTimeCurrentItemParams {
11
- addTimeProducts?: any[];
12
- bookingConfig?: Record<string, any> | null;
13
- shopOpeningHours?: string;
14
- }
15
- /**
16
- * 从 booking 与其关联商品行构建旧 `isUsableProduct` 所需的当前商品快照。
17
- *
18
- * @example
19
- * const currentItem = buildAddTimeCurrentItem({ booking, product, productsByUid });
20
- */
21
- export declare function buildAddTimeCurrentItem({ booking, product, productsByUid, }: BuildAddTimeCurrentItemParams): Record<string, any> | null;
22
- /**
23
- * 判断当前 booking 是否允许打开加时入口,保持与旧 ticketBooking 的商品适用规则一致。
24
- *
25
- * @example
26
- * const canAddTime = resolveBookingCanAddTime({ booking, product, addTimeProducts, bookingConfig });
27
- */
28
- export declare function resolveBookingCanAddTime(params: ResolveBookingCanAddTimeParams): boolean;
29
- /**
30
- * 判断一个加时商品是否适用于当前预约商品。
31
- *
32
- * @example
33
- * const usable = isUsableAddTimeProduct(addTime.add_time, currentItem, '23:59');
34
- */
35
- export declare function isUsableAddTimeProduct(addTime: any, currentItem: Record<string, any> | null | undefined, shopOpeningHours?: string): boolean;
@@ -1,95 +0,0 @@
1
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
6
- function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
- import dayjs from 'dayjs';
8
- import { intersectionBy } from 'lodash-es';
9
- import { isMultiDayProduct } from "../../../modules/BookingContext/utils/serviceTimes";
10
- import { getEndDate } from "../../../modules/BookingContext/utils/timeSlices";
11
- /**
12
- * 从 booking 与其关联商品行构建旧 `isUsableProduct` 所需的当前商品快照。
13
- *
14
- * @example
15
- * const currentItem = buildAddTimeCurrentItem({ booking, product, productsByUid });
16
- */
17
- export function buildAddTimeCurrentItem(_ref) {
18
- var _product$metadata, _productsByUid$String, _ref2, _product$product_id, _sourceProduct$id, _booking$product;
19
- var booking = _ref.booking,
20
- product = _ref.product,
21
- productsByUid = _ref.productsByUid;
22
- if (!booking || !product) return null;
23
- var uid = (_product$metadata = product.metadata) === null || _product$metadata === void 0 ? void 0 : _product$metadata.unique_identification_number;
24
- var origin = uid ? productsByUid === null || productsByUid === void 0 || (_productsByUid$String = productsByUid[String(uid)]) === null || _productsByUid$String === void 0 ? void 0 : _productsByUid$String.origin : undefined;
25
- var sourceProduct = origin || booking.product || {};
26
- var startAt = booking.start_date && booking.start_time ? "".concat(booking.start_date, " ").concat(booking.start_time) : booking.start_date;
27
- var endAt = booking.end_date && booking.end_time ? "".concat(booking.end_date, " ").concat(booking.end_time) : booking.end_date;
28
- return _objectSpread(_objectSpread(_objectSpread({}, sourceProduct), booking.product), {}, {
29
- product_id: (_ref2 = (_product$product_id = product.product_id) !== null && _product$product_id !== void 0 ? _product$product_id : sourceProduct.product_id) !== null && _ref2 !== void 0 ? _ref2 : sourceProduct.id,
30
- id: (_sourceProduct$id = sourceProduct.id) !== null && _sourceProduct$id !== void 0 ? _sourceProduct$id : product.product_id,
31
- collection: sourceProduct.collection || ((_booking$product = booking.product) === null || _booking$product === void 0 ? void 0 : _booking$product.collection) || [],
32
- duration: sourceProduct.duration || booking.duration,
33
- _extend: _objectSpread(_objectSpread({}, sourceProduct._extend || {}), {}, {
34
- startDate: startAt ? dayjs(startAt) : undefined,
35
- endDate: endAt ? dayjs(endAt) : undefined,
36
- start_date: booking.start_date,
37
- end_date: booking.end_date,
38
- start_time: booking.start_time,
39
- end_time: booking.end_time,
40
- sub_type: booking.sub_type
41
- })
42
- });
43
- }
44
-
45
- /**
46
- * 判断当前 booking 是否允许打开加时入口,保持与旧 ticketBooking 的商品适用规则一致。
47
- *
48
- * @example
49
- * const canAddTime = resolveBookingCanAddTime({ booking, product, addTimeProducts, bookingConfig });
50
- */
51
- export function resolveBookingCanAddTime(params) {
52
- var _params$bookingConfig;
53
- var quickTime = (_params$bookingConfig = params.bookingConfig) === null || _params$bookingConfig === void 0 || (_params$bookingConfig = _params$bookingConfig.config) === null || _params$bookingConfig === void 0 || (_params$bookingConfig = _params$bookingConfig.information_tab) === null || _params$bookingConfig === void 0 || (_params$bookingConfig = _params$bookingConfig.appointment_card) === null || _params$bookingConfig === void 0 ? void 0 : _params$bookingConfig.quick_time;
54
- if (quickTime !== undefined && quickTime !== 1) return false;
55
- var currentItem = buildAddTimeCurrentItem(params);
56
- if (!currentItem || isMultiDayProduct(currentItem)) return false;
57
- return (params.addTimeProducts || []).some(function (item) {
58
- return isUsableAddTimeProduct(item === null || item === void 0 ? void 0 : item.add_time, currentItem, params.shopOpeningHours);
59
- });
60
- }
61
-
62
- /**
63
- * 判断一个加时商品是否适用于当前预约商品。
64
- *
65
- * @example
66
- * const usable = isUsableAddTimeProduct(addTime.add_time, currentItem, '23:59');
67
- */
68
- export function isUsableAddTimeProduct(addTime, currentItem, shopOpeningHours) {
69
- if (!addTime || !currentItem) return false;
70
- if (addTime.additional_time_options === 'unlimited') {
71
- var _currentItem$_extend, _currentItem$_extend2;
72
- var startDate = dayjs((_currentItem$_extend = currentItem._extend) === null || _currentItem$_extend === void 0 ? void 0 : _currentItem$_extend.startDate);
73
- var endDate = dayjs((_currentItem$_extend2 = currentItem._extend) === null || _currentItem$_extend2 === void 0 ? void 0 : _currentItem$_extend2.endDate);
74
- if (!startDate.isValid() || !endDate.isValid()) return false;
75
- var maxEndDate = getEndDate(startDate, 'flexible', '', shopOpeningHours);
76
- if (endDate.isAfter(maxEndDate)) return false;
77
- }
78
- var relationProduct = addTime.relation_product || {};
79
- var type = relationProduct.type;
80
- var products = Array.isArray(relationProduct.products) ? relationProduct.products : [];
81
- if (type === 'product_all') return true;
82
- if (type === 'product_collection') {
83
- return Boolean(intersectionBy(products.map(function (item) {
84
- return _objectSpread(_objectSpread({}, item), {}, {
85
- id: item.product_collection_id
86
- });
87
- }), currentItem.collection || [], 'id').length);
88
- }
89
- if (type === 'products') {
90
- return products.some(function (item) {
91
- return item.product_id == currentItem.product_id;
92
- });
93
- }
94
- return false;
95
- }
@@ -1,123 +0,0 @@
1
- declare let data: ({
2
- id: number;
3
- title: string;
4
- price: number;
5
- minMinutes: number;
6
- maxMinutes: number;
7
- unitMinutes: number;
8
- unlimited: boolean;
9
- _originalProduct: {
10
- id: number;
11
- extension_id: number;
12
- extension_type: string;
13
- shop_id: number;
14
- title: string;
15
- slug: string;
16
- status: string;
17
- stock_quantity: number;
18
- sales_quantity: number;
19
- sum_stock: number;
20
- price: string;
21
- original_price: string;
22
- cost_price: string;
23
- cover: string;
24
- channel_application: string[];
25
- is_track: number;
26
- over_sold: number;
27
- is_gst: number;
28
- code: string;
29
- barcode: string;
30
- is_delivery: number;
31
- weight_unit: string;
32
- weight_value: string;
33
- type: string;
34
- unit: string;
35
- sort: number;
36
- subtitle: string;
37
- minimum_markup_price: string;
38
- is_bundle: number;
39
- description: string;
40
- open_sold_weight: number;
41
- unit_value: number;
42
- is_variant: number;
43
- variant_count: number;
44
- add_time: {
45
- unit_duration: number;
46
- min_add_time: number;
47
- max_add_time: number;
48
- calculate_type: string;
49
- relation_product: {
50
- type: string;
51
- products: never[];
52
- };
53
- additional_time_options?: undefined;
54
- };
55
- shelf_product_datas: never[];
56
- step_value: number;
57
- min_num_unit: number;
58
- is_charge_tax: number;
59
- base_price: string;
60
- variant: never[];
61
- };
62
- } | {
63
- id: number;
64
- title: string;
65
- price: number;
66
- minMinutes: number;
67
- maxMinutes: number;
68
- unitMinutes: number;
69
- unlimited: boolean;
70
- _originalProduct: {
71
- id: number;
72
- extension_id: number;
73
- extension_type: string;
74
- shop_id: number;
75
- title: string;
76
- slug: string;
77
- status: string;
78
- stock_quantity: number;
79
- sales_quantity: number;
80
- sum_stock: number;
81
- price: string;
82
- original_price: string;
83
- cost_price: string;
84
- cover: string;
85
- channel_application: string[];
86
- is_track: number;
87
- over_sold: number;
88
- is_gst: number;
89
- code: string;
90
- barcode: string;
91
- is_delivery: number;
92
- weight_unit: string;
93
- weight_value: string;
94
- type: string;
95
- unit: string;
96
- sort: number;
97
- subtitle: string;
98
- minimum_markup_price: string;
99
- is_bundle: number;
100
- description: string;
101
- open_sold_weight: number;
102
- unit_value: number;
103
- is_variant: number;
104
- variant_count: number;
105
- add_time: {
106
- additional_time_options: string;
107
- unit_duration: number;
108
- min_add_time: number;
109
- max_add_time: number;
110
- calculate_type: string;
111
- relation_product: {
112
- type: string;
113
- products: never[];
114
- };
115
- };
116
- shelf_product_datas: never[];
117
- step_value: number;
118
- min_num_unit: number;
119
- is_charge_tax: number;
120
- base_price: string;
121
- variant: never[];
122
- };
123
- })[];