@pisell/private-materials 6.3.137 → 6.3.139

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 (455) 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 +2 -2
  6. package/build/lowcode/preview.js +153 -426
  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 +10 -10
  11. package/es/components/appointmentBooking/components/Form/index.d.ts +4 -0
  12. package/es/components/appointmentBooking/components/Services/index.d.ts +4 -0
  13. package/es/components/appointmentBooking/deposit/components/PolicyModal/index.d.ts +3 -0
  14. package/es/components/appointmentBooking/hooks.d.ts +107 -0
  15. package/es/components/appointmentBooking/utils.d.ts +227 -0
  16. package/es/components/authentication/admin/ChannelAuthSetting/OnlineShopAuth/index.js +24 -5
  17. package/es/components/authentication/admin/ChannelAuthSetting/index.js +1 -1
  18. package/es/components/booking/components/TabProduct/index.d.ts +1 -0
  19. package/es/components/booking/components/TabProduct/productItem/index.d.ts +1 -0
  20. package/es/components/booking/components/TabProduct/selectProductItem/index.d.ts +1 -0
  21. package/es/components/booking/components/collapsibleList/utils.d.ts +1 -0
  22. package/es/components/booking/components/emptyBooking/index.d.ts +1 -0
  23. package/es/components/booking/components/footer/FooterMenus/index.d.ts +1 -0
  24. package/es/components/booking/components/footer/utils.d.ts +47 -0
  25. package/es/components/booking/components/formItemChildrenWrap/index.d.ts +1 -0
  26. package/es/components/booking/components/reloadResourceModal/index.d.ts +9 -0
  27. package/es/components/booking/components/voucher/index.d.ts +3 -0
  28. package/es/components/booking/forms/single/index.d.ts +1 -0
  29. package/es/components/booking/forms/table/index.d.ts +1 -0
  30. package/es/components/booking/info/clientVariant/hooks/useClientFn.d.ts +1 -0
  31. package/es/components/booking/info/clientVariant/hooks/useIsLowSpeedNetwork.d.ts +1 -0
  32. package/es/components/booking/info/date/index.d.ts +1 -0
  33. package/es/components/booking/info/notes/index.d.ts +1 -0
  34. package/es/components/booking/info/service/actions/index.d.ts +1 -0
  35. package/es/components/booking/info/service/editService/constants.d.ts +1 -0
  36. package/es/components/booking/info/service/editService/index.d.ts +7 -0
  37. package/es/components/booking/info/service/like/index.d.ts +1 -0
  38. package/es/components/booking/info/service2/utils.d.ts +248 -0
  39. package/es/components/booking/info2/index.d.ts +12 -0
  40. package/es/components/booking/info2/service/actions/index.d.ts +1 -0
  41. package/es/components/booking/info2/service/addService/index.d.ts +11 -0
  42. package/es/components/booking/info2/service/contactInfoMode/index.d.ts +1 -0
  43. package/es/components/booking/locales.d.ts +1489 -0
  44. package/es/components/booking/materiels/contacts/index.d.ts +1 -0
  45. package/es/components/booking/materiels/duration/index.d.ts +1 -0
  46. package/es/components/booking/materiels/holder/index.d.ts +1 -0
  47. package/es/components/booking/materiels/startTime/index.d.ts +1 -0
  48. package/es/components/booking/model.d.ts +120 -0
  49. package/es/components/booking/notes/NoteBlock/NoteItem/index.d.ts +1 -0
  50. package/es/components/booking/utils.d.ts +2 -2
  51. package/es/components/ecocup/components/CupInfoCard/index.d.ts +1 -0
  52. package/es/components/ecocup/components/CustomerCard/index.d.ts +1 -0
  53. package/es/components/eftpos/deviceList/index.d.ts +1 -0
  54. package/es/components/eftpos/form/index.d.ts +1 -0
  55. package/es/components/eftpos/group/index.d.ts +1 -0
  56. package/es/components/eftpos/icon/apiKey.d.ts +1 -0
  57. package/es/components/eftpos/icon/device.d.ts +1 -0
  58. package/es/components/eftpos/pos.d.ts +1 -0
  59. package/es/components/eftpos/receipt/index.d.ts +1 -0
  60. package/es/components/eftposPay/amount.d.ts +21 -0
  61. package/es/components/eftposPay/app.d.ts +10 -0
  62. package/es/components/eftposPay/component/alert/warn.d.ts +1 -0
  63. package/es/components/eftposPay/component/fail/failCustom.d.ts +3 -0
  64. package/es/components/eftposPay/component/fail/index.d.ts +3 -0
  65. package/es/components/eftposPay/component/fail/network.d.ts +9 -0
  66. package/es/components/eftposPay/component/fail/unknow.d.ts +10 -0
  67. package/es/components/eftposPay/component/header/titlebar.d.ts +1 -0
  68. package/es/components/eftposPay/component/manual/index.d.ts +9 -0
  69. package/es/components/eftposPay/component/signature/index.d.ts +9 -0
  70. package/es/components/eftposPay/component/step/index.d.ts +1 -0
  71. package/es/components/eftposPay/component/step/step.d.ts +1 -0
  72. package/es/components/eftposPay/device.d.ts +23 -0
  73. package/es/components/eftposPay/hooks.d.ts +2 -2
  74. package/es/components/eftposPay/index.d.ts +4 -0
  75. package/es/components/eftposPay/linkly/hooks/normal.d.ts +30 -0
  76. package/es/components/eftposPay/linkly/hooks/useTimeQuery.d.ts +4 -0
  77. package/es/components/eftposPay/linkly/index.d.ts +2 -0
  78. package/es/components/eftposPay/pay.d.ts +20 -0
  79. package/es/components/eftposPay/payo/config.d.ts +13 -0
  80. package/es/components/eftposPay/payo/hooks.d.ts +10 -0
  81. package/es/components/eftposPay/payo/payment.d.ts +66 -0
  82. package/es/components/eftposPay/store/index.d.ts +5 -5
  83. package/es/components/eftposPay/tip.d.ts +10 -0
  84. package/es/components/eftposPay/tyro/hooks.d.ts +1 -0
  85. package/es/components/eftposPay/tyro/index.d.ts +9 -0
  86. package/es/components/eftposPay/utils/payLog.d.ts +81 -0
  87. package/es/components/eftposPay/windcave/receiptAction.d.ts +23 -0
  88. package/es/components/eftposPay/windcave/windcave.d.ts +7 -0
  89. package/es/components/eventBooking/components/Provider/Cart/Deposit/index.d.ts +1 -0
  90. package/es/components/eventBooking/components/Provider/Header/index.d.ts +1 -0
  91. package/es/components/eventBooking/components/Provider/SelectHolderModal.d.ts +1 -0
  92. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateStatus/index.d.ts +1 -0
  93. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/DayItem/index.d.ts +1 -0
  94. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/index.d.ts +1 -0
  95. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Status/index.d.ts +1 -0
  96. package/es/components/eventBooking/components/bookingDetailModal/components/Resource.d.ts +1 -0
  97. package/es/components/eventBooking/components/bookingDetailModal/components/Schedule.d.ts +1 -0
  98. package/es/components/eventBooking/components/scheduleCalendar/ProductItem/index.d.ts +1 -0
  99. package/es/components/kioskSkuDetail/index.d.ts +39 -0
  100. package/es/components/kioskSkuDetail/locales.d.ts +48 -0
  101. package/es/components/login/index.d.ts +1 -0
  102. package/es/components/pay/toC/PaymentMethods/GlobePayAliPayH5/index.d.ts +10 -0
  103. package/es/components/pay/toC/PaymentMethods/GlobePayPaypalH5/index.d.ts +10 -0
  104. package/es/components/pay/toC/PaymentMethods/GlobePayWxH5/index.d.ts +10 -0
  105. package/es/components/pay/toC/PaymentMethods/MWCreditCard/TDSPay/index.d.ts +16 -0
  106. package/es/components/pay/toC/PaymentMethods/MWCreditCard/index.d.ts +15 -0
  107. package/es/components/pay/toC/PaymentMethods/MWCreditCard/tds2.d.ts +83 -0
  108. package/es/components/pay/toC/PaymentMethods/MWCreditCard/tds2.js +7 -5
  109. package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/StripeSDK/index.d.ts +1 -0
  110. package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/index.d.ts +1 -0
  111. package/es/components/pay/toC/PaymentMethods/SuperPayAliPayH5/index.d.ts +10 -0
  112. package/es/components/pay/toC/PaymentMethods/SuperPayWxPayH5/index.d.ts +10 -0
  113. package/es/components/pay/toC/PaymentMethods/WalletPass/List/index.d.ts +22 -0
  114. package/es/components/pay/toC/PaymentMethods/WalletPass/index.d.ts +25 -0
  115. package/es/components/pay/toC/PaymentMethods/WalletPass/utils.d.ts +16 -0
  116. package/es/components/pay/toC/PaymentMethods/index.d.ts +9 -0
  117. package/es/components/pay/toC/index.d.ts +3 -0
  118. package/es/components/pay/toC/locales.d.ts +631 -0
  119. package/es/components/pay/toC/payGroup.d.ts +59 -0
  120. package/es/components/pay/toC/serve.d.ts +87 -0
  121. package/es/components/pay/toC/utils.d.ts +65 -0
  122. package/es/components/pisellSelectCustomerModal/RightPanel/Add/BirthdayField/index.d.ts +1 -0
  123. package/es/components/pisellSelectCustomerModal/RightPanel/Add/GenderField/index.d.ts +1 -0
  124. package/es/components/pisellSelectCustomerModal/RightPanel/Add/index.d.ts +1 -0
  125. package/es/components/productExtension/fields/Actor/index.d.ts +1 -0
  126. package/es/components/productExtension/fields/Forms/index.d.ts +1 -0
  127. package/es/components/productExtension/fields/SelectProducts/ProductItem/index.d.ts +1 -0
  128. package/es/components/productExtension/fields/SelectProducts/ProductItemPreview/index.d.ts +1 -0
  129. package/es/components/productExtension/fields/SelectProducts/index.d.ts +1 -0
  130. package/es/components/productExtension/fields/SelectResourcesTable/index.d.ts +1 -0
  131. package/es/components/ruleSetting/locales.d.ts +78 -0
  132. package/es/components/ruleSetting/ruleBorder/index.d.ts +1 -0
  133. package/es/components/scanOrder/components/Cart/index.d.ts +2 -0
  134. package/es/components/scanOrder/components/Cart/index.js +58 -24
  135. package/es/components/scanOrder/components/Cart/index.less +61 -8
  136. package/es/components/scanOrder/components/Check/index.js +232 -51
  137. package/es/components/scanOrder/components/Check/index.less +30 -0
  138. package/es/components/scanOrder/components/Content/index.js +358 -121
  139. package/es/components/scanOrder/components/Footer/index.d.ts +2 -0
  140. package/es/components/scanOrder/components/Footer/index.js +4 -2
  141. package/es/components/scanOrder/components/Footer/index.less +16 -7
  142. package/es/components/scanOrder/components/FulfillmentMode/index.d.ts +11 -0
  143. package/es/components/scanOrder/components/FulfillmentMode/index.js +90 -0
  144. package/es/components/scanOrder/components/FulfillmentMode/index.less +40 -0
  145. package/es/components/scanOrder/components/ManualPickupRefModal/index.d.ts +16 -0
  146. package/es/components/scanOrder/components/ManualPickupRefModal/index.js +87 -0
  147. package/es/components/scanOrder/components/ManualPickupRefModal/index.less +61 -0
  148. package/es/components/scanOrder/context.js +104 -21
  149. package/es/components/scanOrder/locales.d.ts +55 -0
  150. package/es/components/scanOrder/locales.js +55 -0
  151. package/es/components/scanOrder/types.d.ts +23 -0
  152. package/es/components/scanOrder/utils/toShoppingCartProducts.d.ts +2 -1
  153. package/es/components/scanOrder/utils/toShoppingCartProducts.js +15 -9
  154. package/es/components/scanOrder/utils/transformProductDetail.d.ts +2 -1
  155. package/es/components/scanOrder/utils/transformProductDetail.js +7 -6
  156. package/es/components/schedules/calendar/calendarItem.d.ts +1 -0
  157. package/es/components/schedules/calendar/index.d.ts +1 -0
  158. package/es/components/schedules/components/CurrentDay/index.d.ts +1 -0
  159. package/es/components/schedules/components/ScheduleDetailList/index.d.ts +1 -0
  160. package/es/components/schedules/components/ScheduleList/index.d.ts +1 -0
  161. package/es/components/schedules/products/ProductDetailDrawer/ProductDetail/MaxParticipantsModule/index.d.ts +1 -0
  162. package/es/components/schedules/products/ProductDetailDrawer/ProductDetail/ResourcesModule/index.d.ts +1 -0
  163. package/es/components/schedules/products/ProductDetailDrawer/ProductDetail/index.d.ts +1 -0
  164. package/es/components/schedules/products/ProductDetailDrawer/ProductDetailByDate/index.d.ts +1 -0
  165. package/es/components/schedules/products/ProductDetailDrawer/index.d.ts +1 -0
  166. package/es/components/schedules/products/index.d.ts +1 -0
  167. package/es/components/schedules/products/list/ProductItem/index.d.ts +1 -0
  168. package/es/components/schedules/products/list/index.d.ts +1 -0
  169. package/es/components/schedules/resources/index.d.ts +1 -0
  170. package/es/components/schedules/resources/list/index.d.ts +1 -0
  171. package/es/components/schedules/resources/relationProduct/index.d.ts +1 -0
  172. package/es/components/schedules/schedules/AllSchedules/index.d.ts +1 -0
  173. package/es/components/schedules/schedules/ScheduleDetailDrawer/index.d.ts +1 -0
  174. package/es/components/schedules/schedules/index.d.ts +1 -0
  175. package/es/components/shoppingCart/components/Empty/index.d.ts +1 -0
  176. package/es/components/shoppingCart/components/Render/index.d.ts +1 -0
  177. package/es/components/shoppingCart/index.d.ts +1 -0
  178. package/es/components/systemSettings/registry/components/GroupModal.js +8 -1
  179. package/es/components/systemSettings/registry/components/ItemModal.js +3 -0
  180. package/es/components/systemSettings/registry/index.js +3 -1
  181. package/es/components/systemSettings/registry/services.d.ts +2 -0
  182. package/es/components/systemSettings/registry/types.d.ts +3 -0
  183. package/es/components/ticketBooking/components/addServiceVariant/addService.d.ts +9 -0
  184. package/es/components/ticketBooking/components/ticketBooking/index.d.ts +4 -0
  185. package/es/components/ticketBooking/components/timeBar/index.d.ts +12 -0
  186. package/es/components/ticketBooking/index.d.ts +7 -0
  187. package/es/components/venueBooking/components/VenueSelection/components/TimeGrid.js +130 -18
  188. package/es/components/venueBooking/context.js +38 -12
  189. package/es/components/venueBooking/hooks.d.ts +16 -3
  190. package/es/components/venueBooking/hooks.js +16 -4
  191. package/es/components/venueBooking/types.d.ts +19 -2
  192. package/es/hooks/usePaymentLogger.d.ts +1 -0
  193. package/es/index.d.ts +87 -0
  194. package/es/index.js +1 -1
  195. package/es/plus/clientName/index.d.ts +1 -0
  196. package/es/plus/clinetSearch/Add/BirthdayField/index.d.ts +1 -0
  197. package/es/plus/clinetSearch/Add/GenderField/index.d.ts +1 -0
  198. package/es/plus/clinetSearch/Add/PhoneField/index.d.ts +1 -0
  199. package/es/plus/pisellReservation/floorRoomCard/views/RoomCardIcons.d.ts +1 -0
  200. package/es/plus/pisellSalesManagement/config/booking.d.ts +6 -6
  201. package/es/plus/pisellSalesManagement/hooks/useSalesGridData.d.ts +1 -0
  202. package/es/plus/pisellSalesProductCard/index.js +16 -1
  203. package/es/plus/pisellSalesProductCard/types.d.ts +21 -1
  204. package/es/plus/productSelect/ProductCard/ProductCardV2.js +6 -2
  205. package/es/plus/saasCreateOrganization/components/Header.d.ts +1 -0
  206. package/es/plus/saasRegister/components/EntryEmail.d.ts +1 -0
  207. package/es/plus/saasRegister/components/EntryInfo.d.ts +1 -0
  208. package/es/plus/saasRegister/components/GoLogin.d.ts +1 -0
  209. package/es/plus/saasRegister/components/Header.d.ts +1 -0
  210. package/es/plus/saasRegister/components/VerifyError.d.ts +1 -0
  211. package/es/plus/saasRegister/components/VerifyingLink.d.ts +1 -0
  212. package/es/plus/skuOptionsSelection/components/NormalCard/index.d.ts +6 -0
  213. package/es/plus/skuOptionsSelection/components/OptionsCard/OptionItemCard.d.ts +3 -0
  214. package/es/plus/skuOptionsSelection/components/OptionsModal/index.d.ts +15 -0
  215. package/es/plus/skuOptionsSelection/components/TitleExtra/index.d.ts +1 -0
  216. package/es/plus/skuOptionsSelection/components/VariantCard/index.d.ts +1 -0
  217. package/es/plus/skuOptionsSelection/index.d.ts +5 -0
  218. package/es/plus/skuOptionsSelection/locales.d.ts +58 -0
  219. package/es/plus/skuOptionsSelection/types.d.ts +458 -0
  220. package/es/plus/skuOptionsSelection/utils/transformBundleGroup.d.ts +19 -0
  221. package/es/plus/skuOptionsSelection/utils/transformOptionGroup.d.ts +1 -0
  222. package/es/plus/skuOptionsSelection/utils/transformSelectorValueToValue.d.ts +4 -0
  223. package/es/plus/skuOptionsSelection/utils/transformValueToSelectorValue.d.ts +4 -0
  224. package/es/plus/skuOptionsSelection/utils/transformVariantGroup.d.ts +1 -0
  225. package/es/plus/walletEditor/components/ImageUpload/index.d.ts +1 -1
  226. package/es/plus/walletEditor/components/relationProduct/index.d.ts +1 -0
  227. package/es/pro/Cards/components/SKUCard/index.d.ts +5 -0
  228. package/es/pro/Login2.0/components/phoneValidation.d.ts +17 -0
  229. package/es/pro/NumericStepper/index.d.ts +19 -0
  230. package/es/pro/NumericStepper/index.js +37 -6
  231. package/es/pro/Selector/demo.d.ts +1 -0
  232. package/lib/components/appointmentBooking/components/Form/index.d.ts +4 -0
  233. package/lib/components/appointmentBooking/components/Services/index.d.ts +4 -0
  234. package/lib/components/appointmentBooking/deposit/components/PolicyModal/index.d.ts +3 -0
  235. package/lib/components/appointmentBooking/hooks.d.ts +107 -0
  236. package/lib/components/appointmentBooking/utils.d.ts +227 -0
  237. package/lib/components/authentication/admin/ChannelAuthSetting/OnlineShopAuth/index.js +19 -4
  238. package/lib/components/authentication/admin/ChannelAuthSetting/index.js +1 -1
  239. package/lib/components/booking/components/TabProduct/index.d.ts +1 -0
  240. package/lib/components/booking/components/TabProduct/productItem/index.d.ts +1 -0
  241. package/lib/components/booking/components/TabProduct/selectProductItem/index.d.ts +1 -0
  242. package/lib/components/booking/components/collapsibleList/utils.d.ts +1 -0
  243. package/lib/components/booking/components/emptyBooking/index.d.ts +1 -0
  244. package/lib/components/booking/components/footer/FooterMenus/index.d.ts +1 -0
  245. package/lib/components/booking/components/footer/utils.d.ts +47 -0
  246. package/lib/components/booking/components/formItemChildrenWrap/index.d.ts +1 -0
  247. package/lib/components/booking/components/reloadResourceModal/index.d.ts +9 -0
  248. package/lib/components/booking/components/voucher/index.d.ts +3 -0
  249. package/lib/components/booking/forms/single/index.d.ts +1 -0
  250. package/lib/components/booking/forms/table/index.d.ts +1 -0
  251. package/lib/components/booking/info/clientVariant/hooks/useClientFn.d.ts +1 -0
  252. package/lib/components/booking/info/clientVariant/hooks/useIsLowSpeedNetwork.d.ts +1 -0
  253. package/lib/components/booking/info/date/index.d.ts +1 -0
  254. package/lib/components/booking/info/notes/index.d.ts +1 -0
  255. package/lib/components/booking/info/service/actions/index.d.ts +1 -0
  256. package/lib/components/booking/info/service/editService/constants.d.ts +1 -0
  257. package/lib/components/booking/info/service/editService/index.d.ts +7 -0
  258. package/lib/components/booking/info/service/like/index.d.ts +1 -0
  259. package/lib/components/booking/info/service2/utils.d.ts +248 -0
  260. package/lib/components/booking/info2/index.d.ts +12 -0
  261. package/lib/components/booking/info2/service/actions/index.d.ts +1 -0
  262. package/lib/components/booking/info2/service/addService/index.d.ts +11 -0
  263. package/lib/components/booking/info2/service/contactInfoMode/index.d.ts +1 -0
  264. package/lib/components/booking/locales.d.ts +1489 -0
  265. package/lib/components/booking/materiels/contacts/index.d.ts +1 -0
  266. package/lib/components/booking/materiels/duration/index.d.ts +1 -0
  267. package/lib/components/booking/materiels/holder/index.d.ts +1 -0
  268. package/lib/components/booking/materiels/startTime/index.d.ts +1 -0
  269. package/lib/components/booking/model.d.ts +120 -0
  270. package/lib/components/booking/notes/NoteBlock/NoteItem/index.d.ts +1 -0
  271. package/lib/components/booking/utils.d.ts +2 -2
  272. package/lib/components/ecocup/components/CupInfoCard/index.d.ts +1 -0
  273. package/lib/components/ecocup/components/CustomerCard/index.d.ts +1 -0
  274. package/lib/components/eftpos/deviceList/index.d.ts +1 -0
  275. package/lib/components/eftpos/form/index.d.ts +1 -0
  276. package/lib/components/eftpos/group/index.d.ts +1 -0
  277. package/lib/components/eftpos/icon/apiKey.d.ts +1 -0
  278. package/lib/components/eftpos/icon/device.d.ts +1 -0
  279. package/lib/components/eftpos/pos.d.ts +1 -0
  280. package/lib/components/eftpos/receipt/index.d.ts +1 -0
  281. package/lib/components/eftposPay/amount.d.ts +21 -0
  282. package/lib/components/eftposPay/app.d.ts +10 -0
  283. package/lib/components/eftposPay/component/alert/warn.d.ts +1 -0
  284. package/lib/components/eftposPay/component/fail/failCustom.d.ts +3 -0
  285. package/lib/components/eftposPay/component/fail/index.d.ts +3 -0
  286. package/lib/components/eftposPay/component/fail/network.d.ts +9 -0
  287. package/lib/components/eftposPay/component/fail/unknow.d.ts +10 -0
  288. package/lib/components/eftposPay/component/header/titlebar.d.ts +1 -0
  289. package/lib/components/eftposPay/component/manual/index.d.ts +9 -0
  290. package/lib/components/eftposPay/component/signature/index.d.ts +9 -0
  291. package/lib/components/eftposPay/component/step/index.d.ts +1 -0
  292. package/lib/components/eftposPay/component/step/step.d.ts +1 -0
  293. package/lib/components/eftposPay/device.d.ts +23 -0
  294. package/lib/components/eftposPay/hooks.d.ts +2 -2
  295. package/lib/components/eftposPay/index.d.ts +4 -0
  296. package/lib/components/eftposPay/linkly/hooks/normal.d.ts +30 -0
  297. package/lib/components/eftposPay/linkly/hooks/useTimeQuery.d.ts +4 -0
  298. package/lib/components/eftposPay/linkly/index.d.ts +2 -0
  299. package/lib/components/eftposPay/pay.d.ts +20 -0
  300. package/lib/components/eftposPay/payo/config.d.ts +13 -0
  301. package/lib/components/eftposPay/payo/hooks.d.ts +10 -0
  302. package/lib/components/eftposPay/payo/payment.d.ts +66 -0
  303. package/lib/components/eftposPay/store/index.d.ts +5 -5
  304. package/lib/components/eftposPay/tip.d.ts +10 -0
  305. package/lib/components/eftposPay/tyro/hooks.d.ts +1 -0
  306. package/lib/components/eftposPay/tyro/index.d.ts +9 -0
  307. package/lib/components/eftposPay/utils/payLog.d.ts +81 -0
  308. package/lib/components/eftposPay/windcave/receiptAction.d.ts +23 -0
  309. package/lib/components/eftposPay/windcave/windcave.d.ts +7 -0
  310. package/lib/components/eventBooking/components/Provider/Cart/Deposit/index.d.ts +1 -0
  311. package/lib/components/eventBooking/components/Provider/Header/index.d.ts +1 -0
  312. package/lib/components/eventBooking/components/Provider/SelectHolderModal.d.ts +1 -0
  313. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateStatus/index.d.ts +1 -0
  314. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/DayItem/index.d.ts +1 -0
  315. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/index.d.ts +1 -0
  316. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Status/index.d.ts +1 -0
  317. package/lib/components/eventBooking/components/bookingDetailModal/components/Resource.d.ts +1 -0
  318. package/lib/components/eventBooking/components/bookingDetailModal/components/Schedule.d.ts +1 -0
  319. package/lib/components/eventBooking/components/scheduleCalendar/ProductItem/index.d.ts +1 -0
  320. package/lib/components/kioskSkuDetail/index.d.ts +39 -0
  321. package/lib/components/kioskSkuDetail/locales.d.ts +48 -0
  322. package/lib/components/login/index.d.ts +1 -0
  323. package/lib/components/pay/toC/PaymentMethods/GlobePayAliPayH5/index.d.ts +10 -0
  324. package/lib/components/pay/toC/PaymentMethods/GlobePayPaypalH5/index.d.ts +10 -0
  325. package/lib/components/pay/toC/PaymentMethods/GlobePayWxH5/index.d.ts +10 -0
  326. package/lib/components/pay/toC/PaymentMethods/MWCreditCard/TDSPay/index.d.ts +16 -0
  327. package/lib/components/pay/toC/PaymentMethods/MWCreditCard/index.d.ts +15 -0
  328. package/lib/components/pay/toC/PaymentMethods/MWCreditCard/tds2.d.ts +83 -0
  329. package/lib/components/pay/toC/PaymentMethods/MWCreditCard/tds2.js +2 -0
  330. package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/StripeSDK/index.d.ts +1 -0
  331. package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/index.d.ts +1 -0
  332. package/lib/components/pay/toC/PaymentMethods/SuperPayAliPayH5/index.d.ts +10 -0
  333. package/lib/components/pay/toC/PaymentMethods/SuperPayWxPayH5/index.d.ts +10 -0
  334. package/lib/components/pay/toC/PaymentMethods/WalletPass/List/index.d.ts +22 -0
  335. package/lib/components/pay/toC/PaymentMethods/WalletPass/index.d.ts +25 -0
  336. package/lib/components/pay/toC/PaymentMethods/WalletPass/utils.d.ts +16 -0
  337. package/lib/components/pay/toC/PaymentMethods/index.d.ts +9 -0
  338. package/lib/components/pay/toC/index.d.ts +3 -0
  339. package/lib/components/pay/toC/locales.d.ts +631 -0
  340. package/lib/components/pay/toC/payGroup.d.ts +59 -0
  341. package/lib/components/pay/toC/serve.d.ts +87 -0
  342. package/lib/components/pay/toC/utils.d.ts +65 -0
  343. package/lib/components/pisellSelectCustomerModal/RightPanel/Add/BirthdayField/index.d.ts +1 -0
  344. package/lib/components/pisellSelectCustomerModal/RightPanel/Add/GenderField/index.d.ts +1 -0
  345. package/lib/components/pisellSelectCustomerModal/RightPanel/Add/index.d.ts +1 -0
  346. package/lib/components/productExtension/fields/Actor/index.d.ts +1 -0
  347. package/lib/components/productExtension/fields/Forms/index.d.ts +1 -0
  348. package/lib/components/productExtension/fields/SelectProducts/ProductItem/index.d.ts +1 -0
  349. package/lib/components/productExtension/fields/SelectProducts/ProductItemPreview/index.d.ts +1 -0
  350. package/lib/components/productExtension/fields/SelectProducts/index.d.ts +1 -0
  351. package/lib/components/productExtension/fields/SelectResourcesTable/index.d.ts +1 -0
  352. package/lib/components/ruleSetting/locales.d.ts +78 -0
  353. package/lib/components/ruleSetting/ruleBorder/index.d.ts +1 -0
  354. package/lib/components/scanOrder/components/Cart/index.d.ts +2 -0
  355. package/lib/components/scanOrder/components/Cart/index.js +43 -9
  356. package/lib/components/scanOrder/components/Cart/index.less +61 -8
  357. package/lib/components/scanOrder/components/Check/index.js +97 -8
  358. package/lib/components/scanOrder/components/Check/index.less +30 -0
  359. package/lib/components/scanOrder/components/Content/index.js +215 -69
  360. package/lib/components/scanOrder/components/Footer/index.d.ts +2 -0
  361. package/lib/components/scanOrder/components/Footer/index.js +2 -2
  362. package/lib/components/scanOrder/components/Footer/index.less +16 -7
  363. package/lib/components/scanOrder/components/FulfillmentMode/index.d.ts +11 -0
  364. package/lib/components/scanOrder/components/FulfillmentMode/index.js +96 -0
  365. package/lib/components/scanOrder/components/FulfillmentMode/index.less +40 -0
  366. package/lib/components/scanOrder/components/ManualPickupRefModal/index.d.ts +16 -0
  367. package/lib/components/scanOrder/components/ManualPickupRefModal/index.js +116 -0
  368. package/lib/components/scanOrder/components/ManualPickupRefModal/index.less +61 -0
  369. package/lib/components/scanOrder/context.js +80 -12
  370. package/lib/components/scanOrder/locales.d.ts +55 -0
  371. package/lib/components/scanOrder/locales.js +55 -0
  372. package/lib/components/scanOrder/types.d.ts +23 -0
  373. package/lib/components/scanOrder/utils/toShoppingCartProducts.d.ts +2 -1
  374. package/lib/components/scanOrder/utils/toShoppingCartProducts.js +8 -5
  375. package/lib/components/scanOrder/utils/transformProductDetail.d.ts +2 -1
  376. package/lib/components/scanOrder/utils/transformProductDetail.js +1 -9
  377. package/lib/components/schedules/calendar/calendarItem.d.ts +1 -0
  378. package/lib/components/schedules/calendar/index.d.ts +1 -0
  379. package/lib/components/schedules/components/CurrentDay/index.d.ts +1 -0
  380. package/lib/components/schedules/components/ScheduleDetailList/index.d.ts +1 -0
  381. package/lib/components/schedules/components/ScheduleList/index.d.ts +1 -0
  382. package/lib/components/schedules/products/ProductDetailDrawer/ProductDetail/MaxParticipantsModule/index.d.ts +1 -0
  383. package/lib/components/schedules/products/ProductDetailDrawer/ProductDetail/ResourcesModule/index.d.ts +1 -0
  384. package/lib/components/schedules/products/ProductDetailDrawer/ProductDetail/index.d.ts +1 -0
  385. package/lib/components/schedules/products/ProductDetailDrawer/ProductDetailByDate/index.d.ts +1 -0
  386. package/lib/components/schedules/products/ProductDetailDrawer/index.d.ts +1 -0
  387. package/lib/components/schedules/products/index.d.ts +1 -0
  388. package/lib/components/schedules/products/list/ProductItem/index.d.ts +1 -0
  389. package/lib/components/schedules/products/list/index.d.ts +1 -0
  390. package/lib/components/schedules/resources/index.d.ts +1 -0
  391. package/lib/components/schedules/resources/list/index.d.ts +1 -0
  392. package/lib/components/schedules/resources/relationProduct/index.d.ts +1 -0
  393. package/lib/components/schedules/schedules/AllSchedules/index.d.ts +1 -0
  394. package/lib/components/schedules/schedules/ScheduleDetailDrawer/index.d.ts +1 -0
  395. package/lib/components/schedules/schedules/index.d.ts +1 -0
  396. package/lib/components/shoppingCart/components/Empty/index.d.ts +1 -0
  397. package/lib/components/shoppingCart/components/Render/index.d.ts +1 -0
  398. package/lib/components/shoppingCart/index.d.ts +1 -0
  399. package/lib/components/systemSettings/registry/components/GroupModal.js +71 -72
  400. package/lib/components/systemSettings/registry/components/ItemModal.js +2 -1
  401. package/lib/components/systemSettings/registry/index.js +3 -1
  402. package/lib/components/systemSettings/registry/services.d.ts +2 -0
  403. package/lib/components/systemSettings/registry/types.d.ts +3 -0
  404. package/lib/components/ticketBooking/components/addServiceVariant/addService.d.ts +9 -0
  405. package/lib/components/ticketBooking/components/ticketBooking/index.d.ts +4 -0
  406. package/lib/components/ticketBooking/components/timeBar/index.d.ts +12 -0
  407. package/lib/components/ticketBooking/index.d.ts +7 -0
  408. package/lib/components/venueBooking/components/VenueSelection/components/TimeGrid.js +119 -19
  409. package/lib/components/venueBooking/context.js +16 -7
  410. package/lib/components/venueBooking/hooks.d.ts +16 -3
  411. package/lib/components/venueBooking/hooks.js +8 -2
  412. package/lib/components/venueBooking/types.d.ts +19 -2
  413. package/lib/hooks/usePaymentLogger.d.ts +1 -0
  414. package/lib/index.d.ts +87 -0
  415. package/lib/index.js +2 -0
  416. package/lib/plus/clientName/index.d.ts +1 -0
  417. package/lib/plus/clinetSearch/Add/BirthdayField/index.d.ts +1 -0
  418. package/lib/plus/clinetSearch/Add/GenderField/index.d.ts +1 -0
  419. package/lib/plus/clinetSearch/Add/PhoneField/index.d.ts +1 -0
  420. package/lib/plus/pisellReservation/floorRoomCard/views/RoomCardIcons.d.ts +1 -0
  421. package/lib/plus/pisellSalesManagement/config/booking.d.ts +6 -6
  422. package/lib/plus/pisellSalesManagement/hooks/useSalesGridData.d.ts +1 -0
  423. package/lib/plus/pisellSalesProductCard/index.js +10 -0
  424. package/lib/plus/pisellSalesProductCard/types.d.ts +21 -1
  425. package/lib/plus/productSelect/ProductCard/ProductCardV2.js +6 -2
  426. package/lib/plus/saasCreateOrganization/components/Header.d.ts +1 -0
  427. package/lib/plus/saasRegister/components/EntryEmail.d.ts +1 -0
  428. package/lib/plus/saasRegister/components/EntryInfo.d.ts +1 -0
  429. package/lib/plus/saasRegister/components/GoLogin.d.ts +1 -0
  430. package/lib/plus/saasRegister/components/Header.d.ts +1 -0
  431. package/lib/plus/saasRegister/components/VerifyError.d.ts +1 -0
  432. package/lib/plus/saasRegister/components/VerifyingLink.d.ts +1 -0
  433. package/lib/plus/skuOptionsSelection/components/NormalCard/index.d.ts +6 -0
  434. package/lib/plus/skuOptionsSelection/components/OptionsCard/OptionItemCard.d.ts +3 -0
  435. package/lib/plus/skuOptionsSelection/components/OptionsModal/index.d.ts +15 -0
  436. package/lib/plus/skuOptionsSelection/components/TitleExtra/index.d.ts +1 -0
  437. package/lib/plus/skuOptionsSelection/components/VariantCard/index.d.ts +1 -0
  438. package/lib/plus/skuOptionsSelection/index.d.ts +5 -0
  439. package/lib/plus/skuOptionsSelection/locales.d.ts +58 -0
  440. package/lib/plus/skuOptionsSelection/types.d.ts +458 -0
  441. package/lib/plus/skuOptionsSelection/utils/transformBundleGroup.d.ts +19 -0
  442. package/lib/plus/skuOptionsSelection/utils/transformOptionGroup.d.ts +1 -0
  443. package/lib/plus/skuOptionsSelection/utils/transformSelectorValueToValue.d.ts +4 -0
  444. package/lib/plus/skuOptionsSelection/utils/transformValueToSelectorValue.d.ts +4 -0
  445. package/lib/plus/skuOptionsSelection/utils/transformVariantGroup.d.ts +1 -0
  446. package/lib/plus/walletEditor/components/ImageUpload/index.d.ts +1 -1
  447. package/lib/plus/walletEditor/components/relationProduct/index.d.ts +1 -0
  448. package/lib/pro/Cards/components/SKUCard/index.d.ts +5 -0
  449. package/lib/pro/Login2.0/components/phoneValidation.d.ts +17 -0
  450. package/lib/pro/NumericStepper/index.d.ts +19 -0
  451. package/lib/pro/NumericStepper/index.js +21 -4
  452. package/lib/pro/Selector/demo.d.ts +1 -0
  453. package/lowcode/admin-auth-channel-auth/meta.ts +116 -0
  454. package/lowcode/admin-auth-online-shop-auth/meta.ts +81 -5
  455. package/package.json +1 -1
@@ -165,13 +165,17 @@ function TimeGrid() {
165
165
  scroller.addEventListener("wheel", onWheel, { passive: false });
166
166
  return () => scroller.removeEventListener("wheel", onWheel);
167
167
  }, []);
168
- function handleSlotClick(resourceId, slot) {
168
+ const [expandedResources, setExpandedResources] = (0, import_react.useState)({});
169
+ const toggleExpanded = (0, import_react.useCallback)((resourceId) => {
170
+ setExpandedResources((prev) => ({ ...prev, [String(resourceId)]: !prev[String(resourceId)] }));
171
+ }, []);
172
+ function handleSlotClick(resourceId, productId, slot) {
169
173
  if (dragStateRef.current.moved) {
170
174
  dragStateRef.current.moved = false;
171
175
  return;
172
176
  }
173
177
  if (slot.status !== "available") return;
174
- toggleSlot(resourceId, slot);
178
+ toggleSlot(resourceId, productId, slot);
175
179
  }
176
180
  if (isGridLoading || !grid || !timeLabels.length) {
177
181
  return /* @__PURE__ */ import_react.default.createElement(TimeGridSkeleton, null);
@@ -246,34 +250,73 @@ function TimeGrid() {
246
250
  },
247
251
  /* @__PURE__ */ import_react.default.createElement("div", { className: "w-full", key: grid.date }, visibleResources.map((resource) => {
248
252
  const courtMeta = (0, import_utils2.getResourceCourtMeta)(resource);
249
- return /* @__PURE__ */ import_react.default.createElement("div", { key: `${resource.resourceId}-${grid.date}`, className: "grid border-b border-black/6", style: tableGridStyle }, /* @__PURE__ */ import_react.default.createElement("div", { className: `sticky left-0 z-10 border-r border-black/6 px-2 py-2 shadow-[10px_0_16px_-14px_rgba(0,0,0,0.2)] md:px-4 ${courtMeta.soldOut ? "bg-zinc-50" : "bg-white"}` }, /* @__PURE__ */ import_react.default.createElement("div", { className: "flex items-start justify-between gap-2" }, /* @__PURE__ */ import_react.default.createElement("div", null, /* @__PURE__ */ import_react.default.createElement("div", { className: `text-[13px] font-extrabold leading-5 md:text-[15px] ${courtMeta.soldOut ? "text-zinc-400" : "text-zinc-900"}` }, resource.resourceName)))), resource.slots.map((slot, slotIndex) => {
253
+ const isMultiProduct = !!resource.hasMultipleProducts && Array.isArray(resource.products);
254
+ const expanded = !!expandedResources[String(resource.resourceId)];
255
+ return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, { key: `${resource.resourceId}-${grid.date}` }, /* @__PURE__ */ import_react.default.createElement("div", { className: "grid border-b border-black/6", style: tableGridStyle }, /* @__PURE__ */ import_react.default.createElement("div", { className: `sticky left-0 z-10 border-r border-black/6 px-2 py-2 shadow-[10px_0_16px_-14px_rgba(0,0,0,0.2)] md:px-4 ${courtMeta.soldOut ? "bg-zinc-50" : "bg-white"}` }, /* @__PURE__ */ import_react.default.createElement("div", { className: "flex items-start justify-between gap-2" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "flex items-center gap-1.5" }, isMultiProduct ? /* @__PURE__ */ import_react.default.createElement(
256
+ "button",
257
+ {
258
+ type: "button",
259
+ "data-cart-button": "true",
260
+ onClick: (e) => {
261
+ e.stopPropagation();
262
+ toggleExpanded(resource.resourceId);
263
+ },
264
+ className: "flex h-5 w-5 items-center justify-center rounded text-zinc-500 hover:bg-black/5",
265
+ "aria-label": expanded ? "collapse" : "expand"
266
+ },
267
+ /* @__PURE__ */ import_react.default.createElement(
268
+ import_materials.Iconfont,
269
+ {
270
+ type: expanded ? "pisell2-chevron-down" : "pisell2-chevron-right",
271
+ style: { fontSize: 12 }
272
+ }
273
+ )
274
+ ) : null, /* @__PURE__ */ import_react.default.createElement("div", { className: `text-[13px] font-extrabold leading-5 md:text-[15px] ${courtMeta.soldOut ? "text-zinc-400" : "text-zinc-900"}` }, resource.resourceName)))), resource.slots.map((slot, slotIndex) => {
250
275
  const isAvailable = slot.status === "available";
251
276
  const isUnavailable = slot.status === "occupied" || slot.status === "past" || slot.status === "unavailable";
252
- const selected = isAvailable && (0, import_hooks.isSlotSelected)(
253
- venueBookingModule,
254
- resource.resourceId,
255
- slot.startTime
256
- );
277
+ const timeLabel = timeLabels[slotIndex] || "";
257
278
  const priceInfo = (0, import_utils2.buildSlotPriceInfo)(slot);
258
279
  const priceClass = (0, import_utils2.getPriceColor)({ ...priceInfo, courtType: resource.productTitle });
259
- const timeLabel = timeLabels[slotIndex] || "";
260
280
  const tag = (0, import_utils2.getSlotTag)(priceInfo);
261
281
  const tagText = (tag == null ? void 0 : tag.text) === "pisell2.venue.label.promo" ? import_utils.locales.getText("pisell2.venue.label.promo") || "促销" : (tag == null ? void 0 : tag.text) === "pisell2.venue.label.off.peak" ? import_utils.locales.getText("pisell2.venue.label.off.peak") || "非高峰" : null;
282
+ const productIdForSingle = resource.productId;
283
+ const disabledBySelection = !isMultiProduct && !isUnavailable ? (0, import_hooks.isSlotDisabledBySelection)(venueBookingModule, {
284
+ resourceId: resource.resourceId,
285
+ productId: productIdForSingle,
286
+ startTime: slot.startTime
287
+ }) : false;
288
+ const isBlocked = isUnavailable || disabledBySelection;
289
+ const selected = !isMultiProduct && isAvailable && (0, import_hooks.isSlotSelected)(
290
+ venueBookingModule,
291
+ resource.resourceId,
292
+ slot.startTime,
293
+ productIdForSingle
294
+ );
295
+ const interactive = !isMultiProduct && !isBlocked;
296
+ const showPlusLabel = isMultiProduct && !isBlocked;
262
297
  return /* @__PURE__ */ import_react.default.createElement(
263
298
  "button",
264
299
  {
265
300
  "data-slot-button": "true",
266
- key: `${resource.resourceId}-${slot.startTime}`,
267
- onClick: () => handleSlotClick(resource.resourceId, slot),
268
- disabled: isUnavailable,
269
- className: `px-1 py-2 text-center transition md:px-2 ${isUnavailable ? "cursor-not-allowed bg-zinc-100 text-zinc-400" : selected ? "text-white" : "bg-white hover:bg-[#fff6f6]"}`,
301
+ key: `${resource.resourceId}-outer-${slot.startTime}`,
302
+ onClick: () => {
303
+ if (isMultiProduct) {
304
+ if (isBlocked) return;
305
+ toggleExpanded(resource.resourceId);
306
+ return;
307
+ }
308
+ if (isBlocked) return;
309
+ handleSlotClick(resource.resourceId, productIdForSingle, slot);
310
+ },
311
+ disabled: isBlocked,
312
+ className: `px-1 py-2 text-center transition md:px-2 ${isBlocked ? "cursor-not-allowed bg-zinc-100 text-zinc-400" : selected ? "text-white" : "bg-white hover:bg-[#fff6f6]"}`,
270
313
  style: {
271
314
  borderLeft: (0, import_utils2.isHourBoundary)(timeLabel) ? "1px solid rgba(0,0,0,0.08)" : "1px solid rgba(0,0,0,0.03)",
272
315
  borderBottom: "1px solid rgba(0,0,0,0.04)",
273
- ...selected && !isUnavailable ? { backgroundColor: "var(--vb-primary)" } : null
316
+ ...selected && interactive ? { backgroundColor: "var(--vb-primary)" } : null
274
317
  }
275
318
  },
276
- isUnavailable ? /* @__PURE__ */ import_react.default.createElement("div", { className: "flex flex-col items-center justify-center gap-1 text-zinc-400" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "text-lg font-bold leading-none" }, "×")) : selected ? /* @__PURE__ */ import_react.default.createElement("div", { className: "space-y-0.5" }, /* @__PURE__ */ import_react.default.createElement(
319
+ isBlocked ? /* @__PURE__ */ import_react.default.createElement("div", { className: "flex flex-col items-center justify-center gap-1 text-zinc-400" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "text-lg font-bold leading-none" }, "×")) : selected ? /* @__PURE__ */ import_react.default.createElement("div", { className: "space-y-0.5" }, /* @__PURE__ */ import_react.default.createElement(
277
320
  import_materials.PisellText.Amount,
278
321
  {
279
322
  value: Number(slot.price || 0),
@@ -282,19 +325,76 @@ function TimeGrid() {
282
325
  showCurrencySymbol: true,
283
326
  className: "text-[13px] font-extrabold leading-4 text-white md:text-sm"
284
327
  }
285
- )) : /* @__PURE__ */ import_react.default.createElement("div", { className: "space-y-0.5" }, /* @__PURE__ */ import_react.default.createElement(
328
+ )) : /* @__PURE__ */ import_react.default.createElement("div", { className: "space-y-0.5" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "flex items-baseline justify-center gap-0.5" }, /* @__PURE__ */ import_react.default.createElement(
286
329
  import_materials.PisellText.Amount,
287
330
  {
288
331
  value: Number(slot.price || 0),
289
332
  symbol,
290
333
  precision: 2,
291
334
  showCurrencySymbol: true,
292
- hideDecimalForWholeNumbers: false,
335
+ hideDecimalForWholeNumbers: true,
293
336
  className: `text-[13px] font-normal leading-4 ${priceClass} md:text-sm`
294
337
  }
295
- ), tag ? /* @__PURE__ */ import_react.default.createElement("div", { className: `inline-flex rounded-full px-1.5 py-0 text-[8px] font-semibold leading-4 ring-1 md:text-[9px] ${tag.className}` }, tagText) : null)
338
+ ), showPlusLabel ? /* @__PURE__ */ import_react.default.createElement("span", { className: `text-[13px] font-semibold leading-4 ${priceClass} md:text-sm` }, "+") : null), tag ? /* @__PURE__ */ import_react.default.createElement("div", { className: `inline-flex rounded-full px-1.5 py-0 text-[8px] font-semibold leading-4 ring-1 md:text-[9px] ${tag.className}` }, tagText) : null)
296
339
  );
297
- }));
340
+ })), isMultiProduct && expanded && resource.products.map((subRow) => /* @__PURE__ */ import_react.default.createElement(
341
+ "div",
342
+ {
343
+ key: `${resource.resourceId}-sub-${subRow.productId}`,
344
+ className: "grid border-b border-black/6 bg-zinc-50/60",
345
+ style: tableGridStyle
346
+ },
347
+ /* @__PURE__ */ import_react.default.createElement("div", { className: "sticky left-0 z-10 border-r border-black/6 bg-zinc-50/60 px-2 py-2 pl-8 shadow-[10px_0_16px_-14px_rgba(0,0,0,0.2)] md:px-4 md:pl-10" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "text-[12px] font-semibold leading-5 text-zinc-700 md:text-[13px]" }, subRow.productTitle)),
348
+ subRow.slots.map((slot, slotIndex) => {
349
+ const isAvailable = slot.status === "available";
350
+ const isUnavailable = slot.status === "occupied" || slot.status === "past" || slot.status === "unavailable";
351
+ const timeLabel = timeLabels[slotIndex] || "";
352
+ const disabledBySelection = !isUnavailable && (0, import_hooks.isSlotDisabledBySelection)(venueBookingModule, {
353
+ resourceId: resource.resourceId,
354
+ productId: subRow.productId,
355
+ startTime: slot.startTime
356
+ });
357
+ const isBlocked = isUnavailable || disabledBySelection;
358
+ const selected = isAvailable && (0, import_hooks.isSlotSelected)(
359
+ venueBookingModule,
360
+ resource.resourceId,
361
+ slot.startTime,
362
+ subRow.productId
363
+ );
364
+ const interactive = !isBlocked;
365
+ const priceInfo = (0, import_utils2.buildSlotPriceInfo)(slot);
366
+ const priceClass = (0, import_utils2.getPriceColor)({ ...priceInfo, courtType: subRow.productTitle });
367
+ return /* @__PURE__ */ import_react.default.createElement(
368
+ "button",
369
+ {
370
+ "data-slot-button": "true",
371
+ key: `${resource.resourceId}-${subRow.productId}-${slot.startTime}`,
372
+ onClick: () => {
373
+ if (!interactive) return;
374
+ handleSlotClick(resource.resourceId, subRow.productId, slot);
375
+ },
376
+ disabled: !interactive,
377
+ className: `px-1 py-2 text-center transition md:px-2 ${isBlocked ? "cursor-not-allowed bg-zinc-100 text-zinc-400" : selected ? "text-white" : "bg-white hover:bg-[#fff6f6]"}`,
378
+ style: {
379
+ borderLeft: (0, import_utils2.isHourBoundary)(timeLabel) ? "1px solid rgba(0,0,0,0.08)" : "1px solid rgba(0,0,0,0.03)",
380
+ borderBottom: "1px solid rgba(0,0,0,0.04)",
381
+ ...selected && interactive ? { backgroundColor: "var(--vb-primary)" } : null
382
+ }
383
+ },
384
+ isBlocked ? /* @__PURE__ */ import_react.default.createElement("div", { className: "flex flex-col items-center justify-center gap-1 text-zinc-400" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "text-lg font-bold leading-none" }, "×")) : /* @__PURE__ */ import_react.default.createElement("div", { className: "space-y-0.5" }, /* @__PURE__ */ import_react.default.createElement(
385
+ import_materials.PisellText.Amount,
386
+ {
387
+ value: Number(slot.price || 0),
388
+ symbol,
389
+ precision: 2,
390
+ showCurrencySymbol: true,
391
+ hideDecimalForWholeNumbers: true,
392
+ className: `text-[13px] leading-4 ${selected ? "font-extrabold text-white" : `font-normal ${priceClass}`} md:text-sm`
393
+ }
394
+ ))
395
+ );
396
+ })
397
+ )));
298
398
  }))
299
399
  ));
300
400
  }
@@ -122,6 +122,7 @@ function VenueBookingProvider({ entryContext, children }) {
122
122
  const [isSubmittingOrder, setIsSubmittingOrder] = (0, import_react.useState)(false);
123
123
  const anchorDateRef = (0, import_react.useRef)(anchorDate);
124
124
  anchorDateRef.current = anchorDate;
125
+ const bootstrappedRef = (0, import_react.useRef)(false);
125
126
  const canNext = (0, import_react.useMemo)(() => {
126
127
  const allSelected = (0, import_hooks.getAllSelectedSlots)(venueBookingModule);
127
128
  if (Array.isArray(allSelected) && allSelected.length > 0) return true;
@@ -238,11 +239,12 @@ function VenueBookingProvider({ entryContext, children }) {
238
239
  setIsWeekLoading(false);
239
240
  }
240
241
  }, [venueBookingModule]);
241
- const toggleSlot = (0, import_react.useCallback)(async (resourceId, slot) => {
242
+ const toggleSlot = (0, import_react.useCallback)(async (resourceId, productId, slot) => {
242
243
  if (!venueBookingModule || !slot.price) return;
243
244
  try {
244
245
  await (0, import_hooks.toggleSlotAction)(venueBookingModule, {
245
246
  resourceId,
247
+ productId,
246
248
  startTime: slot.startTime,
247
249
  endTime: slot.endTime,
248
250
  price: slot.price
@@ -303,6 +305,12 @@ function VenueBookingProvider({ entryContext, children }) {
303
305
  console.warn("[venueBooking] handleLoginSuccess failed", error);
304
306
  }
305
307
  }, [syncCustomerLoginToModule, venueBookingModule, refreshViewModel]);
308
+ const syncCustomerLoginRef = (0, import_react.useRef)(syncCustomerLoginToModule);
309
+ syncCustomerLoginRef.current = syncCustomerLoginToModule;
310
+ const goToNearestAvailableDateRef = (0, import_react.useRef)(goToNearestAvailableDate);
311
+ goToNearestAvailableDateRef.current = goToNearestAvailableDate;
312
+ const handleLoginSuccessRef = (0, import_react.useRef)(handleLoginSuccess);
313
+ handleLoginSuccessRef.current = handleLoginSuccess;
306
314
  const submitOrder = (0, import_react.useCallback)(async () => {
307
315
  var _a2, _b2, _c2;
308
316
  if (isSubmittingOrder) return;
@@ -414,7 +422,7 @@ function VenueBookingProvider({ entryContext, children }) {
414
422
  if (!pubsub) return;
415
423
  const onGlobalLoginSuccess = async (res) => {
416
424
  if (res === "success" || (res == null ? void 0 : res.status) === "success") {
417
- await handleLoginSuccess();
425
+ await handleLoginSuccessRef.current();
418
426
  }
419
427
  };
420
428
  (_a2 = pubsub.subscribe) == null ? void 0 : _a2.call(pubsub, "pisell1.login.success", onGlobalLoginSuccess);
@@ -422,7 +430,7 @@ function VenueBookingProvider({ entryContext, children }) {
422
430
  var _a3;
423
431
  (_a3 = pubsub.unsubscribe) == null ? void 0 : _a3.call(pubsub, "pisell1.login.success", onGlobalLoginSuccess);
424
432
  };
425
- }, [utils == null ? void 0 : utils.pubsub, handleLoginSuccess]);
433
+ }, [utils == null ? void 0 : utils.pubsub]);
426
434
  (0, import_react.useEffect)(() => {
427
435
  if (!venueBookingModule) return;
428
436
  setIsGridTransition(true);
@@ -463,15 +471,16 @@ function VenueBookingProvider({ entryContext, children }) {
463
471
  };
464
472
  }, [pisellOS, venueBookingModule]);
465
473
  (0, import_react.useEffect)(() => {
466
- if (!venueBookingModule) return;
474
+ if (bootstrappedRef.current || !venueBookingModule) return;
475
+ bootstrappedRef.current = true;
467
476
  let unmounted = false;
468
477
  const bootstrap = async () => {
469
478
  try {
470
479
  setIsLoading(true);
471
- await syncCustomerLoginToModule();
480
+ await syncCustomerLoginRef.current();
472
481
  await (0, import_hooks.loadVenueProducts)(venueBookingModule, import_hooks.VENUE_PRODUCT_IDS);
473
482
  const venueProducts = typeof (venueBookingModule == null ? void 0 : venueBookingModule.getVenueProducts) === "function" ? venueBookingModule.getVenueProducts() : [];
474
- await goToNearestAvailableDate(anchorDateRef.current);
483
+ await goToNearestAvailableDateRef.current(anchorDateRef.current);
475
484
  const moduleData = (0, import_hooks.createVenueBookingViewModel)(venueBookingModule);
476
485
  if (!unmounted) {
477
486
  setViewModel((prev) => ({
@@ -506,7 +515,7 @@ function VenueBookingProvider({ entryContext, children }) {
506
515
  return () => {
507
516
  unmounted = true;
508
517
  };
509
- }, [venueBookingModule, entryContext == null ? void 0 : entryContext.biz, entryContext == null ? void 0 : entryContext.resource_id, syncCustomerLoginToModule, goToNearestAvailableDate]);
518
+ }, [venueBookingModule]);
510
519
  const value = (0, import_react.useMemo)(() => ({
511
520
  venueBookingModule,
512
521
  currentStep,
@@ -27,15 +27,28 @@ export declare function fetchResourceAvailability(module: any, startDate: string
27
27
  export declare function getDateRangeSummary(module: any, startDate: string, endDate: string): VenueDateSummaryItem[];
28
28
  /** 获取某天的时段网格(纯计算不发请求,切换日期时调用) */
29
29
  export declare function getTimeSlotGrid(module: any, date: string): VenueTimeSlotGrid | null;
30
- /** 切换选中/取消一个时段 */
30
+ /** 切换选中/取消一个时段(同一资源下多商品场景必须携带 productId) */
31
31
  export declare function toggleSlotAction(module: any, params: {
32
32
  resourceId: number;
33
+ productId: number;
33
34
  startTime: string;
34
35
  endTime: string;
35
36
  price: string;
36
37
  }): Promise<any>;
37
- /** 查询某个时段是否已被选中 */
38
- export declare function isSlotSelected(module: any, resourceId: number, startTime: string): boolean;
38
+ /**
39
+ * 查询某个时段是否已被选中
40
+ * 不传 productId 时:该资源下任一商品选中即 true;传了则精确匹配
41
+ */
42
+ export declare function isSlotSelected(module: any, resourceId: number, startTime: string, productId?: number): boolean;
43
+ /**
44
+ * 询问 OS:该 (resourceId, productId, startTime) 格子是否因其它已选项而应禁用
45
+ * 覆盖:同场地多商品互斥、组合资源 ↔ 子资源联动
46
+ */
47
+ export declare function isSlotDisabledBySelection(module: any, params: {
48
+ resourceId: number;
49
+ productId: number;
50
+ startTime: string;
51
+ }): boolean;
39
52
  /** 获取全部已选时段(按资源分组) */
40
53
  export declare function getAllSelectedSlots(module: any): any[];
41
54
  /** 查询 otherParams */
@@ -39,6 +39,7 @@ __export(hooks_exports, {
39
39
  getOtherParams: () => getOtherParams,
40
40
  getSelectedDateKeySet: () => getSelectedDateKeySet,
41
41
  getTimeSlotGrid: () => getTimeSlotGrid,
42
+ isSlotDisabledBySelection: () => isSlotDisabledBySelection,
42
43
  isSlotSelected: () => isSlotSelected,
43
44
  loadVenueProducts: () => loadVenueProducts,
44
45
  normalizeEntryContext: () => normalizeEntryContext,
@@ -110,9 +111,13 @@ function getTimeSlotGrid(module2, date) {
110
111
  async function toggleSlotAction(module2, params) {
111
112
  return safeRunModuleAction(module2, "toggleSlot", params);
112
113
  }
113
- function isSlotSelected(module2, resourceId, startTime) {
114
+ function isSlotSelected(module2, resourceId, startTime, productId) {
114
115
  if (!module2 || typeof module2.isSlotSelected !== "function") return false;
115
- return !!module2.isSlotSelected(resourceId, startTime);
116
+ return !!module2.isSlotSelected(resourceId, startTime, productId);
117
+ }
118
+ function isSlotDisabledBySelection(module2, params) {
119
+ if (!module2 || typeof module2.isSlotDisabledBySelection !== "function") return false;
120
+ return !!module2.isSlotDisabledBySelection(params);
116
121
  }
117
122
  function getAllSelectedSlots(module2) {
118
123
  if (!module2 || typeof module2.getAllSelectedSlots !== "function") return [];
@@ -212,6 +217,7 @@ function useVenueBookingLogin() {
212
217
  getOtherParams,
213
218
  getSelectedDateKeySet,
214
219
  getTimeSlotGrid,
220
+ isSlotDisabledBySelection,
215
221
  isSlotSelected,
216
222
  loadVenueProducts,
217
223
  normalizeEntryContext,
@@ -16,16 +16,33 @@ export interface VenueBookingEntryContext {
16
16
  export interface VenueResourceSlot {
17
17
  startTime: string;
18
18
  endTime: string;
19
- status: 'past' | 'occupied' | 'available';
19
+ status: 'past' | 'occupied' | 'available' | 'partially_occupied' | 'unavailable';
20
20
  price: string | null;
21
+ /** per-product 子行的 slot 带 productId;外层合并 slot 不带 */
22
+ productId?: number;
23
+ }
24
+ /** 多商品共享一个 resource 时的子行 */
25
+ export interface VenueResourceSubRow {
26
+ productId: number;
27
+ productTitle: string;
28
+ price: string;
29
+ slots: VenueResourceSlot[];
21
30
  }
22
31
  /** 单个资源/场地(来自 getTimeSlotGrid) */
23
32
  export interface VenueResource {
24
33
  resourceId: number;
25
34
  resourceName: string;
35
+ /** 单商品时唯一;多商品时取第一个(兼容字段,请优先使用 products) */
26
36
  productId: number;
27
37
  productTitle: string;
28
38
  slots: VenueResourceSlot[];
39
+ /** 多商品子行;仅当 hasMultipleProducts 时存在 */
40
+ products?: VenueResourceSubRow[];
41
+ hasMultipleProducts?: boolean;
42
+ /** 组合资源元信息(combined_resource.status === 1) */
43
+ combinedResource?: {
44
+ resourceIds: Array<number | string>;
45
+ };
29
46
  }
30
47
  /** 日期时段网格(来自 getTimeSlotGrid) */
31
48
  export interface VenueTimeSlotGrid {
@@ -162,7 +179,7 @@ export interface VenueBookingContextValue {
162
179
  setMonthCursor: (cursor: Dayjs) => void;
163
180
  setFooterActionText: (text: string) => void;
164
181
  /** 切换选中/取消某个时段(调用 OS venueBooking.toggleSlot) */
165
- toggleSlot: (resourceId: number, slot: VenueResourceSlot) => Promise<void>;
182
+ toggleSlot: (resourceId: number, productId: number, slot: VenueResourceSlot) => Promise<void>;
166
183
  /** 刷新 OS 模块视图模型(调用 getSummary + 重建 viewModel),可选传入额外字段合并 */
167
184
  refreshViewModel: (extraFields?: Partial<VenueBookingViewModel>) => Promise<void>;
168
185
  /** 拉取指定周的资源数据并刷新 dateSummary + timeSlotGrid */
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  interface LogData {
2
3
  key: string;
3
4
  value: any;
package/lib/index.d.ts ADDED
@@ -0,0 +1,87 @@
1
+ export { default as Login } from './components/login';
2
+ export type { LoginProps } from './components/login';
3
+ export { default as BookingInfo } from './components/booking/info/index';
4
+ export { default as BookingNotes } from './components/booking/notes';
5
+ export { default as BookingAddons } from './components/booking/addons';
6
+ export { default as BookingForms } from './components/booking/forms';
7
+ export { default as BookingPayment } from './components/booking/payments';
8
+ export { default as Booking } from './components/booking';
9
+ export { default as Schedules } from './components/schedules';
10
+ export { default as BookingResources } from './components/booking/materiels/resources';
11
+ export { default as BookingStartTime } from './components/booking/materiels/startTime';
12
+ export { default as BookingDuration } from './components/booking/materiels/duration';
13
+ export { default as BookingContacts } from './components/booking/materiels/contacts';
14
+ export { VerticalClient } from './components/booking/info/clientVariant';
15
+ export { default as VerticalAddService } from './components/booking/info/addServiceVariant';
16
+ export { default as ProductExtension } from './components/productExtension';
17
+ export { default as BookingDeposit } from './components/booking/deposit';
18
+ export { default as WorkspaceList } from './components/workSpaceList';
19
+ export { default as WorkspaceListDetail } from './components/workSpaceListDetail';
20
+ export { default as RuleSetting } from './components/ruleSetting';
21
+ export { default as TaxSelect } from './components/taxSelect';
22
+ export { default as EftposPay } from './components/eftposPay';
23
+ export { default as ToCPay } from './components/pay/toC';
24
+ export { default as Eftpos } from './components/eftpos';
25
+ export { default as WalletList } from './components/walletList';
26
+ export { default as BookingDashboard } from './components/booking/dashboard';
27
+ export { default as PisellSelectCustomerModal } from './components/pisellSelectCustomerModal';
28
+ export { default as EventBooking } from './components/eventBooking';
29
+ export { default as EventCard } from './components/eventBooking/components/eventCard';
30
+ export { default as EventResourceDisplay } from './components/eventBooking/components/resourceDisplay';
31
+ export { default as EventResourceUsability } from './components/eventBooking/components/resourceUsability';
32
+ export { default as EventProductCard } from './components/eventBooking/components/productCard';
33
+ export { default as EventTimeResourceSelector } from './components/eventBooking/components/timeResourceSelector';
34
+ export { default as EventSelectHolder } from './components/eventBooking/components/selectHolder';
35
+ export { default as EventBookingServiceList } from './components/eventBooking/components/bookingServiceList';
36
+ export { default as EventBookingAvailabilityCalendar } from './components/eventBooking/components/bookingAvailabilityCalendar';
37
+ export { default as EventScheduleCalendar } from './components/eventBooking/components/scheduleCalendar';
38
+ export { default as EventBookingDetailModal } from './components/eventBooking/components/bookingDetailModal';
39
+ export { default as EventProgressBar } from './components/eventBooking/components/progressBar';
40
+ export { default as ShoppingCart } from './components/shoppingCart';
41
+ export { default as AppointmentBooking } from './components/appointmentBooking';
42
+ export { default as AppointmentDeposit } from './components/appointmentBooking/deposit';
43
+ export { default as TicketBooking } from './components/ticketBooking';
44
+ export { default as ScanOrder } from './components/scanOrder';
45
+ export { default as VenueBooking } from './components/venueBooking';
46
+ export type { ScanOrderProps } from './components/scanOrder';
47
+ export { default as SubTotal } from './components/subTotal';
48
+ export { default as EditBookingModal } from './components/booking/editBookingModal';
49
+ export { default as StepController } from './components/stepController';
50
+ export { default as ClientCard } from './plus/clientCard';
51
+ export { default as ClientSearch } from './plus/clinetSearch';
52
+ export { default as ComprehensiveSearch } from './pro/comprehensiveSearch';
53
+ export { default as SaasLogin } from './plus/saasLogin';
54
+ export { default as SaasRegister } from './plus/saasRegister';
55
+ export { default as SaasCreateOrganization } from './plus/saasCreateOrganization';
56
+ export { default as PinModal } from './components/pinModal';
57
+ export { default as PinVerifyModal } from './components/pinVerifyModal';
58
+ export { ChannelAuthSetting, OAuthConfig, SaaSAdminAuth, OrgAdminAuth, CustomerAuth, CustomerOAuthConfig, DeviceAuth, POSOperatorAuth, OnlineShopAuth, SaaSManagermentAuth, } from './components/authentication/admin';
59
+ export type { SaaSAdminAuthProps, OrgAdminAuthProps, DeviceAuthProps, POSOperatorAuthProps, CustomerOAuthConfigProps, } from './components/authentication/admin';
60
+ export { default as ContactInfo } from './plus/contactInfo';
61
+ export { default as ContactInfoModal } from './plus/contactInfoModal';
62
+ export { Login2, Register2, AuthModal } from './pro/Login2.0';
63
+ export { default as WalletEditor } from './plus/walletEditor';
64
+ export { default as WalletPassGallery } from './plus/walletPassGallery';
65
+ export { default as WalletPassDetail } from './plus/walletPassGallery/components/passDetail';
66
+ export { default as SelectHolder } from './plus/selectHolder';
67
+ export { default as HolderList } from './plus/selectHolder/components/HolderList';
68
+ export { default as SettingsRegistry } from './components/systemSettings/registry';
69
+ export { default as SaasRole } from './plus/saasRole';
70
+ export { default as SaasTeamMembers } from './plus/saasTeamMembers';
71
+ export type { SaasTeamMembersProps } from './plus/saasTeamMembers/type';
72
+ export { default as KioskSkuDetail } from './components/kioskSkuDetail';
73
+ export { default as ProNumberSelector } from './pro/pisellNumberSelector';
74
+ export { default as SKUOptionsSelection } from './plus/skuOptionsSelection';
75
+ export { default as SaasAttendance } from './plus/saasAttendance';
76
+ export { default as Selector } from './pro/Selector';
77
+ export { default as PisellSalesGrid } from './plus/pisellSalesGrid';
78
+ export { PisellReservationCore, PisellReservationBookingPage, PisellReservation, PisellVenueControlPage, default, } from './plus/pisellReservation';
79
+ export type { FloorMapBookingClickArgs, FloorMapBookingClickMode, PisellReservationProps, PisellReservationTableRow, } from './plus/pisellReservation';
80
+ export { defaultReservationTableRows, getDefaultReservationFloorMapConfig, } from './plus/pisellReservation';
81
+ export { default as EcoCupProject } from './components/ecocup/cupProject';
82
+ export { default as EcoCupList } from './components/ecocup/cupList';
83
+ export { default as EcoCustomerList } from './components/ecocup/customerList';
84
+ export { default as OrderList } from './plus/orderList';
85
+ export { default as pisellSalesManagement } from './plus/pisellSalesManagement';
86
+ export { PisellFinancialSummary, financialSummaryLocales } from './plus/pisellFinancialSummary';
87
+ export type { PisellFinancialSummaryProps, FinancialSummaryData, FinancialSummaryLineItem, FinancialSummaryPaymentItem, FinancialSummaryRefundItem, FinancialSummaryTotalBlock, FinancialSummaryAmountFormatOptions, } from './plus/pisellFinancialSummary';
package/lib/index.js CHANGED
@@ -44,6 +44,7 @@ __export(src_exports, {
44
44
  BookingPayment: () => import_payments.default,
45
45
  BookingResources: () => import_resources.default,
46
46
  BookingStartTime: () => import_startTime.default,
47
+ ChannelAuthSetting: () => import_admin.ChannelAuthSetting,
47
48
  ClientCard: () => import_clientCard.default,
48
49
  ClientSearch: () => import_clinetSearch.default,
49
50
  ComprehensiveSearch: () => import_comprehensiveSearch.default,
@@ -231,6 +232,7 @@ import_dayjs.default.extend(import_localeData.default);
231
232
  BookingPayment,
232
233
  BookingResources,
233
234
  BookingStartTime,
235
+ ChannelAuthSetting,
234
236
  ClientCard,
235
237
  ClientSearch,
236
238
  ComprehensiveSearch,
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import './index.less';
2
3
  import { IClientNameProps } from './type';
3
4
  declare const ClientName: ({ className, dataSource, style }: IClientNameProps) => JSX.Element | null;
@@ -1,2 +1,3 @@
1
+ /// <reference types="react" />
1
2
  declare const DateSectionCom: ({ value, onChange, showTime, className, style, useSpace, format, itemStyle, }: any) => JSX.Element;
2
3
  export default DateSectionCom;
@@ -1,2 +1,3 @@
1
+ /// <reference types="react" />
1
2
  declare const GenderField: (props: any) => JSX.Element;
2
3
  export default GenderField;
@@ -1,2 +1,3 @@
1
+ /// <reference types="react" />
1
2
  declare const PhoneField: ({ value, onChange }: any) => JSX.Element;
2
3
  export default PhoneField;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  export declare const IconClock: () => JSX.Element;
2
3
  export declare const IconUsers: () => JSX.Element;
3
4
  export declare const IconWarn: () => JSX.Element;
@@ -20,7 +20,7 @@ export declare const getFilterButtonList: () => ({
20
20
  }[];
21
21
  minInputNumberProps?: undefined;
22
22
  maxInputNumberProps?: undefined;
23
- readonly component?: undefined;
23
+ component?: undefined;
24
24
  isSearchServer?: undefined;
25
25
  showSearch?: undefined;
26
26
  showTime?: undefined;
@@ -46,7 +46,7 @@ export declare const getFilterButtonList: () => ({
46
46
  mode?: undefined;
47
47
  maxTagCount?: undefined;
48
48
  options?: undefined;
49
- readonly component?: undefined;
49
+ component?: undefined;
50
50
  isSearchServer?: undefined;
51
51
  showSearch?: undefined;
52
52
  showTime?: undefined;
@@ -91,7 +91,7 @@ export declare const getFilterButtonList: () => ({
91
91
  options: () => Promise<any>;
92
92
  minInputNumberProps?: undefined;
93
93
  maxInputNumberProps?: undefined;
94
- readonly component?: undefined;
94
+ component?: undefined;
95
95
  isSearchServer?: undefined;
96
96
  showSearch?: undefined;
97
97
  showTime?: undefined;
@@ -111,7 +111,7 @@ export declare const getFilterButtonList: () => ({
111
111
  options?: undefined;
112
112
  minInputNumberProps?: undefined;
113
113
  maxInputNumberProps?: undefined;
114
- readonly component?: undefined;
114
+ component?: undefined;
115
115
  isSearchServer?: undefined;
116
116
  showSearch?: undefined;
117
117
  showTime?: undefined;
@@ -133,7 +133,7 @@ export declare const getFilterButtonList: () => ({
133
133
  maxTagCount?: undefined;
134
134
  minInputNumberProps?: undefined;
135
135
  maxInputNumberProps?: undefined;
136
- readonly component?: undefined;
136
+ component?: undefined;
137
137
  showTime?: undefined;
138
138
  };
139
139
  sort?: undefined;
@@ -152,7 +152,7 @@ export declare const getFilterButtonList: () => ({
152
152
  options?: undefined;
153
153
  minInputNumberProps?: undefined;
154
154
  maxInputNumberProps?: undefined;
155
- readonly component?: undefined;
155
+ component?: undefined;
156
156
  isSearchServer?: undefined;
157
157
  showSearch?: undefined;
158
158
  };
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  export interface UseSalesGridDataParams {
2
3
  perspective: 'monitor' | 'handle';
3
4
  extParams?: {
@@ -181,6 +181,16 @@ var PisellSalesProductCard = ({
181
181
  max: cardMaxQuantity,
182
182
  step: (stepperProps == null ? void 0 : stepperProps.step) ?? 1,
183
183
  disabled: mergedDisabled,
184
+ onLimitExceeded: (limitMeta) => {
185
+ const raw = stepperProps == null ? void 0 : stepperProps.limitMessage;
186
+ const limitMsg = typeof raw === "string" ? { max: raw } : raw || {};
187
+ const content = limitMeta.reason === "max" ? limitMsg.max : limitMsg.min;
188
+ if (!content) return;
189
+ (0, import_materials.PisellToast)({
190
+ content,
191
+ duration: 2
192
+ });
193
+ },
184
194
  onChange: (next, stepperMeta) => {
185
195
  const safeNext = Math.max(
186
196
  (stepperProps == null ? void 0 : stepperProps.min) ?? 0,
@@ -1,6 +1,26 @@
1
1
  /// <reference types="react" />
2
2
  import type { BundleGroupItem, BundleItem, OptionGroupItem, SkuCardConfig, VariantProductItem, VariantGroupItem } from '../skuOptionsSelection/types';
3
3
  import type { NumericStepperProps } from '../../pro/NumericStepper/index';
4
+ /**
5
+ * 达到 min / max 限制时希望展示的提示文案。
6
+ * 通常来自 item_rule_limit.maxValidationMessage / minValidationMessage。
7
+ * 对应字段为空时该方向不 toast(仍会走 locales 里的默认兑底,详见 PisellSalesProductCard)。
8
+ */
9
+ export interface SalesProductLimitMessage {
10
+ max?: string;
11
+ min?: string;
12
+ }
13
+ /**
14
+ * 商品卡使用的 stepper 配置,在 NumericStepperProps 基础上扩展业务字段。
15
+ */
16
+ export declare type SalesProductStepperProps = NumericStepperProps & {
17
+ /**
18
+ * 达到限制时希望展示的提示文案。支持:
19
+ * - string:等价于 { max: string }(兼容旧用法);
20
+ * - { min?, max? }:min / max 分开配置。
21
+ */
22
+ limitMessage?: string | SalesProductLimitMessage;
23
+ };
4
24
  export declare type SalesProductText = string | Record<string, string>;
5
25
  /**
6
26
  * 从 SKUOptionsSelection 数据结构反推的完整商品定义。
@@ -103,7 +123,7 @@ export interface PisellSalesProductCardProps {
103
123
  /** PRD products[i] value,组件会基于它进行增量更新并回传 */
104
124
  value?: Partial<SalesProductValue>;
105
125
  disabled?: boolean;
106
- stepperProps?: NumericStepperProps;
126
+ stepperProps?: SalesProductStepperProps;
107
127
  optionsText?: string;
108
128
  skuCardConfig?: SkuCardConfig;
109
129
  cartElementId?: string;