@mirai/core 0.4.308 → 0.4.309
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.
|
@@ -40,8 +40,7 @@ const ratesResponse = function () {
|
|
|
40
40
|
hotel: {
|
|
41
41
|
accommodationType,
|
|
42
42
|
features = {},
|
|
43
|
-
variants = {}
|
|
44
|
-
...hotel
|
|
43
|
+
variants = {}
|
|
45
44
|
} = {},
|
|
46
45
|
id,
|
|
47
46
|
language,
|
|
@@ -210,8 +209,8 @@ const ratesResponse = function () {
|
|
|
210
209
|
mobile,
|
|
211
210
|
hotel: {
|
|
212
211
|
accommodationType,
|
|
213
|
-
|
|
214
|
-
|
|
212
|
+
id: hotelId,
|
|
213
|
+
variants
|
|
215
214
|
},
|
|
216
215
|
id,
|
|
217
216
|
step,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ratesResponse.js","names":["_locale","require","_duetto","_helpers","_helpers2","_helpers3","_Core","_helpers4","_helpers5","_helpers6","_legacy","ACCOMMODATION_TYPE_NAME","Object","keys","ACCOMMODATION_TYPE","ratesResponse","_variants$hotelId","device","mobile","response","calendar","calendarSuggestion","hotels","infantAge","tracking","store","currency","finder","occupation","place","title","searchCategory","promocode","hotel","accommodationType","features","variants","id","language","session","type","urlParams","arguments","length","undefined","idchain","idoffers","idtokenprovider","hotelId","roomTypeId","fetchUrlParams","location","search","country","hotelInfo","hotelCurrency","propertyName","propertyType","hotelInfoBAR","localTaxesIncluded","rates","taxesIncluded","userCurrency","value","userCurrencyValue","adults","children","getOccupationTotals","minRate","maxRate","getRatesPriceRange","days","nights","dateDiff","showPricePerNight","getFeatures","step","common","availability","chainId","checkin","dateFormat","format","checkout","coupon","home","document","hostname","idOffer","parseInt","idRoom","lodgingDenomination","multiroom","numAdults","numChildren","numRooms","pricePerNight","userCountry","userLogged","dataLayer","code","exchangeRate","highestRate","parseRate","lowestRate","ratesByRoom","values","map","name","occupationOptions","occupations","numFirstRangeChildren","numSecondRangeChildren","boardOptions","boards","totalBasePrice","totalLocalTaxes","totalPriceWithTaxes","localTaxes","formatPrice","netPrice","taxes","hotelIds","idTokenProvider","join","hotelNames","hotelName","bestAvailableRate","totalPrice","internalWithTaxes","dataLayerPush","getInitEvent","event","duettoRatesResponse","exports"],"sources":["../../../../../src/contexts/PerformanceManager/providers/gtm/ratesResponse.js"],"sourcesContent":["import { dateDiff, dateFormat } from '@mirai/locale';\n\nimport { ratesResponse as duettoRatesResponse } from './duetto';\nimport { getInitEvent, parseRate } from './helpers';\nimport { getOccupationTotals } from '../../../../components/helpers';\nimport { getFeatures } from '../../../../components/Rates/helpers';\nimport { ACCOMMODATION_TYPE } from '../../../../Core.constants';\nimport { fetchUrlParams } from '../../../../helpers';\nimport { dataLayerPush } from '../../helpers';\nimport { getRatesPriceRange } from '../helpers';\nimport { formatPrice } from '../helpers/legacy';\n\nconst ACCOMMODATION_TYPE_NAME = Object.keys(ACCOMMODATION_TYPE);\n\nexport const ratesResponse = ({\n device: { mobile } = {},\n response: { calendar: calendarSuggestion, hotels, infantAge, tracking = {} } = {},\n store: {\n currency,\n finder: { calendar = [], occupation = [], place: { title: searchCategory } = {}, promocode = '' } = {},\n hotel: { accommodationType, features = {}, variants = {}, ...hotel } = {},\n id,\n language,\n session,\n type,\n urlParams,\n } = {},\n} = {}) => {\n // ! -- TODO: Try to get all data from store -------------------------------------------------------------------------\n const {\n idchain,\n idoffers,\n idtokenprovider: hotelId, // ? TODO: Could we take it from store?\n roomTypeId,\n } = fetchUrlParams(location.search);\n\n // ! -- TODO: use of tracking should be a temporary approach ---------------------------------------------------------\n const {\n country,\n hotelInfo: { currency: hotelCurrency = {}, propertyName, propertyType } = {},\n hotelInfoBAR,\n localTaxesIncluded,\n rates,\n taxesIncluded,\n userCurrency: { value: userCurrencyValue } = {},\n } = tracking;\n\n const { adults = 0, children = 0 } = getOccupationTotals({ infantAge, occupation });\n const { minRate, maxRate } = getRatesPriceRange(rates, hotelCurrency);\n const { days: nights } = dateDiff(...calendar);\n const { showPricePerNight = false } = getFeatures(features, urlParams);\n\n const step = hotels && !calendarSuggestion && searchCategory ? 'CHAINRESULT' : 'BOOKINGSTEP1';\n const common = {\n ...(!rates && hotelInfoBAR?.length === 0 ? { availability: 'no' } : undefined),\n chainId: idchain,\n checkin: dateFormat(calendar[0], { format: 'DD/MM/YYYY' }),\n checkout: dateFormat(calendar[1], { format: 'DD/MM/YYYY' }),\n coupon: promocode,\n device: mobile ? 'MOBILE' : 'DESKTOP_TABLET',\n home: document.location.hostname,\n hotelId,\n idOffer: idoffers ? parseInt(idoffers) : undefined,\n idRoom: roomTypeId ? parseInt(roomTypeId) : undefined,\n language,\n lodgingDenomination: ACCOMMODATION_TYPE_NAME[variants[hotelId]?.accommodationType || accommodationType],\n multiroom: occupation.length > 1,\n numAdults: adults,\n numChildren: children,\n numRooms: occupation.length,\n pricePerNight: showPricePerNight,\n propertyName,\n propertyType,\n ...(!rates && hotelInfoBAR ? { searchCategory } : undefined),\n step,\n userCountry: country,\n userLogged: !!session,\n };\n\n const dataLayer = rates\n ? {\n ...common,\n currency: hotelCurrency.code,\n exchangeRate: userCurrencyValue && hotelCurrency.value && userCurrencyValue / hotelCurrency.value,\n highestRate: parseRate(maxRate, hotelCurrency, nights),\n localTaxesIncluded,\n lowestRate: parseRate(minRate, hotelCurrency, nights),\n nights,\n ratesByRoom: Object.values(rates).map(({ id, name, occupationOptions = {} } = {}) => ({\n id,\n name,\n occupations: Object.values(occupationOptions).map(\n ({ numAdults = 0, numFirstRangeChildren = 0, numSecondRangeChildren = 0, id, rates = {} } = {}) => ({\n adults: numAdults,\n children: numFirstRangeChildren + numSecondRangeChildren,\n id,\n rates: Object.values(rates).map(({ boardOptions = {}, id, name } = {}) => ({\n boards: Object.values(boardOptions).map(\n ({ id, name, totalBasePrice, totalLocalTaxes = 0, totalPriceWithTaxes } = {}) => ({\n id,\n localTaxes: formatPrice(totalLocalTaxes, hotelCurrency),\n name,\n netPrice: formatPrice(totalBasePrice, hotelCurrency),\n taxes: formatPrice(totalPriceWithTaxes - totalBasePrice, hotelCurrency),\n }),\n ),\n id,\n name,\n })),\n }),\n ),\n })),\n taxesIncluded,\n userCurrency: currency,\n }\n : hotelInfoBAR?.length > 0\n ? {\n ...common,\n availability: 'yes',\n exchangeRate:\n userCurrencyValue && hotelInfoBAR[0].currency.value && userCurrencyValue / hotelInfoBAR[0].currency.value,\n hotelIds: hotelInfoBAR.map(({ idTokenProvider } = {}) => idTokenProvider).join(','),\n hotelNames: hotelInfoBAR.map(({ hotelName } = {}) => hotelName).join(','),\n lowestRate: formatPrice(\n hotelInfoBAR[0].bestAvailableRate.totalPrice.internalWithTaxes / nights,\n hotelInfoBAR[0].currency,\n ),\n }\n : common;\n\n dataLayerPush(getInitEvent({ mobile, hotel: { accommodationType, variants, ...hotel }, id, step, type }));\n dataLayerPush({\n event: rates || hotelInfoBAR?.length > 0 ? 'mirai.Availability' : 'mirai.noAvailability',\n 'mirai.data': dataLayer,\n });\n duettoRatesResponse({ ...common, hotelCurrency, rates });\n\n return dataLayer;\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ratesResponse.js","names":["_locale","require","_duetto","_helpers","_helpers2","_helpers3","_Core","_helpers4","_helpers5","_helpers6","_legacy","ACCOMMODATION_TYPE_NAME","Object","keys","ACCOMMODATION_TYPE","ratesResponse","_variants$hotelId","device","mobile","response","calendar","calendarSuggestion","hotels","infantAge","tracking","store","currency","finder","occupation","place","title","searchCategory","promocode","hotel","accommodationType","features","variants","id","language","session","type","urlParams","arguments","length","undefined","idchain","idoffers","idtokenprovider","hotelId","roomTypeId","fetchUrlParams","location","search","country","hotelInfo","hotelCurrency","propertyName","propertyType","hotelInfoBAR","localTaxesIncluded","rates","taxesIncluded","userCurrency","value","userCurrencyValue","adults","children","getOccupationTotals","minRate","maxRate","getRatesPriceRange","days","nights","dateDiff","showPricePerNight","getFeatures","step","common","availability","chainId","checkin","dateFormat","format","checkout","coupon","home","document","hostname","idOffer","parseInt","idRoom","lodgingDenomination","multiroom","numAdults","numChildren","numRooms","pricePerNight","userCountry","userLogged","dataLayer","code","exchangeRate","highestRate","parseRate","lowestRate","ratesByRoom","values","map","name","occupationOptions","occupations","numFirstRangeChildren","numSecondRangeChildren","boardOptions","boards","totalBasePrice","totalLocalTaxes","totalPriceWithTaxes","localTaxes","formatPrice","netPrice","taxes","hotelIds","idTokenProvider","join","hotelNames","hotelName","bestAvailableRate","totalPrice","internalWithTaxes","dataLayerPush","getInitEvent","event","duettoRatesResponse","exports"],"sources":["../../../../../src/contexts/PerformanceManager/providers/gtm/ratesResponse.js"],"sourcesContent":["import { dateDiff, dateFormat } from '@mirai/locale';\n\nimport { ratesResponse as duettoRatesResponse } from './duetto';\nimport { getInitEvent, parseRate } from './helpers';\nimport { getOccupationTotals } from '../../../../components/helpers';\nimport { getFeatures } from '../../../../components/Rates/helpers';\nimport { ACCOMMODATION_TYPE } from '../../../../Core.constants';\nimport { fetchUrlParams } from '../../../../helpers';\nimport { dataLayerPush } from '../../helpers';\nimport { getRatesPriceRange } from '../helpers';\nimport { formatPrice } from '../helpers/legacy';\n\nconst ACCOMMODATION_TYPE_NAME = Object.keys(ACCOMMODATION_TYPE);\n\nexport const ratesResponse = ({\n device: { mobile } = {},\n response: { calendar: calendarSuggestion, hotels, infantAge, tracking = {} } = {},\n store: {\n currency,\n finder: { calendar = [], occupation = [], place: { title: searchCategory } = {}, promocode = '' } = {},\n hotel: { accommodationType, features = {}, variants = {} } = {},\n id,\n language,\n session,\n type,\n urlParams,\n } = {},\n} = {}) => {\n // ! -- TODO: Try to get all data from store -------------------------------------------------------------------------\n const {\n idchain,\n idoffers,\n idtokenprovider: hotelId, // ? TODO: Could we take it from store?\n roomTypeId,\n } = fetchUrlParams(location.search);\n\n // ! -- TODO: use of tracking should be a temporary approach ---------------------------------------------------------\n const {\n country,\n hotelInfo: { currency: hotelCurrency = {}, propertyName, propertyType } = {},\n hotelInfoBAR,\n localTaxesIncluded,\n rates,\n taxesIncluded,\n userCurrency: { value: userCurrencyValue } = {},\n } = tracking;\n\n const { adults = 0, children = 0 } = getOccupationTotals({ infantAge, occupation });\n const { minRate, maxRate } = getRatesPriceRange(rates, hotelCurrency);\n const { days: nights } = dateDiff(...calendar);\n const { showPricePerNight = false } = getFeatures(features, urlParams);\n\n const step = hotels && !calendarSuggestion && searchCategory ? 'CHAINRESULT' : 'BOOKINGSTEP1';\n const common = {\n ...(!rates && hotelInfoBAR?.length === 0 ? { availability: 'no' } : undefined),\n chainId: idchain,\n checkin: dateFormat(calendar[0], { format: 'DD/MM/YYYY' }),\n checkout: dateFormat(calendar[1], { format: 'DD/MM/YYYY' }),\n coupon: promocode,\n device: mobile ? 'MOBILE' : 'DESKTOP_TABLET',\n home: document.location.hostname,\n hotelId,\n idOffer: idoffers ? parseInt(idoffers) : undefined,\n idRoom: roomTypeId ? parseInt(roomTypeId) : undefined,\n language,\n lodgingDenomination: ACCOMMODATION_TYPE_NAME[variants[hotelId]?.accommodationType || accommodationType],\n multiroom: occupation.length > 1,\n numAdults: adults,\n numChildren: children,\n numRooms: occupation.length,\n pricePerNight: showPricePerNight,\n propertyName,\n propertyType,\n ...(!rates && hotelInfoBAR ? { searchCategory } : undefined),\n step,\n userCountry: country,\n userLogged: !!session,\n };\n\n const dataLayer = rates\n ? {\n ...common,\n currency: hotelCurrency.code,\n exchangeRate: userCurrencyValue && hotelCurrency.value && userCurrencyValue / hotelCurrency.value,\n highestRate: parseRate(maxRate, hotelCurrency, nights),\n localTaxesIncluded,\n lowestRate: parseRate(minRate, hotelCurrency, nights),\n nights,\n ratesByRoom: Object.values(rates).map(({ id, name, occupationOptions = {} } = {}) => ({\n id,\n name,\n occupations: Object.values(occupationOptions).map(\n ({ numAdults = 0, numFirstRangeChildren = 0, numSecondRangeChildren = 0, id, rates = {} } = {}) => ({\n adults: numAdults,\n children: numFirstRangeChildren + numSecondRangeChildren,\n id,\n rates: Object.values(rates).map(({ boardOptions = {}, id, name } = {}) => ({\n boards: Object.values(boardOptions).map(\n ({ id, name, totalBasePrice, totalLocalTaxes = 0, totalPriceWithTaxes } = {}) => ({\n id,\n localTaxes: formatPrice(totalLocalTaxes, hotelCurrency),\n name,\n netPrice: formatPrice(totalBasePrice, hotelCurrency),\n taxes: formatPrice(totalPriceWithTaxes - totalBasePrice, hotelCurrency),\n }),\n ),\n id,\n name,\n })),\n }),\n ),\n })),\n taxesIncluded,\n userCurrency: currency,\n }\n : hotelInfoBAR?.length > 0\n ? {\n ...common,\n availability: 'yes',\n exchangeRate:\n userCurrencyValue && hotelInfoBAR[0].currency.value && userCurrencyValue / hotelInfoBAR[0].currency.value,\n hotelIds: hotelInfoBAR.map(({ idTokenProvider } = {}) => idTokenProvider).join(','),\n hotelNames: hotelInfoBAR.map(({ hotelName } = {}) => hotelName).join(','),\n lowestRate: formatPrice(\n hotelInfoBAR[0].bestAvailableRate.totalPrice.internalWithTaxes / nights,\n hotelInfoBAR[0].currency,\n ),\n }\n : common;\n\n dataLayerPush(getInitEvent({ mobile, hotel: { accommodationType, id: hotelId, variants }, id, step, type }));\n dataLayerPush({\n event: rates || hotelInfoBAR?.length > 0 ? 'mirai.Availability' : 'mirai.noAvailability',\n 'mirai.data': dataLayer,\n });\n duettoRatesResponse({ ...common, hotelCurrency, rates });\n\n return dataLayer;\n};\n"],"mappings":"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"}
|