@mirai/core 0.3.244 → 0.3.245
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/Rates/Rates.Footer.js +1 -1
- package/build/components/Rates/Rates.Footer.js.map +1 -1
- package/build/components/Rates/Rates.js +46 -34
- package/build/components/Rates/Rates.js.map +1 -1
- package/build/components/Rates/helpers/getCheckoutParams.js +5 -1
- package/build/components/Rates/helpers/getCheckoutParams.js.map +1 -1
- package/build/helpers/consolidateStore.js +2 -6
- package/build/helpers/consolidateStore.js.map +1 -1
- package/build/helpers/getRatesCart.js +16 -0
- package/build/helpers/getRatesCart.js.map +1 -0
- package/build/services/Rates/__tests__/__mocks__/rates-response-cancel-types.json +84 -0
- package/build/services/Rates/__tests__/__mocks__/rates-response-no-taxes-no-local.json +12 -0
- package/build/services/Rates/__tests__/__mocks__/rates-response-no-taxes.json +72 -0
- package/build/services/Rates/__tests__/__mocks__/rates-response.json +8 -0
- package/build/services/Rates/helpers/parseItem.js +4 -0
- package/build/services/Rates/helpers/parseItem.js.map +1 -1
- package/build/services/Rates/rates.js +2 -2
- package/build/services/Rates/rates.js.map +1 -1
- package/package.json +1 -1
|
@@ -76,7 +76,7 @@ const Footer = _ref => {
|
|
|
76
76
|
}, 0);
|
|
77
77
|
return /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
78
78
|
row: true,
|
|
79
|
-
key: id,
|
|
79
|
+
key: "".concat(id).concat(index),
|
|
80
80
|
className: style.cartItem
|
|
81
81
|
}, /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
82
82
|
row: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Rates.Footer.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_helpers","_Rates","style","_helpers2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","Footer","_ref","cart","dataSource","taxesType","extras","login","occupation","onSubmit","isMobile","useDevice","currencyFormat","translate","useLocale","value","currency","useStore","busy","setBusy","useState","useEffect","items","filter","item","undefined","totalPrice","reduce","price","arguments","length","valid","handleSubmit","createElement","View","className","styles","footer","visible","wrapper","wide","map","amount","id","name","boardName","roomName","index","guests","total","row","key","cartItem","room","Icon","ICON","PERSON","GROUP","GROUPS","Text","small","bold","action","description","concat","lighten","maximumFractionDigits","summary","headline","level","tiny","getLabelTaxes","Button","disabled","large","onPress","L10N","ACTION_RESERVE","exports","displayName","propTypes","PropTypes","arrayOf","shape","bool","ages","number","type","func"],"sources":["../../../src/components/Rates/Rates.Footer.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { useDevice } from '@mirai/ui';\nimport { Button, Icon, styles, Text, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { getLabelTaxes } from './helpers';\nimport { L10N } from './Rates.l10n';\nimport * as style from './Rates.module.css';\nimport { ICON } from '../helpers';\n\nconst Footer = ({ cart = [], dataSource: { taxesType } = {}, extras, login, occupation = [], onSubmit = () => {} }) => {\n const { isMobile } = useDevice();\n const { currencyFormat, translate } = useLocale();\n const { value: { currency } = {} } = useStore();\n\n const [busy, setBusy] = useState(false);\n\n useEffect(() => !extras && setBusy(false), [extras]);\n\n useEffect(() => !login && setBusy(false), [login]);\n\n const items = cart.filter((item) => item !== undefined);\n const totalPrice = cart.reduce((value, { price = 0 } = {}) => value + price, 0);\n const valid = items.length === occupation.length;\n\n const handleSubmit = () => {\n setBusy(true);\n onSubmit();\n };\n\n return (\n <View className={styles(style.footer, items.length && style.visible)}>\n <View>\n <View className={style.wrapper} wide>\n {items.map(({ amount = 1, id, name: boardName, price, roomName } = {}, index) => {\n const guests = occupation[index].reduce((total, { amount } = {}) => total + amount, 0);\n\n return (\n <View row key={id} className={style.cartItem}>\n <View row className={style.room}>\n <Icon value={guests === 1 ? ICON.PERSON : guests === 2 ? ICON.GROUP : ICON.GROUPS} />\n <Text small>{guests}</Text>\n </View>\n\n <Text bold action={!isMobile} small={isMobile} className={style.description}>\n {`${roomName} `}\n <Text lighten small>{`| ${boardName}`}</Text>\n </Text>\n\n <Text bold action={!isMobile} small={isMobile}>\n {currencyFormat({ currency, maximumFractionDigits: 0, value: amount * price })}\n </Text>\n </View>\n );\n })}\n </View>\n </View>\n\n <View row className={[style.wrapper, style.summary]}>\n <View className={style.totalPrice}>\n <Text bold headline level={isMobile ? 3 : 2}>\n {currencyFormat({ currency, maximumFractionDigits: 0, value: totalPrice })}\n </Text>\n\n {!!taxesType && (\n <Text lighten small={!isMobile} tiny={isMobile}>\n {translate(getLabelTaxes(taxesType))}\n </Text>\n )}\n </View>\n\n <Button busy={busy} disabled={!valid} large={!isMobile} onPress={handleSubmit}>\n {translate(L10N.ACTION_RESERVE)}\n </Button>\n </View>\n </View>\n );\n};\n\nFooter.displayName = 'Mirai:Core:Rates:Footer';\n\nFooter.propTypes = {\n cart: PropTypes.arrayOf(PropTypes.shape({})),\n dataSource: PropTypes.shape({}),\n extras: PropTypes.arrayOf(PropTypes.shape({})),\n login: PropTypes.bool,\n occupation: PropTypes.arrayOf(\n PropTypes.arrayOf(\n PropTypes.shape({\n ages: PropTypes.arrayOf(PropTypes.number),\n amount: PropTypes.number,\n type: PropTypes.number,\n }),\n ),\n ),\n onSubmit: PropTypes.func,\n};\n\nexport { Footer };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Rates.Footer.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_helpers","_Rates","style","_helpers2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","Footer","_ref","cart","dataSource","taxesType","extras","login","occupation","onSubmit","isMobile","useDevice","currencyFormat","translate","useLocale","value","currency","useStore","busy","setBusy","useState","useEffect","items","filter","item","undefined","totalPrice","reduce","price","arguments","length","valid","handleSubmit","createElement","View","className","styles","footer","visible","wrapper","wide","map","amount","id","name","boardName","roomName","index","guests","total","row","key","concat","cartItem","room","Icon","ICON","PERSON","GROUP","GROUPS","Text","small","bold","action","description","lighten","maximumFractionDigits","summary","headline","level","tiny","getLabelTaxes","Button","disabled","large","onPress","L10N","ACTION_RESERVE","exports","displayName","propTypes","PropTypes","arrayOf","shape","bool","ages","number","type","func"],"sources":["../../../src/components/Rates/Rates.Footer.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { useDevice } from '@mirai/ui';\nimport { Button, Icon, styles, Text, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { getLabelTaxes } from './helpers';\nimport { L10N } from './Rates.l10n';\nimport * as style from './Rates.module.css';\nimport { ICON } from '../helpers';\n\nconst Footer = ({ cart = [], dataSource: { taxesType } = {}, extras, login, occupation = [], onSubmit = () => {} }) => {\n const { isMobile } = useDevice();\n const { currencyFormat, translate } = useLocale();\n const { value: { currency } = {} } = useStore();\n\n const [busy, setBusy] = useState(false);\n\n useEffect(() => !extras && setBusy(false), [extras]);\n\n useEffect(() => !login && setBusy(false), [login]);\n\n const items = cart.filter((item) => item !== undefined);\n const totalPrice = cart.reduce((value, { price = 0 } = {}) => value + price, 0);\n const valid = items.length === occupation.length;\n\n const handleSubmit = () => {\n setBusy(true);\n onSubmit();\n };\n\n return (\n <View className={styles(style.footer, items.length && style.visible)}>\n <View>\n <View className={style.wrapper} wide>\n {items.map(({ amount = 1, id, name: boardName, price, roomName } = {}, index) => {\n const guests = occupation[index].reduce((total, { amount } = {}) => total + amount, 0);\n\n return (\n <View row key={`${id}${index}`} className={style.cartItem}>\n <View row className={style.room}>\n <Icon value={guests === 1 ? ICON.PERSON : guests === 2 ? ICON.GROUP : ICON.GROUPS} />\n <Text small>{guests}</Text>\n </View>\n\n <Text bold action={!isMobile} small={isMobile} className={style.description}>\n {`${roomName} `}\n <Text lighten small>{`| ${boardName}`}</Text>\n </Text>\n\n <Text bold action={!isMobile} small={isMobile}>\n {currencyFormat({ currency, maximumFractionDigits: 0, value: amount * price })}\n </Text>\n </View>\n );\n })}\n </View>\n </View>\n\n <View row className={[style.wrapper, style.summary]}>\n <View className={style.totalPrice}>\n <Text bold headline level={isMobile ? 3 : 2}>\n {currencyFormat({ currency, maximumFractionDigits: 0, value: totalPrice })}\n </Text>\n\n {!!taxesType && (\n <Text lighten small={!isMobile} tiny={isMobile}>\n {translate(getLabelTaxes(taxesType))}\n </Text>\n )}\n </View>\n\n <Button busy={busy} disabled={!valid} large={!isMobile} onPress={handleSubmit}>\n {translate(L10N.ACTION_RESERVE)}\n </Button>\n </View>\n </View>\n );\n};\n\nFooter.displayName = 'Mirai:Core:Rates:Footer';\n\nFooter.propTypes = {\n cart: PropTypes.arrayOf(PropTypes.shape({})),\n dataSource: PropTypes.shape({}),\n extras: PropTypes.arrayOf(PropTypes.shape({})),\n login: PropTypes.bool,\n occupation: PropTypes.arrayOf(\n PropTypes.arrayOf(\n PropTypes.shape({\n ages: PropTypes.arrayOf(PropTypes.number),\n amount: PropTypes.number,\n type: PropTypes.number,\n }),\n ),\n ),\n onSubmit: PropTypes.func,\n};\n\nexport { Footer };\n"],"mappings":"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"}
|
|
@@ -47,6 +47,7 @@ const Rates = _ref => {
|
|
|
47
47
|
} = (0, _locale.useLocale)();
|
|
48
48
|
const refRoomSelector = (0, _react.useRef)();
|
|
49
49
|
const {
|
|
50
|
+
set,
|
|
50
51
|
value: {
|
|
51
52
|
club: {
|
|
52
53
|
discount,
|
|
@@ -62,7 +63,9 @@ const Rates = _ref => {
|
|
|
62
63
|
occupation: {
|
|
63
64
|
maxRooms
|
|
64
65
|
} = {},
|
|
65
|
-
|
|
66
|
+
rates: {
|
|
67
|
+
cart: storeCart = []
|
|
68
|
+
} = {},
|
|
66
69
|
session,
|
|
67
70
|
urlParams
|
|
68
71
|
}
|
|
@@ -88,23 +91,43 @@ const Rates = _ref => {
|
|
|
88
91
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
89
92
|
(0, _react.useEffect)(() => skeleton && setFetching(true), [skeleton]);
|
|
90
93
|
|
|
91
|
-
// Hook: store cart
|
|
92
|
-
// useEffect(() => {
|
|
93
|
-
// if (!storeCart.length || !dataSource || cart.length) return;
|
|
94
|
-
|
|
95
|
-
// const boards = dataSource.items
|
|
96
|
-
// .map(({ boards = [], name: roomName }) => boards.map((board) => ({ ...board, roomName })))
|
|
97
|
-
// .flat();
|
|
98
|
-
// const nextCart = storeCart.map((id) => boards.find((board) => board.id === id)).filter((board) => !!board);
|
|
99
|
-
|
|
100
|
-
// // eslint-disable-next-line no-console
|
|
101
|
-
// console.log('::cart from url::', nextCart);
|
|
102
|
-
|
|
103
|
-
// // if (storeCart.length === nextCart.length) setCart(nextCart);
|
|
104
|
-
// // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
105
|
-
// }, [cart, dataSource, storeCart]);
|
|
106
|
-
|
|
107
94
|
// -- hooks ----------------------------------------------------------------------------------------------------------
|
|
95
|
+
(0, _react.useEffect)(() => {
|
|
96
|
+
if (!storeCart.length || !dataSource) return;
|
|
97
|
+
const counts = storeCart.reduce((total, current) => {
|
|
98
|
+
total[current] = (total[current] || 0) + 1;
|
|
99
|
+
return total;
|
|
100
|
+
}, {});
|
|
101
|
+
const getBoard = id => dataSource.items.map(_ref2 => {
|
|
102
|
+
let {
|
|
103
|
+
boards = [],
|
|
104
|
+
name: roomName
|
|
105
|
+
} = _ref2;
|
|
106
|
+
return boards.map(board => ({
|
|
107
|
+
...board,
|
|
108
|
+
roomName
|
|
109
|
+
}));
|
|
110
|
+
}).flat().find(board => board.id === id);
|
|
111
|
+
const validStoreCart = storeCart.filter(id => {
|
|
112
|
+
var _getBoard, _getBoard2;
|
|
113
|
+
return counts[id] >= ((_getBoard = getBoard(id)) === null || _getBoard === void 0 ? void 0 : _getBoard.minSelected) && counts[id] <= ((_getBoard2 = getBoard(id)) === null || _getBoard2 === void 0 ? void 0 : _getBoard2.maxSelected);
|
|
114
|
+
});
|
|
115
|
+
if (storeCart.length === cart.length || validStoreCart.length != storeCart.length) {
|
|
116
|
+
set({
|
|
117
|
+
rates: undefined
|
|
118
|
+
});
|
|
119
|
+
} else {
|
|
120
|
+
const board = storeCart.map(id => getBoard(id)).find(function () {
|
|
121
|
+
let {
|
|
122
|
+
id
|
|
123
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
124
|
+
return !!id;
|
|
125
|
+
});
|
|
126
|
+
board && handleSelect(board);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
130
|
+
}, [dataSource, storeCart]);
|
|
108
131
|
(0, _react.useEffect)(() => {
|
|
109
132
|
if (!clubDiscount && !currency && !session && strictSearch === undefined) return;
|
|
110
133
|
setCart([]);
|
|
@@ -196,18 +219,6 @@ const Rates = _ref => {
|
|
|
196
219
|
setFetching(false);
|
|
197
220
|
};
|
|
198
221
|
const debounceFetch = (0, _helpers2.debounce)(fetch, 60);
|
|
199
|
-
const saveCartInUrl = function () {
|
|
200
|
-
let cart = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
201
|
-
// * DISABLED
|
|
202
|
-
(0, _helpers3.replaceUrlParams)({
|
|
203
|
-
rates: cart.length ? JSON.stringify(cart.map(function () {
|
|
204
|
-
let {
|
|
205
|
-
id
|
|
206
|
-
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
207
|
-
return id;
|
|
208
|
-
})) : undefined
|
|
209
|
-
});
|
|
210
|
-
};
|
|
211
222
|
|
|
212
223
|
// -- handlers -------------------------------------------------------------------------------------------------------
|
|
213
224
|
const handleClubDiscount = async next => {
|
|
@@ -252,7 +263,9 @@ const Rates = _ref => {
|
|
|
252
263
|
login && setLogin(false);
|
|
253
264
|
if (!multiRoom && !!board) handleSubmit(nextCart);
|
|
254
265
|
if (multiRoom && board && room < occupation.length - 1) return setRoom(room + 1);
|
|
255
|
-
if (!board)
|
|
266
|
+
if (multiRoom && !board) set({
|
|
267
|
+
rates: undefined
|
|
268
|
+
});
|
|
256
269
|
};
|
|
257
270
|
|
|
258
271
|
// eslint-disable-next-line no-unused-vars
|
|
@@ -263,7 +276,6 @@ const Rates = _ref => {
|
|
|
263
276
|
loginShown = true;
|
|
264
277
|
return setLogin(true);
|
|
265
278
|
}
|
|
266
|
-
saveCartInUrl(cart);
|
|
267
279
|
const {
|
|
268
280
|
extras = []
|
|
269
281
|
} = await _services2.ServiceRates.extras({
|
|
@@ -306,7 +318,7 @@ const Rates = _ref => {
|
|
|
306
318
|
contentBackground
|
|
307
319
|
} = _ui.Theme.get();
|
|
308
320
|
const features = (0, _helpers.getFeatures)(id, urlParams);
|
|
309
|
-
const multiRoom = (occupation === null || occupation === void 0 ? void 0 : occupation.length) > 1;
|
|
321
|
+
const multiRoom = (occupation === null || occupation === void 0 ? void 0 : occupation.length) > 1 || storeCart.length > 0;
|
|
310
322
|
const nights = (0, _locale.dateDiff)(calendar[0], calendar[1]).days;
|
|
311
323
|
const response = dataSource !== undefined;
|
|
312
324
|
const roomSelectorProps = {
|
|
@@ -355,11 +367,11 @@ const Rates = _ref => {
|
|
|
355
367
|
}, !isMobile && /*#__PURE__*/_react.default.createElement(_Rates6.RoomSelector, roomSelectorProps)), response ? /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
356
368
|
row: !isMobile,
|
|
357
369
|
className: style.items
|
|
358
|
-
}, (_dataSource$items = dataSource.items) === null || _dataSource$items === void 0 ? void 0 : _dataSource$items.map((
|
|
370
|
+
}, (_dataSource$items = dataSource.items) === null || _dataSource$items === void 0 ? void 0 : _dataSource$items.map((_ref3, index) => {
|
|
359
371
|
let {
|
|
360
372
|
id,
|
|
361
373
|
...item
|
|
362
|
-
} =
|
|
374
|
+
} = _ref3;
|
|
363
375
|
return /*#__PURE__*/_react.default.createElement(_components.Item, _extends({
|
|
364
376
|
key: "".concat(id || index, ":").concat(fetching, ":").concat(width),
|
|
365
377
|
id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Rates.js","names":["_dataSources","require","_locale","_services","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_helpers","_Rates","_Rates2","_Rates3","_Rates4","_Rates5","style","_Rates6","_Rates7","_Rates8","_helpers2","_services2","_Finder","_Header","_helpers3","_SessionLogin","_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","loginShown","Rates","_ref","_dataSource$items","_dataSource$hotels","_dataSource$items2","skeleton","others","isMobile","width","useDevice","translate","useLocale","refRoomSelector","useRef","value","club","discount","currency","finder","forwarder","hotel","id","language","locale","occupation","maxRooms","session","urlParams","useStore","cart","setCart","useState","clubDiscount","setClubDiscount","dataSource","setDataSource","extras","setExtras","fetching","setFetching","undefined","itemInfo","setItemInfo","itemRateInfo","setItemRateInfo","itemUrl","setItemUrl","login","setLogin","responseError","setResponseError","room","setRoom","strictSearch","setStrictSearch","calendar","place","useEffect","debounceFetch","multiRoom","current","offsetHeight","offsetTop","document","documentElement","scrollTo","top","behavior","trackDataSource","fetchUrlParams","location","search","fetch","nextOccupation","Event","publish","EVENT","FINDER","checkin","nights","parties","getFinderParams","replaceUrlParams","params","selectedIds","map","join","parseToParties","nextDataSource","ServiceRates","catch","externalSignout","signout","debounce","saveCartInUrl","rates","JSON","stringify","handleClubDiscount","next","handleStrictSearch","handleFinder","values","window","handleSelect","board","nextCart","trackSelectItem","handleSubmit","isPestana","ServiceFeatures","FEATURES","PESTANA","getCheckoutParams","getOccupationTotals","infantAge","hotelCurrency","selectableExtras","some","included","handleCheckout","href","getForwarderUrl","contentBackground","Theme","features","getFeatures","dateDiff","days","response","roomSelectorProps","onPress","showStrictSearch","promocode","idoffers","roomTypeId","createElement","Fragment","Header","name","View","ref","className","styles","blur","sticky","backgroundColor","opacity","Finder","assisted","compacted","text","L10N","ACTION_SEARCH","onSubmit","Progress","indeterminate","visible","progress","RoomSelector","role","testId","container","wrapper","content","Content","onClubDiscount","onSelect","onStrictSearch","row","items","_ref2","index","item","Item","concat","taxesType","selected","onMoreInfo","onRateInfo","rate","onViewUrl","info","hotels","CardHotel","Unavailability","Footer","ModalItemInfo","onClose","ModalItemRateInfo","ModalItemUrl","ModalExtras","onCancel","active","Modal","showSignup","title","LABEL_FARE_EXCLUSIVE_MEMBERS","onSuccess","ClubRate","exports","displayName","propTypes","PropTypes","bool"],"sources":["../../../src/components/Rates/Rates.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { dateDiff, useLocale } from '@mirai/locale';\nimport { ServiceFeatures } from '@mirai/services';\nimport { Progress, styles, Theme, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { CardHotel, ClubRate, Item, ModalExtras, ModalItemInfo, ModalItemRateInfo, ModalItemUrl } from './components';\nimport {\n getCheckoutParams,\n getFeatures,\n getFinderParams,\n getForwarderUrl,\n signout,\n trackDataSource,\n trackSelectItem,\n} from './helpers';\nimport { FEATURES } from './Rates.constants';\nimport { Content } from './Rates.Content';\nimport { Footer } from './Rates.Footer';\nimport { Header as RatesHeader } from './Rates.Header';\nimport { L10N } from './Rates.l10n';\nimport * as style from './Rates.module.css';\nimport { RoomSelector } from './Rates.RoomSelector';\nimport Skeleton from './Rates.Skeleton';\nimport { Unavailability } from './Rates.Unavailability';\nimport { debounce, fetchUrlParams } from '../../helpers';\nimport { ServiceRates } from '../../services';\nimport { Finder } from '../Finder';\nimport { Header } from '../Header';\nimport { EVENT, getOccupationTotals, opacity, parseToParties, replaceUrlParams } from '../helpers';\nimport { Modal as ModalLogin } from '../Session/Session.Login.Modal';\n\nlet loginShown = false;\n\nconst Rates = ({ skeleton, ...others }) => {\n const { isMobile, width } = useDevice();\n const { translate } = useLocale();\n const refRoomSelector = useRef();\n const {\n value: {\n club: { discount, ...club } = {},\n currency,\n finder = {},\n forwarder,\n hotel = {},\n id,\n language,\n locale,\n occupation: { maxRooms } = {},\n // rates: { cart: storeCart = [] } = {},\n session,\n urlParams,\n },\n } = useStore();\n\n const [cart, setCart] = useState([]);\n const [clubDiscount, setClubDiscount] = useState(discount);\n const [dataSource, setDataSource] = useState();\n const [extras, setExtras] = useState();\n const [fetching, setFetching] = useState(undefined);\n const [itemInfo, setItemInfo] = useState();\n const [itemRateInfo, setItemRateInfo] = useState();\n const [itemUrl, setItemUrl] = useState();\n const [login, setLogin] = useState(false);\n const [responseError, setResponseError] = useState();\n const [room, setRoom] = useState();\n const [strictSearch, setStrictSearch] = useState();\n\n const { calendar = [], occupation = [], place = {} } = finder;\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => skeleton && setFetching(true), [skeleton]);\n\n // Hook: store cart\n // useEffect(() => {\n // if (!storeCart.length || !dataSource || cart.length) return;\n\n // const boards = dataSource.items\n // .map(({ boards = [], name: roomName }) => boards.map((board) => ({ ...board, roomName })))\n // .flat();\n // const nextCart = storeCart.map((id) => boards.find((board) => board.id === id)).filter((board) => !!board);\n\n // // eslint-disable-next-line no-console\n // console.log('::cart from url::', nextCart);\n\n // // if (storeCart.length === nextCart.length) setCart(nextCart);\n // // eslint-disable-next-line react-hooks/exhaustive-deps\n // }, [cart, dataSource, storeCart]);\n\n // -- hooks ----------------------------------------------------------------------------------------------------------\n useEffect(() => {\n if (!clubDiscount && !currency && !session && strictSearch === undefined) return;\n\n setCart([]);\n setRoom(undefined);\n debounceFetch();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clubDiscount, currency, session, strictSearch]);\n\n useEffect(() => {\n if (!locale) return;\n debounceFetch(room);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [locale]);\n\n useEffect(() => {\n if (multiRoom) {\n if (room > 0) {\n const { current: { offsetHeight = 0, offsetTop = 0 } = {} } = refRoomSelector || {};\n document.documentElement.scrollTo({ top: offsetTop + (isMobile ? offsetHeight : 0), behavior: 'smooth' });\n }\n setDataSource();\n }\n\n debounceFetch(room);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [room]);\n\n useEffect(() => {\n if (!dataSource || room) return;\n trackDataSource({ ...dataSource, ...fetchUrlParams(location.search), isMobile, occupation, place });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource]);\n\n // -- methods --------------------------------------------------------------------------------------------------------\n const fetch = async (room, nextOccupation = occupation) => {\n if (skeleton) return;\n\n Event.publish(EVENT.FINDER, { calendar: undefined });\n setFetching(true);\n setResponseError();\n\n let urlParams = fetchUrlParams(location.search);\n if (!urlParams.checkin || !urlParams.nights || !urlParams.parties) {\n urlParams = { ...urlParams, ...getFinderParams({ ...finder, hotel }) };\n replaceUrlParams(urlParams);\n }\n\n const params = {\n ...urlParams,\n club,\n clubDiscount,\n id,\n locale,\n maxRooms,\n occupation: nextOccupation,\n place,\n selectedIds: cart.map(({ id } = {}) => id).join(','),\n session,\n strictSearch,\n };\n if (room !== undefined) params.parties = parseToParties([nextOccupation[room || 0]]);\n\n const nextDataSource = await ServiceRates.get(params).catch(setResponseError);\n if (nextDataSource?.externalSignout) signout({ club, language });\n else setDataSource(nextDataSource);\n\n if (nextDataSource && nextOccupation?.length > 1 && room === undefined) setRoom(0);\n\n setFetching(false);\n };\n\n const debounceFetch = debounce(fetch, 60);\n\n const saveCartInUrl = (cart = []) => {\n // * DISABLED\n replaceUrlParams({ rates: cart.length ? JSON.stringify(cart.map(({ id } = {}) => id)) : undefined });\n };\n\n // -- handlers -------------------------------------------------------------------------------------------------------\n const handleClubDiscount = async (next) => {\n setClubDiscount(next);\n login && setLogin(false);\n };\n\n const handleStrictSearch = (value) => {\n setStrictSearch(value);\n };\n\n const handleFinder = (values = {}) => {\n setCart([]);\n setDataSource(undefined);\n window.scrollTo({ top: 0, behavior: 'smooth' });\n\n replaceUrlParams(getFinderParams({ ...values, hotel }));\n debounceFetch(undefined, values.occupation);\n };\n\n const handleSelect = (board, others) => {\n const nextCart = [...cart];\n nextCart[room || 0] = board ? { ...board, ...others } : undefined;\n\n if (board) {\n trackSelectItem({\n ...dataSource,\n ...fetchUrlParams(location.search),\n board,\n cart: nextCart,\n isMobile,\n occupation,\n });\n }\n\n setCart(nextCart);\n setExtras();\n login && setLogin(false);\n\n if (!multiRoom && !!board) handleSubmit(nextCart);\n if (multiRoom && board && room < occupation.length - 1) return setRoom(room + 1);\n if (!board) saveCartInUrl(nextCart);\n };\n\n // eslint-disable-next-line no-unused-vars\n const handleSubmit = async (cart) => {\n const isPestana = ServiceFeatures.get(FEATURES.PESTANA, id) || false;\n setLogin(false);\n\n if (!isPestana && clubDiscount && !session && !loginShown) {\n loginShown = true;\n return setLogin(true);\n }\n\n saveCartInUrl(cart);\n\n const { extras = [] } = await ServiceRates.extras({\n ...getCheckoutParams({ cart, clubDiscount, currency, forwarder, urlParams: fetchUrlParams(location.search) }),\n ...getOccupationTotals({ infantAge: dataSource.infantAge, occupation }),\n hotelCurrency: dataSource.currency,\n locale,\n }).catch(() => {});\n const selectableExtras = extras.some(({ included } = {}) => !included);\n\n if (selectableExtras) setExtras(extras);\n else handleCheckout(cart, extras);\n };\n\n const handleCheckout = (cart = [], extras = []) => {\n document.location.href = getForwarderUrl({\n cart,\n clubDiscount,\n currency,\n extras,\n forwarder,\n session,\n urlParams: fetchUrlParams(location.search),\n });\n };\n\n const { contentBackground } = Theme.get();\n const features = getFeatures(id, urlParams);\n const multiRoom = occupation?.length > 1;\n const nights = dateDiff(calendar[0], calendar[1]).days;\n const response = dataSource !== undefined;\n const roomSelectorProps = { cart, occupation, room, onPress: setRoom };\n const showStrictSearch = !!finder?.promocode || !!urlParams?.idoffers || urlParams?.roomTypeId;\n\n return (\n <>\n <Header currency locale login name />\n\n <View\n ref={refRoomSelector}\n className={styles(style.finder, style.blur, (!multiRoom || responseError) && style.sticky)}\n style={!isMobile ? { backgroundColor: opacity(contentBackground, 0.66) } : undefined}\n >\n <Finder assisted={!isMobile} compacted text={translate(L10N.ACTION_SEARCH)} onSubmit={handleFinder} />\n </View>\n\n <Progress indeterminate visible={fetching && !responseError} className={style.progress} />\n\n {isMobile && !responseError && <RoomSelector {...roomSelectorProps} />}\n\n <View role=\"rates\" testId={others.testId} className={styles(style.container, others.className)}>\n <View className={[style.wrapper, style.content]}>\n {!responseError && <Content {...dataSource} {...others} />}\n\n {(response || (multiRoom && !responseError)) && (\n <RatesHeader\n {...{\n clubDiscount,\n dataSource,\n features,\n multiRoom,\n showStrictSearch,\n strictSearch,\n onClubDiscount: handleClubDiscount,\n onSelect: handleSelect,\n onStrictSearch: handleStrictSearch,\n }}\n >\n {!isMobile && <RoomSelector {...roomSelectorProps} />}\n </RatesHeader>\n )}\n\n {response ? (\n <View row={!isMobile} className={style.items}>\n {dataSource.items?.map(({ id, ...item }, index) => (\n <Item\n key={`${id || index}:${fetching}:${width}`}\n {...{ id, cart, ...item, features, multiRoom, nights, room, taxesType: dataSource.taxesType }}\n selected={cart[room || 0]}\n onMoreInfo={() => setItemInfo(item)}\n onRateInfo={(rate) => setItemRateInfo({ ...rate, name: item.name })}\n onSelect={handleSelect}\n onViewUrl={(info) => setItemUrl(info)}\n />\n ))}\n\n {dataSource.hotels?.map((item = {}) => (\n <CardHotel key={item.id} {...item} />\n ))}\n </View>\n ) : responseError ? (\n <Unavailability {...responseError} />\n ) : (\n <Skeleton multiRoom={multiRoom} />\n )}\n </View>\n\n {multiRoom && (\n <Footer {...{ cart, dataSource, extras, login, occupation }} onSubmit={() => handleSubmit(cart)} />\n )}\n </View>\n\n {response && (\n <>\n <ModalItemInfo\n {...{ ...itemInfo, features, room }}\n visible={!!itemInfo}\n onClose={() => setItemInfo()}\n onViewUrl={(info) => setItemUrl(info)}\n />\n <ModalItemRateInfo {...itemRateInfo} visible={!!itemRateInfo} onClose={() => setItemRateInfo()} />\n <ModalItemUrl {...itemUrl} visible={!!itemUrl} onClose={() => setItemUrl()} />\n <ModalExtras\n {...{ ...dataSource, cart, extras }}\n visible={!!extras}\n onCancel={() => (multiRoom ? setExtras() : handleSelect())}\n onSubmit={(extras) => handleCheckout(cart, extras)}\n />\n {club.active && dataSource.items?.length > 0 && (\n <ModalLogin\n showSignup={false}\n title={translate(L10N.LABEL_FARE_EXCLUSIVE_MEMBERS)}\n visible={login}\n onClose={() => (multiRoom ? setLogin(false) : handleSelect())}\n onSuccess={() => handleSubmit(cart)}\n >\n <ClubRate onCancel={() => handleClubDiscount(false)} onSubmit={() => handleSubmit(cart)} />\n </ModalLogin>\n )}\n </>\n )}\n </>\n );\n};\n\nRates.displayName = 'Mirai:Core:Rates';\n\nRates.propTypes = {\n skeleton: PropTypes.bool,\n};\n\nexport { Rates };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Rates.js","names":["_dataSources","require","_locale","_services","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_helpers","_Rates","_Rates2","_Rates3","_Rates4","_Rates5","style","_Rates6","_Rates7","_Rates8","_helpers2","_services2","_Finder","_Header","_helpers3","_SessionLogin","_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","loginShown","Rates","_ref","_dataSource$items","_dataSource$hotels","_dataSource$items2","skeleton","others","isMobile","width","useDevice","translate","useLocale","refRoomSelector","useRef","value","club","discount","currency","finder","forwarder","hotel","id","language","locale","occupation","maxRooms","rates","cart","storeCart","session","urlParams","useStore","setCart","useState","clubDiscount","setClubDiscount","dataSource","setDataSource","extras","setExtras","fetching","setFetching","undefined","itemInfo","setItemInfo","itemRateInfo","setItemRateInfo","itemUrl","setItemUrl","login","setLogin","responseError","setResponseError","room","setRoom","strictSearch","setStrictSearch","calendar","place","useEffect","counts","reduce","total","current","getBoard","items","map","_ref2","boards","name","roomName","board","flat","find","validStoreCart","filter","_getBoard","_getBoard2","minSelected","maxSelected","handleSelect","debounceFetch","multiRoom","offsetHeight","offsetTop","document","documentElement","scrollTo","top","behavior","trackDataSource","fetchUrlParams","location","search","fetch","nextOccupation","Event","publish","EVENT","FINDER","checkin","nights","parties","getFinderParams","replaceUrlParams","params","selectedIds","join","parseToParties","nextDataSource","ServiceRates","catch","externalSignout","signout","debounce","handleClubDiscount","next","handleStrictSearch","handleFinder","values","window","nextCart","trackSelectItem","handleSubmit","isPestana","ServiceFeatures","FEATURES","PESTANA","getCheckoutParams","getOccupationTotals","infantAge","hotelCurrency","selectableExtras","some","included","handleCheckout","href","getForwarderUrl","contentBackground","Theme","features","getFeatures","dateDiff","days","response","roomSelectorProps","onPress","showStrictSearch","promocode","idoffers","roomTypeId","createElement","Fragment","Header","View","ref","className","styles","blur","sticky","backgroundColor","opacity","Finder","assisted","compacted","text","L10N","ACTION_SEARCH","onSubmit","Progress","indeterminate","visible","progress","RoomSelector","role","testId","container","wrapper","content","Content","onClubDiscount","onSelect","onStrictSearch","row","_ref3","index","item","Item","concat","taxesType","selected","onMoreInfo","onRateInfo","rate","onViewUrl","info","hotels","CardHotel","Unavailability","Footer","ModalItemInfo","onClose","ModalItemRateInfo","ModalItemUrl","ModalExtras","onCancel","active","Modal","showSignup","title","LABEL_FARE_EXCLUSIVE_MEMBERS","onSuccess","ClubRate","exports","displayName","propTypes","PropTypes","bool"],"sources":["../../../src/components/Rates/Rates.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { dateDiff, useLocale } from '@mirai/locale';\nimport { ServiceFeatures } from '@mirai/services';\nimport { Progress, styles, Theme, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { CardHotel, ClubRate, Item, ModalExtras, ModalItemInfo, ModalItemRateInfo, ModalItemUrl } from './components';\nimport {\n getCheckoutParams,\n getFeatures,\n getFinderParams,\n getForwarderUrl,\n signout,\n trackDataSource,\n trackSelectItem,\n} from './helpers';\nimport { FEATURES } from './Rates.constants';\nimport { Content } from './Rates.Content';\nimport { Footer } from './Rates.Footer';\nimport { Header as RatesHeader } from './Rates.Header';\nimport { L10N } from './Rates.l10n';\nimport * as style from './Rates.module.css';\nimport { RoomSelector } from './Rates.RoomSelector';\nimport Skeleton from './Rates.Skeleton';\nimport { Unavailability } from './Rates.Unavailability';\nimport { debounce, fetchUrlParams } from '../../helpers';\nimport { ServiceRates } from '../../services';\nimport { Finder } from '../Finder';\nimport { Header } from '../Header';\nimport { EVENT, getOccupationTotals, opacity, parseToParties, replaceUrlParams } from '../helpers';\nimport { Modal as ModalLogin } from '../Session/Session.Login.Modal';\n\nlet loginShown = false;\n\nconst Rates = ({ skeleton, ...others }) => {\n const { isMobile, width } = useDevice();\n const { translate } = useLocale();\n const refRoomSelector = useRef();\n const {\n set,\n value: {\n club: { discount, ...club } = {},\n currency,\n finder = {},\n forwarder,\n hotel = {},\n id,\n language,\n locale,\n occupation: { maxRooms } = {},\n rates: { cart: storeCart = [] } = {},\n session,\n urlParams,\n },\n } = useStore();\n\n const [cart, setCart] = useState([]);\n const [clubDiscount, setClubDiscount] = useState(discount);\n const [dataSource, setDataSource] = useState();\n const [extras, setExtras] = useState();\n const [fetching, setFetching] = useState(undefined);\n const [itemInfo, setItemInfo] = useState();\n const [itemRateInfo, setItemRateInfo] = useState();\n const [itemUrl, setItemUrl] = useState();\n const [login, setLogin] = useState(false);\n const [responseError, setResponseError] = useState();\n const [room, setRoom] = useState();\n const [strictSearch, setStrictSearch] = useState();\n\n const { calendar = [], occupation = [], place = {} } = finder;\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => skeleton && setFetching(true), [skeleton]);\n\n // -- hooks ----------------------------------------------------------------------------------------------------------\n useEffect(() => {\n if (!storeCart.length || !dataSource) return;\n\n const counts = storeCart.reduce((total, current) => {\n total[current] = (total[current] || 0) + 1;\n\n return total;\n }, {});\n\n const getBoard = (id) =>\n dataSource.items\n .map(({ boards = [], name: roomName }) => boards.map((board) => ({ ...board, roomName })))\n .flat()\n .find((board) => board.id === id);\n const validStoreCart = storeCart.filter(\n (id) => counts[id] >= getBoard(id)?.minSelected && counts[id] <= getBoard(id)?.maxSelected,\n );\n\n if (storeCart.length === cart.length || validStoreCart.length != storeCart.length) {\n set({ rates: undefined });\n } else {\n const board = storeCart.map((id) => getBoard(id)).find(({ id } = {}) => !!id);\n board && handleSelect(board);\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource, storeCart]);\n\n useEffect(() => {\n if (!clubDiscount && !currency && !session && strictSearch === undefined) return;\n\n setCart([]);\n setRoom(undefined);\n debounceFetch();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clubDiscount, currency, session, strictSearch]);\n\n useEffect(() => {\n if (!locale) return;\n debounceFetch(room);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [locale]);\n\n useEffect(() => {\n if (multiRoom) {\n if (room > 0) {\n const { current: { offsetHeight = 0, offsetTop = 0 } = {} } = refRoomSelector || {};\n document.documentElement.scrollTo({ top: offsetTop + (isMobile ? offsetHeight : 0), behavior: 'smooth' });\n }\n setDataSource();\n }\n\n debounceFetch(room);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [room]);\n\n useEffect(() => {\n if (!dataSource || room) return;\n trackDataSource({ ...dataSource, ...fetchUrlParams(location.search), isMobile, occupation, place });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource]);\n\n // -- methods --------------------------------------------------------------------------------------------------------\n const fetch = async (room, nextOccupation = occupation) => {\n if (skeleton) return;\n\n Event.publish(EVENT.FINDER, { calendar: undefined });\n setFetching(true);\n setResponseError();\n\n let urlParams = fetchUrlParams(location.search);\n if (!urlParams.checkin || !urlParams.nights || !urlParams.parties) {\n urlParams = { ...urlParams, ...getFinderParams({ ...finder, hotel }) };\n replaceUrlParams(urlParams);\n }\n\n const params = {\n ...urlParams,\n club,\n clubDiscount,\n id,\n locale,\n maxRooms,\n occupation: nextOccupation,\n place,\n selectedIds: cart.map(({ id } = {}) => id).join(','),\n session,\n strictSearch,\n };\n if (room !== undefined) params.parties = parseToParties([nextOccupation[room || 0]]);\n\n const nextDataSource = await ServiceRates.get(params).catch(setResponseError);\n if (nextDataSource?.externalSignout) signout({ club, language });\n else setDataSource(nextDataSource);\n\n if (nextDataSource && nextOccupation?.length > 1 && room === undefined) setRoom(0);\n\n setFetching(false);\n };\n\n const debounceFetch = debounce(fetch, 60);\n\n // -- handlers -------------------------------------------------------------------------------------------------------\n const handleClubDiscount = async (next) => {\n setClubDiscount(next);\n login && setLogin(false);\n };\n\n const handleStrictSearch = (value) => {\n setStrictSearch(value);\n };\n\n const handleFinder = (values = {}) => {\n setCart([]);\n setDataSource(undefined);\n window.scrollTo({ top: 0, behavior: 'smooth' });\n\n replaceUrlParams(getFinderParams({ ...values, hotel }));\n debounceFetch(undefined, values.occupation);\n };\n\n const handleSelect = (board, others) => {\n const nextCart = [...cart];\n nextCart[room || 0] = board ? { ...board, ...others } : undefined;\n\n if (board) {\n trackSelectItem({\n ...dataSource,\n ...fetchUrlParams(location.search),\n board,\n cart: nextCart,\n isMobile,\n occupation,\n });\n }\n\n setCart(nextCart);\n setExtras();\n login && setLogin(false);\n\n if (!multiRoom && !!board) handleSubmit(nextCart);\n if (multiRoom && board && room < occupation.length - 1) return setRoom(room + 1);\n if (multiRoom && !board) set({ rates: undefined });\n };\n\n // eslint-disable-next-line no-unused-vars\n const handleSubmit = async (cart) => {\n const isPestana = ServiceFeatures.get(FEATURES.PESTANA, id) || false;\n setLogin(false);\n\n if (!isPestana && clubDiscount && !session && !loginShown) {\n loginShown = true;\n return setLogin(true);\n }\n\n const { extras = [] } = await ServiceRates.extras({\n ...getCheckoutParams({ cart, clubDiscount, currency, forwarder, urlParams: fetchUrlParams(location.search) }),\n ...getOccupationTotals({ infantAge: dataSource.infantAge, occupation }),\n hotelCurrency: dataSource.currency,\n locale,\n }).catch(() => {});\n const selectableExtras = extras.some(({ included } = {}) => !included);\n\n if (selectableExtras) setExtras(extras);\n else handleCheckout(cart, extras);\n };\n\n const handleCheckout = (cart = [], extras = []) => {\n document.location.href = getForwarderUrl({\n cart,\n clubDiscount,\n currency,\n extras,\n forwarder,\n session,\n urlParams: fetchUrlParams(location.search),\n });\n };\n\n const { contentBackground } = Theme.get();\n const features = getFeatures(id, urlParams);\n const multiRoom = occupation?.length > 1 || storeCart.length > 0;\n const nights = dateDiff(calendar[0], calendar[1]).days;\n const response = dataSource !== undefined;\n const roomSelectorProps = { cart, occupation, room, onPress: setRoom };\n const showStrictSearch = !!finder?.promocode || !!urlParams?.idoffers || urlParams?.roomTypeId;\n\n return (\n <>\n <Header currency locale login name />\n\n <View\n ref={refRoomSelector}\n className={styles(style.finder, style.blur, (!multiRoom || responseError) && style.sticky)}\n style={!isMobile ? { backgroundColor: opacity(contentBackground, 0.66) } : undefined}\n >\n <Finder assisted={!isMobile} compacted text={translate(L10N.ACTION_SEARCH)} onSubmit={handleFinder} />\n </View>\n\n <Progress indeterminate visible={fetching && !responseError} className={style.progress} />\n\n {isMobile && !responseError && <RoomSelector {...roomSelectorProps} />}\n\n <View role=\"rates\" testId={others.testId} className={styles(style.container, others.className)}>\n <View className={[style.wrapper, style.content]}>\n {!responseError && <Content {...dataSource} {...others} />}\n\n {(response || (multiRoom && !responseError)) && (\n <RatesHeader\n {...{\n clubDiscount,\n dataSource,\n features,\n multiRoom,\n showStrictSearch,\n strictSearch,\n onClubDiscount: handleClubDiscount,\n onSelect: handleSelect,\n onStrictSearch: handleStrictSearch,\n }}\n >\n {!isMobile && <RoomSelector {...roomSelectorProps} />}\n </RatesHeader>\n )}\n\n {response ? (\n <View row={!isMobile} className={style.items}>\n {dataSource.items?.map(({ id, ...item }, index) => (\n <Item\n key={`${id || index}:${fetching}:${width}`}\n {...{ id, cart, ...item, features, multiRoom, nights, room, taxesType: dataSource.taxesType }}\n selected={cart[room || 0]}\n onMoreInfo={() => setItemInfo(item)}\n onRateInfo={(rate) => setItemRateInfo({ ...rate, name: item.name })}\n onSelect={handleSelect}\n onViewUrl={(info) => setItemUrl(info)}\n />\n ))}\n\n {dataSource.hotels?.map((item = {}) => (\n <CardHotel key={item.id} {...item} />\n ))}\n </View>\n ) : responseError ? (\n <Unavailability {...responseError} />\n ) : (\n <Skeleton multiRoom={multiRoom} />\n )}\n </View>\n\n {multiRoom && (\n <Footer {...{ cart, dataSource, extras, login, occupation }} onSubmit={() => handleSubmit(cart)} />\n )}\n </View>\n\n {response && (\n <>\n <ModalItemInfo\n {...{ ...itemInfo, features, room }}\n visible={!!itemInfo}\n onClose={() => setItemInfo()}\n onViewUrl={(info) => setItemUrl(info)}\n />\n <ModalItemRateInfo {...itemRateInfo} visible={!!itemRateInfo} onClose={() => setItemRateInfo()} />\n <ModalItemUrl {...itemUrl} visible={!!itemUrl} onClose={() => setItemUrl()} />\n <ModalExtras\n {...{ ...dataSource, cart, extras }}\n visible={!!extras}\n onCancel={() => (multiRoom ? setExtras() : handleSelect())}\n onSubmit={(extras) => handleCheckout(cart, extras)}\n />\n {club.active && dataSource.items?.length > 0 && (\n <ModalLogin\n showSignup={false}\n title={translate(L10N.LABEL_FARE_EXCLUSIVE_MEMBERS)}\n visible={login}\n onClose={() => (multiRoom ? setLogin(false) : handleSelect())}\n onSuccess={() => handleSubmit(cart)}\n >\n <ClubRate onCancel={() => handleClubDiscount(false)} onSubmit={() => handleSubmit(cart)} />\n </ModalLogin>\n )}\n </>\n )}\n </>\n );\n};\n\nRates.displayName = 'Mirai:Core:Rates';\n\nRates.propTypes = {\n skeleton: PropTypes.bool,\n};\n\nexport { Rates };\n"],"mappings":"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"}
|
|
@@ -11,7 +11,11 @@ const getCheckoutParams = function () {
|
|
|
11
11
|
currency,
|
|
12
12
|
extras = [],
|
|
13
13
|
session,
|
|
14
|
-
|
|
14
|
+
// eslint-disable-next-line no-unused-vars
|
|
15
|
+
urlParams: {
|
|
16
|
+
rates,
|
|
17
|
+
...urlParams
|
|
18
|
+
} = {} // !TODO: find best solution for discard rates url param
|
|
15
19
|
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
16
20
|
const {
|
|
17
21
|
deals,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCheckoutParams.js","names":["getCheckoutParams","cart","clubDiscount","currency","extras","session","urlParams","arguments","length","undefined","deals","hotelverse","items","totalPrice","reduce","result","id","checkoutPrice","idHotelverse","roomNumber","subjectToAvailability","idRR","replace","pushed","find","item","ids","split","amount","filter","push","offersApplied","concat","toFixed","totalExtras","total","value","applyClubDiscount","JSON","stringify","map","_ref","idExtra","included","numSelected","nights","nightsToApply","offersAppliedBySelectedRoom","roomNumberBySelectedRoom","rooms","exports"],"sources":["../../../../src/components/Rates/helpers/getCheckoutParams.js"],"sourcesContent":["export const getCheckoutParams = ({
|
|
1
|
+
{"version":3,"file":"getCheckoutParams.js","names":["getCheckoutParams","cart","clubDiscount","currency","extras","session","urlParams","rates","arguments","length","undefined","deals","hotelverse","items","totalPrice","reduce","result","id","checkoutPrice","idHotelverse","roomNumber","subjectToAvailability","idRR","replace","pushed","find","item","ids","split","amount","filter","push","offersApplied","concat","toFixed","totalExtras","total","value","applyClubDiscount","JSON","stringify","map","_ref","idExtra","included","numSelected","nights","nightsToApply","offersAppliedBySelectedRoom","roomNumberBySelectedRoom","rooms","exports"],"sources":["../../../../src/components/Rates/helpers/getCheckoutParams.js"],"sourcesContent":["export const getCheckoutParams = ({\n cart = [],\n clubDiscount,\n currency,\n extras = [],\n session,\n // eslint-disable-next-line no-unused-vars\n urlParams: { rates, ...urlParams } = {}, // !TODO: find best solution for discard rates url param\n} = {}) => {\n const { deals, hotelverse, items, totalPrice } = cart.reduce(\n (result, { id, checkoutPrice = 0, idHotelverse, roomNumber, subjectToAvailability } = {}) => {\n const idRR = id.replace(/--/g, '|');\n const pushed = result.deals.find((item) => item.idRR === idRR);\n if (pushed) return result;\n\n const ids = id.split('--');\n const { length: amount } = cart.filter((item) => item.id === id);\n\n result.deals.push({ idRR, offersApplied: ids[ids.length - 1] });\n roomNumber && result.hotelverse.push({ idRR, idHotelverse, roomNumber: [roomNumber], subjectToAvailability });\n result.items += `${result.items ? ',' : ''}${idRR}:${amount}`;\n result.totalPrice += +(amount * checkoutPrice * 100).toFixed();\n\n return result;\n },\n { deals: [], hotelverse: [], items: '', totalPrice: 0 },\n );\n\n const totalExtras = +(extras.reduce((total, { value = 0 } = {}) => total + value, 0) * 100).toFixed();\n\n return {\n ...urlParams,\n applyClubDiscount: !!session || clubDiscount,\n currency,\n extras: JSON.stringify(\n extras.map(({ id: idExtra, included = false, amount: numSelected = 0, nights: nightsToApply = 0 }) => ({\n idExtra,\n included,\n nightsToApply,\n numSelected,\n })),\n ),\n offersAppliedBySelectedRoom: JSON.stringify(deals),\n roomNumberBySelectedRoom: JSON.stringify(hotelverse),\n rooms: items,\n totalPrice: totalPrice + totalExtras,\n };\n};\n"],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ var _loyalty = _interopRequireDefault(require("./__mocks__/loyalty.json"));
|
|
|
9
9
|
var _fetchCurrency = require("./fetchCurrency");
|
|
10
10
|
var _getAccommodationType = require("./getAccommodationType");
|
|
11
11
|
var _getLocale = require("./getLocale");
|
|
12
|
+
var _getRatesCart = require("./getRatesCart");
|
|
12
13
|
var _getTags = require("./getTags");
|
|
13
14
|
var _prepareRoom = require("./prepareRoom");
|
|
14
15
|
var _themeDirection = require("./themeDirection");
|
|
@@ -257,11 +258,6 @@ const consolidateStore = async function () {
|
|
|
257
258
|
promocode: clientCode || ((_promo = promo) === null || _promo === void 0 ? void 0 : _promo.code)
|
|
258
259
|
};
|
|
259
260
|
|
|
260
|
-
// -- rates ----------------------------------------------------------------------------------------------------------
|
|
261
|
-
let rates = urlParams.rates ? {
|
|
262
|
-
cart: urlParams.rates ? JSON.parse(urlParams.rates) : undefined
|
|
263
|
-
} : undefined;
|
|
264
|
-
|
|
265
261
|
// -- forwarder ------------------------------------------------------------------------------------------------------
|
|
266
262
|
const host = "".concat(document.location.protocol, "//").concat(document.location.host);
|
|
267
263
|
const isDevelopment = process.env.NODE_ENV === 'development';
|
|
@@ -309,7 +305,7 @@ const consolidateStore = async function () {
|
|
|
309
305
|
finder,
|
|
310
306
|
lisa: undefined,
|
|
311
307
|
// ! TODO: Rename to chat
|
|
312
|
-
rates,
|
|
308
|
+
rates: (0, _getRatesCart.getRatesCart)(urlParams.rates),
|
|
313
309
|
signup: undefined
|
|
314
310
|
};
|
|
315
311
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consolidateStore.js","names":["_locale","require","_loyalty","_interopRequireDefault","_fetchCurrency","_getAccommodationType","_getLocale","_getTags","_prepareRoom","_themeDirection","_toOccupation","_Core","_process","_process$env","obj","__esModule","default","IS_JEST","process","env","JEST_WORKER_ID","consolidateStore","_config$accomodation","_config$accomodation2","_config$accomodation3","_config$accomodation4","_config$accomodation5","_config$accomodation6","_tags","_promo","_config$languages","components","config","cookies","instance","el","hotel","hotelId","id","type","session","urlParams","arguments","length","undefined","forceUri","miraiId","isRates","some","component","maxDays","maxNights","rangeMaxDays","nightsForDeal","rangeMinDays","prices","showPrices","pricesWithTaxes","pricesLegend","accomodation","calendar","TAXES","includes","TAX_DEFAULT","to","dateFormat","dateCalc","Date","CALENDAR_FORMAT","language","country","getLocale","themeDirection","currency","TYPE","HOTEL","fetchCurrency","DEFAULT_CURRENCY","club","discount","discountEnabled","rates","variants","active","authentication","idClub","name","conditionsUrl","conditions","privacyPolicyUrl","privacy","applyClubDiscount","idtokenprovider","idHotel","CHAIN","variantDiscount","variantRates","find","toString","url","filter","map","enabled","accommodationType","getAccommodationType","lodgingDenomination","features","home","window","location","origin","warningAvailability","minRoomsEngineNotification","hotels","Object","entries","_ref","key","occupation","dataSource","ADULT","min","age","CHILD","fulfill","maxRooms","rooms","maxOccupation","commissionCode","hsri","COMMISSION_TYPE","chainSelector","tags","placeHolder","trees","options","getTags","placeholder","chainSelectorValue","checkin","clientCode","nights","parties","parseDate","UTC","checkout","parseInt","promo","showPromoNav","configPromo","promoText","place","value","Number","finder","toOccupation","places","prepareRoom","promocode","code","cart","JSON","parse","host","concat","document","protocol","isDevelopment","NODE_ENV","forwarder","SERVICE_BOOKING","booking","signup","SERVICE_USER","profile","locale","DEFAULT_LOCALE","locales","languages","COUNTRIES","reduce","_ref2","props","loyalty","MOCK_LOYALTY","deals","lisa","exports"],"sources":["../../src/helpers/consolidateStore.js"],"sourcesContent":["import { COUNTRIES, dateCalc, dateFormat, DEFAULT_CURRENCY, DEFAULT_LOCALE, parseDate, UTC } from '@mirai/locale';\n\nimport MOCK_LOYALTY from './__mocks__/loyalty.json';\nimport { fetchCurrency } from './fetchCurrency';\nimport { getAccommodationType } from './getAccommodationType';\nimport { getLocale } from './getLocale';\nimport { getTags } from './getTags';\nimport { prepareRoom } from './prepareRoom';\nimport { themeDirection } from './themeDirection';\nimport { toOccupation } from './toOccupation';\nimport { CALENDAR_FORMAT, COMMISSION_TYPE, TAX_DEFAULT, TAXES, TYPE } from '../Core.constants';\n\nconst IS_JEST = !!process?.env?.JEST_WORKER_ID;\n\n/* eslint-disable no-unused-vars */\nexport const consolidateStore = async ({\n components = [],\n config = {},\n cookies = {},\n instance: { el, hotel: hotelId, id, type, ...instance } = {},\n session,\n urlParams = {},\n} = {}) => {\n const { forceUri = false, miraiId } = urlParams;\n const isRates = components.some(({ component } = {}) => component === 'rates');\n\n // -- calendar -------------------------------------------------------------------------------------------------------\n const {\n maxDays = 365,\n maxNights: rangeMaxDays = 31,\n nightsForDeal: rangeMinDays,\n prices: showPrices = false,\n pricesWithTaxes: pricesLegend,\n } = config.accomodation?.calendar || {};\n const calendar = {\n rangeMaxDays,\n rangeMinDays,\n pricesLegend: TAXES.includes(pricesLegend) ? pricesLegend : showPrices ? TAX_DEFAULT : undefined,\n showPrices,\n to: !IS_JEST ? dateFormat(dateCalc(new Date(), maxDays, 'days'), CALENDAR_FORMAT) : undefined,\n };\n\n // -- language & country ---------------------------------------------------------------------------------------------\n // language & country\n const [language, country] = getLocale(instance, urlParams);\n themeDirection(language);\n\n // -- currency -------------------------------------------------------------------------------------------------------\n const currency =\n (forceUri ? urlParams.currency : undefined) ||\n cookies.currency ||\n urlParams.currency ||\n instance.currency ||\n (type === TYPE.HOTEL && !IS_JEST ? await fetchCurrency(id) : DEFAULT_CURRENCY);\n\n // -- club -----------------------------------------------------------------------------------------------------------\n let club;\n if (config.club) {\n let {\n accomodation: { club: { discount: discountEnabled = false, rates = false } = {}, variants = [] },\n club: {\n club: { active, authentication, idClub: id, name },\n conditionsUrl: conditions,\n privacyPolicyUrl: privacy,\n },\n } = config;\n\n let discount;\n let { applyClubDiscount, idtokenprovider: idHotel = '' } = urlParams;\n discount = applyClubDiscount;\n if (discount === undefined) {\n discount = rates;\n if (type === TYPE.CHAIN) {\n let { discount: variantDiscount, rates: variantRates } =\n variants.find(({ id = '' } = {}) => id.toString() === idHotel.toString()) || {};\n discountEnabled = variantDiscount || discountEnabled;\n discount = variantRates || rates;\n }\n }\n\n club = {\n active,\n authentication,\n discount: active && discountEnabled ? discount : undefined,\n id,\n name,\n url: { conditions, privacy },\n variants: variants\n .filter(({ club } = {}) => club)\n .map(({ club: { discount: enabled, rates: active } = {}, id } = {}) => ({ active, enabled, id })),\n };\n }\n\n // -- hotel ----------------------------------------------------------------------------------------------------------\n const hotel = {\n accommodationType: getAccommodationType(config.lodgingDenomination, hotelId),\n features: config.accomodation?.features || {},\n id: type === TYPE.CHAIN ? hotelId : id,\n url: urlParams.home || window.location.origin,\n warningAvailability: config.minRoomsEngineNotification,\n };\n\n if (type === TYPE.CHAIN) {\n const { hotels = {} } = config;\n hotel.variants = {};\n\n Object.entries(hotels).map(([key, { lodgingDenomination: accommodationType }]) => {\n hotel.variants[key] = { accommodationType };\n });\n }\n\n // -- occupation -----------------------------------------------------------------------------------------------------\n const occupation = {\n dataSource: config.accomodation?.occupation || [\n { type: TYPE.ADULT, min: 1, age: [18] },\n { type: TYPE.CHILD, age: [0, 17], fulfill: true },\n ],\n maxRooms: config.accomodation?.rooms?.maxOccupation,\n variants: config.accomodation?.variants || [],\n };\n\n // -- origin ---------------------------------------------------------------------------------------------------------\n const origin = {\n commissionCode: urlParams.hsri || COMMISSION_TYPE[type],\n };\n\n // -- tags -----------------------------------------------------------------------------------------------------------\n const { chainSelector } = config;\n let tags;\n if (type === TYPE.CHAIN && chainSelector) {\n const { placeHolder = {}, trees = [] } = chainSelector;\n tags = { options: getTags(trees, language), placeholder: placeHolder[language] };\n }\n\n // -- finder ---------------------------------------------------------------------------------------------------------\n let { chainSelectorValue, checkin, clientCode, nights = isRates ? 1 : 0, parties } = urlParams;\n checkin = checkin ? parseDate(checkin) : isRates ? UTC(new Date()) : undefined;\n let checkout;\n\n if (checkin) checkout = dateCalc(checkin, parseInt(nights), 'days');\n\n let promo;\n if (config.showPromoNav) {\n const { accomodation: { promo: configPromo = {} } = {}, promoText: placeholder = {} } = config;\n promo = { ...configPromo, placeholder };\n }\n\n let place;\n if (chainSelectorValue && tags) {\n place = tags.options.find(({ value } = {}) => value === Number(chainSelectorValue));\n\n const { id: [id] = [] } = place || {};\n const { accommodationType } = hotel.variants[id] || {};\n if (accommodationType) hotel.accommodationType = accommodationType;\n }\n\n let finder = {\n place,\n calendar: checkin ? [checkin, checkout] : [],\n occupation: parties\n ? toOccupation({ chainSelectorValue, occupation, parties, places: tags?.options })\n : isRates\n ? [prepareRoom(occupation.dataSource)]\n : undefined,\n promocode: clientCode || promo?.code,\n };\n\n // -- rates ----------------------------------------------------------------------------------------------------------\n let rates = urlParams.rates ? { cart: urlParams.rates ? JSON.parse(urlParams.rates) : undefined } : undefined;\n\n // -- forwarder ------------------------------------------------------------------------------------------------------\n const host = `${document.location.protocol}//${document.location.host}`;\n const isDevelopment = process.env.NODE_ENV === 'development';\n const forwarder = {\n rates: miraiId ? `${host}/step1-rates` : `${process.env.SERVICE_BOOKING}/miraiFrontDispatcher.htm`,\n checkout: miraiId ? `${host}/step2-checkout` : `${process.env.SERVICE_BOOKING}/forwarder_client_form.htm`,\n booking: miraiId ? `${host}/step3-booking` : `${process.env.SERVICE_BOOKING}/forwarder_manage_reservation.htm`,\n signup:\n miraiId || isDevelopment\n ? `${host}/signup`\n : `${process.env.SERVICE_USER}/club/v1/forwarder/registration_process`,\n profile:\n miraiId || isDevelopment ? `${host}/profile` : `${process.env.SERVICE_USER}/club/v1/forwarder/members_area`,\n };\n\n return {\n config,\n cookies,\n urlParams,\n ...instance,\n id,\n type,\n\n // region\n currency,\n language,\n country,\n locale: language && country ? `${language}-${country}` : DEFAULT_LOCALE,\n locales: config.languages\n ?.map((language) => (language === 'no' ? 'nb' : language))\n .map((language) => `${language}-${COUNTRIES[language]}`),\n\n // entities,\n calendar,\n club,\n components: components.reduce((value, { component, ...props }) => {\n value[component] = props;\n return value;\n }, {}),\n forwarder,\n hotel,\n loyalty: IS_JEST ? undefined : MOCK_LOYALTY,\n occupation,\n origin,\n promo,\n session,\n tags,\n // -- components\n deals: undefined,\n finder,\n lisa: undefined, // ! TODO: Rename to chat\n rates,\n signup: undefined,\n };\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"consolidateStore.js","names":["_locale","require","_loyalty","_interopRequireDefault","_fetchCurrency","_getAccommodationType","_getLocale","_getRatesCart","_getTags","_prepareRoom","_themeDirection","_toOccupation","_Core","_process","_process$env","obj","__esModule","default","IS_JEST","process","env","JEST_WORKER_ID","consolidateStore","_config$accomodation","_config$accomodation2","_config$accomodation3","_config$accomodation4","_config$accomodation5","_config$accomodation6","_tags","_promo","_config$languages","components","config","cookies","instance","el","hotel","hotelId","id","type","session","urlParams","arguments","length","undefined","forceUri","miraiId","isRates","some","component","maxDays","maxNights","rangeMaxDays","nightsForDeal","rangeMinDays","prices","showPrices","pricesWithTaxes","pricesLegend","accomodation","calendar","TAXES","includes","TAX_DEFAULT","to","dateFormat","dateCalc","Date","CALENDAR_FORMAT","language","country","getLocale","themeDirection","currency","TYPE","HOTEL","fetchCurrency","DEFAULT_CURRENCY","club","discount","discountEnabled","rates","variants","active","authentication","idClub","name","conditionsUrl","conditions","privacyPolicyUrl","privacy","applyClubDiscount","idtokenprovider","idHotel","CHAIN","variantDiscount","variantRates","find","toString","url","filter","map","enabled","accommodationType","getAccommodationType","lodgingDenomination","features","home","window","location","origin","warningAvailability","minRoomsEngineNotification","hotels","Object","entries","_ref","key","occupation","dataSource","ADULT","min","age","CHILD","fulfill","maxRooms","rooms","maxOccupation","commissionCode","hsri","COMMISSION_TYPE","chainSelector","tags","placeHolder","trees","options","getTags","placeholder","chainSelectorValue","checkin","clientCode","nights","parties","parseDate","UTC","checkout","parseInt","promo","showPromoNav","configPromo","promoText","place","value","Number","finder","toOccupation","places","prepareRoom","promocode","code","host","concat","document","protocol","isDevelopment","NODE_ENV","forwarder","SERVICE_BOOKING","booking","signup","SERVICE_USER","profile","locale","DEFAULT_LOCALE","locales","languages","COUNTRIES","reduce","_ref2","props","loyalty","MOCK_LOYALTY","deals","lisa","getRatesCart","exports"],"sources":["../../src/helpers/consolidateStore.js"],"sourcesContent":["import { COUNTRIES, dateCalc, dateFormat, DEFAULT_CURRENCY, DEFAULT_LOCALE, parseDate, UTC } from '@mirai/locale';\n\nimport MOCK_LOYALTY from './__mocks__/loyalty.json';\nimport { fetchCurrency } from './fetchCurrency';\nimport { getAccommodationType } from './getAccommodationType';\nimport { getLocale } from './getLocale';\nimport { getRatesCart } from './getRatesCart';\nimport { getTags } from './getTags';\nimport { prepareRoom } from './prepareRoom';\nimport { themeDirection } from './themeDirection';\nimport { toOccupation } from './toOccupation';\nimport { CALENDAR_FORMAT, COMMISSION_TYPE, TAX_DEFAULT, TAXES, TYPE } from '../Core.constants';\n\nconst IS_JEST = !!process?.env?.JEST_WORKER_ID;\n\n/* eslint-disable no-unused-vars */\nexport const consolidateStore = async ({\n components = [],\n config = {},\n cookies = {},\n instance: { el, hotel: hotelId, id, type, ...instance } = {},\n session,\n urlParams = {},\n} = {}) => {\n const { forceUri = false, miraiId } = urlParams;\n const isRates = components.some(({ component } = {}) => component === 'rates');\n\n // -- calendar -------------------------------------------------------------------------------------------------------\n const {\n maxDays = 365,\n maxNights: rangeMaxDays = 31,\n nightsForDeal: rangeMinDays,\n prices: showPrices = false,\n pricesWithTaxes: pricesLegend,\n } = config.accomodation?.calendar || {};\n const calendar = {\n rangeMaxDays,\n rangeMinDays,\n pricesLegend: TAXES.includes(pricesLegend) ? pricesLegend : showPrices ? TAX_DEFAULT : undefined,\n showPrices,\n to: !IS_JEST ? dateFormat(dateCalc(new Date(), maxDays, 'days'), CALENDAR_FORMAT) : undefined,\n };\n\n // -- language & country ---------------------------------------------------------------------------------------------\n // language & country\n const [language, country] = getLocale(instance, urlParams);\n themeDirection(language);\n\n // -- currency -------------------------------------------------------------------------------------------------------\n const currency =\n (forceUri ? urlParams.currency : undefined) ||\n cookies.currency ||\n urlParams.currency ||\n instance.currency ||\n (type === TYPE.HOTEL && !IS_JEST ? await fetchCurrency(id) : DEFAULT_CURRENCY);\n\n // -- club -----------------------------------------------------------------------------------------------------------\n let club;\n if (config.club) {\n let {\n accomodation: { club: { discount: discountEnabled = false, rates = false } = {}, variants = [] },\n club: {\n club: { active, authentication, idClub: id, name },\n conditionsUrl: conditions,\n privacyPolicyUrl: privacy,\n },\n } = config;\n\n let discount;\n let { applyClubDiscount, idtokenprovider: idHotel = '' } = urlParams;\n discount = applyClubDiscount;\n if (discount === undefined) {\n discount = rates;\n if (type === TYPE.CHAIN) {\n let { discount: variantDiscount, rates: variantRates } =\n variants.find(({ id = '' } = {}) => id.toString() === idHotel.toString()) || {};\n discountEnabled = variantDiscount || discountEnabled;\n discount = variantRates || rates;\n }\n }\n\n club = {\n active,\n authentication,\n discount: active && discountEnabled ? discount : undefined,\n id,\n name,\n url: { conditions, privacy },\n variants: variants\n .filter(({ club } = {}) => club)\n .map(({ club: { discount: enabled, rates: active } = {}, id } = {}) => ({ active, enabled, id })),\n };\n }\n\n // -- hotel ----------------------------------------------------------------------------------------------------------\n const hotel = {\n accommodationType: getAccommodationType(config.lodgingDenomination, hotelId),\n features: config.accomodation?.features || {},\n id: type === TYPE.CHAIN ? hotelId : id,\n url: urlParams.home || window.location.origin,\n warningAvailability: config.minRoomsEngineNotification,\n };\n\n if (type === TYPE.CHAIN) {\n const { hotels = {} } = config;\n hotel.variants = {};\n\n Object.entries(hotels).map(([key, { lodgingDenomination: accommodationType }]) => {\n hotel.variants[key] = { accommodationType };\n });\n }\n\n // -- occupation -----------------------------------------------------------------------------------------------------\n const occupation = {\n dataSource: config.accomodation?.occupation || [\n { type: TYPE.ADULT, min: 1, age: [18] },\n { type: TYPE.CHILD, age: [0, 17], fulfill: true },\n ],\n maxRooms: config.accomodation?.rooms?.maxOccupation,\n variants: config.accomodation?.variants || [],\n };\n\n // -- origin ---------------------------------------------------------------------------------------------------------\n const origin = {\n commissionCode: urlParams.hsri || COMMISSION_TYPE[type],\n };\n\n // -- tags -----------------------------------------------------------------------------------------------------------\n const { chainSelector } = config;\n let tags;\n if (type === TYPE.CHAIN && chainSelector) {\n const { placeHolder = {}, trees = [] } = chainSelector;\n tags = { options: getTags(trees, language), placeholder: placeHolder[language] };\n }\n\n // -- finder ---------------------------------------------------------------------------------------------------------\n let { chainSelectorValue, checkin, clientCode, nights = isRates ? 1 : 0, parties } = urlParams;\n checkin = checkin ? parseDate(checkin) : isRates ? UTC(new Date()) : undefined;\n let checkout;\n\n if (checkin) checkout = dateCalc(checkin, parseInt(nights), 'days');\n\n let promo;\n if (config.showPromoNav) {\n const { accomodation: { promo: configPromo = {} } = {}, promoText: placeholder = {} } = config;\n promo = { ...configPromo, placeholder };\n }\n\n let place;\n if (chainSelectorValue && tags) {\n place = tags.options.find(({ value } = {}) => value === Number(chainSelectorValue));\n\n const { id: [id] = [] } = place || {};\n const { accommodationType } = hotel.variants[id] || {};\n if (accommodationType) hotel.accommodationType = accommodationType;\n }\n\n let finder = {\n place,\n calendar: checkin ? [checkin, checkout] : [],\n occupation: parties\n ? toOccupation({ chainSelectorValue, occupation, parties, places: tags?.options })\n : isRates\n ? [prepareRoom(occupation.dataSource)]\n : undefined,\n promocode: clientCode || promo?.code,\n };\n\n // -- forwarder ------------------------------------------------------------------------------------------------------\n const host = `${document.location.protocol}//${document.location.host}`;\n const isDevelopment = process.env.NODE_ENV === 'development';\n const forwarder = {\n rates: miraiId ? `${host}/step1-rates` : `${process.env.SERVICE_BOOKING}/miraiFrontDispatcher.htm`,\n checkout: miraiId ? `${host}/step2-checkout` : `${process.env.SERVICE_BOOKING}/forwarder_client_form.htm`,\n booking: miraiId ? `${host}/step3-booking` : `${process.env.SERVICE_BOOKING}/forwarder_manage_reservation.htm`,\n signup:\n miraiId || isDevelopment\n ? `${host}/signup`\n : `${process.env.SERVICE_USER}/club/v1/forwarder/registration_process`,\n profile:\n miraiId || isDevelopment ? `${host}/profile` : `${process.env.SERVICE_USER}/club/v1/forwarder/members_area`,\n };\n\n return {\n config,\n cookies,\n urlParams,\n ...instance,\n id,\n type,\n\n // region\n currency,\n language,\n country,\n locale: language && country ? `${language}-${country}` : DEFAULT_LOCALE,\n locales: config.languages\n ?.map((language) => (language === 'no' ? 'nb' : language))\n .map((language) => `${language}-${COUNTRIES[language]}`),\n\n // entities,\n calendar,\n club,\n components: components.reduce((value, { component, ...props }) => {\n value[component] = props;\n return value;\n }, {}),\n forwarder,\n hotel,\n loyalty: IS_JEST ? undefined : MOCK_LOYALTY,\n occupation,\n origin,\n promo,\n session,\n tags,\n // -- components\n deals: undefined,\n finder,\n lisa: undefined, // ! TODO: Rename to chat\n rates: getRatesCart(urlParams.rates),\n signup: undefined,\n };\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getRatesCart = void 0;
|
|
7
|
+
const ID_SEPARATOR = '--';
|
|
8
|
+
const getRatesCart = value => {
|
|
9
|
+
if (!value) return;
|
|
10
|
+
const cart = value.split('_').map(id => window.atob(id).replace(/[|]/g, ID_SEPARATOR)).filter(id => id.includes(ID_SEPARATOR));
|
|
11
|
+
if (cart.length) return {
|
|
12
|
+
cart
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
exports.getRatesCart = getRatesCart;
|
|
16
|
+
//# sourceMappingURL=getRatesCart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getRatesCart.js","names":["ID_SEPARATOR","getRatesCart","value","cart","split","map","id","window","atob","replace","filter","includes","length","exports"],"sources":["../../src/helpers/getRatesCart.js"],"sourcesContent":["const ID_SEPARATOR = '--';\n\nexport const getRatesCart = (value) => {\n if (!value) return;\n\n const cart = value\n .split('_')\n .map((id) => window.atob(id).replace(/[|]/g, ID_SEPARATOR))\n .filter((id) => id.includes(ID_SEPARATOR));\n\n if (cart.length) return { cart };\n};\n"],"mappings":";;;;;;AAAA,MAAMA,YAAY,GAAG,IAAI;AAElB,MAAMC,YAAY,GAAIC,KAAK,IAAK;EACrC,IAAI,CAACA,KAAK,EAAE;EAEZ,MAAMC,IAAI,GAAGD,KAAK,CACfE,KAAK,CAAC,GAAG,CAAC,CACVC,GAAG,CAAEC,EAAE,IAAKC,MAAM,CAACC,IAAI,CAACF,EAAE,CAAC,CAACG,OAAO,CAAC,MAAM,EAAET,YAAY,CAAC,CAAC,CAC1DU,MAAM,CAAEJ,EAAE,IAAKA,EAAE,CAACK,QAAQ,CAACX,YAAY,CAAC,CAAC;EAE5C,IAAIG,IAAI,CAACS,MAAM,EAAE,OAAO;IAAET;EAAK,CAAC;AAClC,CAAC;AAACU,OAAA,CAAAZ,YAAA,GAAAA,YAAA"}
|