@pisell/pisellos 2.2.242 → 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 (314) 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 -3659
  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/walletPass/utils.js +2 -3
  96. package/lib/modules/Cart/utils/cartProduct.js +3 -20
  97. package/lib/modules/Cart/utils/changePrice.js +20 -12
  98. package/lib/modules/Customer/index.d.ts +0 -20
  99. package/lib/modules/Customer/index.js +11 -64
  100. package/lib/modules/Customer/types.d.ts +0 -2
  101. package/lib/modules/Discount/index.js +1 -5
  102. package/lib/modules/Discount/types.d.ts +0 -1
  103. package/lib/modules/OpenData/index.d.ts +0 -8
  104. package/lib/modules/OpenData/index.js +5 -19
  105. package/lib/modules/Order/index.d.ts +18 -268
  106. package/lib/modules/Order/index.js +344 -2149
  107. package/lib/modules/Order/types.d.ts +31 -279
  108. package/lib/modules/Order/types.js +0 -1
  109. package/lib/modules/Order/utils.d.ts +5 -147
  110. package/lib/modules/Order/utils.js +46 -614
  111. package/lib/modules/Payment/index.d.ts +13 -10
  112. package/lib/modules/Payment/index.js +150 -18
  113. package/lib/modules/Payment/types.d.ts +0 -2
  114. package/lib/modules/Payment/utils.js +1 -2
  115. package/lib/modules/Payment/walletpass.js +3 -7
  116. package/lib/modules/ProductList/index.d.ts +12 -16
  117. package/lib/modules/ProductList/index.js +4 -41
  118. package/lib/modules/ProductList/types.d.ts +0 -14
  119. package/lib/modules/Quotation/index.d.ts +1 -0
  120. package/lib/modules/Quotation/index.js +16 -19
  121. package/lib/modules/Rules/index.d.ts +0 -4
  122. package/lib/modules/Rules/index.js +120 -136
  123. package/lib/modules/Rules/types.d.ts +0 -1
  124. package/lib/modules/SalesSummary/index.d.ts +25 -8
  125. package/lib/modules/SalesSummary/index.js +4 -30
  126. package/lib/modules/SalesSummary/types.d.ts +1 -4
  127. package/lib/modules/SalesSummary/utils.d.ts +25 -2
  128. package/lib/modules/SalesSummary/utils.js +91 -645
  129. package/lib/modules/Schedule/index.d.ts +0 -7
  130. package/lib/modules/Schedule/index.js +1 -17
  131. package/lib/modules/Summary/index.js +4 -5
  132. package/lib/modules/index.d.ts +0 -2
  133. package/lib/modules/index.js +1 -5
  134. package/lib/plugins/request.d.ts +0 -1
  135. package/lib/server/index.d.ts +1 -204
  136. package/lib/server/index.js +57 -1889
  137. package/lib/server/modules/index.d.ts +0 -2
  138. package/lib/server/modules/index.js +0 -3
  139. package/lib/server/modules/order/index.d.ts +4 -120
  140. package/lib/server/modules/order/index.js +142 -919
  141. package/lib/server/modules/order/types.d.ts +3 -32
  142. package/lib/server/modules/order/utils/filterBookings.js +5 -24
  143. package/lib/server/modules/order/utils/filterOrders.js +6 -15
  144. package/lib/server/modules/products/index.d.ts +7 -34
  145. package/lib/server/modules/products/index.js +54 -189
  146. package/lib/server/modules/resource/index.d.ts +0 -2
  147. package/lib/server/modules/resource/index.js +3 -27
  148. package/lib/server/modules/schedule/index.d.ts +4 -4
  149. package/lib/server/modules/schedule/index.js +40 -47
  150. package/lib/solution/BaseSales/index.d.ts +9 -131
  151. package/lib/solution/BaseSales/index.js +63 -1106
  152. package/lib/solution/BaseSales/types.d.ts +6 -76
  153. package/lib/solution/BaseSales/types.js +1 -3
  154. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.d.ts +0 -1
  155. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +18 -106
  156. package/lib/solution/BaseSales/utils.d.ts +1 -1
  157. package/lib/solution/BaseSales/utils.js +10 -54
  158. package/lib/solution/BookingByStep/index.d.ts +1 -1
  159. package/lib/solution/BookingTicket/index.d.ts +10 -270
  160. package/lib/solution/BookingTicket/index.js +29 -922
  161. package/lib/solution/BookingTicket/types.d.ts +1 -118
  162. package/lib/solution/BookingTicket/types.js +0 -11
  163. package/lib/solution/BookingTicket/utils/bookingStatus.d.ts +0 -40
  164. package/lib/solution/BookingTicket/utils/bookingStatus.js +2 -44
  165. package/lib/solution/BookingTicket/utils/cartView.d.ts +1 -9
  166. package/lib/solution/BookingTicket/utils/cartView.js +6 -61
  167. package/lib/solution/BookingTicket/utils/scan/index.d.ts +0 -5
  168. package/lib/solution/BookingTicket/utils/scan/index.js +3 -17
  169. package/lib/solution/Checkout/appointmentDemo.json +1 -0
  170. package/lib/solution/Checkout/index.d.ts +0 -1
  171. package/lib/solution/Checkout/index.js +2 -1
  172. package/lib/solution/RegisterAndLogin/config.js +10 -2
  173. package/lib/solution/ScanOrder/index.d.ts +3 -9
  174. package/lib/solution/ScanOrder/index.js +70 -153
  175. package/lib/solution/ScanOrder/types.d.ts +5 -9
  176. package/lib/solution/ScanOrder/utils.d.ts +1 -1
  177. package/lib/solution/ScanOrder/utils.js +17 -83
  178. package/lib/solution/VenueBooking/index.d.ts +2 -5
  179. package/lib/solution/VenueBooking/index.js +17 -54
  180. package/lib/solution/VenueBooking/sales-section-4-annotated.json +2 -0
  181. package/lib/solution/VenueBooking/utils/slotMerge.d.ts +0 -4
  182. package/lib/solution/VenueBooking/utils/slotMerge.js +0 -10
  183. package/lib/types/index.d.ts +0 -10
  184. package/package.json +1 -1
  185. package/dist/modules/BookingContext/index.d.ts +0 -48
  186. package/dist/modules/BookingContext/index.js +0 -566
  187. package/dist/modules/BookingContext/types.d.ts +0 -102
  188. package/dist/modules/BookingContext/types.js +0 -51
  189. package/dist/modules/BookingContext/utils/buildCacheItemFromOrderLine.d.ts +0 -16
  190. package/dist/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +0 -284
  191. package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.d.ts +0 -8
  192. package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +0 -145
  193. package/dist/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +0 -76
  194. package/dist/modules/BookingContext/utils/cacheItemToBookingInput.js +0 -218
  195. package/dist/modules/BookingContext/utils/flexible.d.ts +0 -28
  196. package/dist/modules/BookingContext/utils/flexible.js +0 -56
  197. package/dist/modules/BookingContext/utils/formatResourceList.d.ts +0 -8
  198. package/dist/modules/BookingContext/utils/formatResourceList.js +0 -38
  199. package/dist/modules/BookingContext/utils/index.d.ts +0 -11
  200. package/dist/modules/BookingContext/utils/index.js +0 -11
  201. package/dist/modules/BookingContext/utils/noResource.d.ts +0 -13
  202. package/dist/modules/BookingContext/utils/noResource.js +0 -77
  203. package/dist/modules/BookingContext/utils/orderLineDisplay.d.ts +0 -1
  204. package/dist/modules/BookingContext/utils/orderLineDisplay.js +0 -36
  205. package/dist/modules/BookingContext/utils/productExtend.d.ts +0 -72
  206. package/dist/modules/BookingContext/utils/productExtend.js +0 -339
  207. package/dist/modules/BookingContext/utils/resourceErrors.d.ts +0 -41
  208. package/dist/modules/BookingContext/utils/resourceErrors.js +0 -74
  209. package/dist/modules/BookingContext/utils/resourceSelection.d.ts +0 -7
  210. package/dist/modules/BookingContext/utils/resourceSelection.js +0 -24
  211. package/dist/modules/BookingContext/utils/resources.d.ts +0 -80
  212. package/dist/modules/BookingContext/utils/resources.js +0 -486
  213. package/dist/modules/BookingContext/utils/serviceTimes.d.ts +0 -55
  214. package/dist/modules/BookingContext/utils/serviceTimes.js +0 -151
  215. package/dist/modules/BookingContext/utils/timeSlices.d.ts +0 -42
  216. package/dist/modules/BookingContext/utils/timeSlices.js +0 -100
  217. package/dist/modules/Order/utils/manualProductDiscount.d.ts +0 -106
  218. package/dist/modules/Order/utils/manualProductDiscount.js +0 -210
  219. package/dist/modules/SurchargeList/index.d.ts +0 -16
  220. package/dist/modules/SurchargeList/index.js +0 -162
  221. package/dist/modules/SurchargeList/types.d.ts +0 -11
  222. package/dist/modules/SurchargeList/types.js +0 -1
  223. package/dist/server/modules/payment/index.d.ts +0 -28
  224. package/dist/server/modules/payment/index.js +0 -305
  225. package/dist/server/modules/payment/types.d.ts +0 -9
  226. package/dist/server/modules/payment/types.js +0 -1
  227. package/dist/server/test.json +0 -713
  228. package/dist/server/utils/small-ticket.d.ts +0 -71
  229. package/dist/server/utils/small-ticket.js +0 -830
  230. package/dist/solution/BaseSales/utils/cartPromotion.d.ts +0 -287
  231. package/dist/solution/BaseSales/utils/cartPromotion.js +0 -1438
  232. package/dist/solution/BaseSales/utils/quotationPrice.d.ts +0 -7
  233. package/dist/solution/BaseSales/utils/quotationPrice.js +0 -237
  234. package/dist/solution/BookingTicket/utils/addProductDecision.d.ts +0 -117
  235. package/dist/solution/BookingTicket/utils/addProductDecision.js +0 -346
  236. package/dist/solution/BookingTicket/utils/addTimeAvailability.d.ts +0 -35
  237. package/dist/solution/BookingTicket/utils/addTimeAvailability.js +0 -95
  238. package/dist/solution/BookingTicket/utils/exampleData.d.ts +0 -123
  239. package/dist/solution/BookingTicket/utils/exampleData.js +0 -183
  240. package/dist/solution/BookingTicket/utils/resolveBestAddTimePlan.d.ts +0 -185
  241. package/dist/solution/BookingTicket/utils/resolveBestAddTimePlan.js +0 -438
  242. package/dist/solution/BookingTicket/utils/scan/applyGlobalScan.d.ts +0 -36
  243. package/dist/solution/BookingTicket/utils/scan/applyGlobalScan.js +0 -399
  244. package/dist/solution/BookingTicket/utils/scan/formatGlobalScan.d.ts +0 -32
  245. package/dist/solution/BookingTicket/utils/scan/formatGlobalScan.js +0 -56
  246. package/dist/solution/BookingTicket/utils/scan/scanProductValues.d.ts +0 -21
  247. package/dist/solution/BookingTicket/utils/scan/scanProductValues.js +0 -150
  248. package/dist/solution/BookingTicket/utils/sessionCatalogStale.d.ts +0 -23
  249. package/dist/solution/BookingTicket/utils/sessionCatalogStale.js +0 -78
  250. package/lib/modules/BookingContext/index.d.ts +0 -48
  251. package/lib/modules/BookingContext/index.js +0 -368
  252. package/lib/modules/BookingContext/types.d.ts +0 -102
  253. package/lib/modules/BookingContext/types.js +0 -34
  254. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.d.ts +0 -16
  255. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +0 -276
  256. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.d.ts +0 -8
  257. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +0 -151
  258. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +0 -76
  259. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +0 -201
  260. package/lib/modules/BookingContext/utils/flexible.d.ts +0 -28
  261. package/lib/modules/BookingContext/utils/flexible.js +0 -80
  262. package/lib/modules/BookingContext/utils/formatResourceList.d.ts +0 -8
  263. package/lib/modules/BookingContext/utils/formatResourceList.js +0 -50
  264. package/lib/modules/BookingContext/utils/index.d.ts +0 -11
  265. package/lib/modules/BookingContext/utils/index.js +0 -43
  266. package/lib/modules/BookingContext/utils/noResource.d.ts +0 -13
  267. package/lib/modules/BookingContext/utils/noResource.js +0 -90
  268. package/lib/modules/BookingContext/utils/orderLineDisplay.d.ts +0 -1
  269. package/lib/modules/BookingContext/utils/orderLineDisplay.js +0 -56
  270. package/lib/modules/BookingContext/utils/productExtend.d.ts +0 -72
  271. package/lib/modules/BookingContext/utils/productExtend.js +0 -283
  272. package/lib/modules/BookingContext/utils/resourceErrors.d.ts +0 -41
  273. package/lib/modules/BookingContext/utils/resourceErrors.js +0 -80
  274. package/lib/modules/BookingContext/utils/resourceSelection.d.ts +0 -7
  275. package/lib/modules/BookingContext/utils/resourceSelection.js +0 -46
  276. package/lib/modules/BookingContext/utils/resources.d.ts +0 -80
  277. package/lib/modules/BookingContext/utils/resources.js +0 -377
  278. package/lib/modules/BookingContext/utils/serviceTimes.d.ts +0 -55
  279. package/lib/modules/BookingContext/utils/serviceTimes.js +0 -162
  280. package/lib/modules/BookingContext/utils/timeSlices.d.ts +0 -42
  281. package/lib/modules/BookingContext/utils/timeSlices.js +0 -124
  282. package/lib/modules/Order/utils/manualProductDiscount.d.ts +0 -106
  283. package/lib/modules/Order/utils/manualProductDiscount.js +0 -206
  284. package/lib/modules/SurchargeList/index.d.ts +0 -16
  285. package/lib/modules/SurchargeList/index.js +0 -89
  286. package/lib/modules/SurchargeList/types.d.ts +0 -11
  287. package/lib/modules/SurchargeList/types.js +0 -17
  288. package/lib/server/modules/payment/index.d.ts +0 -28
  289. package/lib/server/modules/payment/index.js +0 -192
  290. package/lib/server/modules/payment/types.d.ts +0 -9
  291. package/lib/server/modules/payment/types.js +0 -17
  292. package/lib/server/test.json +0 -713
  293. package/lib/server/utils/small-ticket.d.ts +0 -71
  294. package/lib/server/utils/small-ticket.js +0 -781
  295. package/lib/solution/BaseSales/utils/cartPromotion.d.ts +0 -287
  296. package/lib/solution/BaseSales/utils/cartPromotion.js +0 -992
  297. package/lib/solution/BaseSales/utils/quotationPrice.d.ts +0 -7
  298. package/lib/solution/BaseSales/utils/quotationPrice.js +0 -277
  299. package/lib/solution/BookingTicket/utils/addProductDecision.d.ts +0 -117
  300. package/lib/solution/BookingTicket/utils/addProductDecision.js +0 -318
  301. package/lib/solution/BookingTicket/utils/addTimeAvailability.d.ts +0 -35
  302. package/lib/solution/BookingTicket/utils/addTimeAvailability.js +0 -125
  303. package/lib/solution/BookingTicket/utils/exampleData.d.ts +0 -123
  304. package/lib/solution/BookingTicket/utils/exampleData.js +0 -0
  305. package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.d.ts +0 -185
  306. package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +0 -254
  307. package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.d.ts +0 -36
  308. package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +0 -168
  309. package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.d.ts +0 -32
  310. package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +0 -51
  311. package/lib/solution/BookingTicket/utils/scan/scanProductValues.d.ts +0 -21
  312. package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +0 -127
  313. package/lib/solution/BookingTicket/utils/sessionCatalogStale.d.ts +0 -23
  314. 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
- })[];