@pisell/pisellos 2.2.282 → 2.2.284

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