コンテンツにスキップ

Application

Version 22.0.0 Latest

  • chore: [nx migration] 24-0-0-enable-legacy-affected
  • chore: [nx migration] checkpoint before running migrations
  • chore: [nx migration] final validation
  • chore: [nx migration] remove-deprecated-executors
  • chore: [nx migration] update-24-0-0-add-ready-when-signal
  • chore: [nx migration] update-24-0-0-add-start-storybook-ready-when
  • chore: [nx migration] update-24-0-0-remove-scam-generator-defaults
  • chore: remove the cart modal, the payment modal and their state (#2304)
  • chore(book): remove the booking modal’s translation keys that nothing uses
  • chore(eslint): catch an empty-path shell that starts its providers for every url
  • chore(i18n): translate the pay page charge keys
  • chore(i18n): update generated supported languages
  • chore(i18n): update translations
  • chore(i18n): update translations for book and social-list
  • chore(portal): remove the Distribution > Inventory screen and dead publisher code (#1724) (#1725)
  • chore(portals): remove the unused inventory quick map and card modals (#1732)
  • chore(seller-inventory-item): remove the orphaned createSellerInventoryItem action (#1733)
  • chore(shopping-cart): remove the empty domain library
  • chore(web-components): remove the commented-out shopping-cart demo (#2307)
  • chore(web-components): remove the shopping-cart button (#2303)
  • docs: add the unified inventory card spec and plans
  • docs: note the change-itinerary limits and fix a stale grid comment (#1806)
  • feat: choose the hotel card size per embed and customization, add a horizontal book card (#1774)
  • feat(activity): keep the hub drawer open until the save lands and recover from a conflict (#2069)
  • feat(add-on): apply an add-on to one, several or all items of its category (#1838)
  • feat(add-on): keep the hub drawer open until the save lands and recover from a conflict (#2087)
  • feat(add-on): move min/max pax from the configuration card to the restrictions card (#1716)
  • feat(add-on): phase 3 — lean add-on authoring UI, delete the seven add-ons hosts (#1643)
  • feat(add-on): split eligibility and restrictions out of the configuration card (#1713)
  • feat(announcement): add @journey coverage and switch/error Storybook states (#1743)
  • feat(application): :sparkles: send the booking source to the inventory api as headers (#1873)
  • feat(attraction): keep the hub drawer open until the save lands and recover from a conflict (#2070)
  • feat(authentication): send a login return straight to the stored page (#2226)
  • feat(book): :sparkles: carry the booking source and link id through checkout (#1865)
  • feat(book): extras per room type and a live your-stay summary, slice 3 of #1925 (#1996)
  • feat(book): extras step with add-ons in one list, slice 1 of #1925 (#1978)
  • feat(book): give the homepage its own standalone title (#2189)
  • feat(book): guest picks when a required add-on happens, slice 2c of #1925 (#1981)
  • feat(book): harden the thank-you page (#2247)
  • feat(book): Included section and visible slot on the Extras step, slice 2b of #1925 (#1980)
  • feat(book): leave the booking modal for the checkout page when it is on (#2239)
  • feat(book): let the widget forward a guest to the booking engine for checkout (#2245)
  • feat(book): load hotel photos and reviews from the new public endpoints (#1886, slice 1-2) (#1888)
  • feat(book): make choosing a room a page of the hotel at /hotel/:urlName/book/rooms/:roomTypeId
  • feat(book): make extras a page of the hotel at /hotel/:urlName/book/extras
  • feat(book): make the checkout hand-off an opt-in of each app (#2240)
  • feat(book): mark each agreed deal term with a green check (#2172)
  • feat(book): move the place grids onto inventory/search/ranked (source currency + fx quotes) (#2196)
  • feat(book): one add-on card with a venue picker when several venues list it (#1840)
  • feat(book): open a room page as the first page of a visit
  • feat(book): open the chosen place at once and enlarge the lookup text (#2190)
  • feat(book): page the explore grid from the Wink Network unless an affiliate made the link (#2209)
  • feat(book): rebuild the homepage around a 3d agent globe and an affiliate deal chat (#2152)
  • feat(book): remove the global OTA grid and sort the place grids with a dropdown (#1895) (#2151)
  • feat(book): remove the List your property button and the search icon from the header (#2187)
  • feat(book): retitle the affiliate banner (#2173)
  • feat(book): rework the place grids (clean url, paging, trip bar, card polish) (#2194)
  • feat(book): room card and rate rows include mandatory add-ons, slice 2a of #1925 (#1979)
  • feat(book): run the homepage without a customization (#2186)
  • feat(book): swipe the photo viewers and show their arrows only on hover (#2214)
  • feat(book): tell the guest when the hand-off to checkout fails (#2249)
  • feat(checkout): add the flag-gated /checkout page shell (#2229)
  • feat(checkout): add the guest form and Proceed to the checkout page (#2235)
  • feat(checkout): add the pay page (#2236)
  • feat(checkout): keep the checkout selection across the login redirect (#2225)
  • feat(checkout): pay from the shared bar, with the guest details in the tally (#2290)
  • feat(checkout): put checkout and pay in one booking step shell with a stepper
  • feat(checkout): rebuild the cart behind /checkout and check the price (#2230)
  • feat(checkout): retry and word the 409/503 reasons POST /api/checkout now gives (#2254)
  • feat(ci): add daily sentry issue filer workflow and script (#1737)
  • feat(customization): keep the form drawer open until the save lands and never close silently (#2104)
  • feat(extranet): book now button uses the hotel managing entity link with ?r=ibe (#1730)
  • feat(forms): lock four page forms while they save with the shared lock-while-saving helper (#2090)
  • feat(hub-engine): show a loading skeleton while an existing inventory entity loads (#2110)
  • feat(hub-engine): tell the user why X, Esc and navigation do nothing while a Save is in flight (#2107)
  • feat(inventory-supplier): add a book-in-booking-engine action to the supplier card (#1765)
  • feat(inventory-supplier): commerce tab on the supplier card, centred no-results invite box (#1757)
  • feat(inventory-supplier): price browse hotels for a chosen itinerary (#1756)
  • feat(inventory-supplier): refresh the supplier card and add the past performance modal (#1766)
  • feat(inventory): add banner, book and detail sizes to the hotel and room cards (#1770)
  • feat(inventory): banner, book and detail card sizes with the link’s text (#1773)
  • feat(inventory): offer a change itinerary link on the hotel card (#1805)
  • feat(inventory): one width-responsive hotel card replaces the banner, book and detail cards (#1780)
  • feat(mcp-apps): add branded hotel cards with photos and quote totals
  • feat(mcp-apps): show a booking confirmation card (#2227)
  • feat(meeting-room): keep the hub drawer open until the save lands and recover from a conflict (#2073)
  • feat(place): keep the hub drawer open until the save lands and recover from a conflict (#2077)
  • feat(portal): :sparkles: add an analytics card to the book now page (#1877)
  • feat(portal): :sparkles: count book now copies as shares on the book now card (#1881)
  • feat(portal): :sparkles: show bookings, visits and revenue on the link hub (#1876)
  • feat(portal): :sparkles: show link analytics counts as compact figures (#1879)
  • feat(portal): add a last-7-days clicks chart to each shareable link card (#1863)
  • feat(portal): add a run header above bookings for travel agents (#1860)
  • feat(portal): assign sales channels on the add-on and master rate itself (#1721) (#1723)
  • feat(portal): browse hotels beneath insights and partnerships as one entry (#1855)
  • feat(portal): compose the sidebar per account type (#1842)
  • feat(portal): create link actions for hotels and affiliates (#1859)
  • feat(portal): gallery under link manager and choose-from-gallery in the media editors (#1858)
  • feat(portal): give Inventory its own section and lead Rates with cancellation (#1847)
  • feat(portal): give the add-on hub drawer forms room to breathe (#1726)
  • feat(portal): group the hotel menu by job, not by data type (#1843)
  • feat(portal): link manager tab bar for entries, hotel links, lists, shorteners and archive (#1852)
  • feat(portal): one insights page for every link (#1851)
  • feat(portal): one Property profile entry with a tab bar for its ten pages (#1845)
  • feat(portal): remove venue sales channels action and add load error states (#1721) (#1722)
  • feat(portal): replace the tasks sidebar item with a setup guide popup (#1861)
  • feat(portal): social settings tab bar, with connections as a tab (#1854)
  • feat(portal): tab bars for promotions, sales channels and studio lists (#1848)
  • feat(property-inventory): offers store, content join and source-currency widget grids (#1890)
  • feat(rate-plan): audience selector for public, member and closed-user-group plans (#2201)
  • feat(restaurant): keep the hub drawer open until the save lands and recover from a conflict (#2080)
  • feat(signal-form): add a shared lock-while-saving helper and adopt it in the inventory hubs (#2089)
  • feat(social-list): :sparkles: start a WinkLinks page as its own booking source (#1882)
  • feat(social-list): add the flag-gated checkout and pay pages (#2242)
  • feat(social-list): choose the card size per WinkLinks page and per link (#1775)
  • feat(social-list): open the room booking modal from a hotel card’s Book button (#2051)
  • feat(social-list): per-account link previews and account-named tab (#2027)
  • feat(social-list): replace the list tile’s hotel preview with an animated list visual (#2038)
  • feat(social-list): serve the booking pages below the hotel, so a room page can open first (#2286)
  • feat(social-list): start the booking as pages below the account at /:account/book/…
  • feat(spa): keep the hub drawer open until the save lands and recover from a conflict (#2081)
  • feat(special-rate-bundle): add journey and storybook state check (#1741)
  • feat(special-rate): add @journey coverage and a ticked-restrictions story (#1740)
  • feat(studio): :sparkles: browse hotels through studio search (monorepo-java#1176) (#1748)
  • feat(studio): retire inventory search and links; Browse hotels and Links at the top level (#1729)
  • feat(transactional-list): lists are embeddable and addable to WinkLinks directly, no grid step (#1744)
  • feat(transactional-list): segmented hotel star and review rating filters (#1754)
  • feat(transactional-url): guest-room drawer layout, labelled error list and a link @journey (#1810)
  • feat(transactional-url): hide social-post links from Links and lock their removal (#1764)
  • feat(transactional-url): link hub with per-link analytics and a standard map embed (#1783)
  • feat(transactional-url): rebuild the link hub with section drawers, share and winklinks modals (#1792)
  • feat(transactional-url): restyle the link preview share section and theme the card previews (#1777)
  • feat(transactional-url): switch the link card to the content + inventory contract (#2198) (#2199)
  • feat(transactional-url): unified hotel link in studio, web components, winklinks and book (#1738)
  • feat(travel-inventory): extract the shared conflict-reload helper for drawer hubs (#2072)
  • feat(travel-inventory): extract the shared save-then-close flow for drawer hubs (#2068)
  • feat(travel-inventory): reload a stale entity when a conflicted drawer is dismissed (#2075)
  • fix: align stripe-js peer dependency with root 10.1.0
  • fix: clear the lint failures from the Nx upgrade and extras work
  • fix: declare the missing peer dependencies of two libraries
  • fix: drop unused util-tokens peer dependency from session-expired route
  • fix: sync peer dependencies with imports to unbreak lint
  • fix(activity): stop offering Reservation required in Configuration, which never saved it (#2052)
  • fix(add-on): :memo: correct mandatory add-on help text (#1827)
  • fix(add-on): allow maxPax of zero — it means “no restriction”, not “unbookable” (#1714)
  • fix(advertising-domain): :bug: keep the empty entry file a module so ng-packagr can build it
  • fix(analytics): :bug: repaint the chart when the app theme changes (#1878)
  • fix(analytics): remove the click-rate tile and label the all-time and 7-day periods (#2032)
  • fix(announcement,recognition): validate date order and rating range, show readable validation text (#2030)
  • fix(authentication): resume original page after session-expired login (#1898)
  • fix(book): :bug: apply room-type and rate-plan restrictions to venue add-ons (#1832)
  • fix(book): :bug: auto-add mandatory add-ons at their pricing-type quantity (#1829)
  • fix(book): animate room photo swipes, highlight the active dot, show a loading placeholder (#2296)
  • fix(book): charge a per-hour add-on for the hours the guest booked (#1923) (#1929)
  • fix(book): clearer room totals, add-on quantity labels and a URL that follows the search (#1926) (#1976)
  • fix(book): declare checkout peer dependencies of feature-bootstrap
  • fix(book): drop the re-export of a launcher type the modal removal deleted
  • fix(book): explore grid title i18n keys and tab tracking (#1899)
  • fix(book): hide add-ons whose group size does not fit the room (#1868) (#1901)
  • fix(book): hide the header’s trip bar on the room and extras pages
  • fix(book): keep the booking modal open while a signed-out guest is sent to log in
  • fix(book): keep the booking pages’ bottom bar in view, and the back link off a UrlTree error
  • fix(book): keep the hotel theme on the checkout pages after a refresh (#2238)
  • fix(book): leave the corporate footer off the hotel landing page (#2299)
  • fix(book): make photo swipes follow the finger in every carousel (#2309)
  • fix(book): make the add-on picker and the room page pass the accessibility sweep (#2288)
  • fix(book): make the booking engine header trip labels readable in dark mode (#1762)
  • fix(book): match mandatory add-on quantity to checkout (#1867) (#1900)
  • fix(book): move the add-on picker into the extras library, where the library build can see it
  • fix(book): person-priced add-ons start at all guests, and a date change keeps the rooms (#1926) (#1977)
  • fix(book): refresh the tailwind source lists for the pending checkout util (#2228)
  • fix(book): reload venue add-ons when the guest changes the stay (#1885)
  • fix(book): remove rooms that no longer fit the trip from the cart (#1872) (#1912)
  • fix(book): replace the booking tally on mobile with one the bar’s total opens (#2298)
  • fix(book): round a discounted room price the way the backend does (#2297)
  • fix(book): send the venue an add-on is booked at on the cart request (#1839)
  • fix(book): show room modal photo arrows only on mouse hover (#2211)
  • fix(book): show the stay price under rate plan “price per stay” (#1871) (#1905)
  • fix(book): size extras add-on card columns by grid width, not viewport (#2192)
  • fix(book): stale Kids club line, wrong child age and malformed rc link (#1927) (#1975)
  • fix(book): tell the guest an add-on is required by the hotel (#1869) (#1902)
  • fix(checkout): clear the lint errors from the pay page charge change
  • fix(checkout): drop the duplicate total dropdown and cancel link from the pay page (#2301)
  • fix(checkout): end the checkout page in the shared bar, and extract the bar every step uses (#2287)
  • fix(checkout): end the payment spinner when the cart could not be created (#2012)
  • fix(checkout): name the Stripe charge on the pay page when it differs from the display total (#2308)
  • fix(checkout): say “signing you in” instead of the login prompt after a login return (#2312)
  • fix(ci): repair eslint-rules:test and mcp-apps-ui-hotel-card:test (#1815)
  • fix(e2e-utils): :white_check_mark: assert the cancelled booking on the tooltip wrapper (#1812)
  • fix(e2e): :white_check_mark: pin the portal e2e session to the Hotel Wink account (#1837)
  • fix(e2e): click the pay page’s own Pay button in the booking journeys (#2317)
  • fix(eslint-rules): count expect.poll and expect.soft as assertions
  • fix(eslint): let the route manifest read a path spelled as a shared constant
  • fix(google-maps): force raster rendering on the location picker map
  • fix(google-maps): leave renderingType off the map options when unset
  • fix(google-tag-manager): :bug: stop add-ons without a location crashing the hotel page (#1811)
  • fix(guest-room): complete the wizard task only after the save has landed (#2055)
  • fix(guest-room): guard the add-ons badge color against a missing transactionalInventoryList
  • fix(guest-room): keep the drawer open until the save lands and recover from a conflict (#2065)
  • fix(guest-room): validate occupancy relations and show server rejections on the field (#2053)
  • fix(hub-engine): clear the not-sent banner once the create-route draft has landed (#2105)
  • fix(hub-engine): ignore a failure that is not the awaited save’s own while its write is in flight (#2114)
  • fix(hub-engine): ignore a late load response for an entity no longer being edited (#2084) (#2116)
  • fix(hub-engine): ignore a late patch response for an entity no longer being edited (#2118) (#2122)
  • fix(hub-engine): track overlapping single-entity loads by id list (#2126) (#2127)
  • fix(hub-engine): track the awaited patch and update by id (#2123) (#2125)
  • fix(hub-engine): track the awaited single-entity load by id (#2117) (#2119)
  • fix(inventory-supplier): call the studio hotel analytics endpoint under the managing entity (#1767)
  • fix(inventory-supplier): make the duplicate invite warning readable in light and dark mode (#1759)
  • fix(inventory-supplier): resolve lint findings from the supplier card and invite work (#1761)
  • fix(inventory): :lock: encode the values of the booking engine link (#1883)
  • fix(inventory): make the room Select button smaller (#1782)
  • fix(inventory): show room card and slideshow arrows only on mouse hover (#2212)
  • fix(inventory): tidy the room card image overlays (#2213)
  • fix(link-hub): read the backend’s ‘unknown’ analytics key and translate the unknown country (#1791)
  • fix(lint): declare the @angular/cdk peer the modal service uses (#1788)
  • fix(lookup): give the search modal room and a full-width field (#2188)
  • fix(media): make order-on-sort pipe generic over sort
  • fix(modal): host the cdk overlay container inside open dialogs so dropdowns are clickable (#1785)
  • fix(place): retry a failed create-route draft on Save instead of creating a second entity (#2085)
  • fix(policy): validate check-in and check-out as 24-hour HH:mm (#2033)
  • fix(portal-e2e): :white_check_mark: label the list status dot and accept both 404 titles (#1826)
  • fix(portal-e2e): :white_check_mark: search the transactional url journey through quick search (#1836)
  • fix(portal): :bug: draw only the link hub chart series it has labels for (#1875)
  • fix(portal): :bug: tidy the book now analytics card (#1880)
  • fix(portal): add the translations the link preview card needs (#1768)
  • fix(portal): ask before discarding unsaved edits in six more travel-inventory hubs (#1956) (#1971)
  • fix(portal): ask before discarding unsaved edits in the add-on and guest-room hubs (#1956) (#1959)
  • fix(portal): ask before discarding unsaved edits in the customization form (#1956) (#1972)
  • fix(portal): confirm before discarding add-on edits and say when a load failed (#1924) (#1942)
  • fix(portal): fix add-on hub copy and list card details (#1870) (#1903)
  • fix(portal): make breadcrumbs and key names follow the new sidebar (#1846)
  • fix(portal): make the extranet dashboard charts readable (#1892) (#1928)
  • fix(portal): show hotel booking status as labelled chips (#1891) (#1913)
  • fix(portal): sidebar cleanup before regrouping the menu (#1841)
  • fix(portal): sync package.json deps with imports for dependency-checks lint
  • fix(portal): title the link manager settings page settings, not design (#1857)
  • fix(portal): warn before a reload or tab close discards unsaved drawer edits (#1957) (#1974)
  • fix(profile): resolve preference labels from REF keys instead of PROFILE.REF (#2314)
  • fix(pwa): build the update-check effect twice and sync stale specs
  • fix(pwa): recover stale clients from lazy chunks missing after a deploy (#2029)
  • fix(room-type-configurator): tolerate the PublicMedia shape in the booking panel (#1719)
  • fix(share): drop the stale uniqueId input, and stop vouching for links Wink did not shorten (#2210)
  • fix(shared): stop the share window doubling the short link (#2009)
  • fix(shared): translate the router-link navbar’s mobile select copy (#1844)
  • fix(shopping-cart): send a date range with every room add-on on the cart request (#2292)
  • fix(shortened-url): detach a link’s request and copy its form model from the store (#2130) (#2131)
  • fix(signal-form): bind the lock directive’s disabled as an attribute
  • fix(signal-form): make form-field example text readable in dark mode (#1760)
  • fix(signal-form): push a time picker value that arrives after init into flatpickr (#2015)
  • fix(signal-form): show a date picker value that arrives after init (#2007)
  • fix(social-list): copy a stored post’s tags and metadata before building its form (#1911) (#2129)
  • fix(social-list): keep the checkout shell from starting on every page
  • fix(social-list): let the account page claim its booking source and load analytics (#2243)
  • fix(social-list): only the route’s own true disables analytics (#2244)
  • fix(social-list): register slideshow and itinerary modal handlers on the storefront (#2014)
  • fix(social-list): show a creator’s list tile with its first hotel and give the opened list a URL (#2034)
  • fix(studio): drop unlabelled geo pairs so browse hotels stops crashing (#1728)
  • fix(styles): drop the focus ring from the main-content focus target (#2193)
  • fix(styles): write the wink: prefix before the variant in 31 templates and enforce it (#2207)
  • fix(transactional-url): exempt spec stub selectors from the prefix lint rule
  • fix(transactional-url): preview the first image and keep the card badge readable (#1769)
  • fix(web-components): stop duplicate modal action types breaking staging embeds (#2013)
  • fix(web-components): stop Open pop-up leaving storefront Book, Select and map pins dead (#2010)
  • fix(workbench): clear the remaining Storybook sweep failures (#2289)
  • perf(book): load the booking flow modal on demand instead of in app.config (#2203)
  • perf(book): load the customization during the login token exchange (#2216)
  • perf(styles): scope Tailwind per app and lazy-load the video player CSS (#2204)
  • refactor: :zap: improved time to re-open checkout modal
  • refactor: :zap: removed unused class
  • refactor: :zap: removed unused code
  • refactor: remove breadcrumbs from every page (#1849)
  • refactor: remove card face and badge from transactional urls and lists (#1797)
  • refactor(book): move the landing’s cards, room list and configurator onto the joined inventory (#1893)
  • refactor(book): read the landing, cart and flow from the joined inventory (#1894)
  • refactor(book): remove the booking flow modal
  • refactor(book): remove the booking modal’s own checkout path and the checkoutRoutes flag (#2252)
  • refactor(book): rename the two libraries the booking modal left misnamed
  • refactor(book): replace the undefined —wink-engine-shell-bg variables with daisyUI classes (#1763)
  • refactor(booking): rename the ancillary type ROOM_TYPE_ANCILLARY to GUEST_ROOM (#1642)
  • refactor(checkout): remove the forwarded checkout, which only the widget used
  • refactor(hub-engine): centralise the dismiss and leave veto in the shared save flow (#2112)
  • refactor(hub-engine): share the awaited-request rules of the hub reducers (#2121) (#2124)
  • refactor(hub-engine): share the cancelEdit conflict dismissal across the venue hub stores (#2109)
  • refactor(inventory): delete the card face type, map display type and venue GA4 services (#1802)
  • refactor(inventory): delete the stored map libraries and retire the map layout (release 2) (#1789)
  • refactor(inventory): draw only hotel cards and delete the room and add-on cards (#1801)
  • refactor(inventory): drop the hotel card inputs left over from the room face (#1804)
  • refactor(inventory): give the hotel card one face and draw room focus with the room’s image and price (#1800)
  • refactor(media): read entityId, falling back to the deprecated identifier (#1896)
  • refactor(portal): move insights and browse hotels under marketing (#1856)
  • refactor(portal): remove the map authoring UI (retire InventoryMap, release 1) (#1784)
  • refactor(portal): rename studio to marketing and flatten the marketing sections (#1853)
  • refactor(shared): :recycle: share one theme watcher between the charts (#1884)
  • refactor(studio): remove the latest suppliers section from the browse hotels landing (#1755)
  • refactor(web-components): leave the booking to the booking engine’s pages
  • test: finish the zoneless test migration now that zone.js is gone (#1727)
  • test: fix the social-list-edge target and lift three libs over the coverage gate
  • test: fix the stale card preview control and cover the room page pass-throughs
  • test: lift property-inventory-domain and book-flow over the coverage threshold
  • test(book-e2e): :white_check_mark: add a booking journey that includes an add-on (#1813)
  • test(book): :white_check_mark: mark the spa price-list item mandatory in the room-types spec (#1835)
  • test(book): cover missing mandatory extras currency in rate plan lines pipe
  • test(e2e): :white_check_mark: add a booking refund journey inside the free-cancellation window (#1828)
  • test(e2e): check that a room page opens as the first page of a visit
  • test(e2e): check that Book on a WinkLinks account opens the booking pages
  • test(e2e): follow the booking pages in the checkout journey and the extras overflow checks
  • test(e2e): make the checkout E2E work for the page and the modal (#2248)
  • test(e2e): run the book smoke layer against a local hotel, and fix what it found
  • test(e2e): scan accessibility at the page’s final colours, not half way through a fade
  • test(media): cover the slideshow wrapper leaving the view
  • test(portal-e2e): add account creation city dropdown journey
  • test(portal-e2e): allow the expected CalDAV 404 on the calendar sync page
  • test(portal): cover the media catalog picker provider in app config spec
  • test(studio): drop the removed map route from the top-level sections spec (#1787)
  • test(transactional-url): cover the empty paths of the card preview