@pisell/pisellos 2.2.244 → 2.2.246

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 (316) hide show
  1. package/dist/model/strategy/adapter/promotion/evaluator.js +3 -2
  2. package/dist/model/strategy/adapter/walletPass/utils.js +7 -4
  3. package/dist/modules/BookingContext/index.d.ts +48 -0
  4. package/dist/modules/BookingContext/index.js +566 -0
  5. package/dist/modules/BookingContext/types.d.ts +102 -0
  6. package/dist/modules/BookingContext/types.js +51 -0
  7. package/dist/modules/BookingContext/utils/buildCacheItemFromOrderLine.d.ts +16 -0
  8. package/dist/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +284 -0
  9. package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.d.ts +8 -0
  10. package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +148 -0
  11. package/dist/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +76 -0
  12. package/dist/modules/BookingContext/utils/cacheItemToBookingInput.js +218 -0
  13. package/dist/modules/BookingContext/utils/flexible.d.ts +28 -0
  14. package/dist/modules/BookingContext/utils/flexible.js +56 -0
  15. package/dist/modules/BookingContext/utils/formatResourceList.d.ts +8 -0
  16. package/dist/modules/BookingContext/utils/formatResourceList.js +38 -0
  17. package/dist/modules/BookingContext/utils/index.d.ts +11 -0
  18. package/dist/modules/BookingContext/utils/index.js +11 -0
  19. package/dist/modules/BookingContext/utils/noResource.d.ts +13 -0
  20. package/dist/modules/BookingContext/utils/noResource.js +77 -0
  21. package/dist/modules/BookingContext/utils/orderLineDisplay.d.ts +1 -0
  22. package/dist/modules/BookingContext/utils/orderLineDisplay.js +36 -0
  23. package/dist/modules/BookingContext/utils/productExtend.d.ts +72 -0
  24. package/dist/modules/BookingContext/utils/productExtend.js +339 -0
  25. package/dist/modules/BookingContext/utils/resourceErrors.d.ts +41 -0
  26. package/dist/modules/BookingContext/utils/resourceErrors.js +74 -0
  27. package/dist/modules/BookingContext/utils/resourceSelection.d.ts +7 -0
  28. package/dist/modules/BookingContext/utils/resourceSelection.js +24 -0
  29. package/dist/modules/BookingContext/utils/resources.d.ts +80 -0
  30. package/dist/modules/BookingContext/utils/resources.js +486 -0
  31. package/dist/modules/BookingContext/utils/serviceTimes.d.ts +55 -0
  32. package/dist/modules/BookingContext/utils/serviceTimes.js +151 -0
  33. package/dist/modules/BookingContext/utils/timeSlices.d.ts +42 -0
  34. package/dist/modules/BookingContext/utils/timeSlices.js +100 -0
  35. package/dist/modules/Cart/utils/cartProduct.js +24 -3
  36. package/dist/modules/Cart/utils/changePrice.js +11 -11
  37. package/dist/modules/Customer/index.d.ts +20 -0
  38. package/dist/modules/Customer/index.js +172 -83
  39. package/dist/modules/Customer/types.d.ts +2 -0
  40. package/dist/modules/Discount/index.d.ts +1 -1
  41. package/dist/modules/Discount/index.js +13 -6
  42. package/dist/modules/Discount/types.d.ts +1 -0
  43. package/dist/modules/OpenData/index.d.ts +8 -0
  44. package/dist/modules/OpenData/index.js +37 -17
  45. package/dist/modules/Order/index.d.ts +277 -18
  46. package/dist/modules/Order/index.js +3581 -779
  47. package/dist/modules/Order/types.d.ts +286 -31
  48. package/dist/modules/Order/types.js +38 -0
  49. package/dist/modules/Order/utils/manualProductDiscount.d.ts +106 -0
  50. package/dist/modules/Order/utils/manualProductDiscount.js +210 -0
  51. package/dist/modules/Order/utils.d.ts +147 -5
  52. package/dist/modules/Order/utils.js +750 -104
  53. package/dist/modules/Payment/index.d.ts +10 -13
  54. package/dist/modules/Payment/index.js +467 -837
  55. package/dist/modules/Payment/types.d.ts +2 -0
  56. package/dist/modules/Payment/utils.js +2 -1
  57. package/dist/modules/Payment/walletpass.js +41 -25
  58. package/dist/modules/ProductList/index.d.ts +16 -12
  59. package/dist/modules/ProductList/index.js +133 -59
  60. package/dist/modules/ProductList/types.d.ts +14 -0
  61. package/dist/modules/Quotation/index.d.ts +0 -1
  62. package/dist/modules/Quotation/index.js +25 -22
  63. package/dist/modules/Rules/index.d.ts +4 -0
  64. package/dist/modules/Rules/index.js +97 -70
  65. package/dist/modules/Rules/types.d.ts +1 -0
  66. package/dist/modules/SalesSummary/index.d.ts +8 -25
  67. package/dist/modules/SalesSummary/index.js +86 -35
  68. package/dist/modules/SalesSummary/types.d.ts +4 -1
  69. package/dist/modules/SalesSummary/utils.d.ts +2 -25
  70. package/dist/modules/SalesSummary/utils.js +794 -162
  71. package/dist/modules/Schedule/index.d.ts +7 -0
  72. package/dist/modules/Schedule/index.js +24 -2
  73. package/dist/modules/Summary/index.js +4 -3
  74. package/dist/modules/SurchargeList/index.d.ts +16 -0
  75. package/dist/modules/SurchargeList/index.js +162 -0
  76. package/dist/modules/SurchargeList/types.d.ts +11 -0
  77. package/dist/modules/SurchargeList/types.js +1 -0
  78. package/dist/modules/index.d.ts +2 -0
  79. package/dist/modules/index.js +3 -1
  80. package/dist/plugins/request.d.ts +1 -0
  81. package/dist/server/index.d.ts +204 -1
  82. package/dist/server/index.js +3654 -922
  83. package/dist/server/modules/index.d.ts +2 -0
  84. package/dist/server/modules/index.js +2 -0
  85. package/dist/server/modules/order/index.d.ts +120 -3
  86. package/dist/server/modules/order/index.js +1762 -448
  87. package/dist/server/modules/order/types.d.ts +32 -3
  88. package/dist/server/modules/order/types.js +8 -0
  89. package/dist/server/modules/order/utils/filterBookings.js +26 -3
  90. package/dist/server/modules/order/utils/filterOrders.js +23 -8
  91. package/dist/server/modules/payment/index.d.ts +28 -0
  92. package/dist/server/modules/payment/index.js +305 -0
  93. package/dist/server/modules/payment/types.d.ts +9 -0
  94. package/dist/server/modules/payment/types.js +1 -0
  95. package/dist/server/modules/products/index.d.ts +34 -7
  96. package/dist/server/modules/products/index.js +631 -317
  97. package/dist/server/modules/resource/index.d.ts +2 -0
  98. package/dist/server/modules/resource/index.js +29 -3
  99. package/dist/server/modules/schedule/index.d.ts +4 -4
  100. package/dist/server/modules/schedule/index.js +111 -88
  101. package/dist/server/test.json +713 -0
  102. package/dist/server/utils/small-ticket.d.ts +71 -0
  103. package/dist/server/utils/small-ticket.js +840 -0
  104. package/dist/solution/BaseSales/index.d.ts +133 -10
  105. package/dist/solution/BaseSales/index.js +1950 -447
  106. package/dist/solution/BaseSales/types.d.ts +82 -6
  107. package/dist/solution/BaseSales/types.js +5 -4
  108. package/dist/solution/BaseSales/utils/cartPromotion.d.ts +287 -0
  109. package/dist/solution/BaseSales/utils/cartPromotion.js +1438 -0
  110. package/dist/solution/BaseSales/utils/quotationPrice.d.ts +7 -0
  111. package/dist/solution/BaseSales/utils/quotationPrice.js +237 -0
  112. package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.d.ts +1 -0
  113. package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +105 -24
  114. package/dist/solution/BaseSales/utils.d.ts +1 -1
  115. package/dist/solution/BaseSales/utils.js +62 -21
  116. package/dist/solution/BookingByStep/index.d.ts +1 -1
  117. package/dist/solution/BookingTicket/index.d.ts +271 -11
  118. package/dist/solution/BookingTicket/index.js +1777 -242
  119. package/dist/solution/BookingTicket/types.d.ts +118 -1
  120. package/dist/solution/BookingTicket/types.js +41 -2
  121. package/dist/solution/BookingTicket/utils/addProductDecision.d.ts +117 -0
  122. package/dist/solution/BookingTicket/utils/addProductDecision.js +346 -0
  123. package/dist/solution/BookingTicket/utils/addTimeAvailability.d.ts +35 -0
  124. package/dist/solution/BookingTicket/utils/addTimeAvailability.js +95 -0
  125. package/dist/solution/BookingTicket/utils/bookingStatus.d.ts +40 -0
  126. package/dist/solution/BookingTicket/utils/bookingStatus.js +70 -0
  127. package/dist/solution/BookingTicket/utils/cartView.d.ts +9 -1
  128. package/dist/solution/BookingTicket/utils/cartView.js +94 -7
  129. package/dist/solution/BookingTicket/utils/exampleData.d.ts +123 -0
  130. package/dist/solution/BookingTicket/utils/exampleData.js +183 -0
  131. package/dist/solution/BookingTicket/utils/resolveBestAddTimePlan.d.ts +185 -0
  132. package/dist/solution/BookingTicket/utils/resolveBestAddTimePlan.js +438 -0
  133. package/dist/solution/BookingTicket/utils/scan/applyGlobalScan.d.ts +36 -0
  134. package/dist/solution/BookingTicket/utils/scan/applyGlobalScan.js +400 -0
  135. package/dist/solution/BookingTicket/utils/scan/formatGlobalScan.d.ts +32 -0
  136. package/dist/solution/BookingTicket/utils/scan/formatGlobalScan.js +56 -0
  137. package/dist/solution/BookingTicket/utils/scan/index.d.ts +5 -0
  138. package/dist/solution/BookingTicket/utils/scan/index.js +20 -8
  139. package/dist/solution/BookingTicket/utils/scan/scanProductValues.d.ts +21 -0
  140. package/dist/solution/BookingTicket/utils/scan/scanProductValues.js +150 -0
  141. package/dist/solution/BookingTicket/utils/sessionCatalogStale.d.ts +23 -0
  142. package/dist/solution/BookingTicket/utils/sessionCatalogStale.js +78 -0
  143. package/dist/solution/Checkout/index.d.ts +1 -0
  144. package/dist/solution/Checkout/index.js +10 -9
  145. package/dist/solution/RegisterAndLogin/config.js +2 -10
  146. package/dist/solution/ScanOrder/index.d.ts +9 -3
  147. package/dist/solution/ScanOrder/index.js +241 -134
  148. package/dist/solution/ScanOrder/types.d.ts +9 -5
  149. package/dist/solution/ScanOrder/types.js +2 -3
  150. package/dist/solution/ScanOrder/utils.d.ts +1 -1
  151. package/dist/solution/ScanOrder/utils.js +84 -22
  152. package/dist/solution/VenueBooking/index.d.ts +5 -2
  153. package/dist/solution/VenueBooking/index.js +110 -59
  154. package/dist/solution/VenueBooking/sales-section-4-annotated.json +0 -2
  155. package/dist/solution/VenueBooking/utils/slotMerge.d.ts +4 -0
  156. package/dist/solution/VenueBooking/utils/slotMerge.js +10 -0
  157. package/dist/types/index.d.ts +10 -0
  158. package/lib/model/strategy/adapter/promotion/evaluator.js +2 -1
  159. package/lib/model/strategy/adapter/promotion/index.js +49 -0
  160. package/lib/model/strategy/adapter/walletPass/utils.js +3 -2
  161. package/lib/modules/BookingContext/index.d.ts +48 -0
  162. package/lib/modules/BookingContext/index.js +368 -0
  163. package/lib/modules/BookingContext/types.d.ts +102 -0
  164. package/lib/modules/BookingContext/types.js +34 -0
  165. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.d.ts +16 -0
  166. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +276 -0
  167. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.d.ts +8 -0
  168. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +154 -0
  169. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +76 -0
  170. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +201 -0
  171. package/lib/modules/BookingContext/utils/flexible.d.ts +28 -0
  172. package/lib/modules/BookingContext/utils/flexible.js +80 -0
  173. package/lib/modules/BookingContext/utils/formatResourceList.d.ts +8 -0
  174. package/lib/modules/BookingContext/utils/formatResourceList.js +50 -0
  175. package/lib/modules/BookingContext/utils/index.d.ts +11 -0
  176. package/lib/modules/BookingContext/utils/index.js +43 -0
  177. package/lib/modules/BookingContext/utils/noResource.d.ts +13 -0
  178. package/lib/modules/BookingContext/utils/noResource.js +90 -0
  179. package/lib/modules/BookingContext/utils/orderLineDisplay.d.ts +1 -0
  180. package/lib/modules/BookingContext/utils/orderLineDisplay.js +56 -0
  181. package/lib/modules/BookingContext/utils/productExtend.d.ts +72 -0
  182. package/lib/modules/BookingContext/utils/productExtend.js +283 -0
  183. package/lib/modules/BookingContext/utils/resourceErrors.d.ts +41 -0
  184. package/lib/modules/BookingContext/utils/resourceErrors.js +80 -0
  185. package/lib/modules/BookingContext/utils/resourceSelection.d.ts +7 -0
  186. package/lib/modules/BookingContext/utils/resourceSelection.js +46 -0
  187. package/lib/modules/BookingContext/utils/resources.d.ts +80 -0
  188. package/lib/modules/BookingContext/utils/resources.js +377 -0
  189. package/lib/modules/BookingContext/utils/serviceTimes.d.ts +55 -0
  190. package/lib/modules/BookingContext/utils/serviceTimes.js +162 -0
  191. package/lib/modules/BookingContext/utils/timeSlices.d.ts +42 -0
  192. package/lib/modules/BookingContext/utils/timeSlices.js +124 -0
  193. package/lib/modules/Cart/utils/cartProduct.js +20 -3
  194. package/lib/modules/Cart/utils/changePrice.js +12 -20
  195. package/lib/modules/Customer/index.d.ts +20 -0
  196. package/lib/modules/Customer/index.js +64 -11
  197. package/lib/modules/Customer/types.d.ts +2 -0
  198. package/lib/modules/Discount/index.d.ts +1 -1
  199. package/lib/modules/Discount/index.js +9 -1
  200. package/lib/modules/Discount/types.d.ts +1 -0
  201. package/lib/modules/OpenData/index.d.ts +8 -0
  202. package/lib/modules/OpenData/index.js +19 -5
  203. package/lib/modules/Order/index.d.ts +277 -18
  204. package/lib/modules/Order/index.js +2317 -337
  205. package/lib/modules/Order/types.d.ts +286 -31
  206. package/lib/modules/Order/types.js +1 -0
  207. package/lib/modules/Order/utils/manualProductDiscount.d.ts +106 -0
  208. package/lib/modules/Order/utils/manualProductDiscount.js +206 -0
  209. package/lib/modules/Order/utils.d.ts +147 -5
  210. package/lib/modules/Order/utils.js +615 -46
  211. package/lib/modules/Payment/index.d.ts +10 -13
  212. package/lib/modules/Payment/index.js +18 -150
  213. package/lib/modules/Payment/types.d.ts +2 -0
  214. package/lib/modules/Payment/utils.js +2 -1
  215. package/lib/modules/Payment/walletpass.js +16 -3
  216. package/lib/modules/ProductList/index.d.ts +16 -12
  217. package/lib/modules/ProductList/index.js +41 -4
  218. package/lib/modules/ProductList/types.d.ts +14 -0
  219. package/lib/modules/Quotation/index.d.ts +0 -1
  220. package/lib/modules/Quotation/index.js +19 -16
  221. package/lib/modules/Rules/index.d.ts +4 -0
  222. package/lib/modules/Rules/index.js +137 -120
  223. package/lib/modules/Rules/types.d.ts +1 -0
  224. package/lib/modules/SalesSummary/index.d.ts +8 -25
  225. package/lib/modules/SalesSummary/index.js +30 -4
  226. package/lib/modules/SalesSummary/types.d.ts +4 -1
  227. package/lib/modules/SalesSummary/utils.d.ts +2 -25
  228. package/lib/modules/SalesSummary/utils.js +645 -91
  229. package/lib/modules/Schedule/index.d.ts +7 -0
  230. package/lib/modules/Schedule/index.js +17 -1
  231. package/lib/modules/Summary/index.js +5 -4
  232. package/lib/modules/SurchargeList/index.d.ts +16 -0
  233. package/lib/modules/SurchargeList/index.js +89 -0
  234. package/lib/modules/SurchargeList/types.d.ts +11 -0
  235. package/lib/modules/SurchargeList/types.js +17 -0
  236. package/lib/modules/index.d.ts +2 -0
  237. package/lib/modules/index.js +5 -1
  238. package/lib/plugins/request.d.ts +1 -0
  239. package/lib/server/index.d.ts +204 -1
  240. package/lib/server/index.js +1891 -59
  241. package/lib/server/modules/index.d.ts +2 -0
  242. package/lib/server/modules/index.js +3 -0
  243. package/lib/server/modules/order/index.d.ts +120 -3
  244. package/lib/server/modules/order/index.js +887 -94
  245. package/lib/server/modules/order/types.d.ts +32 -3
  246. package/lib/server/modules/order/utils/filterBookings.js +24 -5
  247. package/lib/server/modules/order/utils/filterOrders.js +15 -6
  248. package/lib/server/modules/payment/index.d.ts +28 -0
  249. package/lib/server/modules/payment/index.js +192 -0
  250. package/lib/server/modules/payment/types.d.ts +9 -0
  251. package/lib/server/modules/payment/types.js +17 -0
  252. package/lib/server/modules/products/index.d.ts +34 -7
  253. package/lib/server/modules/products/index.js +189 -54
  254. package/lib/server/modules/resource/index.d.ts +2 -0
  255. package/lib/server/modules/resource/index.js +27 -3
  256. package/lib/server/modules/schedule/index.d.ts +4 -4
  257. package/lib/server/modules/schedule/index.js +47 -40
  258. package/lib/server/test.json +713 -0
  259. package/lib/server/utils/small-ticket.d.ts +71 -0
  260. package/lib/server/utils/small-ticket.js +800 -0
  261. package/lib/solution/BaseSales/index.d.ts +133 -10
  262. package/lib/solution/BaseSales/index.js +1111 -63
  263. package/lib/solution/BaseSales/types.d.ts +82 -6
  264. package/lib/solution/BaseSales/types.js +3 -1
  265. package/lib/solution/BaseSales/utils/cartPromotion.d.ts +287 -0
  266. package/lib/solution/BaseSales/utils/cartPromotion.js +992 -0
  267. package/lib/solution/BaseSales/utils/quotationPrice.d.ts +7 -0
  268. package/lib/solution/BaseSales/utils/quotationPrice.js +277 -0
  269. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.d.ts +1 -0
  270. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +106 -18
  271. package/lib/solution/BaseSales/utils.d.ts +1 -1
  272. package/lib/solution/BaseSales/utils.js +54 -10
  273. package/lib/solution/BookingByStep/index.d.ts +1 -1
  274. package/lib/solution/BookingTicket/index.d.ts +271 -11
  275. package/lib/solution/BookingTicket/index.js +922 -29
  276. package/lib/solution/BookingTicket/types.d.ts +118 -1
  277. package/lib/solution/BookingTicket/types.js +11 -0
  278. package/lib/solution/BookingTicket/utils/addProductDecision.d.ts +117 -0
  279. package/lib/solution/BookingTicket/utils/addProductDecision.js +318 -0
  280. package/lib/solution/BookingTicket/utils/addTimeAvailability.d.ts +35 -0
  281. package/lib/solution/BookingTicket/utils/addTimeAvailability.js +125 -0
  282. package/lib/solution/BookingTicket/utils/bookingStatus.d.ts +40 -0
  283. package/lib/solution/BookingTicket/utils/bookingStatus.js +44 -2
  284. package/lib/solution/BookingTicket/utils/cartView.d.ts +9 -1
  285. package/lib/solution/BookingTicket/utils/cartView.js +61 -6
  286. package/lib/solution/BookingTicket/utils/exampleData.d.ts +123 -0
  287. package/lib/solution/BookingTicket/utils/exampleData.js +0 -0
  288. package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.d.ts +185 -0
  289. package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +254 -0
  290. package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.d.ts +36 -0
  291. package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +169 -0
  292. package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.d.ts +32 -0
  293. package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +51 -0
  294. package/lib/solution/BookingTicket/utils/scan/index.d.ts +5 -0
  295. package/lib/solution/BookingTicket/utils/scan/index.js +17 -3
  296. package/lib/solution/BookingTicket/utils/scan/scanProductValues.d.ts +21 -0
  297. package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +127 -0
  298. package/lib/solution/BookingTicket/utils/sessionCatalogStale.d.ts +23 -0
  299. package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +85 -0
  300. package/lib/solution/Checkout/index.d.ts +1 -0
  301. package/lib/solution/Checkout/index.js +1 -2
  302. package/lib/solution/RegisterAndLogin/config.js +2 -10
  303. package/lib/solution/ScanOrder/index.d.ts +9 -3
  304. package/lib/solution/ScanOrder/index.js +153 -70
  305. package/lib/solution/ScanOrder/types.d.ts +9 -5
  306. package/lib/solution/ScanOrder/utils.d.ts +1 -1
  307. package/lib/solution/ScanOrder/utils.js +83 -17
  308. package/lib/solution/VenueBooking/index.d.ts +5 -2
  309. package/lib/solution/VenueBooking/index.js +54 -17
  310. package/lib/solution/VenueBooking/sales-section-4-annotated.json +0 -2
  311. package/lib/solution/VenueBooking/utils/slotMerge.d.ts +4 -0
  312. package/lib/solution/VenueBooking/utils/slotMerge.js +10 -0
  313. package/lib/types/index.d.ts +10 -0
  314. package/package.json +1 -1
  315. package/dist/solution/Checkout/appointmentDemo.json +0 -1
  316. package/lib/solution/Checkout/appointmentDemo.json +0 -1
@@ -0,0 +1,566 @@
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 _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
3
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
5
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
6
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
7
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
8
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
9
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
10
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
11
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
12
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
13
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
14
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
15
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
16
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
17
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
18
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
19
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
20
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
21
+ 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; }
22
+ 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; }
23
+ 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; }
24
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
25
+ 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); }
26
+ import dayjs from 'dayjs';
27
+ import { BaseModule } from "../BaseModule";
28
+ import { RequestModeENUM } from "../../plugins/request";
29
+ import { BookingContextEvent } from "./types";
30
+ import { formatResourceListAndMap } from "./utils/formatResourceList";
31
+ export * from "./types";
32
+ export * from "./utils";
33
+ var EMPTY_STATE = {
34
+ bookingConfig: null,
35
+ resourcesOrigin: [],
36
+ resourcesOriginMap: {},
37
+ date: null
38
+ };
39
+ var DEFAULT_BOOKING_CONFIG_PARAMS = {
40
+ item_type: 'appointment_booking',
41
+ sub_type: 'ticket'
42
+ };
43
+ var BOARD_CONFIG_CACHE = {
44
+ useCache: true,
45
+ cache: {
46
+ mode: RequestModeENUM.REMOTE_LOCAL,
47
+ type: 'indexDB',
48
+ updateCache: true
49
+ }
50
+ };
51
+ var RESOURCE_LIST_CACHE = {
52
+ useCache: true,
53
+ cache: {
54
+ mode: RequestModeENUM.REMOTE_LOCAL,
55
+ type: 'memory'
56
+ }
57
+ };
58
+ var requestScopeIds = new WeakMap();
59
+ var nextRequestScopeId = 1;
60
+ var sharedBookingConfigCache = new Map();
61
+ var sharedBookingConfigPending = new Map();
62
+ var sharedResourcesCache = new Map();
63
+ var sharedResourcesPending = new Map();
64
+
65
+ /**
66
+ * 为 request 插件生成稳定作用域,避免不同 request 客户端之间共享缓存数据。
67
+ *
68
+ * @example
69
+ * const scopedKey = buildSharedCacheKey(requestPlugin, '{"sub_type":"ticket"}');
70
+ */
71
+ function getRequestScopeId(request) {
72
+ var key = request;
73
+ var existed = requestScopeIds.get(key);
74
+ if (existed) return existed;
75
+ var id = nextRequestScopeId++;
76
+ requestScopeIds.set(key, id);
77
+ return id;
78
+ }
79
+
80
+ /**
81
+ * 共享缓存 key = request 作用域 + 已稳定序列化的业务参数。
82
+ *
83
+ * @example
84
+ * const cacheKey = buildSharedCacheKey(requestPlugin, '2026-06-10|1,2');
85
+ */
86
+ function buildSharedCacheKey(request, queryKey) {
87
+ return "".concat(getRequestScopeId(request), ":").concat(queryKey);
88
+ }
89
+
90
+ /**
91
+ * 清理跨实例共享缓存,仅供单元测试隔离使用。
92
+ *
93
+ * @example
94
+ * __clearBookingContextSharedCacheForTest();
95
+ */
96
+ export function __clearBookingContextSharedCacheForTest() {
97
+ sharedBookingConfigCache.clear();
98
+ sharedBookingConfigPending.clear();
99
+ sharedResourcesCache.clear();
100
+ sharedResourcesPending.clear();
101
+ }
102
+
103
+ /**
104
+ * 把多形态 date 入参 normalize 成字符串。
105
+ * - dayjs 实例:调用 format()(无参 ISO)。
106
+ * - Date 实例:toISOString()。
107
+ * - 字符串:原样保留。
108
+ * - null/undefined/空串:→ null。
109
+ */
110
+ function normalizeDate(input) {
111
+ if (input === null || input === undefined) return null;
112
+ if (typeof input === 'string') return input || null;
113
+ if (input instanceof Date) return input.toISOString();
114
+ if (typeof input.format === 'function') {
115
+ try {
116
+ return input.format() || null;
117
+ } catch (_unused) {
118
+ return null;
119
+ }
120
+ }
121
+ return null;
122
+ }
123
+
124
+ /** 资源接口使用的 `YYYY-MM-DD` 日期串。 */
125
+ function toScheduleQueryDate(input) {
126
+ var normalized = normalizeDate(input);
127
+ if (!normalized) return dayjs().format('YYYY-MM-DD');
128
+ var parsed = dayjs(normalized);
129
+ return parsed.isValid() ? parsed.format('YYYY-MM-DD') : dayjs().format('YYYY-MM-DD');
130
+ }
131
+
132
+ /**
133
+ * 由 resources 数组派生出以 id 为 key 的 map,便于 `getResourceByIds` 直接命中。
134
+ */
135
+ function buildResourcesMap(resources) {
136
+ var map = {};
137
+ resources.forEach(function (resource) {
138
+ if (resource && resource.id !== undefined && resource.id !== null) {
139
+ map[String(resource.id)] = resource;
140
+ }
141
+ });
142
+ return map;
143
+ }
144
+
145
+ /** 稳定序列化 config 查询参数,用于判断是否与上次 loadBookingConfig 一致。 */
146
+ export function buildBookingConfigQueryKey() {
147
+ var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
148
+ var merged = _objectSpread(_objectSpread({}, DEFAULT_BOOKING_CONFIG_PARAMS), params);
149
+ var keys = Object.keys(merged).sort();
150
+ var sorted = {};
151
+ keys.forEach(function (k) {
152
+ sorted[k] = merged[k];
153
+ });
154
+ return JSON.stringify(sorted);
155
+ }
156
+
157
+ /** 稳定序列化资源列表查询(date + bookingIds),用于跳过重复 loadResources。 */
158
+ export function buildBookingResourcesQueryKey() {
159
+ var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
160
+ var date = toScheduleQueryDate(params.date);
161
+ var ids = (params.bookingIds || []).filter(function (id) {
162
+ return typeof id === 'number' && Number.isFinite(id);
163
+ }).sort(function (a, b) {
164
+ return a - b;
165
+ });
166
+ return "".concat(date, "|").concat(ids.join(','));
167
+ }
168
+ export var BookingContextModule = /*#__PURE__*/function (_BaseModule) {
169
+ _inherits(BookingContextModule, _BaseModule);
170
+ var _super = _createSuper(BookingContextModule);
171
+ function BookingContextModule(name, version) {
172
+ var _this;
173
+ _classCallCheck(this, BookingContextModule);
174
+ _this = _super.call(this, name, version);
175
+ _defineProperty(_assertThisInitialized(_this), "defaultName", 'bookingContext');
176
+ _defineProperty(_assertThisInitialized(_this), "defaultVersion", '1.0.0');
177
+ _defineProperty(_assertThisInitialized(_this), "request", void 0);
178
+ _defineProperty(_assertThisInitialized(_this), "store", _objectSpread({}, EMPTY_STATE));
179
+ /** 上次成功 loadBookingConfig 的 query key;命中则不再请求。 */
180
+ _defineProperty(_assertThisInitialized(_this), "lastConfigQueryKey", null);
181
+ /** 上次成功 loadResources 的 query key(date|bookingIds);命中则不再请求。 */
182
+ _defineProperty(_assertThisInitialized(_this), "lastResourcesQueryKey", null);
183
+ return _this;
184
+ }
185
+ _createClass(BookingContextModule, [{
186
+ key: "initialize",
187
+ value: function () {
188
+ var _initialize = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(core) {
189
+ var options,
190
+ initialState,
191
+ _args = arguments;
192
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
193
+ while (1) switch (_context.prev = _context.next) {
194
+ case 0:
195
+ options = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
196
+ this.core = core;
197
+ this.request = core.getPlugin('request');
198
+ if (this.request) {
199
+ _context.next = 5;
200
+ break;
201
+ }
202
+ throw new Error('BookingContextModule 需要 request 插件支持');
203
+ case 5:
204
+ this.store = {
205
+ bookingConfig: null,
206
+ resourcesOrigin: [],
207
+ resourcesOriginMap: {},
208
+ date: null
209
+ };
210
+ initialState = options.initialState || {};
211
+ if (initialState.bookingConfig) {
212
+ this.store.bookingConfig = initialState.bookingConfig;
213
+ }
214
+ if (Array.isArray(initialState.resourcesOrigin)) {
215
+ this.store.resourcesOrigin = initialState.resourcesOrigin;
216
+ this.store.resourcesOriginMap = buildResourcesMap(initialState.resourcesOrigin);
217
+ }
218
+ if (initialState.date) {
219
+ this.store.date = initialState.date;
220
+ }
221
+ case 10:
222
+ case "end":
223
+ return _context.stop();
224
+ }
225
+ }, _callee, this);
226
+ }));
227
+ function initialize(_x) {
228
+ return _initialize.apply(this, arguments);
229
+ }
230
+ return initialize;
231
+ }()
232
+ }, {
233
+ key: "loadBookingConfig",
234
+ value: function () {
235
+ var _loadBookingConfig = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
236
+ var _this2 = this;
237
+ var params,
238
+ options,
239
+ configKey,
240
+ query,
241
+ sharedKey,
242
+ _sharedBookingConfigC,
243
+ cached,
244
+ pending,
245
+ requestPromise,
246
+ config,
247
+ _args3 = arguments;
248
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
249
+ while (1) switch (_context3.prev = _context3.next) {
250
+ case 0:
251
+ params = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : {};
252
+ options = _args3.length > 1 && _args3[1] !== undefined ? _args3[1] : {};
253
+ configKey = buildBookingConfigQueryKey(params);
254
+ if (!(!options.forceRefresh && this.store.bookingConfig != null && this.lastConfigQueryKey === configKey)) {
255
+ _context3.next = 5;
256
+ break;
257
+ }
258
+ return _context3.abrupt("return", this.store.bookingConfig);
259
+ case 5:
260
+ query = _objectSpread(_objectSpread({}, DEFAULT_BOOKING_CONFIG_PARAMS), params);
261
+ sharedKey = buildSharedCacheKey(this.request, configKey);
262
+ if (!(!options.forceRefresh && sharedBookingConfigCache.has(sharedKey))) {
263
+ _context3.next = 12;
264
+ break;
265
+ }
266
+ cached = (_sharedBookingConfigC = sharedBookingConfigCache.get(sharedKey)) !== null && _sharedBookingConfigC !== void 0 ? _sharedBookingConfigC : null;
267
+ this.setBookingConfig(cached);
268
+ this.lastConfigQueryKey = configKey;
269
+ return _context3.abrupt("return", cached);
270
+ case 12:
271
+ pending = !options.forceRefresh ? sharedBookingConfigPending.get(sharedKey) : undefined;
272
+ if (!pending) {
273
+ requestPromise = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
274
+ var _res$data, res, _config;
275
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
276
+ while (1) switch (_context2.prev = _context2.next) {
277
+ case 0:
278
+ _context2.prev = 0;
279
+ _context2.next = 3;
280
+ return _this2.request.get('/core/board/management/config', query, BOARD_CONFIG_CACHE);
281
+ case 3:
282
+ res = _context2.sent;
283
+ _config = (_res$data = res === null || res === void 0 ? void 0 : res.data) !== null && _res$data !== void 0 ? _res$data : null;
284
+ sharedBookingConfigCache.set(sharedKey, _config);
285
+ return _context2.abrupt("return", _config);
286
+ case 7:
287
+ _context2.prev = 7;
288
+ sharedBookingConfigPending.delete(sharedKey);
289
+ return _context2.finish(7);
290
+ case 10:
291
+ case "end":
292
+ return _context2.stop();
293
+ }
294
+ }, _callee2, null, [[0,, 7, 10]]);
295
+ }))();
296
+ pending = requestPromise;
297
+ sharedBookingConfigPending.set(sharedKey, requestPromise);
298
+ }
299
+ _context3.next = 16;
300
+ return pending;
301
+ case 16:
302
+ config = _context3.sent;
303
+ this.setBookingConfig(config);
304
+ this.lastConfigQueryKey = configKey;
305
+ return _context3.abrupt("return", config);
306
+ case 20:
307
+ case "end":
308
+ return _context3.stop();
309
+ }
310
+ }, _callee3, this);
311
+ }));
312
+ function loadBookingConfig() {
313
+ return _loadBookingConfig.apply(this, arguments);
314
+ }
315
+ return loadBookingConfig;
316
+ }()
317
+ }, {
318
+ key: "loadResources",
319
+ value: function () {
320
+ var _loadResources = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {
321
+ var _params$date,
322
+ _this3 = this;
323
+ var params,
324
+ options,
325
+ date,
326
+ resourcesKey,
327
+ sharedKey,
328
+ _sharedResourcesCache,
329
+ cached,
330
+ pending,
331
+ requestPromise,
332
+ list,
333
+ _args5 = arguments;
334
+ return _regeneratorRuntime().wrap(function _callee5$(_context5) {
335
+ while (1) switch (_context5.prev = _context5.next) {
336
+ case 0:
337
+ params = _args5.length > 0 && _args5[0] !== undefined ? _args5[0] : {};
338
+ options = _args5.length > 1 && _args5[1] !== undefined ? _args5[1] : {};
339
+ date = toScheduleQueryDate((_params$date = params.date) !== null && _params$date !== void 0 ? _params$date : this.store.date);
340
+ resourcesKey = buildBookingResourcesQueryKey({
341
+ date: date,
342
+ bookingIds: params.bookingIds
343
+ });
344
+ if (!(!options.forceRefresh && this.lastResourcesQueryKey === resourcesKey)) {
345
+ _context5.next = 6;
346
+ break;
347
+ }
348
+ return _context5.abrupt("return", this.getResourcesOrigin());
349
+ case 6:
350
+ sharedKey = buildSharedCacheKey(this.request, resourcesKey);
351
+ if (!(!options.forceRefresh && sharedResourcesCache.has(sharedKey))) {
352
+ _context5.next = 12;
353
+ break;
354
+ }
355
+ cached = (_sharedResourcesCache = sharedResourcesCache.get(sharedKey)) !== null && _sharedResourcesCache !== void 0 ? _sharedResourcesCache : [];
356
+ this.setResources(cached);
357
+ this.lastResourcesQueryKey = resourcesKey;
358
+ return _context5.abrupt("return", this.getResourcesOrigin());
359
+ case 12:
360
+ pending = !options.forceRefresh ? sharedResourcesPending.get(sharedKey) : undefined;
361
+ if (!pending) {
362
+ requestPromise = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
363
+ var res, _formatResourceListAn, _list;
364
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
365
+ while (1) switch (_context4.prev = _context4.next) {
366
+ case 0:
367
+ _context4.prev = 0;
368
+ _context4.next = 3;
369
+ return _this3.request.get('/schedule/resource/list', {
370
+ date: date
371
+ }, RESOURCE_LIST_CACHE);
372
+ case 3:
373
+ res = _context4.sent;
374
+ _formatResourceListAn = formatResourceListAndMap(res === null || res === void 0 ? void 0 : res.data, params.bookingIds || []), _list = _formatResourceListAn.list;
375
+ sharedResourcesCache.set(sharedKey, _list);
376
+ return _context4.abrupt("return", _list);
377
+ case 7:
378
+ _context4.prev = 7;
379
+ sharedResourcesPending.delete(sharedKey);
380
+ return _context4.finish(7);
381
+ case 10:
382
+ case "end":
383
+ return _context4.stop();
384
+ }
385
+ }, _callee4, null, [[0,, 7, 10]]);
386
+ }))();
387
+ pending = requestPromise;
388
+ sharedResourcesPending.set(sharedKey, requestPromise);
389
+ }
390
+ _context5.next = 16;
391
+ return pending;
392
+ case 16:
393
+ list = _context5.sent;
394
+ this.setResources(list);
395
+ this.lastResourcesQueryKey = resourcesKey;
396
+ return _context5.abrupt("return", this.getResourcesOrigin());
397
+ case 20:
398
+ case "end":
399
+ return _context5.stop();
400
+ }
401
+ }, _callee5, this);
402
+ }));
403
+ function loadResources() {
404
+ return _loadResources.apply(this, arguments);
405
+ }
406
+ return loadResources;
407
+ }()
408
+ /**
409
+ * store 内是否已具备与本次 init 入参等价的 config / resources(不再打接口)。
410
+ */
411
+ }, {
412
+ key: "isBookingContextReady",
413
+ value: function isBookingContextReady() {
414
+ var _ref3, _params$date2;
415
+ var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
416
+ var configKey = buildBookingConfigQueryKey(params.bookingConfigParams);
417
+ var dateInput = (_ref3 = (_params$date2 = params.date) !== null && _params$date2 !== void 0 ? _params$date2 : this.store.date) !== null && _ref3 !== void 0 ? _ref3 : dayjs();
418
+ var queryDate = toScheduleQueryDate(dateInput);
419
+ var resourcesKey = buildBookingResourcesQueryKey({
420
+ date: queryDate,
421
+ bookingIds: params.bookingIds
422
+ });
423
+ var configReady = this.store.bookingConfig != null && this.lastConfigQueryKey === configKey;
424
+ var resourcesReady = params.loadResources === false || this.lastResourcesQueryKey === resourcesKey;
425
+ return configReady && resourcesReady;
426
+ }
427
+ }, {
428
+ key: "initBookingContext",
429
+ value: function () {
430
+ var _initBookingContext = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {
431
+ var _ref4, _params$date3;
432
+ var params,
433
+ dateInput,
434
+ queryDate,
435
+ configKey,
436
+ resourcesKey,
437
+ needConfig,
438
+ needResources,
439
+ _args6 = arguments;
440
+ return _regeneratorRuntime().wrap(function _callee6$(_context6) {
441
+ while (1) switch (_context6.prev = _context6.next) {
442
+ case 0:
443
+ params = _args6.length > 0 && _args6[0] !== undefined ? _args6[0] : {};
444
+ dateInput = (_ref4 = (_params$date3 = params.date) !== null && _params$date3 !== void 0 ? _params$date3 : this.store.date) !== null && _ref4 !== void 0 ? _ref4 : dayjs();
445
+ queryDate = toScheduleQueryDate(dateInput);
446
+ this.setDate(dateInput);
447
+ if (!(!params.forceRefresh && this.isBookingContextReady(params))) {
448
+ _context6.next = 6;
449
+ break;
450
+ }
451
+ return _context6.abrupt("return", this.getState());
452
+ case 6:
453
+ configKey = buildBookingConfigQueryKey(params.bookingConfigParams);
454
+ resourcesKey = buildBookingResourcesQueryKey({
455
+ date: queryDate,
456
+ bookingIds: params.bookingIds
457
+ });
458
+ needConfig = params.forceRefresh || this.store.bookingConfig == null || this.lastConfigQueryKey !== configKey;
459
+ needResources = params.loadResources !== false && (params.forceRefresh || this.lastResourcesQueryKey !== resourcesKey);
460
+ if (!needConfig) {
461
+ _context6.next = 13;
462
+ break;
463
+ }
464
+ _context6.next = 13;
465
+ return this.loadBookingConfig(params.bookingConfigParams, {
466
+ forceRefresh: params.forceRefresh
467
+ });
468
+ case 13:
469
+ if (!needResources) {
470
+ _context6.next = 16;
471
+ break;
472
+ }
473
+ _context6.next = 16;
474
+ return this.loadResources({
475
+ date: queryDate,
476
+ bookingIds: params.bookingIds
477
+ }, {
478
+ forceRefresh: params.forceRefresh
479
+ });
480
+ case 16:
481
+ return _context6.abrupt("return", this.getState());
482
+ case 17:
483
+ case "end":
484
+ return _context6.stop();
485
+ }
486
+ }, _callee6, this);
487
+ }));
488
+ function initBookingContext() {
489
+ return _initBookingContext.apply(this, arguments);
490
+ }
491
+ return initBookingContext;
492
+ }()
493
+ }, {
494
+ key: "setBookingConfig",
495
+ value: function setBookingConfig(config) {
496
+ this.store.bookingConfig = config || null;
497
+ this.core.effects.emit("".concat(this.name, ":").concat(BookingContextEvent.OnBookingConfigChange), this.store.bookingConfig);
498
+ }
499
+ }, {
500
+ key: "getBookingConfig",
501
+ value: function getBookingConfig() {
502
+ return this.store.bookingConfig;
503
+ }
504
+ }, {
505
+ key: "setResources",
506
+ value: function setResources(resources) {
507
+ var list = Array.isArray(resources) ? resources : [];
508
+ this.store.resourcesOrigin = list;
509
+ this.store.resourcesOriginMap = buildResourcesMap(list);
510
+ this.core.effects.emit("".concat(this.name, ":").concat(BookingContextEvent.OnResourcesChange), {
511
+ resourcesOrigin: this.store.resourcesOrigin,
512
+ resourcesOriginMap: this.store.resourcesOriginMap
513
+ });
514
+ }
515
+ }, {
516
+ key: "getResourcesOrigin",
517
+ value: function getResourcesOrigin() {
518
+ return _toConsumableArray(this.store.resourcesOrigin);
519
+ }
520
+ }, {
521
+ key: "getResourcesOriginMap",
522
+ value: function getResourcesOriginMap() {
523
+ return this.store.resourcesOriginMap;
524
+ }
525
+ }, {
526
+ key: "setDate",
527
+ value: function setDate(date) {
528
+ this.store.date = normalizeDate(date);
529
+ this.core.effects.emit("".concat(this.name, ":").concat(BookingContextEvent.OnDateChange), this.store.date);
530
+ }
531
+ }, {
532
+ key: "getDate",
533
+ value: function getDate() {
534
+ return this.store.date;
535
+ }
536
+ }, {
537
+ key: "getState",
538
+ value: function getState() {
539
+ return {
540
+ bookingConfig: this.store.bookingConfig,
541
+ resourcesOrigin: _toConsumableArray(this.store.resourcesOrigin),
542
+ resourcesOriginMap: this.store.resourcesOriginMap,
543
+ date: this.store.date
544
+ };
545
+ }
546
+ }, {
547
+ key: "clear",
548
+ value: function clear() {
549
+ this.lastConfigQueryKey = null;
550
+ this.lastResourcesQueryKey = null;
551
+ this.store = {
552
+ bookingConfig: null,
553
+ resourcesOrigin: [],
554
+ resourcesOriginMap: {},
555
+ date: null
556
+ };
557
+ this.core.effects.emit("".concat(this.name, ":").concat(BookingContextEvent.OnBookingConfigChange), null);
558
+ this.core.effects.emit("".concat(this.name, ":").concat(BookingContextEvent.OnResourcesChange), {
559
+ resourcesOrigin: [],
560
+ resourcesOriginMap: {}
561
+ });
562
+ this.core.effects.emit("".concat(this.name, ":").concat(BookingContextEvent.OnDateChange), null);
563
+ }
564
+ }]);
565
+ return BookingContextModule;
566
+ }(BaseModule);