@riverbankcms/sdk 0.132.0 → 0.135.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/CHANGELOG.md +14 -3
- package/README.md +1 -1
- package/dist/{PreviewEditorSidebar-DKQ5eFK9.mjs → PreviewEditorSidebar-roNY0GVy.mjs} +4 -4
- package/dist/{PreviewEditorUI-CNTcOjCC.mjs → PreviewEditorUI-KboDbEh_.mjs} +3 -3
- package/dist/{PreviewQueryProvider-D51gQaG3.mjs → PreviewQueryProvider-DcgaESkm.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-DJu3qu33.mjs → SdkPreviewModeRuntime-DBrF7Caa.mjs} +48 -17
- package/dist/{SiteChromeCustomizeContext-2TzT3vbj.mjs → SiteChromeCustomizeContext-DrIEpJKn.mjs} +4351 -7964
- package/dist/_dts/ai/src/contracts/proposals.d.ts +549 -549
- package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +234 -234
- package/dist/_dts/api/src/accountApi.d.ts +5 -5
- package/dist/_dts/api/src/appointmentEndpointDefinitions.d.ts +1 -1
- package/dist/_dts/api/src/bookingConfig.d.ts +1 -1
- package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +25 -60
- package/dist/_dts/api/src/bookingOperations.d.ts +111 -173
- package/dist/_dts/api/src/bookingPaymentTermSchemas.d.ts +123 -0
- package/dist/_dts/api/src/bookingRecords.d.ts +13 -13
- package/dist/_dts/api/src/bookingRefundOutcomes.d.ts +4 -4
- package/dist/_dts/api/src/bookingSessionSummaryTypes.d.ts +34 -0
- package/dist/_dts/api/src/bookings.d.ts +7 -11
- package/dist/_dts/api/src/commercePortalEndpoints.d.ts +7 -7
- package/dist/_dts/api/src/communications.d.ts +1 -1
- package/dist/_dts/api/src/contentRuntime.d.ts +1 -1
- package/dist/_dts/api/src/endpoints.d.ts +30 -110
- package/dist/_dts/api/src/eventManagementContracts.d.ts +1 -1
- package/dist/_dts/api/src/eventSeriesRegistrationEndpointDefinitions.d.ts +43 -0
- package/dist/_dts/api/src/index.d.ts +3 -4
- package/dist/_dts/api/src/indexCoreTypes.d.ts +1 -1
- package/dist/_dts/api/src/navigation/contracts.d.ts +9 -6
- package/dist/_dts/api/src/navigation/linkResolver.d.ts +6 -2
- package/dist/_dts/api/src/navigation/types.d.ts +23 -6
- package/dist/_dts/api/src/navigation.d.ts +1 -1
- package/dist/_dts/api/src/participantMessaging.d.ts +2 -2
- package/dist/_dts/api/src/publicBookingService.d.ts +15 -0
- package/dist/_dts/api/src/publicEventEndpointDefinitions.d.ts +8 -0
- package/dist/_dts/api/src/publicExperience/commerceEndpoints.d.ts +32 -28
- package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +88 -6
- package/dist/_dts/api/src/publicExperience/sharedTypes.d.ts +1 -1
- package/dist/_dts/api/src/publicExperience/wholeSeriesEndpoints.d.ts +9 -98
- package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +7 -6
- package/dist/_dts/api/src/publicWholeSeriesEndpointDefinitions.d.ts +0 -32
- package/dist/_dts/api/src/sdk-event-payment-terms.d.ts +1 -1
- package/dist/_dts/api/src/sdk-event-upsert.d.ts +2 -2
- package/dist/_dts/api/src/sdkThemeWire.d.ts +50 -50
- package/dist/_dts/api/src/siteBanner.d.ts +4 -2
- package/dist/_dts/api/src/siteOperations.d.ts +2 -2
- package/dist/_dts/api/src/types.d.ts +2 -2
- package/dist/_dts/api/src/webhooks.d.ts +12 -12
- package/dist/_dts/api/src/{courses.d.ts → wholeSeriesOfferings.d.ts} +43 -95
- package/dist/_dts/blocks/src/client.d.ts +1 -6
- package/dist/_dts/blocks/src/contracts/index.d.ts +1 -1
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +33 -166
- package/dist/_dts/blocks/src/index.d.ts +3 -2
- package/dist/_dts/blocks/src/portal/dateFormatting.d.ts +3 -0
- package/dist/_dts/blocks/src/portal/types.d.ts +17 -20
- package/dist/_dts/blocks/src/primitives/content/components/RichText.d.ts +2 -2
- package/dist/_dts/blocks/src/primitives/content/primitives.d.ts +1 -0
- package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +147 -42
- package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +46 -24
- package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/events/whole-series/schemas.d.ts +3 -3
- package/dist/_dts/blocks/src/system/blocks/events/whole-series/types.d.ts +6 -0
- package/dist/_dts/blocks/src/system/blocks/index.d.ts +0 -2
- package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +4 -4
- package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +148 -148
- package/dist/_dts/blocks/src/system/blocks/offerings-preview/model.d.ts +5 -4
- package/dist/_dts/blocks/src/system/blocks/offerings-preview/scheduleSummary.d.ts +3 -3
- package/dist/_dts/blocks/src/system/blocks/shared/bookingConsent.d.ts +36 -0
- package/dist/_dts/blocks/src/system/constants/blockKinds.d.ts +1 -1
- package/dist/_dts/blocks/src/system/manifest/hydrateLinks.d.ts +9 -2
- package/dist/_dts/blocks/src/system/manifest/resolveBlockData.d.ts +8 -0
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +79 -79
- package/dist/_dts/blocks/src/system/node/builder.d.ts +0 -1
- package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +9 -12
- package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +2 -44
- package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/api/types/appointments.d.ts +2 -11
- package/dist/_dts/blocks/src/system/runtime/api/types/core.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +100 -59
- package/dist/_dts/blocks/src/system/runtime/api/types/portal.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/api/types/shop.d.ts +19 -16
- package/dist/_dts/blocks/src/system/runtime/api/types/waitlist-claims.d.ts +7 -0
- package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/components/multi-step/DynamicFormFields.d.ts +3 -19
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +24 -247
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +13 -126
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessEventRegistrationFlow.d.ts +0 -1
- package/dist/_dts/blocks/src/system/runtime/hooks/usePaymentVerification.d.ts +2 -3
- package/dist/_dts/blocks/src/system/runtime/hooks/useSelectedAppointmentConsentForm.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.consent.d.ts +10 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.field-values.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.fields.d.ts +21 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.interactive.d.ts +38 -144
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.state.d.ts +5 -19
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-runtime-sources.d.ts +3 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-details/WholeSeriesPricingDisplay.d.ts +8 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/AttendeeDetailsStep.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationBookingLayer.d.ts +17 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationSurface.d.ts +24 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/PaymentBlockingPanel.d.ts +18 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/TicketSelectionStep.d.ts +5 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/constants.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +1 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventPaymentOptions.d.ts +7 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventScope.d.ts +0 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/hooks.d.ts +7 -8
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/index.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationDerivations.d.ts +4 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationEventAdapter.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationStateMachine.d.ts +5 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationSurface.d.ts +18 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationWizardContext.d.ts +28 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/sessionStorage.d.ts +12 -11
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +53 -45
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationStripeReturn.d.ts +10 -6
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +9 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +24 -9
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useWaitlistClaimRestoration.d.ts +20 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/utils.d.ts +5 -56
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/validation.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/waitlistClaimRestoration.d.ts +20 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +6 -22
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/DateTimeTile.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +40 -18
- package/dist/_dts/blocks/src/system/runtime/nodes/offerings-preview.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/shared/bookingPaymentOptions.d.ts +6 -1
- package/dist/_dts/blocks/src/system/runtime/shared/components/BookingConsentAgreement.d.ts +7 -0
- package/dist/_dts/blocks/src/system/runtime/shared/components/DiscountCodeDisclosure.d.ts +1 -13
- package/dist/_dts/blocks/src/system/runtime/shared/components/LoggedInAsUser.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/shared/components/MembershipHero.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/shared/components/StateIcon.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/shared/index.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/shared/types.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/shared/utils/checkoutUrls.d.ts +2 -2
- package/dist/_dts/blocks/src/system/types/link.d.ts +7 -1
- package/dist/_dts/commerce/src/index.d.ts +16 -0
- package/dist/_dts/commerce/src/money.d.ts +122 -0
- package/dist/_dts/commerce/src/moneyContracts.d.ts +178 -0
- package/dist/_dts/commerce/src/moneyDateUtils.d.ts +22 -0
- package/dist/_dts/commerce/src/moneyPayments.d.ts +59 -0
- package/dist/_dts/commerce/src/moneyPlanningTime.d.ts +4 -0
- package/dist/_dts/commerce/src/moneyReceiptReadModel.d.ts +68 -0
- package/dist/_dts/commerce/src/moneyReport.d.ts +105 -0
- package/dist/_dts/commerce/src/moneyReportBreakdowns.d.ts +3 -0
- package/dist/_dts/commerce/src/moneyReportKindFilter.d.ts +4 -0
- package/dist/_dts/commerce/src/moneyReportPage.d.ts +132 -0
- package/dist/_dts/commerce/src/purchase/checkoutCollectionPlan.d.ts +1 -1
- package/dist/_dts/commerce/src/purchase/confirmationEmailPayment.d.ts +1 -1
- package/dist/_dts/commerce/src/purchase/orderCompletionEmailPlan.d.ts +3 -3
- package/dist/_dts/commerce/src/purchase/orderFulfillmentPlan.d.ts +6 -25
- package/dist/_dts/commerce/src/purchase/orderItemMetadata.d.ts +4 -4
- package/dist/_dts/commerce/src/purchase/orderPlanningTypes.d.ts +11 -11
- package/dist/_dts/commerce/src/purchase/orderTypes.d.ts +1 -1
- package/dist/_dts/commerce/src/purchase/persistedCheckoutLines.d.ts +1 -1
- package/dist/_dts/commerce/src/purchase/types.d.ts +12 -8
- package/dist/_dts/commerce/src/shop/digitalFulfillment.d.ts +111 -0
- package/dist/_dts/commerce/src/shop/fulfillmentStatus.d.ts +10 -0
- package/dist/_dts/commerce/src/shop/inventoryRestore.d.ts +13 -0
- package/dist/_dts/commerce/src/shop/shippingAddress.d.ts +18 -0
- package/dist/_dts/commerce/src/types/json.d.ts +3 -0
- package/dist/_dts/commerce/src/utils/isPlainRecord.d.ts +1 -0
- package/dist/_dts/commerce/src/waitlists.d.ts +172 -0
- package/dist/_dts/content-model/src/content-types/builtin-schemas.d.ts +0 -30
- package/dist/_dts/content-model/src/content-types/builtins.d.ts +2 -39
- package/dist/_dts/content-model/src/content-types/schema.d.ts +4 -4
- package/dist/_dts/content-model/src/metadataConfig.d.ts +0 -1
- package/dist/_dts/content-model/src/templates/defaults.d.ts +0 -68
- package/dist/_dts/core/src/booking-consent.d.ts +8 -0
- package/dist/_dts/core/src/branded.d.ts +3 -3
- package/dist/_dts/core/src/event-pricing.d.ts +6 -6
- package/dist/_dts/core/src/index.d.ts +1 -0
- package/dist/_dts/core/src/participants.d.ts +17 -17
- package/dist/_dts/core/src/rectification.d.ts +1 -1
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +899 -2157
- package/dist/_dts/db/src/schemas/forms.d.ts +21 -21
- package/dist/_dts/db/src/types/jsonb.d.ts +1 -1
- package/dist/_dts/editor/src/primitives/rich-text/RichTextEditorSurface.d.ts +2 -1
- package/dist/_dts/editor/src/primitives/rich-text/config.d.ts +2 -1
- package/dist/_dts/editor/src/primitives/rich-text/toolbar/linkPopoverUtils.d.ts +3 -2
- package/dist/_dts/editor/src/primitives/rich-text/useRichTextEditor.d.ts +3 -4
- package/dist/_dts/media-core/src/usageScanner.d.ts +1 -1
- package/dist/_dts/sdk/src/bookings/index.d.ts +4 -5
- package/dist/_dts/sdk/src/bookings/types.d.ts +8 -60
- package/dist/_dts/sdk/src/config/validation.d.ts +30 -30
- package/dist/_dts/sdk/src/contracts/content.d.ts +10 -36
- package/dist/_dts/sdk/src/contracts/rendering.d.ts +1 -1
- package/dist/_dts/sdk/src/manifest/passes/pass1-fields.d.ts +9 -9
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +6 -19
- package/dist/_dts/sdk/src/rendering/islands/types.d.ts +4 -6
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/theme-core/src/accordions/types.d.ts +2 -2
- package/dist/_dts/theme-core/src/blocks/vars/index.d.ts +0 -2
- package/dist/_dts/theme-core/src/buttons/types.d.ts +12 -12
- package/dist/_dts/theme-core/src/cards/types.d.ts +5 -5
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +72 -72
- package/dist/_dts/theme-core/src/navigation/types.d.ts +4 -4
- package/dist/_dts/theme-core/src/palette/colors.d.ts +1 -1
- package/dist/_dts/theme-core/src/palette/curated/types.d.ts +2 -2
- package/dist/_dts/theme-core/src/schema.d.ts +82 -82
- package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/cardRoleVocabulary.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/designState.d.ts +2 -2
- package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +4 -4
- package/dist/_dts/theme-core/src/site-styles/logoBranding.d.ts +4 -4
- package/dist/_dts/theme-core/src/tokens/themeColorTokens.d.ts +1 -1
- package/dist/_dts/ui/src/badge.d.ts +1 -1
- package/dist/_dts/ui/src/button.d.ts +1 -1
- package/dist/_dts/ui/src/callout.d.ts +1 -1
- package/dist/_dts/ui/src/card.d.ts +1 -1
- package/dist/client/{usePolling-M5jG675x.mjs → BookingConsentAgreement-BQqwi8Oa.mjs} +180 -4
- package/dist/client/{DiscountCodeDisclosure-DO7llLxm.mjs → DiscountCodeDisclosure-B97aMo0V.mjs} +13 -27
- package/dist/client/{EventCombined.client-xID7zN__.mjs → EventCombined.client-Bs2Iw9Q6.mjs} +3 -3
- package/dist/client/{EventListing.client-CriBslp0.mjs → EventListing.client-C4QUQdmg.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-DYmHnM8g.mjs → LeafletStaticMap-CwWRk69M.mjs} +1 -1
- package/dist/client/{accordion-CgFbnnnQ.mjs → accordion-BA0j8Mpw.mjs} +1 -1
- package/dist/client/{bookingForm-dUyGpbxc.mjs → bookingForm-Br2e41H0.mjs} +72 -47
- package/dist/client/bookings.mjs +1987 -2132
- package/dist/client/{carousel-BvBwkUzx.mjs → carousel-B4dmwnpD.mjs} +1 -1
- package/dist/client/{cart-DiZENT2E.mjs → cart-B_ckGW4b.mjs} +3 -3
- package/dist/client/{checkout-Dq13KIgR.mjs → checkout-DAyspHdf.mjs} +3 -3
- package/dist/client/checkoutUrls-BuseL0dw.mjs +189 -0
- package/dist/client/client.mjs +5627 -9543
- package/dist/client/{context-B83PiNzm.mjs → context-DljQn8L5.mjs} +15 -82
- package/dist/client/{eventCalendar-BF0Jatfw.mjs → eventCalendar-pJu3FUod.mjs} +5 -5
- package/dist/client/{eventCombined-BuoCF8je.mjs → eventCombined-B6Kacm9F.mjs} +3 -3
- package/dist/client/{eventDetails-CKwh0S9s.mjs → eventDetails-CaX9z1pv.mjs} +8 -8
- package/dist/client/{eventListing-eUxaWFaB.mjs → eventListing-B9aXPO-I.mjs} +3 -3
- package/dist/client/{eventRegistration-CfkNOkPb.mjs → eventRegistration-CBSovBkg.mjs} +4550 -3671
- package/dist/client/{form-C17H1c_H.mjs → form-Cm0tu_7o.mjs} +2 -2
- package/dist/client/{headerSection-DEwUmrtt.mjs → headerSection-OgRtHeKS.mjs} +2 -2
- package/dist/client/hooks.mjs +535 -694
- package/dist/client/{locationMap-Pf2QwuvW.mjs → locationMap-DmjcYqNM.mjs} +2 -2
- package/dist/client/{newsletterForm-BWQAH5Sv.mjs → newsletterForm-D08OZQAC.mjs} +2 -2
- package/dist/client/{productDetail-BZi1Fa_G.mjs → productDetail-BqZeu2P4.mjs} +3 -3
- package/dist/client/{productList-qq-55DNk.mjs → productList-mNyIF9FG.mjs} +3 -3
- package/dist/client/{propsDecoder-BxmqPKdP.mjs → propsDecoder-DwHXRm9X.mjs} +4850 -4502
- package/dist/client/rendering/client.mjs +59921 -62298
- package/dist/client/rendering/islands.mjs +17 -19
- package/dist/client/rendering.mjs +6226 -10236
- package/dist/client/{scrollToBlock-B3CcKdtG.mjs → scrollToBlock-DtmdM3v-.mjs} +2 -2
- package/dist/client/{shop-DNWJPut5.mjs → shop-CNjZK16F.mjs} +6 -6
- package/dist/client/{shop-commerce-BhvQCosS.mjs → shop-commerce-DkNNao1J.mjs} +7 -164
- package/dist/client/{shop-commerce-store-B04sCNnW.mjs → shop-commerce-store-9WA--zuW.mjs} +1 -1
- package/dist/client/{shopShared-DNNgZlmW.mjs → shopShared-CHCVfccY.mjs} +3 -3
- package/dist/client/{useEventFilters-CUmhE24_.mjs → useEventFilters-DvuaB4ZN.mjs} +3 -3
- package/dist/preview-next/before-render.mjs +40 -161
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/keepAlive.mjs +40 -161
- package/dist/preview-next/middleware.mjs +40 -161
- package/dist/{previewAuthStore-BFKd4LrN.mjs → previewAuthStore-C7ksxt5b.mjs} +40 -161
- package/dist/{sdk-runtime-BEXb1wqo.mjs → sdk-runtime-3GhW4knb.mjs} +2 -2
- package/dist/{separator-DGMuip1D.mjs → separator-D3bCWYYb.mjs} +1 -1
- package/dist/server/components.mjs +634 -2969
- package/dist/server/config-validation.mjs +535 -694
- package/dist/server/config.mjs +535 -694
- package/dist/server/data.mjs +535 -694
- package/dist/server/index.mjs +41 -162
- package/dist/server/next.mjs +644 -2979
- package/dist/server/page-converter.mjs +435 -561
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +635 -2874
- package/dist/server/rendering.mjs +634 -2969
- package/dist/server/routing.mjs +706 -1138
- package/dist/server/server.mjs +549 -708
- package/dist/server/theme-bridge.mjs +152 -1635
- package/dist/styles/index.css +41 -1348
- package/package.json +2 -2
- package/dist/_dts/api/src/courseEndpointDefinitions.d.ts +0 -99
- package/dist/_dts/blocks/src/client/course-registration.d.ts +0 -5
- package/dist/_dts/blocks/src/system/blocks/course-details.d.ts +0 -134
- package/dist/_dts/blocks/src/system/blocks/course-registration.d.ts +0 -130
- package/dist/_dts/blocks/src/system/blocks/courses/shared/index.d.ts +0 -3
- package/dist/_dts/blocks/src/system/blocks/courses/shared/pricing.d.ts +0 -2
- package/dist/_dts/blocks/src/system/blocks/courses/shared/schemas.d.ts +0 -1
- package/dist/_dts/blocks/src/system/blocks/courses/shared/types.d.ts +0 -1
- package/dist/_dts/blocks/src/system/runtime/api/types/courses.d.ts +0 -133
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessWholeSeriesRegistrationFlow.d.ts +0 -28
- package/dist/_dts/blocks/src/system/runtime/nodes/course-details/logic.d.ts +0 -11
- package/dist/_dts/blocks/src/system/runtime/nodes/course-details/runs.d.ts +0 -10
- package/dist/_dts/blocks/src/system/runtime/nodes/course-details/view.d.ts +0 -15
- package/dist/_dts/blocks/src/system/runtime/nodes/course-details.server.d.ts +0 -20
- package/dist/_dts/blocks/src/system/runtime/nodes/course-page-surface-scope.d.ts +0 -14
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration.client.d.ts +0 -10
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration.interactive.d.ts +0 -181
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration.server.d.ts +0 -12
- package/dist/_dts/blocks/src/system/runtime/nodes/event-details/CoursePricingDisplay.d.ts +0 -8
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/BookingModeStep.d.ts +0 -32
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/CheckIcon.d.ts +0 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/ErrorStep.d.ts +0 -17
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/MembershipHero.d.ts +0 -12
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/PaymentFailedStep.d.ts +0 -17
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/PortalAuthSidebar.d.ts +0 -9
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/StepIndicator.d.ts +0 -6
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/SuccessStep.d.ts +0 -14
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/VerifyingTimeoutStep.d.ts +0 -17
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/WaitlistStep.d.ts +0 -12
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/WholeSeriesRegistrationActiveSteps.d.ts +0 -9
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/WholeSeriesRegistrationErrorBoundary.d.ts +0 -25
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/WholeSeriesRegistrationTerminalContent.d.ts +0 -8
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/WholeSeriesRegistrationWizard.d.ts +0 -8
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/components.d.ts +0 -45
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/index.d.ts +0 -18
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/presentation.d.ts +0 -7
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/pricing.d.ts +0 -14
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/types.d.ts +0 -105
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/useWholeSeriesEligibility.d.ts +0 -24
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/useWholeSeriesPaymentVerification.d.ts +0 -10
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/useWholeSeriesRegistrationActions.d.ts +0 -35
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/useWholeSeriesRegistrationPortal.d.ts +0 -7
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/useWholeSeriesRegistrationSelection.d.ts +0 -35
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/useWholeSeriesRegistrationWizard.d.ts +0 -185
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/useWholeSeriesWaitlistSelection.d.ts +0 -14
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/utils.d.ts +0 -43
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/whole-series-registration.headless.contract.d.ts +0 -323
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/whole-series-registration.headless.planning.d.ts +0 -27
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/wholeSeriesPageSurfaceScope.d.ts +0 -17
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/wholeSeriesRegistrationViewState.d.ts +0 -21
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/wizardSteps.d.ts +0 -30
- package/dist/_dts/sdk/src/rendering/islands/enhancers/courseRegistration.d.ts +0 -3
- package/dist/_dts/theme-core/src/blocks/vars/course-details.d.ts +0 -16
- package/dist/_dts/theme-core/src/blocks/vars/course-registration.d.ts +0 -21
- package/dist/client/StepIndicator-CGixP_LW.mjs +0 -138
- package/dist/client/WholeSeriesRegistrationWizard-BEjzSiOA.mjs +0 -2496
- package/dist/client/checkoutUrls-Ct8Mxna3.mjs +0 -26
- package/dist/client/courseRegistration-CKC5NmyH.mjs +0 -52
- package/dist/client/pricing-CVdvbopJ.mjs +0 -195
package/dist/server/config.mjs
CHANGED
|
@@ -798,69 +798,8 @@ const ACCOUNT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
798
798
|
}
|
|
799
799
|
});
|
|
800
800
|
//#endregion
|
|
801
|
-
//#region ../api/src/
|
|
802
|
-
const
|
|
803
|
-
listCourses: {
|
|
804
|
-
path: "/sites/{siteId}/bookings/courses",
|
|
805
|
-
method: "GET",
|
|
806
|
-
auth: "user",
|
|
807
|
-
responseKind: "json"
|
|
808
|
-
},
|
|
809
|
-
exportCoursesCsv: {
|
|
810
|
-
path: "/sites/{siteId}/bookings/courses/export.csv",
|
|
811
|
-
method: "GET",
|
|
812
|
-
tags: [
|
|
813
|
-
"site-{siteId}",
|
|
814
|
-
"bookings",
|
|
815
|
-
"courses-{siteId}"
|
|
816
|
-
],
|
|
817
|
-
errors: [],
|
|
818
|
-
auth: "user",
|
|
819
|
-
responseKind: "blob"
|
|
820
|
-
},
|
|
821
|
-
createCourse: {
|
|
822
|
-
path: "/sites/{siteId}/bookings/courses",
|
|
823
|
-
method: "POST",
|
|
824
|
-
auth: "user",
|
|
825
|
-
responseKind: "json",
|
|
826
|
-
errors: [
|
|
827
|
-
"validation:invalid_input",
|
|
828
|
-
"resource:not_found",
|
|
829
|
-
"resource:already_exists",
|
|
830
|
-
"resource:conflict",
|
|
831
|
-
"server:internal_error"
|
|
832
|
-
]
|
|
833
|
-
},
|
|
834
|
-
getCourse: {
|
|
835
|
-
path: "/sites/{siteId}/bookings/courses/{courseId}",
|
|
836
|
-
method: "GET",
|
|
837
|
-
auth: "user",
|
|
838
|
-
responseKind: "json"
|
|
839
|
-
},
|
|
840
|
-
updateCourse: {
|
|
841
|
-
path: "/sites/{siteId}/bookings/courses/{courseId}",
|
|
842
|
-
method: "PATCH",
|
|
843
|
-
auth: "user",
|
|
844
|
-
responseKind: "json",
|
|
845
|
-
errors: [
|
|
846
|
-
"validation:invalid_input",
|
|
847
|
-
"resource:not_found",
|
|
848
|
-
"resource:conflict",
|
|
849
|
-
"server:internal_error"
|
|
850
|
-
]
|
|
851
|
-
},
|
|
852
|
-
deleteCourse: {
|
|
853
|
-
path: "/sites/{siteId}/bookings/courses/{courseId}",
|
|
854
|
-
method: "DELETE",
|
|
855
|
-
auth: "user",
|
|
856
|
-
responseKind: "json",
|
|
857
|
-
errors: [
|
|
858
|
-
"validation:invalid_input",
|
|
859
|
-
"resource:not_found",
|
|
860
|
-
"resource:conflict",
|
|
861
|
-
"server:internal_error"
|
|
862
|
-
]
|
|
863
|
-
},
|
|
801
|
+
//#region ../api/src/eventSeriesRegistrationEndpointDefinitions.ts
|
|
802
|
+
const EVENT_SERIES_REGISTRATION_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
864
803
|
deleteEventOffering: {
|
|
865
804
|
path: "/sites/{siteId}/bookings/event-offerings/{eventOfferingId}",
|
|
866
805
|
method: "DELETE",
|
|
@@ -873,20 +812,8 @@ const COURSE_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
873
812
|
"server:internal_error"
|
|
874
813
|
]
|
|
875
814
|
},
|
|
876
|
-
|
|
877
|
-
path: "/sites/{siteId}/bookings/
|
|
878
|
-
method: "POST",
|
|
879
|
-
auth: "user",
|
|
880
|
-
responseKind: "json",
|
|
881
|
-
errors: [
|
|
882
|
-
"validation:invalid_input",
|
|
883
|
-
"resource:not_found",
|
|
884
|
-
"resource:already_exists",
|
|
885
|
-
"server:internal_error"
|
|
886
|
-
]
|
|
887
|
-
},
|
|
888
|
-
changeCourseContentOwnership: {
|
|
889
|
-
path: "/sites/{siteId}/bookings/courses/{courseId}/content-ownership",
|
|
815
|
+
changeEventSeriesContentOwnership: {
|
|
816
|
+
path: "/sites/{siteId}/bookings/event-series/{seriesId}/content-ownership",
|
|
890
817
|
method: "POST",
|
|
891
818
|
auth: "user",
|
|
892
819
|
responseKind: "json",
|
|
@@ -897,8 +824,8 @@ const COURSE_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
897
824
|
"server:internal_error"
|
|
898
825
|
]
|
|
899
826
|
},
|
|
900
|
-
|
|
901
|
-
path: "/sites/{siteId}/bookings/
|
|
827
|
+
addEventSeriesRegistration: {
|
|
828
|
+
path: "/sites/{siteId}/bookings/event-series/{seriesId}/registrations",
|
|
902
829
|
method: "POST",
|
|
903
830
|
auth: "user",
|
|
904
831
|
responseKind: "json",
|
|
@@ -909,33 +836,21 @@ const COURSE_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
909
836
|
"server:internal_error"
|
|
910
837
|
]
|
|
911
838
|
},
|
|
912
|
-
|
|
913
|
-
path: "/sites/{siteId}/bookings/
|
|
839
|
+
listEventSeriesRegistrations: {
|
|
840
|
+
path: "/sites/{siteId}/bookings/event-series/{seriesId}/registrations",
|
|
914
841
|
method: "GET",
|
|
915
842
|
auth: "user",
|
|
916
843
|
responseKind: "json"
|
|
917
844
|
},
|
|
918
|
-
|
|
919
|
-
path: "/sites/{siteId}/bookings/
|
|
845
|
+
exportEventSeriesRegistrationsCsv: {
|
|
846
|
+
path: "/sites/{siteId}/bookings/event-series/{seriesId}/registrations/export.csv",
|
|
920
847
|
method: "GET",
|
|
921
848
|
auth: "user",
|
|
922
849
|
errors: [],
|
|
923
850
|
responseKind: "blob"
|
|
924
851
|
},
|
|
925
|
-
|
|
926
|
-
path: "/sites/{siteId}/bookings/
|
|
927
|
-
method: "GET",
|
|
928
|
-
tags: [
|
|
929
|
-
"site-{siteId}",
|
|
930
|
-
"bookings",
|
|
931
|
-
"courses-{courseId}"
|
|
932
|
-
],
|
|
933
|
-
auth: "user",
|
|
934
|
-
responseKind: "blob",
|
|
935
|
-
errors: []
|
|
936
|
-
},
|
|
937
|
-
updateCourseEnrollment: {
|
|
938
|
-
path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments/{enrollmentId}",
|
|
852
|
+
updateEventSeriesRegistration: {
|
|
853
|
+
path: "/sites/{siteId}/bookings/event-series/{seriesId}/registrations/{registrationId}",
|
|
939
854
|
method: "PATCH",
|
|
940
855
|
auth: "user",
|
|
941
856
|
responseKind: "json",
|
|
@@ -1323,71 +1238,35 @@ const PUBLIC_WHOLE_SERIES_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
1323
1238
|
errors: ["resource:not_found", "server:internal_error"],
|
|
1324
1239
|
auth: "public",
|
|
1325
1240
|
responseKind: "json"
|
|
1326
|
-
}
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
"auth:forbidden",
|
|
1334
|
-
"validation:invalid_input",
|
|
1335
|
-
"resource:not_found",
|
|
1336
|
-
"resource:conflict",
|
|
1337
|
-
"resource:already_exists",
|
|
1338
|
-
"server:internal_error"
|
|
1339
|
-
],
|
|
1340
|
-
auth: "public",
|
|
1341
|
-
responseKind: "json"
|
|
1342
|
-
},
|
|
1343
|
-
checkWholeSeriesEligibility: {
|
|
1344
|
-
path: "/public/sites/{siteId}/dated-offerings/whole-series/check-eligibility",
|
|
1345
|
-
method: "POST",
|
|
1346
|
-
tags: [TAG_TEMPLATES.publicWholeSeriesOfferings, "course-enrollment"],
|
|
1347
|
-
errors: [
|
|
1348
|
-
"auth:unauthenticated",
|
|
1349
|
-
"resource:not_found",
|
|
1350
|
-
"resource:conflict",
|
|
1351
|
-
"server:internal_error"
|
|
1352
|
-
],
|
|
1353
|
-
auth: "public",
|
|
1354
|
-
responseKind: "json"
|
|
1355
|
-
},
|
|
1356
|
-
createWholeSeriesCheckout: {
|
|
1357
|
-
path: "/public/sites/{siteId}/dated-offerings/whole-series/checkout",
|
|
1241
|
+
}
|
|
1242
|
+
});
|
|
1243
|
+
//#endregion
|
|
1244
|
+
//#region ../api/src/publicEventEndpointDefinitions.ts
|
|
1245
|
+
const PUBLIC_EVENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
1246
|
+
getPublicEventRegistrationOptions: {
|
|
1247
|
+
path: "/public/sites/{siteId}/events/registration-options",
|
|
1358
1248
|
method: "POST",
|
|
1359
|
-
tags: [TAG_TEMPLATES.
|
|
1249
|
+
tags: [TAG_TEMPLATES.publicEvents, "event-registration-options"],
|
|
1360
1250
|
auth: "public",
|
|
1361
1251
|
responseKind: "json",
|
|
1362
1252
|
errors: [
|
|
1363
|
-
"auth:unauthenticated",
|
|
1364
1253
|
"validation:invalid_input",
|
|
1365
1254
|
"resource:not_found",
|
|
1366
1255
|
"resource:conflict",
|
|
1367
1256
|
"server:internal_error"
|
|
1368
1257
|
]
|
|
1369
1258
|
},
|
|
1370
|
-
|
|
1371
|
-
path: "/public/sites/{siteId}/
|
|
1259
|
+
resolveEventSubroute: {
|
|
1260
|
+
path: "/public/sites/{siteId}/events/subroutes/resolve",
|
|
1372
1261
|
method: "GET",
|
|
1373
|
-
|
|
1374
|
-
|
|
1262
|
+
revalidate: 60,
|
|
1263
|
+
tags: [TAG_TEMPLATES.publicEvents, "event-subroute"],
|
|
1375
1264
|
auth: "public",
|
|
1376
|
-
responseKind: "json"
|
|
1265
|
+
responseKind: "json",
|
|
1266
|
+
errors: []
|
|
1377
1267
|
}
|
|
1378
1268
|
});
|
|
1379
1269
|
//#endregion
|
|
1380
|
-
//#region ../api/src/publicEventEndpointDefinitions.ts
|
|
1381
|
-
const PUBLIC_EVENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({ resolveEventSubroute: {
|
|
1382
|
-
path: "/public/sites/{siteId}/events/subroutes/resolve",
|
|
1383
|
-
method: "GET",
|
|
1384
|
-
revalidate: 60,
|
|
1385
|
-
tags: [TAG_TEMPLATES.publicEvents, "event-subroute"],
|
|
1386
|
-
auth: "public",
|
|
1387
|
-
responseKind: "json",
|
|
1388
|
-
errors: []
|
|
1389
|
-
} });
|
|
1390
|
-
//#endregion
|
|
1391
1270
|
//#region ../api/src/siteApiKeyEndpointDefinitions.ts
|
|
1392
1271
|
const SITE_API_KEY_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
1393
1272
|
listSiteApiKeys: {
|
|
@@ -1755,7 +1634,7 @@ const SDK_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
1755
1634
|
}), 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, {
|
|
1756
1635
|
...NEWSLETTER_ENDPOINT_DEFINITIONS,
|
|
1757
1636
|
...APPOINTMENT_ENDPOINT_DEFINITIONS,
|
|
1758
|
-
...
|
|
1637
|
+
...EVENT_SERIES_REGISTRATION_ENDPOINT_DEFINITIONS
|
|
1759
1638
|
}, 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.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.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.formById, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEventFilters, { ...PUBLIC_WHOLE_SERIES_ENDPOINT_DEFINITIONS }, TAG_TEMPLATES.publicTeamMembers, TAG_TEMPLATES.publicWholeSeriesOfferings, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicPasses, TAG_TEMPLATES.publicMemberships, TAG_TEMPLATES.publicProducts, TAG_TEMPLATES.publicShop, TAG_TEMPLATES.publicCheckout, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, { ...EVENT_MANAGEMENT_ENDPOINT_DEFINITIONS }, { ...SDK_ENDPOINT_DEFINITIONS }, { ...SDK_ENTRY_READ_ENDPOINTS };
|
|
1760
1639
|
z.object({ refreshToken: z.string().min(1).max(4096) }).strict();
|
|
1761
1640
|
z.object({
|
|
@@ -1931,14 +1810,14 @@ function publicEventPricingType(pricing) {
|
|
|
1931
1810
|
case "single_paid":
|
|
1932
1811
|
case "ticket_types":
|
|
1933
1812
|
case "sliding_scale":
|
|
1934
|
-
case "
|
|
1813
|
+
case "whole_series": return isFreePublicEventPriceDisplay(pricing.display) ? "free" : "paid";
|
|
1935
1814
|
case "external": return "external";
|
|
1936
1815
|
}
|
|
1937
1816
|
}
|
|
1938
1817
|
function isFreePublicEventPriceDisplay(display) {
|
|
1939
1818
|
switch (display.kind) {
|
|
1940
1819
|
case "free": return true;
|
|
1941
|
-
case "
|
|
1820
|
+
case "whole_series": return display.display.kind === "free";
|
|
1942
1821
|
case "exact":
|
|
1943
1822
|
case "from":
|
|
1944
1823
|
case "range":
|
|
@@ -2259,6 +2138,25 @@ function parseManagementKey(raw) {
|
|
|
2259
2138
|
return ok(createSecretInternal("management-key", raw));
|
|
2260
2139
|
}
|
|
2261
2140
|
//#endregion
|
|
2141
|
+
//#region ../core/src/planner.ts
|
|
2142
|
+
/** Default clock for production callers that do not inject time explicitly. */
|
|
2143
|
+
const systemPlanningClock = { now: () => Date.now() };
|
|
2144
|
+
/** Resolve current time as a Date from an explicit Date, injected clock, or system clock. */
|
|
2145
|
+
function resolvePlanningNowDate(input = {}) {
|
|
2146
|
+
if (input.now !== void 0) return input.now;
|
|
2147
|
+
return new Date((input.clock ?? systemPlanningClock).now());
|
|
2148
|
+
}
|
|
2149
|
+
/**
|
|
2150
|
+
* Resolve a Date-compatible planner input.
|
|
2151
|
+
*
|
|
2152
|
+
* Precedence: bare Date, `{ now }`, `{ clock }`, then `systemPlanningClock`.
|
|
2153
|
+
* Explicit Date inputs are returned by reference, not cloned.
|
|
2154
|
+
*/
|
|
2155
|
+
function resolvePlanningDateInput(input = {}) {
|
|
2156
|
+
if (input instanceof Date) return input;
|
|
2157
|
+
return resolvePlanningNowDate(input);
|
|
2158
|
+
}
|
|
2159
|
+
//#endregion
|
|
2262
2160
|
//#region ../core/src/event-series-behaviour.ts
|
|
2263
2161
|
const SURFACE_EVENT_PRESET_VALUES = [
|
|
2264
2162
|
"class",
|
|
@@ -2561,6 +2459,68 @@ z.object({
|
|
|
2561
2459
|
monthlyCurrency: z.literal("gbp")
|
|
2562
2460
|
});
|
|
2563
2461
|
//#endregion
|
|
2462
|
+
//#region ../blocks/src/system/types/link.ts
|
|
2463
|
+
const nullableString = z.union([z.string().min(1), z.null()]);
|
|
2464
|
+
const RESOLVED_INTERNAL_LINK_ENTITY_TYPES = [
|
|
2465
|
+
"page",
|
|
2466
|
+
"content",
|
|
2467
|
+
"pageSurface"
|
|
2468
|
+
];
|
|
2469
|
+
const resolvedInternalLinkKeys = [
|
|
2470
|
+
"entityId",
|
|
2471
|
+
"entityType",
|
|
2472
|
+
"href",
|
|
2473
|
+
"title",
|
|
2474
|
+
"typeLabel"
|
|
2475
|
+
];
|
|
2476
|
+
const internalRouteOnlyLinkSchema = z.object({
|
|
2477
|
+
kind: z.literal("internal"),
|
|
2478
|
+
routeId: z.string().min(1)
|
|
2479
|
+
}).passthrough().superRefine((value, ctx) => {
|
|
2480
|
+
if (!resolvedInternalLinkKeys.some((key) => value[key] != null)) return;
|
|
2481
|
+
ctx.addIssue({
|
|
2482
|
+
code: "custom",
|
|
2483
|
+
message: "Internal links with resolved metadata must include entityId, entityType, href, title, and typeLabel"
|
|
2484
|
+
});
|
|
2485
|
+
});
|
|
2486
|
+
const internalResolvedLinkSchema = z.object({
|
|
2487
|
+
kind: z.literal("internal"),
|
|
2488
|
+
routeId: z.string().min(1),
|
|
2489
|
+
entityId: z.string().min(1),
|
|
2490
|
+
entityType: z.enum(RESOLVED_INTERNAL_LINK_ENTITY_TYPES),
|
|
2491
|
+
href: z.string().min(1),
|
|
2492
|
+
title: z.string().min(1),
|
|
2493
|
+
typeLabel: z.string().min(1),
|
|
2494
|
+
contentTypeKey: nullableString.optional(),
|
|
2495
|
+
contentTypeName: nullableString.optional(),
|
|
2496
|
+
updatedAt: nullableString.optional()
|
|
2497
|
+
}).passthrough();
|
|
2498
|
+
const internalLinkSchema = z.union([internalResolvedLinkSchema, internalRouteOnlyLinkSchema]);
|
|
2499
|
+
const externalLinkSchema$1 = z.object({
|
|
2500
|
+
kind: z.literal("external"),
|
|
2501
|
+
href: z.string().min(1)
|
|
2502
|
+
}).passthrough();
|
|
2503
|
+
const customLinkSchema$1 = z.object({
|
|
2504
|
+
kind: z.literal("url"),
|
|
2505
|
+
href: z.string().min(1)
|
|
2506
|
+
}).passthrough();
|
|
2507
|
+
const pageLinkSchema$1 = z.object({
|
|
2508
|
+
kind: z.literal("page"),
|
|
2509
|
+
identifier: z.string().min(1)
|
|
2510
|
+
}).passthrough();
|
|
2511
|
+
const entryLinkSchema$1 = z.object({
|
|
2512
|
+
kind: z.literal("entry"),
|
|
2513
|
+
contentType: z.string().min(1),
|
|
2514
|
+
identifier: z.string().min(1)
|
|
2515
|
+
}).passthrough();
|
|
2516
|
+
z.union([
|
|
2517
|
+
internalLinkSchema,
|
|
2518
|
+
externalLinkSchema$1,
|
|
2519
|
+
customLinkSchema$1,
|
|
2520
|
+
pageLinkSchema$1,
|
|
2521
|
+
entryLinkSchema$1
|
|
2522
|
+
]);
|
|
2523
|
+
//#endregion
|
|
2564
2524
|
//#region ../api/src/navigation/contracts.ts
|
|
2565
2525
|
/**
|
|
2566
2526
|
* Canonical navigation/link Zod contracts.
|
|
@@ -2590,7 +2550,7 @@ const internalLinkPayloadSchema = z.object({
|
|
|
2590
2550
|
kind: z.literal("internal"),
|
|
2591
2551
|
routeId: z.string().uuid(),
|
|
2592
2552
|
entityId: z.string().uuid(),
|
|
2593
|
-
entityType: z.enum(
|
|
2553
|
+
entityType: z.enum(RESOLVED_INTERNAL_LINK_ENTITY_TYPES),
|
|
2594
2554
|
href: z.string().min(1),
|
|
2595
2555
|
title: z.string().min(1),
|
|
2596
2556
|
typeLabel: z.string().min(1),
|
|
@@ -10656,7 +10616,7 @@ defineBlockAppearancePreset({
|
|
|
10656
10616
|
id: "schedule-details-brand-depth",
|
|
10657
10617
|
target: "events",
|
|
10658
10618
|
label: "Brand-depth schedule details",
|
|
10659
|
-
blockKinds: ["block.event-details"
|
|
10619
|
+
blockKinds: ["block.event-details"],
|
|
10660
10620
|
design: {
|
|
10661
10621
|
sectionSurface: "brand-depth-band",
|
|
10662
10622
|
contentFrame: plainFrame,
|
|
@@ -16855,7 +16815,6 @@ const productDetail = (props, children, ...mods) => el("product-detail", props,
|
|
|
16855
16815
|
const cart = (props, children, ...mods) => el("cart", props, children, ...mods);
|
|
16856
16816
|
const checkout = (props, children, ...mods) => el("checkout", props, children, ...mods);
|
|
16857
16817
|
const gifting = (props, children, ...mods) => el("gifting", props, children, ...mods);
|
|
16858
|
-
const courseRegistration = (props, children, ...mods) => el("course-registration", props, children, ...mods);
|
|
16859
16818
|
function bind(from, options) {
|
|
16860
16819
|
return (node) => ({
|
|
16861
16820
|
...node,
|
|
@@ -26496,12 +26455,12 @@ const RichTextDocSchema = z.object({
|
|
|
26496
26455
|
}).strict();
|
|
26497
26456
|
//#endregion
|
|
26498
26457
|
//#region ../blocks/src/system/blocks/shared/bookingPaymentTerms.ts
|
|
26499
|
-
const bookingDepositRefundPolicySchema = z.enum(["refundable", "non_refundable"]);
|
|
26500
|
-
const bookingInstalmentPlanSchema = z.union([
|
|
26458
|
+
const bookingDepositRefundPolicySchema$1 = z.enum(["refundable", "non_refundable"]);
|
|
26459
|
+
const bookingInstalmentPlanSchema$1 = z.union([
|
|
26501
26460
|
z.object({
|
|
26502
26461
|
kind: z.literal("deposit_plus_one_remainder"),
|
|
26503
26462
|
depositAmountCents: z.number().int().min(0),
|
|
26504
|
-
depositRefundability: bookingDepositRefundPolicySchema,
|
|
26463
|
+
depositRefundability: bookingDepositRefundPolicySchema$1,
|
|
26505
26464
|
remainderDueCount: z.number().int().positive(),
|
|
26506
26465
|
intervalUnit: z.enum([
|
|
26507
26466
|
"day",
|
|
@@ -26512,7 +26471,7 @@ const bookingInstalmentPlanSchema = z.union([
|
|
|
26512
26471
|
z.object({
|
|
26513
26472
|
kind: z.literal("deposit_plus_scheduled_instalments"),
|
|
26514
26473
|
depositAmountCents: z.number().int().min(0),
|
|
26515
|
-
depositRefundability: bookingDepositRefundPolicySchema,
|
|
26474
|
+
depositRefundability: bookingDepositRefundPolicySchema$1,
|
|
26516
26475
|
instalmentCount: z.number().int().positive(),
|
|
26517
26476
|
intervalCount: z.number().int().positive(),
|
|
26518
26477
|
intervalUnit: z.enum([
|
|
@@ -26532,32 +26491,207 @@ const bookingInstalmentPlanSchema = z.union([
|
|
|
26532
26491
|
])
|
|
26533
26492
|
})
|
|
26534
26493
|
]);
|
|
26535
|
-
const bookingFlexibleBalanceDueDateRuleSchema = z.union([z.object({
|
|
26494
|
+
const bookingFlexibleBalanceDueDateRuleSchema$1 = z.union([z.object({
|
|
26536
26495
|
kind: z.literal("relative_to_start_date"),
|
|
26537
26496
|
daysBeforeStart: z.number().int().positive()
|
|
26538
26497
|
}), z.object({
|
|
26539
26498
|
kind: z.literal("fixed_calendar_date"),
|
|
26540
26499
|
dueAt: z.string().datetime()
|
|
26541
26500
|
})]);
|
|
26542
|
-
const bookingFlexibleBalanceConfigSchema = z.object({
|
|
26501
|
+
const bookingFlexibleBalanceConfigSchema$1 = z.object({
|
|
26543
26502
|
upfrontAmountCents: z.number().int().min(0),
|
|
26544
|
-
dueDateRule: bookingFlexibleBalanceDueDateRuleSchema,
|
|
26545
|
-
depositRefundability: bookingDepositRefundPolicySchema
|
|
26503
|
+
dueDateRule: bookingFlexibleBalanceDueDateRuleSchema$1,
|
|
26504
|
+
depositRefundability: bookingDepositRefundPolicySchema$1
|
|
26546
26505
|
});
|
|
26547
26506
|
const blockBookingPaymentCollectionOptionSchema = z.union([
|
|
26548
26507
|
z.object({ kind: z.literal("upfront") }),
|
|
26549
26508
|
z.object({ kind: z.literal("deferred_manual") }),
|
|
26550
26509
|
z.object({
|
|
26551
26510
|
kind: z.literal("instalment_plan"),
|
|
26552
|
-
plan: bookingInstalmentPlanSchema
|
|
26511
|
+
plan: bookingInstalmentPlanSchema$1
|
|
26553
26512
|
}),
|
|
26554
26513
|
z.object({
|
|
26555
26514
|
kind: z.literal("flexible_balance"),
|
|
26556
|
-
config: bookingFlexibleBalanceConfigSchema
|
|
26515
|
+
config: bookingFlexibleBalanceConfigSchema$1
|
|
26557
26516
|
})
|
|
26558
26517
|
]);
|
|
26559
26518
|
const blockBookingPaymentTermsSchema = z.object({ allowedOptions: z.array(blockBookingPaymentCollectionOptionSchema).min(1) });
|
|
26560
26519
|
//#endregion
|
|
26520
|
+
//#region ../blocks/src/system/blocks/shared/bookingConsent.ts
|
|
26521
|
+
const blockBookingConsentSchema = z.object({
|
|
26522
|
+
requirementId: z.string(),
|
|
26523
|
+
title: z.string(),
|
|
26524
|
+
agreement: RichTextDocSchema,
|
|
26525
|
+
checkboxLabel: z.string()
|
|
26526
|
+
});
|
|
26527
|
+
const bookingRequirementConsentFieldSchema = z.object({
|
|
26528
|
+
id: z.string(),
|
|
26529
|
+
label: z.string(),
|
|
26530
|
+
type: z.literal("booking_requirement_consent"),
|
|
26531
|
+
required: z.literal(true),
|
|
26532
|
+
agreement: RichTextDocSchema,
|
|
26533
|
+
checkboxLabel: z.string().min(1)
|
|
26534
|
+
});
|
|
26535
|
+
z.union([blockBookingConsentSchema, bookingRequirementConsentFieldSchema]);
|
|
26536
|
+
//#endregion
|
|
26537
|
+
//#region ../blocks/src/system/blocks/events/whole-series/pricing.ts
|
|
26538
|
+
function isSaleWindowOpen(option, now) {
|
|
26539
|
+
if (!option.isActive) return false;
|
|
26540
|
+
if (option.saleStartsAt && new Date(option.saleStartsAt) > now) return false;
|
|
26541
|
+
if (option.saleEndsAt && new Date(option.saleEndsAt) < now) return false;
|
|
26542
|
+
return true;
|
|
26543
|
+
}
|
|
26544
|
+
function toExactOrFreeDisplay(amount, currency) {
|
|
26545
|
+
if (amount <= 0) return {
|
|
26546
|
+
kind: "free",
|
|
26547
|
+
currency
|
|
26548
|
+
};
|
|
26549
|
+
return {
|
|
26550
|
+
kind: "exact",
|
|
26551
|
+
amount,
|
|
26552
|
+
currency
|
|
26553
|
+
};
|
|
26554
|
+
}
|
|
26555
|
+
function getSelectableWholeSeriesPricingOptionsForNow(offering, now) {
|
|
26556
|
+
if (offering.pricing.pricingStrategy !== "tiered") return [];
|
|
26557
|
+
return [...offering.pricing.options].filter((option) => isSaleWindowOpen(option, now)).sort((left, right) => {
|
|
26558
|
+
if (left.sortOrder !== right.sortOrder) return left.sortOrder - right.sortOrder;
|
|
26559
|
+
if (left.priceAmount !== right.priceAmount) return left.priceAmount - right.priceAmount;
|
|
26560
|
+
return left.name.localeCompare(right.name);
|
|
26561
|
+
});
|
|
26562
|
+
}
|
|
26563
|
+
function resolveWholeSeriesPricingState(offering, selectedPricingOptionId, selectedSlidingAmountOrNowInput, nowInput = {}) {
|
|
26564
|
+
const selection = normalizePricingSelectionInput(selectedSlidingAmountOrNowInput, nowInput);
|
|
26565
|
+
const currency = offering.pricing.currency;
|
|
26566
|
+
switch (offering.pricing.pricingStrategy) {
|
|
26567
|
+
case "free": return resolveFreePricing(currency);
|
|
26568
|
+
case "single": return resolveSinglePricing(offering.pricing.singlePriceAmount ?? 0, currency);
|
|
26569
|
+
case "tiered": return resolveTieredPricing(offering, selectedPricingOptionId, selection.nowInput);
|
|
26570
|
+
case "sliding_scale": return resolveSlidingScalePricing(offering, selection.selectedSlidingAmount);
|
|
26571
|
+
}
|
|
26572
|
+
}
|
|
26573
|
+
function normalizePricingSelectionInput(selectedSlidingAmountOrNowInput, nowInput) {
|
|
26574
|
+
return typeof selectedSlidingAmountOrNowInput === "object" && selectedSlidingAmountOrNowInput !== null ? {
|
|
26575
|
+
selectedSlidingAmount: null,
|
|
26576
|
+
nowInput: selectedSlidingAmountOrNowInput
|
|
26577
|
+
} : {
|
|
26578
|
+
selectedSlidingAmount: typeof selectedSlidingAmountOrNowInput === "number" || selectedSlidingAmountOrNowInput === null ? selectedSlidingAmountOrNowInput : null,
|
|
26579
|
+
nowInput
|
|
26580
|
+
};
|
|
26581
|
+
}
|
|
26582
|
+
function resolveFreePricing(currency) {
|
|
26583
|
+
return {
|
|
26584
|
+
currency,
|
|
26585
|
+
display: {
|
|
26586
|
+
kind: "free",
|
|
26587
|
+
currency
|
|
26588
|
+
},
|
|
26589
|
+
selectableOptions: [],
|
|
26590
|
+
requiresSelection: false,
|
|
26591
|
+
selectedOption: null,
|
|
26592
|
+
slidingScale: null,
|
|
26593
|
+
selectedSlidingAmount: null,
|
|
26594
|
+
selectedPriceAmount: 0,
|
|
26595
|
+
selectedRequiresPayment: false,
|
|
26596
|
+
hasPaidSelection: false,
|
|
26597
|
+
hasFreeSelection: true
|
|
26598
|
+
};
|
|
26599
|
+
}
|
|
26600
|
+
function resolveSinglePricing(amount, currency) {
|
|
26601
|
+
return {
|
|
26602
|
+
currency,
|
|
26603
|
+
display: toExactOrFreeDisplay(amount, currency),
|
|
26604
|
+
selectableOptions: [],
|
|
26605
|
+
requiresSelection: false,
|
|
26606
|
+
selectedOption: null,
|
|
26607
|
+
slidingScale: null,
|
|
26608
|
+
selectedSlidingAmount: null,
|
|
26609
|
+
selectedPriceAmount: amount,
|
|
26610
|
+
selectedRequiresPayment: amount > 0,
|
|
26611
|
+
hasPaidSelection: amount > 0,
|
|
26612
|
+
hasFreeSelection: amount <= 0
|
|
26613
|
+
};
|
|
26614
|
+
}
|
|
26615
|
+
function resolveTieredPricing(offering, selectedPricingOptionId, nowInput) {
|
|
26616
|
+
const currency = offering.pricing.currency;
|
|
26617
|
+
const selectableOptions = getSelectableWholeSeriesPricingOptionsForNow(offering, resolvePlanningDateInput(nowInput));
|
|
26618
|
+
const selectedOption = resolveSelectedTier(selectableOptions, selectedPricingOptionId);
|
|
26619
|
+
return {
|
|
26620
|
+
currency,
|
|
26621
|
+
display: resolveTieredDisplay(selectableOptions.reduce((lowest, option) => lowest === null || option.priceAmount < lowest ? option.priceAmount : lowest, null), selectableOptions.length, currency),
|
|
26622
|
+
selectableOptions,
|
|
26623
|
+
requiresSelection: selectableOptions.length > 1,
|
|
26624
|
+
selectedOption,
|
|
26625
|
+
slidingScale: null,
|
|
26626
|
+
selectedSlidingAmount: null,
|
|
26627
|
+
selectedPriceAmount: selectedOption?.priceAmount ?? null,
|
|
26628
|
+
selectedRequiresPayment: (selectedOption?.priceAmount ?? 0) > 0,
|
|
26629
|
+
hasPaidSelection: selectableOptions.some((option) => option.priceAmount > 0),
|
|
26630
|
+
hasFreeSelection: selectableOptions.some((option) => option.priceAmount === 0)
|
|
26631
|
+
};
|
|
26632
|
+
}
|
|
26633
|
+
function resolveSelectedTier(options, selectedId) {
|
|
26634
|
+
return (selectedId ? options.find((option) => option.id === selectedId) : null) ?? (options.length === 1 ? options[0] ?? null : null);
|
|
26635
|
+
}
|
|
26636
|
+
function resolveTieredDisplay(lowestAmount, optionCount, currency) {
|
|
26637
|
+
if (lowestAmount === null) return {
|
|
26638
|
+
kind: "unavailable",
|
|
26639
|
+
currency
|
|
26640
|
+
};
|
|
26641
|
+
return optionCount > 1 && lowestAmount > 0 ? {
|
|
26642
|
+
kind: "from",
|
|
26643
|
+
amount: lowestAmount,
|
|
26644
|
+
currency
|
|
26645
|
+
} : toExactOrFreeDisplay(lowestAmount, currency);
|
|
26646
|
+
}
|
|
26647
|
+
function resolveSlidingScalePricing(offering, selectedSlidingAmount) {
|
|
26648
|
+
const currency = offering.pricing.currency;
|
|
26649
|
+
const minAmount = offering.pricing.slidingMinAmount ?? null;
|
|
26650
|
+
const maxAmount = offering.pricing.slidingMaxAmount ?? null;
|
|
26651
|
+
if (minAmount === null || maxAmount === null || minAmount < 0 || maxAmount < minAmount) return unavailableSlidingScale(currency);
|
|
26652
|
+
const selectedAmount = Number.isFinite(selectedSlidingAmount) ? selectedSlidingAmount : null;
|
|
26653
|
+
return {
|
|
26654
|
+
currency,
|
|
26655
|
+
display: {
|
|
26656
|
+
kind: "range",
|
|
26657
|
+
minAmount,
|
|
26658
|
+
maxAmount,
|
|
26659
|
+
currency
|
|
26660
|
+
},
|
|
26661
|
+
selectableOptions: [],
|
|
26662
|
+
requiresSelection: selectedAmount === null,
|
|
26663
|
+
selectedOption: null,
|
|
26664
|
+
slidingScale: {
|
|
26665
|
+
minAmount,
|
|
26666
|
+
maxAmount,
|
|
26667
|
+
suggestedAmount: offering.pricing.slidingSuggestedAmount ?? null
|
|
26668
|
+
},
|
|
26669
|
+
selectedSlidingAmount: selectedAmount,
|
|
26670
|
+
selectedPriceAmount: selectedAmount,
|
|
26671
|
+
selectedRequiresPayment: (selectedAmount ?? 0) > 0,
|
|
26672
|
+
hasPaidSelection: maxAmount > 0,
|
|
26673
|
+
hasFreeSelection: minAmount === 0
|
|
26674
|
+
};
|
|
26675
|
+
}
|
|
26676
|
+
function unavailableSlidingScale(currency) {
|
|
26677
|
+
return {
|
|
26678
|
+
currency,
|
|
26679
|
+
display: {
|
|
26680
|
+
kind: "unavailable",
|
|
26681
|
+
currency
|
|
26682
|
+
},
|
|
26683
|
+
selectableOptions: [],
|
|
26684
|
+
requiresSelection: true,
|
|
26685
|
+
selectedOption: null,
|
|
26686
|
+
slidingScale: null,
|
|
26687
|
+
selectedSlidingAmount: null,
|
|
26688
|
+
selectedPriceAmount: null,
|
|
26689
|
+
selectedRequiresPayment: false,
|
|
26690
|
+
hasPaidSelection: false,
|
|
26691
|
+
hasFreeSelection: false
|
|
26692
|
+
};
|
|
26693
|
+
}
|
|
26694
|
+
//#endregion
|
|
26561
26695
|
//#region ../blocks/src/system/blocks/events/whole-series/schemas.ts
|
|
26562
26696
|
const wholeSeriesVenueSchema = z.object({
|
|
26563
26697
|
id: z.string(),
|
|
@@ -26617,11 +26751,19 @@ const publicWholeSeriesOfferingSchema = z.object({
|
|
|
26617
26751
|
title: z.string(),
|
|
26618
26752
|
slug: z.string(),
|
|
26619
26753
|
description: z.unknown().nullable(),
|
|
26754
|
+
deliveryMode: z.enum([
|
|
26755
|
+
"in_person",
|
|
26756
|
+
"online",
|
|
26757
|
+
"hybrid"
|
|
26758
|
+
]),
|
|
26759
|
+
waitlistEnabled: z.boolean(),
|
|
26760
|
+
requireGuestDetails: z.boolean(),
|
|
26620
26761
|
teamMembers: z.array(wholeSeriesTeamMemberSummarySchema).optional(),
|
|
26621
26762
|
enrollmentOpen: z.boolean(),
|
|
26622
26763
|
pricing: wholeSeriesPricingSchema,
|
|
26623
26764
|
currency: z.string(),
|
|
26624
26765
|
paymentTerms: blockBookingPaymentTermsSchema,
|
|
26766
|
+
consent: blockBookingConsentSchema.nullable(),
|
|
26625
26767
|
enrollmentCapacity: z.number().nullable(),
|
|
26626
26768
|
acceptsMemberships: z.boolean(),
|
|
26627
26769
|
status: z.enum([
|
|
@@ -26731,7 +26873,7 @@ const mixedPriceDisplaySchema = z.object({
|
|
|
26731
26873
|
paidToAmount: z.number(),
|
|
26732
26874
|
currency: z.string()
|
|
26733
26875
|
});
|
|
26734
|
-
const
|
|
26876
|
+
const publicWholeSeriesPriceDisplaySchema = z.discriminatedUnion("kind", [
|
|
26735
26877
|
freePriceDisplaySchema,
|
|
26736
26878
|
exactPriceDisplaySchema,
|
|
26737
26879
|
fromPriceDisplaySchema,
|
|
@@ -26749,8 +26891,8 @@ z.discriminatedUnion("kind", [
|
|
|
26749
26891
|
label: z.string()
|
|
26750
26892
|
}),
|
|
26751
26893
|
z.object({
|
|
26752
|
-
kind: z.literal("
|
|
26753
|
-
display:
|
|
26894
|
+
kind: z.literal("whole_series"),
|
|
26895
|
+
display: publicWholeSeriesPriceDisplaySchema
|
|
26754
26896
|
})
|
|
26755
26897
|
]);
|
|
26756
26898
|
const publicEventTicketTypePriceDisplaySchema = z.union([
|
|
@@ -26852,10 +26994,10 @@ const publicEventPricingSchema = z.discriminatedUnion("kind", [
|
|
|
26852
26994
|
})
|
|
26853
26995
|
}),
|
|
26854
26996
|
z.object({
|
|
26855
|
-
kind: z.literal("
|
|
26997
|
+
kind: z.literal("whole_series"),
|
|
26856
26998
|
display: z.object({
|
|
26857
|
-
kind: z.literal("
|
|
26858
|
-
display:
|
|
26999
|
+
kind: z.literal("whole_series"),
|
|
27000
|
+
display: publicWholeSeriesPriceDisplaySchema
|
|
26859
27001
|
})
|
|
26860
27002
|
}),
|
|
26861
27003
|
z.object({
|
|
@@ -26939,6 +27081,7 @@ const publicEventSchema = z.object({
|
|
|
26939
27081
|
timeZone: z.string(),
|
|
26940
27082
|
pricing: publicEventPricingSchema,
|
|
26941
27083
|
paymentTerms: blockBookingPaymentTermsSchema,
|
|
27084
|
+
consent: blockBookingConsentSchema.nullable(),
|
|
26942
27085
|
accessRestriction: accessRestrictionSchema,
|
|
26943
27086
|
allowedCategoryIds: z.array(z.string()),
|
|
26944
27087
|
requireGuestDetails: z.boolean().optional(),
|
|
@@ -27271,7 +27414,8 @@ function resolveEventRegistrationScope(context) {
|
|
|
27271
27414
|
};
|
|
27272
27415
|
return { kind: "unscoped" };
|
|
27273
27416
|
}
|
|
27274
|
-
function
|
|
27417
|
+
function resolveEventRegistrationScopedEvents(events, context) {
|
|
27418
|
+
const scope = resolveEventRegistrationScope(context);
|
|
27275
27419
|
switch (scope.kind) {
|
|
27276
27420
|
case "occurrenceSeries":
|
|
27277
27421
|
case "pageSurfaceSeries": return events.filter((event) => event.seriesId === scope.seriesId);
|
|
@@ -27283,8 +27427,24 @@ function applyEventRegistrationScope(events, scope) {
|
|
|
27283
27427
|
case "unscoped": return [...events];
|
|
27284
27428
|
}
|
|
27285
27429
|
}
|
|
27286
|
-
|
|
27287
|
-
|
|
27430
|
+
//#endregion
|
|
27431
|
+
//#region ../blocks/src/system/runtime/nodes/event-registration/registrationSurface.ts
|
|
27432
|
+
function planEventRegistrationScope(input) {
|
|
27433
|
+
const subject = input.subject;
|
|
27434
|
+
const selectedRunOffering = input.wholeSeriesOffering;
|
|
27435
|
+
if (subject?.kind !== "eventOffering" || !selectedRunOffering) return {
|
|
27436
|
+
kind: "context",
|
|
27437
|
+
events: resolveEventRegistrationScopedEvents(input.events, {
|
|
27438
|
+
occurrenceContext: input.occurrenceContext,
|
|
27439
|
+
subject
|
|
27440
|
+
})
|
|
27441
|
+
};
|
|
27442
|
+
if (!(selectedRunOffering.eventOfferingId === subject.eventOfferingId && subject.availableEventSeriesIds.some((seriesId) => seriesId === selectedRunOffering.eventSeriesId))) return { kind: "invalidSelectedRun" };
|
|
27443
|
+
return {
|
|
27444
|
+
kind: "selectedRun",
|
|
27445
|
+
events: input.events.filter((event) => event.seriesId === selectedRunOffering.eventSeriesId),
|
|
27446
|
+
offering: selectedRunOffering
|
|
27447
|
+
};
|
|
27288
27448
|
}
|
|
27289
27449
|
//#endregion
|
|
27290
27450
|
//#region ../blocks/src/system/runtime/nodes/events/shared/destination.ts
|
|
@@ -27360,14 +27520,14 @@ function isRecord$4(value) {
|
|
|
27360
27520
|
}
|
|
27361
27521
|
function isPublicEventPricing(value) {
|
|
27362
27522
|
if (!isRecord$4(value) || typeof value.kind !== "string") return false;
|
|
27363
|
-
return value.kind === "drop_in" || value.kind === "free_registration" || value.kind === "single_paid" || value.kind === "sliding_scale" || value.kind === "ticket_types" || value.kind === "
|
|
27523
|
+
return value.kind === "drop_in" || value.kind === "free_registration" || value.kind === "single_paid" || value.kind === "sliding_scale" || value.kind === "ticket_types" || value.kind === "whole_series" || value.kind === "external";
|
|
27364
27524
|
}
|
|
27365
27525
|
function isPublicEventTicketType(value) {
|
|
27366
27526
|
return isRecord$4(value) && typeof value.id === "string";
|
|
27367
27527
|
}
|
|
27368
27528
|
function readTicketTypePriceDisplay(value, currency) {
|
|
27369
27529
|
const display = readLegacyPriceDisplay(value, currency);
|
|
27370
|
-
return display.kind === "
|
|
27530
|
+
return display.kind === "whole_series" || display.kind === "external" ? {
|
|
27371
27531
|
kind: "unavailable",
|
|
27372
27532
|
currency
|
|
27373
27533
|
} : display;
|
|
@@ -27425,11 +27585,11 @@ function readLegacyPriceDisplay(value, currency) {
|
|
|
27425
27585
|
kind: "unavailable",
|
|
27426
27586
|
currency: displayCurrency
|
|
27427
27587
|
};
|
|
27428
|
-
case "
|
|
27429
|
-
kind: "
|
|
27588
|
+
case "whole_series": return isRecord$4(value.display) ? {
|
|
27589
|
+
kind: "whole_series",
|
|
27430
27590
|
display: readCoursePriceDisplay(value.display, displayCurrency)
|
|
27431
27591
|
} : {
|
|
27432
|
-
kind: "
|
|
27592
|
+
kind: "whole_series",
|
|
27433
27593
|
display: {
|
|
27434
27594
|
kind: "unavailable",
|
|
27435
27595
|
currency: displayCurrency
|
|
@@ -27555,7 +27715,7 @@ function getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep) {
|
|
|
27555
27715
|
//#endregion
|
|
27556
27716
|
//#region ../blocks/src/system/runtime/nodes/event-registration/registrationDerivations.ts
|
|
27557
27717
|
function eventMatchesOccurrenceId(event, occurrenceId) {
|
|
27558
|
-
return event.
|
|
27718
|
+
return event.registrationSubject.kind === "occurrence" && (event.registrationSubject.occurrenceId === occurrenceId || event.selectionId === occurrenceId);
|
|
27559
27719
|
}
|
|
27560
27720
|
function findPreSelectedEvent(input) {
|
|
27561
27721
|
const occurrenceContext = input.occurrenceContext;
|
|
@@ -27581,12 +27741,127 @@ function toRegistrationEvent(event) {
|
|
|
27581
27741
|
return {
|
|
27582
27742
|
...event,
|
|
27583
27743
|
pricing: resolveRuntimeEventPricing(event),
|
|
27584
|
-
|
|
27585
|
-
|
|
27744
|
+
selectionId: event.id,
|
|
27745
|
+
registrationSubject: {
|
|
27746
|
+
kind: "occurrence",
|
|
27747
|
+
occurrenceId: event.occurrenceId
|
|
27748
|
+
}
|
|
27586
27749
|
};
|
|
27587
27750
|
}
|
|
27588
27751
|
function toRegistrationEvents(events) {
|
|
27589
|
-
return events.map(toRegistrationEvent);
|
|
27752
|
+
return events.filter((event) => event.bookingScope === "single_occurrence").map(toRegistrationEvent);
|
|
27753
|
+
}
|
|
27754
|
+
function toWholeSeriesTicketType(option) {
|
|
27755
|
+
return {
|
|
27756
|
+
...option,
|
|
27757
|
+
capacityMode: option.capacityLimit === null ? "unlimited" : "limited",
|
|
27758
|
+
attendanceScope: option.attendanceScope ?? void 0,
|
|
27759
|
+
availability: {
|
|
27760
|
+
kind: "available",
|
|
27761
|
+
remainingCapacity: option.capacityLimit
|
|
27762
|
+
}
|
|
27763
|
+
};
|
|
27764
|
+
}
|
|
27765
|
+
function toWholeSeriesPricing(offering) {
|
|
27766
|
+
const resolved = resolveWholeSeriesPricingState(offering);
|
|
27767
|
+
switch (offering.pricing.pricingStrategy) {
|
|
27768
|
+
case "free": return {
|
|
27769
|
+
kind: "free_registration",
|
|
27770
|
+
currency: offering.currency,
|
|
27771
|
+
display: {
|
|
27772
|
+
kind: "free",
|
|
27773
|
+
currency: offering.currency
|
|
27774
|
+
}
|
|
27775
|
+
};
|
|
27776
|
+
case "single": {
|
|
27777
|
+
const amount = offering.pricing.singlePriceAmount ?? 0;
|
|
27778
|
+
return amount === 0 ? {
|
|
27779
|
+
kind: "free_registration",
|
|
27780
|
+
currency: offering.currency,
|
|
27781
|
+
display: {
|
|
27782
|
+
kind: "free",
|
|
27783
|
+
currency: offering.currency
|
|
27784
|
+
}
|
|
27785
|
+
} : {
|
|
27786
|
+
kind: "single_paid",
|
|
27787
|
+
amount,
|
|
27788
|
+
currency: offering.currency,
|
|
27789
|
+
display: {
|
|
27790
|
+
kind: "exact",
|
|
27791
|
+
amount,
|
|
27792
|
+
currency: offering.currency
|
|
27793
|
+
}
|
|
27794
|
+
};
|
|
27795
|
+
}
|
|
27796
|
+
case "tiered": return {
|
|
27797
|
+
kind: "ticket_types",
|
|
27798
|
+
currency: offering.currency,
|
|
27799
|
+
ticketTypes: resolved.selectableOptions.map((option) => toWholeSeriesTicketType(option)),
|
|
27800
|
+
display: resolved.display
|
|
27801
|
+
};
|
|
27802
|
+
case "sliding_scale": return {
|
|
27803
|
+
kind: "sliding_scale",
|
|
27804
|
+
minAmount: offering.pricing.slidingMinAmount ?? 0,
|
|
27805
|
+
maxAmount: offering.pricing.slidingMaxAmount ?? 0,
|
|
27806
|
+
suggestedAmount: offering.pricing.slidingSuggestedAmount ?? null,
|
|
27807
|
+
currency: offering.currency,
|
|
27808
|
+
display: {
|
|
27809
|
+
kind: "range",
|
|
27810
|
+
minAmount: offering.pricing.slidingMinAmount ?? 0,
|
|
27811
|
+
maxAmount: offering.pricing.slidingMaxAmount ?? 0,
|
|
27812
|
+
currency: offering.currency
|
|
27813
|
+
}
|
|
27814
|
+
};
|
|
27815
|
+
}
|
|
27816
|
+
}
|
|
27817
|
+
function toAttendanceModes(offering) {
|
|
27818
|
+
return (offering.deliveryMode === "hybrid" ? ["in_person", "online"] : [offering.deliveryMode]).map((mode) => ({
|
|
27819
|
+
mode,
|
|
27820
|
+
capacity: offering.enrollmentCapacity,
|
|
27821
|
+
registeredCount: offering.enrolledCount,
|
|
27822
|
+
availableSpots: offering.availableSpots,
|
|
27823
|
+
waitlistEnabled: offering.waitlistEnabled
|
|
27824
|
+
}));
|
|
27825
|
+
}
|
|
27826
|
+
function toWholeSeriesRegistrationEvent(offering) {
|
|
27827
|
+
const firstSession = offering.sessions[0];
|
|
27828
|
+
const lastSession = offering.sessions[offering.sessions.length - 1];
|
|
27829
|
+
return {
|
|
27830
|
+
selectionId: offering.eventSeriesId,
|
|
27831
|
+
registrationSubject: {
|
|
27832
|
+
kind: "wholeSeries",
|
|
27833
|
+
eventSeriesId: offering.eventSeriesId,
|
|
27834
|
+
sessions: offering.sessions
|
|
27835
|
+
},
|
|
27836
|
+
seriesId: offering.eventSeriesId,
|
|
27837
|
+
title: offering.title,
|
|
27838
|
+
startsAt: firstSession?.startsAt ?? "",
|
|
27839
|
+
endsAt: lastSession?.endsAt ?? firstSession?.endsAt ?? "",
|
|
27840
|
+
bookingAvailability: offering.enrollmentOpen ? { kind: "open" } : {
|
|
27841
|
+
kind: "closed",
|
|
27842
|
+
reason: "enrollment_closed"
|
|
27843
|
+
},
|
|
27844
|
+
deliveryMode: offering.deliveryMode,
|
|
27845
|
+
attendanceModes: toAttendanceModes(offering),
|
|
27846
|
+
capacity: offering.enrollmentCapacity,
|
|
27847
|
+
registeredCount: offering.enrolledCount,
|
|
27848
|
+
availableSpots: offering.availableSpots,
|
|
27849
|
+
waitlistEnabled: offering.waitlistEnabled,
|
|
27850
|
+
venue: offering.venue ? {
|
|
27851
|
+
...offering.venue,
|
|
27852
|
+
location: null
|
|
27853
|
+
} : null,
|
|
27854
|
+
eventCategory: null,
|
|
27855
|
+
teamMembers: offering.teamMembers,
|
|
27856
|
+
status: offering.status,
|
|
27857
|
+
timeZone: firstSession?.timeZone ?? "UTC",
|
|
27858
|
+
pricing: toWholeSeriesPricing(offering),
|
|
27859
|
+
paymentTerms: offering.paymentTerms,
|
|
27860
|
+
consent: offering.consent,
|
|
27861
|
+
requireGuestDetails: offering.requireGuestDetails,
|
|
27862
|
+
acceptsPasses: false,
|
|
27863
|
+
acceptsMemberships: offering.acceptsMemberships
|
|
27864
|
+
};
|
|
27590
27865
|
}
|
|
27591
27866
|
//#endregion
|
|
27592
27867
|
//#region ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
|
|
@@ -27612,11 +27887,7 @@ const eventRegistrationHydrationSchemaShape = {
|
|
|
27612
27887
|
maxTickets: z.string().optional(),
|
|
27613
27888
|
showVenue: z.boolean().optional(),
|
|
27614
27889
|
showCapacity: z.boolean().optional(),
|
|
27615
|
-
showSessions: z.boolean().optional(),
|
|
27616
|
-
showPrice: z.boolean().optional(),
|
|
27617
27890
|
successMessage: z.string().optional(),
|
|
27618
|
-
waitlistMessage: z.string().optional(),
|
|
27619
|
-
membershipMessage: z.string().optional(),
|
|
27620
27891
|
buttonVariant: registrationButtonVariantSchema.optional(),
|
|
27621
27892
|
overlayEnabled: z.boolean().optional(),
|
|
27622
27893
|
spamProtectionEnabled: z.boolean().optional(),
|
|
@@ -27686,6 +27957,15 @@ function resolveWholeSeriesOffering(source) {
|
|
|
27686
27957
|
return source.wholeSeriesOffering ?? source.subjectWholeSeriesOffering ?? null;
|
|
27687
27958
|
}
|
|
27688
27959
|
function buildEventRegistrationShellStepLabels(source) {
|
|
27960
|
+
const selectedOffering = resolveWholeSeriesOffering(source);
|
|
27961
|
+
if (selectedOffering) {
|
|
27962
|
+
const selectedEvent = toWholeSeriesRegistrationEvent(selectedOffering);
|
|
27963
|
+
return getWizardStepsForContext(true, resolveEventRequiresPayment({
|
|
27964
|
+
eligibility: null,
|
|
27965
|
+
selectedTicketType: null,
|
|
27966
|
+
event: selectedEvent
|
|
27967
|
+
})).map((step) => shellLabelForRegistrationStep(step, [selectedEvent]));
|
|
27968
|
+
}
|
|
27689
27969
|
const scopedEvents = scopeEventRegistrationEvents(source);
|
|
27690
27970
|
if (scopedEvents.length === 0) return EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS;
|
|
27691
27971
|
const preSelectedEvent = findPreSelectedEvent({
|
|
@@ -27700,10 +27980,13 @@ function buildEventRegistrationShellStepLabels(source) {
|
|
|
27700
27980
|
}) : false).map((step) => shellLabelForRegistrationStep(step, scopedEvents));
|
|
27701
27981
|
}
|
|
27702
27982
|
function scopeEventRegistrationEvents(source) {
|
|
27703
|
-
|
|
27983
|
+
const scope = planEventRegistrationScope({
|
|
27984
|
+
events: toRegistrationEvents(source.events ?? []),
|
|
27985
|
+
wholeSeriesOffering: source.wholeSeriesOffering,
|
|
27704
27986
|
occurrenceContext: source.occurrenceContext,
|
|
27705
27987
|
subject: source.subject
|
|
27706
27988
|
});
|
|
27989
|
+
return scope.kind === "invalidSelectedRun" ? [] : scope.events;
|
|
27707
27990
|
}
|
|
27708
27991
|
function shellLabelForRegistrationStep(step, events) {
|
|
27709
27992
|
switch (step) {
|
|
@@ -27746,11 +28029,7 @@ const eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
|
|
|
27746
28029
|
maxTickets: source.maxTickets ?? void 0,
|
|
27747
28030
|
showVenue: source.showVenue,
|
|
27748
28031
|
showCapacity: source.showCapacity,
|
|
27749
|
-
showSessions: source.showSessions,
|
|
27750
|
-
showPrice: source.showPrice,
|
|
27751
28032
|
successMessage: source.successMessage,
|
|
27752
|
-
waitlistMessage: source.waitlistMessage,
|
|
27753
|
-
membershipMessage: source.membershipMessage,
|
|
27754
28033
|
buttonVariant: source.buttonVariant,
|
|
27755
28034
|
overlayEnabled: source.overlayEnabled,
|
|
27756
28035
|
spamProtectionEnabled: source.spamProtectionEnabled,
|
|
@@ -27866,24 +28145,6 @@ const eventRegistrationBlockDefinition = {
|
|
|
27866
28145
|
defaultValue: true,
|
|
27867
28146
|
ui: { intent: "display" }
|
|
27868
28147
|
},
|
|
27869
|
-
{
|
|
27870
|
-
id: "showSessions",
|
|
27871
|
-
type: "boolean",
|
|
27872
|
-
label: "Show complete schedule",
|
|
27873
|
-
description: "Display every session for whole-series registrations",
|
|
27874
|
-
required: false,
|
|
27875
|
-
defaultValue: true,
|
|
27876
|
-
ui: { intent: "display" }
|
|
27877
|
-
},
|
|
27878
|
-
{
|
|
27879
|
-
id: "showPrice",
|
|
27880
|
-
type: "boolean",
|
|
27881
|
-
label: "Show price",
|
|
27882
|
-
description: "Display the whole-series price",
|
|
27883
|
-
required: false,
|
|
27884
|
-
defaultValue: true,
|
|
27885
|
-
ui: { intent: "display" }
|
|
27886
|
-
},
|
|
27887
28148
|
{
|
|
27888
28149
|
id: "successMessage",
|
|
27889
28150
|
type: "text",
|
|
@@ -27894,26 +28155,6 @@ const eventRegistrationBlockDefinition = {
|
|
|
27894
28155
|
defaultValue: "Thank you for registering! Check your email for confirmation details.",
|
|
27895
28156
|
maxLength: 500
|
|
27896
28157
|
},
|
|
27897
|
-
{
|
|
27898
|
-
id: "waitlistMessage",
|
|
27899
|
-
type: "text",
|
|
27900
|
-
label: "Waitlist message",
|
|
27901
|
-
description: "Message shown after joining a whole-series waitlist",
|
|
27902
|
-
required: false,
|
|
27903
|
-
multiline: true,
|
|
27904
|
-
defaultValue: "You've been added to the waitlist. We'll email you if a place becomes available.",
|
|
27905
|
-
maxLength: 500
|
|
27906
|
-
},
|
|
27907
|
-
{
|
|
27908
|
-
id: "membershipMessage",
|
|
27909
|
-
type: "text",
|
|
27910
|
-
label: "Membership registration message",
|
|
27911
|
-
description: "Message shown when a whole-series place is covered by membership",
|
|
27912
|
-
required: false,
|
|
27913
|
-
multiline: true,
|
|
27914
|
-
defaultValue: "Registered using your membership. Check your email for session details.",
|
|
27915
|
-
maxLength: 500
|
|
27916
|
-
},
|
|
27917
28158
|
{
|
|
27918
28159
|
id: "buttonText",
|
|
27919
28160
|
type: "text",
|
|
@@ -27945,11 +28186,7 @@ const eventRegistrationBlockDefinition = {
|
|
|
27945
28186
|
} },
|
|
27946
28187
|
showVenue: { $bind: { from: "content.showVenue" } },
|
|
27947
28188
|
showCapacity: { $bind: { from: "content.showCapacity" } },
|
|
27948
|
-
showSessions: { $bind: { from: "content.showSessions" } },
|
|
27949
|
-
showPrice: { $bind: { from: "content.showPrice" } },
|
|
27950
28189
|
successMessage: { $bind: { from: "content.successMessage" } },
|
|
27951
|
-
waitlistMessage: { $bind: { from: "content.waitlistMessage" } },
|
|
27952
|
-
membershipMessage: { $bind: { from: "content.membershipMessage" } },
|
|
27953
28190
|
buttonText: { $bind: {
|
|
27954
28191
|
from: "content.buttonText",
|
|
27955
28192
|
fallback: "Complete Registration"
|
|
@@ -28066,254 +28303,6 @@ const eventRegistrationBlockDefinition = {
|
|
|
28066
28303
|
}
|
|
28067
28304
|
};
|
|
28068
28305
|
//#endregion
|
|
28069
|
-
//#region ../blocks/src/system/runtime/nodes/course-registration.interactive.ts
|
|
28070
|
-
const courseRegistrationHydrationSchemaShape = {
|
|
28071
|
-
subject: eventRegistrationPageSurfaceSubjectSchema.nullable().optional(),
|
|
28072
|
-
courses: z.array(publicWholeSeriesOfferingSchema).nullable().optional(),
|
|
28073
|
-
showSessions: z.boolean().optional(),
|
|
28074
|
-
showPrice: z.boolean().optional(),
|
|
28075
|
-
showCapacity: z.boolean().optional(),
|
|
28076
|
-
showVenue: z.boolean().optional(),
|
|
28077
|
-
successMessage: z.string().optional(),
|
|
28078
|
-
waitlistMessage: z.string().optional(),
|
|
28079
|
-
membershipMessage: z.string().optional(),
|
|
28080
|
-
buttonVariant: registrationButtonVariantSchema.optional()
|
|
28081
|
-
};
|
|
28082
|
-
const courseRegistrationSourceSchema = z.object({
|
|
28083
|
-
siteId: z.string().optional(),
|
|
28084
|
-
apiBaseUrl: z.string().optional(),
|
|
28085
|
-
portalToken: z.string().nullable().optional(),
|
|
28086
|
-
...courseRegistrationHydrationSchemaShape,
|
|
28087
|
-
className: z.string().nullable().optional(),
|
|
28088
|
-
buttonText: z.string().nullable().optional(),
|
|
28089
|
-
stage: previewStageSchema.optional()
|
|
28090
|
-
});
|
|
28091
|
-
const courseRegistrationDisplaySchema = z.object({
|
|
28092
|
-
kind: z.literal("course-registration"),
|
|
28093
|
-
state: z.literal("shell"),
|
|
28094
|
-
className: z.string().nullable(),
|
|
28095
|
-
summaryButtonText: z.string()
|
|
28096
|
-
});
|
|
28097
|
-
const courseRegistrationHydrationSchema = z.object(courseRegistrationHydrationSchemaShape);
|
|
28098
|
-
const courseRegistrationRenderSchema = z.object({
|
|
28099
|
-
display: courseRegistrationDisplaySchema,
|
|
28100
|
-
hydration: courseRegistrationHydrationSchema
|
|
28101
|
-
});
|
|
28102
|
-
z.object({
|
|
28103
|
-
siteId: z.string().optional(),
|
|
28104
|
-
apiBaseUrl: z.string().optional(),
|
|
28105
|
-
portalToken: z.string().nullable().optional(),
|
|
28106
|
-
stage: previewStageSchema.optional()
|
|
28107
|
-
});
|
|
28108
|
-
function buildCourseRegistrationDisplay(source) {
|
|
28109
|
-
return {
|
|
28110
|
-
kind: "course-registration",
|
|
28111
|
-
state: "shell",
|
|
28112
|
-
className: source.className ?? null,
|
|
28113
|
-
summaryButtonText: source.buttonText?.trim() || "Sign up"
|
|
28114
|
-
};
|
|
28115
|
-
}
|
|
28116
|
-
const courseRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
|
|
28117
|
-
kind: "client-owned",
|
|
28118
|
-
contracts: {
|
|
28119
|
-
source: createZodCodec(courseRegistrationSourceSchema),
|
|
28120
|
-
render: createZodCodec(courseRegistrationRenderSchema)
|
|
28121
|
-
},
|
|
28122
|
-
buildRender: (source) => ({
|
|
28123
|
-
display: buildCourseRegistrationDisplay(source),
|
|
28124
|
-
hydration: {
|
|
28125
|
-
subject: source.subject ?? null,
|
|
28126
|
-
courses: source.courses ?? null,
|
|
28127
|
-
showSessions: source.showSessions,
|
|
28128
|
-
showPrice: source.showPrice,
|
|
28129
|
-
showCapacity: source.showCapacity,
|
|
28130
|
-
showVenue: source.showVenue,
|
|
28131
|
-
successMessage: source.successMessage,
|
|
28132
|
-
waitlistMessage: source.waitlistMessage,
|
|
28133
|
-
membershipMessage: source.membershipMessage,
|
|
28134
|
-
buttonVariant: source.buttonVariant
|
|
28135
|
-
}
|
|
28136
|
-
})
|
|
28137
|
-
});
|
|
28138
|
-
const courseRegistrationBlockDefinition = {
|
|
28139
|
-
manifest: createBlockManifest({
|
|
28140
|
-
id: "block.course-registration",
|
|
28141
|
-
version: "1.0.0",
|
|
28142
|
-
title: "Course Registration",
|
|
28143
|
-
titleSource: "heading",
|
|
28144
|
-
description: "Enrollment form for multi-session courses",
|
|
28145
|
-
category: "interactive",
|
|
28146
|
-
contentSource: { kind: "inline" },
|
|
28147
|
-
tags: [
|
|
28148
|
-
"courses",
|
|
28149
|
-
"enrollment",
|
|
28150
|
-
"booking",
|
|
28151
|
-
"form",
|
|
28152
|
-
"signup",
|
|
28153
|
-
"education"
|
|
28154
|
-
],
|
|
28155
|
-
icon: "GraduationCap",
|
|
28156
|
-
styleTokens: {
|
|
28157
|
-
background: "surface",
|
|
28158
|
-
typography: "body",
|
|
28159
|
-
spacing: "md"
|
|
28160
|
-
},
|
|
28161
|
-
behaviours: {
|
|
28162
|
-
supportsThemeSwitching: true,
|
|
28163
|
-
inlineEditing: false,
|
|
28164
|
-
animation: false,
|
|
28165
|
-
paletteHidden: false
|
|
28166
|
-
},
|
|
28167
|
-
additionalFields: [
|
|
28168
|
-
{
|
|
28169
|
-
id: "heading",
|
|
28170
|
-
type: "text",
|
|
28171
|
-
label: "Heading",
|
|
28172
|
-
description: "Main heading for the registration form",
|
|
28173
|
-
required: false,
|
|
28174
|
-
multiline: false,
|
|
28175
|
-
defaultValue: "Sign up"
|
|
28176
|
-
},
|
|
28177
|
-
{
|
|
28178
|
-
id: "description",
|
|
28179
|
-
type: "richText",
|
|
28180
|
-
label: "Description",
|
|
28181
|
-
description: "Optional introductory text",
|
|
28182
|
-
required: false
|
|
28183
|
-
},
|
|
28184
|
-
{
|
|
28185
|
-
id: "showSessions",
|
|
28186
|
-
type: "boolean",
|
|
28187
|
-
label: "Show sessions",
|
|
28188
|
-
description: "Display the list of course sessions",
|
|
28189
|
-
required: false,
|
|
28190
|
-
defaultValue: true,
|
|
28191
|
-
ui: { intent: "display" }
|
|
28192
|
-
},
|
|
28193
|
-
{
|
|
28194
|
-
id: "showPrice",
|
|
28195
|
-
type: "boolean",
|
|
28196
|
-
label: "Show price",
|
|
28197
|
-
description: "Display the course price",
|
|
28198
|
-
required: false,
|
|
28199
|
-
defaultValue: true,
|
|
28200
|
-
ui: { intent: "display" }
|
|
28201
|
-
},
|
|
28202
|
-
{
|
|
28203
|
-
id: "showCapacity",
|
|
28204
|
-
type: "boolean",
|
|
28205
|
-
label: "Show available spots",
|
|
28206
|
-
description: "Display remaining enrollment capacity",
|
|
28207
|
-
required: false,
|
|
28208
|
-
defaultValue: true,
|
|
28209
|
-
ui: { intent: "display" }
|
|
28210
|
-
},
|
|
28211
|
-
{
|
|
28212
|
-
id: "showVenue",
|
|
28213
|
-
type: "boolean",
|
|
28214
|
-
label: "Show venue",
|
|
28215
|
-
description: "Display venue information",
|
|
28216
|
-
required: false,
|
|
28217
|
-
defaultValue: true,
|
|
28218
|
-
ui: { intent: "display" }
|
|
28219
|
-
},
|
|
28220
|
-
{
|
|
28221
|
-
id: "successMessage",
|
|
28222
|
-
type: "text",
|
|
28223
|
-
label: "Success message",
|
|
28224
|
-
description: "Message shown after successful enrollment",
|
|
28225
|
-
required: false,
|
|
28226
|
-
multiline: true,
|
|
28227
|
-
defaultValue: "You're enrolled! Check your email for confirmation and session details.",
|
|
28228
|
-
maxLength: 500
|
|
28229
|
-
},
|
|
28230
|
-
{
|
|
28231
|
-
id: "waitlistMessage",
|
|
28232
|
-
type: "text",
|
|
28233
|
-
label: "Waitlist message",
|
|
28234
|
-
description: "Message when added to waitlist",
|
|
28235
|
-
required: false,
|
|
28236
|
-
multiline: true,
|
|
28237
|
-
defaultValue: "You've been added to the waitlist. We'll email you a claim link if a spot opens up.",
|
|
28238
|
-
maxLength: 500
|
|
28239
|
-
},
|
|
28240
|
-
{
|
|
28241
|
-
id: "membershipMessage",
|
|
28242
|
-
type: "text",
|
|
28243
|
-
label: "Membership enrollment message",
|
|
28244
|
-
description: "Message when enrolled using a membership",
|
|
28245
|
-
required: false,
|
|
28246
|
-
multiline: true,
|
|
28247
|
-
defaultValue: "Enrolled using your membership! Check your email for session details.",
|
|
28248
|
-
maxLength: 500
|
|
28249
|
-
},
|
|
28250
|
-
{
|
|
28251
|
-
id: "buttonText",
|
|
28252
|
-
type: "text",
|
|
28253
|
-
label: "Submit button text",
|
|
28254
|
-
description: "Text for the enrollment submit button",
|
|
28255
|
-
required: false,
|
|
28256
|
-
multiline: false,
|
|
28257
|
-
defaultValue: "Sign up",
|
|
28258
|
-
maxLength: 40
|
|
28259
|
-
},
|
|
28260
|
-
createButtonVariantField()
|
|
28261
|
-
],
|
|
28262
|
-
layout: [styledSection({
|
|
28263
|
-
baseClass: "",
|
|
28264
|
-
spacing: "spacious",
|
|
28265
|
-
children: sectionContainer([
|
|
28266
|
-
text({ as: "h2" }, bind("content.heading"), when("content.heading")),
|
|
28267
|
-
richText({ className: "rb-prose rb-max-w-none" }, bind("content.description"), when("content.description")),
|
|
28268
|
-
courseRegistration(withApiBindings({
|
|
28269
|
-
subject: { $bind: {
|
|
28270
|
-
from: "$root.subject",
|
|
28271
|
-
fallback: null
|
|
28272
|
-
} },
|
|
28273
|
-
portalToken: { $bind: {
|
|
28274
|
-
from: "$root.portalToken",
|
|
28275
|
-
fallback: null
|
|
28276
|
-
} },
|
|
28277
|
-
showSessions: { $bind: { from: "content.showSessions" } },
|
|
28278
|
-
showPrice: { $bind: { from: "content.showPrice" } },
|
|
28279
|
-
showCapacity: { $bind: { from: "content.showCapacity" } },
|
|
28280
|
-
showVenue: { $bind: { from: "content.showVenue" } },
|
|
28281
|
-
successMessage: { $bind: { from: "content.successMessage" } },
|
|
28282
|
-
waitlistMessage: { $bind: { from: "content.waitlistMessage" } },
|
|
28283
|
-
membershipMessage: { $bind: { from: "content.membershipMessage" } },
|
|
28284
|
-
buttonText: { $bind: {
|
|
28285
|
-
from: "content.buttonText",
|
|
28286
|
-
fallback: "Sign up"
|
|
28287
|
-
} },
|
|
28288
|
-
buttonVariant: { $bind: {
|
|
28289
|
-
from: "content.buttonVariant",
|
|
28290
|
-
fallback: "primary"
|
|
28291
|
-
} },
|
|
28292
|
-
courses: { $bind: { from: "data.courses" } },
|
|
28293
|
-
stage: { $bind: {
|
|
28294
|
-
from: "$root.previewStage",
|
|
28295
|
-
fallback: "published"
|
|
28296
|
-
} }
|
|
28297
|
-
}))
|
|
28298
|
-
], { gap: "lg" })
|
|
28299
|
-
})]
|
|
28300
|
-
}),
|
|
28301
|
-
runtime: courseRegistrationBlockRuntime,
|
|
28302
|
-
dataSchemas: { courses: publicWholeSeriesOfferingsArraySchema.optional() },
|
|
28303
|
-
dataLoaders: { courses: {
|
|
28304
|
-
endpoint: "listPublicWholeSeriesOfferings",
|
|
28305
|
-
params: {
|
|
28306
|
-
siteId: { $bind: { from: "$root.siteId" } },
|
|
28307
|
-
limit: "50",
|
|
28308
|
-
stage: { $bind: {
|
|
28309
|
-
from: "$root.previewStage",
|
|
28310
|
-
fallback: "published"
|
|
28311
|
-
} }
|
|
28312
|
-
},
|
|
28313
|
-
mode: "server"
|
|
28314
|
-
} }
|
|
28315
|
-
};
|
|
28316
|
-
//#endregion
|
|
28317
28306
|
//#region ../blocks/src/system/blocks/event-details.ts
|
|
28318
28307
|
/**
|
|
28319
28308
|
* Event Details Block
|
|
@@ -28560,200 +28549,6 @@ const eventDetailsBlockDefinition = {
|
|
|
28560
28549
|
mode: "server"
|
|
28561
28550
|
} }
|
|
28562
28551
|
};
|
|
28563
|
-
const courseDetailsBlockDefinition = {
|
|
28564
|
-
manifest: createBlockManifest({
|
|
28565
|
-
id: "block.course-details",
|
|
28566
|
-
version: "1.0.0",
|
|
28567
|
-
title: "Course Details",
|
|
28568
|
-
titleSource: "heading",
|
|
28569
|
-
description: "Schedule, venue, price, and enrollment status for a course",
|
|
28570
|
-
category: "content",
|
|
28571
|
-
contentSource: { kind: "entries" },
|
|
28572
|
-
tags: [
|
|
28573
|
-
"courses",
|
|
28574
|
-
"schedule",
|
|
28575
|
-
"sessions",
|
|
28576
|
-
"venue",
|
|
28577
|
-
"pricing"
|
|
28578
|
-
],
|
|
28579
|
-
icon: "GraduationCap",
|
|
28580
|
-
styleTokens: {
|
|
28581
|
-
background: "surface",
|
|
28582
|
-
typography: "body",
|
|
28583
|
-
spacing: "md"
|
|
28584
|
-
},
|
|
28585
|
-
behaviours: {
|
|
28586
|
-
supportsThemeSwitching: true,
|
|
28587
|
-
inlineEditing: false,
|
|
28588
|
-
animation: false,
|
|
28589
|
-
paletteHidden: false
|
|
28590
|
-
},
|
|
28591
|
-
additionalFields: [
|
|
28592
|
-
{
|
|
28593
|
-
id: "heading",
|
|
28594
|
-
type: "text",
|
|
28595
|
-
label: "Heading",
|
|
28596
|
-
description: "Optional heading shown above course details",
|
|
28597
|
-
required: false,
|
|
28598
|
-
multiline: false,
|
|
28599
|
-
defaultValue: "Course details"
|
|
28600
|
-
},
|
|
28601
|
-
{
|
|
28602
|
-
id: "showTitle",
|
|
28603
|
-
type: "boolean",
|
|
28604
|
-
label: "Show course title",
|
|
28605
|
-
required: false,
|
|
28606
|
-
defaultValue: false,
|
|
28607
|
-
ui: { intent: "display" }
|
|
28608
|
-
},
|
|
28609
|
-
{
|
|
28610
|
-
id: "showDescription",
|
|
28611
|
-
type: "boolean",
|
|
28612
|
-
label: "Show course description",
|
|
28613
|
-
description: "Render the course description from the bookings course record",
|
|
28614
|
-
required: false,
|
|
28615
|
-
defaultValue: false,
|
|
28616
|
-
ui: { intent: "display" }
|
|
28617
|
-
},
|
|
28618
|
-
{
|
|
28619
|
-
id: "showSessions",
|
|
28620
|
-
type: "boolean",
|
|
28621
|
-
label: "Show sessions",
|
|
28622
|
-
required: false,
|
|
28623
|
-
defaultValue: true,
|
|
28624
|
-
ui: { intent: "display" }
|
|
28625
|
-
},
|
|
28626
|
-
{
|
|
28627
|
-
id: "sessionsLimit",
|
|
28628
|
-
type: "select",
|
|
28629
|
-
label: "Sessions limit",
|
|
28630
|
-
required: false,
|
|
28631
|
-
multiple: false,
|
|
28632
|
-
defaultValue: "10",
|
|
28633
|
-
options: [
|
|
28634
|
-
{
|
|
28635
|
-
value: "3",
|
|
28636
|
-
label: "3 sessions"
|
|
28637
|
-
},
|
|
28638
|
-
{
|
|
28639
|
-
value: "5",
|
|
28640
|
-
label: "5 sessions"
|
|
28641
|
-
},
|
|
28642
|
-
{
|
|
28643
|
-
value: "10",
|
|
28644
|
-
label: "10 sessions"
|
|
28645
|
-
},
|
|
28646
|
-
{
|
|
28647
|
-
value: "all",
|
|
28648
|
-
label: "All sessions"
|
|
28649
|
-
}
|
|
28650
|
-
],
|
|
28651
|
-
ui: { intent: "display" }
|
|
28652
|
-
},
|
|
28653
|
-
{
|
|
28654
|
-
id: "showVenue",
|
|
28655
|
-
type: "boolean",
|
|
28656
|
-
label: "Show venue",
|
|
28657
|
-
required: false,
|
|
28658
|
-
defaultValue: true,
|
|
28659
|
-
ui: { intent: "display" }
|
|
28660
|
-
},
|
|
28661
|
-
{
|
|
28662
|
-
id: "showPrice",
|
|
28663
|
-
type: "boolean",
|
|
28664
|
-
label: "Show price",
|
|
28665
|
-
required: false,
|
|
28666
|
-
defaultValue: true,
|
|
28667
|
-
ui: { intent: "display" }
|
|
28668
|
-
},
|
|
28669
|
-
{
|
|
28670
|
-
id: "showCapacity",
|
|
28671
|
-
type: "boolean",
|
|
28672
|
-
label: "Show capacity",
|
|
28673
|
-
required: false,
|
|
28674
|
-
defaultValue: true,
|
|
28675
|
-
ui: { intent: "display" }
|
|
28676
|
-
},
|
|
28677
|
-
{
|
|
28678
|
-
id: "showEnrollmentStatus",
|
|
28679
|
-
type: "boolean",
|
|
28680
|
-
label: "Show enrollment status",
|
|
28681
|
-
required: false,
|
|
28682
|
-
defaultValue: true,
|
|
28683
|
-
ui: { intent: "display" }
|
|
28684
|
-
},
|
|
28685
|
-
{
|
|
28686
|
-
id: "showMembershipNote",
|
|
28687
|
-
type: "boolean",
|
|
28688
|
-
label: "Show membership note",
|
|
28689
|
-
description: "Indicate when memberships can be used for free enrollment",
|
|
28690
|
-
required: false,
|
|
28691
|
-
defaultValue: true,
|
|
28692
|
-
ui: { intent: "display" }
|
|
28693
|
-
}
|
|
28694
|
-
],
|
|
28695
|
-
layout: [styledSection({
|
|
28696
|
-
baseClass: "",
|
|
28697
|
-
spacing: "spacious",
|
|
28698
|
-
children: sectionContainer([text({ as: "h2" }, bind("content.heading"), when("content.heading")), el("course-details", {
|
|
28699
|
-
subject: { $bind: {
|
|
28700
|
-
from: "$root.subject",
|
|
28701
|
-
fallback: null
|
|
28702
|
-
} },
|
|
28703
|
-
courses: { $bind: { from: "data.courses" } },
|
|
28704
|
-
showTitle: { $bind: {
|
|
28705
|
-
from: "content.showTitle",
|
|
28706
|
-
fallback: false
|
|
28707
|
-
} },
|
|
28708
|
-
showDescription: { $bind: {
|
|
28709
|
-
from: "content.showDescription",
|
|
28710
|
-
fallback: false
|
|
28711
|
-
} },
|
|
28712
|
-
showSessions: { $bind: {
|
|
28713
|
-
from: "content.showSessions",
|
|
28714
|
-
fallback: true
|
|
28715
|
-
} },
|
|
28716
|
-
sessionsLimit: { $bind: {
|
|
28717
|
-
from: "content.sessionsLimit",
|
|
28718
|
-
fallback: "10"
|
|
28719
|
-
} },
|
|
28720
|
-
showVenue: { $bind: {
|
|
28721
|
-
from: "content.showVenue",
|
|
28722
|
-
fallback: true
|
|
28723
|
-
} },
|
|
28724
|
-
showPrice: { $bind: {
|
|
28725
|
-
from: "content.showPrice",
|
|
28726
|
-
fallback: true
|
|
28727
|
-
} },
|
|
28728
|
-
showCapacity: { $bind: {
|
|
28729
|
-
from: "content.showCapacity",
|
|
28730
|
-
fallback: true
|
|
28731
|
-
} },
|
|
28732
|
-
showEnrollmentStatus: { $bind: {
|
|
28733
|
-
from: "content.showEnrollmentStatus",
|
|
28734
|
-
fallback: true
|
|
28735
|
-
} },
|
|
28736
|
-
showMembershipNote: { $bind: {
|
|
28737
|
-
from: "content.showMembershipNote",
|
|
28738
|
-
fallback: true
|
|
28739
|
-
} }
|
|
28740
|
-
})], { gap: "lg" })
|
|
28741
|
-
})]
|
|
28742
|
-
}),
|
|
28743
|
-
dataSchemas: { courses: publicWholeSeriesOfferingsArraySchema.optional() },
|
|
28744
|
-
dataLoaders: { courses: {
|
|
28745
|
-
endpoint: "listPublicWholeSeriesOfferings",
|
|
28746
|
-
params: {
|
|
28747
|
-
siteId: { $bind: { from: "$root.siteId" } },
|
|
28748
|
-
limit: "50",
|
|
28749
|
-
stage: { $bind: {
|
|
28750
|
-
from: "$root.previewStage",
|
|
28751
|
-
fallback: "published"
|
|
28752
|
-
} }
|
|
28753
|
-
},
|
|
28754
|
-
mode: "server"
|
|
28755
|
-
} }
|
|
28756
|
-
};
|
|
28757
28552
|
const eventSpotlightBlockDefinition = {
|
|
28758
28553
|
manifest: createBlockManifest({
|
|
28759
28554
|
id: "block.event-spotlight",
|
|
@@ -30916,7 +30711,7 @@ const publicRouteCandidatesSchema = z.object({ routes: z.array(z.object({
|
|
|
30916
30711
|
entityId: z.string(),
|
|
30917
30712
|
path: z.string(),
|
|
30918
30713
|
title: z.string(),
|
|
30919
|
-
kind: z.enum(
|
|
30714
|
+
kind: z.enum(RESOLVED_INTERNAL_LINK_ENTITY_TYPES),
|
|
30920
30715
|
contentTypeKey: z.string().nullable().optional()
|
|
30921
30716
|
})) });
|
|
30922
30717
|
const groupOverrideFields = [
|
|
@@ -31193,7 +30988,7 @@ const offeringsPreviewManifest = createBlockManifest({
|
|
|
31193
30988
|
fallback: "published"
|
|
31194
30989
|
} },
|
|
31195
30990
|
routeCandidates: { $bind: { from: "data.routeCandidates" } },
|
|
31196
|
-
|
|
30991
|
+
wholeSeriesOfferings: { $bind: { from: "data.wholeSeriesOfferings" } },
|
|
31197
30992
|
...offeringsPreviewEventDataBindings
|
|
31198
30993
|
})
|
|
31199
30994
|
], { gap: "lg" }),
|
|
@@ -31210,7 +31005,7 @@ const offeringsPreviewBlockDefinition = {
|
|
|
31210
31005
|
dataSchemas: {
|
|
31211
31006
|
...offeringsPreviewEventDataSchemas,
|
|
31212
31007
|
routeCandidates: publicRouteCandidatesSchema.optional(),
|
|
31213
|
-
|
|
31008
|
+
wholeSeriesOfferings: publicWholeSeriesOfferingsArraySchema.optional()
|
|
31214
31009
|
},
|
|
31215
31010
|
dataLoaders: {
|
|
31216
31011
|
...offeringsPreviewEventDataLoaders,
|
|
@@ -31219,7 +31014,7 @@ const offeringsPreviewBlockDefinition = {
|
|
|
31219
31014
|
params: {},
|
|
31220
31015
|
mode: "server"
|
|
31221
31016
|
},
|
|
31222
|
-
|
|
31017
|
+
wholeSeriesOfferings: {
|
|
31223
31018
|
endpoint: "listPublicWholeSeriesOfferings",
|
|
31224
31019
|
params: {
|
|
31225
31020
|
siteId: { $bind: { from: "$root.siteId" } },
|
|
@@ -36186,22 +35981,6 @@ const systemBlockDefinitions = [
|
|
|
36186
35981
|
weight: "standard"
|
|
36187
35982
|
})]
|
|
36188
35983
|
})),
|
|
36189
|
-
withDesignCapability("block.course-registration", courseRegistrationBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
|
|
36190
|
-
flow: conversionFlow,
|
|
36191
|
-
layoutProfiles: [layoutProfile({
|
|
36192
|
-
variantKey: "default",
|
|
36193
|
-
family: "form",
|
|
36194
|
-
weight: "standard"
|
|
36195
|
-
})]
|
|
36196
|
-
})),
|
|
36197
|
-
withDesignCapability("block.course-details", courseDetailsBlockDefinition, scheduleDetailsCapable(), defineBlockDesignMetadata({
|
|
36198
|
-
flow: offeringsFlow,
|
|
36199
|
-
layoutProfiles: [layoutProfile({
|
|
36200
|
-
variantKey: "default",
|
|
36201
|
-
family: "stack",
|
|
36202
|
-
weight: "standard"
|
|
36203
|
-
})]
|
|
36204
|
-
})),
|
|
36205
35984
|
withDesignCapability("block.event-spotlight", eventSpotlightBlockDefinition, eventSpotlightCapable(), defineBlockDesignMetadata({
|
|
36206
35985
|
flow: offeringsFlow,
|
|
36207
35986
|
layoutProfiles: [layoutProfile({
|
|
@@ -37776,6 +37555,68 @@ function collectText(node) {
|
|
|
37776
37555
|
return (node.content ?? []).map(collectText).join("");
|
|
37777
37556
|
}
|
|
37778
37557
|
//#endregion
|
|
37558
|
+
//#region ../api/src/bookingPaymentTermSchemas.ts
|
|
37559
|
+
const bookingDepositRefundPolicySchema = z.enum(["refundable", "non_refundable"]);
|
|
37560
|
+
const bookingInstalmentPlanSchema = z.discriminatedUnion("kind", [
|
|
37561
|
+
z.object({
|
|
37562
|
+
kind: z.literal("deposit_plus_one_remainder"),
|
|
37563
|
+
depositAmountCents: z.number().int().nonnegative(),
|
|
37564
|
+
depositRefundability: bookingDepositRefundPolicySchema,
|
|
37565
|
+
remainderDueCount: z.number().int().positive(),
|
|
37566
|
+
intervalUnit: z.enum([
|
|
37567
|
+
"day",
|
|
37568
|
+
"week",
|
|
37569
|
+
"month"
|
|
37570
|
+
])
|
|
37571
|
+
}),
|
|
37572
|
+
z.object({
|
|
37573
|
+
kind: z.literal("deposit_plus_scheduled_instalments"),
|
|
37574
|
+
depositAmountCents: z.number().int().nonnegative(),
|
|
37575
|
+
depositRefundability: bookingDepositRefundPolicySchema,
|
|
37576
|
+
instalmentCount: z.number().int().positive(),
|
|
37577
|
+
intervalCount: z.number().int().positive(),
|
|
37578
|
+
intervalUnit: z.enum([
|
|
37579
|
+
"day",
|
|
37580
|
+
"week",
|
|
37581
|
+
"month"
|
|
37582
|
+
])
|
|
37583
|
+
}),
|
|
37584
|
+
z.object({
|
|
37585
|
+
kind: z.literal("equal_scheduled_instalments"),
|
|
37586
|
+
instalmentCount: z.number().int().positive(),
|
|
37587
|
+
intervalCount: z.number().int().positive(),
|
|
37588
|
+
intervalUnit: z.enum([
|
|
37589
|
+
"day",
|
|
37590
|
+
"week",
|
|
37591
|
+
"month"
|
|
37592
|
+
])
|
|
37593
|
+
})
|
|
37594
|
+
]);
|
|
37595
|
+
const bookingFlexibleBalanceDueDateRuleSchema = z.discriminatedUnion("kind", [z.object({
|
|
37596
|
+
kind: z.literal("relative_to_start_date"),
|
|
37597
|
+
daysBeforeStart: z.number().int().positive()
|
|
37598
|
+
}), z.object({
|
|
37599
|
+
kind: z.literal("fixed_calendar_date"),
|
|
37600
|
+
dueAt: z.string().datetime()
|
|
37601
|
+
})]);
|
|
37602
|
+
const bookingFlexibleBalanceConfigSchema = z.object({
|
|
37603
|
+
upfrontAmountCents: z.number().int().nonnegative(),
|
|
37604
|
+
dueDateRule: bookingFlexibleBalanceDueDateRuleSchema,
|
|
37605
|
+
depositRefundability: bookingDepositRefundPolicySchema
|
|
37606
|
+
});
|
|
37607
|
+
z.discriminatedUnion("kind", [
|
|
37608
|
+
z.object({ kind: z.literal("upfront") }),
|
|
37609
|
+
z.object({ kind: z.literal("deferred_manual") }),
|
|
37610
|
+
z.object({
|
|
37611
|
+
kind: z.literal("instalment_plan"),
|
|
37612
|
+
plan: bookingInstalmentPlanSchema
|
|
37613
|
+
}),
|
|
37614
|
+
z.object({
|
|
37615
|
+
kind: z.literal("flexible_balance"),
|
|
37616
|
+
config: bookingFlexibleBalanceConfigSchema
|
|
37617
|
+
})
|
|
37618
|
+
]);
|
|
37619
|
+
//#endregion
|
|
37779
37620
|
//#region ../api/src/navigationMenuValidation.ts
|
|
37780
37621
|
function hasChildren(item) {
|
|
37781
37622
|
return Array.isArray(item.children) && item.children.length > 0;
|