@riverbankcms/sdk 0.134.0 → 0.135.1
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 +4 -3
- package/README.md +1 -1
- package/dist/{PreviewEditorSidebar-DfRhJPFQ.mjs → PreviewEditorSidebar-D4p_5TdY.mjs} +4 -4
- package/dist/{PreviewEditorUI-Dppxcr_g.mjs → PreviewEditorUI-D0cRoTX1.mjs} +3 -3
- package/dist/{PreviewQueryProvider-D51gQaG3.mjs → PreviewQueryProvider-DcgaESkm.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-8CyGCXir.mjs → SdkPreviewModeRuntime-BKLtM3Nz.mjs} +5 -5
- package/dist/{SiteChromeCustomizeContext-DVMTMvqA.mjs → SiteChromeCustomizeContext-61X2m7QV.mjs} +4105 -8035
- package/dist/_dts/ai/src/contracts/proposals.d.ts +165 -165
- package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +15 -15
- 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 -161
- 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 +5 -9
- 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/endpoints.d.ts +29 -109
- 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/participantMessaging.d.ts +2 -2
- 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 +85 -5
- package/dist/_dts/api/src/publicExperience/sharedTypes.d.ts +1 -1
- package/dist/_dts/api/src/publicExperience/wholeSeriesEndpoints.d.ts +9 -100
- 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 +1 -1
- package/dist/_dts/api/src/siteOperations.d.ts +2 -2
- package/dist/_dts/api/src/types.d.ts +1 -1
- package/dist/_dts/api/src/{courses.d.ts → wholeSeriesOfferings.d.ts} +43 -95
- package/dist/_dts/blocks/src/client.d.ts +0 -5
- package/dist/_dts/blocks/src/contracts/index.d.ts +1 -1
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +5 -94
- 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/system/blocks/event-registration.d.ts +147 -42
- package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +35 -10
- package/dist/_dts/blocks/src/system/blocks/events/whole-series/types.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/index.d.ts +0 -2
- package/dist/_dts/blocks/src/system/blocks/offerings-preview/model.d.ts +3 -3
- package/dist/_dts/blocks/src/system/blocks/offerings-preview/scheduleSummary.d.ts +3 -3
- package/dist/_dts/blocks/src/system/constants/blockKinds.d.ts +1 -1
- 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/core.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +99 -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/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/nodes/event-details/WholeSeriesPricingDisplay.d.ts +8 -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/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 +20 -5
- 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/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 +16 -6
- 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/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 +1 -1
- package/dist/_dts/blocks/src/system/runtime/shared/utils/checkoutUrls.d.ts +2 -2
- 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/metadataConfig.d.ts +0 -1
- package/dist/_dts/content-model/src/templates/defaults.d.ts +0 -68
- 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/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 +890 -2154
- package/dist/_dts/sdk/src/bookings/index.d.ts +4 -5
- package/dist/_dts/sdk/src/bookings/types.d.ts +34 -4
- 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/blocks/vars/index.d.ts +0 -2
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- 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/client/{usePolling-UN4WKnaM.mjs → BookingConsentAgreement-Bz9znbpn.mjs} +180 -4
- package/dist/client/{DiscountCodeDisclosure-CfuPOHD0.mjs → DiscountCodeDisclosure-35Ru8yB9.mjs} +13 -27
- package/dist/client/{EventCombined.client-DB8Qfzi-.mjs → EventCombined.client-BKB0ZxRR.mjs} +3 -3
- package/dist/client/{EventListing.client-DD4X8hp4.mjs → EventListing.client-Dx8I21ok.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-QhgIBQbv.mjs → LeafletStaticMap-CEWx-Bhe.mjs} +1 -1
- package/dist/client/{accordion-DFXpLvwg.mjs → accordion-KIDsKTwS.mjs} +1 -1
- package/dist/client/{bookingForm-sI05d3lk.mjs → bookingForm-D96Rmp-5.mjs} +6 -7
- package/dist/client/bookings.mjs +913 -1906
- package/dist/client/{carousel-wjyWTZCh.mjs → carousel-YwUgyL66.mjs} +1 -1
- package/dist/client/{cart-DCwdpA4i.mjs → cart-BbwuNrUT.mjs} +3 -3
- package/dist/client/{checkout-DTDW3l0R.mjs → checkout-hp1ucmEY.mjs} +3 -3
- package/dist/client/{checkoutUrls-DQYC_Br-.mjs → checkoutUrls-BuseL0dw.mjs} +4 -2
- package/dist/client/client.mjs +5109 -9333
- package/dist/client/{context-TSK1CGx8.mjs → context-DljQn8L5.mjs} +15 -69
- package/dist/client/{eventCalendar-B0Zg-i_w.mjs → eventCalendar-DU4iNLpo.mjs} +5 -5
- package/dist/client/{eventCombined-B8Y2wizd.mjs → eventCombined-CZuupW8m.mjs} +3 -3
- package/dist/client/{eventDetails-DPDOwURJ.mjs → eventDetails-DPQWwCIi.mjs} +8 -8
- package/dist/client/{eventListing-CjBcmSLn.mjs → eventListing-C7oMidwS.mjs} +3 -3
- package/dist/client/{eventRegistration-CK30HsAq.mjs → eventRegistration-zEiunlUs.mjs} +4522 -3690
- package/dist/client/{form-CUXfsABE.mjs → form-D2KIyCVJ.mjs} +2 -2
- package/dist/client/{headerSection-N-mN3rjr.mjs → headerSection-CK5uChUK.mjs} +2 -2
- package/dist/client/hooks.mjs +459 -714
- package/dist/client/{locationMap-oiIDQMBt.mjs → locationMap-DLQNH1ln.mjs} +2 -2
- package/dist/client/{newsletterForm-CkQ2tTrM.mjs → newsletterForm-ZuhIG7fZ.mjs} +2 -2
- package/dist/client/{productDetail-CnidyrsN.mjs → productDetail-7hIcGeae.mjs} +3 -3
- package/dist/client/{productList-CttYcS_S.mjs → productList-T4Cii1ot.mjs} +3 -3
- package/dist/client/{propsDecoder-CeUMxI9a.mjs → propsDecoder-mB0aC_Fi.mjs} +4702 -4458
- package/dist/client/rendering/client.mjs +59617 -62260
- package/dist/client/rendering/islands.mjs +17 -19
- package/dist/client/rendering.mjs +5389 -9707
- package/dist/client/{scrollToBlock-lPr1oqxB.mjs → scrollToBlock-Du5mHgvL.mjs} +2 -2
- package/dist/client/{shop-DXQtMo2O.mjs → shop-B5zAcKZn.mjs} +6 -6
- package/dist/client/{shop-commerce-quDL411J.mjs → shop-commerce-BKBZB6l5.mjs} +6 -6
- package/dist/client/{shop-commerce-store-Dnu-8Iub.mjs → shop-commerce-store-Cq4qlNtQ.mjs} +1 -1
- package/dist/client/{shopShared-BWPUURvG.mjs → shopShared-DYGzEs9D.mjs} +3 -3
- package/dist/client/{useEventFilters-DRhWp2_5.mjs → useEventFilters-Bphkda8m.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-Ca5RD78X.mjs → sdk-runtime-BbIC8G4J.mjs} +2 -2
- package/dist/{separator-CMhj6BTi.mjs → separator-CadhAtI7.mjs} +1 -1
- package/dist/server/components.mjs +558 -2962
- package/dist/server/config-validation.mjs +459 -714
- package/dist/server/config.mjs +459 -714
- package/dist/server/data.mjs +459 -714
- package/dist/server/index.mjs +41 -162
- package/dist/server/next.mjs +572 -2976
- package/dist/server/page-converter.mjs +360 -582
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +569 -2879
- package/dist/server/rendering.mjs +558 -2962
- package/dist/server/routing.mjs +603 -1087
- package/dist/server/server.mjs +473 -728
- package/dist/server/theme-bridge.mjs +41 -1524
- package/dist/styles/index.css +41 -1348
- package/package.json +1 -1
- 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 -135
- 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 -46
- 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 -325
- 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/BookingConsentAgreement-BxgpGEFD.mjs +0 -160
- package/dist/client/WholeSeriesRegistrationWizard-DwtC7bCs.mjs +0 -2546
- package/dist/client/courseRegistration-A-Tg7qw_.mjs +0 -52
- package/dist/client/pricing-Caa0QWzh.mjs +0 -195
package/dist/client/hooks.mjs
CHANGED
|
@@ -755,69 +755,8 @@ const ACCOUNT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
755
755
|
}
|
|
756
756
|
});
|
|
757
757
|
//#endregion
|
|
758
|
-
//#region ../api/src/
|
|
759
|
-
const
|
|
760
|
-
listCourses: {
|
|
761
|
-
path: "/sites/{siteId}/bookings/courses",
|
|
762
|
-
method: "GET",
|
|
763
|
-
auth: "user",
|
|
764
|
-
responseKind: "json"
|
|
765
|
-
},
|
|
766
|
-
exportCoursesCsv: {
|
|
767
|
-
path: "/sites/{siteId}/bookings/courses/export.csv",
|
|
768
|
-
method: "GET",
|
|
769
|
-
tags: [
|
|
770
|
-
"site-{siteId}",
|
|
771
|
-
"bookings",
|
|
772
|
-
"courses-{siteId}"
|
|
773
|
-
],
|
|
774
|
-
errors: [],
|
|
775
|
-
auth: "user",
|
|
776
|
-
responseKind: "blob"
|
|
777
|
-
},
|
|
778
|
-
createCourse: {
|
|
779
|
-
path: "/sites/{siteId}/bookings/courses",
|
|
780
|
-
method: "POST",
|
|
781
|
-
auth: "user",
|
|
782
|
-
responseKind: "json",
|
|
783
|
-
errors: [
|
|
784
|
-
"validation:invalid_input",
|
|
785
|
-
"resource:not_found",
|
|
786
|
-
"resource:already_exists",
|
|
787
|
-
"resource:conflict",
|
|
788
|
-
"server:internal_error"
|
|
789
|
-
]
|
|
790
|
-
},
|
|
791
|
-
getCourse: {
|
|
792
|
-
path: "/sites/{siteId}/bookings/courses/{courseId}",
|
|
793
|
-
method: "GET",
|
|
794
|
-
auth: "user",
|
|
795
|
-
responseKind: "json"
|
|
796
|
-
},
|
|
797
|
-
updateCourse: {
|
|
798
|
-
path: "/sites/{siteId}/bookings/courses/{courseId}",
|
|
799
|
-
method: "PATCH",
|
|
800
|
-
auth: "user",
|
|
801
|
-
responseKind: "json",
|
|
802
|
-
errors: [
|
|
803
|
-
"validation:invalid_input",
|
|
804
|
-
"resource:not_found",
|
|
805
|
-
"resource:conflict",
|
|
806
|
-
"server:internal_error"
|
|
807
|
-
]
|
|
808
|
-
},
|
|
809
|
-
deleteCourse: {
|
|
810
|
-
path: "/sites/{siteId}/bookings/courses/{courseId}",
|
|
811
|
-
method: "DELETE",
|
|
812
|
-
auth: "user",
|
|
813
|
-
responseKind: "json",
|
|
814
|
-
errors: [
|
|
815
|
-
"validation:invalid_input",
|
|
816
|
-
"resource:not_found",
|
|
817
|
-
"resource:conflict",
|
|
818
|
-
"server:internal_error"
|
|
819
|
-
]
|
|
820
|
-
},
|
|
758
|
+
//#region ../api/src/eventSeriesRegistrationEndpointDefinitions.ts
|
|
759
|
+
const EVENT_SERIES_REGISTRATION_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
821
760
|
deleteEventOffering: {
|
|
822
761
|
path: "/sites/{siteId}/bookings/event-offerings/{eventOfferingId}",
|
|
823
762
|
method: "DELETE",
|
|
@@ -830,20 +769,8 @@ const COURSE_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
830
769
|
"server:internal_error"
|
|
831
770
|
]
|
|
832
771
|
},
|
|
833
|
-
|
|
834
|
-
path: "/sites/{siteId}/bookings/
|
|
835
|
-
method: "POST",
|
|
836
|
-
auth: "user",
|
|
837
|
-
responseKind: "json",
|
|
838
|
-
errors: [
|
|
839
|
-
"validation:invalid_input",
|
|
840
|
-
"resource:not_found",
|
|
841
|
-
"resource:already_exists",
|
|
842
|
-
"server:internal_error"
|
|
843
|
-
]
|
|
844
|
-
},
|
|
845
|
-
changeCourseContentOwnership: {
|
|
846
|
-
path: "/sites/{siteId}/bookings/courses/{courseId}/content-ownership",
|
|
772
|
+
changeEventSeriesContentOwnership: {
|
|
773
|
+
path: "/sites/{siteId}/bookings/event-series/{seriesId}/content-ownership",
|
|
847
774
|
method: "POST",
|
|
848
775
|
auth: "user",
|
|
849
776
|
responseKind: "json",
|
|
@@ -854,8 +781,8 @@ const COURSE_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
854
781
|
"server:internal_error"
|
|
855
782
|
]
|
|
856
783
|
},
|
|
857
|
-
|
|
858
|
-
path: "/sites/{siteId}/bookings/
|
|
784
|
+
addEventSeriesRegistration: {
|
|
785
|
+
path: "/sites/{siteId}/bookings/event-series/{seriesId}/registrations",
|
|
859
786
|
method: "POST",
|
|
860
787
|
auth: "user",
|
|
861
788
|
responseKind: "json",
|
|
@@ -866,33 +793,21 @@ const COURSE_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
866
793
|
"server:internal_error"
|
|
867
794
|
]
|
|
868
795
|
},
|
|
869
|
-
|
|
870
|
-
path: "/sites/{siteId}/bookings/
|
|
796
|
+
listEventSeriesRegistrations: {
|
|
797
|
+
path: "/sites/{siteId}/bookings/event-series/{seriesId}/registrations",
|
|
871
798
|
method: "GET",
|
|
872
799
|
auth: "user",
|
|
873
800
|
responseKind: "json"
|
|
874
801
|
},
|
|
875
|
-
|
|
876
|
-
path: "/sites/{siteId}/bookings/
|
|
802
|
+
exportEventSeriesRegistrationsCsv: {
|
|
803
|
+
path: "/sites/{siteId}/bookings/event-series/{seriesId}/registrations/export.csv",
|
|
877
804
|
method: "GET",
|
|
878
805
|
auth: "user",
|
|
879
806
|
errors: [],
|
|
880
807
|
responseKind: "blob"
|
|
881
808
|
},
|
|
882
|
-
|
|
883
|
-
path: "/sites/{siteId}/bookings/
|
|
884
|
-
method: "GET",
|
|
885
|
-
tags: [
|
|
886
|
-
"site-{siteId}",
|
|
887
|
-
"bookings",
|
|
888
|
-
"courses-{courseId}"
|
|
889
|
-
],
|
|
890
|
-
auth: "user",
|
|
891
|
-
responseKind: "blob",
|
|
892
|
-
errors: []
|
|
893
|
-
},
|
|
894
|
-
updateCourseEnrollment: {
|
|
895
|
-
path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments/{enrollmentId}",
|
|
809
|
+
updateEventSeriesRegistration: {
|
|
810
|
+
path: "/sites/{siteId}/bookings/event-series/{seriesId}/registrations/{registrationId}",
|
|
896
811
|
method: "PATCH",
|
|
897
812
|
auth: "user",
|
|
898
813
|
responseKind: "json",
|
|
@@ -1280,71 +1195,35 @@ const PUBLIC_WHOLE_SERIES_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
1280
1195
|
errors: ["resource:not_found", "server:internal_error"],
|
|
1281
1196
|
auth: "public",
|
|
1282
1197
|
responseKind: "json"
|
|
1283
|
-
}
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
"auth:forbidden",
|
|
1291
|
-
"validation:invalid_input",
|
|
1292
|
-
"resource:not_found",
|
|
1293
|
-
"resource:conflict",
|
|
1294
|
-
"resource:already_exists",
|
|
1295
|
-
"server:internal_error"
|
|
1296
|
-
],
|
|
1297
|
-
auth: "public",
|
|
1298
|
-
responseKind: "json"
|
|
1299
|
-
},
|
|
1300
|
-
checkWholeSeriesEligibility: {
|
|
1301
|
-
path: "/public/sites/{siteId}/dated-offerings/whole-series/check-eligibility",
|
|
1302
|
-
method: "POST",
|
|
1303
|
-
tags: [TAG_TEMPLATES.publicWholeSeriesOfferings, "course-enrollment"],
|
|
1304
|
-
errors: [
|
|
1305
|
-
"auth:unauthenticated",
|
|
1306
|
-
"resource:not_found",
|
|
1307
|
-
"resource:conflict",
|
|
1308
|
-
"server:internal_error"
|
|
1309
|
-
],
|
|
1310
|
-
auth: "public",
|
|
1311
|
-
responseKind: "json"
|
|
1312
|
-
},
|
|
1313
|
-
createWholeSeriesCheckout: {
|
|
1314
|
-
path: "/public/sites/{siteId}/dated-offerings/whole-series/checkout",
|
|
1198
|
+
}
|
|
1199
|
+
});
|
|
1200
|
+
//#endregion
|
|
1201
|
+
//#region ../api/src/publicEventEndpointDefinitions.ts
|
|
1202
|
+
const PUBLIC_EVENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
1203
|
+
getPublicEventRegistrationOptions: {
|
|
1204
|
+
path: "/public/sites/{siteId}/events/registration-options",
|
|
1315
1205
|
method: "POST",
|
|
1316
|
-
tags: [TAG_TEMPLATES.
|
|
1206
|
+
tags: [TAG_TEMPLATES.publicEvents, "event-registration-options"],
|
|
1317
1207
|
auth: "public",
|
|
1318
1208
|
responseKind: "json",
|
|
1319
1209
|
errors: [
|
|
1320
|
-
"auth:unauthenticated",
|
|
1321
1210
|
"validation:invalid_input",
|
|
1322
1211
|
"resource:not_found",
|
|
1323
1212
|
"resource:conflict",
|
|
1324
1213
|
"server:internal_error"
|
|
1325
1214
|
]
|
|
1326
1215
|
},
|
|
1327
|
-
|
|
1328
|
-
path: "/public/sites/{siteId}/
|
|
1216
|
+
resolveEventSubroute: {
|
|
1217
|
+
path: "/public/sites/{siteId}/events/subroutes/resolve",
|
|
1329
1218
|
method: "GET",
|
|
1330
|
-
|
|
1331
|
-
|
|
1219
|
+
revalidate: 60,
|
|
1220
|
+
tags: [TAG_TEMPLATES.publicEvents, "event-subroute"],
|
|
1332
1221
|
auth: "public",
|
|
1333
|
-
responseKind: "json"
|
|
1222
|
+
responseKind: "json",
|
|
1223
|
+
errors: []
|
|
1334
1224
|
}
|
|
1335
1225
|
});
|
|
1336
1226
|
//#endregion
|
|
1337
|
-
//#region ../api/src/publicEventEndpointDefinitions.ts
|
|
1338
|
-
const PUBLIC_EVENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({ resolveEventSubroute: {
|
|
1339
|
-
path: "/public/sites/{siteId}/events/subroutes/resolve",
|
|
1340
|
-
method: "GET",
|
|
1341
|
-
revalidate: 60,
|
|
1342
|
-
tags: [TAG_TEMPLATES.publicEvents, "event-subroute"],
|
|
1343
|
-
auth: "public",
|
|
1344
|
-
responseKind: "json",
|
|
1345
|
-
errors: []
|
|
1346
|
-
} });
|
|
1347
|
-
//#endregion
|
|
1348
1227
|
//#region ../api/src/siteApiKeyEndpointDefinitions.ts
|
|
1349
1228
|
const SITE_API_KEY_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
1350
1229
|
listSiteApiKeys: {
|
|
@@ -1712,7 +1591,7 @@ const SDK_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
1712
1591
|
}), 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, {
|
|
1713
1592
|
...NEWSLETTER_ENDPOINT_DEFINITIONS,
|
|
1714
1593
|
...APPOINTMENT_ENDPOINT_DEFINITIONS,
|
|
1715
|
-
...
|
|
1594
|
+
...EVENT_SERIES_REGISTRATION_ENDPOINT_DEFINITIONS
|
|
1716
1595
|
}, 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 };
|
|
1717
1596
|
z.object({ refreshToken: z.string().min(1).max(4096) }).strict();
|
|
1718
1597
|
z.object({
|
|
@@ -1888,14 +1767,14 @@ function publicEventPricingType(pricing) {
|
|
|
1888
1767
|
case "single_paid":
|
|
1889
1768
|
case "ticket_types":
|
|
1890
1769
|
case "sliding_scale":
|
|
1891
|
-
case "
|
|
1770
|
+
case "whole_series": return isFreePublicEventPriceDisplay(pricing.display) ? "free" : "paid";
|
|
1892
1771
|
case "external": return "external";
|
|
1893
1772
|
}
|
|
1894
1773
|
}
|
|
1895
1774
|
function isFreePublicEventPriceDisplay(display) {
|
|
1896
1775
|
switch (display.kind) {
|
|
1897
1776
|
case "free": return true;
|
|
1898
|
-
case "
|
|
1777
|
+
case "whole_series": return display.display.kind === "free";
|
|
1899
1778
|
case "exact":
|
|
1900
1779
|
case "from":
|
|
1901
1780
|
case "range":
|
|
@@ -2184,6 +2063,25 @@ function parseManagementKey(raw) {
|
|
|
2184
2063
|
return ok(createSecretInternal("management-key", raw));
|
|
2185
2064
|
}
|
|
2186
2065
|
//#endregion
|
|
2066
|
+
//#region ../core/src/planner.ts
|
|
2067
|
+
/** Default clock for production callers that do not inject time explicitly. */
|
|
2068
|
+
const systemPlanningClock = { now: () => Date.now() };
|
|
2069
|
+
/** Resolve current time as a Date from an explicit Date, injected clock, or system clock. */
|
|
2070
|
+
function resolvePlanningNowDate(input = {}) {
|
|
2071
|
+
if (input.now !== void 0) return input.now;
|
|
2072
|
+
return new Date((input.clock ?? systemPlanningClock).now());
|
|
2073
|
+
}
|
|
2074
|
+
/**
|
|
2075
|
+
* Resolve a Date-compatible planner input.
|
|
2076
|
+
*
|
|
2077
|
+
* Precedence: bare Date, `{ now }`, `{ clock }`, then `systemPlanningClock`.
|
|
2078
|
+
* Explicit Date inputs are returned by reference, not cloned.
|
|
2079
|
+
*/
|
|
2080
|
+
function resolvePlanningDateInput(input = {}) {
|
|
2081
|
+
if (input instanceof Date) return input;
|
|
2082
|
+
return resolvePlanningNowDate(input);
|
|
2083
|
+
}
|
|
2084
|
+
//#endregion
|
|
2187
2085
|
//#region ../core/src/event-series-behaviour.ts
|
|
2188
2086
|
const SURFACE_EVENT_PRESET_VALUES = [
|
|
2189
2087
|
"class",
|
|
@@ -10642,7 +10540,7 @@ defineBlockAppearancePreset({
|
|
|
10642
10540
|
id: "schedule-details-brand-depth",
|
|
10643
10541
|
target: "events",
|
|
10644
10542
|
label: "Brand-depth schedule details",
|
|
10645
|
-
blockKinds: ["block.event-details"
|
|
10543
|
+
blockKinds: ["block.event-details"],
|
|
10646
10544
|
design: {
|
|
10647
10545
|
sectionSurface: "brand-depth-band",
|
|
10648
10546
|
contentFrame: plainFrame,
|
|
@@ -16824,7 +16722,6 @@ const productDetail = (props, children, ...mods) => el("product-detail", props,
|
|
|
16824
16722
|
const cart = (props, children, ...mods) => el("cart", props, children, ...mods);
|
|
16825
16723
|
const checkout = (props, children, ...mods) => el("checkout", props, children, ...mods);
|
|
16826
16724
|
const gifting = (props, children, ...mods) => el("gifting", props, children, ...mods);
|
|
16827
|
-
const courseRegistration = (props, children, ...mods) => el("course-registration", props, children, ...mods);
|
|
16828
16725
|
function bind(from, options) {
|
|
16829
16726
|
return (node) => ({
|
|
16830
16727
|
...node,
|
|
@@ -26480,12 +26377,12 @@ const RichTextDocSchema = z.object({
|
|
|
26480
26377
|
}).strict();
|
|
26481
26378
|
//#endregion
|
|
26482
26379
|
//#region ../blocks/src/system/blocks/shared/bookingPaymentTerms.ts
|
|
26483
|
-
const bookingDepositRefundPolicySchema = z.enum(["refundable", "non_refundable"]);
|
|
26484
|
-
const bookingInstalmentPlanSchema = z.union([
|
|
26380
|
+
const bookingDepositRefundPolicySchema$1 = z.enum(["refundable", "non_refundable"]);
|
|
26381
|
+
const bookingInstalmentPlanSchema$1 = z.union([
|
|
26485
26382
|
z.object({
|
|
26486
26383
|
kind: z.literal("deposit_plus_one_remainder"),
|
|
26487
26384
|
depositAmountCents: z.number().int().min(0),
|
|
26488
|
-
depositRefundability: bookingDepositRefundPolicySchema,
|
|
26385
|
+
depositRefundability: bookingDepositRefundPolicySchema$1,
|
|
26489
26386
|
remainderDueCount: z.number().int().positive(),
|
|
26490
26387
|
intervalUnit: z.enum([
|
|
26491
26388
|
"day",
|
|
@@ -26496,7 +26393,7 @@ const bookingInstalmentPlanSchema = z.union([
|
|
|
26496
26393
|
z.object({
|
|
26497
26394
|
kind: z.literal("deposit_plus_scheduled_instalments"),
|
|
26498
26395
|
depositAmountCents: z.number().int().min(0),
|
|
26499
|
-
depositRefundability: bookingDepositRefundPolicySchema,
|
|
26396
|
+
depositRefundability: bookingDepositRefundPolicySchema$1,
|
|
26500
26397
|
instalmentCount: z.number().int().positive(),
|
|
26501
26398
|
intervalCount: z.number().int().positive(),
|
|
26502
26399
|
intervalUnit: z.enum([
|
|
@@ -26516,28 +26413,28 @@ const bookingInstalmentPlanSchema = z.union([
|
|
|
26516
26413
|
])
|
|
26517
26414
|
})
|
|
26518
26415
|
]);
|
|
26519
|
-
const bookingFlexibleBalanceDueDateRuleSchema = z.union([z.object({
|
|
26416
|
+
const bookingFlexibleBalanceDueDateRuleSchema$1 = z.union([z.object({
|
|
26520
26417
|
kind: z.literal("relative_to_start_date"),
|
|
26521
26418
|
daysBeforeStart: z.number().int().positive()
|
|
26522
26419
|
}), z.object({
|
|
26523
26420
|
kind: z.literal("fixed_calendar_date"),
|
|
26524
26421
|
dueAt: z.string().datetime()
|
|
26525
26422
|
})]);
|
|
26526
|
-
const bookingFlexibleBalanceConfigSchema = z.object({
|
|
26423
|
+
const bookingFlexibleBalanceConfigSchema$1 = z.object({
|
|
26527
26424
|
upfrontAmountCents: z.number().int().min(0),
|
|
26528
|
-
dueDateRule: bookingFlexibleBalanceDueDateRuleSchema,
|
|
26529
|
-
depositRefundability: bookingDepositRefundPolicySchema
|
|
26425
|
+
dueDateRule: bookingFlexibleBalanceDueDateRuleSchema$1,
|
|
26426
|
+
depositRefundability: bookingDepositRefundPolicySchema$1
|
|
26530
26427
|
});
|
|
26531
26428
|
const blockBookingPaymentCollectionOptionSchema = z.union([
|
|
26532
26429
|
z.object({ kind: z.literal("upfront") }),
|
|
26533
26430
|
z.object({ kind: z.literal("deferred_manual") }),
|
|
26534
26431
|
z.object({
|
|
26535
26432
|
kind: z.literal("instalment_plan"),
|
|
26536
|
-
plan: bookingInstalmentPlanSchema
|
|
26433
|
+
plan: bookingInstalmentPlanSchema$1
|
|
26537
26434
|
}),
|
|
26538
26435
|
z.object({
|
|
26539
26436
|
kind: z.literal("flexible_balance"),
|
|
26540
|
-
config: bookingFlexibleBalanceConfigSchema
|
|
26437
|
+
config: bookingFlexibleBalanceConfigSchema$1
|
|
26541
26438
|
})
|
|
26542
26439
|
]);
|
|
26543
26440
|
const blockBookingPaymentTermsSchema = z.object({ allowedOptions: z.array(blockBookingPaymentCollectionOptionSchema).min(1) });
|
|
@@ -26559,6 +26456,164 @@ const bookingRequirementConsentFieldSchema = z.object({
|
|
|
26559
26456
|
});
|
|
26560
26457
|
z.union([blockBookingConsentSchema, bookingRequirementConsentFieldSchema]);
|
|
26561
26458
|
//#endregion
|
|
26459
|
+
//#region ../blocks/src/system/blocks/events/whole-series/pricing.ts
|
|
26460
|
+
function isSaleWindowOpen(option, now) {
|
|
26461
|
+
if (!option.isActive) return false;
|
|
26462
|
+
if (option.saleStartsAt && new Date(option.saleStartsAt) > now) return false;
|
|
26463
|
+
if (option.saleEndsAt && new Date(option.saleEndsAt) < now) return false;
|
|
26464
|
+
return true;
|
|
26465
|
+
}
|
|
26466
|
+
function toExactOrFreeDisplay(amount, currency) {
|
|
26467
|
+
if (amount <= 0) return {
|
|
26468
|
+
kind: "free",
|
|
26469
|
+
currency
|
|
26470
|
+
};
|
|
26471
|
+
return {
|
|
26472
|
+
kind: "exact",
|
|
26473
|
+
amount,
|
|
26474
|
+
currency
|
|
26475
|
+
};
|
|
26476
|
+
}
|
|
26477
|
+
function getSelectableWholeSeriesPricingOptionsForNow(offering, now) {
|
|
26478
|
+
if (offering.pricing.pricingStrategy !== "tiered") return [];
|
|
26479
|
+
return [...offering.pricing.options].filter((option) => isSaleWindowOpen(option, now)).sort((left, right) => {
|
|
26480
|
+
if (left.sortOrder !== right.sortOrder) return left.sortOrder - right.sortOrder;
|
|
26481
|
+
if (left.priceAmount !== right.priceAmount) return left.priceAmount - right.priceAmount;
|
|
26482
|
+
return left.name.localeCompare(right.name);
|
|
26483
|
+
});
|
|
26484
|
+
}
|
|
26485
|
+
function resolveWholeSeriesPricingState(offering, selectedPricingOptionId, selectedSlidingAmountOrNowInput, nowInput = {}) {
|
|
26486
|
+
const selection = normalizePricingSelectionInput(selectedSlidingAmountOrNowInput, nowInput);
|
|
26487
|
+
const currency = offering.pricing.currency;
|
|
26488
|
+
switch (offering.pricing.pricingStrategy) {
|
|
26489
|
+
case "free": return resolveFreePricing(currency);
|
|
26490
|
+
case "single": return resolveSinglePricing(offering.pricing.singlePriceAmount ?? 0, currency);
|
|
26491
|
+
case "tiered": return resolveTieredPricing(offering, selectedPricingOptionId, selection.nowInput);
|
|
26492
|
+
case "sliding_scale": return resolveSlidingScalePricing(offering, selection.selectedSlidingAmount);
|
|
26493
|
+
}
|
|
26494
|
+
}
|
|
26495
|
+
function normalizePricingSelectionInput(selectedSlidingAmountOrNowInput, nowInput) {
|
|
26496
|
+
return typeof selectedSlidingAmountOrNowInput === "object" && selectedSlidingAmountOrNowInput !== null ? {
|
|
26497
|
+
selectedSlidingAmount: null,
|
|
26498
|
+
nowInput: selectedSlidingAmountOrNowInput
|
|
26499
|
+
} : {
|
|
26500
|
+
selectedSlidingAmount: typeof selectedSlidingAmountOrNowInput === "number" || selectedSlidingAmountOrNowInput === null ? selectedSlidingAmountOrNowInput : null,
|
|
26501
|
+
nowInput
|
|
26502
|
+
};
|
|
26503
|
+
}
|
|
26504
|
+
function resolveFreePricing(currency) {
|
|
26505
|
+
return {
|
|
26506
|
+
currency,
|
|
26507
|
+
display: {
|
|
26508
|
+
kind: "free",
|
|
26509
|
+
currency
|
|
26510
|
+
},
|
|
26511
|
+
selectableOptions: [],
|
|
26512
|
+
requiresSelection: false,
|
|
26513
|
+
selectedOption: null,
|
|
26514
|
+
slidingScale: null,
|
|
26515
|
+
selectedSlidingAmount: null,
|
|
26516
|
+
selectedPriceAmount: 0,
|
|
26517
|
+
selectedRequiresPayment: false,
|
|
26518
|
+
hasPaidSelection: false,
|
|
26519
|
+
hasFreeSelection: true
|
|
26520
|
+
};
|
|
26521
|
+
}
|
|
26522
|
+
function resolveSinglePricing(amount, currency) {
|
|
26523
|
+
return {
|
|
26524
|
+
currency,
|
|
26525
|
+
display: toExactOrFreeDisplay(amount, currency),
|
|
26526
|
+
selectableOptions: [],
|
|
26527
|
+
requiresSelection: false,
|
|
26528
|
+
selectedOption: null,
|
|
26529
|
+
slidingScale: null,
|
|
26530
|
+
selectedSlidingAmount: null,
|
|
26531
|
+
selectedPriceAmount: amount,
|
|
26532
|
+
selectedRequiresPayment: amount > 0,
|
|
26533
|
+
hasPaidSelection: amount > 0,
|
|
26534
|
+
hasFreeSelection: amount <= 0
|
|
26535
|
+
};
|
|
26536
|
+
}
|
|
26537
|
+
function resolveTieredPricing(offering, selectedPricingOptionId, nowInput) {
|
|
26538
|
+
const currency = offering.pricing.currency;
|
|
26539
|
+
const selectableOptions = getSelectableWholeSeriesPricingOptionsForNow(offering, resolvePlanningDateInput(nowInput));
|
|
26540
|
+
const selectedOption = resolveSelectedTier(selectableOptions, selectedPricingOptionId);
|
|
26541
|
+
return {
|
|
26542
|
+
currency,
|
|
26543
|
+
display: resolveTieredDisplay(selectableOptions.reduce((lowest, option) => lowest === null || option.priceAmount < lowest ? option.priceAmount : lowest, null), selectableOptions.length, currency),
|
|
26544
|
+
selectableOptions,
|
|
26545
|
+
requiresSelection: selectableOptions.length > 1,
|
|
26546
|
+
selectedOption,
|
|
26547
|
+
slidingScale: null,
|
|
26548
|
+
selectedSlidingAmount: null,
|
|
26549
|
+
selectedPriceAmount: selectedOption?.priceAmount ?? null,
|
|
26550
|
+
selectedRequiresPayment: (selectedOption?.priceAmount ?? 0) > 0,
|
|
26551
|
+
hasPaidSelection: selectableOptions.some((option) => option.priceAmount > 0),
|
|
26552
|
+
hasFreeSelection: selectableOptions.some((option) => option.priceAmount === 0)
|
|
26553
|
+
};
|
|
26554
|
+
}
|
|
26555
|
+
function resolveSelectedTier(options, selectedId) {
|
|
26556
|
+
return (selectedId ? options.find((option) => option.id === selectedId) : null) ?? (options.length === 1 ? options[0] ?? null : null);
|
|
26557
|
+
}
|
|
26558
|
+
function resolveTieredDisplay(lowestAmount, optionCount, currency) {
|
|
26559
|
+
if (lowestAmount === null) return {
|
|
26560
|
+
kind: "unavailable",
|
|
26561
|
+
currency
|
|
26562
|
+
};
|
|
26563
|
+
return optionCount > 1 && lowestAmount > 0 ? {
|
|
26564
|
+
kind: "from",
|
|
26565
|
+
amount: lowestAmount,
|
|
26566
|
+
currency
|
|
26567
|
+
} : toExactOrFreeDisplay(lowestAmount, currency);
|
|
26568
|
+
}
|
|
26569
|
+
function resolveSlidingScalePricing(offering, selectedSlidingAmount) {
|
|
26570
|
+
const currency = offering.pricing.currency;
|
|
26571
|
+
const minAmount = offering.pricing.slidingMinAmount ?? null;
|
|
26572
|
+
const maxAmount = offering.pricing.slidingMaxAmount ?? null;
|
|
26573
|
+
if (minAmount === null || maxAmount === null || minAmount < 0 || maxAmount < minAmount) return unavailableSlidingScale(currency);
|
|
26574
|
+
const selectedAmount = Number.isFinite(selectedSlidingAmount) ? selectedSlidingAmount : null;
|
|
26575
|
+
return {
|
|
26576
|
+
currency,
|
|
26577
|
+
display: {
|
|
26578
|
+
kind: "range",
|
|
26579
|
+
minAmount,
|
|
26580
|
+
maxAmount,
|
|
26581
|
+
currency
|
|
26582
|
+
},
|
|
26583
|
+
selectableOptions: [],
|
|
26584
|
+
requiresSelection: selectedAmount === null,
|
|
26585
|
+
selectedOption: null,
|
|
26586
|
+
slidingScale: {
|
|
26587
|
+
minAmount,
|
|
26588
|
+
maxAmount,
|
|
26589
|
+
suggestedAmount: offering.pricing.slidingSuggestedAmount ?? null
|
|
26590
|
+
},
|
|
26591
|
+
selectedSlidingAmount: selectedAmount,
|
|
26592
|
+
selectedPriceAmount: selectedAmount,
|
|
26593
|
+
selectedRequiresPayment: (selectedAmount ?? 0) > 0,
|
|
26594
|
+
hasPaidSelection: maxAmount > 0,
|
|
26595
|
+
hasFreeSelection: minAmount === 0
|
|
26596
|
+
};
|
|
26597
|
+
}
|
|
26598
|
+
function unavailableSlidingScale(currency) {
|
|
26599
|
+
return {
|
|
26600
|
+
currency,
|
|
26601
|
+
display: {
|
|
26602
|
+
kind: "unavailable",
|
|
26603
|
+
currency
|
|
26604
|
+
},
|
|
26605
|
+
selectableOptions: [],
|
|
26606
|
+
requiresSelection: true,
|
|
26607
|
+
selectedOption: null,
|
|
26608
|
+
slidingScale: null,
|
|
26609
|
+
selectedSlidingAmount: null,
|
|
26610
|
+
selectedPriceAmount: null,
|
|
26611
|
+
selectedRequiresPayment: false,
|
|
26612
|
+
hasPaidSelection: false,
|
|
26613
|
+
hasFreeSelection: false
|
|
26614
|
+
};
|
|
26615
|
+
}
|
|
26616
|
+
//#endregion
|
|
26562
26617
|
//#region ../blocks/src/system/blocks/events/whole-series/schemas.ts
|
|
26563
26618
|
const wholeSeriesVenueSchema = z.object({
|
|
26564
26619
|
id: z.string(),
|
|
@@ -26618,6 +26673,13 @@ const publicWholeSeriesOfferingSchema = z.object({
|
|
|
26618
26673
|
title: z.string(),
|
|
26619
26674
|
slug: z.string(),
|
|
26620
26675
|
description: z.unknown().nullable(),
|
|
26676
|
+
deliveryMode: z.enum([
|
|
26677
|
+
"in_person",
|
|
26678
|
+
"online",
|
|
26679
|
+
"hybrid"
|
|
26680
|
+
]),
|
|
26681
|
+
waitlistEnabled: z.boolean(),
|
|
26682
|
+
requireGuestDetails: z.boolean(),
|
|
26621
26683
|
teamMembers: z.array(wholeSeriesTeamMemberSummarySchema).optional(),
|
|
26622
26684
|
enrollmentOpen: z.boolean(),
|
|
26623
26685
|
pricing: wholeSeriesPricingSchema,
|
|
@@ -26733,10 +26795,11 @@ const mixedPriceDisplaySchema = z.object({
|
|
|
26733
26795
|
paidToAmount: z.number(),
|
|
26734
26796
|
currency: z.string()
|
|
26735
26797
|
});
|
|
26736
|
-
const
|
|
26798
|
+
const publicWholeSeriesPriceDisplaySchema = z.discriminatedUnion("kind", [
|
|
26737
26799
|
freePriceDisplaySchema,
|
|
26738
26800
|
exactPriceDisplaySchema,
|
|
26739
26801
|
fromPriceDisplaySchema,
|
|
26802
|
+
rangePriceDisplaySchema,
|
|
26740
26803
|
unavailablePriceDisplaySchema
|
|
26741
26804
|
]);
|
|
26742
26805
|
z.discriminatedUnion("kind", [
|
|
@@ -26751,8 +26814,8 @@ z.discriminatedUnion("kind", [
|
|
|
26751
26814
|
label: z.string()
|
|
26752
26815
|
}),
|
|
26753
26816
|
z.object({
|
|
26754
|
-
kind: z.literal("
|
|
26755
|
-
display:
|
|
26817
|
+
kind: z.literal("whole_series"),
|
|
26818
|
+
display: publicWholeSeriesPriceDisplaySchema
|
|
26756
26819
|
})
|
|
26757
26820
|
]);
|
|
26758
26821
|
const publicEventTicketTypePriceDisplaySchema = z.union([
|
|
@@ -26854,10 +26917,10 @@ const publicEventPricingSchema = z.discriminatedUnion("kind", [
|
|
|
26854
26917
|
})
|
|
26855
26918
|
}),
|
|
26856
26919
|
z.object({
|
|
26857
|
-
kind: z.literal("
|
|
26920
|
+
kind: z.literal("whole_series"),
|
|
26858
26921
|
display: z.object({
|
|
26859
|
-
kind: z.literal("
|
|
26860
|
-
display:
|
|
26922
|
+
kind: z.literal("whole_series"),
|
|
26923
|
+
display: publicWholeSeriesPriceDisplaySchema
|
|
26861
26924
|
})
|
|
26862
26925
|
}),
|
|
26863
26926
|
z.object({
|
|
@@ -27274,7 +27337,8 @@ function resolveEventRegistrationScope(context) {
|
|
|
27274
27337
|
};
|
|
27275
27338
|
return { kind: "unscoped" };
|
|
27276
27339
|
}
|
|
27277
|
-
function
|
|
27340
|
+
function resolveEventRegistrationScopedEvents(events, context) {
|
|
27341
|
+
const scope = resolveEventRegistrationScope(context);
|
|
27278
27342
|
switch (scope.kind) {
|
|
27279
27343
|
case "occurrenceSeries":
|
|
27280
27344
|
case "pageSurfaceSeries": return events.filter((event) => event.seriesId === scope.seriesId);
|
|
@@ -27286,9 +27350,6 @@ function applyEventRegistrationScope(events, scope) {
|
|
|
27286
27350
|
case "unscoped": return [...events];
|
|
27287
27351
|
}
|
|
27288
27352
|
}
|
|
27289
|
-
function resolveEventRegistrationScopedEvents(events, context) {
|
|
27290
|
-
return applyEventRegistrationScope(events, resolveEventRegistrationScope(context));
|
|
27291
|
-
}
|
|
27292
27353
|
//#endregion
|
|
27293
27354
|
//#region ../blocks/src/system/runtime/nodes/event-registration/registrationSurface.ts
|
|
27294
27355
|
function planEventRegistrationScope(input) {
|
|
@@ -27382,14 +27443,14 @@ function isRecord$6(value) {
|
|
|
27382
27443
|
}
|
|
27383
27444
|
function isPublicEventPricing(value) {
|
|
27384
27445
|
if (!isRecord$6(value) || typeof value.kind !== "string") return false;
|
|
27385
|
-
return value.kind === "drop_in" || value.kind === "free_registration" || value.kind === "single_paid" || value.kind === "sliding_scale" || value.kind === "ticket_types" || value.kind === "
|
|
27446
|
+
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";
|
|
27386
27447
|
}
|
|
27387
27448
|
function isPublicEventTicketType(value) {
|
|
27388
27449
|
return isRecord$6(value) && typeof value.id === "string";
|
|
27389
27450
|
}
|
|
27390
27451
|
function readTicketTypePriceDisplay(value, currency) {
|
|
27391
27452
|
const display = readLegacyPriceDisplay(value, currency);
|
|
27392
|
-
return display.kind === "
|
|
27453
|
+
return display.kind === "whole_series" || display.kind === "external" ? {
|
|
27393
27454
|
kind: "unavailable",
|
|
27394
27455
|
currency
|
|
27395
27456
|
} : display;
|
|
@@ -27447,11 +27508,11 @@ function readLegacyPriceDisplay(value, currency) {
|
|
|
27447
27508
|
kind: "unavailable",
|
|
27448
27509
|
currency: displayCurrency
|
|
27449
27510
|
};
|
|
27450
|
-
case "
|
|
27451
|
-
kind: "
|
|
27511
|
+
case "whole_series": return isRecord$6(value.display) ? {
|
|
27512
|
+
kind: "whole_series",
|
|
27452
27513
|
display: readCoursePriceDisplay(value.display, displayCurrency)
|
|
27453
27514
|
} : {
|
|
27454
|
-
kind: "
|
|
27515
|
+
kind: "whole_series",
|
|
27455
27516
|
display: {
|
|
27456
27517
|
kind: "unavailable",
|
|
27457
27518
|
currency: displayCurrency
|
|
@@ -27577,7 +27638,7 @@ function getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep) {
|
|
|
27577
27638
|
//#endregion
|
|
27578
27639
|
//#region ../blocks/src/system/runtime/nodes/event-registration/registrationDerivations.ts
|
|
27579
27640
|
function eventMatchesOccurrenceId(event, occurrenceId) {
|
|
27580
|
-
return event.
|
|
27641
|
+
return event.registrationSubject.kind === "occurrence" && (event.registrationSubject.occurrenceId === occurrenceId || event.selectionId === occurrenceId);
|
|
27581
27642
|
}
|
|
27582
27643
|
function findPreSelectedEvent(input) {
|
|
27583
27644
|
const occurrenceContext = input.occurrenceContext;
|
|
@@ -27603,12 +27664,127 @@ function toRegistrationEvent(event) {
|
|
|
27603
27664
|
return {
|
|
27604
27665
|
...event,
|
|
27605
27666
|
pricing: resolveRuntimeEventPricing(event),
|
|
27606
|
-
|
|
27607
|
-
|
|
27667
|
+
selectionId: event.id,
|
|
27668
|
+
registrationSubject: {
|
|
27669
|
+
kind: "occurrence",
|
|
27670
|
+
occurrenceId: event.occurrenceId
|
|
27671
|
+
}
|
|
27608
27672
|
};
|
|
27609
27673
|
}
|
|
27610
27674
|
function toRegistrationEvents(events) {
|
|
27611
|
-
return events.map(toRegistrationEvent);
|
|
27675
|
+
return events.filter((event) => event.bookingScope === "single_occurrence").map(toRegistrationEvent);
|
|
27676
|
+
}
|
|
27677
|
+
function toWholeSeriesTicketType(option) {
|
|
27678
|
+
return {
|
|
27679
|
+
...option,
|
|
27680
|
+
capacityMode: option.capacityLimit === null ? "unlimited" : "limited",
|
|
27681
|
+
attendanceScope: option.attendanceScope ?? void 0,
|
|
27682
|
+
availability: {
|
|
27683
|
+
kind: "available",
|
|
27684
|
+
remainingCapacity: option.capacityLimit
|
|
27685
|
+
}
|
|
27686
|
+
};
|
|
27687
|
+
}
|
|
27688
|
+
function toWholeSeriesPricing(offering) {
|
|
27689
|
+
const resolved = resolveWholeSeriesPricingState(offering);
|
|
27690
|
+
switch (offering.pricing.pricingStrategy) {
|
|
27691
|
+
case "free": return {
|
|
27692
|
+
kind: "free_registration",
|
|
27693
|
+
currency: offering.currency,
|
|
27694
|
+
display: {
|
|
27695
|
+
kind: "free",
|
|
27696
|
+
currency: offering.currency
|
|
27697
|
+
}
|
|
27698
|
+
};
|
|
27699
|
+
case "single": {
|
|
27700
|
+
const amount = offering.pricing.singlePriceAmount ?? 0;
|
|
27701
|
+
return amount === 0 ? {
|
|
27702
|
+
kind: "free_registration",
|
|
27703
|
+
currency: offering.currency,
|
|
27704
|
+
display: {
|
|
27705
|
+
kind: "free",
|
|
27706
|
+
currency: offering.currency
|
|
27707
|
+
}
|
|
27708
|
+
} : {
|
|
27709
|
+
kind: "single_paid",
|
|
27710
|
+
amount,
|
|
27711
|
+
currency: offering.currency,
|
|
27712
|
+
display: {
|
|
27713
|
+
kind: "exact",
|
|
27714
|
+
amount,
|
|
27715
|
+
currency: offering.currency
|
|
27716
|
+
}
|
|
27717
|
+
};
|
|
27718
|
+
}
|
|
27719
|
+
case "tiered": return {
|
|
27720
|
+
kind: "ticket_types",
|
|
27721
|
+
currency: offering.currency,
|
|
27722
|
+
ticketTypes: resolved.selectableOptions.map((option) => toWholeSeriesTicketType(option)),
|
|
27723
|
+
display: resolved.display
|
|
27724
|
+
};
|
|
27725
|
+
case "sliding_scale": return {
|
|
27726
|
+
kind: "sliding_scale",
|
|
27727
|
+
minAmount: offering.pricing.slidingMinAmount ?? 0,
|
|
27728
|
+
maxAmount: offering.pricing.slidingMaxAmount ?? 0,
|
|
27729
|
+
suggestedAmount: offering.pricing.slidingSuggestedAmount ?? null,
|
|
27730
|
+
currency: offering.currency,
|
|
27731
|
+
display: {
|
|
27732
|
+
kind: "range",
|
|
27733
|
+
minAmount: offering.pricing.slidingMinAmount ?? 0,
|
|
27734
|
+
maxAmount: offering.pricing.slidingMaxAmount ?? 0,
|
|
27735
|
+
currency: offering.currency
|
|
27736
|
+
}
|
|
27737
|
+
};
|
|
27738
|
+
}
|
|
27739
|
+
}
|
|
27740
|
+
function toAttendanceModes(offering) {
|
|
27741
|
+
return (offering.deliveryMode === "hybrid" ? ["in_person", "online"] : [offering.deliveryMode]).map((mode) => ({
|
|
27742
|
+
mode,
|
|
27743
|
+
capacity: offering.enrollmentCapacity,
|
|
27744
|
+
registeredCount: offering.enrolledCount,
|
|
27745
|
+
availableSpots: offering.availableSpots,
|
|
27746
|
+
waitlistEnabled: offering.waitlistEnabled
|
|
27747
|
+
}));
|
|
27748
|
+
}
|
|
27749
|
+
function toWholeSeriesRegistrationEvent(offering) {
|
|
27750
|
+
const firstSession = offering.sessions[0];
|
|
27751
|
+
const lastSession = offering.sessions[offering.sessions.length - 1];
|
|
27752
|
+
return {
|
|
27753
|
+
selectionId: offering.eventSeriesId,
|
|
27754
|
+
registrationSubject: {
|
|
27755
|
+
kind: "wholeSeries",
|
|
27756
|
+
eventSeriesId: offering.eventSeriesId,
|
|
27757
|
+
sessions: offering.sessions
|
|
27758
|
+
},
|
|
27759
|
+
seriesId: offering.eventSeriesId,
|
|
27760
|
+
title: offering.title,
|
|
27761
|
+
startsAt: firstSession?.startsAt ?? "",
|
|
27762
|
+
endsAt: lastSession?.endsAt ?? firstSession?.endsAt ?? "",
|
|
27763
|
+
bookingAvailability: offering.enrollmentOpen ? { kind: "open" } : {
|
|
27764
|
+
kind: "closed",
|
|
27765
|
+
reason: "enrollment_closed"
|
|
27766
|
+
},
|
|
27767
|
+
deliveryMode: offering.deliveryMode,
|
|
27768
|
+
attendanceModes: toAttendanceModes(offering),
|
|
27769
|
+
capacity: offering.enrollmentCapacity,
|
|
27770
|
+
registeredCount: offering.enrolledCount,
|
|
27771
|
+
availableSpots: offering.availableSpots,
|
|
27772
|
+
waitlistEnabled: offering.waitlistEnabled,
|
|
27773
|
+
venue: offering.venue ? {
|
|
27774
|
+
...offering.venue,
|
|
27775
|
+
location: null
|
|
27776
|
+
} : null,
|
|
27777
|
+
eventCategory: null,
|
|
27778
|
+
teamMembers: offering.teamMembers,
|
|
27779
|
+
status: offering.status,
|
|
27780
|
+
timeZone: firstSession?.timeZone ?? "UTC",
|
|
27781
|
+
pricing: toWholeSeriesPricing(offering),
|
|
27782
|
+
paymentTerms: offering.paymentTerms,
|
|
27783
|
+
consent: offering.consent,
|
|
27784
|
+
requireGuestDetails: offering.requireGuestDetails,
|
|
27785
|
+
acceptsPasses: false,
|
|
27786
|
+
acceptsMemberships: offering.acceptsMemberships
|
|
27787
|
+
};
|
|
27612
27788
|
}
|
|
27613
27789
|
//#endregion
|
|
27614
27790
|
//#region ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
|
|
@@ -27634,11 +27810,7 @@ const eventRegistrationHydrationSchemaShape = {
|
|
|
27634
27810
|
maxTickets: z.string().optional(),
|
|
27635
27811
|
showVenue: z.boolean().optional(),
|
|
27636
27812
|
showCapacity: z.boolean().optional(),
|
|
27637
|
-
showSessions: z.boolean().optional(),
|
|
27638
|
-
showPrice: z.boolean().optional(),
|
|
27639
27813
|
successMessage: z.string().optional(),
|
|
27640
|
-
waitlistMessage: z.string().optional(),
|
|
27641
|
-
membershipMessage: z.string().optional(),
|
|
27642
27814
|
buttonVariant: registrationButtonVariantSchema.optional(),
|
|
27643
27815
|
overlayEnabled: z.boolean().optional(),
|
|
27644
27816
|
spamProtectionEnabled: z.boolean().optional(),
|
|
@@ -27708,6 +27880,15 @@ function resolveWholeSeriesOffering(source) {
|
|
|
27708
27880
|
return source.wholeSeriesOffering ?? source.subjectWholeSeriesOffering ?? null;
|
|
27709
27881
|
}
|
|
27710
27882
|
function buildEventRegistrationShellStepLabels(source) {
|
|
27883
|
+
const selectedOffering = resolveWholeSeriesOffering(source);
|
|
27884
|
+
if (selectedOffering) {
|
|
27885
|
+
const selectedEvent = toWholeSeriesRegistrationEvent(selectedOffering);
|
|
27886
|
+
return getWizardStepsForContext(true, resolveEventRequiresPayment({
|
|
27887
|
+
eligibility: null,
|
|
27888
|
+
selectedTicketType: null,
|
|
27889
|
+
event: selectedEvent
|
|
27890
|
+
})).map((step) => shellLabelForRegistrationStep(step, [selectedEvent]));
|
|
27891
|
+
}
|
|
27711
27892
|
const scopedEvents = scopeEventRegistrationEvents(source);
|
|
27712
27893
|
if (scopedEvents.length === 0) return EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS;
|
|
27713
27894
|
const preSelectedEvent = findPreSelectedEvent({
|
|
@@ -27722,13 +27903,16 @@ function buildEventRegistrationShellStepLabels(source) {
|
|
|
27722
27903
|
}) : false).map((step) => shellLabelForRegistrationStep(step, scopedEvents));
|
|
27723
27904
|
}
|
|
27724
27905
|
function scopeEventRegistrationEvents(source) {
|
|
27906
|
+
return toRegistrationEvents(scopeEventRegistrationSourceEvents(source));
|
|
27907
|
+
}
|
|
27908
|
+
function scopeEventRegistrationSourceEvents(source) {
|
|
27725
27909
|
const scope = planEventRegistrationScope({
|
|
27726
|
-
events:
|
|
27910
|
+
events: source.events ?? [],
|
|
27727
27911
|
wholeSeriesOffering: source.wholeSeriesOffering,
|
|
27728
27912
|
occurrenceContext: source.occurrenceContext,
|
|
27729
27913
|
subject: source.subject
|
|
27730
27914
|
});
|
|
27731
|
-
return scope.kind === "invalidSelectedRun" ? [] : scope.events;
|
|
27915
|
+
return scope.kind === "invalidSelectedRun" ? [] : [...scope.events];
|
|
27732
27916
|
}
|
|
27733
27917
|
function shellLabelForRegistrationStep(step, events) {
|
|
27734
27918
|
switch (step) {
|
|
@@ -27760,30 +27944,29 @@ const eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
|
|
|
27760
27944
|
source: createZodCodec(eventRegistrationSourceSchema),
|
|
27761
27945
|
render: createZodCodec(eventRegistrationRenderSchema)
|
|
27762
27946
|
},
|
|
27763
|
-
buildRender: (source) =>
|
|
27764
|
-
|
|
27765
|
-
|
|
27766
|
-
|
|
27767
|
-
|
|
27768
|
-
|
|
27769
|
-
|
|
27770
|
-
|
|
27771
|
-
|
|
27772
|
-
|
|
27773
|
-
|
|
27774
|
-
|
|
27775
|
-
|
|
27776
|
-
|
|
27777
|
-
|
|
27778
|
-
|
|
27779
|
-
|
|
27780
|
-
|
|
27781
|
-
|
|
27782
|
-
|
|
27783
|
-
|
|
27784
|
-
|
|
27785
|
-
|
|
27786
|
-
})
|
|
27947
|
+
buildRender: (source) => {
|
|
27948
|
+
const events = source.events == null ? null : scopeEventRegistrationSourceEvents(source);
|
|
27949
|
+
return {
|
|
27950
|
+
display: buildEventRegistrationDisplay(source),
|
|
27951
|
+
hydration: {
|
|
27952
|
+
occurrenceContext: source.occurrenceContext ?? null,
|
|
27953
|
+
subject: source.subject ?? null,
|
|
27954
|
+
events,
|
|
27955
|
+
wholeSeriesOfferings: source.wholeSeriesOfferings ?? null,
|
|
27956
|
+
wholeSeriesOffering: resolveWholeSeriesOffering(source),
|
|
27957
|
+
maxTickets: source.maxTickets ?? void 0,
|
|
27958
|
+
showVenue: source.showVenue,
|
|
27959
|
+
showCapacity: source.showCapacity,
|
|
27960
|
+
successMessage: source.successMessage,
|
|
27961
|
+
buttonVariant: source.buttonVariant,
|
|
27962
|
+
overlayEnabled: source.overlayEnabled,
|
|
27963
|
+
spamProtectionEnabled: source.spamProtectionEnabled,
|
|
27964
|
+
supportEmail: source.supportEmail,
|
|
27965
|
+
sitePasses: source.sitePasses ?? null,
|
|
27966
|
+
siteMemberships: source.siteMemberships ?? null
|
|
27967
|
+
}
|
|
27968
|
+
};
|
|
27969
|
+
}
|
|
27787
27970
|
});
|
|
27788
27971
|
function normalizeEventRegistrationEventInput(value) {
|
|
27789
27972
|
if (!isRecord$5(value)) return value;
|
|
@@ -27891,24 +28074,6 @@ const eventRegistrationBlockDefinition = {
|
|
|
27891
28074
|
defaultValue: true,
|
|
27892
28075
|
ui: { intent: "display" }
|
|
27893
28076
|
},
|
|
27894
|
-
{
|
|
27895
|
-
id: "showSessions",
|
|
27896
|
-
type: "boolean",
|
|
27897
|
-
label: "Show complete schedule",
|
|
27898
|
-
description: "Display every session for whole-series registrations",
|
|
27899
|
-
required: false,
|
|
27900
|
-
defaultValue: true,
|
|
27901
|
-
ui: { intent: "display" }
|
|
27902
|
-
},
|
|
27903
|
-
{
|
|
27904
|
-
id: "showPrice",
|
|
27905
|
-
type: "boolean",
|
|
27906
|
-
label: "Show price",
|
|
27907
|
-
description: "Display the whole-series price",
|
|
27908
|
-
required: false,
|
|
27909
|
-
defaultValue: true,
|
|
27910
|
-
ui: { intent: "display" }
|
|
27911
|
-
},
|
|
27912
28077
|
{
|
|
27913
28078
|
id: "successMessage",
|
|
27914
28079
|
type: "text",
|
|
@@ -27919,26 +28084,6 @@ const eventRegistrationBlockDefinition = {
|
|
|
27919
28084
|
defaultValue: "Thank you for registering! Check your email for confirmation details.",
|
|
27920
28085
|
maxLength: 500
|
|
27921
28086
|
},
|
|
27922
|
-
{
|
|
27923
|
-
id: "waitlistMessage",
|
|
27924
|
-
type: "text",
|
|
27925
|
-
label: "Waitlist message",
|
|
27926
|
-
description: "Message shown after joining a whole-series waitlist",
|
|
27927
|
-
required: false,
|
|
27928
|
-
multiline: true,
|
|
27929
|
-
defaultValue: "You've been added to the waitlist. We'll email you if a place becomes available.",
|
|
27930
|
-
maxLength: 500
|
|
27931
|
-
},
|
|
27932
|
-
{
|
|
27933
|
-
id: "membershipMessage",
|
|
27934
|
-
type: "text",
|
|
27935
|
-
label: "Membership registration message",
|
|
27936
|
-
description: "Message shown when a whole-series place is covered by membership",
|
|
27937
|
-
required: false,
|
|
27938
|
-
multiline: true,
|
|
27939
|
-
defaultValue: "Registered using your membership. Check your email for session details.",
|
|
27940
|
-
maxLength: 500
|
|
27941
|
-
},
|
|
27942
28087
|
{
|
|
27943
28088
|
id: "buttonText",
|
|
27944
28089
|
type: "text",
|
|
@@ -27970,11 +28115,7 @@ const eventRegistrationBlockDefinition = {
|
|
|
27970
28115
|
} },
|
|
27971
28116
|
showVenue: { $bind: { from: "content.showVenue" } },
|
|
27972
28117
|
showCapacity: { $bind: { from: "content.showCapacity" } },
|
|
27973
|
-
showSessions: { $bind: { from: "content.showSessions" } },
|
|
27974
|
-
showPrice: { $bind: { from: "content.showPrice" } },
|
|
27975
28118
|
successMessage: { $bind: { from: "content.successMessage" } },
|
|
27976
|
-
waitlistMessage: { $bind: { from: "content.waitlistMessage" } },
|
|
27977
|
-
membershipMessage: { $bind: { from: "content.membershipMessage" } },
|
|
27978
28119
|
buttonText: { $bind: {
|
|
27979
28120
|
from: "content.buttonText",
|
|
27980
28121
|
fallback: "Complete Registration"
|
|
@@ -28091,254 +28232,6 @@ const eventRegistrationBlockDefinition = {
|
|
|
28091
28232
|
}
|
|
28092
28233
|
};
|
|
28093
28234
|
//#endregion
|
|
28094
|
-
//#region ../blocks/src/system/runtime/nodes/course-registration.interactive.ts
|
|
28095
|
-
const courseRegistrationHydrationSchemaShape = {
|
|
28096
|
-
subject: eventRegistrationPageSurfaceSubjectSchema.nullable().optional(),
|
|
28097
|
-
courses: z.array(publicWholeSeriesOfferingSchema).nullable().optional(),
|
|
28098
|
-
showSessions: z.boolean().optional(),
|
|
28099
|
-
showPrice: z.boolean().optional(),
|
|
28100
|
-
showCapacity: z.boolean().optional(),
|
|
28101
|
-
showVenue: z.boolean().optional(),
|
|
28102
|
-
successMessage: z.string().optional(),
|
|
28103
|
-
waitlistMessage: z.string().optional(),
|
|
28104
|
-
membershipMessage: z.string().optional(),
|
|
28105
|
-
buttonVariant: registrationButtonVariantSchema.optional()
|
|
28106
|
-
};
|
|
28107
|
-
const courseRegistrationSourceSchema = z.object({
|
|
28108
|
-
siteId: z.string().optional(),
|
|
28109
|
-
apiBaseUrl: z.string().optional(),
|
|
28110
|
-
portalToken: z.string().nullable().optional(),
|
|
28111
|
-
...courseRegistrationHydrationSchemaShape,
|
|
28112
|
-
className: z.string().nullable().optional(),
|
|
28113
|
-
buttonText: z.string().nullable().optional(),
|
|
28114
|
-
stage: previewStageSchema.optional()
|
|
28115
|
-
});
|
|
28116
|
-
const courseRegistrationDisplaySchema = z.object({
|
|
28117
|
-
kind: z.literal("course-registration"),
|
|
28118
|
-
state: z.literal("shell"),
|
|
28119
|
-
className: z.string().nullable(),
|
|
28120
|
-
summaryButtonText: z.string()
|
|
28121
|
-
});
|
|
28122
|
-
const courseRegistrationHydrationSchema = z.object(courseRegistrationHydrationSchemaShape);
|
|
28123
|
-
const courseRegistrationRenderSchema = z.object({
|
|
28124
|
-
display: courseRegistrationDisplaySchema,
|
|
28125
|
-
hydration: courseRegistrationHydrationSchema
|
|
28126
|
-
});
|
|
28127
|
-
z.object({
|
|
28128
|
-
siteId: z.string().optional(),
|
|
28129
|
-
apiBaseUrl: z.string().optional(),
|
|
28130
|
-
portalToken: z.string().nullable().optional(),
|
|
28131
|
-
stage: previewStageSchema.optional()
|
|
28132
|
-
});
|
|
28133
|
-
function buildCourseRegistrationDisplay(source) {
|
|
28134
|
-
return {
|
|
28135
|
-
kind: "course-registration",
|
|
28136
|
-
state: "shell",
|
|
28137
|
-
className: source.className ?? null,
|
|
28138
|
-
summaryButtonText: source.buttonText?.trim() || "Sign up"
|
|
28139
|
-
};
|
|
28140
|
-
}
|
|
28141
|
-
const courseRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
|
|
28142
|
-
kind: "client-owned",
|
|
28143
|
-
contracts: {
|
|
28144
|
-
source: createZodCodec(courseRegistrationSourceSchema),
|
|
28145
|
-
render: createZodCodec(courseRegistrationRenderSchema)
|
|
28146
|
-
},
|
|
28147
|
-
buildRender: (source) => ({
|
|
28148
|
-
display: buildCourseRegistrationDisplay(source),
|
|
28149
|
-
hydration: {
|
|
28150
|
-
subject: source.subject ?? null,
|
|
28151
|
-
courses: source.courses ?? null,
|
|
28152
|
-
showSessions: source.showSessions,
|
|
28153
|
-
showPrice: source.showPrice,
|
|
28154
|
-
showCapacity: source.showCapacity,
|
|
28155
|
-
showVenue: source.showVenue,
|
|
28156
|
-
successMessage: source.successMessage,
|
|
28157
|
-
waitlistMessage: source.waitlistMessage,
|
|
28158
|
-
membershipMessage: source.membershipMessage,
|
|
28159
|
-
buttonVariant: source.buttonVariant
|
|
28160
|
-
}
|
|
28161
|
-
})
|
|
28162
|
-
});
|
|
28163
|
-
const courseRegistrationBlockDefinition = {
|
|
28164
|
-
manifest: createBlockManifest({
|
|
28165
|
-
id: "block.course-registration",
|
|
28166
|
-
version: "1.0.0",
|
|
28167
|
-
title: "Course Registration",
|
|
28168
|
-
titleSource: "heading",
|
|
28169
|
-
description: "Enrollment form for multi-session courses",
|
|
28170
|
-
category: "interactive",
|
|
28171
|
-
contentSource: { kind: "inline" },
|
|
28172
|
-
tags: [
|
|
28173
|
-
"courses",
|
|
28174
|
-
"enrollment",
|
|
28175
|
-
"booking",
|
|
28176
|
-
"form",
|
|
28177
|
-
"signup",
|
|
28178
|
-
"education"
|
|
28179
|
-
],
|
|
28180
|
-
icon: "GraduationCap",
|
|
28181
|
-
styleTokens: {
|
|
28182
|
-
background: "surface",
|
|
28183
|
-
typography: "body",
|
|
28184
|
-
spacing: "md"
|
|
28185
|
-
},
|
|
28186
|
-
behaviours: {
|
|
28187
|
-
supportsThemeSwitching: true,
|
|
28188
|
-
inlineEditing: false,
|
|
28189
|
-
animation: false,
|
|
28190
|
-
paletteHidden: false
|
|
28191
|
-
},
|
|
28192
|
-
additionalFields: [
|
|
28193
|
-
{
|
|
28194
|
-
id: "heading",
|
|
28195
|
-
type: "text",
|
|
28196
|
-
label: "Heading",
|
|
28197
|
-
description: "Main heading for the registration form",
|
|
28198
|
-
required: false,
|
|
28199
|
-
multiline: false,
|
|
28200
|
-
defaultValue: "Sign up"
|
|
28201
|
-
},
|
|
28202
|
-
{
|
|
28203
|
-
id: "description",
|
|
28204
|
-
type: "richText",
|
|
28205
|
-
label: "Description",
|
|
28206
|
-
description: "Optional introductory text",
|
|
28207
|
-
required: false
|
|
28208
|
-
},
|
|
28209
|
-
{
|
|
28210
|
-
id: "showSessions",
|
|
28211
|
-
type: "boolean",
|
|
28212
|
-
label: "Show sessions",
|
|
28213
|
-
description: "Display the list of course sessions",
|
|
28214
|
-
required: false,
|
|
28215
|
-
defaultValue: true,
|
|
28216
|
-
ui: { intent: "display" }
|
|
28217
|
-
},
|
|
28218
|
-
{
|
|
28219
|
-
id: "showPrice",
|
|
28220
|
-
type: "boolean",
|
|
28221
|
-
label: "Show price",
|
|
28222
|
-
description: "Display the course price",
|
|
28223
|
-
required: false,
|
|
28224
|
-
defaultValue: true,
|
|
28225
|
-
ui: { intent: "display" }
|
|
28226
|
-
},
|
|
28227
|
-
{
|
|
28228
|
-
id: "showCapacity",
|
|
28229
|
-
type: "boolean",
|
|
28230
|
-
label: "Show available spots",
|
|
28231
|
-
description: "Display remaining enrollment capacity",
|
|
28232
|
-
required: false,
|
|
28233
|
-
defaultValue: true,
|
|
28234
|
-
ui: { intent: "display" }
|
|
28235
|
-
},
|
|
28236
|
-
{
|
|
28237
|
-
id: "showVenue",
|
|
28238
|
-
type: "boolean",
|
|
28239
|
-
label: "Show venue",
|
|
28240
|
-
description: "Display venue information",
|
|
28241
|
-
required: false,
|
|
28242
|
-
defaultValue: true,
|
|
28243
|
-
ui: { intent: "display" }
|
|
28244
|
-
},
|
|
28245
|
-
{
|
|
28246
|
-
id: "successMessage",
|
|
28247
|
-
type: "text",
|
|
28248
|
-
label: "Success message",
|
|
28249
|
-
description: "Message shown after successful enrollment",
|
|
28250
|
-
required: false,
|
|
28251
|
-
multiline: true,
|
|
28252
|
-
defaultValue: "You're enrolled! Check your email for confirmation and session details.",
|
|
28253
|
-
maxLength: 500
|
|
28254
|
-
},
|
|
28255
|
-
{
|
|
28256
|
-
id: "waitlistMessage",
|
|
28257
|
-
type: "text",
|
|
28258
|
-
label: "Waitlist message",
|
|
28259
|
-
description: "Message when added to waitlist",
|
|
28260
|
-
required: false,
|
|
28261
|
-
multiline: true,
|
|
28262
|
-
defaultValue: "You've been added to the waitlist. We'll email you a claim link if a spot opens up.",
|
|
28263
|
-
maxLength: 500
|
|
28264
|
-
},
|
|
28265
|
-
{
|
|
28266
|
-
id: "membershipMessage",
|
|
28267
|
-
type: "text",
|
|
28268
|
-
label: "Membership enrollment message",
|
|
28269
|
-
description: "Message when enrolled using a membership",
|
|
28270
|
-
required: false,
|
|
28271
|
-
multiline: true,
|
|
28272
|
-
defaultValue: "Enrolled using your membership! Check your email for session details.",
|
|
28273
|
-
maxLength: 500
|
|
28274
|
-
},
|
|
28275
|
-
{
|
|
28276
|
-
id: "buttonText",
|
|
28277
|
-
type: "text",
|
|
28278
|
-
label: "Submit button text",
|
|
28279
|
-
description: "Text for the enrollment submit button",
|
|
28280
|
-
required: false,
|
|
28281
|
-
multiline: false,
|
|
28282
|
-
defaultValue: "Sign up",
|
|
28283
|
-
maxLength: 40
|
|
28284
|
-
},
|
|
28285
|
-
createButtonVariantField()
|
|
28286
|
-
],
|
|
28287
|
-
layout: [styledSection({
|
|
28288
|
-
baseClass: "",
|
|
28289
|
-
spacing: "spacious",
|
|
28290
|
-
children: sectionContainer([
|
|
28291
|
-
text({ as: "h2" }, bind("content.heading"), when("content.heading")),
|
|
28292
|
-
richText({ className: "rb-prose rb-max-w-none" }, bind("content.description"), when("content.description")),
|
|
28293
|
-
courseRegistration(withApiBindings({
|
|
28294
|
-
subject: { $bind: {
|
|
28295
|
-
from: "$root.subject",
|
|
28296
|
-
fallback: null
|
|
28297
|
-
} },
|
|
28298
|
-
portalToken: { $bind: {
|
|
28299
|
-
from: "$root.portalToken",
|
|
28300
|
-
fallback: null
|
|
28301
|
-
} },
|
|
28302
|
-
showSessions: { $bind: { from: "content.showSessions" } },
|
|
28303
|
-
showPrice: { $bind: { from: "content.showPrice" } },
|
|
28304
|
-
showCapacity: { $bind: { from: "content.showCapacity" } },
|
|
28305
|
-
showVenue: { $bind: { from: "content.showVenue" } },
|
|
28306
|
-
successMessage: { $bind: { from: "content.successMessage" } },
|
|
28307
|
-
waitlistMessage: { $bind: { from: "content.waitlistMessage" } },
|
|
28308
|
-
membershipMessage: { $bind: { from: "content.membershipMessage" } },
|
|
28309
|
-
buttonText: { $bind: {
|
|
28310
|
-
from: "content.buttonText",
|
|
28311
|
-
fallback: "Sign up"
|
|
28312
|
-
} },
|
|
28313
|
-
buttonVariant: { $bind: {
|
|
28314
|
-
from: "content.buttonVariant",
|
|
28315
|
-
fallback: "primary"
|
|
28316
|
-
} },
|
|
28317
|
-
courses: { $bind: { from: "data.courses" } },
|
|
28318
|
-
stage: { $bind: {
|
|
28319
|
-
from: "$root.previewStage",
|
|
28320
|
-
fallback: "published"
|
|
28321
|
-
} }
|
|
28322
|
-
}))
|
|
28323
|
-
], { gap: "lg" })
|
|
28324
|
-
})]
|
|
28325
|
-
}),
|
|
28326
|
-
runtime: courseRegistrationBlockRuntime,
|
|
28327
|
-
dataSchemas: { courses: publicWholeSeriesOfferingsArraySchema.optional() },
|
|
28328
|
-
dataLoaders: { courses: {
|
|
28329
|
-
endpoint: "listPublicWholeSeriesOfferings",
|
|
28330
|
-
params: {
|
|
28331
|
-
siteId: { $bind: { from: "$root.siteId" } },
|
|
28332
|
-
limit: "50",
|
|
28333
|
-
stage: { $bind: {
|
|
28334
|
-
from: "$root.previewStage",
|
|
28335
|
-
fallback: "published"
|
|
28336
|
-
} }
|
|
28337
|
-
},
|
|
28338
|
-
mode: "server"
|
|
28339
|
-
} }
|
|
28340
|
-
};
|
|
28341
|
-
//#endregion
|
|
28342
28235
|
//#region ../blocks/src/system/blocks/event-details.ts
|
|
28343
28236
|
/**
|
|
28344
28237
|
* Event Details Block
|
|
@@ -28585,200 +28478,6 @@ const eventDetailsBlockDefinition = {
|
|
|
28585
28478
|
mode: "server"
|
|
28586
28479
|
} }
|
|
28587
28480
|
};
|
|
28588
|
-
const courseDetailsBlockDefinition = {
|
|
28589
|
-
manifest: createBlockManifest({
|
|
28590
|
-
id: "block.course-details",
|
|
28591
|
-
version: "1.0.0",
|
|
28592
|
-
title: "Course Details",
|
|
28593
|
-
titleSource: "heading",
|
|
28594
|
-
description: "Schedule, venue, price, and enrollment status for a course",
|
|
28595
|
-
category: "content",
|
|
28596
|
-
contentSource: { kind: "entries" },
|
|
28597
|
-
tags: [
|
|
28598
|
-
"courses",
|
|
28599
|
-
"schedule",
|
|
28600
|
-
"sessions",
|
|
28601
|
-
"venue",
|
|
28602
|
-
"pricing"
|
|
28603
|
-
],
|
|
28604
|
-
icon: "GraduationCap",
|
|
28605
|
-
styleTokens: {
|
|
28606
|
-
background: "surface",
|
|
28607
|
-
typography: "body",
|
|
28608
|
-
spacing: "md"
|
|
28609
|
-
},
|
|
28610
|
-
behaviours: {
|
|
28611
|
-
supportsThemeSwitching: true,
|
|
28612
|
-
inlineEditing: false,
|
|
28613
|
-
animation: false,
|
|
28614
|
-
paletteHidden: false
|
|
28615
|
-
},
|
|
28616
|
-
additionalFields: [
|
|
28617
|
-
{
|
|
28618
|
-
id: "heading",
|
|
28619
|
-
type: "text",
|
|
28620
|
-
label: "Heading",
|
|
28621
|
-
description: "Optional heading shown above course details",
|
|
28622
|
-
required: false,
|
|
28623
|
-
multiline: false,
|
|
28624
|
-
defaultValue: "Course details"
|
|
28625
|
-
},
|
|
28626
|
-
{
|
|
28627
|
-
id: "showTitle",
|
|
28628
|
-
type: "boolean",
|
|
28629
|
-
label: "Show course title",
|
|
28630
|
-
required: false,
|
|
28631
|
-
defaultValue: false,
|
|
28632
|
-
ui: { intent: "display" }
|
|
28633
|
-
},
|
|
28634
|
-
{
|
|
28635
|
-
id: "showDescription",
|
|
28636
|
-
type: "boolean",
|
|
28637
|
-
label: "Show course description",
|
|
28638
|
-
description: "Render the course description from the bookings course record",
|
|
28639
|
-
required: false,
|
|
28640
|
-
defaultValue: false,
|
|
28641
|
-
ui: { intent: "display" }
|
|
28642
|
-
},
|
|
28643
|
-
{
|
|
28644
|
-
id: "showSessions",
|
|
28645
|
-
type: "boolean",
|
|
28646
|
-
label: "Show sessions",
|
|
28647
|
-
required: false,
|
|
28648
|
-
defaultValue: true,
|
|
28649
|
-
ui: { intent: "display" }
|
|
28650
|
-
},
|
|
28651
|
-
{
|
|
28652
|
-
id: "sessionsLimit",
|
|
28653
|
-
type: "select",
|
|
28654
|
-
label: "Sessions limit",
|
|
28655
|
-
required: false,
|
|
28656
|
-
multiple: false,
|
|
28657
|
-
defaultValue: "10",
|
|
28658
|
-
options: [
|
|
28659
|
-
{
|
|
28660
|
-
value: "3",
|
|
28661
|
-
label: "3 sessions"
|
|
28662
|
-
},
|
|
28663
|
-
{
|
|
28664
|
-
value: "5",
|
|
28665
|
-
label: "5 sessions"
|
|
28666
|
-
},
|
|
28667
|
-
{
|
|
28668
|
-
value: "10",
|
|
28669
|
-
label: "10 sessions"
|
|
28670
|
-
},
|
|
28671
|
-
{
|
|
28672
|
-
value: "all",
|
|
28673
|
-
label: "All sessions"
|
|
28674
|
-
}
|
|
28675
|
-
],
|
|
28676
|
-
ui: { intent: "display" }
|
|
28677
|
-
},
|
|
28678
|
-
{
|
|
28679
|
-
id: "showVenue",
|
|
28680
|
-
type: "boolean",
|
|
28681
|
-
label: "Show venue",
|
|
28682
|
-
required: false,
|
|
28683
|
-
defaultValue: true,
|
|
28684
|
-
ui: { intent: "display" }
|
|
28685
|
-
},
|
|
28686
|
-
{
|
|
28687
|
-
id: "showPrice",
|
|
28688
|
-
type: "boolean",
|
|
28689
|
-
label: "Show price",
|
|
28690
|
-
required: false,
|
|
28691
|
-
defaultValue: true,
|
|
28692
|
-
ui: { intent: "display" }
|
|
28693
|
-
},
|
|
28694
|
-
{
|
|
28695
|
-
id: "showCapacity",
|
|
28696
|
-
type: "boolean",
|
|
28697
|
-
label: "Show capacity",
|
|
28698
|
-
required: false,
|
|
28699
|
-
defaultValue: true,
|
|
28700
|
-
ui: { intent: "display" }
|
|
28701
|
-
},
|
|
28702
|
-
{
|
|
28703
|
-
id: "showEnrollmentStatus",
|
|
28704
|
-
type: "boolean",
|
|
28705
|
-
label: "Show enrollment status",
|
|
28706
|
-
required: false,
|
|
28707
|
-
defaultValue: true,
|
|
28708
|
-
ui: { intent: "display" }
|
|
28709
|
-
},
|
|
28710
|
-
{
|
|
28711
|
-
id: "showMembershipNote",
|
|
28712
|
-
type: "boolean",
|
|
28713
|
-
label: "Show membership note",
|
|
28714
|
-
description: "Indicate when memberships can be used for free enrollment",
|
|
28715
|
-
required: false,
|
|
28716
|
-
defaultValue: true,
|
|
28717
|
-
ui: { intent: "display" }
|
|
28718
|
-
}
|
|
28719
|
-
],
|
|
28720
|
-
layout: [styledSection({
|
|
28721
|
-
baseClass: "",
|
|
28722
|
-
spacing: "spacious",
|
|
28723
|
-
children: sectionContainer([text({ as: "h2" }, bind("content.heading"), when("content.heading")), el("course-details", {
|
|
28724
|
-
subject: { $bind: {
|
|
28725
|
-
from: "$root.subject",
|
|
28726
|
-
fallback: null
|
|
28727
|
-
} },
|
|
28728
|
-
courses: { $bind: { from: "data.courses" } },
|
|
28729
|
-
showTitle: { $bind: {
|
|
28730
|
-
from: "content.showTitle",
|
|
28731
|
-
fallback: false
|
|
28732
|
-
} },
|
|
28733
|
-
showDescription: { $bind: {
|
|
28734
|
-
from: "content.showDescription",
|
|
28735
|
-
fallback: false
|
|
28736
|
-
} },
|
|
28737
|
-
showSessions: { $bind: {
|
|
28738
|
-
from: "content.showSessions",
|
|
28739
|
-
fallback: true
|
|
28740
|
-
} },
|
|
28741
|
-
sessionsLimit: { $bind: {
|
|
28742
|
-
from: "content.sessionsLimit",
|
|
28743
|
-
fallback: "10"
|
|
28744
|
-
} },
|
|
28745
|
-
showVenue: { $bind: {
|
|
28746
|
-
from: "content.showVenue",
|
|
28747
|
-
fallback: true
|
|
28748
|
-
} },
|
|
28749
|
-
showPrice: { $bind: {
|
|
28750
|
-
from: "content.showPrice",
|
|
28751
|
-
fallback: true
|
|
28752
|
-
} },
|
|
28753
|
-
showCapacity: { $bind: {
|
|
28754
|
-
from: "content.showCapacity",
|
|
28755
|
-
fallback: true
|
|
28756
|
-
} },
|
|
28757
|
-
showEnrollmentStatus: { $bind: {
|
|
28758
|
-
from: "content.showEnrollmentStatus",
|
|
28759
|
-
fallback: true
|
|
28760
|
-
} },
|
|
28761
|
-
showMembershipNote: { $bind: {
|
|
28762
|
-
from: "content.showMembershipNote",
|
|
28763
|
-
fallback: true
|
|
28764
|
-
} }
|
|
28765
|
-
})], { gap: "lg" })
|
|
28766
|
-
})]
|
|
28767
|
-
}),
|
|
28768
|
-
dataSchemas: { courses: publicWholeSeriesOfferingsArraySchema.optional() },
|
|
28769
|
-
dataLoaders: { courses: {
|
|
28770
|
-
endpoint: "listPublicWholeSeriesOfferings",
|
|
28771
|
-
params: {
|
|
28772
|
-
siteId: { $bind: { from: "$root.siteId" } },
|
|
28773
|
-
limit: "50",
|
|
28774
|
-
stage: { $bind: {
|
|
28775
|
-
from: "$root.previewStage",
|
|
28776
|
-
fallback: "published"
|
|
28777
|
-
} }
|
|
28778
|
-
},
|
|
28779
|
-
mode: "server"
|
|
28780
|
-
} }
|
|
28781
|
-
};
|
|
28782
28481
|
const eventSpotlightBlockDefinition = {
|
|
28783
28482
|
manifest: createBlockManifest({
|
|
28784
28483
|
id: "block.event-spotlight",
|
|
@@ -31442,7 +31141,7 @@ const offeringsPreviewManifest = createBlockManifest({
|
|
|
31442
31141
|
fallback: "published"
|
|
31443
31142
|
} },
|
|
31444
31143
|
routeCandidates: { $bind: { from: "data.routeCandidates" } },
|
|
31445
|
-
|
|
31144
|
+
wholeSeriesOfferings: { $bind: { from: "data.wholeSeriesOfferings" } },
|
|
31446
31145
|
...offeringsPreviewEventDataBindings
|
|
31447
31146
|
})
|
|
31448
31147
|
], { gap: "lg" }),
|
|
@@ -31459,7 +31158,7 @@ const offeringsPreviewBlockDefinition = {
|
|
|
31459
31158
|
dataSchemas: {
|
|
31460
31159
|
...offeringsPreviewEventDataSchemas,
|
|
31461
31160
|
routeCandidates: publicRouteCandidatesSchema.optional(),
|
|
31462
|
-
|
|
31161
|
+
wholeSeriesOfferings: publicWholeSeriesOfferingsArraySchema.optional()
|
|
31463
31162
|
},
|
|
31464
31163
|
dataLoaders: {
|
|
31465
31164
|
...offeringsPreviewEventDataLoaders,
|
|
@@ -31468,7 +31167,7 @@ const offeringsPreviewBlockDefinition = {
|
|
|
31468
31167
|
params: {},
|
|
31469
31168
|
mode: "server"
|
|
31470
31169
|
},
|
|
31471
|
-
|
|
31170
|
+
wholeSeriesOfferings: {
|
|
31472
31171
|
endpoint: "listPublicWholeSeriesOfferings",
|
|
31473
31172
|
params: {
|
|
31474
31173
|
siteId: { $bind: { from: "$root.siteId" } },
|
|
@@ -36435,22 +36134,6 @@ const systemBlockDefinitions = [
|
|
|
36435
36134
|
weight: "standard"
|
|
36436
36135
|
})]
|
|
36437
36136
|
})),
|
|
36438
|
-
withDesignCapability("block.course-registration", courseRegistrationBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
|
|
36439
|
-
flow: conversionFlow,
|
|
36440
|
-
layoutProfiles: [layoutProfile({
|
|
36441
|
-
variantKey: "default",
|
|
36442
|
-
family: "form",
|
|
36443
|
-
weight: "standard"
|
|
36444
|
-
})]
|
|
36445
|
-
})),
|
|
36446
|
-
withDesignCapability("block.course-details", courseDetailsBlockDefinition, scheduleDetailsCapable(), defineBlockDesignMetadata({
|
|
36447
|
-
flow: offeringsFlow,
|
|
36448
|
-
layoutProfiles: [layoutProfile({
|
|
36449
|
-
variantKey: "default",
|
|
36450
|
-
family: "stack",
|
|
36451
|
-
weight: "standard"
|
|
36452
|
-
})]
|
|
36453
|
-
})),
|
|
36454
36137
|
withDesignCapability("block.event-spotlight", eventSpotlightBlockDefinition, eventSpotlightCapable(), defineBlockDesignMetadata({
|
|
36455
36138
|
flow: offeringsFlow,
|
|
36456
36139
|
layoutProfiles: [layoutProfile({
|
|
@@ -38509,6 +38192,68 @@ function parsePublicProductCategorySelector(value) {
|
|
|
38509
38192
|
};
|
|
38510
38193
|
}
|
|
38511
38194
|
//#endregion
|
|
38195
|
+
//#region ../api/src/bookingPaymentTermSchemas.ts
|
|
38196
|
+
const bookingDepositRefundPolicySchema = z.enum(["refundable", "non_refundable"]);
|
|
38197
|
+
const bookingInstalmentPlanSchema = z.discriminatedUnion("kind", [
|
|
38198
|
+
z.object({
|
|
38199
|
+
kind: z.literal("deposit_plus_one_remainder"),
|
|
38200
|
+
depositAmountCents: z.number().int().nonnegative(),
|
|
38201
|
+
depositRefundability: bookingDepositRefundPolicySchema,
|
|
38202
|
+
remainderDueCount: z.number().int().positive(),
|
|
38203
|
+
intervalUnit: z.enum([
|
|
38204
|
+
"day",
|
|
38205
|
+
"week",
|
|
38206
|
+
"month"
|
|
38207
|
+
])
|
|
38208
|
+
}),
|
|
38209
|
+
z.object({
|
|
38210
|
+
kind: z.literal("deposit_plus_scheduled_instalments"),
|
|
38211
|
+
depositAmountCents: z.number().int().nonnegative(),
|
|
38212
|
+
depositRefundability: bookingDepositRefundPolicySchema,
|
|
38213
|
+
instalmentCount: z.number().int().positive(),
|
|
38214
|
+
intervalCount: z.number().int().positive(),
|
|
38215
|
+
intervalUnit: z.enum([
|
|
38216
|
+
"day",
|
|
38217
|
+
"week",
|
|
38218
|
+
"month"
|
|
38219
|
+
])
|
|
38220
|
+
}),
|
|
38221
|
+
z.object({
|
|
38222
|
+
kind: z.literal("equal_scheduled_instalments"),
|
|
38223
|
+
instalmentCount: z.number().int().positive(),
|
|
38224
|
+
intervalCount: z.number().int().positive(),
|
|
38225
|
+
intervalUnit: z.enum([
|
|
38226
|
+
"day",
|
|
38227
|
+
"week",
|
|
38228
|
+
"month"
|
|
38229
|
+
])
|
|
38230
|
+
})
|
|
38231
|
+
]);
|
|
38232
|
+
const bookingFlexibleBalanceDueDateRuleSchema = z.discriminatedUnion("kind", [z.object({
|
|
38233
|
+
kind: z.literal("relative_to_start_date"),
|
|
38234
|
+
daysBeforeStart: z.number().int().positive()
|
|
38235
|
+
}), z.object({
|
|
38236
|
+
kind: z.literal("fixed_calendar_date"),
|
|
38237
|
+
dueAt: z.string().datetime()
|
|
38238
|
+
})]);
|
|
38239
|
+
const bookingFlexibleBalanceConfigSchema = z.object({
|
|
38240
|
+
upfrontAmountCents: z.number().int().nonnegative(),
|
|
38241
|
+
dueDateRule: bookingFlexibleBalanceDueDateRuleSchema,
|
|
38242
|
+
depositRefundability: bookingDepositRefundPolicySchema
|
|
38243
|
+
});
|
|
38244
|
+
z.discriminatedUnion("kind", [
|
|
38245
|
+
z.object({ kind: z.literal("upfront") }),
|
|
38246
|
+
z.object({ kind: z.literal("deferred_manual") }),
|
|
38247
|
+
z.object({
|
|
38248
|
+
kind: z.literal("instalment_plan"),
|
|
38249
|
+
plan: bookingInstalmentPlanSchema
|
|
38250
|
+
}),
|
|
38251
|
+
z.object({
|
|
38252
|
+
kind: z.literal("flexible_balance"),
|
|
38253
|
+
config: bookingFlexibleBalanceConfigSchema
|
|
38254
|
+
})
|
|
38255
|
+
]);
|
|
38256
|
+
//#endregion
|
|
38512
38257
|
//#region ../api/src/aiPlayground.ts
|
|
38513
38258
|
/**
|
|
38514
38259
|
* RFC-6902 JSON Patch Operations
|