@pisell/pisellos 2.2.282 → 2.2.284

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 (285) hide show
  1. package/dist/core/index.js +6 -9
  2. package/dist/model/strategy/adapter/promotion/index.js +9 -0
  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 +2 -2
  11. package/dist/modules/Order/index.js +75 -91
  12. package/dist/modules/Order/types.d.ts +3 -1
  13. package/dist/modules/Payment/index.js +97 -162
  14. package/dist/modules/Rules/index.js +1 -4
  15. package/dist/modules/Schedule/index.js +0 -1
  16. package/dist/modules/Schedule/utils.js +0 -1
  17. package/dist/modules/Step/index.js +0 -1
  18. package/dist/modules/Summary/utils.d.ts +1 -1
  19. package/dist/plugins/request.js +1 -4
  20. package/dist/plugins/window.js +2 -6
  21. package/dist/server/index.js +97 -129
  22. package/dist/server/modules/menu/index.js +32 -41
  23. package/dist/server/modules/order/index.js +2 -4
  24. package/dist/server/modules/products/index.js +24 -42
  25. package/dist/server/modules/quotation/index.js +29 -38
  26. package/dist/server/modules/resource/index.js +3 -4
  27. package/dist/server/modules/schedule/index.js +27 -35
  28. package/dist/server/utils/product.js +0 -1
  29. package/dist/solution/BaseSales/index.js +100 -72
  30. package/dist/solution/BaseSales/utils/cartPromotion.d.ts +5 -0
  31. package/dist/solution/BaseSales/utils/cartPromotion.js +15 -6
  32. package/dist/solution/BookingByStep/index.d.ts +1 -1
  33. package/dist/solution/BookingByStep/index.js +7 -59
  34. package/dist/solution/BookingByStep/utils/capacity.js +1 -11
  35. package/dist/solution/BookingByStep/utils/resources.js +1 -3
  36. package/dist/solution/BookingByStep/utils/timeslots.js +2 -43
  37. package/dist/solution/BookingTicket/index.js +8 -4
  38. package/dist/solution/BookingTicket/utils/scan/cloudSearch.js +6 -7
  39. package/dist/solution/BookingTicket/utils/scan/handleScan.js +25 -31
  40. package/dist/solution/BookingTicket/utils/scan/index.js +6 -10
  41. package/dist/solution/BuyTickets/index.js +9 -12
  42. package/dist/solution/Checkout/index.js +177 -252
  43. package/dist/solution/Checkout/utils/index.js +4 -16
  44. package/dist/solution/RegisterAndLogin/index.js +30 -76
  45. package/dist/solution/ScanOrder/index.js +50 -60
  46. package/dist/solution/ShopDiscount/index.js +2 -7
  47. package/dist/solution/VenueBooking/index.js +45 -55
  48. package/dist/utils/task.js +15 -18
  49. package/dist/utils/watch.js +0 -1
  50. package/lib/apis/picoding.js +2 -0
  51. package/lib/core/index.js +131 -131
  52. package/lib/effects/index.js +46 -57
  53. package/lib/index.js +82 -49
  54. package/lib/model/index.js +14 -21
  55. package/lib/model/strategy/adapter/dataVariant/adapter.js +38 -50
  56. package/lib/model/strategy/adapter/dataVariant/evaluator.js +162 -236
  57. package/lib/model/strategy/adapter/dataVariant/examples.js +229 -237
  58. package/lib/model/strategy/adapter/dataVariant/index.js +39 -34
  59. package/lib/model/strategy/adapter/dataVariant/type.js +57 -28
  60. package/lib/model/strategy/adapter/index.js +100 -64
  61. package/lib/model/strategy/adapter/itemRule/adapter.js +156 -144
  62. package/lib/model/strategy/adapter/itemRule/evaluator.js +36 -48
  63. package/lib/model/strategy/adapter/itemRule/examples.js +295 -225
  64. package/lib/model/strategy/adapter/itemRule/index.js +83 -57
  65. package/lib/model/strategy/adapter/itemRule/type.js +97 -36
  66. package/lib/model/strategy/adapter/promotion/adapter.js +91 -69
  67. package/lib/model/strategy/adapter/promotion/evaluator.js +444 -310
  68. package/lib/model/strategy/adapter/promotion/examples.js +222 -234
  69. package/lib/model/strategy/adapter/promotion/index.js +1 -51
  70. package/lib/model/strategy/adapter/promotion/type.js +243 -36
  71. package/lib/model/strategy/adapter/type.js +4 -16
  72. package/lib/model/strategy/adapter/walletPass/evaluator.js +180 -150
  73. package/lib/model/strategy/adapter/walletPass/example.js +217 -190
  74. package/lib/model/strategy/adapter/walletPass/index.js +75 -51
  75. package/lib/model/strategy/adapter/walletPass/locales.js +36 -58
  76. package/lib/model/strategy/adapter/walletPass/type.js +4 -16
  77. package/lib/model/strategy/adapter/walletPass/utils.js +588 -378
  78. package/lib/model/strategy/engine.js +270 -168
  79. package/lib/model/strategy/index.js +49 -34
  80. package/lib/model/strategy/strategy-example.js +243 -239
  81. package/lib/model/strategy/type.js +100 -40
  82. package/lib/modules/Account/index.js +39 -53
  83. package/lib/modules/Account/types.js +20 -33
  84. package/lib/modules/AccountList/index.js +116 -154
  85. package/lib/modules/AccountList/types.js +30 -31
  86. package/lib/modules/AccountList/utils.js +18 -30
  87. package/lib/modules/BaseModule.js +23 -42
  88. package/lib/modules/BookingContext/index.js +158 -136
  89. package/lib/modules/BookingContext/types.js +46 -32
  90. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +138 -146
  91. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +78 -83
  92. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +170 -150
  93. package/lib/modules/BookingContext/utils/flexible.js +38 -55
  94. package/lib/modules/BookingContext/utils/formatResourceList.js +19 -34
  95. package/lib/modules/BookingContext/utils/index.js +124 -41
  96. package/lib/modules/BookingContext/utils/noResource.js +58 -70
  97. package/lib/modules/BookingContext/utils/orderLineDisplay.js +14 -41
  98. package/lib/modules/BookingContext/utils/productExtend.js +202 -155
  99. package/lib/modules/BookingContext/utils/resourceErrors.js +53 -53
  100. package/lib/modules/BookingContext/utils/resourceSelection.js +19 -41
  101. package/lib/modules/BookingContext/utils/resources.js +209 -167
  102. package/lib/modules/BookingContext/utils/serviceTimes.js +115 -116
  103. package/lib/modules/BookingContext/utils/timeSlices.js +76 -86
  104. package/lib/modules/Cart/index.js +170 -124
  105. package/lib/modules/Cart/types.js +46 -51
  106. package/lib/modules/Cart/utils/cartAccount.js +40 -39
  107. package/lib/modules/Cart/utils/cartDate.js +56 -61
  108. package/lib/modules/Cart/utils/cartDiscount.js +28 -33
  109. package/lib/modules/Cart/utils/cartNote.js +27 -32
  110. package/lib/modules/Cart/utils/cartProduct.js +321 -251
  111. package/lib/modules/Cart/utils/cartRelationForms.js +29 -35
  112. package/lib/modules/Cart/utils/cartResource.js +70 -78
  113. package/lib/modules/Cart/utils/changePrice.js +22 -50
  114. package/lib/modules/Cart/utils/index.js +106 -48
  115. package/lib/modules/Customer/constants.js +13 -34
  116. package/lib/modules/Customer/index.js +235 -172
  117. package/lib/modules/Customer/types.js +38 -35
  118. package/lib/modules/Date/index.js +116 -115
  119. package/lib/modules/Date/types.js +16 -28
  120. package/lib/modules/Date/utils.js +174 -123
  121. package/lib/modules/Discount/index.js +122 -127
  122. package/lib/modules/Discount/types.js +9 -31
  123. package/lib/modules/Guests/index.js +30 -56
  124. package/lib/modules/Guests/types.js +23 -33
  125. package/lib/modules/Holder/index.js +209 -189
  126. package/lib/modules/Holder/types.js +4 -16
  127. package/lib/modules/Holder/utils.js +20 -49
  128. package/lib/modules/OpenData/index.js +70 -76
  129. package/lib/modules/OpenData/types.js +4 -16
  130. package/lib/modules/OpenData/utils.js +44 -78
  131. package/lib/modules/Order/index.d.ts +2 -2
  132. package/lib/modules/Order/index.js +1733 -2121
  133. package/lib/modules/Order/payment-utils.js +77 -120
  134. package/lib/modules/Order/types.d.ts +3 -1
  135. package/lib/modules/Order/types.js +87 -35
  136. package/lib/modules/Order/utils/bundleDiscountHydration.js +41 -74
  137. package/lib/modules/Order/utils/discountProductLineIdentity.js +142 -100
  138. package/lib/modules/Order/utils/manualProductDiscount.js +124 -123
  139. package/lib/modules/Order/utils/orderCollectionIdentity.js +184 -244
  140. package/lib/modules/Order/utils.js +814 -647
  141. package/lib/modules/Payment/cash.js +20 -33
  142. package/lib/modules/Payment/cashRecommendationAlgorithm.js +145 -76
  143. package/lib/modules/Payment/eftpos.js +16 -30
  144. package/lib/modules/Payment/index.js +532 -399
  145. package/lib/modules/Payment/mx51.js +1 -0
  146. package/lib/modules/Payment/types.js +230 -108
  147. package/lib/modules/Payment/utils.js +52 -51
  148. package/lib/modules/Payment/walletpass.js +485 -660
  149. package/lib/modules/Product/index.js +51 -46
  150. package/lib/modules/Product/types.js +4 -16
  151. package/lib/modules/Product/utils.js +32 -33
  152. package/lib/modules/ProductList/index.js +113 -123
  153. package/lib/modules/ProductList/types.js +9 -31
  154. package/lib/modules/Quotation/index.js +66 -100
  155. package/lib/modules/Quotation/types.js +4 -16
  156. package/lib/modules/Resource/index.js +27 -59
  157. package/lib/modules/Resource/types.js +22 -32
  158. package/lib/modules/Resource/utils.js +30 -38
  159. package/lib/modules/ResourcePlanner/index.js +60 -61
  160. package/lib/modules/ResourcePlanner/planner.js +346 -384
  161. package/lib/modules/ResourcePlanner/types.js +4 -16
  162. package/lib/modules/Rules/index.js +1218 -959
  163. package/lib/modules/Rules/types.js +17 -40
  164. package/lib/modules/SalesSummary/index.js +85 -90
  165. package/lib/modules/SalesSummary/types.js +4 -16
  166. package/lib/modules/SalesSummary/utils.js +355 -430
  167. package/lib/modules/ScanOrderLogger/index.js +59 -79
  168. package/lib/modules/ScanOrderLogger/providers/feishu.js +54 -78
  169. package/lib/modules/ScanOrderLogger/providers/grafana.js +13 -36
  170. package/lib/modules/ScanOrderLogger/types.js +4 -16
  171. package/lib/modules/Schedule/getDateIsInSchedule.js +334 -163
  172. package/lib/modules/Schedule/index.js +100 -114
  173. package/lib/modules/Schedule/type.js +4 -16
  174. package/lib/modules/Schedule/types.js +4 -16
  175. package/lib/modules/Schedule/utils.js +433 -291
  176. package/lib/modules/Step/index.js +40 -52
  177. package/lib/modules/Step/tyeps.js +4 -16
  178. package/lib/modules/Summary/index.js +66 -71
  179. package/lib/modules/Summary/types.js +4 -16
  180. package/lib/modules/Summary/utils.d.ts +1 -1
  181. package/lib/modules/Summary/utils.js +773 -418
  182. package/lib/modules/SurchargeList/index.js +46 -60
  183. package/lib/modules/SurchargeList/types.js +4 -16
  184. package/lib/modules/index.js +245 -63
  185. package/lib/plugins/app.js +4 -16
  186. package/lib/plugins/index.js +36 -25
  187. package/lib/plugins/request.js +137 -126
  188. package/lib/plugins/shopStore.js +4 -16
  189. package/lib/plugins/user.js +4 -16
  190. package/lib/plugins/window.js +171 -179
  191. package/lib/server/index.js +3027 -2655
  192. package/lib/server/modules/floor-plan/index.js +102 -123
  193. package/lib/server/modules/floor-plan/types.js +15 -30
  194. package/lib/server/modules/index.js +106 -68
  195. package/lib/server/modules/menu/index.js +146 -122
  196. package/lib/server/modules/menu/types.js +18 -31
  197. package/lib/server/modules/order/index.js +758 -956
  198. package/lib/server/modules/order/types.js +122 -33
  199. package/lib/server/modules/order/utils/filterBookings.js +219 -194
  200. package/lib/server/modules/order/utils/filterOrders.js +118 -92
  201. package/lib/server/modules/payment/index.js +59 -83
  202. package/lib/server/modules/payment/types.js +4 -16
  203. package/lib/server/modules/products/index.js +575 -459
  204. package/lib/server/modules/products/types.js +44 -34
  205. package/lib/server/modules/quotation/index.js +137 -172
  206. package/lib/server/modules/quotation/types.js +21 -31
  207. package/lib/server/modules/resource/index.js +213 -184
  208. package/lib/server/modules/resource/types.js +42 -33
  209. package/lib/server/modules/schedule/index.js +135 -123
  210. package/lib/server/modules/schedule/types.js +14 -21
  211. package/lib/server/modules/schedule/utils.js +334 -163
  212. package/lib/server/types.js +4 -16
  213. package/lib/server/utils/index.js +25 -23
  214. package/lib/server/utils/product.js +196 -139
  215. package/lib/server/utils/schedule.js +34 -41
  216. package/lib/server/utils/small-ticket.js +479 -456
  217. package/lib/server/utils/time.js +40 -49
  218. package/lib/solution/BaseSales/index.js +1209 -1412
  219. package/lib/solution/BaseSales/types.js +42 -38
  220. package/lib/solution/BaseSales/utils/cartPromotion.d.ts +5 -0
  221. package/lib/solution/BaseSales/utils/cartPromotion.js +652 -498
  222. package/lib/solution/BaseSales/utils/parseSalesResponse.js +85 -105
  223. package/lib/solution/BaseSales/utils/quotationPrice.js +56 -114
  224. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +108 -145
  225. package/lib/solution/BaseSales/utils.js +158 -143
  226. package/lib/solution/BookingByStep/index.d.ts +1 -1
  227. package/lib/solution/BookingByStep/index.js +1527 -1340
  228. package/lib/solution/BookingByStep/types.js +40 -99
  229. package/lib/solution/BookingByStep/utils/capacity.js +192 -160
  230. package/lib/solution/BookingByStep/utils/products.js +42 -52
  231. package/lib/solution/BookingByStep/utils/resources.js +527 -330
  232. package/lib/solution/BookingByStep/utils/stock.js +65 -44
  233. package/lib/solution/BookingByStep/utils/timeslots.js +129 -131
  234. package/lib/solution/BookingTicket/index.js +598 -514
  235. package/lib/solution/BookingTicket/types.js +99 -77
  236. package/lib/solution/BookingTicket/utils/addProductDecision.js +225 -187
  237. package/lib/solution/BookingTicket/utils/addTimeAvailability.js +58 -89
  238. package/lib/solution/BookingTicket/utils/bookingStatus.js +107 -78
  239. package/lib/solution/BookingTicket/utils/cartView.js +114 -99
  240. package/lib/solution/BookingTicket/utils/exampleData.js +185 -0
  241. package/lib/solution/BookingTicket/utils/orderCustomer.js +18 -41
  242. package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +219 -86
  243. package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +168 -116
  244. package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +79 -91
  245. package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +54 -41
  246. package/lib/solution/BookingTicket/utils/scan/handleScan.js +84 -81
  247. package/lib/solution/BookingTicket/utils/scan/index.js +98 -104
  248. package/lib/solution/BookingTicket/utils/scan/scanCache.js +90 -43
  249. package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +52 -64
  250. package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +56 -58
  251. package/lib/solution/BookingTicket/utils/weighingProductSku.js +34 -48
  252. package/lib/solution/BuyTickets/index.js +67 -70
  253. package/lib/solution/BuyTickets/types.js +22 -38
  254. package/lib/solution/Checkout/index.js +1451 -1158
  255. package/lib/solution/Checkout/types.js +91 -61
  256. package/lib/solution/Checkout/utils/index.js +228 -156
  257. package/lib/solution/PlaceOrder/index.js +55 -0
  258. package/lib/solution/RegisterAndLogin/config.js +493 -460
  259. package/lib/solution/RegisterAndLogin/index.js +633 -630
  260. package/lib/solution/RegisterAndLogin/types.js +189 -76
  261. package/lib/solution/RegisterAndLogin/utils.js +183 -125
  262. package/lib/solution/Sales/index.js +328 -324
  263. package/lib/solution/Sales/types.js +27 -33
  264. package/lib/solution/ScanOrder/index.js +832 -864
  265. package/lib/solution/ScanOrder/types.js +33 -34
  266. package/lib/solution/ScanOrder/utils.js +409 -374
  267. package/lib/solution/ShopDiscount/index.js +226 -232
  268. package/lib/solution/ShopDiscount/types.js +15 -37
  269. package/lib/solution/ShopDiscount/utils.js +300 -172
  270. package/lib/solution/UnifiedBookingSales/index.js +437 -487
  271. package/lib/solution/UnifiedBookingSales/types.js +12 -31
  272. package/lib/solution/VenueBooking/index.js +811 -879
  273. package/lib/solution/VenueBooking/types.js +19 -39
  274. package/lib/solution/VenueBooking/utils/dateSummary.js +27 -56
  275. package/lib/solution/VenueBooking/utils/resource.js +31 -54
  276. package/lib/solution/VenueBooking/utils/slotMerge.js +94 -107
  277. package/lib/solution/VenueBooking/utils/timeSlot.js +132 -132
  278. package/lib/solution/VenueBooking/utils.js +130 -67
  279. package/lib/solution/index.js +124 -41
  280. package/lib/store/createStore.js +32 -29
  281. package/lib/types/index.js +4 -16
  282. package/lib/utils/payment-number.js +26 -46
  283. package/lib/utils/task.js +36 -36
  284. package/lib/utils/watch.js +81 -47
  285. package/package.json +2 -1
@@ -1,105 +1,129 @@
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 __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
1
+ "use strict";
29
2
 
30
- // src/modules/BookingContext/index.ts
31
- var BookingContext_exports = {};
32
- __export(BookingContext_exports, {
33
- BookingContextModule: () => BookingContextModule,
34
- __clearBookingContextSharedCacheForTest: () => __clearBookingContextSharedCacheForTest,
35
- buildBookingConfigQueryKey: () => buildBookingConfigQueryKey,
36
- buildBookingResourcesQueryKey: () => buildBookingResourcesQueryKey
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _exportNames = {
7
+ __clearBookingContextSharedCacheForTest: true,
8
+ buildBookingConfigQueryKey: true,
9
+ buildBookingResourcesQueryKey: true,
10
+ BookingContextModule: true
11
+ };
12
+ exports.BookingContextModule = void 0;
13
+ exports.__clearBookingContextSharedCacheForTest = __clearBookingContextSharedCacheForTest;
14
+ exports.buildBookingConfigQueryKey = buildBookingConfigQueryKey;
15
+ exports.buildBookingResourcesQueryKey = buildBookingResourcesQueryKey;
16
+ var _dayjs = _interopRequireDefault(require("dayjs"));
17
+ var _BaseModule = require("../BaseModule");
18
+ var _request = require("../../plugins/request");
19
+ var _types = require("./types");
20
+ Object.keys(_types).forEach(function (key) {
21
+ if (key === "default" || key === "__esModule") return;
22
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
23
+ if (key in exports && exports[key] === _types[key]) return;
24
+ Object.defineProperty(exports, key, {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _types[key];
28
+ }
29
+ });
37
30
  });
38
- module.exports = __toCommonJS(BookingContext_exports);
39
- var import_dayjs = __toESM(require("dayjs"));
40
- var import_BaseModule = require("../BaseModule");
41
- var import_request = require("../../plugins/request");
42
- var import_types = require("./types");
43
- var import_formatResourceList = require("./utils/formatResourceList");
44
- __reExport(BookingContext_exports, require("./types"), module.exports);
45
- __reExport(BookingContext_exports, require("./utils"), module.exports);
46
- var EMPTY_STATE = {
31
+ var _formatResourceList = require("./utils/formatResourceList");
32
+ var _utils = require("./utils");
33
+ Object.keys(_utils).forEach(function (key) {
34
+ if (key === "default" || key === "__esModule") return;
35
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
36
+ if (key in exports && exports[key] === _utils[key]) return;
37
+ Object.defineProperty(exports, key, {
38
+ enumerable: true,
39
+ get: function () {
40
+ return _utils[key];
41
+ }
42
+ });
43
+ });
44
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
45
+ const EMPTY_STATE = {
47
46
  bookingConfig: null,
48
47
  resourcesOrigin: [],
49
48
  resourcesOriginMap: {},
50
49
  date: null
51
50
  };
52
- var DEFAULT_BOOKING_CONFIG_PARAMS = {
53
- item_type: "appointment_booking",
54
- sub_type: "ticket"
51
+ const DEFAULT_BOOKING_CONFIG_PARAMS = {
52
+ item_type: 'appointment_booking',
53
+ sub_type: 'ticket'
55
54
  };
56
- var BOARD_CONFIG_CACHE = {
55
+ const BOARD_CONFIG_CACHE = {
57
56
  useCache: true,
58
57
  cache: {
59
- mode: import_request.RequestModeENUM.REMOTE_LOCAL,
60
- type: "indexDB",
58
+ mode: _request.RequestModeENUM.REMOTE_LOCAL,
59
+ type: 'indexDB',
61
60
  updateCache: true
62
61
  }
63
62
  };
64
- var RESOURCE_LIST_CACHE = {
63
+ const RESOURCE_LIST_CACHE = {
65
64
  useCache: true,
66
65
  cache: {
67
- mode: import_request.RequestModeENUM.REMOTE_LOCAL,
68
- type: "memory"
66
+ mode: _request.RequestModeENUM.REMOTE_LOCAL,
67
+ type: 'memory'
69
68
  }
70
69
  };
71
- var requestScopeIds = /* @__PURE__ */ new WeakMap();
72
- var nextRequestScopeId = 1;
73
- var sharedBookingConfigCache = /* @__PURE__ */ new Map();
74
- var sharedBookingConfigPending = /* @__PURE__ */ new Map();
75
- var sharedResourcesCache = /* @__PURE__ */ new Map();
76
- var sharedResourcesPending = /* @__PURE__ */ new Map();
70
+ const requestScopeIds = new WeakMap();
71
+ let nextRequestScopeId = 1;
72
+ const sharedBookingConfigCache = new Map();
73
+ const sharedBookingConfigPending = new Map();
74
+ const sharedResourcesCache = new Map();
75
+ const sharedResourcesPending = new Map();
76
+
77
+ /**
78
+ * 为 request 插件生成稳定作用域,避免不同 request 客户端之间共享缓存数据。
79
+ *
80
+ * @example
81
+ * const scopedKey = buildSharedCacheKey(requestPlugin, '{"sub_type":"ticket"}');
82
+ */
77
83
  function getRequestScopeId(request) {
78
84
  const key = request;
79
85
  const existed = requestScopeIds.get(key);
80
- if (existed)
81
- return existed;
86
+ if (existed) return existed;
82
87
  const id = nextRequestScopeId++;
83
88
  requestScopeIds.set(key, id);
84
89
  return id;
85
90
  }
91
+
92
+ /**
93
+ * 共享缓存 key = request 作用域 + 已稳定序列化的业务参数。
94
+ *
95
+ * @example
96
+ * const cacheKey = buildSharedCacheKey(requestPlugin, '2026-06-10|1,2');
97
+ */
86
98
  function buildSharedCacheKey(request, queryKey) {
87
99
  return `${getRequestScopeId(request)}:${queryKey}`;
88
100
  }
101
+
102
+ /**
103
+ * 清理跨实例共享缓存,仅供单元测试隔离使用。
104
+ *
105
+ * @example
106
+ * __clearBookingContextSharedCacheForTest();
107
+ */
89
108
  function __clearBookingContextSharedCacheForTest() {
90
109
  sharedBookingConfigCache.clear();
91
110
  sharedBookingConfigPending.clear();
92
111
  sharedResourcesCache.clear();
93
112
  sharedResourcesPending.clear();
94
113
  }
114
+
115
+ /**
116
+ * 把多形态 date 入参 normalize 成字符串。
117
+ * - dayjs 实例:调用 format()(无参 ISO)。
118
+ * - Date 实例:toISOString()。
119
+ * - 字符串:原样保留。
120
+ * - null/undefined/空串:→ null。
121
+ */
95
122
  function normalizeDate(input) {
96
- if (input === null || input === void 0)
97
- return null;
98
- if (typeof input === "string")
99
- return input || null;
100
- if (input instanceof Date)
101
- return input.toISOString();
102
- if (typeof input.format === "function") {
123
+ if (input === null || input === undefined) return null;
124
+ if (typeof input === 'string') return input || null;
125
+ if (input instanceof Date) return input.toISOString();
126
+ if (typeof input.format === 'function') {
103
127
  try {
104
128
  return input.format() || null;
105
129
  } catch {
@@ -108,52 +132,67 @@ function normalizeDate(input) {
108
132
  }
109
133
  return null;
110
134
  }
135
+
136
+ /** 资源接口使用的 `YYYY-MM-DD` 日期串。 */
111
137
  function toScheduleQueryDate(input) {
112
138
  const normalized = normalizeDate(input);
113
- if (!normalized)
114
- return (0, import_dayjs.default)().format("YYYY-MM-DD");
115
- const parsed = (0, import_dayjs.default)(normalized);
116
- return parsed.isValid() ? parsed.format("YYYY-MM-DD") : (0, import_dayjs.default)().format("YYYY-MM-DD");
139
+ if (!normalized) return (0, _dayjs.default)().format('YYYY-MM-DD');
140
+ const parsed = (0, _dayjs.default)(normalized);
141
+ return parsed.isValid() ? parsed.format('YYYY-MM-DD') : (0, _dayjs.default)().format('YYYY-MM-DD');
117
142
  }
143
+
144
+ /**
145
+ * 由 resources 数组派生出以 id 为 key 的 map,便于 `getResourceByIds` 直接命中。
146
+ */
118
147
  function buildResourcesMap(resources) {
119
148
  const map = {};
120
- resources.forEach((resource) => {
121
- if (resource && resource.id !== void 0 && resource.id !== null) {
149
+ resources.forEach(resource => {
150
+ if (resource && resource.id !== undefined && resource.id !== null) {
122
151
  map[String(resource.id)] = resource;
123
152
  }
124
153
  });
125
154
  return map;
126
155
  }
156
+
157
+ /** 稳定序列化 config 查询参数,用于判断是否与上次 loadBookingConfig 一致。 */
127
158
  function buildBookingConfigQueryKey(params = {}) {
128
- const merged = { ...DEFAULT_BOOKING_CONFIG_PARAMS, ...params };
159
+ const merged = {
160
+ ...DEFAULT_BOOKING_CONFIG_PARAMS,
161
+ ...params
162
+ };
129
163
  const keys = Object.keys(merged).sort();
130
164
  const sorted = {};
131
- keys.forEach((k) => {
165
+ keys.forEach(k => {
132
166
  sorted[k] = merged[k];
133
167
  });
134
168
  return JSON.stringify(sorted);
135
169
  }
170
+
171
+ /** 稳定序列化资源列表查询(date + bookingIds),用于跳过重复 loadResources。 */
136
172
  function buildBookingResourcesQueryKey(params = {}) {
137
173
  const date = toScheduleQueryDate(params.date);
138
- const ids = (params.bookingIds || []).filter((id) => typeof id === "number" && Number.isFinite(id)).sort((a, b) => a - b);
139
- return `${date}|${ids.join(",")}`;
174
+ const ids = (params.bookingIds || []).filter(id => typeof id === 'number' && Number.isFinite(id)).sort((a, b) => a - b);
175
+ return `${date}|${ids.join(',')}`;
140
176
  }
141
- var BookingContextModule = class extends import_BaseModule.BaseModule {
177
+ class BookingContextModule extends _BaseModule.BaseModule {
178
+ defaultName = 'bookingContext';
179
+ defaultVersion = '1.0.0';
180
+ request;
181
+ store = {
182
+ ...EMPTY_STATE
183
+ };
184
+ /** 上次成功 loadBookingConfig 的 query key;命中则不再请求。 */
185
+ lastConfigQueryKey = null;
186
+ /** 上次成功 loadResources 的 query key(date|bookingIds);命中则不再请求。 */
187
+ lastResourcesQueryKey = null;
142
188
  constructor(name, version) {
143
189
  super(name, version);
144
- this.defaultName = "bookingContext";
145
- this.defaultVersion = "1.0.0";
146
- this.store = { ...EMPTY_STATE };
147
- /** 上次成功 loadBookingConfig 的 query key;命中则不再请求。 */
148
- this.lastConfigQueryKey = null;
149
- /** 上次成功 loadResources 的 query key(date|bookingIds);命中则不再请求。 */
150
- this.lastResourcesQueryKey = null;
151
190
  }
152
191
  async initialize(core, options = {}) {
153
192
  this.core = core;
154
- this.request = core.getPlugin("request");
193
+ this.request = core.getPlugin('request');
155
194
  if (!this.request) {
156
- throw new Error("BookingContextModule 需要 request 插件支持");
195
+ throw new Error('BookingContextModule 需要 request 插件支持');
157
196
  }
158
197
  this.store = {
159
198
  bookingConfig: null,
@@ -189,18 +228,14 @@ var BookingContextModule = class extends import_BaseModule.BaseModule {
189
228
  this.lastConfigQueryKey = configKey;
190
229
  return cached;
191
230
  }
192
- let pending = !options.forceRefresh ? sharedBookingConfigPending.get(sharedKey) : void 0;
231
+ let pending = !options.forceRefresh ? sharedBookingConfigPending.get(sharedKey) : undefined;
193
232
  if (!pending) {
194
233
  const requestPromise = (async () => {
195
234
  try {
196
- const res = await this.request.get(
197
- "/core/board/management/config",
198
- query,
199
- BOARD_CONFIG_CACHE
200
- );
201
- const config2 = (res == null ? void 0 : res.data) ?? null;
202
- sharedBookingConfigCache.set(sharedKey, config2);
203
- return config2;
235
+ const res = await this.request.get('/core/board/management/config', query, BOARD_CONFIG_CACHE);
236
+ const config = res?.data ?? null;
237
+ sharedBookingConfigCache.set(sharedKey, config);
238
+ return config;
204
239
  } finally {
205
240
  sharedBookingConfigPending.delete(sharedKey);
206
241
  }
@@ -229,18 +264,18 @@ var BookingContextModule = class extends import_BaseModule.BaseModule {
229
264
  this.lastResourcesQueryKey = resourcesKey;
230
265
  return this.getResourcesOrigin();
231
266
  }
232
- let pending = !options.forceRefresh ? sharedResourcesPending.get(sharedKey) : void 0;
267
+ let pending = !options.forceRefresh ? sharedResourcesPending.get(sharedKey) : undefined;
233
268
  if (!pending) {
234
269
  const requestPromise = (async () => {
235
270
  try {
236
- const res = await this.request.get(
237
- "/schedule/resource/list",
238
- { date },
239
- RESOURCE_LIST_CACHE
240
- );
241
- const { list: list2 } = (0, import_formatResourceList.formatResourceListAndMap)(res == null ? void 0 : res.data, params.bookingIds || []);
242
- sharedResourcesCache.set(sharedKey, list2);
243
- return list2;
271
+ const res = await this.request.get('/schedule/resource/list', {
272
+ date
273
+ }, RESOURCE_LIST_CACHE);
274
+ const {
275
+ list
276
+ } = (0, _formatResourceList.formatResourceListAndMap)(res?.data, params.bookingIds || []);
277
+ sharedResourcesCache.set(sharedKey, list);
278
+ return list;
244
279
  } finally {
245
280
  sharedResourcesPending.delete(sharedKey);
246
281
  }
@@ -253,12 +288,13 @@ var BookingContextModule = class extends import_BaseModule.BaseModule {
253
288
  this.lastResourcesQueryKey = resourcesKey;
254
289
  return this.getResourcesOrigin();
255
290
  }
291
+
256
292
  /**
257
293
  * store 内是否已具备与本次 init 入参等价的 config / resources(不再打接口)。
258
294
  */
259
295
  isBookingContextReady(params = {}) {
260
296
  const configKey = buildBookingConfigQueryKey(params.bookingConfigParams);
261
- const dateInput = params.date ?? this.store.date ?? (0, import_dayjs.default)();
297
+ const dateInput = params.date ?? this.store.date ?? (0, _dayjs.default)();
262
298
  const queryDate = toScheduleQueryDate(dateInput);
263
299
  const resourcesKey = buildBookingResourcesQueryKey({
264
300
  date: queryDate,
@@ -269,7 +305,7 @@ var BookingContextModule = class extends import_BaseModule.BaseModule {
269
305
  return configReady && resourcesReady;
270
306
  }
271
307
  async initBookingContext(params = {}) {
272
- const dateInput = params.date ?? this.store.date ?? (0, import_dayjs.default)();
308
+ const dateInput = params.date ?? this.store.date ?? (0, _dayjs.default)();
273
309
  const queryDate = toScheduleQueryDate(dateInput);
274
310
  this.setDate(dateInput);
275
311
  if (!params.forceRefresh && this.isBookingContextReady(params)) {
@@ -288,24 +324,18 @@ var BookingContextModule = class extends import_BaseModule.BaseModule {
288
324
  });
289
325
  }
290
326
  if (needResources) {
291
- await this.loadResources(
292
- {
293
- date: queryDate,
294
- bookingIds: params.bookingIds
295
- },
296
- {
297
- forceRefresh: params.forceRefresh
298
- }
299
- );
327
+ await this.loadResources({
328
+ date: queryDate,
329
+ bookingIds: params.bookingIds
330
+ }, {
331
+ forceRefresh: params.forceRefresh
332
+ });
300
333
  }
301
334
  return this.getState();
302
335
  }
303
336
  setBookingConfig(config) {
304
337
  this.store.bookingConfig = config || null;
305
- this.core.effects.emit(
306
- `${this.name}:${import_types.BookingContextEvent.OnBookingConfigChange}`,
307
- this.store.bookingConfig
308
- );
338
+ this.core.effects.emit(`${this.name}:${_types.BookingContextEvent.OnBookingConfigChange}`, this.store.bookingConfig);
309
339
  }
310
340
  getBookingConfig() {
311
341
  return this.store.bookingConfig;
@@ -314,7 +344,7 @@ var BookingContextModule = class extends import_BaseModule.BaseModule {
314
344
  const list = Array.isArray(resources) ? resources : [];
315
345
  this.store.resourcesOrigin = list;
316
346
  this.store.resourcesOriginMap = buildResourcesMap(list);
317
- this.core.effects.emit(`${this.name}:${import_types.BookingContextEvent.OnResourcesChange}`, {
347
+ this.core.effects.emit(`${this.name}:${_types.BookingContextEvent.OnResourcesChange}`, {
318
348
  resourcesOrigin: this.store.resourcesOrigin,
319
349
  resourcesOriginMap: this.store.resourcesOriginMap
320
350
  });
@@ -327,7 +357,7 @@ var BookingContextModule = class extends import_BaseModule.BaseModule {
327
357
  }
328
358
  setDate(date) {
329
359
  this.store.date = normalizeDate(date);
330
- this.core.effects.emit(`${this.name}:${import_types.BookingContextEvent.OnDateChange}`, this.store.date);
360
+ this.core.effects.emit(`${this.name}:${_types.BookingContextEvent.OnDateChange}`, this.store.date);
331
361
  }
332
362
  getDate() {
333
363
  return this.store.date;
@@ -349,20 +379,12 @@ var BookingContextModule = class extends import_BaseModule.BaseModule {
349
379
  resourcesOriginMap: {},
350
380
  date: null
351
381
  };
352
- this.core.effects.emit(`${this.name}:${import_types.BookingContextEvent.OnBookingConfigChange}`, null);
353
- this.core.effects.emit(`${this.name}:${import_types.BookingContextEvent.OnResourcesChange}`, {
382
+ this.core.effects.emit(`${this.name}:${_types.BookingContextEvent.OnBookingConfigChange}`, null);
383
+ this.core.effects.emit(`${this.name}:${_types.BookingContextEvent.OnResourcesChange}`, {
354
384
  resourcesOrigin: [],
355
385
  resourcesOriginMap: {}
356
386
  });
357
- this.core.effects.emit(`${this.name}:${import_types.BookingContextEvent.OnDateChange}`, null);
387
+ this.core.effects.emit(`${this.name}:${_types.BookingContextEvent.OnDateChange}`, null);
358
388
  }
359
- };
360
- // Annotate the CommonJS export names for ESM import in node:
361
- 0 && (module.exports = {
362
- BookingContextModule,
363
- __clearBookingContextSharedCacheForTest,
364
- buildBookingConfigQueryKey,
365
- buildBookingResourcesQueryKey,
366
- ...require("./types"),
367
- ...require("./utils")
368
- });
389
+ }
390
+ exports.BookingContextModule = BookingContextModule;
@@ -1,34 +1,48 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
1
+ "use strict";
18
2
 
19
- // src/modules/BookingContext/types.ts
20
- var types_exports = {};
21
- __export(types_exports, {
22
- BookingContextEvent: () => BookingContextEvent
23
- });
24
- module.exports = __toCommonJS(types_exports);
25
- var BookingContextEvent = /* @__PURE__ */ ((BookingContextEvent2) => {
26
- BookingContextEvent2["OnBookingConfigChange"] = "onBookingConfigChange";
27
- BookingContextEvent2["OnResourcesChange"] = "onResourcesChange";
28
- BookingContextEvent2["OnDateChange"] = "onDateChange";
29
- return BookingContextEvent2;
30
- })(BookingContextEvent || {});
31
- // Annotate the CommonJS export names for ESM import in node:
32
- 0 && (module.exports = {
33
- BookingContextEvent
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
34
5
  });
6
+ exports.BookingContextEvent = void 0;
7
+ /**
8
+ * BookingContext 子模块:承载「预约 UI 上下文」三件套。
9
+ *
10
+ * - bookingConfig:来自 `/core/board/management/config` 的整套预约配置(service_time / resource_tab /
11
+ * appointment_subject / subject_require / stock_setting / basic / capacity 等)。
12
+ * - resourcesOrigin / resourcesOriginMap:来自 `/schedule/resource/list` 的资源全集,含 times / event_list /
13
+ * combined_resource 等运行态信息,是 getResourceByIds / getResourceTimeIsUsable 的输入。
14
+ * - date:当前选择的日期(dayjs 或 ISO 字符串,迁移后内部统一存原始 ISO 字符串,UI 可自行解析)。
15
+ *
16
+ * 设计原则(与 BookingTicket 现状对齐):
17
+ * - 默认由 `loadBookingConfig` / `loadResources` 拉取并写入 store;也支持消费方 `set*` 直接灌入(复用 ticketBooking 已拉到的数据)。
18
+ * - 所有读 API 返回浅克隆(数组)或原引用(map / config),避免 UI 写穿。
19
+ */
20
+ /** `loadBookingConfig` 入参,与 ticketBooking `getBookingConfig` 一致。 */
21
+ /** `loadResources` 入参,与 info2 `getResourceList` 一致。 */
22
+ /** `initBookingContext` 入参(BookingTicket 聚合入口)。 */
23
+ /**
24
+ * 资源全集 map:key 为资源 id(数字),value 为资源原始对象,含 times / event_list 等运行态。
25
+ * 这里只声明 Record 形态;具体字段保留 `any`,与 ticketBooking 现网传入的数据形状兼容。
26
+ */
27
+ /**
28
+ * 形参 booking_config(结构来自 `/core/board/management/config` 接口)。
29
+ * OS 不强制 schema,保留 `Record<string, any>` 兼容现网;常用路径文档化在 SDK docs。
30
+ */
31
+ /**
32
+ * 日期入参:接受 dayjs 实例、ISO 字符串、Date 实例;内部统一 normalize 为 ISO 字符串保存。
33
+ */
34
+ /**
35
+ * 内部 store 形态。`resourcesOriginMap` 由 `setResources` 派生,不允许外部直接 set。
36
+ */
37
+ /**
38
+ * BookingContextModule 对外 API(给 BookingTicket / SDK Provider 透传消费)。
39
+ */
40
+ /**
41
+ * BookingContextModule 事件名常量(采用 `${this.name}:` 前缀,与现有模块一致)。
42
+ */
43
+ let BookingContextEvent = exports.BookingContextEvent = /*#__PURE__*/function (BookingContextEvent) {
44
+ BookingContextEvent["OnBookingConfigChange"] = "onBookingConfigChange";
45
+ BookingContextEvent["OnResourcesChange"] = "onResourcesChange";
46
+ BookingContextEvent["OnDateChange"] = "onDateChange";
47
+ return BookingContextEvent;
48
+ }({});