@mirai/core 0.3.207 → 0.3.208

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 (36) hide show
  1. package/build/Core.js +51 -48
  2. package/build/Core.js.map +1 -1
  3. package/build/components/Finder/Finder.js +18 -7
  4. package/build/components/Finder/Finder.js.map +1 -1
  5. package/build/components/Finder/components/Places/Places.js +3 -1
  6. package/build/components/Finder/components/Places/Places.js.map +1 -1
  7. package/build/components/Finder/helpers/getForwarderUrl.js +1 -1
  8. package/build/components/Finder/helpers/getForwarderUrl.js.map +1 -1
  9. package/build/components/Rates/Rates.Unavailability.js +5 -5
  10. package/build/components/Rates/Rates.Unavailability.js.map +1 -1
  11. package/build/components/Rates/Rates.js +4 -0
  12. package/build/components/Rates/Rates.js.map +1 -1
  13. package/build/components/Rates/Rates.l10n.js +3 -0
  14. package/build/components/Rates/Rates.l10n.js.map +1 -1
  15. package/build/components/Rates/components/CardHotel/CardHotel.js +9 -11
  16. package/build/components/Rates/components/CardHotel/CardHotel.js.map +1 -1
  17. package/build/components/Rates/components/Item/Item.l10n.js +3 -0
  18. package/build/components/Rates/components/Item/Item.l10n.js.map +1 -1
  19. package/build/components/Rates/components/Item/components/ModalInfo/ModalInfo.js +8 -1
  20. package/build/components/Rates/components/Item/components/ModalInfo/ModalInfo.js.map +1 -1
  21. package/build/services/Rates/__tests__/__mocks__/rates-response-no-taxes.json +3 -0
  22. package/build/services/Rates/constants.js +1 -1
  23. package/build/services/Rates/constants.js.map +1 -1
  24. package/build/services/Rates/extras.js +3 -1
  25. package/build/services/Rates/extras.js.map +1 -1
  26. package/build/services/Rates/helpers/getCalendarSuggestions.js +5 -5
  27. package/build/services/Rates/helpers/getCalendarSuggestions.js.map +1 -1
  28. package/build/services/Rates/helpers/getItems.js +13 -10
  29. package/build/services/Rates/helpers/getItems.js.map +1 -1
  30. package/build/services/Rates/helpers/getOccupationSuggestions.js +8 -2
  31. package/build/services/Rates/helpers/getOccupationSuggestions.js.map +1 -1
  32. package/build/services/Rates/helpers/parseUnavailability.js +2 -1
  33. package/build/services/Rates/helpers/parseUnavailability.js.map +1 -1
  34. package/build/services/Rates/rates.js +2 -1
  35. package/build/services/Rates/rates.js.map +1 -1
  36. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ModalInfo.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","style","_helpers","_Item","_Amenities","_Slider","_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","ModalInfo","_ref","bedDisposition","description","features","images","media","name","occupation","roomOccupation","room","onClose","onViewUrl","visible","propVisible","others","isMobile","useDevice","translate","useLocale","value","finder","finderOccupation","useStore","setVisible","useState","useEffect","handleClose","setTimeout","amenities","baseAmenities","title","highlightAmenities","textProps","action","small","forEach","item","undefined","highlight","push","showSelectedOccupation","createElement","Modal","fit","onOverflow","className","modal","ScrollView","scrollTo","Slider","captions","map","_ref2","alt","height","_ref3","large","width","slider","View","wide","section","Text","bold","L10N","LABEL_DESCRIPTION","LABEL_SELECTED_OCCUPATION","LABEL_MAX_OCCUPATION","_item$ages","index","concat","getOccupationLabel","ages","type","OCCUPATION_TYPE","CHILD","LABEL_YEARS_OLD","amount","sort","join","LABEL_BED_DISPOSITION","row","arrangments","box","_ref4","Icon","headline","level","ICON","BED_SINGLE","BED_DOUBLE","LABEL_TOP_AMENITIES","Amenities","accent","LABEL_MORE_SERVICES","exports","displayName","propTypes","PropTypes","arrayOf","shape","number","string","thumbnail","url3D","urlVideo","bool","func","isRequired"],"sources":["../../../../../../../src/components/Rates/components/Item/components/ModalInfo/ModalInfo.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Modal, Icon, ScrollView, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport * as style from './ModalInfo.module.css';\nimport { getOccupationLabel, ICON } from '../../../../../helpers';\nimport { OCCUPATION_TYPE } from '../../../../../helpers';\nimport { L10N } from '../../Item.l10n';\nimport { Amenities } from '../Amenities';\nimport { Slider } from '../Slider';\n\nconst ModalInfo = ({\n bedDisposition = [],\n description,\n features = {},\n images = [],\n media,\n name,\n occupation: roomOccupation = [],\n room = 0,\n onClose = () => {},\n onViewUrl,\n visible: propVisible,\n ...others\n}) => {\n const { isMobile } = useDevice();\n const { translate } = useLocale();\n const {\n value: { finder: { occupation: finderOccupation = [] } = {} },\n } = useStore();\n\n const [visible, setVisible] = useState(propVisible);\n\n useEffect(() => {\n setVisible(propVisible);\n }, [propVisible]);\n\n const handleClose = () => {\n setVisible(false);\n setTimeout(onClose, 300);\n };\n\n const { amenities: baseAmenities = [], title } = others;\n const highlightAmenities = [];\n const amenities = [];\n const textProps = { action: !isMobile, small: isMobile };\n\n baseAmenities.forEach((item = {}) => {\n item.highlight ? highlightAmenities.push(item) : amenities.push(item);\n });\n\n const { showSelectedOccupation = false } = features;\n const occupation = showSelectedOccupation ? finderOccupation[room] : roomOccupation;\n\n return (\n <Modal\n {...{ title, visible }}\n fit\n title={name}\n onClose={handleClose}\n onOverflow={handleClose}\n className={style.modal}\n >\n <ScrollView scrollTo={visible ? 0 : undefined}>\n {!isMobile && (\n <Slider\n captions={images.map(({ alt }) => alt)}\n height={400}\n images={images.map(({ large }) => large)}\n media={media}\n width={738}\n onViewUrl={onViewUrl}\n className={style.slider}\n />\n )}\n\n {description && (\n <View wide className={style.section}>\n <Text bold>{translate(L10N.LABEL_DESCRIPTION)}</Text>\n <Text {...textProps}>{description}</Text>\n </View>\n )}\n\n {occupation.length > 0 && (\n <View wide className={style.section}>\n <Text bold>\n {translate(showSelectedOccupation ? L10N.LABEL_SELECTED_OCCUPATION : L10N.LABEL_MAX_OCCUPATION)}\n </Text>\n {occupation.map((item = {}, index) => (\n <Text {...textProps} key={index}>\n {`${getOccupationLabel({ ...item, ages: showSelectedOccupation ? [] : item.ages }, translate)} ${\n showSelectedOccupation && item.type === OCCUPATION_TYPE.CHILD\n ? `(${translate(L10N.LABEL_YEARS_OLD, { amount: item.ages?.sort().join('-') })})`\n : ''\n }`}\n </Text>\n ))}\n </View>\n )}\n\n {bedDisposition.length > 0 && (\n <View wide className={style.section}>\n <Text bold>{translate(L10N.LABEL_BED_DISPOSITION)}</Text>\n <View row>\n {bedDisposition.map((arrangments = [], index) => (\n <View key={index} row className={[style.box, style.bedDisposition]}>\n {arrangments.map(({ amount, type }) => (\n <View key={`${index}-${type}`} row>\n <Icon headline level={2} value={type === 1 ? ICON.BED_SINGLE : ICON.BED_DOUBLE} />\n <Text action>{`x${amount}`}</Text>\n </View>\n ))}\n </View>\n ))}\n </View>\n </View>\n )}\n\n {highlightAmenities.length > 0 && (\n <View wide className={style.section}>\n <Text bold>{translate(L10N.LABEL_TOP_AMENITIES)}</Text>\n <Amenities accent amenities={highlightAmenities} highlight />\n </View>\n )}\n\n {amenities.length > 0 && (\n <View wide className={style.section}>\n <Text bold>{translate(L10N.LABEL_MORE_SERVICES)}</Text>\n <Amenities amenities={amenities} {...others} />\n </View>\n )}\n </ScrollView>\n </Modal>\n );\n};\n\nModalInfo.displayName = 'Mirai:Core:Rates:Item:ModalInfo';\n\nModalInfo.propTypes = {\n bedDisposition: PropTypes.arrayOf(\n PropTypes.arrayOf(\n PropTypes.shape({\n amount: PropTypes.number,\n type: PropTypes.number,\n }),\n ),\n ),\n description: PropTypes.string,\n features: PropTypes.shape({}),\n images: PropTypes.arrayOf(\n PropTypes.shape({\n alt: PropTypes.string,\n large: PropTypes.string,\n thumbnail: PropTypes.string,\n }),\n ),\n media: PropTypes.shape({\n url3D: PropTypes.string,\n urlVideo: PropTypes.string,\n }),\n name: PropTypes.string,\n occupation: PropTypes.arrayOf(\n PropTypes.shape({\n ages: PropTypes.arrayOf(PropTypes.number),\n amount: PropTypes.number,\n type: PropTypes.number,\n }),\n ),\n room: PropTypes.number,\n visible: PropTypes.bool,\n onClose: PropTypes.func.isRequired,\n onViewUrl: PropTypes.func,\n};\n\nexport { ModalInfo };\n"],"mappings":"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"}
1
+ {"version":3,"file":"ModalInfo.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","style","_helpers","_Item","_Amenities","_Slider","_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","ModalInfo","_ref","bedDisposition","description","doubleBedWidth","features","images","media","name","occupation","roomOccupation","room","onClose","onViewUrl","visible","propVisible","others","isMobile","useDevice","translate","useLocale","value","finder","finderOccupation","useStore","setVisible","useState","useEffect","handleClose","setTimeout","amenities","baseAmenities","title","highlightAmenities","textProps","action","small","forEach","item","undefined","highlight","push","showSelectedOccupation","createElement","Modal","fit","onOverflow","className","modal","ScrollView","scrollTo","Slider","captions","map","_ref2","alt","height","_ref3","large","width","slider","View","wide","section","Text","bold","L10N","LABEL_DESCRIPTION","LABEL_SELECTED_OCCUPATION","LABEL_MAX_OCCUPATION","_item$ages","index","concat","getOccupationLabel","ages","type","OCCUPATION_TYPE","CHILD","LABEL_YEARS_OLD","amount","sort","join","LABEL_BED_DISPOSITION","row","arrangments","box","_ref4","Icon","headline","level","ICON","BED_SINGLE","BED_DOUBLE","LABEL_DOUBLE_BED_WIDTH","LABEL_TOP_AMENITIES","Amenities","accent","LABEL_MORE_SERVICES","exports","displayName","propTypes","PropTypes","arrayOf","shape","number","string","thumbnail","url3D","urlVideo","bool","func","isRequired"],"sources":["../../../../../../../src/components/Rates/components/Item/components/ModalInfo/ModalInfo.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Modal, Icon, ScrollView, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport * as style from './ModalInfo.module.css';\nimport { getOccupationLabel, ICON } from '../../../../../helpers';\nimport { OCCUPATION_TYPE } from '../../../../../helpers';\nimport { L10N } from '../../Item.l10n';\nimport { Amenities } from '../Amenities';\nimport { Slider } from '../Slider';\n\nconst ModalInfo = ({\n bedDisposition = [],\n description,\n doubleBedWidth,\n features = {},\n images = [],\n media,\n name,\n occupation: roomOccupation = [],\n room = 0,\n onClose = () => {},\n onViewUrl,\n visible: propVisible,\n ...others\n}) => {\n const { isMobile } = useDevice();\n const { translate } = useLocale();\n const {\n value: { finder: { occupation: finderOccupation = [] } = {} },\n } = useStore();\n\n const [visible, setVisible] = useState(propVisible);\n\n useEffect(() => {\n setVisible(propVisible);\n }, [propVisible]);\n\n const handleClose = () => {\n setVisible(false);\n setTimeout(onClose, 300);\n };\n\n const { amenities: baseAmenities = [], title } = others;\n const highlightAmenities = [];\n const amenities = [];\n const textProps = { action: !isMobile, small: isMobile };\n\n baseAmenities.forEach((item = {}) => {\n item.highlight ? highlightAmenities.push(item) : amenities.push(item);\n });\n\n const { showSelectedOccupation = false } = features;\n const occupation = showSelectedOccupation ? finderOccupation[room] : roomOccupation;\n\n return (\n <Modal\n {...{ title, visible }}\n fit\n title={name}\n onClose={handleClose}\n onOverflow={handleClose}\n className={style.modal}\n >\n <ScrollView scrollTo={visible ? 0 : undefined}>\n {!isMobile && (\n <Slider\n captions={images.map(({ alt }) => alt)}\n height={400}\n images={images.map(({ large }) => large)}\n media={media}\n width={738}\n onViewUrl={onViewUrl}\n className={style.slider}\n />\n )}\n\n {description && (\n <View wide className={style.section}>\n <Text bold>{translate(L10N.LABEL_DESCRIPTION)}</Text>\n <Text {...textProps}>{description}</Text>\n </View>\n )}\n\n {occupation.length > 0 && (\n <View wide className={style.section}>\n <Text bold>\n {translate(showSelectedOccupation ? L10N.LABEL_SELECTED_OCCUPATION : L10N.LABEL_MAX_OCCUPATION)}\n </Text>\n {occupation.map((item = {}, index) => (\n <Text {...textProps} key={index}>\n {`${getOccupationLabel({ ...item, ages: showSelectedOccupation ? [] : item.ages }, translate)} ${\n showSelectedOccupation && item.type === OCCUPATION_TYPE.CHILD\n ? `(${translate(L10N.LABEL_YEARS_OLD, { amount: item.ages?.sort().join('-') })})`\n : ''\n }`}\n </Text>\n ))}\n </View>\n )}\n\n {bedDisposition.length > 0 && (\n <View wide className={style.section}>\n <Text bold>{translate(L10N.LABEL_BED_DISPOSITION)}</Text>\n <View row>\n {bedDisposition.map((arrangments = [], index) => (\n <View key={index} row className={[style.box, style.bedDisposition]}>\n {arrangments.map(({ amount, type }) => (\n <View key={`${index}-${type}`} row>\n <Icon headline level={2} value={type === 1 ? ICON.BED_SINGLE : ICON.BED_DOUBLE} />\n <Text action>{`x${amount}`}</Text>\n </View>\n ))}\n </View>\n ))}\n </View>\n </View>\n )}\n\n {doubleBedWidth && (\n <View wide className={style.section}>\n <Text bold>{translate(L10N.LABEL_DOUBLE_BED_WIDTH)}</Text>\n <Text {...textProps}>{doubleBedWidth}</Text>\n </View>\n )}\n\n {highlightAmenities.length > 0 && (\n <View wide className={style.section}>\n <Text bold>{translate(L10N.LABEL_TOP_AMENITIES)}</Text>\n <Amenities accent amenities={highlightAmenities} highlight />\n </View>\n )}\n\n {amenities.length > 0 && (\n <View wide className={style.section}>\n <Text bold>{translate(L10N.LABEL_MORE_SERVICES)}</Text>\n <Amenities amenities={amenities} {...others} />\n </View>\n )}\n </ScrollView>\n </Modal>\n );\n};\n\nModalInfo.displayName = 'Mirai:Core:Rates:Item:ModalInfo';\n\nModalInfo.propTypes = {\n bedDisposition: PropTypes.arrayOf(\n PropTypes.arrayOf(\n PropTypes.shape({\n amount: PropTypes.number,\n type: PropTypes.number,\n }),\n ),\n ),\n description: PropTypes.string,\n doubleBedWidth: PropTypes.string,\n features: PropTypes.shape({}),\n images: PropTypes.arrayOf(\n PropTypes.shape({\n alt: PropTypes.string,\n large: PropTypes.string,\n thumbnail: PropTypes.string,\n }),\n ),\n media: PropTypes.shape({\n url3D: PropTypes.string,\n urlVideo: PropTypes.string,\n }),\n name: PropTypes.string,\n occupation: PropTypes.arrayOf(\n PropTypes.shape({\n ages: PropTypes.arrayOf(PropTypes.number),\n amount: PropTypes.number,\n type: PropTypes.number,\n }),\n ),\n room: PropTypes.number,\n visible: PropTypes.bool,\n onClose: PropTypes.func.isRequired,\n onViewUrl: PropTypes.func,\n};\n\nexport { ModalInfo };\n"],"mappings":"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"}
@@ -331,6 +331,7 @@
331
331
  "availability": 5,
332
332
  "bedDisposition": [[{ "amount": 1, "type": 2 }]],
333
333
  "bedTypes": [2],
334
+ "doubleBedWidth": "180 cm",
334
335
  "cancellations": [
335
336
  {
336
337
  "id": "freeCancellation-Cancellation with no penalty up to some hours before arrival.",
@@ -639,6 +640,7 @@
639
640
  "availability": 2,
640
641
  "bedDisposition": [[{ "amount": 1, "type": 2 }]],
641
642
  "bedTypes": [2],
643
+ "doubleBedWidth": "200 cm",
642
644
  "cancellations": [
643
645
  {
644
646
  "id": "freeCancellation-Cancellation with no penalty up to some hours before arrival.",
@@ -950,6 +952,7 @@
950
952
  "availability": 3,
951
953
  "bedDisposition": [[{ "amount": 1, "type": 2 }]],
952
954
  "bedTypes": [2],
955
+ "doubleBedWidth": "200 cm",
953
956
  "cancellations": [
954
957
  {
955
958
  "id": "freeCancellation-Cancellation with no penalty up to some hours before arrival.",
@@ -110,7 +110,7 @@ const GUEST_TYPE = exports.GUEST_TYPE = {
110
110
  const UNIT = exports.UNIT = {
111
111
  imperial: {
112
112
  bed: 'inches',
113
- size: 'q ft'
113
+ size: 'sq ft'
114
114
  },
115
115
  metric: {
116
116
  bed: 'cm',
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","names":["SINGLE","DOUBLE","BED_DISPOSITION","exports","ONE_SINGLE","amount","type","ONE_DOUBLE","TWO_SINGLES","TWO_DOUBLES","THREE_SINGLES","ONE_DOUBLE_ONE_SINGLE","FOUR_SINGLES","ONE_DOUBLE_TWO_SINGLES","FIVE_SINGLES","ONE_DOUBLE_THREE_SINGLES","TWO_DOUBLES_ONE_SINGLE","MORE_THAN_FIVE_BEDS","NO_BED","BED_TYPE","CURRENCIES_WITHOUT_DECIMALS","DEFAULT_LANGUAGE","EXTERNAL","TYPE","URL","en","es","de","fr","it","pt","ru","nl","EXTRA_TYPE","ROOM","GUEST","RANGE","UNIT","FREQUENCY","ONCE","NIGHTLY","KEY_HASH","GUEST_TYPE","ALL","ADULT","CHILD","imperial","bed","size","metric","VALID"],"sources":["../../../src/services/Rates/constants.js"],"sourcesContent":["const SINGLE = 1;\nconst DOUBLE = 2;\n\nconst BED_DISPOSITION = {\n ONE_SINGLE: [{ amount: 1, type: SINGLE }],\n ONE_DOUBLE: [{ amount: 1, type: DOUBLE }],\n TWO_SINGLES: [{ amount: 2, type: SINGLE }],\n TWO_DOUBLES: [{ amount: 2, type: DOUBLE }],\n THREE_SINGLES: [{ amount: 3, type: SINGLE }],\n ONE_DOUBLE_ONE_SINGLE: [\n { amount: 1, type: DOUBLE },\n { amount: 1, type: SINGLE },\n ],\n FOUR_SINGLES: [{ amount: 4, type: SINGLE }],\n ONE_DOUBLE_TWO_SINGLES: [\n { amount: 1, type: DOUBLE },\n { amount: 2, type: SINGLE },\n ],\n FIVE_SINGLES: [{ amount: 5, type: SINGLE }],\n ONE_DOUBLE_THREE_SINGLES: [\n { amount: 1, type: DOUBLE },\n { amount: 3, type: SINGLE },\n ],\n TWO_DOUBLES_ONE_SINGLE: [\n { amount: 2, type: DOUBLE },\n { amount: 1, type: SINGLE },\n ],\n MORE_THAN_FIVE_BEDS: [\n { amount: 6, type: DOUBLE },\n { amount: 6, type: SINGLE },\n ],\n NO_BED: [],\n};\n\nconst BED_TYPE = { SINGLE, DOUBLE };\n\nconst CURRENCIES_WITHOUT_DECIMALS = ['KRW', 'JPY', 'IDR', 'ISK'];\n\nconst DEFAULT_LANGUAGE = 'en';\n\nconst EXTERNAL = {\n TYPE: 3,\n URL: {\n en: 'https://www.pestana.com/en/contents/pgc/pgc-regulation',\n es: 'https://www.pestana.com/es/contents/pgc/pgc-reglamento',\n de: 'https://www.pestana.com/de/contents/pgc/pgc-regulierung',\n fr: 'https://www.pestana.com/fr/contents/pgc/pgc-reglement',\n it: 'https://www.pestana.com/it/contents/pgc/pgc-regolazione',\n pt: 'https://www.pestana.com/pt/contents/pgc/pgc-regulamento',\n ru: 'https://www.pestana.com/ru/contents/pgc/pgc-regulation',\n nl: 'https://www.pestana.com/en/contents/pgc/pgc-regulation',\n },\n};\n\nconst EXTRA_TYPE = {\n ROOM: 0,\n GUEST: 1,\n RANGE: 2,\n UNIT: 3,\n};\n\nconst FREQUENCY = {\n ONCE: 0,\n NIGHTLY: 1,\n};\n\nconst KEY_HASH = 'm14357';\n\nconst GUEST_TYPE = {\n ALL: 1,\n ADULT: 2,\n CHILD: 3,\n};\n\nconst UNIT = {\n imperial: { bed: 'inches', size: 'q ft' },\n metric: { bed: 'cm', size: 'm²' },\n};\n\nconst VALID = 'VALID';\n\nexport {\n BED_DISPOSITION,\n BED_TYPE,\n CURRENCIES_WITHOUT_DECIMALS,\n DEFAULT_LANGUAGE,\n EXTERNAL,\n EXTRA_TYPE,\n FREQUENCY,\n KEY_HASH,\n GUEST_TYPE,\n UNIT,\n VALID,\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","names":["SINGLE","DOUBLE","BED_DISPOSITION","exports","ONE_SINGLE","amount","type","ONE_DOUBLE","TWO_SINGLES","TWO_DOUBLES","THREE_SINGLES","ONE_DOUBLE_ONE_SINGLE","FOUR_SINGLES","ONE_DOUBLE_TWO_SINGLES","FIVE_SINGLES","ONE_DOUBLE_THREE_SINGLES","TWO_DOUBLES_ONE_SINGLE","MORE_THAN_FIVE_BEDS","NO_BED","BED_TYPE","CURRENCIES_WITHOUT_DECIMALS","DEFAULT_LANGUAGE","EXTERNAL","TYPE","URL","en","es","de","fr","it","pt","ru","nl","EXTRA_TYPE","ROOM","GUEST","RANGE","UNIT","FREQUENCY","ONCE","NIGHTLY","KEY_HASH","GUEST_TYPE","ALL","ADULT","CHILD","imperial","bed","size","metric","VALID"],"sources":["../../../src/services/Rates/constants.js"],"sourcesContent":["const SINGLE = 1;\nconst DOUBLE = 2;\n\nconst BED_DISPOSITION = {\n ONE_SINGLE: [{ amount: 1, type: SINGLE }],\n ONE_DOUBLE: [{ amount: 1, type: DOUBLE }],\n TWO_SINGLES: [{ amount: 2, type: SINGLE }],\n TWO_DOUBLES: [{ amount: 2, type: DOUBLE }],\n THREE_SINGLES: [{ amount: 3, type: SINGLE }],\n ONE_DOUBLE_ONE_SINGLE: [\n { amount: 1, type: DOUBLE },\n { amount: 1, type: SINGLE },\n ],\n FOUR_SINGLES: [{ amount: 4, type: SINGLE }],\n ONE_DOUBLE_TWO_SINGLES: [\n { amount: 1, type: DOUBLE },\n { amount: 2, type: SINGLE },\n ],\n FIVE_SINGLES: [{ amount: 5, type: SINGLE }],\n ONE_DOUBLE_THREE_SINGLES: [\n { amount: 1, type: DOUBLE },\n { amount: 3, type: SINGLE },\n ],\n TWO_DOUBLES_ONE_SINGLE: [\n { amount: 2, type: DOUBLE },\n { amount: 1, type: SINGLE },\n ],\n MORE_THAN_FIVE_BEDS: [\n { amount: 6, type: DOUBLE },\n { amount: 6, type: SINGLE },\n ],\n NO_BED: [],\n};\n\nconst BED_TYPE = { SINGLE, DOUBLE };\n\nconst CURRENCIES_WITHOUT_DECIMALS = ['KRW', 'JPY', 'IDR', 'ISK'];\n\nconst DEFAULT_LANGUAGE = 'en';\n\nconst EXTERNAL = {\n TYPE: 3,\n URL: {\n en: 'https://www.pestana.com/en/contents/pgc/pgc-regulation',\n es: 'https://www.pestana.com/es/contents/pgc/pgc-reglamento',\n de: 'https://www.pestana.com/de/contents/pgc/pgc-regulierung',\n fr: 'https://www.pestana.com/fr/contents/pgc/pgc-reglement',\n it: 'https://www.pestana.com/it/contents/pgc/pgc-regolazione',\n pt: 'https://www.pestana.com/pt/contents/pgc/pgc-regulamento',\n ru: 'https://www.pestana.com/ru/contents/pgc/pgc-regulation',\n nl: 'https://www.pestana.com/en/contents/pgc/pgc-regulation',\n },\n};\n\nconst EXTRA_TYPE = {\n ROOM: 0,\n GUEST: 1,\n RANGE: 2,\n UNIT: 3,\n};\n\nconst FREQUENCY = {\n ONCE: 0,\n NIGHTLY: 1,\n};\n\nconst KEY_HASH = 'm14357';\n\nconst GUEST_TYPE = {\n ALL: 1,\n ADULT: 2,\n CHILD: 3,\n};\n\nconst UNIT = {\n imperial: { bed: 'inches', size: 'sq ft' },\n metric: { bed: 'cm', size: 'm²' },\n};\n\nconst VALID = 'VALID';\n\nexport {\n BED_DISPOSITION,\n BED_TYPE,\n CURRENCIES_WITHOUT_DECIMALS,\n DEFAULT_LANGUAGE,\n EXTERNAL,\n EXTRA_TYPE,\n FREQUENCY,\n KEY_HASH,\n GUEST_TYPE,\n UNIT,\n VALID,\n};\n"],"mappings":"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"}
@@ -85,7 +85,7 @@ const extras = function () {
85
85
  ageCategory,
86
86
  conditionDetails: conditions,
87
87
  defaultQuantity,
88
- description: text,
88
+ description,
89
89
  includedInOffer: included,
90
90
  guestsPresent: guestThreshold,
91
91
  name: title,
@@ -100,8 +100,10 @@ const extras = function () {
100
100
  priceOptionValues: priceOptions,
101
101
  showApplyNights: inputNights,
102
102
  showApplyPersons: inputGuests,
103
+ subtitle,
103
104
  taxesInformation: taxes
104
105
  } = extras[id] || {};
106
+ const text = subtitle ? "".concat(subtitle, ". ").concat(description) : description;
105
107
  const guestType = _constants.GUEST_TYPE[ageCategory];
106
108
  const type = perRoom ? ROOM : perRange ? RANGE : perReserve ? UNIT : perGuest ? GUEST : undefined;
107
109
  const amount = [GUEST, RANGE].includes(type) ? guestType === ADULT ? adults : guestType === CHILD ? children : adults + children : defaultQuantity;
@@ -1 +1 @@
1
- {"version":3,"file":"extras.js","names":["_dataSources","require","_services","_constants","_helpers","GUEST","RANGE","ROOM","UNIT","EXTRA_TYPE","ADULT","CHILD","GUEST_TYPE","extras","adults","children","clubDiscount","applyClubDiscount","currency","userCurrency","hotelCurrency","locale","offersAppliedBySelectedRoom","price","rooms","session","authorization","others","arguments","length","undefined","Promise","resolve","reject","language","split","params","Object","entries","accessClubToken","lang","totalPrice","filter","_ref","value","response","request","hostname","process","env","SERVICE_BOOKING","endpoint","concat","URLSearchParams","headers","catch","error","result","sortedExtrasIds","ServiceCurrency","exchange","id","draft","includedInOffer","map","ageCategory","conditionDetails","conditions","defaultQuantity","description","text","included","guestsPresent","guestThreshold","name","title","nights","occupationsPresent","accommodationThreshold","perGuest","perNight","perRange","perReserve","perRoom","photo","image","priceOptionValues","priceOptions","showApplyNights","inputNights","showApplyPersons","inputGuests","taxesInformation","taxes","guestType","type","amount","includes","discounts","discount","basePrice","withTaxes","find","_ref2","option","percent","originalPrice","getValue","base","fromEntries","Array","from","_","indexAmount","indexNights","withoutTaxes","_ref3","getAmount","getPrice","normalize","baseValue","frequency","FREQUENCY","NIGHTLY","ONCE","exports"],"sources":["../../../src/services/Rates/extras.js"],"sourcesContent":["/* eslint-disable no-async-promise-executor */\nimport { request } from '@mirai/data-sources';\nimport { ServiceCurrency } from '@mirai/services';\n\nimport { EXTRA_TYPE, FREQUENCY, GUEST_TYPE } from './constants';\nimport { getPrice } from './helpers';\n\nconst { GUEST, RANGE, ROOM, UNIT } = EXTRA_TYPE;\nconst { ADULT, CHILD } = GUEST_TYPE;\n\nexport const extras = ({\n adults,\n children,\n clubDiscount: applyClubDiscount,\n currency: userCurrency,\n hotelCurrency = userCurrency,\n locale,\n offersAppliedBySelectedRoom,\n price,\n rooms,\n session: { authorization } = {},\n ...others\n} = {}) =>\n new Promise(async (resolve, reject) => {\n if (!userCurrency || !locale) return reject();\n\n const language = locale?.split('-')[0];\n const params = Object.entries({\n applyClubDiscount,\n currency: userCurrency,\n ...others,\n accessClubToken: authorization,\n lang: language,\n rooms,\n offersAppliedBySelectedRoom,\n totalPrice: price,\n }).filter(([, value]) => value !== undefined);\n\n const response = await request({\n hostname: process.env.SERVICE_BOOKING,\n endpoint: `/request_extras_v2.json?${new URLSearchParams(params)}`,\n //TODO: back have to change the endpoint for don`t have remove this headers\n headers: { 'Content-Type': undefined, 'X-Requested-With': undefined },\n }).catch((error) => {\n reject(error);\n });\n\n if (!response || response.result === 'EXCEPTION') return reject({ error: 'Upss, something bad happened!' }); //TODO\n\n const { extras = {}, sortedExtrasIds = [] } = response;\n const currency = userCurrency || hotelCurrency;\n if (userCurrency !== hotelCurrency) await ServiceCurrency.exchange(currency);\n\n resolve({\n extras: sortedExtrasIds\n .filter((id) => {\n const { draft, includedInOffer } = extras[id] || {};\n\n return includedInOffer || !draft;\n })\n .map((id) => {\n const {\n ageCategory,\n conditionDetails: conditions,\n defaultQuantity,\n description: text,\n includedInOffer: included,\n guestsPresent: guestThreshold,\n name: title,\n nights,\n occupationsPresent: accommodationThreshold,\n perGuest,\n perNight,\n perRange,\n perReserve,\n perRoom,\n photo: image,\n priceOptionValues: priceOptions,\n showApplyNights: inputNights,\n showApplyPersons: inputGuests,\n taxesInformation: taxes,\n } = extras[id] || {};\n\n const guestType = GUEST_TYPE[ageCategory];\n const type = perRoom ? ROOM : perRange ? RANGE : perReserve ? UNIT : perGuest ? GUEST : undefined;\n const amount = [GUEST, RANGE].includes(type)\n ? guestType === ADULT\n ? adults\n : guestType === CHILD\n ? children\n : adults + children\n : defaultQuantity;\n\n const { discounts: [discount] = [], value: { price: basePrice, withTaxes: price } = {} } =\n priceOptions.find(({ option }) => option === amount) || priceOptions[0];\n const { percent, value: { price: originalPrice } = {} } = discount || {};\n\n const getValue = (base = false) =>\n Object.fromEntries(\n Array.from({ length: amount }, (_, indexAmount) => [\n indexAmount + 1,\n Object.fromEntries(\n Array.from({ length: nights }, (_, indexNights) => {\n const amount = indexAmount + 1;\n const nights = indexNights + 1;\n const { value: { price, withTaxes, withoutTaxes: basePrice } = {} } =\n priceOptions.find(({ option }) => option === amount) || priceOptions[0];\n const taxes = withTaxes - basePrice;\n\n const getAmount = (value) =>\n getPrice({\n currency,\n hotelCurrency: base ? currency : hotelCurrency,\n normalize: false,\n price: type !== RANGE ? (perNight ? amount * nights * value : amount * value) : value,\n });\n\n return [\n nights,\n { basePrice: getAmount(basePrice), price: getAmount(price), taxes: getAmount(taxes) },\n ];\n }),\n ),\n ]),\n );\n\n return {\n accommodationThreshold,\n amount,\n baseValue: getValue(true),\n conditions: conditions ? conditions : undefined,\n discount: discount && { originalPrice, percent },\n frequency: perNight ? FREQUENCY.NIGHTLY : FREQUENCY.ONCE,\n guestThreshold,\n guestType,\n id,\n image,\n included,\n inputGuests,\n inputNights,\n nights,\n taxes: price !== basePrice ? taxes : undefined,\n text: text ? text : undefined,\n title,\n type,\n value: getValue(),\n };\n }),\n });\n });\n"],"mappings":"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"}
1
+ {"version":3,"file":"extras.js","names":["_dataSources","require","_services","_constants","_helpers","GUEST","RANGE","ROOM","UNIT","EXTRA_TYPE","ADULT","CHILD","GUEST_TYPE","extras","adults","children","clubDiscount","applyClubDiscount","currency","userCurrency","hotelCurrency","locale","offersAppliedBySelectedRoom","price","rooms","session","authorization","others","arguments","length","undefined","Promise","resolve","reject","language","split","params","Object","entries","accessClubToken","lang","totalPrice","filter","_ref","value","response","request","hostname","process","env","SERVICE_BOOKING","endpoint","concat","URLSearchParams","headers","catch","error","result","sortedExtrasIds","ServiceCurrency","exchange","id","draft","includedInOffer","map","ageCategory","conditionDetails","conditions","defaultQuantity","description","included","guestsPresent","guestThreshold","name","title","nights","occupationsPresent","accommodationThreshold","perGuest","perNight","perRange","perReserve","perRoom","photo","image","priceOptionValues","priceOptions","showApplyNights","inputNights","showApplyPersons","inputGuests","subtitle","taxesInformation","taxes","text","guestType","type","amount","includes","discounts","discount","basePrice","withTaxes","find","_ref2","option","percent","originalPrice","getValue","base","fromEntries","Array","from","_","indexAmount","indexNights","withoutTaxes","_ref3","getAmount","getPrice","normalize","baseValue","frequency","FREQUENCY","NIGHTLY","ONCE","exports"],"sources":["../../../src/services/Rates/extras.js"],"sourcesContent":["/* eslint-disable no-async-promise-executor */\nimport { request } from '@mirai/data-sources';\nimport { ServiceCurrency } from '@mirai/services';\n\nimport { EXTRA_TYPE, FREQUENCY, GUEST_TYPE } from './constants';\nimport { getPrice } from './helpers';\n\nconst { GUEST, RANGE, ROOM, UNIT } = EXTRA_TYPE;\nconst { ADULT, CHILD } = GUEST_TYPE;\n\nexport const extras = ({\n adults,\n children,\n clubDiscount: applyClubDiscount,\n currency: userCurrency,\n hotelCurrency = userCurrency,\n locale,\n offersAppliedBySelectedRoom,\n price,\n rooms,\n session: { authorization } = {},\n ...others\n} = {}) =>\n new Promise(async (resolve, reject) => {\n if (!userCurrency || !locale) return reject();\n\n const language = locale?.split('-')[0];\n const params = Object.entries({\n applyClubDiscount,\n currency: userCurrency,\n ...others,\n accessClubToken: authorization,\n lang: language,\n rooms,\n offersAppliedBySelectedRoom,\n totalPrice: price,\n }).filter(([, value]) => value !== undefined);\n\n const response = await request({\n hostname: process.env.SERVICE_BOOKING,\n endpoint: `/request_extras_v2.json?${new URLSearchParams(params)}`,\n //TODO: back have to change the endpoint for don`t have remove this headers\n headers: { 'Content-Type': undefined, 'X-Requested-With': undefined },\n }).catch((error) => {\n reject(error);\n });\n\n if (!response || response.result === 'EXCEPTION') return reject({ error: 'Upss, something bad happened!' }); //TODO\n\n const { extras = {}, sortedExtrasIds = [] } = response;\n const currency = userCurrency || hotelCurrency;\n if (userCurrency !== hotelCurrency) await ServiceCurrency.exchange(currency);\n\n resolve({\n extras: sortedExtrasIds\n .filter((id) => {\n const { draft, includedInOffer } = extras[id] || {};\n\n return includedInOffer || !draft;\n })\n .map((id) => {\n const {\n ageCategory,\n conditionDetails: conditions,\n defaultQuantity,\n description,\n includedInOffer: included,\n guestsPresent: guestThreshold,\n name: title,\n nights,\n occupationsPresent: accommodationThreshold,\n perGuest,\n perNight,\n perRange,\n perReserve,\n perRoom,\n photo: image,\n priceOptionValues: priceOptions,\n showApplyNights: inputNights,\n showApplyPersons: inputGuests,\n subtitle,\n taxesInformation: taxes,\n } = extras[id] || {};\n\n const text = subtitle ? `${subtitle}. ${description}` : description;\n const guestType = GUEST_TYPE[ageCategory];\n const type = perRoom ? ROOM : perRange ? RANGE : perReserve ? UNIT : perGuest ? GUEST : undefined;\n const amount = [GUEST, RANGE].includes(type)\n ? guestType === ADULT\n ? adults\n : guestType === CHILD\n ? children\n : adults + children\n : defaultQuantity;\n\n const { discounts: [discount] = [], value: { price: basePrice, withTaxes: price } = {} } =\n priceOptions.find(({ option }) => option === amount) || priceOptions[0];\n const { percent, value: { price: originalPrice } = {} } = discount || {};\n\n const getValue = (base = false) =>\n Object.fromEntries(\n Array.from({ length: amount }, (_, indexAmount) => [\n indexAmount + 1,\n Object.fromEntries(\n Array.from({ length: nights }, (_, indexNights) => {\n const amount = indexAmount + 1;\n const nights = indexNights + 1;\n const { value: { price, withTaxes, withoutTaxes: basePrice } = {} } =\n priceOptions.find(({ option }) => option === amount) || priceOptions[0];\n const taxes = withTaxes - basePrice;\n\n const getAmount = (value) =>\n getPrice({\n currency,\n hotelCurrency: base ? currency : hotelCurrency,\n normalize: false,\n price: type !== RANGE ? (perNight ? amount * nights * value : amount * value) : value,\n });\n\n return [\n nights,\n { basePrice: getAmount(basePrice), price: getAmount(price), taxes: getAmount(taxes) },\n ];\n }),\n ),\n ]),\n );\n\n return {\n accommodationThreshold,\n amount,\n baseValue: getValue(true),\n conditions: conditions ? conditions : undefined,\n discount: discount && { originalPrice, percent },\n frequency: perNight ? FREQUENCY.NIGHTLY : FREQUENCY.ONCE,\n guestThreshold,\n guestType,\n id,\n image,\n included,\n inputGuests,\n inputNights,\n nights,\n taxes: price !== basePrice ? taxes : undefined,\n text: text ? text : undefined,\n title,\n type,\n value: getValue(),\n };\n }),\n });\n });\n"],"mappings":"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"}
@@ -18,15 +18,15 @@ const getCalendarSuggestions = function () {
18
18
  } = {},
19
19
  checkIn: propCheckIn,
20
20
  minStayType,
21
- nights
21
+ nights: propNights
22
22
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
23
23
  let allSuggestions = [];
24
24
  const date = (0, _locale.parseDate)(initialDate);
25
- const nightsRange = nights > 1 ? nights - 1 : nights;
25
+ const nights = Number(propNights);
26
26
  for (let index = 0; index < daysInfo.length; index++) {
27
27
  const from = index > 0 ? (0, _locale.dateCalc)(date, index) : date;
28
- const rangeDays = daysInfo.slice(index, index + nightsRange);
29
- if (rangeDays.length !== nightsRange) break;
28
+ const rangeDays = daysInfo.slice(index, index + nights);
29
+ if (rangeDays.length !== nights) break;
30
30
  if (rangeDays.every(day => day > 0) && (minStayType === CHECK_IN && (daysInfo[index] === 1 || daysInfo[index] > 1 && nights >= daysInfo[index]) || minStayType === STAY && daysInfo[index] > 0 && nights >= Math.max(...rangeDays))) {
31
31
  //!TODO: get price for nights and occupation
32
32
  allSuggestions.push({
@@ -46,7 +46,7 @@ const getCalendarSuggestions = function () {
46
46
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
47
47
  let index = arguments.length > 1 ? arguments[1] : undefined;
48
48
  if (from > checkIn && !hasNext || hasNext && suggestions.length < 3 && checkIn.getDay() === from.getDay()) {
49
- if (!hasPrevious && !hasNext && index > 0) {
49
+ if (!hasPrevious && !hasNext && index > 0 && allSuggestions[index - 1].from.getTime() !== checkIn.getTime()) {
50
50
  suggestions.push(allSuggestions[index - 1]);
51
51
  hasPrevious = true;
52
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getCalendarSuggestions.js","names":["_locale","require","_Core","CHECK_IN","STAY","MIN_STAY_TYPE","getCalendarSuggestions","calendar","daysInfo","initialDate","checkIn","propCheckIn","minStayType","nights","arguments","length","undefined","allSuggestions","date","parseDate","nightsRange","index","from","dateCalc","rangeDays","slice","every","day","Math","max","push","to","price","floor","random","suggestions","hasPrevious","hasNext","forEach","getDay","exports"],"sources":["../../../../src/services/Rates/helpers/getCalendarSuggestions.js"],"sourcesContent":["import { dateCalc, parseDate } from '@mirai/locale';\n\nimport { MIN_STAY_TYPE } from '../../../Core.constants';\n\nconst { CHECK_IN, STAY } = MIN_STAY_TYPE;\n\nexport const getCalendarSuggestions = ({\n calendar: { daysInfo = [], initialDate } = {},\n checkIn: propCheckIn,\n minStayType,\n nights,\n} = {}) => {\n let allSuggestions = [];\n const date = parseDate(initialDate);\n const nightsRange = nights > 1 ? nights - 1 : nights;\n\n for (let index = 0; index < daysInfo.length; index++) {\n const from = index > 0 ? dateCalc(date, index) : date;\n const rangeDays = daysInfo.slice(index, index + nightsRange);\n if (rangeDays.length !== nightsRange) break;\n\n if (\n rangeDays.every((day) => day > 0) &&\n ((minStayType === CHECK_IN && (daysInfo[index] === 1 || (daysInfo[index] > 1 && nights >= daysInfo[index]))) ||\n (minStayType === STAY && daysInfo[index] > 0 && nights >= Math.max(...rangeDays)))\n ) {\n //!TODO: get price for nights and occupation\n allSuggestions.push({ from, to: dateCalc(from, nights), price: Math.floor(Math.random() * 500) + 100 });\n }\n }\n\n const checkIn = parseDate(propCheckIn);\n let suggestions = [];\n let hasPrevious = false;\n let hasNext = false;\n allSuggestions.forEach(({ from } = {}, index) => {\n if ((from > checkIn && !hasNext) || (hasNext && suggestions.length < 3 && checkIn.getDay() === from.getDay())) {\n if (!hasPrevious && !hasNext && index > 0) {\n suggestions.push(allSuggestions[index - 1]);\n hasPrevious = true;\n }\n suggestions.push(allSuggestions[index]);\n hasNext = true;\n }\n });\n\n return suggestions;\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"getCalendarSuggestions.js","names":["_locale","require","_Core","CHECK_IN","STAY","MIN_STAY_TYPE","getCalendarSuggestions","calendar","daysInfo","initialDate","checkIn","propCheckIn","minStayType","nights","propNights","arguments","length","undefined","allSuggestions","date","parseDate","Number","index","from","dateCalc","rangeDays","slice","every","day","Math","max","push","to","price","floor","random","suggestions","hasPrevious","hasNext","forEach","getDay","getTime","exports"],"sources":["../../../../src/services/Rates/helpers/getCalendarSuggestions.js"],"sourcesContent":["import { dateCalc, parseDate } from '@mirai/locale';\n\nimport { MIN_STAY_TYPE } from '../../../Core.constants';\n\nconst { CHECK_IN, STAY } = MIN_STAY_TYPE;\n\nexport const getCalendarSuggestions = ({\n calendar: { daysInfo = [], initialDate } = {},\n checkIn: propCheckIn,\n minStayType,\n nights: propNights,\n} = {}) => {\n let allSuggestions = [];\n const date = parseDate(initialDate);\n const nights = Number(propNights);\n\n for (let index = 0; index < daysInfo.length; index++) {\n const from = index > 0 ? dateCalc(date, index) : date;\n const rangeDays = daysInfo.slice(index, index + nights);\n if (rangeDays.length !== nights) break;\n\n if (\n rangeDays.every((day) => day > 0) &&\n ((minStayType === CHECK_IN && (daysInfo[index] === 1 || (daysInfo[index] > 1 && nights >= daysInfo[index]))) ||\n (minStayType === STAY && daysInfo[index] > 0 && nights >= Math.max(...rangeDays)))\n ) {\n //!TODO: get price for nights and occupation\n allSuggestions.push({ from, to: dateCalc(from, nights), price: Math.floor(Math.random() * 500) + 100 });\n }\n }\n\n const checkIn = parseDate(propCheckIn);\n let suggestions = [];\n let hasPrevious = false;\n let hasNext = false;\n allSuggestions.forEach(({ from } = {}, index) => {\n if ((from > checkIn && !hasNext) || (hasNext && suggestions.length < 3 && checkIn.getDay() === from.getDay())) {\n if (!hasPrevious && !hasNext && index > 0 && allSuggestions[index - 1].from.getTime() !== checkIn.getTime()) {\n suggestions.push(allSuggestions[index - 1]);\n hasPrevious = true;\n }\n suggestions.push(allSuggestions[index]);\n hasNext = true;\n }\n });\n\n return suggestions;\n};\n"],"mappings":"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"}
@@ -31,6 +31,7 @@ const getItems = function () {
31
31
  description,
32
32
  roomTypeInfo: {
33
33
  bedDistributions: bedType = [],
34
+ doubleBedWidth,
34
35
  galleryMedia: {
35
36
  url3D,
36
37
  urlVideo
@@ -53,20 +54,22 @@ const getItems = function () {
53
54
  rates
54
55
  } = Object.values(occupationOptions)[0] || {};
55
56
  const maxOccupation = adults + children;
57
+ const bedTypes = bedType.reduce((result, next) => {
58
+ _constants.BED_DISPOSITION[next].forEach(function () {
59
+ let {
60
+ amount,
61
+ type
62
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
63
+ if ([DOUBLE, SINGLE].includes(type) && amount > 0) result[result.length ? 1 : 0] = type;
64
+ });
65
+ return result;
66
+ }, []);
56
67
  return {
57
68
  amenities: (0, _parseAmenities.parseAmenities)(info),
58
69
  availability,
59
70
  bedDisposition: bedType.map(type => _constants.BED_DISPOSITION[type]),
60
- bedTypes: bedType.reduce((result, next) => {
61
- _constants.BED_DISPOSITION[next].forEach(function () {
62
- let {
63
- amount,
64
- type
65
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
66
- if ([DOUBLE, SINGLE].includes(type) && amount > 0) result[result.length ? 1 : 0] = type;
67
- });
68
- return result;
69
- }, []),
71
+ bedTypes,
72
+ doubleBedWidth: doubleBedWidth && bedTypes.includes(DOUBLE) ? "".concat(doubleBedWidth, " ").concat(_constants.UNIT[unit].bed) : undefined,
70
73
  ...(0, _parseBoards.parseBoards)({
71
74
  currency,
72
75
  fees,
@@ -1 +1 @@
1
- {"version":3,"file":"getItems.js","names":["_parseAmenities","require","_parseBoards","_constants","DOUBLE","SINGLE","BED_TYPE","getItems","currency","currencyCode","hotelCurrency","measureUnit","unit","roomTypes","showLocalTaxes","fees","vatIncluded","taxes","arguments","length","undefined","Object","values","map","amountAvailable","availability","name","newInfoRoom","info","occupationOptions","description","roomTypeInfo","bedDistributions","bedType","galleryMedia","url3D","urlVideo","photos","roomSize","size","occupationQuantities","numFirstRangeChildren","minRange","numSecondRangeChildren","maxRange","numAdults","adults","numBabies","babies","totalChildren","children","posibilities","nights","nightsDeal","rates","maxOccupation","amenities","parseAmenities","bedDisposition","type","BED_DISPOSITION","bedTypes","reduce","result","next","forEach","amount","includes","parseBoards","images","photoAltDescription","alt","urlLarge","large","urlMediumRect","thumbnail","media","occupation","ages","filter","item","concat","UNIT","exports"],"sources":["../../../../src/services/Rates/helpers/getItems.js"],"sourcesContent":["import { parseAmenities } from './parseAmenities';\nimport { parseBoards } from './parseBoards';\nimport { BED_DISPOSITION, BED_TYPE, UNIT } from '../constants';\n\nconst { DOUBLE, SINGLE } = BED_TYPE;\n\nexport const getItems = ({\n currency,\n currencyCode: hotelCurrency,\n measureUnit: unit,\n roomTypes,\n showLocalTaxes: fees,\n vatIncluded: taxes,\n} = {}) =>\n Object.values(roomTypes).map(\n ({ amountAvailable: availability, name, newInfoRoom: info = {}, occupationOptions = {} } = {}) => {\n const {\n description,\n roomTypeInfo: {\n bedDistributions: bedType = [],\n galleryMedia: { url3D, urlVideo } = {},\n photos,\n roomSize: size,\n } = {},\n } = info;\n\n const {\n occupationQuantities: {\n numFirstRangeChildren: minRange = 0,\n numSecondRangeChildren: maxRange = 0,\n numAdults: adults = 0,\n numBabies: babies = 0,\n totalChildren: children = 0,\n } = {},\n posibilities: [{ nights: nightsDeal } = {}] = [],\n rates,\n } = Object.values(occupationOptions)[0] || {};\n\n const maxOccupation = adults + children;\n\n return {\n amenities: parseAmenities(info),\n availability,\n bedDisposition: bedType.map((type) => BED_DISPOSITION[type]),\n bedTypes: bedType.reduce((result, next) => {\n BED_DISPOSITION[next].forEach(({ amount, type } = {}) => {\n if ([DOUBLE, SINGLE].includes(type) && amount > 0) result[result.length ? 1 : 0] = type;\n });\n\n return result;\n }, []),\n ...parseBoards({ currency, fees, hotelCurrency, rates, taxes }),\n description,\n images: photos?.map(({ photoAltDescription: alt, urlLarge: large, urlMediumRect: thumbnail } = {}) => ({\n alt,\n large,\n thumbnail,\n })),\n name,\n nightsDeal,\n maxOccupation,\n media: url3D || urlVideo ? { url3D, urlVideo } : undefined,\n occupation: maxOccupation\n ? [\n adults > 0 ? { type: 2, amount: adults } : undefined,\n children > 0 ? { type: 3, ages: [minRange, maxRange], amount: children } : undefined,\n babies > 0 ? { type: 4, amount: babies } : undefined,\n ].filter((item) => !!item)\n : [],\n size: size ? `${size} ${UNIT[unit].size}` : undefined,\n };\n },\n );\n"],"mappings":"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"}
1
+ {"version":3,"file":"getItems.js","names":["_parseAmenities","require","_parseBoards","_constants","DOUBLE","SINGLE","BED_TYPE","getItems","currency","currencyCode","hotelCurrency","measureUnit","unit","roomTypes","showLocalTaxes","fees","vatIncluded","taxes","arguments","length","undefined","Object","values","map","amountAvailable","availability","name","newInfoRoom","info","occupationOptions","description","roomTypeInfo","bedDistributions","bedType","doubleBedWidth","galleryMedia","url3D","urlVideo","photos","roomSize","size","occupationQuantities","numFirstRangeChildren","minRange","numSecondRangeChildren","maxRange","numAdults","adults","numBabies","babies","totalChildren","children","posibilities","nights","nightsDeal","rates","maxOccupation","bedTypes","reduce","result","next","BED_DISPOSITION","forEach","amount","type","includes","amenities","parseAmenities","bedDisposition","concat","UNIT","bed","parseBoards","images","photoAltDescription","alt","urlLarge","large","urlMediumRect","thumbnail","media","occupation","ages","filter","item","exports"],"sources":["../../../../src/services/Rates/helpers/getItems.js"],"sourcesContent":["import { parseAmenities } from './parseAmenities';\nimport { parseBoards } from './parseBoards';\nimport { BED_DISPOSITION, BED_TYPE, UNIT } from '../constants';\n\nconst { DOUBLE, SINGLE } = BED_TYPE;\n\nexport const getItems = ({\n currency,\n currencyCode: hotelCurrency,\n measureUnit: unit,\n roomTypes,\n showLocalTaxes: fees,\n vatIncluded: taxes,\n} = {}) =>\n Object.values(roomTypes).map(\n ({ amountAvailable: availability, name, newInfoRoom: info = {}, occupationOptions = {} } = {}) => {\n const {\n description,\n roomTypeInfo: {\n bedDistributions: bedType = [],\n doubleBedWidth,\n galleryMedia: { url3D, urlVideo } = {},\n photos,\n roomSize: size,\n } = {},\n } = info;\n\n const {\n occupationQuantities: {\n numFirstRangeChildren: minRange = 0,\n numSecondRangeChildren: maxRange = 0,\n numAdults: adults = 0,\n numBabies: babies = 0,\n totalChildren: children = 0,\n } = {},\n posibilities: [{ nights: nightsDeal } = {}] = [],\n rates,\n } = Object.values(occupationOptions)[0] || {};\n\n const maxOccupation = adults + children;\n const bedTypes = bedType.reduce((result, next) => {\n BED_DISPOSITION[next].forEach(({ amount, type } = {}) => {\n if ([DOUBLE, SINGLE].includes(type) && amount > 0) result[result.length ? 1 : 0] = type;\n });\n\n return result;\n }, []);\n\n return {\n amenities: parseAmenities(info),\n availability,\n bedDisposition: bedType.map((type) => BED_DISPOSITION[type]),\n bedTypes,\n doubleBedWidth: doubleBedWidth && bedTypes.includes(DOUBLE) ? `${doubleBedWidth} ${UNIT[unit].bed}` : undefined,\n ...parseBoards({ currency, fees, hotelCurrency, rates, taxes }),\n description,\n images: photos?.map(({ photoAltDescription: alt, urlLarge: large, urlMediumRect: thumbnail } = {}) => ({\n alt,\n large,\n thumbnail,\n })),\n name,\n nightsDeal,\n maxOccupation,\n media: url3D || urlVideo ? { url3D, urlVideo } : undefined,\n occupation: maxOccupation\n ? [\n adults > 0 ? { type: 2, amount: adults } : undefined,\n children > 0 ? { type: 3, ages: [minRange, maxRange], amount: children } : undefined,\n babies > 0 ? { type: 4, amount: babies } : undefined,\n ].filter((item) => !!item)\n : [],\n size: size ? `${size} ${UNIT[unit].size}` : undefined,\n };\n },\n );\n"],"mappings":"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"}
@@ -15,6 +15,7 @@ const {
15
15
  const getOccupationSuggestions = _ref => {
16
16
  let {
17
17
  infantAge,
18
+ maxRooms,
18
19
  occupation = [],
19
20
  ...others
20
21
  } = _ref;
@@ -175,7 +176,12 @@ const getOccupationSuggestions = _ref => {
175
176
  hasFees,
176
177
  hasTaxes
177
178
  }] = rooms || [];
178
- return suggestions.map(function () {
179
+ return suggestions.filter(function () {
180
+ let {
181
+ rooms
182
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
183
+ return rooms.length <= maxRooms && adults >= rooms.length;
184
+ }).map(function () {
179
185
  let {
180
186
  price,
181
187
  rooms
@@ -186,7 +192,7 @@ const getOccupationSuggestions = _ref => {
186
192
  price,
187
193
  rooms
188
194
  };
189
- }).sort((a, b) => a.price - b.price);
195
+ }).sort((a, b) => a.price - b.price).slice(0, 3);
190
196
  };
191
197
  exports.getOccupationSuggestions = getOccupationSuggestions;
192
198
  //# sourceMappingURL=getOccupationSuggestions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getOccupationSuggestions.js","names":["_compareSuggestions","require","_getRooms","_shared__","ADULT","CHILD","GUEST","TYPE_OCCUPATION","getOccupationSuggestions","_ref","infantAge","occupation","others","isGuest","flat","some","type","arguments","length","undefined","adults","reduce","total","amount","children","ages","agesChildren","filter","totalAges","ageBaby","find","age","rooms","getRooms","suggestions","search","_ref2","availability","babies","startIndex","suggestion","compareSuggestions","initAges","push","map","name","Array","fill","pop","price","index","room","totalRooms","id","totalAvailability","occupied","hasFees","hasTaxes","sort","a","b","exports"],"sources":["../../../../src/services/Rates/helpers/getOccupationSuggestions.js"],"sourcesContent":["import { compareSuggestions } from './compareSuggestions';\nimport { getRooms } from './getRooms';\nimport { TYPE_OCCUPATION } from '../../../components/__shared__';\n\nconst { ADULT, CHILD, GUEST } = TYPE_OCCUPATION;\n\nexport const getOccupationSuggestions = ({ infantAge, occupation = [], ...others }) => {\n const isGuest = occupation.flat().some(({ type } = {}) => type === GUEST);\n const adults = occupation.flat().reduce((total, { amount, type } = {}) => total + (type !== CHILD ? amount : 0), 0);\n const { amount: children, ages: agesChildren } = occupation\n .flat()\n .filter(({ type } = {}) => type === CHILD)\n .reduce(\n ({ ages: totalAges, amount: total } = {}, { ages, amount } = {}) => ({\n amount: total + amount,\n ages: [...totalAges, ...ages],\n }),\n { amount: 0, ages: [] },\n );\n const ageBaby = agesChildren.find((age) => age < infantAge);\n const rooms = getRooms(others);\n const suggestions = [];\n\n const search = ({ adults, availability, babies, children, rooms, startIndex = 0, suggestion = [] }) => {\n if (\n adults === 0 &&\n children === 0 &&\n babies === 0 &&\n availability >= 0 &&\n !compareSuggestions({ suggestion, suggestions })\n ) {\n const initAges = [...agesChildren].filter((age) => age !== ageBaby);\n suggestions.push({\n rooms: suggestion.map(({ adults, babies, children, name } = {}) => {\n const occupation = [];\n if (adults > 0) {\n occupation.push({ ages: Array(adults).fill(undefined), amount: adults, type: isGuest ? GUEST : ADULT });\n }\n\n const ages = Array(children)\n .fill(undefined)\n .map(() => initAges.pop());\n if (babies > 0) ages.push(ageBaby);\n if (children + babies > 0) occupation.push({ ages, amount: children + babies, type: CHILD });\n\n return { name, occupation };\n }),\n price: suggestion.reduce((total, { price } = {}) => total + price, 0),\n suggestion,\n });\n\n return;\n }\n\n for (let index = startIndex; index < rooms.length; index++) {\n const room = rooms[index];\n if (room.adults <= adults && room.children <= children && room.babies <= babies) {\n const totalRooms = rooms.filter(({ id } = {}) => id === room.id).length;\n const totalAvailability = rooms\n .filter(({ id } = {}) => id === room.id)\n .reduce((total, { availability } = {}) => total + availability, 0);\n const occupied = suggestion.filter(({ id } = {}) => id === room.id).length;\n\n search({\n adults: adults - room.adults,\n availability: totalAvailability - totalRooms - occupied,\n babies: babies - room.babies,\n children: children - room.children,\n rooms,\n startIndex: index + 1,\n suggestion: [\n ...suggestion,\n {\n id: room.id,\n adults: room.adults,\n children: room.children,\n babies: room.babies,\n name: room.name,\n price: room.price,\n },\n ],\n });\n }\n }\n };\n\n search({ adults, babies: ageBaby >= 0 ? 1 : 0, children: ageBaby >= 0 ? children - 1 : children, rooms });\n\n if (suggestions.length === 0) {\n search({\n adults: ageBaby >= 0 ? adults + children - 1 : adults + children,\n babies: ageBaby >= 0 ? 1 : 0,\n children: 0,\n rooms,\n });\n }\n\n const [{ hasFees, hasTaxes }] = rooms || [];\n\n return suggestions\n .map(({ price, rooms } = {}) => ({ hasFees, hasTaxes, price, rooms }))\n .sort((a, b) => a.price - b.price);\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"getOccupationSuggestions.js","names":["_compareSuggestions","require","_getRooms","_shared__","ADULT","CHILD","GUEST","TYPE_OCCUPATION","getOccupationSuggestions","_ref","infantAge","maxRooms","occupation","others","isGuest","flat","some","type","arguments","length","undefined","adults","reduce","total","amount","children","ages","agesChildren","filter","totalAges","ageBaby","find","age","rooms","getRooms","suggestions","search","_ref2","availability","babies","startIndex","suggestion","compareSuggestions","initAges","push","map","name","Array","fill","pop","price","index","room","totalRooms","id","totalAvailability","occupied","hasFees","hasTaxes","sort","a","b","slice","exports"],"sources":["../../../../src/services/Rates/helpers/getOccupationSuggestions.js"],"sourcesContent":["import { compareSuggestions } from './compareSuggestions';\nimport { getRooms } from './getRooms';\nimport { TYPE_OCCUPATION } from '../../../components/__shared__';\n\nconst { ADULT, CHILD, GUEST } = TYPE_OCCUPATION;\n\nexport const getOccupationSuggestions = ({ infantAge, maxRooms, occupation = [], ...others }) => {\n const isGuest = occupation.flat().some(({ type } = {}) => type === GUEST);\n const adults = occupation.flat().reduce((total, { amount, type } = {}) => total + (type !== CHILD ? amount : 0), 0);\n const { amount: children, ages: agesChildren } = occupation\n .flat()\n .filter(({ type } = {}) => type === CHILD)\n .reduce(\n ({ ages: totalAges, amount: total } = {}, { ages, amount } = {}) => ({\n amount: total + amount,\n ages: [...totalAges, ...ages],\n }),\n { amount: 0, ages: [] },\n );\n const ageBaby = agesChildren.find((age) => age < infantAge);\n const rooms = getRooms(others);\n const suggestions = [];\n\n const search = ({ adults, availability, babies, children, rooms, startIndex = 0, suggestion = [] }) => {\n if (\n adults === 0 &&\n children === 0 &&\n babies === 0 &&\n availability >= 0 &&\n !compareSuggestions({ suggestion, suggestions })\n ) {\n const initAges = [...agesChildren].filter((age) => age !== ageBaby);\n suggestions.push({\n rooms: suggestion.map(({ adults, babies, children, name } = {}) => {\n const occupation = [];\n if (adults > 0) {\n occupation.push({ ages: Array(adults).fill(undefined), amount: adults, type: isGuest ? GUEST : ADULT });\n }\n\n const ages = Array(children)\n .fill(undefined)\n .map(() => initAges.pop());\n if (babies > 0) ages.push(ageBaby);\n if (children + babies > 0) occupation.push({ ages, amount: children + babies, type: CHILD });\n\n return { name, occupation };\n }),\n price: suggestion.reduce((total, { price } = {}) => total + price, 0),\n suggestion,\n });\n\n return;\n }\n\n for (let index = startIndex; index < rooms.length; index++) {\n const room = rooms[index];\n if (room.adults <= adults && room.children <= children && room.babies <= babies) {\n const totalRooms = rooms.filter(({ id } = {}) => id === room.id).length;\n const totalAvailability = rooms\n .filter(({ id } = {}) => id === room.id)\n .reduce((total, { availability } = {}) => total + availability, 0);\n const occupied = suggestion.filter(({ id } = {}) => id === room.id).length;\n\n search({\n adults: adults - room.adults,\n availability: totalAvailability - totalRooms - occupied,\n babies: babies - room.babies,\n children: children - room.children,\n rooms,\n startIndex: index + 1,\n suggestion: [\n ...suggestion,\n {\n id: room.id,\n adults: room.adults,\n children: room.children,\n babies: room.babies,\n name: room.name,\n price: room.price,\n },\n ],\n });\n }\n }\n };\n\n search({ adults, babies: ageBaby >= 0 ? 1 : 0, children: ageBaby >= 0 ? children - 1 : children, rooms });\n\n if (suggestions.length === 0) {\n search({\n adults: ageBaby >= 0 ? adults + children - 1 : adults + children,\n babies: ageBaby >= 0 ? 1 : 0,\n children: 0,\n rooms,\n });\n }\n\n const [{ hasFees, hasTaxes }] = rooms || [];\n\n return suggestions\n .filter(({ rooms } = {}) => rooms.length <= maxRooms && adults >= rooms.length)\n .map(({ price, rooms } = {}) => ({ hasFees, hasTaxes, price, rooms }))\n .sort((a, b) => a.price - b.price)\n .slice(0, 3);\n};\n"],"mappings":"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"}
@@ -81,7 +81,8 @@ const parseUnavailability = function () {
81
81
  occupation = (0, _getOccupationSuggestions.getOccupationSuggestions)({
82
82
  infantAge,
83
83
  roomTypes,
84
- occupation: propOccupation
84
+ occupation: propOccupation,
85
+ ...response
85
86
  });
86
87
  }
87
88
  const [{
@@ -1 +1 @@
1
- {"version":3,"file":"parseUnavailability.js","names":["_getCalendarSuggestions","require","_getDisabledDates","_getMinStayDates","_getOccupationSuggestions","_getTaxesType","_Core","BY_CHECK_IN","parseUnavailability","availabilitySuggestions","availability","firstChildInterval","hotelEmail","email","hotelPhone","phone","messages","availabilityMessage","noAvailabilityMessage","occupation","propOccupation","roomTypes","showLocalTaxes","fees","vatIncluded","taxes","response","arguments","length","undefined","calendar","disabledDates","description","minStayDates","minStayType","hotels","_availability$hotelSu","minimumStayConfig","config","MIN_STAY_TYPE","CHECK_IN","STAY","getCalendarSuggestions","getDisabledDates","getMinStayDates","noDispoMessage","hotelSuggestions","map","_ref","distanceMessage","distance","idtokenprovider","id","location","name","photo","rates","price","url","rest","split","features","images","join","notOccupationRequested","infantAge","lowerBound","getOccupationSuggestions","hasFees","hasTaxes","hotel","suggestions","taxesType","getTaxesType","exports"],"sources":["../../../../src/services/Rates/helpers/parseUnavailability.js"],"sourcesContent":["import { getCalendarSuggestions } from './getCalendarSuggestions';\nimport { getDisabledDates } from './getDisabledDates';\nimport { getMinStayDates } from './getMinStayDates';\nimport { getOccupationSuggestions } from './getOccupationSuggestions';\nimport { getTaxesType } from './getTaxesType';\nimport { MIN_STAY_TYPE } from '../../../Core.constants';\n\nconst BY_CHECK_IN = 'BY_CHECKIN';\n\nexport const parseUnavailability = ({\n availabilitySuggestions: availability,\n firstChildInterval,\n hotelEmail: email,\n hotelPhone: phone,\n messages: { availabilityMessage, noAvailabilityMessage } = {},\n occupation: propOccupation,\n roomTypes,\n showLocalTaxes: fees,\n vatIncluded: taxes,\n ...response\n} = {}) => {\n let calendar;\n let disabledDates;\n let description;\n let minStayDates;\n let minStayType;\n let occupation;\n let hotels;\n\n if (availability !== null) {\n const { calendar: { minimumStayConfig: config = BY_CHECK_IN } = {} } = availability;\n\n minStayType = config === BY_CHECK_IN ? MIN_STAY_TYPE.CHECK_IN : MIN_STAY_TYPE.STAY;\n calendar = getCalendarSuggestions({ ...availability, ...response, minStayType });\n disabledDates = getDisabledDates(availability);\n minStayDates = getMinStayDates(availability);\n description = noAvailabilityMessage?.noDispoMessage;\n hotels = availability?.hotelSuggestions?.map(\n ({\n distanceMessage: distance,\n idtokenprovider: id,\n location,\n name,\n photo,\n rates: [{ price = 0 } = {}] = [],\n url,\n }) => {\n const [, ...rest] = name.split(' ');\n\n return { features: { distance, location, url }, id, images: [photo], name: rest.join(' '), price: price / 100 };\n },\n );\n }\n if (availabilityMessage !== null && availabilityMessage.notOccupationRequested != null) {\n const infantAge = firstChildInterval?.lowerBound;\n occupation = getOccupationSuggestions({ infantAge, roomTypes, occupation: propOccupation });\n }\n\n const [{ hasFees, hasTaxes } = {}] = occupation || [];\n\n return hotels || calendar || occupation\n ? {\n calendar: { disabledDates, minStayDates, minStayType },\n hotel: { email, phone },\n hotels,\n suggestions: { calendar, description, occupation },\n taxesType: getTaxesType({ fees, hasFees, hasTaxes, taxes }),\n }\n : undefined;\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"parseUnavailability.js","names":["_getCalendarSuggestions","require","_getDisabledDates","_getMinStayDates","_getOccupationSuggestions","_getTaxesType","_Core","BY_CHECK_IN","parseUnavailability","availabilitySuggestions","availability","firstChildInterval","hotelEmail","email","hotelPhone","phone","messages","availabilityMessage","noAvailabilityMessage","occupation","propOccupation","roomTypes","showLocalTaxes","fees","vatIncluded","taxes","response","arguments","length","undefined","calendar","disabledDates","description","minStayDates","minStayType","hotels","_availability$hotelSu","minimumStayConfig","config","MIN_STAY_TYPE","CHECK_IN","STAY","getCalendarSuggestions","getDisabledDates","getMinStayDates","noDispoMessage","hotelSuggestions","map","_ref","distanceMessage","distance","idtokenprovider","id","location","name","photo","rates","price","url","rest","split","features","images","join","notOccupationRequested","infantAge","lowerBound","getOccupationSuggestions","hasFees","hasTaxes","hotel","suggestions","taxesType","getTaxesType","exports"],"sources":["../../../../src/services/Rates/helpers/parseUnavailability.js"],"sourcesContent":["import { getCalendarSuggestions } from './getCalendarSuggestions';\nimport { getDisabledDates } from './getDisabledDates';\nimport { getMinStayDates } from './getMinStayDates';\nimport { getOccupationSuggestions } from './getOccupationSuggestions';\nimport { getTaxesType } from './getTaxesType';\nimport { MIN_STAY_TYPE } from '../../../Core.constants';\n\nconst BY_CHECK_IN = 'BY_CHECKIN';\n\nexport const parseUnavailability = ({\n availabilitySuggestions: availability,\n firstChildInterval,\n hotelEmail: email,\n hotelPhone: phone,\n messages: { availabilityMessage, noAvailabilityMessage } = {},\n occupation: propOccupation,\n roomTypes,\n showLocalTaxes: fees,\n vatIncluded: taxes,\n ...response\n} = {}) => {\n let calendar;\n let disabledDates;\n let description;\n let minStayDates;\n let minStayType;\n let occupation;\n let hotels;\n\n if (availability !== null) {\n const { calendar: { minimumStayConfig: config = BY_CHECK_IN } = {} } = availability;\n\n minStayType = config === BY_CHECK_IN ? MIN_STAY_TYPE.CHECK_IN : MIN_STAY_TYPE.STAY;\n calendar = getCalendarSuggestions({ ...availability, ...response, minStayType });\n disabledDates = getDisabledDates(availability);\n minStayDates = getMinStayDates(availability);\n description = noAvailabilityMessage?.noDispoMessage;\n hotels = availability?.hotelSuggestions?.map(\n ({\n distanceMessage: distance,\n idtokenprovider: id,\n location,\n name,\n photo,\n rates: [{ price = 0 } = {}] = [],\n url,\n }) => {\n const [, ...rest] = name.split(' ');\n\n return { features: { distance, location, url }, id, images: [photo], name: rest.join(' '), price: price / 100 };\n },\n );\n }\n if (availabilityMessage !== null && availabilityMessage.notOccupationRequested != null) {\n const infantAge = firstChildInterval?.lowerBound;\n occupation = getOccupationSuggestions({ infantAge, roomTypes, occupation: propOccupation, ...response });\n }\n\n const [{ hasFees, hasTaxes } = {}] = occupation || [];\n\n return hotels || calendar || occupation\n ? {\n calendar: { disabledDates, minStayDates, minStayType },\n hotel: { email, phone },\n hotels,\n suggestions: { calendar, description, occupation },\n taxesType: getTaxesType({ fees, hasFees, hasTaxes, taxes }),\n }\n : undefined;\n};\n"],"mappings":"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"}
@@ -71,7 +71,8 @@ const rates = function () {
71
71
  ...response,
72
72
  checkIn: checkin,
73
73
  nights,
74
- occupation
74
+ occupation,
75
+ ...others
75
76
  });
76
77
  if (unavailability) return reject(unavailability);
77
78
  const {
@@ -1 +1 @@
1
- {"version":3,"file":"rates.js","names":["_dataSources","require","_services","_jsSha","_interopRequireDefault","_constants","_helpers","obj","__esModule","default","FEATURE","PESTANA","rates","session","authorization","clubDiscount","locale","occupation","userCurrency","others","arguments","length","undefined","Promise","resolve","reject","_club$clubLogin","idtokenprovider","id","checkin","nights","club","authentication","type","rest","language","split","params","Object","entries","applyClubDiscount","cid","sha1","concat","KEY_HASH","currency","accessClubToken","lang","parseExternalToken","filter","_ref","value","response","request","hostname","process","env","SERVICE_BOOKING","endpoint","URLSearchParams","headers","catch","result","error","unavailability","parseUnavailability","checkIn","currencyCode","hotelCurrency","firstChildInterval","hotelverse","messages","availabilityMessage","increments","showLocalTaxes","fees","userCountry","country","vatIncluded","taxes","ServiceCurrency","exchange","infantAge","lowerBound","items","getItems","boards","hasFees","hasTaxes","clubConditions","ServiceFeatures","get","EXTERNAL","URL","DEFAULT_LANGUAGE","externalSignout","TYPE","clubLogin","status","VALID","taxesType","getTaxesType","tracking","parseTracking","exports"],"sources":["../../../src/services/Rates/rates.js"],"sourcesContent":["/* eslint-disable no-async-promise-executor */\nimport { request } from '@mirai/data-sources';\nimport { ServiceCurrency, ServiceFeatures } from '@mirai/services';\nimport sha1 from 'js-sha1';\n\nimport { DEFAULT_LANGUAGE, EXTERNAL, KEY_HASH, VALID } from './constants';\nimport { getItems, getTaxesType, parseExternalToken, parseTracking, parseUnavailability } from './helpers';\n\nconst FEATURE = { PESTANA: 'pestana' };\n\nexport const rates = ({\n session: { authorization } = {},\n clubDiscount,\n locale,\n occupation,\n userCurrency,\n ...others\n} = {}) =>\n new Promise(async (resolve, reject) => {\n const {\n idtokenprovider: id,\n checkin,\n nights,\n club: { authentication: { type } = {} } = {},\n ...rest\n } = others || {};\n\n const language = locale?.split('-')[0];\n\n const params = Object.entries({\n applyClubDiscount: clubDiscount,\n checkin,\n cid: sha1(`${KEY_HASH}-${id}-${checkin}-${nights}`),\n currency: userCurrency,\n idtokenprovider: id,\n nights,\n ...rest,\n accessClubToken: authorization,\n lang: language,\n ...parseExternalToken(rest),\n }).filter(([, value]) => value !== undefined);\n\n const response = await request({\n hostname: process.env.SERVICE_BOOKING,\n endpoint: `/request_availability_v2.json?${new URLSearchParams(params)}`,\n headers: { 'Content-Type': undefined, 'X-Requested-With': undefined },\n }).catch(reject);\n\n if (!response || response.result === 'EXCEPTION') return reject({ error: 'Upss, something bad happened!' }); //TODO\n\n const unavailability = parseUnavailability({ ...response, checkIn: checkin, nights, occupation });\n if (unavailability) return reject(unavailability);\n\n const {\n club,\n currencyCode: hotelCurrency,\n firstChildInterval = {},\n hotelverse,\n messages: { availabilityMessage: { increments } = {} } = {},\n showLocalTaxes: fees,\n userCountry: country,\n vatIncluded: taxes,\n } = response;\n\n const currency = userCurrency || hotelCurrency;\n await ServiceCurrency.exchange(currency);\n\n const infantAge = firstChildInterval?.lowerBound;\n const items = getItems({ ...response, currency });\n\n const [{ boards: [{ fees: hasFees, taxes: hasTaxes } = {}] = [] } = {}] = items || [];\n\n resolve({\n clubConditions: ServiceFeatures.get(FEATURE.PESTANA, id)\n ? EXTERNAL.URL[language] || EXTERNAL.URL[DEFAULT_LANGUAGE]\n : undefined,\n country,\n currency: hotelCurrency,\n externalSignout: authorization && type === EXTERNAL.TYPE && club?.clubLogin?.status !== VALID,\n hotelverse,\n increments: increments || undefined,\n infantAge: infantAge !== null ? infantAge : undefined,\n items,\n taxesType: getTaxesType({ fees, hasFees, hasTaxes, taxes }),\n tracking: parseTracking(response),\n });\n });\n"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAC,sBAAA,CAAAH,OAAA;AAEA,IAAAI,UAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAL,OAAA;AAA2G,SAAAG,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAN3G;;AAQA,MAAMG,OAAO,GAAG;EAAEC,OAAO,EAAE;AAAU,CAAC;AAE/B,MAAMC,KAAK,GAAG,SAAAA,CAAA;EAAA,IAAC;IACpBC,OAAO,EAAE;MAAEC;IAAc,CAAC,GAAG,CAAC,CAAC;IAC/BC,YAAY;IACZC,MAAM;IACNC,UAAU;IACVC,YAAY;IACZ,GAAGC;EACL,CAAC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAAA,OACJ,IAAIG,OAAO,CAAC,OAAOC,OAAO,EAAEC,MAAM,KAAK;IAAA,IAAAC,eAAA;IACrC,MAAM;MACJC,eAAe,EAAEC,EAAE;MACnBC,OAAO;MACPC,MAAM;MACNC,IAAI,EAAE;QAAEC,cAAc,EAAE;UAAEC;QAAK,CAAC,GAAG,CAAC;MAAE,CAAC,GAAG,CAAC,CAAC;MAC5C,GAAGC;IACL,CAAC,GAAGf,MAAM,IAAI,CAAC,CAAC;IAEhB,MAAMgB,QAAQ,GAAGnB,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEoB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAEtC,MAAMC,MAAM,GAAGC,MAAM,CAACC,OAAO,CAAC;MAC5BC,iBAAiB,EAAEzB,YAAY;MAC/Bc,OAAO;MACPY,GAAG,EAAE,IAAAC,cAAI,KAAAC,MAAA,CAAIC,mBAAQ,OAAAD,MAAA,CAAIf,EAAE,OAAAe,MAAA,CAAId,OAAO,OAAAc,MAAA,CAAIb,MAAM,CAAE,CAAC;MACnDe,QAAQ,EAAE3B,YAAY;MACtBS,eAAe,EAAEC,EAAE;MACnBE,MAAM;MACN,GAAGI,IAAI;MACPY,eAAe,EAAEhC,aAAa;MAC9BiC,IAAI,EAAEZ,QAAQ;MACd,GAAG,IAAAa,2BAAkB,EAACd,IAAI;IAC5B,CAAC,CAAC,CAACe,MAAM,CAACC,IAAA;MAAA,IAAC,GAAGC,KAAK,CAAC,GAAAD,IAAA;MAAA,OAAKC,KAAK,KAAK7B,SAAS;IAAA,EAAC;IAE7C,MAAM8B,QAAQ,GAAG,MAAM,IAAAC,oBAAO,EAAC;MAC7BC,QAAQ,EAAEC,OAAO,CAACC,GAAG,CAACC,eAAe;MACrCC,QAAQ,mCAAAf,MAAA,CAAmC,IAAIgB,eAAe,CAACtB,MAAM,CAAC,CAAE;MACxEuB,OAAO,EAAE;QAAE,cAAc,EAAEtC,SAAS;QAAE,kBAAkB,EAAEA;MAAU;IACtE,CAAC,CAAC,CAACuC,KAAK,CAACpC,MAAM,CAAC;IAEhB,IAAI,CAAC2B,QAAQ,IAAIA,QAAQ,CAACU,MAAM,KAAK,WAAW,EAAE,OAAOrC,MAAM,CAAC;MAAEsC,KAAK,EAAE;IAAgC,CAAC,CAAC,CAAC,CAAC;;IAE7G,MAAMC,cAAc,GAAG,IAAAC,4BAAmB,EAAC;MAAE,GAAGb,QAAQ;MAAEc,OAAO,EAAErC,OAAO;MAAEC,MAAM;MAAEb;IAAW,CAAC,CAAC;IACjG,IAAI+C,cAAc,EAAE,OAAOvC,MAAM,CAACuC,cAAc,CAAC;IAEjD,MAAM;MACJjC,IAAI;MACJoC,YAAY,EAAEC,aAAa;MAC3BC,kBAAkB,GAAG,CAAC,CAAC;MACvBC,UAAU;MACVC,QAAQ,EAAE;QAAEC,mBAAmB,EAAE;UAAEC;QAAW,CAAC,GAAG,CAAC;MAAE,CAAC,GAAG,CAAC,CAAC;MAC3DC,cAAc,EAAEC,IAAI;MACpBC,WAAW,EAAEC,OAAO;MACpBC,WAAW,EAAEC;IACf,CAAC,GAAG3B,QAAQ;IAEZ,MAAMP,QAAQ,GAAG3B,YAAY,IAAIkD,aAAa;IAC9C,MAAMY,yBAAe,CAACC,QAAQ,CAACpC,QAAQ,CAAC;IAExC,MAAMqC,SAAS,GAAGb,kBAAkB,aAAlBA,kBAAkB,uBAAlBA,kBAAkB,CAAEc,UAAU;IAChD,MAAMC,KAAK,GAAG,IAAAC,iBAAQ,EAAC;MAAE,GAAGjC,QAAQ;MAAEP;IAAS,CAAC,CAAC;IAEjD,MAAM,CAAC;MAAEyC,MAAM,EAAE,CAAC;QAAEX,IAAI,EAAEY,OAAO;QAAER,KAAK,EAAES;MAAS,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;IAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAGJ,KAAK,IAAI,EAAE;IAErF5D,OAAO,CAAC;MACNiE,cAAc,EAAEC,yBAAe,CAACC,GAAG,CAACjF,OAAO,CAACC,OAAO,EAAEiB,EAAE,CAAC,GACpDgE,mBAAQ,CAACC,GAAG,CAAC1D,QAAQ,CAAC,IAAIyD,mBAAQ,CAACC,GAAG,CAACC,2BAAgB,CAAC,GACxDxE,SAAS;MACbuD,OAAO;MACPhC,QAAQ,EAAEuB,aAAa;MACvB2B,eAAe,EAAEjF,aAAa,IAAImB,IAAI,KAAK2D,mBAAQ,CAACI,IAAI,IAAI,CAAAjE,IAAI,aAAJA,IAAI,wBAAAL,eAAA,GAAJK,IAAI,CAAEkE,SAAS,cAAAvE,eAAA,uBAAfA,eAAA,CAAiBwE,MAAM,MAAKC,gBAAK;MAC7F7B,UAAU;MACVG,UAAU,EAAEA,UAAU,IAAInD,SAAS;MACnC4D,SAAS,EAAEA,SAAS,KAAK,IAAI,GAAGA,SAAS,GAAG5D,SAAS;MACrD8D,KAAK;MACLgB,SAAS,EAAE,IAAAC,qBAAY,EAAC;QAAE1B,IAAI;QAAEY,OAAO;QAAEC,QAAQ;QAAET;MAAM,CAAC,CAAC;MAC3DuB,QAAQ,EAAE,IAAAC,sBAAa,EAACnD,QAAQ;IAClC,CAAC,CAAC;EACJ,CAAC,CAAC;AAAA;AAACoD,OAAA,CAAA5F,KAAA,GAAAA,KAAA"}
1
+ {"version":3,"file":"rates.js","names":["_dataSources","require","_services","_jsSha","_interopRequireDefault","_constants","_helpers","obj","__esModule","default","FEATURE","PESTANA","rates","session","authorization","clubDiscount","locale","occupation","userCurrency","others","arguments","length","undefined","Promise","resolve","reject","_club$clubLogin","idtokenprovider","id","checkin","nights","club","authentication","type","rest","language","split","params","Object","entries","applyClubDiscount","cid","sha1","concat","KEY_HASH","currency","accessClubToken","lang","parseExternalToken","filter","_ref","value","response","request","hostname","process","env","SERVICE_BOOKING","endpoint","URLSearchParams","headers","catch","result","error","unavailability","parseUnavailability","checkIn","currencyCode","hotelCurrency","firstChildInterval","hotelverse","messages","availabilityMessage","increments","showLocalTaxes","fees","userCountry","country","vatIncluded","taxes","ServiceCurrency","exchange","infantAge","lowerBound","items","getItems","boards","hasFees","hasTaxes","clubConditions","ServiceFeatures","get","EXTERNAL","URL","DEFAULT_LANGUAGE","externalSignout","TYPE","clubLogin","status","VALID","taxesType","getTaxesType","tracking","parseTracking","exports"],"sources":["../../../src/services/Rates/rates.js"],"sourcesContent":["/* eslint-disable no-async-promise-executor */\nimport { request } from '@mirai/data-sources';\nimport { ServiceCurrency, ServiceFeatures } from '@mirai/services';\nimport sha1 from 'js-sha1';\n\nimport { DEFAULT_LANGUAGE, EXTERNAL, KEY_HASH, VALID } from './constants';\nimport { getItems, getTaxesType, parseExternalToken, parseTracking, parseUnavailability } from './helpers';\n\nconst FEATURE = { PESTANA: 'pestana' };\n\nexport const rates = ({\n session: { authorization } = {},\n clubDiscount,\n locale,\n occupation,\n userCurrency,\n ...others\n} = {}) =>\n new Promise(async (resolve, reject) => {\n const {\n idtokenprovider: id,\n checkin,\n nights,\n club: { authentication: { type } = {} } = {},\n ...rest\n } = others || {};\n\n const language = locale?.split('-')[0];\n\n const params = Object.entries({\n applyClubDiscount: clubDiscount,\n checkin,\n cid: sha1(`${KEY_HASH}-${id}-${checkin}-${nights}`),\n currency: userCurrency,\n idtokenprovider: id,\n nights,\n ...rest,\n accessClubToken: authorization,\n lang: language,\n ...parseExternalToken(rest),\n }).filter(([, value]) => value !== undefined);\n\n const response = await request({\n hostname: process.env.SERVICE_BOOKING,\n endpoint: `/request_availability_v2.json?${new URLSearchParams(params)}`,\n headers: { 'Content-Type': undefined, 'X-Requested-With': undefined },\n }).catch(reject);\n\n if (!response || response.result === 'EXCEPTION') return reject({ error: 'Upss, something bad happened!' }); //TODO\n\n const unavailability = parseUnavailability({ ...response, checkIn: checkin, nights, occupation, ...others });\n if (unavailability) return reject(unavailability);\n\n const {\n club,\n currencyCode: hotelCurrency,\n firstChildInterval = {},\n hotelverse,\n messages: { availabilityMessage: { increments } = {} } = {},\n showLocalTaxes: fees,\n userCountry: country,\n vatIncluded: taxes,\n } = response;\n\n const currency = userCurrency || hotelCurrency;\n await ServiceCurrency.exchange(currency);\n\n const infantAge = firstChildInterval?.lowerBound;\n const items = getItems({ ...response, currency });\n\n const [{ boards: [{ fees: hasFees, taxes: hasTaxes } = {}] = [] } = {}] = items || [];\n\n resolve({\n clubConditions: ServiceFeatures.get(FEATURE.PESTANA, id)\n ? EXTERNAL.URL[language] || EXTERNAL.URL[DEFAULT_LANGUAGE]\n : undefined,\n country,\n currency: hotelCurrency,\n externalSignout: authorization && type === EXTERNAL.TYPE && club?.clubLogin?.status !== VALID,\n hotelverse,\n increments: increments || undefined,\n infantAge: infantAge !== null ? infantAge : undefined,\n items,\n taxesType: getTaxesType({ fees, hasFees, hasTaxes, taxes }),\n tracking: parseTracking(response),\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.3.207",
3
+ "version": "0.3.208",
4
4
  "source": "src/index.js",
5
5
  "repository": "https://gitlab.com/miraicorp/dev/frontend/core",
6
6
  "author": "JΛVI <hello@soyjavi.com>",