@loczer/storefront-sdk 0.218.0 → 0.219.0
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/dist/components/BookingFlowPageLayout/index.d.ts +13 -0
- package/dist/components/BookingFlowPageLayout/index.d.ts.map +1 -0
- package/dist/components/BookingFlowPageLayout/index.js +35 -0
- package/dist/components/BookingPeriodSelector/components/BookingEndDateField.d.ts.map +1 -1
- package/dist/components/BookingPeriodSelector/components/BookingEndDateField.js +10 -33
- package/dist/components/BookingPeriodSelector/components/BookingStartDateField.d.ts.map +1 -1
- package/dist/components/BookingPeriodSelector/components/BookingStartDateField.js +1 -4
- package/dist/components/BookingPeriodSelector/index.d.ts +1 -1
- package/dist/components/BookingPeriodSelector/index.d.ts.map +1 -1
- package/dist/components/BookingPeriodSelector/useBookingPeriodController.d.ts +0 -5
- package/dist/components/BookingPeriodSelector/useBookingPeriodController.d.ts.map +1 -1
- package/dist/components/BookingPeriodSelector/useBookingPeriodController.js +150 -159
- package/dist/components/Footer/BusinessHours.d.ts +2 -1
- package/dist/components/Footer/BusinessHours.d.ts.map +1 -1
- package/dist/components/Footer/BusinessHours.js +19 -18
- package/dist/components/Footer/businessHoursStatus.d.ts +25 -0
- package/dist/components/Footer/businessHoursStatus.d.ts.map +1 -0
- package/dist/components/Footer/businessHoursStatus.js +99 -0
- package/dist/components/Footer/businessHoursUtils.d.ts +2 -1
- package/dist/components/Footer/businessHoursUtils.d.ts.map +1 -1
- package/dist/components/Footer/businessHoursUtils.js +52 -45
- package/dist/components/Footer/index.d.ts +2 -1
- package/dist/components/Footer/index.d.ts.map +1 -1
- package/dist/components/Footer/index.js +26 -25
- package/dist/components/Layout/index.d.ts.map +1 -1
- package/dist/components/Layout/index.js +2 -1
- package/dist/components/StorefrontCancellationPolicyNotice/index.d.ts.map +1 -1
- package/dist/components/StorefrontCancellationPolicyNotice/index.js +89 -86
- package/dist/components/StorefrontCartPanel/index.js +4 -4
- package/dist/components/StorefrontInsuranceNotice/index.d.ts +2 -1
- package/dist/components/StorefrontInsuranceNotice/index.d.ts.map +1 -1
- package/dist/components/StorefrontInsuranceNotice/index.js +155 -162
- package/dist/i18n/en.d.ts +7 -1
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +8 -2
- package/dist/i18n/fr.d.ts +7 -1
- package/dist/i18n/fr.d.ts.map +1 -1
- package/dist/i18n/fr.js +8 -2
- package/dist/index.d.ts +24 -9
- package/dist/index.js +66 -66
- package/dist/lib/pricing.d.ts.map +1 -1
- package/dist/lib/pricing.js +3 -1
- package/dist/lib/products.d.ts +6 -0
- package/dist/lib/products.d.ts.map +1 -1
- package/dist/lib/products.js +36 -32
- package/dist/pages/BookingPage.d.ts.map +1 -1
- package/dist/pages/BookingPage.js +306 -335
- package/dist/pages/CheckoutPage.d.ts.map +1 -1
- package/dist/pages/CheckoutPage.js +154 -168
- package/dist/pages/HomePage.d.ts.map +1 -1
- package/dist/pages/HomePage.js +435 -378
- package/dist/storefront.css +1 -1
- package/package.json +1 -1
|
@@ -49,21 +49,21 @@ var ae = (e) => e, oe = {
|
|
|
49
49
|
}
|
|
50
50
|
return null;
|
|
51
51
|
}, _ = (ne) => {
|
|
52
|
-
let { startDate: m, onStartDateChange: re, startTime: h, onStartTimeChange: ie, endDate: g, onEndDateChange: _, endTime: v, onEndTimeChange: fe, onEndDateCommit:
|
|
53
|
-
locale:
|
|
54
|
-
localeCode:
|
|
55
|
-
}), [
|
|
56
|
-
|
|
57
|
-
let P = !!
|
|
58
|
-
|
|
52
|
+
let { startDate: m, onStartDateChange: re, startTime: h, onStartTimeChange: ie, endDate: g, onEndDateChange: _, endTime: v, onEndTimeChange: fe, onEndDateCommit: y, onEndTimeCommit: pe, errors: me = {}, labels: he, t: ge = ae, language: _e, labelClassName: ve, inputClassName: ye, buttonClassName: be, bookingPeriodConfig: b, fetchTimeSlots: x, onTimeSlotsAvailabilityChange: xe, onTimeSlotsConfirmationChange: Se, withMobileDateDrawer: Ce = !1, currencyCode: we = "EUR", disableAutomaticTimeCorrection: S = !1, openDatePickerOnFocus: Te = !0, startTimeOptions: C = [], endTimeOptions: Ee, locale: De, localeCode: Oe } = ne, w = te("(max-width: 767px)"), ke = Oe ?? _e ?? "en-US", Ae = d(() => se({
|
|
53
|
+
locale: De,
|
|
54
|
+
localeCode: ke
|
|
55
|
+
}), [De, ke]), T = d(() => b ? t(b) : null, [b]), E = d(() => b?.timing.slotIntervalMinutes ? b.timing.slotIntervalMinutes : ce(C) ?? 30, [b?.timing.slotIntervalMinutes, C]), [je, Me] = p(!1), [Ne, Pe] = p(!1), [Fe, D] = p(!1), [Ie, Le] = p(!1), [Re, ze] = p(void 0), [Be, Ve] = p(!1), [He, Ue] = p(!1), [We, O] = p([]), [Ge, k] = p(void 0), [Ke, A] = p(void 0), [qe, Je] = p(0), [Ye, Xe] = p([]), [j, Ze] = p(void 0), [Qe, $e] = p(void 0), [et, tt] = p(0), M = f(null), nt = f(0), rt = f(0), it = f(0), at = f(void 0), N = f(void 0), ot = f(x);
|
|
56
|
+
ot.current = x;
|
|
57
|
+
let P = !!x, st = l(() => {
|
|
58
|
+
ze(void 0);
|
|
59
59
|
}, []), F = d(() => !m || !g ? !1 : c(g, m) === 0, [m, g]), I = d(() => o(h), [h]), L = l((e) => {
|
|
60
60
|
let t = (e instanceof Date ? e : e ? new Date(e) : void 0) ?? /* @__PURE__ */ new Date();
|
|
61
|
-
return
|
|
62
|
-
}, [
|
|
61
|
+
return T ? n(t, T.timeZone) ?? void 0 : `${t.getFullYear()}-${String(t.getMonth() + 1).padStart(2, "0")}-${String(t.getDate()).padStart(2, "0")}`;
|
|
62
|
+
}, [T]), R = d(() => L(m), [m, L]), z = d(() => L(g ?? m), [
|
|
63
63
|
g,
|
|
64
64
|
m,
|
|
65
65
|
L
|
|
66
|
-
]),
|
|
66
|
+
]), ct = f(R), lt = T ? i(/* @__PURE__ */ new Date(), T.timeZone) : null, B = lt?.dateString, V = lt?.minutesFromMidnight, H = d(() => B ? !!(m && R && R === B) : !!m && c(m, /* @__PURE__ */ new Date()) === 0, [
|
|
67
67
|
m,
|
|
68
68
|
R,
|
|
69
69
|
B
|
|
@@ -71,11 +71,11 @@ var ae = (e) => e, oe = {
|
|
|
71
71
|
g,
|
|
72
72
|
z,
|
|
73
73
|
B
|
|
74
|
-
]),
|
|
74
|
+
]), ut = d(() => {
|
|
75
75
|
if (B) return e(B);
|
|
76
76
|
let t = /* @__PURE__ */ new Date();
|
|
77
77
|
return t.setHours(0, 0, 0, 0), t;
|
|
78
|
-
}, [B]), W =
|
|
78
|
+
}, [B]), W = b?.timing.minBufferMinutes ?? 10, G = d(() => {
|
|
79
79
|
if (!H && !U) return null;
|
|
80
80
|
if (V != null) return V + W;
|
|
81
81
|
let e = /* @__PURE__ */ new Date();
|
|
@@ -85,132 +85,132 @@ var ae = (e) => e, oe = {
|
|
|
85
85
|
U,
|
|
86
86
|
H,
|
|
87
87
|
W
|
|
88
|
-
]),
|
|
89
|
-
if (!
|
|
88
|
+
]), dt = d(() => H ? G : null, [G, H]), ft = l((e) => {
|
|
89
|
+
if (!T) return;
|
|
90
90
|
let t = L(e);
|
|
91
|
-
if (!t) return
|
|
92
|
-
let n = r(t), i =
|
|
93
|
-
return typeof i == "number" ? a(i) :
|
|
94
|
-
}, [
|
|
91
|
+
if (!t) return T.defaultEndTime;
|
|
92
|
+
let n = r(t), i = T.getLastStartMinutesForWeekday(n, { dateString: t });
|
|
93
|
+
return typeof i == "number" ? a(i) : T.defaultEndTime;
|
|
94
|
+
}, [T, L]);
|
|
95
95
|
u(() => {
|
|
96
|
-
let e =
|
|
96
|
+
let e = ot.current;
|
|
97
97
|
if (!e) return;
|
|
98
98
|
if (!R) {
|
|
99
|
-
|
|
99
|
+
O([]), k(void 0), A(void 0);
|
|
100
100
|
return;
|
|
101
101
|
}
|
|
102
102
|
let t = !0;
|
|
103
|
-
return
|
|
104
|
-
t && (
|
|
103
|
+
return O([]), k(void 0), A(void 0), e(R, "start").then((e) => {
|
|
104
|
+
t && (O(e ?? []), k(R), A(void 0));
|
|
105
105
|
}).catch((e) => {
|
|
106
|
-
console.warn("Failed to fetch availability time slots", e), t && (
|
|
106
|
+
console.warn("Failed to fetch availability time slots", e), t && (O([]), k(void 0), A(R));
|
|
107
107
|
}), () => {
|
|
108
108
|
t = !1;
|
|
109
109
|
};
|
|
110
110
|
}, [
|
|
111
111
|
P,
|
|
112
112
|
R,
|
|
113
|
-
|
|
113
|
+
qe
|
|
114
114
|
]), u(() => {
|
|
115
115
|
if (!P) return;
|
|
116
|
-
let e =
|
|
117
|
-
|
|
116
|
+
let e = at.current, t = e !== void 0 && e !== z;
|
|
117
|
+
at.current = z, t && z && (N.current = z);
|
|
118
118
|
}, [z, P]), u(() => {
|
|
119
|
-
let e =
|
|
119
|
+
let e = ot.current;
|
|
120
120
|
if (!e) return;
|
|
121
121
|
if (!z) {
|
|
122
|
-
|
|
122
|
+
Xe([]), Ze(void 0), $e(void 0);
|
|
123
123
|
return;
|
|
124
124
|
}
|
|
125
125
|
let t = !0;
|
|
126
|
-
return
|
|
127
|
-
t && (
|
|
126
|
+
return Xe([]), Ze(void 0), $e(void 0), e(z, "end").then((e) => {
|
|
127
|
+
t && (Xe(e ?? []), Ze(z), $e(void 0));
|
|
128
128
|
}).catch((e) => {
|
|
129
|
-
console.warn("Failed to fetch availability time slots", e), t && (
|
|
129
|
+
console.warn("Failed to fetch availability time slots", e), t && (Xe([]), Ze(void 0), $e(z));
|
|
130
130
|
}), () => {
|
|
131
131
|
t = !1;
|
|
132
132
|
};
|
|
133
133
|
}, [
|
|
134
134
|
z,
|
|
135
|
-
|
|
135
|
+
et,
|
|
136
136
|
P
|
|
137
137
|
]), u(() => {
|
|
138
138
|
if (!P || typeof window > "u") return;
|
|
139
139
|
let e = (e) => {
|
|
140
|
-
e.persisted && (N.current = z,
|
|
140
|
+
e.persisted && (N.current = z, Je((e) => e + 1), tt((e) => e + 1));
|
|
141
141
|
};
|
|
142
142
|
return window.addEventListener("pageshow", e), () => window.removeEventListener("pageshow", e);
|
|
143
143
|
}, [z, P]);
|
|
144
|
-
let
|
|
145
|
-
y,
|
|
144
|
+
let pt = d(() => x || !b ? null : s(b, { date: R }).startTimeSlots, [
|
|
146
145
|
b,
|
|
146
|
+
x,
|
|
147
147
|
R
|
|
148
|
-
]),
|
|
149
|
-
|
|
148
|
+
]), mt = d(() => x || !b ? null : s(b, { date: z }).endTimeSlots, [
|
|
149
|
+
b,
|
|
150
150
|
z,
|
|
151
|
-
|
|
152
|
-
]), K = d(() =>
|
|
153
|
-
y,
|
|
154
|
-
mt,
|
|
151
|
+
x
|
|
152
|
+
]), K = d(() => x ? Ge === R ? We : [] : b ? pt ?? [] : le(C, E), [
|
|
155
153
|
b,
|
|
156
|
-
|
|
154
|
+
pt,
|
|
155
|
+
x,
|
|
156
|
+
We,
|
|
157
157
|
Ge,
|
|
158
158
|
R,
|
|
159
|
-
|
|
159
|
+
E,
|
|
160
160
|
C
|
|
161
|
-
]), q = d(() =>
|
|
162
|
-
y,
|
|
163
|
-
ht,
|
|
164
|
-
z,
|
|
165
|
-
De,
|
|
161
|
+
]), q = d(() => x ? j === z ? Ye : [] : b ? mt ?? [] : le(Ee ?? C, E), [
|
|
166
162
|
b,
|
|
167
|
-
|
|
163
|
+
mt,
|
|
164
|
+
z,
|
|
165
|
+
Ee,
|
|
166
|
+
x,
|
|
167
|
+
Ye,
|
|
168
168
|
j,
|
|
169
|
-
|
|
169
|
+
E,
|
|
170
170
|
C
|
|
171
|
-
]),
|
|
172
|
-
|
|
173
|
-
},
|
|
174
|
-
N.current = z,
|
|
171
|
+
]), ht = K.some((e) => e.isDisabled ? !1 : !H || G == null || e.startMinutes >= G), gt = q.some((e) => e.isDisabled || U && G != null && e.startMinutes < G ? !1 : !F || I == null || e.startMinutes > I), _t = K.some((e) => e.value !== h || e.isDisabled ? !1 : !H || G == null || e.startMinutes >= G), vt = q.some((e) => !(e.value !== v || e.isDisabled || U && G != null && e.startMinutes < G || F && (I == null || e.startMinutes <= I))), J = x ? Ke === R ? "error" : Ge === R ? "ready" : "loading" : "local", Y = x ? Qe === z ? "error" : j === z ? "ready" : "loading" : "local", X = (J === "local" || J === "ready" && ht) && (Y === "local" || Y === "ready" && gt), yt = X && _t && vt, bt = X, xt = () => {
|
|
172
|
+
Je((e) => e + 1);
|
|
173
|
+
}, St = () => {
|
|
174
|
+
N.current = z, tt((e) => e + 1);
|
|
175
175
|
};
|
|
176
176
|
u(() => {
|
|
177
|
-
|
|
178
|
-
}, [X,
|
|
179
|
-
|
|
180
|
-
}, [
|
|
177
|
+
xe?.(X);
|
|
178
|
+
}, [X, xe]), u(() => {
|
|
179
|
+
Se?.(yt);
|
|
180
|
+
}, [yt, Se]);
|
|
181
181
|
let Z = l((e, t) => {
|
|
182
|
-
e !== h && (
|
|
182
|
+
e !== h && (Ue(t === "user"), ie(e, { source: t }));
|
|
183
183
|
}, [ie, h]), Q = l((e, t = "auto") => {
|
|
184
184
|
e !== v && (t !== "user" && e && q.find((t) => t.value === e)?.isExtra || fe(e, { source: t }));
|
|
185
185
|
}, [
|
|
186
186
|
q,
|
|
187
187
|
v,
|
|
188
188
|
fe
|
|
189
|
-
]), $ = d(() => K.length ? K.find((e) => !(e.isDisabled ||
|
|
189
|
+
]), $ = d(() => K.length ? K.find((e) => !(e.isDisabled || dt != null && e.startMinutes < dt)) ?? null : null, [dt, K]);
|
|
190
190
|
u(() => {
|
|
191
|
-
!
|
|
191
|
+
!x || !(J === "error" || J === "ready" && !ht) || !h || Z("", "auto");
|
|
192
192
|
}, [
|
|
193
|
-
|
|
194
|
-
|
|
193
|
+
x,
|
|
194
|
+
ht,
|
|
195
195
|
h,
|
|
196
196
|
J,
|
|
197
197
|
Z
|
|
198
198
|
]), u(() => {
|
|
199
|
-
!
|
|
199
|
+
!x || !(Y === "error" || Y === "ready" && !gt) || !v || Q("");
|
|
200
200
|
}, [
|
|
201
201
|
v,
|
|
202
202
|
Y,
|
|
203
|
-
|
|
204
|
-
|
|
203
|
+
x,
|
|
204
|
+
gt,
|
|
205
205
|
Q
|
|
206
206
|
]), u(() => {
|
|
207
|
-
if (S ||
|
|
208
|
-
let e =
|
|
209
|
-
(!h || e) && (
|
|
207
|
+
if (S || He || !$) return;
|
|
208
|
+
let e = ct.current !== R;
|
|
209
|
+
(!h || e) && (ct.current = R, h !== $.value && Z($.value, "auto"));
|
|
210
210
|
}, [
|
|
211
211
|
S,
|
|
212
212
|
$,
|
|
213
|
-
|
|
213
|
+
He,
|
|
214
214
|
R,
|
|
215
215
|
h,
|
|
216
216
|
Z
|
|
@@ -242,7 +242,7 @@ var ae = (e) => e, oe = {
|
|
|
242
242
|
Z
|
|
243
243
|
]), u(() => {
|
|
244
244
|
if (S || !q.length) return;
|
|
245
|
-
if (
|
|
245
|
+
if (x && N.current === z && j === z) {
|
|
246
246
|
N.current = void 0;
|
|
247
247
|
let e = de(q);
|
|
248
248
|
if (e && e.value !== v) {
|
|
@@ -251,12 +251,12 @@ var ae = (e) => e, oe = {
|
|
|
251
251
|
}
|
|
252
252
|
}
|
|
253
253
|
let e = o(h), t = o(v), n = v ? q.find((e) => e.value === v) : void 0, r = [];
|
|
254
|
-
U && G != null && r.push(G), F && e != null && r.push(e +
|
|
254
|
+
U && G != null && r.push(G), F && e != null && r.push(e + E);
|
|
255
255
|
let i = r.length ? Math.max(...r) : null, a = (e) => {
|
|
256
256
|
let t = typeof e == "number" ? e : null, n = q.find((e) => !(!ue(e) || t != null && e.startMinutes < t));
|
|
257
257
|
n && n.value !== v ? Q(n.value) : !n && v && Q("");
|
|
258
258
|
};
|
|
259
|
-
if (
|
|
259
|
+
if (x && v && !n) {
|
|
260
260
|
a(i);
|
|
261
261
|
return;
|
|
262
262
|
}
|
|
@@ -273,155 +273,146 @@ var ae = (e) => e, oe = {
|
|
|
273
273
|
G,
|
|
274
274
|
z,
|
|
275
275
|
v,
|
|
276
|
-
|
|
276
|
+
x,
|
|
277
277
|
j,
|
|
278
278
|
U,
|
|
279
279
|
F,
|
|
280
|
-
|
|
280
|
+
E,
|
|
281
281
|
h,
|
|
282
282
|
Q
|
|
283
|
-
]), u(() => (
|
|
283
|
+
]), u(() => (Ve(!0), () => {
|
|
284
284
|
M.current != null && clearTimeout(M.current);
|
|
285
285
|
}), []), u(() => {
|
|
286
|
-
|
|
287
|
-
}, [je,
|
|
288
|
-
|
|
289
|
-
}, [
|
|
290
|
-
let
|
|
291
|
-
e &&
|
|
286
|
+
Ne && je && Me(!1);
|
|
287
|
+
}, [je, Ne]), u(() => {
|
|
288
|
+
Ie && Fe && D(!1);
|
|
289
|
+
}, [Fe, Ie]);
|
|
290
|
+
let Ct = l((e) => {
|
|
291
|
+
e && nt.current && Date.now() < nt.current || Me(e);
|
|
292
|
+
}, []), wt = l((e) => {
|
|
293
|
+
e && rt.current && Date.now() < rt.current || D(e);
|
|
292
294
|
}, []), Tt = l((e) => {
|
|
293
|
-
e && it.current && Date.now() < it.current ||
|
|
294
|
-
}, []), Et = l((e) => {
|
|
295
|
-
|
|
296
|
-
}, []), Dt = l((e, { openTimePicker: t, openEndDatePicker: n, close: r = !0 } = {}) => {
|
|
297
|
-
let i = t ?? x === "chained-times", a = n ?? x === "dates-first";
|
|
295
|
+
e && it.current && Date.now() < it.current || Le(e);
|
|
296
|
+
}, []), Et = l((e, { openEndDatePicker: t, close: n = !0 } = {}) => {
|
|
297
|
+
let r = t ?? !0;
|
|
298
298
|
if (!e) {
|
|
299
|
-
|
|
299
|
+
n && Me(!1);
|
|
300
300
|
return;
|
|
301
301
|
}
|
|
302
|
-
(!m || !ee(e, m)) && re(e), (
|
|
303
|
-
|
|
302
|
+
(!m || !ee(e, m)) && re(e), (n || r) && (nt.current = Date.now() + 250, Me(!1)), g && e > g && _(e), r && (M.current != null && clearTimeout(M.current), w ? (D(!0), M.current = null) : M.current = setTimeout(() => {
|
|
303
|
+
D(!0);
|
|
304
304
|
}, 100));
|
|
305
305
|
}, [
|
|
306
306
|
g,
|
|
307
307
|
w,
|
|
308
308
|
_,
|
|
309
309
|
re,
|
|
310
|
-
x,
|
|
311
310
|
m
|
|
312
|
-
]),
|
|
313
|
-
Z(e, "user"),
|
|
314
|
-
|
|
315
|
-
}, 100) : M.current = null;
|
|
316
|
-
}, [
|
|
317
|
-
x,
|
|
318
|
-
m,
|
|
319
|
-
Z
|
|
320
|
-
]), kt = l((e) => {
|
|
311
|
+
]), Dt = l((e) => {
|
|
312
|
+
Z(e, "user"), Pe(!1), M.current != null && clearTimeout(M.current), M.current = null;
|
|
313
|
+
}, [Z]), Ot = l((e) => {
|
|
321
314
|
e && e !== h && Z(e, "user");
|
|
322
|
-
}, [h, Z]),
|
|
323
|
-
let
|
|
324
|
-
if (e
|
|
315
|
+
}, [h, Z]), kt = l((e, { close: t = !0, commit: n = w } = {}) => {
|
|
316
|
+
let r = v, i = !0;
|
|
317
|
+
if (e) if (x) {
|
|
325
318
|
let t = L(e);
|
|
326
319
|
t && (N.current = t);
|
|
327
|
-
let n = j === t ?
|
|
328
|
-
if (B ? t === B : c(e, /* @__PURE__ */ new Date()) === 0) if (V != null)
|
|
320
|
+
let n = j === t ? Ye : [], a = [];
|
|
321
|
+
if (B ? t === B : c(e, /* @__PURE__ */ new Date()) === 0) if (V != null) a.push(V + W);
|
|
329
322
|
else {
|
|
330
323
|
let e = /* @__PURE__ */ new Date();
|
|
331
|
-
e.setMinutes(e.getMinutes() + W),
|
|
324
|
+
e.setMinutes(e.getMinutes() + W), a.push(e.getHours() * 60 + e.getMinutes());
|
|
332
325
|
}
|
|
333
|
-
m && I != null && c(e, m) === 0 &&
|
|
334
|
-
let
|
|
335
|
-
|
|
326
|
+
m && I != null && c(e, m) === 0 && a.push(I + E);
|
|
327
|
+
let o = de(n, a.length ? Math.max(...a) : null);
|
|
328
|
+
r = o?.value, i = !!o && bt, r ? Q(r) : v && Q("");
|
|
336
329
|
} else {
|
|
337
|
-
let t =
|
|
338
|
-
t && (
|
|
330
|
+
let t = ft(e);
|
|
331
|
+
t && (r = t, Q(t));
|
|
339
332
|
}
|
|
340
|
-
(e ? !g || !ee(e, g) : g != null) && _(e),
|
|
333
|
+
(e ? !g || !ee(e, g) : g != null) && _(e), ze(void 0), t && (!n || i) && (rt.current = Date.now() + 250, D(!1)), e && n && i && y && (typeof window > "u" ? y(e, r) : requestAnimationFrame(() => y(e, r)));
|
|
341
334
|
}, [
|
|
342
335
|
v,
|
|
343
336
|
g,
|
|
344
|
-
|
|
337
|
+
bt,
|
|
345
338
|
V,
|
|
346
|
-
|
|
347
|
-
|
|
339
|
+
x,
|
|
340
|
+
Ye,
|
|
348
341
|
j,
|
|
349
|
-
|
|
342
|
+
ft,
|
|
350
343
|
w,
|
|
351
344
|
W,
|
|
352
345
|
_,
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
D,
|
|
346
|
+
y,
|
|
347
|
+
E,
|
|
356
348
|
m,
|
|
357
349
|
I,
|
|
358
350
|
B,
|
|
359
351
|
L,
|
|
360
352
|
Q
|
|
361
|
-
]),
|
|
353
|
+
]), At = l((e) => {
|
|
362
354
|
Q(e, "user");
|
|
363
|
-
}, [Q]),
|
|
364
|
-
N.current = void 0, Q(e, "user"),
|
|
365
|
-
requestAnimationFrame(
|
|
355
|
+
}, [Q]), jt = l((e) => {
|
|
356
|
+
N.current = void 0, Q(e, "user"), it.current = Date.now() + 250, Le(!1), pe && (typeof window > "u" ? pe() : requestAnimationFrame(() => {
|
|
357
|
+
requestAnimationFrame(pe);
|
|
366
358
|
}));
|
|
367
|
-
}, [
|
|
359
|
+
}, [pe, Q]);
|
|
368
360
|
return {
|
|
369
361
|
startDate: m,
|
|
370
362
|
startTime: h,
|
|
371
363
|
endDate: g,
|
|
372
364
|
endTime: v,
|
|
373
|
-
errors:
|
|
365
|
+
errors: me,
|
|
374
366
|
labels: {
|
|
375
367
|
...oe,
|
|
376
|
-
...
|
|
368
|
+
...he
|
|
377
369
|
},
|
|
378
|
-
t:
|
|
379
|
-
language:
|
|
380
|
-
labelClassName:
|
|
381
|
-
inputClassName:
|
|
382
|
-
buttonClassName:
|
|
383
|
-
currencyCode:
|
|
384
|
-
localeCode:
|
|
385
|
-
slotIntervalMinutes:
|
|
370
|
+
t: ge,
|
|
371
|
+
language: _e ?? ke,
|
|
372
|
+
labelClassName: ve,
|
|
373
|
+
inputClassName: ye,
|
|
374
|
+
buttonClassName: be,
|
|
375
|
+
currencyCode: we,
|
|
376
|
+
localeCode: ke,
|
|
377
|
+
slotIntervalMinutes: E,
|
|
386
378
|
dateLocale: Ae,
|
|
387
379
|
numberOfMonths: w ? 1 : 2,
|
|
388
380
|
isMobile: w,
|
|
389
|
-
isHydrated:
|
|
390
|
-
openDatePickerOnFocus:
|
|
391
|
-
withMobileDateDrawer:
|
|
392
|
-
selectionFlow: x,
|
|
381
|
+
isHydrated: Be,
|
|
382
|
+
openDatePickerOnFocus: Te,
|
|
383
|
+
withMobileDateDrawer: Ce,
|
|
393
384
|
isStartDatePopoverOpen: je,
|
|
394
|
-
setIsStartDatePopoverOpen:
|
|
395
|
-
isStartTimeSelectOpen:
|
|
396
|
-
setIsStartTimeSelectOpen:
|
|
397
|
-
isEndDatePopoverOpen:
|
|
398
|
-
setIsEndDatePopoverOpen:
|
|
399
|
-
isEndTimeSelectOpen:
|
|
400
|
-
setIsEndTimeSelectOpen:
|
|
401
|
-
hoveredEndDate:
|
|
402
|
-
setHoveredEndDate:
|
|
403
|
-
resetHoveredEndDate:
|
|
385
|
+
setIsStartDatePopoverOpen: Ct,
|
|
386
|
+
isStartTimeSelectOpen: Ne,
|
|
387
|
+
setIsStartTimeSelectOpen: Pe,
|
|
388
|
+
isEndDatePopoverOpen: Fe,
|
|
389
|
+
setIsEndDatePopoverOpen: wt,
|
|
390
|
+
isEndTimeSelectOpen: Ie,
|
|
391
|
+
setIsEndTimeSelectOpen: Tt,
|
|
392
|
+
hoveredEndDate: Re,
|
|
393
|
+
setHoveredEndDate: ze,
|
|
394
|
+
resetHoveredEndDate: st,
|
|
404
395
|
startTimeSlots: K,
|
|
405
396
|
availableEndTimeSlots: q,
|
|
406
397
|
startTimeSlotsStatus: J,
|
|
407
398
|
endTimeSlotsStatus: Y,
|
|
408
|
-
retryStartTimeSlots:
|
|
409
|
-
retryEndTimeSlots:
|
|
399
|
+
retryStartTimeSlots: xt,
|
|
400
|
+
retryEndTimeSlots: St,
|
|
410
401
|
hasAvailableTimeSlots: X,
|
|
411
|
-
hasConfirmedTimeSlots:
|
|
412
|
-
canCommitTimeSlots:
|
|
402
|
+
hasConfirmedTimeSlots: yt,
|
|
403
|
+
canCommitTimeSlots: bt,
|
|
413
404
|
isStartToday: H,
|
|
414
405
|
isEndToday: U,
|
|
415
|
-
minSelectableDate:
|
|
406
|
+
minSelectableDate: ut,
|
|
416
407
|
earliestMinutesForToday: G,
|
|
417
408
|
startMinutesValue: I,
|
|
418
409
|
isSameDaySelection: F,
|
|
419
|
-
updateStartTime:
|
|
420
|
-
selectStartDate:
|
|
421
|
-
selectStartTime:
|
|
422
|
-
selectEndDate:
|
|
423
|
-
updateEndTime:
|
|
424
|
-
selectEndTime:
|
|
410
|
+
updateStartTime: Ot,
|
|
411
|
+
selectStartDate: Et,
|
|
412
|
+
selectStartTime: Dt,
|
|
413
|
+
selectEndDate: kt,
|
|
414
|
+
updateEndTime: At,
|
|
415
|
+
selectEndTime: jt
|
|
425
416
|
};
|
|
426
417
|
};
|
|
427
418
|
//#endregion
|
|
@@ -4,7 +4,8 @@ export type SeasonOption = BusinessHoursSeasonOption;
|
|
|
4
4
|
type BusinessHoursProps = {
|
|
5
5
|
openingHours: StoreOpeningHours;
|
|
6
6
|
openingHoursOverrides: StoreOpeningOverride[];
|
|
7
|
+
timeZone: string;
|
|
7
8
|
};
|
|
8
|
-
export declare function BusinessHours({ openingHours, openingHoursOverrides }: BusinessHoursProps): import("react/jsx-runtime").JSX.Element | null;
|
|
9
|
+
export declare function BusinessHours({ openingHours, openingHoursOverrides, timeZone }: BusinessHoursProps): import("react/jsx-runtime").JSX.Element | null;
|
|
9
10
|
export {};
|
|
10
11
|
//# sourceMappingURL=BusinessHours.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BusinessHours.d.ts","sourceRoot":"","sources":["../../../src/components/Footer/BusinessHours.tsx"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EAC1B,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,sBAAsB,CAAA;AAG7B,MAAM,MAAM,YAAY,GAAG,yBAAyB,CAAA;AAEpD,KAAK,kBAAkB,GAAG;IACxB,YAAY,EAAE,iBAAiB,CAAA;IAC/B,qBAAqB,EAAE,oBAAoB,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"BusinessHours.d.ts","sourceRoot":"","sources":["../../../src/components/Footer/BusinessHours.tsx"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EAC1B,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,sBAAsB,CAAA;AAG7B,MAAM,MAAM,YAAY,GAAG,yBAAyB,CAAA;AAEpD,KAAK,kBAAkB,GAAG;IACxB,YAAY,EAAE,iBAAiB,CAAA;IAC/B,qBAAqB,EAAE,oBAAoB,EAAE,CAAA;IAC7C,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,wBAAgB,aAAa,CAAC,EAAE,YAAY,EAAE,qBAAqB,EAAE,QAAQ,EAAE,EAAE,kBAAkB,kDAgGlG"}
|
|
@@ -4,37 +4,38 @@ import { jsx as r, jsxs as i } from "react/jsx-runtime";
|
|
|
4
4
|
import { useTranslation as a } from "react-i18next";
|
|
5
5
|
import { ChevronDown as o, Clock as s } from "lucide-react";
|
|
6
6
|
//#region src/components/Footer/BusinessHours.tsx
|
|
7
|
-
function c({ openingHours: c, openingHoursOverrides: l }) {
|
|
8
|
-
let { t:
|
|
7
|
+
function c({ openingHours: c, openingHoursOverrides: l, timeZone: u }) {
|
|
8
|
+
let { t: d, i18n: f } = a(), { seasons: p, defaultSeasonId: m } = e({
|
|
9
9
|
openingHours: c,
|
|
10
10
|
openingHoursOverrides: l,
|
|
11
|
-
language:
|
|
12
|
-
closedLabel:
|
|
13
|
-
formatWeekdayRange: (e, t) =>
|
|
11
|
+
language: f.language || "en",
|
|
12
|
+
closedLabel: d("footer_business_hours_closed"),
|
|
13
|
+
formatWeekdayRange: (e, t) => d("footer_business_hours_weekday_range", {
|
|
14
14
|
start: e,
|
|
15
15
|
end: t
|
|
16
16
|
}),
|
|
17
|
-
formatSeasonRange: (e, t) =>
|
|
17
|
+
formatSeasonRange: (e, t) => d("footer_business_hours_season_range", {
|
|
18
18
|
start: e,
|
|
19
19
|
end: t
|
|
20
|
-
})
|
|
21
|
-
|
|
20
|
+
}),
|
|
21
|
+
timeZone: u
|
|
22
|
+
}), [h, g] = n(m);
|
|
22
23
|
return t(() => {
|
|
23
|
-
if (!
|
|
24
|
-
|
|
24
|
+
if (!p.length) {
|
|
25
|
+
h !== null && g(null);
|
|
25
26
|
return;
|
|
26
27
|
}
|
|
27
|
-
|
|
28
|
+
h !== null && (p.some((e) => e.id === h) || g(m));
|
|
28
29
|
}, [
|
|
29
|
-
f,
|
|
30
30
|
p,
|
|
31
|
-
m
|
|
32
|
-
|
|
31
|
+
m,
|
|
32
|
+
h
|
|
33
|
+
]), p.length ? /* @__PURE__ */ r("div", {
|
|
33
34
|
"data-testid": "footer-business-hours",
|
|
34
35
|
children: /* @__PURE__ */ r("div", {
|
|
35
36
|
className: "space-y-2",
|
|
36
|
-
children:
|
|
37
|
-
let t =
|
|
37
|
+
children: p.map((e) => {
|
|
38
|
+
let t = h === e.id;
|
|
38
39
|
return /* @__PURE__ */ i("section", {
|
|
39
40
|
"data-testid": `footer-business-hours-season-${e.id}`,
|
|
40
41
|
children: [/* @__PURE__ */ r("h3", { children: /* @__PURE__ */ i("button", {
|
|
@@ -43,7 +44,7 @@ function c({ openingHours: c, openingHoursOverrides: l }) {
|
|
|
43
44
|
"data-testid": `footer-business-hours-season-toggle-${e.id}`,
|
|
44
45
|
"aria-expanded": t,
|
|
45
46
|
onClick: () => {
|
|
46
|
-
|
|
47
|
+
g((t) => t === e.id ? null : e.id);
|
|
47
48
|
},
|
|
48
49
|
children: [/* @__PURE__ */ i("span", {
|
|
49
50
|
className: "min-w-0",
|
|
@@ -56,7 +57,7 @@ function c({ openingHours: c, openingHoursOverrides: l }) {
|
|
|
56
57
|
}),
|
|
57
58
|
/* @__PURE__ */ i("span", {
|
|
58
59
|
className: "font-medium",
|
|
59
|
-
children: [
|
|
60
|
+
children: [d("footer_business_hours_season_label"), ":"]
|
|
60
61
|
}),
|
|
61
62
|
/* @__PURE__ */ r("span", {
|
|
62
63
|
className: "truncate font-medium text-slate-500",
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { StoreOpeningHours, StoreOpeningOverride } from '../../lib/booking-period';
|
|
2
|
+
type BusinessHoursStatusOptions = {
|
|
3
|
+
openingHours: StoreOpeningHours;
|
|
4
|
+
openingHoursOverrides: StoreOpeningOverride[];
|
|
5
|
+
timeZone: string;
|
|
6
|
+
referenceDate?: Date;
|
|
7
|
+
};
|
|
8
|
+
export type BusinessHoursStatus = {
|
|
9
|
+
kind: "open";
|
|
10
|
+
} | {
|
|
11
|
+
kind: "closed";
|
|
12
|
+
nextOpening: {
|
|
13
|
+
date: string;
|
|
14
|
+
daysFromToday: number;
|
|
15
|
+
time: string;
|
|
16
|
+
} | null;
|
|
17
|
+
} | {
|
|
18
|
+
kind: "unknown";
|
|
19
|
+
};
|
|
20
|
+
export declare const getBusinessHoursStatus: ({ openingHours, openingHoursOverrides, timeZone, referenceDate, }: BusinessHoursStatusOptions) => BusinessHoursStatus;
|
|
21
|
+
export declare const formatBusinessHoursTime: (time: string, language: string) => string;
|
|
22
|
+
export declare const formatBusinessHoursWeekday: (dateString: string, language: string) => string;
|
|
23
|
+
export declare const formatBusinessHoursDate: (dateString: string, language: string) => string;
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=businessHoursStatus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"businessHoursStatus.d.ts","sourceRoot":"","sources":["../../../src/components/Footer/businessHoursStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EAC1B,MAAM,0BAA0B,CAAA;AAKjC,KAAK,0BAA0B,GAAG;IAChC,YAAY,EAAE,iBAAiB,CAAA;IAC/B,qBAAqB,EAAE,oBAAoB,EAAE,CAAA;IAC7C,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,IAAI,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,mBAAmB,GAC3B;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IACA,IAAI,EAAE,QAAQ,CAAA;IACd,WAAW,EAAE;QACX,IAAI,EAAE,MAAM,CAAA;QACZ,aAAa,EAAE,MAAM,CAAA;QACrB,IAAI,EAAE,MAAM,CAAA;KACb,GAAG,IAAI,CAAA;CACT,GACC;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAA;AAyFvB,eAAO,MAAM,sBAAsB,GAAI,mEAKpC,0BAA0B,KAAG,mBAkD/B,CAAA;AAED,eAAO,MAAM,uBAAuB,GAAI,MAAM,MAAM,EAAE,UAAU,MAAM,KAAG,MAexE,CAAA;AAED,eAAO,MAAM,0BAA0B,GAAI,YAAY,MAAM,EAAE,UAAU,MAAM,KAAG,MAejF,CAAA;AAED,eAAO,MAAM,uBAAuB,GAAI,YAAY,MAAM,EAAE,UAAU,MAAM,KAAG,MAiB9E,CAAA"}
|