@riverbankcms/sdk 0.134.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 +4 -3
- package/README.md +1 -1
- package/dist/{PreviewEditorSidebar-DfRhJPFQ.mjs → PreviewEditorSidebar-roNY0GVy.mjs} +4 -4
- package/dist/{PreviewEditorUI-Dppxcr_g.mjs → PreviewEditorUI-KboDbEh_.mjs} +3 -3
- package/dist/{PreviewQueryProvider-D51gQaG3.mjs → PreviewQueryProvider-DcgaESkm.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-8CyGCXir.mjs → SdkPreviewModeRuntime-DBrF7Caa.mjs} +5 -5
- package/dist/{SiteChromeCustomizeContext-DVMTMvqA.mjs → SiteChromeCustomizeContext-DrIEpJKn.mjs} +4070 -8011
- 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 +10 -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 +6 -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-BQqwi8Oa.mjs} +180 -4
- package/dist/client/{DiscountCodeDisclosure-CfuPOHD0.mjs → DiscountCodeDisclosure-B97aMo0V.mjs} +13 -27
- package/dist/client/{EventCombined.client-DB8Qfzi-.mjs → EventCombined.client-Bs2Iw9Q6.mjs} +3 -3
- package/dist/client/{EventListing.client-DD4X8hp4.mjs → EventListing.client-C4QUQdmg.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-QhgIBQbv.mjs → LeafletStaticMap-CwWRk69M.mjs} +1 -1
- package/dist/client/{accordion-DFXpLvwg.mjs → accordion-BA0j8Mpw.mjs} +1 -1
- package/dist/client/{bookingForm-sI05d3lk.mjs → bookingForm-Br2e41H0.mjs} +6 -7
- package/dist/client/bookings.mjs +912 -1906
- package/dist/client/{carousel-wjyWTZCh.mjs → carousel-B4dmwnpD.mjs} +1 -1
- package/dist/client/{cart-DCwdpA4i.mjs → cart-B_ckGW4b.mjs} +3 -3
- package/dist/client/{checkout-DTDW3l0R.mjs → checkout-DAyspHdf.mjs} +3 -3
- package/dist/client/{checkoutUrls-DQYC_Br-.mjs → checkoutUrls-BuseL0dw.mjs} +4 -2
- package/dist/client/client.mjs +5074 -9309
- package/dist/client/{context-TSK1CGx8.mjs → context-DljQn8L5.mjs} +15 -69
- package/dist/client/{eventCalendar-B0Zg-i_w.mjs → eventCalendar-pJu3FUod.mjs} +5 -5
- package/dist/client/{eventCombined-B8Y2wizd.mjs → eventCombined-B6Kacm9F.mjs} +3 -3
- package/dist/client/{eventDetails-DPDOwURJ.mjs → eventDetails-CaX9z1pv.mjs} +8 -8
- package/dist/client/{eventListing-CjBcmSLn.mjs → eventListing-B9aXPO-I.mjs} +3 -3
- package/dist/client/{eventRegistration-CK30HsAq.mjs → eventRegistration-CBSovBkg.mjs} +4522 -3690
- package/dist/client/{form-CUXfsABE.mjs → form-Cm0tu_7o.mjs} +2 -2
- package/dist/client/{headerSection-N-mN3rjr.mjs → headerSection-OgRtHeKS.mjs} +2 -2
- package/dist/client/hooks.mjs +430 -692
- package/dist/client/{locationMap-oiIDQMBt.mjs → locationMap-DmjcYqNM.mjs} +2 -2
- package/dist/client/{newsletterForm-CkQ2tTrM.mjs → newsletterForm-D08OZQAC.mjs} +2 -2
- package/dist/client/{productDetail-CnidyrsN.mjs → productDetail-BqZeu2P4.mjs} +3 -3
- package/dist/client/{productList-CttYcS_S.mjs → productList-mNyIF9FG.mjs} +3 -3
- package/dist/client/{propsDecoder-CeUMxI9a.mjs → propsDecoder-DwHXRm9X.mjs} +4656 -4419
- package/dist/client/rendering/client.mjs +59504 -62158
- package/dist/client/rendering/islands.mjs +17 -19
- package/dist/client/rendering.mjs +5354 -9683
- package/dist/client/{scrollToBlock-lPr1oqxB.mjs → scrollToBlock-DtmdM3v-.mjs} +2 -2
- package/dist/client/{shop-DXQtMo2O.mjs → shop-CNjZK16F.mjs} +6 -6
- package/dist/client/{shop-commerce-quDL411J.mjs → shop-commerce-DkNNao1J.mjs} +6 -6
- package/dist/client/{shop-commerce-store-Dnu-8Iub.mjs → shop-commerce-store-9WA--zuW.mjs} +1 -1
- package/dist/client/{shopShared-BWPUURvG.mjs → shopShared-CHCVfccY.mjs} +3 -3
- package/dist/client/{useEventFilters-DRhWp2_5.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-Ca5RD78X.mjs → sdk-runtime-3GhW4knb.mjs} +2 -2
- package/dist/{separator-CMhj6BTi.mjs → separator-D3bCWYYb.mjs} +1 -1
- package/dist/server/components.mjs +535 -2950
- package/dist/server/config-validation.mjs +430 -692
- package/dist/server/config.mjs +430 -692
- package/dist/server/data.mjs +430 -692
- package/dist/server/index.mjs +41 -162
- package/dist/server/next.mjs +549 -2964
- package/dist/server/page-converter.mjs +331 -560
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +534 -2855
- package/dist/server/rendering.mjs +535 -2950
- package/dist/server/routing.mjs +574 -1065
- package/dist/server/server.mjs +444 -706
- 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,7 +26795,7 @@ 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,
|
|
@@ -26751,8 +26813,8 @@ z.discriminatedUnion("kind", [
|
|
|
26751
26813
|
label: z.string()
|
|
26752
26814
|
}),
|
|
26753
26815
|
z.object({
|
|
26754
|
-
kind: z.literal("
|
|
26755
|
-
display:
|
|
26816
|
+
kind: z.literal("whole_series"),
|
|
26817
|
+
display: publicWholeSeriesPriceDisplaySchema
|
|
26756
26818
|
})
|
|
26757
26819
|
]);
|
|
26758
26820
|
const publicEventTicketTypePriceDisplaySchema = z.union([
|
|
@@ -26854,10 +26916,10 @@ const publicEventPricingSchema = z.discriminatedUnion("kind", [
|
|
|
26854
26916
|
})
|
|
26855
26917
|
}),
|
|
26856
26918
|
z.object({
|
|
26857
|
-
kind: z.literal("
|
|
26919
|
+
kind: z.literal("whole_series"),
|
|
26858
26920
|
display: z.object({
|
|
26859
|
-
kind: z.literal("
|
|
26860
|
-
display:
|
|
26921
|
+
kind: z.literal("whole_series"),
|
|
26922
|
+
display: publicWholeSeriesPriceDisplaySchema
|
|
26861
26923
|
})
|
|
26862
26924
|
}),
|
|
26863
26925
|
z.object({
|
|
@@ -27274,7 +27336,8 @@ function resolveEventRegistrationScope(context) {
|
|
|
27274
27336
|
};
|
|
27275
27337
|
return { kind: "unscoped" };
|
|
27276
27338
|
}
|
|
27277
|
-
function
|
|
27339
|
+
function resolveEventRegistrationScopedEvents(events, context) {
|
|
27340
|
+
const scope = resolveEventRegistrationScope(context);
|
|
27278
27341
|
switch (scope.kind) {
|
|
27279
27342
|
case "occurrenceSeries":
|
|
27280
27343
|
case "pageSurfaceSeries": return events.filter((event) => event.seriesId === scope.seriesId);
|
|
@@ -27286,9 +27349,6 @@ function applyEventRegistrationScope(events, scope) {
|
|
|
27286
27349
|
case "unscoped": return [...events];
|
|
27287
27350
|
}
|
|
27288
27351
|
}
|
|
27289
|
-
function resolveEventRegistrationScopedEvents(events, context) {
|
|
27290
|
-
return applyEventRegistrationScope(events, resolveEventRegistrationScope(context));
|
|
27291
|
-
}
|
|
27292
27352
|
//#endregion
|
|
27293
27353
|
//#region ../blocks/src/system/runtime/nodes/event-registration/registrationSurface.ts
|
|
27294
27354
|
function planEventRegistrationScope(input) {
|
|
@@ -27382,14 +27442,14 @@ function isRecord$6(value) {
|
|
|
27382
27442
|
}
|
|
27383
27443
|
function isPublicEventPricing(value) {
|
|
27384
27444
|
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 === "
|
|
27445
|
+
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
27446
|
}
|
|
27387
27447
|
function isPublicEventTicketType(value) {
|
|
27388
27448
|
return isRecord$6(value) && typeof value.id === "string";
|
|
27389
27449
|
}
|
|
27390
27450
|
function readTicketTypePriceDisplay(value, currency) {
|
|
27391
27451
|
const display = readLegacyPriceDisplay(value, currency);
|
|
27392
|
-
return display.kind === "
|
|
27452
|
+
return display.kind === "whole_series" || display.kind === "external" ? {
|
|
27393
27453
|
kind: "unavailable",
|
|
27394
27454
|
currency
|
|
27395
27455
|
} : display;
|
|
@@ -27447,11 +27507,11 @@ function readLegacyPriceDisplay(value, currency) {
|
|
|
27447
27507
|
kind: "unavailable",
|
|
27448
27508
|
currency: displayCurrency
|
|
27449
27509
|
};
|
|
27450
|
-
case "
|
|
27451
|
-
kind: "
|
|
27510
|
+
case "whole_series": return isRecord$6(value.display) ? {
|
|
27511
|
+
kind: "whole_series",
|
|
27452
27512
|
display: readCoursePriceDisplay(value.display, displayCurrency)
|
|
27453
27513
|
} : {
|
|
27454
|
-
kind: "
|
|
27514
|
+
kind: "whole_series",
|
|
27455
27515
|
display: {
|
|
27456
27516
|
kind: "unavailable",
|
|
27457
27517
|
currency: displayCurrency
|
|
@@ -27577,7 +27637,7 @@ function getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep) {
|
|
|
27577
27637
|
//#endregion
|
|
27578
27638
|
//#region ../blocks/src/system/runtime/nodes/event-registration/registrationDerivations.ts
|
|
27579
27639
|
function eventMatchesOccurrenceId(event, occurrenceId) {
|
|
27580
|
-
return event.
|
|
27640
|
+
return event.registrationSubject.kind === "occurrence" && (event.registrationSubject.occurrenceId === occurrenceId || event.selectionId === occurrenceId);
|
|
27581
27641
|
}
|
|
27582
27642
|
function findPreSelectedEvent(input) {
|
|
27583
27643
|
const occurrenceContext = input.occurrenceContext;
|
|
@@ -27603,12 +27663,127 @@ function toRegistrationEvent(event) {
|
|
|
27603
27663
|
return {
|
|
27604
27664
|
...event,
|
|
27605
27665
|
pricing: resolveRuntimeEventPricing(event),
|
|
27606
|
-
|
|
27607
|
-
|
|
27666
|
+
selectionId: event.id,
|
|
27667
|
+
registrationSubject: {
|
|
27668
|
+
kind: "occurrence",
|
|
27669
|
+
occurrenceId: event.occurrenceId
|
|
27670
|
+
}
|
|
27608
27671
|
};
|
|
27609
27672
|
}
|
|
27610
27673
|
function toRegistrationEvents(events) {
|
|
27611
|
-
return events.map(toRegistrationEvent);
|
|
27674
|
+
return events.filter((event) => event.bookingScope === "single_occurrence").map(toRegistrationEvent);
|
|
27675
|
+
}
|
|
27676
|
+
function toWholeSeriesTicketType(option) {
|
|
27677
|
+
return {
|
|
27678
|
+
...option,
|
|
27679
|
+
capacityMode: option.capacityLimit === null ? "unlimited" : "limited",
|
|
27680
|
+
attendanceScope: option.attendanceScope ?? void 0,
|
|
27681
|
+
availability: {
|
|
27682
|
+
kind: "available",
|
|
27683
|
+
remainingCapacity: option.capacityLimit
|
|
27684
|
+
}
|
|
27685
|
+
};
|
|
27686
|
+
}
|
|
27687
|
+
function toWholeSeriesPricing(offering) {
|
|
27688
|
+
const resolved = resolveWholeSeriesPricingState(offering);
|
|
27689
|
+
switch (offering.pricing.pricingStrategy) {
|
|
27690
|
+
case "free": return {
|
|
27691
|
+
kind: "free_registration",
|
|
27692
|
+
currency: offering.currency,
|
|
27693
|
+
display: {
|
|
27694
|
+
kind: "free",
|
|
27695
|
+
currency: offering.currency
|
|
27696
|
+
}
|
|
27697
|
+
};
|
|
27698
|
+
case "single": {
|
|
27699
|
+
const amount = offering.pricing.singlePriceAmount ?? 0;
|
|
27700
|
+
return amount === 0 ? {
|
|
27701
|
+
kind: "free_registration",
|
|
27702
|
+
currency: offering.currency,
|
|
27703
|
+
display: {
|
|
27704
|
+
kind: "free",
|
|
27705
|
+
currency: offering.currency
|
|
27706
|
+
}
|
|
27707
|
+
} : {
|
|
27708
|
+
kind: "single_paid",
|
|
27709
|
+
amount,
|
|
27710
|
+
currency: offering.currency,
|
|
27711
|
+
display: {
|
|
27712
|
+
kind: "exact",
|
|
27713
|
+
amount,
|
|
27714
|
+
currency: offering.currency
|
|
27715
|
+
}
|
|
27716
|
+
};
|
|
27717
|
+
}
|
|
27718
|
+
case "tiered": return {
|
|
27719
|
+
kind: "ticket_types",
|
|
27720
|
+
currency: offering.currency,
|
|
27721
|
+
ticketTypes: resolved.selectableOptions.map((option) => toWholeSeriesTicketType(option)),
|
|
27722
|
+
display: resolved.display
|
|
27723
|
+
};
|
|
27724
|
+
case "sliding_scale": return {
|
|
27725
|
+
kind: "sliding_scale",
|
|
27726
|
+
minAmount: offering.pricing.slidingMinAmount ?? 0,
|
|
27727
|
+
maxAmount: offering.pricing.slidingMaxAmount ?? 0,
|
|
27728
|
+
suggestedAmount: offering.pricing.slidingSuggestedAmount ?? null,
|
|
27729
|
+
currency: offering.currency,
|
|
27730
|
+
display: {
|
|
27731
|
+
kind: "range",
|
|
27732
|
+
minAmount: offering.pricing.slidingMinAmount ?? 0,
|
|
27733
|
+
maxAmount: offering.pricing.slidingMaxAmount ?? 0,
|
|
27734
|
+
currency: offering.currency
|
|
27735
|
+
}
|
|
27736
|
+
};
|
|
27737
|
+
}
|
|
27738
|
+
}
|
|
27739
|
+
function toAttendanceModes(offering) {
|
|
27740
|
+
return (offering.deliveryMode === "hybrid" ? ["in_person", "online"] : [offering.deliveryMode]).map((mode) => ({
|
|
27741
|
+
mode,
|
|
27742
|
+
capacity: offering.enrollmentCapacity,
|
|
27743
|
+
registeredCount: offering.enrolledCount,
|
|
27744
|
+
availableSpots: offering.availableSpots,
|
|
27745
|
+
waitlistEnabled: offering.waitlistEnabled
|
|
27746
|
+
}));
|
|
27747
|
+
}
|
|
27748
|
+
function toWholeSeriesRegistrationEvent(offering) {
|
|
27749
|
+
const firstSession = offering.sessions[0];
|
|
27750
|
+
const lastSession = offering.sessions[offering.sessions.length - 1];
|
|
27751
|
+
return {
|
|
27752
|
+
selectionId: offering.eventSeriesId,
|
|
27753
|
+
registrationSubject: {
|
|
27754
|
+
kind: "wholeSeries",
|
|
27755
|
+
eventSeriesId: offering.eventSeriesId,
|
|
27756
|
+
sessions: offering.sessions
|
|
27757
|
+
},
|
|
27758
|
+
seriesId: offering.eventSeriesId,
|
|
27759
|
+
title: offering.title,
|
|
27760
|
+
startsAt: firstSession?.startsAt ?? "",
|
|
27761
|
+
endsAt: lastSession?.endsAt ?? firstSession?.endsAt ?? "",
|
|
27762
|
+
bookingAvailability: offering.enrollmentOpen ? { kind: "open" } : {
|
|
27763
|
+
kind: "closed",
|
|
27764
|
+
reason: "enrollment_closed"
|
|
27765
|
+
},
|
|
27766
|
+
deliveryMode: offering.deliveryMode,
|
|
27767
|
+
attendanceModes: toAttendanceModes(offering),
|
|
27768
|
+
capacity: offering.enrollmentCapacity,
|
|
27769
|
+
registeredCount: offering.enrolledCount,
|
|
27770
|
+
availableSpots: offering.availableSpots,
|
|
27771
|
+
waitlistEnabled: offering.waitlistEnabled,
|
|
27772
|
+
venue: offering.venue ? {
|
|
27773
|
+
...offering.venue,
|
|
27774
|
+
location: null
|
|
27775
|
+
} : null,
|
|
27776
|
+
eventCategory: null,
|
|
27777
|
+
teamMembers: offering.teamMembers,
|
|
27778
|
+
status: offering.status,
|
|
27779
|
+
timeZone: firstSession?.timeZone ?? "UTC",
|
|
27780
|
+
pricing: toWholeSeriesPricing(offering),
|
|
27781
|
+
paymentTerms: offering.paymentTerms,
|
|
27782
|
+
consent: offering.consent,
|
|
27783
|
+
requireGuestDetails: offering.requireGuestDetails,
|
|
27784
|
+
acceptsPasses: false,
|
|
27785
|
+
acceptsMemberships: offering.acceptsMemberships
|
|
27786
|
+
};
|
|
27612
27787
|
}
|
|
27613
27788
|
//#endregion
|
|
27614
27789
|
//#region ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
|
|
@@ -27634,11 +27809,7 @@ const eventRegistrationHydrationSchemaShape = {
|
|
|
27634
27809
|
maxTickets: z.string().optional(),
|
|
27635
27810
|
showVenue: z.boolean().optional(),
|
|
27636
27811
|
showCapacity: z.boolean().optional(),
|
|
27637
|
-
showSessions: z.boolean().optional(),
|
|
27638
|
-
showPrice: z.boolean().optional(),
|
|
27639
27812
|
successMessage: z.string().optional(),
|
|
27640
|
-
waitlistMessage: z.string().optional(),
|
|
27641
|
-
membershipMessage: z.string().optional(),
|
|
27642
27813
|
buttonVariant: registrationButtonVariantSchema.optional(),
|
|
27643
27814
|
overlayEnabled: z.boolean().optional(),
|
|
27644
27815
|
spamProtectionEnabled: z.boolean().optional(),
|
|
@@ -27708,6 +27879,15 @@ function resolveWholeSeriesOffering(source) {
|
|
|
27708
27879
|
return source.wholeSeriesOffering ?? source.subjectWholeSeriesOffering ?? null;
|
|
27709
27880
|
}
|
|
27710
27881
|
function buildEventRegistrationShellStepLabels(source) {
|
|
27882
|
+
const selectedOffering = resolveWholeSeriesOffering(source);
|
|
27883
|
+
if (selectedOffering) {
|
|
27884
|
+
const selectedEvent = toWholeSeriesRegistrationEvent(selectedOffering);
|
|
27885
|
+
return getWizardStepsForContext(true, resolveEventRequiresPayment({
|
|
27886
|
+
eligibility: null,
|
|
27887
|
+
selectedTicketType: null,
|
|
27888
|
+
event: selectedEvent
|
|
27889
|
+
})).map((step) => shellLabelForRegistrationStep(step, [selectedEvent]));
|
|
27890
|
+
}
|
|
27711
27891
|
const scopedEvents = scopeEventRegistrationEvents(source);
|
|
27712
27892
|
if (scopedEvents.length === 0) return EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS;
|
|
27713
27893
|
const preSelectedEvent = findPreSelectedEvent({
|
|
@@ -27771,11 +27951,7 @@ const eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
|
|
|
27771
27951
|
maxTickets: source.maxTickets ?? void 0,
|
|
27772
27952
|
showVenue: source.showVenue,
|
|
27773
27953
|
showCapacity: source.showCapacity,
|
|
27774
|
-
showSessions: source.showSessions,
|
|
27775
|
-
showPrice: source.showPrice,
|
|
27776
27954
|
successMessage: source.successMessage,
|
|
27777
|
-
waitlistMessage: source.waitlistMessage,
|
|
27778
|
-
membershipMessage: source.membershipMessage,
|
|
27779
27955
|
buttonVariant: source.buttonVariant,
|
|
27780
27956
|
overlayEnabled: source.overlayEnabled,
|
|
27781
27957
|
spamProtectionEnabled: source.spamProtectionEnabled,
|
|
@@ -27891,24 +28067,6 @@ const eventRegistrationBlockDefinition = {
|
|
|
27891
28067
|
defaultValue: true,
|
|
27892
28068
|
ui: { intent: "display" }
|
|
27893
28069
|
},
|
|
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
28070
|
{
|
|
27913
28071
|
id: "successMessage",
|
|
27914
28072
|
type: "text",
|
|
@@ -27919,26 +28077,6 @@ const eventRegistrationBlockDefinition = {
|
|
|
27919
28077
|
defaultValue: "Thank you for registering! Check your email for confirmation details.",
|
|
27920
28078
|
maxLength: 500
|
|
27921
28079
|
},
|
|
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
28080
|
{
|
|
27943
28081
|
id: "buttonText",
|
|
27944
28082
|
type: "text",
|
|
@@ -27970,11 +28108,7 @@ const eventRegistrationBlockDefinition = {
|
|
|
27970
28108
|
} },
|
|
27971
28109
|
showVenue: { $bind: { from: "content.showVenue" } },
|
|
27972
28110
|
showCapacity: { $bind: { from: "content.showCapacity" } },
|
|
27973
|
-
showSessions: { $bind: { from: "content.showSessions" } },
|
|
27974
|
-
showPrice: { $bind: { from: "content.showPrice" } },
|
|
27975
28111
|
successMessage: { $bind: { from: "content.successMessage" } },
|
|
27976
|
-
waitlistMessage: { $bind: { from: "content.waitlistMessage" } },
|
|
27977
|
-
membershipMessage: { $bind: { from: "content.membershipMessage" } },
|
|
27978
28112
|
buttonText: { $bind: {
|
|
27979
28113
|
from: "content.buttonText",
|
|
27980
28114
|
fallback: "Complete Registration"
|
|
@@ -28091,254 +28225,6 @@ const eventRegistrationBlockDefinition = {
|
|
|
28091
28225
|
}
|
|
28092
28226
|
};
|
|
28093
28227
|
//#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
28228
|
//#region ../blocks/src/system/blocks/event-details.ts
|
|
28343
28229
|
/**
|
|
28344
28230
|
* Event Details Block
|
|
@@ -28585,200 +28471,6 @@ const eventDetailsBlockDefinition = {
|
|
|
28585
28471
|
mode: "server"
|
|
28586
28472
|
} }
|
|
28587
28473
|
};
|
|
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
28474
|
const eventSpotlightBlockDefinition = {
|
|
28783
28475
|
manifest: createBlockManifest({
|
|
28784
28476
|
id: "block.event-spotlight",
|
|
@@ -31442,7 +31134,7 @@ const offeringsPreviewManifest = createBlockManifest({
|
|
|
31442
31134
|
fallback: "published"
|
|
31443
31135
|
} },
|
|
31444
31136
|
routeCandidates: { $bind: { from: "data.routeCandidates" } },
|
|
31445
|
-
|
|
31137
|
+
wholeSeriesOfferings: { $bind: { from: "data.wholeSeriesOfferings" } },
|
|
31446
31138
|
...offeringsPreviewEventDataBindings
|
|
31447
31139
|
})
|
|
31448
31140
|
], { gap: "lg" }),
|
|
@@ -31459,7 +31151,7 @@ const offeringsPreviewBlockDefinition = {
|
|
|
31459
31151
|
dataSchemas: {
|
|
31460
31152
|
...offeringsPreviewEventDataSchemas,
|
|
31461
31153
|
routeCandidates: publicRouteCandidatesSchema.optional(),
|
|
31462
|
-
|
|
31154
|
+
wholeSeriesOfferings: publicWholeSeriesOfferingsArraySchema.optional()
|
|
31463
31155
|
},
|
|
31464
31156
|
dataLoaders: {
|
|
31465
31157
|
...offeringsPreviewEventDataLoaders,
|
|
@@ -31468,7 +31160,7 @@ const offeringsPreviewBlockDefinition = {
|
|
|
31468
31160
|
params: {},
|
|
31469
31161
|
mode: "server"
|
|
31470
31162
|
},
|
|
31471
|
-
|
|
31163
|
+
wholeSeriesOfferings: {
|
|
31472
31164
|
endpoint: "listPublicWholeSeriesOfferings",
|
|
31473
31165
|
params: {
|
|
31474
31166
|
siteId: { $bind: { from: "$root.siteId" } },
|
|
@@ -36435,22 +36127,6 @@ const systemBlockDefinitions = [
|
|
|
36435
36127
|
weight: "standard"
|
|
36436
36128
|
})]
|
|
36437
36129
|
})),
|
|
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
36130
|
withDesignCapability("block.event-spotlight", eventSpotlightBlockDefinition, eventSpotlightCapable(), defineBlockDesignMetadata({
|
|
36455
36131
|
flow: offeringsFlow,
|
|
36456
36132
|
layoutProfiles: [layoutProfile({
|
|
@@ -38509,6 +38185,68 @@ function parsePublicProductCategorySelector(value) {
|
|
|
38509
38185
|
};
|
|
38510
38186
|
}
|
|
38511
38187
|
//#endregion
|
|
38188
|
+
//#region ../api/src/bookingPaymentTermSchemas.ts
|
|
38189
|
+
const bookingDepositRefundPolicySchema = z.enum(["refundable", "non_refundable"]);
|
|
38190
|
+
const bookingInstalmentPlanSchema = z.discriminatedUnion("kind", [
|
|
38191
|
+
z.object({
|
|
38192
|
+
kind: z.literal("deposit_plus_one_remainder"),
|
|
38193
|
+
depositAmountCents: z.number().int().nonnegative(),
|
|
38194
|
+
depositRefundability: bookingDepositRefundPolicySchema,
|
|
38195
|
+
remainderDueCount: z.number().int().positive(),
|
|
38196
|
+
intervalUnit: z.enum([
|
|
38197
|
+
"day",
|
|
38198
|
+
"week",
|
|
38199
|
+
"month"
|
|
38200
|
+
])
|
|
38201
|
+
}),
|
|
38202
|
+
z.object({
|
|
38203
|
+
kind: z.literal("deposit_plus_scheduled_instalments"),
|
|
38204
|
+
depositAmountCents: z.number().int().nonnegative(),
|
|
38205
|
+
depositRefundability: bookingDepositRefundPolicySchema,
|
|
38206
|
+
instalmentCount: z.number().int().positive(),
|
|
38207
|
+
intervalCount: z.number().int().positive(),
|
|
38208
|
+
intervalUnit: z.enum([
|
|
38209
|
+
"day",
|
|
38210
|
+
"week",
|
|
38211
|
+
"month"
|
|
38212
|
+
])
|
|
38213
|
+
}),
|
|
38214
|
+
z.object({
|
|
38215
|
+
kind: z.literal("equal_scheduled_instalments"),
|
|
38216
|
+
instalmentCount: z.number().int().positive(),
|
|
38217
|
+
intervalCount: z.number().int().positive(),
|
|
38218
|
+
intervalUnit: z.enum([
|
|
38219
|
+
"day",
|
|
38220
|
+
"week",
|
|
38221
|
+
"month"
|
|
38222
|
+
])
|
|
38223
|
+
})
|
|
38224
|
+
]);
|
|
38225
|
+
const bookingFlexibleBalanceDueDateRuleSchema = z.discriminatedUnion("kind", [z.object({
|
|
38226
|
+
kind: z.literal("relative_to_start_date"),
|
|
38227
|
+
daysBeforeStart: z.number().int().positive()
|
|
38228
|
+
}), z.object({
|
|
38229
|
+
kind: z.literal("fixed_calendar_date"),
|
|
38230
|
+
dueAt: z.string().datetime()
|
|
38231
|
+
})]);
|
|
38232
|
+
const bookingFlexibleBalanceConfigSchema = z.object({
|
|
38233
|
+
upfrontAmountCents: z.number().int().nonnegative(),
|
|
38234
|
+
dueDateRule: bookingFlexibleBalanceDueDateRuleSchema,
|
|
38235
|
+
depositRefundability: bookingDepositRefundPolicySchema
|
|
38236
|
+
});
|
|
38237
|
+
z.discriminatedUnion("kind", [
|
|
38238
|
+
z.object({ kind: z.literal("upfront") }),
|
|
38239
|
+
z.object({ kind: z.literal("deferred_manual") }),
|
|
38240
|
+
z.object({
|
|
38241
|
+
kind: z.literal("instalment_plan"),
|
|
38242
|
+
plan: bookingInstalmentPlanSchema
|
|
38243
|
+
}),
|
|
38244
|
+
z.object({
|
|
38245
|
+
kind: z.literal("flexible_balance"),
|
|
38246
|
+
config: bookingFlexibleBalanceConfigSchema
|
|
38247
|
+
})
|
|
38248
|
+
]);
|
|
38249
|
+
//#endregion
|
|
38512
38250
|
//#region ../api/src/aiPlayground.ts
|
|
38513
38251
|
/**
|
|
38514
38252
|
* RFC-6902 JSON Patch Operations
|