@mirai/core 0.3.157 → 0.3.158

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -40,8 +40,8 @@ const COMMISSION_TYPE = exports.COMMISSION_TYPE = {
40
40
  [TYPE.CHAIN]: '02080'
41
41
  };
42
42
  const MIN_STAY_TYPE = exports.MIN_STAY_TYPE = {
43
- CHECK_IN: 0,
44
- STAY: 1
43
+ CHECK_IN: 1,
44
+ STAY: 2
45
45
  };
46
46
  const TAX_DEFAULT = exports.TAX_DEFAULT = 1;
47
47
  const TAX_FREE = 2;
@@ -1 +1 @@
1
- {"version":3,"file":"Core.constants.js","names":["ACCOMMODATION_TYPE","exports","DEFAULT","ROOM","APARTMENT","PITCH","ACCOMMODATION","VILLA","AUTH_TYPE","MIRAI","PESTANA","CALENDAR_FORMAT","ERROR","NOT_AVAILABLE","PARAMETER_ERROR","UNKNOWN","TYPE","CHAIN","HOTEL","GUEST","ADULT","CHILD","COMMISSION_TYPE","MIN_STAY_TYPE","CHECK_IN","STAY","TAX_DEFAULT","TAX_FREE","TAX_PARTIAL","TAXES","TAXES_TYPE","ALL_EXCLUDED","ALL_INCLUDED","FEES_INCLUDED","FEES_EXCLUDED","FEES_INCLUDED_TAXES_EXCLUDED","TAXES_INCLUDED","TAXES_EXCLUDED","TAXES_INCLUDED_FEES_EXCLUDED"],"sources":["../src/Core.constants.js"],"sourcesContent":["const ACCOMMODATION_TYPE = {\n DEFAULT: 0,\n ROOM: 1, // \"ROOM\"\n APARTMENT: 2, // \"APARTMENT\"\n PITCH: 3, // \"PITCH\"\n ACCOMMODATION: 4, // \"ACCOMMODATION\"\n VILLA: 5, // \"VILLA\"\n};\n\nconst AUTH_TYPE = {\n MIRAI: 1,\n PESTANA: 3,\n};\n\nconst CALENDAR_FORMAT = 'DD/MM/YYYY';\n\nconst ERROR = {\n NOT_AVAILABLE: 4,\n PARAMETER_ERROR: 3,\n UNKNOWN: 1,\n};\n\nconst TYPE = {\n // -- place\n CHAIN: 'chain',\n HOTEL: 'hotel',\n // -- person\n GUEST: 1,\n ADULT: 2,\n CHILD: 3,\n};\n\nconst COMMISSION_TYPE = {\n [TYPE.HOTEL]: '02040',\n [TYPE.CHAIN]: '02080',\n};\n\nconst MIN_STAY_TYPE = { CHECK_IN: 0, STAY: 1 };\n\nconst TAX_DEFAULT = 1;\nconst TAX_FREE = 2;\nconst TAX_PARTIAL = 3;\n\nconst TAXES = [TAX_DEFAULT, TAX_FREE, TAX_PARTIAL];\n\nconst TAXES_TYPE = {\n ALL_EXCLUDED: 1,\n ALL_INCLUDED: 2,\n FEES_INCLUDED: 3,\n FEES_EXCLUDED: 4,\n FEES_INCLUDED_TAXES_EXCLUDED: 5,\n TAXES_INCLUDED: 6,\n TAXES_EXCLUDED: 7,\n TAXES_INCLUDED_FEES_EXCLUDED: 8,\n};\n\nexport {\n ACCOMMODATION_TYPE,\n AUTH_TYPE,\n CALENDAR_FORMAT,\n COMMISSION_TYPE,\n ERROR,\n MIN_STAY_TYPE,\n TAX_DEFAULT,\n TAXES,\n TAXES_TYPE,\n TYPE,\n};\n"],"mappings":";;;;;;AAAA,MAAMA,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,GAAG;EACzBE,OAAO,EAAE,CAAC;EACVC,IAAI,EAAE,CAAC;EAAE;EACTC,SAAS,EAAE,CAAC;EAAE;EACdC,KAAK,EAAE,CAAC;EAAE;EACVC,aAAa,EAAE,CAAC;EAAE;EAClBC,KAAK,EAAE,CAAC,CAAE;AACZ,CAAC;AAED,MAAMC,SAAS,GAAAP,OAAA,CAAAO,SAAA,GAAG;EAChBC,KAAK,EAAE,CAAC;EACRC,OAAO,EAAE;AACX,CAAC;AAED,MAAMC,eAAe,GAAAV,OAAA,CAAAU,eAAA,GAAG,YAAY;AAEpC,MAAMC,KAAK,GAAAX,OAAA,CAAAW,KAAA,GAAG;EACZC,aAAa,EAAE,CAAC;EAChBC,eAAe,EAAE,CAAC;EAClBC,OAAO,EAAE;AACX,CAAC;AAED,MAAMC,IAAI,GAAAf,OAAA,CAAAe,IAAA,GAAG;EACX;EACAC,KAAK,EAAE,OAAO;EACdC,KAAK,EAAE,OAAO;EACd;EACAC,KAAK,EAAE,CAAC;EACRC,KAAK,EAAE,CAAC;EACRC,KAAK,EAAE;AACT,CAAC;AAED,MAAMC,eAAe,GAAArB,OAAA,CAAAqB,eAAA,GAAG;EACtB,CAACN,IAAI,CAACE,KAAK,GAAG,OAAO;EACrB,CAACF,IAAI,CAACC,KAAK,GAAG;AAChB,CAAC;AAED,MAAMM,aAAa,GAAAtB,OAAA,CAAAsB,aAAA,GAAG;EAAEC,QAAQ,EAAE,CAAC;EAAEC,IAAI,EAAE;AAAE,CAAC;AAE9C,MAAMC,WAAW,GAAAzB,OAAA,CAAAyB,WAAA,GAAG,CAAC;AACrB,MAAMC,QAAQ,GAAG,CAAC;AAClB,MAAMC,WAAW,GAAG,CAAC;AAErB,MAAMC,KAAK,GAAA5B,OAAA,CAAA4B,KAAA,GAAG,CAACH,WAAW,EAAEC,QAAQ,EAAEC,WAAW,CAAC;AAElD,MAAME,UAAU,GAAA7B,OAAA,CAAA6B,UAAA,GAAG;EACjBC,YAAY,EAAE,CAAC;EACfC,YAAY,EAAE,CAAC;EACfC,aAAa,EAAE,CAAC;EAChBC,aAAa,EAAE,CAAC;EAChBC,4BAA4B,EAAE,CAAC;EAC/BC,cAAc,EAAE,CAAC;EACjBC,cAAc,EAAE,CAAC;EACjBC,4BAA4B,EAAE;AAChC,CAAC"}
1
+ {"version":3,"file":"Core.constants.js","names":["ACCOMMODATION_TYPE","exports","DEFAULT","ROOM","APARTMENT","PITCH","ACCOMMODATION","VILLA","AUTH_TYPE","MIRAI","PESTANA","CALENDAR_FORMAT","ERROR","NOT_AVAILABLE","PARAMETER_ERROR","UNKNOWN","TYPE","CHAIN","HOTEL","GUEST","ADULT","CHILD","COMMISSION_TYPE","MIN_STAY_TYPE","CHECK_IN","STAY","TAX_DEFAULT","TAX_FREE","TAX_PARTIAL","TAXES","TAXES_TYPE","ALL_EXCLUDED","ALL_INCLUDED","FEES_INCLUDED","FEES_EXCLUDED","FEES_INCLUDED_TAXES_EXCLUDED","TAXES_INCLUDED","TAXES_EXCLUDED","TAXES_INCLUDED_FEES_EXCLUDED"],"sources":["../src/Core.constants.js"],"sourcesContent":["const ACCOMMODATION_TYPE = {\n DEFAULT: 0,\n ROOM: 1, // \"ROOM\"\n APARTMENT: 2, // \"APARTMENT\"\n PITCH: 3, // \"PITCH\"\n ACCOMMODATION: 4, // \"ACCOMMODATION\"\n VILLA: 5, // \"VILLA\"\n};\n\nconst AUTH_TYPE = {\n MIRAI: 1,\n PESTANA: 3,\n};\n\nconst CALENDAR_FORMAT = 'DD/MM/YYYY';\n\nconst ERROR = {\n NOT_AVAILABLE: 4,\n PARAMETER_ERROR: 3,\n UNKNOWN: 1,\n};\n\nconst TYPE = {\n // -- place\n CHAIN: 'chain',\n HOTEL: 'hotel',\n // -- person\n GUEST: 1,\n ADULT: 2,\n CHILD: 3,\n};\n\nconst COMMISSION_TYPE = {\n [TYPE.HOTEL]: '02040',\n [TYPE.CHAIN]: '02080',\n};\n\nconst MIN_STAY_TYPE = { CHECK_IN: 1, STAY: 2 };\n\nconst TAX_DEFAULT = 1;\nconst TAX_FREE = 2;\nconst TAX_PARTIAL = 3;\n\nconst TAXES = [TAX_DEFAULT, TAX_FREE, TAX_PARTIAL];\n\nconst TAXES_TYPE = {\n ALL_EXCLUDED: 1,\n ALL_INCLUDED: 2,\n FEES_INCLUDED: 3,\n FEES_EXCLUDED: 4,\n FEES_INCLUDED_TAXES_EXCLUDED: 5,\n TAXES_INCLUDED: 6,\n TAXES_EXCLUDED: 7,\n TAXES_INCLUDED_FEES_EXCLUDED: 8,\n};\n\nexport {\n ACCOMMODATION_TYPE,\n AUTH_TYPE,\n CALENDAR_FORMAT,\n COMMISSION_TYPE,\n ERROR,\n MIN_STAY_TYPE,\n TAX_DEFAULT,\n TAXES,\n TAXES_TYPE,\n TYPE,\n};\n"],"mappings":";;;;;;AAAA,MAAMA,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,GAAG;EACzBE,OAAO,EAAE,CAAC;EACVC,IAAI,EAAE,CAAC;EAAE;EACTC,SAAS,EAAE,CAAC;EAAE;EACdC,KAAK,EAAE,CAAC;EAAE;EACVC,aAAa,EAAE,CAAC;EAAE;EAClBC,KAAK,EAAE,CAAC,CAAE;AACZ,CAAC;AAED,MAAMC,SAAS,GAAAP,OAAA,CAAAO,SAAA,GAAG;EAChBC,KAAK,EAAE,CAAC;EACRC,OAAO,EAAE;AACX,CAAC;AAED,MAAMC,eAAe,GAAAV,OAAA,CAAAU,eAAA,GAAG,YAAY;AAEpC,MAAMC,KAAK,GAAAX,OAAA,CAAAW,KAAA,GAAG;EACZC,aAAa,EAAE,CAAC;EAChBC,eAAe,EAAE,CAAC;EAClBC,OAAO,EAAE;AACX,CAAC;AAED,MAAMC,IAAI,GAAAf,OAAA,CAAAe,IAAA,GAAG;EACX;EACAC,KAAK,EAAE,OAAO;EACdC,KAAK,EAAE,OAAO;EACd;EACAC,KAAK,EAAE,CAAC;EACRC,KAAK,EAAE,CAAC;EACRC,KAAK,EAAE;AACT,CAAC;AAED,MAAMC,eAAe,GAAArB,OAAA,CAAAqB,eAAA,GAAG;EACtB,CAACN,IAAI,CAACE,KAAK,GAAG,OAAO;EACrB,CAACF,IAAI,CAACC,KAAK,GAAG;AAChB,CAAC;AAED,MAAMM,aAAa,GAAAtB,OAAA,CAAAsB,aAAA,GAAG;EAAEC,QAAQ,EAAE,CAAC;EAAEC,IAAI,EAAE;AAAE,CAAC;AAE9C,MAAMC,WAAW,GAAAzB,OAAA,CAAAyB,WAAA,GAAG,CAAC;AACrB,MAAMC,QAAQ,GAAG,CAAC;AAClB,MAAMC,WAAW,GAAG,CAAC;AAErB,MAAMC,KAAK,GAAA5B,OAAA,CAAA4B,KAAA,GAAG,CAACH,WAAW,EAAEC,QAAQ,EAAEC,WAAW,CAAC;AAElD,MAAME,UAAU,GAAA7B,OAAA,CAAA6B,UAAA,GAAG;EACjBC,YAAY,EAAE,CAAC;EACfC,YAAY,EAAE,CAAC;EACfC,aAAa,EAAE,CAAC;EAChBC,aAAa,EAAE,CAAC;EAChBC,4BAA4B,EAAE,CAAC;EAC/BC,cAAc,EAAE,CAAC;EACjBC,cAAc,EAAE,CAAC;EACjBC,4BAA4B,EAAE;AAChC,CAAC"}
@@ -220,7 +220,7 @@ const Finder = _ref => {
220
220
  placeholder: (0, _helpers3.getCalendarCaption)(undefined, translate, dateFormat),
221
221
  visible: focus === _Finder2.VIEW.CALENDAR,
222
222
  onPress: () => setFocus(focus !== _Finder2.VIEW.CALENDAR ? _Finder2.VIEW.CALENDAR : undefined)
223
- }), /*#__PURE__*/_react.default.createElement(_components.Calendar, _extends({}, (0, _helpers.parseCalendarProps)(dataSource.calendar, id, type, dataSource.variants), {
223
+ }), /*#__PURE__*/_react.default.createElement(_components.Calendar, _extends({}, (0, _helpers.parseCalendarProps)(dataSource.calendar, id, occupation, type, unavailability, dataSource.variants), {
224
224
  id: id,
225
225
  currency: currency,
226
226
  locale: locale,
@@ -1 +1 @@
1
- {"version":3,"file":"Finder.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_Finder","_Finder2","_Finder3","style","_helpers","_shared__","_helpers2","_Occupation","_helpers3","_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","HOTEL","TYPE","memoizedScrollY","Finder","_ref","_dataSource$places","_dataSource$promo","_dataSource$cta","assisted","compacted","layout","text","onChange","onSubmit","others","isMobile","useDevice","dateFormat","translate","useLocale","ref","useRef","value","currency","finder","storeFinder","forwarder","locale","type","store","useStore","error","setError","useState","focus","setFocus","unavailability","setUnavailability","setValue","parseValue","visited","setVisited","useEffect","occupation","prepareRoom","DATASOURCE","handleClickOutside","_ref$current","undefined","current","contains","document","addEventListener","removeEventListener","callback","calendar","Event","subscribe","EVENT","FINDER","unsubscribe","handleScroll","scrollY","window","GAP_SCROLL","JSON","stringify","concat","handleChange","field","fieldValue","next","handleSubmit","firstError","keys","filter","forwarderUrl","getForwarderUrl","location","href","assistant","VIEW","PLACE","CALENDAR","OCCUPATION","place","promocode","testId","dataSource","getDataSource","id","ids","isHotel","hotel","idHotel","isCompacted","createElement","Fragment","Compact","onExpand","View","role","row","className","styles","places","Field","FIELD","caption","getPlaceCaption","options","label","L10N","LABEL_WHERE","placeholder","LABEL_WHERE_PLACEHOLDER","visible","onPress","backgroundColor","maxWidth","Places","autoColumn","event","getCalendarCaption","centered","LABEL_WHEN","Calendar","parseCalendarProps","variants","onError","onValid","FieldOccupation","getOccupationDataSource","hotels","getHotels","placesSource","maxRooms","FieldPromocode","promo","PROMOCODE","onEnter","onLeave","Button","large","wide","button","cta","ACTION_BOOK","exports","displayName","propTypes","PropTypes","bool","oneOf","string","func"],"sources":["../../../src/components/Finder/Finder.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Button, styles, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { Calendar, Places } from './components';\nimport { Compact } from './Finder.compact';\nimport { FIELD, GAP_SCROLL, TYPE, VIEW } from './Finder.constants';\nimport { L10N } from './Finder.l10n';\nimport * as style from './Finder.module.css';\nimport {\n getDataSource,\n getForwarderUrl,\n getHotels,\n getOccupationDataSource,\n getPlaceCaption,\n parseCalendarProps,\n parseValue,\n} from './helpers';\nimport { Field, FieldOccupation, FieldPromocode } from '../__shared__';\nimport { prepareRoom } from '../__shared__/Occupation/helpers';\nimport { DATASOURCE } from '../__shared__/Occupation/Occupation.constants';\nimport { getCalendarCaption } from '../helpers';\nimport { EVENT } from '../helpers';\n\nconst { HOTEL } = TYPE;\nlet memoizedScrollY = 0;\n\nconst Finder = ({ assisted = true, compacted = false, layout, text, onChange = () => {}, onSubmit, ...others }) => {\n const { isMobile } = useDevice();\n const { dateFormat, translate } = useLocale();\n const ref = useRef(null);\n const {\n set,\n value: { currency, finder: storeFinder, forwarder, locale, type = HOTEL, ...store },\n } = useStore();\n\n const [error, setError] = useState({});\n const [focus, setFocus] = useState();\n const [unavailability, setUnavailability] = useState();\n const [value, setValue] = useState(parseValue(storeFinder));\n const [visited, setVisited] = useState({});\n\n useEffect(() => {\n if (!storeFinder?.occupation) set({ finder: { ...storeFinder, occupation: [prepareRoom(DATASOURCE)] } });\n if (isMobile) return;\n\n const handleClickOutside = ({ target } = {}) => !ref.current?.contains(target) && setFocus(undefined);\n document.addEventListener('click', handleClickOutside, true);\n\n return () => document.removeEventListener('click', handleClickOutside, true);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n const callback = ({ calendar, focus } = {}) => {\n setUnavailability(calendar);\n if (focus) setFocus(focus);\n };\n\n Event.subscribe(EVENT.FINDER, callback);\n return () => Event.unsubscribe(EVENT.FINDER, callback);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (!compacted) return;\n\n const handleScroll = () => {\n const { scrollY } = window;\n if (scrollY > memoizedScrollY + GAP_SCROLL || scrollY < memoizedScrollY - GAP_SCROLL) {\n memoizedScrollY = scrollY;\n setFocus(undefined);\n }\n };\n window.addEventListener('scroll', handleScroll);\n\n return () => window.removeEventListener('scroll', handleScroll);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [compacted]);\n\n useEffect(\n () => JSON.stringify(value) !== JSON.stringify(parseValue(storeFinder)) && setValue(parseValue(storeFinder)),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [storeFinder],\n );\n\n useEffect(() => {\n focus && setVisited({ ...visited, [`${focus}`]: true });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [focus]);\n\n const handleChange = (field, fieldValue) => {\n const next = { ...value, [field]: fieldValue };\n\n setValue(next);\n onChange(next, field, fieldValue);\n };\n\n const handleSubmit = () => {\n const [firstError] = Object.keys(error).filter((key) => !!error[key]);\n if (firstError) return setFocus(firstError);\n\n setFocus(undefined);\n set({ finder: value });\n const forwarderUrl = getForwarderUrl({ ...value, currency, forwarder, locale, store, type });\n\n if (onSubmit) onSubmit({ ...value, forwarderUrl });\n else window.location.href = forwarderUrl;\n };\n\n const assistant = () => {\n if (!assisted) return setFocus(undefined);\n\n const { calendar = [] } = value;\n if (focus === VIEW.PLACE && !visited.calendar && calendar.length !== 2) setFocus(VIEW.CALENDAR);\n else if (focus === VIEW.CALENDAR && !visited.occupation) setFocus(VIEW.OCCUPATION);\n else if (!compacted) setFocus(undefined);\n };\n\n const { place = {}, calendar = [], occupation, promocode } = value;\n const { testId } = others;\n const dataSource = getDataSource({ type, ...store });\n const { place: { id: ids = [], isHotel } = {} } = value || {};\n const { hotel: { id: idHotel } = {} } = store;\n const id = type !== HOTEL ? (isHotel && ids.length === 1 ? ids[0] : undefined) : idHotel;\n const isCompacted = (compacted && isMobile) || (compacted && !isMobile && !focus);\n\n return (\n <>\n {isCompacted && <Compact {...{ value, dataSource }} onExpand={setFocus} onSubmit={handleSubmit} />}\n <View\n role=\"finder\"\n ref={ref}\n row={!isMobile}\n testId={others.testId}\n className={styles(style.finder, layout && style[layout], others.className)}\n >\n {dataSource.places && (\n <Field\n {...FIELD.PLACE}\n caption={getPlaceCaption(place.value, dataSource.places.options)}\n compacted={isCompacted}\n label={translate(L10N.LABEL_WHERE)}\n placeholder={dataSource.places.placeholder || translate(L10N.LABEL_WHERE_PLACEHOLDER)}\n visible={focus === VIEW.PLACE}\n onPress={() => setFocus(focus !== VIEW.PLACE ? VIEW.PLACE : undefined)}\n className={{ backgroundColor: 'red', maxWidth: 128 }}\n >\n <Places\n autoColumn={focus === VIEW.PLACE}\n dataSource={dataSource.places.options}\n value={place.value}\n onChange={(place, event) => {\n handleChange(VIEW.PLACE, place, event);\n assistant();\n }}\n onSubmit={isMobile ? assistant : undefined}\n testId={testId ? `${testId}-places` : undefined}\n />\n </Field>\n )}\n\n <Field\n {...FIELD.CALENDAR}\n caption={calendar.length ? getCalendarCaption(calendar, translate, dateFormat) : undefined}\n centered={type !== HOTEL}\n compacted={isCompacted}\n label={translate(L10N.LABEL_WHEN)}\n placeholder={getCalendarCaption(undefined, translate, dateFormat)}\n visible={focus === VIEW.CALENDAR}\n onPress={() => setFocus(focus !== VIEW.CALENDAR ? VIEW.CALENDAR : undefined)}\n >\n <Calendar\n {...parseCalendarProps(dataSource.calendar, id, type, dataSource.variants)}\n id={id}\n currency={currency}\n locale={locale}\n text={compacted ? text : undefined}\n unavailability={unavailability}\n value={calendar}\n onChange={(calendar, event) => {\n handleChange(VIEW.CALENDAR, calendar, event);\n if (calendar.length === 2 && assisted) assistant();\n }}\n onError={(calendar) => setError({ ...error, calendar })}\n onValid={() => setError({ ...error, calendar: undefined })}\n onSubmit={isMobile ? (compacted ? handleSubmit : assisted ? assistant : undefined) : undefined}\n testId={testId ? `${testId}-calendar` : undefined}\n />\n </Field>\n\n <FieldOccupation\n compacted={isCompacted}\n dataSource={getOccupationDataSource({\n ...dataSource,\n places: dataSource.places?.options,\n place: place?.value,\n })}\n hotels={getHotels(dataSource.placesSource, place.value)}\n maxRooms={dataSource.maxRooms}\n text={compacted ? text : undefined}\n value={occupation}\n visible={focus === VIEW.OCCUPATION}\n onChange={(occupation, event) => handleChange(VIEW.OCCUPATION, occupation, event)}\n onError={(occupation) => {\n if (!isMobile && focus !== VIEW.OCCUPATION) setFocus(VIEW.OCCUPATION);\n setError({ ...error, occupation });\n }}\n onPress={() => setFocus(focus !== VIEW.OCCUPATION ? VIEW.OCCUPATION : undefined)}\n onSubmit={isMobile && compacted ? handleSubmit : undefined}\n onValid={() => setError({ ...error, occupation: undefined })}\n testId={testId ? `${testId}-occupation` : undefined}\n />\n\n <FieldPromocode\n compacted={isCompacted}\n placeholder={dataSource.promo?.placeholder}\n value={promocode}\n visible={focus === VIEW.PROMOCODE}\n onChange={(promocode, event) => handleChange(VIEW.PROMOCODE, promocode, event)}\n onEnter={() => setFocus(VIEW.PROMOCODE)}\n onLeave={() => setFocus(undefined)}\n testId={testId ? `${testId}-promocode` : undefined}\n />\n\n {!isCompacted && (\n <Button\n large\n wide={isMobile}\n onPress={handleSubmit}\n className={style.button}\n testId={testId ? `${testId}-submit` : undefined}\n >\n {text || dataSource.cta?.placeholder || translate(L10N.ACTION_BOOK)}\n </Button>\n )}\n </View>\n </>\n );\n};\n\nFinder.displayName = 'Mirai:Core:Finder';\n\nFinder.propTypes = {\n assisted: PropTypes.bool,\n compacted: PropTypes.bool,\n layout: PropTypes.oneOf(['column']),\n text: PropTypes.string,\n onChange: PropTypes.func,\n onSubmit: PropTypes.func,\n};\n\nexport { Finder };\n"],"mappings":"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"}
1
+ {"version":3,"file":"Finder.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_Finder","_Finder2","_Finder3","style","_helpers","_shared__","_helpers2","_Occupation","_helpers3","_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","HOTEL","TYPE","memoizedScrollY","Finder","_ref","_dataSource$places","_dataSource$promo","_dataSource$cta","assisted","compacted","layout","text","onChange","onSubmit","others","isMobile","useDevice","dateFormat","translate","useLocale","ref","useRef","value","currency","finder","storeFinder","forwarder","locale","type","store","useStore","error","setError","useState","focus","setFocus","unavailability","setUnavailability","setValue","parseValue","visited","setVisited","useEffect","occupation","prepareRoom","DATASOURCE","handleClickOutside","_ref$current","undefined","current","contains","document","addEventListener","removeEventListener","callback","calendar","Event","subscribe","EVENT","FINDER","unsubscribe","handleScroll","scrollY","window","GAP_SCROLL","JSON","stringify","concat","handleChange","field","fieldValue","next","handleSubmit","firstError","keys","filter","forwarderUrl","getForwarderUrl","location","href","assistant","VIEW","PLACE","CALENDAR","OCCUPATION","place","promocode","testId","dataSource","getDataSource","id","ids","isHotel","hotel","idHotel","isCompacted","createElement","Fragment","Compact","onExpand","View","role","row","className","styles","places","Field","FIELD","caption","getPlaceCaption","options","label","L10N","LABEL_WHERE","placeholder","LABEL_WHERE_PLACEHOLDER","visible","onPress","backgroundColor","maxWidth","Places","autoColumn","event","getCalendarCaption","centered","LABEL_WHEN","Calendar","parseCalendarProps","variants","onError","onValid","FieldOccupation","getOccupationDataSource","hotels","getHotels","placesSource","maxRooms","FieldPromocode","promo","PROMOCODE","onEnter","onLeave","Button","large","wide","button","cta","ACTION_BOOK","exports","displayName","propTypes","PropTypes","bool","oneOf","string","func"],"sources":["../../../src/components/Finder/Finder.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Button, styles, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { Calendar, Places } from './components';\nimport { Compact } from './Finder.compact';\nimport { FIELD, GAP_SCROLL, TYPE, VIEW } from './Finder.constants';\nimport { L10N } from './Finder.l10n';\nimport * as style from './Finder.module.css';\nimport {\n getDataSource,\n getForwarderUrl,\n getHotels,\n getOccupationDataSource,\n getPlaceCaption,\n parseCalendarProps,\n parseValue,\n} from './helpers';\nimport { Field, FieldOccupation, FieldPromocode } from '../__shared__';\nimport { prepareRoom } from '../__shared__/Occupation/helpers';\nimport { DATASOURCE } from '../__shared__/Occupation/Occupation.constants';\nimport { getCalendarCaption } from '../helpers';\nimport { EVENT } from '../helpers';\n\nconst { HOTEL } = TYPE;\nlet memoizedScrollY = 0;\n\nconst Finder = ({ assisted = true, compacted = false, layout, text, onChange = () => {}, onSubmit, ...others }) => {\n const { isMobile } = useDevice();\n const { dateFormat, translate } = useLocale();\n const ref = useRef(null);\n const {\n set,\n value: { currency, finder: storeFinder, forwarder, locale, type = HOTEL, ...store },\n } = useStore();\n\n const [error, setError] = useState({});\n const [focus, setFocus] = useState();\n const [unavailability, setUnavailability] = useState();\n const [value, setValue] = useState(parseValue(storeFinder));\n const [visited, setVisited] = useState({});\n\n useEffect(() => {\n if (!storeFinder?.occupation) set({ finder: { ...storeFinder, occupation: [prepareRoom(DATASOURCE)] } });\n if (isMobile) return;\n\n const handleClickOutside = ({ target } = {}) => !ref.current?.contains(target) && setFocus(undefined);\n document.addEventListener('click', handleClickOutside, true);\n\n return () => document.removeEventListener('click', handleClickOutside, true);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n const callback = ({ calendar, focus } = {}) => {\n setUnavailability(calendar);\n if (focus) setFocus(focus);\n };\n\n Event.subscribe(EVENT.FINDER, callback);\n return () => Event.unsubscribe(EVENT.FINDER, callback);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (!compacted) return;\n\n const handleScroll = () => {\n const { scrollY } = window;\n if (scrollY > memoizedScrollY + GAP_SCROLL || scrollY < memoizedScrollY - GAP_SCROLL) {\n memoizedScrollY = scrollY;\n setFocus(undefined);\n }\n };\n window.addEventListener('scroll', handleScroll);\n\n return () => window.removeEventListener('scroll', handleScroll);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [compacted]);\n\n useEffect(\n () => JSON.stringify(value) !== JSON.stringify(parseValue(storeFinder)) && setValue(parseValue(storeFinder)),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [storeFinder],\n );\n\n useEffect(() => {\n focus && setVisited({ ...visited, [`${focus}`]: true });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [focus]);\n\n const handleChange = (field, fieldValue) => {\n const next = { ...value, [field]: fieldValue };\n\n setValue(next);\n onChange(next, field, fieldValue);\n };\n\n const handleSubmit = () => {\n const [firstError] = Object.keys(error).filter((key) => !!error[key]);\n if (firstError) return setFocus(firstError);\n\n setFocus(undefined);\n set({ finder: value });\n const forwarderUrl = getForwarderUrl({ ...value, currency, forwarder, locale, store, type });\n\n if (onSubmit) onSubmit({ ...value, forwarderUrl });\n else window.location.href = forwarderUrl;\n };\n\n const assistant = () => {\n if (!assisted) return setFocus(undefined);\n\n const { calendar = [] } = value;\n if (focus === VIEW.PLACE && !visited.calendar && calendar.length !== 2) setFocus(VIEW.CALENDAR);\n else if (focus === VIEW.CALENDAR && !visited.occupation) setFocus(VIEW.OCCUPATION);\n else if (!compacted) setFocus(undefined);\n };\n\n const { place = {}, calendar = [], occupation, promocode } = value;\n const { testId } = others;\n const dataSource = getDataSource({ type, ...store });\n const { place: { id: ids = [], isHotel } = {} } = value || {};\n const { hotel: { id: idHotel } = {} } = store;\n const id = type !== HOTEL ? (isHotel && ids.length === 1 ? ids[0] : undefined) : idHotel;\n const isCompacted = (compacted && isMobile) || (compacted && !isMobile && !focus);\n\n return (\n <>\n {isCompacted && <Compact {...{ value, dataSource }} onExpand={setFocus} onSubmit={handleSubmit} />}\n <View\n role=\"finder\"\n ref={ref}\n row={!isMobile}\n testId={others.testId}\n className={styles(style.finder, layout && style[layout], others.className)}\n >\n {dataSource.places && (\n <Field\n {...FIELD.PLACE}\n caption={getPlaceCaption(place.value, dataSource.places.options)}\n compacted={isCompacted}\n label={translate(L10N.LABEL_WHERE)}\n placeholder={dataSource.places.placeholder || translate(L10N.LABEL_WHERE_PLACEHOLDER)}\n visible={focus === VIEW.PLACE}\n onPress={() => setFocus(focus !== VIEW.PLACE ? VIEW.PLACE : undefined)}\n className={{ backgroundColor: 'red', maxWidth: 128 }}\n >\n <Places\n autoColumn={focus === VIEW.PLACE}\n dataSource={dataSource.places.options}\n value={place.value}\n onChange={(place, event) => {\n handleChange(VIEW.PLACE, place, event);\n assistant();\n }}\n onSubmit={isMobile ? assistant : undefined}\n testId={testId ? `${testId}-places` : undefined}\n />\n </Field>\n )}\n\n <Field\n {...FIELD.CALENDAR}\n caption={calendar.length ? getCalendarCaption(calendar, translate, dateFormat) : undefined}\n centered={type !== HOTEL}\n compacted={isCompacted}\n label={translate(L10N.LABEL_WHEN)}\n placeholder={getCalendarCaption(undefined, translate, dateFormat)}\n visible={focus === VIEW.CALENDAR}\n onPress={() => setFocus(focus !== VIEW.CALENDAR ? VIEW.CALENDAR : undefined)}\n >\n <Calendar\n {...parseCalendarProps(dataSource.calendar, id, occupation, type, unavailability, dataSource.variants)}\n id={id}\n currency={currency}\n locale={locale}\n text={compacted ? text : undefined}\n unavailability={unavailability}\n value={calendar}\n onChange={(calendar, event) => {\n handleChange(VIEW.CALENDAR, calendar, event);\n if (calendar.length === 2 && assisted) assistant();\n }}\n onError={(calendar) => setError({ ...error, calendar })}\n onValid={() => setError({ ...error, calendar: undefined })}\n onSubmit={isMobile ? (compacted ? handleSubmit : assisted ? assistant : undefined) : undefined}\n testId={testId ? `${testId}-calendar` : undefined}\n />\n </Field>\n\n <FieldOccupation\n compacted={isCompacted}\n dataSource={getOccupationDataSource({\n ...dataSource,\n places: dataSource.places?.options,\n place: place?.value,\n })}\n hotels={getHotels(dataSource.placesSource, place.value)}\n maxRooms={dataSource.maxRooms}\n text={compacted ? text : undefined}\n value={occupation}\n visible={focus === VIEW.OCCUPATION}\n onChange={(occupation, event) => handleChange(VIEW.OCCUPATION, occupation, event)}\n onError={(occupation) => {\n if (!isMobile && focus !== VIEW.OCCUPATION) setFocus(VIEW.OCCUPATION);\n setError({ ...error, occupation });\n }}\n onPress={() => setFocus(focus !== VIEW.OCCUPATION ? VIEW.OCCUPATION : undefined)}\n onSubmit={isMobile && compacted ? handleSubmit : undefined}\n onValid={() => setError({ ...error, occupation: undefined })}\n testId={testId ? `${testId}-occupation` : undefined}\n />\n\n <FieldPromocode\n compacted={isCompacted}\n placeholder={dataSource.promo?.placeholder}\n value={promocode}\n visible={focus === VIEW.PROMOCODE}\n onChange={(promocode, event) => handleChange(VIEW.PROMOCODE, promocode, event)}\n onEnter={() => setFocus(VIEW.PROMOCODE)}\n onLeave={() => setFocus(undefined)}\n testId={testId ? `${testId}-promocode` : undefined}\n />\n\n {!isCompacted && (\n <Button\n large\n wide={isMobile}\n onPress={handleSubmit}\n className={style.button}\n testId={testId ? `${testId}-submit` : undefined}\n >\n {text || dataSource.cta?.placeholder || translate(L10N.ACTION_BOOK)}\n </Button>\n )}\n </View>\n </>\n );\n};\n\nFinder.displayName = 'Mirai:Core:Finder';\n\nFinder.propTypes = {\n assisted: PropTypes.bool,\n compacted: PropTypes.bool,\n layout: PropTypes.oneOf(['column']),\n text: PropTypes.string,\n onChange: PropTypes.func,\n onSubmit: PropTypes.func,\n};\n\nexport { Finder };\n"],"mappings":"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"}
@@ -119,13 +119,7 @@ const Calendar = _ref => {
119
119
  locale,
120
120
  range: true,
121
121
  rangeMaxDays,
122
- rangeMinDays: (0, _helpers.calcMinStay)({
123
- from,
124
- minStayDates,
125
- minStayType,
126
- rangeMinDays,
127
- to
128
- })
122
+ rangeMinDays
129
123
  };
130
124
  const {
131
125
  config: {
@@ -155,8 +149,9 @@ const Calendar = _ref => {
155
149
  scrollEventThrottle: _Calendar.SCROLL_EVENT_MS,
156
150
  tooltips: (0, _helpers.calcTooltips)({
157
151
  from,
152
+ minStayDates,
158
153
  minStayType,
159
- rangeMinDays: props.rangeMinDays,
154
+ rangeMinDays,
160
155
  to,
161
156
  translate
162
157
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"Calendar.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_Calendar","_Calendar2","style","_helpers","_shared__","_helpers2","_helpers3","_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","Calendar","_ref","_getDataSource","_getDataSource$places","_getDataSource$places2","_getDataSource$places3","_getDataSource2","currency","id","locale","pricesLegend","rangeMaxDays","RANGE_MAX_DAYS","rangeMinDays","showPrices","text","unavailability","disabledDates","minStayDates","minStayType","onChange","onError","onSubmit","onValid","others","isMobile","useDevice","translate","useLocale","value","store","useStore","focus","setFocus","useState","prices","setPrices","setValue","valueFormat","visibleDate","setVisibleDate","useEffect","nextValue","parseValue","getPrices","dateCalc","Date","MONTHS","from","to","ERROR","NOT_FILLED","JSON","stringify","rangeMonths","undefined","IS_JEST","next","fetchPrices","current","values","handleChange","event","handleNavigation","handleScroll","_ref2","percentY","date","getVisibleDate","handleSubmit","testId","props","range","calcMinStay","config","hotels","dataSource","lodgingDenomination","individual","tagId","getDataSource","places","options","find","ids","isHotel","accommodationType","getAccommodationType","getHotels","placesSource","createElement","View","role","captions","format","CALENDAR_FORMAT","months","MONTHS_IN_MOBILE","scrollEventThrottle","SCROLL_EVENT_MS","tooltips","calcTooltips","onFocus","onNavigation","onScroll","className","styles","calendar","Notification","inline","small","notification","L10N","LABEL_INFO_PRICES","accommodation","LABEL_ACCOMMODATION_TYPE","type","guests","nights","taxType","row","footer","BookingDates","Button","concat","disabled","onPress","ACTION_NEXT","exports","displayName","propTypes","PropTypes","oneOf","CURRENCIES","string","number","bool","TAX","TAX_FREE","TAX_PARTIAL","shape","arrayOf","instanceOf","func"],"sources":["../../../../../src/components/Finder/components/Calendar/Calendar.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { CURRENCIES, dateCalc } from '@mirai/locale';\nimport { useLocale } from '@mirai/locale';\nimport { Button, Calendar as CalendarBase, Notification, styles, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { ERROR, MONTHS, RANGE_MAX_DAYS, SCROLL_EVENT_MS, TAX, TAX_FREE, TAX_PARTIAL } from './Calendar.constants';\nimport { L10N } from './Calendar.l10n';\nimport * as style from './Calendar.module.css';\nimport { calcMinStay, calcTooltips, fetchPrices, getVisibleDate, parseValue, valueFormat } from './helpers';\nimport { BookingDates } from '../../../__shared__';\nimport { CALENDAR_FORMAT, getAccommodationType, IS_JEST, MONTHS_IN_MOBILE } from '../../../helpers';\nimport { getDataSource, getHotels } from '../../helpers';\n\nconst Calendar = ({\n currency,\n id,\n locale,\n pricesLegend,\n rangeMaxDays = RANGE_MAX_DAYS,\n rangeMinDays,\n showPrices,\n text,\n unavailability: { disabledDates = [], minStayDates = {}, minStayType } = {},\n onChange,\n onError,\n onSubmit,\n onValid,\n ...others\n}) => {\n const { isMobile } = useDevice();\n const { translate } = useLocale();\n const { value: store } = useStore();\n\n const [focus, setFocus] = useState();\n const [prices, setPrices] = useState();\n const [value, setValue] = useState(valueFormat(others.value));\n const [visibleDate, setVisibleDate] = useState();\n\n useEffect(() => {\n setPrices();\n\n const nextValue = visibleDate || (value?.length && value[0] && parseValue(value)[0]);\n showPrices && id && getPrices((nextValue && dateCalc(nextValue, -1, 'months')) || new Date(), MONTHS);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currency, id, showPrices]);\n\n useEffect(() => {\n const [from, to] = value || [];\n\n if (onValid && from && to) onValid();\n else if (onError && (!from || !to)) onError(ERROR.NOT_FILLED);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value]);\n\n useEffect(() => {\n JSON.stringify(value) !== JSON.stringify(valueFormat(others.value)) && setValue(valueFormat(others.value));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [others.value]);\n\n const getPrices = async (from, rangeMonths = 2) => {\n if (IS_JEST || !from) return;\n\n const next = await fetchPrices({ currency, from, id, locale, rangeMonths });\n setPrices((current) => {\n return { currency: next.currency, values: { ...current?.values, ...next?.values } };\n });\n };\n\n const handleChange = (next = [], event) => {\n setFocus(undefined);\n setValue(valueFormat(next));\n onChange && onChange(next, event);\n };\n\n const handleNavigation = (value) => {\n setVisibleDate(value);\n\n return showPrices && getPrices(value);\n };\n\n const handleScroll = ({ percentY }) => {\n const date = getVisibleDate(percentY, others.to);\n setVisibleDate(date);\n\n return showPrices && id && getPrices(date, MONTHS);\n };\n\n const handleSubmit = (event) => onSubmit(value, event);\n\n const { testId } = others;\n const [from, to] = parseValue(value);\n const props = {\n ...others,\n locale,\n range: true,\n rangeMaxDays,\n rangeMinDays: calcMinStay({ from, minStayDates, minStayType, rangeMinDays, to }),\n };\n\n const { config: { hotels: dataSource, lodgingDenomination: individual } = {} } = store || {};\n\n const tagId = getDataSource(store)?.places?.options?.find(\n ({ id: ids = [], isHotel } = {}) => isHotel && ids[0] === id,\n )?.value;\n\n const accommodationType = getAccommodationType({\n dataSource,\n hotels: getHotels(getDataSource(store)?.placesSource, tagId),\n individual: individual && typeof individual === 'object' ? individual[id] : individual,\n });\n\n return (\n <View role=\"calendar\">\n <CalendarBase\n {...props}\n captions={prices?.values}\n disabledDates={disabledDates}\n format={CALENDAR_FORMAT}\n months={isMobile ? MONTHS_IN_MOBILE : undefined}\n scrollEventThrottle={SCROLL_EVENT_MS}\n tooltips={calcTooltips({ from, minStayType, rangeMinDays: props.rangeMinDays, to, translate })}\n value={value}\n onChange={handleChange}\n onFocus={setFocus}\n onNavigation={handleNavigation}\n onScroll={handleScroll}\n className={styles(style.calendar, others.className)}\n />\n\n {prices?.currency && (\n <Notification inline small className={style.notification}>\n {translate(L10N.LABEL_INFO_PRICES, {\n accommodation: translate(L10N.LABEL_ACCOMMODATION_TYPE, { type: accommodationType }),\n currency,\n guests: 2,\n nights: 1,\n taxType: pricesLegend,\n })}\n </Notification>\n )}\n\n <View row className={style.footer}>\n <BookingDates {...{ from, focus, to, rangeMinDays }} />\n\n {onSubmit && (\n <Button testId={testId ? `${testId}-submit` : undefined} disabled={!from || !to} onPress={handleSubmit}>\n {text || translate(L10N.ACTION_NEXT)}\n </Button>\n )}\n </View>\n </View>\n );\n};\n\nCalendar.displayName = 'Mirai:Core:Finder:Calendar';\n\nCalendar.propTypes = {\n currency: PropTypes.oneOf(CURRENCIES),\n id: PropTypes.string,\n locale: PropTypes.string,\n rangeMaxDays: PropTypes.number,\n rangeMinDays: PropTypes.number,\n showPrices: PropTypes.bool,\n pricesLegend: PropTypes.oneOf([TAX, TAX_FREE, TAX_PARTIAL]),\n text: PropTypes.string,\n unavailability: PropTypes.shape({}),\n value: PropTypes.arrayOf(PropTypes.instanceOf(Date)),\n onChange: PropTypes.func,\n onError: PropTypes.func,\n onSubmit: PropTypes.func,\n onValid: PropTypes.func,\n};\n\nexport { Calendar };\n"],"mappings":"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"}
1
+ {"version":3,"file":"Calendar.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_Calendar","_Calendar2","style","_helpers","_shared__","_helpers2","_helpers3","_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","Calendar","_ref","_getDataSource","_getDataSource$places","_getDataSource$places2","_getDataSource$places3","_getDataSource2","currency","id","locale","pricesLegend","rangeMaxDays","RANGE_MAX_DAYS","rangeMinDays","showPrices","text","unavailability","disabledDates","minStayDates","minStayType","onChange","onError","onSubmit","onValid","others","isMobile","useDevice","translate","useLocale","value","store","useStore","focus","setFocus","useState","prices","setPrices","setValue","valueFormat","visibleDate","setVisibleDate","useEffect","nextValue","parseValue","getPrices","dateCalc","Date","MONTHS","from","to","ERROR","NOT_FILLED","JSON","stringify","rangeMonths","undefined","IS_JEST","next","fetchPrices","current","values","handleChange","event","handleNavigation","handleScroll","_ref2","percentY","date","getVisibleDate","handleSubmit","testId","props","range","config","hotels","dataSource","lodgingDenomination","individual","tagId","getDataSource","places","options","find","ids","isHotel","accommodationType","getAccommodationType","getHotels","placesSource","createElement","View","role","captions","format","CALENDAR_FORMAT","months","MONTHS_IN_MOBILE","scrollEventThrottle","SCROLL_EVENT_MS","tooltips","calcTooltips","onFocus","onNavigation","onScroll","className","styles","calendar","Notification","inline","small","notification","L10N","LABEL_INFO_PRICES","accommodation","LABEL_ACCOMMODATION_TYPE","type","guests","nights","taxType","row","footer","BookingDates","Button","concat","disabled","onPress","ACTION_NEXT","exports","displayName","propTypes","PropTypes","oneOf","CURRENCIES","string","number","bool","TAX","TAX_FREE","TAX_PARTIAL","shape","arrayOf","instanceOf","func"],"sources":["../../../../../src/components/Finder/components/Calendar/Calendar.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { CURRENCIES, dateCalc } from '@mirai/locale';\nimport { useLocale } from '@mirai/locale';\nimport { Button, Calendar as CalendarBase, Notification, styles, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { ERROR, MONTHS, RANGE_MAX_DAYS, SCROLL_EVENT_MS, TAX, TAX_FREE, TAX_PARTIAL } from './Calendar.constants';\nimport { L10N } from './Calendar.l10n';\nimport * as style from './Calendar.module.css';\nimport { calcTooltips, fetchPrices, getVisibleDate, parseValue, valueFormat } from './helpers';\nimport { BookingDates } from '../../../__shared__';\nimport { CALENDAR_FORMAT, getAccommodationType, IS_JEST, MONTHS_IN_MOBILE } from '../../../helpers';\nimport { getDataSource, getHotels } from '../../helpers';\n\nconst Calendar = ({\n currency,\n id,\n locale,\n pricesLegend,\n rangeMaxDays = RANGE_MAX_DAYS,\n rangeMinDays,\n showPrices,\n text,\n unavailability: { disabledDates = [], minStayDates = {}, minStayType } = {},\n onChange,\n onError,\n onSubmit,\n onValid,\n ...others\n}) => {\n const { isMobile } = useDevice();\n const { translate } = useLocale();\n const { value: store } = useStore();\n\n const [focus, setFocus] = useState();\n const [prices, setPrices] = useState();\n const [value, setValue] = useState(valueFormat(others.value));\n const [visibleDate, setVisibleDate] = useState();\n\n useEffect(() => {\n setPrices();\n\n const nextValue = visibleDate || (value?.length && value[0] && parseValue(value)[0]);\n showPrices && id && getPrices((nextValue && dateCalc(nextValue, -1, 'months')) || new Date(), MONTHS);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currency, id, showPrices]);\n\n useEffect(() => {\n const [from, to] = value || [];\n\n if (onValid && from && to) onValid();\n else if (onError && (!from || !to)) onError(ERROR.NOT_FILLED);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value]);\n\n useEffect(() => {\n JSON.stringify(value) !== JSON.stringify(valueFormat(others.value)) && setValue(valueFormat(others.value));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [others.value]);\n\n const getPrices = async (from, rangeMonths = 2) => {\n if (IS_JEST || !from) return;\n\n const next = await fetchPrices({ currency, from, id, locale, rangeMonths });\n setPrices((current) => {\n return { currency: next.currency, values: { ...current?.values, ...next?.values } };\n });\n };\n\n const handleChange = (next = [], event) => {\n setFocus(undefined);\n setValue(valueFormat(next));\n onChange && onChange(next, event);\n };\n\n const handleNavigation = (value) => {\n setVisibleDate(value);\n\n return showPrices && getPrices(value);\n };\n\n const handleScroll = ({ percentY }) => {\n const date = getVisibleDate(percentY, others.to);\n setVisibleDate(date);\n\n return showPrices && id && getPrices(date, MONTHS);\n };\n\n const handleSubmit = (event) => onSubmit(value, event);\n\n const { testId } = others;\n const [from, to] = parseValue(value);\n const props = { ...others, locale, range: true, rangeMaxDays, rangeMinDays };\n\n const { config: { hotels: dataSource, lodgingDenomination: individual } = {} } = store || {};\n\n const tagId = getDataSource(store)?.places?.options?.find(\n ({ id: ids = [], isHotel } = {}) => isHotel && ids[0] === id,\n )?.value;\n\n const accommodationType = getAccommodationType({\n dataSource,\n hotels: getHotels(getDataSource(store)?.placesSource, tagId),\n individual: individual && typeof individual === 'object' ? individual[id] : individual,\n });\n\n return (\n <View role=\"calendar\">\n <CalendarBase\n {...props}\n captions={prices?.values}\n disabledDates={disabledDates}\n format={CALENDAR_FORMAT}\n months={isMobile ? MONTHS_IN_MOBILE : undefined}\n scrollEventThrottle={SCROLL_EVENT_MS}\n tooltips={calcTooltips({ from, minStayDates, minStayType, rangeMinDays, to, translate })}\n value={value}\n onChange={handleChange}\n onFocus={setFocus}\n onNavigation={handleNavigation}\n onScroll={handleScroll}\n className={styles(style.calendar, others.className)}\n />\n\n {prices?.currency && (\n <Notification inline small className={style.notification}>\n {translate(L10N.LABEL_INFO_PRICES, {\n accommodation: translate(L10N.LABEL_ACCOMMODATION_TYPE, { type: accommodationType }),\n currency,\n guests: 2,\n nights: 1,\n taxType: pricesLegend,\n })}\n </Notification>\n )}\n\n <View row className={style.footer}>\n <BookingDates {...{ from, focus, to, rangeMinDays }} />\n\n {onSubmit && (\n <Button testId={testId ? `${testId}-submit` : undefined} disabled={!from || !to} onPress={handleSubmit}>\n {text || translate(L10N.ACTION_NEXT)}\n </Button>\n )}\n </View>\n </View>\n );\n};\n\nCalendar.displayName = 'Mirai:Core:Finder:Calendar';\n\nCalendar.propTypes = {\n currency: PropTypes.oneOf(CURRENCIES),\n id: PropTypes.string,\n locale: PropTypes.string,\n rangeMaxDays: PropTypes.number,\n rangeMinDays: PropTypes.number,\n showPrices: PropTypes.bool,\n pricesLegend: PropTypes.oneOf([TAX, TAX_FREE, TAX_PARTIAL]),\n text: PropTypes.string,\n unavailability: PropTypes.shape({}),\n value: PropTypes.arrayOf(PropTypes.instanceOf(Date)),\n onChange: PropTypes.func,\n onError: PropTypes.func,\n onSubmit: PropTypes.func,\n onValid: PropTypes.func,\n};\n\nexport { Calendar };\n"],"mappings":"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"}
@@ -5,18 +5,27 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.calcTooltips = void 0;
7
7
  var _locale = require("@mirai/locale");
8
+ var _calcMinStay = require("./calcMinStay");
8
9
  var _helpers = require("../../../../helpers");
9
10
  var _Calendar = require("../Calendar.l10n");
10
11
  const calcTooltips = function () {
11
12
  let {
12
13
  from,
13
- to,
14
+ minStayDates,
14
15
  minStayType,
15
- rangeMinDays,
16
+ rangeMinDays: propRangeMinDays,
17
+ to,
16
18
  translate = _locale.translate
17
19
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
18
20
  if (!(0, _locale.isDate)(from) || to && !(0, _locale.isDate)(to)) return;
19
21
  const value = {};
22
+ const rangeMinDays = (0, _calcMinStay.calcMinStay)({
23
+ from,
24
+ minStayDates,
25
+ minStayType,
26
+ rangeMinDays: propRangeMinDays,
27
+ to
28
+ });
20
29
  if (minStayType !== undefined && from && !to && rangeMinDays > 1) {
21
30
  value[(0, _locale.dateFormat)(from, {
22
31
  format: _helpers.CALENDAR_FORMAT
@@ -1 +1 @@
1
- {"version":3,"file":"calcTooltips.js","names":["_locale","require","_helpers","_Calendar","calcTooltips","from","to","minStayType","rangeMinDays","translate","translateBase","arguments","length","undefined","isDate","value","dateFormat","format","text","L10N","LABEL_MIN_NIGHTS","pressable","exports"],"sources":["../../../../../../src/components/Finder/components/Calendar/helpers/calcTooltips.js"],"sourcesContent":["import { dateFormat, isDate, translate as translateBase } from '@mirai/locale';\n\nimport { CALENDAR_FORMAT as format } from '../../../../helpers';\nimport { L10N } from '../Calendar.l10n';\n\nexport const calcTooltips = ({ from, to, minStayType, rangeMinDays, translate = translateBase } = {}) => {\n if (!isDate(from) || (to && !isDate(to))) return;\n\n const value = {};\n if (minStayType !== undefined && from && !to && rangeMinDays > 1) {\n value[dateFormat(from, { format })] = {\n text: translate(L10N.LABEL_MIN_NIGHTS, { value: rangeMinDays }),\n pressable: false,\n };\n }\n\n return value;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAEO,MAAMG,YAAY,GAAG,SAAAA,CAAA,EAA6E;EAAA,IAA5E;IAAEC,IAAI;IAAEC,EAAE;IAAEC,WAAW;IAAEC,YAAY;IAAEC,SAAS,GAAGC;EAAc,CAAC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAClG,IAAI,CAAC,IAAAG,cAAM,EAACT,IAAI,CAAC,IAAKC,EAAE,IAAI,CAAC,IAAAQ,cAAM,EAACR,EAAE,CAAE,EAAE;EAE1C,MAAMS,KAAK,GAAG,CAAC,CAAC;EAChB,IAAIR,WAAW,KAAKM,SAAS,IAAIR,IAAI,IAAI,CAACC,EAAE,IAAIE,YAAY,GAAG,CAAC,EAAE;IAChEO,KAAK,CAAC,IAAAC,kBAAU,EAACX,IAAI,EAAE;MAAEY,MAAM,EAANA;IAAO,CAAC,CAAC,CAAC,GAAG;MACpCC,IAAI,EAAET,SAAS,CAACU,cAAI,CAACC,gBAAgB,EAAE;QAAEL,KAAK,EAAEP;MAAa,CAAC,CAAC;MAC/Da,SAAS,EAAE;IACb,CAAC;EACH;EAEA,OAAON,KAAK;AACd,CAAC;AAACO,OAAA,CAAAlB,YAAA,GAAAA,YAAA"}
1
+ {"version":3,"file":"calcTooltips.js","names":["_locale","require","_calcMinStay","_helpers","_Calendar","calcTooltips","from","minStayDates","minStayType","rangeMinDays","propRangeMinDays","to","translate","translateBase","arguments","length","undefined","isDate","value","calcMinStay","dateFormat","format","text","L10N","LABEL_MIN_NIGHTS","pressable","exports"],"sources":["../../../../../../src/components/Finder/components/Calendar/helpers/calcTooltips.js"],"sourcesContent":["import { dateFormat, isDate, translate as translateBase } from '@mirai/locale';\n\nimport { calcMinStay } from './calcMinStay';\nimport { CALENDAR_FORMAT as format } from '../../../../helpers';\nimport { L10N } from '../Calendar.l10n';\n\nexport const calcTooltips = ({\n from,\n minStayDates,\n minStayType,\n rangeMinDays: propRangeMinDays,\n to,\n translate = translateBase,\n} = {}) => {\n if (!isDate(from) || (to && !isDate(to))) return;\n\n const value = {};\n const rangeMinDays = calcMinStay({ from, minStayDates, minStayType, rangeMinDays: propRangeMinDays, to });\n\n if (minStayType !== undefined && from && !to && rangeMinDays > 1) {\n value[dateFormat(from, { format })] = {\n text: translate(L10N.LABEL_MIN_NIGHTS, { value: rangeMinDays }),\n pressable: false,\n };\n }\n\n return value;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,SAAA,GAAAH,OAAA;AAEO,MAAMI,YAAY,GAAG,SAAAA,CAAA,EAOjB;EAAA,IAPkB;IAC3BC,IAAI;IACJC,YAAY;IACZC,WAAW;IACXC,YAAY,EAAEC,gBAAgB;IAC9BC,EAAE;IACFC,SAAS,GAAGC;EACd,CAAC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACJ,IAAI,CAAC,IAAAG,cAAM,EAACX,IAAI,CAAC,IAAKK,EAAE,IAAI,CAAC,IAAAM,cAAM,EAACN,EAAE,CAAE,EAAE;EAE1C,MAAMO,KAAK,GAAG,CAAC,CAAC;EAChB,MAAMT,YAAY,GAAG,IAAAU,wBAAW,EAAC;IAAEb,IAAI;IAAEC,YAAY;IAAEC,WAAW;IAAEC,YAAY,EAAEC,gBAAgB;IAAEC;EAAG,CAAC,CAAC;EAEzG,IAAIH,WAAW,KAAKQ,SAAS,IAAIV,IAAI,IAAI,CAACK,EAAE,IAAIF,YAAY,GAAG,CAAC,EAAE;IAChES,KAAK,CAAC,IAAAE,kBAAU,EAACd,IAAI,EAAE;MAAEe,MAAM,EAANA;IAAO,CAAC,CAAC,CAAC,GAAG;MACpCC,IAAI,EAAEV,SAAS,CAACW,cAAI,CAACC,gBAAgB,EAAE;QAAEN,KAAK,EAAET;MAAa,CAAC,CAAC;MAC/DgB,SAAS,EAAE;IACb,CAAC;EACH;EAEA,OAAOP,KAAK;AACd,CAAC;AAACQ,OAAA,CAAArB,YAAA,GAAAA,YAAA"}
@@ -5,26 +5,47 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.parseCalendarProps = void 0;
7
7
  var _locale = require("@mirai/locale");
8
+ var _shared__ = require("../../__shared__");
8
9
  var _helpers = require("../../helpers");
9
10
  var _Calendar = require("../components/Calendar/Calendar.constants");
10
11
  var _Finder = require("../Finder.constants");
12
+ const {
13
+ CHILD
14
+ } = _shared__.TYPE_OCCUPATION;
11
15
  const TAXES = [_Calendar.TAX, _Calendar.TAX_FREE, _Calendar.TAX_PARTIAL];
12
16
  const parseCalendarProps = function () {
13
17
  var _variants$find;
14
18
  let calendar = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
15
19
  let id = arguments.length > 1 ? arguments[1] : undefined;
16
- let type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _Finder.TYPE.HOTEL;
17
- let variants = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
20
+ let occupation = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
21
+ let type = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : _Finder.TYPE.HOTEL;
22
+ let unavailability = arguments.length > 4 ? arguments[4] : undefined;
23
+ let variants = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : [];
18
24
  const {
19
25
  maxDays = 365,
20
26
  maxNights: rangeMaxDays = 31,
21
27
  nightsForDeal: rangeMinDays,
22
- prices: showPrices = false,
28
+ prices = false,
23
29
  pricesWithTaxes: pricesLegend
24
30
  } = type === _Finder.TYPE.HOTEL ? calendar : {
25
31
  ...calendar,
26
32
  ...(((_variants$find = variants.find(item => item.id == id)) === null || _variants$find === void 0 ? void 0 : _variants$find.calendar) || {})
27
33
  };
34
+ const adults = occupation.flat().reduce(function (total) {
35
+ let {
36
+ type,
37
+ amount
38
+ } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
39
+ return total + (type !== CHILD ? amount : 0);
40
+ }, 0);
41
+ const children = occupation.flat().reduce(function (total) {
42
+ let {
43
+ type,
44
+ amount
45
+ } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
46
+ return total + (type === CHILD ? amount : 0);
47
+ }, 0);
48
+ const showPrices = prices && (!unavailability || occupation.length === 1 && adults === 2 && children === 0);
28
49
  return {
29
50
  rangeMaxDays,
30
51
  rangeMinDays,
@@ -1 +1 @@
1
- {"version":3,"file":"parseCalendarProps.js","names":["_locale","require","_helpers","_Calendar","_Finder","TAXES","TAX","TAX_FREE","TAX_PARTIAL","parseCalendarProps","_variants$find","calendar","arguments","length","undefined","id","type","TYPE","HOTEL","variants","maxDays","maxNights","rangeMaxDays","nightsForDeal","rangeMinDays","prices","showPrices","pricesWithTaxes","pricesLegend","find","item","includes","to","dateFormat","dateCalc","Date","CALENDAR_FORMAT","exports"],"sources":["../../../../src/components/Finder/helpers/parseCalendarProps.js"],"sourcesContent":["import { dateCalc, dateFormat } from '@mirai/locale';\n\nimport { CALENDAR_FORMAT } from '../../helpers';\nimport { TAX, TAX_FREE, TAX_PARTIAL } from '../components/Calendar/Calendar.constants';\nimport { TYPE } from '../Finder.constants';\n\nconst TAXES = [TAX, TAX_FREE, TAX_PARTIAL];\n\nexport const parseCalendarProps = (calendar = {}, id, type = TYPE.HOTEL, variants = []) => {\n const {\n maxDays = 365,\n maxNights: rangeMaxDays = 31,\n nightsForDeal: rangeMinDays,\n prices: showPrices = false,\n pricesWithTaxes: pricesLegend,\n } = type === TYPE.HOTEL ? calendar : { ...calendar, ...(variants.find((item) => item.id == id)?.calendar || {}) };\n\n return {\n rangeMaxDays,\n rangeMinDays,\n pricesLegend: TAXES.includes(pricesLegend) ? pricesLegend : showPrices ? TAX : undefined,\n showPrices,\n to: dateFormat(dateCalc(new Date(), maxDays, 'days'), CALENDAR_FORMAT),\n };\n};\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAEA,MAAMI,KAAK,GAAG,CAACC,aAAG,EAAEC,kBAAQ,EAAEC,qBAAW,CAAC;AAEnC,MAAMC,kBAAkB,GAAG,SAAAA,CAAA,EAAyD;EAAA,IAAAC,cAAA;EAAA,IAAxDC,QAAQ,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAAA,IAAEG,EAAE,GAAAH,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAE,SAAA;EAAA,IAAEE,IAAI,GAAAJ,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGK,YAAI,CAACC,KAAK;EAAA,IAAEC,QAAQ,GAAAP,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EACpF,MAAM;IACJQ,OAAO,GAAG,GAAG;IACbC,SAAS,EAAEC,YAAY,GAAG,EAAE;IAC5BC,aAAa,EAAEC,YAAY;IAC3BC,MAAM,EAAEC,UAAU,GAAG,KAAK;IAC1BC,eAAe,EAAEC;EACnB,CAAC,GAAGZ,IAAI,KAAKC,YAAI,CAACC,KAAK,GAAGP,QAAQ,GAAG;IAAE,GAAGA,QAAQ;IAAE,IAAI,EAAAD,cAAA,GAAAS,QAAQ,CAACU,IAAI,CAAEC,IAAI,IAAKA,IAAI,CAACf,EAAE,IAAIA,EAAE,CAAC,cAAAL,cAAA,uBAAtCA,cAAA,CAAwCC,QAAQ,KAAI,CAAC,CAAC;EAAE,CAAC;EAEjH,OAAO;IACLW,YAAY;IACZE,YAAY;IACZI,YAAY,EAAEvB,KAAK,CAAC0B,QAAQ,CAACH,YAAY,CAAC,GAAGA,YAAY,GAAGF,UAAU,GAAGpB,aAAG,GAAGQ,SAAS;IACxFY,UAAU;IACVM,EAAE,EAAE,IAAAC,kBAAU,EAAC,IAAAC,gBAAQ,EAAC,IAAIC,IAAI,CAAC,CAAC,EAAEf,OAAO,EAAE,MAAM,CAAC,EAAEgB,wBAAe;EACvE,CAAC;AACH,CAAC;AAACC,OAAA,CAAA5B,kBAAA,GAAAA,kBAAA"}
1
+ {"version":3,"file":"parseCalendarProps.js","names":["_locale","require","_shared__","_helpers","_Calendar","_Finder","CHILD","TYPE_OCCUPATION","TAXES","TAX","TAX_FREE","TAX_PARTIAL","parseCalendarProps","_variants$find","calendar","arguments","length","undefined","id","occupation","type","TYPE","HOTEL","unavailability","variants","maxDays","maxNights","rangeMaxDays","nightsForDeal","rangeMinDays","prices","pricesWithTaxes","pricesLegend","find","item","adults","flat","reduce","total","amount","children","showPrices","includes","to","dateFormat","dateCalc","Date","CALENDAR_FORMAT","exports"],"sources":["../../../../src/components/Finder/helpers/parseCalendarProps.js"],"sourcesContent":["import { dateCalc, dateFormat } from '@mirai/locale';\n\nimport { TYPE_OCCUPATION } from '../../__shared__';\nimport { CALENDAR_FORMAT } from '../../helpers';\nimport { TAX, TAX_FREE, TAX_PARTIAL } from '../components/Calendar/Calendar.constants';\nimport { TYPE } from '../Finder.constants';\n\nconst { CHILD } = TYPE_OCCUPATION;\nconst TAXES = [TAX, TAX_FREE, TAX_PARTIAL];\n\nexport const parseCalendarProps = (\n calendar = {},\n id,\n occupation = [],\n type = TYPE.HOTEL,\n unavailability,\n variants = [],\n) => {\n const {\n maxDays = 365,\n maxNights: rangeMaxDays = 31,\n nightsForDeal: rangeMinDays,\n prices = false,\n pricesWithTaxes: pricesLegend,\n } = type === TYPE.HOTEL ? calendar : { ...calendar, ...(variants.find((item) => item.id == id)?.calendar || {}) };\n\n const adults = occupation.flat().reduce((total, { type, amount } = {}) => total + (type !== CHILD ? amount : 0), 0);\n const children = occupation.flat().reduce((total, { type, amount } = {}) => total + (type === CHILD ? amount : 0), 0);\n const showPrices = prices && (!unavailability || (occupation.length === 1 && adults === 2 && children === 0));\n\n return {\n rangeMaxDays,\n rangeMinDays,\n pricesLegend: TAXES.includes(pricesLegend) ? pricesLegend : showPrices ? TAX : undefined,\n showPrices,\n to: dateFormat(dateCalc(new Date(), maxDays, 'days'), CALENDAR_FORMAT),\n };\n};\n"],"mappings":"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"}
@@ -42,7 +42,7 @@ const Footer = _ref => {
42
42
  const items = cart.filter(item => item !== undefined);
43
43
  const totalPrice = cart.reduce(function (value) {
44
44
  let {
45
- price
45
+ price = 0
46
46
  } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
47
47
  return value + price;
48
48
  }, 0);
@@ -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","occupation","onSubmit","isMobile","useDevice","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","currencyFormat","summary","headline","level","tiny","getLabelTaxes","Button","disabled","large","onPress","L10N","ACTION_RESERVE","exports","displayName","propTypes","PropTypes","arrayOf","shape","ages","number","type","func"],"sources":["../../../src/components/Rates/Rates.Footer.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { currencyFormat, 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, occupation = [], onSubmit = () => {} }) => {\n const { isMobile } = useDevice();\n const { translate } = useLocale();\n const { value: { currency } = {} } = useStore();\n\n const [busy, setBusy] = useState(false);\n\n useEffect(() => !extras && setBusy(false), [extras]);\n\n const items = cart.filter((item) => item !== undefined);\n const totalPrice = cart.reduce((value, { price } = {}) => 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, 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, 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 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","occupation","onSubmit","isMobile","useDevice","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","currencyFormat","summary","headline","level","tiny","getLabelTaxes","Button","disabled","large","onPress","L10N","ACTION_RESERVE","exports","displayName","propTypes","PropTypes","arrayOf","shape","ages","number","type","func"],"sources":["../../../src/components/Rates/Rates.Footer.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { currencyFormat, 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, occupation = [], onSubmit = () => {} }) => {\n const { isMobile } = useDevice();\n const { translate } = useLocale();\n const { value: { currency } = {} } = useStore();\n\n const [busy, setBusy] = useState(false);\n\n useEffect(() => !extras && setBusy(false), [extras]);\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, 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, 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 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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"}
@@ -65,11 +65,17 @@ const Unavailability = _ref => {
65
65
  }
66
66
  });
67
67
  };
68
- const handleOccupation = occupation => {
68
+ const handleOccupation = function () {
69
+ let rooms = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
69
70
  set({
70
71
  finder: {
71
72
  ...finder,
72
- occupation
73
+ occupation: rooms.map(function () {
74
+ let {
75
+ occupation
76
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
77
+ return occupation;
78
+ })
73
79
  }
74
80
  });
75
81
  };
@@ -115,9 +121,6 @@ const Unavailability = _ref => {
115
121
  const {
116
122
  accommodationType = hotelAccommodationType
117
123
  } = variants[id] || {};
118
- const accommodation = (0, _helpers2.getAccommodationLabel)({
119
- type: accommodationType
120
- }, translate);
121
124
  const hasSuggestions = calendarSuggestions.length > 0 || occupationSuggestions.length > 0;
122
125
  const isCalendar = calendarSuggestions.length > 0;
123
126
  return /*#__PURE__*/_react.default.createElement(_ui.View, {
@@ -188,25 +191,28 @@ const Unavailability = _ref => {
188
191
  className: style.items
189
192
  }, occupationSuggestions.map((_ref2, index) => {
190
193
  let {
191
- occupation = [],
194
+ rooms = [],
192
195
  price = 0,
193
196
  taxes
194
197
  } = _ref2;
195
198
  return /*#__PURE__*/_react.default.createElement(_ui.View, {
196
- key: "occupation:".concat(index),
199
+ key: "rooms:".concat(index),
197
200
  className: style.card
198
201
  }, /*#__PURE__*/_react.default.createElement(_ui.Text, {
199
202
  bold: true,
200
203
  capitalize: true,
201
204
  headline: !isMobile,
202
205
  level: 3
203
- }, "".concat(occupation.length, " ").concat((0, _helpers2.getAccommodationLabel)({
204
- plural: occupation.length > 1,
206
+ }, "".concat(rooms.length, " ").concat((0, _helpers2.getAccommodationLabel)({
207
+ plural: rooms.length > 1,
205
208
  type: accommodationType
206
209
  }, translate))), /*#__PURE__*/_react.default.createElement(_ui.View, {
207
210
  className: style.distribution
208
- }, occupation.map(function () {
209
- let distribution = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
211
+ }, rooms.map(function () {
212
+ let {
213
+ name,
214
+ occupation = []
215
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
210
216
  let roomIndex = arguments.length > 1 ? arguments[1] : undefined;
211
217
  return /*#__PURE__*/_react.default.createElement(_ui.View, {
212
218
  key: "occupation:".concat(index, ":room:").concat(roomIndex),
@@ -214,7 +220,7 @@ const Unavailability = _ref => {
214
220
  }, /*#__PURE__*/_react.default.createElement(_ui.Text, {
215
221
  action: true,
216
222
  capitalize: true
217
- }, "".concat(accommodation, " ").concat(roomIndex + 1)), distribution.map(function () {
223
+ }, name), occupation.map(function () {
218
224
  let type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
219
225
  let typeIndex = arguments.length > 1 ? arguments[1] : undefined;
220
226
  return /*#__PURE__*/_react.default.createElement(_ui.Text, {
@@ -226,7 +232,7 @@ const Unavailability = _ref => {
226
232
  })), renderPrice({
227
233
  price,
228
234
  taxes,
229
- onPress: () => handleOccupation(occupation)
235
+ onPress: () => handleOccupation(rooms)
230
236
  }));
231
237
  })), hasSuggestions && hotels.length > 0 && /*#__PURE__*/_react.default.createElement(_ui.Text, {
232
238
  bold: true,
@@ -1 +1 @@
1
- {"version":3,"file":"Rates.Unavailability.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_helpers","_Rates","_Rates2","style","_helpers2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_extends","assign","bind","target","arguments","length","source","key","apply","Unavailability","_ref","calendar","hotels","suggestions","calendarSuggestions","description","occupation","occupationSuggestions","taxesType","isMobile","width","useDevice","locale","translate","useLocale","value","store","useStore","useEffect","Event","publish","EVENT","FINDER","club","currency","finder","hotel","accommodationType","hotelAccommodationType","variants","handleCalendar","from","to","handleOccupation","handleFinder","isCalendar","focus","renderPrice","price","onPress","undefined","createElement","View","row","className","Text","small","L10N","LABEL_FROM","bold","headline","level","currencyFormat","maximumFractionDigits","lighten","getLabelTaxes","Button","ACTION_VIEW_MORE","place","id","accommodation","getAccommodationLabel","type","hasSuggestions","unavailability","banner","Icon","ICON","CALENDAR_BUSY","PERSON_OFF","wide","texts","LABEL_NO_AVAILABILITY_CALENDAR","LABEL_NO_AVAILABILITY_OCCUPATION","LABEL_REFINE_SEARCH_CLUB","LABEL_REFINE_SEARCH","name","ACTION_REFINE_SEARCH","LABEL_AVAILABLE_ALTERNATIVES","items","map","taxes","index","concat","card","dateFormat","DATE_FORMAT","anchorDates","action","dateDiff","days","LABEL_NIGHTS","_ref2","capitalize","plural","distribution","roomIndex","room","typeIndex","getOccupationLabel","item","CardHotel","exports","displayName","propTypes","PropTypes","shape","arrayOf","number"],"sources":["../../../src/components/Rates/Rates.Unavailability.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { currencyFormat, dateDiff, dateFormat, useLocale } from '@mirai/locale';\nimport { Button, Icon, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect } from 'react';\n\nimport { CardHotel } from './components';\nimport { getLabelTaxes } from './helpers';\nimport { DATE_FORMAT } from './Rates.constants';\nimport { L10N } from './Rates.l10n';\nimport * as style from './Rates.module.css';\nimport { EVENT } from '../helpers';\nimport { getAccommodationLabel, getOccupationLabel, ICON } from '../helpers';\n\nconst Unavailability = ({\n calendar = {},\n hotels = [],\n suggestions: { calendar: calendarSuggestions = [], description, occupation: occupationSuggestions = [] } = {},\n taxesType,\n}) => {\n const { isMobile, width } = useDevice();\n const { locale, translate } = useLocale();\n const { set, value: store } = useStore();\n\n useEffect(() => {\n Event.publish(EVENT.FINDER, { calendar });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const {\n club = {},\n currency,\n finder = {},\n hotel: { accommodationType: hotelAccommodationType, variants = {} } = {},\n } = store;\n\n const handleCalendar = (from, to) => {\n set({ finder: { ...finder, calendar: [from, to] } });\n };\n\n const handleOccupation = (occupation) => {\n set({ finder: { ...finder, occupation } });\n };\n\n const handleFinder = () => {\n Event.publish(EVENT.FINDER, isCalendar ? { calendar, focus: 'calendar' } : { focus: 'occupation' });\n };\n\n const renderPrice = ({ price, onPress } = {}) => (\n <View row className={style.price}>\n <View>\n <Text small>{translate(L10N.LABEL_FROM)}</Text>\n <Text bold headline level={isMobile || price >= 10000 ? 3 : 2}>\n {currencyFormat({ currency, locale, maximumFractionDigits: 0, value: price })}\n </Text>\n {!!taxesType && (\n <Text lighten small>\n {translate(getLabelTaxes(taxesType))}\n </Text>\n )}\n </View>\n\n <Button onPress={onPress}>{translate(L10N.ACTION_VIEW_MORE)}</Button>\n </View>\n );\n\n const { place: { id: [id] = [] } = {} } = finder;\n const { accommodationType = hotelAccommodationType } = variants[id] || {};\n\n const accommodation = getAccommodationLabel({ type: accommodationType }, translate);\n const hasSuggestions = calendarSuggestions.length > 0 || occupationSuggestions.length > 0;\n const isCalendar = calendarSuggestions.length > 0;\n\n return (\n <View className={style.unavailability}>\n <View row={!isMobile} className={style.banner}>\n <Icon value={isCalendar ? ICON.CALENDAR_BUSY : ICON.PERSON_OFF} />\n <View wide className={style.texts}>\n <Text headline level={isMobile ? 3 : 2}>\n {isCalendar\n ? description || translate(L10N.LABEL_NO_AVAILABILITY_CALENDAR)\n : translate(L10N.LABEL_NO_AVAILABILITY_OCCUPATION)}\n </Text>\n <Text small={isMobile}>\n {translate(hotels.length ? L10N.LABEL_REFINE_SEARCH_CLUB : L10N.LABEL_REFINE_SEARCH, {\n club: club.name,\n })}\n </Text>\n {/* ! TODO: Should render restrictions */}\n {/* <Text small>\n Lorem, ipsum dolor sit amet consectetur adipisicing elit. Quidem voluptatibus earum repellendus tempore,\n numquam, natus quibusdam cupiditate, iusto ab quos odio culpa laboriosam vitae sed sit deserunt molestiae\n quia! Tenetur?\n </Text> */}\n </View>\n <Button wide={isMobile} onPress={handleFinder}>\n {translate(L10N.ACTION_REFINE_SEARCH)}\n </Button>\n </View>\n\n {hasSuggestions && (\n <Text bold headline>\n {translate(L10N.LABEL_AVAILABLE_ALTERNATIVES)}\n </Text>\n )}\n\n {isCalendar && (\n <View row={!isMobile} className={style.items}>\n {calendarSuggestions.map(({ from, to, price = 0, taxes } = {}, index) => (\n <View key={`calendar:${index}`} className={style.card}>\n <View>\n <View row>\n <Text bold headline={!isMobile} level={3}>\n {dateFormat(from, { locale, ...DATE_FORMAT })}\n </Text>\n <Text className={style.anchorDates}>─</Text>\n <Text bold headline={!isMobile} level={3}>\n {dateFormat(to || focus, { locale, ...DATE_FORMAT })}\n </Text>\n </View>\n <Text action={!isMobile} small={isMobile}>{`${dateDiff(from, to).days} ${translate(\n L10N.LABEL_NIGHTS,\n )}`}</Text>\n </View>\n\n {renderPrice({ price, taxes, onPress: () => handleCalendar(from, to) })}\n </View>\n ))}\n </View>\n )}\n\n {occupationSuggestions.length > 0 && (\n <View row={!isMobile} className={style.items}>\n {occupationSuggestions.map(({ occupation = [], price = 0, taxes }, index) => (\n <View key={`occupation:${index}`} className={style.card}>\n <Text bold capitalize headline={!isMobile} level={3}>\n {`${occupation.length} ${getAccommodationLabel(\n { plural: occupation.length > 1, type: accommodationType },\n translate,\n )}`}\n </Text>\n\n <View className={style.distribution}>\n {occupation.map((distribution = [], roomIndex) => (\n <View key={`occupation:${index}:room:${roomIndex}`} className={style.room}>\n <Text action capitalize>{`${accommodation} ${roomIndex + 1}`}</Text>\n {distribution.map((type = {}, typeIndex) => (\n <Text key={`occupation:${index}:room:${roomIndex}:${typeIndex}`} lighten small>\n {getOccupationLabel(type, translate)}\n </Text>\n ))}\n </View>\n ))}\n </View>\n\n {renderPrice({ price, taxes, onPress: () => handleOccupation(occupation) })}\n </View>\n ))}\n </View>\n )}\n\n {hasSuggestions && hotels.length > 0 && (\n <Text bold headline>\n {club.name}\n </Text>\n )}\n <View row={!isMobile} className={style.items}>\n {hotels.map((item, index) => (\n <CardHotel key={`${item.index || index}:${width}`} {...item} />\n ))}\n </View>\n </View>\n );\n};\n\nUnavailability.displayName = 'Mirai:Core:Rates:Unavailability';\n\nUnavailability.propTypes = {\n calendar: PropTypes.shape({}),\n hotels: PropTypes.arrayOf(PropTypes.shape({})),\n suggestions: PropTypes.shape({\n calendar: PropTypes.arrayOf(PropTypes.shape({})),\n occupation: PropTypes.arrayOf(PropTypes.shape({})),\n }),\n taxesType: PropTypes.number,\n};\n\nexport { Unavailability };\n"],"mappings":"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"}
1
+ {"version":3,"file":"Rates.Unavailability.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_helpers","_Rates","_Rates2","style","_helpers2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_extends","assign","bind","target","arguments","length","source","key","apply","Unavailability","_ref","calendar","hotels","suggestions","calendarSuggestions","description","occupation","occupationSuggestions","taxesType","isMobile","width","useDevice","locale","translate","useLocale","value","store","useStore","useEffect","Event","publish","EVENT","FINDER","club","currency","finder","hotel","accommodationType","hotelAccommodationType","variants","handleCalendar","from","to","handleOccupation","rooms","undefined","map","handleFinder","isCalendar","focus","renderPrice","price","onPress","createElement","View","row","className","Text","small","L10N","LABEL_FROM","bold","headline","level","currencyFormat","maximumFractionDigits","lighten","getLabelTaxes","Button","ACTION_VIEW_MORE","place","id","hasSuggestions","unavailability","banner","Icon","ICON","CALENDAR_BUSY","PERSON_OFF","wide","texts","LABEL_NO_AVAILABILITY_CALENDAR","LABEL_NO_AVAILABILITY_OCCUPATION","LABEL_REFINE_SEARCH_CLUB","LABEL_REFINE_SEARCH","name","ACTION_REFINE_SEARCH","LABEL_AVAILABLE_ALTERNATIVES","items","taxes","index","concat","card","dateFormat","DATE_FORMAT","anchorDates","action","dateDiff","days","LABEL_NIGHTS","_ref2","capitalize","getAccommodationLabel","plural","type","distribution","roomIndex","room","typeIndex","getOccupationLabel","item","CardHotel","exports","displayName","propTypes","PropTypes","shape","arrayOf","number"],"sources":["../../../src/components/Rates/Rates.Unavailability.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { currencyFormat, dateDiff, dateFormat, useLocale } from '@mirai/locale';\nimport { Button, Icon, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect } from 'react';\n\nimport { CardHotel } from './components';\nimport { getLabelTaxes } from './helpers';\nimport { DATE_FORMAT } from './Rates.constants';\nimport { L10N } from './Rates.l10n';\nimport * as style from './Rates.module.css';\nimport { EVENT } from '../helpers';\nimport { getAccommodationLabel, getOccupationLabel, ICON } from '../helpers';\n\nconst Unavailability = ({\n calendar = {},\n hotels = [],\n suggestions: { calendar: calendarSuggestions = [], description, occupation: occupationSuggestions = [] } = {},\n taxesType,\n}) => {\n const { isMobile, width } = useDevice();\n const { locale, translate } = useLocale();\n const { set, value: store } = useStore();\n\n useEffect(() => {\n Event.publish(EVENT.FINDER, { calendar });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const {\n club = {},\n currency,\n finder = {},\n hotel: { accommodationType: hotelAccommodationType, variants = {} } = {},\n } = store;\n\n const handleCalendar = (from, to) => {\n set({ finder: { ...finder, calendar: [from, to] } });\n };\n\n const handleOccupation = (rooms = []) => {\n set({ finder: { ...finder, occupation: rooms.map(({ occupation } = {}) => occupation) } });\n };\n\n const handleFinder = () => {\n Event.publish(EVENT.FINDER, isCalendar ? { calendar, focus: 'calendar' } : { focus: 'occupation' });\n };\n\n const renderPrice = ({ price, onPress } = {}) => (\n <View row className={style.price}>\n <View>\n <Text small>{translate(L10N.LABEL_FROM)}</Text>\n <Text bold headline level={isMobile || price >= 10000 ? 3 : 2}>\n {currencyFormat({ currency, locale, maximumFractionDigits: 0, value: price })}\n </Text>\n {!!taxesType && (\n <Text lighten small>\n {translate(getLabelTaxes(taxesType))}\n </Text>\n )}\n </View>\n\n <Button onPress={onPress}>{translate(L10N.ACTION_VIEW_MORE)}</Button>\n </View>\n );\n\n const { place: { id: [id] = [] } = {} } = finder;\n const { accommodationType = hotelAccommodationType } = variants[id] || {};\n\n const hasSuggestions = calendarSuggestions.length > 0 || occupationSuggestions.length > 0;\n const isCalendar = calendarSuggestions.length > 0;\n\n return (\n <View className={style.unavailability}>\n <View row={!isMobile} className={style.banner}>\n <Icon value={isCalendar ? ICON.CALENDAR_BUSY : ICON.PERSON_OFF} />\n <View wide className={style.texts}>\n <Text headline level={isMobile ? 3 : 2}>\n {isCalendar\n ? description || translate(L10N.LABEL_NO_AVAILABILITY_CALENDAR)\n : translate(L10N.LABEL_NO_AVAILABILITY_OCCUPATION)}\n </Text>\n <Text small={isMobile}>\n {translate(hotels.length ? L10N.LABEL_REFINE_SEARCH_CLUB : L10N.LABEL_REFINE_SEARCH, {\n club: club.name,\n })}\n </Text>\n {/* ! TODO: Should render restrictions */}\n {/* <Text small>\n Lorem, ipsum dolor sit amet consectetur adipisicing elit. Quidem voluptatibus earum repellendus tempore,\n numquam, natus quibusdam cupiditate, iusto ab quos odio culpa laboriosam vitae sed sit deserunt molestiae\n quia! Tenetur?\n </Text> */}\n </View>\n <Button wide={isMobile} onPress={handleFinder}>\n {translate(L10N.ACTION_REFINE_SEARCH)}\n </Button>\n </View>\n\n {hasSuggestions && (\n <Text bold headline>\n {translate(L10N.LABEL_AVAILABLE_ALTERNATIVES)}\n </Text>\n )}\n\n {isCalendar && (\n <View row={!isMobile} className={style.items}>\n {calendarSuggestions.map(({ from, to, price = 0, taxes } = {}, index) => (\n <View key={`calendar:${index}`} className={style.card}>\n <View>\n <View row>\n <Text bold headline={!isMobile} level={3}>\n {dateFormat(from, { locale, ...DATE_FORMAT })}\n </Text>\n <Text className={style.anchorDates}>─</Text>\n <Text bold headline={!isMobile} level={3}>\n {dateFormat(to || focus, { locale, ...DATE_FORMAT })}\n </Text>\n </View>\n <Text action={!isMobile} small={isMobile}>{`${dateDiff(from, to).days} ${translate(\n L10N.LABEL_NIGHTS,\n )}`}</Text>\n </View>\n\n {renderPrice({ price, taxes, onPress: () => handleCalendar(from, to) })}\n </View>\n ))}\n </View>\n )}\n\n {occupationSuggestions.length > 0 && (\n <View row={!isMobile} className={style.items}>\n {occupationSuggestions.map(({ rooms = [], price = 0, taxes }, index) => (\n <View key={`rooms:${index}`} className={style.card}>\n <Text bold capitalize headline={!isMobile} level={3}>\n {`${rooms.length} ${getAccommodationLabel(\n { plural: rooms.length > 1, type: accommodationType },\n translate,\n )}`}\n </Text>\n\n <View className={style.distribution}>\n {rooms.map(({ name, occupation = [] } = {}, roomIndex) => (\n <View key={`occupation:${index}:room:${roomIndex}`} className={style.room}>\n <Text action capitalize>\n {name}\n </Text>\n {occupation.map((type = {}, typeIndex) => (\n <Text key={`occupation:${index}:room:${roomIndex}:${typeIndex}`} lighten small>\n {getOccupationLabel(type, translate)}\n </Text>\n ))}\n </View>\n ))}\n </View>\n\n {renderPrice({ price, taxes, onPress: () => handleOccupation(rooms) })}\n </View>\n ))}\n </View>\n )}\n\n {hasSuggestions && hotels.length > 0 && (\n <Text bold headline>\n {club.name}\n </Text>\n )}\n <View row={!isMobile} className={style.items}>\n {hotels.map((item, index) => (\n <CardHotel key={`${item.index || index}:${width}`} {...item} />\n ))}\n </View>\n </View>\n );\n};\n\nUnavailability.displayName = 'Mirai:Core:Rates:Unavailability';\n\nUnavailability.propTypes = {\n calendar: PropTypes.shape({}),\n hotels: PropTypes.arrayOf(PropTypes.shape({})),\n suggestions: PropTypes.shape({\n calendar: PropTypes.arrayOf(PropTypes.shape({})),\n occupation: PropTypes.arrayOf(PropTypes.shape({})),\n }),\n taxesType: PropTypes.number,\n};\n\nexport { Unavailability };\n"],"mappings":"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"}
@@ -75,11 +75,12 @@ const getOccupationSuggestions = _ref => {
75
75
  })) {
76
76
  const initAges = [...agesChildren].filter(age => age !== ageBaby);
77
77
  suggestions.push({
78
- occupation: suggestion.map(function () {
78
+ rooms: suggestion.map(function () {
79
79
  let {
80
80
  adults,
81
81
  babies,
82
- children
82
+ children,
83
+ name
83
84
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
84
85
  const occupation = [];
85
86
  if (adults > 0) {
@@ -96,7 +97,10 @@ const getOccupationSuggestions = _ref => {
96
97
  amount: children + babies,
97
98
  type: CHILD
98
99
  });
99
- return occupation;
100
+ return {
101
+ name,
102
+ occupation
103
+ };
100
104
  }),
101
105
  price: suggestion.reduce(function (total) {
102
106
  let {
@@ -146,6 +150,7 @@ const getOccupationSuggestions = _ref => {
146
150
  adults: room.adults,
147
151
  children: room.children,
148
152
  babies: room.babies,
153
+ name: room.name,
149
154
  price: room.price
150
155
  }]
151
156
  });
@@ -172,14 +177,14 @@ const getOccupationSuggestions = _ref => {
172
177
  }] = rooms || [];
173
178
  return suggestions.map(function () {
174
179
  let {
175
- occupation,
176
- price
180
+ price,
181
+ rooms
177
182
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
178
183
  return {
179
184
  hasFees,
180
185
  hasTaxes,
181
- occupation,
182
- price
186
+ price,
187
+ rooms
183
188
  };
184
189
  }).sort((a, b) => a.price - b.price);
185
190
  };
@@ -1 +1 @@
1
- {"version":3,"file":"getOccupationSuggestions.js","names":["_compareSuggestions","require","_getRooms","_shared__","ADULT","CHILD","GUEST","TYPE_OCCUPATION","getOccupationSuggestions","_ref","infantAge","occupation","others","isGuest","flat","some","type","arguments","length","undefined","adults","reduce","total","amount","children","ages","agesChildren","filter","totalAges","ageBaby","find","age","rooms","getRooms","suggestions","search","_ref2","availability","babies","startIndex","suggestion","compareSuggestions","initAges","push","map","Array","fill","pop","price","index","room","totalRooms","id","totalAvailability","occupied","hasFees","hasTaxes","sort","a","b","exports"],"sources":["../../../../src/services/Rates/helpers/getOccupationSuggestions.js"],"sourcesContent":["import { compareSuggestions } from './compareSuggestions';\nimport { getRooms } from './getRooms';\nimport { TYPE_OCCUPATION } from '../../../components/__shared__';\n\nconst { ADULT, CHILD, GUEST } = TYPE_OCCUPATION;\n\nexport const getOccupationSuggestions = ({ infantAge, occupation = [], ...others }) => {\n const isGuest = occupation.flat().some(({ type } = {}) => type === GUEST);\n const adults = occupation.flat().reduce((total, { amount, type } = {}) => total + (type !== CHILD ? amount : 0), 0);\n const { amount: children, ages: agesChildren } = occupation\n .flat()\n .filter(({ type } = {}) => type === CHILD)\n .reduce(\n ({ ages: totalAges, amount: total } = {}, { ages, amount } = {}) => ({\n amount: total + amount,\n ages: [...totalAges, ...ages],\n }),\n { amount: 0, ages: [] },\n );\n const ageBaby = agesChildren.find((age) => age < infantAge);\n const rooms = getRooms(others);\n const suggestions = [];\n\n const search = ({ adults, availability, babies, children, rooms, startIndex = 0, suggestion = [] }) => {\n if (\n adults === 0 &&\n children === 0 &&\n babies === 0 &&\n availability >= 0 &&\n !compareSuggestions({ suggestion, suggestions })\n ) {\n const initAges = [...agesChildren].filter((age) => age !== ageBaby);\n suggestions.push({\n occupation: suggestion.map(({ adults, babies, children } = {}) => {\n const occupation = [];\n if (adults > 0) {\n occupation.push({ ages: Array(adults).fill(undefined), amount: adults, type: isGuest ? GUEST : ADULT });\n }\n\n const ages = Array(children)\n .fill(undefined)\n .map(() => initAges.pop());\n if (babies > 0) ages.push(ageBaby);\n if (children + babies > 0) occupation.push({ ages, amount: children + babies, type: CHILD });\n\n return occupation;\n }),\n price: suggestion.reduce((total, { price } = {}) => total + price, 0),\n suggestion,\n });\n\n return;\n }\n\n for (let index = startIndex; index < rooms.length; index++) {\n const room = rooms[index];\n if (room.adults <= adults && room.children <= children && room.babies <= babies) {\n const totalRooms = rooms.filter(({ id } = {}) => id === room.id).length;\n const totalAvailability = rooms\n .filter(({ id } = {}) => id === room.id)\n .reduce((total, { availability } = {}) => total + availability, 0);\n const occupied = suggestion.filter(({ id } = {}) => id === room.id).length;\n\n search({\n adults: adults - room.adults,\n availability: totalAvailability - totalRooms - occupied,\n babies: babies - room.babies,\n children: children - room.children,\n rooms,\n startIndex: index + 1,\n suggestion: [\n ...suggestion,\n { id: room.id, adults: room.adults, children: room.children, babies: room.babies, price: room.price },\n ],\n });\n }\n }\n };\n\n search({ adults, babies: ageBaby >= 0 ? 1 : 0, children: ageBaby >= 0 ? children - 1 : children, rooms });\n\n if (suggestions.length === 0) {\n search({\n adults: ageBaby >= 0 ? adults + children - 1 : adults + children,\n babies: ageBaby >= 0 ? 1 : 0,\n children: 0,\n rooms,\n });\n }\n\n const [{ hasFees, hasTaxes }] = rooms || [];\n\n return suggestions\n .map(({ occupation, price } = {}) => ({ hasFees, hasTaxes, occupation, price }))\n .sort((a, b) => a.price - b.price);\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"getOccupationSuggestions.js","names":["_compareSuggestions","require","_getRooms","_shared__","ADULT","CHILD","GUEST","TYPE_OCCUPATION","getOccupationSuggestions","_ref","infantAge","occupation","others","isGuest","flat","some","type","arguments","length","undefined","adults","reduce","total","amount","children","ages","agesChildren","filter","totalAges","ageBaby","find","age","rooms","getRooms","suggestions","search","_ref2","availability","babies","startIndex","suggestion","compareSuggestions","initAges","push","map","name","Array","fill","pop","price","index","room","totalRooms","id","totalAvailability","occupied","hasFees","hasTaxes","sort","a","b","exports"],"sources":["../../../../src/services/Rates/helpers/getOccupationSuggestions.js"],"sourcesContent":["import { compareSuggestions } from './compareSuggestions';\nimport { getRooms } from './getRooms';\nimport { TYPE_OCCUPATION } from '../../../components/__shared__';\n\nconst { ADULT, CHILD, GUEST } = TYPE_OCCUPATION;\n\nexport const getOccupationSuggestions = ({ infantAge, occupation = [], ...others }) => {\n const isGuest = occupation.flat().some(({ type } = {}) => type === GUEST);\n const adults = occupation.flat().reduce((total, { amount, type } = {}) => total + (type !== CHILD ? amount : 0), 0);\n const { amount: children, ages: agesChildren } = occupation\n .flat()\n .filter(({ type } = {}) => type === CHILD)\n .reduce(\n ({ ages: totalAges, amount: total } = {}, { ages, amount } = {}) => ({\n amount: total + amount,\n ages: [...totalAges, ...ages],\n }),\n { amount: 0, ages: [] },\n );\n const ageBaby = agesChildren.find((age) => age < infantAge);\n const rooms = getRooms(others);\n const suggestions = [];\n\n const search = ({ adults, availability, babies, children, rooms, startIndex = 0, suggestion = [] }) => {\n if (\n adults === 0 &&\n children === 0 &&\n babies === 0 &&\n availability >= 0 &&\n !compareSuggestions({ suggestion, suggestions })\n ) {\n const initAges = [...agesChildren].filter((age) => age !== ageBaby);\n suggestions.push({\n rooms: suggestion.map(({ adults, babies, children, name } = {}) => {\n const occupation = [];\n if (adults > 0) {\n occupation.push({ ages: Array(adults).fill(undefined), amount: adults, type: isGuest ? GUEST : ADULT });\n }\n\n const ages = Array(children)\n .fill(undefined)\n .map(() => initAges.pop());\n if (babies > 0) ages.push(ageBaby);\n if (children + babies > 0) occupation.push({ ages, amount: children + babies, type: CHILD });\n\n return { name, occupation };\n }),\n price: suggestion.reduce((total, { price } = {}) => total + price, 0),\n suggestion,\n });\n\n return;\n }\n\n for (let index = startIndex; index < rooms.length; index++) {\n const room = rooms[index];\n if (room.adults <= adults && room.children <= children && room.babies <= babies) {\n const totalRooms = rooms.filter(({ id } = {}) => id === room.id).length;\n const totalAvailability = rooms\n .filter(({ id } = {}) => id === room.id)\n .reduce((total, { availability } = {}) => total + availability, 0);\n const occupied = suggestion.filter(({ id } = {}) => id === room.id).length;\n\n search({\n adults: adults - room.adults,\n availability: totalAvailability - totalRooms - occupied,\n babies: babies - room.babies,\n children: children - room.children,\n rooms,\n startIndex: index + 1,\n suggestion: [\n ...suggestion,\n {\n id: room.id,\n adults: room.adults,\n children: room.children,\n babies: room.babies,\n name: room.name,\n price: room.price,\n },\n ],\n });\n }\n }\n };\n\n search({ adults, babies: ageBaby >= 0 ? 1 : 0, children: ageBaby >= 0 ? children - 1 : children, rooms });\n\n if (suggestions.length === 0) {\n search({\n adults: ageBaby >= 0 ? adults + children - 1 : adults + children,\n babies: ageBaby >= 0 ? 1 : 0,\n children: 0,\n rooms,\n });\n }\n\n const [{ hasFees, hasTaxes }] = rooms || [];\n\n return suggestions\n .map(({ price, rooms } = {}) => ({ hasFees, hasTaxes, price, rooms }))\n .sort((a, b) => a.price - b.price);\n};\n"],"mappings":"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"}
@@ -18,6 +18,7 @@ const getRooms = _ref => {
18
18
  let {
19
19
  amountAvailable: availability,
20
20
  id,
21
+ name,
21
22
  occupationOptions
22
23
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
23
24
  return Object.values(occupationOptions).map(function () {
@@ -50,6 +51,7 @@ const getRooms = _ref => {
50
51
  hasFees,
51
52
  hasTaxes,
52
53
  id,
54
+ name,
53
55
  price
54
56
  };
55
57
  });
@@ -1 +1 @@
1
- {"version":3,"file":"getRooms.js","names":["_parseBoards","require","MAX_ROOM_AVAILABILITY","getRooms","_ref","currency","fees","hotelCurrency","roomTypes","taxes","Object","values","flatMap","amountAvailable","availability","id","occupationOptions","arguments","length","undefined","map","occupationQuantities","numAdults","numBabies","totalChildren","rates","boards","hasFees","hasTaxes","price","parseBoards","adults","babies","children","sort","a","b","reduce","result","current","key","concat","room","Array","fill","exports"],"sources":["../../../../src/services/Rates/helpers/getRooms.js"],"sourcesContent":["import { parseBoards } from './parseBoards';\n\nconst MAX_ROOM_AVAILABILITY = 5;\n\nexport const getRooms = ({ currency, fees, hotelCurrency, roomTypes, taxes }) =>\n Object.values(\n Object.values(roomTypes)\n .flatMap(({ amountAvailable: availability, id, occupationOptions } = {}) =>\n Object.values(occupationOptions).map(\n ({ occupationQuantities: { numAdults, numBabies, totalChildren } = {}, rates } = {}) => {\n const { boards: [{ fees: hasFees, taxes: hasTaxes, price } = {}] = [] } =\n parseBoards({ currency, fees, hotelCurrency, rates, taxes }) || {};\n\n return {\n adults: numAdults,\n availability,\n babies: numBabies,\n children: totalChildren,\n hasFees,\n hasTaxes,\n id,\n price,\n };\n },\n ),\n )\n .sort((a, b) => a.price - b.price)\n .reduce((result, current) => {\n const key = `${current.adults}-${current.babies}-${current.children}`;\n if (!result[key]) result[key] = current;\n\n return result;\n }, {}),\n ).flatMap((room) =>\n Array(room.availability > MAX_ROOM_AVAILABILITY ? MAX_ROOM_AVAILABILITY : room.availability)\n .fill(undefined)\n .map(() => room),\n );\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA,MAAMC,qBAAqB,GAAG,CAAC;AAExB,MAAMC,QAAQ,GAAGC,IAAA;EAAA,IAAC;IAAEC,QAAQ;IAAEC,IAAI;IAAEC,aAAa;IAAEC,SAAS;IAAEC;EAAM,CAAC,GAAAL,IAAA;EAAA,OAC1EM,MAAM,CAACC,MAAM,CACXD,MAAM,CAACC,MAAM,CAACH,SAAS,CAAC,CACrBI,OAAO,CAAC;IAAA,IAAC;MAAEC,eAAe,EAAEC,YAAY;MAAEC,EAAE;MAAEC;IAAkB,CAAC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;IAAA,OACrEP,MAAM,CAACC,MAAM,CAACK,iBAAiB,CAAC,CAACI,GAAG,CAClC,YAAwF;MAAA,IAAvF;QAAEC,oBAAoB,EAAE;UAAEC,SAAS;UAAEC,SAAS;UAAEC;QAAc,CAAC,GAAG,CAAC,CAAC;QAAEC;MAAM,CAAC,GAAAR,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;MACjF,MAAM;QAAES,MAAM,EAAE,CAAC;UAAEpB,IAAI,EAAEqB,OAAO;UAAElB,KAAK,EAAEmB,QAAQ;UAAEC;QAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;MAAG,CAAC,GACrE,IAAAC,wBAAW,EAAC;QAAEzB,QAAQ;QAAEC,IAAI;QAAEC,aAAa;QAAEkB,KAAK;QAAEhB;MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;MAEpE,OAAO;QACLsB,MAAM,EAAET,SAAS;QACjBR,YAAY;QACZkB,MAAM,EAAET,SAAS;QACjBU,QAAQ,EAAET,aAAa;QACvBG,OAAO;QACPC,QAAQ;QACRb,EAAE;QACFc;MACF,CAAC;IACH,CACF,CAAC;EAAA,CACH,CAAC,CACAK,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACN,KAAK,GAAGO,CAAC,CAACP,KAAK,CAAC,CACjCQ,MAAM,CAAC,CAACC,MAAM,EAAEC,OAAO,KAAK;IAC3B,MAAMC,GAAG,MAAAC,MAAA,CAAMF,OAAO,CAACR,MAAM,OAAAU,MAAA,CAAIF,OAAO,CAACP,MAAM,OAAAS,MAAA,CAAIF,OAAO,CAACN,QAAQ,CAAE;IACrE,IAAI,CAACK,MAAM,CAACE,GAAG,CAAC,EAAEF,MAAM,CAACE,GAAG,CAAC,GAAGD,OAAO;IAEvC,OAAOD,MAAM;EACf,CAAC,EAAE,CAAC,CAAC,CACT,CAAC,CAAC1B,OAAO,CAAE8B,IAAI,IACbC,KAAK,CAACD,IAAI,CAAC5B,YAAY,GAAGZ,qBAAqB,GAAGA,qBAAqB,GAAGwC,IAAI,CAAC5B,YAAY,CAAC,CACzF8B,IAAI,CAACzB,SAAS,CAAC,CACfC,GAAG,CAAC,MAAMsB,IAAI,CACnB,CAAC;AAAA;AAACG,OAAA,CAAA1C,QAAA,GAAAA,QAAA"}
1
+ {"version":3,"file":"getRooms.js","names":["_parseBoards","require","MAX_ROOM_AVAILABILITY","getRooms","_ref","currency","fees","hotelCurrency","roomTypes","taxes","Object","values","flatMap","amountAvailable","availability","id","name","occupationOptions","arguments","length","undefined","map","occupationQuantities","numAdults","numBabies","totalChildren","rates","boards","hasFees","hasTaxes","price","parseBoards","adults","babies","children","sort","a","b","reduce","result","current","key","concat","room","Array","fill","exports"],"sources":["../../../../src/services/Rates/helpers/getRooms.js"],"sourcesContent":["import { parseBoards } from './parseBoards';\n\nconst MAX_ROOM_AVAILABILITY = 5;\n\nexport const getRooms = ({ currency, fees, hotelCurrency, roomTypes, taxes }) =>\n Object.values(\n Object.values(roomTypes)\n .flatMap(({ amountAvailable: availability, id, name, occupationOptions } = {}) =>\n Object.values(occupationOptions).map(\n ({ occupationQuantities: { numAdults, numBabies, totalChildren } = {}, rates } = {}) => {\n const { boards: [{ fees: hasFees, taxes: hasTaxes, price } = {}] = [] } =\n parseBoards({ currency, fees, hotelCurrency, rates, taxes }) || {};\n\n return {\n adults: numAdults,\n availability,\n babies: numBabies,\n children: totalChildren,\n hasFees,\n hasTaxes,\n id,\n name,\n price,\n };\n },\n ),\n )\n .sort((a, b) => a.price - b.price)\n .reduce((result, current) => {\n const key = `${current.adults}-${current.babies}-${current.children}`;\n if (!result[key]) result[key] = current;\n\n return result;\n }, {}),\n ).flatMap((room) =>\n Array(room.availability > MAX_ROOM_AVAILABILITY ? MAX_ROOM_AVAILABILITY : room.availability)\n .fill(undefined)\n .map(() => room),\n );\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA,MAAMC,qBAAqB,GAAG,CAAC;AAExB,MAAMC,QAAQ,GAAGC,IAAA;EAAA,IAAC;IAAEC,QAAQ;IAAEC,IAAI;IAAEC,aAAa;IAAEC,SAAS;IAAEC;EAAM,CAAC,GAAAL,IAAA;EAAA,OAC1EM,MAAM,CAACC,MAAM,CACXD,MAAM,CAACC,MAAM,CAACH,SAAS,CAAC,CACrBI,OAAO,CAAC;IAAA,IAAC;MAAEC,eAAe,EAAEC,YAAY;MAAEC,EAAE;MAAEC,IAAI;MAAEC;IAAkB,CAAC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;IAAA,OAC3ER,MAAM,CAACC,MAAM,CAACM,iBAAiB,CAAC,CAACI,GAAG,CAClC,YAAwF;MAAA,IAAvF;QAAEC,oBAAoB,EAAE;UAAEC,SAAS;UAAEC,SAAS;UAAEC;QAAc,CAAC,GAAG,CAAC,CAAC;QAAEC;MAAM,CAAC,GAAAR,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;MACjF,MAAM;QAAES,MAAM,EAAE,CAAC;UAAErB,IAAI,EAAEsB,OAAO;UAAEnB,KAAK,EAAEoB,QAAQ;UAAEC;QAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;MAAG,CAAC,GACrE,IAAAC,wBAAW,EAAC;QAAE1B,QAAQ;QAAEC,IAAI;QAAEC,aAAa;QAAEmB,KAAK;QAAEjB;MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;MAEpE,OAAO;QACLuB,MAAM,EAAET,SAAS;QACjBT,YAAY;QACZmB,MAAM,EAAET,SAAS;QACjBU,QAAQ,EAAET,aAAa;QACvBG,OAAO;QACPC,QAAQ;QACRd,EAAE;QACFC,IAAI;QACJc;MACF,CAAC;IACH,CACF,CAAC;EAAA,CACH,CAAC,CACAK,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACN,KAAK,GAAGO,CAAC,CAACP,KAAK,CAAC,CACjCQ,MAAM,CAAC,CAACC,MAAM,EAAEC,OAAO,KAAK;IAC3B,MAAMC,GAAG,MAAAC,MAAA,CAAMF,OAAO,CAACR,MAAM,OAAAU,MAAA,CAAIF,OAAO,CAACP,MAAM,OAAAS,MAAA,CAAIF,OAAO,CAACN,QAAQ,CAAE;IACrE,IAAI,CAACK,MAAM,CAACE,GAAG,CAAC,EAAEF,MAAM,CAACE,GAAG,CAAC,GAAGD,OAAO;IAEvC,OAAOD,MAAM;EACf,CAAC,EAAE,CAAC,CAAC,CACT,CAAC,CAAC3B,OAAO,CAAE+B,IAAI,IACbC,KAAK,CAACD,IAAI,CAAC7B,YAAY,GAAGZ,qBAAqB,GAAGA,qBAAqB,GAAGyC,IAAI,CAAC7B,YAAY,CAAC,CACzF+B,IAAI,CAACzB,SAAS,CAAC,CACfC,GAAG,CAAC,MAAMsB,IAAI,CACnB,CAAC;AAAA;AAACG,OAAA,CAAA3C,QAAA,GAAAA,QAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mirai/core",
3
- "version": "0.3.157",
3
+ "version": "0.3.158",
4
4
  "source": "src/index.js",
5
5
  "repository": "https://gitlab.com/miraicorp/dev/frontend/core",
6
6
  "author": "JΛVI <hello@soyjavi.com>",