@pisell/pisellos 0.10.15 → 0.10.16

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 (299) 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.js +0 -2
  10. package/dist/modules/Order/index.d.ts +1 -1
  11. package/dist/modules/Order/index.js +75 -91
  12. package/dist/modules/Order/types.d.ts +5 -1
  13. package/dist/modules/Order/utils.js +7 -1
  14. package/dist/modules/Payment/index.js +97 -162
  15. package/dist/modules/Product/types.d.ts +2 -0
  16. package/dist/modules/Rules/index.js +1 -4
  17. package/dist/modules/Schedule/index.js +0 -1
  18. package/dist/modules/Schedule/utils.js +0 -1
  19. package/dist/modules/Step/index.js +0 -1
  20. package/dist/plugins/request.js +1 -4
  21. package/dist/plugins/window.js +2 -6
  22. package/dist/server/index.js +97 -129
  23. package/dist/server/modules/menu/index.js +32 -41
  24. package/dist/server/modules/order/index.js +2 -4
  25. package/dist/server/modules/products/index.js +24 -42
  26. package/dist/server/modules/quotation/index.js +29 -38
  27. package/dist/server/modules/resource/index.js +3 -4
  28. package/dist/server/modules/schedule/index.js +27 -35
  29. package/dist/server/utils/product.js +0 -1
  30. package/dist/solution/BaseSales/index.js +100 -72
  31. package/dist/solution/BaseSales/types.d.ts +2 -0
  32. package/dist/solution/BaseSales/utils/cartPromotion.d.ts +5 -0
  33. package/dist/solution/BaseSales/utils/cartPromotion.js +15 -6
  34. package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.d.ts +3 -0
  35. package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +7 -1
  36. package/dist/solution/BaseSales/utils.js +6 -3
  37. package/dist/solution/BookingByStep/index.d.ts +1 -1
  38. package/dist/solution/BookingByStep/index.js +7 -59
  39. package/dist/solution/BookingByStep/utils/capacity.js +1 -11
  40. package/dist/solution/BookingByStep/utils/resources.js +1 -3
  41. package/dist/solution/BookingByStep/utils/timeslots.js +2 -43
  42. package/dist/solution/BookingTicket/index.js +8 -4
  43. package/dist/solution/BookingTicket/utils/addProductDecision.js +3 -1
  44. package/dist/solution/BookingTicket/utils/scan/cloudSearch.js +6 -7
  45. package/dist/solution/BookingTicket/utils/scan/handleScan.js +25 -31
  46. package/dist/solution/BookingTicket/utils/scan/index.js +6 -10
  47. package/dist/solution/BuyTickets/index.js +9 -12
  48. package/dist/solution/Checkout/index.js +177 -252
  49. package/dist/solution/Checkout/utils/index.js +4 -16
  50. package/dist/solution/RegisterAndLogin/index.js +30 -76
  51. package/dist/solution/ScanOrder/index.js +50 -60
  52. package/dist/solution/ScanOrder/types.d.ts +2 -0
  53. package/dist/solution/ScanOrder/utils.js +6 -3
  54. package/dist/solution/ShopDiscount/index.js +2 -7
  55. package/dist/solution/VenueBooking/index.js +45 -55
  56. package/dist/utils/task.js +15 -18
  57. package/dist/utils/watch.js +0 -1
  58. package/lib/apis/picoding.js +2 -0
  59. package/lib/core/index.js +131 -131
  60. package/lib/effects/index.js +46 -57
  61. package/lib/index.js +82 -49
  62. package/lib/model/index.js +14 -21
  63. package/lib/model/strategy/adapter/dataVariant/adapter.js +38 -50
  64. package/lib/model/strategy/adapter/dataVariant/evaluator.js +209 -315
  65. package/lib/model/strategy/adapter/dataVariant/examples.js +229 -237
  66. package/lib/model/strategy/adapter/dataVariant/index.js +39 -34
  67. package/lib/model/strategy/adapter/dataVariant/type.js +57 -28
  68. package/lib/model/strategy/adapter/index.js +100 -64
  69. package/lib/model/strategy/adapter/itemRule/adapter.js +156 -144
  70. package/lib/model/strategy/adapter/itemRule/evaluator.js +36 -48
  71. package/lib/model/strategy/adapter/itemRule/examples.js +295 -225
  72. package/lib/model/strategy/adapter/itemRule/index.js +83 -57
  73. package/lib/model/strategy/adapter/itemRule/type.js +97 -36
  74. package/lib/model/strategy/adapter/promotion/adapter.js +91 -69
  75. package/lib/model/strategy/adapter/promotion/evaluator.js +444 -310
  76. package/lib/model/strategy/adapter/promotion/examples.js +222 -234
  77. package/lib/model/strategy/adapter/promotion/index.js +43 -48
  78. package/lib/model/strategy/adapter/promotion/type.js +243 -36
  79. package/lib/model/strategy/adapter/type.js +4 -16
  80. package/lib/model/strategy/adapter/walletPass/evaluator.js +180 -150
  81. package/lib/model/strategy/adapter/walletPass/example.js +217 -190
  82. package/lib/model/strategy/adapter/walletPass/index.js +75 -51
  83. package/lib/model/strategy/adapter/walletPass/locales.js +36 -58
  84. package/lib/model/strategy/adapter/walletPass/type.js +4 -16
  85. package/lib/model/strategy/adapter/walletPass/utils.js +588 -378
  86. package/lib/model/strategy/engine.js +270 -168
  87. package/lib/model/strategy/index.js +49 -34
  88. package/lib/model/strategy/strategy-example.js +243 -239
  89. package/lib/model/strategy/type.js +100 -40
  90. package/lib/modules/Account/index.js +39 -53
  91. package/lib/modules/Account/types.js +20 -33
  92. package/lib/modules/AccountList/index.js +116 -154
  93. package/lib/modules/AccountList/types.js +30 -31
  94. package/lib/modules/AccountList/utils.js +18 -30
  95. package/lib/modules/BaseModule.js +23 -42
  96. package/lib/modules/BookingContext/index.js +158 -136
  97. package/lib/modules/BookingContext/types.js +46 -32
  98. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +138 -146
  99. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +78 -83
  100. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +170 -150
  101. package/lib/modules/BookingContext/utils/flexible.js +38 -55
  102. package/lib/modules/BookingContext/utils/formatResourceList.js +19 -34
  103. package/lib/modules/BookingContext/utils/index.js +124 -41
  104. package/lib/modules/BookingContext/utils/noResource.js +58 -70
  105. package/lib/modules/BookingContext/utils/orderLineDisplay.js +14 -41
  106. package/lib/modules/BookingContext/utils/productExtend.js +202 -155
  107. package/lib/modules/BookingContext/utils/resourceErrors.js +53 -53
  108. package/lib/modules/BookingContext/utils/resourceSelection.js +19 -41
  109. package/lib/modules/BookingContext/utils/resources.js +209 -167
  110. package/lib/modules/BookingContext/utils/serviceTimes.js +115 -116
  111. package/lib/modules/BookingContext/utils/timeSlices.js +76 -86
  112. package/lib/modules/Cart/index.js +170 -124
  113. package/lib/modules/Cart/types.js +46 -51
  114. package/lib/modules/Cart/utils/cartAccount.js +40 -39
  115. package/lib/modules/Cart/utils/cartDate.js +56 -61
  116. package/lib/modules/Cart/utils/cartDiscount.js +28 -33
  117. package/lib/modules/Cart/utils/cartNote.js +27 -32
  118. package/lib/modules/Cart/utils/cartProduct.js +321 -251
  119. package/lib/modules/Cart/utils/cartRelationForms.js +29 -35
  120. package/lib/modules/Cart/utils/cartResource.js +70 -78
  121. package/lib/modules/Cart/utils/changePrice.js +22 -50
  122. package/lib/modules/Cart/utils/index.js +106 -48
  123. package/lib/modules/Customer/constants.js +13 -34
  124. package/lib/modules/Customer/index.js +235 -172
  125. package/lib/modules/Customer/types.js +38 -35
  126. package/lib/modules/Date/index.js +116 -115
  127. package/lib/modules/Date/types.js +16 -28
  128. package/lib/modules/Date/utils.js +174 -123
  129. package/lib/modules/Discount/index.js +133 -143
  130. package/lib/modules/Discount/types.js +9 -31
  131. package/lib/modules/Guests/index.js +30 -56
  132. package/lib/modules/Guests/types.js +23 -33
  133. package/lib/modules/Holder/index.js +209 -189
  134. package/lib/modules/Holder/types.js +4 -16
  135. package/lib/modules/Holder/utils.js +20 -49
  136. package/lib/modules/OpenData/index.js +70 -76
  137. package/lib/modules/OpenData/types.js +4 -16
  138. package/lib/modules/OpenData/utils.js +44 -78
  139. package/lib/modules/Order/index.d.ts +1 -1
  140. package/lib/modules/Order/index.js +1810 -2238
  141. package/lib/modules/Order/payment-utils.js +77 -120
  142. package/lib/modules/Order/types.d.ts +5 -1
  143. package/lib/modules/Order/types.js +87 -35
  144. package/lib/modules/Order/utils/bundleDiscountHydration.js +41 -74
  145. package/lib/modules/Order/utils/discountProductLineIdentity.js +142 -100
  146. package/lib/modules/Order/utils/manualProductDiscount.js +124 -123
  147. package/lib/modules/Order/utils/orderCollectionIdentity.js +184 -244
  148. package/lib/modules/Order/utils/virtualSettlement.js +120 -171
  149. package/lib/modules/Order/utils.js +834 -668
  150. package/lib/modules/Payment/cash.js +20 -33
  151. package/lib/modules/Payment/cashRecommendationAlgorithm.js +145 -76
  152. package/lib/modules/Payment/eftpos.js +16 -30
  153. package/lib/modules/Payment/index.js +532 -399
  154. package/lib/modules/Payment/mx51.js +1 -0
  155. package/lib/modules/Payment/types.js +230 -108
  156. package/lib/modules/Payment/utils.js +52 -51
  157. package/lib/modules/Payment/walletpass.js +485 -660
  158. package/lib/modules/Product/index.js +51 -46
  159. package/lib/modules/Product/types.d.ts +2 -0
  160. package/lib/modules/Product/types.js +4 -16
  161. package/lib/modules/Product/utils.js +32 -33
  162. package/lib/modules/ProductList/index.js +138 -161
  163. package/lib/modules/ProductList/types.js +9 -31
  164. package/lib/modules/Quotation/index.js +66 -100
  165. package/lib/modules/Quotation/types.js +4 -16
  166. package/lib/modules/Resource/index.js +27 -59
  167. package/lib/modules/Resource/types.js +22 -32
  168. package/lib/modules/Resource/utils.js +30 -38
  169. package/lib/modules/ResourcePlanner/index.js +25 -23
  170. package/lib/modules/ResourcePlanner/localClock.js +54 -119
  171. package/lib/modules/ResourcePlanner/planner.js +591 -772
  172. package/lib/modules/ResourcePlanner/types.js +10 -29
  173. package/lib/modules/Rules/index.js +1218 -959
  174. package/lib/modules/Rules/types.js +17 -40
  175. package/lib/modules/SalesSummary/index.js +78 -89
  176. package/lib/modules/SalesSummary/types.js +4 -16
  177. package/lib/modules/SalesSummary/utils.js +359 -442
  178. package/lib/modules/ScanOrderLogger/index.js +59 -79
  179. package/lib/modules/ScanOrderLogger/providers/feishu.js +54 -78
  180. package/lib/modules/ScanOrderLogger/providers/grafana.js +13 -36
  181. package/lib/modules/ScanOrderLogger/types.js +4 -16
  182. package/lib/modules/Schedule/getDateIsInSchedule.js +334 -163
  183. package/lib/modules/Schedule/index.js +100 -114
  184. package/lib/modules/Schedule/type.js +4 -16
  185. package/lib/modules/Schedule/types.js +4 -16
  186. package/lib/modules/Schedule/utils.js +433 -291
  187. package/lib/modules/Step/index.js +40 -52
  188. package/lib/modules/Step/tyeps.js +4 -16
  189. package/lib/modules/Summary/index.js +66 -71
  190. package/lib/modules/Summary/types.js +4 -16
  191. package/lib/modules/Summary/utils.js +773 -418
  192. package/lib/modules/SurchargeList/index.js +46 -60
  193. package/lib/modules/SurchargeList/types.js +4 -16
  194. package/lib/modules/index.js +245 -63
  195. package/lib/plugins/app.js +4 -16
  196. package/lib/plugins/index.js +36 -25
  197. package/lib/plugins/request.js +137 -126
  198. package/lib/plugins/shopStore.js +4 -16
  199. package/lib/plugins/user.js +4 -16
  200. package/lib/plugins/window.js +171 -179
  201. package/lib/server/index.js +3027 -2655
  202. package/lib/server/modules/floor-plan/index.js +102 -123
  203. package/lib/server/modules/floor-plan/types.js +15 -30
  204. package/lib/server/modules/index.js +106 -68
  205. package/lib/server/modules/menu/index.js +146 -122
  206. package/lib/server/modules/menu/types.js +18 -31
  207. package/lib/server/modules/order/index.js +758 -956
  208. package/lib/server/modules/order/types.js +122 -33
  209. package/lib/server/modules/order/utils/filterBookings.js +219 -194
  210. package/lib/server/modules/order/utils/filterOrders.js +118 -92
  211. package/lib/server/modules/payment/index.js +59 -83
  212. package/lib/server/modules/payment/types.js +4 -16
  213. package/lib/server/modules/products/index.js +575 -459
  214. package/lib/server/modules/products/types.js +44 -34
  215. package/lib/server/modules/quotation/index.js +137 -172
  216. package/lib/server/modules/quotation/types.js +21 -31
  217. package/lib/server/modules/resource/index.js +213 -184
  218. package/lib/server/modules/resource/types.js +42 -33
  219. package/lib/server/modules/schedule/index.js +135 -123
  220. package/lib/server/modules/schedule/types.js +14 -21
  221. package/lib/server/modules/schedule/utils.js +334 -163
  222. package/lib/server/types.js +4 -16
  223. package/lib/server/utils/index.js +25 -23
  224. package/lib/server/utils/product.js +196 -139
  225. package/lib/server/utils/schedule.js +34 -41
  226. package/lib/server/utils/small-ticket.js +479 -456
  227. package/lib/server/utils/time.js +40 -49
  228. package/lib/solution/BaseSales/index.js +1274 -1489
  229. package/lib/solution/BaseSales/types.d.ts +2 -0
  230. package/lib/solution/BaseSales/types.js +42 -38
  231. package/lib/solution/BaseSales/utils/cartPromotion.d.ts +5 -0
  232. package/lib/solution/BaseSales/utils/cartPromotion.js +652 -498
  233. package/lib/solution/BaseSales/utils/parseSalesResponse.js +85 -105
  234. package/lib/solution/BaseSales/utils/quotationPrice.js +56 -114
  235. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.d.ts +3 -0
  236. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +138 -180
  237. package/lib/solution/BaseSales/utils.js +161 -143
  238. package/lib/solution/BookingByStep/index.d.ts +1 -1
  239. package/lib/solution/BookingByStep/index.js +1527 -1340
  240. package/lib/solution/BookingByStep/types.js +40 -99
  241. package/lib/solution/BookingByStep/utils/capacity.js +192 -160
  242. package/lib/solution/BookingByStep/utils/products.js +42 -52
  243. package/lib/solution/BookingByStep/utils/resources.js +527 -330
  244. package/lib/solution/BookingByStep/utils/stock.js +65 -44
  245. package/lib/solution/BookingByStep/utils/timeslots.js +129 -131
  246. package/lib/solution/BookingTicket/index.js +598 -514
  247. package/lib/solution/BookingTicket/types.js +99 -77
  248. package/lib/solution/BookingTicket/utils/addProductDecision.js +229 -190
  249. package/lib/solution/BookingTicket/utils/addTimeAvailability.js +58 -89
  250. package/lib/solution/BookingTicket/utils/bookingStatus.js +107 -78
  251. package/lib/solution/BookingTicket/utils/cartView.js +114 -99
  252. package/lib/solution/BookingTicket/utils/exampleData.js +185 -0
  253. package/lib/solution/BookingTicket/utils/orderCustomer.js +18 -41
  254. package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +219 -86
  255. package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +168 -116
  256. package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +79 -91
  257. package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +54 -41
  258. package/lib/solution/BookingTicket/utils/scan/handleScan.js +84 -81
  259. package/lib/solution/BookingTicket/utils/scan/index.js +98 -104
  260. package/lib/solution/BookingTicket/utils/scan/scanCache.js +90 -43
  261. package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +52 -64
  262. package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +56 -58
  263. package/lib/solution/BookingTicket/utils/weighingProductSku.js +34 -48
  264. package/lib/solution/BuyTickets/index.js +67 -70
  265. package/lib/solution/BuyTickets/types.js +22 -38
  266. package/lib/solution/Checkout/index.js +1451 -1158
  267. package/lib/solution/Checkout/types.js +91 -61
  268. package/lib/solution/Checkout/utils/index.js +228 -156
  269. package/lib/solution/PlaceOrder/index.js +55 -0
  270. package/lib/solution/RegisterAndLogin/config.js +493 -460
  271. package/lib/solution/RegisterAndLogin/index.js +633 -630
  272. package/lib/solution/RegisterAndLogin/types.js +189 -76
  273. package/lib/solution/RegisterAndLogin/utils.js +183 -125
  274. package/lib/solution/Sales/index.js +328 -324
  275. package/lib/solution/Sales/types.js +27 -33
  276. package/lib/solution/ScanOrder/index.js +822 -852
  277. package/lib/solution/ScanOrder/types.d.ts +2 -0
  278. package/lib/solution/ScanOrder/types.js +33 -34
  279. package/lib/solution/ScanOrder/utils.js +412 -374
  280. package/lib/solution/ShopDiscount/index.js +226 -232
  281. package/lib/solution/ShopDiscount/types.js +15 -37
  282. package/lib/solution/ShopDiscount/utils.js +300 -172
  283. package/lib/solution/UnifiedBookingSales/index.js +1052 -1213
  284. package/lib/solution/UnifiedBookingSales/remoteOccupancyCache.js +99 -159
  285. package/lib/solution/UnifiedBookingSales/types.js +10 -32
  286. package/lib/solution/VenueBooking/index.js +811 -879
  287. package/lib/solution/VenueBooking/types.js +19 -39
  288. package/lib/solution/VenueBooking/utils/dateSummary.js +27 -56
  289. package/lib/solution/VenueBooking/utils/resource.js +31 -54
  290. package/lib/solution/VenueBooking/utils/slotMerge.js +94 -107
  291. package/lib/solution/VenueBooking/utils/timeSlot.js +132 -132
  292. package/lib/solution/VenueBooking/utils.js +130 -67
  293. package/lib/solution/index.js +124 -41
  294. package/lib/store/createStore.js +32 -29
  295. package/lib/types/index.js +4 -16
  296. package/lib/utils/payment-number.js +26 -46
  297. package/lib/utils/task.js +36 -36
  298. package/lib/utils/watch.js +81 -47
  299. package/package.json +2 -1
@@ -1,64 +1,45 @@
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/Schedule/index.ts
30
- var Schedule_exports = {};
31
- __export(Schedule_exports, {
32
- ScheduleModule: () => ScheduleModule
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
33
5
  });
34
- module.exports = __toCommonJS(Schedule_exports);
35
- var import_lodash_es = require("lodash-es");
36
- var import_BaseModule = require("../BaseModule");
37
- var import_dayjs = __toESM(require("dayjs"));
38
- var import_isSameOrBefore = __toESM(require("dayjs/plugin/isSameOrBefore"));
39
- var import_isSameOrAfter = __toESM(require("dayjs/plugin/isSameOrAfter"));
40
- var import_utils = require("../Date/utils");
41
- var import_utils2 = require("./utils");
42
- var import_getDateIsInSchedule = require("./getDateIsInSchedule");
43
- import_dayjs.default.extend(import_isSameOrBefore.default);
44
- import_dayjs.default.extend(import_isSameOrAfter.default);
45
- var ScheduleModule = class extends import_BaseModule.BaseModule {
6
+ exports.ScheduleModule = void 0;
7
+ var _lodashEs = require("lodash-es");
8
+ var _BaseModule = require("../BaseModule");
9
+ var _dayjs = _interopRequireDefault(require("dayjs"));
10
+ var _isSameOrBefore = _interopRequireDefault(require("dayjs/plugin/isSameOrBefore"));
11
+ var _isSameOrAfter = _interopRequireDefault(require("dayjs/plugin/isSameOrAfter"));
12
+ var _utils = require("../Date/utils");
13
+ var _utils2 = require("./utils");
14
+ var _getDateIsInSchedule = require("./getDateIsInSchedule");
15
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
+ _dayjs.default.extend(_isSameOrBefore.default);
17
+ _dayjs.default.extend(_isSameOrAfter.default);
18
+ class ScheduleModule extends _BaseModule.BaseModule {
19
+ defaultName = 'schedule';
20
+ defaultVersion = '1.0.0';
21
+ request;
22
+ store = {};
23
+ cacheId;
24
+ openCache = false;
25
+ fatherModule;
26
+ hasLoadedScheduleList = false;
46
27
  constructor(name, version) {
47
28
  super(name, version);
48
- this.defaultName = "schedule";
49
- this.defaultVersion = "1.0.0";
50
- this.store = {};
51
- this.openCache = false;
52
- this.hasLoadedScheduleList = false;
53
29
  }
54
30
  async initialize(core, options) {
55
- var _a, _b;
56
31
  this.core = core;
57
- this.request = core.getPlugin("request");
32
+
33
+ // 获取依赖的插件
34
+ this.request = core.getPlugin('request');
58
35
  if (!this.request) {
59
- throw new Error("ScheduleModule 需要 request 插件支持");
36
+ throw new Error('ScheduleModule 需要 request 插件支持');
60
37
  }
61
- this.store = options == null ? void 0 : options.store;
38
+
39
+ // if (options?.initialState) {
40
+ // this.state = { ...this.state, ...options.initialState }
41
+ // }
42
+ this.store = options?.store;
62
43
  if (options.initialState) {
63
44
  this.store.scheduleList = options.initialState.scheduleList;
64
45
  this.syncScheduleMap();
@@ -66,18 +47,19 @@ var ScheduleModule = class extends import_BaseModule.BaseModule {
66
47
  this.hasLoadedScheduleList = Array.isArray(options.initialState.scheduleList);
67
48
  } else {
68
49
  this.store.scheduleList = [];
69
- this.store.map = /* @__PURE__ */ new Map();
50
+ this.store.map = new Map();
70
51
  this.store.availabilityDateList = [];
71
52
  this.hasLoadedScheduleList = false;
72
53
  }
73
- if ((_a = options.otherParams) == null ? void 0 : _a.cacheId) {
54
+ if (options.otherParams?.cacheId) {
74
55
  this.openCache = options.otherParams.openCache;
75
56
  this.cacheId = options.otherParams.cacheId;
76
57
  }
77
- if ((_b = options.otherParams) == null ? void 0 : _b.fatherModule) {
58
+ if (options.otherParams?.fatherModule) {
78
59
  this.fatherModule = options.otherParams.fatherModule;
79
60
  }
80
61
  }
62
+
81
63
  /**
82
64
  * 更新父级解决方案透传的运行态参数,并刷新 schedule 缓存写入配置。
83
65
  *
@@ -90,19 +72,19 @@ var ScheduleModule = class extends import_BaseModule.BaseModule {
90
72
  this.cacheId = otherParams.cacheId;
91
73
  this.fatherModule = otherParams.fatherModule;
92
74
  }
75
+
93
76
  /**
94
77
  * 加载当前店铺下所有 schedule
95
78
  *
96
79
  * @memberof ScheduleModule
97
80
  */
98
81
  async loadAllSchedule(options = {}) {
99
- var _a;
100
- const scheduleList = await this.request.get(
101
- `/schedule`,
102
- { num: 999 },
103
- { useCache: options.useCache ?? true }
104
- );
105
- this.setScheduleList(((_a = scheduleList.data) == null ? void 0 : _a.list) || []);
82
+ const scheduleList = await this.request.get(`/schedule`, {
83
+ num: 999
84
+ }, {
85
+ useCache: options.useCache ?? true
86
+ });
87
+ this.setScheduleList(scheduleList.data?.list || []);
106
88
  }
107
89
  setScheduleList(list) {
108
90
  this.store.scheduleList = list;
@@ -110,9 +92,7 @@ var ScheduleModule = class extends import_BaseModule.BaseModule {
110
92
  this.hasLoadedScheduleList = true;
111
93
  }
112
94
  syncScheduleMap() {
113
- this.store.map = new Map(
114
- (this.store.scheduleList || []).map((schedule) => [Number(schedule.id), schedule])
115
- );
95
+ this.store.map = new Map((this.store.scheduleList || []).map(schedule => [Number(schedule.id), schedule]));
116
96
  }
117
97
  getScheduleList() {
118
98
  return this.store.scheduleList || [];
@@ -126,54 +106,54 @@ var ScheduleModule = class extends import_BaseModule.BaseModule {
126
106
  custom_page_id,
127
107
  channel
128
108
  }) {
129
- if ((0, import_dayjs.default)(startDate).isBefore((0, import_dayjs.default)(), "day")) {
130
- startDate = (0, import_dayjs.default)().format("YYYY-MM-DD");
109
+ // 前端传递的 startDate,可能是今天之前的,如果 startDate 小于今天,需要把 startDate 置为今天
110
+ if ((0, _dayjs.default)(startDate).isBefore((0, _dayjs.default)(), 'day')) {
111
+ startDate = (0, _dayjs.default)().format('YYYY-MM-DD');
131
112
  }
132
- let dates = (0, import_utils.generateMonthDates)(startDate, endDate);
133
- dates = (0, import_utils.disableAllDates)(dates);
134
- if ((0, import_dayjs.default)(endDate).isBefore((0, import_dayjs.default)(), "day")) {
113
+ // 1.生成当前月份的所有日期,默认都不可用
114
+ let dates = (0, _utils.generateMonthDates)(startDate, endDate);
115
+ dates = (0, _utils.disableAllDates)(dates);
116
+ // 如果 endDate 在今天之前,则不用查接口,直接返回 dates
117
+ if ((0, _dayjs.default)(endDate).isBefore((0, _dayjs.default)(), 'day')) {
135
118
  return dates;
136
119
  }
137
- const res = await this.request.get(
138
- `/schedule/product/availability/v2`,
139
- {
140
- start_date: startDate,
141
- end_date: endDate,
142
- custom_page_id,
143
- channel
144
- }
145
- );
120
+ const res = await this.request.get(`/schedule/product/availability/v2`, {
121
+ start_date: startDate,
122
+ end_date: endDate,
123
+ custom_page_id,
124
+ channel
125
+ });
146
126
  const responseData = res.data || {};
147
127
  const dateList = Array.isArray(responseData.date_list) ? responseData.date_list : [];
148
128
  const otherProductIds = Array.isArray(responseData.other_product_ids) ? responseData.other_product_ids : [];
149
129
  this.setAvailabilityScheduleDateList(dateList);
150
130
  this.setOtherProductsIds(otherProductIds);
151
- if (!dateList.length && !otherProductIds.length || (0, import_dayjs.default)(endDate).isBefore((0, import_dayjs.default)(), "day")) {
131
+ // 如果没有schedule或者结束日期在今天之前,则所有日期均不可用
132
+ if (!dateList.length && !otherProductIds.length || (0, _dayjs.default)(endDate).isBefore((0, _dayjs.default)(), 'day')) {
152
133
  return dates;
153
134
  }
154
135
  if (otherProductIds.length) {
155
- dates.forEach((n) => {
156
- n.status = "available";
136
+ // 如果后端有返回 other_product_ids ,意味着有 duration 商品,则今天以及今天以后的日期均可用
137
+ dates.forEach(n => {
138
+ n.status = 'available';
157
139
  });
158
140
  } else {
159
- dateList.forEach((n) => {
160
- const index = dates.findIndex((m) => m.date === n.date);
141
+ dateList.forEach(n => {
142
+ const index = dates.findIndex(m => m.date === n.date);
161
143
  if (index !== -1) {
162
- dates[index].status = "available";
144
+ dates[index].status = 'available';
163
145
  }
164
146
  });
165
147
  }
166
- dates = (0, import_utils.disableDatesBeforeOneDay)(dates);
148
+ dates = (0, _utils.disableDatesBeforeOneDay)(dates);
167
149
  return dates;
168
150
  }
169
151
  getScheduleListByIds(ids) {
170
- var _a;
171
- const idSet = new Set(ids.map((id) => String(id)));
172
- console.log("getScheduleListByIds", this.store.scheduleList);
152
+ const idSet = new Set(ids.map(id => String(id)));
173
153
  if (this.store.map instanceof Map && this.store.map.size > 0) {
174
- return ids.map((id) => this.store.map.get(Number(id))).filter(Boolean);
154
+ return ids.map(id => this.store.map.get(Number(id))).filter(Boolean);
175
155
  }
176
- const list = (_a = this.store.scheduleList) == null ? void 0 : _a.filter((n) => idSet.has(String(n.id)));
156
+ const list = this.store.scheduleList?.filter(n => idSet.has(String(n.id)));
177
157
  return list;
178
158
  }
179
159
  setAvailabilityScheduleDateList(list) {
@@ -190,12 +170,13 @@ var ScheduleModule = class extends import_BaseModule.BaseModule {
190
170
  }
191
171
  storeChange() {
192
172
  if (this.openCache) {
193
- const store = (0, import_lodash_es.cloneDeep)(this.store);
173
+ const store = (0, _lodashEs.cloneDeep)(this.store);
174
+ // store里的 list 要主动基于 id 做下去重,避免重复写入
194
175
  this.checkSaveCache({
195
176
  cacheId: this.cacheId,
196
177
  fatherModule: this.fatherModule,
197
178
  store,
198
- cacheKey: ["scheduleList", "availabilityDateList", "otherProductsIds"]
179
+ cacheKey: ['scheduleList', 'availabilityDateList', 'otherProductsIds']
199
180
  });
200
181
  }
201
182
  }
@@ -208,7 +189,7 @@ var ScheduleModule = class extends import_BaseModule.BaseModule {
208
189
  date,
209
190
  schedule
210
191
  }) {
211
- return (0, import_getDateIsInSchedule.getDateIsInSchedule)(date, [schedule]);
192
+ return (0, _getDateIsInSchedule.getDateIsInSchedule)(date, [schedule]);
212
193
  }
213
194
  /**
214
195
  * 传入一个时间, 判断改时间是否在schedule 内
@@ -219,37 +200,41 @@ var ScheduleModule = class extends import_BaseModule.BaseModule {
219
200
  date,
220
201
  schedule
221
202
  }) {
222
- var _a, _b, _c, _d;
223
- return (0, import_getDateIsInSchedule.getDateIsInSchedule)(date, [schedule]);
203
+ return (0, _getDateIsInSchedule.getDateIsInSchedule)(date, [schedule]);
224
204
  if (schedule.start_time && schedule.end_time) {
225
- const isBeforeStartTime = (0, import_dayjs.default)(date).isBefore(
226
- (0, import_dayjs.default)(schedule.start_time)
227
- );
228
- const isAfterEndTime = (0, import_dayjs.default)(date).isAfter((0, import_dayjs.default)(schedule.end_time));
205
+ const isBeforeStartTime = (0, _dayjs.default)(date).isBefore((0, _dayjs.default)(schedule.start_time));
206
+ const isAfterEndTime = (0, _dayjs.default)(date).isAfter((0, _dayjs.default)(schedule.end_time));
207
+ // 如果不在 schedule 日期区间内直接返回false
229
208
  if (isBeforeStartTime || isAfterEndTime) {
230
209
  return false;
231
210
  }
232
211
  }
212
+
213
+ // 节约性能, 强制将schedule的时间范围改为前后一天,避免大量计算.
233
214
  let _schedule = {
234
215
  ...schedule,
235
216
  // 开始时间向前推一天
236
- start_time: (0, import_dayjs.default)(date).subtract(1, "day").format("YYYY-MM-DD HH:mm:ss"),
237
- end_time: (0, import_dayjs.default)(date).add(1, "day").format("YYYY-MM-DD HH:mm:ss")
217
+ start_time: (0, _dayjs.default)(date).subtract(1, 'day').format('YYYY-MM-DD HH:mm:ss'),
218
+ end_time: (0, _dayjs.default)(date).add(1, 'day').format('YYYY-MM-DD HH:mm:ss')
238
219
  };
239
- if (((_b = (_a = _schedule.repeat_rule) == null ? void 0 : _a.end) == null ? void 0 : _b.type) === "never") {
220
+
221
+ // 不限制的 改为后一天
222
+ if (_schedule.repeat_rule?.end?.type === 'never') {
240
223
  _schedule = {
241
224
  ..._schedule,
242
225
  repeat_rule: {
243
226
  ..._schedule.repeat_rule,
244
227
  end: {
245
- type: "date",
228
+ type: 'date',
246
229
  end_date: _schedule.end_time,
247
230
  occurrence: null
248
231
  }
249
232
  }
250
233
  };
251
234
  }
252
- if (((_d = (_c = _schedule.repeat_rule) == null ? void 0 : _c.end) == null ? void 0 : _d.type) === "date") {
235
+
236
+ // 限制结束日期的也改为后一天
237
+ if (_schedule.repeat_rule?.end?.type === 'date') {
253
238
  _schedule = {
254
239
  ..._schedule,
255
240
  repeat_rule: {
@@ -261,17 +246,18 @@ var ScheduleModule = class extends import_BaseModule.BaseModule {
261
246
  }
262
247
  };
263
248
  }
264
- const dateRanges = (0, import_utils2.calcScheduleDateRange)({ ..._schedule });
249
+ const dateRanges = (0, _utils2.calcScheduleDateRange)({
250
+ ..._schedule
251
+ });
265
252
  for (const range of dateRanges) {
266
- const startTime = (0, import_dayjs.default)(range.start);
267
- const endTime = (0, import_dayjs.default)(range.end);
268
- if ((0, import_dayjs.default)(date).isSameOrAfter(startTime) && (0, import_dayjs.default)(date).isSameOrBefore(endTime)) {
253
+ const startTime = (0, _dayjs.default)(range.start);
254
+ const endTime = (0, _dayjs.default)(range.end);
255
+
256
+ // 如果输入时间在这个范围内(包含边界)
257
+ if ((0, _dayjs.default)(date).isSameOrAfter(startTime) && (0, _dayjs.default)(date).isSameOrBefore(endTime)) {
269
258
  return true;
270
259
  }
271
260
  }
272
261
  }
273
- };
274
- // Annotate the CommonJS export names for ESM import in node:
275
- 0 && (module.exports = {
276
- ScheduleModule
277
- });
262
+ }
263
+ exports.ScheduleModule = ScheduleModule;
@@ -1,17 +1,5 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __copyProps = (to, from, except, desc) => {
6
- if (from && typeof from === "object" || typeof from === "function") {
7
- for (let key of __getOwnPropNames(from))
8
- if (!__hasOwnProp.call(to, key) && key !== except)
9
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
- }
11
- return to;
12
- };
13
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
1
+ "use strict";
14
2
 
15
- // src/modules/Schedule/type.ts
16
- var type_exports = {};
17
- module.exports = __toCommonJS(type_exports);
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -1,17 +1,5 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __copyProps = (to, from, except, desc) => {
6
- if (from && typeof from === "object" || typeof from === "function") {
7
- for (let key of __getOwnPropNames(from))
8
- if (!__hasOwnProp.call(to, key) && key !== except)
9
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
- }
11
- return to;
12
- };
13
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
1
+ "use strict";
14
2
 
15
- // src/modules/Schedule/types.ts
16
- var types_exports = {};
17
- module.exports = __toCommonJS(types_exports);
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });