@roomstay/frontend 2.6.62 → 2.6.64

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 (103) hide show
  1. package/dist/537.bundle.js +1 -1
  2. package/dist/839.bundle.js +1 -1
  3. package/dist/950.bundle.js +1 -1
  4. package/dist/978.bundle.js +1 -1
  5. package/dist/main.bundle.js +1 -1
  6. package/dist/src/api/BaseAPI.js +5 -10
  7. package/dist/src/api/BaseAPI.js.map +1 -1
  8. package/dist/src/api/ReservationAPI.d.ts +23 -3
  9. package/dist/src/api/ReservationAPI.js +75 -31
  10. package/dist/src/api/ReservationAPI.js.map +1 -1
  11. package/dist/src/components/User/Forms/ForgotPasswordForm.js +11 -5
  12. package/dist/src/components/User/Forms/ForgotPasswordForm.js.map +1 -1
  13. package/dist/src/components/User/Forms/SignInForm.js +5 -2
  14. package/dist/src/components/User/Forms/SignInForm.js.map +1 -1
  15. package/dist/src/components/User/Forms/SignUpForm.d.ts +5 -0
  16. package/dist/src/components/User/Forms/SignUpForm.js +27 -10
  17. package/dist/src/components/User/Forms/SignUpForm.js.map +1 -1
  18. package/dist/src/components/generic/date/DatePicker.js +1 -1
  19. package/dist/src/components/generic/date/DatePicker.js.map +1 -1
  20. package/dist/src/components/members/InlineSignUpSection.d.ts +7 -0
  21. package/dist/src/components/members/InlineSignUpSection.js +122 -0
  22. package/dist/src/components/members/InlineSignUpSection.js.map +1 -0
  23. package/dist/src/components/members/SignInModal/ExternalMemberModal.js +4 -4
  24. package/dist/src/components/members/SignInModal/ExternalMemberModal.js.map +1 -1
  25. package/dist/src/components/members/SignInModal/InternalMemberSignInModal.js +78 -33
  26. package/dist/src/components/members/SignInModal/InternalMemberSignInModal.js.map +1 -1
  27. package/dist/src/components/members/SignInModal/MemberSignInModal.js +11 -1
  28. package/dist/src/components/members/SignInModal/MemberSignInModal.js.map +1 -1
  29. package/dist/src/components/reservation/ReservationItem.js +1 -1
  30. package/dist/src/components/reservation/ReservationItem.js.map +1 -1
  31. package/dist/src/components/steps/addons/AddonCard.js +14 -14
  32. package/dist/src/components/steps/addons/AddonCard.js.map +1 -1
  33. package/dist/src/components/steps/confirmation/RoomContactDetails.js +12 -12
  34. package/dist/src/components/steps/confirmation/RoomContactDetails.js.map +1 -1
  35. package/dist/src/components/steps/room/AvailableUpgradesModal.js +1 -1
  36. package/dist/src/components/steps/room/AvailableUpgradesModal.js.map +1 -1
  37. package/dist/src/components/steps/room/LargeRoomCard.js +7 -0
  38. package/dist/src/components/steps/room/LargeRoomCard.js.map +1 -1
  39. package/dist/src/components/steps/room/roomDetails/RoomDetails.js +1 -1
  40. package/dist/src/components/steps/room/roomDetails/RoomDetails.js.map +1 -1
  41. package/dist/src/components/steps/room/roomDetails/RoomDetailsBedsBlock.js +12 -7
  42. package/dist/src/components/steps/room/roomDetails/RoomDetailsBedsBlock.js.map +1 -1
  43. package/dist/src/components/summary/BESummaryAddonRow.js +1 -1
  44. package/dist/src/components/summary/BESummaryAddonRow.js.map +1 -1
  45. package/dist/src/contexts/BasketContext/BasketContextType.d.ts +2 -5
  46. package/dist/src/contexts/BasketContext/BasketContextType.js.map +1 -1
  47. package/dist/src/contexts/BasketContext/BasketContextWrapper.js +48 -22
  48. package/dist/src/contexts/BasketContext/BasketContextWrapper.js.map +1 -1
  49. package/dist/src/contexts/CompanyContext/CompanyContextType.type.d.ts +1 -1
  50. package/dist/src/contexts/CompanyContext/CompanyContextType.type.js.map +1 -1
  51. package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js +4 -0
  52. package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js.map +1 -1
  53. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js +18 -18
  54. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js.map +1 -1
  55. package/dist/src/contexts/FullPageEngineContext/FullPageEngineContextTypes.d.ts +5 -4
  56. package/dist/src/contexts/FullPageEngineContext/FullPageEngineContextTypes.js.map +1 -1
  57. package/dist/src/contexts/FullPageEngineContext/FullPageEngineContextWrapper.js +35 -14
  58. package/dist/src/contexts/FullPageEngineContext/FullPageEngineContextWrapper.js.map +1 -1
  59. package/dist/src/contexts/Members/RoomstayMemberContext/RoomstayMemberContextProvider.js.map +1 -1
  60. package/dist/src/hooks/useSignedInMember.d.ts +1 -1
  61. package/dist/src/models/Addon/Addon.d.ts +6 -64
  62. package/dist/src/models/Addon/Addon.js +14 -28
  63. package/dist/src/models/Addon/Addon.js.map +1 -1
  64. package/dist/src/models/Api/HotelDTO.d.ts +1 -0
  65. package/dist/src/models/Api/HotelDTO.js.map +1 -1
  66. package/dist/src/models/AppQueryParameters.d.ts +2 -1
  67. package/dist/src/models/AppQueryParameters.js +1 -0
  68. package/dist/src/models/AppQueryParameters.js.map +1 -1
  69. package/dist/src/models/BasketAddonRow.js +3 -2
  70. package/dist/src/models/BasketAddonRow.js.map +1 -1
  71. package/dist/src/models/BasketRow.d.ts +1 -0
  72. package/dist/src/models/BasketRow.js.map +1 -1
  73. package/dist/src/models/Client/Hotel/Hotel.d.ts +4 -2
  74. package/dist/src/models/Client/Hotel/Hotel.js.map +1 -1
  75. package/dist/src/models/RoomstaySession.d.ts +1 -0
  76. package/dist/src/models/RoomstaySession.js.map +1 -1
  77. package/dist/src/models/UserProfile.d.ts +20 -20
  78. package/dist/src/models/UserProfile.js.map +1 -1
  79. package/dist/src/pages/account/Reservations/AccountReservationSinglePage.js +2 -2
  80. package/dist/src/pages/account/Reservations/AccountReservationSinglePage.js.map +1 -1
  81. package/dist/src/pages/steps/StepThanks/StepThanksComponent.js +6 -4
  82. package/dist/src/pages/steps/StepThanks/StepThanksComponent.js.map +1 -1
  83. package/dist/src/providers/CurrencyProvider.js +1 -1
  84. package/dist/src/providers/CurrencyProvider.js.map +1 -1
  85. package/dist/src/providers/feature/MemberPortalFeature.d.ts +7 -1
  86. package/dist/src/providers/feature/MemberPortalFeature.js +11 -0
  87. package/dist/src/providers/feature/MemberPortalFeature.js.map +1 -1
  88. package/dist/src/translations/Translation.d.ts +1 -0
  89. package/dist/src/translations/Translation.js +1 -0
  90. package/dist/src/translations/Translation.js.map +1 -1
  91. package/dist/src/translations/languages/en-gb.js +1 -0
  92. package/dist/src/translations/languages/en-gb.js.map +1 -1
  93. package/dist/src/util/Analytics/GoogleAnalytics4.d.ts +1 -1
  94. package/dist/src/util/Analytics/UniversalAnalytics.d.ts +1 -1
  95. package/dist/src/util/CurrencyHelper.js +1 -1
  96. package/dist/src/util/CurrencyHelper.js.map +1 -1
  97. package/dist/src/util/EventsHelper.js +1 -1
  98. package/dist/src/util/EventsHelper.js.map +1 -1
  99. package/dist/src/util/TotalCalculator.js +2 -2
  100. package/dist/src/util/TotalCalculator.js.map +1 -1
  101. package/dist/test.bundle.js +1 -1
  102. package/dist/vendors.bundle.js +1 -1
  103. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"CurrencyHelper.js","sourceRoot":"/","sources":["src/util/CurrencyHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import API from '@/api/BookingAPI';\nimport { FullPageBookingEngineElementEvents } from '@/engines/FullPageBookingEngine/FullPageBookingEngineElementEvents';\nimport { Currency } from '@/models/Currency';\n\nconst currencies: { [code: string]: Currency } = {\n CAD: new Currency('CA$', 'Canadian Dollars', '$'),\n HKD: new Currency('HK$', 'Hong Kong Dollars', '$', {\n CAD: 0.176960404,\n HKD: 1,\n ISK: 17.4644168298,\n PHP: 6.5122123525,\n DKK: 0.8632841905,\n HUF: 40.3870429778,\n CZK: 3.1177690018,\n GBP: 0.1043325188,\n RON: 0.5616060778,\n SEK: 1.2145181651,\n IDR: 1884.222960844,\n INR: 9.7400604538,\n BRL: 0.6908636085,\n RUB: 9.0844615331,\n HRK: 0.8786639953,\n JPY: 13.8151875572,\n THB: 4.10251659,\n CHF: 0.124150231,\n EUR: 0.1158117827,\n MYR: 0.5606911647,\n BGN: 0.2265046846,\n TRY: 0.8813392475,\n CNY: 0.9201941005,\n NOK: 1.2493775117,\n NZD: 0.2068745874,\n ZAR: 2.2495164858,\n USD: 0.1289680012,\n MXN: 2.8454955007,\n SGD: 0.181963473,\n AUD: 0.1931856347,\n ILS: 0.4524187291,\n KRW: 159.3813334569,\n PLN: 0.5153045271,\n }),\n // ISK: new Currency(\"Kr\", \"Iceland Kronur\"),\n // PHP: new Currency(\"₱\", \"Philippine Pesos\"),\n // DKK: new Currency(\"kr\", \"Danish Kroner\"),\n // HUF: new Currency(\"Ft\", \"Hungarian Forint\"),\n // CZK: new Currency(\"Kč\", \"Czech Koruna\"),\n GBP: new Currency('£', 'British Pounds'),\n // RON: new Currency(\"L\", \"Romania New Lei\"),\n // SEK: new Currency(\"kr\", \"Swedish Kronor\"),\n IDR: new Currency('Rp', 'Indonesian Rupiahs'),\n INR: new Currency('₹', 'Indian Rupees'),\n // BRL: new Currency(\"R$\", \"Brazilian Reals\"),\n // RUB: new Currency(\"р.\", \"Russian Rubles\"),\n // HRK: new Currency(\"Kn\", \"Croatian Kuna\"),\n JPY: new Currency('¥', 'Japanese Yen'),\n // THB: new Currency(\"฿\", \"Thai Baht\"),\n // CHF: new Currency(\"₣\", \"Swiss Francs\"),\n EUR: new Currency('€', 'Euros'),\n // BGN: new Currency(\"Лв\", \"Bulgarian Leva\"),\n // TRY: new Currency(\"₺\", \"Turkish Lira\"),\n CNY: new Currency('¥', 'Chinese Yuan'),\n // NOK: new Currency(\"kr\", \"Norwegian Kroner\"),\n NZD: new Currency('NZ$', 'New Zealand Dollars', '$'),\n // ZAR: new Currency(\"R\", \"South African Rand\"),\n USD: new Currency('$', 'US Dollars'),\n // MXN: new Currency(\"MX$\", \"Mexican Pesos\", \"$\"),\n SGD: new Currency('S$', 'Singapore Dollars', '$'),\n AUD: new Currency('A$', 'Australian Dollars', '$', {\n CAD: 0.923580786,\n HKD: 5.2259218826,\n ISK: 91.5817564289,\n PHP: 33.9319505095,\n DKK: 4.5214095099,\n HUF: 209.5160116448,\n CZK: 16.2900291121,\n GBP: 0.5438682678,\n RON: 2.9377122756,\n SEK: 6.3461305192,\n IDR: 9849.8786996604,\n INR: 50.9085395439,\n BRL: 3.5950994663,\n RUB: 46.9661572052,\n HRK: 4.6030446385,\n JPY: 72.62857836,\n THB: 21.3512857836,\n CHF: 0.6481077147,\n EUR: 0.6065016982,\n MYR: 2.9114507521,\n BGN: 1.1861960213,\n TRY: 4.5938258127,\n CNY: 4.8111960213,\n NOK: 6.5435468219,\n NZD: 1.0810286269,\n ZAR: 11.765708394,\n USD: 0.6741872877,\n MXN: 14.8301795245,\n SGD: 0.9503275109,\n AUD: 1,\n ILS: 2.362142164,\n KRW: 827.5351770985,\n PLN: 2.6854682193,\n }),\n // ILS: new Currency(\"₪\", \"New Israeli Shekels\"),\n // KRW: new Currency(\"₩\", \"South Korean Won\"),\n // PLN: new Currency(\"zł\", \"Polish Złoty\"),\n /*\n * The following currencies are currently excluded as the exchange rate API doesn't return them\n AED: new Currency(\"د.إ\", \"UAE Dirham\"),\n AFN: new Currency(\"Af\", \"Afghani\"),\n ALL: new Currency(\"L\", \"Lek\"),\n AMD: new Currency(\"Դ\", \"Armenian Dram\"),\n AOA: new Currency(\"Kz\", \"Kwanza\"),\n ARS: new Currency(\"$\", \"Argentine Peso\"),\n AWG: new Currency(\"ƒ\", \"Aruban Guilder/Florin\"),\n AZN: new Currency(\"ман\", \"Azerbaijanian Manat\"),\n BAM: new Currency(\"КМ\", \"Konvertibilna Marka\"),\n BBD: new Currency(\"$\", \"Barbados Dollar\"),\n BDT: new Currency(\"৳\", \"Taka\"),\n BHD: new Currency(\"ب.د\", \"Bahraini Dinar\"),\n BIF: new Currency(\"₣\", \"Burundi Franc\"),\n BMD: new Currency(\"$\", \"Bermudian Dollar\"),\n BND: new Currency(\"$\", \"Brunei Dollar\"),\n BOB: new Currency(\"Bs.\", \"Boliviano\"),\n BSD: new Currency(\"$\", \"Bahamian Dollar\"),\n BTN: new Currency(\"\", \"Ngultrum\"),\n BWP: new Currency(\"P\", \"Pula\"),\n BYN: new Currency(\"Br\", \"Belarusian Ruble\"),\n BZD: new Currency(\"$\", \"Belize Dollar\"),\n CDF: new Currency(\"₣\", \"Congolese Franc\"),\n CLP: new Currency(\"$\", \"Chilean Peso\"),\n COP: new Currency(\"$\", \"Colombian Peso\"),\n CRC: new Currency(\"₡\", \"Costa Rican Colon\"),\n CUP: new Currency(\"$\", \"Cuban Peso\"),\n CVE: new Currency(\"$\", \"Cape Verde Escudo\"),\n DJF: new Currency(\"₣\", \"Djibouti Franc\"),\n DOP: new Currency(\"$\", \"Dominican Peso\"),\n DZD: new Currency(\"د.ج\", \"Algerian Dinar\"),\n EGP: new Currency(\"£\", \"Egyptian Pound\"),\n ERN: new Currency(\"Nfk\", \"Nakfa\"),\n ETB: new Currency(\"\", \"Ethiopian Birr\"),\n FJD: new Currency(\"$\", \"Fiji Dollar\"),\n FKP: new Currency(\"£\", \"Falkland Islands Pound\"),\n GEL: new Currency(\"ლ\", \"Lari\"),\n GHS: new Currency(\"₵\", \"Cedi\"),\n GIP: new Currency(\"£\", \"Gibraltar Pound\"),\n GMD: new Currency(\"D\", \"Dalasi\"),\n GNF: new Currency(\"₣\", \"Guinea Franc\"),\n GTQ: new Currency(\"Q\", \"Quetzal\"),\n GYD: new Currency(\"$\", \"Guyana Dollar\"),\n HNL: new Currency(\"L\", \"Lempira\"),\n HTG: new Currency(\"G\", \"Gourde\"),\n IQD: new Currency(\"ع.د\", \"Iraqi Dinar\"),\n IRR: new Currency(\"﷼\", \"Iranian Rial\"),\n JMD: new Currency(\"$\", \"Jamaican Dollar\"),\n JOD: new Currency(\"د.ا\", \"Jordanian Dinar\"),\n KES: new Currency(\"Sh\", \"Kenyan Shilling\"),\n KGS: new Currency(\"\", \"Som\"),\n KHR: new Currency(\"៛\", \"Riel\"),\n KPW: new Currency(\"₩\", \"North Korean Won\"),\n KWD: new Currency(\"د.ك\", \"Kuwaiti Dinar\"),\n KYD: new Currency(\"$\", \"Cayman Islands Dollar\"),\n KZT: new Currency(\"〒\", \"Tenge\"),\n LAK: new Currency(\"₭\", \"Kip\"),\n LBP: new Currency(\"ل.ل\", \"Lebanese Pound\"),\n LKR: new Currency(\"Rs\", \"Sri Lanka Rupee\"),\n LRD: new Currency(\"$\", \"Liberian Dollar\"),\n LSL: new Currency(\"L\", \"Loti\"),\n LYD: new Currency(\"ل.د\", \"Libyan Dinar\"),\n MAD: new Currency(\"د.م.\", \"Moroccan Dirham\"),\n MDL: new Currency(\"L\", \"Moldovan Leu\"),\n MGA: new Currency(\"\", \"Malagasy Ariary\"),\n MKD: new Currency(\"ден\", \"Denar\"),\n MMK: new Currency(\"K\", \"Kyat\"),\n MNT: new Currency(\"₮\", \"Tugrik\"),\n MOP: new Currency(\"P\", \"Pataca\"),\n MRU: new Currency(\"UM\", \"Ouguiya\"),\n MUR: new Currency(\"₨\", \"Mauritius Rupee\"),\n MVR: new Currency(\"ރ.\", \"Rufiyaa\"),\n MWK: new Currency(\"MK\", \"Kwacha\"),\n MYR: new Currency(\"RM\", \"Malaysian Ringgit\"),\n MZN: new Currency(\"MTn\", \"Metical\"),\n NAD: new Currency(\"$\", \"Namibia Dollar\"),\n NGN: new Currency(\"₦\", \"Naira\"),\n NIO: new Currency(\"C$\", \"Cordoba Oro\"),\n NPR: new Currency(\"₨\", \"Nepalese Rupee\"),\n OMR: new Currency(\"ر.ع.\", \"Rial Omani\"),\n PAB: new Currency(\"B/.\", \"Balboa\"),\n PEN: new Currency(\"S/.\", \"Nuevo Sol\"),\n PGK: new Currency(\"K\", \"Kina\"),\n PKR: new Currency(\"₨\", \"Pakistan Rupee\"),\n PYG: new Currency(\"₲\", \"Guarani\"),\n QAR: new Currency(\"ر.ق\", \"Qatari Rial\"),\n RSD: new Currency(\"din\", \"Serbian Dinar\"),\n RWF: new Currency(\"₣\", \"Rwanda Franc\"),\n SAR: new Currency(\"ر.س\", \"Saudi Riyal\"),\n SBD: new Currency(\"$\", \"Solomon Islands Dollar\"),\n SCR: new Currency(\"₨\", \"Seychelles Rupee\"),\n SDG: new Currency(\"£\", \"Sudanese Pound\"),\n SHP: new Currency(\"£\", \"Saint Helena Pound\"),\n SLL: new Currency(\"Le\", \"Leone\"),\n SOS: new Currency(\"Sh\", \"Somali Shilling\"),\n SRD: new Currency(\"$\", \"Suriname Dollar\"),\n STN: new Currency(\"Db\", \"Dobra\"),\n SYP: new Currency(\"ل.س\", \"Syrian Pound\"),\n SZL: new Currency(\"L\", \"Lilangeni\"),\n TJS: new Currency(\"ЅМ\", \"Somoni\"),\n TMT: new Currency(\"m\", \"Manat\"),\n TND: new Currency(\"د.ت\", \"Tunisian Dinar\"),\n TOP: new Currency(\"T$\", \"Pa’anga\"),\n TTD: new Currency(\"$\", \"Trinidad and Tobago Dollar\"),\n TWD: new Currency(\"$\", \"Taiwan Dollar\"),\n TZS: new Currency(\"Sh\", \"Tanzanian Shilling\"),\n UAH: new Currency(\"₴\", \"Hryvnia\"),\n UGX: new Currency(\"Sh\", \"Uganda Shilling\"),\n UYU: new Currency(\"$\", \"Peso Uruguayo\"),\n UZS: new Currency(\"\", \"Uzbekistan Sum\"),\n VEF: new Currency(\"Bs F\", \"Bolivar Fuerte\"),\n VND: new Currency(\"₫\", \"Dong\"),\n VUV: new Currency(\"Vt\", \"Vatu\"),\n WST: new Currency(\"T\", \"Tala\"),\n XAF: new Currency(\"₣\", \"CFA Franc BCEAO\"),\n XCD: new Currency(\"$\", \"East Caribbean Dollar\"),\n XPF: new Currency(\"₣\", \"CFP Franc\"),\n YER: new Currency(\"﷼\", \"Yemeni Rial\"),\n ZMW: new Currency(\"ZK\", \"Zambian Kwacha\"),\n ZWL: new Currency(\"$\", \"Zimbabwe Dollar\"),\n */\n};\n\nconst labelOverrides: { [code: string]: { short: string; long: string } } = {};\n\nexport const convertPrice = (price: number, includeDecimalPlaces: boolean, to: string, from: string): number => {\n const amount = _convertPrice(price, to, from);\n return includeDecimalPlaces ? preciseRound(amount, 2) : Math.round(amount);\n};\n\nconst preciseRound = (num: number, decimals: number): number => {\n const factor = Math.pow(10, decimals);\n const sign = num < 0 ? -1 : num > 0 ? 1 : 0;\n return Math.round(num * factor + (decimals > 0 ? 1 : 0) * (sign * (10 / Math.pow(100, decimals)))) / factor;\n};\n\nconst _convertPrice = (price: number, to: string, from: string) => {\n if (typeof price !== 'number') {\n price = parseFloat(price);\n }\n\n if (to === from) {\n return price;\n }\n\n if (!currencies[from]?.rates) {\n loadExchangeRates(from);\n }\n\n return price * (currencies[from]?.rates?.[to] ?? 1);\n};\n\nexport const loadExchangeRates = async (currencyCode: string) => {\n const currency = currencies[currencyCode];\n if (!currency) {\n throw new Error(currencyCode + ' is not a supported currency code');\n }\n if (currency.rates) {\n return;\n }\n\n await API.ExchangeRate.fetchData(currencyCode).then((rates) => {\n currency.rates = rates;\n });\n\n FullPageBookingEngineElementEvents.reload(); // HMM\n};\n\nexport const getRatesForCurrencyCode = (code: string) => {\n return currencies[code]?.rates;\n};\n\nexport const getCurrencyItems = () => {\n const currencyItems: { text: string; value: string }[] = Object.keys(currencies).map((code) => ({\n text: code + ' - ' + currencies[code].name,\n value: code,\n }));\n\n return currencyItems.sort((a, b) => a.value.localeCompare(b.value));\n};\n\nexport const getCurrencySymbol = (currencyCode: string) => {\n if (labelOverrides[currencyCode]?.long) {\n return labelOverrides[currencyCode]?.long;\n }\n\n return currencies[currencyCode]?.symbol ?? '';\n};\n\nexport const getCurrencyShortSymbol = (currencyCode: string) => {\n if (labelOverrides[currencyCode]?.short) {\n return labelOverrides[currencyCode]?.short;\n }\n\n return currencies[currencyCode]?.shortSymbol ?? '';\n};\n"]}
1
+ {"version":3,"file":"CurrencyHelper.js","sourceRoot":"/","sources":["src/util/CurrencyHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import API from '@/api/BookingAPI';\nimport { FullPageBookingEngineElementEvents } from '@/engines/FullPageBookingEngine/FullPageBookingEngineElementEvents';\nimport { Currency } from '@/models/Currency';\n\nconst currencies: { [code: string]: Currency } = {\n CAD: new Currency('CA$', 'Canadian Dollars', '$'),\n HKD: new Currency('HK$', 'Hong Kong Dollars', '$', {\n CAD: 0.176960404,\n HKD: 1,\n ISK: 17.4644168298,\n PHP: 6.5122123525,\n DKK: 0.8632841905,\n HUF: 40.3870429778,\n CZK: 3.1177690018,\n GBP: 0.1043325188,\n RON: 0.5616060778,\n SEK: 1.2145181651,\n IDR: 1884.222960844,\n INR: 9.7400604538,\n BRL: 0.6908636085,\n RUB: 9.0844615331,\n HRK: 0.8786639953,\n JPY: 13.8151875572,\n THB: 4.10251659,\n CHF: 0.124150231,\n EUR: 0.1158117827,\n MYR: 0.5606911647,\n BGN: 0.2265046846,\n TRY: 0.8813392475,\n CNY: 0.9201941005,\n NOK: 1.2493775117,\n NZD: 0.2068745874,\n ZAR: 2.2495164858,\n USD: 0.1289680012,\n MXN: 2.8454955007,\n SGD: 0.181963473,\n AUD: 0.1931856347,\n ILS: 0.4524187291,\n KRW: 159.3813334569,\n PLN: 0.5153045271,\n }),\n // ISK: new Currency(\"Kr\", \"Iceland Kronur\"),\n // PHP: new Currency(\"₱\", \"Philippine Pesos\"),\n // DKK: new Currency(\"kr\", \"Danish Kroner\"),\n // HUF: new Currency(\"Ft\", \"Hungarian Forint\"),\n // CZK: new Currency(\"Kč\", \"Czech Koruna\"),\n GBP: new Currency('£', 'British Pounds'),\n // RON: new Currency(\"L\", \"Romania New Lei\"),\n // SEK: new Currency(\"kr\", \"Swedish Kronor\"),\n IDR: new Currency('Rp', 'Indonesian Rupiahs'),\n INR: new Currency('₹', 'Indian Rupees'),\n // BRL: new Currency(\"R$\", \"Brazilian Reals\"),\n // RUB: new Currency(\"р.\", \"Russian Rubles\"),\n // HRK: new Currency(\"Kn\", \"Croatian Kuna\"),\n JPY: new Currency('¥', 'Japanese Yen'),\n // THB: new Currency(\"฿\", \"Thai Baht\"),\n // CHF: new Currency(\"₣\", \"Swiss Francs\"),\n EUR: new Currency('€', 'Euros'),\n // BGN: new Currency(\"Лв\", \"Bulgarian Leva\"),\n // TRY: new Currency(\"₺\", \"Turkish Lira\"),\n CNY: new Currency('¥', 'Chinese Yuan'),\n // NOK: new Currency(\"kr\", \"Norwegian Kroner\"),\n NZD: new Currency('NZ$', 'New Zealand Dollars', '$'),\n // ZAR: new Currency(\"R\", \"South African Rand\"),\n USD: new Currency('$', 'US Dollars'),\n // MXN: new Currency(\"MX$\", \"Mexican Pesos\", \"$\"),\n SGD: new Currency('S$', 'Singapore Dollars', '$'),\n AUD: new Currency('A$', 'Australian Dollars', '$', {\n CAD: 0.923580786,\n HKD: 5.2259218826,\n ISK: 91.5817564289,\n PHP: 33.9319505095,\n DKK: 4.5214095099,\n HUF: 209.5160116448,\n CZK: 16.2900291121,\n GBP: 0.5438682678,\n RON: 2.9377122756,\n SEK: 6.3461305192,\n IDR: 9849.8786996604,\n INR: 50.9085395439,\n BRL: 3.5950994663,\n RUB: 46.9661572052,\n HRK: 4.6030446385,\n JPY: 72.62857836,\n THB: 21.3512857836,\n CHF: 0.6481077147,\n EUR: 0.6065016982,\n MYR: 2.9114507521,\n BGN: 1.1861960213,\n TRY: 4.5938258127,\n CNY: 4.8111960213,\n NOK: 6.5435468219,\n NZD: 1.0810286269,\n ZAR: 11.765708394,\n USD: 0.6741872877,\n MXN: 14.8301795245,\n SGD: 0.9503275109,\n AUD: 1,\n ILS: 2.362142164,\n KRW: 827.5351770985,\n PLN: 2.6854682193,\n }),\n // ILS: new Currency(\"₪\", \"New Israeli Shekels\"),\n // KRW: new Currency(\"₩\", \"South Korean Won\"),\n // PLN: new Currency(\"zł\", \"Polish Złoty\"),\n FJD: new Currency('FJ$', 'Fiji Dollar', '$'),\n\n /*\n * The following currencies are currently excluded as the exchange rate API doesn't return them\n AED: new Currency(\"د.إ\", \"UAE Dirham\"),\n AFN: new Currency(\"Af\", \"Afghani\"),\n ALL: new Currency(\"L\", \"Lek\"),\n AMD: new Currency(\"Դ\", \"Armenian Dram\"),\n AOA: new Currency(\"Kz\", \"Kwanza\"),\n ARS: new Currency(\"$\", \"Argentine Peso\"),\n AWG: new Currency(\"ƒ\", \"Aruban Guilder/Florin\"),\n AZN: new Currency(\"ман\", \"Azerbaijanian Manat\"),\n BAM: new Currency(\"КМ\", \"Konvertibilna Marka\"),\n BBD: new Currency(\"$\", \"Barbados Dollar\"),\n BDT: new Currency(\"৳\", \"Taka\"),\n BHD: new Currency(\"ب.د\", \"Bahraini Dinar\"),\n BIF: new Currency(\"₣\", \"Burundi Franc\"),\n BMD: new Currency(\"$\", \"Bermudian Dollar\"),\n BND: new Currency(\"$\", \"Brunei Dollar\"),\n BOB: new Currency(\"Bs.\", \"Boliviano\"),\n BSD: new Currency(\"$\", \"Bahamian Dollar\"),\n BTN: new Currency(\"\", \"Ngultrum\"),\n BWP: new Currency(\"P\", \"Pula\"),\n BYN: new Currency(\"Br\", \"Belarusian Ruble\"),\n BZD: new Currency(\"$\", \"Belize Dollar\"),\n CDF: new Currency(\"₣\", \"Congolese Franc\"),\n CLP: new Currency(\"$\", \"Chilean Peso\"),\n COP: new Currency(\"$\", \"Colombian Peso\"),\n CRC: new Currency(\"₡\", \"Costa Rican Colon\"),\n CUP: new Currency(\"$\", \"Cuban Peso\"),\n CVE: new Currency(\"$\", \"Cape Verde Escudo\"),\n DJF: new Currency(\"₣\", \"Djibouti Franc\"),\n DOP: new Currency(\"$\", \"Dominican Peso\"),\n DZD: new Currency(\"د.ج\", \"Algerian Dinar\"),\n EGP: new Currency(\"£\", \"Egyptian Pound\"),\n ERN: new Currency(\"Nfk\", \"Nakfa\"),\n ETB: new Currency(\"\", \"Ethiopian Birr\"),\n FKP: new Currency(\"£\", \"Falkland Islands Pound\"),\n GEL: new Currency(\"ლ\", \"Lari\"),\n GHS: new Currency(\"₵\", \"Cedi\"),\n GIP: new Currency(\"£\", \"Gibraltar Pound\"),\n GMD: new Currency(\"D\", \"Dalasi\"),\n GNF: new Currency(\"₣\", \"Guinea Franc\"),\n GTQ: new Currency(\"Q\", \"Quetzal\"),\n GYD: new Currency(\"$\", \"Guyana Dollar\"),\n HNL: new Currency(\"L\", \"Lempira\"),\n HTG: new Currency(\"G\", \"Gourde\"),\n IQD: new Currency(\"ع.د\", \"Iraqi Dinar\"),\n IRR: new Currency(\"﷼\", \"Iranian Rial\"),\n JMD: new Currency(\"$\", \"Jamaican Dollar\"),\n JOD: new Currency(\"د.ا\", \"Jordanian Dinar\"),\n KES: new Currency(\"Sh\", \"Kenyan Shilling\"),\n KGS: new Currency(\"\", \"Som\"),\n KHR: new Currency(\"៛\", \"Riel\"),\n KPW: new Currency(\"₩\", \"North Korean Won\"),\n KWD: new Currency(\"د.ك\", \"Kuwaiti Dinar\"),\n KYD: new Currency(\"$\", \"Cayman Islands Dollar\"),\n KZT: new Currency(\"〒\", \"Tenge\"),\n LAK: new Currency(\"₭\", \"Kip\"),\n LBP: new Currency(\"ل.ل\", \"Lebanese Pound\"),\n LKR: new Currency(\"Rs\", \"Sri Lanka Rupee\"),\n LRD: new Currency(\"$\", \"Liberian Dollar\"),\n LSL: new Currency(\"L\", \"Loti\"),\n LYD: new Currency(\"ل.د\", \"Libyan Dinar\"),\n MAD: new Currency(\"د.م.\", \"Moroccan Dirham\"),\n MDL: new Currency(\"L\", \"Moldovan Leu\"),\n MGA: new Currency(\"\", \"Malagasy Ariary\"),\n MKD: new Currency(\"ден\", \"Denar\"),\n MMK: new Currency(\"K\", \"Kyat\"),\n MNT: new Currency(\"₮\", \"Tugrik\"),\n MOP: new Currency(\"P\", \"Pataca\"),\n MRU: new Currency(\"UM\", \"Ouguiya\"),\n MUR: new Currency(\"₨\", \"Mauritius Rupee\"),\n MVR: new Currency(\"ރ.\", \"Rufiyaa\"),\n MWK: new Currency(\"MK\", \"Kwacha\"),\n MYR: new Currency(\"RM\", \"Malaysian Ringgit\"),\n MZN: new Currency(\"MTn\", \"Metical\"),\n NAD: new Currency(\"$\", \"Namibia Dollar\"),\n NGN: new Currency(\"₦\", \"Naira\"),\n NIO: new Currency(\"C$\", \"Cordoba Oro\"),\n NPR: new Currency(\"₨\", \"Nepalese Rupee\"),\n OMR: new Currency(\"ر.ع.\", \"Rial Omani\"),\n PAB: new Currency(\"B/.\", \"Balboa\"),\n PEN: new Currency(\"S/.\", \"Nuevo Sol\"),\n PGK: new Currency(\"K\", \"Kina\"),\n PKR: new Currency(\"₨\", \"Pakistan Rupee\"),\n PYG: new Currency(\"₲\", \"Guarani\"),\n QAR: new Currency(\"ر.ق\", \"Qatari Rial\"),\n RSD: new Currency(\"din\", \"Serbian Dinar\"),\n RWF: new Currency(\"₣\", \"Rwanda Franc\"),\n SAR: new Currency(\"ر.س\", \"Saudi Riyal\"),\n SBD: new Currency(\"$\", \"Solomon Islands Dollar\"),\n SCR: new Currency(\"₨\", \"Seychelles Rupee\"),\n SDG: new Currency(\"£\", \"Sudanese Pound\"),\n SHP: new Currency(\"£\", \"Saint Helena Pound\"),\n SLL: new Currency(\"Le\", \"Leone\"),\n SOS: new Currency(\"Sh\", \"Somali Shilling\"),\n SRD: new Currency(\"$\", \"Suriname Dollar\"),\n STN: new Currency(\"Db\", \"Dobra\"),\n SYP: new Currency(\"ل.س\", \"Syrian Pound\"),\n SZL: new Currency(\"L\", \"Lilangeni\"),\n TJS: new Currency(\"ЅМ\", \"Somoni\"),\n TMT: new Currency(\"m\", \"Manat\"),\n TND: new Currency(\"د.ت\", \"Tunisian Dinar\"),\n TOP: new Currency(\"T$\", \"Pa’anga\"),\n TTD: new Currency(\"$\", \"Trinidad and Tobago Dollar\"),\n TWD: new Currency(\"$\", \"Taiwan Dollar\"),\n TZS: new Currency(\"Sh\", \"Tanzanian Shilling\"),\n UAH: new Currency(\"₴\", \"Hryvnia\"),\n UGX: new Currency(\"Sh\", \"Uganda Shilling\"),\n UYU: new Currency(\"$\", \"Peso Uruguayo\"),\n UZS: new Currency(\"\", \"Uzbekistan Sum\"),\n VEF: new Currency(\"Bs F\", \"Bolivar Fuerte\"),\n VND: new Currency(\"₫\", \"Dong\"),\n VUV: new Currency(\"Vt\", \"Vatu\"),\n WST: new Currency(\"T\", \"Tala\"),\n XAF: new Currency(\"₣\", \"CFA Franc BCEAO\"),\n XCD: new Currency(\"$\", \"East Caribbean Dollar\"),\n XPF: new Currency(\"₣\", \"CFP Franc\"),\n YER: new Currency(\"﷼\", \"Yemeni Rial\"),\n ZMW: new Currency(\"ZK\", \"Zambian Kwacha\"),\n ZWL: new Currency(\"$\", \"Zimbabwe Dollar\"),\n */\n};\n\nconst labelOverrides: { [code: string]: { short: string; long: string } } = {};\n\nexport const convertPrice = (price: number, includeDecimalPlaces: boolean, to: string, from: string): number => {\n const amount = _convertPrice(price, to, from);\n return includeDecimalPlaces ? preciseRound(amount, 2) : Math.round(amount);\n};\n\nconst preciseRound = (num: number, decimals: number): number => {\n const factor = Math.pow(10, decimals);\n const sign = num < 0 ? -1 : num > 0 ? 1 : 0;\n return Math.round(num * factor + (decimals > 0 ? 1 : 0) * (sign * (10 / Math.pow(100, decimals)))) / factor;\n};\n\nconst _convertPrice = (price: number, to: string, from: string) => {\n if (typeof price !== 'number') {\n price = parseFloat(price);\n }\n\n if (to === from) {\n return price;\n }\n\n if (!currencies[from]?.rates) {\n loadExchangeRates(from);\n }\n\n return price * (currencies[from]?.rates?.[to] ?? 1);\n};\n\nexport const loadExchangeRates = async (currencyCode: string) => {\n const currency = currencies[currencyCode];\n if (!currency) {\n throw new Error(currencyCode + ' is not a supported currency code');\n }\n if (currency.rates) {\n return;\n }\n\n await API.ExchangeRate.fetchData(currencyCode).then((rates) => {\n currency.rates = rates;\n });\n\n FullPageBookingEngineElementEvents.reload(); // HMM\n};\n\nexport const getRatesForCurrencyCode = (code: string) => {\n return currencies[code]?.rates;\n};\n\nexport const getCurrencyItems = () => {\n const currencyItems: { text: string; value: string }[] = Object.keys(currencies).map((code) => ({\n text: code + ' - ' + currencies[code].name,\n value: code,\n }));\n\n return currencyItems.sort((a, b) => a.value.localeCompare(b.value));\n};\n\nexport const getCurrencySymbol = (currencyCode: string) => {\n if (labelOverrides[currencyCode]?.long) {\n return labelOverrides[currencyCode]?.long;\n }\n\n return currencies[currencyCode]?.symbol ?? '';\n};\n\nexport const getCurrencyShortSymbol = (currencyCode: string) => {\n if (labelOverrides[currencyCode]?.short) {\n return labelOverrides[currencyCode]?.short;\n }\n\n return currencies[currencyCode]?.shortSymbol ?? '';\n};\n"]}
@@ -45,7 +45,7 @@ const getApplicableEvents = (events, { checkInDate, checkInTime, checkOutDate, c
45
45
  };
46
46
  exports.getApplicableEvents = getApplicableEvents;
47
47
  const isCancelledBooking = (booking) => {
48
- return booking.status === core_1.IBookingStatus.Cancelled;
48
+ return booking.status === core_1.EBookingStatus.Cancelled;
49
49
  };
50
50
  exports.isCancelledBooking = isCancelledBooking;
51
51
  const isPastBooking = (booking) => {
@@ -1 +1 @@
1
- {"version":3,"file":"EventsHelper.js","sourceRoot":"/","sources":["src/util/EventsHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import { IBookingStatus, IRoomstayEvent } from '@roomstay/core';\nimport dayjs from 'dayjs';\nimport isBetween from 'dayjs/plugin/isBetween';\nimport timezone from 'dayjs/plugin/timezone';\nimport utc from 'dayjs/plugin/utc';\n\nimport { IRoomstayMemberBookingItemWithRefAndHotelDetails } from '@/contexts';\nimport { StorageProvider } from '@/providers/storage/StorageProvider';\n\ndayjs.extend(utc);\ndayjs.extend(timezone);\ndayjs.extend(isBetween);\n\nconst CACHED_EVENTS_KEY = 'events';\n\ninterface ICachedEvents {\n expired: number;\n events: IRoomstayEvent[];\n}\n\nconst provider = new StorageProvider();\n\nconst createEventKey = (hotelId: string, unixStartDate: number) => [CACHED_EVENTS_KEY, hotelId, unixStartDate].join('-');\n\nconst write = (hotelId: string, unixStartDate: number, value: ICachedEvents) => provider.write(createEventKey(hotelId, unixStartDate), value);\n\nconst read = (hotelId: string, unixStartDate: number) => provider.read<ICachedEvents>(createEventKey(hotelId, unixStartDate));\n\nconst getValidEvents = (events: IRoomstayEvent[]): IRoomstayEvent[] => {\n if (!events || events.length === 0) {\n return [];\n }\n\n const today = dayjs();\n return events.filter(({ endDate, timezone, isPermanent }) => isPermanent || today.isBefore(dayjs(endDate, timezone)));\n};\n\nconst getApplicableEvents = (\n events: IRoomstayEvent[],\n {\n checkInDate,\n checkInTime,\n checkOutDate,\n checkOutTime,\n }: {\n checkInDate: string;\n checkInTime: string;\n checkOutDate: string;\n checkOutTime: string;\n }\n): IRoomstayEvent[] => {\n if (!events || events.length === 0) {\n return [];\n }\n\n const itineraryStartDate = dayjs(`${checkInDate}${checkInTime}`, 'YYYY-MM-DDHHmm');\n const itineraryEndDate = dayjs(`${checkOutDate}${checkOutTime}`, 'YYYY-MM-DDHHmm');\n\n return events.filter(({ endDate: endDateString, timezone, startDate: startDateString }) => {\n // The maximum (and minimum) date in JavaScript. This is used to represent the far future and past.\n // https://stackoverflow.com/questions/11526504/minimum-and-maximum-date\n const JS_MAX_DATE_MS = 8640000000000000;\n\n const eventStartDate = startDateString ? dayjs.tz(startDateString, timezone) : dayjs(-JS_MAX_DATE_MS);\n const eventEndDate = endDateString ? dayjs.tz(endDateString, timezone) : dayjs(JS_MAX_DATE_MS);\n\n return eventStartDate.isSameOrBefore(itineraryEndDate) && eventEndDate.isSameOrAfter(itineraryStartDate);\n });\n};\n\nconst isCancelledBooking = (booking: Pick<IRoomstayMemberBookingItemWithRefAndHotelDetails, 'status'>): boolean => {\n return booking.status === IBookingStatus.Cancelled;\n};\nconst isPastBooking = (booking: Pick<IRoomstayMemberBookingItemWithRefAndHotelDetails, 'checkOutDate'>): boolean => {\n return dayjs(booking.checkOutDate).isBefore(dayjs());\n};\n\nconst isCachedEventValid = (cachedEvents: ICachedEvents): boolean => {\n const today = dayjs();\n const expiredDate = dayjs(cachedEvents.expired);\n return today.isBefore(expiredDate) && cachedEvents.events?.length > 0;\n};\n\nexport { getApplicableEvents, getValidEvents, ICachedEvents, isCachedEventValid, isCancelledBooking, isPastBooking, read, write };\n"]}
1
+ {"version":3,"file":"EventsHelper.js","sourceRoot":"/","sources":["src/util/EventsHelper.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAgE;AAChE,kDAA0B;AAC1B,uEAA+C;AAC/C,qEAA6C;AAC7C,2DAAmC;AAGnC,yEAAsE;AAEtE,eAAK,CAAC,MAAM,CAAC,aAAG,CAAC,CAAC;AAClB,eAAK,CAAC,MAAM,CAAC,kBAAQ,CAAC,CAAC;AACvB,eAAK,CAAC,MAAM,CAAC,mBAAS,CAAC,CAAC;AAExB,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AAOnC,MAAM,QAAQ,GAAG,IAAI,iCAAe,EAAE,CAAC;AAEvC,MAAM,cAAc,GAAG,CAAC,OAAe,EAAE,aAAqB,EAAE,EAAE,CAAC,CAAC,iBAAiB,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEzH,MAAM,KAAK,GAAG,CAAC,OAAe,EAAE,aAAqB,EAAE,KAAoB,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,KAAK,CAAC,CAAC;AA2DpB,sBAAK;AAzD/H,MAAM,IAAI,GAAG,CAAC,OAAe,EAAE,aAAqB,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAgB,cAAc,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;AAyDV,oBAAI;AAvDxH,MAAM,cAAc,GAAG,CAAC,MAAwB,EAAoB,EAAE;IAClE,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QAChC,OAAO,EAAE,CAAC;KACb;IAED,MAAM,KAAK,GAAG,IAAA,eAAK,GAAE,CAAC;IACtB,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,WAAW,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAA,eAAK,EAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC1H,CAAC,CAAC;AAgD4B,wCAAc;AA9C5C,MAAM,mBAAmB,GAAG,CACxB,MAAwB,EACxB,EACI,WAAW,EACX,WAAW,EACX,YAAY,EACZ,YAAY,GAMf,EACe,EAAE;IAClB,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QAChC,OAAO,EAAE,CAAC;KACb;IAED,MAAM,kBAAkB,GAAG,IAAA,eAAK,EAAC,GAAG,WAAW,GAAG,WAAW,EAAE,EAAE,gBAAgB,CAAC,CAAC;IACnF,MAAM,gBAAgB,GAAG,IAAA,eAAK,EAAC,GAAG,YAAY,GAAG,YAAY,EAAE,EAAE,gBAAgB,CAAC,CAAC;IAEnF,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,EAAE,EAAE;QACtF,mGAAmG;QACnG,wEAAwE;QACxE,MAAM,cAAc,GAAG,gBAAgB,CAAC;QAExC,MAAM,cAAc,GAAG,eAAe,CAAC,CAAC,CAAC,eAAK,CAAC,EAAE,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAA,eAAK,EAAC,CAAC,cAAc,CAAC,CAAC;QACtG,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,eAAK,CAAC,EAAE,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAA,eAAK,EAAC,cAAc,CAAC,CAAC;QAE/F,OAAO,cAAc,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,YAAY,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;IAC7G,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAeO,kDAAmB;AAb5B,MAAM,kBAAkB,GAAG,CAAC,OAAyE,EAAW,EAAE;IAC9G,OAAO,OAAO,CAAC,MAAM,KAAK,qBAAc,CAAC,SAAS,CAAC;AACvD,CAAC,CAAC;AAW+E,gDAAkB;AAVnG,MAAM,aAAa,GAAG,CAAC,OAA+E,EAAW,EAAE;IAC/G,OAAO,IAAA,eAAK,EAAC,OAAO,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAA,eAAK,GAAE,CAAC,CAAC;AACzD,CAAC,CAAC;AAQmG,sCAAa;AANlH,MAAM,kBAAkB,GAAG,CAAC,YAA2B,EAAW,EAAE;;IAChE,MAAM,KAAK,GAAG,IAAA,eAAK,GAAE,CAAC;IACtB,MAAM,WAAW,GAAG,IAAA,eAAK,EAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAChD,OAAO,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA,MAAA,YAAY,CAAC,MAAM,0CAAE,MAAM,IAAG,CAAC,CAAC;AAC1E,CAAC,CAAC;AAE2D,gDAAkB","sourcesContent":["import { EBookingStatus, IRoomstayEvent } from '@roomstay/core';\nimport dayjs from 'dayjs';\nimport isBetween from 'dayjs/plugin/isBetween';\nimport timezone from 'dayjs/plugin/timezone';\nimport utc from 'dayjs/plugin/utc';\n\nimport { IRoomstayMemberBookingItemWithRefAndHotelDetails } from '@/contexts';\nimport { StorageProvider } from '@/providers/storage/StorageProvider';\n\ndayjs.extend(utc);\ndayjs.extend(timezone);\ndayjs.extend(isBetween);\n\nconst CACHED_EVENTS_KEY = 'events';\n\ninterface ICachedEvents {\n expired: number;\n events: IRoomstayEvent[];\n}\n\nconst provider = new StorageProvider();\n\nconst createEventKey = (hotelId: string, unixStartDate: number) => [CACHED_EVENTS_KEY, hotelId, unixStartDate].join('-');\n\nconst write = (hotelId: string, unixStartDate: number, value: ICachedEvents) => provider.write(createEventKey(hotelId, unixStartDate), value);\n\nconst read = (hotelId: string, unixStartDate: number) => provider.read<ICachedEvents>(createEventKey(hotelId, unixStartDate));\n\nconst getValidEvents = (events: IRoomstayEvent[]): IRoomstayEvent[] => {\n if (!events || events.length === 0) {\n return [];\n }\n\n const today = dayjs();\n return events.filter(({ endDate, timezone, isPermanent }) => isPermanent || today.isBefore(dayjs(endDate, timezone)));\n};\n\nconst getApplicableEvents = (\n events: IRoomstayEvent[],\n {\n checkInDate,\n checkInTime,\n checkOutDate,\n checkOutTime,\n }: {\n checkInDate: string;\n checkInTime: string;\n checkOutDate: string;\n checkOutTime: string;\n }\n): IRoomstayEvent[] => {\n if (!events || events.length === 0) {\n return [];\n }\n\n const itineraryStartDate = dayjs(`${checkInDate}${checkInTime}`, 'YYYY-MM-DDHHmm');\n const itineraryEndDate = dayjs(`${checkOutDate}${checkOutTime}`, 'YYYY-MM-DDHHmm');\n\n return events.filter(({ endDate: endDateString, timezone, startDate: startDateString }) => {\n // The maximum (and minimum) date in JavaScript. This is used to represent the far future and past.\n // https://stackoverflow.com/questions/11526504/minimum-and-maximum-date\n const JS_MAX_DATE_MS = 8640000000000000;\n\n const eventStartDate = startDateString ? dayjs.tz(startDateString, timezone) : dayjs(-JS_MAX_DATE_MS);\n const eventEndDate = endDateString ? dayjs.tz(endDateString, timezone) : dayjs(JS_MAX_DATE_MS);\n\n return eventStartDate.isSameOrBefore(itineraryEndDate) && eventEndDate.isSameOrAfter(itineraryStartDate);\n });\n};\n\nconst isCancelledBooking = (booking: Pick<IRoomstayMemberBookingItemWithRefAndHotelDetails, 'status'>): boolean => {\n return booking.status === EBookingStatus.Cancelled;\n};\nconst isPastBooking = (booking: Pick<IRoomstayMemberBookingItemWithRefAndHotelDetails, 'checkOutDate'>): boolean => {\n return dayjs(booking.checkOutDate).isBefore(dayjs());\n};\n\nconst isCachedEventValid = (cachedEvents: ICachedEvents): boolean => {\n const today = dayjs();\n const expiredDate = dayjs(cachedEvents.expired);\n return today.isBefore(expiredDate) && cachedEvents.events?.length > 0;\n};\n\nexport { getApplicableEvents, getValidEvents, ICachedEvents, isCachedEventValid, isCancelledBooking, isPastBooking, read, write };\n"]}
@@ -16,10 +16,10 @@ const calculateBaseAddonTotal = (addon, dismissAddonNightCount) => {
16
16
  if (addon.price && addon.quantity) {
17
17
  indPrice = addon.quantity * Number(addon.price);
18
18
  }
19
- if (addon.pricingType === Addon_1.AddonPricingType.PER_ADULT_OCCUPANCY_PER_NIGHT && addon.adultQuantity) {
19
+ if (addon.pricingType === core_1.EAddonPricingType.PER_ADULT_OCCUPANCY_PER_NIGHT && addon.adultQuantity) {
20
20
  indPrice *= addon.adultQuantity;
21
21
  }
22
- else if (addon.pricingType === Addon_1.AddonPricingType.PER_CHILD_OCCUPANCY_PER_NIGHT && addon.childQuantity) {
22
+ else if (addon.pricingType === core_1.EAddonPricingType.PER_CHILD_OCCUPANCY_PER_NIGHT && addon.childQuantity) {
23
23
  indPrice *= addon.childQuantity;
24
24
  }
25
25
  if (addon.adultPrice && addon.adultQuantity) {
@@ -1 +1 @@
1
- {"version":3,"file":"TotalCalculator.js","sourceRoot":"/","sources":["src/util/TotalCalculator.ts"],"names":[],"mappings":";;;AAAA,yCAA4C;AAE5C,gDAA+F;AAG/F;;;;;GAKG;AACH,MAAM,uBAAuB,GAAG,CAAC,KAA2C,EAAE,sBAA+B,EAAE,EAAE;IAC7G,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,aAAa,GAAG,CAAC,CAAC;IAEtB,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,EAAE;QAC/B,QAAQ,GAAG,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KACnD;IAED,IAAI,KAAK,CAAC,WAAW,KAAK,wBAAgB,CAAC,6BAA6B,IAAI,KAAK,CAAC,aAAa,EAAE;QAC7F,QAAQ,IAAI,KAAK,CAAC,aAAa,CAAC;KACnC;SAAM,IAAI,KAAK,CAAC,WAAW,KAAK,wBAAgB,CAAC,6BAA6B,IAAI,KAAK,CAAC,aAAa,EAAE;QACpG,QAAQ,IAAI,KAAK,CAAC,aAAa,CAAC;KACnC;IAED,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,aAAa,EAAE;QACzC,aAAa,GAAG,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;KAClE;IAED,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,aAAa,EAAE;QACzC,aAAa,GAAG,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;KAClE;IAED,IAAI,UAAU,GAAG,QAAQ,GAAG,aAAa,GAAG,aAAa,CAAC;IAC1D,IAAI,6BAAqB,CAAC,QAAQ,CAAC,KAAK,CAAC,WAA+B,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,sBAAsB,EAAE;QAClH,UAAU,IAAI,KAAK,CAAC,MAAM,CAAC;KAC9B;IAED,OAAO;QACH,QAAQ;QACR,aAAa;QACb,aAAa;QACb,UAAU;KACb,CAAC;AACN,CAAC,CAAC;AAEF;;GAEG;AACI,MAAM,yBAAyB,GAAG,CAAC,MAAyC,EAAE,sBAAsB,GAAG,KAAK,EAAE,EAAE;IACnH,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACxB,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;KACrB;IAED,8FAA8F;IAE9F,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CACxB,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;;QACX,MAAM,IAAI,GAAG,uBAAuB,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;QACpE,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,4CAA4C;QAC5C,IAAI,CAAC,KAAK,CAAC,GAAG,KAAI,MAAA,KAAK,CAAC,IAAI,0CAAE,MAAM,CAAA,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE;YACrD,yCAAyC;YACzC,IAAI,MAAA,KAAK,CAAC,IAAI,0CAAE,MAAM,EAAE;gBACpB,oBAAoB;gBACpB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;oBACvB,SAAS,IAAI,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC;gBAC7C,CAAC,CAAC,CAAC;aACN;iBAAM;gBACH,sCAAsC;gBACtC,SAAS,GAAG,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aAClD;SACJ;aAAM;YACH,gFAAgF;YAChF,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAI,MAAA,KAAK,CAAC,SAAS,0CAAE,MAAM,CAAA,CAAC,IAAI,KAAK,CAAC,aAAa,EAAE;gBACpE,IAAI,MAAA,KAAK,CAAC,SAAS,0CAAE,MAAM,EAAE;oBACzB,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;wBAC5B,SAAS,IAAI,KAAK,CAAC,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC;oBAClD,CAAC,CAAC,CAAC;iBACN;qBAAM;oBACH,SAAS,IAAI,MAAA,KAAK,CAAC,aAAa,mCAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;iBAClE;aACJ;YAED,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAI,MAAA,KAAK,CAAC,SAAS,0CAAE,MAAM,CAAA,CAAC,IAAI,KAAK,CAAC,aAAa,EAAE;gBACpE,IAAI,MAAA,KAAK,CAAC,SAAS,0CAAE,MAAM,EAAE;oBACzB,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;;wBAC5B,SAAS,IAAI,MAAA,KAAK,CAAC,aAAa,mCAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC;oBACvD,CAAC,CAAC,CAAC;iBACN;qBAAM;oBACH,SAAS,IAAI,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;iBAC7D;aACJ;SACJ;QAED,uEAAuE;QACvE,IAAI,6BAAqB,CAAC,QAAQ,CAAC,KAAK,CAAC,WAA+B,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,sBAAsB,EAAE;YAClH,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC;SAC7B;QAED,OAAO;YACH,KAAK,EAAE,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ;YAChC,UAAU,EAAE,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa;YAC/C,UAAU,EAAE,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa;YAC/C,SAAS,EAAE,GAAG,CAAC,SAAS,GAAG,SAAS;YACpC,KAAK,EAAE,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,GAAG,SAAS;SACjD,CAAC;IACN,CAAC,EACD,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CACrE,CAAC;IAEF,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAhEW,QAAA,yBAAyB,6BAgEpC;AAEF;;GAEG;AACI,MAAM,8BAA8B,GAAG,CAAC,MAAmD,EAAE,sBAAsB,GAAG,KAAK,EAAE,EAAE;IAClI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACxB,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;KACrB;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CACxB,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;;QACX,MAAM,IAAI,GAAG,uBAAuB,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;QAEpE,qGAAqG;QACrG,IAAI,SAAS,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;QAEhC,iDAAiD;QACjD,IAAI,MAAA,KAAK,CAAC,YAAY,0CAAE,MAAM,EAAE;YAC5B,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;SAC5E;QAED,sEAAsE;QACtE,MAAM,YAAY,GAAG,CAAA,MAAA,KAAK,CAAC,YAAY,0CAAE,MAAM,EAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAEhG,OAAO;YACH,KAAK,EAAE,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ;YAChC,UAAU,EAAE,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa;YAC/C,UAAU,EAAE,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa;YAC/C,SAAS,EAAE,GAAG,CAAC,SAAS,GAAG,SAAS;YACpC,KAAK,EAAE,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,GAAG,SAAS;YAC9C,YAAY,EAAE,GAAG,CAAC,YAAY,GAAG,YAAY;SAChD,CAAC;IACN,CAAC,EACD,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CACtF,CAAC;IAEF,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAjCW,QAAA,8BAA8B,kCAiCzC;AAEK,MAAM,4BAA4B,GAAG,CAAC,WAA4B,EAAE,sBAAsB,GAAG,KAAK,EAAE,EAAE;;IACzG,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,MAAA,WAAW,CAAC,YAAY,0CAAE,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACtC,KAAK,IAAI,GAAG,CAAC,MAAM,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE;;QAC/C,KAAK,IAAI,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC;QACtC,MAAM,SAAS,GAAG,MAAA,MAAA,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,0CAAE,MAAM,mCAAI,CAAC,CAAC;QAEjE,IAAI,MAAA,aAAa,CAAC,MAAM,0CAAE,MAAM,EAAE;YAC9B,MAAM,MAAM,GAAG,CAAC,MAAA,aAAa,CAAC,MAAM,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBACtD,uCAAY,KAAK,KAAE,MAAM,EAAE,SAAS,IAAG;YAC3C,CAAC,CAAC,CAAC;YAEH,KAAK,IAAI,MAAA,IAAA,sCAA8B,EAAC,MAAM,EAAE,sBAAsB,CAAC,0CAAE,KAAK,CAAC;SAClF;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,IAAA,iBAAU,EAAC,KAAK,CAAC,CAAC;AAC7B,CAAC,CAAC;AArBW,QAAA,4BAA4B,gCAqBvC","sourcesContent":["import { roundMoney } from '@roomstay/core';\n\nimport { ADDON_PER_NIGHT_TYPES, AddonPricingType, BasketAddonDTO } from '@/models/Addon/Addon';\nimport ReservationsDTO, { ReservationAddonDTO } from '@/models/Api/ReservationsDTO';\n\n/**\n * Calculate the addon total for a single addon.\n *\n * This does not account for fees. Fees need to be calculated separately, because we calculate them differently\n * based on whether they are a booked addon, or an addon in the basket.\n */\nconst calculateBaseAddonTotal = (addon: BasketAddonDTO | ReservationAddonDTO, dismissAddonNightCount: boolean) => {\n let indPrice = 0;\n let indAdultPrice = 0;\n let indChildPrice = 0;\n\n if (addon.price && addon.quantity) {\n indPrice = addon.quantity * Number(addon.price);\n }\n\n if (addon.pricingType === AddonPricingType.PER_ADULT_OCCUPANCY_PER_NIGHT && addon.adultQuantity) {\n indPrice *= addon.adultQuantity;\n } else if (addon.pricingType === AddonPricingType.PER_CHILD_OCCUPANCY_PER_NIGHT && addon.childQuantity) {\n indPrice *= addon.childQuantity;\n }\n\n if (addon.adultPrice && addon.adultQuantity) {\n indAdultPrice = addon.adultQuantity * Number(addon.adultPrice);\n }\n\n if (addon.childPrice && addon.childQuantity) {\n indChildPrice = addon.childQuantity * Number(addon.childPrice);\n }\n\n let addonTotal = indPrice + indAdultPrice + indChildPrice;\n if (ADDON_PER_NIGHT_TYPES.includes(addon.pricingType as AddonPricingType) && addon.nights && !dismissAddonNightCount) {\n addonTotal *= addon.nights;\n }\n\n return {\n indPrice,\n indAdultPrice,\n indChildPrice,\n addonTotal,\n };\n};\n\n/**\n * Calculate totals for a Basket Addon.\n */\nexport const calculateBasketAddonTotal = (addons: BasketAddonDTO | BasketAddonDTO[], dismissAddonNightCount = false) => {\n if (!Array.isArray(addons)) {\n addons = [addons];\n }\n\n // TODO: This function is chaos! It will be slightly better when we remove the old fee fields.\n\n const result = addons.reduce(\n (acc, addon) => {\n const base = calculateBaseAddonTotal(addon, dismissAddonNightCount);\n let addonFees = 0;\n\n // Calculate fees specific to BasketAddonDTO\n if ((addon.fee || addon.fees?.length) && addon.quantity) {\n // There are no separate adult/child fees\n if (addon.fees?.length) {\n // New Itemised fees\n addon.fees.forEach((fee) => {\n addonFees += addon.quantity * fee.amount;\n });\n } else {\n // Old fees (to be removed/deprecated)\n addonFees = addon.quantity * Number(addon.fee);\n }\n } else {\n // There are separate adult/child fees, so we need to calculate them separately.\n if ((addon.adultFee || addon.adultFees?.length) && addon.adultQuantity) {\n if (addon.adultFees?.length) {\n addon.adultFees.forEach((fee) => {\n addonFees += addon.adultQuantity * fee.amount;\n });\n } else {\n addonFees += addon.adultQuantity ?? 1 * Number(addon.adultFee);\n }\n }\n\n if ((addon.childFee || addon.childFees?.length) && addon.childQuantity) {\n if (addon.childFees?.length) {\n addon.childFees.forEach((fee) => {\n addonFees += addon.childQuantity ?? 1 * fee.amount;\n });\n } else {\n addonFees += addon.childQuantity * Number(addon.childFee);\n }\n }\n }\n\n // Multiply the fees by the number of nights if it's a per-night addon.\n if (ADDON_PER_NIGHT_TYPES.includes(addon.pricingType as AddonPricingType) && addon.nights && !dismissAddonNightCount) {\n addonFees *= addon.nights;\n }\n\n return {\n price: acc.price + base.indPrice,\n adultPrice: acc.adultPrice + base.indAdultPrice,\n childPrice: acc.childPrice + base.indChildPrice,\n totalFees: acc.totalFees + addonFees,\n total: acc.total + base.addonTotal + addonFees,\n };\n },\n { price: 0, adultPrice: 0, childPrice: 0, totalFees: 0, total: 0 }\n );\n\n return result;\n};\n\n/**\n * Calculate totals for a Reservation Addon.\n */\nexport const calculateReservationAddonTotal = (addons: ReservationAddonDTO | ReservationAddonDTO[], dismissAddonNightCount = false) => {\n if (!Array.isArray(addons)) {\n addons = [addons];\n }\n\n const result = addons.reduce(\n (acc, addon) => {\n const base = calculateBaseAddonTotal(addon, dismissAddonNightCount);\n\n // For a ReservationAddonDTO, the fees have already been calculated as a part of the booking process.\n let addonFees = addon.fees || 0;\n\n // But they might be superceded by itemised fees.\n if (addon.itemisedFees?.length) {\n addonFees = addon.itemisedFees.reduce((acc, fee) => acc + fee.amount, 0);\n }\n\n // If we have Itemised Fees, the display price will be excluding fees.\n const displayPrice = addon.itemisedFees?.length ? base.addonTotal : base.addonTotal + addonFees;\n\n return {\n price: acc.price + base.indPrice,\n adultPrice: acc.adultPrice + base.indAdultPrice,\n childPrice: acc.childPrice + base.indChildPrice,\n totalFees: acc.totalFees + addonFees,\n total: acc.total + base.addonTotal + addonFees,\n displayPrice: acc.displayPrice + displayPrice,\n };\n },\n { price: 0, adultPrice: 0, childPrice: 0, totalFees: 0, total: 0, displayPrice: 0 }\n );\n\n return result;\n};\n\nexport const calculateTotalForReservation = (reservation: ReservationsDTO, dismissAddonNightCount = false) => {\n let total = 0;\n\n reservation.itemisedFees?.forEach((fee) => {\n total += fee.amount;\n });\n\n reservation.reservations.forEach((individualRes) => {\n total += individualRes.total.afterTax;\n const resNights = Object.keys(individualRes.nights)?.length ?? 0;\n\n if (individualRes.addons?.length) {\n const addons = (individualRes.addons ?? []).map((addon) => {\n return { ...addon, nights: resNights };\n });\n\n total += calculateReservationAddonTotal(addons, dismissAddonNightCount)?.total;\n }\n });\n\n return roundMoney(total);\n};\n"]}
1
+ {"version":3,"file":"TotalCalculator.js","sourceRoot":"/","sources":["src/util/TotalCalculator.ts"],"names":[],"mappings":"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","sourcesContent":["import { EAddonPricingType, roundMoney } from '@roomstay/core';\n\nimport { ADDON_PER_NIGHT_TYPES, BasketAddonDTO } from '@/models/Addon/Addon';\nimport ReservationsDTO, { ReservationAddonDTO } from '@/models/Api/ReservationsDTO';\n\n/**\n * Calculate the addon total for a single addon.\n *\n * This does not account for fees. Fees need to be calculated separately, because we calculate them differently\n * based on whether they are a booked addon, or an addon in the basket.\n */\nconst calculateBaseAddonTotal = (addon: BasketAddonDTO | ReservationAddonDTO, dismissAddonNightCount: boolean) => {\n let indPrice = 0;\n let indAdultPrice = 0;\n let indChildPrice = 0;\n\n if (addon.price && addon.quantity) {\n indPrice = addon.quantity * Number(addon.price);\n }\n\n if (addon.pricingType === EAddonPricingType.PER_ADULT_OCCUPANCY_PER_NIGHT && addon.adultQuantity) {\n indPrice *= addon.adultQuantity;\n } else if (addon.pricingType === EAddonPricingType.PER_CHILD_OCCUPANCY_PER_NIGHT && addon.childQuantity) {\n indPrice *= addon.childQuantity;\n }\n\n if (addon.adultPrice && addon.adultQuantity) {\n indAdultPrice = addon.adultQuantity * Number(addon.adultPrice);\n }\n\n if (addon.childPrice && addon.childQuantity) {\n indChildPrice = addon.childQuantity * Number(addon.childPrice);\n }\n\n let addonTotal = indPrice + indAdultPrice + indChildPrice;\n if (ADDON_PER_NIGHT_TYPES.includes(addon.pricingType as EAddonPricingType) && addon.nights && !dismissAddonNightCount) {\n addonTotal *= addon.nights;\n }\n\n return {\n indPrice,\n indAdultPrice,\n indChildPrice,\n addonTotal,\n };\n};\n\n/**\n * Calculate totals for a Basket Addon.\n */\nexport const calculateBasketAddonTotal = (addons: BasketAddonDTO | BasketAddonDTO[], dismissAddonNightCount = false) => {\n if (!Array.isArray(addons)) {\n addons = [addons];\n }\n\n // TODO: This function is chaos! It will be slightly better when we remove the old fee fields.\n\n const result = addons.reduce(\n (acc, addon) => {\n const base = calculateBaseAddonTotal(addon, dismissAddonNightCount);\n let addonFees = 0;\n\n // Calculate fees specific to BasketAddonDTO\n if ((addon.fee || addon.fees?.length) && addon.quantity) {\n // There are no separate adult/child fees\n if (addon.fees?.length) {\n // New Itemised fees\n addon.fees.forEach((fee) => {\n addonFees += addon.quantity * fee.amount;\n });\n } else {\n // Old fees (to be removed/deprecated)\n addonFees = addon.quantity * Number(addon.fee);\n }\n } else {\n // There are separate adult/child fees, so we need to calculate them separately.\n if ((addon.adultFee || addon.adultFees?.length) && addon.adultQuantity) {\n if (addon.adultFees?.length) {\n addon.adultFees.forEach((fee) => {\n addonFees += addon.adultQuantity * fee.amount;\n });\n } else {\n addonFees += addon.adultQuantity ?? 1 * Number(addon.adultFee);\n }\n }\n\n if ((addon.childFee || addon.childFees?.length) && addon.childQuantity) {\n if (addon.childFees?.length) {\n addon.childFees.forEach((fee) => {\n addonFees += addon.childQuantity ?? 1 * fee.amount;\n });\n } else {\n addonFees += addon.childQuantity * Number(addon.childFee);\n }\n }\n }\n\n // Multiply the fees by the number of nights if it's a per-night addon.\n if (ADDON_PER_NIGHT_TYPES.includes(addon.pricingType as EAddonPricingType) && addon.nights && !dismissAddonNightCount) {\n addonFees *= addon.nights;\n }\n\n return {\n price: acc.price + base.indPrice,\n adultPrice: acc.adultPrice + base.indAdultPrice,\n childPrice: acc.childPrice + base.indChildPrice,\n totalFees: acc.totalFees + addonFees,\n total: acc.total + base.addonTotal + addonFees,\n };\n },\n { price: 0, adultPrice: 0, childPrice: 0, totalFees: 0, total: 0 }\n );\n\n return result;\n};\n\n/**\n * Calculate totals for a Reservation Addon.\n */\nexport const calculateReservationAddonTotal = (addons: ReservationAddonDTO | ReservationAddonDTO[], dismissAddonNightCount = false) => {\n if (!Array.isArray(addons)) {\n addons = [addons];\n }\n\n const result = addons.reduce(\n (acc, addon) => {\n const base = calculateBaseAddonTotal(addon, dismissAddonNightCount);\n\n // For a ReservationAddonDTO, the fees have already been calculated as a part of the booking process.\n let addonFees = addon.fees || 0;\n\n // But they might be superceded by itemised fees.\n if (addon.itemisedFees?.length) {\n addonFees = addon.itemisedFees.reduce((acc, fee) => acc + fee.amount, 0);\n }\n\n // If we have Itemised Fees, the display price will be excluding fees.\n const displayPrice = addon.itemisedFees?.length ? base.addonTotal : base.addonTotal + addonFees;\n\n return {\n price: acc.price + base.indPrice,\n adultPrice: acc.adultPrice + base.indAdultPrice,\n childPrice: acc.childPrice + base.indChildPrice,\n totalFees: acc.totalFees + addonFees,\n total: acc.total + base.addonTotal + addonFees,\n displayPrice: acc.displayPrice + displayPrice,\n };\n },\n { price: 0, adultPrice: 0, childPrice: 0, totalFees: 0, total: 0, displayPrice: 0 }\n );\n\n return result;\n};\n\nexport const calculateTotalForReservation = (reservation: ReservationsDTO, dismissAddonNightCount = false) => {\n let total = 0;\n\n reservation.itemisedFees?.forEach((fee) => {\n total += fee.amount;\n });\n\n reservation.reservations.forEach((individualRes) => {\n total += individualRes.total.afterTax;\n const resNights = Object.keys(individualRes.nights)?.length ?? 0;\n\n if (individualRes.addons?.length) {\n const addons = (individualRes.addons ?? []).map((addon) => {\n return { ...addon, nights: resNights };\n });\n\n total += calculateReservationAddonTotal(addons, dismissAddonNightCount)?.total;\n }\n });\n\n return roundMoney(total);\n};\n"]}