@mirai/core 0.3.48 → 0.3.50

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 (43) hide show
  1. package/build/components/Finder/Finder.compact.js +1 -1
  2. package/build/components/Finder/Finder.compact.js.map +1 -1
  3. package/build/components/Finder/Finder.js +7 -3
  4. package/build/components/Finder/Finder.js.map +1 -1
  5. package/build/components/Finder/components/Calendar/Calendar.js +1 -1
  6. package/build/components/Finder/components/Calendar/Calendar.js.map +1 -1
  7. package/build/components/Finder/components/Calendar/Calendar.l10n.js +2 -2
  8. package/build/components/Finder/components/Calendar/Calendar.l10n.js.map +1 -1
  9. package/build/components/Finder/components/Places/Places.js +4 -8
  10. package/build/components/Finder/components/Places/Places.js.map +1 -1
  11. package/build/components/Finder/components/Places/Places.l10n.js +2 -2
  12. package/build/components/Finder/components/Places/Places.l10n.js.map +1 -1
  13. package/build/components/Finder/components/Places/Places.module.css +19 -15
  14. package/build/components/Finder/components/Places/__tests__/__snapshots__/Places.test.js.snap +72 -72
  15. package/build/components/Finder/components/Places/helpers/calcColumns.js +4 -10
  16. package/build/components/Finder/components/Places/helpers/calcColumns.js.map +1 -1
  17. package/build/components/Rates/Rates.Filter.js +10 -2
  18. package/build/components/Rates/Rates.Filter.js.map +1 -1
  19. package/build/components/Rates/Rates.Footer.js +14 -9
  20. package/build/components/Rates/Rates.Footer.js.map +1 -1
  21. package/build/components/Rates/Rates.js +5 -3
  22. package/build/components/Rates/Rates.js.map +1 -1
  23. package/build/components/Rates/Rates.l10n.js +10 -0
  24. package/build/components/Rates/Rates.l10n.js.map +1 -1
  25. package/build/components/Rates/Rates.module.css +2 -1
  26. package/build/components/Rates/components/Item/Item.js +3 -1
  27. package/build/components/Rates/components/Item/Item.js.map +1 -1
  28. package/build/components/Rates/components/Item/Item.l10n.js +4 -1
  29. package/build/components/Rates/components/Item/Item.l10n.js.map +1 -1
  30. package/build/components/__shared__/Field/Field.module.css +4 -0
  31. package/build/components/__shared__/FieldPromocode/FieldPromocode.module.css +6 -1
  32. package/build/services/Rates/__tests__/__mocks__/rates-response-no-taxes-no-local.json +743 -0
  33. package/build/services/Rates/__tests__/__mocks__/rates-response-no-taxes.json +2370 -0
  34. package/build/services/Rates/__tests__/__mocks__/rates-response.json +465 -0
  35. package/build/services/Rates/__tests__/__mocks__/rates-success-no-taxes-no-local.json +6674 -0
  36. package/build/services/Rates/__tests__/__mocks__/rates-success-no-taxes.json +16508 -0
  37. package/build/services/Rates/__tests__/__mocks__/rates-success.json +3473 -6942
  38. package/build/services/Rates/get.js +21 -10
  39. package/build/services/Rates/get.js.map +1 -1
  40. package/build/services/Rates/helpers/parseDiscount.js +4 -3
  41. package/build/services/Rates/helpers/parseDiscount.js.map +1 -1
  42. package/package.json +1 -1
  43. package/build/services/Rates/__tests__/__mocks__/rates-success-boards.json +0 -31398
@@ -59,7 +59,9 @@ const get = function () {
59
59
  const {
60
60
  currencyCode: hotelCurrency,
61
61
  measureUnit: unit,
62
- roomTypes
62
+ roomTypes,
63
+ taxesInformation,
64
+ vatIncluded: taxes
63
65
  } = response;
64
66
  const currency = userCurrency || hotelCurrency;
65
67
  await _services.ServiceCurrency.exchange(currency);
@@ -108,6 +110,7 @@ const get = function () {
108
110
  maxRoomsPerReservation: max,
109
111
  minRoomsPerReservation: min,
110
112
  offersApplied: deals,
113
+ originalAvgPrice,
111
114
  totalLocalTaxes: localTaxes,
112
115
  totalPriceOriginal,
113
116
  totalPriceWithTaxes: totalPrice,
@@ -118,7 +121,8 @@ const get = function () {
118
121
  clubTotal: club,
119
122
  offerTotal: deal
120
123
  } = discounts;
121
- const originalPrice = Math.max((deal === null || deal === void 0 ? void 0 : deal.withTaxes) || 0, (club === null || club === void 0 ? void 0 : club.withTaxes) || 0, (promoCode === null || promoCode === void 0 ? void 0 : promoCode.withTaxes) || 0) || totalPrice;
124
+ const price = taxes ? totalPrice : totalPriceOriginal;
125
+ const originalPrice = (taxes ? Math.max((deal === null || deal === void 0 ? void 0 : deal.withTaxes) || 0, (club === null || club === void 0 ? void 0 : club.withTaxes) || 0, (promoCode === null || promoCode === void 0 ? void 0 : promoCode.withTaxes) || 0) : Math.max((deal === null || deal === void 0 ? void 0 : deal.original) || 0, (club === null || club === void 0 ? void 0 : club.original) || 0, (promoCode === null || promoCode === void 0 ? void 0 : promoCode.original) || 0)) || price;
122
126
  rates.push({
123
127
  amount: [min, availability < max ? availability : max],
124
128
  basePrice: (0, _helpers.normalizePrice)(totalPriceOriginal, currency),
@@ -131,20 +135,21 @@ const get = function () {
131
135
  dayPrice: (0, _helpers.getPrice)({
132
136
  currency,
133
137
  hotelCurrency,
134
- price: withTaxesAvgPrice
138
+ price: taxes ? withTaxesAvgPrice : originalAvgPrice
135
139
  }),
136
140
  days: detail.map(function () {
137
141
  let {
138
142
  dayStandardFormat: value,
139
143
  offerId: deal,
140
- price
144
+ priceWithoutTaxes: basePrice,
145
+ priceWithTaxes: price
141
146
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
142
147
  return {
143
148
  deal,
144
149
  price: (0, _helpers.getPrice)({
145
150
  currency,
146
151
  hotelCurrency,
147
- price
152
+ price: taxes ? price : basePrice
148
153
  }),
149
154
  value
150
155
  };
@@ -155,11 +160,11 @@ const get = function () {
155
160
  hotelCurrency,
156
161
  ...discounts,
157
162
  originalPrice,
158
- totalPrice
163
+ taxes,
164
+ totalPrice: price
159
165
  }),
160
166
  id,
161
167
  included: [...new Set(Object.values(included).flat())].slice(0, 3),
162
- localTaxes,
163
168
  originalPrice: (0, _helpers.getPrice)({
164
169
  currency,
165
170
  hotelCurrency,
@@ -168,11 +173,16 @@ const get = function () {
168
173
  price: (0, _helpers.getPrice)({
169
174
  currency,
170
175
  hotelCurrency,
171
- price: totalPrice + localTaxes
176
+ price: price + (taxes ? localTaxes : 0)
172
177
  }),
173
178
  name,
174
179
  paymentConditions,
175
- restrictions
180
+ restrictions,
181
+ taxes: !taxes ? (0, _helpers.getPrice)({
182
+ currency,
183
+ hotelCurrency,
184
+ price: totalPrice - totalPriceOriginal + localTaxes
185
+ }) : undefined
176
186
  });
177
187
  });
178
188
  });
@@ -208,7 +218,8 @@ const get = function () {
208
218
  rates,
209
219
  size: size ? "".concat(size, " ").concat(_constants.UNIT[unit].size) : undefined
210
220
  };
211
- })
221
+ }),
222
+ taxes: !taxes ? taxesInformation.replace(/\r?\n|\r/g, '') : undefined
212
223
  });
213
224
  });
214
225
  };
@@ -1 +1 @@
1
- {"version":3,"file":"get.js","names":["_dataSources","require","_services","_jsSha","_interopRequireDefault","_constants","_helpers","obj","__esModule","default","DOUBLE","SINGLE","BED_TYPE","KEY_HASH","get","clubDiscount","applyClubDiscount","currency","userCurrency","locale","session","others","arguments","length","undefined","Promise","resolve","reject","idtokenprovider","id","checkin","nights","params","Object","entries","accessClubToken","authorization","cid","sha1","concat","lang","split","filter","_ref","value","response","request","hostname","process","env","SERVICE_BOOKING","endpoint","URLSearchParams","headers","catch","result","error","currencyCode","hotelCurrency","measureUnit","unit","roomTypes","ServiceCurrency","exchange","items","values","map","amountAvailable","availability","name","newInfoRoom","info","occupationOptions","rates","description","roomTypeInfo","bedDistributions","bedType","photos","roomSize","size","occupationQuantities","numAdults","adults","totalChildren","children","occupationRates","forEach","boardOptions","boards","cancellationPolicyDeadline","cancelEnd","cancellationPolicyName","cancelName","cancellationPolicyText","cancelText","cancellationPolicyTooltip","cancelTitle","includedList","included","paymentText","paymentConditions","restrictions","boardGroupName","boardName","detail","discountPricesBefore","discounts","maxRoomsPerReservation","max","minRoomsPerReservation","min","offersApplied","deals","totalLocalTaxes","localTaxes","totalPriceOriginal","totalPriceWithTaxes","totalPrice","withTaxesAvgPrice","clientCodeTotal","promoCode","clubTotal","club","offerTotal","deal","originalPrice","Math","withTaxes","push","amount","basePrice","normalizePrice","cancellation","hint","trim","title","text","dayPrice","getPrice","price","days","dayStandardFormat","offerId","discount","parseDiscount","Set","flat","slice","amenities","parseAmenities","bedDisposition","type","BED_DISPOSITION","bedTypes","reduce","next","includes","images","photoAltDescription","alt","urlLarge","large","urlMediumRect","thumbnail","maxOccupation","UNIT","exports"],"sources":["../../../src/services/Rates/get.js"],"sourcesContent":["/* eslint-disable no-async-promise-executor */\nimport { request } from '@mirai/data-sources';\nimport { ServiceCurrency } from '@mirai/services';\nimport sha1 from 'js-sha1';\n\nimport { BED_DISPOSITION, BED_TYPE, UNIT } from './constants';\nimport { getPrice, normalizePrice, parseAmenities, parseDiscount } from './helpers';\n\nconst { DOUBLE, SINGLE } = BED_TYPE;\n\nconst KEY_HASH = 'm14357';\n\nexport const get = ({\n clubDiscount: applyClubDiscount,\n currency: userCurrency,\n locale,\n session = {},\n ...others\n} = {}) =>\n new Promise(async (resolve, reject) => {\n if (!userCurrency || !locale) return reject();\n\n const { idtokenprovider: id, checkin, nights } = others;\n const params = Object.entries({\n applyClubDiscount,\n currency: userCurrency,\n ...others,\n accessClubToken: session.authorization,\n cid: sha1(`${KEY_HASH}-${id}-${checkin}-${nights}`),\n lang: locale.split('-')[0],\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 //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(reject);\n\n if (!response || response.result === 'EXCEPTION') return reject({ error: 'Upss, something bad happened!' }); //TODO\n\n const { currencyCode: hotelCurrency, measureUnit: unit, roomTypes } = response;\n const currency = userCurrency || hotelCurrency;\n await ServiceCurrency.exchange(currency);\n\n resolve({\n items: Object.values(roomTypes).map(\n ({ amountAvailable: availability, name, newInfoRoom: info = {}, occupationOptions = {} } = {}) => {\n const rates = [];\n const { description, roomTypeInfo: { bedDistributions: bedType = [], photos, roomSize: size } = {} } = info;\n const {\n occupationQuantities: { numAdults: adults = 0, totalChildren: children = 0 } = {},\n rates: occupationRates,\n } = Object.values(occupationOptions)[0];\n\n Object.values(occupationRates).forEach(\n ({\n boardOptions: boards,\n cancellationPolicyDeadline: cancelEnd,\n cancellationPolicyName: cancelName,\n cancellationPolicyText: cancelText,\n cancellationPolicyTooltip: cancelTitle,\n includedList: included,\n name,\n paymentText: paymentConditions,\n restrictions,\n } = {}) => {\n Object.values(boards).forEach(\n ({\n boardGroupName: boardName,\n detail,\n discountPricesBefore: discounts = {},\n id,\n maxRoomsPerReservation: max,\n minRoomsPerReservation: min,\n offersApplied: deals,\n totalLocalTaxes: localTaxes,\n totalPriceOriginal,\n totalPriceWithTaxes: totalPrice,\n withTaxesAvgPrice,\n } = {}) => {\n const { clientCodeTotal: promoCode, clubTotal: club, offerTotal: deal } = discounts;\n const originalPrice =\n Math.max(deal?.withTaxes || 0, club?.withTaxes || 0, promoCode?.withTaxes || 0) || totalPrice;\n\n rates.push({\n amount: [min, availability < max ? availability : max],\n basePrice: normalizePrice(totalPriceOriginal, currency),\n boardName,\n cancellation: {\n hint: `${cancelName} ${cancelEnd ? cancelEnd : ''}`.trim(),\n title: cancelTitle,\n text: cancelText,\n },\n dayPrice: getPrice({ currency, hotelCurrency, price: withTaxesAvgPrice }),\n days: detail.map(({ dayStandardFormat: value, offerId: deal, price } = {}) => ({\n deal,\n price: getPrice({ currency, hotelCurrency, price }),\n value,\n })),\n deals,\n discount: parseDiscount({ currency, hotelCurrency, ...discounts, originalPrice, totalPrice }),\n id,\n included: [...new Set(Object.values(included).flat())].slice(0, 3),\n localTaxes,\n originalPrice: getPrice({ currency, hotelCurrency, price: originalPrice }),\n price: getPrice({ currency, hotelCurrency, price: totalPrice + localTaxes }),\n name,\n paymentConditions,\n restrictions,\n });\n },\n );\n },\n );\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 description,\n images: photos?.map(({ photoAltDescription: alt, urlLarge: large, urlMediumRect: thumbnail } = {}) => ({\n alt,\n large,\n thumbnail,\n })),\n name,\n maxOccupation: adults + children,\n rates,\n size: size ? `${size} ${UNIT[unit].size}` : undefined,\n };\n },\n ),\n });\n });\n"],"mappings":"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"}
1
+ {"version":3,"file":"get.js","names":["_dataSources","require","_services","_jsSha","_interopRequireDefault","_constants","_helpers","obj","__esModule","default","DOUBLE","SINGLE","BED_TYPE","KEY_HASH","get","clubDiscount","applyClubDiscount","currency","userCurrency","locale","session","others","arguments","length","undefined","Promise","resolve","reject","idtokenprovider","id","checkin","nights","params","Object","entries","accessClubToken","authorization","cid","sha1","concat","lang","split","filter","_ref","value","response","request","hostname","process","env","SERVICE_BOOKING","endpoint","URLSearchParams","headers","catch","result","error","currencyCode","hotelCurrency","measureUnit","unit","roomTypes","taxesInformation","vatIncluded","taxes","ServiceCurrency","exchange","items","values","map","amountAvailable","availability","name","newInfoRoom","info","occupationOptions","rates","description","roomTypeInfo","bedDistributions","bedType","photos","roomSize","size","occupationQuantities","numAdults","adults","totalChildren","children","occupationRates","forEach","boardOptions","boards","cancellationPolicyDeadline","cancelEnd","cancellationPolicyName","cancelName","cancellationPolicyText","cancelText","cancellationPolicyTooltip","cancelTitle","includedList","included","paymentText","paymentConditions","restrictions","boardGroupName","boardName","detail","discountPricesBefore","discounts","maxRoomsPerReservation","max","minRoomsPerReservation","min","offersApplied","deals","originalAvgPrice","totalLocalTaxes","localTaxes","totalPriceOriginal","totalPriceWithTaxes","totalPrice","withTaxesAvgPrice","clientCodeTotal","promoCode","clubTotal","club","offerTotal","deal","price","originalPrice","Math","withTaxes","original","push","amount","basePrice","normalizePrice","cancellation","hint","trim","title","text","dayPrice","getPrice","days","dayStandardFormat","offerId","priceWithoutTaxes","priceWithTaxes","discount","parseDiscount","Set","flat","slice","amenities","parseAmenities","bedDisposition","type","BED_DISPOSITION","bedTypes","reduce","next","includes","images","photoAltDescription","alt","urlLarge","large","urlMediumRect","thumbnail","maxOccupation","UNIT","replace","exports"],"sources":["../../../src/services/Rates/get.js"],"sourcesContent":["/* eslint-disable no-async-promise-executor */\nimport { request } from '@mirai/data-sources';\nimport { ServiceCurrency } from '@mirai/services';\nimport sha1 from 'js-sha1';\n\nimport { BED_DISPOSITION, BED_TYPE, UNIT } from './constants';\nimport { getPrice, normalizePrice, parseAmenities, parseDiscount } from './helpers';\n\nconst { DOUBLE, SINGLE } = BED_TYPE;\n\nconst KEY_HASH = 'm14357';\n\nexport const get = ({\n clubDiscount: applyClubDiscount,\n currency: userCurrency,\n locale,\n session = {},\n ...others\n} = {}) =>\n new Promise(async (resolve, reject) => {\n if (!userCurrency || !locale) return reject();\n\n const { idtokenprovider: id, checkin, nights } = others;\n const params = Object.entries({\n applyClubDiscount,\n currency: userCurrency,\n ...others,\n accessClubToken: session.authorization,\n cid: sha1(`${KEY_HASH}-${id}-${checkin}-${nights}`),\n lang: locale.split('-')[0],\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 //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(reject);\n\n if (!response || response.result === 'EXCEPTION') return reject({ error: 'Upss, something bad happened!' }); //TODO\n\n const {\n currencyCode: hotelCurrency,\n measureUnit: unit,\n roomTypes,\n taxesInformation,\n vatIncluded: taxes,\n } = response;\n const currency = userCurrency || hotelCurrency;\n await ServiceCurrency.exchange(currency);\n\n resolve({\n items: Object.values(roomTypes).map(\n ({ amountAvailable: availability, name, newInfoRoom: info = {}, occupationOptions = {} } = {}) => {\n const rates = [];\n const { description, roomTypeInfo: { bedDistributions: bedType = [], photos, roomSize: size } = {} } = info;\n const {\n occupationQuantities: { numAdults: adults = 0, totalChildren: children = 0 } = {},\n rates: occupationRates,\n } = Object.values(occupationOptions)[0];\n\n Object.values(occupationRates).forEach(\n ({\n boardOptions: boards,\n cancellationPolicyDeadline: cancelEnd,\n cancellationPolicyName: cancelName,\n cancellationPolicyText: cancelText,\n cancellationPolicyTooltip: cancelTitle,\n includedList: included,\n name,\n paymentText: paymentConditions,\n restrictions,\n } = {}) => {\n Object.values(boards).forEach(\n ({\n boardGroupName: boardName,\n detail,\n discountPricesBefore: discounts = {},\n id,\n maxRoomsPerReservation: max,\n minRoomsPerReservation: min,\n offersApplied: deals,\n originalAvgPrice,\n totalLocalTaxes: localTaxes,\n totalPriceOriginal,\n totalPriceWithTaxes: totalPrice,\n withTaxesAvgPrice,\n } = {}) => {\n const { clientCodeTotal: promoCode, clubTotal: club, offerTotal: deal } = discounts;\n const price = taxes ? totalPrice : totalPriceOriginal;\n const originalPrice =\n (taxes\n ? Math.max(deal?.withTaxes || 0, club?.withTaxes || 0, promoCode?.withTaxes || 0)\n : Math.max(deal?.original || 0, club?.original || 0, promoCode?.original || 0)) || price;\n\n rates.push({\n amount: [min, availability < max ? availability : max],\n basePrice: normalizePrice(totalPriceOriginal, currency),\n boardName,\n cancellation: {\n hint: `${cancelName} ${cancelEnd ? cancelEnd : ''}`.trim(),\n title: cancelTitle,\n text: cancelText,\n },\n dayPrice: getPrice({\n currency,\n hotelCurrency,\n price: taxes ? withTaxesAvgPrice : originalAvgPrice,\n }),\n days: detail.map(\n ({\n dayStandardFormat: value,\n offerId: deal,\n priceWithoutTaxes: basePrice,\n priceWithTaxes: price,\n } = {}) => ({\n deal,\n price: getPrice({ currency, hotelCurrency, price: taxes ? price : basePrice }),\n value,\n }),\n ),\n deals,\n discount: parseDiscount({\n currency,\n hotelCurrency,\n ...discounts,\n originalPrice,\n taxes,\n totalPrice: price,\n }),\n id,\n included: [...new Set(Object.values(included).flat())].slice(0, 3),\n originalPrice: getPrice({ currency, hotelCurrency, price: originalPrice }),\n price: getPrice({\n currency,\n hotelCurrency,\n price: price + (taxes ? localTaxes : 0),\n }),\n name,\n paymentConditions,\n restrictions,\n taxes: !taxes\n ? getPrice({ currency, hotelCurrency, price: totalPrice - totalPriceOriginal + localTaxes })\n : undefined,\n });\n },\n );\n },\n );\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 description,\n images: photos?.map(({ photoAltDescription: alt, urlLarge: large, urlMediumRect: thumbnail } = {}) => ({\n alt,\n large,\n thumbnail,\n })),\n name,\n maxOccupation: adults + children,\n rates,\n size: size ? `${size} ${UNIT[unit].size}` : undefined,\n };\n },\n ),\n taxes: !taxes ? taxesInformation.replace(/\\r?\\n|\\r/g, '') : undefined,\n });\n });\n"],"mappings":"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"}
@@ -16,6 +16,7 @@ const parseDiscount = function () {
16
16
  offerDiscountPercentInCents: dealValue,
17
17
  offerTotal: deal,
18
18
  originalPrice,
19
+ taxes,
19
20
  totalPrice
20
21
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
21
22
  return {
@@ -25,21 +26,21 @@ const parseDiscount = function () {
25
26
  value: (0, _getPrice.getPrice)({
26
27
  currency,
27
28
  hotelCurrency,
28
- price: club.withTaxes * (clubValue / 10000)
29
+ price: (taxes ? club.withTaxes : club.original) * (clubValue / 10000)
29
30
  })
30
31
  } : undefined, deal ? {
31
32
  type: 1,
32
33
  value: (0, _getPrice.getPrice)({
33
34
  currency,
34
35
  hotelCurrency,
35
- price: deal.withTaxes * (dealValue / 10000)
36
+ price: (taxes ? deal.withTaxes : deal.original) * (dealValue / 10000)
36
37
  })
37
38
  } : undefined, promoCode ? {
38
39
  type: 2,
39
40
  value: (0, _getPrice.getPrice)({
40
41
  currency,
41
42
  hotelCurrency,
42
- price: promoCode.withTaxes * (promoCodeValue / 10000)
43
+ price: (taxes ? promoCode.withTaxes : promoCode.original) * (promoCodeValue / 10000)
43
44
  })
44
45
  } : undefined].filter(value => !!value)
45
46
  };
@@ -1 +1 @@
1
- {"version":3,"file":"parseDiscount.js","names":["_getPrice","require","parseDiscount","clientCodeDiscountPercentInCents","promoCodeValue","clientCodeTotal","promoCode","clubDiscountPercentInCents","clubValue","clubTotal","club","currency","hotelCurrency","offerDiscountPercentInCents","dealValue","offerTotal","deal","originalPrice","totalPrice","arguments","length","undefined","percentage","Number","parseFloat","toFixed","breakdown","type","value","getPrice","price","withTaxes","filter","exports"],"sources":["../../../../src/services/Rates/helpers/parseDiscount.js"],"sourcesContent":["import { getPrice } from './getPrice';\n\nexport const parseDiscount = ({\n clientCodeDiscountPercentInCents: promoCodeValue,\n clientCodeTotal: promoCode,\n clubDiscountPercentInCents: clubValue,\n clubTotal: club,\n currency,\n hotelCurrency,\n offerDiscountPercentInCents: dealValue,\n offerTotal: deal,\n originalPrice,\n totalPrice,\n} = {}) => ({\n percentage: +Number.parseFloat(((originalPrice - totalPrice) * 100) / originalPrice).toFixed(0),\n breakdown: [\n club\n ? {\n type: 0,\n value: getPrice({ currency, hotelCurrency, price: club.withTaxes * (clubValue / 10000) }),\n }\n : undefined,\n deal\n ? {\n type: 1,\n value: getPrice({ currency, hotelCurrency, price: deal.withTaxes * (dealValue / 10000) }),\n }\n : undefined,\n promoCode\n ? {\n type: 2,\n value: getPrice({ currency, hotelCurrency, price: promoCode.withTaxes * (promoCodeValue / 10000) }),\n }\n : undefined,\n ].filter((value) => !!value),\n});\n"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAEO,MAAMC,aAAa,GAAG,SAAAA,CAAA;EAAA,IAAC;IAC5BC,gCAAgC,EAAEC,cAAc;IAChDC,eAAe,EAAEC,SAAS;IAC1BC,0BAA0B,EAAEC,SAAS;IACrCC,SAAS,EAAEC,IAAI;IACfC,QAAQ;IACRC,aAAa;IACbC,2BAA2B,EAAEC,SAAS;IACtCC,UAAU,EAAEC,IAAI;IAChBC,aAAa;IACbC;EACF,CAAC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAAA,OAAM;IACVG,UAAU,EAAE,CAACC,MAAM,CAACC,UAAU,CAAE,CAACP,aAAa,GAAGC,UAAU,IAAI,GAAG,GAAID,aAAa,CAAC,CAACQ,OAAO,CAAC,CAAC,CAAC;IAC/FC,SAAS,EAAE,CACThB,IAAI,GACA;MACEiB,IAAI,EAAE,CAAC;MACPC,KAAK,EAAE,IAAAC,kBAAQ,EAAC;QAAElB,QAAQ;QAAEC,aAAa;QAAEkB,KAAK,EAAEpB,IAAI,CAACqB,SAAS,IAAIvB,SAAS,GAAG,KAAK;MAAE,CAAC;IAC1F,CAAC,GACDa,SAAS,EACbL,IAAI,GACA;MACEW,IAAI,EAAE,CAAC;MACPC,KAAK,EAAE,IAAAC,kBAAQ,EAAC;QAAElB,QAAQ;QAAEC,aAAa;QAAEkB,KAAK,EAAEd,IAAI,CAACe,SAAS,IAAIjB,SAAS,GAAG,KAAK;MAAE,CAAC;IAC1F,CAAC,GACDO,SAAS,EACbf,SAAS,GACL;MACEqB,IAAI,EAAE,CAAC;MACPC,KAAK,EAAE,IAAAC,kBAAQ,EAAC;QAAElB,QAAQ;QAAEC,aAAa;QAAEkB,KAAK,EAAExB,SAAS,CAACyB,SAAS,IAAI3B,cAAc,GAAG,KAAK;MAAE,CAAC;IACpG,CAAC,GACDiB,SAAS,CACd,CAACW,MAAM,CAAEJ,KAAK,IAAK,CAAC,CAACA,KAAK;EAC7B,CAAC;AAAA,CAAC;AAACK,OAAA,CAAA/B,aAAA,GAAAA,aAAA"}
1
+ {"version":3,"file":"parseDiscount.js","names":["_getPrice","require","parseDiscount","clientCodeDiscountPercentInCents","promoCodeValue","clientCodeTotal","promoCode","clubDiscountPercentInCents","clubValue","clubTotal","club","currency","hotelCurrency","offerDiscountPercentInCents","dealValue","offerTotal","deal","originalPrice","taxes","totalPrice","arguments","length","undefined","percentage","Number","parseFloat","toFixed","breakdown","type","value","getPrice","price","withTaxes","original","filter","exports"],"sources":["../../../../src/services/Rates/helpers/parseDiscount.js"],"sourcesContent":["import { getPrice } from './getPrice';\n\nexport const parseDiscount = ({\n clientCodeDiscountPercentInCents: promoCodeValue,\n clientCodeTotal: promoCode,\n clubDiscountPercentInCents: clubValue,\n clubTotal: club,\n currency,\n hotelCurrency,\n offerDiscountPercentInCents: dealValue,\n offerTotal: deal,\n originalPrice,\n taxes,\n totalPrice,\n} = {}) => ({\n percentage: +Number.parseFloat(((originalPrice - totalPrice) * 100) / originalPrice).toFixed(0),\n breakdown: [\n club\n ? {\n type: 0,\n value: getPrice({\n currency,\n hotelCurrency,\n price: (taxes ? club.withTaxes : club.original) * (clubValue / 10000),\n }),\n }\n : undefined,\n deal\n ? {\n type: 1,\n value: getPrice({\n currency,\n hotelCurrency,\n price: (taxes ? deal.withTaxes : deal.original) * (dealValue / 10000),\n }),\n }\n : undefined,\n promoCode\n ? {\n type: 2,\n value: getPrice({\n currency,\n hotelCurrency,\n price: (taxes ? promoCode.withTaxes : promoCode.original) * (promoCodeValue / 10000),\n }),\n }\n : undefined,\n ].filter((value) => !!value),\n});\n"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAEO,MAAMC,aAAa,GAAG,SAAAA,CAAA;EAAA,IAAC;IAC5BC,gCAAgC,EAAEC,cAAc;IAChDC,eAAe,EAAEC,SAAS;IAC1BC,0BAA0B,EAAEC,SAAS;IACrCC,SAAS,EAAEC,IAAI;IACfC,QAAQ;IACRC,aAAa;IACbC,2BAA2B,EAAEC,SAAS;IACtCC,UAAU,EAAEC,IAAI;IAChBC,aAAa;IACbC,KAAK;IACLC;EACF,CAAC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAAA,OAAM;IACVG,UAAU,EAAE,CAACC,MAAM,CAACC,UAAU,CAAE,CAACR,aAAa,GAAGE,UAAU,IAAI,GAAG,GAAIF,aAAa,CAAC,CAACS,OAAO,CAAC,CAAC,CAAC;IAC/FC,SAAS,EAAE,CACTjB,IAAI,GACA;MACEkB,IAAI,EAAE,CAAC;MACPC,KAAK,EAAE,IAAAC,kBAAQ,EAAC;QACdnB,QAAQ;QACRC,aAAa;QACbmB,KAAK,EAAE,CAACb,KAAK,GAAGR,IAAI,CAACsB,SAAS,GAAGtB,IAAI,CAACuB,QAAQ,KAAKzB,SAAS,GAAG,KAAK;MACtE,CAAC;IACH,CAAC,GACDc,SAAS,EACbN,IAAI,GACA;MACEY,IAAI,EAAE,CAAC;MACPC,KAAK,EAAE,IAAAC,kBAAQ,EAAC;QACdnB,QAAQ;QACRC,aAAa;QACbmB,KAAK,EAAE,CAACb,KAAK,GAAGF,IAAI,CAACgB,SAAS,GAAGhB,IAAI,CAACiB,QAAQ,KAAKnB,SAAS,GAAG,KAAK;MACtE,CAAC;IACH,CAAC,GACDQ,SAAS,EACbhB,SAAS,GACL;MACEsB,IAAI,EAAE,CAAC;MACPC,KAAK,EAAE,IAAAC,kBAAQ,EAAC;QACdnB,QAAQ;QACRC,aAAa;QACbmB,KAAK,EAAE,CAACb,KAAK,GAAGZ,SAAS,CAAC0B,SAAS,GAAG1B,SAAS,CAAC2B,QAAQ,KAAK7B,cAAc,GAAG,KAAK;MACrF,CAAC;IACH,CAAC,GACDkB,SAAS,CACd,CAACY,MAAM,CAAEL,KAAK,IAAK,CAAC,CAACA,KAAK;EAC7B,CAAC;AAAA,CAAC;AAACM,OAAA,CAAAjC,aAAA,GAAAA,aAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mirai/core",
3
- "version": "0.3.48",
3
+ "version": "0.3.50",
4
4
  "source": "src/index.js",
5
5
  "repository": "https://gitlab.com/miraicorp/dev/frontend/core",
6
6
  "author": "JΛVI <hello@soyjavi.com>",