@mirai/core 0.4.258 → 0.4.259

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.
@@ -60,6 +60,7 @@ const Finder = _ref => {
60
60
  finder: storeFinder,
61
61
  forwarder,
62
62
  locale,
63
+ promo = {},
63
64
  skeleton = false,
64
65
  type = HOTEL,
65
66
  ...store
@@ -128,18 +129,27 @@ const Finder = _ref => {
128
129
  // eslint-disable-next-line react-hooks/exhaustive-deps
129
130
  }, [value === null || value === void 0 ? void 0 : value.occupation, value === null || value === void 0 ? void 0 : value.place]);
130
131
  (0, _react.useEffect)(() => {
131
- var _fetchUrlParams;
132
132
  const {
133
133
  place: {
134
- id,
134
+ id: [hotelId] = [],
135
135
  isHotel
136
136
  } = {}
137
137
  } = value || {};
138
- if (isHotel && !((_fetchUrlParams = (0, _helpers2.fetchUrlParams)(window.location.search)) !== null && _fetchUrlParams !== void 0 && _fetchUrlParams.currency)) {
139
- // ! TODO: Same here, this should be responsibility of <Core>...
140
- (async () => {
141
- setCurrency(await (0, _helpers2.fetchCurrency)(id[0]));
142
- })();
138
+ const nextPromocode = !is.rates && (promo.variants && promo.variants[hotelId] || promo.code);
139
+ if (nextPromocode) setValue({
140
+ ...value,
141
+ ...{
142
+ promocode: nextPromocode
143
+ }
144
+ });
145
+ if (isHotel) {
146
+ var _fetchUrlParams;
147
+ if (!((_fetchUrlParams = (0, _helpers2.fetchUrlParams)(window.location.search)) !== null && _fetchUrlParams !== void 0 && _fetchUrlParams.currency)) {
148
+ // ! TODO: Same here, this should be responsibility of <Core>...
149
+ (async () => {
150
+ setCurrency(await (0, _helpers2.fetchCurrency)(hotelId));
151
+ })();
152
+ }
143
153
  }
144
154
  // eslint-disable-next-line react-hooks/exhaustive-deps
145
155
  }, [value === null || value === void 0 ? void 0 : value.place]);
@@ -1 +1 @@
1
- {"version":3,"file":"Finder.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_Finder","_Finder2","_Finder3","style","_helpers","_getAvailableWidth","_helpers2","_prepareRoom","_shared__","_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","CHAIN","HOTEL","TYPE","timeoutMetricChange","Finder","_ref","_dataSource$places","_dataSource$places2","_dataSource$places3","_dataSource$places4","compacted","icon","layout","metrics","storage","text","onChange","onSubmit","others","isMobile","width","deviceWidth","useDevice","dateFormat","translate","useLocale","ref","useRef","value","components","currency","propCurrency","finder","storeFinder","forwarder","locale","skeleton","type","store","useStore","setCurrency","useState","error","setError","focus","setFocus","unavailability","setUnavailability","setValue","parseValue","visited","setVisited","warning","setWarning","setWidth","useEffect","occupation","prepareRoom","DATASOURCE","is","debug","console","log","window","addEventListener","handlePageShow","document","handleClickOutside","Event","publish","EVENT","METRICS","id","removeEventListener","current","el","column","observer","IntersectionObserver","isIntersecting","undefined","getAvailableWidth","threshold","observe","unobserve","disabledDates","place","_fetchUrlParams","isHotel","fetchUrlParams","location","search","fetchCurrency","FINDER_READY","event","handleFinder","calendar","handleSubmit","nextValue","subscribe","FINDER","unsubscribe","next","JSON","stringify","concat","handleChange","field","fieldValue","FINDER_FIELD_CHANGE","previousValue","clearTimeout","setTimeout","_ref$current","contains","persisted","handlePlaceChange","VIEW","PLACE","rates","assistant","_value$calendar","_nextValue","dataSource","places","CALENDAR","firstError","keys","filter","forwarderUrl","getForwarderUrl","setStorage","href","includes","promocode","ids","getDataSource","hotel","idHotel","separatorColor","fieldVariant","Theme","inline","expand","fieldProps","hasPlaces","getFieldPosition","L10N","ACTION_SEARCH","ACTION_APPLY","variant","className","maxWidth","createElement","Fragment","Compact","onExpand","View","role","row","tag","testId","styles","Field","FIELD","caption","getPlaceCaption","options","label","LABEL_WHERE","markdown","placeholder","LABEL_WHERE_PLACEHOLDER","visible","onPress","Places","autoColumn","separator","getCalendarCaption","centered","LABEL_WHEN","Calendar","parseCalendarProps","variants","rangeMinDays","top","nextCalendar","onError","onValid","FieldOccupation","getOccupationDataSource","hotels","getHotels","placesSource","maxRooms","OCCUPATION","withWarning","onWarning","FieldPromocode","PROMOCODE","onEnter","onLeave","Skeleton","large","button","words","Button","disabled","tabindex","wide","withIcon","Icon","ICON","SEARCH","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 { Icon, Button, styles, Theme, 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, TYPE, VIEW } from './Finder.constants';\nimport { L10N } from './Finder.l10n';\nimport * as style from './Finder.module.css';\nimport {\n getDataSource,\n getFieldPosition,\n getForwarderUrl,\n getHotels,\n getOccupationDataSource,\n getPlaceCaption,\n parseCalendarProps,\n parseValue,\n} from './helpers';\nimport { setStorage } from './helpers';\nimport { getAvailableWidth } from './helpers/getAvailableWidth';\nimport { fetchCurrency, fetchUrlParams } from '../../helpers';\n// ! TODO: Why we don't publish prepareRoom in ../../helpers\nimport { prepareRoom } from '../../helpers/prepareRoom';\nimport { Field, FieldOccupation, FieldPromocode } from '../__shared__';\nimport { Skeleton } from '../__shared__';\nimport { DATASOURCE } from '../__shared__/Occupation/Occupation.constants';\nimport { EVENT, getCalendarCaption, ICON } from '../helpers';\n\nconst { CHAIN, HOTEL } = TYPE;\nlet timeoutMetricChange;\n\nconst Finder = ({\n compacted = false,\n icon = false,\n layout,\n metrics = 'finder',\n storage = true,\n text,\n onChange = () => {},\n onSubmit,\n ...others\n}) => {\n const { isMobile, width: deviceWidth } = useDevice();\n const { dateFormat, translate } = useLocale();\n const ref = useRef(null);\n const {\n set,\n value: {\n components = {},\n currency: propCurrency,\n finder: storeFinder,\n forwarder,\n locale,\n skeleton = false,\n type = HOTEL,\n ...store\n },\n } = useStore();\n\n const [currency, setCurrency] = useState();\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 const [warning, setWarning] = useState();\n const [width, setWidth] = useState();\n\n useEffect(() => {\n if (skeleton) return;\n\n if (!storeFinder?.occupation) set({ finder: { ...storeFinder, occupation: [prepareRoom(DATASOURCE)] } });\n\n if (is.debug && !storeFinder?.occupation) {\n // eslint-disable-next-line no-console\n console.log({ finder: { ...storeFinder, occupation: [prepareRoom(DATASOURCE)] } });\n }\n window.addEventListener('pageshow', handlePageShow);\n !isMobile && document.addEventListener('click', handleClickOutside, true);\n\n if (metrics === 'finder') Event.publish(EVENT.METRICS, { id: 'FINDER:RENDER' });\n\n return () => {\n window.removeEventListener('pageshow', handlePageShow);\n !isMobile && document.removeEventListener('click', handleClickOutside, true);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n const { current: el } = ref || {};\n if (!is.column || !el) return;\n\n const observer = new IntersectionObserver(\n ([{ isIntersecting } = {}] = []) => isIntersecting && setWidth(getAvailableWidth(el)),\n { threshold: 0.1 },\n );\n if (el) observer.observe(el);\n\n return () => {\n if (el) observer.unobserve(el);\n };\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [deviceWidth]);\n\n useEffect(() => {\n unavailability && setUnavailability({ disabledDates: [] });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value?.occupation, value?.place]);\n\n useEffect(() => {\n const { place: { id, isHotel } = {} } = value || {};\n if (isHotel && !fetchUrlParams(window.location.search)?.currency) {\n // ! TODO: Same here, this should be responsibility of <Core>...\n (async () => {\n setCurrency(await fetchCurrency(id[0]));\n })();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value?.place]);\n\n useEffect(() => {\n !onSubmit && !skeleton && Event.publish(EVENT.FINDER_READY, { event: EVENT.FINDER_READY });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n const handleFinder = ({ calendar, finder, focus } = {}) => {\n if (finder) return handleSubmit({ nextValue: finder });\n\n setUnavailability(calendar);\n if (focus) setFocus(focus);\n };\n Event.subscribe(EVENT.FINDER, handleFinder);\n\n return () => Event.unsubscribe(EVENT.FINDER, handleFinder);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [locale, propCurrency]);\n\n // ! TODO: Why this one? Is not responsibility of <Finder> change the currency when prop changes.\n useEffect(() => setCurrency(propCurrency), [propCurrency]);\n\n useEffect(\n () => {\n const next = parseValue({ ...value, ...storeFinder });\n if (JSON.stringify(value) !== JSON.stringify(next)) setValue(next);\n },\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 Event.publish(EVENT.FINDER_FIELD_CHANGE, { field, previousValue: value[field], value: fieldValue });\n if (metrics) {\n clearTimeout(timeoutMetricChange);\n timeoutMetricChange = setTimeout(() => Event.publish(EVENT.METRICS, { id: `${metrics}:CHANGE:${field}` }), 500);\n }\n };\n\n const handleClickOutside = ({ target } = {}) => !ref.current?.contains(target) && setFocus(undefined);\n\n const handlePageShow = async ({ persisted } = {}) => {\n if (!persisted) return;\n\n setFocus();\n setVisited();\n setValue(parseValue(storeFinder));\n };\n\n const handlePlaceChange = async (place) => {\n setWarning(false);\n handleChange(VIEW.PLACE, place);\n !is.rates && assistant();\n };\n\n const handleSubmit = ({ nextValue = value } = {}) => {\n if (dataSource.places && value.place === undefined) return setFocus(VIEW.PLACE);\n\n if (value.calendar?.length !== 2) return setFocus(VIEW.CALENDAR);\n\n const [firstError] = Object.keys(error).filter((key) => !!error[key]);\n if (firstError) return setFocus(firstError);\n\n setWarning(false);\n setFocus(undefined);\n if (!nextValue?.occupation) {\n // eslint-disable-next-line no-console\n console.log('>>>> No occupation');\n nextValue = { ...nextValue, occupation: [prepareRoom(DATASOURCE)] };\n }\n set({ finder: nextValue });\n const forwarderUrl = getForwarderUrl({ ...nextValue, currency, forwarder, locale, store, type });\n\n storage && setStorage(nextValue, store?.id);\n if (onSubmit) onSubmit({ ...nextValue, forwarderUrl });\n else window.location.href = forwarderUrl;\n\n if (metrics) Event.publish(EVENT.METRICS, { id: `${metrics}:SUBMIT`, ...nextValue });\n };\n\n const assistant = () => {\n const { calendar = [] } = value;\n if (focus === VIEW.PLACE && !visited.calendar && calendar.length !== 2) setFocus(VIEW.CALENDAR);\n else if (!compacted || [VIEW.CALENDAR, VIEW.PLACE].includes(focus)) setFocus(undefined);\n };\n\n const { calendar = [], occupation, place = {}, promocode } = value;\n const { id: ids = [], isHotel } = place;\n const dataSource = getDataSource({ type, ...store });\n const { hotel: { id: idHotel } = {} } = store;\n const id = type !== HOTEL ? (isHotel && ids.length === 1 ? ids[0] : undefined) : idHotel;\n\n const { separatorColor = '', ...fieldVariant } = Theme.get('--mirai-finder-field-');\n\n const is = {\n inline: separatorColor !== 'transparent',\n column: layout === 'column',\n expand: !isMobile && layout === 'expand',\n compacted: layout !== 'column' && (isMobile || (compacted && !focus)),\n debug: store?.id === '500138',\n rates: components.rates !== undefined,\n };\n\n const fieldProps = {\n compacted: is.compacted,\n hasPlaces: !!dataSource.places,\n inline: is.inline,\n ...(!is.compacted ? getFieldPosition(ref) : undefined),\n text: is.rates ? translate(L10N.ACTION_SEARCH) : translate(L10N.ACTION_APPLY),\n variant: Object.keys(fieldVariant).length ? fieldVariant : undefined,\n className: style.field,\n style: is.column && width ? { maxWidth: width, width } : undefined,\n };\n\n // eslint-disable-next-line no-console\n is.debug && console.log({ place, calendar, occupation });\n\n return (\n <>\n {is.compacted && (\n <Compact\n {...{ dataSource, skeleton, value }}\n onExpand={setFocus}\n onSubmit={!is.rates || (is.rates && !isMobile) ? handleSubmit : undefined}\n {...others}\n />\n )}\n\n <View\n ref={ref}\n role=\"finder\"\n row={!is.column}\n tag=\"finder\"\n testId={others.testId}\n className={\n !is.compacted\n ? styles(style.finder, is.column && style.column, is.expand && style.expand, others.className)\n : undefined\n }\n >\n {(dataSource.places || (skeleton && type === CHAIN)) && (\n <>\n <Field\n {...FIELD.PLACE}\n caption={getPlaceCaption(place.value, dataSource.places?.options)}\n label={translate(L10N.LABEL_WHERE)}\n markdown={false}\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 {...fieldProps}\n >\n <Places\n autoColumn={focus === VIEW.PLACE}\n dataSource={dataSource?.places?.options}\n text={compacted ? text : undefined}\n value={place.value}\n onChange={handlePlaceChange}\n onSubmit={is.rates ? handleSubmit : undefined}\n testId={others.testId ? `${others.testId}-places` : undefined}\n />\n </Field>\n\n {is.inline && <View className={style.separator} />}\n </>\n )}\n\n <Field\n {...FIELD.CALENDAR}\n caption={calendar.length ? getCalendarCaption(calendar, translate, dateFormat) : undefined}\n centered={type !== HOTEL && !is.column}\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 testId={others.testId ? `${others.testId}-calendar-field` : undefined}\n {...fieldProps}\n >\n <Calendar\n {...parseCalendarProps(dataSource.calendar, id, occupation, type, unavailability, dataSource.variants)}\n id={id}\n currency={currency || propCurrency}\n locale={locale}\n rangeMinDays={1}\n text={compacted ? text : undefined}\n top={fieldProps?.top}\n skeleton={skeleton}\n unavailability={unavailability}\n value={calendar}\n onChange={(nextCalendar, event) => {\n handleChange(VIEW.CALENDAR, nextCalendar, event);\n if (nextCalendar.length === 2 && !is.rates) {\n setError({ ...error, calendar: undefined });\n assistant();\n }\n }}\n onError={(calendar) => setError({ ...error, calendar })}\n onSubmit={is.rates ? handleSubmit : undefined}\n onValid={() => setError({ ...error, calendar: undefined })}\n testId={others.testId ? `${others.testId}-calendar` : undefined}\n />\n </Field>\n\n {is.inline && <View className={style.separator} />}\n\n <FieldOccupation\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 withWarning={warning}\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={is.rates ? handleSubmit : isMobile && is.compacted ? () => setFocus() : undefined}\n onValid={() => setError({ ...error, occupation: undefined })}\n onWarning={() => {\n if (!isMobile && focus !== VIEW.OCCUPATION) setFocus(VIEW.OCCUPATION);\n }}\n testId={others.testId ? `${others.testId}-occupation` : undefined}\n {...fieldProps}\n />\n\n {is.inline && <View className={style.separator} />}\n\n <FieldPromocode\n value={promocode}\n visible={focus === VIEW.PROMOCODE}\n onChange={(promocode, event) => handleChange(VIEW.PROMOCODE, promocode, event)}\n onEnter={!is.compacted ? () => setFocus(VIEW.PROMOCODE) : undefined}\n onLeave={!is.compacted ? () => setFocus(undefined) : undefined}\n onPress={\n isMobile && is.compacted ? () => setFocus(focus !== VIEW.PROMOCODE ? VIEW.PROMOCODE : undefined) : undefined\n }\n onSubmit={isMobile && is.compacted ? (is.rates ? handleSubmit : () => setFocus()) : undefined}\n testId={others.testId ? `${others.testId}-promocode` : undefined}\n {...fieldProps}\n />\n\n {!is.compacted ? (\n skeleton ? (\n <Skeleton large button words={1} />\n ) : (\n <Button\n disabled={skeleton}\n large\n tabindex={4}\n role=\"finder-button\"\n wide={is.column}\n onPress={handleSubmit}\n className={styles(style.button, icon && !is.column && style.withIcon)}\n testId={others.testId ? `${others.testId}-submit` : undefined}\n >\n {icon && !is.column ? <Icon value={ICON.SEARCH} /> : text || translate(L10N.ACTION_SEARCH)}\n </Button>\n )\n ) : null}\n </View>\n </>\n );\n};\n\nFinder.displayName = 'Mirai:Core:Finder';\n\nFinder.propTypes = {\n compacted: PropTypes.bool,\n icon: PropTypes.bool,\n layout: PropTypes.oneOf(['column', 'expand']),\n metrics: PropTypes.string,\n storage: PropTypes.bool,\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","_getAvailableWidth","_helpers2","_prepareRoom","_shared__","_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","CHAIN","HOTEL","TYPE","timeoutMetricChange","Finder","_ref","_dataSource$places","_dataSource$places2","_dataSource$places3","_dataSource$places4","compacted","icon","layout","metrics","storage","text","onChange","onSubmit","others","isMobile","width","deviceWidth","useDevice","dateFormat","translate","useLocale","ref","useRef","value","components","currency","propCurrency","finder","storeFinder","forwarder","locale","promo","skeleton","type","store","useStore","setCurrency","useState","error","setError","focus","setFocus","unavailability","setUnavailability","setValue","parseValue","visited","setVisited","warning","setWarning","setWidth","useEffect","occupation","prepareRoom","DATASOURCE","is","debug","console","log","window","addEventListener","handlePageShow","document","handleClickOutside","Event","publish","EVENT","METRICS","id","removeEventListener","current","el","column","observer","IntersectionObserver","isIntersecting","undefined","getAvailableWidth","threshold","observe","unobserve","disabledDates","place","hotelId","isHotel","nextPromocode","rates","variants","code","promocode","_fetchUrlParams","fetchUrlParams","location","search","fetchCurrency","FINDER_READY","event","handleFinder","calendar","handleSubmit","nextValue","subscribe","FINDER","unsubscribe","next","JSON","stringify","concat","handleChange","field","fieldValue","FINDER_FIELD_CHANGE","previousValue","clearTimeout","setTimeout","_ref$current","contains","persisted","handlePlaceChange","VIEW","PLACE","assistant","_value$calendar","_nextValue","dataSource","places","CALENDAR","firstError","keys","filter","forwarderUrl","getForwarderUrl","setStorage","href","includes","ids","getDataSource","hotel","idHotel","separatorColor","fieldVariant","Theme","inline","expand","fieldProps","hasPlaces","getFieldPosition","L10N","ACTION_SEARCH","ACTION_APPLY","variant","className","maxWidth","createElement","Fragment","Compact","onExpand","View","role","row","tag","testId","styles","Field","FIELD","caption","getPlaceCaption","options","label","LABEL_WHERE","markdown","placeholder","LABEL_WHERE_PLACEHOLDER","visible","onPress","Places","autoColumn","separator","getCalendarCaption","centered","LABEL_WHEN","Calendar","parseCalendarProps","rangeMinDays","top","nextCalendar","onError","onValid","FieldOccupation","getOccupationDataSource","hotels","getHotels","placesSource","maxRooms","OCCUPATION","withWarning","onWarning","FieldPromocode","PROMOCODE","onEnter","onLeave","Skeleton","large","button","words","Button","disabled","tabindex","wide","withIcon","Icon","ICON","SEARCH","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 { Icon, Button, styles, Theme, 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, TYPE, VIEW } from './Finder.constants';\nimport { L10N } from './Finder.l10n';\nimport * as style from './Finder.module.css';\nimport {\n getDataSource,\n getFieldPosition,\n getForwarderUrl,\n getHotels,\n getOccupationDataSource,\n getPlaceCaption,\n parseCalendarProps,\n parseValue,\n} from './helpers';\nimport { setStorage } from './helpers';\nimport { getAvailableWidth } from './helpers/getAvailableWidth';\nimport { fetchCurrency, fetchUrlParams } from '../../helpers';\n// ! TODO: Why we don't publish prepareRoom in ../../helpers\nimport { prepareRoom } from '../../helpers/prepareRoom';\nimport { Field, FieldOccupation, FieldPromocode } from '../__shared__';\nimport { Skeleton } from '../__shared__';\nimport { DATASOURCE } from '../__shared__/Occupation/Occupation.constants';\nimport { EVENT, getCalendarCaption, ICON } from '../helpers';\n\nconst { CHAIN, HOTEL } = TYPE;\nlet timeoutMetricChange;\n\nconst Finder = ({\n compacted = false,\n icon = false,\n layout,\n metrics = 'finder',\n storage = true,\n text,\n onChange = () => {},\n onSubmit,\n ...others\n}) => {\n const { isMobile, width: deviceWidth } = useDevice();\n const { dateFormat, translate } = useLocale();\n const ref = useRef(null);\n const {\n set,\n value: {\n components = {},\n currency: propCurrency,\n finder: storeFinder,\n forwarder,\n locale,\n promo = {},\n skeleton = false,\n type = HOTEL,\n ...store\n },\n } = useStore();\n\n const [currency, setCurrency] = useState();\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 const [warning, setWarning] = useState();\n const [width, setWidth] = useState();\n\n useEffect(() => {\n if (skeleton) return;\n\n if (!storeFinder?.occupation) set({ finder: { ...storeFinder, occupation: [prepareRoom(DATASOURCE)] } });\n\n if (is.debug && !storeFinder?.occupation) {\n // eslint-disable-next-line no-console\n console.log({ finder: { ...storeFinder, occupation: [prepareRoom(DATASOURCE)] } });\n }\n window.addEventListener('pageshow', handlePageShow);\n !isMobile && document.addEventListener('click', handleClickOutside, true);\n\n if (metrics === 'finder') Event.publish(EVENT.METRICS, { id: 'FINDER:RENDER' });\n\n return () => {\n window.removeEventListener('pageshow', handlePageShow);\n !isMobile && document.removeEventListener('click', handleClickOutside, true);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n const { current: el } = ref || {};\n if (!is.column || !el) return;\n\n const observer = new IntersectionObserver(\n ([{ isIntersecting } = {}] = []) => isIntersecting && setWidth(getAvailableWidth(el)),\n { threshold: 0.1 },\n );\n if (el) observer.observe(el);\n\n return () => {\n if (el) observer.unobserve(el);\n };\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [deviceWidth]);\n\n useEffect(() => {\n unavailability && setUnavailability({ disabledDates: [] });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value?.occupation, value?.place]);\n\n useEffect(() => {\n const { place: { id: [hotelId] = [], isHotel } = {} } = value || {};\n const nextPromocode = !is.rates && ((promo.variants && promo.variants[hotelId]) || promo.code);\n if (nextPromocode) setValue({ ...value, ...{ promocode: nextPromocode } });\n\n if (isHotel) {\n if (!fetchUrlParams(window.location.search)?.currency) {\n // ! TODO: Same here, this should be responsibility of <Core>...\n (async () => {\n setCurrency(await fetchCurrency(hotelId));\n })();\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value?.place]);\n\n useEffect(() => {\n !onSubmit && !skeleton && Event.publish(EVENT.FINDER_READY, { event: EVENT.FINDER_READY });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n const handleFinder = ({ calendar, finder, focus } = {}) => {\n if (finder) return handleSubmit({ nextValue: finder });\n\n setUnavailability(calendar);\n if (focus) setFocus(focus);\n };\n Event.subscribe(EVENT.FINDER, handleFinder);\n\n return () => Event.unsubscribe(EVENT.FINDER, handleFinder);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [locale, propCurrency]);\n\n // ! TODO: Why this one? Is not responsibility of <Finder> change the currency when prop changes.\n useEffect(() => setCurrency(propCurrency), [propCurrency]);\n\n useEffect(\n () => {\n const next = parseValue({ ...value, ...storeFinder });\n if (JSON.stringify(value) !== JSON.stringify(next)) setValue(next);\n },\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 Event.publish(EVENT.FINDER_FIELD_CHANGE, { field, previousValue: value[field], value: fieldValue });\n if (metrics) {\n clearTimeout(timeoutMetricChange);\n timeoutMetricChange = setTimeout(() => Event.publish(EVENT.METRICS, { id: `${metrics}:CHANGE:${field}` }), 500);\n }\n };\n\n const handleClickOutside = ({ target } = {}) => !ref.current?.contains(target) && setFocus(undefined);\n\n const handlePageShow = async ({ persisted } = {}) => {\n if (!persisted) return;\n\n setFocus();\n setVisited();\n setValue(parseValue(storeFinder));\n };\n\n const handlePlaceChange = async (place) => {\n setWarning(false);\n handleChange(VIEW.PLACE, place);\n !is.rates && assistant();\n };\n\n const handleSubmit = ({ nextValue = value } = {}) => {\n if (dataSource.places && value.place === undefined) return setFocus(VIEW.PLACE);\n\n if (value.calendar?.length !== 2) return setFocus(VIEW.CALENDAR);\n\n const [firstError] = Object.keys(error).filter((key) => !!error[key]);\n if (firstError) return setFocus(firstError);\n\n setWarning(false);\n setFocus(undefined);\n if (!nextValue?.occupation) {\n // eslint-disable-next-line no-console\n console.log('>>>> No occupation');\n nextValue = { ...nextValue, occupation: [prepareRoom(DATASOURCE)] };\n }\n set({ finder: nextValue });\n const forwarderUrl = getForwarderUrl({ ...nextValue, currency, forwarder, locale, store, type });\n\n storage && setStorage(nextValue, store?.id);\n if (onSubmit) onSubmit({ ...nextValue, forwarderUrl });\n else window.location.href = forwarderUrl;\n\n if (metrics) Event.publish(EVENT.METRICS, { id: `${metrics}:SUBMIT`, ...nextValue });\n };\n\n const assistant = () => {\n const { calendar = [] } = value;\n if (focus === VIEW.PLACE && !visited.calendar && calendar.length !== 2) setFocus(VIEW.CALENDAR);\n else if (!compacted || [VIEW.CALENDAR, VIEW.PLACE].includes(focus)) setFocus(undefined);\n };\n\n const { calendar = [], occupation, place = {}, promocode } = value;\n const { id: ids = [], isHotel } = place;\n const dataSource = getDataSource({ type, ...store });\n const { hotel: { id: idHotel } = {} } = store;\n const id = type !== HOTEL ? (isHotel && ids.length === 1 ? ids[0] : undefined) : idHotel;\n\n const { separatorColor = '', ...fieldVariant } = Theme.get('--mirai-finder-field-');\n\n const is = {\n inline: separatorColor !== 'transparent',\n column: layout === 'column',\n expand: !isMobile && layout === 'expand',\n compacted: layout !== 'column' && (isMobile || (compacted && !focus)),\n debug: store?.id === '500138',\n rates: components.rates !== undefined,\n };\n\n const fieldProps = {\n compacted: is.compacted,\n hasPlaces: !!dataSource.places,\n inline: is.inline,\n ...(!is.compacted ? getFieldPosition(ref) : undefined),\n text: is.rates ? translate(L10N.ACTION_SEARCH) : translate(L10N.ACTION_APPLY),\n variant: Object.keys(fieldVariant).length ? fieldVariant : undefined,\n className: style.field,\n style: is.column && width ? { maxWidth: width, width } : undefined,\n };\n\n // eslint-disable-next-line no-console\n is.debug && console.log({ place, calendar, occupation });\n\n return (\n <>\n {is.compacted && (\n <Compact\n {...{ dataSource, skeleton, value }}\n onExpand={setFocus}\n onSubmit={!is.rates || (is.rates && !isMobile) ? handleSubmit : undefined}\n {...others}\n />\n )}\n\n <View\n ref={ref}\n role=\"finder\"\n row={!is.column}\n tag=\"finder\"\n testId={others.testId}\n className={\n !is.compacted\n ? styles(style.finder, is.column && style.column, is.expand && style.expand, others.className)\n : undefined\n }\n >\n {(dataSource.places || (skeleton && type === CHAIN)) && (\n <>\n <Field\n {...FIELD.PLACE}\n caption={getPlaceCaption(place.value, dataSource.places?.options)}\n label={translate(L10N.LABEL_WHERE)}\n markdown={false}\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 {...fieldProps}\n >\n <Places\n autoColumn={focus === VIEW.PLACE}\n dataSource={dataSource?.places?.options}\n text={compacted ? text : undefined}\n value={place.value}\n onChange={handlePlaceChange}\n onSubmit={is.rates ? handleSubmit : undefined}\n testId={others.testId ? `${others.testId}-places` : undefined}\n />\n </Field>\n\n {is.inline && <View className={style.separator} />}\n </>\n )}\n\n <Field\n {...FIELD.CALENDAR}\n caption={calendar.length ? getCalendarCaption(calendar, translate, dateFormat) : undefined}\n centered={type !== HOTEL && !is.column}\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 testId={others.testId ? `${others.testId}-calendar-field` : undefined}\n {...fieldProps}\n >\n <Calendar\n {...parseCalendarProps(dataSource.calendar, id, occupation, type, unavailability, dataSource.variants)}\n id={id}\n currency={currency || propCurrency}\n locale={locale}\n rangeMinDays={1}\n text={compacted ? text : undefined}\n top={fieldProps?.top}\n skeleton={skeleton}\n unavailability={unavailability}\n value={calendar}\n onChange={(nextCalendar, event) => {\n handleChange(VIEW.CALENDAR, nextCalendar, event);\n if (nextCalendar.length === 2 && !is.rates) {\n setError({ ...error, calendar: undefined });\n assistant();\n }\n }}\n onError={(calendar) => setError({ ...error, calendar })}\n onSubmit={is.rates ? handleSubmit : undefined}\n onValid={() => setError({ ...error, calendar: undefined })}\n testId={others.testId ? `${others.testId}-calendar` : undefined}\n />\n </Field>\n\n {is.inline && <View className={style.separator} />}\n\n <FieldOccupation\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 withWarning={warning}\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={is.rates ? handleSubmit : isMobile && is.compacted ? () => setFocus() : undefined}\n onValid={() => setError({ ...error, occupation: undefined })}\n onWarning={() => {\n if (!isMobile && focus !== VIEW.OCCUPATION) setFocus(VIEW.OCCUPATION);\n }}\n testId={others.testId ? `${others.testId}-occupation` : undefined}\n {...fieldProps}\n />\n\n {is.inline && <View className={style.separator} />}\n\n <FieldPromocode\n value={promocode}\n visible={focus === VIEW.PROMOCODE}\n onChange={(promocode, event) => handleChange(VIEW.PROMOCODE, promocode, event)}\n onEnter={!is.compacted ? () => setFocus(VIEW.PROMOCODE) : undefined}\n onLeave={!is.compacted ? () => setFocus(undefined) : undefined}\n onPress={\n isMobile && is.compacted ? () => setFocus(focus !== VIEW.PROMOCODE ? VIEW.PROMOCODE : undefined) : undefined\n }\n onSubmit={isMobile && is.compacted ? (is.rates ? handleSubmit : () => setFocus()) : undefined}\n testId={others.testId ? `${others.testId}-promocode` : undefined}\n {...fieldProps}\n />\n\n {!is.compacted ? (\n skeleton ? (\n <Skeleton large button words={1} />\n ) : (\n <Button\n disabled={skeleton}\n large\n tabindex={4}\n role=\"finder-button\"\n wide={is.column}\n onPress={handleSubmit}\n className={styles(style.button, icon && !is.column && style.withIcon)}\n testId={others.testId ? `${others.testId}-submit` : undefined}\n >\n {icon && !is.column ? <Icon value={ICON.SEARCH} /> : text || translate(L10N.ACTION_SEARCH)}\n </Button>\n )\n ) : null}\n </View>\n </>\n );\n};\n\nFinder.displayName = 'Mirai:Core:Finder';\n\nFinder.propTypes = {\n compacted: PropTypes.bool,\n icon: PropTypes.bool,\n layout: PropTypes.oneOf(['column', 'expand']),\n metrics: PropTypes.string,\n storage: PropTypes.bool,\n text: PropTypes.string,\n onChange: PropTypes.func,\n onSubmit: PropTypes.func,\n};\n\nexport { Finder };\n"],"mappings":"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"}
@@ -158,7 +158,16 @@ const consolidateStore = async function () {
158
158
  } = config;
159
159
  promo = {
160
160
  ...configPromo,
161
- placeholder
161
+ placeholder,
162
+ variants: Object.fromEntries(occupation.variants.map(function () {
163
+ let {
164
+ id,
165
+ promo: {
166
+ code
167
+ } = {}
168
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
169
+ return [id, code];
170
+ }))
162
171
  };
163
172
  }
164
173
  let place;
@@ -196,7 +205,7 @@ const consolidateStore = async function () {
196
205
  } : undefined)
197
206
  };
198
207
  }))) || undefined,
199
- promocode: clientCode || promoCode || ((_promo = promo) === null || _promo === void 0 ? void 0 : _promo.code) || storageFinder.promocode
208
+ promocode: clientCode || promoCode || !isRates && ((_promo = promo) === null || _promo === void 0 ? void 0 : _promo.code) || storageFinder.promocode
200
209
  };
201
210
 
202
211
  // -- forwarder ------------------------------------------------------------------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"file":"consolidateStore.js","names":["_dataSources","require","_locale","_fetchCurrency","_getAccommodationType","_getClub","_getLocale","_getMetaRates","_getPerformance","_getTags","_prepareRoom","_toOccupation","_Core","_process","_process$env","IS_JEST","process","env","JEST_WORKER_ID","consolidateStore","_config$accomodation","_config$accomodation2","_config$accomodation3","_config$accomodation4","_config$accomodation5","_config$accomodation6","_tags","_storageFinder$occupa","_promo","_config$languages","components","config","cookies","instance","el","hotel","hotelId","id","type","session","urlParams","arguments","length","undefined","miraiId","isRates","some","component","maxDays","maxNights","rangeMaxDays","nightsForDeal","rangeMinDays","prices","showPrices","pricesWithTaxes","pricesLegend","accomodation","calendar","TAXES","includes","TAX_DEFAULT","to","dateFormat","dateCalc","Date","format","CALENDAR_FORMAT","language","country","locale","getLocale","currency","TYPE","HOTEL","fetchCurrency","DEFAULT_CURRENCY","accommodationType","getAccommodationType","lodgingDenomination","features","CHAIN","idtokenprovider","idHotel","url","home","window","location","origin","warningAvailability","minRoomsEngineNotification","hotels","variants","Object","entries","map","_ref","key","occupation","dataSource","ADULT","min","age","CHILD","fulfill","maxRooms","rooms","maxOccupation","commissionCode","hsri","TYPE_COMMISSION","chainSelector","tags","placeHolder","trees","options","getTags","placeholder","storageFinder","Storage","adapter","LocalAdapter","get","concat","FINDER_STORAGE_KEY","chainSelectorValue","checkin","clientCode","nights","parties","promo","promoCode","parseDate","UTC","checkout","parseInt","showPromoNav","configPromo","promoText","place","find","isHotel","value","Number","finder","dateDiff","days","toOccupation","places","prepareRoom","ages","promocode","code","host","document","protocol","isDevelopment","NODE_ENV","IS_PLAYWRIGHT","forwarder","rates","SERVICE_BOOKING","booking","signup","SERVICE_USER","profile","locales","languages","COUNTRIES","club","getClub","reduce","_ref2","props","performance","getPerformance","checkoutForm","JSON","parse","deals","lisa","cart","split","getMetaRates","meta","exports"],"sources":["../../src/helpers/consolidateStore.js"],"sourcesContent":["import { LocalAdapter, Storage } from '@mirai/data-sources';\nimport { COUNTRIES, dateCalc, dateDiff, dateFormat, DEFAULT_CURRENCY, parseDate, UTC } from '@mirai/locale';\n\nimport { fetchCurrency } from './fetchCurrency';\nimport { getAccommodationType } from './getAccommodationType';\nimport { getClub } from './getClub';\nimport { getLocale } from './getLocale';\nimport { getMetaRates } from './getMetaRates';\nimport { getPerformance } from './getPerformance';\nimport { getTags } from './getTags';\nimport { prepareRoom } from './prepareRoom';\nimport { toOccupation } from './toOccupation';\nimport { CALENDAR_FORMAT, FINDER_STORAGE_KEY, TAX_DEFAULT, TAXES, TYPE, TYPE_COMMISSION } from '../Core.constants';\n\nconst IS_JEST = !!process?.env?.JEST_WORKER_ID;\n\n/* eslint-disable no-unused-vars */\nexport const consolidateStore = async ({\n components = [],\n config = {},\n cookies = {},\n instance: { el, hotel: hotelId, id, type, ...instance } = {},\n session,\n urlParams = {},\n} = {}) => {\n const { miraiId } = urlParams;\n const isRates = components.some(({ component } = {}) => component === 'rates');\n\n // -- calendar -------------------------------------------------------------------------------------------------------\n const {\n maxDays = 365,\n maxNights: rangeMaxDays = 31,\n nightsForDeal: rangeMinDays,\n prices: showPrices = false,\n pricesWithTaxes: pricesLegend,\n } = config.accomodation?.calendar || {};\n const calendar = {\n rangeMaxDays,\n rangeMinDays,\n pricesLegend: TAXES.includes(pricesLegend) ? pricesLegend : showPrices ? TAX_DEFAULT : undefined,\n showPrices,\n to: !IS_JEST ? dateFormat(dateCalc(new Date(), maxDays, 'days'), { format: CALENDAR_FORMAT }) : undefined,\n };\n\n // -- language, country & locale -------------------------------------------------------------------------------------\n const { language, country, locale } = getLocale(instance, urlParams);\n\n // -- currency -------------------------------------------------------------------------------------------------------\n const currency =\n urlParams.currency ||\n instance.currency ||\n (type === TYPE.HOTEL && !IS_JEST ? await fetchCurrency(id) : DEFAULT_CURRENCY);\n\n // -- hotel ----------------------------------------------------------------------------------------------------------\n const hotel = {\n accommodationType: getAccommodationType(config.lodgingDenomination, hotelId),\n features: config.accomodation?.features || {},\n id: type === TYPE.CHAIN ? urlParams.idtokenprovider || urlParams.idHotel || hotelId : id,\n url: urlParams.home || window.location.origin,\n warningAvailability: config.minRoomsEngineNotification,\n };\n\n if (type === TYPE.CHAIN) {\n const { hotels = {} } = config;\n hotel.variants = {};\n\n Object.entries(hotels).map(([key, { lodgingDenomination: accommodationType }]) => {\n hotel.variants[key] = { accommodationType };\n });\n }\n\n // -- occupation -----------------------------------------------------------------------------------------------------\n const occupation = {\n dataSource: config.accomodation?.occupation || [\n { type: TYPE.ADULT, min: 1, age: [18] },\n { type: TYPE.CHILD, age: [0, 17], fulfill: true },\n ],\n maxRooms: config.accomodation?.rooms?.maxOccupation,\n variants: config.accomodation?.variants || [],\n };\n\n // -- origin ---------------------------------------------------------------------------------------------------------\n const origin = {\n commissionCode: urlParams.hsri || TYPE_COMMISSION[type],\n };\n\n // -- tags -----------------------------------------------------------------------------------------------------------\n const { chainSelector } = config;\n let tags;\n if (type === TYPE.CHAIN && chainSelector) {\n const { placeHolder = {}, trees = [] } = chainSelector;\n tags = { options: getTags(trees, language), placeholder: placeHolder[language] };\n }\n\n // -- finder ---------------------------------------------------------------------------------------------------------\n const storageFinder = !isRates ? new Storage({ adapter: LocalAdapter }).get(`${FINDER_STORAGE_KEY}:${id}`) || {} : {};\n\n let { chainSelectorValue, checkin, clientCode, nights = isRates ? 1 : 0, parties, promo: promoCode } = urlParams;\n checkin = checkin ? parseDate(checkin) : isRates ? UTC(new Date()) : undefined;\n let checkout;\n\n if (checkin) checkout = dateCalc(checkin, parseInt(nights), 'days');\n\n let promo;\n if (config.showPromoNav) {\n const { accomodation: { promo: configPromo = {} } = {}, promoText: placeholder = {} } = config;\n promo = { ...configPromo, placeholder };\n }\n\n let place;\n if (tags) {\n place = tags.options.find(\n ({ id: [idHotel] = [], isHotel, value } = {}) =>\n (chainSelectorValue && value === Number(chainSelectorValue)) || (isHotel && hotel.id === idHotel),\n );\n\n const { id: [id] = [] } = place || {};\n const { accommodationType } = hotel.variants[id] || {};\n if (accommodationType) hotel.accommodationType = accommodationType;\n }\n\n let finder = {\n place: place || storageFinder.place,\n calendar: checkin\n ? [checkin, checkout]\n : storageFinder.calendar && dateDiff(new Date(), new Date(storageFinder.calendar[0])).days > -1\n ? [new Date(storageFinder.calendar[0]), new Date(storageFinder.calendar[1])]\n : [],\n occupation: parties\n ? toOccupation({ chainSelectorValue, occupation, parties, places: tags?.options })\n : isRates\n ? [prepareRoom(occupation.dataSource)]\n : storageFinder.occupation?.map((rooms) =>\n rooms.map((value = {}) => ({\n ...value,\n ...(value?.ages ? { ages: value.ages.map((age) => (age === null ? undefined : age)) } : undefined),\n })),\n ) || undefined,\n promocode: clientCode || promoCode || promo?.code || storageFinder.promocode,\n };\n\n // -- forwarder ------------------------------------------------------------------------------------------------------\n const host = `${document.location.protocol}//${document.location.host}`;\n const isDevelopment = process.env.NODE_ENV === 'development' || window.IS_PLAYWRIGHT;\n const forwarder = {\n rates: miraiId ? `${host}/step1-rates` : `${process.env.SERVICE_BOOKING}/miraiFrontDispatcher.htm`,\n checkout: miraiId ? `${host}/step2-checkout` : `${process.env.SERVICE_BOOKING}/forwarder_client_form.htm`,\n booking: miraiId ? `${host}/step3-booking` : `${process.env.SERVICE_BOOKING}/forwarder_manage_reservation.htm`,\n signup:\n miraiId || isDevelopment\n ? `${host}/signup`\n : `${process.env.SERVICE_USER}/club/v1/forwarder/registration_process`,\n profile:\n miraiId || isDevelopment ? `${host}/profile` : `${process.env.SERVICE_USER}/club/v1/forwarder/members_area`,\n };\n\n return {\n config,\n cookies,\n urlParams,\n ...instance,\n id,\n type,\n\n // region\n currency,\n language,\n country,\n locale,\n locales: config.languages\n ?.map((language) => (language === 'no' ? 'nb' : language))\n .map((language) => `${language}-${COUNTRIES[language]}`),\n\n // entities,\n calendar,\n club: getClub({ config, language, type, urlParams }),\n components: components.reduce((value, { component, ...props }) => {\n value[component] = props;\n return value;\n }, {}),\n forwarder,\n hotel,\n occupation,\n origin,\n performance: getPerformance(config, hotel.id),\n promo,\n session,\n tags,\n // Disabled variants manager\n // variant:\n // IS_JEST && !window.IS_PLAYWRIGHT\n // ? undefined\n // : urlParams.variant\n // ? urlParams.variant\n // : Math.random() < 0.5\n // ? 'A'\n // : 'B',\n // -- components\n checkout: !IS_JEST && urlParams.checkoutForm ? JSON.parse(urlParams.checkoutForm) : undefined,\n deals: undefined,\n finder,\n lisa: undefined,\n rates: {\n cart: urlParams.cart ? urlParams.cart.split(',') : urlParams.rates ? getMetaRates(urlParams.rates) : undefined,\n meta: !!urlParams.rates,\n },\n rooms: undefined,\n signup: undefined,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"consolidateStore.js","names":["_dataSources","require","_locale","_fetchCurrency","_getAccommodationType","_getClub","_getLocale","_getMetaRates","_getPerformance","_getTags","_prepareRoom","_toOccupation","_Core","_process","_process$env","IS_JEST","process","env","JEST_WORKER_ID","consolidateStore","_config$accomodation","_config$accomodation2","_config$accomodation3","_config$accomodation4","_config$accomodation5","_config$accomodation6","_tags","_storageFinder$occupa","_promo","_config$languages","components","config","cookies","instance","el","hotel","hotelId","id","type","session","urlParams","arguments","length","undefined","miraiId","isRates","some","component","maxDays","maxNights","rangeMaxDays","nightsForDeal","rangeMinDays","prices","showPrices","pricesWithTaxes","pricesLegend","accomodation","calendar","TAXES","includes","TAX_DEFAULT","to","dateFormat","dateCalc","Date","format","CALENDAR_FORMAT","language","country","locale","getLocale","currency","TYPE","HOTEL","fetchCurrency","DEFAULT_CURRENCY","accommodationType","getAccommodationType","lodgingDenomination","features","CHAIN","idtokenprovider","idHotel","url","home","window","location","origin","warningAvailability","minRoomsEngineNotification","hotels","variants","Object","entries","map","_ref","key","occupation","dataSource","ADULT","min","age","CHILD","fulfill","maxRooms","rooms","maxOccupation","commissionCode","hsri","TYPE_COMMISSION","chainSelector","tags","placeHolder","trees","options","getTags","placeholder","storageFinder","Storage","adapter","LocalAdapter","get","concat","FINDER_STORAGE_KEY","chainSelectorValue","checkin","clientCode","nights","parties","promo","promoCode","parseDate","UTC","checkout","parseInt","showPromoNav","configPromo","promoText","fromEntries","code","place","find","isHotel","value","Number","finder","dateDiff","days","toOccupation","places","prepareRoom","ages","promocode","host","document","protocol","isDevelopment","NODE_ENV","IS_PLAYWRIGHT","forwarder","rates","SERVICE_BOOKING","booking","signup","SERVICE_USER","profile","locales","languages","COUNTRIES","club","getClub","reduce","_ref2","props","performance","getPerformance","checkoutForm","JSON","parse","deals","lisa","cart","split","getMetaRates","meta","exports"],"sources":["../../src/helpers/consolidateStore.js"],"sourcesContent":["import { LocalAdapter, Storage } from '@mirai/data-sources';\nimport { COUNTRIES, dateCalc, dateDiff, dateFormat, DEFAULT_CURRENCY, parseDate, UTC } from '@mirai/locale';\n\nimport { fetchCurrency } from './fetchCurrency';\nimport { getAccommodationType } from './getAccommodationType';\nimport { getClub } from './getClub';\nimport { getLocale } from './getLocale';\nimport { getMetaRates } from './getMetaRates';\nimport { getPerformance } from './getPerformance';\nimport { getTags } from './getTags';\nimport { prepareRoom } from './prepareRoom';\nimport { toOccupation } from './toOccupation';\nimport { CALENDAR_FORMAT, FINDER_STORAGE_KEY, TAX_DEFAULT, TAXES, TYPE, TYPE_COMMISSION } from '../Core.constants';\n\nconst IS_JEST = !!process?.env?.JEST_WORKER_ID;\n\n/* eslint-disable no-unused-vars */\nexport const consolidateStore = async ({\n components = [],\n config = {},\n cookies = {},\n instance: { el, hotel: hotelId, id, type, ...instance } = {},\n session,\n urlParams = {},\n} = {}) => {\n const { miraiId } = urlParams;\n const isRates = components.some(({ component } = {}) => component === 'rates');\n\n // -- calendar -------------------------------------------------------------------------------------------------------\n const {\n maxDays = 365,\n maxNights: rangeMaxDays = 31,\n nightsForDeal: rangeMinDays,\n prices: showPrices = false,\n pricesWithTaxes: pricesLegend,\n } = config.accomodation?.calendar || {};\n const calendar = {\n rangeMaxDays,\n rangeMinDays,\n pricesLegend: TAXES.includes(pricesLegend) ? pricesLegend : showPrices ? TAX_DEFAULT : undefined,\n showPrices,\n to: !IS_JEST ? dateFormat(dateCalc(new Date(), maxDays, 'days'), { format: CALENDAR_FORMAT }) : undefined,\n };\n\n // -- language, country & locale -------------------------------------------------------------------------------------\n const { language, country, locale } = getLocale(instance, urlParams);\n\n // -- currency -------------------------------------------------------------------------------------------------------\n const currency =\n urlParams.currency ||\n instance.currency ||\n (type === TYPE.HOTEL && !IS_JEST ? await fetchCurrency(id) : DEFAULT_CURRENCY);\n\n // -- hotel ----------------------------------------------------------------------------------------------------------\n const hotel = {\n accommodationType: getAccommodationType(config.lodgingDenomination, hotelId),\n features: config.accomodation?.features || {},\n id: type === TYPE.CHAIN ? urlParams.idtokenprovider || urlParams.idHotel || hotelId : id,\n url: urlParams.home || window.location.origin,\n warningAvailability: config.minRoomsEngineNotification,\n };\n\n if (type === TYPE.CHAIN) {\n const { hotels = {} } = config;\n hotel.variants = {};\n\n Object.entries(hotels).map(([key, { lodgingDenomination: accommodationType }]) => {\n hotel.variants[key] = { accommodationType };\n });\n }\n\n // -- occupation -----------------------------------------------------------------------------------------------------\n const occupation = {\n dataSource: config.accomodation?.occupation || [\n { type: TYPE.ADULT, min: 1, age: [18] },\n { type: TYPE.CHILD, age: [0, 17], fulfill: true },\n ],\n maxRooms: config.accomodation?.rooms?.maxOccupation,\n variants: config.accomodation?.variants || [],\n };\n\n // -- origin ---------------------------------------------------------------------------------------------------------\n const origin = {\n commissionCode: urlParams.hsri || TYPE_COMMISSION[type],\n };\n\n // -- tags -----------------------------------------------------------------------------------------------------------\n const { chainSelector } = config;\n let tags;\n if (type === TYPE.CHAIN && chainSelector) {\n const { placeHolder = {}, trees = [] } = chainSelector;\n tags = { options: getTags(trees, language), placeholder: placeHolder[language] };\n }\n\n // -- finder ---------------------------------------------------------------------------------------------------------\n const storageFinder = !isRates ? new Storage({ adapter: LocalAdapter }).get(`${FINDER_STORAGE_KEY}:${id}`) || {} : {};\n\n let { chainSelectorValue, checkin, clientCode, nights = isRates ? 1 : 0, parties, promo: promoCode } = urlParams;\n checkin = checkin ? parseDate(checkin) : isRates ? UTC(new Date()) : undefined;\n let checkout;\n\n if (checkin) checkout = dateCalc(checkin, parseInt(nights), 'days');\n\n let promo;\n if (config.showPromoNav) {\n const { accomodation: { promo: configPromo = {} } = {}, promoText: placeholder = {} } = config;\n promo = {\n ...configPromo,\n placeholder,\n variants: Object.fromEntries(occupation.variants.map(({ id, promo: { code } = {} } = {}) => [id, code])),\n };\n }\n\n let place;\n if (tags) {\n place = tags.options.find(\n ({ id: [idHotel] = [], isHotel, value } = {}) =>\n (chainSelectorValue && value === Number(chainSelectorValue)) || (isHotel && hotel.id === idHotel),\n );\n\n const { id: [id] = [] } = place || {};\n const { accommodationType } = hotel.variants[id] || {};\n if (accommodationType) hotel.accommodationType = accommodationType;\n }\n\n let finder = {\n place: place || storageFinder.place,\n calendar: checkin\n ? [checkin, checkout]\n : storageFinder.calendar && dateDiff(new Date(), new Date(storageFinder.calendar[0])).days > -1\n ? [new Date(storageFinder.calendar[0]), new Date(storageFinder.calendar[1])]\n : [],\n occupation: parties\n ? toOccupation({ chainSelectorValue, occupation, parties, places: tags?.options })\n : isRates\n ? [prepareRoom(occupation.dataSource)]\n : storageFinder.occupation?.map((rooms) =>\n rooms.map((value = {}) => ({\n ...value,\n ...(value?.ages ? { ages: value.ages.map((age) => (age === null ? undefined : age)) } : undefined),\n })),\n ) || undefined,\n promocode: clientCode || promoCode || (!isRates && promo?.code) || storageFinder.promocode,\n };\n\n // -- forwarder ------------------------------------------------------------------------------------------------------\n const host = `${document.location.protocol}//${document.location.host}`;\n const isDevelopment = process.env.NODE_ENV === 'development' || window.IS_PLAYWRIGHT;\n const forwarder = {\n rates: miraiId ? `${host}/step1-rates` : `${process.env.SERVICE_BOOKING}/miraiFrontDispatcher.htm`,\n checkout: miraiId ? `${host}/step2-checkout` : `${process.env.SERVICE_BOOKING}/forwarder_client_form.htm`,\n booking: miraiId ? `${host}/step3-booking` : `${process.env.SERVICE_BOOKING}/forwarder_manage_reservation.htm`,\n signup:\n miraiId || isDevelopment\n ? `${host}/signup`\n : `${process.env.SERVICE_USER}/club/v1/forwarder/registration_process`,\n profile:\n miraiId || isDevelopment ? `${host}/profile` : `${process.env.SERVICE_USER}/club/v1/forwarder/members_area`,\n };\n\n return {\n config,\n cookies,\n urlParams,\n ...instance,\n id,\n type,\n\n // region\n currency,\n language,\n country,\n locale,\n locales: config.languages\n ?.map((language) => (language === 'no' ? 'nb' : language))\n .map((language) => `${language}-${COUNTRIES[language]}`),\n\n // entities,\n calendar,\n club: getClub({ config, language, type, urlParams }),\n components: components.reduce((value, { component, ...props }) => {\n value[component] = props;\n return value;\n }, {}),\n forwarder,\n hotel,\n occupation,\n origin,\n performance: getPerformance(config, hotel.id),\n promo,\n session,\n tags,\n // Disabled variants manager\n // variant:\n // IS_JEST && !window.IS_PLAYWRIGHT\n // ? undefined\n // : urlParams.variant\n // ? urlParams.variant\n // : Math.random() < 0.5\n // ? 'A'\n // : 'B',\n // -- components\n checkout: !IS_JEST && urlParams.checkoutForm ? JSON.parse(urlParams.checkoutForm) : undefined,\n deals: undefined,\n finder,\n lisa: undefined,\n rates: {\n cart: urlParams.cart ? urlParams.cart.split(',') : urlParams.rates ? getMetaRates(urlParams.rates) : undefined,\n meta: !!urlParams.rates,\n },\n rooms: undefined,\n signup: undefined,\n };\n};\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mirai/core",
3
- "version": "0.4.258",
3
+ "version": "0.4.259",
4
4
  "source": "src/index.js",
5
5
  "repository": "https://gitlab.com/miraicorp/dev/frontend/core",
6
6
  "author": "JΛVI <hello@soyjavi.com>",