@pisell/pisellos 2.2.283 → 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 (284) 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.d.ts +1 -1
  11. package/dist/modules/Order/index.js +64 -86
  12. package/dist/modules/Order/types.d.ts +1 -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/BookingByStep/index.d.ts +1 -1
  31. package/dist/solution/BookingByStep/index.js +7 -59
  32. package/dist/solution/BookingByStep/utils/capacity.js +1 -11
  33. package/dist/solution/BookingByStep/utils/resources.js +1 -3
  34. package/dist/solution/BookingByStep/utils/timeslots.js +2 -43
  35. package/dist/solution/BookingTicket/index.d.ts +1 -13
  36. package/dist/solution/BookingTicket/index.js +0 -2
  37. package/dist/solution/BookingTicket/utils/scan/cloudSearch.js +6 -7
  38. package/dist/solution/BookingTicket/utils/scan/handleScan.js +25 -31
  39. package/dist/solution/BookingTicket/utils/scan/index.js +6 -10
  40. package/dist/solution/BuyTickets/index.js +9 -12
  41. package/dist/solution/Checkout/index.js +177 -252
  42. package/dist/solution/Checkout/utils/index.js +4 -16
  43. package/dist/solution/RegisterAndLogin/index.js +30 -76
  44. package/dist/solution/ScanOrder/index.js +50 -60
  45. package/dist/solution/ShopDiscount/index.js +2 -7
  46. package/dist/solution/VenueBooking/index.js +45 -55
  47. package/dist/utils/task.js +15 -18
  48. package/dist/utils/watch.js +0 -1
  49. package/lib/apis/picoding.js +2 -0
  50. package/lib/core/index.js +131 -132
  51. package/lib/effects/index.js +46 -57
  52. package/lib/index.js +82 -49
  53. package/lib/model/index.js +14 -21
  54. package/lib/model/strategy/adapter/dataVariant/adapter.js +38 -50
  55. package/lib/model/strategy/adapter/dataVariant/evaluator.js +162 -236
  56. package/lib/model/strategy/adapter/dataVariant/examples.js +229 -237
  57. package/lib/model/strategy/adapter/dataVariant/index.js +39 -34
  58. package/lib/model/strategy/adapter/dataVariant/type.js +57 -28
  59. package/lib/model/strategy/adapter/index.js +100 -64
  60. package/lib/model/strategy/adapter/itemRule/adapter.js +156 -144
  61. package/lib/model/strategy/adapter/itemRule/evaluator.js +36 -48
  62. package/lib/model/strategy/adapter/itemRule/examples.js +295 -225
  63. package/lib/model/strategy/adapter/itemRule/index.js +83 -57
  64. package/lib/model/strategy/adapter/itemRule/type.js +97 -36
  65. package/lib/model/strategy/adapter/promotion/adapter.js +91 -69
  66. package/lib/model/strategy/adapter/promotion/evaluator.js +444 -310
  67. package/lib/model/strategy/adapter/promotion/examples.js +222 -234
  68. package/lib/model/strategy/adapter/promotion/index.js +1 -0
  69. package/lib/model/strategy/adapter/promotion/type.js +243 -36
  70. package/lib/model/strategy/adapter/type.js +4 -16
  71. package/lib/model/strategy/adapter/walletPass/evaluator.js +180 -150
  72. package/lib/model/strategy/adapter/walletPass/example.js +217 -190
  73. package/lib/model/strategy/adapter/walletPass/index.js +75 -51
  74. package/lib/model/strategy/adapter/walletPass/locales.js +36 -58
  75. package/lib/model/strategy/adapter/walletPass/type.js +4 -16
  76. package/lib/model/strategy/adapter/walletPass/utils.js +588 -378
  77. package/lib/model/strategy/engine.js +270 -168
  78. package/lib/model/strategy/index.js +49 -34
  79. package/lib/model/strategy/strategy-example.js +243 -239
  80. package/lib/model/strategy/type.js +100 -40
  81. package/lib/modules/Account/index.js +39 -53
  82. package/lib/modules/Account/types.js +20 -33
  83. package/lib/modules/AccountList/index.js +116 -154
  84. package/lib/modules/AccountList/types.js +30 -31
  85. package/lib/modules/AccountList/utils.js +18 -30
  86. package/lib/modules/BaseModule.js +23 -42
  87. package/lib/modules/BookingContext/index.js +158 -136
  88. package/lib/modules/BookingContext/types.js +46 -32
  89. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +138 -146
  90. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +78 -83
  91. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +170 -150
  92. package/lib/modules/BookingContext/utils/flexible.js +38 -55
  93. package/lib/modules/BookingContext/utils/formatResourceList.js +19 -34
  94. package/lib/modules/BookingContext/utils/index.js +124 -41
  95. package/lib/modules/BookingContext/utils/noResource.js +58 -70
  96. package/lib/modules/BookingContext/utils/orderLineDisplay.js +14 -41
  97. package/lib/modules/BookingContext/utils/productExtend.js +202 -155
  98. package/lib/modules/BookingContext/utils/resourceErrors.js +53 -53
  99. package/lib/modules/BookingContext/utils/resourceSelection.js +19 -41
  100. package/lib/modules/BookingContext/utils/resources.js +209 -167
  101. package/lib/modules/BookingContext/utils/serviceTimes.js +115 -116
  102. package/lib/modules/BookingContext/utils/timeSlices.js +76 -86
  103. package/lib/modules/Cart/index.js +170 -124
  104. package/lib/modules/Cart/types.js +46 -51
  105. package/lib/modules/Cart/utils/cartAccount.js +40 -39
  106. package/lib/modules/Cart/utils/cartDate.js +56 -61
  107. package/lib/modules/Cart/utils/cartDiscount.js +28 -33
  108. package/lib/modules/Cart/utils/cartNote.js +27 -32
  109. package/lib/modules/Cart/utils/cartProduct.js +321 -251
  110. package/lib/modules/Cart/utils/cartRelationForms.js +29 -35
  111. package/lib/modules/Cart/utils/cartResource.js +70 -78
  112. package/lib/modules/Cart/utils/changePrice.js +22 -50
  113. package/lib/modules/Cart/utils/index.js +106 -48
  114. package/lib/modules/Customer/constants.js +13 -34
  115. package/lib/modules/Customer/index.js +235 -172
  116. package/lib/modules/Customer/types.js +38 -35
  117. package/lib/modules/Date/index.js +116 -115
  118. package/lib/modules/Date/types.js +16 -28
  119. package/lib/modules/Date/utils.js +174 -123
  120. package/lib/modules/Discount/index.js +122 -127
  121. package/lib/modules/Discount/types.js +9 -31
  122. package/lib/modules/Guests/index.js +30 -56
  123. package/lib/modules/Guests/types.js +23 -33
  124. package/lib/modules/Holder/index.js +209 -189
  125. package/lib/modules/Holder/types.js +4 -16
  126. package/lib/modules/Holder/utils.js +20 -49
  127. package/lib/modules/OpenData/index.js +70 -76
  128. package/lib/modules/OpenData/types.js +4 -16
  129. package/lib/modules/OpenData/utils.js +44 -78
  130. package/lib/modules/Order/index.d.ts +1 -1
  131. package/lib/modules/Order/index.js +1728 -2123
  132. package/lib/modules/Order/payment-utils.js +77 -120
  133. package/lib/modules/Order/types.d.ts +1 -1
  134. package/lib/modules/Order/types.js +87 -35
  135. package/lib/modules/Order/utils/bundleDiscountHydration.js +41 -74
  136. package/lib/modules/Order/utils/discountProductLineIdentity.js +142 -100
  137. package/lib/modules/Order/utils/manualProductDiscount.js +124 -123
  138. package/lib/modules/Order/utils/orderCollectionIdentity.js +184 -244
  139. package/lib/modules/Order/utils.js +814 -647
  140. package/lib/modules/Payment/cash.js +20 -33
  141. package/lib/modules/Payment/cashRecommendationAlgorithm.js +145 -76
  142. package/lib/modules/Payment/eftpos.js +16 -30
  143. package/lib/modules/Payment/index.js +532 -399
  144. package/lib/modules/Payment/mx51.js +1 -0
  145. package/lib/modules/Payment/types.js +230 -108
  146. package/lib/modules/Payment/utils.js +52 -51
  147. package/lib/modules/Payment/walletpass.js +485 -660
  148. package/lib/modules/Product/index.js +51 -46
  149. package/lib/modules/Product/types.js +4 -16
  150. package/lib/modules/Product/utils.js +32 -33
  151. package/lib/modules/ProductList/index.js +113 -123
  152. package/lib/modules/ProductList/types.js +9 -31
  153. package/lib/modules/Quotation/index.js +66 -100
  154. package/lib/modules/Quotation/types.js +4 -16
  155. package/lib/modules/Resource/index.js +27 -59
  156. package/lib/modules/Resource/types.js +22 -32
  157. package/lib/modules/Resource/utils.js +30 -38
  158. package/lib/modules/ResourcePlanner/index.js +60 -61
  159. package/lib/modules/ResourcePlanner/planner.js +346 -384
  160. package/lib/modules/ResourcePlanner/types.js +4 -16
  161. package/lib/modules/Rules/index.js +1218 -959
  162. package/lib/modules/Rules/types.js +17 -40
  163. package/lib/modules/SalesSummary/index.js +85 -90
  164. package/lib/modules/SalesSummary/types.js +4 -16
  165. package/lib/modules/SalesSummary/utils.js +355 -430
  166. package/lib/modules/ScanOrderLogger/index.js +59 -79
  167. package/lib/modules/ScanOrderLogger/providers/feishu.js +54 -78
  168. package/lib/modules/ScanOrderLogger/providers/grafana.js +13 -36
  169. package/lib/modules/ScanOrderLogger/types.js +4 -16
  170. package/lib/modules/Schedule/getDateIsInSchedule.js +334 -163
  171. package/lib/modules/Schedule/index.js +100 -114
  172. package/lib/modules/Schedule/type.js +4 -16
  173. package/lib/modules/Schedule/types.js +4 -16
  174. package/lib/modules/Schedule/utils.js +433 -291
  175. package/lib/modules/Step/index.js +40 -52
  176. package/lib/modules/Step/tyeps.js +4 -16
  177. package/lib/modules/Summary/index.js +66 -71
  178. package/lib/modules/Summary/types.js +4 -16
  179. package/lib/modules/Summary/utils.d.ts +1 -1
  180. package/lib/modules/Summary/utils.js +773 -418
  181. package/lib/modules/SurchargeList/index.js +46 -60
  182. package/lib/modules/SurchargeList/types.js +4 -16
  183. package/lib/modules/index.js +245 -63
  184. package/lib/plugins/app.js +4 -16
  185. package/lib/plugins/index.js +36 -25
  186. package/lib/plugins/request.js +137 -126
  187. package/lib/plugins/shopStore.js +4 -16
  188. package/lib/plugins/user.js +4 -16
  189. package/lib/plugins/window.js +171 -179
  190. package/lib/server/index.js +3027 -2655
  191. package/lib/server/modules/floor-plan/index.js +102 -123
  192. package/lib/server/modules/floor-plan/types.js +15 -30
  193. package/lib/server/modules/index.js +106 -68
  194. package/lib/server/modules/menu/index.js +146 -122
  195. package/lib/server/modules/menu/types.js +18 -31
  196. package/lib/server/modules/order/index.js +758 -956
  197. package/lib/server/modules/order/types.js +122 -33
  198. package/lib/server/modules/order/utils/filterBookings.js +219 -194
  199. package/lib/server/modules/order/utils/filterOrders.js +118 -92
  200. package/lib/server/modules/payment/index.js +59 -83
  201. package/lib/server/modules/payment/types.js +4 -16
  202. package/lib/server/modules/products/index.js +575 -459
  203. package/lib/server/modules/products/types.js +44 -34
  204. package/lib/server/modules/quotation/index.js +137 -172
  205. package/lib/server/modules/quotation/types.js +21 -31
  206. package/lib/server/modules/resource/index.js +213 -184
  207. package/lib/server/modules/resource/types.js +42 -33
  208. package/lib/server/modules/schedule/index.js +135 -123
  209. package/lib/server/modules/schedule/types.js +14 -21
  210. package/lib/server/modules/schedule/utils.js +334 -163
  211. package/lib/server/types.js +4 -16
  212. package/lib/server/utils/index.js +25 -23
  213. package/lib/server/utils/product.js +196 -139
  214. package/lib/server/utils/schedule.js +34 -41
  215. package/lib/server/utils/small-ticket.js +479 -456
  216. package/lib/server/utils/time.js +40 -49
  217. package/lib/solution/BaseSales/index.js +1209 -1412
  218. package/lib/solution/BaseSales/types.js +42 -38
  219. package/lib/solution/BaseSales/utils/cartPromotion.js +650 -502
  220. package/lib/solution/BaseSales/utils/parseSalesResponse.js +85 -105
  221. package/lib/solution/BaseSales/utils/quotationPrice.js +56 -114
  222. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +108 -145
  223. package/lib/solution/BaseSales/utils.js +158 -143
  224. package/lib/solution/BookingByStep/index.d.ts +1 -1
  225. package/lib/solution/BookingByStep/index.js +1527 -1340
  226. package/lib/solution/BookingByStep/types.js +40 -99
  227. package/lib/solution/BookingByStep/utils/capacity.js +192 -160
  228. package/lib/solution/BookingByStep/utils/products.js +42 -52
  229. package/lib/solution/BookingByStep/utils/resources.js +527 -330
  230. package/lib/solution/BookingByStep/utils/stock.js +65 -44
  231. package/lib/solution/BookingByStep/utils/timeslots.js +129 -131
  232. package/lib/solution/BookingTicket/index.d.ts +1 -13
  233. package/lib/solution/BookingTicket/index.js +594 -514
  234. package/lib/solution/BookingTicket/types.js +99 -77
  235. package/lib/solution/BookingTicket/utils/addProductDecision.js +225 -187
  236. package/lib/solution/BookingTicket/utils/addTimeAvailability.js +58 -89
  237. package/lib/solution/BookingTicket/utils/bookingStatus.js +107 -78
  238. package/lib/solution/BookingTicket/utils/cartView.js +114 -99
  239. package/lib/solution/BookingTicket/utils/exampleData.js +185 -0
  240. package/lib/solution/BookingTicket/utils/orderCustomer.js +18 -41
  241. package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +219 -86
  242. package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +168 -116
  243. package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +79 -91
  244. package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +54 -41
  245. package/lib/solution/BookingTicket/utils/scan/handleScan.js +84 -81
  246. package/lib/solution/BookingTicket/utils/scan/index.js +98 -104
  247. package/lib/solution/BookingTicket/utils/scan/scanCache.js +90 -43
  248. package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +52 -64
  249. package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +56 -58
  250. package/lib/solution/BookingTicket/utils/weighingProductSku.js +34 -48
  251. package/lib/solution/BuyTickets/index.js +67 -70
  252. package/lib/solution/BuyTickets/types.js +22 -38
  253. package/lib/solution/Checkout/index.js +1451 -1158
  254. package/lib/solution/Checkout/types.js +91 -61
  255. package/lib/solution/Checkout/utils/index.js +228 -156
  256. package/lib/solution/PlaceOrder/index.js +55 -0
  257. package/lib/solution/RegisterAndLogin/config.js +493 -460
  258. package/lib/solution/RegisterAndLogin/index.js +633 -630
  259. package/lib/solution/RegisterAndLogin/types.js +189 -76
  260. package/lib/solution/RegisterAndLogin/utils.js +183 -125
  261. package/lib/solution/Sales/index.js +328 -324
  262. package/lib/solution/Sales/types.js +27 -33
  263. package/lib/solution/ScanOrder/index.js +832 -864
  264. package/lib/solution/ScanOrder/types.js +33 -34
  265. package/lib/solution/ScanOrder/utils.js +409 -374
  266. package/lib/solution/ShopDiscount/index.js +226 -232
  267. package/lib/solution/ShopDiscount/types.js +15 -37
  268. package/lib/solution/ShopDiscount/utils.js +300 -172
  269. package/lib/solution/UnifiedBookingSales/index.js +437 -487
  270. package/lib/solution/UnifiedBookingSales/types.js +12 -31
  271. package/lib/solution/VenueBooking/index.js +811 -879
  272. package/lib/solution/VenueBooking/types.js +19 -39
  273. package/lib/solution/VenueBooking/utils/dateSummary.js +27 -56
  274. package/lib/solution/VenueBooking/utils/resource.js +31 -54
  275. package/lib/solution/VenueBooking/utils/slotMerge.js +94 -107
  276. package/lib/solution/VenueBooking/utils/timeSlot.js +132 -132
  277. package/lib/solution/VenueBooking/utils.js +130 -67
  278. package/lib/solution/index.js +124 -41
  279. package/lib/store/createStore.js +32 -29
  280. package/lib/types/index.js +4 -16
  281. package/lib/utils/payment-number.js +26 -46
  282. package/lib/utils/task.js +36 -36
  283. package/lib/utils/watch.js +81 -47
  284. package/package.json +2 -1
@@ -1,52 +1,42 @@
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/server/modules/floor-plan/index.ts
20
- var floor_plan_exports = {};
21
- __export(floor_plan_exports, {
22
- FloorPlanModule: () => FloorPlanModule
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
23
5
  });
24
- module.exports = __toCommonJS(floor_plan_exports);
25
- var import_BaseModule = require("../../../modules/BaseModule");
26
- var import_types = require("./types");
27
- var FLOOR_PLAN_SYNC_DEBOUNCE_MS = 3e3;
28
- var FloorPlanModule = class extends import_BaseModule.BaseModule {
6
+ exports.FloorPlanModule = void 0;
7
+ var _BaseModule = require("../../../modules/BaseModule");
8
+ var _types = require("./types");
9
+ const FLOOR_PLAN_SYNC_DEBOUNCE_MS = 3000;
10
+
11
+ /**
12
+ * 平面图模块:预加载列表、pubsub 同步、供 OS Server 路由读本地 store
13
+ */
14
+ class FloorPlanModule extends _BaseModule.BaseModule {
15
+ defaultName = 'floor_plan';
16
+ defaultVersion = '1.0.0';
17
+ store;
18
+ request;
19
+ logger;
20
+ floorPlanDataSource;
21
+ pendingSyncMessages = [];
22
+ syncTimer;
29
23
  constructor(name, version) {
30
24
  super(name, version);
31
- this.defaultName = "floor_plan";
32
- this.defaultVersion = "1.0.0";
33
- this.pendingSyncMessages = [];
34
25
  }
35
26
  async initialize(core, options) {
36
- var _a;
37
27
  this.core = core;
38
28
  this.store = options.store;
39
- if (Array.isArray((_a = options == null ? void 0 : options.initialState) == null ? void 0 : _a.list) && options.initialState.list.length > 0) {
29
+ if (Array.isArray(options?.initialState?.list) && options.initialState.list.length > 0) {
40
30
  this.store.list = options.initialState.list;
41
31
  this.syncMaps();
42
- this.core.effects.emit(import_types.FloorPlanHooks.onFloorPlansChanged, this.store.list);
32
+ this.core.effects.emit(_types.FloorPlanHooks.onFloorPlansChanged, this.store.list);
43
33
  } else {
44
34
  this.store.list = [];
45
- this.store.map = /* @__PURE__ */ new Map();
46
- this.store.codeMap = /* @__PURE__ */ new Map();
35
+ this.store.map = new Map();
36
+ this.store.codeMap = new Map();
47
37
  }
48
- this.request = core.getPlugin("request");
49
- const appPlugin = core.getPlugin("app");
38
+ this.request = core.getPlugin('request');
39
+ const appPlugin = core.getPlugin('app');
50
40
  if (appPlugin) {
51
41
  const app = appPlugin.getApp();
52
42
  this.logger = app.logger;
@@ -55,47 +45,46 @@ var FloorPlanModule = class extends import_BaseModule.BaseModule {
55
45
  this.setupFloorPlanSync();
56
46
  }
57
47
  logInfo(title, metadata) {
58
- var _a, _b;
59
48
  try {
60
- (_b = (_a = this.logger) == null ? void 0 : _a.addLog) == null ? void 0 : _b.call(_a, {
61
- type: "info",
49
+ this.logger?.addLog?.({
50
+ type: 'info',
62
51
  title: `[FloorPlanModule] ${title}`,
63
52
  metadata: metadata || {}
64
53
  });
65
54
  } catch {
55
+ // ignore
66
56
  }
67
57
  }
68
58
  logWarning(title, metadata) {
69
- var _a, _b;
70
59
  try {
71
- (_b = (_a = this.logger) == null ? void 0 : _a.addLog) == null ? void 0 : _b.call(_a, {
72
- type: "warning",
60
+ this.logger?.addLog?.({
61
+ type: 'warning',
73
62
  title: `[FloorPlanModule] ${title}`,
74
63
  metadata: metadata || {}
75
64
  });
76
65
  } catch {
66
+ // ignore
77
67
  }
78
68
  }
79
69
  logError(title, metadata) {
80
- var _a, _b;
81
70
  try {
82
- (_b = (_a = this.logger) == null ? void 0 : _a.addLog) == null ? void 0 : _b.call(_a, {
83
- type: "error",
71
+ this.logger?.addLog?.({
72
+ type: 'error',
84
73
  title: `[FloorPlanModule] ${title}`,
85
74
  metadata: metadata || {}
86
75
  });
87
76
  } catch {
77
+ // ignore
88
78
  }
89
79
  }
90
80
  idKey(id) {
91
81
  return String(id);
92
82
  }
93
83
  syncMaps() {
94
- this.store.map = /* @__PURE__ */ new Map();
95
- this.store.codeMap = /* @__PURE__ */ new Map();
84
+ this.store.map = new Map();
85
+ this.store.codeMap = new Map();
96
86
  for (const item of this.store.list) {
97
- if ((item == null ? void 0 : item.id) == null)
98
- continue;
87
+ if (item?.id == null) continue;
99
88
  const key = this.idKey(item.id);
100
89
  this.store.map.set(key, item);
101
90
  if (item.code) {
@@ -103,12 +92,12 @@ var FloorPlanModule = class extends import_BaseModule.BaseModule {
103
92
  }
104
93
  }
105
94
  }
95
+
106
96
  /** 与接口约定一致:sort 升序,id 降序 */
107
97
  getSortedList() {
108
98
  return [...this.store.list].sort((a, b) => {
109
99
  const sortDiff = Number(a.sort ?? 0) - Number(b.sort ?? 0);
110
- if (sortDiff !== 0)
111
- return sortDiff;
100
+ if (sortDiff !== 0) return sortDiff;
112
101
  return Number(b.id) - Number(a.id);
113
102
  });
114
103
  }
@@ -119,41 +108,40 @@ var FloorPlanModule = class extends import_BaseModule.BaseModule {
119
108
  return this.store.codeMap.get(String(code));
120
109
  }
121
110
  replaceStore(list) {
122
- this.store.list = list.map((i) => ({ ...i }));
111
+ this.store.list = list.map(i => ({
112
+ ...i
113
+ }));
123
114
  this.syncMaps();
124
115
  }
125
116
  mergeItems(items) {
126
- if (items.length === 0)
127
- return;
117
+ if (items.length === 0) return;
128
118
  const byId = new Map(this.store.map);
129
119
  for (const item of items) {
130
- if ((item == null ? void 0 : item.id) == null)
131
- continue;
132
- byId.set(this.idKey(item.id), { ...item });
120
+ if (item?.id == null) continue;
121
+ byId.set(this.idKey(item.id), {
122
+ ...item
123
+ });
133
124
  }
134
125
  this.store.list = Array.from(byId.values());
135
126
  this.syncMaps();
136
127
  }
137
128
  removeByIds(ids) {
138
- if (ids.length === 0)
139
- return;
140
- const set = new Set(ids.map((id) => this.idKey(id)));
141
- this.store.list = this.store.list.filter((p) => !set.has(this.idKey(p.id)));
129
+ if (ids.length === 0) return;
130
+ const set = new Set(ids.map(id => this.idKey(id)));
131
+ this.store.list = this.store.list.filter(p => !set.has(this.idKey(p.id)));
142
132
  this.syncMaps();
143
133
  }
144
134
  async loadListFromServer() {
145
135
  try {
146
- const res = await this.request.get(
147
- `/schedule/floor-plan`,
148
- {},
149
- { isShopApi: true }
150
- );
136
+ const res = await this.request.get(`/schedule/floor-plan`, {}, {
137
+ isShopApi: true
138
+ });
151
139
  const body = res;
152
- const raw = (body == null ? void 0 : body.data) !== void 0 ? body.data : body;
140
+ const raw = body?.data !== undefined ? body.data : body;
153
141
  const list = Array.isArray(raw) ? raw : [];
154
142
  return list;
155
143
  } catch (e) {
156
- this.logWarning("loadListFromServer 失败", {
144
+ this.logWarning('loadListFromServer 失败', {
157
145
  error: e instanceof Error ? e.message : String(e)
158
146
  });
159
147
  return [];
@@ -161,14 +149,12 @@ var FloorPlanModule = class extends import_BaseModule.BaseModule {
161
149
  }
162
150
  async fetchByIdFromServer(id) {
163
151
  try {
164
- const res = await this.request.get(
165
- `/schedule/floor-plan/${id}`,
166
- {},
167
- { isShopApi: true }
168
- );
152
+ const res = await this.request.get(`/schedule/floor-plan/${id}`, {}, {
153
+ isShopApi: true
154
+ });
169
155
  const body = res;
170
- const data = (body == null ? void 0 : body.data) !== void 0 ? body.data : body;
171
- return data && typeof data === "object" ? data : null;
156
+ const data = body?.data !== undefined ? body.data : body;
157
+ return data && typeof data === 'object' ? data : null;
172
158
  } catch {
173
159
  return null;
174
160
  }
@@ -176,81 +162,79 @@ var FloorPlanModule = class extends import_BaseModule.BaseModule {
176
162
  async fetchByCodeFromServer(code) {
177
163
  try {
178
164
  const enc = encodeURIComponent(code);
179
- const res = await this.request.get(
180
- `/schedule/floor-plan/code/${enc}`,
181
- {},
182
- { isShopApi: true }
183
- );
165
+ const res = await this.request.get(`/schedule/floor-plan/code/${enc}`, {}, {
166
+ isShopApi: true
167
+ });
184
168
  const body = res;
185
- const data = (body == null ? void 0 : body.data) !== void 0 ? body.data : body;
186
- return data && typeof data === "object" ? data : null;
169
+ const data = body?.data !== undefined ? body.data : body;
170
+ return data && typeof data === 'object' ? data : null;
187
171
  } catch {
188
172
  return null;
189
173
  }
190
174
  }
191
175
  async preload() {
192
- this.logInfo("开始预加载平面图列表");
176
+ this.logInfo('开始预加载平面图列表');
193
177
  const list = await this.loadListFromServer();
194
178
  if (list.length > 0) {
195
179
  this.replaceStore(list);
196
- this.core.effects.emit(import_types.FloorPlanHooks.onFloorPlansChanged, this.getSortedList());
197
- this.logInfo("预加载完成", { count: list.length });
180
+ this.core.effects.emit(_types.FloorPlanHooks.onFloorPlansChanged, this.getSortedList());
181
+ this.logInfo('预加载完成', {
182
+ count: list.length
183
+ });
198
184
  } else {
199
- this.logWarning("预加载完成但列表为空");
185
+ this.logWarning('预加载完成但列表为空');
200
186
  }
201
187
  }
202
188
  initFloorPlanDataSource() {
203
- var _a, _b;
204
- const Ctor = (_b = (_a = this.core.serverOptions) == null ? void 0 : _a.All_DATA_SOURCES) == null ? void 0 : _b.FloorPlanDataSource;
189
+ const Ctor = this.core.serverOptions?.All_DATA_SOURCES?.FloorPlanDataSource;
205
190
  if (!Ctor) {
206
- this.logWarning("FloorPlanDataSource 不可用,跳过 pubsub 同步");
191
+ this.logWarning('FloorPlanDataSource 不可用,跳过 pubsub 同步');
207
192
  return;
208
193
  }
209
194
  this.floorPlanDataSource = new Ctor();
210
- this.logInfo("FloorPlanDataSource 实例已创建");
195
+ this.logInfo('FloorPlanDataSource 实例已创建');
211
196
  }
212
197
  setupFloorPlanSync() {
213
- if (!this.floorPlanDataSource)
214
- return;
198
+ if (!this.floorPlanDataSource) return;
215
199
  const flush = () => {
216
- if (this.syncTimer)
217
- clearTimeout(this.syncTimer);
200
+ if (this.syncTimer) clearTimeout(this.syncTimer);
218
201
  this.syncTimer = setTimeout(() => {
219
202
  this.processFloorPlanSyncMessages();
220
203
  }, FLOOR_PLAN_SYNC_DEBOUNCE_MS);
221
204
  };
222
205
  this.floorPlanDataSource.run({
223
206
  pubsub: {
224
- callback: (res) => {
225
- const data = (res == null ? void 0 : res.data) || res;
226
- if (!data || data.module !== "floor_plan")
227
- return;
228
- this.pendingSyncMessages.push({ ...data });
207
+ callback: res => {
208
+ const data = res?.data || res;
209
+ if (!data || data.module !== 'floor_plan') return;
210
+ this.pendingSyncMessages.push({
211
+ ...data
212
+ });
229
213
  flush();
230
214
  }
231
215
  }
232
- }).catch((err) => {
233
- this.logError("setupFloorPlanSync: DataSource run 出错", {
216
+ }).catch(err => {
217
+ this.logError('setupFloorPlanSync: DataSource run 出错', {
234
218
  error: err instanceof Error ? err.message : String(err)
235
219
  });
236
220
  });
237
- this.logInfo("floor_plan pubsub 订阅已建立");
221
+ this.logInfo('floor_plan pubsub 订阅已建立');
238
222
  }
239
223
  async processFloorPlanSyncMessages() {
240
- var _a, _b;
241
224
  const messages = [...this.pendingSyncMessages];
242
225
  this.pendingSyncMessages = [];
243
- if (messages.length === 0)
244
- return;
245
- this.logInfo("processFloorPlanSyncMessages 开始", { count: messages.length });
226
+ if (messages.length === 0) return;
227
+ this.logInfo('processFloorPlanSyncMessages 开始', {
228
+ count: messages.length
229
+ });
246
230
  let changed = false;
247
231
  const deleteIds = [];
248
232
  const bodyItems = [];
249
233
  let needFullList = false;
250
- const partialIds = /* @__PURE__ */ new Set();
234
+ const partialIds = new Set();
251
235
  for (const msg of messages) {
252
- if (msg.operation === "delete" || msg.action === "delete") {
253
- if ((_a = msg.ids) == null ? void 0 : _a.length) {
236
+ if (msg.operation === 'delete' || msg.action === 'delete') {
237
+ if (msg.ids?.length) {
254
238
  deleteIds.push(...msg.ids);
255
239
  } else if (msg.id != null) {
256
240
  deleteIds.push(msg.id);
@@ -258,7 +242,7 @@ var FloorPlanModule = class extends import_BaseModule.BaseModule {
258
242
  continue;
259
243
  }
260
244
  const body = msg.body;
261
- const hasBody = body && typeof body === "object" && Object.keys(body).length > 0 && body.id != null;
245
+ const hasBody = body && typeof body === 'object' && Object.keys(body).length > 0 && body.id != null;
262
246
  if (hasBody) {
263
247
  bodyItems.push(body);
264
248
  continue;
@@ -267,7 +251,7 @@ var FloorPlanModule = class extends import_BaseModule.BaseModule {
267
251
  needFullList = true;
268
252
  continue;
269
253
  }
270
- if (((_b = msg.ids) == null ? void 0 : _b.length) === 1) {
254
+ if (msg.ids?.length === 1) {
271
255
  partialIds.add(msg.ids[0]);
272
256
  } else if (msg.id != null) {
273
257
  partialIds.add(msg.id);
@@ -290,8 +274,7 @@ var FloorPlanModule = class extends import_BaseModule.BaseModule {
290
274
  const fetched = [];
291
275
  for (const id of partialIds) {
292
276
  const one = await this.fetchByIdFromServer(id);
293
- if (one)
294
- fetched.push(one);
277
+ if (one) fetched.push(one);
295
278
  }
296
279
  if (fetched.length > 0) {
297
280
  this.mergeItems(fetched);
@@ -299,8 +282,8 @@ var FloorPlanModule = class extends import_BaseModule.BaseModule {
299
282
  }
300
283
  }
301
284
  if (changed) {
302
- this.core.effects.emit(import_types.FloorPlanHooks.onFloorPlansChanged, this.getSortedList());
303
- this.core.effects.emit(import_types.FloorPlanHooks.onFloorPlanSyncCompleted, null);
285
+ this.core.effects.emit(_types.FloorPlanHooks.onFloorPlansChanged, this.getSortedList());
286
+ this.core.effects.emit(_types.FloorPlanHooks.onFloorPlanSyncCompleted, null);
304
287
  }
305
288
  }
306
289
  async clear() {
@@ -309,19 +292,15 @@ var FloorPlanModule = class extends import_BaseModule.BaseModule {
309
292
  this.store.codeMap.clear();
310
293
  }
311
294
  destroy() {
312
- var _a;
313
295
  if (this.syncTimer) {
314
296
  clearTimeout(this.syncTimer);
315
- this.syncTimer = void 0;
297
+ this.syncTimer = undefined;
316
298
  }
317
299
  this.pendingSyncMessages = [];
318
- if ((_a = this.floorPlanDataSource) == null ? void 0 : _a.destroy) {
300
+ if (this.floorPlanDataSource?.destroy) {
319
301
  this.floorPlanDataSource.destroy();
320
302
  }
321
303
  super.destroy();
322
304
  }
323
- };
324
- // Annotate the CommonJS export names for ESM import in node:
325
- 0 && (module.exports = {
326
- FloorPlanModule
327
- });
305
+ }
306
+ exports.FloorPlanModule = FloorPlanModule;
@@ -1,34 +1,19 @@
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/server/modules/floor-plan/types.ts
20
- var types_exports = {};
21
- __export(types_exports, {
22
- FloorPlanHooks: () => FloorPlanHooks
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
23
5
  });
24
- module.exports = __toCommonJS(types_exports);
25
- var FloorPlanHooks = {
6
+ exports.FloorPlanHooks = void 0;
7
+ /**
8
+ * 平面图(floor-plan)Server 模块类型
9
+ * 与 GET /shop/schedule/floor-plan 系列接口数据结构对齐
10
+ */
11
+
12
+ /** pubsub / Ably 推送消息(与《平面图编辑器API文档》Socket 一节一致) */
13
+
14
+ const FloorPlanHooks = exports.FloorPlanHooks = {
26
15
  /** 本地列表变更(预加载、合并、删除后) */
27
- onFloorPlansChanged: "server_floor_plan:onFloorPlansChanged",
16
+ onFloorPlansChanged: 'server_floor_plan:onFloorPlansChanged',
28
17
  /** pubsub 同步处理完成,供 Server 向订阅者推送最新查询结果 */
29
- onFloorPlanSyncCompleted: "server_floor_plan:onFloorPlanSyncCompleted"
30
- };
31
- // Annotate the CommonJS export names for ESM import in node:
32
- 0 && (module.exports = {
33
- FloorPlanHooks
34
- });
18
+ onFloorPlanSyncCompleted: 'server_floor_plan:onFloorPlanSyncCompleted'
19
+ };
@@ -1,70 +1,108 @@
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/server/modules/index.ts
20
- var modules_exports = {};
21
- __export(modules_exports, {
22
- FloorPlanHooks: () => import_types5.FloorPlanHooks,
23
- FloorPlanModule: () => import_floor_plan.FloorPlanModule,
24
- MenuHooks: () => import_types2.MenuHooks,
25
- MenuModule: () => import_menu.MenuModule,
26
- OrderHooks: () => import_types4.OrderHooks,
27
- OrderModule: () => import_order.OrderModule,
28
- PaymentServerModule: () => import_payment.PaymentServerModule,
29
- ProductsHooks: () => import_types.ProductsHooks,
30
- ProductsModule: () => import_products.ProductsModule,
31
- QuotationHooks: () => import_types3.QuotationHooks,
32
- QuotationModule: () => import_quotation.QuotationModule,
33
- ResourceHooks: () => import_resource2.ResourceHooks,
34
- ResourceModule: () => import_resource.ResourceModule,
35
- ScheduleModuleEx: () => import_schedule.ScheduleModuleEx,
36
- resourceModule: () => import_resource.resourceModule
37
- });
38
- module.exports = __toCommonJS(modules_exports);
39
- var import_products = require("./products");
40
- var import_types = require("./products/types");
41
- var import_menu = require("./menu");
42
- var import_types2 = require("./menu/types");
43
- var import_quotation = require("./quotation");
44
- var import_types3 = require("./quotation/types");
45
- var import_schedule = require("./schedule");
46
- var import_order = require("./order");
47
- var import_types4 = require("./order/types");
48
- var import_payment = require("./payment");
49
- var import_floor_plan = require("./floor-plan");
50
- var import_types5 = require("./floor-plan/types");
51
- var import_resource = require("./resource");
52
- var import_resource2 = require("./resource");
53
- // Annotate the CommonJS export names for ESM import in node:
54
- 0 && (module.exports = {
55
- FloorPlanHooks,
56
- FloorPlanModule,
57
- MenuHooks,
58
- MenuModule,
59
- OrderHooks,
60
- OrderModule,
61
- PaymentServerModule,
62
- ProductsHooks,
63
- ProductsModule,
64
- QuotationHooks,
65
- QuotationModule,
66
- ResourceHooks,
67
- ResourceModule,
68
- ScheduleModuleEx,
69
- resourceModule
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "FloorPlanHooks", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _types5.FloorPlanHooks;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "FloorPlanModule", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _floorPlan.FloorPlanModule;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "MenuHooks", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _types2.MenuHooks;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "MenuModule", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _menu.MenuModule;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "OrderHooks", {
31
+ enumerable: true,
32
+ get: function () {
33
+ return _types4.OrderHooks;
34
+ }
35
+ });
36
+ Object.defineProperty(exports, "OrderModule", {
37
+ enumerable: true,
38
+ get: function () {
39
+ return _order.OrderModule;
40
+ }
41
+ });
42
+ Object.defineProperty(exports, "PaymentServerModule", {
43
+ enumerable: true,
44
+ get: function () {
45
+ return _payment.PaymentServerModule;
46
+ }
47
+ });
48
+ Object.defineProperty(exports, "ProductsHooks", {
49
+ enumerable: true,
50
+ get: function () {
51
+ return _types.ProductsHooks;
52
+ }
53
+ });
54
+ Object.defineProperty(exports, "ProductsModule", {
55
+ enumerable: true,
56
+ get: function () {
57
+ return _products.ProductsModule;
58
+ }
59
+ });
60
+ Object.defineProperty(exports, "QuotationHooks", {
61
+ enumerable: true,
62
+ get: function () {
63
+ return _types3.QuotationHooks;
64
+ }
65
+ });
66
+ Object.defineProperty(exports, "QuotationModule", {
67
+ enumerable: true,
68
+ get: function () {
69
+ return _quotation.QuotationModule;
70
+ }
71
+ });
72
+ Object.defineProperty(exports, "ResourceHooks", {
73
+ enumerable: true,
74
+ get: function () {
75
+ return _resource.ResourceHooks;
76
+ }
77
+ });
78
+ Object.defineProperty(exports, "ResourceModule", {
79
+ enumerable: true,
80
+ get: function () {
81
+ return _resource.ResourceModule;
82
+ }
83
+ });
84
+ Object.defineProperty(exports, "ScheduleModuleEx", {
85
+ enumerable: true,
86
+ get: function () {
87
+ return _schedule.ScheduleModuleEx;
88
+ }
89
+ });
90
+ Object.defineProperty(exports, "resourceModule", {
91
+ enumerable: true,
92
+ get: function () {
93
+ return _resource.resourceModule;
94
+ }
70
95
  });
96
+ var _products = require("./products");
97
+ var _types = require("./products/types");
98
+ var _menu = require("./menu");
99
+ var _types2 = require("./menu/types");
100
+ var _quotation = require("./quotation");
101
+ var _types3 = require("./quotation/types");
102
+ var _schedule = require("./schedule");
103
+ var _order = require("./order");
104
+ var _types4 = require("./order/types");
105
+ var _payment = require("./payment");
106
+ var _floorPlan = require("./floor-plan");
107
+ var _types5 = require("./floor-plan/types");
108
+ var _resource = require("./resource");