fix(SW-3111): Added test for passwordValidator and updated pw validation
* fix(SW-3111): Added test for passwordValidator and updated pw validation
* fix: make sure regex is matching Curity
* Added error message to input field and changed message
* Fixed text
Approved-by: Christian Andolf
fix(SW-2845): remove hover state when clicking hotel card address
* fix(SW-2845): remove hover state when clicking hotel card address
Approved-by: Michael Zetterberg
fix(SW-1702): Check if map view in Booking widget
* fix(SW-1702): Check if map view in Booking widget
* fix: change includes to endsWith
Approved-by: Arvid Norlin
fix(SW-2707): Added new error code and set alert again when errorCode is changed
* fix(SW-2707): Added new error code and set alert again when errorCode is changed
Approved-by: Michael Zetterberg
fix(SW-2801): Added lang specific date formats
* fix(SW-2801): Added lang specific date formats
* fix: wrong type import
Approved-by: Michael Zetterberg
fix(SW-3078): change to string instead of Date in Zod schema
* fix(SW-3078): change to string instead of Date in Zod schema
Approved-by: Michael Zetterberg
Approved-by: Linus Flood
fix(SW-3068): fix race condition that cause alert height not to be set correctly
* fix(SW-3068): fix race condition that cause alert height not to be set correctly
Approved-by: Linus Flood
Fix/SW-2841 filter popup closing on select
* fix(SW-2841): refactored so that filter modal is not closed when selecting filters
* fix(SW-2841): rename component
* fix: review feedback
* fix: move font-family
* fix: change init value of filteredHotelIds
* fix
* fix: add Typography tag
Approved-by: Michael Zetterberg
Approved-by: Christian Andolf
fix(SW-1684): set font family phone input dropdown
* fix: set font family phone input dropdown
* fix: phone input styling
Approved-by: Christian Andolf
feat(SW-2679): Added form tracking for checkout and signup
* feat(SW-2679): Added form tracking for checkout and signup
* fix(SW-2679): fixes from review
Approved-by: Michael Zetterberg
fix(SW-2972): hotel card prices didnt take full width
* fix(SW-2972): hotel card prices didnt take full width
Approved-by: Linus Flood
Approved-by: Matilda Landström
fix(SW-2534): Added validation error and fixed initial month in date picker for BW
* Merged in revert-version (pull request #2128)
revert including version in layouts and api responses
* revert including version in layouts and api responses
Approved-by: Linus Flood
* feat: prevent users from selecting the same room when there is no vacancy for it
* Merged in fix/no-my-stay-for-external-bookings (pull request #2126)
fix: Only link web and app bookings to my stay
Approved-by: Joakim Jäderberg
* Merged in fix/bookingwidget-fixes (pull request #2135)
Fix: (#SW-2663) bookingwidget mobile - Space around, border-radius and correct color on date field
* fix: booking widget mobile - padding around booking widget and date color
* Fixed rounded corners
* Reduced minimum size of column
Approved-by: Joakim Jäderberg
* Merged in fix/LOY-105-signupform-error-messages (pull request #2121)
feat(LOY-105): update signup form validation messages
* feat(LOY-105): improve signup form validation messages
Approved-by: Erik Tiekstra
* fix(LOY-199): add missing benefits link
* Merged in feat/SW-2340-aa-tracking-my-stay-pageview- (pull request #2133)
feat: SW-2340 Implemented tracking on my-stay, webview my-stay and receipt page
* feat: SW-2340 Implemented tracking on my-stay, webview my-stay and receipt page
* feat: SW-2340 Updated webview tracking
* feat: SW-2340 Updated receipt tracking
Approved-by: Linus Flood
* Merged in fix/SW-2804-missing-meeting-rooms (pull request #2138)
fix: return [] when we get a 404 for meeting rooms for a hotel
* fix: return [] when we get a 404 for meeting rooms for a hotel
Approved-by: Linus Flood
* feat(auth): limit output in session endpoint
* fix(SW-2376): Vertically centered previous/next buttons inside carousel cards
Approved-by: Matilda Landström
* fix(SW-2055): Surrounded ul inside JsonToHtml with a typography component
Approved-by: Matilda Landström
* fix(SW-2621): Breaking too long words on heading inside destination city pages
Approved-by: Matilda Landström
* Merged in fix/sw-2763-external-scripts (pull request #2104)
fix: try/catch external scripts to avoid them breaking our page #sw-2763
* fix: try/catch external scripts to avoid them breaking our page #sw-2763
Approved-by: Joakim Jäderberg
* fix: handle non loaded surprises in case they're returned as null from server
* feat(SW-2806): booking widget should not be blocked by sitewide alert
* Merged in fix/remove-on-error (pull request #2142)
fix: revert onError on the Script component
* fix: revert onError on the Script component
* Merged in fix/alert-icon (pull request #2139)
fix(SW-2807): alert icons
* fix(SW-2807): fix incorrect icon color on sitewide alert
* fix(SW-2807): change error icon
Approved-by: Erik Tiekstra
Approved-by: Linus Flood
* Merged in feat/SW-2760-SW-552-wellness-openinghours (pull request #2112)
fix(SW-2760, SW-2552): fix opening hours wellness sidepeek
* fix(SW-2760, SW-2552): fix opening hours wellness sidepeek
Approved-by: Erik Tiekstra
* Merged in feat/SW-1749-sidepeek-hotel-cta (pull request #2123)
feat(SW-1749): add link to hotel page in sidepeek
* feat(SW-1749): add link to hotel page in sidepeek
Approved-by: Matilda Landström
* fix(SW-2811): suggest list should follow where-to-field
* fix(SW-2451): placement of suggest list
* Merged in fix/SW-2684-booking-widget-text-overflow (pull request #2048)
fix(SW-2684): truncate overflowing text in booking widget
* fix: truncate overflowing text in booking widget
* fix: change Body to Typography and css selector fix
Approved-by: Hrishikesh Vaipurkar
* Merged in feat/SW-2800-lightbox-history-state (pull request #2147)
feat(SW-2800): closing image gallery and lightbox on using browser navigation
* feat(SW-2800): closing image gallery and lightbox on using browser navigation
Approved-by: Linus Flood
* Merged in fix/enter-details-footer-margin (pull request #2150)
fix: margin to footer on enter details
* fix: margin to footer on enter details
* Merged in fix/SW-2822-missing-meetingroom-images (pull request #2151)
fix: meeting rooms with missing images
* fix: meeting rooms with missing images
Approved-by: Linus Flood
Approved-by: Bianca Widstam
fix(SW-2684): truncate overflowing text in booking widget
* fix: truncate overflowing text in booking widget
* fix: change Body to Typography and css selector fix
Approved-by: Hrishikesh Vaipurkar
fix(SW-2748 and SW-2747): z-index issue with overlapping summary on desktop viewport
* fix: z-index issue with overlapping summary on desktop viewport
* fix: unset z-index on desktop
Approved-by: Niclas Edenvin
fix(SW-2668): added search term and room details to tracking
* fix(SW-2668): added search term and room details to tracking
* fix: change to optional type
Approved-by: Christian Andolf
Approved-by: Matilda Landström
fix(SW-2631): check if session is valid otherwise use service token
* fix: check if session is valid otherwise use service token
* fix: only use service token for queries and updated mutations to check for valid user token
Approved-by: Michael Zetterberg
fix: remove ancilleries data when reloading booking confirmation
* fix: remove ancilleries data when reloading booking confirmation
Approved-by: Arvid Norlin
Approved-by: Christian Andolf
fix: update condition when to display NoAvailabilityAlert when using booking code
* fix: update condition when to display NoAvailabilityAlert when using booking code
Approved-by: Michael Zetterberg
Approved-by: Arvid Norlin
Fix/tracking fixes
* fix: remove hotelInfo and paymentInfo when user reloads page on confirmation page
* fix: clean session storage item on unmount
* fix: commented out hard navigation hook
* fix: update price calculation on room ancillary in tracking
* fix: update discount calculation
* fix: add space between fns
* fix: allow useSoftNavigation to fire pageview again on same pathname
* fix: prevent bedSelection and breakfastSelection from tracking twice
Approved-by: Hrishikesh Vaipurkar
Fix/SW-2462 room availability error
* fix: added toast error when availability fails and you get redirect to select-rate
* fix: added support for showing alert when availability error happens
* fix: rename PaymentAlert -> BookingAlert
Approved-by: Erik Tiekstra
fix(SW-1353): enter details tracking fixes
* fix(SW-1353): tracking fixes
* refactor: move code
* fix: use hasPublicPrice
* fix: update calculation for roomPrice and totalPrice
* fix: only include bedtype if it is "preselected"
Approved-by: Michael Zetterberg
Feat/SW-1549 map improvements
* fix: imported new icon
* refactor: rename component and set map handling to 'greedy'
* fix: show cards for 3s after hover
* refactor: update styles and added HotelPin component
* fix: change from close to back icon
* refactor: update to only use 1 state value for active pin and card
* fix: add click handler when dialog is opened
* fix: performance fixes for the dialog carousel
* fix: added border
* fix: clear timeout on mouseenter
* fix: changed to absolute import
* fix: moved hover state into the store
* fix: renamed store actions
Approved-by: Michael Zetterberg
fix(SW-1526): adjusted scroll position when selecting a rate
* fix: adjusted scroll position when selecting a rate
* fix
Approved-by: Michael Zetterberg
Feat/SW-2113 allow feature combinations
* feat(SW-2113): Refactor features data to be fetched on filter room filter change
* feat(SW-2113): added loading state
* fix: now clear room selection when applying filter and room doesnt exists. And added room features to mobile summary
* fix
* fix: add package to price details
* feat(SW-2113): added buttons to room filter
* fix: active room
* fix: remove console log
* fix: added form and close handler to room package filter
* fix: add restriction so you cannot select pet room with allergy room and vice versa
* fix: fixes from review feedback
* fix
* fix: hide modify button if on nextcoming rooms if no selection is made, and adjust filter logic in togglePackage
* fix: forgot to use roomFeatureCodes from input..
* fix: naming
Approved-by: Simon.Emanuelsson
feat(SW-2033): Added new route for fetching room features, and merged the data with existing availability data
* feat(SW-2033): Added new route for fetching room features, and merged the data with existing availability data
* fix: issue with total price not including room features
* fix: add return null
* fix
* fix
* fixes from PR feedback
Approved-by: Arvid Norlin
feat(SW-1435): Added RateCard component to design system
* feat(SW-1435): Added new component: RateCard to design system
* feat: added reward night points rate card
* fix: set svg icon color to "currentColor" to make them more reusable
* fix: added click handler for info icon
* fix: added selectedRate
Approved-by: Arvid Norlin
Feat/SW-1149 handle status polling
* feat(SW-1149): move terms and conditions sections to separate component and added copy
* feat(SW-1149): Added client component to handle success callback for payment flow
* fix: check for bookingCompleted status as well
* feat(SW-1587): use alert instead of toast for showing payment errors
* fix: added enum for payment callback status
* fix: proper way of checking for multiple statuses
* fix: update schema type
* fix: use localised link to customer service
* fix: update to use enum for status strings
Approved-by: Arvid Norlin
feat(SW-1078): mixed rate scenario
* feat(SW-1078): mixed rate scenario
* fix: change from css string modification to array join
* refactor: split out big reduce function into smaller parts
* fix: minor fixes and improvments
* fix: added room index map to localization string
Approved-by: Christian Andolf
Feat/SW-1076 no room availability
* fix: update booking error codes
* feat(SW-1076): handle no room availabilty on enter-details
* fix: parse to json in api mutation instead of expecting json
* fix: remove 'isComplete' state from sectionAccordion because it was not needed
Approved-by: Simon.Emanuelsson
Fix/SW-1715 price details with many rooms
* fix: added useMemo to stop combineRoomAvailabilities from rerunning
* fix: add max height and scroll to modal content
* fix: return new array in combineRoomAvailabilities instead of pushing
Approved-by: Christian Andolf
fix(SW-1645): added room features to price detail popup
* fix(SW-1645): added room features to price detail popup
Approved-by: Michael Zetterberg
Approved-by: Christian Andolf
fix(SW-1686): display total rooms and available rooms when filtering
* fix(SW-1686): display total rooms and available rooms when filtering
Approved-by: Arvid Norlin
Approved-by: Simon.Emanuelsson
Feat/SW-1077 enter details edit room
* feat(SW-1077): persist state when changing rooms
* fix: issue with step state when closing accordion and transition to correct room when modifying step
Approved-by: Pontus Dreij
Feat/SW-965 select rate modify room
* feat(SW-965): added new state for modify room and smaller fixes
* feat(SW-965): update state handling of modifyRateIndex
* fix: adjust scroll animation to handle modifyRateIndex
* fix: room state logic and removed unused css class
Approved-by: Pontus Dreij
Approved-by: Arvid Norlin
feat(SW-1259): Enter details multiroom
* refactor: remove per-step URLs
* WIP: map multiroom data
* fix: lint errors in details page
* fix: made useEnterDetailsStore tests pass
* fix: WIP refactor enter details store
* fix: WIP enter details store update
* fix: added room index to select correct room
* fix: added logic for navigating between steps and rooms
* fix: update summary to work with store changes
* fix: added room and total price calculation
* fix: removed unused code and added test for breakfast included
* refactor: move store selectors into helpers
* refactor: session storage state for multiroom booking
* feat: update enter details accordion navigation
* fix: added room index to each form component so they select correct room
* fix: added unique id to input to handle case when multiple inputs have same name
* fix: update payment step with store changes
* fix: rebase issues
* fix: now you should only be able to go to a step if previous room is completed
* refactor: cleanup
* fix: if no availability just skip that room for now
* fix: add select-rate Summary and adjust typings
Approved-by: Arvid Norlin
fix: change from undefined to empty string to get rid of uncontrolled input warnings in tests
* fix: change from undefined to empty string to get rid of uncontrolled input warnings in tests
Approved-by: Michael Zetterberg
fix: increase retry for getting booking status and dont show spinner if timeout occurs
* fix: increase retry for getting booking status and dont show spinner if timeout occurrs
Approved-by: Arvid Norlin
feat: adjust price detail modal to handle multi room and removed dependency of enter details store
* feat: adjust price detail modal to handle multi room and removed dependency of enter details store
* fix: remove div from table
* fix: added room translation
Approved-by: Pontus Dreij
Feat/SW-1379 multiroom summary
* fix: added early return in hotel query and added missing type annotations
* feat(SW-1379): update summary to support multiple rooms and add tests
* fix: added check for room number when using isMember for member prices
* fix: remove mocked array
* fix: minor bug fixes in rate details popup
* fix: translation key
Approved-by: Pontus Dreij
Approved-by: Arvid Norlin
BREAKING CHANGE: should be released to prod together with commit: 999aa376fb and requires Booking API to be released
fix(SW-1342)!: update booking schema to allow nullable and optional fields for confirmationNumber and description
* fix!: update booking schema to allow nullable and optional fields for confirmationNumber and description
Approved-by: Arvid Norlin
fix: update booking status schema and affected code
* fix: update booking api schema and affected code
* fix: update meta prop in booking response schema
Approved-by: Arvid Norlin
Feat/SW-1169 map bedtype icons
* feat(SW-1169): Added bed icons
* fix(SW-1169): update fill rule property
* fix(SW-1169): update clip rule prop
* feat(SW-1169): Added way of rendering bed type icons with extra beds
* feat(SW-1169): update room schema to map mainBed to enum
* feat(SW-1169): update bedtype icon color
* feat(SW-1169): transform unknown bed types to BedTypeEnum.Other
* test: update mock data with new schema
Approved-by: Christel Westerberg
Feat/SW-822 handle breakfast included
* feat(SW-822): Added flag for breakfast included and hide breakfast step if included
* fix: check if window is defined to avoid error during SSR
* fix: remove return if rate definition is not found because its expected if input is undefined
Approved-by: Christel Westerberg
Approved-by: Arvid Norlin
Feat/SW-619 signup non happy
* feat(SW-619): Added tests for Date input
* feat(SW-619): Updated date input to not allow date below 18 years old, also added form validation and tests to cover this change
* fix
* feat(SW-619): add info banner if membership verification fails
* fix(SW-619): update test description
Approved-by: Christel Westerberg
Approved-by: Arvid Norlin
Feat/enter details store tests
* test: add unit tests for useEnterDetailsStore and update Jest environment
* test: added more useEnterDetailsStore tests
Approved-by: Christel Westerberg
Feat/SW-1023 bed type information
* feat(SW-1023): add bed type info
* fix: formatting of bed type string
* fix(SW-1023): refactored bed type info and added default value to children beds
* fix(SW-1023): fixes from PR
Approved-by: Christel Westerberg
Approved-by: Simon.Emanuelsson
feat(SW-1026): added info regarding children breakfast
* feat(SW-1026): added info regarding children breakfast
* fix: remove hardcoded currency
* fix(SW-1026): remove price for no breakfast
* fix: missing translation
Approved-by: Christian Andolf
Approved-by: Arvid Norlin
Feat/SW-1007 saved payment cards now shown based on supported cards by hotel
* fix(SW-1007): refactored savedCards to only show supported payment cards
* fix(SW-1007): show error message even if metadata is null
* fix: merge changes that were missed
* fix: remove use server
Approved-by: Christel Westerberg
Feat/SW-755 price change non happy
* fix(SW-755): dont show field error if checkbox has no children
* feat(SW-755): Price change route + dialog WIP
* fix(SW-755): minor refactoring
* fix(SW-755): added logging to price change route
* fix(SW-755): remove redundant search param logic
* fix(SW-755): moved enum cast to zod instead
* fix(SW-755): move prop type to types folder
* fix(SW-755): Added suspense to Payment and refactored payment options hook
* fix(SW-755): seperated terms and conditions copy from the checkbox label
* fix(SW-755): add currency format and fixed wrong translation
* fix(SW-755): change from undefined to null
* fix(SW-755): added extra type safety to payment options
Approved-by: Christian Andolf
Approved-by: Simon.Emanuelsson
Feat/SW-999 visual fixes in enter details
* fix(SW-999): accordion title font sizes fix and alignment of change room button
* fix(SW-999): added scroll if content cannot fit inside popover
Approved-by: Christel Westerberg
Fix/SW-933 incorrect ratecode when creating booking as a member
* fix(SW-933): Added check if member to select correct rate code in create booking
* fix(SW-933): set member price in summary when "join" is true
* fix(SW-933): change "price" -> "amount" and fix bool expression
* fix(SW-933): added check for membership number in summary
Approved-by: Christel Westerberg
Feat/SW-618 payment non happy path
* feat(SW-618): filter out expired saved cards
* feat(SW-618): Added payment error codes and way of showing messages based on code
* feat(SW-618): show error message if max retries has been reached and remove search param after showing toast
* fix(SW-618): move fallback error codes
* fix(SW-618): remove ref from stopping useEffect to run twice
* fix(SW-618): refactored logic for toast message and minor fixes
* fix(SW-618): remove error message enum due to static analysis problems
Approved-by: Christian Andolf
Approved-by: Arvid Norlin
Feat/SW-618 payment non happy path
* feat(SW-618): filter out expired saved cards
* feat(SW-618): Added payment error codes and way of showing messages based on code
* feat(SW-618): show error message if max retries has been reached and remove search param after showing toast
* fix(SW-618): move fallback error codes
* fix(SW-618): remove ref from stopping useEffect to run twice
* fix(SW-618): refactored logic for toast message and minor fixes
* fix(SW-618): remove error message enum due to static analysis problems
Approved-by: Christian Andolf
Approved-by: Arvid Norlin
Feat/SW-613 refactor hotelreservation sidepeek
* feat(SW-613): move sidepeek paralell route to apply for all of hotelreservation
* feat(SW-613): refactor sidepeek logic to a unified approach for hotelreservation flow
* feat(SW-613): fix issue where room was not selected properly in sidepeek
* fix(SW-613): move back preload to layout
* fix(SW-613): move preload to dedicated file
* fix(SW-613): refactor sidepeek to work with hotel page
* feat(SW-613): added sidepeek button for room card
Approved-by: Simon.Emanuelsson