@pisell/private-materials 6.3.131 → 6.3.133

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 (225) 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/meta.js +1 -1
  5. package/build/lowcode/render/default/view.js +6 -6
  6. package/build/lowcode/view.js +6 -6
  7. package/es/components/booking/info/clientVariant/hooks/useIsLowSpeedNetwork.d.ts +1 -0
  8. package/es/components/booking/utils.d.ts +2 -2
  9. package/es/components/ecocup/components/CupStatusModal/hooks.d.ts +1 -1
  10. package/es/components/eftposPay/hooks.d.ts +2 -2
  11. package/es/components/eftposPay/store/index.d.ts +5 -5
  12. package/es/components/eftposPay/tyro/hooks.d.ts +1 -0
  13. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateStatus/index.d.ts +1 -0
  14. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/DayItem/index.d.ts +1 -0
  15. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/index.d.ts +1 -0
  16. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Status/index.d.ts +1 -0
  17. package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/StripeSDK/index.d.ts +1 -0
  18. package/es/components/shoppingCart/components/Empty/index.d.ts +1 -0
  19. package/es/components/venueBooking/components/Cart/index.js +7 -7
  20. package/es/components/venueBooking/components/Checkout/index.js +2 -12
  21. package/es/components/venueBooking/components/Content/index.js +10 -9
  22. package/es/components/venueBooking/components/Footer/index.js +2 -8
  23. package/es/components/venueBooking/components/Header/index.js +38 -17
  24. package/es/components/venueBooking/components/VenueSelection/components/CourtFilter.js +1 -17
  25. package/es/components/venueBooking/components/VenueSelection/components/TimeGrid.js +63 -26
  26. package/es/components/venueBooking/components/VenueSelection/index.js +2 -6
  27. package/es/components/venueBooking/context.js +95 -44
  28. package/es/components/venueBooking/hooks.d.ts +1 -0
  29. package/es/components/venueBooking/hooks.js +8 -2
  30. package/es/components/venueBooking/index.js +30 -2
  31. package/es/components/venueBooking/locales.d.ts +20 -0
  32. package/es/components/venueBooking/locales.js +25 -5
  33. package/es/components/venueBooking/utils.d.ts +8 -0
  34. package/es/components/venueBooking/utils.js +12 -2
  35. package/es/hooks/usePaymentLogger.d.ts +1 -0
  36. package/es/plus/pisellSalesManagement/config/booking.d.ts +6 -6
  37. package/es/plus/pisellSalesManagement/hooks/useSalesGridData.d.ts +1 -0
  38. package/es/plus/walletEditor/components/ImageUpload/index.d.ts +1 -1
  39. package/lib/components/booking/info/clientVariant/hooks/useIsLowSpeedNetwork.d.ts +1 -0
  40. package/lib/components/booking/utils.d.ts +2 -2
  41. package/lib/components/ecocup/components/CupStatusModal/hooks.d.ts +1 -1
  42. package/lib/components/eftposPay/hooks.d.ts +2 -2
  43. package/lib/components/eftposPay/store/index.d.ts +5 -5
  44. package/lib/components/eftposPay/tyro/hooks.d.ts +1 -0
  45. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateStatus/index.d.ts +1 -0
  46. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/DayItem/index.d.ts +1 -0
  47. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/index.d.ts +1 -0
  48. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Status/index.d.ts +1 -0
  49. package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/StripeSDK/index.d.ts +1 -0
  50. package/lib/components/shoppingCart/components/Empty/index.d.ts +1 -0
  51. package/lib/components/venueBooking/components/Cart/index.js +3 -8
  52. package/lib/components/venueBooking/components/Checkout/index.js +1 -5
  53. package/lib/components/venueBooking/components/Content/index.js +20 -15
  54. package/lib/components/venueBooking/components/Footer/index.js +1 -9
  55. package/lib/components/venueBooking/components/Header/index.js +12 -6
  56. package/lib/components/venueBooking/components/VenueSelection/components/CourtFilter.js +1 -10
  57. package/lib/components/venueBooking/components/VenueSelection/components/TimeGrid.js +29 -10
  58. package/lib/components/venueBooking/components/VenueSelection/index.js +2 -3
  59. package/lib/components/venueBooking/context.js +52 -25
  60. package/lib/components/venueBooking/hooks.d.ts +1 -0
  61. package/lib/components/venueBooking/hooks.js +6 -1
  62. package/lib/components/venueBooking/index.js +19 -1
  63. package/lib/components/venueBooking/locales.d.ts +20 -0
  64. package/lib/components/venueBooking/locales.js +25 -5
  65. package/lib/components/venueBooking/utils.d.ts +8 -0
  66. package/lib/components/venueBooking/utils.js +3 -2
  67. package/lib/hooks/usePaymentLogger.d.ts +1 -0
  68. package/lib/plus/pisellSalesManagement/config/booking.d.ts +6 -6
  69. package/lib/plus/pisellSalesManagement/hooks/useSalesGridData.d.ts +1 -0
  70. package/lib/plus/walletEditor/components/ImageUpload/index.d.ts +1 -1
  71. package/package.json +18 -18
  72. package/es/components/appointmentBooking/components/Form/index.d.ts +0 -4
  73. package/es/components/appointmentBooking/components/Services/index.d.ts +0 -4
  74. package/es/components/appointmentBooking/deposit/components/PolicyModal/index.d.ts +0 -4
  75. package/es/components/appointmentBooking/hooks.d.ts +0 -107
  76. package/es/components/appointmentBooking/utils.d.ts +0 -227
  77. package/es/components/booking/components/footer/utils.d.ts +0 -47
  78. package/es/components/booking/components/reloadResourceModal/index.d.ts +0 -9
  79. package/es/components/booking/components/voucher/index.d.ts +0 -4
  80. package/es/components/booking/info/service/editService/constants.d.ts +0 -1
  81. package/es/components/booking/info/service/editService/index.d.ts +0 -7
  82. package/es/components/booking/info/service2/utils.d.ts +0 -248
  83. package/es/components/booking/info2/index.d.ts +0 -12
  84. package/es/components/booking/info2/service/addService/index.d.ts +0 -12
  85. package/es/components/booking/locales.d.ts +0 -1489
  86. package/es/components/booking/model.d.ts +0 -120
  87. package/es/components/eftposPay/amount.d.ts +0 -21
  88. package/es/components/eftposPay/app.d.ts +0 -11
  89. package/es/components/eftposPay/component/fail/failCustom.d.ts +0 -4
  90. package/es/components/eftposPay/component/fail/index.d.ts +0 -4
  91. package/es/components/eftposPay/component/fail/network.d.ts +0 -9
  92. package/es/components/eftposPay/component/fail/unknow.d.ts +0 -10
  93. package/es/components/eftposPay/component/manual/index.d.ts +0 -10
  94. package/es/components/eftposPay/component/signature/index.d.ts +0 -9
  95. package/es/components/eftposPay/device.d.ts +0 -24
  96. package/es/components/eftposPay/index.d.ts +0 -5
  97. package/es/components/eftposPay/linkly/hooks/normal.d.ts +0 -30
  98. package/es/components/eftposPay/linkly/hooks/useTimeQuery.d.ts +0 -4
  99. package/es/components/eftposPay/linkly/index.d.ts +0 -3
  100. package/es/components/eftposPay/pay.d.ts +0 -21
  101. package/es/components/eftposPay/payo/config.d.ts +0 -13
  102. package/es/components/eftposPay/payo/hooks.d.ts +0 -10
  103. package/es/components/eftposPay/payo/payment.d.ts +0 -66
  104. package/es/components/eftposPay/tip.d.ts +0 -10
  105. package/es/components/eftposPay/tyro/index.d.ts +0 -9
  106. package/es/components/eftposPay/utils/payLog.d.ts +0 -81
  107. package/es/components/eftposPay/windcave/receiptAction.d.ts +0 -23
  108. package/es/components/eftposPay/windcave/windcave.d.ts +0 -7
  109. package/es/components/kioskSkuDetail/index.d.ts +0 -39
  110. package/es/components/kioskSkuDetail/locales.d.ts +0 -48
  111. package/es/components/pay/toC/PaymentMethods/GlobePayAliPayH5/index.d.ts +0 -10
  112. package/es/components/pay/toC/PaymentMethods/GlobePayPaypalH5/index.d.ts +0 -10
  113. package/es/components/pay/toC/PaymentMethods/GlobePayWxH5/index.d.ts +0 -10
  114. package/es/components/pay/toC/PaymentMethods/MWCreditCard/TDSPay/index.d.ts +0 -16
  115. package/es/components/pay/toC/PaymentMethods/MWCreditCard/index.d.ts +0 -15
  116. package/es/components/pay/toC/PaymentMethods/MWCreditCard/tds2.d.ts +0 -83
  117. package/es/components/pay/toC/PaymentMethods/SuperPayAliPayH5/index.d.ts +0 -10
  118. package/es/components/pay/toC/PaymentMethods/SuperPayWxPayH5/index.d.ts +0 -10
  119. package/es/components/pay/toC/PaymentMethods/WalletPass/List/index.d.ts +0 -22
  120. package/es/components/pay/toC/PaymentMethods/WalletPass/index.d.ts +0 -25
  121. package/es/components/pay/toC/PaymentMethods/WalletPass/utils.d.ts +0 -16
  122. package/es/components/pay/toC/PaymentMethods/index.d.ts +0 -9
  123. package/es/components/pay/toC/index.d.ts +0 -3
  124. package/es/components/pay/toC/locales.d.ts +0 -631
  125. package/es/components/pay/toC/payGroup.d.ts +0 -59
  126. package/es/components/pay/toC/serve.d.ts +0 -87
  127. package/es/components/pay/toC/utils.d.ts +0 -65
  128. package/es/components/ruleSetting/locales.d.ts +0 -78
  129. package/es/components/ticketBooking/components/addServiceVariant/addService.d.ts +0 -10
  130. package/es/components/ticketBooking/components/ticketBooking/index.d.ts +0 -5
  131. package/es/components/ticketBooking/components/timeBar/index.d.ts +0 -13
  132. package/es/components/ticketBooking/index.d.ts +0 -8
  133. package/es/components/venueBooking/components/Cart/index.d.ts +0 -28
  134. package/es/components/venueBooking/components/Footer/index.d.ts +0 -8
  135. package/es/index.d.ts +0 -87
  136. package/es/plus/skuOptionsSelection/components/NormalCard/index.d.ts +0 -6
  137. package/es/plus/skuOptionsSelection/components/OptionsCard/OptionItemCard.d.ts +0 -4
  138. package/es/plus/skuOptionsSelection/components/OptionsModal/index.d.ts +0 -16
  139. package/es/plus/skuOptionsSelection/index.d.ts +0 -5
  140. package/es/plus/skuOptionsSelection/locales.d.ts +0 -58
  141. package/es/plus/skuOptionsSelection/types.d.ts +0 -458
  142. package/es/plus/skuOptionsSelection/utils/transformBundleGroup.d.ts +0 -19
  143. package/es/plus/skuOptionsSelection/utils/transformOptionGroup.d.ts +0 -1
  144. package/es/plus/skuOptionsSelection/utils/transformSelectorValueToValue.d.ts +0 -4
  145. package/es/plus/skuOptionsSelection/utils/transformValueToSelectorValue.d.ts +0 -4
  146. package/es/plus/skuOptionsSelection/utils/transformVariantGroup.d.ts +0 -1
  147. package/es/pro/Cards/components/SKUCard/index.d.ts +0 -5
  148. package/es/pro/Login2.0/components/phoneValidation.d.ts +0 -17
  149. package/lib/components/appointmentBooking/components/Form/index.d.ts +0 -4
  150. package/lib/components/appointmentBooking/components/Services/index.d.ts +0 -4
  151. package/lib/components/appointmentBooking/deposit/components/PolicyModal/index.d.ts +0 -4
  152. package/lib/components/appointmentBooking/hooks.d.ts +0 -107
  153. package/lib/components/appointmentBooking/utils.d.ts +0 -227
  154. package/lib/components/booking/components/footer/utils.d.ts +0 -47
  155. package/lib/components/booking/components/reloadResourceModal/index.d.ts +0 -9
  156. package/lib/components/booking/components/voucher/index.d.ts +0 -4
  157. package/lib/components/booking/info/service/editService/constants.d.ts +0 -1
  158. package/lib/components/booking/info/service/editService/index.d.ts +0 -7
  159. package/lib/components/booking/info/service2/utils.d.ts +0 -248
  160. package/lib/components/booking/info2/index.d.ts +0 -12
  161. package/lib/components/booking/info2/service/addService/index.d.ts +0 -12
  162. package/lib/components/booking/locales.d.ts +0 -1489
  163. package/lib/components/booking/model.d.ts +0 -120
  164. package/lib/components/eftposPay/amount.d.ts +0 -21
  165. package/lib/components/eftposPay/app.d.ts +0 -11
  166. package/lib/components/eftposPay/component/fail/failCustom.d.ts +0 -4
  167. package/lib/components/eftposPay/component/fail/index.d.ts +0 -4
  168. package/lib/components/eftposPay/component/fail/network.d.ts +0 -9
  169. package/lib/components/eftposPay/component/fail/unknow.d.ts +0 -10
  170. package/lib/components/eftposPay/component/manual/index.d.ts +0 -10
  171. package/lib/components/eftposPay/component/signature/index.d.ts +0 -9
  172. package/lib/components/eftposPay/device.d.ts +0 -24
  173. package/lib/components/eftposPay/index.d.ts +0 -5
  174. package/lib/components/eftposPay/linkly/hooks/normal.d.ts +0 -30
  175. package/lib/components/eftposPay/linkly/hooks/useTimeQuery.d.ts +0 -4
  176. package/lib/components/eftposPay/linkly/index.d.ts +0 -3
  177. package/lib/components/eftposPay/pay.d.ts +0 -21
  178. package/lib/components/eftposPay/payo/config.d.ts +0 -13
  179. package/lib/components/eftposPay/payo/hooks.d.ts +0 -10
  180. package/lib/components/eftposPay/payo/payment.d.ts +0 -66
  181. package/lib/components/eftposPay/tip.d.ts +0 -10
  182. package/lib/components/eftposPay/tyro/index.d.ts +0 -9
  183. package/lib/components/eftposPay/utils/payLog.d.ts +0 -81
  184. package/lib/components/eftposPay/windcave/receiptAction.d.ts +0 -23
  185. package/lib/components/eftposPay/windcave/windcave.d.ts +0 -7
  186. package/lib/components/kioskSkuDetail/index.d.ts +0 -39
  187. package/lib/components/kioskSkuDetail/locales.d.ts +0 -48
  188. package/lib/components/pay/toC/PaymentMethods/GlobePayAliPayH5/index.d.ts +0 -10
  189. package/lib/components/pay/toC/PaymentMethods/GlobePayPaypalH5/index.d.ts +0 -10
  190. package/lib/components/pay/toC/PaymentMethods/GlobePayWxH5/index.d.ts +0 -10
  191. package/lib/components/pay/toC/PaymentMethods/MWCreditCard/TDSPay/index.d.ts +0 -16
  192. package/lib/components/pay/toC/PaymentMethods/MWCreditCard/index.d.ts +0 -15
  193. package/lib/components/pay/toC/PaymentMethods/MWCreditCard/tds2.d.ts +0 -83
  194. package/lib/components/pay/toC/PaymentMethods/SuperPayAliPayH5/index.d.ts +0 -10
  195. package/lib/components/pay/toC/PaymentMethods/SuperPayWxPayH5/index.d.ts +0 -10
  196. package/lib/components/pay/toC/PaymentMethods/WalletPass/List/index.d.ts +0 -22
  197. package/lib/components/pay/toC/PaymentMethods/WalletPass/index.d.ts +0 -25
  198. package/lib/components/pay/toC/PaymentMethods/WalletPass/utils.d.ts +0 -16
  199. package/lib/components/pay/toC/PaymentMethods/index.d.ts +0 -9
  200. package/lib/components/pay/toC/index.d.ts +0 -3
  201. package/lib/components/pay/toC/locales.d.ts +0 -631
  202. package/lib/components/pay/toC/payGroup.d.ts +0 -59
  203. package/lib/components/pay/toC/serve.d.ts +0 -87
  204. package/lib/components/pay/toC/utils.d.ts +0 -65
  205. package/lib/components/ruleSetting/locales.d.ts +0 -78
  206. package/lib/components/ticketBooking/components/addServiceVariant/addService.d.ts +0 -10
  207. package/lib/components/ticketBooking/components/ticketBooking/index.d.ts +0 -5
  208. package/lib/components/ticketBooking/components/timeBar/index.d.ts +0 -13
  209. package/lib/components/ticketBooking/index.d.ts +0 -8
  210. package/lib/components/venueBooking/components/Cart/index.d.ts +0 -28
  211. package/lib/components/venueBooking/components/Footer/index.d.ts +0 -8
  212. package/lib/index.d.ts +0 -87
  213. package/lib/plus/skuOptionsSelection/components/NormalCard/index.d.ts +0 -6
  214. package/lib/plus/skuOptionsSelection/components/OptionsCard/OptionItemCard.d.ts +0 -4
  215. package/lib/plus/skuOptionsSelection/components/OptionsModal/index.d.ts +0 -16
  216. package/lib/plus/skuOptionsSelection/index.d.ts +0 -5
  217. package/lib/plus/skuOptionsSelection/locales.d.ts +0 -58
  218. package/lib/plus/skuOptionsSelection/types.d.ts +0 -458
  219. package/lib/plus/skuOptionsSelection/utils/transformBundleGroup.d.ts +0 -19
  220. package/lib/plus/skuOptionsSelection/utils/transformOptionGroup.d.ts +0 -1
  221. package/lib/plus/skuOptionsSelection/utils/transformSelectorValueToValue.d.ts +0 -4
  222. package/lib/plus/skuOptionsSelection/utils/transformValueToSelectorValue.d.ts +0 -4
  223. package/lib/plus/skuOptionsSelection/utils/transformVariantGroup.d.ts +0 -1
  224. package/lib/pro/Cards/components/SKUCard/index.d.ts +0 -5
  225. package/lib/pro/Login2.0/components/phoneValidation.d.ts +0 -17
@@ -53,6 +53,11 @@ function TimeGrid() {
53
53
  const resources = (grid == null ? void 0 : grid.resources) || [];
54
54
  const hourGroups = (0, import_react.useMemo)(() => (0, import_utils2.buildHourGroups)(timeLabels), [timeLabels]);
55
55
  const tableGridStyle = (0, import_react.useMemo)(() => (0, import_utils2.getTableGridStyle)(timeLabels.length), [timeLabels.length]);
56
+ const isIosDevice = (0, import_react.useMemo)(() => {
57
+ if (typeof navigator === "undefined") return false;
58
+ return (0, import_utils.isIos)();
59
+ }, []);
60
+ const scrollerOverscrollStyle = (0, import_react.useMemo)(() => isIosDevice ? { overscrollBehavior: "none" } : { overscrollBehaviorX: "none", overscrollBehaviorY: "auto" }, [isIosDevice]);
56
61
  const visibleResources = (0, import_react.useMemo)(() => resources.filter((resource) => {
57
62
  const hitType = filter === "ALL" || resource.productTitle === filter;
58
63
  const hitSearch = !search || resource.resourceName.toLowerCase().includes(search.toLowerCase());
@@ -81,6 +86,7 @@ function TimeGrid() {
81
86
  applyHeaderTransform(e.currentTarget.scrollLeft);
82
87
  }
83
88
  (0, import_react.useEffect)(() => {
89
+ if (isGridLoading) return;
84
90
  const scroller = scrollTableRef.current;
85
91
  if (!scroller || !timeLabels.length || !grid) return;
86
92
  const firstAvailableIndex = (0, import_utils2.getFirstAvailableSlotIndex)(grid);
@@ -94,7 +100,7 @@ function TimeGrid() {
94
100
  const targetLeft = Math.max(0, scrollToIndex * slotWidth);
95
101
  scroller.scrollTo({ left: targetLeft, behavior: "smooth" });
96
102
  applyHeaderTransform(targetLeft);
97
- }, [grid == null ? void 0 : grid.date, timeLabels.length, applyHeaderTransform]);
103
+ }, [grid == null ? void 0 : grid.date, timeLabels.length, isGridLoading, applyHeaderTransform]);
98
104
  (0, import_react.useEffect)(() => {
99
105
  const scroller = scrollTableRef.current;
100
106
  if (!scroller) return void 0;
@@ -147,6 +153,18 @@ function TimeGrid() {
147
153
  scroller.removeEventListener("pointercancel", endDrag);
148
154
  };
149
155
  }, [applyHeaderTransform]);
156
+ (0, import_react.useEffect)(() => {
157
+ const scroller = scrollTableRef.current;
158
+ if (!scroller) return void 0;
159
+ function onWheel(e) {
160
+ if (Math.abs(e.deltaY) > Math.abs(e.deltaX)) {
161
+ e.preventDefault();
162
+ window.scrollBy({ top: e.deltaY, behavior: "instant" });
163
+ }
164
+ }
165
+ scroller.addEventListener("wheel", onWheel, { passive: false });
166
+ return () => scroller.removeEventListener("wheel", onWheel);
167
+ }, []);
150
168
  function handleSlotClick(resourceId, slot) {
151
169
  if (dragStateRef.current.moved) {
152
170
  dragStateRef.current.moved = false;
@@ -213,7 +231,8 @@ function TimeGrid() {
213
231
  },
214
232
  headerTag && !timeMeta.soldOut ? /* @__PURE__ */ import_react.default.createElement("span", { className: `inline-flex rounded-full px-1.5 py-0.5 text-[8px] font-semibold ring-1 md:text-[9px] ${headerTag.className}` }, headerTag.text) : null,
215
233
  timeMeta.soldOut ? /* @__PURE__ */ import_react.default.createElement("div", { className: "mt-1 text-[10px] font-bold text-zinc-400" }, import_utils.locales.getText("pisell2.venue.label.sold.out") || "已满") : null,
216
- !timeMeta.soldOut && timeMeta.fewLeft ? /* @__PURE__ */ import_react.default.createElement("div", { className: "mt-1 text-[10px] font-bold", style: { color: "var(--vb-primary)" } }, import_utils.locales.getText("pisell2.venue.label.few.left") || "即将满") : null
234
+ !timeMeta.soldOut && timeMeta.fewLeft ? /* @__PURE__ */ import_react.default.createElement("div", { className: "mt-1 text-[10px] font-bold", style: { color: "var(--vb-primary)" } }, import_utils.locales.getText("pisell2.venue.label.few.left") || "即将满") : null,
235
+ !timeMeta.soldOut && !timeMeta.fewLeft && !headerTag ? /* @__PURE__ */ import_react.default.createElement("div", { className: "mt-1 text-[10px] font-bold text-zinc-500" }, import_utils.locales.getText("pisell2.venue.label.bookable") || "充足") : null
217
236
  );
218
237
  })
219
238
  )
@@ -222,12 +241,12 @@ function TimeGrid() {
222
241
  {
223
242
  ref: scrollTableRef,
224
243
  onScroll: syncHeader,
225
- className: "max-w-full overflow-x-auto cursor-grab select-none touch-pan-y overscroll-none active:cursor-grabbing",
226
- style: { WebkitOverflowScrolling: "touch", overscrollBehaviorX: "none" }
244
+ className: "max-w-full overflow-x-auto cursor-grab select-none touch-pan-y active:cursor-grabbing",
245
+ style: { WebkitOverflowScrolling: "touch", ...scrollerOverscrollStyle }
227
246
  },
228
247
  /* @__PURE__ */ import_react.default.createElement("div", { className: "w-full", key: grid.date }, visibleResources.map((resource) => {
229
248
  const courtMeta = (0, import_utils2.getResourceCourtMeta)(resource);
230
- return /* @__PURE__ */ import_react.default.createElement("div", { key: `${resource.resourceId}-${grid.date}`, className: "grid border-b border-black/6", style: tableGridStyle }, /* @__PURE__ */ import_react.default.createElement("div", { className: `sticky left-0 z-10 border-r border-black/6 px-2 py-4 shadow-[10px_0_16px_-14px_rgba(0,0,0,0.2)] md:px-4 ${courtMeta.soldOut ? "bg-zinc-50" : "bg-white"}` }, /* @__PURE__ */ import_react.default.createElement("div", { className: "flex items-start justify-between gap-2" }, /* @__PURE__ */ import_react.default.createElement("div", null, /* @__PURE__ */ import_react.default.createElement("div", { className: `text-[13px] font-extrabold leading-5 md:text-[15px] ${courtMeta.soldOut ? "text-zinc-400" : "text-zinc-900"}` }, resource.resourceName), /* @__PURE__ */ import_react.default.createElement("div", { className: `mt-1 text-[11px] md:text-xs ${courtMeta.soldOut ? "text-zinc-400" : "text-zinc-500"}` }, resource.productTitle), courtMeta.soldOut ? /* @__PURE__ */ import_react.default.createElement("div", { className: "mt-1 text-[11px] font-semibold text-zinc-500" }, import_utils.locales.getText("pisell2.venue.label.sold.out") || "已满") : null, !courtMeta.soldOut && courtMeta.fewLeft ? /* @__PURE__ */ import_react.default.createElement("div", { className: "mt-1 text-[12px] font-bold", style: { color: "var(--vb-primary)" } }, import_utils.locales.getText("pisell2.venue.label.few.left") || "即将满") : null))), resource.slots.map((slot, slotIndex) => {
249
+ return /* @__PURE__ */ import_react.default.createElement("div", { key: `${resource.resourceId}-${grid.date}`, className: "grid border-b border-black/6", style: tableGridStyle }, /* @__PURE__ */ import_react.default.createElement("div", { className: `sticky left-0 z-10 border-r border-black/6 px-2 py-2 shadow-[10px_0_16px_-14px_rgba(0,0,0,0.2)] md:px-4 ${courtMeta.soldOut ? "bg-zinc-50" : "bg-white"}` }, /* @__PURE__ */ import_react.default.createElement("div", { className: "flex items-start justify-between gap-2" }, /* @__PURE__ */ import_react.default.createElement("div", null, /* @__PURE__ */ import_react.default.createElement("div", { className: `text-[13px] font-extrabold leading-5 md:text-[15px] ${courtMeta.soldOut ? "text-zinc-400" : "text-zinc-900"}` }, resource.resourceName)))), resource.slots.map((slot, slotIndex) => {
231
250
  const isAvailable = slot.status === "available";
232
251
  const isUnavailable = slot.status === "occupied" || slot.status === "past" || slot.status === "unavailable";
233
252
  const selected = isAvailable && (0, import_hooks.isSlotSelected)(
@@ -247,14 +266,14 @@ function TimeGrid() {
247
266
  key: `${resource.resourceId}-${slot.startTime}`,
248
267
  onClick: () => handleSlotClick(resource.resourceId, slot),
249
268
  disabled: isUnavailable,
250
- className: `px-1 py-3 text-center transition md:px-2 ${isUnavailable ? "cursor-not-allowed bg-zinc-100 text-zinc-400" : selected ? "text-white" : "bg-white hover:bg-[#fff6f6]"}`,
269
+ className: `px-1 py-2 text-center transition md:px-2 ${isUnavailable ? "cursor-not-allowed bg-zinc-100 text-zinc-400" : selected ? "text-white" : "bg-white hover:bg-[#fff6f6]"}`,
251
270
  style: {
252
271
  borderLeft: (0, import_utils2.isHourBoundary)(timeLabel) ? "1px solid rgba(0,0,0,0.08)" : "1px solid rgba(0,0,0,0.03)",
253
272
  borderBottom: "1px solid rgba(0,0,0,0.04)",
254
273
  ...selected && !isUnavailable ? { backgroundColor: "var(--vb-primary)" } : null
255
274
  }
256
275
  },
257
- isUnavailable ? /* @__PURE__ */ import_react.default.createElement("div", { className: "flex flex-col items-center justify-center gap-1 text-zinc-400" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "text-lg font-bold leading-none" }, "×")) : selected ? /* @__PURE__ */ import_react.default.createElement("div", { className: "space-y-1" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "text-[11px] font-bold uppercase tracking-wide text-white/90" }, import_utils.locales.getText("pisell2.venue.label.selected") || "已选"), /* @__PURE__ */ import_react.default.createElement(
276
+ isUnavailable ? /* @__PURE__ */ import_react.default.createElement("div", { className: "flex flex-col items-center justify-center gap-1 text-zinc-400" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "text-lg font-bold leading-none" }, "×")) : selected ? /* @__PURE__ */ import_react.default.createElement("div", { className: "space-y-0.5" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "text-[11px] font-bold uppercase tracking-wide leading-4 text-white/90" }, import_utils.locales.getText("pisell2.venue.label.selected") || "已选"), /* @__PURE__ */ import_react.default.createElement(
258
277
  import_materials.PisellText.Amount,
259
278
  {
260
279
  value: Number(slot.price || 0),
@@ -263,7 +282,7 @@ function TimeGrid() {
263
282
  showCurrencySymbol: true,
264
283
  className: "text-sm font-extrabold text-white"
265
284
  }
266
- )) : /* @__PURE__ */ import_react.default.createElement("div", { className: "space-y-1" }, /* @__PURE__ */ import_react.default.createElement(
285
+ )) : /* @__PURE__ */ import_react.default.createElement("div", { className: "space-y-0.5" }, /* @__PURE__ */ import_react.default.createElement(
267
286
  import_materials.PisellText.Amount,
268
287
  {
269
288
  value: Number(slot.price || 0),
@@ -271,9 +290,9 @@ function TimeGrid() {
271
290
  precision: 2,
272
291
  showCurrencySymbol: true,
273
292
  hideDecimalForWholeNumbers: false,
274
- className: `text-[13px] font-normal ${priceClass} md:text-sm`
293
+ className: `text-[13px] font-normal leading-4 ${priceClass} md:text-sm`
275
294
  }
276
- ), tag ? /* @__PURE__ */ import_react.default.createElement("div", { className: `inline-flex rounded-full px-1.5 py-0.5 text-[8px] font-semibold ring-1 md:text-[9px] ${tag.className}` }, tagText) : null)
295
+ ), tag ? /* @__PURE__ */ import_react.default.createElement("div", { className: `inline-flex rounded-full px-1.5 py-0 text-[8px] font-semibold leading-4 ring-1 md:text-[9px] ${tag.className}` }, tagText) : null)
277
296
  );
278
297
  }));
279
298
  }))
@@ -57,12 +57,11 @@ function VenueSelection() {
57
57
  function goNextWeek() {
58
58
  navigateWeek(7);
59
59
  }
60
- return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement("div", { className: "rounded-[24px] bg-white p-3 shadow-[0_10px_40px_rgba(20,20,20,0.06)] ring-1 ring-black/6 md:rounded-[28px] md:p-6" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "flex flex-col gap-2 xl:flex-row xl:items-center xl:justify-between" }, /* @__PURE__ */ import_react.default.createElement("div", null, /* @__PURE__ */ import_react.default.createElement("h2", { className: "text-2xl font-extrabold leading-tight text-zinc-900 md:text-[30px]" }, import_utils.locales.getText("pisell2.venue.step1.title") || "选择场地"), /* @__PURE__ */ import_react.default.createElement("p", { className: "mt-1 text-xs leading-5 text-zinc-500 md:mt-2 md:text-sm md:leading-6" }, import_utils.locales.getText("pisell2.venue.step1.subtitle") || "仅显示可用时段和价格。")), /* @__PURE__ */ import_react.default.createElement(import_DateNavigator.default, { onPrevWeek: goPrevWeek, onNextWeek: goNextWeek })), /* @__PURE__ */ import_react.default.createElement("div", { className: "mt-3 md:mt-5" }, /* @__PURE__ */ import_react.default.createElement(import_DayTabs.default, { onPrevWeek: goPrevWeek, onNextWeek: goNextWeek })), /* @__PURE__ */ import_react.default.createElement(import_CourtFilter.default, null)), /* @__PURE__ */ import_react.default.createElement(
60
+ return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement("div", { className: "rounded-b-[24px] bg-white p-3 shadow-[0_10px_40px_rgba(20,20,20,0.06)] ring-1 ring-black/6 md:rounded-[28px] md:p-6" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "flex flex-col gap-2 xl:flex-row xl:items-center xl:justify-between" }, /* @__PURE__ */ import_react.default.createElement("div", null, /* @__PURE__ */ import_react.default.createElement("h2", { className: "text-2xl font-extrabold leading-tight text-zinc-900 md:text-[30px]" }, import_utils.locales.getText("pisell2.venue.step1.title") || "选择场地"), /* @__PURE__ */ import_react.default.createElement("p", { className: "mt-1 text-xs leading-5 text-zinc-500 md:mt-2 md:text-sm md:leading-6" }, import_utils.locales.getText("pisell2.venue.step1.subtitle") || "仅显示可用时段和价格。")), /* @__PURE__ */ import_react.default.createElement(import_DateNavigator.default, { onPrevWeek: goPrevWeek, onNextWeek: goNextWeek })), /* @__PURE__ */ import_react.default.createElement("div", { className: "mt-3 md:mt-5" }, /* @__PURE__ */ import_react.default.createElement(import_DayTabs.default, { onPrevWeek: goPrevWeek, onNextWeek: goNextWeek })), /* @__PURE__ */ import_react.default.createElement(import_CourtFilter.default, null)), /* @__PURE__ */ import_react.default.createElement(
61
61
  "div",
62
62
  {
63
63
  ref: tableSectionRef,
64
- className: "w-full max-w-full isolate rounded-[28px] bg-white shadow-[0_10px_40px_rgba(20,20,20,0.06)] ring-1 ring-black/6",
65
- style: { overflowX: "clip", overflowY: "visible" }
64
+ className: "w-full max-w-full isolate rounded-[28px] bg-white shadow-[0_10px_40px_rgba(20,20,20,0.06)] ring-1 ring-black/6"
66
65
  },
67
66
  /* @__PURE__ */ import_react.default.createElement(import_TimeGrid.default, null)
68
67
  ));
@@ -52,6 +52,7 @@ var INITIAL_VIEW_MODEL = {
52
52
  venueProducts: [],
53
53
  addonProductList: []
54
54
  };
55
+ var EMPTY_UTILS = {};
55
56
  function getWeekRange(anchor) {
56
57
  const days = (0, import_utils2.getWeekDays)(anchor);
57
58
  return {
@@ -59,6 +60,14 @@ function getWeekRange(anchor) {
59
60
  endDate: (0, import_utils2.formatDateKey)(days[days.length - 1])
60
61
  };
61
62
  }
63
+ function clampRangeToToday(startDate, endDate) {
64
+ const todayKey = (0, import_utils2.formatDateKey)((0, import_dayjs.default)());
65
+ if (endDate < todayKey) return null;
66
+ return {
67
+ startDate: startDate < todayKey ? todayKey : startDate,
68
+ endDate
69
+ };
70
+ }
62
71
  function getSubmitOrderErrorMessage(error) {
63
72
  const firstFailure = Array.isArray(error == null ? void 0 : error.failures) ? error.failures[0] : null;
64
73
  const failureTips = String((firstFailure == null ? void 0 : firstFailure.validationMessage) || "").trim();
@@ -78,12 +87,16 @@ function findNearestAvailableDate(params) {
78
87
  return availableDates.sort((a, b) => b.valueOf() - a.valueOf())[0];
79
88
  }
80
89
  function VenueBookingProvider({ entryContext, children }) {
81
- var _a, _b;
90
+ var _a, _b, _c;
82
91
  const pisellOS = (0, import_useEngineContext.usePisellOS)();
83
92
  const venueBookingModule = (0, import_hooks.useVenueBookingModule)();
84
93
  const [currentStep, setCurrentStep] = (0, import_react.useState)("select-venue");
85
- const stepList = [...import_hooks.VENUE_BOOKING_STEPS];
86
94
  const [viewModel, setViewModel] = (0, import_react.useState)(INITIAL_VIEW_MODEL);
95
+ const stepList = (0, import_react.useMemo)(() => {
96
+ var _a2;
97
+ const hasAddons = (((_a2 = viewModel.addonProductList) == null ? void 0 : _a2.length) || 0) > 0;
98
+ return hasAddons ? ["select-venue", "addons", "checkout"] : ["select-venue", "checkout"];
99
+ }, [(_a = viewModel.addonProductList) == null ? void 0 : _a.length]);
87
100
  const [isLoading, setIsLoading] = (0, import_react.useState)(true);
88
101
  const [isWeekLoading, setIsWeekLoading] = (0, import_react.useState)(true);
89
102
  const [isGridTransition, setIsGridTransition] = (0, import_react.useState)(true);
@@ -97,7 +110,7 @@ function VenueBookingProvider({ entryContext, children }) {
97
110
  const [monthCursor, setMonthCursor] = (0, import_react.useState)((0, import_dayjs.default)().startOf("month"));
98
111
  const { isLogin, openLoginModal } = (0, import_hooks.useVenueBookingLogin)();
99
112
  const engineContext = (0, import_useEngineContext2.default)();
100
- const utils = ((_a = engineContext == null ? void 0 : engineContext.appHelper) == null ? void 0 : _a.utils) || {};
113
+ const utils = ((_b = engineContext == null ? void 0 : engineContext.appHelper) == null ? void 0 : _b.utils) || EMPTY_UTILS;
101
114
  const [discountList, setDiscountList] = (0, import_react.useState)([]);
102
115
  const [isAgreeDepositPolicy, setIsAgreeDepositPolicy] = (0, import_react.useState)(false);
103
116
  const [cartValidation, setCartValidation] = (0, import_react.useState)({ passed: null, failures: [] });
@@ -142,13 +155,18 @@ function VenueBookingProvider({ entryContext, children }) {
142
155
  if (!venueBookingModule) return;
143
156
  setIsWeekLoading(true);
144
157
  try {
145
- await (0, import_hooks.fetchResourceAvailability)(venueBookingModule, startDate, endDate);
146
- const summary = (0, import_hooks.getDateRangeSummary)(venueBookingModule, startDate, endDate);
158
+ const clamped = clampRangeToToday(startDate, endDate);
159
+ let summary = [];
160
+ if (clamped) {
161
+ await (0, import_hooks.fetchResourceAvailability)(venueBookingModule, clamped.startDate, clamped.endDate);
162
+ const raw = (0, import_hooks.getDateRangeSummary)(venueBookingModule, clamped.startDate, clamped.endDate);
163
+ summary = Array.isArray(raw) ? raw : [];
164
+ }
147
165
  const currentDateKey = (0, import_utils2.formatDateKey)(anchorDateRef.current);
148
166
  const grid = (0, import_hooks.getTimeSlotGrid)(venueBookingModule, currentDateKey);
149
167
  setViewModel((prev) => ({
150
168
  ...prev,
151
- dateSummary: Array.isArray(summary) ? summary : [],
169
+ dateSummary: summary,
152
170
  timeSlotGrid: grid
153
171
  }));
154
172
  } finally {
@@ -164,8 +182,10 @@ function VenueBookingProvider({ entryContext, children }) {
164
182
  for (let weekOffset = 0; weekOffset <= MAX_FORWARD_WEEKS; weekOffset++) {
165
183
  const probeDate = fromDate.add(weekOffset * 7, "day");
166
184
  const { startDate, endDate } = getWeekRange(probeDate);
167
- await (0, import_hooks.fetchResourceAvailability)(venueBookingModule, startDate, endDate);
168
- const weekSummary = (0, import_hooks.getDateRangeSummary)(venueBookingModule, startDate, endDate);
185
+ const clamped = clampRangeToToday(startDate, endDate);
186
+ if (!clamped) continue;
187
+ await (0, import_hooks.fetchResourceAvailability)(venueBookingModule, clamped.startDate, clamped.endDate);
188
+ const weekSummary = (0, import_hooks.getDateRangeSummary)(venueBookingModule, clamped.startDate, clamped.endDate);
169
189
  if (weekOffset === 0) fallbackSummary = Array.isArray(weekSummary) ? weekSummary : [];
170
190
  const candidateDate = findNearestAvailableDate({
171
191
  summary: Array.isArray(weekSummary) ? weekSummary : [],
@@ -217,11 +237,11 @@ function VenueBookingProvider({ entryContext, children }) {
217
237
  return (0, import_hooks.safeRunModuleAction)(venueBookingModule, actionName, ...args);
218
238
  }, [venueBookingModule]);
219
239
  const syncCustomerLoginToModule = (0, import_react.useCallback)(async () => {
220
- var _a2, _b2, _c, _d;
240
+ var _a2, _b2, _c2, _d;
221
241
  try {
222
242
  const hasToken = !!((_b2 = (_a2 = utils == null ? void 0 : utils.token) == null ? void 0 : _a2.get) == null ? void 0 : _b2.call(_a2));
223
243
  if (!hasToken) return;
224
- const rawCustomer = (_d = (_c = utils == null ? void 0 : utils.storage) == null ? void 0 : _c.get) == null ? void 0 : _d.call(_c, "customer");
244
+ const rawCustomer = (_d = (_c2 = utils == null ? void 0 : utils.storage) == null ? void 0 : _c2.get) == null ? void 0 : _d.call(_c2, "customer");
225
245
  const customer = typeof rawCustomer === "string" ? JSON.parse(rawCustomer || "{}") : rawCustomer || {};
226
246
  const customerId = customer == null ? void 0 : customer.id;
227
247
  if (!customerId) return;
@@ -260,7 +280,7 @@ function VenueBookingProvider({ entryContext, children }) {
260
280
  }
261
281
  }, [syncCustomerLoginToModule, venueBookingModule, refreshViewModel]);
262
282
  const submitOrder = (0, import_react.useCallback)(async () => {
263
- var _a2, _b2, _c;
283
+ var _a2, _b2, _c2;
264
284
  if (isSubmittingOrder) return;
265
285
  try {
266
286
  setIsSubmittingOrder(true);
@@ -278,7 +298,7 @@ function VenueBookingProvider({ entryContext, children }) {
278
298
  }
279
299
  if (typeof (utils == null ? void 0 : utils.action) === "function") {
280
300
  const otherParams = (0, import_hooks.getOtherParams)(venueBookingModule);
281
- if (totalAmount === 0 || ((_c = otherParams == null ? void 0 : otherParams.openData["checkout.checkout_options"]) == null ? void 0 : _c.length) === 0) {
301
+ if (totalAmount === 0 || ((_c2 = otherParams == null ? void 0 : otherParams.openData["checkout.checkout_options"]) == null ? void 0 : _c2.length) === 0) {
282
302
  return location.replace(`/payment-finish/success?amount=${totalAmount}&order_id=${orderId}`);
283
303
  }
284
304
  utils.action({
@@ -300,7 +320,7 @@ function VenueBookingProvider({ entryContext, children }) {
300
320
  } finally {
301
321
  setIsSubmittingOrder(false);
302
322
  }
303
- }, [isSubmittingOrder, venueBookingModule, refreshViewModel, utils, (_b = viewModel == null ? void 0 : viewModel.summary) == null ? void 0 : _b.total_amount]);
323
+ }, [isSubmittingOrder, venueBookingModule, refreshViewModel, utils, (_c = viewModel == null ? void 0 : viewModel.summary) == null ? void 0 : _c.total_amount]);
304
324
  const handleSubmitOrder = (0, import_react.useCallback)(async () => {
305
325
  if (isLogin) {
306
326
  await submitOrder();
@@ -315,6 +335,19 @@ function VenueBookingProvider({ entryContext, children }) {
315
335
  }
316
336
  });
317
337
  }, [isLogin, openLoginModal, handleLoginSuccess, submitOrder]);
338
+ const proceedToCheckout = (0, import_react.useCallback)(() => {
339
+ if (!isLogin) {
340
+ openLoginModal({
341
+ callback: (status) => {
342
+ if (status === "success") {
343
+ handleLoginSuccess().then(() => goToStep("checkout"));
344
+ }
345
+ }
346
+ });
347
+ return;
348
+ }
349
+ goToStep("checkout");
350
+ }, [isLogin, openLoginModal, handleLoginSuccess, goToStep]);
318
351
  const handlePrimaryAction = (0, import_react.useCallback)(() => {
319
352
  var _a2, _b2;
320
353
  if (currentStep === "select-venue") {
@@ -325,21 +358,15 @@ function VenueBookingProvider({ entryContext, children }) {
325
358
  });
326
359
  return;
327
360
  }
361
+ if (stepList[1] === "checkout") {
362
+ proceedToCheckout();
363
+ return;
364
+ }
328
365
  goToStep("addons");
329
366
  return;
330
367
  }
331
368
  if (currentStep === "addons") {
332
- if (!isLogin) {
333
- openLoginModal({
334
- callback: (status) => {
335
- if (status === "success") {
336
- handleLoginSuccess().then(() => goToStep("checkout"));
337
- }
338
- }
339
- });
340
- return;
341
- }
342
- goToStep("checkout");
369
+ proceedToCheckout();
343
370
  return;
344
371
  }
345
372
  const deposit = (_a2 = viewModel.summary) == null ? void 0 : _a2.deposit;
@@ -348,7 +375,7 @@ function VenueBookingProvider({ entryContext, children }) {
348
375
  return;
349
376
  }
350
377
  void handleSubmitOrder();
351
- }, [currentStep, canNext, isLogin, isAgreeDepositPolicy, viewModel.summary, goToStep, openLoginModal, handleLoginSuccess, handleSubmitOrder]);
378
+ }, [currentStep, canNext, isAgreeDepositPolicy, viewModel.summary, stepList, proceedToCheckout, goToStep, handleSubmitOrder]);
352
379
  (0, import_react.useEffect)(() => {
353
380
  var _a2;
354
381
  const pubsub = utils == null ? void 0 : utils.pubsub;
@@ -5,6 +5,7 @@ export declare const VENUE_BOOKING_STEPS: readonly ["select-venue", "addons", "c
5
5
  export declare const VENUE_PRODUCT_IDS: number[];
6
6
  /**
7
7
  * 获取 PisellOS venueBooking 业务模块
8
+ * 使用 useRef 稳定模块引用,防止 getModule 返回值每次渲染变化时触发 bootstrap useEffect 重跑
8
9
  */
9
10
  export declare function useVenueBookingModule(): any;
10
11
  /** 统一获取货币前缀(优先引擎配置,兜底 '$') */
@@ -49,6 +49,7 @@ __export(hooks_exports, {
49
49
  useVenueBookingSymbol: () => useVenueBookingSymbol
50
50
  });
51
51
  module.exports = __toCommonJS(hooks_exports);
52
+ var import_react = require("react");
52
53
  var import_useEngineContext = require("../../hooks/useEngineContext");
53
54
  var import_useEngineContext2 = __toESM(require("../../hooks/useEngineContext"));
54
55
  var import_toShoppingCartProducts = require("../scanOrder/utils/toShoppingCartProducts");
@@ -57,7 +58,11 @@ var VENUE_PRODUCT_IDS = [61947, 61948];
57
58
  function useVenueBookingModule() {
58
59
  var _a;
59
60
  const pisellOS = (0, import_useEngineContext.usePisellOS)();
60
- return (_a = pisellOS == null ? void 0 : pisellOS.getModule) == null ? void 0 : _a.call(pisellOS, "venueBooking");
61
+ const moduleRef = (0, import_react.useRef)(null);
62
+ if (!moduleRef.current) {
63
+ moduleRef.current = ((_a = pisellOS == null ? void 0 : pisellOS.getModule) == null ? void 0 : _a.call(pisellOS, "venueBooking")) ?? null;
64
+ }
65
+ return moduleRef.current;
61
66
  }
62
67
  function useVenueBookingSymbol() {
63
68
  var _a;
@@ -44,6 +44,24 @@ function VenueBooking(props) {
44
44
  const context = (0, import_useEngineContext.default)();
45
45
  const entryContext = (0, import_hooks.normalizeEntryContext)((_a = context == null ? void 0 : context.engine) == null ? void 0 : _a.props);
46
46
  import_utils.locales.init(import_locales.default, ((_c = (_b = context == null ? void 0 : context.engine) == null ? void 0 : _b.props) == null ? void 0 : _c.locale) || "en");
47
- return /* @__PURE__ */ import_react.default.createElement("div", { className: "venue-booking-scope h-full overflow-x-hidden overscroll-none bg-[#f5f5f3] text-zinc-900" }, /* @__PURE__ */ import_react.default.createElement(import_context.VenueBookingProvider, { entryContext }, /* @__PURE__ */ import_react.default.createElement(import_Content.default, null)));
47
+ const [viewportHeight, setViewportHeight] = (0, import_react.useState)(
48
+ typeof window !== "undefined" ? window.innerHeight : void 0
49
+ );
50
+ (0, import_react.useEffect)(() => {
51
+ function onResize() {
52
+ setViewportHeight(window.innerHeight);
53
+ }
54
+ setViewportHeight(window.innerHeight);
55
+ window.addEventListener("resize", onResize);
56
+ return () => window.removeEventListener("resize", onResize);
57
+ }, []);
58
+ return /* @__PURE__ */ import_react.default.createElement(
59
+ "div",
60
+ {
61
+ className: "venue-booking-scope overflow-x-hidden overscroll-none bg-[#f5f5f3] text-zinc-900",
62
+ style: viewportHeight !== void 0 ? { height: viewportHeight } : { height: "100vh" }
63
+ },
64
+ /* @__PURE__ */ import_react.default.createElement(import_context.VenueBookingProvider, { entryContext }, /* @__PURE__ */ import_react.default.createElement(import_Content.default, null))
65
+ );
48
66
  }
49
67
  var venueBooking_default = VenueBooking;
@@ -23,6 +23,7 @@ declare const _default: {
23
23
  'pisell2.venue.cart.delete.venue.only.step1': string;
24
24
  'pisell2.venue.cart.addons.ready': string;
25
25
  'pisell2.venue.cart.review.all': string;
26
+ 'pisell2.venue.action.next': string;
26
27
  'pisell2.venue.action.next.addons': string;
27
28
  'pisell2.venue.action.review.pay': string;
28
29
  'pisell2.venue.action.pay.now': string;
@@ -40,6 +41,7 @@ declare const _default: {
40
41
  'pisell2.venue.label.selected': string;
41
42
  'pisell2.venue.label.sold.out': string;
42
43
  'pisell2.venue.label.few.left': string;
44
+ 'pisell2.venue.label.bookable': string;
43
45
  'pisell2.venue.label.off.peak': string;
44
46
  'pisell2.venue.label.peak': string;
45
47
  'pisell2.venue.label.promo': string;
@@ -91,6 +93,7 @@ declare const _default: {
91
93
  'pisell2.venue.calendar.weekday.short.sun': string;
92
94
  'pisell2.venue.time.am': string;
93
95
  'pisell2.venue.time.pm': string;
96
+ 'pisell2.venue.time.hour.format': string;
94
97
  'pisell2.venue.limit.message': string;
95
98
  'pisell2.text.goodpass': string;
96
99
  'pisell2.text.goodpass.product-vouchers': string;
@@ -119,6 +122,7 @@ declare const _default: {
119
122
  'pisell2.appointment.policy': string;
120
123
  'pisell2.appointment.policy.confirm': string;
121
124
  'pisell2.appointment.booking.empty.data': string;
125
+ 'pisell2.product-select.search': string;
122
126
  };
123
127
  'zh-CN': {
124
128
  'pisell2.venue.step.select': string;
@@ -140,6 +144,7 @@ declare const _default: {
140
144
  'pisell2.venue.cart.delete.venue.only.step1': string;
141
145
  'pisell2.venue.cart.addons.ready': string;
142
146
  'pisell2.venue.cart.review.all': string;
147
+ 'pisell2.venue.action.next': string;
143
148
  'pisell2.venue.action.next.addons': string;
144
149
  'pisell2.venue.action.review.pay': string;
145
150
  'pisell2.venue.action.pay.now': string;
@@ -157,6 +162,7 @@ declare const _default: {
157
162
  'pisell2.venue.label.selected': string;
158
163
  'pisell2.venue.label.sold.out': string;
159
164
  'pisell2.venue.label.few.left': string;
165
+ 'pisell2.venue.label.bookable': string;
160
166
  'pisell2.venue.label.off.peak': string;
161
167
  'pisell2.venue.label.peak': string;
162
168
  'pisell2.venue.label.promo': string;
@@ -208,6 +214,7 @@ declare const _default: {
208
214
  'pisell2.venue.calendar.weekday.short.sun': string;
209
215
  'pisell2.venue.time.am': string;
210
216
  'pisell2.venue.time.pm': string;
217
+ 'pisell2.venue.time.hour.format': string;
211
218
  'pisell2.venue.limit.message': string;
212
219
  'pisell2.text.goodpass': string;
213
220
  'pisell2.text.goodpass.product-vouchers': string;
@@ -236,6 +243,7 @@ declare const _default: {
236
243
  'pisell2.appointment.policy': string;
237
244
  'pisell2.appointment.policy.confirm': string;
238
245
  'pisell2.appointment.booking.empty.data': string;
246
+ 'pisell2.product-select.search': string;
239
247
  };
240
248
  'zh-HK': {
241
249
  'pisell2.venue.step.select': string;
@@ -257,6 +265,7 @@ declare const _default: {
257
265
  'pisell2.venue.cart.delete.venue.only.step1': string;
258
266
  'pisell2.venue.cart.addons.ready': string;
259
267
  'pisell2.venue.cart.review.all': string;
268
+ 'pisell2.venue.action.next': string;
260
269
  'pisell2.venue.action.next.addons': string;
261
270
  'pisell2.venue.action.review.pay': string;
262
271
  'pisell2.venue.action.pay.now': string;
@@ -274,6 +283,7 @@ declare const _default: {
274
283
  'pisell2.venue.label.selected': string;
275
284
  'pisell2.venue.label.sold.out': string;
276
285
  'pisell2.venue.label.few.left': string;
286
+ 'pisell2.venue.label.bookable': string;
277
287
  'pisell2.venue.label.off.peak': string;
278
288
  'pisell2.venue.label.peak': string;
279
289
  'pisell2.venue.label.promo': string;
@@ -325,6 +335,7 @@ declare const _default: {
325
335
  'pisell2.venue.calendar.weekday.short.sun': string;
326
336
  'pisell2.venue.time.am': string;
327
337
  'pisell2.venue.time.pm': string;
338
+ 'pisell2.venue.time.hour.format': string;
328
339
  'pisell2.venue.limit.message': string;
329
340
  'pisell2.text.goodpass': string;
330
341
  'pisell2.text.goodpass.product-vouchers': string;
@@ -353,6 +364,7 @@ declare const _default: {
353
364
  'pisell2.appointment.policy': string;
354
365
  'pisell2.appointment.policy.confirm': string;
355
366
  'pisell2.appointment.booking.empty.data': string;
367
+ 'pisell2.product-select.search': string;
356
368
  };
357
369
  ja: {
358
370
  'pisell2.venue.step.select': string;
@@ -374,6 +386,7 @@ declare const _default: {
374
386
  'pisell2.venue.cart.delete.venue.only.step1': string;
375
387
  'pisell2.venue.cart.addons.ready': string;
376
388
  'pisell2.venue.cart.review.all': string;
389
+ 'pisell2.venue.action.next': string;
377
390
  'pisell2.venue.action.next.addons': string;
378
391
  'pisell2.venue.action.review.pay': string;
379
392
  'pisell2.venue.action.pay.now': string;
@@ -391,6 +404,7 @@ declare const _default: {
391
404
  'pisell2.venue.label.selected': string;
392
405
  'pisell2.venue.label.sold.out': string;
393
406
  'pisell2.venue.label.few.left': string;
407
+ 'pisell2.venue.label.bookable': string;
394
408
  'pisell2.venue.label.off.peak': string;
395
409
  'pisell2.venue.label.peak': string;
396
410
  'pisell2.venue.label.promo': string;
@@ -442,6 +456,7 @@ declare const _default: {
442
456
  'pisell2.venue.calendar.weekday.short.sun': string;
443
457
  'pisell2.venue.time.am': string;
444
458
  'pisell2.venue.time.pm': string;
459
+ 'pisell2.venue.time.hour.format': string;
445
460
  'pisell2.venue.limit.message': string;
446
461
  'pisell2.text.goodpass': string;
447
462
  'pisell2.text.goodpass.product-vouchers': string;
@@ -470,6 +485,7 @@ declare const _default: {
470
485
  'pisell2.appointment.policy': string;
471
486
  'pisell2.appointment.policy.confirm': string;
472
487
  'pisell2.appointment.booking.empty.data': string;
488
+ 'pisell2.product-select.search': string;
473
489
  };
474
490
  pt: {
475
491
  'pisell2.venue.step.select': string;
@@ -491,6 +507,7 @@ declare const _default: {
491
507
  'pisell2.venue.cart.delete.venue.only.step1': string;
492
508
  'pisell2.venue.cart.addons.ready': string;
493
509
  'pisell2.venue.cart.review.all': string;
510
+ 'pisell2.venue.action.next': string;
494
511
  'pisell2.venue.action.next.addons': string;
495
512
  'pisell2.venue.action.review.pay': string;
496
513
  'pisell2.venue.action.pay.now': string;
@@ -508,6 +525,7 @@ declare const _default: {
508
525
  'pisell2.venue.label.selected': string;
509
526
  'pisell2.venue.label.sold.out': string;
510
527
  'pisell2.venue.label.few.left': string;
528
+ 'pisell2.venue.label.bookable': string;
511
529
  'pisell2.venue.label.off.peak': string;
512
530
  'pisell2.venue.label.peak': string;
513
531
  'pisell2.venue.label.promo': string;
@@ -559,6 +577,7 @@ declare const _default: {
559
577
  'pisell2.venue.calendar.weekday.short.sun': string;
560
578
  'pisell2.venue.time.am': string;
561
579
  'pisell2.venue.time.pm': string;
580
+ 'pisell2.venue.time.hour.format': string;
562
581
  'pisell2.venue.limit.message': string;
563
582
  'pisell2.text.goodpass': string;
564
583
  'pisell2.text.goodpass.product-vouchers': string;
@@ -587,6 +606,7 @@ declare const _default: {
587
606
  'pisell2.appointment.policy': string;
588
607
  'pisell2.appointment.policy.confirm': string;
589
608
  'pisell2.appointment.booking.empty.data': string;
609
+ 'pisell2.product-select.search': string;
590
610
  };
591
611
  };
592
612
  export default _default;