@pisell/private-materials 6.5.4 → 6.5.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 (249) 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 +160 -146
  7. package/build/lowcode/render/default/view.css +1 -1
  8. package/build/lowcode/render/default/view.js +9 -9
  9. package/build/lowcode/view.css +1 -1
  10. package/build/lowcode/view.js +9 -9
  11. package/es/components/booking/addons/model.d.ts +1 -10
  12. package/es/components/booking/components/actionButtons/index.js +37 -42
  13. package/es/components/booking/components/actionButtons/index.less +0 -28
  14. package/es/components/booking/components/footer/amount.d.ts +3 -3
  15. package/es/components/booking/components/footer/amount.js +51 -31
  16. package/es/components/booking/components/footer/index.js +177 -68
  17. package/es/components/booking/components/footer/utils.js +62 -33
  18. package/es/components/booking/forms/model.d.ts +1 -10
  19. package/es/components/booking/info/model.d.ts +1 -10
  20. package/es/components/booking/info/model.js +5 -0
  21. package/es/components/booking/info/service/addService/index.js +2 -1
  22. package/es/components/booking/info/service/addService/utils.d.ts +1 -1
  23. package/es/components/booking/info/service2/utils.d.ts +1 -1
  24. package/es/components/booking/info2/index.js +42 -2
  25. package/es/components/booking/info2/service/addService/index.js +2 -1
  26. package/es/components/booking/info2/service/addService/utils.d.ts +1 -1
  27. package/es/components/booking/info2/service/editService/index.js +12 -4
  28. package/es/components/booking/model.d.ts +1 -9
  29. package/es/components/booking/notes/model.d.ts +1 -10
  30. package/es/components/booking/payments/model.d.ts +1 -10
  31. package/es/components/booking/utils.js +10 -5
  32. package/es/components/checkout/PaymentModal.d.ts +2 -0
  33. package/es/components/checkout/PaymentModal.js +462 -263
  34. package/es/components/checkout/components/AdditionalModule/index.less +1 -1
  35. package/es/components/checkout/components/AmountSummary/index.js +176 -65
  36. package/es/components/checkout/components/AmountSummary/index.less +13 -0
  37. package/es/components/checkout/components/CashPaymentModule/index.d.ts +5 -3
  38. package/es/components/checkout/components/CashPaymentModule/index.js +110 -132
  39. package/es/components/checkout/components/CashPaymentModule/index.less +200 -176
  40. package/es/components/checkout/components/PaymentDetailModal/index.js +2 -2
  41. package/es/components/checkout/components/PaymentOptionsModule/PaymentMethodItem.d.ts +29 -0
  42. package/es/components/checkout/components/PaymentOptionsModule/PaymentMethodItem.js +214 -0
  43. package/es/components/checkout/components/PaymentOptionsModule/index.d.ts +2 -4
  44. package/es/components/checkout/components/PaymentOptionsModule/index.js +12 -114
  45. package/es/components/checkout/components/PaymentOptionsModule/index.less +23 -0
  46. package/es/components/checkout/components/PaymentResultToast/index.js +38 -8
  47. package/es/components/checkout/components/PaymentResultToast/types.d.ts +2 -0
  48. package/es/components/checkout/components/SavePayLaterHandler/index.js +1 -1
  49. package/es/components/checkout/components/SearchAndClientModule/index.js +40 -39
  50. package/es/components/checkout/components/WalletPassModule/index.js +4 -3
  51. package/es/components/checkout/components/WalletPassModule/utils.js +10 -4
  52. package/es/components/checkout/hooks/useWalletPass.js +11 -4
  53. package/es/components/checkout/index.less +1 -1
  54. package/es/components/checkout/locales.d.ts +36 -0
  55. package/es/components/checkout/locales.js +43 -4
  56. package/es/components/checkout/types.d.ts +1 -0
  57. package/es/components/eftposPay/amount.d.ts +1 -1
  58. package/es/components/eftposPay/device.d.ts +1 -1
  59. package/es/components/eftposPay/hooks.d.ts +1 -1
  60. package/es/components/eftposPay/store/index.d.ts +3 -3
  61. package/es/components/pay/toC/model.d.ts +1 -9
  62. package/es/components/schedules/model.d.ts +1 -9
  63. package/es/components/shoppingCart/components/Cart/Product.js +143 -71
  64. package/es/components/shoppingCart/components/Cart/index.js +1 -1
  65. package/es/components/shoppingCart/components/Cart/index.less +31 -0
  66. package/es/components/shoppingCart/locales.d.ts +3 -0
  67. package/es/components/shoppingCart/locales.js +12 -3
  68. package/es/components/ticketBooking/components/addServiceVariant/addService.d.ts +0 -1
  69. package/es/components/ticketBooking/components/addServiceVariant/addService.js +9 -12
  70. package/es/components/ticketBooking/components/addServiceVariant/index.d.ts +0 -1
  71. package/es/components/ticketBooking/components/menuBar/index.js +3 -1
  72. package/es/components/ticketBooking/components/menuBar/index.less +7 -0
  73. package/es/components/ticketBooking/components/ticketBooking/index.d.ts +0 -1
  74. package/es/components/ticketBooking/hooks/pisellos/useCustomer.js +7 -7
  75. package/es/components/ticketBooking/index.d.ts +0 -1
  76. package/es/components/ticketBooking/utils/index.d.ts +1 -1
  77. package/es/components/ticketBooking/utils/index.js +2 -1
  78. package/es/components/wallet/Detail/model.d.ts +1 -13
  79. package/es/components/wallet/DiscountCard/model.d.ts +1 -14
  80. package/es/components/wallet/PointCard/model.d.ts +1 -13
  81. package/es/components/wallet/RechargeableCard/model.d.ts +1 -29
  82. package/es/components/wallet/Voucher/model.d.ts +1 -13
  83. package/es/components/wallet/model.d.ts +1 -9
  84. package/es/pro/pisellPriceKeyboardPopover/PisellPriceKeyboardPopover.js +1 -1
  85. package/es/pro/pisellSimplePriceKeyboardPopover/PisellPriceKeyboardPopover.d.ts +5 -0
  86. package/es/pro/pisellSimplePriceKeyboardPopover/PisellPriceKeyboardPopover.js +148 -0
  87. package/es/pro/pisellSimplePriceKeyboardPopover/PisellPriceKeyboardPopover.less +23 -0
  88. package/es/pro/pisellSimplePriceKeyboardPopover/index.d.ts +2 -0
  89. package/es/pro/pisellSimplePriceKeyboardPopover/index.js +1 -0
  90. package/es/pro/pisellSimplePriceKeyboardPopover/types.d.ts +33 -0
  91. package/es/pro/pisellSimplePriceKeyboardPopover/types.js +1 -0
  92. package/es/pro/priceKeyboard/components/cashKeyboard/CashKeyboardIntact.d.ts +5 -0
  93. package/es/pro/priceKeyboard/components/cashKeyboard/CashKeyboardIntact.js +331 -0
  94. package/es/pro/priceKeyboard/components/cashKeyboard/CashKeyboardSimple.d.ts +13 -0
  95. package/es/pro/priceKeyboard/components/cashKeyboard/CashKeyboardSimple.js +349 -0
  96. package/es/pro/priceKeyboard/components/cashKeyboard/index.d.ts +12 -0
  97. package/es/pro/priceKeyboard/components/cashKeyboard/index.js +49 -0
  98. package/es/pro/priceKeyboard/components/cashKeyboard/index.less +103 -0
  99. package/es/pro/priceKeyboard/components/cashKeyboard/locales.d.ts +39 -0
  100. package/es/pro/priceKeyboard/components/cashKeyboard/locales.js +41 -0
  101. package/es/pro/priceKeyboard/components/cashKeyboard/types.d.ts +97 -0
  102. package/es/pro/priceKeyboard/components/cashKeyboard/types.js +1 -0
  103. package/es/pro/priceKeyboard/components/discountKeyboard/index.d.ts +22 -0
  104. package/es/pro/priceKeyboard/components/discountKeyboard/index.js +465 -0
  105. package/es/pro/priceKeyboard/components/discountKeyboard/index.less +47 -0
  106. package/es/pro/priceKeyboard/components/discountKeyboard/locales.d.ts +42 -0
  107. package/es/pro/priceKeyboard/components/discountKeyboard/locales.js +44 -0
  108. package/es/pro/priceKeyboard/components/discountKeyboard/types.d.ts +17 -0
  109. package/es/pro/priceKeyboard/components/discountKeyboard/types.js +1 -0
  110. package/es/pro/priceKeyboard/components/paymentKeyboard/index.d.ts +12 -0
  111. package/es/pro/priceKeyboard/components/paymentKeyboard/index.js +444 -0
  112. package/es/pro/priceKeyboard/components/paymentKeyboard/index.less +64 -0
  113. package/es/pro/priceKeyboard/components/paymentKeyboard/locales.d.ts +45 -0
  114. package/es/pro/priceKeyboard/components/paymentKeyboard/locales.js +47 -0
  115. package/es/pro/priceKeyboard/components/paymentKeyboard/types.d.ts +39 -0
  116. package/es/pro/priceKeyboard/components/paymentKeyboard/types.js +1 -0
  117. package/es/pro/priceKeyboard/components/shortcuts/index.d.ts +17 -0
  118. package/es/pro/priceKeyboard/components/shortcuts/index.js +47 -0
  119. package/es/pro/priceKeyboard/components/shortcuts/index.less +39 -0
  120. package/es/pro/priceKeyboard/hooks/keyActions.d.ts +28 -0
  121. package/es/pro/priceKeyboard/hooks/keyActions.js +252 -0
  122. package/es/pro/priceKeyboard/hooks/rightItems.d.ts +28 -0
  123. package/es/pro/priceKeyboard/hooks/rightItems.js +50 -0
  124. package/es/pro/priceKeyboard/index.d.ts +3 -0
  125. package/es/pro/priceKeyboard/index.js +3 -0
  126. package/es/pro/priceKeyboard/index.less +215 -0
  127. package/es/pro/priceKeyboard/utils.d.ts +31 -0
  128. package/es/pro/priceKeyboard/utils.js +51 -0
  129. package/es/pro/skuDetailModal/index.js +19 -16
  130. package/lib/components/booking/addons/model.d.ts +1 -10
  131. package/lib/components/booking/components/actionButtons/index.js +31 -28
  132. package/lib/components/booking/components/actionButtons/index.less +0 -28
  133. package/lib/components/booking/components/footer/amount.d.ts +3 -3
  134. package/lib/components/booking/components/footer/amount.js +49 -34
  135. package/lib/components/booking/components/footer/index.js +114 -40
  136. package/lib/components/booking/components/footer/utils.js +35 -7
  137. package/lib/components/booking/forms/model.d.ts +1 -10
  138. package/lib/components/booking/info/model.d.ts +1 -10
  139. package/lib/components/booking/info/model.js +3 -0
  140. package/lib/components/booking/info/service/addService/index.js +2 -1
  141. package/lib/components/booking/info/service/addService/utils.d.ts +1 -1
  142. package/lib/components/booking/info/service2/utils.d.ts +1 -1
  143. package/lib/components/booking/info2/index.js +18 -1
  144. package/lib/components/booking/info2/service/addService/index.js +2 -1
  145. package/lib/components/booking/info2/service/addService/utils.d.ts +1 -1
  146. package/lib/components/booking/info2/service/editService/index.js +12 -4
  147. package/lib/components/booking/model.d.ts +1 -9
  148. package/lib/components/booking/notes/model.d.ts +1 -10
  149. package/lib/components/booking/payments/model.d.ts +1 -10
  150. package/lib/components/booking/utils.js +10 -5
  151. package/lib/components/checkout/PaymentModal.d.ts +2 -0
  152. package/lib/components/checkout/PaymentModal.js +208 -91
  153. package/lib/components/checkout/components/AdditionalModule/index.less +1 -1
  154. package/lib/components/checkout/components/AmountSummary/index.js +120 -50
  155. package/lib/components/checkout/components/AmountSummary/index.less +13 -0
  156. package/lib/components/checkout/components/CashPaymentModule/index.d.ts +5 -3
  157. package/lib/components/checkout/components/CashPaymentModule/index.js +101 -134
  158. package/lib/components/checkout/components/CashPaymentModule/index.less +200 -176
  159. package/lib/components/checkout/components/PaymentDetailModal/index.js +2 -2
  160. package/lib/components/checkout/components/PaymentOptionsModule/PaymentMethodItem.d.ts +29 -0
  161. package/lib/components/checkout/components/PaymentOptionsModule/PaymentMethodItem.js +163 -0
  162. package/lib/components/checkout/components/PaymentOptionsModule/index.d.ts +2 -4
  163. package/lib/components/checkout/components/PaymentOptionsModule/index.js +11 -123
  164. package/lib/components/checkout/components/PaymentOptionsModule/index.less +23 -0
  165. package/lib/components/checkout/components/PaymentResultToast/index.js +26 -1
  166. package/lib/components/checkout/components/PaymentResultToast/types.d.ts +2 -0
  167. package/lib/components/checkout/components/SavePayLaterHandler/index.js +1 -1
  168. package/lib/components/checkout/components/SearchAndClientModule/index.js +3 -29
  169. package/lib/components/checkout/components/WalletPassModule/index.js +4 -3
  170. package/lib/components/checkout/components/WalletPassModule/utils.js +8 -4
  171. package/lib/components/checkout/hooks/useWalletPass.js +11 -6
  172. package/lib/components/checkout/index.less +1 -1
  173. package/lib/components/checkout/locales.d.ts +36 -0
  174. package/lib/components/checkout/locales.js +43 -4
  175. package/lib/components/checkout/types.d.ts +1 -0
  176. package/lib/components/eftposPay/amount.d.ts +1 -1
  177. package/lib/components/eftposPay/device.d.ts +1 -1
  178. package/lib/components/eftposPay/hooks.d.ts +1 -1
  179. package/lib/components/eftposPay/store/index.d.ts +3 -3
  180. package/lib/components/pay/toC/model.d.ts +1 -9
  181. package/lib/components/schedules/model.d.ts +1 -9
  182. package/lib/components/shoppingCart/components/Cart/Product.js +111 -51
  183. package/lib/components/shoppingCart/components/Cart/index.js +1 -1
  184. package/lib/components/shoppingCart/components/Cart/index.less +31 -0
  185. package/lib/components/shoppingCart/locales.d.ts +3 -0
  186. package/lib/components/shoppingCart/locales.js +6 -3
  187. package/lib/components/ticketBooking/components/addServiceVariant/addService.d.ts +0 -1
  188. package/lib/components/ticketBooking/components/addServiceVariant/addService.js +1 -4
  189. package/lib/components/ticketBooking/components/addServiceVariant/index.d.ts +0 -1
  190. package/lib/components/ticketBooking/components/menuBar/index.js +1 -1
  191. package/lib/components/ticketBooking/components/menuBar/index.less +7 -0
  192. package/lib/components/ticketBooking/components/ticketBooking/index.d.ts +0 -1
  193. package/lib/components/ticketBooking/hooks/pisellos/useCustomer.js +7 -7
  194. package/lib/components/ticketBooking/index.d.ts +0 -1
  195. package/lib/components/ticketBooking/utils/index.d.ts +1 -1
  196. package/lib/components/ticketBooking/utils/index.js +2 -1
  197. package/lib/components/wallet/Detail/model.d.ts +1 -13
  198. package/lib/components/wallet/DiscountCard/model.d.ts +1 -14
  199. package/lib/components/wallet/PointCard/model.d.ts +1 -13
  200. package/lib/components/wallet/RechargeableCard/model.d.ts +1 -29
  201. package/lib/components/wallet/Voucher/model.d.ts +1 -13
  202. package/lib/components/wallet/model.d.ts +1 -9
  203. package/lib/pro/pisellPriceKeyboardPopover/PisellPriceKeyboardPopover.js +2 -2
  204. package/lib/pro/pisellSimplePriceKeyboardPopover/PisellPriceKeyboardPopover.d.ts +5 -0
  205. package/lib/pro/pisellSimplePriceKeyboardPopover/PisellPriceKeyboardPopover.js +144 -0
  206. package/lib/pro/pisellSimplePriceKeyboardPopover/PisellPriceKeyboardPopover.less +23 -0
  207. package/lib/pro/pisellSimplePriceKeyboardPopover/index.d.ts +2 -0
  208. package/lib/pro/pisellSimplePriceKeyboardPopover/index.js +35 -0
  209. package/lib/pro/pisellSimplePriceKeyboardPopover/types.d.ts +33 -0
  210. package/lib/pro/pisellSimplePriceKeyboardPopover/types.js +17 -0
  211. package/lib/pro/priceKeyboard/components/cashKeyboard/CashKeyboardIntact.d.ts +5 -0
  212. package/lib/pro/priceKeyboard/components/cashKeyboard/CashKeyboardIntact.js +360 -0
  213. package/lib/pro/priceKeyboard/components/cashKeyboard/CashKeyboardSimple.d.ts +13 -0
  214. package/lib/pro/priceKeyboard/components/cashKeyboard/CashKeyboardSimple.js +399 -0
  215. package/lib/pro/priceKeyboard/components/cashKeyboard/index.d.ts +12 -0
  216. package/lib/pro/priceKeyboard/components/cashKeyboard/index.js +76 -0
  217. package/lib/pro/priceKeyboard/components/cashKeyboard/index.less +103 -0
  218. package/lib/pro/priceKeyboard/components/cashKeyboard/locales.d.ts +39 -0
  219. package/lib/pro/priceKeyboard/components/cashKeyboard/locales.js +65 -0
  220. package/lib/pro/priceKeyboard/components/cashKeyboard/types.d.ts +97 -0
  221. package/lib/pro/priceKeyboard/components/cashKeyboard/types.js +17 -0
  222. package/lib/pro/priceKeyboard/components/discountKeyboard/index.d.ts +22 -0
  223. package/lib/pro/priceKeyboard/components/discountKeyboard/index.js +504 -0
  224. package/lib/pro/priceKeyboard/components/discountKeyboard/index.less +47 -0
  225. package/lib/pro/priceKeyboard/components/discountKeyboard/locales.d.ts +42 -0
  226. package/lib/pro/priceKeyboard/components/discountKeyboard/locales.js +68 -0
  227. package/lib/pro/priceKeyboard/components/discountKeyboard/types.d.ts +17 -0
  228. package/lib/pro/priceKeyboard/components/discountKeyboard/types.js +17 -0
  229. package/lib/pro/priceKeyboard/components/paymentKeyboard/index.d.ts +12 -0
  230. package/lib/pro/priceKeyboard/components/paymentKeyboard/index.js +488 -0
  231. package/lib/pro/priceKeyboard/components/paymentKeyboard/index.less +64 -0
  232. package/lib/pro/priceKeyboard/components/paymentKeyboard/locales.d.ts +45 -0
  233. package/lib/pro/priceKeyboard/components/paymentKeyboard/locales.js +71 -0
  234. package/lib/pro/priceKeyboard/components/paymentKeyboard/types.d.ts +39 -0
  235. package/lib/pro/priceKeyboard/components/paymentKeyboard/types.js +17 -0
  236. package/lib/pro/priceKeyboard/components/shortcuts/index.d.ts +17 -0
  237. package/lib/pro/priceKeyboard/components/shortcuts/index.js +79 -0
  238. package/lib/pro/priceKeyboard/components/shortcuts/index.less +39 -0
  239. package/lib/pro/priceKeyboard/hooks/keyActions.d.ts +28 -0
  240. package/lib/pro/priceKeyboard/hooks/keyActions.js +176 -0
  241. package/lib/pro/priceKeyboard/hooks/rightItems.d.ts +28 -0
  242. package/lib/pro/priceKeyboard/hooks/rightItems.js +81 -0
  243. package/lib/pro/priceKeyboard/index.d.ts +3 -0
  244. package/lib/pro/priceKeyboard/index.js +45 -0
  245. package/lib/pro/priceKeyboard/index.less +215 -0
  246. package/lib/pro/priceKeyboard/utils.d.ts +31 -0
  247. package/lib/pro/priceKeyboard/utils.js +75 -0
  248. package/lib/pro/skuDetailModal/index.js +18 -22
  249. package/package.json +12 -12
@@ -0,0 +1,97 @@
1
+ /// <reference types="react" />
2
+ export interface RightItemsStyleProps {
3
+ buttonBackgroundColor?: string;
4
+ textColor?: string;
5
+ resetButtonBackgroundColor?: string;
6
+ resetButtonTextColor?: string;
7
+ isDoneButtonFollowTheme?: boolean;
8
+ doneButtonBackgroundColor?: string;
9
+ doneButtonTextColor?: string;
10
+ }
11
+ export declare type ItemValue = string | number;
12
+ export interface Item {
13
+ value: ItemValue;
14
+ label: React.ReactNode;
15
+ disabled: boolean;
16
+ type: 'text' | 'primary';
17
+ style?: React.CSSProperties;
18
+ size?: number;
19
+ }
20
+ export interface KeyboardProps {
21
+ className?: string;
22
+ style?: React.CSSProperties;
23
+ onChange?: (value?: ItemValue) => void;
24
+ items?: Item[];
25
+ rightItems?: Item[];
26
+ keydown?: boolean;
27
+ }
28
+ export interface TitleAreaConfig {
29
+ visible?: boolean;
30
+ title?: {
31
+ visible?: boolean;
32
+ text?: string;
33
+ fontSize?: string | number;
34
+ color?: string;
35
+ fontWeight?: string | number;
36
+ };
37
+ subtitle?: {
38
+ visible?: boolean;
39
+ text?: string;
40
+ fontSize?: string | number;
41
+ color?: string;
42
+ fontWeight?: string | number;
43
+ };
44
+ alignment?: 'left' | 'right' | 'center' | 'space-between';
45
+ spacing?: string | number;
46
+ }
47
+ export interface DisplayFieldConfig {
48
+ cashReceived?: {
49
+ visible?: boolean;
50
+ };
51
+ balanceDue?: {
52
+ visible?: boolean;
53
+ };
54
+ changeDue?: {
55
+ visible?: boolean;
56
+ };
57
+ gridRatio?: number[];
58
+ }
59
+ export interface CashKeyboardBaseProps {
60
+ amountSymbol?: string;
61
+ value?: string;
62
+ /** 默认值,非受控模式 */
63
+ defaultValue?: string;
64
+ /** 原始值,多用于重置, 当前对应 Balance Due */
65
+ originalValue?: string;
66
+ placeholder?: string;
67
+ max?: number;
68
+ min?: number;
69
+ disabled?: boolean;
70
+ doneText?: string;
71
+ resetText?: string;
72
+ presets?: any;
73
+ hiddenChangeDue?: boolean;
74
+ onChange?: (val: string) => void;
75
+ onEnter?: (val: string) => void;
76
+ onReset?: () => void;
77
+ onPay?: () => void;
78
+ rightItemsStyle?: RightItemsStyleProps;
79
+ titleArea?: TitleAreaConfig;
80
+ displayField?: DisplayFieldConfig;
81
+ keyboardProps?: KeyboardProps;
82
+ style?: React.CSSProperties;
83
+ selectType?: 'light' | 'dark';
84
+ backgroundColor?: string;
85
+ containerBackgroundColor?: string;
86
+ buttonBackgroundColor?: string;
87
+ textColor?: string;
88
+ resetButtonBackgroundColor?: string;
89
+ resetButtonTextColor?: string;
90
+ isDoneButtonFollowTheme?: boolean;
91
+ doneButtonBackgroundColor?: string;
92
+ doneButtonTextColor?: string;
93
+ keyboardBackgroundColor?: string;
94
+ keyboardButtonBackgroundColor?: string;
95
+ keyboardButtonTextColor?: string;
96
+ keyboardButtonHoverColor?: string;
97
+ }
@@ -0,0 +1,17 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __copyProps = (to, from, except, desc) => {
6
+ if (from && typeof from === "object" || typeof from === "function") {
7
+ for (let key of __getOwnPropNames(from))
8
+ if (!__hasOwnProp.call(to, key) && key !== except)
9
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
+ }
11
+ return to;
12
+ };
13
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
14
+
15
+ // src/pro/priceKeyboard/components/cashKeyboard/types.ts
16
+ var types_exports = {};
17
+ module.exports = __toCommonJS(types_exports);
@@ -0,0 +1,22 @@
1
+ import React from 'react';
2
+ import { DiscountKeyboardBaseProps } from './types';
3
+ import './index.less';
4
+ export interface DiscountKeyboardProps extends DiscountKeyboardBaseProps {
5
+ containerProps?: {
6
+ renderType: 'modal' | 'popover';
7
+ open?: boolean;
8
+ [key: string]: any;
9
+ };
10
+ children?: React.ReactNode;
11
+ }
12
+ declare const DiscountKeyboard: {
13
+ (props: DiscountKeyboardProps): JSX.Element | null;
14
+ InputNumber: (props: DiscountKeyboardInputNumberProps) => JSX.Element;
15
+ };
16
+ interface DiscountKeyboardInputNumberProps {
17
+ value?: number;
18
+ onChange?: (val: number) => void;
19
+ keyboardProps?: DiscountKeyboardProps;
20
+ [key: string]: any;
21
+ }
22
+ export default DiscountKeyboard;
@@ -0,0 +1,504 @@
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/priceKeyboard/components/discountKeyboard/index.tsx
30
+ var discountKeyboard_exports = {};
31
+ __export(discountKeyboard_exports, {
32
+ default: () => discountKeyboard_default
33
+ });
34
+ module.exports = __toCommonJS(discountKeyboard_exports);
35
+ var import_react = __toESM(require("react"));
36
+ var import_antd = require("antd");
37
+ var import_decimal = __toESM(require("decimal.js"));
38
+ var import_utils = require("@pisell/utils");
39
+ var import_materials = require("@pisell/materials");
40
+ var import_ahooks = require("ahooks");
41
+ var import_rightItems = __toESM(require("../../hooks/rightItems"));
42
+ var import_keyActions = __toESM(require("../../hooks/keyActions"));
43
+ var import_utils2 = require("../../utils");
44
+ var import_useEngineContext = __toESM(require("../../../../hooks/useEngineContext"));
45
+ var import_locales = __toESM(require("./locales"));
46
+ var import_index = require("./index.less");
47
+ var TIP_COLORS = {
48
+ positive: "#CA8504",
49
+ negative: "#1570EF",
50
+ overflow: "#D92D20"
51
+ };
52
+ var DiscountKeyboardBase = (props) => {
53
+ var _a, _b, _c, _d, _e, _f, _g;
54
+ const {
55
+ defaultValue,
56
+ originalValue,
57
+ selectType = "light",
58
+ resetText,
59
+ doneText,
60
+ onEnter,
61
+ onReset,
62
+ enableExceedMaxAmount = false
63
+ } = props;
64
+ const context = (0, import_useEngineContext.default)();
65
+ const [isFirstInput, setIsFirstInput] = (0, import_react.useState)(true);
66
+ import_utils.locales.init(
67
+ import_locales.default,
68
+ ((_e = (_d = (_c = (_b = (_a = context.appHelper.utils) == null ? void 0 : _a.getApp) == null ? void 0 : _b.call(_a)) == null ? void 0 : _c.locales) == null ? void 0 : _d.getLocale) == null ? void 0 : _e.call(_d)) || ((_g = (_f = context.appHelper.utils) == null ? void 0 : _f.storage) == null ? void 0 : _g.get("umi_locale")) || "en"
69
+ );
70
+ const { getData } = context.appHelper.utils;
71
+ const amountSymbol = props.amountSymbol || (getData == null ? void 0 : getData("shop_symbol")) || "$";
72
+ const uniqueId = (0, import_react.useId)();
73
+ const uniqueKeyboardId = `virtual-keyboard-${uniqueId.replace(/:/g, "-")}`;
74
+ const [updateMode, setUpdateMode] = (0, import_react.useState)(
75
+ "priceOverride"
76
+ );
77
+ const [discountMode, setDiscountMode] = (0, import_react.useState)(
78
+ "amount"
79
+ );
80
+ const [internalValue, setInternalValue] = (0, import_react.useState)(
81
+ defaultValue ? String(defaultValue) : ""
82
+ );
83
+ const [discountValue, setDiscountValue] = (0, import_react.useState)("");
84
+ (0, import_react.useEffect)(() => {
85
+ document.body.id = "body";
86
+ }, []);
87
+ (0, import_react.useEffect)(() => {
88
+ (0, import_utils2.setKeyboardTheme)(selectType);
89
+ }, [selectType]);
90
+ const _onReset = (0, import_react.useCallback)(() => {
91
+ if (updateMode === "priceOverride") {
92
+ setInternalValue(originalValue ? String(originalValue) : "");
93
+ setIsFirstInput(true);
94
+ } else {
95
+ setDiscountValue("");
96
+ }
97
+ onReset == null ? void 0 : onReset();
98
+ }, [originalValue, onReset, updateMode]);
99
+ const _handleChange = (0, import_react.useCallback)(
100
+ (val) => {
101
+ if (updateMode === "priceOverride") {
102
+ setIsFirstInput(false);
103
+ setInternalValue(val);
104
+ } else {
105
+ setDiscountValue(val);
106
+ }
107
+ },
108
+ [updateMode]
109
+ );
110
+ const discountAmount = (0, import_react.useMemo)(() => {
111
+ const originalPrice = new import_decimal.default(originalValue || 0);
112
+ let discountAmount2 = new import_decimal.default(0);
113
+ if (updateMode === "priceOverride") {
114
+ discountAmount2 = originalPrice.minus(new import_decimal.default(internalValue || 0));
115
+ } else {
116
+ if (discountMode === "amount") {
117
+ discountAmount2 = new import_decimal.default(discountValue || 0);
118
+ } else {
119
+ const percentage = new import_decimal.default(discountValue || 0);
120
+ discountAmount2 = originalPrice.times(percentage.dividedBy(100));
121
+ }
122
+ }
123
+ return discountAmount2.toNumber();
124
+ }, [updateMode, discountMode, internalValue, discountValue, originalValue]);
125
+ const isDiscountOverflow = (0, import_react.useMemo)(() => {
126
+ const _original = new import_decimal.default(originalValue || 0);
127
+ if (updateMode === "priceOverride") {
128
+ return new import_decimal.default(internalValue || 0).greaterThan(_original);
129
+ }
130
+ if (discountMode === "amount") {
131
+ return new import_decimal.default(discountValue || 0).greaterThan(_original);
132
+ }
133
+ return false;
134
+ }, [updateMode, discountMode, internalValue, discountValue, originalValue]);
135
+ const payableAmount = (0, import_react.useMemo)(() => {
136
+ return new import_decimal.default(originalValue || 0).minus(discountAmount).toNumber();
137
+ }, [originalValue, discountAmount]);
138
+ const handleEnter = () => {
139
+ if (updateMode === "priceOverride" && enableExceedMaxAmount) {
140
+ onEnter == null ? void 0 : onEnter(String(discountAmount));
141
+ return;
142
+ }
143
+ if (isDiscountOverflow) {
144
+ return;
145
+ }
146
+ onEnter == null ? void 0 : onEnter(String(discountAmount));
147
+ };
148
+ const _max = (0, import_react.useMemo)(() => {
149
+ return updateMode === "discount" && discountMode === "percentage" ? 100 : void 0;
150
+ }, [updateMode, discountMode]);
151
+ const { handleChange } = (0, import_keyActions.default)({
152
+ onEnter: handleEnter,
153
+ onReset: _onReset,
154
+ onChange: _handleChange,
155
+ value: updateMode === "priceOverride" ? internalValue : discountValue,
156
+ max: _max,
157
+ mode: isFirstInput && updateMode === "priceOverride" ? "replace" : "append",
158
+ scale: 2
159
+ });
160
+ const rightItems = (0, import_rightItems.default)({
161
+ rightItemsStyle: {
162
+ doneButtonStyle: {
163
+ boxShadow: "0px 0px 1px #898A8D",
164
+ cursor: updateMode !== "priceOverride" && isDiscountOverflow ? "not-allowed" : void 0,
165
+ backgroundColor: updateMode !== "priceOverride" && isDiscountOverflow ? "#D0D5DD" : void 0
166
+ }
167
+ },
168
+ doneText: doneText || import_utils.locales.getText("discount-keyboard-done"),
169
+ resetText: resetText || import_utils.locales.getText("discount-keyboard-reset")
170
+ });
171
+ const formattedVal = (0, import_react.useMemo)(() => {
172
+ if (updateMode === "priceOverride") {
173
+ return internalValue ? `${amountSymbol}${internalValue}` : "";
174
+ }
175
+ if (discountMode === "amount") {
176
+ return discountValue ? `${amountSymbol}${discountValue}` : "";
177
+ } else {
178
+ return discountValue ? `${discountValue}%` : "";
179
+ }
180
+ }, [updateMode, discountMode, internalValue, discountValue, amountSymbol]);
181
+ const placeholder = (0, import_react.useMemo)(() => {
182
+ if (updateMode === "priceOverride") {
183
+ return `${amountSymbol}0`;
184
+ } else {
185
+ if (discountMode === "amount") {
186
+ return "0";
187
+ }
188
+ return "%";
189
+ }
190
+ }, [amountSymbol, updateMode, discountMode]);
191
+ const renderBottomContent = () => {
192
+ if (new import_decimal.default(discountAmount).equals(0)) {
193
+ return /* @__PURE__ */ import_react.default.createElement("div", null, " ");
194
+ }
195
+ if (updateMode === "priceOverride" || discountMode === "percentage") {
196
+ let color;
197
+ let sign = "";
198
+ if (new import_decimal.default(discountAmount).greaterThan(0)) {
199
+ color = TIP_COLORS.negative;
200
+ sign = "-";
201
+ } else {
202
+ sign = "+";
203
+ color = TIP_COLORS.positive;
204
+ }
205
+ const style = {
206
+ color
207
+ };
208
+ return /* @__PURE__ */ import_react.default.createElement("div", { style, className: "ellipsis" }, /* @__PURE__ */ import_react.default.createElement("span", null, sign, /* @__PURE__ */ import_react.default.createElement(
209
+ import_materials.PisellText.Amount,
210
+ {
211
+ hideDecimalForWholeNumbers: false,
212
+ precision: 2,
213
+ value: Math.abs(discountAmount)
214
+ }
215
+ )));
216
+ }
217
+ return /* @__PURE__ */ import_react.default.createElement(
218
+ "div",
219
+ {
220
+ style: { color: isDiscountOverflow ? TIP_COLORS.overflow : "" },
221
+ className: "ellipsis"
222
+ },
223
+ import_utils.locales.getText("discount-keyboard-max-discount"),
224
+ ":",
225
+ " ",
226
+ /* @__PURE__ */ import_react.default.createElement(
227
+ import_materials.PisellText.Amount,
228
+ {
229
+ hideDecimalForWholeNumbers: false,
230
+ precision: 2,
231
+ value: originalValue
232
+ }
233
+ )
234
+ );
235
+ };
236
+ const customDisplay = () => {
237
+ const _color = updateMode === "discount" && discountMode === "amount" && isDiscountOverflow ? TIP_COLORS.overflow : void 0;
238
+ return /* @__PURE__ */ import_react.default.createElement(
239
+ "div",
240
+ {
241
+ style: {
242
+ display: "flex",
243
+ gap: 8
244
+ }
245
+ },
246
+ /* @__PURE__ */ import_react.default.createElement(
247
+ import_materials.VirtualInput,
248
+ {
249
+ focused: true,
250
+ value: formattedVal,
251
+ wrapperStyle: {
252
+ padding: "12px 20px",
253
+ borderRadius: "8px",
254
+ backgroundColor: "white",
255
+ boxShadow: "0px 1px 2px rgba(16, 24, 40, 0.06)",
256
+ flex: "2",
257
+ overflow: "hidden"
258
+ },
259
+ style: {
260
+ color: _color
261
+ },
262
+ placeholder,
263
+ bottomContent: renderBottomContent()
264
+ }
265
+ ),
266
+ /* @__PURE__ */ import_react.default.createElement(
267
+ "div",
268
+ {
269
+ style: {
270
+ flex: "1",
271
+ display: "flex",
272
+ flexDirection: "column",
273
+ borderRadius: "8px",
274
+ backgroundColor: "#ffffff",
275
+ padding: 8,
276
+ boxShadow: "0px 1px 2px rgba(16, 24, 40, 0.06)",
277
+ overflow: "hidden"
278
+ }
279
+ },
280
+ /* @__PURE__ */ import_react.default.createElement(
281
+ "div",
282
+ {
283
+ style: {
284
+ flex: 1
285
+ }
286
+ },
287
+ /* @__PURE__ */ import_react.default.createElement(
288
+ "div",
289
+ {
290
+ style: {
291
+ color: "#667085",
292
+ fontSize: 12,
293
+ fontWeight: 500,
294
+ wordWrap: "break-word"
295
+ }
296
+ },
297
+ import_utils.locales.getText("discount-keyboard-total")
298
+ ),
299
+ /* @__PURE__ */ import_react.default.createElement(
300
+ "div",
301
+ {
302
+ style: {
303
+ color: "#475467",
304
+ fontSize: 14,
305
+ fontWeight: 700,
306
+ wordWrap: "break-word"
307
+ }
308
+ },
309
+ /* @__PURE__ */ import_react.default.createElement(import_materials.PisellText.Amount, { value: originalValue })
310
+ )
311
+ ),
312
+ /* @__PURE__ */ import_react.default.createElement(
313
+ "div",
314
+ {
315
+ style: {
316
+ flex: 1
317
+ }
318
+ },
319
+ /* @__PURE__ */ import_react.default.createElement(
320
+ "div",
321
+ {
322
+ style: {
323
+ color: "#667085",
324
+ fontSize: 12,
325
+ fontWeight: 500,
326
+ wordWrap: "break-word"
327
+ }
328
+ },
329
+ import_utils.locales.getText("discount-keyboard-payable")
330
+ ),
331
+ /* @__PURE__ */ import_react.default.createElement(
332
+ "div",
333
+ {
334
+ style: {
335
+ color: "#475467",
336
+ fontSize: 14,
337
+ fontWeight: 700,
338
+ wordWrap: "break-word"
339
+ }
340
+ },
341
+ /* @__PURE__ */ import_react.default.createElement(import_materials.PisellText.Amount, { value: payableAmount })
342
+ )
343
+ )
344
+ )
345
+ );
346
+ };
347
+ return /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-pro-price-keyboard-discount" }, /* @__PURE__ */ import_react.default.createElement(
348
+ import_antd.Segmented,
349
+ {
350
+ size: "large",
351
+ style: {
352
+ padding: 6
353
+ },
354
+ options: [
355
+ {
356
+ label: import_utils.locales.getText("discount-keyboard-price-override"),
357
+ value: "priceOverride"
358
+ },
359
+ {
360
+ label: import_utils.locales.getText("discount-keyboard-discount"),
361
+ value: "discount"
362
+ }
363
+ ],
364
+ value: updateMode,
365
+ onChange: (val) => setUpdateMode(val),
366
+ block: true
367
+ }
368
+ ), updateMode === "discount" && /* @__PURE__ */ import_react.default.createElement(
369
+ import_antd.Segmented,
370
+ {
371
+ size: "large",
372
+ style: {
373
+ padding: 6
374
+ },
375
+ options: [
376
+ {
377
+ label: import_utils.locales.getText("discount-keyboard-amount") + ` (${amountSymbol})`,
378
+ value: "amount"
379
+ },
380
+ {
381
+ label: import_utils.locales.getText("discount-keyboard-percentage") + " (%)",
382
+ value: "percentage"
383
+ }
384
+ ],
385
+ value: discountMode,
386
+ onChange: (val) => {
387
+ setDiscountMode(val);
388
+ setDiscountValue("");
389
+ },
390
+ block: true
391
+ }
392
+ ), /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-pro-price-keyboard-content" }, customDisplay(), /* @__PURE__ */ import_react.default.createElement(
393
+ import_materials.Keyboard,
394
+ {
395
+ rightItems,
396
+ onChange: handleChange,
397
+ id: uniqueKeyboardId
398
+ }
399
+ )));
400
+ };
401
+ var DiscountKeyboard = (props) => {
402
+ const { containerProps, children, ...keyboardProps } = props;
403
+ if (!containerProps) {
404
+ return /* @__PURE__ */ import_react.default.createElement(DiscountKeyboardBase, { ...keyboardProps });
405
+ }
406
+ const { renderType, open, ...restProps } = containerProps || {};
407
+ if (renderType === "popover") {
408
+ return /* @__PURE__ */ import_react.default.createElement(
409
+ import_antd.Popover,
410
+ {
411
+ key: `${open}`,
412
+ open,
413
+ trigger: "click",
414
+ className: "pisell-discount-keyboard-popover",
415
+ ...restProps,
416
+ content: /* @__PURE__ */ import_react.default.createElement(DiscountKeyboardBase, { ...keyboardProps })
417
+ },
418
+ children
419
+ );
420
+ }
421
+ if (renderType === "modal") {
422
+ return open ? /* @__PURE__ */ import_react.default.createElement(
423
+ import_materials.PisellModal,
424
+ {
425
+ platform: "pc",
426
+ open: true,
427
+ width: "unset",
428
+ header: null,
429
+ footer: false,
430
+ mask: false,
431
+ maskClosable: true,
432
+ bodyStyle: { padding: "0px", backgroundColor: "transparent" },
433
+ closeIcon: null,
434
+ className: "pisell-discount-keyboard-modal",
435
+ destroyOnHidden: true,
436
+ ...restProps
437
+ },
438
+ /* @__PURE__ */ import_react.default.createElement(DiscountKeyboardBase, { ...keyboardProps })
439
+ ) : null;
440
+ }
441
+ return /* @__PURE__ */ import_react.default.createElement(DiscountKeyboardBase, { ...keyboardProps });
442
+ };
443
+ var DiscountKeyboardInputNumber = (props) => {
444
+ var _a;
445
+ const { originalValue, value, onChange, keyboardProps, ...rest } = props;
446
+ const [internalValue, setInternalValue] = (0, import_ahooks.useControllableValue)(props);
447
+ const [isOpen, setIsOpen] = (0, import_react.useState)(false);
448
+ const renderType = ((_a = keyboardProps == null ? void 0 : keyboardProps.containerProps) == null ? void 0 : _a.renderType) || "popover";
449
+ if (renderType === "modal") {
450
+ return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(
451
+ import_antd.InputNumber,
452
+ {
453
+ value,
454
+ readOnly: true,
455
+ ...rest,
456
+ onClick: () => setIsOpen(true)
457
+ }
458
+ ), /* @__PURE__ */ import_react.default.createElement(
459
+ DiscountKeyboard,
460
+ {
461
+ ...keyboardProps || {},
462
+ containerProps: {
463
+ ...keyboardProps == null ? void 0 : keyboardProps.containerProps,
464
+ open: isOpen,
465
+ onCancel: () => setIsOpen(false),
466
+ renderType: "modal"
467
+ },
468
+ enableExceedMaxAmount: true,
469
+ defaultValue: internalValue,
470
+ onEnter: (val) => {
471
+ setInternalValue(
472
+ new import_decimal.default(originalValue).minus(Number(val)).toNumber()
473
+ );
474
+ setIsOpen(false);
475
+ },
476
+ originalValue
477
+ }
478
+ ));
479
+ }
480
+ return /* @__PURE__ */ import_react.default.createElement(
481
+ DiscountKeyboard,
482
+ {
483
+ ...keyboardProps || {},
484
+ containerProps: {
485
+ ...keyboardProps == null ? void 0 : keyboardProps.containerProps,
486
+ open: isOpen,
487
+ onOpenChange: (val) => setIsOpen(val),
488
+ renderType: "popover"
489
+ },
490
+ enableExceedMaxAmount: true,
491
+ defaultValue: internalValue,
492
+ onEnter: (val) => {
493
+ setInternalValue(
494
+ new import_decimal.default(originalValue).minus(Number(val)).toNumber()
495
+ );
496
+ setIsOpen(false);
497
+ },
498
+ originalValue
499
+ },
500
+ /* @__PURE__ */ import_react.default.createElement(import_antd.InputNumber, { value, readOnly: true, ...rest })
501
+ );
502
+ };
503
+ DiscountKeyboard.InputNumber = DiscountKeyboardInputNumber;
504
+ var discountKeyboard_default = DiscountKeyboard;
@@ -0,0 +1,47 @@
1
+ .pisell-pro-price-keyboard-discount {
2
+ width: 360px;
3
+ border-radius: 10px;
4
+ padding: 10px;
5
+ display: flex;
6
+ flex-direction: column;
7
+ gap: 10px;
8
+ background-color: var(--pisell-pro-price-keyboard-bg-color, #ffffff);
9
+
10
+ .ellipsis {
11
+ overflow: hidden;
12
+ text-overflow: ellipsis;
13
+ white-space: nowrap;
14
+ }
15
+
16
+ // 复写Segmented样式
17
+ .pisell-lowcode-segmented {
18
+ background-color: var(
19
+ --pisell-pro-price-keyboard-bg-color-gray-200,
20
+ #eaecf0
21
+ );
22
+ color: var(--pisell-pro-price-keyboard-text-gray-500, #667085);
23
+ }
24
+
25
+ .pisell-pro-price-keyboard-content {
26
+ width: 100%;
27
+ padding: 10px;
28
+ border-radius: 10px;
29
+ display: flex;
30
+ flex-direction: column;
31
+ gap: 8px;
32
+ background-color: var(
33
+ --pisell-pro-price-keyboard-bg-color-gray-300,
34
+ #d0d5dd
35
+ );
36
+ }
37
+ }
38
+
39
+ .pisell-discount-keyboard-modal {
40
+ .pisell-lowcode-modal-content {
41
+ background-color: transparent;
42
+ }
43
+
44
+ .pisell-lowcode-modal-close {
45
+ display: none;
46
+ }
47
+ }