@pisell/private-materials 6.4.42 → 6.4.43

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 (188) 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/index.js +1 -1
  5. package/build/lowcode/meta.js +1 -1
  6. package/build/lowcode/preview.js +146 -146
  7. package/build/lowcode/render/default/view.css +1 -1
  8. package/build/lowcode/render/default/view.js +8 -8
  9. package/build/lowcode/view.css +1 -1
  10. package/build/lowcode/view.js +8 -8
  11. package/es/components/booking/components/actionButtons/index.js +37 -42
  12. package/es/components/booking/components/actionButtons/index.less +0 -28
  13. package/es/components/booking/components/footer/amount.d.ts +3 -3
  14. package/es/components/booking/components/footer/amount.js +13 -2
  15. package/es/components/booking/components/footer/index.js +168 -68
  16. package/es/components/booking/components/footer/utils.js +62 -33
  17. package/es/components/booking/info/model.js +5 -0
  18. package/es/components/booking/info/service/addService/index.js +2 -1
  19. package/es/components/booking/info2/index.js +42 -2
  20. package/es/components/booking/info2/service/addService/index.js +2 -1
  21. package/es/components/booking/info2/service/editService/index.js +12 -4
  22. package/es/components/checkout/PaymentModal.d.ts +2 -0
  23. package/es/components/checkout/PaymentModal.js +395 -240
  24. package/es/components/checkout/components/AdditionalModule/index.less +1 -1
  25. package/es/components/checkout/components/AmountSummary/index.js +161 -54
  26. package/es/components/checkout/components/CashPaymentModule/index.d.ts +5 -3
  27. package/es/components/checkout/components/CashPaymentModule/index.js +114 -137
  28. package/es/components/checkout/components/CashPaymentModule/index.less +200 -176
  29. package/es/components/checkout/components/PaymentDetailModal/index.js +2 -2
  30. package/es/components/checkout/components/PaymentOptionsModule/PaymentMethodItem.d.ts +29 -0
  31. package/es/components/checkout/components/PaymentOptionsModule/PaymentMethodItem.js +210 -0
  32. package/es/components/checkout/components/PaymentOptionsModule/index.d.ts +2 -4
  33. package/es/components/checkout/components/PaymentOptionsModule/index.js +12 -114
  34. package/es/components/checkout/components/PaymentOptionsModule/index.less +29 -0
  35. package/es/components/checkout/components/SavePayLaterHandler/index.js +1 -1
  36. package/es/components/checkout/components/SearchAndClientModule/index.js +40 -39
  37. package/es/components/checkout/components/WalletPassModule/index.js +3 -2
  38. package/es/components/checkout/components/WalletPassModule/utils.js +6 -1
  39. package/es/components/checkout/hooks/useWalletPass.d.ts +1 -1
  40. package/es/components/checkout/hooks/useWalletPass.js +2 -0
  41. package/es/components/checkout/index.less +1 -1
  42. package/es/components/checkout/locales.d.ts +33 -0
  43. package/es/components/checkout/locales.js +39 -3
  44. package/es/components/checkout/types.d.ts +1 -0
  45. package/es/components/eftposPay/hooks.d.ts +1 -1
  46. package/es/components/eftposPay/store/index.d.ts +2 -2
  47. package/es/components/shoppingCart/components/Cart/Product.js +143 -71
  48. package/es/components/shoppingCart/components/Cart/index.js +1 -1
  49. package/es/components/shoppingCart/components/Cart/index.less +31 -0
  50. package/es/components/shoppingCart/locales.d.ts +3 -0
  51. package/es/components/shoppingCart/locales.js +12 -3
  52. package/es/components/ticketBooking/utils/index.js +2 -1
  53. package/es/pro/pisellPriceKeyboardPopover/PisellPriceKeyboardPopover.js +1 -1
  54. package/es/pro/pisellSimplePriceKeyboardPopover/PisellPriceKeyboardPopover.d.ts +5 -0
  55. package/es/pro/pisellSimplePriceKeyboardPopover/PisellPriceKeyboardPopover.js +148 -0
  56. package/es/pro/pisellSimplePriceKeyboardPopover/PisellPriceKeyboardPopover.less +23 -0
  57. package/es/pro/pisellSimplePriceKeyboardPopover/index.d.ts +2 -0
  58. package/es/pro/pisellSimplePriceKeyboardPopover/index.js +1 -0
  59. package/es/pro/pisellSimplePriceKeyboardPopover/types.d.ts +33 -0
  60. package/es/pro/pisellSimplePriceKeyboardPopover/types.js +1 -0
  61. package/es/pro/priceKeyboard/components/cashKeyboard/CashKeyboardIntact.d.ts +4 -0
  62. package/es/pro/priceKeyboard/components/cashKeyboard/CashKeyboardIntact.js +310 -0
  63. package/es/pro/priceKeyboard/components/cashKeyboard/CashKeyboardSimple.d.ts +13 -0
  64. package/es/pro/priceKeyboard/components/cashKeyboard/CashKeyboardSimple.js +349 -0
  65. package/es/pro/priceKeyboard/components/cashKeyboard/index.d.ts +11 -0
  66. package/es/pro/priceKeyboard/components/cashKeyboard/index.js +49 -0
  67. package/es/pro/priceKeyboard/components/cashKeyboard/index.less +103 -0
  68. package/es/pro/priceKeyboard/components/cashKeyboard/locales.d.ts +39 -0
  69. package/es/pro/priceKeyboard/components/cashKeyboard/locales.js +41 -0
  70. package/es/pro/priceKeyboard/components/cashKeyboard/types.d.ts +97 -0
  71. package/es/pro/priceKeyboard/components/cashKeyboard/types.js +1 -0
  72. package/es/pro/priceKeyboard/components/discountKeyboard/index.d.ts +22 -0
  73. package/es/pro/priceKeyboard/components/discountKeyboard/index.js +442 -0
  74. package/es/pro/priceKeyboard/components/discountKeyboard/index.less +47 -0
  75. package/es/pro/priceKeyboard/components/discountKeyboard/locales.d.ts +42 -0
  76. package/es/pro/priceKeyboard/components/discountKeyboard/locales.js +44 -0
  77. package/es/pro/priceKeyboard/components/discountKeyboard/types.d.ts +17 -0
  78. package/es/pro/priceKeyboard/components/discountKeyboard/types.js +1 -0
  79. package/es/pro/priceKeyboard/components/paymentKeyboard/index.d.ts +11 -0
  80. package/es/pro/priceKeyboard/components/paymentKeyboard/index.js +444 -0
  81. package/es/pro/priceKeyboard/components/paymentKeyboard/index.less +64 -0
  82. package/es/pro/priceKeyboard/components/paymentKeyboard/locales.d.ts +45 -0
  83. package/es/pro/priceKeyboard/components/paymentKeyboard/locales.js +47 -0
  84. package/es/pro/priceKeyboard/components/paymentKeyboard/types.d.ts +39 -0
  85. package/es/pro/priceKeyboard/components/paymentKeyboard/types.js +1 -0
  86. package/es/pro/priceKeyboard/components/shortcuts/index.d.ts +17 -0
  87. package/es/pro/priceKeyboard/components/shortcuts/index.js +47 -0
  88. package/es/pro/priceKeyboard/components/shortcuts/index.less +39 -0
  89. package/es/pro/priceKeyboard/hooks/keyActions.d.ts +28 -0
  90. package/es/pro/priceKeyboard/hooks/keyActions.js +252 -0
  91. package/es/pro/priceKeyboard/hooks/rightItems.d.ts +27 -0
  92. package/es/pro/priceKeyboard/hooks/rightItems.js +50 -0
  93. package/es/pro/priceKeyboard/index.d.ts +3 -0
  94. package/es/pro/priceKeyboard/index.js +3 -0
  95. package/es/pro/priceKeyboard/index.less +215 -0
  96. package/es/pro/priceKeyboard/utils.d.ts +31 -0
  97. package/es/pro/priceKeyboard/utils.js +51 -0
  98. package/es/pro/skuDetailModal/index.js +19 -16
  99. package/lib/components/booking/components/actionButtons/index.js +31 -28
  100. package/lib/components/booking/components/actionButtons/index.less +0 -28
  101. package/lib/components/booking/components/footer/amount.d.ts +3 -3
  102. package/lib/components/booking/components/footer/amount.js +10 -4
  103. package/lib/components/booking/components/footer/index.js +107 -40
  104. package/lib/components/booking/components/footer/utils.js +35 -7
  105. package/lib/components/booking/info/model.js +3 -0
  106. package/lib/components/booking/info/service/addService/index.js +2 -1
  107. package/lib/components/booking/info2/index.js +18 -1
  108. package/lib/components/booking/info2/service/addService/index.js +2 -1
  109. package/lib/components/booking/info2/service/editService/index.js +12 -4
  110. package/lib/components/checkout/PaymentModal.d.ts +2 -0
  111. package/lib/components/checkout/PaymentModal.js +152 -73
  112. package/lib/components/checkout/components/AdditionalModule/index.less +1 -1
  113. package/lib/components/checkout/components/AmountSummary/index.js +114 -40
  114. package/lib/components/checkout/components/CashPaymentModule/index.d.ts +5 -3
  115. package/lib/components/checkout/components/CashPaymentModule/index.js +103 -140
  116. package/lib/components/checkout/components/CashPaymentModule/index.less +200 -176
  117. package/lib/components/checkout/components/PaymentDetailModal/index.js +2 -2
  118. package/lib/components/checkout/components/PaymentOptionsModule/PaymentMethodItem.d.ts +29 -0
  119. package/lib/components/checkout/components/PaymentOptionsModule/PaymentMethodItem.js +172 -0
  120. package/lib/components/checkout/components/PaymentOptionsModule/index.d.ts +2 -4
  121. package/lib/components/checkout/components/PaymentOptionsModule/index.js +11 -123
  122. package/lib/components/checkout/components/PaymentOptionsModule/index.less +29 -0
  123. package/lib/components/checkout/components/SavePayLaterHandler/index.js +1 -1
  124. package/lib/components/checkout/components/SearchAndClientModule/index.js +3 -29
  125. package/lib/components/checkout/components/WalletPassModule/index.js +3 -2
  126. package/lib/components/checkout/components/WalletPassModule/utils.js +4 -1
  127. package/lib/components/checkout/hooks/useWalletPass.d.ts +1 -1
  128. package/lib/components/checkout/hooks/useWalletPass.js +2 -0
  129. package/lib/components/checkout/index.less +1 -1
  130. package/lib/components/checkout/locales.d.ts +33 -0
  131. package/lib/components/checkout/locales.js +39 -3
  132. package/lib/components/checkout/types.d.ts +1 -0
  133. package/lib/components/eftposPay/hooks.d.ts +1 -1
  134. package/lib/components/eftposPay/store/index.d.ts +2 -2
  135. package/lib/components/shoppingCart/components/Cart/Product.js +111 -51
  136. package/lib/components/shoppingCart/components/Cart/index.js +1 -1
  137. package/lib/components/shoppingCart/components/Cart/index.less +31 -0
  138. package/lib/components/shoppingCart/locales.d.ts +3 -0
  139. package/lib/components/shoppingCart/locales.js +6 -3
  140. package/lib/components/ticketBooking/index.js +5 -1
  141. package/lib/components/ticketBooking/utils/index.js +2 -1
  142. package/lib/pro/pisellPriceKeyboardPopover/PisellPriceKeyboardPopover.js +2 -2
  143. package/lib/pro/pisellSimplePriceKeyboardPopover/PisellPriceKeyboardPopover.d.ts +5 -0
  144. package/lib/pro/pisellSimplePriceKeyboardPopover/PisellPriceKeyboardPopover.js +144 -0
  145. package/lib/pro/pisellSimplePriceKeyboardPopover/PisellPriceKeyboardPopover.less +23 -0
  146. package/lib/pro/pisellSimplePriceKeyboardPopover/index.d.ts +2 -0
  147. package/lib/pro/pisellSimplePriceKeyboardPopover/index.js +35 -0
  148. package/lib/pro/pisellSimplePriceKeyboardPopover/types.d.ts +33 -0
  149. package/lib/pro/pisellSimplePriceKeyboardPopover/types.js +17 -0
  150. package/lib/pro/priceKeyboard/components/cashKeyboard/CashKeyboardIntact.d.ts +4 -0
  151. package/lib/pro/priceKeyboard/components/cashKeyboard/CashKeyboardIntact.js +332 -0
  152. package/lib/pro/priceKeyboard/components/cashKeyboard/CashKeyboardSimple.d.ts +13 -0
  153. package/lib/pro/priceKeyboard/components/cashKeyboard/CashKeyboardSimple.js +399 -0
  154. package/lib/pro/priceKeyboard/components/cashKeyboard/index.d.ts +11 -0
  155. package/lib/pro/priceKeyboard/components/cashKeyboard/index.js +76 -0
  156. package/lib/pro/priceKeyboard/components/cashKeyboard/index.less +103 -0
  157. package/lib/pro/priceKeyboard/components/cashKeyboard/locales.d.ts +39 -0
  158. package/lib/pro/priceKeyboard/components/cashKeyboard/locales.js +65 -0
  159. package/lib/pro/priceKeyboard/components/cashKeyboard/types.d.ts +97 -0
  160. package/lib/pro/priceKeyboard/components/cashKeyboard/types.js +17 -0
  161. package/lib/pro/priceKeyboard/components/discountKeyboard/index.d.ts +22 -0
  162. package/lib/pro/priceKeyboard/components/discountKeyboard/index.js +485 -0
  163. package/lib/pro/priceKeyboard/components/discountKeyboard/index.less +47 -0
  164. package/lib/pro/priceKeyboard/components/discountKeyboard/locales.d.ts +42 -0
  165. package/lib/pro/priceKeyboard/components/discountKeyboard/locales.js +68 -0
  166. package/lib/pro/priceKeyboard/components/discountKeyboard/types.d.ts +17 -0
  167. package/lib/pro/priceKeyboard/components/discountKeyboard/types.js +17 -0
  168. package/lib/pro/priceKeyboard/components/paymentKeyboard/index.d.ts +11 -0
  169. package/lib/pro/priceKeyboard/components/paymentKeyboard/index.js +488 -0
  170. package/lib/pro/priceKeyboard/components/paymentKeyboard/index.less +64 -0
  171. package/lib/pro/priceKeyboard/components/paymentKeyboard/locales.d.ts +45 -0
  172. package/lib/pro/priceKeyboard/components/paymentKeyboard/locales.js +71 -0
  173. package/lib/pro/priceKeyboard/components/paymentKeyboard/types.d.ts +39 -0
  174. package/lib/pro/priceKeyboard/components/paymentKeyboard/types.js +17 -0
  175. package/lib/pro/priceKeyboard/components/shortcuts/index.d.ts +17 -0
  176. package/lib/pro/priceKeyboard/components/shortcuts/index.js +79 -0
  177. package/lib/pro/priceKeyboard/components/shortcuts/index.less +39 -0
  178. package/lib/pro/priceKeyboard/hooks/keyActions.d.ts +28 -0
  179. package/lib/pro/priceKeyboard/hooks/keyActions.js +176 -0
  180. package/lib/pro/priceKeyboard/hooks/rightItems.d.ts +27 -0
  181. package/lib/pro/priceKeyboard/hooks/rightItems.js +81 -0
  182. package/lib/pro/priceKeyboard/index.d.ts +3 -0
  183. package/lib/pro/priceKeyboard/index.js +45 -0
  184. package/lib/pro/priceKeyboard/index.less +215 -0
  185. package/lib/pro/priceKeyboard/utils.d.ts +31 -0
  186. package/lib/pro/priceKeyboard/utils.js +75 -0
  187. package/lib/pro/skuDetailModal/index.js +18 -22
  188. package/package.json +4 -4
@@ -51,6 +51,7 @@ var locales_default = {
51
51
  "balance.due": "Balance Due",
52
52
  "deposit.due": "Deposit Due",
53
53
  "partial.paid": "Partial Paid",
54
+ "deposit.partial.paid": "Deposit Paid",
54
55
  "split.payment": "Pay\nPartially",
55
56
  // Cash Payment
56
57
  "cash": "Cash",
@@ -114,6 +115,7 @@ var locales_default = {
114
115
  "wallet-pass-module-disabled-modal-title": "Unable to use",
115
116
  "wallet-pass-module-disabled-modal-empty": "No unusable cards",
116
117
  "wallet-pass-module-discount-partially-paid": "Promotion cannot be changed on partially paid orders or used wallet",
118
+ "wallet-pass-module-discount-order-free": "The order total is free, can not use wallet",
117
119
  // Additional Module
118
120
  "additional.options": "Additional Options",
119
121
  "add.tip": "Add Tip",
@@ -208,7 +210,17 @@ var locales_default = {
208
210
  "pisell2.checkout.order-sync-failed": "Order sync failed, please check your network",
209
211
  "pisell2.checkout.sync-retry-hint": "Network error, please click the retry button to resync the order",
210
212
  "pisell2.checkout.tips": "Tips",
211
- "retry": "Retry"
213
+ "retry": "Retry",
214
+ // Cash Payment Module
215
+ "cash-payment-title": "Cash Payment",
216
+ "cash-payment-balance-due": "Balance Due",
217
+ "cash-payment-cash-received": "Cash Received",
218
+ "cash-payment-change-due": "Change Due",
219
+ "cash-payment-rounding": "Rounding",
220
+ "cash-payment-other": "Other",
221
+ "cash-payment-reset": "Reset",
222
+ "cash-payment-pay": "Pay",
223
+ "cash-payment-amount-cannot-be-zero": "The amount cannot be 0"
212
224
  },
213
225
  "zh-CN": {
214
226
  // Order and Payment
@@ -238,6 +250,7 @@ var locales_default = {
238
250
  "balance.due": "应付金额",
239
251
  "deposit.due": "定金待支付金额",
240
252
  "partial.paid": "部分支付",
253
+ "deposit.partial.paid": "定金部分支付",
241
254
  "split.payment": "部分付款",
242
255
  // Cash Payment
243
256
  "cash": "现金",
@@ -301,6 +314,7 @@ var locales_default = {
301
314
  "wallet-pass-module-disabled-modal-title": "无法使用的卡券",
302
315
  "wallet-pass-module-disabled-modal-empty": "暂无不可用卡券",
303
316
  "wallet-pass-module-discount-partially-paid": "部分付款或已使用钱包的订单不可修改促销",
317
+ "wallet-pass-module-discount-order-free": "订单金额为0,不可使用折扣卡或商品券",
304
318
  // Additional Module
305
319
  "additional.options": "附加选项",
306
320
  "add.tip": "添加小费",
@@ -399,7 +413,17 @@ var locales_default = {
399
413
  "pisell2.checkout.order-sync-failed": "订单同步失败,请检查网络",
400
414
  "pisell2.checkout.sync-retry-hint": "网络异常,请点击重试按钮重新同步订单",
401
415
  "pisell2.checkout.tips": "提示",
402
- "retry": "重试"
416
+ "retry": "重试",
417
+ // 现金支付模块
418
+ "cash-payment-title": "现金支付",
419
+ "cash-payment-balance-due": "应付金额",
420
+ "cash-payment-cash-received": "实收金额",
421
+ "cash-payment-change-due": "找零金额",
422
+ "cash-payment-rounding": "抹零",
423
+ "cash-payment-other": "其他",
424
+ "cash-payment-reset": "重置",
425
+ "cash-payment-pay": "支付",
426
+ "cash-payment-amount-cannot-be-zero": "金额不能为0"
403
427
  },
404
428
  "zh-HK": {
405
429
  // Order and Payment
@@ -429,6 +453,7 @@ var locales_default = {
429
453
  "balance.due": "應付金額",
430
454
  "deposit.due": "定金待支付金額",
431
455
  "partial.paid": "部分支付",
456
+ "deposit.partial.paid": "定金部分支付",
432
457
  "split.payment": "部分付款",
433
458
  // Cash Payment
434
459
  "cash": "現金",
@@ -499,6 +524,7 @@ var locales_default = {
499
524
  "wallet-pass-module-disabled-modal-title": "無法使用的卡券",
500
525
  "wallet-pass-module-disabled-modal-empty": "暫無不可用卡券",
501
526
  "wallet-pass-module-discount-partially-paid": "部分付款或已使用錢包的訂單不可修改促銷",
527
+ "wallet-pass-module-discount-order-free": "訂單金額為0,不可使用折扣卡或商品券",
502
528
  // search section
503
529
  "pisell2.checkout.search-section.placeholder": "錢包碼 / 短碼",
504
530
  // discount formatting
@@ -590,6 +616,16 @@ var locales_default = {
590
616
  "pisell2.checkout.order-sync-failed": "訂單同步失敗,請檢查網絡",
591
617
  "pisell2.checkout.sync-retry-hint": "網絡異常,請點擊重試按鈕重新同步訂單",
592
618
  "pisell2.checkout.tips": "提示",
593
- "retry": "重試"
619
+ "retry": "重試",
620
+ // 現金支付模組
621
+ "cash-payment-title": "現金支付",
622
+ "cash-payment-balance-due": "應付金額",
623
+ "cash-payment-cash-received": "實收金額",
624
+ "cash-payment-change-due": "找零金額",
625
+ "cash-payment-rounding": "抹零",
626
+ "cash-payment-other": "其他",
627
+ "cash-payment-reset": "重置",
628
+ "cash-payment-pay": "支付",
629
+ "cash-payment-amount-cannot-be-zero": "金額不能為0"
594
630
  }
595
631
  };
@@ -121,6 +121,7 @@ export interface PaymentMethod {
121
121
  type: string;
122
122
  fixed?: number;
123
123
  percentage?: number;
124
+ totalAmount?: string;
124
125
  }
125
126
  export interface PaymentMethodSelection {
126
127
  method: PaymentMethod;
@@ -19,7 +19,7 @@ export declare const useStoreRef: <T extends {
19
19
  readonly netRef: React.MutableRefObject<boolean | undefined>;
20
20
  readonly symbolRef: React.MutableRefObject<string>;
21
21
  readonly amountRef: React.MutableRefObject<string | number>;
22
- readonly eftposRef: React.MutableRefObject<"stripe" | "payo" | "tyro" | "windcave" | "linkly">;
22
+ readonly eftposRef: React.MutableRefObject<"stripe" | "tyro" | "windcave" | "payo" | "linkly">;
23
23
  readonly clientRef: React.MutableRefObject<ClientEnum>;
24
24
  readonly dataRef: React.MutableRefObject<import("./store").State>;
25
25
  };
@@ -297,8 +297,8 @@ export declare const backUpFree: (payload: Partial<State>) => {
297
297
  amount?: string | number | undefined;
298
298
  mode?: "pay" | "refund" | "fullPay" | "query" | undefined;
299
299
  order_id?: string | number | undefined;
300
- eftpos?: "stripe" | "payo" | "tyro" | "windcave" | "linkly" | undefined;
301
- action?: "pay" | "amount" | "deviceList" | undefined;
300
+ eftpos?: "stripe" | "tyro" | "windcave" | "payo" | "linkly" | undefined;
301
+ action?: "amount" | "pay" | "deviceList" | undefined;
302
302
  key?: number | undefined;
303
303
  step?: number | undefined;
304
304
  title?: string | undefined;
@@ -40,6 +40,9 @@ var import_useAddService = __toESM(require("../../hooks/useAddService"));
40
40
  var import_ahooks = require("ahooks");
41
41
  var import_utils = require("../../../booking/info/service2/utils");
42
42
  var import_pisellNumberSelector = __toESM(require("../../../../pro/pisellNumberSelector"));
43
+ var import_utils2 = require("@pisell/utils");
44
+ var import_utils3 = require("@pisell/utils");
45
+ var import_decimal = __toESM(require("decimal.js"));
43
46
  var Product = (props) => {
44
47
  const { id, lists, isAdd = true } = props;
45
48
  const { state, onAction, onChange } = (0, import_useContext.useContext)();
@@ -58,12 +61,17 @@ var Product = (props) => {
58
61
  productCardStyleConfig = {}
59
62
  } = state;
60
63
  const clearCart = (0, import_useClearCart.default)(id);
64
+ const [isEditExpanded, setIsEditExpanded] = (0, import_react.useState)(true);
61
65
  const handleChange = (0, import_ahooks.useMemoizedFn)(
62
66
  (item, type, other) => {
63
67
  if (disabledEdit && !(other == null ? void 0 : other.disabled)) return;
64
68
  onChange(item, type, other);
65
69
  }
66
70
  );
71
+ const toggleEditExpanded = (0, import_ahooks.useMemoizedFn)((e) => {
72
+ e == null ? void 0 : e.preventDefault();
73
+ setIsEditExpanded(!isEditExpanded);
74
+ });
67
75
  const productParams = (0, import_react.useMemo)(() => {
68
76
  return {
69
77
  isShowNote,
@@ -98,59 +106,111 @@ var Product = (props) => {
98
106
  };
99
107
  }
100
108
  );
101
- return (0, import_react.useMemo)(() => {
102
- console.log("render cart");
103
- return /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-lowcode__shopping-cart-content" }, clearCart, lists == null ? void 0 : lists.map((item) => {
104
- let Comp = import_materials.ProductCard;
105
- let isRetail;
106
- if (state.scenario === "booking2") {
107
- isRetail = (0, import_utils.isNormalProductByDurationSchedule)(item == null ? void 0 : item._origin);
108
- Comp = import_materials.ProductCard.V2;
109
- }
110
- return /* @__PURE__ */ import_react.default.createElement(
111
- Comp,
112
- {
113
- type: isRetail ? "a2" : "a5",
114
- rightActions: [
115
- {
116
- key: "update_number",
117
- text: /* @__PURE__ */ import_react.default.createElement(
118
- import_pisellNumberSelector.default,
119
- {
120
- enablePriceAdjust: true,
121
- min: 1,
122
- className: "pisell-sku-card__pisell-number-setter",
123
- value: item == null ? void 0 : item.num,
124
- onChange: (value) => {
125
- if (value < 1) {
126
- handleChange(item, "num", { num: 1 });
127
- } else {
128
- handleChange(item, "num", { num: value });
129
- }
109
+ const editItems = (0, import_react.useMemo)(
110
+ () => (lists || []).filter((item) => {
111
+ var _a;
112
+ return (_a = item == null ? void 0 : item._origin) == null ? void 0 : _a.edit;
113
+ }),
114
+ [lists]
115
+ );
116
+ const normalItems = (0, import_react.useMemo)(
117
+ () => (lists || []).filter((item) => {
118
+ var _a;
119
+ return !((_a = item == null ? void 0 : item._origin) == null ? void 0 : _a.edit);
120
+ }),
121
+ [lists]
122
+ );
123
+ const editTotal = (0, import_react.useMemo)(() => {
124
+ const total = editItems.reduce((total2, item) => {
125
+ const itemTotal = new import_decimal.default((item == null ? void 0 : item.total) || 0);
126
+ return total2.add(itemTotal);
127
+ }, new import_decimal.default(0));
128
+ return (0, import_utils2.formatAmount)(total.toNumber(), 2, (state == null ? void 0 : state.amountSymbol) || "$");
129
+ }, [editItems]);
130
+ const renderProductItem = (0, import_ahooks.useMemoizedFn)((item) => {
131
+ let Comp = import_materials.ProductCard;
132
+ let isRetail;
133
+ if (state.scenario === "booking2") {
134
+ isRetail = (0, import_utils.isNormalProductByDurationSchedule)(item == null ? void 0 : item._origin);
135
+ Comp = import_materials.ProductCard.V2;
136
+ }
137
+ return /* @__PURE__ */ import_react.default.createElement(
138
+ Comp,
139
+ {
140
+ type: isRetail ? "a2" : "a5",
141
+ rightActions: [
142
+ {
143
+ key: "update_number",
144
+ text: /* @__PURE__ */ import_react.default.createElement(
145
+ import_pisellNumberSelector.default,
146
+ {
147
+ enablePriceAdjust: true,
148
+ min: 1,
149
+ className: "pisell-sku-card__pisell-number-setter",
150
+ value: item == null ? void 0 : item.num,
151
+ onChange: (value) => {
152
+ if (value < 1) {
153
+ handleChange(item, "num", { num: 1 });
154
+ } else {
155
+ handleChange(item, "num", { num: value });
130
156
  }
131
157
  }
132
- ),
133
- color: "#667085"
134
- }
135
- ],
136
- escapeDom: ".pisell-number-selector-popover",
137
- key: item._id,
138
- dataSource: item,
139
- onAction: (e) => onAction == null ? void 0 : onAction(e),
140
- onDelete: (e) => handleChange(e, "delete", item),
141
- onNote: (e) => handleChange(e, "note", { note: e.note }),
142
- onLike: (e) => handleChange(e, "like", { like_status: e.like_status }),
143
- onEditProduct: (e) => handleChange == null ? void 0 : handleChange(e, "edit_product"),
144
- onCard: (e) => handleChange == null ? void 0 : handleChange(e, "view"),
145
- onChangeResource: (e) => handleChange(item, "change_resource", e),
146
- onChangeHolder: (e) => handleChange(item, "change_holder", e),
147
- onAddHolder: (e) => handleChange(item, "add_holder", e),
148
- ...productParams,
149
- ...getProductCardStyleProps(isRetail ? "retail" : "appointment"),
150
- scenario: state.scenario
158
+ }
159
+ ),
160
+ color: "#667085"
161
+ }
162
+ ],
163
+ escapeDom: ".pisell-number-selector-popover",
164
+ key: item._id,
165
+ dataSource: item,
166
+ onAction: (e) => onAction == null ? void 0 : onAction(e),
167
+ onDelete: (e) => handleChange(e, "delete", item),
168
+ onNote: (e) => handleChange(e, "note", { note: e.note }),
169
+ onLike: (e) => handleChange(e, "like", { like_status: e.like_status }),
170
+ onEditProduct: (e) => handleChange == null ? void 0 : handleChange(e, "edit_product"),
171
+ onCard: (e) => handleChange == null ? void 0 : handleChange(e, "view"),
172
+ onChangeResource: (e) => handleChange(item, "change_resource", e),
173
+ onChangeHolder: (e) => handleChange(item, "change_holder", e),
174
+ onAddHolder: (e) => handleChange(item, "add_holder", e),
175
+ ...productParams,
176
+ ...getProductCardStyleProps(isRetail ? "retail" : "appointment"),
177
+ scenario: state.scenario
178
+ }
179
+ );
180
+ });
181
+ return (0, import_react.useMemo)(() => {
182
+ console.log("render cart", lists);
183
+ return /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-lowcode__shopping-cart-content" }, clearCart, editItems.length > 0 && /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-lowcode__shopping-cart-edit" }, /* @__PURE__ */ import_react.default.createElement(
184
+ "div",
185
+ {
186
+ className: "pisell-lowcode__shopping-cart-edit-header",
187
+ ...{ onClick: toggleEditExpanded },
188
+ style: { cursor: "pointer" }
189
+ },
190
+ /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-lowcode__shopping-cart-edit-header-title" }, import_utils3.locales.getText("pisell2.text.shopping-cart.save.items")(editItems.length)),
191
+ /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-lowcode__shopping-cart-edit-header-summary" }, editTotal),
192
+ /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-lowcode__shopping-cart-edit-header-switch" }, /* @__PURE__ */ import_react.default.createElement(
193
+ import_materials.Iconfont,
194
+ {
195
+ type: "pisell2-chevron-down",
196
+ style: {
197
+ transform: isEditExpanded ? "rotate(180deg)" : "rotate(0deg)",
198
+ transition: "transform 0.3s ease"
199
+ }
200
+ }
201
+ ))
202
+ ), /* @__PURE__ */ import_react.default.createElement(
203
+ "div",
204
+ {
205
+ className: "pisell-lowcode__shopping-cart-edit-content",
206
+ style: {
207
+ maxHeight: isEditExpanded ? "unset" : "0",
208
+ overflow: "hidden",
209
+ transition: "max-height 0.3s ease"
151
210
  }
152
- );
153
- }), !hideAddBtn && platform !== "h5" && isAdd ? (0, import_useAddService.default)(id, "more") : null);
154
- }, [clearCart, lists, productParams, hideAddBtn, isAdd, platform]);
211
+ },
212
+ editItems.map(renderProductItem)
213
+ )), normalItems.map(renderProductItem), !hideAddBtn && platform !== "h5" && isAdd ? (0, import_useAddService.default)(id, "more") : null);
214
+ }, [clearCart, editItems, normalItems, productParams, hideAddBtn, isAdd, platform, isEditExpanded]);
155
215
  };
156
216
  var Product_default = Product;
@@ -67,7 +67,7 @@ var Cart = () => {
67
67
  });
68
68
  }, [carts, platform]);
69
69
  return (0, import_react.useMemo)(() => {
70
- console.log("render cart 22222");
70
+ console.log("render cart 22222", state.prodcuts);
71
71
  return /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_classnames.default)("pisell-lowcode__shopping-cart") }, isProductList ? /* @__PURE__ */ import_react.default.createElement(import_Product.default, { id: void 0, lists: state == null ? void 0 : state.products }) : /* @__PURE__ */ import_react.default.createElement(
72
72
  import_materials.Collapse,
73
73
  {
@@ -24,6 +24,37 @@
24
24
  margin-bottom: 0;
25
25
  }
26
26
  }
27
+
28
+ .pisell-lowcode__shopping-cart-edit {
29
+ display: flex;
30
+ padding: 6px;
31
+ background: #EAECF0;
32
+ flex-direction: column;
33
+ color: black;
34
+ border-radius: 8px;
35
+ .pisell-lowcode__shopping-cart-edit-header {
36
+ display: flex;
37
+ font-size: 14px;
38
+ font-weight: 600;
39
+ .pisell-lowcode__shopping-cart-edit-header-title {
40
+ flex: 1;
41
+ }
42
+ .pisell-lowcode__shopping-cart-edit-header-summary {
43
+ margin-right: 4px;
44
+ }
45
+ // .pisell-lowcode__shopping-cart-edit-header-switch {
46
+ // font-size: 14px;
47
+ // font-weight: 400;
48
+ // line-height: 20px;
49
+ // }
50
+ }
51
+ .pisell-lowcode__shopping-cart-edit-content {
52
+ margin-top: 6px;
53
+ gap: 8px;
54
+ display: flex;
55
+ flex-direction: column;
56
+ }
57
+ }
27
58
 
28
59
  .pisell-lowcode__shopping-cart-label {
29
60
  color: var(--Base-Black, #000);
@@ -8,6 +8,7 @@ declare const _default: {
8
8
  'pisell2.text.shopping-cart.confirm': string;
9
9
  'pisell2.text.shopping-cart.cancel': string;
10
10
  'pisell2.text.shopping-cart.select.holder.modal.title': string;
11
+ 'pisell2.text.shopping-cart.save.items': (num: number) => string;
11
12
  };
12
13
  'zh-CN': {
13
14
  'pisell2.text.shopping-cart.item': (num: number) => string;
@@ -18,6 +19,7 @@ declare const _default: {
18
19
  'pisell2.text.shopping-cart.confirm': string;
19
20
  'pisell2.text.shopping-cart.cancel': string;
20
21
  'pisell2.text.shopping-cart.select.holder.modal.title': string;
22
+ 'pisell2.text.shopping-cart.save.items': (num: number) => string;
21
23
  };
22
24
  'zh-HK': {
23
25
  'pisell2.text.shopping-cart.item': (num: number) => string;
@@ -28,6 +30,7 @@ declare const _default: {
28
30
  'pisell2.text.shopping-cart.confirm': string;
29
31
  'pisell2.text.shopping-cart.cancel': string;
30
32
  'pisell2.text.shopping-cart.select.holder.modal.title': string;
33
+ 'pisell2.text.shopping-cart.save.items': (num: number) => string;
31
34
  };
32
35
  };
33
36
  export default _default;
@@ -31,7 +31,8 @@ var locales_default = {
31
31
  "pisell2.text.shopping-cart.no.selected": "No items selected",
32
32
  "pisell2.text.shopping-cart.confirm": "Confirm",
33
33
  "pisell2.text.shopping-cart.cancel": "Cancel",
34
- "pisell2.text.shopping-cart.select.holder.modal.title": "Item Assignment"
34
+ "pisell2.text.shopping-cart.select.holder.modal.title": "Item Assignment",
35
+ "pisell2.text.shopping-cart.save.items": (num) => `${num} save ${num > 1 ? "items" : "item"}`
35
36
  },
36
37
  "zh-CN": {
37
38
  "pisell2.text.shopping-cart.item": (num) => `(${num} 项)`,
@@ -41,7 +42,8 @@ var locales_default = {
41
42
  "pisell2.text.shopping-cart.no.selected": "未选择任何项目",
42
43
  "pisell2.text.shopping-cart.confirm": "确定",
43
44
  "pisell2.text.shopping-cart.cancel": "取消",
44
- "pisell2.text.shopping-cart.select.holder.modal.title": "商品分配"
45
+ "pisell2.text.shopping-cart.select.holder.modal.title": "商品分配",
46
+ "pisell2.text.shopping-cart.save.items": (num) => `${num} 个保存商品`
45
47
  },
46
48
  "zh-HK": {
47
49
  "pisell2.text.shopping-cart.item": (num) => `(${num} 項)`,
@@ -51,6 +53,7 @@ var locales_default = {
51
53
  "pisell2.text.shopping-cart.no.selected": "未選擇任何項目",
52
54
  "pisell2.text.shopping-cart.confirm": "確定",
53
55
  "pisell2.text.shopping-cart.cancel": "取消",
54
- "pisell2.text.shopping-cart.select.holder.modal.title": "商品分配"
56
+ "pisell2.text.shopping-cart.select.holder.modal.title": "商品分配",
57
+ "pisell2.text.shopping-cart.save.items": (num) => `${num} 個保存商品`
55
58
  }
56
59
  };
@@ -187,7 +187,11 @@ var initialState = {
187
187
  };
188
188
  var ticketBooking_default = (props) => {
189
189
  var _a, _b, _c, _d, _e, _f, _g, _h;
190
- const { productExtensionType, bookingConfigParams, isShowMenuBar = true } = props;
190
+ const {
191
+ productExtensionType,
192
+ bookingConfigParams,
193
+ isShowMenuBar = true
194
+ } = props;
191
195
  const storeRef = (0, import_react.useRef)(null);
192
196
  const context = (0, import_useEngineContext.default)();
193
197
  const { pisellos, pisellosAllModule } = (_a = context.appHelper) == null ? void 0 : _a.utils;
@@ -166,7 +166,8 @@ var addService = (list, addItem, state) => {
166
166
  value = list.map((item) => {
167
167
  var _a, _b, _c;
168
168
  const isGoodPassDiscountProduct = (item.discount_list || []).some((item2) => item2.type === "good_pass");
169
- if (isSameProduct(item, addItem) && !isSetCount && !isGoodPassDiscountProduct) {
169
+ const isEdit = item == null ? void 0 : item.edit;
170
+ if (isSameProduct(item, addItem) && !isSetCount && !isGoodPassDiscountProduct && !isEdit) {
170
171
  isNotSame = false;
171
172
  const quantity = (((_a = item == null ? void 0 : item._extend) == null ? void 0 : _a.quantity) || 1) + (((_b = addItem == null ? void 0 : addItem._extend) == null ? void 0 : _b.quantity) || 1);
172
173
  count = quantity;
@@ -34,7 +34,7 @@ __export(PisellPriceKeyboardPopover_exports, {
34
34
  module.exports = __toCommonJS(PisellPriceKeyboardPopover_exports);
35
35
  var import_react = __toESM(require("react"));
36
36
  var import_antd = require("antd");
37
- var import_materials = require("@pisell/materials");
37
+ var import_pisellAdjustPrice = __toESM(require("@pisell/materials/src/components/pisellAdjustPrice/index"));
38
38
  var import_utils = require("@pisell/utils");
39
39
  var import_PisellPriceKeyboardPopover = require("./PisellPriceKeyboardPopover.less");
40
40
  var PisellPriceKeyboardPopover = (0, import_react.forwardRef)(
@@ -105,7 +105,7 @@ var PisellPriceKeyboardPopover = (0, import_react.forwardRef)(
105
105
  onCancel == null ? void 0 : onCancel();
106
106
  };
107
107
  const keyboardContent = /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-price-keyboard-popover-content" }, /* @__PURE__ */ import_react.default.createElement(
108
- import_materials.PisellPriceKeyboard,
108
+ import_pisellAdjustPrice.default,
109
109
  {
110
110
  value: tempValue,
111
111
  onChange: handlePriceChange,
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import './PisellPriceKeyboardPopover.less';
3
+ import { PisellPriceKeyboardPopoverProps, PisellPriceKeyboardPopoverRef } from './types';
4
+ declare const PisellPriceKeyboardPopover: React.ForwardRefExoticComponent<PisellPriceKeyboardPopoverProps & React.RefAttributes<PisellPriceKeyboardPopoverRef>>;
5
+ export default PisellPriceKeyboardPopover;
@@ -0,0 +1,144 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/pro/pisellSimplePriceKeyboardPopover/PisellPriceKeyboardPopover.tsx
30
+ var PisellPriceKeyboardPopover_exports = {};
31
+ __export(PisellPriceKeyboardPopover_exports, {
32
+ default: () => PisellPriceKeyboardPopover_default
33
+ });
34
+ module.exports = __toCommonJS(PisellPriceKeyboardPopover_exports);
35
+ var import_react = __toESM(require("react"));
36
+ var import_antd = require("antd");
37
+ var import_materials = require("@pisell/materials");
38
+ var import_utils = require("@pisell/utils");
39
+ var import_PisellPriceKeyboardPopover = require("./PisellPriceKeyboardPopover.less");
40
+ var PisellPriceKeyboardPopover = (0, import_react.forwardRef)(
41
+ ({
42
+ children,
43
+ value = "",
44
+ onChange,
45
+ onConfirm,
46
+ onCancel,
47
+ showCurrencySymbol = true,
48
+ useThousandsSeparator = false,
49
+ selectType = "dark",
50
+ disabled = false,
51
+ overlayClassName = "",
52
+ style
53
+ }, ref) => {
54
+ const [open, setOpen] = (0, import_react.useState)(false);
55
+ const [tempValue, setTempValue] = (0, import_react.useState)("");
56
+ const [isFirstInput, setIsFirstInput] = (0, import_react.useState)(true);
57
+ (0, import_react.useImperativeHandle)(ref, () => ({
58
+ open: () => {
59
+ setOpen(true);
60
+ setTempValue(value);
61
+ setIsFirstInput(true);
62
+ },
63
+ close: () => setOpen(false),
64
+ isOpen: () => open
65
+ }));
66
+ const handleOpenChange = (visible) => {
67
+ if (disabled) return;
68
+ setOpen(visible);
69
+ if (visible) {
70
+ setTempValue(value);
71
+ setIsFirstInput(true);
72
+ } else {
73
+ onCancel == null ? void 0 : onCancel();
74
+ }
75
+ };
76
+ const handlePriceChange = (val) => {
77
+ if ((val === "" || val === 0 || val === "0") && !isFirstInput) {
78
+ setIsFirstInput(true);
79
+ setTempValue(val);
80
+ onChange == null ? void 0 : onChange(val);
81
+ return;
82
+ }
83
+ if (isFirstInput && val !== "" && val !== 0 && val !== "0") {
84
+ setIsFirstInput(false);
85
+ const currentValueStr = String(tempValue || "").replace(/[^\d.]/g, "");
86
+ const newValueStr = String(val).replace(/[^\d.]/g, "");
87
+ if (currentValueStr && currentValueStr !== "0" && newValueStr.length > currentValueStr.length && newValueStr.startsWith(currentValueStr)) {
88
+ const newInput = newValueStr.slice(currentValueStr.length);
89
+ if (newInput) {
90
+ setTempValue(newInput);
91
+ onChange == null ? void 0 : onChange(newInput);
92
+ return;
93
+ }
94
+ }
95
+ }
96
+ setTempValue(val);
97
+ onChange == null ? void 0 : onChange(val);
98
+ };
99
+ const handleConfirm = (val) => {
100
+ onConfirm == null ? void 0 : onConfirm(val);
101
+ setOpen(false);
102
+ };
103
+ const handleCancel = () => {
104
+ setOpen(false);
105
+ onCancel == null ? void 0 : onCancel();
106
+ };
107
+ const keyboardContent = /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-price-keyboard-popover-content" }, /* @__PURE__ */ import_react.default.createElement(
108
+ import_materials.PisellPriceKeyboard,
109
+ {
110
+ value: tempValue,
111
+ onChange: handlePriceChange,
112
+ onEnter: handleConfirm,
113
+ doneText: import_utils.locales.getText("pisell2.customise-item.save"),
114
+ resetText: import_utils.locales.getText("pisell2.booking.info.text.clear"),
115
+ amountProps: {
116
+ showCurrencySymbol,
117
+ useThousandsSeparator
118
+ },
119
+ selectType,
120
+ backgroundColor: "transparent"
121
+ }
122
+ ));
123
+ return /* @__PURE__ */ import_react.default.createElement(
124
+ import_antd.Popover,
125
+ {
126
+ open,
127
+ content: keyboardContent,
128
+ trigger: disabled ? [] : ["click"],
129
+ overlayInnerStyle: { padding: 0 },
130
+ destroyTooltipOnHide: true,
131
+ arrow: false,
132
+ align: {
133
+ offset: [0, 0]
134
+ },
135
+ overlayClassName: `pisell-price-keyboard-popover ${overlayClassName}`,
136
+ onOpenChange: handleOpenChange,
137
+ overlayStyle: style
138
+ },
139
+ children
140
+ );
141
+ }
142
+ );
143
+ PisellPriceKeyboardPopover.displayName = "PisellPriceKeyboardPopover";
144
+ var PisellPriceKeyboardPopover_default = PisellPriceKeyboardPopover;
@@ -0,0 +1,23 @@
1
+ .pisell-price-keyboard-popover {
2
+ &.ant-popover {
3
+ z-index: 1050;
4
+
5
+ .ant-popover-inner {
6
+ border-radius: 12px;
7
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
8
+ background: transparent;
9
+ }
10
+
11
+ .ant-popover-inner-content {
12
+ padding: 0;
13
+ background: transparent;
14
+ }
15
+ }
16
+
17
+ .pisell-price-keyboard-popover-content {
18
+ background: rgba(29, 41, 57, 0.8) !important;
19
+ border-radius: 10px;
20
+ overflow: hidden;
21
+ padding: 10px;
22
+ }
23
+ }
@@ -0,0 +1,2 @@
1
+ export { default } from './PisellPriceKeyboardPopover';
2
+ export type { PisellPriceKeyboardPopoverProps, PisellPriceKeyboardPopoverRef } from './types';