@riverbankcms/sdk 0.138.0 → 0.139.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/README.md +11 -15
- package/dist/{PreviewEditorSidebar-BVPur_CU.mjs → PreviewEditorSidebar-BDeenhi3.mjs} +4 -4
- package/dist/{PreviewEditorUI-DLhWX8oh.mjs → PreviewEditorUI-DSRhgjF5.mjs} +3 -3
- package/dist/{PreviewQueryProvider-BguJY1SW.mjs → PreviewQueryProvider-D2K8GLUG.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-Tda6qw4z.mjs → SdkPreviewModeRuntime-CL7wSnYu.mjs} +47 -27
- package/dist/{SiteChromeCustomizeContext-BHFgMjde.mjs → SiteChromeCustomizeContext-BhDn-5ir.mjs} +7771 -5863
- package/dist/_dts/ai/src/contracts/proposals.d.ts +99 -330
- package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +9 -30
- package/dist/_dts/api/src/billing.d.ts +10 -3
- package/dist/_dts/api/src/contentRuntime.d.ts +8 -1
- package/dist/_dts/api/src/endpoints.d.ts +182 -103
- package/dist/_dts/api/src/footerSettings.d.ts +2 -5
- package/dist/_dts/api/src/index.d.ts +11 -9
- package/dist/_dts/api/src/mailchimpIntegration.d.ts +2 -59
- package/dist/_dts/api/src/mailingListIntegration.d.ts +117 -0
- package/dist/_dts/api/src/navigation/locations.d.ts +1 -0
- package/dist/_dts/api/src/navigation.d.ts +1 -26
- package/dist/_dts/api/src/newsletterEndpointDefinitions.d.ts +109 -2
- package/dist/_dts/api/src/onboarding/surfaceData.d.ts +185 -0
- package/dist/_dts/api/src/privacyPolicy.d.ts +74 -2
- package/dist/_dts/api/src/publicBookingAvailabilityEndpointDefinitions.d.ts +6 -6
- package/dist/_dts/api/src/publicEventEndpointDefinitions.d.ts +1 -1
- package/dist/_dts/api/src/publicExperience/newsletterEndpoints.d.ts +2 -4
- package/dist/_dts/api/src/publicExperience/sharedTypes.d.ts +10 -24
- package/dist/_dts/api/src/publicReadEndpointDefinitions.d.ts +73 -0
- package/dist/_dts/api/src/schemas/site-api-keys.d.ts +1 -1
- package/dist/_dts/api/src/sdkContracts.d.ts +2 -10
- package/dist/_dts/api/src/sdkThemeWire.d.ts +2 -2
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +0 -29
- package/dist/_dts/api/src/siteOnboarding.d.ts +91 -228
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +1 -9
- package/dist/_dts/api/src/siteSettings.d.ts +20 -1
- package/dist/_dts/api/src/types.d.ts +5 -4
- package/dist/_dts/billing/src/membership/index.d.ts +14 -7
- package/dist/_dts/billing/src/plans/display.d.ts +15 -0
- package/dist/_dts/billing/src/plans/registry.d.ts +2 -0
- package/dist/_dts/billing/src/plans/standing.d.ts +19 -0
- package/dist/_dts/billing/src/plans/types.d.ts +1 -7
- package/dist/_dts/billing/src/subscriptions/evidence.d.ts +12 -0
- package/dist/_dts/billing/src/subscriptions/standingEvidence.d.ts +31 -0
- package/dist/_dts/billing/src/subscriptions/store.d.ts +23 -5
- package/dist/_dts/blocks/src/PageRenderer.d.ts +6 -15
- package/dist/_dts/blocks/src/client.d.ts +1 -1
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +32 -16
- package/dist/_dts/blocks/src/pageRendererContracts.d.ts +4 -0
- package/dist/_dts/blocks/src/pageRenderingMode.d.ts +12 -6
- package/dist/_dts/blocks/src/system/blocks/appointment-services.d.ts +11 -0
- package/dist/_dts/blocks/src/system/blocks/contact-newsletter.d.ts +39 -66
- package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +39 -114
- package/dist/_dts/blocks/src/system/blocks/offerings-preview/catalogue.d.ts +18 -0
- package/dist/_dts/blocks/src/system/blocks/offerings-preview/fields.d.ts +2 -0
- package/dist/_dts/blocks/src/system/blocks/offerings-preview/index.d.ts +4 -0
- package/dist/_dts/blocks/src/system/blocks/site-footer-runtime.d.ts +7 -13
- package/dist/_dts/blocks/src/system/constants/blockKinds.d.ts +1 -1
- package/dist/_dts/blocks/src/system/data/index.d.ts +2 -2
- package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
- package/dist/_dts/blocks/src/system/data/publicLoaderCachePolicy.d.ts +2 -74
- package/dist/_dts/blocks/src/system/fragments/library/newsletterForm.d.ts +33 -100
- package/dist/_dts/blocks/src/system/runtime/api/types/newsletter.d.ts +5 -15
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +48 -24
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +24 -12
- package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.state.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarToday.d.ts +22 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/appointment-services.d.ts +51 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +0 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +28 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/bookability.d.ts +9 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/dates.d.ts +14 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/duration.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/index.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/location.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/quickDates.d.ts +16 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/AgendaEventCard.d.ts +9 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/CalendarDayCell.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/CalendarDayHeaders.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/DayEventsModal.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventCard.d.ts +5 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventModals.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventQuickDates.d.ts +15 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekAgendaView.d.ts +7 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekTimetableView.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/index.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/timetableModel.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/useHydrationReady.d.ts +6 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.client.state.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.interactive.d.ts +56 -33
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.submission.d.ts +3 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +13 -31
- package/dist/_dts/blocks/src/system/runtime/nodes/offerings-preview-catalogue.d.ts +14 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/offerings-preview-content.d.ts +23 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/offerings-preview.d.ts +4 -2
- package/dist/_dts/blocks/src/system/transforms/registry/formatting.d.ts +5 -0
- package/dist/_dts/commerce/src/purchase/index.d.ts +1 -0
- package/dist/_dts/commerce/src/purchase/orderItemMetadata.d.ts +5 -12
- package/dist/_dts/commerce/src/purchase/stripeCommissionMetadata.d.ts +34 -0
- package/dist/_dts/content-editor/src/footerEngagementDraft.d.ts +6 -24
- package/dist/_dts/content-editor/src/useFooterComposerState.d.ts +1 -2
- package/dist/_dts/core/src/footer-engagement.d.ts +2 -6
- package/dist/_dts/core/src/index.d.ts +9 -1
- package/dist/_dts/core/src/mailing-list-identifiers.d.ts +21 -0
- package/dist/_dts/core/src/mailing-list-runtime.d.ts +42 -0
- package/dist/_dts/core/src/mailing-list-setup-parser.d.ts +14 -0
- package/dist/_dts/core/src/mailing-list-setup.d.ts +129 -0
- package/dist/_dts/core/src/mailing-list-submission.d.ts +244 -0
- package/dist/_dts/core/src/mailing-list-targeting-parser.d.ts +12 -0
- package/dist/_dts/core/src/mailing-list-targeting.d.ts +93 -0
- package/dist/_dts/core/src/navigation-locations.d.ts +28 -0
- package/dist/_dts/core/src/public-profile.d.ts +9 -1
- package/dist/_dts/core/src/public-read-cache-contract.d.ts +45 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +529 -373
- package/dist/_dts/editor-blocks/src/widgets/index.d.ts +1 -0
- package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/MailingListTargetingField.d.ts +11 -0
- package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/context.d.ts +13 -0
- package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/index.d.ts +3 -0
- package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/loaders.d.ts +6 -0
- package/dist/_dts/preview-next/src/client/widgets/widgetOverrides.d.ts +1 -0
- package/dist/_dts/sdk/src/client/publicAppointmentReadOperations.d.ts +12 -0
- package/dist/_dts/sdk/src/client/publicEventReadOperations.d.ts +2 -1
- package/dist/_dts/sdk/src/client/publicLoaderCacheAccess.d.ts +11 -4
- package/dist/_dts/sdk/src/config/content-types.d.ts +3 -13
- package/dist/_dts/sdk/src/config/content-validation.d.ts +5 -8
- package/dist/_dts/sdk/src/constants.d.ts +3 -3
- package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +12 -31
- package/dist/_dts/sdk/src/navigation/index.d.ts +11 -29
- package/dist/_dts/sdk/src/next/index.d.ts +4 -4
- package/dist/_dts/sdk/src/prebuild/types.d.ts +1 -5
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +33 -16
- package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +3 -0
- package/dist/_dts/sdk/src/rendering/client.d.ts +3 -20
- package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +3 -0
- package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +4 -0
- package/dist/_dts/sdk/src/rendering/helpers/pageRuntimeSupport.d.ts +1 -0
- package/dist/_dts/sdk/src/rendering/index.d.ts +1 -1
- package/dist/_dts/sdk/src/types/block-kinds.d.ts +1 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/hosted-booking-appearance.d.ts +41 -0
- package/dist/_dts/theme-core/src/index.d.ts +1 -0
- package/dist/_dts/theme-core/src/runtime/buildThemeRuntime.d.ts +0 -1
- package/dist/_dts/theme-core/src/tokens/tokens.d.ts +7 -0
- package/dist/_dts/ui/src/badge.d.ts +1 -1
- package/dist/_dts/ui/src/callout.d.ts +1 -1
- package/dist/client/{BookingConsentAgreement-DQUik1Mx.mjs → BookingConsentAgreement-CZvTDtsK.mjs} +2 -2
- package/dist/client/{DiscountCodeDisclosure-CU67Q4vH.mjs → DiscountCodeDisclosure-D-DsLCMU.mjs} +1 -1
- package/dist/client/{EventCombined.client-a02TXUgg.mjs → EventCombined.client-dWqgd5ZO.mjs} +443 -199
- package/dist/client/{EventListing.client-99qx7jFl.mjs → EventListing.client-BMRa9IYp.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-CWzcq73L.mjs → LeafletStaticMap-D21W9kBZ.mjs} +1 -1
- package/dist/client/{accordion-D1nb3-Oj.mjs → accordion-FxF_ta47.mjs} +1 -1
- package/dist/client/{bookingForm-BGrmLhaO.mjs → bookingForm-YnwW4TGw.mjs} +5 -5
- package/dist/client/bookings.mjs +43 -2
- package/dist/client/{carousel-DSmOx3ad.mjs → carousel-vng7fFT5.mjs} +1 -1
- package/dist/client/{cart-COWeOIUk.mjs → cart-DEPDsjNk.mjs} +3 -3
- package/dist/client/{checkout-CeysaIJK.mjs → checkout-CZRWu9rW.mjs} +3 -3
- package/dist/client/client.mjs +3331 -1407
- package/dist/client/{context-DBzX85Xc.mjs → context-DvU_WUmd.mjs} +4 -3
- package/dist/client/{dates-DCYhZBlW.mjs → dates-wnPMiRl5.mjs} +21 -3
- package/dist/client/{eventCalendar-BgsN73Ul.mjs → eventCalendar-BA3Q5L15.mjs} +80 -78
- package/dist/client/{eventCombined-DcZQAMQP.mjs → eventCombined-51wgR-1R.mjs} +3 -3
- package/dist/client/{eventDetails-BWwGJ54l.mjs → eventDetails-modaetpm.mjs} +4 -4
- package/dist/client/{eventListing-DqYqV8vp.mjs → eventListing-D8t2J3Kv.mjs} +3 -3
- package/dist/client/{eventRegistration-DQGDgu_e.mjs → eventRegistration-CYqtkCE_.mjs} +49 -9
- package/dist/client/{form-ClfpasVT.mjs → form-CBKXN5In.mjs} +2 -2
- package/dist/client/{headerSection-BuOMe98N.mjs → headerSection-DylDqNrs.mjs} +2 -2
- package/dist/client/hooks.mjs +1259 -555
- package/dist/client/{locationMap-CEqu_sfa.mjs → locationMap-CvWrG0vZ.mjs} +2 -2
- package/dist/client/{newsletterForm-IbrHjMxy.mjs → newsletterForm-Btwk70zw.mjs} +117 -38
- package/dist/client/{pricing-xj7MPZlK.mjs → pricing-Uzw-GQ6Y.mjs} +1 -1
- package/dist/client/{productDetail-vxqTt5Xj.mjs → productDetail-JLcUYKnd.mjs} +3 -3
- package/dist/client/{productList-OTdZu8sb.mjs → productList-FM0cbUzj.mjs} +3 -3
- package/dist/client/{propsDecoder-CY9gGEF7.mjs → propsDecoder-DYzafZb2.mjs} +592 -152
- package/dist/client/rendering/client.mjs +2259 -835
- package/dist/client/rendering/islands.mjs +17 -17
- package/dist/client/rendering.mjs +3308 -1236
- package/dist/client/{scrollToBlock--BFV6kl-.mjs → scrollToBlock-CvXszexS.mjs} +1 -1
- package/dist/client/{shop-CP4YbDL9.mjs → shop-BIcjvy5a.mjs} +6 -6
- package/dist/client/{shop-commerce-APs4XBXE.mjs → shop-commerce-BZQsy7xw.mjs} +5 -5
- package/dist/client/{shop-commerce-store-CAVLxLFr.mjs → shop-commerce-store-D5V7XAb5.mjs} +1 -1
- package/dist/client/{shopShared-BnSRrwXI.mjs → shopShared-DowkXevB.mjs} +3 -3
- package/dist/client/{useEventFilters-1a1by4c8.mjs → useEventFilters-oMoTw_JE.mjs} +56 -9
- package/dist/preview-next/before-render.mjs +238 -111
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/keepAlive.mjs +238 -111
- package/dist/preview-next/middleware.mjs +238 -111
- package/dist/{previewAuthStore-BkEgnYPP.mjs → previewAuthStore-COUyAKaX.mjs} +238 -111
- package/dist/{sdk-runtime-DwGfsT0S.mjs → sdk-runtime-D4k2LSGF.mjs} +2 -2
- package/dist/{separator-BeqDLneQ.mjs → separator-UGtpag4Z.mjs} +1 -1
- package/dist/server/components.mjs +2697 -1023
- package/dist/server/config-validation.mjs +2424 -1720
- package/dist/server/config.mjs +2429 -1724
- package/dist/server/data.mjs +1164 -454
- package/dist/server/index.mjs +364 -280
- package/dist/server/navigation.mjs +16 -47
- package/dist/server/next.mjs +2915 -1380
- package/dist/server/page-converter.mjs +969 -522
- package/dist/server/prebuild.mjs +2 -3
- package/dist/server/rendering/server.mjs +2704 -1030
- package/dist/server/rendering.mjs +2742 -1063
- package/dist/server/routing.mjs +1386 -595
- package/dist/server/server.mjs +2878 -2324
- package/dist/server/theme-bridge.mjs +292 -24
- package/dist/styles/index.css +289 -25
- package/package.json +1 -1
- package/dist/_dts/api/src/navigation/identity.d.ts +0 -59
- package/dist/_dts/blocks/src/system/blocks/newsletter-signup-destination.d.ts +0 -291
- package/dist/_dts/core/src/newsletter-signup-destination.d.ts +0 -38
package/dist/server/routing.mjs
CHANGED
|
@@ -164,6 +164,7 @@ var init_block_kinds = __esmMin((() => {
|
|
|
164
164
|
"block.form",
|
|
165
165
|
"block.contact-newsletter",
|
|
166
166
|
"block.appointment-booking",
|
|
167
|
+
"block.appointment-services",
|
|
167
168
|
"block.weekly-slot-availability",
|
|
168
169
|
"block.event-registration",
|
|
169
170
|
"block.event-details",
|
|
@@ -560,13 +561,13 @@ function parseUuidBrand(value, unsafeConstructor) {
|
|
|
560
561
|
if (typeof value !== "string") return err$1({ kind: "not_string" });
|
|
561
562
|
const normalized = value.trim().toLowerCase();
|
|
562
563
|
if (normalized.length === 0) return err$1({ kind: "empty_string" });
|
|
563
|
-
if (!UUID_PATTERN.test(normalized)) return err$1({ kind: "invalid_uuid" });
|
|
564
|
+
if (!UUID_PATTERN$1.test(normalized)) return err$1({ kind: "invalid_uuid" });
|
|
564
565
|
return ok$1(unsafeConstructor(normalized));
|
|
565
566
|
}
|
|
566
|
-
var UUID_PATTERN, unsafeAsSiteId, unsafeAsApiKeyId, unsafeAsEventOfferingId, unsafeAsEventSeriesId, unsafeAsStorageBucketName, unsafeAsPositiveByteCount$1, unsafeAsPositiveSeconds, unsafeAsUserId, parseSiteId, parseApiKeyId, parseEventOfferingId, parseUserId, parseEventSeriesId;
|
|
567
|
+
var UUID_PATTERN$1, unsafeAsSiteId, unsafeAsApiKeyId, unsafeAsEventOfferingId, unsafeAsEventSeriesId, unsafeAsStorageBucketName, unsafeAsPositiveByteCount$1, unsafeAsPositiveSeconds, unsafeAsUserId, parseSiteId, parseApiKeyId, parseEventOfferingId, parseUserId, parseEventSeriesId;
|
|
567
568
|
var init_branded = __esmMin((() => {
|
|
568
569
|
init_result();
|
|
569
|
-
UUID_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
570
|
+
UUID_PATTERN$1 = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
570
571
|
unsafeAsSiteId = (id) => id;
|
|
571
572
|
unsafeAsApiKeyId = (id) => id;
|
|
572
573
|
unsafeAsEventOfferingId = (id) => id;
|
|
@@ -586,7 +587,7 @@ var init_branded = __esmMin((() => {
|
|
|
586
587
|
var init_date_math = __esmMin((() => {}));
|
|
587
588
|
//#endregion
|
|
588
589
|
//#region ../core/src/duration.ts
|
|
589
|
-
var init_duration = __esmMin((() => {}));
|
|
590
|
+
var init_duration$1 = __esmMin((() => {}));
|
|
590
591
|
//#endregion
|
|
591
592
|
//#region ../core/src/demo-capability-policy.ts
|
|
592
593
|
var init_demo_capability_policy = __esmMin((() => {}));
|
|
@@ -850,7 +851,7 @@ function parseEventPageSurfaceDestinationMode(value) {
|
|
|
850
851
|
return value === "cms-managed" || value === "system-managed" ? value : void 0;
|
|
851
852
|
}
|
|
852
853
|
function parseEventPageSurfaceSubject(value) {
|
|
853
|
-
if (!isRecord$
|
|
854
|
+
if (!isRecord$15(value)) return err$1({ kind: "notObject" });
|
|
854
855
|
switch (value.kind) {
|
|
855
856
|
case "eventSeries": {
|
|
856
857
|
const eventSeriesId = parseEventSeriesId(value.eventSeriesId);
|
|
@@ -905,7 +906,7 @@ function parseEventSeriesIdList(values) {
|
|
|
905
906
|
}
|
|
906
907
|
return ok$1(parsed);
|
|
907
908
|
}
|
|
908
|
-
function isRecord$
|
|
909
|
+
function isRecord$15(value) {
|
|
909
910
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
910
911
|
}
|
|
911
912
|
var init_event_page_surface_subject = __esmMin((() => {
|
|
@@ -1117,7 +1118,7 @@ function toLocationCoordinates(value) {
|
|
|
1117
1118
|
lng: value.lng
|
|
1118
1119
|
};
|
|
1119
1120
|
}
|
|
1120
|
-
var init_location = __esmMin((() => {}));
|
|
1121
|
+
var init_location$1 = __esmMin((() => {}));
|
|
1121
1122
|
//#endregion
|
|
1122
1123
|
//#region ../core/src/business-address.ts
|
|
1123
1124
|
var init_business_address = __esmMin((() => {}));
|
|
@@ -1152,14 +1153,11 @@ var init_public_profile = __esmMin((() => {}));
|
|
|
1152
1153
|
//#region ../core/src/rich-text.ts
|
|
1153
1154
|
var init_rich_text = __esmMin((() => {}));
|
|
1154
1155
|
//#endregion
|
|
1155
|
-
//#region ../core/src/
|
|
1156
|
-
|
|
1157
|
-
return value === "riverbank" || value === "mailchimp" ? value : null;
|
|
1158
|
-
}
|
|
1159
|
-
var init_newsletter_signup_destination$1 = __esmMin((() => {}));
|
|
1156
|
+
//#region ../core/src/footer-composition.ts
|
|
1157
|
+
var init_footer_composition = __esmMin((() => {}));
|
|
1160
1158
|
//#endregion
|
|
1161
|
-
//#region ../core/src/footer-
|
|
1162
|
-
var
|
|
1159
|
+
//#region ../core/src/footer-navigation-layout.ts
|
|
1160
|
+
var init_footer_navigation_layout = __esmMin((() => {}));
|
|
1163
1161
|
var init_footer_arrangement = __esmMin((() => {
|
|
1164
1162
|
new Map([
|
|
1165
1163
|
"brand",
|
|
@@ -1175,16 +1173,406 @@ var init_footer_arrangement = __esmMin((() => {
|
|
|
1175
1173
|
].map((kind, index) => [kind, index]));
|
|
1176
1174
|
}));
|
|
1177
1175
|
//#endregion
|
|
1178
|
-
//#region ../core/src/footer-composition.ts
|
|
1179
|
-
var
|
|
1180
|
-
|
|
1176
|
+
//#region ../core/src/footer-composition-types.ts
|
|
1177
|
+
var init_footer_composition_types = __esmMin((() => {}));
|
|
1178
|
+
//#endregion
|
|
1179
|
+
//#region ../core/src/footer-engagement.ts
|
|
1180
|
+
var init_footer_engagement = __esmMin((() => {}));
|
|
1181
|
+
//#endregion
|
|
1182
|
+
//#region ../core/src/mailing-list-identifiers.ts
|
|
1183
|
+
function parseTrimmedMatchingString(value, pattern) {
|
|
1184
|
+
if (typeof value !== "string") return null;
|
|
1185
|
+
const trimmed = value.trim();
|
|
1186
|
+
return pattern.test(trimmed) ? trimmed : null;
|
|
1187
|
+
}
|
|
1188
|
+
function parsePositiveInteger(value) {
|
|
1189
|
+
return typeof value === "number" && Number.isSafeInteger(value) && value > 0 ? value : null;
|
|
1190
|
+
}
|
|
1191
|
+
function parseNewsletterListId(value) {
|
|
1192
|
+
return parseTrimmedMatchingString(value, UUID_PATTERN);
|
|
1193
|
+
}
|
|
1194
|
+
function parseMailchimpAudienceId(value) {
|
|
1195
|
+
return parseTrimmedMatchingString(value, OPAQUE_ID_PATTERN);
|
|
1196
|
+
}
|
|
1197
|
+
function parseMailchimpInterestId(value) {
|
|
1198
|
+
return parseTrimmedMatchingString(value, OPAQUE_ID_PATTERN);
|
|
1199
|
+
}
|
|
1200
|
+
function parseBrevoListId(value) {
|
|
1201
|
+
return parsePositiveInteger(value);
|
|
1202
|
+
}
|
|
1203
|
+
var UUID_PATTERN, OPAQUE_ID_PATTERN;
|
|
1204
|
+
var init_mailing_list_identifiers = __esmMin((() => {
|
|
1205
|
+
UUID_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/iu;
|
|
1206
|
+
OPAQUE_ID_PATTERN = /^[A-Za-z0-9_-]{1,100}$/u;
|
|
1181
1207
|
}));
|
|
1182
1208
|
//#endregion
|
|
1183
|
-
//#region ../core/src/
|
|
1184
|
-
var
|
|
1209
|
+
//#region ../core/src/mailing-list-setup.ts
|
|
1210
|
+
var init_mailing_list_setup = __esmMin((() => {}));
|
|
1185
1211
|
//#endregion
|
|
1186
|
-
//#region ../core/src/
|
|
1187
|
-
|
|
1212
|
+
//#region ../core/src/mailing-list-setup-parser.ts
|
|
1213
|
+
function parseMailingListGlobalForm(value) {
|
|
1214
|
+
if (!isRecord$14(value)) return formError("shape");
|
|
1215
|
+
const fields = parseGlobalFields(value.fields);
|
|
1216
|
+
if (fields === null) return formError("fields");
|
|
1217
|
+
if (typeof value.includeOptionalPhone !== "boolean") return formError("includeOptionalPhone");
|
|
1218
|
+
const buttonLabel = parseRequiredString(value.buttonLabel);
|
|
1219
|
+
if (buttonLabel === null) return formError("buttonLabel");
|
|
1220
|
+
const privacyNote = parseOptionalString(value.privacyNote);
|
|
1221
|
+
if (privacyNote === void 0) return formError("privacyNote");
|
|
1222
|
+
return ok$1({
|
|
1223
|
+
fields,
|
|
1224
|
+
includeOptionalPhone: value.includeOptionalPhone,
|
|
1225
|
+
buttonLabel,
|
|
1226
|
+
privacyNote
|
|
1227
|
+
});
|
|
1228
|
+
}
|
|
1229
|
+
function parseGlobalFields(value) {
|
|
1230
|
+
if (!isRecord$14(value) || typeof value.preset !== "string") return null;
|
|
1231
|
+
switch (value.preset) {
|
|
1232
|
+
case "emailOnly": return { preset: "emailOnly" };
|
|
1233
|
+
case "emailName": return isRequirement(value.name) ? {
|
|
1234
|
+
preset: "emailName",
|
|
1235
|
+
name: value.name
|
|
1236
|
+
} : null;
|
|
1237
|
+
case "emailFirstLast": return isRequirement(value.firstName) && isRequirement(value.lastName) ? {
|
|
1238
|
+
preset: "emailFirstLast",
|
|
1239
|
+
firstName: value.firstName,
|
|
1240
|
+
lastName: value.lastName
|
|
1241
|
+
} : null;
|
|
1242
|
+
case "emailNameCompany": return isRequirement(value.name) && isRequirement(value.company) ? {
|
|
1243
|
+
preset: "emailNameCompany",
|
|
1244
|
+
name: value.name,
|
|
1245
|
+
company: value.company
|
|
1246
|
+
} : null;
|
|
1247
|
+
default: return null;
|
|
1248
|
+
}
|
|
1249
|
+
}
|
|
1250
|
+
function parseMailingListSetupRevision(value) {
|
|
1251
|
+
return typeof value === "number" && Number.isSafeInteger(value) && value > 0 ? value : null;
|
|
1252
|
+
}
|
|
1253
|
+
function parseRequiredString(value) {
|
|
1254
|
+
if (typeof value !== "string") return null;
|
|
1255
|
+
const trimmed = value.trim();
|
|
1256
|
+
return trimmed.length > 0 ? trimmed : null;
|
|
1257
|
+
}
|
|
1258
|
+
function parseOptionalString(value) {
|
|
1259
|
+
if (value === null || value === void 0) return null;
|
|
1260
|
+
if (typeof value !== "string") return void 0;
|
|
1261
|
+
const trimmed = value.trim();
|
|
1262
|
+
return trimmed.length > 0 ? trimmed : null;
|
|
1263
|
+
}
|
|
1264
|
+
function isRequirement(value) {
|
|
1265
|
+
return value === "required" || value === "optional";
|
|
1266
|
+
}
|
|
1267
|
+
function isRecord$14(value) {
|
|
1268
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
1269
|
+
}
|
|
1270
|
+
function formError(field) {
|
|
1271
|
+
return err$1({
|
|
1272
|
+
tag: "invalid_mailing_list_global_form",
|
|
1273
|
+
field
|
|
1274
|
+
});
|
|
1275
|
+
}
|
|
1276
|
+
var init_mailing_list_setup_parser = __esmMin((() => {
|
|
1277
|
+
init_result();
|
|
1278
|
+
}));
|
|
1279
|
+
//#endregion
|
|
1280
|
+
//#region ../core/src/mailing-list-targeting.ts
|
|
1281
|
+
function planMailingListChoicePresentation(targeting) {
|
|
1282
|
+
if (targeting.mode === "default" || targeting.selection.tag === "fixed") return { tag: "hidden" };
|
|
1283
|
+
switch (targeting.provider) {
|
|
1284
|
+
case "native": return targeting.selection.offeredTopicIds.length === 1 ? {
|
|
1285
|
+
tag: "automatic",
|
|
1286
|
+
selection: {
|
|
1287
|
+
provider: "native",
|
|
1288
|
+
topicIds: targeting.selection.offeredTopicIds
|
|
1289
|
+
}
|
|
1290
|
+
} : {
|
|
1291
|
+
tag: "visitor_choice",
|
|
1292
|
+
provider: "native",
|
|
1293
|
+
optionCount: targeting.selection.offeredTopicIds.length
|
|
1294
|
+
};
|
|
1295
|
+
case "brevo": return targeting.selection.offeredListIds.length === 1 ? {
|
|
1296
|
+
tag: "automatic",
|
|
1297
|
+
selection: {
|
|
1298
|
+
provider: "brevo",
|
|
1299
|
+
listIds: targeting.selection.offeredListIds
|
|
1300
|
+
}
|
|
1301
|
+
} : {
|
|
1302
|
+
tag: "visitor_choice",
|
|
1303
|
+
provider: "brevo",
|
|
1304
|
+
optionCount: targeting.selection.offeredListIds.length
|
|
1305
|
+
};
|
|
1306
|
+
case "mailchimp": return targeting.selection.offeredInterestIds.length === 1 ? {
|
|
1307
|
+
tag: "automatic",
|
|
1308
|
+
selection: {
|
|
1309
|
+
provider: "mailchimp",
|
|
1310
|
+
interestIds: targeting.selection.offeredInterestIds
|
|
1311
|
+
}
|
|
1312
|
+
} : {
|
|
1313
|
+
tag: "visitor_choice",
|
|
1314
|
+
provider: "mailchimp",
|
|
1315
|
+
optionCount: targeting.selection.offeredInterestIds.length
|
|
1316
|
+
};
|
|
1317
|
+
}
|
|
1318
|
+
}
|
|
1319
|
+
var init_mailing_list_targeting = __esmMin((() => {}));
|
|
1320
|
+
//#endregion
|
|
1321
|
+
//#region ../core/src/mailing-list-runtime.ts
|
|
1322
|
+
function parseMailingListRuntimeContext(value) {
|
|
1323
|
+
if (!isRecord$13(value)) return invalidRuntimeContext();
|
|
1324
|
+
if (value.tag === "not_configured") return ok$1({ tag: "not_configured" });
|
|
1325
|
+
if (value.tag !== "configured") return invalidRuntimeContext();
|
|
1326
|
+
const revision = parseMailingListSetupRevision(value.revision);
|
|
1327
|
+
const form = parseMailingListGlobalForm(value.form);
|
|
1328
|
+
const provider = parseRuntimeProvider(value.provider);
|
|
1329
|
+
if (revision === null || !form.ok || provider === null) return invalidRuntimeContext();
|
|
1330
|
+
return ok$1({
|
|
1331
|
+
tag: "configured",
|
|
1332
|
+
revision,
|
|
1333
|
+
form: form.value,
|
|
1334
|
+
provider
|
|
1335
|
+
});
|
|
1336
|
+
}
|
|
1337
|
+
function parseRuntimeProvider(value) {
|
|
1338
|
+
if (!isRecord$13(value)) return null;
|
|
1339
|
+
switch (value.provider) {
|
|
1340
|
+
case "native": return parseNativeRuntimeProvider(value);
|
|
1341
|
+
case "brevo": return parseBrevoRuntimeProvider(value);
|
|
1342
|
+
case "mailchimp": return parseMailchimpRuntimeProvider(value);
|
|
1343
|
+
default: return null;
|
|
1344
|
+
}
|
|
1345
|
+
}
|
|
1346
|
+
function parseNativeRuntimeProvider(value) {
|
|
1347
|
+
const defaultTopicId = parseNewsletterListId(value.defaultTopicId);
|
|
1348
|
+
const topics = parseNamedItems(value.topics, parseNewsletterListId);
|
|
1349
|
+
return defaultTopicId !== null && topics !== null ? {
|
|
1350
|
+
provider: "native",
|
|
1351
|
+
defaultTopicId,
|
|
1352
|
+
topics
|
|
1353
|
+
} : null;
|
|
1354
|
+
}
|
|
1355
|
+
function parseBrevoRuntimeProvider(value) {
|
|
1356
|
+
const defaultListId = parseBrevoListId(value.defaultListId);
|
|
1357
|
+
const lists = parseNamedItems(value.lists, parseBrevoListId);
|
|
1358
|
+
return defaultListId !== null && lists !== null ? {
|
|
1359
|
+
provider: "brevo",
|
|
1360
|
+
defaultListId,
|
|
1361
|
+
lists
|
|
1362
|
+
} : null;
|
|
1363
|
+
}
|
|
1364
|
+
function parseMailchimpRuntimeProvider(value) {
|
|
1365
|
+
if (!Array.isArray(value.audiences)) return null;
|
|
1366
|
+
const defaultAudienceId = parseMailchimpAudienceId(value.defaultAudienceId);
|
|
1367
|
+
if (defaultAudienceId === null) return null;
|
|
1368
|
+
const audiences = [];
|
|
1369
|
+
for (const audience of value.audiences) {
|
|
1370
|
+
if (!isRecord$13(audience)) return null;
|
|
1371
|
+
const id = parseMailchimpAudienceId(audience.id);
|
|
1372
|
+
const name = parseName(audience.name);
|
|
1373
|
+
if (id === null || name === null || !Array.isArray(audience.interests)) return null;
|
|
1374
|
+
const interests = parseMailchimpInterests(audience.interests);
|
|
1375
|
+
if (interests === null) return null;
|
|
1376
|
+
audiences.push({
|
|
1377
|
+
id,
|
|
1378
|
+
name,
|
|
1379
|
+
interests
|
|
1380
|
+
});
|
|
1381
|
+
}
|
|
1382
|
+
return {
|
|
1383
|
+
provider: "mailchimp",
|
|
1384
|
+
defaultAudienceId,
|
|
1385
|
+
audiences
|
|
1386
|
+
};
|
|
1387
|
+
}
|
|
1388
|
+
function parseMailchimpInterests(value) {
|
|
1389
|
+
const interests = [];
|
|
1390
|
+
for (const interest of value) {
|
|
1391
|
+
if (!isRecord$13(interest)) return null;
|
|
1392
|
+
const id = parseMailchimpInterestId(interest.id);
|
|
1393
|
+
const name = parseName(interest.name);
|
|
1394
|
+
const categoryName = parseName(interest.categoryName);
|
|
1395
|
+
if (id === null || name === null || categoryName === null) return null;
|
|
1396
|
+
interests.push({
|
|
1397
|
+
id,
|
|
1398
|
+
name,
|
|
1399
|
+
categoryName
|
|
1400
|
+
});
|
|
1401
|
+
}
|
|
1402
|
+
return interests;
|
|
1403
|
+
}
|
|
1404
|
+
function parseNamedItems(value, parseId) {
|
|
1405
|
+
if (!Array.isArray(value)) return null;
|
|
1406
|
+
const items = [];
|
|
1407
|
+
for (const item of value) {
|
|
1408
|
+
if (!isRecord$13(item)) return null;
|
|
1409
|
+
const id = parseId(item.id);
|
|
1410
|
+
const name = parseName(item.name);
|
|
1411
|
+
if (id === null || name === null) return null;
|
|
1412
|
+
items.push({
|
|
1413
|
+
id,
|
|
1414
|
+
name
|
|
1415
|
+
});
|
|
1416
|
+
}
|
|
1417
|
+
return items;
|
|
1418
|
+
}
|
|
1419
|
+
function parseName(value) {
|
|
1420
|
+
if (typeof value !== "string") return null;
|
|
1421
|
+
const name = value.trim();
|
|
1422
|
+
return name.length > 0 ? name : null;
|
|
1423
|
+
}
|
|
1424
|
+
function isRecord$13(value) {
|
|
1425
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
1426
|
+
}
|
|
1427
|
+
function invalidRuntimeContext() {
|
|
1428
|
+
return err$1({ tag: "invalid_mailing_list_runtime_context" });
|
|
1429
|
+
}
|
|
1430
|
+
var init_mailing_list_runtime = __esmMin((() => {
|
|
1431
|
+
init_mailing_list_identifiers();
|
|
1432
|
+
init_mailing_list_setup_parser();
|
|
1433
|
+
init_result();
|
|
1434
|
+
}));
|
|
1435
|
+
//#endregion
|
|
1436
|
+
//#region ../core/src/mailing-list-targeting-parser.ts
|
|
1437
|
+
function parseMailingListPlacementTargeting(value) {
|
|
1438
|
+
if (!isRecord$12(value)) return targetingError("shape");
|
|
1439
|
+
if (value.mode === "default") return ok$1({ mode: "default" });
|
|
1440
|
+
if (value.mode !== "custom") return targetingError("mode");
|
|
1441
|
+
if (!isRecord$12(value.selection)) return targetingError("selection");
|
|
1442
|
+
switch (value.provider) {
|
|
1443
|
+
case "native": return parseNativeTargeting(value.selection);
|
|
1444
|
+
case "brevo": return parseBrevoTargeting(value.selection);
|
|
1445
|
+
case "mailchimp": return parseMailchimpTargeting(value, value.selection);
|
|
1446
|
+
default: return targetingError("provider");
|
|
1447
|
+
}
|
|
1448
|
+
}
|
|
1449
|
+
function parseNativeTargeting(selection) {
|
|
1450
|
+
if (selection.tag === "fixed") {
|
|
1451
|
+
const topicIds = parseNonEmptyUniqueIds(selection.topicIds, parseNewsletterListId);
|
|
1452
|
+
return topicIds.ok ? ok$1({
|
|
1453
|
+
mode: "custom",
|
|
1454
|
+
provider: "native",
|
|
1455
|
+
selection: {
|
|
1456
|
+
tag: "fixed",
|
|
1457
|
+
topicIds: topicIds.value
|
|
1458
|
+
}
|
|
1459
|
+
}) : topicIds;
|
|
1460
|
+
}
|
|
1461
|
+
if (selection.tag === "visitor_choice") {
|
|
1462
|
+
const offeredTopicIds = parseNonEmptyUniqueIds(selection.offeredTopicIds, parseNewsletterListId);
|
|
1463
|
+
return offeredTopicIds.ok ? ok$1({
|
|
1464
|
+
mode: "custom",
|
|
1465
|
+
provider: "native",
|
|
1466
|
+
selection: {
|
|
1467
|
+
tag: "visitor_choice",
|
|
1468
|
+
offeredTopicIds: offeredTopicIds.value
|
|
1469
|
+
}
|
|
1470
|
+
}) : offeredTopicIds;
|
|
1471
|
+
}
|
|
1472
|
+
return targetingError("selection");
|
|
1473
|
+
}
|
|
1474
|
+
function parseBrevoTargeting(selection) {
|
|
1475
|
+
if (selection.tag === "fixed") {
|
|
1476
|
+
const listIds = parseNonEmptyUniqueIds(selection.listIds, parseBrevoListId);
|
|
1477
|
+
return listIds.ok ? ok$1({
|
|
1478
|
+
mode: "custom",
|
|
1479
|
+
provider: "brevo",
|
|
1480
|
+
selection: {
|
|
1481
|
+
tag: "fixed",
|
|
1482
|
+
listIds: listIds.value
|
|
1483
|
+
}
|
|
1484
|
+
}) : listIds;
|
|
1485
|
+
}
|
|
1486
|
+
if (selection.tag === "visitor_choice") {
|
|
1487
|
+
const offeredListIds = parseNonEmptyUniqueIds(selection.offeredListIds, parseBrevoListId);
|
|
1488
|
+
return offeredListIds.ok ? ok$1({
|
|
1489
|
+
mode: "custom",
|
|
1490
|
+
provider: "brevo",
|
|
1491
|
+
selection: {
|
|
1492
|
+
tag: "visitor_choice",
|
|
1493
|
+
offeredListIds: offeredListIds.value
|
|
1494
|
+
}
|
|
1495
|
+
}) : offeredListIds;
|
|
1496
|
+
}
|
|
1497
|
+
return targetingError("selection");
|
|
1498
|
+
}
|
|
1499
|
+
function parseMailchimpTargeting(value, selection) {
|
|
1500
|
+
const audienceId = parseMailchimpAudienceId(value.audienceId);
|
|
1501
|
+
if (audienceId === null) return targetingError("audienceId");
|
|
1502
|
+
if (selection.tag === "fixed") {
|
|
1503
|
+
const interestIds = parseUniqueIds(selection.interestIds, parseMailchimpInterestId);
|
|
1504
|
+
return interestIds.ok ? ok$1({
|
|
1505
|
+
mode: "custom",
|
|
1506
|
+
provider: "mailchimp",
|
|
1507
|
+
audienceId,
|
|
1508
|
+
selection: {
|
|
1509
|
+
tag: "fixed",
|
|
1510
|
+
interestIds: interestIds.value
|
|
1511
|
+
}
|
|
1512
|
+
}) : interestIds;
|
|
1513
|
+
}
|
|
1514
|
+
if (selection.tag === "visitor_choice") {
|
|
1515
|
+
const offeredInterestIds = parseNonEmptyUniqueIds(selection.offeredInterestIds, parseMailchimpInterestId);
|
|
1516
|
+
return offeredInterestIds.ok ? ok$1({
|
|
1517
|
+
mode: "custom",
|
|
1518
|
+
provider: "mailchimp",
|
|
1519
|
+
audienceId,
|
|
1520
|
+
selection: {
|
|
1521
|
+
tag: "visitor_choice",
|
|
1522
|
+
offeredInterestIds: offeredInterestIds.value
|
|
1523
|
+
}
|
|
1524
|
+
}) : offeredInterestIds;
|
|
1525
|
+
}
|
|
1526
|
+
return targetingError("selection");
|
|
1527
|
+
}
|
|
1528
|
+
function parseNonEmptyUniqueIds(value, parseId) {
|
|
1529
|
+
const parsed = parseUniqueIds(value, parseId);
|
|
1530
|
+
if (!parsed.ok) return parsed;
|
|
1531
|
+
const [first, ...rest] = parsed.value;
|
|
1532
|
+
return first === void 0 ? targetingError("targets") : ok$1([first, ...rest]);
|
|
1533
|
+
}
|
|
1534
|
+
function parseUniqueIds(value, parseId) {
|
|
1535
|
+
if (!Array.isArray(value)) return targetingError("targets");
|
|
1536
|
+
const parsed = [];
|
|
1537
|
+
for (const item of value) {
|
|
1538
|
+
const id = parseId(item);
|
|
1539
|
+
if (id === null) return targetingError("targets");
|
|
1540
|
+
if (parsed.includes(id)) return targetingError("duplicate_target");
|
|
1541
|
+
parsed.push(id);
|
|
1542
|
+
}
|
|
1543
|
+
return ok$1(parsed);
|
|
1544
|
+
}
|
|
1545
|
+
function isRecord$12(value) {
|
|
1546
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
1547
|
+
}
|
|
1548
|
+
function targetingError(field) {
|
|
1549
|
+
return err$1({
|
|
1550
|
+
tag: "invalid_mailing_list_targeting",
|
|
1551
|
+
field
|
|
1552
|
+
});
|
|
1553
|
+
}
|
|
1554
|
+
var init_mailing_list_targeting_parser = __esmMin((() => {
|
|
1555
|
+
init_mailing_list_identifiers();
|
|
1556
|
+
init_result();
|
|
1557
|
+
}));
|
|
1558
|
+
//#endregion
|
|
1559
|
+
//#region ../core/src/mailing-list-submission.ts
|
|
1560
|
+
function parseMailingListBlockId(value) {
|
|
1561
|
+
const parsed = typeof value === "string" ? value.trim() : "";
|
|
1562
|
+
return /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/iu.test(parsed) ? parsed : null;
|
|
1563
|
+
}
|
|
1564
|
+
function parseMailingListSignedSourceToken(value) {
|
|
1565
|
+
const parsed = typeof value === "string" ? value.trim() : "";
|
|
1566
|
+
return /^[A-Za-z0-9._~-]{16,1000}$/u.test(parsed) ? parsed : null;
|
|
1567
|
+
}
|
|
1568
|
+
function buildMailingListSignupBlockSourceRef(blockId) {
|
|
1569
|
+
const parsed = parseMailingListBlockId(blockId);
|
|
1570
|
+
return parsed !== null ? {
|
|
1571
|
+
tag: "block_ref",
|
|
1572
|
+
blockId: parsed
|
|
1573
|
+
} : null;
|
|
1574
|
+
}
|
|
1575
|
+
var init_mailing_list_submission = __esmMin((() => {}));
|
|
1188
1576
|
//#endregion
|
|
1189
1577
|
//#region ../core/src/number-input.ts
|
|
1190
1578
|
var init_number_input = __esmMin((() => {}));
|
|
@@ -1289,6 +1677,60 @@ function orderedLiveRunSessions(sessions) {
|
|
|
1289
1677
|
}
|
|
1290
1678
|
var init_whole_series_run_schedule = __esmMin((() => {}));
|
|
1291
1679
|
//#endregion
|
|
1680
|
+
//#region ../core/src/public-read-cache-contract.ts
|
|
1681
|
+
function availability(transport) {
|
|
1682
|
+
return {
|
|
1683
|
+
kind: "live",
|
|
1684
|
+
reason: "booking_correctness",
|
|
1685
|
+
freshness: "availability",
|
|
1686
|
+
transport
|
|
1687
|
+
};
|
|
1688
|
+
}
|
|
1689
|
+
function content(tags, transport = "direct") {
|
|
1690
|
+
return {
|
|
1691
|
+
kind: "tagged",
|
|
1692
|
+
tags,
|
|
1693
|
+
freshness: "content",
|
|
1694
|
+
transport
|
|
1695
|
+
};
|
|
1696
|
+
}
|
|
1697
|
+
function getPublicReadCachePolicy(endpoint) {
|
|
1698
|
+
return PUBLIC_READ_CACHE_POLICIES[endpoint];
|
|
1699
|
+
}
|
|
1700
|
+
function publicReadFreshnessSeconds(endpoint) {
|
|
1701
|
+
return getPublicReadCachePolicy(endpoint).freshness === "availability" ? 60 : PUBLIC_CONTENT_FRESHNESS_SECONDS;
|
|
1702
|
+
}
|
|
1703
|
+
var PUBLIC_CONTENT_FRESHNESS_SECONDS, PUBLIC_READ_CACHE_POLICIES;
|
|
1704
|
+
var init_public_read_cache_contract = __esmMin((() => {
|
|
1705
|
+
PUBLIC_CONTENT_FRESHNESS_SECONDS = 3600;
|
|
1706
|
+
PUBLIC_READ_CACHE_POLICIES = {
|
|
1707
|
+
listPublishedEntries: content(["published_content"]),
|
|
1708
|
+
getPublishedEntryPreview: content(["published_content"]),
|
|
1709
|
+
listPublicEvents: availability("direct"),
|
|
1710
|
+
listPublicEventCalendarWindow: availability("direct"),
|
|
1711
|
+
listPublicRecurringSchedule: availability("batch_only"),
|
|
1712
|
+
getPublicEventDetails: availability("batch_only"),
|
|
1713
|
+
resolveEventSubroute: availability("direct"),
|
|
1714
|
+
listPublicRouteCandidates: content(["published_content"], "batch_only"),
|
|
1715
|
+
listPublicTeamMembers: content(["public_team_members"]),
|
|
1716
|
+
listPublicProducts: availability("direct"),
|
|
1717
|
+
listPublicPasses: availability("direct"),
|
|
1718
|
+
listPublicMemberships: availability("direct"),
|
|
1719
|
+
getPublicFormById: content(["site_forms"]),
|
|
1720
|
+
getPublicBookingServices: availability("direct"),
|
|
1721
|
+
getPublicBookingService: availability("direct"),
|
|
1722
|
+
getPublicBookingResourcesReference: availability("direct"),
|
|
1723
|
+
getPublicBookingAvailableDates: availability("direct"),
|
|
1724
|
+
getPublicBookingAvailableSlots: availability("direct"),
|
|
1725
|
+
getPublicWeeklySlotAvailability: availability("direct"),
|
|
1726
|
+
listPublicForms: content(["site_forms"]),
|
|
1727
|
+
checkRedirect: content([]),
|
|
1728
|
+
getPublicRoutableContent: content(["published_content"]),
|
|
1729
|
+
getPublicSitemapRoutes: content(["published_content"])
|
|
1730
|
+
};
|
|
1731
|
+
new Set(Object.keys(PUBLIC_READ_CACHE_POLICIES));
|
|
1732
|
+
}));
|
|
1733
|
+
//#endregion
|
|
1292
1734
|
//#region ../core/src/event-series-behaviour.ts
|
|
1293
1735
|
var WHOLE_SERIES_EVENT_PRESET_VALUES, SURFACE_EVENT_PRESET_VALUES;
|
|
1294
1736
|
var init_event_series_behaviour = __esmMin((() => {
|
|
@@ -1603,11 +2045,14 @@ var init_booking_verticals = __esmMin((() => {
|
|
|
1603
2045
|
init_booking_vertical_config();
|
|
1604
2046
|
}));
|
|
1605
2047
|
//#endregion
|
|
2048
|
+
//#region ../core/src/navigation-locations.ts
|
|
2049
|
+
var init_navigation_locations = __esmMin((() => {}));
|
|
2050
|
+
//#endregion
|
|
1606
2051
|
//#region ../core/src/index.ts
|
|
1607
2052
|
var init_src$4 = __esmMin((() => {
|
|
1608
2053
|
init_branded();
|
|
1609
2054
|
init_date_math();
|
|
1610
|
-
init_duration();
|
|
2055
|
+
init_duration$1();
|
|
1611
2056
|
init_demo_capability_policy();
|
|
1612
2057
|
init_demo_claim_access();
|
|
1613
2058
|
init_demo_lifecycle_status();
|
|
@@ -1628,7 +2073,7 @@ var init_src$4 = __esmMin((() => {
|
|
|
1628
2073
|
init_dated_offering_settlement();
|
|
1629
2074
|
init_person_records();
|
|
1630
2075
|
init_rectification();
|
|
1631
|
-
init_location();
|
|
2076
|
+
init_location$1();
|
|
1632
2077
|
init_business_address();
|
|
1633
2078
|
init_result();
|
|
1634
2079
|
init_assert_never();
|
|
@@ -1647,7 +2092,13 @@ var init_src$4 = __esmMin((() => {
|
|
|
1647
2092
|
init_footer_arrangement();
|
|
1648
2093
|
init_footer_composition_types();
|
|
1649
2094
|
init_footer_engagement();
|
|
1650
|
-
|
|
2095
|
+
init_mailing_list_identifiers();
|
|
2096
|
+
init_mailing_list_setup();
|
|
2097
|
+
init_mailing_list_setup_parser();
|
|
2098
|
+
init_mailing_list_targeting();
|
|
2099
|
+
init_mailing_list_runtime();
|
|
2100
|
+
init_mailing_list_targeting_parser();
|
|
2101
|
+
init_mailing_list_submission();
|
|
1651
2102
|
init_number_input();
|
|
1652
2103
|
init_field_errors();
|
|
1653
2104
|
init_form_submission_preview();
|
|
@@ -1666,8 +2117,10 @@ var init_src$4 = __esmMin((() => {
|
|
|
1666
2117
|
init_secret();
|
|
1667
2118
|
init_site_route_target();
|
|
1668
2119
|
init_whole_series_run_schedule();
|
|
2120
|
+
init_public_read_cache_contract();
|
|
1669
2121
|
init_booking_verticals();
|
|
1670
2122
|
init_event_series_behaviour();
|
|
2123
|
+
init_navigation_locations();
|
|
1671
2124
|
}));
|
|
1672
2125
|
//#endregion
|
|
1673
2126
|
//#region ../media-core/src/types.ts
|
|
@@ -1826,7 +2279,7 @@ var init_videoSlotPolicy = __esmMin((() => {}));
|
|
|
1826
2279
|
var init_identifiers = __esmMin((() => {}));
|
|
1827
2280
|
//#endregion
|
|
1828
2281
|
//#region ../media-core/src/typeGuards.ts
|
|
1829
|
-
function isRecord$
|
|
2282
|
+
function isRecord$11(value) {
|
|
1830
2283
|
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
1831
2284
|
}
|
|
1832
2285
|
var init_typeGuards$1 = __esmMin((() => {}));
|
|
@@ -1955,8 +2408,8 @@ function walkAndCollectImageAttrs(value, out, location = "") {
|
|
|
1955
2408
|
value.forEach((item, index) => walkAndCollectImageAttrs(item, out, `${location}[${index}]`));
|
|
1956
2409
|
return;
|
|
1957
2410
|
}
|
|
1958
|
-
if (!isRecord$
|
|
1959
|
-
if (value.type === "image" && isRecord$
|
|
2411
|
+
if (!isRecord$11(value)) return;
|
|
2412
|
+
if (value.type === "image" && isRecord$11(value.attrs)) out.push({
|
|
1960
2413
|
attrs: value.attrs,
|
|
1961
2414
|
location: location ? `${location}.attrs` : "attrs"
|
|
1962
2415
|
});
|
|
@@ -7464,7 +7917,7 @@ var init_interactionPalette = __esmMin((() => {
|
|
|
7464
7917
|
//#endregion
|
|
7465
7918
|
//#region ../theme-core/src/boxBackgroundSchema.ts
|
|
7466
7919
|
function normalizeAuthoringOpacity(value) {
|
|
7467
|
-
if (!isRecord$
|
|
7920
|
+
if (!isRecord$10(value)) return value;
|
|
7468
7921
|
return {
|
|
7469
7922
|
...value,
|
|
7470
7923
|
opacity: normalizeOpacity(value.opacity)
|
|
@@ -7473,7 +7926,7 @@ function normalizeAuthoringOpacity(value) {
|
|
|
7473
7926
|
function normalizeOpacity(value) {
|
|
7474
7927
|
return typeof value === "number" && value > 1 && value <= 100 ? value / 100 : value;
|
|
7475
7928
|
}
|
|
7476
|
-
function isRecord$
|
|
7929
|
+
function isRecord$10(value) {
|
|
7477
7930
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
7478
7931
|
}
|
|
7479
7932
|
var boxBackgroundOverlaySchema, commonSchema, mediaPresentationSchema, boxBackgroundSchema;
|
|
@@ -8299,7 +8752,7 @@ var init_media$3 = __esmMin((() => {
|
|
|
8299
8752
|
/**
|
|
8300
8753
|
* Strict record guard: excludes null, primitives, and arrays.
|
|
8301
8754
|
*/
|
|
8302
|
-
function isRecord$
|
|
8755
|
+
function isRecord$9(value) {
|
|
8303
8756
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
8304
8757
|
}
|
|
8305
8758
|
/**
|
|
@@ -8918,6 +9371,14 @@ var init_calendarWindow = __esmMin((() => {
|
|
|
8918
9371
|
var init_contracts$2 = __esmMin((() => {
|
|
8919
9372
|
init_calendarWindow();
|
|
8920
9373
|
}));
|
|
9374
|
+
//#endregion
|
|
9375
|
+
//#region ../api/src/apiEndpointTypes.ts
|
|
9376
|
+
function allowedDemoMutationPolicy() {
|
|
9377
|
+
return {
|
|
9378
|
+
classification: "allowed",
|
|
9379
|
+
publicMessage: ""
|
|
9380
|
+
};
|
|
9381
|
+
}
|
|
8921
9382
|
function blockedDemoMutationPolicy(classification, publicMessage) {
|
|
8922
9383
|
if (publicMessage.trim() === "") throw new Error(`Demo mutation policy ${classification} requires publicMessage.`);
|
|
8923
9384
|
return {
|
|
@@ -8925,12 +9386,13 @@ function blockedDemoMutationPolicy(classification, publicMessage) {
|
|
|
8925
9386
|
publicMessage
|
|
8926
9387
|
};
|
|
8927
9388
|
}
|
|
8928
|
-
var init_apiEndpointTypes = __esmMin((() => {})), DEMO_MUTATION_BLOCKED_HIDDEN, DEMO_MUTATION_BLOCKED_DISABLED;
|
|
9389
|
+
var init_apiEndpointTypes = __esmMin((() => {})), DEMO_MUTATION_BLOCKED_HIDDEN, DEMO_MUTATION_BLOCKED_DISABLED, DEMO_MUTATION_ALLOWED;
|
|
8929
9390
|
var init_demoMutationPolicies = __esmMin((() => {
|
|
8930
9391
|
init_apiEndpointTypes();
|
|
8931
9392
|
DEMO_MUTATION_BLOCKED_HIDDEN = blockedDemoMutationPolicy("blocked-hidden", "This action is not available in demo sites.");
|
|
8932
9393
|
DEMO_MUTATION_BLOCKED_DISABLED = blockedDemoMutationPolicy("blocked-disabled", "This setting is disabled in demo sites.");
|
|
8933
9394
|
blockedDemoMutationPolicy("internal-only", "This internal operation is not available in demo sites.");
|
|
9395
|
+
DEMO_MUTATION_ALLOWED = allowedDemoMutationPolicy();
|
|
8934
9396
|
}));
|
|
8935
9397
|
//#endregion
|
|
8936
9398
|
//#region ../api/src/cache-tags.ts
|
|
@@ -9885,14 +10347,117 @@ var init_newsletterEndpointDefinitions = __esmMin((() => {
|
|
|
9885
10347
|
responseKind: "json",
|
|
9886
10348
|
errors: ["auth:forbidden", "server:internal_error"]
|
|
9887
10349
|
},
|
|
9888
|
-
|
|
9889
|
-
path: "/sites/{siteId}/
|
|
10350
|
+
getMailingListSetup: {
|
|
10351
|
+
path: "/sites/{siteId}/mailing-list/setup",
|
|
10352
|
+
method: "GET",
|
|
10353
|
+
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
10354
|
+
auth: "user",
|
|
10355
|
+
responseKind: "json",
|
|
10356
|
+
errors: ["auth:forbidden", "server:internal_error"]
|
|
10357
|
+
},
|
|
10358
|
+
getMailingListAuthoringContext: {
|
|
10359
|
+
path: "/sites/{siteId}/mailing-list/authoring-context",
|
|
10360
|
+
method: "GET",
|
|
10361
|
+
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
10362
|
+
auth: "user",
|
|
10363
|
+
responseKind: "json",
|
|
10364
|
+
errors: ["auth:forbidden", "server:internal_error"]
|
|
10365
|
+
},
|
|
10366
|
+
previewMailingListSetupChange: {
|
|
10367
|
+
path: "/sites/{siteId}/mailing-list/setup/preview",
|
|
10368
|
+
method: "POST",
|
|
10369
|
+
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
10370
|
+
auth: "user",
|
|
10371
|
+
responseKind: "json",
|
|
10372
|
+
demoMutation: DEMO_MUTATION_ALLOWED,
|
|
10373
|
+
errors: [
|
|
10374
|
+
"auth:forbidden",
|
|
10375
|
+
"validation:invalid_input",
|
|
10376
|
+
"server:internal_error"
|
|
10377
|
+
]
|
|
10378
|
+
},
|
|
10379
|
+
applyMailingListSetupChange: {
|
|
10380
|
+
path: "/sites/{siteId}/mailing-list/setup",
|
|
10381
|
+
method: "PUT",
|
|
10382
|
+
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
10383
|
+
auth: "user",
|
|
10384
|
+
responseKind: "json",
|
|
10385
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
|
|
10386
|
+
errors: [
|
|
10387
|
+
"auth:forbidden",
|
|
10388
|
+
"validation:invalid_input",
|
|
10389
|
+
"resource:conflict",
|
|
10390
|
+
"server:internal_error"
|
|
10391
|
+
]
|
|
10392
|
+
},
|
|
10393
|
+
getMailingListProviderCatalog: {
|
|
10394
|
+
path: "/sites/{siteId}/mailing-list/providers/{provider}/catalog",
|
|
10395
|
+
method: "GET",
|
|
10396
|
+
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
10397
|
+
auth: "user",
|
|
10398
|
+
responseKind: "json",
|
|
10399
|
+
errors: [
|
|
10400
|
+
"auth:forbidden",
|
|
10401
|
+
"validation:invalid_input",
|
|
10402
|
+
"server:internal_error"
|
|
10403
|
+
]
|
|
10404
|
+
},
|
|
10405
|
+
refreshMailingListProviderCatalog: {
|
|
10406
|
+
path: "/sites/{siteId}/mailing-list/providers/{provider}/catalog/refresh",
|
|
10407
|
+
method: "POST",
|
|
10408
|
+
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
10409
|
+
auth: "user",
|
|
10410
|
+
responseKind: "json",
|
|
10411
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
|
|
10412
|
+
errors: [
|
|
10413
|
+
"auth:forbidden",
|
|
10414
|
+
"validation:invalid_input",
|
|
10415
|
+
"server:internal_error"
|
|
10416
|
+
]
|
|
10417
|
+
},
|
|
10418
|
+
getMailingListProviderHealth: {
|
|
10419
|
+
path: "/sites/{siteId}/mailing-list/health",
|
|
10420
|
+
method: "GET",
|
|
10421
|
+
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
10422
|
+
auth: "user",
|
|
10423
|
+
responseKind: "json",
|
|
10424
|
+
errors: ["auth:forbidden", "server:internal_error"]
|
|
10425
|
+
},
|
|
10426
|
+
getBrevoConnection: {
|
|
10427
|
+
path: "/sites/{siteId}/integrations/brevo/connection",
|
|
9890
10428
|
method: "GET",
|
|
9891
10429
|
tags: [TAG_TEMPLATES.site],
|
|
9892
10430
|
auth: "user",
|
|
9893
10431
|
responseKind: "json",
|
|
9894
10432
|
errors: ["auth:forbidden", "server:internal_error"]
|
|
9895
10433
|
},
|
|
10434
|
+
connectBrevo: {
|
|
10435
|
+
path: "/sites/{siteId}/integrations/brevo/connection",
|
|
10436
|
+
method: "PUT",
|
|
10437
|
+
tags: [TAG_TEMPLATES.site],
|
|
10438
|
+
auth: "user",
|
|
10439
|
+
responseKind: "json",
|
|
10440
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
|
|
10441
|
+
errors: [
|
|
10442
|
+
"auth:forbidden",
|
|
10443
|
+
"validation:invalid_input",
|
|
10444
|
+
"resource:conflict",
|
|
10445
|
+
"server:internal_error"
|
|
10446
|
+
]
|
|
10447
|
+
},
|
|
10448
|
+
disconnectBrevo: {
|
|
10449
|
+
path: "/sites/{siteId}/integrations/brevo/disconnect",
|
|
10450
|
+
method: "POST",
|
|
10451
|
+
tags: [TAG_TEMPLATES.site],
|
|
10452
|
+
auth: "user",
|
|
10453
|
+
responseKind: "json",
|
|
10454
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
|
|
10455
|
+
errors: [
|
|
10456
|
+
"auth:forbidden",
|
|
10457
|
+
"resource:conflict",
|
|
10458
|
+
"server:internal_error"
|
|
10459
|
+
]
|
|
10460
|
+
},
|
|
9896
10461
|
getMailchimpConnection: {
|
|
9897
10462
|
path: "/sites/{siteId}/integrations/mailchimp/connection",
|
|
9898
10463
|
method: "GET",
|
|
@@ -10121,6 +10686,7 @@ var init_newsletterEndpointDefinitions = __esmMin((() => {
|
|
|
10121
10686
|
var PUBLIC_EVENT_ENDPOINT_DEFINITIONS;
|
|
10122
10687
|
var init_publicEventEndpointDefinitions = __esmMin((() => {
|
|
10123
10688
|
init_cache_tags();
|
|
10689
|
+
init_src$4();
|
|
10124
10690
|
init_defineEndpointDefinitions();
|
|
10125
10691
|
PUBLIC_EVENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
10126
10692
|
listPublicEventCalendarWindow: {
|
|
@@ -10153,7 +10719,7 @@ var init_publicEventEndpointDefinitions = __esmMin((() => {
|
|
|
10153
10719
|
resolveEventSubroute: {
|
|
10154
10720
|
path: "/public/sites/{siteId}/events/subroutes/resolve",
|
|
10155
10721
|
method: "GET",
|
|
10156
|
-
revalidate:
|
|
10722
|
+
revalidate: publicReadFreshnessSeconds("resolveEventSubroute"),
|
|
10157
10723
|
tags: [TAG_TEMPLATES.publicEvents, "event-subroute"],
|
|
10158
10724
|
auth: "public",
|
|
10159
10725
|
responseKind: "json",
|
|
@@ -10189,12 +10755,13 @@ var init_publicEventCheckoutEndpointDefinitions = __esmMin((() => {
|
|
|
10189
10755
|
var PUBLIC_BOOKING_AVAILABILITY_ENDPOINT_DEFINITIONS;
|
|
10190
10756
|
var init_publicBookingAvailabilityEndpointDefinitions = __esmMin((() => {
|
|
10191
10757
|
init_cache_tags();
|
|
10758
|
+
init_src$4();
|
|
10192
10759
|
init_defineEndpointDefinitions();
|
|
10193
10760
|
PUBLIC_BOOKING_AVAILABILITY_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
10194
10761
|
getPublicBookingServices: {
|
|
10195
10762
|
path: "/public/bookings/services",
|
|
10196
10763
|
method: "GET",
|
|
10197
|
-
revalidate:
|
|
10764
|
+
revalidate: publicReadFreshnessSeconds("getPublicBookingServices"),
|
|
10198
10765
|
tags: [TAG_TEMPLATES.publicBookingServices],
|
|
10199
10766
|
auth: "public",
|
|
10200
10767
|
responseKind: "json"
|
|
@@ -10202,7 +10769,7 @@ var init_publicBookingAvailabilityEndpointDefinitions = __esmMin((() => {
|
|
|
10202
10769
|
getPublicBookingService: {
|
|
10203
10770
|
path: "/public/bookings/services/{serviceId}",
|
|
10204
10771
|
method: "GET",
|
|
10205
|
-
revalidate:
|
|
10772
|
+
revalidate: publicReadFreshnessSeconds("getPublicBookingService"),
|
|
10206
10773
|
tags: [TAG_TEMPLATES.publicBookingServices],
|
|
10207
10774
|
auth: "public",
|
|
10208
10775
|
responseKind: "json"
|
|
@@ -10210,7 +10777,7 @@ var init_publicBookingAvailabilityEndpointDefinitions = __esmMin((() => {
|
|
|
10210
10777
|
getPublicBookingResourcesReference: {
|
|
10211
10778
|
path: "/public/bookings/resources/reference",
|
|
10212
10779
|
method: "GET",
|
|
10213
|
-
revalidate:
|
|
10780
|
+
revalidate: publicReadFreshnessSeconds("getPublicBookingResourcesReference"),
|
|
10214
10781
|
tags: [TAG_TEMPLATES.publicBookingServices],
|
|
10215
10782
|
auth: "public",
|
|
10216
10783
|
responseKind: "json"
|
|
@@ -10218,7 +10785,7 @@ var init_publicBookingAvailabilityEndpointDefinitions = __esmMin((() => {
|
|
|
10218
10785
|
getPublicBookingAvailableDates: {
|
|
10219
10786
|
path: "/public/bookings/availability/dates",
|
|
10220
10787
|
method: "GET",
|
|
10221
|
-
revalidate:
|
|
10788
|
+
revalidate: publicReadFreshnessSeconds("getPublicBookingAvailableDates"),
|
|
10222
10789
|
tags: [TAG_TEMPLATES.publicBookingAvailability, TAG_TEMPLATES.publicBookingServices],
|
|
10223
10790
|
auth: "public",
|
|
10224
10791
|
responseKind: "json"
|
|
@@ -10226,7 +10793,7 @@ var init_publicBookingAvailabilityEndpointDefinitions = __esmMin((() => {
|
|
|
10226
10793
|
getPublicBookingAvailableSlots: {
|
|
10227
10794
|
path: "/public/bookings/availability/slots",
|
|
10228
10795
|
method: "GET",
|
|
10229
|
-
revalidate:
|
|
10796
|
+
revalidate: publicReadFreshnessSeconds("getPublicBookingAvailableSlots"),
|
|
10230
10797
|
tags: [TAG_TEMPLATES.publicBookingAvailability, TAG_TEMPLATES.publicBookingServices],
|
|
10231
10798
|
auth: "public",
|
|
10232
10799
|
responseKind: "json"
|
|
@@ -10234,7 +10801,7 @@ var init_publicBookingAvailabilityEndpointDefinitions = __esmMin((() => {
|
|
|
10234
10801
|
getPublicWeeklySlotAvailability: {
|
|
10235
10802
|
path: "/public/bookings/weekly-slot-availability",
|
|
10236
10803
|
method: "GET",
|
|
10237
|
-
revalidate:
|
|
10804
|
+
revalidate: publicReadFreshnessSeconds("getPublicWeeklySlotAvailability"),
|
|
10238
10805
|
tags: [TAG_TEMPLATES.publicBookingAvailability, TAG_TEMPLATES.publicBookingServices],
|
|
10239
10806
|
auth: "public",
|
|
10240
10807
|
responseKind: "json",
|
|
@@ -10701,6 +11268,82 @@ var init_sdkMediaEndpointDefinitions = __esmMin((() => {
|
|
|
10701
11268
|
}
|
|
10702
11269
|
});
|
|
10703
11270
|
}));
|
|
11271
|
+
//#endregion
|
|
11272
|
+
//#region ../api/src/publicReadEndpointDefinitions.ts
|
|
11273
|
+
var PUBLIC_READ_ENDPOINT_DEFINITIONS;
|
|
11274
|
+
var init_publicReadEndpointDefinitions = __esmMin((() => {
|
|
11275
|
+
init_src$4();
|
|
11276
|
+
init_cache_tags();
|
|
11277
|
+
init_defineEndpointDefinitions();
|
|
11278
|
+
PUBLIC_READ_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
11279
|
+
getPublishedEntryPreview: {
|
|
11280
|
+
path: "/public/content/{siteId}/{type}/{slug}/preview",
|
|
11281
|
+
method: "GET",
|
|
11282
|
+
revalidate: publicReadFreshnessSeconds("getPublishedEntryPreview"),
|
|
11283
|
+
tags: ["content-{siteId}-{type}-{slug}"],
|
|
11284
|
+
auth: "public",
|
|
11285
|
+
responseKind: "json"
|
|
11286
|
+
},
|
|
11287
|
+
listPublishedEntries: {
|
|
11288
|
+
path: "/public/content/{siteId}/{type}/entries",
|
|
11289
|
+
method: "GET",
|
|
11290
|
+
revalidate: publicReadFreshnessSeconds("listPublishedEntries"),
|
|
11291
|
+
tags: ["content-{siteId}-{type}"],
|
|
11292
|
+
auth: "public",
|
|
11293
|
+
responseKind: "json"
|
|
11294
|
+
},
|
|
11295
|
+
getPublicFormById: {
|
|
11296
|
+
path: "/public/forms/{formId}",
|
|
11297
|
+
method: "GET",
|
|
11298
|
+
revalidate: publicReadFreshnessSeconds("getPublicFormById"),
|
|
11299
|
+
tags: [TAG_TEMPLATES.formById],
|
|
11300
|
+
auth: "public",
|
|
11301
|
+
responseKind: "json"
|
|
11302
|
+
},
|
|
11303
|
+
listPublicEvents: {
|
|
11304
|
+
path: "/public/sites/{siteId}/events",
|
|
11305
|
+
method: "GET",
|
|
11306
|
+
revalidate: publicReadFreshnessSeconds("listPublicEvents"),
|
|
11307
|
+
tags: [TAG_TEMPLATES.publicEvents],
|
|
11308
|
+
auth: "public",
|
|
11309
|
+
responseKind: "json"
|
|
11310
|
+
},
|
|
11311
|
+
listPublicTeamMembers: {
|
|
11312
|
+
path: "/public/sites/{siteId}/team-members",
|
|
11313
|
+
method: "GET",
|
|
11314
|
+
revalidate: publicReadFreshnessSeconds("listPublicTeamMembers"),
|
|
11315
|
+
tags: [TAG_TEMPLATES.publicTeamMembers],
|
|
11316
|
+
errors: [],
|
|
11317
|
+
auth: "public",
|
|
11318
|
+
responseKind: "json"
|
|
11319
|
+
},
|
|
11320
|
+
listPublicPasses: {
|
|
11321
|
+
path: "/public/sites/{siteId}/bookings/products/passes",
|
|
11322
|
+
method: "GET",
|
|
11323
|
+
revalidate: publicReadFreshnessSeconds("listPublicPasses"),
|
|
11324
|
+
tags: [TAG_TEMPLATES.publicPasses],
|
|
11325
|
+
auth: "public",
|
|
11326
|
+
responseKind: "json"
|
|
11327
|
+
},
|
|
11328
|
+
listPublicMemberships: {
|
|
11329
|
+
path: "/public/sites/{siteId}/bookings/products/memberships",
|
|
11330
|
+
method: "GET",
|
|
11331
|
+
revalidate: publicReadFreshnessSeconds("listPublicMemberships"),
|
|
11332
|
+
tags: [TAG_TEMPLATES.publicMemberships],
|
|
11333
|
+
auth: "public",
|
|
11334
|
+
responseKind: "json"
|
|
11335
|
+
},
|
|
11336
|
+
listPublicProducts: {
|
|
11337
|
+
path: "/public/sites/{siteId}/products",
|
|
11338
|
+
method: "GET",
|
|
11339
|
+
revalidate: publicReadFreshnessSeconds("listPublicProducts"),
|
|
11340
|
+
tags: [TAG_TEMPLATES.publicProducts],
|
|
11341
|
+
errors: [],
|
|
11342
|
+
auth: "public",
|
|
11343
|
+
responseKind: "json"
|
|
11344
|
+
}
|
|
11345
|
+
});
|
|
11346
|
+
}));
|
|
10704
11347
|
var init_endpoints = __esmMin((() => {
|
|
10705
11348
|
init_demoMutationPolicies();
|
|
10706
11349
|
init_cache_tags();
|
|
@@ -10717,15 +11360,17 @@ var init_endpoints = __esmMin((() => {
|
|
|
10717
11360
|
init_giftingEndpointDefinitions();
|
|
10718
11361
|
init_sdkEndpointDefinitions();
|
|
10719
11362
|
init_sdkMediaEndpointDefinitions();
|
|
11363
|
+
init_publicReadEndpointDefinitions();
|
|
10720
11364
|
({
|
|
10721
11365
|
...ACCOUNT_ENDPOINT_DEFINITIONS,
|
|
10722
11366
|
...PUBLIC_EVENT_ENDPOINT_DEFINITIONS,
|
|
10723
|
-
...GIFTING_ENDPOINT_DEFINITIONS
|
|
11367
|
+
...GIFTING_ENDPOINT_DEFINITIONS,
|
|
11368
|
+
...PUBLIC_READ_ENDPOINT_DEFINITIONS
|
|
10724
11369
|
}), TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, { ...SITE_API_KEY_ENDPOINT_DEFINITIONS }, TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, {
|
|
10725
11370
|
...NEWSLETTER_ENDPOINT_DEFINITIONS,
|
|
10726
11371
|
...APPOINTMENT_ENDPOINT_DEFINITIONS,
|
|
10727
11372
|
...EVENT_SERIES_REGISTRATION_ENDPOINT_DEFINITIONS
|
|
10728
|
-
}, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteById, TAG_TEMPLATES.siteBySlug, TAG_TEMPLATES.siteByDomain, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteById, TAG_TEMPLATES.siteBySlug, TAG_TEMPLATES.siteByDomain, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.workflowRunById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.routeById, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.
|
|
11373
|
+
}, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteById, TAG_TEMPLATES.siteBySlug, TAG_TEMPLATES.siteByDomain, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteById, TAG_TEMPLATES.siteBySlug, TAG_TEMPLATES.siteByDomain, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.workflowRunById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.routeById, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.navigationItemById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.navigationItemById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRedirects, TAG_TEMPLATES.siteRouteOutcomes, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRedirects, TAG_TEMPLATES.siteRouteOutcomes, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, { ...PUBLIC_BOOKING_AVAILABILITY_ENDPOINT_DEFINITIONS }, TAG_TEMPLATES.publicEventFilters, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicShop, TAG_TEMPLATES.publicCheckout, TAG_TEMPLATES.siteRoutableContent, { ...PUBLIC_EVENT_CHECKOUT_ENDPOINT_DEFINITIONS }, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, { ...EVENT_MANAGEMENT_ENDPOINT_DEFINITIONS }, { ...SDK_MEDIA_ENDPOINT_DEFINITIONS }, { ...SDK_ENDPOINT_DEFINITIONS }, { ...SDK_ENTRY_READ_ENDPOINTS };
|
|
10729
11374
|
}));
|
|
10730
11375
|
var init_preview_auth = __esmMin((() => {
|
|
10731
11376
|
z.object({ refreshToken: z.string().min(1).max(4096) }).strict();
|
|
@@ -21831,7 +22476,7 @@ var init_semantic = __esmMin((() => {
|
|
|
21831
22476
|
}));
|
|
21832
22477
|
//#endregion
|
|
21833
22478
|
//#region ../blocks/src/system/icons/value.ts
|
|
21834
|
-
function isRecord$
|
|
22479
|
+
function isRecord$8(value) {
|
|
21835
22480
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
21836
22481
|
}
|
|
21837
22482
|
function parseBlockIconValue(value) {
|
|
@@ -21839,7 +22484,7 @@ function parseBlockIconValue(value) {
|
|
|
21839
22484
|
kind: "semantic",
|
|
21840
22485
|
iconId: value
|
|
21841
22486
|
};
|
|
21842
|
-
if (!isRecord$
|
|
22487
|
+
if (!isRecord$8(value)) return NO_BLOCK_ICON_VALUE;
|
|
21843
22488
|
switch (value.kind) {
|
|
21844
22489
|
case "none": return NO_BLOCK_ICON_VALUE;
|
|
21845
22490
|
case "semantic": return isSemanticIconId$1(value.iconId) ? {
|
|
@@ -27510,102 +28155,31 @@ var init_newsletterForm = __esmMin((() => {
|
|
|
27510
28155
|
description: "Newsletter subscription form with preset field configurations.",
|
|
27511
28156
|
fields: [
|
|
27512
28157
|
{
|
|
27513
|
-
id: "
|
|
27514
|
-
type: "
|
|
27515
|
-
label: "
|
|
27516
|
-
description: "Choose
|
|
27517
|
-
defaultValue: "
|
|
27518
|
-
required:
|
|
27519
|
-
ui: { intent: "behavior" },
|
|
27520
|
-
options: [{
|
|
27521
|
-
value: "riverbank",
|
|
27522
|
-
label: "Riverbank newsletter"
|
|
27523
|
-
}]
|
|
27524
|
-
},
|
|
27525
|
-
{
|
|
27526
|
-
id: "listId",
|
|
27527
|
-
type: "reference",
|
|
27528
|
-
label: "Newsletter list",
|
|
27529
|
-
description: "Select the list new subscribers should be added to.",
|
|
27530
|
-
required: false,
|
|
27531
|
-
referenceKind: "newsletterList",
|
|
27532
|
-
allowManualEntry: false,
|
|
27533
|
-
ui: {
|
|
27534
|
-
intent: "behavior",
|
|
27535
|
-
visibleWhen: {
|
|
27536
|
-
field: "destinationProvider",
|
|
27537
|
-
equals: "riverbank"
|
|
27538
|
-
}
|
|
27539
|
-
}
|
|
27540
|
-
},
|
|
27541
|
-
{
|
|
27542
|
-
id: "mailchimpAudienceId",
|
|
27543
|
-
type: "reference",
|
|
27544
|
-
label: "Mailchimp audience",
|
|
27545
|
-
description: "Choose the Mailchimp audience for new subscribers.",
|
|
27546
|
-
required: false,
|
|
27547
|
-
referenceKind: "mailchimpAudience",
|
|
27548
|
-
allowManualEntry: false,
|
|
27549
|
-
ui: {
|
|
27550
|
-
intent: "behavior",
|
|
27551
|
-
visibleWhen: {
|
|
27552
|
-
field: "destinationProvider",
|
|
27553
|
-
equals: "mailchimp"
|
|
27554
|
-
}
|
|
27555
|
-
}
|
|
27556
|
-
},
|
|
27557
|
-
{
|
|
27558
|
-
id: "mailchimpTags",
|
|
27559
|
-
type: "text",
|
|
27560
|
-
label: "Mailchimp tags",
|
|
27561
|
-
description: "Optional tags to apply in Mailchimp, separated by commas or semicolons.",
|
|
28158
|
+
id: "targeting",
|
|
28159
|
+
type: "group",
|
|
28160
|
+
label: "Mailing-list targeting",
|
|
28161
|
+
description: "Choose what kind of emails people signing up here will receive.",
|
|
28162
|
+
defaultValue: { mode: "default" },
|
|
28163
|
+
required: true,
|
|
27562
28164
|
ui: {
|
|
27563
28165
|
intent: "behavior",
|
|
27564
|
-
|
|
27565
|
-
|
|
27566
|
-
|
|
27567
|
-
|
|
27568
|
-
|
|
27569
|
-
|
|
27570
|
-
|
|
27571
|
-
|
|
27572
|
-
|
|
27573
|
-
|
|
27574
|
-
|
|
27575
|
-
|
|
27576
|
-
|
|
27577
|
-
|
|
27578
|
-
|
|
27579
|
-
|
|
27580
|
-
|
|
27581
|
-
},
|
|
27582
|
-
{
|
|
27583
|
-
value: "emailName",
|
|
27584
|
-
label: "Email + Name"
|
|
27585
|
-
},
|
|
27586
|
-
{
|
|
27587
|
-
value: "emailFirstLast",
|
|
27588
|
-
label: "Email + First/Last Name"
|
|
27589
|
-
},
|
|
27590
|
-
{
|
|
27591
|
-
value: "emailNameCompany",
|
|
27592
|
-
label: "Email + Name + Company (B2B)"
|
|
27593
|
-
}
|
|
27594
|
-
]
|
|
27595
|
-
},
|
|
27596
|
-
{
|
|
27597
|
-
id: "includePhone",
|
|
27598
|
-
type: "boolean",
|
|
27599
|
-
label: "Include phone field (optional)",
|
|
27600
|
-
description: "Adds an optional phone field to the selected preset (never required).",
|
|
27601
|
-
defaultValue: false,
|
|
27602
|
-
ui: { intent: "display" }
|
|
27603
|
-
},
|
|
27604
|
-
{
|
|
27605
|
-
id: "buttonLabel",
|
|
27606
|
-
type: "text",
|
|
27607
|
-
label: "Button label",
|
|
27608
|
-
defaultValue: "Subscribe"
|
|
28166
|
+
widget: "mailingListTargeting"
|
|
28167
|
+
},
|
|
28168
|
+
schema: { fields: [{
|
|
28169
|
+
id: "mode",
|
|
28170
|
+
type: "select",
|
|
28171
|
+
label: "Mode",
|
|
28172
|
+
required: true,
|
|
28173
|
+
defaultValue: "default",
|
|
28174
|
+
options: [{
|
|
28175
|
+
value: "default",
|
|
28176
|
+
label: "Default"
|
|
28177
|
+
}, {
|
|
28178
|
+
value: "custom",
|
|
28179
|
+
label: "Custom"
|
|
28180
|
+
}],
|
|
28181
|
+
ui: { hidden: true }
|
|
28182
|
+
}] }
|
|
27609
28183
|
},
|
|
27610
28184
|
createButtonVariantField({
|
|
27611
28185
|
id: "buttonVariant",
|
|
@@ -27613,46 +28187,42 @@ var init_newsletterForm = __esmMin((() => {
|
|
|
27613
28187
|
defaultValue: "primary"
|
|
27614
28188
|
}),
|
|
27615
28189
|
{
|
|
27616
|
-
id: "
|
|
28190
|
+
id: "mailingListSource",
|
|
27617
28191
|
type: "text",
|
|
27618
|
-
label: "
|
|
27619
|
-
|
|
27620
|
-
|
|
27621
|
-
|
|
27622
|
-
|
|
27623
|
-
id: "privacyNote",
|
|
27624
|
-
type: "text",
|
|
27625
|
-
label: "Privacy note",
|
|
27626
|
-
description: "Optional small text below the form (e.g., privacy policy link)."
|
|
28192
|
+
label: "Mailing-list source",
|
|
28193
|
+
ui: {
|
|
28194
|
+
hidden: true,
|
|
28195
|
+
intent: "behavior"
|
|
28196
|
+
}
|
|
27627
28197
|
},
|
|
27628
28198
|
{
|
|
27629
|
-
id: "
|
|
28199
|
+
id: "mailingListSourceToken",
|
|
27630
28200
|
type: "text",
|
|
27631
|
-
label: "
|
|
27632
|
-
description: "Optional tags to apply on subscribe (comma or semicolon separated).",
|
|
28201
|
+
label: "Mailing-list source token",
|
|
27633
28202
|
ui: {
|
|
27634
|
-
|
|
27635
|
-
|
|
27636
|
-
field: "destinationProvider",
|
|
27637
|
-
equals: "riverbank"
|
|
27638
|
-
}
|
|
28203
|
+
hidden: true,
|
|
28204
|
+
intent: "behavior"
|
|
27639
28205
|
}
|
|
27640
28206
|
}
|
|
27641
28207
|
],
|
|
27642
28208
|
layout: [el$1("newsletter-form", withApiBindings$1({
|
|
27643
|
-
source:
|
|
27644
|
-
|
|
27645
|
-
|
|
27646
|
-
|
|
27647
|
-
|
|
27648
|
-
|
|
28209
|
+
source: { $bind: {
|
|
28210
|
+
from: "mailingListSource",
|
|
28211
|
+
fallback: "block"
|
|
28212
|
+
} },
|
|
28213
|
+
sourceRef: {
|
|
28214
|
+
tag: "signed_source_ref",
|
|
28215
|
+
token: { $bind: { from: "mailingListSourceToken" } }
|
|
28216
|
+
},
|
|
28217
|
+
targeting: { $bind: {
|
|
28218
|
+
from: "targeting",
|
|
28219
|
+
fallback: { mode: "default" }
|
|
28220
|
+
} },
|
|
28221
|
+
mailingList: { $bind: { from: "$root.mailingList" } },
|
|
27649
28222
|
buttonVariant: { $bind: {
|
|
27650
28223
|
from: "buttonVariant",
|
|
27651
28224
|
fallback: "primary"
|
|
27652
28225
|
} },
|
|
27653
|
-
successMessage: { $bind: { from: "successMessage" } },
|
|
27654
|
-
privacyNote: { $bind: { from: "privacyNote" } },
|
|
27655
|
-
tags: { $bind: { from: "tags" } },
|
|
27656
28226
|
spamProtectionEnabled: { $bind: { from: "$root.spamProtectionEnabled" } }
|
|
27657
28227
|
}), [])]
|
|
27658
28228
|
});
|
|
@@ -30011,14 +30581,19 @@ var init_contact_newsletter = __esmMin((() => {
|
|
|
30011
30581
|
as: "h2",
|
|
30012
30582
|
className: "newsletter-copy-title"
|
|
30013
30583
|
}, when("newsletterTitle"), bind$1("newsletterTitle")), richText({ className: "newsletter-copy-subtitle rb-prose rb-max-w-none" }, when("newsletterSubtitle"), bind$1("newsletterSubtitle"))]), el$1("newsletter-form", withApiBindings$1({
|
|
30014
|
-
source:
|
|
30015
|
-
|
|
30016
|
-
|
|
30017
|
-
|
|
30018
|
-
|
|
30019
|
-
|
|
30020
|
-
|
|
30021
|
-
|
|
30584
|
+
source: { $bind: {
|
|
30585
|
+
from: "mailingListSource",
|
|
30586
|
+
fallback: "block"
|
|
30587
|
+
} },
|
|
30588
|
+
sourceRef: {
|
|
30589
|
+
tag: "signed_source_ref",
|
|
30590
|
+
token: { $bind: { from: "mailingListSourceToken" } }
|
|
30591
|
+
},
|
|
30592
|
+
targeting: { $bind: {
|
|
30593
|
+
from: "targeting",
|
|
30594
|
+
fallback: { mode: "default" }
|
|
30595
|
+
} },
|
|
30596
|
+
mailingList: { $bind: { from: "$root.mailingList" } },
|
|
30022
30597
|
spamProtectionEnabled: { $bind: { from: "$root.spamProtectionEnabled" } }
|
|
30023
30598
|
}), [])])])], { className: "contact-newsletter-container" }),
|
|
30024
30599
|
baseClass: "",
|
|
@@ -30053,79 +30628,55 @@ var init_contact_newsletter = __esmMin((() => {
|
|
|
30053
30628
|
label: "Newsletter intro"
|
|
30054
30629
|
},
|
|
30055
30630
|
{
|
|
30056
|
-
id: "
|
|
30057
|
-
type: "
|
|
30058
|
-
label: "
|
|
30059
|
-
description: "
|
|
30631
|
+
id: "targeting",
|
|
30632
|
+
type: "group",
|
|
30633
|
+
label: "Mailing-list targeting",
|
|
30634
|
+
description: "Choose what kind of emails people signing up here will receive.",
|
|
30060
30635
|
required: true,
|
|
30061
|
-
|
|
30062
|
-
|
|
30063
|
-
|
|
30064
|
-
|
|
30065
|
-
|
|
30066
|
-
|
|
30067
|
-
|
|
30068
|
-
|
|
30069
|
-
|
|
30070
|
-
|
|
30071
|
-
|
|
30072
|
-
{
|
|
30073
|
-
value: "
|
|
30074
|
-
label: "
|
|
30075
|
-
},
|
|
30076
|
-
|
|
30077
|
-
|
|
30078
|
-
|
|
30079
|
-
}
|
|
30080
|
-
|
|
30081
|
-
value: "emailFirstLast",
|
|
30082
|
-
label: "Email + First/Last Name"
|
|
30083
|
-
},
|
|
30084
|
-
{
|
|
30085
|
-
value: "emailNameCompany",
|
|
30086
|
-
label: "Email + Name + Company (B2B)"
|
|
30087
|
-
}
|
|
30088
|
-
]
|
|
30089
|
-
},
|
|
30090
|
-
{
|
|
30091
|
-
id: "includePhone",
|
|
30092
|
-
type: "boolean",
|
|
30093
|
-
label: "Include phone field",
|
|
30094
|
-
defaultValue: false,
|
|
30095
|
-
ui: { intent: "display" }
|
|
30096
|
-
},
|
|
30097
|
-
{
|
|
30098
|
-
id: "newsletterButtonLabel",
|
|
30099
|
-
type: "text",
|
|
30100
|
-
label: "Newsletter button label",
|
|
30101
|
-
defaultValue: "Subscribe",
|
|
30102
|
-
ui: { intent: "display" }
|
|
30103
|
-
},
|
|
30104
|
-
{
|
|
30105
|
-
id: "newsletterSuccessMessage",
|
|
30106
|
-
type: "text",
|
|
30107
|
-
label: "Newsletter success message",
|
|
30108
|
-
defaultValue: "Thanks for subscribing!",
|
|
30109
|
-
ui: { intent: "behavior" }
|
|
30636
|
+
defaultValue: { mode: "default" },
|
|
30637
|
+
ui: {
|
|
30638
|
+
intent: "behavior",
|
|
30639
|
+
widget: "mailingListTargeting"
|
|
30640
|
+
},
|
|
30641
|
+
schema: { fields: [{
|
|
30642
|
+
id: "mode",
|
|
30643
|
+
type: "select",
|
|
30644
|
+
label: "Mode",
|
|
30645
|
+
required: true,
|
|
30646
|
+
defaultValue: "default",
|
|
30647
|
+
options: [{
|
|
30648
|
+
value: "default",
|
|
30649
|
+
label: "Default"
|
|
30650
|
+
}, {
|
|
30651
|
+
value: "custom",
|
|
30652
|
+
label: "Custom"
|
|
30653
|
+
}],
|
|
30654
|
+
ui: { hidden: true }
|
|
30655
|
+
}] }
|
|
30110
30656
|
},
|
|
30111
30657
|
{
|
|
30112
|
-
id: "
|
|
30658
|
+
id: "contactTitle",
|
|
30113
30659
|
type: "text",
|
|
30114
|
-
label: "
|
|
30115
|
-
|
|
30660
|
+
label: "Contact title",
|
|
30661
|
+
defaultValue: "Get in touch"
|
|
30116
30662
|
},
|
|
30117
30663
|
{
|
|
30118
|
-
id: "
|
|
30664
|
+
id: "mailingListSource",
|
|
30119
30665
|
type: "text",
|
|
30120
|
-
label: "
|
|
30121
|
-
|
|
30122
|
-
|
|
30666
|
+
label: "Mailing-list source",
|
|
30667
|
+
ui: {
|
|
30668
|
+
hidden: true,
|
|
30669
|
+
intent: "behavior"
|
|
30670
|
+
}
|
|
30123
30671
|
},
|
|
30124
30672
|
{
|
|
30125
|
-
id: "
|
|
30673
|
+
id: "mailingListSourceToken",
|
|
30126
30674
|
type: "text",
|
|
30127
|
-
label: "
|
|
30128
|
-
|
|
30675
|
+
label: "Mailing-list source token",
|
|
30676
|
+
ui: {
|
|
30677
|
+
hidden: true,
|
|
30678
|
+
intent: "behavior"
|
|
30679
|
+
}
|
|
30129
30680
|
},
|
|
30130
30681
|
{
|
|
30131
30682
|
id: "contactIntro",
|
|
@@ -30305,7 +30856,7 @@ var init_faq = __esmMin((() => {
|
|
|
30305
30856
|
function toUnknownArray(value) {
|
|
30306
30857
|
return Array.isArray(value) ? value : [];
|
|
30307
30858
|
}
|
|
30308
|
-
var uppercaseTransform, fallbackTransform, dateFormatShort, arrayLengthTransform, jsonArrayTransform, csvTransform, marqueeLoopOptionsSchema, marqueeLoopTransform, mapTokenOptionsSchema, mapTokenTransform, formattingTransforms;
|
|
30859
|
+
var uppercaseTransform, fallbackTransform, dateFormatShort, arrayLengthTransform, booleanNotTransform, jsonArrayTransform, csvTransform, marqueeLoopOptionsSchema, marqueeLoopTransform, mapTokenOptionsSchema, mapTokenTransform, equalsTransform, formattingTransforms;
|
|
30309
30860
|
var init_formatting = __esmMin((() => {
|
|
30310
30861
|
uppercaseTransform = {
|
|
30311
30862
|
id: "string.uppercase",
|
|
@@ -30345,6 +30896,12 @@ var init_formatting = __esmMin((() => {
|
|
|
30345
30896
|
summary: "Get the length of an array",
|
|
30346
30897
|
run: (value) => Array.isArray(value) ? value.length : 0
|
|
30347
30898
|
};
|
|
30899
|
+
booleanNotTransform = {
|
|
30900
|
+
id: "boolean.not",
|
|
30901
|
+
kind: "formatter",
|
|
30902
|
+
summary: "Invert a boolean value; fail closed to false for other inputs",
|
|
30903
|
+
run: (value) => typeof value === "boolean" ? !value : false
|
|
30904
|
+
};
|
|
30348
30905
|
jsonArrayTransform = {
|
|
30349
30906
|
id: "value.jsonArray",
|
|
30350
30907
|
kind: "formatter",
|
|
@@ -30413,11 +30970,20 @@ var init_formatting = __esmMin((() => {
|
|
|
30413
30970
|
return role ? `rgb(var(--tb-${role}))` : void 0;
|
|
30414
30971
|
}
|
|
30415
30972
|
};
|
|
30973
|
+
equalsTransform = {
|
|
30974
|
+
id: "value.equals",
|
|
30975
|
+
kind: "formatter",
|
|
30976
|
+
summary: "Compare a value to a fixed string",
|
|
30977
|
+
schema: z.object({ value: z.string() }),
|
|
30978
|
+
run: (value, options) => value === options.value
|
|
30979
|
+
};
|
|
30416
30980
|
formattingTransforms = [
|
|
30981
|
+
equalsTransform,
|
|
30417
30982
|
uppercaseTransform,
|
|
30418
30983
|
fallbackTransform,
|
|
30419
30984
|
dateFormatShort,
|
|
30420
30985
|
arrayLengthTransform,
|
|
30986
|
+
booleanNotTransform,
|
|
30421
30987
|
jsonArrayTransform,
|
|
30422
30988
|
csvTransform,
|
|
30423
30989
|
marqueeLoopTransform,
|
|
@@ -31466,16 +32032,16 @@ var init_media$1 = __esmMin((() => {
|
|
|
31466
32032
|
//#region ../blocks/src/system/transforms/registry/content.ts
|
|
31467
32033
|
function getSiteName(context) {
|
|
31468
32034
|
const viewModel = context.viewModel;
|
|
31469
|
-
if (!isRecord$
|
|
32035
|
+
if (!isRecord$9(viewModel)) return null;
|
|
31470
32036
|
const site = viewModel.site;
|
|
31471
|
-
if (isRecord$
|
|
32037
|
+
if (isRecord$9(site) && typeof site.title === "string") {
|
|
31472
32038
|
const title = site.title.trim();
|
|
31473
32039
|
return title.length > 0 ? title : null;
|
|
31474
32040
|
}
|
|
31475
32041
|
const root = viewModel.$root;
|
|
31476
|
-
if (isRecord$
|
|
32042
|
+
if (isRecord$9(root)) {
|
|
31477
32043
|
const rootSite = root.site;
|
|
31478
|
-
if (isRecord$
|
|
32044
|
+
if (isRecord$9(rootSite) && typeof rootSite.title === "string") {
|
|
31479
32045
|
const title = rootSite.title.trim();
|
|
31480
32046
|
if (title.length > 0) return title;
|
|
31481
32047
|
}
|
|
@@ -31497,7 +32063,7 @@ function replaceTokenText(input, allowedTokens, tokenValues) {
|
|
|
31497
32063
|
});
|
|
31498
32064
|
}
|
|
31499
32065
|
function visitRichTextNode(node, allowedTokens, tokenValues) {
|
|
31500
|
-
if (!isRecord$
|
|
32066
|
+
if (!isRecord$9(node)) return node;
|
|
31501
32067
|
let changed = false;
|
|
31502
32068
|
const nextNode = { ...node };
|
|
31503
32069
|
if (nextNode.type === "text" && typeof nextNode.text === "string") {
|
|
@@ -31518,7 +32084,7 @@ function visitRichTextNode(node, allowedTokens, tokenValues) {
|
|
|
31518
32084
|
return changed ? nextNode : node;
|
|
31519
32085
|
}
|
|
31520
32086
|
function interpolateRichTextTokens(value, options, context) {
|
|
31521
|
-
if (!isRecord$
|
|
32087
|
+
if (!isRecord$9(value)) return value;
|
|
31522
32088
|
return visitRichTextNode(value, new Set(options.tokens), {
|
|
31523
32089
|
year: String((/* @__PURE__ */ new Date()).getFullYear()),
|
|
31524
32090
|
site_name: getSiteName(context)
|
|
@@ -31924,13 +32490,9 @@ var init_site_footer = __esmMin((() => {
|
|
|
31924
32490
|
};
|
|
31925
32491
|
footerMailingListBindings = {
|
|
31926
32492
|
source: { $bind: { from: "module.engagement.runtime.source" } },
|
|
31927
|
-
|
|
31928
|
-
|
|
31929
|
-
|
|
31930
|
-
includePhone: { $bind: { from: "module.engagement.runtime.includePhone" } },
|
|
31931
|
-
buttonLabel: { $bind: { from: "module.engagement.runtime.buttonLabel" } },
|
|
31932
|
-
successMessage: { $bind: { from: "module.engagement.runtime.successMessage" } },
|
|
31933
|
-
privacyNote: { $bind: { from: "module.engagement.runtime.privacyNote" } }
|
|
32493
|
+
sourceRef: { $bind: { from: "module.engagement.runtime.sourceRef" } },
|
|
32494
|
+
mailingList: { $bind: { from: "module.engagement.runtime.mailingList" } },
|
|
32495
|
+
targeting: { $bind: { from: "module.engagement.runtime.targeting" } }
|
|
31934
32496
|
};
|
|
31935
32497
|
footerSpamProtectionBinding = { spamProtectionEnabled: { $bind: { from: "$root.spamProtectionEnabled" } } };
|
|
31936
32498
|
brandLogo = link({
|
|
@@ -33684,6 +34246,89 @@ var init_appointment_booking = __esmMin((() => {
|
|
|
33684
34246
|
};
|
|
33685
34247
|
}));
|
|
33686
34248
|
//#endregion
|
|
34249
|
+
//#region ../blocks/src/system/blocks/appointment-services.tsx
|
|
34250
|
+
var appointmentServicesManifest, appointmentServicesBlockDefinition;
|
|
34251
|
+
var init_appointment_services = __esmMin((() => {
|
|
34252
|
+
init_builder$1();
|
|
34253
|
+
init_styledSection();
|
|
34254
|
+
init_fragments$1();
|
|
34255
|
+
init_boxStyles$1();
|
|
34256
|
+
init_defineBlock();
|
|
34257
|
+
appointmentServicesManifest = createBlockManifest({
|
|
34258
|
+
id: "block.appointment-services",
|
|
34259
|
+
version: "1.0.0",
|
|
34260
|
+
title: "Appointment Services",
|
|
34261
|
+
titleSource: "heading",
|
|
34262
|
+
description: "List public appointment services with booking links",
|
|
34263
|
+
skipSectionStyles: true,
|
|
34264
|
+
additionalFields: [
|
|
34265
|
+
{
|
|
34266
|
+
id: "heading",
|
|
34267
|
+
type: "text",
|
|
34268
|
+
label: "Heading",
|
|
34269
|
+
required: false,
|
|
34270
|
+
multiline: false,
|
|
34271
|
+
defaultValue: "Appointments",
|
|
34272
|
+
ui: { intent: "content" }
|
|
34273
|
+
},
|
|
34274
|
+
{
|
|
34275
|
+
id: "description",
|
|
34276
|
+
type: "richText",
|
|
34277
|
+
label: "Description",
|
|
34278
|
+
required: false,
|
|
34279
|
+
ui: { intent: "content" }
|
|
34280
|
+
},
|
|
34281
|
+
sectionStylesField({
|
|
34282
|
+
id: "_sectionStyles",
|
|
34283
|
+
label: "Section styles",
|
|
34284
|
+
renderInHeader: false
|
|
34285
|
+
})
|
|
34286
|
+
],
|
|
34287
|
+
styleTokens: {
|
|
34288
|
+
background: "surface",
|
|
34289
|
+
typography: "body",
|
|
34290
|
+
spacing: "md"
|
|
34291
|
+
},
|
|
34292
|
+
behaviours: {
|
|
34293
|
+
supportsThemeSwitching: true,
|
|
34294
|
+
inlineEditing: true,
|
|
34295
|
+
animation: false,
|
|
34296
|
+
paletteHidden: false
|
|
34297
|
+
},
|
|
34298
|
+
category: "interactive",
|
|
34299
|
+
contentSource: { kind: "inline" },
|
|
34300
|
+
tags: [
|
|
34301
|
+
"booking",
|
|
34302
|
+
"appointment",
|
|
34303
|
+
"services",
|
|
34304
|
+
"scheduling"
|
|
34305
|
+
],
|
|
34306
|
+
icon: "CalendarDays",
|
|
34307
|
+
layout: [styledSection({
|
|
34308
|
+
baseClass: "",
|
|
34309
|
+
spacing: "spacious",
|
|
34310
|
+
children: sectionContainer([
|
|
34311
|
+
text({ as: "h2" }, bind$1("content.heading"), when("content.heading")),
|
|
34312
|
+
richText({ className: "rb-prose rb-max-w-none" }, bind$1("content.description"), when("content.description")),
|
|
34313
|
+
el$1("appointment-services", {
|
|
34314
|
+
sectionHeading: { $bind: { from: "content.heading" } },
|
|
34315
|
+
services: { $bind: { from: "data.services" } },
|
|
34316
|
+
pathname: { $bind: { from: "$root.pathname" } }
|
|
34317
|
+
})
|
|
34318
|
+
], { gap: "lg" })
|
|
34319
|
+
})]
|
|
34320
|
+
});
|
|
34321
|
+
appointmentServicesBlockDefinition = {
|
|
34322
|
+
manifest: appointmentServicesManifest,
|
|
34323
|
+
dataSchemas: { services: z.unknown().optional() },
|
|
34324
|
+
dataLoaders: { services: {
|
|
34325
|
+
endpoint: "getPublicBookingServices",
|
|
34326
|
+
params: { siteId: { $bind: { from: "$root.siteId" } } },
|
|
34327
|
+
mode: "server"
|
|
34328
|
+
} }
|
|
34329
|
+
};
|
|
34330
|
+
}));
|
|
34331
|
+
//#endregion
|
|
33687
34332
|
//#region ../blocks/src/system/blocks/weekly-slot-availability.ts
|
|
33688
34333
|
var weeklySlotAvailabilityManifest, weeklySlotAvailabilityOptionSchema, weeklySlotAvailabilityDataSchema, weeklySlotAvailabilityBlockDefinition;
|
|
33689
34334
|
var init_weekly_slot_availability = __esmMin((() => {
|
|
@@ -33950,7 +34595,7 @@ var init_runGrouping = __esmMin((() => {}));
|
|
|
33950
34595
|
//#endregion
|
|
33951
34596
|
//#region ../blocks/src/system/blocks/events/shared/fields.ts
|
|
33952
34597
|
var cardStylingFields, eventDisplayFields, emptyStateField, sectionHeaderFields, layoutField, columnsField;
|
|
33953
|
-
var init_fields = __esmMin((() => {
|
|
34598
|
+
var init_fields$1 = __esmMin((() => {
|
|
33954
34599
|
init_button();
|
|
33955
34600
|
init_boxStyles$1();
|
|
33956
34601
|
cardStylingFields = [
|
|
@@ -34096,7 +34741,7 @@ var init_shared$2 = __esmMin((() => {
|
|
|
34096
34741
|
init_types$2();
|
|
34097
34742
|
init_schemas();
|
|
34098
34743
|
init_runGrouping();
|
|
34099
|
-
init_fields();
|
|
34744
|
+
init_fields$1();
|
|
34100
34745
|
init_filtering();
|
|
34101
34746
|
init_layout$1();
|
|
34102
34747
|
}));
|
|
@@ -34220,6 +34865,9 @@ var init_eventScope = __esmMin((() => {
|
|
|
34220
34865
|
//#region ../blocks/src/system/runtime/nodes/events/domain/capacity.ts
|
|
34221
34866
|
var init_capacity = __esmMin((() => {}));
|
|
34222
34867
|
//#endregion
|
|
34868
|
+
//#region ../blocks/src/system/runtime/nodes/events/domain/bookability.ts
|
|
34869
|
+
var init_bookability = __esmMin((() => {}));
|
|
34870
|
+
//#endregion
|
|
34223
34871
|
//#region ../blocks/src/system/runtime/nodes/events/domain/cta.ts
|
|
34224
34872
|
var init_cta$1 = __esmMin((() => {}));
|
|
34225
34873
|
//#endregion
|
|
@@ -34227,11 +34875,11 @@ var init_cta$1 = __esmMin((() => {}));
|
|
|
34227
34875
|
var init_dates = __esmMin((() => {}));
|
|
34228
34876
|
//#endregion
|
|
34229
34877
|
//#region ../blocks/src/system/runtime/nodes/events/domain/destination.ts
|
|
34230
|
-
function isRecord$
|
|
34878
|
+
function isRecord$7(value) {
|
|
34231
34879
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
34232
34880
|
}
|
|
34233
34881
|
function isRuntimeEventDestination(value) {
|
|
34234
|
-
if (!isRecord$
|
|
34882
|
+
if (!isRecord$7(value) || typeof value.kind !== "string") return false;
|
|
34235
34883
|
if (value.kind === "native") return (value.mode === "cms-managed" || value.mode === "system-managed") && typeof value.path === "string";
|
|
34236
34884
|
return value.kind === "external" && typeof value.url === "string" && typeof value.label === "string";
|
|
34237
34885
|
}
|
|
@@ -34245,20 +34893,33 @@ function resolveRuntimeEventDestination(event) {
|
|
|
34245
34893
|
}
|
|
34246
34894
|
var init_destination = __esmMin((() => {}));
|
|
34247
34895
|
//#endregion
|
|
34896
|
+
//#region ../blocks/src/system/runtime/nodes/events/domain/duration.ts
|
|
34897
|
+
var init_duration = __esmMin((() => {}));
|
|
34898
|
+
//#endregion
|
|
34899
|
+
//#region ../blocks/src/system/runtime/nodes/events/domain/location.ts
|
|
34900
|
+
var init_location = __esmMin((() => {}));
|
|
34901
|
+
//#endregion
|
|
34248
34902
|
//#region ../blocks/src/system/runtime/nodes/events/domain/people.ts
|
|
34249
34903
|
var init_people = __esmMin((() => {}));
|
|
34250
34904
|
//#endregion
|
|
34251
34905
|
//#region ../blocks/src/system/runtime/nodes/events/domain/pricing.ts
|
|
34252
34906
|
var init_pricing = __esmMin((() => {}));
|
|
34253
34907
|
//#endregion
|
|
34908
|
+
//#region ../blocks/src/system/runtime/nodes/events/domain/quickDates.ts
|
|
34909
|
+
var init_quickDates = __esmMin((() => {}));
|
|
34910
|
+
//#endregion
|
|
34254
34911
|
//#region ../blocks/src/system/runtime/nodes/events/domain/index.ts
|
|
34255
34912
|
var init_domain = __esmMin((() => {
|
|
34256
34913
|
init_capacity();
|
|
34914
|
+
init_bookability();
|
|
34257
34915
|
init_cta$1();
|
|
34258
34916
|
init_dates();
|
|
34259
34917
|
init_destination();
|
|
34918
|
+
init_duration();
|
|
34919
|
+
init_location();
|
|
34260
34920
|
init_people();
|
|
34261
34921
|
init_pricing();
|
|
34922
|
+
init_quickDates();
|
|
34262
34923
|
}));
|
|
34263
34924
|
//#endregion
|
|
34264
34925
|
//#region ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
|
|
@@ -34384,8 +35045,8 @@ var init_registrationEventAdapter = __esmMin((() => {
|
|
|
34384
35045
|
}));
|
|
34385
35046
|
//#endregion
|
|
34386
35047
|
//#region ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
|
|
34387
|
-
function
|
|
34388
|
-
const selectedRun = resolveSelectedWholeSeriesRun(
|
|
35048
|
+
function buildEventRegistrationDisplayFromScopedEvents(source, scopedSourceEvents) {
|
|
35049
|
+
const selectedRun = resolveSelectedWholeSeriesRun(scopedSourceEvents);
|
|
34389
35050
|
if (selectedRun && (!selectedRun.run.enrollmentOpen || toWholeSeriesRegistrationEvent(selectedRun) === null)) return {
|
|
34390
35051
|
kind: "event-registration",
|
|
34391
35052
|
state: "registration-closed",
|
|
@@ -34393,7 +35054,7 @@ function buildEventRegistrationDisplay(source) {
|
|
|
34393
35054
|
titleText: "Registration closed",
|
|
34394
35055
|
bodyText: "This run is no longer open for bookings."
|
|
34395
35056
|
};
|
|
34396
|
-
const stepLabels = buildEventRegistrationShellStepLabels(source);
|
|
35057
|
+
const stepLabels = buildEventRegistrationShellStepLabels(source, scopedSourceEvents);
|
|
34397
35058
|
return {
|
|
34398
35059
|
kind: "event-registration",
|
|
34399
35060
|
state: "generic-shell",
|
|
@@ -34404,8 +35065,8 @@ function buildEventRegistrationDisplay(source) {
|
|
|
34404
35065
|
summaryButtonText: source.buttonText?.trim() || "Register"
|
|
34405
35066
|
};
|
|
34406
35067
|
}
|
|
34407
|
-
function buildEventRegistrationShellStepLabels(source) {
|
|
34408
|
-
const selectedRun = resolveSelectedWholeSeriesRun(
|
|
35068
|
+
function buildEventRegistrationShellStepLabels(source, scopedSourceEvents) {
|
|
35069
|
+
const selectedRun = resolveSelectedWholeSeriesRun(scopedSourceEvents);
|
|
34409
35070
|
if (selectedRun) {
|
|
34410
35071
|
const selectedEvent = toWholeSeriesRegistrationEvent(selectedRun);
|
|
34411
35072
|
if (!selectedEvent) return EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS;
|
|
@@ -34415,7 +35076,7 @@ function buildEventRegistrationShellStepLabels(source) {
|
|
|
34415
35076
|
event: selectedEvent
|
|
34416
35077
|
})).map((step) => shellLabelForRegistrationStep(step, [selectedEvent]));
|
|
34417
35078
|
}
|
|
34418
|
-
const scopedEvents =
|
|
35079
|
+
const scopedEvents = toScopedEventRegistrationEvents(scopedSourceEvents);
|
|
34419
35080
|
if (scopedEvents.length === 0) return EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS;
|
|
34420
35081
|
const preSelectedEvent = findPreSelectedEvent({
|
|
34421
35082
|
scopedEvents,
|
|
@@ -34428,31 +35089,25 @@ function buildEventRegistrationShellStepLabels(source) {
|
|
|
34428
35089
|
event: preSelectedEvent
|
|
34429
35090
|
}) : false).map((step) => shellLabelForRegistrationStep(step, scopedEvents));
|
|
34430
35091
|
}
|
|
34431
|
-
function
|
|
34432
|
-
|
|
34433
|
-
return [...toRegistrationEvents(scoped), ...toWholeSeriesRegistrationEvents(scoped)];
|
|
35092
|
+
function toScopedEventRegistrationEvents(scopedSourceEvents) {
|
|
35093
|
+
return [...toRegistrationEvents(scopedSourceEvents), ...toWholeSeriesRegistrationEvents(scopedSourceEvents)];
|
|
34434
35094
|
}
|
|
34435
|
-
/**
|
|
34436
|
-
* Every event this surface may register for, from both of its loads.
|
|
34437
|
-
*
|
|
34438
|
-
* The date page and the run read answer different questions and can name the
|
|
34439
|
-
* same occurrence, so the two lists are joined and any occurrence that arrives
|
|
34440
|
-
* twice is kept once, in the order the date page gave it.
|
|
34441
|
-
*/
|
|
34442
35095
|
function scopeEventRegistrationSourceEvents(source) {
|
|
34443
|
-
|
|
34444
|
-
for (const event of [...source.events ?? [], ...source.wholeSeriesRunEvents ?? []]) if (!byOccurrenceId.has(event.occurrenceId)) byOccurrenceId.set(event.occurrenceId, event);
|
|
34445
|
-
return resolveEventRegistrationScopedEvents([...byOccurrenceId.values()], {
|
|
35096
|
+
return resolveEventRegistrationScopedEvents(source.wholeSeriesRunEvents ?? source.events ?? [], {
|
|
34446
35097
|
occurrenceContext: source.occurrenceContext,
|
|
34447
35098
|
subject: source.subject
|
|
34448
35099
|
});
|
|
34449
35100
|
}
|
|
35101
|
+
function resolveLoadedEventRegistrationSourceEvents(source, scopedSourceEvents) {
|
|
35102
|
+
if (source.events == null && source.wholeSeriesRunEvents == null) return null;
|
|
35103
|
+
return [...scopedSourceEvents];
|
|
35104
|
+
}
|
|
34450
35105
|
/**
|
|
34451
35106
|
* The one run this surface is registering for, when the scoped events describe
|
|
34452
35107
|
* exactly one. More than one run means the visitor still has to choose.
|
|
34453
35108
|
*/
|
|
34454
|
-
function resolveSelectedWholeSeriesRun(
|
|
34455
|
-
const runs = groupPublicEventsByRun(
|
|
35109
|
+
function resolveSelectedWholeSeriesRun(scopedSourceEvents) {
|
|
35110
|
+
const runs = groupPublicEventsByRun(scopedSourceEvents);
|
|
34456
35111
|
return runs.length === 1 ? runs[0] : null;
|
|
34457
35112
|
}
|
|
34458
35113
|
function shellLabelForRegistrationStep(step, events) {
|
|
@@ -34480,13 +35135,13 @@ function buildEventRegistrationShellBodyText(stepLabels) {
|
|
|
34480
35135
|
return "Preparing dates, tickets, and booking details.";
|
|
34481
35136
|
}
|
|
34482
35137
|
function normalizeEventRegistrationEventInput(value) {
|
|
34483
|
-
if (!isRecord$
|
|
35138
|
+
if (!isRecord$6(value)) return value;
|
|
34484
35139
|
return {
|
|
34485
35140
|
...value,
|
|
34486
35141
|
destination: resolveRuntimeEventDestination(value)
|
|
34487
35142
|
};
|
|
34488
35143
|
}
|
|
34489
|
-
function isRecord$
|
|
35144
|
+
function isRecord$6(value) {
|
|
34490
35145
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
34491
35146
|
}
|
|
34492
35147
|
var EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS, EVENT_REGISTRATION_SHELL_STEP_LABELS, eventRegistrationPublicEventSchema, eventRegistrationHydrationSchemaShape, eventRegistrationSourceSchema, eventRegistrationDisplaySchema, eventRegistrationHydrationSchema, eventRegistrationRenderSchema, eventRegistrationBlockRuntime;
|
|
@@ -34577,9 +35232,10 @@ var init_event_registration_interactive = __esmMin((() => {
|
|
|
34577
35232
|
render: createZodCodec(eventRegistrationRenderSchema)
|
|
34578
35233
|
},
|
|
34579
35234
|
buildRender: (source) => {
|
|
34580
|
-
const
|
|
35235
|
+
const scopedSourceEvents = scopeEventRegistrationSourceEvents(source);
|
|
35236
|
+
const events = resolveLoadedEventRegistrationSourceEvents(source, scopedSourceEvents);
|
|
34581
35237
|
return {
|
|
34582
|
-
display:
|
|
35238
|
+
display: buildEventRegistrationDisplayFromScopedEvents(source, scopedSourceEvents),
|
|
34583
35239
|
hydration: {
|
|
34584
35240
|
occurrenceContext: source.occurrenceContext ?? null,
|
|
34585
35241
|
subject: source.subject ?? null,
|
|
@@ -34786,6 +35442,11 @@ var init_event_registration = __esmMin((() => {
|
|
|
34786
35442
|
dataLoaders: {
|
|
34787
35443
|
events: {
|
|
34788
35444
|
endpoint: "listPublicEvents",
|
|
35445
|
+
when: { $bind: {
|
|
35446
|
+
from: "$root.subject.isWholeSeriesBooking",
|
|
35447
|
+
fallback: true,
|
|
35448
|
+
transforms: [{ id: "boolean.not" }]
|
|
35449
|
+
} },
|
|
34789
35450
|
params: {
|
|
34790
35451
|
siteId: { $bind: { from: "$root.siteId" } },
|
|
34791
35452
|
limit: "50",
|
|
@@ -34807,13 +35468,9 @@ var init_event_registration = __esmMin((() => {
|
|
|
34807
35468
|
/**
|
|
34808
35469
|
* The runs this page can register for, finished ones included.
|
|
34809
35470
|
*
|
|
34810
|
-
*
|
|
34811
|
-
*
|
|
34812
|
-
* render
|
|
34813
|
-
* subject books whole runs. It is scoped exactly like the date page — same
|
|
34814
|
-
* series, same run subroute — because scope and grain are separate
|
|
34815
|
-
* questions. The two lists are joined by occurrence, so a run that appears
|
|
34816
|
-
* in both is still one run.
|
|
35471
|
+
* A run read is the sole Event source on a whole-series surface. It is
|
|
35472
|
+
* status-bounded rather than date-bounded, so completed runs can still
|
|
35473
|
+
* render their closed state and every run carries its complete schedule.
|
|
34817
35474
|
*/
|
|
34818
35475
|
wholeSeriesRunEvents: {
|
|
34819
35476
|
endpoint: "listPublicEvents",
|
|
@@ -37562,7 +38219,7 @@ function inferLegacyOfferingsPreviewGroupOrder(overrides) {
|
|
|
37562
38219
|
return keys.length >= 2 ? keys : [];
|
|
37563
38220
|
}
|
|
37564
38221
|
function normalizeOfferingsPreviewContentForWrite(value) {
|
|
37565
|
-
if (!isRecord$
|
|
38222
|
+
if (!isRecord$5(value)) return null;
|
|
37566
38223
|
const groupOrderValue = value.groupOrder;
|
|
37567
38224
|
if (Array.isArray(groupOrderValue)) {
|
|
37568
38225
|
const normalized = normalizeOfferingsPreviewGroupOrder(groupOrderValue);
|
|
@@ -37575,7 +38232,7 @@ function normalizeOfferingsPreviewContentForWrite(value) {
|
|
|
37575
38232
|
...value,
|
|
37576
38233
|
groupOrder: []
|
|
37577
38234
|
};
|
|
37578
|
-
const legacyOrder = inferLegacyOfferingsPreviewGroupOrder(Array.isArray(value.groupOverrides) ? value.groupOverrides.filter(isRecord$
|
|
38235
|
+
const legacyOrder = inferLegacyOfferingsPreviewGroupOrder(Array.isArray(value.groupOverrides) ? value.groupOverrides.filter(isRecord$5) : []);
|
|
37579
38236
|
return legacyOrder.length > 0 ? {
|
|
37580
38237
|
...value,
|
|
37581
38238
|
groupOrder: legacyOrder
|
|
@@ -37589,7 +38246,7 @@ function uniqueOfferingsPreviewSourceKeys(values) {
|
|
|
37589
38246
|
}
|
|
37590
38247
|
return keys;
|
|
37591
38248
|
}
|
|
37592
|
-
function isRecord$
|
|
38249
|
+
function isRecord$5(value) {
|
|
37593
38250
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
37594
38251
|
}
|
|
37595
38252
|
var OFFERINGS_PREVIEW_DEFAULT_BUTTON_TEXT, OFFERINGS_PREVIEW_DEFAULT_EMPTY_MESSAGE, OFFERINGS_PREVIEW_EVENT_PRESET_DEFINITIONS, OFFERINGS_PREVIEW_AUTHORABLE_SOURCE_KEYS, OFFERINGS_PREVIEW_SOURCE_KEYS;
|
|
@@ -37631,124 +38288,18 @@ var init_model = __esmMin((() => {
|
|
|
37631
38288
|
}]));
|
|
37632
38289
|
}));
|
|
37633
38290
|
//#endregion
|
|
37634
|
-
//#region ../blocks/src/system/blocks/offerings-preview/
|
|
37635
|
-
/**
|
|
37636
|
-
* One row per whole-series run, finished runs included.
|
|
37637
|
-
*
|
|
37638
|
-
* A page of dates cannot answer this: a finished run has no upcoming date, and
|
|
37639
|
-
* a long run would spend the whole page on its own sessions. `readIntent:
|
|
37640
|
-
* 'runs'` asks for runs instead, so `itemLimit` counts run cards rather than
|
|
37641
|
-
* dates, and each card arrives with the run's complete schedule.
|
|
37642
|
-
*/
|
|
37643
|
-
function wholeSeriesRunLoader() {
|
|
37644
|
-
return eventPresetLoader(WHOLE_SERIES_EVENT_PRESETS_PARAM, { readIntent: "runs" });
|
|
37645
|
-
}
|
|
37646
|
-
function eventPresetLoader(eventPresets, extraParams = {}) {
|
|
37647
|
-
return {
|
|
37648
|
-
endpoint: "listPublicEvents",
|
|
37649
|
-
params: {
|
|
37650
|
-
siteId: { $bind: { from: "$root.siteId" } },
|
|
37651
|
-
limit: { $bind: {
|
|
37652
|
-
from: "content.itemLimit",
|
|
37653
|
-
fallback: "3"
|
|
37654
|
-
} },
|
|
37655
|
-
stage: { $bind: {
|
|
37656
|
-
from: "$root.previewStage",
|
|
37657
|
-
fallback: "published"
|
|
37658
|
-
} },
|
|
37659
|
-
detailLevel: "listing",
|
|
37660
|
-
readProfile: "listing-card",
|
|
37661
|
-
eventPresets,
|
|
37662
|
-
...extraParams
|
|
37663
|
-
},
|
|
37664
|
-
mode: "server"
|
|
37665
|
-
};
|
|
37666
|
-
}
|
|
38291
|
+
//#region ../blocks/src/system/blocks/offerings-preview/fields.ts
|
|
37667
38292
|
function labelForOfferingPreviewSourceKey(sourceKey) {
|
|
37668
38293
|
const eventDefinition = OFFERINGS_PREVIEW_EVENT_PRESET_DEFINITIONS.find((definition) => definition.sourceKey === sourceKey);
|
|
37669
38294
|
if (eventDefinition) return eventDefinition.label;
|
|
37670
38295
|
return "Courses";
|
|
37671
38296
|
}
|
|
37672
|
-
|
|
37673
|
-
|
|
37674
|
-
if (!record) return {};
|
|
37675
|
-
const normalized = {};
|
|
37676
|
-
if (typeof record.heading === "string" || record.heading === null) normalized.heading = record.heading;
|
|
37677
|
-
if ("description" in record) normalized.description = record.description;
|
|
37678
|
-
if (isOfferingsPreviewItemLimit(record.itemLimit)) normalized.itemLimit = record.itemLimit;
|
|
37679
|
-
if (Array.isArray(record.groupOrder)) normalized.groupOrder = record.groupOrder.filter(isOfferingsPreviewSourceKey);
|
|
37680
|
-
else if (record.groupOrder === null) normalized.groupOrder = null;
|
|
37681
|
-
if (Array.isArray(record.groupOverrides)) normalized.groupOverrides = record.groupOverrides.flatMap(normalizeOfferingsPreviewGroupOverride);
|
|
37682
|
-
else if (record.groupOverrides === null) normalized.groupOverrides = null;
|
|
37683
|
-
const cardStyles = normalizeCardStylesContent(record._cardStyles);
|
|
37684
|
-
if (cardStyles !== void 0) normalized._cardStyles = cardStyles;
|
|
37685
|
-
if (isButtonVariant(record.buttonVariant)) normalized.buttonVariant = record.buttonVariant;
|
|
37686
|
-
if (typeof record.buttonText === "string" || record.buttonText === null) normalized.buttonText = record.buttonText;
|
|
37687
|
-
if (typeof record.emptyMessage === "string" || record.emptyMessage === null) normalized.emptyMessage = record.emptyMessage;
|
|
37688
|
-
const sectionStyles = normalizeSectionStylesContent(record._sectionStyles);
|
|
37689
|
-
if (sectionStyles !== void 0) normalized._sectionStyles = sectionStyles;
|
|
37690
|
-
return normalized;
|
|
37691
|
-
}
|
|
37692
|
-
function isOfferingsPreviewItemLimit(value) {
|
|
37693
|
-
return value === "1" || value === "2" || value === "3" || value === "4" || value === "5" || value === "6" || value === null;
|
|
37694
|
-
}
|
|
37695
|
-
function normalizeOfferingsPreviewGroupOverride(value) {
|
|
37696
|
-
if (!isRecord$5(value)) return [];
|
|
37697
|
-
const override = {};
|
|
37698
|
-
if (isOfferingsPreviewSourceKey(value.sourceKey) || value.sourceKey === null) override.sourceKey = value.sourceKey;
|
|
37699
|
-
if (typeof value.title === "string" || value.title === null) override.title = value.title;
|
|
37700
|
-
if (typeof value.intro === "string" || value.intro === null) override.intro = value.intro;
|
|
37701
|
-
if (typeof value.hidden === "boolean" || value.hidden === null) override.hidden = value.hidden;
|
|
37702
|
-
if (value.presentation === "compact-list" || value.presentation === "single-card" || value.presentation === "featured-summary" || value.presentation === null) override.presentation = value.presentation;
|
|
37703
|
-
if (value.ctaMode === "auto" || value.ctaMode === "custom" || value.ctaMode === "hidden" || value.ctaMode === null) override.ctaMode = value.ctaMode;
|
|
37704
|
-
if (typeof value.ctaHref === "string" || value.ctaHref === null) override.ctaHref = value.ctaHref;
|
|
37705
|
-
if (typeof value.ctaLabel === "string" || value.ctaLabel === null) override.ctaLabel = value.ctaLabel;
|
|
37706
|
-
return [override];
|
|
37707
|
-
}
|
|
37708
|
-
function isButtonVariant(value) {
|
|
37709
|
-
return value === null || isBlockButtonRole(value);
|
|
37710
|
-
}
|
|
37711
|
-
function normalizeCardStylesContent(value) {
|
|
37712
|
-
return normalizeBoxStylesContent(value);
|
|
37713
|
-
}
|
|
37714
|
-
function normalizeSectionStylesContent(value) {
|
|
37715
|
-
return normalizeBoxStylesContent(value);
|
|
37716
|
-
}
|
|
37717
|
-
function normalizeBoxStylesContent(value) {
|
|
37718
|
-
if (value === null) return null;
|
|
37719
|
-
if (!isRecord$5(value)) return void 0;
|
|
37720
|
-
const { background: _background, ...rest } = value;
|
|
37721
|
-
const background = parseBackgroundContent(value.background);
|
|
37722
|
-
return {
|
|
37723
|
-
...rest,
|
|
37724
|
-
...background ? { background } : {}
|
|
37725
|
-
};
|
|
37726
|
-
}
|
|
37727
|
-
function isRecord$5(value) {
|
|
37728
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
37729
|
-
}
|
|
37730
|
-
var WHOLE_SERIES_EVENT_PRESETS_PARAM, publicRouteCandidatesSchema, groupOverrideFields, offeringsPreviewFields, offeringsPreviewEventDataBindings, offeringsPreviewConfig, offeringsPreviewManifest, optionalPublicEventsArraySchema, offeringsPreviewEventDataSchemas, offeringsPreviewEventDataLoaders, offeringsPreviewBlockDefinition;
|
|
37731
|
-
var init_offerings_preview = __esmMin((() => {
|
|
37732
|
-
init_src$4();
|
|
37733
|
-
init_link();
|
|
37734
|
-
init_builder$1();
|
|
37735
|
-
init_styledSection();
|
|
37736
|
-
init_fragments$1();
|
|
37737
|
-
init_boxStyles$1();
|
|
37738
|
-
init_backgroundContent();
|
|
37739
|
-
init_defineBlock();
|
|
38297
|
+
var groupOverrideFields, offeringsPreviewFields;
|
|
38298
|
+
var init_fields = __esmMin((() => {
|
|
37740
38299
|
init_shared$2();
|
|
37741
|
-
|
|
38300
|
+
init_boxStyles$1();
|
|
37742
38301
|
init_button();
|
|
37743
38302
|
init_model();
|
|
37744
|
-
WHOLE_SERIES_EVENT_PRESETS_PARAM = WHOLE_SERIES_EVENT_PRESET_VALUES.join(",");
|
|
37745
|
-
publicRouteCandidatesSchema = z.object({ routes: z.array(z.object({
|
|
37746
|
-
entityId: z.string(),
|
|
37747
|
-
path: z.string(),
|
|
37748
|
-
title: z.string(),
|
|
37749
|
-
kind: z.enum(RESOLVED_INTERNAL_LINK_ENTITY_TYPES),
|
|
37750
|
-
contentTypeKey: z.string().nullable().optional()
|
|
37751
|
-
})) });
|
|
37752
38303
|
groupOverrideFields = [
|
|
37753
38304
|
{
|
|
37754
38305
|
id: "sourceKey",
|
|
@@ -37954,7 +38505,163 @@ var init_offerings_preview = __esmMin((() => {
|
|
|
37954
38505
|
renderInHeader: false
|
|
37955
38506
|
})
|
|
37956
38507
|
];
|
|
38508
|
+
}));
|
|
38509
|
+
//#endregion
|
|
38510
|
+
//#region ../blocks/src/system/blocks/offerings-preview/index.ts
|
|
38511
|
+
function offeringsPreviewHeaderNodes() {
|
|
38512
|
+
return [text({
|
|
38513
|
+
as: "h2",
|
|
38514
|
+
className: { $bind: {
|
|
38515
|
+
from: "content.displayMode",
|
|
38516
|
+
fallback: "rb-text-center",
|
|
38517
|
+
transforms: [{
|
|
38518
|
+
id: "value.equals",
|
|
38519
|
+
options: { value: "catalogue" }
|
|
38520
|
+
}, {
|
|
38521
|
+
id: "ui.conditionalClass",
|
|
38522
|
+
options: {
|
|
38523
|
+
whenTrue: "rb-text-left",
|
|
38524
|
+
whenFalse: "rb-text-center"
|
|
38525
|
+
}
|
|
38526
|
+
}]
|
|
38527
|
+
} }
|
|
38528
|
+
}, bind$1("content.heading"), when("content.heading")), richText({ className: "rb-prose rb-max-w-none" }, bind$1("content.description"), when("content.description"))];
|
|
38529
|
+
}
|
|
38530
|
+
/**
|
|
38531
|
+
* One row per whole-series run, finished runs included.
|
|
38532
|
+
*
|
|
38533
|
+
* A page of dates cannot answer this: a finished run has no upcoming date, and
|
|
38534
|
+
* a long run would spend the whole page on its own sessions. `readIntent:
|
|
38535
|
+
* 'runs'` asks for runs instead, so `itemLimit` counts run cards rather than
|
|
38536
|
+
* dates, and each card arrives with the run's complete schedule.
|
|
38537
|
+
*/
|
|
38538
|
+
function wholeSeriesRunLoader() {
|
|
38539
|
+
return eventPresetLoader(WHOLE_SERIES_EVENT_PRESETS_PARAM, { readIntent: "runs" });
|
|
38540
|
+
}
|
|
38541
|
+
function eventPresetLoader(eventPresets, extraParams = {}) {
|
|
38542
|
+
return {
|
|
38543
|
+
endpoint: "listPublicEvents",
|
|
38544
|
+
when: previewMode,
|
|
38545
|
+
params: {
|
|
38546
|
+
siteId: { $bind: { from: "$root.siteId" } },
|
|
38547
|
+
limit: { $bind: {
|
|
38548
|
+
from: "content.itemLimit",
|
|
38549
|
+
fallback: "3"
|
|
38550
|
+
} },
|
|
38551
|
+
stage: { $bind: {
|
|
38552
|
+
from: "$root.previewStage",
|
|
38553
|
+
fallback: "published"
|
|
38554
|
+
} },
|
|
38555
|
+
detailLevel: "listing",
|
|
38556
|
+
readProfile: "listing-card",
|
|
38557
|
+
eventPresets,
|
|
38558
|
+
...extraParams
|
|
38559
|
+
},
|
|
38560
|
+
mode: "server"
|
|
38561
|
+
};
|
|
38562
|
+
}
|
|
38563
|
+
function normalizeOfferingsPreviewBlockContent(value) {
|
|
38564
|
+
const record = normalizeOfferingsPreviewContentForWrite(value);
|
|
38565
|
+
if (!record) return { displayMode: DEFAULT_OFFERINGS_PREVIEW_DISPLAY_MODE };
|
|
38566
|
+
const normalized = { displayMode: normalizeOfferingsPreviewDisplayMode(record.displayMode) };
|
|
38567
|
+
if (typeof record.heading === "string" || record.heading === null) normalized.heading = record.heading;
|
|
38568
|
+
if ("description" in record) normalized.description = record.description;
|
|
38569
|
+
if (isOfferingsPreviewItemLimit(record.itemLimit)) normalized.itemLimit = record.itemLimit;
|
|
38570
|
+
if (Array.isArray(record.groupOrder)) normalized.groupOrder = record.groupOrder.filter(isOfferingsPreviewSourceKey);
|
|
38571
|
+
else if (record.groupOrder === null) normalized.groupOrder = null;
|
|
38572
|
+
if (Array.isArray(record.groupOverrides)) normalized.groupOverrides = record.groupOverrides.flatMap(normalizeOfferingsPreviewGroupOverride);
|
|
38573
|
+
else if (record.groupOverrides === null) normalized.groupOverrides = null;
|
|
38574
|
+
const cardStyles = normalizeCardStylesContent(record._cardStyles);
|
|
38575
|
+
if (cardStyles !== void 0) normalized._cardStyles = cardStyles;
|
|
38576
|
+
if (isButtonVariant(record.buttonVariant)) normalized.buttonVariant = record.buttonVariant;
|
|
38577
|
+
if (typeof record.buttonText === "string" || record.buttonText === null) normalized.buttonText = record.buttonText;
|
|
38578
|
+
if (typeof record.emptyMessage === "string" || record.emptyMessage === null) normalized.emptyMessage = record.emptyMessage;
|
|
38579
|
+
const sectionStyles = normalizeSectionStylesContent(record._sectionStyles);
|
|
38580
|
+
if (sectionStyles !== void 0) normalized._sectionStyles = sectionStyles;
|
|
38581
|
+
return normalized;
|
|
38582
|
+
}
|
|
38583
|
+
function normalizeOfferingsPreviewDisplayMode(value) {
|
|
38584
|
+
return value === "catalogue" ? "catalogue" : DEFAULT_OFFERINGS_PREVIEW_DISPLAY_MODE;
|
|
38585
|
+
}
|
|
38586
|
+
function isOfferingsPreviewItemLimit(value) {
|
|
38587
|
+
return value === "1" || value === "2" || value === "3" || value === "4" || value === "5" || value === "6" || value === null;
|
|
38588
|
+
}
|
|
38589
|
+
function normalizeOfferingsPreviewGroupOverride(value) {
|
|
38590
|
+
if (!isRecord$4(value)) return [];
|
|
38591
|
+
const override = {};
|
|
38592
|
+
if (isOfferingsPreviewSourceKey(value.sourceKey) || value.sourceKey === null) override.sourceKey = value.sourceKey;
|
|
38593
|
+
if (typeof value.title === "string" || value.title === null) override.title = value.title;
|
|
38594
|
+
if (typeof value.intro === "string" || value.intro === null) override.intro = value.intro;
|
|
38595
|
+
if (typeof value.hidden === "boolean" || value.hidden === null) override.hidden = value.hidden;
|
|
38596
|
+
if (value.presentation === "compact-list" || value.presentation === "single-card" || value.presentation === "featured-summary" || value.presentation === null) override.presentation = value.presentation;
|
|
38597
|
+
if (value.ctaMode === "auto" || value.ctaMode === "custom" || value.ctaMode === "hidden" || value.ctaMode === null) override.ctaMode = value.ctaMode;
|
|
38598
|
+
if (typeof value.ctaHref === "string" || value.ctaHref === null) override.ctaHref = value.ctaHref;
|
|
38599
|
+
if (typeof value.ctaLabel === "string" || value.ctaLabel === null) override.ctaLabel = value.ctaLabel;
|
|
38600
|
+
return [override];
|
|
38601
|
+
}
|
|
38602
|
+
function isButtonVariant(value) {
|
|
38603
|
+
return value === null || isBlockButtonRole(value);
|
|
38604
|
+
}
|
|
38605
|
+
function normalizeCardStylesContent(value) {
|
|
38606
|
+
return normalizeBoxStylesContent(value);
|
|
38607
|
+
}
|
|
38608
|
+
function normalizeSectionStylesContent(value) {
|
|
38609
|
+
return normalizeBoxStylesContent(value);
|
|
38610
|
+
}
|
|
38611
|
+
function normalizeBoxStylesContent(value) {
|
|
38612
|
+
if (value === null) return null;
|
|
38613
|
+
if (!isRecord$4(value)) return void 0;
|
|
38614
|
+
const { background: _background, ...rest } = value;
|
|
38615
|
+
const background = parseBackgroundContent(value.background);
|
|
38616
|
+
return {
|
|
38617
|
+
...rest,
|
|
38618
|
+
...background ? { background } : {}
|
|
38619
|
+
};
|
|
38620
|
+
}
|
|
38621
|
+
function isRecord$4(value) {
|
|
38622
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
38623
|
+
}
|
|
38624
|
+
var WHOLE_SERIES_EVENT_PRESETS_PARAM, publicRouteCandidatesSchema, offeringsPreviewEventDataBindings, DEFAULT_OFFERINGS_PREVIEW_DISPLAY_MODE, displayModeBinding, catalogueMode, previewMode, offeringsPreviewConfig, offeringsPreviewManifest, optionalPublicEventsArraySchema, offeringsPreviewEventDataSchemas, offeringsPreviewEventDataLoaders, offeringsPreviewBlockDefinition;
|
|
38625
|
+
var init_offerings_preview = __esmMin((() => {
|
|
38626
|
+
init_fields();
|
|
38627
|
+
init_src$4();
|
|
38628
|
+
init_link();
|
|
38629
|
+
init_builder$1();
|
|
38630
|
+
init_styledSection();
|
|
38631
|
+
init_fragments$1();
|
|
38632
|
+
init_backgroundContent();
|
|
38633
|
+
init_defineBlock();
|
|
38634
|
+
init_shared$2();
|
|
38635
|
+
init_buttonRoles();
|
|
38636
|
+
init_model();
|
|
38637
|
+
WHOLE_SERIES_EVENT_PRESETS_PARAM = WHOLE_SERIES_EVENT_PRESET_VALUES.join(",");
|
|
38638
|
+
publicRouteCandidatesSchema = z.object({ routes: z.array(z.object({
|
|
38639
|
+
entityId: z.string(),
|
|
38640
|
+
path: z.string(),
|
|
38641
|
+
title: z.string(),
|
|
38642
|
+
kind: z.enum(RESOLVED_INTERNAL_LINK_ENTITY_TYPES),
|
|
38643
|
+
contentTypeKey: z.string().nullable().optional()
|
|
38644
|
+
})) });
|
|
37957
38645
|
offeringsPreviewEventDataBindings = Object.fromEntries(OFFERINGS_PREVIEW_EVENT_PRESET_DEFINITIONS.map((definition) => [definition.dataKey, { $bind: { from: `data.${definition.dataKey}` } }]));
|
|
38646
|
+
DEFAULT_OFFERINGS_PREVIEW_DISPLAY_MODE = "preview";
|
|
38647
|
+
displayModeBinding = {
|
|
38648
|
+
from: "content.displayMode",
|
|
38649
|
+
fallback: DEFAULT_OFFERINGS_PREVIEW_DISPLAY_MODE
|
|
38650
|
+
};
|
|
38651
|
+
catalogueMode = { $bind: {
|
|
38652
|
+
...displayModeBinding,
|
|
38653
|
+
transforms: [{
|
|
38654
|
+
id: "value.equals",
|
|
38655
|
+
options: { value: "catalogue" }
|
|
38656
|
+
}]
|
|
38657
|
+
} };
|
|
38658
|
+
previewMode = { $bind: {
|
|
38659
|
+
...displayModeBinding,
|
|
38660
|
+
transforms: [{
|
|
38661
|
+
id: "value.equals",
|
|
38662
|
+
options: { value: "preview" }
|
|
38663
|
+
}]
|
|
38664
|
+
} };
|
|
37958
38665
|
offeringsPreviewConfig = {
|
|
37959
38666
|
id: "block.offerings-preview",
|
|
37960
38667
|
version: "1.0.0",
|
|
@@ -37985,48 +38692,45 @@ var init_offerings_preview = __esmMin((() => {
|
|
|
37985
38692
|
],
|
|
37986
38693
|
icon: "PanelsTopLeft",
|
|
37987
38694
|
layout: [styledSection({
|
|
37988
|
-
children: sectionContainer([
|
|
37989
|
-
|
|
37990
|
-
|
|
37991
|
-
|
|
37992
|
-
|
|
37993
|
-
|
|
37994
|
-
|
|
37995
|
-
|
|
37996
|
-
|
|
37997
|
-
|
|
37998
|
-
|
|
37999
|
-
|
|
38000
|
-
|
|
38001
|
-
|
|
38002
|
-
|
|
38003
|
-
|
|
38004
|
-
|
|
38005
|
-
|
|
38006
|
-
|
|
38007
|
-
|
|
38008
|
-
|
|
38009
|
-
|
|
38010
|
-
|
|
38011
|
-
|
|
38012
|
-
|
|
38013
|
-
|
|
38014
|
-
|
|
38015
|
-
|
|
38016
|
-
|
|
38017
|
-
|
|
38018
|
-
|
|
38019
|
-
|
|
38020
|
-
|
|
38021
|
-
|
|
38022
|
-
|
|
38023
|
-
|
|
38024
|
-
|
|
38025
|
-
|
|
38026
|
-
|
|
38027
|
-
...offeringsPreviewEventDataBindings
|
|
38028
|
-
})
|
|
38029
|
-
], { gap: "lg" }),
|
|
38695
|
+
children: sectionContainer([el$1("offerings-preview", {
|
|
38696
|
+
displayMode: { $bind: displayModeBinding },
|
|
38697
|
+
pathname: { $bind: { from: "$root.pathname" } },
|
|
38698
|
+
catalogueEvents: { $bind: { from: "data.catalogueEvents" } },
|
|
38699
|
+
quickDateEvents: { $bind: { from: "data.quickDateEvents" } },
|
|
38700
|
+
bookingOfferingPresets: { $bind: {
|
|
38701
|
+
from: "$root.bookingOfferingPresets",
|
|
38702
|
+
fallback: []
|
|
38703
|
+
} },
|
|
38704
|
+
groupOverrides: { $bind: {
|
|
38705
|
+
from: "content.groupOverrides",
|
|
38706
|
+
fallback: []
|
|
38707
|
+
} },
|
|
38708
|
+
groupOrder: { $bind: { from: "content.groupOrder" } },
|
|
38709
|
+
cardStyles: { $bind: { from: "content._cardStyles" } },
|
|
38710
|
+
itemLimit: { $bind: {
|
|
38711
|
+
from: "content.itemLimit",
|
|
38712
|
+
fallback: "3"
|
|
38713
|
+
} },
|
|
38714
|
+
buttonVariant: { $bind: {
|
|
38715
|
+
from: "content.buttonVariant",
|
|
38716
|
+
fallback: "primary"
|
|
38717
|
+
} },
|
|
38718
|
+
buttonText: { $bind: {
|
|
38719
|
+
from: "content.buttonText",
|
|
38720
|
+
fallback: OFFERINGS_PREVIEW_DEFAULT_BUTTON_TEXT
|
|
38721
|
+
} },
|
|
38722
|
+
emptyMessage: { $bind: {
|
|
38723
|
+
from: "content.emptyMessage",
|
|
38724
|
+
fallback: OFFERINGS_PREVIEW_DEFAULT_EMPTY_MESSAGE
|
|
38725
|
+
} },
|
|
38726
|
+
previewStage: { $bind: {
|
|
38727
|
+
from: "$root.previewStage",
|
|
38728
|
+
fallback: "published"
|
|
38729
|
+
} },
|
|
38730
|
+
routeCandidates: { $bind: { from: "data.routeCandidates" } },
|
|
38731
|
+
wholeSeriesRunEvents: { $bind: { from: "data.wholeSeriesRunEvents" } },
|
|
38732
|
+
...offeringsPreviewEventDataBindings
|
|
38733
|
+
}, offeringsPreviewHeaderNodes())], { gap: "lg" }),
|
|
38030
38734
|
baseClass: "",
|
|
38031
38735
|
spacing: "comfortable"
|
|
38032
38736
|
})]
|
|
@@ -38041,16 +38745,48 @@ var init_offerings_preview = __esmMin((() => {
|
|
|
38041
38745
|
dataSchemas: {
|
|
38042
38746
|
...offeringsPreviewEventDataSchemas,
|
|
38043
38747
|
routeCandidates: publicRouteCandidatesSchema.optional(),
|
|
38044
|
-
wholeSeriesRunEvents: optionalPublicEventsArraySchema
|
|
38748
|
+
wholeSeriesRunEvents: optionalPublicEventsArraySchema,
|
|
38749
|
+
catalogueEvents: optionalPublicEventsArraySchema,
|
|
38750
|
+
quickDateEvents: optionalPublicEventsArraySchema
|
|
38045
38751
|
},
|
|
38046
38752
|
dataLoaders: {
|
|
38047
38753
|
...offeringsPreviewEventDataLoaders,
|
|
38048
38754
|
routeCandidates: {
|
|
38049
38755
|
endpoint: "listPublicRouteCandidates",
|
|
38756
|
+
when: previewMode,
|
|
38050
38757
|
params: {},
|
|
38051
38758
|
mode: "server"
|
|
38052
38759
|
},
|
|
38053
|
-
wholeSeriesRunEvents: wholeSeriesRunLoader()
|
|
38760
|
+
wholeSeriesRunEvents: wholeSeriesRunLoader(),
|
|
38761
|
+
catalogueEvents: {
|
|
38762
|
+
endpoint: "listPublicEvents",
|
|
38763
|
+
when: catalogueMode,
|
|
38764
|
+
params: {
|
|
38765
|
+
stage: { $bind: {
|
|
38766
|
+
from: "$root.previewStage",
|
|
38767
|
+
fallback: "published"
|
|
38768
|
+
} },
|
|
38769
|
+
detailLevel: "listing",
|
|
38770
|
+
readProfile: "listing-card",
|
|
38771
|
+
readIntent: "catalogue"
|
|
38772
|
+
},
|
|
38773
|
+
mode: "server"
|
|
38774
|
+
},
|
|
38775
|
+
quickDateEvents: {
|
|
38776
|
+
endpoint: "listPublicEvents",
|
|
38777
|
+
when: catalogueMode,
|
|
38778
|
+
params: {
|
|
38779
|
+
stage: { $bind: {
|
|
38780
|
+
from: "$root.previewStage",
|
|
38781
|
+
fallback: "published"
|
|
38782
|
+
} },
|
|
38783
|
+
detailLevel: "listing",
|
|
38784
|
+
readProfile: "listing-card",
|
|
38785
|
+
readIntent: "occurrences",
|
|
38786
|
+
limit: 40
|
|
38787
|
+
},
|
|
38788
|
+
mode: "server"
|
|
38789
|
+
}
|
|
38054
38790
|
}
|
|
38055
38791
|
};
|
|
38056
38792
|
}));
|
|
@@ -41397,87 +42133,13 @@ var init_gifting = __esmMin((() => {
|
|
|
41397
42133
|
};
|
|
41398
42134
|
}));
|
|
41399
42135
|
//#endregion
|
|
41400
|
-
//#region ../blocks/src/system/blocks/newsletter-signup-destination.ts
|
|
41401
|
-
function parseNewsletterSignupBlockId(value) {
|
|
41402
|
-
const trimmed = parseTrimmedString(value);
|
|
41403
|
-
return trimmed && BLOCK_ID_PATTERN.test(trimmed) ? trimmed : null;
|
|
41404
|
-
}
|
|
41405
|
-
function parseSignedNewsletterDestinationRef(value) {
|
|
41406
|
-
const trimmed = parseTrimmedString(value);
|
|
41407
|
-
return trimmed && SIGNED_DESTINATION_REF_PATTERN.test(trimmed) ? trimmed : null;
|
|
41408
|
-
}
|
|
41409
|
-
function buildNewsletterSignupBlockRef(blockId) {
|
|
41410
|
-
const parsed = parseNewsletterSignupBlockId(blockId);
|
|
41411
|
-
return parsed ? {
|
|
41412
|
-
tag: "block_ref",
|
|
41413
|
-
blockId: parsed
|
|
41414
|
-
} : null;
|
|
41415
|
-
}
|
|
41416
|
-
function normalizeNewsletterSignupEditorValuesForDestination(values) {
|
|
41417
|
-
const destinationProvider = parseNewsletterSignupDestinationProvider(values.destinationProvider) ?? "riverbank";
|
|
41418
|
-
if (destinationProvider === "mailchimp") return {
|
|
41419
|
-
destinationProvider,
|
|
41420
|
-
mailchimpAudienceId: values.mailchimpAudienceId,
|
|
41421
|
-
mailchimpTags: values.mailchimpTags
|
|
41422
|
-
};
|
|
41423
|
-
return {
|
|
41424
|
-
destinationProvider,
|
|
41425
|
-
listId: values.listId,
|
|
41426
|
-
tags: values.tags
|
|
41427
|
-
};
|
|
41428
|
-
}
|
|
41429
|
-
function deriveNewsletterSignupRuntimeSource(values) {
|
|
41430
|
-
const normalized = normalizeNewsletterSignupEditorValuesForDestination(values);
|
|
41431
|
-
if (normalized.destinationProvider === "mailchimp") return {
|
|
41432
|
-
destinationProvider: "mailchimp",
|
|
41433
|
-
listId: null,
|
|
41434
|
-
tags: null
|
|
41435
|
-
};
|
|
41436
|
-
return {
|
|
41437
|
-
destinationProvider: "riverbank",
|
|
41438
|
-
listId: parseTrimmedString(normalized.listId),
|
|
41439
|
-
tags: parseTrimmedString(normalized.tags)
|
|
41440
|
-
};
|
|
41441
|
-
}
|
|
41442
|
-
function sanitizeNewsletterSignupPublicContent(content) {
|
|
41443
|
-
if (!isRecord$4(content)) return content;
|
|
41444
|
-
const provider = parseNewsletterSignupDestinationProvider(content.destinationProvider) ?? getProviderFromExplicitDestination(content.destination);
|
|
41445
|
-
const { destination: _destination, destinationProvider: _destinationProvider, mailchimpAudienceId: _mailchimpAudienceId, mailchimpTags: _mailchimpTags, listId, tags, ...publicContent } = content;
|
|
41446
|
-
const mutablePublicContent = { ...publicContent };
|
|
41447
|
-
if (provider !== "mailchimp") {
|
|
41448
|
-
if ("listId" in content) mutablePublicContent.listId = listId;
|
|
41449
|
-
if ("tags" in content) mutablePublicContent.tags = tags;
|
|
41450
|
-
}
|
|
41451
|
-
return mutablePublicContent;
|
|
41452
|
-
}
|
|
41453
|
-
function getProviderFromExplicitDestination(destination) {
|
|
41454
|
-
if (!isRecord$4(destination) || typeof destination.tag !== "string") return null;
|
|
41455
|
-
if (destination.tag === "riverbank_list") return "riverbank";
|
|
41456
|
-
if (destination.tag === "mailchimp_audience") return "mailchimp";
|
|
41457
|
-
return null;
|
|
41458
|
-
}
|
|
41459
|
-
function parseTrimmedString(value) {
|
|
41460
|
-
if (typeof value !== "string") return null;
|
|
41461
|
-
const trimmed = value.trim();
|
|
41462
|
-
return trimmed.length > 0 ? trimmed : null;
|
|
41463
|
-
}
|
|
41464
|
-
function isRecord$4(value) {
|
|
41465
|
-
return typeof value === "object" && value !== null;
|
|
41466
|
-
}
|
|
41467
|
-
var BLOCK_ID_PATTERN, SIGNED_DESTINATION_REF_PATTERN;
|
|
41468
|
-
var init_newsletter_signup_destination = __esmMin((() => {
|
|
41469
|
-
init_src$4();
|
|
41470
|
-
BLOCK_ID_PATTERN = /^[A-Za-z0-9._:-]{1,200}$/;
|
|
41471
|
-
SIGNED_DESTINATION_REF_PATTERN = /^[A-Za-z0-9._~-]{16,1000}$/;
|
|
41472
|
-
}));
|
|
41473
|
-
//#endregion
|
|
41474
42136
|
//#region ../blocks/src/system/runtime/nodes/newsletter-form.types.ts
|
|
41475
42137
|
/**
|
|
41476
42138
|
* Get form fields based on preset configuration.
|
|
41477
42139
|
*/
|
|
41478
|
-
function
|
|
41479
|
-
const includePhone =
|
|
41480
|
-
switch (preset) {
|
|
42140
|
+
function getGlobalFormFields(form) {
|
|
42141
|
+
const includePhone = form.includeOptionalPhone;
|
|
42142
|
+
switch (form.fields.preset) {
|
|
41481
42143
|
case "emailOnly": return withOptionalPhone([{
|
|
41482
42144
|
id: "email",
|
|
41483
42145
|
type: "email",
|
|
@@ -41495,7 +42157,7 @@ function getPresetFields(preset, options) {
|
|
|
41495
42157
|
id: "name",
|
|
41496
42158
|
type: "text",
|
|
41497
42159
|
label: "Name",
|
|
41498
|
-
required:
|
|
42160
|
+
required: form.fields.name === "required",
|
|
41499
42161
|
placeholder: "Your name"
|
|
41500
42162
|
}], includePhone);
|
|
41501
42163
|
case "emailFirstLast": return withOptionalPhone([
|
|
@@ -41510,14 +42172,14 @@ function getPresetFields(preset, options) {
|
|
|
41510
42172
|
id: "firstName",
|
|
41511
42173
|
type: "text",
|
|
41512
42174
|
label: "First Name",
|
|
41513
|
-
required:
|
|
42175
|
+
required: form.fields.firstName === "required",
|
|
41514
42176
|
placeholder: "First name"
|
|
41515
42177
|
},
|
|
41516
42178
|
{
|
|
41517
42179
|
id: "lastName",
|
|
41518
42180
|
type: "text",
|
|
41519
42181
|
label: "Last Name",
|
|
41520
|
-
required:
|
|
42182
|
+
required: form.fields.lastName === "required",
|
|
41521
42183
|
placeholder: "Last name"
|
|
41522
42184
|
}
|
|
41523
42185
|
], includePhone);
|
|
@@ -41533,14 +42195,14 @@ function getPresetFields(preset, options) {
|
|
|
41533
42195
|
id: "name",
|
|
41534
42196
|
type: "text",
|
|
41535
42197
|
label: "Name",
|
|
41536
|
-
required:
|
|
42198
|
+
required: form.fields.name === "required",
|
|
41537
42199
|
placeholder: "Your name"
|
|
41538
42200
|
},
|
|
41539
42201
|
{
|
|
41540
42202
|
id: "company",
|
|
41541
42203
|
type: "text",
|
|
41542
42204
|
label: "Company",
|
|
41543
|
-
required:
|
|
42205
|
+
required: form.fields.company === "required",
|
|
41544
42206
|
placeholder: "Company name"
|
|
41545
42207
|
}
|
|
41546
42208
|
], includePhone);
|
|
@@ -41561,68 +42223,142 @@ var init_newsletter_form_types = __esmMin((() => {}));
|
|
|
41561
42223
|
//#endregion
|
|
41562
42224
|
//#region ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
|
|
41563
42225
|
function buildNewsletterDisplay(source) {
|
|
41564
|
-
const
|
|
41565
|
-
const
|
|
42226
|
+
const context = source.mailingList;
|
|
42227
|
+
const form = context?.tag === "configured" ? context.form : {
|
|
42228
|
+
fields: { preset: "emailOnly" },
|
|
42229
|
+
includeOptionalPhone: false,
|
|
42230
|
+
buttonLabel: "Subscribe",
|
|
42231
|
+
privacyNote: null
|
|
42232
|
+
};
|
|
42233
|
+
const targeting = source.targeting ?? { mode: "default" };
|
|
42234
|
+
const choices = resolveRuntimeChoices(context, targeting);
|
|
41566
42235
|
return {
|
|
41567
42236
|
kind: "newsletter-form",
|
|
42237
|
+
availability: runtimeTargetingIsAvailable(context, targeting, choices) ? "ready" : "unavailable",
|
|
41568
42238
|
className: source.className ?? null,
|
|
41569
|
-
buttonLabel:
|
|
42239
|
+
buttonLabel: form.buttonLabel,
|
|
41570
42240
|
buttonVariant: source.buttonVariant ?? "primary",
|
|
41571
|
-
|
|
41572
|
-
|
|
41573
|
-
|
|
42241
|
+
privacyNote: form.privacyNote,
|
|
42242
|
+
fields: getGlobalFormFields(form),
|
|
42243
|
+
choices
|
|
41574
42244
|
};
|
|
41575
42245
|
}
|
|
41576
42246
|
function projectNewsletterFormHydrationTarget(source) {
|
|
41577
42247
|
switch (source.source) {
|
|
41578
42248
|
case "block": {
|
|
41579
|
-
const
|
|
41580
|
-
if (
|
|
42249
|
+
const sourceRef = buildMailingListSignupBlockSourceRef(source.blockId);
|
|
42250
|
+
if (sourceRef?.tag === "block_ref") return {
|
|
41581
42251
|
tag: "block-source",
|
|
41582
|
-
|
|
42252
|
+
sourceRef
|
|
41583
42253
|
};
|
|
41584
42254
|
return {
|
|
41585
|
-
tag: "
|
|
41586
|
-
|
|
42255
|
+
tag: "block-source",
|
|
42256
|
+
sourceRef: null
|
|
41587
42257
|
};
|
|
41588
42258
|
}
|
|
41589
42259
|
case "signed-footer": return {
|
|
41590
42260
|
tag: "signed-footer-source",
|
|
41591
|
-
|
|
41592
|
-
};
|
|
41593
|
-
case "legacy-direct-list": return {
|
|
41594
|
-
tag: "legacy-direct-list",
|
|
41595
|
-
listId: source.listId
|
|
42261
|
+
sourceRef: source.sourceRef
|
|
41596
42262
|
};
|
|
42263
|
+
case "preview": return { tag: "preview" };
|
|
41597
42264
|
default: return assertNever$4(source);
|
|
41598
42265
|
}
|
|
41599
42266
|
}
|
|
41600
|
-
function
|
|
41601
|
-
|
|
41602
|
-
|
|
42267
|
+
function resolveRuntimeChoices(context, targeting) {
|
|
42268
|
+
if (context?.tag !== "configured" || targeting.mode !== "custom" || targeting.selection.tag !== "visitor_choice" || context.provider.provider !== targeting.provider) return [];
|
|
42269
|
+
switch (targeting.provider) {
|
|
42270
|
+
case "native": {
|
|
42271
|
+
const offered = new Set(targeting.selection.offeredTopicIds);
|
|
42272
|
+
return context.provider.provider === "native" ? context.provider.topics.filter((item) => offered.has(item.id)).map((item) => ({
|
|
42273
|
+
id: item.id,
|
|
42274
|
+
label: item.name
|
|
42275
|
+
})) : [];
|
|
42276
|
+
}
|
|
42277
|
+
case "brevo": {
|
|
42278
|
+
const offered = new Set(targeting.selection.offeredListIds);
|
|
42279
|
+
return context.provider.provider === "brevo" ? context.provider.lists.filter((item) => offered.has(item.id)).map((item) => ({
|
|
42280
|
+
id: String(item.id),
|
|
42281
|
+
label: item.name
|
|
42282
|
+
})) : [];
|
|
42283
|
+
}
|
|
42284
|
+
case "mailchimp": {
|
|
42285
|
+
const offered = new Set(targeting.selection.offeredInterestIds);
|
|
42286
|
+
return (context.provider.provider === "mailchimp" ? context.provider.audiences.find((item) => item.id === targeting.audienceId) : void 0)?.interests.filter((item) => offered.has(item.id)).map((item) => ({
|
|
42287
|
+
id: item.id,
|
|
42288
|
+
label: item.name
|
|
42289
|
+
})) ?? [];
|
|
42290
|
+
}
|
|
42291
|
+
}
|
|
42292
|
+
}
|
|
42293
|
+
function runtimeTargetingIsAvailable(context, targeting, choices) {
|
|
42294
|
+
if (context?.tag !== "configured") return false;
|
|
42295
|
+
const provider = context.provider;
|
|
42296
|
+
if (targeting.mode === "default") switch (provider.provider) {
|
|
42297
|
+
case "native": return provider.topics.some((item) => item.id === provider.defaultTopicId);
|
|
42298
|
+
case "brevo": return provider.lists.some((item) => item.id === provider.defaultListId);
|
|
42299
|
+
case "mailchimp": return provider.audiences.some((item) => item.id === provider.defaultAudienceId);
|
|
42300
|
+
}
|
|
42301
|
+
if (targeting.provider !== provider.provider) return false;
|
|
42302
|
+
switch (targeting.provider) {
|
|
42303
|
+
case "native": return provider.provider === "native" && nativeTargetIsAvailable(provider, targeting, choices);
|
|
42304
|
+
case "brevo": return provider.provider === "brevo" && brevoTargetIsAvailable(provider, targeting, choices);
|
|
42305
|
+
case "mailchimp": return provider.provider === "mailchimp" && mailchimpTargetIsAvailable(provider, targeting, choices);
|
|
42306
|
+
}
|
|
42307
|
+
}
|
|
42308
|
+
function nativeTargetIsAvailable(provider, targeting, choices) {
|
|
42309
|
+
const ids = targeting.selection.tag === "fixed" ? targeting.selection.topicIds : targeting.selection.offeredTopicIds;
|
|
42310
|
+
return ids.every((id) => provider.topics.some((item) => item.id === id)) && (targeting.selection.tag !== "visitor_choice" || choices.length === ids.length);
|
|
42311
|
+
}
|
|
42312
|
+
function brevoTargetIsAvailable(provider, targeting, choices) {
|
|
42313
|
+
const ids = targeting.selection.tag === "fixed" ? targeting.selection.listIds : targeting.selection.offeredListIds;
|
|
42314
|
+
return ids.every((id) => provider.lists.some((item) => item.id === id)) && (targeting.selection.tag !== "visitor_choice" || choices.length === ids.length);
|
|
42315
|
+
}
|
|
42316
|
+
function mailchimpTargetIsAvailable(provider, targeting, choices) {
|
|
42317
|
+
const audience = provider.audiences.find((item) => item.id === targeting.audienceId);
|
|
42318
|
+
if (!audience) return false;
|
|
42319
|
+
const ids = targeting.selection.tag === "fixed" ? targeting.selection.interestIds : targeting.selection.offeredInterestIds;
|
|
42320
|
+
return ids.every((id) => audience.interests.some((item) => item.id === id)) && (targeting.selection.tag !== "visitor_choice" || choices.length === ids.length);
|
|
42321
|
+
}
|
|
42322
|
+
function parseRequiredMailingListSignupBlockId(value) {
|
|
42323
|
+
const parsed = parseMailingListBlockId(value);
|
|
42324
|
+
if (!parsed) throw new Error("Mailing-list signup block source ref requires blockId");
|
|
41603
42325
|
return parsed;
|
|
41604
42326
|
}
|
|
41605
|
-
function
|
|
41606
|
-
const parsed =
|
|
41607
|
-
if (!parsed) throw new Error("
|
|
42327
|
+
function parseRequiredMailingListSignedSourceToken(value) {
|
|
42328
|
+
const parsed = parseMailingListSignedSourceToken(value);
|
|
42329
|
+
if (!parsed) throw new Error("Mailing-list signup signed source ref requires token");
|
|
41608
42330
|
return parsed;
|
|
41609
42331
|
}
|
|
41610
|
-
var
|
|
42332
|
+
var newsletterButtonVariantSchema, mailingListContextSchema, mailingListTargetingSchema, newsletterFieldSchema, mailingListSignupBlockIdSchema, signedMailingListSourceTokenSchema, newsletterSourceCommonSchema, newsletterSourceSchema, newsletterDisplaySchema, newsletterHydrationSchema, newsletterRenderSchema, newsletterFormBlockRuntime;
|
|
41611
42333
|
var init_newsletter_form_interactive = __esmMin((() => {
|
|
41612
42334
|
init_src$4();
|
|
41613
42335
|
init_islands();
|
|
41614
42336
|
init_runtime$1();
|
|
41615
|
-
init_newsletter_signup_destination();
|
|
41616
42337
|
init_newsletter_form_types();
|
|
41617
42338
|
init_buttonRoles();
|
|
41618
|
-
newsletterPresetSchema = z.enum([
|
|
41619
|
-
"emailOnly",
|
|
41620
|
-
"emailName",
|
|
41621
|
-
"emailFirstLast",
|
|
41622
|
-
"emailNameCompany"
|
|
41623
|
-
]);
|
|
41624
|
-
newsletterDestinationProviderSchema = z.enum(["riverbank", "mailchimp"]);
|
|
41625
42339
|
newsletterButtonVariantSchema = blockButtonRoleSchema;
|
|
42340
|
+
mailingListContextSchema = z.unknown().transform((value, ctx) => {
|
|
42341
|
+
const parsed = parseMailingListRuntimeContext(value);
|
|
42342
|
+
if (!parsed.ok) {
|
|
42343
|
+
ctx.addIssue({
|
|
42344
|
+
code: z.ZodIssueCode.custom,
|
|
42345
|
+
message: "Invalid mailing-list runtime context"
|
|
42346
|
+
});
|
|
42347
|
+
return z.NEVER;
|
|
42348
|
+
}
|
|
42349
|
+
return parsed.value;
|
|
42350
|
+
});
|
|
42351
|
+
mailingListTargetingSchema = z.unknown().transform((value, ctx) => {
|
|
42352
|
+
const parsed = parseMailingListPlacementTargeting(value);
|
|
42353
|
+
if (!parsed.ok) {
|
|
42354
|
+
ctx.addIssue({
|
|
42355
|
+
code: z.ZodIssueCode.custom,
|
|
42356
|
+
message: "Invalid mailing-list targeting"
|
|
42357
|
+
});
|
|
42358
|
+
return z.NEVER;
|
|
42359
|
+
}
|
|
42360
|
+
return parsed.value;
|
|
42361
|
+
});
|
|
41626
42362
|
newsletterFieldSchema = z.object({
|
|
41627
42363
|
id: z.string(),
|
|
41628
42364
|
type: z.enum(["email", "text"]),
|
|
@@ -41630,73 +42366,73 @@ var init_newsletter_form_interactive = __esmMin((() => {
|
|
|
41630
42366
|
required: z.boolean(),
|
|
41631
42367
|
placeholder: z.string().optional()
|
|
41632
42368
|
});
|
|
41633
|
-
|
|
41634
|
-
|
|
42369
|
+
mailingListSignupBlockIdSchema = z.string().trim().min(1).transform(parseRequiredMailingListSignupBlockId);
|
|
42370
|
+
signedMailingListSourceTokenSchema = z.string().trim().min(1).transform(parseRequiredMailingListSignedSourceToken);
|
|
41635
42371
|
newsletterSourceCommonSchema = z.object({
|
|
41636
42372
|
siteId: z.string().optional(),
|
|
41637
42373
|
apiBaseUrl: z.string().optional(),
|
|
41638
|
-
|
|
41639
|
-
|
|
41640
|
-
buttonLabel: z.string().nullable().optional(),
|
|
42374
|
+
mailingList: mailingListContextSchema.optional(),
|
|
42375
|
+
targeting: mailingListTargetingSchema.optional(),
|
|
41641
42376
|
buttonVariant: newsletterButtonVariantSchema.nullable().optional(),
|
|
41642
|
-
successMessage: z.string().nullable().optional(),
|
|
41643
|
-
privacyNote: z.string().nullable().optional(),
|
|
41644
|
-
tags: z.string().nullable().optional(),
|
|
41645
42377
|
spamProtectionEnabled: z.boolean().optional(),
|
|
41646
42378
|
className: z.string().nullable().optional()
|
|
41647
42379
|
});
|
|
41648
42380
|
newsletterSourceSchema = z.discriminatedUnion("source", [
|
|
41649
42381
|
newsletterSourceCommonSchema.extend({
|
|
41650
42382
|
source: z.literal("block"),
|
|
41651
|
-
blockId: z.string().nullable().optional()
|
|
41652
|
-
listId: z.string().nullable().optional(),
|
|
41653
|
-
destinationProvider: newsletterDestinationProviderSchema.nullable().optional()
|
|
42383
|
+
blockId: z.string().nullable().optional()
|
|
41654
42384
|
}),
|
|
41655
42385
|
newsletterSourceCommonSchema.extend({
|
|
41656
42386
|
source: z.literal("signed-footer"),
|
|
41657
|
-
|
|
41658
|
-
tag: z.literal("
|
|
41659
|
-
token:
|
|
42387
|
+
sourceRef: z.object({
|
|
42388
|
+
tag: z.literal("signed_source_ref"),
|
|
42389
|
+
token: signedMailingListSourceTokenSchema
|
|
41660
42390
|
})
|
|
41661
42391
|
}),
|
|
41662
|
-
newsletterSourceCommonSchema.extend({
|
|
41663
|
-
source: z.literal("legacy-direct-list"),
|
|
41664
|
-
listId: z.string().nullable()
|
|
41665
|
-
})
|
|
42392
|
+
newsletterSourceCommonSchema.extend({ source: z.literal("preview") })
|
|
41666
42393
|
]);
|
|
41667
42394
|
newsletterDisplaySchema = z.object({
|
|
41668
42395
|
kind: z.literal("newsletter-form"),
|
|
42396
|
+
availability: z.enum(["ready", "unavailable"]),
|
|
41669
42397
|
className: z.string().nullable(),
|
|
41670
42398
|
buttonLabel: z.string(),
|
|
41671
42399
|
buttonVariant: newsletterButtonVariantSchema,
|
|
41672
|
-
successMessage: z.string().nullable(),
|
|
41673
42400
|
privacyNote: z.string().nullable(),
|
|
41674
|
-
fields: z.array(newsletterFieldSchema)
|
|
42401
|
+
fields: z.array(newsletterFieldSchema),
|
|
42402
|
+
choices: z.array(z.object({
|
|
42403
|
+
id: z.string(),
|
|
42404
|
+
label: z.string()
|
|
42405
|
+
}))
|
|
41675
42406
|
});
|
|
41676
42407
|
newsletterHydrationSchema = z.object({
|
|
41677
42408
|
target: z.discriminatedUnion("tag", [
|
|
41678
42409
|
z.object({
|
|
41679
42410
|
tag: z.literal("block-source"),
|
|
41680
|
-
|
|
42411
|
+
sourceRef: z.object({
|
|
41681
42412
|
tag: z.literal("block_ref"),
|
|
41682
|
-
blockId:
|
|
42413
|
+
blockId: mailingListSignupBlockIdSchema
|
|
41683
42414
|
}).nullable()
|
|
41684
42415
|
}),
|
|
41685
42416
|
z.object({
|
|
41686
42417
|
tag: z.literal("signed-footer-source"),
|
|
41687
|
-
|
|
41688
|
-
tag: z.literal("
|
|
41689
|
-
token:
|
|
42418
|
+
sourceRef: z.object({
|
|
42419
|
+
tag: z.literal("signed_source_ref"),
|
|
42420
|
+
token: signedMailingListSourceTokenSchema
|
|
41690
42421
|
})
|
|
41691
42422
|
}),
|
|
41692
|
-
z.object({
|
|
41693
|
-
|
|
41694
|
-
|
|
41695
|
-
|
|
42423
|
+
z.object({ tag: z.literal("preview") })
|
|
42424
|
+
]),
|
|
42425
|
+
setupRevision: z.number().int().positive().nullable(),
|
|
42426
|
+
choiceProvider: z.enum([
|
|
42427
|
+
"native",
|
|
42428
|
+
"brevo",
|
|
42429
|
+
"mailchimp"
|
|
42430
|
+
]).nullable(),
|
|
42431
|
+
choicePresentation: z.enum([
|
|
42432
|
+
"hidden",
|
|
42433
|
+
"automatic",
|
|
42434
|
+
"visitor_choice"
|
|
41696
42435
|
]),
|
|
41697
|
-
preset: newsletterPresetSchema,
|
|
41698
|
-
includePhone: z.boolean(),
|
|
41699
|
-
tags: z.string().nullable().optional(),
|
|
41700
42436
|
spamProtectionEnabled: z.boolean().optional()
|
|
41701
42437
|
});
|
|
41702
42438
|
newsletterRenderSchema = z.object({
|
|
@@ -41714,14 +42450,15 @@ var init_newsletter_form_interactive = __esmMin((() => {
|
|
|
41714
42450
|
render: createZodCodec(newsletterRenderSchema)
|
|
41715
42451
|
},
|
|
41716
42452
|
buildRender: (source) => {
|
|
41717
|
-
const
|
|
42453
|
+
const targeting = source.targeting ?? { mode: "default" };
|
|
42454
|
+
const presentation = planMailingListChoicePresentation(targeting);
|
|
41718
42455
|
return {
|
|
41719
42456
|
display: buildNewsletterDisplay(source),
|
|
41720
42457
|
hydration: {
|
|
41721
42458
|
target: projectNewsletterFormHydrationTarget(source),
|
|
41722
|
-
|
|
41723
|
-
|
|
41724
|
-
|
|
42459
|
+
setupRevision: source.mailingList?.tag === "configured" ? source.mailingList.revision : null,
|
|
42460
|
+
choiceProvider: targeting.mode === "custom" ? targeting.provider : null,
|
|
42461
|
+
choicePresentation: presentation.tag,
|
|
41725
42462
|
spamProtectionEnabled: source.spamProtectionEnabled
|
|
41726
42463
|
}
|
|
41727
42464
|
};
|
|
@@ -41730,6 +42467,19 @@ var init_newsletter_form_interactive = __esmMin((() => {
|
|
|
41730
42467
|
}));
|
|
41731
42468
|
//#endregion
|
|
41732
42469
|
//#region ../blocks/src/system/blocks/newsletter-signup.ts
|
|
42470
|
+
function sanitizeNewsletterSignupPublicContent(content) {
|
|
42471
|
+
if (typeof content !== "object" || content === null || Array.isArray(content)) return content;
|
|
42472
|
+
const value = content;
|
|
42473
|
+
return {
|
|
42474
|
+
title: value.title,
|
|
42475
|
+
subtitle: value.subtitle,
|
|
42476
|
+
targeting: value.targeting,
|
|
42477
|
+
buttonVariant: value.buttonVariant,
|
|
42478
|
+
mailingListSource: value.mailingListSource,
|
|
42479
|
+
mailingListSourceToken: value.mailingListSourceToken,
|
|
42480
|
+
_sectionStyles: value._sectionStyles
|
|
42481
|
+
};
|
|
42482
|
+
}
|
|
41733
42483
|
var stackedComposition, stackedLayout, inlineLayout, editorialSplitLayout, newsletterSignupManifest, newsletterSignupBlockDefinition;
|
|
41734
42484
|
var init_newsletter_signup = __esmMin((() => {
|
|
41735
42485
|
init_fragments$1();
|
|
@@ -41738,7 +42488,6 @@ var init_newsletter_signup = __esmMin((() => {
|
|
|
41738
42488
|
init_defineBlock();
|
|
41739
42489
|
init_fragments();
|
|
41740
42490
|
init_newsletter_form_interactive();
|
|
41741
|
-
init_newsletter_signup_destination();
|
|
41742
42491
|
stackedComposition = composeFragments([{ fragment: newsletterCopyFragment }, { fragment: newsletterFormFragment }]);
|
|
41743
42492
|
stackedLayout = styledSection({
|
|
41744
42493
|
children: sectionContainer(stackedComposition.layout, {
|
|
@@ -42724,6 +43473,7 @@ var init_blocks$1 = __esmMin((() => {
|
|
|
42724
43473
|
init_feature_cards();
|
|
42725
43474
|
init_media_text();
|
|
42726
43475
|
init_appointment_booking();
|
|
43476
|
+
init_appointment_services();
|
|
42727
43477
|
init_weekly_slot_availability();
|
|
42728
43478
|
init_event_registration();
|
|
42729
43479
|
init_event_details();
|
|
@@ -43216,6 +43966,14 @@ var init_blocks$1 = __esmMin((() => {
|
|
|
43216
43966
|
weight: "standard"
|
|
43217
43967
|
})]
|
|
43218
43968
|
})),
|
|
43969
|
+
withDesignCapability("block.appointment-services", appointmentServicesBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
|
|
43970
|
+
flow: conversionFlow,
|
|
43971
|
+
layoutProfiles: [layoutProfile({
|
|
43972
|
+
variantKey: "default",
|
|
43973
|
+
family: "stack",
|
|
43974
|
+
weight: "standard"
|
|
43975
|
+
})]
|
|
43976
|
+
})),
|
|
43219
43977
|
withDesignCapability("block.weekly-slot-availability", weeklySlotAvailabilityBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
|
|
43220
43978
|
flow: offeringsFlow,
|
|
43221
43979
|
layoutProfiles: [layoutProfile({
|
|
@@ -45732,6 +46490,38 @@ var init_siteBanner = __esmMin((() => {
|
|
|
45732
46490
|
content: []
|
|
45733
46491
|
}]
|
|
45734
46492
|
};
|
|
46493
|
+
})), EU_MEMBER_COUNTRIES;
|
|
46494
|
+
var init_privacyPolicy = __esmMin((() => {
|
|
46495
|
+
EU_MEMBER_COUNTRIES = [
|
|
46496
|
+
"AT",
|
|
46497
|
+
"BE",
|
|
46498
|
+
"BG",
|
|
46499
|
+
"HR",
|
|
46500
|
+
"CY",
|
|
46501
|
+
"CZ",
|
|
46502
|
+
"DK",
|
|
46503
|
+
"EE",
|
|
46504
|
+
"FI",
|
|
46505
|
+
"FR",
|
|
46506
|
+
"DE",
|
|
46507
|
+
"GR",
|
|
46508
|
+
"HU",
|
|
46509
|
+
"IE",
|
|
46510
|
+
"IT",
|
|
46511
|
+
"LV",
|
|
46512
|
+
"LT",
|
|
46513
|
+
"LU",
|
|
46514
|
+
"MT",
|
|
46515
|
+
"NL",
|
|
46516
|
+
"PL",
|
|
46517
|
+
"PT",
|
|
46518
|
+
"RO",
|
|
46519
|
+
"SK",
|
|
46520
|
+
"SI",
|
|
46521
|
+
"ES",
|
|
46522
|
+
"SE"
|
|
46523
|
+
];
|
|
46524
|
+
new Set(EU_MEMBER_COUNTRIES);
|
|
45735
46525
|
}));
|
|
45736
46526
|
//#endregion
|
|
45737
46527
|
//#region ../api/src/analytics.ts
|
|
@@ -45926,7 +46716,6 @@ var init_dashboardTeamMemberNav = __esmMin((() => {
|
|
|
45926
46716
|
var init_dashboardBookingsNav = __esmMin((() => {
|
|
45927
46717
|
init_staffAccess();
|
|
45928
46718
|
}));
|
|
45929
|
-
var init_identity = __esmMin((() => {}));
|
|
45930
46719
|
//#endregion
|
|
45931
46720
|
//#region ../api/src/navigation/dashboardDemoNav.ts
|
|
45932
46721
|
var init_dashboardDemoNav = __esmMin((() => {
|
|
@@ -45943,7 +46732,6 @@ var init_navigation = __esmMin((() => {
|
|
|
45943
46732
|
init_permissions();
|
|
45944
46733
|
init_dashboardTeamMemberNav();
|
|
45945
46734
|
init_dashboardBookingsNav();
|
|
45946
|
-
init_identity();
|
|
45947
46735
|
init_dashboardDemoNav();
|
|
45948
46736
|
init_src$2();
|
|
45949
46737
|
}));
|
|
@@ -46091,6 +46879,7 @@ var init_src = __esmMin((() => {
|
|
|
46091
46879
|
init_types();
|
|
46092
46880
|
init_siteBanner();
|
|
46093
46881
|
init_siteOnboarding();
|
|
46882
|
+
init_privacyPolicy();
|
|
46094
46883
|
init_analytics();
|
|
46095
46884
|
init_publicProducts();
|
|
46096
46885
|
init_contentEntries();
|
|
@@ -46556,6 +47345,7 @@ function buildSiteRenderSupport(site, mediaAssets) {
|
|
|
46556
47345
|
site: site.site,
|
|
46557
47346
|
sdkConfig: site.sdkConfig ?? null,
|
|
46558
47347
|
bookingOfferingPresets: site.bookingOfferingPresets ?? [],
|
|
47348
|
+
mailingList: site.mailingList,
|
|
46559
47349
|
bookingTimeZone: site.bookingTimeZone ?? "UTC",
|
|
46560
47350
|
...customBlocks ? { customBlocks } : {},
|
|
46561
47351
|
supabaseUrl: site.supabaseUrl,
|
|
@@ -46808,6 +47598,7 @@ async function loadPageWithDeps(deps, params) {
|
|
|
46808
47598
|
siteId,
|
|
46809
47599
|
resolvedData,
|
|
46810
47600
|
bookingOfferingPresets: support.bookingOfferingPresets,
|
|
47601
|
+
mailingList: support.mailingList,
|
|
46811
47602
|
bookingTimeZone: support.bookingTimeZone,
|
|
46812
47603
|
supabaseUrl: support.supabaseUrl,
|
|
46813
47604
|
...support.mediaAssets ? { mediaAssets: support.mediaAssets } : {},
|