bookito-widget 0.43.1 → 1.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +191 -7
- package/dist/bookito-widget.css +3 -0
- package/dist/bookito-widget.iife.js +112 -0
- package/dist/bookito-widget.js +40173 -0
- package/dist/bookito-widget.umd.js +104 -1992
- package/dist/bookito-widget.window.js +104 -1992
- package/dist/src/app/i18n/index.d.ts +868 -0
- package/dist/src/app/i18n/locales/de.d.ts +86 -0
- package/dist/src/app/i18n/locales/en.d.ts +86 -0
- package/dist/src/app/i18n/locales/fr.d.ts +86 -0
- package/dist/src/app/i18n/locales/it.d.ts +86 -0
- package/dist/src/app/i18n/locales/pl.d.ts +86 -0
- package/dist/src/app/providers/BookitoWidgetRoot.vue.d.ts +8 -0
- package/dist/src/app/query/query-client.d.ts +2 -0
- package/dist/src/embed/global-api.d.ts +9 -0
- package/dist/src/embed/mount-registry.d.ts +10 -0
- package/dist/src/embed/mount.d.ts +12 -0
- package/dist/src/embed/open-modal.d.ts +11 -0
- package/dist/src/embed/shadow-dom.d.ts +5 -0
- package/dist/src/embed/vue-plugin.d.ts +14 -0
- package/dist/src/embed.d.ts +1 -0
- package/dist/src/features/booking-flow/api/bookito-booking.client.d.ts +2 -0
- package/dist/src/features/booking-flow/api/bookito-booking.dto.d.ts +25 -0
- package/dist/src/features/booking-flow/api/bookito-booking.mutations.d.ts +2 -0
- package/dist/src/features/booking-flow/components/AnimatedSuccessCheckmark.vue.d.ts +2 -0
- package/dist/src/features/booking-flow/components/BookingCheckbox.vue.d.ts +11 -0
- package/dist/src/features/booking-flow/components/BookingDetailsDateOfBirthInput.vue.d.ts +10 -0
- package/dist/src/features/booking-flow/components/BookingDetailsDialCodePicker.vue.d.ts +11 -0
- package/dist/src/features/booking-flow/components/BookingDetailsDialCodePickerContent.vue.d.ts +9 -0
- package/dist/src/features/booking-flow/components/BookingDetailsField.vue.d.ts +20 -0
- package/dist/src/features/booking-flow/components/BookingDetailsLanguageSelect.vue.d.ts +9 -0
- package/dist/src/features/booking-flow/components/BookingDetailsPhoneInput.vue.d.ts +12 -0
- package/dist/src/features/booking-flow/components/BookingDetailsSection.vue.d.ts +30 -0
- package/dist/src/features/booking-flow/components/BookingDetailsTextInput.vue.d.ts +13 -0
- package/dist/src/features/booking-flow/components/BookingExtras.vue.d.ts +15 -0
- package/dist/src/features/booking-flow/components/BookingFlowNextButton.vue.d.ts +10 -0
- package/dist/src/features/booking-flow/components/BookingFlowPanel.vue.d.ts +7 -0
- package/dist/src/features/booking-flow/components/BookingFlowStepper.vue.d.ts +13 -0
- package/dist/src/features/booking-flow/components/BookingFlowSuccess.vue.d.ts +5 -0
- package/dist/src/features/booking-flow/components/BookingGuestChips.vue.d.ts +11 -0
- package/dist/src/features/booking-flow/components/BookingGuestsStep.vue.d.ts +15 -0
- package/dist/src/features/booking-flow/components/BookingParticipantCounter.vue.d.ts +13 -0
- package/dist/src/features/booking-flow/components/BookingTimeSection.vue.d.ts +24 -0
- package/dist/src/features/booking-flow/components/booking-flow.props.d.ts +31 -0
- package/dist/src/features/booking-flow/composables/create-booking-flow-api.d.ts +70 -0
- package/dist/src/features/booking-flow/composables/useBookingFlow.d.ts +52 -0
- package/dist/src/features/booking-flow/composables/useBookingFlowActions.d.ts +13 -0
- package/dist/src/features/booking-flow/composables/useBookingFlowActions.types.d.ts +31 -0
- package/dist/src/features/booking-flow/composables/useBookingFlowFormSync.d.ts +12 -0
- package/dist/src/features/booking-flow/composables/useBookingFlowWaitlist.d.ts +17 -0
- package/dist/src/features/booking-flow/composables/useBookingGuestsStepLabels.d.ts +26 -0
- package/dist/src/features/booking-flow/composables/useBookingTimeSectionState.d.ts +19 -0
- package/dist/src/features/booking-flow/composables/useBookingTimeSlots.d.ts +18 -0
- package/dist/src/features/booking-flow/lib/booking-calendar-bounds.d.ts +9 -0
- package/dist/src/features/booking-flow/lib/booking-details-flow.helpers.d.ts +11 -0
- package/dist/src/features/booking-flow/lib/booking-details.helpers.d.ts +26 -0
- package/dist/src/features/booking-flow/lib/booking-external-participant.helpers.d.ts +10 -0
- package/dist/src/features/booking-flow/lib/booking-flow-stepper.helpers.d.ts +17 -0
- package/dist/src/features/booking-flow/lib/booking-flow.actions.d.ts +34 -0
- package/dist/src/features/booking-flow/lib/booking-flow.helpers.d.ts +32 -0
- package/dist/src/features/booking-flow/lib/booking-participants.helpers.d.ts +4 -0
- package/dist/src/features/booking-flow/lib/booking-payload-label.helpers.d.ts +14 -0
- package/dist/src/features/booking-flow/lib/booking-payload.helpers.d.ts +11 -0
- package/dist/src/features/booking-flow/lib/booking-step-completion.helpers.d.ts +2 -0
- package/dist/src/features/booking-flow/lib/booking-time-slot-payload.helpers.d.ts +8 -0
- package/dist/src/features/booking-flow/lib/filter-phone-dial-codes.d.ts +2 -0
- package/dist/src/features/booking-flow/lib/format-booking-time-slot-label.d.ts +13 -0
- package/dist/src/features/booking-flow/lib/phone-dial-code-countries.data.d.ts +2 -0
- package/dist/src/features/booking-flow/lib/phone-dial-codes.d.ts +6 -0
- package/dist/src/features/booking-flow/lib/reset-booking-auth.helpers.d.ts +1 -0
- package/dist/src/features/booking-flow/lib/reset-booking-confirm-step.helpers.d.ts +2 -0
- package/dist/src/features/booking-flow/lib/resolve-booking-total-price.d.ts +10 -0
- package/dist/src/features/booking-flow/lib/resolve-booking-waitlist.d.ts +19 -0
- package/dist/src/features/booking-flow/model/booking-display-step.types.d.ts +6 -0
- package/dist/src/features/booking-flow/model/booking-form-date.helpers.d.ts +10 -0
- package/dist/src/features/booking-flow/model/booking-form-navigation.helpers.d.ts +2 -0
- package/dist/src/features/booking-flow/model/booking-form.types.d.ts +27 -0
- package/dist/src/features/bookito-settings/api/bookito-settings.client.d.ts +2 -0
- package/dist/src/features/bookito-settings/api/bookito-settings.keys.d.ts +4 -0
- package/dist/src/features/bookito-settings/api/bookito-settings.queries.d.ts +2 -0
- package/dist/src/features/bookito-settings/model/bookito-settings.types.d.ts +27 -0
- package/dist/src/features/event-feed/api/bookito-event-category.client.d.ts +4 -0
- package/dist/src/features/event-feed/api/bookito-event-category.dto.d.ts +11 -0
- package/dist/src/features/event-feed/api/bookito-event-category.queries.d.ts +9 -0
- package/dist/src/features/event-feed/api/bookito-event-modal-dates.helpers.d.ts +6 -0
- package/dist/src/features/event-feed/api/bookito-event.client.d.ts +5 -0
- package/dist/src/features/event-feed/api/bookito-event.dto.d.ts +102 -0
- package/dist/src/features/event-feed/api/bookito-event.keys.d.ts +7 -0
- package/dist/src/features/event-feed/api/bookito-event.mapper-helpers.d.ts +17 -0
- package/dist/src/features/event-feed/api/bookito-event.mapper-image.helpers.d.ts +2 -0
- package/dist/src/features/event-feed/api/bookito-event.mapper-variant.helpers.d.ts +3 -0
- package/dist/src/features/event-feed/api/bookito-event.mapper.d.ts +6 -0
- package/dist/src/features/event-feed/api/bookito-event.queries.d.ts +24 -0
- package/dist/src/features/event-feed/api/bookito-time-slots.queries.d.ts +9 -0
- package/dist/src/features/event-feed/components/BookitoWidget.vue.d.ts +5 -0
- package/dist/src/features/event-feed/components/EventFeed.vue.d.ts +21 -0
- package/dist/src/features/event-feed/components/EventFeedScrollControls.vue.d.ts +13 -0
- package/dist/src/features/event-feed/components/ExperienceCard.vue.d.ts +13 -0
- package/dist/src/features/event-feed/components/PoweredByCarlito.vue.d.ts +2 -0
- package/dist/src/features/event-feed/composables/useBookitoWidgetTheme.d.ts +2 -0
- package/dist/src/features/event-feed/composables/useEventFeedScroll.d.ts +8 -0
- package/dist/src/features/event-feed/lib/event-feed-date.utils.d.ts +15 -0
- package/dist/src/features/event-feed/lib/event-feed-item.helpers.d.ts +9 -0
- package/dist/src/features/event-feed/lib/event-feed-occurrence.helpers.d.ts +7 -0
- package/dist/src/features/event-feed/lib/event-feed.utils.d.ts +8 -0
- package/dist/src/features/event-feed/lib/resolve-localized-text.d.ts +2 -0
- package/dist/src/features/event-feed/model/widget.types.d.ts +96 -0
- package/dist/src/features/experience-detail/components/BookitoEventModal.vue.d.ts +14 -0
- package/dist/src/features/experience-detail/components/ExperienceDetailPanel.vue.d.ts +9 -0
- package/dist/src/features/experience-detail/components/ExperienceOverlay.vue.d.ts +16 -0
- package/dist/src/features/experience-detail/components/ExperienceOverlayContent.vue.d.ts +29 -0
- package/dist/src/features/experience-detail/components/ExperienceOverlayHeader.vue.d.ts +15 -0
- package/dist/src/features/experience-detail/composables/useExperienceOverlayBooking.d.ts +20 -0
- package/dist/src/features/experience-detail/lib/bookito-event-modal.helpers.d.ts +7 -0
- package/dist/src/features/experience-detail/lib/experience-booking-cancellation.helpers.d.ts +2 -0
- package/dist/src/features/experience-detail/lib/experience-booking-cutoff.helpers.d.ts +3 -0
- package/dist/src/features/experience-detail/lib/experience-booking-date.helpers.d.ts +3 -0
- package/dist/src/features/experience-detail/lib/experience-overlay.helpers.d.ts +3 -0
- package/dist/src/features/experience-detail/lib/resolve-experience-booking-availability.d.ts +39 -0
- package/dist/src/features/guest-auth/api/guest-auth.client.d.ts +2 -0
- package/dist/src/features/guest-auth/api/guest-auth.dto.d.ts +36 -0
- package/dist/src/features/guest-auth/api/guest-auth.mutations.d.ts +2 -0
- package/dist/src/features/guest-auth/lib/map-login-guests.d.ts +2 -0
- package/dist/src/index.d.ts +8 -0
- package/dist/src/shared/api/api-config.d.ts +5 -0
- package/dist/src/shared/api/auth-tokens.d.ts +3 -0
- package/dist/src/shared/api/federation-client.d.ts +14 -0
- package/dist/src/shared/api/federation-errors.d.ts +9 -0
- package/dist/src/shared/api/graphql-client.d.ts +22 -0
- package/dist/src/shared/api/subdomain-parameter.d.ts +8 -0
- package/dist/src/shared/calendar/BookingCalendar.vue.d.ts +15 -0
- package/dist/src/shared/calendar/BookingCalendarGrid.vue.d.ts +8 -0
- package/dist/src/shared/calendar/BookingCalendarNavigation.vue.d.ts +17 -0
- package/dist/src/shared/calendar/calendar-date-key.d.ts +4 -0
- package/dist/src/shared/calendar/calendar-date-value.d.ts +11 -0
- package/dist/src/shared/calendar/calendar-date.types.d.ts +1 -0
- package/dist/src/shared/calendar/hotel-calendar-date.d.ts +10 -0
- package/dist/src/shared/calendar/index.d.ts +1 -0
- package/dist/src/shared/calendar/useBookingCalendarState.d.ts +29 -0
- package/dist/src/shared/config/languages.d.ts +3 -0
- package/dist/src/shared/lib/format-booking-price.d.ts +2 -0
- package/dist/src/shared/lib/is-ios-platform.d.ts +1 -0
- package/dist/src/shared/lib/map-language-to-intl-locale.d.ts +2 -0
- package/dist/src/shared/lib/normalize-widget-background-color.d.ts +1 -0
- package/dist/src/shared/lib/resolve-widget-title.d.ts +2 -0
- package/dist/src/shared/markdown/components/CarlitoMarkdownRenderer.vue.d.ts +8 -0
- package/dist/src/shared/markdown/components/PdfEmbed/PdfEmbed.vue.d.ts +6 -0
- package/dist/src/shared/markdown/components/PdfEmbed/PdfLoading.vue.d.ts +2 -0
- package/dist/src/shared/markdown/components/PdfEmbed/PdfRenderer.vue.d.ts +14 -0
- package/dist/src/shared/markdown/components/PdfEmbed/PdfViewer.vue.d.ts +38 -0
- package/dist/src/shared/markdown/components/PdfEmbed/PdfViewerError.vue.d.ts +5 -0
- package/dist/src/shared/markdown/components/PdfEmbed/composables/usePdfViewerState.d.ts +24 -0
- package/dist/src/shared/markdown/components/PdfEmbed/composables/useRenderPdf.d.ts +17 -0
- package/dist/src/shared/markdown/components/PdfEmbed/lib/pdf-canvas.d.ts +40 -0
- package/dist/src/shared/markdown/components/PdfEmbed/lib/pdf-render-watches.d.ts +15 -0
- package/dist/src/shared/markdown/has-meaningful-markdown-content.d.ts +5 -0
- package/dist/src/shared/markdown/process-markdown.d.ts +1 -0
- package/dist/src/shared/markdown/remark-center.d.ts +3 -0
- package/dist/src/shared/markdown/transform-markdown-url.d.ts +1 -0
- package/dist/src/shared/pdf/create-pdf-panzoom-session.d.ts +18 -0
- package/dist/src/shared/pdf/index.d.ts +5 -0
- package/dist/src/shared/pdf/pdf-panzoom.d.ts +14 -0
- package/dist/src/shared/pdf/pdfjs.d.ts +2 -0
- package/dist/src/shared/pdf/setup-pdf-panzoom-watches.d.ts +14 -0
- package/dist/src/shared/pdf/usePdfPanzoom.d.ts +6 -0
- package/dist/src/shared/pdf/usePdfPanzoom.types.d.ts +11 -0
- package/dist/src/shared/theme/theme-loader.d.ts +19 -0
- package/dist/src/shared/utils/cn.d.ts +2 -0
- package/dist/src/shared/utils/dom-events.d.ts +4 -0
- package/package.json +102 -4
- package/.babelrc +0 -12
- package/.eslintrc.json +0 -18
- package/CHANGELOG.md +0 -1931
- package/dist/1219.js +0 -1
- package/dist/1229.js +0 -2
- package/dist/1229.js.LICENSE.txt +0 -3
- package/dist/135.js +0 -2
- package/dist/135.js.LICENSE.txt +0 -3
- package/dist/1385.js +0 -2
- package/dist/1385.js.LICENSE.txt +0 -3
- package/dist/1421.js +0 -2
- package/dist/1421.js.LICENSE.txt +0 -3
- package/dist/1426.js +0 -2
- package/dist/1426.js.LICENSE.txt +0 -3
- package/dist/1428.js +0 -2
- package/dist/1428.js.LICENSE.txt +0 -3
- package/dist/1677.js +0 -2
- package/dist/1677.js.LICENSE.txt +0 -3
- package/dist/173.js +0 -2
- package/dist/173.js.LICENSE.txt +0 -3
- package/dist/1798.js +0 -2
- package/dist/1798.js.LICENSE.txt +0 -3
- package/dist/1813.js +0 -2
- package/dist/1813.js.LICENSE.txt +0 -3
- package/dist/2411.js +0 -2
- package/dist/2411.js.LICENSE.txt +0 -3
- package/dist/2782.js +0 -2
- package/dist/2782.js.LICENSE.txt +0 -3
- package/dist/2827.js +0 -2
- package/dist/2827.js.LICENSE.txt +0 -3
- package/dist/2939.js +0 -2
- package/dist/2939.js.LICENSE.txt +0 -3
- package/dist/3002.js +0 -2
- package/dist/3002.js.LICENSE.txt +0 -3
- package/dist/3140.js +0 -1
- package/dist/3rdpartylicenses.txt +0 -3609
- package/dist/4189.js +0 -2
- package/dist/4189.js.LICENSE.txt +0 -3
- package/dist/4194.js +0 -2
- package/dist/4194.js.LICENSE.txt +0 -3
- package/dist/4220.js +0 -2
- package/dist/4220.js.LICENSE.txt +0 -3
- package/dist/434.js +0 -2
- package/dist/434.js.LICENSE.txt +0 -3
- package/dist/4606.js +0 -2
- package/dist/4606.js.LICENSE.txt +0 -3
- package/dist/4614.js +0 -2
- package/dist/4614.js.LICENSE.txt +0 -3
- package/dist/5065.js +0 -2
- package/dist/5065.js.LICENSE.txt +0 -3
- package/dist/5090.js +0 -2
- package/dist/5090.js.LICENSE.txt +0 -3
- package/dist/5143.js +0 -2
- package/dist/5143.js.LICENSE.txt +0 -3
- package/dist/5309.js +0 -2
- package/dist/5309.js.LICENSE.txt +0 -3
- package/dist/5397.js +0 -2
- package/dist/5397.js.LICENSE.txt +0 -3
- package/dist/5427.js +0 -2
- package/dist/5427.js.LICENSE.txt +0 -3
- package/dist/5941.js +0 -2
- package/dist/5941.js.LICENSE.txt +0 -3
- package/dist/5956.js +0 -2
- package/dist/5956.js.LICENSE.txt +0 -3
- package/dist/6016.js +0 -2
- package/dist/6016.js.LICENSE.txt +0 -3
- package/dist/6250.js +0 -2
- package/dist/6250.js.LICENSE.txt +0 -3
- package/dist/6290.js +0 -2
- package/dist/6290.js.LICENSE.txt +0 -3
- package/dist/6335.js +0 -2
- package/dist/6335.js.LICENSE.txt +0 -3
- package/dist/6462.js +0 -2
- package/dist/6462.js.LICENSE.txt +0 -3
- package/dist/650.js +0 -2
- package/dist/650.js.LICENSE.txt +0 -3
- package/dist/6531.js +0 -2
- package/dist/6531.js.LICENSE.txt +0 -3
- package/dist/6878.js +0 -2
- package/dist/6878.js.LICENSE.txt +0 -3
- package/dist/6892.js +0 -2
- package/dist/6892.js.LICENSE.txt +0 -3
- package/dist/6979.js +0 -2
- package/dist/6979.js.LICENSE.txt +0 -3
- package/dist/7120.js +0 -2
- package/dist/7120.js.LICENSE.txt +0 -3
- package/dist/7149.js +0 -2
- package/dist/7149.js.LICENSE.txt +0 -3
- package/dist/7202.js +0 -2
- package/dist/7202.js.LICENSE.txt +0 -3
- package/dist/7213.js +0 -2
- package/dist/7213.js.LICENSE.txt +0 -3
- package/dist/7290.js +0 -2
- package/dist/7290.js.LICENSE.txt +0 -3
- package/dist/7373.js +0 -2
- package/dist/7373.js.LICENSE.txt +0 -3
- package/dist/7515.js +0 -2
- package/dist/7515.js.LICENSE.txt +0 -3
- package/dist/7797.js +0 -2
- package/dist/7797.js.LICENSE.txt +0 -3
- package/dist/7804.js +0 -2
- package/dist/7804.js.LICENSE.txt +0 -3
- package/dist/7813.js +0 -2
- package/dist/7813.js.LICENSE.txt +0 -3
- package/dist/7843.js +0 -2
- package/dist/7843.js.LICENSE.txt +0 -3
- package/dist/8199.js +0 -2
- package/dist/8199.js.LICENSE.txt +0 -3
- package/dist/821.js +0 -2
- package/dist/821.js.LICENSE.txt +0 -3
- package/dist/8365.js +0 -2
- package/dist/8365.js.LICENSE.txt +0 -3
- package/dist/8599.js +0 -2
- package/dist/8599.js.LICENSE.txt +0 -3
- package/dist/880.js +0 -2
- package/dist/880.js.LICENSE.txt +0 -3
- package/dist/8831.js +0 -2
- package/dist/8831.js.LICENSE.txt +0 -3
- package/dist/885.js +0 -2
- package/dist/885.js.LICENSE.txt +0 -3
- package/dist/9079.js +0 -2
- package/dist/9079.js.LICENSE.txt +0 -3
- package/dist/9104.js +0 -2
- package/dist/9104.js.LICENSE.txt +0 -3
- package/dist/9236.js +0 -2
- package/dist/9236.js.LICENSE.txt +0 -3
- package/dist/942.js +0 -2
- package/dist/942.js.LICENSE.txt +0 -3
- package/dist/9456.js +0 -2
- package/dist/9456.js.LICENSE.txt +0 -3
- package/dist/951.js +0 -2
- package/dist/951.js.LICENSE.txt +0 -3
- package/dist/9636.js +0 -2
- package/dist/9636.js.LICENSE.txt +0 -3
- package/dist/9742.js +0 -2
- package/dist/9742.js.LICENSE.txt +0 -3
- package/dist/9792.js +0 -2
- package/dist/9792.js.LICENSE.txt +0 -3
- package/dist/9875.js +0 -2
- package/dist/9875.js.LICENSE.txt +0 -3
- package/dist/Carlito.eot +0 -0
- package/dist/Carlito.svg +0 -321
- package/dist/Carlito.ttf +0 -0
- package/dist/Carlito.woff +0 -0
- package/dist/Carlito.woff2 +0 -0
- package/dist/bookito-widget.umd.js.LICENSE.txt +0 -128
- package/dist/bookito-widget.window.js.LICENSE.txt +0 -128
- package/dist/layers-2x.png +0 -0
- package/dist/layers.png +0 -0
- package/dist/marker-icon.png +0 -0
- package/e2e-tests/e2e.html +0 -77
- package/index.html +0 -92
- package/jest.config.ts +0 -9
- package/postcss.config.js +0 -3
- package/project.json +0 -72
- package/src/BookitoEventDetail/index.tsx +0 -101
- package/src/BookitoEventModal/ModalLoader.tsx +0 -43
- package/src/BookitoEventModal/index.tsx +0 -71
- package/src/BookitoForm/EventInfo.tsx +0 -68
- package/src/BookitoForm/FormSubmitButton/AnimatedSuccessCheckmark/index.module.css +0 -45
- package/src/BookitoForm/FormSubmitButton/AnimatedSuccessCheckmark/index.tsx +0 -24
- package/src/BookitoForm/FormSubmitButton/index.tsx +0 -58
- package/src/BookitoForm/NewBookingForm.tsx +0 -199
- package/src/BookitoWidget/index.tsx +0 -299
- package/src/BookitoWidgetProvider/BookitoWidgetProvider.tsx +0 -36
- package/src/Card/EmptyCard.tsx +0 -30
- package/src/Card/index.tsx +0 -103
- package/src/CardHolder/index.tsx +0 -32
- package/src/Modal/index.tsx +0 -34
- package/src/assets/carlito-logo.svg +0 -10
- package/src/calendar-styles.css +0 -22
- package/src/index.module.css +0 -27
- package/src/index.tsx +0 -166
- package/src/types.ts +0 -8
- package/src/utils/index.tsx +0 -7
- package/tailwind.config.js +0 -13
- package/tsconfig.json +0 -26
- package/tsconfig.lib.json +0 -23
- package/tsconfig.spec.json +0 -20
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { BookingFormStateType } from '../../../../features/booking-flow/model/booking-form.types';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
canContinue: boolean;
|
|
4
|
+
form: BookingFormStateType;
|
|
5
|
+
hasPms: boolean;
|
|
6
|
+
isSubmitting?: boolean;
|
|
7
|
+
language: string;
|
|
8
|
+
};
|
|
9
|
+
declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
10
|
+
next: () => any;
|
|
11
|
+
"update:phoneNumber": (value: string) => any;
|
|
12
|
+
"update:bookingReference": (value: string) => any;
|
|
13
|
+
"update:communicationLanguage": (value: string) => any;
|
|
14
|
+
"update:dateOfBirth": (value: string) => any;
|
|
15
|
+
"update:guestEmail": (value: string) => any;
|
|
16
|
+
"update:guestName": (value: string) => any;
|
|
17
|
+
"update:phoneDialCode": (value: string) => any;
|
|
18
|
+
"update:roomNumber": (value: string) => any;
|
|
19
|
+
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
20
|
+
onNext?: (() => any) | undefined;
|
|
21
|
+
"onUpdate:phoneNumber"?: ((value: string) => any) | undefined;
|
|
22
|
+
"onUpdate:bookingReference"?: ((value: string) => any) | undefined;
|
|
23
|
+
"onUpdate:communicationLanguage"?: ((value: string) => any) | undefined;
|
|
24
|
+
"onUpdate:dateOfBirth"?: ((value: string) => any) | undefined;
|
|
25
|
+
"onUpdate:guestEmail"?: ((value: string) => any) | undefined;
|
|
26
|
+
"onUpdate:guestName"?: ((value: string) => any) | undefined;
|
|
27
|
+
"onUpdate:phoneDialCode"?: ((value: string) => any) | undefined;
|
|
28
|
+
"onUpdate:roomNumber"?: ((value: string) => any) | undefined;
|
|
29
|
+
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLElement>;
|
|
30
|
+
export default _default;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
autocomplete?: string;
|
|
3
|
+
inputmode?: 'text' | 'email' | 'tel' | 'numeric';
|
|
4
|
+
modelValue: string;
|
|
5
|
+
placeholder?: string;
|
|
6
|
+
type?: string;
|
|
7
|
+
};
|
|
8
|
+
declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
9
|
+
"update:modelValue": (value: string) => any;
|
|
10
|
+
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
11
|
+
"onUpdate:modelValue"?: ((value: string) => any) | undefined;
|
|
12
|
+
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLInputElement>;
|
|
13
|
+
export default _default;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { BookitoPriceVariantType } from '../../../../features/event-feed/model/widget.types';
|
|
2
|
+
import { SupportedLanguageType } from '../../../../shared/config/languages';
|
|
3
|
+
type __VLS_Props = {
|
|
4
|
+
currency: string;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
language: SupportedLanguageType;
|
|
7
|
+
priceVariants: BookitoPriceVariantType[];
|
|
8
|
+
selectedPriceVariantIds: string[];
|
|
9
|
+
};
|
|
10
|
+
declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
11
|
+
"toggle-price-variant": (variantId: string) => any;
|
|
12
|
+
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
13
|
+
"onToggle-price-variant"?: ((variantId: string) => any) | undefined;
|
|
14
|
+
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLElement>;
|
|
15
|
+
export default _default;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
disabled?: boolean;
|
|
3
|
+
label: string;
|
|
4
|
+
};
|
|
5
|
+
declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
6
|
+
click: () => any;
|
|
7
|
+
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
8
|
+
onClick?: (() => any) | undefined;
|
|
9
|
+
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLButtonElement>;
|
|
10
|
+
export default _default;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { BookingFlowPanelPropsType } from '../../../../features/booking-flow/components/booking-flow.props';
|
|
2
|
+
declare const _default: import('vue').DefineComponent<BookingFlowPanelPropsType, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
3
|
+
completed: () => any;
|
|
4
|
+
}, string, import('vue').PublicProps, Readonly<BookingFlowPanelPropsType> & Readonly<{
|
|
5
|
+
onCompleted?: (() => any) | undefined;
|
|
6
|
+
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
7
|
+
export default _default;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { BookingDisplayStepEntryType, BookingDisplayStepType } from '../../../../features/booking-flow/model/booking-display-step.types';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
activeStep: BookingDisplayStepType;
|
|
4
|
+
canGoToStep: (stepId: BookingDisplayStepType) => boolean;
|
|
5
|
+
isStepComplete: (stepId: BookingDisplayStepType) => boolean;
|
|
6
|
+
steps: BookingDisplayStepEntryType[];
|
|
7
|
+
};
|
|
8
|
+
declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
9
|
+
select: (stepId: BookingDisplayStepType) => any;
|
|
10
|
+
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
11
|
+
onSelect?: ((stepId: BookingDisplayStepType) => any) | undefined;
|
|
12
|
+
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLElement>;
|
|
13
|
+
export default _default;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
successMessage: string;
|
|
3
|
+
};
|
|
4
|
+
declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
5
|
+
export default _default;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { BookingGuestOptionType } from '../../../../features/guest-auth/api/guest-auth.dto';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
guestOptions: BookingGuestOptionType[];
|
|
4
|
+
selectedGuestIds: string[];
|
|
5
|
+
};
|
|
6
|
+
declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
7
|
+
"toggle-guest": (guestId: string) => any;
|
|
8
|
+
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
9
|
+
"onToggle-guest"?: ((guestId: string) => any) | undefined;
|
|
10
|
+
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLElement>;
|
|
11
|
+
export default _default;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { BookingGuestsStepPropsType } from '../../../../features/booking-flow/components/booking-flow.props';
|
|
2
|
+
declare const _default: import('vue').DefineComponent<BookingGuestsStepPropsType, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
3
|
+
submit: () => any;
|
|
4
|
+
"toggle-price-variant": (variantId: string) => any;
|
|
5
|
+
"toggle-guest": (guestId: string) => any;
|
|
6
|
+
"update:comment": (value: string) => any;
|
|
7
|
+
"update:numberOfAdditionalParticipants": (count: number) => any;
|
|
8
|
+
}, string, import('vue').PublicProps, Readonly<BookingGuestsStepPropsType> & Readonly<{
|
|
9
|
+
onSubmit?: (() => any) | undefined;
|
|
10
|
+
"onToggle-price-variant"?: ((variantId: string) => any) | undefined;
|
|
11
|
+
"onToggle-guest"?: ((guestId: string) => any) | undefined;
|
|
12
|
+
"onUpdate:comment"?: ((value: string) => any) | undefined;
|
|
13
|
+
"onUpdate:numberOfAdditionalParticipants"?: ((count: number) => any) | undefined;
|
|
14
|
+
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
15
|
+
export default _default;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
disabled?: boolean;
|
|
3
|
+
heading: string;
|
|
4
|
+
hint: string;
|
|
5
|
+
isIncrementDisabled: boolean;
|
|
6
|
+
value: number;
|
|
7
|
+
};
|
|
8
|
+
declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
9
|
+
"update:value": (count: number) => any;
|
|
10
|
+
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
11
|
+
"onUpdate:value"?: ((count: number) => any) | undefined;
|
|
12
|
+
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLElement>;
|
|
13
|
+
export default _default;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { BookitoEventType, BookitoTimeSlotType } from '../../../../features/event-feed/model/widget.types';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
availableDates: string[];
|
|
4
|
+
canContinue: boolean;
|
|
5
|
+
event: BookitoEventType;
|
|
6
|
+
isSubmitting?: boolean;
|
|
7
|
+
isTimeSlotsLoading?: boolean;
|
|
8
|
+
language: string;
|
|
9
|
+
requiresTimeStep: boolean;
|
|
10
|
+
selectedDate: string;
|
|
11
|
+
selectedTimeSlotStart: string;
|
|
12
|
+
timeSlots: BookitoTimeSlotType[];
|
|
13
|
+
timezone?: string;
|
|
14
|
+
};
|
|
15
|
+
declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
16
|
+
next: () => any;
|
|
17
|
+
"update:selectedDate": (value: string) => any;
|
|
18
|
+
"update:selectedTimeSlotStart": (value: string) => any;
|
|
19
|
+
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
20
|
+
onNext?: (() => any) | undefined;
|
|
21
|
+
"onUpdate:selectedDate"?: ((value: string) => any) | undefined;
|
|
22
|
+
"onUpdate:selectedTimeSlotStart"?: ((value: string) => any) | undefined;
|
|
23
|
+
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLElement>;
|
|
24
|
+
export default _default;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { BookingSubmitLabelKeyType } from '../../../../features/booking-flow/lib/booking-payload.helpers';
|
|
2
|
+
import { BookitoPriceVariantType, BookitoEventType } from '../../../../features/event-feed/model/widget.types';
|
|
3
|
+
import { BookingGuestOptionType } from '../../../../features/guest-auth/api/guest-auth.dto';
|
|
4
|
+
export type BookingFlowPanelPropsType = {
|
|
5
|
+
authId: string;
|
|
6
|
+
availableDates?: string[];
|
|
7
|
+
currency?: string;
|
|
8
|
+
event: BookitoEventType;
|
|
9
|
+
initialDate: string;
|
|
10
|
+
language: string;
|
|
11
|
+
timezone?: string;
|
|
12
|
+
};
|
|
13
|
+
export type BookingGuestsStepPropsType = {
|
|
14
|
+
basePrice?: number | null;
|
|
15
|
+
comment: string;
|
|
16
|
+
currency: string;
|
|
17
|
+
formError: string | null;
|
|
18
|
+
guestOptions: BookingGuestOptionType[];
|
|
19
|
+
hasExternalMainBooker?: boolean;
|
|
20
|
+
showRoomGuests?: boolean;
|
|
21
|
+
isCustomOverCapacity?: boolean;
|
|
22
|
+
isSpaEvent?: boolean;
|
|
23
|
+
isSubmitting?: boolean;
|
|
24
|
+
language: string;
|
|
25
|
+
maxAdditional: number | undefined;
|
|
26
|
+
numberOfAdditionalParticipants: number;
|
|
27
|
+
priceVariants: BookitoPriceVariantType[];
|
|
28
|
+
selectedGuestIds: string[];
|
|
29
|
+
selectedPriceVariantIds: string[];
|
|
30
|
+
submitLabelKey: BookingSubmitLabelKeyType;
|
|
31
|
+
};
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { ComputedRef, Ref } from 'vue';
|
|
2
|
+
import { useBookingFlowActions } from '../../../../features/booking-flow/composables/useBookingFlowActions';
|
|
3
|
+
import { BookingSubmitLabelKeyType } from '../../../../features/booking-flow/lib/booking-payload.helpers';
|
|
4
|
+
import { BookingDisplayStepEntryType, BookingDisplayStepType } from '../../../../features/booking-flow/model/booking-display-step.types';
|
|
5
|
+
import { BookingFormStateType, BookingStepType } from '../../../../features/booking-flow/model/booking-form.types';
|
|
6
|
+
import { ResolveBookingWaitlistResultType } from '../../../../features/booking-flow/lib/resolve-booking-waitlist';
|
|
7
|
+
import { BookitoTimeSlotType } from '../../../../features/event-feed/model/widget.types';
|
|
8
|
+
type ActionsType = ReturnType<typeof useBookingFlowActions>;
|
|
9
|
+
type ContextType = {
|
|
10
|
+
actions: ActionsType;
|
|
11
|
+
activeDisplayStep: ComputedRef<BookingDisplayStepType>;
|
|
12
|
+
availableDates: ComputedRef<string[]>;
|
|
13
|
+
currency: ComputedRef<string>;
|
|
14
|
+
displaySteps: ComputedRef<BookingDisplayStepEntryType[]>;
|
|
15
|
+
form: BookingFormStateType;
|
|
16
|
+
hasPms: ComputedRef<boolean>;
|
|
17
|
+
isCustomOverCapacity: ComputedRef<boolean>;
|
|
18
|
+
isSubmitting: Ref<boolean>;
|
|
19
|
+
isSuccess: Ref<boolean>;
|
|
20
|
+
isTimeSlotsLoading: Ref<boolean>;
|
|
21
|
+
maxParticipants: ComputedRef<number>;
|
|
22
|
+
requiresTimeStep: ComputedRef<boolean>;
|
|
23
|
+
step: Ref<BookingStepType>;
|
|
24
|
+
submitError: Ref<string | null>;
|
|
25
|
+
submitLabelKey: ComputedRef<BookingSubmitLabelKeyType>;
|
|
26
|
+
successMessage: Ref<string>;
|
|
27
|
+
timeSlots: Ref<BookitoTimeSlotType[]>;
|
|
28
|
+
waitlist: ComputedRef<ResolveBookingWaitlistResultType>;
|
|
29
|
+
};
|
|
30
|
+
export declare function createBookingFlowApi(context: ContextType): {
|
|
31
|
+
activeDisplayStep: ComputedRef<BookingDisplayStepType>;
|
|
32
|
+
availableDates: ComputedRef<string[]>;
|
|
33
|
+
availableGuests: ComputedRef<import('../../guest-auth/api/guest-auth.dto').BookingGuestOptionType[]>;
|
|
34
|
+
canContinueDate: ComputedRef<boolean>;
|
|
35
|
+
canContinueTime: ComputedRef<boolean>;
|
|
36
|
+
canContinueDetails: ComputedRef<boolean>;
|
|
37
|
+
canContinueTimeSection: ComputedRef<boolean>;
|
|
38
|
+
canGoToDisplayStep: (target: BookingDisplayStepType) => boolean;
|
|
39
|
+
canGoToStep: (target: BookingStepType) => boolean;
|
|
40
|
+
confirmBooking: () => Promise<void>;
|
|
41
|
+
continueFromDetails: () => Promise<void>;
|
|
42
|
+
continueFromTimeSection: () => void;
|
|
43
|
+
currency: ComputedRef<string>;
|
|
44
|
+
displaySteps: ComputedRef<BookingDisplayStepEntryType[]>;
|
|
45
|
+
form: BookingFormStateType;
|
|
46
|
+
goToDisplayStep: (target: BookingDisplayStepType) => void;
|
|
47
|
+
goToStep: (target: BookingStepType) => void;
|
|
48
|
+
goToTimeStep: () => Promise<void> | undefined;
|
|
49
|
+
hasPms: ComputedRef<boolean>;
|
|
50
|
+
isCustomOverCapacity: ComputedRef<boolean>;
|
|
51
|
+
isDisplayStepComplete: (target: BookingDisplayStepType) => boolean;
|
|
52
|
+
isStepComplete: (stepId: BookingStepType) => boolean;
|
|
53
|
+
isSubmitting: Ref<boolean, boolean>;
|
|
54
|
+
isSuccess: Ref<boolean, boolean>;
|
|
55
|
+
isTimeSlotsLoading: Ref<boolean, boolean>;
|
|
56
|
+
maxParticipants: ComputedRef<number>;
|
|
57
|
+
onDateOfBirthInput: (value: string) => void;
|
|
58
|
+
requiresTimeStep: ComputedRef<boolean>;
|
|
59
|
+
setExtraParticipantCount: (count: number) => void;
|
|
60
|
+
step: Ref<BookingStepType, BookingStepType>;
|
|
61
|
+
submitError: Ref<string | null, string | null>;
|
|
62
|
+
submitLabelKey: ComputedRef<BookingSubmitLabelKeyType>;
|
|
63
|
+
successMessage: Ref<string, string>;
|
|
64
|
+
timeSlots: Ref<BookitoTimeSlotType[], BookitoTimeSlotType[]>;
|
|
65
|
+
toggleExtra: (id: string) => void;
|
|
66
|
+
toggleGuestId: (id: string) => void;
|
|
67
|
+
hasExternalMainBooker: ComputedRef<boolean>;
|
|
68
|
+
waitlist: ComputedRef<ResolveBookingWaitlistResultType>;
|
|
69
|
+
};
|
|
70
|
+
export {};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { BookingStepType } from '../../../../features/booking-flow/model/booking-form.types';
|
|
2
|
+
import { BookitoEventType } from '../../../../features/event-feed/model/widget.types';
|
|
3
|
+
type OptionsType = {
|
|
4
|
+
authId: string;
|
|
5
|
+
availableDates?: string[];
|
|
6
|
+
currency?: string;
|
|
7
|
+
event: BookitoEventType;
|
|
8
|
+
initialDate: string;
|
|
9
|
+
language: string;
|
|
10
|
+
onCompleted: () => void;
|
|
11
|
+
};
|
|
12
|
+
export declare function useBookingFlow(options: OptionsType): {
|
|
13
|
+
activeDisplayStep: import('vue').ComputedRef<import('../model/booking-display-step.types').BookingDisplayStepType>;
|
|
14
|
+
availableDates: import('vue').ComputedRef<string[]>;
|
|
15
|
+
availableGuests: import('vue').ComputedRef<import('../../guest-auth/api/guest-auth.dto').BookingGuestOptionType[]>;
|
|
16
|
+
canContinueDate: import('vue').ComputedRef<boolean>;
|
|
17
|
+
canContinueTime: import('vue').ComputedRef<boolean>;
|
|
18
|
+
canContinueDetails: import('vue').ComputedRef<boolean>;
|
|
19
|
+
canContinueTimeSection: import('vue').ComputedRef<boolean>;
|
|
20
|
+
canGoToDisplayStep: (target: import('../model/booking-display-step.types').BookingDisplayStepType) => boolean;
|
|
21
|
+
canGoToStep: (target: BookingStepType) => boolean;
|
|
22
|
+
confirmBooking: () => Promise<void>;
|
|
23
|
+
continueFromDetails: () => Promise<void>;
|
|
24
|
+
continueFromTimeSection: () => void;
|
|
25
|
+
currency: import('vue').ComputedRef<string>;
|
|
26
|
+
displaySteps: import('vue').ComputedRef<import('../model/booking-display-step.types').BookingDisplayStepEntryType[]>;
|
|
27
|
+
form: import('../../../../features/booking-flow/model/booking-form.types').BookingFormStateType;
|
|
28
|
+
goToDisplayStep: (target: import('../model/booking-display-step.types').BookingDisplayStepType) => void;
|
|
29
|
+
goToStep: (target: BookingStepType) => void;
|
|
30
|
+
goToTimeStep: () => Promise<void> | undefined;
|
|
31
|
+
hasPms: import('vue').ComputedRef<boolean>;
|
|
32
|
+
isCustomOverCapacity: import('vue').ComputedRef<boolean>;
|
|
33
|
+
isDisplayStepComplete: (target: import('../model/booking-display-step.types').BookingDisplayStepType) => boolean;
|
|
34
|
+
isStepComplete: (stepId: BookingStepType) => boolean;
|
|
35
|
+
isSubmitting: import('vue').Ref<boolean, boolean>;
|
|
36
|
+
isSuccess: import('vue').Ref<boolean, boolean>;
|
|
37
|
+
isTimeSlotsLoading: import('vue').Ref<boolean, boolean>;
|
|
38
|
+
maxParticipants: import('vue').ComputedRef<number>;
|
|
39
|
+
onDateOfBirthInput: (value: string) => void;
|
|
40
|
+
requiresTimeStep: import('vue').ComputedRef<boolean>;
|
|
41
|
+
setExtraParticipantCount: (count: number) => void;
|
|
42
|
+
step: import('vue').Ref<BookingStepType, BookingStepType>;
|
|
43
|
+
submitError: import('vue').Ref<string | null, string | null>;
|
|
44
|
+
submitLabelKey: import('vue').ComputedRef<import('../../../../features/booking-flow/lib/booking-payload.helpers').BookingSubmitLabelKeyType>;
|
|
45
|
+
successMessage: import('vue').Ref<string, string>;
|
|
46
|
+
timeSlots: import('vue').Ref<import('../../../../features/event-feed/model/widget.types').BookitoTimeSlotType[], import('../../../../features/event-feed/model/widget.types').BookitoTimeSlotType[]>;
|
|
47
|
+
toggleExtra: (id: string) => void;
|
|
48
|
+
toggleGuestId: (id: string) => void;
|
|
49
|
+
hasExternalMainBooker: import('vue').ComputedRef<boolean>;
|
|
50
|
+
waitlist: import('vue').ComputedRef<import('../lib/resolve-booking-waitlist').ResolveBookingWaitlistResultType>;
|
|
51
|
+
};
|
|
52
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { BookingDisplayStepType } from '../../../../features/booking-flow/model/booking-display-step.types';
|
|
2
|
+
import { BookingStepType } from '../../../../features/booking-flow/model/booking-form.types';
|
|
3
|
+
import { BookingFlowActionsOptionsType } from './useBookingFlowActions.types';
|
|
4
|
+
export declare function useBookingFlowActions(options: BookingFlowActionsOptionsType): {
|
|
5
|
+
confirmBooking: () => Promise<void>;
|
|
6
|
+
continueFromDetails: () => Promise<void>;
|
|
7
|
+
continueFromTimeSection: () => void;
|
|
8
|
+
goToTimeStep: () => Promise<void> | undefined;
|
|
9
|
+
goToDisplayStep: (target: BookingDisplayStepType, internalStep: BookingStepType | null) => void;
|
|
10
|
+
goToStep: (target: BookingStepType) => void;
|
|
11
|
+
onDateOfBirthInput: (value: string) => void;
|
|
12
|
+
setExtraParticipantCount: (count: number) => void;
|
|
13
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ComputedRef, Ref } from 'vue';
|
|
2
|
+
import { CreateBookitoBookingRequestType } from '../../../../features/booking-flow/api/bookito-booking.dto';
|
|
3
|
+
import { BookingFormStateType, BookingStepType } from '../../../../features/booking-flow/model/booking-form.types';
|
|
4
|
+
import { ResolveBookingWaitlistResultType } from '../../../../features/booking-flow/lib/resolve-booking-waitlist';
|
|
5
|
+
import { BookitoEventType, BookitoTimeSlotType } from '../../../../features/event-feed/model/widget.types';
|
|
6
|
+
import { GuestLoginRequestType, GuestLoginResponseType } from '../../../../features/guest-auth/api/guest-auth.dto';
|
|
7
|
+
export type CreateBookingMutationType = {
|
|
8
|
+
mutateAsync: (payload: CreateBookitoBookingRequestType) => Promise<unknown>;
|
|
9
|
+
};
|
|
10
|
+
export type GuestLoginMutationType = {
|
|
11
|
+
mutateAsync: (payload: GuestLoginRequestType) => Promise<GuestLoginResponseType>;
|
|
12
|
+
};
|
|
13
|
+
export type BookingFlowActionsOptionsType = {
|
|
14
|
+
authId: string;
|
|
15
|
+
event: BookitoEventType;
|
|
16
|
+
form: BookingFormStateType;
|
|
17
|
+
hasCompletedConfirmStep: Ref<boolean>;
|
|
18
|
+
hasPms: ComputedRef<boolean>;
|
|
19
|
+
isSubmitting: Ref<boolean>;
|
|
20
|
+
isSuccess: Ref<boolean>;
|
|
21
|
+
language: string;
|
|
22
|
+
onCompleted: () => void;
|
|
23
|
+
requiresTimeStep: ComputedRef<boolean>;
|
|
24
|
+
step: Ref<BookingStepType>;
|
|
25
|
+
submitError: Ref<string | null>;
|
|
26
|
+
successMessage: Ref<string>;
|
|
27
|
+
timeSlots: Ref<BookitoTimeSlotType[]>;
|
|
28
|
+
waitlist: ComputedRef<ResolveBookingWaitlistResultType>;
|
|
29
|
+
createBookingMutation: CreateBookingMutationType;
|
|
30
|
+
guestLoginMutation: GuestLoginMutationType;
|
|
31
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ComputedRef, Ref } from 'vue';
|
|
2
|
+
import { BookingFormStateType } from '../../../../features/booking-flow/model/booking-form.types';
|
|
3
|
+
type OptionsType = {
|
|
4
|
+
form: BookingFormStateType;
|
|
5
|
+
hasCompletedConfirmStep: Ref<boolean>;
|
|
6
|
+
hasPms: ComputedRef<boolean>;
|
|
7
|
+
waitlist: ComputedRef<{
|
|
8
|
+
maxNumberOfAdditionalParticipants?: number | null;
|
|
9
|
+
}>;
|
|
10
|
+
};
|
|
11
|
+
export declare function useBookingFlowFormSync(options: OptionsType): void;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Ref } from 'vue';
|
|
2
|
+
import { BookingFormStateType } from '../../../../features/booking-flow/model/booking-form.types';
|
|
3
|
+
import { BookitoEventType, BookitoTimeSlotType } from '../../../../features/event-feed/model/widget.types';
|
|
4
|
+
type OptionsType = {
|
|
5
|
+
event: BookitoEventType;
|
|
6
|
+
form: BookingFormStateType;
|
|
7
|
+
initialDate: string;
|
|
8
|
+
requiresTimeStep: Ref<boolean>;
|
|
9
|
+
timeSlots: Ref<BookitoTimeSlotType[]>;
|
|
10
|
+
};
|
|
11
|
+
export declare function useBookingFlowWaitlist(options: OptionsType): {
|
|
12
|
+
capacityTimeSlot: import('vue').ComputedRef<BookitoTimeSlotType | null>;
|
|
13
|
+
maxParticipants: import('vue').ComputedRef<number>;
|
|
14
|
+
selectedTimeSlot: import('vue').ComputedRef<BookitoTimeSlotType | null>;
|
|
15
|
+
waitlist: import('vue').ComputedRef<import('../../../../features/booking-flow/lib/resolve-booking-waitlist').ResolveBookingWaitlistResultType>;
|
|
16
|
+
};
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { BookingSubmitLabelKeyType } from '../../../../features/booking-flow/lib/booking-payload.helpers';
|
|
2
|
+
import { BookitoPriceVariantType } from '../../../../features/event-feed/model/widget.types';
|
|
3
|
+
import { SupportedLanguageType } from '../../../../shared/config/languages';
|
|
4
|
+
type BookingGuestsStepLabelsParamsType = {
|
|
5
|
+
basePrice: number | null;
|
|
6
|
+
currency: string;
|
|
7
|
+
/** Custom timeslots over capacity — waitlist not allowed; CTA stays disabled (legacy). */
|
|
8
|
+
isCustomOverCapacity: boolean;
|
|
9
|
+
hasExternalMainBooker: boolean;
|
|
10
|
+
language: SupportedLanguageType;
|
|
11
|
+
maxAdditional: number | undefined;
|
|
12
|
+
numberOfAdditionalParticipants: number;
|
|
13
|
+
priceVariants: BookitoPriceVariantType[];
|
|
14
|
+
selectedGuestIds: string[];
|
|
15
|
+
selectedPriceVariantIds: string[];
|
|
16
|
+
submitLabelKey: BookingSubmitLabelKeyType;
|
|
17
|
+
};
|
|
18
|
+
export declare function useBookingGuestsStepLabels(getParams: () => BookingGuestsStepLabelsParamsType): {
|
|
19
|
+
bookingForLabel: import('vue').ComputedRef<string>;
|
|
20
|
+
isAdditionalIncrementDisabled: import('vue').ComputedRef<boolean>;
|
|
21
|
+
isSubmitDisabled: import('vue').ComputedRef<boolean>;
|
|
22
|
+
participantsHeading: import('vue').ComputedRef<string>;
|
|
23
|
+
submitLabel: import('vue').ComputedRef<string>;
|
|
24
|
+
totalParticipants: import('vue').ComputedRef<number>;
|
|
25
|
+
};
|
|
26
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { MaybeRefOrGetter } from 'vue';
|
|
2
|
+
import { BookitoEventType, BookitoTimeSlotType } from '../../../../features/event-feed/model/widget.types';
|
|
3
|
+
type OptionsType = {
|
|
4
|
+
availableDates: string[];
|
|
5
|
+
event: BookitoEventType;
|
|
6
|
+
language: string;
|
|
7
|
+
selectedDate: MaybeRefOrGetter<string>;
|
|
8
|
+
timezone?: string;
|
|
9
|
+
onSelectedDateChange: (value: string) => void;
|
|
10
|
+
onSelectedTimeSlotChange: (value: string) => void;
|
|
11
|
+
};
|
|
12
|
+
export declare function useBookingTimeSectionState(options: OptionsType): {
|
|
13
|
+
formatSlotLabel: (slot: BookitoTimeSlotType) => string;
|
|
14
|
+
hasAvailableDates: import('vue').ComputedRef<boolean>;
|
|
15
|
+
intlLanguage: import('vue').ComputedRef<"en" | "de" | "fr" | "it" | "pl">;
|
|
16
|
+
onTimeSlotChange: (event: Event) => void;
|
|
17
|
+
selectedDateKey: import('vue').WritableComputedRef<"" | `${number}-${string}-${string}`, "" | `${number}-${string}-${string}`>;
|
|
18
|
+
};
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Ref } from 'vue';
|
|
2
|
+
import { BookitoTimeSlotType } from '../../../../features/event-feed/model/widget.types';
|
|
3
|
+
type TimeSlotsFormType = {
|
|
4
|
+
bookedForDate: string;
|
|
5
|
+
selectedTimeSlotStart: string;
|
|
6
|
+
};
|
|
7
|
+
export declare function useBookingTimeSlots(options: {
|
|
8
|
+
authId: string;
|
|
9
|
+
enabled: Ref<boolean>;
|
|
10
|
+
eventId: string;
|
|
11
|
+
form: TimeSlotsFormType;
|
|
12
|
+
initialDate: string;
|
|
13
|
+
requiresTimeStep: Ref<boolean>;
|
|
14
|
+
}): {
|
|
15
|
+
isTimeSlotsLoading: import('vue').ComputedRef<boolean>;
|
|
16
|
+
timeSlots: import('vue').ComputedRef<BookitoTimeSlotType[]>;
|
|
17
|
+
};
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { DateValue } from 'reka-ui';
|
|
2
|
+
import { CalendarDateKeyType } from '../../../../shared/calendar/calendar-date.types';
|
|
3
|
+
export declare function normalizeBookingCalendarDateKey(value: string): CalendarDateKeyType | null;
|
|
4
|
+
export declare function resolveBookingCalendarBounds(availableDates: string[]): {
|
|
5
|
+
availableDateKeys: `${number}-${string}-${string}`[];
|
|
6
|
+
maxValue: `${number}-${string}-${string}` | null;
|
|
7
|
+
minValue: `${number}-${string}-${string}` | null;
|
|
8
|
+
};
|
|
9
|
+
export declare function isBookingCalendarDateUnavailable(date: DateValue, availableDateKeys: ReadonlySet<CalendarDateKeyType>): boolean;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { BookingFormStateType } from '../../../../features/booking-flow/model/booking-form.types';
|
|
2
|
+
export type BookingDetailsFlowSignatureType = {
|
|
3
|
+
flow: 'extended';
|
|
4
|
+
} | {
|
|
5
|
+
flow: 'pms_login';
|
|
6
|
+
bookingReference: string;
|
|
7
|
+
dateOfBirth: string;
|
|
8
|
+
roomNumber: string;
|
|
9
|
+
};
|
|
10
|
+
export declare function resolveBookingDetailsFlowSignature(hasPms: boolean, form: BookingFormStateType): BookingDetailsFlowSignatureType;
|
|
11
|
+
export declare function areBookingDetailsFlowSignaturesEqual(previous: BookingDetailsFlowSignatureType | undefined, next: BookingDetailsFlowSignatureType): boolean;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { BookingFormStateType } from '../../../../features/booking-flow/model/booking-form.types';
|
|
2
|
+
export type BookingDetailsFormModeType = {
|
|
3
|
+
showBookingReferenceField: boolean;
|
|
4
|
+
showDateOfBirth: boolean;
|
|
5
|
+
showExtendedForm: boolean;
|
|
6
|
+
showLanguage: boolean;
|
|
7
|
+
showRoomField: boolean;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* PMS hotels (legacy BookitoGuestForm):
|
|
11
|
+
* - Room/ref row (mutually exclusive) always visible.
|
|
12
|
+
* - Room OR ref filled → date of birth (hotel guest login path).
|
|
13
|
+
* - Neither filled → name, email, phone (external guest on PMS property).
|
|
14
|
+
*
|
|
15
|
+
* Non-PMS hotels:
|
|
16
|
+
* - Always extended form: room (optional), booking ref (optional), name, email, phone, language.
|
|
17
|
+
* - No date-of-birth swap (not in Web Widget doc for this case).
|
|
18
|
+
*/
|
|
19
|
+
export declare function resolveBookingDetailsFormMode(hasPms: boolean, form: BookingFormStateType): BookingDetailsFormModeType;
|
|
20
|
+
export declare function isValidGuestEmail(value: string): boolean;
|
|
21
|
+
/** Fields marked “(Optional)” in copy are not required; all others are required when visible. */
|
|
22
|
+
export declare function canContinueFromDetails(hasPms: boolean, form: BookingFormStateType): boolean;
|
|
23
|
+
export declare function isDetailsStepValid(hasPms: boolean, form: BookingFormStateType): boolean;
|
|
24
|
+
export declare function shouldAuthenticateGuestOnDetailsSubmit(hasPms: boolean, form: BookingFormStateType): boolean;
|
|
25
|
+
/** Reservation guest chips apply only on the PMS hotel-guest path (room or booking ref + DOB). */
|
|
26
|
+
export declare function shouldShowRoomGuestSelection(hasPms: boolean, form: BookingFormStateType): boolean;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BookingFormStateType } from '../../../../features/booking-flow/model/booking-form.types';
|
|
2
|
+
export declare function buildExternalParticipant(form: BookingFormStateType): {
|
|
3
|
+
communicationLanguage: string | undefined;
|
|
4
|
+
email: string | undefined;
|
|
5
|
+
isMainBooker: boolean;
|
|
6
|
+
isExternal: boolean;
|
|
7
|
+
name: string | null;
|
|
8
|
+
phoneNr: string | undefined;
|
|
9
|
+
roomNr: string | undefined;
|
|
10
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { BookingDisplayStepEntryType, BookingDisplayStepType } from '../../../../features/booking-flow/model/booking-display-step.types';
|
|
2
|
+
import { BookingFormStateType, BookingStepType } from '../../../../features/booking-flow/model/booking-form.types';
|
|
3
|
+
export declare function getBookingFlowStepperStepClasses(options: {
|
|
4
|
+
isActive: boolean;
|
|
5
|
+
isFirst: boolean;
|
|
6
|
+
isLast: boolean;
|
|
7
|
+
}): string;
|
|
8
|
+
export declare function buildDisplayBookingStepEntries(labels: {
|
|
9
|
+
confirm: string;
|
|
10
|
+
details: string;
|
|
11
|
+
time: string;
|
|
12
|
+
}): BookingDisplayStepEntryType[];
|
|
13
|
+
export declare function isTimePhaseComplete(form: BookingFormStateType, requiresTimeStep: boolean): boolean;
|
|
14
|
+
export declare function resolveActiveDisplayStep(internalStep: BookingStepType): BookingDisplayStepType;
|
|
15
|
+
export declare function isDisplayStepComplete(displayStep: BookingDisplayStepType, internalStep: BookingStepType, form: BookingFormStateType, requiresTimeStep: boolean, isSuccess: boolean): boolean;
|
|
16
|
+
export declare function canGoToDisplayStep(targetStep: BookingDisplayStepType, internalStep: BookingStepType, form: BookingFormStateType, requiresTimeStep: boolean, hasPms: boolean): boolean;
|
|
17
|
+
export declare function resolveInternalStepFromDisplayStep(displayStep: BookingDisplayStepType): BookingStepType | null;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Ref } from 'vue';
|
|
2
|
+
import { CreateBookitoBookingRequestType } from '../../../../features/booking-flow/api/bookito-booking.dto';
|
|
3
|
+
import { BookingFormStateType, BookingStepType } from '../../../../features/booking-flow/model/booking-form.types';
|
|
4
|
+
import { BookingGuestOptionType, GuestLoginRequestType, GuestLoginResponseType } from '../../../../features/guest-auth/api/guest-auth.dto';
|
|
5
|
+
type GuestLoginMutationType = {
|
|
6
|
+
mutateAsync: (payload: GuestLoginRequestType) => Promise<GuestLoginResponseType>;
|
|
7
|
+
};
|
|
8
|
+
type CreateBookingMutationType = {
|
|
9
|
+
mutateAsync: (payload: CreateBookitoBookingRequestType) => Promise<unknown>;
|
|
10
|
+
};
|
|
11
|
+
export declare function navigateToBookingStep(targetStep: BookingStepType, currentStep: Ref<BookingStepType>, form: BookingFormStateType, requiresTimeStep?: boolean): void;
|
|
12
|
+
export declare function authenticateAndContinueBooking(options: {
|
|
13
|
+
authId: string;
|
|
14
|
+
form: BookingFormStateType;
|
|
15
|
+
guestLoginMutation: GuestLoginMutationType;
|
|
16
|
+
isSubmitting: Ref<boolean>;
|
|
17
|
+
loginErrorMessage: string;
|
|
18
|
+
nextStep: BookingStepType;
|
|
19
|
+
onGuestsResolved?: (guests: BookingGuestOptionType[]) => void;
|
|
20
|
+
resolveFixedTimeSlot?: () => string;
|
|
21
|
+
step: Ref<BookingStepType>;
|
|
22
|
+
submitError: Ref<string | null>;
|
|
23
|
+
}): Promise<void>;
|
|
24
|
+
export declare function submitBookingAndShowSuccess(options: {
|
|
25
|
+
bookingErrorMessage: string;
|
|
26
|
+
createBookingMutation: CreateBookingMutationType;
|
|
27
|
+
isSubmitting: Ref<boolean>;
|
|
28
|
+
isSuccess: Ref<boolean>;
|
|
29
|
+
onCompleted: () => void;
|
|
30
|
+
payload: CreateBookitoBookingRequestType;
|
|
31
|
+
successDelayMs: number;
|
|
32
|
+
submitError: Ref<string | null>;
|
|
33
|
+
}): Promise<void>;
|
|
34
|
+
export {};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { BookingFormStateType, BookingStepType } from '../../../../features/booking-flow/model/booking-form.types';
|
|
2
|
+
import { BookitoEventType } from '../../../../features/event-feed/model/widget.types';
|
|
3
|
+
export declare function createBookingForm(initialDate: string): BookingFormStateType;
|
|
4
|
+
export declare function updateDateOfBirth(form: BookingFormStateType, value: string, language: string): void;
|
|
5
|
+
export declare function canContinueFromDate(form: BookingFormStateType): boolean;
|
|
6
|
+
export declare function canContinueFromTimeSection(form: BookingFormStateType, requiresTimeStep: boolean): boolean;
|
|
7
|
+
export declare function canContinueFromTime(form: BookingFormStateType): boolean;
|
|
8
|
+
export declare function canContinueFromDetailsStep(hasPms: boolean, form: BookingFormStateType): boolean;
|
|
9
|
+
export { isBookingStepComplete } from './booking-step-completion.helpers';
|
|
10
|
+
export declare function canGoToBookingStep(targetStep: BookingStepType, currentStep: BookingStepType, form: BookingFormStateType, requiresTimeStep?: boolean, hasPms?: boolean): boolean;
|
|
11
|
+
export declare function toggleIdInList(list: string[], id: string): string[];
|
|
12
|
+
export declare function clampParticipantCount(value: number, max: number): number;
|
|
13
|
+
export declare function resolveExtraParticipantCount(value: number, max: number | null | undefined): number;
|
|
14
|
+
export declare function resolveGuestLoginDateOfBirth(maskedValue: string): string | null;
|
|
15
|
+
export declare function eventRequiresCustomTimeStep(event: BookitoEventType): boolean;
|
|
16
|
+
export declare function resolveBookingAvailableDates(availableDates: string[] | undefined, initialDate: string): string[];
|
|
17
|
+
export declare function resolveHasExternalMainBooker(form: BookingFormStateType): boolean;
|
|
18
|
+
export declare function buildBookingStepEntries(labels: {
|
|
19
|
+
date: string;
|
|
20
|
+
guests: string;
|
|
21
|
+
time: string;
|
|
22
|
+
}, requiresTimeStep: boolean): ({
|
|
23
|
+
id: "date";
|
|
24
|
+
label: string;
|
|
25
|
+
} | {
|
|
26
|
+
id: "time";
|
|
27
|
+
label: string;
|
|
28
|
+
} | {
|
|
29
|
+
id: "guests";
|
|
30
|
+
label: string;
|
|
31
|
+
})[];
|
|
32
|
+
export declare const BOOKING_SUCCESS_DISPLAY_MS = 2000;
|