@pisell/pisellos 2.3.74 → 2.3.75

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 (276) hide show
  1. package/dist/core/index.js +6 -10
  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.js +36 -64
  11. package/dist/modules/Payment/index.js +97 -162
  12. package/dist/modules/Rules/index.js +1 -4
  13. package/dist/modules/Schedule/index.js +0 -1
  14. package/dist/modules/Schedule/utils.js +0 -1
  15. package/dist/modules/Step/index.js +0 -1
  16. package/dist/plugins/request.js +1 -4
  17. package/dist/plugins/window.js +2 -6
  18. package/dist/server/index.js +97 -129
  19. package/dist/server/modules/menu/index.js +32 -41
  20. package/dist/server/modules/order/index.js +2 -4
  21. package/dist/server/modules/products/index.js +24 -42
  22. package/dist/server/modules/quotation/index.js +29 -38
  23. package/dist/server/modules/resource/index.js +3 -4
  24. package/dist/server/modules/schedule/index.js +27 -35
  25. package/dist/server/utils/product.js +0 -1
  26. package/dist/solution/BaseSales/index.js +38 -41
  27. package/dist/solution/BookingByStep/index.js +7 -59
  28. package/dist/solution/BookingByStep/utils/capacity.js +1 -11
  29. package/dist/solution/BookingByStep/utils/resources.js +1 -3
  30. package/dist/solution/BookingByStep/utils/timeslots.js +2 -43
  31. package/dist/solution/BookingTicket/index.js +0 -2
  32. package/dist/solution/BookingTicket/utils/scan/cloudSearch.js +6 -7
  33. package/dist/solution/BookingTicket/utils/scan/handleScan.js +25 -31
  34. package/dist/solution/BookingTicket/utils/scan/index.js +6 -10
  35. package/dist/solution/BuyTickets/index.js +9 -12
  36. package/dist/solution/Checkout/index.js +177 -252
  37. package/dist/solution/Checkout/utils/index.js +4 -16
  38. package/dist/solution/RegisterAndLogin/index.js +30 -76
  39. package/dist/solution/ScanOrder/index.js +50 -60
  40. package/dist/solution/ShopDiscount/index.js +2 -7
  41. package/dist/solution/VenueBooking/index.js +45 -55
  42. package/dist/utils/task.js +15 -18
  43. package/dist/utils/watch.js +0 -1
  44. package/lib/apis/picoding.js +2 -0
  45. package/lib/core/index.js +134 -134
  46. package/lib/effects/index.js +46 -57
  47. package/lib/index.js +82 -49
  48. package/lib/model/index.js +14 -21
  49. package/lib/model/strategy/adapter/dataVariant/adapter.js +38 -50
  50. package/lib/model/strategy/adapter/dataVariant/evaluator.js +162 -236
  51. package/lib/model/strategy/adapter/dataVariant/examples.js +229 -237
  52. package/lib/model/strategy/adapter/dataVariant/index.js +39 -34
  53. package/lib/model/strategy/adapter/dataVariant/type.js +57 -28
  54. package/lib/model/strategy/adapter/index.js +100 -64
  55. package/lib/model/strategy/adapter/itemRule/adapter.js +156 -144
  56. package/lib/model/strategy/adapter/itemRule/evaluator.js +36 -48
  57. package/lib/model/strategy/adapter/itemRule/examples.js +295 -225
  58. package/lib/model/strategy/adapter/itemRule/index.js +83 -57
  59. package/lib/model/strategy/adapter/itemRule/type.js +97 -36
  60. package/lib/model/strategy/adapter/promotion/adapter.js +91 -69
  61. package/lib/model/strategy/adapter/promotion/evaluator.js +444 -310
  62. package/lib/model/strategy/adapter/promotion/examples.js +222 -234
  63. package/lib/model/strategy/adapter/promotion/index.js +1 -0
  64. package/lib/model/strategy/adapter/promotion/type.js +243 -36
  65. package/lib/model/strategy/adapter/type.js +4 -16
  66. package/lib/model/strategy/adapter/walletPass/evaluator.js +180 -150
  67. package/lib/model/strategy/adapter/walletPass/example.js +217 -190
  68. package/lib/model/strategy/adapter/walletPass/index.js +75 -51
  69. package/lib/model/strategy/adapter/walletPass/locales.js +36 -58
  70. package/lib/model/strategy/adapter/walletPass/type.js +4 -16
  71. package/lib/model/strategy/adapter/walletPass/utils.js +588 -378
  72. package/lib/model/strategy/engine.js +270 -168
  73. package/lib/model/strategy/index.js +49 -34
  74. package/lib/model/strategy/strategy-example.js +243 -239
  75. package/lib/model/strategy/type.js +100 -40
  76. package/lib/modules/Account/index.js +39 -53
  77. package/lib/modules/Account/types.js +20 -33
  78. package/lib/modules/AccountList/index.js +116 -154
  79. package/lib/modules/AccountList/types.js +30 -31
  80. package/lib/modules/AccountList/utils.js +18 -30
  81. package/lib/modules/BaseModule.js +23 -42
  82. package/lib/modules/BookingContext/index.js +158 -136
  83. package/lib/modules/BookingContext/types.js +46 -32
  84. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +138 -146
  85. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +78 -83
  86. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +170 -150
  87. package/lib/modules/BookingContext/utils/flexible.js +38 -55
  88. package/lib/modules/BookingContext/utils/formatResourceList.js +19 -34
  89. package/lib/modules/BookingContext/utils/index.js +124 -41
  90. package/lib/modules/BookingContext/utils/noResource.js +58 -70
  91. package/lib/modules/BookingContext/utils/orderLineDisplay.js +14 -41
  92. package/lib/modules/BookingContext/utils/productExtend.js +202 -155
  93. package/lib/modules/BookingContext/utils/resourceErrors.js +53 -53
  94. package/lib/modules/BookingContext/utils/resourceSelection.js +19 -41
  95. package/lib/modules/BookingContext/utils/resources.js +209 -167
  96. package/lib/modules/BookingContext/utils/serviceTimes.js +115 -116
  97. package/lib/modules/BookingContext/utils/timeSlices.js +76 -86
  98. package/lib/modules/Cart/index.js +170 -124
  99. package/lib/modules/Cart/types.js +46 -51
  100. package/lib/modules/Cart/utils/cartAccount.js +40 -39
  101. package/lib/modules/Cart/utils/cartDate.js +56 -61
  102. package/lib/modules/Cart/utils/cartDiscount.js +28 -33
  103. package/lib/modules/Cart/utils/cartNote.js +27 -32
  104. package/lib/modules/Cart/utils/cartProduct.js +321 -251
  105. package/lib/modules/Cart/utils/cartRelationForms.js +29 -35
  106. package/lib/modules/Cart/utils/cartResource.js +70 -78
  107. package/lib/modules/Cart/utils/changePrice.js +22 -50
  108. package/lib/modules/Cart/utils/index.js +106 -48
  109. package/lib/modules/Customer/constants.js +13 -34
  110. package/lib/modules/Customer/index.js +235 -172
  111. package/lib/modules/Customer/types.js +38 -35
  112. package/lib/modules/Date/index.js +116 -115
  113. package/lib/modules/Date/types.js +16 -28
  114. package/lib/modules/Date/utils.js +174 -123
  115. package/lib/modules/Discount/index.js +122 -127
  116. package/lib/modules/Discount/types.js +9 -31
  117. package/lib/modules/Guests/index.js +30 -56
  118. package/lib/modules/Guests/types.js +23 -33
  119. package/lib/modules/Holder/index.js +209 -189
  120. package/lib/modules/Holder/types.js +4 -16
  121. package/lib/modules/Holder/utils.js +20 -49
  122. package/lib/modules/OpenData/index.js +70 -76
  123. package/lib/modules/OpenData/types.js +4 -16
  124. package/lib/modules/OpenData/utils.js +44 -78
  125. package/lib/modules/Order/index.js +1713 -2118
  126. package/lib/modules/Order/payment-utils.js +77 -120
  127. package/lib/modules/Order/types.js +88 -35
  128. package/lib/modules/Order/utils/bundleDiscountHydration.js +41 -74
  129. package/lib/modules/Order/utils/discountProductLineIdentity.js +142 -100
  130. package/lib/modules/Order/utils/manualProductDiscount.js +124 -123
  131. package/lib/modules/Order/utils/orderCollectionIdentity.js +184 -244
  132. package/lib/modules/Order/utils.js +814 -647
  133. package/lib/modules/Payment/cash.js +20 -33
  134. package/lib/modules/Payment/cashRecommendationAlgorithm.js +145 -76
  135. package/lib/modules/Payment/eftpos.js +16 -30
  136. package/lib/modules/Payment/index.js +532 -399
  137. package/lib/modules/Payment/mx51.js +1 -0
  138. package/lib/modules/Payment/types.js +230 -108
  139. package/lib/modules/Payment/utils.js +52 -51
  140. package/lib/modules/Payment/walletpass.js +485 -660
  141. package/lib/modules/Product/index.js +51 -46
  142. package/lib/modules/Product/types.js +4 -16
  143. package/lib/modules/Product/utils.js +32 -33
  144. package/lib/modules/ProductList/index.js +113 -123
  145. package/lib/modules/ProductList/types.js +9 -31
  146. package/lib/modules/Quotation/index.js +81 -118
  147. package/lib/modules/Quotation/types.js +4 -16
  148. package/lib/modules/Resource/index.js +27 -59
  149. package/lib/modules/Resource/types.js +22 -32
  150. package/lib/modules/Resource/utils.js +30 -38
  151. package/lib/modules/ResourcePlanner/index.js +25 -23
  152. package/lib/modules/ResourcePlanner/localClock.js +54 -119
  153. package/lib/modules/ResourcePlanner/planner.js +589 -770
  154. package/lib/modules/ResourcePlanner/types.js +10 -29
  155. package/lib/modules/Rules/index.js +1218 -959
  156. package/lib/modules/Rules/types.js +17 -40
  157. package/lib/modules/SalesSummary/index.js +85 -90
  158. package/lib/modules/SalesSummary/types.js +4 -16
  159. package/lib/modules/SalesSummary/utils.js +355 -430
  160. package/lib/modules/ScanOrderLogger/index.js +59 -79
  161. package/lib/modules/ScanOrderLogger/providers/feishu.js +54 -78
  162. package/lib/modules/ScanOrderLogger/providers/grafana.js +13 -36
  163. package/lib/modules/ScanOrderLogger/types.js +4 -16
  164. package/lib/modules/Schedule/getDateIsInSchedule.js +334 -163
  165. package/lib/modules/Schedule/index.js +100 -114
  166. package/lib/modules/Schedule/type.js +4 -16
  167. package/lib/modules/Schedule/types.js +4 -16
  168. package/lib/modules/Schedule/utils.js +433 -291
  169. package/lib/modules/Step/index.js +40 -52
  170. package/lib/modules/Step/tyeps.js +4 -16
  171. package/lib/modules/Summary/index.js +66 -71
  172. package/lib/modules/Summary/types.js +4 -16
  173. package/lib/modules/Summary/utils.js +773 -418
  174. package/lib/modules/SurchargeList/index.js +46 -60
  175. package/lib/modules/SurchargeList/types.js +4 -16
  176. package/lib/modules/index.js +245 -63
  177. package/lib/plugins/app.js +4 -16
  178. package/lib/plugins/index.js +36 -25
  179. package/lib/plugins/request.js +137 -126
  180. package/lib/plugins/shopStore.js +4 -16
  181. package/lib/plugins/user.js +4 -16
  182. package/lib/plugins/window.js +171 -179
  183. package/lib/server/index.js +3050 -2665
  184. package/lib/server/modules/floor-plan/index.js +118 -134
  185. package/lib/server/modules/floor-plan/types.js +15 -30
  186. package/lib/server/modules/index.js +106 -68
  187. package/lib/server/modules/menu/index.js +142 -122
  188. package/lib/server/modules/menu/types.js +18 -31
  189. package/lib/server/modules/order/index.js +784 -1002
  190. package/lib/server/modules/order/types.js +122 -33
  191. package/lib/server/modules/order/utils/filterBookings.js +219 -194
  192. package/lib/server/modules/order/utils/filterOrders.js +118 -92
  193. package/lib/server/modules/payment/index.js +59 -83
  194. package/lib/server/modules/payment/types.js +4 -16
  195. package/lib/server/modules/products/index.js +583 -471
  196. package/lib/server/modules/products/types.js +44 -34
  197. package/lib/server/modules/quotation/index.js +137 -172
  198. package/lib/server/modules/quotation/types.js +21 -31
  199. package/lib/server/modules/resource/index.js +220 -186
  200. package/lib/server/modules/resource/types.js +42 -33
  201. package/lib/server/modules/schedule/index.js +135 -123
  202. package/lib/server/modules/schedule/types.js +14 -21
  203. package/lib/server/modules/schedule/utils.js +334 -163
  204. package/lib/server/types.js +4 -16
  205. package/lib/server/utils/index.js +25 -23
  206. package/lib/server/utils/product.js +196 -139
  207. package/lib/server/utils/schedule.js +34 -41
  208. package/lib/server/utils/small-ticket.js +479 -456
  209. package/lib/server/utils/time.js +40 -49
  210. package/lib/solution/BaseSales/index.js +1186 -1410
  211. package/lib/solution/BaseSales/types.js +42 -38
  212. package/lib/solution/BaseSales/utils/cartPromotion.js +642 -498
  213. package/lib/solution/BaseSales/utils/parseSalesResponse.js +85 -105
  214. package/lib/solution/BaseSales/utils/quotationPrice.js +56 -114
  215. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +108 -145
  216. package/lib/solution/BaseSales/utils.js +158 -143
  217. package/lib/solution/BookingByStep/index.js +1527 -1340
  218. package/lib/solution/BookingByStep/types.js +40 -99
  219. package/lib/solution/BookingByStep/utils/capacity.js +192 -160
  220. package/lib/solution/BookingByStep/utils/products.js +42 -52
  221. package/lib/solution/BookingByStep/utils/resources.js +527 -330
  222. package/lib/solution/BookingByStep/utils/stock.js +65 -44
  223. package/lib/solution/BookingByStep/utils/timeslots.js +129 -131
  224. package/lib/solution/BookingTicket/index.js +607 -522
  225. package/lib/solution/BookingTicket/types.js +99 -77
  226. package/lib/solution/BookingTicket/utils/addProductDecision.js +226 -189
  227. package/lib/solution/BookingTicket/utils/addTimeAvailability.js +58 -89
  228. package/lib/solution/BookingTicket/utils/bookingStatus.js +107 -78
  229. package/lib/solution/BookingTicket/utils/cartView.js +114 -99
  230. package/lib/solution/BookingTicket/utils/exampleData.js +185 -0
  231. package/lib/solution/BookingTicket/utils/orderCustomer.js +18 -41
  232. package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +219 -86
  233. package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +168 -116
  234. package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +79 -91
  235. package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +54 -41
  236. package/lib/solution/BookingTicket/utils/scan/handleScan.js +84 -81
  237. package/lib/solution/BookingTicket/utils/scan/index.js +98 -104
  238. package/lib/solution/BookingTicket/utils/scan/scanCache.js +90 -43
  239. package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +52 -64
  240. package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +56 -58
  241. package/lib/solution/BookingTicket/utils/weighingProductSku.js +34 -48
  242. package/lib/solution/BuyTickets/index.js +67 -70
  243. package/lib/solution/BuyTickets/types.js +22 -38
  244. package/lib/solution/Checkout/index.js +1451 -1158
  245. package/lib/solution/Checkout/types.js +91 -61
  246. package/lib/solution/Checkout/utils/index.js +228 -156
  247. package/lib/solution/PlaceOrder/index.js +55 -0
  248. package/lib/solution/RegisterAndLogin/config.js +493 -460
  249. package/lib/solution/RegisterAndLogin/index.js +633 -630
  250. package/lib/solution/RegisterAndLogin/types.js +189 -76
  251. package/lib/solution/RegisterAndLogin/utils.js +183 -125
  252. package/lib/solution/Sales/index.js +328 -324
  253. package/lib/solution/Sales/types.js +27 -33
  254. package/lib/solution/ScanOrder/index.js +832 -864
  255. package/lib/solution/ScanOrder/types.js +33 -34
  256. package/lib/solution/ScanOrder/utils.js +409 -374
  257. package/lib/solution/ShopDiscount/index.js +226 -232
  258. package/lib/solution/ShopDiscount/types.js +15 -37
  259. package/lib/solution/ShopDiscount/utils.js +300 -172
  260. package/lib/solution/UnifiedBookingSales/index.js +1035 -1201
  261. package/lib/solution/UnifiedBookingSales/remoteOccupancyCache.js +99 -159
  262. package/lib/solution/UnifiedBookingSales/types.js +10 -32
  263. package/lib/solution/VenueBooking/index.js +811 -879
  264. package/lib/solution/VenueBooking/types.js +19 -39
  265. package/lib/solution/VenueBooking/utils/dateSummary.js +27 -56
  266. package/lib/solution/VenueBooking/utils/resource.js +31 -54
  267. package/lib/solution/VenueBooking/utils/slotMerge.js +94 -107
  268. package/lib/solution/VenueBooking/utils/timeSlot.js +132 -132
  269. package/lib/solution/VenueBooking/utils.js +130 -67
  270. package/lib/solution/index.js +124 -41
  271. package/lib/store/createStore.js +32 -29
  272. package/lib/types/index.js +4 -16
  273. package/lib/utils/payment-number.js +26 -46
  274. package/lib/utils/task.js +36 -36
  275. package/lib/utils/watch.js +81 -47
  276. 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
+ }({});