@mirai/core 0.3.199 → 0.3.201

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.
Files changed (54) hide show
  1. package/build/Core.js +46 -19
  2. package/build/Core.js.map +1 -1
  3. package/build/components/Chat/components/InputRich/InputRich.js +1 -1
  4. package/build/components/Chat/components/InputRich/InputRich.js.map +1 -1
  5. package/build/components/Rates/Rates.js +82 -108
  6. package/build/components/Rates/Rates.js.map +1 -1
  7. package/build/components/Rates/components/CardHotel/CardHotel.js +3 -3
  8. package/build/components/Rates/components/CardHotel/CardHotel.js.map +1 -1
  9. package/build/components/Rates/components/Hotelverse/Hotelverse.js +16 -26
  10. package/build/components/Rates/components/Hotelverse/Hotelverse.js.map +1 -1
  11. package/build/components/Rates/components/Item/Item.Preview.js +0 -1
  12. package/build/components/Rates/components/Item/Item.Preview.js.map +1 -1
  13. package/build/components/Rates/components/Item/Item.l10n.js +3 -0
  14. package/build/components/Rates/components/Item/Item.l10n.js.map +1 -1
  15. package/build/components/Rates/components/Item/components/Amenities/Amenities.js +6 -1
  16. package/build/components/Rates/components/Item/components/Amenities/Amenities.js.map +1 -1
  17. package/build/components/Rates/components/Item/components/ModalInfo/ModalInfo.js +13 -7
  18. package/build/components/Rates/components/Item/components/ModalInfo/ModalInfo.js.map +1 -1
  19. package/build/components/Rates/components/Item/components/ModalRateInfo/ModalRateInfo.js +1 -0
  20. package/build/components/Rates/components/Item/components/ModalRateInfo/ModalRateInfo.js.map +1 -1
  21. package/build/components/Rates/components/Item/components/ModalUrl/ModalUrl.js +5 -1
  22. package/build/components/Rates/components/Item/components/ModalUrl/ModalUrl.js.map +1 -1
  23. package/build/components/Rates/components/Item/components/Slider/Slider.js +3 -2
  24. package/build/components/Rates/components/Item/components/Slider/Slider.js.map +1 -1
  25. package/build/components/Rates/components/ModalExtras/ModalExtras.js +1 -0
  26. package/build/components/Rates/components/ModalExtras/ModalExtras.js.map +1 -1
  27. package/build/components/Rates/helpers/getFinderParams.js +3 -8
  28. package/build/components/Rates/helpers/getFinderParams.js.map +1 -1
  29. package/build/components/__shared__/SelectEnvironment/SelectEnvironment.js +23 -4
  30. package/build/components/__shared__/SelectEnvironment/SelectEnvironment.js.map +1 -1
  31. package/build/components/helpers/ICON.js +4 -4
  32. package/build/components/helpers/ICON.js.map +1 -1
  33. package/build/components/helpers/constants.js +1 -0
  34. package/build/components/helpers/constants.js.map +1 -1
  35. package/build/components/helpers/index.js +11 -0
  36. package/build/components/helpers/index.js.map +1 -1
  37. package/build/components/helpers/replaceUrlParams.js +18 -0
  38. package/build/components/helpers/replaceUrlParams.js.map +1 -0
  39. package/build/helpers/consolidateStore.js +2 -1
  40. package/build/helpers/consolidateStore.js.map +1 -1
  41. package/build/helpers/debounce.js +21 -0
  42. package/build/helpers/debounce.js.map +1 -0
  43. package/build/helpers/index.js +11 -0
  44. package/build/helpers/index.js.map +1 -1
  45. package/build/services/Rates/get.js +1 -6
  46. package/build/services/Rates/get.js.map +1 -1
  47. package/build/services/Rates/helpers/parseBoards.js +1 -1
  48. package/build/services/Rates/helpers/parseBoards.js.map +1 -1
  49. package/build/services/Rates/hotels.js +1 -4
  50. package/build/services/Rates/hotels.js.map +1 -1
  51. package/build/services/Rates/rates.js +2 -0
  52. package/build/services/Rates/rates.js.map +1 -1
  53. package/package.json +1 -1
  54. package/public/App.Container.jsx +1 -1
@@ -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","_services2","_Finder","_helpers2","_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","rates","cart","storeCart","session","urlParams","useStore","calendar","occupation","place","setCart","useState","clubDiscount","setClubDiscount","dataSource","setDataSource","extras","setExtras","fetching","setFetching","undefined","itemInfo","setItemInfo","itemRateInfo","setItemRateInfo","itemUrl","setItemUrl","login","setLogin","responseError","setResponseError","room","setRoom","useEffect","callback","fetch","Event","subscribe","EVENT","INTENT_CURRENCY","unsubscribe","boards","items","map","_ref2","name","roomName","board","flat","nextCart","find","filter","console","log","replaceHistory","multiRoom","current","offsetHeight","offsetTop","document","documentElement","scrollTo","top","behavior","getNextUrlParams","trackDataSource","nextClubDiscount","params","publish","FINDER","nextParams","parties","parseToParties","nextDataSource","ServiceRates","catch","externalSignout","signout","JSON","stringify","history","replaceState","toUrlParams","lang","getFinderParams","handleFinder","values","window","handleClubDiscount","next","handleSelect","handleSubmit","isPestana","ServiceFeatures","FEATURES","PESTANA","getCheckoutParams","hotelCurrency","selectableExtras","some","included","handleCheckout","location","href","getForwarderUrl","contentBackground","Theme","features","getFeatures","nights","dateDiff","days","response","roomSelectorProps","onPress","createElement","Fragment","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","Header","onClubDiscount","onSelect","row","_ref3","index","item","Item","concat","taxesType","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 { getCheckoutParams, getFeatures, getFinderParams, getForwarderUrl, signout, trackDataSource } from './helpers';\nimport { FEATURES } from './Rates.constants';\nimport { Content } from './Rates.Content';\nimport { Footer } from './Rates.Footer';\nimport { Header } 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 { ServiceRates } from '../../services';\nimport { Finder } from '../Finder';\nimport { EVENT, opacity, parseToParties, toUrlParams } 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 rates: { cart: storeCart = [] } = {},\n session,\n urlParams,\n },\n } = useStore();\n\n const { calendar = [], occupation = [], place = {} } = finder;\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\n useEffect(() => {\n const callback = async ({ currency } = {}) => {\n set({ currency });\n // ! TODO: Here locale is not correct\n await fetch(currency, clubDiscount, undefined, room);\n };\n\n Event.subscribe(EVENT.INTENT_CURRENCY, callback);\n return () => Event.unsubscribe(EVENT.INTENT_CURRENCY, callback);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => skeleton && setFetching(true), [skeleton]);\n\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 // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => currency && locale && replaceHistory(), [currency, 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 fetch(currency, undefined, getNextUrlParams(), room);\n replaceHistory();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [finder, locale, room, session]);\n\n useEffect(() => {\n if (!dataSource || room) return;\n\n trackDataSource({ ...dataSource, ...urlParams, isMobile, occupation, place });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource]);\n\n const fetch = async (currency, nextClubDiscount = clubDiscount, params = urlParams, room) => {\n if (skeleton || (!multiRoom && room !== undefined)) return;\n\n Event.publish(EVENT.FINDER, { calendar: undefined });\n\n setFetching(true);\n setResponseError();\n\n const nextParams = {\n ...params,\n club,\n clubDiscount: nextClubDiscount,\n currency,\n id,\n locale,\n occupation,\n place,\n session,\n };\n if (room !== undefined) nextParams.parties = parseToParties([occupation[room]]);\n\n const nextDataSource = await ServiceRates.get(nextParams).catch(setResponseError);\n if (nextDataSource?.externalSignout) signout({ club, language });\n else setDataSource(nextDataSource);\n\n if (nextDataSource && multiRoom && room === undefined) setRoom(0);\n\n setFetching(false);\n };\n\n const replaceHistory = (nextParams = getNextUrlParams() || {}, nextCart = cart || []) => {\n if (nextCart.length) nextParams.rates = JSON.stringify(nextCart.map(({ id } = {}) => id));\n else if (nextParams.rates) nextParams.rates = undefined;\n\n history.replaceState({}, '', toUrlParams({ ...nextParams, currency, lang: language, locale }));\n };\n\n const getNextUrlParams = () => getFinderParams({ ...urlParams, ...finder, currency, locale, hotel });\n\n const handleFinder = (values) => {\n setCart([]);\n setDataSource(undefined);\n setRoom(undefined);\n window.scrollTo({ top: 0, behavior: 'smooth' });\n\n const params = getFinderParams({ ...urlParams, ...values, currency, locale, hotel });\n replaceHistory(params);\n };\n\n const handleClubDiscount = async (next) => {\n setCart([]);\n setClubDiscount(next);\n login && setLogin(false);\n\n await fetch(currency, next, undefined, room);\n };\n\n const handleSelect = (board, others) => {\n const nextCart = [...cart];\n nextCart[room || 0] = board ? { ...board, ...others } : undefined;\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) replaceHistory(undefined, 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 replaceHistory(undefined, cart);\n\n const { extras = [] } = await ServiceRates.extras({\n ...getCheckoutParams({ cart, clubDiscount, currency, forwarder, urlParams: getNextUrlParams() }),\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 const urlParams = getNextUrlParams();\n document.location.href = getForwarderUrl({ cart, clubDiscount, currency, extras, forwarder, session, urlParams });\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\n return (\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 {response && !responseError && <Content {...dataSource} {...others} />}\n\n {(response || (multiRoom && !responseError)) && (\n <Header\n {...{\n clubDiscount,\n dataSource,\n features,\n multiRoom,\n onClubDiscount: handleClubDiscount,\n onSelect: handleSelect,\n }}\n >\n {!isMobile && <RoomSelector {...roomSelectorProps} />}\n </Header>\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, ...item, features, multiRoom, nights, room, taxesType: dataSource.taxesType }}\n cart={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 && <Footer {...{ cart, dataSource, extras, occupation }} onSubmit={() => handleSubmit(cart)} />}\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={() => 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","_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","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","calendar","occupation","place","useEffect","debounceFetch","multiRoom","current","offsetHeight","offsetTop","document","documentElement","scrollTo","top","behavior","trackDataSource","fetchUrlParams","location","search","fetch","nextOccupation","Event","publish","EVENT","FINDER","params","parties","parseToParties","nextDataSource","ServiceRates","catch","externalSignout","signout","debounce","saveCartInUrl","replaceUrlParams","rates","JSON","stringify","map","handleClubDiscount","next","handleFinder","values","window","getFinderParams","handleSelect","board","nextCart","handleSubmit","isPestana","ServiceFeatures","FEATURES","PESTANA","getCheckoutParams","hotelCurrency","selectableExtras","some","included","handleCheckout","href","getForwarderUrl","contentBackground","Theme","features","getFeatures","nights","dateDiff","days","response","roomSelectorProps","onPress","createElement","Fragment","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","Header","onClubDiscount","onSelect","row","items","_ref2","index","item","Item","concat","taxesType","onMoreInfo","onRateInfo","rate","name","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 { getCheckoutParams, getFeatures, getFinderParams, getForwarderUrl, signout, trackDataSource } from './helpers';\nimport { FEATURES } from './Rates.constants';\nimport { Content } from './Rates.Content';\nimport { Footer } from './Rates.Footer';\nimport { Header } 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 { EVENT } from '../helpers';\nimport { 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 // 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\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) return;\n setCart([]);\n setRoom(undefined);\n debounceFetch();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clubDiscount, currency, session]);\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 const urlParams = fetchUrlParams(location.search);\n const params = { ...urlParams, club, clubDiscount, id, occupation: nextOccupation, place, session };\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 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 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 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\n return (\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 {response && !responseError && <Content {...dataSource} {...others} />}\n\n {(response || (multiRoom && !responseError)) && (\n <Header\n {...{\n clubDiscount,\n dataSource,\n features,\n multiRoom,\n onClubDiscount: handleClubDiscount,\n onSelect: handleSelect,\n }}\n >\n {!isMobile && <RoomSelector {...roomSelectorProps} />}\n </Header>\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, ...item, features, multiRoom, nights, room, taxesType: dataSource.taxesType }}\n cart={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 && <Footer {...{ cart, dataSource, extras, occupation }} onSubmit={() => handleSubmit(cart)} />}\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={() => 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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"}
@@ -13,6 +13,7 @@ var _CardHotel = require("./CardHotel.l10n");
13
13
  var style = _interopRequireWildcard(require("./CardHotel.module.css"));
14
14
  var _helpers = require("../../../helpers");
15
15
  var _helpers2 = require("../../helpers");
16
+ var _components = require("../Item/components");
16
17
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
17
18
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
18
19
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -91,12 +92,12 @@ const CardHotel = _ref => {
91
92
  return /*#__PURE__*/_react.default.createElement(_ui.View, {
92
93
  ref: ref,
93
94
  className: style.card
94
- }, /*#__PURE__*/_react.default.createElement(_ui.Slider, {
95
+ }, /*#__PURE__*/_react.default.createElement(_ui.View, null, /*#__PURE__*/_react.default.createElement(_components.Slider, {
95
96
  height: 208,
96
97
  images: images,
97
98
  width: sliderWidth,
98
99
  className: style.slider
99
- }), distance && /*#__PURE__*/_react.default.createElement(_ui.View, {
100
+ })), distance && /*#__PURE__*/_react.default.createElement(_ui.View, {
100
101
  row: true,
101
102
  className: [style.offset, style.spaceBetween]
102
103
  }, /*#__PURE__*/_react.default.createElement(_ui.View, {
@@ -105,7 +106,6 @@ const CardHotel = _ref => {
105
106
  }, /*#__PURE__*/_react.default.createElement(_ui.Icon, {
106
107
  value: _helpers.ICON.LOCATION
107
108
  }), /*#__PURE__*/_react.default.createElement(_ui.Text, {
108
- capitalize: true,
109
109
  small: true
110
110
  }, distance))), /*#__PURE__*/_react.default.createElement(_ui.View, {
111
111
  className: style.offset
@@ -1 +1 @@
1
- {"version":3,"file":"CardHotel.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_CardHotel","style","_helpers","_helpers2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","DEFAULT_WIDTH","CardHotel","_ref","discountPercentage","features","distance","location","url","hasDiscountClub","id","images","name","price","stars","taxes","isMobile","width","useDevice","locale","translate","useLocale","ref","useRef","value","currency","finder","forwarder","hotel","tags","options","places","urlParams","useStore","sliderWidth","setSliderWidth","useState","useEffect","_ref$current","current","clientWidth","handlePress","chainSelectorValue","find","isHotel","ids","arguments","length","undefined","includes","toString","window","href","concat","rates","toUrlParams","getFinderParams","idtokenprovider","caption","action","small","createElement","View","className","card","Slider","height","slider","row","offset","spaceBetween","Icon","ICON","LOCATION","Text","capitalize","bold","headline","level","Array","from","Action","inline","target","L10N","ACTION_VIEW_HOTEL","summary","accent","LABEL_CLUB_MEMBERS","LABEL_DISCOUNT","currencyFormat","maximumFractionDigits","tiny","LABEL_PER_NIGHT","lighten","LABEL_EXCLUDES_TAXES_FEES","LABEL_INCLUDES_TAXES_FEES","Button","onPress","ACTION_VIEW_MORE","exports","displayName","propTypes","PropTypes","number","shape","string","bool","oneOfType","arrayOf"],"sources":["../../../../../src/components/Rates/components/CardHotel/CardHotel.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { currencyFormat, useLocale } from '@mirai/locale';\nimport { Action, Button, Icon, Slider, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { L10N } from './CardHotel.l10n';\nimport * as style from './CardHotel.module.css';\nimport { ICON, toUrlParams } from '../../../helpers';\nimport { getFinderParams } from '../../helpers';\n\nconst DEFAULT_WIDTH = 374;\n\nconst CardHotel = ({\n discountPercentage = 0, // !\n features: { distance, location, url } = {},\n hasDiscountClub = false, // !\n id,\n images = [],\n name,\n price,\n stars = 3, // !\n taxes = true, // !\n}) => {\n const { isMobile, width } = useDevice();\n const { locale, translate } = useLocale();\n const ref = useRef(null);\n const { value: { currency, finder, forwarder = {}, hotel, tags: { options: places = [] } = {}, urlParams } = {} } =\n useStore();\n\n const [sliderWidth, setSliderWidth] = useState(DEFAULT_WIDTH);\n\n useEffect(() => {\n if (ref.current) setSliderWidth(ref.current?.clientWidth - 1);\n }, [width]);\n\n const handlePress = () => {\n const { value: chainSelectorValue } =\n places.find(({ isHotel, id: ids = [] } = {}) => isHotel && ids.includes(id.toString())) || {};\n\n window.location.href = `${forwarder.rates}${toUrlParams({\n ...getFinderParams({ ...urlParams, ...finder, currency, locale, hotel }),\n chainSelectorValue,\n idtokenprovider: id,\n })}`;\n };\n\n const caption = { action: !isMobile, small: isMobile };\n\n return (\n <View ref={ref} className={style.card}>\n <Slider height={208} images={images} width={sliderWidth} className={style.slider} />\n\n {distance && (\n <View row className={[style.offset, style.spaceBetween]}>\n <View row className={style.row}>\n <Icon value={ICON.LOCATION} />\n <Text capitalize small>\n {distance}\n </Text>\n </View>\n </View>\n )}\n\n <View className={style.offset}>\n <Text bold headline={!isMobile} level={3}>\n {name}\n </Text>\n {stars > 0 && (\n <Text headline={!isMobile} level={3}>\n {Array.from({ length: stars }, () => '★')}\n </Text>\n )}\n\n <Text {...caption}>{location}</Text>\n\n {url && (\n <Action href={url} inline small={isMobile} target=\"_blank\">\n {translate(L10N.ACTION_VIEW_HOTEL)}\n </Action>\n )}\n </View>\n\n <View row className={[style.offset, style.spaceBetween, style.summary]}>\n <View>\n <Text accent bold small>\n {hasDiscountClub && `${translate(L10N.LABEL_CLUB_MEMBERS)} `}\n {translate(L10N.LABEL_DISCOUNT, { value: `${discountPercentage}%` })}\n </Text>\n\n <Text bold headline level={isMobile || price >= 10000 ? 3 : 2}>\n {currencyFormat({ currency, locale, maximumFractionDigits: 0, value: price })}\n </Text>\n\n <Text capitalize small={!isMobile} tiny={isMobile}>\n {translate(L10N.LABEL_PER_NIGHT)}\n </Text>\n\n <Text lighten small={!isMobile} tiny={isMobile}>\n {translate(taxes ? L10N.LABEL_EXCLUDES_TAXES_FEES : L10N.LABEL_INCLUDES_TAXES_FEES)}\n </Text>\n </View>\n\n <Button onPress={handlePress}>{translate(L10N.ACTION_VIEW_MORE)}</Button>\n </View>\n </View>\n );\n};\n\nCardHotel.displayName = 'Mirai:Core:Rates:CardHotel';\n\nCardHotel.propTypes = {\n discountPercentage: PropTypes.number,\n features: PropTypes.shape({\n distance: PropTypes.string,\n location: PropTypes.string,\n url: PropTypes.string,\n }),\n hasDiscountClub: PropTypes.bool,\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n images: PropTypes.arrayOf(PropTypes.string),\n name: PropTypes.string,\n price: PropTypes.number,\n stars: PropTypes.number,\n taxes: PropTypes.bool,\n};\n\nexport { CardHotel };\n"],"mappings":"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"}
1
+ {"version":3,"file":"CardHotel.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_CardHotel","style","_helpers","_helpers2","_components","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","DEFAULT_WIDTH","CardHotel","_ref","discountPercentage","features","distance","location","url","hasDiscountClub","id","images","name","price","stars","taxes","isMobile","width","useDevice","locale","translate","useLocale","ref","useRef","value","currency","finder","forwarder","hotel","tags","options","places","urlParams","useStore","sliderWidth","setSliderWidth","useState","useEffect","_ref$current","current","clientWidth","handlePress","chainSelectorValue","find","isHotel","ids","arguments","length","undefined","includes","toString","window","href","concat","rates","toUrlParams","getFinderParams","idtokenprovider","caption","action","small","createElement","View","className","card","Slider","height","slider","row","offset","spaceBetween","Icon","ICON","LOCATION","Text","bold","headline","level","Array","from","Action","inline","target","L10N","ACTION_VIEW_HOTEL","summary","accent","LABEL_CLUB_MEMBERS","LABEL_DISCOUNT","currencyFormat","maximumFractionDigits","capitalize","tiny","LABEL_PER_NIGHT","lighten","LABEL_EXCLUDES_TAXES_FEES","LABEL_INCLUDES_TAXES_FEES","Button","onPress","ACTION_VIEW_MORE","exports","displayName","propTypes","PropTypes","number","shape","string","bool","oneOfType","arrayOf"],"sources":["../../../../../src/components/Rates/components/CardHotel/CardHotel.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { currencyFormat, useLocale } from '@mirai/locale';\nimport { Action, Button, Icon, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { L10N } from './CardHotel.l10n';\nimport * as style from './CardHotel.module.css';\nimport { ICON, toUrlParams } from '../../../helpers';\nimport { getFinderParams } from '../../helpers';\nimport { Slider } from '../Item/components';\n\nconst DEFAULT_WIDTH = 374;\n\nconst CardHotel = ({\n discountPercentage = 0, // !\n features: { distance, location, url } = {},\n hasDiscountClub = false, // !\n id,\n images = [],\n name,\n price,\n stars = 3, // !\n taxes = true, // !\n}) => {\n const { isMobile, width } = useDevice();\n const { locale, translate } = useLocale();\n const ref = useRef(null);\n const { value: { currency, finder, forwarder = {}, hotel, tags: { options: places = [] } = {}, urlParams } = {} } =\n useStore();\n\n const [sliderWidth, setSliderWidth] = useState(DEFAULT_WIDTH);\n\n useEffect(() => {\n if (ref.current) setSliderWidth(ref.current?.clientWidth - 1);\n }, [width]);\n\n const handlePress = () => {\n const { value: chainSelectorValue } =\n places.find(({ isHotel, id: ids = [] } = {}) => isHotel && ids.includes(id.toString())) || {};\n\n window.location.href = `${forwarder.rates}${toUrlParams({\n ...getFinderParams({ ...urlParams, ...finder, currency, locale, hotel }),\n chainSelectorValue,\n idtokenprovider: id,\n })}`;\n };\n\n const caption = { action: !isMobile, small: isMobile };\n\n return (\n <View ref={ref} className={style.card}>\n <View>\n <Slider height={208} images={images} width={sliderWidth} className={style.slider} />\n </View>\n\n {distance && (\n <View row className={[style.offset, style.spaceBetween]}>\n <View row className={style.row}>\n <Icon value={ICON.LOCATION} />\n <Text small>{distance}</Text>\n </View>\n </View>\n )}\n\n <View className={style.offset}>\n <Text bold headline={!isMobile} level={3}>\n {name}\n </Text>\n {stars > 0 && (\n <Text headline={!isMobile} level={3}>\n {Array.from({ length: stars }, () => '★')}\n </Text>\n )}\n\n <Text {...caption}>{location}</Text>\n\n {url && (\n <Action href={url} inline small={isMobile} target=\"_blank\">\n {translate(L10N.ACTION_VIEW_HOTEL)}\n </Action>\n )}\n </View>\n\n <View row className={[style.offset, style.spaceBetween, style.summary]}>\n <View>\n <Text accent bold small>\n {hasDiscountClub && `${translate(L10N.LABEL_CLUB_MEMBERS)} `}\n {translate(L10N.LABEL_DISCOUNT, { value: `${discountPercentage}%` })}\n </Text>\n\n <Text bold headline level={isMobile || price >= 10000 ? 3 : 2}>\n {currencyFormat({ currency, locale, maximumFractionDigits: 0, value: price })}\n </Text>\n\n <Text capitalize small={!isMobile} tiny={isMobile}>\n {translate(L10N.LABEL_PER_NIGHT)}\n </Text>\n\n <Text lighten small={!isMobile} tiny={isMobile}>\n {translate(taxes ? L10N.LABEL_EXCLUDES_TAXES_FEES : L10N.LABEL_INCLUDES_TAXES_FEES)}\n </Text>\n </View>\n\n <Button onPress={handlePress}>{translate(L10N.ACTION_VIEW_MORE)}</Button>\n </View>\n </View>\n );\n};\n\nCardHotel.displayName = 'Mirai:Core:Rates:CardHotel';\n\nCardHotel.propTypes = {\n discountPercentage: PropTypes.number,\n features: PropTypes.shape({\n distance: PropTypes.string,\n location: PropTypes.string,\n url: PropTypes.string,\n }),\n hasDiscountClub: PropTypes.bool,\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n images: PropTypes.arrayOf(PropTypes.string),\n name: PropTypes.string,\n price: PropTypes.number,\n stars: PropTypes.number,\n taxes: PropTypes.bool,\n};\n\nexport { CardHotel };\n"],"mappings":"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"}
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.Hotelverse = void 0;
7
7
  var _dataSources = require("@mirai/data-sources");
8
8
  var _locale = require("@mirai/locale");
9
- var _services = require("@mirai/services");
10
9
  var _ui = require("@mirai/ui");
11
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
12
11
  var _react = _interopRequireWildcard(require("react"));
@@ -17,12 +16,13 @@ var _helpers = require("../../../helpers");
17
16
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
18
17
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
19
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
- const FEATURE = {
21
- HOTELVERSE: 'hotelverse'
22
- };
23
19
  const Hotelverse = _ref => {
24
20
  let {
25
21
  country,
22
+ hotelverse: {
23
+ hash,
24
+ token
25
+ } = {},
26
26
  infantAge,
27
27
  items = [],
28
28
  multiRoom,
@@ -50,27 +50,12 @@ const Hotelverse = _ref => {
50
50
  } = {},
51
51
  session,
52
52
  urlParams: {
53
- idtokenprovider: idHotel,
54
- showBanner: show
53
+ idtokenprovider: idHotel
55
54
  } = {}
56
55
  } = {}
57
56
  } = (0, _dataSources.useStore)();
58
57
  const [open, setOpen] = (0, _react.useState)(false);
59
- const [token, setToken] = (0, _react.useState)();
60
58
  const container = (0, _react.useRef)(null);
61
- (0, _react.useEffect)(() => {
62
- if ((show === 'true' || _services.ServiceFeatures.get(FEATURE.HOTELVERSE, idHotel)) && checkIn && !multiRoom) {
63
- (async () => {
64
- setToken(await _services.ServiceHotelVerse.getToken({
65
- checkin: (0, _locale.dateFormat)(checkIn, {
66
- format: _helpers.CALENDAR_FORMAT
67
- }),
68
- idHotel
69
- }));
70
- })();
71
- } else setToken();
72
- // eslint-disable-next-line react-hooks/exhaustive-deps
73
- }, [checkIn, checkOut, multiRoom]);
74
59
  (0, _react.useEffect)(() => {
75
60
  const el = container.current;
76
61
  const cdn = process.env.HOTELVERSE_CDN;
@@ -161,7 +146,7 @@ const Hotelverse = _ref => {
161
146
  language,
162
147
  promocode
163
148
  }));
164
- return token ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_ui.Pressable, {
149
+ return !multiRoom && hash && token ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_ui.Pressable, {
165
150
  onPress: () => setOpen(!open),
166
151
  className: [style.pressable, style.center, others.className, isMobile && discount && !session && style.wide]
167
152
  }, /*#__PURE__*/_react.default.createElement(_ui.Icon, {
@@ -182,20 +167,25 @@ const Hotelverse = _ref => {
182
167
  ref: container
183
168
  }, /*#__PURE__*/_react.default.createElement("div", {
184
169
  id: "hv",
185
- "data-hvexthotelid": idHotel,
186
- "data-hvclientid": "6",
187
- "data-hvproduct": "BookYourRoom",
188
170
  "data-hvaccesstokenhv": token,
171
+ "data-hvclientid": "6",
189
172
  "data-hvcommandsinterface": commandInterface,
173
+ "data-hvcurrency": currency,
174
+ "data-hvexthotelid": idHotel,
175
+ "data-hvhash": hash,
190
176
  "data-hvlanguage": language.toUpperCase(),
191
- "data-hvsearch": search,
192
- "data-hvcurrency": currency
177
+ "data-hvproduct": "BookYourRoom",
178
+ "data-hvsearch": search
193
179
  })))) : null;
194
180
  };
195
181
  exports.Hotelverse = Hotelverse;
196
182
  Hotelverse.displayName = 'Mirai:Core:Rates:Hotelverse';
197
183
  Hotelverse.propTypes = {
198
184
  country: _propTypes.default.string,
185
+ hotelverse: _propTypes.default.shape({
186
+ hash: _propTypes.default.string,
187
+ token: _propTypes.default.string
188
+ }),
199
189
  infantAge: _propTypes.default.number,
200
190
  items: _propTypes.default.array,
201
191
  multiRoom: _propTypes.default.bool,
@@ -1 +1 @@
1
- {"version":3,"file":"Hotelverse.js","names":["_dataSources","require","_locale","_services","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_Hotelverse","style","_shared__","_helpers","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","FEATURE","HOTELVERSE","Hotelverse","_ref","country","infantAge","items","multiRoom","taxes","onSelect","others","isMobile","useDevice","translate","useLocale","value","club","discount","currency","language","finder","calendar","checkIn","checkOut","occupation","promocode","session","urlParams","idtokenprovider","idHotel","showBanner","show","useStore","open","setOpen","useState","token","setToken","container","useRef","useEffect","ServiceFeatures","ServiceHotelverse","getToken","checkin","dateFormatBase","format","CALENDAR_FORMAT","el","current","cdn","process","env","HOTELVERSE_CDN","scriptEmbed","addScript","concat","scriptListener","document","body","classList","add","window","callbackSelectRoom","hvIsOr","hvLocator","idHotelverse","hvRoomNumber","roomNumber","resultKey","arguments","length","undefined","boardId","replace","board","flatMap","boards","find","id","subjectToAvailability","remove","removeChild","dateFormat","date","delimiter","btoa","commandInterface","JSON","stringify","onSelectRoom","callback","enabled","method","customParams","amount","adults","type","TYPE_OCCUPATION","CHILD","ages","childAges","children","filter","age","infants","search","paxes","taxIncluded","createElement","Fragment","Pressable","onPress","className","pressable","center","wide","Icon","ICON","THREE_D","Text","action","bold","L10N","ACTION_HOTEL_VERSE","Modal","blur","fit","portal","title","LABEL_HOTEL_VERSE","visible","onClose","modal","ref","toUpperCase","exports","displayName","propTypes","PropTypes","string","number","array","bool","func"],"sources":["../../../../../src/components/Rates/components/Hotelverse/Hotelverse.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { dateFormat as dateFormatBase, useLocale } from '@mirai/locale';\nimport { ServiceFeatures, ServiceHotelVerse as ServiceHotelverse } from '@mirai/services';\nimport { Icon, Modal, Pressable, Text, useDevice } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { L10N } from './Hotelverse.l10n';\nimport * as style from './Hotelverse.module.css';\nimport { TYPE_OCCUPATION } from '../../../__shared__';\nimport { addScript, CALENDAR_FORMAT, ICON } from '../../../helpers';\n\nconst FEATURE = { HOTELVERSE: 'hotelverse' };\n\nconst Hotelverse = ({ country, infantAge, items = [], multiRoom, taxes, onSelect = () => {}, ...others }) => {\n const { isMobile } = useDevice();\n const { translate } = useLocale();\n const {\n value: {\n club: { discount } = {},\n currency,\n language,\n finder: { calendar: [checkIn, checkOut] = [], occupation: [occupation] = [], promocode = '' } = {},\n session,\n urlParams: { idtokenprovider: idHotel, showBanner: show } = {},\n } = {},\n } = useStore();\n\n const [open, setOpen] = useState(false);\n const [token, setToken] = useState();\n\n const container = useRef(null);\n\n useEffect(() => {\n if ((show === 'true' || ServiceFeatures.get(FEATURE.HOTELVERSE, idHotel)) && checkIn && !multiRoom) {\n (async () => {\n setToken(\n await ServiceHotelverse.getToken({ checkin: dateFormatBase(checkIn, { format: CALENDAR_FORMAT }), idHotel }),\n );\n })();\n } else setToken();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [checkIn, checkOut, multiRoom]);\n\n useEffect(() => {\n const el = container.current;\n const cdn = process.env.HOTELVERSE_CDN;\n const scriptEmbed = open && addScript(el, `${cdn}/scripts/embed.js`);\n const scriptListener = open && addScript(el, `${cdn}/scripts/interfaceListener.js`);\n\n if (open) {\n document.body.classList.add('hotelverse-open');\n\n window.callbackSelectRoom = ([{ hvIsOr, hvLocator: idHotelverse, hvRoomNumber: roomNumber, resultKey }] = []) => {\n setOpen(false);\n\n const boardId = resultKey.replace(/\\|/g, '--');\n const board = items.flatMap(({ boards } = {}) => boards).find(({ id } = {}) => id === boardId);\n\n onSelect(board, { idHotelverse, roomNumber, subjectToAvailability: hvIsOr });\n };\n }\n\n return () => {\n document.body.classList.remove('hotelverse-open');\n if (scriptEmbed) el?.removeChild(scriptEmbed);\n if (scriptListener) el?.removeChild(scriptListener);\n window.callbackSelectRoom = undefined;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open]);\n\n const dateFormat = (date) => dateFormatBase(date, { delimiter: '-', format: 'YYYY-MM-DD' });\n\n const { btoa } = window;\n const commandInterface = btoa(\n JSON.stringify({\n onSelectRoom: {\n callback: 'callbackSelectRoom',\n enabled: true,\n method: 'PostMessage',\n customParams: [],\n },\n }),\n );\n\n const { amount: adults = 0 } = occupation.find(({ type } = {}) => type !== TYPE_OCCUPATION.CHILD) || {};\n const { ages: childAges = [] } = occupation.find(({ type } = {}) => type === TYPE_OCCUPATION.CHILD) || {};\n const children = childAges.filter((age) => age > infantAge).length;\n const infants = childAges.filter((age) => age < infantAge).length;\n const search = btoa(\n JSON.stringify({\n checkIn: dateFormat(checkIn),\n checkOut: dateFormat(checkOut),\n paxes: [{ adults, children, infants, childAges }],\n taxIncluded: !!taxes,\n currency,\n country,\n language,\n promocode,\n }),\n );\n\n return token ? (\n <>\n <Pressable\n onPress={() => setOpen(!open)}\n className={[style.pressable, style.center, others.className, isMobile && discount && !session && style.wide]}\n >\n <Icon value={ICON.THREE_D} />\n <Text action bold>\n {translate(L10N.ACTION_HOTEL_VERSE)}\n </Text>\n </Pressable>\n <Modal\n blur\n fit\n portal\n title={translate(L10N.LABEL_HOTEL_VERSE)}\n visible={open}\n onClose={() => setOpen(false)}\n data-testid=\"hv-modal\"\n className={style.modal}\n >\n {open && (\n <div ref={container}>\n <div\n id=\"hv\"\n data-hvexthotelid={idHotel}\n data-hvclientid=\"6\"\n data-hvproduct=\"BookYourRoom\"\n data-hvaccesstokenhv={token}\n data-hvcommandsinterface={commandInterface}\n data-hvlanguage={language.toUpperCase()}\n data-hvsearch={search}\n data-hvcurrency={currency}\n ></div>\n </div>\n )}\n </Modal>\n </>\n ) : null;\n};\n\nHotelverse.displayName = 'Mirai:Core:Rates:Hotelverse';\n\nHotelverse.propTypes = {\n country: PropTypes.string,\n infantAge: PropTypes.number,\n items: PropTypes.array,\n multiRoom: PropTypes.bool,\n taxes: PropTypes.string,\n onSelect: PropTypes.func,\n};\n\nexport { Hotelverse };\n"],"mappings":"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"}
1
+ {"version":3,"file":"Hotelverse.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_Hotelverse","style","_shared__","_helpers","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","Hotelverse","_ref","country","hotelverse","hash","token","infantAge","items","multiRoom","taxes","onSelect","others","isMobile","useDevice","translate","useLocale","value","club","discount","currency","language","finder","calendar","checkIn","checkOut","occupation","promocode","session","urlParams","idtokenprovider","idHotel","useStore","open","setOpen","useState","container","useRef","useEffect","el","current","cdn","process","env","HOTELVERSE_CDN","scriptEmbed","addScript","concat","scriptListener","document","body","classList","add","window","callbackSelectRoom","hvIsOr","hvLocator","idHotelverse","hvRoomNumber","roomNumber","resultKey","arguments","length","undefined","boardId","replace","board","flatMap","boards","find","id","subjectToAvailability","remove","removeChild","dateFormat","date","dateFormatBase","delimiter","format","btoa","commandInterface","JSON","stringify","onSelectRoom","callback","enabled","method","customParams","amount","adults","type","TYPE_OCCUPATION","CHILD","ages","childAges","children","filter","age","infants","search","paxes","taxIncluded","createElement","Fragment","Pressable","onPress","className","pressable","center","wide","Icon","ICON","THREE_D","Text","action","bold","L10N","ACTION_HOTEL_VERSE","Modal","blur","fit","portal","title","LABEL_HOTEL_VERSE","visible","onClose","modal","ref","toUpperCase","exports","displayName","propTypes","PropTypes","string","shape","number","array","bool","func"],"sources":["../../../../../src/components/Rates/components/Hotelverse/Hotelverse.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { dateFormat as dateFormatBase, useLocale } from '@mirai/locale';\nimport { Icon, Modal, Pressable, Text, useDevice } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { L10N } from './Hotelverse.l10n';\nimport * as style from './Hotelverse.module.css';\nimport { TYPE_OCCUPATION } from '../../../__shared__';\nimport { addScript, ICON } from '../../../helpers';\n\nconst Hotelverse = ({\n country,\n hotelverse: { hash, token } = {},\n infantAge,\n items = [],\n multiRoom,\n taxes,\n onSelect = () => {},\n ...others\n}) => {\n const { isMobile } = useDevice();\n const { translate } = useLocale();\n const {\n value: {\n club: { discount } = {},\n currency,\n language,\n finder: { calendar: [checkIn, checkOut] = [], occupation: [occupation] = [], promocode = '' } = {},\n session,\n urlParams: { idtokenprovider: idHotel } = {},\n } = {},\n } = useStore();\n\n const [open, setOpen] = useState(false);\n\n const container = useRef(null);\n\n useEffect(() => {\n const el = container.current;\n const cdn = process.env.HOTELVERSE_CDN;\n const scriptEmbed = open && addScript(el, `${cdn}/scripts/embed.js`);\n const scriptListener = open && addScript(el, `${cdn}/scripts/interfaceListener.js`);\n\n if (open) {\n document.body.classList.add('hotelverse-open');\n\n window.callbackSelectRoom = ([{ hvIsOr, hvLocator: idHotelverse, hvRoomNumber: roomNumber, resultKey }] = []) => {\n setOpen(false);\n\n const boardId = resultKey.replace(/\\|/g, '--');\n const board = items.flatMap(({ boards } = {}) => boards).find(({ id } = {}) => id === boardId);\n\n onSelect(board, { idHotelverse, roomNumber, subjectToAvailability: hvIsOr });\n };\n }\n\n return () => {\n document.body.classList.remove('hotelverse-open');\n if (scriptEmbed) el?.removeChild(scriptEmbed);\n if (scriptListener) el?.removeChild(scriptListener);\n window.callbackSelectRoom = undefined;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open]);\n\n const dateFormat = (date) => dateFormatBase(date, { delimiter: '-', format: 'YYYY-MM-DD' });\n\n const { btoa } = window;\n const commandInterface = btoa(\n JSON.stringify({\n onSelectRoom: {\n callback: 'callbackSelectRoom',\n enabled: true,\n method: 'PostMessage',\n customParams: [],\n },\n }),\n );\n\n const { amount: adults = 0 } = occupation.find(({ type } = {}) => type !== TYPE_OCCUPATION.CHILD) || {};\n const { ages: childAges = [] } = occupation.find(({ type } = {}) => type === TYPE_OCCUPATION.CHILD) || {};\n const children = childAges.filter((age) => age > infantAge).length;\n const infants = childAges.filter((age) => age < infantAge).length;\n const search = btoa(\n JSON.stringify({\n checkIn: dateFormat(checkIn),\n checkOut: dateFormat(checkOut),\n paxes: [{ adults, children, infants, childAges }],\n taxIncluded: !!taxes,\n currency,\n country,\n language,\n promocode,\n }),\n );\n\n return !multiRoom && hash && token ? (\n <>\n <Pressable\n onPress={() => setOpen(!open)}\n className={[style.pressable, style.center, others.className, isMobile && discount && !session && style.wide]}\n >\n <Icon value={ICON.THREE_D} />\n <Text action bold>\n {translate(L10N.ACTION_HOTEL_VERSE)}\n </Text>\n </Pressable>\n <Modal\n blur\n fit\n portal\n title={translate(L10N.LABEL_HOTEL_VERSE)}\n visible={open}\n onClose={() => setOpen(false)}\n data-testid=\"hv-modal\"\n className={style.modal}\n >\n {open && (\n <div ref={container}>\n <div\n id=\"hv\"\n data-hvaccesstokenhv={token}\n data-hvclientid=\"6\"\n data-hvcommandsinterface={commandInterface}\n data-hvcurrency={currency}\n data-hvexthotelid={idHotel}\n data-hvhash={hash}\n data-hvlanguage={language.toUpperCase()}\n data-hvproduct=\"BookYourRoom\"\n data-hvsearch={search}\n ></div>\n </div>\n )}\n </Modal>\n </>\n ) : null;\n};\n\nHotelverse.displayName = 'Mirai:Core:Rates:Hotelverse';\n\nHotelverse.propTypes = {\n country: PropTypes.string,\n hotelverse: PropTypes.shape({\n hash: PropTypes.string,\n token: PropTypes.string,\n }),\n infantAge: PropTypes.number,\n items: PropTypes.array,\n multiRoom: PropTypes.bool,\n taxes: PropTypes.string,\n onSelect: PropTypes.func,\n};\n\nexport { Hotelverse };\n"],"mappings":"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"}
@@ -74,7 +74,6 @@ const Preview = _ref => {
74
74
  } = _ref2;
75
75
  return large;
76
76
  }),
77
- indicator: true,
78
77
  media: media,
79
78
  width: memoizedWidth,
80
79
  onCounter: !isMobile ? onMoreInfo : undefined,
@@ -1 +1 @@
1
- {"version":3,"file":"Item.Preview.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_Item","style","_helpers","_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","memoizedWidth","Preview","_ref","availability","boards","cancellations","images","media","name","title","rates","selectedBoard","onMoreInfo","onRateInfo","onViewUrl","others","isMobile","width","useDevice","translate","useLocale","ref","useRef","value","hotel","warningAvailability","useStore","useEffect","clientWidth","current","uniqueRate","caption","capitalize","action","small","offerDates","variants","createElement","View","Slider","height","map","_ref2","large","indicator","onCounter","undefined","className","slider","row","offset","spaceBetween","preview","Features","Text","bold","error","L10N","LABEL_REMAINING_ITEMS","amount","gap","flex","headline","level","Amenities","highlight","Fragment","included","item","index","Icon","ICON","AMENITY","TooltipDates","captions","values","parseDate","Pressable","onPress","cancellation","INFO","lighten","isClub","rate","LABEL_ONLY_MEMBERS","restrictions","isVariableOffer","warning","WARNING","LABEL_INCLUDED","date","Action","inline","concat","ACTION_MORE_INFO","exports","displayName","propTypes","PropTypes","number","arrayOf","any","shape","alt","string","thumbnail","url3D","urlVideo","func"],"sources":["../../../../../src/components/Rates/components/Item/Item.Preview.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { parseDate, useLocale } from '@mirai/locale';\nimport { Action, Icon, Pressable, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef } from 'react';\n\nimport { Amenities, Features, Slider, TooltipDates } from './components';\nimport { L10N } from './Item.l10n';\nimport * as style from './Item.module.css';\nimport { ICON } from '../../../helpers';\n\nlet memoizedWidth = 374;\n\nconst Preview = ({\n availability = 0,\n boards = [],\n cancellations = [],\n images = [],\n media,\n name: title,\n rates = [],\n selectedBoard = {},\n onMoreInfo,\n onRateInfo,\n onViewUrl = () => {},\n ...others\n}) => {\n const { isMobile, width } = useDevice();\n const { translate } = useLocale();\n const ref = useRef(null);\n const { value: { hotel: { warningAvailability = 9999 } } = {} } = useStore();\n\n useEffect(() => {\n const { clientWidth } = ref.current || {};\n if (clientWidth) memoizedWidth = clientWidth - 1;\n }, [width]);\n\n const [uniqueRate] = rates.length === 1 ? rates : [];\n const caption = { capitalize: true, action: !isMobile, small: isMobile };\n const { offerDates, variants = [] } = selectedBoard;\n\n return (\n <View ref={ref}>\n <Slider\n height={208}\n images={images.map(({ large }) => large)}\n indicator\n media={media}\n width={memoizedWidth}\n onCounter={!isMobile ? onMoreInfo : undefined}\n onViewUrl={onViewUrl}\n className={style.slider}\n />\n\n <View row className={[style.offset, style.spaceBetween, style.preview]} style={{ width: memoizedWidth }}>\n <Features {...others} />\n\n {availability <= warningAvailability && (\n <Text bold error small>\n {translate(L10N.LABEL_REMAINING_ITEMS, { amount: availability })}\n </Text>\n )}\n </View>\n\n <View className={[style.offset, style.gap]} style={{ flex: 1 }}>\n <Text bold headline={!isMobile} level={3}>\n {title}\n </Text>\n\n {!isMobile && <Amenities highlight preview {...others} />}\n\n {uniqueRate && (\n <>\n {uniqueRate.included.map((item, index) => (\n <View key={index} row className={style.row}>\n <Icon value={ICON.AMENITY} />\n <Text {...caption}>{item}</Text>\n </View>\n ))}\n {boards.length === 1 && (\n <View row className={style.row}>\n <Text {...caption}>{boards[0].name}</Text>\n {variants.length > 0 && (\n <TooltipDates\n captions={variants.map(({ name } = {}) => name)}\n values={variants.map(({ value } = {}) => parseDate(value))}\n />\n )}\n </View>\n )}\n </>\n )}\n\n {cancellations.length === 1 && (\n <View>\n <View row>\n <Pressable\n onPress={() => onRateInfo({ ...selectedBoard, cancellation: cancellations[0] })}\n className={style.row}\n >\n <Text {...caption}>{cancellations[0].name}</Text>\n <Icon action={isMobile} value={ICON.INFO} />\n </Pressable>\n </View>\n {cancellations[0].caption && (\n <Text capitalize lighten small>\n {cancellations[0].caption}\n </Text>\n )}\n </View>\n )}\n\n {uniqueRate?.isClub && (\n <View row>\n <Text bold action={!isMobile} small={isMobile} className={[style.rate, style.highlight]}>\n {translate(L10N.LABEL_ONLY_MEMBERS)}\n </Text>\n </View>\n )}\n\n {uniqueRate?.restrictions.map(({ isVariableOffer, value } = {}, index) => (\n <View key={index} row className={style.row}>\n <Icon warning value={ICON.WARNING} />\n <Text warning {...caption}>\n {value}\n </Text>\n {isVariableOffer && offerDates.length > 0 && (\n <TooltipDates\n captions={offerDates.map(() => translate(L10N.LABEL_INCLUDED))}\n values={offerDates.map((date) => parseDate(date))}\n warning\n />\n )}\n </View>\n ))}\n\n <View row>\n <Action inline small={isMobile} onPress={onMoreInfo}>\n {`${translate(L10N.ACTION_MORE_INFO)} >`}\n </Action>\n </View>\n </View>\n </View>\n );\n};\n\nPreview.displayName = 'Mirai:Core:Rates:Item:Preview';\n\nPreview.propTypes = {\n availability: PropTypes.number,\n boards: PropTypes.arrayOf(PropTypes.any),\n cancellations: PropTypes.arrayOf(PropTypes.any),\n images: PropTypes.arrayOf(\n PropTypes.shape({\n alt: PropTypes.string,\n large: PropTypes.string,\n thumbnail: PropTypes.string,\n }),\n ),\n media: PropTypes.shape({\n url3D: PropTypes.string,\n urlVideo: PropTypes.string,\n }),\n name: PropTypes.string,\n rates: PropTypes.arrayOf(PropTypes.any),\n selectedBoard: PropTypes.shape({}),\n onMoreInfo: PropTypes.func,\n onRateInfo: PropTypes.func,\n onViewUrl: PropTypes.func,\n};\n\nexport { Preview };\n"],"mappings":"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"}
1
+ {"version":3,"file":"Item.Preview.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_Item","style","_helpers","_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","memoizedWidth","Preview","_ref","availability","boards","cancellations","images","media","name","title","rates","selectedBoard","onMoreInfo","onRateInfo","onViewUrl","others","isMobile","width","useDevice","translate","useLocale","ref","useRef","value","hotel","warningAvailability","useStore","useEffect","clientWidth","current","uniqueRate","caption","capitalize","action","small","offerDates","variants","createElement","View","Slider","height","map","_ref2","large","onCounter","undefined","className","slider","row","offset","spaceBetween","preview","Features","Text","bold","error","L10N","LABEL_REMAINING_ITEMS","amount","gap","flex","headline","level","Amenities","highlight","Fragment","included","item","index","Icon","ICON","AMENITY","TooltipDates","captions","values","parseDate","Pressable","onPress","cancellation","INFO","lighten","isClub","rate","LABEL_ONLY_MEMBERS","restrictions","isVariableOffer","warning","WARNING","LABEL_INCLUDED","date","Action","inline","concat","ACTION_MORE_INFO","exports","displayName","propTypes","PropTypes","number","arrayOf","any","shape","alt","string","thumbnail","url3D","urlVideo","func"],"sources":["../../../../../src/components/Rates/components/Item/Item.Preview.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { parseDate, useLocale } from '@mirai/locale';\nimport { Action, Icon, Pressable, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef } from 'react';\n\nimport { Amenities, Features, Slider, TooltipDates } from './components';\nimport { L10N } from './Item.l10n';\nimport * as style from './Item.module.css';\nimport { ICON } from '../../../helpers';\n\nlet memoizedWidth = 374;\n\nconst Preview = ({\n availability = 0,\n boards = [],\n cancellations = [],\n images = [],\n media,\n name: title,\n rates = [],\n selectedBoard = {},\n onMoreInfo,\n onRateInfo,\n onViewUrl = () => {},\n ...others\n}) => {\n const { isMobile, width } = useDevice();\n const { translate } = useLocale();\n const ref = useRef(null);\n const { value: { hotel: { warningAvailability = 9999 } } = {} } = useStore();\n\n useEffect(() => {\n const { clientWidth } = ref.current || {};\n if (clientWidth) memoizedWidth = clientWidth - 1;\n }, [width]);\n\n const [uniqueRate] = rates.length === 1 ? rates : [];\n const caption = { capitalize: true, action: !isMobile, small: isMobile };\n const { offerDates, variants = [] } = selectedBoard;\n\n return (\n <View ref={ref}>\n <Slider\n height={208}\n images={images.map(({ large }) => large)}\n media={media}\n width={memoizedWidth}\n onCounter={!isMobile ? onMoreInfo : undefined}\n onViewUrl={onViewUrl}\n className={style.slider}\n />\n\n <View row className={[style.offset, style.spaceBetween, style.preview]} style={{ width: memoizedWidth }}>\n <Features {...others} />\n\n {availability <= warningAvailability && (\n <Text bold error small>\n {translate(L10N.LABEL_REMAINING_ITEMS, { amount: availability })}\n </Text>\n )}\n </View>\n\n <View className={[style.offset, style.gap]} style={{ flex: 1 }}>\n <Text bold headline={!isMobile} level={3}>\n {title}\n </Text>\n\n {!isMobile && <Amenities highlight preview {...others} />}\n\n {uniqueRate && (\n <>\n {uniqueRate.included.map((item, index) => (\n <View key={index} row className={style.row}>\n <Icon value={ICON.AMENITY} />\n <Text {...caption}>{item}</Text>\n </View>\n ))}\n {boards.length === 1 && (\n <View row className={style.row}>\n <Text {...caption}>{boards[0].name}</Text>\n {variants.length > 0 && (\n <TooltipDates\n captions={variants.map(({ name } = {}) => name)}\n values={variants.map(({ value } = {}) => parseDate(value))}\n />\n )}\n </View>\n )}\n </>\n )}\n\n {cancellations.length === 1 && (\n <View>\n <View row>\n <Pressable\n onPress={() => onRateInfo({ ...selectedBoard, cancellation: cancellations[0] })}\n className={style.row}\n >\n <Text {...caption}>{cancellations[0].name}</Text>\n <Icon action={isMobile} value={ICON.INFO} />\n </Pressable>\n </View>\n {cancellations[0].caption && (\n <Text capitalize lighten small>\n {cancellations[0].caption}\n </Text>\n )}\n </View>\n )}\n\n {uniqueRate?.isClub && (\n <View row>\n <Text bold action={!isMobile} small={isMobile} className={[style.rate, style.highlight]}>\n {translate(L10N.LABEL_ONLY_MEMBERS)}\n </Text>\n </View>\n )}\n\n {uniqueRate?.restrictions.map(({ isVariableOffer, value } = {}, index) => (\n <View key={index} row className={style.row}>\n <Icon warning value={ICON.WARNING} />\n <Text warning {...caption}>\n {value}\n </Text>\n {isVariableOffer && offerDates.length > 0 && (\n <TooltipDates\n captions={offerDates.map(() => translate(L10N.LABEL_INCLUDED))}\n values={offerDates.map((date) => parseDate(date))}\n warning\n />\n )}\n </View>\n ))}\n\n <View row>\n <Action inline small={isMobile} onPress={onMoreInfo}>\n {`${translate(L10N.ACTION_MORE_INFO)} >`}\n </Action>\n </View>\n </View>\n </View>\n );\n};\n\nPreview.displayName = 'Mirai:Core:Rates:Item:Preview';\n\nPreview.propTypes = {\n availability: PropTypes.number,\n boards: PropTypes.arrayOf(PropTypes.any),\n cancellations: PropTypes.arrayOf(PropTypes.any),\n images: PropTypes.arrayOf(\n PropTypes.shape({\n alt: PropTypes.string,\n large: PropTypes.string,\n thumbnail: PropTypes.string,\n }),\n ),\n media: PropTypes.shape({\n url3D: PropTypes.string,\n urlVideo: PropTypes.string,\n }),\n name: PropTypes.string,\n rates: PropTypes.arrayOf(PropTypes.any),\n selectedBoard: PropTypes.shape({}),\n onMoreInfo: PropTypes.func,\n onRateInfo: PropTypes.func,\n onViewUrl: PropTypes.func,\n};\n\nexport { Preview };\n"],"mappings":"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"}
@@ -106,6 +106,9 @@ const L10N = exports.L10N = {
106
106
  LABEL_TOTAL: {
107
107
  id: 'common.label.total'
108
108
  },
109
+ LABEL_YEARS_OLD: {
110
+ id: 'common.label.years_old'
111
+ },
109
112
  LABEL_WHATS_INCLUDED: {
110
113
  id: 'finder.label.whats_included'
111
114
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Item.l10n.js","names":["L10N","exports","ACTION_MORE_INFO","id","ACTION_RESERVE","ACTION_VIEW_MORE","LABEL_ACCOMMODATION_PLAN","LABEL_BASE_PRICE","LABEL_BED_DISPOSITION","LABEL_CANCELLATION_POLICY","LABEL_CLUB_MEMBERS","LABEL_DESCRIPTION","LABEL_DESELECT","LABEL_DISCOUNT","LABEL_DISCOUNT_INCLUDED","LABEL_DISCOUNT_TYPE","LABEL_EXTRAS","LABEL_FEES","LABEL_INCLUDED","LABEL_LIMITED_OFFER","LABEL_MAX_OCCUPATION","LABEL_MORE_SERVICES","LABEL_OFFER","LABEL_ONLY_MEMBERS","LABEL_OR","LABEL_PAYMENT_TERMS","LABEL_PER_NIGHT","LABEL_PRICE_DETAILS","LABEL_REMAINING_ITEMS","LABEL_SELECT","LABEL_SELECTED_OCCUPATION","LABEL_TAXES","LABEL_TOP_AMENITIES","LABEL_TOTAL","LABEL_WHATS_INCLUDED"],"sources":["../../../../../src/components/Rates/components/Item/Item.l10n.js"],"sourcesContent":["export const L10N = {\n ACTION_MORE_INFO: { id: 'common.action.more_info' },\n ACTION_RESERVE: { id: 'common.action.reserve' },\n ACTION_VIEW_MORE: { id: 'common.action.view_more' },\n\n LABEL_ACCOMMODATION_PLAN: { id: 'finder.label.accommodation_plan' },\n LABEL_BASE_PRICE: { id: 'common.label.base_price' },\n LABEL_BED_DISPOSITION: { id: 'finder.label.bed_disposition' },\n LABEL_CANCELLATION_POLICY: { id: 'common.label.cancellation_policy' },\n LABEL_CLUB_MEMBERS: { id: 'finder.label.club_members' },\n LABEL_DESCRIPTION: { id: 'common.label.description' },\n LABEL_DESELECT: { id: 'common.label.deselect' },\n LABEL_DISCOUNT: { id: 'finder.label.discount' },\n LABEL_DISCOUNT_INCLUDED: { id: 'finder.label.discount_included' },\n LABEL_DISCOUNT_TYPE: {\n 0: { id: 'finder.label.discount_club' },\n 1: { id: 'finder.label.discount_deal' },\n 2: { id: 'finder.label.discount_promotion' },\n },\n LABEL_EXTRAS: { id: 'common.label.extras' },\n LABEL_FEES: { id: 'finder.label.fees' },\n LABEL_INCLUDED: { id: 'common.label.included' },\n LABEL_LIMITED_OFFER: { id: 'finder.label.limited_offer' },\n LABEL_MAX_OCCUPATION: { id: 'common.label.max_occupation' },\n LABEL_MORE_SERVICES: { id: 'finder.label.more_services' },\n LABEL_OFFER: { id: 'common.label.offer' },\n LABEL_ONLY_MEMBERS: { id: 'finder.label.only_members' },\n LABEL_OR: { id: 'common.label.or' },\n LABEL_PAYMENT_TERMS: { id: 'common.label.payment_terms' },\n LABEL_PER_NIGHT: { id: 'finder.label.per_night' },\n LABEL_PRICE_DETAILS: { id: 'finder.label.price_details' },\n LABEL_REMAINING_ITEMS: { id: 'finder.label.remaining_items' },\n LABEL_SELECT: { id: 'common.label.select' },\n LABEL_SELECTED_OCCUPATION: { id: 'common.label.selected_occupation' },\n LABEL_TAXES: { id: 'finder.label.taxes' },\n LABEL_TOP_AMENITIES: { id: 'finder.label.top_amenities' },\n LABEL_TOTAL: { id: 'common.label.total' },\n LABEL_WHATS_INCLUDED: { id: 'finder.label.whats_included' },\n};\n"],"mappings":";;;;;;AAAO,MAAMA,IAAI,GAAAC,OAAA,CAAAD,IAAA,GAAG;EAClBE,gBAAgB,EAAE;IAAEC,EAAE,EAAE;EAA0B,CAAC;EACnDC,cAAc,EAAE;IAAED,EAAE,EAAE;EAAwB,CAAC;EAC/CE,gBAAgB,EAAE;IAAEF,EAAE,EAAE;EAA0B,CAAC;EAEnDG,wBAAwB,EAAE;IAAEH,EAAE,EAAE;EAAkC,CAAC;EACnEI,gBAAgB,EAAE;IAAEJ,EAAE,EAAE;EAA0B,CAAC;EACnDK,qBAAqB,EAAE;IAAEL,EAAE,EAAE;EAA+B,CAAC;EAC7DM,yBAAyB,EAAE;IAAEN,EAAE,EAAE;EAAmC,CAAC;EACrEO,kBAAkB,EAAE;IAAEP,EAAE,EAAE;EAA4B,CAAC;EACvDQ,iBAAiB,EAAE;IAAER,EAAE,EAAE;EAA2B,CAAC;EACrDS,cAAc,EAAE;IAAET,EAAE,EAAE;EAAwB,CAAC;EAC/CU,cAAc,EAAE;IAAEV,EAAE,EAAE;EAAwB,CAAC;EAC/CW,uBAAuB,EAAE;IAAEX,EAAE,EAAE;EAAiC,CAAC;EACjEY,mBAAmB,EAAE;IACnB,CAAC,EAAE;MAAEZ,EAAE,EAAE;IAA6B,CAAC;IACvC,CAAC,EAAE;MAAEA,EAAE,EAAE;IAA6B,CAAC;IACvC,CAAC,EAAE;MAAEA,EAAE,EAAE;IAAkC;EAC7C,CAAC;EACDa,YAAY,EAAE;IAAEb,EAAE,EAAE;EAAsB,CAAC;EAC3Cc,UAAU,EAAE;IAAEd,EAAE,EAAE;EAAoB,CAAC;EACvCe,cAAc,EAAE;IAAEf,EAAE,EAAE;EAAwB,CAAC;EAC/CgB,mBAAmB,EAAE;IAAEhB,EAAE,EAAE;EAA6B,CAAC;EACzDiB,oBAAoB,EAAE;IAAEjB,EAAE,EAAE;EAA8B,CAAC;EAC3DkB,mBAAmB,EAAE;IAAElB,EAAE,EAAE;EAA6B,CAAC;EACzDmB,WAAW,EAAE;IAAEnB,EAAE,EAAE;EAAqB,CAAC;EACzCoB,kBAAkB,EAAE;IAAEpB,EAAE,EAAE;EAA4B,CAAC;EACvDqB,QAAQ,EAAE;IAAErB,EAAE,EAAE;EAAkB,CAAC;EACnCsB,mBAAmB,EAAE;IAAEtB,EAAE,EAAE;EAA6B,CAAC;EACzDuB,eAAe,EAAE;IAAEvB,EAAE,EAAE;EAAyB,CAAC;EACjDwB,mBAAmB,EAAE;IAAExB,EAAE,EAAE;EAA6B,CAAC;EACzDyB,qBAAqB,EAAE;IAAEzB,EAAE,EAAE;EAA+B,CAAC;EAC7D0B,YAAY,EAAE;IAAE1B,EAAE,EAAE;EAAsB,CAAC;EAC3C2B,yBAAyB,EAAE;IAAE3B,EAAE,EAAE;EAAmC,CAAC;EACrE4B,WAAW,EAAE;IAAE5B,EAAE,EAAE;EAAqB,CAAC;EACzC6B,mBAAmB,EAAE;IAAE7B,EAAE,EAAE;EAA6B,CAAC;EACzD8B,WAAW,EAAE;IAAE9B,EAAE,EAAE;EAAqB,CAAC;EACzC+B,oBAAoB,EAAE;IAAE/B,EAAE,EAAE;EAA8B;AAC5D,CAAC"}
1
+ {"version":3,"file":"Item.l10n.js","names":["L10N","exports","ACTION_MORE_INFO","id","ACTION_RESERVE","ACTION_VIEW_MORE","LABEL_ACCOMMODATION_PLAN","LABEL_BASE_PRICE","LABEL_BED_DISPOSITION","LABEL_CANCELLATION_POLICY","LABEL_CLUB_MEMBERS","LABEL_DESCRIPTION","LABEL_DESELECT","LABEL_DISCOUNT","LABEL_DISCOUNT_INCLUDED","LABEL_DISCOUNT_TYPE","LABEL_EXTRAS","LABEL_FEES","LABEL_INCLUDED","LABEL_LIMITED_OFFER","LABEL_MAX_OCCUPATION","LABEL_MORE_SERVICES","LABEL_OFFER","LABEL_ONLY_MEMBERS","LABEL_OR","LABEL_PAYMENT_TERMS","LABEL_PER_NIGHT","LABEL_PRICE_DETAILS","LABEL_REMAINING_ITEMS","LABEL_SELECT","LABEL_SELECTED_OCCUPATION","LABEL_TAXES","LABEL_TOP_AMENITIES","LABEL_TOTAL","LABEL_YEARS_OLD","LABEL_WHATS_INCLUDED"],"sources":["../../../../../src/components/Rates/components/Item/Item.l10n.js"],"sourcesContent":["export const L10N = {\n ACTION_MORE_INFO: { id: 'common.action.more_info' },\n ACTION_RESERVE: { id: 'common.action.reserve' },\n ACTION_VIEW_MORE: { id: 'common.action.view_more' },\n\n LABEL_ACCOMMODATION_PLAN: { id: 'finder.label.accommodation_plan' },\n LABEL_BASE_PRICE: { id: 'common.label.base_price' },\n LABEL_BED_DISPOSITION: { id: 'finder.label.bed_disposition' },\n LABEL_CANCELLATION_POLICY: { id: 'common.label.cancellation_policy' },\n LABEL_CLUB_MEMBERS: { id: 'finder.label.club_members' },\n LABEL_DESCRIPTION: { id: 'common.label.description' },\n LABEL_DESELECT: { id: 'common.label.deselect' },\n LABEL_DISCOUNT: { id: 'finder.label.discount' },\n LABEL_DISCOUNT_INCLUDED: { id: 'finder.label.discount_included' },\n LABEL_DISCOUNT_TYPE: {\n 0: { id: 'finder.label.discount_club' },\n 1: { id: 'finder.label.discount_deal' },\n 2: { id: 'finder.label.discount_promotion' },\n },\n LABEL_EXTRAS: { id: 'common.label.extras' },\n LABEL_FEES: { id: 'finder.label.fees' },\n LABEL_INCLUDED: { id: 'common.label.included' },\n LABEL_LIMITED_OFFER: { id: 'finder.label.limited_offer' },\n LABEL_MAX_OCCUPATION: { id: 'common.label.max_occupation' },\n LABEL_MORE_SERVICES: { id: 'finder.label.more_services' },\n LABEL_OFFER: { id: 'common.label.offer' },\n LABEL_ONLY_MEMBERS: { id: 'finder.label.only_members' },\n LABEL_OR: { id: 'common.label.or' },\n LABEL_PAYMENT_TERMS: { id: 'common.label.payment_terms' },\n LABEL_PER_NIGHT: { id: 'finder.label.per_night' },\n LABEL_PRICE_DETAILS: { id: 'finder.label.price_details' },\n LABEL_REMAINING_ITEMS: { id: 'finder.label.remaining_items' },\n LABEL_SELECT: { id: 'common.label.select' },\n LABEL_SELECTED_OCCUPATION: { id: 'common.label.selected_occupation' },\n LABEL_TAXES: { id: 'finder.label.taxes' },\n LABEL_TOP_AMENITIES: { id: 'finder.label.top_amenities' },\n LABEL_TOTAL: { id: 'common.label.total' },\n LABEL_YEARS_OLD: { id: 'common.label.years_old' },\n LABEL_WHATS_INCLUDED: { id: 'finder.label.whats_included' },\n};\n"],"mappings":";;;;;;AAAO,MAAMA,IAAI,GAAAC,OAAA,CAAAD,IAAA,GAAG;EAClBE,gBAAgB,EAAE;IAAEC,EAAE,EAAE;EAA0B,CAAC;EACnDC,cAAc,EAAE;IAAED,EAAE,EAAE;EAAwB,CAAC;EAC/CE,gBAAgB,EAAE;IAAEF,EAAE,EAAE;EAA0B,CAAC;EAEnDG,wBAAwB,EAAE;IAAEH,EAAE,EAAE;EAAkC,CAAC;EACnEI,gBAAgB,EAAE;IAAEJ,EAAE,EAAE;EAA0B,CAAC;EACnDK,qBAAqB,EAAE;IAAEL,EAAE,EAAE;EAA+B,CAAC;EAC7DM,yBAAyB,EAAE;IAAEN,EAAE,EAAE;EAAmC,CAAC;EACrEO,kBAAkB,EAAE;IAAEP,EAAE,EAAE;EAA4B,CAAC;EACvDQ,iBAAiB,EAAE;IAAER,EAAE,EAAE;EAA2B,CAAC;EACrDS,cAAc,EAAE;IAAET,EAAE,EAAE;EAAwB,CAAC;EAC/CU,cAAc,EAAE;IAAEV,EAAE,EAAE;EAAwB,CAAC;EAC/CW,uBAAuB,EAAE;IAAEX,EAAE,EAAE;EAAiC,CAAC;EACjEY,mBAAmB,EAAE;IACnB,CAAC,EAAE;MAAEZ,EAAE,EAAE;IAA6B,CAAC;IACvC,CAAC,EAAE;MAAEA,EAAE,EAAE;IAA6B,CAAC;IACvC,CAAC,EAAE;MAAEA,EAAE,EAAE;IAAkC;EAC7C,CAAC;EACDa,YAAY,EAAE;IAAEb,EAAE,EAAE;EAAsB,CAAC;EAC3Cc,UAAU,EAAE;IAAEd,EAAE,EAAE;EAAoB,CAAC;EACvCe,cAAc,EAAE;IAAEf,EAAE,EAAE;EAAwB,CAAC;EAC/CgB,mBAAmB,EAAE;IAAEhB,EAAE,EAAE;EAA6B,CAAC;EACzDiB,oBAAoB,EAAE;IAAEjB,EAAE,EAAE;EAA8B,CAAC;EAC3DkB,mBAAmB,EAAE;IAAElB,EAAE,EAAE;EAA6B,CAAC;EACzDmB,WAAW,EAAE;IAAEnB,EAAE,EAAE;EAAqB,CAAC;EACzCoB,kBAAkB,EAAE;IAAEpB,EAAE,EAAE;EAA4B,CAAC;EACvDqB,QAAQ,EAAE;IAAErB,EAAE,EAAE;EAAkB,CAAC;EACnCsB,mBAAmB,EAAE;IAAEtB,EAAE,EAAE;EAA6B,CAAC;EACzDuB,eAAe,EAAE;IAAEvB,EAAE,EAAE;EAAyB,CAAC;EACjDwB,mBAAmB,EAAE;IAAExB,EAAE,EAAE;EAA6B,CAAC;EACzDyB,qBAAqB,EAAE;IAAEzB,EAAE,EAAE;EAA+B,CAAC;EAC7D0B,YAAY,EAAE;IAAE1B,EAAE,EAAE;EAAsB,CAAC;EAC3C2B,yBAAyB,EAAE;IAAE3B,EAAE,EAAE;EAAmC,CAAC;EACrE4B,WAAW,EAAE;IAAE5B,EAAE,EAAE;EAAqB,CAAC;EACzC6B,mBAAmB,EAAE;IAAE7B,EAAE,EAAE;EAA6B,CAAC;EACzD8B,WAAW,EAAE;IAAE9B,EAAE,EAAE;EAAqB,CAAC;EACzC+B,eAAe,EAAE;IAAE/B,EAAE,EAAE;EAAyB,CAAC;EACjDgC,oBAAoB,EAAE;IAAEhC,EAAE,EAAE;EAA8B;AAC5D,CAAC"}
@@ -36,7 +36,12 @@ const Amenities = _ref => {
36
36
  return values.length ? /*#__PURE__*/_react.default.createElement(_ui.View, {
37
37
  row: oversized,
38
38
  className: (0, _ui.styles)(highlight ? oversized ? style.oversized : style.list : style.columns, others.className)
39
- }, values.map(function () {
39
+ }, values.sort(function () {
40
+ let a = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
41
+ let b = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
42
+ if (a.exclusive === b.exclusive) return 0;
43
+ return a.exclusive ? -1 : 1;
44
+ }).map(function () {
40
45
  let {
41
46
  exclusive,
42
47
  id,