@qite/tide-booking-component 1.4.122 → 1.4.124
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/.claude/settings.local.json +11 -0
- package/.husky/pre-commit +22 -1
- package/.prettierignore +32 -0
- package/.prettierrc +9 -9
- package/.vs/ProjectSettings.json +3 -3
- package/.vs/VSWorkspaceState.json +5 -5
- package/MEMORY.md +97 -0
- package/NEXTSTEPS.md +94 -0
- package/README.md +26 -24
- package/package.json +10 -1
- package/rollup.config.js +16 -16
- package/src/booking-product/components/age-select.tsx +35 -35
- package/src/booking-product/components/amount-input.tsx +51 -51
- package/src/booking-product/components/date-range-picker/calendar-day.tsx +46 -46
- package/src/booking-product/components/date-range-picker/calendar.tsx +155 -155
- package/src/booking-product/components/date-range-picker/index.tsx +185 -185
- package/src/booking-product/components/dates.tsx +153 -153
- package/src/booking-product/components/footer.tsx +54 -54
- package/src/booking-product/components/header.tsx +58 -57
- package/src/booking-product/components/list-view.tsx +54 -54
- package/src/booking-product/components/product.tsx +447 -379
- package/src/booking-product/components/rating.tsx +21 -21
- package/src/booking-product/components/rooms.tsx +192 -171
- package/src/booking-product/constants.ts +1 -1
- package/src/booking-product/index.tsx +21 -21
- package/src/booking-product/settings-context.ts +16 -16
- package/src/booking-product/types.ts +68 -30
- package/src/booking-product/utils/api.ts +26 -26
- package/src/booking-product/utils/price.ts +28 -28
- package/src/booking-wizard/api-settings-slice.ts +24 -24
- package/src/booking-wizard/components/labeled-input.tsx +56 -56
- package/src/booking-wizard/components/labeled-select.tsx +54 -54
- package/src/booking-wizard/components/message.tsx +21 -21
- package/src/booking-wizard/components/multi-range-filter.tsx +99 -99
- package/src/booking-wizard/components/phone-input.tsx +146 -146
- package/src/booking-wizard/components/print-offer-button.tsx +53 -53
- package/src/booking-wizard/components/step-indicator.tsx +36 -36
- package/src/booking-wizard/components/step-route.tsx +51 -51
- package/src/booking-wizard/declarations.d.ts +4 -4
- package/src/booking-wizard/features/booking/api.ts +44 -44
- package/src/booking-wizard/features/booking/booking-self-contained.tsx +364 -318
- package/src/booking-wizard/features/booking/booking-slice.ts +634 -634
- package/src/booking-wizard/features/booking/booking.tsx +388 -344
- package/src/booking-wizard/features/booking/constants.ts +16 -16
- package/src/booking-wizard/features/booking/selectors.ts +411 -411
- package/src/booking-wizard/features/confirmation/confirmation.tsx +46 -46
- package/src/booking-wizard/features/error/error.tsx +71 -71
- package/src/booking-wizard/features/flight-options/flight-filter.tsx +371 -371
- package/src/booking-wizard/features/flight-options/flight-option-flight.tsx +354 -354
- package/src/booking-wizard/features/flight-options/flight-option-modal.tsx +211 -211
- package/src/booking-wizard/features/flight-options/flight-option.tsx +57 -57
- package/src/booking-wizard/features/flight-options/flight-utils.ts +423 -423
- package/src/booking-wizard/features/flight-options/index.tsx +170 -170
- package/src/booking-wizard/features/price-details/price-details-api.ts +20 -20
- package/src/booking-wizard/features/price-details/price-details-slice.ts +79 -79
- package/src/booking-wizard/features/price-details/selectors.ts +118 -118
- package/src/booking-wizard/features/price-details/util.ts +115 -115
- package/src/booking-wizard/features/product-options/no-options.tsx +18 -18
- package/src/booking-wizard/features/product-options/none-option.tsx +73 -73
- package/src/booking-wizard/features/product-options/option-booking-airline-group.tsx +53 -53
- package/src/booking-wizard/features/product-options/option-booking-group.tsx +152 -152
- package/src/booking-wizard/features/product-options/option-item.tsx +236 -236
- package/src/booking-wizard/features/product-options/option-pax-card.tsx +159 -159
- package/src/booking-wizard/features/product-options/option-pax-group.tsx +122 -122
- package/src/booking-wizard/features/product-options/option-room.tsx +226 -226
- package/src/booking-wizard/features/product-options/option-unit-group.tsx +138 -138
- package/src/booking-wizard/features/product-options/option-units-card.tsx +148 -148
- package/src/booking-wizard/features/product-options/options-form.tsx +382 -382
- package/src/booking-wizard/features/room-options/index.tsx +132 -132
- package/src/booking-wizard/features/room-options/room-utils.ts +154 -154
- package/src/booking-wizard/features/room-options/room.tsx +123 -123
- package/src/booking-wizard/features/room-options/traveler-rooms.tsx +64 -64
- package/src/booking-wizard/features/sidebar/index.tsx +89 -89
- package/src/booking-wizard/features/sidebar/sidebar-flight.tsx +66 -66
- package/src/booking-wizard/features/sidebar/sidebar-util.ts +143 -143
- package/src/booking-wizard/features/sidebar/sidebar.tsx +349 -349
- package/src/booking-wizard/features/summary/summary-booking-option-pax.tsx +23 -23
- package/src/booking-wizard/features/summary/summary-booking-option-unit.tsx +23 -23
- package/src/booking-wizard/features/summary/summary-flight.tsx +36 -36
- package/src/booking-wizard/features/summary/summary-per-booking-option-group.tsx +60 -60
- package/src/booking-wizard/features/summary/summary-per-pax-option-group.tsx +56 -56
- package/src/booking-wizard/features/summary/summary-per-unit-option-group.tsx +58 -58
- package/src/booking-wizard/features/summary/summary-slice.ts +27 -27
- package/src/booking-wizard/features/summary/summary.tsx +19 -3
- package/src/booking-wizard/features/travelers-form/controls/gender-control.tsx +60 -60
- package/src/booking-wizard/features/travelers-form/travelers-form-slice.ts +157 -157
- package/src/booking-wizard/features/travelers-form/travelers-form-util.ts +10 -10
- package/src/booking-wizard/features/travelers-form/travelers-form.tsx +181 -175
- package/src/booking-wizard/features/travelers-form/type-ahead-input.tsx +85 -85
- package/src/booking-wizard/features/travelers-form/validate-form.ts +178 -178
- package/src/booking-wizard/index.tsx +27 -27
- package/src/booking-wizard/settings-context.ts +64 -64
- package/src/booking-wizard/store.ts +26 -26
- package/src/booking-wizard/types.ts +17 -0
- package/src/booking-wizard/use-offer-printer.ts +108 -108
- package/src/content/components/LanguageSwitcher.tsx +158 -158
- package/src/content/components/accordion.tsx +30 -30
- package/src/content/components/breadcrumb.tsx +67 -67
- package/src/content/components/contact.tsx +210 -210
- package/src/content/components/faq.tsx +42 -42
- package/src/content/components/gallery.tsx +153 -153
- package/src/content/components/image-with-text.tsx +119 -119
- package/src/content/components/login.tsx +161 -161
- package/src/content/components/personal-contact-form.tsx +809 -809
- package/src/content/components/slider.tsx +237 -237
- package/src/content/error/error.tsx +27 -27
- package/src/content/featured-trips/featured-trip-card.tsx +48 -48
- package/src/content/featured-trips/index.tsx +19 -19
- package/src/content/featured-trips/types.ts +13 -13
- package/src/content/features/content-page/content-page-self-contained.tsx +895 -895
- package/src/content/footer/index.tsx +159 -159
- package/src/content/footer/types.ts +36 -36
- package/src/content/header/index.tsx +43 -43
- package/src/content/header/types.ts +26 -26
- package/src/content/image-card-grid/index.tsx +34 -34
- package/src/content/image-card-grid/types.ts +13 -13
- package/src/content/image-with-text-section/card.tsx +58 -58
- package/src/content/image-with-text-section/index.tsx +22 -22
- package/src/content/image-with-text-section/types.ts +20 -20
- package/src/content/login/confirm-component.tsx +149 -149
- package/src/content/login/index.tsx +70 -70
- package/src/content/login/login-component.tsx +159 -159
- package/src/content/login/login-services.ts +109 -109
- package/src/content/login/reset-password-component.tsx +191 -191
- package/src/content/login/types.ts +29 -29
- package/src/content/navbar/index.tsx +354 -354
- package/src/content/navbar/placeholderData.tsx +173 -173
- package/src/content/navbar/types.ts +43 -43
- package/src/index.ts +46 -46
- package/src/qsm/components/QSMContainer/qsm-container.tsx +671 -671
- package/src/qsm/components/date-picker/index.tsx +152 -152
- package/src/qsm/components/date-range-picker/calendar-day.tsx +49 -49
- package/src/qsm/components/date-range-picker/calendar.tsx +211 -211
- package/src/qsm/components/date-range-picker/index.tsx +404 -404
- package/src/qsm/components/double-search-input-group/index.tsx +78 -78
- package/src/qsm/components/item-picker/index.tsx +65 -65
- package/src/qsm/components/mobile-filter-modal/index.tsx +321 -321
- package/src/qsm/components/search-input/index.tsx +91 -91
- package/src/qsm/components/search-input-group/index.tsx +209 -209
- package/src/qsm/components/travel-class-picker/index.tsx +28 -28
- package/src/qsm/components/travel-input/index.tsx +241 -241
- package/src/qsm/components/travel-input-group/index.tsx +114 -114
- package/src/qsm/components/travel-nationality-picker/index.tsx +28 -28
- package/src/qsm/components/travel-type-picker/index.tsx +28 -28
- package/src/qsm/index.tsx +26 -26
- package/src/qsm/qsm-configuration-context.ts +31 -31
- package/src/qsm/store/qsm-slice.ts +282 -282
- package/src/qsm/store/qsm-store.ts +13 -13
- package/src/qsm/types.ts +110 -110
- package/src/search-results/components/book-packaging-entry/index.tsx +266 -266
- package/src/search-results/components/book-packaging-entry/wl-sidebar.tsx +173 -173
- package/src/search-results/components/excursions/day-by-day-excursions.tsx +168 -168
- package/src/search-results/components/excursions/excursion-details.tsx +340 -340
- package/src/search-results/components/excursions/excursion-results.tsx +186 -186
- package/src/search-results/components/filters/filters.tsx +229 -229
- package/src/search-results/components/filters/flight-filters.tsx +671 -671
- package/src/search-results/components/flight/flight-banner.tsx +35 -35
- package/src/search-results/components/flight/flight-card.tsx +38 -38
- package/src/search-results/components/flight/flight-leg.tsx +61 -61
- package/src/search-results/components/flight/flight-path.tsx +23 -23
- package/src/search-results/components/flight/flight-results.tsx +208 -208
- package/src/search-results/components/flight/flight-search-context/index.tsx +628 -628
- package/src/search-results/components/flight/flight-selection/independent-flight-option.tsx +168 -168
- package/src/search-results/components/flight/flight-selection/independent-flight-selection.tsx +184 -184
- package/src/search-results/components/flight/flight-selection/index.tsx +19 -19
- package/src/search-results/components/flight/flight-selection/paired-flight-option.tsx +255 -255
- package/src/search-results/components/flight/flight-selection/paired-flight-selection.tsx +38 -38
- package/src/search-results/components/group-tour/group-tour-card.tsx +105 -105
- package/src/search-results/components/group-tour/group-tour-results.tsx +62 -62
- package/src/search-results/components/hotel/hotel-accommodation-results.tsx +244 -244
- package/src/search-results/components/hotel/hotel-card.tsx +110 -110
- package/src/search-results/components/item-picker/index.tsx +81 -81
- package/src/search-results/components/itinerary/full-itinerary.tsx +374 -374
- package/src/search-results/components/itinerary/index.tsx +437 -437
- package/src/search-results/components/multi-range-filter.tsx +104 -104
- package/src/search-results/components/round-trip/round-trip-results.tsx +199 -199
- package/src/search-results/components/search-results-container/flight-search-results.tsx +137 -137
- package/src/search-results/components/search-results-container/search-results-container.tsx +1764 -1764
- package/src/search-results/components/spinner/spinner.tsx +24 -24
- package/src/search-results/components/tab-views/index.tsx +53 -53
- package/src/search-results/features/flights/flight-search-results-self-contained.tsx +294 -294
- package/src/search-results/features/hotels/hotel-flight-search-results-self-contained.tsx +143 -143
- package/src/search-results/features/hotels/hotel-search-results-self-contained.tsx +220 -220
- package/src/search-results/features/roundtrips/roundtrip-search-results-self-contained.tsx +65 -65
- package/src/search-results/index.tsx +25 -25
- package/src/search-results/search-results-configuration-context.ts +6 -6
- package/src/search-results/store/search-results-selectors.ts +84 -84
- package/src/search-results/store/search-results-slice.ts +351 -351
- package/src/search-results/store/search-results-store.ts +13 -13
- package/src/search-results/types.ts +266 -266
- package/src/search-results/utils/flight-utils.ts +98 -98
- package/src/search-results/utils/packaging-utils.ts +75 -75
- package/src/search-results/utils/query-utils.ts +153 -153
- package/src/search-results/utils/search-results-utils.ts +538 -538
- package/src/shared/booking/booking-panel.tsx +25 -25
- package/src/shared/booking/product-card.tsx +23 -23
- package/src/shared/booking/shared-confirmation.tsx +105 -105
- package/src/shared/booking/shared-sidebar.tsx +432 -432
- package/src/shared/booking/step-indicators.tsx +30 -30
- package/src/shared/booking/summary.tsx +382 -382
- package/src/shared/booking/travelers-form.tsx +874 -874
- package/src/shared/components/flyin/accommodation-flyin.tsx +424 -424
- package/src/shared/components/flyin/flights-flyin.tsx +508 -508
- package/src/shared/components/flyin/flyin.tsx +241 -241
- package/src/shared/components/flyin/group-tour-flyin.tsx +294 -294
- package/src/shared/components/flyin/packaging-flights-flyin.tsx +171 -171
- package/src/shared/components/icon.tsx +1114 -1114
- package/src/shared/components/loader.tsx +16 -16
- package/src/shared/translations/ar-SA.json +398 -398
- package/src/shared/translations/da-DK.json +398 -398
- package/src/shared/translations/de-DE.json +398 -398
- package/src/shared/translations/en-GB.json +402 -402
- package/src/shared/translations/es-ES.json +398 -398
- package/src/shared/translations/fr-BE.json +402 -402
- package/src/shared/translations/fr-FR.json +398 -398
- package/src/shared/translations/is-IS.json +398 -398
- package/src/shared/translations/it-IT.json +398 -398
- package/src/shared/translations/ja-JP.json +398 -398
- package/src/shared/translations/nl-BE.json +402 -402
- package/src/shared/translations/nl-NL.json +398 -398
- package/src/shared/translations/no-NO.json +398 -398
- package/src/shared/translations/pl-PL.json +398 -398
- package/src/shared/translations/pt-PT.json +398 -398
- package/src/shared/translations/sv-SE.json +398 -398
- package/src/shared/types.ts +31 -31
- package/src/shared/utils/booking-summary.tsx +57 -57
- package/src/shared/utils/class-util.ts +7 -7
- package/src/shared/utils/localization-util.ts +316 -301
- package/src/shared/utils/query-string-util.ts +91 -91
- package/src/shared/utils/tide-api-utils.ts +42 -42
- package/src/shared/utils/use-media-query-util.ts +19 -19
- package/styles/abstracts/_mixins.scss +74 -74
- package/styles/abstracts/_variables.scss +57 -57
- package/styles/base/_fonts.scss +2 -2
- package/styles/base/_normalize.scss +227 -227
- package/styles/base/_typography.scss +35 -35
- package/styles/booking-joker-variables.scss +596 -596
- package/styles/booking-product-variables.scss +330 -330
- package/styles/booking-product.scss +438 -438
- package/styles/booking-qsm-variables.scss +501 -501
- package/styles/booking-qsm.scss +52 -52
- package/styles/booking-search-results-variables.scss +728 -728
- package/styles/booking-search-results.scss +53 -53
- package/styles/booking-wizard-variables.scss +603 -603
- package/styles/booking-wizard.scss +61 -61
- package/styles/components/_accordion.scss +67 -67
- package/styles/components/_animations.scss +39 -39
- package/styles/components/_base.scss +107 -107
- package/styles/components/_booking.scss +906 -906
- package/styles/components/_breadcrumb.scss +92 -92
- package/styles/components/_button.scss +238 -238
- package/styles/components/_checkbox.scss +230 -230
- package/styles/components/_contact.scss +255 -239
- package/styles/components/_content.scss +336 -336
- package/styles/components/_cta.scss +238 -238
- package/styles/components/_date-list.scss +41 -41
- package/styles/components/_date-range-picker.scss +223 -223
- package/styles/components/_decrement-increment.scss +35 -35
- package/styles/components/_dropdown.scss +77 -77
- package/styles/components/_error.scss +50 -50
- package/styles/components/_faq.scss +30 -30
- package/styles/components/_flight-option.scss +1432 -1432
- package/styles/components/_flyin.scss +830 -830
- package/styles/components/_footer.scss +135 -135
- package/styles/components/_form.scss +1693 -1693
- package/styles/components/_gallery.scss +317 -317
- package/styles/components/_header.scss +113 -113
- package/styles/components/_image-with-text.scss +206 -206
- package/styles/components/_img-slider.scss +175 -175
- package/styles/components/_info-message.scss +75 -75
- package/styles/components/_input.scss +35 -35
- package/styles/components/_list.scss +185 -185
- package/styles/components/_loader.scss +152 -152
- package/styles/components/_login.scss +140 -140
- package/styles/components/_mixins.scss +579 -579
- package/styles/components/_navbar.scss +765 -765
- package/styles/components/_passenger-picker.scss +306 -306
- package/styles/components/_phone-input.scss +8 -8
- package/styles/components/_placeholders.scss +165 -165
- package/styles/components/_pricing-summary.scss +163 -163
- package/styles/components/_qsm.scss +17 -17
- package/styles/components/_radiobutton.scss +170 -170
- package/styles/components/_search.scss +2089 -2089
- package/styles/components/_select-wrapper.scss +81 -81
- package/styles/components/_slider.scss +128 -128
- package/styles/components/_spinner.scss +29 -29
- package/styles/components/_step-indicators.scss +187 -187
- package/styles/components/_table.scss +81 -81
- package/styles/components/_tree.scss +648 -648
- package/styles/components/_typeahead.scss +275 -275
- package/styles/components/_variables.scss +89 -89
- package/styles/content-blocks-variables.scss +507 -507
- package/styles/content-blocks.scss +65 -65
- package/styles/font.scss +2 -2
- package/styles/qsm/_calendar.scss +274 -274
- package/styles/qsm/_qsm.scss +1097 -1097
- package/styles/search.scss +1200 -1200
- package/tsconfig.json +24 -24
- package/build/build-cjs/index.js +0 -57386
- package/build/build-cjs/src/booking-product/components/age-select.d.ts +0 -8
- package/build/build-cjs/src/booking-product/components/amount-input.d.ts +0 -10
- package/build/build-cjs/src/booking-product/components/date-range-picker/calendar-day.d.ts +0 -13
- package/build/build-cjs/src/booking-product/components/date-range-picker/calendar.d.ts +0 -19
- package/build/build-cjs/src/booking-product/components/date-range-picker/index.d.ts +0 -22
- package/build/build-cjs/src/booking-product/components/dates.d.ts +0 -14
- package/build/build-cjs/src/booking-product/components/footer.d.ts +0 -10
- package/build/build-cjs/src/booking-product/components/header.d.ts +0 -11
- package/build/build-cjs/src/booking-product/components/list-view.d.ts +0 -8
- package/build/build-cjs/src/booking-product/components/product.d.ts +0 -9
- package/build/build-cjs/src/booking-product/components/rating.d.ts +0 -6
- package/build/build-cjs/src/booking-product/components/rooms.d.ts +0 -10
- package/build/build-cjs/src/booking-product/constants.d.ts +0 -1
- package/build/build-cjs/src/booking-product/index.d.ts +0 -10
- package/build/build-cjs/src/booking-product/settings-context.d.ts +0 -5
- package/build/build-cjs/src/booking-product/types.d.ts +0 -27
- package/build/build-cjs/src/booking-product/utils/api.d.ts +0 -16
- package/build/build-cjs/src/booking-product/utils/price.d.ts +0 -10
- package/build/build-cjs/src/booking-wizard/api-settings-slice.d.ts +0 -5
- package/build/build-cjs/src/booking-wizard/components/labeled-input.d.ts +0 -18
- package/build/build-cjs/src/booking-wizard/components/labeled-select.d.ts +0 -21
- package/build/build-cjs/src/booking-wizard/components/message.d.ts +0 -9
- package/build/build-cjs/src/booking-wizard/components/multi-range-filter.d.ts +0 -11
- package/build/build-cjs/src/booking-wizard/components/phone-input.d.ts +0 -17
- package/build/build-cjs/src/booking-wizard/components/print-offer-button.d.ts +0 -17
- package/build/build-cjs/src/booking-wizard/components/step-indicator.d.ts +0 -6
- package/build/build-cjs/src/booking-wizard/components/step-route.d.ts +0 -8
- package/build/build-cjs/src/booking-wizard/features/booking/api.d.ts +0 -30
- package/build/build-cjs/src/booking-wizard/features/booking/booking-self-contained.d.ts +0 -8
- package/build/build-cjs/src/booking-wizard/features/booking/booking-slice.d.ts +0 -121
- package/build/build-cjs/src/booking-wizard/features/booking/booking.d.ts +0 -8
- package/build/build-cjs/src/booking-wizard/features/booking/constants.d.ts +0 -15
- package/build/build-cjs/src/booking-wizard/features/booking/selectors.d.ts +0 -803
- package/build/build-cjs/src/booking-wizard/features/confirmation/confirmation.d.ts +0 -4
- package/build/build-cjs/src/booking-wizard/features/error/error.d.ts +0 -4
- package/build/build-cjs/src/booking-wizard/features/flight-options/flight-filter.d.ts +0 -9
- package/build/build-cjs/src/booking-wizard/features/flight-options/flight-option-flight.d.ts +0 -8
- package/build/build-cjs/src/booking-wizard/features/flight-options/flight-option-modal.d.ts +0 -3
- package/build/build-cjs/src/booking-wizard/features/flight-options/flight-option.d.ts +0 -10
- package/build/build-cjs/src/booking-wizard/features/flight-options/flight-utils.d.ts +0 -13
- package/build/build-cjs/src/booking-wizard/features/flight-options/index.d.ts +0 -4
- package/build/build-cjs/src/booking-wizard/features/price-details/price-details-api.d.ts +0 -11
- package/build/build-cjs/src/booking-wizard/features/price-details/price-details-slice.d.ts +0 -28
- package/build/build-cjs/src/booking-wizard/features/price-details/selectors.d.ts +0 -393
- package/build/build-cjs/src/booking-wizard/features/price-details/util.d.ts +0 -2
- package/build/build-cjs/src/booking-wizard/features/product-options/no-options.d.ts +0 -3
- package/build/build-cjs/src/booking-wizard/features/product-options/none-option.d.ts +0 -9
- package/build/build-cjs/src/booking-wizard/features/product-options/option-booking-airline-group.d.ts +0 -8
- package/build/build-cjs/src/booking-wizard/features/product-options/option-booking-group.d.ts +0 -12
- package/build/build-cjs/src/booking-wizard/features/product-options/option-item.d.ts +0 -11
- package/build/build-cjs/src/booking-wizard/features/product-options/option-pax-card.d.ts +0 -10
- package/build/build-cjs/src/booking-wizard/features/product-options/option-pax-group.d.ts +0 -13
- package/build/build-cjs/src/booking-wizard/features/product-options/option-room.d.ts +0 -11
- package/build/build-cjs/src/booking-wizard/features/product-options/option-unit-group.d.ts +0 -13
- package/build/build-cjs/src/booking-wizard/features/product-options/option-units-card.d.ts +0 -9
- package/build/build-cjs/src/booking-wizard/features/product-options/options-form.d.ts +0 -4
- package/build/build-cjs/src/booking-wizard/features/room-options/index.d.ts +0 -4
- package/build/build-cjs/src/booking-wizard/features/room-options/room-utils.d.ts +0 -22
- package/build/build-cjs/src/booking-wizard/features/room-options/room.d.ts +0 -12
- package/build/build-cjs/src/booking-wizard/features/room-options/traveler-rooms.d.ts +0 -9
- package/build/build-cjs/src/booking-wizard/features/sidebar/index.d.ts +0 -7
- package/build/build-cjs/src/booking-wizard/features/sidebar/sidebar-flight.d.ts +0 -9
- package/build/build-cjs/src/booking-wizard/features/sidebar/sidebar-util.d.ts +0 -16
- package/build/build-cjs/src/booking-wizard/features/sidebar/sidebar.d.ts +0 -0
- package/build/build-cjs/src/booking-wizard/features/summary/summary-booking-option-pax.d.ts +0 -7
- package/build/build-cjs/src/booking-wizard/features/summary/summary-booking-option-unit.d.ts +0 -7
- package/build/build-cjs/src/booking-wizard/features/summary/summary-flight.d.ts +0 -8
- package/build/build-cjs/src/booking-wizard/features/summary/summary-per-booking-option-group.d.ts +0 -7
- package/build/build-cjs/src/booking-wizard/features/summary/summary-per-pax-option-group.d.ts +0 -7
- package/build/build-cjs/src/booking-wizard/features/summary/summary-per-unit-option-group.d.ts +0 -7
- package/build/build-cjs/src/booking-wizard/features/summary/summary-slice.d.ts +0 -8
- package/build/build-cjs/src/booking-wizard/features/summary/summary.d.ts +0 -4
- package/build/build-cjs/src/booking-wizard/features/travelers-form/controls/gender-control.d.ts +0 -5
- package/build/build-cjs/src/booking-wizard/features/travelers-form/travelers-form-slice.d.ts +0 -104
- package/build/build-cjs/src/booking-wizard/features/travelers-form/travelers-form-util.d.ts +0 -7
- package/build/build-cjs/src/booking-wizard/features/travelers-form/travelers-form.d.ts +0 -3
- package/build/build-cjs/src/booking-wizard/features/travelers-form/type-ahead-input.d.ts +0 -16
- package/build/build-cjs/src/booking-wizard/features/travelers-form/validate-form.d.ts +0 -11
- package/build/build-cjs/src/booking-wizard/index.d.ts +0 -12
- package/build/build-cjs/src/booking-wizard/settings-context.d.ts +0 -5
- package/build/build-cjs/src/booking-wizard/store.d.ts +0 -44
- package/build/build-cjs/src/booking-wizard/types.d.ts +0 -301
- package/build/build-cjs/src/booking-wizard/use-offer-printer.d.ts +0 -13
- package/build/build-cjs/src/content/components/LanguageSwitcher.d.ts +0 -12
- package/build/build-cjs/src/content/components/accordion.d.ts +0 -9
- package/build/build-cjs/src/content/components/breadcrumb.d.ts +0 -14
- package/build/build-cjs/src/content/components/contact.d.ts +0 -3
- package/build/build-cjs/src/content/components/faq.d.ts +0 -11
- package/build/build-cjs/src/content/components/gallery.d.ts +0 -13
- package/build/build-cjs/src/content/components/image-with-text.d.ts +0 -29
- package/build/build-cjs/src/content/components/login.d.ts +0 -3
- package/build/build-cjs/src/content/components/personal-contact-form.d.ts +0 -3
- package/build/build-cjs/src/content/components/slider.d.ts +0 -10
- package/build/build-cjs/src/content/error/error.d.ts +0 -6
- package/build/build-cjs/src/content/featured-trips/featured-trip-card.d.ts +0 -4
- package/build/build-cjs/src/content/featured-trips/index.d.ts +0 -4
- package/build/build-cjs/src/content/featured-trips/types.d.ts +0 -12
- package/build/build-cjs/src/content/features/content-page/content-page-self-contained.d.ts +0 -6
- package/build/build-cjs/src/content/footer/index.d.ts +0 -4
- package/build/build-cjs/src/content/footer/types.d.ts +0 -27
- package/build/build-cjs/src/content/header/index.d.ts +0 -4
- package/build/build-cjs/src/content/header/types.d.ts +0 -25
- package/build/build-cjs/src/content/image-card-grid/index.d.ts +0 -4
- package/build/build-cjs/src/content/image-card-grid/types.d.ts +0 -12
- package/build/build-cjs/src/content/image-with-text-section/card.d.ts +0 -4
- package/build/build-cjs/src/content/image-with-text-section/index.d.ts +0 -4
- package/build/build-cjs/src/content/image-with-text-section/types.d.ts +0 -19
- package/build/build-cjs/src/content/login/confirm-component.d.ts +0 -4
- package/build/build-cjs/src/content/login/index.d.ts +0 -4
- package/build/build-cjs/src/content/login/login-component.d.ts +0 -4
- package/build/build-cjs/src/content/login/login-services.d.ts +0 -11
- package/build/build-cjs/src/content/login/reset-password-component.d.ts +0 -4
- package/build/build-cjs/src/content/login/types.d.ts +0 -24
- package/build/build-cjs/src/content/navbar/index.d.ts +0 -4
- package/build/build-cjs/src/content/navbar/placeholderData.d.ts +0 -12
- package/build/build-cjs/src/content/navbar/types.d.ts +0 -32
- package/build/build-cjs/src/index.d.ts +0 -44
- package/build/build-cjs/src/qsm/components/QSMContainer/qsm-container.d.ts +0 -3
- package/build/build-cjs/src/qsm/components/date-picker/index.d.ts +0 -3
- package/build/build-cjs/src/qsm/components/date-range-picker/calendar-day.d.ts +0 -12
- package/build/build-cjs/src/qsm/components/date-range-picker/calendar.d.ts +0 -24
- package/build/build-cjs/src/qsm/components/date-range-picker/index.d.ts +0 -10
- package/build/build-cjs/src/qsm/components/double-search-input-group/index.d.ts +0 -8
- package/build/build-cjs/src/qsm/components/item-picker/index.d.ts +0 -13
- package/build/build-cjs/src/qsm/components/mobile-filter-modal/index.d.ts +0 -3
- package/build/build-cjs/src/qsm/components/search-input/index.d.ts +0 -15
- package/build/build-cjs/src/qsm/components/search-input-group/index.d.ts +0 -13
- package/build/build-cjs/src/qsm/components/travel-class-picker/index.d.ts +0 -3
- package/build/build-cjs/src/qsm/components/travel-input/index.d.ts +0 -3
- package/build/build-cjs/src/qsm/components/travel-input-group/index.d.ts +0 -3
- package/build/build-cjs/src/qsm/components/travel-nationality-picker/index.d.ts +0 -3
- package/build/build-cjs/src/qsm/components/travel-type-picker/index.d.ts +0 -3
- package/build/build-cjs/src/qsm/index.d.ts +0 -7
- package/build/build-cjs/src/qsm/qsm-configuration-context.d.ts +0 -4
- package/build/build-cjs/src/qsm/store/qsm-slice.d.ts +0 -127
- package/build/build-cjs/src/qsm/store/qsm-store.d.ts +0 -23
- package/build/build-cjs/src/qsm/types.d.ts +0 -82
- package/build/build-cjs/src/search-results/components/book-packaging-entry/index.d.ts +0 -9
- package/build/build-cjs/src/search-results/components/book-packaging-entry/wl-sidebar.d.ts +0 -9
- package/build/build-cjs/src/search-results/components/excursions/day-by-day-excursions.d.ts +0 -4
- package/build/build-cjs/src/search-results/components/excursions/excursion-details.d.ts +0 -3
- package/build/build-cjs/src/search-results/components/excursions/excursion-results.d.ts +0 -8
- package/build/build-cjs/src/search-results/components/filters/filters.d.ts +0 -13
- package/build/build-cjs/src/search-results/components/filters/flight-filters.d.ts +0 -8
- package/build/build-cjs/src/search-results/components/flight/flight-banner.d.ts +0 -8
- package/build/build-cjs/src/search-results/components/flight/flight-card.d.ts +0 -7
- package/build/build-cjs/src/search-results/components/flight/flight-leg.d.ts +0 -7
- package/build/build-cjs/src/search-results/components/flight/flight-path.d.ts +0 -6
- package/build/build-cjs/src/search-results/components/flight/flight-results.d.ts +0 -8
- package/build/build-cjs/src/search-results/components/flight/flight-search-context/index.d.ts +0 -39
- package/build/build-cjs/src/search-results/components/flight/flight-selection/independent-flight-option.d.ts +0 -14
- package/build/build-cjs/src/search-results/components/flight/flight-selection/independent-flight-selection.d.ts +0 -7
- package/build/build-cjs/src/search-results/components/flight/flight-selection/index.d.ts +0 -8
- package/build/build-cjs/src/search-results/components/flight/flight-selection/paired-flight-option.d.ts +0 -7
- package/build/build-cjs/src/search-results/components/flight/flight-selection/paired-flight-selection.d.ts +0 -7
- package/build/build-cjs/src/search-results/components/group-tour/group-tour-card.d.ts +0 -9
- package/build/build-cjs/src/search-results/components/group-tour/group-tour-results.d.ts +0 -6
- package/build/build-cjs/src/search-results/components/hotel/hotel-accommodation-results.d.ts +0 -7
- package/build/build-cjs/src/search-results/components/hotel/hotel-card.d.ts +0 -8
- package/build/build-cjs/src/search-results/components/item-picker/index.d.ts +0 -15
- package/build/build-cjs/src/search-results/components/itinerary/full-itinerary.d.ts +0 -6
- package/build/build-cjs/src/search-results/components/itinerary/index.d.ts +0 -10
- package/build/build-cjs/src/search-results/components/multi-range-filter.d.ts +0 -11
- package/build/build-cjs/src/search-results/components/round-trip/round-trip-results.d.ts +0 -4
- package/build/build-cjs/src/search-results/components/search-results-container/flight-search-results.d.ts +0 -6
- package/build/build-cjs/src/search-results/components/search-results-container/search-results-container.d.ts +0 -6
- package/build/build-cjs/src/search-results/components/spinner/spinner.d.ts +0 -6
- package/build/build-cjs/src/search-results/components/tab-views/index.d.ts +0 -4
- package/build/build-cjs/src/search-results/features/flights/flight-search-results-self-contained.d.ts +0 -4
- package/build/build-cjs/src/search-results/features/hotels/hotel-flight-search-results-self-contained.d.ts +0 -4
- package/build/build-cjs/src/search-results/features/hotels/hotel-search-results-self-contained.d.ts +0 -4
- package/build/build-cjs/src/search-results/features/roundtrips/roundtrip-search-results-self-contained.d.ts +0 -4
- package/build/build-cjs/src/search-results/index.d.ts +0 -8
- package/build/build-cjs/src/search-results/search-results-configuration-context.d.ts +0 -4
- package/build/build-cjs/src/search-results/store/search-results-selectors.d.ts +0 -546
- package/build/build-cjs/src/search-results/store/search-results-slice.d.ts +0 -138
- package/build/build-cjs/src/search-results/store/search-results-store.d.ts +0 -23
- package/build/build-cjs/src/search-results/types.d.ts +0 -211
- package/build/build-cjs/src/search-results/utils/flight-utils.d.ts +0 -16
- package/build/build-cjs/src/search-results/utils/packaging-utils.d.ts +0 -7
- package/build/build-cjs/src/search-results/utils/query-utils.d.ts +0 -12
- package/build/build-cjs/src/search-results/utils/search-results-utils.d.ts +0 -16
- package/build/build-cjs/src/shared/booking/booking-panel.d.ts +0 -13
- package/build/build-cjs/src/shared/booking/product-card.d.ts +0 -8
- package/build/build-cjs/src/shared/booking/shared-confirmation.d.ts +0 -25
- package/build/build-cjs/src/shared/booking/shared-sidebar.d.ts +0 -34
- package/build/build-cjs/src/shared/booking/step-indicators.d.ts +0 -7
- package/build/build-cjs/src/shared/booking/summary.d.ts +0 -44
- package/build/build-cjs/src/shared/booking/travelers-form.d.ts +0 -93
- package/build/build-cjs/src/shared/components/flyin/accommodation-flyin.d.ts +0 -7
- package/build/build-cjs/src/shared/components/flyin/flights-flyin.d.ts +0 -7
- package/build/build-cjs/src/shared/components/flyin/flyin.d.ts +0 -20
- package/build/build-cjs/src/shared/components/flyin/group-tour-flyin.d.ts +0 -8
- package/build/build-cjs/src/shared/components/flyin/packaging-flights-flyin.d.ts +0 -9
- package/build/build-cjs/src/shared/components/icon.d.ts +0 -11
- package/build/build-cjs/src/shared/components/loader.d.ts +0 -6
- package/build/build-cjs/src/shared/types.d.ts +0 -16
- package/build/build-cjs/src/shared/utils/booking-summary.d.ts +0 -2
- package/build/build-cjs/src/shared/utils/class-util.d.ts +0 -1
- package/build/build-cjs/src/shared/utils/localization-util.d.ts +0 -440
- package/build/build-cjs/src/shared/utils/query-string-util.d.ts +0 -8
- package/build/build-cjs/src/shared/utils/tide-api-utils.d.ts +0 -10
- package/build/build-cjs/src/shared/utils/use-media-query-util.d.ts +0 -2
- package/build/build-esm/index.js +0 -57136
- package/build/build-esm/src/booking-product/components/age-select.d.ts +0 -8
- package/build/build-esm/src/booking-product/components/amount-input.d.ts +0 -10
- package/build/build-esm/src/booking-product/components/date-range-picker/calendar-day.d.ts +0 -13
- package/build/build-esm/src/booking-product/components/date-range-picker/calendar.d.ts +0 -19
- package/build/build-esm/src/booking-product/components/date-range-picker/index.d.ts +0 -22
- package/build/build-esm/src/booking-product/components/dates.d.ts +0 -14
- package/build/build-esm/src/booking-product/components/footer.d.ts +0 -10
- package/build/build-esm/src/booking-product/components/header.d.ts +0 -11
- package/build/build-esm/src/booking-product/components/list-view.d.ts +0 -8
- package/build/build-esm/src/booking-product/components/product.d.ts +0 -9
- package/build/build-esm/src/booking-product/components/rating.d.ts +0 -6
- package/build/build-esm/src/booking-product/components/rooms.d.ts +0 -10
- package/build/build-esm/src/booking-product/constants.d.ts +0 -1
- package/build/build-esm/src/booking-product/index.d.ts +0 -10
- package/build/build-esm/src/booking-product/settings-context.d.ts +0 -5
- package/build/build-esm/src/booking-product/types.d.ts +0 -27
- package/build/build-esm/src/booking-product/utils/api.d.ts +0 -16
- package/build/build-esm/src/booking-product/utils/price.d.ts +0 -10
- package/build/build-esm/src/booking-wizard/api-settings-slice.d.ts +0 -5
- package/build/build-esm/src/booking-wizard/components/labeled-input.d.ts +0 -18
- package/build/build-esm/src/booking-wizard/components/labeled-select.d.ts +0 -21
- package/build/build-esm/src/booking-wizard/components/message.d.ts +0 -9
- package/build/build-esm/src/booking-wizard/components/multi-range-filter.d.ts +0 -11
- package/build/build-esm/src/booking-wizard/components/phone-input.d.ts +0 -17
- package/build/build-esm/src/booking-wizard/components/print-offer-button.d.ts +0 -17
- package/build/build-esm/src/booking-wizard/components/step-indicator.d.ts +0 -6
- package/build/build-esm/src/booking-wizard/components/step-route.d.ts +0 -8
- package/build/build-esm/src/booking-wizard/features/booking/api.d.ts +0 -30
- package/build/build-esm/src/booking-wizard/features/booking/booking-self-contained.d.ts +0 -8
- package/build/build-esm/src/booking-wizard/features/booking/booking-slice.d.ts +0 -121
- package/build/build-esm/src/booking-wizard/features/booking/booking.d.ts +0 -8
- package/build/build-esm/src/booking-wizard/features/booking/constants.d.ts +0 -15
- package/build/build-esm/src/booking-wizard/features/booking/selectors.d.ts +0 -803
- package/build/build-esm/src/booking-wizard/features/confirmation/confirmation.d.ts +0 -4
- package/build/build-esm/src/booking-wizard/features/error/error.d.ts +0 -4
- package/build/build-esm/src/booking-wizard/features/flight-options/flight-filter.d.ts +0 -9
- package/build/build-esm/src/booking-wizard/features/flight-options/flight-option-flight.d.ts +0 -8
- package/build/build-esm/src/booking-wizard/features/flight-options/flight-option-modal.d.ts +0 -3
- package/build/build-esm/src/booking-wizard/features/flight-options/flight-option.d.ts +0 -10
- package/build/build-esm/src/booking-wizard/features/flight-options/flight-utils.d.ts +0 -13
- package/build/build-esm/src/booking-wizard/features/flight-options/index.d.ts +0 -4
- package/build/build-esm/src/booking-wizard/features/price-details/price-details-api.d.ts +0 -11
- package/build/build-esm/src/booking-wizard/features/price-details/price-details-slice.d.ts +0 -28
- package/build/build-esm/src/booking-wizard/features/price-details/selectors.d.ts +0 -393
- package/build/build-esm/src/booking-wizard/features/price-details/util.d.ts +0 -2
- package/build/build-esm/src/booking-wizard/features/product-options/no-options.d.ts +0 -3
- package/build/build-esm/src/booking-wizard/features/product-options/none-option.d.ts +0 -9
- package/build/build-esm/src/booking-wizard/features/product-options/option-booking-airline-group.d.ts +0 -8
- package/build/build-esm/src/booking-wizard/features/product-options/option-booking-group.d.ts +0 -12
- package/build/build-esm/src/booking-wizard/features/product-options/option-item.d.ts +0 -11
- package/build/build-esm/src/booking-wizard/features/product-options/option-pax-card.d.ts +0 -10
- package/build/build-esm/src/booking-wizard/features/product-options/option-pax-group.d.ts +0 -13
- package/build/build-esm/src/booking-wizard/features/product-options/option-room.d.ts +0 -11
- package/build/build-esm/src/booking-wizard/features/product-options/option-unit-group.d.ts +0 -13
- package/build/build-esm/src/booking-wizard/features/product-options/option-units-card.d.ts +0 -9
- package/build/build-esm/src/booking-wizard/features/product-options/options-form.d.ts +0 -4
- package/build/build-esm/src/booking-wizard/features/room-options/index.d.ts +0 -4
- package/build/build-esm/src/booking-wizard/features/room-options/room-utils.d.ts +0 -22
- package/build/build-esm/src/booking-wizard/features/room-options/room.d.ts +0 -12
- package/build/build-esm/src/booking-wizard/features/room-options/traveler-rooms.d.ts +0 -9
- package/build/build-esm/src/booking-wizard/features/sidebar/index.d.ts +0 -7
- package/build/build-esm/src/booking-wizard/features/sidebar/sidebar-flight.d.ts +0 -9
- package/build/build-esm/src/booking-wizard/features/sidebar/sidebar-util.d.ts +0 -16
- package/build/build-esm/src/booking-wizard/features/sidebar/sidebar.d.ts +0 -0
- package/build/build-esm/src/booking-wizard/features/summary/summary-booking-option-pax.d.ts +0 -7
- package/build/build-esm/src/booking-wizard/features/summary/summary-booking-option-unit.d.ts +0 -7
- package/build/build-esm/src/booking-wizard/features/summary/summary-flight.d.ts +0 -8
- package/build/build-esm/src/booking-wizard/features/summary/summary-per-booking-option-group.d.ts +0 -7
- package/build/build-esm/src/booking-wizard/features/summary/summary-per-pax-option-group.d.ts +0 -7
- package/build/build-esm/src/booking-wizard/features/summary/summary-per-unit-option-group.d.ts +0 -7
- package/build/build-esm/src/booking-wizard/features/summary/summary-slice.d.ts +0 -8
- package/build/build-esm/src/booking-wizard/features/summary/summary.d.ts +0 -4
- package/build/build-esm/src/booking-wizard/features/travelers-form/controls/gender-control.d.ts +0 -5
- package/build/build-esm/src/booking-wizard/features/travelers-form/travelers-form-slice.d.ts +0 -104
- package/build/build-esm/src/booking-wizard/features/travelers-form/travelers-form-util.d.ts +0 -7
- package/build/build-esm/src/booking-wizard/features/travelers-form/travelers-form.d.ts +0 -3
- package/build/build-esm/src/booking-wizard/features/travelers-form/type-ahead-input.d.ts +0 -16
- package/build/build-esm/src/booking-wizard/features/travelers-form/validate-form.d.ts +0 -11
- package/build/build-esm/src/booking-wizard/index.d.ts +0 -12
- package/build/build-esm/src/booking-wizard/settings-context.d.ts +0 -5
- package/build/build-esm/src/booking-wizard/store.d.ts +0 -44
- package/build/build-esm/src/booking-wizard/types.d.ts +0 -301
- package/build/build-esm/src/booking-wizard/use-offer-printer.d.ts +0 -13
- package/build/build-esm/src/content/components/LanguageSwitcher.d.ts +0 -12
- package/build/build-esm/src/content/components/accordion.d.ts +0 -9
- package/build/build-esm/src/content/components/breadcrumb.d.ts +0 -14
- package/build/build-esm/src/content/components/contact.d.ts +0 -3
- package/build/build-esm/src/content/components/faq.d.ts +0 -11
- package/build/build-esm/src/content/components/gallery.d.ts +0 -13
- package/build/build-esm/src/content/components/image-with-text.d.ts +0 -29
- package/build/build-esm/src/content/components/login.d.ts +0 -3
- package/build/build-esm/src/content/components/personal-contact-form.d.ts +0 -3
- package/build/build-esm/src/content/components/slider.d.ts +0 -10
- package/build/build-esm/src/content/error/error.d.ts +0 -6
- package/build/build-esm/src/content/featured-trips/featured-trip-card.d.ts +0 -4
- package/build/build-esm/src/content/featured-trips/index.d.ts +0 -4
- package/build/build-esm/src/content/featured-trips/types.d.ts +0 -12
- package/build/build-esm/src/content/features/content-page/content-page-self-contained.d.ts +0 -6
- package/build/build-esm/src/content/footer/index.d.ts +0 -4
- package/build/build-esm/src/content/footer/types.d.ts +0 -27
- package/build/build-esm/src/content/header/index.d.ts +0 -4
- package/build/build-esm/src/content/header/types.d.ts +0 -25
- package/build/build-esm/src/content/image-card-grid/index.d.ts +0 -4
- package/build/build-esm/src/content/image-card-grid/types.d.ts +0 -12
- package/build/build-esm/src/content/image-with-text-section/card.d.ts +0 -4
- package/build/build-esm/src/content/image-with-text-section/index.d.ts +0 -4
- package/build/build-esm/src/content/image-with-text-section/types.d.ts +0 -19
- package/build/build-esm/src/content/login/confirm-component.d.ts +0 -4
- package/build/build-esm/src/content/login/index.d.ts +0 -4
- package/build/build-esm/src/content/login/login-component.d.ts +0 -4
- package/build/build-esm/src/content/login/login-services.d.ts +0 -11
- package/build/build-esm/src/content/login/reset-password-component.d.ts +0 -4
- package/build/build-esm/src/content/login/types.d.ts +0 -24
- package/build/build-esm/src/content/navbar/index.d.ts +0 -4
- package/build/build-esm/src/content/navbar/placeholderData.d.ts +0 -12
- package/build/build-esm/src/content/navbar/types.d.ts +0 -32
- package/build/build-esm/src/index.d.ts +0 -44
- package/build/build-esm/src/qsm/components/QSMContainer/qsm-container.d.ts +0 -3
- package/build/build-esm/src/qsm/components/date-picker/index.d.ts +0 -3
- package/build/build-esm/src/qsm/components/date-range-picker/calendar-day.d.ts +0 -12
- package/build/build-esm/src/qsm/components/date-range-picker/calendar.d.ts +0 -24
- package/build/build-esm/src/qsm/components/date-range-picker/index.d.ts +0 -10
- package/build/build-esm/src/qsm/components/double-search-input-group/index.d.ts +0 -8
- package/build/build-esm/src/qsm/components/item-picker/index.d.ts +0 -13
- package/build/build-esm/src/qsm/components/mobile-filter-modal/index.d.ts +0 -3
- package/build/build-esm/src/qsm/components/search-input/index.d.ts +0 -15
- package/build/build-esm/src/qsm/components/search-input-group/index.d.ts +0 -13
- package/build/build-esm/src/qsm/components/travel-class-picker/index.d.ts +0 -3
- package/build/build-esm/src/qsm/components/travel-input/index.d.ts +0 -3
- package/build/build-esm/src/qsm/components/travel-input-group/index.d.ts +0 -3
- package/build/build-esm/src/qsm/components/travel-nationality-picker/index.d.ts +0 -3
- package/build/build-esm/src/qsm/components/travel-type-picker/index.d.ts +0 -3
- package/build/build-esm/src/qsm/index.d.ts +0 -7
- package/build/build-esm/src/qsm/qsm-configuration-context.d.ts +0 -4
- package/build/build-esm/src/qsm/store/qsm-slice.d.ts +0 -127
- package/build/build-esm/src/qsm/store/qsm-store.d.ts +0 -23
- package/build/build-esm/src/qsm/types.d.ts +0 -82
- package/build/build-esm/src/search-results/components/book-packaging-entry/index.d.ts +0 -9
- package/build/build-esm/src/search-results/components/book-packaging-entry/wl-sidebar.d.ts +0 -9
- package/build/build-esm/src/search-results/components/excursions/day-by-day-excursions.d.ts +0 -4
- package/build/build-esm/src/search-results/components/excursions/excursion-details.d.ts +0 -3
- package/build/build-esm/src/search-results/components/excursions/excursion-results.d.ts +0 -8
- package/build/build-esm/src/search-results/components/filters/filters.d.ts +0 -13
- package/build/build-esm/src/search-results/components/filters/flight-filters.d.ts +0 -8
- package/build/build-esm/src/search-results/components/flight/flight-banner.d.ts +0 -8
- package/build/build-esm/src/search-results/components/flight/flight-card.d.ts +0 -7
- package/build/build-esm/src/search-results/components/flight/flight-leg.d.ts +0 -7
- package/build/build-esm/src/search-results/components/flight/flight-path.d.ts +0 -6
- package/build/build-esm/src/search-results/components/flight/flight-results.d.ts +0 -8
- package/build/build-esm/src/search-results/components/flight/flight-search-context/index.d.ts +0 -39
- package/build/build-esm/src/search-results/components/flight/flight-selection/independent-flight-option.d.ts +0 -14
- package/build/build-esm/src/search-results/components/flight/flight-selection/independent-flight-selection.d.ts +0 -7
- package/build/build-esm/src/search-results/components/flight/flight-selection/index.d.ts +0 -8
- package/build/build-esm/src/search-results/components/flight/flight-selection/paired-flight-option.d.ts +0 -7
- package/build/build-esm/src/search-results/components/flight/flight-selection/paired-flight-selection.d.ts +0 -7
- package/build/build-esm/src/search-results/components/group-tour/group-tour-card.d.ts +0 -9
- package/build/build-esm/src/search-results/components/group-tour/group-tour-results.d.ts +0 -6
- package/build/build-esm/src/search-results/components/hotel/hotel-accommodation-results.d.ts +0 -7
- package/build/build-esm/src/search-results/components/hotel/hotel-card.d.ts +0 -8
- package/build/build-esm/src/search-results/components/item-picker/index.d.ts +0 -15
- package/build/build-esm/src/search-results/components/itinerary/full-itinerary.d.ts +0 -6
- package/build/build-esm/src/search-results/components/itinerary/index.d.ts +0 -10
- package/build/build-esm/src/search-results/components/multi-range-filter.d.ts +0 -11
- package/build/build-esm/src/search-results/components/round-trip/round-trip-results.d.ts +0 -4
- package/build/build-esm/src/search-results/components/search-results-container/flight-search-results.d.ts +0 -6
- package/build/build-esm/src/search-results/components/search-results-container/search-results-container.d.ts +0 -6
- package/build/build-esm/src/search-results/components/spinner/spinner.d.ts +0 -6
- package/build/build-esm/src/search-results/components/tab-views/index.d.ts +0 -4
- package/build/build-esm/src/search-results/features/flights/flight-search-results-self-contained.d.ts +0 -4
- package/build/build-esm/src/search-results/features/hotels/hotel-flight-search-results-self-contained.d.ts +0 -4
- package/build/build-esm/src/search-results/features/hotels/hotel-search-results-self-contained.d.ts +0 -4
- package/build/build-esm/src/search-results/features/roundtrips/roundtrip-search-results-self-contained.d.ts +0 -4
- package/build/build-esm/src/search-results/index.d.ts +0 -8
- package/build/build-esm/src/search-results/search-results-configuration-context.d.ts +0 -4
- package/build/build-esm/src/search-results/store/search-results-selectors.d.ts +0 -546
- package/build/build-esm/src/search-results/store/search-results-slice.d.ts +0 -138
- package/build/build-esm/src/search-results/store/search-results-store.d.ts +0 -23
- package/build/build-esm/src/search-results/types.d.ts +0 -211
- package/build/build-esm/src/search-results/utils/flight-utils.d.ts +0 -16
- package/build/build-esm/src/search-results/utils/packaging-utils.d.ts +0 -7
- package/build/build-esm/src/search-results/utils/query-utils.d.ts +0 -12
- package/build/build-esm/src/search-results/utils/search-results-utils.d.ts +0 -16
- package/build/build-esm/src/shared/booking/booking-panel.d.ts +0 -13
- package/build/build-esm/src/shared/booking/product-card.d.ts +0 -8
- package/build/build-esm/src/shared/booking/shared-confirmation.d.ts +0 -25
- package/build/build-esm/src/shared/booking/shared-sidebar.d.ts +0 -34
- package/build/build-esm/src/shared/booking/step-indicators.d.ts +0 -7
- package/build/build-esm/src/shared/booking/summary.d.ts +0 -44
- package/build/build-esm/src/shared/booking/travelers-form.d.ts +0 -93
- package/build/build-esm/src/shared/components/flyin/accommodation-flyin.d.ts +0 -7
- package/build/build-esm/src/shared/components/flyin/flights-flyin.d.ts +0 -7
- package/build/build-esm/src/shared/components/flyin/flyin.d.ts +0 -20
- package/build/build-esm/src/shared/components/flyin/group-tour-flyin.d.ts +0 -8
- package/build/build-esm/src/shared/components/flyin/packaging-flights-flyin.d.ts +0 -9
- package/build/build-esm/src/shared/components/icon.d.ts +0 -11
- package/build/build-esm/src/shared/components/loader.d.ts +0 -6
- package/build/build-esm/src/shared/types.d.ts +0 -16
- package/build/build-esm/src/shared/utils/booking-summary.d.ts +0 -2
- package/build/build-esm/src/shared/utils/class-util.d.ts +0 -1
- package/build/build-esm/src/shared/utils/localization-util.d.ts +0 -440
- package/build/build-esm/src/shared/utils/query-string-util.d.ts +0 -8
- package/build/build-esm/src/shared/utils/tide-api-utils.d.ts +0 -10
- package/build/build-esm/src/shared/utils/use-media-query-util.d.ts +0 -2
package/.husky/pre-commit
CHANGED
|
@@ -1 +1,22 @@
|
|
|
1
|
-
|
|
1
|
+
# ──────────────────────────────────────────────────────────────────────────────
|
|
2
|
+
# EVALUATION: introduced as part of TIDESUPP-75 follow-up work.
|
|
3
|
+
#
|
|
4
|
+
# Goal of this hook: only run prettier on the files the developer actually
|
|
5
|
+
# touched, instead of `prettier --write .` over the whole repo. The old hook
|
|
6
|
+
# silently rewrote unrelated files on every commit and left the working tree
|
|
7
|
+
# dirty afterwards — see the long file list in the TortoiseGit commit dialog
|
|
8
|
+
# that triggered this change.
|
|
9
|
+
#
|
|
10
|
+
# lint-staged is the standard tool for this. It also handles edge cases the
|
|
11
|
+
# previous hand-rolled shell script didn't (filenames with spaces, partial
|
|
12
|
+
# staging via `git add -p`, etc.). Config lives in package.json under the
|
|
13
|
+
# "lint-staged" key.
|
|
14
|
+
#
|
|
15
|
+
# Status: needs a few real-world commits to confirm it behaves well across
|
|
16
|
+
# everyone's git UI (TortoiseGit, command line, VS Code, IntelliJ). If issues
|
|
17
|
+
# come up, revert this file from git history and we'll fall back to a more
|
|
18
|
+
# conservative formatter pipeline.
|
|
19
|
+
#
|
|
20
|
+
# Requires: `npm install --save-dev lint-staged` at the repo root.
|
|
21
|
+
# ──────────────────────────────────────────────────────────────────────────────
|
|
22
|
+
npx lint-staged
|
package/.prettierignore
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Generated / vendored
|
|
2
|
+
node_modules/
|
|
3
|
+
dist/
|
|
4
|
+
build/
|
|
5
|
+
coverage/
|
|
6
|
+
|
|
7
|
+
# Lockfiles — auto-generated, will be rewritten by npm
|
|
8
|
+
package-lock.json
|
|
9
|
+
yarn.lock
|
|
10
|
+
pnpm-lock.yaml
|
|
11
|
+
|
|
12
|
+
# Editor / OS / tool local data
|
|
13
|
+
.idea/
|
|
14
|
+
.vscode/
|
|
15
|
+
.claude/
|
|
16
|
+
.husky/_/
|
|
17
|
+
|
|
18
|
+
# Binaries that prettier shouldn't touch
|
|
19
|
+
*.svg
|
|
20
|
+
*.ico
|
|
21
|
+
*.png
|
|
22
|
+
*.jpg
|
|
23
|
+
*.jpeg
|
|
24
|
+
*.gif
|
|
25
|
+
*.webp
|
|
26
|
+
*.woff
|
|
27
|
+
*.woff2
|
|
28
|
+
*.ttf
|
|
29
|
+
*.eot
|
|
30
|
+
|
|
31
|
+
# Logs
|
|
32
|
+
*.log
|
package/.prettierrc
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
{
|
|
2
|
-
"semi": true,
|
|
3
|
-
"singleQuote": true,
|
|
4
|
-
"tabWidth": 2,
|
|
5
|
-
"printWidth": 160,
|
|
6
|
-
"trailingComma": "none",
|
|
7
|
-
"bracketSpacing": true,
|
|
8
|
-
"bracketSameLine": true
|
|
9
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"semi": true,
|
|
3
|
+
"singleQuote": true,
|
|
4
|
+
"tabWidth": 2,
|
|
5
|
+
"printWidth": 160,
|
|
6
|
+
"trailingComma": "none",
|
|
7
|
+
"bracketSpacing": true,
|
|
8
|
+
"bracketSameLine": true
|
|
9
|
+
}
|
package/.vs/ProjectSettings.json
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
{
|
|
2
|
-
"CurrentProjectSetting": null
|
|
3
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"CurrentProjectSetting": null
|
|
3
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
{
|
|
2
|
-
"ExpandedNodes": [""],
|
|
3
|
-
"SelectedNode": "\\D:\\2.0. Qite\\Tide-Booking-Component\\tide-booking-component",
|
|
4
|
-
"PreviewInSolutionExplorer": false
|
|
5
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"ExpandedNodes": [""],
|
|
3
|
+
"SelectedNode": "\\D:\\2.0. Qite\\Tide-Booking-Component\\tide-booking-component",
|
|
4
|
+
"PreviewInSolutionExplorer": false
|
|
5
|
+
}
|
package/MEMORY.md
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# TIDE-3053 — Expose payment URL in self-contained booking wizard
|
|
2
|
+
|
|
3
|
+
## Goal
|
|
4
|
+
|
|
5
|
+
Make the Tide PSP payment flow usable from the **self-contained** booking-wizard build (`selfcontained/booking-wizard`). Until this change the wrapper had no way to opt into payment-link generation, even though the underlying React component already supported it. Also give the embedding host page a way to **see and act on** the `paymentUrl` returned by Tide instead of being force-redirected.
|
|
6
|
+
|
|
7
|
+
## Background — how the payment flow already worked in the underlying component
|
|
8
|
+
|
|
9
|
+
These settings already exist on `Settings` (see [src/booking-wizard/types.ts](src/booking-wizard/types.ts)):
|
|
10
|
+
|
|
11
|
+
- `generatePaymentUrl` — master switch. When true, the booking call sends `returnPaymentUrl: true` and Tide responds with a `paymentUrl` (PSP URL).
|
|
12
|
+
- `skipPaymentWithAgent` — when an agent is selected, suppress the redirect anyway (B2B flow).
|
|
13
|
+
|
|
14
|
+
The booking-request builder at [src/booking-wizard/features/booking/selectors.ts:321-325](src/booking-wizard/features/booking/selectors.ts:321) computes `returnPaymentUrl` from those two settings + the selected agent. The summary page at [src/booking-wizard/features/summary/summary.tsx](src/booking-wizard/features/summary/summary.tsx) then submits the booking, gets a `paymentUrl` back, and (previously) auto-redirected to it.
|
|
15
|
+
|
|
16
|
+
The self-contained wrapper at [selfcontained/booking-wizard/index.tsx](selfcontained/booking-wizard/index.tsx) reads HTML attributes off the inner `<div>` and builds a `Settings` object — but it never read any payment-related attributes, so `generatePaymentUrl` defaulted to `false` and the whole chain was inert.
|
|
17
|
+
|
|
18
|
+
## Changes in this branch
|
|
19
|
+
|
|
20
|
+
### 1. `selfcontained/booking-wizard/index.tsx`
|
|
21
|
+
|
|
22
|
+
Read three new HTML attributes from the settings element and pass them through to the `Settings` context:
|
|
23
|
+
|
|
24
|
+
| Attribute | Type | Meaning |
|
|
25
|
+
| ---------------------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
26
|
+
| `generatePaymentUrl` | presence-based boolean | Enables PSP payment-link generation |
|
|
27
|
+
| `skipPaymentWithAgent` | presence-based boolean | Skips the payment redirect when an agent is selected |
|
|
28
|
+
| `paymentRedirectUrl` | string | URL Tide passes to the PSP as the "return after payment" URL. If omitted, falls back to the previous default (built from `basePath` + booking query string). |
|
|
29
|
+
|
|
30
|
+
### 2. `src/booking-wizard/types.ts`
|
|
31
|
+
|
|
32
|
+
Added `paymentRedirectUrl?: string` to `Settings`.
|
|
33
|
+
|
|
34
|
+
### 3. `src/booking-wizard/features/summary/summary.tsx`
|
|
35
|
+
|
|
36
|
+
Two behavior changes (apply to both the routed and self-contained wizard builds):
|
|
37
|
+
|
|
38
|
+
a. **Configurable PSP return URL.** When `settings.paymentRedirectUrl` is set, it is used verbatim as `bookRequest.payload.redirectUrl`. Otherwise the previous `${protocol}//${host}${basePath}?${bookingQueryString}` construction is used. This lets the host pass a URL that includes a `{bookingNr}` placeholder for Tide to substitute server-side (see "Open question" below).
|
|
39
|
+
|
|
40
|
+
b. **`paymentUrl` is exposed via a `CustomEvent`.** When the booking response contains a `paymentUrl`, a cancelable `CustomEvent` named `tide-booking-payment-url` is dispatched on the `#tide-booking` element (or `window` as fallback) before the auto-redirect. Detail payload:
|
|
41
|
+
|
|
42
|
+
```ts
|
|
43
|
+
{
|
|
44
|
+
paymentUrl: string;
|
|
45
|
+
bookingNumber: string;
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
The event bubbles and is cancelable. If a listener calls `e.preventDefault()`, the component will **not** auto-redirect to `paymentUrl` — the host page is then responsible for whatever happens next (open in new tab, modal, custom redirect, etc.). When nothing listens (or the listener doesn't `preventDefault`), the existing behavior is preserved: `window.location.href = paymentUrl`.
|
|
50
|
+
|
|
51
|
+
## How a host page consumes this
|
|
52
|
+
|
|
53
|
+
```html
|
|
54
|
+
<div id="tide-booking">
|
|
55
|
+
<div
|
|
56
|
+
officeId="1"
|
|
57
|
+
apiUrl="..."
|
|
58
|
+
apiKey="..."
|
|
59
|
+
productCode="..."
|
|
60
|
+
generatePaymentUrl
|
|
61
|
+
paymentRedirectUrl="https://example.com/confirmation?bookingNr={bookingNr}"></div>
|
|
62
|
+
</div>
|
|
63
|
+
|
|
64
|
+
<script src="dist/bundle.js"></script>
|
|
65
|
+
<script>
|
|
66
|
+
document.getElementById('tide-booking').addEventListener('tide-booking-payment-url', (e) => {
|
|
67
|
+
console.log(e.detail.paymentUrl, e.detail.bookingNumber);
|
|
68
|
+
// Option A: do nothing → component auto-redirects to e.detail.paymentUrl
|
|
69
|
+
// Option B: e.preventDefault(); window.open(e.detail.paymentUrl, '_blank'); etc.
|
|
70
|
+
});
|
|
71
|
+
</script>
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Open question to confirm with the Tide backend team
|
|
75
|
+
|
|
76
|
+
The user-confirmed behavior is: **Tide's API uses the `redirectUrl` string verbatim — it does not append `bookingNr` automatically.** In the Sitecore integration, a `{bookingNr}` (or similar) placeholder is included in the `redirectUrl` and Tide substitutes the actual booking number server-side before handing the URL to the PSP.
|
|
77
|
+
|
|
78
|
+
We need confirmation of:
|
|
79
|
+
|
|
80
|
+
1. The exact placeholder syntax Tide's API supports (`{bookingNr}`? `{{bookingNr}}`? something else?).
|
|
81
|
+
2. Whether other tokens are supported (e.g. `{officeId}`, `{transactionId}`).
|
|
82
|
+
|
|
83
|
+
The wizard already handles the return: [booking-self-contained.tsx:132](src/booking-wizard/features/booking/booking-self-contained.tsx:132) reads `bookingNr` from the URL on load and jumps to the confirmation step. So once the placeholder syntax is confirmed and the host page sends e.g. `?bookingNr={bookingNr}`, the resume flow should work end-to-end.
|
|
84
|
+
|
|
85
|
+
## Not done in this PR (deliberately)
|
|
86
|
+
|
|
87
|
+
- **No UI changes.** The summary spinner / "Redirecting to payment provider…" label is unchanged. There is no UI for the host to "review the URL" before redirecting — that's expected to be host-side.
|
|
88
|
+
- **No end-to-end test against a real PSP-configured Tide office.** Needs verification.
|
|
89
|
+
- **Search-results booking flow is untouched.** [src/search-results/components/book-packaging-entry/index.tsx:184](src/search-results/components/book-packaging-entry/index.tsx:184) still does an unconditional `window.location.href = paymentUrl`. If consistent behavior across both booking surfaces is desired, the same `CustomEvent` should be added there (it already has its own `generatePaymentUrl` flag on a separate context type).
|
|
90
|
+
- **Type declaration for the custom event.** Consumers using TypeScript will currently see `e.detail` as `any` because the event isn't declared in a `WindowEventMap` augmentation. Consider adding a `.d.ts` if the host site is in TS.
|
|
91
|
+
|
|
92
|
+
## Files touched
|
|
93
|
+
|
|
94
|
+
- `selfcontained/booking-wizard/index.tsx`
|
|
95
|
+
- `src/booking-wizard/types.ts`
|
|
96
|
+
- `src/booking-wizard/features/summary/summary.tsx`
|
|
97
|
+
- `MEMORY.md` (this file)
|
package/NEXTSTEPS.md
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# NEXTSTEPS — TIDESUPP-75 / Booking-product & wizard rework
|
|
2
|
+
|
|
3
|
+
> **Delete this file when the items below are resolved.** It is a scratch handoff doc, not permanent repo documentation.
|
|
4
|
+
|
|
5
|
+
Code work is complete and committed across this branch (`feature/product-component-some-rework-other-service-types`). The items below are what a human needs to do before this merges to master.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 1. Install lint-staged (one command, blocks commits if skipped)
|
|
10
|
+
|
|
11
|
+
The new pre-commit hook in `.husky/pre-commit` calls `npx lint-staged`, but the package isn't yet a dependency. Pin to v15 because v16+ requires Node 20.12+ and our `.nvmrc` is 20.10.
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npm install --save-dev lint-staged@^15
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Verify by making a small commit. Expected behavior: prettier runs only on the files you changed, working tree stays clean afterwards. If it goes haywire, revert `.husky/pre-commit` and the `lint-staged` block in `package.json` from git history.
|
|
18
|
+
|
|
19
|
+
## 2. End-to-end test against a real Tide office
|
|
20
|
+
|
|
21
|
+
The booking-product changes (`disableRooms`, `mainIcon`, `customTranslationsUrl`) haven't been tested against the actual Tide booking API for a non-package product (course, rental, excursion). Steps:
|
|
22
|
+
|
|
23
|
+
1. Pick a Tide office configured with a non-accommodation product.
|
|
24
|
+
2. Configure the self-contained build in a host page (or use `selfcontained/booking-product/index.html` directly with the right API key).
|
|
25
|
+
3. Set `disableRooms`, an appropriate `mainIcon` (e.g. `ui-excursion`), and `customTranslationsUrl` pointing at a customer-rebranded JSON file.
|
|
26
|
+
4. Confirm:
|
|
27
|
+
- Booking submits successfully end-to-end
|
|
28
|
+
- The price reflects pax count correctly even with the room scaffolding hidden
|
|
29
|
+
- All translation overrides are visible in the rendered UI (no flash of default copy)
|
|
30
|
+
|
|
31
|
+
Same exercise for the booking-wizard with `customTranslationsUrl`.
|
|
32
|
+
|
|
33
|
+
## 3. Visual QA across the affected screens
|
|
34
|
+
|
|
35
|
+
Click through every page in the playground (`/`, `/boeken`, `/product`, search-results pages) and confirm nothing layout-broke from the `Rooms` component changes. Particularly:
|
|
36
|
+
|
|
37
|
+
- The `disableRooms` path on the product page: adults/children inputs still aligned, age-of-children selector still appears when children > 0.
|
|
38
|
+
- The wizard summary and sidebar still render correctly with the `SHARED.ROOM / ROOMS` translation overrides in effect.
|
|
39
|
+
|
|
40
|
+
## 4. Translation file completeness
|
|
41
|
+
|
|
42
|
+
The example files at `playground/public/translations/{en-GB,nl-BE}.json` and `selfcontained/booking-product/translations/en-GB.json` only override 5–6 keys (the ones relevant for the demo). If the first real customer wants a fuller rebrand, they'll need a more complete override. Worth pre-emptively documenting the full set of overrideable keys for them — start from `src/shared/translations/en-GB.json`.
|
|
43
|
+
|
|
44
|
+
## 5. Confirm `{bookingNr}` placeholder behaviour with Tide backend (TIDE-3053 follow-up)
|
|
45
|
+
|
|
46
|
+
Not strictly part of this ticket, but the booking-wizard payment URL work from the previous branch is gated on this answer:
|
|
47
|
+
|
|
48
|
+
> Does Tide's booking API substitute a `{bookingNr}` token (or similar) in the `redirectUrl` we send, or does it pass the URL through verbatim?
|
|
49
|
+
|
|
50
|
+
If the answer is "verbatim", the wizard's existing `bookingNr`-on-return resume logic won't work for PSP-driven flows and we need a different design.
|
|
51
|
+
|
|
52
|
+
## 6. Optional: extend the same `customTranslationsUrl` pattern to search-results
|
|
53
|
+
|
|
54
|
+
Search-results' booking entry (`src/search-results/components/book-packaging-entry/index.tsx`) has its own `generatePaymentUrl` and unconditional `window.location.href = paymentUrl`. For consistency it could get the same `tide-booking-payment-url` CustomEvent treatment as the wizard. Small follow-up, not blocking.
|
|
55
|
+
|
|
56
|
+
## 7. Items deliberately not done (carry-over for later)
|
|
57
|
+
|
|
58
|
+
- **Vite migration off CRA**: discussed and explicitly deferred. Tracked separately.
|
|
59
|
+
- **Icon component refactor**: the 1114-line switch statement is hard to extend. Quickest fix is to enable the existing `icons` sprite escape hatch (Icon component already supports it, line 16 just needs to read from settings context). ~15 min job.
|
|
60
|
+
- **TypeScript declaration for `tide-booking-payment-url` event**: consumers see `e.detail` as `any`. A `.d.ts` augmenting `WindowEventMap` would fix it.
|
|
61
|
+
- **Deep merge in `selectTranslations`**: currently a 2-level shallow merge. Sufficient for today's translation file shapes but breaks if anyone adds 3-level nesting.
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## File index for the reviewer
|
|
66
|
+
|
|
67
|
+
### TIDESUPP-75 booking-product (already committed)
|
|
68
|
+
|
|
69
|
+
- `selfcontained/booking-product/index.tsx`
|
|
70
|
+
- `src/booking-product/components/product.tsx` (fetch + render gate)
|
|
71
|
+
- `src/booking-product/components/rooms.tsx` (`disableRooms` branch)
|
|
72
|
+
- `src/booking-product/components/header.tsx` (`mainIcon`)
|
|
73
|
+
- `src/booking-product/components/{age-select,amount-input,dates,footer,list-view}.tsx` (one-line each)
|
|
74
|
+
- `src/booking-product/types.ts`
|
|
75
|
+
- `src/shared/utils/localization-util.ts` (`getTranslations` overload)
|
|
76
|
+
- `playground/public/translations/en-GB.json` + `nl-BE.json`
|
|
77
|
+
- `selfcontained/booking-product/translations/en-GB.json`
|
|
78
|
+
- `playground/src/components/product-page.tsx`
|
|
79
|
+
|
|
80
|
+
### Booking-wizard `customTranslationsUrl` (already committed)
|
|
81
|
+
|
|
82
|
+
- `src/booking-wizard/types.ts`
|
|
83
|
+
- `src/booking-wizard/features/booking/booking-self-contained.tsx`
|
|
84
|
+
- `src/booking-wizard/features/booking/booking.tsx`
|
|
85
|
+
- `selfcontained/booking-wizard/index.tsx`
|
|
86
|
+
- `playground/src/components/booking-page.tsx`
|
|
87
|
+
|
|
88
|
+
### Tooling (already committed)
|
|
89
|
+
|
|
90
|
+
- `README.md`, `playground/README.md` (--legacy-peer-deps note)
|
|
91
|
+
- `.prettierignore`
|
|
92
|
+
- `package.json` (lint-staged config block + evaluation comment)
|
|
93
|
+
- `.husky/pre-commit` (replaced with `npx lint-staged`)
|
|
94
|
+
- `.gitignore` (added `.claude/`)
|
package/README.md
CHANGED
|
@@ -1,24 +1,26 @@
|
|
|
1
|
-
# README
|
|
2
|
-
|
|
3
|
-
This is the unified Tide Booking component.
|
|
4
|
-
|
|
5
|
-
## Setup
|
|
6
|
-
|
|
7
|
-
- Use Node version 20
|
|
8
|
-
- Install node modules
|
|
9
|
-
- Install node modules
|
|
10
|
-
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
-
|
|
22
|
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
1
|
+
# README
|
|
2
|
+
|
|
3
|
+
This is the unified Tide Booking component.
|
|
4
|
+
|
|
5
|
+
## Setup
|
|
6
|
+
|
|
7
|
+
- Use Node version 20 (an `.nvmrc` is present; if you use fnm or nvm, your shell should pick it up automatically).
|
|
8
|
+
- Install node modules at the repo root: `npm ci`
|
|
9
|
+
- Install node modules in the playground: `cd playground && npm ci --legacy-peer-deps`
|
|
10
|
+
- The `--legacy-peer-deps` flag is required because `react-scripts@5.0.1` (CRA, end-of-life) declares peer-dep compatibility only up to TypeScript 4.x, while this repo's lockfile pins TS 5.x. The lockfile is fine; the declared constraint is stale. Without the flag npm 7+ refuses to install.
|
|
11
|
+
- Start the playground: `cd playground && npm start`
|
|
12
|
+
- (One-time) After installing playground node modules, run `npm link ./playground/node_modules/react` at the repo root to avoid the React duplicate-hook warning.
|
|
13
|
+
|
|
14
|
+
## Remarks
|
|
15
|
+
|
|
16
|
+
Do not forget to sync React versions when you're doing local changes and when you try to test them in a local React project (check https://reactjs.org/warnings/invalid-hook-call-warning.html#duplicate-react).
|
|
17
|
+
If using the playground, after installing its node modules, execute the following command in the root folder `npm link ./playground/node_modules/react`
|
|
18
|
+
|
|
19
|
+
## Use of the package
|
|
20
|
+
|
|
21
|
+
When using booking-wizard in a gatsby v5 website do following steps
|
|
22
|
+
|
|
23
|
+
- Use react v20 and react-router-dom@6
|
|
24
|
+
- Import only @runtime (otherwise signalr-no-query gives an error an window)
|
|
25
|
+
- Surround <BookingWizard> with a <BrowserRouter basename={basePath}> to handle the internal routing
|
|
26
|
+
- Set 'skipBasePathInRouting' to true in the settings to avoid duplicate basepaths in the internal routing.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qite/tide-booking-component",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.124",
|
|
4
4
|
"description": "React Booking wizard & Booking product component for Tide",
|
|
5
5
|
"main": "build/build-cjs/index.js",
|
|
6
6
|
"types": "build/build-cjs/src/index.d.ts",
|
|
@@ -13,6 +13,14 @@
|
|
|
13
13
|
"format": "prettier --write .",
|
|
14
14
|
"prepare": "husky"
|
|
15
15
|
},
|
|
16
|
+
"//lint-staged": [
|
|
17
|
+
"EVALUATION (TIDESUPP-75 follow-up): introduced to make the pre-commit hook only format the files the developer actually touched, instead of the whole repo. The old hook (`prettier --write .` in .husky/pre-commit) silently rewrote unrelated files on every commit. lint-staged also handles partial staging (`git add -p`) correctly — the hand-rolled shell script we briefly used did not.",
|
|
18
|
+
"Status: needs a few real-world commits across everyone's git UI (TortoiseGit, CLI, VS Code, IntelliJ) before we trust it. If issues come up, revert .husky/pre-commit and this block from git history.",
|
|
19
|
+
"Goal: smaller diffs, no surprise reformats, stable working tree after commit."
|
|
20
|
+
],
|
|
21
|
+
"lint-staged": {
|
|
22
|
+
"*": "prettier --write --ignore-unknown"
|
|
23
|
+
},
|
|
16
24
|
"repository": {
|
|
17
25
|
"type": "git",
|
|
18
26
|
"url": "git+ssh://git@bitbucket.org/qitegeneral/tide-booking-component.git"
|
|
@@ -44,6 +52,7 @@
|
|
|
44
52
|
"flat": "^5.0.2",
|
|
45
53
|
"formik": "^2.2.9",
|
|
46
54
|
"husky": "^9.1.7",
|
|
55
|
+
"lint-staged": "^15.5.2",
|
|
47
56
|
"lodash": "^4.17.21",
|
|
48
57
|
"prettier": "^2.3.2",
|
|
49
58
|
"react-popper": "^2.2.5",
|
package/rollup.config.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import commonjs from '@rollup/plugin-commonjs';
|
|
2
|
-
import del from 'rollup-plugin-delete';
|
|
3
|
-
import json from '@rollup/plugin-json';
|
|
4
|
-
import nodeResolve from '@rollup/plugin-node-resolve';
|
|
5
|
-
import packageJson from './package.json';
|
|
6
|
-
import peerDepsExternal from 'rollup-plugin-peer-deps-external';
|
|
7
|
-
import typescript from 'rollup-plugin-typescript2';
|
|
8
|
-
|
|
9
|
-
export default {
|
|
10
|
-
input: 'src/index.ts',
|
|
11
|
-
output: [
|
|
12
|
-
{ file: packageJson.main, format: 'cjs', banner: '/* eslint-disable */', inlineDynamicImports: true },
|
|
13
|
-
{ file: packageJson.module, format: 'esm', banner: '/* eslint-disable */', inlineDynamicImports: true }
|
|
14
|
-
],
|
|
15
|
-
plugins: [peerDepsExternal(), json(), nodeResolve(), commonjs(), typescript(), del({ targets: ['build/*'] })]
|
|
16
|
-
};
|
|
1
|
+
import commonjs from '@rollup/plugin-commonjs';
|
|
2
|
+
import del from 'rollup-plugin-delete';
|
|
3
|
+
import json from '@rollup/plugin-json';
|
|
4
|
+
import nodeResolve from '@rollup/plugin-node-resolve';
|
|
5
|
+
import packageJson from './package.json';
|
|
6
|
+
import peerDepsExternal from 'rollup-plugin-peer-deps-external';
|
|
7
|
+
import typescript from 'rollup-plugin-typescript2';
|
|
8
|
+
|
|
9
|
+
export default {
|
|
10
|
+
input: 'src/index.ts',
|
|
11
|
+
output: [
|
|
12
|
+
{ file: packageJson.main, format: 'cjs', banner: '/* eslint-disable */', inlineDynamicImports: true },
|
|
13
|
+
{ file: packageJson.module, format: 'esm', banner: '/* eslint-disable */', inlineDynamicImports: true }
|
|
14
|
+
],
|
|
15
|
+
plugins: [peerDepsExternal(), json(), nodeResolve(), commonjs(), typescript(), del({ targets: ['build/*'] })]
|
|
16
|
+
};
|
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
import { range } from 'lodash';
|
|
2
|
-
import React, { useContext } from 'react';
|
|
3
|
-
import { getTranslations } from '../../shared/utils/localization-util';
|
|
4
|
-
import SettingsContext from '../settings-context';
|
|
5
|
-
|
|
6
|
-
interface AgeSelectProps {
|
|
7
|
-
value?: number;
|
|
8
|
-
disabled?: boolean;
|
|
9
|
-
onChange?: (value: number) => void;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
const AgeSelect: React.FC<AgeSelectProps> = ({ value, disabled, onChange }) => {
|
|
13
|
-
const { language } = useContext(SettingsContext);
|
|
14
|
-
const translations = getTranslations(language);
|
|
15
|
-
|
|
16
|
-
const handleChange: React.ChangeEventHandler<HTMLSelectElement> = (event) => {
|
|
17
|
-
if (onChange) {
|
|
18
|
-
onChange(event.target.selectedIndex);
|
|
19
|
-
}
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
return (
|
|
23
|
-
<div className="dropdown dropdown--small">
|
|
24
|
-
<select onChange={handleChange} value={value ?? 0} disabled={disabled}>
|
|
25
|
-
{range(0, 18).map((age) => (
|
|
26
|
-
<option key={age} value={age}>
|
|
27
|
-
{age} {translations.PRODUCT.YEAR}
|
|
28
|
-
</option>
|
|
29
|
-
))}
|
|
30
|
-
</select>
|
|
31
|
-
</div>
|
|
32
|
-
);
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
export default AgeSelect;
|
|
1
|
+
import { range } from 'lodash';
|
|
2
|
+
import React, { useContext } from 'react';
|
|
3
|
+
import { getTranslations } from '../../shared/utils/localization-util';
|
|
4
|
+
import SettingsContext from '../settings-context';
|
|
5
|
+
|
|
6
|
+
interface AgeSelectProps {
|
|
7
|
+
value?: number;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
onChange?: (value: number) => void;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
const AgeSelect: React.FC<AgeSelectProps> = ({ value, disabled, onChange }) => {
|
|
13
|
+
const { language, customTranslations } = useContext(SettingsContext);
|
|
14
|
+
const translations = getTranslations(language, customTranslations);
|
|
15
|
+
|
|
16
|
+
const handleChange: React.ChangeEventHandler<HTMLSelectElement> = (event) => {
|
|
17
|
+
if (onChange) {
|
|
18
|
+
onChange(event.target.selectedIndex);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
return (
|
|
23
|
+
<div className="dropdown dropdown--small">
|
|
24
|
+
<select onChange={handleChange} value={value ?? 0} disabled={disabled}>
|
|
25
|
+
{range(0, 18).map((age) => (
|
|
26
|
+
<option key={age} value={age}>
|
|
27
|
+
{age} {translations.PRODUCT.YEAR}
|
|
28
|
+
</option>
|
|
29
|
+
))}
|
|
30
|
+
</select>
|
|
31
|
+
</div>
|
|
32
|
+
);
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
export default AgeSelect;
|
|
@@ -1,51 +1,51 @@
|
|
|
1
|
-
import React, { useContext } from 'react';
|
|
2
|
-
import { getTranslations } from '../../shared/utils/localization-util';
|
|
3
|
-
import SettingsContext from '../settings-context';
|
|
4
|
-
import { buildClassName } from '../../shared/utils/class-util';
|
|
5
|
-
import Icon from '../../shared/components/icon';
|
|
6
|
-
|
|
7
|
-
interface AmountInputProps {
|
|
8
|
-
label: string;
|
|
9
|
-
value: number;
|
|
10
|
-
disabled?: boolean;
|
|
11
|
-
min?: number;
|
|
12
|
-
onChange?: (value: number) => void;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
const AmountInput: React.FC<AmountInputProps> = ({ label, value, disabled, min, onChange }) => {
|
|
16
|
-
const { language } = useContext(SettingsContext);
|
|
17
|
-
const translations = getTranslations(language);
|
|
18
|
-
|
|
19
|
-
const handleIncreaseClick: React.MouseEventHandler<HTMLButtonElement> = (event) => {
|
|
20
|
-
if (onChange) {
|
|
21
|
-
onChange(value + 1);
|
|
22
|
-
}
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
const handleDecreaseClick: React.MouseEventHandler<HTMLButtonElement> = (event) => {
|
|
26
|
-
if (onChange) {
|
|
27
|
-
onChange(Math.max(value - 1, min ?? 0));
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
return (
|
|
32
|
-
<div className={buildClassName(['decrement-increment', disabled && 'decrement-increment--disabled'])}>
|
|
33
|
-
<label className="decrement-increment__label">{label}</label>
|
|
34
|
-
<div className="decrement-increment__ui">
|
|
35
|
-
{!disabled && (
|
|
36
|
-
<button type="button" className="button button--decrement" title={translations.INPUT.DECREASE} disabled={disabled} onClick={handleDecreaseClick}>
|
|
37
|
-
<Icon name="ui-min" />
|
|
38
|
-
</button>
|
|
39
|
-
)}
|
|
40
|
-
<span>{value}</span>
|
|
41
|
-
{!disabled && (
|
|
42
|
-
<button type="button" className="button button--increment" title={translations.INPUT.INCREASE} disabled={disabled} onClick={handleIncreaseClick}>
|
|
43
|
-
<Icon name="ui-plus" />
|
|
44
|
-
</button>
|
|
45
|
-
)}
|
|
46
|
-
</div>
|
|
47
|
-
</div>
|
|
48
|
-
);
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
export default AmountInput;
|
|
1
|
+
import React, { useContext } from 'react';
|
|
2
|
+
import { getTranslations } from '../../shared/utils/localization-util';
|
|
3
|
+
import SettingsContext from '../settings-context';
|
|
4
|
+
import { buildClassName } from '../../shared/utils/class-util';
|
|
5
|
+
import Icon from '../../shared/components/icon';
|
|
6
|
+
|
|
7
|
+
interface AmountInputProps {
|
|
8
|
+
label: string;
|
|
9
|
+
value: number;
|
|
10
|
+
disabled?: boolean;
|
|
11
|
+
min?: number;
|
|
12
|
+
onChange?: (value: number) => void;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const AmountInput: React.FC<AmountInputProps> = ({ label, value, disabled, min, onChange }) => {
|
|
16
|
+
const { language, customTranslations } = useContext(SettingsContext);
|
|
17
|
+
const translations = getTranslations(language, customTranslations);
|
|
18
|
+
|
|
19
|
+
const handleIncreaseClick: React.MouseEventHandler<HTMLButtonElement> = (event) => {
|
|
20
|
+
if (onChange) {
|
|
21
|
+
onChange(value + 1);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
const handleDecreaseClick: React.MouseEventHandler<HTMLButtonElement> = (event) => {
|
|
26
|
+
if (onChange) {
|
|
27
|
+
onChange(Math.max(value - 1, min ?? 0));
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
return (
|
|
32
|
+
<div className={buildClassName(['decrement-increment', disabled && 'decrement-increment--disabled'])}>
|
|
33
|
+
<label className="decrement-increment__label">{label}</label>
|
|
34
|
+
<div className="decrement-increment__ui">
|
|
35
|
+
{!disabled && (
|
|
36
|
+
<button type="button" className="button button--decrement" title={translations.INPUT.DECREASE} disabled={disabled} onClick={handleDecreaseClick}>
|
|
37
|
+
<Icon name="ui-min" />
|
|
38
|
+
</button>
|
|
39
|
+
)}
|
|
40
|
+
<span>{value}</span>
|
|
41
|
+
{!disabled && (
|
|
42
|
+
<button type="button" className="button button--increment" title={translations.INPUT.INCREASE} disabled={disabled} onClick={handleIncreaseClick}>
|
|
43
|
+
<Icon name="ui-plus" />
|
|
44
|
+
</button>
|
|
45
|
+
)}
|
|
46
|
+
</div>
|
|
47
|
+
</div>
|
|
48
|
+
);
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
export default AmountInput;
|