@mirai/core 0.3.226 → 0.3.235

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 (22) hide show
  1. package/build/Core.js +1 -1
  2. package/build/Core.js.map +1 -1
  3. package/build/components/Checkout/Checkout.module.css +1 -1
  4. package/build/components/Checkout/partials/Checkout.Details.js +2 -1
  5. package/build/components/Checkout/partials/Checkout.Details.js.map +1 -1
  6. package/build/components/Checkout/partials/Checkout.Summary.js +5 -1
  7. package/build/components/Checkout/partials/Checkout.Summary.js.map +1 -1
  8. package/build/components/Checkout/partials/__tests__/__snapshots__/Checkout.Details.test.js.snap +5 -0
  9. package/build/components/Rates/Rates.module.css +4 -4
  10. package/build/components/Rates/components/Item/Item.Summary.js +4 -2
  11. package/build/components/Rates/components/Item/Item.Summary.js.map +1 -1
  12. package/build/components/Rates/helpers/trackSelectItem.js +14 -25
  13. package/build/components/Rates/helpers/trackSelectItem.js.map +1 -1
  14. package/build/components/__shared__/SelectEnvironment/SelectEnvironment.js +9 -3
  15. package/build/components/__shared__/SelectEnvironment/SelectEnvironment.js.map +1 -1
  16. package/build/services/Rates/__tests__/__mocks__/rates-response-cancel-types.json +42 -0
  17. package/build/services/Rates/__tests__/__mocks__/rates-response-no-taxes-no-local.json +6 -0
  18. package/build/services/Rates/__tests__/__mocks__/rates-response-no-taxes.json +36 -0
  19. package/build/services/Rates/__tests__/__mocks__/rates-response.json +4 -0
  20. package/build/services/Rates/helpers/parseItem.js +1 -0
  21. package/build/services/Rates/helpers/parseItem.js.map +1 -1
  22. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"parseItem.js","names":["_getIncrements","require","_getPrice","_normalizePrice","_parseDiscount","VARIABLE_OFFER","parseItem","_ref","currency","fees","hotelCurrency","id","roomId","rates","baseRates","taxes","cancellations","boards","Object","values","forEach","cancellationPolicyDeadline","cancelCaption","cancellationPolicyName","cancelName","cancellationPolicyText","cancelText","cancellationPolicyTooltip","cancelTitle","cancellationPolicyTypeEnum","cancelId","prepay","rateId","includedList","included","isClub","name","offer","paymentSortText","paymentTitle","paymentText","paymentConditions","pendingSecondsValid","countdown","rateWarnings","warnings","boardOptions","arguments","length","undefined","restrictions","entries","map","key","value","isVariableOffer","cancellation","find","concat","caption","toUpperCase","slice","trim","highlight","title","text","push","discountPercentage","discountPricesBefore","offerDiscountPercentInCents","parseInt","filter","now","Date","cancellationId","setSeconds","getSeconds","Set","flat","_ref2","boardGroupName","detail","discounts","offersApplied","deals","originalAvgPrice","totalBasePrice","totalLocalTaxes","localTaxes","totalPriceOriginal","totalPriceWithTaxes","totalPrice","withTaxesAvgPrice","clientCodeDiscountPercentInCents","promoCodeValue","clientCodeTotal","promoCode","clubDiscountPercentInCents","clubValue","clubTotal","club","dealValue","offerTotal","deal","price","basePrice","withoutTaxes","originalPrice","Math","max","withTaxes","original","getPrice","checkoutPrice","normalizePrice","dayPrice","discount","parseDiscount","offerDates","offerDay","_ref3","dayStandardFormat","date","variants","boardTranslation","detailName","getIncrements","exports"],"sources":["../../../../src/services/Rates/helpers/parseItem.js"],"sourcesContent":["import { getIncrements } from './getIncrements';\nimport { getPrice } from './getPrice';\nimport { normalizePrice } from './normalizePrice';\nimport { parseDiscount } from './parseDiscount';\n\nconst VARIABLE_OFFER = 'OFFER_WARNING_ONLY_X_NIGHTS';\n\nexport const parseItem = ({ currency, fees, hotelCurrency, id: roomId, rates: baseRates = {}, taxes }) => {\n const cancellations = [];\n const rates = [];\n const boards = [];\n\n Object.values(baseRates).forEach(\n ({\n // 1. cancellations\n cancellationPolicyDeadline: cancelCaption,\n cancellationPolicyName: cancelName,\n cancellationPolicyText: cancelText,\n cancellationPolicyTooltip: cancelTitle,\n cancellationPolicyTypeEnum: cancelId,\n prepay,\n // 2. rates\n id: rateId,\n includedList: included,\n isClub,\n name,\n offer = false,\n paymentSortText: paymentTitle,\n paymentText: paymentConditions,\n pendingSecondsValid: countdown,\n rateWarnings: warnings,\n // 3. boards\n boardOptions = {},\n } = {}) => {\n const restrictions = Object.entries(warnings).map(([key, value] = []) => ({\n isVariableOffer: key === VARIABLE_OFFER,\n value,\n }));\n // 1. get cancellations\n let cancellation = cancellations.find(({ id } = {}) => id === `${cancelId}-${cancelTitle}-${prepay}`);\n\n if (!cancellation) {\n cancellation = {\n caption: `${cancelCaption ? `${cancelCaption[0].toUpperCase()}${cancelCaption.slice(1)}` : ''}${\n paymentTitle ? '.' : ''\n } ${paymentTitle || ''}`.trim(),\n highlight: cancelId === 'freeCancellation',\n id: `${cancelId}-${cancelTitle}-${prepay}`,\n name: cancelName,\n paymentConditions,\n title: cancelTitle,\n text: cancelText,\n };\n cancellations.push(cancellation);\n }\n\n // 2. get rates\n const [discountPercentage] = Object.values(boardOptions)\n .map(({ discountPricesBefore: { offerDiscountPercentInCents: value = 0 } = {} } = {}) =>\n value !== null ? parseInt(value / 100) : undefined,\n )\n .filter((value) => value > 0);\n const now = new Date();\n\n rates.push({\n id: rateId,\n cancellationId: cancellation.id,\n countdown: countdown !== null ? now.setSeconds(now.getSeconds() + countdown) : undefined,\n discountPercentage,\n included: [...new Set(Object.values(included).flat())],\n isClub,\n name,\n offer,\n restrictions,\n });\n\n // 3. get boards\n Object.values(boardOptions).forEach(\n ({\n boardGroupName: name,\n detail,\n discountPricesBefore: discounts = {},\n id,\n offersApplied: deals,\n originalAvgPrice,\n totalBasePrice,\n totalLocalTaxes: localTaxes,\n totalPriceOriginal,\n totalPriceWithTaxes: totalPrice,\n withTaxesAvgPrice,\n }) => {\n const {\n clientCodeDiscountPercentInCents: promoCodeValue,\n clientCodeTotal: promoCode,\n clubDiscountPercentInCents: clubValue,\n clubTotal: club,\n offerDiscountPercentInCents: dealValue,\n offerTotal: deal,\n } = discounts;\n const price = taxes && fees ? totalPrice : totalPriceOriginal;\n const basePrice =\n totalBasePrice +\n (deal && dealValue ? deal.withoutTaxes * (dealValue / 10000) : 0) +\n (club && clubValue ? club.withoutTaxes * (clubValue / 10000) : 0) +\n (promoCode && promoCodeValue ? promoCode.withoutTaxes * (promoCodeValue / 10000) : 0);\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 boards.push({\n roomId,\n cancellationId: cancellation.id,\n rateId,\n // rate info\n included: [...new Set(Object.values(included).flat())].slice(0, 3),\n paymentConditions,\n restrictions,\n // board info\n basePrice: getPrice({ currency, hotelCurrency, price: basePrice }),\n checkoutPrice: normalizePrice(totalPriceOriginal, hotelCurrency),\n dayPrice: getPrice({ currency, hotelCurrency, price: taxes ? withTaxesAvgPrice : originalAvgPrice }),\n deals,\n discount: parseDiscount({ currency, hotelCurrency, ...discounts, originalPrice, totalPrice: price }),\n id,\n fees: getPrice({ currency, hotelCurrency, price: localTaxes }),\n name,\n offerDates: detail.filter(({ offerDay } = {}) => offerDay).map(({ dayStandardFormat: date }) => date),\n originalPrice: getPrice({ currency, hotelCurrency, price: originalPrice }),\n price: getPrice({ currency, hotelCurrency, price }),\n taxes: getPrice({\n currency,\n hotelCurrency,\n price: totalPrice - totalBasePrice - (fees ? localTaxes : 0),\n }),\n variants: detail\n .map(({ boardTranslation: name, dayStandardFormat: value } = {}) => ({ name, value }))\n .filter(({ name: detailName } = {}) => detailName !== name),\n });\n },\n );\n },\n );\n\n return { ...getIncrements({ cancellations, rates, boards }) };\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"parseItem.js","names":["_getIncrements","require","_getPrice","_normalizePrice","_parseDiscount","VARIABLE_OFFER","parseItem","_ref","currency","fees","hotelCurrency","id","roomId","rates","baseRates","taxes","cancellations","boards","Object","values","forEach","cancellationPolicyDeadline","cancelCaption","cancellationPolicyName","cancelName","cancellationPolicyText","cancelText","cancellationPolicyTooltip","cancelTitle","cancellationPolicyTypeEnum","cancelId","prepay","rateId","includedList","included","isClub","name","offer","paymentSortText","paymentTitle","paymentText","paymentConditions","pendingSecondsValid","countdown","rateWarnings","warnings","boardOptions","arguments","length","undefined","restrictions","entries","map","key","value","isVariableOffer","cancellation","find","concat","caption","toUpperCase","slice","trim","highlight","title","text","push","discountPercentage","discountPricesBefore","offerDiscountPercentInCents","parseInt","filter","now","Date","cancellationId","setSeconds","getSeconds","Set","flat","_ref2","boardGroupName","detail","discounts","offersApplied","deals","originalAvgPrice","totalBasePrice","totalLocalTaxes","localTaxes","totalPriceOriginal","totalPriceWithTaxes","totalPrice","withTaxesAvgPrice","clientCodeDiscountPercentInCents","promoCodeValue","clientCodeTotal","promoCode","clubDiscountPercentInCents","clubValue","clubTotal","club","dealValue","offerTotal","deal","price","basePrice","withoutTaxes","originalPrice","Math","max","withTaxes","original","getPrice","checkoutPrice","normalizePrice","dayPrice","discount","parseDiscount","offerDates","offerDay","_ref3","dayStandardFormat","date","totalPriceRaw","variants","boardTranslation","detailName","getIncrements","exports"],"sources":["../../../../src/services/Rates/helpers/parseItem.js"],"sourcesContent":["import { getIncrements } from './getIncrements';\nimport { getPrice } from './getPrice';\nimport { normalizePrice } from './normalizePrice';\nimport { parseDiscount } from './parseDiscount';\n\nconst VARIABLE_OFFER = 'OFFER_WARNING_ONLY_X_NIGHTS';\n\nexport const parseItem = ({ currency, fees, hotelCurrency, id: roomId, rates: baseRates = {}, taxes }) => {\n const cancellations = [];\n const rates = [];\n const boards = [];\n\n Object.values(baseRates).forEach(\n ({\n // 1. cancellations\n cancellationPolicyDeadline: cancelCaption,\n cancellationPolicyName: cancelName,\n cancellationPolicyText: cancelText,\n cancellationPolicyTooltip: cancelTitle,\n cancellationPolicyTypeEnum: cancelId,\n prepay,\n // 2. rates\n id: rateId,\n includedList: included,\n isClub,\n name,\n offer = false,\n paymentSortText: paymentTitle,\n paymentText: paymentConditions,\n pendingSecondsValid: countdown,\n rateWarnings: warnings,\n // 3. boards\n boardOptions = {},\n } = {}) => {\n const restrictions = Object.entries(warnings).map(([key, value] = []) => ({\n isVariableOffer: key === VARIABLE_OFFER,\n value,\n }));\n // 1. get cancellations\n let cancellation = cancellations.find(({ id } = {}) => id === `${cancelId}-${cancelTitle}-${prepay}`);\n\n if (!cancellation) {\n cancellation = {\n caption: `${cancelCaption ? `${cancelCaption[0].toUpperCase()}${cancelCaption.slice(1)}` : ''}${\n paymentTitle ? '.' : ''\n } ${paymentTitle || ''}`.trim(),\n highlight: cancelId === 'freeCancellation',\n id: `${cancelId}-${cancelTitle}-${prepay}`,\n name: cancelName,\n paymentConditions,\n title: cancelTitle,\n text: cancelText,\n };\n cancellations.push(cancellation);\n }\n\n // 2. get rates\n const [discountPercentage] = Object.values(boardOptions)\n .map(({ discountPricesBefore: { offerDiscountPercentInCents: value = 0 } = {} } = {}) =>\n value !== null ? parseInt(value / 100) : undefined,\n )\n .filter((value) => value > 0);\n const now = new Date();\n\n rates.push({\n id: rateId,\n cancellationId: cancellation.id,\n countdown: countdown !== null ? now.setSeconds(now.getSeconds() + countdown) : undefined,\n discountPercentage,\n included: [...new Set(Object.values(included).flat())],\n isClub,\n name,\n offer,\n restrictions,\n });\n\n // 3. get boards\n Object.values(boardOptions).forEach(\n ({\n boardGroupName: name,\n detail,\n discountPricesBefore: discounts = {},\n id,\n offersApplied: deals,\n originalAvgPrice,\n totalBasePrice,\n totalLocalTaxes: localTaxes,\n totalPriceOriginal,\n totalPriceWithTaxes: totalPrice,\n withTaxesAvgPrice,\n }) => {\n const {\n clientCodeDiscountPercentInCents: promoCodeValue,\n clientCodeTotal: promoCode,\n clubDiscountPercentInCents: clubValue,\n clubTotal: club,\n offerDiscountPercentInCents: dealValue,\n offerTotal: deal,\n } = discounts;\n const price = taxes && fees ? totalPrice : totalPriceOriginal;\n const basePrice =\n totalBasePrice +\n (deal && dealValue ? deal.withoutTaxes * (dealValue / 10000) : 0) +\n (club && clubValue ? club.withoutTaxes * (clubValue / 10000) : 0) +\n (promoCode && promoCodeValue ? promoCode.withoutTaxes * (promoCodeValue / 10000) : 0);\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 boards.push({\n roomId,\n cancellationId: cancellation.id,\n rateId,\n // rate info\n included: [...new Set(Object.values(included).flat())].slice(0, 3),\n paymentConditions,\n restrictions,\n // board info\n basePrice: getPrice({ currency, hotelCurrency, price: basePrice }),\n checkoutPrice: normalizePrice(totalPriceOriginal, hotelCurrency),\n dayPrice: getPrice({ currency, hotelCurrency, price: taxes ? withTaxesAvgPrice : originalAvgPrice }),\n deals,\n discount: parseDiscount({ currency, hotelCurrency, ...discounts, originalPrice, totalPrice: price }),\n id,\n fees: getPrice({ currency, hotelCurrency, price: localTaxes }),\n name,\n offerDates: detail.filter(({ offerDay } = {}) => offerDay).map(({ dayStandardFormat: date }) => date),\n originalPrice: getPrice({ currency, hotelCurrency, price: originalPrice }),\n price: getPrice({ currency, hotelCurrency, price }),\n taxes: getPrice({\n currency,\n hotelCurrency,\n price: totalPrice - totalBasePrice - (fees ? localTaxes : 0),\n }),\n totalPriceRaw: totalPrice + (!fees ? localTaxes : 0),\n variants: detail\n .map(({ boardTranslation: name, dayStandardFormat: value } = {}) => ({ name, value }))\n .filter(({ name: detailName } = {}) => detailName !== name),\n });\n },\n );\n },\n );\n\n return { ...getIncrements({ cancellations, rates, boards }) };\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.226",
3
+ "version": "0.3.235",
4
4
  "source": "src/index.js",
5
5
  "repository": "https://gitlab.com/miraicorp/dev/frontend/core",
6
6
  "author": "JΛVI <hello@soyjavi.com>",