@revolugo/common 6.14.5-beta.2 → 6.14.5-beta.21

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@revolugo/common",
3
- "version": "6.14.5-beta.2",
3
+ "version": "6.14.5-beta.21",
4
4
  "private": false,
5
5
  "description": "Revolugo common",
6
6
  "author": "Revolugo",
@@ -30,7 +30,7 @@
30
30
  "dependencies": {
31
31
  "change-case": "5.4.4",
32
32
  "dayjs": "1.11.19",
33
- "ky": "1.14.0",
33
+ "ky": "1.14.1",
34
34
  "slugify": "1.6.6",
35
35
  "type-fest": "5.3.0",
36
36
  "uuid": "13.0.0",
@@ -0,0 +1,6 @@
1
+ export enum BookingState {
2
+ Idle = 'IDLE',
3
+ PaymentRequested = 'PAYMENT_REQUESTED',
4
+ PaymentSuccessful = 'PAYMENT_SUCCESSFUL',
5
+ Prebook = 'PREBOOK',
6
+ }
@@ -157,3 +157,14 @@ export interface ContactPersonOrganization {
157
157
  */
158
158
  zipCode: string
159
159
  }
160
+
161
+ export interface PrebookFormValues {
162
+ emailAddress: ContactPerson['email']
163
+ firstName: ContactPerson['firstName']
164
+ lastName: ContactPerson['lastName']
165
+ nationality: ContactPerson['nationality']
166
+ phoneCountry: CountryIso2Code
167
+ phoneNumber: string
168
+ salutation: ContactPerson['salutation']
169
+ specialRequests: ContactPerson['remarks']
170
+ }
@@ -0,0 +1,84 @@
1
+ import type { BookingState } from './booking-flow.ts'
2
+ import type { BookingPolicies } from './booking-policy.ts'
3
+ import type { Booking } from './booking.ts'
4
+ import type { CancellationPolicy } from './cancellation-policy.ts'
5
+ import type { PrebookFormValues } from './contact-person.ts'
6
+ import type { CurrencyType } from './currency.ts'
7
+ import type { HotelOfferRequestResponse } from './hotel-offer-request.ts'
8
+ import type { HotelOffer } from './hotel-offer.ts'
9
+ import type { HotelOffersFilters } from './hotel-offers-filters.ts'
10
+ import type { HotelRoomOfferRequestResponse } from './hotel-room-offer-request.ts'
11
+ import type {
12
+ HotelRoomOffer,
13
+ HotelRoomOffersResponse,
14
+ } from './hotel-room-offer.ts'
15
+ import type { Hotel } from './hotel.ts'
16
+ import type { Locale } from 'change-case'
17
+
18
+ export enum ElementsEvent {
19
+ BookingCreated = 'booking:created',
20
+ BookingFlowStepUpdated = 'booking-flow-step:updated',
21
+ BookingManagerNewBooking = 'booking-manager:new-booking',
22
+ BookingManagerRetrieve = 'booking-manager:retrieve',
23
+ BookingManagerRetrieveFail = 'booking-manager:retrieve-fail',
24
+ BookingPolicyCreated = 'booking-policy:created',
25
+ CancellationPoliciesUpdated = 'cancellation-policies:updated',
26
+ CurrencyUpdated = 'currency:updated',
27
+ HotelOfferItemMouseleave = 'hotel-offer:item:mouseleave',
28
+ HotelOfferItemMouseover = 'hotel-offer:item:mouseover',
29
+ HotelOfferItemVisible = 'hotel-offer:item:visible',
30
+ HotelOfferRequestCreated = 'hotel-offer-request:created',
31
+ HotelOfferRequestRetrieved = 'hotel-offer-request:retrieved',
32
+ HotelOffersFiltersUpdated = 'hotel-offers:filters:updated',
33
+ HotelOffersItemClick = 'hotel-offer:item:click',
34
+ HotelOffersMarkerClick = 'hotel-offers:marker:click',
35
+ HotelOffersPollingStarted = 'hotel-offers:polling:started',
36
+ HotelOffersRetrieved = 'hotel-offers:retrieved',
37
+ HotelOffersViewShowMap = 'hotel-offers-view:show-map',
38
+ HotelRetrieved = 'hotel:retrieved',
39
+ HotelRoomOfferRequestCreated = 'hotel-room-offer-request:created',
40
+ HotelRoomOfferRequestRetrieved = 'hotel-room-offer-request:retrieved',
41
+ HotelRoomOffersBtnClick = 'hotel-room-offers:click:btn',
42
+ HotelRoomOffersPriceIncreased = 'hotel-room-offers:price-increased',
43
+ HotelRoomOffersRetrieved = 'hotel-room-offers:retrieved',
44
+ LangUpdated = 'lang:updated',
45
+ PaymentSuccess = 'payment:success',
46
+ PrebookForm = 'prebook:form',
47
+ }
48
+
49
+ export interface ElementsEventCallbacks {
50
+ [ElementsEvent.BookingCreated]: Booking
51
+ [ElementsEvent.BookingFlowStepUpdated]: BookingState
52
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
53
+ [ElementsEvent.BookingManagerNewBooking]: any
54
+ [ElementsEvent.BookingManagerRetrieve]: Booking
55
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
56
+ [ElementsEvent.BookingManagerRetrieveFail]: any
57
+ [ElementsEvent.BookingPolicyCreated]: BookingPolicies
58
+ [ElementsEvent.CancellationPoliciesUpdated]: CancellationPolicy[]
59
+ [ElementsEvent.CurrencyUpdated]: CurrencyType
60
+ [ElementsEvent.HotelOfferItemMouseleave]: [HotelOffer, number]
61
+ [ElementsEvent.HotelOfferItemMouseover]: [HotelOffer, number]
62
+ [ElementsEvent.HotelOfferItemVisible]: [HotelOffer, number]
63
+ [ElementsEvent.HotelOfferRequestCreated]: HotelOfferRequestResponse
64
+ [ElementsEvent.HotelOfferRequestRetrieved]: HotelOfferRequestResponse
65
+ [ElementsEvent.HotelOffersFiltersUpdated]: Partial<HotelOffersFilters>
66
+ [ElementsEvent.HotelOffersItemClick]: [HotelOffer, number]
67
+ [ElementsEvent.HotelOffersMarkerClick]: HotelOffer
68
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
69
+ [ElementsEvent.HotelOffersPollingStarted]: any
70
+ [ElementsEvent.HotelOffersRetrieved]: HotelOffer[]
71
+ [ElementsEvent.HotelOffersViewShowMap]: boolean
72
+ [ElementsEvent.HotelRetrieved]: Hotel
73
+ [ElementsEvent.HotelRoomOfferRequestCreated]: HotelRoomOfferRequestResponse
74
+ [ElementsEvent.HotelRoomOfferRequestRetrieved]: HotelRoomOfferRequestResponse
75
+ [ElementsEvent.HotelRoomOffersBtnClick]: HotelRoomOffer
76
+ [ElementsEvent.HotelRoomOffersPriceIncreased]: [
77
+ HotelRoomOffer,
78
+ HotelRoomOffer,
79
+ ]
80
+ [ElementsEvent.HotelRoomOffersRetrieved]: HotelRoomOffersResponse
81
+ [ElementsEvent.LangUpdated]: Locale
82
+ [ElementsEvent.PaymentSuccess]: Booking
83
+ [ElementsEvent.PrebookForm]: PrebookFormValues
84
+ }
@@ -0,0 +1,19 @@
1
+ import type { HotelOffersSortByOrderType } from './hotel-offer-list.ts'
2
+ import type { HotelOffersSortByEnum } from './hotel-offer.ts'
3
+
4
+ export enum FilterName {
5
+ Price = 'price',
6
+ Rating = 'rating',
7
+ ReviewRating = 'review_rating',
8
+ SortBy = 'sort_by',
9
+ }
10
+
11
+ export interface HotelOffersFilters {
12
+ [FilterName.Rating]: string
13
+ [FilterName.ReviewRating]?: number
14
+ [FilterName.Price]: [number, number]
15
+ [FilterName.SortBy]: {
16
+ direction: HotelOffersSortByOrderType
17
+ value: HotelOffersSortByEnum
18
+ }
19
+ }
@@ -1,10 +1,13 @@
1
1
  export type * from './bed.ts'
2
+ export type * from './booking-flow.ts'
2
3
  export type * from './booking-policy.ts'
3
4
  export type * from './cancellation-policy.ts'
5
+ export * from './elements-events.ts'
4
6
  export type * from './event-metadata.ts'
5
7
  export type * from './hotel-image.ts'
6
8
  export type * from './hotel-images.ts'
7
9
  export type * from './hotel-offer-request.ts'
10
+ export * from './hotel-offers-filters.ts'
8
11
  export type * from './hotel-room-offer.ts'
9
12
  export * from './hotel-room-offer-type.ts'
10
13
  export * from './hotel-room-offer-package-type.ts'
@@ -26,7 +26,7 @@ export function generateImageUrls(
26
26
  )
27
27
  }
28
28
 
29
- type ImageSize = 'm' | 'l' | 'xl'
29
+ type ImageSize = 'xs' | 's' | 'm' | 'l' | 'xl'
30
30
 
31
31
  function selectBestSize(
32
32
  hotelImage: HotelImage,
@@ -46,10 +46,10 @@ export const mapImagesUrls = (
46
46
  selectBestSize(hotelImage, ['xl', 'l', 'm']),
47
47
  ),
48
48
  lowres: hotelImages.map(hotelImage =>
49
- selectBestSize(hotelImage, ['l', 'xl', 'm']),
49
+ selectBestSize(hotelImage, ['l', 'm', 's']),
50
50
  ),
51
51
  thumbnails: hotelImages.map(hotelImage =>
52
- selectBestSize(hotelImage, ['m', 'l', 'xl']),
52
+ selectBestSize(hotelImage, ['m', 's', 'xs']),
53
53
  ),
54
54
  }
55
55
  }