@pisell/private-materials 6.4.55 → 6.4.57

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 (448) 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 +7 -7
  7. package/build/lowcode/render/default/view.css +1 -1
  8. package/build/lowcode/render/default/view.js +7 -7
  9. package/build/lowcode/view.css +1 -1
  10. package/build/lowcode/view.js +7 -7
  11. package/es/components/appointmentBooking/components/Cart/Item/Total.d.ts +0 -1
  12. package/es/components/appointmentBooking/components/Cart/Item/index.d.ts +0 -1
  13. package/es/components/appointmentBooking/components/Cart/index.d.ts +0 -1
  14. package/es/components/appointmentBooking/components/Deposit/index.d.ts +0 -1
  15. package/es/components/appointmentBooking/components/Footer/index.d.ts +0 -1
  16. package/es/components/appointmentBooking/deposit/components/PolicyModal/index.d.ts +0 -1
  17. package/es/components/booking/components/TabProduct/index.d.ts +0 -1
  18. package/es/components/booking/components/TabProduct/productItem/index.d.ts +0 -1
  19. package/es/components/booking/components/actionButtons/index.js +15 -7
  20. package/es/components/booking/components/footer/amount.js +1 -1
  21. package/es/components/booking/components/footer/index.js +2 -2
  22. package/es/components/booking/components/footer/utils.js +8 -1
  23. package/es/components/booking/components/reloadResourceModal/index.d.ts +0 -1
  24. package/es/components/booking/components/voucher/index.js +23 -19
  25. package/es/components/booking/forms/footer.d.ts +0 -1
  26. package/es/components/booking/forms/sendModal/useSendModal.d.ts +0 -1
  27. package/es/components/booking/forms/single/index.d.ts +0 -1
  28. package/es/components/booking/info2/cartClientCard/index.js +7 -3
  29. package/es/components/booking/materiels/contacts/index.d.ts +0 -1
  30. package/es/components/checkout/PaymentModal.js +34 -28
  31. package/es/components/checkout/hooks/useWalletPass.js +36 -21
  32. package/es/components/eftpos/form/index.d.ts +0 -1
  33. package/es/components/eftpos/hooks.d.ts +0 -1
  34. package/es/components/eftpos/index.d.ts +0 -1
  35. package/es/components/eftpos/pos.d.ts +0 -1
  36. package/es/components/eftposPay/amount.d.ts +0 -1
  37. package/es/components/eftposPay/component/fail/failCustom.d.ts +0 -1
  38. package/es/components/eftposPay/component/fail/index.d.ts +0 -1
  39. package/es/components/eftposPay/component/fail/network.d.ts +0 -1
  40. package/es/components/eftposPay/component/fail/unknow.d.ts +0 -1
  41. package/es/components/eftposPay/component/manual/index.d.ts +0 -1
  42. package/es/components/eftposPay/component/signature/index.d.ts +0 -1
  43. package/es/components/eftposPay/hooks.d.ts +1 -1
  44. package/es/components/eftposPay/pay.d.ts +0 -1
  45. package/es/components/eftposPay/store/index.d.ts +2 -2
  46. package/es/components/eventBooking/components/Provider/Cart/Deposit/index.d.ts +0 -1
  47. package/es/components/eventBooking/components/Provider/Cart/Item/index.d.ts +0 -1
  48. package/es/components/eventBooking/components/Provider/Cart/index.d.ts +0 -1
  49. package/es/components/eventBooking/components/Provider/Content/index.d.ts +0 -1
  50. package/es/components/eventBooking/components/Provider/Event/index.d.ts +0 -1
  51. package/es/components/eventBooking/components/Provider/Footer/index.d.ts +0 -1
  52. package/es/components/eventBooking/components/Provider/Header/index.d.ts +0 -1
  53. package/es/components/eventBooking/components/Provider/Information/index.d.ts +0 -1
  54. package/es/components/eventBooking/components/Provider/Resource/index.d.ts +0 -1
  55. package/es/components/eventBooking/components/Provider/SelectHolderModal.d.ts +0 -1
  56. package/es/components/eventBooking/components/bookingDetailModal/components/BookingOptions.d.ts +0 -1
  57. package/es/components/eventBooking/components/bookingDetailModal/components/Resource.d.ts +0 -1
  58. package/es/components/eventBooking/components/bookingDetailModal/components/Schedule.d.ts +0 -1
  59. package/es/components/eventBooking/components/scheduleCalendar/ProductItem/index.d.ts +0 -1
  60. package/es/components/list/List.js +957 -0
  61. package/es/components/list/List.less +2 -0
  62. package/es/components/list/ResponsiveWrapper.js +130 -0
  63. package/es/components/list/TestResponsiveWrapper.js +816 -0
  64. package/es/components/list/TestResponsiveWrapper.less +968 -0
  65. package/es/components/list/components/EmptyState/EmptyState.js +75 -0
  66. package/es/components/list/components/EmptyState/EmptyState.less +121 -0
  67. package/es/components/list/components/EmptyState/index.js +1 -0
  68. package/es/components/list/components/ListItemSkeleton/ListItemSkeleton.js +39 -0
  69. package/es/components/list/components/ListItemSkeleton/ListItemSkeleton.less +29 -0
  70. package/es/components/list/components/ListItemSkeleton/index.js +2 -0
  71. package/es/components/list/components/Pagination/Pagination.js +240 -0
  72. package/es/components/list/components/Pagination/Pagination.less +439 -0
  73. package/es/components/list/components/Pagination/index.js +1 -0
  74. package/es/components/list/components/ScrollLoader/ScrollLoader.js +18 -0
  75. package/es/components/list/components/ScrollLoader/ScrollLoader.less +3 -0
  76. package/es/components/list/components/ScrollLoader/index.js +1 -0
  77. package/es/components/list/components/Tab/Tab.js +43 -0
  78. package/es/components/list/components/Tab/Tab.less +139 -0
  79. package/es/components/list/components/Tab/index.js +1 -0
  80. package/es/components/list/components/Tab/types.js +1 -0
  81. package/es/components/list/components/TabSkeleton/TabSkeleton.js +28 -0
  82. package/es/components/list/components/TabSkeleton/TabSkeleton.less +38 -0
  83. package/es/components/list/components/TabSkeleton/index.js +2 -0
  84. package/es/components/list/components/WaterfallList/WaterfallList.js +191 -0
  85. package/es/components/list/components/WaterfallList/WaterfallList.less +201 -0
  86. package/es/components/list/components/WaterfallList/index.js +1 -0
  87. package/es/components/list/examples/GroupedListExample.js +207 -0
  88. package/es/components/list/hooks/index.js +3 -0
  89. package/es/components/list/hooks/useDevice.js +102 -0
  90. package/es/components/list/hooks/useListState.js +176 -0
  91. package/es/components/list/hooks/useWaterfall.js +161 -0
  92. package/es/components/list/index.js +7 -0
  93. package/es/components/list/locales.js +107 -0
  94. package/es/components/list/styles/base.less +39 -0
  95. package/es/components/list/styles/content.less +416 -0
  96. package/es/components/list/styles/floatButton.less +107 -0
  97. package/es/components/list/styles/footer.less +49 -0
  98. package/es/components/list/styles/header.less +69 -0
  99. package/es/components/list/styles/responsive.less +166 -0
  100. package/es/components/list/types.js +1 -0
  101. package/es/components/list/utils/getText.js +150 -0
  102. package/es/components/list/utils/index.js +5 -0
  103. package/es/components/pay/toB/store/hooks.js +19 -5
  104. package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/StripeSDK/index.d.ts +0 -1
  105. package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/index.d.ts +0 -1
  106. package/es/components/pisellSelectCustomerModal/RightPanel/Add/index.d.ts +0 -1
  107. package/es/components/productExtension/fields/Actor/index.d.ts +0 -1
  108. package/es/components/productExtension/fields/Forms/index.d.ts +0 -1
  109. package/es/components/productExtension/fields/SelectProducts/ProductItem/index.d.ts +0 -1
  110. package/es/components/productExtension/fields/SelectProducts/index.d.ts +0 -1
  111. package/es/components/schedules/components/ScheduleList/index.d.ts +0 -1
  112. package/es/components/schedules/products/ProductDetailDrawer/ProductDetail/MaxParticipantsModule/index.d.ts +0 -1
  113. package/es/components/schedules/products/ProductDetailDrawer/ProductDetail/index.d.ts +0 -1
  114. package/es/components/schedules/products/ProductDetailDrawer/index.d.ts +0 -1
  115. package/es/components/schedules/products/index.d.ts +0 -1
  116. package/es/components/schedules/resources/index.d.ts +0 -1
  117. package/es/components/schedules/resources/relationProduct/index.d.ts +0 -1
  118. package/es/components/schedules/schedules/AllSchedules/index.d.ts +0 -1
  119. package/es/components/schedules/schedules/ScheduleDetailDrawer/index.d.ts +0 -1
  120. package/es/components/schedules/schedules/index.d.ts +0 -1
  121. package/es/components/shoppingCart/components/Render/index.d.ts +0 -1
  122. package/es/components/shoppingCart/index.d.ts +0 -1
  123. package/es/components/ticketBooking/components/ProductDisplayAdapter/ProductDisplayAdapter.js +143 -0
  124. package/es/components/ticketBooking/components/ProductDisplayAdapter/index.js +7 -0
  125. package/es/components/ticketBooking/components/ProductDisplayAdapter/index.less +41 -0
  126. package/es/components/ticketBooking/components/ProductDisplayAdapter/types.js +273 -0
  127. package/es/components/ticketBooking/components/ProductDisplayAdapter/utils.js +130 -0
  128. package/es/components/ticketBooking/components/addServiceVariant/addService.d.ts +20 -0
  129. package/es/components/ticketBooking/components/addServiceVariant/addService.js +46 -11
  130. package/es/components/ticketBooking/components/addServiceVariant/index.js +4 -2
  131. package/es/components/ticketBooking/components/menuBar/index.js +40 -17
  132. package/es/components/ticketBooking/components/menuBar/index.less +27 -1
  133. package/es/components/ticketBooking/components/ticketBooking/index.d.ts +6 -1
  134. package/es/components/ticketBooking/components/ticketBooking/index.js +66 -23
  135. package/es/components/ticketBooking/components/timeBar/index.less +1 -0
  136. package/es/components/ticketBooking/context/IsActiveContext.js +37 -0
  137. package/es/components/ticketBooking/context/OsKeyContext.js +37 -0
  138. package/es/components/ticketBooking/context/index.js +2 -0
  139. package/es/components/ticketBooking/hooks/pisellos/bookingTicket.js +13 -1
  140. package/es/components/ticketBooking/hooks/pisellos/index.js +2 -1
  141. package/es/components/ticketBooking/hooks/pisellos/useActiveExecute.js +50 -0
  142. package/es/components/ticketBooking/hooks/pisellos/useCustomer.js +12 -4
  143. package/es/components/ticketBooking/hooks/pisellos/useProducts.js +43 -9
  144. package/es/components/ticketBooking/hooks/pisellos/useScanCustomer.js +5 -2
  145. package/es/components/ticketBooking/hooks/pisellos/useScanGlobal.js +7 -2
  146. package/es/components/ticketBooking/hooks/pisellos/useShopDiscountModule.js +17 -0
  147. package/es/components/ticketBooking/index.d.ts +6 -0
  148. package/es/components/ticketBooking/index.js +86 -11
  149. package/es/components/ticketBooking/utils/index.js +50 -1
  150. package/es/components/ticketBooking/utils/productCache.js +184 -0
  151. package/es/components/wallet/hooks/useWalletCard.d.ts +0 -1
  152. package/es/index.js +3 -1
  153. package/es/plus/productSelect/ProductCard/SkuCard/SkuCardA1/index.js +11 -0
  154. package/es/plus/productSelect/ProductCard/SkuCard/SkuCardA1/index.less +8 -0
  155. package/es/plus/productSelect/ProductCard/SkuCard/SkuCardA2/index.js +11 -0
  156. package/es/plus/productSelect/ProductCard/SkuCard/SkuCardA2/index.less +17 -0
  157. package/es/plus/productSelect/ProductCard/SkuCard/SkuCardA5/index.js +11 -0
  158. package/es/plus/productSelect/ProductCard/SkuCard/SkuCardA5/index.less +17 -0
  159. package/es/plus/productSelect/ProductCard/SkuCard/SkuCardA9/index.js +11 -0
  160. package/es/plus/productSelect/ProductCard/SkuCard/SkuCardA9/index.less +17 -0
  161. package/es/plus/productSelect/ProductCard/SkuCard/SkuCardCustom/index.js +11 -0
  162. package/es/plus/productSelect/ProductCard/SkuCard/SkuCardCustom/index.less +2 -0
  163. package/es/plus/productSelect/ProductCard/SkuCard/components/Action/index.js +100 -0
  164. package/es/plus/productSelect/ProductCard/SkuCard/components/Action/index.less +8 -0
  165. package/es/plus/productSelect/ProductCard/SkuCard/components/Capacity/index.js +32 -0
  166. package/es/plus/productSelect/ProductCard/SkuCard/components/Capacity/index.less +3 -0
  167. package/es/plus/productSelect/ProductCard/SkuCard/components/CardCom/index.js +239 -0
  168. package/es/plus/productSelect/ProductCard/SkuCard/components/CardCom/index.less +44 -0
  169. package/es/plus/productSelect/ProductCard/SkuCard/components/CardMask/index.js +34 -0
  170. package/es/plus/productSelect/ProductCard/SkuCard/components/CardMask/index.less +14 -0
  171. package/es/plus/productSelect/ProductCard/SkuCard/components/CardMoreText/index.js +33 -0
  172. package/es/plus/productSelect/ProductCard/SkuCard/components/CardMoreText/index.less +30 -0
  173. package/es/plus/productSelect/ProductCard/SkuCard/components/CardWrapper/index.js +75 -0
  174. package/es/plus/productSelect/ProductCard/SkuCard/components/CardWrapper/index.less +46 -0
  175. package/es/plus/productSelect/ProductCard/SkuCard/components/Countdown/index.js +39 -0
  176. package/es/plus/productSelect/ProductCard/SkuCard/components/Countdown/index.less +9 -0
  177. package/es/plus/productSelect/ProductCard/SkuCard/components/Cover/index.js +53 -0
  178. package/es/plus/productSelect/ProductCard/SkuCard/components/Cover/index.less +31 -0
  179. package/es/plus/productSelect/ProductCard/SkuCard/components/Duration/index.js +31 -0
  180. package/es/plus/productSelect/ProductCard/SkuCard/components/Duration/index.less +3 -0
  181. package/es/plus/productSelect/ProductCard/SkuCard/components/Favorite/index.js +58 -0
  182. package/es/plus/productSelect/ProductCard/SkuCard/components/Favorite/index.less +11 -0
  183. package/es/plus/productSelect/ProductCard/SkuCard/components/MemberPrice/index.js +85 -0
  184. package/es/plus/productSelect/ProductCard/SkuCard/components/MemberPrice/index.less +24 -0
  185. package/es/plus/productSelect/ProductCard/SkuCard/components/Price/index.js +121 -0
  186. package/es/plus/productSelect/ProductCard/SkuCard/components/Price/index.less +57 -0
  187. package/es/plus/productSelect/ProductCard/SkuCard/components/Promotions/index.js +95 -0
  188. package/es/plus/productSelect/ProductCard/SkuCard/components/Promotions/index.less +18 -0
  189. package/es/plus/productSelect/ProductCard/SkuCard/components/Resource/index.js +31 -0
  190. package/es/plus/productSelect/ProductCard/SkuCard/components/Resource/index.less +3 -0
  191. package/es/plus/productSelect/ProductCard/SkuCard/components/Stock/index.js +47 -0
  192. package/es/plus/productSelect/ProductCard/SkuCard/components/Stock/index.less +3 -0
  193. package/es/plus/productSelect/ProductCard/SkuCard/components/SubTitle/index.js +34 -0
  194. package/es/plus/productSelect/ProductCard/SkuCard/components/SubTitle/index.less +13 -0
  195. package/es/plus/productSelect/ProductCard/SkuCard/components/Tags/index.js +95 -0
  196. package/es/plus/productSelect/ProductCard/SkuCard/components/Tags/index.less +18 -0
  197. package/es/plus/productSelect/ProductCard/SkuCard/components/Time/index.js +31 -0
  198. package/es/plus/productSelect/ProductCard/SkuCard/components/Time/index.less +3 -0
  199. package/es/plus/productSelect/ProductCard/SkuCard/components/Title/index.js +34 -0
  200. package/es/plus/productSelect/ProductCard/SkuCard/components/Title/index.less +13 -0
  201. package/es/plus/productSelect/ProductCard/SkuCard/components/TooltipTags/index.js +39 -0
  202. package/es/plus/productSelect/ProductCard/SkuCard/components/TooltipTags/index.less +22 -0
  203. package/es/plus/productSelect/ProductCard/SkuCard/components/WarningLists/index.js +20 -0
  204. package/es/plus/productSelect/ProductCard/SkuCard/components/WarningLists/index.less +20 -0
  205. package/es/plus/productSelect/ProductCard/SkuCard/hooks/useDynamicComponents.js +55 -0
  206. package/es/plus/productSelect/ProductCard/SkuCard/index.js +38 -0
  207. package/es/plus/productSelect/ProductCard/SkuCard/locales.js +41 -0
  208. package/es/plus/productSelect/ProductCard/SkuCard/status.js +481 -0
  209. package/es/plus/productSelect/ProductCard/SkuCard/type.js +1 -0
  210. package/es/plus/productSelect/ProductCard/SkuCard/utils.js +21 -0
  211. package/es/plus/productSelect/components/pisellPriceText/index.js +7 -5
  212. package/lib/components/appointmentBooking/components/Cart/Item/Total.d.ts +0 -1
  213. package/lib/components/appointmentBooking/components/Cart/Item/index.d.ts +0 -1
  214. package/lib/components/appointmentBooking/components/Cart/index.d.ts +0 -1
  215. package/lib/components/appointmentBooking/components/Deposit/index.d.ts +0 -1
  216. package/lib/components/appointmentBooking/components/Footer/index.d.ts +0 -1
  217. package/lib/components/appointmentBooking/deposit/components/PolicyModal/index.d.ts +0 -1
  218. package/lib/components/booking/components/TabProduct/index.d.ts +0 -1
  219. package/lib/components/booking/components/TabProduct/productItem/index.d.ts +0 -1
  220. package/lib/components/booking/components/actionButtons/index.js +22 -15
  221. package/lib/components/booking/components/footer/amount.js +1 -1
  222. package/lib/components/booking/components/footer/index.js +2 -2
  223. package/lib/components/booking/components/footer/utils.js +8 -1
  224. package/lib/components/booking/components/reloadResourceModal/index.d.ts +0 -1
  225. package/lib/components/booking/components/voucher/index.js +33 -40
  226. package/lib/components/booking/forms/footer.d.ts +0 -1
  227. package/lib/components/booking/forms/sendModal/useSendModal.d.ts +0 -1
  228. package/lib/components/booking/forms/single/index.d.ts +0 -1
  229. package/lib/components/booking/info2/cartClientCard/index.js +7 -3
  230. package/lib/components/booking/materiels/contacts/index.d.ts +0 -1
  231. package/lib/components/checkout/PaymentModal.js +20 -16
  232. package/lib/components/checkout/hooks/useWalletPass.js +57 -45
  233. package/lib/components/eftpos/form/index.d.ts +0 -1
  234. package/lib/components/eftpos/hooks.d.ts +0 -1
  235. package/lib/components/eftpos/index.d.ts +0 -1
  236. package/lib/components/eftpos/pos.d.ts +0 -1
  237. package/lib/components/eftposPay/amount.d.ts +0 -1
  238. package/lib/components/eftposPay/component/fail/failCustom.d.ts +0 -1
  239. package/lib/components/eftposPay/component/fail/index.d.ts +0 -1
  240. package/lib/components/eftposPay/component/fail/network.d.ts +0 -1
  241. package/lib/components/eftposPay/component/fail/unknow.d.ts +0 -1
  242. package/lib/components/eftposPay/component/manual/index.d.ts +0 -1
  243. package/lib/components/eftposPay/component/signature/index.d.ts +0 -1
  244. package/lib/components/eftposPay/hooks.d.ts +1 -1
  245. package/lib/components/eftposPay/pay.d.ts +0 -1
  246. package/lib/components/eftposPay/store/index.d.ts +2 -2
  247. package/lib/components/eventBooking/components/Provider/Cart/Deposit/index.d.ts +0 -1
  248. package/lib/components/eventBooking/components/Provider/Cart/Item/index.d.ts +0 -1
  249. package/lib/components/eventBooking/components/Provider/Cart/index.d.ts +0 -1
  250. package/lib/components/eventBooking/components/Provider/Content/index.d.ts +0 -1
  251. package/lib/components/eventBooking/components/Provider/Event/index.d.ts +0 -1
  252. package/lib/components/eventBooking/components/Provider/Footer/index.d.ts +0 -1
  253. package/lib/components/eventBooking/components/Provider/Header/index.d.ts +0 -1
  254. package/lib/components/eventBooking/components/Provider/Information/index.d.ts +0 -1
  255. package/lib/components/eventBooking/components/Provider/Resource/index.d.ts +0 -1
  256. package/lib/components/eventBooking/components/Provider/SelectHolderModal.d.ts +0 -1
  257. package/lib/components/eventBooking/components/bookingDetailModal/components/BookingOptions.d.ts +0 -1
  258. package/lib/components/eventBooking/components/bookingDetailModal/components/Resource.d.ts +0 -1
  259. package/lib/components/eventBooking/components/bookingDetailModal/components/Schedule.d.ts +0 -1
  260. package/lib/components/eventBooking/components/scheduleCalendar/ProductItem/index.d.ts +0 -1
  261. package/lib/components/list/List.js +771 -0
  262. package/lib/components/list/List.less +2 -0
  263. package/lib/components/list/ResponsiveWrapper.js +145 -0
  264. package/lib/components/list/TestResponsiveWrapper.js +493 -0
  265. package/lib/components/list/TestResponsiveWrapper.less +968 -0
  266. package/lib/components/list/components/EmptyState/EmptyState.js +75 -0
  267. package/lib/components/list/components/EmptyState/EmptyState.less +121 -0
  268. package/lib/components/list/components/EmptyState/index.js +35 -0
  269. package/lib/components/list/components/ListItemSkeleton/ListItemSkeleton.js +75 -0
  270. package/lib/components/list/components/ListItemSkeleton/ListItemSkeleton.less +29 -0
  271. package/lib/components/list/components/ListItemSkeleton/index.js +41 -0
  272. package/lib/components/list/components/Pagination/Pagination.js +205 -0
  273. package/lib/components/list/components/Pagination/Pagination.less +439 -0
  274. package/lib/components/list/components/Pagination/index.js +35 -0
  275. package/lib/components/list/components/ScrollLoader/ScrollLoader.js +37 -0
  276. package/lib/components/list/components/ScrollLoader/ScrollLoader.less +3 -0
  277. package/lib/components/list/components/ScrollLoader/index.js +35 -0
  278. package/lib/components/list/components/Tab/Tab.js +72 -0
  279. package/lib/components/list/components/Tab/Tab.less +139 -0
  280. package/lib/components/list/components/Tab/index.js +35 -0
  281. package/lib/components/list/components/Tab/types.js +17 -0
  282. package/lib/components/list/components/TabSkeleton/TabSkeleton.js +61 -0
  283. package/lib/components/list/components/TabSkeleton/TabSkeleton.less +38 -0
  284. package/lib/components/list/components/TabSkeleton/index.js +41 -0
  285. package/lib/components/list/components/WaterfallList/WaterfallList.js +178 -0
  286. package/lib/components/list/components/WaterfallList/WaterfallList.less +201 -0
  287. package/lib/components/list/components/WaterfallList/index.js +35 -0
  288. package/lib/components/list/examples/GroupedListExample.js +210 -0
  289. package/lib/components/list/hooks/index.js +47 -0
  290. package/lib/components/list/hooks/useDevice.js +96 -0
  291. package/lib/components/list/hooks/useListState.js +149 -0
  292. package/lib/components/list/hooks/useWaterfall.js +124 -0
  293. package/lib/components/list/index.js +60 -0
  294. package/lib/components/list/locales.js +113 -0
  295. package/lib/components/list/styles/base.less +39 -0
  296. package/lib/components/list/styles/content.less +416 -0
  297. package/lib/components/list/styles/floatButton.less +107 -0
  298. package/lib/components/list/styles/footer.less +49 -0
  299. package/lib/components/list/styles/header.less +69 -0
  300. package/lib/components/list/styles/responsive.less +166 -0
  301. package/lib/components/list/types.js +17 -0
  302. package/lib/components/list/utils/getText.js +95 -0
  303. package/lib/components/list/utils/index.js +43 -0
  304. package/lib/components/pay/toB/store/hooks.js +16 -8
  305. package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/StripeSDK/index.d.ts +0 -1
  306. package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/index.d.ts +0 -1
  307. package/lib/components/pisellSelectCustomerModal/RightPanel/Add/index.d.ts +0 -1
  308. package/lib/components/productExtension/fields/Actor/index.d.ts +0 -1
  309. package/lib/components/productExtension/fields/Forms/index.d.ts +0 -1
  310. package/lib/components/productExtension/fields/SelectProducts/ProductItem/index.d.ts +0 -1
  311. package/lib/components/productExtension/fields/SelectProducts/index.d.ts +0 -1
  312. package/lib/components/schedules/components/ScheduleList/index.d.ts +0 -1
  313. package/lib/components/schedules/products/ProductDetailDrawer/ProductDetail/MaxParticipantsModule/index.d.ts +0 -1
  314. package/lib/components/schedules/products/ProductDetailDrawer/ProductDetail/index.d.ts +0 -1
  315. package/lib/components/schedules/products/ProductDetailDrawer/index.d.ts +0 -1
  316. package/lib/components/schedules/products/index.d.ts +0 -1
  317. package/lib/components/schedules/resources/index.d.ts +0 -1
  318. package/lib/components/schedules/resources/relationProduct/index.d.ts +0 -1
  319. package/lib/components/schedules/schedules/AllSchedules/index.d.ts +0 -1
  320. package/lib/components/schedules/schedules/ScheduleDetailDrawer/index.d.ts +0 -1
  321. package/lib/components/schedules/schedules/index.d.ts +0 -1
  322. package/lib/components/shoppingCart/components/Render/index.d.ts +0 -1
  323. package/lib/components/shoppingCart/index.d.ts +0 -1
  324. package/lib/components/ticketBooking/components/ProductDisplayAdapter/ProductDisplayAdapter.js +165 -0
  325. package/lib/components/ticketBooking/components/ProductDisplayAdapter/index.js +45 -0
  326. package/lib/components/ticketBooking/components/ProductDisplayAdapter/index.less +41 -0
  327. package/lib/components/ticketBooking/components/ProductDisplayAdapter/types.js +247 -0
  328. package/lib/components/ticketBooking/components/ProductDisplayAdapter/utils.js +100 -0
  329. package/lib/components/ticketBooking/components/addServiceVariant/addService.d.ts +20 -0
  330. package/lib/components/ticketBooking/components/addServiceVariant/addService.js +45 -11
  331. package/lib/components/ticketBooking/components/addServiceVariant/index.js +3 -2
  332. package/lib/components/ticketBooking/components/menuBar/index.js +24 -18
  333. package/lib/components/ticketBooking/components/menuBar/index.less +27 -1
  334. package/lib/components/ticketBooking/components/ticketBooking/index.d.ts +6 -1
  335. package/lib/components/ticketBooking/components/ticketBooking/index.js +56 -25
  336. package/lib/components/ticketBooking/components/timeBar/index.less +1 -0
  337. package/lib/components/ticketBooking/context/IsActiveContext.js +56 -0
  338. package/lib/components/ticketBooking/context/OsKeyContext.js +56 -0
  339. package/lib/components/ticketBooking/context/index.js +44 -0
  340. package/lib/components/ticketBooking/hooks/pisellos/bookingTicket.js +5 -1
  341. package/lib/components/ticketBooking/hooks/pisellos/index.js +3 -1
  342. package/lib/components/ticketBooking/hooks/pisellos/useActiveExecute.js +47 -0
  343. package/lib/components/ticketBooking/hooks/pisellos/useCustomer.js +17 -10
  344. package/lib/components/ticketBooking/hooks/pisellos/useProducts.js +26 -4
  345. package/lib/components/ticketBooking/hooks/pisellos/useScanCustomer.js +4 -2
  346. package/lib/components/ticketBooking/hooks/pisellos/useScanGlobal.js +6 -2
  347. package/lib/components/ticketBooking/hooks/pisellos/useShopDiscountModule.js +37 -0
  348. package/lib/components/ticketBooking/index.d.ts +6 -0
  349. package/lib/components/ticketBooking/index.js +64 -8
  350. package/lib/components/ticketBooking/utils/index.js +70 -2
  351. package/lib/components/ticketBooking/utils/productCache.js +144 -0
  352. package/lib/components/wallet/hooks/useWalletCard.d.ts +0 -1
  353. package/lib/index.js +6 -0
  354. package/lib/plus/productSelect/ProductCard/SkuCard/SkuCardA1/index.js +42 -0
  355. package/lib/plus/productSelect/ProductCard/SkuCard/SkuCardA1/index.less +8 -0
  356. package/lib/plus/productSelect/ProductCard/SkuCard/SkuCardA2/index.js +42 -0
  357. package/lib/plus/productSelect/ProductCard/SkuCard/SkuCardA2/index.less +17 -0
  358. package/lib/plus/productSelect/ProductCard/SkuCard/SkuCardA5/index.js +42 -0
  359. package/lib/plus/productSelect/ProductCard/SkuCard/SkuCardA5/index.less +17 -0
  360. package/lib/plus/productSelect/ProductCard/SkuCard/SkuCardA9/index.js +42 -0
  361. package/lib/plus/productSelect/ProductCard/SkuCard/SkuCardA9/index.less +17 -0
  362. package/lib/plus/productSelect/ProductCard/SkuCard/SkuCardCustom/index.js +42 -0
  363. package/lib/plus/productSelect/ProductCard/SkuCard/SkuCardCustom/index.less +2 -0
  364. package/lib/plus/productSelect/ProductCard/SkuCard/components/Action/index.js +129 -0
  365. package/lib/plus/productSelect/ProductCard/SkuCard/components/Action/index.less +8 -0
  366. package/lib/plus/productSelect/ProductCard/SkuCard/components/Capacity/index.js +52 -0
  367. package/lib/plus/productSelect/ProductCard/SkuCard/components/Capacity/index.less +3 -0
  368. package/lib/plus/productSelect/ProductCard/SkuCard/components/CardCom/index.js +178 -0
  369. package/lib/plus/productSelect/ProductCard/SkuCard/components/CardCom/index.less +44 -0
  370. package/lib/plus/productSelect/ProductCard/SkuCard/components/CardMask/index.js +52 -0
  371. package/lib/plus/productSelect/ProductCard/SkuCard/components/CardMask/index.less +14 -0
  372. package/lib/plus/productSelect/ProductCard/SkuCard/components/CardMoreText/index.js +63 -0
  373. package/lib/plus/productSelect/ProductCard/SkuCard/components/CardMoreText/index.less +30 -0
  374. package/lib/plus/productSelect/ProductCard/SkuCard/components/CardWrapper/index.js +131 -0
  375. package/lib/plus/productSelect/ProductCard/SkuCard/components/CardWrapper/index.less +46 -0
  376. package/lib/plus/productSelect/ProductCard/SkuCard/components/Countdown/index.js +62 -0
  377. package/lib/plus/productSelect/ProductCard/SkuCard/components/Countdown/index.less +9 -0
  378. package/lib/plus/productSelect/ProductCard/SkuCard/components/Cover/index.js +78 -0
  379. package/lib/plus/productSelect/ProductCard/SkuCard/components/Cover/index.less +31 -0
  380. package/lib/plus/productSelect/ProductCard/SkuCard/components/Duration/index.js +51 -0
  381. package/lib/plus/productSelect/ProductCard/SkuCard/components/Duration/index.less +3 -0
  382. package/lib/plus/productSelect/ProductCard/SkuCard/components/Favorite/index.js +94 -0
  383. package/lib/plus/productSelect/ProductCard/SkuCard/components/Favorite/index.less +11 -0
  384. package/lib/plus/productSelect/ProductCard/SkuCard/components/MemberPrice/index.js +115 -0
  385. package/lib/plus/productSelect/ProductCard/SkuCard/components/MemberPrice/index.less +24 -0
  386. package/lib/plus/productSelect/ProductCard/SkuCard/components/Price/index.js +139 -0
  387. package/lib/plus/productSelect/ProductCard/SkuCard/components/Price/index.less +57 -0
  388. package/lib/plus/productSelect/ProductCard/SkuCard/components/Promotions/index.js +97 -0
  389. package/lib/plus/productSelect/ProductCard/SkuCard/components/Promotions/index.less +18 -0
  390. package/lib/plus/productSelect/ProductCard/SkuCard/components/Resource/index.js +51 -0
  391. package/lib/plus/productSelect/ProductCard/SkuCard/components/Resource/index.less +3 -0
  392. package/lib/plus/productSelect/ProductCard/SkuCard/components/Stock/index.js +58 -0
  393. package/lib/plus/productSelect/ProductCard/SkuCard/components/Stock/index.less +3 -0
  394. package/lib/plus/productSelect/ProductCard/SkuCard/components/SubTitle/index.js +56 -0
  395. package/lib/plus/productSelect/ProductCard/SkuCard/components/SubTitle/index.less +13 -0
  396. package/lib/plus/productSelect/ProductCard/SkuCard/components/Tags/index.js +97 -0
  397. package/lib/plus/productSelect/ProductCard/SkuCard/components/Tags/index.less +18 -0
  398. package/lib/plus/productSelect/ProductCard/SkuCard/components/Time/index.js +51 -0
  399. package/lib/plus/productSelect/ProductCard/SkuCard/components/Time/index.less +3 -0
  400. package/lib/plus/productSelect/ProductCard/SkuCard/components/Title/index.js +56 -0
  401. package/lib/plus/productSelect/ProductCard/SkuCard/components/Title/index.less +13 -0
  402. package/lib/plus/productSelect/ProductCard/SkuCard/components/TooltipTags/index.js +58 -0
  403. package/lib/plus/productSelect/ProductCard/SkuCard/components/TooltipTags/index.less +22 -0
  404. package/lib/plus/productSelect/ProductCard/SkuCard/components/WarningLists/index.js +49 -0
  405. package/lib/plus/productSelect/ProductCard/SkuCard/components/WarningLists/index.less +20 -0
  406. package/lib/plus/productSelect/ProductCard/SkuCard/hooks/useDynamicComponents.js +83 -0
  407. package/lib/plus/productSelect/ProductCard/SkuCard/index.js +68 -0
  408. package/lib/plus/productSelect/ProductCard/SkuCard/locales.js +65 -0
  409. package/lib/plus/productSelect/ProductCard/SkuCard/status.js +501 -0
  410. package/lib/plus/productSelect/ProductCard/SkuCard/type.js +17 -0
  411. package/lib/plus/productSelect/ProductCard/SkuCard/utils.js +37 -0
  412. package/lib/plus/productSelect/components/pisellPriceText/index.js +6 -5
  413. package/lowcode/sku-card/meta.ts +1812 -0
  414. package/lowcode/sku-card/snippets.ts +372 -0
  415. package/lowcode/sku-list/meta.ts +410 -0
  416. package/package.json +1 -1
  417. package/es/components/booking/components/actionButtons/index.d.ts +0 -31
  418. package/es/components/booking/components/footer/index.d.ts +0 -11
  419. package/es/components/booking/components/voucher/index.d.ts +0 -3
  420. package/es/components/booking/info2/cartClientCard/index.d.ts +0 -6
  421. package/es/components/checkout/hooks/useWalletPass.d.ts +0 -40
  422. package/es/components/pay/toB/store/hooks.d.ts +0 -15
  423. package/es/components/ticketBooking/components/addServiceVariant/index.d.ts +0 -6
  424. package/es/components/ticketBooking/components/menuBar/index.d.ts +0 -3
  425. package/es/components/ticketBooking/hooks/pisellos/bookingTicket.d.ts +0 -1
  426. package/es/components/ticketBooking/hooks/pisellos/index.d.ts +0 -3
  427. package/es/components/ticketBooking/hooks/pisellos/useCustomer.d.ts +0 -25
  428. package/es/components/ticketBooking/hooks/pisellos/useScanCustomer.d.ts +0 -5
  429. package/es/components/ticketBooking/hooks/pisellos/useScanGlobal.d.ts +0 -5
  430. package/es/components/ticketBooking/utils/index.d.ts +0 -62
  431. package/es/index.d.ts +0 -63
  432. package/es/plus/productSelect/components/pisellPriceText/index.d.ts +0 -12
  433. package/lib/components/booking/components/actionButtons/index.d.ts +0 -31
  434. package/lib/components/booking/components/footer/index.d.ts +0 -11
  435. package/lib/components/booking/components/voucher/index.d.ts +0 -3
  436. package/lib/components/booking/info2/cartClientCard/index.d.ts +0 -6
  437. package/lib/components/checkout/hooks/useWalletPass.d.ts +0 -40
  438. package/lib/components/pay/toB/store/hooks.d.ts +0 -15
  439. package/lib/components/ticketBooking/components/addServiceVariant/index.d.ts +0 -6
  440. package/lib/components/ticketBooking/components/menuBar/index.d.ts +0 -3
  441. package/lib/components/ticketBooking/hooks/pisellos/bookingTicket.d.ts +0 -1
  442. package/lib/components/ticketBooking/hooks/pisellos/index.d.ts +0 -3
  443. package/lib/components/ticketBooking/hooks/pisellos/useCustomer.d.ts +0 -25
  444. package/lib/components/ticketBooking/hooks/pisellos/useScanCustomer.d.ts +0 -5
  445. package/lib/components/ticketBooking/hooks/pisellos/useScanGlobal.d.ts +0 -5
  446. package/lib/components/ticketBooking/utils/index.d.ts +0 -62
  447. package/lib/index.d.ts +0 -63
  448. package/lib/plus/productSelect/components/pisellPriceText/index.d.ts +0 -12
@@ -28,6 +28,7 @@
28
28
  display: flex;
29
29
  flex-direction: column;
30
30
  align-items: center;
31
+ gap: 12px;
31
32
 
32
33
  .nav-item {
33
34
  cursor: pointer;
@@ -38,10 +39,35 @@
38
39
  justify-content: center;
39
40
  align-items: center;
40
41
  position: relative;
41
- background: var(--Gray-950, #0c111d);
42
+ background: transparent;
43
+ color: rgba(255, 255, 255, 0.75);
44
+ transition: all 0.3s ease;
45
+
46
+ svg {
47
+ transition: all 0.3s ease;
48
+
49
+ path {
50
+ stroke: rgba(255, 255, 255, 0.75);
51
+ transition: all 0.3s ease;
52
+ }
53
+ }
54
+
55
+ &:hover {
56
+ background: rgba(129, 87, 213, 0.1);
57
+ color: rgba(255, 255, 255, 0.95);
58
+
59
+ svg path {
60
+ stroke: rgba(255, 255, 255, 0.95);
61
+ }
62
+ }
42
63
 
43
64
  &.active {
44
65
  background: #8157d5;
66
+ color: #ffffff;
67
+
68
+ svg path {
69
+ stroke: #ffffff;
70
+ }
45
71
 
46
72
  &::before {
47
73
  display: block;
@@ -1,4 +1,9 @@
1
1
  import './index.less';
2
+ import { ProductDisplayConfig, ProductDisplayPresetKey } from '../ProductDisplayAdapter/types';
2
3
  export declare const _formatBookingDetail: (data: any, modalState: any) => any;
3
- declare const TicketBooking: () => JSX.Element;
4
+ declare const TicketBooking: (props: {
5
+ productDisplayConfig?: ProductDisplayPresetKey | ProductDisplayConfig;
6
+ isShowTimeBar?: boolean;
7
+ isShowFloatButtons?: boolean;
8
+ }) => JSX.Element;
4
9
  export default TicketBooking;
@@ -32,7 +32,7 @@ import dayjs from 'dayjs';
32
32
  import useEngineContext from "../../../../hooks/useEngineContext";
33
33
  import { useStore } from "../../miniRedux";
34
34
  import BookingInfo from "../../../../components/booking/info";
35
- import { formatDateToStr, getNextTimeSlice, getDisabledEdit, restoreProductOtherData, getIsParallelResourcesBooking, formatHolder } from "../../utils";
35
+ import { formatDateToStr, getNextTimeSlice, getDisabledEdit, restoreProductOtherData, getIsParallelResourcesBooking, formatHolder, getBoardConfigCache, setBoardConfigCache } from "../../utils";
36
36
  import AddServiceVariant from "../addServiceVariant";
37
37
  import TimeBar from "../timeBar";
38
38
  import { formatProducts } from "../../../booking/info/service2/utils";
@@ -49,6 +49,9 @@ import { useCustomer } from "../../hooks/pisellos";
49
49
  import { useMemoizedFn } from 'ahooks';
50
50
  import useScanManager from "../../hooks/pisellos/useScanManager";
51
51
  import { useDebounceFn } from 'ahooks';
52
+ import { useOsKey } from "../../context";
53
+ import { useIsActive } from "../../context/IsActiveContext";
54
+ import { useShopDiscountModule } from "../../hooks/pisellos/useShopDiscountModule";
52
55
  export var _formatBookingDetail = function _formatBookingDetail(data, modalState) {
53
56
  var _bookings$list, _bookings$list2;
54
57
  var customer_id = data.customer_id,
@@ -218,8 +221,13 @@ var formatProductValues = function formatProductValues(data) {
218
221
  });
219
222
  });
220
223
  };
221
- var TicketBooking = function TicketBooking() {
224
+ var TicketBooking = function TicketBooking(props) {
222
225
  var _engineContext$appHel2, _state$modalState2, _state$modalState4;
226
+ var productDisplayConfig = props.productDisplayConfig,
227
+ _props$isShowTimeBar = props.isShowTimeBar,
228
+ isShowTimeBar = _props$isShowTimeBar === void 0 ? true : _props$isShowTimeBar,
229
+ _props$isShowFloatBut = props.isShowFloatButtons,
230
+ isShowFloatButtons = _props$isShowFloatBut === void 0 ? true : _props$isShowFloatBut;
223
231
  var _useStore = useStore(),
224
232
  _useStore2 = _slicedToArray(_useStore, 2),
225
233
  state = _useStore2[0],
@@ -244,6 +252,7 @@ var TicketBooking = function TicketBooking() {
244
252
  var _listTimerRef = useRef();
245
253
  var _timerRef = useRef();
246
254
  var _callbackFnRef = useRef();
255
+ var _isFirstLoadBoardConfigRef = useRef(true); // 跟踪 boardConfig 是否首次加载
247
256
  var _useState = useState(0),
248
257
  _useState2 = _slicedToArray(_useState, 2),
249
258
  activeBookingId = _useState2[0],
@@ -254,6 +263,9 @@ var TicketBooking = function TicketBooking() {
254
263
  setShowTerminalUpgradeModal = _useState4[1];
255
264
  var pisellFloatingPanelRef = useRef(null);
256
265
  var closeRef = useRef(null);
266
+ var shopDiscount = useShopDiscountModule();
267
+ var isActive = useIsActive();
268
+ var osKey = useOsKey();
257
269
  var bookingTicket = useBookingTicket();
258
270
  var _useScanGlobal = useScanGlobal(),
259
271
  openScan = _useScanGlobal.openScan,
@@ -302,16 +314,16 @@ var TicketBooking = function TicketBooking() {
302
314
  }
303
315
  }
304
316
  });
305
- useMemo(function () {
306
- openScan(function (data) {
307
- handleScan(data);
308
- });
309
- }, []);
310
317
  useEffect(function () {
318
+ if (isActive) {
319
+ openScan(function (data) {
320
+ handleScan(data);
321
+ });
322
+ }
311
323
  return function () {
312
324
  closeScan();
313
325
  };
314
- }, []);
326
+ }, [isActive]);
315
327
  var _useDebounceFn = useDebounceFn(function (type, orderId) {
316
328
  // 支付成功后清空状态
317
329
  try {
@@ -720,27 +732,57 @@ var TicketBooking = function TicketBooking() {
720
732
  */
721
733
  var _getBoardConfig = /*#__PURE__*/function () {
722
734
  var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
723
- var _data$config;
724
- var bookingConfigParams, data;
735
+ var bookingConfigParams, isHasCache, cachedBoardConfig, _cachedBoardConfig$co, data;
725
736
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
726
737
  while (1) switch (_context2.prev = _context2.next) {
727
738
  case 0:
728
- bookingConfigParams = state.bookingConfigParams; // 获取board设置
729
- _context2.next = 3;
739
+ bookingConfigParams = state.bookingConfigParams;
740
+ isHasCache = false; // 1. 如果是首次加载,尝试从缓存中获取数据
741
+ if (_isFirstLoadBoardConfigRef.current && osKey) {
742
+ cachedBoardConfig = getBoardConfigCache(osKey);
743
+ if (cachedBoardConfig) {
744
+ isHasCache = true;
745
+ // 先展示缓存数据
746
+ setState({
747
+ bookingConfig: cachedBoardConfig
748
+ });
749
+ console.log('[BoardConfigCache] 使用缓存数据展示');
750
+
751
+ // 如果缓存数据中有 quick_time 配置,也加载快捷时间产品
752
+ if (cachedBoardConfig !== null && cachedBoardConfig !== void 0 && (_cachedBoardConfig$co = cachedBoardConfig.config) !== null && _cachedBoardConfig$co !== void 0 && (_cachedBoardConfig$co = _cachedBoardConfig$co.information_tab) !== null && _cachedBoardConfig$co !== void 0 && (_cachedBoardConfig$co = _cachedBoardConfig$co.appointment_card) !== null && _cachedBoardConfig$co !== void 0 && _cachedBoardConfig$co.quick_time) {
753
+ _getAddTimeProducts();
754
+ }
755
+ }
756
+ _isFirstLoadBoardConfigRef.current = false;
757
+ }
758
+
759
+ // 2. 无论是否有缓存,都调用接口获取最新数据
760
+ _context2.prev = 3;
761
+ _context2.next = 6;
730
762
  return getBookingConfig(_objectSpread({}, bookingConfigParams));
731
- case 3:
763
+ case 6:
732
764
  data = _context2.sent;
733
- if (data !== null && data !== void 0 && (_data$config = data.config) !== null && _data$config !== void 0 && (_data$config = _data$config.information_tab) !== null && _data$config !== void 0 && (_data$config = _data$config.appointment_card) !== null && _data$config !== void 0 && _data$config.quick_time) {
734
- _getAddTimeProducts();
765
+ if (!isHasCache) {
766
+ setState({
767
+ bookingConfig: data
768
+ });
735
769
  }
736
- setState({
737
- bookingConfig: data
738
- });
739
- case 6:
770
+ // 4. 将新数据缓存到 storage
771
+ if (osKey && data) {
772
+ setBoardConfigCache(osKey, data);
773
+ console.log('[BoardConfigCache] 已更新缓存');
774
+ }
775
+ _context2.next = 14;
776
+ break;
777
+ case 11:
778
+ _context2.prev = 11;
779
+ _context2.t0 = _context2["catch"](3);
780
+ console.error('[BoardConfigCache] 获取配置失败:', _context2.t0);
781
+ case 14:
740
782
  case "end":
741
783
  return _context2.stop();
742
784
  }
743
- }, _callee2);
785
+ }, _callee2, null, [[3, 11]]);
744
786
  }));
745
787
  return function _getBoardConfig() {
746
788
  return _ref2.apply(this, arguments);
@@ -1265,10 +1307,11 @@ var TicketBooking = function TicketBooking() {
1265
1307
  productExtensionType: state.productExtensionType,
1266
1308
  isBookingTicket2: true
1267
1309
  }),
1268
- setGlobalState: _setModalState
1269
- }), /*#__PURE__*/React.createElement(FloatButtons, {
1310
+ setGlobalState: _setModalState,
1311
+ productDisplayConfig: productDisplayConfig
1312
+ }), isShowFloatButtons && /*#__PURE__*/React.createElement(FloatButtons, {
1270
1313
  items: floatButtons
1271
- })), /*#__PURE__*/React.createElement(TimeBar, {
1314
+ })), isShowTimeBar && /*#__PURE__*/React.createElement(TimeBar, {
1272
1315
  onCreateClick: handleCreateClick,
1273
1316
  setGlobalState: setState,
1274
1317
  globalState: state,
@@ -4,6 +4,7 @@
4
4
  align-items: center;
5
5
  gap: 16px;
6
6
  padding: 8px;
7
+ background-color: #fff;
7
8
 
8
9
  button {
9
10
  flex-shrink: 0;
@@ -0,0 +1,37 @@
1
+ import React, { createContext, useContext } from 'react';
2
+
3
+ /**
4
+ * IsActive Context
5
+ * 用于在 TicketBooking 组件树中提供 isActive 状态
6
+ * isActive 用于标识当前组件是否处于激活状态
7
+ */
8
+
9
+ var IsActiveContext = /*#__PURE__*/createContext({
10
+ isActive: true
11
+ });
12
+ /**
13
+ * IsActive Provider
14
+ * 提供 isActive 给子组件使用
15
+ */
16
+ export var IsActiveProvider = function IsActiveProvider(_ref) {
17
+ var isActive = _ref.isActive,
18
+ children = _ref.children;
19
+ return /*#__PURE__*/React.createElement(IsActiveContext.Provider, {
20
+ value: {
21
+ isActive: isActive
22
+ }
23
+ }, children);
24
+ };
25
+
26
+ /**
27
+ * useIsActive Hook
28
+ * 在子组件中使用此 hook 获取 isActive 状态
29
+ */
30
+ export var useIsActive = function useIsActive() {
31
+ var context = useContext(IsActiveContext);
32
+ if (!context) {
33
+ throw new Error('useIsActive must be used within an IsActiveProvider');
34
+ }
35
+ return context.isActive;
36
+ };
37
+ export default IsActiveContext;
@@ -0,0 +1,37 @@
1
+ import React, { createContext, useContext } from 'react';
2
+
3
+ /**
4
+ * OsKey Context
5
+ * 用于在 TicketBooking 组件树中提供 pisellos 的 osKey
6
+ * osKey 用于区分不同页面使用同一个组件时的模块标识
7
+ */
8
+
9
+ var OsKeyContext = /*#__PURE__*/createContext({
10
+ osKey: undefined
11
+ });
12
+ /**
13
+ * OsKey Provider
14
+ * 提供 osKey 给子组件使用
15
+ */
16
+ export var OsKeyProvider = function OsKeyProvider(_ref) {
17
+ var osKey = _ref.osKey,
18
+ children = _ref.children;
19
+ return /*#__PURE__*/React.createElement(OsKeyContext.Provider, {
20
+ value: {
21
+ osKey: osKey
22
+ }
23
+ }, children);
24
+ };
25
+
26
+ /**
27
+ * useOsKey Hook
28
+ * 在子组件中使用此 hook 获取 osKey
29
+ */
30
+ export var useOsKey = function useOsKey() {
31
+ var context = useContext(OsKeyContext);
32
+ if (!context) {
33
+ throw new Error('useOsKey must be used within an OsKeyProvider');
34
+ }
35
+ return (context === null || context === void 0 ? void 0 : context.osKey) || "ticket";
36
+ };
37
+ export default OsKeyContext;
@@ -0,0 +1,2 @@
1
+ export { OsKeyProvider, useOsKey } from "./OsKeyContext";
2
+ export { default as OsKeyContext } from "./OsKeyContext";
@@ -1,5 +1,17 @@
1
1
  import { usePisellOS } from "../../../../hooks/useEngineContext";
2
+ import { useOsKey } from "../../context/OsKeyContext";
3
+ import { getBookingTicketKey } from "../../utils";
4
+
5
+ /**
6
+ * useBookingTicket Hook
7
+ * 获取当前 TicketBooking 实例对应的 BookingTicket 模块
8
+ * 通过 osKey 区分不同页面的模块实例
9
+ */
2
10
  export var useBookingTicket = function useBookingTicket() {
3
11
  var pisellOS = usePisellOS();
4
- return pisellOS.getModule('bookingTicket');
12
+ var osKey = useOsKey();
13
+
14
+ // 根据 osKey 生成模块名称
15
+ var moduleKey = getBookingTicketKey(osKey || 'ticket');
16
+ return pisellOS.getModule(moduleKey);
5
17
  };
@@ -1,3 +1,4 @@
1
1
  export * from "./bookingTicket";
2
2
  export * from "./useProducts";
3
- export * from "./useCustomer";
3
+ export * from "./useCustomer";
4
+ export * from "./useActiveExecute";
@@ -0,0 +1,50 @@
1
+ import { useMemoizedFn } from 'ahooks';
2
+ import { useRef, useEffect } from 'react';
3
+ import { useIsActive } from "../../context/IsActiveContext";
4
+
5
+ /**
6
+ * useActiveExecute Hook
7
+ * 返回一个函数,该函数接收一个回调函数,并返回一个包装后的函数
8
+ * 包装后的函数只在 isActive 为 true 时执行原始回调
9
+ *
10
+ * @example
11
+ * ```tsx
12
+ * const { executeIfActive } = useActiveExecute();
13
+ *
14
+ * // 创建一个包装函数用于事件监听
15
+ * const handleChange = (data) => {
16
+ * console.log('data:', data);
17
+ * };
18
+ *
19
+ * // 返回的函数会在被调用时检查 isActive
20
+ * pisellos.effects.on('event', executeIfActive(handleChange));
21
+ * ```
22
+ */
23
+ export var useActiveExecute = function useActiveExecute() {
24
+ var isActive = useIsActive();
25
+ // 使用 ref 存储最新的 isActive 值,避免闭包陷阱
26
+ var isActiveRef = useRef(isActive);
27
+
28
+ // 每次 isActive 变化时更新 ref
29
+ useEffect(function () {
30
+ isActiveRef.current = isActive;
31
+ }, [isActive]);
32
+
33
+ /**
34
+ * executeIfActive 接收一个函数,返回一个包装后的函数
35
+ * 包装后的函数会接收所有参数,并在 isActive 为 true 时调用原始函数
36
+ */
37
+ var executeIfActive = useMemoizedFn(function (fn) {
38
+ return function () {
39
+ // 使用 ref.current 获取最新的 isActive 值
40
+ if (!isActiveRef.current) return;
41
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
42
+ args[_key] = arguments[_key];
43
+ }
44
+ return fn === null || fn === void 0 ? void 0 : fn.apply(void 0, args);
45
+ };
46
+ });
47
+ return {
48
+ executeIfActive: executeIfActive
49
+ };
50
+ };
@@ -17,9 +17,12 @@ import { useState, useEffect } from 'react';
17
17
  import { useBookingTicket } from "./bookingTicket";
18
18
  import { usePisellOS } from "../../../../hooks/useEngineContext";
19
19
  import { useMemoizedFn } from 'ahooks';
20
+ import { useActiveExecute } from "./useActiveExecute";
20
21
  export var useCustomer = function useCustomer(props) {
21
22
  var bookingTicket = useBookingTicket();
22
23
  var pisellos = usePisellOS();
24
+ var _useActiveExecute = useActiveExecute(),
25
+ executeIfActive = _useActiveExecute.executeIfActive;
23
26
 
24
27
  // 客户列表
25
28
  var _useState = useState([]),
@@ -59,10 +62,12 @@ export var useCustomer = function useCustomer(props) {
59
62
 
60
63
  // 监听事件
61
64
  useEffect(function () {
62
- if (!pisellos) {
65
+ var _bookingTicket$store;
66
+ if (!bookingTicket) {
63
67
  return;
64
68
  }
65
- var unlisten1 = pisellos.effects.on('customer:onUpdate', function (state) {
69
+ var customerModule = bookingTicket === null || bookingTicket === void 0 || (_bookingTicket$store = bookingTicket.store) === null || _bookingTicket$store === void 0 ? void 0 : _bookingTicket$store.customer;
70
+ var wrappedOnCustomerListUpdate = executeIfActive(function (state) {
66
71
  setCustomers(state.customerList);
67
72
  setHasMore(state.hasMore);
68
73
  setPagination(function (prev) {
@@ -73,14 +78,17 @@ export var useCustomer = function useCustomer(props) {
73
78
  });
74
79
  });
75
80
  });
76
- var unlisten2 = pisellos.effects.on('customer:onSelected', function (customer) {
81
+ var wrappedOnCustomerSelected = executeIfActive(function (customer) {
77
82
  var _props$changeCustomer;
78
83
  setSelectedCustomer(customer);
79
84
  (_props$changeCustomer = props.changeCustomerToGlobalState) === null || _props$changeCustomer === void 0 || _props$changeCustomer.call(props, customer);
80
85
  });
81
- var unlisten3 = pisellos.effects.on('customer:onPaginationChange', function (paginationInfo) {
86
+ var wrappedOnPaginationChange = executeIfActive(function (paginationInfo) {
82
87
  setPagination(paginationInfo);
83
88
  });
89
+ var unlisten1 = customerModule.effectsOn('onCustomerListUpdate', wrappedOnCustomerListUpdate);
90
+ var unlisten2 = customerModule.effectsOn('onCustomerSelected', wrappedOnCustomerSelected);
91
+ var unlisten3 = customerModule.effectsOn('onPaginationChange', wrappedOnPaginationChange);
84
92
  return function () {
85
93
  unlisten1();
86
94
  unlisten2();
@@ -10,9 +10,12 @@ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" !=
10
10
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
11
11
  import { useMemoizedFn } from 'ahooks';
12
12
  import { useBookingTicket } from "./bookingTicket";
13
- import { useState } from 'react';
13
+ import { useState, useRef } from 'react';
14
+ import { useOsKey } from "../../context/OsKeyContext";
15
+ import { getProductCache, setProductCache } from "../../utils/productCache";
14
16
  export var useProducts = function useProducts() {
15
17
  var bookingTicket = useBookingTicket();
18
+ var osKey = useOsKey();
16
19
  var _useState = useState([]),
17
20
  _useState2 = _slicedToArray(_useState, 2),
18
21
  products = _useState2[0],
@@ -21,24 +24,55 @@ export var useProducts = function useProducts() {
21
24
  _useState4 = _slicedToArray(_useState3, 2),
22
25
  loading = _useState4[0],
23
26
  setLoading = _useState4[1];
27
+ var isFirstLoadRef = useRef(true);
24
28
  var getProducts = useMemoizedFn( /*#__PURE__*/function () {
25
29
  var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(params) {
26
- var products;
30
+ var cachedProducts, freshProducts;
27
31
  return _regeneratorRuntime().wrap(function _callee$(_context) {
28
32
  while (1) switch (_context.prev = _context.next) {
29
33
  case 0:
30
- setLoading(true);
31
- _context.next = 3;
34
+ // 1. 如果是首次加载,尝试从缓存中获取数据
35
+ if (isFirstLoadRef.current && osKey) {
36
+ cachedProducts = getProductCache(osKey);
37
+ if (cachedProducts) {
38
+ // 先展示缓存数据
39
+ setProducts(cachedProducts);
40
+ setLoading(false);
41
+ }
42
+ isFirstLoadRef.current = false;
43
+ } else {
44
+ setLoading(true);
45
+ }
46
+
47
+ // 2. 无论是否有缓存,都调用接口获取最新数据
48
+ _context.prev = 1;
49
+ _context.next = 4;
32
50
  return bookingTicket.loadProducts(params);
33
- case 3:
34
- products = _context.sent;
35
- setProducts(products);
51
+ case 4:
52
+ freshProducts = _context.sent;
53
+ // 3. 更新展示数据
54
+ setProducts(freshProducts);
55
+
56
+ // 4. 将新数据缓存到 storage
57
+ if (osKey) {
58
+ setProductCache(osKey, freshProducts);
59
+ console.log('[ProductCache] 已更新缓存');
60
+ }
61
+ _context.next = 12;
62
+ break;
63
+ case 9:
64
+ _context.prev = 9;
65
+ _context.t0 = _context["catch"](1);
66
+ console.error('[ProductCache] 获取产品失败:', _context.t0);
67
+ case 12:
68
+ _context.prev = 12;
36
69
  setLoading(false);
37
- case 6:
70
+ return _context.finish(12);
71
+ case 15:
38
72
  case "end":
39
73
  return _context.stop();
40
74
  }
41
- }, _callee);
75
+ }, _callee, null, [[1, 9, 12, 15]]);
42
76
  }));
43
77
  return function (_x) {
44
78
  return _ref.apply(this, arguments);
@@ -3,13 +3,16 @@ import { locales } from "@pisell/utils";
3
3
  import { useBookingTicket } from "./bookingTicket";
4
4
  import { formatScanCustomer } from "../../utils";
5
5
  import { useToast } from '@pisell/materials';
6
+ import { useActiveExecute } from "./useActiveExecute";
6
7
  var useScanCustomer = function useScanCustomer() {
7
8
  var bookingTicket = useBookingTicket();
8
9
  var scanRef = useRef(null);
9
10
  var Toast = useToast();
11
+ var _useActiveExecute = useActiveExecute(),
12
+ executeIfActive = _useActiveExecute.executeIfActive;
10
13
  var handleScanCustomer = function handleScanCustomer(callback) {
11
14
  console.log('handleScanCustomer>>>>>>>', callback);
12
- scanRef.current = bookingTicket === null || bookingTicket === void 0 ? void 0 : bookingTicket.scanCustomerListener(function (data) {
15
+ scanRef.current = bookingTicket === null || bookingTicket === void 0 ? void 0 : bookingTicket.scanCustomerListener(executeIfActive(function (data) {
13
16
  console.log('scanCustomerListener>>>>>>>', data);
14
17
  if (data.status === 'failed') {
15
18
  Toast.fail(locales.getText('pisell2.text.scan-global-failed'));
@@ -17,7 +20,7 @@ var useScanCustomer = function useScanCustomer() {
17
20
  }
18
21
  var customer = formatScanCustomer(data);
19
22
  callback(customer);
20
- });
23
+ }));
21
24
  };
22
25
  return {
23
26
  openScan: handleScanCustomer,
@@ -3,12 +3,17 @@ import { useBookingTicket } from "./bookingTicket";
3
3
  import { formatScanGlobal } from "../../utils";
4
4
  import { useToast } from '@pisell/materials';
5
5
  import { locales } from '@pisell/utils';
6
+ import { useActiveExecute } from "./useActiveExecute";
6
7
  var useScanGlobal = function useScanGlobal() {
7
8
  var bookingTicket = useBookingTicket();
8
9
  var scanRef = useRef(null);
9
10
  var Toast = useToast();
11
+ var _useActiveExecute = useActiveExecute(),
12
+ executeIfActive = _useActiveExecute.executeIfActive;
10
13
  var handleScanGlobal = function handleScanGlobal(callback) {
11
- scanRef.current = bookingTicket === null || bookingTicket === void 0 ? void 0 : bookingTicket.scanGlobalListener(function (data) {
14
+ var _bookingTicket$initPe;
15
+ bookingTicket === null || bookingTicket === void 0 || (_bookingTicket$initPe = bookingTicket.initPeripheralsListener) === null || _bookingTicket$initPe === void 0 || _bookingTicket$initPe.call(bookingTicket);
16
+ scanRef.current = bookingTicket === null || bookingTicket === void 0 ? void 0 : bookingTicket.scanGlobalListener(executeIfActive(function (data) {
12
17
  console.log('scanGlobalListener>>>>>>>', data);
13
18
  if (data.status === 'failed') {
14
19
  Toast.fail(locales.getText('pisell2.text.scan-global-failed'));
@@ -16,7 +21,7 @@ var useScanGlobal = function useScanGlobal() {
16
21
  }
17
22
  var result = formatScanGlobal(data);
18
23
  callback(result);
19
- });
24
+ }));
20
25
  };
21
26
  return {
22
27
  openScan: handleScanGlobal,
@@ -0,0 +1,17 @@
1
+ import { usePisellOS } from "../../../../hooks/useEngineContext";
2
+ import { useOsKey } from "../../context/OsKeyContext";
3
+ import { getShopDiscountKey } from "../../utils";
4
+
5
+ /**
6
+ * useShopDiscountModule Hook
7
+ * 获取当前 ShopDiscount 模块
8
+ * 通过 osKey 区分不同页面的模块实例
9
+ */
10
+ export var useShopDiscountModule = function useShopDiscountModule() {
11
+ var pisellOS = usePisellOS();
12
+ var osKey = useOsKey();
13
+
14
+ // 根据 osKey 生成模块名称
15
+ var moduleKey = getShopDiscountKey(osKey || 'ticket');
16
+ return pisellOS.getModule(moduleKey);
17
+ };
@@ -1,8 +1,14 @@
1
+ import { ProductDisplayConfig, ProductDisplayPresetKey } from './components/ProductDisplayAdapter/types';
1
2
  import './index.less';
2
3
  interface TicketBookingProps {
3
4
  productExtensionType: string[];
4
5
  bookingConfigParams: Record<string, any>;
5
6
  isShowMenuBar?: boolean;
7
+ isShowTimeBar?: boolean;
8
+ isShowFloatButtons?: boolean;
9
+ productDisplayConfig?: ProductDisplayPresetKey | ProductDisplayConfig;
10
+ isActive?: boolean;
11
+ rulesHooks?: any;
6
12
  }
7
13
  declare const _default: (props: TicketBookingProps) => JSX.Element;
8
14
  export default _default;