@roomstay/frontend 2.1.7 → 2.1.8

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 (105) hide show
  1. package/dist/201.bundle.js +1 -1
  2. package/dist/449.bundle.js +1 -1
  3. package/dist/760.bundle.js +1 -1
  4. package/dist/882.bundle.js +1 -1
  5. package/dist/main.bundle.js +1 -1
  6. package/dist/src/components/generic/Icon/Icon.d.ts +1 -0
  7. package/dist/src/components/generic/Icon/Icon.js +2 -1
  8. package/dist/src/components/generic/Icon/Icon.js.map +1 -1
  9. package/dist/src/components/generic/Layout/StepLayout/StepLayoutContainer.d.ts +3 -0
  10. package/dist/src/components/generic/Layout/StepLayout/StepLayoutContainer.js +28 -0
  11. package/dist/src/components/generic/Layout/StepLayout/StepLayoutContainer.js.map +1 -0
  12. package/dist/src/components/generic/Layout/StepLayout/StepLayoutLeftContent.d.ts +3 -0
  13. package/dist/src/components/generic/Layout/StepLayout/StepLayoutLeftContent.js +25 -0
  14. package/dist/src/components/generic/Layout/StepLayout/StepLayoutLeftContent.js.map +1 -0
  15. package/dist/src/components/generic/Layout/StepLayout/StepLayoutRightContent.d.ts +3 -0
  16. package/dist/src/components/generic/Layout/StepLayout/StepLayoutRightContent.js +25 -0
  17. package/dist/src/components/generic/Layout/StepLayout/StepLayoutRightContent.js.map +1 -0
  18. package/dist/src/components/generic/Layout/StepLayout/index.d.ts +3 -0
  19. package/dist/src/components/generic/Layout/StepLayout/index.js +13 -0
  20. package/dist/src/components/generic/Layout/StepLayout/index.js.map +1 -0
  21. package/dist/src/components/generic/date/DatePicker.js +10 -11
  22. package/dist/src/components/generic/date/DatePicker.js.map +1 -1
  23. package/dist/src/components/steps/addons/AddonList.js +32 -12
  24. package/dist/src/components/steps/addons/AddonList.js.map +1 -1
  25. package/dist/src/components/steps/hotel/HotelCard.js +24 -11
  26. package/dist/src/components/steps/hotel/HotelCard.js.map +1 -1
  27. package/dist/src/components/summary/BESummaryAddonRow.js +4 -3
  28. package/dist/src/components/summary/BESummaryAddonRow.js.map +1 -1
  29. package/dist/src/contexts/BasketContext/BasketContextType.d.ts +1 -0
  30. package/dist/src/contexts/BasketContext/BasketContextType.js.map +1 -1
  31. package/dist/src/contexts/BasketContext/BasketContextWrapper.js +38 -8
  32. package/dist/src/contexts/BasketContext/BasketContextWrapper.js.map +1 -1
  33. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js +1 -0
  34. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js.map +1 -1
  35. package/dist/src/index.d.ts +1 -0
  36. package/dist/src/index.js +3 -1
  37. package/dist/src/index.js.map +1 -1
  38. package/dist/src/models/Addon/Addon.d.ts +1 -0
  39. package/dist/src/models/Addon/Addon.js +10 -1
  40. package/dist/src/models/Addon/Addon.js.map +1 -1
  41. package/dist/src/models/BasketAddonRow.js +26 -19
  42. package/dist/src/models/BasketAddonRow.js.map +1 -1
  43. package/dist/src/pages/steps/StepAddon/StepAddonComponent.js +32 -9
  44. package/dist/src/pages/steps/StepAddon/StepAddonComponent.js.map +1 -1
  45. package/dist/src/pages/steps/StepAddon/StepAddonLoader.js +45 -44
  46. package/dist/src/pages/steps/StepAddon/StepAddonLoader.js.map +1 -1
  47. package/dist/src/pages/steps/StepConfirmation/StepConfirmationComponent.js +35 -12
  48. package/dist/src/pages/steps/StepConfirmation/StepConfirmationComponent.js.map +1 -1
  49. package/dist/src/pages/steps/StepConfirmation/StepConfirmationLoader.js +10 -10
  50. package/dist/src/pages/steps/StepConfirmation/StepConfirmationLoader.js.map +1 -1
  51. package/dist/src/pages/steps/StepRoom/StepRoomComponent.js +33 -33
  52. package/dist/src/pages/steps/StepRoom/StepRoomComponent.js.map +1 -1
  53. package/dist/src/pages/steps/StepRoom/StepRoomLoader.js +10 -10
  54. package/dist/src/pages/steps/StepRoom/StepRoomLoader.js.map +1 -1
  55. package/dist/src/providers/FeatureProvider.js +2 -0
  56. package/dist/src/providers/FeatureProvider.js.map +1 -1
  57. package/dist/src/providers/feature/FullPageEngineSmallSpacingFeature.d.ts +6 -0
  58. package/dist/src/providers/feature/FullPageEngineSmallSpacingFeature.js +10 -0
  59. package/dist/src/providers/feature/FullPageEngineSmallSpacingFeature.js.map +1 -0
  60. package/dist/src/reducers/BasketReducer.d.ts +2 -1
  61. package/dist/src/reducers/BasketReducer.js +7 -0
  62. package/dist/src/reducers/BasketReducer.js.map +1 -1
  63. package/dist/src/util/TotalCalculator.js +7 -1
  64. package/dist/src/util/TotalCalculator.js.map +1 -1
  65. package/dist/test.bundle.js +1 -1
  66. package/package.json +1 -1
  67. package/dist/tests/jest/engines/RoomstayThemeEngine.test.d.ts +0 -1
  68. package/dist/tests/jest/engines/RoomstayThemeEngine.test.js +0 -41
  69. package/dist/tests/jest/engines/RoomstayThemeEngine.test.js.map +0 -1
  70. package/dist/tests/jest/events/EventManager.test.d.ts +0 -1
  71. package/dist/tests/jest/events/EventManager.test.js +0 -101
  72. package/dist/tests/jest/events/EventManager.test.js.map +0 -1
  73. package/dist/tests/jest/helpers/ObjectHelper.test.d.ts +0 -1
  74. package/dist/tests/jest/helpers/ObjectHelper.test.js +0 -72
  75. package/dist/tests/jest/helpers/ObjectHelper.test.js.map +0 -1
  76. package/dist/tests/jest/models/RoomRate.test.d.ts +0 -1
  77. package/dist/tests/jest/models/RoomRate.test.js +0 -133
  78. package/dist/tests/jest/models/RoomRate.test.js.map +0 -1
  79. package/dist/tests/jest/providers/LanguageProvider.test.d.ts +0 -1
  80. package/dist/tests/jest/providers/LanguageProvider.test.js +0 -32
  81. package/dist/tests/jest/providers/LanguageProvider.test.js.map +0 -1
  82. package/dist/tests/jest/providers/SessionProvider.test.d.ts +0 -1
  83. package/dist/tests/jest/providers/SessionProvider.test.js +0 -230
  84. package/dist/tests/jest/providers/SessionProvider.test.js.map +0 -1
  85. package/dist/tests/jest/providers/storage/LocalStorageProvider.test.d.ts +0 -1
  86. package/dist/tests/jest/providers/storage/LocalStorageProvider.test.js +0 -126
  87. package/dist/tests/jest/providers/storage/LocalStorageProvider.test.js.map +0 -1
  88. package/dist/tests/jest/reducers/BasketReducer.test.d.ts +0 -1
  89. package/dist/tests/jest/reducers/BasketReducer.test.js +0 -103
  90. package/dist/tests/jest/reducers/BasketReducer.test.js.map +0 -1
  91. package/dist/tests/offline/RoomstayBestRateAlert.d.ts +0 -1
  92. package/dist/tests/offline/RoomstayBestRateAlert.js +0 -48
  93. package/dist/tests/offline/RoomstayBestRateAlert.js.map +0 -1
  94. package/dist/tests/offline/entry/ReactWrapper.d.ts +0 -1
  95. package/dist/tests/offline/entry/ReactWrapper.js +0 -136
  96. package/dist/tests/offline/entry/ReactWrapper.js.map +0 -1
  97. package/dist/tests/offline/entry/allEngines.d.ts +0 -1
  98. package/dist/tests/offline/entry/allEngines.js +0 -50
  99. package/dist/tests/offline/entry/allEngines.js.map +0 -1
  100. package/dist/tests/offline/entry/components/TestPicker.d.ts +0 -1
  101. package/dist/tests/offline/entry/components/TestPicker.js +0 -156
  102. package/dist/tests/offline/entry/components/TestPicker.js.map +0 -1
  103. package/dist/tests/setupTests.d.ts +0 -0
  104. package/dist/tests/setupTests.js +0 -12
  105. package/dist/tests/setupTests.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"BasketReducer.js","sourceRoot":"/","sources":["src/reducers/BasketReducer.ts"],"names":[],"mappings":";;;;;;AACA,kDAA0B;AAC1B,8EAA2E;AAC3E,yFAAiE;AAEjE,6CAAkD;AAQ3C,MAAM,aAAa,GAAG,CAAC,IAAiB,EAAE,MAAyB,EAAe,EAAE;IACvF,MAAM,mBAAmB,GAAG,CAAC,GAAc,EAAE,EAAE;QAC3C,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE;YACrB,GAAG,CAAC,YAAY,CAAC,IAAA,eAAK,EAAC,KAAK,CAAC,CAAC,CAAC;SAClC;QAED,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE;YACnB,GAAG,CAAC,UAAU,CAAC,IAAA,eAAK,EAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;SAC9C;IACL,CAAC,CAAC;IAEF,QAAQ,MAAM,CAAC,MAAM,EAAE;QACnB,KAAK,KAAK;YACN,IAAI,MAAM,CAAC,GAAG,EAAE;gBACZ,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;gBAEvB,mBAAmB,CAAC,GAAG,CAAC,CAAC;gBAEzB,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC;aACzB;YACD,OAAO,IAAI,CAAC;QAChB,KAAK,SAAS;YACV,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE;gBAC3B,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;gBAEvB,mBAAmB,CAAC,GAAG,CAAC,CAAC;gBAEzB,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAEzB,IAAI,cAAc,GAAG,KAAK,CAAC;gBAC3B,+DAA+D;gBAC/D,yDAAyD;gBACzD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;;oBACnC,IAAI,SAAS,CAAC,KAAK,EAAE,MAAK,MAAA,MAAM,CAAC,GAAG,0CAAE,KAAK,EAAE,CAAA,EAAE;wBAC3C,cAAc,GAAG,IAAI,CAAC;wBACtB,OAAO,MAAM,CAAC,GAAG,CAAC;qBACrB;yBAAM;wBACH,OAAO,SAAS,CAAC;qBACpB;gBACL,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,cAAc,EAAE;oBACjB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBACrB;gBAED,yEAAyE;gBACzE,2EAA2E;gBAC3E,MAAM,cAAc,GAAG,IAAI,uBAAc,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBACxD,8BAAoB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;gBAE3C,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;aACvB;YAED,OAAO,IAAI,CAAC;QAChB,KAAK,QAAQ;YACT,IAAI,MAAM,CAAC,GAAG,EAAE;gBACZ,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,WAAC,OAAA,IAAI,CAAC,KAAK,EAAE,MAAK,MAAA,MAAM,CAAC,GAAG,0CAAE,KAAK,EAAE,CAAA,CAAA,EAAA,CAAC,CAAC;gBAE5E,MAAM,mBAAmB,GAAG,IAAI,yCAAmB,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBACzE,8BAAoB,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;gBAEhD,OAAO,OAAO,CAAC;aAClB;YAED,OAAO,IAAI,CAAC;QAChB,KAAK,OAAO;YACR,OAAO,EAAE,CAAC;QACd,KAAK,QAAQ;YACT,IAAI,MAAM,CAAC,GAAG,EAAE;gBACZ,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;oBACpB,IAAI,GAAG,CAAC,KAAK,EAAE,KAAM,MAAM,CAAC,GAAiB,CAAC,KAAK,EAAE,EAAE;wBACnD,OAAO,MAAM,CAAC,GAAgB,CAAC;qBAClC;yBAAM;wBACH,OAAO,GAAG,CAAC;qBACd;gBACL,CAAC,CAAC,CAAC;aACN;YAED,OAAO,IAAI,CAAC;KACnB;AACL,CAAC,CAAC;AAhFW,QAAA,aAAa,iBAgFxB","sourcesContent":["import BasketRow from '@/models/BasketRow';\nimport dayjs from 'dayjs';\nimport { RemoveFromCartEvent } from '@/events/actions/RemoveFromCartEvent';\nimport RoomstayEventManager from '@/events/RoomstayEventManager';\nimport { RoomRate } from '@/models/Room/RoomRate';\nimport { AddToCartEvent } from '@frontend/events';\n\nexport type BasketReducerType = {\n method: 'Add' | 'Remove' | 'Update' | 'Clear' | 'AddRate';\n row?: BasketRow;\n rate?: RoomRate;\n};\n\nexport const BasketReducer = (rows: BasketRow[], action: BasketReducerType): BasketRow[] => {\n const checkAndSetRowDates = (row: BasketRow) => {\n if (!row.getStartDate()) {\n row.setStartDate(dayjs('now'));\n }\n\n if (!row.getEndDate()) {\n row.setEndDate(dayjs('now').add(1, 'day'));\n }\n };\n\n switch (action.method) {\n case 'Add':\n if (action.row) {\n const { row } = action;\n\n checkAndSetRowDates(row);\n\n return [...rows, row];\n }\n return rows;\n case 'AddRate':\n if (action.row && action.rate) {\n const { row } = action;\n\n checkAndSetRowDates(row);\n\n row.setRate(action.rate);\n\n let hasRowIncluded = false;\n // Let us loop through all of our rows and see if it's in array\n // if target row isn't included, we'll add it to the end.\n const newRows = rows.map((mappedRow) => {\n if (mappedRow.getID() === action.row?.getID()) {\n hasRowIncluded = true;\n return action.row;\n } else {\n return mappedRow;\n }\n });\n\n if (!hasRowIncluded) {\n newRows.push(row);\n }\n\n // Reason we raise this event here, and not in the reducer for example is\n // this is the only sure way we can trust a room is being added to the cart\n const addToCartEvent = new AddToCartEvent(row, newRows);\n RoomstayEventManager.raise(addToCartEvent);\n\n return [...newRows];\n }\n\n return rows;\n case 'Remove':\n if (action.row) {\n const newRows = rows.filter((item) => item.getID() !== action.row?.getID());\n\n const removeFromCartEvent = new RemoveFromCartEvent(action.row, newRows);\n RoomstayEventManager.raise(removeFromCartEvent);\n\n return newRows;\n }\n\n return rows;\n case 'Clear':\n return [];\n case 'Update':\n if (action.row) {\n return rows.map((row) => {\n if (row.getID() === (action.row as BasketRow).getID()) {\n return action.row as BasketRow;\n } else {\n return row;\n }\n });\n }\n\n return rows;\n }\n};\n"]}
1
+ {"version":3,"file":"BasketReducer.js","sourceRoot":"/","sources":["src/reducers/BasketReducer.ts"],"names":[],"mappings":"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","sourcesContent":["import BasketRow from '@/models/BasketRow';\nimport dayjs from 'dayjs';\nimport { RemoveFromCartEvent } from '@/events/actions/RemoveFromCartEvent';\nimport RoomstayEventManager from '@/events/RoomstayEventManager';\nimport { RoomRate } from '@/models/Room/RoomRate';\nimport { AddToCartEvent } from '@frontend/events';\n\nexport type BasketReducerType = {\n method: 'Add' | 'Remove' | 'Update' | 'Clear' | 'AddRate' | 'Init';\n row?: BasketRow;\n rate?: RoomRate;\n rows?: BasketRow[];\n};\n\nexport const BasketReducer = (rows: BasketRow[], action: BasketReducerType): BasketRow[] => {\n const checkAndSetRowDates = (row: BasketRow) => {\n if (!row.getStartDate()) {\n row.setStartDate(dayjs('now'));\n }\n\n if (!row.getEndDate()) {\n row.setEndDate(dayjs('now').add(1, 'day'));\n }\n };\n\n switch (action.method) {\n case 'Add':\n if (action.row) {\n const { row } = action;\n\n checkAndSetRowDates(row);\n\n return [...rows, row];\n }\n return rows;\n case 'AddRate':\n if (action.row && action.rate) {\n const { row } = action;\n\n checkAndSetRowDates(row);\n\n row.setRate(action.rate);\n\n let hasRowIncluded = false;\n // Let us loop through all of our rows and see if it's in array\n // if target row isn't included, we'll add it to the end.\n const newRows = rows.map((mappedRow) => {\n if (mappedRow.getID() === action.row?.getID()) {\n hasRowIncluded = true;\n return action.row;\n } else {\n return mappedRow;\n }\n });\n\n if (!hasRowIncluded) {\n newRows.push(row);\n }\n\n // Reason we raise this event here, and not in the reducer for example is\n // this is the only sure way we can trust a room is being added to the cart\n const addToCartEvent = new AddToCartEvent(row, newRows);\n RoomstayEventManager.raise(addToCartEvent);\n\n return [...newRows];\n }\n\n return rows;\n case 'Remove':\n if (action.row) {\n const newRows = rows.filter((item) => item.getID() !== action.row?.getID());\n\n const removeFromCartEvent = new RemoveFromCartEvent(action.row, newRows);\n RoomstayEventManager.raise(removeFromCartEvent);\n\n return newRows;\n }\n\n return rows;\n case 'Clear':\n return [];\n case 'Update':\n if (action.row) {\n return rows.map((row) => {\n if (row.getID() === (action.row as BasketRow).getID()) {\n return action.row as BasketRow;\n } else {\n return row;\n }\n });\n }\n\n return rows;\n case 'Init': {\n if (action.rows?.length) {\n action.rows.forEach((row) => checkAndSetRowDates(row));\n }\n return action.rows || [];\n }\n }\n};\n"]}
@@ -15,6 +15,12 @@ const calculateReservationAddonTotal = (addons) => {
15
15
  if (addon.price && addon.quantity) {
16
16
  indPrice += addon.quantity * Number(addon.price);
17
17
  }
18
+ if (addon.pricingType === Addon_1.AddonPricingType.PER_ADULT_OCCUPANCY_PER_NIGHT) {
19
+ indPrice *= addon.adultQuantity;
20
+ }
21
+ else if (addon.pricingType === Addon_1.AddonPricingType.PER_CHILD_OCCUPANCY_PER_NIGHT && addon.childQuantity) {
22
+ indPrice *= addon.childQuantity;
23
+ }
18
24
  let indAdultPrice = 0;
19
25
  if (addon.adultPrice && addon.adultQuantity) {
20
26
  indAdultPrice += addon.adultQuantity * Number(addon.adultPrice);
@@ -24,7 +30,7 @@ const calculateReservationAddonTotal = (addons) => {
24
30
  indChildPrice += addon.childQuantity * Number(addon.childPrice);
25
31
  }
26
32
  let addonTotal = indPrice + indAdultPrice + indChildPrice;
27
- if ((addon.pricingType === Addon_1.AddonPricingType.PER_NIGHT || addon.pricingType === Addon_1.AddonPricingType.PER_PERSON_PER_NIGHT) && addon.nights) {
33
+ if (Addon_1.ADDON_PER_NIGHT_TYPES.includes(addon.pricingType) && addon.nights) {
28
34
  addonTotal *= addon.nights;
29
35
  }
30
36
  price += indPrice;
@@ -1 +1 @@
1
- {"version":3,"file":"TotalCalculator.js","sourceRoot":"/","sources":["src/util/TotalCalculator.ts"],"names":[],"mappings":";;;AAGA,gDAAwD;AAEjD,MAAM,8BAA8B,GAAG,CAAC,MAAmD,EAAE,EAAE;IAClG,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACxB,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;KACrB;IAED,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACrB,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,EAAE;YAC/B,QAAQ,IAAI,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SACpD;QAED,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,aAAa,EAAE;YACzC,aAAa,IAAI,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;SACnE;QAED,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,aAAa,EAAE;YACzC,aAAa,IAAI,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;SACnE;QAED,IAAI,UAAU,GAAG,QAAQ,GAAG,aAAa,GAAG,aAAa,CAAC;QAC1D,IAAI,CAAC,KAAK,CAAC,WAAW,KAAK,wBAAgB,CAAC,SAAS,IAAI,KAAK,CAAC,WAAW,KAAK,wBAAgB,CAAC,oBAAoB,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE;YACnI,UAAU,IAAI,KAAK,CAAC,MAAM,CAAC;SAC9B;QAED,KAAK,IAAI,QAAQ,CAAC;QAClB,UAAU,IAAI,aAAa,CAAC;QAC5B,UAAU,IAAI,aAAa,CAAC;QAE5B,KAAK,IAAI,UAAU,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,OAAO;QACH,KAAK;QACL,UAAU;QACV,UAAU;QACV,KAAK;KACR,CAAC;AACN,CAAC,CAAC;AA7CW,QAAA,8BAA8B,kCA6CzC;AAEK,MAAM,4BAA4B,GAAG,CAAC,WAA4B,EAAE,EAAE;IACzE,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,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,CAAC,0CAAE,KAAK,CAAC;SAC1D;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAjBW,QAAA,4BAA4B,gCAiBvC","sourcesContent":["import type { ReservationAddonDTO } from '@/models/Api/ReservationsDTO';\nimport type ReservationsDTO from '@/models/Api/ReservationsDTO';\n\nimport { AddonPricingType } from '@/models/Addon/Addon';\n\nexport const calculateReservationAddonTotal = (addons: ReservationAddonDTO | ReservationAddonDTO[]) => {\n let price = 0;\n let adultPrice = 0;\n let childPrice = 0;\n\n let total = 0;\n\n if (!Array.isArray(addons)) {\n addons = [addons];\n }\n\n addons.forEach((addon) => {\n let indPrice = 0;\n if (addon.price && addon.quantity) {\n indPrice += addon.quantity * Number(addon.price);\n }\n\n let indAdultPrice = 0;\n if (addon.adultPrice && addon.adultQuantity) {\n indAdultPrice += addon.adultQuantity * Number(addon.adultPrice);\n }\n\n let indChildPrice = 0;\n if (addon.childPrice && addon.childQuantity) {\n indChildPrice += addon.childQuantity * Number(addon.childPrice);\n }\n\n let addonTotal = indPrice + indAdultPrice + indChildPrice;\n if ((addon.pricingType === AddonPricingType.PER_NIGHT || addon.pricingType === AddonPricingType.PER_PERSON_PER_NIGHT) && addon.nights) {\n addonTotal *= addon.nights;\n }\n\n price += indPrice;\n adultPrice += indAdultPrice;\n childPrice += indChildPrice;\n\n total += addonTotal;\n });\n\n return {\n price,\n adultPrice,\n childPrice,\n total,\n };\n};\n\nexport const calculateTotalForReservation = (reservation: ReservationsDTO) => {\n let total = 0;\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)?.total;\n }\n });\n\n return total;\n};\n"]}
1
+ {"version":3,"file":"TotalCalculator.js","sourceRoot":"/","sources":["src/util/TotalCalculator.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ReservationAddonDTO } from '@/models/Api/ReservationsDTO';\nimport type ReservationsDTO from '@/models/Api/ReservationsDTO';\n\nimport { ADDON_PER_NIGHT_TYPES, AddonPricingType } from '@/models/Addon/Addon';\n\nexport const calculateReservationAddonTotal = (addons: ReservationAddonDTO | ReservationAddonDTO[]) => {\n let price = 0;\n let adultPrice = 0;\n let childPrice = 0;\n\n let total = 0;\n\n if (!Array.isArray(addons)) {\n addons = [addons];\n }\n\n addons.forEach((addon) => {\n let indPrice = 0;\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) {\n indPrice *= addon.adultQuantity;\n } else if (addon.pricingType === AddonPricingType.PER_CHILD_OCCUPANCY_PER_NIGHT && addon.childQuantity) {\n indPrice *= addon.childQuantity;\n }\n\n let indAdultPrice = 0;\n if (addon.adultPrice && addon.adultQuantity) {\n indAdultPrice += addon.adultQuantity * Number(addon.adultPrice);\n }\n\n let indChildPrice = 0;\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) {\n addonTotal *= addon.nights;\n }\n\n price += indPrice;\n adultPrice += indAdultPrice;\n childPrice += indChildPrice;\n\n total += addonTotal;\n });\n\n return {\n price,\n adultPrice,\n childPrice,\n total,\n };\n};\n\nexport const calculateTotalForReservation = (reservation: ReservationsDTO) => {\n let total = 0;\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)?.total;\n }\n });\n\n return total;\n};\n"]}