@mirai/core 0.3.140 → 0.3.141

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/build/Core.constants.js +5 -1
  2. package/build/Core.constants.js.map +1 -1
  3. package/build/components/Finder/Finder.js +4 -0
  4. package/build/components/Finder/Finder.js.map +1 -1
  5. package/build/components/Finder/components/Calendar/Calendar.js +26 -2
  6. package/build/components/Finder/components/Calendar/Calendar.js.map +1 -1
  7. package/build/components/Finder/components/Calendar/Calendar.l10n.js +6 -1
  8. package/build/components/Finder/components/Calendar/Calendar.l10n.js.map +1 -1
  9. package/build/components/Finder/components/Calendar/helpers/calcMinStay.js +34 -0
  10. package/build/components/Finder/components/Calendar/helpers/calcMinStay.js.map +1 -0
  11. package/build/components/Finder/components/Calendar/helpers/calcTooltips.js +33 -0
  12. package/build/components/Finder/components/Calendar/helpers/calcTooltips.js.map +1 -0
  13. package/build/components/Finder/components/Calendar/helpers/index.js +22 -0
  14. package/build/components/Finder/components/Calendar/helpers/index.js.map +1 -1
  15. package/build/components/Rates/Rates.Unavailability.js +19 -9
  16. package/build/components/Rates/Rates.Unavailability.js.map +1 -1
  17. package/build/components/Rates/Rates.js +4 -0
  18. package/build/components/Rates/Rates.js.map +1 -1
  19. package/build/services/Rates/helpers/compareSuggestions.js +40 -0
  20. package/build/services/Rates/helpers/compareSuggestions.js.map +1 -0
  21. package/build/services/Rates/helpers/getCalendarSuggestions.js +60 -0
  22. package/build/services/Rates/helpers/getCalendarSuggestions.js.map +1 -0
  23. package/build/services/Rates/helpers/getDisabledDates.js +35 -0
  24. package/build/services/Rates/helpers/getDisabledDates.js.map +1 -0
  25. package/build/services/Rates/helpers/getMinStayDates.js +36 -0
  26. package/build/services/Rates/helpers/getMinStayDates.js.map +1 -0
  27. package/build/services/Rates/helpers/getOccupationSuggestions.js +22 -47
  28. package/build/services/Rates/helpers/getOccupationSuggestions.js.map +1 -1
  29. package/build/services/Rates/helpers/getRooms.js +55 -0
  30. package/build/services/Rates/helpers/getRooms.js.map +1 -0
  31. package/build/services/Rates/helpers/parseUnavailability.js +31 -2
  32. package/build/services/Rates/helpers/parseUnavailability.js.map +1 -1
  33. package/build/services/Rates/rates.js +2 -0
  34. package/build/services/Rates/rates.js.map +1 -1
  35. package/package.json +1 -1
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.TYPE = exports.TAX_DEFAULT = exports.TAXES_TYPE = exports.TAXES = exports.COMMISSION_TYPE = exports.CALENDAR_FORMAT = exports.AUTH_TYPE = exports.ACCOMMODATION_TYPE = void 0;
6
+ exports.TYPE = exports.TAX_DEFAULT = exports.TAXES_TYPE = exports.TAXES = exports.MIN_STAY_TYPE = exports.COMMISSION_TYPE = exports.CALENDAR_FORMAT = exports.AUTH_TYPE = exports.ACCOMMODATION_TYPE = void 0;
7
7
  const ACCOMMODATION_TYPE = exports.ACCOMMODATION_TYPE = {
8
8
  DEFAULT: 0,
9
9
  ROOM: 1,
@@ -34,6 +34,10 @@ const COMMISSION_TYPE = exports.COMMISSION_TYPE = {
34
34
  [TYPE.HOTEL]: '02040',
35
35
  [TYPE.CHAIN]: '02080'
36
36
  };
37
+ const MIN_STAY_TYPE = exports.MIN_STAY_TYPE = {
38
+ CHECK_IN: 0,
39
+ STAY: 1
40
+ };
37
41
  const TAX_DEFAULT = exports.TAX_DEFAULT = 1;
38
42
  const TAX_FREE = 2;
39
43
  const TAX_PARTIAL = 3;
@@ -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","TYPE","CHAIN","HOTEL","GUEST","ADULT","CHILD","COMMISSION_TYPE","TAX_DEFAULT","TAX_FREE","TAX_PARTIAL","TAXES","TAXES_TYPE","ALL_EXCLUDED","ALL_INCLUDED","FEES_INCLUDED","TAXES_INCLUDED"],"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 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 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: 0,\n ALL_INCLUDED: 1,\n FEES_INCLUDED: 2,\n TAXES_INCLUDED: 3,\n};\n\nexport { ACCOMMODATION_TYPE, AUTH_TYPE, CALENDAR_FORMAT, COMMISSION_TYPE, TAX_DEFAULT, TAXES, TAXES_TYPE, TYPE };\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,IAAI,GAAAX,OAAA,CAAAW,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,GAAAjB,OAAA,CAAAiB,eAAA,GAAG;EACtB,CAACN,IAAI,CAACE,KAAK,GAAG,OAAO;EACrB,CAACF,IAAI,CAACC,KAAK,GAAG;AAChB,CAAC;AAED,MAAMM,WAAW,GAAAlB,OAAA,CAAAkB,WAAA,GAAG,CAAC;AACrB,MAAMC,QAAQ,GAAG,CAAC;AAClB,MAAMC,WAAW,GAAG,CAAC;AAErB,MAAMC,KAAK,GAAArB,OAAA,CAAAqB,KAAA,GAAG,CAACH,WAAW,EAAEC,QAAQ,EAAEC,WAAW,CAAC;AAElD,MAAME,UAAU,GAAAtB,OAAA,CAAAsB,UAAA,GAAG;EACjBC,YAAY,EAAE,CAAC;EACfC,YAAY,EAAE,CAAC;EACfC,aAAa,EAAE,CAAC;EAChBC,cAAc,EAAE;AAClB,CAAC"}
1
+ {"version":3,"file":"Core.constants.js","names":["ACCOMMODATION_TYPE","exports","DEFAULT","ROOM","APARTMENT","PITCH","ACCOMMODATION","VILLA","AUTH_TYPE","MIRAI","PESTANA","CALENDAR_FORMAT","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","TAXES_INCLUDED"],"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 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: 0,\n ALL_INCLUDED: 1,\n FEES_INCLUDED: 2,\n TAXES_INCLUDED: 3,\n};\n\nexport {\n ACCOMMODATION_TYPE,\n AUTH_TYPE,\n CALENDAR_FORMAT,\n COMMISSION_TYPE,\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,IAAI,GAAAX,OAAA,CAAAW,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,GAAAjB,OAAA,CAAAiB,eAAA,GAAG;EACtB,CAACN,IAAI,CAACE,KAAK,GAAG,OAAO;EACrB,CAACF,IAAI,CAACC,KAAK,GAAG;AAChB,CAAC;AAED,MAAMM,aAAa,GAAAlB,OAAA,CAAAkB,aAAA,GAAG;EAAEC,QAAQ,EAAE,CAAC;EAAEC,IAAI,EAAE;AAAE,CAAC;AAE9C,MAAMC,WAAW,GAAArB,OAAA,CAAAqB,WAAA,GAAG,CAAC;AACrB,MAAMC,QAAQ,GAAG,CAAC;AAClB,MAAMC,WAAW,GAAG,CAAC;AAErB,MAAMC,KAAK,GAAAxB,OAAA,CAAAwB,KAAA,GAAG,CAACH,WAAW,EAAEC,QAAQ,EAAEC,WAAW,CAAC;AAElD,MAAME,UAAU,GAAAzB,OAAA,CAAAyB,UAAA,GAAG;EACjBC,YAAY,EAAE,CAAC;EACfC,YAAY,EAAE,CAAC;EACfC,aAAa,EAAE,CAAC;EAChBC,cAAc,EAAE;AAClB,CAAC"}
@@ -59,6 +59,7 @@ const Finder = _ref => {
59
59
  } = (0, _dataSources.useStore)();
60
60
  const [error, setError] = (0, _react.useState)({});
61
61
  const [focus, setFocus] = (0, _react.useState)();
62
+ const [unavailability, setUnavailability] = (0, _react.useState)();
62
63
  const [value, setValue] = (0, _react.useState)((0, _helpers.parseValue)(storeFinder));
63
64
  const [visited, setVisited] = (0, _react.useState)({});
64
65
  (0, _react.useEffect)(() => {
@@ -83,8 +84,10 @@ const Finder = _ref => {
83
84
  (0, _react.useEffect)(() => {
84
85
  const callback = function () {
85
86
  let {
87
+ calendar,
86
88
  focus
87
89
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
90
+ setUnavailability(calendar);
88
91
  if (focus) setFocus(focus);
89
92
  };
90
93
  _dataSources.Event.subscribe(_helpers3.EVENT.FINDER, callback);
@@ -222,6 +225,7 @@ const Finder = _ref => {
222
225
  currency: currency,
223
226
  locale: locale,
224
227
  text: compacted ? text : undefined,
228
+ unavailability: unavailability,
225
229
  value: calendar,
226
230
  onChange: (calendar, event) => {
227
231
  handleChange(_Finder2.VIEW.CALENDAR, calendar, event);
@@ -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","setValue","parseValue","visited","setVisited","useEffect","occupation","prepareRoom","DATASOURCE","handleClickOutside","_ref$current","undefined","current","contains","document","addEventListener","removeEventListener","callback","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","calendar","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 [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 = ({ focus } = {}) => {\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 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, 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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"}
@@ -31,6 +31,11 @@ const Calendar = _ref => {
31
31
  rangeMinDays,
32
32
  showPrices,
33
33
  text,
34
+ unavailability: {
35
+ disabledDates = [],
36
+ minStayDates = {},
37
+ minStayType
38
+ } = {},
34
39
  onChange,
35
40
  onError,
36
41
  onSubmit,
@@ -61,6 +66,10 @@ const Calendar = _ref => {
61
66
  if (onValid && from && to) onValid();else if (onError && (!from || !to)) onError(_Calendar.ERROR.NOT_FILLED);
62
67
  // eslint-disable-next-line react-hooks/exhaustive-deps
63
68
  }, [value]);
69
+ (0, _react.useEffect)(() => {
70
+ JSON.stringify(value) !== JSON.stringify((0, _helpers.valueFormat)(others.value)) && setValue((0, _helpers.valueFormat)(others.value));
71
+ // eslint-disable-next-line react-hooks/exhaustive-deps
72
+ }, [others.value]);
64
73
  const getPrices = async function (from) {
65
74
  let rangeMonths = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;
66
75
  if (_helpers2.IS_JEST || !from) return;
@@ -104,14 +113,20 @@ const Calendar = _ref => {
104
113
  const {
105
114
  testId
106
115
  } = others;
116
+ const [from, to] = (0, _helpers.parseValue)(value);
107
117
  const props = {
108
118
  ...others,
109
119
  locale,
110
120
  range: true,
111
121
  rangeMaxDays,
112
- rangeMinDays
122
+ rangeMinDays: (0, _helpers.calcMinStay)({
123
+ from,
124
+ minStayDates,
125
+ minStayType,
126
+ rangeMinDays,
127
+ to
128
+ })
113
129
  };
114
- const [from, to] = (0, _helpers.parseValue)(value);
115
130
  const {
116
131
  config: {
117
132
  hotels: dataSource,
@@ -134,9 +149,17 @@ const Calendar = _ref => {
134
149
  role: "calendar"
135
150
  }, /*#__PURE__*/_react.default.createElement(_ui.Calendar, _extends({}, props, {
136
151
  captions: prices === null || prices === void 0 ? void 0 : prices.values,
152
+ disabledDates: disabledDates,
137
153
  format: _helpers2.CALENDAR_FORMAT,
138
154
  months: isMobile ? _helpers2.MONTHS_IN_MOBILE : undefined,
139
155
  scrollEventThrottle: _Calendar.SCROLL_EVENT_MS,
156
+ tooltips: (0, _helpers.calcTooltips)({
157
+ from,
158
+ minStayType,
159
+ rangeMinDays: props.rangeMinDays,
160
+ to,
161
+ translate
162
+ }),
140
163
  value: value,
141
164
  onChange: handleChange,
142
165
  onFocus: setFocus,
@@ -180,6 +203,7 @@ Calendar.propTypes = {
180
203
  showPrices: _propTypes.default.bool,
181
204
  pricesLegend: _propTypes.default.oneOf([_Calendar.TAX, _Calendar.TAX_FREE, _Calendar.TAX_PARTIAL]),
182
205
  text: _propTypes.default.string,
206
+ unavailability: _propTypes.default.shape({}),
183
207
  value: _propTypes.default.arrayOf(_propTypes.default.instanceOf(Date)),
184
208
  onChange: _propTypes.default.func,
185
209
  onError: _propTypes.default.func,
@@ -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","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","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","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","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 { 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 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 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 props = { ...others, locale, range: true, rangeMaxDays, rangeMinDays };\n const [from, to] = parseValue(value);\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 format={CALENDAR_FORMAT}\n months={isMobile ? MONTHS_IN_MOBILE : undefined}\n scrollEventThrottle={SCROLL_EVENT_MS}\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 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","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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"}
@@ -4,6 +4,10 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.L10N = void 0;
7
+ var _BookingDates = require("../../../__shared__/BookingDates/BookingDates.l10n");
8
+ const {
9
+ LABEL_MIN_NIGHTS
10
+ } = _BookingDates.L10N;
7
11
  const L10N = exports.L10N = {
8
12
  ACTION_NEXT: {
9
13
  id: 'finder.action.next'
@@ -13,6 +17,7 @@ const L10N = exports.L10N = {
13
17
  },
14
18
  LABEL_INFO_PRICES: {
15
19
  id: 'finder.label.info_prices'
16
- }
20
+ },
21
+ LABEL_MIN_NIGHTS
17
22
  };
18
23
  //# sourceMappingURL=Calendar.l10n.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Calendar.l10n.js","names":["L10N","exports","ACTION_NEXT","id","LABEL_ACCOMMODATION_TYPE","LABEL_INFO_PRICES"],"sources":["../../../../../src/components/Finder/components/Calendar/Calendar.l10n.js"],"sourcesContent":["export const L10N = {\n ACTION_NEXT: { id: 'finder.action.next' },\n\n LABEL_ACCOMMODATION_TYPE: { id: 'common.label.accommodation_type' },\n LABEL_INFO_PRICES: { id: 'finder.label.info_prices' },\n};\n"],"mappings":";;;;;;AAAO,MAAMA,IAAI,GAAAC,OAAA,CAAAD,IAAA,GAAG;EAClBE,WAAW,EAAE;IAAEC,EAAE,EAAE;EAAqB,CAAC;EAEzCC,wBAAwB,EAAE;IAAED,EAAE,EAAE;EAAkC,CAAC;EACnEE,iBAAiB,EAAE;IAAEF,EAAE,EAAE;EAA2B;AACtD,CAAC"}
1
+ {"version":3,"file":"Calendar.l10n.js","names":["_BookingDates","require","LABEL_MIN_NIGHTS","L10N_BOOKING_DATES","L10N","exports","ACTION_NEXT","id","LABEL_ACCOMMODATION_TYPE","LABEL_INFO_PRICES"],"sources":["../../../../../src/components/Finder/components/Calendar/Calendar.l10n.js"],"sourcesContent":["import { L10N as L10N_BOOKING_DATES } from '../../../__shared__/BookingDates/BookingDates.l10n';\n\nconst { LABEL_MIN_NIGHTS } = L10N_BOOKING_DATES;\n\nexport const L10N = {\n ACTION_NEXT: { id: 'finder.action.next' },\n\n LABEL_ACCOMMODATION_TYPE: { id: 'common.label.accommodation_type' },\n LABEL_INFO_PRICES: { id: 'finder.label.info_prices' },\n LABEL_MIN_NIGHTS,\n};\n"],"mappings":";;;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA;AAEA,MAAM;EAAEC;AAAiB,CAAC,GAAGC,kBAAkB;AAExC,MAAMC,IAAI,GAAAC,OAAA,CAAAD,IAAA,GAAG;EAClBE,WAAW,EAAE;IAAEC,EAAE,EAAE;EAAqB,CAAC;EAEzCC,wBAAwB,EAAE;IAAED,EAAE,EAAE;EAAkC,CAAC;EACnEE,iBAAiB,EAAE;IAAEF,EAAE,EAAE;EAA2B,CAAC;EACrDL;AACF,CAAC"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.calcMinStay = void 0;
7
+ var _locale = require("@mirai/locale");
8
+ var _Core = require("../../../../../Core.constants");
9
+ var _helpers = require("../../../../helpers");
10
+ const MAX_DAYS = 30;
11
+ const calcMinStay = function () {
12
+ let {
13
+ from,
14
+ to,
15
+ minStayDates,
16
+ minStayType,
17
+ rangeMinDays
18
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
19
+ if (to || !from || minStayType === undefined || !minStayDates) return rangeMinDays;
20
+ let value = minStayDates[(0, _locale.dateFormat)(from, {
21
+ format: _helpers.CALENDAR_FORMAT
22
+ })];
23
+ if (minStayType === _Core.MIN_STAY_TYPE.CHECK_IN || value === 1) return value;
24
+ for (let index = 0; index < value; index++) {
25
+ const current = minStayDates[(0, _locale.dateFormat)((0, _locale.dateCalc)(from, index) || from, {
26
+ format: _helpers.CALENDAR_FORMAT
27
+ })];
28
+ if (current > value) value = current;
29
+ if (index === MAX_DAYS) break;
30
+ }
31
+ return value;
32
+ };
33
+ exports.calcMinStay = calcMinStay;
34
+ //# sourceMappingURL=calcMinStay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calcMinStay.js","names":["_locale","require","_Core","_helpers","MAX_DAYS","calcMinStay","from","to","minStayDates","minStayType","rangeMinDays","arguments","length","undefined","value","dateFormat","format","MIN_STAY_TYPE","CHECK_IN","index","current","dateCalc","exports"],"sources":["../../../../../../src/components/Finder/components/Calendar/helpers/calcMinStay.js"],"sourcesContent":["import { dateCalc, dateFormat } from '@mirai/locale';\n\nimport { MIN_STAY_TYPE } from '../../../../../Core.constants';\nimport { CALENDAR_FORMAT as format } from '../../../../helpers';\n\nconst MAX_DAYS = 30;\n\nexport const calcMinStay = ({ from, to, minStayDates, minStayType, rangeMinDays } = {}) => {\n if (to || !from || minStayType === undefined || !minStayDates) return rangeMinDays;\n\n let value = minStayDates[dateFormat(from, { format })];\n if (minStayType === MIN_STAY_TYPE.CHECK_IN || value === 1) return value;\n\n for (let index = 0; index < value; index++) {\n const current = minStayDates[dateFormat(dateCalc(from, index) || from, { format })];\n if (current > value) value = current;\n\n if (index === MAX_DAYS) break;\n }\n return value;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAEA,MAAMG,QAAQ,GAAG,EAAE;AAEZ,MAAMC,WAAW,GAAG,SAAAA,CAAA,EAAgE;EAAA,IAA/D;IAAEC,IAAI;IAAEC,EAAE;IAAEC,YAAY;IAAEC,WAAW;IAAEC;EAAa,CAAC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACpF,IAAIJ,EAAE,IAAI,CAACD,IAAI,IAAIG,WAAW,KAAKI,SAAS,IAAI,CAACL,YAAY,EAAE,OAAOE,YAAY;EAElF,IAAII,KAAK,GAAGN,YAAY,CAAC,IAAAO,kBAAU,EAACT,IAAI,EAAE;IAAEU,MAAM,EAANA;EAAO,CAAC,CAAC,CAAC;EACtD,IAAIP,WAAW,KAAKQ,mBAAa,CAACC,QAAQ,IAAIJ,KAAK,KAAK,CAAC,EAAE,OAAOA,KAAK;EAEvE,KAAK,IAAIK,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGL,KAAK,EAAEK,KAAK,EAAE,EAAE;IAC1C,MAAMC,OAAO,GAAGZ,YAAY,CAAC,IAAAO,kBAAU,EAAC,IAAAM,gBAAQ,EAACf,IAAI,EAAEa,KAAK,CAAC,IAAIb,IAAI,EAAE;MAAEU,MAAM,EAANA;IAAO,CAAC,CAAC,CAAC;IACnF,IAAII,OAAO,GAAGN,KAAK,EAAEA,KAAK,GAAGM,OAAO;IAEpC,IAAID,KAAK,KAAKf,QAAQ,EAAE;EAC1B;EACA,OAAOU,KAAK;AACd,CAAC;AAACQ,OAAA,CAAAjB,WAAA,GAAAA,WAAA"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.calcTooltips = void 0;
7
+ var _locale = require("@mirai/locale");
8
+ var _helpers = require("../../../../helpers");
9
+ var _Calendar = require("../Calendar.l10n");
10
+ const calcTooltips = function () {
11
+ let {
12
+ from,
13
+ to,
14
+ minStayType,
15
+ rangeMinDays,
16
+ translate = _locale.translate
17
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
18
+ if (!(0, _locale.isDate)(from) || to && !(0, _locale.isDate)(to)) return;
19
+ const value = {};
20
+ if (minStayType !== undefined && from && !to && rangeMinDays > 1) {
21
+ value[(0, _locale.dateFormat)(from, {
22
+ format: _helpers.CALENDAR_FORMAT
23
+ })] = {
24
+ text: translate(_Calendar.L10N.LABEL_MIN_NIGHTS, {
25
+ value: rangeMinDays
26
+ }),
27
+ pressable: false
28
+ };
29
+ }
30
+ return value;
31
+ };
32
+ exports.calcTooltips = calcTooltips;
33
+ //# sourceMappingURL=calcTooltips.js.map
@@ -0,0 +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"}
@@ -3,6 +3,28 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ var _calcMinStay = require("./calcMinStay");
7
+ Object.keys(_calcMinStay).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _calcMinStay[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _calcMinStay[key];
14
+ }
15
+ });
16
+ });
17
+ var _calcTooltips = require("./calcTooltips");
18
+ Object.keys(_calcTooltips).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _calcTooltips[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function () {
24
+ return _calcTooltips[key];
25
+ }
26
+ });
27
+ });
6
28
  var _fetchPrices = require("./fetchPrices");
7
29
  Object.keys(_fetchPrices).forEach(function (key) {
8
30
  if (key === "default" || key === "__esModule") return;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_fetchPrices","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_getVisibleDate","_parseValue","_valueFormat"],"sources":["../../../../../../src/components/Finder/components/Calendar/helpers/index.js"],"sourcesContent":["export * from './fetchPrices';\nexport * from './getVisibleDate';\nexport * from './parseValue';\nexport * from './valueFormat';\n"],"mappings":";;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,YAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,YAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,YAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,eAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,eAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,eAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,eAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,WAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,WAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,WAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,WAAA,CAAAN,GAAA;IAAA;EAAA;AAAA;AACA,IAAAO,YAAA,GAAAX,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAS,YAAA,EAAAR,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAO,YAAA,CAAAP,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAG,YAAA,CAAAP,GAAA;IAAA;EAAA;AAAA"}
1
+ {"version":3,"file":"index.js","names":["_calcMinStay","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_calcTooltips","_fetchPrices","_getVisibleDate","_parseValue","_valueFormat"],"sources":["../../../../../../src/components/Finder/components/Calendar/helpers/index.js"],"sourcesContent":["export * from './calcMinStay';\nexport * from './calcTooltips';\nexport * from './fetchPrices';\nexport * from './getVisibleDate';\nexport * from './parseValue';\nexport * from './valueFormat';\n"],"mappings":";;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,YAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,YAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,YAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,aAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,aAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,aAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,aAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,YAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,YAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,YAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,YAAA,CAAAN,GAAA;IAAA;EAAA;AAAA;AACA,IAAAO,eAAA,GAAAX,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAS,eAAA,EAAAR,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAO,eAAA,CAAAP,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAG,eAAA,CAAAP,GAAA;IAAA;EAAA;AAAA;AACA,IAAAQ,WAAA,GAAAZ,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAU,WAAA,EAAAT,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAQ,WAAA,CAAAR,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAI,WAAA,CAAAR,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,YAAA,GAAAb,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAW,YAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAS,YAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAK,YAAA,CAAAT,GAAA;IAAA;EAAA;AAAA"}
@@ -8,7 +8,7 @@ var _dataSources = require("@mirai/data-sources");
8
8
  var _locale = require("@mirai/locale");
9
9
  var _ui = require("@mirai/ui");
10
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
- var _react = _interopRequireDefault(require("react"));
11
+ var _react = _interopRequireWildcard(require("react"));
12
12
  var _components = require("./components");
13
13
  var _helpers = require("./helpers");
14
14
  var _Rates = require("./Rates.constants");
@@ -21,10 +21,11 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
21
21
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
22
22
  const Unavailability = _ref => {
23
23
  let {
24
- calendar = false,
24
+ calendar = {},
25
25
  hotels = [],
26
26
  suggestions: {
27
27
  calendar: calendarSuggestions = [],
28
+ description,
28
29
  occupation: occupationSuggestions = []
29
30
  } = {},
30
31
  taxesType
@@ -41,6 +42,12 @@ const Unavailability = _ref => {
41
42
  set,
42
43
  value: store
43
44
  } = (0, _dataSources.useStore)();
45
+ (0, _react.useEffect)(() => {
46
+ _dataSources.Event.publish(_helpers2.EVENT.FINDER, {
47
+ calendar
48
+ });
49
+ // eslint-disable-next-line react-hooks/exhaustive-deps
50
+ }, []);
44
51
  const {
45
52
  club = {},
46
53
  currency,
@@ -67,8 +74,11 @@ const Unavailability = _ref => {
67
74
  });
68
75
  };
69
76
  const handleFinder = () => {
70
- _dataSources.Event.publish(_helpers2.EVENT.FINDER, {
71
- focus: calendar ? 'calendar' : 'occupation'
77
+ _dataSources.Event.publish(_helpers2.EVENT.FINDER, isCalendar ? {
78
+ calendar,
79
+ focus: 'calendar'
80
+ } : {
81
+ focus: 'occupation'
72
82
  });
73
83
  };
74
84
  const renderPrice = function () {
@@ -109,20 +119,21 @@ const Unavailability = _ref => {
109
119
  type: accommodationType
110
120
  }, translate);
111
121
  const hasSuggestions = calendarSuggestions.length > 0 || occupationSuggestions.length > 0;
122
+ const isCalendar = calendarSuggestions.length > 0;
112
123
  return /*#__PURE__*/_react.default.createElement(_ui.View, {
113
124
  className: style.unavailability
114
125
  }, /*#__PURE__*/_react.default.createElement(_ui.View, {
115
126
  row: !isMobile,
116
127
  className: style.banner
117
128
  }, /*#__PURE__*/_react.default.createElement(_ui.Icon, {
118
- value: calendar ? _helpers2.ICON.CALENDAR_BUSY : _helpers2.ICON.PERSON_OFF
129
+ value: isCalendar ? _helpers2.ICON.CALENDAR_BUSY : _helpers2.ICON.PERSON_OFF
119
130
  }), /*#__PURE__*/_react.default.createElement(_ui.View, {
120
131
  wide: true,
121
132
  className: style.texts
122
133
  }, /*#__PURE__*/_react.default.createElement(_ui.Text, {
123
134
  headline: true,
124
135
  level: isMobile ? 3 : 2
125
- }, translate(calendar ? _Rates2.L10N.LABEL_NO_AVAILABILITY_CALENDAR : _Rates2.L10N.LABEL_NO_AVAILABILITY_OCCUPATION)), /*#__PURE__*/_react.default.createElement(_ui.Text, {
136
+ }, isCalendar ? description || translate(_Rates2.L10N.LABEL_NO_AVAILABILITY_CALENDAR) : translate(_Rates2.L10N.LABEL_NO_AVAILABILITY_OCCUPATION)), /*#__PURE__*/_react.default.createElement(_ui.Text, {
126
137
  small: isMobile
127
138
  }, translate(hotels.length ? _Rates2.L10N.LABEL_REFINE_SEARCH_CLUB : _Rates2.L10N.LABEL_REFINE_SEARCH, {
128
139
  club: club.name
@@ -132,7 +143,7 @@ const Unavailability = _ref => {
132
143
  }, translate(_Rates2.L10N.ACTION_REFINE_SEARCH))), hasSuggestions && /*#__PURE__*/_react.default.createElement(_ui.Text, {
133
144
  bold: true,
134
145
  headline: true
135
- }, translate(_Rates2.L10N.LABEL_AVAILABLE_ALTERNATIVES)), calendarSuggestions.length > 0 && /*#__PURE__*/_react.default.createElement(_ui.View, {
146
+ }, translate(_Rates2.L10N.LABEL_AVAILABLE_ALTERNATIVES)), isCalendar && /*#__PURE__*/_react.default.createElement(_ui.View, {
136
147
  row: !isMobile,
137
148
  className: style.items
138
149
  }, calendarSuggestions.map(function () {
@@ -230,8 +241,7 @@ const Unavailability = _ref => {
230
241
  exports.Unavailability = Unavailability;
231
242
  Unavailability.displayName = 'Mirai:Core:Rates:Unavailability';
232
243
  Unavailability.propTypes = {
233
- calendar: _propTypes.default.bool,
234
- occupation: _propTypes.default.bool,
244
+ calendar: _propTypes.default.shape({}),
235
245
  hotels: _propTypes.default.arrayOf(_propTypes.default.shape({})),
236
246
  suggestions: _propTypes.default.shape({
237
247
  calendar: _propTypes.default.arrayOf(_propTypes.default.shape({})),