@pisell/private-materials 6.4.5 → 6.4.6

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 (29) hide show
  1. package/build/lowcode/assets-daily.json +11 -11
  2. package/build/lowcode/assets-dev.json +2 -2
  3. package/build/lowcode/assets-prod.json +11 -11
  4. package/build/lowcode/meta.js +1 -1
  5. package/build/lowcode/render/default/view.css +1 -1
  6. package/build/lowcode/render/default/view.js +4 -4
  7. package/build/lowcode/view.css +1 -1
  8. package/build/lowcode/view.js +4 -4
  9. package/es/components/booking/components/footer/amount.d.ts +6 -2
  10. package/es/components/booking/components/footer/amount.js +77 -55
  11. package/es/components/booking/components/footer/index.js +11 -11
  12. package/es/components/checkout/PaymentModal.d.ts +1 -0
  13. package/es/components/checkout/PaymentModal.js +22 -19
  14. package/es/components/checkout/components/WalletPassModule/components/DiscountWallet/DiscountTextMode.js +6 -1
  15. package/es/components/checkout/components/WalletPassModule/components/WalletPassTextMode/index.js +6 -1
  16. package/es/components/ticketBooking/components/ticketBooking/index.js +46 -4
  17. package/es/components/ticketBooking/locales.d.ts +12 -0
  18. package/es/components/ticketBooking/locales.js +15 -3
  19. package/lib/components/booking/components/footer/amount.d.ts +6 -2
  20. package/lib/components/booking/components/footer/amount.js +63 -38
  21. package/lib/components/booking/components/footer/index.js +2 -2
  22. package/lib/components/checkout/PaymentModal.d.ts +1 -0
  23. package/lib/components/checkout/PaymentModal.js +14 -16
  24. package/lib/components/checkout/components/WalletPassModule/components/DiscountWallet/DiscountTextMode.js +3 -1
  25. package/lib/components/checkout/components/WalletPassModule/components/WalletPassTextMode/index.js +3 -1
  26. package/lib/components/ticketBooking/components/ticketBooking/index.js +31 -2
  27. package/lib/components/ticketBooking/locales.d.ts +12 -0
  28. package/lib/components/ticketBooking/locales.js +15 -3
  29. package/package.json +1 -1
@@ -57,6 +57,10 @@ declare const _default: {
57
57
  'pisell2.product.card.minute': (val: number) => string;
58
58
  'pisell2.ticket-booking.reload': string;
59
59
  'pisell2.text.scan-global-failed': string;
60
+ 'pisell2.ticket-booking.terminal-upgrade-title': string;
61
+ 'pisell2.ticket-booking.terminal-upgrade-description': string;
62
+ 'pisell2.ticket-booking.terminal-upgrade-ok': string;
63
+ 'pisell2.ticket-booking.terminal-upgrade-cancel': string;
60
64
  };
61
65
  'zh-CN': {
62
66
  'pisell2.ticket-booking.info': string;
@@ -116,6 +120,10 @@ declare const _default: {
116
120
  'pisell2.product.card.minute': (val: number) => string;
117
121
  'pisell2.ticket-booking.reload': string;
118
122
  'pisell2.text.scan-global-failed': string;
123
+ 'pisell2.ticket-booking.terminal-upgrade-title': string;
124
+ 'pisell2.ticket-booking.terminal-upgrade-description': string;
125
+ 'pisell2.ticket-booking.terminal-upgrade-ok': string;
126
+ 'pisell2.ticket-booking.terminal-upgrade-cancel': string;
119
127
  };
120
128
  'zh-HK': {
121
129
  'pisell2.ticket-booking.info': string;
@@ -175,6 +183,10 @@ declare const _default: {
175
183
  'pisell2.product.card.minute': (val: number) => string;
176
184
  'pisell2.ticket-booking.reload': string;
177
185
  'pisell2.text.scan-global-failed': string;
186
+ 'pisell2.ticket-booking.terminal-upgrade-title': string;
187
+ 'pisell2.ticket-booking.terminal-upgrade-description': string;
188
+ 'pisell2.ticket-booking.terminal-upgrade-ok': string;
189
+ 'pisell2.ticket-booking.terminal-upgrade-cancel': string;
178
190
  };
179
191
  };
180
192
  export default _default;
@@ -69,7 +69,11 @@ export default {
69
69
  return "".concat(val > 1 ? ' minutes' : ' minute');
70
70
  },
71
71
  'pisell2.ticket-booking.reload': 'Reload',
72
- 'pisell2.text.scan-global-failed': 'No matching results'
72
+ 'pisell2.text.scan-global-failed': 'No matching results',
73
+ 'pisell2.ticket-booking.terminal-upgrade-title': 'Terminal Version Reminder',
74
+ 'pisell2.ticket-booking.terminal-upgrade-description': 'Your Terminal version is outdated. Please upgrade Terminal to use all features.',
75
+ 'pisell2.ticket-booking.terminal-upgrade-ok': 'I understand',
76
+ 'pisell2.ticket-booking.terminal-upgrade-cancel': 'Cancel'
73
77
  },
74
78
  'zh-CN': {
75
79
  'pisell2.ticket-booking.info': '信息',
@@ -141,7 +145,11 @@ export default {
141
145
  return '分钟';
142
146
  },
143
147
  'pisell2.ticket-booking.reload': '重新加载',
144
- 'pisell2.text.scan-global-failed': '无搜索结果'
148
+ 'pisell2.text.scan-global-failed': '无搜索结果',
149
+ 'pisell2.ticket-booking.terminal-upgrade-title': 'Terminal版本提醒',
150
+ 'pisell2.ticket-booking.terminal-upgrade-description': '检测到您的Terminal版本较低,请升级Terminal以使用完整功能',
151
+ 'pisell2.ticket-booking.terminal-upgrade-ok': '我知道了',
152
+ 'pisell2.ticket-booking.terminal-upgrade-cancel': '取消'
145
153
  },
146
154
  'zh-HK': {
147
155
  'pisell2.ticket-booking.info': '資訊',
@@ -213,6 +221,10 @@ export default {
213
221
  return '分鐘';
214
222
  },
215
223
  'pisell2.ticket-booking.reload': '重新載入',
216
- 'pisell2.text.scan-global-failed': '無搜索結果'
224
+ 'pisell2.text.scan-global-failed': '無搜索結果',
225
+ 'pisell2.ticket-booking.terminal-upgrade-title': 'Terminal版本提醒',
226
+ 'pisell2.ticket-booking.terminal-upgrade-description': '檢測到您的Terminal版本較低,請升級Terminal以使用完整功能',
227
+ 'pisell2.ticket-booking.terminal-upgrade-ok': '我知道了',
228
+ 'pisell2.ticket-booking.terminal-upgrade-cancel': '取消'
217
229
  }
218
230
  };
@@ -3,10 +3,14 @@ export declare const getIsPriceIncludeTax: (state: any) => any;
3
3
  /**
4
4
  * 总金额
5
5
  * @param state
6
- * @param options
6
+ * @param options isEdit: 预约信息是否发生变动
7
7
  * @returns
8
8
  */
9
- export declare const getSumTotal: (state: any, { isEdit, ScheduleModule, ...rest }: any) => {
9
+ export declare const getSumTotal: (state: any, options: {
10
+ [key: string]: any;
11
+ isEdit: boolean;
12
+ ScheduleModule: any;
13
+ }) => {
10
14
  productAmount: number;
11
15
  duration: string;
12
16
  tax: number;
@@ -64,7 +64,9 @@ var getProductExpectAmount = (state, isEdit) => {
64
64
  } else {
65
65
  const quantity = item._extend.quantity || 1;
66
66
  price += Number(item._extend.total) * Number(quantity);
67
- price += getRelationDetailsTotal(item._extend.relation_details || []);
67
+ price += getRelationDetailsTotal(
68
+ item._extend.relation_details || []
69
+ );
68
70
  duration += import_utils.flexibleObj.getValue(item._extend.duration);
69
71
  }
70
72
  }
@@ -137,7 +139,6 @@ var processItemsTax = (items, state, options) => {
137
139
  {
138
140
  ...item,
139
141
  total: unitPrice.toNumber(),
140
- price: item._extend.total,
141
142
  quantity: 1
142
143
  },
143
144
  state,
@@ -160,8 +161,33 @@ var processItemsTax = (items, state, options) => {
160
161
  );
161
162
  item._extend.original_tax_fee = originalTaxPerItem.toNumber();
162
163
  item._extend.tax_fee = discountedTaxPerItem.toNumber();
163
- originTax = originTax.plus(originalTaxPerItem.times(quantity));
164
- tax = tax.plus(discountedTaxPerItem.times(quantity));
164
+ let addTimeTotalTax = new import_decimal.default(0);
165
+ if (Array.isArray(item._extend.relation_details)) {
166
+ for (let atItem of item._extend.relation_details) {
167
+ const _originTotal = new import_decimal.default(
168
+ atItem.selling_price || atItem.price || 0
169
+ );
170
+ let _discountedTotal = _originTotal;
171
+ if (productExpectAmount > 0) {
172
+ _discountedTotal = _originTotal.minus(
173
+ _originTotal.dividedBy(productExpectAmount).times(shopDiscount)
174
+ );
175
+ }
176
+ const addTimeTaxPerItem = getProductItemTax(
177
+ {
178
+ ...atItem,
179
+ total: _discountedTotal,
180
+ // 可能包含原有数据,或前端临时数据
181
+ quantity: atItem.product_quantity || atItem.num || 1
182
+ },
183
+ state,
184
+ { tax_rate, is_price_include_tax }
185
+ );
186
+ addTimeTotalTax = addTimeTotalTax.plus(addTimeTaxPerItem);
187
+ }
188
+ }
189
+ originTax = originTax.plus(originalTaxPerItem.times(quantity)).plus(addTimeTotalTax);
190
+ tax = tax.plus(discountedTaxPerItem.times(quantity)).plus(addTimeTotalTax);
165
191
  }
166
192
  return { originTax, tax };
167
193
  };
@@ -175,20 +201,20 @@ var getTax = (state, options) => {
175
201
  let totalTax = new import_decimal.default(0);
176
202
  if ((state == null ? void 0 : state.service) || (state == null ? void 0 : state.addons)) {
177
203
  if ((_b = state == null ? void 0 : state.service) == null ? void 0 : _b.value) {
178
- const serviceResult = processItemsTax(
179
- state.service.value,
180
- state,
181
- { tax_rate, is_price_include_tax, computed }
182
- );
204
+ const serviceResult = processItemsTax(state.service.value, state, {
205
+ tax_rate,
206
+ is_price_include_tax,
207
+ computed
208
+ });
183
209
  totalOriginTax = totalOriginTax.plus(serviceResult.originTax);
184
210
  totalTax = totalTax.plus(serviceResult.tax);
185
211
  }
186
212
  if ((_c = state == null ? void 0 : state.addons) == null ? void 0 : _c.value) {
187
- const addonsResult = processItemsTax(
188
- state.addons.value,
189
- state,
190
- { tax_rate, is_price_include_tax, computed }
191
- );
213
+ const addonsResult = processItemsTax(state.addons.value, state, {
214
+ tax_rate,
215
+ is_price_include_tax,
216
+ computed
217
+ });
192
218
  totalOriginTax = totalOriginTax.plus(addonsResult.originTax);
193
219
  totalTax = totalTax.plus(addonsResult.tax);
194
220
  }
@@ -276,9 +302,9 @@ var isProductMatchSurchargeCondition = (item, options) => {
276
302
  };
277
303
  var getSurcharge = (state, options) => {
278
304
  var _a;
279
- const { ScheduleModule, surcharge_list, scheduleById } = options;
305
+ const { isEdit, ScheduleModule, surcharge_list, scheduleById } = options;
280
306
  const { bookingDetail, bookingId } = state;
281
- if (bookingId) {
307
+ if (!isEdit && bookingId) {
282
308
  if (Array.isArray(bookingDetail == null ? void 0 : bookingDetail.surcharge)) {
283
309
  return (((_a = state.bookingDetail) == null ? void 0 : _a.surcharge) || []).map(
284
310
  (d, index) => {
@@ -321,8 +347,10 @@ var getSurcharge = (state, options) => {
321
347
  ScheduleModule
322
348
  })) {
323
349
  matchedItems.push({
324
- total: Number(item._extend.price),
325
- // 附加费不参与折扣,需要使用商品原价计算
350
+ total: Number(item._extend.total),
351
+ addTimeTotal: getRelationDetailsTotal(
352
+ item._extend.relation_details || []
353
+ ),
326
354
  quantity: item._extend.quantity || 1
327
355
  });
328
356
  }
@@ -336,7 +364,7 @@ var getSurcharge = (state, options) => {
336
364
  ScheduleModule
337
365
  })) {
338
366
  matchedItems.push({
339
- total: Number(item._extend.price),
367
+ total: Number(item._extend.total),
340
368
  quantity: item._extend.quantity || 1
341
369
  });
342
370
  }
@@ -350,7 +378,8 @@ var getSurcharge = (state, options) => {
350
378
  for (let item of matchedItems) {
351
379
  const itemPrice = new import_decimal.default(Math.max(0, item.total || 0));
352
380
  const itemQuantity = new import_decimal.default(item.quantity || 1);
353
- const itemSurcharge = itemPrice.times(itemQuantity).times(percentageRate);
381
+ const addTimeTotal = new import_decimal.default(item.addTimeTotal || 0);
382
+ const itemSurcharge = itemPrice.times(itemQuantity).plus(addTimeTotal).times(percentageRate);
354
383
  configTotal = configTotal.plus(itemSurcharge);
355
384
  }
356
385
  }
@@ -376,10 +405,13 @@ var getSurcharge = (state, options) => {
376
405
  }
377
406
  return surchargeWithAmount;
378
407
  };
379
- var getSurchargeAmount = (state, surcharge) => {
408
+ var getSurchargeAmount = (state, surcharge, options) => {
380
409
  const { bookingDetail, bookingId } = state;
381
- if (bookingDetail && bookingId) {
382
- return Number(bookingDetail.surcharge_fee);
410
+ const { isEdit } = options;
411
+ if (!isEdit) {
412
+ if (bookingDetail && bookingId) {
413
+ return Number(bookingDetail.surcharge_fee);
414
+ }
383
415
  }
384
416
  if (!Array.isArray(surcharge)) return 0;
385
417
  return surcharge.reduce((total, item) => {
@@ -434,26 +466,25 @@ var getSumTotalAmount = ({
434
466
  }) => {
435
467
  return expectAmount + roundingAmount;
436
468
  };
437
- var getSumTotal = (state, { isEdit, ScheduleModule, ...rest }) => {
469
+ var getSumTotal = (state, options) => {
438
470
  const { productExpectAmount, duration } = getProductExpectAmount(
439
471
  state,
440
- isEdit
472
+ options.isEdit
441
473
  );
442
474
  const shopDiscount = getShopDiscount(state);
443
475
  const roundingAmount = getRoundingAmount(state);
444
476
  const paySurchargeFee = getPaySurchargeFee(state);
445
- const surcharge = getSurcharge(state, { ScheduleModule, ...rest });
446
- const surchargeAmount = getSurchargeAmount(state, surcharge);
477
+ const surcharge = getSurcharge(state, options);
478
+ const surchargeAmount = getSurchargeAmount(state, surcharge, options);
447
479
  const computed = {
448
480
  productExpectAmount,
449
481
  shopDiscount
450
482
  };
451
483
  const { tax, originTax } = getTax(state, {
452
- isEdit,
453
484
  computed,
454
- ...rest
485
+ ...options
455
486
  });
456
- const taxInfo = getTaxInfo(state, rest);
487
+ const taxInfo = getTaxInfo(state, options);
457
488
  const paidAmount = getPaidAmount(state);
458
489
  const orderPaidAmount = getOrderPaidAmount(state);
459
490
  const totalRefundAmount = getTotalRefundAmount(state);
@@ -463,10 +494,7 @@ var getSumTotal = (state, { isEdit, ScheduleModule, ...rest }) => {
463
494
  surchargeAmount,
464
495
  shopDiscount,
465
496
  state,
466
- options: {
467
- isEdit,
468
- ...rest
469
- }
497
+ options
470
498
  });
471
499
  const originExpectAmount = getExpectAmount({
472
500
  price: productExpectAmount,
@@ -474,10 +502,7 @@ var getSumTotal = (state, { isEdit, ScheduleModule, ...rest }) => {
474
502
  surchargeAmount,
475
503
  shopDiscount: 0,
476
504
  state,
477
- options: {
478
- isEdit,
479
- ...rest
480
- }
505
+ options
481
506
  });
482
507
  const sumTotalAmount = getSumTotalAmount({ expectAmount, roundingAmount });
483
508
  const notPaidAmount = Number((0, import_utils2.formatAmount)(sumTotalAmount, 2, "")) - orderPaidAmount;
@@ -476,7 +476,6 @@ var Footer = (props) => {
476
476
  showDetail
477
477
  }
478
478
  };
479
- console.log("💳 Footer: Setting payment modal data:", modalData);
480
479
  setPaymentModalData(modalData);
481
480
  setIsPaymentModalOpen(true);
482
481
  setCheckoutLoading(false);
@@ -1315,9 +1314,10 @@ var Footer = (props) => {
1315
1314
  onDelete: handleNoteDelete,
1316
1315
  onCancel: handleNoteCancel
1317
1316
  }
1318
- ), isPaymentModalOpen && /* @__PURE__ */ import_react.default.createElement(
1317
+ ), /* @__PURE__ */ import_react.default.createElement(
1319
1318
  import_PaymentModal.default,
1320
1319
  {
1320
+ open: isPaymentModalOpen,
1321
1321
  data: paymentModalData,
1322
1322
  callback: paymentCallback || void 0,
1323
1323
  state,
@@ -11,6 +11,7 @@ interface PaymentModalData {
11
11
  total: any;
12
12
  }
13
13
  interface PaymentModalProps {
14
+ open?: boolean;
14
15
  data?: PaymentModalData;
15
16
  callback?: (result: any) => void;
16
17
  onClose?: (reset?: boolean) => void;
@@ -75,6 +75,7 @@ var PaymentContent = (0, import_react.forwardRef)(
75
75
  ({
76
76
  cartData,
77
77
  orderInfo,
78
+ isModalOpen,
78
79
  onPaymentComplete,
79
80
  onPaymentCancel,
80
81
  onStatusChange,
@@ -98,7 +99,6 @@ var PaymentContent = (0, import_react.forwardRef)(
98
99
  const utils = context.appHelper.utils || {};
99
100
  const { pisellos, getData, pisellosAllModule, interaction } = utils;
100
101
  const Toast = (0, import_useToast.default)();
101
- const paymentResultToast = (0, import_PaymentResultToast.usePaymentResultToast)();
102
102
  const checkoutRef = (0, import_react.useRef)(null);
103
103
  const savePayLaterHandlerRef = (0, import_react.useRef)(null);
104
104
  const [customAmount, setCustomAmount] = (0, import_react.useState)("");
@@ -267,8 +267,7 @@ var PaymentContent = (0, import_react.forwardRef)(
267
267
  };
268
268
  (0, import_react.useEffect)(() => {
269
269
  var _a2;
270
- console.time("initCustomAmount");
271
- if (checkoutModule && orderInfo) {
270
+ if (checkoutModule && orderInfo && isModalOpen) {
272
271
  try {
273
272
  const currentAmount = checkoutModule.getStateAmount();
274
273
  if (currentAmount) {
@@ -286,8 +285,7 @@ var PaymentContent = (0, import_react.forwardRef)(
286
285
  }
287
286
  } else {
288
287
  }
289
- console.timeEnd("initCustomAmount");
290
- if (checkoutModule) {
288
+ if (checkoutModule && isModalOpen) {
291
289
  checkoutModule.getPaymentMethodsAsync().then((paymentMethods2) => {
292
290
  setPaymentMethods(paymentMethods2);
293
291
  const isShowCashPayment = paymentMethods2.some(
@@ -304,7 +302,7 @@ var PaymentContent = (0, import_react.forwardRef)(
304
302
  }
305
303
  }, [checkoutModule, orderInfo]);
306
304
  (0, import_react.useEffect)(() => {
307
- if (customAmount && checkoutModule && currency && orderInfo) {
305
+ if (customAmount && checkoutModule && currency && orderInfo && isModalOpen) {
308
306
  try {
309
307
  setRecommendAmounts(
310
308
  checkoutModule.payment.cash.getRecommendedAmount(
@@ -318,7 +316,7 @@ var PaymentContent = (0, import_react.forwardRef)(
318
316
  }
319
317
  }, [customAmount, checkoutModule, currency, orderInfo]);
320
318
  (0, import_react.useEffect)(() => {
321
- if (checkoutModule && checkoutModule.core) {
319
+ if (checkoutModule && checkoutModule.core && isModalOpen) {
322
320
  try {
323
321
  const core = checkoutModule.core;
324
322
  if (core.effects && typeof core.effects.on === "function") {
@@ -876,6 +874,7 @@ var PaymentContent = (0, import_react.forwardRef)(
876
874
  }
877
875
  );
878
876
  var PaymentModal = ({
877
+ open,
879
878
  data,
880
879
  callback,
881
880
  onClose,
@@ -1054,7 +1053,7 @@ var PaymentModal = ({
1054
1053
  console.log("Payment cancelled");
1055
1054
  callback == null ? void 0 : callback({ status: "cancelled" });
1056
1055
  const checkout = pisellos.getModule("checkout");
1057
- checkout.cancelCheckoutAsync();
1056
+ checkout.cancelCurrentOrderAsync();
1058
1057
  onClose == null ? void 0 : onClose(reset || false);
1059
1058
  };
1060
1059
  const CustomHeader = () => /* @__PURE__ */ import_react.default.createElement(
@@ -1146,7 +1145,6 @@ var PaymentModal = ({
1146
1145
  const responseData = (_a3 = data2.response) == null ? void 0 : _a3.data;
1147
1146
  const paymentStatus = responseData == null ? void 0 : responseData.payment_status;
1148
1147
  const orderTotalAmount = Number((responseData == null ? void 0 : responseData.total_amount) || 0);
1149
- const gapAmount = Number((responseData == null ? void 0 : responseData.amount_gap) || 0);
1150
1148
  const currentChangeGivenAmount = Number(
1151
1149
  ((_b3 = responseData == null ? void 0 : responseData.payment_info) == null ? void 0 : _b3.current_change_given_amount) || 0
1152
1150
  );
@@ -1155,7 +1153,7 @@ var PaymentModal = ({
1155
1153
  const statusClassName = (0, import_PaymentResultToastUtils.calculateStatusClassName)(paymentStatus);
1156
1154
  const autoCloseConfig = (0, import_PaymentResultToastUtils.calculateAutoCloseConfig)(
1157
1155
  paymentStatus,
1158
- !!gapAmount
1156
+ !!currentChangeGivenAmount
1159
1157
  );
1160
1158
  (0, import_PaymentResultToastUtils.displayPaymentResultToast)(
1161
1159
  {
@@ -1173,7 +1171,7 @@ var PaymentModal = ({
1173
1171
  toastInfo: {
1174
1172
  status: paymentStatus,
1175
1173
  amount: orderTotalAmount,
1176
- gapAmount,
1174
+ gapAmount: currentChangeGivenAmount,
1177
1175
  failureReason
1178
1176
  }
1179
1177
  };
@@ -1223,10 +1221,10 @@ var PaymentModal = ({
1223
1221
  console.error("Failed to initialize checkout data:", error);
1224
1222
  }
1225
1223
  };
1226
- if (data) {
1224
+ if (data && open) {
1227
1225
  initCheckoutData();
1228
1226
  }
1229
- }, [data]);
1227
+ }, [data, open]);
1230
1228
  const paymentResultToastConfig = {
1231
1229
  context,
1232
1230
  pisellos,
@@ -1522,19 +1520,18 @@ var PaymentModal = ({
1522
1520
  paymentResultToastConfig,
1523
1521
  generateActionButtons
1524
1522
  );
1525
- console.log("✅ PaymentModal: Rendering PisellContainer with open=true");
1526
1523
  return /* @__PURE__ */ import_react.default.createElement(import_PaymentResultToast.PaymentResultToastProvider, null, /* @__PURE__ */ import_react.default.createElement(
1527
1524
  import_materials.PisellContainer,
1528
1525
  {
1529
1526
  renderType: "modal",
1530
1527
  props: {
1531
- open: true,
1528
+ open,
1532
1529
  onCancel: () => {
1533
1530
  handlePaymentCancel(false);
1534
1531
  },
1535
1532
  title: /* @__PURE__ */ import_react.default.createElement(CustomHeader, null),
1536
1533
  width: 880,
1537
- destroyOnClose: true,
1534
+ destroyOnClose: false,
1538
1535
  maskClosable: false,
1539
1536
  footer: null,
1540
1537
  closeIcon: null,
@@ -1558,6 +1555,7 @@ var PaymentModal = ({
1558
1555
  PaymentContent,
1559
1556
  {
1560
1557
  ref: paymentContentRef,
1558
+ isModalOpen: open,
1561
1559
  cartData: (0, import_lodash.cloneDeep)(data),
1562
1560
  orderInfo,
1563
1561
  onPaymentComplete: handlePaymentComplete,
@@ -33,6 +33,8 @@ __export(DiscountTextMode_exports, {
33
33
  });
34
34
  module.exports = __toCommonJS(DiscountTextMode_exports);
35
35
  var import_react = __toESM(require("react"));
36
+ var import_materials = require("@pisell/materials");
37
+ var Amount = import_materials.PisellText.Amount;
36
38
  var DiscountTextMode = ({
37
39
  cardData,
38
40
  selectedWalletIds
@@ -44,7 +46,7 @@ var DiscountTextMode = ({
44
46
  className: "discount-text-item selected"
45
47
  },
46
48
  /* @__PURE__ */ import_react.default.createElement("span", { className: "discount-text-name" }, card.name),
47
- /* @__PURE__ */ import_react.default.createElement("span", { className: "discount-text-amount" }, "-", card.savedAmount ? `$${card.savedAmount}` : "$0")
49
+ /* @__PURE__ */ import_react.default.createElement("span", { className: "discount-text-amount" }, "-", /* @__PURE__ */ import_react.default.createElement(Amount, { value: card.savedAmount, showCurrencySymbol: true }))
48
50
  )) : /* @__PURE__ */ import_react.default.createElement("div", { className: "discount-text-empty" }));
49
51
  };
50
52
  var DiscountTextMode_default = DiscountTextMode;
@@ -33,7 +33,9 @@ __export(WalletPassTextMode_exports, {
33
33
  });
34
34
  module.exports = __toCommonJS(WalletPassTextMode_exports);
35
35
  var import_react = __toESM(require("react"));
36
+ var import_materials = require("@pisell/materials");
36
37
  var import_index = require("./index.less");
38
+ var Amount = import_materials.PisellText.Amount;
37
39
  var WalletPassTextMode = ({
38
40
  cardData,
39
41
  selectedWalletIds
@@ -45,7 +47,7 @@ var WalletPassTextMode = ({
45
47
  className: "wallet-pass-text-item selected"
46
48
  },
47
49
  /* @__PURE__ */ import_react.default.createElement("span", { className: "wallet-pass-text-name" }, card.name),
48
- /* @__PURE__ */ import_react.default.createElement("span", { className: "wallet-pass-text-amount" }, "-", card.redeem ? `${card.redeem}` : "$0")
50
+ /* @__PURE__ */ import_react.default.createElement("span", { className: "wallet-pass-text-amount" }, "-", /* @__PURE__ */ import_react.default.createElement(Amount, { value: card.redeem, showCurrencySymbol: true }))
49
51
  )) : /* @__PURE__ */ import_react.default.createElement("div", { className: "wallet-pass-text-empty" }));
50
52
  };
51
53
  var WalletPassTextMode_default = WalletPassTextMode;
@@ -262,6 +262,7 @@ var TicketBooking = () => {
262
262
  const _timerRef = (0, import_react.useRef)();
263
263
  const _callbackFnRef = (0, import_react.useRef)();
264
264
  const [activeBookingId, setActiveBookingId] = (0, import_react.useState)(0);
265
+ const [showTerminalUpgradeModal, setShowTerminalUpgradeModal] = (0, import_react.useState)(false);
265
266
  const pisellFloatingPanelRef = (0, import_react.useRef)(null);
266
267
  const closeRef = (0, import_react.useRef)(null);
267
268
  const bookingTicket = (0, import_bookingTicket.useBookingTicket)();
@@ -273,6 +274,21 @@ var TicketBooking = () => {
273
274
  const { selectCustomer } = (0, import_pisellos.useCustomer)({
274
275
  changeCustomerToGlobalState
275
276
  });
277
+ const checkTerminalVersion = (0, import_ahooks.useMemoizedFn)(() => {
278
+ if (isTerminal()) {
279
+ const userAgent = navigator.userAgent;
280
+ if (userAgent.includes("terminal")) {
281
+ const terminalVersionMatch = userAgent.match(/terminal\/[\d.]+\((\d+)\)/i);
282
+ if (terminalVersionMatch && terminalVersionMatch[1]) {
283
+ const buildNumberStr = terminalVersionMatch[1];
284
+ const buildNumber = parseInt(buildNumberStr, 10);
285
+ if (!isNaN(buildNumber) && buildNumber > 0 && buildNumber < 766) {
286
+ setShowTerminalUpgradeModal(true);
287
+ }
288
+ }
289
+ }
290
+ }
291
+ });
276
292
  (0, import_react.useMemo)(() => {
277
293
  openScan((data) => {
278
294
  handleScan(data);
@@ -334,6 +350,7 @@ var TicketBooking = () => {
334
350
  );
335
351
  _setShopOpeningHours();
336
352
  _setIntervalTime(true);
353
+ checkTerminalVersion();
337
354
  (_d2 = interaction == null ? void 0 : interaction.utils) == null ? void 0 : _d2.mountFunction(
338
355
  "bookingTicket",
339
356
  "clearAllCart",
@@ -352,8 +369,6 @@ var TicketBooking = () => {
352
369
  "booking",
353
370
  "voidBooking",
354
371
  (orderId) => {
355
- (0, import_serve.voidAppointment)(orderId);
356
- enableAllScanListeners();
357
372
  }
358
373
  );
359
374
  return () => {
@@ -387,6 +402,8 @@ var TicketBooking = () => {
387
402
  intervalSetTime: isInterval
388
403
  });
389
404
  };
405
+ (0, import_react.useEffect)(() => {
406
+ }, []);
390
407
  const getDataFromHost = () => {
391
408
  try {
392
409
  const is_price_include_tax = getData("is_price_include_tax");
@@ -1133,6 +1150,18 @@ var TicketBooking = () => {
1133
1150
  currentDate,
1134
1151
  onBookingClick: handleBookingClick
1135
1152
  }
1153
+ ), /* @__PURE__ */ import_react.default.createElement(
1154
+ import_materials.PisellModal.Information,
1155
+ {
1156
+ open: showTerminalUpgradeModal,
1157
+ title: import_utils.locales.getText("pisell2.ticket-booking.terminal-upgrade-title"),
1158
+ describe: import_utils.locales.getText("pisell2.ticket-booking.terminal-upgrade-description"),
1159
+ okText: import_utils.locales.getText("pisell2.ticket-booking.terminal-upgrade-ok"),
1160
+ cancelText: import_utils.locales.getText("pisell2.ticket-booking.terminal-upgrade-cancel"),
1161
+ closable: true,
1162
+ onOk: () => setShowTerminalUpgradeModal(false),
1163
+ onCancel: () => setShowTerminalUpgradeModal(false)
1164
+ }
1136
1165
  ));
1137
1166
  };
1138
1167
  var ticketBooking_default = TicketBooking;
@@ -57,6 +57,10 @@ declare const _default: {
57
57
  'pisell2.product.card.minute': (val: number) => string;
58
58
  'pisell2.ticket-booking.reload': string;
59
59
  'pisell2.text.scan-global-failed': string;
60
+ 'pisell2.ticket-booking.terminal-upgrade-title': string;
61
+ 'pisell2.ticket-booking.terminal-upgrade-description': string;
62
+ 'pisell2.ticket-booking.terminal-upgrade-ok': string;
63
+ 'pisell2.ticket-booking.terminal-upgrade-cancel': string;
60
64
  };
61
65
  'zh-CN': {
62
66
  'pisell2.ticket-booking.info': string;
@@ -116,6 +120,10 @@ declare const _default: {
116
120
  'pisell2.product.card.minute': (val: number) => string;
117
121
  'pisell2.ticket-booking.reload': string;
118
122
  'pisell2.text.scan-global-failed': string;
123
+ 'pisell2.ticket-booking.terminal-upgrade-title': string;
124
+ 'pisell2.ticket-booking.terminal-upgrade-description': string;
125
+ 'pisell2.ticket-booking.terminal-upgrade-ok': string;
126
+ 'pisell2.ticket-booking.terminal-upgrade-cancel': string;
119
127
  };
120
128
  'zh-HK': {
121
129
  'pisell2.ticket-booking.info': string;
@@ -175,6 +183,10 @@ declare const _default: {
175
183
  'pisell2.product.card.minute': (val: number) => string;
176
184
  'pisell2.ticket-booking.reload': string;
177
185
  'pisell2.text.scan-global-failed': string;
186
+ 'pisell2.ticket-booking.terminal-upgrade-title': string;
187
+ 'pisell2.ticket-booking.terminal-upgrade-description': string;
188
+ 'pisell2.ticket-booking.terminal-upgrade-ok': string;
189
+ 'pisell2.ticket-booking.terminal-upgrade-cancel': string;
178
190
  };
179
191
  };
180
192
  export default _default;
@@ -83,7 +83,11 @@ var locales_default = {
83
83
  "pisell2.product.card.day.event": (val) => `${val > 1 ? " events" : " event"}`,
84
84
  "pisell2.product.card.minute": (val) => `${val > 1 ? " minutes" : " minute"}`,
85
85
  "pisell2.ticket-booking.reload": "Reload",
86
- "pisell2.text.scan-global-failed": "No matching results"
86
+ "pisell2.text.scan-global-failed": "No matching results",
87
+ "pisell2.ticket-booking.terminal-upgrade-title": "Terminal Version Reminder",
88
+ "pisell2.ticket-booking.terminal-upgrade-description": "Your Terminal version is outdated. Please upgrade Terminal to use all features.",
89
+ "pisell2.ticket-booking.terminal-upgrade-ok": "I understand",
90
+ "pisell2.ticket-booking.terminal-upgrade-cancel": "Cancel"
87
91
  },
88
92
  "zh-CN": {
89
93
  "pisell2.ticket-booking.info": "信息",
@@ -145,7 +149,11 @@ var locales_default = {
145
149
  "pisell2.product.card.day.event": (val) => "个活动",
146
150
  "pisell2.product.card.minute": (val) => "分钟",
147
151
  "pisell2.ticket-booking.reload": "重新加载",
148
- "pisell2.text.scan-global-failed": "无搜索结果"
152
+ "pisell2.text.scan-global-failed": "无搜索结果",
153
+ "pisell2.ticket-booking.terminal-upgrade-title": "Terminal版本提醒",
154
+ "pisell2.ticket-booking.terminal-upgrade-description": "检测到您的Terminal版本较低,请升级Terminal以使用完整功能",
155
+ "pisell2.ticket-booking.terminal-upgrade-ok": "我知道了",
156
+ "pisell2.ticket-booking.terminal-upgrade-cancel": "取消"
149
157
  },
150
158
  "zh-HK": {
151
159
  "pisell2.ticket-booking.info": "資訊",
@@ -207,6 +215,10 @@ var locales_default = {
207
215
  "pisell2.product.card.day.event": (val) => "个活動",
208
216
  "pisell2.product.card.minute": (val) => "分鐘",
209
217
  "pisell2.ticket-booking.reload": "重新載入",
210
- "pisell2.text.scan-global-failed": "無搜索結果"
218
+ "pisell2.text.scan-global-failed": "無搜索結果",
219
+ "pisell2.ticket-booking.terminal-upgrade-title": "Terminal版本提醒",
220
+ "pisell2.ticket-booking.terminal-upgrade-description": "檢測到您的Terminal版本較低,請升級Terminal以使用完整功能",
221
+ "pisell2.ticket-booking.terminal-upgrade-ok": "我知道了",
222
+ "pisell2.ticket-booking.terminal-upgrade-cancel": "取消"
211
223
  }
212
224
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pisell/private-materials",
3
- "version": "6.4.5",
3
+ "version": "6.4.6",
4
4
  "scripts": {
5
5
  "dev": "father dev",
6
6
  "build": "father build",