@pisell/private-materials 6.2.9 → 6.2.11

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 (240) hide show
  1. package/build/lowcode/assets-daily.json +11 -11
  2. package/build/lowcode/assets-dev.json +2 -2
  3. package/build/lowcode/assets-prod.json +11 -11
  4. package/build/lowcode/index.js +1 -1
  5. package/build/lowcode/meta.js +1 -1
  6. package/build/lowcode/preview.js +8 -8
  7. package/build/lowcode/render/default/view.css +1 -1
  8. package/build/lowcode/render/default/view.js +2 -2
  9. package/build/lowcode/view.css +1 -1
  10. package/build/lowcode/view.js +8 -8
  11. package/es/businessModel/SalesModel/index.d.ts +1 -0
  12. package/es/components/appointmentBooking/components/Cart/utils.js +8 -13
  13. package/es/components/appointmentBooking/components/Content/index.js +87 -8
  14. package/es/components/appointmentBooking/components/Footer/index.d.ts +1 -0
  15. package/es/components/appointmentBooking/components/Guest/components/InformationOptionsModal/index.d.ts +1 -0
  16. package/es/components/appointmentBooking/components/Services/index.js +7 -2
  17. package/es/components/appointmentBooking/components/Voucher/index.js +10 -10
  18. package/es/components/appointmentBooking/hooks.js +28 -30
  19. package/es/components/booking/components/TabProduct/index.d.ts +1 -0
  20. package/es/components/booking/components/TabProduct/tabs/index.js +5 -1
  21. package/es/components/booking/components/browserSelect/index.js +1 -1
  22. package/es/components/booking/components/customSelect/index.js +1 -0
  23. package/es/components/booking/components/formItemChildrenWrap/index.d.ts +1 -0
  24. package/es/components/booking/forms/model.js +5 -5
  25. package/es/components/booking/forms/sendModal/useSendModal.d.ts +1 -1
  26. package/es/components/booking/forms/table/index.d.ts +1 -0
  27. package/es/components/booking/hooks/useClearCart.js +11 -8
  28. package/es/components/booking/info/client/index.js +3 -2
  29. package/es/components/booking/info/clientVariant/hooks/useIsLowSpeedNetwork.d.ts +1 -0
  30. package/es/components/booking/info/dateRange/index.d.ts +1 -0
  31. package/es/components/booking/info/hooks/useInfoHolder.js +16 -9
  32. package/es/components/booking/info/service/Lists.js +36 -26
  33. package/es/components/booking/info/service/addService/utils.d.ts +1 -1
  34. package/es/components/booking/info/service/editService/BookingList/index.d.ts +1 -0
  35. package/es/components/booking/info/service/like/index.d.ts +1 -0
  36. package/es/components/booking/info/service/like/index.js +1 -1
  37. package/es/components/booking/info/service2/utils.js +20 -21
  38. package/es/components/booking/info2/index.js +1 -0
  39. package/es/components/booking/info2/service/addService/utils.d.ts +1 -1
  40. package/es/components/booking/info2/service/addService/utils.js +6 -3
  41. package/es/components/booking/info2/service/addTimeModal/index.js +3 -0
  42. package/es/components/booking/info2/service/editService/Resources/index.js +5 -0
  43. package/es/components/booking/info2/service/editService/index.js +258 -165
  44. package/es/components/booking/info2/service/index.js +19 -15
  45. package/es/components/booking/materiels/duration/index.js +9 -2
  46. package/es/components/booking/materiels/holder/index.d.ts +1 -0
  47. package/es/components/booking/materiels/startTime/index.js +1 -1
  48. package/es/components/booking/notes/NoteBlock/NoteItem/index.js +1 -1
  49. package/es/components/booking/notes/NoteBlock/index.js +11 -11
  50. package/es/components/booking/notes/model.js +5 -5
  51. package/es/components/booking/payments/model.js +5 -5
  52. package/es/components/eftpos/deviceList/index.d.ts +1 -0
  53. package/es/components/eftpos/form/index.d.ts +1 -0
  54. package/es/components/eftpos/group/index.d.ts +1 -0
  55. package/es/components/eftpos/hooks.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/receipt/index.d.ts +1 -0
  59. package/es/components/eftpos/surcharge/index.d.ts +1 -0
  60. package/es/components/eftposPay/component/alert/warn.d.ts +1 -0
  61. package/es/components/eftposPay/component/header/titlebar.d.ts +1 -0
  62. package/es/components/eftposPay/component/step/index.d.ts +1 -0
  63. package/es/components/eftposPay/component/step/step.d.ts +1 -0
  64. package/es/components/eftposPay/hooks.d.ts +2 -2
  65. package/es/components/eftposPay/store/index.d.ts +3 -3
  66. package/es/components/eftposPay/tyro/hooks.d.ts +1 -0
  67. package/es/components/eventBooking/components/ErrorTip/index.d.ts +1 -0
  68. package/es/components/eventBooking/components/Provider/InformationOptionsModal/index.d.ts +1 -0
  69. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateStatus/index.d.ts +1 -0
  70. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/CallToBook/index.d.ts +1 -0
  71. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/WeekItem/index.d.ts +1 -0
  72. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/index.d.ts +1 -0
  73. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/DayItem/index.d.ts +1 -0
  74. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/index.d.ts +1 -0
  75. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Status/index.d.ts +1 -0
  76. package/es/components/eventBooking/components/scheduleCalendar/calendarItem.d.ts +1 -0
  77. package/es/components/listComponent/index.js +5 -5
  78. package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/Finish/index.d.ts +1 -0
  79. package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/StripeSDK/SDK.d.ts +1 -0
  80. package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/StripeSDK/index.d.ts +1 -0
  81. package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/components/PageLoading/index.d.ts +1 -0
  82. package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/components/SetupForm/PaymentRequestForm.d.ts +1 -0
  83. package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/components/SetupForm/index.d.ts +1 -0
  84. package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/index.d.ts +1 -0
  85. package/es/components/pay/toC/WalletPassBlock/components/WalletUseList/index.d.ts +1 -0
  86. package/es/components/pisellSelectCustomerModal/RightPanel/Add/PhoneField/index.d.ts +1 -0
  87. package/es/components/productExtension/card/index.js +3 -3
  88. package/es/components/productExtension/fields/Actor/CutOffTime/index.js +1 -1
  89. package/es/components/productExtension/fields/Actor/index.d.ts +1 -0
  90. package/es/components/productExtension/fields/Forms/index.d.ts +1 -0
  91. package/es/components/productExtension/fields/Forms/index.js +12 -12
  92. package/es/components/productExtension/fields/SelectProducts/ProductItemPreview/index.js +1 -1
  93. package/es/components/productExtension/fields/SelectProducts/server.js +2 -2
  94. package/es/components/productExtension/fields/SelectResourcesTable/server.js +2 -2
  95. package/es/components/productExtension/server.js +2 -2
  96. package/es/components/productSelect/components/TabProduct/index.js +103 -39
  97. package/es/components/productSelect/components/TabProduct/tabs/index.less +1 -0
  98. package/es/components/productSelect/index.d.ts +2 -0
  99. package/es/components/ruleSetting/ruleBorder/index.js +1 -1
  100. package/es/components/schedules/calendar/calendarItem.d.ts +1 -0
  101. package/es/components/schedules/calendar/index.js +4 -4
  102. package/es/components/schedules/calendar/serve.js +2 -2
  103. package/es/components/schedules/components/CurrentDay/index.d.ts +1 -0
  104. package/es/components/schedules/components/CurrentDay/index.js +5 -5
  105. package/es/components/schedules/components/CurrentDay/serve.js +2 -2
  106. package/es/components/schedules/components/DropdownSort/index.js +1 -1
  107. package/es/components/schedules/components/ResourceList/index.js +1 -1
  108. package/es/components/schedules/components/ScheduleList/RenderScheduleItem/index.d.ts +1 -0
  109. package/es/components/schedules/components/Search/index.js +5 -5
  110. package/es/components/schedules/model.js +5 -5
  111. package/es/components/schedules/openHours/index.js +1 -1
  112. package/es/components/schedules/openHours/serve.js +2 -2
  113. package/es/components/schedules/products/ProductDetailDrawer/ProductDetail/MaxParticipantsModule/index.js +1 -1
  114. package/es/components/schedules/products/ProductDetailDrawer/ProductDetail/ResourcesModule/index.js +5 -5
  115. package/es/components/schedules/products/ProductDetailDrawer/ProductDetail/SchedulesModule/index.js +4 -4
  116. package/es/components/schedules/products/ProductDetailDrawer/ProductDetail/index.d.ts +1 -0
  117. package/es/components/schedules/products/ProductDetailDrawer/ProductDetailByDate/index.d.ts +1 -0
  118. package/es/components/schedules/products/ProductDetailDrawer/index.js +3 -3
  119. package/es/components/schedules/products/index.d.ts +1 -0
  120. package/es/components/schedules/products/serve.js +2 -2
  121. package/es/components/schedules/products/utils.js +5 -5
  122. package/es/components/schedules/resources/detail/detailContent.js +2 -2
  123. package/es/components/schedules/resources/detail/index.js +10 -10
  124. package/es/components/schedules/resources/list/index.js +2 -2
  125. package/es/components/schedules/resources/relationProduct/index.d.ts +1 -0
  126. package/es/components/schedules/resources/relationProduct/index.js +1 -1
  127. package/es/components/schedules/resources/serve.js +2 -2
  128. package/es/components/schedules/schedules/ScheduleDetailDrawer/index.js +9 -9
  129. package/es/components/schedules/utils.js +4 -4
  130. package/es/components/selectModal/index.js +2 -2
  131. package/es/components/shoppingCart/components/Cart/Product.d.ts +1 -0
  132. package/es/components/shoppingCart/components/Cart/Product.js +48 -41
  133. package/es/components/shoppingCart/components/Cart/index.js +21 -18
  134. package/es/components/shoppingCart/components/Empty/index.d.ts +1 -0
  135. package/es/components/shoppingCart/components/Render/index.d.ts +1 -0
  136. package/es/components/ticketBooking/components/addServiceVariant/addService.js +175 -157
  137. package/es/components/ticketBooking/components/addServiceVariant/index.d.ts +1 -0
  138. package/es/components/ticketBooking/components/menuBar/index.js +38 -2
  139. package/es/components/ticketBooking/components/menuBar/index.less +8 -0
  140. package/es/components/ticketBooking/components/timeBar/index.js +78 -71
  141. package/es/components/ticketBooking/locales.d.ts +3 -0
  142. package/es/components/ticketBooking/locales.js +6 -3
  143. package/es/components/walletList/index.js +4 -4
  144. package/es/components/workSpaceList/components/Modal/index.d.ts +1 -0
  145. package/es/components/workSpaceList/components/SearchWorkspaceAndBase/index.d.ts +1 -0
  146. package/es/hooks/useComponents.js +1 -1
  147. package/lib/businessModel/SalesModel/index.d.ts +1 -0
  148. package/lib/components/appointmentBooking/components/Cart/utils.js +0 -10
  149. package/lib/components/appointmentBooking/components/Content/index.js +44 -7
  150. package/lib/components/appointmentBooking/components/Footer/index.d.ts +1 -0
  151. package/lib/components/appointmentBooking/components/Guest/components/InformationOptionsModal/index.d.ts +1 -0
  152. package/lib/components/appointmentBooking/components/Services/index.js +6 -1
  153. package/lib/components/appointmentBooking/components/Voucher/index.js +0 -11
  154. package/lib/components/appointmentBooking/hooks.js +5 -16
  155. package/lib/components/booking/components/TabProduct/index.d.ts +1 -0
  156. package/lib/components/booking/components/customSelect/index.js +1 -0
  157. package/lib/components/booking/components/formItemChildrenWrap/index.d.ts +1 -0
  158. package/lib/components/booking/forms/sendModal/useSendModal.d.ts +1 -1
  159. package/lib/components/booking/forms/table/index.d.ts +1 -0
  160. package/lib/components/booking/hooks/useClearCart.js +16 -13
  161. package/lib/components/booking/info/client/index.js +5 -4
  162. package/lib/components/booking/info/clientVariant/hooks/useIsLowSpeedNetwork.d.ts +1 -0
  163. package/lib/components/booking/info/dateRange/index.d.ts +1 -0
  164. package/lib/components/booking/info/hooks/useInfoHolder.js +10 -9
  165. package/lib/components/booking/info/service/Lists.js +35 -23
  166. package/lib/components/booking/info/service/addService/utils.d.ts +1 -1
  167. package/lib/components/booking/info/service/editService/BookingList/index.d.ts +1 -0
  168. package/lib/components/booking/info/service/like/index.d.ts +1 -0
  169. package/lib/components/booking/info/service2/utils.js +17 -17
  170. package/lib/components/booking/info2/service/addService/utils.d.ts +1 -1
  171. package/lib/components/booking/info2/service/addService/utils.js +4 -2
  172. package/lib/components/booking/info2/service/addTimeModal/index.js +3 -0
  173. package/lib/components/booking/info2/service/editService/Resources/index.js +2 -0
  174. package/lib/components/booking/info2/service/editService/index.js +132 -70
  175. package/lib/components/booking/info2/service/index.js +13 -9
  176. package/lib/components/booking/materiels/duration/index.js +7 -2
  177. package/lib/components/booking/materiels/holder/index.d.ts +1 -0
  178. package/lib/components/eftpos/deviceList/index.d.ts +1 -0
  179. package/lib/components/eftpos/form/index.d.ts +1 -0
  180. package/lib/components/eftpos/group/index.d.ts +1 -0
  181. package/lib/components/eftpos/hooks.d.ts +1 -0
  182. package/lib/components/eftpos/icon/apiKey.d.ts +1 -0
  183. package/lib/components/eftpos/icon/device.d.ts +1 -0
  184. package/lib/components/eftpos/receipt/index.d.ts +1 -0
  185. package/lib/components/eftpos/surcharge/index.d.ts +1 -0
  186. package/lib/components/eftposPay/component/alert/warn.d.ts +1 -0
  187. package/lib/components/eftposPay/component/header/titlebar.d.ts +1 -0
  188. package/lib/components/eftposPay/component/step/index.d.ts +1 -0
  189. package/lib/components/eftposPay/component/step/step.d.ts +1 -0
  190. package/lib/components/eftposPay/hooks.d.ts +2 -2
  191. package/lib/components/eftposPay/store/index.d.ts +3 -3
  192. package/lib/components/eftposPay/tyro/hooks.d.ts +1 -0
  193. package/lib/components/eventBooking/components/ErrorTip/index.d.ts +1 -0
  194. package/lib/components/eventBooking/components/Provider/InformationOptionsModal/index.d.ts +1 -0
  195. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateStatus/index.d.ts +1 -0
  196. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/CallToBook/index.d.ts +1 -0
  197. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/WeekItem/index.d.ts +1 -0
  198. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/index.d.ts +1 -0
  199. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/DayItem/index.d.ts +1 -0
  200. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/index.d.ts +1 -0
  201. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Status/index.d.ts +1 -0
  202. package/lib/components/eventBooking/components/scheduleCalendar/calendarItem.d.ts +1 -0
  203. package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/Finish/index.d.ts +1 -0
  204. package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/StripeSDK/SDK.d.ts +1 -0
  205. package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/StripeSDK/index.d.ts +1 -0
  206. package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/components/PageLoading/index.d.ts +1 -0
  207. package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/components/SetupForm/PaymentRequestForm.d.ts +1 -0
  208. package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/components/SetupForm/index.d.ts +1 -0
  209. package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/index.d.ts +1 -0
  210. package/lib/components/pay/toC/WalletPassBlock/components/WalletUseList/index.d.ts +1 -0
  211. package/lib/components/pisellSelectCustomerModal/RightPanel/Add/PhoneField/index.d.ts +1 -0
  212. package/lib/components/productExtension/fields/Actor/index.d.ts +1 -0
  213. package/lib/components/productExtension/fields/Forms/index.d.ts +1 -0
  214. package/lib/components/productSelect/components/TabProduct/index.js +74 -37
  215. package/lib/components/productSelect/components/TabProduct/tabs/index.less +1 -0
  216. package/lib/components/productSelect/index.d.ts +2 -0
  217. package/lib/components/schedules/calendar/calendarItem.d.ts +1 -0
  218. package/lib/components/schedules/components/CurrentDay/index.d.ts +1 -0
  219. package/lib/components/schedules/components/ScheduleList/RenderScheduleItem/index.d.ts +1 -0
  220. package/lib/components/schedules/products/ProductDetailDrawer/ProductDetail/index.d.ts +1 -0
  221. package/lib/components/schedules/products/ProductDetailDrawer/ProductDetailByDate/index.d.ts +1 -0
  222. package/lib/components/schedules/products/index.d.ts +1 -0
  223. package/lib/components/schedules/resources/relationProduct/index.d.ts +1 -0
  224. package/lib/components/schedules/utils.js +1 -1
  225. package/lib/components/shoppingCart/components/Cart/Product.d.ts +1 -0
  226. package/lib/components/shoppingCart/components/Cart/Product.js +31 -21
  227. package/lib/components/shoppingCart/components/Cart/index.js +18 -15
  228. package/lib/components/shoppingCart/components/Empty/index.d.ts +1 -0
  229. package/lib/components/shoppingCart/components/Render/index.d.ts +1 -0
  230. package/lib/components/ticketBooking/components/addServiceVariant/addService.js +143 -127
  231. package/lib/components/ticketBooking/components/addServiceVariant/index.d.ts +1 -0
  232. package/lib/components/ticketBooking/components/menuBar/index.js +42 -2
  233. package/lib/components/ticketBooking/components/menuBar/index.less +8 -0
  234. package/lib/components/ticketBooking/components/timeBar/index.js +95 -88
  235. package/lib/components/ticketBooking/locales.d.ts +3 -0
  236. package/lib/components/ticketBooking/locales.js +6 -3
  237. package/lib/components/walletList/index.js +3 -3
  238. package/lib/components/workSpaceList/components/Modal/index.d.ts +1 -0
  239. package/lib/components/workSpaceList/components/SearchWorkspaceAndBase/index.d.ts +1 -0
  240. package/package.json +3 -3
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { CalendarDataItem } from '../../type';
2
3
  declare type CalendarItemProps = {
3
4
  month: string;
@@ -1,2 +1,3 @@
1
+ /// <reference types="react" />
1
2
  declare const StripePayment: () => JSX.Element;
2
3
  export default StripePayment;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  declare const StripeSDK: ({ public_key, client_secret, children, lang, }: {
2
3
  public_key: string;
3
4
  client_secret?: string | undefined;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  declare const StripeSDK: ({ public_key, client_secret, children, lang, }: {
2
3
  public_key: string;
3
4
  client_secret?: string | undefined;
@@ -1,2 +1,3 @@
1
+ /// <reference types="react" />
1
2
  declare const PageLoading: () => JSX.Element;
2
3
  export default PageLoading;
@@ -1,2 +1,3 @@
1
+ /// <reference types="react" />
1
2
  declare const PaymentRequestForm: () => JSX.Element | null;
2
3
  export default PaymentRequestForm;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import './index.less';
2
3
  declare const SetupForm: ({ onReady, amount, order_id, payment_method, scene, }: any) => JSX.Element;
3
4
  export default SetupForm;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import './index.module.less';
2
3
  declare const StripePayment: () => JSX.Element;
3
4
  export default StripePayment;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { WalletPassDataType } from '../../../PaymentMethods/WalletPass/serve';
2
3
  import './index.less';
3
4
  interface WalletUseListProps {
@@ -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
  declare const Actor: ({ name }: {
2
3
  name: string;
3
4
  }) => JSX.Element;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  export interface InfoProps {
2
3
  relation_id: any;
3
4
  action: any;
@@ -39,7 +39,15 @@ var import_ahooks = require("ahooks");
39
39
  var import_utils = require("@pisell/utils");
40
40
  var import_tabs = __toESM(require("./tabs"));
41
41
  var import_productGroup = __toESM(require("../productGroup"));
42
- var io = null;
42
+ var getOffsetTopRelativeToScrollContainer = (targetElement, scrollContainer) => {
43
+ if (!targetElement || !scrollContainer) return 0;
44
+ if (targetElement === scrollContainer) {
45
+ return 0;
46
+ }
47
+ const targetRect = targetElement.getBoundingClientRect();
48
+ const containerRect = scrollContainer.getBoundingClientRect();
49
+ return targetRect.top - containerRect.top + scrollContainer.scrollTop;
50
+ };
43
51
  var TabProduct = (props) => {
44
52
  const {
45
53
  showTab = true,
@@ -48,6 +56,7 @@ var TabProduct = (props) => {
48
56
  onChange,
49
57
  amountSymbol = "$",
50
58
  scrollDom,
59
+ offsetDom,
51
60
  value: currentProductId,
52
61
  loading,
53
62
  emptyDescription,
@@ -55,6 +64,8 @@ var TabProduct = (props) => {
55
64
  } = props;
56
65
  const tabsRef = (0, import_react.useRef)();
57
66
  const [currentGroupId, setCurrentGroupId] = (0, import_react.useState)(1);
67
+ const tabLocatingRef = (0, import_react.useRef)(false);
68
+ const ioRef = (0, import_react.useRef)(null);
58
69
  (0, import_react.useEffect)(() => {
59
70
  if (list == null ? void 0 : list.length) {
60
71
  setCurrentGroupId(list[0].id);
@@ -62,6 +73,9 @@ var TabProduct = (props) => {
62
73
  handleObserver();
63
74
  });
64
75
  }
76
+ return () => {
77
+ handleUnobserver();
78
+ };
65
79
  }, [list]);
66
80
  const debouncedScroll = (0, import_ahooks.useDebounceFn)(
67
81
  (id) => {
@@ -75,18 +89,23 @@ var TabProduct = (props) => {
75
89
  const _marginTop = 270;
76
90
  const _marginBottom = window.innerHeight - 70 - 200 - 70;
77
91
  const _rootMargin = `${_marginTop * -1}px 0px ${_marginBottom * -1}px 0px`;
78
- io = new IntersectionObserver(
92
+ ioRef.current = new IntersectionObserver(
79
93
  (entries) => {
80
- var _a, _b;
94
+ var _a;
81
95
  const enteringEntries = entries.filter((entry) => entry.isIntersecting);
82
96
  if (enteringEntries.length > 0) {
83
97
  const topMostEntry = enteringEntries.reduce((top, current) => {
84
98
  return current.boundingClientRect.top < top.boundingClientRect.top ? current : top;
85
99
  });
86
- const [name, id] = (_b = (_a = topMostEntry == null ? void 0 : topMostEntry.target) == null ? void 0 : _a.id) == null ? void 0 : _b.split("-");
87
- const newGroupId = Number(id);
88
- setCurrentGroupId(newGroupId);
89
- debouncedScroll.run(id);
100
+ const targetId = (_a = topMostEntry == null ? void 0 : topMostEntry.target) == null ? void 0 : _a.id;
101
+ if (targetId) {
102
+ const [name, id] = targetId.split("-");
103
+ const newGroupId = Number(id);
104
+ if (!tabLocatingRef.current && !isNaN(newGroupId)) {
105
+ setCurrentGroupId(newGroupId);
106
+ debouncedScroll.run(id);
107
+ }
108
+ }
90
109
  }
91
110
  },
92
111
  {
@@ -94,24 +113,28 @@ var TabProduct = (props) => {
94
113
  rootMargin: _rootMargin
95
114
  }
96
115
  );
97
- if (list == null ? void 0 : list.length) {
116
+ if ((list == null ? void 0 : list.length) && ioRef.current) {
98
117
  for (const item of list) {
99
118
  const _item = document.querySelector(`#list-${item.id}`);
100
119
  if (_item) {
101
- io.observe(_item);
120
+ ioRef.current.observe(_item);
102
121
  }
103
122
  }
104
123
  }
105
124
  });
106
125
  const handleUnobserver = (0, import_ahooks.useMemoizedFn)(() => {
107
- if ((list == null ? void 0 : list.length) && io) {
126
+ if ((list == null ? void 0 : list.length) && ioRef.current) {
108
127
  for (const item of list) {
109
128
  const _item = document.querySelector(`#list-${item.id}`);
110
129
  if (_item) {
111
- io.unobserve(_item);
130
+ ioRef.current.unobserve(_item);
112
131
  }
113
132
  }
114
133
  }
134
+ if (ioRef.current) {
135
+ ioRef.current.disconnect();
136
+ ioRef.current = null;
137
+ }
115
138
  });
116
139
  const renderContent = () => {
117
140
  if (loading) {
@@ -126,7 +149,7 @@ var TabProduct = (props) => {
126
149
  );
127
150
  }
128
151
  return list.map((item, i) => {
129
- return /* @__PURE__ */ import_react.default.createElement("div", { id: `list-${item.id}`, key: i }, /* @__PURE__ */ import_react.default.createElement(
152
+ return /* @__PURE__ */ import_react.default.createElement("div", { id: `list-${item.id}`, key: `list-${item.id}` }, /* @__PURE__ */ import_react.default.createElement(
130
153
  import_productGroup.default,
131
154
  {
132
155
  onSelectProduct: onChange,
@@ -148,7 +171,7 @@ var TabProduct = (props) => {
148
171
  }
149
172
  ), /* @__PURE__ */ import_react.default.createElement("div", { className: "booking-pisell-tabs-content" }, /* @__PURE__ */ import_react.default.createElement(import_antd.Skeleton.Button, { active: true, size: "large", shape: "round" })));
150
173
  }, []);
151
- return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, showTab ? /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-product-select-tabs-wrapper" }, loading ? tabSkeleton : /* @__PURE__ */ import_react.default.createElement(
174
+ return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, showTab && list && list.length > 1 ? /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-product-select-tabs-wrapper" }, loading ? tabSkeleton : /* @__PURE__ */ import_react.default.createElement(
152
175
  import_tabs.default,
153
176
  {
154
177
  ref: tabsRef,
@@ -157,33 +180,47 @@ var TabProduct = (props) => {
157
180
  tab: currentGroupId,
158
181
  onChange: (e) => {
159
182
  var _a;
160
- let comWrapper = document.querySelector(
161
- ".pisell-product-select-wrapper"
162
- );
163
- let categoryDom = document.querySelector(
164
- ".pisell-product-select-tabs-wrapper"
165
- );
166
- let wrapperOffsetTop = comWrapper.offsetTop;
167
- let top = 0;
168
- if (categoryDom) {
169
- top = categoryDom.offsetHeight;
170
- }
171
- const dom = document == null ? void 0 : document.querySelector("#list-" + e);
172
- const main = document == null ? void 0 : document.querySelector(scrollDom);
173
- if (dom && main) {
174
- if (e === ((_a = list[0]) == null ? void 0 : _a.id)) {
175
- main.scrollTop = 0;
176
- } else {
177
- main.scrollTop = dom.offsetTop - top - wrapperOffsetTop;
183
+ try {
184
+ const productSelectWrapper = document.querySelector(
185
+ ".pisell-product-select-wrapper"
186
+ );
187
+ const tabsWrapper = document.querySelector(
188
+ ".pisell-product-select-tabs-wrapper"
189
+ );
190
+ let tabsHeight = 0;
191
+ if (tabsWrapper) {
192
+ tabsHeight = tabsWrapper.offsetHeight;
193
+ }
194
+ const targetListElement = document == null ? void 0 : document.querySelector("#list-" + e);
195
+ const scrollContainer = scrollDom ? document == null ? void 0 : document.querySelector(scrollDom) : null;
196
+ const offsetElement = offsetDom ? document == null ? void 0 : document.querySelector(offsetDom) : null;
197
+ const extraOffset = offsetElement ? offsetElement.clientHeight : 0;
198
+ handleUnobserver();
199
+ tabLocatingRef.current = true;
200
+ if (targetListElement && scrollContainer) {
201
+ if (e === ((_a = list[0]) == null ? void 0 : _a.id)) {
202
+ if (productSelectWrapper) {
203
+ const wrapperOffsetTop = getOffsetTopRelativeToScrollContainer(productSelectWrapper, scrollContainer);
204
+ scrollContainer.scrollTop = wrapperOffsetTop - extraOffset;
205
+ }
206
+ } else {
207
+ const listOffsetTop = getOffsetTopRelativeToScrollContainer(targetListElement, scrollContainer);
208
+ scrollContainer.scrollTop = listOffsetTop - tabsHeight - extraOffset;
209
+ }
178
210
  }
211
+ setCurrentGroupId(e);
212
+ debouncedScroll.run(e);
213
+ setTimeout(() => {
214
+ tabLocatingRef.current = false;
215
+ handleObserver();
216
+ }, 500);
217
+ } catch (error) {
218
+ console.error("Tab onChange error:", error);
219
+ tabLocatingRef.current = false;
220
+ setCurrentGroupId(e);
179
221
  }
180
- handleUnobserver();
181
- setCurrentGroupId(e);
182
- setTimeout(() => {
183
- handleObserver();
184
- }, 1e3);
185
222
  }
186
223
  }
187
- )) : null, /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-product-select-product-list" }, renderContent()));
224
+ )) : /* @__PURE__ */ import_react.default.createElement("p", null, /* @__PURE__ */ import_react.default.createElement("br", null)), /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-product-select-product-list" }, renderContent()));
188
225
  };
189
226
  var TabProduct_default = TabProduct;
@@ -107,6 +107,7 @@
107
107
  text-overflow: ellipsis;
108
108
  overflow: hidden;
109
109
  white-space: nowrap;
110
+ user-select: none;
110
111
  }
111
112
 
112
113
  &:hover {
@@ -14,6 +14,8 @@ interface ProductSelectProps {
14
14
  value?: number;
15
15
  loading?: boolean;
16
16
  scrollDom?: string;
17
+ /** 某些设置了固定头部的情况 */
18
+ offsetDom?: string;
17
19
  style?: React.CSSProperties;
18
20
  emptyDescription?: string;
19
21
  token?: Partial<ProductSelectToken>;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { CalendarDataItem } from "../type";
2
3
  declare type CalendarItemProps = {
3
4
  month: string;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import "./index.less";
2
3
  declare type CurrentDayProps = {
3
4
  onClose: () => void;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import './index.less';
2
3
  import { ScheduleItem } from '../../../type';
3
4
  declare type Item = any;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import "./index.less";
2
3
  declare const ProductDetail: ({ form, currentProduct, }: {
3
4
  form: any;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import "./index.less";
2
3
  declare const ProductDetailByDate: () => JSX.Element;
3
4
  export default ProductDetailByDate;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import './index.less';
2
3
  declare const Products: () => JSX.Element;
3
4
  export default Products;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import "./index.less";
2
3
  declare const RelationProduct: ({ value, onChange, }: {
3
4
  value?: any;
@@ -27,8 +27,8 @@ __export(utils_exports, {
27
27
  module.exports = __toCommonJS(utils_exports);
28
28
  var import_utils = require("@pisell/utils");
29
29
  var Request = class {
30
+ request = {};
30
31
  constructor() {
31
- this.request = {};
32
32
  }
33
33
  setRequest(val) {
34
34
  this.request = val;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { ProductProps } from '../../type';
2
3
  declare const Product: (props: ProductProps) => JSX.Element;
3
4
  export default Product;
@@ -37,6 +37,7 @@ var import_materials = require("@pisell/materials");
37
37
  var import_useClearCart = __toESM(require("../../hooks/useClearCart"));
38
38
  var import_useContext = require("../../hooks/useContext");
39
39
  var import_useAddService = __toESM(require("../../hooks/useAddService"));
40
+ var import_ahooks = require("ahooks");
40
41
  var Product = (props) => {
41
42
  const { id, lists, isAdd = true } = props;
42
43
  const { state, onAction, onChange } = (0, import_useContext.useContext)();
@@ -54,10 +55,10 @@ var Product = (props) => {
54
55
  isShowEditProduct
55
56
  } = state;
56
57
  const clearCart = (0, import_useClearCart.default)(id);
57
- const handleChange = (item, type, other) => {
58
+ const handleChange = (0, import_ahooks.useMemoizedFn)((item, type, other) => {
58
59
  if (disabledEdit && !(other == null ? void 0 : other.disabled)) return;
59
60
  onChange(item, type, other);
60
- };
61
+ });
61
62
  const productParams = (0, import_react.useMemo)(() => {
62
63
  return {
63
64
  isShowNote,
@@ -81,24 +82,33 @@ var Product = (props) => {
81
82
  isShowChangeHolder,
82
83
  isShowEditProduct
83
84
  ]);
84
- return /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-lowcode__shopping-cart-content" }, clearCart, lists == null ? void 0 : lists.map((item) => {
85
- return /* @__PURE__ */ import_react.default.createElement(
86
- import_materials.ProductCard,
87
- {
88
- key: item._id,
89
- dataSource: item,
90
- onAction: (e) => onAction == null ? void 0 : onAction(e),
91
- onDelete: (e) => handleChange(e, "delete", item),
92
- onNote: (e) => handleChange(e, "note", { note: e.note }),
93
- onLike: (e) => handleChange(e, "like", { like_status: e.like_status }),
94
- onEditProduct: (e) => handleChange == null ? void 0 : handleChange(e, "edit_product"),
95
- onCard: (e) => handleChange == null ? void 0 : handleChange(e, "view"),
96
- onChangeResource: (e) => handleChange(item, "change_resource", e),
97
- onChangeHolder: (e) => handleChange(item, "change_holder", e),
98
- onAddHolder: (e) => handleChange(item, "add_holder", e),
99
- ...productParams
100
- }
101
- );
102
- }), !hideAddBtn && platform !== "h5" && isAdd ? (0, import_useAddService.default)(id, "more") : null);
85
+ (0, import_ahooks.useTrackedEffect)(
86
+ (changes) => {
87
+ console.log("Index of changed dependencies: ", changes);
88
+ },
89
+ [clearCart, lists, productParams, hideAddBtn, isAdd, platform]
90
+ );
91
+ return (0, import_react.useMemo)(() => {
92
+ console.log("render cart");
93
+ return /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-lowcode__shopping-cart-content" }, clearCart, lists == null ? void 0 : lists.map((item) => {
94
+ return /* @__PURE__ */ import_react.default.createElement(
95
+ import_materials.ProductCard,
96
+ {
97
+ key: item._id,
98
+ dataSource: item,
99
+ onAction: (e) => onAction == null ? void 0 : onAction(e),
100
+ onDelete: (e) => handleChange(e, "delete", item),
101
+ onNote: (e) => handleChange(e, "note", { note: e.note }),
102
+ onLike: (e) => handleChange(e, "like", { like_status: e.like_status }),
103
+ onEditProduct: (e) => handleChange == null ? void 0 : handleChange(e, "edit_product"),
104
+ onCard: (e) => handleChange == null ? void 0 : handleChange(e, "view"),
105
+ onChangeResource: (e) => handleChange(item, "change_resource", e),
106
+ onChangeHolder: (e) => handleChange(item, "change_holder", e),
107
+ onAddHolder: (e) => handleChange(item, "add_holder", e),
108
+ ...productParams
109
+ }
110
+ );
111
+ }), !hideAddBtn && platform !== "h5" && isAdd ? (0, import_useAddService.default)(id, "more") : null);
112
+ }, [clearCart, lists, productParams, hideAddBtn, isAdd, platform]);
103
113
  };
104
114
  var Product_default = Product;
@@ -66,20 +66,23 @@ var Cart = () => {
66
66
  };
67
67
  });
68
68
  }, [carts, platform]);
69
- return /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_classnames.default)("pisell-lowcode__shopping-cart") }, isProductList ? /* @__PURE__ */ import_react.default.createElement(import_Product.default, { id: void 0, lists: state == null ? void 0 : state.products }) : /* @__PURE__ */ import_react.default.createElement(
70
- import_materials.Collapse,
71
- {
72
- items: cartsMap,
73
- showHeader: true,
74
- panelBackground: "#ffffff",
75
- collapsible: platform !== "shop" ? "disabled" : "-",
76
- accordion: platform === "shop",
77
- onChange: (key) => {
78
- updateState({ activeKey: key });
79
- onActiveKey(key);
80
- },
81
- ...collapseParams
82
- }
83
- ));
69
+ return (0, import_react.useMemo)(() => {
70
+ console.log("render cart 22222");
71
+ return /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_classnames.default)("pisell-lowcode__shopping-cart") }, isProductList ? /* @__PURE__ */ import_react.default.createElement(import_Product.default, { id: void 0, lists: state == null ? void 0 : state.products }) : /* @__PURE__ */ import_react.default.createElement(
72
+ import_materials.Collapse,
73
+ {
74
+ items: cartsMap,
75
+ showHeader: true,
76
+ panelBackground: "#ffffff",
77
+ collapsible: platform !== "shop" ? "disabled" : "-",
78
+ accordion: platform === "shop",
79
+ onChange: (key) => {
80
+ updateState({ activeKey: key });
81
+ onActiveKey(key);
82
+ },
83
+ ...collapseParams
84
+ }
85
+ ));
86
+ }, [isProductList, cartsMap, platform, collapseParams, state == null ? void 0 : state.products]);
84
87
  };
85
88
  var Cart_default = Cart;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import './index.less';
2
3
  declare const Empty: (props: any) => JSX.Element;
3
4
  export default Empty;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import './index.less';
2
3
  declare const Content: () => JSX.Element;
3
4
  export default Content;