@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.
- package/build/lowcode/assets-daily.json +11 -11
- package/build/lowcode/assets-dev.json +2 -2
- package/build/lowcode/assets-prod.json +11 -11
- package/build/lowcode/meta.js +1 -1
- package/build/lowcode/render/default/view.js +6 -6
- package/build/lowcode/view.js +6 -6
- package/es/components/booking/info/clientVariant/hooks/useIsLowSpeedNetwork.d.ts +1 -0
- package/es/components/booking/utils.d.ts +2 -2
- package/es/components/ecocup/components/CupStatusModal/hooks.d.ts +1 -1
- package/es/components/eftposPay/hooks.d.ts +2 -2
- package/es/components/eftposPay/store/index.d.ts +5 -5
- package/es/components/eftposPay/tyro/hooks.d.ts +1 -0
- package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateStatus/index.d.ts +1 -0
- package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/DayItem/index.d.ts +1 -0
- package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/index.d.ts +1 -0
- package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Status/index.d.ts +1 -0
- package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/StripeSDK/index.d.ts +1 -0
- package/es/components/shoppingCart/components/Empty/index.d.ts +1 -0
- package/es/components/venueBooking/components/Cart/index.js +7 -7
- package/es/components/venueBooking/components/Checkout/index.js +2 -12
- package/es/components/venueBooking/components/Content/index.js +10 -9
- package/es/components/venueBooking/components/Footer/index.js +2 -8
- package/es/components/venueBooking/components/Header/index.js +38 -17
- package/es/components/venueBooking/components/VenueSelection/components/CourtFilter.js +1 -17
- package/es/components/venueBooking/components/VenueSelection/components/TimeGrid.js +63 -26
- package/es/components/venueBooking/components/VenueSelection/index.js +2 -6
- package/es/components/venueBooking/context.js +95 -44
- package/es/components/venueBooking/hooks.d.ts +1 -0
- package/es/components/venueBooking/hooks.js +8 -2
- package/es/components/venueBooking/index.js +30 -2
- package/es/components/venueBooking/locales.d.ts +20 -0
- package/es/components/venueBooking/locales.js +25 -5
- package/es/components/venueBooking/utils.d.ts +8 -0
- package/es/components/venueBooking/utils.js +12 -2
- package/es/hooks/usePaymentLogger.d.ts +1 -0
- package/es/plus/pisellSalesManagement/config/booking.d.ts +6 -6
- package/es/plus/pisellSalesManagement/hooks/useSalesGridData.d.ts +1 -0
- package/es/plus/walletEditor/components/ImageUpload/index.d.ts +1 -1
- package/lib/components/booking/info/clientVariant/hooks/useIsLowSpeedNetwork.d.ts +1 -0
- package/lib/components/booking/utils.d.ts +2 -2
- package/lib/components/ecocup/components/CupStatusModal/hooks.d.ts +1 -1
- package/lib/components/eftposPay/hooks.d.ts +2 -2
- package/lib/components/eftposPay/store/index.d.ts +5 -5
- package/lib/components/eftposPay/tyro/hooks.d.ts +1 -0
- package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateStatus/index.d.ts +1 -0
- package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/DayItem/index.d.ts +1 -0
- package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/index.d.ts +1 -0
- package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Status/index.d.ts +1 -0
- package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/StripeSDK/index.d.ts +1 -0
- package/lib/components/shoppingCart/components/Empty/index.d.ts +1 -0
- package/lib/components/venueBooking/components/Cart/index.js +3 -8
- package/lib/components/venueBooking/components/Checkout/index.js +1 -5
- package/lib/components/venueBooking/components/Content/index.js +20 -15
- package/lib/components/venueBooking/components/Footer/index.js +1 -9
- package/lib/components/venueBooking/components/Header/index.js +12 -6
- package/lib/components/venueBooking/components/VenueSelection/components/CourtFilter.js +1 -10
- package/lib/components/venueBooking/components/VenueSelection/components/TimeGrid.js +29 -10
- package/lib/components/venueBooking/components/VenueSelection/index.js +2 -3
- package/lib/components/venueBooking/context.js +52 -25
- package/lib/components/venueBooking/hooks.d.ts +1 -0
- package/lib/components/venueBooking/hooks.js +6 -1
- package/lib/components/venueBooking/index.js +19 -1
- package/lib/components/venueBooking/locales.d.ts +20 -0
- package/lib/components/venueBooking/locales.js +25 -5
- package/lib/components/venueBooking/utils.d.ts +8 -0
- package/lib/components/venueBooking/utils.js +3 -2
- package/lib/hooks/usePaymentLogger.d.ts +1 -0
- package/lib/plus/pisellSalesManagement/config/booking.d.ts +6 -6
- package/lib/plus/pisellSalesManagement/hooks/useSalesGridData.d.ts +1 -0
- package/lib/plus/walletEditor/components/ImageUpload/index.d.ts +1 -1
- package/package.json +18 -18
- package/es/components/appointmentBooking/components/Form/index.d.ts +0 -4
- package/es/components/appointmentBooking/components/Services/index.d.ts +0 -4
- package/es/components/appointmentBooking/deposit/components/PolicyModal/index.d.ts +0 -4
- package/es/components/appointmentBooking/hooks.d.ts +0 -107
- package/es/components/appointmentBooking/utils.d.ts +0 -227
- package/es/components/booking/components/footer/utils.d.ts +0 -47
- package/es/components/booking/components/reloadResourceModal/index.d.ts +0 -9
- package/es/components/booking/components/voucher/index.d.ts +0 -4
- package/es/components/booking/info/service/editService/constants.d.ts +0 -1
- package/es/components/booking/info/service/editService/index.d.ts +0 -7
- package/es/components/booking/info/service2/utils.d.ts +0 -248
- package/es/components/booking/info2/index.d.ts +0 -12
- package/es/components/booking/info2/service/addService/index.d.ts +0 -12
- package/es/components/booking/locales.d.ts +0 -1489
- package/es/components/booking/model.d.ts +0 -120
- package/es/components/eftposPay/amount.d.ts +0 -21
- package/es/components/eftposPay/app.d.ts +0 -11
- package/es/components/eftposPay/component/fail/failCustom.d.ts +0 -4
- package/es/components/eftposPay/component/fail/index.d.ts +0 -4
- package/es/components/eftposPay/component/fail/network.d.ts +0 -9
- package/es/components/eftposPay/component/fail/unknow.d.ts +0 -10
- package/es/components/eftposPay/component/manual/index.d.ts +0 -10
- package/es/components/eftposPay/component/signature/index.d.ts +0 -9
- package/es/components/eftposPay/device.d.ts +0 -24
- package/es/components/eftposPay/index.d.ts +0 -5
- package/es/components/eftposPay/linkly/hooks/normal.d.ts +0 -30
- package/es/components/eftposPay/linkly/hooks/useTimeQuery.d.ts +0 -4
- package/es/components/eftposPay/linkly/index.d.ts +0 -3
- package/es/components/eftposPay/pay.d.ts +0 -21
- package/es/components/eftposPay/payo/config.d.ts +0 -13
- package/es/components/eftposPay/payo/hooks.d.ts +0 -10
- package/es/components/eftposPay/payo/payment.d.ts +0 -66
- package/es/components/eftposPay/tip.d.ts +0 -10
- package/es/components/eftposPay/tyro/index.d.ts +0 -9
- package/es/components/eftposPay/utils/payLog.d.ts +0 -81
- package/es/components/eftposPay/windcave/receiptAction.d.ts +0 -23
- package/es/components/eftposPay/windcave/windcave.d.ts +0 -7
- package/es/components/kioskSkuDetail/index.d.ts +0 -39
- package/es/components/kioskSkuDetail/locales.d.ts +0 -48
- package/es/components/pay/toC/PaymentMethods/GlobePayAliPayH5/index.d.ts +0 -10
- package/es/components/pay/toC/PaymentMethods/GlobePayPaypalH5/index.d.ts +0 -10
- package/es/components/pay/toC/PaymentMethods/GlobePayWxH5/index.d.ts +0 -10
- package/es/components/pay/toC/PaymentMethods/MWCreditCard/TDSPay/index.d.ts +0 -16
- package/es/components/pay/toC/PaymentMethods/MWCreditCard/index.d.ts +0 -15
- package/es/components/pay/toC/PaymentMethods/MWCreditCard/tds2.d.ts +0 -83
- package/es/components/pay/toC/PaymentMethods/SuperPayAliPayH5/index.d.ts +0 -10
- package/es/components/pay/toC/PaymentMethods/SuperPayWxPayH5/index.d.ts +0 -10
- package/es/components/pay/toC/PaymentMethods/WalletPass/List/index.d.ts +0 -22
- package/es/components/pay/toC/PaymentMethods/WalletPass/index.d.ts +0 -25
- package/es/components/pay/toC/PaymentMethods/WalletPass/utils.d.ts +0 -16
- package/es/components/pay/toC/PaymentMethods/index.d.ts +0 -9
- package/es/components/pay/toC/index.d.ts +0 -3
- package/es/components/pay/toC/locales.d.ts +0 -631
- package/es/components/pay/toC/payGroup.d.ts +0 -59
- package/es/components/pay/toC/serve.d.ts +0 -87
- package/es/components/pay/toC/utils.d.ts +0 -65
- package/es/components/ruleSetting/locales.d.ts +0 -78
- package/es/components/ticketBooking/components/addServiceVariant/addService.d.ts +0 -10
- package/es/components/ticketBooking/components/ticketBooking/index.d.ts +0 -5
- package/es/components/ticketBooking/components/timeBar/index.d.ts +0 -13
- package/es/components/ticketBooking/index.d.ts +0 -8
- package/es/components/venueBooking/components/Cart/index.d.ts +0 -28
- package/es/components/venueBooking/components/Footer/index.d.ts +0 -8
- package/es/index.d.ts +0 -87
- package/es/plus/skuOptionsSelection/components/NormalCard/index.d.ts +0 -6
- package/es/plus/skuOptionsSelection/components/OptionsCard/OptionItemCard.d.ts +0 -4
- package/es/plus/skuOptionsSelection/components/OptionsModal/index.d.ts +0 -16
- package/es/plus/skuOptionsSelection/index.d.ts +0 -5
- package/es/plus/skuOptionsSelection/locales.d.ts +0 -58
- package/es/plus/skuOptionsSelection/types.d.ts +0 -458
- package/es/plus/skuOptionsSelection/utils/transformBundleGroup.d.ts +0 -19
- package/es/plus/skuOptionsSelection/utils/transformOptionGroup.d.ts +0 -1
- package/es/plus/skuOptionsSelection/utils/transformSelectorValueToValue.d.ts +0 -4
- package/es/plus/skuOptionsSelection/utils/transformValueToSelectorValue.d.ts +0 -4
- package/es/plus/skuOptionsSelection/utils/transformVariantGroup.d.ts +0 -1
- package/es/pro/Cards/components/SKUCard/index.d.ts +0 -5
- package/es/pro/Login2.0/components/phoneValidation.d.ts +0 -17
- package/lib/components/appointmentBooking/components/Form/index.d.ts +0 -4
- package/lib/components/appointmentBooking/components/Services/index.d.ts +0 -4
- package/lib/components/appointmentBooking/deposit/components/PolicyModal/index.d.ts +0 -4
- package/lib/components/appointmentBooking/hooks.d.ts +0 -107
- package/lib/components/appointmentBooking/utils.d.ts +0 -227
- package/lib/components/booking/components/footer/utils.d.ts +0 -47
- package/lib/components/booking/components/reloadResourceModal/index.d.ts +0 -9
- package/lib/components/booking/components/voucher/index.d.ts +0 -4
- package/lib/components/booking/info/service/editService/constants.d.ts +0 -1
- package/lib/components/booking/info/service/editService/index.d.ts +0 -7
- package/lib/components/booking/info/service2/utils.d.ts +0 -248
- package/lib/components/booking/info2/index.d.ts +0 -12
- package/lib/components/booking/info2/service/addService/index.d.ts +0 -12
- package/lib/components/booking/locales.d.ts +0 -1489
- package/lib/components/booking/model.d.ts +0 -120
- package/lib/components/eftposPay/amount.d.ts +0 -21
- package/lib/components/eftposPay/app.d.ts +0 -11
- package/lib/components/eftposPay/component/fail/failCustom.d.ts +0 -4
- package/lib/components/eftposPay/component/fail/index.d.ts +0 -4
- package/lib/components/eftposPay/component/fail/network.d.ts +0 -9
- package/lib/components/eftposPay/component/fail/unknow.d.ts +0 -10
- package/lib/components/eftposPay/component/manual/index.d.ts +0 -10
- package/lib/components/eftposPay/component/signature/index.d.ts +0 -9
- package/lib/components/eftposPay/device.d.ts +0 -24
- package/lib/components/eftposPay/index.d.ts +0 -5
- package/lib/components/eftposPay/linkly/hooks/normal.d.ts +0 -30
- package/lib/components/eftposPay/linkly/hooks/useTimeQuery.d.ts +0 -4
- package/lib/components/eftposPay/linkly/index.d.ts +0 -3
- package/lib/components/eftposPay/pay.d.ts +0 -21
- package/lib/components/eftposPay/payo/config.d.ts +0 -13
- package/lib/components/eftposPay/payo/hooks.d.ts +0 -10
- package/lib/components/eftposPay/payo/payment.d.ts +0 -66
- package/lib/components/eftposPay/tip.d.ts +0 -10
- package/lib/components/eftposPay/tyro/index.d.ts +0 -9
- package/lib/components/eftposPay/utils/payLog.d.ts +0 -81
- package/lib/components/eftposPay/windcave/receiptAction.d.ts +0 -23
- package/lib/components/eftposPay/windcave/windcave.d.ts +0 -7
- package/lib/components/kioskSkuDetail/index.d.ts +0 -39
- package/lib/components/kioskSkuDetail/locales.d.ts +0 -48
- package/lib/components/pay/toC/PaymentMethods/GlobePayAliPayH5/index.d.ts +0 -10
- package/lib/components/pay/toC/PaymentMethods/GlobePayPaypalH5/index.d.ts +0 -10
- package/lib/components/pay/toC/PaymentMethods/GlobePayWxH5/index.d.ts +0 -10
- package/lib/components/pay/toC/PaymentMethods/MWCreditCard/TDSPay/index.d.ts +0 -16
- package/lib/components/pay/toC/PaymentMethods/MWCreditCard/index.d.ts +0 -15
- package/lib/components/pay/toC/PaymentMethods/MWCreditCard/tds2.d.ts +0 -83
- package/lib/components/pay/toC/PaymentMethods/SuperPayAliPayH5/index.d.ts +0 -10
- package/lib/components/pay/toC/PaymentMethods/SuperPayWxPayH5/index.d.ts +0 -10
- package/lib/components/pay/toC/PaymentMethods/WalletPass/List/index.d.ts +0 -22
- package/lib/components/pay/toC/PaymentMethods/WalletPass/index.d.ts +0 -25
- package/lib/components/pay/toC/PaymentMethods/WalletPass/utils.d.ts +0 -16
- package/lib/components/pay/toC/PaymentMethods/index.d.ts +0 -9
- package/lib/components/pay/toC/index.d.ts +0 -3
- package/lib/components/pay/toC/locales.d.ts +0 -631
- package/lib/components/pay/toC/payGroup.d.ts +0 -59
- package/lib/components/pay/toC/serve.d.ts +0 -87
- package/lib/components/pay/toC/utils.d.ts +0 -65
- package/lib/components/ruleSetting/locales.d.ts +0 -78
- package/lib/components/ticketBooking/components/addServiceVariant/addService.d.ts +0 -10
- package/lib/components/ticketBooking/components/ticketBooking/index.d.ts +0 -5
- package/lib/components/ticketBooking/components/timeBar/index.d.ts +0 -13
- package/lib/components/ticketBooking/index.d.ts +0 -8
- package/lib/components/venueBooking/components/Cart/index.d.ts +0 -28
- package/lib/components/venueBooking/components/Footer/index.d.ts +0 -8
- package/lib/index.d.ts +0 -87
- package/lib/plus/skuOptionsSelection/components/NormalCard/index.d.ts +0 -6
- package/lib/plus/skuOptionsSelection/components/OptionsCard/OptionItemCard.d.ts +0 -4
- package/lib/plus/skuOptionsSelection/components/OptionsModal/index.d.ts +0 -16
- package/lib/plus/skuOptionsSelection/index.d.ts +0 -5
- package/lib/plus/skuOptionsSelection/locales.d.ts +0 -58
- package/lib/plus/skuOptionsSelection/types.d.ts +0 -458
- package/lib/plus/skuOptionsSelection/utils/transformBundleGroup.d.ts +0 -19
- package/lib/plus/skuOptionsSelection/utils/transformOptionGroup.d.ts +0 -1
- package/lib/plus/skuOptionsSelection/utils/transformSelectorValueToValue.d.ts +0 -4
- package/lib/plus/skuOptionsSelection/utils/transformValueToSelectorValue.d.ts +0 -4
- package/lib/plus/skuOptionsSelection/utils/transformVariantGroup.d.ts +0 -1
- package/lib/pro/Cards/components/SKUCard/index.d.ts +0 -5
- 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
|
|
226
|
-
style: { WebkitOverflowScrolling: "touch",
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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
|
|
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 = ((
|
|
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
|
-
|
|
146
|
-
|
|
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:
|
|
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
|
-
|
|
168
|
-
|
|
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,
|
|
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 = (
|
|
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,
|
|
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 || ((
|
|
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, (
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
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;
|