@wix/headless-bookings 0.0.105 → 0.0.107
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/cjs/dist/__mocks__/booking/booking-client-service.js +25 -20
- package/cjs/dist/__mocks__/booking/booking-mocks.js +28 -20
- package/cjs/dist/__mocks__/payment/payment-mocks.js +6 -3
- package/cjs/dist/__mocks__/services/services-mocks.js +79 -74
- package/cjs/dist/__mocks__/time-slots/time-slots-client-service.js +39 -33
- package/cjs/dist/__mocks__/time-slots/time-slots-core.js +43 -33
- package/cjs/dist/__mocks__/time-slots/time-slots-mocks.js +18 -13
- package/cjs/dist/api/create-booking/index.js +6 -3
- package/cjs/dist/api/create-checkout/index.js +9 -4
- package/cjs/dist/api/create-order/index.js +6 -3
- package/cjs/dist/api/fetch-availability/index.js +18 -15
- package/cjs/dist/api/index.js +24 -7
- package/cjs/dist/api/query-categories/index.js +6 -3
- package/cjs/dist/api/query-locations/index.js +9 -5
- package/cjs/dist/api/query-services/index.js +24 -17
- package/cjs/dist/react/booking/Book.js +51 -12
- package/cjs/dist/react/booking/Booking.js +68 -26
- package/cjs/dist/react/booking/BookingItem.js +56 -15
- package/cjs/dist/react/booking-form/BookingForm.js +63 -21
- package/cjs/dist/react/core/booking/Book.js +14 -11
- package/cjs/dist/react/core/booking/Booking.js +35 -23
- package/cjs/dist/react/core/booking-form/BookingForm.js +63 -26
- package/cjs/dist/react/core/location/Location.js +60 -21
- package/cjs/dist/react/core/location-list/LocationList.js +15 -10
- package/cjs/dist/react/core/payment/Payment.js +41 -30
- package/cjs/dist/react/core/service/Service.js +28 -19
- package/cjs/dist/react/core/service/ServiceMediaCover.js +7 -4
- package/cjs/dist/react/core/service/ServiceMediaGallery.js +7 -4
- package/cjs/dist/react/core/service/ServiceMediaMain.js +7 -4
- package/cjs/dist/react/core/service-list/ServiceList.js +12 -8
- package/cjs/dist/react/core/service-list/ServiceListFilter.js +9 -6
- package/cjs/dist/react/core/staff-member/StaffMember.js +20 -14
- package/cjs/dist/react/core/staff-member-list/StaffMemberList.js +19 -14
- package/cjs/dist/react/core/time-slot-list/TimeSlot.js +41 -28
- package/cjs/dist/react/core/time-slot-list/TimeSlotList.js +21 -15
- package/cjs/dist/react/index.js +49 -13
- package/cjs/dist/react/location/Location.js +76 -36
- package/cjs/dist/react/location/LocationList.js +70 -31
- package/cjs/dist/react/payment/Payment.js +87 -48
- package/cjs/dist/react/service/Service.js +197 -158
- package/cjs/dist/react/service/ServiceMedia.js +56 -17
- package/cjs/dist/react/service-list/ServiceList.js +71 -32
- package/cjs/dist/react/staff-member/StaffMember.js +61 -20
- package/cjs/dist/react/staff-member/StaffMemberList.js +68 -29
- package/cjs/dist/react/time-slot-list/TimeSlot.js +95 -56
- package/cjs/dist/react/time-slot-list/TimeSlotList.js +87 -48
- package/cjs/dist/services/booking/book-action/bookAction.js +21 -18
- package/cjs/dist/services/booking/book-action/buildBookingRequest.js +18 -15
- package/cjs/dist/services/booking/book-action/buildCheckoutRequest.js +8 -5
- package/cjs/dist/services/booking/book-action/canBook.js +4 -1
- package/cjs/dist/services/booking/book-action/index.js +15 -6
- package/cjs/dist/services/booking/book-action/isCheckoutRequired.js +4 -1
- package/cjs/dist/services/booking/book-action/types.js +5 -2
- package/cjs/dist/services/booking/booking.js +11 -8
- package/cjs/dist/services/booking-form/booking-form.js +26 -18
- package/cjs/dist/services/booking-form/utils.js +10 -4
- package/cjs/dist/services/constants.js +6 -3
- package/cjs/dist/services/index.js +48 -10
- package/cjs/dist/services/location-list/location-list.def.js +7 -5
- package/cjs/dist/services/location-list/location-list.js +31 -23
- package/cjs/dist/services/payment/payment.def.js +5 -2
- package/cjs/dist/services/payment/payment.js +22 -17
- package/cjs/dist/services/service/service.js +33 -29
- package/cjs/dist/services/service-list/service-list.js +22 -18
- package/cjs/dist/services/staff-member-list/staff-member-list.def.js +5 -2
- package/cjs/dist/services/staff-member-list/staff-member-list.js +16 -10
- package/cjs/dist/services/time-slot-list/index.js +12 -3
- package/cjs/dist/services/time-slot-list/time-slot-list.def.js +8 -5
- package/cjs/dist/services/time-slot-list/time-slot-list.js +24 -19
- package/cjs/dist/services/time-slot-list/time-slot.js +9 -6
- package/cjs/dist/utils/dateAndTime.js +7 -2
- package/cjs/dist/utils/guid.js +4 -1
- package/cjs/dist/utils/index.js +5 -1
- package/cjs/dist/utils/money.js +6 -2
- package/cjs/dist/utils/navigation.js +6 -3
- package/package.json +4 -4
|
@@ -1,23 +1,62 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.CoverMedia = exports.MainMedia = exports.StaffMembers = exports.Locations = exports.AvailableOnline = exports.DefaultCapacity = exports.Schedule = exports.ScheduleSessionDuration = exports.ScheduleLastSessionEnd = exports.ScheduleFirstSessionStart = exports.Policy = exports.PolicyMaxParticipantsPerBooking = exports.PolicyBookAfterStartEnabled = exports.PolicyWaitlistCapacity = exports.PolicyLatestRescheduleInMinutes = exports.PolicyEarliestBookingInMinutes = exports.PolicyLatestBookingInMinutes = exports.PolicyLatestCancellationInMinutes = exports.Actions = exports.Raw = exports.StaffMemberRepeater = exports.StaffMembersList = exports.LocationRepeater = exports.LocationsList = exports.Category = exports.Type = exports.DurationInMinutes = exports.Tagline = exports.Price = exports.Description = exports.Name = exports.Root = exports.TestIds = void 0;
|
|
40
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
2
41
|
/**
|
|
3
42
|
* Service - High-level component for displaying service information
|
|
4
43
|
* Provides components for displaying service details and booking actions
|
|
5
44
|
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
45
|
+
const react_1 = __importDefault(require("react"));
|
|
46
|
+
const CoreService = __importStar(require("../core/service/Service.js"));
|
|
47
|
+
const CoreServiceMediaGallery = __importStar(require("../core/service/ServiceMediaGallery.js"));
|
|
48
|
+
const react_2 = require("@wix/headless-utils/react");
|
|
49
|
+
const react_3 = require("@wix/headless-components/react");
|
|
50
|
+
const react_4 = require("@wix/headless-media/react");
|
|
51
|
+
const auto_sdk_bookings_services_1 = require("@wix/auto_sdk_bookings_services");
|
|
52
|
+
const LocationList = __importStar(require("../location/LocationList.js"));
|
|
14
53
|
// Note: Location components are used inside LocationList.LocationRepeater
|
|
15
54
|
// Users should import { Location } from '@wix/headless-bookings/react' for Location.Name, Location.Address, etc.
|
|
16
|
-
|
|
55
|
+
const StaffMemberListModule = __importStar(require("../staff-member/StaffMemberList.js"));
|
|
17
56
|
// Note: StaffMember components are used inside StaffMemberList.StaffMemberRepeater
|
|
18
57
|
// Users should import { StaffMember } from '@wix/headless-bookings/react' for StaffMember.Name, etc.
|
|
19
|
-
|
|
20
|
-
|
|
58
|
+
const ServiceMediaModule = __importStar(require("./ServiceMedia.js"));
|
|
59
|
+
exports.TestIds = {
|
|
21
60
|
serviceRoot: 'service-root',
|
|
22
61
|
serviceName: 'service-name',
|
|
23
62
|
serviceDescription: 'service-description',
|
|
@@ -109,7 +148,7 @@ export const TestIds = {
|
|
|
109
148
|
* }
|
|
110
149
|
* ```
|
|
111
150
|
*/
|
|
112
|
-
|
|
151
|
+
exports.Root = react_1.default.forwardRef((props, ref) => {
|
|
113
152
|
const { children, service, serviceId, serviceSlug, appId, asChild, className, ...attrs } = props;
|
|
114
153
|
// Build config - when no service config is provided, pass empty object
|
|
115
154
|
// to trigger "from booking signal" mode in ServiceService
|
|
@@ -119,9 +158,9 @@ export const Root = React.forwardRef((props, ref) => {
|
|
|
119
158
|
serviceSlug,
|
|
120
159
|
appId,
|
|
121
160
|
};
|
|
122
|
-
return (
|
|
161
|
+
return ((0, jsx_runtime_1.jsx)(CoreService.Root, { serviceServiceConfig: serviceServiceConfig, children: ({ selected, bookable }) => ((0, jsx_runtime_1.jsx)(CoreServiceMediaGallery.MediaGallery, { children: ({ mediaItems }) => ((0, jsx_runtime_1.jsx)(react_4.MediaGallery.Root, { mediaGalleryServiceConfig: { media: mediaItems }, children: (0, jsx_runtime_1.jsx)(react_2.AsChildSlot, { ref: ref, asChild: asChild, className: className, "data-testid": exports.TestIds.serviceRoot, "data-selected": selected, "data-bookable": bookable, customElement: children, customElementProps: { selected, bookable }, ...attrs, children: children }) })) })) }));
|
|
123
162
|
});
|
|
124
|
-
Root.displayName = 'Service.Root';
|
|
163
|
+
exports.Root.displayName = 'Service.Root';
|
|
125
164
|
/**
|
|
126
165
|
* Displays the service name with customizable rendering.
|
|
127
166
|
*
|
|
@@ -146,11 +185,11 @@ Root.displayName = 'Service.Root';
|
|
|
146
185
|
* </Service.Name>
|
|
147
186
|
* ```
|
|
148
187
|
*/
|
|
149
|
-
|
|
188
|
+
exports.Name = react_1.default.forwardRef((props, ref) => {
|
|
150
189
|
const { asChild, children, ...rest } = props;
|
|
151
|
-
return (
|
|
190
|
+
return ((0, jsx_runtime_1.jsx)(CoreService.Info, { children: ({ name }) => ((0, jsx_runtime_1.jsx)(react_2.AsChildSlot, { ref: ref, asChild: asChild, ...rest, "data-testid": exports.TestIds.serviceName, customElement: children, customElementProps: { name }, children: (0, jsx_runtime_1.jsx)("span", { children: name }) })) }));
|
|
152
191
|
});
|
|
153
|
-
Name.displayName = 'Service.Name';
|
|
192
|
+
exports.Name.displayName = 'Service.Name';
|
|
154
193
|
/**
|
|
155
194
|
* Displays the service description with customizable rendering.
|
|
156
195
|
*
|
|
@@ -166,11 +205,11 @@ Name.displayName = 'Service.Name';
|
|
|
166
205
|
* </Service.Description>
|
|
167
206
|
* ```
|
|
168
207
|
*/
|
|
169
|
-
|
|
208
|
+
exports.Description = react_1.default.forwardRef((props, ref) => {
|
|
170
209
|
const { asChild, children, ...rest } = props;
|
|
171
|
-
return (
|
|
210
|
+
return ((0, jsx_runtime_1.jsx)(CoreService.Info, { children: ({ description }) => ((0, jsx_runtime_1.jsx)(react_2.AsChildSlot, { ref: ref, asChild: asChild, ...rest, "data-testid": exports.TestIds.serviceDescription, customElement: children, customElementProps: { description }, children: (0, jsx_runtime_1.jsx)("div", { children: description }) })) }));
|
|
172
211
|
});
|
|
173
|
-
Description.displayName = 'Service.Description';
|
|
212
|
+
exports.Description.displayName = 'Service.Description';
|
|
174
213
|
/**
|
|
175
214
|
* Displays the service price using the Money component with customizable rendering.
|
|
176
215
|
* Renders different defaults based on rate type:
|
|
@@ -201,34 +240,34 @@ Description.displayName = 'Service.Description';
|
|
|
201
240
|
* </Service.Price>
|
|
202
241
|
* ```
|
|
203
242
|
*/
|
|
204
|
-
|
|
243
|
+
exports.Price = react_1.default.forwardRef((props, ref) => {
|
|
205
244
|
const { asChild, children, className } = props;
|
|
206
|
-
return (
|
|
245
|
+
return ((0, jsx_runtime_1.jsx)(CoreService.Price, { children: (childProps) => {
|
|
207
246
|
const { rateType, money, minPrice, maxPrice, priceDescription } = childProps;
|
|
208
247
|
// Default rendering based on rate type
|
|
209
248
|
const renderDefaultPrice = () => {
|
|
210
249
|
switch (rateType) {
|
|
211
|
-
case RateType.FIXED:
|
|
212
|
-
return money ? (
|
|
213
|
-
case RateType.VARIED:
|
|
250
|
+
case auto_sdk_bookings_services_1.RateType.FIXED:
|
|
251
|
+
return money ? ((0, jsx_runtime_1.jsx)(react_3.Money, { money: money, className: className })) : null;
|
|
252
|
+
case auto_sdk_bookings_services_1.RateType.VARIED:
|
|
214
253
|
if (minPrice && maxPrice) {
|
|
215
|
-
return (
|
|
254
|
+
return ((0, jsx_runtime_1.jsxs)("span", { className: className, "data-testid": exports.TestIds.servicePrice, children: [(0, jsx_runtime_1.jsx)(react_3.Money, { money: minPrice }), " - ", (0, jsx_runtime_1.jsx)(react_3.Money, { money: maxPrice })] }));
|
|
216
255
|
}
|
|
217
256
|
// Fallback to defaultPrice if min/max not available
|
|
218
|
-
return money ? (
|
|
219
|
-
case RateType.CUSTOM:
|
|
220
|
-
return priceDescription ? (
|
|
221
|
-
case RateType.NO_FEE:
|
|
222
|
-
return money ? (
|
|
257
|
+
return money ? ((0, jsx_runtime_1.jsx)(react_3.Money, { money: money, className: className })) : null;
|
|
258
|
+
case auto_sdk_bookings_services_1.RateType.CUSTOM:
|
|
259
|
+
return priceDescription ? ((0, jsx_runtime_1.jsx)("span", { className: className, "data-testid": exports.TestIds.servicePrice, children: priceDescription })) : null;
|
|
260
|
+
case auto_sdk_bookings_services_1.RateType.NO_FEE:
|
|
261
|
+
return money ? ((0, jsx_runtime_1.jsx)(react_3.Money, { money: money, className: className })) : null;
|
|
223
262
|
default:
|
|
224
263
|
// UNKNOWN_RATE_TYPE or undefined
|
|
225
264
|
return null;
|
|
226
265
|
}
|
|
227
266
|
};
|
|
228
|
-
return (
|
|
267
|
+
return ((0, jsx_runtime_1.jsx)(react_2.AsChildSlot, { ref: ref, asChild: asChild, className: className, "data-testid": exports.TestIds.servicePrice, customElement: children, customElementProps: childProps, children: renderDefaultPrice() }));
|
|
229
268
|
} }));
|
|
230
269
|
});
|
|
231
|
-
Price.displayName = 'Service.Price';
|
|
270
|
+
exports.Price.displayName = 'Service.Price';
|
|
232
271
|
/**
|
|
233
272
|
* Displays the service tagline with customizable rendering.
|
|
234
273
|
*
|
|
@@ -259,11 +298,11 @@ Price.displayName = 'Service.Price';
|
|
|
259
298
|
* </Service.Tagline>
|
|
260
299
|
* ```
|
|
261
300
|
*/
|
|
262
|
-
|
|
301
|
+
exports.Tagline = react_1.default.forwardRef((props, ref) => {
|
|
263
302
|
const { asChild, children, ...rest } = props;
|
|
264
|
-
return (
|
|
303
|
+
return ((0, jsx_runtime_1.jsx)(CoreService.Info, { children: ({ tagline }) => ((0, jsx_runtime_1.jsx)(react_2.AsChildSlot, { ref: ref, asChild: asChild, ...rest, "data-testid": exports.TestIds.serviceTagline, customElement: children, customElementProps: { tagline }, children: tagline ? (0, jsx_runtime_1.jsx)("p", { children: tagline }) : null })) }));
|
|
265
304
|
});
|
|
266
|
-
Tagline.displayName = 'Service.Tagline';
|
|
305
|
+
exports.Tagline.displayName = 'Service.Tagline';
|
|
267
306
|
/**
|
|
268
307
|
* Displays the service duration in minutes (raw number) with customizable rendering.
|
|
269
308
|
* Returns the duration as a numeric value representing minutes.
|
|
@@ -295,13 +334,13 @@ Tagline.displayName = 'Service.Tagline';
|
|
|
295
334
|
* </Service.DurationInMinutes>
|
|
296
335
|
* ```
|
|
297
336
|
*/
|
|
298
|
-
|
|
337
|
+
exports.DurationInMinutes = react_1.default.forwardRef((props, ref) => {
|
|
299
338
|
const { asChild, children, ...rest } = props;
|
|
300
|
-
return (
|
|
301
|
-
return (
|
|
339
|
+
return ((0, jsx_runtime_1.jsx)(CoreService.Info, { children: ({ duration }) => {
|
|
340
|
+
return ((0, jsx_runtime_1.jsx)(react_2.AsChildSlot, { ref: ref, asChild: asChild, ...rest, "data-testid": exports.TestIds.serviceDurationInMinutes, customElement: children, customElementProps: { duration }, children: duration ? (0, jsx_runtime_1.jsx)("span", { children: duration }) : null }));
|
|
302
341
|
} }));
|
|
303
342
|
});
|
|
304
|
-
DurationInMinutes.displayName = 'Service.DurationInMinutes';
|
|
343
|
+
exports.DurationInMinutes.displayName = 'Service.DurationInMinutes';
|
|
305
344
|
/**
|
|
306
345
|
* Displays the service type (APPOINTMENT, CLASS, COURSE, etc.) with customizable rendering.
|
|
307
346
|
*
|
|
@@ -335,11 +374,11 @@ DurationInMinutes.displayName = 'Service.DurationInMinutes';
|
|
|
335
374
|
* </Service.Type>
|
|
336
375
|
* ```
|
|
337
376
|
*/
|
|
338
|
-
|
|
377
|
+
exports.Type = react_1.default.forwardRef((props, ref) => {
|
|
339
378
|
const { asChild, children, ...rest } = props;
|
|
340
|
-
return (
|
|
379
|
+
return ((0, jsx_runtime_1.jsx)(CoreService.Info, { children: ({ type }) => ((0, jsx_runtime_1.jsx)(react_2.AsChildSlot, { ref: ref, asChild: asChild, ...rest, "data-testid": exports.TestIds.serviceType, customElement: children, customElementProps: { type }, children: type ? (0, jsx_runtime_1.jsx)("span", { children: type }) : null })) }));
|
|
341
380
|
});
|
|
342
|
-
Type.displayName = 'Service.Type';
|
|
381
|
+
exports.Type.displayName = 'Service.Type';
|
|
343
382
|
/**
|
|
344
383
|
* Displays the service category with customizable rendering.
|
|
345
384
|
*
|
|
@@ -375,11 +414,11 @@ Type.displayName = 'Service.Type';
|
|
|
375
414
|
* </Service.Category>
|
|
376
415
|
* ```
|
|
377
416
|
*/
|
|
378
|
-
|
|
417
|
+
exports.Category = react_1.default.forwardRef((props, ref) => {
|
|
379
418
|
const { asChild, children, ...rest } = props;
|
|
380
|
-
return (
|
|
419
|
+
return ((0, jsx_runtime_1.jsx)(CoreService.Info, { children: ({ category }) => ((0, jsx_runtime_1.jsx)(react_2.AsChildSlot, { ref: ref, asChild: asChild, ...rest, "data-testid": exports.TestIds.serviceCategory, customElement: children, customElementProps: { category }, children: category?.name ? (0, jsx_runtime_1.jsx)("span", { children: category.name }) : null })) }));
|
|
381
420
|
});
|
|
382
|
-
Category.displayName = 'Service.Category';
|
|
421
|
+
exports.Category.displayName = 'Service.Category';
|
|
383
422
|
/**
|
|
384
423
|
* Container for service locations list (Container Level).
|
|
385
424
|
* Follows the 3-level List/Options/Repeater pattern.
|
|
@@ -411,14 +450,14 @@ Category.displayName = 'Service.Category';
|
|
|
411
450
|
* </Service.Locations>
|
|
412
451
|
* ```
|
|
413
452
|
*/
|
|
414
|
-
const LocationsBase =
|
|
453
|
+
const LocationsBase = react_1.default.forwardRef((props, ref) => {
|
|
415
454
|
const { asChild, children, className, ...rest } = props;
|
|
416
|
-
return (
|
|
455
|
+
return ((0, jsx_runtime_1.jsx)(CoreService.Info, { children: ({ locations }) => {
|
|
417
456
|
// Container level: don't render if no locations
|
|
418
457
|
if (!locations || locations.length === 0) {
|
|
419
458
|
return null;
|
|
420
459
|
}
|
|
421
|
-
return (
|
|
460
|
+
return ((0, jsx_runtime_1.jsx)(LocationList.Root, { locationListConfig: { locations }, className: className, ref: ref, children: (0, jsx_runtime_1.jsx)(react_2.AsChildSlot, { ...rest, asChild: asChild, className: className, "data-testid": exports.TestIds.serviceLocations, customElement: children, children: (0, jsx_runtime_1.jsx)("div", { children: children }) }) }));
|
|
422
461
|
} }));
|
|
423
462
|
});
|
|
424
463
|
LocationsBase.displayName = 'Service.Locations';
|
|
@@ -435,11 +474,11 @@ LocationsBase.displayName = 'Service.Locations';
|
|
|
435
474
|
* </Service.Locations.List>
|
|
436
475
|
* ```
|
|
437
476
|
*/
|
|
438
|
-
|
|
477
|
+
exports.LocationsList = react_1.default.forwardRef((props, ref) => {
|
|
439
478
|
const { children, emptyState, className, ...otherProps } = props;
|
|
440
|
-
return (
|
|
479
|
+
return ((0, jsx_runtime_1.jsx)(LocationList.Locations, { ref: ref, emptyState: emptyState, className: className, ...otherProps, children: children }));
|
|
441
480
|
});
|
|
442
|
-
LocationsList.displayName = 'Service.Locations.List';
|
|
481
|
+
exports.LocationsList.displayName = 'Service.Locations.List';
|
|
443
482
|
/**
|
|
444
483
|
* Repeater component that renders Location.Root for each location.
|
|
445
484
|
* Internally delegates to LocationList.LocationRepeater.
|
|
@@ -464,11 +503,11 @@ LocationsList.displayName = 'Service.Locations.List';
|
|
|
464
503
|
* </Service.Locations.LocationRepeater>
|
|
465
504
|
* ```
|
|
466
505
|
*/
|
|
467
|
-
|
|
506
|
+
exports.LocationRepeater = react_1.default.forwardRef((props, ref) => {
|
|
468
507
|
const { children } = props;
|
|
469
|
-
return (
|
|
508
|
+
return ((0, jsx_runtime_1.jsx)(LocationList.LocationRepeater, { ref: ref, children: children }));
|
|
470
509
|
});
|
|
471
|
-
LocationRepeater.displayName = 'Service.Locations.LocationRepeater';
|
|
510
|
+
exports.LocationRepeater.displayName = 'Service.Locations.LocationRepeater';
|
|
472
511
|
/**
|
|
473
512
|
* Container for service staff members list (Container Level).
|
|
474
513
|
* Follows the 3-level List/Options/Repeater pattern.
|
|
@@ -499,14 +538,14 @@ LocationRepeater.displayName = 'Service.Locations.LocationRepeater';
|
|
|
499
538
|
* </Service.StaffMembers>
|
|
500
539
|
* ```
|
|
501
540
|
*/
|
|
502
|
-
const StaffMembersBase =
|
|
541
|
+
const StaffMembersBase = react_1.default.forwardRef((props, ref) => {
|
|
503
542
|
const { asChild, children, className, ...rest } = props;
|
|
504
|
-
return (
|
|
543
|
+
return ((0, jsx_runtime_1.jsx)(CoreService.Info, { children: ({ staff }) => {
|
|
505
544
|
// Container level: don't render if no staff members
|
|
506
545
|
if (!staff || staff.length === 0) {
|
|
507
546
|
return null;
|
|
508
547
|
}
|
|
509
|
-
return (
|
|
548
|
+
return ((0, jsx_runtime_1.jsx)(StaffMemberListModule.Root, { staffMemberListConfig: { staffMembers: staff }, className: className, ref: ref, children: (0, jsx_runtime_1.jsx)(react_2.AsChildSlot, { ...rest, asChild: asChild, className: className, "data-testid": exports.TestIds.serviceStaffMembers, customElement: children, children: (0, jsx_runtime_1.jsx)("div", { children: children }) }) }));
|
|
510
549
|
} }));
|
|
511
550
|
});
|
|
512
551
|
StaffMembersBase.displayName = 'Service.StaffMembers';
|
|
@@ -523,11 +562,11 @@ StaffMembersBase.displayName = 'Service.StaffMembers';
|
|
|
523
562
|
* </Service.StaffMembers.List>
|
|
524
563
|
* ```
|
|
525
564
|
*/
|
|
526
|
-
|
|
565
|
+
exports.StaffMembersList = react_1.default.forwardRef((props, ref) => {
|
|
527
566
|
const { children, emptyState, className, ...otherProps } = props;
|
|
528
|
-
return (
|
|
567
|
+
return ((0, jsx_runtime_1.jsx)(StaffMemberListModule.StaffMembers, { ref: ref, emptyState: emptyState, className: className, ...otherProps, children: children }));
|
|
529
568
|
});
|
|
530
|
-
StaffMembersList.displayName = 'Service.StaffMembers.List';
|
|
569
|
+
exports.StaffMembersList.displayName = 'Service.StaffMembers.List';
|
|
531
570
|
/**
|
|
532
571
|
* Repeater component that renders StaffMember.Root for each staff member.
|
|
533
572
|
* Internally delegates to StaffMemberList.StaffMemberRepeater.
|
|
@@ -549,11 +588,11 @@ StaffMembersList.displayName = 'Service.StaffMembers.List';
|
|
|
549
588
|
* </Service.StaffMembers.StaffMemberRepeater>
|
|
550
589
|
* ```
|
|
551
590
|
*/
|
|
552
|
-
|
|
591
|
+
exports.StaffMemberRepeater = react_1.default.forwardRef((props, ref) => {
|
|
553
592
|
const { children } = props;
|
|
554
|
-
return (
|
|
593
|
+
return ((0, jsx_runtime_1.jsx)(StaffMemberListModule.StaffMemberRepeater, { ref: ref, children: children }));
|
|
555
594
|
});
|
|
556
|
-
StaffMemberRepeater.displayName = 'Service.StaffMembers.StaffMemberRepeater';
|
|
595
|
+
exports.StaffMemberRepeater.displayName = 'Service.StaffMembers.StaffMemberRepeater';
|
|
557
596
|
/**
|
|
558
597
|
* Provides direct access to service object. Should be used only in rare cases.
|
|
559
598
|
*
|
|
@@ -577,15 +616,15 @@ StaffMemberRepeater.displayName = 'Service.StaffMembers.StaffMemberRepeater';
|
|
|
577
616
|
* </Service.Raw>
|
|
578
617
|
* ```
|
|
579
618
|
*/
|
|
580
|
-
|
|
619
|
+
exports.Raw = react_1.default.forwardRef((props, ref) => {
|
|
581
620
|
const { asChild, children, className } = props;
|
|
582
|
-
return (
|
|
621
|
+
return ((0, jsx_runtime_1.jsx)(CoreService.Service, { children: ({ service, isLoading, error }) => ((0, jsx_runtime_1.jsx)(react_2.AsChildSlot, { ref: ref, asChild: asChild, className: className, "data-testid": exports.TestIds.serviceRaw, customElement: children, customElementProps: { service, isLoading, error }, children: children })) }));
|
|
583
622
|
});
|
|
584
|
-
Raw.displayName = 'Service.Raw';
|
|
623
|
+
exports.Raw.displayName = 'Service.Raw';
|
|
585
624
|
/**
|
|
586
625
|
* Actions namespace with individual action components
|
|
587
626
|
*/
|
|
588
|
-
|
|
627
|
+
var Actions;
|
|
589
628
|
(function (Actions) {
|
|
590
629
|
/**
|
|
591
630
|
* Select action component - replaces selection with only this service.
|
|
@@ -616,21 +655,21 @@ export var Actions;
|
|
|
616
655
|
* </Service.Actions.Select>
|
|
617
656
|
* ```
|
|
618
657
|
*/
|
|
619
|
-
Actions.Select =
|
|
658
|
+
Actions.Select = react_1.default.forwardRef((props, ref) => {
|
|
620
659
|
const { asChild, children, className, label, onClick, ...rest } = props;
|
|
621
|
-
return (
|
|
660
|
+
return ((0, jsx_runtime_1.jsx)(CoreService.Actions, { children: ({ select, rawService, bookable, selected, requiresAvailability, }) => {
|
|
622
661
|
const handleClick = () => {
|
|
623
662
|
select();
|
|
624
663
|
onClick?.(rawService);
|
|
625
664
|
};
|
|
626
|
-
return (
|
|
665
|
+
return ((0, jsx_runtime_1.jsx)(react_2.AsChildSlot, { ref: ref, asChild: asChild, ...rest, className: className, disabled: !bookable, "data-testid": exports.TestIds.serviceActionSelect, "data-selected": selected, "data-bookable": bookable, "data-requires-availability": requiresAvailability, customElement: children, customElementProps: {
|
|
627
666
|
onClick: handleClick,
|
|
628
667
|
disabled: !bookable,
|
|
629
668
|
selected,
|
|
630
669
|
bookable,
|
|
631
670
|
requiresAvailability,
|
|
632
671
|
service: rawService,
|
|
633
|
-
}, children:
|
|
672
|
+
}, children: (0, jsx_runtime_1.jsx)("button", { onClick: handleClick, children: children || label }) }));
|
|
634
673
|
} }));
|
|
635
674
|
});
|
|
636
675
|
Actions.Select.displayName = 'Service.Actions.Select';
|
|
@@ -663,23 +702,23 @@ export var Actions;
|
|
|
663
702
|
* </Service.Actions.Add>
|
|
664
703
|
* ```
|
|
665
704
|
*/
|
|
666
|
-
Actions.Add =
|
|
705
|
+
Actions.Add = react_1.default.forwardRef((props, ref) => {
|
|
667
706
|
const { asChild, children, className, label, onClick, ...rest } = props;
|
|
668
|
-
return (
|
|
707
|
+
return ((0, jsx_runtime_1.jsx)(CoreService.Actions, { children: ({ add, rawService, bookable, selected, requiresAvailability }) => {
|
|
669
708
|
// Disabled when already selected (can't add again) or not bookable
|
|
670
709
|
const isDisabled = selected || !bookable;
|
|
671
710
|
const handleClick = () => {
|
|
672
711
|
add();
|
|
673
712
|
onClick?.(rawService);
|
|
674
713
|
};
|
|
675
|
-
return (
|
|
714
|
+
return ((0, jsx_runtime_1.jsx)(react_2.AsChildSlot, { ref: ref, asChild: asChild, ...rest, className: className, disabled: isDisabled, "data-testid": exports.TestIds.serviceActionAdd, "data-selected": selected, "data-bookable": bookable, "data-requires-availability": requiresAvailability, customElement: children, customElementProps: {
|
|
676
715
|
onClick: handleClick,
|
|
677
716
|
disabled: isDisabled,
|
|
678
717
|
selected,
|
|
679
718
|
bookable,
|
|
680
719
|
requiresAvailability,
|
|
681
720
|
service: rawService,
|
|
682
|
-
}, children:
|
|
721
|
+
}, children: (0, jsx_runtime_1.jsx)("button", { onClick: handleClick, children: children || label }) }));
|
|
683
722
|
} }));
|
|
684
723
|
});
|
|
685
724
|
Actions.Add.displayName = 'Service.Actions.Add';
|
|
@@ -712,27 +751,27 @@ export var Actions;
|
|
|
712
751
|
* </Service.Actions.Remove>
|
|
713
752
|
* ```
|
|
714
753
|
*/
|
|
715
|
-
Actions.Remove =
|
|
754
|
+
Actions.Remove = react_1.default.forwardRef((props, ref) => {
|
|
716
755
|
const { asChild, children, className, label, onClick, ...rest } = props;
|
|
717
|
-
return (
|
|
756
|
+
return ((0, jsx_runtime_1.jsx)(CoreService.Actions, { children: ({ remove, rawService, bookable, selected, requiresAvailability, }) => {
|
|
718
757
|
// Disabled when not selected (nothing to remove) or not bookable
|
|
719
758
|
const isDisabled = !selected || !bookable;
|
|
720
759
|
const handleClick = () => {
|
|
721
760
|
remove();
|
|
722
761
|
onClick?.(rawService);
|
|
723
762
|
};
|
|
724
|
-
return (
|
|
763
|
+
return ((0, jsx_runtime_1.jsx)(react_2.AsChildSlot, { ref: ref, asChild: asChild, ...rest, className: className, disabled: isDisabled, "data-testid": exports.TestIds.serviceActionRemove, "data-selected": selected, "data-bookable": bookable, "data-requires-availability": requiresAvailability, customElement: children, customElementProps: {
|
|
725
764
|
onClick: handleClick,
|
|
726
765
|
disabled: isDisabled,
|
|
727
766
|
selected,
|
|
728
767
|
bookable,
|
|
729
768
|
requiresAvailability,
|
|
730
769
|
service: rawService,
|
|
731
|
-
}, children:
|
|
770
|
+
}, children: (0, jsx_runtime_1.jsx)("button", { onClick: handleClick, children: children || label }) }));
|
|
732
771
|
} }));
|
|
733
772
|
});
|
|
734
773
|
Actions.Remove.displayName = 'Service.Actions.Remove';
|
|
735
|
-
})(Actions || (Actions = {}));
|
|
774
|
+
})(Actions || (exports.Actions = Actions = {}));
|
|
736
775
|
/**
|
|
737
776
|
* Displays latestCancellationInMinutes as a raw number.
|
|
738
777
|
* Headless component - contains zero formatting logic.
|
|
@@ -764,9 +803,9 @@ export var Actions;
|
|
|
764
803
|
* </Service.Policy.LatestCancellationInMinutes>
|
|
765
804
|
* ```
|
|
766
805
|
*/
|
|
767
|
-
|
|
806
|
+
exports.PolicyLatestCancellationInMinutes = react_1.default.forwardRef((props, ref) => {
|
|
768
807
|
const { asChild, children, className } = props;
|
|
769
|
-
return (
|
|
808
|
+
return ((0, jsx_runtime_1.jsx)(CoreService.Policy, { children: ({ cancellationPolicyEnabled, limitLatestCancellationEnabled, latestCancellationInMinutes, }) => {
|
|
770
809
|
// Prepare data for asChild pattern - ALWAYS pass to consumer
|
|
771
810
|
const childProps = {
|
|
772
811
|
cancellationPolicyEnabled,
|
|
@@ -775,11 +814,11 @@ export const PolicyLatestCancellationInMinutes = React.forwardRef((props, ref) =
|
|
|
775
814
|
};
|
|
776
815
|
// ALWAYS return AsChildSlot (never return null early)
|
|
777
816
|
// This allows consumer to override null behavior via asChild
|
|
778
|
-
return (
|
|
779
|
-
latestCancellationInMinutes !== undefined ? (
|
|
817
|
+
return ((0, jsx_runtime_1.jsx)(react_2.AsChildSlot, { ref: ref, asChild: asChild, className: className, "data-testid": exports.TestIds.servicePolicyLatestCancellationInMinutes, customElement: children, customElementProps: childProps, children: cancellationPolicyEnabled &&
|
|
818
|
+
latestCancellationInMinutes !== undefined ? ((0, jsx_runtime_1.jsx)("span", { children: latestCancellationInMinutes })) : null }));
|
|
780
819
|
} }));
|
|
781
820
|
});
|
|
782
|
-
PolicyLatestCancellationInMinutes.displayName =
|
|
821
|
+
exports.PolicyLatestCancellationInMinutes.displayName =
|
|
783
822
|
'Service.Policy.LatestCancellationInMinutes';
|
|
784
823
|
/**
|
|
785
824
|
* Displays latestBookingInMinutes as a raw number.
|
|
@@ -794,18 +833,18 @@ PolicyLatestCancellationInMinutes.displayName =
|
|
|
794
833
|
* <Service.Policy.LatestBookingInMinutes className="text-foreground" />
|
|
795
834
|
* ```
|
|
796
835
|
*/
|
|
797
|
-
|
|
836
|
+
exports.PolicyLatestBookingInMinutes = react_1.default.forwardRef((props, ref) => {
|
|
798
837
|
const { asChild, children, className } = props;
|
|
799
|
-
return (
|
|
838
|
+
return ((0, jsx_runtime_1.jsx)(CoreService.Policy, { children: ({ latestBookingPolicyEnabled, latestBookingInMinutes }) => {
|
|
800
839
|
const childProps = {
|
|
801
840
|
latestBookingPolicyEnabled,
|
|
802
841
|
latestBookingInMinutes,
|
|
803
842
|
};
|
|
804
|
-
return (
|
|
805
|
-
latestBookingInMinutes !== undefined ? (
|
|
843
|
+
return ((0, jsx_runtime_1.jsx)(react_2.AsChildSlot, { ref: ref, asChild: asChild, className: className, "data-testid": exports.TestIds.servicePolicyLatestBookingInMinutes, customElement: children, customElementProps: childProps, children: latestBookingPolicyEnabled &&
|
|
844
|
+
latestBookingInMinutes !== undefined ? ((0, jsx_runtime_1.jsx)("span", { children: latestBookingInMinutes })) : null }));
|
|
806
845
|
} }));
|
|
807
846
|
});
|
|
808
|
-
PolicyLatestBookingInMinutes.displayName =
|
|
847
|
+
exports.PolicyLatestBookingInMinutes.displayName =
|
|
809
848
|
'Service.Policy.LatestBookingInMinutes';
|
|
810
849
|
/**
|
|
811
850
|
* Displays earliestBookingInMinutes as a raw number.
|
|
@@ -820,18 +859,18 @@ PolicyLatestBookingInMinutes.displayName =
|
|
|
820
859
|
* <Service.Policy.EarliestBookingInMinutes className="text-foreground" />
|
|
821
860
|
* ```
|
|
822
861
|
*/
|
|
823
|
-
|
|
862
|
+
exports.PolicyEarliestBookingInMinutes = react_1.default.forwardRef((props, ref) => {
|
|
824
863
|
const { asChild, children, className } = props;
|
|
825
|
-
return (
|
|
864
|
+
return ((0, jsx_runtime_1.jsx)(CoreService.Policy, { children: ({ earliestBookingPolicyEnabled, earliestBookingInMinutes }) => {
|
|
826
865
|
const childProps = {
|
|
827
866
|
earliestBookingPolicyEnabled,
|
|
828
867
|
earliestBookingInMinutes,
|
|
829
868
|
};
|
|
830
|
-
return (
|
|
831
|
-
earliestBookingInMinutes !== undefined ? (
|
|
869
|
+
return ((0, jsx_runtime_1.jsx)(react_2.AsChildSlot, { ref: ref, asChild: asChild, className: className, "data-testid": exports.TestIds.servicePolicyEarliestBookingInMinutes, customElement: children, customElementProps: childProps, children: earliestBookingPolicyEnabled &&
|
|
870
|
+
earliestBookingInMinutes !== undefined ? ((0, jsx_runtime_1.jsx)("span", { children: earliestBookingInMinutes })) : null }));
|
|
832
871
|
} }));
|
|
833
872
|
});
|
|
834
|
-
PolicyEarliestBookingInMinutes.displayName =
|
|
873
|
+
exports.PolicyEarliestBookingInMinutes.displayName =
|
|
835
874
|
'Service.Policy.EarliestBookingInMinutes';
|
|
836
875
|
/**
|
|
837
876
|
* Displays latestRescheduleInMinutes as a raw number.
|
|
@@ -846,19 +885,19 @@ PolicyEarliestBookingInMinutes.displayName =
|
|
|
846
885
|
* <Service.Policy.LatestRescheduleInMinutes className="text-foreground" />
|
|
847
886
|
* ```
|
|
848
887
|
*/
|
|
849
|
-
|
|
888
|
+
exports.PolicyLatestRescheduleInMinutes = react_1.default.forwardRef((props, ref) => {
|
|
850
889
|
const { asChild, children, className } = props;
|
|
851
|
-
return (
|
|
890
|
+
return ((0, jsx_runtime_1.jsx)(CoreService.Policy, { children: ({ reschedulePolicyEnabled, limitLatestRescheduleEnabled, latestRescheduleInMinutes, }) => {
|
|
852
891
|
const childProps = {
|
|
853
892
|
reschedulePolicyEnabled,
|
|
854
893
|
limitLatestRescheduleEnabled,
|
|
855
894
|
latestRescheduleInMinutes,
|
|
856
895
|
};
|
|
857
|
-
return (
|
|
858
|
-
latestRescheduleInMinutes !== undefined ? (
|
|
896
|
+
return ((0, jsx_runtime_1.jsx)(react_2.AsChildSlot, { ref: ref, asChild: asChild, className: className, "data-testid": exports.TestIds.servicePolicyLatestRescheduleInMinutes, customElement: children, customElementProps: childProps, children: reschedulePolicyEnabled &&
|
|
897
|
+
latestRescheduleInMinutes !== undefined ? ((0, jsx_runtime_1.jsx)("span", { children: latestRescheduleInMinutes })) : null }));
|
|
859
898
|
} }));
|
|
860
899
|
});
|
|
861
|
-
PolicyLatestRescheduleInMinutes.displayName =
|
|
900
|
+
exports.PolicyLatestRescheduleInMinutes.displayName =
|
|
862
901
|
'Service.Policy.LatestRescheduleInMinutes';
|
|
863
902
|
/**
|
|
864
903
|
* Displays waitlist capacity as a raw number.
|
|
@@ -873,17 +912,17 @@ PolicyLatestRescheduleInMinutes.displayName =
|
|
|
873
912
|
* <Service.Policy.WaitlistCapacity className="text-foreground" />
|
|
874
913
|
* ```
|
|
875
914
|
*/
|
|
876
|
-
|
|
915
|
+
exports.PolicyWaitlistCapacity = react_1.default.forwardRef((props, ref) => {
|
|
877
916
|
const { asChild, children, className } = props;
|
|
878
|
-
return (
|
|
917
|
+
return ((0, jsx_runtime_1.jsx)(CoreService.Policy, { children: ({ waitlistPolicyEnabled, waitlistCapacity }) => {
|
|
879
918
|
const childProps = {
|
|
880
919
|
waitlistPolicyEnabled,
|
|
881
920
|
waitlistCapacity,
|
|
882
921
|
};
|
|
883
|
-
return (
|
|
922
|
+
return ((0, jsx_runtime_1.jsx)(react_2.AsChildSlot, { ref: ref, asChild: asChild, className: className, "data-testid": exports.TestIds.servicePolicyWaitlistCapacity, customElement: children, customElementProps: childProps, children: waitlistPolicyEnabled && waitlistCapacity !== undefined ? ((0, jsx_runtime_1.jsx)("span", { children: waitlistCapacity })) : null }));
|
|
884
923
|
} }));
|
|
885
924
|
});
|
|
886
|
-
PolicyWaitlistCapacity.displayName = 'Service.Policy.WaitlistCapacity';
|
|
925
|
+
exports.PolicyWaitlistCapacity.displayName = 'Service.Policy.WaitlistCapacity';
|
|
887
926
|
/**
|
|
888
927
|
* Displays whether booking after start is enabled.
|
|
889
928
|
* Headless component - contains zero formatting logic.
|
|
@@ -897,16 +936,16 @@ PolicyWaitlistCapacity.displayName = 'Service.Policy.WaitlistCapacity';
|
|
|
897
936
|
* <Service.Policy.BookAfterStartEnabled className="text-foreground" />
|
|
898
937
|
* ```
|
|
899
938
|
*/
|
|
900
|
-
|
|
939
|
+
exports.PolicyBookAfterStartEnabled = react_1.default.forwardRef((props, ref) => {
|
|
901
940
|
const { asChild, children, className } = props;
|
|
902
|
-
return (
|
|
941
|
+
return ((0, jsx_runtime_1.jsx)(CoreService.Policy, { children: ({ bookAfterStartEnabled }) => {
|
|
903
942
|
const childProps = {
|
|
904
943
|
bookAfterStartEnabled,
|
|
905
944
|
};
|
|
906
|
-
return (
|
|
945
|
+
return ((0, jsx_runtime_1.jsx)(react_2.AsChildSlot, { ref: ref, asChild: asChild, className: className, "data-testid": exports.TestIds.servicePolicyBookAfterStartEnabled, customElement: children, customElementProps: childProps, children: bookAfterStartEnabled ? ((0, jsx_runtime_1.jsx)("span", { children: bookAfterStartEnabled ? 'true' : 'false' })) : null }));
|
|
907
946
|
} }));
|
|
908
947
|
});
|
|
909
|
-
PolicyBookAfterStartEnabled.displayName =
|
|
948
|
+
exports.PolicyBookAfterStartEnabled.displayName =
|
|
910
949
|
'Service.Policy.BookAfterStartEnabled';
|
|
911
950
|
/**
|
|
912
951
|
* Displays maximum participants per booking as a raw number.
|
|
@@ -921,30 +960,30 @@ PolicyBookAfterStartEnabled.displayName =
|
|
|
921
960
|
* <Service.Policy.MaxParticipantsPerBooking className="text-foreground" />
|
|
922
961
|
* ```
|
|
923
962
|
*/
|
|
924
|
-
|
|
963
|
+
exports.PolicyMaxParticipantsPerBooking = react_1.default.forwardRef((props, ref) => {
|
|
925
964
|
const { asChild, children, className } = props;
|
|
926
|
-
return (
|
|
965
|
+
return ((0, jsx_runtime_1.jsx)(CoreService.Policy, { children: ({ maxParticipantsPerBooking }) => {
|
|
927
966
|
const childProps = {
|
|
928
967
|
maxParticipantsPerBooking,
|
|
929
968
|
};
|
|
930
|
-
return (
|
|
969
|
+
return ((0, jsx_runtime_1.jsx)(react_2.AsChildSlot, { ref: ref, asChild: asChild, className: className, "data-testid": exports.TestIds.servicePolicyMaxParticipantsPerBooking, customElement: children, customElementProps: childProps, children: maxParticipantsPerBooking !== undefined ? ((0, jsx_runtime_1.jsx)("span", { children: maxParticipantsPerBooking })) : null }));
|
|
931
970
|
} }));
|
|
932
971
|
});
|
|
933
|
-
PolicyMaxParticipantsPerBooking.displayName =
|
|
972
|
+
exports.PolicyMaxParticipantsPerBooking.displayName =
|
|
934
973
|
'Service.Policy.MaxParticipantsPerBooking';
|
|
935
974
|
/**
|
|
936
975
|
* Policy namespace containing all policy sub-components
|
|
937
976
|
*/
|
|
938
|
-
|
|
977
|
+
var Policy;
|
|
939
978
|
(function (Policy) {
|
|
940
|
-
Policy.LatestCancellationInMinutes = PolicyLatestCancellationInMinutes;
|
|
941
|
-
Policy.LatestBookingInMinutes = PolicyLatestBookingInMinutes;
|
|
942
|
-
Policy.EarliestBookingInMinutes = PolicyEarliestBookingInMinutes;
|
|
943
|
-
Policy.LatestRescheduleInMinutes = PolicyLatestRescheduleInMinutes;
|
|
944
|
-
Policy.WaitlistCapacity = PolicyWaitlistCapacity;
|
|
945
|
-
Policy.BookAfterStartEnabled = PolicyBookAfterStartEnabled;
|
|
946
|
-
Policy.MaxParticipantsPerBooking = PolicyMaxParticipantsPerBooking;
|
|
947
|
-
})(Policy || (Policy = {}));
|
|
979
|
+
Policy.LatestCancellationInMinutes = exports.PolicyLatestCancellationInMinutes;
|
|
980
|
+
Policy.LatestBookingInMinutes = exports.PolicyLatestBookingInMinutes;
|
|
981
|
+
Policy.EarliestBookingInMinutes = exports.PolicyEarliestBookingInMinutes;
|
|
982
|
+
Policy.LatestRescheduleInMinutes = exports.PolicyLatestRescheduleInMinutes;
|
|
983
|
+
Policy.WaitlistCapacity = exports.PolicyWaitlistCapacity;
|
|
984
|
+
Policy.BookAfterStartEnabled = exports.PolicyBookAfterStartEnabled;
|
|
985
|
+
Policy.MaxParticipantsPerBooking = exports.PolicyMaxParticipantsPerBooking;
|
|
986
|
+
})(Policy || (exports.Policy = Policy = {}));
|
|
948
987
|
/**
|
|
949
988
|
* Displays the first session start date as a raw Date value.
|
|
950
989
|
* Headless component - contains zero formatting logic.
|
|
@@ -965,17 +1004,17 @@ export var Policy;
|
|
|
965
1004
|
* </Service.Schedule.FirstSessionStart>
|
|
966
1005
|
* ```
|
|
967
1006
|
*/
|
|
968
|
-
|
|
1007
|
+
exports.ScheduleFirstSessionStart = react_1.default.forwardRef((props, ref) => {
|
|
969
1008
|
const { asChild, children, className } = props;
|
|
970
|
-
return (
|
|
1009
|
+
return ((0, jsx_runtime_1.jsx)(CoreService.Schedule, { children: ({ schedule }) => {
|
|
971
1010
|
const firstSessionStart = schedule?.firstSessionStart;
|
|
972
1011
|
const childProps = {
|
|
973
1012
|
firstSessionStart,
|
|
974
1013
|
};
|
|
975
|
-
return (
|
|
1014
|
+
return ((0, jsx_runtime_1.jsx)(react_2.AsChildSlot, { ref: ref, asChild: asChild, className: className, "data-testid": exports.TestIds.serviceScheduleFirstSessionStart, customElement: children, customElementProps: childProps, children: firstSessionStart ? ((0, jsx_runtime_1.jsx)("span", { children: firstSessionStart.toISOString() })) : null }));
|
|
976
1015
|
} }));
|
|
977
1016
|
});
|
|
978
|
-
ScheduleFirstSessionStart.displayName = 'Service.Schedule.FirstSessionStart';
|
|
1017
|
+
exports.ScheduleFirstSessionStart.displayName = 'Service.Schedule.FirstSessionStart';
|
|
979
1018
|
/**
|
|
980
1019
|
* Displays the last session end date as a raw Date value.
|
|
981
1020
|
* Headless component - contains zero formatting logic.
|
|
@@ -996,17 +1035,17 @@ ScheduleFirstSessionStart.displayName = 'Service.Schedule.FirstSessionStart';
|
|
|
996
1035
|
* </Service.Schedule.LastSessionEnd>
|
|
997
1036
|
* ```
|
|
998
1037
|
*/
|
|
999
|
-
|
|
1038
|
+
exports.ScheduleLastSessionEnd = react_1.default.forwardRef((props, ref) => {
|
|
1000
1039
|
const { asChild, children, className } = props;
|
|
1001
|
-
return (
|
|
1040
|
+
return ((0, jsx_runtime_1.jsx)(CoreService.Schedule, { children: ({ schedule }) => {
|
|
1002
1041
|
const lastSessionEnd = schedule?.lastSessionEnd;
|
|
1003
1042
|
const childProps = {
|
|
1004
1043
|
lastSessionEnd,
|
|
1005
1044
|
};
|
|
1006
|
-
return (
|
|
1045
|
+
return ((0, jsx_runtime_1.jsx)(react_2.AsChildSlot, { ref: ref, asChild: asChild, className: className, "data-testid": exports.TestIds.serviceScheduleLastSessionEnd, customElement: children, customElementProps: childProps, children: lastSessionEnd ? ((0, jsx_runtime_1.jsx)("span", { children: lastSessionEnd.toISOString() })) : null }));
|
|
1007
1046
|
} }));
|
|
1008
1047
|
});
|
|
1009
|
-
ScheduleLastSessionEnd.displayName = 'Service.Schedule.LastSessionEnd';
|
|
1048
|
+
exports.ScheduleLastSessionEnd.displayName = 'Service.Schedule.LastSessionEnd';
|
|
1010
1049
|
/**
|
|
1011
1050
|
* Displays the session duration in minutes as a raw number.
|
|
1012
1051
|
* Headless component - contains zero formatting logic.
|
|
@@ -1027,26 +1066,26 @@ ScheduleLastSessionEnd.displayName = 'Service.Schedule.LastSessionEnd';
|
|
|
1027
1066
|
* </Service.Schedule.SessionDuration>
|
|
1028
1067
|
* ```
|
|
1029
1068
|
*/
|
|
1030
|
-
|
|
1069
|
+
exports.ScheduleSessionDuration = react_1.default.forwardRef((props, ref) => {
|
|
1031
1070
|
const { asChild, children, className } = props;
|
|
1032
|
-
return (
|
|
1071
|
+
return ((0, jsx_runtime_1.jsx)(CoreService.Schedule, { children: ({ schedule }) => {
|
|
1033
1072
|
const sessionDuration = schedule?.availabilityConstraints?.sessionDurations?.[0];
|
|
1034
1073
|
const childProps = {
|
|
1035
1074
|
sessionDuration,
|
|
1036
1075
|
};
|
|
1037
|
-
return (
|
|
1076
|
+
return ((0, jsx_runtime_1.jsx)(react_2.AsChildSlot, { ref: ref, asChild: asChild, className: className, "data-testid": exports.TestIds.serviceScheduleSessionDuration, customElement: children, customElementProps: childProps, children: sessionDuration !== undefined ? ((0, jsx_runtime_1.jsx)("span", { children: sessionDuration })) : null }));
|
|
1038
1077
|
} }));
|
|
1039
1078
|
});
|
|
1040
|
-
ScheduleSessionDuration.displayName = 'Service.Schedule.SessionDuration';
|
|
1079
|
+
exports.ScheduleSessionDuration.displayName = 'Service.Schedule.SessionDuration';
|
|
1041
1080
|
/**
|
|
1042
1081
|
* Schedule namespace containing all schedule sub-components
|
|
1043
1082
|
*/
|
|
1044
|
-
|
|
1083
|
+
var Schedule;
|
|
1045
1084
|
(function (Schedule) {
|
|
1046
|
-
Schedule.FirstSessionStart = ScheduleFirstSessionStart;
|
|
1047
|
-
Schedule.LastSessionEnd = ScheduleLastSessionEnd;
|
|
1048
|
-
Schedule.SessionDuration = ScheduleSessionDuration;
|
|
1049
|
-
})(Schedule || (Schedule = {}));
|
|
1085
|
+
Schedule.FirstSessionStart = exports.ScheduleFirstSessionStart;
|
|
1086
|
+
Schedule.LastSessionEnd = exports.ScheduleLastSessionEnd;
|
|
1087
|
+
Schedule.SessionDuration = exports.ScheduleSessionDuration;
|
|
1088
|
+
})(Schedule || (exports.Schedule = Schedule = {}));
|
|
1050
1089
|
/**
|
|
1051
1090
|
* Displays the service default capacity with customizable rendering.
|
|
1052
1091
|
* Only renders for CLASS or COURSE service types.
|
|
@@ -1065,14 +1104,14 @@ export var Schedule;
|
|
|
1065
1104
|
* </Service.DefaultCapacity>
|
|
1066
1105
|
* ```
|
|
1067
1106
|
*/
|
|
1068
|
-
|
|
1107
|
+
exports.DefaultCapacity = react_1.default.forwardRef((props, ref) => {
|
|
1069
1108
|
const { asChild, children, ...rest } = props;
|
|
1070
|
-
return (
|
|
1109
|
+
return ((0, jsx_runtime_1.jsx)(CoreService.Info, { children: ({ type, defaultCapacity }) => {
|
|
1071
1110
|
const isClassOrCourse = type === 'CLASS' || type === 'COURSE';
|
|
1072
|
-
return (
|
|
1111
|
+
return ((0, jsx_runtime_1.jsx)(react_2.AsChildSlot, { ref: ref, asChild: asChild, ...rest, "data-testid": exports.TestIds.serviceDefaultCapacity, customElement: children, customElementProps: { defaultCapacity, isClassOrCourse }, children: isClassOrCourse && defaultCapacity ? ((0, jsx_runtime_1.jsxs)("span", { children: ["Max ", defaultCapacity, " participants"] })) : null }));
|
|
1073
1112
|
} }));
|
|
1074
1113
|
});
|
|
1075
|
-
DefaultCapacity.displayName = 'Service.DefaultCapacity';
|
|
1114
|
+
exports.DefaultCapacity.displayName = 'Service.DefaultCapacity';
|
|
1076
1115
|
/**
|
|
1077
1116
|
* Displays whether the service is available online (conferencing enabled).
|
|
1078
1117
|
* Headless component - contains zero formatting logic.
|
|
@@ -1096,26 +1135,26 @@ DefaultCapacity.displayName = 'Service.DefaultCapacity';
|
|
|
1096
1135
|
* </Service.AvailableOnline>
|
|
1097
1136
|
* ```
|
|
1098
1137
|
*/
|
|
1099
|
-
|
|
1138
|
+
exports.AvailableOnline = react_1.default.forwardRef((props, ref) => {
|
|
1100
1139
|
const { asChild, children, label, ...rest } = props;
|
|
1101
|
-
return (
|
|
1140
|
+
return ((0, jsx_runtime_1.jsx)(CoreService.Service, { children: ({ service }) => {
|
|
1102
1141
|
const availableOnline = service.conferencing?.enabled ?? false;
|
|
1103
|
-
return (
|
|
1142
|
+
return ((0, jsx_runtime_1.jsx)(react_2.AsChildSlot, { ref: ref, asChild: asChild, ...rest, "data-testid": exports.TestIds.serviceAvailableOnline, customElement: children, customElementProps: { availableOnline }, children: availableOnline && label ? (0, jsx_runtime_1.jsx)("span", { children: label }) : null }));
|
|
1104
1143
|
} }));
|
|
1105
1144
|
});
|
|
1106
|
-
AvailableOnline.displayName = 'Service.AvailableOnline';
|
|
1145
|
+
exports.AvailableOnline.displayName = 'Service.AvailableOnline';
|
|
1107
1146
|
// Create Locations with nested components
|
|
1108
|
-
|
|
1109
|
-
List: LocationsList,
|
|
1110
|
-
LocationRepeater,
|
|
1147
|
+
exports.Locations = Object.assign(LocationsBase, {
|
|
1148
|
+
List: exports.LocationsList,
|
|
1149
|
+
LocationRepeater: exports.LocationRepeater,
|
|
1111
1150
|
});
|
|
1112
1151
|
// Create StaffMembers with nested components
|
|
1113
|
-
|
|
1114
|
-
List: StaffMembersList,
|
|
1115
|
-
StaffMemberRepeater,
|
|
1152
|
+
exports.StaffMembers = Object.assign(StaffMembersBase, {
|
|
1153
|
+
List: exports.StaffMembersList,
|
|
1154
|
+
StaffMemberRepeater: exports.StaffMemberRepeater,
|
|
1116
1155
|
});
|
|
1117
1156
|
// Re-export media components under Service namespace
|
|
1118
|
-
|
|
1119
|
-
MainMedia.displayName = 'Service.MainMedia';
|
|
1120
|
-
|
|
1121
|
-
CoverMedia.displayName = 'Service.CoverMedia';
|
|
1157
|
+
exports.MainMedia = ServiceMediaModule.Main;
|
|
1158
|
+
exports.MainMedia.displayName = 'Service.MainMedia';
|
|
1159
|
+
exports.CoverMedia = ServiceMediaModule.Cover;
|
|
1160
|
+
exports.CoverMedia.displayName = 'Service.CoverMedia';
|