@pisell/pisellos 2.3.73 → 2.3.75

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (296) hide show
  1. package/dist/core/index.d.ts +7 -0
  2. package/dist/core/index.js +111 -71
  3. package/dist/model/strategy/adapter/promotion/index.js +9 -0
  4. package/dist/model/strategy/adapter/walletPass/example.js +3 -26
  5. package/dist/model/strategy/strategy-example.js +5 -19
  6. package/dist/modules/Cart/index.js +0 -3
  7. package/dist/modules/Cart/utils/cartProduct.js +0 -1
  8. package/dist/modules/Date/index.js +1 -5
  9. package/dist/modules/Discount/index.js +2 -4
  10. package/dist/modules/OpenData/index.js +0 -2
  11. package/dist/modules/Order/index.d.ts +1 -1
  12. package/dist/modules/Order/index.js +36 -64
  13. package/dist/modules/Payment/index.js +97 -162
  14. package/dist/modules/Quotation/index.d.ts +6 -0
  15. package/dist/modules/Quotation/index.js +75 -19
  16. package/dist/modules/Rules/index.js +1 -4
  17. package/dist/modules/Schedule/index.js +0 -1
  18. package/dist/modules/Schedule/utils.js +0 -1
  19. package/dist/modules/Step/index.js +0 -1
  20. package/dist/plugins/request.d.ts +1 -0
  21. package/dist/plugins/request.js +1 -4
  22. package/dist/plugins/window.js +2 -6
  23. package/dist/server/index.d.ts +8 -2
  24. package/dist/server/index.js +303 -269
  25. package/dist/server/modules/floor-plan/index.d.ts +4 -0
  26. package/dist/server/modules/floor-plan/index.js +240 -98
  27. package/dist/server/modules/menu/index.js +75 -59
  28. package/dist/server/modules/order/index.d.ts +17 -7
  29. package/dist/server/modules/order/index.js +421 -211
  30. package/dist/server/modules/products/index.d.ts +8 -2
  31. package/dist/server/modules/products/index.js +191 -117
  32. package/dist/server/modules/quotation/index.js +29 -38
  33. package/dist/server/modules/resource/index.js +24 -17
  34. package/dist/server/modules/schedule/index.js +27 -35
  35. package/dist/server/utils/product.js +0 -1
  36. package/dist/solution/BaseSales/index.js +38 -41
  37. package/dist/solution/BookingByStep/index.d.ts +1 -1
  38. package/dist/solution/BookingByStep/index.js +7 -59
  39. package/dist/solution/BookingByStep/utils/capacity.js +1 -11
  40. package/dist/solution/BookingByStep/utils/resources.js +1 -3
  41. package/dist/solution/BookingByStep/utils/timeslots.js +2 -43
  42. package/dist/solution/BookingTicket/index.js +0 -2
  43. package/dist/solution/BookingTicket/utils/scan/cloudSearch.js +6 -7
  44. package/dist/solution/BookingTicket/utils/scan/handleScan.js +25 -31
  45. package/dist/solution/BookingTicket/utils/scan/index.js +6 -10
  46. package/dist/solution/BuyTickets/index.js +9 -12
  47. package/dist/solution/Checkout/index.js +177 -252
  48. package/dist/solution/Checkout/utils/index.js +4 -16
  49. package/dist/solution/RegisterAndLogin/index.js +30 -76
  50. package/dist/solution/ScanOrder/index.js +50 -60
  51. package/dist/solution/ShopDiscount/index.js +2 -7
  52. package/dist/solution/VenueBooking/index.js +45 -55
  53. package/dist/utils/task.js +15 -18
  54. package/dist/utils/watch.js +0 -1
  55. package/lib/apis/picoding.js +2 -0
  56. package/lib/core/index.d.ts +7 -0
  57. package/lib/core/index.js +149 -131
  58. package/lib/effects/index.js +46 -57
  59. package/lib/index.js +82 -49
  60. package/lib/model/index.js +14 -21
  61. package/lib/model/strategy/adapter/dataVariant/adapter.js +38 -50
  62. package/lib/model/strategy/adapter/dataVariant/evaluator.js +162 -236
  63. package/lib/model/strategy/adapter/dataVariant/examples.js +229 -237
  64. package/lib/model/strategy/adapter/dataVariant/index.js +39 -34
  65. package/lib/model/strategy/adapter/dataVariant/type.js +57 -28
  66. package/lib/model/strategy/adapter/index.js +100 -64
  67. package/lib/model/strategy/adapter/itemRule/adapter.js +156 -144
  68. package/lib/model/strategy/adapter/itemRule/evaluator.js +36 -48
  69. package/lib/model/strategy/adapter/itemRule/examples.js +295 -225
  70. package/lib/model/strategy/adapter/itemRule/index.js +83 -57
  71. package/lib/model/strategy/adapter/itemRule/type.js +97 -36
  72. package/lib/model/strategy/adapter/promotion/adapter.js +91 -69
  73. package/lib/model/strategy/adapter/promotion/evaluator.js +444 -310
  74. package/lib/model/strategy/adapter/promotion/examples.js +222 -234
  75. package/lib/model/strategy/adapter/promotion/index.js +1 -0
  76. package/lib/model/strategy/adapter/promotion/type.js +243 -36
  77. package/lib/model/strategy/adapter/type.js +4 -16
  78. package/lib/model/strategy/adapter/walletPass/evaluator.js +180 -150
  79. package/lib/model/strategy/adapter/walletPass/example.js +217 -190
  80. package/lib/model/strategy/adapter/walletPass/index.js +75 -51
  81. package/lib/model/strategy/adapter/walletPass/locales.js +36 -58
  82. package/lib/model/strategy/adapter/walletPass/type.js +4 -16
  83. package/lib/model/strategy/adapter/walletPass/utils.js +588 -378
  84. package/lib/model/strategy/engine.js +270 -168
  85. package/lib/model/strategy/index.js +49 -34
  86. package/lib/model/strategy/strategy-example.js +243 -239
  87. package/lib/model/strategy/type.js +100 -40
  88. package/lib/modules/Account/index.js +39 -53
  89. package/lib/modules/Account/types.js +20 -33
  90. package/lib/modules/AccountList/index.js +116 -154
  91. package/lib/modules/AccountList/types.js +30 -31
  92. package/lib/modules/AccountList/utils.js +18 -30
  93. package/lib/modules/BaseModule.js +23 -42
  94. package/lib/modules/BookingContext/index.js +158 -136
  95. package/lib/modules/BookingContext/types.js +46 -32
  96. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +138 -146
  97. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +78 -83
  98. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +170 -150
  99. package/lib/modules/BookingContext/utils/flexible.js +38 -55
  100. package/lib/modules/BookingContext/utils/formatResourceList.js +19 -34
  101. package/lib/modules/BookingContext/utils/index.js +124 -41
  102. package/lib/modules/BookingContext/utils/noResource.js +58 -70
  103. package/lib/modules/BookingContext/utils/orderLineDisplay.js +14 -41
  104. package/lib/modules/BookingContext/utils/productExtend.js +202 -155
  105. package/lib/modules/BookingContext/utils/resourceErrors.js +53 -53
  106. package/lib/modules/BookingContext/utils/resourceSelection.js +19 -41
  107. package/lib/modules/BookingContext/utils/resources.js +209 -167
  108. package/lib/modules/BookingContext/utils/serviceTimes.js +115 -116
  109. package/lib/modules/BookingContext/utils/timeSlices.js +76 -86
  110. package/lib/modules/Cart/index.js +170 -124
  111. package/lib/modules/Cart/types.js +46 -51
  112. package/lib/modules/Cart/utils/cartAccount.js +40 -39
  113. package/lib/modules/Cart/utils/cartDate.js +56 -61
  114. package/lib/modules/Cart/utils/cartDiscount.js +28 -33
  115. package/lib/modules/Cart/utils/cartNote.js +27 -32
  116. package/lib/modules/Cart/utils/cartProduct.js +321 -251
  117. package/lib/modules/Cart/utils/cartRelationForms.js +29 -35
  118. package/lib/modules/Cart/utils/cartResource.js +70 -78
  119. package/lib/modules/Cart/utils/changePrice.js +22 -50
  120. package/lib/modules/Cart/utils/index.js +106 -48
  121. package/lib/modules/Customer/constants.js +13 -34
  122. package/lib/modules/Customer/index.js +235 -172
  123. package/lib/modules/Customer/types.js +38 -35
  124. package/lib/modules/Date/index.js +116 -115
  125. package/lib/modules/Date/types.js +16 -28
  126. package/lib/modules/Date/utils.js +174 -123
  127. package/lib/modules/Discount/index.js +122 -127
  128. package/lib/modules/Discount/types.js +9 -31
  129. package/lib/modules/Guests/index.js +30 -56
  130. package/lib/modules/Guests/types.js +23 -33
  131. package/lib/modules/Holder/index.js +209 -189
  132. package/lib/modules/Holder/types.js +4 -16
  133. package/lib/modules/Holder/utils.js +20 -49
  134. package/lib/modules/OpenData/index.js +70 -76
  135. package/lib/modules/OpenData/types.js +4 -16
  136. package/lib/modules/OpenData/utils.js +44 -78
  137. package/lib/modules/Order/index.d.ts +1 -1
  138. package/lib/modules/Order/index.js +1713 -2118
  139. package/lib/modules/Order/payment-utils.js +77 -120
  140. package/lib/modules/Order/types.js +88 -35
  141. package/lib/modules/Order/utils/bundleDiscountHydration.js +41 -74
  142. package/lib/modules/Order/utils/discountProductLineIdentity.js +142 -100
  143. package/lib/modules/Order/utils/manualProductDiscount.js +124 -123
  144. package/lib/modules/Order/utils/orderCollectionIdentity.js +184 -244
  145. package/lib/modules/Order/utils.js +814 -647
  146. package/lib/modules/Payment/cash.js +20 -33
  147. package/lib/modules/Payment/cashRecommendationAlgorithm.js +145 -76
  148. package/lib/modules/Payment/eftpos.js +16 -30
  149. package/lib/modules/Payment/index.js +532 -399
  150. package/lib/modules/Payment/mx51.js +1 -0
  151. package/lib/modules/Payment/types.js +230 -108
  152. package/lib/modules/Payment/utils.js +52 -51
  153. package/lib/modules/Payment/walletpass.js +485 -660
  154. package/lib/modules/Product/index.js +51 -46
  155. package/lib/modules/Product/types.js +4 -16
  156. package/lib/modules/Product/utils.js +32 -33
  157. package/lib/modules/ProductList/index.js +113 -123
  158. package/lib/modules/ProductList/types.js +9 -31
  159. package/lib/modules/Quotation/index.d.ts +6 -0
  160. package/lib/modules/Quotation/index.js +110 -103
  161. package/lib/modules/Quotation/types.js +4 -16
  162. package/lib/modules/Resource/index.js +27 -59
  163. package/lib/modules/Resource/types.js +22 -32
  164. package/lib/modules/Resource/utils.js +30 -38
  165. package/lib/modules/ResourcePlanner/index.js +25 -23
  166. package/lib/modules/ResourcePlanner/localClock.js +54 -119
  167. package/lib/modules/ResourcePlanner/planner.js +589 -770
  168. package/lib/modules/ResourcePlanner/types.js +10 -29
  169. package/lib/modules/Rules/index.js +1218 -959
  170. package/lib/modules/Rules/types.js +17 -40
  171. package/lib/modules/SalesSummary/index.js +85 -90
  172. package/lib/modules/SalesSummary/types.js +4 -16
  173. package/lib/modules/SalesSummary/utils.js +355 -430
  174. package/lib/modules/ScanOrderLogger/index.js +59 -79
  175. package/lib/modules/ScanOrderLogger/providers/feishu.js +54 -78
  176. package/lib/modules/ScanOrderLogger/providers/grafana.js +13 -36
  177. package/lib/modules/ScanOrderLogger/types.js +4 -16
  178. package/lib/modules/Schedule/getDateIsInSchedule.js +334 -163
  179. package/lib/modules/Schedule/index.js +100 -114
  180. package/lib/modules/Schedule/type.js +4 -16
  181. package/lib/modules/Schedule/types.js +4 -16
  182. package/lib/modules/Schedule/utils.js +433 -291
  183. package/lib/modules/Step/index.js +40 -52
  184. package/lib/modules/Step/tyeps.js +4 -16
  185. package/lib/modules/Summary/index.js +66 -71
  186. package/lib/modules/Summary/types.js +4 -16
  187. package/lib/modules/Summary/utils.js +773 -418
  188. package/lib/modules/SurchargeList/index.js +46 -60
  189. package/lib/modules/SurchargeList/types.js +4 -16
  190. package/lib/modules/index.js +245 -63
  191. package/lib/plugins/app.js +4 -16
  192. package/lib/plugins/index.js +36 -25
  193. package/lib/plugins/request.d.ts +1 -0
  194. package/lib/plugins/request.js +137 -126
  195. package/lib/plugins/shopStore.js +4 -16
  196. package/lib/plugins/user.js +4 -16
  197. package/lib/plugins/window.js +171 -179
  198. package/lib/server/index.d.ts +8 -2
  199. package/lib/server/index.js +3083 -2663
  200. package/lib/server/modules/floor-plan/index.d.ts +4 -0
  201. package/lib/server/modules/floor-plan/index.js +159 -127
  202. package/lib/server/modules/floor-plan/types.js +15 -30
  203. package/lib/server/modules/index.js +106 -68
  204. package/lib/server/modules/menu/index.js +170 -124
  205. package/lib/server/modules/menu/types.js +18 -31
  206. package/lib/server/modules/order/index.d.ts +17 -7
  207. package/lib/server/modules/order/index.js +916 -977
  208. package/lib/server/modules/order/types.js +122 -33
  209. package/lib/server/modules/order/utils/filterBookings.js +219 -194
  210. package/lib/server/modules/order/utils/filterOrders.js +118 -92
  211. package/lib/server/modules/payment/index.js +59 -83
  212. package/lib/server/modules/payment/types.js +4 -16
  213. package/lib/server/modules/products/index.d.ts +8 -2
  214. package/lib/server/modules/products/index.js +656 -471
  215. package/lib/server/modules/products/types.js +44 -34
  216. package/lib/server/modules/quotation/index.js +137 -172
  217. package/lib/server/modules/quotation/types.js +21 -31
  218. package/lib/server/modules/resource/index.js +225 -186
  219. package/lib/server/modules/resource/types.js +42 -33
  220. package/lib/server/modules/schedule/index.js +135 -123
  221. package/lib/server/modules/schedule/types.js +14 -21
  222. package/lib/server/modules/schedule/utils.js +334 -163
  223. package/lib/server/types.js +4 -16
  224. package/lib/server/utils/index.js +25 -23
  225. package/lib/server/utils/product.js +196 -139
  226. package/lib/server/utils/schedule.js +34 -41
  227. package/lib/server/utils/small-ticket.js +479 -456
  228. package/lib/server/utils/time.js +40 -49
  229. package/lib/solution/BaseSales/index.js +1186 -1410
  230. package/lib/solution/BaseSales/types.js +42 -38
  231. package/lib/solution/BaseSales/utils/cartPromotion.js +642 -498
  232. package/lib/solution/BaseSales/utils/parseSalesResponse.js +85 -105
  233. package/lib/solution/BaseSales/utils/quotationPrice.js +56 -114
  234. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +108 -145
  235. package/lib/solution/BaseSales/utils.js +158 -143
  236. package/lib/solution/BookingByStep/index.d.ts +1 -1
  237. package/lib/solution/BookingByStep/index.js +1527 -1340
  238. package/lib/solution/BookingByStep/types.js +40 -99
  239. package/lib/solution/BookingByStep/utils/capacity.js +192 -160
  240. package/lib/solution/BookingByStep/utils/products.js +42 -52
  241. package/lib/solution/BookingByStep/utils/resources.js +527 -330
  242. package/lib/solution/BookingByStep/utils/stock.js +65 -44
  243. package/lib/solution/BookingByStep/utils/timeslots.js +129 -131
  244. package/lib/solution/BookingTicket/index.js +607 -522
  245. package/lib/solution/BookingTicket/types.js +99 -77
  246. package/lib/solution/BookingTicket/utils/addProductDecision.js +226 -189
  247. package/lib/solution/BookingTicket/utils/addTimeAvailability.js +58 -89
  248. package/lib/solution/BookingTicket/utils/bookingStatus.js +107 -78
  249. package/lib/solution/BookingTicket/utils/cartView.js +114 -99
  250. package/lib/solution/BookingTicket/utils/exampleData.js +185 -0
  251. package/lib/solution/BookingTicket/utils/orderCustomer.js +18 -41
  252. package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +219 -86
  253. package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +168 -116
  254. package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +79 -91
  255. package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +54 -41
  256. package/lib/solution/BookingTicket/utils/scan/handleScan.js +84 -81
  257. package/lib/solution/BookingTicket/utils/scan/index.js +98 -104
  258. package/lib/solution/BookingTicket/utils/scan/scanCache.js +90 -43
  259. package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +52 -64
  260. package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +56 -58
  261. package/lib/solution/BookingTicket/utils/weighingProductSku.js +34 -48
  262. package/lib/solution/BuyTickets/index.js +67 -70
  263. package/lib/solution/BuyTickets/types.js +22 -38
  264. package/lib/solution/Checkout/index.js +1451 -1158
  265. package/lib/solution/Checkout/types.js +91 -61
  266. package/lib/solution/Checkout/utils/index.js +228 -156
  267. package/lib/solution/PlaceOrder/index.js +55 -0
  268. package/lib/solution/RegisterAndLogin/config.js +493 -460
  269. package/lib/solution/RegisterAndLogin/index.js +633 -630
  270. package/lib/solution/RegisterAndLogin/types.js +189 -76
  271. package/lib/solution/RegisterAndLogin/utils.js +183 -125
  272. package/lib/solution/Sales/index.js +328 -324
  273. package/lib/solution/Sales/types.js +27 -33
  274. package/lib/solution/ScanOrder/index.js +832 -864
  275. package/lib/solution/ScanOrder/types.js +33 -34
  276. package/lib/solution/ScanOrder/utils.js +409 -374
  277. package/lib/solution/ShopDiscount/index.js +226 -232
  278. package/lib/solution/ShopDiscount/types.js +15 -37
  279. package/lib/solution/ShopDiscount/utils.js +300 -172
  280. package/lib/solution/UnifiedBookingSales/index.js +1035 -1201
  281. package/lib/solution/UnifiedBookingSales/remoteOccupancyCache.js +99 -159
  282. package/lib/solution/UnifiedBookingSales/types.js +10 -32
  283. package/lib/solution/VenueBooking/index.js +811 -879
  284. package/lib/solution/VenueBooking/types.js +19 -39
  285. package/lib/solution/VenueBooking/utils/dateSummary.js +27 -56
  286. package/lib/solution/VenueBooking/utils/resource.js +31 -54
  287. package/lib/solution/VenueBooking/utils/slotMerge.js +94 -107
  288. package/lib/solution/VenueBooking/utils/timeSlot.js +132 -132
  289. package/lib/solution/VenueBooking/utils.js +130 -67
  290. package/lib/solution/index.js +124 -41
  291. package/lib/store/createStore.js +32 -29
  292. package/lib/types/index.js +4 -16
  293. package/lib/utils/payment-number.js +26 -46
  294. package/lib/utils/task.js +36 -36
  295. package/lib/utils/watch.js +81 -47
  296. package/package.json +2 -1
@@ -1,31 +1,18 @@
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/plugins/window.ts
20
- var window_exports = {};
21
- __export(window_exports, {
22
- default: () => window_default
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
23
5
  });
24
- module.exports = __toCommonJS(window_exports);
25
- var SimpleStorage = class {
26
- constructor() {
27
- this.items = {};
28
- }
6
+ exports.default = void 0;
7
+ /**
8
+ * WindowPlugin 接口定义
9
+ */
10
+
11
+ /**
12
+ * 简单的 Storage 接口实现
13
+ */
14
+ class SimpleStorage {
15
+ items = {};
29
16
  get length() {
30
17
  return Object.keys(this.items).length;
31
18
  }
@@ -45,104 +32,100 @@ var SimpleStorage = class {
45
32
  clear() {
46
33
  this.items = {};
47
34
  }
48
- };
49
- var SimpleLocation = class {
50
- constructor() {
51
- this.hash = "";
52
- this.host = "localhost";
53
- this.hostname = "localhost";
54
- this.href = "https://localhost";
55
- this.origin = "https://localhost";
56
- this.pathname = "/";
57
- this.port = "";
58
- this.protocol = "https:";
59
- this.search = "";
60
- this.ancestorOrigins = {};
61
- }
62
- assign(url) {
63
- }
64
- reload() {
65
- }
66
- replace(url) {
67
- }
35
+ }
36
+
37
+ /**
38
+ * 简单的 Location 类实现
39
+ */
40
+ class SimpleLocation {
41
+ hash = '';
42
+ host = 'localhost';
43
+ hostname = 'localhost';
44
+ href = 'https://localhost';
45
+ origin = 'https://localhost';
46
+ pathname = '/';
47
+ port = '';
48
+ protocol = 'https:';
49
+ search = '';
50
+ ancestorOrigins = {};
51
+ assign(url) {}
52
+ reload() {}
53
+ replace(url) {}
68
54
  toString() {
69
55
  return this.href;
70
56
  }
71
- };
72
- var SimpleNavigator = class {
73
- constructor() {
74
- this.userAgent = "PisellOS/1.0";
75
- this.language = "zh-CN";
76
- this.languages = ["zh-CN", "en-US"];
77
- this.onLine = true;
78
- this.cookieEnabled = true;
79
- // 以下属性只提供必要实现
80
- this.appCodeName = "PisellOS";
81
- this.appName = "PisellOS";
82
- this.appVersion = "1.0";
83
- this.platform = "PisellOS";
84
- this.product = "PisellOS";
85
- }
57
+ }
58
+
59
+ /**
60
+ * 简单的 Navigator 类实现
61
+ */
62
+ class SimpleNavigator {
63
+ userAgent = 'PisellOS/1.0';
64
+ language = 'zh-CN';
65
+ languages = ['zh-CN', 'en-US'];
66
+ onLine = true;
67
+ cookieEnabled = true;
68
+
69
+ // 以下属性只提供必要实现
70
+ appCodeName = 'PisellOS';
71
+ appName = 'PisellOS';
72
+ appVersion = '1.0';
73
+ platform = 'PisellOS';
74
+ product = 'PisellOS';
86
75
  javaEnabled() {
87
76
  return false;
88
77
  }
89
- };
90
- var SimpleHistory = class {
91
- constructor() {
92
- this.length = 0;
93
- this.scrollRestoration = "auto";
94
- this.state = null;
95
- }
96
- back() {
97
- }
98
- forward() {
99
- }
100
- go() {
101
- }
102
- pushState() {
103
- }
104
- replaceState() {
105
- }
106
- };
107
- var SimpleDocument = class {
108
- constructor() {
109
- // 仅实现基本功能
110
- this.elements = {};
111
- // Document 接口的必要属性
112
- this.URL = "https://localhost";
113
- this.documentURI = "https://localhost";
114
- this.origin = "https://localhost";
115
- this.characterSet = "UTF-8";
116
- this.contentType = "text/html";
117
- this.compatMode = "CSS1Compat";
118
- }
78
+ }
79
+
80
+ /**
81
+ * 简单的 History 接口实现
82
+ */
83
+ class SimpleHistory {
84
+ length = 0;
85
+ scrollRestoration = 'auto';
86
+ state = null;
87
+ back() {}
88
+ forward() {}
89
+ go() {}
90
+ pushState() {}
91
+ replaceState() {}
92
+ }
93
+
94
+ /**
95
+ * 简单 HTMLElement 接口
96
+ */
97
+
98
+ /**
99
+ * 简单的 Document 类实现
100
+ */
101
+ class SimpleDocument {
102
+ // 仅实现基本功能
103
+ elements = {};
119
104
  createElement(tagName) {
120
105
  const element = {
121
106
  tagName: tagName.toUpperCase(),
122
- id: "",
123
- className: "",
124
- innerHTML: "",
107
+ id: '',
108
+ className: '',
109
+ innerHTML: '',
125
110
  style: {},
126
111
  dataset: {},
127
112
  attributes: {},
128
113
  children: [],
129
114
  parentElement: null,
130
- addEventListener: () => {
131
- },
132
- removeEventListener: () => {
133
- },
134
- getAttribute: (name) => element.attributes[name],
115
+ addEventListener: () => {},
116
+ removeEventListener: () => {},
117
+ getAttribute: name => element.attributes[name],
135
118
  setAttribute: (name, value) => {
136
119
  element.attributes[name] = value;
137
120
  },
138
- removeAttribute: (name) => {
121
+ removeAttribute: name => {
139
122
  delete element.attributes[name];
140
123
  },
141
- appendChild: (child) => {
124
+ appendChild: child => {
142
125
  element.children.push(child);
143
126
  return child;
144
127
  },
145
- removeChild: (child) => {
128
+ removeChild: child => {
146
129
  const index = element.children.indexOf(child);
147
130
  if (index !== -1) {
148
131
  element.children.splice(index, 1);
@@ -155,6 +138,14 @@ var SimpleDocument = class {
155
138
  getElementById(id) {
156
139
  return this.elements[id] || null;
157
140
  }
141
+
142
+ // Document 接口的必要属性
143
+ URL = 'https://localhost';
144
+ documentURI = 'https://localhost';
145
+ origin = 'https://localhost';
146
+ characterSet = 'UTF-8';
147
+ contentType = 'text/html';
148
+ compatMode = 'CSS1Compat';
158
149
  querySelector() {
159
150
  return null;
160
151
  }
@@ -167,86 +158,87 @@ var SimpleDocument = class {
167
158
  getElementsByClassName() {
168
159
  return [];
169
160
  }
170
- };
171
- var WindowPluginImpl = class {
172
- constructor() {
173
- this.name = "window";
174
- this.version = "1.0.0";
175
- // 定时器相关
176
- this.setTimeout = Object.assign(
177
- function(handler, timeout, ...args) {
178
- if (typeof globalThis !== "undefined" && globalThis.setTimeout) {
179
- return globalThis.setTimeout(handler, timeout, ...args);
180
- }
181
- const timeoutId = Date.now();
182
- Promise.resolve().then(() => {
183
- setTimeout(() => {
184
- if (typeof handler === "function") {
185
- handler(...args);
186
- } else {
187
- eval(handler);
188
- }
189
- }, timeout || 0);
190
- });
191
- return timeoutId;
192
- },
193
- {
194
- __promisify__: function(delay, value) {
195
- return new Promise((resolve) => setTimeout(resolve, delay, value));
161
+ }
162
+
163
+ /**
164
+ * Window 插件实现
165
+ */
166
+ class WindowPluginImpl {
167
+ name = 'window';
168
+ version = '1.0.0';
169
+
170
+ // 定时器相关
171
+ setTimeout = Object.assign(function (handler, timeout, ...args) {
172
+ if (typeof globalThis !== 'undefined' && globalThis.setTimeout) {
173
+ return globalThis.setTimeout(handler, timeout, ...args);
174
+ }
175
+ // Fallback 实现,使用 Promise 模拟
176
+ const timeoutId = Date.now();
177
+ Promise.resolve().then(() => {
178
+ setTimeout(() => {
179
+ if (typeof handler === 'function') {
180
+ handler(...args);
181
+ } else {
182
+ eval(handler);
196
183
  }
197
- }
198
- );
199
- this.clearTimeout = function(timeout2) {
200
- if (typeof globalThis !== "undefined" && globalThis.clearTimeout) {
201
- globalThis.clearTimeout(timeout2);
202
- }
203
- };
204
- this.setInterval = Object.assign(
205
- function(handler, timeout, ...args) {
206
- if (typeof globalThis !== "undefined" && globalThis.setInterval) {
207
- return globalThis.setInterval(handler, timeout, ...args);
184
+ }, timeout || 0);
185
+ });
186
+ return timeoutId;
187
+ }, {
188
+ __promisify__: function (delay, value) {
189
+ return new Promise(resolve => setTimeout(resolve, delay, value));
190
+ }
191
+ });
192
+ clearTimeout = function (timeout) {
193
+ if (typeof globalThis !== 'undefined' && globalThis.clearTimeout) {
194
+ globalThis.clearTimeout(timeout);
195
+ }
196
+ // Fallback 不做任何操作
197
+ };
198
+ setInterval = Object.assign(function (handler, timeout, ...args) {
199
+ if (typeof globalThis !== 'undefined' && globalThis.setInterval) {
200
+ return globalThis.setInterval(handler, timeout, ...args);
201
+ }
202
+ // Fallback 实现,使用递归 setTimeout 模拟
203
+ const intervalId = Date.now();
204
+ const recursiveTimeout = () => {
205
+ this.setTimeout(() => {
206
+ if (typeof handler === 'function') {
207
+ handler(...args);
208
+ } else {
209
+ eval(handler);
208
210
  }
209
- const intervalId = Date.now();
210
- const recursiveTimeout = () => {
211
- this.setTimeout(() => {
212
- if (typeof handler === "function") {
213
- handler(...args);
214
- } else {
215
- eval(handler);
216
- }
217
- recursiveTimeout();
218
- }, timeout || 0);
219
- };
220
211
  recursiveTimeout();
221
- return intervalId;
222
- },
223
- {
224
- __promisify__: function(delay, value) {
225
- return new Promise((resolve) => setInterval(resolve, delay, value));
226
- }
227
- }
228
- );
229
- this.clearInterval = function(timeout2) {
230
- if (typeof globalThis !== "undefined" && globalThis.clearInterval) {
231
- globalThis.clearInterval(timeout2);
232
- }
212
+ }, timeout || 0);
233
213
  };
234
- // 存储相关
235
- this.localStorage = new SimpleStorage();
236
- this.sessionStorage = new SimpleStorage();
237
- // 浏览器环境对象
238
- this.location = new SimpleLocation();
239
- this.navigator = new SimpleNavigator();
240
- this.document = new SimpleDocument();
241
- this.history = new SimpleHistory();
242
- }
214
+ recursiveTimeout();
215
+ return intervalId;
216
+ }, {
217
+ __promisify__: function (delay, value) {
218
+ return new Promise(resolve => setInterval(resolve, delay, value));
219
+ }
220
+ });
221
+ clearInterval = function (timeout) {
222
+ if (typeof globalThis !== 'undefined' && globalThis.clearInterval) {
223
+ globalThis.clearInterval(timeout);
224
+ }
225
+ // Fallback 不做任何操作
226
+ };
227
+
228
+ // 存储相关
229
+ localStorage = new SimpleStorage();
230
+ sessionStorage = new SimpleStorage();
231
+
232
+ // 浏览器环境对象
233
+ location = new SimpleLocation();
234
+ navigator = new SimpleNavigator();
235
+ document = new SimpleDocument();
236
+ history = new SimpleHistory();
237
+
243
238
  // 初始化方法
244
- initialize() {
245
- console.log("[WindowPlugin] 初始化完成");
246
- }
239
+ initialize() {}
240
+
247
241
  // 销毁方法
248
- destroy() {
249
- console.log("[WindowPlugin] 已销毁");
250
- }
251
- };
252
- var window_default = new WindowPluginImpl();
242
+ destroy() {}
243
+ }
244
+ var _default = exports.default = new WindowPluginImpl();
@@ -51,6 +51,8 @@ declare class Server {
51
51
  private productQueryScheduleTimers;
52
52
  /** 餐牌筛选为空时才触发的菜单/日程缓存自愈,避免每次商品查询都请求远端。 */
53
53
  private menuScheduleRefreshInFlight;
54
+ /** 启动阶段模块预加载任务;预渲染商品查询复用该任务,避免缓存尚未 ready 时误触发远端自愈。 */
55
+ private startupModulePreloadInFlight;
54
56
  private lastMenuScheduleRefreshAt;
55
57
  private readonly MENU_SCHEDULE_REFRESH_COOLDOWN_MS;
56
58
  private orderQuerySubscribers;
@@ -157,13 +159,17 @@ declare class Server {
157
159
  * 重新拉取全量 SSE 接口,更新本地数据后触发 onProductsSyncCompleted
158
160
  * 不影响当前界面展示,适用于切回前台、定时刷新等场景
159
161
  */
160
- refreshProductsInBackground(): Promise<void>;
162
+ refreshProductsInBackground(options?: {
163
+ trigger?: string;
164
+ }): Promise<void>;
161
165
  /**
162
166
  * 后台静默刷新订单数据
163
167
  * 重新拉取全量 SSE 接口,更新本地数据后触发 onOrdersSyncCompleted
164
168
  * 不影响当前界面展示,适用于切回前台、定时刷新等场景
165
169
  */
166
- refreshOrdersInBackground(): Promise<void>;
170
+ refreshOrdersInBackground(options?: {
171
+ trigger?: string;
172
+ }): Promise<void>;
167
173
  /**
168
174
  * 编辑正式订单时强制查询 Server 最新快照并覆盖本地缓存。
169
175
  * 商品成员增删由 OrderModule 在 SQLite/Store 更新完成后广播,