@pisell/pisellos 0.10.15 → 0.10.17

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 (331) hide show
  1. package/dist/core/index.js +6 -9
  2. package/dist/model/strategy/adapter/promotion/index.js +0 -9
  3. package/dist/model/strategy/adapter/walletPass/example.js +3 -26
  4. package/dist/model/strategy/strategy-example.js +5 -19
  5. package/dist/modules/Cart/index.js +0 -3
  6. package/dist/modules/Cart/utils/cartProduct.js +0 -1
  7. package/dist/modules/Date/index.js +1 -5
  8. package/dist/modules/Discount/index.js +2 -4
  9. package/dist/modules/OpenData/index.d.ts +5 -2
  10. package/dist/modules/OpenData/index.js +27 -14
  11. package/dist/modules/OpenData/types.d.ts +42 -0
  12. package/dist/modules/OpenData/types.js +7 -1
  13. package/dist/modules/OpenData/utils.d.ts +15 -1
  14. package/dist/modules/OpenData/utils.js +85 -0
  15. package/dist/modules/Order/index.d.ts +4 -2
  16. package/dist/modules/Order/index.js +131 -123
  17. package/dist/modules/Order/types.d.ts +8 -1
  18. package/dist/modules/Order/types.js +1 -0
  19. package/dist/modules/Order/utils.js +7 -1
  20. package/dist/modules/Payment/index.js +97 -162
  21. package/dist/modules/Product/types.d.ts +2 -0
  22. package/dist/modules/ProductList/index.js +96 -74
  23. package/dist/modules/Rules/index.js +12 -12
  24. package/dist/modules/SalesSummary/index.js +6 -4
  25. package/dist/modules/Schedule/index.js +0 -1
  26. package/dist/modules/Schedule/utils.js +0 -1
  27. package/dist/modules/Step/index.js +0 -1
  28. package/dist/plugins/request.js +1 -4
  29. package/dist/plugins/window.js +2 -6
  30. package/dist/server/index.d.ts +11 -0
  31. package/dist/server/index.js +977 -641
  32. package/dist/server/modules/menu/index.js +32 -41
  33. package/dist/server/modules/order/index.d.ts +8 -0
  34. package/dist/server/modules/order/index.js +253 -219
  35. package/dist/server/modules/products/index.js +24 -42
  36. package/dist/server/modules/quotation/index.js +29 -38
  37. package/dist/server/modules/resource/index.js +3 -4
  38. package/dist/server/modules/schedule/index.js +27 -35
  39. package/dist/server/utils/product.js +0 -1
  40. package/dist/server/utils/small-ticket.d.ts +9 -1
  41. package/dist/server/utils/small-ticket.js +117 -43
  42. package/dist/solution/BaseSales/index.d.ts +7 -0
  43. package/dist/solution/BaseSales/index.js +350 -215
  44. package/dist/solution/BaseSales/types.d.ts +2 -0
  45. package/dist/solution/BaseSales/utils/cartPromotion.d.ts +5 -0
  46. package/dist/solution/BaseSales/utils/cartPromotion.js +15 -6
  47. package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.d.ts +3 -0
  48. package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +7 -1
  49. package/dist/solution/BaseSales/utils.js +6 -3
  50. package/dist/solution/BookingByStep/index.d.ts +2 -2
  51. package/dist/solution/BookingByStep/index.js +7 -59
  52. package/dist/solution/BookingByStep/utils/capacity.js +1 -11
  53. package/dist/solution/BookingByStep/utils/resources.js +1 -3
  54. package/dist/solution/BookingByStep/utils/timeslots.js +2 -43
  55. package/dist/solution/BookingTicket/index.d.ts +14 -19
  56. package/dist/solution/BookingTicket/index.js +553 -433
  57. package/dist/solution/BookingTicket/utils/addProductDecision.js +3 -1
  58. package/dist/solution/BookingTicket/utils/scan/cloudSearch.js +6 -7
  59. package/dist/solution/BookingTicket/utils/scan/handleScan.js +25 -31
  60. package/dist/solution/BookingTicket/utils/scan/index.js +6 -10
  61. package/dist/solution/BuyTickets/index.js +9 -12
  62. package/dist/solution/Checkout/index.js +177 -252
  63. package/dist/solution/Checkout/utils/index.js +4 -16
  64. package/dist/solution/RegisterAndLogin/index.js +30 -76
  65. package/dist/solution/Sales/index.d.ts +20 -4
  66. package/dist/solution/Sales/index.js +348 -75
  67. package/dist/solution/Sales/types.d.ts +10 -0
  68. package/dist/solution/ScanOrder/index.js +50 -60
  69. package/dist/solution/ScanOrder/types.d.ts +2 -0
  70. package/dist/solution/ScanOrder/utils.js +6 -3
  71. package/dist/solution/ShopDiscount/index.js +2 -7
  72. package/dist/solution/UnifiedBookingSales/index.d.ts +5 -4
  73. package/dist/solution/UnifiedBookingSales/index.js +495 -422
  74. package/dist/solution/UnifiedBookingSales/types.d.ts +7 -1
  75. package/dist/solution/VenueBooking/index.js +45 -55
  76. package/dist/utils/task.js +15 -18
  77. package/dist/utils/watch.js +0 -1
  78. package/lib/apis/picoding.js +2 -0
  79. package/lib/core/index.js +131 -131
  80. package/lib/effects/index.js +46 -57
  81. package/lib/index.js +82 -49
  82. package/lib/model/index.js +14 -21
  83. package/lib/model/strategy/adapter/dataVariant/adapter.js +38 -50
  84. package/lib/model/strategy/adapter/dataVariant/evaluator.js +209 -315
  85. package/lib/model/strategy/adapter/dataVariant/examples.js +229 -237
  86. package/lib/model/strategy/adapter/dataVariant/index.js +39 -34
  87. package/lib/model/strategy/adapter/dataVariant/type.js +57 -28
  88. package/lib/model/strategy/adapter/index.js +100 -64
  89. package/lib/model/strategy/adapter/itemRule/adapter.js +156 -144
  90. package/lib/model/strategy/adapter/itemRule/evaluator.js +36 -48
  91. package/lib/model/strategy/adapter/itemRule/examples.js +295 -225
  92. package/lib/model/strategy/adapter/itemRule/index.js +83 -57
  93. package/lib/model/strategy/adapter/itemRule/type.js +97 -36
  94. package/lib/model/strategy/adapter/promotion/adapter.js +91 -69
  95. package/lib/model/strategy/adapter/promotion/evaluator.js +444 -310
  96. package/lib/model/strategy/adapter/promotion/examples.js +222 -234
  97. package/lib/model/strategy/adapter/promotion/index.js +1 -51
  98. package/lib/model/strategy/adapter/promotion/type.js +243 -36
  99. package/lib/model/strategy/adapter/type.js +4 -16
  100. package/lib/model/strategy/adapter/walletPass/evaluator.js +180 -150
  101. package/lib/model/strategy/adapter/walletPass/example.js +217 -190
  102. package/lib/model/strategy/adapter/walletPass/index.js +75 -51
  103. package/lib/model/strategy/adapter/walletPass/locales.js +36 -58
  104. package/lib/model/strategy/adapter/walletPass/type.js +4 -16
  105. package/lib/model/strategy/adapter/walletPass/utils.js +588 -378
  106. package/lib/model/strategy/engine.js +270 -168
  107. package/lib/model/strategy/index.js +49 -34
  108. package/lib/model/strategy/strategy-example.js +243 -239
  109. package/lib/model/strategy/type.js +100 -40
  110. package/lib/modules/Account/index.js +39 -53
  111. package/lib/modules/Account/types.js +20 -33
  112. package/lib/modules/AccountList/index.js +116 -154
  113. package/lib/modules/AccountList/types.js +30 -31
  114. package/lib/modules/AccountList/utils.js +18 -30
  115. package/lib/modules/BaseModule.js +23 -42
  116. package/lib/modules/BookingContext/index.js +158 -136
  117. package/lib/modules/BookingContext/types.js +46 -32
  118. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +138 -146
  119. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +78 -83
  120. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +170 -150
  121. package/lib/modules/BookingContext/utils/flexible.js +38 -55
  122. package/lib/modules/BookingContext/utils/formatResourceList.js +19 -34
  123. package/lib/modules/BookingContext/utils/index.js +124 -41
  124. package/lib/modules/BookingContext/utils/noResource.js +58 -70
  125. package/lib/modules/BookingContext/utils/orderLineDisplay.js +14 -41
  126. package/lib/modules/BookingContext/utils/productExtend.js +202 -155
  127. package/lib/modules/BookingContext/utils/resourceErrors.js +53 -53
  128. package/lib/modules/BookingContext/utils/resourceSelection.js +19 -41
  129. package/lib/modules/BookingContext/utils/resources.js +209 -167
  130. package/lib/modules/BookingContext/utils/serviceTimes.js +115 -116
  131. package/lib/modules/BookingContext/utils/timeSlices.js +76 -86
  132. package/lib/modules/Cart/index.js +170 -124
  133. package/lib/modules/Cart/types.js +46 -51
  134. package/lib/modules/Cart/utils/cartAccount.js +40 -39
  135. package/lib/modules/Cart/utils/cartDate.js +56 -61
  136. package/lib/modules/Cart/utils/cartDiscount.js +28 -33
  137. package/lib/modules/Cart/utils/cartNote.js +27 -32
  138. package/lib/modules/Cart/utils/cartProduct.js +321 -251
  139. package/lib/modules/Cart/utils/cartRelationForms.js +29 -35
  140. package/lib/modules/Cart/utils/cartResource.js +70 -78
  141. package/lib/modules/Cart/utils/changePrice.js +22 -50
  142. package/lib/modules/Cart/utils/index.js +106 -48
  143. package/lib/modules/Customer/constants.js +13 -34
  144. package/lib/modules/Customer/index.js +235 -172
  145. package/lib/modules/Customer/types.js +38 -35
  146. package/lib/modules/Date/index.js +116 -115
  147. package/lib/modules/Date/types.js +16 -28
  148. package/lib/modules/Date/utils.js +174 -123
  149. package/lib/modules/Discount/index.js +133 -143
  150. package/lib/modules/Discount/types.js +9 -31
  151. package/lib/modules/Guests/index.js +30 -56
  152. package/lib/modules/Guests/types.js +23 -33
  153. package/lib/modules/Holder/index.js +209 -189
  154. package/lib/modules/Holder/types.js +4 -16
  155. package/lib/modules/Holder/utils.js +20 -49
  156. package/lib/modules/OpenData/index.d.ts +5 -2
  157. package/lib/modules/OpenData/index.js +119 -78
  158. package/lib/modules/OpenData/types.d.ts +42 -0
  159. package/lib/modules/OpenData/types.js +12 -16
  160. package/lib/modules/OpenData/utils.d.ts +15 -1
  161. package/lib/modules/OpenData/utils.js +129 -78
  162. package/lib/modules/Order/index.d.ts +4 -2
  163. package/lib/modules/Order/index.js +1843 -2251
  164. package/lib/modules/Order/payment-utils.js +77 -120
  165. package/lib/modules/Order/types.d.ts +8 -1
  166. package/lib/modules/Order/types.js +88 -35
  167. package/lib/modules/Order/utils/bundleDiscountHydration.js +41 -74
  168. package/lib/modules/Order/utils/discountProductLineIdentity.js +142 -100
  169. package/lib/modules/Order/utils/manualProductDiscount.js +124 -123
  170. package/lib/modules/Order/utils/orderCollectionIdentity.js +184 -244
  171. package/lib/modules/Order/utils/virtualSettlement.js +120 -171
  172. package/lib/modules/Order/utils.js +834 -668
  173. package/lib/modules/Payment/cash.js +20 -33
  174. package/lib/modules/Payment/cashRecommendationAlgorithm.js +145 -76
  175. package/lib/modules/Payment/eftpos.js +16 -30
  176. package/lib/modules/Payment/index.js +532 -399
  177. package/lib/modules/Payment/mx51.js +1 -0
  178. package/lib/modules/Payment/types.js +230 -108
  179. package/lib/modules/Payment/utils.js +52 -51
  180. package/lib/modules/Payment/walletpass.js +485 -660
  181. package/lib/modules/Product/index.js +51 -46
  182. package/lib/modules/Product/types.d.ts +2 -0
  183. package/lib/modules/Product/types.js +4 -16
  184. package/lib/modules/Product/utils.js +32 -33
  185. package/lib/modules/ProductList/index.js +141 -161
  186. package/lib/modules/ProductList/types.js +9 -31
  187. package/lib/modules/Quotation/index.js +66 -100
  188. package/lib/modules/Quotation/types.js +4 -16
  189. package/lib/modules/Resource/index.js +27 -59
  190. package/lib/modules/Resource/types.js +22 -32
  191. package/lib/modules/Resource/utils.js +30 -38
  192. package/lib/modules/ResourcePlanner/index.js +25 -23
  193. package/lib/modules/ResourcePlanner/localClock.js +54 -119
  194. package/lib/modules/ResourcePlanner/planner.js +591 -772
  195. package/lib/modules/ResourcePlanner/types.js +10 -29
  196. package/lib/modules/Rules/index.js +1224 -963
  197. package/lib/modules/Rules/types.js +17 -40
  198. package/lib/modules/SalesSummary/index.js +80 -89
  199. package/lib/modules/SalesSummary/types.js +4 -16
  200. package/lib/modules/SalesSummary/utils.js +359 -442
  201. package/lib/modules/ScanOrderLogger/index.js +59 -79
  202. package/lib/modules/ScanOrderLogger/providers/feishu.js +54 -78
  203. package/lib/modules/ScanOrderLogger/providers/grafana.js +13 -36
  204. package/lib/modules/ScanOrderLogger/types.js +4 -16
  205. package/lib/modules/Schedule/getDateIsInSchedule.js +334 -163
  206. package/lib/modules/Schedule/index.js +100 -114
  207. package/lib/modules/Schedule/type.js +4 -16
  208. package/lib/modules/Schedule/types.js +4 -16
  209. package/lib/modules/Schedule/utils.js +433 -291
  210. package/lib/modules/Step/index.js +40 -52
  211. package/lib/modules/Step/tyeps.js +4 -16
  212. package/lib/modules/Summary/index.js +66 -71
  213. package/lib/modules/Summary/types.js +4 -16
  214. package/lib/modules/Summary/utils.js +773 -418
  215. package/lib/modules/SurchargeList/index.js +46 -60
  216. package/lib/modules/SurchargeList/types.js +4 -16
  217. package/lib/modules/index.js +245 -63
  218. package/lib/plugins/app.js +4 -16
  219. package/lib/plugins/index.js +36 -25
  220. package/lib/plugins/request.js +137 -126
  221. package/lib/plugins/shopStore.js +4 -16
  222. package/lib/plugins/user.js +4 -16
  223. package/lib/plugins/window.js +171 -179
  224. package/lib/server/index.d.ts +11 -0
  225. package/lib/server/index.js +3432 -2757
  226. package/lib/server/modules/floor-plan/index.js +102 -123
  227. package/lib/server/modules/floor-plan/types.js +15 -30
  228. package/lib/server/modules/index.js +106 -68
  229. package/lib/server/modules/menu/index.js +146 -122
  230. package/lib/server/modules/menu/types.js +18 -31
  231. package/lib/server/modules/order/index.d.ts +8 -0
  232. package/lib/server/modules/order/index.js +781 -956
  233. package/lib/server/modules/order/types.js +122 -33
  234. package/lib/server/modules/order/utils/filterBookings.js +219 -194
  235. package/lib/server/modules/order/utils/filterOrders.js +118 -92
  236. package/lib/server/modules/payment/index.js +59 -83
  237. package/lib/server/modules/payment/types.js +4 -16
  238. package/lib/server/modules/products/index.js +575 -459
  239. package/lib/server/modules/products/types.js +44 -34
  240. package/lib/server/modules/quotation/index.js +137 -172
  241. package/lib/server/modules/quotation/types.js +21 -31
  242. package/lib/server/modules/resource/index.js +213 -184
  243. package/lib/server/modules/resource/types.js +42 -33
  244. package/lib/server/modules/schedule/index.js +135 -123
  245. package/lib/server/modules/schedule/types.js +14 -21
  246. package/lib/server/modules/schedule/utils.js +334 -163
  247. package/lib/server/types.js +4 -16
  248. package/lib/server/utils/index.js +25 -23
  249. package/lib/server/utils/product.js +196 -139
  250. package/lib/server/utils/schedule.js +34 -41
  251. package/lib/server/utils/small-ticket.d.ts +9 -1
  252. package/lib/server/utils/small-ticket.js +565 -470
  253. package/lib/server/utils/time.js +40 -49
  254. package/lib/solution/BaseSales/index.d.ts +7 -0
  255. package/lib/solution/BaseSales/index.js +1385 -1503
  256. package/lib/solution/BaseSales/types.d.ts +2 -0
  257. package/lib/solution/BaseSales/types.js +42 -38
  258. package/lib/solution/BaseSales/utils/cartPromotion.d.ts +5 -0
  259. package/lib/solution/BaseSales/utils/cartPromotion.js +652 -498
  260. package/lib/solution/BaseSales/utils/parseSalesResponse.js +85 -105
  261. package/lib/solution/BaseSales/utils/quotationPrice.js +56 -114
  262. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.d.ts +3 -0
  263. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +138 -180
  264. package/lib/solution/BaseSales/utils.js +161 -143
  265. package/lib/solution/BookingByStep/index.d.ts +2 -2
  266. package/lib/solution/BookingByStep/index.js +1527 -1340
  267. package/lib/solution/BookingByStep/types.js +40 -99
  268. package/lib/solution/BookingByStep/utils/capacity.js +192 -160
  269. package/lib/solution/BookingByStep/utils/products.js +42 -52
  270. package/lib/solution/BookingByStep/utils/resources.js +527 -330
  271. package/lib/solution/BookingByStep/utils/stock.js +65 -44
  272. package/lib/solution/BookingByStep/utils/timeslots.js +129 -131
  273. package/lib/solution/BookingTicket/index.d.ts +14 -19
  274. package/lib/solution/BookingTicket/index.js +663 -526
  275. package/lib/solution/BookingTicket/types.js +99 -77
  276. package/lib/solution/BookingTicket/utils/addProductDecision.js +229 -190
  277. package/lib/solution/BookingTicket/utils/addTimeAvailability.js +58 -89
  278. package/lib/solution/BookingTicket/utils/bookingStatus.js +107 -78
  279. package/lib/solution/BookingTicket/utils/cartView.js +114 -99
  280. package/lib/solution/BookingTicket/utils/exampleData.js +185 -0
  281. package/lib/solution/BookingTicket/utils/orderCustomer.js +18 -41
  282. package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +219 -86
  283. package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +168 -116
  284. package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +79 -91
  285. package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +54 -41
  286. package/lib/solution/BookingTicket/utils/scan/handleScan.js +84 -81
  287. package/lib/solution/BookingTicket/utils/scan/index.js +98 -104
  288. package/lib/solution/BookingTicket/utils/scan/scanCache.js +90 -43
  289. package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +52 -64
  290. package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +56 -58
  291. package/lib/solution/BookingTicket/utils/weighingProductSku.js +34 -48
  292. package/lib/solution/BuyTickets/index.js +67 -70
  293. package/lib/solution/BuyTickets/types.js +22 -38
  294. package/lib/solution/Checkout/index.js +1451 -1158
  295. package/lib/solution/Checkout/types.js +91 -61
  296. package/lib/solution/Checkout/utils/index.js +228 -156
  297. package/lib/solution/PlaceOrder/index.js +55 -0
  298. package/lib/solution/RegisterAndLogin/config.js +493 -460
  299. package/lib/solution/RegisterAndLogin/index.js +633 -630
  300. package/lib/solution/RegisterAndLogin/types.js +189 -76
  301. package/lib/solution/RegisterAndLogin/utils.js +183 -125
  302. package/lib/solution/Sales/index.d.ts +20 -4
  303. package/lib/solution/Sales/index.js +502 -330
  304. package/lib/solution/Sales/types.d.ts +10 -0
  305. package/lib/solution/Sales/types.js +27 -33
  306. package/lib/solution/ScanOrder/index.js +822 -852
  307. package/lib/solution/ScanOrder/types.d.ts +2 -0
  308. package/lib/solution/ScanOrder/types.js +33 -34
  309. package/lib/solution/ScanOrder/utils.js +412 -374
  310. package/lib/solution/ShopDiscount/index.js +226 -232
  311. package/lib/solution/ShopDiscount/types.js +15 -37
  312. package/lib/solution/ShopDiscount/utils.js +300 -172
  313. package/lib/solution/UnifiedBookingSales/index.d.ts +5 -4
  314. package/lib/solution/UnifiedBookingSales/index.js +1087 -1222
  315. package/lib/solution/UnifiedBookingSales/remoteOccupancyCache.js +99 -159
  316. package/lib/solution/UnifiedBookingSales/types.d.ts +7 -1
  317. package/lib/solution/UnifiedBookingSales/types.js +10 -32
  318. package/lib/solution/VenueBooking/index.js +811 -879
  319. package/lib/solution/VenueBooking/types.js +19 -39
  320. package/lib/solution/VenueBooking/utils/dateSummary.js +27 -56
  321. package/lib/solution/VenueBooking/utils/resource.js +31 -54
  322. package/lib/solution/VenueBooking/utils/slotMerge.js +94 -107
  323. package/lib/solution/VenueBooking/utils/timeSlot.js +132 -132
  324. package/lib/solution/VenueBooking/utils.js +130 -67
  325. package/lib/solution/index.js +124 -41
  326. package/lib/store/createStore.js +32 -29
  327. package/lib/types/index.js +4 -16
  328. package/lib/utils/payment-number.js +26 -46
  329. package/lib/utils/task.js +36 -36
  330. package/lib/utils/watch.js +81 -47
  331. package/package.json +2 -1
@@ -1,122 +1,159 @@
1
- var __create = Object.create;
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __export = (target, all) => {
8
- for (var name in all)
9
- __defProp(target, name, { get: all[name], enumerable: true });
10
- };
11
- var __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from === "object" || typeof from === "function") {
13
- for (let key of __getOwnPropNames(from))
14
- if (!__hasOwnProp.call(to, key) && key !== except)
15
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
- }
17
- return to;
18
- };
19
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
- // If the importer is in node compatibility mode or this is not an ESM
21
- // file that has been converted to a CommonJS file using a Babel-
22
- // compatible transform (i.e. "__esModule" has not been set), then set
23
- // "default" to the CommonJS "module.exports" for node compatibility.
24
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
- mod
26
- ));
27
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
1
+ "use strict";
28
2
 
29
- // src/modules/Date/utils.ts
30
- var utils_exports = {};
31
- __export(utils_exports, {
32
- disableAllDates: () => disableAllDates,
33
- disableDatesBeforeOneDay: () => disableDatesBeforeOneDay,
34
- generateMonthDates: () => generateMonthDates,
35
- handleAvailableDateByResource: () => handleAvailableDateByResource,
36
- handleAvailableDatesByRules: () => handleAvailableDatesByRules
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
37
5
  });
38
- module.exports = __toCommonJS(utils_exports);
39
- var import_dayjs = __toESM(require("dayjs"));
40
- var generateMonthDates = (startDate, endDate, type) => {
41
- const start = type === "day" ? (0, import_dayjs.default)(startDate).format("YYYY-MM-DD") : (0, import_dayjs.default)(startDate).format("YYYY-MM-01");
42
- const end = (0, import_dayjs.default)(endDate).format("YYYY-MM-DD");
6
+ exports.handleAvailableDatesByRules = exports.handleAvailableDateByResource = exports.generateMonthDates = exports.disableDatesBeforeOneDay = exports.disableAllDates = void 0;
7
+ var _dayjs = _interopRequireDefault(require("dayjs"));
8
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
+ /**
10
+ * 生成当前月份的所有日期
11
+ * @param startDate 开始日期
12
+ * @param endDate 结束日期
13
+ * @param type 类型:按月查 | 按周查
14
+ * @returns 日期列表
15
+ */
16
+ const generateMonthDates = (startDate, endDate, type) => {
17
+ // 如果是按月查询需要从01号开始,如果是按周查询以开始结束时间为准
18
+ const start = type === 'day' ? (0, _dayjs.default)(startDate).format('YYYY-MM-DD') : (0, _dayjs.default)(startDate).format('YYYY-MM-01');
19
+ const end = (0, _dayjs.default)(endDate).format('YYYY-MM-DD');
43
20
  const dates = [];
44
- let currentDate = (0, import_dayjs.default)(start);
45
- while ((0, import_dayjs.default)(currentDate).isBefore((0, import_dayjs.default)(end), "day") || (0, import_dayjs.default)(currentDate).isSame((0, import_dayjs.default)(end), "day")) {
21
+ let currentDate = (0, _dayjs.default)(start);
22
+ while ((0, _dayjs.default)(currentDate).isBefore((0, _dayjs.default)(end), 'day') || (0, _dayjs.default)(currentDate).isSame((0, _dayjs.default)(end), 'day')) {
46
23
  dates.push({
47
- date: (0, import_dayjs.default)(currentDate).format("YYYY-MM-DD"),
48
- week: (0, import_dayjs.default)(currentDate).format("ddd"),
49
- weekNum: (0, import_dayjs.default)(currentDate).day(),
50
- status: "available"
24
+ date: (0, _dayjs.default)(currentDate).format('YYYY-MM-DD'),
25
+ week: (0, _dayjs.default)(currentDate).format('ddd'),
26
+ weekNum: (0, _dayjs.default)(currentDate).day(),
27
+ status: 'available'
51
28
  });
52
- currentDate = (0, import_dayjs.default)(currentDate).add(1, "day");
29
+ currentDate = (0, _dayjs.default)(currentDate).add(1, 'day');
53
30
  }
54
31
  return dates;
55
32
  };
56
- var disableAllDates = (dates) => {
57
- return dates.map((date) => ({ ...date, status: "unavailable" }));
33
+
34
+ /**
35
+ * 禁用所有日期
36
+ * @param dates 日期列表
37
+ * @returns 日期列表
38
+ */
39
+ exports.generateMonthDates = generateMonthDates;
40
+ const disableAllDates = dates => {
41
+ return dates.map(date => ({
42
+ ...date,
43
+ status: 'unavailable'
44
+ }));
58
45
  };
59
- var disableDatesBeforeOneDay = (dates, oneDay) => {
60
- const day = oneDay ? (0, import_dayjs.default)(oneDay).format("YYYY-MM-DD") : (0, import_dayjs.default)().format("YYYY-MM-DD");
61
- return dates.map((date) => {
62
- if ((0, import_dayjs.default)(date.date).isBefore(day, "day")) {
63
- return { ...date, status: "unavailable" };
46
+
47
+ /**
48
+ * 禁用某一天之前的日期,如不传则默认今天
49
+ * @param dates 日期列表
50
+ * @param oneDay 日期
51
+ * @returns 日期列表
52
+ */
53
+ exports.disableAllDates = disableAllDates;
54
+ const disableDatesBeforeOneDay = (dates, oneDay) => {
55
+ const day = oneDay ? (0, _dayjs.default)(oneDay).format('YYYY-MM-DD') : (0, _dayjs.default)().format('YYYY-MM-DD');
56
+ return dates.map(date => {
57
+ if ((0, _dayjs.default)(date.date).isBefore(day, 'day')) {
58
+ return {
59
+ ...date,
60
+ status: 'unavailable'
61
+ };
64
62
  } else {
65
63
  return date;
66
64
  }
67
65
  });
68
66
  };
69
- var handleAvailableDateByResource = (resources, dates) => {
67
+
68
+ /**
69
+ * 根据资源中的日期处理出每个日期下存在的可用资源,根据form_id进行分类
70
+ * @param resources 资源列表
71
+ * @param dates 日期列表
72
+ * @returns 日期列表
73
+ */
74
+ exports.disableDatesBeforeOneDay = disableDatesBeforeOneDay;
75
+ const handleAvailableDateByResource = (resources, dates) => {
70
76
  const dateMap = {};
71
- resources.forEach((resource) => {
72
- const { form_id, id, times, ...others } = resource;
73
- times.forEach((time) => {
74
- var _a;
75
- const { start_at } = time;
76
- const date = (0, import_dayjs.default)(start_at).format("YYYY-MM-DD");
77
+ resources.forEach(resource => {
78
+ const {
79
+ form_id,
80
+ id,
81
+ times,
82
+ ...others
83
+ } = resource;
84
+ times.forEach(time => {
85
+ const {
86
+ start_at
87
+ } = time;
88
+ const date = (0, _dayjs.default)(start_at).format('YYYY-MM-DD');
77
89
  if (!dateMap[date]) {
78
- dateMap[date] = [{ form_id, id, ...others, times: [time] }];
90
+ dateMap[date] = [{
91
+ form_id,
92
+ id,
93
+ ...others,
94
+ times: [time]
95
+ }];
79
96
  } else {
80
- const temp = (_a = dateMap[date].filter((item) => item.id === id)) == null ? void 0 : _a[0];
97
+ const temp = dateMap[date].filter(item => item.id === id)?.[0];
81
98
  if (temp) {
82
99
  temp.times.push(time);
83
100
  } else {
84
- dateMap[date].push({ form_id, id, ...others, times: [time] });
101
+ dateMap[date].push({
102
+ form_id,
103
+ id,
104
+ ...others,
105
+ times: [time]
106
+ });
85
107
  }
86
108
  }
87
109
  });
88
110
  });
89
- return dates.map((date) => {
111
+ return dates.map(date => {
90
112
  const resource = dateMap[date.date];
91
113
  if (resource) {
92
- return { ...date, resource };
114
+ return {
115
+ ...date,
116
+ resource
117
+ };
93
118
  } else {
94
- return { ...date, status: "unavailable", resource: [] };
119
+ return {
120
+ ...date,
121
+ status: 'unavailable',
122
+ resource: []
123
+ };
95
124
  }
96
125
  });
97
126
  };
98
- var handleAvailableDatesByRules = (dates, rules) => {
127
+
128
+ /**
129
+ * 根据规则判定哪些日期是可用的
130
+ * @param dates 日期列表
131
+ * @param rules 提前量规则
132
+ * @returns 日期列表
133
+ */
134
+ exports.handleAvailableDateByResource = handleAvailableDateByResource;
135
+ const handleAvailableDatesByRules = (dates, rules) => {
99
136
  let newDates = disableDatesBeforeOneDay(dates);
100
- if (!(rules == null ? void 0 : rules.length)) {
137
+ if (!rules?.length) {
101
138
  return newDates;
102
139
  }
103
- let scheduleMap = {};
104
- let latestStartDate = "";
105
- let earliestEndDate = "";
140
+ let scheduleMap = {}; // 日程列表
141
+ let latestStartDate = ''; // 最晚开始日期
142
+ let earliestEndDate = ''; // 最早结束日期
106
143
  let resourceFormIds = [];
107
- rules.forEach((rule) => {
108
- var _a, _b;
109
- if ((_a = rule == null ? void 0 : rule.schedule) == null ? void 0 : _a.length) {
144
+ rules.forEach(rule => {
145
+ // 如果有日程列表,需要将它去重加入到scheduleMap
146
+ if (rule?.schedule?.length) {
110
147
  for (const item of rule.schedule) {
111
- if ((0, import_dayjs.default)(item.date).isBefore((0, import_dayjs.default)(newDates[0].date), "day")) {
148
+ // 判断item.date是否在dates的开始和结束日期范围内,如果不在则跳过
149
+ if ((0, _dayjs.default)(item.date).isBefore((0, _dayjs.default)(newDates[0].date), 'day')) {
112
150
  continue;
113
151
  }
114
- if ((0, import_dayjs.default)(item.date).isAfter(
115
- (0, import_dayjs.default)(newDates[newDates.length - 1].date),
116
- "day"
117
- )) {
152
+ // 判断日程日期是否超过了dates中的最后一个日期,如果超过了则循环break
153
+ if ((0, _dayjs.default)(item.date).isAfter((0, _dayjs.default)(newDates[newDates.length - 1].date), 'day')) {
118
154
  break;
119
155
  }
156
+ // 在范围内的日程如果scheduleMap中不存在,则加入到scheduleMap
120
157
  if (!scheduleMap[item.date]) {
121
158
  scheduleMap[item.date] = item;
122
159
  } else {
@@ -126,70 +163,91 @@ var handleAvailableDatesByRules = (dates, rules) => {
126
163
  }
127
164
  }
128
165
  }
129
- const { future_day, unit, unit_type } = (rule == null ? void 0 : rule.cut_off_time) || {};
166
+ const {
167
+ future_day,
168
+ unit,
169
+ unit_type
170
+ } = rule?.cut_off_time || {};
171
+ // 预定天数存在,则开始计算从当前时间开始往后推预定天数作为结束时间
130
172
  if (future_day) {
131
- const endDate = (0, import_dayjs.default)().add(future_day, "day");
132
- if (!earliestEndDate || endDate.isBefore((0, import_dayjs.default)(earliestEndDate), "day")) {
133
- earliestEndDate = endDate.format("YYYY-MM-DD");
173
+ const endDate = (0, _dayjs.default)().add(future_day, 'day');
174
+ if (!earliestEndDate || endDate.isBefore((0, _dayjs.default)(earliestEndDate), 'day')) {
175
+ earliestEndDate = endDate.format('YYYY-MM-DD');
134
176
  }
135
177
  } else if (future_day === 0) {
136
- const endDate = (0, import_dayjs.default)();
137
- if (!earliestEndDate || endDate.isBefore((0, import_dayjs.default)(earliestEndDate), "day")) {
138
- earliestEndDate = endDate.format("YYYY-MM-DD");
178
+ const endDate = (0, _dayjs.default)();
179
+ if (!earliestEndDate || endDate.isBefore((0, _dayjs.default)(earliestEndDate), 'day')) {
180
+ earliestEndDate = endDate.format('YYYY-MM-DD');
139
181
  }
140
182
  }
183
+
184
+ // 如果存在提前预约时间,则开始计算从当前时间开始往后推提前预约时间作为开始时间
141
185
  if (unit && unit_type) {
142
- const startDate = (0, import_dayjs.default)(
143
- (0, import_dayjs.default)().add(unit, unit_type).format("YYYY-MM-DD")
144
- );
145
- if (!latestStartDate || startDate.isAfter((0, import_dayjs.default)(latestStartDate), "day")) {
146
- latestStartDate = startDate.format("YYYY-MM-DD");
186
+ const startDate = (0, _dayjs.default)((0, _dayjs.default)().add(unit, unit_type).format('YYYY-MM-DD'));
187
+ if (!latestStartDate || startDate.isAfter((0, _dayjs.default)(latestStartDate), 'day')) {
188
+ latestStartDate = startDate.format('YYYY-MM-DD');
147
189
  }
148
190
  }
149
- if ((_b = rule == null ? void 0 : rule.resourceFormIds) == null ? void 0 : _b.length) {
150
- resourceFormIds = [
151
- .../* @__PURE__ */ new Set([...resourceFormIds, ...rule == null ? void 0 : rule.resourceFormIds])
152
- ];
191
+ if (rule?.resourceFormIds?.length) {
192
+ // 去重
193
+ resourceFormIds = [...new Set([...resourceFormIds, ...rule?.resourceFormIds])];
153
194
  }
154
195
  });
155
- newDates = newDates.map((date) => {
156
- var _a;
157
- const disabledDate = { ...date, status: "unavailable" };
158
- const hasScheduleConfig = rules.find((n) => {
159
- var _a2;
160
- return (_a2 = n.schedule) == null ? void 0 : _a2.length;
161
- });
196
+ newDates = newDates.map(date => {
197
+ const disabledDate = {
198
+ ...date,
199
+ status: 'unavailable'
200
+ };
201
+ const hasScheduleConfig = rules.find(n => n.schedule?.length);
202
+ // 如果外面穿了 schedule,但是这个时候scheduleMap为空,则设置为不可用
203
+ // 这种情况为,商品设置了 5.1-5.31 可用,资源设置了 5.1-6.30 可用,session 类商品详情弹窗里里看到的6 月以后的日期都应该是不可用的
162
204
  if (Object.keys(scheduleMap).length === 0 && hasScheduleConfig) {
163
- return { ...date, color: "", status: "unavailable" };
205
+ return {
206
+ ...date,
207
+ color: '',
208
+ status: 'unavailable'
209
+ };
164
210
  }
211
+ // 根据日程判断日期是否可用
165
212
  if (Object.keys(scheduleMap).length) {
166
213
  const schedule = scheduleMap[date.date];
167
- if (!schedule || (schedule == null ? void 0 : schedule.isExcluded)) {
168
- return { ...date, color: schedule == null ? void 0 : schedule.color, status: "unavailable" };
214
+ // 如果日程不存在 或者 日程存在但是需要排除,则设置为不可用
215
+ if (!schedule || schedule?.isExcluded) {
216
+ return {
217
+ ...date,
218
+ color: schedule?.color,
219
+ status: 'unavailable'
220
+ };
169
221
  } else {
170
- date.color = schedule == null ? void 0 : schedule.color;
171
- disabledDate.color = schedule == null ? void 0 : schedule.color;
222
+ date.color = schedule?.color;
223
+ disabledDate.color = schedule?.color;
172
224
  }
173
225
  }
174
- if (!((_a = date == null ? void 0 : date.resource) == null ? void 0 : _a.length)) {
226
+
227
+ // 如果资源不存在,则设置为不可用
228
+ if (!date?.resource?.length) {
175
229
  return disabledDate;
176
230
  }
177
231
  if (latestStartDate || earliestEndDate) {
178
- if (latestStartDate && (0, import_dayjs.default)(date.date).isBefore(latestStartDate, "day")) {
232
+ // 如果时间在最早开始时间之前,则设置为不可用
233
+ if (latestStartDate && (0, _dayjs.default)(date.date).isBefore(latestStartDate, 'day')) {
179
234
  return disabledDate;
180
235
  }
181
- if (earliestEndDate && (0, import_dayjs.default)(date.date).isAfter(earliestEndDate, "day")) {
236
+ // 如果时间在最早结束时间之后,则设置为不可用
237
+ if (earliestEndDate && (0, _dayjs.default)(date.date).isAfter(earliestEndDate, 'day')) {
182
238
  return disabledDate;
183
239
  }
184
240
  }
185
- if (resourceFormIds == null ? void 0 : resourceFormIds.length) {
241
+
242
+ // 如果存在资源form_id,则开始计算资源form_id在日期上是否全部存在
243
+ if (resourceFormIds?.length) {
186
244
  let hasReourceCount = 0;
187
- resourceFormIds.forEach((formId) => {
188
- var _a2;
189
- if (((_a2 = date == null ? void 0 : date.resource) == null ? void 0 : _a2.find((item) => item.form_id === formId)) !== void 0) {
245
+ resourceFormIds.forEach(formId => {
246
+ if (date?.resource?.find(item => item.form_id === formId) !== undefined) {
190
247
  hasReourceCount++;
191
248
  }
192
249
  });
250
+ // 如果所需要的资源在日期上不足,则设置为不可用
193
251
  if (hasReourceCount < resourceFormIds.length) {
194
252
  return disabledDate;
195
253
  }
@@ -198,11 +256,4 @@ var handleAvailableDatesByRules = (dates, rules) => {
198
256
  });
199
257
  return newDates;
200
258
  };
201
- // Annotate the CommonJS export names for ESM import in node:
202
- 0 && (module.exports = {
203
- disableAllDates,
204
- disableDatesBeforeOneDay,
205
- generateMonthDates,
206
- handleAvailableDateByResource,
207
- handleAvailableDatesByRules
208
- });
259
+ exports.handleAvailableDatesByRules = handleAvailableDatesByRules;