@mirai/core 0.3.154 → 0.3.156

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 (34) hide show
  1. package/build/Core.constants.js +8 -4
  2. package/build/Core.constants.js.map +1 -1
  3. package/build/components/Rates/Rates.Footer.js +1 -1
  4. package/build/components/Rates/Rates.Footer.js.map +1 -1
  5. package/build/components/Rates/Rates.Unavailability.js +1 -1
  6. package/build/components/Rates/Rates.Unavailability.js.map +1 -1
  7. package/build/components/Rates/Rates.l10n.js +16 -4
  8. package/build/components/Rates/Rates.l10n.js.map +1 -1
  9. package/build/components/Rates/components/Item/Item.Summary.js +1 -1
  10. package/build/components/Rates/components/Item/Item.Summary.js.map +1 -1
  11. package/build/components/Rates/components/Item/components/PriceDetails/helpers/getPrices.js +2 -2
  12. package/build/components/Rates/components/Item/components/PriceDetails/helpers/getPrices.js.map +1 -1
  13. package/build/components/Rates/components/ModalExtras/ModalExtras.js +4 -2
  14. package/build/components/Rates/components/ModalExtras/ModalExtras.js.map +1 -1
  15. package/build/components/Rates/components/ModalExtras/ModalExtras.module.css +4 -0
  16. package/build/services/Rates/__tests__/__mocks__/rates-response-cancel-types.json +3 -3
  17. package/build/services/Rates/__tests__/__mocks__/rates-response-no-taxes-no-local.json +3 -3
  18. package/build/services/Rates/__tests__/__mocks__/rates-response-no-taxes.json +3 -3
  19. package/build/services/Rates/__tests__/__mocks__/rates-response.json +3 -3
  20. package/build/services/Rates/helpers/getItems.js +113 -0
  21. package/build/services/Rates/helpers/getItems.js.map +1 -0
  22. package/build/services/Rates/helpers/getOccupationSuggestions.js +6 -0
  23. package/build/services/Rates/helpers/getOccupationSuggestions.js.map +1 -1
  24. package/build/services/Rates/helpers/getRooms.js +17 -9
  25. package/build/services/Rates/helpers/getRooms.js.map +1 -1
  26. package/build/services/Rates/helpers/getTaxesType.js +13 -3
  27. package/build/services/Rates/helpers/getTaxesType.js.map +1 -1
  28. package/build/services/Rates/helpers/index.js +11 -0
  29. package/build/services/Rates/helpers/index.js.map +1 -1
  30. package/build/services/Rates/helpers/parseUnavailability.js +12 -1
  31. package/build/services/Rates/helpers/parseUnavailability.js.map +1 -1
  32. package/build/services/Rates/rates.js +22 -95
  33. package/build/services/Rates/rates.js.map +1 -1
  34. package/package.json +1 -1
@@ -319,7 +319,7 @@
319
319
  "size": "25 m²"
320
320
  }
321
321
  ],
322
- "taxesType": 3,
322
+ "taxesType": 6,
323
323
  "tracking": {
324
324
  "country": "ES",
325
325
  "hotelInfo": {
@@ -470,7 +470,7 @@
470
470
  "sortedKeysOccupations": ["334026b0"]
471
471
  }
472
472
  ],
473
- "status": "AVAILABILITY",
474
- "taxesIncluded": true
473
+ "taxesIncluded": true,
474
+ "status": "AVAILABILITY"
475
475
  }
476
476
  }
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getItems = void 0;
7
+ var _parseAmenities = require("./parseAmenities");
8
+ var _parseBoards = require("./parseBoards");
9
+ var _constants = require("../constants");
10
+ const {
11
+ DOUBLE,
12
+ SINGLE
13
+ } = _constants.BED_TYPE;
14
+ const getItems = function () {
15
+ let {
16
+ currency,
17
+ currencyCode: hotelCurrency,
18
+ measureUnit: unit,
19
+ roomTypes,
20
+ showLocalTaxes: fees,
21
+ vatIncluded: taxes
22
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
23
+ return Object.values(roomTypes).map(function () {
24
+ let {
25
+ amountAvailable: availability,
26
+ name,
27
+ newInfoRoom: info = {},
28
+ occupationOptions = {}
29
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
30
+ const {
31
+ description,
32
+ roomTypeInfo: {
33
+ bedDistributions: bedType = [],
34
+ galleryMedia: {
35
+ url3D,
36
+ video: urlVideo
37
+ } = {},
38
+ photos,
39
+ roomSize: size
40
+ } = {}
41
+ } = info;
42
+ const {
43
+ occupationQuantities: {
44
+ numFirstRangeChildren: minRange = 0,
45
+ numSecondRangeChildren: maxRange = 0,
46
+ numAdults: adults = 0,
47
+ numBabies: babies = 0,
48
+ totalChildren: children = 0
49
+ } = {},
50
+ posibilities: [{
51
+ nights: nightsDeal
52
+ } = {}] = [],
53
+ rates
54
+ } = Object.values(occupationOptions)[0] || {};
55
+ const maxOccupation = adults + children;
56
+ return {
57
+ amenities: (0, _parseAmenities.parseAmenities)(info),
58
+ availability,
59
+ 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
+ }, []),
70
+ ...(0, _parseBoards.parseBoards)({
71
+ currency,
72
+ fees,
73
+ hotelCurrency,
74
+ rates,
75
+ taxes
76
+ }),
77
+ description,
78
+ images: photos === null || photos === void 0 ? void 0 : photos.map(function () {
79
+ let {
80
+ photoAltDescription: alt,
81
+ urlLarge: large,
82
+ urlMediumRect: thumbnail
83
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
84
+ return {
85
+ alt,
86
+ large,
87
+ thumbnail
88
+ };
89
+ }),
90
+ name,
91
+ nightsDeal,
92
+ maxOccupation,
93
+ media: url3D || urlVideo ? {
94
+ url3D,
95
+ urlVideo
96
+ } : undefined,
97
+ occupation: maxOccupation ? [adults > 0 ? {
98
+ type: 2,
99
+ amount: adults
100
+ } : undefined, children > 0 ? {
101
+ type: 3,
102
+ ages: [minRange, maxRange],
103
+ amount: children
104
+ } : undefined, babies > 0 ? {
105
+ type: 4,
106
+ amount: babies
107
+ } : undefined].filter(item => !!item) : [],
108
+ size: size ? "".concat(size, " ").concat(_constants.UNIT[unit].size) : undefined
109
+ };
110
+ });
111
+ };
112
+ exports.getItems = getItems;
113
+ //# sourceMappingURL=getItems.js.map
@@ -0,0 +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","video","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, video: 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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"}
@@ -166,12 +166,18 @@ const getOccupationSuggestions = _ref => {
166
166
  rooms
167
167
  });
168
168
  }
169
+ const [{
170
+ hasFees,
171
+ hasTaxes
172
+ }] = rooms || [];
169
173
  return suggestions.map(function () {
170
174
  let {
171
175
  occupation,
172
176
  price
173
177
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
174
178
  return {
179
+ hasFees,
180
+ hasTaxes,
175
181
  occupation,
176
182
  price
177
183
  };
@@ -1 +1 @@
1
- {"version":3,"file":"getOccupationSuggestions.js","names":["_compareSuggestions","require","_getRooms","_shared__","ADULT","CHILD","GUEST","TYPE_OCCUPATION","getOccupationSuggestions","_ref","infantAge","occupation","others","isGuest","flat","some","type","arguments","length","undefined","adults","reduce","total","amount","children","ages","agesChildren","filter","totalAges","ageBaby","find","age","rooms","getRooms","suggestions","search","_ref2","availability","babies","startIndex","suggestion","compareSuggestions","initAges","push","map","Array","fill","pop","price","index","room","totalRooms","id","totalAvailability","occupied","sort","a","b","exports"],"sources":["../../../../src/services/Rates/helpers/getOccupationSuggestions.js"],"sourcesContent":["import { compareSuggestions } from './compareSuggestions';\nimport { getRooms } from './getRooms';\nimport { TYPE_OCCUPATION } from '../../../components/__shared__';\n\nconst { ADULT, CHILD, GUEST } = TYPE_OCCUPATION;\n\nexport const getOccupationSuggestions = ({ infantAge, occupation = [], ...others }) => {\n const isGuest = occupation.flat().some(({ type } = {}) => type === GUEST);\n const adults = occupation.flat().reduce((total, { amount, type } = {}) => total + (type !== CHILD ? amount : 0), 0);\n const { amount: children, ages: agesChildren } = occupation\n .flat()\n .filter(({ type } = {}) => type === CHILD)\n .reduce(\n ({ ages: totalAges, amount: total } = {}, { ages, amount } = {}) => ({\n amount: total + amount,\n ages: [...totalAges, ...ages],\n }),\n { amount: 0, ages: [] },\n );\n const ageBaby = agesChildren.find((age) => age < infantAge);\n const rooms = getRooms(others);\n const suggestions = [];\n\n const search = ({ adults, availability, babies, children, rooms, startIndex = 0, suggestion = [] }) => {\n if (\n adults === 0 &&\n children === 0 &&\n babies === 0 &&\n availability >= 0 &&\n !compareSuggestions({ suggestion, suggestions })\n ) {\n const initAges = [...agesChildren].filter((age) => age !== ageBaby);\n suggestions.push({\n occupation: suggestion.map(({ adults, babies, children } = {}) => {\n const occupation = [];\n if (adults > 0) {\n occupation.push({ ages: Array(adults).fill(undefined), amount: adults, type: isGuest ? GUEST : ADULT });\n }\n\n const ages = Array(children)\n .fill(undefined)\n .map(() => initAges.pop());\n if (babies > 0) ages.push(ageBaby);\n if (children + babies > 0) occupation.push({ ages, amount: children + babies, type: CHILD });\n\n return occupation;\n }),\n price: suggestion.reduce((total, { price } = {}) => total + price, 0),\n suggestion,\n });\n\n return;\n }\n\n for (let index = startIndex; index < rooms.length; index++) {\n const room = rooms[index];\n if (room.adults <= adults && room.children <= children && room.babies <= babies) {\n const totalRooms = rooms.filter(({ id } = {}) => id === room.id).length;\n const totalAvailability = rooms\n .filter(({ id } = {}) => id === room.id)\n .reduce((total, { availability } = {}) => total + availability, 0);\n const occupied = suggestion.filter(({ id } = {}) => id === room.id).length;\n\n search({\n adults: adults - room.adults,\n availability: totalAvailability - totalRooms - occupied,\n babies: babies - room.babies,\n children: children - room.children,\n rooms,\n startIndex: index + 1,\n suggestion: [\n ...suggestion,\n { id: room.id, adults: room.adults, children: room.children, babies: room.babies, price: room.price },\n ],\n });\n }\n }\n };\n\n search({ adults, babies: ageBaby >= 0 ? 1 : 0, children: ageBaby >= 0 ? children - 1 : children, rooms });\n\n if (suggestions.length === 0) {\n search({\n adults: ageBaby >= 0 ? adults + children - 1 : adults + children,\n babies: ageBaby >= 0 ? 1 : 0,\n children: 0,\n rooms,\n });\n }\n\n return suggestions.map(({ occupation, price } = {}) => ({ occupation, price })).sort((a, b) => a.price - b.price);\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"getOccupationSuggestions.js","names":["_compareSuggestions","require","_getRooms","_shared__","ADULT","CHILD","GUEST","TYPE_OCCUPATION","getOccupationSuggestions","_ref","infantAge","occupation","others","isGuest","flat","some","type","arguments","length","undefined","adults","reduce","total","amount","children","ages","agesChildren","filter","totalAges","ageBaby","find","age","rooms","getRooms","suggestions","search","_ref2","availability","babies","startIndex","suggestion","compareSuggestions","initAges","push","map","Array","fill","pop","price","index","room","totalRooms","id","totalAvailability","occupied","hasFees","hasTaxes","sort","a","b","exports"],"sources":["../../../../src/services/Rates/helpers/getOccupationSuggestions.js"],"sourcesContent":["import { compareSuggestions } from './compareSuggestions';\nimport { getRooms } from './getRooms';\nimport { TYPE_OCCUPATION } from '../../../components/__shared__';\n\nconst { ADULT, CHILD, GUEST } = TYPE_OCCUPATION;\n\nexport const getOccupationSuggestions = ({ infantAge, occupation = [], ...others }) => {\n const isGuest = occupation.flat().some(({ type } = {}) => type === GUEST);\n const adults = occupation.flat().reduce((total, { amount, type } = {}) => total + (type !== CHILD ? amount : 0), 0);\n const { amount: children, ages: agesChildren } = occupation\n .flat()\n .filter(({ type } = {}) => type === CHILD)\n .reduce(\n ({ ages: totalAges, amount: total } = {}, { ages, amount } = {}) => ({\n amount: total + amount,\n ages: [...totalAges, ...ages],\n }),\n { amount: 0, ages: [] },\n );\n const ageBaby = agesChildren.find((age) => age < infantAge);\n const rooms = getRooms(others);\n const suggestions = [];\n\n const search = ({ adults, availability, babies, children, rooms, startIndex = 0, suggestion = [] }) => {\n if (\n adults === 0 &&\n children === 0 &&\n babies === 0 &&\n availability >= 0 &&\n !compareSuggestions({ suggestion, suggestions })\n ) {\n const initAges = [...agesChildren].filter((age) => age !== ageBaby);\n suggestions.push({\n occupation: suggestion.map(({ adults, babies, children } = {}) => {\n const occupation = [];\n if (adults > 0) {\n occupation.push({ ages: Array(adults).fill(undefined), amount: adults, type: isGuest ? GUEST : ADULT });\n }\n\n const ages = Array(children)\n .fill(undefined)\n .map(() => initAges.pop());\n if (babies > 0) ages.push(ageBaby);\n if (children + babies > 0) occupation.push({ ages, amount: children + babies, type: CHILD });\n\n return occupation;\n }),\n price: suggestion.reduce((total, { price } = {}) => total + price, 0),\n suggestion,\n });\n\n return;\n }\n\n for (let index = startIndex; index < rooms.length; index++) {\n const room = rooms[index];\n if (room.adults <= adults && room.children <= children && room.babies <= babies) {\n const totalRooms = rooms.filter(({ id } = {}) => id === room.id).length;\n const totalAvailability = rooms\n .filter(({ id } = {}) => id === room.id)\n .reduce((total, { availability } = {}) => total + availability, 0);\n const occupied = suggestion.filter(({ id } = {}) => id === room.id).length;\n\n search({\n adults: adults - room.adults,\n availability: totalAvailability - totalRooms - occupied,\n babies: babies - room.babies,\n children: children - room.children,\n rooms,\n startIndex: index + 1,\n suggestion: [\n ...suggestion,\n { id: room.id, adults: room.adults, children: room.children, babies: room.babies, price: room.price },\n ],\n });\n }\n }\n };\n\n search({ adults, babies: ageBaby >= 0 ? 1 : 0, children: ageBaby >= 0 ? children - 1 : children, rooms });\n\n if (suggestions.length === 0) {\n search({\n adults: ageBaby >= 0 ? adults + children - 1 : adults + children,\n babies: ageBaby >= 0 ? 1 : 0,\n children: 0,\n rooms,\n });\n }\n\n const [{ hasFees, hasTaxes }] = rooms || [];\n\n return suggestions\n .map(({ occupation, price } = {}) => ({ hasFees, hasTaxes, occupation, price }))\n .sort((a, b) => a.price - b.price);\n};\n"],"mappings":";;;;;;AAAA,IAAAA,mBAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAEA,MAAM;EAAEG,KAAK;EAAEC,KAAK;EAAEC;AAAM,CAAC,GAAGC,yBAAe;AAExC,MAAMC,wBAAwB,GAAGC,IAAA,IAA+C;EAAA,IAA9C;IAAEC,SAAS;IAAEC,UAAU,GAAG,EAAE;IAAE,GAAGC;EAAO,CAAC,GAAAH,IAAA;EAChF,MAAMI,OAAO,GAAGF,UAAU,CAACG,IAAI,CAAC,CAAC,CAACC,IAAI,CAAC;IAAA,IAAC;MAAEC;IAAK,CAAC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;IAAA,OAAKD,IAAI,KAAKV,KAAK;EAAA,EAAC;EACzE,MAAMc,MAAM,GAAGT,UAAU,CAACG,IAAI,CAAC,CAAC,CAACO,MAAM,CAAC,UAACC,KAAK;IAAA,IAAE;MAAEC,MAAM;MAAEP;IAAK,CAAC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;IAAA,OAAKK,KAAK,IAAIN,IAAI,KAAKX,KAAK,GAAGkB,MAAM,GAAG,CAAC,CAAC;EAAA,GAAE,CAAC,CAAC;EACnH,MAAM;IAAEA,MAAM,EAAEC,QAAQ;IAAEC,IAAI,EAAEC;EAAa,CAAC,GAAGf,UAAU,CACxDG,IAAI,CAAC,CAAC,CACNa,MAAM,CAAC;IAAA,IAAC;MAAEX;IAAK,CAAC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;IAAA,OAAKD,IAAI,KAAKX,KAAK;EAAA,EAAC,CACzCgB,MAAM,CACL;IAAA,IAAC;MAAEI,IAAI,EAAEG,SAAS;MAAEL,MAAM,EAAED;IAAM,CAAC,GAAAL,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;IAAA,IAAE;MAAEQ,IAAI;MAAEF;IAAO,CAAC,GAAAN,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;IAAA,OAAM;MACnEM,MAAM,EAAED,KAAK,GAAGC,MAAM;MACtBE,IAAI,EAAE,CAAC,GAAGG,SAAS,EAAE,GAAGH,IAAI;IAC9B,CAAC;EAAA,CAAC,EACF;IAAEF,MAAM,EAAE,CAAC;IAAEE,IAAI,EAAE;EAAG,CACxB,CAAC;EACH,MAAMI,OAAO,GAAGH,YAAY,CAACI,IAAI,CAAEC,GAAG,IAAKA,GAAG,GAAGrB,SAAS,CAAC;EAC3D,MAAMsB,KAAK,GAAG,IAAAC,kBAAQ,EAACrB,MAAM,CAAC;EAC9B,MAAMsB,WAAW,GAAG,EAAE;EAEtB,MAAMC,MAAM,GAAGC,KAAA,IAAwF;IAAA,IAAvF;MAAEhB,MAAM;MAAEiB,YAAY;MAAEC,MAAM;MAAEd,QAAQ;MAAEQ,KAAK;MAAEO,UAAU,GAAG,CAAC;MAAEC,UAAU,GAAG;IAAG,CAAC,GAAAJ,KAAA;IAChG,IACEhB,MAAM,KAAK,CAAC,IACZI,QAAQ,KAAK,CAAC,IACdc,MAAM,KAAK,CAAC,IACZD,YAAY,IAAI,CAAC,IACjB,CAAC,IAAAI,sCAAkB,EAAC;MAAED,UAAU;MAAEN;IAAY,CAAC,CAAC,EAChD;MACA,MAAMQ,QAAQ,GAAG,CAAC,GAAGhB,YAAY,CAAC,CAACC,MAAM,CAAEI,GAAG,IAAKA,GAAG,KAAKF,OAAO,CAAC;MACnEK,WAAW,CAACS,IAAI,CAAC;QACfhC,UAAU,EAAE6B,UAAU,CAACI,GAAG,CAAC,YAAuC;UAAA,IAAtC;YAAExB,MAAM;YAAEkB,MAAM;YAAEd;UAAS,CAAC,GAAAP,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;UAC3D,MAAMN,UAAU,GAAG,EAAE;UACrB,IAAIS,MAAM,GAAG,CAAC,EAAE;YACdT,UAAU,CAACgC,IAAI,CAAC;cAAElB,IAAI,EAAEoB,KAAK,CAACzB,MAAM,CAAC,CAAC0B,IAAI,CAAC3B,SAAS,CAAC;cAAEI,MAAM,EAAEH,MAAM;cAAEJ,IAAI,EAAEH,OAAO,GAAGP,KAAK,GAAGF;YAAM,CAAC,CAAC;UACzG;UAEA,MAAMqB,IAAI,GAAGoB,KAAK,CAACrB,QAAQ,CAAC,CACzBsB,IAAI,CAAC3B,SAAS,CAAC,CACfyB,GAAG,CAAC,MAAMF,QAAQ,CAACK,GAAG,CAAC,CAAC,CAAC;UAC5B,IAAIT,MAAM,GAAG,CAAC,EAAEb,IAAI,CAACkB,IAAI,CAACd,OAAO,CAAC;UAClC,IAAIL,QAAQ,GAAGc,MAAM,GAAG,CAAC,EAAE3B,UAAU,CAACgC,IAAI,CAAC;YAAElB,IAAI;YAAEF,MAAM,EAAEC,QAAQ,GAAGc,MAAM;YAAEtB,IAAI,EAAEX;UAAM,CAAC,CAAC;UAE5F,OAAOM,UAAU;QACnB,CAAC,CAAC;QACFqC,KAAK,EAAER,UAAU,CAACnB,MAAM,CAAC,UAACC,KAAK;UAAA,IAAE;YAAE0B;UAAM,CAAC,GAAA/B,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;UAAA,OAAKK,KAAK,GAAG0B,KAAK;QAAA,GAAE,CAAC,CAAC;QACrER;MACF,CAAC,CAAC;MAEF;IACF;IAEA,KAAK,IAAIS,KAAK,GAAGV,UAAU,EAAEU,KAAK,GAAGjB,KAAK,CAACd,MAAM,EAAE+B,KAAK,EAAE,EAAE;MAC1D,MAAMC,IAAI,GAAGlB,KAAK,CAACiB,KAAK,CAAC;MACzB,IAAIC,IAAI,CAAC9B,MAAM,IAAIA,MAAM,IAAI8B,IAAI,CAAC1B,QAAQ,IAAIA,QAAQ,IAAI0B,IAAI,CAACZ,MAAM,IAAIA,MAAM,EAAE;QAC/E,MAAMa,UAAU,GAAGnB,KAAK,CAACL,MAAM,CAAC;UAAA,IAAC;YAAEyB;UAAG,CAAC,GAAAnC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;UAAA,OAAKmC,EAAE,KAAKF,IAAI,CAACE,EAAE;QAAA,EAAC,CAAClC,MAAM;QACvE,MAAMmC,iBAAiB,GAAGrB,KAAK,CAC5BL,MAAM,CAAC;UAAA,IAAC;YAAEyB;UAAG,CAAC,GAAAnC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;UAAA,OAAKmC,EAAE,KAAKF,IAAI,CAACE,EAAE;QAAA,EAAC,CACvC/B,MAAM,CAAC,UAACC,KAAK;UAAA,IAAE;YAAEe;UAAa,CAAC,GAAApB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;UAAA,OAAKK,KAAK,GAAGe,YAAY;QAAA,GAAE,CAAC,CAAC;QACpE,MAAMiB,QAAQ,GAAGd,UAAU,CAACb,MAAM,CAAC;UAAA,IAAC;YAAEyB;UAAG,CAAC,GAAAnC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;UAAA,OAAKmC,EAAE,KAAKF,IAAI,CAACE,EAAE;QAAA,EAAC,CAAClC,MAAM;QAE1EiB,MAAM,CAAC;UACLf,MAAM,EAAEA,MAAM,GAAG8B,IAAI,CAAC9B,MAAM;UAC5BiB,YAAY,EAAEgB,iBAAiB,GAAGF,UAAU,GAAGG,QAAQ;UACvDhB,MAAM,EAAEA,MAAM,GAAGY,IAAI,CAACZ,MAAM;UAC5Bd,QAAQ,EAAEA,QAAQ,GAAG0B,IAAI,CAAC1B,QAAQ;UAClCQ,KAAK;UACLO,UAAU,EAAEU,KAAK,GAAG,CAAC;UACrBT,UAAU,EAAE,CACV,GAAGA,UAAU,EACb;YAAEY,EAAE,EAAEF,IAAI,CAACE,EAAE;YAAEhC,MAAM,EAAE8B,IAAI,CAAC9B,MAAM;YAAEI,QAAQ,EAAE0B,IAAI,CAAC1B,QAAQ;YAAEc,MAAM,EAAEY,IAAI,CAACZ,MAAM;YAAEU,KAAK,EAAEE,IAAI,CAACF;UAAM,CAAC;QAEzG,CAAC,CAAC;MACJ;IACF;EACF,CAAC;EAEDb,MAAM,CAAC;IAAEf,MAAM;IAAEkB,MAAM,EAAET,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAAEL,QAAQ,EAAEK,OAAO,IAAI,CAAC,GAAGL,QAAQ,GAAG,CAAC,GAAGA,QAAQ;IAAEQ;EAAM,CAAC,CAAC;EAEzG,IAAIE,WAAW,CAAChB,MAAM,KAAK,CAAC,EAAE;IAC5BiB,MAAM,CAAC;MACLf,MAAM,EAAES,OAAO,IAAI,CAAC,GAAGT,MAAM,GAAGI,QAAQ,GAAG,CAAC,GAAGJ,MAAM,GAAGI,QAAQ;MAChEc,MAAM,EAAET,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;MAC5BL,QAAQ,EAAE,CAAC;MACXQ;IACF,CAAC,CAAC;EACJ;EAEA,MAAM,CAAC;IAAEuB,OAAO;IAAEC;EAAS,CAAC,CAAC,GAAGxB,KAAK,IAAI,EAAE;EAE3C,OAAOE,WAAW,CACfU,GAAG,CAAC;IAAA,IAAC;MAAEjC,UAAU;MAAEqC;IAAM,CAAC,GAAA/B,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;IAAA,OAAM;MAAEsC,OAAO;MAAEC,QAAQ;MAAE7C,UAAU;MAAEqC;IAAM,CAAC;EAAA,CAAC,CAAC,CAC/ES,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACV,KAAK,GAAGW,CAAC,CAACX,KAAK,CAAC;AACtC,CAAC;AAACY,OAAA,CAAApD,wBAAA,GAAAA,wBAAA"}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.getRooms = void 0;
7
- var _parseBoards2 = require("./parseBoards");
7
+ var _parseBoards = require("./parseBoards");
8
8
  const MAX_ROOM_AVAILABILITY = 5;
9
9
  const getRooms = _ref => {
10
10
  let {
@@ -21,7 +21,6 @@ const getRooms = _ref => {
21
21
  occupationOptions
22
22
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
23
23
  return Object.values(occupationOptions).map(function () {
24
- var _parseBoards, _parseBoards$boards, _parseBoards$boards$;
25
24
  let {
26
25
  occupationQuantities: {
27
26
  numAdults,
@@ -30,19 +29,28 @@ const getRooms = _ref => {
30
29
  } = {},
31
30
  rates
32
31
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
32
+ const {
33
+ boards: [{
34
+ fees: hasFees,
35
+ taxes: hasTaxes,
36
+ price
37
+ } = {}] = []
38
+ } = (0, _parseBoards.parseBoards)({
39
+ currency,
40
+ fees,
41
+ hotelCurrency,
42
+ rates,
43
+ taxes
44
+ }) || {};
33
45
  return {
34
46
  adults: numAdults,
35
47
  availability,
36
48
  babies: numBabies,
37
49
  children: totalChildren,
50
+ hasFees,
51
+ hasTaxes,
38
52
  id,
39
- price: (_parseBoards = (0, _parseBoards2.parseBoards)({
40
- currency,
41
- fees,
42
- hotelCurrency,
43
- rates,
44
- taxes
45
- })) === null || _parseBoards === void 0 ? void 0 : (_parseBoards$boards = _parseBoards.boards) === null || _parseBoards$boards === void 0 ? void 0 : (_parseBoards$boards$ = _parseBoards$boards[0]) === null || _parseBoards$boards$ === void 0 ? void 0 : _parseBoards$boards$.price
53
+ price
46
54
  };
47
55
  });
48
56
  }).sort((a, b) => a.price - b.price).reduce((result, current) => {
@@ -1 +1 @@
1
- {"version":3,"file":"getRooms.js","names":["_parseBoards2","require","MAX_ROOM_AVAILABILITY","getRooms","_ref","currency","fees","hotelCurrency","roomTypes","taxes","Object","values","flatMap","amountAvailable","availability","id","occupationOptions","arguments","length","undefined","map","_parseBoards","_parseBoards$boards","_parseBoards$boards$","occupationQuantities","numAdults","numBabies","totalChildren","rates","adults","babies","children","price","parseBoards","boards","sort","a","b","reduce","result","current","key","concat","room","Array","fill","exports"],"sources":["../../../../src/services/Rates/helpers/getRooms.js"],"sourcesContent":["import { parseBoards } from './parseBoards';\n\nconst MAX_ROOM_AVAILABILITY = 5;\n\nexport const getRooms = ({ currency, fees, hotelCurrency, roomTypes, taxes }) =>\n Object.values(\n Object.values(roomTypes)\n .flatMap(({ amountAvailable: availability, id, occupationOptions } = {}) =>\n Object.values(occupationOptions).map(\n ({ occupationQuantities: { numAdults, numBabies, totalChildren } = {}, rates } = {}) => ({\n adults: numAdults,\n availability,\n babies: numBabies,\n children: totalChildren,\n id,\n price: parseBoards({ currency, fees, hotelCurrency, rates, taxes })?.boards?.[0]?.price,\n }),\n ),\n )\n .sort((a, b) => a.price - b.price)\n .reduce((result, current) => {\n const key = `${current.adults}-${current.babies}-${current.children}`;\n if (!result[key]) result[key] = current;\n\n return result;\n }, {}),\n ).flatMap((room) =>\n Array(room.availability > MAX_ROOM_AVAILABILITY ? MAX_ROOM_AVAILABILITY : room.availability)\n .fill(undefined)\n .map(() => room),\n );\n"],"mappings":";;;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA;AAEA,MAAMC,qBAAqB,GAAG,CAAC;AAExB,MAAMC,QAAQ,GAAGC,IAAA;EAAA,IAAC;IAAEC,QAAQ;IAAEC,IAAI;IAAEC,aAAa;IAAEC,SAAS;IAAEC;EAAM,CAAC,GAAAL,IAAA;EAAA,OAC1EM,MAAM,CAACC,MAAM,CACXD,MAAM,CAACC,MAAM,CAACH,SAAS,CAAC,CACrBI,OAAO,CAAC;IAAA,IAAC;MAAEC,eAAe,EAAEC,YAAY;MAAEC,EAAE;MAAEC;IAAkB,CAAC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;IAAA,OACrEP,MAAM,CAACC,MAAM,CAACK,iBAAiB,CAAC,CAACI,GAAG,CAClC;MAAA,IAAAC,YAAA,EAAAC,mBAAA,EAAAC,oBAAA;MAAA,IAAC;QAAEC,oBAAoB,EAAE;UAAEC,SAAS;UAAEC,SAAS;UAAEC;QAAc,CAAC,GAAG,CAAC,CAAC;QAAEC;MAAM,CAAC,GAAAX,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;MAAA,OAAM;QACvFY,MAAM,EAAEJ,SAAS;QACjBX,YAAY;QACZgB,MAAM,EAAEJ,SAAS;QACjBK,QAAQ,EAAEJ,aAAa;QACvBZ,EAAE;QACFiB,KAAK,GAAAX,YAAA,GAAE,IAAAY,yBAAW,EAAC;UAAE5B,QAAQ;UAAEC,IAAI;UAAEC,aAAa;UAAEqB,KAAK;UAAEnB;QAAM,CAAC,CAAC,cAAAY,YAAA,wBAAAC,mBAAA,GAA5DD,YAAA,CAA8Da,MAAM,cAAAZ,mBAAA,wBAAAC,oBAAA,GAApED,mBAAA,CAAuE,CAAC,CAAC,cAAAC,oBAAA,uBAAzEA,oBAAA,CAA2ES;MACpF,CAAC;IAAA,CACH,CAAC;EAAA,CACH,CAAC,CACAG,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACJ,KAAK,GAAGK,CAAC,CAACL,KAAK,CAAC,CACjCM,MAAM,CAAC,CAACC,MAAM,EAAEC,OAAO,KAAK;IAC3B,MAAMC,GAAG,MAAAC,MAAA,CAAMF,OAAO,CAACX,MAAM,OAAAa,MAAA,CAAIF,OAAO,CAACV,MAAM,OAAAY,MAAA,CAAIF,OAAO,CAACT,QAAQ,CAAE;IACrE,IAAI,CAACQ,MAAM,CAACE,GAAG,CAAC,EAAEF,MAAM,CAACE,GAAG,CAAC,GAAGD,OAAO;IAEvC,OAAOD,MAAM;EACf,CAAC,EAAE,CAAC,CAAC,CACT,CAAC,CAAC3B,OAAO,CAAE+B,IAAI,IACbC,KAAK,CAACD,IAAI,CAAC7B,YAAY,GAAGZ,qBAAqB,GAAGA,qBAAqB,GAAGyC,IAAI,CAAC7B,YAAY,CAAC,CACzF+B,IAAI,CAAC1B,SAAS,CAAC,CACfC,GAAG,CAAC,MAAMuB,IAAI,CACnB,CAAC;AAAA;AAACG,OAAA,CAAA3C,QAAA,GAAAA,QAAA"}
1
+ {"version":3,"file":"getRooms.js","names":["_parseBoards","require","MAX_ROOM_AVAILABILITY","getRooms","_ref","currency","fees","hotelCurrency","roomTypes","taxes","Object","values","flatMap","amountAvailable","availability","id","occupationOptions","arguments","length","undefined","map","occupationQuantities","numAdults","numBabies","totalChildren","rates","boards","hasFees","hasTaxes","price","parseBoards","adults","babies","children","sort","a","b","reduce","result","current","key","concat","room","Array","fill","exports"],"sources":["../../../../src/services/Rates/helpers/getRooms.js"],"sourcesContent":["import { parseBoards } from './parseBoards';\n\nconst MAX_ROOM_AVAILABILITY = 5;\n\nexport const getRooms = ({ currency, fees, hotelCurrency, roomTypes, taxes }) =>\n Object.values(\n Object.values(roomTypes)\n .flatMap(({ amountAvailable: availability, id, occupationOptions } = {}) =>\n Object.values(occupationOptions).map(\n ({ occupationQuantities: { numAdults, numBabies, totalChildren } = {}, rates } = {}) => {\n const { boards: [{ fees: hasFees, taxes: hasTaxes, price } = {}] = [] } =\n parseBoards({ currency, fees, hotelCurrency, rates, taxes }) || {};\n\n return {\n adults: numAdults,\n availability,\n babies: numBabies,\n children: totalChildren,\n hasFees,\n hasTaxes,\n id,\n price,\n };\n },\n ),\n )\n .sort((a, b) => a.price - b.price)\n .reduce((result, current) => {\n const key = `${current.adults}-${current.babies}-${current.children}`;\n if (!result[key]) result[key] = current;\n\n return result;\n }, {}),\n ).flatMap((room) =>\n Array(room.availability > MAX_ROOM_AVAILABILITY ? MAX_ROOM_AVAILABILITY : room.availability)\n .fill(undefined)\n .map(() => room),\n );\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA,MAAMC,qBAAqB,GAAG,CAAC;AAExB,MAAMC,QAAQ,GAAGC,IAAA;EAAA,IAAC;IAAEC,QAAQ;IAAEC,IAAI;IAAEC,aAAa;IAAEC,SAAS;IAAEC;EAAM,CAAC,GAAAL,IAAA;EAAA,OAC1EM,MAAM,CAACC,MAAM,CACXD,MAAM,CAACC,MAAM,CAACH,SAAS,CAAC,CACrBI,OAAO,CAAC;IAAA,IAAC;MAAEC,eAAe,EAAEC,YAAY;MAAEC,EAAE;MAAEC;IAAkB,CAAC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;IAAA,OACrEP,MAAM,CAACC,MAAM,CAACK,iBAAiB,CAAC,CAACI,GAAG,CAClC,YAAwF;MAAA,IAAvF;QAAEC,oBAAoB,EAAE;UAAEC,SAAS;UAAEC,SAAS;UAAEC;QAAc,CAAC,GAAG,CAAC,CAAC;QAAEC;MAAM,CAAC,GAAAR,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;MACjF,MAAM;QAAES,MAAM,EAAE,CAAC;UAAEpB,IAAI,EAAEqB,OAAO;UAAElB,KAAK,EAAEmB,QAAQ;UAAEC;QAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;MAAG,CAAC,GACrE,IAAAC,wBAAW,EAAC;QAAEzB,QAAQ;QAAEC,IAAI;QAAEC,aAAa;QAAEkB,KAAK;QAAEhB;MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;MAEpE,OAAO;QACLsB,MAAM,EAAET,SAAS;QACjBR,YAAY;QACZkB,MAAM,EAAET,SAAS;QACjBU,QAAQ,EAAET,aAAa;QACvBG,OAAO;QACPC,QAAQ;QACRb,EAAE;QACFc;MACF,CAAC;IACH,CACF,CAAC;EAAA,CACH,CAAC,CACAK,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACN,KAAK,GAAGO,CAAC,CAACP,KAAK,CAAC,CACjCQ,MAAM,CAAC,CAACC,MAAM,EAAEC,OAAO,KAAK;IAC3B,MAAMC,GAAG,MAAAC,MAAA,CAAMF,OAAO,CAACR,MAAM,OAAAU,MAAA,CAAIF,OAAO,CAACP,MAAM,OAAAS,MAAA,CAAIF,OAAO,CAACN,QAAQ,CAAE;IACrE,IAAI,CAACK,MAAM,CAACE,GAAG,CAAC,EAAEF,MAAM,CAACE,GAAG,CAAC,GAAGD,OAAO;IAEvC,OAAOD,MAAM;EACf,CAAC,EAAE,CAAC,CAAC,CACT,CAAC,CAAC1B,OAAO,CAAE8B,IAAI,IACbC,KAAK,CAACD,IAAI,CAAC5B,YAAY,GAAGZ,qBAAqB,GAAGA,qBAAqB,GAAGwC,IAAI,CAAC5B,YAAY,CAAC,CACzF8B,IAAI,CAACzB,SAAS,CAAC,CACfC,GAAG,CAAC,MAAMsB,IAAI,CACnB,CAAC;AAAA;AAACG,OAAA,CAAA1C,QAAA,GAAAA,QAAA"}
@@ -7,10 +7,20 @@ exports.getTaxesType = void 0;
7
7
  var _Core = require("../../../Core.constants");
8
8
  const getTaxesType = function () {
9
9
  let {
10
- showLocalTaxes: fees,
11
- vatIncluded: taxes
10
+ fees,
11
+ taxes,
12
+ hasFees,
13
+ hasTaxes
12
14
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
13
- return fees && taxes ? _Core.TAXES_TYPE.ALL_INCLUDED : fees && !taxes ? _Core.TAXES_TYPE.FEES_INCLUDED : !fees && taxes ? _Core.TAXES_TYPE.TAXES_INCLUDED : _Core.TAXES_TYPE.ALL_EXCLUDED;
15
+ let type;
16
+ if (hasFees && hasTaxes) {
17
+ if (fees && taxes) type = _Core.TAXES_TYPE.ALL_INCLUDED;else if (!fees && !taxes) type = _Core.TAXES_TYPE.ALL_EXCLUDED;else if (fees && !taxes) type = _Core.TAXES_TYPE.FEES_INCLUDED_TAXES_EXCLUDED;else type = _Core.TAXES_TYPE.TAXES_INCLUDED_FEES_EXCLUDED;
18
+ } else if (hasFees) {
19
+ if (fees) type = _Core.TAXES_TYPE.FEES_INCLUDED;else type = _Core.TAXES_TYPE.FEES_EXCLUDED;
20
+ } else if (hasTaxes) {
21
+ if (taxes) type = _Core.TAXES_TYPE.TAXES_INCLUDED;else type = _Core.TAXES_TYPE.TAXES_EXCLUDED;
22
+ }
23
+ return type;
14
24
  };
15
25
  exports.getTaxesType = getTaxesType;
16
26
  //# sourceMappingURL=getTaxesType.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getTaxesType.js","names":["_Core","require","getTaxesType","showLocalTaxes","fees","vatIncluded","taxes","arguments","length","undefined","TAXES_TYPE","ALL_INCLUDED","FEES_INCLUDED","TAXES_INCLUDED","ALL_EXCLUDED","exports"],"sources":["../../../../src/services/Rates/helpers/getTaxesType.js"],"sourcesContent":["import { TAXES_TYPE } from '../../../Core.constants';\n\nexport const getTaxesType = ({ showLocalTaxes: fees, vatIncluded: taxes } = {}) =>\n fees && taxes\n ? TAXES_TYPE.ALL_INCLUDED\n : fees && !taxes\n ? TAXES_TYPE.FEES_INCLUDED\n : !fees && taxes\n ? TAXES_TYPE.TAXES_INCLUDED\n : TAXES_TYPE.ALL_EXCLUDED;\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEO,MAAMC,YAAY,GAAG,SAAAA,CAAA;EAAA,IAAC;IAAEC,cAAc,EAAEC,IAAI;IAAEC,WAAW,EAAEC;EAAM,CAAC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAAA,OAC5EH,IAAI,IAAIE,KAAK,GACTI,gBAAU,CAACC,YAAY,GACvBP,IAAI,IAAI,CAACE,KAAK,GACdI,gBAAU,CAACE,aAAa,GACxB,CAACR,IAAI,IAAIE,KAAK,GACdI,gBAAU,CAACG,cAAc,GACzBH,gBAAU,CAACI,YAAY;AAAA;AAACC,OAAA,CAAAb,YAAA,GAAAA,YAAA"}
1
+ {"version":3,"file":"getTaxesType.js","names":["_Core","require","getTaxesType","fees","taxes","hasFees","hasTaxes","arguments","length","undefined","type","TAXES_TYPE","ALL_INCLUDED","ALL_EXCLUDED","FEES_INCLUDED_TAXES_EXCLUDED","TAXES_INCLUDED_FEES_EXCLUDED","FEES_INCLUDED","FEES_EXCLUDED","TAXES_INCLUDED","TAXES_EXCLUDED","exports"],"sources":["../../../../src/services/Rates/helpers/getTaxesType.js"],"sourcesContent":["import { TAXES_TYPE } from '../../../Core.constants';\n\nexport const getTaxesType = ({ fees, taxes, hasFees, hasTaxes } = {}) => {\n let type;\n\n if (hasFees && hasTaxes) {\n if (fees && taxes) type = TAXES_TYPE.ALL_INCLUDED;\n else if (!fees && !taxes) type = TAXES_TYPE.ALL_EXCLUDED;\n else if (fees && !taxes) type = TAXES_TYPE.FEES_INCLUDED_TAXES_EXCLUDED;\n else type = TAXES_TYPE.TAXES_INCLUDED_FEES_EXCLUDED;\n } else if (hasFees) {\n if (fees) type = TAXES_TYPE.FEES_INCLUDED;\n else type = TAXES_TYPE.FEES_EXCLUDED;\n } else if (hasTaxes) {\n if (taxes) type = TAXES_TYPE.TAXES_INCLUDED;\n else type = TAXES_TYPE.TAXES_EXCLUDED;\n }\n\n return type;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEO,MAAMC,YAAY,GAAG,SAAAA,CAAA,EAA6C;EAAA,IAA5C;IAAEC,IAAI;IAAEC,KAAK;IAAEC,OAAO;IAAEC;EAAS,CAAC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAClE,IAAIG,IAAI;EAER,IAAIL,OAAO,IAAIC,QAAQ,EAAE;IACvB,IAAIH,IAAI,IAAIC,KAAK,EAAEM,IAAI,GAAGC,gBAAU,CAACC,YAAY,CAAC,KAC7C,IAAI,CAACT,IAAI,IAAI,CAACC,KAAK,EAAEM,IAAI,GAAGC,gBAAU,CAACE,YAAY,CAAC,KACpD,IAAIV,IAAI,IAAI,CAACC,KAAK,EAAEM,IAAI,GAAGC,gBAAU,CAACG,4BAA4B,CAAC,KACnEJ,IAAI,GAAGC,gBAAU,CAACI,4BAA4B;EACrD,CAAC,MAAM,IAAIV,OAAO,EAAE;IAClB,IAAIF,IAAI,EAAEO,IAAI,GAAGC,gBAAU,CAACK,aAAa,CAAC,KACrCN,IAAI,GAAGC,gBAAU,CAACM,aAAa;EACtC,CAAC,MAAM,IAAIX,QAAQ,EAAE;IACnB,IAAIF,KAAK,EAAEM,IAAI,GAAGC,gBAAU,CAACO,cAAc,CAAC,KACvCR,IAAI,GAAGC,gBAAU,CAACQ,cAAc;EACvC;EAEA,OAAOT,IAAI;AACb,CAAC;AAACU,OAAA,CAAAlB,YAAA,GAAAA,YAAA"}
@@ -3,6 +3,17 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ var _getItems = require("./getItems");
7
+ Object.keys(_getItems).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _getItems[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _getItems[key];
14
+ }
15
+ });
16
+ });
6
17
  var _getPrice = require("./getPrice");
7
18
  Object.keys(_getPrice).forEach(function (key) {
8
19
  if (key === "default" || key === "__esModule") return;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_getPrice","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_getTaxesType","_normalizePrice","_parseAmenities","_parseBoards","_parseDiscount","_parseExternalToken","_parseHotelDiscount","_parseTracking","_parseUnavailability"],"sources":["../../../../src/services/Rates/helpers/index.js"],"sourcesContent":["export * from './getPrice';\nexport * from './getTaxesType';\nexport * from './normalizePrice';\nexport * from './parseAmenities';\nexport * from './parseBoards';\nexport * from './parseDiscount';\nexport * from './parseExternalToken';\nexport * from './parseHotelDiscount';\nexport * from './parseTracking';\nexport * from './parseUnavailability';\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["_getItems","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_getPrice","_getTaxesType","_normalizePrice","_parseAmenities","_parseBoards","_parseDiscount","_parseExternalToken","_parseHotelDiscount","_parseTracking","_parseUnavailability"],"sources":["../../../../src/services/Rates/helpers/index.js"],"sourcesContent":["export * from './getItems';\nexport * from './getPrice';\nexport * from './getTaxesType';\nexport * from './normalizePrice';\nexport * from './parseAmenities';\nexport * from './parseBoards';\nexport * from './parseDiscount';\nexport * from './parseExternalToken';\nexport * from './parseHotelDiscount';\nexport * from './parseTracking';\nexport * from './parseUnavailability';\n"],"mappings":";;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,SAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,SAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,SAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,SAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,SAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,SAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,SAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,aAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,aAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,aAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,aAAA,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,eAAA,GAAAZ,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAU,eAAA,EAAAT,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAQ,eAAA,CAAAR,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAI,eAAA,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;AACA,IAAAU,cAAA,GAAAd,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAY,cAAA,EAAAX,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAU,cAAA,CAAAV,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAM,cAAA,CAAAV,GAAA;IAAA;EAAA;AAAA;AACA,IAAAW,mBAAA,GAAAf,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAa,mBAAA,EAAAZ,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAW,mBAAA,CAAAX,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAO,mBAAA,CAAAX,GAAA;IAAA;EAAA;AAAA;AACA,IAAAY,mBAAA,GAAAhB,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAc,mBAAA,EAAAb,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAY,mBAAA,CAAAZ,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAQ,mBAAA,CAAAZ,GAAA;IAAA;EAAA;AAAA;AACA,IAAAa,cAAA,GAAAjB,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAe,cAAA,EAAAd,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAa,cAAA,CAAAb,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAS,cAAA,CAAAb,GAAA;IAAA;EAAA;AAAA;AACA,IAAAc,oBAAA,GAAAlB,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAgB,oBAAA,EAAAf,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAc,oBAAA,CAAAd,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAU,oBAAA,CAAAd,GAAA;IAAA;EAAA;AAAA"}
@@ -21,6 +21,8 @@ const parseUnavailability = function () {
21
21
  } = {},
22
22
  occupation: propOccupation,
23
23
  roomTypes,
24
+ showLocalTaxes: fees,
25
+ vatIncluded: taxes,
24
26
  ...response
25
27
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
26
28
  let calendar;
@@ -80,6 +82,10 @@ const parseUnavailability = function () {
80
82
  occupation: propOccupation
81
83
  });
82
84
  }
85
+ const [{
86
+ hasFees,
87
+ hasTaxes
88
+ } = {}] = occupation || [];
83
89
  return hotels || calendar || occupation ? {
84
90
  calendar: {
85
91
  disabledDates,
@@ -92,7 +98,12 @@ const parseUnavailability = function () {
92
98
  description,
93
99
  occupation
94
100
  },
95
- taxesType: (0, _getTaxesType.getTaxesType)(response)
101
+ taxesType: (0, _getTaxesType.getTaxesType)({
102
+ fees,
103
+ hasFees,
104
+ hasTaxes,
105
+ taxes
106
+ })
96
107
  } : undefined;
97
108
  };
98
109
  exports.parseUnavailability = parseUnavailability;
@@ -1 +1 @@
1
- {"version":3,"file":"parseUnavailability.js","names":["_getCalendarSuggestions","require","_getDisabledDates","_getMinStayDates","_getOccupationSuggestions","_getTaxesType","_Core","BY_CHECK_IN","parseUnavailability","availabilitySuggestions","availability","firstChildInterval","messages","availabilityMessage","noAvailabilityMessage","occupation","propOccupation","roomTypes","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","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 messages: { availabilityMessage, noAvailabilityMessage } = {},\n occupation: propOccupation,\n roomTypes,\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 return hotels || calendar || occupation\n ? {\n calendar: { disabledDates, minStayDates, minStayType },\n hotels,\n suggestions: { calendar, description, occupation },\n taxesType: getTaxesType(response),\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","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","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 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 hotels,\n suggestions: { calendar, description, occupation },\n taxesType: getTaxesType({ fees, hasFees, hasTaxes, taxes }),\n }\n : undefined;\n};\n"],"mappings":"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"}
@@ -12,10 +12,6 @@ var _helpers = require("./helpers");
12
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
13
  /* eslint-disable no-async-promise-executor */
14
14
 
15
- const {
16
- DOUBLE,
17
- SINGLE
18
- } = _constants.BED_TYPE;
19
15
  const FEATURE = {
20
16
  PESTANA: 'pestana'
21
17
  };
@@ -82,111 +78,42 @@ const rates = function () {
82
78
  club,
83
79
  currencyCode: hotelCurrency,
84
80
  firstChildInterval = {},
85
- measureUnit: unit,
86
- roomTypes,
81
+ messages: {
82
+ availabilityMessage: {
83
+ increments
84
+ } = {}
85
+ } = {},
87
86
  showLocalTaxes: fees,
88
87
  userCountry: country,
89
88
  vatIncluded: taxes
90
89
  } = response;
91
90
  const currency = userCurrency || hotelCurrency;
92
91
  await _services.ServiceCurrency.exchange(currency);
93
- const items = Object.values(roomTypes);
94
92
  const infantAge = firstChildInterval === null || firstChildInterval === void 0 ? void 0 : firstChildInterval.lowerBound;
93
+ const items = (0, _helpers.getItems)({
94
+ ...response,
95
+ currency
96
+ });
97
+ const [{
98
+ boards: [{
99
+ fees: hasFees,
100
+ taxes: hasTaxes
101
+ } = {}] = []
102
+ } = {}] = items || [];
95
103
  resolve({
96
104
  clubConditions: _services.ServiceFeatures.get(FEATURE.PESTANA, id) ? _constants.EXTERNAL.URL[language] || _constants.EXTERNAL.URL[_constants.DEFAULT_LANGUAGE] : undefined,
97
105
  country,
98
106
  currency: hotelCurrency,
99
107
  externalSignout: authorization && type === _constants.EXTERNAL.TYPE && (club === null || club === void 0 ? void 0 : (_club$clubLogin = club.clubLogin) === null || _club$clubLogin === void 0 ? void 0 : _club$clubLogin.status) !== _constants.VALID,
108
+ increments: increments || undefined,
100
109
  infantAge: infantAge !== null ? infantAge : undefined,
101
- items: items.map(function () {
102
- let {
103
- amountAvailable: availability,
104
- name,
105
- newInfoRoom: info = {},
106
- occupationOptions = {}
107
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
108
- const {
109
- description,
110
- roomTypeInfo: {
111
- bedDistributions: bedType = [],
112
- galleryMedia: {
113
- url3D,
114
- video: urlVideo
115
- } = {},
116
- photos,
117
- roomSize: size
118
- } = {}
119
- } = info;
120
- const {
121
- occupationQuantities: {
122
- numFirstRangeChildren: minRange = 0,
123
- numSecondRangeChildren: maxRange = 0,
124
- numAdults: adults = 0,
125
- numBabies: babies = 0,
126
- totalChildren: children = 0
127
- } = {},
128
- posibilities: [{
129
- nights: nightsDeal
130
- } = {}] = [],
131
- rates
132
- } = Object.values(occupationOptions)[0] || {};
133
- const maxOccupation = adults + children;
134
- return {
135
- amenities: (0, _helpers.parseAmenities)(info),
136
- availability,
137
- bedDisposition: bedType.map(type => _constants.BED_DISPOSITION[type]),
138
- bedTypes: bedType.reduce((result, next) => {
139
- _constants.BED_DISPOSITION[next].forEach(function () {
140
- let {
141
- amount,
142
- type
143
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
144
- if ([DOUBLE, SINGLE].includes(type) && amount > 0) result[result.length ? 1 : 0] = type;
145
- });
146
- return result;
147
- }, []),
148
- ...(0, _helpers.parseBoards)({
149
- currency,
150
- fees,
151
- hotelCurrency,
152
- rates,
153
- taxes
154
- }),
155
- description,
156
- images: photos === null || photos === void 0 ? void 0 : photos.map(function () {
157
- let {
158
- photoAltDescription: alt,
159
- urlLarge: large,
160
- urlMediumRect: thumbnail
161
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
162
- return {
163
- alt,
164
- large,
165
- thumbnail
166
- };
167
- }),
168
- name,
169
- nightsDeal,
170
- maxOccupation,
171
- media: url3D || urlVideo ? {
172
- url3D,
173
- urlVideo
174
- } : undefined,
175
- occupation: maxOccupation ? [adults > 0 ? {
176
- type: 2,
177
- amount: adults
178
- } : undefined, children > 0 ? {
179
- type: 3,
180
- ages: [minRange, maxRange],
181
- amount: children
182
- } : undefined, babies > 0 ? {
183
- type: 4,
184
- amount: babies
185
- } : undefined].filter(item => !!item) : [],
186
- size: size ? "".concat(size, " ").concat(_constants.UNIT[unit].size) : undefined
187
- };
110
+ items,
111
+ taxesType: (0, _helpers.getTaxesType)({
112
+ fees,
113
+ hasFees,
114
+ hasTaxes,
115
+ taxes
188
116
  }),
189
- taxesType: (0, _helpers.getTaxesType)(response),
190
117
  tracking: (0, _helpers.parseTracking)(response)
191
118
  });
192
119
  });