@pisell/pisellos 0.10.14 → 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 (301) hide show
  1. package/dist/core/index.js +6 -9
  2. package/dist/model/strategy/adapter/walletPass/example.js +3 -26
  3. package/dist/model/strategy/strategy-example.js +5 -19
  4. package/dist/modules/Cart/index.js +0 -3
  5. package/dist/modules/Cart/utils/cartProduct.js +0 -1
  6. package/dist/modules/Date/index.js +1 -5
  7. package/dist/modules/Discount/index.js +2 -4
  8. package/dist/modules/OpenData/index.js +0 -2
  9. package/dist/modules/Order/index.d.ts +1 -1
  10. package/dist/modules/Order/index.js +75 -91
  11. package/dist/modules/Order/types.d.ts +5 -1
  12. package/dist/modules/Order/utils/virtualSettlement.d.ts +8 -1
  13. package/dist/modules/Order/utils/virtualSettlement.js +15 -2
  14. package/dist/modules/Order/utils.js +7 -1
  15. package/dist/modules/Payment/index.js +97 -162
  16. package/dist/modules/Product/types.d.ts +2 -0
  17. package/dist/modules/Rules/index.js +1 -4
  18. package/dist/modules/Schedule/index.js +0 -1
  19. package/dist/modules/Schedule/utils.js +0 -1
  20. package/dist/modules/Step/index.js +0 -1
  21. package/dist/plugins/request.js +1 -4
  22. package/dist/plugins/window.js +2 -6
  23. package/dist/server/index.js +97 -129
  24. package/dist/server/modules/menu/index.js +32 -41
  25. package/dist/server/modules/order/index.js +2 -4
  26. package/dist/server/modules/products/index.js +24 -42
  27. package/dist/server/modules/quotation/index.js +29 -38
  28. package/dist/server/modules/resource/index.js +3 -4
  29. package/dist/server/modules/schedule/index.js +27 -35
  30. package/dist/server/utils/product.js +0 -1
  31. package/dist/solution/BaseSales/index.js +107 -76
  32. package/dist/solution/BaseSales/types.d.ts +2 -0
  33. package/dist/solution/BaseSales/utils/cartPromotion.d.ts +5 -0
  34. package/dist/solution/BaseSales/utils/cartPromotion.js +15 -6
  35. package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.d.ts +3 -0
  36. package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +7 -1
  37. package/dist/solution/BaseSales/utils.js +6 -3
  38. package/dist/solution/BookingByStep/index.d.ts +2 -2
  39. package/dist/solution/BookingByStep/index.js +7 -59
  40. package/dist/solution/BookingByStep/utils/capacity.js +1 -11
  41. package/dist/solution/BookingByStep/utils/resources.js +1 -3
  42. package/dist/solution/BookingByStep/utils/timeslots.js +2 -43
  43. package/dist/solution/BookingTicket/index.js +8 -4
  44. package/dist/solution/BookingTicket/utils/addProductDecision.js +3 -1
  45. package/dist/solution/BookingTicket/utils/scan/cloudSearch.js +6 -7
  46. package/dist/solution/BookingTicket/utils/scan/handleScan.js +25 -31
  47. package/dist/solution/BookingTicket/utils/scan/index.js +6 -10
  48. package/dist/solution/BuyTickets/index.js +9 -12
  49. package/dist/solution/Checkout/index.js +177 -252
  50. package/dist/solution/Checkout/utils/index.js +4 -16
  51. package/dist/solution/RegisterAndLogin/index.js +30 -76
  52. package/dist/solution/ScanOrder/index.js +50 -60
  53. package/dist/solution/ScanOrder/types.d.ts +2 -0
  54. package/dist/solution/ScanOrder/utils.js +6 -3
  55. package/dist/solution/ShopDiscount/index.js +2 -7
  56. package/dist/solution/VenueBooking/index.js +45 -55
  57. package/dist/utils/task.js +15 -18
  58. package/dist/utils/watch.js +0 -1
  59. package/lib/apis/picoding.js +2 -0
  60. package/lib/core/index.js +131 -131
  61. package/lib/effects/index.js +46 -57
  62. package/lib/index.js +82 -49
  63. package/lib/model/index.js +14 -21
  64. package/lib/model/strategy/adapter/dataVariant/adapter.js +38 -50
  65. package/lib/model/strategy/adapter/dataVariant/evaluator.js +209 -315
  66. package/lib/model/strategy/adapter/dataVariant/examples.js +229 -237
  67. package/lib/model/strategy/adapter/dataVariant/index.js +39 -34
  68. package/lib/model/strategy/adapter/dataVariant/type.js +57 -28
  69. package/lib/model/strategy/adapter/index.js +100 -64
  70. package/lib/model/strategy/adapter/itemRule/adapter.js +156 -144
  71. package/lib/model/strategy/adapter/itemRule/evaluator.js +36 -48
  72. package/lib/model/strategy/adapter/itemRule/examples.js +295 -225
  73. package/lib/model/strategy/adapter/itemRule/index.js +83 -57
  74. package/lib/model/strategy/adapter/itemRule/type.js +97 -36
  75. package/lib/model/strategy/adapter/promotion/adapter.js +91 -69
  76. package/lib/model/strategy/adapter/promotion/evaluator.js +444 -310
  77. package/lib/model/strategy/adapter/promotion/examples.js +222 -234
  78. package/lib/model/strategy/adapter/promotion/index.js +43 -48
  79. package/lib/model/strategy/adapter/promotion/type.js +243 -36
  80. package/lib/model/strategy/adapter/type.js +4 -16
  81. package/lib/model/strategy/adapter/walletPass/evaluator.js +180 -150
  82. package/lib/model/strategy/adapter/walletPass/example.js +217 -190
  83. package/lib/model/strategy/adapter/walletPass/index.js +75 -51
  84. package/lib/model/strategy/adapter/walletPass/locales.js +36 -58
  85. package/lib/model/strategy/adapter/walletPass/type.js +4 -16
  86. package/lib/model/strategy/adapter/walletPass/utils.js +588 -378
  87. package/lib/model/strategy/engine.js +270 -168
  88. package/lib/model/strategy/index.js +49 -34
  89. package/lib/model/strategy/strategy-example.js +243 -239
  90. package/lib/model/strategy/type.js +100 -40
  91. package/lib/modules/Account/index.js +39 -53
  92. package/lib/modules/Account/types.js +20 -33
  93. package/lib/modules/AccountList/index.js +116 -154
  94. package/lib/modules/AccountList/types.js +30 -31
  95. package/lib/modules/AccountList/utils.js +18 -30
  96. package/lib/modules/BaseModule.js +23 -42
  97. package/lib/modules/BookingContext/index.js +158 -136
  98. package/lib/modules/BookingContext/types.js +46 -32
  99. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +138 -146
  100. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +78 -83
  101. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +170 -150
  102. package/lib/modules/BookingContext/utils/flexible.js +38 -55
  103. package/lib/modules/BookingContext/utils/formatResourceList.js +19 -34
  104. package/lib/modules/BookingContext/utils/index.js +124 -41
  105. package/lib/modules/BookingContext/utils/noResource.js +58 -70
  106. package/lib/modules/BookingContext/utils/orderLineDisplay.js +14 -41
  107. package/lib/modules/BookingContext/utils/productExtend.js +202 -155
  108. package/lib/modules/BookingContext/utils/resourceErrors.js +53 -53
  109. package/lib/modules/BookingContext/utils/resourceSelection.js +19 -41
  110. package/lib/modules/BookingContext/utils/resources.js +209 -167
  111. package/lib/modules/BookingContext/utils/serviceTimes.js +115 -116
  112. package/lib/modules/BookingContext/utils/timeSlices.js +76 -86
  113. package/lib/modules/Cart/index.js +170 -124
  114. package/lib/modules/Cart/types.js +46 -51
  115. package/lib/modules/Cart/utils/cartAccount.js +40 -39
  116. package/lib/modules/Cart/utils/cartDate.js +56 -61
  117. package/lib/modules/Cart/utils/cartDiscount.js +28 -33
  118. package/lib/modules/Cart/utils/cartNote.js +27 -32
  119. package/lib/modules/Cart/utils/cartProduct.js +321 -251
  120. package/lib/modules/Cart/utils/cartRelationForms.js +29 -35
  121. package/lib/modules/Cart/utils/cartResource.js +70 -78
  122. package/lib/modules/Cart/utils/changePrice.js +22 -50
  123. package/lib/modules/Cart/utils/index.js +106 -48
  124. package/lib/modules/Customer/constants.js +13 -34
  125. package/lib/modules/Customer/index.js +235 -172
  126. package/lib/modules/Customer/types.js +38 -35
  127. package/lib/modules/Date/index.js +116 -115
  128. package/lib/modules/Date/types.js +16 -28
  129. package/lib/modules/Date/utils.js +174 -123
  130. package/lib/modules/Discount/index.js +133 -143
  131. package/lib/modules/Discount/types.js +9 -31
  132. package/lib/modules/Guests/index.js +30 -56
  133. package/lib/modules/Guests/types.js +23 -33
  134. package/lib/modules/Holder/index.js +209 -189
  135. package/lib/modules/Holder/types.js +4 -16
  136. package/lib/modules/Holder/utils.js +20 -49
  137. package/lib/modules/OpenData/index.js +70 -76
  138. package/lib/modules/OpenData/types.js +4 -16
  139. package/lib/modules/OpenData/utils.js +44 -78
  140. package/lib/modules/Order/index.d.ts +1 -1
  141. package/lib/modules/Order/index.js +1810 -2238
  142. package/lib/modules/Order/payment-utils.js +77 -120
  143. package/lib/modules/Order/types.d.ts +5 -1
  144. package/lib/modules/Order/types.js +87 -35
  145. package/lib/modules/Order/utils/bundleDiscountHydration.js +41 -74
  146. package/lib/modules/Order/utils/discountProductLineIdentity.js +142 -100
  147. package/lib/modules/Order/utils/manualProductDiscount.js +124 -123
  148. package/lib/modules/Order/utils/orderCollectionIdentity.js +184 -244
  149. package/lib/modules/Order/utils/virtualSettlement.d.ts +8 -1
  150. package/lib/modules/Order/utils/virtualSettlement.js +126 -164
  151. package/lib/modules/Order/utils.js +834 -668
  152. package/lib/modules/Payment/cash.js +20 -33
  153. package/lib/modules/Payment/cashRecommendationAlgorithm.js +145 -76
  154. package/lib/modules/Payment/eftpos.js +16 -30
  155. package/lib/modules/Payment/index.js +532 -399
  156. package/lib/modules/Payment/mx51.js +1 -0
  157. package/lib/modules/Payment/types.js +230 -108
  158. package/lib/modules/Payment/utils.js +52 -51
  159. package/lib/modules/Payment/walletpass.js +485 -660
  160. package/lib/modules/Product/index.js +51 -46
  161. package/lib/modules/Product/types.d.ts +2 -0
  162. package/lib/modules/Product/types.js +4 -16
  163. package/lib/modules/Product/utils.js +32 -33
  164. package/lib/modules/ProductList/index.js +138 -161
  165. package/lib/modules/ProductList/types.js +9 -31
  166. package/lib/modules/Quotation/index.js +66 -100
  167. package/lib/modules/Quotation/types.js +4 -16
  168. package/lib/modules/Resource/index.js +27 -59
  169. package/lib/modules/Resource/types.js +22 -32
  170. package/lib/modules/Resource/utils.js +30 -38
  171. package/lib/modules/ResourcePlanner/index.js +25 -23
  172. package/lib/modules/ResourcePlanner/localClock.js +54 -119
  173. package/lib/modules/ResourcePlanner/planner.js +591 -772
  174. package/lib/modules/ResourcePlanner/types.js +10 -29
  175. package/lib/modules/Rules/index.js +1218 -959
  176. package/lib/modules/Rules/types.js +17 -40
  177. package/lib/modules/SalesSummary/index.js +78 -89
  178. package/lib/modules/SalesSummary/types.js +4 -16
  179. package/lib/modules/SalesSummary/utils.js +359 -442
  180. package/lib/modules/ScanOrderLogger/index.js +59 -79
  181. package/lib/modules/ScanOrderLogger/providers/feishu.js +54 -78
  182. package/lib/modules/ScanOrderLogger/providers/grafana.js +13 -36
  183. package/lib/modules/ScanOrderLogger/types.js +4 -16
  184. package/lib/modules/Schedule/getDateIsInSchedule.js +334 -163
  185. package/lib/modules/Schedule/index.js +100 -114
  186. package/lib/modules/Schedule/type.js +4 -16
  187. package/lib/modules/Schedule/types.js +4 -16
  188. package/lib/modules/Schedule/utils.js +433 -291
  189. package/lib/modules/Step/index.js +40 -52
  190. package/lib/modules/Step/tyeps.js +4 -16
  191. package/lib/modules/Summary/index.js +66 -71
  192. package/lib/modules/Summary/types.js +4 -16
  193. package/lib/modules/Summary/utils.js +773 -418
  194. package/lib/modules/SurchargeList/index.js +46 -60
  195. package/lib/modules/SurchargeList/types.js +4 -16
  196. package/lib/modules/index.js +245 -63
  197. package/lib/plugins/app.js +4 -16
  198. package/lib/plugins/index.js +36 -25
  199. package/lib/plugins/request.js +137 -126
  200. package/lib/plugins/shopStore.js +4 -16
  201. package/lib/plugins/user.js +4 -16
  202. package/lib/plugins/window.js +171 -179
  203. package/lib/server/index.js +3027 -2655
  204. package/lib/server/modules/floor-plan/index.js +102 -123
  205. package/lib/server/modules/floor-plan/types.js +15 -30
  206. package/lib/server/modules/index.js +106 -68
  207. package/lib/server/modules/menu/index.js +146 -122
  208. package/lib/server/modules/menu/types.js +18 -31
  209. package/lib/server/modules/order/index.js +758 -956
  210. package/lib/server/modules/order/types.js +122 -33
  211. package/lib/server/modules/order/utils/filterBookings.js +219 -194
  212. package/lib/server/modules/order/utils/filterOrders.js +118 -92
  213. package/lib/server/modules/payment/index.js +59 -83
  214. package/lib/server/modules/payment/types.js +4 -16
  215. package/lib/server/modules/products/index.js +575 -459
  216. package/lib/server/modules/products/types.js +44 -34
  217. package/lib/server/modules/quotation/index.js +137 -172
  218. package/lib/server/modules/quotation/types.js +21 -31
  219. package/lib/server/modules/resource/index.js +213 -184
  220. package/lib/server/modules/resource/types.js +42 -33
  221. package/lib/server/modules/schedule/index.js +135 -123
  222. package/lib/server/modules/schedule/types.js +14 -21
  223. package/lib/server/modules/schedule/utils.js +334 -163
  224. package/lib/server/types.js +4 -16
  225. package/lib/server/utils/index.js +25 -23
  226. package/lib/server/utils/product.js +196 -139
  227. package/lib/server/utils/schedule.js +34 -41
  228. package/lib/server/utils/small-ticket.js +479 -456
  229. package/lib/server/utils/time.js +40 -49
  230. package/lib/solution/BaseSales/index.js +1276 -1485
  231. package/lib/solution/BaseSales/types.d.ts +2 -0
  232. package/lib/solution/BaseSales/types.js +42 -38
  233. package/lib/solution/BaseSales/utils/cartPromotion.d.ts +5 -0
  234. package/lib/solution/BaseSales/utils/cartPromotion.js +652 -498
  235. package/lib/solution/BaseSales/utils/parseSalesResponse.js +85 -105
  236. package/lib/solution/BaseSales/utils/quotationPrice.js +56 -114
  237. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.d.ts +3 -0
  238. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +138 -180
  239. package/lib/solution/BaseSales/utils.js +161 -143
  240. package/lib/solution/BookingByStep/index.d.ts +2 -2
  241. package/lib/solution/BookingByStep/index.js +1527 -1340
  242. package/lib/solution/BookingByStep/types.js +40 -99
  243. package/lib/solution/BookingByStep/utils/capacity.js +192 -160
  244. package/lib/solution/BookingByStep/utils/products.js +42 -52
  245. package/lib/solution/BookingByStep/utils/resources.js +527 -330
  246. package/lib/solution/BookingByStep/utils/stock.js +65 -44
  247. package/lib/solution/BookingByStep/utils/timeslots.js +129 -131
  248. package/lib/solution/BookingTicket/index.js +598 -514
  249. package/lib/solution/BookingTicket/types.js +99 -77
  250. package/lib/solution/BookingTicket/utils/addProductDecision.js +229 -190
  251. package/lib/solution/BookingTicket/utils/addTimeAvailability.js +58 -89
  252. package/lib/solution/BookingTicket/utils/bookingStatus.js +107 -78
  253. package/lib/solution/BookingTicket/utils/cartView.js +114 -99
  254. package/lib/solution/BookingTicket/utils/exampleData.js +185 -0
  255. package/lib/solution/BookingTicket/utils/orderCustomer.js +18 -41
  256. package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +219 -86
  257. package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +168 -116
  258. package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +79 -91
  259. package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +54 -41
  260. package/lib/solution/BookingTicket/utils/scan/handleScan.js +84 -81
  261. package/lib/solution/BookingTicket/utils/scan/index.js +98 -104
  262. package/lib/solution/BookingTicket/utils/scan/scanCache.js +90 -43
  263. package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +52 -64
  264. package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +56 -58
  265. package/lib/solution/BookingTicket/utils/weighingProductSku.js +34 -48
  266. package/lib/solution/BuyTickets/index.js +67 -70
  267. package/lib/solution/BuyTickets/types.js +22 -38
  268. package/lib/solution/Checkout/index.js +1451 -1158
  269. package/lib/solution/Checkout/types.js +91 -61
  270. package/lib/solution/Checkout/utils/index.js +228 -156
  271. package/lib/solution/PlaceOrder/index.js +55 -0
  272. package/lib/solution/RegisterAndLogin/config.js +493 -460
  273. package/lib/solution/RegisterAndLogin/index.js +633 -630
  274. package/lib/solution/RegisterAndLogin/types.js +189 -76
  275. package/lib/solution/RegisterAndLogin/utils.js +183 -125
  276. package/lib/solution/Sales/index.js +328 -324
  277. package/lib/solution/Sales/types.js +27 -33
  278. package/lib/solution/ScanOrder/index.js +822 -852
  279. package/lib/solution/ScanOrder/types.d.ts +2 -0
  280. package/lib/solution/ScanOrder/types.js +33 -34
  281. package/lib/solution/ScanOrder/utils.js +412 -374
  282. package/lib/solution/ShopDiscount/index.js +226 -232
  283. package/lib/solution/ShopDiscount/types.js +15 -37
  284. package/lib/solution/ShopDiscount/utils.js +300 -172
  285. package/lib/solution/UnifiedBookingSales/index.js +1052 -1213
  286. package/lib/solution/UnifiedBookingSales/remoteOccupancyCache.js +99 -159
  287. package/lib/solution/UnifiedBookingSales/types.js +10 -32
  288. package/lib/solution/VenueBooking/index.js +811 -879
  289. package/lib/solution/VenueBooking/types.js +19 -39
  290. package/lib/solution/VenueBooking/utils/dateSummary.js +27 -56
  291. package/lib/solution/VenueBooking/utils/resource.js +31 -54
  292. package/lib/solution/VenueBooking/utils/slotMerge.js +94 -107
  293. package/lib/solution/VenueBooking/utils/timeSlot.js +132 -132
  294. package/lib/solution/VenueBooking/utils.js +130 -67
  295. package/lib/solution/index.js +124 -41
  296. package/lib/store/createStore.js +32 -29
  297. package/lib/types/index.js +4 -16
  298. package/lib/utils/payment-number.js +26 -46
  299. package/lib/utils/task.js +36 -36
  300. package/lib/utils/watch.js +81 -47
  301. package/package.json +2 -1
@@ -1,143 +1,120 @@
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/BookingContext/utils/buildCacheItemFromOrderLine.ts
30
- var buildCacheItemFromOrderLine_exports = {};
31
- __export(buildCacheItemFromOrderLine_exports, {
32
- buildCacheItemFromOrderLine: () => buildCacheItemFromOrderLine
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
33
5
  });
34
- module.exports = __toCommonJS(buildCacheItemFromOrderLine_exports);
35
- var import_dayjs = __toESM(require("dayjs"));
36
- var import_utils = require("../../Order/utils");
37
- var import_manualProductDiscount = require("../../Order/utils/manualProductDiscount");
38
- var import_orderLineDisplay = require("./orderLineDisplay");
6
+ exports.buildCacheItemFromOrderLine = buildCacheItemFromOrderLine;
7
+ var _dayjs = _interopRequireDefault(require("dayjs"));
8
+ var _utils = require("../../Order/utils");
9
+ var _manualProductDiscount = require("../../Order/utils/manualProductDiscount");
10
+ var _orderLineDisplay = require("./orderLineDisplay");
11
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
39
12
  function safeFormat(value, fmt) {
40
- if (value === void 0 || value === null)
41
- return void 0;
42
- const d = (0, import_dayjs.default)(value);
43
- if (!d.isValid())
44
- return void 0;
13
+ if (value === undefined || value === null) return undefined;
14
+ const d = (0, _dayjs.default)(value);
15
+ if (!d.isValid()) return undefined;
45
16
  return d.format(fmt);
46
17
  }
47
18
  function normalizeTimeString(value) {
48
- if (value === void 0 || value === null)
49
- return void 0;
50
- if (typeof value === "string") {
19
+ if (value === undefined || value === null) return undefined;
20
+ if (typeof value === 'string') {
51
21
  const t = value.trim();
52
22
  const hhmmFromHhmmss = t.match(/^(\d{1,2}:\d{2}):\d{2}$/);
53
- if (hhmmFromHhmmss)
54
- return hhmmFromHhmmss[1];
55
- if (/^\d{1,2}:\d{2}$/.test(t))
56
- return t;
23
+ if (hhmmFromHhmmss) return hhmmFromHhmmss[1];
24
+ if (/^\d{1,2}:\d{2}$/.test(t)) return t;
57
25
  }
58
- const d = (0, import_dayjs.default)(value);
59
- if (d.isValid())
60
- return d.format("HH:mm");
61
- return void 0;
26
+ const d = (0, _dayjs.default)(value);
27
+ if (d.isValid()) return d.format('HH:mm');
28
+ return undefined;
62
29
  }
30
+
31
+ /**
32
+ * bookings[].resources[] → cacheItem._extend.resource(与 cacheItemToBookingInput.flattenResources 互逆)。
33
+ */
63
34
  function unflattenResourceMap(resources) {
64
35
  const map = {};
65
- if (!Array.isArray(resources))
66
- return map;
67
- resources.forEach((r) => {
68
- const formId = r == null ? void 0 : r.form_id;
69
- if (formId === void 0 || formId === null)
70
- return;
36
+ if (!Array.isArray(resources)) return map;
37
+ resources.forEach(r => {
38
+ const formId = r?.form_id;
39
+ if (formId === undefined || formId === null) return;
71
40
  const key = String(formId);
72
- if (!map[key])
73
- map[key] = [];
41
+ if (!map[key]) map[key] = [];
74
42
  map[key].push({
75
43
  form_id: formId,
76
44
  relation_id: r.relation_id,
77
- relation_type: r.relation_type || "form",
78
- like_status: r.like_status || "common",
79
- metadata: r.metadata ? { ...r.metadata } : void 0,
45
+ relation_type: r.relation_type || 'form',
46
+ like_status: r.like_status || 'common',
47
+ metadata: r.metadata ? {
48
+ ...r.metadata
49
+ } : undefined,
80
50
  children: r.children
81
51
  });
82
52
  });
83
53
  return map;
84
54
  }
55
+
56
+ /**
57
+ * 从 booking.metadata.capacity 还原 `_extend.capacity`(与 info2 ticketBooking getCapacity 对齐)。
58
+ * 勿用 resources[].relation_id 反推人数维度 id。
59
+ */
85
60
  function resolveCapacityFromBooking(booking) {
86
- var _a;
87
- const metaCap = (_a = booking.metadata) == null ? void 0 : _a.capacity;
61
+ const metaCap = booking.metadata?.capacity;
88
62
  if (Array.isArray(metaCap) && metaCap.length > 0) {
89
- return metaCap.map((item) => {
90
- if (!item || typeof item !== "object")
91
- return null;
92
- if (item.id === void 0 || item.id === null)
93
- return null;
63
+ return metaCap.map(item => {
64
+ if (!item || typeof item !== 'object') return null;
65
+ if (item.id === undefined || item.id === null) return null;
94
66
  const row = {
95
67
  id: item.id,
96
68
  value: Number(item.value ?? 0)
97
69
  };
98
- if (item.name !== void 0)
99
- row.name = item.name;
70
+ if (item.name !== undefined) row.name = item.name;
100
71
  return row;
101
- }).filter((item) => item != null);
72
+ }).filter(item => item != null);
102
73
  }
103
- if (typeof metaCap === "number" && Number.isFinite(metaCap)) {
104
- return [{ id: 0, value: metaCap, name: "" }];
74
+ if (typeof metaCap === 'number' && Number.isFinite(metaCap)) {
75
+ return [{
76
+ id: 0,
77
+ value: metaCap,
78
+ name: ''
79
+ }];
105
80
  }
106
81
  return [];
107
82
  }
108
83
  function resolveDurationForExtend(booking) {
109
84
  const duration = booking.duration;
110
- if (booking.sub_type === "days" || booking.is_all === 1) {
85
+ if (booking.sub_type === 'days' || booking.is_all === 1) {
111
86
  return duration;
112
87
  }
113
- if (typeof duration === "number" && Number.isFinite(duration)) {
88
+ if (typeof duration === 'number' && Number.isFinite(duration)) {
114
89
  return duration;
115
90
  }
116
91
  return duration;
117
92
  }
93
+
94
+ /** booking.duration → catalog 顶层 duration 结构(供 isNormalProductByDurationSchedule 识别)。 */
118
95
  function resolveTopLevelDuration(booking, sourceProduct) {
119
- if ((sourceProduct == null ? void 0 : sourceProduct.duration) !== void 0) {
96
+ if (sourceProduct?.duration !== undefined) {
120
97
  return sourceProduct.duration;
121
98
  }
122
99
  const raw = booking.duration;
123
- if (raw == null || raw === "")
124
- return void 0;
125
- if (typeof raw === "object" && raw.type) {
100
+ if (raw == null || raw === '') return undefined;
101
+ if (typeof raw === 'object' && raw.type) {
126
102
  return raw;
127
103
  }
128
- const subType = booking.sub_type === "days" ? "days" : "minutes";
104
+ const subType = booking.sub_type === 'days' ? 'days' : 'minutes';
129
105
  const value = Number(raw);
130
- if (!Number.isFinite(value) || value <= 0)
131
- return void 0;
132
- return { type: subType, value };
106
+ if (!Number.isFinite(value) || value <= 0) return undefined;
107
+ return {
108
+ type: subType,
109
+ value
110
+ };
133
111
  }
134
112
  function resolveProductTitle(product, booking, sourceProduct) {
135
- var _a, _b;
136
113
  const metadata = product.metadata || {};
137
- return (sourceProduct == null ? void 0 : sourceProduct.title) ?? (sourceProduct == null ? void 0 : sourceProduct.name) ?? metadata.product_title ?? metadata.product_name ?? ((_a = booking == null ? void 0 : booking.product) == null ? void 0 : _a.title) ?? ((_b = booking == null ? void 0 : booking.detail) == null ? void 0 : _b.product_title) ?? "";
114
+ return sourceProduct?.title ?? sourceProduct?.name ?? metadata.product_title ?? metadata.product_name ?? booking?.product?.title ?? booking?.detail?.product_title ?? '';
138
115
  }
139
116
  function resolveProductCover(product, booking, sourceProduct) {
140
- return (sourceProduct == null ? void 0 : sourceProduct.cover) ?? product.product_cover ?? "";
117
+ return sourceProduct?.cover ?? product.product_cover ?? '';
141
118
  }
142
119
  function resolveMainProductPrice(product, fallback) {
143
120
  const metadata = product.metadata || {};
@@ -146,7 +123,7 @@ function resolveMainProductPrice(product, fallback) {
146
123
  return Number.isFinite(parsed) ? parsed : fallback;
147
124
  }
148
125
  function mapOrderBundleToOtherBundle(bundle) {
149
- return bundle.map((item) => {
126
+ return bundle.map(item => {
150
127
  return {
151
128
  ...item,
152
129
  // 后端历史订单可能没有 original_price;此时 price 是折前毛价,
@@ -155,15 +132,22 @@ function mapOrderBundleToOtherBundle(bundle) {
155
132
  };
156
133
  });
157
134
  }
135
+
136
+ /**
137
+ * catalog 缺 product_resource 时,从 booking.resources 反推最小 product_resource 结构,
138
+ * 供 getResourceByIds / formatResources 渲染资源编辑 UI。
139
+ *
140
+ * @example
141
+ * synthesizeProductResourceFromBooking({ resources: [{ form_id: 35, relation_id: 41077 }] });
142
+ */
158
143
  function synthesizeProductResourceFromBooking(booking) {
159
- const rows = booking == null ? void 0 : booking.resources;
160
- if (!Array.isArray(rows) || rows.length === 0)
161
- return void 0;
162
- const relationIdsByForm = /* @__PURE__ */ new Map();
163
- rows.forEach((row) => {
164
- const formId = row == null ? void 0 : row.form_id;
165
- const relationId = Number(row == null ? void 0 : row.relation_id);
166
- if (formId == null || formId === "" || !Number.isFinite(relationId) || relationId <= 0) {
144
+ const rows = booking?.resources;
145
+ if (!Array.isArray(rows) || rows.length === 0) return undefined;
146
+ const relationIdsByForm = new Map();
147
+ rows.forEach(row => {
148
+ const formId = row?.form_id;
149
+ const relationId = Number(row?.relation_id);
150
+ if (formId == null || formId === '' || !Number.isFinite(relationId) || relationId <= 0) {
167
151
  return;
168
152
  }
169
153
  const list = relationIdsByForm.get(formId) ?? [];
@@ -172,50 +156,57 @@ function synthesizeProductResourceFromBooking(booking) {
172
156
  }
173
157
  relationIdsByForm.set(formId, list);
174
158
  });
175
- if (relationIdsByForm.size === 0)
176
- return void 0;
159
+ if (relationIdsByForm.size === 0) return undefined;
177
160
  return {
178
161
  resources: Array.from(relationIdsByForm.entries()).map(([formId, relationIds]) => ({
179
162
  id: formId,
180
163
  status: 1,
181
- type: "form",
182
- code: "",
164
+ type: 'form',
165
+ code: '',
183
166
  optional_resource: relationIds,
184
167
  default_resource: []
185
168
  }))
186
169
  };
187
170
  }
171
+
172
+ /**
173
+ * 从已加车的 order line + booking 反查 editService 所需的 cacheItem。
174
+ *
175
+ * 与 `buildCacheItemFromCartDetail` / `buildCacheItemFromDetail` 正向拼装互逆(在 getProductExtend 之前调用)。
176
+ * 调用方须传入与该行关联的 booking(通常 bookings[].product_uid === product.metadata.unique_identification_number)。
177
+ */
188
178
  function buildCacheItemFromOrderLine(input) {
189
- var _a, _b, _c, _d, _e, _f, _g;
190
- const { product, booking, sourceProduct } = input;
191
- const resolvedId = product.product_id ?? (sourceProduct == null ? void 0 : sourceProduct.id);
179
+ const {
180
+ product,
181
+ booking,
182
+ sourceProduct
183
+ } = input;
184
+ const resolvedId = product.product_id ?? sourceProduct?.id;
192
185
  const selling = Number(product.selling_price ?? 0);
193
186
  const original = Number(product.original_price ?? selling);
194
187
  const mainProductPrice = resolveMainProductPrice(product, selling);
195
- const startDate = safeFormat(booking.start_date, "YYYY-MM-DD");
196
- const endDate = safeFormat(booking.end_date, "YYYY-MM-DD");
188
+ const startDate = safeFormat(booking.start_date, 'YYYY-MM-DD');
189
+ const endDate = safeFormat(booking.end_date, 'YYYY-MM-DD');
197
190
  const startTime = normalizeTimeString(booking.start_time);
198
191
  const endTime = normalizeTimeString(booking.end_time);
199
192
  const resource = unflattenResourceMap(booking.resources);
200
193
  const capacity = resolveCapacityFromBooking(booking);
201
- const holderId = ((_a = booking.metadata) == null ? void 0 : _a.holder_id) ?? booking.holder_id;
194
+ const holderId = booking.metadata?.holder_id ?? booking.holder_id;
202
195
  const productTitle = resolveProductTitle(product, booking, sourceProduct);
203
196
  const productCover = resolveProductCover(product, booking, sourceProduct);
204
- const productOptionString = (0, import_orderLineDisplay.buildProductOptionStringFromOrderLine)(product);
197
+ const productOptionString = (0, _orderLineDisplay.buildProductOptionStringFromOrderLine)(product);
205
198
  const hasBundle = Array.isArray(product.product_bundle) && product.product_bundle.length > 0;
206
- const bundleEdit = product.bundle_edit ?? (hasBundle ? 0 : void 0);
199
+ const bundleEdit = product.bundle_edit ?? (hasBundle ? 0 : undefined);
207
200
  const other = {
208
201
  product_variant_id: product.product_variant_id ?? 0,
209
- option: (0, import_utils.getProductSkuOptions)(product),
210
- bundle: mapOrderBundleToOtherBundle(
211
- Array.isArray(product.product_bundle) ? product.product_bundle : []
212
- )
202
+ option: (0, _utils.getProductSkuOptions)(product),
203
+ bundle: mapOrderBundleToOtherBundle(Array.isArray(product.product_bundle) ? product.product_bundle : [])
213
204
  };
214
205
  const extend = {
215
- start_date: startDate ? (0, import_dayjs.default)(startDate) : void 0,
216
- end_date: endDate ? (0, import_dayjs.default)(endDate) : void 0,
217
- startDate: startDate ? (0, import_dayjs.default)(startDate) : void 0,
218
- endDate: endDate ? (0, import_dayjs.default)(endDate) : void 0,
206
+ start_date: startDate ? (0, _dayjs.default)(startDate) : undefined,
207
+ end_date: endDate ? (0, _dayjs.default)(endDate) : undefined,
208
+ startDate: startDate ? (0, _dayjs.default)(startDate) : undefined,
209
+ endDate: endDate ? (0, _dayjs.default)(endDate) : undefined,
219
210
  start_time: startTime,
220
211
  end_time: endTime,
221
212
  duration: resolveDurationForExtend(booking),
@@ -223,7 +214,7 @@ function buildCacheItemFromOrderLine(input) {
223
214
  quantity: product.num ?? 1,
224
215
  product_name: productTitle,
225
216
  product_cover: productCover,
226
- note: product.note ?? ((_b = booking == null ? void 0 : booking.detail) == null ? void 0 : _b.note) ?? "",
217
+ note: product.note ?? booking?.detail?.note ?? '',
227
218
  price: mainProductPrice,
228
219
  total: selling,
229
220
  origin_total: original,
@@ -231,55 +222,60 @@ function buildCacheItemFromOrderLine(input) {
231
222
  capacity,
232
223
  holder_id: holderId,
233
224
  other,
234
- like_status: booking.like_status || "common",
235
- discount_reason: (0, import_manualProductDiscount.resolveManualDiscountMessage)(
236
- product.discount_list,
237
- (_c = product.metadata) == null ? void 0 : _c.product_discount_reason
238
- ) || void 0,
239
- ...bundleEdit !== void 0 ? { bundle_edit: bundleEdit } : {},
240
- ...productOptionString ? { product_option_string: productOptionString } : {}
225
+ like_status: booking.like_status || 'common',
226
+ discount_reason: (0, _manualProductDiscount.resolveManualDiscountMessage)(product.discount_list, product.metadata?.product_discount_reason) || undefined,
227
+ ...(bundleEdit !== undefined ? {
228
+ bundle_edit: bundleEdit
229
+ } : {}),
230
+ ...(productOptionString ? {
231
+ product_option_string: productOptionString
232
+ } : {})
241
233
  };
242
- const manualDiscount = (product.discount_list || []).find((d) => (d == null ? void 0 : d.type) === "product");
234
+ const manualDiscount = (product.discount_list || []).find(d => d?.type === 'product');
243
235
  if (manualDiscount && extend.origin_total === selling) {
244
236
  const manualAmount = Number(manualDiscount.amount ?? 0);
245
237
  if (Number.isFinite(manualAmount) && manualAmount > 0) {
246
238
  extend.origin_total = selling + manualAmount;
247
239
  }
248
240
  }
249
- if (((_d = product.metadata) == null ? void 0 : _d.price_override) != null || manualDiscount) {
241
+ if (product.metadata?.price_override != null || manualDiscount) {
250
242
  extend.priceOverride = selling;
251
243
  }
252
- if (booking.holder !== void 0) {
244
+ if (booking.holder !== undefined) {
253
245
  extend.holder = booking.holder;
254
246
  }
255
247
  if (Array.isArray(booking.relation_forms)) {
256
248
  extend.relation_forms = booking.relation_forms;
257
249
  }
258
250
  const base = {
259
- ...sourceProduct || {},
251
+ ...(sourceProduct || {}),
260
252
  id: resolvedId,
261
253
  product_id: resolvedId,
262
- extension_type: (sourceProduct == null ? void 0 : sourceProduct.extension_type) ?? ((_e = booking == null ? void 0 : booking.product) == null ? void 0 : _e.extension_type) ?? (sourceProduct == null ? void 0 : sourceProduct.extension_type),
263
- title: productTitle || (sourceProduct == null ? void 0 : sourceProduct.title) || ((_f = booking == null ? void 0 : booking.product) == null ? void 0 : _f.title),
264
- price: (sourceProduct == null ? void 0 : sourceProduct.price) ?? selling,
254
+ extension_type: sourceProduct?.extension_type ?? booking?.product?.extension_type ?? sourceProduct?.extension_type,
255
+ title: productTitle || sourceProduct?.title || booking?.product?.title,
256
+ price: sourceProduct?.price ?? selling,
265
257
  selling_price: product.selling_price,
266
258
  original_price: product.original_price,
267
- ...Number(((_g = product.product_sku) == null ? void 0 : _g.open_sold_weight) || 0) === 1 ? { product_sku: JSON.parse(JSON.stringify(product.product_sku)) } : {},
268
- ...productOptionString ? { product_option_string: productOptionString } : {},
259
+ ...(Number(product.product_sku?.open_sold_weight || 0) === 1 ? {
260
+ product_sku: JSON.parse(JSON.stringify(product.product_sku))
261
+ } : {}),
262
+ ...(productOptionString ? {
263
+ product_option_string: productOptionString
264
+ } : {}),
269
265
  _extend: extend,
270
266
  new: 0,
271
267
  autoClose: false,
272
268
  order_detail_id: product.order_detail_id ?? null,
273
269
  booking_id: booking.id ?? booking.booking_id ?? 0
274
270
  };
275
- if ((sourceProduct == null ? void 0 : sourceProduct.capacity) !== void 0) {
271
+ if (sourceProduct?.capacity !== undefined) {
276
272
  base.capacity = sourceProduct.capacity;
277
273
  }
278
274
  const topLevelDuration = resolveTopLevelDuration(booking, sourceProduct);
279
- if (topLevelDuration !== void 0) {
275
+ if (topLevelDuration !== undefined) {
280
276
  base.duration = topLevelDuration;
281
277
  }
282
- if ((sourceProduct == null ? void 0 : sourceProduct.product_resource) !== void 0) {
278
+ if (sourceProduct?.product_resource !== undefined) {
283
279
  base.product_resource = sourceProduct.product_resource;
284
280
  } else {
285
281
  const synthesized = synthesizeProductResourceFromBooking(booking);
@@ -287,18 +283,14 @@ function buildCacheItemFromOrderLine(input) {
287
283
  base.product_resource = synthesized;
288
284
  }
289
285
  }
290
- if (Array.isArray(sourceProduct == null ? void 0 : sourceProduct.schedules) && sourceProduct.schedules.length) {
286
+ if (Array.isArray(sourceProduct?.schedules) && sourceProduct.schedules.length) {
291
287
  base.schedules = sourceProduct.schedules;
292
288
  }
293
- if (Array.isArray(sourceProduct == null ? void 0 : sourceProduct["schedule.ids"]) && sourceProduct["schedule.ids"].length) {
294
- base["schedule.ids"] = sourceProduct["schedule.ids"];
289
+ if (Array.isArray(sourceProduct?.['schedule.ids']) && sourceProduct['schedule.ids'].length) {
290
+ base['schedule.ids'] = sourceProduct['schedule.ids'];
295
291
  }
296
- if (booking.schedule_event_id !== void 0) {
292
+ if (booking.schedule_event_id !== undefined) {
297
293
  base.schedule_event_id = booking.schedule_event_id;
298
294
  }
299
295
  return base;
300
- }
301
- // Annotate the CommonJS export names for ESM import in node:
302
- 0 && (module.exports = {
303
- buildCacheItemFromOrderLine
304
- });
296
+ }