@pisell/private-materials 6.11.655 → 6.11.656
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 +18 -18
- package/build/lowcode/view.js +18 -18
- package/es/components/booking/utils.js +1 -1
- package/es/pro/skuDetailModal/flow/modules/time/index.js +10 -8
- package/es/pro/skuDetailModal/flow/modules/time/posCustomTime.js +5 -4
- package/es/pro/skuDetailModal/flow/types.d.ts +1 -0
- package/lib/components/booking/utils.js +0 -1
- package/lib/pro/skuDetailModal/flow/modules/time/index.js +8 -6
- package/lib/pro/skuDetailModal/flow/modules/time/posCustomTime.js +5 -3
- package/lib/pro/skuDetailModal/flow/types.d.ts +1 -0
- package/package.json +4 -4
|
@@ -619,4 +619,4 @@ function showDiscountScanFailMessage(val, scene = "goodpass", locales) {
|
|
|
619
619
|
return scene === "goodpass" ? locales.getText("pisell2.text.goodpass.code-invalid-cart") : locales.getText("pisell2.voucher.code-invalid-cart");
|
|
620
620
|
}
|
|
621
621
|
//#endregion
|
|
622
|
-
export { deleteCacheParams, findNextDuration, flexibleObj, formatProductListByCategory, formatResource, getCacheParams, getDays, getDiscountTime, getDiscountTimeByDayMinutes, getDuration, getEndDate, getErrorList, getIsEdit, getIsEject, getIsOnlySession, getLastServer, getMainPrice, getNowTime, getProductTotalPrice, getServeStartTime, getServerItemExtend, getServiceTime, getServiceTimes,
|
|
622
|
+
export { deleteCacheParams, findNextDuration, flexibleObj, formatProductListByCategory, formatResource, getCacheParams, getDays, getDiscountTime, getDiscountTimeByDayMinutes, getDuration, getEndDate, getErrorList, getIsEdit, getIsEject, getIsOnlySession, getLastServer, getMainPrice, getNowTime, getProductTotalPrice, getServeStartTime, getServerItemExtend, getServiceTime, getServiceTimes, isNowTime, isSessionProduct, isWalkIn, request, showDiscountScanFailMessage, sliceDayIntoFiveMinutes };
|
|
@@ -2,7 +2,7 @@ import { _objectSpread2 } from "../../../../../_virtual/_@oxc-project_runtime@0.
|
|
|
2
2
|
import { _asyncToGenerator } from "../../../../../_virtual/_@oxc-project_runtime@0.122.0/helpers/asyncToGenerator.js";
|
|
3
3
|
import { getDurationProps, getTimeObj } from "../../../../../components/booking/info2/service/addService/utils.js";
|
|
4
4
|
import { isNormalProductByDurationSchedule } from "../../../../../components/booking/info/service2/utils.js";
|
|
5
|
-
import { getDiscountTime, getServiceTimes,
|
|
5
|
+
import { getDiscountTime, getServiceTimes, isSessionProduct } from "../../../../../components/booking/utils.js";
|
|
6
6
|
import Duration from "../../../../../components/booking/materiels/duration/index.js";
|
|
7
7
|
import SkuDetailLoadingPanel from "../../../LoadingPanel.js";
|
|
8
8
|
import { selectionFlowText } from "../../i18n.js";
|
|
@@ -10,7 +10,7 @@ import { buildDraftCacheItem, getModuleOptions, getUnsupportedBookingFlowReason,
|
|
|
10
10
|
import TimeResourceSelector from "../../../../../components/eventBooking/components/timeResourceSelector/index.js";
|
|
11
11
|
import { resolveAvailabilityStatus } from "../../../../../components/eventBooking/components/bookingAvailabilityCalendar/utils.js";
|
|
12
12
|
import { validateAvailabilityTimeAutoResolution } from "../autoResolution.js";
|
|
13
|
-
import { getAvailabilityCandidateDurationMinutes, getPosFlexibleDurationPresetCandidates, getSessionPresetCandidates, isFlexibleDurationValue, isSameAvailabilityCandidateRange, resolvePosCustomTimeBaseMinutes, resolvePosCustomTimeCandidate, resolvePosCustomTimeDefaultDurationMinutes, resolvePosCustomTimeDefaultStartTime, resolvePosFlexibleBusinessDurationMinutes, resolvePosFlexibleDurationInitialCandidate, shouldShowPosCustomTimeCandidateCards } from "./posCustomTime.js";
|
|
13
|
+
import { getAvailabilityCandidateDurationMinutes, getPosFlexibleDurationPresetCandidates, getSessionPresetCandidates, isFlexibleDurationValue, isSameAvailabilityCandidateRange, resolvePosCustomTimeBaseMinutes, resolvePosCustomTimeCandidate, resolvePosCustomTimeDefaultDurationMinutes, resolvePosCustomTimeDefaultStartTime, resolvePosFlexibleBusinessDurationMinutes, resolvePosFlexibleDurationInitialCandidate, shouldResetPosFlexibleTimeForDate, shouldShowPosCustomTimeCandidateCards } from "./posCustomTime.js";
|
|
14
14
|
import dayjs from "dayjs";
|
|
15
15
|
import React, { useEffect, useMemo } from "react";
|
|
16
16
|
import { Alert, Space } from "antd";
|
|
@@ -174,6 +174,7 @@ const refreshAvailabilityTimes = function() {
|
|
|
174
174
|
const requestedStartTime = getAvailabilityStartTimeOverride(context, startTimeOverride);
|
|
175
175
|
const selectedDate = context.draft.booking.startDate.format("YYYY-MM-DD");
|
|
176
176
|
const requestId = Date.now() + Math.random();
|
|
177
|
+
const previousTimeData = context.getModuleData(module.key);
|
|
177
178
|
const posCustomTimeHydrationKey = posCustomTimeAvailability && requestedDuration && requestedStartTime ? `${selectedDate}|${requestedStartTime}|${requestedDuration}` : void 0;
|
|
178
179
|
context.setModuleData(module.key, {
|
|
179
180
|
requestId,
|
|
@@ -191,13 +192,14 @@ const refreshAvailabilityTimes = function() {
|
|
|
191
192
|
const candidates = (group === null || group === void 0 ? void 0 : group.ranges) || [];
|
|
192
193
|
const product = context.draft.productData;
|
|
193
194
|
if (posDurationAvailability && selectionIntent === "restore" && isFlexibleDurationValue(product === null || product === void 0 ? void 0 : product.duration)) {
|
|
194
|
-
var _context$hostContext, _moduleOptions$slice, _normalizeDurationMin3;
|
|
195
|
+
var _context$hostContext, _moduleOptions$slice, _context$draft$bookin2, _normalizeDurationMin3;
|
|
195
196
|
const moduleOptions = getModuleOptions(module);
|
|
196
197
|
const configuredSlice = (_context$hostContext = context.hostContext) === null || _context$hostContext === void 0 || (_context$hostContext = _context$hostContext.bookingConfig) === null || _context$hostContext === void 0 || (_context$hostContext = _context$hostContext.config) === null || _context$hostContext === void 0 || (_context$hostContext = _context$hostContext.basic) === null || _context$hostContext === void 0 ? void 0 : _context$hostContext.service_time;
|
|
197
198
|
const fallbackSlice = (_moduleOptions$slice = moduleOptions.slice) !== null && _moduleOptions$slice !== void 0 ? _moduleOptions$slice : typeof configuredSlice === "object" ? configuredSlice === null || configuredSlice === void 0 ? void 0 : configuredSlice.value : configuredSlice;
|
|
198
199
|
const baseDurationMinutes = resolvePosCustomTimeBaseMinutes(group === null || group === void 0 ? void 0 : group.slotStepMinutes, fallbackSlice);
|
|
199
|
-
const
|
|
200
|
-
const
|
|
200
|
+
const resetForSelectedDate = shouldResetPosFlexibleTimeForDate((_context$draft$bookin2 = context.draft.booking.selectedCandidate) !== null && _context$draft$bookin2 !== void 0 ? _context$draft$bookin2 : previousTimeData === null || previousTimeData === void 0 ? void 0 : previousTimeData.selectedCandidate, selectedDate);
|
|
201
|
+
const nextStartTime = resolvePosCustomTimeDefaultStartTime(resetForSelectedDate ? null : context.draft.booking.startTime, baseDurationMinutes);
|
|
202
|
+
const nextDuration = resolvePosCustomTimeDefaultDurationMinutes(resetForSelectedDate ? product === null || product === void 0 ? void 0 : product.duration : (_normalizeDurationMin3 = normalizeDurationMinutesValue(context.draft.booking.duration)) !== null && _normalizeDurationMin3 !== void 0 ? _normalizeDurationMin3 : context.draft.booking.duration, baseDurationMinutes, context.services.selectionFlowMode === "edit" ? void 0 : resolvePosFlexibleBusinessDurationMinutes(nextStartTime, (group === null || group === void 0 ? void 0 : group.operatingEndAt) ? dayjs(group.operatingEndAt).format("HH:mm") : void 0));
|
|
201
203
|
const changedFields = [];
|
|
202
204
|
if (nextStartTime !== context.draft.booking.startTime) changedFields.push("booking.startTime");
|
|
203
205
|
if (nextDuration !== context.draft.booking.duration) changedFields.push("booking.duration");
|
|
@@ -280,7 +282,7 @@ const refreshAvailabilityTimes = function() {
|
|
|
280
282
|
const normallySelectableCandidates = times.filter((candidate) => isAvailabilityCandidateSelectable(candidate));
|
|
281
283
|
const selectableCandidates = normallySelectableCandidates.length > 0 || !allowUnavailable ? normallySelectableCandidates : times;
|
|
282
284
|
const shouldPreserveRequestedPosStart = posCustomTimeAvailability && Boolean(requestedPosStartTime && requestedPosDuration);
|
|
283
|
-
const displayCandidates = posSessionAvailability ? getSessionPresetCandidates(times) : posDurationAvailability && isFlexibleDurationValue(product === null || product === void 0 ? void 0 : product.duration) ? getPosFlexibleDurationPresetCandidates(times, requestedCustomRange, customSelectionIntent) : times;
|
|
285
|
+
const displayCandidates = posSessionAvailability ? getSessionPresetCandidates(times) : posDurationAvailability && isFlexibleDurationValue(product === null || product === void 0 ? void 0 : product.duration) ? getPosFlexibleDurationPresetCandidates(times, requestedCustomRange, customSelectionIntent, Boolean(!customSelectionIntent && existingCandidate && existingCandidate.date === selectedDate && (previousTimeData === null || previousTimeData === void 0 ? void 0 : previousTimeData.timeSlots.some((slot) => String(slot.id) === String(existingCandidate.key))))) : times;
|
|
284
286
|
const fallbackCandidate = shouldPreserveRequestedPosStart ? void 0 : selectableCandidates[0];
|
|
285
287
|
const preferPosFlexiblePreset = posDurationAvailability && isFlexibleDurationValue(product === null || product === void 0 ? void 0 : product.duration) && !customSelectionIntent && context.services.selectionFlowMode !== "edit" && (selectionIntent === "fallback" || !existingCandidate || existingCandidate.date !== selectedDate);
|
|
286
288
|
const initialCandidate = posDurationAvailability && isFlexibleDurationValue(product === null || product === void 0 ? void 0 : product.duration) ? resolvePosFlexibleDurationInitialCandidate({
|
|
@@ -594,12 +596,12 @@ const TimeFlowModuleComponent = ({ context, module, registerHandle }) => {
|
|
|
594
596
|
return () => registerHandle === null || registerHandle === void 0 ? void 0 : registerHandle(null);
|
|
595
597
|
}, [handle, registerHandle]);
|
|
596
598
|
useEffect(() => {
|
|
597
|
-
var _context$draft$
|
|
599
|
+
var _context$draft$bookin3;
|
|
598
600
|
if (!usePosCustomTimeAvailability || !availability) return;
|
|
599
601
|
if (!startTime || !hasDurationValue(duration)) return;
|
|
600
602
|
if (availabilityData === null || availabilityData === void 0 ? void 0 : availabilityData.selectedCandidate) return;
|
|
601
603
|
if (moduleStatus === "loading") return;
|
|
602
|
-
const selectedDate = (_context$draft$
|
|
604
|
+
const selectedDate = (_context$draft$bookin3 = context.draft.booking.startDate) === null || _context$draft$bookin3 === void 0 ? void 0 : _context$draft$bookin3.format("YYYY-MM-DD");
|
|
603
605
|
const requestedDuration = getAvailabilityDurationOverride(context);
|
|
604
606
|
const requestedStartTime = getAvailabilityStartTimeOverride(context);
|
|
605
607
|
if (!selectedDate || !requestedDuration || !requestedStartTime) return;
|
|
@@ -41,6 +41,7 @@ const resolvePosFlexibleBusinessDurationMinutes = (startTime, closingTime) => {
|
|
|
41
41
|
const duration = closingMinute > startMinute ? closingMinute - startMinute : closingMinute < startMinute ? closingMinute + 1440 - startMinute : 0;
|
|
42
42
|
return duration > 0 ? duration : null;
|
|
43
43
|
};
|
|
44
|
+
const shouldResetPosFlexibleTimeForDate = (candidate, selectedDate) => Boolean(candidate && candidate.date !== selectedDate);
|
|
44
45
|
const resolvePosCustomTimeDefaultDurationMinutes = (currentValue, baseDurationMinutes, flexibleDefaultMinutes) => {
|
|
45
46
|
if (isFlexibleDurationValue(currentValue)) {
|
|
46
47
|
const flexibleMinutes = Number(flexibleDefaultMinutes);
|
|
@@ -72,10 +73,10 @@ const resolvePosCustomTimeCandidate = (params) => {
|
|
|
72
73
|
return params.restoredDraftCandidate || params.restoredExistingCandidate || params.fallbackCandidate;
|
|
73
74
|
};
|
|
74
75
|
const getSessionPresetCandidates = (candidates) => candidates.filter((candidate) => candidate.source === "session_schedule");
|
|
75
|
-
const getPosFlexibleDurationPresetCandidates = (candidates, requestedCustomRange, customSelectionIntent = false) => {
|
|
76
|
+
const getPosFlexibleDurationPresetCandidates = (candidates, requestedCustomRange, customSelectionIntent = false, preserveRequestedRange = false) => {
|
|
76
77
|
if (!requestedCustomRange) return [...candidates];
|
|
77
|
-
|
|
78
|
-
return
|
|
78
|
+
if (preserveRequestedRange && !customSelectionIntent) return [...candidates];
|
|
79
|
+
return candidates.filter((candidate) => !isSameAvailabilityCandidateRange(candidate, requestedCustomRange));
|
|
79
80
|
};
|
|
80
81
|
const resolvePosFlexibleDurationInitialCandidate = (params) => {
|
|
81
82
|
const firstAvailablePreset = params.presetCandidates.find((candidate) => (!candidate.status || candidate.status === "available" || candidate.status === "limited") && !(typeof candidate.maxPartySize === "number" && candidate.maxPartySize <= 0));
|
|
@@ -83,4 +84,4 @@ const resolvePosFlexibleDurationInitialCandidate = (params) => {
|
|
|
83
84
|
return params.restoredCandidate || params.fallbackCandidate;
|
|
84
85
|
};
|
|
85
86
|
//#endregion
|
|
86
|
-
export { getAvailabilityCandidateDurationMinutes, getPosFlexibleDurationPresetCandidates, getSessionPresetCandidates, isFlexibleDurationValue, isSameAvailabilityCandidateRange, resolvePosCustomTimeBaseMinutes, resolvePosCustomTimeCandidate, resolvePosCustomTimeDefaultDurationMinutes, resolvePosCustomTimeDefaultStartTime, resolvePosFlexibleBusinessDurationMinutes, resolvePosFlexibleDurationInitialCandidate, shouldShowPosCustomTimeCandidateCards };
|
|
87
|
+
export { getAvailabilityCandidateDurationMinutes, getPosFlexibleDurationPresetCandidates, getSessionPresetCandidates, isFlexibleDurationValue, isSameAvailabilityCandidateRange, resolvePosCustomTimeBaseMinutes, resolvePosCustomTimeCandidate, resolvePosCustomTimeDefaultDurationMinutes, resolvePosCustomTimeDefaultStartTime, resolvePosFlexibleBusinessDurationMinutes, resolvePosFlexibleDurationInitialCandidate, shouldResetPosFlexibleTimeForDate, shouldShowPosCustomTimeCandidateCards };
|
|
@@ -168,6 +168,7 @@ interface SelectionFlowAvailabilityService {
|
|
|
168
168
|
title?: string;
|
|
169
169
|
kind: 'normal' | 'duration' | 'session' | 'venue_slot';
|
|
170
170
|
slotStepMinutes?: number;
|
|
171
|
+
operatingEndAt?: string;
|
|
171
172
|
ranges: SelectionFlowAvailabilityCandidate[];
|
|
172
173
|
}>>;
|
|
173
174
|
queryBookingAvailability: (contextId: string, request: Record<string, unknown>) => Promise<{
|
|
@@ -645,7 +645,6 @@ exports.getServeStartTime = getServeStartTime;
|
|
|
645
645
|
exports.getServerItemExtend = getServerItemExtend;
|
|
646
646
|
exports.getServiceTime = getServiceTime;
|
|
647
647
|
exports.getServiceTimes = getServiceTimes;
|
|
648
|
-
exports.getShopOpeningHours = getShopOpeningHours;
|
|
649
648
|
exports.isNowTime = isNowTime;
|
|
650
649
|
exports.isSessionProduct = isSessionProduct;
|
|
651
650
|
exports.isWalkIn = isWalkIn;
|
|
@@ -178,6 +178,7 @@ const refreshAvailabilityTimes = function() {
|
|
|
178
178
|
const requestedStartTime = getAvailabilityStartTimeOverride(context, startTimeOverride);
|
|
179
179
|
const selectedDate = context.draft.booking.startDate.format("YYYY-MM-DD");
|
|
180
180
|
const requestId = Date.now() + Math.random();
|
|
181
|
+
const previousTimeData = context.getModuleData(module.key);
|
|
181
182
|
const posCustomTimeHydrationKey = posCustomTimeAvailability && requestedDuration && requestedStartTime ? `${selectedDate}|${requestedStartTime}|${requestedDuration}` : void 0;
|
|
182
183
|
context.setModuleData(module.key, {
|
|
183
184
|
requestId,
|
|
@@ -195,13 +196,14 @@ const refreshAvailabilityTimes = function() {
|
|
|
195
196
|
const candidates = (group === null || group === void 0 ? void 0 : group.ranges) || [];
|
|
196
197
|
const product = context.draft.productData;
|
|
197
198
|
if (posDurationAvailability && selectionIntent === "restore" && require_posCustomTime.isFlexibleDurationValue(product === null || product === void 0 ? void 0 : product.duration)) {
|
|
198
|
-
var _context$hostContext, _moduleOptions$slice, _normalizeDurationMin3;
|
|
199
|
+
var _context$hostContext, _moduleOptions$slice, _context$draft$bookin2, _normalizeDurationMin3;
|
|
199
200
|
const moduleOptions = require_index$1.getModuleOptions(module);
|
|
200
201
|
const configuredSlice = (_context$hostContext = context.hostContext) === null || _context$hostContext === void 0 || (_context$hostContext = _context$hostContext.bookingConfig) === null || _context$hostContext === void 0 || (_context$hostContext = _context$hostContext.config) === null || _context$hostContext === void 0 || (_context$hostContext = _context$hostContext.basic) === null || _context$hostContext === void 0 ? void 0 : _context$hostContext.service_time;
|
|
201
202
|
const fallbackSlice = (_moduleOptions$slice = moduleOptions.slice) !== null && _moduleOptions$slice !== void 0 ? _moduleOptions$slice : typeof configuredSlice === "object" ? configuredSlice === null || configuredSlice === void 0 ? void 0 : configuredSlice.value : configuredSlice;
|
|
202
203
|
const baseDurationMinutes = require_posCustomTime.resolvePosCustomTimeBaseMinutes(group === null || group === void 0 ? void 0 : group.slotStepMinutes, fallbackSlice);
|
|
203
|
-
const
|
|
204
|
-
const
|
|
204
|
+
const resetForSelectedDate = require_posCustomTime.shouldResetPosFlexibleTimeForDate((_context$draft$bookin2 = context.draft.booking.selectedCandidate) !== null && _context$draft$bookin2 !== void 0 ? _context$draft$bookin2 : previousTimeData === null || previousTimeData === void 0 ? void 0 : previousTimeData.selectedCandidate, selectedDate);
|
|
205
|
+
const nextStartTime = require_posCustomTime.resolvePosCustomTimeDefaultStartTime(resetForSelectedDate ? null : context.draft.booking.startTime, baseDurationMinutes);
|
|
206
|
+
const nextDuration = require_posCustomTime.resolvePosCustomTimeDefaultDurationMinutes(resetForSelectedDate ? product === null || product === void 0 ? void 0 : product.duration : (_normalizeDurationMin3 = normalizeDurationMinutesValue(context.draft.booking.duration)) !== null && _normalizeDurationMin3 !== void 0 ? _normalizeDurationMin3 : context.draft.booking.duration, baseDurationMinutes, context.services.selectionFlowMode === "edit" ? void 0 : require_posCustomTime.resolvePosFlexibleBusinessDurationMinutes(nextStartTime, (group === null || group === void 0 ? void 0 : group.operatingEndAt) ? (0, dayjs.default)(group.operatingEndAt).format("HH:mm") : void 0));
|
|
205
207
|
const changedFields = [];
|
|
206
208
|
if (nextStartTime !== context.draft.booking.startTime) changedFields.push("booking.startTime");
|
|
207
209
|
if (nextDuration !== context.draft.booking.duration) changedFields.push("booking.duration");
|
|
@@ -284,7 +286,7 @@ const refreshAvailabilityTimes = function() {
|
|
|
284
286
|
const normallySelectableCandidates = times.filter((candidate) => isAvailabilityCandidateSelectable(candidate));
|
|
285
287
|
const selectableCandidates = normallySelectableCandidates.length > 0 || !allowUnavailable ? normallySelectableCandidates : times;
|
|
286
288
|
const shouldPreserveRequestedPosStart = posCustomTimeAvailability && Boolean(requestedPosStartTime && requestedPosDuration);
|
|
287
|
-
const displayCandidates = posSessionAvailability ? require_posCustomTime.getSessionPresetCandidates(times) : posDurationAvailability && require_posCustomTime.isFlexibleDurationValue(product === null || product === void 0 ? void 0 : product.duration) ? require_posCustomTime.getPosFlexibleDurationPresetCandidates(times, requestedCustomRange, customSelectionIntent) : times;
|
|
289
|
+
const displayCandidates = posSessionAvailability ? require_posCustomTime.getSessionPresetCandidates(times) : posDurationAvailability && require_posCustomTime.isFlexibleDurationValue(product === null || product === void 0 ? void 0 : product.duration) ? require_posCustomTime.getPosFlexibleDurationPresetCandidates(times, requestedCustomRange, customSelectionIntent, Boolean(!customSelectionIntent && existingCandidate && existingCandidate.date === selectedDate && (previousTimeData === null || previousTimeData === void 0 ? void 0 : previousTimeData.timeSlots.some((slot) => String(slot.id) === String(existingCandidate.key))))) : times;
|
|
288
290
|
const fallbackCandidate = shouldPreserveRequestedPosStart ? void 0 : selectableCandidates[0];
|
|
289
291
|
const preferPosFlexiblePreset = posDurationAvailability && require_posCustomTime.isFlexibleDurationValue(product === null || product === void 0 ? void 0 : product.duration) && !customSelectionIntent && context.services.selectionFlowMode !== "edit" && (selectionIntent === "fallback" || !existingCandidate || existingCandidate.date !== selectedDate);
|
|
290
292
|
const initialCandidate = posDurationAvailability && require_posCustomTime.isFlexibleDurationValue(product === null || product === void 0 ? void 0 : product.duration) ? require_posCustomTime.resolvePosFlexibleDurationInitialCandidate({
|
|
@@ -598,12 +600,12 @@ const TimeFlowModuleComponent = ({ context, module, registerHandle }) => {
|
|
|
598
600
|
return () => registerHandle === null || registerHandle === void 0 ? void 0 : registerHandle(null);
|
|
599
601
|
}, [handle, registerHandle]);
|
|
600
602
|
(0, react.useEffect)(() => {
|
|
601
|
-
var _context$draft$
|
|
603
|
+
var _context$draft$bookin3;
|
|
602
604
|
if (!usePosCustomTimeAvailability || !availability) return;
|
|
603
605
|
if (!startTime || !hasDurationValue(duration)) return;
|
|
604
606
|
if (availabilityData === null || availabilityData === void 0 ? void 0 : availabilityData.selectedCandidate) return;
|
|
605
607
|
if (moduleStatus === "loading") return;
|
|
606
|
-
const selectedDate = (_context$draft$
|
|
608
|
+
const selectedDate = (_context$draft$bookin3 = context.draft.booking.startDate) === null || _context$draft$bookin3 === void 0 ? void 0 : _context$draft$bookin3.format("YYYY-MM-DD");
|
|
607
609
|
const requestedDuration = getAvailabilityDurationOverride(context);
|
|
608
610
|
const requestedStartTime = getAvailabilityStartTimeOverride(context);
|
|
609
611
|
if (!selectedDate || !requestedDuration || !requestedStartTime) return;
|
|
@@ -43,6 +43,7 @@ const resolvePosFlexibleBusinessDurationMinutes = (startTime, closingTime) => {
|
|
|
43
43
|
const duration = closingMinute > startMinute ? closingMinute - startMinute : closingMinute < startMinute ? closingMinute + 1440 - startMinute : 0;
|
|
44
44
|
return duration > 0 ? duration : null;
|
|
45
45
|
};
|
|
46
|
+
const shouldResetPosFlexibleTimeForDate = (candidate, selectedDate) => Boolean(candidate && candidate.date !== selectedDate);
|
|
46
47
|
const resolvePosCustomTimeDefaultDurationMinutes = (currentValue, baseDurationMinutes, flexibleDefaultMinutes) => {
|
|
47
48
|
if (isFlexibleDurationValue(currentValue)) {
|
|
48
49
|
const flexibleMinutes = Number(flexibleDefaultMinutes);
|
|
@@ -74,10 +75,10 @@ const resolvePosCustomTimeCandidate = (params) => {
|
|
|
74
75
|
return params.restoredDraftCandidate || params.restoredExistingCandidate || params.fallbackCandidate;
|
|
75
76
|
};
|
|
76
77
|
const getSessionPresetCandidates = (candidates) => candidates.filter((candidate) => candidate.source === "session_schedule");
|
|
77
|
-
const getPosFlexibleDurationPresetCandidates = (candidates, requestedCustomRange, customSelectionIntent = false) => {
|
|
78
|
+
const getPosFlexibleDurationPresetCandidates = (candidates, requestedCustomRange, customSelectionIntent = false, preserveRequestedRange = false) => {
|
|
78
79
|
if (!requestedCustomRange) return [...candidates];
|
|
79
|
-
|
|
80
|
-
return
|
|
80
|
+
if (preserveRequestedRange && !customSelectionIntent) return [...candidates];
|
|
81
|
+
return candidates.filter((candidate) => !isSameAvailabilityCandidateRange(candidate, requestedCustomRange));
|
|
81
82
|
};
|
|
82
83
|
const resolvePosFlexibleDurationInitialCandidate = (params) => {
|
|
83
84
|
const firstAvailablePreset = params.presetCandidates.find((candidate) => (!candidate.status || candidate.status === "available" || candidate.status === "limited") && !(typeof candidate.maxPartySize === "number" && candidate.maxPartySize <= 0));
|
|
@@ -96,4 +97,5 @@ exports.resolvePosCustomTimeDefaultDurationMinutes = resolvePosCustomTimeDefault
|
|
|
96
97
|
exports.resolvePosCustomTimeDefaultStartTime = resolvePosCustomTimeDefaultStartTime;
|
|
97
98
|
exports.resolvePosFlexibleBusinessDurationMinutes = resolvePosFlexibleBusinessDurationMinutes;
|
|
98
99
|
exports.resolvePosFlexibleDurationInitialCandidate = resolvePosFlexibleDurationInitialCandidate;
|
|
100
|
+
exports.shouldResetPosFlexibleTimeForDate = shouldResetPosFlexibleTimeForDate;
|
|
99
101
|
exports.shouldShowPosCustomTimeCandidateCards = shouldShowPosCustomTimeCandidateCards;
|
|
@@ -168,6 +168,7 @@ interface SelectionFlowAvailabilityService {
|
|
|
168
168
|
title?: string;
|
|
169
169
|
kind: 'normal' | 'duration' | 'session' | 'venue_slot';
|
|
170
170
|
slotStepMinutes?: number;
|
|
171
|
+
operatingEndAt?: string;
|
|
171
172
|
ranges: SelectionFlowAvailabilityCandidate[];
|
|
172
173
|
}>>;
|
|
173
174
|
queryBookingAvailability: (contextId: string, request: Record<string, unknown>) => Promise<{
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pisell/private-materials",
|
|
3
|
-
"version": "6.11.
|
|
3
|
+
"version": "6.11.656",
|
|
4
4
|
"main": "./lib/index.js",
|
|
5
5
|
"module": "./es/index.js",
|
|
6
6
|
"types": "./lib/index.d.ts",
|
|
@@ -69,11 +69,11 @@
|
|
|
69
69
|
"react-zoom-pan-pinch": "^3.7.0",
|
|
70
70
|
"styled-components": "^6.0.0-rc.3",
|
|
71
71
|
"use-sync-external-store": "^1.6.0",
|
|
72
|
-
"@pisell/pi-payment-sdk": "0.0.3",
|
|
73
72
|
"@pisell/utils": "3.0.4",
|
|
74
|
-
"@pisell/
|
|
73
|
+
"@pisell/icon": "0.0.11",
|
|
75
74
|
"@pisell/materials": "6.11.256",
|
|
76
|
-
"@pisell/
|
|
75
|
+
"@pisell/pi-payment-sdk": "0.0.3",
|
|
76
|
+
"@pisell/date-picker": "3.0.10"
|
|
77
77
|
},
|
|
78
78
|
"peerDependencies": {
|
|
79
79
|
"react": "^18.0.0",
|