@mirai/core 0.4.97 → 0.4.99
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/build/components/Checkout/partials/Checkout.Confirmation.js +30 -3
- package/build/components/Checkout/partials/Checkout.Confirmation.js.map +1 -1
- package/build/contexts/PerformanceManager/providers/gtm/ratesResponse.js +15 -8
- package/build/contexts/PerformanceManager/providers/gtm/ratesResponse.js.map +1 -1
- package/package.json +1 -1
|
@@ -30,7 +30,8 @@ const Confirmation = _ref => {
|
|
|
30
30
|
...others
|
|
31
31
|
} = _ref;
|
|
32
32
|
const {
|
|
33
|
-
isDesktop
|
|
33
|
+
isDesktop,
|
|
34
|
+
isMobile
|
|
34
35
|
} = (0, _ui.useDevice)();
|
|
35
36
|
const {
|
|
36
37
|
translate
|
|
@@ -110,6 +111,12 @@ const Confirmation = _ref => {
|
|
|
110
111
|
});
|
|
111
112
|
return response;
|
|
112
113
|
};
|
|
114
|
+
const {
|
|
115
|
+
currency,
|
|
116
|
+
price: {
|
|
117
|
+
total = 0
|
|
118
|
+
} = {}
|
|
119
|
+
} = dataSource;
|
|
113
120
|
const CTA = () => {
|
|
114
121
|
var _config$publicKey, _dataSource$payment;
|
|
115
122
|
const {
|
|
@@ -120,7 +127,27 @@ const Confirmation = _ref => {
|
|
|
120
127
|
const {
|
|
121
128
|
idtokenprovider: id
|
|
122
129
|
} = urlParams;
|
|
123
|
-
|
|
130
|
+
const showTotal = variant === 'B' && !isDesktop;
|
|
131
|
+
return /*#__PURE__*/_react.default.createElement(showTotal ? _ui.View : _react.default.Fragment, {
|
|
132
|
+
...(showTotal ? {
|
|
133
|
+
row: true,
|
|
134
|
+
wide: true
|
|
135
|
+
} : undefined)
|
|
136
|
+
}, /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, showTotal && total > 0 && /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
137
|
+
className: style.totalPrice
|
|
138
|
+
}, /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
139
|
+
light: true,
|
|
140
|
+
small: !isMobile,
|
|
141
|
+
tiny: isMobile
|
|
142
|
+
}, translate(_Checkout.L10N.LABEL_TOTAL)), /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
143
|
+
bold: true,
|
|
144
|
+
headline: !isMobile || total < 1000,
|
|
145
|
+
level: isMobile ? 3 : 2
|
|
146
|
+
}, (0, _locale.currencyFormat)({
|
|
147
|
+
currency,
|
|
148
|
+
locale,
|
|
149
|
+
value: total
|
|
150
|
+
}))), /*#__PURE__*/_react.default.createElement(_shared__.ButtonPayment, _extends({}, dataSource === null || dataSource === void 0 ? void 0 : dataSource.payment, {
|
|
124
151
|
config: {
|
|
125
152
|
...config,
|
|
126
153
|
publicKey: (_config$publicKey = config.publicKey) === null || _config$publicKey === void 0 ? void 0 : _config$publicKey[payment === null || payment === void 0 ? void 0 : payment.method]
|
|
@@ -146,7 +173,7 @@ const Confirmation = _ref => {
|
|
|
146
173
|
locale,
|
|
147
174
|
value
|
|
148
175
|
})
|
|
149
|
-
}));
|
|
176
|
+
}))));
|
|
150
177
|
};
|
|
151
178
|
const content = () => /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_BookingSummary.BookingSummary, {
|
|
152
179
|
dataSource: dataSource
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkout.Confirmation.js","names":["_dataSources","require","_locale","_services","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_Core","_shared__","_BookingSummary","_helpers","_Checkout","style","_helpers2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_extends","assign","bind","target","arguments","length","source","key","apply","Confirmation","_ref","dataSource","error","onError","onValid","others","isDesktop","useDevice","translate","useLocale","value","checkout","hotel","language","locale","payment","session","urlParams","variant","useStore","refContainer","useRef","busy","setBusy","useState","responseError","setResponseError","useEffect","current","Event","publish","EVENT","FOOTER_HEIGHT_CHANGE","height","offsetHeight","price","prepayment","currency","hotelCurrency","method","handleError","handlePress","METRICS","id","handleSubmit","response","ServiceBooking","confirm","form","applyClubDiscount","undefined","getParamsFromExtras","selectedExtras","catch","NOTIFICATION","small","defaultMessage","L10N","NOTIFICATION_ERROR","code","ERROR","UNKNOWN","CTA","_config$publicKey","_dataSource$payment","config","idtokenprovider","createElement","ButtonPayment","publicKey","large","promise","wide","onPress","testId","getButtonPaymentKey","info","amount","currencyFormat","content","Fragment","BookingSummary","View","className","section","Notification","Text","light","footer","NOTIFICATION_SSL_ENCRYPTION","ref","confirmation","exports","displayName","propTypes","PropTypes","bool","shape","func","onSubmit"],"sources":["../../../../src/components/Checkout/partials/Checkout.Confirmation.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { currencyFormat, useLocale } from '@mirai/locale';\nimport { ServiceBooking } from '@mirai/services';\nimport { Notification, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { ERROR } from '../../../Core.constants';\nimport { ButtonPayment } from '../../__shared__';\nimport { BookingSummary } from '../../__shared__/BookingSummary';\nimport { EVENT } from '../../helpers';\nimport { L10N } from '../Checkout.l10n';\nimport * as style from '../Checkout.module.css';\nimport { getButtonPaymentKey, getParamsFromExtras } from '../helpers';\n\nconst Confirmation = ({ dataSource = {}, error = false, onError, onValid, ...others }) => {\n const { isDesktop } = useDevice();\n const { translate } = useLocale();\n const { value: { checkout, hotel = {}, language, locale, payment, session = {}, urlParams = {}, variant } = {} } =\n useStore();\n const refContainer = useRef();\n\n const [busy, setBusy] = useState(false);\n const [responseError, setResponseError] = useState();\n\n useEffect(() => {\n !isDesktop &&\n refContainer?.current &&\n Event.publish(EVENT.FOOTER_HEIGHT_CHANGE, { height: refContainer?.current.offsetHeight });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => setResponseError(), [checkout, payment]);\n\n const { price: { prepayment = {} } = {} } = dataSource;\n const { currency: hotelCurrency, value } = prepayment[payment?.method] || {};\n\n const handleError = () => setBusy(false);\n\n const handlePress = () => {\n if (error) {\n Event.publish(EVENT.METRICS, { id: 'CHECKOUT:SUBMIT' });\n onError();\n return false;\n }\n setBusy(true);\n };\n\n const handleSubmit = async (value) => {\n if (error) return onError();\n Event.publish(EVENT.METRICS, { id: 'CHECKOUT:SUBMIT' });\n\n onValid();\n setResponseError();\n\n const response = await ServiceBooking.confirm({\n form: checkout,\n dataSource,\n language,\n payment: { ...payment, ...value },\n session: urlParams.applyClubDiscount === 'true' ? session : undefined,\n ...urlParams,\n ...getParamsFromExtras({ selectedExtras: others.selectedExtras, urlParams, variant }),\n }).catch((error) => {\n setBusy(false);\n setResponseError(error);\n\n Event.publish(EVENT.NOTIFICATION, {\n error: true,\n small: true,\n defaultMessage: translate(L10N.NOTIFICATION_ERROR[error?.code || ERROR.UNKNOWN]),\n });\n });\n\n return response;\n };\n\n const CTA = () => {\n const { payment: { config = {} } = {} } = dataSource;\n const { idtokenprovider: id } = urlParams;\n\n return (\n <ButtonPayment\n {...{ ...dataSource?.payment, config: { ...config, publicKey: config.publicKey?.[payment?.method] } }}\n busy={busy}\n hotel={{ ...hotel, id }}\n large\n promise={handleSubmit}\n wide\n onError={handleError}\n onPress={handlePress}\n testId=\"checkout-button\"\n >\n {translate(getButtonPaymentKey({ ...config, ...dataSource?.payment?.info, method: payment?.method }), {\n amount: currencyFormat({ currency: hotelCurrency, locale, value }),\n })}\n </ButtonPayment>\n );\n };\n\n const content = () => (\n <>\n <BookingSummary dataSource={dataSource} />\n\n <View className={style.section}>\n {responseError && (\n <Notification error small wide>\n {translate(L10N.NOTIFICATION_ERROR[responseError?.code || ERROR.UNKNOWN])}\n </Notification>\n )}\n\n {CTA()}\n\n <Text light small wide className={style.footer}>\n {translate(L10N.NOTIFICATION_SSL_ENCRYPTION)}\n </Text>\n </View>\n </>\n );\n\n return (\n <View ref={refContainer} {...others} className={style.confirmation}>\n {isDesktop ? content() : CTA()}\n </View>\n );\n};\n\nConfirmation.displayName = 'Mirai:Core:Checkout:Confirmation';\n\nConfirmation.propTypes = {\n busy: PropTypes.bool,\n dataSource: PropTypes.shape({}),\n error: PropTypes.bool,\n onError: PropTypes.func,\n onSubmit: PropTypes.func,\n onValid: PropTypes.func,\n};\n\nexport { Confirmation };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Checkout.Confirmation.js","names":["_dataSources","require","_locale","_services","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_Core","_shared__","_BookingSummary","_helpers","_Checkout","style","_helpers2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_extends","assign","bind","target","arguments","length","source","key","apply","Confirmation","_ref","dataSource","error","onError","onValid","others","isDesktop","isMobile","useDevice","translate","useLocale","value","checkout","hotel","language","locale","payment","session","urlParams","variant","useStore","refContainer","useRef","busy","setBusy","useState","responseError","setResponseError","useEffect","current","Event","publish","EVENT","FOOTER_HEIGHT_CHANGE","height","offsetHeight","price","prepayment","currency","hotelCurrency","method","handleError","handlePress","METRICS","id","handleSubmit","response","ServiceBooking","confirm","form","applyClubDiscount","undefined","getParamsFromExtras","selectedExtras","catch","NOTIFICATION","small","defaultMessage","L10N","NOTIFICATION_ERROR","code","ERROR","UNKNOWN","total","CTA","_config$publicKey","_dataSource$payment","config","idtokenprovider","showTotal","React","createElement","View","Fragment","row","wide","className","totalPrice","Text","light","tiny","LABEL_TOTAL","bold","headline","level","currencyFormat","ButtonPayment","publicKey","large","promise","onPress","testId","getButtonPaymentKey","info","amount","content","BookingSummary","section","Notification","footer","NOTIFICATION_SSL_ENCRYPTION","ref","confirmation","exports","displayName","propTypes","PropTypes","bool","shape","func","onSubmit"],"sources":["../../../../src/components/Checkout/partials/Checkout.Confirmation.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { currencyFormat, useLocale } from '@mirai/locale';\nimport { ServiceBooking } from '@mirai/services';\nimport { Notification, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { ERROR } from '../../../Core.constants';\nimport { ButtonPayment } from '../../__shared__';\nimport { BookingSummary } from '../../__shared__/BookingSummary';\nimport { EVENT } from '../../helpers';\nimport { L10N } from '../Checkout.l10n';\nimport * as style from '../Checkout.module.css';\nimport { getButtonPaymentKey, getParamsFromExtras } from '../helpers';\n\nconst Confirmation = ({ dataSource = {}, error = false, onError, onValid, ...others }) => {\n const { isDesktop, isMobile } = useDevice();\n const { translate } = useLocale();\n const { value: { checkout, hotel = {}, language, locale, payment, session = {}, urlParams = {}, variant } = {} } =\n useStore();\n const refContainer = useRef();\n\n const [busy, setBusy] = useState(false);\n const [responseError, setResponseError] = useState();\n\n useEffect(() => {\n !isDesktop &&\n refContainer?.current &&\n Event.publish(EVENT.FOOTER_HEIGHT_CHANGE, { height: refContainer?.current.offsetHeight });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => setResponseError(), [checkout, payment]);\n\n const { price: { prepayment = {} } = {} } = dataSource;\n const { currency: hotelCurrency, value } = prepayment[payment?.method] || {};\n\n const handleError = () => setBusy(false);\n\n const handlePress = () => {\n if (error) {\n Event.publish(EVENT.METRICS, { id: 'CHECKOUT:SUBMIT' });\n onError();\n return false;\n }\n setBusy(true);\n };\n\n const handleSubmit = async (value) => {\n if (error) return onError();\n Event.publish(EVENT.METRICS, { id: 'CHECKOUT:SUBMIT' });\n\n onValid();\n setResponseError();\n\n const response = await ServiceBooking.confirm({\n form: checkout,\n dataSource,\n language,\n payment: { ...payment, ...value },\n session: urlParams.applyClubDiscount === 'true' ? session : undefined,\n ...urlParams,\n ...getParamsFromExtras({ selectedExtras: others.selectedExtras, urlParams, variant }),\n }).catch((error) => {\n setBusy(false);\n setResponseError(error);\n\n Event.publish(EVENT.NOTIFICATION, {\n error: true,\n small: true,\n defaultMessage: translate(L10N.NOTIFICATION_ERROR[error?.code || ERROR.UNKNOWN]),\n });\n });\n\n return response;\n };\n\n const { currency, price: { total = 0 } = {} } = dataSource;\n\n const CTA = () => {\n const { payment: { config = {} } = {} } = dataSource;\n const { idtokenprovider: id } = urlParams;\n const showTotal = variant === 'B' && !isDesktop;\n\n return React.createElement(\n showTotal ? View : React.Fragment,\n {\n ...(showTotal ? { row: true, wide: true } : undefined),\n },\n <>\n {showTotal && total > 0 && (\n <View className={style.totalPrice}>\n <Text light small={!isMobile} tiny={isMobile}>\n {translate(L10N.LABEL_TOTAL)}\n </Text>\n <Text bold headline={!isMobile || total < 1000} level={isMobile ? 3 : 2}>\n {currencyFormat({ currency, locale, value: total })}\n </Text>\n </View>\n )}\n <ButtonPayment\n {...{ ...dataSource?.payment, config: { ...config, publicKey: config.publicKey?.[payment?.method] } }}\n busy={busy}\n hotel={{ ...hotel, id }}\n large\n promise={handleSubmit}\n wide\n onError={handleError}\n onPress={handlePress}\n testId=\"checkout-button\"\n >\n {translate(getButtonPaymentKey({ ...config, ...dataSource?.payment?.info, method: payment?.method }), {\n amount: currencyFormat({ currency: hotelCurrency, locale, value }),\n })}\n </ButtonPayment>\n </>,\n );\n };\n\n const content = () => (\n <>\n <BookingSummary dataSource={dataSource} />\n\n <View className={style.section}>\n {responseError && (\n <Notification error small wide>\n {translate(L10N.NOTIFICATION_ERROR[responseError?.code || ERROR.UNKNOWN])}\n </Notification>\n )}\n\n {CTA()}\n\n <Text light small wide className={style.footer}>\n {translate(L10N.NOTIFICATION_SSL_ENCRYPTION)}\n </Text>\n </View>\n </>\n );\n\n return (\n <View ref={refContainer} {...others} className={style.confirmation}>\n {isDesktop ? content() : CTA()}\n </View>\n );\n};\n\nConfirmation.displayName = 'Mirai:Core:Checkout:Confirmation';\n\nConfirmation.propTypes = {\n busy: PropTypes.bool,\n dataSource: PropTypes.shape({}),\n error: PropTypes.bool,\n onError: PropTypes.func,\n onSubmit: PropTypes.func,\n onValid: PropTypes.func,\n};\n\nexport { Confirmation };\n"],"mappings":"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"}
|
|
@@ -8,10 +8,11 @@ var _locale = require("@mirai/locale");
|
|
|
8
8
|
var _duetto = require("./duetto");
|
|
9
9
|
var _helpers = require("./helpers");
|
|
10
10
|
var _helpers2 = require("../../../../components/helpers");
|
|
11
|
+
var _helpers3 = require("../../../../components/Rates/helpers");
|
|
11
12
|
var _Core = require("../../../../Core.constants");
|
|
12
|
-
var
|
|
13
|
-
var
|
|
14
|
-
var
|
|
13
|
+
var _helpers4 = require("../../../../helpers");
|
|
14
|
+
var _helpers5 = require("../../helpers");
|
|
15
|
+
var _helpers6 = require("../helpers");
|
|
15
16
|
var _legacy = require("../helpers/legacy");
|
|
16
17
|
const ACCOMMODATION_TYPE_NAME = Object.keys(_Core.ACCOMMODATION_TYPE);
|
|
17
18
|
const ratesResponse = function () {
|
|
@@ -38,13 +39,15 @@ const ratesResponse = function () {
|
|
|
38
39
|
} = {},
|
|
39
40
|
hotel: {
|
|
40
41
|
accommodationType,
|
|
42
|
+
features = {},
|
|
41
43
|
variants = {},
|
|
42
44
|
...hotel
|
|
43
45
|
} = {},
|
|
44
46
|
id,
|
|
45
47
|
language,
|
|
46
48
|
session,
|
|
47
|
-
type
|
|
49
|
+
type,
|
|
50
|
+
urlParams
|
|
48
51
|
} = {}
|
|
49
52
|
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
50
53
|
// ! -- TODO: Try to get all data from store -------------------------------------------------------------------------
|
|
@@ -54,7 +57,7 @@ const ratesResponse = function () {
|
|
|
54
57
|
idtokenprovider: hotelId,
|
|
55
58
|
// ? TODO: Could we take it from store?
|
|
56
59
|
roomTypeId
|
|
57
|
-
} = (0,
|
|
60
|
+
} = (0, _helpers4.fetchUrlParams)(location.search);
|
|
58
61
|
|
|
59
62
|
// ! -- TODO: use of tracking should be a temporary approach ---------------------------------------------------------
|
|
60
63
|
const {
|
|
@@ -82,10 +85,13 @@ const ratesResponse = function () {
|
|
|
82
85
|
const {
|
|
83
86
|
minRate,
|
|
84
87
|
maxRate
|
|
85
|
-
} = (0,
|
|
88
|
+
} = (0, _helpers6.getRatesPriceRange)(rates, hotelCurrency);
|
|
86
89
|
const {
|
|
87
90
|
days: nights
|
|
88
91
|
} = (0, _locale.dateDiff)(...calendar);
|
|
92
|
+
const {
|
|
93
|
+
showPricePerNight = false
|
|
94
|
+
} = (0, _helpers3.getFeatures)(features, urlParams);
|
|
89
95
|
const step = hotels && !calendarSuggestion && searchCategory ? 'CHAINRESULT' : 'BOOKINGSTEP1';
|
|
90
96
|
const common = {
|
|
91
97
|
...(!rates && (hotelInfoBAR === null || hotelInfoBAR === void 0 ? void 0 : hotelInfoBAR.length) === 0 ? {
|
|
@@ -110,6 +116,7 @@ const ratesResponse = function () {
|
|
|
110
116
|
numAdults: adults,
|
|
111
117
|
numChildren: children,
|
|
112
118
|
numRooms: occupation.length,
|
|
119
|
+
pricePerNight: showPricePerNight,
|
|
113
120
|
propertyName,
|
|
114
121
|
propertyType,
|
|
115
122
|
...(!rates && hotelInfoBAR ? {
|
|
@@ -199,7 +206,7 @@ const ratesResponse = function () {
|
|
|
199
206
|
}).join(','),
|
|
200
207
|
lowestRate: (0, _legacy.formatPrice)(hotelInfoBAR[0].bestAvailableRate.totalPrice.internalWithTaxes / nights, hotelInfoBAR[0].currency)
|
|
201
208
|
} : common;
|
|
202
|
-
(0,
|
|
209
|
+
(0, _helpers5.dataLayerPush)((0, _helpers.getInitEvent)({
|
|
203
210
|
mobile,
|
|
204
211
|
hotel: {
|
|
205
212
|
accommodationType,
|
|
@@ -210,7 +217,7 @@ const ratesResponse = function () {
|
|
|
210
217
|
step,
|
|
211
218
|
type
|
|
212
219
|
}));
|
|
213
|
-
(0,
|
|
220
|
+
(0, _helpers5.dataLayerPush)({
|
|
214
221
|
event: rates || (hotelInfoBAR === null || hotelInfoBAR === void 0 ? void 0 : hotelInfoBAR.length) > 0 ? 'mirai.Availability' : 'mirai.noAvailability',
|
|
215
222
|
'mirai.data': dataLayer
|
|
216
223
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ratesResponse.js","names":["_locale","require","_duetto","_helpers","_helpers2","_Core","_helpers3","_helpers4","_helpers5","_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","variants","id","language","session","type","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","step","common","availability","chainId","checkin","dateFormat","format","checkout","coupon","home","document","hostname","idOffer","parseInt","idRoom","lodgingDenomination","multiroom","numAdults","numChildren","numRooms","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 { 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, variants = {}, ...hotel } = {},\n id,\n language,\n session,\n type,\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\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 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 = {}, ...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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"}
|